diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js index 0d945a30..07da0f82 100644 --- a/french_law/js/french_law.js +++ b/french_law/js/french_law.js @@ -1,580 +1,588 @@ -//# 1 "api_web.bc.runtime.js" +//# 1 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=runtime, use-js-string=true, version=5.1.1 + +//# 7 ".api_web.eobjs/jsoo/api_web.bc.runtime.js" (function - (Object) - {typeof globalThis - !== - "object" - && + (Object){ + typeof globalThis !== "object" + && (this - ?get() - :(Object.defineProperty - (Object.prototype,"_T_",{configurable:true,get:get}), + ? get() + : (Object.defineProperty + (Object.prototype, "_T_", {configurable: true, get: get}), _T_)); - function get() - {var global=this || self; - global.globalThis = global; - delete Object.prototype._T_}} + function get(){ + var global = this || self; + global.globalThis = global; + delete Object.prototype._T_; + } + } (Object)); -(function(globalThis) - {"use strict"; - var joo_global_object=globalThis; - function caml_int64_is_zero(x){return + x.isZero()} - function caml_str_repeat(n,s) - {if(n == 0)return ""; - if(s.repeat)return s.repeat(n); - var r="",l=0; - for(;;) - {if(n & 1)r += s; - n >>= 1; - if(n == 0)return r; - s += s; - l++; - if(l == 9)s.slice(0,1)}} - var caml_int64_offset=Math.pow(2,- 24); - function caml_raise_constant(tag){throw tag} - var caml_global_data=[0]; - function caml_raise_zero_divide() - {caml_raise_constant(caml_global_data.Division_by_zero)} - function MlInt64(lo,mi,hi) - {this.lo = lo & 0xffffff;this.mi = mi & 0xffffff;this.hi = hi & 0xffff} - MlInt64.prototype.caml_custom = "_j"; - MlInt64.prototype.copy - = - function(){return new MlInt64(this.lo,this.mi,this.hi)}; - MlInt64.prototype.ucompare - = - function(x) - {if(this.hi > x.hi)return 1; - if(this.hi < x.hi)return - 1; - if(this.mi > x.mi)return 1; - if(this.mi < x.mi)return - 1; - if(this.lo > x.lo)return 1; - if(this.lo < x.lo)return - 1; - return 0}; - MlInt64.prototype.compare - = - function(x) - {var hi=this.hi << 16,xhi=x.hi << 16; - if(hi > xhi)return 1; - if(hi < xhi)return - 1; - if(this.mi > x.mi)return 1; - if(this.mi < x.mi)return - 1; - if(this.lo > x.lo)return 1; - if(this.lo < x.lo)return - 1; - return 0}; - MlInt64.prototype.neg - = - function() - {var lo=- this.lo,mi=- this.mi + (lo >> 24),hi=- this.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.add - = - function(x) - {var - lo=this.lo + x.lo, - mi=this.mi + x.mi + (lo >> 24), - hi=this.hi + x.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.sub - = - function(x) - {var - lo=this.lo - x.lo, - mi=this.mi - x.mi + (lo >> 24), - hi=this.hi - x.hi + (mi >> 24); - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.mul - = - function(x) - {var - lo=this.lo * x.lo, - mi=(lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, - hi= - (mi * caml_int64_offset | 0) - + - this.hi - * - x.lo - + - this.mi - * - x.mi - + - this.lo - * - x.hi; - return new MlInt64(lo,mi,hi)}; - MlInt64.prototype.isZero - = - function(){return (this.lo | this.mi | this.hi) == 0}; - MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0}; - MlInt64.prototype.and - = - function(x) - {return new MlInt64(this.lo & x.lo,this.mi & x.mi,this.hi & x.hi)}; - MlInt64.prototype.or - = - function(x) - {return new MlInt64(this.lo | x.lo,this.mi | x.mi,this.hi | x.hi)}; - MlInt64.prototype.xor - = - function(x) - {return new MlInt64(this.lo ^ x.lo,this.mi ^ x.mi,this.hi ^ x.hi)}; - MlInt64.prototype.shift_left - = - function(s) - {s = s & 63; - if(s == 0)return this; - if(s < 24) - return new - MlInt64 - (this.lo << s, - this.mi << s | this.lo >> 24 - s, - this.hi << s | this.mi >> 24 - s); - if(s < 48) - return new - MlInt64 - (0,this.lo << s - 24,this.mi << s - 24 | this.lo >> 48 - s); - return new MlInt64(0,0,this.lo << s - 48)}; - MlInt64.prototype.shift_right_unsigned - = - function(s) - {s = s & 63; - if(s == 0)return this; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | this.hi << 24 - s, - this.hi >> s); - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s,this.hi >> s - 24,0); - return new MlInt64(this.hi >> s - 48,0,0)}; - MlInt64.prototype.shift_right - = - function(s) - {s = s & 63; - if(s == 0)return this; - var h=this.hi << 16 >> 16; - if(s < 24) - return new - MlInt64 - (this.lo >> s | this.mi << 24 - s, - this.mi >> s | h << 24 - s, - this.hi << 16 >> s >>> 16); - var sign=this.hi << 16 >> 31; - if(s < 48) - return new - MlInt64 - (this.mi >> s - 24 | this.hi << 48 - s, - this.hi << 16 >> s - 24 >> 16, - sign & 0xffff); - return new MlInt64(this.hi << 16 >> s - 32,sign,sign)}; - MlInt64.prototype.lsl1 - = - function() - {this.hi = this.hi << 1 | this.mi >> 23; - this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; - this.lo = this.lo << 1 & 0xffffff}; - MlInt64.prototype.lsr1 - = - function() - {this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; - this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; - this.hi = this.hi >>> 1}; - MlInt64.prototype.udivmod - = - function(x) - {var - offset=0, - modulus=this.copy(), - divisor=x.copy(), - quotient=new MlInt64(0,0,0); - while(modulus.ucompare(divisor) > 0){offset++;divisor.lsl1()} - while(offset >= 0) - {offset--; - quotient.lsl1(); - if(modulus.ucompare(divisor) >= 0) - {quotient.lo++;modulus = modulus.sub(divisor)} - divisor.lsr1()} - return {quotient:quotient,modulus:modulus}}; - MlInt64.prototype.div - = - function(y) - {var x=this; - if(y.isZero())caml_raise_zero_divide(); - var sign=x.hi ^ y.hi; - if(x.hi & 0x8000)x = x.neg(); - if(y.hi & 0x8000)y = y.neg(); - var q=x.udivmod(y).quotient; - if(sign & 0x8000)q = q.neg(); - return q}; - MlInt64.prototype.mod - = - function(y) - {var x=this; - if(y.isZero())caml_raise_zero_divide(); - var sign=x.hi; - if(x.hi & 0x8000)x = x.neg(); - if(y.hi & 0x8000)y = y.neg(); - var r=x.udivmod(y).modulus; - if(sign & 0x8000)r = r.neg(); - return r}; - MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24}; - MlInt64.prototype.toFloat - = - function() - {return (this.hi << 16) - * - Math.pow(2,32) - + - this.mi - * - Math.pow(2,24) - + - this.lo}; - MlInt64.prototype.toArray - = - function() - {return [this.hi >> 8, - this.hi & 0xff, - this.mi >> 16, - this.mi >> 8 & 0xff, - this.mi & 0xff, - this.lo >> 16, - this.lo >> 8 & 0xff, - this.lo & 0xff]}; - MlInt64.prototype.lo32 - = - function(){return this.lo | (this.mi & 0xff) << 24}; - MlInt64.prototype.hi32 - = - function(){return this.mi >>> 8 & 0xffff | this.hi << 16}; - function caml_int64_of_int32(x) - {return new MlInt64(x & 0xffffff,x >> 24 & 0xffffff,x >> 31 & 0xffff)} - function caml_int64_to_int32(x){return x.toInt()} - function caml_int64_is_negative(x){return + x.isNeg()} - function caml_int64_neg(x){return x.neg()} - function caml_subarray_to_jsbytes(a,i,len) - {var f=String.fromCharCode; - if(i == 0 && len <= 4096 && len == a.length)return f.apply(null,a); - var s=""; - for(;0 < len;i += 1024,len -= 1024) - s += f.apply(null,a.slice(i,i + Math.min(len,1024))); - return s} - function caml_convert_string_to_bytes(s) - {if(s.t == 2) - s.c += caml_str_repeat(s.l - s.c.length,"\0"); - else - s.c = caml_subarray_to_jsbytes(s.c,0,s.c.length); - s.t = 0} - function caml_jsbytes_of_string(s) - {s.t & 6 && caml_convert_string_to_bytes(s);return s.c} - function caml_raise_with_arg(tag,arg){throw [0,tag,arg]} - function jsoo_is_ascii(s) - {if(s.length < 24) - {for(var i=0;i < s.length;i++)if(s.charCodeAt(i) > 127)return false; - return true} - else - return ! /[^\x00-\x7f]/.test(s)} - function caml_utf16_of_utf8(s) - {for(var b="",t="",c,c1,c2,v,i=0,l=s.length;i < l;i++) - {c1 = s.charCodeAt(i); - if(c1 < 0x80) - {for(var j=i + 1;j < l && (c1 = s.charCodeAt(j)) < 0x80;j++); - if(j - i > 512) - {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} - else - t += s.slice(i,j); - if(j == l)break; - i = j} - v = 1; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) - {c = c2 + (c1 << 6); - if(c1 < 0xe0) - {v = c - 0x3080;if(v < 0x80)v = 1} - else - {v = 2; - if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128) - {c = c2 + (c << 6); - if(c1 < 0xf0) - {v = c - 0xe2080; - if(v < 0x800 || v >= 0xd7ff && v < 0xe000)v = 2} - else - {v = 3; - if - (++i - < - l - && - ((c2 = s.charCodeAt(i)) & - 64) - == - 128 - && - c1 - < - 0xf5) - {v = c2 - 0x3c82080 + (c << 6); - if(v < 0x10000 || v > 0x10ffff)v = 3}}}}} - if(v < 4) - {i -= v;t += "\ufffd"} +(function(globalThis){ + "use strict"; + var joo_global_object = globalThis; + function caml_int64_is_zero(x){return + x.isZero();} + function caml_str_repeat(n, s){ + if(n == 0) return ""; + if(s.repeat) return s.repeat(n); + var r = "", l = 0; + for(;;){ + if(n & 1) r += s; + n >>= 1; + if(n == 0) return r; + s += s; + l++; + if(l == 9) s.slice(0, 1); + } + } + var caml_int64_offset = Math.pow(2, - 24); + function caml_raise_constant(tag){throw tag;} + var caml_global_data = [0]; + function caml_raise_zero_divide(){ + caml_raise_constant(caml_global_data.Division_by_zero); + } + function MlInt64(lo, mi, hi){ + this.lo = lo & 0xffffff; + this.mi = mi & 0xffffff; + this.hi = hi & 0xffff; + } + MlInt64.prototype.caml_custom = "_j"; + MlInt64.prototype.copy = + function(){return new MlInt64(this.lo, this.mi, this.hi);}; + MlInt64.prototype.ucompare = + function(x){ + if(this.hi > x.hi) return 1; + if(this.hi < x.hi) return - 1; + if(this.mi > x.mi) return 1; + if(this.mi < x.mi) return - 1; + if(this.lo > x.lo) return 1; + if(this.lo < x.lo) return - 1; + return 0; + }; + MlInt64.prototype.compare = + function(x){ + var hi = this.hi << 16, xhi = x.hi << 16; + if(hi > xhi) return 1; + if(hi < xhi) return - 1; + if(this.mi > x.mi) return 1; + if(this.mi < x.mi) return - 1; + if(this.lo > x.lo) return 1; + if(this.lo < x.lo) return - 1; + return 0; + }; + MlInt64.prototype.neg = + function(){ + var + lo = - this.lo, + mi = - this.mi + (lo >> 24), + hi = - this.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.add = + function(x){ + var + lo = this.lo + x.lo, + mi = this.mi + x.mi + (lo >> 24), + hi = this.hi + x.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.sub = + function(x){ + var + lo = this.lo - x.lo, + mi = this.mi - x.mi + (lo >> 24), + hi = this.hi - x.hi + (mi >> 24); + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.mul = + function(x){ + var + lo = this.lo * x.lo, + mi = (lo * caml_int64_offset | 0) + this.mi * x.lo + this.lo * x.mi, + hi = + (mi * caml_int64_offset | 0) + this.hi * x.lo + this.mi * x.mi + + this.lo * x.hi; + return new MlInt64(lo, mi, hi); + }; + MlInt64.prototype.isZero = + function(){return (this.lo | this.mi | this.hi) == 0;}; + MlInt64.prototype.isNeg = function(){return this.hi << 16 < 0;}; + MlInt64.prototype.and = + function(x){ + return new MlInt64(this.lo & x.lo, this.mi & x.mi, this.hi & x.hi); + }; + MlInt64.prototype.or = + function(x){ + return new MlInt64(this.lo | x.lo, this.mi | x.mi, this.hi | x.hi); + }; + MlInt64.prototype.xor = + function(x){ + return new MlInt64(this.lo ^ x.lo, this.mi ^ x.mi, this.hi ^ x.hi); + }; + MlInt64.prototype.shift_left = + function(s){ + s = s & 63; + if(s == 0) return this; + if(s < 24) + return new + MlInt64 + (this.lo << s, + this.mi << s | this.lo >> 24 - s, + this.hi << s | this.mi >> 24 - s); + if(s < 48) + return new + MlInt64 + (0, this.lo << s - 24, this.mi << s - 24 | this.lo >> 48 - s); + return new MlInt64(0, 0, this.lo << s - 48); + }; + MlInt64.prototype.shift_right_unsigned = + function(s){ + s = s & 63; + if(s == 0) return this; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | this.hi << 24 - s, + this.hi >> s); + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s, this.hi >> s - 24, 0); + return new MlInt64(this.hi >> s - 48, 0, 0); + }; + MlInt64.prototype.shift_right = + function(s){ + s = s & 63; + if(s == 0) return this; + var h = this.hi << 16 >> 16; + if(s < 24) + return new + MlInt64 + (this.lo >> s | this.mi << 24 - s, + this.mi >> s | h << 24 - s, + this.hi << 16 >> s >>> 16); + var sign = this.hi << 16 >> 31; + if(s < 48) + return new + MlInt64 + (this.mi >> s - 24 | this.hi << 48 - s, + this.hi << 16 >> s - 24 >> 16, + sign & 0xffff); + return new MlInt64(this.hi << 16 >> s - 32, sign, sign); + }; + MlInt64.prototype.lsl1 = + function(){ + this.hi = this.hi << 1 | this.mi >> 23; + this.mi = (this.mi << 1 | this.lo >> 23) & 0xffffff; + this.lo = this.lo << 1 & 0xffffff; + }; + MlInt64.prototype.lsr1 = + function(){ + this.lo = (this.lo >>> 1 | this.mi << 23) & 0xffffff; + this.mi = (this.mi >>> 1 | this.hi << 23) & 0xffffff; + this.hi = this.hi >>> 1; + }; + MlInt64.prototype.udivmod = + function(x){ + var + offset = 0, + modulus = this.copy(), + divisor = x.copy(), + quotient = new MlInt64(0, 0, 0); + while(modulus.ucompare(divisor) > 0){offset++; divisor.lsl1();} + while(offset >= 0){ + offset--; + quotient.lsl1(); + if(modulus.ucompare(divisor) >= 0){ + quotient.lo++; + modulus = modulus.sub(divisor); + } + divisor.lsr1(); + } + return {quotient: quotient, modulus: modulus}; + }; + MlInt64.prototype.div = + function(y){ + var x = this; + if(y.isZero()) caml_raise_zero_divide(); + var sign = x.hi ^ y.hi; + if(x.hi & 0x8000) x = x.neg(); + if(y.hi & 0x8000) y = y.neg(); + var q = x.udivmod(y).quotient; + if(sign & 0x8000) q = q.neg(); + return q; + }; + MlInt64.prototype.mod = + function(y){ + var x = this; + if(y.isZero()) caml_raise_zero_divide(); + var sign = x.hi; + if(x.hi & 0x8000) x = x.neg(); + if(y.hi & 0x8000) y = y.neg(); + var r = x.udivmod(y).modulus; + if(sign & 0x8000) r = r.neg(); + return r; + }; + MlInt64.prototype.toInt = function(){return this.lo | this.mi << 24;}; + MlInt64.prototype.toFloat = + function(){ + return (this.hi << 16) * Math.pow(2, 32) + this.mi * Math.pow(2, 24) + + this.lo; + }; + MlInt64.prototype.toArray = + function(){ + return [this.hi >> 8, + this.hi & 0xff, + this.mi >> 16, + this.mi >> 8 & 0xff, + this.mi & 0xff, + this.lo >> 16, + this.lo >> 8 & 0xff, + this.lo & 0xff]; + }; + MlInt64.prototype.lo32 = + function(){return this.lo | (this.mi & 0xff) << 24;}; + MlInt64.prototype.hi32 = + function(){return this.mi >>> 8 & 0xffff | this.hi << 16;}; + function caml_int64_of_int32(x){ + return new MlInt64(x & 0xffffff, x >> 24 & 0xffffff, x >> 31 & 0xffff); + } + function caml_int64_to_int32(x){return x.toInt();} + function caml_int64_is_negative(x){return + x.isNeg();} + function caml_int64_neg(x){return x.neg();} + function caml_jsbytes_of_string(x){return x;} + function jsoo_sys_getenv(n){ + var process = globalThis.process; + if(process && process.env && process.env[n] != undefined) + return process.env[n]; + if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) + return globalThis.jsoo_static_env[n]; + } + var caml_record_backtrace_flag = 0; + (function(){ + var r = jsoo_sys_getenv("OCAMLRUNPARAM"); + if(r !== undefined){ + var l = r.split(","); + for(var i = 0; i < l.length; i++) + if(l[i] == "b"){ + caml_record_backtrace_flag = 1; + break; + } + else if(l[i].startsWith("b=")) + caml_record_backtrace_flag = + l[i].slice(2); else - if(v > 0xffff) - t += String.fromCharCode(0xd7c0 + (v >> 10),0xdc00 + (v & 0x3FF)); - else - t += String.fromCharCode(v); - if(t.length > 1024){t.substr(0,1);b += t;t = ""}} - return b + t} - function MlBytes(tag,contents,length) - {this.t = tag;this.c = contents;this.l = length} - MlBytes.prototype.toString - = - function() - {switch(this.t) - {case 9:return this.c; - default:caml_convert_string_to_bytes(this);case 0: - if(jsoo_is_ascii(this.c)){this.t = 9;return this.c}this.t = 8; - case 8:return this.c - }}; - MlBytes.prototype.toUtf16 - = - function() - {var r=this.toString(); - if(this.t == 9)return r; - return caml_utf16_of_utf8(r)}; - MlBytes.prototype.slice - = - function() - {var content=this.t == 4?this.c.slice():this.c; - return new MlBytes(this.t,content,this.l)}; - function caml_bytes_of_jsbytes(s){return new MlBytes(0,s,s.length)} - function caml_string_of_jsbytes(s){return caml_bytes_of_jsbytes(s)} - function caml_raise_with_string(tag,msg) - {caml_raise_with_arg(tag,caml_string_of_jsbytes(msg))} - function caml_invalid_argument(msg) - {caml_raise_with_string(caml_global_data.Invalid_argument,msg)} - function caml_parse_format(fmt) - {fmt = caml_jsbytes_of_string(fmt); - var len=fmt.length; - if(len > 31)caml_invalid_argument("format_int: format too long"); - var - f= - {justify:"+", - signstyle:"-", - filler:" ", - alternate:false, - base:0, - signedconv:false, - width:0, - uppercase:false, - sign:1, - prec:- 1, - conv:"f"}; - for(var i=0;i < len;i++) - {var c=fmt.charAt(i); - switch(c) - {case "-":f.justify = "-";break; - case "+": - case " ":f.signstyle = c;break; - case "0":f.filler = "0";break; - case "#":f.alternate = true;break; - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - f.width = 0; - while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) - {f.width = f.width * 10 + c;i++} - i--; - break; - case ".": - f.prec = 0; - i++; - while(c = fmt.charCodeAt(i) - 48,c >= 0 && c <= 9) - {f.prec = f.prec * 10 + c;i++} - i--; - case "d": - case "i":f.signedconv = true; - case "u":f.base = 10;break; - case "x":f.base = 16;break; - case "X":f.base = 16;f.uppercase = true;break; - case "o":f.base = 8;break; - case "e": - case "f": - case "g":f.signedconv = true;f.conv = c;break; - case "E": - case "F": - case "G": - f.signedconv = true; - f.uppercase = true; - f.conv = c.toLowerCase(); - break - }} - return f} - function caml_finish_formatting(f,rawbuffer) - {if(f.uppercase)rawbuffer = rawbuffer.toUpperCase(); - var len=rawbuffer.length; - if(f.signedconv && (f.sign < 0 || f.signstyle != "-"))len++; - if(f.alternate){if(f.base == 8)len += 1;if(f.base == 16)len += 2} - var buffer=""; - if(f.justify == "+" && f.filler == " ") - for(var i=len;i < f.width;i++)buffer += " "; - if(f.signedconv) - if(f.sign < 0) - buffer += "-"; - else - if(f.signstyle != "-")buffer += f.signstyle; - if(f.alternate && f.base == 8)buffer += "0"; - if(f.alternate && f.base == 16)buffer += f.uppercase?"0X":"0x"; - if(f.justify == "+" && f.filler == "0") - for(var i=len;i < f.width;i++)buffer += "0"; - buffer += rawbuffer; - if(f.justify == "-")for(var i=len;i < f.width;i++)buffer += " "; - return caml_string_of_jsbytes(buffer)} - function caml_int64_format(fmt,x) - {var f=caml_parse_format(fmt); - if(f.signedconv && caml_int64_is_negative(x)) - {f.sign = - 1;x = caml_int64_neg(x)} - var - buffer="", - wbase=caml_int64_of_int32(f.base), - cvtbl="0123456789abcdef"; - do - {var p=x.udivmod(wbase); - x = p.quotient; - buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer} - while - (! caml_int64_is_zero(x)); - if(f.prec >= 0) - {f.filler = " "; - var n=f.prec - buffer.length; - if(n > 0)buffer = caml_str_repeat(n,"0") + buffer} - return caml_finish_formatting(f,buffer)} - function caml_expm1_float(x){return Math.expm1(x)} - function caml_ml_condition_broadcast(t){return 0} - function caml_jsstring_of_string(s){return s.toUtf16()} - function fs_node_supported() - {return typeof globalThis.process - !== - "undefined" - && - typeof globalThis.process.versions - !== - "undefined" - && - typeof globalThis.process.versions.node - !== - "undefined"} - function make_path_is_absolute() - {function posix(path) - {if(path.charAt(0) === "/")return ["",path.substring(1)];return} - function win32(path) - {var - splitDeviceRe= - /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, - result=splitDeviceRe.exec(path), - device=result[1] || "", - isUnc=Boolean(device && device.charAt(1) !== ":"); - if(Boolean(result[2] || isUnc)) - {var root=result[1] || "",sep=result[2] || ""; - return [root,path.substring(root.length + sep.length)]} - return} - return fs_node_supported() - && - globalThis.process - && - globalThis.process.platform - ?globalThis.process.platform === "win32"?win32:posix - :posix} - var path_is_absolute=make_path_is_absolute(); - function caml_trailing_slash(name) - {return name.slice(- 1) !== "/"?name + "/":name} - if(fs_node_supported() && globalThis.process && globalThis.process.cwd) - var caml_current_dir=globalThis.process.cwd().replace(/\\/g,"/"); - else - var caml_current_dir="/static"; - caml_current_dir = caml_trailing_slash(caml_current_dir); - function caml_make_path(name) - {name = caml_jsstring_of_string(name); - if(! path_is_absolute(name))name = caml_current_dir + name; - var comp0=path_is_absolute(name),comp=comp0[1].split("/"),ncomp=[]; - for(var i=0;i < comp.length;i++) - switch(comp[i]) - {case "..":if(ncomp.length > 1)ncomp.pop();break; - case ".":break; - case "":break; - default:ncomp.push(comp[i]);break} - ncomp.unshift(comp0[0]); - ncomp.orig = name; - return ncomp} - function caml_utf8_of_utf16(s) - {for(var b="",t=b,c,d,i=0,l=s.length;i < l;i++) - {c = s.charCodeAt(i); - if(c < 0x80) - {for(var j=i + 1;j < l && (c = s.charCodeAt(j)) < 0x80;j++); - if(j - i > 512) - {t.substr(0,1);b += t;t = "";b += s.slice(i,j)} - else - t += s.slice(i,j); - if(j == l)break; - i = j} - if(c < 0x800) - {t += String.fromCharCode(0xc0 | c >> 6); - t += String.fromCharCode(0x80 | c & 0x3f)} - else - if(c < 0xd800 || c >= 0xdfff) - t - += - String.fromCharCode - (0xe0 | c >> 12,0x80 | c >> 6 & 0x3f,0x80 | c & 0x3f); - else - if - (c - >= - 0xdbff - || - i - + - 1 - == - l - || - (d = s.charCodeAt(i + 1)) - < - 0xdc00 - || - d - > - 0xdfff) - t += "\xef\xbf\xbd"; - else - {i++; - c = (c << 10) + d - 0x35fdc00; - t - += - String.fromCharCode - (0xf0 | c >> 18, - 0x80 | c >> 12 & 0x3f, - 0x80 | c >> 6 & 0x3f, - 0x80 | c & 0x3f)} - if(t.length > 1024){t.substr(0,1);b += t;t = ""}} - return b + t} - function caml_bytes_of_utf16_jsstring(s) - {var tag=9; - if(! jsoo_is_ascii(s))tag = 8,s = caml_utf8_of_utf16(s); - return new MlBytes(tag,s,s.length)} - function caml_string_of_jsstring(s) - {return caml_bytes_of_utf16_jsstring(s)} + continue; + } + } + ()); + function caml_exn_with_js_backtrace(exn, force){ + if(! exn.js_error || force || exn[0] == 248) + exn.js_error = new globalThis.Error("Js exception containing backtrace"); + return exn; + } + function caml_maybe_attach_backtrace(exn, force){ + return caml_record_backtrace_flag + ? caml_exn_with_js_backtrace(exn, force) + : exn; + } + function caml_raise_with_arg(tag, arg){ + throw caml_maybe_attach_backtrace([0, tag, arg]); + } + function caml_string_of_jsbytes(x){return x;} + function caml_raise_with_string(tag, msg){ + caml_raise_with_arg(tag, caml_string_of_jsbytes(msg)); + } + function caml_invalid_argument(msg){ + caml_raise_with_string(caml_global_data.Invalid_argument, msg); + } + function caml_parse_format(fmt){ + fmt = caml_jsbytes_of_string(fmt); + var len = fmt.length; + if(len > 31) caml_invalid_argument("format_int: format too long"); var - unix_error= + f = + {justify: "+", + signstyle: "-", + filler: " ", + alternate: false, + base: 0, + signedconv: false, + width: 0, + uppercase: false, + sign: 1, + prec: - 1, + conv: "f"}; + for(var i = 0; i < len; i++){ + var c = fmt.charAt(i); + switch(c){ + case "-": + f.justify = "-"; break; + case "+": + case " ": + f.signstyle = c; break; + case "0": + f.filler = "0"; break; + case "#": + f.alternate = true; break; + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + f.width = 0; + while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.width = f.width * 10 + c; i++;} + i--; + break; + case ".": + f.prec = 0; + i++; + while(c = fmt.charCodeAt(i) - 48, c >= 0 && c <= 9){f.prec = f.prec * 10 + c; i++;} + i--; + case "d": + case "i": + f.signedconv = true; + case "u": + f.base = 10; break; + case "x": + f.base = 16; break; + case "X": + f.base = 16; f.uppercase = true; break; + case "o": + f.base = 8; break; + case "e": + case "f": + case "g": + f.signedconv = true; f.conv = c; break; + case "E": + case "F": + case "G": + f.signedconv = true; + f.uppercase = true; + f.conv = c.toLowerCase(); + break; + } + } + return f; + } + function caml_finish_formatting(f, rawbuffer){ + if(f.uppercase) rawbuffer = rawbuffer.toUpperCase(); + var len = rawbuffer.length; + if(f.signedconv && (f.sign < 0 || f.signstyle != "-")) len++; + if(f.alternate){if(f.base == 8) len += 1; if(f.base == 16) len += 2;} + var buffer = ""; + if(f.justify == "+" && f.filler == " ") + for(var i = len; i < f.width; i++) buffer += " "; + if(f.signedconv) + if(f.sign < 0) + buffer += "-"; + else if(f.signstyle != "-") buffer += f.signstyle; + if(f.alternate && f.base == 8) buffer += "0"; + if(f.alternate && f.base == 16) buffer += f.uppercase ? "0X" : "0x"; + if(f.justify == "+" && f.filler == "0") + for(var i = len; i < f.width; i++) buffer += "0"; + buffer += rawbuffer; + if(f.justify == "-") for(var i = len; i < f.width; i++) buffer += " "; + return caml_string_of_jsbytes(buffer); + } + function caml_int64_format(fmt, x){ + var f = caml_parse_format(fmt); + if(f.signedconv && caml_int64_is_negative(x)){f.sign = - 1; x = caml_int64_neg(x);} + var + buffer = "", + wbase = caml_int64_of_int32(f.base), + cvtbl = "0123456789abcdef"; + do{ + var p = x.udivmod(wbase); + x = p.quotient; + buffer = cvtbl.charAt(caml_int64_to_int32(p.modulus)) + buffer; + } + while + (! caml_int64_is_zero(x)); + if(f.prec >= 0){ + f.filler = " "; + var n = f.prec - buffer.length; + if(n > 0) buffer = caml_str_repeat(n, "0") + buffer; + } + return caml_finish_formatting(f, buffer); + } + function caml_expm1_float(x){return Math.expm1(x);} + function caml_ml_condition_broadcast(t){return 0;} + function jsoo_is_ascii(s){ + if(s.length < 24){ + for(var i = 0; i < s.length; i++) if(s.charCodeAt(i) > 127) return false; + return true; + } + else + return ! /[^\x00-\x7f]/.test(s); + } + function caml_utf16_of_utf8(s){ + for(var b = "", t = "", c, c1, c2, v, i = 0, l = s.length; i < l; i++){ + c1 = s.charCodeAt(i); + if(c1 < 0x80){ + for(var j = i + 1; j < l && (c1 = s.charCodeAt(j)) < 0x80; j++) ; + if(j - i > 512){ + t.substr(0, 1); + b += t; + t = ""; + b += s.slice(i, j); + } + else + t += s.slice(i, j); + if(j == l) break; + i = j; + } + v = 1; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ + c = c2 + (c1 << 6); + if(c1 < 0xe0){ + v = c - 0x3080; + if(v < 0x80) v = 1; + } + else{ + v = 2; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128){ + c = c2 + (c << 6); + if(c1 < 0xf0){ + v = c - 0xe2080; + if(v < 0x800 || v >= 0xd7ff && v < 0xe000) v = 2; + } + else{ + v = 3; + if(++i < l && ((c2 = s.charCodeAt(i)) & - 64) == 128 && c1 < 0xf5){ + v = c2 - 0x3c82080 + (c << 6); + if(v < 0x10000 || v > 0x10ffff) v = 3; + } + } + } + } + } + if(v < 4){ + i -= v; + t += "\ufffd"; + } + else if(v > 0xffff) + t += String.fromCharCode(0xd7c0 + (v >> 10), 0xdc00 + (v & 0x3FF)); + else + t += String.fromCharCode(v); + if(t.length > 1024){t.substr(0, 1); b += t; t = "";} + } + return b + t; + } + function caml_jsstring_of_string(s){ + if(jsoo_is_ascii(s)) return s; + return caml_utf16_of_utf8(s); + } + function fs_node_supported(){ + return typeof globalThis.process !== "undefined" + && typeof globalThis.process.versions !== "undefined" + && typeof globalThis.process.versions.node !== "undefined"; + } + function make_path_is_absolute(){ + function posix(path){ + if(path.charAt(0) === "/") return ["", path.substring(1)]; + return; + } + function win32(path){ + var + splitDeviceRe = + /^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/, + result = splitDeviceRe.exec(path), + device = result[1] || "", + isUnc = Boolean(device && device.charAt(1) !== ":"); + if(Boolean(result[2] || isUnc)){ + var root = result[1] || "", sep = result[2] || ""; + return [root, path.substring(root.length + sep.length)]; + } + return; + } + return fs_node_supported() && globalThis.process + && globalThis.process.platform + ? globalThis.process.platform === "win32" ? win32 : posix + : posix; + } + var path_is_absolute = make_path_is_absolute(); + function caml_trailing_slash(name){ + return name.slice(- 1) !== "/" ? name + "/" : name; + } + if(fs_node_supported() && globalThis.process && globalThis.process.cwd) + var caml_current_dir = globalThis.process.cwd().replace(/\\/g, "/"); + else + var caml_current_dir = "/static"; + caml_current_dir = caml_trailing_slash(caml_current_dir); + function caml_make_path(name){ + name = caml_jsstring_of_string(name); + if(! path_is_absolute(name)) name = caml_current_dir + name; + var + comp0 = path_is_absolute(name), + comp = comp0[1].split("/"), + ncomp = []; + for(var i = 0; i < comp.length; i++) + switch(comp[i]){ + case "..": + if(ncomp.length > 1) ncomp.pop(); break; + case ".": break; + case "": break; + default: ncomp.push(comp[i]); break; + } + ncomp.unshift(comp0[0]); + ncomp.orig = name; + return ncomp; + } + function caml_utf8_of_utf16(s){ + for(var b = "", t = b, c, d, i = 0, l = s.length; i < l; i++){ + c = s.charCodeAt(i); + if(c < 0x80){ + for(var j = i + 1; j < l && (c = s.charCodeAt(j)) < 0x80; j++) ; + if(j - i > 512){ + t.substr(0, 1); + b += t; + t = ""; + b += s.slice(i, j); + } + else + t += s.slice(i, j); + if(j == l) break; + i = j; + } + if(c < 0x800){ + t += String.fromCharCode(0xc0 | c >> 6); + t += String.fromCharCode(0x80 | c & 0x3f); + } + else if(c < 0xd800 || c >= 0xdfff) + t += + String.fromCharCode + (0xe0 | c >> 12, 0x80 | c >> 6 & 0x3f, 0x80 | c & 0x3f); + else if + (c >= 0xdbff || i + 1 == l || (d = s.charCodeAt(i + 1)) < 0xdc00 + || d > 0xdfff) + t += "\xef\xbf\xbd"; + else{ + i++; + c = (c << 10) + d - 0x35fdc00; + t += + String.fromCharCode + (0xf0 | c >> 18, + 0x80 | c >> 12 & 0x3f, + 0x80 | c >> 6 & 0x3f, + 0x80 | c & 0x3f); + } + if(t.length > 1024){t.substr(0, 1); b += t; t = "";} + } + return b + t; + } + function caml_string_of_jsstring(s){ + return jsoo_is_ascii(s) + ? caml_string_of_jsbytes(s) + : caml_string_of_jsbytes(caml_utf8_of_utf16(s)); + } + var + unix_error = ["E2BIG", "EACCES", "EAGAIN", @@ -643,4848 +651,6145 @@ "EHOSTUNREACH", "ELOOP", "EOVERFLOW"]; - function make_unix_err_args(code,syscall,path,errno) - {var variant=unix_error.indexOf(code); - if(variant < 0){if(errno == null)errno = - 9999;variant = [0,errno]} - var - args= - [variant, - caml_string_of_jsstring(syscall || ""), - caml_string_of_jsstring(path || "")]; - return args} - var caml_named_values={}; - function caml_named_value(nm){return caml_named_values[nm]} - function caml_raise_with_args(tag,args){throw [0,tag].concat(args)} - function caml_is_ml_bytes(s){return s instanceof MlBytes} - function caml_is_ml_string(s){return caml_is_ml_bytes(s)} - function caml_bytes_of_array(a) - {if(! (a instanceof Uint8Array))a = new Uint8Array(a); - return new MlBytes(4,a,a.length)} - function caml_bytes_of_string(s){return s} - function caml_raise_sys_error(msg) - {caml_raise_with_string(caml_global_data.Sys_error,msg)} - function caml_raise_no_such_file(name) - {caml_raise_sys_error(name + ": No such file or directory")} - function caml_convert_bytes_to_array(s) - {var a=new Uint8Array(s.l),b=s.c,l=b.length,i=0; - for(;i < l;i++)a[i] = b.charCodeAt(i); - for(l = s.l;i < l;i++)a[i] = 0; - s.c = a; - s.t = 4; - return a} - function caml_uint8_array_of_bytes(s) - {if(s.t != 4)caml_convert_bytes_to_array(s);return s.c} - function caml_create_bytes(len) - {if(len < 0)caml_invalid_argument("Bytes.create"); - return new MlBytes(len?2:9,"",len)} - function caml_ml_bytes_length(s){return s.l} - function caml_blit_bytes(s1,i1,s2,i2,len) - {if(len == 0)return 0; - if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)) - {s2.c - = - s1.t == 4 - ?caml_subarray_to_jsbytes(s1.c,i1,len) - :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); - s2.t = s2.c.length == s2.l?0:2} + function make_unix_err_args(code, syscall, path, errno){ + var variant = unix_error.indexOf(code); + if(variant < 0){if(errno == null) errno = - 9999; variant = [0, errno];} + var + args = + [variant, + caml_string_of_jsstring(syscall || ""), + caml_string_of_jsstring(path || "")]; + return args; + } + var caml_named_values = {}; + function caml_named_value(nm){return caml_named_values[nm];} + function caml_raise_with_args(tag, args){ + throw caml_maybe_attach_backtrace([0, tag].concat(args)); + } + function caml_subarray_to_jsbytes(a, i, len){ + var f = String.fromCharCode; + if(i == 0 && len <= 4096 && len == a.length) return f.apply(null, a); + var s = ""; + for(; 0 < len; i += 1024, len -= 1024) + s += f.apply(null, a.slice(i, i + Math.min(len, 1024))); + return s; + } + function caml_convert_string_to_bytes(s){ + if(s.t == 2) + s.c += caml_str_repeat(s.l - s.c.length, "\0"); + else + s.c = caml_subarray_to_jsbytes(s.c, 0, s.c.length); + s.t = 0; + } + function MlBytes(tag, contents, length){ + this.t = tag; + this.c = contents; + this.l = length; + } + MlBytes.prototype.toString = + function(){ + switch(this.t){ + case 9: + return this.c; + default: caml_convert_string_to_bytes(this); + case 0: + if(jsoo_is_ascii(this.c)){this.t = 9; return this.c;} this.t = 8; + case 8: + return this.c; + } + }; + MlBytes.prototype.toUtf16 = + function(){ + var r = this.toString(); + if(this.t == 9) return r; + return caml_utf16_of_utf8(r); + }; + MlBytes.prototype.slice = + function(){ + var content = this.t == 4 ? this.c.slice() : this.c; + return new MlBytes(this.t, content, this.l); + }; + function caml_is_ml_bytes(s){return s instanceof MlBytes;} + function caml_is_ml_string(s){ + return typeof s === "string" && ! /[^\x00-\xff]/.test(s); + } + function caml_bytes_of_array(a){ + if(! (a instanceof Uint8Array)) a = new Uint8Array(a); + return new MlBytes(4, a, a.length); + } + function caml_bytes_of_jsbytes(s){return new MlBytes(0, s, s.length);} + function caml_bytes_of_string(s){ + return caml_bytes_of_jsbytes(caml_jsbytes_of_string(s)); + } + function caml_raise_sys_error(msg){ + caml_raise_with_string(caml_global_data.Sys_error, msg); + } + function caml_raise_no_such_file(name){ + caml_raise_sys_error(name + ": No such file or directory"); + } + function caml_convert_bytes_to_array(s){ + var a = new Uint8Array(s.l), b = s.c, l = b.length, i = 0; + for(; i < l; i++) a[i] = b.charCodeAt(i); + for(l = s.l; i < l; i++) a[i] = 0; + s.c = a; + s.t = 4; + return a; + } + function caml_uint8_array_of_bytes(s){ + if(s.t != 4) caml_convert_bytes_to_array(s); + return s.c; + } + function caml_create_bytes(len){ + if(len < 0) caml_invalid_argument("Bytes.create"); + return new MlBytes(len ? 2 : 9, "", len); + } + function caml_ml_bytes_length(s){return s.l;} + function caml_blit_bytes(s1, i1, s2, i2, len){ + if(len == 0) return 0; + if(i2 == 0 && (len >= s2.l || s2.t == 2 && len >= s2.c.length)){ + s2.c = + s1.t == 4 + ? caml_subarray_to_jsbytes(s1.c, i1, len) + : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); + s2.t = s2.c.length == s2.l ? 0 : 2; + } + else if(s2.t == 2 && i2 == s2.c.length){ + s2.c += + s1.t == 4 + ? caml_subarray_to_jsbytes(s1.c, i1, len) + : i1 == 0 && s1.c.length == len ? s1.c : s1.c.substr(i1, len); + s2.t = s2.c.length == s2.l ? 0 : 2; + } + else{ + if(s2.t != 4) caml_convert_bytes_to_array(s2); + var c1 = s1.c, c2 = s2.c; + if(s1.t == 4) + if(i2 <= i1) + for(var i = 0; i < len; i++) c2[i2 + i] = c1[i1 + i]; + else + for(var i = len - 1; i >= 0; i--) c2[i2 + i] = c1[i1 + i]; + else{ + var l = Math.min(len, c1.length - i1); + for(var i = 0; i < l; i++) c2[i2 + i] = c1.charCodeAt(i1 + i); + for(; i < len; i++) c2[i2 + i] = 0; + } + } + return 0; + } + function MlFile(){} + function MlFakeFile(content){this.data = content;} + MlFakeFile.prototype = new MlFile(); + MlFakeFile.prototype.constructor = MlFakeFile; + MlFakeFile.prototype.truncate = + function(len){ + var old = this.data; + this.data = caml_create_bytes(len | 0); + caml_blit_bytes(old, 0, this.data, 0, len); + }; + MlFakeFile.prototype.length = + function(){return caml_ml_bytes_length(this.data);}; + MlFakeFile.prototype.write = + function(offset, buf, pos, len){ + var clen = this.length(); + if(offset + len >= clen){ + var new_str = caml_create_bytes(offset + len), old_data = this.data; + this.data = new_str; + caml_blit_bytes(old_data, 0, this.data, 0, clen); + } + caml_blit_bytes(caml_bytes_of_array(buf), pos, this.data, offset, len); + return 0; + }; + MlFakeFile.prototype.read = + function(offset, buf, pos, len){ + var clen = this.length(); + if(offset + len >= clen) len = clen - offset; + if(len){ + var data = caml_create_bytes(len | 0); + caml_blit_bytes(this.data, offset, data, 0, len); + buf.set(caml_uint8_array_of_bytes(data), pos); + } + return len; + }; + function MlFakeFd(name, file, flags){ + this.file = file; + this.name = name; + this.flags = flags; + } + MlFakeFd.prototype.err_closed = + function(){ + caml_raise_sys_error(this.name + ": file descriptor already closed"); + }; + MlFakeFd.prototype.length = + function(){if(this.file) return this.file.length(); this.err_closed();}; + MlFakeFd.prototype.write = + function(offset, buf, pos, len){ + if(this.file) return this.file.write(offset, buf, pos, len); + this.err_closed(); + }; + MlFakeFd.prototype.read = + function(offset, buf, pos, len){ + if(this.file) return this.file.read(offset, buf, pos, len); + this.err_closed(); + }; + MlFakeFd.prototype.close = function(){this.file = undefined;}; + function MlFakeDevice(root, f){ + this.content = {}; + this.root = root; + this.lookupFun = f; + } + MlFakeDevice.prototype.nm = function(name){return this.root + name;}; + MlFakeDevice.prototype.create_dir_if_needed = + function(name){ + var comp = name.split("/"), res = ""; + for(var i = 0; i < comp.length - 1; i++){ + res += comp[i] + "/"; + if(this.content[res]) continue; + this.content[res] = Symbol("directory"); + } + }; + MlFakeDevice.prototype.slash = + function(name){return /\/$/.test(name) ? name : name + "/";}; + MlFakeDevice.prototype.lookup = + function(name){ + if(! this.content[name] && this.lookupFun){ + var + res = + this.lookupFun + (caml_string_of_jsbytes(this.root), caml_string_of_jsbytes(name)); + if(res !== 0){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1])); + } + } + }; + MlFakeDevice.prototype.exists = + function(name){ + if(name == "") return 1; + var name_slash = this.slash(name); + if(this.content[name_slash]) return 1; + this.lookup(name); + return this.content[name] ? 1 : 0; + }; + MlFakeDevice.prototype.isFile = + function(name){return this.exists(name) && ! this.is_dir(name) ? 1 : 0;}; + MlFakeDevice.prototype.mkdir = + function(name, mode, raise_unix){ + var unix_error = raise_unix && caml_named_value("Unix.Unix_error"); + if(this.exists(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("EEXIST", "mkdir", this.nm(name))); + else + caml_raise_sys_error(name + ": File exists"); + var parent = /^(.*)\/[^/]+/.exec(name); + parent = parent && parent[1] || ""; + if(! this.exists(parent)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOENT", "mkdir", this.nm(parent))); + else + caml_raise_sys_error(parent + ": No such file or directory"); + if(! this.is_dir(parent)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTDIR", "mkdir", this.nm(parent))); + else + caml_raise_sys_error(parent + ": Not a directory"); + this.create_dir_if_needed(this.slash(name)); + }; + MlFakeDevice.prototype.rmdir = + function(name, raise_unix){ + var + unix_error = raise_unix && caml_named_value("Unix.Unix_error"), + name_slash = name == "" ? "" : this.slash(name), + r = new RegExp("^" + name_slash + "([^/]+)"); + if(! this.exists(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOENT", "rmdir", this.nm(name))); else - if(s2.t == 2 && i2 == s2.c.length) - {s2.c - += - s1.t == 4 - ?caml_subarray_to_jsbytes(s1.c,i1,len) - :i1 == 0 && s1.c.length == len?s1.c:s1.c.substr(i1,len); - s2.t = s2.c.length == s2.l?0:2} - else - {if(s2.t != 4)caml_convert_bytes_to_array(s2); - var c1=s1.c,c2=s2.c; - if(s1.t == 4) - if(i2 <= i1) - for(var i=0;i < len;i++)c2[i2 + i] = c1[i1 + i]; - else - for(var i=len - 1;i >= 0;i--)c2[i2 + i] = c1[i1 + i]; - else - {var l=Math.min(len,c1.length - i1); - for(var i=0;i < l;i++)c2[i2 + i] = c1.charCodeAt(i1 + i); - for(;i < len;i++)c2[i2 + i] = 0}} - return 0} - function MlFile(){} - function MlFakeFile(content){this.data = content} - MlFakeFile.prototype = new MlFile(); - MlFakeFile.prototype.constructor = MlFakeFile; - MlFakeFile.prototype.truncate - = - function(len) - {var old=this.data; - this.data = caml_create_bytes(len | 0); - caml_blit_bytes(old,0,this.data,0,len)}; - MlFakeFile.prototype.length - = - function(){return caml_ml_bytes_length(this.data)}; - MlFakeFile.prototype.write - = - function(offset,buf,pos,len) - {var clen=this.length(); - if(offset + len >= clen) - {var new_str=caml_create_bytes(offset + len),old_data=this.data; - this.data = new_str; - caml_blit_bytes(old_data,0,this.data,0,clen)} - caml_blit_bytes(caml_bytes_of_array(buf),pos,this.data,offset,len); - return 0}; - MlFakeFile.prototype.read - = - function(offset,buf,pos,len) - {var clen=this.length(); - if(offset + len >= clen)len = clen - offset; - if(len) - {var data=caml_create_bytes(len | 0); - caml_blit_bytes(this.data,offset,data,0,len); - buf.set(caml_uint8_array_of_bytes(data),pos)} - return len}; - function MlFakeFd(name,file,flags) - {this.file = file;this.name = name;this.flags = flags} - MlFakeFd.prototype.err_closed - = - function() - {caml_raise_sys_error(this.name + ": file descriptor already closed")}; - MlFakeFd.prototype.length - = - function(){if(this.file)return this.file.length();this.err_closed()}; - MlFakeFd.prototype.write - = - function(offset,buf,pos,len) - {if(this.file)return this.file.write(offset,buf,pos,len); - this.err_closed()}; - MlFakeFd.prototype.read - = - function(offset,buf,pos,len) - {if(this.file)return this.file.read(offset,buf,pos,len); - this.err_closed()}; - MlFakeFd.prototype.close = function(){this.file = undefined}; - function MlFakeDevice(root,f) - {this.content = {};this.root = root;this.lookupFun = f} - MlFakeDevice.prototype.nm = function(name){return this.root + name}; - MlFakeDevice.prototype.create_dir_if_needed - = - function(name) - {var comp=name.split("/"),res=""; - for(var i=0;i < comp.length - 1;i++) - {res += comp[i] + "/"; - if(this.content[res])continue; - this.content[res] = Symbol("directory")}}; - MlFakeDevice.prototype.slash - = - function(name){return /\/$/.test(name)?name:name + "/"}; - MlFakeDevice.prototype.lookup - = - function(name) - {if(! this.content[name] && this.lookupFun) - {var - res= - this.lookupFun - (caml_string_of_jsbytes(this.root),caml_string_of_jsbytes(name)); - if(res !== 0) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_bytes_of_string(res[1]))}}}; - MlFakeDevice.prototype.exists - = - function(name) - {if(name == "")return 1; - var name_slash=this.slash(name); - if(this.content[name_slash])return 1; - this.lookup(name); - return this.content[name]?1:0}; - MlFakeDevice.prototype.mkdir - = - function(name,mode,raise_unix) - {var unix_error=raise_unix && caml_named_value("Unix.Unix_error"); - if(this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("EEXIST","mkdir",this.nm(name))); - else - caml_raise_sys_error(name + ": File exists"); - var parent=/^(.*)\/[^/]+/.exec(name); - parent = parent && parent[1] || ""; - if(! this.exists(parent)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOENT","mkdir",this.nm(parent))); - else - caml_raise_sys_error(parent + ": No such file or directory"); - if(! this.is_dir(parent)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTDIR","mkdir",this.nm(parent))); - else - caml_raise_sys_error(parent + ": Not a directory"); - this.create_dir_if_needed(this.slash(name))}; - MlFakeDevice.prototype.rmdir - = - function(name,raise_unix) - {var - unix_error=raise_unix && caml_named_value("Unix.Unix_error"), - name_slash=name == ""?"":this.slash(name), - r=new RegExp("^" + name_slash + "([^/]+)"); - if(! this.exists(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOENT","rmdir",this.nm(name))); - else - caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTDIR","rmdir",this.nm(name))); - else - caml_raise_sys_error(name + ": Not a directory"); - for(var n in this.content) - if(n.match(r)) - if(unix_error) - caml_raise_with_args - (unix_error,make_unix_err_args("ENOTEMPTY","rmdir",this.nm(name))); - else - caml_raise_sys_error(this.nm(name) + ": Directory not empty"); - delete this.content[name_slash]}; - MlFakeDevice.prototype.readdir - = - function(name) - {var name_slash=name == ""?"":this.slash(name); - if(! this.exists(name)) caml_raise_sys_error(name + ": No such file or directory"); - if(! this.is_dir(name))caml_raise_sys_error(name + ": Not a directory"); - var r=new RegExp("^" + name_slash + "([^/]+)"),seen={},a=[]; - for(var n in this.content) - {var m=n.match(r); - if(m && ! seen[m[1]]){seen[m[1]] = true;a.push(m[1])}} - return a}; - MlFakeDevice.prototype.opendir - = - function(name,raise_unix) - {var - unix_error=raise_unix && caml_named_value("Unix.Unix_error"), - a=this.readdir(name), - c=false, - i=0; - return {readSync: - function() - {if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF","closedir",this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - if(i == a.length)return null; - var entry=a[i]; - i++; - return {name:entry}}, - closeSync: - function() - {if(c) - if(unix_error) - caml_raise_with_args - (unix_error, - make_unix_err_args("EBADF","closedir",this.nm(name))); - else - caml_raise_sys_error(name + ": closedir failed"); - c = true; - a = []}}}; - MlFakeDevice.prototype.is_dir - = - function(name) - {if(name == "")return true; - var name_slash=this.slash(name); - return this.content[name_slash]?1:0}; - MlFakeDevice.prototype.unlink - = - function(name) - {var ok=this.content[name]?true:false; - delete this.content[name]; - return ok}; - MlFakeDevice.prototype.open - = - function(name,f) - {var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]) - {if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate)file.truncate()} + if(! this.is_dir(name)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTDIR", "rmdir", this.nm(name))); else - if(f.create) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]} + caml_raise_sys_error(name + ": Not a directory"); + for(var n in this.content) + if(n.match(r)) + if(unix_error) + caml_raise_with_args + (unix_error, make_unix_err_args("ENOTEMPTY", "rmdir", this.nm(name))); else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name),file,f)}; - MlFakeDevice.prototype.open - = - function(name,f) - {var file; - if(f.rdonly && f.wronly) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (this.nm(name) - + - " : flags Open_text and Open_binary are not compatible"); - this.lookup(name); - if(this.content[name]) - {if(this.is_dir(name)) - caml_raise_sys_error(this.nm(name) + " : is a directory"); - if(f.create && f.excl) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - file = this.content[name]; - if(f.truncate)file.truncate()} - else - if(f.create) - {this.create_dir_if_needed(name); - this.content[name] = new MlFakeFile(caml_create_bytes(0)); - file = this.content[name]} - else - caml_raise_no_such_file(this.nm(name)); - return new MlFakeFd(this.nm(name),file,f)}; - MlFakeDevice.prototype.register - = - function(name,content) - {var file; - if(this.content[name]) - caml_raise_sys_error(this.nm(name) + " : file already exists"); - if(caml_is_ml_bytes(content))file = new MlFakeFile(content); - if(caml_is_ml_string(content)) - file = new MlFakeFile(caml_bytes_of_string(content)); - else - if(content instanceof Array) - file = new MlFakeFile(caml_bytes_of_array(content)); - else - if(typeof content === "string") - file = new MlFakeFile(caml_bytes_of_jsbytes(content)); - else - if(content.toString) - {var - bytes= - caml_bytes_of_string(caml_string_of_jsstring(content.toString())); - file = new MlFakeFile(bytes)} - if(file) - {this.create_dir_if_needed(name);this.content[name] = file} - else - caml_raise_sys_error - (this.nm(name) + " : registering file with invalid content type")}; - MlFakeDevice.prototype.constructor = MlFakeDevice; - function caml_ml_string_length(s){return caml_ml_bytes_length(s)} - function caml_bytes_unsafe_get(s,i) - {switch(s.t & 6) - {default:if(i >= s.c.length)return 0;case 0:return s.c.charCodeAt(i); - case 4:return s.c[i] - }} - function caml_string_unsafe_get(s,i){return caml_bytes_unsafe_get(s,i)} - function caml_uint8_array_of_string(s) - {var l=caml_ml_string_length(s),a=new Array(l),i=0; - for(;i < l;i++)a[i] = caml_string_unsafe_get(s,i); - return a} - function caml_bytes_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_bytes_unsafe_set(s,i,c) - {c &= 0xff; - if(s.t != 4) - {if(i == s.c.length) - {s.c += String.fromCharCode(c);if(i + 1 == s.l)s.t = 0;return 0} - caml_convert_bytes_to_array(s)} - s.c[i] = c; - return 0} - function caml_bytes_set(s,i,c) - {if(i >>> 0 >= s.l)caml_bytes_bound_error(); - return caml_bytes_unsafe_set(s,i,c)} - function MlNodeFd(fd,flags) - {this.fs = require("fs");this.fd = fd;this.flags = flags} - MlNodeFd.prototype = new MlFile(); - MlNodeFd.prototype.constructor = MlNodeFd; - MlNodeFd.prototype.truncate - = - function(len) - {try - {this.fs.ftruncateSync(this.fd,len | 0)} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.length - = - function() - {try - {return this.fs.fstatSync(this.fd).size} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.write - = - function(offset,buf,buf_offset,len) - {try - {if(this.flags.isCharacterDevice) - this.fs.writeSync(this.fd,buf,buf_offset,len); - else - this.fs.writeSync(this.fd,buf,buf_offset,len,offset)} - catch(err){caml_raise_sys_error(err.toString())} - return 0}; - MlNodeFd.prototype.read - = - function(offset,a,buf_offset,len) - {try - {if(this.flags.isCharacterDevice) - var read=this.fs.readSync(this.fd,a,buf_offset,len); - else - var read=this.fs.readSync(this.fd,a,buf_offset,len,offset); - return read} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeFd.prototype.close - = - function() - {try - {this.fs.closeSync(this.fd);return 0} - catch(err){caml_raise_sys_error(err.toString())}}; - function MlNodeDevice(root){this.fs = require("fs");this.root = root} - MlNodeDevice.prototype.nm = function(name){return this.root + name}; - MlNodeDevice.prototype.exists - = - function(name) - {try {return this.fs.existsSync(this.nm(name))?1:0}catch(err){return 0}}; - MlNodeDevice.prototype.mkdir - = - function(name,mode,raise_unix) - {try - {this.fs.mkdirSync(this.nm(name),{mode:mode});return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.rmdir - = - function(name,raise_unix) - {try - {this.fs.rmdirSync(this.nm(name));return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.readdir - = - function(name,raise_unix) - {try - {return this.fs.readdirSync(this.nm(name))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.is_dir - = - function(name) - {try - {return this.fs.statSync(this.nm(name)).isDirectory()?1:0} - catch(err){caml_raise_sys_error(err.toString())}}; - MlNodeDevice.prototype.unlink - = - function(name,raise_unix) - {try - {var b=this.fs.existsSync(this.nm(name))?1:0; - this.fs.unlinkSync(this.nm(name)); - return b} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.open - = - function(name,f,raise_unix) - {var consts=require("constants"),res=0; - for(var key in f) - switch(key) - {case "rdonly":res |= consts.O_RDONLY;break; - case "wronly":res |= consts.O_WRONLY;break; - case "append":res |= consts.O_WRONLY | consts.O_APPEND;break; - case "create":res |= consts.O_CREAT;break; - case "truncate":res |= consts.O_TRUNC;break; - case "excl":res |= consts.O_EXCL;break; - case "binary":res |= consts.O_BINARY;break; - case "text":res |= consts.O_TEXT;break; - case "nonblock":res |= consts.O_NONBLOCK;break - } - try - {var - fd=this.fs.openSync(this.nm(name),res), - isCharacterDevice= - this.fs.lstatSync(this.nm(name)).isCharacterDevice(); - f.isCharacterDevice = isCharacterDevice; - return new MlNodeFd(fd,f)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.rename - = - function(o,n,raise_unix) - {try - {this.fs.renameSync(this.nm(o),this.nm(n))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.stat - = - function(name,raise_unix) - {try - {var js_stats=this.fs.statSync(this.nm(name)); - return this.stats_from_js(js_stats)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.lstat - = - function(name,raise_unix) - {try - {var js_stats=this.fs.lstatSync(this.nm(name)); - return this.stats_from_js(js_stats)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.symlink - = - function(to_dir,target,path,raise_unix) - {try - {this.fs.symlinkSync(this.nm(target),this.nm(path),to_dir?"dir":"file"); - return 0} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.readlink - = - function(name,raise_unix) - {try - {var link=this.fs.readlinkSync(this.nm(name),"utf8"); - return caml_string_of_jsstring(link)} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.opendir - = - function(name,raise_unix) - {try - {return this.fs.opendirSync(this.nm(name))} - catch(err){this.raise_nodejs_error(err,raise_unix)}}; - MlNodeDevice.prototype.raise_nodejs_error - = - function(err,raise_unix) - {var unix_error=caml_named_value("Unix.Unix_error"); - if(raise_unix && unix_error) - {var args=make_unix_err_args(err.code,err.syscall,err.path,err.errno); - caml_raise_with_args(unix_error,args)} - else - caml_raise_sys_error(err.toString())}; - MlNodeDevice.prototype.stats_from_js - = - function(js_stats) - {var file_kind; - if(js_stats.isFile()) - file_kind = 0; - else - if(js_stats.isDirectory()) - file_kind = 1; - else - if(js_stats.isCharacterDevice()) - file_kind = 2; - else - if(js_stats.isBlockDevice()) - file_kind = 3; - else - if(js_stats.isSymbolicLink()) - file_kind = 4; - else - if(js_stats.isFIFO()) - file_kind = 5; - else - if(js_stats.isSocket())file_kind = 6; - return [0, - js_stats.dev, - js_stats.ino, - file_kind, - js_stats.mode, - js_stats.nlink, - js_stats.uid, - js_stats.gid, - js_stats.rdev, - js_stats.size, - js_stats.atimeMs, - js_stats.mtimeMs, - js_stats.ctimeMs]}; - MlNodeDevice.prototype.constructor = MlNodeDevice; - function caml_get_root(path) - {var x=path_is_absolute(path);if(! x)return;return x[0] + "/"} - function caml_failwith(msg) - {if(! caml_global_data.Failure) - caml_global_data.Failure = [248,caml_string_of_jsbytes("Failure"),- 3]; - caml_raise_with_string(caml_global_data.Failure,msg)} - var - caml_root= - caml_get_root(caml_current_dir) - || - caml_failwith("unable to compute caml_root"), - jsoo_mount_point=[]; - if(fs_node_supported()) - jsoo_mount_point.push - ({path:caml_root,device:new MlNodeDevice(caml_root)}); - else - jsoo_mount_point.push - ({path:caml_root,device:new MlFakeDevice(caml_root)}); - jsoo_mount_point.push - ({path:"/static/",device:new MlFakeDevice("/static/")}); - function resolve_fs_device(name) - {var - path=caml_make_path(name), - name=path.join("/"), - name_slash=caml_trailing_slash(name), - res; - for(var i=0;i < jsoo_mount_point.length;i++) - {var m=jsoo_mount_point[i]; - if - (name_slash.search(m.path) - == - 0 - && - (! res || res.path.length < m.path.length)) - res - = - {path:m.path, - device:m.device, - rest:name.substring(m.path.length,name.length)}} - if(! res && fs_node_supported()) - {var root=caml_get_root(name); - if(root && root.match(/^[a-zA-Z]:\/$/)) - {var m={path:root,device:new MlNodeDevice(root)}; - jsoo_mount_point.push(m); - res - = - {path:m.path, - device:m.device, - rest:name.substring(m.path.length,name.length)}}} - if(res)return res; - caml_raise_sys_error("no device found for " + name_slash)} - function caml_sys_is_directory(name) - {var root=resolve_fs_device(name),a=root.device.is_dir(root.rest); - return a?1:0} - function caml_raise_not_found() - {caml_raise_constant(caml_global_data.Not_found)} - function caml_sys_getenv(name) - {var process=globalThis.process,n=caml_jsstring_of_string(name); - if(process && process.env && process.env[n] != undefined) - return caml_string_of_jsstring(process.env[n]); - if(globalThis.jsoo_static_env && globalThis.jsoo_static_env[n]) - return caml_string_of_jsstring(globalThis.jsoo_static_env[n]); - caml_raise_not_found()} - function shift_right_nat(nat1,ofs1,len1,nat2,ofs2,nbits) - {if(nbits == 0){nat2.data[ofs2] = 0;return 0} - var wrap=0; - for(var i=len1 - 1;i >= 0;i--) - {var a=nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a >>> nbits | wrap; - wrap = a << 32 - nbits} - nat2.data[ofs2] = wrap; - return 0} - var caml_gr_state; - function caml_gr_state_get() - {if(caml_gr_state)return caml_gr_state; - throw [0, - caml_named_value("Graphics.Graphic_failure"), - caml_string_of_jsbytes("Not initialized")]} - function caml_gr_point_color(x,y) - {var - s=caml_gr_state_get(), - im=s.context.getImageData(x,s.height - y,1,1), - d=im.data; - return (d[0] << 16) + (d[1] << 8) + d[2]} - var MlObjectTable; - if(typeof globalThis.WeakMap === "undefined") - MlObjectTable - = - function() - {function NaiveLookup(objs){this.objs = objs} - NaiveLookup.prototype.get - = - function(v) - {for(var i=0;i < this.objs.length;i++)if(this.objs[i] === v)return i}; - NaiveLookup.prototype.set = function(){}; - return function() - {this.objs = [];this.lookup = new NaiveLookup(this.objs)}} - (); - else - MlObjectTable - = - function(){this.objs = [];this.lookup = new (globalThis.WeakMap)()}; - MlObjectTable.prototype.store - = - function(v){this.lookup.set(v,this.objs.length);this.objs.push(v)}; - MlObjectTable.prototype.recall - = - function(v) - {var i=this.lookup.get(v); - return i === undefined?undefined:this.objs.length - i}; - function caml_sys_rename(o,n) - {var o_root=resolve_fs_device(o),n_root=resolve_fs_device(n); - if(o_root.device != n_root.device) - caml_failwith - ("caml_sys_rename: cannot move file between two filesystem"); - if(! o_root.device.rename) - caml_failwith("caml_sys_rename: no implemented"); - o_root.device.rename(o_root.rest,n_root.rest)} - function caml_log10_float(x){return Math.log10(x)} - var caml_runtime_warnings=0; - function caml_ml_enable_runtime_warnings(bool) - {caml_runtime_warnings = bool;return 0} - function caml_classify_float(x) - {if(isFinite(x)) - {if(Math.abs(x) >= 2.2250738585072014e-308)return 0; - if(x != 0)return 1; - return 2} - return isNaN(x)?4:3} - var caml_ml_channels=new Array(); - function caml_refill(chan) - {if(chan.refill != null) - {var str=chan.refill(),str_a=caml_uint8_array_of_string(str); - if(str_a.length == 0) - chan.refill = null; - else - {if(chan.buffer.length < chan.buffer_max + str_a.length) - {var b=new Uint8Array(chan.buffer_max + str_a.length); - b.set(chan.buffer); - chan.buffer = b} - chan.buffer.set(str_a,chan.buffer_max); - chan.offset += str_a.length; - chan.buffer_max += str_a.length}} - else - {var - nread= - chan.file.read - (chan.offset, - chan.buffer, - chan.buffer_max, - chan.buffer.length - chan.buffer_max); - chan.offset += nread; - chan.buffer_max += nread}} - function caml_array_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_ml_input_scan_line(chanid) - {var chan=caml_ml_channels[chanid],p=chan.buffer_curr; - do - if(p >= chan.buffer_max) - {if(chan.buffer_curr > 0) - {chan.buffer.set(chan.buffer.subarray(chan.buffer_curr),0); - p -= chan.buffer_curr; - chan.buffer_max -= chan.buffer_curr; - chan.buffer_curr = 0} - if(chan.buffer_max >= chan.buffer.length)return - chan.buffer_max; - var prev_max=chan.buffer_max; - caml_refill(chan); - if(prev_max == chan.buffer_max)return - chan.buffer_max} - while - (chan.buffer[p++] != 10); - return p - chan.buffer_curr} - function caml_gc_minor(unit) - {if(typeof globalThis.gc == "function")globalThis.gc(true);return 0} - var - bigInt= - function(undefined) - {"use strict"; - var - BASE=1e7, - LOG_BASE=7, - MAX_INT=9007199254740992, - MAX_INT_ARR=smallToArray(MAX_INT), - DEFAULT_ALPHABET="0123456789abcdefghijklmnopqrstuvwxyz", - BigInt=joo_global_object.BigInt, - supportsNativeBigInt=typeof BigInt === "function"; - function Integer(v,radix,alphabet,caseSensitive) - {if(typeof v === "undefined")return Integer[0]; - if(typeof radix !== "undefined") - return + radix === 10 && ! alphabet - ?parseValue(v) - :parseBase(v,radix,alphabet,caseSensitive); - return parseValue(v)} - function BigInteger(value,sign) - {this.value = value; - this.sign = sign; - this.isSmall = false; - this.caml_custom = "_z"} - BigInteger.prototype = Object.create(Integer.prototype); - function SmallInteger(value) - {this.value = value; - this.sign = value < 0; - this.isSmall = true; - this.caml_custom = "_z"} - SmallInteger.prototype = Object.create(Integer.prototype); - function NativeBigInt(value) - {this.value = value;this.caml_custom = "_z"} - NativeBigInt.prototype = Object.create(Integer.prototype); - function isPrecise(n){return - MAX_INT < n && n < MAX_INT} - function smallToArray(n) - {if(n < 1e7)return [n]; - if(n < 1e14)return [n % 1e7,Math.floor(n / 1e7)]; - return [n % 1e7,Math.floor(n / 1e7) % 1e7,Math.floor(n / 1e14)]} - function arrayToSmall(arr) - {trim(arr); - var length=arr.length; - if(length < 4 && compareAbs(arr,MAX_INT_ARR) < 0) - switch(length) - {case 0:return 0; - case 1:return arr[0]; - case 2:return arr[0] + arr[1] * BASE; - default:return arr[0] + (arr[1] + arr[2] * BASE) * BASE} - return arr} - function trim(v){var i=v.length;while(v[--i] === 0);v.length = i + 1} - function createArray(length) - {var x=new Array(length),i=- 1;while(++i < length)x[i] = 0;return x} - function truncate(n) - {if(n > 0)return Math.floor(n);return Math.ceil(n)} - function add(a,b) - {var - l_a=a.length, - l_b=b.length, - r=new Array(l_a), - carry=0, - base=BASE, - sum, - i; - for(i = 0;i < l_b;i++) - {sum = a[i] + b[i] + carry; - carry = sum >= base?1:0; - r[i] = sum - carry * base} - while(i < l_a) - {sum = a[i] + carry; - carry = sum === base?1:0; - r[i++] = sum - carry * base} - if(carry > 0)r.push(carry); - return r} - function addAny(a,b) - {if(a.length >= b.length)return add(a,b);return add(b,a)} - function addSmall(a,carry) - {var l=a.length,r=new Array(l),base=BASE,sum,i; - for(i = 0;i < l;i++) - {sum = a[i] - base + carry; - carry = Math.floor(sum / base); - r[i] = sum - carry * base; - carry += 1} - while(carry > 0) - {r[i++] = carry % base;carry = Math.floor(carry / base)} - return r} - BigInteger.prototype.add - = - function(v) - {var n=parseValue(v); - if(this.sign !== n.sign)return this.subtract(n.negate()); - var a=this.value,b=n.value; - if(n.isSmall) - return new BigInteger(addSmall(a,Math.abs(b)),this.sign); - return new BigInteger(addAny(a,b),this.sign)}; - BigInteger.prototype.plus = BigInteger.prototype.add; - SmallInteger.prototype.add - = - function(v) - {var n=parseValue(v),a=this.value; - if(a < 0 !== n.sign)return this.subtract(n.negate()); - var b=n.value; - if(n.isSmall) - {if(isPrecise(a + b))return new SmallInteger(a + b); - b = smallToArray(Math.abs(b))} - return new BigInteger(addSmall(b,Math.abs(a)),a < 0)}; - SmallInteger.prototype.plus = SmallInteger.prototype.add; - NativeBigInt.prototype.add - = - function(v) - {return new NativeBigInt(this.value + parseValue(v).value)}; - NativeBigInt.prototype.plus = NativeBigInt.prototype.add; - function subtract(a,b) - {var - a_l=a.length, - b_l=b.length, - r=new Array(a_l), - borrow=0, - base=BASE, - i, - difference; - for(i = 0;i < b_l;i++) - {difference = a[i] - borrow - b[i]; - if(difference < 0){difference += base;borrow = 1}else borrow = 0; - r[i] = difference} - for(i = b_l;i < a_l;i++) - {difference = a[i] - borrow; - if(difference < 0) - difference += base; - else - {r[i++] = difference;break} - r[i] = difference} - for(;i < a_l;i++)r[i] = a[i]; - trim(r); - return r} - function subtractAny(a,b,sign) - {var value; - if(compareAbs(a,b) >= 0) - value = subtract(a,b); - else - {value = subtract(b,a);sign = ! sign} - value = arrayToSmall(value); - if(typeof value === "number") - {if(sign)value = - value;return new SmallInteger(value)} - return new BigInteger(value,sign)} - function subtractSmall(a,b,sign) - {var l=a.length,r=new Array(l),carry=- b,base=BASE,i,difference; - for(i = 0;i < l;i++) - {difference = a[i] + carry; - carry = Math.floor(difference / base); - difference %= base; - r[i] = difference < 0?difference + base:difference} - r = arrayToSmall(r); - if(typeof r === "number") - {if(sign)r = - r;return new SmallInteger(r)} - return new BigInteger(r,sign)} - BigInteger.prototype.subtract - = - function(v) - {var n=parseValue(v); - if(this.sign !== n.sign)return this.add(n.negate()); - var a=this.value,b=n.value; - if(n.isSmall)return subtractSmall(a,Math.abs(b),this.sign); - return subtractAny(a,b,this.sign)}; - BigInteger.prototype.minus = BigInteger.prototype.subtract; - SmallInteger.prototype.subtract - = - function(v) - {var n=parseValue(v),a=this.value; - if(a < 0 !== n.sign)return this.add(n.negate()); - var b=n.value; - if(n.isSmall)return new SmallInteger(a - b); - return subtractSmall(b,Math.abs(a),a >= 0)}; - SmallInteger.prototype.minus = SmallInteger.prototype.subtract; - NativeBigInt.prototype.subtract - = - function(v) - {return new NativeBigInt(this.value - parseValue(v).value)}; - NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; - BigInteger.prototype.negate - = - function(){return new BigInteger(this.value,! this.sign)}; - SmallInteger.prototype.negate - = - function() - {var sign=this.sign,small=new SmallInteger(- this.value); - small.sign = ! sign; - return small}; - NativeBigInt.prototype.negate - = - function(){return new NativeBigInt(- this.value)}; - BigInteger.prototype.abs - = - function(){return new BigInteger(this.value,false)}; - SmallInteger.prototype.abs - = - function(){return new SmallInteger(Math.abs(this.value))}; - NativeBigInt.prototype.abs - = - function() - {return new NativeBigInt(this.value >= 0?this.value:- this.value)}; - function multiplyLong(a,b) - {var - a_l=a.length, - b_l=b.length, - l=a_l + b_l, - r=createArray(l), - base=BASE, - product, - carry, - i, - a_i, - b_j; - for(i = 0;i < a_l;++i) - {a_i = a[i]; - for(var j=0;j < b_l;++j) - {b_j = b[j]; - product = a_i * b_j + r[i + j]; - carry = Math.floor(product / base); - r[i + j] = product - carry * base; - r[i + j + 1] += carry}} - trim(r); - return r} - function multiplySmall(a,b) - {var l=a.length,r=new Array(l),base=BASE,carry=0,product,i; - for(i = 0;i < l;i++) - {product = a[i] * b + carry; - carry = Math.floor(product / base); - r[i] = product - carry * base} - while(carry > 0) - {r[i++] = carry % base;carry = Math.floor(carry / base)} - return r} - function shiftLeft(x,n) - {var r=[];while(n-- > 0)r.push(0);return r.concat(x)} - function multiplyKaratsuba(x,y) - {var n=Math.max(x.length,y.length); - if(n <= 30)return multiplyLong(x,y); - n = Math.ceil(n / 2); - var - b=x.slice(n), - a=x.slice(0,n), - d=y.slice(n), - c=y.slice(0,n), - ac=multiplyKaratsuba(a,c), - bd=multiplyKaratsuba(b,d), - abcd=multiplyKaratsuba(addAny(a,b),addAny(c,d)), - product= - addAny - (addAny(ac,shiftLeft(subtract(subtract(abcd,ac),bd),n)), - shiftLeft(bd,2 * n)); - trim(product); - return product} - function useKaratsuba(l1,l2) - {return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0} - BigInteger.prototype.multiply - = - function(v) - {var - n=parseValue(v), - a=this.value, - b=n.value, - sign=this.sign !== n.sign, - abs; - if(n.isSmall) - {if(b === 0)return Integer[0]; - if(b === 1)return this; - if(b === - 1)return this.negate(); - abs = Math.abs(b); - if(abs < BASE)return new BigInteger(multiplySmall(a,abs),sign); - b = smallToArray(abs)} - if(useKaratsuba(a.length,b.length)) - return new BigInteger(multiplyKaratsuba(a,b),sign); - return new BigInteger(multiplyLong(a,b),sign)}; - BigInteger.prototype.times = BigInteger.prototype.multiply; - function multiplySmallAndArray(a,b,sign) - {if(a < BASE)return new BigInteger(multiplySmall(b,a),sign); - return new BigInteger(multiplyLong(b,smallToArray(a)),sign)} - SmallInteger.prototype._multiplyBySmall - = - function(a) - {if(isPrecise(a.value * this.value)) - return new SmallInteger(a.value * this.value); - return multiplySmallAndArray - (Math.abs(a.value), - smallToArray(Math.abs(this.value)), - this.sign !== a.sign)}; - BigInteger.prototype._multiplyBySmall - = - function(a) - {if(a.value === 0)return Integer[0]; - if(a.value === 1)return this; - if(a.value === - 1)return this.negate(); - return multiplySmallAndArray - (Math.abs(a.value),this.value,this.sign !== a.sign)}; - SmallInteger.prototype.multiply - = - function(v){return parseValue(v)._multiplyBySmall(this)}; - SmallInteger.prototype.times = SmallInteger.prototype.multiply; - NativeBigInt.prototype.multiply - = - function(v) - {return new NativeBigInt(this.value * parseValue(v).value)}; - NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; - function square(a) - {var - l=a.length, - r=createArray(l + l), - base=BASE, - product, - carry, - i, - a_i, - a_j; - for(i = 0;i < l;i++) - {a_i = a[i]; - carry = 0 - a_i * a_i; - for(var j=i;j < l;j++) - {a_j = a[j]; - product = 2 * (a_i * a_j) + r[i + j] + carry; - carry = Math.floor(product / base); - r[i + j] = product - carry * base} - r[i + l] = carry} - trim(r); - return r} - BigInteger.prototype.square - = - function(){return new BigInteger(square(this.value),false)}; - SmallInteger.prototype.square - = - function() - {var value=this.value * this.value; - if(isPrecise(value))return new SmallInteger(value); - return new - BigInteger - (square(smallToArray(Math.abs(this.value))),false)}; - NativeBigInt.prototype.square - = - function(v){return new NativeBigInt(this.value * this.value)}; - function divMod1(a,b) - {var - a_l=a.length, - b_l=b.length, - base=BASE, - result=createArray(b.length), - divisorMostSignificantDigit=b[b_l - 1], - lambda=Math.ceil(base / (2 * divisorMostSignificantDigit)), - remainder=multiplySmall(a,lambda), - divisor=multiplySmall(b,lambda), - quotientDigit, - shift, - carry, - borrow, - i, - l, - q; - if(remainder.length <= a_l)remainder.push(0); - divisor.push(0); - divisorMostSignificantDigit = divisor[b_l - 1]; - for(shift = a_l - b_l;shift >= 0;shift--) - {quotientDigit = base - 1; - if(remainder[shift + b_l] !== divisorMostSignificantDigit) - quotientDigit - = - Math.floor - ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) - / - divisorMostSignificantDigit); - carry = 0; - borrow = 0; - l = divisor.length; - for(i = 0;i < l;i++) - {carry += quotientDigit * divisor[i]; - q = Math.floor(carry / base); - borrow += remainder[shift + i] - (carry - q * base); - carry = q; - if(borrow < 0) - {remainder[shift + i] = borrow + base;borrow = - 1} + caml_raise_sys_error(this.nm(name) + ": Directory not empty"); + delete this.content[name_slash]; + }; + MlFakeDevice.prototype.readdir = + function(name){ + var name_slash = name == "" ? "" : this.slash(name); + if(! this.exists(name)) + caml_raise_sys_error(name + ": No such file or directory"); + if(! this.is_dir(name)) caml_raise_sys_error(name + ": Not a directory"); + var r = new RegExp("^" + name_slash + "([^/]+)"), seen = {}, a = []; + for(var n in this.content){ + var m = n.match(r); + if(m && ! seen[m[1]]){seen[m[1]] = true; a.push(m[1]);} + } + return a; + }; + MlFakeDevice.prototype.opendir = + function(name, raise_unix){ + var + unix_error = raise_unix && caml_named_value("Unix.Unix_error"), + a = this.readdir(name), + c = false, + i = 0; + return {readSync: + function(){ + if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF", "closedir", this.nm(name))); else - {remainder[shift + i] = borrow;borrow = 0}} - while(borrow !== 0) - {quotientDigit -= 1; - carry = 0; - for(i = 0;i < l;i++) - {carry += remainder[shift + i] - base + divisor[i]; - if(carry < 0) - {remainder[shift + i] = carry + base;carry = 0} - else - {remainder[shift + i] = carry;carry = 1}} - borrow += carry} - result[shift] = quotientDigit} - remainder = divModSmall(remainder,lambda)[0]; - return [arrayToSmall(result),arrayToSmall(remainder)]} - function divMod2(a,b) - {var - a_l=a.length, - b_l=b.length, - result=[], - part=[], - base=BASE, - guess, - xlen, - highx, - highy, - check; - while(a_l) - {part.unshift(a[--a_l]); - trim(part); - if(compareAbs(part,b) < 0){result.push(0);continue} - xlen = part.length; - highx = part[xlen - 1] * base + part[xlen - 2]; - highy = b[b_l - 1] * base + b[b_l - 2]; - if(xlen > b_l)highx = (highx + 1) * base; - guess = Math.ceil(highx / highy); - do - {check = multiplySmall(b,guess); - if(compareAbs(check,part) <= 0)break; - guess--} - while - (guess); - result.push(guess); - part = subtract(part,check)} - result.reverse(); - return [arrayToSmall(result),arrayToSmall(part)]} - function divModSmall(value,lambda) - {var - length=value.length, - quotient=createArray(length), - base=BASE, - i, - q, - remainder, - divisor; - remainder = 0; - for(i = length - 1;i >= 0;--i) - {divisor = remainder * base + value[i]; - q = truncate(divisor / lambda); - remainder = divisor - q * lambda; - quotient[i] = q | 0} - return [quotient,remainder | 0]} - function divModAny(self,v) - {var value,n=parseValue(v); - if(supportsNativeBigInt) - return [new NativeBigInt(self.value / n.value), - new NativeBigInt(self.value % n.value)]; - var a=self.value,b=n.value,quotient; - if(b === 0)throw new Error("Cannot divide by zero"); - if(self.isSmall) - {if(n.isSmall) - return [new SmallInteger(truncate(a / b)), - new SmallInteger(a % b)]; - return [Integer[0],self]} - if(n.isSmall) - {if(b === 1)return [self,Integer[0]]; - if(b == - 1)return [self.negate(),Integer[0]]; - var abs=Math.abs(b); - if(abs < BASE) - {value = divModSmall(a,abs); - quotient = arrayToSmall(value[0]); - var remainder=value[1]; - if(self.sign)remainder = - remainder; - if(typeof quotient === "number") - {if(self.sign !== n.sign)quotient = - quotient; - return [new SmallInteger(quotient), - new SmallInteger(remainder)]} - return [new BigInteger(quotient,self.sign !== n.sign), - new SmallInteger(remainder)]} - b = smallToArray(abs)} - var comparison=compareAbs(a,b); - if(comparison === - 1)return [Integer[0],self]; - if(comparison === 0) - return [Integer[self.sign === n.sign?1:- 1],Integer[0]]; - if(a.length + b.length <= 200) - value = divMod1(a,b); - else - value = divMod2(a,b); - quotient = value[0]; - var qSign=self.sign !== n.sign,mod=value[1],mSign=self.sign; - if(typeof quotient === "number") - {if(qSign)quotient = - quotient; - quotient = new SmallInteger(quotient)} - else - quotient = new BigInteger(quotient,qSign); - if(typeof mod === "number") - {if(mSign)mod = - mod;mod = new SmallInteger(mod)} - else - mod = new BigInteger(mod,mSign); - return [quotient,mod]} - BigInteger.prototype.divmod - = - function(v) - {var result=divModAny(this,v); - return {quotient:result[0],remainder:result[1]}}; - NativeBigInt.prototype.divmod - = - SmallInteger.prototype.divmod - = - BigInteger.prototype.divmod; - BigInteger.prototype.divide - = - function(v){return divModAny(this,v)[0]}; - NativeBigInt.prototype.over - = - NativeBigInt.prototype.divide - = - function(v) - {return new NativeBigInt(this.value / parseValue(v).value)}; - SmallInteger.prototype.over - = - SmallInteger.prototype.divide - = - BigInteger.prototype.over - = - BigInteger.prototype.divide; - BigInteger.prototype.mod = function(v){return divModAny(this,v)[1]}; - NativeBigInt.prototype.mod - = - NativeBigInt.prototype.remainder - = - function(v) - {return new NativeBigInt(this.value % parseValue(v).value)}; - SmallInteger.prototype.remainder - = - SmallInteger.prototype.mod - = - BigInteger.prototype.remainder - = - BigInteger.prototype.mod; - BigInteger.prototype.pow - = - function(v) - {var n=parseValue(v),a=this.value,b=n.value,value,x,y; - if(b === 0)return Integer[1]; - if(a === 0)return Integer[0]; - if(a === 1)return Integer[1]; - if(a === - 1)return n.isEven()?Integer[1]:Integer[- 1]; - if(n.sign)return Integer[0]; - if(! n.isSmall) - throw new Error("The exponent " + n.toString() + " is too large."); - if(this.isSmall) - if(isPrecise(value = Math.pow(a,b))) - return new SmallInteger(truncate(value)); - x = this; - y = Integer[1]; - while(true) - {if(b & 1 === 1){y = y.times(x);--b} - if(b === 0)break; - b /= 2; - x = x.square()} - return y}; - SmallInteger.prototype.pow = BigInteger.prototype.pow; - NativeBigInt.prototype.pow - = - function(v) - {var - n=parseValue(v), - a=this.value, - b=n.value, - _0=BigInt(0), - _1=BigInt(1), - _2=BigInt(2); - if(b === _0)return Integer[1]; - if(a === _0)return Integer[0]; - if(a === _1)return Integer[1]; - if(a === BigInt(- 1))return n.isEven()?Integer[1]:Integer[- 1]; - if(n.isNegative())return new NativeBigInt(_0); - var x=this,y=Integer[1]; - while(true) - {if((b & _1) === _1){y = y.times(x);--b} - if(b === _0)break; - b /= _2; - x = x.square()} - return y}; - BigInteger.prototype.modPow - = - function(exp,mod) - {exp = parseValue(exp); - mod = parseValue(mod); - if(mod.isZero()) - throw new Error("Cannot take modPow with modulus 0"); - var r=Integer[1],base=this.mod(mod); - if(exp.isNegative()) - {exp = exp.multiply(Integer[- 1]);base = base.modInv(mod)} - while(exp.isPositive()) - {if(base.isZero())return Integer[0]; - if(exp.isOdd())r = r.multiply(base).mod(mod); - exp = exp.divide(2); - base = base.square().mod(mod)} - return r}; - NativeBigInt.prototype.modPow - = - SmallInteger.prototype.modPow - = - BigInteger.prototype.modPow; - function compareAbs(a,b) - {if(a.length !== b.length)return a.length > b.length?1:- 1; - for(var i=a.length - 1;i >= 0;i--) - if(a[i] !== b[i])return a[i] > b[i]?1:- 1; - return 0} - BigInteger.prototype.compareAbs - = - function(v) - {var n=parseValue(v),a=this.value,b=n.value; - if(n.isSmall)return 1; - return compareAbs(a,b)}; - SmallInteger.prototype.compareAbs - = - function(v) - {var n=parseValue(v),a=Math.abs(this.value),b=n.value; - if(n.isSmall){b = Math.abs(b);return a === b?0:a > b?1:- 1} - return - 1}; - NativeBigInt.prototype.compareAbs - = - function(v) - {var a=this.value,b=parseValue(v).value; - a = a >= 0?a:- a; - b = b >= 0?b:- b; - return a === b?0:a > b?1:- 1}; - BigInteger.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var n=parseValue(v),a=this.value,b=n.value; - if(this.sign !== n.sign)return n.sign?1:- 1; - if(n.isSmall)return this.sign?- 1:1; - return compareAbs(a,b) * (this.sign?- 1:1)}; - BigInteger.prototype.compareTo = BigInteger.prototype.compare; - SmallInteger.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var n=parseValue(v),a=this.value,b=n.value; - if(n.isSmall)return a == b?0:a > b?1:- 1; - if(a < 0 !== n.sign)return a < 0?- 1:1; - return a < 0?1:- 1}; - SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; - NativeBigInt.prototype.compare - = - function(v) - {if(v === Infinity)return - 1; - if(v === - Infinity)return 1; - var a=this.value,b=parseValue(v).value; - return a === b?0:a > b?1:- 1}; - NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; - BigInteger.prototype.equals - = - function(v){return this.compare(v) === 0}; - NativeBigInt.prototype.eq - = - NativeBigInt.prototype.equals - = - SmallInteger.prototype.eq - = - SmallInteger.prototype.equals - = - BigInteger.prototype.eq - = - BigInteger.prototype.equals; - BigInteger.prototype.notEquals - = - function(v){return this.compare(v) !== 0}; - NativeBigInt.prototype.neq - = - NativeBigInt.prototype.notEquals - = - SmallInteger.prototype.neq - = - SmallInteger.prototype.notEquals - = - BigInteger.prototype.neq - = - BigInteger.prototype.notEquals; - BigInteger.prototype.greater - = - function(v){return this.compare(v) > 0}; - NativeBigInt.prototype.gt - = - NativeBigInt.prototype.greater - = - SmallInteger.prototype.gt - = - SmallInteger.prototype.greater - = - BigInteger.prototype.gt - = - BigInteger.prototype.greater; - BigInteger.prototype.lesser - = - function(v){return this.compare(v) < 0}; - NativeBigInt.prototype.lt - = - NativeBigInt.prototype.lesser - = - SmallInteger.prototype.lt - = - SmallInteger.prototype.lesser - = - BigInteger.prototype.lt - = - BigInteger.prototype.lesser; - BigInteger.prototype.greaterOrEquals - = - function(v){return this.compare(v) >= 0}; - NativeBigInt.prototype.geq - = - NativeBigInt.prototype.greaterOrEquals - = - SmallInteger.prototype.geq - = - SmallInteger.prototype.greaterOrEquals - = - BigInteger.prototype.geq - = - BigInteger.prototype.greaterOrEquals; - BigInteger.prototype.lesserOrEquals - = - function(v){return this.compare(v) <= 0}; - NativeBigInt.prototype.leq - = - NativeBigInt.prototype.lesserOrEquals - = - SmallInteger.prototype.leq - = - SmallInteger.prototype.lesserOrEquals - = - BigInteger.prototype.leq - = - BigInteger.prototype.lesserOrEquals; - BigInteger.prototype.isEven - = - function(){return (this.value[0] & 1) === 0}; - SmallInteger.prototype.isEven - = - function(){return (this.value & 1) === 0}; - NativeBigInt.prototype.isEven - = - function(){return (this.value & BigInt(1)) === BigInt(0)}; - BigInteger.prototype.isOdd - = - function(){return (this.value[0] & 1) === 1}; - SmallInteger.prototype.isOdd - = - function(){return (this.value & 1) === 1}; - NativeBigInt.prototype.isOdd - = - function(){return (this.value & BigInt(1)) === BigInt(1)}; - BigInteger.prototype.isPositive = function(){return ! this.sign}; - SmallInteger.prototype.isPositive - = - function(){return this.value > 0}; - NativeBigInt.prototype.isPositive - = - SmallInteger.prototype.isPositive; - BigInteger.prototype.isNegative = function(){return this.sign}; - SmallInteger.prototype.isNegative - = - function(){return this.value < 0}; - NativeBigInt.prototype.isNegative - = - SmallInteger.prototype.isNegative; - BigInteger.prototype.isUnit = function(){return false}; - SmallInteger.prototype.isUnit - = - function(){return Math.abs(this.value) === 1}; - NativeBigInt.prototype.isUnit - = - function(){return this.abs().value === BigInt(1)}; - BigInteger.prototype.isZero = function(){return false}; - SmallInteger.prototype.isZero = function(){return this.value === 0}; - NativeBigInt.prototype.isZero - = - function(){return this.value === BigInt(0)}; - BigInteger.prototype.isDivisibleBy - = - function(v) - {var n=parseValue(v); - if(n.isZero())return false; - if(n.isUnit())return true; - if(n.compareAbs(2) === 0)return this.isEven(); - return this.mod(n).isZero()}; - NativeBigInt.prototype.isDivisibleBy - = - SmallInteger.prototype.isDivisibleBy - = - BigInteger.prototype.isDivisibleBy; - function isBasicPrime(v) - {var n=v.abs(); - if(n.isUnit())return false; - if(n.equals(2) || n.equals(3) || n.equals(5))return true; - if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) - return false; - if(n.lesser(49))return true} - function millerRabinTest(n,a) - {var nPrev=n.prev(),b=nPrev,r=0,d,t,i,x; - while(b.isEven())b = b.divide(2),r++; - next: - for(i = 0;i < a.length;i++) - {if(n.lesser(a[i]))continue; - x = bigInt(a[i]).modPow(b,n); - if(x.isUnit() || x.equals(nPrev))continue; - for(d = r - 1;d != 0;d--) - {x = x.square().mod(n); - if(x.isUnit())return false; - if(x.equals(nPrev))continue next} - return false} - return true} - BigInteger.prototype.isPrime - = - function(strict) - {var isPrime=isBasicPrime(this); - if(isPrime !== undefined)return isPrime; - var n=this.abs(),bits=n.bitLength(); - if(bits <= 64) - return millerRabinTest(n,[2,3,5,7,11,13,17,19,23,29,31,37]); - var - logN=Math.log(2) * bits.toJSNumber(), - t=Math.ceil(strict === true?2 * Math.pow(logN,2):logN); - for(var a=[],i=0;i < t;i++)a.push(bigInt(i + 2)); - return millerRabinTest(n,a)}; - NativeBigInt.prototype.isPrime - = - SmallInteger.prototype.isPrime - = - BigInteger.prototype.isPrime; - BigInteger.prototype.isProbablePrime - = - function(iterations) - {var isPrime=isBasicPrime(this); - if(isPrime !== undefined)return isPrime; - var n=this.abs(),t=iterations === undefined?5:iterations; - for(var a=[],i=0;i < t;i++) - a.push(bigInt.randBetween(2,n.minus(2))); - return millerRabinTest(n,a)}; - NativeBigInt.prototype.isProbablePrime - = - SmallInteger.prototype.isProbablePrime - = - BigInteger.prototype.isProbablePrime; - BigInteger.prototype.modInv - = - function(n) - {var - t=bigInt.zero, - newT=bigInt.one, - r=parseValue(n), - newR=this.abs(), - q, - lastT, - lastR; - while(! newR.isZero()) - {q = r.divide(newR); - lastT = t; - lastR = r; - t = newT; - r = newR; - newT = lastT.subtract(q.multiply(newT)); - newR = lastR.subtract(q.multiply(newR))} - if(! r.isUnit()) - throw new - Error - (this.toString() - + - " and " - + - n.toString() - + - " are not co-prime"); - if(t.compare(0) === - 1)t = t.add(n); - if(this.isNegative())return t.negate(); - return t}; - NativeBigInt.prototype.modInv - = - SmallInteger.prototype.modInv - = - BigInteger.prototype.modInv; - BigInteger.prototype.next - = - function() - {var value=this.value; - if(this.sign)return subtractSmall(value,1,this.sign); - return new BigInteger(addSmall(value,1),this.sign)}; - SmallInteger.prototype.next - = - function() - {var value=this.value; - if(value + 1 < MAX_INT)return new SmallInteger(value + 1); - return new BigInteger(MAX_INT_ARR,false)}; - NativeBigInt.prototype.next - = - function(){return new NativeBigInt(this.value + BigInt(1))}; - BigInteger.prototype.prev - = - function() - {var value=this.value; - if(this.sign)return new BigInteger(addSmall(value,1),true); - return subtractSmall(value,1,this.sign)}; - SmallInteger.prototype.prev - = - function() - {var value=this.value; - if(value - 1 > - MAX_INT)return new SmallInteger(value - 1); - return new BigInteger(MAX_INT_ARR,true)}; - NativeBigInt.prototype.prev - = - function(){return new NativeBigInt(this.value - BigInt(1))}; - var powersOfTwo=[1]; - while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) - powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); - var - powers2Length=powersOfTwo.length, - highestPower2=powersOfTwo[powers2Length - 1]; - function shift_isSmall(n){return Math.abs(n) <= BASE} - BigInteger.prototype.shiftLeft - = - function(v) - {var n=parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0)return this.shiftRight(- n); - var result=this; - if(result.isZero())return result; - while(n >= powers2Length) - {result = result.multiply(highestPower2);n -= powers2Length - 1} - return result.multiply(powersOfTwo[n])}; - NativeBigInt.prototype.shiftLeft - = - SmallInteger.prototype.shiftLeft - = - BigInteger.prototype.shiftLeft; - BigInteger.prototype.shiftRight - = - function(v) - {var remQuo,n=parseValue(v).toJSNumber(); - if(! shift_isSmall(n)) - throw new Error(String(n) + " is too large for shifting."); - if(n < 0)return this.shiftLeft(- n); - var result=this; - while(n >= powers2Length) - {if(result.isZero() || result.isNegative() && result.isUnit()) - return result; - remQuo = divModAny(result,highestPower2); - result = remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]; - n -= powers2Length - 1} - remQuo = divModAny(result,powersOfTwo[n]); - return remQuo[1].isNegative()?remQuo[0].prev():remQuo[0]}; - NativeBigInt.prototype.shiftRight - = - SmallInteger.prototype.shiftRight - = - BigInteger.prototype.shiftRight; - function bitwise(x,y,fn) - {y = parseValue(y); - var - xSign=x.isNegative(), - ySign=y.isNegative(), - xRem=xSign?x.not():x, - yRem=ySign?y.not():y, - xDigit=0, - yDigit=0, - xDivMod=null, - yDivMod=null, - result=[]; - while(! xRem.isZero() || ! yRem.isZero()) - {xDivMod = divModAny(xRem,highestPower2); - xDigit = xDivMod[1].toJSNumber(); - if(xSign)xDigit = highestPower2 - 1 - xDigit; - yDivMod = divModAny(yRem,highestPower2); - yDigit = yDivMod[1].toJSNumber(); - if(ySign)yDigit = highestPower2 - 1 - yDigit; - xRem = xDivMod[0]; - yRem = yDivMod[0]; - result.push(fn(xDigit,yDigit))} - var sum=fn(xSign?1:0,ySign?1:0) !== 0?bigInt(- 1):bigInt(0); - for(var i=result.length - 1;i >= 0;i -= 1) - sum = sum.multiply(highestPower2).add(bigInt(result[i])); - return sum} - BigInteger.prototype.not = function(){return this.negate().prev()}; - NativeBigInt.prototype.not - = - SmallInteger.prototype.not - = - BigInteger.prototype.not; - BigInteger.prototype.and - = - function(n){return bitwise(this,n,function(a,b){return a & b})}; - NativeBigInt.prototype.and - = - SmallInteger.prototype.and - = - BigInteger.prototype.and; - BigInteger.prototype.or - = - function(n){return bitwise(this,n,function(a,b){return a | b})}; - NativeBigInt.prototype.or - = - SmallInteger.prototype.or - = - BigInteger.prototype.or; - BigInteger.prototype.xor - = - function(n){return bitwise(this,n,function(a,b){return a ^ b})}; - NativeBigInt.prototype.xor - = - SmallInteger.prototype.xor - = - BigInteger.prototype.xor; - var - LOBMASK_I=1 << 30, - LOBMASK_BI=(BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; - function roughLOB(n) - {var - v=n.value, - x= - typeof v === "number" - ?v | LOBMASK_I - :typeof v === "bigint" - ?v | BigInt(LOBMASK_I) - :v[0] + v[1] * BASE | LOBMASK_BI; - return x & - x} - function integerLogarithm(value,base) - {if(base.compareTo(value) <= 0) - {var - tmp=integerLogarithm(value,base.square(base)), - p=tmp.p, - e=tmp.e, - t=p.multiply(base); - return t.compareTo(value) <= 0?{p:t,e:e * 2 + 1}:{p:p,e:e * 2}} - return {p:bigInt(1),e:0}} - BigInteger.prototype.bitLength - = - function() - {var n=this; - if(n.compareTo(bigInt(0)) < 0)n = n.negate().subtract(bigInt(1)); - if(n.compareTo(bigInt(0)) === 0)return bigInt(0); - return bigInt(integerLogarithm(n,bigInt(2)).e).add(bigInt(1))}; - NativeBigInt.prototype.bitLength - = - SmallInteger.prototype.bitLength - = - BigInteger.prototype.bitLength; - function max(a,b) - {a = parseValue(a);b = parseValue(b);return a.greater(b)?a:b} - function min(a,b) - {a = parseValue(a);b = parseValue(b);return a.lesser(b)?a:b} - function gcd(a,b) - {a = parseValue(a).abs(); - b = parseValue(b).abs(); - if(a.equals(b))return a; - if(a.isZero())return b; - if(b.isZero())return a; - var c=Integer[1],d,t; - while(a.isEven() && b.isEven()) - {d = min(roughLOB(a),roughLOB(b)); - a = a.divide(d); - b = b.divide(d); - c = c.multiply(d)} - while(a.isEven())a = a.divide(roughLOB(a)); - do - {while(b.isEven())b = b.divide(roughLOB(b)); - if(a.greater(b)){t = b;b = a;a = t} - b = b.subtract(a)} - while - (! b.isZero()); - return c.isUnit()?a:a.multiply(c)} - function lcm(a,b) - {a = parseValue(a).abs(); - b = parseValue(b).abs(); - return a.divide(gcd(a,b)).multiply(b)} - function randBetween(a,b) - {a = parseValue(a); - b = parseValue(b); - var low=min(a,b),high=max(a,b),range=high.subtract(low).add(1); - if(range.isSmall)return low.add(Math.floor(Math.random() * range)); - var digits=toBase(range,BASE).value,result=[],restricted=true; - for(var i=0;i < digits.length;i++) - {var - top=restricted?digits[i]:BASE, - digit=truncate(Math.random() * top); - result.push(digit); - if(digit < top)restricted = false} - return low.add(Integer.fromArray(result,BASE,false))} - function parseBase(text,base,alphabet,caseSensitive) - {alphabet = alphabet || DEFAULT_ALPHABET; - text = String(text); - if(! caseSensitive) - {text = text.toLowerCase();alphabet = alphabet.toLowerCase()} - var length=text.length,i,absBase=Math.abs(base),alphabetValues={}; - for(i = 0;i < alphabet.length;i++)alphabetValues[alphabet[i]] = i; - for(i = 0;i < length;i++) - {var c=text[i]; - if(c === "-")continue; - if(c in alphabetValues) - if(alphabetValues[c] >= absBase) - {if(c === "1" && absBase === 1)continue; - throw new - Error - (c + " is not a valid digit in base " + base + ".")}} - base = parseValue(base); - var digits=[],isNegative=text[0] === "-"; - for(i = isNegative?1:0;i < text.length;i++) - {var c=text[i]; - if(c in alphabetValues) - digits.push(parseValue(alphabetValues[c])); - else - if(c === "<") - {var start=i; - do i++;while(text[i] !== ">" && i < text.length); - digits.push(parseValue(text.slice(start + 1,i)))} - else - throw new Error(c + " is not a valid character")} - return parseBaseFromArray(digits,base,isNegative)} - function parseBaseFromArray(digits,base,isNegative) - {var val=Integer[0],pow=Integer[1],i; - for(i = digits.length - 1;i >= 0;i--) - {val = val.add(digits[i].times(pow));pow = pow.times(base)} - return isNegative?val.negate():val} - function stringify(digit,alphabet) - {alphabet = alphabet || DEFAULT_ALPHABET; - if(digit < alphabet.length)return alphabet[digit]; - return "<" + digit + ">"} - function toBase(n,base) - {base = bigInt(base); - if(base.isZero()) - {if(n.isZero())return {value:[0],isNegative:false}; - throw new Error("Cannot convert nonzero numbers to base 0.")} - if(base.equals(- 1)) - {if(n.isZero())return {value:[0],isNegative:false}; - if(n.isNegative()) - return {value: - [].concat.apply - ([], - Array.apply(null,Array(- n.toJSNumber())).map - (Array.prototype.valueOf,[1,0])), - isNegative:false}; - var - arr= - Array.apply(null,Array(n.toJSNumber() - 1)).map - (Array.prototype.valueOf,[0,1]); - arr.unshift([1]); - return {value:[].concat.apply([],arr),isNegative:false}} - var neg=false; - if(n.isNegative() && base.isPositive()){neg = true;n = n.abs()} - if(base.isUnit()) - {if(n.isZero())return {value:[0],isNegative:false}; - return {value: - Array.apply(null,Array(n.toJSNumber())).map - (Number.prototype.valueOf,1), - isNegative:neg}} - var out=[],left=n,divmod; - while(left.isNegative() || left.compareAbs(base) >= 0) - {divmod = left.divmod(base); - left = divmod.quotient; - var digit=divmod.remainder; - if(digit.isNegative()) - {digit = base.minus(digit).abs();left = left.next()} - out.push(digit.toJSNumber())} - out.push(left.toJSNumber()); - return {value:out.reverse(),isNegative:neg}} - function toBaseString(n,base,alphabet) - {var arr=toBase(n,base); - return (arr.isNegative?"-":"") - + - arr.value.map(function(x){return stringify(x,alphabet)}).join - ("")} - BigInteger.prototype.toArray - = - function(radix){return toBase(this,radix)}; - SmallInteger.prototype.toArray - = - function(radix){return toBase(this,radix)}; - NativeBigInt.prototype.toArray - = - function(radix){return toBase(this,radix)}; - BigInteger.prototype.toString - = - function(radix,alphabet) - {if(radix === undefined)radix = 10; - if(radix !== 10)return toBaseString(this,radix,alphabet); - var - v=this.value, - l=v.length, - str=String(v[--l]), - zeros="0000000", - digit; - while(--l >= 0) - {digit = String(v[l]);str += zeros.slice(digit.length) + digit} - var sign=this.sign?"-":""; - return sign + str}; - SmallInteger.prototype.toString - = - function(radix,alphabet) - {if(radix === undefined)radix = 10; - if(radix != 10)return toBaseString(this,radix,alphabet); - return String(this.value)}; - NativeBigInt.prototype.toString = SmallInteger.prototype.toString; - NativeBigInt.prototype.toJSON - = - BigInteger.prototype.toJSON - = - SmallInteger.prototype.toJSON - = - function(){return this.toString()}; - BigInteger.prototype.valueOf - = - function(){return parseInt(this.toString(),10)}; - BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; - SmallInteger.prototype.valueOf = function(){return this.value}; - SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; - NativeBigInt.prototype.valueOf - = - NativeBigInt.prototype.toJSNumber - = - function(){return parseInt(this.toString(),10)}; - function parseStringValue(v) - {if(isPrecise(+ v)) - {var x=+ v; - if(x === truncate(x)) - return supportsNativeBigInt - ?new NativeBigInt(BigInt(x)) - :new SmallInteger(x); - throw new Error("Invalid integer: " + v)} - var sign=v[0] === "-"; - if(sign)v = v.slice(1); - var split=v.split(/e/i); - if(split.length > 2) - throw new Error("Invalid integer: " + split.join("e")); - if(split.length === 2) - {var exp=split[1]; - if(exp[0] === "+")exp = exp.slice(1); - exp = + exp; - if(exp !== truncate(exp) || ! isPrecise(exp)) - throw new - Error - ("Invalid integer: " + exp + " is not a valid exponent."); - var text=split[0],decimalPlace=text.indexOf("."); - if(decimalPlace >= 0) - {exp -= text.length - decimalPlace - 1; - text - = - text.slice(0,decimalPlace) - + - text.slice(decimalPlace + 1)} - if(exp < 0) - throw new - Error - ("Cannot include negative exponent part for integers"); - text += new Array(exp + 1).join("0"); - v = text} - var isValid=/^([0-9][0-9]*)$/.test(v); - if(! isValid)throw new Error("Invalid integer: " + v); - if(supportsNativeBigInt) - return new NativeBigInt(BigInt(sign?"-" + v:v)); - var r=[],max=v.length,l=LOG_BASE,min=max - l; - while(max > 0) - {r.push(+ v.slice(min,max));min -= l;if(min < 0)min = 0;max -= l} - trim(r); - return new BigInteger(r,sign)} - function parseNumberValue(v) - {if(supportsNativeBigInt)return new NativeBigInt(BigInt(v)); - if(isPrecise(v)) - {if(v !== truncate(v))throw new Error(v + " is not an integer."); - return new SmallInteger(v)} - return parseStringValue(v.toString())} - function parseValue(v) - {if(typeof v === "number")return parseNumberValue(v); - if(typeof v === "string")return parseStringValue(v); - if(typeof v === "bigint")return new NativeBigInt(v); - return v} - for(var i=0;i < 1000;i++) - {Integer[i] = parseValue(i);if(i > 0)Integer[- i] = parseValue(- i)} - Integer.one = Integer[1]; - Integer.zero = Integer[0]; - Integer.minusOne = Integer[- 1]; - Integer.max = max; - Integer.min = min; - Integer.gcd = gcd; - Integer.lcm = lcm; - Integer.isInstance - = - function(x) - {return x instanceof BigInteger - || - x instanceof SmallInteger - || - x instanceof NativeBigInt}; - Integer.randBetween = randBetween; - Integer.fromArray - = - function(digits,base,isNegative) - {return parseBaseFromArray - (digits.map(parseValue),parseValue(base || 10),isNegative)}; - return Integer} - (); - function ml_z_normalize(x) - {var y=x.toJSNumber() | 0;if(x.equals(bigInt(y)))return y;return x} - function ml_z_pow(z1,i1) - {i1 = bigInt(i1); - if(i1.lt(bigInt(0))) - caml_invalid_argument("Z.pow: exponent must be nonnegative"); - return ml_z_normalize(bigInt(z1).pow(i1))} - function ml_z_root(z,i) - {var zero=bigInt(0),one=bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.root: even root of a negative number"); - if(z.equals(zero) || z.equals(one))return ml_z_normalize(z); - var start=zero,end=z,ans=null,two=bigInt(2); - while(start.leq(end)) - {var mid=start.add(end).divide(two),po=mid.pow(i); - if(po.equals(z)) - return ml_z_normalize(mid); - else - if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} - return ml_z_normalize(ans)} - function ml_z_rootrem(z,i) - {var zero=bigInt(0),one=bigInt(1); - z = bigInt(z); - if(i % 2 === 0 && z.lt(zero)) - caml_invalid_argument("Z.rootrem: even root of a negative number"); - if(z.equals(zero) || z.equals(one))return [0,ml_z_normalize(z),zero]; - var start=zero,end=z,ans=null,two=bigInt(2); - while(start.leq(end)) - {var mid=start.add(end).divide(two),po=mid.pow(i); - if(po.equals(z)) - return [0,ml_z_normalize(mid),zero]; - else - if(po.lt(z)){start = mid.next();ans = mid}else end = mid.prev()} - return [0,ml_z_normalize(ans),ml_z_normalize(z.minus(ans.pow(i)))]} - function caml_ml_condition_new(unit){return {condition:1}} - function caml_int64_of_bytes(a) - {return new - MlInt64 - (a[7] << 0 | a[6] << 8 | a[5] << 16, - a[4] << 0 | a[3] << 8 | a[2] << 16, - a[1] << 0 | a[0] << 8)} - function caml_ba_uint8_get64(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 7 >= ba.data.length)caml_array_bound_error(); + caml_raise_sys_error(name + ": closedir failed"); + if(i == a.length) return null; + var entry = a[i]; + i++; + return {name: entry}; + }, + closeSync: + function(){ + if(c) + if(unix_error) + caml_raise_with_args + (unix_error, + make_unix_err_args("EBADF", "closedir", this.nm(name))); + else + caml_raise_sys_error(name + ": closedir failed"); + c = true; + a = []; + }}; + }; + MlFakeDevice.prototype.is_dir = + function(name){ + if(name == "") return true; + var name_slash = this.slash(name); + return this.content[name_slash] ? 1 : 0; + }; + MlFakeDevice.prototype.unlink = + function(name){ + var ok = this.content[name] ? true : false; + delete this.content[name]; + return ok; + }; + MlFakeDevice.prototype.open = + function(name, f){ + var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]){ + if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate) file.truncate(); + } + else if(f.create){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]; + } + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name), file, f); + }; + MlFakeDevice.prototype.open = + function(name, f){ + var file; + if(f.rdonly && f.wronly) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (this.nm(name) + + " : flags Open_text and Open_binary are not compatible"); + this.lookup(name); + if(this.content[name]){ + if(this.is_dir(name)) + caml_raise_sys_error(this.nm(name) + " : is a directory"); + if(f.create && f.excl) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + file = this.content[name]; + if(f.truncate) file.truncate(); + } + else if(f.create){ + this.create_dir_if_needed(name); + this.content[name] = new MlFakeFile(caml_create_bytes(0)); + file = this.content[name]; + } + else + caml_raise_no_such_file(this.nm(name)); + return new MlFakeFd(this.nm(name), file, f); + }; + MlFakeDevice.prototype.register = + function(name, content){ + var file; + if(this.content[name]) + caml_raise_sys_error(this.nm(name) + " : file already exists"); + if(caml_is_ml_bytes(content)) file = new MlFakeFile(content); + if(caml_is_ml_string(content)) + file = new MlFakeFile(caml_bytes_of_string(content)); + else if(content instanceof Array) + file = new MlFakeFile(caml_bytes_of_array(content)); + else if(typeof content === "string") + file = new MlFakeFile(caml_bytes_of_jsbytes(content)); + else if(content.toString){ var - b1=ba.get(ofs + 0), - b2=ba.get(ofs + 1), - b3=ba.get(ofs + 2), - b4=ba.get(ofs + 3), - b5=ba.get(ofs + 4), - b6=ba.get(ofs + 5), - b7=ba.get(ofs + 6), - b8=ba.get(ofs + 7); - return caml_int64_of_bytes([b8,b7,b6,b5,b4,b3,b2,b1])} - function caml_int64_to_bytes(x){return x.toArray()} - function caml_int64_marshal(writer,v,sizes) - {var b=caml_int64_to_bytes(v); - for(var i=0;i < 8;i++)writer.write(8,b[i]); - sizes[0] = 8; - sizes[1] = 8} - function caml_ba_num_dims(ba){return ba.dims.length} - function caml_return_exn_constant(tag){return tag} - function caml_wrap_exception(e) - {if(e instanceof Array)return e; - if - (globalThis.RangeError - && - e instanceof globalThis.RangeError - && - e.message - && - e.message.match(/maximum call stack/i)) - return caml_return_exn_constant(caml_global_data.Stack_overflow); - if - (globalThis.InternalError - && - e instanceof globalThis.InternalError - && - e.message - && - e.message.match(/too much recursion/i)) - return caml_return_exn_constant(caml_global_data.Stack_overflow); - if(e instanceof globalThis.Error && caml_named_value("jsError")) - return [0,caml_named_value("jsError"),e]; - return [0,caml_global_data.Failure,caml_string_of_jsstring(String(e))]} - function caml_create_file(name,content) - {var root=resolve_fs_device(name); - if(! root.device.register)caml_failwith("cannot register file"); - root.device.register(root.rest,content); - return 0} - function jsoo_create_file(name,content) - {var - name=caml_string_of_jsbytes(name), - content=caml_string_of_jsbytes(content); - return caml_create_file(name,content)} - function caml_fs_init() - {var tmp=globalThis.caml_fs_tmp; - if(tmp) - for(var i=0;i < tmp.length;i++) - jsoo_create_file(tmp[i].name,tmp[i].content); - globalThis.jsoo_create_file = jsoo_create_file; - globalThis.caml_fs_tmp = []; - return 0} - function caml_get_continuation_callstack(){return [0]} - var caml_parser_trace=0; - function caml_set_parser_trace(bool) - {var oldflag=caml_parser_trace;caml_parser_trace = bool;return oldflag} - function caml_list_of_js_array(a) - {var l=0; - for(var i=a.length - 1;i >= 0;i--){var e=a[i];l = [0,e,l]} - return l} - function caml_mul(a,b){return Math.imul(a,b)} - function caml_hash_mix_int(h,d) - {d = caml_mul(d,0xcc9e2d51 | 0); - d = d << 15 | d >>> 32 - 15; - d = caml_mul(d,0x1b873593); - h ^= d; - h = h << 13 | h >>> 32 - 13; - return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0} - function num_digits_nat(nat,ofs,len) - {for(var i=len - 1;i >= 0;i--)if(nat.data[ofs + i] != 0)return i + 1; - return 1} - function caml_hash_nat(x) - {var len=num_digits_nat(x,0,x.data.length),h=0; - for(var i=0;i < len;i++)h = caml_hash_mix_int(h,x.data[i]); - return h} - function caml_call_gen(f,args) - {if(f.fun)return caml_call_gen(f.fun,args); - if(typeof f !== "function")return f; - var n=f.length | 0; - if(n === 0)return f.apply(null,args); - var argsLen=args.length | 0,d=n - argsLen | 0; - if(d == 0) - return f.apply(null,args); + bytes = + caml_bytes_of_string(caml_string_of_jsstring(content.toString())); + file = new MlFakeFile(bytes); + } + if(file){ + this.create_dir_if_needed(name); + this.content[name] = file; + } + else + caml_raise_sys_error + (this.nm(name) + " : registering file with invalid content type"); + }; + MlFakeDevice.prototype.constructor = MlFakeDevice; + function caml_ml_string_length(s){return s.length;} + function caml_string_unsafe_get(s, i){return s.charCodeAt(i);} + function caml_uint8_array_of_string(s){ + var l = caml_ml_string_length(s), a = new Array(l), i = 0; + for(; i < l; i++) a[i] = caml_string_unsafe_get(s, i); + return a; + } + function caml_bytes_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_bytes_unsafe_set(s, i, c){ + c &= 0xff; + if(s.t != 4){ + if(i == s.c.length){ + s.c += String.fromCharCode(c); + if(i + 1 == s.l) s.t = 0; + return 0; + } + caml_convert_bytes_to_array(s); + } + s.c[i] = c; + return 0; + } + function caml_bytes_set(s, i, c){ + if(i >>> 0 >= s.l) caml_bytes_bound_error(); + return caml_bytes_unsafe_set(s, i, c); + } + function MlNodeFd(fd, flags){ + this.fs = require("fs"); + this.fd = fd; + this.flags = flags; + } + MlNodeFd.prototype = new MlFile(); + MlNodeFd.prototype.constructor = MlNodeFd; + MlNodeFd.prototype.truncate = + function(len){ + try{this.fs.ftruncateSync(this.fd, len | 0);} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.length = + function(){ + try{return this.fs.fstatSync(this.fd).size;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.write = + function(offset, buf, buf_offset, len){ + try{ + if(this.flags.isCharacterDevice) + this.fs.writeSync(this.fd, buf, buf_offset, len); else - if(d < 0) - return caml_call_gen(f.apply(null,args.slice(0,n)),args.slice(n)); - else - return function() - {var - extra_args=arguments.length == 0?1:arguments.length, - nargs=new Array(args.length + extra_args); - for(var i=0;i < args.length;i++)nargs[i] = args[i]; - for(var i=0;i < arguments.length;i++) - nargs[args.length + i] = arguments[i]; - return caml_call_gen(f,nargs)}} - var caml_callback=caml_call_gen; - function caml_js_wrap_callback_arguments(f) - {return function() - {var len=arguments.length,args=new Array(len); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_callback(f,[args])}} - function caml_sys_chdir(dir) - {var root=resolve_fs_device(dir); - if(root.device.exists(root.rest)) - {if(root.rest) - caml_current_dir = caml_trailing_slash(root.path + root.rest); - else - caml_current_dir = root.path; - return 0} + this.fs.writeSync(this.fd, buf, buf_offset, len, offset); + } + catch(err){caml_raise_sys_error(err.toString());} + return 0; + }; + MlNodeFd.prototype.read = + function(offset, a, buf_offset, len){ + try{ + if(this.flags.isCharacterDevice) + var read = this.fs.readSync(this.fd, a, buf_offset, len); else - caml_raise_no_such_file(caml_jsbytes_of_string(dir))} - function caml_obj_tag(x) - {if(x instanceof Array && x[0] == x[0] >>> 0) - return x[0]; - else - if(caml_is_ml_bytes(x)) - return 252; - else - if(caml_is_ml_string(x)) - return 252; - else - if(x instanceof Function || typeof x == "function") - return 247; - else - if(x && x.caml_custom)return 255;else return 1000} - function caml_obj_update_tag(b,o,n) - {if(b[0] == o){b[0] = n;return 1}return 0} - var caml_ml_domain_unique_token_=[0]; - function caml_ml_domain_unique_token(unit) - {return caml_ml_domain_unique_token_} - function caml_lazy_update_to_forcing(o) - {var t=caml_obj_tag(o); - if(t != 246 && t != 250 && t != 244)return 4; - if(caml_obj_update_tag(o,246,244)) - return 0; - else - {var field0=o[1]; - t = o[0]; - if(t == 244) - return field0 == caml_ml_domain_unique_token(0)?1:2; - else - if(t == 250)return 3;else return 2}} - function caml_gc_counters(){return [254,0,0,0]} - function ml_z_div(z1,z2) - {z2 = bigInt(z2); - if(z2.equals(bigInt(0)))caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).divide(bigInt(z2)))} - function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero)} - function ml_z_add(z1,z2) - {return ml_z_normalize(bigInt(z1).add(bigInt(z2)))} - function ml_z_cdiv(z1,z2) - {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); - if(z1_pos * z2_pos > 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_add(ml_z_div(z1,z2),bigInt(1)); - return ml_z_div(z1,z2)} - function caml_gr_synchronize() - {caml_failwith("caml_gr_synchronize not Implemented")} - function caml_unix_closedir(dir_handle) - {try - {dir_handle.pointer.closeSync()} - catch(e) - {var unix_error=caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error,make_unix_err_args("EBADF","closedir",dir_handle.path))}} - function caml_unix_opendir(path) - {var root=resolve_fs_device(path); - if(! root.device.opendir) - caml_failwith("caml_unix_opendir: not implemented"); - var dir_handle=root.device.opendir(root.rest,true); - return {pointer:dir_handle,path:path}} - function caml_unix_rewinddir(dir_handle) - {caml_unix_closedir(dir_handle); - var new_dir_handle=caml_unix_opendir(dir_handle.path); - dir_handle.pointer = new_dir_handle.pointer; - return 0} - function caml_raise_end_of_file() - {caml_raise_constant(caml_global_data.End_of_file)} - function caml_unix_readdir(dir_handle) - {var entry; - try - {entry = dir_handle.pointer.readSync()} - catch(e) - {var unix_error=caml_named_value("Unix.Unix_error"); - caml_raise_with_args - (unix_error,make_unix_err_args("EBADF","readdir",dir_handle.path))} - if(entry === null) - caml_raise_end_of_file(); - else - return caml_string_of_jsstring(entry.name)} - function caml_unix_findfirst(path) - {var path_js=caml_jsstring_of_string(path); - path_js = path_js.replace(/(^|[\\\/])\*\.\*$/,""); - path = caml_string_of_jsstring(path_js); + var read = this.fs.readSync(this.fd, a, buf_offset, len, offset); + return read; + } + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeFd.prototype.close = + function(){ + try{this.fs.closeSync(this.fd); return 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + function MlNodeDevice(root){this.fs = require("fs"); this.root = root;} + MlNodeDevice.prototype.nm = function(name){return this.root + name;}; + MlNodeDevice.prototype.exists = + function(name){ + try{return this.fs.existsSync(this.nm(name)) ? 1 : 0;} + catch(err){return 0;} + }; + MlNodeDevice.prototype.isFile = + function(name){ + try{return this.fs.statSync(this.nm(name)).isFile() ? 1 : 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeDevice.prototype.mkdir = + function(name, mode, raise_unix){ + try{this.fs.mkdirSync(this.nm(name), {mode: mode}); return 0;} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.rmdir = + function(name, raise_unix){ + try{this.fs.rmdirSync(this.nm(name)); return 0;} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.readdir = + function(name, raise_unix){ + try{return this.fs.readdirSync(this.nm(name));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.is_dir = + function(name){ + try{return this.fs.statSync(this.nm(name)).isDirectory() ? 1 : 0;} + catch(err){caml_raise_sys_error(err.toString());} + }; + MlNodeDevice.prototype.unlink = + function(name, raise_unix){ + try{ + var b = this.fs.existsSync(this.nm(name)) ? 1 : 0; + this.fs.unlinkSync(this.nm(name)); + return b; + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.open = + function(name, f, raise_unix){ + var consts = require("constants"), res = 0; + for(var key in f) + switch(key){ + case "rdonly": + res |= consts.O_RDONLY; break; + case "wronly": + res |= consts.O_WRONLY; break; + case "append": + res |= consts.O_WRONLY | consts.O_APPEND; break; + case "create": + res |= consts.O_CREAT; break; + case "truncate": + res |= consts.O_TRUNC; break; + case "excl": + res |= consts.O_EXCL; break; + case "binary": + res |= consts.O_BINARY; break; + case "text": + res |= consts.O_TEXT; break; + case "nonblock": + res |= consts.O_NONBLOCK; break; + } + try{ var - dir_handle=caml_unix_opendir(path), - first_entry=caml_unix_readdir(dir_handle); - return [0,first_entry,dir_handle]} - function caml_is_continuation_tag(t){return 0} - var log2_ok=Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; - function jsoo_floor_log2(x) - {if(log2_ok)return Math.floor(Math.log2(x)); - var i=0; - if(x == 0)return - Infinity; - if(x >= 1)while(x >= 2){x /= 2;i++}else while(x < 1){x *= 2;i--} - return i} - function caml_int32_bits_of_float(x) - {var float32a=new Float32Array(1); - float32a[0] = x; - var int32a=new Int32Array(float32a.buffer); - return int32a[0] | 0} - function caml_int64_create_lo_mi_hi(lo,mi,hi) - {return new MlInt64(lo,mi,hi)} - function caml_int64_bits_of_float(x) - {if(! isFinite(x)) - {if(isNaN(x))return caml_int64_create_lo_mi_hi(1,0,0x7ff0); - return x > 0 - ?caml_int64_create_lo_mi_hi(0,0,0x7ff0) - :caml_int64_create_lo_mi_hi(0,0,0xfff0)} - var sign=x == 0 && 1 / x == - Infinity?0x8000:x >= 0?0:0x8000; - if(sign)x = - x; - var exp=jsoo_floor_log2(x) + 1023; - if(exp <= 0) - {exp = 0;x /= Math.pow(2,- 1026)} - else - {x /= Math.pow(2,exp - 1027); - if(x < 16){x *= 2;exp -= 1} - if(exp == 0)x /= 2} - var k=Math.pow(2,24),r3=x | 0; - x = (x - r3) * k; - var r2=x | 0; - x = (x - r2) * k; - var r1=x | 0; - r3 = r3 & 0xf | sign | exp << 4; - return caml_int64_create_lo_mi_hi(r1,r2,r3)} - function caml_ba_serialize(writer,ba,sz) - {writer.write(32,ba.dims.length); - writer.write(32,ba.kind | ba.layout << 8); - if(ba.caml_custom == "_bigarr02") - for(var i=0;i < ba.dims.length;i++) - if(ba.dims[i] < 0xffff) - writer.write(16,ba.dims[i]); - else - {writer.write(16,0xffff); - writer.write(32,0); - writer.write(32,ba.dims[i])} - else - for(var i=0;i < ba.dims.length;i++)writer.write(32,ba.dims[i]); - switch(ba.kind) - {case 2: - case 3: - case 12: - for(var i=0;i < ba.data.length;i++)writer.write(8,ba.data[i]);break; - case 4: - case 5: - for(var i=0;i < ba.data.length;i++)writer.write(16,ba.data[i]);break; - case 6: - for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]);break; - case 8: - case 9: - writer.write(8,0); - for(var i=0;i < ba.data.length;i++)writer.write(32,ba.data[i]); - break; - case 7: - for(var i=0;i < ba.data.length / 2;i++) - {var b=caml_int64_to_bytes(ba.get(i)); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break; - case 1: - for(var i=0;i < ba.data.length;i++) - {var b=caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break; - case 0: - for(var i=0;i < ba.data.length;i++) - {var b=caml_int32_bits_of_float(ba.get(i));writer.write(32,b)} - break; - case 10: - for(var i=0;i < ba.data.length / 2;i++) - {var j=ba.get(i); - writer.write(32,caml_int32_bits_of_float(j[1])); - writer.write(32,caml_int32_bits_of_float(j[2]))} - break; - case 11: - for(var i=0;i < ba.data.length / 2;i++) - {var - complex=ba.get(i), - b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); - for(var j=0;j < 8;j++)writer.write(8,b[j]); - var b=caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); - for(var j=0;j < 8;j++)writer.write(8,b[j])} - break - } - sz[0] = (4 + ba.dims.length) * 4; - sz[1] = (4 + ba.dims.length) * 8} - function caml_ba_get_size_per_element(kind) - {switch(kind){case 7:case 10:case 11:return 2;default:return 1}} - function caml_ba_create_buffer(kind,size) - {var view; - switch(kind) - {case 0:view = Float32Array;break; - case 1:view = Float64Array;break; - case 2:view = Int8Array;break; - case 3:view = Uint8Array;break; - case 4:view = Int16Array;break; - case 5:view = Uint16Array;break; - case 6:view = Int32Array;break; - case 7:view = Int32Array;break; - case 8:view = Int32Array;break; - case 9:view = Int32Array;break; - case 10:view = Float32Array;break; - case 11:view = Float64Array;break; - case 12:view = Uint8Array;break - } - if(! view)caml_invalid_argument("Bigarray.create: unsupported kind"); - var data=new view(size * caml_ba_get_size_per_element(kind)); - return data} - function caml_int32_float_of_bits(x) - {var int32a=new Int32Array(1); - int32a[0] = x; - var float32a=new Float32Array(int32a.buffer); - return float32a[0]} - function caml_int64_float_of_bits(x) - {var lo=x.lo,mi=x.mi,hi=x.hi,exp=(hi & 0x7fff) >> 4; - if(exp == 2047) - return (lo | mi | hi & 0xf) == 0?hi & 0x8000?- Infinity:Infinity:NaN; - var k=Math.pow(2,- 24),res=(lo * k + mi) * k + (hi & 0xf); - if(exp > 0) - {res += 16;res *= Math.pow(2,exp - 1027)} - else - res *= Math.pow(2,- 1026); - if(hi & 0x8000)res = - res; - return res} - function caml_ba_get_size(dims) - {var n_dims=dims.length,size=1; - for(var i=0;i < n_dims;i++) - {if(dims[i] < 0) - caml_invalid_argument("Bigarray.create: negative dimension"); - size = size * dims[i]} - return size} - function caml_int64_create_lo_hi(lo,hi) - {return new - MlInt64 - (lo & 0xffffff, - lo >>> 24 & 0xff | (hi & 0xffff) << 8, - hi >>> 16 & 0xffff)} - function caml_int64_hi32(v){return v.hi32()} - function caml_int64_lo32(v){return v.lo32()} - var caml_ba_custom_name="_bigarr02"; - function Ml_Bigarray(kind,layout,dims,buffer) - {this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer} - Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; - Ml_Bigarray.prototype.offset - = - function(arg) - {var ofs=0; - if(typeof arg === "number")arg = [arg]; - if(! (arg instanceof Array)) - caml_invalid_argument("bigarray.js: invalid offset"); - if(this.dims.length != arg.length) - caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); - if(this.layout == 0) - for(var i=0;i < this.dims.length;i++) - {if(arg[i] < 0 || arg[i] >= this.dims[i])caml_array_bound_error(); - ofs = ofs * this.dims[i] + arg[i]} - else - for(var i=this.dims.length - 1;i >= 0;i--) - {if(arg[i] < 1 || arg[i] > this.dims[i])caml_array_bound_error(); - ofs = ofs * this.dims[i] + (arg[i] - 1)} - return ofs}; - Ml_Bigarray.prototype.get - = - function(ofs) - {switch(this.kind) - {case 7: - var l=this.data[ofs * 2 + 0],h=this.data[ofs * 2 + 1]; - return caml_int64_create_lo_hi(l,h); - case 10: - case 11: - var r=this.data[ofs * 2 + 0],i=this.data[ofs * 2 + 1]; - return [254,r,i]; - default:return this.data[ofs]}}; - Ml_Bigarray.prototype.set - = - function(ofs,v) - {switch(this.kind) - {case 7: - this.data[ofs * 2 + 0] = caml_int64_lo32(v); - this.data[ofs * 2 + 1] = caml_int64_hi32(v); - break; - case 10: - case 11: - this.data[ofs * 2 + 0] = v[1];this.data[ofs * 2 + 1] = v[2];break; - default:this.data[ofs] = v;break} - return 0}; - Ml_Bigarray.prototype.fill - = - function(v) - {switch(this.kind) - {case 7: - var a=caml_int64_lo32(v),b=caml_int64_hi32(v); - if(a == b) - this.data.fill(a); - else - for(var i=0;i < this.data.length;i++)this.data[i] = i % 2 == 0?a:b; - break; - case 10: - case 11: - var im=v[1],re=v[2]; - if(im == re) - this.data.fill(im); - else - for(var i=0;i < this.data.length;i++) - this.data[i] = i % 2 == 0?im:re; - break; - default:this.data.fill(v);break}}; - Ml_Bigarray.prototype.compare - = - function(b,total) - {if(this.layout != b.layout || this.kind != b.kind) - {var k1=this.kind | this.layout << 8,k2=b.kind | b.layout << 8; - return k2 - k1} - if(this.dims.length != b.dims.length) - return b.dims.length - this.dims.length; - for(var i=0;i < this.dims.length;i++) - if(this.dims[i] != b.dims[i])return this.dims[i] < b.dims[i]?- 1:1; - switch(this.kind) - {case 0: - case 1: - case 10: - case 11: - var x,y; - for(var i=0;i < this.data.length;i++) - {x = this.data[i]; - y = b.data[i]; - if(x < y)return - 1; - if(x > y)return 1; - if(x != y) - {if(! total)return NaN;if(x == x)return 1;if(y == y)return - 1}} - break; - case 7: - for(var i=0;i < this.data.length;i += 2) - {if(this.data[i + 1] < b.data[i + 1])return - 1; - if(this.data[i + 1] > b.data[i + 1])return 1; - if(this.data[i] >>> 0 < b.data[i] >>> 0)return - 1; - if(this.data[i] >>> 0 > b.data[i] >>> 0)return 1} - break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 8: - case 9: - case 12: - for(var i=0;i < this.data.length;i++) - {if(this.data[i] < b.data[i])return - 1; - if(this.data[i] > b.data[i])return 1} - break - } - return 0}; - function Ml_Bigarray_c_1_1(kind,layout,dims,buffer) - {this.kind = kind; - this.layout = layout; - this.dims = dims; - this.data = buffer} - Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); - Ml_Bigarray_c_1_1.prototype.offset - = - function(arg) - {if(typeof arg !== "number") - if(arg instanceof Array && arg.length == 1) - arg = arg[0]; - else - caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); - if(arg < 0 || arg >= this.dims[0])caml_array_bound_error(); - return arg}; - Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs]}; - Ml_Bigarray_c_1_1.prototype.set - = - function(ofs,v){this.data[ofs] = v;return 0}; - Ml_Bigarray_c_1_1.prototype.fill - = - function(v){this.data.fill(v);return 0}; - function caml_ba_create_unsafe(kind,layout,dims,data) - {var size_per_element=caml_ba_get_size_per_element(kind); - if(caml_ba_get_size(dims) * size_per_element != data.length) - caml_invalid_argument("length doesn't match dims"); - if(layout == 0 && dims.length == 1 && size_per_element == 1) - return new Ml_Bigarray_c_1_1(kind,layout,dims,data); - return new Ml_Bigarray(kind,layout,dims,data)} - function caml_ba_deserialize(reader,sz,name) - {var num_dims=reader.read32s(); - if(num_dims < 0 || num_dims > 16) - caml_failwith("input_value: wrong number of bigarray dimensions"); - var tag=reader.read32s(),kind=tag & 0xff,layout=tag >> 8 & 1,dims=[]; - if(name == "_bigarr02") - for(var i=0;i < num_dims;i++) - {var size_dim=reader.read16u(); - if(size_dim == 0xffff) - {var size_dim_hi=reader.read32u(),size_dim_lo=reader.read32u(); - if(size_dim_hi != 0) - caml_failwith("input_value: bigarray dimension overflow in 32bit"); - size_dim = size_dim_lo} - dims.push(size_dim)} - else - for(var i=0;i < num_dims;i++)dims.push(reader.read32u()); + fd = this.fs.openSync(this.nm(name), res), + isCharacterDevice = + this.fs.lstatSync(this.nm(name)).isCharacterDevice(); + f.isCharacterDevice = isCharacterDevice; + return new MlNodeFd(fd, f); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.rename = + function(o, n, raise_unix){ + try{this.fs.renameSync(this.nm(o), this.nm(n));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.stat = + function(name, raise_unix){ + try{ + var js_stats = this.fs.statSync(this.nm(name)); + return this.stats_from_js(js_stats); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.lstat = + function(name, raise_unix){ + try{ + var js_stats = this.fs.lstatSync(this.nm(name)); + return this.stats_from_js(js_stats); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.symlink = + function(to_dir, target, path, raise_unix){ + try{ + this.fs.symlinkSync + (this.nm(target), this.nm(path), to_dir ? "dir" : "file"); + return 0; + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.readlink = + function(name, raise_unix){ + try{ + var link = this.fs.readlinkSync(this.nm(name), "utf8"); + return caml_string_of_jsstring(link); + } + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.opendir = + function(name, raise_unix){ + try{return this.fs.opendirSync(this.nm(name));} + catch(err){this.raise_nodejs_error(err, raise_unix);} + }; + MlNodeDevice.prototype.raise_nodejs_error = + function(err, raise_unix){ + var unix_error = caml_named_value("Unix.Unix_error"); + if(raise_unix && unix_error){ var - size=caml_ba_get_size(dims), - data=caml_ba_create_buffer(kind,size), - ba=caml_ba_create_unsafe(kind,layout,dims,data); - switch(kind) - {case 2:for(var i=0;i < size;i++)data[i] = reader.read8s();break; - case 3: - case 12:for(var i=0;i < size;i++)data[i] = reader.read8u();break; - case 4:for(var i=0;i < size;i++)data[i] = reader.read16s();break; - case 5:for(var i=0;i < size;i++)data[i] = reader.read16u();break; - case 6:for(var i=0;i < size;i++)data[i] = reader.read32s();break; - case 8: - case 9: - var sixty=reader.read8u(); - if(sixty) - caml_failwith - ("input_value: cannot read bigarray with 64-bit OCaml ints"); - for(var i=0;i < size;i++)data[i] = reader.read32s(); - break; - case 7: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var int64=caml_int64_of_bytes(t); - ba.set(i,int64)} - break; - case 1: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var f=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i,f)} - break; - case 0: - for(var i=0;i < size;i++) - {var f=caml_int32_float_of_bits(reader.read32s());ba.set(i,f)} - break; - case 10: - for(var i=0;i < size;i++) - {var - re=caml_int32_float_of_bits(reader.read32s()), - im=caml_int32_float_of_bits(reader.read32s()); - ba.set(i,[254,re,im])} - break; - case 11: - var t=new Array(8); - for(var i=0;i < size;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var re=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - for(var j=0;j < 8;j++)t[j] = reader.read8u(); - var im=caml_int64_float_of_bits(caml_int64_of_bytes(t)); - ba.set(i,[254,re,im])} - break - } - sz[0] = (4 + num_dims) * 4; - return caml_ba_create_unsafe(kind,layout,dims,data)} - function caml_ba_compare(a,b,total){return a.compare(b,total)} - function caml_hash_mix_int64(h,v) - {h = caml_hash_mix_int(h,caml_int64_lo32(v)); - h = caml_hash_mix_int(h,caml_int64_hi32(v)); - return h} - function caml_hash_mix_float(h,v0) - {return caml_hash_mix_int64(h,caml_int64_bits_of_float(v0))} - function caml_ba_hash(ba) - {var num_elts=caml_ba_get_size(ba.dims),h=0; - switch(ba.kind) - {case 2: - case 3: - case 12: - if(num_elts > 256)num_elts = 256; - var w=0,i=0; - for(i = 0;i + 4 <= ba.data.length;i += 4) - {w - = - ba.data[i + 0] - | - ba.data[i + 1] - << - 8 - | - ba.data[i + 2] - << - 16 - | - ba.data[i + 3] - << - 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(num_elts & 3) - {case 3:w = ba.data[i + 2] << 16; - case 2:w |= ba.data[i + 1] << 8; - case 1:w |= ba.data[i + 0];h = caml_hash_mix_int(h,w) - } - break; - case 4: - case 5: - if(num_elts > 128)num_elts = 128; - var w=0,i=0; - for(i = 0;i + 2 <= ba.data.length;i += 2) - {w = ba.data[i + 0] | ba.data[i + 1] << 16; - h = caml_hash_mix_int(h,w)} - if((num_elts & 1) != 0)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 6: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 8: - case 9: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 7: - if(num_elts > 32)num_elts = 32; - num_elts *= 2; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_int(h,ba.data[i]); - break; - case 10:num_elts *= 2; - case 0: - if(num_elts > 64)num_elts = 64; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); - break; - case 11:num_elts *= 2; - case 1: - if(num_elts > 32)num_elts = 32; - for(var i=0;i < num_elts;i++)h = caml_hash_mix_float(h,ba.data[i]); - break - } - return h} - function caml_int32_unmarshal(reader,size) - {size[0] = 4;return reader.read32s()} - function caml_nativeint_unmarshal(reader,size) - {switch(reader.read8u()) - {case 1:size[0] = 4;return reader.read32s(); - case 2:caml_failwith("input_value: native integer value too large"); - default:caml_failwith("input_value: ill-formed native integer")}} - function caml_int64_unmarshal(reader,size) - {var t=new Array(8); - for(var j=0;j < 8;j++)t[j] = reader.read8u(); - size[0] = 8; - return caml_int64_of_bytes(t)} - function caml_int64_compare(x,y,total){return x.compare(y)} - function caml_int64_hash(v){return v.lo32() ^ v.hi32()} + args = make_unix_err_args(err.code, err.syscall, err.path, err.errno); + caml_raise_with_args(unix_error, args); + } + else + caml_raise_sys_error(err.toString()); + }; + MlNodeDevice.prototype.stats_from_js = + function(js_stats){ + var file_kind; + if(js_stats.isFile()) + file_kind = 0; + else if(js_stats.isDirectory()) + file_kind = 1; + else if(js_stats.isCharacterDevice()) + file_kind = 2; + else if(js_stats.isBlockDevice()) + file_kind = 3; + else if(js_stats.isSymbolicLink()) + file_kind = 4; + else if(js_stats.isFIFO()) + file_kind = 5; + else if(js_stats.isSocket()) file_kind = 6; + return [0, + js_stats.dev, + js_stats.ino, + file_kind, + js_stats.mode, + js_stats.nlink, + js_stats.uid, + js_stats.gid, + js_stats.rdev, + js_stats.size, + js_stats.atimeMs, + js_stats.mtimeMs, + js_stats.ctimeMs]; + }; + MlNodeDevice.prototype.constructor = MlNodeDevice; + function caml_get_root(path){ + var x = path_is_absolute(path); + if(! x) return; + return x[0] + "/"; + } + function caml_failwith(msg){ + if(! caml_global_data.Failure) + caml_global_data.Failure = [248, caml_string_of_jsbytes("Failure"), - 3]; + caml_raise_with_string(caml_global_data.Failure, msg); + } + var + caml_root = + caml_get_root(caml_current_dir) + || caml_failwith("unable to compute caml_root"), + jsoo_mount_point = []; + if(fs_node_supported()) + jsoo_mount_point.push + ({path: caml_root, device: new MlNodeDevice(caml_root)}); + else + jsoo_mount_point.push + ({path: caml_root, device: new MlFakeDevice(caml_root)}); + jsoo_mount_point.push + ({path: "/static/", device: new MlFakeDevice("/static/")}); + function resolve_fs_device(name){ var - caml_custom_ops= + path = caml_make_path(name), + name = path.join("/"), + name_slash = caml_trailing_slash(name), + res; + for(var i = 0; i < jsoo_mount_point.length; i++){ + var m = jsoo_mount_point[i]; + if + (name_slash.search(m.path) == 0 + && (! res || res.path.length < m.path.length)) + res = + {path: m.path, + device: m.device, + rest: name.substring(m.path.length, name.length)}; + } + if(! res && fs_node_supported()){ + var root = caml_get_root(name); + if(root && root.match(/^[a-zA-Z]:\/$/)){ + var m = {path: root, device: new MlNodeDevice(root)}; + jsoo_mount_point.push(m); + res = + {path: m.path, + device: m.device, + rest: name.substring(m.path.length, name.length)}; + } + } + if(res) return res; + caml_raise_sys_error("no device found for " + name_slash); + } + function caml_sys_is_directory(name){ + var root = resolve_fs_device(name), a = root.device.is_dir(root.rest); + return a ? 1 : 0; + } + function caml_raise_not_found(){ + caml_raise_constant(caml_global_data.Not_found); + } + function caml_sys_getenv(name){ + var r = jsoo_sys_getenv(caml_jsstring_of_string(name)); + if(r === undefined) caml_raise_not_found(); + return caml_string_of_jsstring(r); + } + function shift_right_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ + if(nbits == 0){nat2.data[ofs2] = 0; return 0;} + var wrap = 0; + for(var i = len1 - 1; i >= 0; i--){ + var a = nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a >>> nbits | wrap; + wrap = a << 32 - nbits; + } + nat2.data[ofs2] = wrap; + return 0; + } + var caml_gr_state; + function caml_gr_state_get(){ + if(caml_gr_state) return caml_gr_state; + throw caml_maybe_attach_backtrace + ([0, + caml_named_value("Graphics.Graphic_failure"), + caml_string_of_jsbytes("Not initialized")]); + } + function caml_gr_point_color(x, y){ + var + s = caml_gr_state_get(), + im = s.context.getImageData(x, s.height - y, 1, 1), + d = im.data; + return (d[0] << 16) + (d[1] << 8) + d[2]; + } + function caml_runtime_events_user_resolve(){return 0;} + var MlObjectTable; + if(typeof globalThis.WeakMap === "undefined") + MlObjectTable = + function(){ + function NaiveLookup(objs){this.objs = objs;} + NaiveLookup.prototype.get = + function(v){ + for(var i = 0; i < this.objs.length; i++) + if(this.objs[i] === v) return i; + }; + NaiveLookup.prototype.set = function(){}; + return function(){ + this.objs = []; + this.lookup = new NaiveLookup(this.objs);}; + } + (); + else + MlObjectTable = + function(){this.objs = []; this.lookup = new globalThis.WeakMap();}; + MlObjectTable.prototype.store = + function(v){this.lookup.set(v, this.objs.length); this.objs.push(v);}; + MlObjectTable.prototype.recall = + function(v){ + var i = this.lookup.get(v); + return i === undefined ? undefined : this.objs.length - i; + }; + function caml_sys_rename(o, n){ + var o_root = resolve_fs_device(o), n_root = resolve_fs_device(n); + if(o_root.device != n_root.device) + caml_failwith("caml_sys_rename: cannot move file between two filesystem"); + if(! o_root.device.rename) + caml_failwith("caml_sys_rename: no implemented"); + o_root.device.rename(o_root.rest, n_root.rest); + } + function caml_log10_float(x){return Math.log10(x);} + var caml_runtime_warnings = 0; + function caml_ml_enable_runtime_warnings(bool){caml_runtime_warnings = bool; return 0; + } + function caml_classify_float(x){ + if(isFinite(x)){ + if(Math.abs(x) >= 2.2250738585072014e-308) return 0; + if(x != 0) return 1; + return 2; + } + return isNaN(x) ? 4 : 3; + } + var caml_ml_channels = new Array(); + function caml_refill(chan){ + if(chan.refill != null){ + var str = chan.refill(), str_a = caml_uint8_array_of_string(str); + if(str_a.length == 0) + chan.refill = null; + else{ + if(chan.buffer.length < chan.buffer_max + str_a.length){ + var b = new Uint8Array(chan.buffer_max + str_a.length); + b.set(chan.buffer); + chan.buffer = b; + } + chan.buffer.set(str_a, chan.buffer_max); + chan.offset += str_a.length; + chan.buffer_max += str_a.length; + } + } + else{ + var + nread = + chan.file.read + (chan.offset, + chan.buffer, + chan.buffer_max, + chan.buffer.length - chan.buffer_max); + chan.offset += nread; + chan.buffer_max += nread; + } + } + function caml_array_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_ml_input_scan_line(chanid){ + var chan = caml_ml_channels[chanid], p = chan.buffer_curr; + do + if(p >= chan.buffer_max){ + if(chan.buffer_curr > 0){ + chan.buffer.set(chan.buffer.subarray(chan.buffer_curr), 0); + p -= chan.buffer_curr; + chan.buffer_max -= chan.buffer_curr; + chan.buffer_curr = 0; + } + if(chan.buffer_max >= chan.buffer.length) return - chan.buffer_max | 0; + var prev_max = chan.buffer_max; + caml_refill(chan); + if(prev_max == chan.buffer_max) return - chan.buffer_max | 0; + } + while + (chan.buffer[p++] != 10); + return p - chan.buffer_curr | 0; + } + function caml_gc_minor(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(true); + return 0; + } + var + bigInt = + function(undefined){ + "use strict"; + var + BASE = 1e7, + LOG_BASE = 7, + MAX_INT = 9007199254740992, + MAX_INT_ARR = smallToArray(MAX_INT), + DEFAULT_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz", + BigInt = joo_global_object.BigInt, + supportsNativeBigInt = typeof BigInt === "function"; + function Integer(v, radix, alphabet, caseSensitive){ + if(typeof v === "undefined") return Integer[0]; + if(typeof radix !== "undefined") + return + radix === 10 && ! alphabet + ? parseValue(v) + : parseBase(v, radix, alphabet, caseSensitive); + return parseValue(v); + } + function BigInteger(value, sign){ + this.value = value; + this.sign = sign; + this.isSmall = false; + this.caml_custom = "_z"; + } + BigInteger.prototype = Object.create(Integer.prototype); + function SmallInteger(value){ + this.value = value; + this.sign = value < 0; + this.isSmall = true; + this.caml_custom = "_z"; + } + SmallInteger.prototype = Object.create(Integer.prototype); + function NativeBigInt(value){ + this.value = value; + this.caml_custom = "_z"; + } + NativeBigInt.prototype = Object.create(Integer.prototype); + function isPrecise(n){return - MAX_INT < n && n < MAX_INT;} + function smallToArray(n){ + if(n < 1e7) return [n]; + if(n < 1e14) return [n % 1e7, Math.floor(n / 1e7)]; + return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)]; + } + function arrayToSmall(arr){ + trim(arr); + var length = arr.length; + if(length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) + switch(length){ + case 0: + return 0; + case 1: + return arr[0]; + case 2: + return arr[0] + arr[1] * BASE; + default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE; + } + return arr; + } + function trim(v){ + var i = v.length; + while(v[--i] === 0) ; + v.length = i + 1; + } + function createArray(length){ + var x = new Array(length), i = - 1; + while(++i < length) x[i] = 0; + return x; + } + function truncate(n){ + if(n > 0) return Math.floor(n); + return Math.ceil(n); + } + function add(a, b){ + var + l_a = a.length, + l_b = b.length, + r = new Array(l_a), + carry = 0, + base = BASE, + sum, + i; + for(i = 0; i < l_b; i++){ + sum = a[i] + b[i] + carry; + carry = sum >= base ? 1 : 0; + r[i] = sum - carry * base; + } + while(i < l_a){ + sum = a[i] + carry; + carry = sum === base ? 1 : 0; + r[i++] = sum - carry * base; + } + if(carry > 0) r.push(carry); + return r; + } + function addAny(a, b){ + if(a.length >= b.length) return add(a, b); + return add(b, a); + } + function addSmall(a, carry){ + var l = a.length, r = new Array(l), base = BASE, sum, i; + for(i = 0; i < l; i++){ + sum = a[i] - base + carry; + carry = Math.floor(sum / base); + r[i] = sum - carry * base; + carry += 1; + } + while(carry > 0){ + r[i++] = carry % base; + carry = Math.floor(carry / base); + } + return r; + } + BigInteger.prototype.add = + function(v){ + var n = parseValue(v); + if(this.sign !== n.sign) return this.subtract(n.negate()); + var a = this.value, b = n.value; + if(n.isSmall) + return new BigInteger(addSmall(a, Math.abs(b)), this.sign); + return new BigInteger(addAny(a, b), this.sign); + }; + BigInteger.prototype.plus = BigInteger.prototype.add; + SmallInteger.prototype.add = + function(v){ + var n = parseValue(v), a = this.value; + if(a < 0 !== n.sign) return this.subtract(n.negate()); + var b = n.value; + if(n.isSmall){ + if(isPrecise(a + b)) return new SmallInteger(a + b); + b = smallToArray(Math.abs(b)); + } + return new BigInteger(addSmall(b, Math.abs(a)), a < 0); + }; + SmallInteger.prototype.plus = SmallInteger.prototype.add; + NativeBigInt.prototype.add = + function(v){ + return new NativeBigInt(this.value + parseValue(v).value); + }; + NativeBigInt.prototype.plus = NativeBigInt.prototype.add; + function subtract(a, b){ + var + a_l = a.length, + b_l = b.length, + r = new Array(a_l), + borrow = 0, + base = BASE, + i, + difference; + for(i = 0; i < b_l; i++){ + difference = a[i] - borrow - b[i]; + if(difference < 0){difference += base; borrow = 1;} else borrow = 0; + r[i] = difference; + } + for(i = b_l; i < a_l; i++){ + difference = a[i] - borrow; + if(difference < 0) + difference += base; + else{r[i++] = difference; break;} + r[i] = difference; + } + for(; i < a_l; i++) r[i] = a[i]; + trim(r); + return r; + } + function subtractAny(a, b, sign){ + var value; + if(compareAbs(a, b) >= 0) + value = subtract(a, b); + else{value = subtract(b, a); sign = ! sign;} + value = arrayToSmall(value); + if(typeof value === "number"){ + if(sign) value = - value; + return new SmallInteger(value); + } + return new BigInteger(value, sign); + } + function subtractSmall(a, b, sign){ + var + l = a.length, + r = new Array(l), + carry = - b, + base = BASE, + i, + difference; + for(i = 0; i < l; i++){ + difference = a[i] + carry; + carry = Math.floor(difference / base); + difference %= base; + r[i] = difference < 0 ? difference + base : difference; + } + r = arrayToSmall(r); + if(typeof r === "number"){ + if(sign) r = - r; + return new SmallInteger(r); + } + return new BigInteger(r, sign); + } + BigInteger.prototype.subtract = + function(v){ + var n = parseValue(v); + if(this.sign !== n.sign) return this.add(n.negate()); + var a = this.value, b = n.value; + if(n.isSmall) return subtractSmall(a, Math.abs(b), this.sign); + return subtractAny(a, b, this.sign); + }; + BigInteger.prototype.minus = BigInteger.prototype.subtract; + SmallInteger.prototype.subtract = + function(v){ + var n = parseValue(v), a = this.value; + if(a < 0 !== n.sign) return this.add(n.negate()); + var b = n.value; + if(n.isSmall) return new SmallInteger(a - b); + return subtractSmall(b, Math.abs(a), a >= 0); + }; + SmallInteger.prototype.minus = SmallInteger.prototype.subtract; + NativeBigInt.prototype.subtract = + function(v){ + return new NativeBigInt(this.value - parseValue(v).value); + }; + NativeBigInt.prototype.minus = NativeBigInt.prototype.subtract; + BigInteger.prototype.negate = + function(){return new BigInteger(this.value, ! this.sign);}; + SmallInteger.prototype.negate = + function(){ + var sign = this.sign, small = new SmallInteger(- this.value); + small.sign = ! sign; + return small; + }; + NativeBigInt.prototype.negate = + function(){return new NativeBigInt(- this.value);}; + BigInteger.prototype.abs = + function(){return new BigInteger(this.value, false);}; + SmallInteger.prototype.abs = + function(){return new SmallInteger(Math.abs(this.value));}; + NativeBigInt.prototype.abs = + function(){ + return new NativeBigInt(this.value >= 0 ? this.value : - this.value); + }; + function multiplyLong(a, b){ + var + a_l = a.length, + b_l = b.length, + l = a_l + b_l, + r = createArray(l), + base = BASE, + product, + carry, + i, + a_i, + b_j; + for(i = 0; i < a_l; ++i){ + a_i = a[i]; + for(var j = 0; j < b_l; ++j){ + b_j = b[j]; + product = a_i * b_j + r[i + j]; + carry = Math.floor(product / base); + r[i + j] = product - carry * base; + r[i + j + 1] += carry; + } + } + trim(r); + return r; + } + function multiplySmall(a, b){ + var + l = a.length, + r = new Array(l), + base = BASE, + carry = 0, + product, + i; + for(i = 0; i < l; i++){ + product = a[i] * b + carry; + carry = Math.floor(product / base); + r[i] = product - carry * base; + } + while(carry > 0){ + r[i++] = carry % base; + carry = Math.floor(carry / base); + } + return r; + } + function shiftLeft(x, n){ + var r = []; + while(n-- > 0) r.push(0); + return r.concat(x); + } + function multiplyKaratsuba(x, y){ + var n = Math.max(x.length, y.length); + if(n <= 30) return multiplyLong(x, y); + n = Math.ceil(n / 2); + var + b = x.slice(n), + a = x.slice(0, n), + d = y.slice(n), + c = y.slice(0, n), + ac = multiplyKaratsuba(a, c), + bd = multiplyKaratsuba(b, d), + abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d)), + product = + addAny + (addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), + shiftLeft(bd, 2 * n)); + trim(product); + return product; + } + function useKaratsuba(l1, l2){ + return - (0.012 * l1) - 0.012 * l2 + 0.000015 * l1 * l2 > 0; + } + BigInteger.prototype.multiply = + function(v){ + var + n = parseValue(v), + a = this.value, + b = n.value, + sign = this.sign !== n.sign, + abs; + if(n.isSmall){ + if(b === 0) return Integer[0]; + if(b === 1) return this; + if(b === - 1) return this.negate(); + abs = Math.abs(b); + if(abs < BASE) return new BigInteger(multiplySmall(a, abs), sign); + b = smallToArray(abs); + } + if(useKaratsuba(a.length, b.length)) + return new BigInteger(multiplyKaratsuba(a, b), sign); + return new BigInteger(multiplyLong(a, b), sign); + }; + BigInteger.prototype.times = BigInteger.prototype.multiply; + function multiplySmallAndArray(a, b, sign){ + if(a < BASE) return new BigInteger(multiplySmall(b, a), sign); + return new BigInteger(multiplyLong(b, smallToArray(a)), sign); + } + SmallInteger.prototype._multiplyBySmall = + function(a){ + if(isPrecise(a.value * this.value)) + return new SmallInteger(a.value * this.value); + return multiplySmallAndArray + (Math.abs(a.value), + smallToArray(Math.abs(this.value)), + this.sign !== a.sign); + }; + BigInteger.prototype._multiplyBySmall = + function(a){ + if(a.value === 0) return Integer[0]; + if(a.value === 1) return this; + if(a.value === - 1) return this.negate(); + return multiplySmallAndArray + (Math.abs(a.value), this.value, this.sign !== a.sign); + }; + SmallInteger.prototype.multiply = + function(v){return parseValue(v)._multiplyBySmall(this);}; + SmallInteger.prototype.times = SmallInteger.prototype.multiply; + NativeBigInt.prototype.multiply = + function(v){ + return new NativeBigInt(this.value * parseValue(v).value); + }; + NativeBigInt.prototype.times = NativeBigInt.prototype.multiply; + function square(a){ + var + l = a.length, + r = createArray(l + l), + base = BASE, + product, + carry, + i, + a_i, + a_j; + for(i = 0; i < l; i++){ + a_i = a[i]; + carry = 0 - a_i * a_i; + for(var j = i; j < l; j++){ + a_j = a[j]; + product = 2 * (a_i * a_j) + r[i + j] + carry; + carry = Math.floor(product / base); + r[i + j] = product - carry * base; + } + r[i + l] = carry; + } + trim(r); + return r; + } + BigInteger.prototype.square = + function(){return new BigInteger(square(this.value), false);}; + SmallInteger.prototype.square = + function(){ + var value = this.value * this.value; + if(isPrecise(value)) return new SmallInteger(value); + return new + BigInteger + (square(smallToArray(Math.abs(this.value))), false); + }; + NativeBigInt.prototype.square = + function(v){return new NativeBigInt(this.value * this.value);}; + function divMod1(a, b){ + var + a_l = a.length, + b_l = b.length, + base = BASE, + result = createArray(b.length), + divisorMostSignificantDigit = b[b_l - 1], + lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)), + remainder = multiplySmall(a, lambda), + divisor = multiplySmall(b, lambda), + quotientDigit, + shift, + carry, + borrow, + i, + l, + q; + if(remainder.length <= a_l) remainder.push(0); + divisor.push(0); + divisorMostSignificantDigit = divisor[b_l - 1]; + for(shift = a_l - b_l; shift >= 0; shift--){ + quotientDigit = base - 1; + if(remainder[shift + b_l] !== divisorMostSignificantDigit) + quotientDigit = + Math.floor + ((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) + / divisorMostSignificantDigit); + carry = 0; + borrow = 0; + l = divisor.length; + for(i = 0; i < l; i++){ + carry += quotientDigit * divisor[i]; + q = Math.floor(carry / base); + borrow += remainder[shift + i] - (carry - q * base); + carry = q; + if(borrow < 0){ + remainder[shift + i] = borrow + base; + borrow = - 1; + } + else{remainder[shift + i] = borrow; borrow = 0;} + } + while(borrow !== 0){ + quotientDigit -= 1; + carry = 0; + for(i = 0; i < l; i++){ + carry += remainder[shift + i] - base + divisor[i]; + if(carry < 0){ + remainder[shift + i] = carry + base; + carry = 0; + } + else{remainder[shift + i] = carry; carry = 1;} + } + borrow += carry; + } + result[shift] = quotientDigit; + } + remainder = divModSmall(remainder, lambda)[0]; + return [arrayToSmall(result), arrayToSmall(remainder)]; + } + function divMod2(a, b){ + var + a_l = a.length, + b_l = b.length, + result = [], + part = [], + base = BASE, + guess, + xlen, + highx, + highy, + check; + while(a_l){ + part.unshift(a[--a_l]); + trim(part); + if(compareAbs(part, b) < 0){result.push(0); continue;} + xlen = part.length; + highx = part[xlen - 1] * base + part[xlen - 2]; + highy = b[b_l - 1] * base + b[b_l - 2]; + if(xlen > b_l) highx = (highx + 1) * base; + guess = Math.ceil(highx / highy); + do{ + check = multiplySmall(b, guess); + if(compareAbs(check, part) <= 0) break; + guess--; + } + while + (guess); + result.push(guess); + part = subtract(part, check); + } + result.reverse(); + return [arrayToSmall(result), arrayToSmall(part)]; + } + function divModSmall(value, lambda){ + var + length = value.length, + quotient = createArray(length), + base = BASE, + i, + q, + remainder, + divisor; + remainder = 0; + for(i = length - 1; i >= 0; --i){ + divisor = remainder * base + value[i]; + q = truncate(divisor / lambda); + remainder = divisor - q * lambda; + quotient[i] = q | 0; + } + return [quotient, remainder | 0]; + } + function divModAny(self, v){ + var value, n = parseValue(v); + if(supportsNativeBigInt) + return [new NativeBigInt(self.value / n.value), + new NativeBigInt(self.value % n.value)]; + var a = self.value, b = n.value, quotient; + if(b === 0) throw new Error("Cannot divide by zero"); + if(self.isSmall){ + if(n.isSmall) + return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)]; + return [Integer[0], self]; + } + if(n.isSmall){ + if(b === 1) return [self, Integer[0]]; + if(b == - 1) return [self.negate(), Integer[0]]; + var abs = Math.abs(b); + if(abs < BASE){ + value = divModSmall(a, abs); + quotient = arrayToSmall(value[0]); + var remainder = value[1]; + if(self.sign) remainder = - remainder; + if(typeof quotient === "number"){ + if(self.sign !== n.sign) quotient = - quotient; + return [new SmallInteger(quotient), new SmallInteger(remainder)]; + } + return [new BigInteger(quotient, self.sign !== n.sign), + new SmallInteger(remainder)]; + } + b = smallToArray(abs); + } + var comparison = compareAbs(a, b); + if(comparison === - 1) return [Integer[0], self]; + if(comparison === 0) + return [Integer[self.sign === n.sign ? 1 : - 1], Integer[0]]; + if(a.length + b.length <= 200) + value = divMod1(a, b); + else + value = divMod2(a, b); + quotient = value[0]; + var qSign = self.sign !== n.sign, mod = value[1], mSign = self.sign; + if(typeof quotient === "number"){ + if(qSign) quotient = - quotient; + quotient = new SmallInteger(quotient); + } + else + quotient = new BigInteger(quotient, qSign); + if(typeof mod === "number"){ + if(mSign) mod = - mod; + mod = new SmallInteger(mod); + } + else + mod = new BigInteger(mod, mSign); + return [quotient, mod]; + } + BigInteger.prototype.divmod = + function(v){ + var result = divModAny(this, v); + return {quotient: result[0], remainder: result[1]}; + }; + NativeBigInt.prototype.divmod = + SmallInteger.prototype.divmod = BigInteger.prototype.divmod; + BigInteger.prototype.divide = + function(v){return divModAny(this, v)[0];}; + NativeBigInt.prototype.over = + NativeBigInt.prototype.divide = + function(v){ + return new NativeBigInt(this.value / parseValue(v).value); + }; + SmallInteger.prototype.over = + SmallInteger.prototype.divide = + BigInteger.prototype.over = BigInteger.prototype.divide; + BigInteger.prototype.mod = function(v){return divModAny(this, v)[1];}; + NativeBigInt.prototype.mod = + NativeBigInt.prototype.remainder = + function(v){ + return new NativeBigInt(this.value % parseValue(v).value); + }; + SmallInteger.prototype.remainder = + SmallInteger.prototype.mod = + BigInteger.prototype.remainder = BigInteger.prototype.mod; + BigInteger.prototype.pow = + function(v){ + var n = parseValue(v), a = this.value, b = n.value, value, x, y; + if(b === 0) return Integer[1]; + if(a === 0) return Integer[0]; + if(a === 1) return Integer[1]; + if(a === - 1) return n.isEven() ? Integer[1] : Integer[- 1]; + if(n.sign) return Integer[0]; + if(! n.isSmall) + throw new Error("The exponent " + n.toString() + " is too large."); + if(this.isSmall) + if(isPrecise(value = Math.pow(a, b))) + return new SmallInteger(truncate(value)); + x = this; + y = Integer[1]; + while(true){ + if(b & 1 === 1){y = y.times(x); --b;} + if(b === 0) break; + b /= 2; + x = x.square(); + } + return y; + }; + SmallInteger.prototype.pow = BigInteger.prototype.pow; + NativeBigInt.prototype.pow = + function(v){ + var + n = parseValue(v), + a = this.value, + b = n.value, + _0 = BigInt(0), + _1 = BigInt(1), + _2 = BigInt(2); + if(b === _0) return Integer[1]; + if(a === _0) return Integer[0]; + if(a === _1) return Integer[1]; + if(a === BigInt(- 1)) return n.isEven() ? Integer[1] : Integer[- 1]; + if(n.isNegative()) return new NativeBigInt(_0); + var x = this, y = Integer[1]; + while(true){ + if((b & _1) === _1){y = y.times(x); --b;} + if(b === _0) break; + b /= _2; + x = x.square(); + } + return y; + }; + BigInteger.prototype.modPow = + function(exp, mod){ + exp = parseValue(exp); + mod = parseValue(mod); + if(mod.isZero()) + throw new Error("Cannot take modPow with modulus 0"); + var r = Integer[1], base = this.mod(mod); + if(exp.isNegative()){ + exp = exp.multiply(Integer[- 1]); + base = base.modInv(mod); + } + while(exp.isPositive()){ + if(base.isZero()) return Integer[0]; + if(exp.isOdd()) r = r.multiply(base).mod(mod); + exp = exp.divide(2); + base = base.square().mod(mod); + } + return r; + }; + NativeBigInt.prototype.modPow = + SmallInteger.prototype.modPow = BigInteger.prototype.modPow; + function compareAbs(a, b){ + if(a.length !== b.length) return a.length > b.length ? 1 : - 1; + for(var i = a.length - 1; i >= 0; i--) + if(a[i] !== b[i]) return a[i] > b[i] ? 1 : - 1; + return 0; + } + BigInteger.prototype.compareAbs = + function(v){ + var n = parseValue(v), a = this.value, b = n.value; + if(n.isSmall) return 1; + return compareAbs(a, b); + }; + SmallInteger.prototype.compareAbs = + function(v){ + var n = parseValue(v), a = Math.abs(this.value), b = n.value; + if(n.isSmall){ + b = Math.abs(b); + return a === b ? 0 : a > b ? 1 : - 1; + } + return - 1; + }; + NativeBigInt.prototype.compareAbs = + function(v){ + var a = this.value, b = parseValue(v).value; + a = a >= 0 ? a : - a; + b = b >= 0 ? b : - b; + return a === b ? 0 : a > b ? 1 : - 1; + }; + BigInteger.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var n = parseValue(v), a = this.value, b = n.value; + if(this.sign !== n.sign) return n.sign ? 1 : - 1; + if(n.isSmall) return this.sign ? - 1 : 1; + return compareAbs(a, b) * (this.sign ? - 1 : 1); + }; + BigInteger.prototype.compareTo = BigInteger.prototype.compare; + SmallInteger.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var n = parseValue(v), a = this.value, b = n.value; + if(n.isSmall) return a == b ? 0 : a > b ? 1 : - 1; + if(a < 0 !== n.sign) return a < 0 ? - 1 : 1; + return a < 0 ? 1 : - 1; + }; + SmallInteger.prototype.compareTo = SmallInteger.prototype.compare; + NativeBigInt.prototype.compare = + function(v){ + if(v === Infinity) return - 1; + if(v === - Infinity) return 1; + var a = this.value, b = parseValue(v).value; + return a === b ? 0 : a > b ? 1 : - 1; + }; + NativeBigInt.prototype.compareTo = NativeBigInt.prototype.compare; + BigInteger.prototype.equals = + function(v){return this.compare(v) === 0;}; + NativeBigInt.prototype.eq = + NativeBigInt.prototype.equals = + SmallInteger.prototype.eq = + SmallInteger.prototype.equals = + BigInteger.prototype.eq = BigInteger.prototype.equals; + BigInteger.prototype.notEquals = + function(v){return this.compare(v) !== 0;}; + NativeBigInt.prototype.neq = + NativeBigInt.prototype.notEquals = + SmallInteger.prototype.neq = + SmallInteger.prototype.notEquals = + BigInteger.prototype.neq = BigInteger.prototype.notEquals; + BigInteger.prototype.greater = + function(v){return this.compare(v) > 0;}; + NativeBigInt.prototype.gt = + NativeBigInt.prototype.greater = + SmallInteger.prototype.gt = + SmallInteger.prototype.greater = + BigInteger.prototype.gt = BigInteger.prototype.greater; + BigInteger.prototype.lesser = function(v){return this.compare(v) < 0;}; + NativeBigInt.prototype.lt = + NativeBigInt.prototype.lesser = + SmallInteger.prototype.lt = + SmallInteger.prototype.lesser = + BigInteger.prototype.lt = BigInteger.prototype.lesser; + BigInteger.prototype.greaterOrEquals = + function(v){return this.compare(v) >= 0;}; + NativeBigInt.prototype.geq = + NativeBigInt.prototype.greaterOrEquals = + SmallInteger.prototype.geq = + SmallInteger.prototype.greaterOrEquals = + BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals; + BigInteger.prototype.lesserOrEquals = + function(v){return this.compare(v) <= 0;}; + NativeBigInt.prototype.leq = + NativeBigInt.prototype.lesserOrEquals = + SmallInteger.prototype.leq = + SmallInteger.prototype.lesserOrEquals = + BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals; + BigInteger.prototype.isEven = + function(){return (this.value[0] & 1) === 0;}; + SmallInteger.prototype.isEven = + function(){return (this.value & 1) === 0;}; + NativeBigInt.prototype.isEven = + function(){return (this.value & BigInt(1)) === BigInt(0);}; + BigInteger.prototype.isOdd = + function(){return (this.value[0] & 1) === 1;}; + SmallInteger.prototype.isOdd = + function(){return (this.value & 1) === 1;}; + NativeBigInt.prototype.isOdd = + function(){return (this.value & BigInt(1)) === BigInt(1);}; + BigInteger.prototype.isPositive = function(){return ! this.sign;}; + SmallInteger.prototype.isPositive = function(){return this.value > 0;}; + NativeBigInt.prototype.isPositive = SmallInteger.prototype.isPositive; + BigInteger.prototype.isNegative = function(){return this.sign;}; + SmallInteger.prototype.isNegative = function(){return this.value < 0;}; + NativeBigInt.prototype.isNegative = SmallInteger.prototype.isNegative; + BigInteger.prototype.isUnit = function(){return false;}; + SmallInteger.prototype.isUnit = + function(){return Math.abs(this.value) === 1;}; + NativeBigInt.prototype.isUnit = + function(){return this.abs().value === BigInt(1);}; + BigInteger.prototype.isZero = function(){return false;}; + SmallInteger.prototype.isZero = function(){return this.value === 0;}; + NativeBigInt.prototype.isZero = + function(){return this.value === BigInt(0);}; + BigInteger.prototype.isDivisibleBy = + function(v){ + var n = parseValue(v); + if(n.isZero()) return false; + if(n.isUnit()) return true; + if(n.compareAbs(2) === 0) return this.isEven(); + return this.mod(n).isZero(); + }; + NativeBigInt.prototype.isDivisibleBy = + SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy; + function isBasicPrime(v){ + var n = v.abs(); + if(n.isUnit()) return false; + if(n.equals(2) || n.equals(3) || n.equals(5)) return true; + if(n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) + return false; + if(n.lesser(49)) return true; + } + function millerRabinTest(n, a){ + var nPrev = n.prev(), b = nPrev, r = 0, d, t, i, x; + while(b.isEven()) b = b.divide(2), r++; + next: + for(i = 0; i < a.length; i++){ + if(n.lesser(a[i])) continue; + x = bigInt(a[i]).modPow(b, n); + if(x.isUnit() || x.equals(nPrev)) continue; + for(d = r - 1; d != 0; d--){ + x = x.square().mod(n); + if(x.isUnit()) return false; + if(x.equals(nPrev)) continue next; + } + return false; + } + return true; + } + BigInteger.prototype.isPrime = + function(strict){ + var isPrime = isBasicPrime(this); + if(isPrime !== undefined) return isPrime; + var n = this.abs(), bits = n.bitLength(); + if(bits <= 64) + return millerRabinTest + (n, [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]); + var + logN = Math.log(2) * bits.toJSNumber(), + t = Math.ceil(strict === true ? 2 * Math.pow(logN, 2) : logN); + for(var a = [], i = 0; i < t; i++) a.push(bigInt(i + 2)); + return millerRabinTest(n, a); + }; + NativeBigInt.prototype.isPrime = + SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime; + BigInteger.prototype.isProbablePrime = + function(iterations){ + var isPrime = isBasicPrime(this); + if(isPrime !== undefined) return isPrime; + var n = this.abs(), t = iterations === undefined ? 5 : iterations; + for(var a = [], i = 0; i < t; i++) + a.push(bigInt.randBetween(2, n.minus(2))); + return millerRabinTest(n, a); + }; + NativeBigInt.prototype.isProbablePrime = + SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime; + BigInteger.prototype.modInv = + function(n){ + var + t = bigInt.zero, + newT = bigInt.one, + r = parseValue(n), + newR = this.abs(), + q, + lastT, + lastR; + while(! newR.isZero()){ + q = r.divide(newR); + lastT = t; + lastR = r; + t = newT; + r = newR; + newT = lastT.subtract(q.multiply(newT)); + newR = lastR.subtract(q.multiply(newR)); + } + if(! r.isUnit()) + throw new + Error + (this.toString() + " and " + n.toString() + + " are not co-prime"); + if(t.compare(0) === - 1) t = t.add(n); + if(this.isNegative()) return t.negate(); + return t; + }; + NativeBigInt.prototype.modInv = + SmallInteger.prototype.modInv = BigInteger.prototype.modInv; + BigInteger.prototype.next = + function(){ + var value = this.value; + if(this.sign) return subtractSmall(value, 1, this.sign); + return new BigInteger(addSmall(value, 1), this.sign); + }; + SmallInteger.prototype.next = + function(){ + var value = this.value; + if(value + 1 < MAX_INT) return new SmallInteger(value + 1); + return new BigInteger(MAX_INT_ARR, false); + }; + NativeBigInt.prototype.next = + function(){return new NativeBigInt(this.value + BigInt(1));}; + BigInteger.prototype.prev = + function(){ + var value = this.value; + if(this.sign) return new BigInteger(addSmall(value, 1), true); + return subtractSmall(value, 1, this.sign); + }; + SmallInteger.prototype.prev = + function(){ + var value = this.value; + if(value - 1 > - MAX_INT) return new SmallInteger(value - 1); + return new BigInteger(MAX_INT_ARR, true); + }; + NativeBigInt.prototype.prev = + function(){return new NativeBigInt(this.value - BigInt(1));}; + var powersOfTwo = [1]; + while(2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) + powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]); + var + powers2Length = powersOfTwo.length, + highestPower2 = powersOfTwo[powers2Length - 1]; + function shift_isSmall(n){return Math.abs(n) <= BASE;} + BigInteger.prototype.shiftLeft = + function(v){ + var n = parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0) return this.shiftRight(- n); + var result = this; + if(result.isZero()) return result; + while(n >= powers2Length){ + result = result.multiply(highestPower2); + n -= powers2Length - 1; + } + return result.multiply(powersOfTwo[n]); + }; + NativeBigInt.prototype.shiftLeft = + SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft; + BigInteger.prototype.shiftRight = + function(v){ + var remQuo, n = parseValue(v).toJSNumber(); + if(! shift_isSmall(n)) + throw new Error(String(n) + " is too large for shifting."); + if(n < 0) return this.shiftLeft(- n); + var result = this; + while(n >= powers2Length){ + if(result.isZero() || result.isNegative() && result.isUnit()) + return result; + remQuo = divModAny(result, highestPower2); + result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; + n -= powers2Length - 1; + } + remQuo = divModAny(result, powersOfTwo[n]); + return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0]; + }; + NativeBigInt.prototype.shiftRight = + SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight; + function bitwise(x, y, fn){ + y = parseValue(y); + var + xSign = x.isNegative(), + ySign = y.isNegative(), + xRem = xSign ? x.not() : x, + yRem = ySign ? y.not() : y, + xDigit = 0, + yDigit = 0, + xDivMod = null, + yDivMod = null, + result = []; + while(! xRem.isZero() || ! yRem.isZero()){ + xDivMod = divModAny(xRem, highestPower2); + xDigit = xDivMod[1].toJSNumber(); + if(xSign) xDigit = highestPower2 - 1 - xDigit; + yDivMod = divModAny(yRem, highestPower2); + yDigit = yDivMod[1].toJSNumber(); + if(ySign) yDigit = highestPower2 - 1 - yDigit; + xRem = xDivMod[0]; + yRem = yDivMod[0]; + result.push(fn(xDigit, yDigit)); + } + var + sum = + fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(- 1) : bigInt(0); + for(var i = result.length - 1; i >= 0; i -= 1) + sum = sum.multiply(highestPower2).add(bigInt(result[i])); + return sum; + } + BigInteger.prototype.not = function(){return this.negate().prev();}; + NativeBigInt.prototype.not = + SmallInteger.prototype.not = BigInteger.prototype.not; + BigInteger.prototype.and = + function(n){return bitwise(this, n, function(a, b){return a & b;});}; + NativeBigInt.prototype.and = + SmallInteger.prototype.and = BigInteger.prototype.and; + BigInteger.prototype.or = + function(n){return bitwise(this, n, function(a, b){return a | b;});}; + NativeBigInt.prototype.or = + SmallInteger.prototype.or = BigInteger.prototype.or; + BigInteger.prototype.xor = + function(n){return bitwise(this, n, function(a, b){return a ^ b;});}; + NativeBigInt.prototype.xor = + SmallInteger.prototype.xor = BigInteger.prototype.xor; + var + LOBMASK_I = 1 << 30, + LOBMASK_BI = (BASE & - BASE) * (BASE & - BASE) | LOBMASK_I; + function roughLOB(n){ + var + v = n.value, + x = + typeof v === "number" + ? v | LOBMASK_I + : typeof + v + === "bigint" + ? v | BigInt(LOBMASK_I) + : v[0] + v[1] * BASE | LOBMASK_BI; + return x & - x; + } + function integerLogarithm(value, base){ + if(base.compareTo(value) <= 0){ + var + tmp = integerLogarithm(value, base.square(base)), + p = tmp.p, + e = tmp.e, + t = p.multiply(base); + return t.compareTo(value) <= 0 + ? {p: t, e: e * 2 + 1} + : {p: p, e: e * 2}; + } + return {p: bigInt(1), e: 0}; + } + BigInteger.prototype.bitLength = + function(){ + var n = this; + if(n.compareTo(bigInt(0)) < 0) n = n.negate().subtract(bigInt(1)); + if(n.compareTo(bigInt(0)) === 0) return bigInt(0); + return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1)); + }; + NativeBigInt.prototype.bitLength = + SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength; + function max(a, b){ + a = parseValue(a); + b = parseValue(b); + return a.greater(b) ? a : b; + } + function min(a, b){ + a = parseValue(a); + b = parseValue(b); + return a.lesser(b) ? a : b; + } + function gcd(a, b){ + a = parseValue(a).abs(); + b = parseValue(b).abs(); + if(a.equals(b)) return a; + if(a.isZero()) return b; + if(b.isZero()) return a; + var c = Integer[1], d, t; + while(a.isEven() && b.isEven()){ + d = min(roughLOB(a), roughLOB(b)); + a = a.divide(d); + b = b.divide(d); + c = c.multiply(d); + } + while(a.isEven()) a = a.divide(roughLOB(a)); + do{ + while(b.isEven()) b = b.divide(roughLOB(b)); + if(a.greater(b)){t = b; b = a; a = t;} + b = b.subtract(a); + } + while + (! b.isZero()); + return c.isUnit() ? a : a.multiply(c); + } + function lcm(a, b){ + a = parseValue(a).abs(); + b = parseValue(b).abs(); + return a.divide(gcd(a, b)).multiply(b); + } + function randBetween(a, b){ + a = parseValue(a); + b = parseValue(b); + var + low = min(a, b), + high = max(a, b), + range = high.subtract(low).add(1); + if(range.isSmall) return low.add(Math.floor(Math.random() * range)); + var + digits = toBase(range, BASE).value, + result = [], + restricted = true; + for(var i = 0; i < digits.length; i++){ + var + top = restricted ? digits[i] : BASE, + digit = truncate(Math.random() * top); + result.push(digit); + if(digit < top) restricted = false; + } + return low.add(Integer.fromArray(result, BASE, false)); + } + function parseBase(text, base, alphabet, caseSensitive){ + alphabet = alphabet || DEFAULT_ALPHABET; + text = String(text); + if(! caseSensitive){ + text = text.toLowerCase(); + alphabet = alphabet.toLowerCase(); + } + var + length = text.length, + i, + absBase = Math.abs(base), + alphabetValues = {}; + for(i = 0; i < alphabet.length; i++) alphabetValues[alphabet[i]] = i; + for(i = 0; i < length; i++){ + var c = text[i]; + if(c === "-") continue; + if(c in alphabetValues) + if(alphabetValues[c] >= absBase){ + if(c === "1" && absBase === 1) continue; + throw new Error(c + " is not a valid digit in base " + base + "."); + } + } + base = parseValue(base); + var digits = [], isNegative = text[0] === "-"; + for(i = isNegative ? 1 : 0; i < text.length; i++){ + var c = text[i]; + if(c in alphabetValues) + digits.push(parseValue(alphabetValues[c])); + else if(c === "<"){ + var start = i; + do i++;while(text[i] !== ">" && i < text.length); + digits.push(parseValue(text.slice(start + 1, i))); + } + else + throw new Error(c + " is not a valid character"); + } + return parseBaseFromArray(digits, base, isNegative); + } + function parseBaseFromArray(digits, base, isNegative){ + var val = Integer[0], pow = Integer[1], i; + for(i = digits.length - 1; i >= 0; i--){ + val = val.add(digits[i].times(pow)); + pow = pow.times(base); + } + return isNegative ? val.negate() : val; + } + function stringify(digit, alphabet){ + alphabet = alphabet || DEFAULT_ALPHABET; + if(digit < alphabet.length) return alphabet[digit]; + return "<" + digit + ">"; + } + function toBase(n, base){ + base = bigInt(base); + if(base.isZero()){ + if(n.isZero()) return {value: [0], isNegative: false}; + throw new Error("Cannot convert nonzero numbers to base 0."); + } + if(base.equals(- 1)){ + if(n.isZero()) return {value: [0], isNegative: false}; + if(n.isNegative()) + return {value: + [].concat.apply + ([], + Array.apply(null, Array(- n.toJSNumber())).map + (Array.prototype.valueOf, [1, 0])), + isNegative: false}; + var + arr = + Array.apply(null, Array(n.toJSNumber() - 1)).map + (Array.prototype.valueOf, [0, 1]); + arr.unshift([1]); + return {value: [].concat.apply([], arr), isNegative: false}; + } + var neg = false; + if(n.isNegative() && base.isPositive()){neg = true; n = n.abs();} + if(base.isUnit()){ + if(n.isZero()) return {value: [0], isNegative: false}; + return {value: + Array.apply(null, Array(n.toJSNumber())).map + (Number.prototype.valueOf, 1), + isNegative: neg}; + } + var out = [], left = n, divmod; + while(left.isNegative() || left.compareAbs(base) >= 0){ + divmod = left.divmod(base); + left = divmod.quotient; + var digit = divmod.remainder; + if(digit.isNegative()){ + digit = base.minus(digit).abs(); + left = left.next(); + } + out.push(digit.toJSNumber()); + } + out.push(left.toJSNumber()); + return {value: out.reverse(), isNegative: neg}; + } + function toBaseString(n, base, alphabet){ + var arr = toBase(n, base); + return (arr.isNegative ? "-" : "") + + + arr.value.map(function(x){return stringify(x, alphabet);}).join + (""); + } + BigInteger.prototype.toArray = + function(radix){return toBase(this, radix);}; + SmallInteger.prototype.toArray = + function(radix){return toBase(this, radix);}; + NativeBigInt.prototype.toArray = + function(radix){return toBase(this, radix);}; + BigInteger.prototype.toString = + function(radix, alphabet){ + if(radix === undefined) radix = 10; + if(radix !== 10) return toBaseString(this, radix, alphabet); + var + v = this.value, + l = v.length, + str = String(v[--l]), + zeros = "0000000", + digit; + while(--l >= 0){ + digit = String(v[l]); + str += zeros.slice(digit.length) + digit; + } + var sign = this.sign ? "-" : ""; + return sign + str; + }; + SmallInteger.prototype.toString = + function(radix, alphabet){ + if(radix === undefined) radix = 10; + if(radix != 10) return toBaseString(this, radix, alphabet); + return String(this.value); + }; + NativeBigInt.prototype.toString = SmallInteger.prototype.toString; + NativeBigInt.prototype.toJSON = + BigInteger.prototype.toJSON = + SmallInteger.prototype.toJSON = function(){return this.toString();}; + BigInteger.prototype.valueOf = + function(){return parseInt(this.toString(), 10);}; + BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf; + SmallInteger.prototype.valueOf = function(){return this.value;}; + SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf; + NativeBigInt.prototype.valueOf = + NativeBigInt.prototype.toJSNumber = + function(){return parseInt(this.toString(), 10);}; + function parseStringValue(v){ + if(isPrecise(+ v)){ + var x = + v; + if(x === truncate(x)) + return supportsNativeBigInt + ? new NativeBigInt(BigInt(x)) + : new SmallInteger(x); + throw new Error("Invalid integer: " + v); + } + var sign = v[0] === "-"; + if(sign) v = v.slice(1); + var split = v.split(/e/i); + if(split.length > 2) + throw new Error("Invalid integer: " + split.join("e")); + if(split.length === 2){ + var exp = split[1]; + if(exp[0] === "+") exp = exp.slice(1); + exp = + exp; + if(exp !== truncate(exp) || ! isPrecise(exp)) + throw new + Error + ("Invalid integer: " + exp + " is not a valid exponent."); + var text = split[0], decimalPlace = text.indexOf("."); + if(decimalPlace >= 0){ + exp -= text.length - decimalPlace - 1; + text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1); + } + if(exp < 0) + throw new + Error + ("Cannot include negative exponent part for integers"); + text += new Array(exp + 1).join("0"); + v = text; + } + var isValid = /^([0-9][0-9]*)$/.test(v); + if(! isValid) throw new Error("Invalid integer: " + v); + if(supportsNativeBigInt) + return new NativeBigInt(BigInt(sign ? "-" + v : v)); + var r = [], max = v.length, l = LOG_BASE, min = max - l; + while(max > 0){ + r.push(+ v.slice(min, max)); + min -= l; + if(min < 0) min = 0; + max -= l; + } + trim(r); + return new BigInteger(r, sign); + } + function parseNumberValue(v){ + if(supportsNativeBigInt) return new NativeBigInt(BigInt(v)); + if(isPrecise(v)){ + if(v !== truncate(v)) throw new Error(v + " is not an integer."); + return new SmallInteger(v); + } + return parseStringValue(v.toString()); + } + function parseValue(v){ + if(typeof v === "number") return parseNumberValue(v); + if(typeof v === "string") return parseStringValue(v); + if(typeof v === "bigint") return new NativeBigInt(v); + return v; + } + for(var i = 0; i < 1000; i++){ + Integer[i] = parseValue(i); + if(i > 0) Integer[- i] = parseValue(- i); + } + Integer.one = Integer[1]; + Integer.zero = Integer[0]; + Integer.minusOne = Integer[- 1]; + Integer.max = max; + Integer.min = min; + Integer.gcd = gcd; + Integer.lcm = lcm; + Integer.isInstance = + function(x){ + return x instanceof BigInteger || x instanceof SmallInteger + || x instanceof NativeBigInt; + }; + Integer.randBetween = randBetween; + Integer.fromArray = + function(digits, base, isNegative){ + return parseBaseFromArray + (digits.map(parseValue), parseValue(base || 10), isNegative); + }; + return Integer; + } + (); + function ml_z_normalize(x){ + var y = x.toJSNumber() | 0; + if(x.equals(bigInt(y))) return y; + return x; + } + function ml_z_pow(z1, i1){ + i1 = bigInt(i1); + if(i1.lt(bigInt(0))) + caml_invalid_argument("Z.pow: exponent must be nonnegative"); + return ml_z_normalize(bigInt(z1).pow(i1)); + } + function ml_z_root(z, i){ + var zero = bigInt(0), one = bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.root: even root of a negative number"); + if(z.equals(zero) || z.equals(one)) return ml_z_normalize(z); + var start = zero, end = z, ans = null, two = bigInt(2); + while(start.leq(end)){ + var mid = start.add(end).divide(two), po = mid.pow(i); + if(po.equals(z)) + return ml_z_normalize(mid); + else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); + } + return ml_z_normalize(ans); + } + function ml_z_rootrem(z, i){ + var zero = bigInt(0), one = bigInt(1); + z = bigInt(z); + if(i % 2 === 0 && z.lt(zero)) + caml_invalid_argument("Z.rootrem: even root of a negative number"); + if(z.equals(zero) || z.equals(one)) return [0, ml_z_normalize(z), zero]; + var start = zero, end = z, ans = null, two = bigInt(2); + while(start.leq(end)){ + var mid = start.add(end).divide(two), po = mid.pow(i); + if(po.equals(z)) + return [0, ml_z_normalize(mid), zero]; + else if(po.lt(z)){start = mid.next(); ans = mid;} else end = mid.prev(); + } + return [0, ml_z_normalize(ans), ml_z_normalize(z.minus(ans.pow(i)))]; + } + function caml_ml_condition_new(unit){return {condition: 1};} + function caml_int64_of_bytes(a){ + return new + MlInt64 + (a[7] << 0 | a[6] << 8 | a[5] << 16, + a[4] << 0 | a[3] << 8 | a[2] << 16, + a[1] << 0 | a[0] << 8); + } + function caml_ba_uint8_get64(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 7 >= ba.data.length) caml_array_bound_error(); + var + b1 = ba.get(ofs + 0), + b2 = ba.get(ofs + 1), + b3 = ba.get(ofs + 2), + b4 = ba.get(ofs + 3), + b5 = ba.get(ofs + 4), + b6 = ba.get(ofs + 5), + b7 = ba.get(ofs + 6), + b8 = ba.get(ofs + 7); + return caml_int64_of_bytes([b8, b7, b6, b5, b4, b3, b2, b1]); + } + function caml_int64_to_bytes(x){return x.toArray();} + function caml_int64_marshal(writer, v, sizes){ + var b = caml_int64_to_bytes(v); + for(var i = 0; i < 8; i++) writer.write(8, b[i]); + sizes[0] = 8; + sizes[1] = 8; + } + function caml_ba_num_dims(ba){return ba.dims.length;} + function caml_wrap_exception(e){ + { + if(e instanceof Array) return e; + var exn; + if + (globalThis.RangeError && e instanceof globalThis.RangeError + && e.message + && e.message.match(/maximum call stack/i)) + exn = caml_global_data.Stack_overflow; + else if + (globalThis.InternalError && e instanceof globalThis.InternalError + && e.message + && e.message.match(/too much recursion/i)) + exn = caml_global_data.Stack_overflow; + else if(e instanceof globalThis.Error && caml_named_value("jsError")) + exn = [0, caml_named_value("jsError"), e]; + else + exn = [0, caml_global_data.Failure, caml_string_of_jsstring(String(e))]; + if(e instanceof globalThis.Error) exn.js_error = e; + return exn; + } + } + function caml_create_file(name, content){ + var root = resolve_fs_device(name); + if(! root.device.register) caml_failwith("cannot register file"); + root.device.register(root.rest, content); + return 0; + } + function jsoo_create_file(name, content){ + var + name = caml_string_of_jsbytes(name), + content = caml_string_of_jsbytes(content); + return caml_create_file(name, content); + } + function caml_fs_init(){ + var tmp = globalThis.caml_fs_tmp; + if(tmp) + for(var i = 0; i < tmp.length; i++) + jsoo_create_file(tmp[i].name, tmp[i].content); + globalThis.jsoo_create_file = jsoo_create_file; + globalThis.caml_fs_tmp = []; + return 0; + } + function caml_get_continuation_callstack(){return [0];} + var caml_parser_trace = 0; + function caml_set_parser_trace(bool){ + var oldflag = caml_parser_trace; + caml_parser_trace = bool; + return oldflag; + } + function caml_list_of_js_array(a){ + var l = 0; + for(var i = a.length - 1; i >= 0; i--){var e = a[i]; l = [0, e, l];} + return l; + } + function caml_mul(a, b){return Math.imul(a, b);} + function caml_hash_mix_int(h, d){ + d = caml_mul(d, 0xcc9e2d51 | 0); + d = d << 15 | d >>> 32 - 15; + d = caml_mul(d, 0x1b873593); + h ^= d; + h = h << 13 | h >>> 32 - 13; + return (h + (h << 2) | 0) + (0xe6546b64 | 0) | 0; + } + function num_digits_nat(nat, ofs, len){ + for(var i = len - 1; i >= 0; i--) if(nat.data[ofs + i] != 0) return i + 1; + return 1; + } + function caml_hash_nat(x){ + var len = num_digits_nat(x, 0, x.data.length), h = 0; + for(var i = 0; i < len; i++) h = caml_hash_mix_int(h, x.data[i]); + return h; + } + function caml_call_gen(f, args){ + var + n = f.l >= 0 ? f.l : f.l = f.length, + argsLen = args.length, + d = n - argsLen; + if(d == 0) + return f.apply(null, args); + else if(d < 0){ + var g = f.apply(null, args.slice(0, n)); + if(typeof g !== "function") return g; + return caml_call_gen(g, args.slice(n)); + } + else{ + switch(d){ + case 1: + { + var + g = + function(x){ + var nargs = new Array(argsLen + 1); + for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; + nargs[argsLen] = x; + return f.apply(null, nargs); + }; + break; + } + case 2: + { + var + g = + function(x, y){ + var nargs = new Array(argsLen + 2); + for(var i = 0; i < argsLen; i++) nargs[i] = args[i]; + nargs[argsLen] = x; + nargs[argsLen + 1] = y; + return f.apply(null, nargs); + }; + break; + } + default: + var + g = + function(){ + var + extra_args = arguments.length == 0 ? 1 : arguments.length, + nargs = new Array(args.length + extra_args); + for(var i = 0; i < args.length; i++) nargs[i] = args[i]; + for(var i = 0; i < arguments.length; i++) + nargs[args.length + i] = arguments[i]; + return caml_call_gen(f, nargs); + }; + } + g.l = d; + return g; + } + } + var caml_callback = caml_call_gen; + function caml_js_wrap_callback_arguments(f){ + return function(){ + var len = arguments.length, args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, [args]);}; + } + function caml_sys_chdir(dir){ + var root = resolve_fs_device(dir); + if(root.device.exists(root.rest)){ + if(root.rest) + caml_current_dir = caml_trailing_slash(root.path + root.rest); + else + caml_current_dir = root.path; + return 0; + } + else + caml_raise_no_such_file(caml_jsbytes_of_string(dir)); + } + function caml_obj_tag(x){ + if(x instanceof Array && x[0] == x[0] >>> 0) + return x[0]; + else if(caml_is_ml_bytes(x)) + return 252; + else if(caml_is_ml_string(x)) + return 252; + else if(x instanceof Function || typeof x == "function") + return 247; + else if(x && x.caml_custom) return 255; else return 1000; + } + function caml_obj_update_tag(b, o, n){ + if(b[0] == o){b[0] = n; return 1;} + return 0; + } + var caml_ml_domain_unique_token_ = [0]; + function caml_ml_domain_unique_token(unit){return caml_ml_domain_unique_token_; + } + function caml_lazy_update_to_forcing(o){ + var t = caml_obj_tag(o); + if(t != 246 && t != 250 && t != 244) return 4; + if(caml_obj_update_tag(o, 246, 244)) + return 0; + else{ + var field0 = o[1]; + t = o[0]; + if(t == 244) + return field0 == caml_ml_domain_unique_token(0) ? 1 : 2; + else if(t == 250) return 3; else return 2; + } + } + function caml_gc_counters(){return [254, 0, 0, 0];} + function ml_z_div(z1, z2){ + z2 = bigInt(z2); + if(z2.equals(bigInt(0))) caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).divide(bigInt(z2))); + } + function ml_z_sign(z1){return bigInt(z1).compare(bigInt.zero);} + function ml_z_add(z1, z2){ + return ml_z_normalize(bigInt(z1).add(bigInt(z2))); + } + function ml_z_cdiv(z1, z2){ + var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); + if(z1_pos * z2_pos > 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_add(ml_z_div(z1, z2), bigInt(1)); + return ml_z_div(z1, z2); + } + function caml_gr_synchronize(){ + caml_failwith("caml_gr_synchronize not Implemented"); + } + function caml_unix_closedir(dir_handle){ + try{dir_handle.pointer.closeSync();} + catch(e){ + var unix_error = caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error, make_unix_err_args("EBADF", "closedir", dir_handle.path)); + } + } + function caml_unix_opendir(path){ + var root = resolve_fs_device(path); + if(! root.device.opendir) + caml_failwith("caml_unix_opendir: not implemented"); + var dir_handle = root.device.opendir(root.rest, true); + return {pointer: dir_handle, path: path}; + } + function caml_unix_rewinddir(dir_handle){ + caml_unix_closedir(dir_handle); + var new_dir_handle = caml_unix_opendir(dir_handle.path); + dir_handle.pointer = new_dir_handle.pointer; + return 0; + } + function caml_raise_end_of_file(){ + caml_raise_constant(caml_global_data.End_of_file); + } + function caml_unix_readdir(dir_handle){ + var entry; + try{entry = dir_handle.pointer.readSync();} + catch(e){ + var unix_error = caml_named_value("Unix.Unix_error"); + caml_raise_with_args + (unix_error, make_unix_err_args("EBADF", "readdir", dir_handle.path)); + } + if(entry === null) + caml_raise_end_of_file(); + else + return caml_string_of_jsstring(entry.name); + } + function caml_unix_findfirst(path){ + var path_js = caml_jsstring_of_string(path); + path_js = path_js.replace(/(^|[\\\/])\*\.\*$/, ""); + path = caml_string_of_jsstring(path_js); + var + dir_handle = caml_unix_opendir(path), + first_entry = caml_unix_readdir(dir_handle); + return [0, first_entry, dir_handle]; + } + function caml_is_continuation_tag(t){return 0;} + var log2_ok = Math.log2 && Math.log2(1.1235582092889474E+307) == 1020; + function jsoo_floor_log2(x){ + if(log2_ok) return Math.floor(Math.log2(x)); + var i = 0; + if(x == 0) return - Infinity; + if(x >= 1) while(x >= 2){x /= 2; i++;} else while(x < 1){x *= 2; i--;} + return i; + } + function caml_int32_bits_of_float(x){ + var float32a = new Float32Array(1); + float32a[0] = x; + var int32a = new Int32Array(float32a.buffer); + return int32a[0] | 0; + } + function caml_int64_create_lo_mi_hi(lo, mi, hi){return new MlInt64(lo, mi, hi); + } + function caml_int64_bits_of_float(x){ + if(! isFinite(x)){ + if(isNaN(x)) return caml_int64_create_lo_mi_hi(1, 0, 0x7ff0); + return x > 0 + ? caml_int64_create_lo_mi_hi(0, 0, 0x7ff0) + : caml_int64_create_lo_mi_hi(0, 0, 0xfff0); + } + var sign = x == 0 && 1 / x == - Infinity ? 0x8000 : x >= 0 ? 0 : 0x8000; + if(sign) x = - x; + var exp = jsoo_floor_log2(x) + 1023; + if(exp <= 0){ + exp = 0; + x /= Math.pow(2, - 1026); + } + else{ + x /= Math.pow(2, exp - 1027); + if(x < 16){x *= 2; exp -= 1;} + if(exp == 0) x /= 2; + } + var k = Math.pow(2, 24), r3 = x | 0; + x = (x - r3) * k; + var r2 = x | 0; + x = (x - r2) * k; + var r1 = x | 0; + r3 = r3 & 0xf | sign | exp << 4; + return caml_int64_create_lo_mi_hi(r1, r2, r3); + } + function caml_ba_serialize(writer, ba, sz){ + writer.write(32, ba.dims.length); + writer.write(32, ba.kind | ba.layout << 8); + if(ba.caml_custom == "_bigarr02") + for(var i = 0; i < ba.dims.length; i++) + if(ba.dims[i] < 0xffff) + writer.write(16, ba.dims[i]); + else{ + writer.write(16, 0xffff); + writer.write(32, 0); + writer.write(32, ba.dims[i]); + } + else + for(var i = 0; i < ba.dims.length; i++) writer.write(32, ba.dims[i]); + switch(ba.kind){ + case 2: + case 3: + case 12: + for(var i = 0; i < ba.data.length; i++) writer.write(8, ba.data[i]); + break; + case 4: + case 5: + for(var i = 0; i < ba.data.length; i++) writer.write(16, ba.data[i]); + break; + case 6: + for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); + break; + case 8: + case 9: + writer.write(8, 0); + for(var i = 0; i < ba.data.length; i++) writer.write(32, ba.data[i]); + break; + case 7: + for(var i = 0; i < ba.data.length / 2; i++){ + var b = caml_int64_to_bytes(ba.get(i)); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + case 1: + for(var i = 0; i < ba.data.length; i++){ + var b = caml_int64_to_bytes(caml_int64_bits_of_float(ba.get(i))); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + case 0: + for(var i = 0; i < ba.data.length; i++){ + var b = caml_int32_bits_of_float(ba.get(i)); + writer.write(32, b); + } + break; + case 10: + for(var i = 0; i < ba.data.length / 2; i++){ + var j = ba.get(i); + writer.write(32, caml_int32_bits_of_float(j[1])); + writer.write(32, caml_int32_bits_of_float(j[2])); + } + break; + case 11: + for(var i = 0; i < ba.data.length / 2; i++){ + var + complex = ba.get(i), + b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[1])); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + var b = caml_int64_to_bytes(caml_int64_bits_of_float(complex[2])); + for(var j = 0; j < 8; j++) writer.write(8, b[j]); + } + break; + } + sz[0] = (4 + ba.dims.length) * 4; + sz[1] = (4 + ba.dims.length) * 8; + } + function caml_ba_get_size_per_element(kind){ + switch(kind){case 7:case 10:case 11: return 2;default: return 1; + } + } + function caml_ba_create_buffer(kind, size){ + var view; + switch(kind){ + case 0: + view = Float32Array; break; + case 1: + view = Float64Array; break; + case 2: + view = Int8Array; break; + case 3: + view = Uint8Array; break; + case 4: + view = Int16Array; break; + case 5: + view = Uint16Array; break; + case 6: + view = Int32Array; break; + case 7: + view = Int32Array; break; + case 8: + view = Int32Array; break; + case 9: + view = Int32Array; break; + case 10: + view = Float32Array; break; + case 11: + view = Float64Array; break; + case 12: + view = Uint8Array; break; + } + if(! view) caml_invalid_argument("Bigarray.create: unsupported kind"); + var data = new view(size * caml_ba_get_size_per_element(kind)); + return data; + } + function caml_int32_float_of_bits(x){ + var int32a = new Int32Array(1); + int32a[0] = x; + var float32a = new Float32Array(int32a.buffer); + return float32a[0]; + } + function caml_int64_float_of_bits(x){ + var lo = x.lo, mi = x.mi, hi = x.hi, exp = (hi & 0x7fff) >> 4; + if(exp == 2047) + return (lo | mi | hi & 0xf) == 0 + ? hi & 0x8000 ? - Infinity : Infinity + : NaN; + var k = Math.pow(2, - 24), res = (lo * k + mi) * k + (hi & 0xf); + if(exp > 0){ + res += 16; + res *= Math.pow(2, exp - 1027); + } + else + res *= Math.pow(2, - 1026); + if(hi & 0x8000) res = - res; + return res; + } + function caml_ba_get_size(dims){ + var n_dims = dims.length, size = 1; + for(var i = 0; i < n_dims; i++){ + if(dims[i] < 0) + caml_invalid_argument("Bigarray.create: negative dimension"); + size = size * dims[i]; + } + return size; + } + function caml_int64_create_lo_hi(lo, hi){ + return new + MlInt64 + (lo & 0xffffff, + lo >>> 24 & 0xff | (hi & 0xffff) << 8, + hi >>> 16 & 0xffff); + } + function caml_int64_hi32(v){return v.hi32();} + function caml_int64_lo32(v){return v.lo32();} + var caml_ba_custom_name = "_bigarr02"; + function Ml_Bigarray(kind, layout, dims, buffer){ + this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer; + } + Ml_Bigarray.prototype.caml_custom = caml_ba_custom_name; + Ml_Bigarray.prototype.offset = + function(arg){ + var ofs = 0; + if(typeof arg === "number") arg = [arg]; + if(! (arg instanceof Array)) + caml_invalid_argument("bigarray.js: invalid offset"); + if(this.dims.length != arg.length) + caml_invalid_argument("Bigarray.get/set: bad number of dimensions"); + if(this.layout == 0) + for(var i = 0; i < this.dims.length; i++){ + if(arg[i] < 0 || arg[i] >= this.dims[i]) caml_array_bound_error(); + ofs = ofs * this.dims[i] + arg[i]; + } + else + for(var i = this.dims.length - 1; i >= 0; i--){ + if(arg[i] < 1 || arg[i] > this.dims[i]) caml_array_bound_error(); + ofs = ofs * this.dims[i] + (arg[i] - 1); + } + return ofs; + }; + Ml_Bigarray.prototype.get = + function(ofs){ + switch(this.kind){ + case 7: + var l = this.data[ofs * 2 + 0], h = this.data[ofs * 2 + 1]; + return caml_int64_create_lo_hi(l, h); + case 10: + case 11: + var r = this.data[ofs * 2 + 0], i = this.data[ofs * 2 + 1]; + return [254, r, i]; + default: return this.data[ofs]; + } + }; + Ml_Bigarray.prototype.set = + function(ofs, v){ + switch(this.kind){ + case 7: + this.data[ofs * 2 + 0] = caml_int64_lo32(v); + this.data[ofs * 2 + 1] = caml_int64_hi32(v); + break; + case 10: + case 11: + this.data[ofs * 2 + 0] = v[1]; this.data[ofs * 2 + 1] = v[2]; break; + default: this.data[ofs] = v; break; + } + return 0; + }; + Ml_Bigarray.prototype.fill = + function(v){ + switch(this.kind){ + case 7: + var a = caml_int64_lo32(v), b = caml_int64_hi32(v); + if(a == b) + this.data.fill(a); + else + for(var i = 0; i < this.data.length; i++) + this.data[i] = i % 2 == 0 ? a : b; + break; + case 10: + case 11: + var im = v[1], re = v[2]; + if(im == re) + this.data.fill(im); + else + for(var i = 0; i < this.data.length; i++) + this.data[i] = i % 2 == 0 ? im : re; + break; + default: this.data.fill(v); break; + } + }; + Ml_Bigarray.prototype.compare = + function(b, total){ + if(this.layout != b.layout || this.kind != b.kind){ + var k1 = this.kind | this.layout << 8, k2 = b.kind | b.layout << 8; + return k2 - k1; + } + if(this.dims.length != b.dims.length) + return b.dims.length - this.dims.length; + for(var i = 0; i < this.dims.length; i++) + if(this.dims[i] != b.dims[i]) return this.dims[i] < b.dims[i] ? - 1 : 1; + switch(this.kind){ + case 0: + case 1: + case 10: + case 11: + var x, y; + for(var i = 0; i < this.data.length; i++){ + x = this.data[i]; + y = b.data[i]; + if(x < y) return - 1; + if(x > y) return 1; + if(x != y){ + if(! total) return NaN; + if(x == x) return 1; + if(y == y) return - 1; + } + } + break; + case 7: + for(var i = 0; i < this.data.length; i += 2){ + if(this.data[i + 1] < b.data[i + 1]) return - 1; + if(this.data[i + 1] > b.data[i + 1]) return 1; + if(this.data[i] >>> 0 < b.data[i] >>> 0) return - 1; + if(this.data[i] >>> 0 > b.data[i] >>> 0) return 1; + } + break; + case 2: + case 3: + case 4: + case 5: + case 6: + case 8: + case 9: + case 12: + for(var i = 0; i < this.data.length; i++){ + if(this.data[i] < b.data[i]) return - 1; + if(this.data[i] > b.data[i]) return 1; + } + break; + } + return 0; + }; + function Ml_Bigarray_c_1_1(kind, layout, dims, buffer){ + this.kind = kind; + this.layout = layout; + this.dims = dims; + this.data = buffer; + } + Ml_Bigarray_c_1_1.prototype = new Ml_Bigarray(); + Ml_Bigarray_c_1_1.prototype.offset = + function(arg){ + if(typeof arg !== "number") + if(arg instanceof Array && arg.length == 1) + arg = arg[0]; + else + caml_invalid_argument("Ml_Bigarray_c_1_1.offset"); + if(arg < 0 || arg >= this.dims[0]) caml_array_bound_error(); + return arg; + }; + Ml_Bigarray_c_1_1.prototype.get = function(ofs){return this.data[ofs];}; + Ml_Bigarray_c_1_1.prototype.set = + function(ofs, v){this.data[ofs] = v; return 0;}; + Ml_Bigarray_c_1_1.prototype.fill = + function(v){this.data.fill(v); return 0;}; + function caml_ba_create_unsafe(kind, layout, dims, data){ + var size_per_element = caml_ba_get_size_per_element(kind); + if(caml_ba_get_size(dims) * size_per_element != data.length) + caml_invalid_argument("length doesn't match dims"); + if(layout == 0 && dims.length == 1 && size_per_element == 1) + return new Ml_Bigarray_c_1_1(kind, layout, dims, data); + return new Ml_Bigarray(kind, layout, dims, data); + } + function caml_ba_deserialize(reader, sz, name){ + var num_dims = reader.read32s(); + if(num_dims < 0 || num_dims > 16) + caml_failwith("input_value: wrong number of bigarray dimensions"); + var + tag = reader.read32s(), + kind = tag & 0xff, + layout = tag >> 8 & 1, + dims = []; + if(name == "_bigarr02") + for(var i = 0; i < num_dims; i++){ + var size_dim = reader.read16u(); + if(size_dim == 0xffff){ + var size_dim_hi = reader.read32u(), size_dim_lo = reader.read32u(); + if(size_dim_hi != 0) + caml_failwith("input_value: bigarray dimension overflow in 32bit"); + size_dim = size_dim_lo; + } + dims.push(size_dim); + } + else + for(var i = 0; i < num_dims; i++) dims.push(reader.read32u()); + var + size = caml_ba_get_size(dims), + data = caml_ba_create_buffer(kind, size), + ba = caml_ba_create_unsafe(kind, layout, dims, data); + switch(kind){ + case 2: + for(var i = 0; i < size; i++) data[i] = reader.read8s(); break; + case 3: + case 12: + for(var i = 0; i < size; i++) data[i] = reader.read8u(); break; + case 4: + for(var i = 0; i < size; i++) data[i] = reader.read16s(); break; + case 5: + for(var i = 0; i < size; i++) data[i] = reader.read16u(); break; + case 6: + for(var i = 0; i < size; i++) data[i] = reader.read32s(); break; + case 8: + case 9: + var sixty = reader.read8u(); + if(sixty) + caml_failwith + ("input_value: cannot read bigarray with 64-bit OCaml ints"); + for(var i = 0; i < size; i++) data[i] = reader.read32s(); + break; + case 7: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var int64 = caml_int64_of_bytes(t); + ba.set(i, int64); + } + break; + case 1: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var f = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i, f); + } + break; + case 0: + for(var i = 0; i < size; i++){ + var f = caml_int32_float_of_bits(reader.read32s()); + ba.set(i, f); + } + break; + case 10: + for(var i = 0; i < size; i++){ + var + re = caml_int32_float_of_bits(reader.read32s()), + im = caml_int32_float_of_bits(reader.read32s()); + ba.set(i, [254, re, im]); + } + break; + case 11: + var t = new Array(8); + for(var i = 0; i < size; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var re = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + var im = caml_int64_float_of_bits(caml_int64_of_bytes(t)); + ba.set(i, [254, re, im]); + } + break; + } + sz[0] = (4 + num_dims) * 4; + return caml_ba_create_unsafe(kind, layout, dims, data); + } + function caml_ba_compare(a, b, total){return a.compare(b, total);} + function caml_hash_mix_int64(h, v){ + h = caml_hash_mix_int(h, caml_int64_lo32(v)); + h = caml_hash_mix_int(h, caml_int64_hi32(v)); + return h; + } + function caml_hash_mix_float(h, v0){ + return caml_hash_mix_int64(h, caml_int64_bits_of_float(v0)); + } + function caml_ba_hash(ba){ + var num_elts = caml_ba_get_size(ba.dims), h = 0; + switch(ba.kind){ + case 2: + case 3: + case 12: + if(num_elts > 256) num_elts = 256; + var w = 0, i = 0; + for(i = 0; i + 4 <= ba.data.length; i += 4){ + w = + ba.data[i + 0] | ba.data[i + 1] << 8 | ba.data[i + 2] << 16 + | ba.data[i + 3] << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(num_elts & 3){ + case 3: + w = ba.data[i + 2] << 16; + case 2: + w |= ba.data[i + 1] << 8; + case 1: + w |= ba.data[i + 0]; h = caml_hash_mix_int(h, w); + } + break; + case 4: + case 5: + if(num_elts > 128) num_elts = 128; + var w = 0, i = 0; + for(i = 0; i + 2 <= ba.data.length; i += 2){ + w = ba.data[i + 0] | ba.data[i + 1] << 16; + h = caml_hash_mix_int(h, w); + } + if((num_elts & 1) != 0) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 6: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 8: + case 9: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 7: + if(num_elts > 32) num_elts = 32; + num_elts *= 2; + for(var i = 0; i < num_elts; i++) h = caml_hash_mix_int(h, ba.data[i]); + break; + case 10: + num_elts *= 2; + case 0: + if(num_elts > 64) num_elts = 64; + for(var i = 0; i < num_elts; i++) + h = caml_hash_mix_float(h, ba.data[i]); + break; + case 11: + num_elts *= 2; + case 1: + if(num_elts > 32) num_elts = 32; + for(var i = 0; i < num_elts; i++) + h = caml_hash_mix_float(h, ba.data[i]); + break; + } + return h; + } + function caml_int32_unmarshal(reader, size){size[0] = 4; return reader.read32s(); + } + function caml_nativeint_unmarshal(reader, size){ + switch(reader.read8u()){ + case 1: + size[0] = 4; return reader.read32s(); + case 2: + caml_failwith("input_value: native integer value too large"); + default: caml_failwith("input_value: ill-formed native integer"); + } + } + function caml_int64_unmarshal(reader, size){ + var t = new Array(8); + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + size[0] = 8; + return caml_int64_of_bytes(t); + } + function caml_int64_compare(x, y, total){return x.compare(y);} + function caml_int64_hash(v){return v.lo32() ^ v.hi32();} + var + caml_custom_ops = {"_j": - {deserialize:caml_int64_unmarshal, - serialize:caml_int64_marshal, - fixed_length:8, - compare:caml_int64_compare, - hash:caml_int64_hash}, - "_i":{deserialize:caml_int32_unmarshal,fixed_length:4}, - "_n":{deserialize:caml_nativeint_unmarshal,fixed_length:4}, + {deserialize: caml_int64_unmarshal, + serialize: caml_int64_marshal, + fixed_length: 8, + compare: caml_int64_compare, + hash: caml_int64_hash}, + "_i": {deserialize: caml_int32_unmarshal, fixed_length: 4}, + "_n": {deserialize: caml_nativeint_unmarshal, fixed_length: 4}, "_bigarray": {deserialize: - function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarray")}, - serialize:caml_ba_serialize, - compare:caml_ba_compare, - hash:caml_ba_hash}, + function(reader, sz){ + return caml_ba_deserialize(reader, sz, "_bigarray"); + }, + serialize: caml_ba_serialize, + compare: caml_ba_compare, + hash: caml_ba_hash}, "_bigarr02": {deserialize: - function(reader,sz){return caml_ba_deserialize(reader,sz,"_bigarr02")}, - serialize:caml_ba_serialize, - compare:caml_ba_compare, - hash:caml_ba_hash}}; - function caml_compare_val_get_custom(a) - {return caml_custom_ops[a.caml_custom] - && - caml_custom_ops[a.caml_custom].compare} - function caml_compare_val_number_custom(num,custom,swap,total) - {var comp=caml_compare_val_get_custom(custom); - if(comp) - {var x=swap > 0?comp(custom,num,total):comp(num,custom,total); - if(total && x != x)return swap; - if(+ x != + x)return + x; - if((x | 0) != 0)return x | 0} - return swap} - function caml_compare_val_tag(a) - {if(typeof a === "number") - return 1000; - else - if(caml_is_ml_bytes(a)) - return 252; - else - if(caml_is_ml_string(a)) - return 1252; - else - if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255) - {var tag=a[0] | 0;return tag == 254?0:tag} - else - if(a instanceof String) - return 12520; - else - if(typeof a == "string") - return 12520; - else - if(a instanceof Number) - return 1000; - else - if(a && a.caml_custom) - return 1255; - else - if(a && a.compare) - return 1256; - else - if(typeof a == "function") - return 1247; - else - if(typeof a == "symbol")return 1251; - return 1001} - function caml_int_compare(a,b) - {if(a < b)return - 1;if(a == b)return 0;return 1} - function caml_bytes_compare(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c?- 1:s1.c > s2.c?1:0} - function caml_string_compare(s1,s2){return caml_bytes_compare(s1,s2)} - function caml_compare_val(a,b,total) - {var stack=[]; - for(;;) - {if(! (total && a === b)) - {var tag_a=caml_compare_val_tag(a); - if(tag_a == 250){a = a[1];continue} - var tag_b=caml_compare_val_tag(b); - if(tag_b == 250){b = b[1];continue} - if(tag_a !== tag_b) - {if(tag_a == 1000) - {if(tag_b == 1255) - return caml_compare_val_number_custom(a,b,- 1,total); - return - 1} - if(tag_b == 1000) - {if(tag_a == 1255) - return caml_compare_val_number_custom(b,a,1,total); - return 1} - return tag_a < tag_b?- 1:1} - switch(tag_a) - {case 247:caml_invalid_argument("compare: functional value");break; - case 248: - var x=caml_int_compare(a[2],b[2]);if(x != 0)return x | 0;break; - case 249:caml_invalid_argument("compare: functional value");break; - case 250: - caml_invalid_argument - ("equal: got Forward_tag, should not happen"); - break; - case 251:caml_invalid_argument("equal: abstract value");break; - case 252: - if(a !== b){var x=caml_bytes_compare(a,b);if(x != 0)return x | 0} - break; - case 253: - caml_invalid_argument("equal: got Double_tag, should not happen"); - break; - case 254: - caml_invalid_argument - ("equal: got Double_array_tag, should not happen"); - break; - case 255: - caml_invalid_argument("equal: got Custom_tag, should not happen"); - break; - case 1247: - caml_invalid_argument("compare: functional value");break; - case 1255: - var comp=caml_compare_val_get_custom(a); - if(comp != caml_compare_val_get_custom(b)) - return a.caml_custom < b.caml_custom?- 1:1; - if(! comp)caml_invalid_argument("compare: abstract value"); - var x=comp(a,b,total); - if(x != x)return total?- 1:x; - if(x !== (x | 0))return - 1; - if(x != 0)return x | 0; - break; - case 1256: - var x=a.compare(b,total); - if(x != x)return total?- 1:x; - if(x !== (x | 0))return - 1; - if(x != 0)return x | 0; - break; - case 1000: - a = + a; - b = + b; - if(a < b)return - 1; - if(a > b)return 1; - if(a != b) - {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} - break; - case 1001: - if(a < b)return - 1; - if(a > b)return 1; - if(a != b) - {if(! total)return NaN;if(a == a)return 1;if(b == b)return - 1} - break; - case 1251:if(a !== b){if(! total)return NaN;return 1}break; - case 1252: - var a=caml_jsbytes_of_string(a),b=caml_jsbytes_of_string(b); - if(a !== b){if(a < b)return - 1;if(a > b)return 1} - break; - case 12520: - var a=a.toString(),b=b.toString(); - if(a !== b){if(a < b)return - 1;if(a > b)return 1} - break; - case 246: - case 254: - default: - if(caml_is_continuation_tag(tag_a)) - {caml_invalid_argument("compare: continuation value");break} - if(a.length != b.length)return a.length < b.length?- 1:1; - if(a.length > 1)stack.push(a,b,1); - break}} - if(stack.length == 0)return 0; - var i=stack.pop(); - b = stack.pop(); - a = stack.pop(); - if(i + 1 < a.length)stack.push(a,b,i + 1); - a = a[i]; - b = b[i]}} - function caml_greaterthan(x,y){return + (caml_compare_val(x,y,false) > 0)} - function div_helper(a,b,c) - {var - x=a * 65536 + (b >>> 16), - y=Math.floor(x / c) * 65536, - z=x % c * 65536, - w=z + (b & 0x0000FFFF); - return [y + Math.floor(w / c),w % c]} - function div_digit_nat(natq,ofsq,natr,ofsr,nat1,ofs1,len,nat2,ofs2) - {var rem=nat1.data[ofs1 + len - 1] >>> 0; - for(var i=len - 2;i >= 0;i--) - {var x=div_helper(rem,nat1.data[ofs1 + i] >>> 0,nat2.data[ofs2] >>> 0); - natq.data[ofsq + i] = x[0]; - rem = x[1]} - natr.data[ofsr] = rem; - return 0} - function num_leading_zero_bits_in_digit(nat,ofs) - {var a=nat.data[ofs],b=0; - if(a & 0xFFFF0000){b += 16;a >>>= 16} - if(a & 0xFF00){b += 8;a >>>= 8} - if(a & 0xF0){b += 4;a >>>= 4} - if(a & 12){b += 2;a >>>= 2} - if(a & 2){b += 1;a >>>= 1} - if(a & 1)b += 1; - return 32 - b} - function shift_left_nat(nat1,ofs1,len1,nat2,ofs2,nbits) - {if(nbits == 0){nat2.data[ofs2] = 0;return 0} - var wrap=0; - for(var i=0;i < len1;i++) - {var a=nat1.data[ofs1 + i] >>> 0; - nat1.data[ofs1 + i] = a << nbits | wrap; - wrap = a >>> 32 - nbits} - nat2.data[ofs2] = wrap; - return 0} - function MlNat(x) - {this.data = new Int32Array(x);this.length = this.data.length + 2} - MlNat.prototype.caml_custom = "_nat"; - function create_nat(size) - {var arr=new MlNat(size); - for(var i=0;i < size;i++)arr.data[i] = - 1; - return arr} - function set_to_zero_nat(nat,ofs,len) - {for(var i=0;i < len;i++)nat.data[ofs + i] = 0;return 0} - function incr_nat(nat,ofs,len,carry_in) - {var carry=carry_in; - for(var i=0;i < len;i++) - {var x=(nat.data[ofs + i] >>> 0) + carry; - nat.data[ofs + i] = x | 0; - if(x == x >>> 0){carry = 0;break}else carry = 1} - return carry} - function add_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) - {var carry=carry_in; - for(var i=0;i < len2;i++) - {var - x= - (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; - nat1.data[ofs1 + i] = x; - if(x == x >>> 0)carry = 0;else carry = 1} - return incr_nat(nat1,ofs1 + len2,len1 - len2,carry)} - function nat_of_array(l){return new MlNat(l)} - function mult_digit_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3) - {var carry=0,a=nat3.data[ofs3] >>> 0; - for(var i=0;i < len2;i++) - {var - x1= - (nat1.data[ofs1 + i] >>> 0) - + - (nat2.data[ofs2 + i] >>> 0) - * - (a & 0x0000FFFF) - + - carry, - x2=(nat2.data[ofs2 + i] >>> 0) * (a >>> 16); - carry = Math.floor(x2 / 65536); - var x3=x1 + x2 % 65536 * 65536; - nat1.data[ofs1 + i] = x3; - carry += Math.floor(x3 / 4294967296)} - return len2 < len1 && carry - ?add_nat - (nat1,ofs1 + len2,len1 - len2,nat_of_array([carry]),0,1,0) - :carry} - function decr_nat(nat,ofs,len,carry_in) - {var borrow=carry_in == 1?0:1; - for(var i=0;i < len;i++) - {var x=(nat.data[ofs + i] >>> 0) - borrow; - nat.data[ofs + i] = x; - if(x >= 0){borrow = 0;break}else borrow = 1} - return borrow == 1?0:1} - function sub_nat(nat1,ofs1,len1,nat2,ofs2,len2,carry_in) - {var borrow=carry_in == 1?0:1; - for(var i=0;i < len2;i++) - {var - x= - (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; - nat1.data[ofs1 + i] = x; - if(x >= 0)borrow = 0;else borrow = 1} - return decr_nat(nat1,ofs1 + len2,len1 - len2,borrow == 1?0:1)} - function compare_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {var a=num_digits_nat(nat1,ofs1,len1),b=num_digits_nat(nat2,ofs2,len2); - if(a > b)return 1; - if(a < b)return - 1; - for(var i=len1 - 1;i >= 0;i--) - {if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0)return 1; - if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0)return - 1} - return 0} - function div_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {if(len2 == 1) - {div_digit_nat(nat1,ofs1 + 1,nat1,ofs1,nat1,ofs1,len1,nat2,ofs2); - return 0} - var s=num_leading_zero_bits_in_digit(nat2,ofs2 + len2 - 1); - shift_left_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); - shift_left_nat(nat1,ofs1,len1,nat_of_array([0]),0,s); - var d=(nat2.data[ofs2 + len2 - 1] >>> 0) + 1,a=create_nat(len2 + 1); - for(var i=len1 - 1;i >= len2;i--) - {var - quo= - d == 4294967296 - ?nat1.data[ofs1 + i] >>> 0 - :div_helper - (nat1.data[ofs1 + i] >>> 0,nat1.data[ofs1 + i - 1] >>> 0,d) - [0]; - set_to_zero_nat(a,0,len2 + 1); - mult_digit_nat(a,0,len2 + 1,nat2,ofs2,len2,nat_of_array([quo]),0); - sub_nat(nat1,ofs1 + i - len2,len2 + 1,a,0,len2 + 1,1); - while - (nat1.data[ofs1 + i] - != - 0 - || - compare_nat(nat1,ofs1 + i - len2,len2,nat2,ofs2,len2) - >= - 0) - {quo = quo + 1; - sub_nat(nat1,ofs1 + i - len2,len2 + 1,nat2,ofs2,len2,1)} - nat1.data[ofs1 + i] = quo} - shift_right_nat(nat1,ofs1,len2,nat_of_array([0]),0,s); - shift_right_nat(nat2,ofs2,len2,nat_of_array([0]),0,s); - return 0} - function caml_ba_blit(src,dst) - {if(dst.dims.length != src.dims.length) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - for(var i=0;i < dst.dims.length;i++) - if(dst.dims[i] != src.dims[i]) - caml_invalid_argument("Bigarray.blit: dimension mismatch"); - dst.data.set(src.data); - return 0} - function is_digit_int(nat,ofs){if(nat.data[ofs] >= 0)return 1;return 0} - function caml_int64_div(x,y){return x.div(y)} - function caml_js_html_entities(s) - {var entity=/^&#?[0-9a-zA-Z]+;$/; - if(s.match(entity)) - {var str,temp=document.createElement("p"); - temp.innerHTML = s; - str = temp.textContent || temp.innerText; - temp = null; - return str} - else - caml_failwith("Invalid entity " + s)} - function caml_string_unsafe_set(s,i,c) - {return caml_bytes_unsafe_set(s,i,c)} - function caml_int64_of_float(x) - {if(x < 0)x = Math.ceil(x); - return new - MlInt64 - (x & 0xffffff, - Math.floor(x * caml_int64_offset) & 0xffffff, - Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff)} - function caml_ml_channel_size_64(chanid) - {var chan=caml_ml_channels[chanid]; - return caml_int64_of_float(chan.file.length())} - function caml_ba_set_2(ba,i0,i1,v){ba.set(ba.offset([i0,i1]),v);return 0} - function ml_z_of_int64(i64) - {var neg=false; - if(caml_int64_compare(i64,caml_int64_create_lo_hi(0,0)) < 0) - {neg = true;i64 = caml_int64_neg(i64)} - var - lo=caml_int64_lo32(i64) >>> 0, - hi=caml_int64_hi32(i64) >>> 0, - x=bigInt(lo).add(bigInt(hi).shiftLeft(32)); - if(neg)x = x.negate(); - return ml_z_normalize(x)} - function ml_z_kronecker(n,k) - {caml_failwith("ml_z_kronecker is not implemented")} - var - caml_argv= - function() - {var process=globalThis.process,main="a.out",args=[]; - if(process && process.argv && process.argv.length > 1) - {var argv=process.argv;main = argv[1];args = argv.slice(2)} - var p=caml_string_of_jsstring(main),args2=[0,p]; - for(var i=0;i < args.length;i++) - args2.push(caml_string_of_jsstring(args[i])); - return args2} - (), - caml_executable_name=caml_argv[1]; - function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s))} - function serialize_nat(writer,nat,sz) - {var len=nat.data.length; - writer.write(32,len); - for(var i=0;i < len;i++)writer.write(32,nat.data[i]); - sz[0] = len * 4; - sz[1] = len * 8} - function caml_memprof_set(_control){return 0} - function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate())} - function caml_sys_exit(code) - {if(globalThis.quit)globalThis.quit(code); - if(globalThis.process && globalThis.process.exit) - globalThis.process.exit(code); - caml_invalid_argument("Function 'exit' not implemented")} - function caml_channel_descriptor(chanid) - {var chan=caml_ml_channels[chanid];return chan.fd} - function caml_js_from_array(a){return a.slice(1)} - function caml_ba_reshape(ba,vind) - {vind = caml_js_from_array(vind); - var new_dim=[],num_dims=vind.length; - if(num_dims < 0 || num_dims > 16) - caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); - var num_elts=1; - for(var i=0;i < num_dims;i++) - {new_dim[i] = vind[i]; - if(new_dim[i] < 0) - caml_invalid_argument("Bigarray.reshape: negative dimension"); - num_elts = num_elts * new_dim[i]} - var size=caml_ba_get_size(ba.dims); - if(num_elts != size) - caml_invalid_argument("Bigarray.reshape: size mismatch"); - return caml_ba_create_unsafe(ba.kind,ba.layout,new_dim,ba.data)} - var caml_oo_last_id=0; - function caml_set_oo_id(b){b[2] = caml_oo_last_id++;return b} - function caml_gr_fill_rect(x,y,w,h) - {var s=caml_gr_state_get(); - s.context.fillRect(x,s.height - y,w,- h); - return 0} - function caml_bigstring_blit_string_to_ba(str1,pos1,ba2,pos2,len) - {if(12 != ba2.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs2=ba2.offset(pos2); - if(pos1 + len > caml_ml_string_length(str1))caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=caml_uint8_array_of_string(str1).slice(pos1,pos1 + len); - ba2.data.set(slice,ofs2); - return 0} - function caml_gr_set_window_title(name) - {var s=caml_gr_state_get(); - s.title = name; - var jsname=caml_jsstring_of_string(name); - if(s.set_title)s.set_title(jsname); - return 0} - function caml_get_global_data(){return caml_global_data} - function caml_int64_shift_right_unsigned(x,s) - {return x.shift_right_unsigned(s)} - function caml_ba_uint8_get16(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 1 >= ba.data.length)caml_array_bound_error(); - var b1=ba.get(ofs),b2=ba.get(ofs + 1); - return b1 | b2 << 8} - function ml_z_of_int32(i){return i | 0} - function caml_compare(a,b){return caml_compare_val(a,b,true)} - var - caml_MD5Transform= - function() - {function add(x,y){return x + y | 0} - function xx(q,a,b,x,s,t) - {a = add(add(a,q),add(x,t));return add(a << s | a >>> 32 - s,b)} - function ff(a,b,c,d,x,s,t){return xx(b & c | ~ b & d,a,b,x,s,t)} - function gg(a,b,c,d,x,s,t){return xx(b & d | c & ~ d,a,b,x,s,t)} - function hh(a,b,c,d,x,s,t){return xx(b ^ c ^ d,a,b,x,s,t)} - function ii(a,b,c,d,x,s,t){return xx(c ^ (b | ~ d),a,b,x,s,t)} - return function(w,buffer) - {var a=w[0],b=w[1],c=w[2],d=w[3]; - a = ff(a,b,c,d,buffer[0],7,0xD76AA478); - d = ff(d,a,b,c,buffer[1],12,0xE8C7B756); - c = ff(c,d,a,b,buffer[2],17,0x242070DB); - b = ff(b,c,d,a,buffer[3],22,0xC1BDCEEE); - a = ff(a,b,c,d,buffer[4],7,0xF57C0FAF); - d = ff(d,a,b,c,buffer[5],12,0x4787C62A); - c = ff(c,d,a,b,buffer[6],17,0xA8304613); - b = ff(b,c,d,a,buffer[7],22,0xFD469501); - a = ff(a,b,c,d,buffer[8],7,0x698098D8); - d = ff(d,a,b,c,buffer[9],12,0x8B44F7AF); - c = ff(c,d,a,b,buffer[10],17,0xFFFF5BB1); - b = ff(b,c,d,a,buffer[11],22,0x895CD7BE); - a = ff(a,b,c,d,buffer[12],7,0x6B901122); - d = ff(d,a,b,c,buffer[13],12,0xFD987193); - c = ff(c,d,a,b,buffer[14],17,0xA679438E); - b = ff(b,c,d,a,buffer[15],22,0x49B40821); - a = gg(a,b,c,d,buffer[1],5,0xF61E2562); - d = gg(d,a,b,c,buffer[6],9,0xC040B340); - c = gg(c,d,a,b,buffer[11],14,0x265E5A51); - b = gg(b,c,d,a,buffer[0],20,0xE9B6C7AA); - a = gg(a,b,c,d,buffer[5],5,0xD62F105D); - d = gg(d,a,b,c,buffer[10],9,0x02441453); - c = gg(c,d,a,b,buffer[15],14,0xD8A1E681); - b = gg(b,c,d,a,buffer[4],20,0xE7D3FBC8); - a = gg(a,b,c,d,buffer[9],5,0x21E1CDE6); - d = gg(d,a,b,c,buffer[14],9,0xC33707D6); - c = gg(c,d,a,b,buffer[3],14,0xF4D50D87); - b = gg(b,c,d,a,buffer[8],20,0x455A14ED); - a = gg(a,b,c,d,buffer[13],5,0xA9E3E905); - d = gg(d,a,b,c,buffer[2],9,0xFCEFA3F8); - c = gg(c,d,a,b,buffer[7],14,0x676F02D9); - b = gg(b,c,d,a,buffer[12],20,0x8D2A4C8A); - a = hh(a,b,c,d,buffer[5],4,0xFFFA3942); - d = hh(d,a,b,c,buffer[8],11,0x8771F681); - c = hh(c,d,a,b,buffer[11],16,0x6D9D6122); - b = hh(b,c,d,a,buffer[14],23,0xFDE5380C); - a = hh(a,b,c,d,buffer[1],4,0xA4BEEA44); - d = hh(d,a,b,c,buffer[4],11,0x4BDECFA9); - c = hh(c,d,a,b,buffer[7],16,0xF6BB4B60); - b = hh(b,c,d,a,buffer[10],23,0xBEBFBC70); - a = hh(a,b,c,d,buffer[13],4,0x289B7EC6); - d = hh(d,a,b,c,buffer[0],11,0xEAA127FA); - c = hh(c,d,a,b,buffer[3],16,0xD4EF3085); - b = hh(b,c,d,a,buffer[6],23,0x04881D05); - a = hh(a,b,c,d,buffer[9],4,0xD9D4D039); - d = hh(d,a,b,c,buffer[12],11,0xE6DB99E5); - c = hh(c,d,a,b,buffer[15],16,0x1FA27CF8); - b = hh(b,c,d,a,buffer[2],23,0xC4AC5665); - a = ii(a,b,c,d,buffer[0],6,0xF4292244); - d = ii(d,a,b,c,buffer[7],10,0x432AFF97); - c = ii(c,d,a,b,buffer[14],15,0xAB9423A7); - b = ii(b,c,d,a,buffer[5],21,0xFC93A039); - a = ii(a,b,c,d,buffer[12],6,0x655B59C3); - d = ii(d,a,b,c,buffer[3],10,0x8F0CCC92); - c = ii(c,d,a,b,buffer[10],15,0xFFEFF47D); - b = ii(b,c,d,a,buffer[1],21,0x85845DD1); - a = ii(a,b,c,d,buffer[8],6,0x6FA87E4F); - d = ii(d,a,b,c,buffer[15],10,0xFE2CE6E0); - c = ii(c,d,a,b,buffer[6],15,0xA3014314); - b = ii(b,c,d,a,buffer[13],21,0x4E0811A1); - a = ii(a,b,c,d,buffer[4],6,0xF7537E82); - d = ii(d,a,b,c,buffer[11],10,0xBD3AF235); - c = ii(c,d,a,b,buffer[2],15,0x2AD7D2BB); - b = ii(b,c,d,a,buffer[9],21,0xEB86D391); - w[0] = add(a,w[0]); - w[1] = add(b,w[1]); - w[2] = add(c,w[2]); - w[3] = add(d,w[3])}} - (); - function caml_MD5Update(ctx,input,input_len) - {var in_buf=ctx.len & 0x3f,input_pos=0; - ctx.len += input_len; - if(in_buf) - {var missing=64 - in_buf; - if(input_len < missing) - {ctx.b8.set(input.subarray(0,input_len),in_buf);return} - ctx.b8.set(input.subarray(0,missing),in_buf); - caml_MD5Transform(ctx.w,ctx.b32); - input_len -= missing; - input_pos += missing} - while(input_len >= 64) - {ctx.b8.set(input.subarray(input_pos,input_pos + 64),0); - caml_MD5Transform(ctx.w,ctx.b32); - input_len -= 64; - input_pos += 64} - if(input_len) - ctx.b8.set(input.subarray(input_pos,input_pos + input_len),0)} - function caml_fresh_oo_id(){return caml_oo_last_id++} - function caml_int64_to_float(x){return x.toFloat()} - function caml_ba_get_1(ba,i0){return ba.get(ba.offset(i0))} - function caml_bigstring_memcmp(s1,pos1,s2,pos2,len) - {for(var i=0;i < len;i++) - {var a=caml_ba_get_1(s1,pos1 + i),b=caml_ba_get_1(s2,pos2 + i); - if(a < b)return - 1; - if(a > b)return 1} - return 0} - function caml_new_string(s){return caml_string_of_jsbytes(s)} - function caml_erf_float(x) - {var - a1=0.254829592, - a2=- 0.284496736, - a3=1.421413741, - a4=- 1.453152027, - a5=1.061405429, - p=0.3275911, - sign=1; - if(x < 0)sign = - 1; - x = Math.abs(x); - var - t=1.0 / (1.0 + p * x), - y= - 1.0 - - - ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) - * - t - * - Math.exp(- (x * x)); - return sign * y} - function caml_ba_uint8_get32(ba,i0) - {var ofs=ba.offset(i0); - if(ofs + 3 >= ba.data.length)caml_array_bound_error(); - var - b1=ba.get(ofs + 0), - b2=ba.get(ofs + 1), - b3=ba.get(ofs + 2), - b4=ba.get(ofs + 3); - return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24} - function caml_raw_backtrace_length(){return 0} - function ml_z_shift_right(z1,amt) - {return ml_z_normalize(bigInt(z1).shiftRight(amt))} - function caml_str_initialize(unit){return 0} - function caml_obj_block(tag,size) - {var o=new Array(size + 1); - o[0] = tag; - for(var i=1;i <= size;i++)o[i] = 0; - return o} - function caml_gr_clear_graph() - {var s=caml_gr_state_get(); - s.canvas.width = s.width; - s.canvas.height = s.height; - return 0} - function bigstring_to_array_buffer(bs){return bs.data.buffer} - function caml_sys_const_naked_pointers_checked(_unit){return 0} - function lxor_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] ^= nat2.data[ofs2];return 0} - function caml_obj_add_offset(v,offset) - {caml_failwith("Obj.add_offset is not supported")} - function caml_final_release(){return 0} - function caml_js_to_array(a) - {var len=a.length,b=new Array(len + 1); - b[0] = 0; - for(var i=0;i < len;i++)b[i + 1] = a[i]; - return b} - function ml_z_logor(z1,z2) - {return ml_z_normalize(bigInt(z1).or(bigInt(z2)))} - function caml_gr_plot(x,y) - {var - s=caml_gr_state_get(), - im=s.context.createImageData(1,1), - d=im.data, - color=s.color; - d[0] = color >> 16 & 0xff; - d[1] = color >> 8 & 0xff,d[2] = color >> 0 & 0xff; - d[3] = 0xFF; - s.x = x; - s.y = y; - s.context.putImageData(im,x,s.height - y); - return 0} - function caml_bytes_set16(s,i,i16) - {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); - var b2=0xFF & i16 >> 8,b1=0xFF & i16; - caml_bytes_unsafe_set(s,i + 0,b1); - caml_bytes_unsafe_set(s,i + 1,b2); - return 0} - function caml_string_set16(s,i,i16){return caml_bytes_set16(s,i,i16)} - function caml_bytes_set64(s,i,i64) - {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); - var a=caml_int64_to_bytes(i64); - for(var j=0;j < 8;j++)caml_bytes_unsafe_set(s,i + 7 - j,a[j]); - return 0} - function caml_int64_bswap(x) - {var y=caml_int64_to_bytes(x); - return caml_int64_of_bytes([y[7],y[6],y[5],y[4],y[3],y[2],y[1],y[0]])} - function ml_z_fits_int(z1){return z1 == (z1 | 0)?1:0} - function ml_z_fits_int32(z1){return ml_z_fits_int(z1)} - function caml_gc_major(unit) - {if(typeof globalThis.gc == "function")globalThis.gc();return 0} - function ml_z_shift_left(z1,amt) - {return ml_z_normalize(bigInt(z1).shiftLeft(amt))} - function caml_lex_array(s) - {s = caml_jsbytes_of_string(s); - var l=s.length / 2,a=new Array(l); - for(var i=0;i < l;i++) - a[i] - = - (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) - << - 16 - >> - 16; - return a} - function caml_lex_engine(tbl,start_state,lexbuf) - {var - lex_buffer=2, - lex_buffer_len=3, - lex_start_pos=5, - lex_curr_pos=6, - lex_last_pos=7, - lex_last_action=8, - lex_eof_reached=9, - lex_base=1, - lex_backtrk=2, - lex_default=3, - lex_trans=4, - lex_check=5; - if(! tbl.lex_default) - {tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default])} - var - c, - state=start_state, - buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1} - else - state = - state - 1; - for(;;) - {var base=tbl.lex_base[state]; - if(base < 0)return - base - 1; - var backtrk=tbl.lex_backtrk[state]; - if(backtrk >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk} - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; - else - {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0) - {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]} - else - if(c == 256)lexbuf[lex_eof_reached] = 0}} - function caml_sys_file_exists(name) - {var root=resolve_fs_device(name);return root.device.exists(root.rest)} - function caml_convert_raw_backtrace_slot() - {caml_failwith("caml_convert_raw_backtrace_slot")} - function caml_array_sub(a,i,len) - {var a2=new Array(len + 1); - a2[0] = 0; - for(var i2=1,i1=i + 1;i2 <= len;i2++,i1++)a2[i2] = a[i1]; - return a2} - function caml_bytes_equal(s1,s2) - {if(s1 === s2)return 1; - s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c == s2.c?1:0} - function caml_gr_size_x(){var s=caml_gr_state_get();return s.width} - function caml_ml_debug_info_status(){return 0} - function caml_atomic_fetch_add(ref,i) - {var old=ref[1];ref[1] += i;return old} - var - os_type= - globalThis.process - && - globalThis.process.platform - && - globalThis.process.platform - == - "win32" - ?"Cygwin" - :"Unix"; - function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin"?1:0} - function caml_cosh_float(x){return Math.cosh(x)} - function MlMutex(){this.locked = false} - function caml_ml_mutex_new(unit){return new MlMutex()} - var caml_ephe_key_offset=3; - function caml_ephe_check_key(x,i) - {var weak=x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined?0:1} - function caml_hash_mix_final(h) - {h ^= h >>> 16; - h = caml_mul(h,0x85ebca6b | 0); - h ^= h >>> 13; - h = caml_mul(h,0xc2b2ae35 | 0); - h ^= h >>> 16; - return h} - function caml_gr_text_size(txt) - {var - s=caml_gr_state_get(), - w=s.context.measureText(caml_jsstring_of_string(txt)).width; - return [0,w,s.text_size]} - function caml_lex_run_mem(s,i,mem,curr_pos) - {for(;;) - {var dst=s.charCodeAt(i); - i++; - if(dst == 0xff)return; - var src=s.charCodeAt(i); - i++; - if(src == 0xff) - mem[dst + 1] = curr_pos; - else - mem[dst + 1] = mem[src + 1]}} - function caml_lex_run_tag(s,i,mem) - {for(;;) - {var dst=s.charCodeAt(i); - i++; - if(dst == 0xff)return; - var src=s.charCodeAt(i); - i++; - if(src == 0xff)mem[dst + 1] = - 1;else mem[dst + 1] = mem[src + 1]}} - function caml_new_lex_engine(tbl,start_state,lexbuf) - {var - lex_buffer=2, - lex_buffer_len=3, - lex_start_pos=5, - lex_curr_pos=6, - lex_last_pos=7, - lex_last_action=8, - lex_eof_reached=9, - lex_mem=10, - lex_base=1, - lex_backtrk=2, - lex_default=3, - lex_trans=4, - lex_check=5, - lex_base_code=6, - lex_backtrk_code=7, - lex_default_code=8, - lex_trans_code=9, - lex_check_code=10, - lex_code=11; - if(! tbl.lex_default) - {tbl.lex_base = caml_lex_array(tbl[lex_base]); - tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); - tbl.lex_check = caml_lex_array(tbl[lex_check]); - tbl.lex_trans = caml_lex_array(tbl[lex_trans]); - tbl.lex_default = caml_lex_array(tbl[lex_default])} - if(! tbl.lex_default_code) - {tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); - tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); - tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); - tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); - tbl.lex_default_code = caml_lex_array(tbl[lex_default_code])} - if(tbl.lex_code == null) - tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); - var - c, - state=start_state, - buffer=caml_uint8_array_of_bytes(lexbuf[lex_buffer]); - if(state >= 0) - {lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = - 1} - else - state = - state - 1; - for(;;) - {var base=tbl.lex_base[state]; - if(base < 0) - {var pc_off=tbl.lex_base_code[state]; - caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); - return - base - 1} - var backtrk=tbl.lex_backtrk[state]; - if(backtrk >= 0) - {var pc_off=tbl.lex_backtrk_code[state]; - caml_lex_run_tag(tbl.lex_code,pc_off,lexbuf[lex_mem]); - lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; - lexbuf[lex_last_action] = backtrk} - if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) - if(lexbuf[lex_eof_reached] == 0)return - state - 1;else c = 256; - else - {c = buffer[lexbuf[lex_curr_pos]];lexbuf[lex_curr_pos]++} - var pstate=state; - if(tbl.lex_check[base + c] == state) - state = tbl.lex_trans[base + c]; - else - state = tbl.lex_default[state]; - if(state < 0) - {lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; - if(lexbuf[lex_last_action] == - 1) - caml_failwith("lexing: empty token"); - else - return lexbuf[lex_last_action]} - else - {var base_code=tbl.lex_base_code[pstate],pc_off; - if(tbl.lex_check_code[base_code + c] == pstate) - pc_off = tbl.lex_trans_code[base_code + c]; - else - pc_off = tbl.lex_default_code[pstate]; - if(pc_off > 0) - caml_lex_run_mem - (tbl.lex_code,pc_off,lexbuf[lex_mem],lexbuf[lex_curr_pos]); - if(c == 256)lexbuf[lex_eof_reached] = 0}}} - function caml_ba_uint8_set64(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 7 >= ba.data.length)caml_array_bound_error(); - var v=caml_int64_to_bytes(v); - for(var i=0;i < 8;i++)ba.set(ofs + i,v[7 - i]); - return 0} - function ml_z_popcount(z) - {z = bigInt(z); - var zero=bigInt(0),one=bigInt(1); - if(z.lt(zero))caml_raise_constant(caml_named_value("ml_z_overflow")); - var i; - for(i = 0;! z.equals(zero);i++)z = z.and(z.prev()); - if(i != (i | 0))caml_raise_constant(caml_named_value("ml_z_overflow")); - return i | 0} - function caml_sys_executable_name(a){return caml_executable_name} - function caml_lessequal(x,y){return + (caml_compare_val(x,y,false) <= 0)} - function caml_acosh_float(x){return Math.acosh(x)} - function caml_MD5Init() - {var - buffer=new ArrayBuffer(64), - b32=new Uint32Array(buffer), - b8=new Uint8Array(buffer); - return {len:0, - w:new Uint32Array([0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476]), - b32:b32, - b8:b8}} - function caml_ml_flush(chanid) - {var chan=caml_ml_channels[chanid]; - if(! chan.opened)caml_raise_sys_error("Cannot flush a closed channel"); - if(! chan.buffer || chan.buffer_curr == 0)return 0; - if(chan.output) - chan.output(caml_subarray_to_jsbytes(chan.buffer,0,chan.buffer_curr)); - else - chan.file.write(chan.offset,chan.buffer,0,chan.buffer_curr); - chan.offset += chan.buffer_curr; - chan.buffer_curr = 0; - return 0} - function caml_seek_out(chanid,pos) - {caml_ml_flush(chanid); - var chan=caml_ml_channels[chanid]; - chan.offset = pos; - return 0} - function caml_ml_seek_out_64(chanid,pos) - {var pos=caml_int64_to_float(pos);return caml_seek_out(chanid,pos)} - function compare_nat_real(nat1,nat2) - {return compare_nat(nat1,0,nat1.data.length,nat2,0,nat2.data.length)} - function caml_gc_set(_control){return 0} - function caml_js_get(o,f){return o[f]} - function caml_unix_isatty(fileDescriptor) - {if(fs_node_supported()) - {var tty=require("tty");return tty.isatty(fileDescriptor)?1:0} - else - return 0} - function caml_ml_set_buffered(chanid,v) - {caml_ml_channels[chanid].buffered = v; - if(! v)caml_ml_flush(chanid); - return 0} - function caml_gc_compaction(){return 0} - function caml_ephe_get_key(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_key"); - var weak=x[caml_ephe_key_offset + i]; - if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) - weak = weak.deref(); - return weak === undefined?0:[0,weak]} - function caml_unix_localtime(t) - {var - d=new Date(t * 1000), - d_num=d.getTime(), - januaryfirst=new Date(d.getFullYear(),0,1).getTime(), - doy=Math.floor((d_num - januaryfirst) / 86400000), - jan=new Date(d.getFullYear(),0,1), - jul=new Date(d.getFullYear(),6,1), - stdTimezoneOffset= - Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset()); - return [0, - d.getSeconds(), - d.getMinutes(), - d.getHours(), - d.getDate(), - d.getMonth(), - d.getFullYear() - 1900, - d.getDay(), - doy, - d.getTimezoneOffset() < stdTimezoneOffset | 0]} - function caml_unix_mktime(tm) - {var - d=new Date(tm[6] + 1900,tm[5],tm[4],tm[3],tm[2],tm[1]).getTime(), - t=Math.floor(d / 1000), - tm2=caml_unix_localtime(t); - return [0,t,tm2]} - function jsoo_z_of_js_string_base(base,s) - {if(base == 0) - {base = 10; - var p=0,sign=1; - if(s[p] == "-"){sign = - 1;p++}else if(s[p] == "+")p++; - if(s[p] == "0") - {p++; - if(s.length == p) - return 0; - else - {var bc=s[p]; - if(bc == "o" || bc == "O") - base = 8; - else - if(bc == "x" || bc == "X") - base = 16; - else - if(bc == "b" || bc == "B")base = 2; - if(base != 10){s = s.substring(p + 1);if(sign == - 1)s = "-" + s}}}} - function digit(code) - {if(code >= 48 && code <= 57)return code - 48; - if(code >= 97 && code <= 102)return code - 97 + 10; - if(code >= 65 && code <= 70)return code - 65 + 10} - var i=0; - if(s[i] == "+")s = s.substring(1);else if(s[i] == "-")i++; - if(s[i] == "_") - caml_invalid_argument("Z.of_substring_base: invalid digit"); - s = s.replace(/_/g,""); - if(s == "-" || s == "")s = "0"; - for(;i < s.length;i++) - {var c=digit(s.charCodeAt(i)); - if(c == undefined || c >= base) - caml_invalid_argument("Z.of_substring_base: invalid digit")} - return ml_z_normalize(bigInt(s,base))} - function ml_z_of_substring_base(base,s,pos,len) - {s = caml_jsbytes_of_string(s); - if(pos != 0 || len != s.length) - {if(s.length - pos < len) - caml_invalid_argument - ("Z.of_substring_base: invalid offset or length"); - s = s.slice(pos,pos + len)} - return jsoo_z_of_js_string_base(base,s)} - function caml_bigstring_blit_bytes_to_ba(str1,pos1,ba2,pos2,len) - {if(12 != ba2.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs2=ba2.offset(pos2); - if(pos1 + len > caml_ml_bytes_length(str1))caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=caml_uint8_array_of_bytes(str1).slice(pos1,pos1 + len); - ba2.data.set(slice,ofs2); - return 0} - var caml_sys_fds=new Array(3); - function caml_sys_close(fd) - {var file=caml_sys_fds[fd]; - if(file)file.close(); - delete caml_sys_fds[fd]; - return 0} - function caml_ml_close_channel(chanid) - {var chan=caml_ml_channels[chanid]; - chan.opened = false; - caml_sys_close(chan.fd); - return 0} - function caml_exn_with_js_backtrace(exn,force) - {if(! exn.js_error || force || exn[0] == 248) - exn.js_error - = - new (globalThis.Error)("Js exception containing backtrace"); - return exn} - function caml_atomic_exchange(ref,v){var r=ref[1];ref[1] = v;return r} - function caml_sys_isatty(_chan){return 0} - function is_digit_zero(nat,ofs){if(nat.data[ofs] == 0)return 1;return 0} - function caml_unix_lstat(name) - {var root=resolve_fs_device(name); - if(! root.device.lstat) - caml_failwith("caml_unix_lstat: not implemented"); - return root.device.lstat(root.rest,true)} - function caml_unix_lstat_64(name) - {var r=caml_unix_lstat(name);r[9] = caml_int64_of_int32(r[9])} - function caml_js_set(o,f,v){o[f] = v;return 0} - function ml_z_gcdext_intern(z1,z2) - {z1 = bigInt(z1); - z2 = bigInt(z2); - var - gcd=bigInt.gcd(z1,z2), - a=z1, - b=z2, - x=bigInt(0), - lastx=bigInt(1), - y=bigInt(1), - lasty=bigInt(1), - q, - t, - r; - if(z1.equals(bigInt(0)))caml_raise_zero_divide(); - while(! b.equals(bigInt(0))) - {q = a.divide(b); - r = a.subtract(q.multiply(b)); - t = x; - x = lastx.subtract(q.multiply(x)); - lastx = t; - t = y; - y = lasty.subtract(q.multiply(y)); - lasty = t; - a = b; - b = r} - return a.lt(bigInt(0)) - ?[0,ml_z_normalize(a.negate()),ml_z_normalize(lastx.negate()),1] - :[0,ml_z_normalize(a),ml_z_normalize(lastx),1]} - function ml_z_testbit(z,pos) - {z = bigInt(z);return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0} - function caml_array_get(array,index) - {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); - return array[index + 1]} - function caml_continuation_use_noexc(cont) - {var stack=cont[1];cont[1] = 0;return stack} - function caml_unix_rmdir(name) - {var root=resolve_fs_device(name); - if(! root.device.rmdir) - caml_failwith("caml_unix_rmdir: not implemented"); - return root.device.rmdir(root.rest,true)} - function caml_log2_float(x){return Math.log2(x)} - function caml_gc_huge_fallback_count(unit){return 0} - function ml_z_congruent(a,b,c) - {var zero=bigInt(0); - a = bigInt(a); - b = bigInt(b); - c = bigInt(c); - if(c.equals(zero) && a.equals(b))return 1; - return a.minus(b).isDivisibleBy(c)?1:0} - function caml_spacetime_only_works_for_native_code() - {caml_failwith("Spacetime profiling only works for native code")} - function caml_int64_sub(x,y){return x.sub(y)} - function caml_seek_in(chanid,pos) - {var chan=caml_ml_channels[chanid]; - if(chan.refill != null)caml_raise_sys_error("Illegal seek"); - if - (pos - >= - chan.offset - - - chan.buffer_max - && - pos - <= - chan.offset - && - chan.file.flags.binary) - chan.buffer_curr = chan.buffer_max - (chan.offset - pos); - else - {chan.offset = pos;chan.buffer_curr = 0;chan.buffer_max = 0} - return 0} - function caml_ml_seek_in_64(chanid,pos) - {var pos=caml_int64_to_float(pos);return caml_seek_in(chanid,pos)} - var caml_domain_id=0; - function caml_ml_mutex_unlock(t){t.locked = false;return 0} - var caml_domain_latest_idx=1; - function caml_domain_spawn(f,mutex) - {var id=caml_domain_latest_idx++,old=caml_domain_id; - caml_domain_id = id; - caml_callback(f,[0]); - caml_domain_id = old; - caml_ml_mutex_unlock(mutex); - return id} - function caml_unix_mkdir(name,perm) - {var root=resolve_fs_device(name); - if(! root.device.mkdir) - caml_failwith("caml_unix_mkdir: not implemented"); - return root.device.mkdir(root.rest,perm,true)} - function caml_int64_shift_left(x,s){return x.shift_left(s)} - function caml_notequal(x,y){return + (caml_compare_val(x,y,false) != 0)} - function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs())} - function caml_sys_const_int_size(){return 32} - function caml_js_wrap_callback(f) - {return function() - {var len=arguments.length; - if(len > 0) - {var args=new Array(len); - for(var i=0;i < len;i++)args[i] = arguments[i]} - else - args = [undefined]; - var res=caml_callback(f,args); - return res instanceof Function?caml_js_wrap_callback(res):res}} - function caml_js_wrap_meth_callback(f) - {return function() - {var len=arguments.length,args=new Array(len + 1); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - var res=caml_callback(f,args); - return res instanceof Function?caml_js_wrap_callback(res):res}} - function caml_is_js(){return 1} - function caml_lazy_update_to_forward(o) - {caml_obj_update_tag(o,244,250);return 0} - function caml_ba_dim(ba,i) - {if(i < 0 || i >= ba.dims.length)caml_invalid_argument("Bigarray.dim"); - return ba.dims[i]} - function caml_ba_dim_1(ba){return caml_ba_dim(ba,0)} - function ml_z_sqrt(z1) - {var z=bigInt(z1),zero=bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt: square root of a negative number"); - return ml_z_root(z,2)} - function caml_js_meth_call(o,f,args) - {return o[caml_jsstring_of_string(f)].apply(o,caml_js_from_array(args))} - function ml_z_lucnum(i) - {if(i < 0)caml_invalid_argument("Z.lucnum: negative arguments"); - if(i == 0)return 2; - if(i == 1)return 1; - var a=bigInt(2),b=bigInt(1); - for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} - return ml_z_normalize(b)} - var caml_ephe_data_offset=2; - function caml_weak_create(n) - {if(n < 0)caml_invalid_argument("Weak.create"); - var x=[251,"caml_ephe_list_head"]; - x.length = caml_ephe_key_offset + n; - return x} - function caml_ephe_create(n){var x=caml_weak_create(n);return x} - function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s)} - function ml_z_probab_prime(z,i){return bigInt(z).isProbablePrime(i)?1:0} - function caml_trampoline(res) - {var c=1; - while(res && res.joo_tramp) - {res = res.joo_tramp.apply(null,res.joo_args);c++} - return res} - function caml_maybe_print_stats(unit){return 0} - function caml_bytes_get64(s,i) - {if(i >>> 0 >= s.l - 7)caml_bytes_bound_error(); - var a=new Array(8); - for(var j=0;j < 8;j++)a[7 - j] = caml_bytes_unsafe_get(s,i + j); - return caml_int64_of_bytes(a)} - function caml_unix_has_symlink(unit){return fs_node_supported()?1:0} - function ml_z_rem(z1,z2) - {z2 = bigInt(z2); - if(z2.equals(bigInt(0)))caml_raise_zero_divide(); - return ml_z_normalize(bigInt(z1).mod(z2))} - function caml_ephe_set_key(x,i,v) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if(v instanceof Object && globalThis.WeakRef) - {if(x[1].register)x[1].register(v,undefined,v); - x[caml_ephe_key_offset + i] = new (globalThis.WeakRef)(v)} - else - x[caml_ephe_key_offset + i] = v; - return 0} - function caml_ephe_unset_key(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.set"); - if - (globalThis.WeakRef - && - x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef - && - x[1].unregister) - {var old=x[caml_ephe_key_offset + i].deref(); - if(old !== undefined) - {var count=0; - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key === old)count++}} - if(count == 1)x[1].unregister(old)}} - x[caml_ephe_key_offset + i] = undefined; - return 0} - function caml_weak_set(x,i,v) - {if(v == 0)caml_ephe_unset_key(x,i);else caml_ephe_set_key(x,i,v[1]); - return 0} - function caml_sys_remove(name) - {var root=resolve_fs_device(name),ok=root.device.unlink(root.rest); - if(ok == 0)caml_raise_no_such_file(caml_jsbytes_of_string(name)); - return 0} - function caml_string_bound_error() - {caml_invalid_argument("index out of bounds")} - function caml_string_get32(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 3)caml_string_bound_error(); - var - b1=caml_string_unsafe_get(s,i), - b2=caml_string_unsafe_get(s,i + 1), - b3=caml_string_unsafe_get(s,i + 2), - b4=caml_string_unsafe_get(s,i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1} - function caml_bytes_get(s,i) - {if(i >>> 0 >= s.l)caml_bytes_bound_error(); - return caml_bytes_unsafe_get(s,i)} - function caml_hypot_float(x,y){return Math.hypot(x,y)} - function ml_z_facM(i,m) - {if(i <= 0 || m <= 0) - caml_invalid_argument("Z.factM: negative arguments"); - m = bigInt(m); - var current=bigInt(i),res=bigInt(1); - while(current.isPositive()) - {res = res.multiply(current);current = current.minus(m)} - return ml_z_normalize(res)} - function caml_js_call(f,o,args) - {return f.apply(o,caml_js_from_array(args))} - function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0} - function caml_unix_inet_addr_of_string(){return 0} - function ml_z_mul_overflows(x,y){var z=x * y;return z != (z | 0)} - function ml_z_to_int(z1) - {if(z1 == (z1 | 0))return z1 | 0; - caml_raise_constant(caml_named_value("ml_z_overflow"))} - function caml_hash_mix_bytes_arr(h,s) - {var len=s.length,i,w; - for(i = 0;i + 4 <= len;i += 4) - {w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(len & 3) - {case 3:w = s[i + 2] << 16; - case 2:w |= s[i + 1] << 8; - case 1:w |= s[i];h = caml_hash_mix_int(h,w) - } - h ^= len; - return h} - function caml_hash_mix_jsbytes(h,s) - {var len=s.length,i,w; - for(i = 0;i + 4 <= len;i += 4) - {w - = - s.charCodeAt(i) - | - s.charCodeAt(i + 1) - << - 8 - | - s.charCodeAt(i + 2) - << - 16 - | - s.charCodeAt(i + 3) - << - 24; - h = caml_hash_mix_int(h,w)} - w = 0; - switch(len & 3) - {case 3:w = s.charCodeAt(i + 2) << 16; - case 2:w |= s.charCodeAt(i + 1) << 8; - case 1:w |= s.charCodeAt(i);h = caml_hash_mix_int(h,w) - } - h ^= len; - return h} - function caml_ml_bytes_content(s) - {switch(s.t & 6) - {default:caml_convert_string_to_bytes(s);case 0:return s.c; - case 4:return s.c - }} - function caml_hash_mix_bytes(h,v) - {var content=caml_ml_bytes_content(v); - return typeof content === "string" - ?caml_hash_mix_jsbytes(h,content) - :caml_hash_mix_bytes_arr(h,content)} - function caml_bytes_lessthan(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c < s2.c?1:0} - function caml_erfc_float(x){return 1 - caml_erf_float(x)} - function caml_gr_fill_poly(ar) - {var s=caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(ar[1][1],s.height - ar[1][2]); - for(var i=2;i < ar.length;i++) - s.context.lineTo(ar[i][1],s.height - ar[i][2]); - s.context.lineTo(ar[1][1],s.height - ar[1][2]); - s.context.fill(); - return 0} - function caml_gc_quick_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} - function ml_z_fac(i) - {if(i <= 0)caml_invalid_argument("Z.fact: negative arguments"); - return ml_z_facM(i,1)} - function caml_ml_input_char(chanid) - {var chan=caml_ml_channels[chanid]; - if(chan.buffer_curr >= chan.buffer_max) - {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} - if(chan.buffer_curr >= chan.buffer_max)caml_raise_end_of_file(); - var res=chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - return res} - function caml_ml_input_int(chanid) - {var chan=caml_ml_channels[chanid],res=0; - for(var i=0;i < 4;i++)res = (res << 8) + caml_ml_input_char(chanid); - return res} - function caml_gr_display_mode() - {caml_failwith("caml_gr_display_mode not Implemented")} - function ml_z_divisible(a,b) - {var zero=bigInt(0); - a = bigInt(a); - b = bigInt(b); - if(a.equals(zero) && b.equals(zero))return 1; - return a.isDivisibleBy(b)?1:0} - function caml_obj_reachable_words(o){return 0} - function nth_digit_nat(nat,ofs){return nat.data[ofs]} - function caml_array_blit(a1,i1,a2,i2,len) - {if(i2 <= i1) - for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; - else - for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; - return 0} - function caml_float_of_string(s) - {var res; - s = caml_jsbytes_of_string(s); - res = + s; - if(s.length > 0 && res === res)return res; - s = s.replace(/_/g,""); - res = + s; - if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s))return res; - var m=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); - if(m) - {var - m3=m[3].replace(/0+$/,""), - mantissa=parseInt(m[1] + m[2] + m3,16), - exponent=(m[5] | 0) - 4 * m3.length; - res = mantissa * Math.pow(2,exponent); - return res} - if(/^\+?inf(inity)?$/i.test(s))return Infinity; - if(/^-inf(inity)?$/i.test(s))return - Infinity; - caml_failwith("float_of_string")} - function caml_sys_getcwd() - {return caml_string_of_jsbytes(caml_current_dir)} - function caml_int64_add(x,y){return x.add(y)} - function caml_int64_mul(x,y){return x.mul(y)} - function caml_int64_ult(x,y){return x.ucompare(y) < 0} - function caml_parse_sign_and_base(s) - {var i=0,len=caml_ml_string_length(s),base=10,sign=1; - if(len > 0) - switch(caml_string_unsafe_get(s,i)) - {case 45:i++;sign = - 1;break;case 43:i++;sign = 1;break} - if(i + 1 < len && caml_string_unsafe_get(s,i) == 48) - switch(caml_string_unsafe_get(s,i + 1)) - {case 120: - case 88:base = 16;i += 2;break; - case 111: - case 79:base = 8;i += 2;break; - case 98: - case 66:base = 2;i += 2;break; - case 117: - case 85:i += 2;break + function(reader, sz){ + return caml_ba_deserialize(reader, sz, "_bigarr02"); + }, + serialize: caml_ba_serialize, + compare: caml_ba_compare, + hash: caml_ba_hash}}; + function caml_compare_val_get_custom(a){ + return caml_custom_ops[a.caml_custom] + && caml_custom_ops[a.caml_custom].compare; + } + function caml_compare_val_number_custom(num, custom, swap, total){ + var comp = caml_compare_val_get_custom(custom); + if(comp){ + var x = swap > 0 ? comp(custom, num, total) : comp(num, custom, total); + if(total && x != x) return swap; + if(+ x != + x) return + x; + if((x | 0) != 0) return x | 0; + } + return swap; + } + function caml_compare_val_tag(a){ + if(typeof a === "number") + return 1000; + else if(caml_is_ml_bytes(a)) + return 252; + else if(caml_is_ml_string(a)) + return 1252; + else if(a instanceof Array && a[0] === a[0] >>> 0 && a[0] <= 255){var tag = a[0] | 0; return tag == 254 ? 0 : tag;} + else if(a instanceof String) + return 12520; + else if(typeof a == "string") + return 12520; + else if(a instanceof Number) + return 1000; + else if(a && a.caml_custom) + return 1255; + else if(a && a.compare) + return 1256; + else if(typeof a == "function") + return 1247; + else if(typeof a == "symbol") return 1251; + return 1001; + } + function caml_int_compare(a, b){ + if(a < b) return - 1; + if(a == b) return 0; + return 1; + } + function caml_string_compare(s1, s2){ + return s1 < s2 ? - 1 : s1 > s2 ? 1 : 0; + } + function caml_bytes_compare(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c ? - 1 : s1.c > s2.c ? 1 : 0; + } + function caml_compare_val(a, b, total){ + var stack = []; + for(;;){ + if(! (total && a === b)){ + var tag_a = caml_compare_val_tag(a); + if(tag_a == 250){a = a[1]; continue;} + var tag_b = caml_compare_val_tag(b); + if(tag_b == 250){b = b[1]; continue;} + if(tag_a !== tag_b){ + if(tag_a == 1000){ + if(tag_b == 1255) + return caml_compare_val_number_custom(a, b, - 1, total); + return - 1; + } + if(tag_b == 1000){ + if(tag_a == 1255) + return caml_compare_val_number_custom(b, a, 1, total); + return 1; + } + return tag_a < tag_b ? - 1 : 1; + } + switch(tag_a){ + case 247: + caml_invalid_argument("compare: functional value"); break; + case 248: + var x = caml_int_compare(a[2], b[2]); if(x != 0) return x | 0; break; + case 249: + caml_invalid_argument("compare: functional value"); break; + case 250: + caml_invalid_argument("equal: got Forward_tag, should not happen"); + break; + case 251: + caml_invalid_argument("equal: abstract value"); break; + case 252: + if(a !== b){ + var x = caml_bytes_compare(a, b); + if(x != 0) return x | 0; } - return [i,sign,base]} - function caml_parse_digit(c) - {if(c >= 48 && c <= 57)return c - 48; - if(c >= 65 && c <= 90)return c - 55; - if(c >= 97 && c <= 122)return c - 87; - return - 1} - function caml_int64_of_string(s) - {var - r=caml_parse_sign_and_base(s), - i=r[0], - sign=r[1], - base=r[2], - base64=caml_int64_of_int32(base), - threshold= - new MlInt64(0xffffff,0xfffffff,0xffff).udivmod(base64).quotient, - c=caml_string_unsafe_get(s,i), - d=caml_parse_digit(c); - if(d < 0 || d >= base)caml_failwith("int_of_string"); - var res=caml_int64_of_int32(d); - for(;;) - {i++; - c = caml_string_unsafe_get(s,i); - if(c == 95)continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base)break; - if(caml_int64_ult(threshold,res))caml_failwith("int_of_string"); - d = caml_int64_of_int32(d); - res = caml_int64_add(caml_int64_mul(base64,res),d); - if(caml_int64_ult(res,d))caml_failwith("int_of_string")} - if(i != caml_ml_string_length(s))caml_failwith("int_of_string"); - if(base == 10 && caml_int64_ult(new MlInt64(0,0,0x8000),res)) - caml_failwith("int_of_string"); - if(sign < 0)res = caml_int64_neg(res); - return res} - function caml_ba_set_1(ba,i0,v){ba.set(ba.offset(i0),v);return 0} - function caml_int64_xor(x,y){return x.xor(y)} - function caml_int64_or(x,y){return x.or(y)} - function caml_lxm_next(v) - {function shift_l(x,k){return caml_int64_shift_left(x,k)} - function shift_r(x,k){return caml_int64_shift_right_unsigned(x,k)} - function or(a,b){return caml_int64_or(a,b)} - function xor(a,b){return caml_int64_xor(a,b)} - function add(a,b){return caml_int64_add(a,b)} - function mul(a,b){return caml_int64_mul(a,b)} - function rotl(x,k){return or(shift_l(x,k),shift_r(x,64 - k))} - function get(a,i){return caml_ba_get_1(a,i)} - function set(a,i,x){return caml_ba_set_1(a,i,x)} - var - M=caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), - daba=caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), - z, - q0, - q1, - st=v, - a=get(st,0), - s=get(st,1), - x0=get(st,2), - x1=get(st,3); - z = add(s,x0); - z = mul(xor(z,shift_r(z,32)),daba); - z = mul(xor(z,shift_r(z,32)),daba); - z = xor(z,shift_r(z,32)); - set(st,1,add(mul(s,M),a)); - var q0=x0,q1=x1; - q1 = xor(q1,q0); - q0 = rotl(q0,24); - q0 = xor(xor(q0,q1),shift_l(q1,16)); - q1 = rotl(q1,37); - set(st,2,q0); - set(st,3,q1); - return z} - function caml_sys_const_big_endian(){return 0} - function caml_list_to_js_array(l) - {var a=[];for(;l !== 0;l = l[2])a.push(l[1]);return a} + break; + case 253: + caml_invalid_argument("equal: got Double_tag, should not happen"); + break; + case 254: + caml_invalid_argument + ("equal: got Double_array_tag, should not happen"); + break; + case 255: + caml_invalid_argument("equal: got Custom_tag, should not happen"); + break; + case 1247: + caml_invalid_argument("compare: functional value"); break; + case 1255: + var comp = caml_compare_val_get_custom(a); + if(comp != caml_compare_val_get_custom(b)) + return a.caml_custom < b.caml_custom ? - 1 : 1; + if(! comp) caml_invalid_argument("compare: abstract value"); + var x = comp(a, b, total); + if(x != x) return total ? - 1 : x; + if(x !== (x | 0)) return - 1; + if(x != 0) return x | 0; + break; + case 1256: + var x = a.compare(b, total); + if(x != x) return total ? - 1 : x; + if(x !== (x | 0)) return - 1; + if(x != 0) return x | 0; + break; + case 1000: + a = + a; + b = + b; + if(a < b) return - 1; + if(a > b) return 1; + if(a != b){ + if(! total) return NaN; + if(a == a) return 1; + if(b == b) return - 1; + } + break; + case 1001: + if(a < b) return - 1; + if(a > b) return 1; + if(a != b){ + if(! total) return NaN; + if(a == a) return 1; + if(b == b) return - 1; + } + break; + case 1251: + if(a !== b){if(! total) return NaN; return 1;} break; + case 1252: + var a = caml_jsbytes_of_string(a), b = caml_jsbytes_of_string(b); + if(a !== b){if(a < b) return - 1; if(a > b) return 1;} + break; + case 12520: + var a = a.toString(), b = b.toString(); + if(a !== b){if(a < b) return - 1; if(a > b) return 1;} + break; + case 246: + case 254: + default: + if(caml_is_continuation_tag(tag_a)){ + caml_invalid_argument("compare: continuation value"); + break; + } + if(a.length != b.length) return a.length < b.length ? - 1 : 1; + if(a.length > 1) stack.push(a, b, 1); + break; + } + } + if(stack.length == 0) return 0; + var i = stack.pop(); + b = stack.pop(); + a = stack.pop(); + if(i + 1 < a.length) stack.push(a, b, i + 1); + a = a[i]; + b = b[i]; + } + } + function caml_greaterthan(x, y){ + return + (caml_compare_val(x, y, false) > 0); + } + function div_helper(a, b, c){ var - caml_legacy_custom_code=false, - caml_output_val= - function() - {function Writer(){this.chunk = []} - Writer.prototype - = - {chunk_idx:20, - block_len:0, - obj_counter:0, - size_32:0, - size_64:0, - write: - function(size,value) - {for(var i=size - 8;i >= 0;i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF}, - write_at: - function(pos,size,value) - {var pos=pos; - for(var i=size - 8;i >= 0;i -= 8) - this.chunk[pos++] = value >> i & 0xFF}, - write_code: - function(size,code,value) - {this.chunk[this.chunk_idx++] = code; - for(var i=size - 8;i >= 0;i -= 8) - this.chunk[this.chunk_idx++] = value >> i & 0xFF}, - write_shared: - function(offset) - {if(offset < 1 << 8) - this.write_code(8,0x04,offset); - else - if(offset < 1 << 16) - this.write_code(16,0x05,offset); - else - this.write_code(32,0x06,offset)}, - pos:function(){return this.chunk_idx}, - finalize: - function() - {this.block_len = this.chunk_idx - 20; - this.chunk_idx = 0; - this.write(32,0x8495A6BE); - this.write(32,this.block_len); - this.write(32,this.obj_counter); - this.write(32,this.size_32); - this.write(32,this.size_64); - return this.chunk}}; - return function(v,flags) - {flags = caml_list_to_js_array(flags); - var - no_sharing=flags.indexOf(0) !== - 1, - closures=flags.indexOf(1) !== - 1; - if(closures) - console.warn - ("in caml_output_val: flag Marshal.Closures is not supported."); - var - writer=new Writer(), - stack=[], - intern_obj_table=no_sharing?null:new MlObjectTable(); - function memo(v) - {if(no_sharing)return false; - var existing_offset=intern_obj_table.recall(v); - if(existing_offset) - {writer.write_shared(existing_offset);return true} - else - {intern_obj_table.store(v);return false}} - function extern_rec(v) - {if(v.caml_custom) - {if(memo(v))return; - var - name=v.caml_custom, - ops=caml_custom_ops[name], - sz_32_64=[0,0]; - if(! ops.serialize) - caml_invalid_argument("output_value: abstract value (Custom)"); - if(caml_legacy_custom_code) - {writer.write(8,0x12); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - ops.serialize(writer,v,sz_32_64)} - else - if(ops.fixed_length == undefined) - {writer.write(8,0x18); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - var header_pos=writer.pos(); - for(var i=0;i < 12;i++)writer.write(8,0); - ops.serialize(writer,v,sz_32_64); - writer.write_at(header_pos,32,sz_32_64[0]); - writer.write_at(header_pos + 4,32,0); - writer.write_at(header_pos + 8,32,sz_32_64[1])} - else - {writer.write(8,0x19); - for(var i=0;i < name.length;i++) - writer.write(8,name.charCodeAt(i)); - writer.write(8,0); - var old_pos=writer.pos(); - ops.serialize(writer,v,sz_32_64); - if(ops.fixed_length != writer.pos() - old_pos) - caml_failwith - ("output_value: incorrect fixed sizes specified by " + name)} - writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); - writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3)} - else - if(v instanceof Array && v[0] === (v[0] | 0)) - {if(v[0] == 251) - caml_failwith("output_value: abstract value (Abstract)"); - if(caml_is_continuation_tag(v[0])) - caml_invalid_argument("output_value: continuation value"); - if(v.length > 1 && memo(v))return; - if(v[0] < 16 && v.length - 1 < 8) - writer.write(8,0x80 + v[0] + (v.length - 1 << 4)); - else - writer.write_code(32,0x08,v.length - 1 << 10 | v[0]); - writer.size_32 += v.length; - writer.size_64 += v.length; - if(v.length > 1)stack.push(v,1)} - else - if(caml_is_ml_bytes(v)) - {if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) - caml_failwith - ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); - if(memo(v))return; - var len=caml_ml_bytes_length(v); - if(len < 0x20) - writer.write(8,0x20 + len); - else - if(len < 0x100) - writer.write_code(8,0x09,len); - else - writer.write_code(32,0x0A,len); - for(var i=0;i < len;i++) - writer.write(8,caml_bytes_unsafe_get(v,i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0)} - else - if(caml_is_ml_string(v)) - {var len=caml_ml_string_length(v); - if(len < 0x20) - writer.write(8,0x20 + len); - else - if(len < 0x100) - writer.write_code(8,0x09,len); - else - writer.write_code(32,0x0A,len); - for(var i=0;i < len;i++) - writer.write(8,caml_string_unsafe_get(v,i)); - writer.size_32 += 1 + ((len + 4) / 4 | 0); - writer.size_64 += 1 + ((len + 8) / 8 | 0)} - else - if(v != (v | 0)) - {var type_of_v=typeof v; - caml_failwith - ("output_value: abstract value (" + type_of_v + ")")} - else - if(v >= 0 && v < 0x40) - writer.write(8,0X40 + v); - else - if(v >= - (1 << 7) && v < 1 << 7) - writer.write_code(8,0x00,v); - else - if(v >= - (1 << 15) && v < 1 << 15) - writer.write_code(16,0x01,v); - else - writer.write_code(32,0x02,v)} - extern_rec(v); - while(stack.length > 0) - {var i=stack.pop(),v=stack.pop(); - if(i + 1 < v.length)stack.push(v,i + 1); - extern_rec(v[i])} - if(intern_obj_table) - writer.obj_counter = intern_obj_table.objs.length; - writer.finalize(); - return writer.chunk}} + x = a * 65536 + (b >>> 16), + y = Math.floor(x / c) * 65536, + z = x % c * 65536, + w = z + (b & 0x0000FFFF); + return [y + Math.floor(w / c), w % c]; + } + function div_digit_nat(natq, ofsq, natr, ofsr, nat1, ofs1, len, nat2, ofs2){ + var rem = nat1.data[ofs1 + len - 1] >>> 0; + for(var i = len - 2; i >= 0; i--){ + var + x = div_helper(rem, nat1.data[ofs1 + i] >>> 0, nat2.data[ofs2] >>> 0); + natq.data[ofsq + i] = x[0]; + rem = x[1]; + } + natr.data[ofsr] = rem; + return 0; + } + function num_leading_zero_bits_in_digit(nat, ofs){ + var a = nat.data[ofs], b = 0; + if(a & 0xFFFF0000){b += 16; a >>>= 16;} + if(a & 0xFF00){b += 8; a >>>= 8;} + if(a & 0xF0){b += 4; a >>>= 4;} + if(a & 12){b += 2; a >>>= 2;} + if(a & 2){b += 1; a >>>= 1;} + if(a & 1) b += 1; + return 32 - b; + } + function shift_left_nat(nat1, ofs1, len1, nat2, ofs2, nbits){ + if(nbits == 0){nat2.data[ofs2] = 0; return 0;} + var wrap = 0; + for(var i = 0; i < len1; i++){ + var a = nat1.data[ofs1 + i] >>> 0; + nat1.data[ofs1 + i] = a << nbits | wrap; + wrap = a >>> 32 - nbits; + } + nat2.data[ofs2] = wrap; + return 0; + } + function MlNat(x){ + this.data = new Int32Array(x); + this.length = this.data.length + 2; + } + MlNat.prototype.caml_custom = "_nat"; + function create_nat(size){ + var arr = new MlNat(size); + for(var i = 0; i < size; i++) arr.data[i] = - 1; + return arr; + } + function set_to_zero_nat(nat, ofs, len){ + for(var i = 0; i < len; i++) nat.data[ofs + i] = 0; + return 0; + } + function incr_nat(nat, ofs, len, carry_in){ + var carry = carry_in; + for(var i = 0; i < len; i++){ + var x = (nat.data[ofs + i] >>> 0) + carry; + nat.data[ofs + i] = x | 0; + if(x == x >>> 0){carry = 0; break;} else carry = 1; + } + return carry; + } + function add_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ + var carry = carry_in; + for(var i = 0; i < len2; i++){ + var + x = (nat1.data[ofs1 + i] >>> 0) + (nat2.data[ofs2 + i] >>> 0) + carry; + nat1.data[ofs1 + i] = x; + if(x == x >>> 0) carry = 0; else carry = 1; + } + return incr_nat(nat1, ofs1 + len2, len1 - len2, carry); + } + function nat_of_array(l){return new MlNat(l);} + function mult_digit_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3){ + var carry = 0, a = nat3.data[ofs3] >>> 0; + for(var i = 0; i < len2; i++){ + var + x1 = + (nat1.data[ofs1 + i] >>> 0) + + (nat2.data[ofs2 + i] >>> 0) * (a & 0x0000FFFF) + + carry, + x2 = (nat2.data[ofs2 + i] >>> 0) * (a >>> 16); + carry = Math.floor(x2 / 65536); + var x3 = x1 + x2 % 65536 * 65536; + nat1.data[ofs1 + i] = x3; + carry += Math.floor(x3 / 4294967296); + } + return len2 < len1 && carry + ? add_nat + (nat1, ofs1 + len2, len1 - len2, nat_of_array([carry]), 0, 1, 0) + : carry; + } + function decr_nat(nat, ofs, len, carry_in){ + var borrow = carry_in == 1 ? 0 : 1; + for(var i = 0; i < len; i++){ + var x = (nat.data[ofs + i] >>> 0) - borrow; + nat.data[ofs + i] = x; + if(x >= 0){borrow = 0; break;} else borrow = 1; + } + return borrow == 1 ? 0 : 1; + } + function sub_nat(nat1, ofs1, len1, nat2, ofs2, len2, carry_in){ + var borrow = carry_in == 1 ? 0 : 1; + for(var i = 0; i < len2; i++){ + var + x = (nat1.data[ofs1 + i] >>> 0) - (nat2.data[ofs2 + i] >>> 0) - borrow; + nat1.data[ofs1 + i] = x; + if(x >= 0) borrow = 0; else borrow = 1; + } + return decr_nat(nat1, ofs1 + len2, len1 - len2, borrow == 1 ? 0 : 1); + } + function compare_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + var + a = num_digits_nat(nat1, ofs1, len1), + b = num_digits_nat(nat2, ofs2, len2); + if(a > b) return 1; + if(a < b) return - 1; + for(var i = len1 - 1; i >= 0; i--){ + if(nat1.data[ofs1 + i] >>> 0 > nat2.data[ofs2 + i] >>> 0) return 1; + if(nat1.data[ofs1 + i] >>> 0 < nat2.data[ofs2 + i] >>> 0) return - 1; + } + return 0; + } + function div_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + if(len2 == 1){ + div_digit_nat(nat1, ofs1 + 1, nat1, ofs1, nat1, ofs1, len1, nat2, ofs2); + return 0; + } + var s = num_leading_zero_bits_in_digit(nat2, ofs2 + len2 - 1); + shift_left_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); + shift_left_nat(nat1, ofs1, len1, nat_of_array([0]), 0, s); + var d = (nat2.data[ofs2 + len2 - 1] >>> 0) + 1, a = create_nat(len2 + 1); + for(var i = len1 - 1; i >= len2; i--){ + var + quo = + d == 4294967296 + ? nat1.data[ofs1 + i] >>> 0 + : div_helper + (nat1.data[ofs1 + i] >>> 0, nat1.data[ofs1 + i - 1] >>> 0, d) + [0]; + set_to_zero_nat(a, 0, len2 + 1); + mult_digit_nat(a, 0, len2 + 1, nat2, ofs2, len2, nat_of_array([quo]), 0); + sub_nat(nat1, ofs1 + i - len2, len2 + 1, a, 0, len2 + 1, 1); + while + (nat1.data[ofs1 + i] != 0 + || compare_nat(nat1, ofs1 + i - len2, len2, nat2, ofs2, len2) >= 0){ + quo = quo + 1; + sub_nat(nat1, ofs1 + i - len2, len2 + 1, nat2, ofs2, len2, 1); + } + nat1.data[ofs1 + i] = quo; + } + shift_right_nat(nat1, ofs1, len2, nat_of_array([0]), 0, s); + shift_right_nat(nat2, ofs2, len2, nat_of_array([0]), 0, s); + return 0; + } + function caml_ba_blit(src, dst){ + if(dst.dims.length != src.dims.length) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + for(var i = 0; i < dst.dims.length; i++) + if(dst.dims[i] != src.dims[i]) + caml_invalid_argument("Bigarray.blit: dimension mismatch"); + dst.data.set(src.data); + return 0; + } + function is_digit_int(nat, ofs){if(nat.data[ofs] >= 0) return 1; return 0;} + function caml_int64_div(x, y){return x.div(y);} + function caml_js_html_entities(s){ + var entity = /^&#?[0-9a-zA-Z]+;$/; + if(s.match(entity)){ + var str, temp = document.createElement("p"); + temp.innerHTML = s; + str = temp.textContent || temp.innerText; + temp = null; + return str; + } + else + caml_failwith("Invalid entity " + s); + } + function caml_string_unsafe_set(s, i, c){ + caml_failwith("caml_string_unsafe_set"); + } + function caml_int64_of_float(x){ + if(x < 0) x = Math.ceil(x); + return new + MlInt64 + (x & 0xffffff, + Math.floor(x * caml_int64_offset) & 0xffffff, + Math.floor(x * caml_int64_offset * caml_int64_offset) & 0xffff); + } + function caml_ml_channel_size_64(chanid){ + var chan = caml_ml_channels[chanid]; + return caml_int64_of_float(chan.file.length()); + } + function caml_ba_set_2(ba, i0, i1, v){ + ba.set(ba.offset([i0, i1]), v); + return 0; + } + function ml_z_kronecker(n, k){ + caml_failwith("ml_z_kronecker is not implemented"); + } + function ml_z_of_int64(i64){ + var neg = false; + if(caml_int64_compare(i64, caml_int64_create_lo_hi(0, 0)) < 0){neg = true; i64 = caml_int64_neg(i64);} + var + lo = caml_int64_lo32(i64) >>> 0, + hi = caml_int64_hi32(i64) >>> 0, + x = bigInt(lo).add(bigInt(hi).shiftLeft(32)); + if(neg) x = x.negate(); + return ml_z_normalize(x); + } + var + caml_argv = + function(){ + var process = globalThis.process, main = "a.out", args = []; + if(process && process.argv && process.argv.length > 1){ + var argv = process.argv; + main = argv[1]; + args = argv.slice(2); + } + var p = caml_string_of_jsstring(main), args2 = [0, p]; + for(var i = 0; i < args.length; i++) + args2.push(caml_string_of_jsstring(args[i])); + return args2; + } + (), + caml_executable_name = caml_argv[1]; + function caml_js_eval_string(s){return eval(caml_jsstring_of_string(s));} + function serialize_nat(writer, nat, sz){ + var len = nat.data.length; + writer.write(32, len); + for(var i = 0; i < len; i++) writer.write(32, nat.data[i]); + sz[0] = len * 4; + sz[1] = len * 8; + } + function caml_memprof_set(_control){return 0;} + function ml_z_neg(z1){return ml_z_normalize(bigInt(z1).negate());} + function caml_sys_exit(code){ + if(globalThis.quit) globalThis.quit(code); + if(globalThis.process && globalThis.process.exit) + globalThis.process.exit(code); + caml_invalid_argument("Function 'exit' not implemented"); + } + function caml_channel_descriptor(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.fd; + } + function caml_js_from_array(a){return a.slice(1);} + function caml_ba_reshape(ba, vind){ + vind = caml_js_from_array(vind); + var new_dim = [], num_dims = vind.length; + if(num_dims < 0 || num_dims > 16) + caml_invalid_argument("Bigarray.reshape: bad number of dimensions"); + var num_elts = 1; + for(var i = 0; i < num_dims; i++){ + new_dim[i] = vind[i]; + if(new_dim[i] < 0) + caml_invalid_argument("Bigarray.reshape: negative dimension"); + num_elts = num_elts * new_dim[i]; + } + var size = caml_ba_get_size(ba.dims); + if(num_elts != size) + caml_invalid_argument("Bigarray.reshape: size mismatch"); + return caml_ba_create_unsafe(ba.kind, ba.layout, new_dim, ba.data); + } + var caml_oo_last_id = 0; + function caml_set_oo_id(b){b[2] = caml_oo_last_id++; return b;} + function caml_gr_fill_rect(x, y, w, h){ + var s = caml_gr_state_get(); + s.context.fillRect(x, s.height - y, w, - h); + return 0; + } + function caml_bigstring_blit_string_to_ba(str1, pos1, ba2, pos2, len){ + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs2 = ba2.offset(pos2); + if(pos1 + len > caml_ml_string_length(str1)) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = caml_uint8_array_of_string(str1).slice(pos1, pos1 + len); + ba2.data.set(slice, ofs2); + return 0; + } + function caml_gr_set_window_title(name){ + var s = caml_gr_state_get(); + s.title = name; + var jsname = caml_jsstring_of_string(name); + if(s.set_title) s.set_title(jsname); + return 0; + } + function caml_get_global_data(){return caml_global_data;} + function caml_int64_shift_right_unsigned(x, s){return x.shift_right_unsigned(s); + } + function caml_ba_uint8_get16(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 1 >= ba.data.length) caml_array_bound_error(); + var b1 = ba.get(ofs), b2 = ba.get(ofs + 1); + return b1 | b2 << 8; + } + function ml_z_of_int32(i){return i | 0;} + function caml_compare(a, b){return caml_compare_val(a, b, true);} + var + caml_MD5Transform = + function(){ + function add(x, y){return x + y | 0;} + function xx(q, a, b, x, s, t){ + a = add(add(a, q), add(x, t)); + return add(a << s | a >>> 32 - s, b); + } + function ff(a, b, c, d, x, s, t){ + return xx(b & c | ~ b & d, a, b, x, s, t); + } + function gg(a, b, c, d, x, s, t){ + return xx(b & d | c & ~ d, a, b, x, s, t); + } + function hh(a, b, c, d, x, s, t){return xx(b ^ c ^ d, a, b, x, s, t);} + function ii(a, b, c, d, x, s, t){ + return xx(c ^ (b | ~ d), a, b, x, s, t); + } + return function(w, buffer){ + var a = w[0], b = w[1], c = w[2], d = w[3]; + a = ff(a, b, c, d, buffer[0], 7, 0xD76AA478); + d = ff(d, a, b, c, buffer[1], 12, 0xE8C7B756); + c = ff(c, d, a, b, buffer[2], 17, 0x242070DB); + b = ff(b, c, d, a, buffer[3], 22, 0xC1BDCEEE); + a = ff(a, b, c, d, buffer[4], 7, 0xF57C0FAF); + d = ff(d, a, b, c, buffer[5], 12, 0x4787C62A); + c = ff(c, d, a, b, buffer[6], 17, 0xA8304613); + b = ff(b, c, d, a, buffer[7], 22, 0xFD469501); + a = ff(a, b, c, d, buffer[8], 7, 0x698098D8); + d = ff(d, a, b, c, buffer[9], 12, 0x8B44F7AF); + c = ff(c, d, a, b, buffer[10], 17, 0xFFFF5BB1); + b = ff(b, c, d, a, buffer[11], 22, 0x895CD7BE); + a = ff(a, b, c, d, buffer[12], 7, 0x6B901122); + d = ff(d, a, b, c, buffer[13], 12, 0xFD987193); + c = ff(c, d, a, b, buffer[14], 17, 0xA679438E); + b = ff(b, c, d, a, buffer[15], 22, 0x49B40821); + a = gg(a, b, c, d, buffer[1], 5, 0xF61E2562); + d = gg(d, a, b, c, buffer[6], 9, 0xC040B340); + c = gg(c, d, a, b, buffer[11], 14, 0x265E5A51); + b = gg(b, c, d, a, buffer[0], 20, 0xE9B6C7AA); + a = gg(a, b, c, d, buffer[5], 5, 0xD62F105D); + d = gg(d, a, b, c, buffer[10], 9, 0x02441453); + c = gg(c, d, a, b, buffer[15], 14, 0xD8A1E681); + b = gg(b, c, d, a, buffer[4], 20, 0xE7D3FBC8); + a = gg(a, b, c, d, buffer[9], 5, 0x21E1CDE6); + d = gg(d, a, b, c, buffer[14], 9, 0xC33707D6); + c = gg(c, d, a, b, buffer[3], 14, 0xF4D50D87); + b = gg(b, c, d, a, buffer[8], 20, 0x455A14ED); + a = gg(a, b, c, d, buffer[13], 5, 0xA9E3E905); + d = gg(d, a, b, c, buffer[2], 9, 0xFCEFA3F8); + c = gg(c, d, a, b, buffer[7], 14, 0x676F02D9); + b = gg(b, c, d, a, buffer[12], 20, 0x8D2A4C8A); + a = hh(a, b, c, d, buffer[5], 4, 0xFFFA3942); + d = hh(d, a, b, c, buffer[8], 11, 0x8771F681); + c = hh(c, d, a, b, buffer[11], 16, 0x6D9D6122); + b = hh(b, c, d, a, buffer[14], 23, 0xFDE5380C); + a = hh(a, b, c, d, buffer[1], 4, 0xA4BEEA44); + d = hh(d, a, b, c, buffer[4], 11, 0x4BDECFA9); + c = hh(c, d, a, b, buffer[7], 16, 0xF6BB4B60); + b = hh(b, c, d, a, buffer[10], 23, 0xBEBFBC70); + a = hh(a, b, c, d, buffer[13], 4, 0x289B7EC6); + d = hh(d, a, b, c, buffer[0], 11, 0xEAA127FA); + c = hh(c, d, a, b, buffer[3], 16, 0xD4EF3085); + b = hh(b, c, d, a, buffer[6], 23, 0x04881D05); + a = hh(a, b, c, d, buffer[9], 4, 0xD9D4D039); + d = hh(d, a, b, c, buffer[12], 11, 0xE6DB99E5); + c = hh(c, d, a, b, buffer[15], 16, 0x1FA27CF8); + b = hh(b, c, d, a, buffer[2], 23, 0xC4AC5665); + a = ii(a, b, c, d, buffer[0], 6, 0xF4292244); + d = ii(d, a, b, c, buffer[7], 10, 0x432AFF97); + c = ii(c, d, a, b, buffer[14], 15, 0xAB9423A7); + b = ii(b, c, d, a, buffer[5], 21, 0xFC93A039); + a = ii(a, b, c, d, buffer[12], 6, 0x655B59C3); + d = ii(d, a, b, c, buffer[3], 10, 0x8F0CCC92); + c = ii(c, d, a, b, buffer[10], 15, 0xFFEFF47D); + b = ii(b, c, d, a, buffer[1], 21, 0x85845DD1); + a = ii(a, b, c, d, buffer[8], 6, 0x6FA87E4F); + d = ii(d, a, b, c, buffer[15], 10, 0xFE2CE6E0); + c = ii(c, d, a, b, buffer[6], 15, 0xA3014314); + b = ii(b, c, d, a, buffer[13], 21, 0x4E0811A1); + a = ii(a, b, c, d, buffer[4], 6, 0xF7537E82); + d = ii(d, a, b, c, buffer[11], 10, 0xBD3AF235); + c = ii(c, d, a, b, buffer[2], 15, 0x2AD7D2BB); + b = ii(b, c, d, a, buffer[9], 21, 0xEB86D391); + w[0] = add(a, w[0]); + w[1] = add(b, w[1]); + w[2] = add(c, w[2]); + w[3] = add(d, w[3]);}; + } (); - function caml_string_of_array(a) - {return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a,0,a.length))} - function caml_output_value_to_string(v,flags) - {return caml_string_of_array(caml_output_val(v,flags))} - function caml_raise_not_a_dir(name) - {caml_raise_sys_error(name + ": Not a directory")} - function caml_sys_system_command(cmd) - {var cmd=caml_jsstring_of_string(cmd); - if(typeof require != "undefined") - {var child_process=require("child_process"); - if(child_process && child_process.execSync) - try - {child_process.execSync(cmd,{stdio:"inherit"});return 0} - catch(e){return 1}} - else - return 127} - function caml_js_error_of_exception(exn) - {if(exn.js_error)return exn.js_error;return null} - function caml_unix_getuid(unit) - {if(globalThis.process && globalThis.process.getuid) - return globalThis.process.getuid(); - caml_raise_not_found()} - function deserialize_nat(reader,sz) - {var len=reader.read32s(),nat=new MlNat(len); - for(var i=0;i < len;i++)nat.data[i] = reader.read32s(); - sz[0] = len * 4; - return nat} - function initialize_nat() - {caml_custom_ops["_nat"] - = - {deserialize:deserialize_nat,serialize:serialize_nat,hash:caml_hash_nat}} - function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next())} - function caml_gr_open_subwindow(a,b,c,d) - {caml_failwith("caml_gr_open_subwindow not Implemented")} - function caml_marshal_data_size(s,ofs) - {function get32(s,i) - {return caml_bytes_unsafe_get(s,i) - << - 24 - | - caml_bytes_unsafe_get(s,i + 1) - << - 16 - | - caml_bytes_unsafe_get(s,i + 2) - << - 8 - | - caml_bytes_unsafe_get(s,i + 3)} - if(get32(s,ofs) != (0x8495A6BE | 0)) - caml_failwith("Marshal.data_size: bad object"); - return get32(s,ofs + 4)} - function MlStringReader(s,i) - {this.s = caml_jsbytes_of_string(s);this.i = i} - MlStringReader.prototype - = - {read8u:function(){return this.s.charCodeAt(this.i++)}, - read8s:function(){return this.s.charCodeAt(this.i++) << 24 >> 24}, - read16u: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1)}, - read16s: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1)}, - read32u: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return (s.charCodeAt(i) - << - 24 - | - s.charCodeAt(i + 1) - << - 16 - | - s.charCodeAt(i + 2) - << - 8 - | - s.charCodeAt(i + 3)) - >>> - 0}, - read32s: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return s.charCodeAt(i) - << - 24 - | - s.charCodeAt(i + 1) - << - 16 - | - s.charCodeAt(i + 2) - << - 8 - | - s.charCodeAt(i + 3)}, - readstr: - function(len) - {var i=this.i; - this.i = i + len; - return caml_string_of_jsbytes(this.s.substring(i,i + len))}}; - function caml_float_of_bytes(a) - {return caml_int64_float_of_bits(caml_int64_of_bytes(a))} - function caml_input_value_from_reader(reader,ofs) - {var - _magic=reader.read32u(), - _block_len=reader.read32u(), - num_objects=reader.read32u(), - _size_32=reader.read32u(), - _size_64=reader.read32u(), - stack=[], - intern_obj_table=num_objects > 0?[]:null, - obj_counter=0; - function intern_rec() - {var code=reader.read8u(); - if(code >= 0x40) - if(code >= 0x80) - {var tag=code & 0xF,size=code >> 4 & 0x7,v=[tag]; - if(size == 0)return v; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - stack.push(v,size); - return v} - else - return code & 0x3F; - else - if(code >= 0x20) - {var len=code & 0x1F,v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v} - else - switch(code) - {case 0x00:return reader.read8s(); - case 0x01:return reader.read16s(); - case 0x02:return reader.read32s(); - case 0x03:caml_failwith("input_value: integer too large");break; - case 0x04: - var offset=reader.read8u(); - return intern_obj_table[obj_counter - offset]; - case 0x05: - var offset=reader.read16u(); - return intern_obj_table[obj_counter - offset]; - case 0x06: - var offset=reader.read32u(); - return intern_obj_table[obj_counter - offset]; - case 0x08: - var - header=reader.read32u(), - tag=header & 0xFF, - size=header >> 10, - v=[tag]; - if(size == 0)return v; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - stack.push(v,size); - return v; - case 0x13: - caml_failwith("input_value: data block too large");break; - case 0x09: - var len=reader.read8u(),v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0A: - var len=reader.read32u(),v=reader.readstr(len); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0C: - var t=new Array(8); - for(var i=0;i < 8;i++)t[7 - i] = reader.read8u(); - var v=caml_float_of_bytes(t); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0B: - var t=new Array(8); - for(var i=0;i < 8;i++)t[i] = reader.read8u(); - var v=caml_float_of_bytes(t); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - case 0x0E: - var len=reader.read8u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x0D: - var len=reader.read8u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x07: - var len=reader.read32u(),v=new Array(len + 1); - v[0] = 254; - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - var t=new Array(8); - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[7 - j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x0F: - var len=reader.read32u(),v=new Array(len + 1); - v[0] = 254; - var t=new Array(8); - for(var i=1;i <= len;i++) - {for(var j=0;j < 8;j++)t[j] = reader.read8u(); - v[i] = caml_float_of_bytes(t)} - return v; - case 0x10: - case 0x11:caml_failwith("input_value: code pointer");break; - case 0x12: - case 0x18: - case 0x19: - var c,s=""; - while((c = reader.read8u()) != 0)s += String.fromCharCode(c); - var ops=caml_custom_ops[s],expected_size; - if(! ops) - caml_failwith("input_value: unknown custom block identifier"); - switch(code) - {case 0x12:break; - case 0x19: - if(! ops.fixed_length) - caml_failwith - ("input_value: expected a fixed-size custom block"); - expected_size = ops.fixed_length; - break; - case 0x18: - expected_size = reader.read32u(); - reader.read32s(); - reader.read32s(); - break - } - var old_pos=reader.i,size=[0],v=ops.deserialize(reader,size); - if(expected_size != undefined) - if(expected_size != size[0]) - caml_failwith - ("input_value: incorrect length of serialized custom block"); - if(intern_obj_table)intern_obj_table[obj_counter++] = v; - return v; - default:caml_failwith("input_value: ill-formed message")}} - var res=intern_rec(); - while(stack.length > 0) - {var size=stack.pop(),v=stack.pop(),d=v.length; - if(d < size)stack.push(v,size); - v[d] = intern_rec()} - if(typeof ofs != "number")ofs[0] = reader.i; - return res} - function caml_string_of_bytes(s){return s} - function caml_input_value_from_bytes(s,ofs) - {var - reader= - new - MlStringReader - (caml_string_of_bytes(s),typeof ofs == "number"?ofs:ofs[0]); - return caml_input_value_from_reader(reader,ofs)} - function caml_input_value(chanid) - {var chan=caml_ml_channels[chanid],header=new Uint8Array(20); - function block(buffer,offset,n) - {var r=0; - while(r < n) - {if(chan.buffer_curr >= chan.buffer_max) - {chan.buffer_curr = 0;chan.buffer_max = 0;caml_refill(chan)} - if(chan.buffer_curr >= chan.buffer_max)break; - buffer[offset + r] = chan.buffer[chan.buffer_curr]; - chan.buffer_curr++; - r++} - return r} - var r=block(header,0,20); - if(r == 0) - caml_raise_end_of_file(); - else - if(r < 20)caml_failwith("input_value: truncated object"); - var - len=caml_marshal_data_size(caml_bytes_of_array(header),0), - buf=new Uint8Array(len + 20); - buf.set(header,0); - var r=block(buf,20,len); - if(r < len) - caml_failwith("input_value: truncated object " + r + " " + len); - var - offset=[0], - res=caml_input_value_from_bytes(caml_bytes_of_array(buf),offset); - chan.offset = chan.offset + offset[0]; - return res} - function caml_input_value_to_outside_heap(c){return caml_input_value(c)} - function caml_atomic_cas(ref,o,n) - {if(ref[1] === o){ref[1] = n;return 1}return 0} - function caml_copysign_float(x,y) - {if(y == 0)y = 1 / y;x = Math.abs(x);return y < 0?- x:x} - function caml_gr_set_text_size(size) - {var s=caml_gr_state_get(); - s.text_size = size; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0} - function caml_atomic_load(ref){return ref[1]} - function caml_MD5Final(ctx) - {var in_buf=ctx.len & 0x3f; - ctx.b8[in_buf] = 0x80; - in_buf++; - if(in_buf > 56) - {for(var j=in_buf;j < 64;j++)ctx.b8[j] = 0; - caml_MD5Transform(ctx.w,ctx.b32); - for(var j=0;j < 56;j++)ctx.b8[j] = 0} - else - for(var j=in_buf;j < 56;j++)ctx.b8[j] = 0; - ctx.b32[14] = ctx.len << 3; - ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; - caml_MD5Transform(ctx.w,ctx.b32); - var t=new Uint8Array(16); - for(var i=0;i < 4;i++) - for(var j=0;j < 4;j++)t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; - return t} - function caml_md5_bytes(s,ofs,len) - {var ctx=caml_MD5Init(),a=caml_uint8_array_of_bytes(s); - caml_MD5Update(ctx,a.subarray(ofs,ofs + len),len); - return caml_string_of_array(caml_MD5Final(ctx))} - function caml_ba_set_generic(ba,i,v) - {ba.set(ba.offset(caml_js_from_array(i)),v);return 0} - function caml_ml_condition_wait(t,mutext){return 0} - function caml_bytes_lessequal(s1,s2) - {s1.t & 6 && caml_convert_string_to_bytes(s1); - s2.t & 6 && caml_convert_string_to_bytes(s2); - return s1.c <= s2.c?1:0} - function caml_string_lessequal(s1,s2){return caml_bytes_lessequal(s1,s2)} - function caml_string_greaterequal(s1,s2) - {return caml_string_lessequal(s2,s1)} - function caml_nextafter_float(x,y) - {if(isNaN(x) || isNaN(y))return NaN; - if(x == y)return y; - if(x == 0)return y < 0?- Math.pow(2,- 1074):Math.pow(2,- 1074); - var bits=caml_int64_bits_of_float(x),one=caml_int64_of_int32(1); - if(x < y == x > 0) - bits = caml_int64_add(bits,one); - else - bits = caml_int64_sub(bits,one); - return caml_int64_float_of_bits(bits)} - function caml_gr_size_y(){var s=caml_gr_state_get();return s.height} - function ml_z_fac2(i) - {if(i <= 0)caml_invalid_argument("Z.fact2: negative arguments"); - return ml_z_facM(i,2)} - function caml_pos_in(chanid) - {var chan=caml_ml_channels[chanid]; - return chan.offset - (chan.buffer_max - chan.buffer_curr)} - function caml_ml_pos_in(chanid){return caml_pos_in(chanid)} - function caml_int64_and(x,y){return x.and(y)} - function caml_sys_const_word_size(){return 32} - function ml_z_bin(n,k) - {var n=bigInt(n),k=bigInt(k),coeff=bigInt(1); - for(var x=n.minus(k).add(bigInt(1));x.leq(n);x = x.add(bigInt(1))) - coeff = coeff.multiply(x); - for(x = bigInt(1);x.leq(k);x = x.add(bigInt(1)))coeff = coeff.divide(x); - return ml_z_normalize(coeff)} - function caml_unix_unlink(name) - {var root=resolve_fs_device(name); - if(! root.device.unlink) - caml_failwith("caml_unix_unlink: not implemented"); - return root.device.unlink(root.rest,true)} - function caml_sys_open_for_node(fd,flags) - {if(flags.name) - try - {var fs=require("fs"),fd2=fs.openSync(flags.name,"rs"); - return new MlNodeFd(fd2,flags)} - catch(e){} - return new MlNodeFd(fd,flags)} - function MlFakeFd_out(fd,flags) - {MlFakeFile.call(this,caml_create_bytes(0)); - this.log = function(s){return 0}; - if(fd == 1 && typeof console.log == "function") - this.log = console.log; - else - if(fd == 2 && typeof console.error == "function") - this.log = console.error; - else - if(typeof console.log == "function")this.log = console.log; - this.flags = flags} - MlFakeFd_out.prototype.length = function(){return 0}; - MlFakeFd_out.prototype.write - = - function(offset,buf,pos,len) - {if(this.log) - {if - (len - > - 0 - && - pos - >= - 0 - && - pos - + - len - <= - buf.length - && - buf[pos + len - 1] - == - 10) - len--; - var src=caml_create_bytes(len); - caml_blit_bytes(caml_bytes_of_array(buf),pos,src,0,len); - this.log(src.toUtf16()); - return 0} - caml_raise_sys_error(this.fd + ": file descriptor already closed")}; - MlFakeFd_out.prototype.read - = - function(offset,buf,pos,len) - {caml_raise_sys_error(this.fd + ": file descriptor is write only")}; - MlFakeFd_out.prototype.close = function(){this.log = undefined}; - function caml_sys_open_internal(file,idx) - {if(idx == undefined)idx = caml_sys_fds.length; - caml_sys_fds[idx] = file; - return idx} - function caml_sys_open(name,flags,_perms) - {var f={}; - while(flags) - {switch(flags[1]) - {case 0:f.rdonly = 1;break; - case 1:f.wronly = 1;break; - case 2:f.append = 1;break; - case 3:f.create = 1;break; - case 4:f.truncate = 1;break; - case 5:f.excl = 1;break; - case 6:f.binary = 1;break; - case 7:f.text = 1;break; - case 8:f.nonblock = 1;break - } - flags = flags[2]} - if(f.rdonly && f.wronly) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + - " : flags Open_rdonly and Open_wronly are not compatible"); - if(f.text && f.binary) - caml_raise_sys_error - (caml_jsbytes_of_string(name) - + - " : flags Open_text and Open_binary are not compatible"); - var root=resolve_fs_device(name),file=root.device.open(root.rest,f); - return caml_sys_open_internal(file,undefined)} - (function() - {function file(fd,flags) - {return fs_node_supported() - ?caml_sys_open_for_node(fd,flags) - :new MlFakeFd_out(fd,flags)} - caml_sys_open_internal - (file(0,{rdonly:1,altname:"/dev/stdin",isCharacterDevice:true}),0); - caml_sys_open_internal - (file(1,{buffered:2,wronly:1,isCharacterDevice:true}),1); - caml_sys_open_internal - (file(2,{buffered:2,wronly:1,isCharacterDevice:true}),2)} - ()); - function ml_z_gcd(z1,z2) - {return ml_z_normalize(bigInt.gcd(bigInt(z1),bigInt(z2)).abs())} - function ml_z_mul(z1,z2) - {return ml_z_normalize(bigInt(z1).multiply(bigInt(z2)))} - function ml_z_hamdist(z1,z2) - {if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) - caml_raise_constant(caml_named_value("ml_z_overflow")); - if - ((z1 != (z1 | 0) || z2 != (z2 | 0)) - && - (bigInt(z1).isNegative() || bigInt(z2).isNegative())) - caml_invalid_argument("Z.hamdist: negative arguments"); - return ml_z_popcount(bigInt(z1).xor(bigInt(z2)))} - function caml_string_get(s,i) - {if(i >>> 0 >= caml_ml_string_length(s))caml_string_bound_error(); - return caml_string_unsafe_get(s,i)} + function caml_MD5Update(ctx, input, input_len){ + var in_buf = ctx.len & 0x3f, input_pos = 0; + ctx.len += input_len; + if(in_buf){ + var missing = 64 - in_buf; + if(input_len < missing){ + ctx.b8.set(input.subarray(0, input_len), in_buf); + return; + } + ctx.b8.set(input.subarray(0, missing), in_buf); + caml_MD5Transform(ctx.w, ctx.b32); + input_len -= missing; + input_pos += missing; + } + while(input_len >= 64){ + ctx.b8.set(input.subarray(input_pos, input_pos + 64), 0); + caml_MD5Transform(ctx.w, ctx.b32); + input_len -= 64; + input_pos += 64; + } + if(input_len) + ctx.b8.set(input.subarray(input_pos, input_pos + input_len), 0); + } + function caml_runtime_events_read_poll(cursor, callbacks, num){return 0;} + function caml_fresh_oo_id(){return caml_oo_last_id++;} + function caml_int64_to_float(x){return x.toFloat();} + function caml_ba_get_1(ba, i0){return ba.get(ba.offset(i0));} + function caml_bigstring_memcmp(s1, pos1, s2, pos2, len){ + for(var i = 0; i < len; i++){ + var a = caml_ba_get_1(s1, pos1 + i), b = caml_ba_get_1(s2, pos2 + i); + if(a < b) return - 1; + if(a > b) return 1; + } + return 0; + } + function caml_new_string(s){return caml_string_of_jsbytes(s);} + function caml_erf_float(x){ var - re_match= - function() - {var - re_word_letters= + a1 = 0.254829592, + a2 = - 0.284496736, + a3 = 1.421413741, + a4 = - 1.453152027, + a5 = 1.061405429, + p = 0.3275911, + sign = 1; + if(x < 0) sign = - 1; + x = Math.abs(x); + var + t = 1.0 / (1.0 + p * x), + y = + 1.0 + - + ((((a5 * t + a4) * t + a3) * t + a2) * t + a1) * t + * Math.exp(- (x * x)); + return sign * y; + } + function caml_ba_uint8_get32(ba, i0){ + var ofs = ba.offset(i0); + if(ofs + 3 >= ba.data.length) caml_array_bound_error(); + var + b1 = ba.get(ofs + 0), + b2 = ba.get(ofs + 1), + b3 = ba.get(ofs + 2), + b4 = ba.get(ofs + 3); + return b1 << 0 | b2 << 8 | b3 << 16 | b4 << 24; + } + function caml_raw_backtrace_length(){return 0;} + function ml_z_shift_right(z1, amt){ + return ml_z_normalize(bigInt(z1).shiftRight(amt)); + } + function caml_str_initialize(unit){return 0;} + function caml_obj_block(tag, size){ + var o = new Array(size + 1); + o[0] = tag; + for(var i = 1; i <= size; i++) o[i] = 0; + return o; + } + function caml_gr_clear_graph(){ + var s = caml_gr_state_get(); + s.canvas.width = s.width; + s.canvas.height = s.height; + return 0; + } + function bigstring_to_array_buffer(bs){return bs.data.buffer;} + function caml_sys_const_naked_pointers_checked(_unit){return 0;} + function lxor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] ^= nat2.data[ofs2]; return 0; + } + function caml_obj_add_offset(v, offset){ + caml_failwith("Obj.add_offset is not supported"); + } + function caml_final_release(){return 0;} + var caml_marshal_header_size = 20; + function caml_js_to_array(a){ + var len = a.length, b = new Array(len + 1); + b[0] = 0; + for(var i = 0; i < len; i++) b[i + 1] = a[i]; + return b; + } + function ml_z_logor(z1, z2){ + return ml_z_normalize(bigInt(z1).or(bigInt(z2))); + } + function caml_sys_is_regular_file(name){ + var root = resolve_fs_device(name); + return root.device.isFile(root.rest); + } + function caml_gr_plot(x, y){ + var + s = caml_gr_state_get(), + im = s.context.createImageData(1, 1), + d = im.data, + color = s.color; + d[0] = color >> 16 & 0xff; + d[1] = color >> 8 & 0xff, d[2] = color >> 0 & 0xff; + d[3] = 0xFF; + s.x = x; + s.y = y; + s.context.putImageData(im, x, s.height - y); + return 0; + } + function caml_bytes_set64(s, i, i64){ + if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); + var a = caml_int64_to_bytes(i64); + for(var j = 0; j < 8; j++) caml_bytes_unsafe_set(s, i + 7 - j, a[j]); + return 0; + } + function caml_string_set16(s, i, i16){caml_failwith("caml_string_set16");} + function caml_int64_bswap(x){ + var y = caml_int64_to_bytes(x); + return caml_int64_of_bytes + ([y[7], y[6], y[5], y[4], y[3], y[2], y[1], y[0]]); + } + function ml_z_fits_int(z1){return z1 == (z1 | 0) ? 1 : 0;} + function ml_z_fits_int32(z1){return ml_z_fits_int(z1);} + function caml_gc_major(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(); + return 0; + } + function ml_z_shift_left(z1, amt){ + return ml_z_normalize(bigInt(z1).shiftLeft(amt)); + } + function caml_lex_array(s){ + s = caml_jsbytes_of_string(s); + var l = s.length / 2, a = new Array(l); + for(var i = 0; i < l; i++) + a[i] = (s.charCodeAt(2 * i) | s.charCodeAt(2 * i + 1) << 8) << 16 >> 16; + return a; + } + function caml_lex_engine(tbl, start_state, lexbuf){ + var + lex_buffer = 2, + lex_buffer_len = 3, + lex_start_pos = 5, + lex_curr_pos = 6, + lex_last_pos = 7, + lex_last_action = 8, + lex_eof_reached = 9, + lex_base = 1, + lex_backtrk = 2, + lex_default = 3, + lex_trans = 4, + lex_check = 5; + if(! tbl.lex_default){ + tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default]); + } + var + c, + state = start_state, + buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1; + } + else + state = - state - 1; + for(;;){ + var base = tbl.lex_base[state]; + if(base < 0) return - base - 1; + var backtrk = tbl.lex_backtrk[state]; + if(backtrk >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk; + } + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; + else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0){ + lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]; + } + else if(c == 256) lexbuf[lex_eof_reached] = 0; + } + } + function caml_sys_file_exists(name){ + var root = resolve_fs_device(name); + return root.device.exists(root.rest); + } + function caml_convert_raw_backtrace_slot(){ + caml_failwith("caml_convert_raw_backtrace_slot"); + } + function caml_array_sub(a, i, len){ + var a2 = new Array(len + 1); + a2[0] = 0; + for(var i2 = 1, i1 = i + 1; i2 <= len; i2++, i1++) a2[i2] = a[i1]; + return a2; + } + function caml_bytes_equal(s1, s2){ + if(s1 === s2) return 1; + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c == s2.c ? 1 : 0; + } + function caml_gr_size_x(){var s = caml_gr_state_get(); return s.width;} + function caml_ml_debug_info_status(){return 0;} + function caml_atomic_fetch_add(ref, i){ + var old = ref[1]; + ref[1] += i; + return old; + } + var + os_type = + globalThis.process && globalThis.process.platform + && globalThis.process.platform == "win32" + ? "Cygwin" + : "Unix"; + function caml_sys_const_ostype_cygwin(){return os_type == "Cygwin" ? 1 : 0; + } + function caml_cosh_float(x){return Math.cosh(x);} + function MlMutex(){this.locked = false;} + function caml_ml_mutex_new(unit){return new MlMutex();} + var caml_ephe_key_offset = 3; + function caml_ephe_check_key(x, i){ + var weak = x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined ? 0 : 1; + } + function caml_hash_mix_final(h){ + h ^= h >>> 16; + h = caml_mul(h, 0x85ebca6b | 0); + h ^= h >>> 13; + h = caml_mul(h, 0xc2b2ae35 | 0); + h ^= h >>> 16; + return h; + } + function caml_gr_text_size(txt){ + var + s = caml_gr_state_get(), + w = s.context.measureText(caml_jsstring_of_string(txt)).width; + return [0, w, s.text_size]; + } + function caml_lex_run_mem(s, i, mem, curr_pos){ + for(;;){ + var dst = s.charCodeAt(i); + i++; + if(dst == 0xff) return; + var src = s.charCodeAt(i); + i++; + if(src == 0xff) + mem[dst + 1] = curr_pos; + else + mem[dst + 1] = mem[src + 1]; + } + } + function caml_lex_run_tag(s, i, mem){ + for(;;){ + var dst = s.charCodeAt(i); + i++; + if(dst == 0xff) return; + var src = s.charCodeAt(i); + i++; + if(src == 0xff) mem[dst + 1] = - 1; else mem[dst + 1] = mem[src + 1]; + } + } + function caml_new_lex_engine(tbl, start_state, lexbuf){ + var + lex_buffer = 2, + lex_buffer_len = 3, + lex_start_pos = 5, + lex_curr_pos = 6, + lex_last_pos = 7, + lex_last_action = 8, + lex_eof_reached = 9, + lex_mem = 10, + lex_base = 1, + lex_backtrk = 2, + lex_default = 3, + lex_trans = 4, + lex_check = 5, + lex_base_code = 6, + lex_backtrk_code = 7, + lex_default_code = 8, + lex_trans_code = 9, + lex_check_code = 10, + lex_code = 11; + if(! tbl.lex_default){ + tbl.lex_base = caml_lex_array(tbl[lex_base]); + tbl.lex_backtrk = caml_lex_array(tbl[lex_backtrk]); + tbl.lex_check = caml_lex_array(tbl[lex_check]); + tbl.lex_trans = caml_lex_array(tbl[lex_trans]); + tbl.lex_default = caml_lex_array(tbl[lex_default]); + } + if(! tbl.lex_default_code){ + tbl.lex_base_code = caml_lex_array(tbl[lex_base_code]); + tbl.lex_backtrk_code = caml_lex_array(tbl[lex_backtrk_code]); + tbl.lex_check_code = caml_lex_array(tbl[lex_check_code]); + tbl.lex_trans_code = caml_lex_array(tbl[lex_trans_code]); + tbl.lex_default_code = caml_lex_array(tbl[lex_default_code]); + } + if(tbl.lex_code == null) + tbl.lex_code = caml_jsbytes_of_string(tbl[lex_code]); + var + c, + state = start_state, + buffer = caml_uint8_array_of_bytes(lexbuf[lex_buffer]); + if(state >= 0){ + lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = - 1; + } + else + state = - state - 1; + for(;;){ + var base = tbl.lex_base[state]; + if(base < 0){ + var pc_off = tbl.lex_base_code[state]; + caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); + return - base - 1; + } + var backtrk = tbl.lex_backtrk[state]; + if(backtrk >= 0){ + var pc_off = tbl.lex_backtrk_code[state]; + caml_lex_run_tag(tbl.lex_code, pc_off, lexbuf[lex_mem]); + lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; + lexbuf[lex_last_action] = backtrk; + } + if(lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]) + if(lexbuf[lex_eof_reached] == 0) return - state - 1; else c = 256; + else{c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos]++;} + var pstate = state; + if(tbl.lex_check[base + c] == state) + state = tbl.lex_trans[base + c]; + else + state = tbl.lex_default[state]; + if(state < 0){ + lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; + if(lexbuf[lex_last_action] == - 1) + caml_failwith("lexing: empty token"); + else + return lexbuf[lex_last_action]; + } + else{ + var base_code = tbl.lex_base_code[pstate], pc_off; + if(tbl.lex_check_code[base_code + c] == pstate) + pc_off = tbl.lex_trans_code[base_code + c]; + else + pc_off = tbl.lex_default_code[pstate]; + if(pc_off > 0) + caml_lex_run_mem + (tbl.lex_code, pc_off, lexbuf[lex_mem], lexbuf[lex_curr_pos]); + if(c == 256) lexbuf[lex_eof_reached] = 0; + } + } + } + function caml_ba_uint8_set64(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 7 >= ba.data.length) caml_array_bound_error(); + var v = caml_int64_to_bytes(v); + for(var i = 0; i < 8; i++) ba.set(ofs + i, v[7 - i]); + return 0; + } + function ml_z_popcount(z){ + z = bigInt(z); + var zero = bigInt(0), one = bigInt(1); + if(z.lt(zero)) caml_raise_constant(caml_named_value("ml_z_overflow")); + var i; + for(i = 0; ! z.equals(zero); i++) z = z.and(z.prev()); + if(i != (i | 0)) caml_raise_constant(caml_named_value("ml_z_overflow")); + return i | 0; + } + function caml_sys_executable_name(a){return caml_executable_name;} + function caml_lessequal(x, y){ + return + (caml_compare_val(x, y, false) <= 0); + } + function caml_acosh_float(x){return Math.acosh(x);} + function caml_MD5Init(){ + var + buffer = new ArrayBuffer(64), + b32 = new Uint32Array(buffer), + b8 = new Uint8Array(buffer); + return {len: 0, + w: + new Uint32Array([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476]), + b32: b32, + b8: b8}; + } + function caml_ml_flush(chanid){ + var chan = caml_ml_channels[chanid]; + if(! chan.opened) caml_raise_sys_error("Cannot flush a closed channel"); + if(! chan.buffer || chan.buffer_curr == 0) return 0; + if(chan.output) + chan.output(caml_subarray_to_jsbytes(chan.buffer, 0, chan.buffer_curr)); + else + chan.file.write(chan.offset, chan.buffer, 0, chan.buffer_curr); + chan.offset += chan.buffer_curr; + chan.buffer_curr = 0; + return 0; + } + function caml_seek_out(chanid, pos){ + caml_ml_flush(chanid); + var chan = caml_ml_channels[chanid]; + chan.offset = pos; + return 0; + } + function caml_ml_seek_out_64(chanid, pos){ + var pos = caml_int64_to_float(pos); + return caml_seek_out(chanid, pos); + } + function compare_nat_real(nat1, nat2){ + return compare_nat(nat1, 0, nat1.data.length, nat2, 0, nat2.data.length); + } + function caml_gc_set(_control){return 0;} + function caml_js_get(o, f){return o[f];} + function caml_unix_isatty(fileDescriptor){ + if(fs_node_supported()){ + var tty = require("tty"); + return tty.isatty(fileDescriptor) ? 1 : 0; + } + else + return 0; + } + function caml_ml_set_buffered(chanid, v){ + caml_ml_channels[chanid].buffered = v; + if(! v) caml_ml_flush(chanid); + return 0; + } + function caml_gc_compaction(){return 0;} + function caml_ephe_get_key(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_key"); + var weak = x[caml_ephe_key_offset + i]; + if(globalThis.WeakRef && weak instanceof globalThis.WeakRef) + weak = weak.deref(); + return weak === undefined ? 0 : [0, weak]; + } + function caml_unix_localtime(t){ + var + d = new Date(t * 1000), + d_num = d.getTime(), + januaryfirst = new Date(d.getFullYear(), 0, 1).getTime(), + doy = Math.floor((d_num - januaryfirst) / 86400000), + jan = new Date(d.getFullYear(), 0, 1), + jul = new Date(d.getFullYear(), 6, 1), + stdTimezoneOffset = + Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); + return [0, + d.getSeconds(), + d.getMinutes(), + d.getHours(), + d.getDate(), + d.getMonth(), + d.getFullYear() - 1900, + d.getDay(), + doy, + d.getTimezoneOffset() < stdTimezoneOffset | 0]; + } + function caml_unix_mktime(tm){ + var + d = new Date(tm[6] + 1900, tm[5], tm[4], tm[3], tm[2], tm[1]).getTime(), + t = Math.floor(d / 1000), + tm2 = caml_unix_localtime(t); + return [0, t, tm2]; + } + function jsoo_z_of_js_string_base(base, s){ + if(base == 0){ + base = 10; + var p = 0, sign = 1; + if(s[p] == "-"){sign = - 1; p++;} else if(s[p] == "+") p++; + if(s[p] == "0"){ + p++; + if(s.length == p) + return 0; + else{ + var bc = s[p]; + if(bc == "o" || bc == "O") + base = 8; + else if(bc == "x" || bc == "X") + base = 16; + else if(bc == "b" || bc == "B") base = 2; + if(base != 10){s = s.substring(p + 1); if(sign == - 1) s = "-" + s;} + } + } + } + function digit(code){ + if(code >= 48 && code <= 57) return code - 48; + if(code >= 97 && code <= 102) return code - 97 + 10; + if(code >= 65 && code <= 70) return code - 65 + 10; + } + var i = 0; + if(s[i] == "+") s = s.substring(1); else if(s[i] == "-") i++; + if(s[i] == "_") + caml_invalid_argument("Z.of_substring_base: invalid digit"); + s = s.replace(/_/g, ""); + if(s == "-" || s == "") s = "0"; + for(; i < s.length; i++){ + var c = digit(s.charCodeAt(i)); + if(c == undefined || c >= base) + caml_invalid_argument("Z.of_substring_base: invalid digit"); + } + return ml_z_normalize(bigInt(s, base)); + } + function ml_z_of_substring_base(base, s, pos, len){ + s = caml_jsbytes_of_string(s); + if(pos != 0 || len != s.length){ + if(s.length - pos < len) + caml_invalid_argument("Z.of_substring_base: invalid offset or length"); + s = s.slice(pos, pos + len); + } + return jsoo_z_of_js_string_base(base, s); + } + function caml_bigstring_blit_bytes_to_ba(str1, pos1, ba2, pos2, len){ + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs2 = ba2.offset(pos2); + if(pos1 + len > caml_ml_bytes_length(str1)) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = caml_uint8_array_of_bytes(str1).slice(pos1, pos1 + len); + ba2.data.set(slice, ofs2); + return 0; + } + var caml_sys_fds = new Array(3); + function caml_sys_close(fd){ + var file = caml_sys_fds[fd]; + if(file) file.close(); + delete caml_sys_fds[fd]; + return 0; + } + function caml_ml_close_channel(chanid){ + var chan = caml_ml_channels[chanid]; + chan.opened = false; + caml_sys_close(chan.fd); + return 0; + } + function caml_atomic_exchange(ref, v){ + var r = ref[1]; + ref[1] = v; + return r; + } + function caml_sys_isatty(_chan){return 0;} + function is_digit_zero(nat, ofs){ + if(nat.data[ofs] == 0) return 1; + return 0; + } + function caml_unix_lstat(name){ + var root = resolve_fs_device(name); + if(! root.device.lstat) caml_failwith("caml_unix_lstat: not implemented"); + return root.device.lstat(root.rest, true); + } + function caml_unix_lstat_64(name){ + var r = caml_unix_lstat(name); + r[9] = caml_int64_of_int32(r[9]); + } + function caml_js_set(o, f, v){o[f] = v; return 0;} + function ml_z_gcdext_intern(z1, z2){ + z1 = bigInt(z1); + z2 = bigInt(z2); + var + gcd = bigInt.gcd(z1, z2), + a = z1, + b = z2, + x = bigInt(0), + lastx = bigInt(1), + y = bigInt(1), + lasty = bigInt(1), + q, + t, + r; + if(z1.equals(bigInt(0))) caml_raise_zero_divide(); + while(! b.equals(bigInt(0))){ + q = a.divide(b); + r = a.subtract(q.multiply(b)); + t = x; + x = lastx.subtract(q.multiply(x)); + lastx = t; + t = y; + y = lasty.subtract(q.multiply(y)); + lasty = t; + a = b; + b = r; + } + return a.lt(bigInt(0)) + ? [0, + ml_z_normalize(a.negate()), + ml_z_normalize(lastx.negate()), + 1] + : [0, ml_z_normalize(a), ml_z_normalize(lastx), 1]; + } + function ml_z_testbit(z, pos){ + z = bigInt(z); + return z.shiftRight(pos).and(bigInt(1)).toJSNumber() | 0; + } + function caml_array_get(array, index){ + if(index < 0 || index >= array.length - 1) caml_array_bound_error(); + return array[index + 1]; + } + function caml_continuation_use_noexc(cont){ + var stack = cont[1]; + cont[1] = 0; + return stack; + } + function caml_unix_rmdir(name){ + var root = resolve_fs_device(name); + if(! root.device.rmdir) caml_failwith("caml_unix_rmdir: not implemented"); + return root.device.rmdir(root.rest, true); + } + function caml_log2_float(x){return Math.log2(x);} + function caml_gc_huge_fallback_count(unit){return 0;} + function caml_runtime_events_resume(){return 0;} + function ml_z_congruent(a, b, c){ + var zero = bigInt(0); + a = bigInt(a); + b = bigInt(b); + c = bigInt(c); + if(c.equals(zero) && a.equals(b)) return 1; + return a.minus(b).isDivisibleBy(c) ? 1 : 0; + } + function caml_spacetime_only_works_for_native_code(){ + caml_failwith("Spacetime profiling only works for native code"); + } + function caml_int64_sub(x, y){return x.sub(y);} + function caml_seek_in(chanid, pos){ + var chan = caml_ml_channels[chanid]; + if(chan.refill != null) caml_raise_sys_error("Illegal seek"); + if + (pos >= chan.offset - chan.buffer_max && pos <= chan.offset + && chan.file.flags.binary) + chan.buffer_curr = chan.buffer_max - (chan.offset - pos); + else{chan.offset = pos; chan.buffer_curr = 0; chan.buffer_max = 0;} + return 0; + } + function caml_ml_seek_in_64(chanid, pos){ + var pos = caml_int64_to_float(pos); + return caml_seek_in(chanid, pos); + } + var caml_domain_id = 0; + function caml_ml_mutex_unlock(t){t.locked = false; return 0;} + var caml_domain_latest_idx = 1; + function caml_domain_spawn(f, mutex){ + var id = caml_domain_latest_idx++, old = caml_domain_id; + caml_domain_id = id; + caml_callback(f, [0]); + caml_domain_id = old; + caml_ml_mutex_unlock(mutex); + return id; + } + function caml_unix_mkdir(name, perm){ + var root = resolve_fs_device(name); + if(! root.device.mkdir) caml_failwith("caml_unix_mkdir: not implemented"); + return root.device.mkdir(root.rest, perm, true); + } + function caml_int64_shift_left(x, s){return x.shift_left(s);} + function caml_notequal(x, y){ + return + (caml_compare_val(x, y, false) != 0); + } + function ml_z_abs(z1){return ml_z_normalize(bigInt(z1).abs());} + function caml_sys_const_int_size(){return 32;} + function caml_js_wrap_callback(f){ + return function(){ + var len = arguments.length; + if(len > 0){ + var args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + } + else + args = [undefined]; + var res = caml_callback(f, args); + return res instanceof Function ? caml_js_wrap_callback(res) : res;}; + } + function caml_js_wrap_meth_callback(f){ + return function(){ + var len = arguments.length, args = new Array(len + 1); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + var res = caml_callback(f, args); + return res instanceof Function ? caml_js_wrap_callback(res) : res;}; + } + function caml_is_js(){return 1;} + function caml_lazy_update_to_forward(o){ + caml_obj_update_tag(o, 244, 250); + return 0; + } + function caml_ba_dim(ba, i){ + if(i < 0 || i >= ba.dims.length) caml_invalid_argument("Bigarray.dim"); + return ba.dims[i]; + } + function caml_ba_dim_1(ba){return caml_ba_dim(ba, 0);} + function ml_z_sqrt(z1){ + var z = bigInt(z1), zero = bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt: square root of a negative number"); + return ml_z_root(z, 2); + } + function caml_js_meth_call(o, f, args){ + return o[caml_jsstring_of_string(f)].apply(o, caml_js_from_array(args)); + } + function ml_z_lucnum(i){ + if(i < 0) caml_invalid_argument("Z.lucnum: negative arguments"); + if(i == 0) return 2; + if(i == 1) return 1; + var a = bigInt(2), b = bigInt(1); + for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} + return ml_z_normalize(b); + } + var caml_ephe_data_offset = 2; + function caml_weak_create(n){ + if(n < 0) caml_invalid_argument("Weak.create"); + var x = [251, "caml_ephe_list_head"]; + x.length = caml_ephe_key_offset + n; + return x; + } + function caml_ephe_create(n){var x = caml_weak_create(n); return x;} + function caml_js_to_byte_string(s){return caml_string_of_jsbytes(s);} + function ml_z_probab_prime(z, i){ + return bigInt(z).isProbablePrime(i) ? 1 : 0; + } + function caml_trampoline(res){ + var c = 1; + while(res && res.joo_tramp){ + res = res.joo_tramp.apply(null, res.joo_args); + c++; + } + return res; + } + function caml_maybe_print_stats(unit){return 0;} + function caml_bytes_unsafe_get(s, i){ + switch(s.t & 6){ + default: if(i >= s.c.length) return 0; + case 0: + return s.c.charCodeAt(i); + case 4: + return s.c[i]; + } + } + function caml_bytes_get64(s, i){ + if(i >>> 0 >= s.l - 7) caml_bytes_bound_error(); + var a = new Array(8); + for(var j = 0; j < 8; j++) a[7 - j] = caml_bytes_unsafe_get(s, i + j); + return caml_int64_of_bytes(a); + } + var caml_custom_event_index = 0; + function caml_runtime_events_user_register + (event_name, event_tag, event_type){ + caml_custom_event_index += 1; + return [0, caml_custom_event_index, event_name, event_type, event_tag]; + } + function caml_unix_has_symlink(unit){return fs_node_supported() ? 1 : 0;} + function ml_z_rem(z1, z2){ + z2 = bigInt(z2); + if(z2.equals(bigInt(0))) caml_raise_zero_divide(); + return ml_z_normalize(bigInt(z1).mod(z2)); + } + function caml_ephe_set_key(x, i, v){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if(v instanceof Object && globalThis.WeakRef){ + if(x[1].register) x[1].register(v, undefined, v); + x[caml_ephe_key_offset + i] = new globalThis.WeakRef(v); + } + else + x[caml_ephe_key_offset + i] = v; + return 0; + } + function caml_ephe_unset_key(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.set"); + if + (globalThis.WeakRef + && x[caml_ephe_key_offset + i] instanceof globalThis.WeakRef + && x[1].unregister){ + var old = x[caml_ephe_key_offset + i].deref(); + if(old !== undefined){ + var count = 0; + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key === old) count++; + } + } + if(count == 1) x[1].unregister(old); + } + } + x[caml_ephe_key_offset + i] = undefined; + return 0; + } + function caml_weak_set(x, i, v){ + if(v == 0) caml_ephe_unset_key(x, i); else caml_ephe_set_key(x, i, v[1]); + return 0; + } + function caml_sys_remove(name){ + var root = resolve_fs_device(name), ok = root.device.unlink(root.rest); + if(ok == 0) caml_raise_no_such_file(caml_jsbytes_of_string(name)); + return 0; + } + function caml_string_bound_error(){ + caml_invalid_argument("index out of bounds"); + } + function caml_string_get32(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 3) caml_string_bound_error(); + var + b1 = caml_string_unsafe_get(s, i), + b2 = caml_string_unsafe_get(s, i + 1), + b3 = caml_string_unsafe_get(s, i + 2), + b4 = caml_string_unsafe_get(s, i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1; + } + function caml_bytes_get(s, i){ + if(i >>> 0 >= s.l) caml_bytes_bound_error(); + return caml_bytes_unsafe_get(s, i); + } + function caml_hypot_float(x, y){return Math.hypot(x, y);} + function ml_z_facM(i, m){ + if(i <= 0 || m <= 0) caml_invalid_argument("Z.factM: negative arguments"); + m = bigInt(m); + var current = bigInt(i), res = bigInt(1); + while(current.isPositive()){ + res = res.multiply(current); + current = current.minus(m); + } + return ml_z_normalize(res); + } + function caml_js_call(f, o, args){ + return f.apply(o, caml_js_from_array(args)); + } + function caml_sys_const_max_wosize(){return 0x7FFFFFFF / 4 | 0;} + function caml_unix_inet_addr_of_string(){return 0;} + function ml_z_to_int(z1){ + if(z1 == (z1 | 0)) return z1 | 0; + caml_raise_constant(caml_named_value("ml_z_overflow")); + } + function ml_z_mul_overflows(x, y){var z = x * y; return z != (z | 0);} + function caml_hash_mix_bytes_arr(h, s){ + var len = s.length, i, w; + for(i = 0; i + 4 <= len; i += 4){ + w = s[i] | s[i + 1] << 8 | s[i + 2] << 16 | s[i + 3] << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(len & 3){ + case 3: + w = s[i + 2] << 16; + case 2: + w |= s[i + 1] << 8; + case 1: + w |= s[i]; h = caml_hash_mix_int(h, w); + } + h ^= len; + return h; + } + function caml_hash_mix_jsbytes(h, s){ + var len = s.length, i, w; + for(i = 0; i + 4 <= len; i += 4){ + w = + s.charCodeAt(i) | s.charCodeAt(i + 1) << 8 | s.charCodeAt(i + 2) << 16 + | s.charCodeAt(i + 3) << 24; + h = caml_hash_mix_int(h, w); + } + w = 0; + switch(len & 3){ + case 3: + w = s.charCodeAt(i + 2) << 16; + case 2: + w |= s.charCodeAt(i + 1) << 8; + case 1: + w |= s.charCodeAt(i); h = caml_hash_mix_int(h, w); + } + h ^= len; + return h; + } + function caml_ml_bytes_content(s){ + switch(s.t & 6){ + default: caml_convert_string_to_bytes(s); + case 0: + return s.c; + case 4: + return s.c; + } + } + function caml_hash_mix_bytes(h, v){ + var content = caml_ml_bytes_content(v); + return typeof content === "string" + ? caml_hash_mix_jsbytes(h, content) + : caml_hash_mix_bytes_arr(h, content); + } + function caml_bytes_lessthan(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c < s2.c ? 1 : 0; + } + function caml_erfc_float(x){return 1 - caml_erf_float(x);} + function caml_gr_fill_poly(ar){ + var s = caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(ar[1][1], s.height - ar[1][2]); + for(var i = 2; i < ar.length; i++) + s.context.lineTo(ar[i][1], s.height - ar[i][2]); + s.context.lineTo(ar[1][1], s.height - ar[1][2]); + s.context.fill(); + return 0; + } + function caml_gc_quick_stat(){ + return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + function ml_z_fac(i){ + if(i <= 0) caml_invalid_argument("Z.fact: negative arguments"); + return ml_z_facM(i, 1); + } + function caml_ml_input_char(chanid){ + var chan = caml_ml_channels[chanid]; + if(chan.buffer_curr >= chan.buffer_max){ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + } + if(chan.buffer_curr >= chan.buffer_max) caml_raise_end_of_file(); + var res = chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + return res; + } + function caml_ml_input_int(chanid){ + var chan = caml_ml_channels[chanid], res = 0; + for(var i = 0; i < 4; i++) + res = (res << 8) + caml_ml_input_char(chanid) | 0; + return res | 0; + } + function caml_gr_display_mode(){ + caml_failwith("caml_gr_display_mode not Implemented"); + } + function ml_z_divisible(a, b){ + var zero = bigInt(0); + a = bigInt(a); + b = bigInt(b); + if(a.equals(zero) && b.equals(zero)) return 1; + return a.isDivisibleBy(b) ? 1 : 0; + } + function caml_obj_reachable_words(o){return 0;} + function nth_digit_nat(nat, ofs){return nat.data[ofs];} + function caml_array_blit(a1, i1, a2, i2, len){ + if(i2 <= i1) + for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; + else + for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; + return 0; + } + function caml_float_of_string(s){ + var res; + s = caml_jsbytes_of_string(s); + res = + s; + if(s.length > 0 && res === res) return res; + s = s.replace(/_/g, ""); + res = + s; + if(s.length > 0 && res === res || /^[+-]?nan$/i.test(s)) return res; + var m = /^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(s); + if(m){ + var + m3 = m[3].replace(/0+$/, ""), + mantissa = parseInt(m[1] + m[2] + m3, 16), + exponent = (m[5] | 0) - 4 * m3.length; + res = mantissa * Math.pow(2, exponent); + return res; + } + if(/^\+?inf(inity)?$/i.test(s)) return Infinity; + if(/^-inf(inity)?$/i.test(s)) return - Infinity; + caml_failwith("float_of_string"); + } + function caml_sys_getcwd(){ + return caml_string_of_jsbytes(caml_current_dir); + } + function caml_int64_add(x, y){return x.add(y);} + function caml_int64_mul(x, y){return x.mul(y);} + function caml_int64_ult(x, y){return x.ucompare(y) < 0;} + function caml_parse_sign_and_base(s){ + var i = 0, len = caml_ml_string_length(s), base = 10, sign = 1; + if(len > 0) + switch(caml_string_unsafe_get(s, i)){ + case 45: + i++; sign = - 1; break; + case 43: + i++; sign = 1; break; + } + if(i + 1 < len && caml_string_unsafe_get(s, i) == 48) + switch(caml_string_unsafe_get(s, i + 1)){ + case 120: + case 88: + base = 16; i += 2; break; + case 111: + case 79: + base = 8; i += 2; break; + case 98: + case 66: + base = 2; i += 2; break; + case 117: + case 85: + i += 2; break; + } + return [i, sign, base]; + } + function caml_parse_digit(c){ + if(c >= 48 && c <= 57) return c - 48; + if(c >= 65 && c <= 90) return c - 55; + if(c >= 97 && c <= 122) return c - 87; + return - 1; + } + function caml_int64_of_string(s){ + var + r = caml_parse_sign_and_base(s), + i = r[0], + sign = r[1], + base = r[2], + base64 = caml_int64_of_int32(base), + threshold = + new MlInt64(0xffffff, 0xfffffff, 0xffff).udivmod(base64).quotient, + c = caml_string_unsafe_get(s, i), + d = caml_parse_digit(c); + if(d < 0 || d >= base) caml_failwith("int_of_string"); + var res = caml_int64_of_int32(d); + for(;;){ + i++; + c = caml_string_unsafe_get(s, i); + if(c == 95) continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base) break; + if(caml_int64_ult(threshold, res)) caml_failwith("int_of_string"); + d = caml_int64_of_int32(d); + res = caml_int64_add(caml_int64_mul(base64, res), d); + if(caml_int64_ult(res, d)) caml_failwith("int_of_string"); + } + if(i != caml_ml_string_length(s)) caml_failwith("int_of_string"); + if(base == 10 && caml_int64_ult(new MlInt64(0, 0, 0x8000), res)) + caml_failwith("int_of_string"); + if(sign < 0) res = caml_int64_neg(res); + return res; + } + function caml_ba_set_1(ba, i0, v){ba.set(ba.offset(i0), v); return 0;} + function caml_int64_xor(x, y){return x.xor(y);} + function caml_int64_or(x, y){return x.or(y);} + function caml_lxm_next(v){ + function shift_l(x, k){return caml_int64_shift_left(x, k);} + function shift_r(x, k){return caml_int64_shift_right_unsigned(x, k);} + function or(a, b){return caml_int64_or(a, b);} + function xor(a, b){return caml_int64_xor(a, b);} + function add(a, b){return caml_int64_add(a, b);} + function mul(a, b){return caml_int64_mul(a, b);} + function rotl(x, k){return or(shift_l(x, k), shift_r(x, 64 - k));} + function get(a, i){return caml_ba_get_1(a, i);} + function set(a, i, x){return caml_ba_set_1(a, i, x);} + var + M = caml_int64_of_string(caml_new_string("0xd1342543de82ef95")), + daba = caml_int64_of_string(caml_new_string("0xdaba0b6eb09322e3")), + z, + q0, + q1, + st = v, + a = get(st, 0), + s = get(st, 1), + x0 = get(st, 2), + x1 = get(st, 3); + z = add(s, x0); + z = mul(xor(z, shift_r(z, 32)), daba); + z = mul(xor(z, shift_r(z, 32)), daba); + z = xor(z, shift_r(z, 32)); + set(st, 1, add(mul(s, M), a)); + var q0 = x0, q1 = x1; + q1 = xor(q1, q0); + q0 = rotl(q0, 24); + q0 = xor(xor(q0, q1), shift_l(q1, 16)); + q1 = rotl(q1, 37); + set(st, 2, q0); + set(st, 3, q1); + return z; + } + function caml_sys_const_big_endian(){return 0;} + function caml_list_to_js_array(l){ + var a = []; + for(; l !== 0; l = l[2]) a.push(l[1]); + return a; + } + var + caml_output_val = + function(){ + function Writer(){this.chunk = [];} + Writer.prototype = + {chunk_idx: 20, + block_len: 0, + obj_counter: 0, + size_32: 0, + size_64: 0, + write: + function(size, value){ + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF; + }, + write_at: + function(pos, size, value){ + var pos = pos; + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[pos++] = value >> i & 0xFF; + }, + write_code: + function(size, code, value){ + this.chunk[this.chunk_idx++] = code; + for(var i = size - 8; i >= 0; i -= 8) + this.chunk[this.chunk_idx++] = value >> i & 0xFF; + }, + write_shared: + function(offset){ + if(offset < 1 << 8) + this.write_code(8, 0x04, offset); + else if(offset < 1 << 16) + this.write_code(16, 0x05, offset); + else + this.write_code(32, 0x06, offset); + }, + pos: function(){return this.chunk_idx;}, + finalize: + function(){ + this.block_len = this.chunk_idx - 20; + this.chunk_idx = 0; + this.write(32, 0x8495A6BE); + this.write(32, this.block_len); + this.write(32, this.obj_counter); + this.write(32, this.size_32); + this.write(32, this.size_64); + return this.chunk; + }}; + return function(v, flags){ + flags = caml_list_to_js_array(flags); + var + no_sharing = flags.indexOf(0) !== - 1, + closures = flags.indexOf(1) !== - 1; + if(closures) + console.warn + ("in caml_output_val: flag Marshal.Closures is not supported."); + var + writer = new Writer(), + stack = [], + intern_obj_table = no_sharing ? null : new MlObjectTable(); + function memo(v){ + if(no_sharing) return false; + var existing_offset = intern_obj_table.recall(v); + if(existing_offset){ + writer.write_shared(existing_offset); + return true; + } + else{intern_obj_table.store(v); return false;} + } + function extern_rec(v){ + if(v.caml_custom){ + if(memo(v)) return; + var + name = v.caml_custom, + ops = caml_custom_ops[name], + sz_32_64 = [0, 0]; + if(! ops.serialize) + caml_invalid_argument("output_value: abstract value (Custom)"); + if(ops.fixed_length == undefined){ + writer.write(8, 0x18); + for(var i = 0; i < name.length; i++) + writer.write(8, name.charCodeAt(i)); + writer.write(8, 0); + var header_pos = writer.pos(); + for(var i = 0; i < 12; i++) writer.write(8, 0); + ops.serialize(writer, v, sz_32_64); + writer.write_at(header_pos, 32, sz_32_64[0]); + writer.write_at(header_pos + 4, 32, 0); + writer.write_at(header_pos + 8, 32, sz_32_64[1]); + } + else{ + writer.write(8, 0x19); + for(var i = 0; i < name.length; i++) + writer.write(8, name.charCodeAt(i)); + writer.write(8, 0); + var old_pos = writer.pos(); + ops.serialize(writer, v, sz_32_64); + if(ops.fixed_length != writer.pos() - old_pos) + caml_failwith + ("output_value: incorrect fixed sizes specified by " + name); + } + writer.size_32 += 2 + (sz_32_64[0] + 3 >> 2); + writer.size_64 += 2 + (sz_32_64[1] + 7 >> 3); + } + else if(v instanceof Array && v[0] === (v[0] | 0)){ + if(v[0] == 251) + caml_failwith("output_value: abstract value (Abstract)"); + if(caml_is_continuation_tag(v[0])) + caml_invalid_argument("output_value: continuation value"); + if(v.length > 1 && memo(v)) return; + if(v[0] < 16 && v.length - 1 < 8) + writer.write(8, 0x80 + v[0] + (v.length - 1 << 4)); + else + writer.write_code(32, 0x08, v.length - 1 << 10 | v[0]); + writer.size_32 += v.length; + writer.size_64 += v.length; + if(v.length > 1) stack.push(v, 1); + } + else if(caml_is_ml_bytes(v)){ + if(! caml_is_ml_bytes(caml_string_of_jsbytes(""))) + caml_failwith + ("output_value: [Bytes.t] cannot safely be marshaled with [--enable use-js-string]"); + if(memo(v)) return; + var len = caml_ml_bytes_length(v); + if(len < 0x20) + writer.write(8, 0x20 + len); + else if(len < 0x100) + writer.write_code(8, 0x09, len); + else + writer.write_code(32, 0x0A, len); + for(var i = 0; i < len; i++) + writer.write(8, caml_bytes_unsafe_get(v, i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0); + } + else if(caml_is_ml_string(v)){ + var len = caml_ml_string_length(v); + if(len < 0x20) + writer.write(8, 0x20 + len); + else if(len < 0x100) + writer.write_code(8, 0x09, len); + else + writer.write_code(32, 0x0A, len); + for(var i = 0; i < len; i++) + writer.write(8, caml_string_unsafe_get(v, i)); + writer.size_32 += 1 + ((len + 4) / 4 | 0); + writer.size_64 += 1 + ((len + 8) / 8 | 0); + } + else if(v != (v | 0)){ + var type_of_v = typeof v; + caml_failwith("output_value: abstract value (" + type_of_v + ")"); + } + else if(v >= 0 && v < 0x40) + writer.write(8, 0X40 + v); + else if(v >= - (1 << 7) && v < 1 << 7) + writer.write_code(8, 0x00, v); + else if(v >= - (1 << 15) && v < 1 << 15) + writer.write_code(16, 0x01, v); + else + writer.write_code(32, 0x02, v); + } + extern_rec(v); + while(stack.length > 0){ + var i = stack.pop(), v = stack.pop(); + if(i + 1 < v.length) stack.push(v, i + 1); + extern_rec(v[i]); + } + if(intern_obj_table) + writer.obj_counter = intern_obj_table.objs.length; + writer.finalize(); + return writer.chunk;}; + } + (); + function caml_string_of_array(a){ + return caml_string_of_jsbytes(caml_subarray_to_jsbytes(a, 0, a.length)); + } + function caml_output_value_to_string(v, flags){ + return caml_string_of_array(caml_output_val(v, flags)); + } + function caml_raise_not_a_dir(name){ + caml_raise_sys_error(name + ": Not a directory"); + } + function caml_sys_system_command(cmd){ + var cmd = caml_jsstring_of_string(cmd); + if(typeof require != "undefined"){ + var child_process = require("child_process"); + if(child_process && child_process.execSync) + try{child_process.execSync(cmd, {stdio: "inherit"}); return 0;} + catch(e){return 1;} + } + else + return 127; + } + function caml_js_error_of_exception(exn){ + if(exn.js_error) return exn.js_error; + return null; + } + function caml_unix_getuid(unit){ + if(globalThis.process && globalThis.process.getuid) + return globalThis.process.getuid(); + caml_raise_not_found(); + } + function deserialize_nat(reader, sz){ + var len = reader.read32s(), nat = new MlNat(len); + for(var i = 0; i < len; i++) nat.data[i] = reader.read32s(); + sz[0] = len * 4; + return nat; + } + function initialize_nat(){ + caml_custom_ops["_nat"] = + {deserialize: deserialize_nat, + serialize: serialize_nat, + hash: caml_hash_nat}; + } + function ml_z_succ(z1){return ml_z_normalize(bigInt(z1).next());} + function caml_bytes_of_utf16_jsstring(s){ + var tag = 9; + if(! jsoo_is_ascii(s)) tag = 8, s = caml_utf8_of_utf16(s); + return new MlBytes(tag, s, s.length); + } + function caml_gr_open_subwindow(a, b, c, d){ + caml_failwith("caml_gr_open_subwindow not Implemented"); + } + function UInt8ArrayReader(s, i){this.s = s; this.i = i;} + UInt8ArrayReader.prototype = + {read8u: function(){return this.s[this.i++];}, + read8s: function(){return this.s[this.i++] << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s[i] << 8 | s[i + 1]; + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s[i] << 24 >> 16 | s[i + 1]; + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]) >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return s[i] << 24 | s[i + 1] << 16 | s[i + 2] << 8 | s[i + 3]; + }, + readstr: + function(len){ + var i = this.i; + this.i = i + len; + return caml_string_of_array(this.s.subarray(i, i + len)); + }, + readuint8array: + function(len){ + var i = this.i; + this.i = i + len; + return this.s.subarray(i, i + len); + }}; + function caml_marshal_data_size(s, ofs){ + var r = new UInt8ArrayReader(caml_uint8_array_of_bytes(s), ofs); + function readvlq(overflow){ + var c = r.read8u(), n = c & 0x7F; + while((c & 0x80) != 0){ + c = r.read8u(); + var n7 = n << 7; + if(n != n7 >> 7) overflow[0] = true; + n = n7 | c & 0x7F; + } + return n; + } + switch(r.read32u()){ + case 0x8495A6BE: + var header_len = 20, data_len = r.read32u(); break; + case 0x8495A6BD: + var + header_len = r.read8u() & 0x3F, + overflow = [false], + data_len = readvlq(overflow); + if(overflow[0]) + caml_failwith + ("Marshal.data_size: object too large to be read back on this platform"); + break; + case 0x8495A6BF: + default: caml_failwith("Marshal.data_size: bad object"); break; + } + return header_len - caml_marshal_header_size + data_len; + } + function MlStringReader(s, i){ + this.s = caml_jsbytes_of_string(s); + this.i = i; + } + MlStringReader.prototype = + {read8u: function(){return this.s.charCodeAt(this.i++);}, + read8s: function(){return this.s.charCodeAt(this.i++) << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s.charCodeAt(i) << 8 | s.charCodeAt(i + 1); + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return s.charCodeAt(i) << 24 >> 16 | s.charCodeAt(i + 1); + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 + | s.charCodeAt(i + 2) << 8 + | s.charCodeAt(i + 3)) + >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return s.charCodeAt(i) << 24 | s.charCodeAt(i + 1) << 16 + | s.charCodeAt(i + 2) << 8 + | s.charCodeAt(i + 3); + }, + readstr: + function(len){ + var i = this.i; + this.i = i + len; + return caml_string_of_jsbytes(this.s.substring(i, i + len)); + }, + readuint8array: + function(len){ + var b = new Uint8Array(len), s = this.s, i = this.i; + for(var j = 0; j < len; j++) b[j] = s.charCodeAt(i + j); + this.i = i + len; + return b; + }}; + var + zstd_decompress = + function(){ + "use strict"; + var + ab = ArrayBuffer, + u8 = Uint8Array, + u16 = Uint16Array, + i16 = Int16Array, + u32 = Uint32Array, + i32 = Int32Array; + function slc(v, s, e){ + if(u8.prototype.slice) return u8.prototype.slice.call(v, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + var n = new u8(e - s); + n.set(v.subarray(s, e)); + return n; + } + function fill(v, n, s, e){ + if(u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + for(; s < e; ++s) v[s] = n; + return v; + } + function cpw(v, t, s, e){ + if(u8.prototype.copyWithin) + return u8.prototype.copyWithin.call(v, t, s, e); + if(s == null || s < 0) s = 0; + if(e == null || e > v.length) e = v.length; + while(s < e) v[t++] = v[s++]; + } + var + ec = + ["invalid zstd data", + "window size too large (>2046MB)", + "invalid block type", + "FSE accuracy too high", + "match distance too far back", + "unexpected EOF"]; + function err(ind, msg, nt){ + var e = new Error(msg || ec[ind]); + e.code = ind; + if(! nt) throw e; + return e; + } + function rb(d, b, n){ + var i = 0, o = 0; + for(; i < n; ++i) o |= d[b++] << (i << 3); + return o; + } + function b4(d, b){ + return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0; + } + function rzfh(dat, w){ + var n3 = dat[0] | dat[1] << 8 | dat[2] << 16; + if(n3 == 0x2FB528 && dat[3] == 253){ + var + flg = dat[4], + ss = flg >> 5 & 1, + cc = flg >> 2 & 1, + df = flg & 3, + fcf = flg >> 6; + if(flg & 8) err(0); + var bt = 6 - ss, db = df == 3 ? 4 : df, di = rb(dat, bt, db); + bt += db; + var + fsb = fcf ? 1 << fcf : ss, + fss = rb(dat, bt, fsb) + (fcf == 1 && 256), + ws = fss; + if(! ss){ + var wb = 1 << 10 + (dat[5] >> 3); + ws = wb + (wb >> 3) * (dat[5] & 7); + } + if(ws > 2145386496) err(1); + var buf = new u8((w == 1 ? fss || ws : w ? 0 : ws) + 12); + buf[0] = 1, buf[4] = 4, buf[8] = 8; + return {b: bt + fsb, + y: 0, + l: 0, + d: di, + w: w && w != 1 ? w : buf.subarray(12), + e: ws, + o: new i32(buf.buffer, 0, 3), + u: fss, + c: cc, + m: Math.min(131072, ws)}; + } + else if((n3 >> 4 | dat[3] << 20) == 0x184D2A5) return b4(dat, 4) + 8; + err(0); + } + function msb(val){ + var bits = 0; + for(; 1 << bits <= val; ++bits) ; + return bits - 1; + } + function rfse(dat, bt, mal){ + var tpos = (bt << 3) + 4, al = (dat[bt] & 15) + 5; + if(al > mal) err(3); + var + sz = 1 << al, + probs = sz, + sym = - 1, + re = - 1, + i = - 1, + ht = sz, + buf = new ab(512 + (sz << 2)), + freq = new i16(buf, 0, 256), + dstate = new u16(buf, 0, 256), + nstate = new u16(buf, 512, sz), + bb1 = 512 + (sz << 1), + syms = new u8(buf, bb1, sz), + nbits = new u8(buf, bb1 + sz); + while(sym < 255 && probs > 0){ + var + bits = msb(probs + 1), + cbt = tpos >> 3, + msk = (1 << bits + 1) - 1, + val = + (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) + & msk, + msk1fb = (1 << bits) - 1, + msv = msk - probs - 1, + sval = val & msk1fb; + if(sval < msv) + tpos += bits, val = sval; + else{tpos += bits + 1; if(val > msk1fb) val -= msv;} + freq[++sym] = --val; + if(val == - 1){probs += val; syms[--ht] = sym;} else probs -= val; + if(! val) + do{ + var rbt = tpos >> 3; + re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3; + tpos += 2; + sym += re; + } + while + (re == 3); + } + if(sym > 255 || probs) err(0); + var sympos = 0, sstep = (sz >> 1) + (sz >> 3) + 3, smask = sz - 1; + for(var s = 0; s <= sym; ++s){ + var sf = freq[s]; + if(sf < 1){dstate[s] = - sf; continue;} + for(i = 0; i < sf; ++i){ + syms[sympos] = s; + do sympos = sympos + sstep & smask;while(sympos >= ht); + } + } + if(sympos) err(0); + for(i = 0; i < sz; ++i){ + var ns = dstate[syms[i]]++, nb = nbits[i] = al - msb(ns); + nstate[i] = (ns << nb) - sz; + } + return [tpos + 7 >> 3, {b: al, s: syms, n: nbits, t: nstate}]; + } + function rhu(dat, bt){ + var + i = 0, + wc = - 1, + buf = new u8(292), + hb = dat[bt], + hw = buf.subarray(0, 256), + rc = buf.subarray(256, 268), + ri = new u16(buf.buffer, 268); + if(hb < 128){ + var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1]; + bt += hb; + var epos = ebt << 3, lb = dat[bt]; + if(! lb) err(0); + var + st1 = 0, + st2 = 0, + btr1 = fdt.b, + btr2 = btr1, + fpos = (++bt << 3) - 8 + msb(lb); + for(;;){ + fpos -= btr1; + if(fpos < epos) break; + var cbt = fpos >> 3; + st1 += + (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1; + hw[++wc] = fdt.s[st1]; + fpos -= btr2; + if(fpos < epos) break; + cbt = fpos >> 3; + st2 += + (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1; + hw[++wc] = fdt.s[st2]; + btr1 = fdt.n[st1]; + st1 = fdt.t[st1]; + btr2 = fdt.n[st2]; + st2 = fdt.t[st2]; + } + if(++wc > 255) err(0); + } + else{ + wc = hb - 127; + for(; i < wc; i += 2){ + var byte = dat[++bt]; + hw[i] = byte >> 4; + hw[i + 1] = byte & 15; + } + ++bt; + } + var wes = 0; + for(i = 0; i < wc; ++i){ + var wt = hw[i]; + if(wt > 11) err(0); + wes += wt && 1 << wt - 1; + } + var mb = msb(wes) + 1, ts = 1 << mb, rem = ts - wes; + if(rem & rem - 1) err(0); + hw[wc++] = msb(rem) + 1; + for(i = 0; i < wc; ++i){ + var wt = hw[i]; + ++rc[hw[i] = wt && mb + 1 - wt]; + } + var + hbuf = new u8(ts << 1), + syms = hbuf.subarray(0, ts), + nb = hbuf.subarray(ts); + ri[mb] = 0; + for(i = mb; i > 0; --i){ + var pv = ri[i]; + fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i)); + } + if(ri[0] != ts) err(0); + for(i = 0; i < wc; ++i){ + var bits = hw[i]; + if(bits){ + var code = ri[bits]; + fill(syms, i, code, ri[bits] = code + (1 << mb - bits)); + } + } + return [bt, {n: nb, b: mb, s: syms}]; + } + var + dllt = + rfse + (new + u8 + ([81, + 16, + 99, + 140, + 49, + 198, + 24, + 99, + 12, + 33, + 196, + 24, + 99, + 102, + 102, + 134, + 70, + 146, + 4]), + 0, + 6) + [1], + dmlt = + rfse + (new + u8 + ([33, + 20, + 196, + 24, + 99, + 140, + 33, + 132, + 16, + 66, + 8, + 33, + 132, + 16, + 66, + 8, + 33, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 68, + 36, + 9]), + 0, + 6) + [1], + doct = + rfse + (new u8([32, 132, 16, 66, 102, 70, 68, 68, 68, 68, 36, 73, 2]), + 0, + 5) + [1]; + function b2bl(b, s){ + var len = b.length, bl = new i32(len); + for(var i = 0; i < len; ++i){bl[i] = s; s += 1 << b[i];} + return bl; + } + var + llb = + new + u8 + (new + i32 + ([0, + 0, + 0, + 0, + 16843009, + 50528770, + 134678020, + 202050057, + 269422093]).buffer, + 0, + 36), + llbl = b2bl(llb, 0), + mlb = + new + u8 + (new + i32 + ([0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16843009, + 50528770, + 117769220, + 185207048, + 252579084, + 16]).buffer, + 0, + 53), + mlbl = b2bl(mlb, 3); + function dhu(dat, out, hu){ + var + len = dat.length, + ss = out.length, + lb = dat[len - 1], + msk = (1 << hu.b) - 1, + eb = - hu.b; + if(! lb) err(0); + var + st = 0, + btr = hu.b, + pos = (len << 3) - 8 + msb(lb) - btr, + i = - 1; + for(; pos > eb && i < ss;){ + var + cbt = pos >> 3, + val = + (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7); + st = (st << btr | val) & msk; + out[++i] = hu.s[st]; + pos -= btr = hu.n[st]; + } + if(pos != eb || i + 1 != ss) err(0); + } + function dhu4(dat, out, hu){ + var + bt = 6, + ss = out.length, + sz1 = ss + 3 >> 2, + sz2 = sz1 << 1, + sz3 = sz1 + sz2; + dhu + (dat.subarray(bt, bt += dat[0] | dat[1] << 8), + out.subarray(0, sz1), + hu); + dhu + (dat.subarray(bt, bt += dat[2] | dat[3] << 8), + out.subarray(sz1, sz2), + hu); + dhu + (dat.subarray(bt, bt += dat[4] | dat[5] << 8), + out.subarray(sz2, sz3), + hu); + dhu(dat.subarray(bt), out.subarray(sz3), hu); + } + function rzb(dat, st, out){ + var _a, bt = st.b, b0 = dat[bt], btype = b0 >> 1 & 3; + st.l = b0 & 1; + var + sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13, + ebt = (bt += 3) + sz; + if(btype == 1){ + if(bt >= dat.length) return; + st.b = bt + 1; + if(out){fill(out, dat[bt], st.y, st.y += sz); return out;} + return fill(new u8(sz), dat[bt]); + } + if(ebt > dat.length) return; + if(btype == 0){ + st.b = ebt; + if(out){ + out.set(dat.subarray(bt, ebt), st.y); + st.y += sz; + return out; + } + return slc(dat, bt, ebt); + } + if(btype == 2){ + var + b3 = dat[bt], + lbt = b3 & 3, + sf = b3 >> 2 & 3, + lss = b3 >> 4, + lcs = 0, + s4 = 0; + if(lbt < 2) + if(sf & 1) + lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12); + else + lss = b3 >> 3; + else{ + s4 = sf; + if(sf < 2) + lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2; + else if(sf == 2) + lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, + lcs = dat[bt] >> 2 | dat[++bt] << 6; + else + lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, + lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10; + } + ++bt; + var + buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m), + spl = buf.length - lss; + if(lbt == 0) + buf.set(dat.subarray(bt, bt += lss), spl); + else if(lbt == 1) + fill(buf, dat[bt++], spl); + else{ + var hu = st.h; + if(lbt == 2){ + var hud = rhu(dat, bt); + lcs += bt - (bt = hud[0]); + st.h = hu = hud[1]; + } + else if(! hu) err(0); + (s4 ? dhu4 : dhu) + (dat.subarray(bt, bt += lcs), buf.subarray(spl), hu); + } + var ns = dat[bt++]; + if(ns){ + if(ns == 255) + ns = (dat[bt++] | dat[bt++] << 8) + 0x7F00; + else if(ns > 127) ns = ns - 128 << 8 | dat[bt++]; + var scm = dat[bt++]; + if(scm & 3) err(0); + var dts = [dmlt, doct, dllt]; + for(var i = 2; i > - 1; --i){ + var md = scm >> (i << 1) + 2 & 3; + if(md == 1){ + var rbuf = new u8([0, 0, dat[bt++]]); + dts[i] = + {s: rbuf.subarray(2, 3), + n: rbuf.subarray(0, 1), + t: new u16(rbuf.buffer, 0, 1), + b: 0}; + } + else if(md == 2) + _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1]; + else if(md == 3){if(! st.t) err(0); dts[i] = st.t[i];} + } + var + _b = st.t = dts, + mlt = _b[0], + oct = _b[1], + llt = _b[2], + lb = dat[ebt - 1]; + if(! lb) err(0); + var + spos = (ebt << 3) - 8 + msb(lb) - llt.b, + cbt = spos >> 3, + oubt = 0, + lst = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1; + cbt = (spos -= oct.b) >> 3; + var + ost = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1; + cbt = (spos -= mlt.b) >> 3; + var + mst = + (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1; + for(++ns; --ns;){ + var + llc = llt.s[lst], + lbtr = llt.n[lst], + mlc = mlt.s[mst], + mbtr = mlt.n[mst], + ofc = oct.s[ost], + obtr = oct.n[ost]; + cbt = (spos -= ofc) >> 3; + var + ofp = 1 << ofc, + off = + ofp + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 + | dat[cbt + 3] << 24) + >>> (spos & 7) + & ofp - 1); + cbt = (spos -= mlb[mlc]) >> 3; + var + ml = + mlbl[mlc] + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) + >> (spos & 7) + & (1 << mlb[mlc]) - 1); + cbt = (spos -= llb[llc]) >> 3; + var + ll = + llbl[llc] + + + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) + >> (spos & 7) + & (1 << llb[llc]) - 1); + cbt = (spos -= lbtr) >> 3; + lst = + llt.t[lst] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1); + cbt = (spos -= mbtr) >> 3; + mst = + mlt.t[mst] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1); + cbt = (spos -= obtr) >> 3; + ost = + oct.t[ost] + + + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1); + if(off > 3){ + st.o[2] = st.o[1]; + st.o[1] = st.o[0]; + st.o[0] = off -= 3; + } + else{ + var idx = off - (ll != 0); + if(idx){ + off = idx == 3 ? st.o[0] - 1 : st.o[idx]; + if(idx > 1) st.o[2] = st.o[1]; + st.o[1] = st.o[0]; + st.o[0] = off; + } + else + off = st.o[0]; + } + for(var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i]; + oubt += ll, spl += ll; + var stin = oubt - off; + if(stin < 0){ + var len = - stin, bs = st.e + stin; + if(len > ml) len = ml; + for(var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i]; + oubt += len, ml -= len, stin = 0; + } + for(var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i]; + oubt += ml; + } + if(oubt != spl) + while(spl < buf.length) buf[oubt++] = buf[spl++]; + else + oubt = buf.length; + if(out) st.y += oubt; else buf = slc(buf, 0, oubt); + } + else if(out){ + st.y += lss; + if(spl) for(var i = 0; i < lss; ++i) buf[i] = buf[spl + i]; + } + else if(spl) buf = slc(buf, spl); + st.b = ebt; + return buf; + } + err(2); + } + function cct(bufs, ol){ + if(bufs.length == 1) return bufs[0]; + var buf = new u8(ol); + for(var i = 0, b = 0; i < bufs.length; ++i){ + var chk = bufs[i]; + buf.set(chk, b); + b += chk.length; + } + return buf; + } + return function(dat, buf){ + var bt = 0, bufs = [], nb = + ! buf, ol = 0; + for(; dat.length;){ + var st = rzfh(dat, nb || buf); + if(typeof st == "object"){ + if(nb){ + buf = null; + if(st.w.length == st.u){bufs.push(buf = st.w); ol += st.u;} + } + else{bufs.push(buf); st.e = 0;} + for(; ! st.l;){ + var blk = rzb(dat, st, buf); + if(! blk) err(5); + if(buf) + st.e = st.y; + else{ + bufs.push(blk); + ol += blk.length; + cpw(st.w, 0, blk.length); + st.w.set(blk, st.w.length - blk.length); + } + } + bt = st.b + st.c * 4; + } + else + bt = st; + dat = dat.subarray(bt); + } + return cct(bufs, ol);}; + } + (); + function caml_float_of_bytes(a){ + return caml_int64_float_of_bits(caml_int64_of_bytes(a)); + } + function caml_input_value_from_reader(reader, ofs){ + function readvlq(overflow){ + var c = reader.read8u(), n = c & 0x7F; + while((c & 0x80) != 0){ + c = reader.read8u(); + var n7 = n << 7; + if(n != n7 >> 7) overflow[0] = true; + n = n7 | c & 0x7F; + } + return n; + } + var magic = reader.read32u(); + switch(magic){ + case 0x8495A6BE: + var + header_len = 20, + compressed = 0, + data_len = reader.read32u(), + uncompressed_data_len = data_len, + num_objects = reader.read32u(), + _size_32 = reader.read32u(), + _size_64 = reader.read32u(); + break; + case 0x8495A6BD: + var + header_len = reader.read8u() & 0x3F, + compressed = 1, + overflow = [false], + data_len = readvlq(overflow), + uncompressed_data_len = readvlq(overflow), + num_objects = readvlq(overflow), + _size_32 = readvlq(overflow), + _size_64 = readvlq(overflow); + if(overflow[0]) + caml_failwith + ("caml_input_value_from_reader: object too large to be read back on this platform"); + break; + case 0x8495A6BF: + caml_failwith + ("caml_input_value_from_reader: object too large to be read back on a 32-bit platform"); + break; + default: + caml_failwith("caml_input_value_from_reader: bad object"); break; + } + var + stack = [], + intern_obj_table = num_objects > 0 ? [] : null, + obj_counter = 0; + function intern_rec(reader){ + var code = reader.read8u(); + if(code >= 0x40) + if(code >= 0x80){ + var tag = code & 0xF, size = code >> 4 & 0x7, v = [tag]; + if(size == 0) return v; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + stack.push(v, size); + return v; + } + else + return code & 0x3F; + else if(code >= 0x20){ + var len = code & 0x1F, v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + } + else + switch(code){ + case 0x00: + return reader.read8s(); + case 0x01: + return reader.read16s(); + case 0x02: + return reader.read32s(); + case 0x03: + caml_failwith("input_value: integer too large"); break; + case 0x04: + var offset = reader.read8u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x05: + var offset = reader.read16u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x06: + var offset = reader.read32u(); + if(compressed == 0) offset = obj_counter - offset; + return intern_obj_table[offset]; + case 0x08: + var + header = reader.read32u(), + tag = header & 0xFF, + size = header >> 10, + v = [tag]; + if(size == 0) return v; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + stack.push(v, size); + return v; + case 0x13: + caml_failwith("input_value: data block too large"); break; + case 0x09: + var len = reader.read8u(), v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0A: + var len = reader.read32u(), v = reader.readstr(len); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0C: + var t = new Array(8); + for(var i = 0; i < 8; i++) t[7 - i] = reader.read8u(); + var v = caml_float_of_bytes(t); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0B: + var t = new Array(8); + for(var i = 0; i < 8; i++) t[i] = reader.read8u(); + var v = caml_float_of_bytes(t); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + case 0x0E: + var len = reader.read8u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x0D: + var len = reader.read8u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x07: + var len = reader.read32u(), v = new Array(len + 1); + v[0] = 254; + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + var t = new Array(8); + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[7 - j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x0F: + var len = reader.read32u(), v = new Array(len + 1); + v[0] = 254; + var t = new Array(8); + for(var i = 1; i <= len; i++){ + for(var j = 0; j < 8; j++) t[j] = reader.read8u(); + v[i] = caml_float_of_bytes(t); + } + return v; + case 0x10: + case 0x11: + caml_failwith("input_value: code pointer"); break; + case 0x12: + case 0x18: + case 0x19: + var c, s = ""; + while((c = reader.read8u()) != 0) s += String.fromCharCode(c); + var ops = caml_custom_ops[s], expected_size; + if(! ops) + caml_failwith("input_value: unknown custom block identifier"); + switch(code){ + case 0x12: break; + case 0x19: + if(! ops.fixed_length) + caml_failwith("input_value: expected a fixed-size custom block"); + expected_size = ops.fixed_length; + break; + case 0x18: + expected_size = reader.read32u(); + reader.read32s(); + reader.read32s(); + break; + } + var + old_pos = reader.i, + size = [0], + v = ops.deserialize(reader, size); + if(expected_size != undefined) + if(expected_size != size[0]) + caml_failwith + ("input_value: incorrect length of serialized custom block"); + if(intern_obj_table) intern_obj_table[obj_counter++] = v; + return v; + default: caml_failwith("input_value: ill-formed message"); + } + } + if(compressed) + var + data = reader.readuint8array(data_len), + res = new Uint8Array(uncompressed_data_len), + res = zstd_decompress(data, res), + reader = new UInt8ArrayReader(res, 0); + var res = intern_rec(reader); + while(stack.length > 0){ + var size = stack.pop(), v = stack.pop(), d = v.length; + if(d < size) stack.push(v, size); + v[d] = intern_rec(reader); + } + if(typeof ofs != "number") ofs[0] = reader.i; + return res; + } + function caml_string_of_bytes(s){ + s.t & 6 && caml_convert_string_to_bytes(s); + return caml_string_of_jsbytes(s.c); + } + function caml_input_value_from_bytes(s, ofs){ + var + reader = + new + MlStringReader + (caml_string_of_bytes(s), typeof ofs == "number" ? ofs : ofs[0]); + return caml_input_value_from_reader(reader, ofs); + } + function caml_input_value(chanid){ + var + chan = caml_ml_channels[chanid], + header = new Uint8Array(caml_marshal_header_size); + function block(buffer, offset, n){ + var r = 0; + while(r < n){ + if(chan.buffer_curr >= chan.buffer_max){ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + } + if(chan.buffer_curr >= chan.buffer_max) break; + buffer[offset + r] = chan.buffer[chan.buffer_curr]; + chan.buffer_curr++; + r++; + } + return r; + } + var r = block(header, 0, caml_marshal_header_size); + if(r == 0) + caml_raise_end_of_file(); + else if(r < caml_marshal_header_size) + caml_failwith("input_value: truncated object"); + var + len = caml_marshal_data_size(caml_bytes_of_array(header), 0), + buf = new Uint8Array(len + caml_marshal_header_size); + buf.set(header, 0); + var r = block(buf, caml_marshal_header_size, len); + if(r < len) + caml_failwith("input_value: truncated object " + r + " " + len); + var + offset = [0], + res = caml_input_value_from_bytes(caml_bytes_of_array(buf), offset); + chan.offset = chan.offset + offset[0]; + return res; + } + function caml_input_value_to_outside_heap(c){return caml_input_value(c);} + function caml_atomic_cas(ref, o, n){ + if(ref[1] === o){ref[1] = n; return 1;} + return 0; + } + function caml_copysign_float(x, y){ + if(y == 0) y = 1 / y; + x = Math.abs(x); + return y < 0 ? - x : x; + } + function caml_gr_set_text_size(size){ + var s = caml_gr_state_get(); + s.text_size = size; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0; + } + function caml_atomic_load(ref){return ref[1];} + function caml_MD5Final(ctx){ + var in_buf = ctx.len & 0x3f; + ctx.b8[in_buf] = 0x80; + in_buf++; + if(in_buf > 56){ + for(var j = in_buf; j < 64; j++) ctx.b8[j] = 0; + caml_MD5Transform(ctx.w, ctx.b32); + for(var j = 0; j < 56; j++) ctx.b8[j] = 0; + } + else + for(var j = in_buf; j < 56; j++) ctx.b8[j] = 0; + ctx.b32[14] = ctx.len << 3; + ctx.b32[15] = ctx.len >> 29 & 0x1FFFFFFF; + caml_MD5Transform(ctx.w, ctx.b32); + var t = new Uint8Array(16); + for(var i = 0; i < 4; i++) + for(var j = 0; j < 4; j++) t[i * 4 + j] = ctx.w[i] >> 8 * j & 0xFF; + return t; + } + function caml_md5_bytes(s, ofs, len){ + var ctx = caml_MD5Init(), a = caml_uint8_array_of_bytes(s); + caml_MD5Update(ctx, a.subarray(ofs, ofs + len), len); + return caml_string_of_array(caml_MD5Final(ctx)); + } + function caml_ba_set_generic(ba, i, v){ + ba.set(ba.offset(caml_js_from_array(i)), v); + return 0; + } + function caml_ml_condition_wait(t, mutext){return 0;} + function caml_string_lessequal(s1, s2){return s1 <= s2 ? 1 : 0;} + function caml_string_greaterequal(s1, s2){return caml_string_lessequal(s2, s1); + } + function caml_nextafter_float(x, y){ + if(isNaN(x) || isNaN(y)) return NaN; + if(x == y) return y; + if(x == 0) return y < 0 ? - Math.pow(2, - 1074) : Math.pow(2, - 1074); + var bits = caml_int64_bits_of_float(x), one = caml_int64_of_int32(1); + if(x < y == x > 0) + bits = caml_int64_add(bits, one); + else + bits = caml_int64_sub(bits, one); + return caml_int64_float_of_bits(bits); + } + function caml_gr_size_y(){var s = caml_gr_state_get(); return s.height;} + function ml_z_fac2(i){ + if(i <= 0) caml_invalid_argument("Z.fact2: negative arguments"); + return ml_z_facM(i, 2); + } + function caml_pos_in(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.offset - (chan.buffer_max - chan.buffer_curr) | 0; + } + function caml_ml_pos_in(chanid){return caml_pos_in(chanid);} + function caml_int64_and(x, y){return x.and(y);} + function caml_sys_const_word_size(){return 32;} + function ml_z_bin(n, k){ + var n = bigInt(n), k = bigInt(k), coeff = bigInt(1); + for(var x = n.minus(k).add(bigInt(1)); x.leq(n); x = x.add(bigInt(1))) + coeff = coeff.multiply(x); + for(x = bigInt(1); x.leq(k); x = x.add(bigInt(1))) + coeff = coeff.divide(x); + return ml_z_normalize(coeff); + } + function caml_runtime_events_pause(){return 0;} + function caml_unix_unlink(name){ + var root = resolve_fs_device(name); + if(! root.device.unlink) + caml_failwith("caml_unix_unlink: not implemented"); + return root.device.unlink(root.rest, true); + } + function caml_sys_open_for_node(fd, flags){ + if(flags.name) + try{ + var fs = require("fs"), fd2 = fs.openSync(flags.name, "rs"); + return new MlNodeFd(fd2, flags); + } + catch(e){} + return new MlNodeFd(fd, flags); + } + function MlFakeFd_out(fd, flags){ + MlFakeFile.call(this, caml_create_bytes(0)); + this.log = function(s){return 0;}; + if(fd == 1 && typeof console.log == "function") + this.log = console.log; + else if(fd == 2 && typeof console.error == "function") + this.log = console.error; + else if(typeof console.log == "function") this.log = console.log; + this.flags = flags; + } + MlFakeFd_out.prototype.length = function(){return 0;}; + MlFakeFd_out.prototype.write = + function(offset, buf, pos, len){ + if(this.log){ + if + (len > 0 && pos >= 0 && pos + len <= buf.length + && buf[pos + len - 1] == 10) + len--; + var src = caml_create_bytes(len); + caml_blit_bytes(caml_bytes_of_array(buf), pos, src, 0, len); + this.log(src.toUtf16()); + return 0; + } + caml_raise_sys_error(this.fd + ": file descriptor already closed"); + }; + MlFakeFd_out.prototype.read = + function(offset, buf, pos, len){ + caml_raise_sys_error(this.fd + ": file descriptor is write only"); + }; + MlFakeFd_out.prototype.close = function(){this.log = undefined;}; + function caml_sys_open_internal(file, idx){ + if(idx == undefined) idx = caml_sys_fds.length; + caml_sys_fds[idx] = file; + return idx | 0; + } + function caml_sys_open(name, flags, _perms){ + var f = {}; + while(flags){ + switch(flags[1]){ + case 0: + f.rdonly = 1; break; + case 1: + f.wronly = 1; break; + case 2: + f.append = 1; break; + case 3: + f.create = 1; break; + case 4: + f.truncate = 1; break; + case 5: + f.excl = 1; break; + case 6: + f.binary = 1; break; + case 7: + f.text = 1; break; + case 8: + f.nonblock = 1; break; + } + flags = flags[2]; + } + if(f.rdonly && f.wronly) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + " : flags Open_rdonly and Open_wronly are not compatible"); + if(f.text && f.binary) + caml_raise_sys_error + (caml_jsbytes_of_string(name) + + " : flags Open_text and Open_binary are not compatible"); + var root = resolve_fs_device(name), file = root.device.open(root.rest, f); + return caml_sys_open_internal(file, undefined); + } + (function(){ + function file(fd, flags){ + return fs_node_supported() + ? caml_sys_open_for_node(fd, flags) + : new MlFakeFd_out(fd, flags); + } + caml_sys_open_internal + (file(0, {rdonly: 1, altname: "/dev/stdin", isCharacterDevice: true}), + 0); + caml_sys_open_internal + (file(1, {buffered: 2, wronly: 1, isCharacterDevice: true}), 1); + caml_sys_open_internal + (file(2, {buffered: 2, wronly: 1, isCharacterDevice: true}), 2); + } + ()); + function ml_z_gcd(z1, z2){ + return ml_z_normalize(bigInt.gcd(bigInt(z1), bigInt(z2)).abs()); + } + function ml_z_hamdist(z1, z2){ + if(bigInt(z1).isNegative() != bigInt(z2).isNegative()) + caml_raise_constant(caml_named_value("ml_z_overflow")); + if + ((z1 != (z1 | 0) || z2 != (z2 | 0)) + && (bigInt(z1).isNegative() || bigInt(z2).isNegative())) + caml_invalid_argument("Z.hamdist: negative arguments"); + return ml_z_popcount(bigInt(z1).xor(bigInt(z2))); + } + function ml_z_mul(z1, z2){ + return ml_z_normalize(bigInt(z1).multiply(bigInt(z2))); + } + function caml_string_get(s, i){ + if(i >>> 0 >= caml_ml_string_length(s)) caml_string_bound_error(); + return caml_string_unsafe_get(s, i); + } + var + re_match = + function(){ + var + re_word_letters = [0x00, 0x00, 0x00, @@ -5517,4398 +6822,17729 @@ 0xFF, 0x7F, 0xFF], - opcodes= - {CHAR:0, - CHARNORM:1, - STRING:2, - STRINGNORM:3, - CHARCLASS:4, - BOL:5, - EOL:6, - WORDBOUNDARY:7, - BEGGROUP:8, - ENDGROUP:9, - REFGROUP:10, - ACCEPT:11, - SIMPLEOPT:12, - SIMPLESTAR:13, - SIMPLEPLUS:14, - GOTO:15, - PUSHBACK:16, - SETMARK:17, - CHECKPROGRESS:18}; - function is_word_letter(c) - {return re_word_letters[c >> 3] >> (c & 7) & 1} - function in_bitset(s,i) - {return caml_string_get(s,i >> 3) >> (i & 7) & 1} - function re_match_impl(re,s,pos,partial) - {var - prog=caml_js_from_array(re[1]), - cpool=caml_js_from_array(re[2]), - normtable=caml_jsbytes_of_string(re[3]), - numgroups=re[4] | 0, - numregisters=re[5] | 0, - startchars=re[6] | 0, - s=caml_uint8_array_of_string(s), - pc=0, - quit=false, - stack=[], - groups=new Array(numgroups), - re_register=new Array(numregisters); - for(var i=0;i < groups.length;i++)groups[i] = {start:- 1,end:- 1}; - groups[0].start = pos; - function backtrack() - {while(stack.length) - {var item=stack.pop(); - if(item.undo) - item.undo.obj[item.undo.prop] = item.undo.value; - else - if(item.pos){pc = item.pos.pc;pos = item.pos.txt;return}} - quit = true} - function push(item){stack.push(item)} - function accept() - {groups[0].end = pos; - var result=new Array(1 + groups.length * 2); - result[0] = 0; - for(var i=0;i < groups.length;i++) - {var g=groups[i]; - if(g.start < 0 || g.end < 0)g.start = g.end = - 1; - result[2 * i + 1] = g.start; - result[2 * i + 1 + 1] = g.end} - return result} - function prefix_match() - {if(partial)return accept();else backtrack()} - while(! quit) - {var - op=prog[pc] & 0xff, - sarg=prog[pc] >> 8, - uarg=sarg & 0xff, - c=s[pos], - group; - pc++; - switch(op) - {case opcodes.CHAR: - if(pos === s.length){prefix_match();break} - if(c === uarg)pos++;else backtrack(); - break; - case opcodes.CHARNORM: - if(pos === s.length){prefix_match();break} - if(normtable.charCodeAt(c) === uarg)pos++;else backtrack(); - break; - case opcodes.STRING: - for - (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; - i - < - arg.length; - i++) - {if(pos === s.length){prefix_match();break} - if(c === arg.charCodeAt(i)) - c = s[++pos]; - else - {backtrack();break}} - break; - case opcodes.STRINGNORM: - for - (var arg=caml_jsbytes_of_string(cpool[uarg]),i=0; - i - < - arg.length; - i++) - {if(pos === s.length){prefix_match();break} - if(normtable.charCodeAt(c) === arg.charCodeAt(i)) - c = s[++pos]; - else - {backtrack();break}} - break; - case opcodes.CHARCLASS: - if(pos === s.length){prefix_match();break} - if(in_bitset(cpool[uarg],c))pos++;else backtrack(); - break; - case opcodes.BOL: - if(pos > 0 && s[pos - 1] != 10)backtrack();break; - case opcodes.EOL: - if(pos < s.length && s[pos] != 10)backtrack();break; - case opcodes.WORDBOUNDARY: - if(pos == 0) - {if(pos === s.length){prefix_match();break} - if(is_word_letter(s[0]))break; - backtrack()} - else - if(pos === s.length) - {if(is_word_letter(s[pos - 1]))break;backtrack()} - else - {if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) - break; - backtrack()} - break; - case opcodes.BEGGROUP: - group = groups[uarg]; - push({undo:{obj:group,prop:"start",value:group.start}}); - group.start = pos; - break; - case opcodes.ENDGROUP: - group = groups[uarg]; - push({undo:{obj:group,prop:"end",value:group.end}}); - group.end = pos; - break; - case opcodes.REFGROUP: - group = groups[uarg]; - if(group.start < 0 || group.end < 0){backtrack();break} - for(var i=group.start;i < group.end;i++) - {if(pos === s.length){prefix_match();break} - if(s[i] != s[pos]){backtrack();break} - pos++} - break; - case opcodes.SIMPLEOPT:if(in_bitset(cpool[uarg],c))pos++;break; - case opcodes.SIMPLESTAR: - while(in_bitset(cpool[uarg],c))c = s[++pos];break; - case opcodes.SIMPLEPLUS: - if(pos === s.length){prefix_match();break} - if(in_bitset(cpool[uarg],c)) - do c = s[++pos];while(in_bitset(cpool[uarg],c)); - else - backtrack(); - break; - case opcodes.ACCEPT:return accept(); - case opcodes.GOTO:pc = pc + sarg;break; - case opcodes.PUSHBACK:push({pos:{pc:pc + sarg,txt:pos}});break; - case opcodes.SETMARK: - push - ({undo:{obj:re_register,prop:uarg,value:re_register[uarg]}}); - re_register[uarg] = pos; - break; - case opcodes.CHECKPROGRESS: - if(re_register[uarg] === pos)backtrack();break; - default:throw new Error("Invalid bytecode")}} - return 0} - return re_match_impl} - (); - function re_search_backward(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_backward"); - while(pos >= 0){var res=re_match(re,s,pos,0);if(res)return res;pos--} - return [0]} - function ml_z_logand(z1,z2) - {return ml_z_normalize(bigInt(z1).and(bigInt(z2)))} - function caml_js_from_string(s){return caml_jsstring_of_string(s)} - function caml_ba_sub(ba,ofs,len) - {var changed_dim,mul=1; - if(ba.layout == 0) - {for(var i=1;i < ba.dims.length;i++)mul = mul * ba.dims[i]; - changed_dim = 0} - else - {for(var i=0;i < ba.dims.length - 1;i++)mul = mul * ba.dims[i]; - changed_dim = ba.dims.length - 1; - ofs = ofs - 1} - if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) - caml_invalid_argument("Bigarray.sub: bad sub-array"); - var new_dims=[]; - for(var i=0;i < ba.dims.length;i++)new_dims[i] = ba.dims[i]; - new_dims[changed_dim] = len; - mul *= caml_ba_get_size_per_element(ba.kind); - var new_data=ba.data.subarray(ofs * mul,(ofs + len) * mul); - return caml_ba_create_unsafe(ba.kind,ba.layout,new_dims,new_data)} - function caml_gc_full_major(unit) - {if(typeof globalThis.gc == "function")globalThis.gc();return 0} - function caml_ml_mutex_try_lock(t) - {if(! t.locked){t.locked = true;return 1}return 0} - function caml_bytes_set32(s,i,i32) - {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); - var - b4=0xFF & i32 >> 24, - b3=0xFF & i32 >> 16, - b2=0xFF & i32 >> 8, - b1=0xFF & i32; - caml_bytes_unsafe_set(s,i + 0,b1); - caml_bytes_unsafe_set(s,i + 1,b2); - caml_bytes_unsafe_set(s,i + 2,b3); - caml_bytes_unsafe_set(s,i + 3,b4); - return 0} - function caml_gr_sigio_signal(){return 0} - function caml_ba_uint8_set32(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 3 >= ba.data.length)caml_array_bound_error(); - ba.set(ofs + 0,v & 0xff); - ba.set(ofs + 1,v >>> 8 & 0xff); - ba.set(ofs + 2,v >>> 16 & 0xff); - ba.set(ofs + 3,v >>> 24 & 0xff); - return 0} - function ml_z_div_rem(z1,z2){return [0,ml_z_div(z1,z2),ml_z_rem(z1,z2)]} - function caml_sys_const_ostype_unix(){return os_type == "Unix"?1:0} - function caml_unix_gmtime(t) - {var - d=new Date(t * 1000), - d_num=d.getTime(), - januaryfirst=new Date(Date.UTC(d.getUTCFullYear(),0,1)).getTime(), - doy=Math.floor((d_num - januaryfirst) / 86400000); - return [0, - d.getUTCSeconds(), - d.getUTCMinutes(), - d.getUTCHours(), - d.getUTCDate(), - d.getUTCMonth(), - d.getUTCFullYear() - 1900, - d.getUTCDay(), - doy, - false | 0]} - function caml_signbit_float(x){if(x == 0)x = 1 / x;return x < 0?1:0} - function caml_gr_set_line_width(w) - {var s=caml_gr_state_get(); - s.line_width = w; - s.context.lineWidth = w; - return 0} - function caml_gr_set_font(f) - {var s=caml_gr_state_get(); - s.font = f; - s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); - return 0} - function caml_gr_set_color(color) - {var s=caml_gr_state_get(); - function convert(number) - {var str="" + number.toString(16); - while(str.length < 2)str = "0" + str; - return str} - var r=color >> 16 & 0xff,g=color >> 8 & 0xff,b=color >> 0 & 0xff; - s.color = color; - var c_str="#" + convert(r) + convert(g) + convert(b); - s.context.fillStyle = c_str; - s.context.strokeStyle = c_str; - return 0} - function caml_gr_moveto(x,y) - {var s=caml_gr_state_get();s.x = x;s.y = y;return 0} - function caml_gr_resize_window(w,h) - {var s=caml_gr_state_get(); - s.width = w; - s.height = h; - s.canvas.width = w; - s.canvas.height = h; - return 0} - function caml_gr_state_init() - {caml_gr_moveto(caml_gr_state.x,caml_gr_state.y); - caml_gr_resize_window(caml_gr_state.width,caml_gr_state.height); - caml_gr_set_line_width(caml_gr_state.line_width); - caml_gr_set_text_size(caml_gr_state.text_size); - caml_gr_set_font(caml_gr_state.font); - caml_gr_set_color(caml_gr_state.color); - caml_gr_set_window_title(caml_gr_state.title); - caml_gr_state.context.textBaseline = "bottom"} - function caml_gr_current_x(){var s=caml_gr_state_get();return s.x} - function caml_ba_kind_of_typed_array(ta) - {var kind; - if(ta instanceof Float32Array) - kind = 0; - else - if(ta instanceof Float64Array) - kind = 1; - else - if(ta instanceof Int8Array) - kind = 2; - else - if(ta instanceof Uint8Array) - kind = 3; - else - if(ta instanceof Int16Array) - kind = 4; - else - if(ta instanceof Uint16Array) - kind = 5; - else - if(ta instanceof Int32Array) - kind = 6; - else - if(ta instanceof Uint32Array) - kind = 6; - else - caml_invalid_argument - ("caml_ba_kind_of_typed_array: unsupported kind"); - return kind} - function caml_ba_from_typed_array(ta) - {var kind=caml_ba_kind_of_typed_array(ta); - return caml_ba_create_unsafe(kind,0,[ta.length],ta)} - function caml_ml_seek_out(chanid,pos){return caml_seek_out(chanid,pos)} - function caml_js_typeof(o){return typeof o} - function caml_hash_mix_string(h,v) - {return caml_hash_mix_jsbytes(h,caml_jsbytes_of_string(v))} - function caml_string_hash(h,v) - {var h=caml_hash_mix_string(h,v),h=caml_hash_mix_final(h); - return h & 0x3FFFFFFF} - function caml_restore_raw_backtrace(exn,bt){return 0} - function caml_gr_lineto(x,y) - {var s=caml_gr_state_get(); - s.context.beginPath(); - s.context.moveTo(s.x,s.height - s.y); - s.context.lineTo(x,s.height - y); - s.context.stroke(); - s.x = x; - s.y = y; - return 0} - function caml_js_function_arity(f){return f.length} - function caml_js_wrap_meth_callback_unsafe(f) - {return function() - {var len=caml_js_function_arity(f) - 1,args=new Array(len + 1); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - return caml_callback(f,args)}} - function caml_ba_dim_3(ba){return caml_ba_dim(ba,2)} - function caml_is_special_exception(exn) - {switch(exn[2]){case - 8:case - 11:case - 12:return 1;default:return 0}} - function caml_format_exception(exn) - {var r=""; - if(exn[0] == 0) - {r += exn[1][1]; - if - (exn.length - == - 3 - && - exn[2][0] - == - 0 - && - caml_is_special_exception(exn[1])) - var bucket=exn[2],start=1; - else - var start=2,bucket=exn; - r += "("; - for(var i=start;i < bucket.length;i++) - {if(i > start)r += ", "; - var v=bucket[i]; - if(typeof v == "number") - r += v.toString(); - else - if(v instanceof MlBytes) - r += '"' + v.toString() + '"'; - else - if(typeof v == "string") - r += '"' + v.toString() + '"'; - else - r += "_"} - r += ")"} - else - if(exn[0] == 248)r += exn[1]; - return r} - function caml_fatal_uncaught_exception(err) - {if(err instanceof Array && (err[0] == 0 || err[0] == 248)) - {var handler=caml_named_value("Printexc.handle_uncaught_exception"); - if(handler) - caml_callback(handler,[err,false]); - else - {var - msg=caml_format_exception(err), - at_exit=caml_named_value("Pervasives.do_at_exit"); - if(at_exit)caml_callback(at_exit,[0]); - console.error("Fatal error: exception " + msg + "\n")}} - else - throw err} - function caml_ephe_check_data(x) - {return x[caml_ephe_data_offset] === undefined?0:1} - function caml_bytes_get16(s,i) - {if(i >>> 0 >= s.l - 1)caml_bytes_bound_error(); - var b1=caml_bytes_unsafe_get(s,i),b2=caml_bytes_unsafe_get(s,i + 1); - return b2 << 8 | b1} - function caml_obj_make_forward(b,v){b[0] = 250;b[1] = v;return 0} - function caml_js_from_bool(x){return ! ! x} - function caml_ml_set_channel_name(chanid,name) - {var chan=caml_ml_channels[chanid];chan.name = name;return 0} - function caml_exp2_float(x){return Math.pow(2,x)} - function caml_gr_close_graph() - {var s=caml_gr_state_get(); - s.canvas.width = 0; - s.canvas.height = 0; - return 0} - function caml_ml_domain_cpu_relax(unit){return 0} - function caml_create_string(len) - {if(len < 0)caml_invalid_argument("String.create"); - return new MlBytes(len?2:9,"",len)} - function caml_ml_input_block(chanid,ba,i,l) - {var - chan=caml_ml_channels[chanid], - n=l, - avail=chan.buffer_max - chan.buffer_curr; - if(l <= avail) - {ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + l),i); - chan.buffer_curr += l} - else - if(avail > 0) - {ba.set - (chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + avail),i); - chan.buffer_curr += avail; - n = avail} - else - {chan.buffer_curr = 0; - chan.buffer_max = 0; - caml_refill(chan); - var avail=chan.buffer_max - chan.buffer_curr; - if(n > avail)n = avail; - ba.set(chan.buffer.subarray(chan.buffer_curr,chan.buffer_curr + n),i); - chan.buffer_curr += n} - return n} - function caml_md5_chan(chanid,toread) - {var ctx=caml_MD5Init(),buffer=new Uint8Array(4096); - if(toread < 0) - while(true) - {var read=caml_ml_input_block(chanid,buffer,0,buffer.length); - if(read == 0)break; - caml_MD5Update(ctx,buffer.subarray(0,read),read)} - else - while(toread > 0) - {var - read= - caml_ml_input_block - (chanid,buffer,0,toread > buffer.length?buffer.length:toread); - if(read == 0)caml_raise_end_of_file(); - caml_MD5Update(ctx,buffer.subarray(0,read),read); - toread -= read} - return caml_string_of_array(caml_MD5Final(ctx))} - function caml_atanh_float(x){return Math.atanh(x)} - function caml_ml_condition_signal(t){return 0} - function caml_unix_findnext(dir_handle) - {return caml_unix_readdir(dir_handle)} - function caml_ml_output_bytes(chanid,buffer,offset,len) - {var chan=caml_ml_channels[chanid]; - if(! chan.opened) - caml_raise_sys_error("Cannot output to a closed channel"); - var buffer=caml_uint8_array_of_bytes(buffer); - buffer = buffer.subarray(offset,offset + len); - if(chan.buffer_curr + buffer.length > chan.buffer.length) - {var b=new Uint8Array(chan.buffer_curr + buffer.length); - b.set(chan.buffer); - chan.buffer = b} - switch(chan.buffered) - {case 0: - chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - caml_ml_flush(chanid); - break; - case 1: - chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid); - break; - case 2: - var id=buffer.lastIndexOf(10); - if(id < 0) - {chan.buffer.set(buffer,chan.buffer_curr); - chan.buffer_curr += buffer.length; - if(chan.buffer_curr >= chan.buffer.length)caml_ml_flush(chanid)} - else - {chan.buffer.set(buffer.subarray(0,id + 1),chan.buffer_curr); - chan.buffer_curr += id + 1; - caml_ml_flush(chanid); - chan.buffer.set(buffer.subarray(id + 1),chan.buffer_curr); - chan.buffer_curr += buffer.length - id - 1} - break + opcodes = + {CHAR: 0, + CHARNORM: 1, + STRING: 2, + STRINGNORM: 3, + CHARCLASS: 4, + BOL: 5, + EOL: 6, + WORDBOUNDARY: 7, + BEGGROUP: 8, + ENDGROUP: 9, + REFGROUP: 10, + ACCEPT: 11, + SIMPLEOPT: 12, + SIMPLESTAR: 13, + SIMPLEPLUS: 14, + GOTO: 15, + PUSHBACK: 16, + SETMARK: 17, + CHECKPROGRESS: 18}; + function is_word_letter(c){ + return re_word_letters[c >> 3] >> (c & 7) & 1; } - return 0} - function caml_ml_output(chanid,buffer,offset,len) - {return caml_ml_output_bytes - (chanid,caml_bytes_of_string(buffer),offset,len)} - function caml_ml_domain_id(unit){return caml_domain_id} - function caml_ephe_get_data(x) - {return x[caml_ephe_data_offset] === undefined - ?0 - :[0,x[caml_ephe_data_offset]]} - function caml_xmlhttprequest_create(unit) - {if(typeof globalThis.XMLHttpRequest !== "undefined") - try {return new (globalThis.XMLHttpRequest)()}catch(e){} - if(typeof globalThis.activeXObject !== "undefined") - {try - {return new (globalThis.activeXObject)("Msxml2.XMLHTTP")} - catch(e){} - try - {return new (globalThis.activeXObject)("Msxml3.XMLHTTP")} - catch(e){} - try - {return new (globalThis.activeXObject)("Microsoft.XMLHTTP")} - catch(e){}} - caml_failwith("Cannot create a XMLHttpRequest")} - function caml_trampoline_return(f,args) - {return {joo_tramp:f,joo_args:args}} - function caml_ml_is_buffered(chanid) - {return caml_ml_channels[chanid].buffered?1:0} - function caml_array_append(a1,a2) - {var l1=a1.length,l2=a2.length,l=l1 + l2 - 1,a=new Array(l); - a[0] = 0; - var i=1,j=1; - for(;i < l1;i++)a[i] = a1[i]; - for(;i < l;i++,j++)a[i] = a2[j]; - return a} - function caml_unix_gettimeofday(){return new Date().getTime() / 1000} - function caml_unix_time(){return Math.floor(caml_unix_gettimeofday())} - function caml_ml_set_channel_refill(chanid,f) - {caml_ml_channels[chanid].refill = f;return 0} - function ml_z_nextprime(z1) - {z1 = bigInt(z1); - var one=bigInt(1),two=bigInt(2); - if(z1.lt(one) || z1.equals(one))return 2; - if(z1.and(one).equals(one))z1 = z1.add(two);else z1 = z1.add(one); - while(true) - if(z1.isProbablePrime(25)) - return ml_z_normalize(z1); - else - z1 = z1.add(two)} - function caml_fill_bytes(s,i,l,c) - {if(l > 0) - if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) - if(c == 0) - {s.c = "";s.t = 2} - else - {s.c = caml_str_repeat(l,String.fromCharCode(c));s.t = l == s.l?0:2} - else - {if(s.t != 4)caml_convert_bytes_to_array(s); - for(l += i;i < l;i++)s.c[i] = c} - return 0} - function caml_js_expr(s) - {console.error("caml_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s))} - function caml_ml_runtime_warnings_enabled(_unit) - {return caml_runtime_warnings} - function ml_z_sub(z1,z2) - {return ml_z_normalize(bigInt(z1).subtract(bigInt(z2)))} - function ml_z_fdiv(z1,z2) - {var z1_pos=ml_z_sign(z1),z2_pos=ml_z_sign(z2); - if(z1_pos * z2_pos < 0) - if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) - return ml_z_sub(ml_z_div(z1,z2),bigInt(1)); - return ml_z_div(z1,z2)} - function ml_z_to_bits(z1) - {z1 = bigInt(z1).abs(); - var res=""; - while(! z1.equals(bigInt(0))) - {res += String.fromCharCode(z1.mod(bigInt(256))); - z1 = z1.divide(bigInt(256))} - while(res.length % 4 != 0)res += String.fromCharCode(0); - return caml_string_of_jsbytes(res)} - function caml_output_value_to_bytes(v,flags) - {return caml_bytes_of_array(caml_output_val(v,flags))} - function caml_eventlog_resume(unit){return 0} - function caml_md5_string(s,ofs,len) - {return caml_md5_bytes(caml_bytes_of_string(s),ofs,len)} - function caml_string_equal(s1,s2){return caml_bytes_equal(s1,s2)} - function caml_array_of_string(x){return caml_uint8_array_of_string(x)} - function caml_jsoo_flags_use_js_string(unit){return 0} - function ml_z_divexact(z1,z2){return ml_z_div(z1,z2)} - function caml_output_value_to_buffer(s,ofs,len,v,flags) - {var t=caml_output_val(v,flags); - if(t.length > len)caml_failwith("Marshal.to_buffer: buffer overflow"); - caml_blit_bytes(t,0,s,ofs,t.length); - return 0} - function re_replacement_text(repl,groups,orig) - {var - repl=caml_jsbytes_of_string(repl), - len=repl.length, - orig=caml_jsbytes_of_string(orig), - res="", - n=0, - cur, - start, - end, - c; - while(n < len) - {cur = repl.charAt(n++); - if(cur != "\\") - res += cur; - else - {if(n == len) - caml_failwith("Str.replace: illegal backslash sequence"); - cur = repl.charAt(n++); - switch(cur) - {case "\\":res += cur;break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - c = + cur; - if(c * 2 >= groups.length - 1) - caml_failwith("Str.replace: reference to unmatched group"); - start = caml_array_get(groups,c * 2); - end = caml_array_get(groups,c * 2 + 1); - if(start == - 1) - caml_failwith("Str.replace: reference to unmatched group"); - res += orig.slice(start,end); - break; - default:res += "\\" + cur}}} - return caml_string_of_jsbytes(res)} - function caml_pure_js_expr(s) - {console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); - return eval(caml_jsstring_of_string(s))} - function caml_blit_string(a,b,c,d,e) - {caml_blit_bytes(caml_bytes_of_string(a),b,c,d,e);return 0} - function blit_nat(nat1,ofs1,nat2,ofs2,len) - {for(var i=0;i < len;i++)nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; - return 0} - function caml_bigstring_blit_ba_to_bytes(ba1,pos1,bytes2,pos2,len) - {if(12 != ba1.kind) - caml_invalid_argument - ("caml_bigstring_blit_string_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs1=ba1.offset(pos1); - if(ofs1 + len > ba1.data.length)caml_array_bound_error(); - if(pos2 + len > caml_ml_bytes_length(bytes2))caml_array_bound_error(); - var slice=ba1.data.slice(ofs1,ofs1 + len); - caml_blit_bytes(caml_bytes_of_array(slice),0,bytes2,pos2,len); - return 0} - function caml_unix_stat(name) - {var root=resolve_fs_device(name); - if(! root.device.stat)caml_failwith("caml_unix_stat: not implemented"); - return root.device.stat(root.rest,true)} - function caml_register_named_value(nm,v) - {caml_named_values[caml_jsbytes_of_string(nm)] = v;return 0} - function jsoo_create_file_extern(name,content) - {if(globalThis.jsoo_create_file) - globalThis.jsoo_create_file(name,content); - else - {if(! globalThis.caml_fs_tmp)globalThis.caml_fs_tmp = []; - globalThis.caml_fs_tmp.push({name:name,content:content})} - return 0} - function caml_unix_stat_64(name) - {var r=caml_unix_stat(name);r[9] = caml_int64_of_int32(r[9])} - function caml_to_js_string(s){return caml_jsstring_of_string(s)} - function caml_ml_mutex_lock(t) - {if(t.locked) - caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); - else - t.locked = true; - return 0} - function re_search_forward(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.search_forward"); - while(pos <= caml_ml_string_length(s)) - {var res=re_match(re,s,pos,0);if(res)return res;pos++} - return [0]} - var caml_blit_string_to_bigstring=caml_bigstring_blit_string_to_ba; - function caml_make_vect(len,init) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 0; - for(var i=1;i < len;i++)b[i] = init; - return b} - function caml_ml_seek_in(chanid,pos){return caml_seek_in(chanid,pos)} - function caml_sys_read_directory(name) - {var - root=resolve_fs_device(name), - a=root.device.readdir(root.rest), - l=new Array(a.length + 1); - l[0] = 0; - for(var i=0;i < a.length;i++)l[i + 1] = caml_string_of_jsbytes(a[i]); - return l} - function caml_ml_output_char(chanid,c) - {var s=caml_string_of_jsbytes(String.fromCharCode(c)); - caml_ml_output(chanid,s,0,1); - return 0} - function caml_sys_const_ostype_win32(){return os_type == "Win32"?1:0} - function caml_obj_is_block(x){return + (x instanceof Array)} - function caml_obj_set_raw_field(o,i,v){return o[i + 1] = v} - function caml_js_var(x) - {var x=caml_jsstring_of_string(x); - if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) - console.error - ('caml_js_var: "' - + - x - + - '" is not a valid JavaScript variable. continuing ..'); - return eval(x)} - function caml_trunc_float(x){return Math.trunc(x)} - function caml_zarith_marshal(writer,v,sz) - {v = bigInt(v); - var bits=v.toArray(Math.pow(2,32)); - writer.write(8,bits.isNegative?1:0); - var block=bits.value.length,len=block * 4; - writer.write(32,len); - for(var i=block - 1;i >= 0;i--) - {writer.write(8,bits.value[i] >>> 0 & 0xff); - writer.write(8,bits.value[i] >>> 8 & 0xff); - writer.write(8,bits.value[i] >>> 16 & 0xff); - writer.write(8,bits.value[i] >>> 24 & 0xff)} - sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); - sz[1] = 8 * (1 + ((len + 7) / 8 | 0))} - function caml_ephe_unset_data(x) - {if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(x[1] instanceof globalThis.FinalizationRegistry) - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key)x[1].unregister(key)}} - x[caml_ephe_data_offset] = undefined; - return 0} - function caml_ephe_set_data(x,data) - {if(globalThis.FinalizationRegistry && globalThis.WeakRef) - if(! (x[1] instanceof globalThis.FinalizationRegistry)) - {x[1] - = - new - (globalThis.FinalizationRegistry) - (function(){caml_ephe_unset_data(x)}); - for(var j=caml_ephe_key_offset;j < x.length;j++) - {var key=x[j]; - if(key instanceof globalThis.WeakRef) - {key = key.deref();if(key)x[1].register(key,undefined,key)}}} - x[caml_ephe_data_offset] = data; - return 0} - function caml_ephe_blit_data(src,dst) - {var n=src[caml_ephe_data_offset]; - if(n === undefined) - caml_ephe_unset_data(dst); - else - caml_ephe_set_data(dst,n); - return 0} - function caml_is_printable(c){return + (c > 31 && c < 127)} - function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x)} - function caml_equal(x,y){return + (caml_compare_val(x,y,false) == 0)} - function re_partial_match(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.partial_match"); - var res=re_match(re,s,pos,1); - return res?res:[0]} - function caml_sys_random_seed() - {if(globalThis.crypto) - if(typeof globalThis.crypto.getRandomValues === "function") - {var a=new Uint32Array(1); - globalThis.crypto.getRandomValues(a); - return [0,a[0]]} - else - if(globalThis.crypto.randomBytes === "function") - {var buff=globalThis.crypto.randomBytes(4),a=new Uint32Array(buff); - return [0,a[0]]} - var now=new Date().getTime(),x=now ^ 0xffffffff * Math.random(); - return [0,x]} - var all_finalizers=new (globalThis.Set)(); - function caml_final_register_called_without_value(cb,a) - {if(globalThis.FinalizationRegistry && a instanceof Object) - {var - x= - new - (globalThis.FinalizationRegistry) - (function(x){all_finalizers.delete(x);cb(0);return}); - x.register(a,x); - all_finalizers.add(x)} - return 0} - function caml_ba_get_2(ba,i0,i1){return ba.get(ba.offset([i0,i1]))} - function caml_ba_uint8_set16(ba,i0,v) - {var ofs=ba.offset(i0); - if(ofs + 1 >= ba.data.length)caml_array_bound_error(); - ba.set(ofs + 0,v & 0xff); - ba.set(ofs + 1,v >>> 8 & 0xff); - return 0} - function caml_lazy_reset_to_lazy(o) - {caml_obj_update_tag(o,244,246);return 0} - function caml_js_delete(o,f){delete o[f];return 0} - function caml_int_of_string(s) - {var - r=caml_parse_sign_and_base(s), - i=r[0], - sign=r[1], - base=r[2], - len=caml_ml_string_length(s), - threshold=- 1 >>> 0, - c=i < len?caml_string_unsafe_get(s,i):0, - d=caml_parse_digit(c); - if(d < 0 || d >= base)caml_failwith("int_of_string"); - var res=d; - for(i++;i < len;i++) - {c = caml_string_unsafe_get(s,i); - if(c == 95)continue; - d = caml_parse_digit(c); - if(d < 0 || d >= base)break; - res = base * res + d; - if(res > threshold)caml_failwith("int_of_string")} - if(i != len)caml_failwith("int_of_string"); - res = sign * res; - if(base == 10 && (res | 0) != res)caml_failwith("int_of_string"); - return res | 0} - function caml_list_mount_point() - {var prev=0; - for(var i=0;i < jsoo_mount_point.length;i++) - {var old=prev; - prev = [0,caml_string_of_jsbytes(jsoo_mount_point[i].path),old]} - return prev} - var - caml_marshal_constants= - {PREFIX_SMALL_BLOCK:0x80, - PREFIX_SMALL_INT:0x40, - PREFIX_SMALL_STRING:0x20, - CODE_INT8:0x00, - CODE_INT16:0x01, - CODE_INT32:0x02, - CODE_INT64:0x03, - CODE_SHARED8:0x04, - CODE_SHARED16:0x05, - CODE_SHARED32:0x06, - CODE_BLOCK32:0x08, - CODE_BLOCK64:0x13, - CODE_STRING8:0x09, - CODE_STRING32:0x0A, - CODE_DOUBLE_BIG:0x0B, - CODE_DOUBLE_LITTLE:0x0C, - CODE_DOUBLE_ARRAY8_BIG:0x0D, - CODE_DOUBLE_ARRAY8_LITTLE:0x0E, - CODE_DOUBLE_ARRAY32_BIG:0x0F, - CODE_DOUBLE_ARRAY32_LITTLE:0x07, - CODE_CODEPOINTER:0x10, - CODE_INFIXPOINTER:0x11, - CODE_CUSTOM:0x12, - CODE_CUSTOM_LEN:0x18, - CODE_CUSTOM_FIXED:0x19}; - function caml_obj_raw_field(o,i){return o[i + 1]} - function caml_js_equals(x,y){return + (x == y)} - function caml_obj_compare_and_swap(x,i,old,n) - {if(x[i + 1] == old){x[i + 1] = n;return 1}return 0} - function bigstring_to_typed_array(bs){return bs.data} - function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1)} - function caml_gr_arc_aux(ctx,cx,cy,ry,rx,a1,a2) - {while(a1 > a2)a2 += 360; - a1 /= 180; - a2 /= 180; - var - rot=0, - xPos, - yPos, - xPos_prev, - yPos_prev, - space=2, - num=(a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, - delta=(a2 - a1) * Math.PI / num, - i=a1 * Math.PI; - for(var j=0;j <= num;j++) - {xPos - = - cx - - - rx - * - Math.sin(i) - * - Math.sin(rot * Math.PI) - + - ry - * - Math.cos(i) - * - Math.cos(rot * Math.PI); - xPos = xPos.toFixed(2); - yPos - = - cy - + - ry - * - Math.cos(i) - * - Math.sin(rot * Math.PI) - + - rx - * - Math.sin(i) - * - Math.cos(rot * Math.PI); - yPos = yPos.toFixed(2); - if(j == 0) - ctx.moveTo(xPos,yPos); - else - if(xPos_prev != xPos || yPos_prev != yPos)ctx.lineTo(xPos,yPos); - xPos_prev = xPos; - yPos_prev = yPos; - i -= delta} - return 0} - function caml_gr_fill_arc(x,y,rx,ry,a1,a2) - {var s=caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); - s.context.fill(); - return 0} - function caml_ba_slice(ba,vind) - {vind = caml_js_from_array(vind); - var num_inds=vind.length,index=[],sub_dims=[],ofs; - if(num_inds > ba.dims.length) - caml_invalid_argument("Bigarray.slice: too many indices"); - if(ba.layout == 0) - {for(var i=0;i < num_inds;i++)index[i] = vind[i]; - for(;i < ba.dims.length;i++)index[i] = 0; - sub_dims = ba.dims.slice(num_inds)} - else - {for(var i=0;i < num_inds;i++) - index[ba.dims.length - num_inds + i] = vind[i]; - for(var i=0;i < ba.dims.length - num_inds;i++)index[i] = 1; - sub_dims = ba.dims.slice(0,ba.dims.length - num_inds)} - ofs = ba.offset(index); - var - size=caml_ba_get_size(sub_dims), - size_per_element=caml_ba_get_size_per_element(ba.kind), - new_data= - ba.data.subarray - (ofs * size_per_element,(ofs + size) * size_per_element); - return caml_ba_create_unsafe(ba.kind,ba.layout,sub_dims,new_data)} - function ml_z_of_nativeint(i){return i | 0} - function caml_js_wrap_callback_unsafe(f) - {return function() - {var len=caml_js_function_arity(f),args=new Array(len); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_callback(f,args)}} - function caml_ba_kind(ba){return ba.kind} - function caml_js_fun_call(f,a) - {switch(a.length) - {case 1:return f(); - case 2:return f(a[1]); - case 3:return f(a[1],a[2]); - case 4:return f(a[1],a[2],a[3]); - case 5:return f(a[1],a[2],a[3],a[4]); - case 6:return f(a[1],a[2],a[3],a[4],a[5]); - case 7:return f(a[1],a[2],a[3],a[4],a[5],a[6]); - case 8:return f(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + function in_bitset(s, i){ + return caml_string_get(s, i >> 3) >> (i & 7) & 1; } - return f.apply(null,caml_js_from_array(a))} - function caml_gc_major_slice(work){return 0} - function ml_z_invert(a,n) - {a = bigInt(a); - n = bigInt(n); - var zero=bigInt(0),one=bigInt(1); - if(n.abs().equals(one))return 0; - if(n.equals(zero) && a.abs().equals(one))return a; - if(n.equals(zero) || a.equals(zero))caml_raise_zero_divide(); - var - x=ml_z_gcdext_intern(a,n), - r=bigInt(x[2]), - tmp=bigInt(a).multiply(r).mod(n); - if(tmp.lt(zero))tmp = tmp.add(n.abs()); - if(r.lt(zero))r = r.add(n.abs()); - if(tmp.equals(one))return ml_z_normalize(r); - caml_raise_zero_divide()} - function ml_z_powm(z1,z2,z3) - {var zero=bigInt(0),one=bigInt(1); - z1 = bigInt(z1); - z2 = bigInt(z2); - z3 = bigInt(z3); - if(z3.equals(zero))caml_raise_zero_divide(); - if(z3.abs().equals(one))return 0; - if(z2.equals(zero))return 1; - if(z2.lt(0)) - {var inv=bigInt(ml_z_invert(z1,z3)),r=inv.modPow(z2.negate(),z3); - if(r.lt(zero))r = r.add(z3.abs()); - return ml_z_normalize(r)} - else - {var r=bigInt(z1).modPow(z2,z3); - if(r.lt(zero))r = r.add(z3.abs()); - return ml_z_normalize(r)}} - function ml_z_powm_sec(z1,z2,z3) - {z3 = bigInt(z3).abs(); - var one=bigInt(1); - if(bigInt(z2).lt(one)) - caml_invalid_argument("Z.powm_sec: exponent must be positive"); - if(! bigInt(z3).and(one).equals(one)) - caml_invalid_argument("Z.powm_sec: modulus must be odd"); - return ml_z_powm(z1,z2,z3)} - function caml_js_pure_expr(f){return caml_callback(f,[0])} - function compare_digits_nat(nat1,ofs1,nat2,ofs2) - {if(nat1.data[ofs1] > nat2.data[ofs2])return 1; - if(nat1.data[ofs1] < nat2.data[ofs2])return - 1; - return 0} - function caml_ml_input(chanid,b,i,l) - {var ba=caml_uint8_array_of_bytes(b); - return caml_ml_input_block(chanid,ba,i,l)} - function caml_gr_wait_event(_evl) - {caml_failwith - ("caml_gr_wait_event not Implemented: use Graphics_js instead")} - function caml_gr_sigio_handler(){return 0} - function caml_hash_mix_bigstring(h,bs) - {return caml_hash_mix_bytes_arr(h,bs.data)} - function caml_record_backtrace(){return 0} - function caml_unix_cleanup(){} - function caml_sys_const_backend_type() - {return [0,caml_string_of_jsbytes("js_of_ocaml")]} - function caml_sys_get_config() - {return [0,caml_string_of_jsbytes(os_type),32,0]} - function caml_obj_is_shared(x){return 1} - function caml_ml_out_channels_list() - {var l=0; - for(var c=0;c < caml_ml_channels.length;c++) - if - (caml_ml_channels[c] - && - caml_ml_channels[c].opened - && - caml_ml_channels[c].out) - l = [0,caml_ml_channels[c].fd,l]; - return l} - function caml_asinh_float(x){return Math.asinh(x)} - function ml_z_hash(z1) - {var a=bigInt(z1).toArray(Math.pow(2,32)),acc=0; - for(var i=0;i < a.value.length;i++) - acc = caml_hash_mix_int(acc,a.value[i]); - if(a.value.length % 2 != 0)acc = caml_hash_mix_int(acc,0); - if(a.isNegative)acc = acc + 1; - return acc | 0} - function caml_pos_out(chanid) - {var chan=caml_ml_channels[chanid];return chan.offset + chan.buffer_curr} - function bigstring_of_array_buffer(ab) - {var ta=new Uint8Array(ab); - return caml_ba_create_unsafe(12,0,[ta.length],ta)} - function caml_mod(x,y){if(y == 0)caml_raise_zero_divide();return x % y} - function caml_ba_init(){return 0} - function caml_unix_filedescr_of_fd(x){return x} - function re_string_match(re,s,pos) - {if(pos < 0 || pos > caml_ml_string_length(s)) - caml_invalid_argument("Str.string_match"); - var res=re_match(re,s,pos,0); - return res?res:[0]} - function BigStringReader(bs,i){this.s = bs;this.i = i} - BigStringReader.prototype - = - {read8u:function(){return caml_ba_get_1(this.s,this.i++)}, - read8s:function(){return caml_ba_get_1(this.s,this.i++) << 24 >> 24}, - read16u: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return caml_ba_get_1(s,i) << 8 | caml_ba_get_1(s,i + 1)}, - read16s: - function() - {var s=this.s,i=this.i; - this.i = i + 2; - return caml_ba_get_1(s,i) << 24 >> 16 | caml_ba_get_1(s,i + 1)}, - read32u: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return (caml_ba_get_1(s,i) - << - 24 - | - caml_ba_get_1(s,i + 1) - << - 16 - | - caml_ba_get_1(s,i + 2) - << - 8 - | - caml_ba_get_1(s,i + 3)) - >>> - 0}, - read32s: - function() - {var s=this.s,i=this.i; - this.i = i + 4; - return caml_ba_get_1(s,i) - << - 24 - | - caml_ba_get_1(s,i + 1) - << - 16 - | - caml_ba_get_1(s,i + 2) - << - 8 - | - caml_ba_get_1(s,i + 3)}, - readstr: - function(len) - {var i=this.i,arr=new Array(len); - for(var j=0;j < len;j++)arr[j] = caml_ba_get_1(this.s,i + j); - this.i = i + len; - return caml_string_of_array(arr)}}; - function caml_gr_dump_image(im) - {var data=[0]; - for(var i=0;i < im.height;i++) - {data[i + 1] = [0]; - for(var j=0;j < im.width;j++) - {var - o=i * (im.width * 4) + j * 4, - r=im.data[o + 0], - g=im.data[o + 1], - b=im.data[o + 2]; - data[i + 1][j + 1] = (r << 16) + (g << 8) + b}} - return data} - function caml_ba_get_generic(ba,i) - {var ofs=ba.offset(caml_js_from_array(i));return ba.get(ofs)} - function caml_unix_startup(){} - function caml_get_exception_backtrace(){return 0} - function caml_format_float(fmt,x) - {function toFixed(x,dp) - {if(Math.abs(x) < 1.0) - return x.toFixed(dp); - else - {var e=parseInt(x.toString().split("+")[1]); - if(e > 20) - {e -= 20; - x /= Math.pow(10,e); - x += new Array(e + 1).join("0"); - if(dp > 0)x = x + "." + new Array(dp + 1).join("0"); - return x} - else - return x.toFixed(dp)}} - var s,f=caml_parse_format(fmt),prec=f.prec < 0?6:f.prec; - if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1;x = - x} - if(isNaN(x)) - {s = "nan";f.filler = " "} - else - if(! isFinite(x)) - {s = "inf";f.filler = " "} - else - switch(f.conv) - {case "e": - var s=x.toExponential(prec),i=s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0,i - 1) + "0" + s.slice(i - 1); - break; - case "f":s = toFixed(x,prec);break; - case "g": - prec = prec?prec:1; - s = x.toExponential(prec - 1); - var j=s.indexOf("e"),exp=+ s.slice(j + 1); - if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec) - {var i=j - 1; - while(s.charAt(i) == "0")i--; - if(s.charAt(i) == ".")i--; - s = s.slice(0,i + 1) + s.slice(j); - i = s.length; - if(s.charAt(i - 3) == "e") - s = s.slice(0,i - 1) + "0" + s.slice(i - 1); - break} - else - {var p=prec; - if(exp < 0) - {p -= exp + 1;s = x.toFixed(p)} - else - while(s = x.toFixed(p),s.length > prec + 1)p--; - if(p) - {var i=s.length - 1; - while(s.charAt(i) == "0")i--; - if(s.charAt(i) == ".")i--; - s = s.slice(0,i + 1)}} - break + function re_match_impl(re, s, pos, partial){ + var + prog = caml_js_from_array(re[1]), + cpool = caml_js_from_array(re[2]), + normtable = caml_jsbytes_of_string(re[3]), + numgroups = re[4] | 0, + numregisters = re[5] | 0, + startchars = re[6] | 0, + s = caml_uint8_array_of_string(s), + pc = 0, + quit = false, + stack = [], + groups = new Array(numgroups), + re_register = new Array(numregisters); + for(var i = 0; i < groups.length; i++) + groups[i] = {start: - 1, end: - 1}; + groups[0].start = pos; + function backtrack(){ + while(stack.length){ + var item = stack.pop(); + if(item.undo) + item.undo.obj[item.undo.prop] = item.undo.value; + else if(item.pos){pc = item.pos.pc; pos = item.pos.txt; return;} } - return caml_finish_formatting(f,s)} - function caml_mount_autoload(name,f) - {var path=caml_make_path(name),name=caml_trailing_slash(path.join("/")); - jsoo_mount_point.push({path:name,device:new MlFakeDevice(name,f)}); - return 0} - function ml_z_equal(z1,z2){return bigInt(z1).equals(bigInt(z2))?1:0} - function ml_z_fits_int64(z1) - {z1 = bigInt(z1); - return z1.compare(bigInt("9223372036854775807")) - <= - 0 - && - z1.compare(bigInt("-9223372036854775808")) - >= - 0 - ?1 - :0} - function caml_bigstring_blit_ba_to_ba(ba1,pos1,ba2,pos2,len) - {if(12 != ba1.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(12 != ba2.kind) - caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); - if(len == 0)return 0; - var ofs1=ba1.offset(pos1),ofs2=ba2.offset(pos2); - if(ofs1 + len > ba1.data.length)caml_array_bound_error(); - if(ofs2 + len > ba2.data.length)caml_array_bound_error(); - var slice=ba1.data.subarray(ofs1,ofs1 + len); - ba2.data.set(slice,pos2); - return 0} - var caml_blit_bigstring_to_bigstring=caml_bigstring_blit_ba_to_ba; - function ml_z_sqrt_rem(z) - {z = bigInt(z); - var zero=bigInt(0); - if(z.lt(zero)) - caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); - var - root=bigInt(ml_z_root(z,2)), - mul=root.multiply(root), - diff=z.subtract(mul); - return [0,ml_z_normalize(root),ml_z_normalize(diff)]} - function caml_string_lessthan(s1,s2){return caml_bytes_lessthan(s1,s2)} - function caml_string_greaterthan(s1,s2) - {return caml_string_lessthan(s2,s1)} - function caml_div(x,y) - {if(y == 0)caml_raise_zero_divide();return x / y | 0} - function caml_obj_dup(x) - {var l=x.length,a=new Array(l); - for(var i=0;i < l;i++)a[i] = x[i]; - return a} - function caml_ephe_get_data_copy(x) - {return x[caml_ephe_data_offset] === undefined - ?0 - :[0,caml_obj_dup(x[caml_ephe_data_offset])]} - function caml_memprof_start(rate,stack_size,tracker){return 0} - function ml_z_perfect_square(z) - {z = bigInt(z); - if(z.lt(bigInt(0)))return 0; - var root=bigInt(ml_z_root(z,2)); - return root.multiply(root).eq(z)?1:0} - function caml_sys_get_argv(a){return [0,caml_argv[1],caml_argv]} - function caml_ml_domain_set_name(_name){return 0} - function caml_js_to_bool(x){return + x} - function caml_gr_create_image(x,y) - {var s=caml_gr_state_get();return s.context.createImageData(x,y)} - function caml_ephe_get_key_copy(x,i) - {if(i < 0 || caml_ephe_key_offset + i >= x.length) - caml_invalid_argument("Weak.get_copy"); - var y=caml_ephe_get_key(x,i); - if(y === 0)return y; - var z=y[1]; - if(z instanceof Array)return [0,caml_obj_dup(z)]; - return y} - function caml_lessthan(x,y){return + (caml_compare_val(x,y,false) < 0)} - function caml_raw_backtrace_next_slot(){return 0} - function ml_z_to_nativeint(z1){return ml_z_to_int(z1)} - function caml_register_global(n,v,name_opt) - {if(name_opt && globalThis.toplevelReloc) - n = caml_callback(globalThis.toplevelReloc,[name_opt]); - caml_global_data[n + 1] = v; - if(name_opt)caml_global_data[name_opt] = v} - function mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat3,ofs3,len3) - {var carry=0; - for(var i=0;i < len3;i++) - carry - += - mult_digit_nat(nat1,ofs1 + i,len1 - i,nat2,ofs2,len2,nat3,ofs3 + i); - return carry} - function square_nat(nat1,ofs1,len1,nat2,ofs2,len2) - {var carry=0; - carry += add_nat(nat1,ofs1,len1,nat1,ofs1,len1,0); - carry += mult_nat(nat1,ofs1,len1,nat2,ofs2,len2,nat2,ofs2,len2); - return carry} - function caml_js_from_float(x){return x} - function caml_floatarray_create(len) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 254; - for(var i=1;i < len;i++)b[i] = 0; - return b} - function caml_gc_stat(){return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]} - function caml_get_major_credit(n){return 0} - function caml_sys_modify_argv(arg){caml_argv = arg;return 0} - var caml_method_cache=[]; - function caml_get_public_method(obj,tag,cacheid) - {var meths=obj[1],ofs=caml_method_cache[cacheid]; - if(ofs === undefined) - for(var i=caml_method_cache.length;i < cacheid;i++) - caml_method_cache[i] = 0; - else - if(meths[ofs] === tag)return meths[ofs - 1]; - var li=3,hi=meths[1] * 2 + 1,mi; - while(li < hi) - {mi = li + hi >> 1 | 1;if(tag < meths[mi + 1])hi = mi - 2;else li = mi} - caml_method_cache[cacheid] = li + 1; - return tag == meths[li + 1]?meths[li]:0} - function caml_js_get_console() - {var - c=console, - m= - ["log", - "debug", - "info", - "warn", - "error", - "assert", - "dir", - "dirxml", - "trace", - "group", - "groupCollapsed", - "groupEnd", - "time", - "timeEnd"]; - function f(){} - for(var i=0;i < m.length;i++)if(! c[m[i]])c[m[i]] = f; - return c} - function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name)} - function caml_ml_open_descriptor_in(fd) - {var file=caml_sys_fds[fd]; - if(file.flags.wronly)caml_raise_sys_error("fd " + fd + " is writeonly"); - var - refill=null, - channel= - {file:file, - offset:file.flags.append?file.length():0, - fd:fd, - opened:true, - out:false, - buffer_curr:0, - buffer_max:0, - buffer:new Uint8Array(65536), - refill:refill}; - caml_ml_channels[channel.fd] = channel; - return channel.fd} - function bigstring_of_typed_array(ba) - {var - ta= - new - Uint8Array - (ba.buffer,ba.byteOffset,ba.length * ba.BYTES_PER_ELEMENT); - return caml_ba_create_unsafe(12,0,[ta.length],ta)} - function caml_round_float(x){return Math.round(x)} - function ml_z_of_bits(z1) - {var r=bigInt.zero,base1=bigInt(256),base=bigInt.one; - for(var i=0;i < caml_ml_string_length(z1);i++) - {var d=caml_string_unsafe_get(z1,i); - r = bigInt(base).multiply(d).add(r); - base = bigInt(base).multiply(base1)} - return ml_z_normalize(r)} - function caml_ojs_new_arr(c,a) - {switch(a.length) - {case 0:return new c(); - case 1:return new c(a[0]); - case 2:return new c(a[0],a[1]); - case 3:return new c(a[0],a[1],a[2]); - case 4:return new c(a[0],a[1],a[2],a[3]); - case 5:return new c(a[0],a[1],a[2],a[3],a[4]); - case 6:return new c(a[0],a[1],a[2],a[3],a[4],a[5]); - case 7:return new c(a[0],a[1],a[2],a[3],a[4],a[5],a[6]) - } - function F(){return c.apply(this,a)} - F.prototype = c.prototype; - return new F()} - function complement_nat(nat,ofs,len) - {for(var i=0;i < len;i++) - nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0)} - function ml_z_logxor(z1,z2) - {return ml_z_normalize(bigInt(z1).xor(bigInt(z2)))} - var caml_domain_dls=[0]; - function caml_domain_dls_set(a){caml_domain_dls = a} - function caml_lazy_read_result(o){return caml_obj_tag(o) == 250?o[1]:o} - var caml_js_regexps={amp:/&/g,lt:/ 1023) - {exp -= 1023; - x *= Math.pow(2,1023); - if(exp > 1023){exp -= 1023;x *= Math.pow(2,1023)}} - if(exp < - 1023){exp += 1023;x *= Math.pow(2,- 1023)} - x *= Math.pow(2,exp); - return x} - function caml_gr_state_set(ctx) - {caml_gr_state = ctx;caml_gr_state_init();return 0} - function caml_zarith_unmarshal(reader,sz) - {var negate; - switch(reader.read8u()) - {case 1:negate = true;break; - case 0:negate = false;break; - default:caml_failwith("input_value: z (malformed input)")} - var len=reader.read32u(),x=bigInt(0); - for(var i=0;i < len / 4;i++) - {var y=bigInt(reader.read8u()); - y = y.add(reader.read8u() << 8); - y = y.add(reader.read8u() << 16); - y = y.add(reader.read8u() << 24 >>> 0); - x = y.shiftLeft(i * 32).add(x)} - if(negate)x = x.negate(); - sz[0] = len + 4; - return ml_z_normalize(x)} - function ml_z_trailing_zeros(z) - {z = bigInt(z).abs(); - var zero=bigInt(0),one=bigInt(1); - if(z.equals(zero))return 0x7fffffff; - var i=0; - z = z.xor(z.prev()).shiftRight(1); - for(i = 0;! z.equals(bigInt.zero);i++)z = z.shiftRight(1); - return i} - function caml_js_wrap_callback_strict(arity,f) - {return function() - {var - n=arguments.length, - args=new Array(arity), - len=Math.min(arguments.length,arity); - for(var i=0;i < len;i++)args[i] = arguments[i]; - return caml_callback(f,args)}} - function caml_gc_minor_words(unit){return 0} - function caml_get_current_callstack(){return [0]} - function land_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] &= nat2.data[ofs2];return 0} - function caml_int64_mod(x,y){return x.mod(y)} - function caml_obj_set_tag(x,tag){x[0] = tag;return 0} - function caml_int32_bswap(x) - {return (x & 0x000000FF) - << - 24 - | - (x & 0x0000FF00) - << - 8 - | - (x & 0x00FF0000) - >>> - 8 - | - (x & 0xFF000000) - >>> - 24} - function caml_ba_set_3(ba,i0,i1,i2,v) - {ba.set(ba.offset([i0,i1,i2]),v);return 0} - function ml_z_jacobi(n,k) - {n = bigInt(n); - k = bigInt(k); - if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) - caml_invalid_argument("Z.jacobi: second argument is negative or even"); - n = n.mod(k); - if(n.lt(bigInt(0)))n = n.add(k); - var t=1; - while(! n.equals(bigInt(0))) - {while(n.isDivisibleBy(bigInt(2))) - {n = n.divide(bigInt(2)); - var r=k.mod(bigInt(8)); - if(r.equals(bigInt(3)) || r.equals(bigInt(5)))t = - t} - var n1=n,k1=k; - n = k1; - k = n1; - if - (n.mod(bigInt(4)).equals(bigInt(3)) - && - k.mod(bigInt(4)).equals(bigInt(3))) - t = - t; - n = n.mod(k)} - return k.equals(bigInt(1))?t:0} - function ml_z_legendre(a,b){return ml_z_jacobi(a,b)} - function caml_js_instanceof(o,c){return o instanceof c?1:0} - function caml_get_major_bucket(n){return 0} - var caml_blit_bigstring_to_string=caml_bigstring_blit_ba_to_bytes; - function set_digit_nat_native(nat,ofs,digit) - {nat.data[ofs] = digit;return 0} - function nth_digit_nat_native(nat,ofs){return nat.data[ofs]} - function caml_string_set64(s,i,i64){return caml_bytes_set64(s,i,i64)} - function caml_gr_state_create(canvas,w,h) - {var context=canvas.getContext("2d"); - return {context:context, - canvas:canvas, - x:0, - y:0, - width:w, - height:h, - line_width:1, - font:caml_string_of_jsbytes("fixed"), - text_size:26, - color:0x000000, - title:caml_string_of_jsbytes("")}} - function caml_gr_draw_arc(x,y,rx,ry,a1,a2) - {var s=caml_gr_state_get(); - s.context.beginPath(); - caml_gr_arc_aux(s.context,x,s.height - y,rx,ry,a1,a2); - s.context.stroke(); - return 0} - function caml_ba_map_file(vfd,kind,layout,shared,dims,pos) - {caml_failwith("caml_ba_map_file not implemented")} - function caml_ba_map_file_bytecode(argv,argn) - {return caml_ba_map_file(argv[0],argv[1],argv[2],argv[3],argv[4],argv[5])} - function caml_ba_create_from(data1,data2,jstyp,kind,layout,dims) - {if(data2 || caml_ba_get_size_per_element(kind) == 2) - caml_invalid_argument - ("caml_ba_create_from: use return caml_ba_create_unsafe"); - return caml_ba_create_unsafe(kind,layout,dims,data1)} - function caml_tanh_float(x){return Math.tanh(x)} - function caml_gr_draw_str(str) - {var s=caml_gr_state_get(),m=s.context.measureText(str),dx=m.width; - s.context.fillText(str,s.x,s.height - s.y); - s.x += dx | 0; - return 0} - function caml_gr_draw_string(str) - {caml_gr_draw_str(caml_jsstring_of_string(str));return 0} - function ml_z_primorial(a) - {var one=bigInt(1),two=bigInt(2),z1=one,res=one; - a = bigInt(a); - while(z1.leq(a)) - {if(z1.isProbablePrime(25))res = res.multiply(z1); - if(z1.equals(one) || z1.equals(two)) - z1 = z1.add(one); - else - z1 = z1.add(two)} - return ml_z_normalize(res)} - function caml_gr_draw_char(c) - {caml_gr_draw_str(String.fromCharCode(c));return 0} - function caml_unmount(name) - {var - path=caml_make_path(name), - name=caml_trailing_slash(path.join("/")), - idx=- 1; - for(var i=0;i < jsoo_mount_point.length;i++) - if(jsoo_mount_point[i].path == name)idx = i; - if(idx > - 1)jsoo_mount_point.splice(idx,1); - return 0} - function ml_z_fib(i) - {if(i < 0)caml_invalid_argument("Z.fib: negative arguments"); - if(i == 0 || i == 1)return i; - var a=bigInt(0),b=bigInt(1); - for(var k=1;k < i;k++){var b2=b;b = a.add(b);a = b2} - return ml_z_normalize(b)} - function caml_input_value_from_string(s,ofs) - {var reader=new MlStringReader(s,typeof ofs == "number"?ofs:ofs[0]); - return caml_input_value_from_reader(reader,ofs)} - function caml_ml_pos_in_64(chanid) - {return caml_int64_of_float(caml_pos_in(chanid))} - function caml_gr_draw_image(im,x,y) - {var s=caml_gr_state_get(); - if(! im.image) - {var canvas=document.createElement("canvas"); - canvas.width = s.width; - canvas.height = s.height; - canvas.getContext("2d").putImageData(im,0,0); - var image=new (globalThis.Image)(); - image.onload - = - function() - {s.context.drawImage(image,x,s.height - im.height - y); - im.image = image}; - image.src = canvas.toDataURL("image/png")} - else - s.context.drawImage(im.image,x,s.height - im.height - y); - return 0} - function caml_register_channel_for_spacetime(_channel){return 0} - function caml_string_set(s,i,c) - {if(i >>> 0 >= s.l)caml_string_bound_error(); - return caml_string_unsafe_set(s,i,c)} - function caml_sys_rmdir(name) - {var root=resolve_fs_device(name);root.device.rmdir(root.rest);return 0} - function caml_unix_symlink(to_dir,src,dst) - {var src_root=resolve_fs_device(src),dst_root=resolve_fs_device(dst); - if(src_root.device != dst_root.device) - caml_failwith - ("caml_unix_symlink: cannot symlink between two filesystems"); - if(! src_root.device.symlink) - caml_failwith("caml_unix_symlink: not implemented"); - return src_root.device.symlink(to_dir,src_root.rest,dst_root.rest,true)} - function caml_ml_pos_out(chanid){return caml_pos_out(chanid)} - function caml_spacetime_enabled(_unit){return 0} - function caml_bytes_notequal(s1,s2){return 1 - caml_bytes_equal(s1,s2)} - function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("")} - function caml_js_object(a) - {var o={}; - for(var i=1;i < a.length;i++) - {var p=a[i];o[caml_jsstring_of_string(p[1])] = p[2]} - return o} - function caml_ba_create(kind,layout,dims_ml) - {var - dims=caml_js_from_array(dims_ml), - data=caml_ba_create_buffer(kind,caml_ba_get_size(dims)); - return caml_ba_create_unsafe(kind,layout,dims,data)} - function caml_gr_remember_mode() - {caml_failwith("caml_gr_remember_mode not Implemented")} - function caml_fma_float(x,y,z) - {var - SPLIT=Math.pow(2,27) + 1, - MIN_VALUE=Math.pow(2,- 1022), - EPSILON=Math.pow(2,- 52), - C=416, - A=Math.pow(2,+ C), - B=Math.pow(2,- C); - function multiply(a,b) - {var - at=SPLIT * a, - ahi=at - (at - a), - alo=a - ahi, - bt=SPLIT * b, - bhi=bt - (bt - b), - blo=b - bhi, - p=a * b, - e=ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; - return {p:p,e:e}} - function add(a,b) - {var s=a + b,v=s - a,e=a - (s - v) + (b - v);return {s:s,e:e}} - function adjust(x,y) - {return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x - ?x * (1 + (x < 0?- 1:+ 1) * (y < 0?- 1:+ 1) * EPSILON) - :x} - if - (x - === - 0 - || - x - !== - x - || - x - === - + - (1 / 0) - || - x - === - - - (1 / 0) - || - y - === - 0 - || - y - !== - y - || - y - === - + - (1 / 0) - || - y - === - - - (1 / 0)) - return x * y + z; - if(z === 0)return x * y; - if(z !== z || z === + (1 / 0) || z === - (1 / 0))return z; - var scale=1; - while(Math.abs(x) > A){scale *= A;x *= B} - while(Math.abs(y) > A){scale *= A;y *= B} - if(scale === 1 / 0)return x * y * scale; - while(Math.abs(x) < B){scale *= B;x *= A} - while(Math.abs(y) < B){scale *= B;y *= A} - if(scale === 0)return z; - var xs=x,ys=y,zs=z / scale; - if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON)return z; - if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) - zs = (z < 0?- 1:+ 1) * MIN_VALUE; - var - xy=multiply(xs,ys), - s=add(xy.p,zs), - u=add(xy.e,s.e), - i=add(s.s,u.s), - f=i.s + adjust(i.e,u.e); - if(f === 0)return f; - var fs=f * scale; - if(Math.abs(fs) > MIN_VALUE)return fs; - return fs + adjust(f - fs / scale,i.e) * scale} - function caml_recommended_domain_count(unit){return 1} - function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8} - function caml_ml_set_binary_mode(chanid,mode) - {var chan=caml_ml_channels[chanid]; - chan.file.flags.text = ! mode; - chan.file.flags.binary = mode; - return 0} - function caml_final_register(){return 0} - function caml_gr_draw_rect(x,y,w,h) - {var s=caml_gr_state_get(); - s.context.strokeRect(x,s.height - y,w,- h); - return 0} - function caml_string_get16(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 1)caml_string_bound_error(); - var b1=caml_string_unsafe_get(s,i),b2=caml_string_unsafe_get(s,i + 1); - return b2 << 8 | b1} - function caml_output_value(chanid,v,flags) - {var s=caml_output_value_to_string(v,flags); - caml_ml_output(chanid,s,0,caml_ml_string_length(s)); - return 0} - function caml_ba_get_3(ba,i0,i1,i2){return ba.get(ba.offset([i0,i1,i2]))} - function caml_ephe_blit_key(a1,i1,a2,i2,len) - {caml_array_blit - (a1,caml_ephe_key_offset + i1 - 1,a2,caml_ephe_key_offset + i2 - 1,len); - return 0} - function ml_z_to_int32(z1){return ml_z_to_int(z1)} - var caml_initial_time=new Date().getTime() * 0.001; - function caml_sys_time() - {var now=new Date().getTime();return now * 0.001 - caml_initial_time} - function caml_sys_time_include_children(b){return caml_sys_time()} - function caml_check_bound(array,index) - {if(index >>> 0 >= array.length - 1)caml_array_bound_error(); - return array} - function caml_unix_getpwuid(unit){caml_raise_not_found()} - function ml_z_compare(z1,z2){return bigInt(z1).compare(bigInt(z2))} - function caml_hash(count,limit,seed,obj) - {var queue,rd,wr,sz,num,h,v,i,len; - sz = limit; - if(sz < 0 || sz > 256)sz = 256; - num = count; - h = seed; - queue = [obj]; - rd = 0; - wr = 1; - while(rd < wr && num > 0) - {v = queue[rd++]; - if(v && v.caml_custom) - {if - (caml_custom_ops[v.caml_custom] - && - caml_custom_ops[v.caml_custom].hash) - {var hh=caml_custom_ops[v.caml_custom].hash(v); - h = caml_hash_mix_int(h,hh); - num--}} - else - if(v instanceof Array && v[0] === (v[0] | 0)) - switch(v[0]) - {case 248:h = caml_hash_mix_int(h,v[2]);num--;break; - case 250:queue[--rd] = v[1];break; - default: - if(caml_is_continuation_tag(v[0]))break; - var tag=v.length - 1 << 10 | v[0]; - h = caml_hash_mix_int(h,tag); - for(i = 1,len = v.length;i < len;i++) - {if(wr >= sz)break;queue[wr++] = v[i]} - break} - else - if(caml_is_ml_bytes(v)) - {h = caml_hash_mix_bytes(h,v);num--} - else - if(caml_is_ml_string(v)) - {h = caml_hash_mix_string(h,v);num--} - else - if(typeof v === "string") - {h = caml_hash_mix_jsbytes(h,v);num--} - else - if(v === (v | 0)) - {h = caml_hash_mix_int(h,v + v + 1);num--} + quit = true; + } + function push(item){stack.push(item);} + function accept(){ + groups[0].end = pos; + var result = new Array(1 + groups.length * 2); + result[0] = 0; + for(var i = 0; i < groups.length; i++){ + var g = groups[i]; + if(g.start < 0 || g.end < 0) g.start = g.end = - 1; + result[2 * i + 1] = g.start; + result[2 * i + 1 + 1] = g.end; + } + return result; + } + function prefix_match(){ + if(partial) return accept(); else backtrack(); + } + while(! quit){ + var + op = prog[pc] & 0xff, + sarg = prog[pc] >> 8, + uarg = sarg & 0xff, + c = s[pos], + group; + pc++; + switch(op){ + case opcodes.CHAR: + if(pos === s.length){prefix_match(); break;} + if(c === uarg) pos++; else backtrack(); + break; + case opcodes.CHARNORM: + if(pos === s.length){prefix_match(); break;} + if(normtable.charCodeAt(c) === uarg) pos++; else backtrack(); + break; + case opcodes.STRING: + for + (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; + i < arg.length; + i++){ + if(pos === s.length){prefix_match(); break;} + if(c === arg.charCodeAt(i)) + c = s[++pos]; + else{backtrack(); break;} + } + break; + case opcodes.STRINGNORM: + for + (var arg = caml_jsbytes_of_string(cpool[uarg]), i = 0; + i < arg.length; + i++){ + if(pos === s.length){prefix_match(); break;} + if(normtable.charCodeAt(c) === arg.charCodeAt(i)) + c = s[++pos]; + else{backtrack(); break;} + } + break; + case opcodes.CHARCLASS: + if(pos === s.length){prefix_match(); break;} + if(in_bitset(cpool[uarg], c)) pos++; else backtrack(); + break; + case opcodes.BOL: + if(pos > 0 && s[pos - 1] != 10) backtrack(); break; + case opcodes.EOL: + if(pos < s.length && s[pos] != 10) backtrack(); break; + case opcodes.WORDBOUNDARY: + if(pos == 0){ + if(pos === s.length){prefix_match(); break;} + if(is_word_letter(s[0])) break; + backtrack(); + } + else if(pos === s.length){ + if(is_word_letter(s[pos - 1])) break; + backtrack(); + } + else{ + if(is_word_letter(s[pos - 1]) != is_word_letter(s[pos])) break; + backtrack(); + } + break; + case opcodes.BEGGROUP: + group = groups[uarg]; + push({undo: {obj: group, prop: "start", value: group.start}}); + group.start = pos; + break; + case opcodes.ENDGROUP: + group = groups[uarg]; + push({undo: {obj: group, prop: "end", value: group.end}}); + group.end = pos; + break; + case opcodes.REFGROUP: + group = groups[uarg]; + if(group.start < 0 || group.end < 0){backtrack(); break;} + for(var i = group.start; i < group.end; i++){ + if(pos === s.length){prefix_match(); break;} + if(s[i] != s[pos]){backtrack(); break;} + pos++; + } + break; + case opcodes.SIMPLEOPT: + if(in_bitset(cpool[uarg], c)) pos++; break; + case opcodes.SIMPLESTAR: + while(in_bitset(cpool[uarg], c)) c = s[++pos]; break; + case opcodes.SIMPLEPLUS: + if(pos === s.length){prefix_match(); break;} + if(in_bitset(cpool[uarg], c)) + do c = s[++pos];while(in_bitset(cpool[uarg], c)); else - if(v === + v){h = caml_hash_mix_float(h,v);num--}} - h = caml_hash_mix_final(h); - return h & 0x3FFFFFFF} - function caml_ba_to_typed_array(ba){return ba.data} - function caml_domain_dls_get(unit){return caml_domain_dls} - function caml_bytes_get32(s,i) - {if(i >>> 0 >= s.l - 3)caml_bytes_bound_error(); - var - b1=caml_bytes_unsafe_get(s,i), - b2=caml_bytes_unsafe_get(s,i + 1), - b3=caml_bytes_unsafe_get(s,i + 2), - b4=caml_bytes_unsafe_get(s,i + 3); - return b4 << 24 | b3 << 16 | b2 << 8 | b1} - function caml_frexp_float(x) - {if(x == 0 || ! isFinite(x))return [0,x,0]; - var neg=x < 0; - if(neg)x = - x; - var exp=Math.max(- 1023,jsoo_floor_log2(x) + 1); - x *= Math.pow(2,- exp); - while(x < 0.5){x *= 2;exp--} - while(x >= 1){x *= 0.5;exp++} - if(neg)x = - x; - return [0,x,exp]} - function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev())} - function caml_string_get64(s,i) - {if(i >>> 0 >= caml_ml_string_length(s) - 7)caml_string_bound_error(); - var a=new Array(8); - for(var j=0;j < 8;j++)a[7 - j] = caml_string_unsafe_get(s,i + j); - return caml_int64_of_bytes(a)} - function caml_js_error_option_of_exception(exn) - {if(exn.js_error)return [0,exn.js_error];return 0} - function caml_ml_pos_out_64(chanid) - {return caml_int64_of_float(caml_pos_out(chanid))} - function ml_z_extract(z1,pos,len) - {z1 = bigInt(z1); - return ml_z_normalize - (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1)))} - function ml_z_remove(a,b) - {var zero=bigInt(0),one=bigInt(1); - a = bigInt(a); - b = bigInt(b); - if(b.equals(zero))caml_raise_zero_divide(); - if(a.equals(zero) || b.abs().equals(one))return [0,a,0]; - var i=0; - while(a.isDivisibleBy(b)){a = a.divide(b);i++} - return [0,ml_z_normalize(a),i]} - function ml_z_of_float(f1) - {if(f1 == Infinity || f1 == - Infinity || f1 != f1) - caml_raise_constant(caml_named_value("ml_z_overflow")); - return ml_z_normalize(bigInt(f1 < 0?Math.ceil(f1):Math.floor(f1)))} - function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not())} - function caml_unix_findclose(dir_handle) - {return caml_unix_closedir(dir_handle)} - function caml_gr_close_subwindow(a) - {caml_failwith("caml_gr_close_subwindow not Implemented")} - function caml_floatarray_blit(a1,i1,a2,i2,len) - {if(i2 <= i1) - for(var j=1;j <= len;j++)a2[i2 + j] = a1[i1 + j]; - else - for(var j=len;j >= 1;j--)a2[i2 + j] = a1[i1 + j]; - return 0} - function caml_get_minor_free(unit){return 0} - function caml_set_static_env(k,v) - {if(! globalThis.jsoo_static_env)globalThis.jsoo_static_env = {}; - globalThis.jsoo_static_env[k] = v; - return 0} - function caml_ba_change_layout(ba,layout) - {if(ba.layout == layout)return ba; - var new_dims=[]; - for(var i=0;i < ba.dims.length;i++) - new_dims[i] = ba.dims[ba.dims.length - i - 1]; - return caml_ba_create_unsafe(ba.kind,layout,new_dims,ba.data)} - function caml_js_new(c,a) - {switch(a.length) - {case 1:return new c(); - case 2:return new c(a[1]); - case 3:return new c(a[1],a[2]); - case 4:return new c(a[1],a[2],a[3]); - case 5:return new c(a[1],a[2],a[3],a[4]); - case 6:return new c(a[1],a[2],a[3],a[4],a[5]); - case 7:return new c(a[1],a[2],a[3],a[4],a[5],a[6]); - case 8:return new c(a[1],a[2],a[3],a[4],a[5],a[6],a[7]) + backtrack(); + break; + case opcodes.ACCEPT: return accept(); + case opcodes.GOTO: + pc = pc + sarg; break; + case opcodes.PUSHBACK: + push({pos: {pc: pc + sarg, txt: pos}}); break; + case opcodes.SETMARK: + push + ({undo: {obj: re_register, prop: uarg, value: re_register[uarg]}}); + re_register[uarg] = pos; + break; + case opcodes.CHECKPROGRESS: + if(re_register[uarg] === pos) backtrack(); break; + default: throw new Error("Invalid bytecode"); + } + } + return 0; } - function F(){return c.apply(this,caml_js_from_array(a))} - F.prototype = c.prototype; - return new F()} - function caml_gr_current_y(){var s=caml_gr_state_get();return s.y} - function caml_format_int(fmt,i) - {if(caml_jsbytes_of_string(fmt) == "%d") - return caml_string_of_jsbytes("" + i); - var f=caml_parse_format(fmt); - if(i < 0)if(f.signedconv){f.sign = - 1;i = - i}else i >>>= 0; - var s=i.toString(f.base); - if(f.prec >= 0) - {f.filler = " "; - var n=f.prec - s.length; - if(n > 0)s = caml_str_repeat(n,"0") + s} - return caml_finish_formatting(f,s)} - function jsoo_effect_not_supported() - {caml_failwith("Effect handlers are not supported")} - function caml_continuation_use_and_update_handler_noexc - (cont,hval,hexn,heff) - {var stack=caml_continuation_use_noexc(cont); - stack[3] = [0,hval,hexn,heff]; - return stack} - function caml_obj_truncate(x,s) - {if(s <= 0 || s + 1 > x.length)caml_invalid_argument("Obj.truncate"); - if(x.length != s + 1)x.length = s + 1; - return 0} - function caml_js_to_string(s){return caml_string_of_jsstring(s)} - function is_digit_odd(nat,ofs){if(nat.data[ofs] & 1)return 1;return 0} - function caml_runtime_variant(_unit){return caml_string_of_jsbytes("")} - function caml_ml_open_descriptor_out(fd) - {var file=caml_sys_fds[fd]; - if(file.flags.rdonly)caml_raise_sys_error("fd " + fd + " is readonly"); - var - buffered=file.flags.buffered !== undefined?file.flags.buffered:1, - channel= - {file:file, - offset:file.flags.append?file.length():0, - fd:fd, - opened:true, - out:true, - buffer_curr:0, - buffer:new Uint8Array(65536), - buffered:buffered}; - caml_ml_channels[channel.fd] = channel; - return channel.fd} - function caml_array_concat(l) - {var a=[0]; - while(l !== 0) - {var b=l[1];for(var i=1;i < b.length;i++)a.push(b[i]);l = l[2]} - return a} - function caml_gr_open_graph(info) - {var info=caml_jsstring_of_string(info); - function get(name) - {var res=info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); - if(res)return res[2]} - var specs=[]; - if(! (info == ""))specs.push(info); - var target=get("target"); - if(! target)target = ""; - var status=get("status"); - if(! status)specs.push("status=1"); - var w=get("width"); - w = w?parseInt(w):200; - specs.push("width=" + w); - var h=get("height"); - h = h?parseInt(h):200; - specs.push("height=" + h); - var win=globalThis.open("about:blank",target,specs.join(",")); - if(! win)caml_failwith("Graphics.open_graph: cannot open the window"); - var doc=win.document,canvas=doc.createElement("canvas"); - canvas.width = w; - canvas.height = h; - var ctx=caml_gr_state_create(canvas,w,h); - ctx.set_title = function(title){doc.title = title}; - caml_gr_state_set(ctx); - var body=doc.body; - body.style.margin = "0px"; - body.appendChild(canvas); - return 0} - function caml_make_float_vect(len) - {if(len < 0)caml_array_bound_error(); - var len=len + 1 | 0,b=new Array(len); - b[0] = 254; - for(var i=1;i < len;i++)b[i] = 0; - return b} - function caml_cbrt_float(x){return Math.cbrt(x)} - function caml_memprof_stop(unit){return 0} - function caml_eventlog_pause(unit){return 0} - function caml_greaterequal(x,y) - {return + (caml_compare_val(x,y,false) >= 0)} - function ml_z_numbits(z1) - {z1 = bigInt(z1).abs(); - var n=0,upperBound=bigInt.one; - while(upperBound.leq(z1)){n += 1;upperBound = upperBound.multiply(2)} - return n} - function caml_get_exception_raw_backtrace(){return [0]} - function caml_log1p_float(x){return Math.log1p(x)} - function caml_lazy_make_forward(v){return [250,v]} - function lor_digit_nat(nat1,ofs1,nat2,ofs2) - {nat1.data[ofs1] |= nat2.data[ofs2];return 0} - function caml_gr_blit_image(im,x,y) - {var - s=caml_gr_state_get(), - im2= - s.context.getImageData(x,s.height - im.height - y,im.width,im.height); - for(var i=0;i < im2.data.length;i += 4) - {im.data[i] = im2.data[i]; - im.data[i + 1] = im2.data[i + 1]; - im.data[i + 2] = im2.data[i + 2]; - im.data[i + 3] = im2.data[i + 3]} - return 0} - function caml_gr_window_id(a) - {caml_failwith("caml_gr_window_id not Implemented")} - function caml_js_on_ie() - {var ua=globalThis.navigator?globalThis.navigator.userAgent:""; - return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0} - function caml_int64_shift_right(x,s){return x.shift_right(s)} - function caml_ba_layout(ba){return ba.layout} - function caml_convert_raw_backtrace(){return [0]} - function caml_array_set(array,index,newval) - {if(index < 0 || index >= array.length - 1)caml_array_bound_error(); - array[index + 1] = newval; - return 0} - function caml_alloc_stack(hv,hx,hf){return 0} - function caml_bytes_greaterequal(s1,s2) - {return caml_bytes_lessequal(s2,s1)} - function ml_z_perfect_power(z) - {z = bigInt(z); - var zero=bigInt(0),one=bigInt(1); - if(z.equals(zero) || z.equals(one) || z.equals(one.negate()))return 1; - var log2z=ml_z_numbits(z.abs()); - for(var b=2;b <= log2z;b++) - {if(z.lt(zero) && b % 2 == 0)continue; - var zp=z.abs(),p=bigInt(ml_z_root(zp,b)); - if(z.lt(zero))p = p.negate(); - var r=bigInt(ml_z_pow(p,b)); - if(z.equals(r))return 1} - return 0} - function set_digit_nat(nat,ofs,digit){nat.data[ofs] = digit;return 0} - function ml_z_init(unit) - {caml_custom_ops["_z"] - = - {serialize:caml_zarith_marshal, - deserialize:caml_zarith_unmarshal, - hash:ml_z_hash, - compare:ml_z_compare}; - return 0} - function caml_gr_doc_of_state(state) - {if(state.canvas.ownerDocument)return state.canvas.ownerDocument} - function caml_ml_output_int(chanid,i) - {var - arr=[i >> 24 & 0xFF,i >> 16 & 0xFF,i >> 8 & 0xFF,i & 0xFF], - s=caml_string_of_array(arr); - caml_ml_output(chanid,s,0,4); - return 0} - function caml_obj_with_tag(tag,x) - {var l=x.length,a=new Array(l); - a[0] = tag; - for(var i=1;i < l;i++)a[i] = x[i]; - return a} - function caml_ml_channel_size(chanid) - {var chan=caml_ml_channels[chanid];return chan.file.length()} - function caml_raw_backtrace_slot() - {caml_invalid_argument - ("Printexc.get_raw_backtrace_slot: index out of bounds")} - function caml_hexstring_of_float(x,prec,style) - {if(! isFinite(x)) - {if(isNaN(x))return caml_string_of_jsstring("nan"); - return caml_string_of_jsstring(x > 0?"infinity":"-infinity")} - var sign=x == 0 && 1 / x == - Infinity?1:x >= 0?0:1; - if(sign)x = - x; - var exp=0; - if(x == 0) - ; + return re_match_impl; + } + (); + function re_search_backward(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_backward"); + while(pos >= 0){ + var res = re_match(re, s, pos, 0); + if(res) return res; + pos--; + } + return [0]; + } + function ml_z_logand(z1, z2){ + return ml_z_normalize(bigInt(z1).and(bigInt(z2))); + } + function caml_js_from_string(s){return caml_jsstring_of_string(s);} + function caml_ba_sub(ba, ofs, len){ + var changed_dim, mul = 1; + if(ba.layout == 0){ + for(var i = 1; i < ba.dims.length; i++) mul = mul * ba.dims[i]; + changed_dim = 0; + } + else{ + for(var i = 0; i < ba.dims.length - 1; i++) mul = mul * ba.dims[i]; + changed_dim = ba.dims.length - 1; + ofs = ofs - 1; + } + if(ofs < 0 || len < 0 || ofs + len > ba.dims[changed_dim]) + caml_invalid_argument("Bigarray.sub: bad sub-array"); + var new_dims = []; + for(var i = 0; i < ba.dims.length; i++) new_dims[i] = ba.dims[i]; + new_dims[changed_dim] = len; + mul *= caml_ba_get_size_per_element(ba.kind); + var new_data = ba.data.subarray(ofs * mul, (ofs + len) * mul); + return caml_ba_create_unsafe(ba.kind, ba.layout, new_dims, new_data); + } + function caml_gc_full_major(unit){ + if(typeof globalThis.gc == "function") globalThis.gc(); + return 0; + } + function caml_ml_mutex_try_lock(t){ + if(! t.locked){t.locked = true; return 1;} + return 0; + } + function caml_bytes_set32(s, i, i32){ + if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); + var + b4 = 0xFF & i32 >> 24, + b3 = 0xFF & i32 >> 16, + b2 = 0xFF & i32 >> 8, + b1 = 0xFF & i32; + caml_bytes_unsafe_set(s, i + 0, b1); + caml_bytes_unsafe_set(s, i + 1, b2); + caml_bytes_unsafe_set(s, i + 2, b3); + caml_bytes_unsafe_set(s, i + 3, b4); + return 0; + } + function caml_gr_sigio_signal(){return 0;} + function caml_ba_uint8_set32(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 3 >= ba.data.length) caml_array_bound_error(); + ba.set(ofs + 0, v & 0xff); + ba.set(ofs + 1, v >>> 8 & 0xff); + ba.set(ofs + 2, v >>> 16 & 0xff); + ba.set(ofs + 3, v >>> 24 & 0xff); + return 0; + } + function ml_z_div_rem(z1, z2){ + return [0, ml_z_div(z1, z2), ml_z_rem(z1, z2)]; + } + function caml_sys_const_ostype_unix(){return os_type == "Unix" ? 1 : 0;} + function caml_unix_gmtime(t){ + var + d = new Date(t * 1000), + d_num = d.getTime(), + januaryfirst = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)).getTime(), + doy = Math.floor((d_num - januaryfirst) / 86400000); + return [0, + d.getUTCSeconds(), + d.getUTCMinutes(), + d.getUTCHours(), + d.getUTCDate(), + d.getUTCMonth(), + d.getUTCFullYear() - 1900, + d.getUTCDay(), + doy, + false | 0]; + } + function caml_signbit_float(x){if(x == 0) x = 1 / x; return x < 0 ? 1 : 0;} + function caml_gr_current_x(){var s = caml_gr_state_get(); return s.x;} + function caml_gr_set_line_width(w){ + var s = caml_gr_state_get(); + s.line_width = w; + s.context.lineWidth = w; + return 0; + } + function caml_gr_set_font(f){ + var s = caml_gr_state_get(); + s.font = f; + s.context.font = s.text_size + "px " + caml_jsstring_of_string(s.font); + return 0; + } + function caml_gr_set_color(color){ + var s = caml_gr_state_get(); + function convert(number){ + var str = "" + number.toString(16); + while(str.length < 2) str = "0" + str; + return str; + } + var r = color >> 16 & 0xff, g = color >> 8 & 0xff, b = color >> 0 & 0xff; + s.color = color; + var c_str = "#" + convert(r) + convert(g) + convert(b); + s.context.fillStyle = c_str; + s.context.strokeStyle = c_str; + return 0; + } + function caml_gr_moveto(x, y){ + var s = caml_gr_state_get(); + s.x = x; + s.y = y; + return 0; + } + function caml_gr_resize_window(w, h){ + var s = caml_gr_state_get(); + s.width = w; + s.height = h; + s.canvas.width = w; + s.canvas.height = h; + return 0; + } + function caml_gr_state_init(){ + caml_gr_moveto(caml_gr_state.x, caml_gr_state.y); + caml_gr_resize_window(caml_gr_state.width, caml_gr_state.height); + caml_gr_set_line_width(caml_gr_state.line_width); + caml_gr_set_text_size(caml_gr_state.text_size); + caml_gr_set_font(caml_gr_state.font); + caml_gr_set_color(caml_gr_state.color); + caml_gr_set_window_title(caml_gr_state.title); + caml_gr_state.context.textBaseline = "bottom"; + } + function caml_ba_kind_of_typed_array(ta){ + var kind; + if(ta instanceof Float32Array) + kind = 0; + else if(ta instanceof Float64Array) + kind = 1; + else if(ta instanceof Int8Array) + kind = 2; + else if(ta instanceof Uint8Array) + kind = 3; + else if(ta instanceof Int16Array) + kind = 4; + else if(ta instanceof Uint16Array) + kind = 5; + else if(ta instanceof Int32Array) + kind = 6; + else if(ta instanceof Uint32Array) + kind = 6; + else + caml_invalid_argument("caml_ba_kind_of_typed_array: unsupported kind"); + return kind; + } + function caml_ba_from_typed_array(ta){ + var kind = caml_ba_kind_of_typed_array(ta); + return caml_ba_create_unsafe(kind, 0, [ta.length], ta); + } + function caml_ml_seek_out(chanid, pos){return caml_seek_out(chanid, pos);} + function caml_js_typeof(o){return typeof o;} + function caml_hash_mix_string(h, v){ + return caml_hash_mix_jsbytes(h, caml_jsbytes_of_string(v)); + } + function caml_string_hash(h, v){ + var h = caml_hash_mix_string(h, v), h = caml_hash_mix_final(h); + return h & 0x3FFFFFFF; + } + function caml_restore_raw_backtrace(exn, bt){return 0;} + function caml_gr_lineto(x, y){ + var s = caml_gr_state_get(); + s.context.beginPath(); + s.context.moveTo(s.x, s.height - s.y); + s.context.lineTo(x, s.height - y); + s.context.stroke(); + s.x = x; + s.y = y; + return 0; + } + function caml_js_function_arity(f){return f.l >= 0 ? f.l : f.l = f.length;} + function caml_js_wrap_meth_callback_unsafe(f){ + return function(){ + var len = caml_js_function_arity(f) - 1, args = new Array(len + 1); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_ba_dim_3(ba){return caml_ba_dim(ba, 2);} + function caml_is_special_exception(exn){ + switch(exn[2]){case - 8:case - 11:case - 12: return 1;default: return 0; + } + } + function caml_format_exception(exn){ + var r = ""; + if(exn[0] == 0){ + r += exn[1][1]; + if + (exn.length == 3 && exn[2][0] == 0 && caml_is_special_exception(exn[1])) + var bucket = exn[2], start = 1; + else + var start = 2, bucket = exn; + r += "("; + for(var i = start; i < bucket.length; i++){ + if(i > start) r += ", "; + var v = bucket[i]; + if(typeof v == "number") + r += v.toString(); + else if(v instanceof MlBytes) + r += '"' + v.toString() + '"'; + else if(typeof v == "string") + r += '"' + v.toString() + '"'; else - if(x < 1) - while(x < 1 && exp > - 1022){x *= 2;exp--} - else - while(x >= 2){x /= 2;exp++} - var exp_sign=exp < 0?"":"+",sign_str=""; - if(sign) - sign_str = "-"; - else - switch(style) - {case 43:sign_str = "+";break; - case 32:sign_str = " ";break; - default:break} - if(prec >= 0 && prec < 13) - {var cst=Math.pow(2,prec * 4);x = Math.round(x * cst) / cst} - var x_str=x.toString(16); - if(prec >= 0) - {var idx=x_str.indexOf("."); - if(idx < 0) - x_str += "." + caml_str_repeat(prec,"0"); - else - {var size=idx + 1 + prec; - if(x_str.length < size) - x_str += caml_str_repeat(size - x_str.length,"0"); - else - x_str = x_str.substr(0,size)}} - return caml_string_of_jsstring - (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10))} - function caml_js_wrap_meth_callback_strict(arity,f) - {return function() - {var args=new Array(arity + 1),len=Math.min(arguments.length,arity); - args[0] = this; - for(var i=0;i < len;i++)args[i + 1] = arguments[i]; - return caml_callback(f,args)}} - function ml_z_format(fmt,z1) - {z1 = bigInt(z1); + r += "_"; + } + r += ")"; + } + else if(exn[0] == 248) r += exn[1]; + return r; + } + function caml_fatal_uncaught_exception(err){ + if(err instanceof Array && (err[0] == 0 || err[0] == 248)){ + var handler = caml_named_value("Printexc.handle_uncaught_exception"); + if(handler) + caml_callback(handler, [err, false]); + else{ var - fmt=caml_jsbytes_of_string(fmt), - base=10, - cas=0, - width=0, - alt=0, - dir=0, - sign="", - pad=" ", - idx=0, - prefix=""; - while(fmt[idx] == "%")idx++; - for(;;idx++) - if(fmt[idx] == "#") - alt = 1; - else - if(fmt[idx] == "0") - pad = "0"; - else - if(fmt[idx] == "-") - dir = 1; + msg = caml_format_exception(err), + at_exit = caml_named_value("Pervasives.do_at_exit"); + if(at_exit) caml_callback(at_exit, [0]); + console.error("Fatal error: exception " + msg + "\n"); + if(err.js_error) throw err.js_error; + } + } + else + throw err; + } + function caml_ephe_check_data(x){ + return x[caml_ephe_data_offset] === undefined ? 0 : 1; + } + function caml_bytes_get16(s, i){ + if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); + var + b1 = caml_bytes_unsafe_get(s, i), + b2 = caml_bytes_unsafe_get(s, i + 1); + return b2 << 8 | b1; + } + function caml_obj_make_forward(b, v){b[0] = 250; b[1] = v; return 0;} + function caml_js_from_bool(x){return ! ! x;} + function caml_ml_set_channel_name(chanid, name){ + var chan = caml_ml_channels[chanid]; + chan.name = name; + return 0; + } + function caml_exp2_float(x){return Math.pow(2, x);} + function caml_gr_close_graph(){ + var s = caml_gr_state_get(); + s.canvas.width = 0; + s.canvas.height = 0; + return 0; + } + function caml_ml_domain_cpu_relax(unit){return 0;} + function caml_create_string(len){caml_invalid_argument("String.create");} + function caml_ml_input_block(chanid, ba, i, l){ + var + chan = caml_ml_channels[chanid], + n = l, + avail = chan.buffer_max - chan.buffer_curr; + if(l <= avail){ + ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + l), i); + chan.buffer_curr += l; + } + else if(avail > 0){ + ba.set + (chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + avail), i); + chan.buffer_curr += avail; + n = avail; + } + else{ + chan.buffer_curr = 0; + chan.buffer_max = 0; + caml_refill(chan); + var avail = chan.buffer_max - chan.buffer_curr; + if(n > avail) n = avail; + ba.set(chan.buffer.subarray(chan.buffer_curr, chan.buffer_curr + n), i); + chan.buffer_curr += n; + } + return n | 0; + } + function caml_md5_chan(chanid, toread){ + var ctx = caml_MD5Init(), buffer = new Uint8Array(4096); + if(toread < 0) + while(true){ + var read = caml_ml_input_block(chanid, buffer, 0, buffer.length); + if(read == 0) break; + caml_MD5Update(ctx, buffer.subarray(0, read), read); + } + else + while(toread > 0){ + var + read = + caml_ml_input_block + (chanid, buffer, 0, toread > buffer.length ? buffer.length : toread); + if(read == 0) caml_raise_end_of_file(); + caml_MD5Update(ctx, buffer.subarray(0, read), read); + toread -= read; + } + return caml_string_of_array(caml_MD5Final(ctx)); + } + function caml_atanh_float(x){return Math.atanh(x);} + function caml_ml_condition_signal(t){return 0;} + function caml_unix_findnext(dir_handle){return caml_unix_readdir(dir_handle); + } + function caml_ml_output_bytes(chanid, buffer, offset, len){ + var chan = caml_ml_channels[chanid]; + if(! chan.opened) + caml_raise_sys_error("Cannot output to a closed channel"); + var buffer = caml_uint8_array_of_bytes(buffer); + buffer = buffer.subarray(offset, offset + len); + if(chan.buffer_curr + buffer.length > chan.buffer.length){ + var b = new Uint8Array(chan.buffer_curr + buffer.length); + b.set(chan.buffer); + chan.buffer = b; + } + switch(chan.buffered){ + case 0: + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + caml_ml_flush(chanid); + break; + case 1: + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); + break; + case 2: + var id = buffer.lastIndexOf(10); + if(id < 0){ + chan.buffer.set(buffer, chan.buffer_curr); + chan.buffer_curr += buffer.length; + if(chan.buffer_curr >= chan.buffer.length) caml_ml_flush(chanid); + } + else{ + chan.buffer.set(buffer.subarray(0, id + 1), chan.buffer_curr); + chan.buffer_curr += id + 1; + caml_ml_flush(chanid); + chan.buffer.set(buffer.subarray(id + 1), chan.buffer_curr); + chan.buffer_curr += buffer.length - id - 1; + } + break; + } + return 0; + } + function caml_ml_output(chanid, buffer, offset, len){ + return caml_ml_output_bytes + (chanid, caml_bytes_of_string(buffer), offset, len); + } + function caml_ml_domain_id(unit){return caml_domain_id;} + function caml_ephe_get_data(x){ + return x[caml_ephe_data_offset] === undefined + ? 0 + : [0, x[caml_ephe_data_offset]]; + } + function caml_xmlhttprequest_create(unit){ + if(typeof globalThis.XMLHttpRequest !== "undefined") + try{return new globalThis.XMLHttpRequest();}catch(e){} + if(typeof globalThis.activeXObject !== "undefined"){ + try{return new globalThis.activeXObject("Msxml2.XMLHTTP");}catch(e){} + try{return new globalThis.activeXObject("Msxml3.XMLHTTP");}catch(e){} + try{return new globalThis.activeXObject("Microsoft.XMLHTTP");}catch(e){} + } + caml_failwith("Cannot create a XMLHttpRequest"); + } + function caml_trampoline_return(f, args){return {joo_tramp: f, joo_args: args}; + } + function caml_ml_is_buffered(chanid){ + return caml_ml_channels[chanid].buffered ? 1 : 0; + } + function caml_array_append(a1, a2){ + var l1 = a1.length, l2 = a2.length, l = l1 + l2 - 1, a = new Array(l); + a[0] = 0; + var i = 1, j = 1; + for(; i < l1; i++) a[i] = a1[i]; + for(; i < l; i++, j++) a[i] = a2[j]; + return a; + } + function caml_unix_gettimeofday(){return new Date().getTime() / 1000;} + function caml_unix_time(){return Math.floor(caml_unix_gettimeofday());} + function caml_ml_set_channel_refill(chanid, f){ + caml_ml_channels[chanid].refill = f; + return 0; + } + function ml_z_nextprime(z1){ + z1 = bigInt(z1); + var one = bigInt(1), two = bigInt(2); + if(z1.lt(one) || z1.equals(one)) return 2; + if(z1.and(one).equals(one)) z1 = z1.add(two); else z1 = z1.add(one); + while(true) + if(z1.isProbablePrime(25)) + return ml_z_normalize(z1); + else + z1 = z1.add(two); + } + function caml_runtime_events_create_cursor(target){return {};} + function caml_fill_bytes(s, i, l, c){ + if(l > 0) + if(i == 0 && (l >= s.l || s.t == 2 && l >= s.c.length)) + if(c == 0){ + s.c = ""; + s.t = 2; + } + else{ + s.c = caml_str_repeat(l, String.fromCharCode(c)); + s.t = l == s.l ? 0 : 2; + } + else{ + if(s.t != 4) caml_convert_bytes_to_array(s); + for(l += i; i < l; i++) s.c[i] = c; + } + return 0; + } + function caml_js_expr(s){ + console.error("caml_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s)); + } + function caml_ml_runtime_warnings_enabled(_unit){return caml_runtime_warnings; + } + function ml_z_sub(z1, z2){ + return ml_z_normalize(bigInt(z1).subtract(bigInt(z2))); + } + function ml_z_fdiv(z1, z2){ + var z1_pos = ml_z_sign(z1), z2_pos = ml_z_sign(z2); + if(z1_pos * z2_pos < 0) + if(! bigInt(z1).mod(bigInt(z2)).equals(bigInt(0))) + return ml_z_sub(ml_z_div(z1, z2), bigInt(1)); + return ml_z_div(z1, z2); + } + function ml_z_to_bits(z1){ + z1 = bigInt(z1).abs(); + var res = ""; + while(! z1.equals(bigInt(0))){ + res += String.fromCharCode(z1.mod(bigInt(256))); + z1 = z1.divide(bigInt(256)); + } + while(res.length % 4 != 0) res += String.fromCharCode(0); + return caml_string_of_jsbytes(res); + } + function caml_output_value_to_bytes(v, flags){ + return caml_bytes_of_array(caml_output_val(v, flags)); + } + function caml_eventlog_resume(unit){return 0;} + function caml_md5_string(s, ofs, len){ + return caml_md5_bytes(caml_bytes_of_string(s), ofs, len); + } + function caml_array_of_string(x){return caml_uint8_array_of_string(x);} + function caml_string_equal(s1, s2){if(s1 === s2) return 1; return 0;} + function caml_jsoo_flags_use_js_string(unit){return 1;} + function ml_z_divexact(z1, z2){return ml_z_div(z1, z2);} + function caml_output_value_to_buffer(s, ofs, len, v, flags){ + var t = caml_output_val(v, flags); + if(t.length > len) caml_failwith("Marshal.to_buffer: buffer overflow"); + caml_blit_bytes(t, 0, s, ofs, t.length); + return 0; + } + function re_replacement_text(repl, groups, orig){ + var + repl = caml_jsbytes_of_string(repl), + len = repl.length, + orig = caml_jsbytes_of_string(orig), + res = "", + n = 0, + cur, + start, + end, + c; + while(n < len){ + cur = repl.charAt(n++); + if(cur != "\\") + res += cur; + else{ + if(n == len) caml_failwith("Str.replace: illegal backslash sequence"); + cur = repl.charAt(n++); + switch(cur){ + case "\\": + res += cur; break; + case "0": + case "1": + case "2": + case "3": + case "4": + case "5": + case "6": + case "7": + case "8": + case "9": + c = + cur; + if(c * 2 >= groups.length - 1) + caml_failwith("Str.replace: reference to unmatched group"); + start = caml_array_get(groups, c * 2); + end = caml_array_get(groups, c * 2 + 1); + if(start == - 1) + caml_failwith("Str.replace: reference to unmatched group"); + res += orig.slice(start, end); + break; + default: res += "\\" + cur; + } + } + } + return caml_string_of_jsbytes(res); + } + function caml_pure_js_expr(s){ + console.error("caml_pure_js_expr: fallback to runtime evaluation\n"); + return eval(caml_jsstring_of_string(s)); + } + function caml_blit_string(a, b, c, d, e){ + caml_blit_bytes(caml_bytes_of_string(a), b, c, d, e); + return 0; + } + function blit_nat(nat1, ofs1, nat2, ofs2, len){ + for(var i = 0; i < len; i++) nat1.data[ofs1 + i] = nat2.data[ofs2 + i]; + return 0; + } + function caml_bigstring_blit_ba_to_bytes(ba1, pos1, bytes2, pos2, len){ + if(12 != ba1.kind) + caml_invalid_argument("caml_bigstring_blit_string_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs1 = ba1.offset(pos1); + if(ofs1 + len > ba1.data.length) caml_array_bound_error(); + if(pos2 + len > caml_ml_bytes_length(bytes2)) caml_array_bound_error(); + var slice = ba1.data.slice(ofs1, ofs1 + len); + caml_blit_bytes(caml_bytes_of_array(slice), 0, bytes2, pos2, len); + return 0; + } + function caml_unix_stat(name){ + var root = resolve_fs_device(name); + if(! root.device.stat) caml_failwith("caml_unix_stat: not implemented"); + return root.device.stat(root.rest, true); + } + function caml_register_named_value(nm, v){ + caml_named_values[caml_jsbytes_of_string(nm)] = v; + return 0; + } + function jsoo_create_file_extern(name, content){ + if(globalThis.jsoo_create_file) + globalThis.jsoo_create_file(name, content); + else{ + if(! globalThis.caml_fs_tmp) globalThis.caml_fs_tmp = []; + globalThis.caml_fs_tmp.push({name: name, content: content}); + } + return 0; + } + function caml_unix_stat_64(name){ + var r = caml_unix_stat(name); + r[9] = caml_int64_of_int32(r[9]); + } + function caml_to_js_string(s){return caml_jsstring_of_string(s);} + function caml_ml_mutex_lock(t){ + if(t.locked) + caml_failwith("Mutex.lock: mutex already locked. Cannot wait."); + else + t.locked = true; + return 0; + } + function re_search_forward(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.search_forward"); + while(pos <= caml_ml_string_length(s)){ + var res = re_match(re, s, pos, 0); + if(res) return res; + pos++; + } + return [0]; + } + function caml_make_vect(len, init){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 0; + for(var i = 1; i < len; i++) b[i] = init; + return b; + } + function caml_ml_seek_in(chanid, pos){return caml_seek_in(chanid, pos);} + function caml_sys_read_directory(name){ + var + root = resolve_fs_device(name), + a = root.device.readdir(root.rest), + l = new Array(a.length + 1); + l[0] = 0; + for(var i = 0; i < a.length; i++) l[i + 1] = caml_string_of_jsbytes(a[i]); + return l; + } + function caml_ml_output_char(chanid, c){ + var s = caml_string_of_jsbytes(String.fromCharCode(c)); + caml_ml_output(chanid, s, 0, 1); + return 0; + } + function caml_sys_const_ostype_win32(){return os_type == "Win32" ? 1 : 0;} + function caml_obj_is_block(x){return + (x instanceof Array);} + function caml_obj_set_raw_field(o, i, v){return o[i + 1] = v;} + function caml_js_var(x){ + var x = caml_jsstring_of_string(x); + if(! x.match(/^[a-zA-Z_$][a-zA-Z_$0-9]*(\.[a-zA-Z_$][a-zA-Z_$0-9]*)*$/)) + console.error + ('caml_js_var: "' + x + + '" is not a valid JavaScript variable. continuing ..'); + return eval(x); + } + function caml_trunc_float(x){return Math.trunc(x);} + function caml_zarith_marshal(writer, v, sz){ + v = bigInt(v); + var bits = v.toArray(Math.pow(2, 32)); + writer.write(8, bits.isNegative ? 1 : 0); + var block = bits.value.length, len = block * 4; + writer.write(32, len); + for(var i = block - 1; i >= 0; i--){ + writer.write(8, bits.value[i] >>> 0 & 0xff); + writer.write(8, bits.value[i] >>> 8 & 0xff); + writer.write(8, bits.value[i] >>> 16 & 0xff); + writer.write(8, bits.value[i] >>> 24 & 0xff); + } + sz[0] = 4 * (1 + ((len + 3) / 4 | 0)); + sz[1] = 8 * (1 + ((len + 7) / 8 | 0)); + } + function caml_ephe_unset_data(x){ + if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(x[1] instanceof globalThis.FinalizationRegistry) + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key) x[1].unregister(key); + } + } + x[caml_ephe_data_offset] = undefined; + return 0; + } + function caml_ephe_set_data(x, data){ + if(globalThis.FinalizationRegistry && globalThis.WeakRef) + if(! (x[1] instanceof globalThis.FinalizationRegistry)){ + x[1] = + new + globalThis.FinalizationRegistry + (function(){caml_ephe_unset_data(x);}); + for(var j = caml_ephe_key_offset; j < x.length; j++){ + var key = x[j]; + if(key instanceof globalThis.WeakRef){ + key = key.deref(); + if(key) x[1].register(key, undefined, key); + } + } + } + x[caml_ephe_data_offset] = data; + return 0; + } + function caml_ephe_blit_data(src, dst){ + var n = src[caml_ephe_data_offset]; + if(n === undefined) + caml_ephe_unset_data(dst); + else + caml_ephe_set_data(dst, n); + return 0; + } + function caml_is_printable(c){return + (c > 31 && c < 127);} + function caml_bytes_lessequal(s1, s2){ + s1.t & 6 && caml_convert_string_to_bytes(s1); + s2.t & 6 && caml_convert_string_to_bytes(s2); + return s1.c <= s2.c ? 1 : 0; + } + function caml_array_of_bytes(x){return caml_uint8_array_of_bytes(x);} + function caml_equal(x, y){return + (caml_compare_val(x, y, false) == 0);} + function re_partial_match(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.partial_match"); + var res = re_match(re, s, pos, 1); + return res ? res : [0]; + } + function caml_sys_random_seed(){ + if(globalThis.crypto) + if(typeof globalThis.crypto.getRandomValues === "function"){ + var a = new Uint32Array(1); + globalThis.crypto.getRandomValues(a); + return [0, a[0]]; + } + else if(globalThis.crypto.randomBytes === "function"){ + var buff = globalThis.crypto.randomBytes(4), a = new Uint32Array(buff); + return [0, a[0]]; + } + var now = new Date().getTime(), x = now ^ 0xffffffff * Math.random(); + return [0, x]; + } + var all_finalizers = new globalThis.Set(); + function caml_final_register_called_without_value(cb, a){ + if(globalThis.FinalizationRegistry && a instanceof Object){ + var + x = + new + globalThis.FinalizationRegistry + (function(x){all_finalizers.delete(x); cb(0); return;}); + x.register(a, x); + all_finalizers.add(x); + } + return 0; + } + function caml_ba_get_2(ba, i0, i1){return ba.get(ba.offset([i0, i1]));} + function caml_ba_uint8_set16(ba, i0, v){ + var ofs = ba.offset(i0); + if(ofs + 1 >= ba.data.length) caml_array_bound_error(); + ba.set(ofs + 0, v & 0xff); + ba.set(ofs + 1, v >>> 8 & 0xff); + return 0; + } + function caml_lazy_reset_to_lazy(o){ + caml_obj_update_tag(o, 244, 246); + return 0; + } + function caml_js_delete(o, f){delete o[f]; return 0;} + function caml_int_of_string(s){ + var + r = caml_parse_sign_and_base(s), + i = r[0], + sign = r[1], + base = r[2], + len = caml_ml_string_length(s), + threshold = - 1 >>> 0, + c = i < len ? caml_string_unsafe_get(s, i) : 0, + d = caml_parse_digit(c); + if(d < 0 || d >= base) caml_failwith("int_of_string"); + var res = d; + for(i++; i < len; i++){ + c = caml_string_unsafe_get(s, i); + if(c == 95) continue; + d = caml_parse_digit(c); + if(d < 0 || d >= base) break; + res = base * res + d; + if(res > threshold) caml_failwith("int_of_string"); + } + if(i != len) caml_failwith("int_of_string"); + res = sign * res; + if(base == 10 && (res | 0) != res) caml_failwith("int_of_string"); + return res | 0; + } + function caml_list_mount_point(){ + var prev = 0; + for(var i = 0; i < jsoo_mount_point.length; i++){ + var old = prev; + prev = [0, caml_string_of_jsbytes(jsoo_mount_point[i].path), old]; + } + return prev; + } + var + caml_marshal_constants = + {PREFIX_SMALL_BLOCK: 0x80, + PREFIX_SMALL_INT: 0x40, + PREFIX_SMALL_STRING: 0x20, + CODE_INT8: 0x00, + CODE_INT16: 0x01, + CODE_INT32: 0x02, + CODE_INT64: 0x03, + CODE_SHARED8: 0x04, + CODE_SHARED16: 0x05, + CODE_SHARED32: 0x06, + CODE_BLOCK32: 0x08, + CODE_BLOCK64: 0x13, + CODE_STRING8: 0x09, + CODE_STRING32: 0x0A, + CODE_DOUBLE_BIG: 0x0B, + CODE_DOUBLE_LITTLE: 0x0C, + CODE_DOUBLE_ARRAY8_BIG: 0x0D, + CODE_DOUBLE_ARRAY8_LITTLE: 0x0E, + CODE_DOUBLE_ARRAY32_BIG: 0x0F, + CODE_DOUBLE_ARRAY32_LITTLE: 0x07, + CODE_CODEPOINTER: 0x10, + CODE_INFIXPOINTER: 0x11, + CODE_CUSTOM: 0x12, + CODE_CUSTOM_LEN: 0x18, + CODE_CUSTOM_FIXED: 0x19}; + function caml_obj_raw_field(o, i){return o[i + 1];} + function caml_js_equals(x, y){return + (x == y);} + function caml_obj_compare_and_swap(x, i, old, n){ + if(x[i + 1] == old){x[i + 1] = n; return 1;} + return 0; + } + function bigstring_to_typed_array(bs){return bs.data;} + function ml_z_fits_nativeint(z1){return ml_z_fits_int(z1);} + function caml_gr_arc_aux(ctx, cx, cy, ry, rx, a1, a2){ + while(a1 > a2) a2 += 360; + a1 /= 180; + a2 /= 180; + var + rot = 0, + xPos, + yPos, + xPos_prev, + yPos_prev, + space = 2, + num = (a2 - a1) * Math.PI * ((rx + ry) / 2) / space | 0, + delta = (a2 - a1) * Math.PI / num, + i = a1 * Math.PI; + for(var j = 0; j <= num; j++){ + xPos = + cx - rx * Math.sin(i) * Math.sin(rot * Math.PI) + + ry * Math.cos(i) * Math.cos(rot * Math.PI); + xPos = xPos.toFixed(2); + yPos = + cy + ry * Math.cos(i) * Math.sin(rot * Math.PI) + + rx * Math.sin(i) * Math.cos(rot * Math.PI); + yPos = yPos.toFixed(2); + if(j == 0) + ctx.moveTo(xPos, yPos); + else if(xPos_prev != xPos || yPos_prev != yPos) ctx.lineTo(xPos, yPos); + xPos_prev = xPos; + yPos_prev = yPos; + i -= delta; + } + return 0; + } + function caml_gr_fill_arc(x, y, rx, ry, a1, a2){ + var s = caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); + s.context.fill(); + return 0; + } + function caml_ba_slice(ba, vind){ + vind = caml_js_from_array(vind); + var num_inds = vind.length, index = [], sub_dims = [], ofs; + if(num_inds > ba.dims.length) + caml_invalid_argument("Bigarray.slice: too many indices"); + if(ba.layout == 0){ + for(var i = 0; i < num_inds; i++) index[i] = vind[i]; + for(; i < ba.dims.length; i++) index[i] = 0; + sub_dims = ba.dims.slice(num_inds); + } + else{ + for(var i = 0; i < num_inds; i++) + index[ba.dims.length - num_inds + i] = vind[i]; + for(var i = 0; i < ba.dims.length - num_inds; i++) index[i] = 1; + sub_dims = ba.dims.slice(0, ba.dims.length - num_inds); + } + ofs = ba.offset(index); + var + size = caml_ba_get_size(sub_dims), + size_per_element = caml_ba_get_size_per_element(ba.kind), + new_data = + ba.data.subarray + (ofs * size_per_element, (ofs + size) * size_per_element); + return caml_ba_create_unsafe(ba.kind, ba.layout, sub_dims, new_data); + } + function ml_z_of_nativeint(i){return i | 0;} + function caml_js_wrap_callback_unsafe(f){ + return function(){ + var len = caml_js_function_arity(f), args = new Array(len); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_ba_kind(ba){return ba.kind;} + function caml_alloc_dummy_infix(){ + return function f(x){return caml_call_gen(f.fun, [x]);}; + } + function caml_js_fun_call(f, a){ + switch(a.length){ + case 1: + return f(); + case 2: + return f(a[1]); + case 3: + return f(a[1], a[2]); + case 4: + return f(a[1], a[2], a[3]); + case 5: + return f(a[1], a[2], a[3], a[4]); + case 6: + return f(a[1], a[2], a[3], a[4], a[5]); + case 7: + return f(a[1], a[2], a[3], a[4], a[5], a[6]); + case 8: + return f(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); + } + return f.apply(null, caml_js_from_array(a)); + } + function caml_gc_major_slice(work){return 0;} + function ml_z_invert(a, n){ + a = bigInt(a); + n = bigInt(n); + var zero = bigInt(0), one = bigInt(1); + if(n.abs().equals(one)) return 0; + if(n.equals(zero) && a.abs().equals(one)) return a; + if(n.equals(zero) || a.equals(zero)) caml_raise_zero_divide(); + var + x = ml_z_gcdext_intern(a, n), + r = bigInt(x[2]), + tmp = bigInt(a).multiply(r).mod(n); + if(tmp.lt(zero)) tmp = tmp.add(n.abs()); + if(r.lt(zero)) r = r.add(n.abs()); + if(tmp.equals(one)) return ml_z_normalize(r); + caml_raise_zero_divide(); + } + function ml_z_powm(z1, z2, z3){ + var zero = bigInt(0), one = bigInt(1); + z1 = bigInt(z1); + z2 = bigInt(z2); + z3 = bigInt(z3); + if(z3.equals(zero)) caml_raise_zero_divide(); + if(z3.abs().equals(one)) return 0; + if(z2.equals(zero)) return 1; + if(z2.lt(0)){ + var inv = bigInt(ml_z_invert(z1, z3)), r = inv.modPow(z2.negate(), z3); + if(r.lt(zero)) r = r.add(z3.abs()); + return ml_z_normalize(r); + } + else{ + var r = bigInt(z1).modPow(z2, z3); + if(r.lt(zero)) r = r.add(z3.abs()); + return ml_z_normalize(r); + } + } + function ml_z_powm_sec(z1, z2, z3){ + z3 = bigInt(z3).abs(); + var one = bigInt(1); + if(bigInt(z2).lt(one)) + caml_invalid_argument("Z.powm_sec: exponent must be positive"); + if(! bigInt(z3).and(one).equals(one)) + caml_invalid_argument("Z.powm_sec: modulus must be odd"); + return ml_z_powm(z1, z2, z3); + } + function caml_js_pure_expr(f){return caml_callback(f, [0]);} + function compare_digits_nat(nat1, ofs1, nat2, ofs2){ + if(nat1.data[ofs1] > nat2.data[ofs2]) return 1; + if(nat1.data[ofs1] < nat2.data[ofs2]) return - 1; + return 0; + } + function caml_ml_input(chanid, b, i, l){ + var ba = caml_uint8_array_of_bytes(b); + return caml_ml_input_block(chanid, ba, i, l); + } + function caml_gr_wait_event(_evl){ + caml_failwith + ("caml_gr_wait_event not Implemented: use Graphics_js instead"); + } + function caml_gr_sigio_handler(){return 0;} + function caml_hash_mix_bigstring(h, bs){ + return caml_hash_mix_bytes_arr(h, bs.data); + } + function caml_record_backtrace(b){ + caml_record_backtrace_flag = b; + return 0; + } + function caml_unix_cleanup(){} + function caml_sys_get_config(){ + return [0, caml_string_of_jsbytes(os_type), 32, 0]; + } + function caml_sys_const_backend_type(){ + return [0, caml_string_of_jsbytes("js_of_ocaml")]; + } + function caml_obj_is_shared(x){return 1;} + function caml_ml_out_channels_list(){ + var l = 0; + for(var c = 0; c < caml_ml_channels.length; c++) + if + (caml_ml_channels[c] && caml_ml_channels[c].opened + && caml_ml_channels[c].out) + l = [0, caml_ml_channels[c].fd, l]; + return l; + } + function caml_asinh_float(x){return Math.asinh(x);} + function ml_z_hash(z1){ + var a = bigInt(z1).toArray(Math.pow(2, 32)), acc = 0; + for(var i = 0; i < a.value.length; i++) + acc = caml_hash_mix_int(acc, a.value[i]); + if(a.value.length % 2 != 0) acc = caml_hash_mix_int(acc, 0); + if(a.isNegative) acc = acc + 1; + return acc | 0; + } + function caml_pos_out(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.offset + chan.buffer_curr; + } + function bigstring_of_array_buffer(ab){ + var ta = new Uint8Array(ab); + return caml_ba_create_unsafe(12, 0, [ta.length], ta); + } + function caml_mod(x, y){if(y == 0) caml_raise_zero_divide(); return x % y;} + function caml_ba_init(){return 0;} + function caml_unix_filedescr_of_fd(x){return x;} + function re_string_match(re, s, pos){ + if(pos < 0 || pos > caml_ml_string_length(s)) + caml_invalid_argument("Str.string_match"); + var res = re_match(re, s, pos, 0); + return res ? res : [0]; + } + function BigStringReader(bs, i){this.s = bs; this.i = i;} + BigStringReader.prototype = + {read8u: function(){return caml_ba_get_1(this.s, this.i++);}, + read8s: function(){return caml_ba_get_1(this.s, this.i++) << 24 >> 24;}, + read16u: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return caml_ba_get_1(s, i) << 8 | caml_ba_get_1(s, i + 1); + }, + read16s: + function(){ + var s = this.s, i = this.i; + this.i = i + 2; + return caml_ba_get_1(s, i) << 24 >> 16 | caml_ba_get_1(s, i + 1); + }, + read32u: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return (caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 + | caml_ba_get_1(s, i + 2) << 8 + | caml_ba_get_1(s, i + 3)) + >>> 0; + }, + read32s: + function(){ + var s = this.s, i = this.i; + this.i = i + 4; + return caml_ba_get_1(s, i) << 24 | caml_ba_get_1(s, i + 1) << 16 + | caml_ba_get_1(s, i + 2) << 8 + | caml_ba_get_1(s, i + 3); + }, + readstr: + function(len){ + var i = this.i, arr = new Array(len); + for(var j = 0; j < len; j++) arr[j] = caml_ba_get_1(this.s, i + j); + this.i = i + len; + return caml_string_of_array(arr); + }, + readuint8array: + function(len){ + var i = this.i, offset = this.offset(i); + this.i = i + len; + return this.s.data.subarray(offset, offset + len); + }}; + function caml_gr_dump_image(im){ + var data = [0]; + for(var i = 0; i < im.height; i++){ + data[i + 1] = [0]; + for(var j = 0; j < im.width; j++){ + var + o = i * (im.width * 4) + j * 4, + r = im.data[o + 0], + g = im.data[o + 1], + b = im.data[o + 2]; + data[i + 1][j + 1] = (r << 16) + (g << 8) + b; + } + } + return data; + } + function caml_ba_get_generic(ba, i){ + var ofs = ba.offset(caml_js_from_array(i)); + return ba.get(ofs); + } + function caml_unix_startup(){} + function caml_get_exception_backtrace(){return 0;} + function caml_format_float(fmt, x){ + function toFixed(x, dp){ + if(Math.abs(x) < 1.0) + return x.toFixed(dp); + else{ + var e = parseInt(x.toString().split("+")[1]); + if(e > 20){ + e -= 20; + x /= Math.pow(10, e); + x += new Array(e + 1).join("0"); + if(dp > 0) x = x + "." + new Array(dp + 1).join("0"); + return x; + } + else + return x.toFixed(dp); + } + } + var s, f = caml_parse_format(fmt), prec = f.prec < 0 ? 6 : f.prec; + if(x < 0 || x == 0 && 1 / x == - Infinity){f.sign = - 1; x = - x;} + if(isNaN(x)){ + s = "nan"; + f.filler = " "; + } + else if(! isFinite(x)){ + s = "inf"; + f.filler = " "; + } + else + switch(f.conv){ + case "e": + var s = x.toExponential(prec), i = s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0, i - 1) + "0" + s.slice(i - 1); + break; + case "f": + s = toFixed(x, prec); break; + case "g": + prec = prec ? prec : 1; + s = x.toExponential(prec - 1); + var j = s.indexOf("e"), exp = + s.slice(j + 1); + if(exp < - 4 || x >= 1e21 || x.toFixed(0).length > prec){ + var i = j - 1; + while(s.charAt(i) == "0") i--; + if(s.charAt(i) == ".") i--; + s = s.slice(0, i + 1) + s.slice(j); + i = s.length; + if(s.charAt(i - 3) == "e") + s = s.slice(0, i - 1) + "0" + s.slice(i - 1); + break; + } + else{ + var p = prec; + if(exp < 0){ + p -= exp + 1; + s = x.toFixed(p); + } else - if(fmt[idx] == " " || fmt[idx] == "+")sign = fmt[idx];else break; - if(z1.lt(bigInt(0))){sign = "-";z1 = z1.negate()} - for(;fmt[idx] >= "0" && fmt[idx] <= "9";idx++) - width = 10 * width + + fmt[idx]; - switch(fmt[idx]) - {case "i": - case "d": - case "u":break; - case "b":base = 2;if(alt)prefix = "0b";break; - case "o":base = 8;if(alt)prefix = "0o";break; - case "x":base = 16;if(alt)prefix = "0x";break; - case "X":base = 16;if(alt)prefix = "0X";cas = 1;break; - default:caml_failwith("Unsupported format '" + fmt + "'")} - if(dir)pad = " "; - var res=z1.toString(base); - if(cas === 1)res = res.toUpperCase(); - var size=res.length; - if(pad == " ") - if(dir) - {res = sign + prefix + res;for(;res.length < width;)res = res + pad} - else - {res = sign + prefix + res;for(;res.length < width;)res = pad + res} + while(s = x.toFixed(p), s.length > prec + 1) p--; + if(p){ + var i = s.length - 1; + while(s.charAt(i) == "0") i--; + if(s.charAt(i) == ".") i--; + s = s.slice(0, i + 1); + } + } + break; + } + return caml_finish_formatting(f, s); + } + function caml_mount_autoload(name, f){ + var + path = caml_make_path(name), + name = caml_trailing_slash(path.join("/")); + jsoo_mount_point.push({path: name, device: new MlFakeDevice(name, f)}); + return 0; + } + function ml_z_fits_int64(z1){ + z1 = bigInt(z1); + return z1.compare(bigInt("9223372036854775807")) <= 0 + && z1.compare(bigInt("-9223372036854775808")) >= 0 + ? 1 + : 0; + } + function ml_z_equal(z1, z2){return bigInt(z1).equals(bigInt(z2)) ? 1 : 0;} + function ml_z_sqrt_rem(z){ + z = bigInt(z); + var zero = bigInt(0); + if(z.lt(zero)) + caml_invalid_argument("Z.sqrt_rem: square root of a negative number"); + var + root = bigInt(ml_z_root(z, 2)), + mul = root.multiply(root), + diff = z.subtract(mul); + return [0, ml_z_normalize(root), ml_z_normalize(diff)]; + } + function caml_string_lessthan(s1, s2){return s1 < s2 ? 1 : 0;} + function caml_string_greaterthan(s1, s2){return caml_string_lessthan(s2, s1); + } + function caml_div(x, y){ + if(y == 0) caml_raise_zero_divide(); + return x / y | 0; + } + function caml_obj_dup(x){ + var l = x.length, a = new Array(l); + for(var i = 0; i < l; i++) a[i] = x[i]; + return a; + } + function caml_ephe_get_data_copy(x){ + return x[caml_ephe_data_offset] === undefined + ? 0 + : [0, caml_obj_dup(x[caml_ephe_data_offset])]; + } + function caml_memprof_start(rate, stack_size, tracker){return 0;} + function ml_z_perfect_square(z){ + z = bigInt(z); + if(z.lt(bigInt(0))) return 0; + var root = bigInt(ml_z_root(z, 2)); + return root.multiply(root).eq(z) ? 1 : 0; + } + function caml_sys_get_argv(a){return [0, caml_argv[1], caml_argv];} + function caml_ml_domain_set_name(_name){return 0;} + function caml_js_to_bool(x){return + x;} + function caml_gr_create_image(x, y){ + var s = caml_gr_state_get(); + return s.context.createImageData(x, y); + } + function caml_ephe_get_key_copy(x, i){ + if(i < 0 || caml_ephe_key_offset + i >= x.length) + caml_invalid_argument("Weak.get_copy"); + var y = caml_ephe_get_key(x, i); + if(y === 0) return y; + var z = y[1]; + if(z instanceof Array) return [0, caml_obj_dup(z)]; + return y; + } + function caml_lessthan(x, y){return + (caml_compare_val(x, y, false) < 0);} + function caml_raw_backtrace_next_slot(){return 0;} + function ml_z_to_nativeint(z1){return ml_z_to_int(z1);} + function caml_build_symbols(toc){ + var symb; + while(toc) + if(caml_jsstring_of_string(toc[1][1]) == "SYJS"){symb = toc[1][2]; break;} + else + toc = toc[2]; + var r = {}; + if(symb) + for(var i = 1; i < symb.length; i++) + r[caml_jsstring_of_string(symb[i][1])] = symb[i][2]; + return r; + } + function caml_register_global(n, v, name_opt){ + if(name_opt){ + var name = name_opt; + if(globalThis.toplevelReloc) + n = caml_callback(globalThis.toplevelReloc, [name]); + else if(caml_global_data.toc){ + if(! caml_global_data.symbols) + caml_global_data.symbols = caml_build_symbols(caml_global_data.toc); + var nid = caml_global_data.symbols[name]; + if(nid >= 0) + n = nid; else - {var pre=sign + prefix; - for(;res.length + pre.length < width;)res = pad + res; - res = pre + res} - return caml_string_of_jsbytes(res)} - function ml_z_to_int64(z1) - {z1 = bigInt(z1); - if(! ml_z_fits_int64(z1)) - caml_raise_constant(caml_named_value("ml_z_overflow")); - var - mask=bigInt(0xffffffff), - lo=z1.and(mask).toJSNumber(), - hi=z1.shiftRight(32).and(mask).toJSNumber(), - x=caml_int64_create_lo_hi(lo,hi); - return x} - function ml_z_size(z1) - {return bigInt(z1).toArray(Math.pow(2,32)).value.length} - function caml_unix_readlink(name) - {var root=resolve_fs_device(name); - if(! root.device.readlink) - caml_failwith("caml_unix_readlink: not implemented"); - return root.device.readlink(root.rest,true)} - function caml_backtrace_status(){return 0} - function caml_sys_argv(a){return caml_argv} - function caml_install_signal_handler(){return 0} - function caml_ba_fill(ba,v){ba.fill(v);return 0} - function caml_modf_float(x) - {if(isFinite(x)) - {var neg=1 / x < 0; - x = Math.abs(x); - var i=Math.floor(x),f=x - i; - if(neg){i = - i;f = - f} - return [0,f,i]} - if(isNaN(x))return [0,NaN,NaN]; - return [0,1 / x,x]} - function caml_gc_get(){return [0,0,0,0,0,0,0,0,0]} - function caml_float_compare(x,y) - {if(x === y)return 0; - if(x < y)return - 1; - if(x > y)return 1; - if(x === x)return 1; - if(y === y)return - 1; - return 0} - function ml_z_shift_right_trunc(z1,z2) - {return ml_z_div(bigInt(z1),bigInt(2).pow(z2))} - function caml_string_set32(s,i,i32){return caml_bytes_set32(s,i,i32)} - function caml_parse_engine(tables,env,cmd,arg) - {var - ERRCODE=256, - loop=6, - testshift=7, - shift=8, - shift_recover=9, - reduce=10, - READ_TOKEN=0, - RAISE_PARSE_ERROR=1, - GROW_STACKS_1=2, - GROW_STACKS_2=3, - COMPUTE_SEMANTIC_ACTION=4, - CALL_ERROR_FUNCTION=5, - env_s_stack=1, - env_v_stack=2, - env_symb_start_stack=3, - env_symb_end_stack=4, - env_stacksize=5, - env_stackbase=6, - env_curr_char=7, - env_lval=8, - env_symb_start=9, - env_symb_end=10, - env_asp=11, - env_rule_len=12, - env_rule_number=13, - env_sp=14, - env_state=15, - env_errflag=16, - tbl_transl_const=2, - tbl_transl_block=3, - tbl_lhs=4, - tbl_len=5, - tbl_defred=6, - tbl_dgoto=7, - tbl_sindex=8, - tbl_rindex=9, - tbl_gindex=10, - tbl_tablesize=11, - tbl_table=12, - tbl_check=13, - tbl_names_const=15, - tbl_names_block=16; - function log(x) - {var s=caml_string_of_jsbytes(x + "\n"); - caml_ml_output(2,s,0,caml_ml_string_length(s))} - function token_name(names,number) - {var str=caml_jsstring_of_string(names); - if(str[0] == "\x00")return ""; - return str.split("\x00")[number]} - function print_token(state,tok) - {var token,kind; - if(tok instanceof Array) - {token = token_name(tables[tbl_names_block],tok[0]); - if(typeof tok[1] == "number") - kind = "" + tok[1]; - else - if(typeof tok[1] == "string") - kind = tok[1]; - else - if(tok[1] instanceof MlBytes) - kind = caml_jsbytes_of_string(tok[1]); - else - kind = "_"; - log("State " + state + ": read token " + token + "(" + kind + ")")} + caml_failwith("caml_register_global: cannot locate " + name); + } + } + caml_global_data[n + 1] = v; + if(name_opt) caml_global_data[name_opt] = v; + } + function mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat3, ofs3, len3){ + var carry = 0; + for(var i = 0; i < len3; i++) + carry += + mult_digit_nat + (nat1, ofs1 + i, len1 - i, nat2, ofs2, len2, nat3, ofs3 + i); + return carry; + } + function square_nat(nat1, ofs1, len1, nat2, ofs2, len2){ + var carry = 0; + carry += add_nat(nat1, ofs1, len1, nat1, ofs1, len1, 0); + carry += mult_nat(nat1, ofs1, len1, nat2, ofs2, len2, nat2, ofs2, len2); + return carry; + } + function caml_js_from_float(x){return x;} + function caml_floatarray_create(len){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 254; + for(var i = 1; i < len; i++) b[i] = 0; + return b; + } + function caml_gc_stat(){ + return [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + function caml_get_major_credit(n){return 0;} + function caml_sys_modify_argv(arg){caml_argv = arg; return 0;} + var caml_method_cache = []; + function caml_get_public_method(obj, tag, cacheid){ + var meths = obj[1], ofs = caml_method_cache[cacheid]; + if(ofs === undefined) + for(var i = caml_method_cache.length; i < cacheid; i++) + caml_method_cache[i] = 0; + else if(meths[ofs] === tag) return meths[ofs - 1]; + var li = 3, hi = meths[1] * 2 + 1, mi; + while(li < hi){ + mi = li + hi >> 1 | 1; + if(tag < meths[mi + 1]) hi = mi - 2; else li = mi; + } + caml_method_cache[cacheid] = li + 1; + return tag == meths[li + 1] ? meths[li] : 0; + } + function caml_js_get_console(){ + var + c = console, + m = + ["log", + "debug", + "info", + "warn", + "error", + "assert", + "dir", + "dirxml", + "trace", + "group", + "groupCollapsed", + "groupEnd", + "time", + "timeEnd"]; + function f(){} + for(var i = 0; i < m.length; i++) if(! c[m[i]]) c[m[i]] = f; + return c; + } + function caml_sys_unsafe_getenv(name){return caml_sys_getenv(name);} + function caml_ml_open_descriptor_in(fd){ + var file = caml_sys_fds[fd]; + if(file.flags.wronly) caml_raise_sys_error("fd " + fd + " is writeonly"); + var + refill = null, + channel = + {file: file, + offset: file.flags.append ? file.length() : 0, + fd: fd, + opened: true, + out: false, + buffer_curr: 0, + buffer_max: 0, + buffer: new Uint8Array(65536), + refill: refill}; + caml_ml_channels[channel.fd] = channel; + return channel.fd; + } + function bigstring_of_typed_array(ba){ + var + ta = + new + Uint8Array + (ba.buffer, ba.byteOffset, ba.length * ba.BYTES_PER_ELEMENT); + return caml_ba_create_unsafe(12, 0, [ta.length], ta); + } + function caml_round_float(x){return Math.round(x);} + function ml_z_of_bits(z1){ + var r = bigInt.zero, base1 = bigInt(256), base = bigInt.one; + for(var i = 0; i < caml_ml_string_length(z1); i++){ + var d = caml_string_unsafe_get(z1, i); + r = bigInt(base).multiply(d).add(r); + base = bigInt(base).multiply(base1); + } + return ml_z_normalize(r); + } + function caml_ojs_new_arr(c, a){ + switch(a.length){ + case 0: + return new c(); + case 1: + return new c(a[0]); + case 2: + return new c(a[0], a[1]); + case 3: + return new c(a[0], a[1], a[2]); + case 4: + return new c(a[0], a[1], a[2], a[3]); + case 5: + return new c(a[0], a[1], a[2], a[3], a[4]); + case 6: + return new c(a[0], a[1], a[2], a[3], a[4], a[5]); + case 7: + return new c(a[0], a[1], a[2], a[3], a[4], a[5], a[6]); + } + function F(){return c.apply(this, a);} + F.prototype = c.prototype; + return new F(); + } + function complement_nat(nat, ofs, len){ + for(var i = 0; i < len; i++) + nat.data[ofs + i] = (- 1 >>> 0) - (nat.data[ofs + i] >>> 0); + } + function ml_z_logxor(z1, z2){ + return ml_z_normalize(bigInt(z1).xor(bigInt(z2))); + } + var caml_domain_dls = [0]; + function caml_domain_dls_set(a){caml_domain_dls = a;} + function caml_lazy_read_result(o){ + return caml_obj_tag(o) == 250 ? o[1] : o; + } + var caml_js_regexps = {amp: /&/g, lt: / 1023){ + exp -= 1023; + x *= Math.pow(2, 1023); + if(exp > 1023){exp -= 1023; x *= Math.pow(2, 1023);} + } + if(exp < - 1023){exp += 1023; x *= Math.pow(2, - 1023);} + x *= Math.pow(2, exp); + return x; + } + function caml_gr_state_set(ctx){ + caml_gr_state = ctx; + caml_gr_state_init(); + return 0; + } + function caml_zarith_unmarshal(reader, sz){ + var negate; + switch(reader.read8u()){ + case 1: + negate = true; break; + case 0: + negate = false; break; + default: caml_failwith("input_value: z (malformed input)"); + } + var len = reader.read32u(), x = bigInt(0); + for(var i = 0; i < len / 4; i++){ + var y = bigInt(reader.read8u()); + y = y.add(reader.read8u() << 8); + y = y.add(reader.read8u() << 16); + y = y.add(reader.read8u() << 24 >>> 0); + x = y.shiftLeft(i * 32).add(x); + } + if(negate) x = x.negate(); + sz[0] = len + 4; + return ml_z_normalize(x); + } + function ml_z_trailing_zeros(z){ + z = bigInt(z).abs(); + var zero = bigInt(0), one = bigInt(1); + if(z.equals(zero)) return 0x7fffffff; + var i = 0; + z = z.xor(z.prev()).shiftRight(1); + for(i = 0; ! z.equals(bigInt.zero); i++) z = z.shiftRight(1); + return i; + } + function caml_js_wrap_callback_strict(arity, f){ + return function(){ + var + n = arguments.length, + args = new Array(arity), + len = Math.min(arguments.length, arity); + for(var i = 0; i < len; i++) args[i] = arguments[i]; + return caml_callback(f, args);}; + } + function caml_gc_minor_words(unit){return 0;} + function caml_get_current_callstack(){return [0];} + function land_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] &= nat2.data[ofs2]; return 0; + } + function caml_int64_mod(x, y){return x.mod(y);} + function caml_obj_set_tag(x, tag){x[0] = tag; return 0;} + function caml_int32_bswap(x){ + return (x & 0x000000FF) << 24 | (x & 0x0000FF00) << 8 + | (x & 0x00FF0000) >>> 8 + | (x & 0xFF000000) >>> 24; + } + function caml_ba_set_3(ba, i0, i1, i2, v){ + ba.set(ba.offset([i0, i1, i2]), v); + return 0; + } + function ml_z_jacobi(n, k){ + n = bigInt(n); + k = bigInt(k); + if(k.leq(bigInt(0)) || k.mod(bigInt(2)).neq(bigInt(1))) + caml_invalid_argument("Z.jacobi: second argument is negative or even"); + n = n.mod(k); + if(n.lt(bigInt(0))) n = n.add(k); + var t = 1; + while(! n.equals(bigInt(0))){ + while(n.isDivisibleBy(bigInt(2))){ + n = n.divide(bigInt(2)); + var r = k.mod(bigInt(8)); + if(r.equals(bigInt(3)) || r.equals(bigInt(5))) t = - t; + } + var n1 = n, k1 = k; + n = k1; + k = n1; + if + (n.mod(bigInt(4)).equals(bigInt(3)) + && k.mod(bigInt(4)).equals(bigInt(3))) + t = - t; + n = n.mod(k); + } + return k.equals(bigInt(1)) ? t : 0; + } + function ml_z_legendre(a, b){return ml_z_jacobi(a, b);} + function caml_js_instanceof(o, c){return o instanceof c ? 1 : 0;} + function caml_get_major_bucket(n){return 0;} + function nth_digit_nat_native(nat, ofs){return nat.data[ofs];} + function set_digit_nat_native(nat, ofs, digit){nat.data[ofs] = digit; return 0; + } + function caml_string_set64(s, i, i64){caml_failwith("caml_string_set64");} + function caml_gr_state_create(canvas, w, h){ + var context = canvas.getContext("2d"); + return {context: context, + canvas: canvas, + x: 0, + y: 0, + width: w, + height: h, + line_width: 1, + font: caml_string_of_jsbytes("fixed"), + text_size: 26, + color: 0x000000, + title: caml_string_of_jsbytes("")}; + } + function caml_gr_draw_arc(x, y, rx, ry, a1, a2){ + var s = caml_gr_state_get(); + s.context.beginPath(); + caml_gr_arc_aux(s.context, x, s.height - y, rx, ry, a1, a2); + s.context.stroke(); + return 0; + } + function caml_ba_map_file(vfd, kind, layout, shared, dims, pos){caml_failwith("caml_ba_map_file not implemented"); + } + function caml_ba_map_file_bytecode(argv, argn){ + return caml_ba_map_file + (argv[0], argv[1], argv[2], argv[3], argv[4], argv[5]); + } + function caml_ba_create_from(data1, data2, jstyp, kind, layout, dims){ + if(data2 || caml_ba_get_size_per_element(kind) == 2) + caml_invalid_argument + ("caml_ba_create_from: use return caml_ba_create_unsafe"); + return caml_ba_create_unsafe(kind, layout, dims, data1); + } + function caml_tanh_float(x){return Math.tanh(x);} + function caml_runtime_events_start(){return 0;} + function caml_gr_draw_str(str){ + var s = caml_gr_state_get(), m = s.context.measureText(str), dx = m.width; + s.context.fillText(str, s.x, s.height - s.y); + s.x += dx | 0; + return 0; + } + function caml_gr_draw_string(str){ + caml_gr_draw_str(caml_jsstring_of_string(str)); + return 0; + } + function ml_z_primorial(a){ + var one = bigInt(1), two = bigInt(2), z1 = one, res = one; + a = bigInt(a); + while(z1.leq(a)){ + if(z1.isProbablePrime(25)) res = res.multiply(z1); + if(z1.equals(one) || z1.equals(two)) + z1 = z1.add(one); + else + z1 = z1.add(two); + } + return ml_z_normalize(res); + } + function caml_gr_draw_char(c){ + caml_gr_draw_str(String.fromCharCode(c)); + return 0; + } + function caml_unmount(name){ + var + path = caml_make_path(name), + name = caml_trailing_slash(path.join("/")), + idx = - 1; + for(var i = 0; i < jsoo_mount_point.length; i++) + if(jsoo_mount_point[i].path == name) idx = i; + if(idx > - 1) jsoo_mount_point.splice(idx, 1); + return 0; + } + function caml_bigstring_blit_ba_to_ba(ba1, pos1, ba2, pos2, len){ + if(12 != ba1.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(12 != ba2.kind) + caml_invalid_argument("caml_bigstring_blit_ba_to_ba: kind mismatch"); + if(len == 0) return 0; + var ofs1 = ba1.offset(pos1), ofs2 = ba2.offset(pos2); + if(ofs1 + len > ba1.data.length) caml_array_bound_error(); + if(ofs2 + len > ba2.data.length) caml_array_bound_error(); + var slice = ba1.data.subarray(ofs1, ofs1 + len); + ba2.data.set(slice, pos2); + return 0; + } + function ml_z_fib(i){ + if(i < 0) caml_invalid_argument("Z.fib: negative arguments"); + if(i == 0 || i == 1) return i; + var a = bigInt(0), b = bigInt(1); + for(var k = 1; k < i; k++){var b2 = b; b = a.add(b); a = b2;} + return ml_z_normalize(b); + } + function caml_input_value_from_string(s, ofs){ + var reader = new MlStringReader(s, typeof ofs == "number" ? ofs : ofs[0]); + return caml_input_value_from_reader(reader, ofs); + } + function caml_ml_pos_in_64(chanid){ + return caml_int64_of_float(caml_pos_in(chanid)); + } + function caml_gr_draw_image(im, x, y){ + var s = caml_gr_state_get(); + if(! im.image){ + var canvas = document.createElement("canvas"); + canvas.width = s.width; + canvas.height = s.height; + canvas.getContext("2d").putImageData(im, 0, 0); + var image = new globalThis.Image(); + image.onload = + function(){ + s.context.drawImage(image, x, s.height - im.height - y); + im.image = image; + }; + image.src = canvas.toDataURL("image/png"); + } + else + s.context.drawImage(im.image, x, s.height - im.height - y); + return 0; + } + function caml_register_channel_for_spacetime(_channel){return 0;} + function caml_string_set(s, i, c){caml_failwith("caml_string_set");} + function caml_sys_rmdir(name){ + var root = resolve_fs_device(name); + root.device.rmdir(root.rest); + return 0; + } + function caml_unix_symlink(to_dir, src, dst){ + var src_root = resolve_fs_device(src), dst_root = resolve_fs_device(dst); + if(src_root.device != dst_root.device) + caml_failwith + ("caml_unix_symlink: cannot symlink between two filesystems"); + if(! src_root.device.symlink) + caml_failwith("caml_unix_symlink: not implemented"); + return src_root.device.symlink(to_dir, src_root.rest, dst_root.rest, true); + } + function caml_ml_pos_out(chanid){return caml_pos_out(chanid);} + function caml_spacetime_enabled(_unit){return 0;} + function caml_bytes_notequal(s1, s2){return 1 - caml_bytes_equal(s1, s2);} + function caml_runtime_parameters(_unit){return caml_string_of_jsbytes("");} + function caml_js_object(a){ + var o = {}; + for(var i = 1; i < a.length; i++){ + var p = a[i]; + o[caml_jsstring_of_string(p[1])] = p[2]; + } + return o; + } + function caml_ba_create(kind, layout, dims_ml){ + var + dims = caml_js_from_array(dims_ml), + data = caml_ba_create_buffer(kind, caml_ba_get_size(dims)); + return caml_ba_create_unsafe(kind, layout, dims, data); + } + function caml_gr_remember_mode(){ + caml_failwith("caml_gr_remember_mode not Implemented"); + } + function caml_fma_float(x, y, z){ + var + SPLIT = Math.pow(2, 27) + 1, + MIN_VALUE = Math.pow(2, - 1022), + EPSILON = Math.pow(2, - 52), + C = 416, + A = Math.pow(2, + C), + B = Math.pow(2, - C); + function multiply(a, b){ + var + at = SPLIT * a, + ahi = at - (at - a), + alo = a - ahi, + bt = SPLIT * b, + bhi = bt - (bt - b), + blo = b - bhi, + p = a * b, + e = ahi * bhi - p + ahi * blo + alo * bhi + alo * blo; + return {p: p, e: e}; + } + function add(a, b){ + var s = a + b, v = s - a, e = a - (s - v) + (b - v); + return {s: s, e: e}; + } + function adjust(x, y){ + return x !== 0 && y !== 0 && SPLIT * x - (SPLIT * x - x) === x + ? x * (1 + (x < 0 ? - 1 : + 1) * (y < 0 ? - 1 : + 1) * EPSILON) + : x; + } + if + (x === 0 || x !== x || x === + (1 / 0) || x === - (1 / 0) || y === 0 + || y !== y + || y === + (1 / 0) + || y === - (1 / 0)) + return x * y + z; + if(z === 0) return x * y; + if(z !== z || z === + (1 / 0) || z === - (1 / 0)) return z; + var scale = 1; + while(Math.abs(x) > A){scale *= A; x *= B;} + while(Math.abs(y) > A){scale *= A; y *= B;} + if(scale === 1 / 0) return x * y * scale; + while(Math.abs(x) < B){scale *= B; x *= A;} + while(Math.abs(y) < B){scale *= B; y *= A;} + if(scale === 0) return z; + var xs = x, ys = y, zs = z / scale; + if(Math.abs(zs) > Math.abs(xs * ys) * 4 / EPSILON) return z; + if(Math.abs(zs) < Math.abs(xs * ys) * EPSILON / 4 * EPSILON / 4) + zs = (z < 0 ? - 1 : + 1) * MIN_VALUE; + var + xy = multiply(xs, ys), + s = add(xy.p, zs), + u = add(xy.e, s.e), + i = add(s.s, u.s), + f = i.s + adjust(i.e, u.e); + if(f === 0) return f; + var fs = f * scale; + if(Math.abs(fs) > MIN_VALUE) return fs; + return fs + adjust(f - fs / scale, i.e) * scale; + } + function caml_recommended_domain_count(unit){return 1;} + function caml_bswap16(x){return (x & 0x00FF) << 8 | (x & 0xFF00) >> 8;} + function caml_ml_set_binary_mode(chanid, mode){ + var chan = caml_ml_channels[chanid]; + chan.file.flags.text = ! mode; + chan.file.flags.binary = mode; + return 0; + } + function caml_final_register(){return 0;} + function caml_gr_draw_rect(x, y, w, h){ + var s = caml_gr_state_get(); + s.context.strokeRect(x, s.height - y, w, - h); + return 0; + } + function caml_string_get16(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 1) caml_string_bound_error(); + var + b1 = caml_string_unsafe_get(s, i), + b2 = caml_string_unsafe_get(s, i + 1); + return b2 << 8 | b1; + } + function caml_output_value(chanid, v, flags){ + var s = caml_output_value_to_string(v, flags); + caml_ml_output(chanid, s, 0, caml_ml_string_length(s)); + return 0; + } + function caml_ba_get_3(ba, i0, i1, i2){ + return ba.get(ba.offset([i0, i1, i2])); + } + function caml_ephe_blit_key(a1, i1, a2, i2, len){ + caml_array_blit + (a1, + caml_ephe_key_offset + i1 - 1, + a2, + caml_ephe_key_offset + i2 - 1, + len); + return 0; + } + function ml_z_to_int32(z1){return ml_z_to_int(z1);} + var caml_initial_time = new Date().getTime() * 0.001; + function caml_sys_time(){ + var now = new Date().getTime(); + return now * 0.001 - caml_initial_time; + } + function caml_sys_time_include_children(b){return caml_sys_time();} + function caml_check_bound(array, index){ + if(index >>> 0 >= array.length - 1) caml_array_bound_error(); + return array; + } + function caml_unix_getpwuid(unit){caml_raise_not_found();} + function ml_z_compare(z1, z2){return bigInt(z1).compare(bigInt(z2));} + function caml_hash(count, limit, seed, obj){ + var queue, rd, wr, sz, num, h, v, i, len; + sz = limit; + if(sz < 0 || sz > 256) sz = 256; + num = count; + h = seed; + queue = [obj]; + rd = 0; + wr = 1; + while(rd < wr && num > 0){ + v = queue[rd++]; + if(v && v.caml_custom){ + if + (caml_custom_ops[v.caml_custom] && caml_custom_ops[v.caml_custom].hash){ + var hh = caml_custom_ops[v.caml_custom].hash(v); + h = caml_hash_mix_int(h, hh); + num--; + } + } + else if(v instanceof Array && v[0] === (v[0] | 0)) + switch(v[0]){ + case 248: + h = caml_hash_mix_int(h, v[2]); num--; break; + case 250: + queue[--rd] = v[1]; break; + default: + if(caml_is_continuation_tag(v[0])) break; + var tag = v.length - 1 << 10 | v[0]; + h = caml_hash_mix_int(h, tag); + for(i = 1, len = v.length; i < len; i++){if(wr >= sz) break; queue[wr++] = v[i]; + } + break; + } + else if(caml_is_ml_bytes(v)){ + h = caml_hash_mix_bytes(h, v); + num--; + } + else if(caml_is_ml_string(v)){ + h = caml_hash_mix_string(h, v); + num--; + } + else if(typeof v === "string"){ + h = caml_hash_mix_jsbytes(h, v); + num--; + } + else if(v === (v | 0)){ + h = caml_hash_mix_int(h, v + v + 1); + num--; + } + else if(v === + v){h = caml_hash_mix_float(h, v); num--;} + } + h = caml_hash_mix_final(h); + return h & 0x3FFFFFFF; + } + function caml_ba_to_typed_array(ba){return ba.data;} + function caml_domain_dls_get(unit){return caml_domain_dls;} + function caml_bytes_get32(s, i){ + if(i >>> 0 >= s.l - 3) caml_bytes_bound_error(); + var + b1 = caml_bytes_unsafe_get(s, i), + b2 = caml_bytes_unsafe_get(s, i + 1), + b3 = caml_bytes_unsafe_get(s, i + 2), + b4 = caml_bytes_unsafe_get(s, i + 3); + return b4 << 24 | b3 << 16 | b2 << 8 | b1; + } + function caml_frexp_float(x){ + if(x == 0 || ! isFinite(x)) return [0, x, 0]; + var neg = x < 0; + if(neg) x = - x; + var exp = Math.max(- 1023, jsoo_floor_log2(x) + 1); + x *= Math.pow(2, - exp); + while(x < 0.5){x *= 2; exp--;} + while(x >= 1){x *= 0.5; exp++;} + if(neg) x = - x; + return [0, x, exp]; + } + function ml_z_pred(z1){return ml_z_normalize(bigInt(z1).prev());} + function caml_string_get64(s, i){ + if(i >>> 0 >= caml_ml_string_length(s) - 7) caml_string_bound_error(); + var a = new Array(8); + for(var j = 0; j < 8; j++) a[7 - j] = caml_string_unsafe_get(s, i + j); + return caml_int64_of_bytes(a); + } + function caml_js_error_option_of_exception(exn){ + if(exn.js_error) return [0, exn.js_error]; + return 0; + } + function caml_ml_pos_out_64(chanid){ + return caml_int64_of_float(caml_pos_out(chanid)); + } + function ml_z_remove(a, b){ + var zero = bigInt(0), one = bigInt(1); + a = bigInt(a); + b = bigInt(b); + if(b.equals(zero)) caml_raise_zero_divide(); + if(a.equals(zero) || b.abs().equals(one)) return [0, a, 0]; + var i = 0; + while(a.isDivisibleBy(b)){a = a.divide(b); i++;} + return [0, ml_z_normalize(a), i]; + } + function ml_z_extract(z1, pos, len){ + z1 = bigInt(z1); + return ml_z_normalize + (z1.shiftRight(pos).and(bigInt(2).pow(len).subtract(1))); + } + function ml_z_of_float(f1){ + if(f1 == Infinity || f1 == - Infinity || f1 != f1) + caml_raise_constant(caml_named_value("ml_z_overflow")); + return ml_z_normalize(bigInt(f1 < 0 ? Math.ceil(f1) : Math.floor(f1))); + } + function ml_z_lognot(z1){return ml_z_normalize(bigInt(z1).not());} + function caml_unix_findclose(dir_handle){return caml_unix_closedir(dir_handle); + } + function caml_gr_close_subwindow(a){ + caml_failwith("caml_gr_close_subwindow not Implemented"); + } + function caml_floatarray_blit(a1, i1, a2, i2, len){ + if(i2 <= i1) + for(var j = 1; j <= len; j++) a2[i2 + j] = a1[i1 + j]; + else + for(var j = len; j >= 1; j--) a2[i2 + j] = a1[i1 + j]; + return 0; + } + function caml_get_minor_free(unit){return 0;} + function caml_set_static_env(k, v){ + if(! globalThis.jsoo_static_env) globalThis.jsoo_static_env = {}; + globalThis.jsoo_static_env[k] = v; + return 0; + } + function caml_ba_change_layout(ba, layout){ + if(ba.layout == layout) return ba; + var new_dims = []; + for(var i = 0; i < ba.dims.length; i++) + new_dims[i] = ba.dims[ba.dims.length - i - 1]; + return caml_ba_create_unsafe(ba.kind, layout, new_dims, ba.data); + } + function caml_js_new(c, a){ + switch(a.length){ + case 1: + return new c(); + case 2: + return new c(a[1]); + case 3: + return new c(a[1], a[2]); + case 4: + return new c(a[1], a[2], a[3]); + case 5: + return new c(a[1], a[2], a[3], a[4]); + case 6: + return new c(a[1], a[2], a[3], a[4], a[5]); + case 7: + return new c(a[1], a[2], a[3], a[4], a[5], a[6]); + case 8: + return new c(a[1], a[2], a[3], a[4], a[5], a[6], a[7]); + } + function F(){return c.apply(this, caml_js_from_array(a));} + F.prototype = c.prototype; + return new F(); + } + function caml_gr_current_y(){var s = caml_gr_state_get(); return s.y;} + function caml_format_int(fmt, i){ + if(caml_jsbytes_of_string(fmt) == "%d") + return caml_string_of_jsbytes("" + i); + var f = caml_parse_format(fmt); + if(i < 0) if(f.signedconv){f.sign = - 1; i = - i;} else i >>>= 0; + var s = i.toString(f.base); + if(f.prec >= 0){ + f.filler = " "; + var n = f.prec - s.length; + if(n > 0) s = caml_str_repeat(n, "0") + s; + } + return caml_finish_formatting(f, s); + } + function jsoo_effect_not_supported(){ + caml_failwith("Effect handlers are not supported"); + } + function caml_continuation_use_and_update_handler_noexc + (cont, hval, hexn, heff){ + var stack = caml_continuation_use_noexc(cont); + stack[3] = [0, hval, hexn, heff]; + return stack; + } + function caml_obj_truncate(x, s){ + if(s <= 0 || s + 1 > x.length) caml_invalid_argument("Obj.truncate"); + if(x.length != s + 1) x.length = s + 1; + return 0; + } + function caml_js_to_string(s){return caml_string_of_jsstring(s);} + function is_digit_odd(nat, ofs){if(nat.data[ofs] & 1) return 1; return 0;} + function caml_runtime_variant(_unit){return caml_string_of_jsbytes("");} + function caml_ml_open_descriptor_out(fd){ + var file = caml_sys_fds[fd]; + if(file.flags.rdonly) caml_raise_sys_error("fd " + fd + " is readonly"); + var + buffered = file.flags.buffered !== undefined ? file.flags.buffered : 1, + channel = + {file: file, + offset: file.flags.append ? file.length() : 0, + fd: fd, + opened: true, + out: true, + buffer_curr: 0, + buffer: new Uint8Array(65536), + buffered: buffered}; + caml_ml_channels[channel.fd] = channel; + return channel.fd; + } + function caml_array_concat(l){ + var a = [0]; + while(l !== 0){ + var b = l[1]; + for(var i = 1; i < b.length; i++) a.push(b[i]); + l = l[2]; + } + return a; + } + function caml_gr_open_graph(info){ + var info = caml_jsstring_of_string(info); + function get(name){ + var res = info.match("(^|,) *" + name + " *= *([a-zA-Z0-9_]+) *(,|$)"); + if(res) return res[2]; + } + var specs = []; + if(! (info == "")) specs.push(info); + var target = get("target"); + if(! target) target = ""; + var status = get("status"); + if(! status) specs.push("status=1"); + var w = get("width"); + w = w ? parseInt(w) : 200; + specs.push("width=" + w); + var h = get("height"); + h = h ? parseInt(h) : 200; + specs.push("height=" + h); + var win = globalThis.open("about:blank", target, specs.join(",")); + if(! win) caml_failwith("Graphics.open_graph: cannot open the window"); + var doc = win.document, canvas = doc.createElement("canvas"); + canvas.width = w; + canvas.height = h; + var ctx = caml_gr_state_create(canvas, w, h); + ctx.set_title = function(title){doc.title = title;}; + caml_gr_state_set(ctx); + var body = doc.body; + body.style.margin = "0px"; + body.appendChild(canvas); + return 0; + } + function caml_make_float_vect(len){ + if(len < 0) caml_array_bound_error(); + var len = len + 1 | 0, b = new Array(len); + b[0] = 254; + for(var i = 1; i < len; i++) b[i] = 0; + return b; + } + function caml_cbrt_float(x){return Math.cbrt(x);} + function caml_eventlog_pause(unit){return 0;} + function caml_memprof_stop(unit){return 0;} + function caml_greaterequal(x, y){ + return + (caml_compare_val(x, y, false) >= 0); + } + function ml_z_numbits(z1){ + z1 = bigInt(z1).abs(); + var n = 0, upperBound = bigInt.one; + while(upperBound.leq(z1)){n += 1; upperBound = upperBound.multiply(2);} + return n; + } + function caml_get_exception_raw_backtrace(){return [0];} + function caml_log1p_float(x){return Math.log1p(x);} + function caml_runtime_events_free_cursor(cursor){return 0;} + function caml_lazy_make_forward(v){return [250, v];} + function lor_digit_nat(nat1, ofs1, nat2, ofs2){nat1.data[ofs1] |= nat2.data[ofs2]; return 0; + } + function caml_gr_blit_image(im, x, y){ + var + s = caml_gr_state_get(), + im2 = + s.context.getImageData + (x, s.height - im.height - y, im.width, im.height); + for(var i = 0; i < im2.data.length; i += 4){ + im.data[i] = im2.data[i]; + im.data[i + 1] = im2.data[i + 1]; + im.data[i + 2] = im2.data[i + 2]; + im.data[i + 3] = im2.data[i + 3]; + } + return 0; + } + function caml_gr_window_id(a){ + caml_failwith("caml_gr_window_id not Implemented"); + } + function caml_js_on_ie(){ + var ua = globalThis.navigator ? globalThis.navigator.userAgent : ""; + return ua.indexOf("MSIE") != - 1 && ua.indexOf("Opera") != 0; + } + function caml_int64_shift_right(x, s){return x.shift_right(s);} + function caml_ba_layout(ba){return ba.layout;} + function caml_convert_raw_backtrace(){return [0];} + function caml_array_set(array, index, newval){ + if(index < 0 || index >= array.length - 1) caml_array_bound_error(); + array[index + 1] = newval; + return 0; + } + function caml_alloc_stack(hv, hx, hf){return 0;} + function caml_bytes_greaterequal(s1, s2){return caml_bytes_lessequal(s2, s1); + } + function ml_z_perfect_power(z){ + z = bigInt(z); + var zero = bigInt(0), one = bigInt(1); + if(z.equals(zero) || z.equals(one) || z.equals(one.negate())) return 1; + var log2z = ml_z_numbits(z.abs()); + for(var b = 2; b <= log2z; b++){ + if(z.lt(zero) && b % 2 == 0) continue; + var zp = z.abs(), p = bigInt(ml_z_root(zp, b)); + if(z.lt(zero)) p = p.negate(); + var r = bigInt(ml_z_pow(p, b)); + if(z.equals(r)) return 1; + } + return 0; + } + function set_digit_nat(nat, ofs, digit){nat.data[ofs] = digit; return 0;} + function ml_z_init(unit){ + caml_custom_ops["_z"] = + {serialize: caml_zarith_marshal, + deserialize: caml_zarith_unmarshal, + hash: ml_z_hash, + compare: ml_z_compare}; + return 0; + } + function caml_bytes_set16(s, i, i16){ + if(i >>> 0 >= s.l - 1) caml_bytes_bound_error(); + var b2 = 0xFF & i16 >> 8, b1 = 0xFF & i16; + caml_bytes_unsafe_set(s, i + 0, b1); + caml_bytes_unsafe_set(s, i + 1, b2); + return 0; + } + function caml_gr_doc_of_state(state){ + if(state.canvas.ownerDocument) return state.canvas.ownerDocument; + } + function caml_ml_output_int(chanid, i){ + var + arr = [i >> 24 & 0xFF, i >> 16 & 0xFF, i >> 8 & 0xFF, i & 0xFF], + s = caml_string_of_array(arr); + caml_ml_output(chanid, s, 0, 4); + return 0; + } + function caml_obj_with_tag(tag, x){ + var l = x.length, a = new Array(l); + a[0] = tag; + for(var i = 1; i < l; i++) a[i] = x[i]; + return a; + } + function caml_ml_channel_size(chanid){ + var chan = caml_ml_channels[chanid]; + return chan.file.length(); + } + function caml_raw_backtrace_slot(){ + caml_invalid_argument + ("Printexc.get_raw_backtrace_slot: index out of bounds"); + } + function caml_hexstring_of_float(x, prec, style){ + if(! isFinite(x)){ + if(isNaN(x)) return caml_string_of_jsstring("nan"); + return caml_string_of_jsstring(x > 0 ? "infinity" : "-infinity"); + } + var sign = x == 0 && 1 / x == - Infinity ? 1 : x >= 0 ? 0 : 1; + if(sign) x = - x; + var exp = 0; + if(x == 0) + ; + else if(x < 1) + while(x < 1 && exp > - 1022){x *= 2; exp--;} + else + while(x >= 2){x /= 2; exp++;} + var exp_sign = exp < 0 ? "" : "+", sign_str = ""; + if(sign) + sign_str = "-"; + else + switch(style){ + case 43: + sign_str = "+"; break; + case 32: + sign_str = " "; break; + default: break; + } + if(prec >= 0 && prec < 13){ + var cst = Math.pow(2, prec * 4); + x = Math.round(x * cst) / cst; + } + var x_str = x.toString(16); + if(prec >= 0){ + var idx = x_str.indexOf("."); + if(idx < 0) + x_str += "." + caml_str_repeat(prec, "0"); + else{ + var size = idx + 1 + prec; + if(x_str.length < size) + x_str += caml_str_repeat(size - x_str.length, "0"); + else + x_str = x_str.substr(0, size); + } + } + return caml_string_of_jsstring + (sign_str + "0x" + x_str + "p" + exp_sign + exp.toString(10)); + } + function caml_runtime_events_user_write(event, event_content){return 0;} + function caml_js_wrap_meth_callback_strict(arity, f){ + return function(){ + var args = new Array(arity + 1), len = Math.min(arguments.length, arity); + args[0] = this; + for(var i = 0; i < len; i++) args[i + 1] = arguments[i]; + return caml_callback(f, args);}; + } + function ml_z_format(fmt, z1){ + z1 = bigInt(z1); + var + fmt = caml_jsbytes_of_string(fmt), + base = 10, + cas = 0, + width = 0, + alt = 0, + dir = 0, + sign = "", + pad = " ", + idx = 0, + prefix = ""; + while(fmt[idx] == "%") idx++; + for(;; idx++) + if(fmt[idx] == "#") + alt = 1; + else if(fmt[idx] == "0") + pad = "0"; + else if(fmt[idx] == "-") + dir = 1; + else if(fmt[idx] == " " || fmt[idx] == "+") sign = fmt[idx]; else break; + if(z1.lt(bigInt(0))){sign = "-"; z1 = z1.negate();} + for(; fmt[idx] >= "0" && fmt[idx] <= "9"; idx++) + width = 10 * width + + fmt[idx]; + switch(fmt[idx]){ + case "i": + case "d": + case "u": break; + case "b": + base = 2; if(alt) prefix = "0b"; break; + case "o": + base = 8; if(alt) prefix = "0o"; break; + case "x": + base = 16; if(alt) prefix = "0x"; break; + case "X": + base = 16; if(alt) prefix = "0X"; cas = 1; break; + default: caml_failwith("Unsupported format '" + fmt + "'"); + } + if(dir) pad = " "; + var res = z1.toString(base); + if(cas === 1) res = res.toUpperCase(); + var size = res.length; + if(pad == " ") + if(dir){ + res = sign + prefix + res; + for(; res.length < width;) res = res + pad; + } + else{ + res = sign + prefix + res; + for(; res.length < width;) res = pad + res; + } + else{ + var pre = sign + prefix; + for(; res.length + pre.length < width;) res = pad + res; + res = pre + res; + } + return caml_string_of_jsbytes(res); + } + function ml_z_size(z1){ + return bigInt(z1).toArray(Math.pow(2, 32)).value.length; + } + function ml_z_to_int64(z1){ + z1 = bigInt(z1); + if(! ml_z_fits_int64(z1)) + caml_raise_constant(caml_named_value("ml_z_overflow")); + var + mask = bigInt(0xffffffff), + lo = z1.and(mask).toJSNumber(), + hi = z1.shiftRight(32).and(mask).toJSNumber(), + x = caml_int64_create_lo_hi(lo, hi); + return x; + } + function caml_unix_readlink(name){ + var root = resolve_fs_device(name); + if(! root.device.readlink) + caml_failwith("caml_unix_readlink: not implemented"); + return root.device.readlink(root.rest, true); + } + function caml_backtrace_status(_unit){ + return caml_record_backtrace_flag ? 1 : 0; + } + function caml_install_signal_handler(){return 0;} + function caml_sys_argv(a){return caml_argv;} + function caml_ba_fill(ba, v){ba.fill(v); return 0;} + function caml_modf_float(x){ + if(isFinite(x)){ + var neg = 1 / x < 0; + x = Math.abs(x); + var i = Math.floor(x), f = x - i; + if(neg){i = - i; f = - f;} + return [0, f, i]; + } + if(isNaN(x)) return [0, NaN, NaN]; + return [0, 1 / x, x]; + } + function caml_gc_get(){return [0, 0, 0, 0, 0, 0, 0, 0, 0];} + function caml_float_compare(x, y){ + if(x === y) return 0; + if(x < y) return - 1; + if(x > y) return 1; + if(x === x) return 1; + if(y === y) return - 1; + return 0; + } + function ml_z_shift_right_trunc(z1, z2){ + return ml_z_div(bigInt(z1), bigInt(2).pow(z2)); + } + function caml_string_set32(s, i, i32){caml_failwith("caml_string_set32");} + function caml_parse_engine(tables, env, cmd, arg){ + var + ERRCODE = 256, + loop = 6, + testshift = 7, + shift = 8, + shift_recover = 9, + reduce = 10, + READ_TOKEN = 0, + RAISE_PARSE_ERROR = 1, + GROW_STACKS_1 = 2, + GROW_STACKS_2 = 3, + COMPUTE_SEMANTIC_ACTION = 4, + CALL_ERROR_FUNCTION = 5, + env_s_stack = 1, + env_v_stack = 2, + env_symb_start_stack = 3, + env_symb_end_stack = 4, + env_stacksize = 5, + env_stackbase = 6, + env_curr_char = 7, + env_lval = 8, + env_symb_start = 9, + env_symb_end = 10, + env_asp = 11, + env_rule_len = 12, + env_rule_number = 13, + env_sp = 14, + env_state = 15, + env_errflag = 16, + tbl_transl_const = 2, + tbl_transl_block = 3, + tbl_lhs = 4, + tbl_len = 5, + tbl_defred = 6, + tbl_dgoto = 7, + tbl_sindex = 8, + tbl_rindex = 9, + tbl_gindex = 10, + tbl_tablesize = 11, + tbl_table = 12, + tbl_check = 13, + tbl_names_const = 15, + tbl_names_block = 16; + function log(x){ + var s = caml_string_of_jsbytes(x + "\n"); + caml_ml_output(2, s, 0, caml_ml_string_length(s)); + } + function token_name(names, number){ + var str = caml_jsstring_of_string(names); + if(str[0] == "\x00") return ""; + return str.split("\x00")[number]; + } + function print_token(state, tok){ + var token, kind; + if(tok instanceof Array){ + token = token_name(tables[tbl_names_block], tok[0]); + if(typeof tok[1] == "number") + kind = "" + tok[1]; + else if(typeof tok[1] == "string") + kind = tok[1]; + else if(tok[1] instanceof MlBytes) + kind = caml_jsbytes_of_string(tok[1]); + else + kind = "_"; + log("State " + state + ": read token " + token + "(" + kind + ")"); + } + else{ + token = token_name(tables[tbl_names_const], tok); + log("State " + state + ": read token " + token); + } + } + if(! tables.dgoto){ + tables.defred = caml_lex_array(tables[tbl_defred]); + tables.sindex = caml_lex_array(tables[tbl_sindex]); + tables.check = caml_lex_array(tables[tbl_check]); + tables.rindex = caml_lex_array(tables[tbl_rindex]); + tables.table = caml_lex_array(tables[tbl_table]); + tables.len = caml_lex_array(tables[tbl_len]); + tables.lhs = caml_lex_array(tables[tbl_lhs]); + tables.gindex = caml_lex_array(tables[tbl_gindex]); + tables.dgoto = caml_lex_array(tables[tbl_dgoto]); + } + var + res = 0, + n, + n1, + n2, + state1, + sp = env[env_sp], + state = env[env_state], + errflag = env[env_errflag]; + exit: + for(;;) + next: + switch(cmd){ + case 0: + state = 0; errflag = 0; + case 6: + n = tables.defred[state]; + if(n != 0){cmd = reduce; break;} + if(env[env_curr_char] >= 0){cmd = testshift; break;} + res = READ_TOKEN; + break exit; + case 1: + if(arg instanceof Array){ + env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; + env[env_lval] = arg[1]; + } + else{ + env[env_curr_char] = tables[tbl_transl_const][arg + 1]; + env[env_lval] = 0; + } + if(caml_parser_trace) print_token(state, arg); + case 7: + n1 = tables.sindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == env[env_curr_char]){cmd = shift; break;} + n1 = tables.rindex[state]; + n2 = n1 + env[env_curr_char]; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == env[env_curr_char]){ + n = tables.table[n2]; + cmd = reduce; + break; + } + if(errflag <= 0){res = CALL_ERROR_FUNCTION; break exit;} + case 5: + if(errflag < 3){ + errflag = 3; + for(;;){ + state1 = env[env_s_stack][sp + 1]; + n1 = tables.sindex[state1]; + n2 = n1 + ERRCODE; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == ERRCODE){ + if(caml_parser_trace) log("Recovering in state " + state1); + cmd = shift_recover; + break next; + } + else{ + if(caml_parser_trace) log("Discarding state " + state1); + if(sp <= env[env_stackbase]){ + if(caml_parser_trace) log("No more states to discard"); + return RAISE_PARSE_ERROR; + } + sp--; + } + } + } + else{ + if(env[env_curr_char] == 0) return RAISE_PARSE_ERROR; + if(caml_parser_trace) log("Discarding last token read"); + env[env_curr_char] = - 1; + cmd = loop; + break; + } + case 8: + env[env_curr_char] = - 1; if(errflag > 0) errflag--; + case 9: + if(caml_parser_trace) + log("State " + state + ": shift to state " + tables.table[n2]); + state = tables.table[n2]; + sp++; + if(sp >= env[env_stacksize]){res = GROW_STACKS_1; break exit;} + case 2: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = env[env_lval]; + env[env_symb_start_stack][sp + 1] = env[env_symb_start]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end]; + cmd = loop; + break; + case 10: + if(caml_parser_trace) log("State " + state + ": reduce by rule " + n); + var m = tables.len[n]; + env[env_asp] = sp; + env[env_rule_number] = n; + env[env_rule_len] = m; + sp = sp - m + 1; + m = tables.lhs[n]; + state1 = env[env_s_stack][sp]; + n1 = tables.gindex[m]; + n2 = n1 + state1; + if + (n1 != 0 && n2 >= 0 && n2 <= tables[tbl_tablesize] + && tables.check[n2] == state1) + state = tables.table[n2]; else - {token = token_name(tables[tbl_names_const],tok); - log("State " + state + ": read token " + token)}} - if(! tables.dgoto) - {tables.defred = caml_lex_array(tables[tbl_defred]); - tables.sindex = caml_lex_array(tables[tbl_sindex]); - tables.check = caml_lex_array(tables[tbl_check]); - tables.rindex = caml_lex_array(tables[tbl_rindex]); - tables.table = caml_lex_array(tables[tbl_table]); - tables.len = caml_lex_array(tables[tbl_len]); - tables.lhs = caml_lex_array(tables[tbl_lhs]); - tables.gindex = caml_lex_array(tables[tbl_gindex]); - tables.dgoto = caml_lex_array(tables[tbl_dgoto])} - var - res=0, - n, - n1, - n2, - state1, - sp=env[env_sp], - state=env[env_state], - errflag=env[env_errflag]; - exit: - for(;;) - next: - switch(cmd) - {case 0:state = 0;errflag = 0; - case 6: - n = tables.defred[state]; - if(n != 0){cmd = reduce;break} - if(env[env_curr_char] >= 0){cmd = testshift;break} - res = READ_TOKEN; - break exit; - case 1: - if(arg instanceof Array) - {env[env_curr_char] = tables[tbl_transl_block][arg[0] + 1]; - env[env_lval] = arg[1]} - else - {env[env_curr_char] = tables[tbl_transl_const][arg + 1]; - env[env_lval] = 0} - if(caml_parser_trace)print_token(state,arg); - case 7: - n1 = tables.sindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - env[env_curr_char]) - {cmd = shift;break} - n1 = tables.rindex[state]; - n2 = n1 + env[env_curr_char]; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - env[env_curr_char]) - {n = tables.table[n2];cmd = reduce;break} - if(errflag <= 0){res = CALL_ERROR_FUNCTION;break exit} - case 5: - if(errflag < 3) - {errflag = 3; - for(;;) - {state1 = env[env_s_stack][sp + 1]; - n1 = tables.sindex[state1]; - n2 = n1 + ERRCODE; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - ERRCODE) - {if(caml_parser_trace)log("Recovering in state " + state1); - cmd = shift_recover; - break next} - else - {if(caml_parser_trace)log("Discarding state " + state1); - if(sp <= env[env_stackbase]) - {if(caml_parser_trace)log("No more states to discard"); - return RAISE_PARSE_ERROR} - sp--}}} - else - {if(env[env_curr_char] == 0)return RAISE_PARSE_ERROR; - if(caml_parser_trace)log("Discarding last token read"); - env[env_curr_char] = - 1; - cmd = loop; - break} - case 8:env[env_curr_char] = - 1;if(errflag > 0)errflag--; - case 9: - if(caml_parser_trace) - log("State " + state + ": shift to state " + tables.table[n2]); - state = tables.table[n2]; - sp++; - if(sp >= env[env_stacksize]){res = GROW_STACKS_1;break exit} - case 2: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = env[env_lval]; - env[env_symb_start_stack][sp + 1] = env[env_symb_start]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end]; - cmd = loop; - break; - case 10: - if(caml_parser_trace) - log("State " + state + ": reduce by rule " + n); - var m=tables.len[n]; - env[env_asp] = sp; - env[env_rule_number] = n; - env[env_rule_len] = m; - sp = sp - m + 1; - m = tables.lhs[n]; - state1 = env[env_s_stack][sp]; - n1 = tables.gindex[m]; - n2 = n1 + state1; - if - (n1 - != - 0 - && - n2 - >= - 0 - && - n2 - <= - tables[tbl_tablesize] - && - tables.check[n2] - == - state1) - state = tables.table[n2]; - else - state = tables.dgoto[m]; - if(sp >= env[env_stacksize]){res = GROW_STACKS_2;break exit} - case 3:res = COMPUTE_SEMANTIC_ACTION;break exit; - case 4: - env[env_s_stack][sp + 1] = state; - env[env_v_stack][sp + 1] = arg; - var asp=env[env_asp]; - env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; - if(sp > asp) - env[env_symb_start_stack][sp + 1] - = - env[env_symb_end_stack][asp + 1]; - cmd = loop; - break; - default:return RAISE_PARSE_ERROR} - env[env_sp] = sp; - env[env_state] = state; - env[env_errflag] = errflag; - return res} - function caml_jsoo_flags_effects(unit){return 0} - function caml_update_dummy(x,y) - {if(typeof y === "function"){x.fun = y;return 0} - if(y.fun){x.fun = y.fun;return 0} - var i=y.length; - while(i--)x[i] = y[i]; - return 0} - function caml_array_fill(array,ofs,len,v) - {for(var i=0;i < len;i++)array[ofs + i + 1] = v;return 0} - function caml_sys_mkdir(name,perm) - {var root=resolve_fs_device(name); - root.device.mkdir(root.rest,perm); - return 0} - function caml_string_notequal(s1,s2){return 1 - caml_string_equal(s1,s2)} - function caml_bytes_greaterthan(s1,s2){return caml_bytes_lessthan(s2,s1)} - function caml_gr_make_image(arr) - {var - s=caml_gr_state_get(), - h=arr.length - 1, - w=arr[1].length - 1, - im=s.context.createImageData(w,h); - for(var i=0;i < h;i++) - for(var j=0;j < w;j++) - {var c=arr[i + 1][j + 1],o=i * (w * 4) + j * 4; - if(c == - 1) - {im.data[o + 0] = 0; - im.data[o + 1] = 0; - im.data[o + 2] = 0; - im.data[o + 3] = 0} - else - {im.data[o + 0] = c >> 16 & 0xff; - im.data[o + 1] = c >> 8 & 0xff; - im.data[o + 2] = c >> 0 & 0Xff; - im.data[o + 3] = 0xff}} - return im} - function caml_ml_set_channel_output(chanid,f) - {var chan=caml_ml_channels[chanid]; - chan.output = function(s){f(s)}; - return 0} - function caml_read_file_content(name) - {var - name=typeof name == "string"?caml_string_of_jsbytes(name):name, - root=resolve_fs_device(name); - if(root.device.exists(root.rest)) - {var - file=root.device.open(root.rest,{rdonly:1}), - len=file.length(), - buf=new Uint8Array(len); - file.read(0,buf,0,len); - return caml_string_of_array(buf)} - caml_raise_no_such_file(caml_jsbytes_of_string(name))} - function caml_js_to_float(x){return x} - function caml_setup_uncaught_exception_handler() - {var process=globalThis.process; - if(process && process.on) - process.on - ("uncaughtException", - function(err,origin) - {caml_fatal_uncaught_exception(err);process.exit(2)}); - else - if(globalThis.addEventListener) - globalThis.addEventListener - ("error", - function(event) - {if(event.error)caml_fatal_uncaught_exception(event.error)})} - caml_setup_uncaught_exception_handler(); - globalThis.jsoo_runtime - = - {ml_z_normalize:ml_z_normalize, - ml_z_mul_overflows:ml_z_mul_overflows, - ml_z_init:ml_z_init, - ml_z_neg:ml_z_neg, - ml_z_add:ml_z_add, - ml_z_sub:ml_z_sub, - ml_z_mul:ml_z_mul, - ml_z_div:ml_z_div, - ml_z_cdiv:ml_z_cdiv, - ml_z_fdiv:ml_z_fdiv, - ml_z_rem:ml_z_rem, - ml_z_div_rem:ml_z_div_rem, - ml_z_succ:ml_z_succ, - ml_z_pred:ml_z_pred, - ml_z_abs:ml_z_abs, - ml_z_logand:ml_z_logand, - ml_z_logor:ml_z_logor, - ml_z_logxor:ml_z_logxor, - ml_z_lognot:ml_z_lognot, - ml_z_shift_left:ml_z_shift_left, - ml_z_shift_right:ml_z_shift_right, - ml_z_shift_right_trunc:ml_z_shift_right_trunc, - ml_z_of_int32:ml_z_of_int32, - ml_z_of_nativeint:ml_z_of_nativeint, - ml_z_of_int64:ml_z_of_int64, - ml_z_of_float:ml_z_of_float, - ml_z_to_int:ml_z_to_int, - ml_z_to_int32:ml_z_to_int32, - ml_z_to_int64:ml_z_to_int64, - ml_z_testbit:ml_z_testbit, - ml_z_to_nativeint:ml_z_to_nativeint, - ml_z_format:ml_z_format, - jsoo_z_of_js_string_base:jsoo_z_of_js_string_base, - ml_z_of_substring_base:ml_z_of_substring_base, - ml_z_compare:ml_z_compare, - ml_z_equal:ml_z_equal, - ml_z_sign:ml_z_sign, - ml_z_gcd:ml_z_gcd, - ml_z_numbits:ml_z_numbits, - ml_z_fits_int:ml_z_fits_int, - ml_z_fits_int32:ml_z_fits_int32, - ml_z_fits_int64:ml_z_fits_int64, - ml_z_fits_nativeint:ml_z_fits_nativeint, - ml_z_powm:ml_z_powm, - ml_z_pow:ml_z_pow, - ml_z_hash:ml_z_hash, - ml_z_to_bits:ml_z_to_bits, - ml_z_of_bits:ml_z_of_bits, - ml_z_powm_sec:ml_z_powm_sec, - ml_z_root:ml_z_root, - ml_z_rootrem:ml_z_rootrem, - ml_z_invert:ml_z_invert, - ml_z_perfect_power:ml_z_perfect_power, - ml_z_perfect_square:ml_z_perfect_square, - ml_z_probab_prime:ml_z_probab_prime, - ml_z_nextprime:ml_z_nextprime, - ml_z_extract:ml_z_extract, - ml_z_gcdext_intern:ml_z_gcdext_intern, - ml_z_sqrt:ml_z_sqrt, - ml_z_sqrt_rem:ml_z_sqrt_rem, - ml_z_trailing_zeros:ml_z_trailing_zeros, - ml_z_popcount:ml_z_popcount, - ml_z_hamdist:ml_z_hamdist, - ml_z_size:ml_z_size, - ml_z_divexact:ml_z_divexact, - caml_zarith_marshal:caml_zarith_marshal, - caml_zarith_unmarshal:caml_zarith_unmarshal, - ml_z_divisible:ml_z_divisible, - ml_z_congruent:ml_z_congruent, - ml_z_remove:ml_z_remove, - ml_z_fac:ml_z_fac, - ml_z_fac2:ml_z_fac2, - ml_z_facM:ml_z_facM, - ml_z_fib:ml_z_fib, - ml_z_lucnum:ml_z_lucnum, - ml_z_jacobi:ml_z_jacobi, - ml_z_legendre:ml_z_legendre, - ml_z_kronecker:ml_z_kronecker, - ml_z_primorial:ml_z_primorial, - ml_z_bin:ml_z_bin, - bigInt:bigInt, - caml_alloc_stack:caml_alloc_stack, - caml_continuation_use_noexc:caml_continuation_use_noexc, + state = tables.dgoto[m]; + if(sp >= env[env_stacksize]){res = GROW_STACKS_2; break exit;} + case 3: + res = COMPUTE_SEMANTIC_ACTION; break exit; + case 4: + env[env_s_stack][sp + 1] = state; + env[env_v_stack][sp + 1] = arg; + var asp = env[env_asp]; + env[env_symb_end_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; + if(sp > asp) + env[env_symb_start_stack][sp + 1] = env[env_symb_end_stack][asp + 1]; + cmd = loop; + break; + default: return RAISE_PARSE_ERROR; + } + env[env_sp] = sp; + env[env_state] = state; + env[env_errflag] = errflag; + return res; + } + function caml_jsoo_flags_effects(unit){return 0;} + function caml_update_dummy(x, y){ + if(typeof y === "function"){x.fun = y; return 0;} + if(y.fun){x.fun = y.fun; return 0;} + var i = y.length; + while(i--) x[i] = y[i]; + return 0; + } + function caml_array_fill(array, ofs, len, v){ + for(var i = 0; i < len; i++) array[ofs + i + 1] = v; + return 0; + } + function caml_sys_mkdir(name, perm){ + var root = resolve_fs_device(name); + root.device.mkdir(root.rest, perm); + return 0; + } + function caml_string_notequal(s1, s2){ + return 1 - caml_string_equal(s1, s2); + } + function caml_bytes_greaterthan(s1, s2){return caml_bytes_lessthan(s2, s1); + } + function caml_gr_make_image(arr){ + var + s = caml_gr_state_get(), + h = arr.length - 1, + w = arr[1].length - 1, + im = s.context.createImageData(w, h); + for(var i = 0; i < h; i++) + for(var j = 0; j < w; j++){ + var c = arr[i + 1][j + 1], o = i * (w * 4) + j * 4; + if(c == - 1){ + im.data[o + 0] = 0; + im.data[o + 1] = 0; + im.data[o + 2] = 0; + im.data[o + 3] = 0; + } + else{ + im.data[o + 0] = c >> 16 & 0xff; + im.data[o + 1] = c >> 8 & 0xff; + im.data[o + 2] = c >> 0 & 0Xff; + im.data[o + 3] = 0xff; + } + } + return im; + } + function caml_ml_set_channel_output(chanid, f){ + var chan = caml_ml_channels[chanid]; + chan.output = function(s){f(s);}; + return 0; + } + function caml_read_file_content(name){ + var + name = typeof name == "string" ? caml_string_of_jsbytes(name) : name, + root = resolve_fs_device(name); + if(root.device.exists(root.rest)){ + var + file = root.device.open(root.rest, {rdonly: 1}), + len = file.length(), + buf = new Uint8Array(len); + file.read(0, buf, 0, len); + return caml_string_of_array(buf); + } + caml_raise_no_such_file(caml_jsbytes_of_string(name)); + } + function caml_js_to_float(x){return x;} + function caml_setup_uncaught_exception_handler(){ + var process = globalThis.process; + if(process && process.on) + process.on + ("uncaughtException", + function(err, origin){ + caml_fatal_uncaught_exception(err); + process.exit(2); + }); + else if(globalThis.addEventListener) + globalThis.addEventListener + ("error", + function(event){ + if(event.error) caml_fatal_uncaught_exception(event.error); + }); + } + caml_setup_uncaught_exception_handler(); + globalThis.jsoo_runtime = + {ml_z_bin: ml_z_bin, + ml_z_primorial: ml_z_primorial, + ml_z_kronecker: ml_z_kronecker, + ml_z_legendre: ml_z_legendre, + ml_z_jacobi: ml_z_jacobi, + ml_z_lucnum: ml_z_lucnum, + ml_z_fib: ml_z_fib, + ml_z_facM: ml_z_facM, + ml_z_fac2: ml_z_fac2, + ml_z_fac: ml_z_fac, + ml_z_remove: ml_z_remove, + ml_z_congruent: ml_z_congruent, + ml_z_divisible: ml_z_divisible, + caml_zarith_unmarshal: caml_zarith_unmarshal, + caml_zarith_marshal: caml_zarith_marshal, + ml_z_divexact: ml_z_divexact, + ml_z_size: ml_z_size, + ml_z_hamdist: ml_z_hamdist, + ml_z_popcount: ml_z_popcount, + ml_z_trailing_zeros: ml_z_trailing_zeros, + ml_z_sqrt_rem: ml_z_sqrt_rem, + ml_z_sqrt: ml_z_sqrt, + ml_z_gcdext_intern: ml_z_gcdext_intern, + ml_z_extract: ml_z_extract, + ml_z_nextprime: ml_z_nextprime, + ml_z_probab_prime: ml_z_probab_prime, + ml_z_perfect_square: ml_z_perfect_square, + ml_z_perfect_power: ml_z_perfect_power, + ml_z_invert: ml_z_invert, + ml_z_rootrem: ml_z_rootrem, + ml_z_root: ml_z_root, + ml_z_powm_sec: ml_z_powm_sec, + ml_z_of_bits: ml_z_of_bits, + ml_z_to_bits: ml_z_to_bits, + ml_z_hash: ml_z_hash, + ml_z_pow: ml_z_pow, + ml_z_powm: ml_z_powm, + ml_z_fits_nativeint: ml_z_fits_nativeint, + ml_z_fits_int64: ml_z_fits_int64, + ml_z_fits_int32: ml_z_fits_int32, + ml_z_fits_int: ml_z_fits_int, + ml_z_numbits: ml_z_numbits, + ml_z_gcd: ml_z_gcd, + ml_z_sign: ml_z_sign, + ml_z_equal: ml_z_equal, + ml_z_compare: ml_z_compare, + ml_z_of_substring_base: ml_z_of_substring_base, + jsoo_z_of_js_string_base: jsoo_z_of_js_string_base, + ml_z_format: ml_z_format, + ml_z_to_nativeint: ml_z_to_nativeint, + ml_z_testbit: ml_z_testbit, + ml_z_to_int64: ml_z_to_int64, + ml_z_to_int32: ml_z_to_int32, + ml_z_to_int: ml_z_to_int, + ml_z_of_float: ml_z_of_float, + ml_z_of_int64: ml_z_of_int64, + ml_z_of_nativeint: ml_z_of_nativeint, + ml_z_of_int32: ml_z_of_int32, + ml_z_shift_right_trunc: ml_z_shift_right_trunc, + ml_z_shift_right: ml_z_shift_right, + ml_z_shift_left: ml_z_shift_left, + ml_z_lognot: ml_z_lognot, + ml_z_logxor: ml_z_logxor, + ml_z_logor: ml_z_logor, + ml_z_logand: ml_z_logand, + ml_z_abs: ml_z_abs, + ml_z_pred: ml_z_pred, + ml_z_succ: ml_z_succ, + ml_z_div_rem: ml_z_div_rem, + ml_z_rem: ml_z_rem, + ml_z_fdiv: ml_z_fdiv, + ml_z_cdiv: ml_z_cdiv, + ml_z_div: ml_z_div, + ml_z_mul: ml_z_mul, + ml_z_sub: ml_z_sub, + ml_z_add: ml_z_add, + ml_z_neg: ml_z_neg, + ml_z_init: ml_z_init, + ml_z_mul_overflows: ml_z_mul_overflows, + ml_z_normalize: ml_z_normalize, + bigInt: bigInt, + caml_runtime_events_read_poll: caml_runtime_events_read_poll, + caml_runtime_events_free_cursor: caml_runtime_events_free_cursor, + caml_runtime_events_create_cursor: caml_runtime_events_create_cursor, + caml_runtime_events_resume: caml_runtime_events_resume, + caml_runtime_events_pause: caml_runtime_events_pause, + caml_runtime_events_start: caml_runtime_events_start, + caml_runtime_events_user_resolve: caml_runtime_events_user_resolve, + caml_runtime_events_user_write: caml_runtime_events_user_write, + caml_runtime_events_user_register: caml_runtime_events_user_register, + caml_custom_event_index: caml_custom_event_index, + zstd_decompress: zstd_decompress, + jsoo_effect_not_supported: jsoo_effect_not_supported, + caml_ml_condition_signal: caml_ml_condition_signal, + caml_ml_condition_broadcast: caml_ml_condition_broadcast, + caml_ml_condition_wait: caml_ml_condition_wait, + caml_ml_condition_new: caml_ml_condition_new, + caml_get_continuation_callstack: caml_get_continuation_callstack, caml_continuation_use_and_update_handler_noexc: caml_continuation_use_and_update_handler_noexc, - caml_get_continuation_callstack:caml_get_continuation_callstack, - caml_ml_condition_new:caml_ml_condition_new, - caml_ml_condition_wait:caml_ml_condition_wait, - caml_ml_condition_broadcast:caml_ml_condition_broadcast, - caml_ml_condition_signal:caml_ml_condition_signal, - jsoo_effect_not_supported:jsoo_effect_not_supported, - MlMutex:MlMutex, - caml_ml_mutex_new:caml_ml_mutex_new, - caml_ml_mutex_lock:caml_ml_mutex_lock, - caml_ml_mutex_try_lock:caml_ml_mutex_try_lock, - caml_ml_mutex_unlock:caml_ml_mutex_unlock, - caml_lxm_next:caml_lxm_next, - caml_domain_dls:caml_domain_dls, - caml_domain_dls_set:caml_domain_dls_set, - caml_domain_dls_get:caml_domain_dls_get, - caml_atomic_load:caml_atomic_load, - caml_atomic_cas:caml_atomic_cas, - caml_atomic_fetch_add:caml_atomic_fetch_add, - caml_atomic_exchange:caml_atomic_exchange, - caml_ml_domain_unique_token:caml_ml_domain_unique_token, - caml_ml_domain_set_name:caml_ml_domain_set_name, - caml_recommended_domain_count:caml_recommended_domain_count, - caml_domain_id:caml_domain_id, - caml_domain_spawn:caml_domain_spawn, - caml_ml_domain_id:caml_ml_domain_id, - caml_ml_domain_cpu_relax:caml_ml_domain_cpu_relax, - caml_ephe_key_offset:caml_ephe_key_offset, - caml_ephe_data_offset:caml_ephe_data_offset, - caml_ephe_set_key:caml_ephe_set_key, - caml_ephe_unset_key:caml_ephe_unset_key, - caml_ephe_create:caml_ephe_create, - caml_weak_create:caml_weak_create, - caml_weak_set:caml_weak_set, - caml_ephe_get_key:caml_ephe_get_key, - caml_ephe_get_key_copy:caml_ephe_get_key_copy, - caml_ephe_check_key:caml_ephe_check_key, - caml_ephe_blit_key:caml_ephe_blit_key, - caml_ephe_blit_data:caml_ephe_blit_data, - caml_ephe_get_data:caml_ephe_get_data, - caml_ephe_get_data_copy:caml_ephe_get_data_copy, - caml_ephe_set_data:caml_ephe_set_data, - caml_ephe_unset_data:caml_ephe_unset_data, - caml_ephe_check_data:caml_ephe_check_data, - caml_unix_gettimeofday:caml_unix_gettimeofday, - caml_unix_time:caml_unix_time, - caml_unix_gmtime:caml_unix_gmtime, - caml_unix_localtime:caml_unix_localtime, - caml_unix_mktime:caml_unix_mktime, - caml_unix_startup:caml_unix_startup, - caml_unix_cleanup:caml_unix_cleanup, - caml_unix_filedescr_of_fd:caml_unix_filedescr_of_fd, - caml_unix_isatty:caml_unix_isatty, - make_unix_err_args:make_unix_err_args, - caml_unix_stat:caml_unix_stat, - caml_unix_stat_64:caml_unix_stat_64, - caml_unix_lstat:caml_unix_lstat, - caml_unix_lstat_64:caml_unix_lstat_64, - caml_unix_mkdir:caml_unix_mkdir, - caml_unix_rmdir:caml_unix_rmdir, - caml_unix_symlink:caml_unix_symlink, - caml_unix_readlink:caml_unix_readlink, - caml_unix_unlink:caml_unix_unlink, - caml_unix_getuid:caml_unix_getuid, - caml_unix_getpwuid:caml_unix_getpwuid, - caml_unix_has_symlink:caml_unix_has_symlink, - caml_unix_opendir:caml_unix_opendir, - caml_unix_readdir:caml_unix_readdir, - caml_unix_closedir:caml_unix_closedir, - caml_unix_rewinddir:caml_unix_rewinddir, - caml_unix_findfirst:caml_unix_findfirst, - caml_unix_findnext:caml_unix_findnext, - caml_unix_findclose:caml_unix_findclose, - caml_unix_inet_addr_of_string:caml_unix_inet_addr_of_string, - re_match:re_match, - re_search_forward:re_search_forward, - re_search_backward:re_search_backward, - re_string_match:re_string_match, - re_partial_match:re_partial_match, - re_replacement_text:re_replacement_text, - caml_str_initialize:caml_str_initialize, - caml_raise_sys_error:caml_raise_sys_error, - caml_sys_exit:caml_sys_exit, - caml_is_special_exception:caml_is_special_exception, - caml_format_exception:caml_format_exception, - caml_fatal_uncaught_exception:caml_fatal_uncaught_exception, - caml_set_static_env:caml_set_static_env, - caml_sys_getenv:caml_sys_getenv, - caml_sys_unsafe_getenv:caml_sys_unsafe_getenv, - caml_argv:caml_argv, - caml_executable_name:caml_executable_name, - caml_sys_get_argv:caml_sys_get_argv, - caml_sys_argv:caml_sys_argv, - caml_sys_modify_argv:caml_sys_modify_argv, - caml_sys_executable_name:caml_sys_executable_name, - caml_sys_system_command:caml_sys_system_command, - caml_sys_time:caml_sys_time, - caml_sys_time_include_children:caml_sys_time_include_children, - caml_sys_random_seed:caml_sys_random_seed, - caml_sys_const_big_endian:caml_sys_const_big_endian, - caml_sys_const_word_size:caml_sys_const_word_size, - caml_sys_const_int_size:caml_sys_const_int_size, - caml_sys_const_max_wosize:caml_sys_const_max_wosize, - caml_sys_const_ostype_unix:caml_sys_const_ostype_unix, - caml_sys_const_ostype_win32:caml_sys_const_ostype_win32, - caml_sys_const_ostype_cygwin:caml_sys_const_ostype_cygwin, - caml_sys_const_backend_type:caml_sys_const_backend_type, - os_type:os_type, - caml_sys_get_config:caml_sys_get_config, - caml_sys_isatty:caml_sys_isatty, - caml_runtime_variant:caml_runtime_variant, - caml_runtime_parameters:caml_runtime_parameters, - caml_install_signal_handler:caml_install_signal_handler, - caml_runtime_warnings:caml_runtime_warnings, - caml_ml_enable_runtime_warnings:caml_ml_enable_runtime_warnings, - caml_ml_runtime_warnings_enabled:caml_ml_runtime_warnings_enabled, - caml_spacetime_enabled:caml_spacetime_enabled, - caml_sys_const_naked_pointers_checked: - caml_sys_const_naked_pointers_checked, - caml_register_channel_for_spacetime:caml_register_channel_for_spacetime, + caml_continuation_use_noexc: caml_continuation_use_noexc, + caml_alloc_stack: caml_alloc_stack, + caml_ml_mutex_unlock: caml_ml_mutex_unlock, + caml_ml_mutex_try_lock: caml_ml_mutex_try_lock, + caml_ml_mutex_lock: caml_ml_mutex_lock, + caml_ml_mutex_new: caml_ml_mutex_new, + MlMutex: MlMutex, + caml_lxm_next: caml_lxm_next, + caml_ml_domain_cpu_relax: caml_ml_domain_cpu_relax, + caml_ml_domain_id: caml_ml_domain_id, + caml_domain_spawn: caml_domain_spawn, + caml_domain_id: caml_domain_id, + caml_recommended_domain_count: caml_recommended_domain_count, + caml_ml_domain_set_name: caml_ml_domain_set_name, + caml_ml_domain_unique_token: caml_ml_domain_unique_token, + caml_atomic_exchange: caml_atomic_exchange, + caml_atomic_fetch_add: caml_atomic_fetch_add, + caml_atomic_cas: caml_atomic_cas, + caml_atomic_load: caml_atomic_load, + caml_domain_dls_get: caml_domain_dls_get, + caml_domain_dls_set: caml_domain_dls_set, + caml_domain_dls: caml_domain_dls, + caml_ephe_check_data: caml_ephe_check_data, + caml_ephe_unset_data: caml_ephe_unset_data, + caml_ephe_set_data: caml_ephe_set_data, + caml_ephe_get_data_copy: caml_ephe_get_data_copy, + caml_ephe_get_data: caml_ephe_get_data, + caml_ephe_blit_data: caml_ephe_blit_data, + caml_ephe_blit_key: caml_ephe_blit_key, + caml_ephe_check_key: caml_ephe_check_key, + caml_ephe_get_key_copy: caml_ephe_get_key_copy, + caml_ephe_get_key: caml_ephe_get_key, + caml_weak_set: caml_weak_set, + caml_weak_create: caml_weak_create, + caml_ephe_create: caml_ephe_create, + caml_ephe_unset_key: caml_ephe_unset_key, + caml_ephe_set_key: caml_ephe_set_key, + caml_ephe_data_offset: caml_ephe_data_offset, + caml_ephe_key_offset: caml_ephe_key_offset, + caml_unix_inet_addr_of_string: caml_unix_inet_addr_of_string, + caml_unix_findclose: caml_unix_findclose, + caml_unix_findnext: caml_unix_findnext, + caml_unix_findfirst: caml_unix_findfirst, + caml_unix_rewinddir: caml_unix_rewinddir, + caml_unix_closedir: caml_unix_closedir, + caml_unix_readdir: caml_unix_readdir, + caml_unix_opendir: caml_unix_opendir, + caml_unix_has_symlink: caml_unix_has_symlink, + caml_unix_getpwuid: caml_unix_getpwuid, + caml_unix_getuid: caml_unix_getuid, + caml_unix_unlink: caml_unix_unlink, + caml_unix_readlink: caml_unix_readlink, + caml_unix_symlink: caml_unix_symlink, + caml_unix_rmdir: caml_unix_rmdir, + caml_unix_mkdir: caml_unix_mkdir, + caml_unix_lstat_64: caml_unix_lstat_64, + caml_unix_lstat: caml_unix_lstat, + caml_unix_stat_64: caml_unix_stat_64, + caml_unix_stat: caml_unix_stat, + make_unix_err_args: make_unix_err_args, + caml_unix_isatty: caml_unix_isatty, + caml_unix_filedescr_of_fd: caml_unix_filedescr_of_fd, + caml_unix_cleanup: caml_unix_cleanup, + caml_unix_startup: caml_unix_startup, + caml_unix_mktime: caml_unix_mktime, + caml_unix_localtime: caml_unix_localtime, + caml_unix_gmtime: caml_unix_gmtime, + caml_unix_time: caml_unix_time, + caml_unix_gettimeofday: caml_unix_gettimeofday, + caml_str_initialize: caml_str_initialize, + re_replacement_text: re_replacement_text, + re_partial_match: re_partial_match, + re_string_match: re_string_match, + re_search_backward: re_search_backward, + re_search_forward: re_search_forward, + re_match: re_match, + caml_sys_is_regular_file: caml_sys_is_regular_file, caml_spacetime_only_works_for_native_code: caml_spacetime_only_works_for_native_code, - caml_call_gen:caml_call_gen, - caml_named_values:caml_named_values, - caml_register_named_value:caml_register_named_value, - caml_named_value:caml_named_value, - caml_global_data:caml_global_data, - caml_register_global:caml_register_global, - caml_get_global_data:caml_get_global_data, - caml_is_printable:caml_is_printable, - caml_maybe_print_stats:caml_maybe_print_stats, - caml_parser_trace:caml_parser_trace, - caml_parse_engine:caml_parse_engine, - caml_set_parser_trace:caml_set_parser_trace, - caml_update_dummy:caml_update_dummy, - caml_obj_is_block:caml_obj_is_block, - caml_obj_tag:caml_obj_tag, - caml_obj_set_tag:caml_obj_set_tag, - caml_obj_block:caml_obj_block, - caml_obj_with_tag:caml_obj_with_tag, - caml_obj_dup:caml_obj_dup, - caml_obj_truncate:caml_obj_truncate, - caml_obj_make_forward:caml_obj_make_forward, - caml_obj_compare_and_swap:caml_obj_compare_and_swap, - caml_obj_is_shared:caml_obj_is_shared, - caml_lazy_make_forward:caml_lazy_make_forward, - caml_get_public_method:caml_get_public_method, - caml_oo_last_id:caml_oo_last_id, - caml_set_oo_id:caml_set_oo_id, - caml_fresh_oo_id:caml_fresh_oo_id, - caml_obj_raw_field:caml_obj_raw_field, - caml_obj_set_raw_field:caml_obj_set_raw_field, - caml_obj_reachable_words:caml_obj_reachable_words, - caml_obj_add_offset:caml_obj_add_offset, - caml_obj_update_tag:caml_obj_update_tag, - caml_lazy_update_to_forcing:caml_lazy_update_to_forcing, - caml_lazy_update_to_forward:caml_lazy_update_to_forward, - caml_lazy_reset_to_lazy:caml_lazy_reset_to_lazy, - caml_lazy_read_result:caml_lazy_read_result, - caml_is_continuation_tag:caml_is_continuation_tag, - initialize_nat:initialize_nat, - MlNat:MlNat, - caml_hash_nat:caml_hash_nat, - nat_of_array:nat_of_array, - create_nat:create_nat, - set_to_zero_nat:set_to_zero_nat, - blit_nat:blit_nat, - set_digit_nat:set_digit_nat, - nth_digit_nat:nth_digit_nat, - set_digit_nat_native:set_digit_nat_native, - nth_digit_nat_native:nth_digit_nat_native, - num_digits_nat:num_digits_nat, - num_leading_zero_bits_in_digit:num_leading_zero_bits_in_digit, - is_digit_int:is_digit_int, - is_digit_zero:is_digit_zero, - is_digit_odd:is_digit_odd, - incr_nat:incr_nat, - add_nat:add_nat, - complement_nat:complement_nat, - decr_nat:decr_nat, - sub_nat:sub_nat, - mult_digit_nat:mult_digit_nat, - mult_nat:mult_nat, - square_nat:square_nat, - shift_left_nat:shift_left_nat, - div_helper:div_helper, - div_digit_nat:div_digit_nat, - div_nat:div_nat, - shift_right_nat:shift_right_nat, - compare_digits_nat:compare_digits_nat, - compare_nat:compare_nat, - compare_nat_real:compare_nat_real, - land_digit_nat:land_digit_nat, - lor_digit_nat:lor_digit_nat, - lxor_digit_nat:lxor_digit_nat, - serialize_nat:serialize_nat, - deserialize_nat:deserialize_nat, - caml_str_repeat:caml_str_repeat, - caml_subarray_to_jsbytes:caml_subarray_to_jsbytes, - caml_utf8_of_utf16:caml_utf8_of_utf16, - caml_utf16_of_utf8:caml_utf16_of_utf8, - jsoo_is_ascii:jsoo_is_ascii, - caml_bytes_unsafe_get:caml_bytes_unsafe_get, - caml_bytes_unsafe_set:caml_bytes_unsafe_set, - caml_string_bound_error:caml_string_bound_error, - caml_bytes_bound_error:caml_bytes_bound_error, - caml_string_get:caml_string_get, - caml_string_get16:caml_string_get16, - caml_bytes_get16:caml_bytes_get16, - caml_string_get32:caml_string_get32, - caml_bytes_get32:caml_bytes_get32, - caml_string_get64:caml_string_get64, - caml_bytes_get64:caml_bytes_get64, - caml_bytes_get:caml_bytes_get, - caml_string_set:caml_string_set, - caml_bytes_set16:caml_bytes_set16, - caml_string_set16:caml_string_set16, - caml_bytes_set32:caml_bytes_set32, - caml_string_set32:caml_string_set32, - caml_bytes_set64:caml_bytes_set64, - caml_string_set64:caml_string_set64, - caml_bytes_set:caml_bytes_set, - caml_bytes_of_utf16_jsstring:caml_bytes_of_utf16_jsstring, - MlBytes:MlBytes, - caml_convert_string_to_bytes:caml_convert_string_to_bytes, - caml_convert_bytes_to_array:caml_convert_bytes_to_array, - caml_uint8_array_of_bytes:caml_uint8_array_of_bytes, - caml_uint8_array_of_string:caml_uint8_array_of_string, - caml_create_string:caml_create_string, - caml_create_bytes:caml_create_bytes, - caml_string_of_array:caml_string_of_array, - caml_bytes_of_array:caml_bytes_of_array, - caml_bytes_compare:caml_bytes_compare, - caml_bytes_equal:caml_bytes_equal, - caml_string_notequal:caml_string_notequal, - caml_bytes_notequal:caml_bytes_notequal, - caml_bytes_lessequal:caml_bytes_lessequal, - caml_bytes_lessthan:caml_bytes_lessthan, - caml_string_greaterequal:caml_string_greaterequal, - caml_bytes_greaterequal:caml_bytes_greaterequal, - caml_string_greaterthan:caml_string_greaterthan, - caml_bytes_greaterthan:caml_bytes_greaterthan, - caml_fill_bytes:caml_fill_bytes, - caml_blit_bytes:caml_blit_bytes, - caml_blit_string:caml_blit_string, - caml_ml_bytes_length:caml_ml_bytes_length, - caml_bytes_of_jsbytes:caml_bytes_of_jsbytes, - caml_string_unsafe_get:caml_string_unsafe_get, - caml_string_unsafe_set:caml_string_unsafe_set, - caml_ml_string_length:caml_ml_string_length, - caml_string_compare:caml_string_compare, - caml_string_equal:caml_string_equal, - caml_string_lessequal:caml_string_lessequal, - caml_string_lessthan:caml_string_lessthan, - caml_string_of_bytes:caml_string_of_bytes, - caml_bytes_of_string:caml_bytes_of_string, - caml_string_of_jsbytes:caml_string_of_jsbytes, - caml_jsbytes_of_string:caml_jsbytes_of_string, - caml_jsstring_of_string:caml_jsstring_of_string, - caml_string_of_jsstring:caml_string_of_jsstring, - caml_is_ml_bytes:caml_is_ml_bytes, - caml_ml_bytes_content:caml_ml_bytes_content, - caml_is_ml_string:caml_is_ml_string, - caml_js_to_byte_string:caml_js_to_byte_string, - caml_new_string:caml_new_string, - caml_js_from_string:caml_js_from_string, - caml_to_js_string:caml_to_js_string, - caml_js_to_string:caml_js_to_string, - caml_array_of_string:caml_array_of_string, - caml_array_of_bytes:caml_array_of_bytes, - caml_md5_chan:caml_md5_chan, - caml_md5_string:caml_md5_string, - caml_MD5Transform:caml_MD5Transform, - caml_MD5Init:caml_MD5Init, - caml_MD5Update:caml_MD5Update, - caml_MD5Final:caml_MD5Final, - caml_md5_bytes:caml_md5_bytes, - caml_marshal_constants:caml_marshal_constants, - MlStringReader:MlStringReader, - BigStringReader:BigStringReader, - caml_float_of_bytes:caml_float_of_bytes, - caml_input_value_from_string:caml_input_value_from_string, - caml_input_value_from_bytes:caml_input_value_from_bytes, - caml_int64_unmarshal:caml_int64_unmarshal, - caml_int64_marshal:caml_int64_marshal, - caml_int32_unmarshal:caml_int32_unmarshal, - caml_nativeint_unmarshal:caml_nativeint_unmarshal, - caml_custom_ops:caml_custom_ops, - caml_input_value_from_reader:caml_input_value_from_reader, - caml_marshal_data_size:caml_marshal_data_size, - MlObjectTable:MlObjectTable, - caml_legacy_custom_code:caml_legacy_custom_code, - caml_output_val:caml_output_val, - caml_output_value_to_string:caml_output_value_to_string, - caml_output_value_to_bytes:caml_output_value_to_bytes, - caml_output_value_to_buffer:caml_output_value_to_buffer, - caml_lex_array:caml_lex_array, - caml_lex_engine:caml_lex_engine, - caml_new_lex_engine:caml_new_lex_engine, - caml_js_on_ie:caml_js_on_ie, - caml_js_html_escape:caml_js_html_escape, - caml_js_html_entities:caml_js_html_entities, - caml_js_get_console:caml_js_get_console, - caml_xmlhttprequest_create:caml_xmlhttprequest_create, - caml_js_error_of_exception:caml_js_error_of_exception, - caml_js_pure_expr:caml_js_pure_expr, - caml_js_set:caml_js_set, - caml_js_get:caml_js_get, - caml_js_delete:caml_js_delete, - caml_js_instanceof:caml_js_instanceof, - caml_js_typeof:caml_js_typeof, - caml_trampoline:caml_trampoline, - caml_trampoline_return:caml_trampoline_return, - caml_callback:caml_callback, - caml_is_js:caml_is_js, - caml_jsoo_flags_use_js_string:caml_jsoo_flags_use_js_string, - caml_jsoo_flags_effects:caml_jsoo_flags_effects, - caml_wrap_exception:caml_wrap_exception, - caml_exn_with_js_backtrace:caml_exn_with_js_backtrace, - caml_js_error_option_of_exception:caml_js_error_option_of_exception, - caml_js_from_bool:caml_js_from_bool, - caml_js_to_bool:caml_js_to_bool, - caml_js_from_float:caml_js_from_float, - caml_js_to_float:caml_js_to_float, - caml_js_from_array:caml_js_from_array, - caml_js_to_array:caml_js_to_array, - caml_list_of_js_array:caml_list_of_js_array, - caml_list_to_js_array:caml_list_to_js_array, - caml_js_var:caml_js_var, - caml_js_call:caml_js_call, - caml_js_fun_call:caml_js_fun_call, - caml_js_meth_call:caml_js_meth_call, - caml_js_new:caml_js_new, - caml_ojs_new_arr:caml_ojs_new_arr, - caml_js_wrap_callback:caml_js_wrap_callback, - caml_js_wrap_callback_arguments:caml_js_wrap_callback_arguments, - caml_js_wrap_callback_strict:caml_js_wrap_callback_strict, - caml_js_wrap_callback_unsafe:caml_js_wrap_callback_unsafe, - caml_js_wrap_meth_callback:caml_js_wrap_meth_callback, - caml_js_wrap_meth_callback_arguments:caml_js_wrap_meth_callback_arguments, - caml_js_wrap_meth_callback_strict:caml_js_wrap_meth_callback_strict, - caml_js_wrap_meth_callback_unsafe:caml_js_wrap_meth_callback_unsafe, - caml_js_function_arity:caml_js_function_arity, - caml_js_equals:caml_js_equals, - caml_js_eval_string:caml_js_eval_string, - caml_js_expr:caml_js_expr, - caml_pure_js_expr:caml_pure_js_expr, - caml_js_object:caml_js_object, - caml_sys_fds:caml_sys_fds, - caml_sys_close:caml_sys_close, - caml_sys_open:caml_sys_open, - caml_ml_set_channel_name:caml_ml_set_channel_name, - caml_ml_channels:caml_ml_channels, - caml_ml_out_channels_list:caml_ml_out_channels_list, - caml_ml_open_descriptor_out:caml_ml_open_descriptor_out, - caml_ml_open_descriptor_in:caml_ml_open_descriptor_in, - caml_channel_descriptor:caml_channel_descriptor, - caml_ml_set_binary_mode:caml_ml_set_binary_mode, - caml_ml_close_channel:caml_ml_close_channel, - caml_ml_channel_size:caml_ml_channel_size, - caml_ml_channel_size_64:caml_ml_channel_size_64, - caml_ml_set_channel_output:caml_ml_set_channel_output, - caml_ml_set_channel_refill:caml_ml_set_channel_refill, - caml_refill:caml_refill, - caml_ml_input:caml_ml_input, - caml_ml_input_block:caml_ml_input_block, - caml_input_value:caml_input_value, - caml_input_value_to_outside_heap:caml_input_value_to_outside_heap, - caml_ml_input_char:caml_ml_input_char, - caml_ml_input_int:caml_ml_input_int, - caml_seek_in:caml_seek_in, - caml_ml_seek_in:caml_ml_seek_in, - caml_ml_seek_in_64:caml_ml_seek_in_64, - caml_pos_in:caml_pos_in, - caml_ml_pos_in:caml_ml_pos_in, - caml_ml_pos_in_64:caml_ml_pos_in_64, - caml_ml_input_scan_line:caml_ml_input_scan_line, - caml_ml_flush:caml_ml_flush, - caml_ml_output_bytes:caml_ml_output_bytes, - caml_ml_output:caml_ml_output, - caml_ml_output_char:caml_ml_output_char, - caml_output_value:caml_output_value, - caml_seek_out:caml_seek_out, - caml_ml_seek_out:caml_ml_seek_out, - caml_ml_seek_out_64:caml_ml_seek_out_64, - caml_pos_out:caml_pos_out, - caml_ml_pos_out:caml_ml_pos_out, - caml_ml_pos_out_64:caml_ml_pos_out_64, - caml_ml_output_int:caml_ml_output_int, - caml_ml_is_buffered:caml_ml_is_buffered, - caml_ml_set_buffered:caml_ml_set_buffered, - caml_format_int:caml_format_int, - caml_parse_sign_and_base:caml_parse_sign_and_base, - caml_parse_digit:caml_parse_digit, - caml_int_of_string:caml_int_of_string, - caml_mul:caml_mul, - caml_div:caml_div, - caml_mod:caml_mod, - caml_bswap16:caml_bswap16, - caml_int32_bswap:caml_int32_bswap, - caml_int64_bswap:caml_int64_bswap, - caml_int64_offset:caml_int64_offset, - MlInt64:MlInt64, - caml_int64_ult:caml_int64_ult, - caml_int64_compare:caml_int64_compare, - caml_int64_neg:caml_int64_neg, - caml_int64_add:caml_int64_add, - caml_int64_sub:caml_int64_sub, - caml_int64_mul:caml_int64_mul, - caml_int64_is_zero:caml_int64_is_zero, - caml_int64_is_negative:caml_int64_is_negative, - caml_int64_and:caml_int64_and, - caml_int64_or:caml_int64_or, - caml_int64_xor:caml_int64_xor, - caml_int64_shift_left:caml_int64_shift_left, - caml_int64_shift_right_unsigned:caml_int64_shift_right_unsigned, - caml_int64_shift_right:caml_int64_shift_right, - caml_int64_div:caml_int64_div, - caml_int64_mod:caml_int64_mod, - caml_int64_of_int32:caml_int64_of_int32, - caml_int64_to_int32:caml_int64_to_int32, - caml_int64_to_float:caml_int64_to_float, - caml_int64_of_float:caml_int64_of_float, - caml_int64_format:caml_int64_format, - caml_int64_of_string:caml_int64_of_string, - caml_int64_create_lo_mi_hi:caml_int64_create_lo_mi_hi, - caml_int64_create_lo_hi:caml_int64_create_lo_hi, - caml_int64_lo32:caml_int64_lo32, - caml_int64_hi32:caml_int64_hi32, - caml_int64_of_bytes:caml_int64_of_bytes, - caml_int64_to_bytes:caml_int64_to_bytes, - caml_int64_hash:caml_int64_hash, - jsoo_floor_log2:jsoo_floor_log2, - caml_int64_bits_of_float:caml_int64_bits_of_float, - caml_int32_bits_of_float:caml_int32_bits_of_float, - caml_hexstring_of_float:caml_hexstring_of_float, - caml_int64_float_of_bits:caml_int64_float_of_bits, - caml_nextafter_float:caml_nextafter_float, - caml_trunc_float:caml_trunc_float, - caml_int32_float_of_bits:caml_int32_float_of_bits, - caml_classify_float:caml_classify_float, - caml_modf_float:caml_modf_float, - caml_ldexp_float:caml_ldexp_float, - caml_frexp_float:caml_frexp_float, - caml_float_compare:caml_float_compare, - caml_copysign_float:caml_copysign_float, - caml_signbit_float:caml_signbit_float, - caml_expm1_float:caml_expm1_float, - caml_exp2_float:caml_exp2_float, - caml_log1p_float:caml_log1p_float, - caml_log2_float:caml_log2_float, - caml_hypot_float:caml_hypot_float, - caml_log10_float:caml_log10_float, - caml_cosh_float:caml_cosh_float, - caml_acosh_float:caml_acosh_float, - caml_sinh_float:caml_sinh_float, - caml_asinh_float:caml_asinh_float, - caml_tanh_float:caml_tanh_float, - caml_atanh_float:caml_atanh_float, - caml_round_float:caml_round_float, - caml_cbrt_float:caml_cbrt_float, - caml_erf_float:caml_erf_float, - caml_erfc_float:caml_erfc_float, - caml_fma_float:caml_fma_float, - caml_format_float:caml_format_float, - caml_float_of_string:caml_float_of_string, - caml_hash_mix_int:caml_hash_mix_int, - caml_hash_mix_final:caml_hash_mix_final, - caml_hash_mix_float:caml_hash_mix_float, - caml_hash_mix_int64:caml_hash_mix_int64, - caml_hash_mix_jsbytes:caml_hash_mix_jsbytes, - caml_hash_mix_bytes_arr:caml_hash_mix_bytes_arr, - caml_hash_mix_bytes:caml_hash_mix_bytes, - caml_hash_mix_string:caml_hash_mix_string, - caml_hash:caml_hash, - caml_string_hash:caml_string_hash, - caml_gr_state:caml_gr_state, - caml_gr_state_get:caml_gr_state_get, - caml_gr_state_set:caml_gr_state_set, - caml_gr_open_graph:caml_gr_open_graph, - caml_gr_state_init:caml_gr_state_init, - caml_gr_state_create:caml_gr_state_create, - caml_gr_doc_of_state:caml_gr_doc_of_state, - caml_gr_close_graph:caml_gr_close_graph, - caml_gr_set_window_title:caml_gr_set_window_title, - caml_gr_resize_window:caml_gr_resize_window, - caml_gr_clear_graph:caml_gr_clear_graph, - caml_gr_size_x:caml_gr_size_x, - caml_gr_size_y:caml_gr_size_y, - caml_gr_set_color:caml_gr_set_color, - caml_gr_plot:caml_gr_plot, - caml_gr_point_color:caml_gr_point_color, - caml_gr_moveto:caml_gr_moveto, - caml_gr_current_x:caml_gr_current_x, - caml_gr_current_y:caml_gr_current_y, - caml_gr_lineto:caml_gr_lineto, - caml_gr_draw_rect:caml_gr_draw_rect, - caml_gr_arc_aux:caml_gr_arc_aux, - caml_gr_draw_arc:caml_gr_draw_arc, - caml_gr_set_line_width:caml_gr_set_line_width, - caml_gr_fill_rect:caml_gr_fill_rect, - caml_gr_fill_poly:caml_gr_fill_poly, - caml_gr_fill_arc:caml_gr_fill_arc, - caml_gr_draw_str:caml_gr_draw_str, - caml_gr_draw_char:caml_gr_draw_char, - caml_gr_draw_string:caml_gr_draw_string, - caml_gr_set_font:caml_gr_set_font, - caml_gr_set_text_size:caml_gr_set_text_size, - caml_gr_text_size:caml_gr_text_size, - caml_gr_make_image:caml_gr_make_image, - caml_gr_dump_image:caml_gr_dump_image, - caml_gr_draw_image:caml_gr_draw_image, - caml_gr_create_image:caml_gr_create_image, - caml_gr_blit_image:caml_gr_blit_image, - caml_gr_sigio_handler:caml_gr_sigio_handler, - caml_gr_sigio_signal:caml_gr_sigio_signal, - caml_gr_wait_event:caml_gr_wait_event, - caml_gr_synchronize:caml_gr_synchronize, - caml_gr_remember_mode:caml_gr_remember_mode, - caml_gr_display_mode:caml_gr_display_mode, - caml_gr_window_id:caml_gr_window_id, - caml_gr_open_subwindow:caml_gr_open_subwindow, - caml_gr_close_subwindow:caml_gr_close_subwindow, - caml_gc_minor:caml_gc_minor, - caml_gc_major:caml_gc_major, - caml_gc_full_major:caml_gc_full_major, - caml_gc_compaction:caml_gc_compaction, - caml_gc_counters:caml_gc_counters, - caml_gc_quick_stat:caml_gc_quick_stat, - caml_gc_stat:caml_gc_stat, - caml_gc_set:caml_gc_set, - caml_gc_get:caml_gc_get, - caml_memprof_set:caml_memprof_set, - caml_final_register:caml_final_register, + caml_register_channel_for_spacetime: caml_register_channel_for_spacetime, + caml_sys_const_naked_pointers_checked: + caml_sys_const_naked_pointers_checked, + caml_spacetime_enabled: caml_spacetime_enabled, + caml_ml_runtime_warnings_enabled: caml_ml_runtime_warnings_enabled, + caml_ml_enable_runtime_warnings: caml_ml_enable_runtime_warnings, + caml_runtime_warnings: caml_runtime_warnings, + caml_install_signal_handler: caml_install_signal_handler, + caml_runtime_parameters: caml_runtime_parameters, + caml_runtime_variant: caml_runtime_variant, + caml_sys_isatty: caml_sys_isatty, + caml_sys_get_config: caml_sys_get_config, + os_type: os_type, + caml_sys_const_backend_type: caml_sys_const_backend_type, + caml_sys_const_ostype_cygwin: caml_sys_const_ostype_cygwin, + caml_sys_const_ostype_win32: caml_sys_const_ostype_win32, + caml_sys_const_ostype_unix: caml_sys_const_ostype_unix, + caml_sys_const_max_wosize: caml_sys_const_max_wosize, + caml_sys_const_int_size: caml_sys_const_int_size, + caml_sys_const_word_size: caml_sys_const_word_size, + caml_sys_const_big_endian: caml_sys_const_big_endian, + caml_sys_random_seed: caml_sys_random_seed, + caml_sys_time_include_children: caml_sys_time_include_children, + caml_sys_time: caml_sys_time, + caml_sys_system_command: caml_sys_system_command, + caml_sys_executable_name: caml_sys_executable_name, + caml_sys_modify_argv: caml_sys_modify_argv, + caml_sys_argv: caml_sys_argv, + caml_sys_get_argv: caml_sys_get_argv, + caml_executable_name: caml_executable_name, + caml_argv: caml_argv, + caml_sys_unsafe_getenv: caml_sys_unsafe_getenv, + caml_sys_getenv: caml_sys_getenv, + jsoo_sys_getenv: jsoo_sys_getenv, + caml_set_static_env: caml_set_static_env, + caml_fatal_uncaught_exception: caml_fatal_uncaught_exception, + caml_format_exception: caml_format_exception, + caml_is_special_exception: caml_is_special_exception, + caml_sys_exit: caml_sys_exit, + caml_raise_sys_error: caml_raise_sys_error, + caml_maybe_print_stats: caml_maybe_print_stats, + caml_is_printable: caml_is_printable, + caml_get_global_data: caml_get_global_data, + caml_register_global: caml_register_global, + caml_build_symbols: caml_build_symbols, + caml_global_data: caml_global_data, + caml_named_value: caml_named_value, + caml_register_named_value: caml_register_named_value, + caml_named_values: caml_named_values, + caml_call_gen: caml_call_gen, + caml_set_parser_trace: caml_set_parser_trace, + caml_parse_engine: caml_parse_engine, + caml_parser_trace: caml_parser_trace, + caml_is_continuation_tag: caml_is_continuation_tag, + caml_lazy_read_result: caml_lazy_read_result, + caml_lazy_reset_to_lazy: caml_lazy_reset_to_lazy, + caml_lazy_update_to_forward: caml_lazy_update_to_forward, + caml_lazy_update_to_forcing: caml_lazy_update_to_forcing, + caml_obj_update_tag: caml_obj_update_tag, + caml_obj_add_offset: caml_obj_add_offset, + caml_obj_reachable_words: caml_obj_reachable_words, + caml_obj_set_raw_field: caml_obj_set_raw_field, + caml_obj_raw_field: caml_obj_raw_field, + caml_fresh_oo_id: caml_fresh_oo_id, + caml_set_oo_id: caml_set_oo_id, + caml_oo_last_id: caml_oo_last_id, + caml_get_public_method: caml_get_public_method, + caml_lazy_make_forward: caml_lazy_make_forward, + caml_obj_is_shared: caml_obj_is_shared, + caml_obj_compare_and_swap: caml_obj_compare_and_swap, + caml_obj_make_forward: caml_obj_make_forward, + caml_obj_truncate: caml_obj_truncate, + caml_obj_dup: caml_obj_dup, + caml_obj_with_tag: caml_obj_with_tag, + caml_obj_block: caml_obj_block, + caml_obj_set_tag: caml_obj_set_tag, + caml_obj_tag: caml_obj_tag, + caml_obj_is_block: caml_obj_is_block, + caml_alloc_dummy_infix: caml_alloc_dummy_infix, + caml_update_dummy: caml_update_dummy, + deserialize_nat: deserialize_nat, + serialize_nat: serialize_nat, + lxor_digit_nat: lxor_digit_nat, + lor_digit_nat: lor_digit_nat, + land_digit_nat: land_digit_nat, + compare_nat_real: compare_nat_real, + compare_nat: compare_nat, + compare_digits_nat: compare_digits_nat, + shift_right_nat: shift_right_nat, + div_nat: div_nat, + div_digit_nat: div_digit_nat, + div_helper: div_helper, + shift_left_nat: shift_left_nat, + square_nat: square_nat, + mult_nat: mult_nat, + mult_digit_nat: mult_digit_nat, + sub_nat: sub_nat, + decr_nat: decr_nat, + complement_nat: complement_nat, + add_nat: add_nat, + incr_nat: incr_nat, + is_digit_odd: is_digit_odd, + is_digit_zero: is_digit_zero, + is_digit_int: is_digit_int, + num_leading_zero_bits_in_digit: num_leading_zero_bits_in_digit, + num_digits_nat: num_digits_nat, + nth_digit_nat_native: nth_digit_nat_native, + set_digit_nat_native: set_digit_nat_native, + nth_digit_nat: nth_digit_nat, + set_digit_nat: set_digit_nat, + blit_nat: blit_nat, + set_to_zero_nat: set_to_zero_nat, + create_nat: create_nat, + nat_of_array: nat_of_array, + caml_hash_nat: caml_hash_nat, + MlNat: MlNat, + initialize_nat: initialize_nat, + caml_array_of_bytes: caml_array_of_bytes, + caml_array_of_string: caml_array_of_string, + caml_js_to_string: caml_js_to_string, + caml_to_js_string: caml_to_js_string, + caml_js_from_string: caml_js_from_string, + caml_new_string: caml_new_string, + caml_js_to_byte_string: caml_js_to_byte_string, + caml_is_ml_string: caml_is_ml_string, + caml_ml_bytes_content: caml_ml_bytes_content, + caml_is_ml_bytes: caml_is_ml_bytes, + caml_bytes_of_jsbytes: caml_bytes_of_jsbytes, + caml_string_of_jsstring: caml_string_of_jsstring, + caml_jsstring_of_string: caml_jsstring_of_string, + caml_jsbytes_of_string: caml_jsbytes_of_string, + caml_string_of_jsbytes: caml_string_of_jsbytes, + caml_bytes_of_string: caml_bytes_of_string, + caml_string_of_bytes: caml_string_of_bytes, + caml_string_lessthan: caml_string_lessthan, + caml_string_lessequal: caml_string_lessequal, + caml_string_equal: caml_string_equal, + caml_string_compare: caml_string_compare, + caml_ml_string_length: caml_ml_string_length, + caml_string_unsafe_set: caml_string_unsafe_set, + caml_string_unsafe_get: caml_string_unsafe_get, + caml_ml_bytes_length: caml_ml_bytes_length, + caml_blit_string: caml_blit_string, + caml_blit_bytes: caml_blit_bytes, + caml_fill_bytes: caml_fill_bytes, + caml_bytes_greaterthan: caml_bytes_greaterthan, + caml_string_greaterthan: caml_string_greaterthan, + caml_bytes_greaterequal: caml_bytes_greaterequal, + caml_string_greaterequal: caml_string_greaterequal, + caml_bytes_lessthan: caml_bytes_lessthan, + caml_bytes_lessequal: caml_bytes_lessequal, + caml_bytes_notequal: caml_bytes_notequal, + caml_string_notequal: caml_string_notequal, + caml_bytes_equal: caml_bytes_equal, + caml_bytes_compare: caml_bytes_compare, + caml_bytes_of_array: caml_bytes_of_array, + caml_string_of_array: caml_string_of_array, + caml_create_bytes: caml_create_bytes, + caml_create_string: caml_create_string, + caml_uint8_array_of_string: caml_uint8_array_of_string, + caml_uint8_array_of_bytes: caml_uint8_array_of_bytes, + caml_convert_bytes_to_array: caml_convert_bytes_to_array, + caml_convert_string_to_bytes: caml_convert_string_to_bytes, + MlBytes: MlBytes, + caml_bytes_of_utf16_jsstring: caml_bytes_of_utf16_jsstring, + caml_bytes_set: caml_bytes_set, + caml_string_set64: caml_string_set64, + caml_bytes_set64: caml_bytes_set64, + caml_string_set32: caml_string_set32, + caml_bytes_set32: caml_bytes_set32, + caml_string_set16: caml_string_set16, + caml_bytes_set16: caml_bytes_set16, + caml_string_set: caml_string_set, + caml_bytes_get: caml_bytes_get, + caml_bytes_get64: caml_bytes_get64, + caml_string_get64: caml_string_get64, + caml_bytes_get32: caml_bytes_get32, + caml_string_get32: caml_string_get32, + caml_bytes_get16: caml_bytes_get16, + caml_string_get16: caml_string_get16, + caml_string_get: caml_string_get, + caml_bytes_bound_error: caml_bytes_bound_error, + caml_string_bound_error: caml_string_bound_error, + caml_bytes_unsafe_set: caml_bytes_unsafe_set, + caml_bytes_unsafe_get: caml_bytes_unsafe_get, + jsoo_is_ascii: jsoo_is_ascii, + caml_utf16_of_utf8: caml_utf16_of_utf8, + caml_utf8_of_utf16: caml_utf8_of_utf16, + caml_subarray_to_jsbytes: caml_subarray_to_jsbytes, + caml_str_repeat: caml_str_repeat, + caml_md5_bytes: caml_md5_bytes, + caml_MD5Final: caml_MD5Final, + caml_MD5Update: caml_MD5Update, + caml_MD5Init: caml_MD5Init, + caml_MD5Transform: caml_MD5Transform, + caml_md5_string: caml_md5_string, + caml_md5_chan: caml_md5_chan, + caml_output_value_to_buffer: caml_output_value_to_buffer, + caml_output_value_to_bytes: caml_output_value_to_bytes, + caml_output_value_to_string: caml_output_value_to_string, + caml_output_val: caml_output_val, + MlObjectTable: MlObjectTable, + caml_marshal_data_size: caml_marshal_data_size, + caml_marshal_header_size: caml_marshal_header_size, + caml_input_value_from_reader: caml_input_value_from_reader, + caml_custom_ops: caml_custom_ops, + caml_nativeint_unmarshal: caml_nativeint_unmarshal, + caml_int32_unmarshal: caml_int32_unmarshal, + caml_int64_marshal: caml_int64_marshal, + caml_int64_unmarshal: caml_int64_unmarshal, + caml_input_value_from_bytes: caml_input_value_from_bytes, + caml_input_value_from_string: caml_input_value_from_string, + caml_float_of_bytes: caml_float_of_bytes, + BigStringReader: BigStringReader, + MlStringReader: MlStringReader, + UInt8ArrayReader: UInt8ArrayReader, + caml_marshal_constants: caml_marshal_constants, + caml_new_lex_engine: caml_new_lex_engine, + caml_lex_engine: caml_lex_engine, + caml_lex_array: caml_lex_array, + caml_js_error_of_exception: caml_js_error_of_exception, + caml_xmlhttprequest_create: caml_xmlhttprequest_create, + caml_js_get_console: caml_js_get_console, + caml_js_html_entities: caml_js_html_entities, + caml_js_html_escape: caml_js_html_escape, + caml_js_on_ie: caml_js_on_ie, + caml_js_object: caml_js_object, + caml_pure_js_expr: caml_pure_js_expr, + caml_js_expr: caml_js_expr, + caml_js_eval_string: caml_js_eval_string, + caml_js_equals: caml_js_equals, + caml_js_function_arity: caml_js_function_arity, + caml_js_wrap_meth_callback_unsafe: caml_js_wrap_meth_callback_unsafe, + caml_js_wrap_meth_callback_strict: caml_js_wrap_meth_callback_strict, + caml_js_wrap_meth_callback_arguments: + caml_js_wrap_meth_callback_arguments, + caml_js_wrap_meth_callback: caml_js_wrap_meth_callback, + caml_js_wrap_callback_unsafe: caml_js_wrap_callback_unsafe, + caml_js_wrap_callback_strict: caml_js_wrap_callback_strict, + caml_js_wrap_callback_arguments: caml_js_wrap_callback_arguments, + caml_js_wrap_callback: caml_js_wrap_callback, + caml_ojs_new_arr: caml_ojs_new_arr, + caml_js_new: caml_js_new, + caml_js_meth_call: caml_js_meth_call, + caml_js_fun_call: caml_js_fun_call, + caml_js_call: caml_js_call, + caml_js_var: caml_js_var, + caml_list_to_js_array: caml_list_to_js_array, + caml_list_of_js_array: caml_list_of_js_array, + caml_js_to_array: caml_js_to_array, + caml_js_from_array: caml_js_from_array, + caml_js_to_float: caml_js_to_float, + caml_js_from_float: caml_js_from_float, + caml_js_to_bool: caml_js_to_bool, + caml_js_from_bool: caml_js_from_bool, + caml_js_error_option_of_exception: caml_js_error_option_of_exception, + caml_exn_with_js_backtrace: caml_exn_with_js_backtrace, + caml_maybe_attach_backtrace: caml_maybe_attach_backtrace, + caml_wrap_exception: caml_wrap_exception, + caml_jsoo_flags_effects: caml_jsoo_flags_effects, + caml_jsoo_flags_use_js_string: caml_jsoo_flags_use_js_string, + caml_is_js: caml_is_js, + caml_callback: caml_callback, + caml_trampoline_return: caml_trampoline_return, + caml_trampoline: caml_trampoline, + caml_js_typeof: caml_js_typeof, + caml_js_instanceof: caml_js_instanceof, + caml_js_delete: caml_js_delete, + caml_js_get: caml_js_get, + caml_js_set: caml_js_set, + caml_js_pure_expr: caml_js_pure_expr, + caml_ml_set_buffered: caml_ml_set_buffered, + caml_ml_is_buffered: caml_ml_is_buffered, + caml_ml_output_int: caml_ml_output_int, + caml_ml_pos_out_64: caml_ml_pos_out_64, + caml_ml_pos_out: caml_ml_pos_out, + caml_pos_out: caml_pos_out, + caml_ml_seek_out_64: caml_ml_seek_out_64, + caml_ml_seek_out: caml_ml_seek_out, + caml_seek_out: caml_seek_out, + caml_output_value: caml_output_value, + caml_ml_output_char: caml_ml_output_char, + caml_ml_output: caml_ml_output, + caml_ml_output_bytes: caml_ml_output_bytes, + caml_ml_flush: caml_ml_flush, + caml_ml_input_scan_line: caml_ml_input_scan_line, + caml_ml_pos_in_64: caml_ml_pos_in_64, + caml_ml_pos_in: caml_ml_pos_in, + caml_pos_in: caml_pos_in, + caml_ml_seek_in_64: caml_ml_seek_in_64, + caml_ml_seek_in: caml_ml_seek_in, + caml_seek_in: caml_seek_in, + caml_ml_input_int: caml_ml_input_int, + caml_ml_input_char: caml_ml_input_char, + caml_input_value_to_outside_heap: caml_input_value_to_outside_heap, + caml_input_value: caml_input_value, + caml_ml_input_block: caml_ml_input_block, + caml_ml_input: caml_ml_input, + caml_refill: caml_refill, + caml_ml_set_channel_refill: caml_ml_set_channel_refill, + caml_ml_set_channel_output: caml_ml_set_channel_output, + caml_ml_channel_size_64: caml_ml_channel_size_64, + caml_ml_channel_size: caml_ml_channel_size, + caml_ml_close_channel: caml_ml_close_channel, + caml_ml_set_binary_mode: caml_ml_set_binary_mode, + caml_channel_descriptor: caml_channel_descriptor, + caml_ml_open_descriptor_in: caml_ml_open_descriptor_in, + caml_ml_open_descriptor_out: caml_ml_open_descriptor_out, + caml_ml_out_channels_list: caml_ml_out_channels_list, + caml_ml_channels: caml_ml_channels, + caml_ml_set_channel_name: caml_ml_set_channel_name, + caml_sys_open: caml_sys_open, + caml_sys_close: caml_sys_close, + caml_sys_fds: caml_sys_fds, + caml_int64_bswap: caml_int64_bswap, + caml_int32_bswap: caml_int32_bswap, + caml_bswap16: caml_bswap16, + caml_mod: caml_mod, + caml_div: caml_div, + caml_mul: caml_mul, + caml_int_of_string: caml_int_of_string, + caml_parse_digit: caml_parse_digit, + caml_parse_sign_and_base: caml_parse_sign_and_base, + caml_format_int: caml_format_int, + caml_int64_hash: caml_int64_hash, + caml_int64_to_bytes: caml_int64_to_bytes, + caml_int64_of_bytes: caml_int64_of_bytes, + caml_int64_hi32: caml_int64_hi32, + caml_int64_lo32: caml_int64_lo32, + caml_int64_create_lo_hi: caml_int64_create_lo_hi, + caml_int64_create_lo_mi_hi: caml_int64_create_lo_mi_hi, + caml_int64_of_string: caml_int64_of_string, + caml_int64_format: caml_int64_format, + caml_int64_of_float: caml_int64_of_float, + caml_int64_to_float: caml_int64_to_float, + caml_int64_to_int32: caml_int64_to_int32, + caml_int64_of_int32: caml_int64_of_int32, + caml_int64_mod: caml_int64_mod, + caml_int64_div: caml_int64_div, + caml_int64_shift_right: caml_int64_shift_right, + caml_int64_shift_right_unsigned: caml_int64_shift_right_unsigned, + caml_int64_shift_left: caml_int64_shift_left, + caml_int64_xor: caml_int64_xor, + caml_int64_or: caml_int64_or, + caml_int64_and: caml_int64_and, + caml_int64_is_negative: caml_int64_is_negative, + caml_int64_is_zero: caml_int64_is_zero, + caml_int64_mul: caml_int64_mul, + caml_int64_sub: caml_int64_sub, + caml_int64_add: caml_int64_add, + caml_int64_neg: caml_int64_neg, + caml_int64_compare: caml_int64_compare, + caml_int64_ult: caml_int64_ult, + MlInt64: MlInt64, + caml_int64_offset: caml_int64_offset, + caml_float_of_string: caml_float_of_string, + caml_format_float: caml_format_float, + caml_fma_float: caml_fma_float, + caml_erfc_float: caml_erfc_float, + caml_erf_float: caml_erf_float, + caml_cbrt_float: caml_cbrt_float, + caml_round_float: caml_round_float, + caml_atanh_float: caml_atanh_float, + caml_tanh_float: caml_tanh_float, + caml_asinh_float: caml_asinh_float, + caml_sinh_float: caml_sinh_float, + caml_acosh_float: caml_acosh_float, + caml_cosh_float: caml_cosh_float, + caml_log10_float: caml_log10_float, + caml_hypot_float: caml_hypot_float, + caml_log2_float: caml_log2_float, + caml_log1p_float: caml_log1p_float, + caml_exp2_float: caml_exp2_float, + caml_expm1_float: caml_expm1_float, + caml_signbit_float: caml_signbit_float, + caml_copysign_float: caml_copysign_float, + caml_float_compare: caml_float_compare, + caml_frexp_float: caml_frexp_float, + caml_ldexp_float: caml_ldexp_float, + caml_modf_float: caml_modf_float, + caml_classify_float: caml_classify_float, + caml_int32_float_of_bits: caml_int32_float_of_bits, + caml_trunc_float: caml_trunc_float, + caml_nextafter_float: caml_nextafter_float, + caml_int64_float_of_bits: caml_int64_float_of_bits, + caml_hexstring_of_float: caml_hexstring_of_float, + caml_int32_bits_of_float: caml_int32_bits_of_float, + caml_int64_bits_of_float: caml_int64_bits_of_float, + jsoo_floor_log2: jsoo_floor_log2, + caml_string_hash: caml_string_hash, + caml_hash: caml_hash, + caml_hash_mix_string: caml_hash_mix_string, + caml_hash_mix_bytes: caml_hash_mix_bytes, + caml_hash_mix_bytes_arr: caml_hash_mix_bytes_arr, + caml_hash_mix_jsbytes: caml_hash_mix_jsbytes, + caml_hash_mix_int64: caml_hash_mix_int64, + caml_hash_mix_float: caml_hash_mix_float, + caml_hash_mix_final: caml_hash_mix_final, + caml_hash_mix_int: caml_hash_mix_int, + caml_gr_close_subwindow: caml_gr_close_subwindow, + caml_gr_open_subwindow: caml_gr_open_subwindow, + caml_gr_window_id: caml_gr_window_id, + caml_gr_display_mode: caml_gr_display_mode, + caml_gr_remember_mode: caml_gr_remember_mode, + caml_gr_synchronize: caml_gr_synchronize, + caml_gr_wait_event: caml_gr_wait_event, + caml_gr_sigio_signal: caml_gr_sigio_signal, + caml_gr_sigio_handler: caml_gr_sigio_handler, + caml_gr_blit_image: caml_gr_blit_image, + caml_gr_create_image: caml_gr_create_image, + caml_gr_draw_image: caml_gr_draw_image, + caml_gr_dump_image: caml_gr_dump_image, + caml_gr_make_image: caml_gr_make_image, + caml_gr_text_size: caml_gr_text_size, + caml_gr_set_text_size: caml_gr_set_text_size, + caml_gr_set_font: caml_gr_set_font, + caml_gr_draw_string: caml_gr_draw_string, + caml_gr_draw_char: caml_gr_draw_char, + caml_gr_draw_str: caml_gr_draw_str, + caml_gr_fill_arc: caml_gr_fill_arc, + caml_gr_fill_poly: caml_gr_fill_poly, + caml_gr_fill_rect: caml_gr_fill_rect, + caml_gr_set_line_width: caml_gr_set_line_width, + caml_gr_draw_arc: caml_gr_draw_arc, + caml_gr_arc_aux: caml_gr_arc_aux, + caml_gr_draw_rect: caml_gr_draw_rect, + caml_gr_lineto: caml_gr_lineto, + caml_gr_current_y: caml_gr_current_y, + caml_gr_current_x: caml_gr_current_x, + caml_gr_moveto: caml_gr_moveto, + caml_gr_point_color: caml_gr_point_color, + caml_gr_plot: caml_gr_plot, + caml_gr_set_color: caml_gr_set_color, + caml_gr_size_y: caml_gr_size_y, + caml_gr_size_x: caml_gr_size_x, + caml_gr_clear_graph: caml_gr_clear_graph, + caml_gr_resize_window: caml_gr_resize_window, + caml_gr_set_window_title: caml_gr_set_window_title, + caml_gr_close_graph: caml_gr_close_graph, + caml_gr_doc_of_state: caml_gr_doc_of_state, + caml_gr_state_create: caml_gr_state_create, + caml_gr_state_init: caml_gr_state_init, + caml_gr_open_graph: caml_gr_open_graph, + caml_gr_state_set: caml_gr_state_set, + caml_gr_state_get: caml_gr_state_get, + caml_gr_state: caml_gr_state, + caml_get_major_credit: caml_get_major_credit, + caml_get_major_bucket: caml_get_major_bucket, + caml_get_minor_free: caml_get_minor_free, + caml_gc_minor_words: caml_gc_minor_words, + caml_gc_major_slice: caml_gc_major_slice, + caml_gc_huge_fallback_count: caml_gc_huge_fallback_count, + caml_eventlog_pause: caml_eventlog_pause, + caml_eventlog_resume: caml_eventlog_resume, + caml_memprof_stop: caml_memprof_stop, + caml_memprof_start: caml_memprof_start, + caml_final_release: caml_final_release, caml_final_register_called_without_value: caml_final_register_called_without_value, - caml_final_release:caml_final_release, - caml_memprof_start:caml_memprof_start, - caml_memprof_stop:caml_memprof_stop, - caml_eventlog_resume:caml_eventlog_resume, - caml_eventlog_pause:caml_eventlog_pause, - caml_gc_huge_fallback_count:caml_gc_huge_fallback_count, - caml_gc_major_slice:caml_gc_major_slice, - caml_gc_minor_words:caml_gc_minor_words, - caml_get_minor_free:caml_get_minor_free, - caml_get_major_bucket:caml_get_major_bucket, - caml_get_major_credit:caml_get_major_credit, - fs_node_supported:fs_node_supported, - MlNodeDevice:MlNodeDevice, - MlNodeFd:MlNodeFd, - caml_sys_open_for_node:caml_sys_open_for_node, - MlFakeDevice:MlFakeDevice, - MlFakeFile:MlFakeFile, - MlFakeFd_out:MlFakeFd_out, - MlFakeFd:MlFakeFd, - caml_trailing_slash:caml_trailing_slash, - caml_current_dir:caml_current_dir, - caml_get_root:caml_get_root, - caml_root:caml_root, - MlFile:MlFile, - path_is_absolute:path_is_absolute, - caml_make_path:caml_make_path, - jsoo_mount_point:jsoo_mount_point, - caml_list_mount_point:caml_list_mount_point, - resolve_fs_device:resolve_fs_device, - caml_mount_autoload:caml_mount_autoload, - caml_unmount:caml_unmount, - caml_sys_getcwd:caml_sys_getcwd, - caml_sys_chdir:caml_sys_chdir, - caml_raise_no_such_file:caml_raise_no_such_file, - caml_raise_not_a_dir:caml_raise_not_a_dir, - caml_sys_file_exists:caml_sys_file_exists, - caml_sys_read_directory:caml_sys_read_directory, - caml_sys_remove:caml_sys_remove, - caml_sys_is_directory:caml_sys_is_directory, - caml_sys_rename:caml_sys_rename, - caml_sys_mkdir:caml_sys_mkdir, - caml_sys_rmdir:caml_sys_rmdir, - caml_ba_map_file:caml_ba_map_file, - caml_ba_map_file_bytecode:caml_ba_map_file_bytecode, - jsoo_create_file_extern:jsoo_create_file_extern, - caml_fs_init:caml_fs_init, - caml_create_file:caml_create_file, - jsoo_create_file:jsoo_create_file, - caml_read_file_content:caml_read_file_content, - caml_parse_format:caml_parse_format, - caml_finish_formatting:caml_finish_formatting, - caml_raise_constant:caml_raise_constant, - caml_return_exn_constant:caml_return_exn_constant, - caml_raise_with_arg:caml_raise_with_arg, - caml_raise_with_args:caml_raise_with_args, - caml_raise_with_string:caml_raise_with_string, - caml_failwith:caml_failwith, - caml_invalid_argument:caml_invalid_argument, - caml_raise_end_of_file:caml_raise_end_of_file, - caml_raise_zero_divide:caml_raise_zero_divide, - caml_raise_not_found:caml_raise_not_found, - caml_array_bound_error:caml_array_bound_error, - caml_compare_val_tag:caml_compare_val_tag, - caml_compare_val_get_custom:caml_compare_val_get_custom, - caml_compare_val_number_custom:caml_compare_val_number_custom, - caml_compare_val:caml_compare_val, - caml_compare:caml_compare, - caml_int_compare:caml_int_compare, - caml_equal:caml_equal, - caml_notequal:caml_notequal, - caml_greaterequal:caml_greaterequal, - caml_greaterthan:caml_greaterthan, - caml_lessequal:caml_lessequal, - caml_lessthan:caml_lessthan, - caml_blit_bigstring_to_bigstring:caml_blit_bigstring_to_bigstring, - caml_blit_bigstring_to_string:caml_blit_bigstring_to_string, - caml_blit_string_to_bigstring:caml_blit_string_to_bigstring, - caml_hash_mix_bigstring:caml_hash_mix_bigstring, - bigstring_to_array_buffer:bigstring_to_array_buffer, - bigstring_to_typed_array:bigstring_to_typed_array, - bigstring_of_array_buffer:bigstring_of_array_buffer, - bigstring_of_typed_array:bigstring_of_typed_array, - caml_bigstring_memcmp:caml_bigstring_memcmp, - caml_bigstring_blit_ba_to_ba:caml_bigstring_blit_ba_to_ba, - caml_bigstring_blit_string_to_ba:caml_bigstring_blit_string_to_ba, - caml_bigstring_blit_bytes_to_ba:caml_bigstring_blit_bytes_to_ba, - caml_bigstring_blit_ba_to_bytes:caml_bigstring_blit_ba_to_bytes, - caml_ba_init:caml_ba_init, - caml_ba_get_size:caml_ba_get_size, - caml_ba_get_size_per_element:caml_ba_get_size_per_element, - caml_ba_create_buffer:caml_ba_create_buffer, - caml_ba_custom_name:caml_ba_custom_name, - Ml_Bigarray:Ml_Bigarray, - Ml_Bigarray_c_1_1:Ml_Bigarray_c_1_1, - caml_ba_compare:caml_ba_compare, - caml_ba_create_unsafe:caml_ba_create_unsafe, - caml_ba_create:caml_ba_create, - caml_ba_change_layout:caml_ba_change_layout, - caml_ba_kind:caml_ba_kind, - caml_ba_layout:caml_ba_layout, - caml_ba_num_dims:caml_ba_num_dims, - caml_ba_dim:caml_ba_dim, - caml_ba_dim_1:caml_ba_dim_1, - caml_ba_dim_2:caml_ba_dim_2, - caml_ba_dim_3:caml_ba_dim_3, - caml_ba_get_generic:caml_ba_get_generic, - caml_ba_uint8_get16:caml_ba_uint8_get16, - caml_ba_uint8_get32:caml_ba_uint8_get32, - caml_ba_uint8_get64:caml_ba_uint8_get64, - caml_ba_get_1:caml_ba_get_1, - caml_ba_get_2:caml_ba_get_2, - caml_ba_get_3:caml_ba_get_3, - caml_ba_set_generic:caml_ba_set_generic, - caml_ba_uint8_set16:caml_ba_uint8_set16, - caml_ba_uint8_set32:caml_ba_uint8_set32, - caml_ba_uint8_set64:caml_ba_uint8_set64, - caml_ba_set_1:caml_ba_set_1, - caml_ba_set_2:caml_ba_set_2, - caml_ba_set_3:caml_ba_set_3, - caml_ba_fill:caml_ba_fill, - caml_ba_blit:caml_ba_blit, - caml_ba_sub:caml_ba_sub, - caml_ba_slice:caml_ba_slice, - caml_ba_reshape:caml_ba_reshape, - caml_ba_serialize:caml_ba_serialize, - caml_ba_deserialize:caml_ba_deserialize, - caml_ba_create_from:caml_ba_create_from, - caml_ba_hash:caml_ba_hash, - caml_ba_to_typed_array:caml_ba_to_typed_array, - caml_ba_kind_of_typed_array:caml_ba_kind_of_typed_array, - caml_ba_from_typed_array:caml_ba_from_typed_array, - caml_ml_debug_info_status:caml_ml_debug_info_status, - caml_backtrace_status:caml_backtrace_status, - caml_get_exception_backtrace:caml_get_exception_backtrace, - caml_get_exception_raw_backtrace:caml_get_exception_raw_backtrace, - caml_record_backtrace:caml_record_backtrace, - caml_convert_raw_backtrace:caml_convert_raw_backtrace, - caml_raw_backtrace_length:caml_raw_backtrace_length, - caml_raw_backtrace_next_slot:caml_raw_backtrace_next_slot, - caml_raw_backtrace_slot:caml_raw_backtrace_slot, - caml_restore_raw_backtrace:caml_restore_raw_backtrace, - caml_get_current_callstack:caml_get_current_callstack, - caml_convert_raw_backtrace_slot:caml_convert_raw_backtrace_slot, - caml_array_sub:caml_array_sub, - caml_array_append:caml_array_append, - caml_array_concat:caml_array_concat, - caml_array_blit:caml_array_blit, - caml_floatarray_blit:caml_floatarray_blit, - caml_array_set:caml_array_set, - caml_array_get:caml_array_get, - caml_array_fill:caml_array_fill, - caml_check_bound:caml_check_bound, - caml_make_vect:caml_make_vect, - caml_make_float_vect:caml_make_float_vect, - caml_floatarray_create:caml_floatarray_create}; - caml_fs_init(); - caml_register_global - (0,[248,caml_string_of_jsbytes("Out_of_memory"),-1],"Out_of_memory"); - caml_register_global - (1,[248,caml_string_of_jsbytes("Sys_error"),-2],"Sys_error"); - caml_register_global - (2,[248,caml_string_of_jsbytes("Failure"),-3],"Failure"); - caml_register_global - (3, - [248,caml_string_of_jsbytes("Invalid_argument"),-4], - "Invalid_argument"); - caml_register_global - (4,[248,caml_string_of_jsbytes("End_of_file"),-5],"End_of_file"); - caml_register_global - (5, - [248,caml_string_of_jsbytes("Division_by_zero"),-6], - "Division_by_zero"); - caml_register_global - (6,[248,caml_string_of_jsbytes("Not_found"),-7],"Not_found"); - caml_register_global - (7,[248,caml_string_of_jsbytes("Match_failure"),-8],"Match_failure"); - caml_register_global - (8,[248,caml_string_of_jsbytes("Stack_overflow"),-9],"Stack_overflow"); - caml_register_global - (9,[248,caml_string_of_jsbytes("Sys_blocked_io"),-10],"Sys_blocked_io"); - caml_register_global - (10,[248,caml_string_of_jsbytes("Assert_failure"),-11],"Assert_failure"); - caml_register_global - (11, - [248,caml_string_of_jsbytes("Undefined_recursive_module"),-12], - "Undefined_recursive_module"); - return} + caml_final_register: caml_final_register, + caml_memprof_set: caml_memprof_set, + caml_gc_get: caml_gc_get, + caml_gc_set: caml_gc_set, + caml_gc_stat: caml_gc_stat, + caml_gc_quick_stat: caml_gc_quick_stat, + caml_gc_counters: caml_gc_counters, + caml_gc_compaction: caml_gc_compaction, + caml_gc_full_major: caml_gc_full_major, + caml_gc_major: caml_gc_major, + caml_gc_minor: caml_gc_minor, + caml_sys_open_for_node: caml_sys_open_for_node, + MlNodeFd: MlNodeFd, + MlNodeDevice: MlNodeDevice, + fs_node_supported: fs_node_supported, + MlFakeFd: MlFakeFd, + MlFakeFd_out: MlFakeFd_out, + MlFakeFile: MlFakeFile, + MlFakeDevice: MlFakeDevice, + caml_read_file_content: caml_read_file_content, + jsoo_create_file: jsoo_create_file, + caml_create_file: caml_create_file, + caml_fs_init: caml_fs_init, + jsoo_create_file_extern: jsoo_create_file_extern, + caml_ba_map_file_bytecode: caml_ba_map_file_bytecode, + caml_ba_map_file: caml_ba_map_file, + caml_sys_rmdir: caml_sys_rmdir, + caml_sys_mkdir: caml_sys_mkdir, + caml_sys_rename: caml_sys_rename, + caml_sys_is_directory: caml_sys_is_directory, + caml_sys_remove: caml_sys_remove, + caml_sys_read_directory: caml_sys_read_directory, + caml_sys_file_exists: caml_sys_file_exists, + caml_raise_not_a_dir: caml_raise_not_a_dir, + caml_raise_no_such_file: caml_raise_no_such_file, + caml_sys_chdir: caml_sys_chdir, + caml_sys_getcwd: caml_sys_getcwd, + caml_unmount: caml_unmount, + caml_mount_autoload: caml_mount_autoload, + resolve_fs_device: resolve_fs_device, + caml_list_mount_point: caml_list_mount_point, + jsoo_mount_point: jsoo_mount_point, + caml_make_path: caml_make_path, + path_is_absolute: path_is_absolute, + MlFile: MlFile, + caml_root: caml_root, + caml_get_root: caml_get_root, + caml_current_dir: caml_current_dir, + caml_trailing_slash: caml_trailing_slash, + caml_finish_formatting: caml_finish_formatting, + caml_parse_format: caml_parse_format, + caml_array_bound_error: caml_array_bound_error, + caml_raise_not_found: caml_raise_not_found, + caml_raise_zero_divide: caml_raise_zero_divide, + caml_raise_end_of_file: caml_raise_end_of_file, + caml_invalid_argument: caml_invalid_argument, + caml_failwith: caml_failwith, + caml_raise_with_string: caml_raise_with_string, + caml_raise_with_args: caml_raise_with_args, + caml_raise_with_arg: caml_raise_with_arg, + caml_raise_constant: caml_raise_constant, + caml_lessthan: caml_lessthan, + caml_lessequal: caml_lessequal, + caml_greaterthan: caml_greaterthan, + caml_greaterequal: caml_greaterequal, + caml_notequal: caml_notequal, + caml_equal: caml_equal, + caml_int_compare: caml_int_compare, + caml_compare: caml_compare, + caml_compare_val: caml_compare_val, + caml_compare_val_number_custom: caml_compare_val_number_custom, + caml_compare_val_get_custom: caml_compare_val_get_custom, + caml_compare_val_tag: caml_compare_val_tag, + caml_bigstring_blit_ba_to_bytes: caml_bigstring_blit_ba_to_bytes, + caml_bigstring_blit_bytes_to_ba: caml_bigstring_blit_bytes_to_ba, + caml_bigstring_blit_string_to_ba: caml_bigstring_blit_string_to_ba, + caml_bigstring_blit_ba_to_ba: caml_bigstring_blit_ba_to_ba, + caml_bigstring_memcmp: caml_bigstring_memcmp, + bigstring_of_typed_array: bigstring_of_typed_array, + bigstring_of_array_buffer: bigstring_of_array_buffer, + bigstring_to_typed_array: bigstring_to_typed_array, + bigstring_to_array_buffer: bigstring_to_array_buffer, + caml_hash_mix_bigstring: caml_hash_mix_bigstring, + caml_ba_from_typed_array: caml_ba_from_typed_array, + caml_ba_kind_of_typed_array: caml_ba_kind_of_typed_array, + caml_ba_to_typed_array: caml_ba_to_typed_array, + caml_ba_hash: caml_ba_hash, + caml_ba_create_from: caml_ba_create_from, + caml_ba_deserialize: caml_ba_deserialize, + caml_ba_serialize: caml_ba_serialize, + caml_ba_reshape: caml_ba_reshape, + caml_ba_slice: caml_ba_slice, + caml_ba_sub: caml_ba_sub, + caml_ba_blit: caml_ba_blit, + caml_ba_fill: caml_ba_fill, + caml_ba_set_3: caml_ba_set_3, + caml_ba_set_2: caml_ba_set_2, + caml_ba_set_1: caml_ba_set_1, + caml_ba_uint8_set64: caml_ba_uint8_set64, + caml_ba_uint8_set32: caml_ba_uint8_set32, + caml_ba_uint8_set16: caml_ba_uint8_set16, + caml_ba_set_generic: caml_ba_set_generic, + caml_ba_get_3: caml_ba_get_3, + caml_ba_get_2: caml_ba_get_2, + caml_ba_get_1: caml_ba_get_1, + caml_ba_uint8_get64: caml_ba_uint8_get64, + caml_ba_uint8_get32: caml_ba_uint8_get32, + caml_ba_uint8_get16: caml_ba_uint8_get16, + caml_ba_get_generic: caml_ba_get_generic, + caml_ba_dim_3: caml_ba_dim_3, + caml_ba_dim_2: caml_ba_dim_2, + caml_ba_dim_1: caml_ba_dim_1, + caml_ba_dim: caml_ba_dim, + caml_ba_num_dims: caml_ba_num_dims, + caml_ba_layout: caml_ba_layout, + caml_ba_kind: caml_ba_kind, + caml_ba_change_layout: caml_ba_change_layout, + caml_ba_create: caml_ba_create, + caml_ba_create_unsafe: caml_ba_create_unsafe, + caml_ba_compare: caml_ba_compare, + Ml_Bigarray_c_1_1: Ml_Bigarray_c_1_1, + Ml_Bigarray: Ml_Bigarray, + caml_ba_custom_name: caml_ba_custom_name, + caml_ba_create_buffer: caml_ba_create_buffer, + caml_ba_get_size_per_element: caml_ba_get_size_per_element, + caml_ba_get_size: caml_ba_get_size, + caml_ba_init: caml_ba_init, + caml_convert_raw_backtrace_slot: caml_convert_raw_backtrace_slot, + caml_get_current_callstack: caml_get_current_callstack, + caml_restore_raw_backtrace: caml_restore_raw_backtrace, + caml_raw_backtrace_slot: caml_raw_backtrace_slot, + caml_raw_backtrace_next_slot: caml_raw_backtrace_next_slot, + caml_raw_backtrace_length: caml_raw_backtrace_length, + caml_convert_raw_backtrace: caml_convert_raw_backtrace, + caml_record_backtrace: caml_record_backtrace, + caml_get_exception_raw_backtrace: caml_get_exception_raw_backtrace, + caml_get_exception_backtrace: caml_get_exception_backtrace, + caml_backtrace_status: caml_backtrace_status, + caml_ml_debug_info_status: caml_ml_debug_info_status, + caml_record_backtrace_flag: caml_record_backtrace_flag, + caml_floatarray_create: caml_floatarray_create, + caml_make_float_vect: caml_make_float_vect, + caml_make_vect: caml_make_vect, + caml_check_bound: caml_check_bound, + caml_array_fill: caml_array_fill, + caml_array_get: caml_array_get, + caml_array_set: caml_array_set, + caml_floatarray_blit: caml_floatarray_blit, + caml_array_blit: caml_array_blit, + caml_array_concat: caml_array_concat, + caml_array_append: caml_array_append, + caml_array_sub: caml_array_sub}; + var + cst_Assert_failure = "Assert_failure", + cst_Division_by_zero = "Division_by_zero", + cst_End_of_file = "End_of_file", + cst_Failure = "Failure", + cst_Invalid_argument = "Invalid_argument", + cst_Match_failure = "Match_failure", + cst_Not_found = "Not_found", + cst_Out_of_memory = "Out_of_memory", + cst_Stack_overflow = "Stack_overflow", + cst_Sys_blocked_io = "Sys_blocked_io", + cst_Sys_error = "Sys_error", + cst_Undefined_recursive_module = "Undefined_recursive_module"; + caml_fs_init(); + caml_register_global(0, [248, cst_Out_of_memory, -1], cst_Out_of_memory); + caml_register_global(1, [248, cst_Sys_error, -2], cst_Sys_error); + caml_register_global(2, [248, cst_Failure, -3], cst_Failure); + caml_register_global + (3, [248, cst_Invalid_argument, -4], cst_Invalid_argument); + caml_register_global(4, [248, cst_End_of_file, -5], cst_End_of_file); + caml_register_global + (5, [248, cst_Division_by_zero, -6], cst_Division_by_zero); + caml_register_global(6, [248, cst_Not_found, -7], cst_Not_found); + caml_register_global(7, [248, cst_Match_failure, -8], cst_Match_failure); + caml_register_global(8, [248, cst_Stack_overflow, -9], cst_Stack_overflow); + caml_register_global(9, [248, cst_Sys_blocked_io, -10], cst_Sys_blocked_io); + caml_register_global + (10, [248, cst_Assert_failure, -11], cst_Assert_failure); + caml_register_global + (11, + [248, cst_Undefined_recursive_module, -12], + cst_Undefined_recursive_module); + return; + } (globalThis)); -//# 1 "../../.js/stdlib/stdlib.cma.js" +(function(a){"use strict";var +aw=118,bX="Js_of_ocaml__EventSource",au="Js_of_ocaml__File",av="Law_source__Aides_logement",at="Stdlib__Fun",bW="Stdlib__Seq",aq="Stdlib__Weak",ar="Dune__exe__Api_web",as="Dates_calc__Dates",bV="Js_of_ocaml__Url",ap=132,ao="Zarith_version",bU="Stdlib__BytesLabels",an="Stdlib__ArrayLabels",bT=115,am="Stdlib__Buffer",ak="Runtime_jsoo__Runtime",al="Js_of_ocaml__ResizeObserver",aj="Stdlib__Out_channel",bR="Stdlib__Printf",bS=105,bO=102,bP="CamlinternalLazy",bQ="Js_of_ocaml__Dom_svg",bN="Stdlib__String",bM="Stdlib__Result",ah="Stdlib__Either",ai=129,bL="Js_of_ocaml__Import",ag="Stdlib__Sys",bK="Stdlib__Random",bJ=116,bI=126,bG="Stdlib__Oo",bH="Failure",bF=121,af="Ppx_yojson_conv_lib__Yojsonable_intf",bE="Stdlib__Pervasives",bD="CamlinternalOO",bC="Stdlib__Array",bA="Ppx_yojson_conv_lib",bB="Stdlib__Genlex",ae="Js_of_ocaml__Dom",bz=111,ac="Big_int_Z",ad="Not_found",ab="Js_of_ocaml__PerformanceObserver",by="Stdlib__Lazy",bw="Stdlib__Map",bx="Stdlib__Char",aa="Stdlib__Digest",$="Stdlib__Callback",bv="Stdlib__Ephemeron",_="Js_of_ocaml__Form",bu="Dates_calc",bt="Stdlib__In_channel",br="Stdlib",bs="Ppx_yojson_conv_lib__",Y="Stdlib__Printexc",Z=131,bq=125,X="Js_of_ocaml__CSS",bp="Js_of_ocaml__Geolocation",V="Runtime_jsoo",W="Law_source",T="Js_of_ocaml__Typed_array",U="Js_of_ocaml__Lib_version",bn="Stdlib__Bytes",bo=103,bk="Stdlib__Unit",bl="Stdlib__Option",bm="Js_of_ocaml__IntersectionObserver",R="Out_of_memory",S="Law_source__Allocations_familiales",Q="Js_of_ocaml__Intl",P="Js_of_ocaml__Sys_js",O="Stdlib__Stream",bh="Stdlib__Float",bi="Stdlib__Complex",bj="Stdlib__StdLabels",N="Stdlib__Filename",bg="Js_of_ocaml__WebGL",L="Stdlib__Marshal",M="Js_of_ocaml__MutationObserver",bf="Assert_failure",K="Js_of_ocaml__Regexp",J="Stdlib__Set",I="Js_of_ocaml__Dom_events",H="Sys_blocked_io",be="Js_of_ocaml__Worker",G=110,bb="Std_exit",bc="Stdlib__MoreLabels",bd=123,ba="Runtime_ocaml__Runtime",E="Stdlib__Queue",F="Law_source__Allocations_familiales_api_web",D="Stdlib__Parsing",a$="Stdlib__Obj",B="Z",C=112,A="Ppx_yojson_conv_lib__Yojson_conv",a_="Js_of_ocaml__Json",z="Js_of_ocaml",a8="Jsoo_runtime__",a9="CamlinternalMod",y="Law_source__Aides_logement_api_web",a7="Js_of_ocaml__Js",a5="Stdlib__Bigarray",a6=104,a3="CamlinternalAtomic",a4=128,a1=122,a2="Invalid_argument",aZ=106,a0=113,v="Stdlib__Format",w="Match_failure",x="Yojson",aX="Stdlib__Scanf",aY=119,aW="Js_of_ocaml__Dom_html",u="Q",aV="Js_of_ocaml__",t="Jsoo_runtime",aR="Stdlib__Bool",aS="Runtime_ocaml",aT=101,aU="Division_by_zero",s="Js_of_ocaml__Firebug",r=120,aP=130,aQ=117,q="Stdlib__Arg",aN=127,aO=107,aK="Stdlib__StringLabels",aL="CamlinternalFormatBasics",aM=114,aJ="Js_of_ocaml__XmlHttpRequest",p="Jsoo_runtime__Runtime_version",aI="Stdlib__Uchar",o="Stdlib__List",n="Stdlib__Atomic",m=100,l="Ppx_yojson_conv_lib__Yojson_conv_error",k="Stdlib__Int64",aF=124,aG=109,aH="Zarith_stubs_js",aE="Sys_error",aC="Stdlib__Lexing",aD="CamlinternalFormat",j="Stdlib__Gc",aB="Stdlib__Int",h="Stdlib__Hashtbl",i="Stdlib__ListLabels",aA="Js_of_ocaml__Jstable",g="Stdlib__Int32",az="End_of_file",f="Stdlib__Stack",ay="Stack_overflow",ax="Stdlib__Nativeint",d="Js_of_ocaml__WebSockets",e=108,c="Undefined_recursive_module",bY=a.jsoo_runtime,b=bY.caml_get_global_data();b.prim_count=926;var +bZ=[2,a9],b0=[2,as],b1=[0,0,[2,z],bd,0,1],b2=[2,a2],b3=[2,X],b4=[0,0,[2,bQ],aQ,[0,0,[2,bX],aw,0,1],2],b5=[2,aW],b6=[0,0,[2,I],bJ,0,1],b7=[0,0,[2,bp],r,0,1],b8=[2,_],b9=[0,0,[2,s],aY,0,1],b_=[0,[0,0,[2,a_],aM,0,1],[2,aA],a0,0,2],b$=[2,a7],ca=[0,0,[2,bm],bF,[0,0,[2,Q],a1,0,1],2],cb=[2,ab],cc=[0,0,[2,M],C,0,1],cd=[2,al],ce=[2,bg],cf=[0,0,[2,bV],aO,0,1],cg=[2,a8],ch=[0,0,[2,F],a4,0,1],ci=[2,S],cj=[0,0,[2,av],ai,[0,0,[2,y],aP,0,1],2],ck=[2,ad],cl=[2,bU],cm=[2,N],cn=[2,bB],co=[2,bt],cp=[2,i],cq=[2,bc],cr=[2,bj],cs=[2,x],ct=[2,aH];b.toc=[0,[0,"SYMB",[0,133,[0,[0,[0,[0,[0,[0,0,[2,bf],0,[0,0,[2,ac],81,0,1],2],[2,a3],13,[0,0,[2,aD],46,0,1],3],[2,aL],12,[0,[0,[0,0,[2,bP],19,[0,0,bZ,62,0,1],2],[2,bD],60,[0,0,[2,bu],76,[0,0,b0,77,0,1],2],3],[2,aU],1,[0,[0,0,[2,ar],Z,0,1],[2,az],2,0,2],4],5],[2,bH],3,[0,[0,[0,[0,[0,0,b2,4,b1,2],[2,aV],94,[0,0,b3,bT,0,1],3],[2,ae],97,[0,[0,b6,b5,m,b4,3],[2,au],99,[0,b9,b8,aT,b7,2],4],5],[2,bL],95,[0,[0,[0,ca,b$,96,b_,3],[2,U],e,[0,cc,cb,bz,0,2],4],[2,K],aZ,[0,[0,0,cd,G,0,1],[2,P],aG,0,2],5],6],[2,T],98,[0,[0,[0,[0,cf,ce,bS,0,2],[2,d],a6,0,3],[2,be],bo,[0,0,[2,aJ],bO,0,1],4],[2,t],93,[0,[0,[0,0,cg,91,0,1],[2,p],92,0,2],[2,W],bI,[0,[0,cj,ci,aN,ch,3],[2,w],5,[0,0,ck,6,0,1],4],5],6],7],8],[2,R],7,[0,[0,[0,[0,[0,0,[2,bA],88,0,1],[2,bs],84,0,2],[2,A],86,[0,[0,0,[2,l],87,0,1],[2,af],85,0,2],3],[2,u],80,[0,[0,0,[2,V],aF,[0,0,[2,ak],bq,0,1],2],[2,aS],89,[0,[0,0,[2,ba],90,0,1],[2,ay],8,[0,0,[2,bb],ap,0,1],2],3],4],[2,br],14,[0,[0,[0,0,[2,q],48,0,1],[2,bC],33,[0,[0,0,[2,an],67,0,1],[2,n],49,[0,0,[2,a5],73,0,1],2],3],[2,aR],24,[0,[0,[0,0,[2,am],45,0,1],[2,bn],29,[0,[0,0,cl,69,0,1],[2,$],59,0,2],3],[2,bx],25,[0,[0,0,[2,bi],66,0,1],[2,aa],53,0,2],4],5],6],9],[2,ah],16,[0,[0,[0,[0,[0,[0,0,[2,bv],64,[0,0,cm,65,0,1],2],[2,bh],34,[0,0,[2,v],57,0,1],3],[2,at],51,[0,0,[2,j],52,[0,[0,0,cn,63,0,1],[2,h],55,[0,0,co,74,0,1],2],3],4],[2,aB],28,[0,0,[2,g],35,[0,0,[2,k],36,0,1],2],5],[2,by],20,[0,[0,[0,0,[2,aC],38,0,1],[2,o],27,[0,[0,[0,0,cp,68,0,1],[2,bw],41,0,2],[2,L],32,[0,[0,0,cq,71,0,1],[2,ax],37,0,2],3],4],[2,a$],18,[0,[0,0,[2,bG],61,0,1],[2,bl],22,[0,[0,0,[2,aj],75,0,1],[2,D],39,0,2],3],5],6],[2,bE],15,[0,[0,[0,[0,[0,0,[2,Y],50,0,1],[2,bR],47,0,2],[2,E],43,[0,[0,0,[2,bK],54,0,1],[2,bM],23,[0,0,[2,aX],58,0,1],2],3],[2,bW],21,[0,[0,0,[2,J],40,0,1],[2,f],42,[0,[0,[0,0,cr,72,0,1],[2,O],44,0,2],[2,bN],30,[0,0,[2,aK],70,0,1],3],4],5],[2,ag],17,[0,[0,0,[2,aI],26,[0,0,[2,bk],31,[0,0,[2,aq],56,0,1],2],3],[2,H],9,[0,[0,0,[2,aE],10,0,1],[2,c],11,[0,[0,[0,0,cs,83,0,1],[2,B],79,[0,0,ct,82,0,1],2],[2,ao],78,0,3],4],5],6],7],10]]],[0,[0,"SYJS",[0,[0,ao,78],[0,aH,82],[0,B,79],[0,x,83],[0,c,11],[0,aE,10],[0,H,9],[0,aq,56],[0,bk,31],[0,aI,26],[0,ag,17],[0,aK,70],[0,bN,30],[0,O,44],[0,bj,72],[0,f,42],[0,J,40],[0,bW,21],[0,aX,58],[0,bM,23],[0,bK,54],[0,E,43],[0,bR,47],[0,Y,50],[0,bE,15],[0,D,39],[0,aj,75],[0,bl,22],[0,bG,61],[0,a$,18],[0,ax,37],[0,bc,71],[0,L,32],[0,bw,41],[0,i,68],[0,o,27],[0,aC,38],[0,by,20],[0,k,36],[0,g,35],[0,aB,28],[0,bt,74],[0,h,55],[0,bB,63],[0,j,52],[0,at,51],[0,v,57],[0,bh,34],[0,N,65],[0,bv,64],[0,ah,16],[0,aa,53],[0,bi,66],[0,bx,25],[0,$,59],[0,bU,69],[0,bn,29],[0,am,45],[0,aR,24],[0,a5,73],[0,n,49],[0,an,67],[0,bC,33],[0,q,48],[0,br,14],[0,bb,ap],[0,ay,8],[0,ba,90],[0,aS,89],[0,ak,bq],[0,V,aF],[0,u,80],[0,af,85],[0,l,87],[0,A,86],[0,bs,84],[0,bA,88],[0,R,7],[0,ad,6],[0,w,5],[0,F,a4],[0,S,aN],[0,y,aP],[0,av,ai],[0,W,bI],[0,p,92],[0,a8,91],[0,t,93],[0,aJ,bO],[0,be,bo],[0,d,a6],[0,bg,bS],[0,bV,aO],[0,T,98],[0,P,aG],[0,al,G],[0,K,aZ],[0,ab,bz],[0,M,C],[0,U,e],[0,aA,a0],[0,a_,aM],[0,a7,96],[0,Q,a1],[0,bm,bF],[0,bL,95],[0,bp,r],[0,_,aT],[0,s,aY],[0,au,99],[0,bX,aw],[0,bQ,aQ],[0,aW,m],[0,I,bJ],[0,ae,97],[0,X,bT],[0,aV,94],[0,z,bd],[0,a2,4],[0,bH,3],[0,az,2],[0,ar,Z],[0,aU,1],[0,as,77],[0,bu,76],[0,bD,60],[0,a9,62],[0,bP,19],[0,aL,12],[0,aD,46],[0,a3,13],[0,ac,81],[0,bf,0]]],[0,[0,"CRCS",0],[0,[0,"PRIM","%caml_format_int_special\0%direct_int_div\0%direct_int_mod\0%direct_int_mul\0%identity\0%int_add\0%int_and\0%int_asr\0%int_div\0%int_lsl\0%int_lsr\0%int_mod\0%int_mul\0%int_neg\0%int_or\0%int_sub\0%int_xor\0BigStringReader\0MlBytes\0MlFakeDevice\0MlFakeFd\0MlFakeFd_out\0MlFakeFile\0MlFile\0MlInt64\0MlMutex\0MlNat\0MlNodeDevice\0MlNodeFd\0MlObjectTable\0MlStringReader\0Ml_Bigarray\0Ml_Bigarray_c_1_1\0UInt8ArrayReader\0add_nat\0bigInt\0bigstring_of_array_buffer\0bigstring_of_typed_array\0bigstring_to_array_buffer\0bigstring_to_typed_array\0blit_nat\0caml_MD5Final\0caml_MD5Init\0caml_MD5Transform\0caml_MD5Update\0caml_abs_float\0caml_acos_float\0caml_acosh_float\0caml_add_float\0caml_alloc_dummy\0caml_alloc_dummy_float\0caml_alloc_dummy_infix\0caml_alloc_stack\0caml_argv\0caml_array_append\0caml_array_blit\0caml_array_bound_error\0caml_array_concat\0caml_array_fill\0caml_array_get\0caml_array_get_addr\0caml_array_get_float\0caml_array_of_bytes\0caml_array_of_string\0caml_array_set\0caml_array_set_addr\0caml_array_set_float\0caml_array_sub\0caml_array_unsafe_get\0caml_array_unsafe_get_float\0caml_array_unsafe_set\0caml_array_unsafe_set_float\0caml_asin_float\0caml_asinh_float\0caml_atan2_float\0caml_atan_float\0caml_atanh_float\0caml_atomic_cas\0caml_atomic_exchange\0caml_atomic_fetch_add\0caml_atomic_load\0caml_ba_blit\0caml_ba_change_layout\0caml_ba_compare\0caml_ba_create\0caml_ba_create_buffer\0caml_ba_create_from\0caml_ba_create_unsafe\0caml_ba_custom_name\0caml_ba_deserialize\0caml_ba_dim\0caml_ba_dim_1\0caml_ba_dim_2\0caml_ba_dim_3\0caml_ba_fill\0caml_ba_from_typed_array\0caml_ba_get_1\0caml_ba_get_2\0caml_ba_get_3\0caml_ba_get_generic\0caml_ba_get_size\0caml_ba_get_size_per_element\0caml_ba_hash\0caml_ba_init\0caml_ba_kind\0caml_ba_kind_of_typed_array\0caml_ba_layout\0caml_ba_map_file\0caml_ba_map_file_bytecode\0caml_ba_num_dims\0caml_ba_reshape\0caml_ba_serialize\0caml_ba_set_1\0caml_ba_set_2\0caml_ba_set_3\0caml_ba_set_generic\0caml_ba_slice\0caml_ba_sub\0caml_ba_to_typed_array\0caml_ba_uint8_get16\0caml_ba_uint8_get32\0caml_ba_uint8_get64\0caml_ba_uint8_set16\0caml_ba_uint8_set32\0caml_ba_uint8_set64\0caml_backtrace_status\0caml_bigstring_blit_ba_to_ba\0caml_bigstring_blit_ba_to_bytes\0caml_bigstring_blit_bytes_to_ba\0caml_bigstring_blit_string_to_ba\0caml_bigstring_memcmp\0caml_blit_bytes\0caml_blit_string\0caml_bswap16\0caml_build_symbols\0caml_bytes_bound_error\0caml_bytes_compare\0caml_bytes_equal\0caml_bytes_get\0caml_bytes_get16\0caml_bytes_get32\0caml_bytes_get64\0caml_bytes_greaterequal\0caml_bytes_greaterthan\0caml_bytes_lessequal\0caml_bytes_lessthan\0caml_bytes_notequal\0caml_bytes_of_array\0caml_bytes_of_jsbytes\0caml_bytes_of_string\0caml_bytes_of_utf16_jsstring\0caml_bytes_set\0caml_bytes_set16\0caml_bytes_set32\0caml_bytes_set64\0caml_bytes_unsafe_get\0caml_bytes_unsafe_set\0caml_call_gen\0caml_callback\0caml_cbrt_float\0caml_ceil_float\0caml_channel_descriptor\0caml_check_bound\0caml_classify_float\0caml_compare\0caml_compare_val\0caml_compare_val_get_custom\0caml_compare_val_number_custom\0caml_compare_val_tag\0caml_continuation_use_and_update_handler_noexc\0caml_continuation_use_noexc\0caml_convert_bytes_to_array\0caml_convert_raw_backtrace\0caml_convert_raw_backtrace_slot\0caml_convert_string_to_bytes\0caml_copysign_float\0caml_cos_float\0caml_cosh_float\0caml_create_bytes\0caml_create_file\0caml_create_string\0caml_current_dir\0caml_custom_event_index\0caml_custom_ops\0caml_div\0caml_div_float\0caml_domain_dls\0caml_domain_dls_get\0caml_domain_dls_set\0caml_domain_id\0caml_domain_spawn\0caml_ensure_stack_capacity\0caml_ephe_blit_data\0caml_ephe_blit_key\0caml_ephe_check_data\0caml_ephe_check_key\0caml_ephe_create\0caml_ephe_data_offset\0caml_ephe_get_data\0caml_ephe_get_data_copy\0caml_ephe_get_key\0caml_ephe_get_key_copy\0caml_ephe_key_offset\0caml_ephe_set_data\0caml_ephe_set_key\0caml_ephe_unset_data\0caml_ephe_unset_key\0caml_eq_float\0caml_equal\0caml_erf_float\0caml_erfc_float\0caml_eventlog_pause\0caml_eventlog_resume\0caml_executable_name\0caml_exn_with_js_backtrace\0caml_exp2_float\0caml_exp_float\0caml_expm1_float\0caml_failwith\0caml_fatal_uncaught_exception\0caml_fill_bytes\0caml_fill_string\0caml_final_register\0caml_final_register_called_without_value\0caml_final_release\0caml_finish_formatting\0caml_float_compare\0caml_float_of_bytes\0caml_float_of_int\0caml_float_of_string\0caml_floatarray_blit\0caml_floatarray_create\0caml_floatarray_get\0caml_floatarray_set\0caml_floatarray_unsafe_get\0caml_floatarray_unsafe_set\0caml_floor_float\0caml_fma_float\0caml_fmod_float\0caml_format_exception\0caml_format_float\0caml_format_int\0caml_fresh_oo_id\0caml_frexp_float\0caml_fs_init\0caml_gc_compaction\0caml_gc_counters\0caml_gc_full_major\0caml_gc_get\0caml_gc_huge_fallback_count\0caml_gc_major\0caml_gc_major_slice\0caml_gc_minor\0caml_gc_minor_words\0caml_gc_quick_stat\0caml_gc_set\0caml_gc_stat\0caml_ge_float\0caml_get_continuation_callstack\0caml_get_current_callstack\0caml_get_exception_backtrace\0caml_get_exception_raw_backtrace\0caml_get_global_data\0caml_get_major_bucket\0caml_get_major_credit\0caml_get_minor_free\0caml_get_public_method\0caml_get_root\0caml_global_data\0caml_gr_arc_aux\0caml_gr_blit_image\0caml_gr_clear_graph\0caml_gr_close_graph\0caml_gr_close_subwindow\0caml_gr_create_image\0caml_gr_current_x\0caml_gr_current_y\0caml_gr_display_mode\0caml_gr_doc_of_state\0caml_gr_draw_arc\0caml_gr_draw_char\0caml_gr_draw_image\0caml_gr_draw_rect\0caml_gr_draw_str\0caml_gr_draw_string\0caml_gr_dump_image\0caml_gr_fill_arc\0caml_gr_fill_poly\0caml_gr_fill_rect\0caml_gr_lineto\0caml_gr_make_image\0caml_gr_moveto\0caml_gr_open_graph\0caml_gr_open_subwindow\0caml_gr_plot\0caml_gr_point_color\0caml_gr_remember_mode\0caml_gr_resize_window\0caml_gr_set_color\0caml_gr_set_font\0caml_gr_set_line_width\0caml_gr_set_text_size\0caml_gr_set_window_title\0caml_gr_sigio_handler\0caml_gr_sigio_signal\0caml_gr_size_x\0caml_gr_size_y\0caml_gr_state\0caml_gr_state_create\0caml_gr_state_get\0caml_gr_state_init\0caml_gr_state_set\0caml_gr_synchronize\0caml_gr_text_size\0caml_gr_wait_event\0caml_gr_window_id\0caml_greaterequal\0caml_greaterthan\0caml_gt_float\0caml_hash\0caml_hash_mix_bigstring\0caml_hash_mix_bytes\0caml_hash_mix_bytes_arr\0caml_hash_mix_final\0caml_hash_mix_float\0caml_hash_mix_int\0caml_hash_mix_int64\0caml_hash_mix_jsbytes\0caml_hash_mix_string\0caml_hash_nat\0caml_hexstring_of_float\0caml_hypot_float\0caml_input_value\0caml_input_value_from_bytes\0caml_input_value_from_reader\0caml_input_value_from_string\0caml_input_value_to_outside_heap\0caml_install_signal_handler\0caml_int32_add\0caml_int32_and\0caml_int32_bits_of_float\0caml_int32_bswap\0caml_int32_compare\0caml_int32_div\0caml_int32_float_of_bits\0caml_int32_format\0caml_int32_mod\0caml_int32_mul\0caml_int32_neg\0caml_int32_of_float\0caml_int32_of_int\0caml_int32_of_string\0caml_int32_or\0caml_int32_shift_left\0caml_int32_shift_right\0caml_int32_shift_right_unsigned\0caml_int32_sub\0caml_int32_to_float\0caml_int32_to_int\0caml_int32_unmarshal\0caml_int32_xor\0caml_int64_add\0caml_int64_and\0caml_int64_bits_of_float\0caml_int64_bswap\0caml_int64_compare\0caml_int64_create_lo_hi\0caml_int64_create_lo_mi_hi\0caml_int64_div\0caml_int64_float_of_bits\0caml_int64_format\0caml_int64_hash\0caml_int64_hi32\0caml_int64_is_negative\0caml_int64_is_zero\0caml_int64_lo32\0caml_int64_marshal\0caml_int64_mod\0caml_int64_mul\0caml_int64_neg\0caml_int64_of_bytes\0caml_int64_of_float\0caml_int64_of_int\0caml_int64_of_int32\0caml_int64_of_nativeint\0caml_int64_of_string\0caml_int64_offset\0caml_int64_or\0caml_int64_shift_left\0caml_int64_shift_right\0caml_int64_shift_right_unsigned\0caml_int64_sub\0caml_int64_to_bytes\0caml_int64_to_float\0caml_int64_to_int\0caml_int64_to_int32\0caml_int64_to_nativeint\0caml_int64_ult\0caml_int64_unmarshal\0caml_int64_xor\0caml_int_compare\0caml_int_of_float\0caml_int_of_string\0caml_invalid_argument\0caml_is_continuation_tag\0caml_is_js\0caml_is_ml_bytes\0caml_is_ml_string\0caml_is_printable\0caml_is_special_exception\0caml_js_call\0caml_js_delete\0caml_js_equals\0caml_js_error_of_exception\0caml_js_error_option_of_exception\0caml_js_eval_string\0caml_js_expr\0caml_js_from_array\0caml_js_from_bool\0caml_js_from_float\0caml_js_from_string\0caml_js_fun_call\0caml_js_function_arity\0caml_js_get\0caml_js_get_console\0caml_js_html_entities\0caml_js_html_escape\0caml_js_instanceof\0caml_js_meth_call\0caml_js_new\0caml_js_object\0caml_js_on_ie\0caml_js_pure_expr\0caml_js_set\0caml_js_to_array\0caml_js_to_bool\0caml_js_to_byte_string\0caml_js_to_float\0caml_js_to_string\0caml_js_typeof\0caml_js_var\0caml_js_wrap_callback\0caml_js_wrap_callback_arguments\0caml_js_wrap_callback_strict\0caml_js_wrap_callback_unsafe\0caml_js_wrap_meth_callback\0caml_js_wrap_meth_callback_arguments\0caml_js_wrap_meth_callback_strict\0caml_js_wrap_meth_callback_unsafe\0caml_jsbytes_of_string\0caml_jsoo_flags_effects\0caml_jsoo_flags_use_js_string\0caml_jsstring_of_string\0caml_lazy_make_forward\0caml_lazy_read_result\0caml_lazy_reset_to_lazy\0caml_lazy_update_to_forcing\0caml_lazy_update_to_forward\0caml_ldexp_float\0caml_le_float\0caml_lessequal\0caml_lessthan\0caml_lex_array\0caml_lex_engine\0caml_list_mount_point\0caml_list_of_js_array\0caml_list_to_js_array\0caml_log10_float\0caml_log1p_float\0caml_log2_float\0caml_log_float\0caml_lt_float\0caml_lxm_next\0caml_make_array\0caml_make_float_vect\0caml_make_path\0caml_make_vect\0caml_marshal_constants\0caml_marshal_data_size\0caml_marshal_header_size\0caml_maybe_attach_backtrace\0caml_maybe_print_stats\0caml_md5_bytes\0caml_md5_chan\0caml_md5_string\0caml_memprof_set\0caml_memprof_start\0caml_memprof_stop\0caml_ml_bytes_content\0caml_ml_bytes_length\0caml_ml_channel_size\0caml_ml_channel_size_64\0caml_ml_channels\0caml_ml_close_channel\0caml_ml_condition_broadcast\0caml_ml_condition_new\0caml_ml_condition_signal\0caml_ml_condition_wait\0caml_ml_debug_info_status\0caml_ml_domain_cpu_relax\0caml_ml_domain_id\0caml_ml_domain_set_name\0caml_ml_domain_unique_token\0caml_ml_enable_runtime_warnings\0caml_ml_flush\0caml_ml_input\0caml_ml_input_block\0caml_ml_input_char\0caml_ml_input_int\0caml_ml_input_scan_line\0caml_ml_is_buffered\0caml_ml_mutex_lock\0caml_ml_mutex_new\0caml_ml_mutex_try_lock\0caml_ml_mutex_unlock\0caml_ml_open_descriptor_in\0caml_ml_open_descriptor_out\0caml_ml_out_channels_list\0caml_ml_output\0caml_ml_output_bytes\0caml_ml_output_char\0caml_ml_output_int\0caml_ml_pos_in\0caml_ml_pos_in_64\0caml_ml_pos_out\0caml_ml_pos_out_64\0caml_ml_runtime_warnings_enabled\0caml_ml_seek_in\0caml_ml_seek_in_64\0caml_ml_seek_out\0caml_ml_seek_out_64\0caml_ml_set_binary_mode\0caml_ml_set_buffered\0caml_ml_set_channel_name\0caml_ml_set_channel_output\0caml_ml_set_channel_refill\0caml_ml_string_length\0caml_mod\0caml_modf_float\0caml_mount_autoload\0caml_mul\0caml_mul_float\0caml_named_value\0caml_named_values\0caml_nativeint_add\0caml_nativeint_and\0caml_nativeint_bswap\0caml_nativeint_compare\0caml_nativeint_div\0caml_nativeint_format\0caml_nativeint_mod\0caml_nativeint_mul\0caml_nativeint_neg\0caml_nativeint_of_float\0caml_nativeint_of_int\0caml_nativeint_of_int32\0caml_nativeint_of_string\0caml_nativeint_or\0caml_nativeint_shift_left\0caml_nativeint_shift_right\0caml_nativeint_shift_right_unsigned\0caml_nativeint_sub\0caml_nativeint_to_float\0caml_nativeint_to_int\0caml_nativeint_to_int32\0caml_nativeint_unmarshal\0caml_nativeint_xor\0caml_neg_float\0caml_neq_float\0caml_new_lex_engine\0caml_new_string\0caml_nextafter_float\0caml_notequal\0caml_obj_add_offset\0caml_obj_block\0caml_obj_compare_and_swap\0caml_obj_dup\0caml_obj_is_block\0caml_obj_is_shared\0caml_obj_make_forward\0caml_obj_raw_field\0caml_obj_reachable_words\0caml_obj_set_raw_field\0caml_obj_set_tag\0caml_obj_tag\0caml_obj_truncate\0caml_obj_update_tag\0caml_obj_with_tag\0caml_ojs_new_arr\0caml_oo_last_id\0caml_output_val\0caml_output_value\0caml_output_value_to_buffer\0caml_output_value_to_bytes\0caml_output_value_to_string\0caml_parse_digit\0caml_parse_engine\0caml_parse_format\0caml_parse_sign_and_base\0caml_parser_trace\0caml_pos_in\0caml_pos_out\0caml_power_float\0caml_pure_js_expr\0caml_raise_constant\0caml_raise_end_of_file\0caml_raise_no_such_file\0caml_raise_not_a_dir\0caml_raise_not_found\0caml_raise_sys_error\0caml_raise_with_arg\0caml_raise_with_args\0caml_raise_with_string\0caml_raise_zero_divide\0caml_raw_backtrace_length\0caml_raw_backtrace_next_slot\0caml_raw_backtrace_slot\0caml_read_file_content\0caml_recommended_domain_count\0caml_record_backtrace\0caml_record_backtrace_flag\0caml_refill\0caml_register_channel_for_spacetime\0caml_register_global\0caml_register_named_value\0caml_restore_raw_backtrace\0caml_root\0caml_round_float\0caml_runtime_events_create_cursor\0caml_runtime_events_free_cursor\0caml_runtime_events_pause\0caml_runtime_events_read_poll\0caml_runtime_events_resume\0caml_runtime_events_start\0caml_runtime_events_user_register\0caml_runtime_events_user_resolve\0caml_runtime_events_user_write\0caml_runtime_parameters\0caml_runtime_variant\0caml_runtime_warnings\0caml_seek_in\0caml_seek_out\0caml_set_oo_id\0caml_set_parser_trace\0caml_set_static_env\0caml_signbit_float\0caml_sin_float\0caml_sinh_float\0caml_spacetime_enabled\0caml_spacetime_only_works_for_native_code\0caml_sqrt_float\0caml_str_initialize\0caml_str_repeat\0caml_string_bound_error\0caml_string_compare\0caml_string_equal\0caml_string_get\0caml_string_get16\0caml_string_get32\0caml_string_get64\0caml_string_greaterequal\0caml_string_greaterthan\0caml_string_hash\0caml_string_lessequal\0caml_string_lessthan\0caml_string_notequal\0caml_string_of_array\0caml_string_of_bytes\0caml_string_of_jsbytes\0caml_string_of_jsstring\0caml_string_set\0caml_string_set16\0caml_string_set32\0caml_string_set64\0caml_string_unsafe_get\0caml_string_unsafe_set\0caml_sub_float\0caml_subarray_to_jsbytes\0caml_sys_argv\0caml_sys_chdir\0caml_sys_close\0caml_sys_const_backend_type\0caml_sys_const_big_endian\0caml_sys_const_int_size\0caml_sys_const_max_wosize\0caml_sys_const_naked_pointers_checked\0caml_sys_const_ostype_cygwin\0caml_sys_const_ostype_unix\0caml_sys_const_ostype_win32\0caml_sys_const_word_size\0caml_sys_executable_name\0caml_sys_exit\0caml_sys_fds\0caml_sys_file_exists\0caml_sys_get_argv\0caml_sys_get_config\0caml_sys_getcwd\0caml_sys_getenv\0caml_sys_is_directory\0caml_sys_is_regular_file\0caml_sys_isatty\0caml_sys_mkdir\0caml_sys_modify_argv\0caml_sys_open\0caml_sys_open_for_node\0caml_sys_random_seed\0caml_sys_read_directory\0caml_sys_remove\0caml_sys_rename\0caml_sys_rmdir\0caml_sys_system_command\0caml_sys_time\0caml_sys_time_include_children\0caml_sys_unsafe_getenv\0caml_tan_float\0caml_tanh_float\0caml_to_js_string\0caml_trailing_slash\0caml_trampoline\0caml_trampoline_return\0caml_trunc_float\0caml_uint8_array_of_bytes\0caml_uint8_array_of_string\0caml_unix_cleanup\0caml_unix_closedir\0caml_unix_filedescr_of_fd\0caml_unix_findclose\0caml_unix_findfirst\0caml_unix_findnext\0caml_unix_getpwuid\0caml_unix_gettimeofday\0caml_unix_getuid\0caml_unix_gmtime\0caml_unix_has_symlink\0caml_unix_inet_addr_of_string\0caml_unix_isatty\0caml_unix_localtime\0caml_unix_lstat\0caml_unix_lstat_64\0caml_unix_mkdir\0caml_unix_mktime\0caml_unix_opendir\0caml_unix_readdir\0caml_unix_readlink\0caml_unix_rewinddir\0caml_unix_rmdir\0caml_unix_startup\0caml_unix_stat\0caml_unix_stat_64\0caml_unix_symlink\0caml_unix_time\0caml_unix_unlink\0caml_unmount\0caml_update_dummy\0caml_utf16_of_utf8\0caml_utf8_of_utf16\0caml_weak_blit\0caml_weak_check\0caml_weak_create\0caml_weak_get\0caml_weak_get_copy\0caml_weak_set\0caml_wrap_exception\0caml_xmlhttprequest_create\0caml_zarith_marshal\0caml_zarith_unmarshal\0compare_digits_nat\0compare_nat\0compare_nat_real\0complement_nat\0create_nat\0decr_nat\0deserialize_nat\0div_digit_nat\0div_helper\0div_nat\0fs_node_supported\0incr_nat\0initialize_nat\0is_digit_int\0is_digit_odd\0is_digit_zero\0jsoo_create_file\0jsoo_create_file_extern\0jsoo_effect_not_supported\0jsoo_floor_log2\0jsoo_is_ascii\0jsoo_mount_point\0jsoo_sys_getenv\0jsoo_z_of_js_string_base\0land_digit_nat\0lor_digit_nat\0lxor_digit_nat\0make_unix_err_args\0ml_z_abs\0ml_z_add\0ml_z_bin\0ml_z_cdiv\0ml_z_compare\0ml_z_congruent\0ml_z_div\0ml_z_div_rem\0ml_z_divexact\0ml_z_divisible\0ml_z_equal\0ml_z_extract\0ml_z_fac\0ml_z_fac2\0ml_z_facM\0ml_z_fdiv\0ml_z_fib\0ml_z_fits_int\0ml_z_fits_int32\0ml_z_fits_int64\0ml_z_fits_nativeint\0ml_z_format\0ml_z_gcd\0ml_z_gcdext_intern\0ml_z_hamdist\0ml_z_hash\0ml_z_init\0ml_z_invert\0ml_z_jacobi\0ml_z_kronecker\0ml_z_legendre\0ml_z_logand\0ml_z_lognot\0ml_z_logor\0ml_z_logxor\0ml_z_lucnum\0ml_z_mul\0ml_z_mul_overflows\0ml_z_neg\0ml_z_nextprime\0ml_z_normalize\0ml_z_numbits\0ml_z_of_bits\0ml_z_of_float\0ml_z_of_int32\0ml_z_of_int64\0ml_z_of_nativeint\0ml_z_of_substring_base\0ml_z_perfect_power\0ml_z_perfect_square\0ml_z_popcount\0ml_z_pow\0ml_z_powm\0ml_z_powm_sec\0ml_z_pred\0ml_z_primorial\0ml_z_probab_prime\0ml_z_rem\0ml_z_remove\0ml_z_root\0ml_z_rootrem\0ml_z_shift_left\0ml_z_shift_right\0ml_z_shift_right_trunc\0ml_z_sign\0ml_z_size\0ml_z_sqrt\0ml_z_sqrt_rem\0ml_z_sub\0ml_z_succ\0ml_z_testbit\0ml_z_to_bits\0ml_z_to_int\0ml_z_to_int32\0ml_z_to_int64\0ml_z_to_nativeint\0ml_z_trailing_zeros\0mult_digit_nat\0mult_nat\0nat_of_array\0nth_digit_nat\0nth_digit_nat_native\0num_digits_nat\0num_leading_zero_bits_in_digit\0os_type\0path_is_absolute\0re_match\0re_partial_match\0re_replacement_text\0re_search_backward\0re_search_forward\0re_string_match\0resolve_fs_device\0serialize_nat\0set_digit_nat\0set_digit_nat_native\0set_to_zero_nat\0shift_left_nat\0shift_right_nat\0square_nat\0sub_nat\0unix_closedir\0unix_getpwuid\0unix_gettimeofday\0unix_getuid\0unix_gmtime\0unix_has_symlink\0unix_inet_addr_of_string\0unix_isatty\0unix_localtime\0unix_lstat\0unix_lstat_64\0unix_mkdir\0unix_mktime\0unix_opendir\0unix_readdir\0unix_readlink\0unix_rewinddir\0unix_rmdir\0unix_stat\0unix_stat_64\0unix_symlink\0unix_time\0unix_unlink\0win_cleanup\0win_filedescr_of_channel\0win_findclose\0win_findfirst\0win_findnext\0win_handle_fd\0win_startup\0zstd_decompress\0"],0]]]];return}(globalThis)); + +//# 1 "../../.js/default/stdlib/stdlib.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 5 "../../.js/default/stdlib/stdlib.cma.js" (function - (globalThis) - {"use strict"; + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function erase_rel(param){ + if(typeof param === "number") return 0; + switch(param[0]){ + case 0: + var rest = param[1]; return [0, erase_rel(rest)]; + case 1: + var rest$0 = param[1]; return [1, erase_rel(rest$0)]; + case 2: + var rest$1 = param[1]; return [2, erase_rel(rest$1)]; + case 3: + var rest$2 = param[1]; return [3, erase_rel(rest$2)]; + case 4: + var rest$3 = param[1]; return [4, erase_rel(rest$3)]; + case 5: + var rest$4 = param[1]; return [5, erase_rel(rest$4)]; + case 6: + var rest$5 = param[1]; return [6, erase_rel(rest$5)]; + case 7: + var rest$6 = param[1]; return [7, erase_rel(rest$6)]; + case 8: + var rest$7 = param[2], ty = param[1]; + return [8, ty, erase_rel(rest$7)]; + case 9: + var rest$8 = param[3], ty1 = param[1]; + return [9, ty1, ty1, erase_rel(rest$8)]; + case 10: + var rest$9 = param[1]; return [10, erase_rel(rest$9)]; + case 11: + var rest$10 = param[1]; return [11, erase_rel(rest$10)]; + case 12: + var rest$11 = param[1]; return [12, erase_rel(rest$11)]; + case 13: + var rest$12 = param[1]; return [13, erase_rel(rest$12)]; + default: var rest$13 = param[1]; return [14, erase_rel(rest$13)]; + } + } + function concat_fmtty(fmtty1, fmtty2){ + if(typeof fmtty1 === "number") return fmtty2; + switch(fmtty1[0]){ + case 0: + var rest = fmtty1[1]; return [0, concat_fmtty(rest, fmtty2)]; + case 1: + var rest$0 = fmtty1[1]; return [1, concat_fmtty(rest$0, fmtty2)]; + case 2: + var rest$1 = fmtty1[1]; return [2, concat_fmtty(rest$1, fmtty2)]; + case 3: + var rest$2 = fmtty1[1]; return [3, concat_fmtty(rest$2, fmtty2)]; + case 4: + var rest$3 = fmtty1[1]; return [4, concat_fmtty(rest$3, fmtty2)]; + case 5: + var rest$4 = fmtty1[1]; return [5, concat_fmtty(rest$4, fmtty2)]; + case 6: + var rest$5 = fmtty1[1]; return [6, concat_fmtty(rest$5, fmtty2)]; + case 7: + var rest$6 = fmtty1[1]; return [7, concat_fmtty(rest$6, fmtty2)]; + case 8: + var rest$7 = fmtty1[2], ty = fmtty1[1]; + return [8, ty, concat_fmtty(rest$7, fmtty2)]; + case 9: + var rest$8 = fmtty1[3], ty2 = fmtty1[2], ty1 = fmtty1[1]; + return [9, ty1, ty2, concat_fmtty(rest$8, fmtty2)]; + case 10: + var rest$9 = fmtty1[1]; return [10, concat_fmtty(rest$9, fmtty2)]; + case 11: + var rest$10 = fmtty1[1]; return [11, concat_fmtty(rest$10, fmtty2)]; + case 12: + var rest$11 = fmtty1[1]; return [12, concat_fmtty(rest$11, fmtty2)]; + case 13: + var rest$12 = fmtty1[1]; return [13, concat_fmtty(rest$12, fmtty2)]; + default: + var rest$13 = fmtty1[1]; return [14, concat_fmtty(rest$13, fmtty2)]; + } + } + function concat_fmt(fmt1, fmt2){ + if(typeof fmt1 === "number") return fmt2; + switch(fmt1[0]){ + case 0: + var rest = fmt1[1]; return [0, concat_fmt(rest, fmt2)]; + case 1: + var rest$0 = fmt1[1]; return [1, concat_fmt(rest$0, fmt2)]; + case 2: + var rest$1 = fmt1[2], pad = fmt1[1]; + return [2, pad, concat_fmt(rest$1, fmt2)]; + case 3: + var rest$2 = fmt1[2], pad$0 = fmt1[1]; + return [3, pad$0, concat_fmt(rest$2, fmt2)]; + case 4: + var rest$3 = fmt1[4], prec = fmt1[3], pad$1 = fmt1[2], iconv = fmt1[1]; + return [4, iconv, pad$1, prec, concat_fmt(rest$3, fmt2)]; + case 5: + var + rest$4 = fmt1[4], + prec$0 = fmt1[3], + pad$2 = fmt1[2], + iconv$0 = fmt1[1]; + return [5, iconv$0, pad$2, prec$0, concat_fmt(rest$4, fmt2)]; + case 6: + var + rest$5 = fmt1[4], + prec$1 = fmt1[3], + pad$3 = fmt1[2], + iconv$1 = fmt1[1]; + return [6, iconv$1, pad$3, prec$1, concat_fmt(rest$5, fmt2)]; + case 7: + var + rest$6 = fmt1[4], + prec$2 = fmt1[3], + pad$4 = fmt1[2], + iconv$2 = fmt1[1]; + return [7, iconv$2, pad$4, prec$2, concat_fmt(rest$6, fmt2)]; + case 8: + var + rest$7 = fmt1[4], + prec$3 = fmt1[3], + pad$5 = fmt1[2], + fconv = fmt1[1]; + return [8, fconv, pad$5, prec$3, concat_fmt(rest$7, fmt2)]; + case 9: + var rest$8 = fmt1[2], pad$6 = fmt1[1]; + return [9, pad$6, concat_fmt(rest$8, fmt2)]; + case 10: + var rest$9 = fmt1[1]; return [10, concat_fmt(rest$9, fmt2)]; + case 11: + var rest$10 = fmt1[2], str = fmt1[1]; + return [11, str, concat_fmt(rest$10, fmt2)]; + case 12: + var rest$11 = fmt1[2], chr = fmt1[1]; + return [12, chr, concat_fmt(rest$11, fmt2)]; + case 13: + var rest$12 = fmt1[3], fmtty = fmt1[2], pad$7 = fmt1[1]; + return [13, pad$7, fmtty, concat_fmt(rest$12, fmt2)]; + case 14: + var rest$13 = fmt1[3], fmtty$0 = fmt1[2], pad$8 = fmt1[1]; + return [14, pad$8, fmtty$0, concat_fmt(rest$13, fmt2)]; + case 15: + var rest$14 = fmt1[1]; return [15, concat_fmt(rest$14, fmt2)]; + case 16: + var rest$15 = fmt1[1]; return [16, concat_fmt(rest$15, fmt2)]; + case 17: + var rest$16 = fmt1[2], fmting_lit = fmt1[1]; + return [17, fmting_lit, concat_fmt(rest$16, fmt2)]; + case 18: + var rest$17 = fmt1[2], fmting_gen = fmt1[1]; + return [18, fmting_gen, concat_fmt(rest$17, fmt2)]; + case 19: + var rest$18 = fmt1[1]; return [19, concat_fmt(rest$18, fmt2)]; + case 20: + var rest$19 = fmt1[3], char_set = fmt1[2], width_opt = fmt1[1]; + return [20, width_opt, char_set, concat_fmt(rest$19, fmt2)]; + case 21: + var rest$20 = fmt1[2], counter = fmt1[1]; + return [21, counter, concat_fmt(rest$20, fmt2)]; + case 22: + var rest$21 = fmt1[1]; return [22, concat_fmt(rest$21, fmt2)]; + case 23: + var rest$22 = fmt1[2], ign = fmt1[1]; + return [23, ign, concat_fmt(rest$22, fmt2)]; + default: + var rest$23 = fmt1[3], f = fmt1[2], arity = fmt1[1]; + return [24, arity, f, concat_fmt(rest$23, fmt2)]; + } + } + var CamlinternalFormatBasics = [0, concat_fmtty, erase_rel, concat_fmt]; + runtime.caml_register_global + (0, CamlinternalFormatBasics, "CamlinternalFormatBasics"); + return; + } + (globalThis)); + +//# 179 "../../.js/default/stdlib/stdlib.cma.js" +(function(globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function make(v){return [0, v];} + function get(r){return r[1];} + function set(r, v){r[1] = v; return 0;} + function exchange(r, v){var cur = r[1]; r[1] = v; return cur;} + function compare_and_set(r, seen, v){ + var cur = r[1]; + return cur === seen ? (r[1] = v, 1) : 0; + } + function fetch_and_add(r, n){ + var cur = r[1]; + r[1] = cur + n | 0; + return cur; + } + function incr(r){fetch_and_add(r, 1); return 0;} + function decr(r){fetch_and_add(r, -1); return 0;} + var + CamlinternalAtomic = + [0, + make, + get, + set, + exchange, + compare_and_set, + fetch_and_add, + incr, + decr]; + runtime.caml_register_global(0, CamlinternalAtomic, "CamlinternalAtomic"); + return; + } + (globalThis)); + +//# 215 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_false$0 = "false", + cst_true$0 = "true", + caml_blit_string = runtime.caml_blit_string, + caml_create_bytes = runtime.caml_create_bytes, + caml_float_of_string = runtime.caml_float_of_string, + caml_int64_float_of_bits = runtime.caml_int64_float_of_bits, + caml_int_of_string = runtime.caml_int_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_ml_channel_size = runtime.caml_ml_channel_size, + caml_ml_channel_size_64 = runtime.caml_ml_channel_size_64, + caml_ml_close_channel = runtime.caml_ml_close_channel, + caml_ml_flush = runtime.caml_ml_flush, + caml_ml_input = runtime.caml_ml_input, + caml_ml_input_char = runtime.caml_ml_input_char, + caml_ml_open_descriptor_in = runtime.caml_ml_open_descriptor_in, + caml_ml_open_descriptor_out = runtime.caml_ml_open_descriptor_out, + caml_ml_output = runtime.caml_ml_output, + caml_ml_output_bytes = runtime.caml_ml_output_bytes, + caml_ml_output_char = runtime.caml_ml_output_char, + caml_ml_set_binary_mode = runtime.caml_ml_set_binary_mode, + caml_ml_set_channel_name = runtime.caml_ml_set_channel_name, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_bytes = runtime.caml_string_of_bytes, + caml_sys_open = runtime.caml_sys_open, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst$0 = "%,", + cst = ".", + CamlinternalAtomic = global_data.CamlinternalAtomic, + CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, + Invalid_argument = global_data.Invalid_argument, + Failure = global_data.Failure, + Match_failure = global_data.Match_failure, + Assert_failure = global_data.Assert_failure, + Not_found = global_data.Not_found, + Out_of_memory = global_data.Out_of_memory, + Stack_overflow = global_data.Stack_overflow, + Sys_error = global_data.Sys_error, + End_of_file = global_data.End_of_file, + Division_by_zero = global_data.Division_by_zero, + Sys_blocked_io = global_data.Sys_blocked_io, + Undefined_recursive_module = global_data.Undefined_recursive_module, + cst_really_input = "really_input", + cst_input = "input", + _l_ = [0, 0, [0, 6, 0]], + _k_ = [0, 0, [0, 7, 0]], + cst_output_substring = "output_substring", + cst_output = "output", + _j_ = [0, 1, [0, 3, [0, 4, [0, 6, 0]]]], + _i_ = [0, 1, [0, 3, [0, 4, [0, 7, 0]]]], + _g_ = [0, 1], + _h_ = [0, 0], + cst_bool_of_string = "bool_of_string", + cst_true = cst_true$0, + cst_false = cst_false$0, + cst_char_of_int = "char_of_int", + cst_Stdlib_Exit = "Stdlib.Exit", + _a_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 32752), + _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 65520), + _c_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 32752), + _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32751), + _e_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 16), + _f_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 15536); + function failwith(s){ + throw caml_maybe_attach_backtrace([0, Failure, s], 1); + } + function invalid_arg(s){ + throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); + } + var Exit = [248, cst_Stdlib_Exit, runtime.caml_fresh_oo_id(0)]; + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return runtime.caml_greaterequal(x, y) ? x : y;} + function abs(x){return 0 <= x ? x : - x | 0;} + function lnot(x){return x ^ -1;} + var + infinity = caml_int64_float_of_bits(_a_), + neg_infinity = caml_int64_float_of_bits(_b_), + nan = caml_int64_float_of_bits(_c_), + max_float = caml_int64_float_of_bits(_d_), + min_float = caml_int64_float_of_bits(_e_), + epsilon_float = caml_int64_float_of_bits(_f_), + max_int = 2147483647, + min_int = -2147483648; + function symbol(s1, s2){ var - runtime=globalThis.jsoo_runtime, - caml_array_concat=runtime.caml_array_concat, - caml_array_get=runtime.caml_array_get, - caml_array_set=runtime.caml_array_set, - caml_array_sub=runtime.caml_array_sub, - caml_ba_change_layout=runtime.caml_ba_change_layout, - caml_ba_create=runtime.caml_ba_create, - caml_ba_dim_1=runtime.caml_ba_dim_1, - caml_ba_dim_2=runtime.caml_ba_dim_2, - caml_ba_kind=runtime.caml_ba_kind, - caml_ba_num_dims=runtime.caml_ba_num_dims, - caml_ba_reshape=runtime.caml_ba_reshape, - caml_ba_set_1=runtime.caml_ba_set_1, - caml_ba_set_2=runtime.caml_ba_set_2, - caml_ba_set_3=runtime.caml_ba_set_3, - caml_ba_set_generic=runtime.caml_ba_set_generic, - caml_ba_slice=runtime.caml_ba_slice, - caml_blit_bytes=runtime.caml_blit_bytes, - caml_blit_string=runtime.caml_blit_string, - caml_bswap16=runtime.caml_bswap16, - caml_bytes_get=runtime.caml_bytes_get, - caml_bytes_get16=runtime.caml_bytes_get16, - caml_bytes_get32=runtime.caml_bytes_get32, - caml_bytes_get64=runtime.caml_bytes_get64, - caml_bytes_of_string=runtime.caml_bytes_of_string, - caml_bytes_set=runtime.caml_bytes_set, - caml_bytes_set16=runtime.caml_bytes_set16, - caml_bytes_set32=runtime.caml_bytes_set32, - caml_bytes_set64=runtime.caml_bytes_set64, - caml_bytes_unsafe_get=runtime.caml_bytes_unsafe_get, - caml_bytes_unsafe_set=runtime.caml_bytes_unsafe_set, - caml_check_bound=runtime.caml_check_bound, - caml_compare=runtime.caml_compare, - caml_create_bytes=runtime.caml_create_bytes, - caml_div=runtime.caml_div, - caml_ephe_blit_key=runtime.caml_ephe_blit_key, - caml_ephe_check_key=runtime.caml_ephe_check_key, - caml_ephe_get_key=runtime.caml_ephe_get_key, - caml_ephe_get_key_copy=runtime.caml_ephe_get_key_copy, - caml_ephe_set_key=runtime.caml_ephe_set_key, - caml_ephe_unset_key=runtime.caml_ephe_unset_key, - caml_equal=runtime.caml_equal, - caml_fill_bytes=runtime.caml_fill_bytes, - caml_float_compare=runtime.caml_float_compare, - caml_float_of_string=runtime.caml_float_of_string, - caml_floatarray_blit=runtime.caml_floatarray_blit, - caml_floatarray_create=runtime.caml_floatarray_create, - caml_format_float=runtime.caml_format_float, - caml_format_int=runtime.caml_format_int, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_get_exception_raw_backtra=runtime.caml_get_exception_raw_backtrace, - caml_get_public_method=runtime.caml_get_public_method, - caml_greaterequal=runtime.caml_greaterequal, - caml_greaterthan=runtime.caml_greaterthan, - caml_hash=runtime.caml_hash, - caml_input_value=runtime.caml_input_value, - caml_int32_bswap=runtime.caml_int32_bswap, - caml_int64_add=runtime.caml_int64_add, - caml_int64_bswap=runtime.caml_int64_bswap, - caml_int64_compare=runtime.caml_int64_compare, - caml_int64_float_of_bits=runtime.caml_int64_float_of_bits, - caml_int64_format=runtime.caml_int64_format, - caml_int64_mul=runtime.caml_int64_mul, - caml_int64_of_int32=runtime.caml_int64_of_int32, - caml_int64_of_string=runtime.caml_int64_of_string, - caml_int64_or=runtime.caml_int64_or, - caml_int64_shift_left=runtime.caml_int64_shift_left, - caml_int64_shift_right_unsigne=runtime.caml_int64_shift_right_unsigned, - caml_int64_sub=runtime.caml_int64_sub, - caml_int_compare=runtime.caml_int_compare, - caml_int_of_string=runtime.caml_int_of_string, - caml_lessequal=runtime.caml_lessequal, - caml_lessthan=runtime.caml_lessthan, - caml_make_vect=runtime.caml_make_vect, - caml_marshal_data_size=runtime.caml_marshal_data_size, - caml_md5_string=runtime.caml_md5_string, - caml_ml_bytes_length=runtime.caml_ml_bytes_length, - caml_ml_channel_size=runtime.caml_ml_channel_size, - caml_ml_channel_size_64=runtime.caml_ml_channel_size_64, - caml_ml_close_channel=runtime.caml_ml_close_channel, - caml_ml_flush=runtime.caml_ml_flush, - caml_ml_input=runtime.caml_ml_input, - caml_ml_input_char=runtime.caml_ml_input_char, - caml_ml_open_descriptor_in=runtime.caml_ml_open_descriptor_in, - caml_ml_open_descriptor_out=runtime.caml_ml_open_descriptor_out, - caml_ml_output=runtime.caml_ml_output, - caml_ml_output_bytes=runtime.caml_ml_output_bytes, - caml_ml_output_char=runtime.caml_ml_output_char, - caml_ml_pos_in=runtime.caml_ml_pos_in, - caml_ml_set_binary_mode=runtime.caml_ml_set_binary_mode, - caml_ml_set_channel_name=runtime.caml_ml_set_channel_name, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_mod=runtime.caml_mod, - caml_mul=runtime.caml_mul, - caml_nextafter_float=runtime.caml_nextafter_float, - caml_notequal=runtime.caml_notequal, - caml_obj_block=runtime.caml_obj_block, - caml_obj_make_forward=runtime.caml_obj_make_forward, - caml_obj_tag=runtime.caml_obj_tag, - caml_output_value=runtime.caml_output_value, - caml_register_global=runtime.caml_register_global, - caml_register_named_value=runtime.caml_register_named_value, - caml_restore_raw_backtrace=runtime.caml_restore_raw_backtrace, - caml_set_oo_id=runtime.caml_set_oo_id, - caml_signbit_float=runtime.caml_signbit_float, - caml_string_compare=runtime.caml_string_compare, - caml_string_equal=runtime.caml_string_equal, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_bytes=runtime.caml_string_of_bytes, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_unsafe_get=runtime.caml_string_unsafe_get, - caml_sys_argv=runtime.caml_sys_argv, - caml_sys_getenv=runtime.caml_sys_getenv, - caml_sys_open=runtime.caml_sys_open, - caml_sys_random_seed=runtime.caml_sys_random_seed, - caml_trampoline=runtime.caml_trampoline, - caml_trampoline_return=runtime.caml_trampoline_return, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} + l1 = caml_ml_string_length(s1), + l2 = caml_ml_string_length(s2), + s = caml_create_bytes(l1 + l2 | 0); + caml_blit_string(s1, 0, s, 0, l1); + caml_blit_string(s2, 0, s, l1, l2); + return caml_string_of_bytes(s); + } + function char_of_int(n){ + if(0 <= n && 255 >= n) return n; + return invalid_arg(cst_char_of_int); + } + function string_of_bool(b){return b ? cst_true : cst_false;} + function bool_of_string(param){ + return caml_string_notequal(param, cst_false$0) + ? caml_string_notequal + (param, cst_true$0) + ? invalid_arg(cst_bool_of_string) + : 1 + : 0; + } + function bool_of_string_opt(param){ + return caml_string_notequal(param, cst_false$0) + ? caml_string_notequal(param, cst_true$0) ? 0 : _g_ + : _h_; + } + function string_of_int(n){return "" + n;} + function int_of_string_opt(s){ + try{var _B_ = [0, caml_int_of_string(s)]; return _B_;} + catch(_C_){ + var _A_ = caml_wrap_exception(_C_); + if(_A_[1] === Failure) return 0; + throw caml_maybe_attach_backtrace(_A_, 0); + } + } + function valid_float_lexem(s){ + var l = caml_ml_string_length(s), i = 0; + for(;;){ + if(l <= i) return symbol(s, cst); + var match = runtime.caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) return s; + var i$0 = i + 1 | 0, i = i$0; + } + } + function string_of_float(f){ + return valid_float_lexem(runtime.caml_format_float("%.12g", f)); + } + function float_of_string_opt(s){ + try{var _y_ = [0, caml_float_of_string(s)]; return _y_;} + catch(_z_){ + var _x_ = caml_wrap_exception(_z_); + if(_x_[1] === Failure) return 0; + throw caml_maybe_attach_backtrace(_x_, 0); + } + } + function symbol$0(l1, l2){ + if(! l1) return l2; + var tl = l1[2], hd = l1[1]; + return [0, hd, symbol$0(tl, l2)]; + } + var + stdin = caml_ml_open_descriptor_in(0), + stdout = caml_ml_open_descriptor_out(1), + stderr = caml_ml_open_descriptor_out(2); + function open_out_gen(mode, perm, name){ + var c = caml_ml_open_descriptor_out(caml_sys_open(name, mode, perm)); + caml_ml_set_channel_name(c, name); + return c; + } + function open_out(name){return open_out_gen(_i_, 438, name);} + function open_out_bin(name){return open_out_gen(_j_, 438, name);} + function flush_all(param){ + var param$0 = runtime.caml_ml_out_channels_list(0); + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1]; + try{caml_ml_flush(a);} + catch(_w_){ + var _v_ = caml_wrap_exception(_w_); + if(_v_[1] !== Sys_error) throw caml_maybe_attach_backtrace(_v_, 0); + } + var param$0 = l; + } + } + function output_bytes(oc, s){ + return caml_ml_output_bytes(oc, s, 0, caml_ml_bytes_length(s)); + } + function output_string(oc, s){ + return caml_ml_output(oc, s, 0, caml_ml_string_length(s)); + } + function output(oc, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_output_bytes(oc, s, ofs, len); + return invalid_arg(cst_output); + } + function output_substring(oc, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) + return caml_ml_output(oc, s, ofs, len); + return invalid_arg(cst_output_substring); + } + function output_value(chan, v){ + return runtime.caml_output_value(chan, v, 0); + } + function close_out(oc){ + caml_ml_flush(oc); + return caml_ml_close_channel(oc); + } + function close_out_noerr(oc){ + try{caml_ml_flush(oc);}catch(_u_){} + try{var _s_ = caml_ml_close_channel(oc); return _s_;}catch(_t_){return 0;} + } + function open_in_gen(mode, perm, name){ + var c = caml_ml_open_descriptor_in(caml_sys_open(name, mode, perm)); + caml_ml_set_channel_name(c, name); + return c; + } + function open_in(name){return open_in_gen(_k_, 0, name);} + function open_in_bin(name){return open_in_gen(_l_, 0, name);} + function input(ic, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_ml_input(ic, s, ofs, len); + return invalid_arg(cst_input); + } + function unsafe_really_input(ic, s, ofs, len){ + var ofs$0 = ofs, len$0 = len; + for(;;){ + if(0 >= len$0) return 0; + var r = caml_ml_input(ic, s, ofs$0, len$0); + if(0 === r) throw caml_maybe_attach_backtrace(End_of_file, 1); + var + len$1 = len$0 - r | 0, + ofs$1 = ofs$0 + r | 0, + ofs$0 = ofs$1, + len$0 = len$1; + } + } + function really_input(ic, s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return unsafe_really_input(ic, s, ofs, len); + return invalid_arg(cst_really_input); + } + function really_input_string(ic, len){ + var s = caml_create_bytes(len); + really_input(ic, s, 0, len); + return caml_string_of_bytes(s); + } + function input_line(chan){ + function build_result(buf, pos, param){ + var pos$0 = pos, param$0 = param; + for(;;){ + if(! param$0) return buf; + var tl = param$0[2], hd = param$0[1], len = caml_ml_bytes_length(hd); + runtime.caml_blit_bytes(hd, 0, buf, pos$0 - len | 0, len); + var pos$1 = pos$0 - len | 0, pos$0 = pos$1, param$0 = tl; + } + } + var accu = 0, len = 0; + for(;;){ + var n = runtime.caml_ml_input_scan_line(chan); + if(0 === n){ + if(! accu) throw caml_maybe_attach_backtrace(End_of_file, 1); + var _r_ = build_result(caml_create_bytes(len), len, accu); + } + else{ + if(0 >= n){ + var beg = caml_create_bytes(- n | 0); + caml_ml_input(chan, beg, 0, - n | 0); + var + len$1 = len - n | 0, + accu$0 = [0, beg, accu], + accu = accu$0, + len = len$1; + continue; + } + var res = caml_create_bytes(n - 1 | 0); + caml_ml_input(chan, res, 0, n - 1 | 0); + caml_ml_input_char(chan); + if(accu) + var + len$0 = (len + n | 0) - 1 | 0, + _r_ = build_result(caml_create_bytes(len$0), len$0, [0, res, accu]); + else + var _r_ = res; + } + return caml_string_of_bytes(_r_); + } + } + function close_in_noerr(ic){ + try{var _p_ = caml_ml_close_channel(ic); return _p_;}catch(_q_){return 0;} + } + function print_char(c){return caml_ml_output_char(stdout, c);} + function print_string(s){return output_string(stdout, s);} + function print_bytes(s){return output_bytes(stdout, s);} + function print_int(i){return output_string(stdout, "" + i);} + function print_float(f){return output_string(stdout, string_of_float(f));} + function print_endline(s){ + output_string(stdout, s); + caml_ml_output_char(stdout, 10); + return caml_ml_flush(stdout); + } + function print_newline(param){ + caml_ml_output_char(stdout, 10); + return caml_ml_flush(stdout); + } + function prerr_char(c){return caml_ml_output_char(stderr, c);} + function prerr_string(s){return output_string(stderr, s);} + function prerr_bytes(s){return output_bytes(stderr, s);} + function prerr_int(i){return output_string(stderr, "" + i);} + function prerr_float(f){return output_string(stderr, string_of_float(f));} + function prerr_endline(s){ + output_string(stderr, s); + caml_ml_output_char(stderr, 10); + return caml_ml_flush(stderr); + } + function prerr_newline(param){ + caml_ml_output_char(stderr, 10); + return caml_ml_flush(stderr); + } + function read_line(param){caml_ml_flush(stdout); return input_line(stdin);} + function read_int(param){return caml_int_of_string(read_line(0));} + function read_int_opt(param){return int_of_string_opt(read_line(0));} + function read_float(param){return caml_float_of_string(read_line(0));} + function read_float_opt(param){return float_of_string_opt(read_line(0));} + function string_of_format(param){var str = param[2]; return str;} + function symbol$1(param, _n_){ var - global_data=runtime.caml_get_global_data(), - cst$0=caml_string_of_jsbytes("%,"), - cst_really_input=caml_string_of_jsbytes("really_input"), - cst_input=caml_string_of_jsbytes("input"), - cst_output_substring=caml_string_of_jsbytes("output_substring"), - cst_output=caml_string_of_jsbytes("output"), - cst_12g=caml_string_of_jsbytes("%.12g"), - cst=caml_string_of_jsbytes("."), - cst_false$1=caml_string_of_jsbytes("false"), - cst_true$1=caml_string_of_jsbytes("true"), - cst_false$0=caml_string_of_jsbytes("false"), - cst_true$0=caml_string_of_jsbytes("true"), - cst_bool_of_string=caml_string_of_jsbytes("bool_of_string"), - cst_true=caml_string_of_jsbytes("true"), - cst_false=caml_string_of_jsbytes("false"), - cst_char_of_int=caml_string_of_jsbytes("char_of_int"), - cst_Stdlib_Exit=caml_string_of_jsbytes("Stdlib.Exit"), - cst_Stdlib_Pervasives_Exit= - caml_string_of_jsbytes("Stdlib.Pervasives.Exit"), - cst_Stdlib_Sys_Break=caml_string_of_jsbytes("Stdlib.Sys.Break"), - ocaml_version=caml_string_of_jsbytes("4.14.1"), - ocaml_release=[0,4,14,1,0], - cst_Obj_Ephemeron_blit_key= - caml_string_of_jsbytes("Obj.Ephemeron.blit_key"), - cst_Obj_Ephemeron_check_key= - caml_string_of_jsbytes("Obj.Ephemeron.check_key"), - cst_Obj_Ephemeron_unset_key= - caml_string_of_jsbytes("Obj.Ephemeron.unset_key"), - cst_Obj_Ephemeron_set_key=caml_string_of_jsbytes("Obj.Ephemeron.set_key"), - cst_Obj_Ephemeron_get_key_copy= - caml_string_of_jsbytes("Obj.Ephemeron.get_key_copy"), - cst_Obj_Ephemeron_get_key=caml_string_of_jsbytes("Obj.Ephemeron.get_key"), - cst_Obj_Ephemeron_create=caml_string_of_jsbytes("Obj.Ephemeron.create"), - cst_Obj_extension_constructor$0= - caml_string_of_jsbytes("Obj.extension_constructor"), - cst_Obj_extension_constructor= - caml_string_of_jsbytes("Obj.extension_constructor"), - cst_CamlinternalLazy_Undefined= - caml_string_of_jsbytes("CamlinternalLazy.Undefined"), - cst_Seq_drop=caml_string_of_jsbytes("Seq.drop"), - cst_Seq_take=caml_string_of_jsbytes("Seq.take"), - cst_Seq_init=caml_string_of_jsbytes("Seq.init"), - cst_Stdlib_Seq_Forced_twice= - caml_string_of_jsbytes("Stdlib.Seq.Forced_twice"), - cst_option_is_None=caml_string_of_jsbytes("option is None"), - cst_result_is_Ok=caml_string_of_jsbytes("result is Ok _"), - cst_result_is_Error=caml_string_of_jsbytes("result is Error _"), - cst_true$2=caml_string_of_jsbytes("true"), - cst_false$2=caml_string_of_jsbytes("false"), - cst$1=caml_string_of_jsbytes("\\\\"), - cst$2=caml_string_of_jsbytes("\\'"), - cst_b=caml_string_of_jsbytes("\\b"), - cst_t=caml_string_of_jsbytes("\\t"), - cst_n=caml_string_of_jsbytes("\\n"), - cst_r=caml_string_of_jsbytes("\\r"), - cst_Char_chr=caml_string_of_jsbytes("Char.chr"), - cst_is_not_a_latin1_character= - caml_string_of_jsbytes(" is not a latin1 character"), - cst_04X=caml_string_of_jsbytes("%04X"), - cst_U=caml_string_of_jsbytes("U+"), - cst_is_not_an_Unicode_scalar_v= - caml_string_of_jsbytes(" is not an Unicode scalar value"), - cst_X=caml_string_of_jsbytes("%X"), - err_no_pred=caml_string_of_jsbytes("U+0000 has no predecessor"), - err_no_succ=caml_string_of_jsbytes("U+10FFFF has no successor"), - cst_List_map2=caml_string_of_jsbytes("List.map2"), - cst_List_iter2=caml_string_of_jsbytes("List.iter2"), - cst_List_fold_left2=caml_string_of_jsbytes("List.fold_left2"), - cst_List_fold_right2=caml_string_of_jsbytes("List.fold_right2"), - cst_List_for_all2=caml_string_of_jsbytes("List.for_all2"), - cst_List_exists2=caml_string_of_jsbytes("List.exists2"), - cst_List_combine=caml_string_of_jsbytes("List.combine"), - cst_List_rev_map2=caml_string_of_jsbytes("List.rev_map2"), - cst_List_init=caml_string_of_jsbytes("List.init"), - cst_List_nth$0=caml_string_of_jsbytes("List.nth"), - cst_nth=caml_string_of_jsbytes("nth"), - cst_List_nth=caml_string_of_jsbytes("List.nth"), - cst_tl=caml_string_of_jsbytes("tl"), - cst_hd=caml_string_of_jsbytes("hd"), - cst_index_out_of_bounds$2=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds$1=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds$0=caml_string_of_jsbytes("index out of bounds"), - cst_index_out_of_bounds=caml_string_of_jsbytes("index out of bounds"), - cst_Bytes_of_seq_cannot_grow_b= - caml_string_of_jsbytes("Bytes.of_seq: cannot grow bytes"), - cst_String_rcontains_from_Byte= - caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), - cst_String_contains_from_Bytes= - caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), - cst_String_rindex_from_opt_Byt= - caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), - cst_String_rindex_from_Bytes_r= - caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), - cst_String_index_from_opt_Byte= - caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), - cst_String_index_from_Bytes_in= - caml_string_of_jsbytes("String.index_from / Bytes.index_from"), - cst_Bytes_concat=caml_string_of_jsbytes("Bytes.concat"), - cst_String_blit_Bytes_blit_str= - caml_string_of_jsbytes("String.blit / Bytes.blit_string"), - cst_Bytes_blit=caml_string_of_jsbytes("Bytes.blit"), - cst_String_fill_Bytes_fill= - caml_string_of_jsbytes("String.fill / Bytes.fill"), - cst_Bytes_extend=caml_string_of_jsbytes("Bytes.extend"), - cst_String_sub_Bytes_sub=caml_string_of_jsbytes("String.sub / Bytes.sub"), - cst_String_rcontains_from_Byte$0= - caml_string_of_jsbytes("String.rcontains_from / Bytes.rcontains_from"), - cst_String_contains_from_Bytes$0= - caml_string_of_jsbytes("String.contains_from / Bytes.contains_from"), - cst_String_rindex_from_opt_Byt$0= - caml_string_of_jsbytes("String.rindex_from_opt / Bytes.rindex_from_opt"), - cst_String_rindex_from_Bytes_r$0= - caml_string_of_jsbytes("String.rindex_from / Bytes.rindex_from"), - cst_String_index_from_opt_Byte$0= - caml_string_of_jsbytes("String.index_from_opt / Bytes.index_from_opt"), - cst_String_index_from_Bytes_in$0= - caml_string_of_jsbytes("String.index_from / Bytes.index_from"), - cst$4=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst_String_concat=caml_string_of_jsbytes("String.concat"), - empty$1=caml_string_of_jsbytes(""), - cst$5=caml_string_of_jsbytes("()"), - cst_Marshal_from_bytes=caml_string_of_jsbytes("Marshal.from_bytes"), - cst_Marshal_from_bytes$0=caml_string_of_jsbytes("Marshal.from_bytes"), - cst_Marshal_data_size=caml_string_of_jsbytes("Marshal.data_size"), - cst_Marshal_to_buffer_substrin= - caml_string_of_jsbytes("Marshal.to_buffer: substring out of bounds"), - cst_Array_combine=caml_string_of_jsbytes("Array.combine"), - cst_Array_exists2=caml_string_of_jsbytes("Array.exists2"), - cst_Array_for_all2=caml_string_of_jsbytes("Array.for_all2"), - cst_Array_map2_arrays_must_hav= - caml_string_of_jsbytes("Array.map2: arrays must have the same length"), - cst_Array_iter2_arrays_must_ha= - caml_string_of_jsbytes("Array.iter2: arrays must have the same length"), - cst_Array_blit=caml_string_of_jsbytes("Array.blit"), - cst_Array_fill=caml_string_of_jsbytes("Array.fill"), - cst_Array_sub=caml_string_of_jsbytes("Array.sub"), - cst_Array_init=caml_string_of_jsbytes("Array.init"), - cst_Stdlib_Array_Bottom=caml_string_of_jsbytes("Stdlib.Array.Bottom"), - cst_Float_Array_map2_arrays_mu= - caml_string_of_jsbytes - ("Float.Array.map2: arrays must have the same length"), - cst_Float_Array_iter2_arrays_m= - caml_string_of_jsbytes - ("Float.Array.iter2: arrays must have the same length"), - cst_Float_array_blit=caml_string_of_jsbytes("Float.array.blit"), - cst_Float_array_blit$0=caml_string_of_jsbytes("Float.array.blit"), - cst_Float_Array_fill=caml_string_of_jsbytes("Float.Array.fill"), - cst_Float_Array_sub=caml_string_of_jsbytes("Float.Array.sub"), - cst_Float_Array_concat=caml_string_of_jsbytes("Float.Array.concat"), - cst_Float_Array_init=caml_string_of_jsbytes("Float.Array.init"), - cst_Stdlib_Float_Array_Bottom= - caml_string_of_jsbytes("Stdlib.Float.Array.Bottom"), - cst_d=caml_string_of_jsbytes("%d"), - cst_d$0=caml_string_of_jsbytes("%d"), - zero$2=runtime.caml_int64_create_lo_mi_hi(0,0,0), - one$2=runtime.caml_int64_create_lo_mi_hi(1,0,0), - minus_one$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), - min_int$2=runtime.caml_int64_create_lo_mi_hi(0,0,32768), - max_int$2=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32767), - cst_d$1=caml_string_of_jsbytes("%d"), - cst_Lexing_lex_refill_cannot_g= - caml_string_of_jsbytes("Lexing.lex_refill: cannot grow buffer"), - dummy_pos=[0,caml_string_of_jsbytes(""),0,0,-1], - zero_pos=[0,caml_string_of_jsbytes(""),1,0,0], - cst_syntax_error=caml_string_of_jsbytes("syntax error"), - cst_Stdlib_Parsing_YYexit=caml_string_of_jsbytes("Stdlib.Parsing.YYexit"), - cst_Stdlib_Parsing_Parse_error= - caml_string_of_jsbytes("Stdlib.Parsing.Parse_error"), - cst_Set_remove_min_elt=caml_string_of_jsbytes("Set.remove_min_elt"), - cst_Set_bal=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$0=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$1=caml_string_of_jsbytes("Set.bal"), - cst_Set_bal$2=caml_string_of_jsbytes("Set.bal"), - cst_Map_remove_min_elt=caml_string_of_jsbytes("Map.remove_min_elt"), - cst_Map_bal=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$0=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$1=caml_string_of_jsbytes("Map.bal"), - cst_Map_bal$2=caml_string_of_jsbytes("Map.bal"), - cst_Stdlib_Stack_Empty=caml_string_of_jsbytes("Stdlib.Stack.Empty"), - cst_Stdlib_Queue_Empty=caml_string_of_jsbytes("Stdlib.Queue.Empty"), - cst_count=caml_string_of_jsbytes("{count = "), - cst_data=caml_string_of_jsbytes("; data = "), - cst$6=caml_string_of_jsbytes("}"), - cst_Sempty=caml_string_of_jsbytes("Sempty"), - cst_Scons=caml_string_of_jsbytes("Scons ("), - cst$7=caml_string_of_jsbytes(", "), - cst$8=caml_string_of_jsbytes(")"), - cst_Sapp=caml_string_of_jsbytes("Sapp ("), - cst$9=caml_string_of_jsbytes(", "), - cst$10=caml_string_of_jsbytes(")"), - cst_Slazy=caml_string_of_jsbytes("Slazy"), - cst_Sgen=caml_string_of_jsbytes("Sgen"), - cst_Sbuffio=caml_string_of_jsbytes("Sbuffio"), - cst_Stdlib_Stream_Failure=caml_string_of_jsbytes("Stdlib.Stream.Failure"), - cst_Stdlib_Stream_Error=caml_string_of_jsbytes("Stdlib.Stream.Error"), - cst_Buffer_truncate=caml_string_of_jsbytes("Buffer.truncate"), - cst_Buffer_add_channel=caml_string_of_jsbytes("Buffer.add_channel"), - cst_Buffer_add_substring_add_s= - caml_string_of_jsbytes("Buffer.add_substring/add_subbytes"), - cst_Buffer_add_cannot_grow_buf= - caml_string_of_jsbytes("Buffer.add: cannot grow buffer"), - cst_Buffer_nth=caml_string_of_jsbytes("Buffer.nth"), - cst_Buffer_blit=caml_string_of_jsbytes("Buffer.blit"), - cst_Buffer_sub=caml_string_of_jsbytes("Buffer.sub"), - cst_c=caml_string_of_jsbytes("%c"), - cst_s=caml_string_of_jsbytes("%s"), - cst_i=caml_string_of_jsbytes("%i"), - cst_li=caml_string_of_jsbytes("%li"), - cst_ni=caml_string_of_jsbytes("%ni"), - cst_Li=caml_string_of_jsbytes("%Li"), - cst_f=caml_string_of_jsbytes("%f"), - cst_B=caml_string_of_jsbytes("%B"), - cst$21=caml_string_of_jsbytes("%{"), - cst$22=caml_string_of_jsbytes("%}"), - cst$23=caml_string_of_jsbytes("%("), - cst$24=caml_string_of_jsbytes("%)"), - cst_a=caml_string_of_jsbytes("%a"), - cst_t$0=caml_string_of_jsbytes("%t"), - cst$25=caml_string_of_jsbytes("%?"), - cst_r$0=caml_string_of_jsbytes("%r"), - cst_r$1=caml_string_of_jsbytes("%_r"), - cst_u$0=caml_string_of_jsbytes("%u"), - cst_Printf_bad_conversion= - caml_string_of_jsbytes("Printf: bad conversion %["), - cst_Printf_bad_conversion$0= - caml_string_of_jsbytes("Printf: bad conversion %_"), - cst$30=caml_string_of_jsbytes("@{"), - cst$31=caml_string_of_jsbytes("@["), - cst$32=caml_string_of_jsbytes("@{"), - cst$33=caml_string_of_jsbytes("@["), - cst$34=caml_string_of_jsbytes("@{"), - cst$35=caml_string_of_jsbytes("@["), - cst_0=caml_string_of_jsbytes("0"), - cst_padding=caml_string_of_jsbytes("padding"), - cst_precision=caml_string_of_jsbytes("precision"), - cst$40=caml_string_of_jsbytes("'*'"), - cst$38=caml_string_of_jsbytes("'-'"), - cst_0$2=caml_string_of_jsbytes("'0'"), - cst$39=caml_string_of_jsbytes("'*'"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_0$1=caml_string_of_jsbytes("0"), - cst_precision$0=caml_string_of_jsbytes("precision"), - cst_precision$1=caml_string_of_jsbytes("precision"), - cst$41=caml_string_of_jsbytes("'+'"), - cst$42=caml_string_of_jsbytes("'#'"), - cst$43=caml_string_of_jsbytes("' '"), - cst_padding$0=caml_string_of_jsbytes("`padding'"), - cst_precision$2=caml_string_of_jsbytes("`precision'"), - cst$44=caml_string_of_jsbytes("'+'"), - cst$45=caml_string_of_jsbytes("'_'"), - sub_format=[0,0,caml_string_of_jsbytes("")], - formatting_lit=[0,caml_string_of_jsbytes("@;"),1,0], - cst_digit=caml_string_of_jsbytes("digit"), - cst_character=caml_string_of_jsbytes("character ')'"), - cst_character$0=caml_string_of_jsbytes("character '}'"), - cst$49=caml_string_of_jsbytes("'#'"), - cst$46=caml_string_of_jsbytes("'+'"), - cst$47=caml_string_of_jsbytes("'+'"), - cst$48=caml_string_of_jsbytes("' '"), - cst$50=caml_string_of_jsbytes("'+'"), - cst_non_zero_widths_are_unsupp= - caml_string_of_jsbytes - ("non-zero widths are unsupported for %c conversions"), - cst_unexpected_end_of_format= - caml_string_of_jsbytes("unexpected end of format"), - cst$36=caml_string_of_jsbytes(""), - cst$37=caml_string_of_jsbytes(""), - cst_b$0=caml_string_of_jsbytes("b"), - cst_h=caml_string_of_jsbytes("h"), - cst_hov=caml_string_of_jsbytes("hov"), - cst_hv=caml_string_of_jsbytes("hv"), - cst_v=caml_string_of_jsbytes("v"), - cst_nan=caml_string_of_jsbytes("nan"), - cst_neg_infinity=caml_string_of_jsbytes("neg_infinity"), - cst_infinity=caml_string_of_jsbytes("infinity"), - cst$29=caml_string_of_jsbytes("."), - cst_nd$0=caml_string_of_jsbytes("%+nd"), - cst_nd$1=caml_string_of_jsbytes("% nd"), - cst_ni$1=caml_string_of_jsbytes("%+ni"), - cst_ni$2=caml_string_of_jsbytes("% ni"), - cst_nx=caml_string_of_jsbytes("%nx"), - cst_nx$0=caml_string_of_jsbytes("%#nx"), - cst_nX=caml_string_of_jsbytes("%nX"), - cst_nX$0=caml_string_of_jsbytes("%#nX"), - cst_no=caml_string_of_jsbytes("%no"), - cst_no$0=caml_string_of_jsbytes("%#no"), - cst_nd=caml_string_of_jsbytes("%nd"), - cst_ni$0=caml_string_of_jsbytes("%ni"), - cst_nu=caml_string_of_jsbytes("%nu"), - cst_ld$0=caml_string_of_jsbytes("%+ld"), - cst_ld$1=caml_string_of_jsbytes("% ld"), - cst_li$1=caml_string_of_jsbytes("%+li"), - cst_li$2=caml_string_of_jsbytes("% li"), - cst_lx=caml_string_of_jsbytes("%lx"), - cst_lx$0=caml_string_of_jsbytes("%#lx"), - cst_lX=caml_string_of_jsbytes("%lX"), - cst_lX$0=caml_string_of_jsbytes("%#lX"), - cst_lo=caml_string_of_jsbytes("%lo"), - cst_lo$0=caml_string_of_jsbytes("%#lo"), - cst_ld=caml_string_of_jsbytes("%ld"), - cst_li$0=caml_string_of_jsbytes("%li"), - cst_lu=caml_string_of_jsbytes("%lu"), - cst_Ld$0=caml_string_of_jsbytes("%+Ld"), - cst_Ld$1=caml_string_of_jsbytes("% Ld"), - cst_Li$1=caml_string_of_jsbytes("%+Li"), - cst_Li$2=caml_string_of_jsbytes("% Li"), - cst_Lx=caml_string_of_jsbytes("%Lx"), - cst_Lx$0=caml_string_of_jsbytes("%#Lx"), - cst_LX=caml_string_of_jsbytes("%LX"), - cst_LX$0=caml_string_of_jsbytes("%#LX"), - cst_Lo=caml_string_of_jsbytes("%Lo"), - cst_Lo$0=caml_string_of_jsbytes("%#Lo"), - cst_Ld=caml_string_of_jsbytes("%Ld"), - cst_Li$0=caml_string_of_jsbytes("%Li"), - cst_Lu=caml_string_of_jsbytes("%Lu"), - cst_d$3=caml_string_of_jsbytes("%+d"), - cst_d$4=caml_string_of_jsbytes("% d"), - cst_i$1=caml_string_of_jsbytes("%+i"), - cst_i$2=caml_string_of_jsbytes("% i"), - cst_x=caml_string_of_jsbytes("%x"), - cst_x$0=caml_string_of_jsbytes("%#x"), - cst_X$0=caml_string_of_jsbytes("%X"), - cst_X$1=caml_string_of_jsbytes("%#X"), - cst_o=caml_string_of_jsbytes("%o"), - cst_o$0=caml_string_of_jsbytes("%#o"), - cst_d$2=caml_string_of_jsbytes("%d"), - cst_i$0=caml_string_of_jsbytes("%i"), - cst_u=caml_string_of_jsbytes("%u"), - cst$26=caml_string_of_jsbytes("%!"), - cst$27=caml_string_of_jsbytes("@{"), - cst$28=caml_string_of_jsbytes("@["), - cst_0c=caml_string_of_jsbytes("0c"), - cst$20=caml_string_of_jsbytes("%%"), - cst$12=caml_string_of_jsbytes("@]"), - cst$13=caml_string_of_jsbytes("@}"), - cst$14=caml_string_of_jsbytes("@?"), - cst$15=caml_string_of_jsbytes("@\n"), - cst$16=caml_string_of_jsbytes("@."), - cst$17=caml_string_of_jsbytes("@@"), - cst$18=caml_string_of_jsbytes("@%"), - cst$19=caml_string_of_jsbytes("@"), - cst$11=caml_string_of_jsbytes(".*"), - cst_CamlinternalFormat_Type_mi= - caml_string_of_jsbytes("CamlinternalFormat.Type_mismatch"), - cst$58=caml_string_of_jsbytes(""), - cst$59=caml_string_of_jsbytes("\n"), - cst_a_boolean=caml_string_of_jsbytes("a boolean"), - cst_an_integer=caml_string_of_jsbytes("an integer"), - cst_an_integer$0=caml_string_of_jsbytes("an integer"), - cst_a_float=caml_string_of_jsbytes("a float"), - cst_a_float$0=caml_string_of_jsbytes("a float"), - cst$55=caml_string_of_jsbytes(""), - cst$56=caml_string_of_jsbytes(" "), - cst$57=caml_string_of_jsbytes(""), - cst_one_of=caml_string_of_jsbytes("one of: "), - cst_Arg_Expand_is_is_only_allo= - caml_string_of_jsbytes - ("Arg.Expand is is only allowed with Arg.parse_and_expand_argv_dynamic"), - cst_no_argument=caml_string_of_jsbytes("no argument"), - cst$54=caml_string_of_jsbytes("(?)"), - cst_help$3=caml_string_of_jsbytes("--help"), - cst_help$4=caml_string_of_jsbytes("-help"), - cst_help$2=caml_string_of_jsbytes("-help"), - cst_Display_this_list_of_optio= - caml_string_of_jsbytes(" Display this list of options"), - cst_help=caml_string_of_jsbytes("-help"), - cst_help$1=caml_string_of_jsbytes("--help"), - cst_Display_this_list_of_optio$0= - caml_string_of_jsbytes(" Display this list of options"), - cst_help$0=caml_string_of_jsbytes("--help"), - cst$51=caml_string_of_jsbytes("}"), - cst$52=caml_string_of_jsbytes("|"), - cst$53=caml_string_of_jsbytes("{"), - cst_none=caml_string_of_jsbytes(""), - cst_Stdlib_Arg_Bad=caml_string_of_jsbytes("Stdlib.Arg.Bad"), - cst_Stdlib_Arg_Help=caml_string_of_jsbytes("Stdlib.Arg.Help"), - cst_Stdlib_Arg_Stop=caml_string_of_jsbytes("Stdlib.Arg.Stop"), - cst$61=caml_string_of_jsbytes(""), - cst_Fatal_error_out_of_memory_= - caml_string_of_jsbytes - ("Fatal error: out of memory in uncaught exception handler"), - cst$65=caml_string_of_jsbytes(""), - cst_Program_not_linked_with_g_= - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n"), - cst_Raised_at=caml_string_of_jsbytes("Raised at"), - cst_Re_raised_at=caml_string_of_jsbytes("Re-raised at"), - cst_Raised_by_primitive_operat= - caml_string_of_jsbytes("Raised by primitive operation at"), - cst_Called_from=caml_string_of_jsbytes("Called from"), - cst_inlined=caml_string_of_jsbytes(" (inlined)"), - cst$64=caml_string_of_jsbytes(""), - partial=[4,0,0,0,[12,45,[4,0,0,0,0]]], - cst_Out_of_memory=caml_string_of_jsbytes("Out of memory"), - cst_Stack_overflow=caml_string_of_jsbytes("Stack overflow"), - cst_Pattern_matching_failed= - caml_string_of_jsbytes("Pattern matching failed"), - cst_Assertion_failed=caml_string_of_jsbytes("Assertion failed"), - cst_Undefined_recursive_module= - caml_string_of_jsbytes("Undefined recursive module"), - cst$62=caml_string_of_jsbytes(""), - cst$63=caml_string_of_jsbytes(""), - cst$60=caml_string_of_jsbytes("_"), - locfmt= + str2 = _n_[2], + fmt2 = _n_[1], + str1 = param[2], + fmt1 = param[1], + _o_ = symbol(str1, symbol(cst$0, str2)); + return [0, caml_call2(CamlinternalFormatBasics[3], fmt1, fmt2), _o_]; + } + var exit_function = caml_call1(CamlinternalAtomic[1], flush_all); + function at_exit(f){ + for(;;){ + var + f_yet_to_run = caml_call1(CamlinternalAtomic[1], 1), + old_exit = caml_call1(CamlinternalAtomic[2], exit_function), + new_exit$0 = + function(f_yet_to_run, old_exit){ + function new_exit(param){ + if(caml_call3(CamlinternalAtomic[5], f_yet_to_run, 1, 0)) + caml_call1(f, 0); + return caml_call1(old_exit, 0); + } + return new_exit; + }, + new_exit = new_exit$0(f_yet_to_run, old_exit), + success = + caml_call3(CamlinternalAtomic[5], exit_function, old_exit, new_exit), + _m_ = 1 - success; + if(_m_) continue; + return _m_; + } + } + function do_at_exit(param){ + return caml_call1(caml_call1(CamlinternalAtomic[2], exit_function), 0); + } + function exit(retcode){ + do_at_exit(0); + return runtime.caml_sys_exit(retcode); + } + runtime.caml_register_named_value("Pervasives.do_at_exit", do_at_exit); + var + Stdlib = + [0, + invalid_arg, + failwith, + Exit, + Match_failure, + Assert_failure, + Invalid_argument, + Failure, + Not_found, + Out_of_memory, + Stack_overflow, + Sys_error, + End_of_file, + Division_by_zero, + Sys_blocked_io, + Undefined_recursive_module, + min, + max, + abs, + max_int, + min_int, + lnot, + infinity, + neg_infinity, + nan, + max_float, + min_float, + epsilon_float, + symbol, + char_of_int, + string_of_bool, + bool_of_string_opt, + bool_of_string, + string_of_int, + int_of_string_opt, + string_of_float, + float_of_string_opt, + symbol$0, + stdin, + stdout, + stderr, + print_char, + print_string, + print_bytes, + print_int, + print_float, + print_endline, + print_newline, + prerr_char, + prerr_string, + prerr_bytes, + prerr_int, + prerr_float, + prerr_endline, + prerr_newline, + read_line, + read_int_opt, + read_int, + read_float_opt, + read_float, + open_out, + open_out_bin, + open_out_gen, + caml_ml_flush, + flush_all, + caml_ml_output_char, + output_string, + output_bytes, + output, + output_substring, + caml_ml_output_char, + runtime.caml_ml_output_int, + output_value, + runtime.caml_ml_seek_out, + runtime.caml_ml_pos_out, + caml_ml_channel_size, + close_out, + close_out_noerr, + caml_ml_set_binary_mode, + open_in, + open_in_bin, + open_in_gen, + caml_ml_input_char, + input_line, + input, + really_input, + really_input_string, + caml_ml_input_char, + runtime.caml_ml_input_int, + runtime.caml_input_value, + runtime.caml_ml_seek_in, + runtime.caml_ml_pos_in, + caml_ml_channel_size, + caml_ml_close_channel, + close_in_noerr, + caml_ml_set_binary_mode, + [0, + runtime.caml_ml_seek_out_64, + runtime.caml_ml_pos_out_64, + caml_ml_channel_size_64, + runtime.caml_ml_seek_in_64, + runtime.caml_ml_pos_in_64, + caml_ml_channel_size_64], + string_of_format, + symbol$1, + exit, + at_exit, + valid_float_lexem, + unsafe_really_input, + do_at_exit]; + runtime.caml_register_global(46, Stdlib, "Stdlib"); + return; + } + (globalThis)); + +//# 996 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + ocaml_version = "4.14.0", + ocaml_release = [0, 4, 14, 0, 0], + Stdlib = global_data.Stdlib, + executable_name = runtime.caml_sys_executable_name(0), + os_type = runtime.caml_sys_get_config(0)[1], + backend_type = [0, "js_of_ocaml"], + unix = runtime.caml_sys_const_ostype_unix(0), + win32 = runtime.caml_sys_const_ostype_win32(0), + cygwin = runtime.caml_sys_const_ostype_cygwin(0), + max_array_length = runtime.caml_sys_const_max_wosize(0), + max_floatarray_length = max_array_length / 2 | 0, + max_string_length = (4 * max_array_length | 0) - 1 | 0, + cst_Stdlib_Sys_Break = "Stdlib.Sys.Break", + big_endian = 0, + word_size = 32, + int_size = 32; + function getenv_opt(s){ + try{var _d_ = [0, runtime.caml_sys_getenv(s)]; return _d_;} + catch(_e_){ + var _c_ = caml_wrap_exception(_e_); + if(_c_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_c_, 0); + } + } + var interactive = [0, 0]; + function set_signal(sig_num, sig_beh){return 0;} + var + Break = [248, cst_Stdlib_Sys_Break, runtime.caml_fresh_oo_id(0)], + sigabrt = -1, + sigalrm = -2, + sigfpe = -3, + sighup = -4, + sigill = -5, + sigint = -6, + sigkill = -7, + sigpipe = -8, + sigquit = -9, + sigsegv = -10, + sigterm = -11, + sigusr1 = -12, + sigusr2 = -13, + sigchld = -14, + sigcont = -15, + sigstop = -16, + sigtstp = -17, + sigttin = -18, + sigttou = -19, + sigvtalrm = -20, + sigprof = -21, + sigbus = -22, + sigpoll = -23, + sigsys = -24, + sigtrap = -25, + sigurg = -26, + sigxcpu = -27, + sigxfsz = -28; + function catch_break(on){return on ? 0 : 0;} + var development_version = 0; + function Make(_b_, _a_){return [0, 1];} + var + Immediate64 = [0, Make], + Stdlib_Sys = + [0, + executable_name, + getenv_opt, + interactive, + os_type, + backend_type, + unix, + win32, + cygwin, + word_size, + int_size, + big_endian, + max_string_length, + max_array_length, + max_floatarray_length, + set_signal, + sigabrt, + sigalrm, + sigfpe, + sighup, + sigill, + sigint, + sigkill, + sigpipe, + sigquit, + sigsegv, + sigterm, + sigusr1, + sigusr2, + sigchld, + sigcont, + sigstop, + sigtstp, + sigttin, + sigttou, + sigvtalrm, + sigprof, + sigbus, + sigpoll, + sigsys, + sigtrap, + sigurg, + sigxcpu, + sigxfsz, + Break, + catch_break, + ocaml_version, + development_version, + ocaml_release, + runtime.caml_ml_enable_runtime_warnings, + runtime.caml_ml_runtime_warnings_enabled, + Immediate64]; + runtime.caml_register_global(4, Stdlib_Sys, "Stdlib__Sys"); + return; + } + (globalThis)); + +//# 1125 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Obj_extension_constructor$1 = "Obj.extension_constructor", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + cst_Obj_Ephemeron_blit_key = "Obj.Ephemeron.blit_key", + cst_Obj_Ephemeron_check_key = "Obj.Ephemeron.check_key", + cst_Obj_Ephemeron_unset_key = "Obj.Ephemeron.unset_key", + cst_Obj_Ephemeron_set_key = "Obj.Ephemeron.set_key", + cst_Obj_Ephemeron_get_key_copy = "Obj.Ephemeron.get_key_copy", + cst_Obj_Ephemeron_get_key = "Obj.Ephemeron.get_key", + cst_Obj_Ephemeron_create = "Obj.Ephemeron.create", + cst_Obj_extension_constructor$0 = cst_Obj_extension_constructor$1, + cst_Obj_extension_constructor = cst_Obj_extension_constructor$1, + _a_ = [0, "obj.ml", 95, 4]; + function is_block(a){return 1 - (typeof a === "number" ? 1 : 0);} + var + double_field = runtime.caml_array_get, + set_double_field = runtime.caml_array_set, + first_non_constant_constructor = 0, + last_non_constant_constructor_ = 245, + lazy_tag = 246, + closure_tag = 247, + object_tag = 248, + infix_tag = 249, + forward_tag = 250, + no_scan_tag = 251, + abstract_tag = 251, + string_tag = 252, + double_tag = 253, + double_array_tag = 254, + custom_tag = 255, + int_tag = 1000, + out_of_heap_tag = 1001, + unaligned_tag = 1002; + function info(obj){ + if(caml_obj_tag(obj) !== 247) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + var + info = runtime.caml_obj_raw_field(obj, 1), + arity = 64 === Stdlib_Sys[9] ? info >> 56 : info >> 24, + start_env = info << 8 >>> 9 | 0; + return [0, arity, start_env]; + } + function of_val(x){ + var switch$0 = 0; + if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1){var slot = x[1]; switch$0 = 1;} + if(! switch$0) var slot = x; + var switch$1 = 0; + if(is_block(slot) && caml_obj_tag(slot) === 248){var name = slot[1]; switch$1 = 1;} + if(! switch$1) + var name = caml_call1(Stdlib[1], cst_Obj_extension_constructor$0); + return caml_obj_tag(name) === 252 + ? slot + : caml_call1(Stdlib[1], cst_Obj_extension_constructor); + } + function name(slot){return slot[1];} + function id(slot){return slot[2];} + var + Extension_constructor = [0, of_val, name, id], + extension_constructor = Extension_constructor[1], + extension_name = Extension_constructor[2], + extension_id = Extension_constructor[3], + max_ephe_length = Stdlib_Sys[13] - 2 | 0; + function create(l){ + var _g_ = 0 <= l ? 1 : 0, _h_ = _g_ ? l <= max_ephe_length ? 1 : 0 : _g_; + if(1 - _h_) caml_call1(Stdlib[1], cst_Obj_Ephemeron_create); + return runtime.caml_ephe_create(l); + } + function length(x){return x.length - 1 - 2 | 0;} + function raise_if_invalid_offset(e, o, msg){ + var + _d_ = 0 <= o ? 1 : 0, + _e_ = _d_ ? o < length(e) ? 1 : 0 : _d_, + _f_ = 1 - _e_; + return _f_ ? caml_call1(Stdlib[1], msg) : _f_; + } + function get_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key); + return runtime.caml_ephe_get_key(e, o); + } + function get_key_copy(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_get_key_copy); + return runtime.caml_ephe_get_key_copy(e, o); + } + function set_key(e, o, x){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_set_key); + return runtime.caml_ephe_set_key(e, o, x); + } + function unset_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_unset_key); + return runtime.caml_ephe_unset_key(e, o); + } + function check_key(e, o){ + raise_if_invalid_offset(e, o, cst_Obj_Ephemeron_check_key); + return runtime.caml_ephe_check_key(e, o); + } + function blit_key(e1, o1, e2, o2, l){ + if + (0 <= l + && + 0 <= o1 + && (length(e1) - l | 0) >= o1 && 0 <= o2 && (length(e2) - l | 0) >= o2){ + var + _b_ = 0 !== l ? 1 : 0, + _c_ = _b_ ? runtime.caml_ephe_blit_key(e1, o1, e2, o2, l) : _b_; + return _c_; + } + return caml_call1(Stdlib[1], cst_Obj_Ephemeron_blit_key); + } + var + Stdlib_Obj = + [0, + is_block, + double_field, + set_double_field, + first_non_constant_constructor, + last_non_constant_constructor_, + lazy_tag, + closure_tag, + object_tag, + infix_tag, + forward_tag, + no_scan_tag, + abstract_tag, + string_tag, + double_tag, + double_array_tag, + custom_tag, + custom_tag, + int_tag, + out_of_heap_tag, + unaligned_tag, + [0, info], + Extension_constructor, + extension_constructor, + extension_name, + extension_id, + [0, + create, + length, + get_key, + get_key_copy, + set_key, + unset_key, + check_key, + blit_key, + runtime.caml_ephe_get_data, + runtime.caml_ephe_get_data_copy, + runtime.caml_ephe_set_data, + runtime.caml_ephe_unset_data, + runtime.caml_ephe_check_data, + runtime.caml_ephe_blit_data, + max_ephe_length]]; + runtime.caml_register_global(13, Stdlib_Obj, "Stdlib__Obj"); + return; + } + (globalThis)); + +//# 1299 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_make_forward = runtime.caml_obj_make_forward, + caml_obj_tag = runtime.caml_obj_tag, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Obj = global_data.Stdlib__Obj, + Undefined = + [248, "CamlinternalLazy.Undefined", runtime.caml_fresh_oo_id(0)]; + function raise_undefined(param){ + throw caml_maybe_attach_backtrace(Undefined, 1); + } + function force_lazy_block(blk){ + var closure = blk[1]; + blk[1] = raise_undefined; + try{ + var result = caml_call1(closure, 0); + caml_obj_make_forward(blk, result); + return result; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + blk[1] = function(param){throw caml_maybe_attach_backtrace(e, 0);}; + throw caml_maybe_attach_backtrace(e, 0); + } + } + function force_val_lazy_block(blk){ + var closure = blk[1]; + blk[1] = raise_undefined; + var result = caml_call1(closure, 0); + caml_obj_make_forward(blk, result); + return result; + } + function force(lzv){ + var t = caml_obj_tag(lzv); + return t === Stdlib_Obj[10] + ? lzv[1] + : t !== Stdlib_Obj[6] ? lzv : force_lazy_block(lzv); + } + function force_val(lzv){ + var t = caml_obj_tag(lzv); + return t === Stdlib_Obj[10] + ? lzv[1] + : t !== Stdlib_Obj[6] ? lzv : force_val_lazy_block(lzv); + } + var + CamlinternalLazy = + [0, Undefined, force_lazy_block, force_val_lazy_block, force, force_val]; + runtime.caml_register_global(2, CamlinternalLazy, "CamlinternalLazy"); + return; + } + (globalThis)); + +//# 1364 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, caml_obj_tag = runtime.caml_obj_tag; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Obj = global_data.Stdlib__Obj, + Undefined = CamlinternalLazy[1], + force_val = CamlinternalLazy[5]; + function from_fun(f){ + var x = runtime.caml_obj_block(Stdlib_Obj[6], 1); + x[1] = f; + return x; + } + function from_val(v){ + var t = caml_obj_tag(v); + if(t !== Stdlib_Obj[10] && t !== Stdlib_Obj[6] && t !== Stdlib_Obj[14]) + return v; + return runtime.caml_lazy_make_forward(v); + } + function is_val(l){ + var _i_ = Stdlib_Obj[6]; + return caml_obj_tag(l) !== _i_ ? 1 : 0; + } + function map(f, x){ + return [246, + function(_f_){ + var + _g_ = caml_obj_tag(x), + _h_ = + 250 === _g_ + ? x[1] + : 246 === _g_ ? caml_call1(CamlinternalLazy[2], x) : x; + return caml_call1(f, _h_); + }]; + } + function map_val(f, x){ + if(! is_val(x)) + return [246, + function(_c_){ + var + _d_ = caml_obj_tag(x), + _e_ = + 250 === _d_ + ? x[1] + : 246 === _d_ ? caml_call1(CamlinternalLazy[2], x) : x; + return caml_call1(f, _e_); + }]; + var + _a_ = caml_obj_tag(x), + _b_ = + 250 === _a_ + ? x[1] + : 246 === _a_ ? caml_call1(CamlinternalLazy[2], x) : x; + return from_val(caml_call1(f, _b_)); + } + var + Stdlib_Lazy = + [0, + Undefined, + map, + is_val, + from_val, + map_val, + from_fun, + force_val, + from_fun, + from_val, + is_val]; + runtime.caml_register_global(2, Stdlib_Lazy, "Stdlib__Lazy"); + return; + } + (globalThis)); + +//# 1446 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + CamlinternalAtomic = global_data.CamlinternalAtomic, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib = global_data.Stdlib, + Stdlib_Lazy = global_data.Stdlib__Lazy, + _a_ = [0, "seq.ml", 596, 4], + cst_Seq_drop = "Seq.drop", + cst_Seq_take = "Seq.take", + cst_Seq_init = "Seq.init", + cst_Stdlib_Seq_Forced_twice = "Stdlib.Seq.Forced_twice"; + function empty(param){return 0;} + function return$0(x, param){return [0, x, empty];} + function cons(x, next, param){return [0, x, next];} + function append(seq1, seq2, param){ + var match = caml_call1(seq1, 0); + if(! match) return caml_call1(seq2, 0); + var next = match[2], x = match[1]; + return [0, x, function(_aM_){return append(next, seq2, _aM_);}]; + } + function map(f, seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + function _aK_(_aL_){return map(f, next, _aL_);} + return [0, caml_call1(f, x), _aK_]; + } + function filter_map(f, seq, param){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1], match$0 = caml_call1(f, x); + if(match$0){ + var y = match$0[1]; + return [0, y, function(_aJ_){return filter_map(f, next, _aJ_);}]; + } + var seq$0 = next; + } + } + function filter(f, seq, param){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + if(caml_call1(f, x)) + return [0, x, function(_aI_){return filter(f, next, _aI_);}]; + var seq$0 = next; + } + } + function concat(seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1], _aG_ = 0; + return append(x, function(_aH_){return concat(next, _aH_);}, _aG_); + } + function flat_map(f, seq, param){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1], _aD_ = 0; + function _aE_(_aF_){return flat_map(f, next, _aF_);} + return append(caml_call1(f, x), _aE_, _aD_); + } + function fold_left(f, acc, seq){ + var acc$0 = acc, seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return acc$0; + var + next = match[2], + x = match[1], + acc$1 = caml_call2(f, acc$0, x), + acc$0 = acc$1, + seq$0 = next; + } + } + function iter(f, seq){ + var seq$0 = seq; + for(;;){ + var match = caml_call1(seq$0, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + caml_call1(f, x); + var seq$0 = next; + } + } + function unfold(f, u, param){ + var match = caml_call1(f, u); + if(! match) return 0; + var match$0 = match[1], u$0 = match$0[2], x = match$0[1]; + return [0, x, function(_aC_){return unfold(f, u$0, _aC_);}]; + } + function is_empty(xs){return caml_call1(xs, 0) ? 0 : 1;} + function uncons(xs){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, [0, x, xs$0]]; + } + function length(xs$1){ + var accu = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return accu; + var xs$0 = match[2], accu$0 = accu + 1 | 0, accu = accu$0, xs = xs$0; + } + } + function iteri(f, xs$1){ + var i = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + caml_call2(f, i, x); + var i$0 = i + 1 | 0, i = i$0, xs = xs$0; + } + } + function fold_lefti(f, accu$1, xs$1){ + var accu = accu$1, i = 0, xs = xs$1; + for(;;){ + var match = caml_call1(xs, 0); + if(! match) return accu; + var + xs$0 = match[2], + x = match[1], + accu$0 = caml_call3(f, accu, i, x), + i$0 = i + 1 | 0, + accu = accu$0, + i = i$0, + xs = xs$0; + } + } + function for_all(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 1; + var xs$1 = match[2], x = match[1], _aB_ = caml_call1(p, x); + if(! _aB_) return _aB_; + var xs$0 = xs$1; + } + } + function exists(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], _aA_ = caml_call1(p, x); + if(_aA_) return _aA_; + var xs$0 = xs$1; + } + } + function find(p, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1]; + if(caml_call1(p, x)) return [0, x]; + var xs$0 = xs$1; + } + } + function find_map(f, xs){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], result = caml_call1(f, x); + if(result) return result; + var xs$0 = xs$1; + } + } + function iter2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 0; + var ys$1 = match$0[2], y = match$0[1]; + caml_call2(f, x, y); + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function fold_left2(f, accu, xs, ys){ + var accu$0 = accu, xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return accu$0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return accu$0; + var + ys$1 = match$0[2], + y = match$0[1], + accu$1 = caml_call3(f, accu$0, x, y), + accu$0 = accu$1, + xs$0 = xs$1, + ys$0 = ys$1; + } + } + function for_all2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 1; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 1; + var ys$1 = match$0[2], y = match$0[1], _az_ = caml_call2(f, x, y); + if(! _az_) return _az_; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function exists2(f, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(ys$0, 0); + if(! match$0) return 0; + var ys$1 = match$0[2], y = match$0[1], _ay_ = caml_call2(f, x, y); + if(_ay_) return _ay_; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function equal(eq, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); + if(match){ + if(match$0){ + var + ys$1 = match$0[2], + y = match$0[1], + xs$1 = match[2], + x = match[1], + _ax_ = caml_call2(eq, x, y); + if(! _ax_) return _ax_; + var xs$0 = xs$1, ys$0 = ys$1; + continue; + } + } + else if(! match$0) return 1; + return 0; + } + } + function compare(cmp, xs, ys){ + var xs$0 = xs, ys$0 = ys; + for(;;){ + var match = caml_call1(xs$0, 0), match$0 = caml_call1(ys$0, 0); + if(! match) return match$0 ? -1 : 0; + var xs$1 = match[2], x = match[1]; + if(! match$0) return 1; + var ys$1 = match$0[2], y = match$0[1], c = caml_call2(cmp, x, y); + if(0 !== c) return c; + var xs$0 = xs$1, ys$0 = ys$1; + } + } + function init_aux(f, i, j, param){ + if(i >= j) return 0; + var _au_ = i + 1 | 0; + function _av_(_aw_){return init_aux(f, _au_, j, _aw_);} + return [0, caml_call1(f, i), _av_]; + } + function init(n, f){ + if(0 > n) return caml_call1(Stdlib[1], cst_Seq_init); + var _as_ = 0; + return function(_at_){return init_aux(f, _as_, n, _at_);}; + } + function repeat(x, param){ + return [0, x, function(_ar_){return repeat(x, _ar_);}]; + } + function forever(f, param){ + function _ap_(_aq_){return forever(f, _aq_);} + return [0, caml_call1(f, 0), _ap_]; + } + function cycle_nonempty(xs, param){ + var _an_ = 0; + return append(xs, function(_ao_){return cycle_nonempty(xs, _ao_);}, _an_); + } + function cycle(xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + function _ak_(_am_){return cycle_nonempty(xs, _am_);} + return [0, x, function(_al_){return append(xs$0, _ak_, _al_);}]; + } + function iterate1(f, x, param){ + var y = caml_call1(f, x); + return [0, y, function(_aj_){return iterate1(f, y, _aj_);}]; + } + function iterate(f, x){ + function _ag_(_ai_){return iterate1(f, x, _ai_);} + return function(_ah_){return [0, x, _ag_];}; + } + function mapi_aux(f, i, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], _ad_ = i + 1 | 0; + function _ae_(_af_){return mapi_aux(f, _ad_, xs$0, _af_);} + return [0, caml_call2(f, i, x), _ae_]; + } + function mapi(f, xs){ + var _ab_ = 0; + return function(_ac_){return mapi_aux(f, _ab_, xs, _ac_);}; + } + function tail_scan(f, s, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], s$0 = caml_call2(f, s, x); + return [0, s$0, function(_aa_){return tail_scan(f, s$0, xs$0, _aa_);}]; + } + function scan(f, s, xs){ + function _Z_(_$_){return tail_scan(f, s, xs, _$_);} + return function(___){return [0, s, _Z_];}; + } + function take_aux(n, xs){ + return 0 === n + ? empty + : function + (param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, take_aux(n - 1 | 0, xs$0)]; + }; + } + function take(n, xs){ + if(n < 0) caml_call1(Stdlib[1], cst_Seq_take); + return take_aux(n, xs); + } + function drop(n, xs){ + return 0 <= n + ? 0 + === n + ? xs + : function + (param){ + var n$0 = n, xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], n$1 = n$0 - 1 | 0; + if(0 === n$1) return caml_call1(xs$1, 0); + var n$0 = n$1, xs$0 = xs$1; + } + } + : caml_call1(Stdlib[1], cst_Seq_drop); + } + function take_while(p, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return caml_call1(p, x) + ? [0, x, function(_Y_){return take_while(p, xs$0, _Y_);}] + : 0; + } + function drop_while(p, xs, param){ + var xs$0 = xs; + for(;;){ + var node = caml_call1(xs$0, 0); + if(! node) return 0; + var xs$1 = node[2], x = node[1]; + if(! caml_call1(p, x)) return node; + var xs$0 = xs$1; + } + } + function group(eq, xs, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], _P_ = caml_call1(eq, x); + function _Q_(_X_){return drop_while(_P_, xs$0, _X_);} + function _R_(_W_){return group(eq, _Q_, _W_);} + var _S_ = caml_call1(eq, x); + function _T_(_V_){return take_while(_S_, xs$0, _V_);} + return [0, function(_U_){return [0, x, _T_];}, _R_]; + } + var + Forced_twice = + [248, cst_Stdlib_Seq_Forced_twice, runtime.caml_fresh_oo_id(0)], + to_lazy = Stdlib_Lazy[6]; + function failure(param){ + throw caml_maybe_attach_backtrace(Forced_twice, 1); + } + function memoize(xs){ + function s$0(param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, memoize(xs$0)]; + } + var s = caml_call1(to_lazy, s$0); + return function(_O_){ + var _N_ = runtime.caml_obj_tag(s); + return 250 === _N_ + ? s[1] + : 246 === _N_ ? caml_call1(CamlinternalLazy[2], s) : s;}; + } + function once(xs){ + function f(param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1]; + return [0, x, once(xs$0)]; + } + var action = caml_call1(CamlinternalAtomic[1], f); + return function(param){ + var f = caml_call2(CamlinternalAtomic[4], action, failure); + return caml_call1(f, 0);}; + } + function zip(xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); + if(! match$0) return 0; + var ys$0 = match$0[2], y = match$0[1]; + return [0, [0, x, y], function(_M_){return zip(xs$0, ys$0, _M_);}]; + } + function map2(f, xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return 0; + var xs$0 = match[2], x = match[1], match$0 = caml_call1(ys, 0); + if(! match$0) return 0; + var ys$0 = match$0[2], y = match$0[1]; + function _K_(_L_){return map2(f, xs$0, ys$0, _L_);} + return [0, caml_call2(f, x, y), _K_]; + } + function interleave(xs, ys, param){ + var match = caml_call1(xs, 0); + if(! match) return caml_call1(ys, 0); + var xs$0 = match[2], x = match[1]; + return [0, x, function(_J_){return interleave(ys, xs$0, _J_);}]; + } + function sorted_merge1(cmp, x, xs, y, ys){ + return 0 < caml_call2(cmp, x, y) + ? [0, + y, + function(_H_){ + var match = caml_call1(ys, 0); + if(! match) return [0, x, xs]; + var ys$0 = match[2], y = match[1]; + return sorted_merge1(cmp, x, xs, y, ys$0); + }] + : [0, + x, + function(_I_){ + var match = caml_call1(xs, 0); + if(! match) return [0, y, ys]; + var xs$0 = match[2], x = match[1]; + return sorted_merge1(cmp, x, xs$0, y, ys); + }]; + } + function sorted_merge(cmp, xs, ys, param){ + var match = caml_call1(xs, 0), match$0 = caml_call1(ys, 0); + if(match){ + if(match$0){ + var ys$0 = match$0[2], y = match$0[1], xs$0 = match[2], x = match[1]; + return sorted_merge1(cmp, x, xs$0, y, ys$0); + } + var c = match; + } + else{if(! match$0) return 0; var c = match$0;} + return c; + } + function map_fst(xys, param){ + var match = caml_call1(xys, 0); + if(! match) return 0; + var xys$0 = match[2], x = match[1][1]; + return [0, x, function(_G_){return map_fst(xys$0, _G_);}]; + } + function map_snd(xys, param){ + var match = caml_call1(xys, 0); + if(! match) return 0; + var xys$0 = match[2], y = match[1][2]; + return [0, y, function(_F_){return map_snd(xys$0, _F_);}]; + } + function unzip(xys){ + function _C_(_E_){return map_snd(xys, _E_);} + return [0, function(_D_){return map_fst(xys, _D_);}, _C_]; + } + function filter_map_find_left_map(f, xs, param){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); + if(0 === match$0[0]){ + var y = match$0[1]; + return [0, + y, + function(_B_){return filter_map_find_left_map(f, xs$1, _B_);}]; + } + var xs$0 = xs$1; + } + } + function filter_map_find_right_map(f, xs, param){ + var xs$0 = xs; + for(;;){ + var match = caml_call1(xs$0, 0); + if(! match) return 0; + var xs$1 = match[2], x = match[1], match$0 = caml_call1(f, x); + if(0 === match$0[0]){var xs$0 = xs$1; continue;} + var z = match$0[1]; + return [0, + z, + function(_A_){return filter_map_find_right_map(f, xs$1, _A_);}]; + } + } + function partition_map(f, xs){ + function _x_(_z_){return filter_map_find_right_map(f, xs, _z_);} + return [0, + function(_y_){return filter_map_find_left_map(f, xs, _y_);}, + _x_]; + } + function partition(p, xs){ + function _t_(x){return 1 - caml_call1(p, x);} + function _u_(_w_){return filter(_t_, xs, _w_);} + return [0, function(_v_){return filter(p, xs, _v_);}, _u_]; + } + function peel(xss){ + return unzip(function(_s_){return filter_map(uncons, xss, _s_);}); + } + function transpose(xss, param){ + var match = peel(xss), tails = match[2], heads = match[1]; + if(! is_empty(heads)) + return [0, heads, function(_r_){return transpose(tails, _r_);}]; + if(is_empty(tails)) return 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + } + function _b_(remainders, xss, param){ + var match = caml_call1(xss, 0); + if(! match) return transpose(remainders, 0); + var xss$0 = match[2], xs = match[1], match$0 = caml_call1(xs, 0); + if(match$0){ + var + xs$0 = match$0[2], + x = match$0[1], + match$1 = peel(remainders), + tails = match$1[2], + heads = match$1[1], + _l_ = function(_q_){return [0, xs$0, tails];}, + _m_ = function(_p_){return _b_(_l_, xss$0, _p_);}; + return [0, function(_o_){return [0, x, heads];}, _m_]; + } + var + match$2 = peel(remainders), + tails$0 = match$2[2], + heads$0 = match$2[1]; + return [0, heads$0, function(_n_){return _b_(tails$0, xss$0, _n_);}]; + } + function map_product(f, xs, ys){ + function _f_(x){ + function _j_(y){return caml_call2(f, x, y);} + return function(_k_){return map(_j_, ys, _k_);}; + } + function xss(_i_){return map(_f_, xs, _i_);} + function _e_(_h_){return _b_(empty, xss, _h_);} + return function(_g_){return concat(_e_, _g_);}; + } + function product(xs, ys){ + return map_product(function(x, y){return [0, x, y];}, xs, ys); + } + function of_dispenser(it){ + function c(param){ + var match = caml_call1(it, 0); + if(! match) return 0; + var x = match[1]; + return [0, x, c]; + } + return c; + } + function to_dispenser(xs){ + var s = [0, xs]; + return function(param){ + var match = caml_call1(s[1], 0); + if(! match) return 0; + var xs = match[2], x = match[1]; + s[1] = xs; + return [0, x];}; + } + function ints(i, param){ + var _c_ = i + 1 | 0; + return [0, i, function(_d_){return ints(_c_, _d_);}]; + } + var + Stdlib_Seq = + [0, + is_empty, + uncons, + length, + iter, + fold_left, + iteri, + fold_lefti, + for_all, + exists, + find, + find_map, + iter2, + fold_left2, + for_all2, + exists2, + equal, + compare, + empty, + return$0, + cons, + init, + unfold, + repeat, + forever, + cycle, + iterate, + map, + mapi, + filter, + filter_map, + scan, + take, + drop, + take_while, + drop_while, + group, + memoize, + Forced_twice, + once, + transpose, + append, + concat, + flat_map, + flat_map, + zip, + map2, + interleave, + sorted_merge, + product, + map_product, + unzip, + unzip, + partition_map, + partition, + of_dispenser, + to_dispenser, + ints]; + runtime.caml_register_global(10, Stdlib_Seq, "Stdlib__Seq"); + return; + } + (globalThis)); + +//# 2119 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib = global_data.Stdlib, + cst_option_is_None = "option is None", + none = 0; + function some(v){return [0, v];} + function value(o, default$0){ + if(! o) return default$0; + var v = o[1]; + return v; + } + function get(param){ + if(! param) return caml_call1(Stdlib[1], cst_option_is_None); + var v = param[1]; + return v; + } + function bind(o, f){ + if(! o) return 0; + var v = o[1]; + return caml_call1(f, v); + } + function join(param){if(! param) return 0; var o = param[1]; return o;} + function map(f, o){ + if(! o) return 0; + var v = o[1]; + return [0, caml_call1(f, v)]; + } + function fold(none, some, param){ + if(! param) return none; + var v = param[1]; + return caml_call1(some, v); + } + function iter(f, param){ + if(! param) return 0; + var v = param[1]; + return caml_call1(f, v); + } + function is_none(param){return param ? 0 : 1;} + function is_some(param){return param ? 1 : 0;} + function equal(eq, o0, o1){ + if(o0){ + if(o1){var v1 = o1[1], v0 = o0[1]; return caml_call2(eq, v0, v1);} + } + else if(! o1) return 1; + return 0; + } + function compare(cmp, o0, o1){ + if(! o0) return o1 ? -1 : 0; + var v0 = o0[1]; + if(! o1) return 1; + var v1 = o1[1]; + return caml_call2(cmp, v0, v1); + } + function to_result(none, param){ + if(! param) return [1, none]; + var v = param[1]; + return [0, v]; + } + function to_list(param){ + if(! param) return 0; + var v = param[1]; + return [0, v, 0]; + } + function to_seq(param){ + if(! param) return Stdlib_Seq[18]; + var v = param[1]; + return caml_call1(Stdlib_Seq[19], v); + } + var + Stdlib_Option = + [0, + none, + some, + value, + get, + bind, + join, + map, + fold, + iter, + is_none, + is_some, + equal, + compare, + to_result, + to_list, + to_seq]; + runtime.caml_register_global(3, Stdlib_Option, "Stdlib__Option"); + return; + } + (globalThis)); + +//# 2391 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_string_of_bytes = runtime.caml_string_of_bytes; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "\\\\", + cst$0 = "\\'", + Stdlib = global_data.Stdlib, + cst_b = "\\b", + cst_t = "\\t", + cst_n = "\\n", + cst_r = "\\r", + cst_Char_chr = "Char.chr"; + function chr(n){ + if(0 <= n && 255 >= n) return n; + return caml_call1(Stdlib[1], cst_Char_chr); + } + function escaped(c){ + var switch$0 = 0; + if(40 <= c){ + if(92 === c) return cst; + if(127 > c) switch$0 = 1; + } + else if(32 <= c){ + if(39 <= c) return cst$0; + switch$0 = 1; + } + else if(14 > c) + switch(c){ + case 8: + return cst_b; + case 9: + return cst_t; + case 10: + return cst_n; + case 13: + return cst_r; + } + if(switch$0){ + var s$0 = caml_create_bytes(1); + caml_bytes_unsafe_set(s$0, 0, c); + return caml_string_of_bytes(s$0); + } + var s = caml_create_bytes(4); + caml_bytes_unsafe_set(s, 0, 92); + caml_bytes_unsafe_set(s, 1, 48 + (c / 100 | 0) | 0); + caml_bytes_unsafe_set(s, 2, 48 + ((c / 10 | 0) % 10 | 0) | 0); + caml_bytes_unsafe_set(s, 3, 48 + (c % 10 | 0) | 0); + return caml_string_of_bytes(s); + } + function lowercase(c){ + var _b_ = c - 192 | 0, switch$0 = 0; + if(30 < _b_ >>> 0){ + if(25 >= _b_ + 127 >>> 0) switch$0 = 1; + } + else if(23 !== _b_) switch$0 = 1; + return switch$0 ? c + 32 | 0 : c; + } + function uppercase(c){ + var _a_ = c - 224 | 0, switch$0 = 0; + if(30 < _a_ >>> 0){ + if(25 >= _a_ + 127 >>> 0) switch$0 = 1; + } + else if(23 !== _a_) switch$0 = 1; + return switch$0 ? c - 32 | 0 : c; + } + function lowercase_ascii(c){return 25 < c - 65 >>> 0 ? c : c + 32 | 0;} + function uppercase_ascii(c){return 25 < c - 97 >>> 0 ? c : c - 32 | 0;} + function compare(c1, c2){return c1 - c2 | 0;} + function equal(c1, c2){return 0 === (c1 - c2 | 0) ? 1 : 0;} + var + Stdlib_Char = + [0, + chr, + escaped, + lowercase, + uppercase, + lowercase_ascii, + uppercase_ascii, + compare, + equal]; + runtime.caml_register_global(8, Stdlib_Char, "Stdlib__Char"); + return; + } + (globalThis)); + +//# 2489 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_uchar_ml = "uchar.ml", + caml_format_int = runtime.caml_format_int, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + err_no_pred = "U+0000 has no predecessor", + err_no_succ = "U+10FFFF has no successor", + Assert_failure = global_data.Assert_failure, + Stdlib = global_data.Stdlib, + _d_ = [0, cst_uchar_ml, 88, 18], + _c_ = [0, cst_uchar_ml, 91, 7], + _b_ = [0, cst_uchar_ml, 80, 18], + _a_ = [0, cst_uchar_ml, 85, 7], + cst_is_not_a_latin1_character = " is not a latin1 character", + cst_U = "U+", + cst_is_not_an_Unicode_scalar_v = " is not an Unicode scalar value", + min = 0, + max = 1114111, + lo_bound = 55295, + hi_bound = 57344, + bom = 65279, + rep = 65533; + function succ(u){ + return u === 55295 + ? hi_bound + : u === 1114111 ? caml_call1(Stdlib[1], err_no_succ) : u + 1 | 0; + } + function pred(u){ + return u === 57344 + ? lo_bound + : u === 0 ? caml_call1(Stdlib[1], err_no_pred) : u - 1 | 0; + } + function is_valid(i){ + var _o_ = 0 <= i ? 1 : 0, _p_ = _o_ ? i <= 55295 ? 1 : 0 : _o_; + if(_p_) + var _q_ = _p_; + else + var _r_ = 57344 <= i ? 1 : 0, _q_ = _r_ ? i <= 1114111 ? 1 : 0 : _r_; + return _q_; + } + function of_int(i){ + if(is_valid(i)) return i; + var + _n_ = + caml_call2 + (Stdlib[28], caml_format_int("%X", i), cst_is_not_an_Unicode_scalar_v); + return caml_call1(Stdlib[1], _n_); + } + function is_char(u){return u < 256 ? 1 : 0;} + function of_char(c){return c;} + function to_char(u){ + if(255 >= u) return u; + var + _l_ = + caml_call2 + (Stdlib[28], + caml_format_int("%04X", u), + cst_is_not_a_latin1_character), + _m_ = caml_call2(Stdlib[28], cst_U, _l_); + return caml_call1(Stdlib[1], _m_); + } + function unsafe_to_char(_k_){return _k_;} + function equal(_j_, _i_){return _j_ === _i_ ? 1 : 0;} + var compare = runtime.caml_int_compare; + function hash(_h_){return _h_;} + function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0) ? 1 : 0;} + function utf_decode_length(d){return (d >>> 24 | 0) & 7;} + function utf_decode_uchar(d){return d & 16777215;} + function utf_decode(n, u){return (8 | n) << 24 | u;} + function utf_decode_invalid(n){return n << 24 | 65533;} + function utf_8_byte_length(u){ + if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if(127 >= u) return 1; + if(2047 >= u) return 2; + if(65535 >= u) return 3; + if(1114111 < u) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + return 4; + } + function utf_16_byte_length(u){ + if(0 > u) throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(65535 >= u) return 2; + if(1114111 < u) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + return 4; + } + function _e_(_g_){return _g_;} + var + Stdlib_Uchar = + [0, + min, + max, + bom, + rep, + succ, + pred, + is_valid, + of_int, + function(_f_){return _f_;}, + _e_, + is_char, + of_char, + to_char, + unsafe_to_char, + equal, + compare, + hash, + utf_decode_is_valid, + utf_decode_uchar, + utf_decode_length, + utf_decode, + utf_decode_invalid, + utf_8_byte_length, + utf_16_byte_length]; + runtime.caml_register_global(13, Stdlib_Uchar, "Stdlib__Uchar"); + return; + } + (globalThis)); + +//# 2625 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_List_nth$1 = "List.nth", + caml_compare = runtime.caml_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Sys = global_data.Stdlib__Sys, + cst_List_map2 = "List.map2", + cst_List_iter2 = "List.iter2", + cst_List_fold_left2 = "List.fold_left2", + cst_List_fold_right2 = "List.fold_right2", + cst_List_for_all2 = "List.for_all2", + cst_List_exists2 = "List.exists2", + _b_ = [0, 0, 0], + cst_List_combine = "List.combine", + cst_List_rev_map2 = "List.rev_map2", + cst_List_init = "List.init", + cst_List_nth$0 = cst_List_nth$1, + cst_nth = "nth", + cst_List_nth = cst_List_nth$1, + cst_tl = "tl", + cst_hd = "hd"; + function length(l$0){ + var len = 0, param = l$0; + for(;;){ + if(! param) return len; + var l = param[2], len$0 = len + 1 | 0, len = len$0, param = l; + } + } + function cons(a, l){return [0, a, l];} + function hd(param){ + if(! param) return caml_call1(Stdlib[2], cst_hd); + var a = param[1]; + return a; + } + function tl(param){ + if(! param) return caml_call1(Stdlib[2], cst_tl); + var l = param[2]; + return l; + } + function nth(l, n){ + if(0 > n) return caml_call1(Stdlib[1], cst_List_nth); + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return caml_call1(Stdlib[2], cst_nth); + var l$1 = l$0[2], a = l$0[1]; + if(0 === n$0) return a; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + function nth_opt(l, n){ + if(0 > n) return caml_call1(Stdlib[1], cst_List_nth$0); + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return 0; + var l$1 = l$0[2], a = l$0[1]; + if(0 === n$0) return [0, a]; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + var append = Stdlib[37]; + function rev_append(l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0; + var + l1$1 = l1$0[2], + a = l1$0[1], + l2$1 = [0, a, l2$0], + l1$0 = l1$1, + l2$0 = l2$1; + } + } + function rev(l){return rev_append(l, 0);} + function init_aux(i, n, f){ + if(n <= i) return 0; + var r = caml_call1(f, i); + return [0, r, init_aux(i + 1 | 0, n, f)]; + } + var rev_init_threshold = typeof Stdlib_Sys[5] === "number" ? 10000 : 50; + function init(len, f){ + if(0 > len) return caml_call1(Stdlib[1], cst_List_init); + if(rev_init_threshold >= len) return init_aux(0, len, f); + var acc = 0, i = 0; + for(;;){ + if(len <= i) return rev(acc); + var + i$0 = i + 1 | 0, + acc$0 = [0, caml_call1(f, i), acc], + acc = acc$0, + i = i$0; + } + } + function flatten(param){ + if(! param) return 0; + var r = param[2], l = param[1], _J_ = flatten(r); + return caml_call2(Stdlib[37], l, _J_); + } + function map(f, param){ + if(! param) return 0; + var l = param[2], a = param[1], r = caml_call1(f, a); + return [0, r, map(f, l)]; + } + function _a_(i, f, param){ + if(! param) return 0; + var l = param[2], a = param[1], r = caml_call2(f, i, a); + return [0, r, _a_(i + 1 | 0, f, l)]; + } + function mapi(f, l){return _a_(0, f, l);} + function rev_map(f, l){ + var accu = 0, param = l; + for(;;){ + if(! param) return accu; + var + l$0 = param[2], + a = param[1], + accu$0 = [0, caml_call1(f, a), accu], + accu = accu$0, + param = l$0; + } + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1]; + caml_call1(f, a); + var param$0 = l; + } + } + function iteri(f, l$0){ + var i = 0, param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], a = param[1]; + caml_call2(f, i, a); + var i$0 = i + 1 | 0, i = i$0, param = l; + } + } + function fold_left(f, accu, l){ + var accu$0 = accu, l$0 = l; + for(;;){ + if(! l$0) return accu$0; + var + l$1 = l$0[2], + a = l$0[1], + accu$1 = caml_call2(f, accu$0, a), + accu$0 = accu$1, + l$0 = l$1; + } + } + function fold_right(f, l, accu){ + if(! l) return accu; + var l$0 = l[2], a = l[1]; + return caml_call2(f, a, fold_right(f, l$0, accu)); + } + function map2(f, l1, l2){ + if(l1){ + if(l2){ + var + l2$0 = l2[2], + a2 = l2[1], + l1$0 = l1[2], + a1 = l1[1], + r = caml_call2(f, a1, a2); + return [0, r, map2(f, l1$0, l2$0)]; + } + } + else if(! l2) return 0; + return caml_call1(Stdlib[1], cst_List_map2); + } + function rev_map2(f, l1, l2){ + var accu = 0, l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + accu$0 = [0, caml_call2(f, a1, a2), accu], + accu = accu$0, + l1$0 = l1$1, + l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return accu; + return caml_call1(Stdlib[1], cst_List_rev_map2); + } + } + function iter2(f, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var l2$1 = l2$0[2], a2 = l2$0[1], l1$1 = l1$0[2], a1 = l1$0[1]; + caml_call2(f, a1, a2); + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 0; + return caml_call1(Stdlib[1], cst_List_iter2); + } + } + function fold_left2(f, accu, l1, l2){ + var accu$0 = accu, l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + accu$1 = caml_call3(f, accu$0, a1, a2), + accu$0 = accu$1, + l1$0 = l1$1, + l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return accu$0; + return caml_call1(Stdlib[1], cst_List_fold_left2); + } + } + function fold_right2(f, l1, l2, accu){ + if(l1){ + if(l2){ + var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; + return caml_call3(f, a1, a2, fold_right2(f, l1$0, l2$0, accu)); + } + } + else if(! l2) return accu; + return caml_call1(Stdlib[1], cst_List_fold_right2); + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var l = param$0[2], a = param$0[1], _I_ = caml_call1(p, a); + if(! _I_) return _I_; + var param$0 = l; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1], _H_ = caml_call1(p, a); + if(_H_) return _H_; + var param$0 = l; + } + } + function for_all2(p, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _G_ = caml_call2(p, a1, a2); + if(! _G_) return _G_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 1; + return caml_call1(Stdlib[1], cst_List_for_all2); + } + } + function exists2(p, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _F_ = caml_call2(p, a1, a2); + if(_F_) return _F_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 0; + return caml_call1(Stdlib[1], cst_List_exists2); + } + } + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + l = param$0[2], + a = param$0[1], + _E_ = 0 === caml_compare(a, x) ? 1 : 0; + if(_E_) return _E_; + var param$0 = l; + } + } + function memq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1], _D_ = a === x ? 1 : 0; + if(_D_) return _D_; + var param$0 = l; + } + } + function assoc(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(0 === caml_compare(a, x)) return b; + var param$0 = l; + } + } + function assoc_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(0 === caml_compare(a, x)) return [0, b]; + var param$0 = l; + } + } + function assq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(a === x) return b; + var param$0 = l; + } + } + function assq_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], match = param$0[1], b = match[2], a = match[1]; + if(a === x) return [0, b]; + var param$0 = l; + } + } + function mem_assoc(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + l = param$0[2], + a = param$0[1][1], + _C_ = 0 === caml_compare(a, x) ? 1 : 0; + if(_C_) return _C_; + var param$0 = l; + } + } + function mem_assq(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], a = param$0[1][1], _B_ = a === x ? 1 : 0; + if(_B_) return _B_; + var param$0 = l; + } + } + function remove_assoc(x, param){ + if(! param) return 0; + var l = param[2], pair = param[1], a = pair[1]; + return 0 === caml_compare(a, x) ? l : [0, pair, remove_assoc(x, l)]; + } + function remove_assq(x, param){ + if(! param) return 0; + var l = param[2], pair = param[1], a = pair[1]; + return a === x ? l : [0, pair, remove_assq(x, l)]; + } + function find(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[2], x = param$0[1]; + if(caml_call1(p, x)) return x; + var param$0 = l; + } + } + function find_opt(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], x = param$0[1]; + if(caml_call1(p, x)) return [0, x]; + var param$0 = l; + } + } + function find_map(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], x = param$0[1], result = caml_call1(f, x); + if(result) return result; + var param$0 = l; + } + } + function find_all(p){ + var accu = 0; + return function(param$0){ + var accu$0 = accu, param = param$0; + for(;;){ + if(! param) return rev(accu$0); + var l = param[2], x = param[1]; + if(caml_call1(p, x)){ + var accu$1 = [0, x, accu$0], accu$0 = accu$1, param = l; + continue; + } + var param = l; + }}; + } + function filteri(p, l){ + var i = 0, acc = 0, param = l; + for(;;){ + if(! param) return rev(acc); + var + l$0 = param[2], + x = param[1], + acc$0 = caml_call2(p, i, x) ? [0, x, acc] : acc, + i$0 = i + 1 | 0, + i = i$0, + acc = acc$0, + param = l$0; + } + } + function filter_map(f){ + var accu = 0; + return function(param$0){ + var accu$0 = accu, param = param$0; + for(;;){ + if(! param) return rev(accu$0); + var l = param[2], x = param[1], match = caml_call1(f, x); + if(match){ + var v = match[1], accu$1 = [0, v, accu$0], accu$0 = accu$1, param = l; + continue; + } + var param = l; + }}; + } + function concat_map(f, l){ + var acc = 0, param = l; + for(;;){ + if(! param) return rev(acc); + var + l$0 = param[2], + x = param[1], + xs = caml_call1(f, x), + acc$0 = rev_append(xs, acc), + acc = acc$0, + param = l$0; + } + } + function fold_left_map(f, accu, l){ + var accu$0 = accu, l_accu = 0, param = l; + for(;;){ + if(! param) return [0, accu$0, rev(l_accu)]; + var + l$0 = param[2], + x = param[1], + match = caml_call2(f, accu$0, x), + x$0 = match[2], + accu$1 = match[1], + l_accu$0 = [0, x$0, l_accu], + accu$0 = accu$1, + l_accu = l_accu$0, + param = l$0; + } + } + function partition(p, l){ + var yes = 0, no = 0, param = l; + for(;;){ + if(! param){var _A_ = rev(no); return [0, rev(yes), _A_];} + var l$0 = param[2], x = param[1]; + if(caml_call1(p, x)){ + var yes$0 = [0, x, yes], yes = yes$0, param = l$0; + continue; + } + var no$0 = [0, x, no], no = no$0, param = l$0; + } + } + function partition_map(p, l){ + var left = 0, right = 0, param = l; + for(;;){ + if(! param){var _z_ = rev(right); return [0, rev(left), _z_];} + var l$0 = param[2], x = param[1], match = caml_call1(p, x); + if(0 === match[0]){ + var v = match[1], left$0 = [0, v, left], left = left$0, param = l$0; + continue; + } + var + v$0 = match[1], + right$0 = [0, v$0, right], + right = right$0, + param = l$0; + } + } + function split(param){ + if(! param) return _b_; + var + l = param[2], + match = param[1], + y = match[2], + x = match[1], + match$0 = split(l), + ry = match$0[2], + rx = match$0[1]; + return [0, [0, x, rx], [0, y, ry]]; + } + function combine(l1, l2){ + if(l1){ + if(l2){ + var l2$0 = l2[2], a2 = l2[1], l1$0 = l1[2], a1 = l1[1]; + return [0, [0, a1, a2], combine(l1$0, l2$0)]; + } + } + else if(! l2) return 0; + return caml_call1(Stdlib[1], cst_List_combine); + } + function merge(cmp, l1, l2){ + if(! l1) return l2; + if(! l2) return l1; + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + return 0 < caml_call2(cmp, h1, h2) + ? [0, h2, merge(cmp, l1, t2)] + : [0, h1, merge(cmp, t1, l2)]; + } + function stable_sort(cmp, l){ + function sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + s = + 0 < caml_call2(cmp, x1, x2) + ? [0, x2, [0, x1, 0]] + : [0, x1, [0, x2, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _y_ = l[2]; + if(_y_){ + var match$2 = _y_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _y_[1], + x1$0 = l[1], + s$0 = + 0 < caml_call2(cmp, x1$0, x2$0) + ? 0 + < caml_call2(cmp, x1$0, x3) + ? 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x3, [0, x2$0, [0, x1$0, 0]]] + : [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x2$0, [0, x1$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x2$0, x3) + ? 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x3, [0, x1$0, [0, x2$0, 0]]] + : [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x1$0, [0, x2$0, [0, x3, 0]]]; + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = rev_sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = rev_sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = [0, h1, accu], l1 = t1, accu = accu$0; + continue; + } + var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; + continue; + } + var _x_ = rev_append(l1, accu); + } + else + var _x_ = rev_append(l2, accu); + return [0, _x_, tl$0]; + } + } + function rev_sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + s = + 0 < caml_call2(cmp, x1, x2) + ? [0, x1, [0, x2, 0]] + : [0, x2, [0, x1, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _w_ = l[2]; + if(_w_){ + var match$2 = _w_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _w_[1], + x1$0 = l[1], + s$0 = + 0 < caml_call2(cmp, x1$0, x2$0) + ? 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x1$0, [0, x2$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x3, [0, x1$0, [0, x2$0, 0]]] + : 0 + < caml_call2(cmp, x1$0, x3) + ? [0, x2$0, [0, x1$0, [0, x3, 0]]] + : 0 + < caml_call2(cmp, x2$0, x3) + ? [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x3, [0, x2$0, [0, x1$0, 0]]]; + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var t2 = l2[2], h2 = l2[1], t1 = l1[2], h1 = l1[1]; + if(0 < caml_call2(cmp, h1, h2)){ + var accu$0 = [0, h2, accu], l2 = t2, accu = accu$0; + continue; + } + var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; + continue; + } + var _v_ = rev_append(l1, accu); + } + else + var _v_ = rev_append(l2, accu); + return [0, _v_, tl$0]; + } + } + var len = length(l); + return 2 <= len ? sort(len, l)[1] : l; + } + function sort_uniq(cmp, l){ + function sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + c$0 = caml_call2(cmp, x1, x2), + s = + 0 === c$0 + ? [0, x1, 0] + : 0 <= c$0 ? [0, x2, [0, x1, 0]] : [0, x1, [0, x2, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _p_ = l[2]; + if(_p_){ + var match$2 = _p_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _p_[1], + x1$0 = l[1], + c$1 = caml_call2(cmp, x1$0, x2$0); + if(0 === c$1) + var + c$2 = caml_call2(cmp, x2$0, x3), + _q_ = + 0 === c$2 + ? [0, x2$0, 0] + : 0 <= c$2 ? [0, x3, [0, x2$0, 0]] : [0, x2$0, [0, x3, 0]], + s$0 = _q_; + else if(0 <= c$1){ + var c$3 = caml_call2(cmp, x1$0, x3); + if(0 === c$3) + var _r_ = [0, x2$0, [0, x1$0, 0]]; + else if(0 <= c$3) + var + c$4 = caml_call2(cmp, x2$0, x3), + _s_ = + 0 === c$4 + ? [0, x2$0, [0, x1$0, 0]] + : 0 + <= c$4 + ? [0, x3, [0, x2$0, [0, x1$0, 0]]] + : [0, x2$0, [0, x3, [0, x1$0, 0]]], + _r_ = _s_; + else + var _r_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; + var s$0 = _r_; + } + else{ + var c$5 = caml_call2(cmp, x2$0, x3); + if(0 === c$5) + var _t_ = [0, x1$0, [0, x2$0, 0]]; + else if(0 <= c$5) + var + c$6 = caml_call2(cmp, x1$0, x3), + _u_ = + 0 === c$6 + ? [0, x1$0, [0, x2$0, 0]] + : 0 + <= c$6 + ? [0, x3, [0, x1$0, [0, x2$0, 0]]] + : [0, x1$0, [0, x3, [0, x2$0, 0]]], + _t_ = _u_; + else + var _t_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; + var s$0 = _t_; + } + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = rev_sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = rev_sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var + t2 = l2[2], + h2 = l2[1], + t1 = l1[2], + h1 = l1[1], + c = caml_call2(cmp, h1, h2); + if(0 === c){ + var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; + continue; + } + if(0 < c){ + var accu$1 = [0, h1, accu], l1 = t1, accu = accu$1; + continue; + } + var accu$2 = [0, h2, accu], l2 = t2, accu = accu$2; + continue; + } + var _o_ = rev_append(l1, accu); + } + else + var _o_ = rev_append(l2, accu); + return [0, _o_, tl$0]; + } + } + function rev_sort(n, l){ + if(2 === n){ + if(l){ + var match = l[2]; + if(match){ + var + tl = match[2], + x2 = match[1], + x1 = l[1], + c$0 = caml_call2(cmp, x1, x2), + s = + 0 === c$0 + ? [0, x1, 0] + : 0 < c$0 ? [0, x1, [0, x2, 0]] : [0, x2, [0, x1, 0]]; + return [0, s, tl]; + } + } + } + else if(3 === n && l){ + var _i_ = l[2]; + if(_i_){ + var match$2 = _i_[2]; + if(match$2){ + var + tl$1 = match$2[2], + x3 = match$2[1], + x2$0 = _i_[1], + x1$0 = l[1], + c$1 = caml_call2(cmp, x1$0, x2$0); + if(0 === c$1) + var + c$2 = caml_call2(cmp, x2$0, x3), + _j_ = + 0 === c$2 + ? [0, x2$0, 0] + : 0 < c$2 ? [0, x2$0, [0, x3, 0]] : [0, x3, [0, x2$0, 0]], + s$0 = _j_; + else if(0 < c$1){ + var c$3 = caml_call2(cmp, x2$0, x3); + if(0 === c$3) + var _k_ = [0, x1$0, [0, x2$0, 0]]; + else if(0 < c$3) + var _k_ = [0, x1$0, [0, x2$0, [0, x3, 0]]]; + else + var + c$4 = caml_call2(cmp, x1$0, x3), + _l_ = + 0 === c$4 + ? [0, x1$0, [0, x2$0, 0]] + : 0 + < c$4 + ? [0, x1$0, [0, x3, [0, x2$0, 0]]] + : [0, x3, [0, x1$0, [0, x2$0, 0]]], + _k_ = _l_; + var s$0 = _k_; + } + else{ + var c$5 = caml_call2(cmp, x1$0, x3); + if(0 === c$5) + var _m_ = [0, x2$0, [0, x1$0, 0]]; + else if(0 < c$5) + var _m_ = [0, x2$0, [0, x1$0, [0, x3, 0]]]; + else + var + c$6 = caml_call2(cmp, x2$0, x3), + _n_ = + 0 === c$6 + ? [0, x2$0, [0, x1$0, 0]] + : 0 + < c$6 + ? [0, x2$0, [0, x3, [0, x1$0, 0]]] + : [0, x3, [0, x2$0, [0, x1$0, 0]]], + _m_ = _n_; + var s$0 = _m_; + } + return [0, s$0, tl$1]; + } + } + } + var + n1 = n >> 1, + n2 = n - n1 | 0, + match$0 = sort(n1, l), + l2$0 = match$0[2], + s1 = match$0[1], + match$1 = sort(n2, l2$0), + tl$0 = match$1[2], + s2 = match$1[1], + l1 = s1, + l2 = s2, + accu = 0; + for(;;){ + if(l1){ + if(l2){ + var + t2 = l2[2], + h2 = l2[1], + t1 = l1[2], + h1 = l1[1], + c = caml_call2(cmp, h1, h2); + if(0 === c){ + var accu$0 = [0, h1, accu], l1 = t1, l2 = t2, accu = accu$0; + continue; + } + if(0 <= c){ + var accu$1 = [0, h2, accu], l2 = t2, accu = accu$1; + continue; + } + var accu$2 = [0, h1, accu], l1 = t1, accu = accu$2; + continue; + } + var _h_ = rev_append(l1, accu); + } + else + var _h_ = rev_append(l2, accu); + return [0, _h_, tl$0]; + } + } + var len = length(l); + return 2 <= len ? sort(len, l)[1] : l; + } + function compare_lengths(l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0; + if(! l2$0) return 1; + var l2$1 = l2$0[2], l1$1 = l1$0[2], l1$0 = l1$1, l2$0 = l2$1; + } + } + function compare_length_with(l, n){ + var l$0 = l, n$0 = n; + for(;;){ + if(! l$0) return 0 === n$0 ? 0 : 0 < n$0 ? -1 : 1; + var l$1 = l$0[2]; + if(0 >= n$0) return 1; + var n$1 = n$0 - 1 | 0, l$0 = l$1, n$0 = n$1; + } + } + function equal(eq, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(l1$0){ + if(l2$0){ + var + l2$1 = l2$0[2], + a2 = l2$0[1], + l1$1 = l1$0[2], + a1 = l1$0[1], + _g_ = caml_call2(eq, a1, a2); + if(! _g_) return _g_; + var l1$0 = l1$1, l2$0 = l2$1; + continue; + } + } + else if(! l2$0) return 1; + return 0; + } + } + function compare(cmp, l1, l2){ + var l1$0 = l1, l2$0 = l2; + for(;;){ + if(! l1$0) return l2$0 ? -1 : 0; + var l1$1 = l1$0[2], a1 = l1$0[1]; + if(! l2$0) return 1; + var l2$1 = l2$0[2], a2 = l2$0[1], c = caml_call2(cmp, a1, a2); + if(0 !== c) return c; + var l1$0 = l1$1, l2$0 = l2$1; + } + } + function to_seq(l){ + function aux(l, param){ + if(! l) return 0; + var tail = l[2], x = l[1]; + return [0, x, function(_f_){return aux(tail, _f_);}]; + } + return function(_e_){return aux(l, _e_);}; + } + function of_seq(seq){ + function direct(depth, seq){ + if(0 === depth){ + var _c_ = 0, _d_ = function(acc, x){return [0, x, acc];}; + return rev(caml_call3(Stdlib_Seq[5], _d_, _c_, seq)); + } + var match = caml_call1(seq, 0); + if(! match) return 0; + var next = match[2], x = match[1]; + return [0, x, direct(depth - 1 | 0, next)]; + } + return direct(500, seq); + } + var + Stdlib_List = + [0, + length, + compare_lengths, + compare_length_with, + cons, + hd, + tl, + nth, + nth_opt, + rev, + init, + append, + rev_append, + flatten, + flatten, + equal, + compare, + iter, + iteri, + map, + mapi, + rev_map, + filter_map, + concat_map, + fold_left_map, + fold_left, + fold_right, + iter2, + map2, + rev_map2, + fold_left2, + fold_right2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find, + find_opt, + find_map, + find_all, + find_all, + filteri, + partition, + partition_map, + assoc, + assoc_opt, + assq, + assq_opt, + mem_assoc, + mem_assq, + remove_assoc, + remove_assq, + split, + combine, + stable_sort, + stable_sort, + stable_sort, + sort_uniq, + merge, + to_seq, + of_seq]; + runtime.caml_register_global(18, Stdlib_List, "Stdlib__List"); + return; + } + (globalThis)); + +//# 3724 "../../.js/default/stdlib/stdlib.cma.js" +(function(globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, zero = 0, one = 1, minus_one = -1; + function abs(x){return 0 <= x ? x : - x | 0;} + var max_int = 2147483647, min_int = -2147483648; + function lognot(x){return x ^ -1;} + function equal(_b_, _a_){return _b_ === _a_ ? 1 : 0;} + var compare = runtime.caml_int_compare; + function min(x, y){return x <= y ? x : y;} + function max(x, y){return y <= x ? x : y;} + function to_string(x){return "" + x;} + var + Stdlib_Int = + [0, + zero, + one, + minus_one, + abs, + max_int, + min_int, + lognot, + equal, + compare, + min, + max, + to_string]; + runtime.caml_register_global(1, Stdlib_Int, "Stdlib__Int"); + return; + } + (globalThis)); + +//# 3757 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_bytes_ml = "bytes.ml", + cst_index_out_of_bounds$3 = "index out of bounds", + caml_blit_bytes = runtime.caml_blit_bytes, + caml_bswap16 = runtime.caml_bswap16, + caml_bytes_get = runtime.caml_bytes_get, + caml_bytes_get16 = runtime.caml_bytes_get16, + caml_bytes_get32 = runtime.caml_bytes_get32, + caml_bytes_get64 = runtime.caml_bytes_get64, + caml_bytes_of_string = runtime.caml_bytes_of_string, + caml_bytes_set = runtime.caml_bytes_set, + caml_bytes_set16 = runtime.caml_bytes_set16, + caml_bytes_set32 = runtime.caml_bytes_set32, + caml_bytes_set64 = runtime.caml_bytes_set64, + caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_fill_bytes = runtime.caml_fill_bytes, + caml_int32_bswap = runtime.caml_int32_bswap, + caml_int64_bswap = runtime.caml_int64_bswap, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_string_of_bytes = runtime.caml_string_of_bytes, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Uchar = global_data.Stdlib__Uchar, + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Char = global_data.Stdlib__Char, + cst_index_out_of_bounds$2 = cst_index_out_of_bounds$3, + _f_ = [0, cst_bytes_ml, 808, 20], + _e_ = [0, cst_bytes_ml, 819, 9], + cst_index_out_of_bounds$1 = cst_index_out_of_bounds$3, + cst_index_out_of_bounds$0 = cst_index_out_of_bounds$3, + _d_ = [0, cst_bytes_ml, 754, 20], + _c_ = [0, cst_bytes_ml, 765, 9], + cst_index_out_of_bounds = cst_index_out_of_bounds$3, + _b_ = [0, cst_bytes_ml, 642, 20], + _a_ = [0, cst_bytes_ml, 667, 9], + cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes", + cst_String_rcontains_from_Byte = + "String.rcontains_from / Bytes.rcontains_from", + cst_String_contains_from_Bytes = + "String.contains_from / Bytes.contains_from", + cst_String_rindex_from_opt_Byt = + "String.rindex_from_opt / Bytes.rindex_from_opt", + cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", + cst_String_index_from_opt_Byte = + "String.index_from_opt / Bytes.index_from_opt", + cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", + cst_Bytes_concat = "Bytes.concat", + cst_String_blit_Bytes_blit_str = "String.blit / Bytes.blit_string", + cst_Bytes_blit = "Bytes.blit", + cst_String_fill_Bytes_fill = "String.fill / Bytes.fill", + cst_Bytes_extend = "Bytes.extend", + cst_String_sub_Bytes_sub = "String.sub / Bytes.sub"; + function make(n, c){ + var s = caml_create_bytes(n); + caml_fill_bytes(s, 0, n, c); + return s; + } + function init(n, f){ + var s = caml_create_bytes(n), _aq_ = n - 1 | 0, _ap_ = 0; + if(_aq_ >= 0){ + var i = _ap_; + for(;;){ + caml_bytes_unsafe_set(s, i, caml_call1(f, i)); + var _ar_ = i + 1 | 0; + if(_aq_ !== i){var i = _ar_; continue;} + break; + } + } + return s; + } + var empty = caml_create_bytes(0); + function copy(s){ + var len = caml_ml_bytes_length(s), r = caml_create_bytes(len); + caml_blit_bytes(s, 0, r, 0, len); + return r; + } + function to_string(b){return caml_string_of_bytes(copy(b));} + function of_string(s){return copy(caml_bytes_of_string(s));} + function sub(s, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs){ + var r = caml_create_bytes(len); + caml_blit_bytes(s, ofs, r, 0, len); + return r; + } + return caml_call1(Stdlib[1], cst_String_sub_Bytes_sub); + } + function sub_string(b, ofs, len){ + return caml_string_of_bytes(sub(b, ofs, len)); + } + function symbol(a, b){ + var + c = a + b | 0, + _ao_ = b < 0 ? 1 : 0, + match = c < 0 ? 1 : 0, + switch$0 = 0; + if(a < 0){ + if(_ao_ && ! match) switch$0 = 1; + } + else if(! _ao_ && match) switch$0 = 1; + return switch$0 ? caml_call1(Stdlib[1], cst_Bytes_extend) : c; + } + function extend(s, left, right){ + var + len = symbol(symbol(caml_ml_bytes_length(s), left), right), + r = caml_create_bytes(len); + if(0 <= left) + var dstoff = left, srcoff = 0; + else + var dstoff = 0, srcoff = - left | 0; + var + cpylen = + caml_call2 + (Stdlib_Int[10], + caml_ml_bytes_length(s) - srcoff | 0, + len - dstoff | 0); + if(0 < cpylen) caml_blit_bytes(s, srcoff, r, dstoff, cpylen); + return r; + } + function fill(s, ofs, len, c){ + if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) + return caml_fill_bytes(s, ofs, len, c); + return caml_call1(Stdlib[1], cst_String_fill_Bytes_fill); + } + function blit(s1, ofs1, s2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (caml_ml_bytes_length(s1) - len | 0) >= ofs1 + && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) + return caml_blit_bytes(s1, ofs1, s2, ofs2, len); + return caml_call1(Stdlib[1], cst_Bytes_blit); + } + function blit_string(s1, ofs1, s2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (runtime.caml_ml_string_length(s1) - len | 0) >= ofs1 + && 0 <= ofs2 && (caml_ml_bytes_length(s2) - len | 0) >= ofs2) + return runtime.caml_blit_string(s1, ofs1, s2, ofs2, len); + return caml_call1(Stdlib[1], cst_String_blit_Bytes_blit_str); + } + function iter(f, a){ + var _am_ = caml_ml_bytes_length(a) - 1 | 0, _al_ = 0; + if(_am_ >= 0){ + var i = _al_; + for(;;){ + caml_call1(f, caml_bytes_unsafe_get(a, i)); + var _an_ = i + 1 | 0; + if(_am_ !== i){var i = _an_; continue;} + break; + } + } + return 0; + } + function iteri(f, a){ + var _aj_ = caml_ml_bytes_length(a) - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + for(;;){ + caml_call2(f, i, caml_bytes_unsafe_get(a, i)); + var _ak_ = i + 1 | 0; + if(_aj_ !== i){var i = _ak_; continue;} + break; + } + } + return 0; + } + function concat(sep, l){ + if(! l) return empty; + var seplen = caml_ml_bytes_length(sep), acc = 0, param = l, pos$1 = 0; + for(;;){ + if(param){ + var hd = param[1]; + if(param[2]){ + var + tl = param[2], + x = (caml_ml_bytes_length(hd) + seplen | 0) + acc | 0, + acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_Bytes_concat), + acc = acc$0, + param = tl; + continue; + } + var _ah_ = caml_ml_bytes_length(hd) + acc | 0; + } + else + var _ah_ = acc; + var dst = caml_create_bytes(_ah_), pos = pos$1, param$0 = l; + for(;;){ + if(! param$0) return dst; + var hd$0 = param$0[1]; + if(param$0[2]){ + var tl$0 = param$0[2]; + caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); + caml_blit_bytes + (sep, 0, dst, pos + caml_ml_bytes_length(hd$0) | 0, seplen); + var + pos$0 = (pos + caml_ml_bytes_length(hd$0) | 0) + seplen | 0, + pos = pos$0, + param$0 = tl$0; + continue; + } + caml_blit_bytes(hd$0, 0, dst, pos, caml_ml_bytes_length(hd$0)); + return dst; + } + } + } + function cat(s1, s2){ + var + l1 = caml_ml_bytes_length(s1), + l2 = caml_ml_bytes_length(s2), + r = caml_create_bytes(l1 + l2 | 0); + caml_blit_bytes(s1, 0, r, 0, l1); + caml_blit_bytes(s2, 0, r, l1, l2); + return r; + } + function is_space(param){ + var _ag_ = param - 9 | 0, switch$0 = 0; + if(4 < _ag_ >>> 0){ + if(23 === _ag_) switch$0 = 1; + } + else if(2 !== _ag_) switch$0 = 1; + return switch$0 ? 1 : 0; + } + function trim(s){ + var len = caml_ml_bytes_length(s), i = [0, 0]; + for(;;){ + if(i[1] < len && is_space(caml_bytes_unsafe_get(s, i[1]))){i[1]++; continue;} + var j = [0, len - 1 | 0]; + for(;;){ + if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s, j[1]))){j[1] += -1; continue;} + return i[1] <= j[1] ? sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) : empty; + } + } + } + function escaped(s){ + var n = [0, 0], _$_ = caml_ml_bytes_length(s) - 1 | 0, ___ = 0; + if(_$_ >= 0){ + var i$0 = ___; + for(;;){ + var match = caml_bytes_unsafe_get(s, i$0), switch$0 = 0; + if(32 <= match){ + var _ad_ = match - 34 | 0, switch$1 = 0; + if(58 < _ad_ >>> 0){ + if(93 > _ad_) switch$1 = 1; + } + else if(56 < _ad_ - 1 >>> 0) switch$0 = 1; else switch$1 = 1; + if(switch$1){var _ae_ = 1; switch$0 = 2;} + } + else + if(11 <= match){ + if(13 === match) switch$0 = 1; + } + else if(8 <= match) switch$0 = 1; + switch(switch$0){ + case 0: + var _ae_ = 4; break; + case 1: + var _ae_ = 2; break; + } + n[1] = n[1] + _ae_ | 0; + var _af_ = i$0 + 1 | 0; + if(_$_ !== i$0){var i$0 = _af_; continue;} + break; + } + } + if(n[1] === caml_ml_bytes_length(s)) return copy(s); + var s$0 = caml_create_bytes(n[1]); + n[1] = 0; + var _ab_ = caml_ml_bytes_length(s) - 1 | 0, _aa_ = 0; + if(_ab_ >= 0){ + var i = _aa_; + for(;;){ + var c = caml_bytes_unsafe_get(s, i), switch$2 = 0; + if(35 <= c) + if(92 === c) + switch$2 = 2; + else if(127 <= c) switch$2 = 1; else switch$2 = 3; + else if(32 <= c) + if(34 <= c) switch$2 = 2; else switch$2 = 3; + else if(14 <= c) + switch$2 = 1; + else + switch(c){ + case 8: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 98); + break; + case 9: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 116); + break; + case 10: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 110); + break; + case 13: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 114); + break; + default: switch$2 = 1; + } + switch(switch$2){ + case 1: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + (c / 100 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], 48 + (c % 10 | 0) | 0); + break; + case 2: + caml_bytes_unsafe_set(s$0, n[1], 92); + n[1]++; + caml_bytes_unsafe_set(s$0, n[1], c); + break; + case 3: + caml_bytes_unsafe_set(s$0, n[1], c); break; + } + n[1]++; + var _ac_ = i + 1 | 0; + if(_ab_ !== i){var i = _ac_; continue;} + break; + } + } + return s$0; + } + function map(f, s){ + var l = caml_ml_bytes_length(s); + if(0 === l) return s; + var r = caml_create_bytes(l), _Y_ = l - 1 | 0, _X_ = 0; + if(_Y_ >= 0){ + var i = _X_; + for(;;){ + caml_bytes_unsafe_set(r, i, caml_call1(f, caml_bytes_unsafe_get(s, i))); + var _Z_ = i + 1 | 0; + if(_Y_ !== i){var i = _Z_; continue;} + break; + } + } + return r; + } + function mapi(f, s){ + var l = caml_ml_bytes_length(s); + if(0 === l) return s; + var r = caml_create_bytes(l), _V_ = l - 1 | 0, _U_ = 0; + if(_V_ >= 0){ + var i = _U_; + for(;;){ + caml_bytes_unsafe_set + (r, i, caml_call2(f, i, caml_bytes_unsafe_get(s, i))); + var _W_ = i + 1 | 0; + if(_V_ !== i){var i = _W_; continue;} + break; + } + } + return r; + } + function fold_left(f, x, a){ + var r = [0, x], _S_ = caml_ml_bytes_length(a) - 1 | 0, _R_ = 0; + if(_S_ >= 0){ + var i = _R_; + for(;;){ + r[1] = caml_call2(f, r[1], caml_bytes_unsafe_get(a, i)); + var _T_ = i + 1 | 0; + if(_S_ !== i){var i = _T_; continue;} + break; + } + } + return r[1]; + } + function fold_right(f, a, x){ + var r = [0, x], _P_ = caml_ml_bytes_length(a) - 1 | 0; + if(_P_ >= 0){ + var i = _P_; + for(;;){ + r[1] = caml_call2(f, caml_bytes_unsafe_get(a, i), r[1]); + var _Q_ = i - 1 | 0; + if(0 !== i){var i = _Q_; continue;} + break; + } + } + return r[1]; + } + function exists(p, s){ + var n = caml_ml_bytes_length(s), i = 0; + for(;;){ + if(i === n) return 0; + if(caml_call1(p, caml_bytes_unsafe_get(s, i))) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all(p, s){ + var n = caml_ml_bytes_length(s), i = 0; + for(;;){ + if(i === n) return 1; + if(! caml_call1(p, caml_bytes_unsafe_get(s, i))) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function uppercase_ascii(s){return map(Stdlib_Char[6], s);} + function lowercase_ascii(s){return map(Stdlib_Char[5], s);} + function apply1(f, s){ + if(0 === caml_ml_bytes_length(s)) return s; + var r = copy(s); + caml_bytes_unsafe_set(r, 0, caml_call1(f, caml_bytes_unsafe_get(s, 0))); + return r; + } + function capitalize_ascii(s){return apply1(Stdlib_Char[6], s);} + function uncapitalize_ascii(s){return apply1(Stdlib_Char[5], s);} + function starts_with(prefix, s){ + var + len_s = caml_ml_bytes_length(s), + len_pre = caml_ml_bytes_length(prefix), + _O_ = len_pre <= len_s ? 1 : 0; + if(! _O_) return _O_; + var i = 0; + for(;;){ + if(i === len_pre) return 1; + if(caml_bytes_unsafe_get(s, i) !== caml_bytes_unsafe_get(prefix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function ends_with(suffix, s){ + var + len_s = caml_ml_bytes_length(s), + len_suf = caml_ml_bytes_length(suffix), + diff = len_s - len_suf | 0, + _N_ = 0 <= diff ? 1 : 0; + if(! _N_) return _N_; + var i = 0; + for(;;){ + if(i === len_suf) return 1; + if + (caml_bytes_unsafe_get(s, diff + i | 0) + !== caml_bytes_unsafe_get(suffix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function index_rec(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index(s, c){return index_rec(s, caml_ml_bytes_length(s), 0, c);} + function index_rec_opt(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) return 0; + if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index_opt(s, c){ + return index_rec_opt(s, caml_ml_bytes_length(s), 0, c); + } + function index_from(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) return index_rec(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); + } + function index_from_opt(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); + } + function rindex_rec(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_bytes_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex(s, c){ + return rindex_rec(s, caml_ml_bytes_length(s) - 1 | 0, c); + } + function rindex_from(s, i, c){ + if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); + } + function rindex_rec_opt(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) return 0; + if(caml_bytes_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex_opt(s, c){ + return rindex_rec_opt(s, caml_ml_bytes_length(s) - 1 | 0, c); + } + function rindex_from_opt(s, i, c){ + if(-1 <= i && caml_ml_bytes_length(s) > i) return rindex_rec_opt(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); + } + function contains_from(s, i, c){ + var l = caml_ml_bytes_length(s); + if(0 <= i && l >= i) + try{index_rec(s, l, i, c); var _L_ = 1; return _L_;} + catch(_M_){ + var _K_ = caml_wrap_exception(_M_); + if(_K_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_K_, 0); + } + return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); + } + function contains(s, c){return contains_from(s, 0, c);} + function rcontains_from(s, i, c){ + if(0 <= i && caml_ml_bytes_length(s) > i) + try{rindex_rec(s, i, c); var _I_ = 1; return _I_;} + catch(_J_){ + var _H_ = caml_wrap_exception(_J_); + if(_H_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_H_, 0); + } + return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); + } + var compare = runtime.caml_bytes_compare; + function split_on_char(sep, s){ + var + r = [0, 0], + j = [0, caml_ml_bytes_length(s)], + _D_ = caml_ml_bytes_length(s) - 1 | 0; + if(_D_ >= 0){ + var i = _D_; + for(;;){ + if(caml_bytes_unsafe_get(s, i) === sep){ + var _F_ = r[1]; + r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _F_]; + j[1] = i; + } + var _G_ = i - 1 | 0; + if(0 !== i){var i = _G_; continue;} + break; + } + } + var _E_ = r[1]; + return [0, sub(s, 0, j[1]), _E_]; + } + function uppercase(s){return map(Stdlib_Char[4], s);} + function lowercase(s){return map(Stdlib_Char[3], s);} + function capitalize(s){return apply1(Stdlib_Char[4], s);} + function uncapitalize(s){return apply1(Stdlib_Char[3], s);} + function to_seq(s){ + function aux(i, param){ + if(i === caml_ml_bytes_length(s)) return 0; + var x = caml_bytes_get(s, i), _B_ = i + 1 | 0; + return [0, x, function(_C_){return aux(_B_, _C_);}]; + } + var _z_ = 0; + return function(_A_){return aux(_z_, _A_);}; + } + function to_seqi(s){ + function aux(i, param){ + if(i === caml_ml_bytes_length(s)) return 0; + var x = caml_bytes_get(s, i), _x_ = i + 1 | 0; + return [0, [0, i, x], function(_y_){return aux(_x_, _y_);}]; + } + var _v_ = 0; + return function(_w_){return aux(_v_, _w_);}; + } + function of_seq(i){ + var n = [0, 0], buf = [0, make(256, 0)]; + function _u_(c){ + if(n[1] === caml_ml_bytes_length(buf[1])){ + var + new_len = + caml_call2 + (Stdlib_Int[10], + 2 * caml_ml_bytes_length(buf[1]) | 0, + Stdlib_Sys[12]); + if(caml_ml_bytes_length(buf[1]) === new_len) + caml_call1(Stdlib[2], cst_Bytes_of_seq_cannot_grow_b); + var new_buf = make(new_len, 0); + blit(buf[1], 0, new_buf, 0, n[1]); + buf[1] = new_buf; + } + caml_bytes_set(buf[1], n[1], c); + n[1]++; + return 0; + } + caml_call2(Stdlib_Seq[4], _u_, i); + return sub(buf[1], 0, n[1]); + } + function unsafe_get_uint16_le(b, i){ + return Stdlib_Sys[11] + ? caml_bswap16(caml_bytes_get16(b, i)) + : caml_bytes_get16(b, i); + } + function unsafe_get_uint16_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get16(b, i) + : caml_bswap16(caml_bytes_get16(b, i)); + } + function get_int8(b, i){ + var _s_ = Stdlib_Sys[10] - 8 | 0, _t_ = Stdlib_Sys[10] - 8 | 0; + return caml_bytes_get(b, i) << _t_ >> _s_; + } + function get_uint16_le(b, i){ + return Stdlib_Sys[11] + ? caml_bswap16(caml_bytes_get16(b, i)) + : caml_bytes_get16(b, i); + } + function get_uint16_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get16(b, i) + : caml_bswap16(caml_bytes_get16(b, i)); + } + function get_int16_ne(b, i){ + var _q_ = Stdlib_Sys[10] - 16 | 0, _r_ = Stdlib_Sys[10] - 16 | 0; + return caml_bytes_get16(b, i) << _r_ >> _q_; + } + function get_int16_le(b, i){ + var _o_ = Stdlib_Sys[10] - 16 | 0, _p_ = Stdlib_Sys[10] - 16 | 0; + return get_uint16_le(b, i) << _p_ >> _o_; + } + function get_int16_be(b, i){ + var _m_ = Stdlib_Sys[10] - 16 | 0, _n_ = Stdlib_Sys[10] - 16 | 0; + return get_uint16_be(b, i) << _n_ >> _m_; + } + function get_int32_le(b, i){ + return Stdlib_Sys[11] + ? caml_int32_bswap(caml_bytes_get32(b, i)) + : caml_bytes_get32(b, i); + } + function get_int32_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get32(b, i) + : caml_int32_bswap(caml_bytes_get32(b, i)); + } + function get_int64_le(b, i){ + return Stdlib_Sys[11] + ? caml_int64_bswap(caml_bytes_get64(b, i)) + : caml_bytes_get64(b, i); + } + function get_int64_be(b, i){ + return Stdlib_Sys[11] + ? caml_bytes_get64(b, i) + : caml_int64_bswap(caml_bytes_get64(b, i)); + } + function unsafe_set_uint16_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, caml_bswap16(x)) + : caml_bytes_set16(b, i, x); + } + function unsafe_set_uint16_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, x) + : caml_bytes_set16(b, i, caml_bswap16(x)); + } + function set_int16_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, caml_bswap16(x)) + : caml_bytes_set16(b, i, x); + } + function set_int16_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set16(b, i, x) + : caml_bytes_set16(b, i, caml_bswap16(x)); + } + function set_int32_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set32(b, i, caml_int32_bswap(x)) + : caml_bytes_set32(b, i, x); + } + function set_int32_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set32(b, i, x) + : caml_bytes_set32(b, i, caml_int32_bswap(x)); + } + function set_int64_le(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set64(b, i, caml_int64_bswap(x)) + : caml_bytes_set64(b, i, x); + } + function set_int64_be(b, i, x){ + return Stdlib_Sys[11] + ? caml_bytes_set64(b, i, x) + : caml_bytes_set64(b, i, caml_int64_bswap(x)); + } + var + set_uint8 = caml_bytes_set, + set_uint16_ne = caml_bytes_set16, + dec_invalid = Stdlib_Uchar[22]; + function dec_ret(n, u){ + var _l_ = caml_call1(Stdlib_Uchar[9], u); + return caml_call2(Stdlib_Uchar[21], n, _l_); + } + function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0) ? 1 : 0;} + function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0) ? 1 : 0;} + function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0) ? 1 : 0;} + function not_in_x90_to_xBF(b){ + var _j_ = b < 144 ? 1 : 0, _k_ = _j_ || (191 < b ? 1 : 0); + return _k_; + } + function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0) ? 1 : 0;} + function utf_8_uchar_3(b0, b1, b2){ + return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63; + } + function utf_8_uchar_4(b0, b1, b2, b3){ + return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63; + } + function get_utf_8_uchar(b, i){ + var b0 = caml_bytes_get(b, i), max = caml_ml_bytes_length(b) - 1 | 0; + if(224 <= b0){ + var switch$0 = 0; + if(237 <= b0){ + if(245 > b0) + switch(b0 - 237 | 0){ + case 0: + var i$0 = i + 1 | 0; + if(max < i$0) return caml_call1(dec_invalid, 1); + var b1 = caml_bytes_unsafe_get(b, i$0); + if(not_in_x80_to_x9F(b1)) return caml_call1(dec_invalid, 1); + var i$1 = i$0 + 1 | 0; + if(max < i$1) return caml_call1(dec_invalid, 2); + var b2 = caml_bytes_unsafe_get(b, i$1); + return not_in_x80_to_xBF(b2) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1, b2)); + case 3: + var i$4 = i + 1 | 0; + if(max < i$4) return caml_call1(dec_invalid, 1); + var b1$1 = caml_bytes_unsafe_get(b, i$4); + if(not_in_x90_to_xBF(b1$1)) return caml_call1(dec_invalid, 1); + var i$5 = i$4 + 1 | 0; + if(max < i$5) return caml_call1(dec_invalid, 2); + var b2$1 = caml_bytes_unsafe_get(b, i$5); + if(not_in_x80_to_xBF(b2$1)) return caml_call1(dec_invalid, 2); + var i$6 = i$5 + 1 | 0; + if(max < i$6) return caml_call1(dec_invalid, 3); + var b3 = caml_bytes_unsafe_get(b, i$6); + return not_in_x80_to_xBF(b3) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$1, b2$1, b3)); + case 7: + var i$10 = i + 1 | 0; + if(max < i$10) return caml_call1(dec_invalid, 1); + var b1$3 = caml_bytes_unsafe_get(b, i$10); + if(not_in_x80_to_x8F(b1$3)) return caml_call1(dec_invalid, 1); + var i$11 = i$10 + 1 | 0; + if(max < i$11) return caml_call1(dec_invalid, 2); + var b2$3 = caml_bytes_unsafe_get(b, i$11); + if(not_in_x80_to_xBF(b2$3)) return caml_call1(dec_invalid, 2); + var i$12 = i$11 + 1 | 0; + if(max < i$12) return caml_call1(dec_invalid, 3); + var b3$1 = caml_bytes_unsafe_get(b, i$12); + return not_in_x80_to_xBF(b3$1) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$3, b2$3, b3$1)); + case 1: + case 2: + switch$0 = 1; break; + default: + var i$7 = i + 1 | 0; + if(max < i$7) return caml_call1(dec_invalid, 1); + var b1$2 = caml_bytes_unsafe_get(b, i$7); + if(not_in_x80_to_xBF(b1$2)) return caml_call1(dec_invalid, 1); + var i$8 = i$7 + 1 | 0; + if(max < i$8) return caml_call1(dec_invalid, 2); + var b2$2 = caml_bytes_unsafe_get(b, i$8); + if(not_in_x80_to_xBF(b2$2)) return caml_call1(dec_invalid, 2); + var i$9 = i$8 + 1 | 0; + if(max < i$9) return caml_call1(dec_invalid, 3); + var b3$0 = caml_bytes_unsafe_get(b, i$9); + return not_in_x80_to_xBF(b3$0) + ? caml_call1(dec_invalid, 3) + : dec_ret(4, utf_8_uchar_4(b0, b1$2, b2$2, b3$0)); + } + } + else{ + if(225 > b0){ + var i$13 = i + 1 | 0; + if(max < i$13) return caml_call1(dec_invalid, 1); + var b1$4 = caml_bytes_unsafe_get(b, i$13); + if(not_in_xA0_to_xBF(b1$4)) return caml_call1(dec_invalid, 1); + var i$14 = i$13 + 1 | 0; + if(max < i$14) return caml_call1(dec_invalid, 2); + var b2$4 = caml_bytes_unsafe_get(b, i$14); + return not_in_x80_to_xBF(b2$4) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1$4, b2$4)); + } + switch$0 = 1; + } + if(switch$0){ + var i$2 = i + 1 | 0; + if(max < i$2) return caml_call1(dec_invalid, 1); + var b1$0 = caml_bytes_unsafe_get(b, i$2); + if(not_in_x80_to_xBF(b1$0)) return caml_call1(dec_invalid, 1); + var i$3 = i$2 + 1 | 0; + if(max < i$3) return caml_call1(dec_invalid, 2); + var b2$0 = caml_bytes_unsafe_get(b, i$3); + return not_in_x80_to_xBF(b2$0) + ? caml_call1(dec_invalid, 2) + : dec_ret(3, utf_8_uchar_3(b0, b1$0, b2$0)); + } + } + else{ + if(128 > b0) return dec_ret(1, b0); + if(194 <= b0){ + var i$15 = i + 1 | 0; + if(max < i$15) return caml_call1(dec_invalid, 1); + var b1$5 = caml_bytes_unsafe_get(b, i$15); + return not_in_x80_to_xBF(b1$5) + ? caml_call1(dec_invalid, 1) + : dec_ret(2, (b0 & 31) << 6 | b1$5 & 63); + } + } + return caml_call1(dec_invalid, 1); + } + function set_utf_8_uchar(b, i, u){ + function set(_i_, _h_, _g_){ + caml_bytes_unsafe_set(_i_, _h_, _g_); + return 0; + } + var + max = caml_ml_bytes_length(b) - 1 | 0, + u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if(127 >= u$0){caml_bytes_set(b, i, u$0); return 1;} + if(2047 >= u$0){ + var last$1 = i + 1 | 0; + return max < last$1 + ? 0 + : (caml_bytes_set + (b, i, 192 | u$0 >>> 6 | 0), + set(b, last$1, 128 | u$0 & 63), + 2); + } + if(65535 >= u$0){ + var last$0 = i + 2 | 0; + return max < last$0 + ? 0 + : (caml_bytes_set + (b, i, 224 | u$0 >>> 12 | 0), + set(b, i + 1 | 0, 128 | (u$0 >>> 6 | 0) & 63), + set(b, last$0, 128 | u$0 & 63), + 3); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + var last = i + 3 | 0; + return max < last + ? 0 + : (caml_bytes_set + (b, i, 240 | u$0 >>> 18 | 0), + set(b, i + 1 | 0, 128 | (u$0 >>> 12 | 0) & 63), + set(b, i + 2 | 0, 128 | (u$0 >>> 6 | 0) & 63), + set(b, last, 128 | u$0 & 63), + 4); + } + function is_valid_utf_8(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + var match = caml_bytes_unsafe_get(b, i); + if(224 <= match){ + var switch$0 = 0; + if(237 <= match){ + if(245 > match) + switch(match - 237 | 0){ + case 0: + var last = i + 2 | 0; + if + (max >= last + && + ! + not_in_x80_to_x9F(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last))){var i$0 = last + 1 | 0, i = i$0; continue;} + return 0; + case 3: + var last$1 = i + 3 | 0; + if + (max >= last$1 + && + ! + not_in_x90_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$1))){var i$2 = last$1 + 1 | 0, i = i$2; continue;} + return 0; + case 7: + var last$3 = i + 3 | 0; + if + (max >= last$3 + && + ! + not_in_x80_to_x8F(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$3))){var i$4 = last$3 + 1 | 0, i = i$4; continue;} + return 0; + case 1: + case 2: + switch$0 = 1; break; + default: + var last$2 = i + 3 | 0; + if + (max >= last$2 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 2 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$2))){var i$3 = last$2 + 1 | 0, i = i$3; continue;} + return 0; + } + } + else{ + if(225 > match){ + var last$4 = i + 2 | 0; + if + (max >= last$4 + && + ! + not_in_xA0_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$4))){var i$5 = last$4 + 1 | 0, i = i$5; continue;} + return 0; + } + switch$0 = 1; + } + if(switch$0){ + var last$0 = i + 2 | 0; + if + (max >= last$0 + && + ! + not_in_x80_to_xBF(caml_bytes_unsafe_get(b, i + 1 | 0)) + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$0))){var i$1 = last$0 + 1 | 0, i = i$1; continue;} + return 0; + } + } + else{ + if(128 > match){var i$7 = i + 1 | 0, i = i$7; continue;} + if(194 <= match){ + var last$5 = i + 1 | 0; + if + (max >= last$5 + && ! not_in_x80_to_xBF(caml_bytes_unsafe_get(b, last$5))){var i$6 = last$5 + 1 | 0, i = i$6; continue;} + return 0; + } + } + return 0; + } + } + function get_utf_16be_uchar(b, i){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + if(i === max) return caml_call1(dec_invalid, 1); + var hi = unsafe_get_uint16_be(b, i); + if(55296 <= hi && 57343 >= hi){ + if(56319 < hi) return caml_call1(dec_invalid, 2); + var last = i + 3 | 0; + if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); + var lo = unsafe_get_uint16_be(b, i + 2 | 0); + if(56320 <= lo && 57343 >= lo){ + var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + return dec_ret(4, u); + } + return caml_call1(dec_invalid, 2); + } + return dec_ret(2, hi); + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds); + } + function set_utf_16be_uchar(b, i, u){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + var u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(65535 >= u$0){ + var last$0 = i + 1 | 0; + return max < last$0 ? 0 : (unsafe_set_uint16_be(b, i, u$0), 2); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + var last = i + 3 | 0; + if(max < last) return 0; + var + u$1 = u$0 - 65536 | 0, + hi = 55296 | u$1 >>> 10 | 0, + lo = 56320 | u$1 & 1023; + unsafe_set_uint16_be(b, i, hi); + unsafe_set_uint16_be(b, i + 2 | 0, lo); + return 4; + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$0); + } + function is_valid_utf_16be(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + if(i === max) return 0; + var u = unsafe_get_uint16_be(b, i); + if(55296 <= u && 57343 >= u){ + if(56319 < u) return 0; + var last = i + 3 | 0; + if(max < last) return 0; + var u$0 = unsafe_get_uint16_be(b, i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = i + 4 | 0, i = i$1; + continue; + } + return 0; + } + var i$0 = i + 2 | 0, i = i$0; + } + } + function get_utf_16le_uchar(b, i){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + if(i === max) return caml_call1(dec_invalid, 1); + var hi = unsafe_get_uint16_le(b, i); + if(55296 <= hi && 57343 >= hi){ + if(56319 < hi) return caml_call1(dec_invalid, 2); + var last = i + 3 | 0; + if(max < last) return caml_call1(dec_invalid, (max - i | 0) + 1 | 0); + var lo = unsafe_get_uint16_le(b, i + 2 | 0); + if(56320 <= lo && 57343 >= lo){ + var u = ((hi & 1023) << 10 | lo & 1023) + 65536 | 0; + return dec_ret(4, u); + } + return caml_call1(dec_invalid, 2); + } + return dec_ret(2, hi); + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$1); + } + function set_utf_16le_uchar(b, i, u){ + var max = caml_ml_bytes_length(b) - 1 | 0; + if(0 <= i && max >= i){ + var u$0 = caml_call1(Stdlib_Uchar[10], u); + if(0 > u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + if(65535 >= u$0){ + var last$0 = i + 1 | 0; + return max < last$0 ? 0 : (unsafe_set_uint16_le(b, i, u$0), 2); + } + if(1114111 < u$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + var last = i + 3 | 0; + if(max < last) return 0; + var + u$1 = u$0 - 65536 | 0, + hi = 55296 | u$1 >>> 10 | 0, + lo = 56320 | u$1 & 1023; + unsafe_set_uint16_le(b, i, hi); + unsafe_set_uint16_le(b, i + 2 | 0, lo); + return 4; + } + return caml_call1(Stdlib[1], cst_index_out_of_bounds$2); + } + function is_valid_utf_16le(b){ + var max = caml_ml_bytes_length(b) - 1 | 0, i = 0; + for(;;){ + if(max < i) return 1; + if(i === max) return 0; + var u = unsafe_get_uint16_le(b, i); + if(55296 <= u && 57343 >= u){ + if(56319 < u) return 0; + var last = i + 3 | 0; + if(max < last) return 0; + var u$0 = unsafe_get_uint16_le(b, i + 2 | 0); + if(56320 <= u$0 && 57343 >= u$0){ + var i$1 = i + 4 | 0, i = i$1; + continue; + } + return 0; + } + var i$0 = i + 2 | 0, i = i$0; + } + } + var + Stdlib_Bytes = + [0, + make, + init, + empty, + copy, + of_string, + to_string, + sub, + sub_string, + extend, + fill, + blit, + blit_string, + concat, + cat, + iter, + iteri, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + index, + index_opt, + rindex, + rindex_opt, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + contains, + contains_from, + rcontains_from, + uppercase, + lowercase, + capitalize, + uncapitalize, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + compare, + runtime.caml_bytes_equal, + starts_with, + ends_with, + caml_string_of_bytes, + caml_bytes_of_string, + split_on_char, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + set_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + set_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + set_utf_16le_uchar, + is_valid_utf_16le, + caml_bytes_get, + get_int8, + caml_bytes_get16, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + caml_bytes_get32, + get_int32_be, + get_int32_le, + caml_bytes_get64, + get_int64_be, + get_int64_le, + set_uint8, + caml_bytes_set, + set_uint16_ne, + set_int16_be, + set_int16_le, + caml_bytes_set16, + set_int16_be, + set_int16_le, + caml_bytes_set32, + set_int32_be, + set_int32_le, + caml_bytes_set64, + set_int64_be, + set_int64_le]; + runtime.caml_register_global(30, Stdlib_Bytes, "Stdlib__Bytes"); + return; + } + (globalThis)); + +//# 4971 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$0 = "", + caml_blit_string = runtime.caml_blit_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_equal = runtime.caml_string_equal, + caml_string_unsafe_get = runtime.caml_string_unsafe_get, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst = cst$0, + empty = cst$0, + Stdlib = global_data.Stdlib, + Stdlib_Bytes = global_data.Stdlib__Bytes, + bts = Stdlib_Bytes[48], + bos = Stdlib_Bytes[49], + cst_String_rcontains_from_Byte = + "String.rcontains_from / Bytes.rcontains_from", + cst_String_contains_from_Bytes = + "String.contains_from / Bytes.contains_from", + cst_String_rindex_from_opt_Byt = + "String.rindex_from_opt / Bytes.rindex_from_opt", + cst_String_rindex_from_Bytes_r = "String.rindex_from / Bytes.rindex_from", + cst_String_index_from_opt_Byte = + "String.index_from_opt / Bytes.index_from_opt", + cst_String_index_from_Bytes_in = "String.index_from / Bytes.index_from", + cst_String_concat = "String.concat"; + function make(n, c){ + return caml_call1(bts, caml_call2(Stdlib_Bytes[1], n, c)); + } + function init(n, f){ + return caml_call1(bts, caml_call2(Stdlib_Bytes[2], n, f)); + } + function copy(s){ + var _ac_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[4], _ac_)); + } + var of_bytes = Stdlib_Bytes[6], to_bytes = Stdlib_Bytes[5]; + function sub(s, ofs, len){ + var _ab_ = caml_call1(bos, s); + return caml_call1(bts, caml_call3(Stdlib_Bytes[7], _ab_, ofs, len)); + } + var fill = Stdlib_Bytes[10], blit = Stdlib_Bytes[12]; + function concat(sep, l){ + if(! l) return cst; + var seplen = caml_ml_string_length(sep), acc = 0, param = l, pos$1 = 0; + for(;;){ + if(param){ + var hd = param[1]; + if(param[2]){ + var + tl = param[2], + x = (caml_ml_string_length(hd) + seplen | 0) + acc | 0, + acc$0 = acc <= x ? x : caml_call1(Stdlib[1], cst_String_concat), + acc = acc$0, + param = tl; + continue; + } + var _aa_ = caml_ml_string_length(hd) + acc | 0; + } + else + var _aa_ = acc; + var dst = runtime.caml_create_bytes(_aa_), pos = pos$1, param$0 = l; + for(;;){ + if(param$0){ + var hd$0 = param$0[1]; + if(param$0[2]){ + var tl$0 = param$0[2]; + caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); + caml_blit_string + (sep, 0, dst, pos + caml_ml_string_length(hd$0) | 0, seplen); + var + pos$0 = (pos + caml_ml_string_length(hd$0) | 0) + seplen | 0, + pos = pos$0, + param$0 = tl$0; + continue; + } + caml_blit_string(hd$0, 0, dst, pos, caml_ml_string_length(hd$0)); + } + return caml_call1(bts, dst); + } + } + } + var cat = Stdlib[28]; + function iter(f, s){ + var ___ = caml_ml_string_length(s) - 1 | 0, _Z_ = 0; + if(___ >= 0){ + var i = _Z_; + for(;;){ + caml_call1(f, caml_string_unsafe_get(s, i)); + var _$_ = i + 1 | 0; + if(___ !== i){var i = _$_; continue;} + break; + } + } + return 0; + } + function iteri(f, s){ + var _X_ = caml_ml_string_length(s) - 1 | 0, _W_ = 0; + if(_X_ >= 0){ + var i = _W_; + for(;;){ + caml_call2(f, i, caml_string_unsafe_get(s, i)); + var _Y_ = i + 1 | 0; + if(_X_ !== i){var i = _Y_; continue;} + break; + } + } + return 0; + } + function map(f, s){ + var _V_ = caml_call1(bos, s); + return caml_call1(bts, caml_call2(Stdlib_Bytes[17], f, _V_)); + } + function mapi(f, s){ + var _U_ = caml_call1(bos, s); + return caml_call1(bts, caml_call2(Stdlib_Bytes[18], f, _U_)); + } + function fold_right(f, x, a){ + var _T_ = caml_call1(bos, x); + return caml_call3(Stdlib_Bytes[20], f, _T_, a); + } + function fold_left(f, a, x){ + var _S_ = caml_call1(bos, x); + return caml_call3(Stdlib_Bytes[19], f, a, _S_); + } + function exists(f, s){ + var _R_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[22], f, _R_); + } + function for_all(f, s){ + var _Q_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[21], f, _Q_); + } + function is_space(param){ + var _P_ = param - 9 | 0, switch$0 = 0; + if(4 < _P_ >>> 0){ + if(23 === _P_) switch$0 = 1; + } + else if(2 !== _P_) switch$0 = 1; + return switch$0 ? 1 : 0; + } + function trim(s){ + if(caml_string_equal(s, cst$0)) return s; + if + (! + is_space(caml_string_unsafe_get(s, 0)) + && + ! + is_space(caml_string_unsafe_get(s, caml_ml_string_length(s) - 1 | 0))) + return s; + var _O_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[23], _O_)); + } + function escaped(s){ + var n = caml_ml_string_length(s), i = 0; + for(;;){ + if(n <= i) return s; + var _M_ = caml_string_unsafe_get(s, i) - 32 | 0, switch$0 = 0; + if(59 < _M_ >>> 0){ + if(33 < _M_ - 61 >>> 0) switch$0 = 1; + } + else if(2 === _M_) switch$0 = 1; + if(switch$0){ + var _N_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[24], _N_)); + } + var i$0 = i + 1 | 0, i = i$0; + } + } + function index_rec(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index(s, c){return index_rec(s, caml_ml_string_length(s), 0, c);} + function index_rec_opt(s, lim, i, c){ + var i$0 = i; + for(;;){ + if(lim <= i$0) return 0; + if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + function index_opt(s, c){ + return index_rec_opt(s, caml_ml_string_length(s), 0, c); + } + function index_from(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) return index_rec(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_Bytes_in); + } + function index_from_opt(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) return index_rec_opt(s, l, i, c); + return caml_call1(Stdlib[1], cst_String_index_from_opt_Byte); + } + function rindex_rec(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_unsafe_get(s, i$0) === c) return i$0; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex(s, c){ + return rindex_rec(s, caml_ml_string_length(s) - 1 | 0, c); + } + function rindex_from(s, i, c){ + if(-1 <= i && caml_ml_string_length(s) > i) return rindex_rec(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_Bytes_r); + } + function rindex_rec_opt(s, i, c){ + var i$0 = i; + for(;;){ + if(0 > i$0) return 0; + if(caml_string_unsafe_get(s, i$0) === c) return [0, i$0]; + var i$1 = i$0 - 1 | 0, i$0 = i$1; + } + } + function rindex_opt(s, c){ + return rindex_rec_opt(s, caml_ml_string_length(s) - 1 | 0, c); + } + function rindex_from_opt(s, i, c){ + if(-1 <= i && caml_ml_string_length(s) > i) + return rindex_rec_opt(s, i, c); + return caml_call1(Stdlib[1], cst_String_rindex_from_opt_Byt); + } + function contains_from(s, i, c){ + var l = caml_ml_string_length(s); + if(0 <= i && l >= i) + try{index_rec(s, l, i, c); var _K_ = 1; return _K_;} + catch(_L_){ + var _J_ = caml_wrap_exception(_L_); + if(_J_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_J_, 0); + } + return caml_call1(Stdlib[1], cst_String_contains_from_Bytes); + } + function contains(s, c){return contains_from(s, 0, c);} + function rcontains_from(s, i, c){ + if(0 <= i && caml_ml_string_length(s) > i) + try{rindex_rec(s, i, c); var _H_ = 1; return _H_;} + catch(_I_){ + var _G_ = caml_wrap_exception(_I_); + if(_G_ === Stdlib[8]) return 0; + throw caml_maybe_attach_backtrace(_G_, 0); + } + return caml_call1(Stdlib[1], cst_String_rcontains_from_Byte); + } + function uppercase_ascii(s){ + var _F_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[40], _F_)); + } + function lowercase_ascii(s){ + var _E_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[41], _E_)); + } + function capitalize_ascii(s){ + var _D_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[42], _D_)); + } + function uncapitalize_ascii(s){ + var _C_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[43], _C_)); + } + function starts_with(prefix, s){ + var + len_s = caml_ml_string_length(s), + len_pre = caml_ml_string_length(prefix), + _B_ = len_pre <= len_s ? 1 : 0; + if(! _B_) return _B_; + var i = 0; + for(;;){ + if(i === len_pre) return 1; + if(caml_string_unsafe_get(s, i) !== caml_string_unsafe_get(prefix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function ends_with(suffix, s){ + var + len_s = caml_ml_string_length(s), + len_suf = caml_ml_string_length(suffix), + diff = len_s - len_suf | 0, + _A_ = 0 <= diff ? 1 : 0; + if(! _A_) return _A_; + var i = 0; + for(;;){ + if(i === len_suf) return 1; + if + (caml_string_unsafe_get(s, diff + i | 0) + !== caml_string_unsafe_get(suffix, i)) + return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function split_on_char(sep, s){ + var + r = [0, 0], + j = [0, caml_ml_string_length(s)], + _w_ = caml_ml_string_length(s) - 1 | 0; + if(_w_ >= 0){ + var i = _w_; + for(;;){ + if(caml_string_unsafe_get(s, i) === sep){ + var _y_ = r[1]; + r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _y_]; + j[1] = i; + } + var _z_ = i - 1 | 0; + if(0 !== i){var i = _z_; continue;} + break; + } + } + var _x_ = r[1]; + return [0, sub(s, 0, j[1]), _x_]; + } + function uppercase(s){ + var _v_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[36], _v_)); + } + function lowercase(s){ + var _u_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[37], _u_)); + } + function capitalize(s){ + var _t_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[38], _t_)); + } + function uncapitalize(s){ + var _s_ = caml_call1(bos, s); + return caml_call1(bts, caml_call1(Stdlib_Bytes[39], _s_)); + } + var compare = runtime.caml_string_compare; + function to_seq(s){ + var _r_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[51], _r_); + } + function to_seqi(s){ + var _q_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[52], _q_); + } + function of_seq(g){ + return caml_call1(bts, caml_call1(Stdlib_Bytes[53], g)); + } + function get_utf_8_uchar(s, i){ + var _p_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[54], _p_, i); + } + function is_valid_utf_8(s){ + var _o_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[56], _o_); + } + function get_utf_16be_uchar(s, i){ + var _n_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[57], _n_, i); + } + function is_valid_utf_16be(s){ + var _m_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[59], _m_); + } + function get_utf_16le_uchar(s, i){ + var _l_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[60], _l_, i); + } + function is_valid_utf_16le(s){ + var _k_ = caml_call1(bos, s); + return caml_call1(Stdlib_Bytes[62], _k_); + } + function get_int8(s, i){ + var _j_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[64], _j_, i); + } + function get_uint16_le(s, i){ + var _i_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[67], _i_, i); + } + function get_uint16_be(s, i){ + var _h_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[66], _h_, i); + } + function get_int16_ne(s, i){ + var _g_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[68], _g_, i); + } + function get_int16_le(s, i){ + var _f_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[70], _f_, i); + } + function get_int16_be(s, i){ + var _e_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[69], _e_, i); + } + function get_int32_le(s, i){ + var _d_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[73], _d_, i); + } + function get_int32_be(s, i){ + var _c_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[72], _c_, i); + } + function get_int64_le(s, i){ + var _b_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[76], _b_, i); + } + function get_int64_be(s, i){ + var _a_ = caml_call1(bos, s); + return caml_call2(Stdlib_Bytes[75], _a_, i); + } + var + Stdlib_String = + [0, + make, + init, + empty, + of_bytes, + to_bytes, + concat, + cat, + caml_string_equal, + compare, + starts_with, + ends_with, + contains_from, + rcontains_from, + contains, + sub, + split_on_char, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + iter, + iteri, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + index, + index_opt, + rindex, + rindex_opt, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + is_valid_utf_16le, + blit, + copy, + fill, + uppercase, + lowercase, + capitalize, + uncapitalize, + runtime.caml_string_get, + get_int8, + runtime.caml_string_get16, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + runtime.caml_string_get32, + get_int32_be, + get_int32_le, + runtime.caml_string_get64, + get_int64_be, + get_int64_le]; + runtime.caml_register_global(12, Stdlib_String, "Stdlib__String"); + return; + } + (globalThis)); + +//# 5558 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_array_sub = runtime.caml_array_sub, + caml_check_bound = runtime.caml_check_bound, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Assert_failure = global_data.Assert_failure, + Stdlib = global_data.Stdlib, + make_float = runtime.caml_make_float_vect, + Floatarray = [0], + _a_ = [0, "array.ml", 322, 4], + cst_Array_combine = "Array.combine", + cst_Array_exists2 = "Array.exists2", + cst_Array_for_all2 = "Array.for_all2", + cst_Array_map2_arrays_must_hav = + "Array.map2: arrays must have the same length", + cst_Array_iter2_arrays_must_ha = + "Array.iter2: arrays must have the same length", + cst_Array_blit = "Array.blit", + cst_Array_fill = "Array.fill", + cst_Array_sub = "Array.sub", + cst_Array_init = "Array.init", + cst_Stdlib_Array_Bottom = "Stdlib.Array.Bottom"; + function init(l, f){ + if(0 === l) return [0]; + if(0 > l) return caml_call1(Stdlib[1], cst_Array_init); + var res = caml_make_vect(l, caml_call1(f, 0)), _as_ = l - 1 | 0, _ar_ = 1; + if(_as_ >= 1){ + var i = _ar_; + for(;;){ + res[1 + i] = caml_call1(f, i); + var _at_ = i + 1 | 0; + if(_as_ !== i){var i = _at_; continue;} + break; + } + } + return res; + } + function make_matrix(sx, sy, init){ + var res = caml_make_vect(sx, [0]), _ap_ = sx - 1 | 0, _ao_ = 0; + if(_ap_ >= 0){ + var x = _ao_; + for(;;){ + res[1 + x] = caml_make_vect(sy, init); + var _aq_ = x + 1 | 0; + if(_ap_ !== x){var x = _aq_; continue;} + break; + } + } + return res; + } + function copy(a){ + var l = a.length - 1; + return 0 === l ? [0] : caml_array_sub(a, 0, l); + } + function append(a1, a2){ + var l1 = a1.length - 1; + return 0 === l1 + ? copy(a2) + : 0 + === a2.length - 1 + ? caml_array_sub(a1, 0, l1) + : runtime.caml_array_append(a1, a2); + } + function sub(a, ofs, len){ + if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return caml_array_sub(a, ofs, len); + return caml_call1(Stdlib[1], cst_Array_sub); + } + function fill(a, ofs, len, v){ + if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) + return runtime.caml_array_fill(a, ofs, len, v); + return caml_call1(Stdlib[1], cst_Array_fill); + } + function blit(a1, ofs1, a2, ofs2, len){ + if + (0 <= len + && + 0 <= ofs1 + && + (a1.length - 1 - len | 0) >= ofs1 + && 0 <= ofs2 && (a2.length - 1 - len | 0) >= ofs2) + return runtime.caml_array_blit(a1, ofs1, a2, ofs2, len); + return caml_call1(Stdlib[1], cst_Array_blit); + } + function iter(f, a){ + var _am_ = a.length - 1 - 1 | 0, _al_ = 0; + if(_am_ >= 0){ + var i = _al_; + for(;;){ + caml_call1(f, a[1 + i]); + var _an_ = i + 1 | 0; + if(_am_ !== i){var i = _an_; continue;} + break; + } + } + return 0; + } + function iter2(f, a, b){ + if(a.length - 1 !== b.length - 1) + return caml_call1(Stdlib[1], cst_Array_iter2_arrays_must_ha); + var _aj_ = a.length - 1 - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + for(;;){ + caml_call2(f, a[1 + i], b[1 + i]); + var _ak_ = i + 1 | 0; + if(_aj_ !== i){var i = _ak_; continue;} + break; + } + } + return 0; + } + function map(f, a){ + var l = a.length - 1; + if(0 === l) return [0]; + var + r = caml_make_vect(l, caml_call1(f, a[1])), + _ag_ = l - 1 | 0, + _af_ = 1; + if(_ag_ >= 1){ + var i = _af_; + for(;;){ + r[1 + i] = caml_call1(f, a[1 + i]); + var _ah_ = i + 1 | 0; + if(_ag_ !== i){var i = _ah_; continue;} + break; + } + } + return r; + } + function map2(f, a, b){ + var la = a.length - 1, lb = b.length - 1; + if(la !== lb) + return caml_call1(Stdlib[1], cst_Array_map2_arrays_must_hav); + if(0 === la) return [0]; + var + r = caml_make_vect(la, caml_call2(f, a[1], b[1])), + _ad_ = la - 1 | 0, + _ac_ = 1; + if(_ad_ >= 1){ + var i = _ac_; + for(;;){ + r[1 + i] = caml_call2(f, a[1 + i], b[1 + i]); + var _ae_ = i + 1 | 0; + if(_ad_ !== i){var i = _ae_; continue;} + break; + } + } + return r; + } + function iteri(f, a){ + var _aa_ = a.length - 1 - 1 | 0, _$_ = 0; + if(_aa_ >= 0){ + var i = _$_; + for(;;){ + caml_call2(f, i, a[1 + i]); + var _ab_ = i + 1 | 0; + if(_aa_ !== i){var i = _ab_; continue;} + break; + } + } + return 0; + } + function mapi(f, a){ + var l = a.length - 1; + if(0 === l) return [0]; + var + r = caml_make_vect(l, caml_call2(f, 0, a[1])), + _Z_ = l - 1 | 0, + _Y_ = 1; + if(_Z_ >= 1){ + var i = _Y_; + for(;;){ + r[1 + i] = caml_call2(f, i, a[1 + i]); + var ___ = i + 1 | 0; + if(_Z_ !== i){var i = ___; continue;} + break; + } + } + return r; + } + function to_list(a){ + var i$1 = a.length - 1 - 1 | 0, i = i$1, res = 0; + for(;;){ + if(0 > i) return res; + var res$0 = [0, a[1 + i], res], i$0 = i - 1 | 0, i = i$0, res = res$0; + } + } + function list_length(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + t = param$0[2], + accu$1 = accu$0 + 1 | 0, + accu$0 = accu$1, + param$0 = t; + } + } + function of_list(l){ + if(! l) return [0]; + var + tl = l[2], + hd = l[1], + a = caml_make_vect(list_length(0, l), hd), + i = 1, + param = tl; + for(;;){ + if(! param) return a; + var tl$0 = param[2], hd$0 = param[1]; + a[1 + i] = hd$0; + var i$0 = i + 1 | 0, i = i$0, param = tl$0; + } + } + function fold_left(f, x, a){ + var r = [0, x], _W_ = a.length - 1 - 1 | 0, _V_ = 0; + if(_W_ >= 0){ + var i = _V_; + for(;;){ + r[1] = caml_call2(f, r[1], a[1 + i]); + var _X_ = i + 1 | 0; + if(_W_ !== i){var i = _X_; continue;} + break; + } + } + return r[1]; + } + function fold_left_map(f, acc, input_array){ + var len = input_array.length - 1; + if(0 === len) return [0, acc, [0]]; + var + match = caml_call2(f, acc, input_array[1]), + elt = match[2], + acc$0 = match[1], + output_array = caml_make_vect(len, elt), + acc$1 = [0, acc$0], + _T_ = len - 1 | 0, + _S_ = 1; + if(_T_ >= 1){ + var i = _S_; + for(;;){ + var + match$0 = caml_call2(f, acc$1[1], input_array[1 + i]), + elt$0 = match$0[2], + acc$2 = match$0[1]; + acc$1[1] = acc$2; + output_array[1 + i] = elt$0; + var _U_ = i + 1 | 0; + if(_T_ !== i){var i = _U_; continue;} + break; + } + } + return [0, acc$1[1], output_array]; + } + function fold_right(f, a, x){ + var r = [0, x], _Q_ = a.length - 1 - 1 | 0; + if(_Q_ >= 0){ + var i = _Q_; + for(;;){ + r[1] = caml_call2(f, a[1 + i], r[1]); + var _R_ = i - 1 | 0; + if(0 !== i){var i = _R_; continue;} + break; + } + } + return r[1]; + } + function exists(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(caml_call1(p, a[1 + i])) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 1; + if(! caml_call1(p, a[1 + i])) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function for_all2(p, l1, l2){ + var n1 = l1.length - 1, n2 = l2.length - 1; + if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_for_all2); + var i = 0; + for(;;){ + if(i === n1) return 1; + if(! caml_call2(p, l1[1 + i], l2[1 + i])) return 0; + var i$0 = i + 1 | 0, i = i$0; + } + } + function exists2(p, l1, l2){ + var n1 = l1.length - 1, n2 = l2.length - 1; + if(n1 !== n2) return caml_call1(Stdlib[1], cst_Array_exists2); + var i = 0; + for(;;){ + if(i === n1) return 0; + if(caml_call2(p, l1[1 + i], l2[1 + i])) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function mem(x, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(0 === runtime.caml_compare(a[1 + i], x)) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function memq(x, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + if(x === a[1 + i]) return 1; + var i$0 = i + 1 | 0, i = i$0; + } + } + function find_opt(p, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + var x = a[1 + i]; + if(caml_call1(p, x)) return [0, x]; + var i$0 = i + 1 | 0, i = i$0; + } + } + function find_map(f, a){ + var n = a.length - 1, i = 0; + for(;;){ + if(i === n) return 0; + var r = caml_call1(f, a[1 + i]); + if(r) return r; + var i$0 = i + 1 | 0, i = i$0; + } + } + function split(x){ + if(runtime.caml_equal(x, [0])) return [0, [0], [0]]; + var + match = x[1], + b0 = match[2], + a0 = match[1], + n = x.length - 1, + a = caml_make_vect(n, a0), + b = caml_make_vect(n, b0), + _O_ = n - 1 | 0, + _N_ = 1; + if(_O_ >= 1){ + var i = _N_; + for(;;){ + var match$0 = x[1 + i], bi = match$0[2], ai = match$0[1]; + a[1 + i] = ai; + b[1 + i] = bi; + var _P_ = i + 1 | 0; + if(_O_ !== i){var i = _P_; continue;} + break; + } + } + return [0, a, b]; + } + function combine(a, b){ + var na = a.length - 1, nb = b.length - 1; + if(na !== nb) caml_call1(Stdlib[1], cst_Array_combine); + if(0 === na) return [0]; + var x = caml_make_vect(na, [0, a[1], b[1]]), _L_ = na - 1 | 0, _K_ = 1; + if(_L_ >= 1){ + var i = _K_; + for(;;){ + x[1 + i] = [0, a[1 + i], b[1 + i]]; + var _M_ = i + 1 | 0; + if(_L_ !== i){var i = _M_; continue;} + break; + } + } + return x; + } + var Bottom = [248, cst_Stdlib_Array_Bottom, runtime.caml_fresh_oo_id(0)]; + function sort(cmp, a){ + function maxson(l, i){ + var i31 = ((i + i | 0) + i | 0) + 1 | 0, x = [0, i31]; + if((i31 + 2 | 0) < l){ + var _D_ = i31 + 1 | 0, _E_ = caml_check_bound(a, _D_)[1 + _D_]; + if(caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _E_) < 0) + x[1] = i31 + 1 | 0; + var + _F_ = i31 + 2 | 0, + _G_ = caml_check_bound(a, _F_)[1 + _F_], + _H_ = x[1]; + if(caml_call2(cmp, caml_check_bound(a, _H_)[1 + _H_], _G_) < 0) + x[1] = i31 + 2 | 0; + return x[1]; + } + if((i31 + 1 | 0) < l){ + var _I_ = i31 + 1 | 0, _J_ = caml_check_bound(a, _I_)[1 + _I_]; + if(0 > caml_call2(cmp, caml_check_bound(a, i31)[1 + i31], _J_)) + return i31 + 1 | 0; + } + if(i31 < l) return i31; + throw caml_maybe_attach_backtrace([0, Bottom, i], 1); + } + var l = a.length - 1, _x_ = ((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_x_ >= 0){ + var i$6 = _x_; + for(;;){ + var e$1 = caml_check_bound(a, i$6)[1 + i$6]; + try{ + var i = i$6; + for(;;){ + var j = maxson(l, i); + if(0 < caml_call2(cmp, caml_check_bound(a, j)[1 + j], e$1)){ + var _u_ = caml_check_bound(a, j)[1 + j]; + caml_check_bound(a, i)[1 + i] = _u_; + var i = j; + continue; + } + caml_check_bound(a, i)[1 + i] = e$1; + break; + } + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] !== Bottom) throw caml_maybe_attach_backtrace(exn, 0); + var i$0 = exn[2]; + caml_check_bound(a, i$0)[1 + i$0] = e$1; + } + var _C_ = i$6 - 1 | 0; + if(0 !== i$6){var i$6 = _C_; continue;} + break; + } + } + var _y_ = l - 1 | 0; + if(_y_ >= 2){ + var i$4 = _y_; + a: + for(;;){ + var e$0 = caml_check_bound(a, i$4)[1 + i$4]; + a[1 + i$4] = caml_check_bound(a, 0)[1]; + var i$5 = 0; + try{ + var i$1 = i$5; + for(;;){ + var j$0 = maxson(i$4, i$1), _v_ = caml_check_bound(a, j$0)[1 + j$0]; + caml_check_bound(a, i$1)[1 + i$1] = _v_; + var i$1 = j$0; + } + } + catch(exn){ + var exn$0 = caml_wrap_exception(exn); + if(exn$0[1] !== Bottom) throw caml_maybe_attach_backtrace(exn$0, 0); + var i$2 = exn$0[2], i$3 = i$2; + for(;;){ + var father = (i$3 - 1 | 0) / 3 | 0; + if(i$3 === father) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + if(0 <= caml_call2(cmp, caml_check_bound(a, father)[1 + father], e$0)) + caml_check_bound(a, i$3)[1 + i$3] = e$0; + else{ + var _w_ = caml_check_bound(a, father)[1 + father]; + caml_check_bound(a, i$3)[1 + i$3] = _w_; + if(0 < father){var i$3 = father; continue;} + caml_check_bound(a, 0)[1] = e$0; + } + var _B_ = i$4 - 1 | 0; + if(2 !== i$4){var i$4 = _B_; continue a;} + break; + } + } + break; + } + } + var _z_ = 1 < l ? 1 : 0; + if(_z_){ + var e = caml_check_bound(a, 1)[2]; + a[2] = caml_check_bound(a, 0)[1]; + a[1] = e; + var _A_ = 0; + } + else + var _A_ = _z_; + return _A_; + } + function stable_sort(cmp, a){ + function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ + var + src1r = src1ofs + src1len | 0, + src2r = src2ofs + src2len | 0, + s2$1 = caml_check_bound(src2, src2ofs)[1 + src2ofs], + s1$1 = caml_check_bound(a, src1ofs)[1 + src1ofs], + i1 = src1ofs, + s1 = s1$1, + i2 = src2ofs, + s2 = s2$1, + d = dstofs; + for(;;){ + if(0 < caml_call2(cmp, s1, s2)){ + caml_check_bound(dst, d)[1 + d] = s2; + var i2$0 = i2 + 1 | 0; + if(i2$0 >= src2r) return blit(a, i1, dst, d + 1 | 0, src1r - i1 | 0); + var + d$0 = d + 1 | 0, + s2$0 = caml_check_bound(src2, i2$0)[1 + i2$0], + i2 = i2$0, + s2 = s2$0, + d = d$0; + continue; + } + caml_check_bound(dst, d)[1 + d] = s1; + var i1$0 = i1 + 1 | 0; + if(i1$0 >= src1r) return blit(src2, i2, dst, d + 1 | 0, src2r - i2 | 0); + var + d$1 = d + 1 | 0, + s1$0 = caml_check_bound(a, i1$0)[1 + i1$0], + i1 = i1$0, + s1 = s1$0, + d = d$1; + } + } + function isortto(srcofs, dst, dstofs, len){ + var _m_ = len - 1 | 0, _l_ = 0; + if(_m_ >= 0){ + var i = _l_; + a: + for(;;){ + var + _n_ = srcofs + i | 0, + e = caml_check_bound(a, _n_)[1 + _n_], + j = [0, (dstofs + i | 0) - 1 | 0]; + for(;;){ + if(dstofs <= j[1]){ + var _o_ = j[1]; + if(0 < caml_call2(cmp, caml_check_bound(dst, _o_)[1 + _o_], e)){ + var + _p_ = j[1], + _q_ = caml_check_bound(dst, _p_)[1 + _p_], + _r_ = j[1] + 1 | 0; + caml_check_bound(dst, _r_)[1 + _r_] = _q_; + j[1] += -1; + continue; + } + } + var _s_ = j[1] + 1 | 0; + caml_check_bound(dst, _s_)[1 + _s_] = e; + var _t_ = i + 1 | 0; + if(_m_ !== i){var i = _t_; continue a;} + break; + } + break; + } + } + return 0; + } + function sortto(srcofs, dst, dstofs, len){ + if(len <= 5) return isortto(srcofs, dst, dstofs, len); + var l1 = len / 2 | 0, l2 = len - l1 | 0; + sortto(srcofs + l1 | 0, dst, dstofs + l1 | 0, l2); + sortto(srcofs, a, srcofs + l2 | 0, l1); + return merge(srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs); + } + var l = a.length - 1; + if(l <= 5) return isortto(0, a, 0, l); + var + l1 = l / 2 | 0, + l2 = l - l1 | 0, + t = caml_make_vect(l2, caml_check_bound(a, 0)[1]); + sortto(l1, t, 0, l2); + sortto(0, a, l2, l1); + return merge(l2, l1, t, 0, l2, a, 0); + } + function to_seq(a){ + function aux(i, param){ + if(i >= a.length - 1) return 0; + var x = a[1 + i], _j_ = i + 1 | 0; + return [0, x, function(_k_){return aux(_j_, _k_);}]; + } + var _h_ = 0; + return function(_i_){return aux(_h_, _i_);}; + } + function to_seqi(a){ + function aux(i, param){ + if(i >= a.length - 1) return 0; + var x = a[1 + i], _f_ = i + 1 | 0; + return [0, [0, i, x], function(_g_){return aux(_f_, _g_);}]; + } + var _d_ = 0; + return function(_e_){return aux(_d_, _e_);}; + } + function of_seq(i$2){ + var _b_ = 0; + function _c_(acc, x){return [0, x, acc];} + var l = caml_call3(Stdlib_Seq[5], _c_, _b_, i$2); + if(! l) return [0]; + var + tl = l[2], + hd = l[1], + len = list_length(0, l), + a = caml_make_vect(len, hd), + i$1 = len - 2 | 0, + i = i$1, + param = tl; + for(;;){ + if(! param) return a; + var tl$0 = param[2], hd$0 = param[1]; + a[1 + i] = hd$0; + var i$0 = i - 1 | 0, i = i$0, param = tl$0; + } + } + var + Stdlib_Array = + [0, + make_float, + init, + make_matrix, + make_matrix, + append, + runtime.caml_array_concat, + sub, + copy, + fill, + blit, + to_list, + of_list, + iter, + iteri, + map, + mapi, + fold_left, + fold_left_map, + fold_right, + iter2, + map2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find_opt, + find_map, + split, + combine, + sort, + stable_sort, + stable_sort, + to_seq, + to_seqi, + of_seq, + Floatarray]; + runtime.caml_register_global(14, Stdlib_Array, "Stdlib__Array"); + return; + } + (globalThis)); + +//# 6998 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int_compare = runtime.caml_int_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Assert_failure = global_data.Assert_failure, + _b_ = [0, "int32.ml", 69, 6], + zero = 0, + one = 1, + minus_one = -1; + function succ(n){return n + 1 | 0;} + function pred(n){return n - 1 | 0;} + function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} + var min_int = -2147483648, max_int = 2147483647; + function lognot(n){return n ^ -1;} + var _a_ = Stdlib_Sys[9]; + if(32 === _a_) + var + max_int$0 = Stdlib[19], + unsigned_to_int = + function(n){ + if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) + return [0, n]; + return 0; + }; + else{ + if(64 !== _a_) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + var unsigned_to_int = function(n){return [0, n & -1];}; + } + function to_string(n){return runtime.caml_format_int("%d", n);} + function of_string_opt(s){ + try{var _d_ = [0, runtime.caml_int_of_string(s)]; return _d_;} + catch(_e_){ + var _c_ = caml_wrap_exception(_e_); + if(_c_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_c_, 0); + } + } + var compare = caml_int_compare; + function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int_compare(n + 2147483648 | 0, m + 2147483648 | 0); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, 0)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; + return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; + } + function unsigned_rem(n, d){ + return n - caml_mul(unsigned_div(n, d), d) | 0; + } + var + Stdlib_Int32 = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(14, Stdlib_Int32, "Stdlib__Int32"); + return; + } + (globalThis)); + +//# 7090 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int64_compare = runtime.caml_int64_compare, + caml_int64_mul = runtime.caml_int64_mul, + caml_int64_sub = runtime.caml_int64_sub, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + zero = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + one = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + minus_one = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), + min_int = runtime.caml_int64_create_lo_mi_hi(0, 0, 32768), + max_int = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 32767), + Stdlib = global_data.Stdlib, + _d_ = runtime.caml_int64_create_lo_mi_hi(16777215, 16777215, 65535), + _c_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + _b_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0); + function succ(n){return runtime.caml_int64_add(n, _a_);} + function pred(n){return caml_int64_sub(n, _b_);} + function abs(n){ + return caml_greaterequal(n, _c_) ? n : runtime.caml_int64_neg(n); + } + function lognot(n){return runtime.caml_int64_xor(n, _d_);} + var max_int$0 = runtime.caml_int64_of_int32(Stdlib[19]); + function unsigned_to_int(n){ + if + (0 >= caml_int64_compare(zero, n) + && 0 >= caml_int64_compare(n, max_int$0)) + return [0, runtime.caml_int64_to_int32(n)]; + return 0; + } + function to_string(n){return runtime.caml_int64_format("%d", n);} + function of_string_opt(s){ + try{var _f_ = [0, runtime.caml_int64_of_string(s)]; return _f_;} + catch(_g_){ + var _e_ = caml_wrap_exception(_g_); + if(_e_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_e_, 0); + } + } + function compare(x, y){return caml_int64_compare(x, y);} + function equal(x, y){return 0 === caml_int64_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int64_compare + (caml_int64_sub(n, min_int), caml_int64_sub(m, min_int)); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, zero)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var + q = + runtime.caml_int64_shift_left + (runtime.caml_int64_div + (runtime.caml_int64_shift_right_unsigned(n, 1), d), + 1), + r = caml_int64_sub(n, caml_int64_mul(q, d)); + return 0 <= unsigned_compare(r, d) ? succ(q) : q; + } + function unsigned_rem(n, d){ + return caml_int64_sub(n, caml_int64_mul(unsigned_div(n, d), d)); + } + var + Stdlib_Int64 = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(11, Stdlib_Int64, "Stdlib__Int64"); + return; + } + (globalThis)); + +//# 7187 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_greaterequal = runtime.caml_greaterequal, + caml_int_compare = runtime.caml_int_compare, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception, + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + zero = 0, + one = 1, + minus_one = -1; + function succ(n){return n + 1 | 0;} + function pred(n){return n - 1 | 0;} + function abs(n){return caml_greaterequal(n, 0) ? n : - n | 0;} + var + size = Stdlib_Sys[9], + min_int = 1 << (size - 1 | 0), + max_int = min_int - 1 | 0; + function lognot(n){return n ^ -1;} + var max_int$0 = Stdlib[19]; + function unsigned_to_int(n){ + if(0 >= caml_int_compare(0, n) && 0 >= caml_int_compare(n, max_int$0)) + return [0, n]; + return 0; + } + function to_string(n){return runtime.caml_format_int("%d", n);} + function of_string_opt(s){ + try{var _b_ = [0, runtime.caml_int_of_string(s)]; return _b_;} + catch(_c_){ + var _a_ = caml_wrap_exception(_c_); + if(_a_[1] === Stdlib[7]) return 0; + throw caml_maybe_attach_backtrace(_a_, 0); + } + } + var compare = caml_int_compare; + function equal(x, y){return 0 === caml_int_compare(x, y) ? 1 : 0;} + function unsigned_compare(n, m){ + return caml_int_compare(n - min_int | 0, m - min_int | 0); + } + function min(x, y){return runtime.caml_lessequal(x, y) ? x : y;} + function max(x, y){return caml_greaterequal(x, y) ? x : y;} + function unsigned_div(n, d){ + if(runtime.caml_lessthan(d, 0)) + return 0 <= unsigned_compare(n, d) ? one : zero; + var q = runtime.caml_div(n >>> 1 | 0, d) << 1, r = n - caml_mul(q, d) | 0; + return 0 <= unsigned_compare(r, d) ? q + 1 | 0 : q; + } + function unsigned_rem(n, d){ + return n - caml_mul(unsigned_div(n, d), d) | 0; + } + var + Stdlib_Nativeint = + [0, + zero, + one, + minus_one, + unsigned_div, + unsigned_rem, + succ, + pred, + abs, + size, + max_int, + min_int, + lognot, + unsigned_to_int, + of_string_opt, + to_string, + compare, + unsigned_compare, + equal, + min, + max]; + runtime.caml_register_global(12, Stdlib_Nativeint, "Stdlib__Nativeint"); + return; + } + (globalThis)); + +//# 7272 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst = "", + caml_bytes_get = runtime.caml_bytes_get, + caml_check_bound = runtime.caml_check_bound, + caml_create_bytes = runtime.caml_create_bytes, + caml_ml_bytes_length = runtime.caml_ml_bytes_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + dummy_pos = [0, cst, 0, 0, -1], + zero_pos = [0, cst, 1, 0, 0], + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Int = global_data.Stdlib__Int, + cst_Lexing_lex_refill_cannot_g = "Lexing.lex_refill: cannot grow buffer"; + function engine(tbl, state, buf){ + var + result = runtime.caml_lex_engine(tbl, state, buf), + _F_ = 0 <= result ? 1 : 0, + _G_ = _F_ ? buf[12] !== dummy_pos ? 1 : 0 : _F_; + if(_G_){ + buf[11] = buf[12]; + var _H_ = buf[12]; + buf[12] = [0, _H_[1], _H_[2], _H_[3], buf[4] + buf[6] | 0]; + } + return result; + } + function new_engine(tbl, state, buf){ + var + result = runtime.caml_new_lex_engine(tbl, state, buf), + _C_ = 0 <= result ? 1 : 0, + _D_ = _C_ ? buf[12] !== dummy_pos ? 1 : 0 : _C_; + if(_D_){ + buf[11] = buf[12]; + var _E_ = buf[12]; + buf[12] = [0, _E_[1], _E_[2], _E_[3], buf[4] + buf[6] | 0]; + } + return result; + } + function from_function(opt, read_fun){ + if(opt) + var sth = opt[1], with_positions = sth; + else + var with_positions = 1; + var + _o_ = with_positions ? zero_pos : dummy_pos, + _p_ = with_positions ? zero_pos : dummy_pos, + aux_buffer = caml_create_bytes(512), + _q_ = [0], + _r_ = 0, + _s_ = 0, + _t_ = 0, + _u_ = 0, + _v_ = 0, + _w_ = 0, + _x_ = 0, + _y_ = caml_create_bytes(1024); + return [0, + function(lexbuf){ + var + read = + caml_call2 + (read_fun, aux_buffer, caml_ml_bytes_length(aux_buffer)), + n = 0 < read ? read : (lexbuf[9] = 1, 0); + if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)){ + if + (((lexbuf[3] - lexbuf[5] | 0) + n | 0) + <= caml_ml_bytes_length(lexbuf[2])) + caml_call5 + (Stdlib_Bytes[11], + lexbuf[2], + lexbuf[5], + lexbuf[2], + 0, + lexbuf[3] - lexbuf[5] | 0); + else{ + var + newlen = + caml_call2 + (Stdlib_Int[10], + 2 * caml_ml_bytes_length(lexbuf[2]) | 0, + Stdlib_Sys[12]); + if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) + caml_call1(Stdlib[2], cst_Lexing_lex_refill_cannot_g); + var newbuf = caml_create_bytes(newlen); + caml_call5 + (Stdlib_Bytes[11], + lexbuf[2], + lexbuf[5], + newbuf, + 0, + lexbuf[3] - lexbuf[5] | 0); + lexbuf[2] = newbuf; + } + var s = lexbuf[5]; + lexbuf[4] = lexbuf[4] + s | 0; + lexbuf[6] = lexbuf[6] - s | 0; + lexbuf[5] = 0; + lexbuf[7] = lexbuf[7] - s | 0; + lexbuf[3] = lexbuf[3] - s | 0; + var t = lexbuf[10], _A_ = t.length - 1 - 1 | 0, _z_ = 0; + if(_A_ >= 0){ + var i = _z_; + for(;;){ + var v = caml_check_bound(t, i)[1 + i]; + if(0 <= v) caml_check_bound(t, i)[1 + i] = v - s | 0; + var _B_ = i + 1 | 0; + if(_A_ !== i){var i = _B_; continue;} + break; + } + } + } + caml_call5 + (Stdlib_Bytes[11], aux_buffer, 0, lexbuf[2], lexbuf[3], n); + lexbuf[3] = lexbuf[3] + n | 0; + return 0; + }, + _y_, + _x_, + _w_, + _v_, + _u_, + _t_, + _s_, + _r_, + _q_, + _p_, + _o_]; + } + function from_channel(with_positions, ic){ + return from_function + (with_positions, + function(buf, n){return caml_call4(Stdlib[84], ic, buf, 0, n);}); + } + function from_string(opt, s){ + if(opt) + var sth = opt[1], with_positions = sth; + else + var with_positions = 1; + var + _d_ = with_positions ? zero_pos : dummy_pos, + _e_ = with_positions ? zero_pos : dummy_pos, + _f_ = [0], + _g_ = 1, + _h_ = 0, + _i_ = 0, + _j_ = 0, + _k_ = 0, + _l_ = 0, + _m_ = runtime.caml_ml_string_length(s), + _n_ = caml_call1(Stdlib_Bytes[5], s); + return [0, + function(lexbuf){lexbuf[9] = 1; return 0;}, + _n_, + _m_, + _l_, + _k_, + _j_, + _i_, + _h_, + _g_, + _f_, + _e_, + _d_]; + } + function set_position(lexbuf, position){ + lexbuf[12] = [0, lexbuf[12][1], position[2], position[3], position[4]]; + lexbuf[4] = position[4]; + return 0; + } + function set_filename(lexbuf, fname){ + var _c_ = lexbuf[12]; + lexbuf[12] = [0, fname, _c_[2], _c_[3], _c_[4]]; + return 0; + } + function with_positions(lexbuf){return lexbuf[12] !== dummy_pos ? 1 : 0;} + function lexeme(lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len); + } + function sub_lexeme(lexbuf, i1, i2){ + var len = i2 - i1 | 0; + return caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len); + } + function sub_lexeme_opt(lexbuf, i1, i2){ + if(0 > i1) return 0; + var len = i2 - i1 | 0; + return [0, caml_call3(Stdlib_Bytes[8], lexbuf[2], i1, len)]; + } + function sub_lexeme_char(lexbuf, i){return caml_bytes_get(lexbuf[2], i);} + function sub_lexeme_char_opt(lexbuf, i){ + return 0 <= i ? [0, caml_bytes_get(lexbuf[2], i)] : 0; + } + function lexeme_char(lexbuf, i){ + return caml_bytes_get(lexbuf[2], lexbuf[5] + i | 0); + } + function lexeme_start(lexbuf){return lexbuf[11][4];} + function lexeme_end(lexbuf){return lexbuf[12][4];} + function lexeme_start_p(lexbuf){return lexbuf[11];} + function lexeme_end_p(lexbuf){return lexbuf[12];} + function new_line(lexbuf){ + var + lcp = lexbuf[12], + _a_ = lcp !== dummy_pos ? 1 : 0, + _b_ = + _a_ + ? (lexbuf[12] = [0, lcp[1], lcp[2] + 1 | 0, lcp[4], lcp[4]], 0) + : _a_; + return _b_; + } + function flush_input(lb){ + lb[6] = 0; + lb[4] = 0; + var lcp = lb[12]; + if(lcp !== dummy_pos) + lb[12] = [0, lcp[1], zero_pos[2], zero_pos[3], zero_pos[4]]; + lb[3] = 0; + return 0; + } + var + Stdlib_Lexing = + [0, + dummy_pos, + from_channel, + from_string, + from_function, + set_position, + set_filename, + with_positions, + lexeme, + lexeme_char, + lexeme_start, + lexeme_end, + lexeme_start_p, + lexeme_end_p, + new_line, + flush_input, + sub_lexeme, + sub_lexeme_opt, + sub_lexeme_char, + sub_lexeme_char_opt, + engine, + new_engine]; + runtime.caml_register_global(7, Stdlib_Lexing, "Stdlib__Lexing"); + return; + } + (globalThis)); + +//# 7763 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Set_bal$3 = "Set.bal", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_List = global_data.Stdlib__List, + Assert_failure = global_data.Assert_failure, + cst_Set_remove_min_elt = "Set.remove_min_elt", + _a_ = [0, 0, 0, 0], + _b_ = [0, 0, 0], + _c_ = [0, "set.ml", 570, 18], + cst_Set_bal = cst_Set_bal$3, + cst_Set_bal$0 = cst_Set_bal$3, + cst_Set_bal$1 = cst_Set_bal$3, + cst_Set_bal$2 = cst_Set_bal$3, + Stdlib_Set = + [0, + function(Ord){ + function height(param){ + if(! param) return 0; + var h = param[4]; + return h; + } + function create(l, v, r){ + if(l) var h = l[4], hl = h; else var hl = 0; + if(r) var h$0 = r[4], hr = h$0; else var hr = 0; + var _Z_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _Z_]; + } + function bal(l, v, r){ + if(l) var h = l[4], hl = h; else var hl = 0; + if(r) var h$0 = r[4], hr = h$0; else var hr = 0; + if((hr + 2 | 0) < hl){ + if(! l) return caml_call1(Stdlib[1], cst_Set_bal$0); + var lr = l[3], lv = l[2], ll = l[1], _U_ = height(lr); + if(_U_ <= height(ll)) return create(ll, lv, create(lr, v, r)); + if(! lr) return caml_call1(Stdlib[1], cst_Set_bal); + var lrr = lr[3], lrv = lr[2], lrl = lr[1], _V_ = create(lrr, v, r); + return create(create(ll, lv, lrl), lrv, _V_); + } + if((hl + 2 | 0) >= hr){ + var _Y_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, v, r, _Y_]; + } + if(! r) return caml_call1(Stdlib[1], cst_Set_bal$2); + var rr = r[3], rv = r[2], rl = r[1], _W_ = height(rl); + if(_W_ <= height(rr)) return create(create(l, v, rl), rv, rr); + if(! rl) return caml_call1(Stdlib[1], cst_Set_bal$1); + var rlr = rl[3], rlv = rl[2], rll = rl[1], _X_ = create(rlr, rv, rr); + return create(create(l, v, rll), rlv, _X_); + } + function add(x, t){ + if(! t) return [0, 0, x, 0, 1]; + var r = t[3], v = t[2], l = t[1], c = caml_call2(Ord[1], x, v); + if(0 === c) return t; + if(0 <= c){var rr = add(x, r); return r === rr ? t : bal(l, v, rr);} + var ll = add(x, l); + return l === ll ? t : bal(ll, v, r); + } + function singleton(x){return [0, 0, x, 0, 1];} + function add_min_element(x, param){ + if(! param) return singleton(x); + var r = param[3], v = param[2], l = param[1]; + return bal(add_min_element(x, l), v, r); + } + function add_max_element(x, param){ + if(! param) return singleton(x); + var r = param[3], v = param[2], l = param[1]; + return bal(l, v, add_max_element(x, r)); + } + function join(l, v, r){ + if(! l) return add_min_element(v, r); + if(! r) return add_max_element(v, l); + var + rh = r[4], + rr = r[3], + rv = r[2], + rl = r[1], + lh = l[4], + lr = l[3], + lv = l[2], + ll = l[1]; + return (rh + 2 | 0) < lh + ? bal(ll, lv, join(lr, v, r)) + : (lh + + 2 + | 0) + < rh + ? bal(join(l, v, rl), rv, rr) + : create(l, v, r); + } + function min_elt(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var v = param$0[2]; + return v; + } + } + function min_elt_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var v = param$0[2]; + return [0, v]; + } + } + function max_elt(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(param$0[3]){var r = param$0[3], param$0 = r; continue;} + var v = param$0[2]; + return v; + } + } + function max_elt_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + if(param$0[3]){var r = param$0[3], param$0 = r; continue;} + var v = param$0[2]; + return [0, v]; + } + } + function remove_min_elt(param){ + if(! param) return caml_call1(Stdlib[1], cst_Set_remove_min_elt); + var l = param[1]; + if(l){ + var r = param[3], v = param[2]; + return bal(remove_min_elt(l), v, r); + } + var r$0 = param[3]; + return r$0; + } + function concat(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var _T_ = remove_min_elt(t2); + return join(t1, min_elt(t2), _T_); + } + function split(x, param){ + if(! param) return _a_; + var + r = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, l, 1, r]; + if(0 <= c){ + var + match = split(x, r), + rr = match[3], + pres = match[2], + lr = match[1]; + return [0, join(l, v, lr), pres, rr]; + } + var + match$0 = split(x, l), + rl = match$0[3], + pres$0 = match$0[2], + ll = match$0[1]; + return [0, ll, pres$0, join(rl, v, r)]; + } + var empty = 0; + function is_empty(param){return param ? 0 : 1;} + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v), + _S_ = 0 === c ? 1 : 0; + if(_S_) return _S_; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function remove(x, t){ + if(! t) return 0; + var t2 = t[3], v = t[2], t1 = t[1], c = caml_call2(Ord[1], x, v); + if(0 === c){ + if(! t1) return t2; + if(! t2) return t1; + var _R_ = remove_min_elt(t2); + return bal(t1, min_elt(t2), _R_); + } + if(0 <= c){ + var rr = remove(x, t2); + return t2 === rr ? t : bal(t1, v, rr); + } + var ll = remove(x, t1); + return t1 === ll ? t : bal(ll, v, t2); + } + function union(s1, s2){ + if(! s1) return s2; + if(! s2) return s1; + var + h2 = s2[4], + r2 = s2[3], + v2 = s2[2], + l2 = s2[1], + h1 = s1[4], + r1 = s1[3], + v1 = s1[2], + l1 = s1[1]; + if(h2 <= h1){ + if(1 === h2) return add(v2, s1); + var + match = split(v1, s2), + r2$0 = match[3], + l2$0 = match[1], + _P_ = union(r1, r2$0); + return join(union(l1, l2$0), v1, _P_); + } + if(1 === h1) return add(v1, s2); + var + match$0 = split(v2, s1), + r1$0 = match$0[3], + l1$0 = match$0[1], + _Q_ = union(r1$0, r2); + return join(union(l1$0, l2), v2, _Q_); + } + function inter(s1, s2){ + if(! s1) return 0; + if(! s2) return 0; + var + r1 = s1[3], + v1 = s1[2], + l1 = s1[1], + _M_ = split(v1, s2), + l2 = _M_[1]; + if(_M_[2]){ + var r2 = _M_[3], _N_ = inter(r1, r2); + return join(inter(l1, l2), v1, _N_); + } + var r2$0 = _M_[3], _O_ = inter(r1, r2$0); + return concat(inter(l1, l2), _O_); + } + function split_bis(x, param){ + if(! param) return [0, 0, function(param){return 0;}]; + var + r = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return 0; + if(0 <= c){ + var match = split_bis(x, r); + if(! match) return 0; + var rr = match[2], lr = match[1]; + return [0, join(l, v, lr), rr]; + } + var match$0 = split_bis(x, l); + if(! match$0) return 0; + var rl = match$0[2], ll = match$0[1]; + return [0, + ll, + function(param){return join(caml_call1(rl, 0), v, r);}]; + } + function disjoint(s1, s2){ + var s1$0 = s1, s2$0 = s2; + for(;;){ + if(s1$0 && s2$0){ + var r1 = s1$0[3], v1 = s1$0[2], l1 = s1$0[1]; + if(s1$0 === s2$0) return 0; + var match = split_bis(v1, s2$0); + if(! match) return 0; + var r2 = match[2], l2 = match[1], _L_ = disjoint(l1, l2); + if(! _L_) return _L_; + var s2$1 = caml_call1(r2, 0), s1$0 = r1, s2$0 = s2$1; + continue; + } + return 1; + } + } + function diff(s1, s2){ + if(! s1) return 0; + if(! s2) return s1; + var + r1 = s1[3], + v1 = s1[2], + l1 = s1[1], + _I_ = split(v1, s2), + l2 = _I_[1]; + if(_I_[2]){ + var r2 = _I_[3], _J_ = diff(r1, r2); + return concat(diff(l1, l2), _J_); + } + var r2$0 = _I_[3], _K_ = diff(r1, r2$0); + return join(diff(l1, l2), v1, _K_); + } + function cons_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, r, e$0], + s$0 = l, + e$0 = e$1; + } + } + function compare(s1, s2){ + var + e2$2 = cons_enum(s2, 0), + e1$2 = cons_enum(s1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? -1 : 0; + if(! e2) return 1; + var + e2$0 = e2[3], + r2 = e2[2], + v2 = e2[1], + e1$0 = e1[3], + r1 = e1[2], + v1 = e1[1], + c = caml_call2(Ord[1], v1, v2); + if(0 !== c) return c; + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + } + } + function equal(s1, s2){return 0 === compare(s1, s2) ? 1 : 0;} + function subset(s1, s2){ + var s1$0 = s1, s2$0 = s2; + for(;;){ + if(! s1$0) return 1; + if(! s2$0) return 0; + var + r2 = s2$0[3], + v2 = s2$0[2], + l2 = s2$0[1], + r1 = s1$0[3], + v1 = s1$0[2], + l1 = s1$0[1], + c = caml_call2(Ord[1], v1, v2); + if(0 === c){ + var _F_ = subset(l1, l2); + if(! _F_) return _F_; + var s1$0 = r1, s2$0 = r2; + continue; + } + if(0 <= c){ + var _G_ = subset([0, 0, v1, r1, 0], r2); + if(! _G_) return _G_; + var s1$0 = l1; + continue; + } + var _H_ = subset([0, l1, v1, 0, 0], l2); + if(! _H_) return _H_; + var s1$0 = r1; + } + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var r = param$0[3], v = param$0[2], l = param$0[1]; + iter(f, l); + caml_call1(f, v); + var param$0 = r; + } + } + function fold(f, s, accu){ + var s$0 = s, accu$0 = accu; + for(;;){ + if(! s$0) return accu$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + accu$1 = caml_call2(f, v, fold(f, l, accu$0)), + s$0 = r, + accu$0 = accu$1; + } + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + _C_ = caml_call1(p, v); + if(_C_){ + var _D_ = for_all(p, l); + if(_D_){var param$0 = r; continue;} + var _E_ = _D_; + } + else + var _E_ = _C_; + return _E_; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + _z_ = caml_call1(p, v); + if(_z_) + var _A_ = _z_; + else{ + var _B_ = exists(p, l); + if(! _B_){var param$0 = r; continue;} + var _A_ = _B_; + } + return _A_; + } + } + function filter(p, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + l$0 = filter(p, l), + pv = caml_call1(p, v), + r$0 = filter(p, r); + if(! pv) return concat(l$0, r$0); + if(l === l$0 && r === r$0) return t; + return join(l$0, v, r$0); + } + function partition(p, param){ + if(! param) return _b_; + var + r = param[3], + v = param[2], + l = param[1], + match = partition(p, l), + lf = match[2], + lt = match[1], + pv = caml_call1(p, v), + match$0 = partition(p, r), + rf = match$0[2], + rt = match$0[1]; + if(pv){var _x_ = concat(lf, rf); return [0, join(lt, v, rt), _x_];} + var _y_ = join(lf, v, rf); + return [0, concat(lt, rt), _y_]; + } + function cardinal(param){ + if(! param) return 0; + var r = param[3], l = param[1], _w_ = cardinal(r); + return (cardinal(l) + 1 | 0) + _w_ | 0; + } + function elements_aux(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + accu$1 = [0, v, elements_aux(accu$0, r)], + accu$0 = accu$1, + param$0 = l; + } + } + function elements(s){return elements_aux(0, s);} + function find(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return v; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function find_first(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, param = l$0; + for(;;){ + if(! param) return v0; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} + var param = r; + } + } + } + function find_first_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, param = l$0; + for(;;){ + if(! param) return [0, v0]; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = l; continue;} + var param = r; + } + } + } + function find_last(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, param = r$0; + for(;;){ + if(! param) return v0; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} + var param = l; + } + } + } + function find_last_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var r$0 = param$1[3], v0$1 = param$1[2], l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, param = r$0; + for(;;){ + if(! param) return [0, v0]; + var r = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){var v0 = v0$0, param = r; continue;} + var param = l; + } + } + } + function find_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, v]; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function try_join(l, v, r){ + var switch$0 = 0; + if(0 !== l){ + var _v_ = max_elt(l); + if(0 <= caml_call2(Ord[1], _v_, v)) switch$0 = 1; + } + if(! switch$0){ + var switch$1 = 0; + if(0 !== r){ + var _u_ = min_elt(r); + if(0 <= caml_call2(Ord[1], v, _u_)) switch$1 = 1; + } + if(! switch$1) return join(l, v, r); + } + return union(l, add(v, r)); + } + function map(f, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + l$0 = map(f, l), + v$0 = caml_call1(f, v), + r$0 = map(f, r); + if(l === l$0 && v === v$0 && r === r$0) return t; + return try_join(l$0, v$0, r$0); + } + function filter_map(f, t){ + if(! t) return 0; + var + r = t[3], + v = t[2], + l = t[1], + t1 = filter_map(f, l), + v$0 = caml_call1(f, v), + t2 = filter_map(f, r); + if(v$0){ + var v$1 = v$0[1]; + if(l === t1 && v === v$1 && r === t2) return t; + return try_join(t1, v$1, t2); + } + if(! t1) return t2; + if(! t2) return t1; + var _t_ = remove_min_elt(t2); + return try_join(t1, min_elt(t2), _t_); + } + function of_list(l){ + if(! l) return empty; + var _o_ = l[2], x0 = l[1]; + if(! _o_) return singleton(x0); + var _p_ = _o_[2], x1 = _o_[1]; + if(! _p_) return add(x1, singleton(x0)); + var _q_ = _p_[2], x2 = _p_[1]; + if(! _q_) return add(x2, add(x1, singleton(x0))); + var _r_ = _q_[2], x3 = _q_[1]; + if(! _r_) return add(x3, add(x2, add(x1, singleton(x0)))); + if(_r_[2]){ + var + l$0 = caml_call2(Stdlib_List[59], Ord[1], l), + sub = + function(n, l){ + if(3 >= n >>> 0) + switch(n){ + case 0: + return [0, 0, l]; + case 1: + if(l){ + var l$3 = l[2], x0 = l[1]; + return [0, [0, 0, x0, 0, 1], l$3]; + } + break; + case 2: + if(l){ + var match$1 = l[2]; + if(match$1){ + var l$4 = match$1[2], x1 = match$1[1], x0$0 = l[1]; + return [0, [0, [0, 0, x0$0, 0, 1], x1, 0, 2], l$4]; + } + } + break; + default: + if(l){ + var _s_ = l[2]; + if(_s_){ + var match$2 = _s_[2]; + if(match$2){ + var + l$5 = match$2[2], + x2 = match$2[1], + x1$0 = _s_[1], + x0$1 = l[1]; + return [0, + [0, [0, 0, x0$1, 0, 1], x1$0, [0, 0, x2, 0, 1], 2], + l$5]; + } + } + } + } + var + nl = n / 2 | 0, + match = sub(nl, l), + l$0 = match[2], + left = match[1]; + if(! l$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + var + l$1 = l$0[2], + mid = l$0[1], + match$0 = sub((n - nl | 0) - 1 | 0, l$1), + l$2 = match$0[2], + right = match$0[1]; + return [0, create(left, mid, right), l$2]; + }; + return sub(caml_call1(Stdlib_List[1], l$0), l$0)[1]; + } + var x4 = _r_[1]; + return add(x4, add(x3, add(x2, add(x1, singleton(x0))))); + } + function add_seq(i, m){ + function _n_(s, x){return add(x, s);} + return caml_call3(Stdlib_Seq[5], _n_, m, i); + } + function of_seq(i){return add_seq(i, empty);} + function seq_of_enum(c, param){ + if(! c) return 0; + var rest = c[3], t = c[2], x = c[1], _l_ = cons_enum(t, rest); + return [0, x, function(_m_){return seq_of_enum(_l_, _m_);}]; + } + function to_seq(c){ + var _j_ = cons_enum(c, 0); + return function(_k_){return seq_of_enum(_j_, _k_);}; + } + function snoc_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, l, e$0], + s$0 = r, + e$0 = e$1; + } + } + function rev_seq_of_enum(c, param){ + if(! c) return 0; + var rest = c[3], t = c[2], x = c[1], _h_ = snoc_enum(t, rest); + return [0, x, function(_i_){return rev_seq_of_enum(_h_, _i_);}]; + } + function to_rev_seq(c){ + var _f_ = snoc_enum(c, 0); + return function(_g_){return rev_seq_of_enum(_f_, _g_);}; + } + function to_seq_from(low, s){ + var s$0 = s, c = 0; + for(;;){ + if(s$0){ + var + r = s$0[3], + v = s$0[2], + l = s$0[1], + n = caml_call2(Ord[1], v, low); + if(0 !== n){ + if(0 <= n){var c$0 = [0, v, r, c], s$0 = l, c = c$0; continue;} + var s$0 = r; + continue; + } + var _d_ = [0, v, r, c]; + } + else + var _d_ = c; + return function(_e_){return seq_of_enum(_d_, _e_);}; + } + } + return [0, + empty, + is_empty, + mem, + add, + singleton, + remove, + union, + inter, + disjoint, + diff, + compare, + equal, + subset, + iter, + map, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + elements, + min_elt, + min_elt_opt, + max_elt, + max_elt_opt, + min_elt, + min_elt_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + of_list, + to_seq_from, + to_seq, + to_rev_seq, + add_seq, + of_seq]; + }]; + runtime.caml_register_global(12, Stdlib_Set, "Stdlib__Set"); + return; + } + (globalThis)); + +//# 8574 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Map_bal$3 = "Map.bal", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Assert_failure = global_data.Assert_failure, + Stdlib_Seq = global_data.Stdlib__Seq, + cst_Map_remove_min_elt = "Map.remove_min_elt", + _a_ = [0, 0, 0, 0], + _b_ = [0, "map.ml", 400, 10], + _c_ = [0, 0, 0], + cst_Map_bal = cst_Map_bal$3, + cst_Map_bal$0 = cst_Map_bal$3, + cst_Map_bal$1 = cst_Map_bal$3, + cst_Map_bal$2 = cst_Map_bal$3, + Stdlib_Map = + [0, + function(Ord){ + function height(param){ + if(! param) return 0; + var h = param[5]; + return h; + } + function create(l, x, d, r){ + var + hl = height(l), + hr = height(r), + _L_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _L_]; + } + function singleton(x, d){return [0, 0, x, d, 0, 1];} + function bal(l, x, d, r){ + if(l) var h = l[5], hl = h; else var hl = 0; + if(r) var h$0 = r[5], hr = h$0; else var hr = 0; + if((hr + 2 | 0) < hl){ + if(! l) return caml_call1(Stdlib[1], cst_Map_bal$0); + var lr = l[4], ld = l[3], lv = l[2], ll = l[1], _G_ = height(lr); + if(_G_ <= height(ll)) + return create(ll, lv, ld, create(lr, x, d, r)); + if(! lr) return caml_call1(Stdlib[1], cst_Map_bal); + var + lrr = lr[4], + lrd = lr[3], + lrv = lr[2], + lrl = lr[1], + _H_ = create(lrr, x, d, r); + return create(create(ll, lv, ld, lrl), lrv, lrd, _H_); + } + if((hl + 2 | 0) >= hr){ + var _K_ = hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _K_]; + } + if(! r) return caml_call1(Stdlib[1], cst_Map_bal$2); + var rr = r[4], rd = r[3], rv = r[2], rl = r[1], _I_ = height(rl); + if(_I_ <= height(rr)) return create(create(l, x, d, rl), rv, rd, rr); + if(! rl) return caml_call1(Stdlib[1], cst_Map_bal$1); + var + rlr = rl[4], + rld = rl[3], + rlv = rl[2], + rll = rl[1], + _J_ = create(rlr, rv, rd, rr); + return create(create(l, x, d, rll), rlv, rld, _J_); + } + var empty = 0; + function is_empty(param){return param ? 0 : 1;} + function add(x, data, m){ + if(! m) return [0, 0, x, data, 0, 1]; + var + h = m[5], + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return d === data ? m : [0, l, x, data, r, h]; + if(0 <= c){ + var rr = add(x, data, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = add(x, data, l); + return l === ll ? m : bal(ll, v, d, r); + } + function find(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return d; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function find_first(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, d0 = d0$1, param = l$0; + for(;;){ + if(! param) return [0, v0, d0]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = l; + continue; + } + var param = r; + } + } + } + function find_first_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = r$0; continue;} + var v0 = v0$1, d0 = d0$1, param = l$0; + for(;;){ + if(! param) return [0, [0, v0, d0]]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = l; + continue; + } + var param = r; + } + } + } + function find_last(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, d0 = d0$1, param = r$0; + for(;;){ + if(! param) return [0, v0, d0]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = r; + continue; + } + var param = l; + } + } + } + function find_last_opt(f, param$0){ + var param$1 = param$0; + for(;;){ + if(! param$1) return 0; + var + r$0 = param$1[4], + d0$1 = param$1[3], + v0$1 = param$1[2], + l$0 = param$1[1]; + if(! caml_call1(f, v0$1)){var param$1 = l$0; continue;} + var v0 = v0$1, d0 = d0$1, param = r$0; + for(;;){ + if(! param) return [0, [0, v0, d0]]; + var r = param[4], d0$0 = param[3], v0$0 = param[2], l = param[1]; + if(caml_call1(f, v0$0)){ + var v0 = v0$0, d0 = d0$0, param = r; + continue; + } + var param = l; + } + } + } + function find_opt(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, d]; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function mem(x, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + v = param$0[2], + l = param$0[1], + c = caml_call2(Ord[1], x, v), + _F_ = 0 === c ? 1 : 0; + if(_F_) return _F_; + var r$0 = 0 <= c ? r : l, param$0 = r$0; + } + } + function min_binding(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var d = param$0[3], v = param$0[2]; + return [0, v, d]; + } + } + function min_binding_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[1]; + if(l){var param$0 = l; continue;} + var d = param$0[3], v = param$0[2]; + return [0, [0, v, d]]; + } + } + function max_binding(param){ + var param$0 = param; + for(;;){ + if(! param$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(param$0[4]){var r = param$0[4], param$0 = r; continue;} + var d = param$0[3], v = param$0[2]; + return [0, v, d]; + } + } + function max_binding_opt(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + if(param$0[4]){var r = param$0[4], param$0 = r; continue;} + var d = param$0[3], v = param$0[2]; + return [0, [0, v, d]]; + } + } + function remove_min_binding(param){ + if(! param) return caml_call1(Stdlib[1], cst_Map_remove_min_elt); + var l = param[1]; + if(l){ + var r = param[4], d = param[3], v = param[2]; + return bal(remove_min_binding(l), v, d, r); + } + var r$0 = param[4]; + return r$0; + } + function _d_(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var match = min_binding(t2), d = match[2], x = match[1]; + return bal(t1, x, d, remove_min_binding(t2)); + } + function remove(x, m){ + if(! m) return 0; + var + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return _d_(l, r); + if(0 <= c){ + var rr = remove(x, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = remove(x, l); + return l === ll ? m : bal(ll, v, d, r); + } + function update(x, f, m){ + if(! m){ + var match$0 = caml_call1(f, 0); + if(! match$0) return 0; + var data$0 = match$0[1]; + return [0, 0, x, data$0, 0, 1]; + } + var + h = m[5], + r = m[4], + d = m[3], + v = m[2], + l = m[1], + c = caml_call2(Ord[1], x, v); + if(0 === c){ + var match = caml_call1(f, [0, d]); + if(! match) return _d_(l, r); + var data = match[1]; + return d === data ? m : [0, l, x, data, r, h]; + } + if(0 <= c){ + var rr = update(x, f, r); + return r === rr ? m : bal(l, v, d, rr); + } + var ll = update(x, f, l); + return l === ll ? m : bal(ll, v, d, r); + } + function iter(f, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var r = param$0[4], d = param$0[3], v = param$0[2], l = param$0[1]; + iter(f, l); + caml_call2(f, v, d); + var param$0 = r; + } + } + function map(f, param){ + if(! param) return 0; + var + h = param[5], + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = map(f, l), + d$0 = caml_call1(f, d), + r$0 = map(f, r); + return [0, l$0, v, d$0, r$0, h]; + } + function mapi(f, param){ + if(! param) return 0; + var + h = param[5], + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = mapi(f, l), + d$0 = caml_call2(f, v, d), + r$0 = mapi(f, r); + return [0, l$0, v, d$0, r$0, h]; + } + function fold(f, m, accu){ + var m$0 = m, accu$0 = accu; + for(;;){ + if(! m$0) return accu$0; + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + accu$1 = caml_call3(f, v, d, fold(f, l, accu$0)), + m$0 = r, + accu$0 = accu$1; + } + } + function for_all(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 1; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + _C_ = caml_call2(p, v, d); + if(_C_){ + var _D_ = for_all(p, l); + if(_D_){var param$0 = r; continue;} + var _E_ = _D_; + } + else + var _E_ = _C_; + return _E_; + } + } + function exists(p, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + _z_ = caml_call2(p, v, d); + if(_z_) + var _A_ = _z_; + else{ + var _B_ = exists(p, l); + if(! _B_){var param$0 = r; continue;} + var _A_ = _B_; + } + return _A_; + } + } + function add_min_binding(k, x, param){ + if(! param) return singleton(k, x); + var r = param[4], d = param[3], v = param[2], l = param[1]; + return bal(add_min_binding(k, x, l), v, d, r); + } + function add_max_binding(k, x, param){ + if(! param) return singleton(k, x); + var r = param[4], d = param[3], v = param[2], l = param[1]; + return bal(l, v, d, add_max_binding(k, x, r)); + } + function join(l, v, d, r){ + if(! l) return add_min_binding(v, d, r); + if(! r) return add_max_binding(v, d, l); + var + rh = r[5], + rr = r[4], + rd = r[3], + rv = r[2], + rl = r[1], + lh = l[5], + lr = l[4], + ld = l[3], + lv = l[2], + ll = l[1]; + return (rh + 2 | 0) < lh + ? bal(ll, lv, ld, join(lr, v, d, r)) + : (lh + + 2 + | 0) + < rh + ? bal(join(l, v, d, rl), rv, rd, rr) + : create(l, v, d, r); + } + function concat(t1, t2){ + if(! t1) return t2; + if(! t2) return t1; + var match = min_binding(t2), d = match[2], x = match[1]; + return join(t1, x, d, remove_min_binding(t2)); + } + function concat_or_join(t1, v, d, t2){ + if(! d) return concat(t1, t2); + var d$0 = d[1]; + return join(t1, v, d$0, t2); + } + function split(x, param){ + if(! param) return _a_; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + c = caml_call2(Ord[1], x, v); + if(0 === c) return [0, l, [0, d], r]; + if(0 <= c){ + var + match = split(x, r), + rr = match[3], + pres = match[2], + lr = match[1]; + return [0, join(l, v, d, lr), pres, rr]; + } + var + match$0 = split(x, l), + rl = match$0[3], + pres$0 = match$0[2], + ll = match$0[1]; + return [0, ll, pres$0, join(rl, v, d, r)]; + } + function merge(f, s1, s2){ + if(s1){ + var h1 = s1[5], r1 = s1[4], d1 = s1[3], v1 = s1[2], l1 = s1[1]; + if(height(s2) <= h1){ + var + match = split(v1, s2), + r2 = match[3], + d2 = match[2], + l2 = match[1], + _v_ = merge(f, r1, r2), + _w_ = caml_call3(f, v1, [0, d1], d2); + return concat_or_join(merge(f, l1, l2), v1, _w_, _v_); + } + } + else if(! s2) return 0; + if(! s2) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + var + r2$0 = s2[4], + d2$0 = s2[3], + v2 = s2[2], + l2$0 = s2[1], + match$0 = split(v2, s1), + r1$0 = match$0[3], + d1$0 = match$0[2], + l1$0 = match$0[1], + _x_ = merge(f, r1$0, r2$0), + _y_ = caml_call3(f, v2, d1$0, [0, d2$0]); + return concat_or_join(merge(f, l1$0, l2$0), v2, _y_, _x_); + } + function union(f, s1, s2){ + if(s1){ + if(s2){ + var + h2 = s2[5], + r2 = s2[4], + d2 = s2[3], + v2 = s2[2], + l2 = s2[1], + h1 = s1[5], + r1 = s1[4], + d1 = s1[3], + v1 = s1[2], + l1 = s1[1]; + if(h2 <= h1){ + var + match = split(v1, s2), + r2$0 = match[3], + d2$0 = match[2], + l2$0 = match[1], + l = union(f, l1, l2$0), + r = union(f, r1, r2$0); + if(! d2$0) return join(l, v1, d1, r); + var d2$1 = d2$0[1]; + return concat_or_join(l, v1, caml_call3(f, v1, d1, d2$1), r); + } + var + match$0 = split(v2, s1), + r1$0 = match$0[3], + d1$0 = match$0[2], + l1$0 = match$0[1], + l$0 = union(f, l1$0, l2), + r$0 = union(f, r1$0, r2); + if(! d1$0) return join(l$0, v2, d2, r$0); + var d1$1 = d1$0[1]; + return concat_or_join(l$0, v2, caml_call3(f, v2, d1$1, d2), r$0); + } + var s = s1; + } + else + var s = s2; + return s; + } + function filter(p, m){ + if(! m) return 0; + var + r = m[4], + d = m[3], + v = m[2], + l = m[1], + l$0 = filter(p, l), + pvd = caml_call2(p, v, d), + r$0 = filter(p, r); + if(! pvd) return concat(l$0, r$0); + if(l === l$0 && r === r$0) return m; + return join(l$0, v, d, r$0); + } + function filter_map(f, param){ + if(! param) return 0; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + l$0 = filter_map(f, l), + fvd = caml_call2(f, v, d), + r$0 = filter_map(f, r); + if(! fvd) return concat(l$0, r$0); + var d$0 = fvd[1]; + return join(l$0, v, d$0, r$0); + } + function partition(p, param){ + if(! param) return _c_; + var + r = param[4], + d = param[3], + v = param[2], + l = param[1], + match = partition(p, l), + lf = match[2], + lt = match[1], + pvd = caml_call2(p, v, d), + match$0 = partition(p, r), + rf = match$0[2], + rt = match$0[1]; + if(pvd){ + var _t_ = concat(lf, rf); + return [0, join(lt, v, d, rt), _t_]; + } + var _u_ = join(lf, v, d, rf); + return [0, concat(lt, rt), _u_]; + } + function cons_enum(m, e){ + var m$0 = m, e$0 = e; + for(;;){ + if(! m$0) return e$0; + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + e$1 = [0, v, d, r, e$0], + m$0 = l, + e$0 = e$1; + } + } + function compare(cmp, m1, m2){ + var + e2$2 = cons_enum(m2, 0), + e1$2 = cons_enum(m1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? -1 : 0; + if(! e2) return 1; + var + e2$0 = e2[4], + r2 = e2[3], + d2 = e2[2], + v2 = e2[1], + e1$0 = e1[4], + r1 = e1[3], + d1 = e1[2], + v1 = e1[1], + c = caml_call2(Ord[1], v1, v2); + if(0 !== c) return c; + var c$0 = caml_call2(cmp, d1, d2); + if(0 !== c$0) return c$0; + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + } + } + function equal(cmp, m1, m2){ + var + e2$2 = cons_enum(m2, 0), + e1$2 = cons_enum(m1, 0), + e1 = e1$2, + e2 = e2$2; + for(;;){ + if(! e1) return e2 ? 0 : 1; + if(! e2) return 0; + var + e2$0 = e2[4], + r2 = e2[3], + d2 = e2[2], + v2 = e2[1], + e1$0 = e1[4], + r1 = e1[3], + d1 = e1[2], + v1 = e1[1], + _q_ = 0 === caml_call2(Ord[1], v1, v2) ? 1 : 0; + if(_q_){ + var _r_ = caml_call2(cmp, d1, d2); + if(_r_){ + var + e2$1 = cons_enum(r2, e2$0), + e1$1 = cons_enum(r1, e1$0), + e1 = e1$1, + e2 = e2$1; + continue; + } + var _s_ = _r_; + } + else + var _s_ = _q_; + return _s_; + } + } + function cardinal(param){ + if(! param) return 0; + var r = param[4], l = param[1], _p_ = cardinal(r); + return (cardinal(l) + 1 | 0) + _p_ | 0; + } + function bindings_aux(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + r = param$0[4], + d = param$0[3], + v = param$0[2], + l = param$0[1], + accu$1 = [0, [0, v, d], bindings_aux(accu$0, r)], + accu$0 = accu$1, + param$0 = l; + } + } + function bindings(s){return bindings_aux(0, s);} + function add_seq(i, m){ + function _o_(m, param){ + var v = param[2], k = param[1]; + return add(k, v, m); + } + return caml_call3(Stdlib_Seq[5], _o_, m, i); + } + function of_seq(i){return add_seq(i, empty);} + function seq_of_enum(c, param){ + if(! c) return 0; + var + rest = c[4], + t = c[3], + v = c[2], + k = c[1], + _m_ = cons_enum(t, rest); + return [0, [0, k, v], function(_n_){return seq_of_enum(_m_, _n_);}]; + } + function to_seq(m){ + var _k_ = cons_enum(m, 0); + return function(_l_){return seq_of_enum(_k_, _l_);}; + } + function snoc_enum(s, e){ + var s$0 = s, e$0 = e; + for(;;){ + if(! s$0) return e$0; + var + r = s$0[4], + d = s$0[3], + v = s$0[2], + l = s$0[1], + e$1 = [0, v, d, l, e$0], + s$0 = r, + e$0 = e$1; + } + } + function rev_seq_of_enum(c, param){ + if(! c) return 0; + var + rest = c[4], + t = c[3], + v = c[2], + k = c[1], + _i_ = snoc_enum(t, rest); + return [0, + [0, k, v], + function(_j_){return rev_seq_of_enum(_i_, _j_);}]; + } + function to_rev_seq(c){ + var _g_ = snoc_enum(c, 0); + return function(_h_){return rev_seq_of_enum(_g_, _h_);}; + } + function to_seq_from(low, m){ + var m$0 = m, c = 0; + for(;;){ + if(m$0){ + var + r = m$0[4], + d = m$0[3], + v = m$0[2], + l = m$0[1], + n = caml_call2(Ord[1], v, low); + if(0 !== n){ + if(0 <= n){var c$0 = [0, v, d, r, c], m$0 = l, c = c$0; continue;} + var m$0 = r; + continue; + } + var _e_ = [0, v, d, r, c]; + } + else + var _e_ = c; + return function(_f_){return seq_of_enum(_e_, _f_);}; + } + } + return [0, + empty, + is_empty, + mem, + add, + update, + singleton, + remove, + merge, + union, + compare, + equal, + iter, + fold, + for_all, + exists, + filter, + filter_map, + partition, + cardinal, + bindings, + min_binding, + min_binding_opt, + max_binding, + max_binding_opt, + min_binding, + min_binding_opt, + split, + find, + find_opt, + find_first, + find_first_opt, + find_last, + find_last_opt, + map, + mapi, + to_seq, + to_rev_seq, + to_seq_from, + add_seq, + of_seq]; + }]; + runtime.caml_register_global(11, Stdlib_Map, "Stdlib__Map"); + return; + } + (globalThis)); + +//# 9406 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_List = global_data.Stdlib__List, + Empty = [248, "Stdlib.Stack.Empty", runtime.caml_fresh_oo_id(0)]; + function create(param){return [0, 0, 0];} + function clear(s){s[1] = 0; s[2] = 0; return 0;} + function copy(s){return [0, s[1], s[2]];} + function push(x, s){s[1] = [0, x, s[1]]; s[2] = s[2] + 1 | 0; return 0;} + function pop(s){ + var match = s[1]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var tl = match[2], hd = match[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return hd; + } + function pop_opt(s){ + var match = s[1]; + if(! match) return 0; + var tl = match[2], hd = match[1]; + s[1] = tl; + s[2] = s[2] - 1 | 0; + return [0, hd]; + } + function top(s){ + var match = s[1]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var hd = match[1]; + return hd; + } + function top_opt(s){ + var match = s[1]; + if(! match) return 0; + var hd = match[1]; + return [0, hd]; + } + function is_empty(s){return 0 === s[1] ? 1 : 0;} + function length(s){return s[2];} + function iter(f, s){return caml_call2(Stdlib_List[17], f, s[1]);} + function fold(f, acc, s){return caml_call3(Stdlib_List[25], f, acc, s[1]);} + function to_seq(s){return caml_call1(Stdlib_List[61], s[1]);} + function add_seq(q, i){ + function _a_(x){return push(x, q);} + return caml_call2(Stdlib_Seq[4], _a_, i); + } + function of_seq(g){var s = create(0); add_seq(s, g); return s;} + var + Stdlib_Stack = + [0, + Empty, + create, + push, + pop, + pop_opt, + top, + top_opt, + clear, + copy, + is_empty, + length, + iter, + fold, + to_seq, + add_seq, + of_seq]; + runtime.caml_register_global(3, Stdlib_Stack, "Stdlib__Stack"); + return; + } + (globalThis)); + +//# 9500 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Seq = global_data.Stdlib__Seq, + Empty = [248, "Stdlib.Queue.Empty", runtime.caml_fresh_oo_id(0)]; + function create(param){return [0, 0, 0, 0];} + function clear(q){q[1] = 0; q[2] = 0; q[3] = 0; return 0;} + function add(x, q){ + var cell = [0, x, 0], match = q[3]; + return match + ? (q[1] = q[1] + 1 | 0, match[2] = cell, q[3] = cell, 0) + : (q[1] = 1, q[2] = cell, q[3] = cell, 0); + } + function peek(q){ + var match = q[2]; + if(! match) throw caml_maybe_attach_backtrace(Empty, 1); + var content = match[1]; + return content; + } + function peek_opt(q){ + var match = q[2]; + if(! match) return 0; + var content = match[1]; + return [0, content]; + } + function take(q){ + var _g_ = q[2]; + if(! _g_) throw caml_maybe_attach_backtrace(Empty, 1); + var content = _g_[1]; + if(_g_[2]){ + var next = _g_[2]; + q[1] = q[1] - 1 | 0; + q[2] = next; + return content; + } + clear(q); + return content; + } + function take_opt(q){ + var _f_ = q[2]; + if(! _f_) return 0; + var content = _f_[1]; + if(_f_[2]){ + var next = _f_[2]; + q[1] = q[1] - 1 | 0; + q[2] = next; + return [0, content]; + } + clear(q); + return [0, content]; + } + function copy(q){ + var cell$0 = q[2], q_res = [0, q[1], 0, 0], prev = 0, cell = cell$0; + for(;;){ + if(! cell){q_res[3] = prev; return q_res;} + var content = cell[1], next = cell[2], prev$0 = [0, content, 0]; + if(prev) prev[2] = prev$0; else q_res[2] = prev$0; + var prev = prev$0, cell = next; + } + } + function is_empty(q){return 0 === q[1] ? 1 : 0;} + function length(q){return q[1];} + function iter(f, q){ + var cell$0 = q[2], cell = cell$0; + for(;;){ + if(! cell) return 0; + var content = cell[1], next = cell[2]; + caml_call1(f, content); + var cell = next; + } + } + function fold(f, accu$1, q){ + var cell$0 = q[2], accu = accu$1, cell = cell$0; + for(;;){ + if(! cell) return accu; + var + content = cell[1], + next = cell[2], + accu$0 = caml_call2(f, accu, content), + accu = accu$0, + cell = next; + } + } + function transfer(q1, q2){ + var _e_ = 0 < q1[1] ? 1 : 0; + if(! _e_) return _e_; + var match = q2[3]; + return match + ? (q2 + [1] + = q2[1] + q1[1] | 0, + match[2] = q1[2], + q2[3] = q1[3], + clear(q1)) + : (q2[1] = q1[1], q2[2] = q1[2], q2[3] = q1[3], clear(q1)); + } + function to_seq(q){ + function aux(c, param){ + if(! c) return 0; + var x = c[1], next = c[2]; + return [0, x, function(_d_){return aux(next, _d_);}]; + } + var _b_ = q[2]; + return function(_c_){return aux(_b_, _c_);}; + } + function add_seq(q, i){ + function _a_(x){return add(x, q);} + return caml_call2(Stdlib_Seq[4], _a_, i); + } + function of_seq(g){var q = create(0); add_seq(q, g); return q;} + var + Stdlib_Queue = + [0, + Empty, + create, + add, + add, + take, + take_opt, + take, + peek, + peek_opt, + peek, + clear, + copy, + is_empty, + length, + iter, + fold, + transfer, + to_seq, + add_seq, + of_seq]; + runtime.caml_register_global(2, Stdlib_Queue, "Stdlib__Queue"); + return; + } + (globalThis)); + +//# 10021 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_buffer_ml = "buffer.ml", + caml_blit_string = runtime.caml_blit_string, + caml_bswap16 = runtime.caml_bswap16, + caml_bytes_unsafe_get = runtime.caml_bytes_unsafe_get, + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_int32_bswap = runtime.caml_int32_bswap, + caml_int64_bswap = runtime.caml_int64_bswap, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_bytes_length = runtime.caml_ml_bytes_length, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_get = runtime.caml_string_get; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Assert_failure = global_data.Assert_failure, + cst_Buffer_truncate = "Buffer.truncate", + _d_ = [0, cst_buffer_ml, 231, 9], + cst_Buffer_add_channel = "Buffer.add_channel", + _c_ = [0, cst_buffer_ml, 212, 2], + cst_Buffer_add_substring_add_s = "Buffer.add_substring/add_subbytes", + cst_Buffer_add_cannot_grow_buf = "Buffer.add: cannot grow buffer", + _b_ = [0, cst_buffer_ml, 93, 2], + _a_ = [0, cst_buffer_ml, 94, 2], + cst_Buffer_nth = "Buffer.nth", + cst_Buffer_blit = "Buffer.blit", + cst_Buffer_sub = "Buffer.sub"; + function create(n){ + var + n$0 = 1 <= n ? n : 1, + n$1 = Stdlib_Sys[12] < n$0 ? Stdlib_Sys[12] : n$0, + s = caml_create_bytes(n$1); + return [0, s, 0, n$1, s]; + } + function contents(b){return caml_call3(Stdlib_Bytes[8], b[1], 0, b[2]);} + function to_bytes(b){return caml_call3(Stdlib_Bytes[7], b[1], 0, b[2]);} + function sub(b, ofs, len){ + if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) + return caml_call3(Stdlib_Bytes[8], b[1], ofs, len); + return caml_call1(Stdlib[1], cst_Buffer_sub); + } + function blit(src, srcoff, dst, dstoff, len){ + if + (0 <= len + && + 0 <= srcoff + && + (src[2] - len | 0) >= srcoff + && 0 <= dstoff && (caml_ml_bytes_length(dst) - len | 0) >= dstoff) + return runtime.caml_blit_bytes(src[1], srcoff, dst, dstoff, len); + return caml_call1(Stdlib[1], cst_Buffer_blit); + } + function nth(b, ofs){ + if(0 <= ofs && b[2] > ofs) return caml_bytes_unsafe_get(b[1], ofs); + return caml_call1(Stdlib[1], cst_Buffer_nth); + } + function length(b){return b[2];} + function clear(b){b[2] = 0; return 0;} + function reset(b){ + b[2] = 0; + b[1] = b[4]; + b[3] = caml_ml_bytes_length(b[1]); + return 0; + } + function resize(b, more){ + var old_pos = b[2], old_len = b[3], new_len = [0, old_len]; + for(;;){ + if(new_len[1] < (old_pos + more | 0)){ + new_len[1] = 2 * new_len[1] | 0; + continue; + } + if(Stdlib_Sys[12] < new_len[1]) + if((old_pos + more | 0) <= Stdlib_Sys[12]) + new_len[1] = Stdlib_Sys[12]; + else + caml_call1(Stdlib[2], cst_Buffer_add_cannot_grow_buf); + var new_buffer = caml_create_bytes(new_len[1]); + caml_call5(Stdlib_Bytes[11], b[1], 0, new_buffer, 0, b[2]); + b[1] = new_buffer; + b[3] = new_len[1]; + if((b[2] + more | 0) > b[3]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + if((old_pos + more | 0) <= b[3]) return 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + } + } + function add_char(b, c){ + var pos = b[2]; + if(b[3] <= pos) resize(b, 1); + caml_bytes_unsafe_set(b[1], pos, c); + b[2] = pos + 1 | 0; + return 0; + } + var uchar_utf_8_byte_length_max = 4, uchar_utf_16_byte_length_max = 4; + function add_utf_8_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_8_byte_length_max); + var n = caml_call3(Stdlib_Bytes[55], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_8_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_utf_16be_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); + var n = caml_call3(Stdlib_Bytes[58], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_utf_16le_uchar(b, u){ + for(;;){ + var pos = b[2]; + if(b[3] <= pos) resize(b, uchar_utf_16_byte_length_max); + var n = caml_call3(Stdlib_Bytes[61], b[1], pos, u); + if(0 === n){resize(b, uchar_utf_16_byte_length_max); continue;} + b[2] = pos + n | 0; + return 0; + } + } + function add_substring(b, s, offset, len){ + var _u_ = offset < 0 ? 1 : 0; + if(_u_) + var _v_ = _u_; + else + var + _w_ = len < 0 ? 1 : 0, + _v_ = _w_ || ((caml_ml_string_length(s) - len | 0) < offset ? 1 : 0); + if(_v_) caml_call1(Stdlib[1], cst_Buffer_add_substring_add_s); + var new_position = b[2] + len | 0; + if(b[3] < new_position) resize(b, len); + caml_blit_string(s, offset, b[1], b[2], len); + b[2] = new_position; + return 0; + } + function add_subbytes(b, s, offset, len){ + return add_substring(b, caml_call1(Stdlib_Bytes[48], s), offset, len); + } + function add_string(b, s){ + var len = caml_ml_string_length(s), new_position = b[2] + len | 0; + if(b[3] < new_position) resize(b, len); + caml_blit_string(s, 0, b[1], b[2], len); + b[2] = new_position; + return 0; + } + function add_bytes(b, s){ + return add_string(b, caml_call1(Stdlib_Bytes[48], s)); + } + function add_buffer(b, bs){return add_subbytes(b, bs[1], 0, bs[2]);} + function add_channel(b, ic, to_read$1){ + var + _s_ = to_read$1 < 0 ? 1 : 0, + _t_ = _s_ || (Stdlib_Sys[12] < to_read$1 ? 1 : 0); + if(_t_) caml_call1(Stdlib[1], cst_Buffer_add_channel); + if(b[3] < (b[2] + to_read$1 | 0)) resize(b, to_read$1); + var + ofs$1 = b[2], + buf = b[1], + already_read = 0, + ofs = ofs$1, + to_read = to_read$1; + for(;;){ + if(0 !== to_read){ + var r = caml_call4(Stdlib[84], ic, buf, ofs, to_read); + if(0 !== r){ + var + already_read$0 = already_read + r | 0, + ofs$0 = ofs + r | 0, + to_read$0 = to_read - r | 0, + already_read = already_read$0, + ofs = ofs$0, + to_read = to_read$0; + continue; + } + } + if((b[2] + already_read | 0) > b[3]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + b[2] = b[2] + already_read | 0; + if(already_read < to_read$1) + throw caml_maybe_attach_backtrace(Stdlib[12], 1); + return 0; + } + } + function output_buffer(oc, b){ + return caml_call4(Stdlib[68], oc, b[1], 0, b[2]); + } + function add_substitute(b, f, s){ + var lim$1 = caml_ml_string_length(s), previous = 32, i$4 = 0; + for(;;){ + if(i$4 >= lim$1){ + var _r_ = 92 === previous ? 1 : 0; + return _r_ ? add_char(b, previous) : _r_; + } + var previous$0 = caml_string_get(s, i$4); + if(36 !== previous$0){ + if(92 === previous){ + add_char(b, 92); + add_char(b, previous$0); + var i$6 = i$4 + 1 | 0, previous = 32, i$4 = i$6; + continue; + } + if(92 === previous$0){ + var i$7 = i$4 + 1 | 0, previous = previous$0, i$4 = i$7; + continue; + } + add_char(b, previous$0); + var i$8 = i$4 + 1 | 0, previous = previous$0, i$4 = i$8; + continue; + } + if(92 === previous){ + add_char(b, previous$0); + var i$5 = i$4 + 1 | 0, previous = 32, i$4 = i$5; + continue; + } + var start$0 = i$4 + 1 | 0; + if(lim$1 <= start$0) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var opening = caml_string_get(s, start$0), switch$0 = 0; + if(40 !== opening && 123 !== opening){ + var + start = start$0 + 1 | 0, + lim$0 = caml_ml_string_length(s), + i$2 = start; + for(;;){ + if(lim$0 <= i$2) + var stop$0 = lim$0; + else{ + var match = caml_string_get(s, i$2), switch$1 = 0; + if(91 <= match){ + if(97 <= match){ + if(123 > match) switch$1 = 1; + } + else if(95 === match) switch$1 = 1; + } + else + if(58 <= match){ + if(65 <= match) switch$1 = 1; + } + else if(48 <= match) switch$1 = 1; + if(switch$1){var i$3 = i$2 + 1 | 0, i$2 = i$3; continue;} + var stop$0 = i$2; + } + var + match$0 = + [0, + caml_call3(Stdlib_String[15], s, start$0, stop$0 - start$0 | 0), + stop$0]; + switch$0 = 1; + break; + } + } + if(! switch$0){ + var new_start = start$0 + 1 | 0, k$2 = 0; + if(40 === opening) + var closing = 41; + else{ + if(123 !== opening) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + var closing = 125; + } + var lim = caml_ml_string_length(s), k = k$2, stop = new_start; + for(;;){ + if(lim <= stop) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(caml_string_get(s, stop) === opening){ + var i = stop + 1 | 0, k$0 = k + 1 | 0, k = k$0, stop = i; + continue; + } + if(caml_string_get(s, stop) !== closing){ + var i$1 = stop + 1 | 0, stop = i$1; + continue; + } + if(0 !== k){ + var i$0 = stop + 1 | 0, k$1 = k - 1 | 0, k = k$1, stop = i$0; + continue; + } + var + match$0 = + [0, + caml_call3 + (Stdlib_String[15], s, new_start, (stop - start$0 | 0) - 1 | 0), + stop + 1 | 0]; + break; + } + } + var next_i = match$0[2], ident = match$0[1]; + add_string(b, caml_call1(f, ident)); + var previous = 32, i$4 = next_i; + } + } + function truncate(b, len){ + if(0 <= len && b[2] >= len){b[2] = len; return 0;} + return caml_call1(Stdlib[1], cst_Buffer_truncate); + } + function to_seq(b){ + function aux(i, param){ + if(b[2] <= i) return 0; + var x = caml_bytes_unsafe_get(b[1], i), _p_ = i + 1 | 0; + return [0, x, function(_q_){return aux(_p_, _q_);}]; + } + var _n_ = 0; + return function(_o_){return aux(_n_, _o_);}; + } + function to_seqi(b){ + function aux(i, param){ + if(b[2] <= i) return 0; + var x = caml_bytes_unsafe_get(b[1], i), _l_ = i + 1 | 0; + return [0, [0, i, x], function(_m_){return aux(_l_, _m_);}]; + } + var _j_ = 0; + return function(_k_){return aux(_j_, _k_);}; + } + function add_seq(b, seq){ + function _h_(_i_){return add_char(b, _i_);} + return caml_call2(Stdlib_Seq[4], _h_, seq); + } + function of_seq(i){var b = create(32); add_seq(b, i); return b;} + function add_int8(b, x){ + var new_position = b[2] + 1 | 0; + if(b[3] < new_position) resize(b, 1); + caml_bytes_unsafe_set(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int16_ne(b, x){ + var new_position = b[2] + 2 | 0; + if(b[3] < new_position) resize(b, 2); + runtime.caml_bytes_set16(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int32_ne(b, x){ + var new_position = b[2] + 4 | 0; + if(b[3] < new_position) resize(b, 4); + runtime.caml_bytes_set32(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int64_ne(b, x){ + var new_position = b[2] + 8 | 0; + if(b[3] < new_position) resize(b, 8); + runtime.caml_bytes_set64(b[1], b[2], x); + b[2] = new_position; + return 0; + } + function add_int16_le(b, x){ + var _g_ = Stdlib_Sys[11] ? caml_bswap16(x) : x; + return add_int16_ne(b, _g_); + } + function add_int16_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_bswap16(x); + return add_int16_ne(b, x$0); + } + function add_int32_le(b, x){ + var _f_ = Stdlib_Sys[11] ? caml_int32_bswap(x) : x; + return add_int32_ne(b, _f_); + } + function add_int32_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_int32_bswap(x); + return add_int32_ne(b, x$0); + } + function add_int64_le(b, x){ + var _e_ = Stdlib_Sys[11] ? caml_int64_bswap(x) : x; + return add_int64_ne(b, _e_); + } + function add_int64_be(b, x){ + var x$0 = Stdlib_Sys[11] ? x : caml_int64_bswap(x); + return add_int64_ne(b, x$0); + } + var + Stdlib_Buffer = + [0, + create, + contents, + to_bytes, + sub, + blit, + nth, + length, + clear, + reset, + output_buffer, + truncate, + add_char, + add_utf_8_uchar, + add_utf_16le_uchar, + add_utf_16be_uchar, + add_string, + add_bytes, + add_substring, + add_subbytes, + add_substitute, + add_buffer, + add_channel, + to_seq, + to_seqi, + add_seq, + of_seq, + add_int8, + add_int8, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int16_ne, + add_int16_be, + add_int16_le, + add_int32_ne, + add_int32_be, + add_int32_le, + add_int64_ne, + add_int64_be, + add_int64_le]; + runtime.caml_register_global(17, Stdlib_Buffer, "Stdlib__Buffer"); + return; + } + (globalThis)); + +//# 10476 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$43 = "", + cst_and = " and ", + cst_Li$3 = "%Li", + cst_i$3 = "%i", + cst_li$3 = "%li", + cst_ni$3 = "%ni", + cst_u$0 = "%u", + cst$42 = "' '", + cst$41 = "'#'", + cst$39 = "'*'", + cst$40 = "'+'", + cst$44 = ", ", + cst_0$3 = "0", + cst_at_character_number = ": at character number ", + cst$38 = "@[", + cst$37 = "@{", + cst_bad_input_format_type_mism = + "bad input: format type mismatch between ", + cst_bad_input_format_type_mism$0 = + "bad input: format type mismatch between %S and %S", + cst_camlinternalFormat_ml = "camlinternalFormat.ml", + cst_invalid_format = "invalid format ", + cst_precision$3 = "precision", + caml_blit_string = runtime.caml_blit_string, + caml_bytes_set = runtime.caml_bytes_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_format_float = runtime.caml_format_float, + caml_format_int = runtime.caml_format_int, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_notequal = runtime.caml_notequal, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_unsafe_get = runtime.caml_string_unsafe_get, + caml_trampoline = runtime.caml_trampoline, + caml_trampoline_return = runtime.caml_trampoline_return, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + cst$9 = "%{", + cst$10 = "%}", + cst$11 = "%(", + cst$12 = "%)", + cst$13 = "%?", + cst$18 = cst$37, + cst$19 = cst$38, + cst$20 = cst$37, + cst$21 = cst$38, + cst$22 = cst$37, + cst$23 = cst$38, + cst$26 = cst$39, + cst$24 = "'-'", + cst$25 = cst$39, + cst$27 = cst$40, + cst$28 = cst$41, + cst$29 = cst$42, + cst$30 = cst$40, + cst$31 = "'_'", + sub_format = [0, 0, cst$43], + formatting_lit = [0, "@;", 1, 0], + cst$35 = cst$41, + cst$32 = cst$40, + cst$33 = cst$40, + cst$34 = cst$42, + cst$36 = cst$40, + cst$17 = ".", + cst$14 = "%!", + cst$15 = cst$37, + cst$16 = cst$38, + cst$8 = "%%", + cst$0 = "@]", + cst$1 = "@}", + cst$2 = "@?", + cst$3 = "@\n", + cst$4 = "@.", + cst$5 = "@@", + cst$6 = "@%", + cst$7 = "@", + cst = ".*", + Assert_failure = global_data.Assert_failure, + CamlinternalFormatBasics = global_data.CamlinternalFormatBasics, + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Int = global_data.Stdlib__Int, + cst_c = "%c", + cst_s = "%s", + cst_i = cst_i$3, + cst_li = cst_li$3, + cst_ni = cst_ni$3, + cst_Li = cst_Li$3, + cst_f = "%f", + cst_B = "%B", + cst_a = "%a", + cst_t = "%t", + cst_r = "%r", + cst_r$0 = "%_r", + _b_ = [0, cst_camlinternalFormat_ml, 850, 23], + _m_ = [0, cst_camlinternalFormat_ml, 814, 21], + _e_ = [0, cst_camlinternalFormat_ml, 815, 21], + _n_ = [0, cst_camlinternalFormat_ml, 818, 21], + _f_ = [0, cst_camlinternalFormat_ml, 819, 21], + _o_ = [0, cst_camlinternalFormat_ml, 822, 19], + _g_ = [0, cst_camlinternalFormat_ml, 823, 19], + _p_ = [0, cst_camlinternalFormat_ml, 826, 22], + _h_ = [0, cst_camlinternalFormat_ml, 827, 22], + _q_ = [0, cst_camlinternalFormat_ml, 831, 30], + _i_ = [0, cst_camlinternalFormat_ml, 832, 30], + _k_ = [0, cst_camlinternalFormat_ml, 836, 26], + _c_ = [0, cst_camlinternalFormat_ml, 837, 26], + _l_ = [0, cst_camlinternalFormat_ml, 846, 28], + _d_ = [0, cst_camlinternalFormat_ml, 847, 28], + _j_ = [0, cst_camlinternalFormat_ml, 851, 23], + _s_ = [0, cst_camlinternalFormat_ml, 1558, 4], + cst_Printf_bad_conversion = "Printf: bad conversion %[", + _t_ = [0, cst_camlinternalFormat_ml, 1626, 39], + _u_ = [0, cst_camlinternalFormat_ml, 1649, 31], + _v_ = [0, cst_camlinternalFormat_ml, 1650, 31], + cst_Printf_bad_conversion$0 = "Printf: bad conversion %_", + _w_ = [0, cst_camlinternalFormat_ml, 1830, 8], + ___ = + [0, + [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], + cst_bad_input_format_type_mism$0], + _Z_ = + [0, + [11, cst_bad_input_format_type_mism, [3, 0, [11, cst_and, [3, 0, 0]]]], + cst_bad_input_format_type_mism$0], + _C_ = [0, [11, - caml_string_of_jsbytes('File "'), - [2, + cst_invalid_format, + [3, 0, [11, - caml_string_of_jsbytes('", line '), + cst_at_character_number, + [4, 0, 0, 0, [11, ", duplicate flag ", [1, 0]]]]]], + "invalid format %S: at character number %d, duplicate flag %C"], + cst_0 = cst_0$3, + cst_padding = "padding", + _D_ = [0, 1, 0], + _E_ = [0, 0], + cst_precision = cst_precision$3, + _F_ = [1, 0], + _G_ = [1, 1], + cst_0$2 = "'0'", + cst_0$0 = cst_0$3, + _I_ = [1, 1], + cst_0$1 = cst_0$3, + cst_precision$0 = cst_precision$3, + _H_ = [1, 1], + cst_precision$1 = cst_precision$3, + _M_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, [4, 0, 0, 0, [11, - caml_string_of_jsbytes(", characters "), - [4, - 0, - 0, - 0, - [12,45,[4,0,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]]]]]]], - caml_string_of_jsbytes('File "%s", line %d, characters %d-%d: %s')], - cst_Fun_Finally_raised=caml_string_of_jsbytes("Fun.Finally_raised: "), - cst_Stdlib_Fun_Finally_raised= - caml_string_of_jsbytes("Stdlib.Fun.Finally_raised"), - cst_Digest_from_hex$0=caml_string_of_jsbytes("Digest.from_hex"), - cst_Digest_from_hex=caml_string_of_jsbytes("Digest.from_hex"), - cst_Digest_to_hex=caml_string_of_jsbytes("Digest.to_hex"), - cst_Digest_substring=caml_string_of_jsbytes("Digest.substring"), - cst_Random_int64=caml_string_of_jsbytes("Random.int64"), - cst_Random_int32=caml_string_of_jsbytes("Random.int32"), - cst_Random_full_int=caml_string_of_jsbytes("Random.full_int"), - cst_Random_int=caml_string_of_jsbytes("Random.int"), - cst_x$1=caml_string_of_jsbytes("x"), - cst_Hashtbl_unsupported_hash_t= - caml_string_of_jsbytes("Hashtbl: unsupported hash table format"), - cst_OCAMLRUNPARAM=caml_string_of_jsbytes("OCAMLRUNPARAM"), - cst_CAMLRUNPARAM=caml_string_of_jsbytes("CAMLRUNPARAM"), - cst$66=caml_string_of_jsbytes(""), - cst_Weak_Make_hash_bucket_cann= - caml_string_of_jsbytes("Weak.Make: hash bucket cannot grow more"), - cst_Weak_fill=caml_string_of_jsbytes("Weak.fill"), - cst_Weak_blit=caml_string_of_jsbytes("Weak.blit"), - cst_Weak_check=caml_string_of_jsbytes("Weak.check"), - cst_Weak_get_copy=caml_string_of_jsbytes("Weak.get_copy"), - cst_Weak_get=caml_string_of_jsbytes("Weak.get"), - cst_Weak_set=caml_string_of_jsbytes("Weak.set"), - cst_Weak_create=caml_string_of_jsbytes("Weak.create"), - cst$84=caml_string_of_jsbytes(""), - cst$85=caml_string_of_jsbytes(""), - cst$83=caml_string_of_jsbytes("."), - cst$80=caml_string_of_jsbytes(">"), - cst$81=caml_string_of_jsbytes("<\/"), - cst$82=caml_string_of_jsbytes(""), - cst$77=caml_string_of_jsbytes(">"), - cst$78=caml_string_of_jsbytes("<"), - cst$79=caml_string_of_jsbytes(""), - cst$76=caml_string_of_jsbytes("\n"), - cst_Format_pp_set_geometry= - caml_string_of_jsbytes("Format.pp_set_geometry: "), - cst$72=caml_string_of_jsbytes(""), - cst$73=caml_string_of_jsbytes(""), - cst$74=caml_string_of_jsbytes(""), - cst$75=caml_string_of_jsbytes(""), - cst$68=caml_string_of_jsbytes(""), - cst$69=caml_string_of_jsbytes(""), - cst$70=caml_string_of_jsbytes(""), - cst$71=caml_string_of_jsbytes(""), - cst$67=caml_string_of_jsbytes(""), - cst_Stdlib_Format_String_tag= - caml_string_of_jsbytes("Stdlib.Format.String_tag"), - cst_end_of_input_not_found= - caml_string_of_jsbytes("end of input not found"), - cst_scanf_bad_conversion_a= - caml_string_of_jsbytes('scanf: bad conversion "%a"'), - cst_scanf_bad_conversion_t= - caml_string_of_jsbytes('scanf: bad conversion "%t"'), - cst_scanf_missing_reader=caml_string_of_jsbytes("scanf: missing reader"), - cst_scanf_bad_conversion_custo= - caml_string_of_jsbytes('scanf: bad conversion "%?" (custom converter)'), - cst_scanf_bad_conversion= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst_scanf_bad_conversion$0= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst_scanf_bad_conversion$1= - caml_string_of_jsbytes('scanf: bad conversion "%-"'), - cst_scanf_bad_conversion$2= - caml_string_of_jsbytes('scanf: bad conversion "%*"'), - cst$91=caml_string_of_jsbytes('"'), - cst$92=caml_string_of_jsbytes('"'), - cst$89=caml_string_of_jsbytes('"'), - cst$90=caml_string_of_jsbytes('"'), - cst$88=caml_string_of_jsbytes('"'), - cst_in_format=caml_string_of_jsbytes(' in format "'), - cst_an=caml_string_of_jsbytes("an"), - cst_x$2=caml_string_of_jsbytes("x"), - cst_nfinity=caml_string_of_jsbytes("nfinity"), - cst_digits=caml_string_of_jsbytes("digits"), - cst_decimal_digits=caml_string_of_jsbytes("decimal digits"), - cst_0b=caml_string_of_jsbytes("0b"), - cst_0o=caml_string_of_jsbytes("0o"), - cst_0u=caml_string_of_jsbytes("0u"), - cst_0x=caml_string_of_jsbytes("0x"), - cst_false$3=caml_string_of_jsbytes("false"), - cst_true$3=caml_string_of_jsbytes("true"), - cst_not_a_valid_float_in_hexad= - caml_string_of_jsbytes("not a valid float in hexadecimal notation"), - cst_no_dot_or_exponent_part_fo= - caml_string_of_jsbytes("no dot or exponent part found in float token"), - cst$87=caml_string_of_jsbytes("-"), - cst_unnamed_function=caml_string_of_jsbytes("unnamed function"), - cst_unnamed_character_string= - caml_string_of_jsbytes("unnamed character string"), - cst_unnamed_Stdlib_input_chann= - caml_string_of_jsbytes("unnamed Stdlib input channel"), - cst$86=caml_string_of_jsbytes("-"), - cst_Stdlib_Scanf_Scan_failure= - caml_string_of_jsbytes("Stdlib.Scanf.Scan_failure"), - cst_binary=caml_string_of_jsbytes("binary"), - cst_octal=caml_string_of_jsbytes("octal"), - cst_hexadecimal=caml_string_of_jsbytes("hexadecimal"), - cst_a_Char=caml_string_of_jsbytes("a Char"), - cst_a_String=caml_string_of_jsbytes("a String"), - cst$93=caml_string_of_jsbytes(""), - cst_CamlinternalMod_update_mod= - caml_string_of_jsbytes("CamlinternalMod.update_mod: not a module"), - cst_CamlinternalMod_init_mod_n= - caml_string_of_jsbytes("CamlinternalMod.init_mod: not a module"), - cst$94=caml_string_of_jsbytes(""), - cst$95=caml_string_of_jsbytes(""), - cst$96=caml_string_of_jsbytes(""), - cst$97=caml_string_of_jsbytes(""), - cst$99=caml_string_of_jsbytes(""), - cst$98=caml_string_of_jsbytes(""), - cst_Illegal_character=caml_string_of_jsbytes("Illegal character "), - cst_Filename_chop_extension= - caml_string_of_jsbytes("Filename.chop_extension"), - cst$127=caml_string_of_jsbytes(""), - cst_Filename_chop_suffix=caml_string_of_jsbytes("Filename.chop_suffix"), - cst$126=caml_string_of_jsbytes(""), - cst_2_1$0=caml_string_of_jsbytes(" 2>&1"), - cst_2$0=caml_string_of_jsbytes(" 2>"), - cst$125=caml_string_of_jsbytes(""), - cst$117=caml_string_of_jsbytes(" >"), - cst$124=caml_string_of_jsbytes(""), - cst$118=caml_string_of_jsbytes(" <"), - cst$123=caml_string_of_jsbytes(""), - cst$119=caml_string_of_jsbytes(" "), - cst$120=caml_string_of_jsbytes(" "), - cst$121=caml_string_of_jsbytes('"'), - cst$122=caml_string_of_jsbytes(""), - cst_Filename_quote_command_bad= - caml_string_of_jsbytes("Filename.quote_command: bad file name "), - cst$115=caml_string_of_jsbytes('"'), - cst$116=caml_string_of_jsbytes('"'), - cst$113=caml_string_of_jsbytes("./"), - cst$112=caml_string_of_jsbytes(".\\"), - cst$111=caml_string_of_jsbytes("../"), - cst$110=caml_string_of_jsbytes("..\\"), - cst_2_1=caml_string_of_jsbytes(" 2>&1"), - cst_2=caml_string_of_jsbytes(" 2>"), - cst$109=caml_string_of_jsbytes(""), - cst$104=caml_string_of_jsbytes(" >"), - cst$108=caml_string_of_jsbytes(""), - cst$105=caml_string_of_jsbytes(" <"), - cst$107=caml_string_of_jsbytes(""), - cst$106=caml_string_of_jsbytes(" "), - cst$103=caml_string_of_jsbytes("./"), - cst$102=caml_string_of_jsbytes("../"), - cst$101=caml_string_of_jsbytes(""), - cst$100=caml_string_of_jsbytes(""), - null$0=caml_string_of_jsbytes("/dev/null"), - current_dir_name=caml_string_of_jsbytes("."), - parent_dir_name=caml_string_of_jsbytes(".."), - dir_sep=caml_string_of_jsbytes("/"), - cst_TMPDIR=caml_string_of_jsbytes("TMPDIR"), - cst_tmp=caml_string_of_jsbytes("/tmp"), - quotequote=caml_string_of_jsbytes("'\\''"), - null$1=caml_string_of_jsbytes("NUL"), - current_dir_name$0=caml_string_of_jsbytes("."), - parent_dir_name$0=caml_string_of_jsbytes(".."), - dir_sep$0=caml_string_of_jsbytes("\\"), - cst_TEMP=caml_string_of_jsbytes("TEMP"), - cst$114=caml_string_of_jsbytes("."), - null$2=caml_string_of_jsbytes("/dev/null"), - current_dir_name$1=caml_string_of_jsbytes("."), - parent_dir_name$1=caml_string_of_jsbytes(".."), - dir_sep$1=caml_string_of_jsbytes("/"), - cst_Cygwin=caml_string_of_jsbytes("Cygwin"), - cst_Win32=caml_string_of_jsbytes("Win32"), - zero$4=[254,0.,0.], - one$4=[254,1.,0.], - i=[254,0.,1.], - cst_Bigarray_array3_of_genarra= - caml_string_of_jsbytes("Bigarray.array3_of_genarray"), - cst_Bigarray_array2_of_genarra= - caml_string_of_jsbytes("Bigarray.array2_of_genarray"), - cst_Bigarray_array1_of_genarra= - caml_string_of_jsbytes("Bigarray.array1_of_genarray"), - cst_Bigarray_array0_of_genarra= - caml_string_of_jsbytes("Bigarray.array0_of_genarray"), - cst_Bigarray_Array3_of_array_n= - caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), - cst_Bigarray_Array3_of_array_n$0= - caml_string_of_jsbytes("Bigarray.Array3.of_array: non-cubic data"), - cst_Bigarray_Array2_of_array_n= - caml_string_of_jsbytes("Bigarray.Array2.of_array: non-rectangular data"), - cst_In_channel_input_all_chann= - caml_string_of_jsbytes - ("In_channel.input_all: channel content is larger than maximum string length"), - Invalid_argument=global_data.Invalid_argument, - Failure=global_data.Failure, - Match_failure=global_data.Match_failure, - Assert_failure=global_data.Assert_failure, - Not_found=global_data.Not_found, - Out_of_memory=global_data.Out_of_memory, - Stack_overflow=global_data.Stack_overflow, - Sys_error=global_data.Sys_error, - End_of_file=global_data.End_of_file, - Division_by_zero=global_data.Division_by_zero, - Sys_blocked_io=global_data.Sys_blocked_io, - Undefined_recursive_module=global_data.Undefined_recursive_module, - _l_=[0,0,[0,6,0]], - _k_=[0,0,[0,7,0]], - _j_=[0,1,[0,3,[0,4,[0,6,0]]]], - _i_=[0,1,[0,3,[0,4,[0,7,0]]]], - _g_=[0,1], - _h_=[0,0], - _a_=runtime.caml_int64_create_lo_mi_hi(0,0,32752), - _b_=runtime.caml_int64_create_lo_mi_hi(0,0,65520), - _c_=runtime.caml_int64_create_lo_mi_hi(1,0,32752), - _d_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,32751), - _e_=runtime.caml_int64_create_lo_mi_hi(0,0,16), - _f_=runtime.caml_int64_create_lo_mi_hi(0,0,15536), - _n_=[0,caml_string_of_jsbytes("obj.ml"),95,4], - _p_=[0,caml_string_of_jsbytes("seq.ml"),596,4], - _v_=[0,caml_string_of_jsbytes("uchar.ml"),88,18], - _u_=[0,caml_string_of_jsbytes("uchar.ml"),91,7], - _t_=[0,caml_string_of_jsbytes("uchar.ml"),80,18], - _s_=[0,caml_string_of_jsbytes("uchar.ml"),85,7], - _y_=[0,0,0], - _E_=[0,caml_string_of_jsbytes("bytes.ml"),808,20], - _D_=[0,caml_string_of_jsbytes("bytes.ml"),819,9], - _C_=[0,caml_string_of_jsbytes("bytes.ml"),754,20], - _B_=[0,caml_string_of_jsbytes("bytes.ml"),765,9], - _A_=[0,caml_string_of_jsbytes("bytes.ml"),642,20], - _z_=[0,caml_string_of_jsbytes("bytes.ml"),667,9], - _F_=[0,caml_string_of_jsbytes("array.ml"),322,4], - _H_=[0,caml_string_of_jsbytes("float.ml"),395,6], - _G_=[0,caml_string_of_jsbytes("float.ml"),222,14], - _S_=runtime.caml_int64_create_lo_mi_hi(16777215,16777215,65535), - _R_=runtime.caml_int64_create_lo_mi_hi(0,0,0), - _Q_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _P_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _T_=[0,0,0,0], - _U_=[0,0,0], - _V_=[0,caml_string_of_jsbytes("set.ml"),570,18], - _W_=[0,0,0,0], - _X_=[0,caml_string_of_jsbytes("map.ml"),400,10], - _Y_=[0,0,0], - _Z_=[0,caml_string_of_jsbytes("stream.ml"),53,12], - ___=[0,0], - _$_=[0,caml_string_of_jsbytes("stream.ml"),82,12], - _ad_=[0,caml_string_of_jsbytes("buffer.ml"),231,9], - _ac_=[0,caml_string_of_jsbytes("buffer.ml"),212,2], - _ab_=[0,caml_string_of_jsbytes("buffer.ml"),93,2], - _aa_=[0,caml_string_of_jsbytes("buffer.ml"),94,2], - _af_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),850,23], - _aq_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),814,21], - _ai_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),815,21], - _ar_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),818,21], - _aj_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),819,21], - _as_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),822,19], - _ak_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),823,19], - _at_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),826,22], - _al_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),827,22], - _au_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),831,30], - _am_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),832,30], - _ao_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),836,26], - _ag_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),837,26], - _ap_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),846,28], - _ah_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),847,28], - _an_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),851,23], - _aw_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1558,4], - _ax_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1626,39], - _ay_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1649,31], - _az_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1650,31], - _aA_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),1830,8], - _a4_= - [0, - [11, - caml_string_of_jsbytes("bad input: format type mismatch between "), - [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], - caml_string_of_jsbytes - ("bad input: format type mismatch between %S and %S")], - _a3_= - [0, - [11, - caml_string_of_jsbytes("bad input: format type mismatch between "), - [3,0,[11,caml_string_of_jsbytes(" and "),[3,0,0]]]], - caml_string_of_jsbytes - ("bad input: format type mismatch between %S and %S")], - _aG_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4,0,0,0,[11,caml_string_of_jsbytes(", duplicate flag "),[1,0]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, duplicate flag %C")], - _aH_=[0,1,0], - _aI_=[0,0], - _aJ_=[1,0], - _aK_=[1,1], - _aM_=[1,1], - _aL_=[1,1], - _aQ_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", flag "), + ", flag ", [1, [11, - caml_string_of_jsbytes(" is only allowed after the '"), - [12, - 37, - [11, - caml_string_of_jsbytes("', before padding and precision"), - 0]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision")], - _aN_= + " is only allowed after the '", + [12, 37, [11, "', before padding and precision", 0]]]]]]]]], + "invalid format %S: at character number %d, flag %C is only allowed after the '%%', before padding and precision"], + _J_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": at character number "), + cst_at_character_number, [4, 0, 0, 0, - [11, - caml_string_of_jsbytes(', invalid conversion "'), - [12,37,[0,[12,34,0]]]]]]]], - caml_string_of_jsbytes - ('invalid format %S: at character number %d, invalid conversion "%%%c"')], - _aO_=[0,0], - _aP_=[0,0], - _aR_=[0,[12,64,0]], - _aS_=[0,caml_string_of_jsbytes("@ "),1,0], - _aT_=[0,caml_string_of_jsbytes("@,"),0,0], - _aU_=[2,60], - _aV_= + [11, ', invalid conversion "', [12, 37, [0, [12, 34, 0]]]]]]]], + 'invalid format %S: at character number %d, invalid conversion "%%%c"'], + _K_ = [0, 0], + cst_padding$0 = "`padding'", + _L_ = [0, 0], + cst_precision$2 = "`precision'", + _N_ = [0, [12, 64, 0]], + _O_ = [0, "@ ", 1, 0], + _P_ = [0, "@,", 0, 0], + _Q_ = [2, 60], + _R_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": '"), + ": '", [12, 37, [11, - caml_string_of_jsbytes - ("' alone is not accepted in character sets, use "), + "' alone is not accepted in character sets, use ", [12, 37, [12, 37, - [11, - caml_string_of_jsbytes(" instead at position "), - [4,0,0,0,[12,46,0]]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d.")], - _aW_= + [11, " instead at position ", [4, 0, 0, 0, [12, 46, 0]]]]]]]]]], + "invalid format %S: '%%' alone is not accepted in character sets, use %%%% instead at position %d."], + _S_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": integer "), + ": integer ", + [4, 0, 0, 0, [11, " is greater than the limit ", [4, 0, 0, 0, 0]]]]]], + "invalid format %S: integer %d is greater than the limit %d"], + cst_digit = "digit", + _T_ = [0, cst_camlinternalFormat_ml, 2837, 11], + _U_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + ': unclosed sub-format, expected "', + [12, 37, [0, [11, '" at character number ', [4, 0, 0, 0, 0]]]]]]], + 'invalid format %S: unclosed sub-format, expected "%%%c" at character number %d'], + cst_character = "character ')'", + cst_character$0 = "character '}'", + _V_ = [0, cst_camlinternalFormat_ml, 2899, 34], + _W_ = [0, cst_camlinternalFormat_ml, 2935, 28], + _X_ = [0, cst_camlinternalFormat_ml, 2957, 11], + _Y_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, [4, 0, 0, 0, [11, - caml_string_of_jsbytes(" is greater than the limit "), - [4,0,0,0,0]]]]]], - caml_string_of_jsbytes - ("invalid format %S: integer %d is greater than the limit %d")], - _aX_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2837,11], - _aY_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(': unclosed sub-format, expected "'), - [12, - 37, - [0, - [11,caml_string_of_jsbytes('" at character number '),[4,0,0,0,0]]]]]]], - caml_string_of_jsbytes - ('invalid format %S: unclosed sub-format, expected "%%%c" at character number %d')], - _aZ_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2899,34], - _a0_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2935,28], - _a1_=[0,caml_string_of_jsbytes("camlinternalFormat.ml"),2957,11], - _a2_= - [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), + cst$44, [2, 0, [11, - caml_string_of_jsbytes(" is incompatible with '"), - [0,[11,caml_string_of_jsbytes("' in sub-format "),[3,0,0]]]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S")], - _aF_= + " is incompatible with '", + [0, [11, "' in sub-format ", [3, 0, 0]]]]]]]]]], + "invalid format %S: at character number %d, %s is incompatible with '%c' in sub-format %S"], + _B_ = [0, [11, - caml_string_of_jsbytes("invalid format "), + cst_invalid_format, [3, 0, [11, - caml_string_of_jsbytes(": at character number "), + cst_at_character_number, + [4, 0, 0, 0, [11, cst$44, [2, 0, [11, " expected, read ", [1, 0]]]]]]]], + "invalid format %S: at character number %d, %s expected, read %C"], + _A_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, + cst_at_character_number, + [4, 0, 0, 0, [11, ", '", [0, [11, "' without ", [2, 0, 0]]]]]]]], + "invalid format %S: at character number %d, '%c' without %s"], + cst_non_zero_widths_are_unsupp = + "non-zero widths are unsupported for %c conversions", + cst_unexpected_end_of_format = "unexpected end of format", + _z_ = + [0, + [11, + cst_invalid_format, + [3, + 0, + [11, cst_at_character_number, [4, 0, 0, 0, [11, cst$44, [2, 0, 0]]]]]], + "invalid format %S: at character number %d, %s"], + _y_ = + [0, + [11, "invalid box description ", [3, 0, 0]], + "invalid box description %S"], + _x_ = [0, 0, 4], + cst_nan = "nan", + cst_neg_infinity = "neg_infinity", + cst_infinity = "infinity", + _r_ = [0, 103], + cst_nd$0 = "%+nd", + cst_nd$1 = "% nd", + cst_ni$1 = "%+ni", + cst_ni$2 = "% ni", + cst_nx = "%nx", + cst_nx$0 = "%#nx", + cst_nX = "%nX", + cst_nX$0 = "%#nX", + cst_no = "%no", + cst_no$0 = "%#no", + cst_nd = "%nd", + cst_ni$0 = cst_ni$3, + cst_nu = "%nu", + cst_ld$0 = "%+ld", + cst_ld$1 = "% ld", + cst_li$1 = "%+li", + cst_li$2 = "% li", + cst_lx = "%lx", + cst_lx$0 = "%#lx", + cst_lX = "%lX", + cst_lX$0 = "%#lX", + cst_lo = "%lo", + cst_lo$0 = "%#lo", + cst_ld = "%ld", + cst_li$0 = cst_li$3, + cst_lu = "%lu", + cst_Ld$0 = "%+Ld", + cst_Ld$1 = "% Ld", + cst_Li$1 = "%+Li", + cst_Li$2 = "% Li", + cst_Lx = "%Lx", + cst_Lx$0 = "%#Lx", + cst_LX = "%LX", + cst_LX$0 = "%#LX", + cst_Lo = "%Lo", + cst_Lo$0 = "%#Lo", + cst_Ld = "%Ld", + cst_Li$0 = cst_Li$3, + cst_Lu = "%Lu", + cst_d$0 = "%+d", + cst_d$1 = "% d", + cst_i$1 = "%+i", + cst_i$2 = "% i", + cst_x = "%x", + cst_x$0 = "%#x", + cst_X = "%X", + cst_X$0 = "%#X", + cst_o = "%o", + cst_o$0 = "%#o", + cst_d = "%d", + cst_i$0 = cst_i$3, + cst_u = cst_u$0, + cst_0c = "0c", + _a_ = [0, 0, 0], + cst_CamlinternalFormat_Type_mi = "CamlinternalFormat.Type_mismatch"; + function create_char_set(param){return caml_call2(Stdlib_Bytes[1], 32, 0);} + function add_in_char_set(char_set, c){ + var + str_ind = c >>> 3 | 0, + mask = 1 << (c & 7), + _dU_ = runtime.caml_bytes_get(char_set, str_ind) | mask; + return caml_bytes_set(char_set, str_ind, caml_call1(Stdlib[29], _dU_)); + } + function freeze_char_set(char_set){ + return caml_call1(Stdlib_Bytes[6], char_set); + } + function rev_char_set(char_set){ + var char_set$0 = create_char_set(0), i = 0; + for(;;){ + var _dS_ = caml_string_get(char_set, i) ^ 255; + caml_bytes_set(char_set$0, i, caml_call1(Stdlib[29], _dS_)); + var _dT_ = i + 1 | 0; + if(31 === i) return caml_call1(Stdlib_Bytes[48], char_set$0); + var i = _dT_; + } + } + function is_in_char_set(char_set, c){ + var str_ind = c >>> 3 | 0, mask = 1 << (c & 7); + return 0 !== (caml_string_get(char_set, str_ind) & mask) ? 1 : 0; + } + function pad_of_pad_opt(pad_opt){ + if(! pad_opt) return 0; + var width = pad_opt[1]; + return [0, 1, width]; + } + function param_format_of_ignored_format(ign, fmt){ + if(typeof ign === "number") + switch(ign){ + case 0: + return [0, [0, fmt]]; + case 1: + return [0, [1, fmt]]; + case 2: + return [0, [19, fmt]]; + default: return [0, [22, fmt]]; + } + switch(ign[0]){ + case 0: + var pad_opt = ign[1]; return [0, [2, pad_of_pad_opt(pad_opt), fmt]]; + case 1: + var pad_opt$0 = ign[1]; + return [0, [3, pad_of_pad_opt(pad_opt$0), fmt]]; + case 2: + var pad_opt$1 = ign[2], iconv = ign[1]; + return [0, [4, iconv, pad_of_pad_opt(pad_opt$1), 0, fmt]]; + case 3: + var pad_opt$2 = ign[2], iconv$0 = ign[1]; + return [0, [5, iconv$0, pad_of_pad_opt(pad_opt$2), 0, fmt]]; + case 4: + var pad_opt$3 = ign[2], iconv$1 = ign[1]; + return [0, [6, iconv$1, pad_of_pad_opt(pad_opt$3), 0, fmt]]; + case 5: + var pad_opt$4 = ign[2], iconv$2 = ign[1]; + return [0, [7, iconv$2, pad_of_pad_opt(pad_opt$4), 0, fmt]]; + case 6: + var prec_opt = ign[2], pad_opt$5 = ign[1]; + if(prec_opt) + var ndec = prec_opt[1], _dR_ = [0, ndec]; + else + var _dR_ = 0; + return [0, [8, _a_, pad_of_pad_opt(pad_opt$5), _dR_, fmt]]; + case 7: + var pad_opt$6 = ign[1]; + return [0, [9, pad_of_pad_opt(pad_opt$6), fmt]]; + case 8: + var fmtty = ign[2], pad_opt$7 = ign[1]; + return [0, [13, pad_opt$7, fmtty, fmt]]; + case 9: + var fmtty$0 = ign[2], pad_opt$8 = ign[1]; + return [0, [14, pad_opt$8, fmtty$0, fmt]]; + case 10: + var char_set = ign[2], width_opt = ign[1]; + return [0, [20, width_opt, char_set, fmt]]; + default: var counter = ign[1]; return [0, [21, counter, fmt]]; + } + } + function default_float_precision(fconv){return 5 === fconv[2] ? 12 : -6;} + function buffer_create(init_size){ + return [0, 0, caml_create_bytes(init_size)]; + } + function buffer_check_size(buf, overhead){ + var + len = runtime.caml_ml_bytes_length(buf[2]), + min_len = buf[1] + overhead | 0, + _dP_ = len < min_len ? 1 : 0; + if(_dP_){ + var + new_len = caml_call2(Stdlib_Int[11], len * 2 | 0, min_len), + new_str = caml_create_bytes(new_len); + caml_call5(Stdlib_Bytes[11], buf[2], 0, new_str, 0, len); + buf[2] = new_str; + var _dQ_ = 0; + } + else + var _dQ_ = _dP_; + return _dQ_; + } + function buffer_add_char(buf, c){ + buffer_check_size(buf, 1); + caml_bytes_set(buf[2], buf[1], c); + buf[1] = buf[1] + 1 | 0; + return 0; + } + function buffer_add_string(buf, s){ + var str_len = caml_ml_string_length(s); + buffer_check_size(buf, str_len); + caml_call5(Stdlib_String[48], s, 0, buf[2], buf[1], str_len); + buf[1] = buf[1] + str_len | 0; + return 0; + } + function buffer_contents(buf){ + return caml_call3(Stdlib_Bytes[8], buf[2], 0, buf[1]); + } + function char_of_iconv(iconv){ + switch(iconv){ + case 6: + case 7: + return 120; + case 8: + case 9: + return 88; + case 10: + case 11: + return 111; + case 12: + case 15: + return 117; + case 0: + case 1: + case 2: + case 13: + return 100; + default: return 105; + } + } + function char_of_fconv(opt, fconv){ + if(opt) var sth = opt[1], cF = sth; else var cF = 70; + switch(fconv[2]){ + case 0: + return 102; + case 1: + return 101; + case 2: + return 69; + case 3: + return 103; + case 4: + return 71; + case 5: + return cF; + case 6: + return 104; + case 7: + return 72; + default: return 70; + } + } + function bprint_padty(buf, padty){ + switch(padty){ + case 0: + return buffer_add_char(buf, 45); + case 1: + return 0; + default: return buffer_add_char(buf, 48); + } + } + function bprint_ignored_flag(buf, ign_flag){ + return ign_flag ? buffer_add_char(buf, 95) : ign_flag; + } + function bprint_pad_opt(buf, pad_opt){ + if(! pad_opt) return 0; + var width = pad_opt[1]; + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], width)); + } + function bprint_padding(buf, pad){ + if(typeof pad === "number") return 0; + if(0 === pad[0]){ + var n = pad[2], padty = pad[1]; + bprint_padty(buf, padty); + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); + } + var padty$0 = pad[1]; + bprint_padty(buf, padty$0); + return buffer_add_char(buf, 42); + } + function bprint_precision(buf, prec){ + if(typeof prec === "number") + return prec ? buffer_add_string(buf, cst) : 0; + var n = prec[1]; + buffer_add_char(buf, 46); + return buffer_add_string(buf, caml_call1(Stdlib_Int[12], n)); + } + function bprint_iconv_flag(buf, iconv){ + switch(iconv){ + case 1: + case 4: + return buffer_add_char(buf, 43); + case 2: + case 5: + return buffer_add_char(buf, 32); + case 7: + case 9: + case 11: + case 13: + case 14: + case 15: + return buffer_add_char(buf, 35); + default: return 0; + } + } + function bprint_altint_fmt(buf, ign_flag, iconv, pad, prec, c){ + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag); + bprint_iconv_flag(buf, iconv); + bprint_padding(buf, pad); + bprint_precision(buf, prec); + buffer_add_char(buf, c); + return buffer_add_char(buf, char_of_iconv(iconv)); + } + function bprint_fconv_flag(buf, fconv){ + switch(fconv[1]){ + case 0: break; + case 1: + buffer_add_char(buf, 43); break; + default: buffer_add_char(buf, 32); + } + return 8 <= fconv[2] ? buffer_add_char(buf, 35) : 0; + } + function string_of_formatting_lit(formatting_lit){ + if(typeof formatting_lit === "number") + switch(formatting_lit){ + case 0: + return cst$0; + case 1: + return cst$1; + case 2: + return cst$2; + case 3: + return cst$3; + case 4: + return cst$4; + case 5: + return cst$5; + default: return cst$6; + } + switch(formatting_lit[0]){ + case 0: + var str = formatting_lit[1]; return str; + case 1: + var str$0 = formatting_lit[1]; return str$0; + default: + var c = formatting_lit[1], _dO_ = caml_call2(Stdlib_String[1], 1, c); + return caml_call2(Stdlib[28], cst$7, _dO_); + } + } + function bprint_char_literal(buf, chr){ + return 37 === chr + ? buffer_add_string(buf, cst$8) + : buffer_add_char(buf, chr); + } + function bprint_string_literal(buf, str){ + var _dM_ = caml_ml_string_length(str) - 1 | 0, _dL_ = 0; + if(_dM_ >= 0){ + var i = _dL_; + for(;;){ + bprint_char_literal(buf, caml_string_get(str, i)); + var _dN_ = i + 1 | 0; + if(_dM_ !== i){var i = _dN_; continue;} + break; + } + } + return 0; + } + function bprint_fmtty(buf, fmtty){ + var fmtty$0 = fmtty; + for(;;){ + if(typeof fmtty$0 === "number") return 0; + switch(fmtty$0[0]){ + case 0: + var fmtty$1 = fmtty$0[1]; + buffer_add_string(buf, cst_c); + var fmtty$0 = fmtty$1; + continue; + case 1: + var fmtty$2 = fmtty$0[1]; + buffer_add_string(buf, cst_s); + var fmtty$0 = fmtty$2; + continue; + case 2: + var fmtty$3 = fmtty$0[1]; + buffer_add_string(buf, cst_i); + var fmtty$0 = fmtty$3; + continue; + case 3: + var fmtty$4 = fmtty$0[1]; + buffer_add_string(buf, cst_li); + var fmtty$0 = fmtty$4; + continue; + case 4: + var fmtty$5 = fmtty$0[1]; + buffer_add_string(buf, cst_ni); + var fmtty$0 = fmtty$5; + continue; + case 5: + var fmtty$6 = fmtty$0[1]; + buffer_add_string(buf, cst_Li); + var fmtty$0 = fmtty$6; + continue; + case 6: + var fmtty$7 = fmtty$0[1]; + buffer_add_string(buf, cst_f); + var fmtty$0 = fmtty$7; + continue; + case 7: + var fmtty$8 = fmtty$0[1]; + buffer_add_string(buf, cst_B); + var fmtty$0 = fmtty$8; + continue; + case 8: + var fmtty$9 = fmtty$0[2], sub_fmtty = fmtty$0[1]; + buffer_add_string(buf, cst$9); + bprint_fmtty(buf, sub_fmtty); + buffer_add_string(buf, cst$10); + var fmtty$0 = fmtty$9; + continue; + case 9: + var fmtty$10 = fmtty$0[3], sub_fmtty$0 = fmtty$0[1]; + buffer_add_string(buf, cst$11); + bprint_fmtty(buf, sub_fmtty$0); + buffer_add_string(buf, cst$12); + var fmtty$0 = fmtty$10; + continue; + case 10: + var fmtty$11 = fmtty$0[1]; + buffer_add_string(buf, cst_a); + var fmtty$0 = fmtty$11; + continue; + case 11: + var fmtty$12 = fmtty$0[1]; + buffer_add_string(buf, cst_t); + var fmtty$0 = fmtty$12; + continue; + case 12: + var fmtty$13 = fmtty$0[1]; + buffer_add_string(buf, cst$13); + var fmtty$0 = fmtty$13; + continue; + case 13: + var fmtty$14 = fmtty$0[1]; + buffer_add_string(buf, cst_r); + var fmtty$0 = fmtty$14; + continue; + default: + var fmtty$15 = fmtty$0[1]; + buffer_add_string(buf, cst_r$0); + var fmtty$0 = fmtty$15; + continue; + } + } + } + function int_of_custom_arity(param){ + if(! param) return 0; + var x = param[1]; + return 1 + int_of_custom_arity(x) | 0; + } + function string_of_fmt(fmt){ + var buf = buffer_create(16); + function fmtiter(fmt, ign_flag){ + var fmt$0 = fmt, ign_flag$0 = ign_flag; + a: + for(;;){ + if(typeof fmt$0 === "number") return 0; + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 99); + var fmt$0 = rest, ign_flag$0 = 0; + continue; + case 1: + var rest$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 67); + var fmt$0 = rest$0, ign_flag$0 = 0; + continue; + case 2: + var rest$1 = fmt$0[2], pad = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad); + buffer_add_char(buf, 115); + var fmt$0 = rest$1, ign_flag$0 = 0; + continue; + case 3: + var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad$0); + buffer_add_char(buf, 83); + var fmt$0 = rest$2, ign_flag$0 = 0; + continue; + case 4: + var + rest$3 = fmt$0[4], + prec = fmt$0[3], + pad$1 = fmt$0[2], + iconv = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_iconv_flag(buf, iconv); + bprint_padding(buf, pad$1); + bprint_precision(buf, prec); + buffer_add_char(buf, char_of_iconv(iconv)); + var fmt$0 = rest$3, ign_flag$0 = 0; + continue; + case 5: + var + rest$4 = fmt$0[4], + prec$0 = fmt$0[3], + pad$2 = fmt$0[2], + iconv$0 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$0, pad$2, prec$0, 108); + var fmt$0 = rest$4, ign_flag$0 = 0; + continue; + case 6: + var + rest$5 = fmt$0[4], + prec$1 = fmt$0[3], + pad$3 = fmt$0[2], + iconv$1 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$1, pad$3, prec$1, 110); + var fmt$0 = rest$5, ign_flag$0 = 0; + continue; + case 7: + var + rest$6 = fmt$0[4], + prec$2 = fmt$0[3], + pad$4 = fmt$0[2], + iconv$2 = fmt$0[1]; + bprint_altint_fmt(buf, ign_flag$0, iconv$2, pad$4, prec$2, 76); + var fmt$0 = rest$6, ign_flag$0 = 0; + continue; + case 8: + var + rest$7 = fmt$0[4], + prec$3 = fmt$0[3], + pad$5 = fmt$0[2], + fconv = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_fconv_flag(buf, fconv); + bprint_padding(buf, pad$5); + bprint_precision(buf, prec$3); + buffer_add_char(buf, char_of_fconv(0, fconv)); + var fmt$0 = rest$7, ign_flag$0 = 0; + continue; + case 9: + var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_padding(buf, pad$6); + buffer_add_char(buf, 66); + var fmt$0 = rest$8, ign_flag$0 = 0; + continue; + case 10: + var rest$9 = fmt$0[1]; + buffer_add_string(buf, cst$14); + var fmt$0 = rest$9; + continue; + case 11: + var rest$10 = fmt$0[2], str = fmt$0[1]; + bprint_string_literal(buf, str); + var fmt$0 = rest$10; + continue; + case 12: + var rest$11 = fmt$0[2], chr = fmt$0[1]; + bprint_char_literal(buf, chr); + var fmt$0 = rest$11; + continue; + case 13: + var rest$12 = fmt$0[3], fmtty = fmt$0[2], pad_opt = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, pad_opt); + buffer_add_char(buf, 123); + bprint_fmtty(buf, fmtty); + buffer_add_char(buf, 37); + buffer_add_char(buf, 125); + var fmt$0 = rest$12, ign_flag$0 = 0; + continue; + case 14: + var rest$13 = fmt$0[3], fmtty$0 = fmt$0[2], pad_opt$0 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, pad_opt$0); + buffer_add_char(buf, 40); + bprint_fmtty(buf, fmtty$0); + buffer_add_char(buf, 37); + buffer_add_char(buf, 41); + var fmt$0 = rest$13, ign_flag$0 = 0; + continue; + case 15: + var rest$14 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 97); + var fmt$0 = rest$14, ign_flag$0 = 0; + continue; + case 16: + var rest$15 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 116); + var fmt$0 = rest$15, ign_flag$0 = 0; + continue; + case 17: + var rest$16 = fmt$0[2], fmting_lit = fmt$0[1]; + bprint_string_literal(buf, string_of_formatting_lit(fmting_lit)); + var fmt$0 = rest$16; + continue; + case 18: + var rest$17 = fmt$0[2], fmting_gen = fmt$0[1]; + if(0 === fmting_gen[0]){ + var str$0 = fmting_gen[1][2]; + buffer_add_string(buf, cst$15); + buffer_add_string(buf, str$0); + } + else{ + var str$1 = fmting_gen[1][2]; + buffer_add_string(buf, cst$16); + buffer_add_string(buf, str$1); + } + var fmt$0 = rest$17; + continue; + case 19: + var rest$18 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 114); + var fmt$0 = rest$18, ign_flag$0 = 0; + continue; + case 20: + var rest$19 = fmt$0[3], char_set = fmt$0[2], width_opt = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_pad_opt(buf, width_opt); + var + print_char = + function(buf, i){ + var c = caml_call1(Stdlib[29], i); + return 37 === c + ? (buffer_add_char(buf, 37), buffer_add_char(buf, 37)) + : 64 + === c + ? (buffer_add_char(buf, 37), buffer_add_char(buf, 64)) + : buffer_add_char(buf, c); + }; + buffer_add_char(buf, 91); + var + set = + is_in_char_set(char_set, 0) + ? (buffer_add_char(buf, 94), rev_char_set(char_set)) + : char_set, + is_alone$0 = + function(set){ + function is_alone(c){ + var + after = caml_call1(Stdlib_Char[1], c + 1 | 0), + before = caml_call1(Stdlib_Char[1], c - 1 | 0), + _dH_ = is_in_char_set(set, c); + if(_dH_) + var + _dI_ = is_in_char_set(set, before), + _dJ_ = _dI_ ? is_in_char_set(set, after) : _dI_, + _dK_ = 1 - _dJ_; + else + var _dK_ = _dH_; + return _dK_; + } + return is_alone; + }, + is_alone = is_alone$0(set); + if(is_alone(93)) buffer_add_char(buf, 93); + var i = 1; + b: + for(;;){ + if(i < 256){ + if(! is_in_char_set(set, caml_call1(Stdlib[29], i))){var i$0 = i + 1 | 0, i = i$0; continue;} + var switcher = caml_call1(Stdlib[29], i) - 45 | 0, switch$0 = 0; + if(48 < switcher >>> 0) + if(210 <= switcher) print_char(buf, 255); else switch$0 = 1; + else{ + if(46 < switcher - 1 >>> 0){ + var i$2 = i + 1 | 0, i = i$2; + continue; + } + switch$0 = 1; + } + if(switch$0){ + var i$1 = i + 1 | 0; + if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1))){ + print_char(buf, i$1 - 1 | 0); + var i$6 = i$1 + 1 | 0, i = i$6; + continue; + } + var + switcher$0 = caml_call1(Stdlib[29], i$1) - 45 | 0, + switch$1 = 0; + if(48 < switcher$0 >>> 0){ + if(210 <= switcher$0){ + print_char(buf, 254); + print_char(buf, 255); + switch$1 = 1; + } + } + else if + (46 < switcher$0 - 1 >>> 0 + && ! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ + print_char(buf, i$1 - 1 | 0); + var i$5 = i$1 + 1 | 0, i = i$5; + continue; + } + if(! switch$1){ + if(! is_in_char_set(set, caml_call1(Stdlib[29], i$1 + 1 | 0))){ + print_char(buf, i$1 - 1 | 0); + print_char(buf, i$1); + var i$4 = i$1 + 2 | 0, i = i$4; + continue; + } + var j = i$1 + 2 | 0, i$3 = i$1 - 1 | 0, j$0 = j; + for(;;){ + if + (256 !== j$0 + && is_in_char_set(set, caml_call1(Stdlib[29], j$0))){var j$1 = j$0 + 1 | 0, j$0 = j$1; continue;} + print_char(buf, i$3); + print_char(buf, 45); + print_char(buf, j$0 - 1 | 0); + if(j$0 < 256){var i$7 = j$0 + 1 | 0, i = i$7; continue b;} + break; + } + } + } + } + if(is_alone(45)) buffer_add_char(buf, 45); + buffer_add_char(buf, 93); + var fmt$0 = rest$19, ign_flag$0 = 0; + continue a; + } + case 21: + var rest$20 = fmt$0[2], counter = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + switch(counter){ + case 0: + var _dD_ = 108; break; + case 1: + var _dD_ = 110; break; + default: var _dD_ = 78; + } + buffer_add_char(buf, _dD_); + var fmt$0 = rest$20, ign_flag$0 = 0; + continue; + case 22: + var rest$21 = fmt$0[1]; + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + bprint_string_literal(buf, cst_0c); + var fmt$0 = rest$21, ign_flag$0 = 0; + continue; + case 23: + var + rest$22 = fmt$0[2], + ign = fmt$0[1], + fmt$1 = param_format_of_ignored_format(ign, rest$22)[1], + fmt$0 = fmt$1, + ign_flag$0 = 1; + continue; + default: + var + rest$23 = fmt$0[3], + arity = fmt$0[1], + _dF_ = int_of_custom_arity(arity), + _dE_ = 1; + if(_dF_ >= 1){ + var i$8 = _dE_; + for(;;){ + buffer_add_char(buf, 37); + bprint_ignored_flag(buf, ign_flag$0); + buffer_add_char(buf, 63); + var _dG_ = i$8 + 1 | 0; + if(_dF_ !== i$8){var i$8 = _dG_; continue;} + break; + } + } + var fmt$0 = rest$23, ign_flag$0 = 0; + continue; + } + } + } + fmtiter(fmt, 0); + return buffer_contents(buf); + } + function symm(param){ + if(typeof param === "number") return 0; + switch(param[0]){ + case 0: + var rest = param[1]; return [0, symm(rest)]; + case 1: + var rest$0 = param[1]; return [1, symm(rest$0)]; + case 2: + var rest$1 = param[1]; return [2, symm(rest$1)]; + case 3: + var rest$2 = param[1]; return [3, symm(rest$2)]; + case 4: + var rest$3 = param[1]; return [4, symm(rest$3)]; + case 5: + var rest$4 = param[1]; return [5, symm(rest$4)]; + case 6: + var rest$5 = param[1]; return [6, symm(rest$5)]; + case 7: + var rest$6 = param[1]; return [7, symm(rest$6)]; + case 8: + var rest$7 = param[2], ty = param[1]; return [8, ty, symm(rest$7)]; + case 9: + var rest$8 = param[3], ty2 = param[2], ty1 = param[1]; + return [9, ty2, ty1, symm(rest$8)]; + case 10: + var rest$9 = param[1]; return [10, symm(rest$9)]; + case 11: + var rest$10 = param[1]; return [11, symm(rest$10)]; + case 12: + var rest$11 = param[1]; return [12, symm(rest$11)]; + case 13: + var rest$12 = param[1]; return [13, symm(rest$12)]; + default: var rest$13 = param[1]; return [14, symm(rest$13)]; + } + } + function fmtty_rel_det(param){ + if(typeof param !== "number") + switch(param[0]){ + case 0: + var + rest = param[1], + match = fmtty_rel_det(rest), + de = match[4], + ed = match[3], + af = match[2], + fa = match[1], + _di_ = function(param){caml_call1(af, 0); return 0;}; + return [0, + function(param){caml_call1(fa, 0); return 0;}, + _di_, + ed, + de]; + case 1: + var + rest$0 = param[1], + match$0 = fmtty_rel_det(rest$0), + de$0 = match$0[4], + ed$0 = match$0[3], + af$0 = match$0[2], + fa$0 = match$0[1], + _dj_ = function(param){caml_call1(af$0, 0); return 0;}; + return [0, + function(param){caml_call1(fa$0, 0); return 0;}, + _dj_, + ed$0, + de$0]; + case 2: + var + rest$1 = param[1], + match$1 = fmtty_rel_det(rest$1), + de$1 = match$1[4], + ed$1 = match$1[3], + af$1 = match$1[2], + fa$1 = match$1[1], + _dk_ = function(param){caml_call1(af$1, 0); return 0;}; + return [0, + function(param){caml_call1(fa$1, 0); return 0;}, + _dk_, + ed$1, + de$1]; + case 3: + var + rest$2 = param[1], + match$2 = fmtty_rel_det(rest$2), + de$2 = match$2[4], + ed$2 = match$2[3], + af$2 = match$2[2], + fa$2 = match$2[1], + _dl_ = function(param){caml_call1(af$2, 0); return 0;}; + return [0, + function(param){caml_call1(fa$2, 0); return 0;}, + _dl_, + ed$2, + de$2]; + case 4: + var + rest$3 = param[1], + match$3 = fmtty_rel_det(rest$3), + de$3 = match$3[4], + ed$3 = match$3[3], + af$3 = match$3[2], + fa$3 = match$3[1], + _dm_ = function(param){caml_call1(af$3, 0); return 0;}; + return [0, + function(param){caml_call1(fa$3, 0); return 0;}, + _dm_, + ed$3, + de$3]; + case 5: + var + rest$4 = param[1], + match$4 = fmtty_rel_det(rest$4), + de$4 = match$4[4], + ed$4 = match$4[3], + af$4 = match$4[2], + fa$4 = match$4[1], + _dn_ = function(param){caml_call1(af$4, 0); return 0;}; + return [0, + function(param){caml_call1(fa$4, 0); return 0;}, + _dn_, + ed$4, + de$4]; + case 6: + var + rest$5 = param[1], + match$5 = fmtty_rel_det(rest$5), + de$5 = match$5[4], + ed$5 = match$5[3], + af$5 = match$5[2], + fa$5 = match$5[1], + _do_ = function(param){caml_call1(af$5, 0); return 0;}; + return [0, + function(param){caml_call1(fa$5, 0); return 0;}, + _do_, + ed$5, + de$5]; + case 7: + var + rest$6 = param[1], + match$6 = fmtty_rel_det(rest$6), + de$6 = match$6[4], + ed$6 = match$6[3], + af$6 = match$6[2], + fa$6 = match$6[1], + _dp_ = function(param){caml_call1(af$6, 0); return 0;}; + return [0, + function(param){caml_call1(fa$6, 0); return 0;}, + _dp_, + ed$6, + de$6]; + case 8: + var + rest$7 = param[2], + match$7 = fmtty_rel_det(rest$7), + de$7 = match$7[4], + ed$7 = match$7[3], + af$7 = match$7[2], + fa$7 = match$7[1], + _dq_ = function(param){caml_call1(af$7, 0); return 0;}; + return [0, + function(param){caml_call1(fa$7, 0); return 0;}, + _dq_, + ed$7, + de$7]; + case 9: + var + rest$8 = param[3], + ty2 = param[2], + ty1 = param[1], + match$8 = fmtty_rel_det(rest$8), + de$8 = match$8[4], + ed$8 = match$8[3], + af$8 = match$8[2], + fa$8 = match$8[1], + ty = trans(symm(ty1), ty2), + match$9 = fmtty_rel_det(ty), + jd = match$9[4], + dj = match$9[3], + ga = match$9[2], + ag = match$9[1], + _dr_ = + function(param){caml_call1(jd, 0); caml_call1(de$8, 0); return 0;}, + _ds_ = + function(param){caml_call1(ed$8, 0); caml_call1(dj, 0); return 0;}, + _dt_ = + function(param){caml_call1(ga, 0); caml_call1(af$8, 0); return 0;}; + return [0, + function(param){ + caml_call1(fa$8, 0); + caml_call1(ag, 0); + return 0; + }, + _dt_, + _ds_, + _dr_]; + case 10: + var + rest$9 = param[1], + match$10 = fmtty_rel_det(rest$9), + de$9 = match$10[4], + ed$9 = match$10[3], + af$9 = match$10[2], + fa$9 = match$10[1], + _du_ = function(param){caml_call1(af$9, 0); return 0;}; + return [0, + function(param){caml_call1(fa$9, 0); return 0;}, + _du_, + ed$9, + de$9]; + case 11: + var + rest$10 = param[1], + match$11 = fmtty_rel_det(rest$10), + de$10 = match$11[4], + ed$10 = match$11[3], + af$10 = match$11[2], + fa$10 = match$11[1], + _dv_ = function(param){caml_call1(af$10, 0); return 0;}; + return [0, + function(param){caml_call1(fa$10, 0); return 0;}, + _dv_, + ed$10, + de$10]; + case 12: + var + rest$11 = param[1], + match$12 = fmtty_rel_det(rest$11), + de$11 = match$12[4], + ed$11 = match$12[3], + af$11 = match$12[2], + fa$11 = match$12[1], + _dw_ = function(param){caml_call1(af$11, 0); return 0;}; + return [0, + function(param){caml_call1(fa$11, 0); return 0;}, + _dw_, + ed$11, + de$11]; + case 13: + var + rest$12 = param[1], + match$13 = fmtty_rel_det(rest$12), + de$12 = match$13[4], + ed$12 = match$13[3], + af$12 = match$13[2], + fa$12 = match$13[1], + _dx_ = function(param){caml_call1(de$12, 0); return 0;}, + _dy_ = function(param){caml_call1(ed$12, 0); return 0;}, + _dz_ = function(param){caml_call1(af$12, 0); return 0;}; + return [0, + function(param){caml_call1(fa$12, 0); return 0;}, + _dz_, + _dy_, + _dx_]; + default: + var + rest$13 = param[1], + match$14 = fmtty_rel_det(rest$13), + de$13 = match$14[4], + ed$13 = match$14[3], + af$13 = match$14[2], + fa$13 = match$14[1], + _dA_ = function(param){caml_call1(de$13, 0); return 0;}, + _dB_ = function(param){caml_call1(ed$13, 0); return 0;}, + _dC_ = function(param){caml_call1(af$13, 0); return 0;}; + return [0, + function(param){caml_call1(fa$13, 0); return 0;}, + _dC_, + _dB_, + _dA_]; + } + function _df_(param){return 0;} + function _dg_(param){return 0;} + function _dh_(param){return 0;} + return [0, function(param){return 0;}, _dh_, _dg_, _df_]; + } + function trans(ty1, ty2){ + var switch$0 = 0; + if(typeof ty1 === "number"){ + if(typeof ty2 === "number") return 0; + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + default: + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + } + } + else + switch(ty1[0]){ + case 0: + var rest1 = ty1[1], switch$1 = 0; + if(typeof ty2 === "number") + switch$1 = 1; + else + switch(ty2[0]){ + case 0: + var rest2 = ty2[1]; return [0, trans(rest1, rest2)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$1 = 1; + } + if(switch$1) switch$0 = 7; + break; + case 1: + var rest1$0 = ty1[1], switch$2 = 0; + if(typeof ty2 === "number") + switch$2 = 1; + else + switch(ty2[0]){ + case 1: + var rest2$0 = ty2[1]; return [1, trans(rest1$0, rest2$0)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$2 = 1; + } + if(switch$2) switch$0 = 7; + break; + case 2: + var rest1$1 = ty1[1], switch$3 = 0; + if(typeof ty2 === "number") + switch$3 = 1; + else + switch(ty2[0]){ + case 2: + var rest2$1 = ty2[1]; return [2, trans(rest1$1, rest2$1)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$3 = 1; + } + if(switch$3) switch$0 = 7; + break; + case 3: + var rest1$2 = ty1[1], switch$4 = 0; + if(typeof ty2 === "number") + switch$4 = 1; + else + switch(ty2[0]){ + case 3: + var rest2$2 = ty2[1]; return [3, trans(rest1$2, rest2$2)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$4 = 1; + } + if(switch$4) switch$0 = 7; + break; + case 4: + var rest1$3 = ty1[1], switch$5 = 0; + if(typeof ty2 === "number") + switch$5 = 1; + else + switch(ty2[0]){ + case 4: + var rest2$3 = ty2[1]; return [4, trans(rest1$3, rest2$3)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$5 = 1; + } + if(switch$5) switch$0 = 7; + break; + case 5: + var rest1$4 = ty1[1], switch$6 = 0; + if(typeof ty2 === "number") + switch$6 = 1; + else + switch(ty2[0]){ + case 5: + var rest2$4 = ty2[1]; return [5, trans(rest1$4, rest2$4)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$6 = 1; + } + if(switch$6) switch$0 = 7; + break; + case 6: + var rest1$5 = ty1[1], switch$7 = 0; + if(typeof ty2 === "number") + switch$7 = 1; + else + switch(ty2[0]){ + case 6: + var rest2$5 = ty2[1]; return [6, trans(rest1$5, rest2$5)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$7 = 1; + } + if(switch$7) switch$0 = 7; + break; + case 7: + var rest1$6 = ty1[1], switch$8 = 0; + if(typeof ty2 === "number") + switch$8 = 1; + else + switch(ty2[0]){ + case 7: + var rest2$6 = ty2[1]; return [7, trans(rest1$6, rest2$6)]; + case 8: + switch$0 = 5; break; + case 9: + switch$0 = 6; break; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$8 = 1; + } + if(switch$8) switch$0 = 7; + break; + case 8: + var rest1$7 = ty1[2], ty1$0 = ty1[1], switch$9 = 0; + if(typeof ty2 === "number") + switch$9 = 1; + else + switch(ty2[0]){ + case 8: + var + rest2$7 = ty2[2], + ty2$0 = ty2[1], + _de_ = trans(rest1$7, rest2$7); + return [8, trans(ty1$0, ty2$0), _de_]; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$9 = 1; + } + if(switch$9) + throw caml_maybe_attach_backtrace([0, Assert_failure, _k_], 1); + break; + case 9: + var rest1$8 = ty1[3], ty12 = ty1[2], ty11 = ty1[1], switch$10 = 0; + if(typeof ty2 === "number") + switch$10 = 1; + else + switch(ty2[0]){ + case 8: + switch$0 = 5; break; + case 9: + var + rest2$8 = ty2[3], + ty22 = ty2[2], + ty21 = ty2[1], + ty = trans(symm(ty12), ty21), + match = fmtty_rel_det(ty), + f4 = match[4], + f2 = match[2]; + caml_call1(f2, 0); + caml_call1(f4, 0); + return [9, ty11, ty22, trans(rest1$8, rest2$8)]; + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + switch$0 = 4; break; + default: switch$10 = 1; + } + if(switch$10) + throw caml_maybe_attach_backtrace([0, Assert_failure, _l_], 1); + break; + case 10: + var rest1$9 = ty1[1]; + if(typeof ty2 !== "number" && 10 === ty2[0]){ + var rest2$9 = ty2[1]; + return [10, trans(rest1$9, rest2$9)]; + } + throw caml_maybe_attach_backtrace([0, Assert_failure, _m_], 1); + case 11: + var rest1$10 = ty1[1], switch$11 = 0; + if(typeof ty2 === "number") + switch$11 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + var rest2$10 = ty2[1]; return [11, trans(rest1$10, rest2$10)]; + default: switch$11 = 1; + } + if(switch$11) + throw caml_maybe_attach_backtrace([0, Assert_failure, _n_], 1); + break; + case 12: + var rest1$11 = ty1[1], switch$12 = 0; + if(typeof ty2 === "number") + switch$12 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + var rest2$11 = ty2[1]; return [12, trans(rest1$11, rest2$11)]; + default: switch$12 = 1; + } + if(switch$12) + throw caml_maybe_attach_backtrace([0, Assert_failure, _o_], 1); + break; + case 13: + var rest1$12 = ty1[1], switch$13 = 0; + if(typeof ty2 === "number") + switch$13 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + var rest2$12 = ty2[1]; return [13, trans(rest1$12, rest2$12)]; + default: switch$13 = 1; + } + if(switch$13) + throw caml_maybe_attach_backtrace([0, Assert_failure, _p_], 1); + break; + default: + var rest1$13 = ty1[1], switch$14 = 0; + if(typeof ty2 === "number") + switch$14 = 1; + else + switch(ty2[0]){ + case 10: break; + case 11: + switch$0 = 1; break; + case 12: + switch$0 = 2; break; + case 13: + switch$0 = 3; break; + case 14: + var rest2$13 = ty2[1]; return [14, trans(rest1$13, rest2$13)]; + default: switch$14 = 1; + } + if(switch$14) + throw caml_maybe_attach_backtrace([0, Assert_failure, _q_], 1); + } + switch(switch$0){ + case 0: + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + case 1: + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + case 2: + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + case 3: + throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); + case 4: + throw caml_maybe_attach_backtrace([0, Assert_failure, _i_], 1); + case 5: + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + case 6: + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + default: throw caml_maybe_attach_backtrace([0, Assert_failure, _j_], 1); + } + } + function fmtty_of_padding_fmtty(pad, fmtty){ + return typeof pad === "number" ? fmtty : 0 === pad[0] ? fmtty : [2, fmtty]; + } + function fmtty_of_custom(arity, fmtty){ + if(! arity) return fmtty; + var arity$0 = arity[1]; + return [12, fmtty_of_custom(arity$0, fmtty)]; + } + function fmtty_of_fmt(fmtty){ + var fmtty$0 = fmtty; + for(;;){ + if(typeof fmtty$0 === "number") return 0; + switch(fmtty$0[0]){ + case 0: + var rest = fmtty$0[1]; return [0, fmtty_of_fmt(rest)]; + case 1: + var rest$0 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$0)]; + case 2: + var rest$1 = fmtty$0[2], pad = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad, [1, fmtty_of_fmt(rest$1)]); + case 3: + var rest$2 = fmtty$0[2], pad$0 = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$0, [1, fmtty_of_fmt(rest$2)]); + case 4: + var + rest$3 = fmtty$0[4], + prec = fmtty$0[3], + pad$1 = fmtty$0[2], + ty_rest = fmtty_of_fmt(rest$3), + prec_ty = fmtty_of_precision_fmtty(prec, [2, ty_rest]); + return fmtty_of_padding_fmtty(pad$1, prec_ty); + case 5: + var + rest$4 = fmtty$0[4], + prec$0 = fmtty$0[3], + pad$2 = fmtty$0[2], + ty_rest$0 = fmtty_of_fmt(rest$4), + prec_ty$0 = fmtty_of_precision_fmtty(prec$0, [3, ty_rest$0]); + return fmtty_of_padding_fmtty(pad$2, prec_ty$0); + case 6: + var + rest$5 = fmtty$0[4], + prec$1 = fmtty$0[3], + pad$3 = fmtty$0[2], + ty_rest$1 = fmtty_of_fmt(rest$5), + prec_ty$1 = fmtty_of_precision_fmtty(prec$1, [4, ty_rest$1]); + return fmtty_of_padding_fmtty(pad$3, prec_ty$1); + case 7: + var + rest$6 = fmtty$0[4], + prec$2 = fmtty$0[3], + pad$4 = fmtty$0[2], + ty_rest$2 = fmtty_of_fmt(rest$6), + prec_ty$2 = fmtty_of_precision_fmtty(prec$2, [5, ty_rest$2]); + return fmtty_of_padding_fmtty(pad$4, prec_ty$2); + case 8: + var + rest$7 = fmtty$0[4], + prec$3 = fmtty$0[3], + pad$5 = fmtty$0[2], + ty_rest$3 = fmtty_of_fmt(rest$7), + prec_ty$3 = fmtty_of_precision_fmtty(prec$3, [6, ty_rest$3]); + return fmtty_of_padding_fmtty(pad$5, prec_ty$3); + case 9: + var rest$8 = fmtty$0[2], pad$6 = fmtty$0[1]; + return fmtty_of_padding_fmtty(pad$6, [7, fmtty_of_fmt(rest$8)]); + case 10: + var fmtty$1 = fmtty$0[1], fmtty$0 = fmtty$1; continue; + case 11: + var fmtty$2 = fmtty$0[2], fmtty$0 = fmtty$2; continue; + case 12: + var fmtty$3 = fmtty$0[2], fmtty$0 = fmtty$3; continue; + case 13: + var rest$9 = fmtty$0[3], ty = fmtty$0[2]; + return [8, ty, fmtty_of_fmt(rest$9)]; + case 14: + var rest$10 = fmtty$0[3], ty$0 = fmtty$0[2]; + return [9, ty$0, ty$0, fmtty_of_fmt(rest$10)]; + case 15: + var rest$11 = fmtty$0[1]; return [10, fmtty_of_fmt(rest$11)]; + case 16: + var rest$12 = fmtty$0[1]; return [11, fmtty_of_fmt(rest$12)]; + case 17: + var fmtty$4 = fmtty$0[2], fmtty$0 = fmtty$4; continue; + case 18: + var + rest$13 = fmtty$0[2], + formatting_gen = fmtty$0[1], + _db_ = fmtty_of_fmt(rest$13); + if(0 === formatting_gen[0]) + var fmt = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt); + else + var fmt$0 = formatting_gen[1][1], _dc_ = fmtty_of_fmt(fmt$0); + return caml_call2(CamlinternalFormatBasics[1], _dc_, _db_); + case 19: + var rest$14 = fmtty$0[1]; return [13, fmtty_of_fmt(rest$14)]; + case 20: + var rest$15 = fmtty$0[3]; return [1, fmtty_of_fmt(rest$15)]; + case 21: + var rest$16 = fmtty$0[2]; return [2, fmtty_of_fmt(rest$16)]; + case 22: + var rest$17 = fmtty$0[1]; return [0, fmtty_of_fmt(rest$17)]; + case 23: + var fmtty$5 = fmtty$0[2], ign = fmtty$0[1]; + if(typeof ign === "number") + switch(ign){ + case 0: + var fmtty$0 = fmtty$5; continue; + case 1: + var fmtty$0 = fmtty$5; continue; + case 2: + return [14, fmtty_of_fmt(fmtty$5)]; + default: var fmtty$0 = fmtty$5; continue; + } + switch(ign[0]){ + case 0: + var fmtty$0 = fmtty$5; continue; + case 1: + var fmtty$0 = fmtty$5; continue; + case 2: + var fmtty$0 = fmtty$5; continue; + case 3: + var fmtty$0 = fmtty$5; continue; + case 4: + var fmtty$0 = fmtty$5; continue; + case 5: + var fmtty$0 = fmtty$5; continue; + case 6: + var fmtty$0 = fmtty$5; continue; + case 7: + var fmtty$0 = fmtty$5; continue; + case 8: + var fmtty$0 = fmtty$5; continue; + case 9: + var fmtty$6 = ign[2], _dd_ = fmtty_of_fmt(fmtty$5); + return caml_call2(CamlinternalFormatBasics[1], fmtty$6, _dd_); + case 10: + var fmtty$0 = fmtty$5; continue; + default: var fmtty$0 = fmtty$5; continue; + } + default: + var rest$18 = fmtty$0[3], arity = fmtty$0[1]; + return fmtty_of_custom(arity, fmtty_of_fmt(rest$18)); + } + } + } + function fmtty_of_precision_fmtty(prec, fmtty){ + return typeof prec === "number" ? prec ? [2, fmtty] : fmtty : fmtty; + } + var + Type_mismatch = + [248, cst_CamlinternalFormat_Type_mi, runtime.caml_fresh_oo_id(0)]; + function type_padding(pad, fmtty){ + if(typeof pad === "number") return [0, 0, fmtty]; + if(0 === pad[0]){ + var w = pad[2], padty = pad[1]; + return [0, [0, padty, w], fmtty]; + } + if(typeof fmtty !== "number" && 2 === fmtty[0]){ + var rest = fmtty[1], padty$0 = pad[1]; + return [0, [1, padty$0], rest]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_padprec(pad, prec, fmtty){ + var match = type_padding(pad, fmtty); + if(typeof prec !== "number"){ + var rest$1 = match[2], pad$2 = match[1], p = prec[1]; + return [0, pad$2, [0, p], rest$1]; + } + if(! prec){ + var rest$0 = match[2], pad$1 = match[1]; + return [0, pad$1, 0, rest$0]; + } + var match$0 = match[2]; + if(typeof match$0 !== "number" && 2 === match$0[0]){ + var rest = match$0[1], pad$0 = match[1]; + return [0, pad$0, 1, rest]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_format(fmt, fmtty){ + var _da_ = type_format_gen(fmt, fmtty); + if(typeof _da_[2] !== "number") + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var fmt$0 = _da_[1]; + return fmt$0; + } + function type_ignored_param_one(ign, fmt, fmtty){ + var + match = type_format_gen(fmt, fmtty), + fmtty$0 = match[2], + fmt$0 = match[1]; + return [0, [23, ign, fmt$0], fmtty$0]; + } + function type_format_gen(fmt, fmtty0){ + if(typeof fmt === "number") return [0, 0, fmtty0]; + switch(fmt[0]){ + case 0: + if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ + var + fmtty_rest = fmtty0[1], + fmt_rest = fmt[1], + match = type_format_gen(fmt_rest, fmtty_rest), + fmtty = match[2], + fmt$0 = match[1]; + return [0, [0, fmt$0], fmtty]; + } + break; + case 1: + if(typeof fmtty0 !== "number" && 0 === fmtty0[0]){ + var + fmtty_rest$0 = fmtty0[1], + fmt_rest$0 = fmt[1], + match$0 = type_format_gen(fmt_rest$0, fmtty_rest$0), + fmtty$0 = match$0[2], + fmt$1 = match$0[1]; + return [0, [1, fmt$1], fmtty$0]; + } + break; + case 2: + var + fmt_rest$1 = fmt[2], + pad = fmt[1], + match$1 = type_padding(pad, fmtty0), + pad$0 = match$1[1], + match$2 = match$1[2]; + if(typeof match$2 !== "number" && 1 === match$2[0]){ + var + fmtty_rest$1 = match$2[1], + match$3 = type_format_gen(fmt_rest$1, fmtty_rest$1), + fmtty$1 = match$3[2], + fmt$2 = match$3[1]; + return [0, [2, pad$0, fmt$2], fmtty$1]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 3: + var + fmt_rest$2 = fmt[2], + pad$1 = fmt[1], + match$4 = type_padding(pad$1, fmtty0), + pad$2 = match$4[1], + match$5 = match$4[2]; + if(typeof match$5 !== "number" && 1 === match$5[0]){ + var + fmtty_rest$2 = match$5[1], + match$6 = type_format_gen(fmt_rest$2, fmtty_rest$2), + fmtty$2 = match$6[2], + fmt$3 = match$6[1]; + return [0, [3, pad$2, fmt$3], fmtty$2]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 4: + var + fmt_rest$3 = fmt[4], + prec = fmt[3], + pad$3 = fmt[2], + iconv = fmt[1], + match$7 = type_padprec(pad$3, prec, fmtty0), + pad$4 = match$7[1], + match$8 = match$7[3]; + if(typeof match$8 !== "number" && 2 === match$8[0]){ + var + fmtty_rest$3 = match$8[1], + prec$0 = match$7[2], + match$9 = type_format_gen(fmt_rest$3, fmtty_rest$3), + fmtty$3 = match$9[2], + fmt$4 = match$9[1]; + return [0, [4, iconv, pad$4, prec$0, fmt$4], fmtty$3]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 5: + var + fmt_rest$4 = fmt[4], + prec$1 = fmt[3], + pad$5 = fmt[2], + iconv$0 = fmt[1], + match$10 = type_padprec(pad$5, prec$1, fmtty0), + pad$6 = match$10[1], + match$11 = match$10[3]; + if(typeof match$11 !== "number" && 3 === match$11[0]){ + var + fmtty_rest$4 = match$11[1], + prec$2 = match$10[2], + match$12 = type_format_gen(fmt_rest$4, fmtty_rest$4), + fmtty$4 = match$12[2], + fmt$5 = match$12[1]; + return [0, [5, iconv$0, pad$6, prec$2, fmt$5], fmtty$4]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 6: + var + fmt_rest$5 = fmt[4], + prec$3 = fmt[3], + pad$7 = fmt[2], + iconv$1 = fmt[1], + match$13 = type_padprec(pad$7, prec$3, fmtty0), + pad$8 = match$13[1], + match$14 = match$13[3]; + if(typeof match$14 !== "number" && 4 === match$14[0]){ + var + fmtty_rest$5 = match$14[1], + prec$4 = match$13[2], + match$15 = type_format_gen(fmt_rest$5, fmtty_rest$5), + fmtty$5 = match$15[2], + fmt$6 = match$15[1]; + return [0, [6, iconv$1, pad$8, prec$4, fmt$6], fmtty$5]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 7: + var + fmt_rest$6 = fmt[4], + prec$5 = fmt[3], + pad$9 = fmt[2], + iconv$2 = fmt[1], + match$16 = type_padprec(pad$9, prec$5, fmtty0), + pad$10 = match$16[1], + match$17 = match$16[3]; + if(typeof match$17 !== "number" && 5 === match$17[0]){ + var + fmtty_rest$6 = match$17[1], + prec$6 = match$16[2], + match$18 = type_format_gen(fmt_rest$6, fmtty_rest$6), + fmtty$6 = match$18[2], + fmt$7 = match$18[1]; + return [0, [7, iconv$2, pad$10, prec$6, fmt$7], fmtty$6]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 8: + var + fmt_rest$7 = fmt[4], + prec$7 = fmt[3], + pad$11 = fmt[2], + fconv = fmt[1], + match$19 = type_padprec(pad$11, prec$7, fmtty0), + pad$12 = match$19[1], + match$20 = match$19[3]; + if(typeof match$20 !== "number" && 6 === match$20[0]){ + var + fmtty_rest$7 = match$20[1], + prec$8 = match$19[2], + match$21 = type_format_gen(fmt_rest$7, fmtty_rest$7), + fmtty$7 = match$21[2], + fmt$8 = match$21[1]; + return [0, [8, fconv, pad$12, prec$8, fmt$8], fmtty$7]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 9: + var + fmt_rest$8 = fmt[2], + pad$13 = fmt[1], + match$22 = type_padding(pad$13, fmtty0), + pad$14 = match$22[1], + match$23 = match$22[2]; + if(typeof match$23 !== "number" && 7 === match$23[0]){ + var + fmtty_rest$8 = match$23[1], + match$24 = type_format_gen(fmt_rest$8, fmtty_rest$8), + fmtty$8 = match$24[2], + fmt$9 = match$24[1]; + return [0, [9, pad$14, fmt$9], fmtty$8]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + case 10: + var + fmt_rest$9 = fmt[1], + match$25 = type_format_gen(fmt_rest$9, fmtty0), + fmtty$9 = match$25[2], + fmt$10 = match$25[1]; + return [0, [10, fmt$10], fmtty$9]; + case 11: + var + fmt_rest$10 = fmt[2], + str = fmt[1], + match$26 = type_format_gen(fmt_rest$10, fmtty0), + fmtty$10 = match$26[2], + fmt$11 = match$26[1]; + return [0, [11, str, fmt$11], fmtty$10]; + case 12: + var + fmt_rest$11 = fmt[2], + chr = fmt[1], + match$27 = type_format_gen(fmt_rest$11, fmtty0), + fmtty$11 = match$27[2], + fmt$12 = match$27[1]; + return [0, [12, chr, fmt$12], fmtty$11]; + case 13: + if(typeof fmtty0 !== "number" && 8 === fmtty0[0]){ + var + fmtty_rest$9 = fmtty0[2], + sub_fmtty = fmtty0[1], + fmt_rest$12 = fmt[3], + sub_fmtty$0 = fmt[2], + pad_opt = fmt[1]; + if(caml_notequal([0, sub_fmtty$0], [0, sub_fmtty])) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$28 = type_format_gen(fmt_rest$12, fmtty_rest$9), + fmtty$12 = match$28[2], + fmt$13 = match$28[1]; + return [0, [13, pad_opt, sub_fmtty, fmt$13], fmtty$12]; + } + break; + case 14: + if(typeof fmtty0 !== "number" && 9 === fmtty0[0]){ + var + fmtty_rest$10 = fmtty0[3], + sub_fmtty1 = fmtty0[1], + fmt_rest$13 = fmt[3], + sub_fmtty$1 = fmt[2], + pad_opt$0 = fmt[1], + _c__ = [0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty1)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub_fmtty$1)], _c__)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$29 = + type_format_gen + (fmt_rest$13, + caml_call1(CamlinternalFormatBasics[2], fmtty_rest$10)), + fmtty$13 = match$29[2], + fmt$14 = match$29[1]; + return [0, [14, pad_opt$0, sub_fmtty1, fmt$14], fmtty$13]; + } + break; + case 15: + if(typeof fmtty0 !== "number" && 10 === fmtty0[0]){ + var + fmtty_rest$11 = fmtty0[1], + fmt_rest$14 = fmt[1], + match$30 = type_format_gen(fmt_rest$14, fmtty_rest$11), + fmtty$14 = match$30[2], + fmt$15 = match$30[1]; + return [0, [15, fmt$15], fmtty$14]; + } + break; + case 16: + if(typeof fmtty0 !== "number" && 11 === fmtty0[0]){ + var + fmtty_rest$12 = fmtty0[1], + fmt_rest$15 = fmt[1], + match$31 = type_format_gen(fmt_rest$15, fmtty_rest$12), + fmtty$15 = match$31[2], + fmt$16 = match$31[1]; + return [0, [16, fmt$16], fmtty$15]; + } + break; + case 17: + var + fmt_rest$16 = fmt[2], + formatting_lit = fmt[1], + match$32 = type_format_gen(fmt_rest$16, fmtty0), + fmtty$16 = match$32[2], + fmt$17 = match$32[1]; + return [0, [17, formatting_lit, fmt$17], fmtty$16]; + case 18: + var fmt_rest$17 = fmt[2], formatting_gen = fmt[1]; + if(0 === formatting_gen[0]){ + var + match$36 = formatting_gen[1], + str$0 = match$36[2], + fmt1 = match$36[1], + match$37 = type_format_gen(fmt1, fmtty0), + fmtty2 = match$37[2], + fmt2 = match$37[1], + match$38 = type_format_gen(fmt_rest$17, fmtty2), + fmtty3 = match$38[2], + fmt3 = match$38[1]; + return [0, [18, [0, [0, fmt2, str$0]], fmt3], fmtty3]; + } + var + match$39 = formatting_gen[1], + str$1 = match$39[2], + fmt1$0 = match$39[1], + match$40 = type_format_gen(fmt1$0, fmtty0), + fmtty2$0 = match$40[2], + fmt2$0 = match$40[1], + match$41 = type_format_gen(fmt_rest$17, fmtty2$0), + fmtty3$0 = match$41[2], + fmt3$0 = match$41[1]; + return [0, [18, [1, [0, fmt2$0, str$1]], fmt3$0], fmtty3$0]; + case 19: + if(typeof fmtty0 !== "number" && 13 === fmtty0[0]){ + var + fmtty_rest$13 = fmtty0[1], + fmt_rest$18 = fmt[1], + match$33 = type_format_gen(fmt_rest$18, fmtty_rest$13), + fmtty$17 = match$33[2], + fmt$18 = match$33[1]; + return [0, [19, fmt$18], fmtty$17]; + } + break; + case 20: + if(typeof fmtty0 !== "number" && 1 === fmtty0[0]){ + var + fmtty_rest$14 = fmtty0[1], + fmt_rest$19 = fmt[3], + char_set = fmt[2], + width_opt = fmt[1], + match$34 = type_format_gen(fmt_rest$19, fmtty_rest$14), + fmtty$18 = match$34[2], + fmt$19 = match$34[1]; + return [0, [20, width_opt, char_set, fmt$19], fmtty$18]; + } + break; + case 21: + if(typeof fmtty0 !== "number" && 2 === fmtty0[0]){ + var + fmtty_rest$15 = fmtty0[1], + fmt_rest$20 = fmt[2], + counter = fmt[1], + match$35 = type_format_gen(fmt_rest$20, fmtty_rest$15), + fmtty$19 = match$35[2], + fmt$20 = match$35[1]; + return [0, [21, counter, fmt$20], fmtty$19]; + } + break; + case 23: + var rest = fmt[2], ign = fmt[1]; + if(typeof ign !== "number") + switch(ign[0]){ + case 0: + return type_ignored_param_one(ign, rest, fmtty0); + case 1: + return type_ignored_param_one(ign, rest, fmtty0); + case 2: + return type_ignored_param_one(ign, rest, fmtty0); + case 3: + return type_ignored_param_one(ign, rest, fmtty0); + case 4: + return type_ignored_param_one(ign, rest, fmtty0); + case 5: + return type_ignored_param_one(ign, rest, fmtty0); + case 6: + return type_ignored_param_one(ign, rest, fmtty0); + case 7: + return type_ignored_param_one(ign, rest, fmtty0); + case 8: + var sub_fmtty$2 = ign[2], pad_opt$1 = ign[1]; + return type_ignored_param_one + ([8, pad_opt$1, sub_fmtty$2], rest, fmtty0); + case 9: + var + sub_fmtty$3 = ign[2], + pad_opt$2 = ign[1], + _c$_ = type_ignored_format_substituti(sub_fmtty$3, rest, fmtty0), + match$43 = _c$_[2], + fmtty$21 = match$43[2], + fmt$22 = match$43[1], + sub_fmtty$4 = _c$_[1]; + return [0, [23, [9, pad_opt$2, sub_fmtty$4], fmt$22], fmtty$21]; + case 10: + return type_ignored_param_one(ign, rest, fmtty0); + default: return type_ignored_param_one(ign, rest, fmtty0); + } + switch(ign){ + case 0: + return type_ignored_param_one(ign, rest, fmtty0); + case 1: + return type_ignored_param_one(ign, rest, fmtty0); + case 2: + if(typeof fmtty0 !== "number" && 14 === fmtty0[0]){ + var + fmtty_rest$16 = fmtty0[1], + match$42 = type_format_gen(rest, fmtty_rest$16), + fmtty$20 = match$42[2], + fmt$21 = match$42[1]; + return [0, [23, 2, fmt$21], fmtty$20]; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + default: return type_ignored_param_one(ign, rest, fmtty0); + } + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function type_ignored_format_substituti(sub_fmtty, fmt, fmtty){ + if(typeof sub_fmtty === "number") + return [0, 0, type_format_gen(fmt, fmtty)]; + switch(sub_fmtty[0]){ + case 0: + if(typeof fmtty !== "number" && 0 === fmtty[0]){ + var + fmtty_rest = fmtty[1], + sub_fmtty_rest = sub_fmtty[1], + match = + type_ignored_format_substituti(sub_fmtty_rest, fmt, fmtty_rest), + fmt$0 = match[2], + sub_fmtty_rest$0 = match[1]; + return [0, [0, sub_fmtty_rest$0], fmt$0]; + } + break; + case 1: + if(typeof fmtty !== "number" && 1 === fmtty[0]){ + var + fmtty_rest$0 = fmtty[1], + sub_fmtty_rest$1 = sub_fmtty[1], + match$0 = + type_ignored_format_substituti(sub_fmtty_rest$1, fmt, fmtty_rest$0), + fmt$1 = match$0[2], + sub_fmtty_rest$2 = match$0[1]; + return [0, [1, sub_fmtty_rest$2], fmt$1]; + } + break; + case 2: + if(typeof fmtty !== "number" && 2 === fmtty[0]){ + var + fmtty_rest$1 = fmtty[1], + sub_fmtty_rest$3 = sub_fmtty[1], + match$1 = + type_ignored_format_substituti(sub_fmtty_rest$3, fmt, fmtty_rest$1), + fmt$2 = match$1[2], + sub_fmtty_rest$4 = match$1[1]; + return [0, [2, sub_fmtty_rest$4], fmt$2]; + } + break; + case 3: + if(typeof fmtty !== "number" && 3 === fmtty[0]){ + var + fmtty_rest$2 = fmtty[1], + sub_fmtty_rest$5 = sub_fmtty[1], + match$2 = + type_ignored_format_substituti(sub_fmtty_rest$5, fmt, fmtty_rest$2), + fmt$3 = match$2[2], + sub_fmtty_rest$6 = match$2[1]; + return [0, [3, sub_fmtty_rest$6], fmt$3]; + } + break; + case 4: + if(typeof fmtty !== "number" && 4 === fmtty[0]){ + var + fmtty_rest$3 = fmtty[1], + sub_fmtty_rest$7 = sub_fmtty[1], + match$3 = + type_ignored_format_substituti(sub_fmtty_rest$7, fmt, fmtty_rest$3), + fmt$4 = match$3[2], + sub_fmtty_rest$8 = match$3[1]; + return [0, [4, sub_fmtty_rest$8], fmt$4]; + } + break; + case 5: + if(typeof fmtty !== "number" && 5 === fmtty[0]){ + var + fmtty_rest$4 = fmtty[1], + sub_fmtty_rest$9 = sub_fmtty[1], + match$4 = + type_ignored_format_substituti(sub_fmtty_rest$9, fmt, fmtty_rest$4), + fmt$5 = match$4[2], + sub_fmtty_rest$10 = match$4[1]; + return [0, [5, sub_fmtty_rest$10], fmt$5]; + } + break; + case 6: + if(typeof fmtty !== "number" && 6 === fmtty[0]){ + var + fmtty_rest$5 = fmtty[1], + sub_fmtty_rest$11 = sub_fmtty[1], + match$5 = + type_ignored_format_substituti + (sub_fmtty_rest$11, fmt, fmtty_rest$5), + fmt$6 = match$5[2], + sub_fmtty_rest$12 = match$5[1]; + return [0, [6, sub_fmtty_rest$12], fmt$6]; + } + break; + case 7: + if(typeof fmtty !== "number" && 7 === fmtty[0]){ + var + fmtty_rest$6 = fmtty[1], + sub_fmtty_rest$13 = sub_fmtty[1], + match$6 = + type_ignored_format_substituti + (sub_fmtty_rest$13, fmt, fmtty_rest$6), + fmt$7 = match$6[2], + sub_fmtty_rest$14 = match$6[1]; + return [0, [7, sub_fmtty_rest$14], fmt$7]; + } + break; + case 8: + if(typeof fmtty !== "number" && 8 === fmtty[0]){ + var + fmtty_rest$7 = fmtty[2], + sub2_fmtty = fmtty[1], + sub_fmtty_rest$15 = sub_fmtty[2], + sub2_fmtty$0 = sub_fmtty[1]; + if(caml_notequal([0, sub2_fmtty$0], [0, sub2_fmtty])) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + match$7 = + type_ignored_format_substituti + (sub_fmtty_rest$15, fmt, fmtty_rest$7), + fmt$8 = match$7[2], + sub_fmtty_rest$16 = match$7[1]; + return [0, [8, sub2_fmtty, sub_fmtty_rest$16], fmt$8]; + } + break; + case 9: + if(typeof fmtty !== "number" && 9 === fmtty[0]){ + var + fmtty_rest$8 = fmtty[3], + sub2_fmtty$1 = fmtty[2], + sub1_fmtty = fmtty[1], + sub_fmtty_rest$17 = sub_fmtty[3], + sub2_fmtty$2 = sub_fmtty[2], + sub1_fmtty$0 = sub_fmtty[1], + _c8_ = [0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub1_fmtty$0)], _c8_)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var _c9_ = [0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$1)]; + if + (caml_notequal + ([0, caml_call1(CamlinternalFormatBasics[2], sub2_fmtty$2)], _c9_)) + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + var + sub_fmtty$0 = trans(symm(sub1_fmtty), sub2_fmtty$1), + match$8 = fmtty_rel_det(sub_fmtty$0), + f4 = match$8[4], + f2 = match$8[2]; + caml_call1(f2, 0); + caml_call1(f4, 0); + var + match$9 = + type_ignored_format_substituti + (caml_call1(CamlinternalFormatBasics[2], sub_fmtty_rest$17), + fmt, + fmtty_rest$8), + fmt$9 = match$9[2], + sub_fmtty_rest$18 = match$9[1]; + return [0, + [9, sub1_fmtty, sub2_fmtty$1, symm(sub_fmtty_rest$18)], + fmt$9]; + } + break; + case 10: + if(typeof fmtty !== "number" && 10 === fmtty[0]){ + var + fmtty_rest$9 = fmtty[1], + sub_fmtty_rest$19 = sub_fmtty[1], + match$10 = + type_ignored_format_substituti + (sub_fmtty_rest$19, fmt, fmtty_rest$9), + fmt$10 = match$10[2], + sub_fmtty_rest$20 = match$10[1]; + return [0, [10, sub_fmtty_rest$20], fmt$10]; + } + break; + case 11: + if(typeof fmtty !== "number" && 11 === fmtty[0]){ + var + fmtty_rest$10 = fmtty[1], + sub_fmtty_rest$21 = sub_fmtty[1], + match$11 = + type_ignored_format_substituti + (sub_fmtty_rest$21, fmt, fmtty_rest$10), + fmt$11 = match$11[2], + sub_fmtty_rest$22 = match$11[1]; + return [0, [11, sub_fmtty_rest$22], fmt$11]; + } + break; + case 13: + if(typeof fmtty !== "number" && 13 === fmtty[0]){ + var + fmtty_rest$11 = fmtty[1], + sub_fmtty_rest$23 = sub_fmtty[1], + match$12 = + type_ignored_format_substituti + (sub_fmtty_rest$23, fmt, fmtty_rest$11), + fmt$12 = match$12[2], + sub_fmtty_rest$24 = match$12[1]; + return [0, [13, sub_fmtty_rest$24], fmt$12]; + } + break; + case 14: + if(typeof fmtty !== "number" && 14 === fmtty[0]){ + var + fmtty_rest$12 = fmtty[1], + sub_fmtty_rest$25 = sub_fmtty[1], + match$13 = + type_ignored_format_substituti + (sub_fmtty_rest$25, fmt, fmtty_rest$12), + fmt$13 = match$13[2], + sub_fmtty_rest$26 = match$13[1]; + return [0, [14, sub_fmtty_rest$26], fmt$13]; + } + break; + } + throw caml_maybe_attach_backtrace(Type_mismatch, 1); + } + function recast(fmt, fmtty){ + var _c7_ = symm(fmtty); + return type_format(fmt, caml_call1(CamlinternalFormatBasics[2], _c7_)); + } + function fix_padding(padty, width, str){ + var + len = caml_ml_string_length(str), + padty$0 = 0 <= width ? padty : 0, + width$0 = caml_call1(Stdlib[18], width); + if(width$0 <= len) return str; + var + _c6_ = 2 === padty$0 ? 48 : 32, + res = caml_call2(Stdlib_Bytes[1], width$0, _c6_); + switch(padty$0){ + case 0: + caml_call5(Stdlib_String[48], str, 0, res, 0, len); break; + case 1: + caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); + break; + default: + var switch$0 = 0; + if(0 < len){ + var switch$1 = 0; + if + (43 !== caml_string_get(str, 0) + && 45 !== caml_string_get(str, 0) && 32 !== caml_string_get(str, 0)){switch$0 = 1; switch$1 = 1;} + if(! switch$1){ + caml_bytes_set(res, 0, caml_string_get(str, 0)); + caml_call5 + (Stdlib_String[48], + str, + 1, + res, + (width$0 - len | 0) + 1 | 0, + len - 1 | 0); + } + } + else + switch$0 = 1; + if(switch$0){ + var switch$2 = 0; + if(1 < len && 48 === caml_string_get(str, 0)){ + var switch$3 = 0; + if(120 === caml_string_get(str, 1) || 88 === caml_string_get(str, 1)) + switch$3 = 1; + if(switch$3){ + caml_bytes_set(res, 1, caml_string_get(str, 1)); + caml_call5 + (Stdlib_String[48], + str, + 2, + res, + (width$0 - len | 0) + 2 | 0, + len - 2 | 0); + switch$2 = 1; + } + } + if(! switch$2) + caml_call5(Stdlib_String[48], str, 0, res, width$0 - len | 0, len); + } + } + return caml_call1(Stdlib_Bytes[48], res); + } + function fix_int_precision(prec, str){ + var + prec$0 = caml_call1(Stdlib[18], prec), + len = caml_ml_string_length(str), + c = caml_string_get(str, 0), + switch$0 = 0; + if(58 <= c){ + if(71 <= c){ + if(5 >= c - 97 >>> 0) switch$0 = 1; + } + else if(65 <= c) switch$0 = 1; + } + else{ + var switch$1 = 0; + if(32 === c) + switch$1 = 1; + else if(43 <= c) + switch(c - 43 | 0){ + case 5: + if(len < (prec$0 + 2 | 0) && 1 < len){ + var switch$2 = 0; + if + (120 !== caml_string_get(str, 1) && 88 !== caml_string_get(str, 1)) + switch$2 = 1; + if(! switch$2){ + var res$1 = caml_call2(Stdlib_Bytes[1], prec$0 + 2 | 0, 48); + caml_bytes_set(res$1, 1, caml_string_get(str, 1)); + caml_call5 + (Stdlib_String[48], + str, + 2, + res$1, + (prec$0 - len | 0) + 4 | 0, + len - 2 | 0); + return caml_call1(Stdlib_Bytes[48], res$1); + } + } + switch$0 = 1; + break; + case 0: + case 2: + switch$1 = 1; break; + case 1: + case 3: + case 4: break; + default: switch$0 = 1; + } + if(switch$1 && len < (prec$0 + 1 | 0)){ + var res$0 = caml_call2(Stdlib_Bytes[1], prec$0 + 1 | 0, 48); + caml_bytes_set(res$0, 0, c); + caml_call5 + (Stdlib_String[48], + str, + 1, + res$0, + (prec$0 - len | 0) + 2 | 0, + len - 1 | 0); + return caml_call1(Stdlib_Bytes[48], res$0); + } + } + if(switch$0 && len < prec$0){ + var res = caml_call2(Stdlib_Bytes[1], prec$0, 48); + caml_call5(Stdlib_String[48], str, 0, res, prec$0 - len | 0, len); + return caml_call1(Stdlib_Bytes[48], res); + } + return str; + } + function string_to_caml_string(str){ + var + str$0 = caml_call1(Stdlib_String[24], str), + l = caml_ml_string_length(str$0), + res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 34); + caml_blit_string(str$0, 0, res, 1, l); + return caml_call1(Stdlib_Bytes[48], res); + } + function format_of_fconv(fconv, prec){ + var + prec$0 = caml_call1(Stdlib[18], prec), + symb = char_of_fconv(_r_, fconv), + buf = buffer_create(16); + buffer_add_char(buf, 37); + bprint_fconv_flag(buf, fconv); + buffer_add_char(buf, 46); + buffer_add_string(buf, caml_call1(Stdlib_Int[12], prec$0)); + buffer_add_char(buf, symb); + return buffer_contents(buf); + } + function transform_int_alt(iconv, s){ + if(13 > iconv) return s; + var n = [0, 0], _c1_ = caml_ml_string_length(s) - 1 | 0, _c0_ = 0; + if(_c1_ >= 0){ + var i$0 = _c0_; + for(;;){ + if(9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) n[1]++; + var _c5_ = i$0 + 1 | 0; + if(_c1_ !== i$0){var i$0 = _c5_; continue;} + break; + } + } + var + digits = n[1], + buf = + caml_create_bytes + (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), + pos = [0, 0]; + function put(c){caml_bytes_set(buf, pos[1], c); pos[1]++; return 0;} + var + left = [0, ((digits - 1 | 0) % 3 | 0) + 1 | 0], + _c3_ = caml_ml_string_length(s) - 1 | 0, + _c2_ = 0; + if(_c3_ >= 0){ + var i = _c2_; + for(;;){ + var c = caml_string_unsafe_get(s, i); + if(9 < c - 48 >>> 0) + put(c); + else{if(0 === left[1]){put(95); left[1] = 3;} left[1] += -1; put(c);} + var _c4_ = i + 1 | 0; + if(_c3_ !== i){var i = _c4_; continue;} + break; + } + } + return caml_call1(Stdlib_Bytes[48], buf); + } + function convert_int(iconv, n){ + switch(iconv){ + case 1: + var _cZ_ = cst_d$0; break; + case 2: + var _cZ_ = cst_d$1; break; + case 4: + var _cZ_ = cst_i$1; break; + case 5: + var _cZ_ = cst_i$2; break; + case 6: + var _cZ_ = cst_x; break; + case 7: + var _cZ_ = cst_x$0; break; + case 8: + var _cZ_ = cst_X; break; + case 9: + var _cZ_ = cst_X$0; break; + case 10: + var _cZ_ = cst_o; break; + case 11: + var _cZ_ = cst_o$0; break; + case 0: + case 13: + var _cZ_ = cst_d; break; + case 3: + case 14: + var _cZ_ = cst_i$0; break; + default: var _cZ_ = cst_u; + } + return transform_int_alt(iconv, caml_format_int(_cZ_, n)); + } + function convert_int32(iconv, n){ + switch(iconv){ + case 1: + var _cY_ = cst_ld$0; break; + case 2: + var _cY_ = cst_ld$1; break; + case 4: + var _cY_ = cst_li$1; break; + case 5: + var _cY_ = cst_li$2; break; + case 6: + var _cY_ = cst_lx; break; + case 7: + var _cY_ = cst_lx$0; break; + case 8: + var _cY_ = cst_lX; break; + case 9: + var _cY_ = cst_lX$0; break; + case 10: + var _cY_ = cst_lo; break; + case 11: + var _cY_ = cst_lo$0; break; + case 0: + case 13: + var _cY_ = cst_ld; break; + case 3: + case 14: + var _cY_ = cst_li$0; break; + default: var _cY_ = cst_lu; + } + return transform_int_alt(iconv, caml_format_int(_cY_, n)); + } + function convert_nativeint(iconv, n){ + switch(iconv){ + case 1: + var _cX_ = cst_nd$0; break; + case 2: + var _cX_ = cst_nd$1; break; + case 4: + var _cX_ = cst_ni$1; break; + case 5: + var _cX_ = cst_ni$2; break; + case 6: + var _cX_ = cst_nx; break; + case 7: + var _cX_ = cst_nx$0; break; + case 8: + var _cX_ = cst_nX; break; + case 9: + var _cX_ = cst_nX$0; break; + case 10: + var _cX_ = cst_no; break; + case 11: + var _cX_ = cst_no$0; break; + case 0: + case 13: + var _cX_ = cst_nd; break; + case 3: + case 14: + var _cX_ = cst_ni$0; break; + default: var _cX_ = cst_nu; + } + return transform_int_alt(iconv, caml_format_int(_cX_, n)); + } + function convert_int64(iconv, n){ + switch(iconv){ + case 1: + var _cW_ = cst_Ld$0; break; + case 2: + var _cW_ = cst_Ld$1; break; + case 4: + var _cW_ = cst_Li$1; break; + case 5: + var _cW_ = cst_Li$2; break; + case 6: + var _cW_ = cst_Lx; break; + case 7: + var _cW_ = cst_Lx$0; break; + case 8: + var _cW_ = cst_LX; break; + case 9: + var _cW_ = cst_LX$0; break; + case 10: + var _cW_ = cst_Lo; break; + case 11: + var _cW_ = cst_Lo$0; break; + case 0: + case 13: + var _cW_ = cst_Ld; break; + case 3: + case 14: + var _cW_ = cst_Li$0; break; + default: var _cW_ = cst_Lu; + } + return transform_int_alt(iconv, runtime.caml_int64_format(_cW_, n)); + } + function convert_float(fconv, prec, x){ + function hex(param){ + switch(fconv[1]){ + case 0: + var sign = 45; break; + case 1: + var sign = 43; break; + default: var sign = 32; + } + return runtime.caml_hexstring_of_float(x, prec, sign); + } + function caml_special_val(str){ + var match = runtime.caml_classify_float(x); + return 3 === match + ? x < 0. ? cst_neg_infinity : cst_infinity + : 4 <= match ? cst_nan : str; + } + switch(fconv[2]){ + case 5: + var + str = caml_format_float(format_of_fconv(fconv, prec), x), + len = caml_ml_string_length(str), + i = 0; + for(;;){ + if(i === len) + var _cT_ = 0; + else{ + var _cS_ = caml_string_get(str, i) - 46 | 0, switch$0 = 0; + if(23 < _cS_ >>> 0){ + if(55 === _cS_) switch$0 = 1; + } + else if(21 < _cS_ - 1 >>> 0) switch$0 = 1; + if(! switch$0){var i$0 = i + 1 | 0, i = i$0; continue;} + var _cT_ = 1; + } + var _cU_ = _cT_ ? str : caml_call2(Stdlib[28], str, cst$17); + return caml_special_val(_cU_); + } + case 6: + return hex(0); + case 7: + var _cV_ = hex(0); return caml_call1(Stdlib_String[25], _cV_); + case 8: + return caml_special_val(hex(0)); + default: return caml_format_float(format_of_fconv(fconv, prec), x); + } + } + function string_of_fmtty(fmtty){ + var buf = buffer_create(16); + bprint_fmtty(buf, fmtty); + return buffer_contents(buf); + } + function make_int_padding_precision(k, acc, fmt, pad, prec, trans, iconv){ + if(typeof pad === "number"){ + if(typeof prec === "number") + return prec + ? function + (p, x){ + var str = fix_int_precision(p, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + } + : function + (x){ + var str = caml_call2(trans, iconv, x); + return make_printf(k, [4, acc, str], fmt); + }; + var p = prec[1]; + return function(x){ + var str = fix_int_precision(p, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt);}; + } + if(0 === pad[0]){ + var w = pad[2], padty = pad[1]; + if(typeof prec === "number") + return prec + ? function + (p, x){ + var + str = + fix_padding + (padty, + w, + fix_int_precision(p, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt); + } + : function + (x){ + var str = fix_padding(padty, w, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + }; + var p$0 = prec[1]; + return function(x){ + var + str = + fix_padding + (padty, w, fix_int_precision(p$0, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt);}; + } + var padty$0 = pad[1]; + if(typeof prec === "number") + return prec + ? function + (w, p, x){ + var + str = + fix_padding + (padty$0, + w, + fix_int_precision(p, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt); + } + : function + (w, x){ + var str = fix_padding(padty$0, w, caml_call2(trans, iconv, x)); + return make_printf(k, [4, acc, str], fmt); + }; + var p$1 = prec[1]; + return function(w, x){ + var + str = + fix_padding + (padty$0, w, fix_int_precision(p$1, caml_call2(trans, iconv, x))); + return make_printf(k, [4, acc, str], fmt);}; + } + function make_padding(k, acc, fmt, pad, trans){ + if(typeof pad === "number") + return function(x){ + var new_acc = [4, acc, caml_call1(trans, x)]; + return make_printf(k, new_acc, fmt);}; + if(0 === pad[0]){ + var width = pad[2], padty = pad[1]; + return function(x){ + var new_acc = [4, acc, fix_padding(padty, width, caml_call1(trans, x))]; + return make_printf(k, new_acc, fmt);}; + } + var padty$0 = pad[1]; + return function(w, x){ + var new_acc = [4, acc, fix_padding(padty$0, w, caml_call1(trans, x))]; + return make_printf(k, new_acc, fmt);}; + } + function make_printf$0(counter, k, acc, fmt){ + var k$0 = k, acc$0 = acc, fmt$0 = fmt; + for(;;){ + if(typeof fmt$0 === "number") return caml_call1(k$0, acc$0); + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1]; + return function(c){ + var new_acc = [5, acc$0, c]; + return make_printf(k$0, new_acc, rest);}; + case 1: + var rest$0 = fmt$0[1]; + return function(c){ + var + str = caml_call1(Stdlib_Char[2], c), + l = caml_ml_string_length(str), + res = caml_call2(Stdlib_Bytes[1], l + 2 | 0, 39); + caml_blit_string(str, 0, res, 1, l); + var new_acc = [4, acc$0, caml_call1(Stdlib_Bytes[48], res)]; + return make_printf(k$0, new_acc, rest$0);}; + case 2: + var rest$1 = fmt$0[2], pad = fmt$0[1]; + return make_padding + (k$0, acc$0, rest$1, pad, function(str){return str;}); + case 3: + var rest$2 = fmt$0[2], pad$0 = fmt$0[1]; + return make_padding(k$0, acc$0, rest$2, pad$0, string_to_caml_string); + case 4: + var + rest$3 = fmt$0[4], + prec = fmt$0[3], + pad$1 = fmt$0[2], + iconv = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$3, pad$1, prec, convert_int, iconv); + case 5: + var + rest$4 = fmt$0[4], + prec$0 = fmt$0[3], + pad$2 = fmt$0[2], + iconv$0 = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$4, pad$2, prec$0, convert_int32, iconv$0); + case 6: + var + rest$5 = fmt$0[4], + prec$1 = fmt$0[3], + pad$3 = fmt$0[2], + iconv$1 = fmt$0[1]; + return make_int_padding_precision + (k$0, + acc$0, + rest$5, + pad$3, + prec$1, + convert_nativeint, + iconv$1); + case 7: + var + rest$6 = fmt$0[4], + prec$2 = fmt$0[3], + pad$4 = fmt$0[2], + iconv$2 = fmt$0[1]; + return make_int_padding_precision + (k$0, acc$0, rest$6, pad$4, prec$2, convert_int64, iconv$2); + case 8: + var + rest$7 = fmt$0[4], + prec$3 = fmt$0[3], + pad$5 = fmt$0[2], + fconv = fmt$0[1]; + if(typeof pad$5 === "number"){ + if(typeof prec$3 === "number") + return prec$3 + ? function + (p, x){ + var str = convert_float(fconv, p, x); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x); + return make_printf(k$0, [4, acc$0, str], rest$7); + }; + var p = prec$3[1]; + return function(x){ + var str = convert_float(fconv, p, x); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + } + if(0 === pad$5[0]){ + var w = pad$5[2], padty = pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ? function + (p, x){ + var str = fix_padding(padty, w, convert_float(fconv, p, x)); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x), + str$0 = fix_padding(padty, w, str); + return make_printf(k$0, [4, acc$0, str$0], rest$7); + }; + var p$0 = prec$3[1]; + return function(x){ + var str = fix_padding(padty, w, convert_float(fconv, p$0, x)); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + } + var padty$0 = pad$5[1]; + if(typeof prec$3 === "number") + return prec$3 + ? function + (w, p, x){ + var + str = fix_padding(padty$0, w, convert_float(fconv, p, x)); + return make_printf(k$0, [4, acc$0, str], rest$7); + } + : function + (w, x){ + var + str = + convert_float(fconv, default_float_precision(fconv), x), + str$0 = fix_padding(padty$0, w, str); + return make_printf(k$0, [4, acc$0, str$0], rest$7); + }; + var p$1 = prec$3[1]; + return function(w, x){ + var str = fix_padding(padty$0, w, convert_float(fconv, p$1, x)); + return make_printf(k$0, [4, acc$0, str], rest$7);}; + case 9: + var rest$8 = fmt$0[2], pad$6 = fmt$0[1]; + return make_padding(k$0, acc$0, rest$8, pad$6, Stdlib[30]); + case 10: + var + rest$9 = fmt$0[1], + acc$1 = [7, acc$0], + acc$0 = acc$1, + fmt$0 = rest$9; + continue; + case 11: + var + rest$10 = fmt$0[2], + str = fmt$0[1], + acc$2 = [2, acc$0, str], + acc$0 = acc$2, + fmt$0 = rest$10; + continue; + case 12: + var + rest$11 = fmt$0[2], + chr = fmt$0[1], + acc$3 = [3, acc$0, chr], + acc$0 = acc$3, + fmt$0 = rest$11; + continue; + case 13: + var + rest$12 = fmt$0[3], + sub_fmtty = fmt$0[2], + ty = string_of_fmtty(sub_fmtty); + return function(str){ + return make_printf(k$0, [4, acc$0, ty], rest$12);}; + case 14: + var rest$13 = fmt$0[3], fmtty = fmt$0[2]; + return function(param){ + var fmt = param[1], _cR_ = recast(fmt, fmtty); + return make_printf + (k$0, + acc$0, + caml_call2(CamlinternalFormatBasics[3], _cR_, rest$13));}; + case 15: + var rest$14 = fmt$0[1]; + return function(f, x){ + return make_printf + (k$0, + [6, acc$0, function(o){return caml_call2(f, o, x);}], + rest$14);}; + case 16: + var rest$15 = fmt$0[1]; + return function(f){return make_printf(k$0, [6, acc$0, f], rest$15);}; + case 17: + var + rest$16 = fmt$0[2], + fmting_lit = fmt$0[1], + acc$4 = [0, acc$0, fmting_lit], + acc$0 = acc$4, + fmt$0 = rest$16; + continue; + case 18: + var _cP_ = fmt$0[1]; + if(0 === _cP_[0]){ + var + rest$17 = fmt$0[2], + fmt$1 = _cP_[1][1], + k$3 = + function(acc, k, rest){ + function k$0(kacc){ + return make_printf(k, [1, acc, [0, kacc]], rest); + } + return k$0; + }, + k$1 = k$3(acc$0, k$0, rest$17), + k$0 = k$1, + acc$0 = 0, + fmt$0 = fmt$1; + continue; + } + var + rest$18 = fmt$0[2], + fmt$2 = _cP_[1][1], + k$4 = + function(acc, k, rest){ + function k$0(kacc){ + return make_printf(k, [1, acc, [1, kacc]], rest); + } + return k$0; + }, + k$2 = k$4(acc$0, k$0, rest$18), + k$0 = k$2, + acc$0 = 0, + fmt$0 = fmt$2; + continue; + case 19: + throw caml_maybe_attach_backtrace([0, Assert_failure, _s_], 1); + case 20: + var + rest$19 = fmt$0[3], + new_acc = [8, acc$0, cst_Printf_bad_conversion]; + return function(param){return make_printf(k$0, new_acc, rest$19);}; + case 21: + var rest$20 = fmt$0[2]; + return function(n){ + var new_acc = [4, acc$0, caml_format_int(cst_u$0, n)]; + return make_printf(k$0, new_acc, rest$20);}; + case 22: + var rest$21 = fmt$0[1]; + return function(c){ + var new_acc = [5, acc$0, c]; + return make_printf(k$0, new_acc, rest$21);}; + case 23: + var rest$22 = fmt$0[2], ign = fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (make_ignored_param$0, [0, k$0, acc$0, ign, rest$22]); + var counter$1 = counter + 1 | 0; + return make_ignored_param$0(counter$1, k$0, acc$0, ign, rest$22); + default: + var + rest$23 = fmt$0[3], + f = fmt$0[2], + arity = fmt$0[1], + _cQ_ = caml_call1(f, 0); + if(counter >= 50) + return caml_trampoline_return + (make_custom$0, [0, k$0, acc$0, rest$23, arity, _cQ_]); + var counter$0 = counter + 1 | 0; + return make_custom$0(counter$0, k$0, acc$0, rest$23, arity, _cQ_); + } + } + } + function make_ignored_param$0(counter, k, acc, ign, fmt){ + if(typeof ign === "number") + switch(ign){ + case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$0 = counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$1 = counter + 1 | 0; + return make_invalid_arg(counter$1, k, acc, fmt); + case 2: + throw caml_maybe_attach_backtrace([0, Assert_failure, _t_], 1); + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$2 = counter + 1 | 0; + return make_invalid_arg(counter$2, k, acc, fmt); + } + switch(ign[0]){ + case 0: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$3 = counter + 1 | 0; + return make_invalid_arg(counter$3, k, acc, fmt); + case 1: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$4 = counter + 1 | 0; + return make_invalid_arg(counter$4, k, acc, fmt); + case 2: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$5 = counter + 1 | 0; + return make_invalid_arg(counter$5, k, acc, fmt); + case 3: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$6 = counter + 1 | 0; + return make_invalid_arg(counter$6, k, acc, fmt); + case 4: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$7 = counter + 1 | 0; + return make_invalid_arg(counter$7, k, acc, fmt); + case 5: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$8 = counter + 1 | 0; + return make_invalid_arg(counter$8, k, acc, fmt); + case 6: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$9 = counter + 1 | 0; + return make_invalid_arg(counter$9, k, acc, fmt); + case 7: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$10 = counter + 1 | 0; + return make_invalid_arg(counter$10, k, acc, fmt); + case 8: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$11 = counter + 1 | 0; + return make_invalid_arg(counter$11, k, acc, fmt); + case 9: + var fmtty = ign[2]; + if(counter >= 50) + return caml_trampoline_return + (make_from_fmtty$0, [0, k, acc, fmtty, fmt]); + var counter$14 = counter + 1 | 0; + return make_from_fmtty$0(counter$14, k, acc, fmtty, fmt); + case 10: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$12 = counter + 1 | 0; + return make_invalid_arg(counter$12, k, acc, fmt); + default: + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$13 = counter + 1 | 0; + return make_invalid_arg(counter$13, k, acc, fmt); + } + } + function make_from_fmtty$0(counter, k, acc, fmtty, fmt){ + if(typeof fmtty !== "number") + switch(fmtty[0]){ + case 0: + var rest = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest, fmt);}; + case 1: + var rest$0 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$0, fmt);}; + case 2: + var rest$1 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$1, fmt);}; + case 3: + var rest$2 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$2, fmt);}; + case 4: + var rest$3 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$3, fmt);}; + case 5: + var rest$4 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$4, fmt);}; + case 6: + var rest$5 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$5, fmt);}; + case 7: + var rest$6 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$6, fmt);}; + case 8: + var rest$7 = fmtty[2]; + return function(param){return make_from_fmtty(k, acc, rest$7, fmt);}; + case 9: + var + rest$8 = fmtty[3], + ty2 = fmtty[2], + ty1 = fmtty[1], + ty = trans(symm(ty1), ty2); + return function(param){ + return make_from_fmtty + (k, + acc, + caml_call2(CamlinternalFormatBasics[1], ty, rest$8), + fmt);}; + case 10: + var rest$9 = fmtty[1]; + return function(param, _cO_){ + return make_from_fmtty(k, acc, rest$9, fmt);}; + case 11: + var rest$10 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$10, fmt);}; + case 12: + var rest$11 = fmtty[1]; + return function(param){return make_from_fmtty(k, acc, rest$11, fmt);}; + case 13: + throw caml_maybe_attach_backtrace([0, Assert_failure, _u_], 1); + default: + throw caml_maybe_attach_backtrace([0, Assert_failure, _v_], 1); + } + if(counter >= 50) + return caml_trampoline_return(make_invalid_arg, [0, k, acc, fmt]); + var counter$0 = counter + 1 | 0; + return make_invalid_arg(counter$0, k, acc, fmt); + } + function make_invalid_arg(counter, k, acc, fmt){ + var _cN_ = [8, acc, cst_Printf_bad_conversion$0]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _cN_, fmt]); + var counter$0 = counter + 1 | 0; + return make_printf$0(counter$0, k, _cN_, fmt); + } + function make_custom$0(counter, k, acc, rest, arity, f){ + if(arity){ + var arity$0 = arity[1]; + return function(x){ + return make_custom(k, acc, rest, arity$0, caml_call1(f, x));}; + } + var _cM_ = [4, acc, f]; + if(counter >= 50) + return caml_trampoline_return(make_printf$0, [0, k, _cM_, rest]); + var counter$0 = counter + 1 | 0; + return make_printf$0(counter$0, k, _cM_, rest); + } + function make_printf(k, acc, fmt){ + return caml_trampoline(make_printf$0(0, k, acc, fmt)); + } + function make_ignored_param(k, acc, ign, fmt){ + return caml_trampoline(make_ignored_param$0(0, k, acc, ign, fmt)); + } + function make_from_fmtty(k, acc, fmtty, fmt){ + return caml_trampoline(make_from_fmtty$0(0, k, acc, fmtty, fmt)); + } + function make_custom(k, acc, rest, arity, f){ + return caml_trampoline(make_custom$0(0, k, acc, rest, arity, f)); + } + function fn_of_padding_precision(k, o, fmt, pad, prec){ + if(typeof pad === "number"){ + if(typeof prec !== "number"){ + var _cl_ = make_iprintf(k, o, fmt); + return function(_cL_){return _cl_;}; + } + if(prec){ + var _ci_ = make_iprintf(k, o, fmt), _cj_ = function(_cK_){return _ci_;}; + return function(_cJ_){return _cj_;}; + } + var _ck_ = make_iprintf(k, o, fmt); + return function(_cI_){return _ck_;}; + } + if(0 === pad[0]){ + if(typeof prec !== "number"){ + var _cp_ = make_iprintf(k, o, fmt); + return function(_cH_){return _cp_;}; + } + if(prec){ + var _cm_ = make_iprintf(k, o, fmt), _cn_ = function(_cG_){return _cm_;}; + return function(_cF_){return _cn_;}; + } + var _co_ = make_iprintf(k, o, fmt); + return function(_cE_){return _co_;}; + } + if(typeof prec !== "number"){ + var _cv_ = make_iprintf(k, o, fmt), _cw_ = function(_cD_){return _cv_;}; + return function(_cC_){return _cw_;}; + } + if(prec){ + var + _cq_ = make_iprintf(k, o, fmt), + _cr_ = function(_cB_){return _cq_;}, + _cs_ = function(_cA_){return _cr_;}; + return function(_cz_){return _cs_;}; + } + var _ct_ = make_iprintf(k, o, fmt); + function _cu_(_cy_){return _ct_;} + return function(_cx_){return _cu_;}; + } + function make_iprintf$0(counter, k, o, fmt){ + var k$0 = k, fmt$0 = fmt; + for(;;){ + if(typeof fmt$0 === "number") return caml_call1(k$0, o); + switch(fmt$0[0]){ + case 0: + var rest = fmt$0[1], _by_ = make_iprintf(k$0, o, rest); + return function(_ch_){return _by_;}; + case 1: + var rest$0 = fmt$0[1], _bz_ = make_iprintf(k$0, o, rest$0); + return function(_cg_){return _bz_;}; + case 2: + var _bA_ = fmt$0[1]; + if(typeof _bA_ === "number"){ + var rest$1 = fmt$0[2], _bB_ = make_iprintf(k$0, o, rest$1); + return function(_cf_){return _bB_;}; + } + if(0 === _bA_[0]){ + var rest$2 = fmt$0[2], _bC_ = make_iprintf(k$0, o, rest$2); + return function(_ce_){return _bC_;}; + } + var + rest$3 = fmt$0[2], + _bD_ = make_iprintf(k$0, o, rest$3), + _bE_ = function(_cd_){return _bD_;}; + return function(_cc_){return _bE_;}; + case 3: + var _bF_ = fmt$0[1]; + if(typeof _bF_ === "number"){ + var rest$4 = fmt$0[2], _bG_ = make_iprintf(k$0, o, rest$4); + return function(_cb_){return _bG_;}; + } + if(0 === _bF_[0]){ + var rest$5 = fmt$0[2], _bH_ = make_iprintf(k$0, o, rest$5); + return function(_ca_){return _bH_;}; + } + var + rest$6 = fmt$0[2], + _bI_ = make_iprintf(k$0, o, rest$6), + _bJ_ = function(_b$_){return _bI_;}; + return function(_b__){return _bJ_;}; + case 4: + var rest$7 = fmt$0[4], prec = fmt$0[3], pad = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$7, pad, prec); + case 5: + var rest$8 = fmt$0[4], prec$0 = fmt$0[3], pad$0 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$8, pad$0, prec$0); + case 6: + var rest$9 = fmt$0[4], prec$1 = fmt$0[3], pad$1 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$9, pad$1, prec$1); + case 7: + var rest$10 = fmt$0[4], prec$2 = fmt$0[3], pad$2 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$10, pad$2, prec$2); + case 8: + var rest$11 = fmt$0[4], prec$3 = fmt$0[3], pad$3 = fmt$0[2]; + return fn_of_padding_precision(k$0, o, rest$11, pad$3, prec$3); + case 9: + var _bK_ = fmt$0[1]; + if(typeof _bK_ === "number"){ + var rest$12 = fmt$0[2], _bL_ = make_iprintf(k$0, o, rest$12); + return function(_b9_){return _bL_;}; + } + if(0 === _bK_[0]){ + var rest$13 = fmt$0[2], _bM_ = make_iprintf(k$0, o, rest$13); + return function(_b8_){return _bM_;}; + } + var + rest$14 = fmt$0[2], + _bN_ = make_iprintf(k$0, o, rest$14), + _bO_ = function(_b7_){return _bN_;}; + return function(_b6_){return _bO_;}; + case 10: + var rest$15 = fmt$0[1], fmt$0 = rest$15; continue; + case 11: + var rest$16 = fmt$0[2], fmt$0 = rest$16; continue; + case 12: + var rest$17 = fmt$0[2], fmt$0 = rest$17; continue; + case 13: + var rest$18 = fmt$0[3], _bP_ = make_iprintf(k$0, o, rest$18); + return function(_b5_){return _bP_;}; + case 14: + var rest$19 = fmt$0[3], fmtty = fmt$0[2]; + return function(param){ + var fmt = param[1], _b4_ = recast(fmt, fmtty); + return make_iprintf + (k$0, + o, + caml_call2(CamlinternalFormatBasics[3], _b4_, rest$19));}; + case 15: + var + rest$20 = fmt$0[1], + _bQ_ = make_iprintf(k$0, o, rest$20), + _bR_ = function(_b3_){return _bQ_;}; + return function(_b2_){return _bR_;}; + case 16: + var rest$21 = fmt$0[1], _bS_ = make_iprintf(k$0, o, rest$21); + return function(_b1_){return _bS_;}; + case 17: + var rest$22 = fmt$0[2], fmt$0 = rest$22; continue; + case 18: + var _bT_ = fmt$0[1]; + if(0 === _bT_[0]){ + var + rest$23 = fmt$0[2], + fmt$1 = _bT_[1][1], + k$3 = + function(k, rest){ + function k$0(koc){return make_iprintf(k, koc, rest);} + return k$0; + }, + k$1 = k$3(k$0, rest$23), + k$0 = k$1, + fmt$0 = fmt$1; + continue; + } + var + rest$24 = fmt$0[2], + fmt$2 = _bT_[1][1], + k$4 = + function(k, rest){ + function k$0(koc){return make_iprintf(k, koc, rest);} + return k$0; + }, + k$2 = k$4(k$0, rest$24), + k$0 = k$2, + fmt$0 = fmt$2; + continue; + case 19: + throw caml_maybe_attach_backtrace([0, Assert_failure, _w_], 1); + case 20: + var rest$25 = fmt$0[3], _bU_ = make_iprintf(k$0, o, rest$25); + return function(_b0_){return _bU_;}; + case 21: + var rest$26 = fmt$0[2], _bV_ = make_iprintf(k$0, o, rest$26); + return function(_bZ_){return _bV_;}; + case 22: + var rest$27 = fmt$0[1], _bW_ = make_iprintf(k$0, o, rest$27); + return function(_bY_){return _bW_;}; + case 23: + var rest$28 = fmt$0[2], ign = fmt$0[1], _bX_ = 0; + return make_ignored_param + (function(param){return caml_call1(k$0, o);}, + _bX_, + ign, + rest$28); + default: + var rest$29 = fmt$0[3], arity = fmt$0[1]; + if(counter >= 50) + return caml_trampoline_return + (fn_of_custom_arity$0, [0, k$0, o, rest$29, arity]); + var counter$0 = counter + 1 | 0; + return fn_of_custom_arity$0(counter$0, k$0, o, rest$29, arity); + } + } + } + function fn_of_custom_arity$0(counter, k, o, fmt, param){ + if(param){ + var arity = param[1], _bw_ = fn_of_custom_arity(k, o, fmt, arity); + return function(_bx_){return _bw_;}; + } + if(counter >= 50) + return caml_trampoline_return(make_iprintf$0, [0, k, o, fmt]); + var counter$0 = counter + 1 | 0; + return make_iprintf$0(counter$0, k, o, fmt); + } + function make_iprintf(k, o, fmt){ + return caml_trampoline(make_iprintf$0(0, k, o, fmt)); + } + function fn_of_custom_arity(k, o, fmt, param){ + return caml_trampoline(fn_of_custom_arity$0(0, k, o, fmt, param)); + } + function output_acc(o, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + output_acc(o, p); + return caml_call2(Stdlib[66], o, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + output_acc(o, p$0); + caml_call2(Stdlib[66], o, cst$18); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + output_acc(o, p$0); + caml_call2(Stdlib[66], o, cst$19); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + output_acc(o, p$3); + return caml_call1(f, o); + case 7: + var p$4 = acc$0[1]; + output_acc(o, p$4); + return caml_call1(Stdlib[63], o); + case 8: + var msg = acc$0[2], p$5 = acc$0[1]; + output_acc(o, p$5); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + output_acc(o, p$1); + return caml_call2(Stdlib[66], o, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + output_acc(o, p$2); + return caml_call2(Stdlib[65], o, c); + } + } + } + function bufput_acc(b, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + bufput_acc(b, p); + return caml_call2(Stdlib_Buffer[16], b, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + bufput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$20); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + bufput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$21); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + bufput_acc(b, p$3); + return caml_call1(f, b); + case 7: + var acc$3 = acc$0[1], acc$0 = acc$3; continue; + case 8: + var msg = acc$0[2], p$4 = acc$0[1]; + bufput_acc(b, p$4); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + bufput_acc(b, p$1); + return caml_call2(Stdlib_Buffer[16], b, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + bufput_acc(b, p$2); + return caml_call2(Stdlib_Buffer[12], b, c); + } + } + } + function strput_acc(b, acc){ + var acc$0 = acc; + for(;;){ + if(typeof acc$0 === "number") return 0; + switch(acc$0[0]){ + case 0: + var + fmting_lit = acc$0[2], + p = acc$0[1], + s = string_of_formatting_lit(fmting_lit); + strput_acc(b, p); + return caml_call2(Stdlib_Buffer[16], b, s); + case 1: + var match = acc$0[2], p$0 = acc$0[1]; + if(0 === match[0]){ + var acc$1 = match[1]; + strput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$22); + var acc$0 = acc$1; + continue; + } + var acc$2 = match[1]; + strput_acc(b, p$0); + caml_call2(Stdlib_Buffer[16], b, cst$23); + var acc$0 = acc$2; + continue; + case 6: + var f = acc$0[2], p$3 = acc$0[1]; + strput_acc(b, p$3); + var _bv_ = caml_call1(f, 0); + return caml_call2(Stdlib_Buffer[16], b, _bv_); + case 7: + var acc$3 = acc$0[1], acc$0 = acc$3; continue; + case 8: + var msg = acc$0[2], p$4 = acc$0[1]; + strput_acc(b, p$4); + return caml_call1(Stdlib[1], msg); + case 2: + case 4: + var s$0 = acc$0[2], p$1 = acc$0[1]; + strput_acc(b, p$1); + return caml_call2(Stdlib_Buffer[16], b, s$0); + default: + var c = acc$0[2], p$2 = acc$0[1]; + strput_acc(b, p$2); + return caml_call2(Stdlib_Buffer[12], b, c); + } + } + } + function failwith_message(param){ + var fmt = param[1], buf = caml_call1(Stdlib_Buffer[1], 256); + function k(acc){ + strput_acc(buf, acc); + var _bu_ = caml_call1(Stdlib_Buffer[2], buf); + return caml_call1(Stdlib[2], _bu_); + } + return make_printf(k, 0, fmt); + } + function open_box_of_string(str){ + if(runtime.caml_string_equal(str, cst$43)) return _x_; + var len = caml_ml_string_length(str); + function invalid_box(param){ + return caml_call1(failwith_message(_y_), str); + } + function parse_spaces(i){ + var i$0 = i; + for(;;){ + if(i$0 === len) return i$0; + var match = caml_string_get(str, i$0); + if(9 !== match && 32 !== match) return i$0; + var i$1 = i$0 + 1 | 0, i$0 = i$1; + } + } + var wstart = parse_spaces(0), wend = wstart; + for(;;){ + if(wend !== len && 25 >= caml_string_get(str, wend) - 97 >>> 0){var j = wend + 1 | 0, wend = j; continue;} + var + box_name = caml_call3(Stdlib_String[15], str, wstart, wend - wstart | 0), + nstart = parse_spaces(wend), + nend = nstart; + for(;;){ + if(nend !== len){ + var match = caml_string_get(str, nend), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(switch$0){var j$0 = nend + 1 | 0, nend = j$0; continue;} + } + if(nstart === nend) + var indent = 0; + else + try{ + var + _bs_ = + runtime.caml_int_of_string + (caml_call3(Stdlib_String[15], str, nstart, nend - nstart | 0)), + indent = _bs_; + } + catch(_bt_){ + var _br_ = caml_wrap_exception(_bt_); + if(_br_[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(_br_, 0); + var indent = invalid_box(0); + } + var exp_end = parse_spaces(nend); + if(exp_end !== len) invalid_box(0); + var switch$1 = 0; + if + (caml_string_notequal(box_name, cst$43) + && caml_string_notequal(box_name, "b")) + var + box_type = + caml_string_notequal(box_name, "h") + ? caml_string_notequal + (box_name, "hov") + ? caml_string_notequal + (box_name, "hv") + ? caml_string_notequal(box_name, "v") ? invalid_box(0) : 1 + : 2 + : 3 + : 0; + else + switch$1 = 1; + if(switch$1) var box_type = 4; + return [0, indent, box_type]; + } + } + } + function make_padding_fmt_ebb(pad, fmt){ + if(typeof pad === "number") return [0, 0, fmt]; + if(0 === pad[0]){var w = pad[2], s = pad[1]; return [0, [0, s, w], fmt];} + var s$0 = pad[1]; + return [0, [1, s$0], fmt]; + } + function make_padprec_fmt_ebb(pad, prec, fmt){ + if(typeof prec === "number") + var match = prec ? [0, 1, fmt] : [0, 0, fmt]; + else + var p = prec[1], match = [0, [0, p], fmt]; + var prec$0 = match[1]; + if(typeof pad === "number") return [0, 0, prec$0, fmt]; + if(0 === pad[0]){ + var w = pad[2], s = pad[1]; + return [0, [0, s, w], prec$0, fmt]; + } + var s$0 = pad[1]; + return [0, [1, s$0], prec$0, fmt]; + } + function fmt_ebb_of_string(legacy_behavior, str){ + if(legacy_behavior) + var flag = legacy_behavior[1], legacy_behavior$0 = flag; + else + var legacy_behavior$0 = 1; + function invalid_format_message(str_ind, msg){ + return caml_call3(failwith_message(_z_), str, str_ind, msg); + } + function unexpected_end_of_format(end_ind){ + return invalid_format_message(end_ind, cst_unexpected_end_of_format); + } + function invalid_format_without(str_ind, c, s){ + return caml_call4(failwith_message(_A_), str, str_ind, c, s); + } + function expected_character(str_ind, expected, read){ + return caml_call4(failwith_message(_B_), str, str_ind, expected, read); + } + function add_literal(lit_start, str_ind, fmt){ + var size = str_ind - lit_start | 0; + return 0 === size + ? [0, fmt] + : 1 + === size + ? [0, [12, caml_string_get(str, lit_start), fmt]] + : [0, + [11, + caml_call3(Stdlib_String[15], str, lit_start, size), + fmt]]; + } + function parse(lit_start, end_ind){ + var str_ind = lit_start; + for(;;){ + if(str_ind === end_ind) return add_literal(lit_start, str_ind, 0); + var match = caml_string_get(str, str_ind); + if(37 === match){ + var str_ind$2 = str_ind + 1 | 0; + if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); + var + match$1 = + 95 === caml_string_get(str, str_ind$2) + ? parse_flags(str_ind, str_ind$2 + 1 | 0, end_ind, 1) + : parse_flags(str_ind, str_ind$2, end_ind, 0), + fmt_rest = match$1[1]; + return add_literal(lit_start, str_ind, fmt_rest); + } + if(64 !== match){ + var str_ind$1 = str_ind + 1 | 0, str_ind = str_ind$1; + continue; + } + var str_ind$0 = str_ind + 1 | 0; + if(str_ind$0 === end_ind) + var match$0 = _N_; + else{ + var c = caml_string_get(str, str_ind$0), switch$0 = 0; + if(65 <= c) + if(94 <= c){ + var switcher = c - 123 | 0; + if(2 < switcher >>> 0) + switch$0 = 1; + else + switch(switcher){ + case 0: + var match$0 = parse_tag(1, str_ind$0 + 1 | 0, end_ind); break; + case 1: + switch$0 = 1; break; + default: + var + fmt_rest$2 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 1, fmt_rest$2]]; + } + } + else if(91 <= c) + switch(c - 91 | 0){ + case 0: + var match$0 = parse_tag(0, str_ind$0 + 1 | 0, end_ind); break; + case 1: + switch$0 = 1; break; + default: + var + fmt_rest$3 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 0, fmt_rest$3]]; + } + else + switch$0 = 1; + else if(10 === c) + var + fmt_rest$4 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 3, fmt_rest$4]]; + else if(32 <= c) + switch(c - 32 | 0){ + case 0: + var + fmt_rest$5 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, _O_, fmt_rest$5]]; + break; + case 5: + var switch$1 = 0; + if + ((str_ind$0 + 1 | 0) < end_ind + && 37 === caml_string_get(str, str_ind$0 + 1 | 0)) + var + fmt_rest$6 = parse(str_ind$0 + 2 | 0, end_ind)[1], + match$0 = [0, [17, 6, fmt_rest$6]]; + else + switch$1 = 1; + if(switch$1) + var + fmt_rest$7 = parse(str_ind$0, end_ind)[1], + match$0 = [0, [12, 64, fmt_rest$7]]; + break; + case 12: + var + fmt_rest$8 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, _P_, fmt_rest$8]]; + break; + case 14: + var + fmt_rest$9 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 4, fmt_rest$9]]; + break; + case 27: + var str_ind$3 = str_ind$0 + 1 | 0; + try{ + var + _bg_ = str_ind$3 === end_ind ? 1 : 0, + _bh_ = _bg_ || (60 !== caml_string_get(str, str_ind$3) ? 1 : 0); + if(_bh_) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + str_ind_1 = parse_spaces(str_ind$3 + 1 | 0, end_ind), + match$2 = caml_string_get(str, str_ind_1), + switch$2 = 0; + if(48 <= match$2){ + if(58 > match$2) switch$2 = 1; + } + else if(45 === match$2) switch$2 = 1; + if(! switch$2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + match$3 = parse_integer(str_ind_1, end_ind), + width = match$3[2], + str_ind_2 = match$3[1], + str_ind_3 = parse_spaces(str_ind_2, end_ind), + switcher$0 = caml_string_get(str, str_ind_3) - 45 | 0, + switch$3 = 0; + if(12 < switcher$0 >>> 0) + if(17 === switcher$0) + var + s = + caml_call3 + (Stdlib_String[15], + str, + str_ind$3 - 2 | 0, + (str_ind_3 - str_ind$3 | 0) + 3 | 0), + _bi_ = [0, s, width, 0], + _bj_ = str_ind_3 + 1 | 0, + formatting_lit$0 = _bi_, + next_ind = _bj_; + else + switch$3 = 1; + else if(1 < switcher$0 - 1 >>> 0){ + var + match$4 = parse_integer(str_ind_3, end_ind), + offset = match$4[2], + str_ind_4 = match$4[1], + str_ind_5 = parse_spaces(str_ind_4, end_ind); + if(62 !== caml_string_get(str, str_ind_5)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + s$0 = + caml_call3 + (Stdlib_String[15], + str, + str_ind$3 - 2 | 0, + (str_ind_5 - str_ind$3 | 0) + 3 | 0), + _bk_ = [0, s$0, width, offset], + _bl_ = str_ind_5 + 1 | 0, + formatting_lit$0 = _bk_, + next_ind = _bl_; + } + else + switch$3 = 1; + if(switch$3) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + } + catch(_bq_){ + var _bf_ = caml_wrap_exception(_bq_); + if(_bf_ !== Stdlib[8] && _bf_[1] !== Stdlib[7]) + throw caml_maybe_attach_backtrace(_bf_, 0); + var formatting_lit$0 = formatting_lit, next_ind = str_ind$3; + } + var + fmt_rest$12 = parse(next_ind, end_ind)[1], + match$0 = [0, [17, formatting_lit$0, fmt_rest$12]]; + break; + case 28: + var str_ind$4 = str_ind$0 + 1 | 0; + try{ + var + str_ind_1$0 = parse_spaces(str_ind$4, end_ind), + match$6 = caml_string_get(str, str_ind_1$0), + switch$4 = 0; + if(48 <= match$6){ + if(58 > match$6) switch$4 = 1; + } + else if(45 === match$6) switch$4 = 1; + if(switch$4){ + var + match$7 = parse_integer(str_ind_1$0, end_ind), + size = match$7[2], + str_ind_2$0 = match$7[1], + str_ind_3$0 = parse_spaces(str_ind_2$0, end_ind); + if(62 !== caml_string_get(str, str_ind_3$0)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + s$1 = + caml_call3 + (Stdlib_String[15], + str, + str_ind$4 - 2 | 0, + (str_ind_3$0 - str_ind$4 | 0) + 3 | 0), + _bo_ = [0, [0, str_ind_3$0 + 1 | 0, [1, s$1, size]]]; + } + else + var _bo_ = 0; + var _bn_ = _bo_; + } + catch(_bp_){ + var _bm_ = caml_wrap_exception(_bp_); + if(_bm_ !== Stdlib[8] && _bm_[1] !== Stdlib[7]) + throw caml_maybe_attach_backtrace(_bm_, 0); + var _bn_ = 0; + } + if(_bn_) + var + match$5 = _bn_[1], + formatting_lit$1 = match$5[2], + next_ind$0 = match$5[1], + fmt_rest$13 = parse(next_ind$0, end_ind)[1], + _be_ = [0, [17, formatting_lit$1, fmt_rest$13]]; + else + var + fmt_rest$14 = parse(str_ind$4, end_ind)[1], + _be_ = [0, [17, _Q_, fmt_rest$14]]; + var match$0 = _be_; + break; + case 31: + var + fmt_rest$10 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 2, fmt_rest$10]]; + break; + case 32: + var + fmt_rest$11 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, 5, fmt_rest$11]]; + break; + default: switch$0 = 1; + } + else + switch$0 = 1; + if(switch$0) + var + fmt_rest$1 = parse(str_ind$0 + 1 | 0, end_ind)[1], + match$0 = [0, [17, [2, c], fmt_rest$1]]; + } + var fmt_rest$0 = match$0[1]; + return add_literal(lit_start, str_ind, fmt_rest$0); + } + } + function parse_conversion + (pct_ind, + str_ind, + end_ind, + plus, + hash, + space, + ign, + pad, + prec, + padprec, + symb){ + var + plus_used = [0, 0], + hash_used = [0, 0], + space_used = [0, 0], + ign_used = [0, 0], + pad_used = [0, 0], + prec_used = [0, 0]; + function get_plus(param){plus_used[1] = 1; return plus;} + function get_hash(param){hash_used[1] = 1; return hash;} + function get_space(param){space_used[1] = 1; return space;} + function get_ign(param){ign_used[1] = 1; return ign;} + function get_pad(param){pad_used[1] = 1; return pad;} + function get_prec(param){prec_used[1] = 1; return prec;} + function get_padprec(param){pad_used[1] = 1; return padprec;} + function get_int_pad(param){ + var pad = get_pad(0), match = get_prec(0); + if(typeof match === "number" && ! match) return pad; + if(typeof pad === "number") return 0; + if(0 !== pad[0]) + return 2 <= pad[1] + ? legacy_behavior$0 + ? _H_ + : incompatible_flag(pct_ind, str_ind, 48, cst_precision$1) + : pad; + if(2 > pad[1]) return pad; + var n = pad[2]; + return legacy_behavior$0 + ? [0, 1, n] + : incompatible_flag(pct_ind, str_ind, 48, cst_precision$0); + } + function check_no_0(symb, pad){ + if(typeof pad === "number") return pad; + if(0 !== pad[0]) + return 2 <= pad[1] + ? legacy_behavior$0 + ? _I_ + : incompatible_flag(pct_ind, str_ind, symb, cst_0$1) + : pad; + if(2 > pad[1]) return pad; + var width = pad[2]; + return legacy_behavior$0 + ? [0, 1, width] + : incompatible_flag(pct_ind, str_ind, symb, cst_0$0); + } + function opt_of_pad(c, pad){ + if(typeof pad === "number") return 0; + if(0 === pad[0]) + switch(pad[1]){ + case 0: + var width = pad[2]; + return legacy_behavior$0 + ? [0, width] + : incompatible_flag(pct_ind, str_ind, c, cst$24); + case 1: + var width$0 = pad[2]; return [0, width$0]; + default: + var width$1 = pad[2]; + return legacy_behavior$0 + ? [0, width$1] + : incompatible_flag(pct_ind, str_ind, c, cst_0$2); + } + return incompatible_flag(pct_ind, str_ind, c, cst$25); + } + function get_pad_opt(c){return opt_of_pad(c, get_pad(0));} + function get_padprec_opt(c){return opt_of_pad(c, get_padprec(0));} + var switch$0 = 0; + if(124 <= symb) + switch$0 = 1; + else + switch(symb){ + case 33: + var + fmt_rest$5 = parse(str_ind, end_ind)[1], + fmt_result = [0, [10, fmt_rest$5]]; + break; + case 40: + var + sub_end = search_subformat_end(str_ind, end_ind, 41), + fmt_rest$7 = parse(sub_end + 2 | 0, end_ind)[1], + sub_fmt = parse(str_ind, sub_end)[1], + sub_fmtty = fmtty_of_fmt(sub_fmt); + if(get_ign(0)) + var + ignored$2 = [9, get_pad_opt(95), sub_fmtty], + _aN_ = [0, [23, ignored$2, fmt_rest$7]]; + else + var _aN_ = [0, [14, get_pad_opt(40), sub_fmtty, fmt_rest$7]]; + var fmt_result = _aN_; + break; + case 44: + var fmt_result = parse(str_ind, end_ind); break; + case 67: + var + fmt_rest$10 = parse(str_ind, end_ind)[1], + _aP_ = + get_ign(0) ? [0, [23, 1, fmt_rest$10]] : [0, [1, fmt_rest$10]], + fmt_result = _aP_; + break; + case 78: + var fmt_rest$14 = parse(str_ind, end_ind)[1], counter$0 = 2; + if(get_ign(0)) + var + ignored$6 = [11, counter$0], + _aV_ = [0, [23, ignored$6, fmt_rest$14]]; + else + var _aV_ = [0, [21, counter$0, fmt_rest$14]]; + var fmt_result = _aV_; + break; + case 83: + var + pad$6 = check_no_0(symb, get_padprec(0)), + fmt_rest$15 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$7 = [1, get_padprec_opt(95)], + _aW_ = [0, [23, ignored$7, fmt_rest$15]]; + else + var + match$5 = make_padding_fmt_ebb(pad$6, fmt_rest$15), + fmt_rest$16 = match$5[2], + pad$7 = match$5[1], + _aW_ = [0, [3, pad$7, fmt_rest$16]]; + var fmt_result = _aW_; + break; + case 91: + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var + char_set = create_char_set(0), + add_char = function(c){return add_in_char_set(char_set, c);}, + add_range = + function(c$0, c){ + if(c >= c$0){ + var i = c$0; + for(;;){ + add_in_char_set(char_set, caml_call1(Stdlib[29], i)); + var _bd_ = i + 1 | 0; + if(c !== i){var i = _bd_; continue;} + break; + } + } + return 0; + }, + fail_single_percent = + function(str_ind){ + return caml_call2(failwith_message(_R_), str, str_ind); + }, + parse_char_set_content = + function(counter, str_ind, end_ind){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind$0); + if(45 === c){ + add_char(45); + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + continue; + } + if(93 === c) return str_ind$0 + 1 | 0; + var _bc_ = str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_after_char$0, [0, _bc_, end_ind, c]); + var counter$0 = counter + 1 | 0; + return parse_char_set_after_char$0(counter$0, _bc_, end_ind, c); + } + }, + parse_char_set_after_char$0 = + function(counter, str_ind, end_ind, c){ + var str_ind$0 = str_ind, c$0 = c; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c$1 = caml_string_get(str, str_ind$0), switch$0 = 0; + if(46 <= c$1){ + if(64 === c$1) + switch$0 = 1; + else if(93 === c$1){add_char(c$0); return str_ind$0 + 1 | 0;} + } + else if(37 === c$1) + switch$0 = 1; + else if(45 <= c$1){ + var str_ind$2 = str_ind$0 + 1 | 0; + if(str_ind$2 === end_ind) unexpected_end_of_format(end_ind); + var c$2 = caml_string_get(str, str_ind$2); + if(37 === c$2){ + if((str_ind$2 + 1 | 0) === end_ind) + unexpected_end_of_format(end_ind); + var c$3 = caml_string_get(str, str_ind$2 + 1 | 0); + if(37 !== c$3 && 64 !== c$3) + return fail_single_percent(str_ind$2); + add_range(c$0, c$3); + var _ba_ = str_ind$2 + 2 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _ba_, end_ind]); + var counter$2 = counter + 1 | 0; + return parse_char_set_content(counter$2, _ba_, end_ind); + } + if(93 === c$2){ + add_char(c$0); + add_char(45); + return str_ind$2 + 1 | 0; + } + add_range(c$0, c$2); + var _bb_ = str_ind$2 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _bb_, end_ind]); + var counter$1 = counter + 1 | 0; + return parse_char_set_content(counter$1, _bb_, end_ind); + } + if(switch$0 && 37 === c$0){ + add_char(c$1); + var _a$_ = str_ind$0 + 1 | 0; + if(counter >= 50) + return caml_trampoline_return + (parse_char_set_content, [0, _a$_, end_ind]); + var counter$0 = counter + 1 | 0; + return parse_char_set_content(counter$0, _a$_, end_ind); + } + if(37 === c$0) fail_single_percent(str_ind$0); + add_char(c$0); + var + str_ind$1 = str_ind$0 + 1 | 0, + str_ind$0 = str_ind$1, + c$0 = c$1; + } + }, + parse_char_set_after_char = + function(str_ind, end_ind, c){ + return caml_trampoline + (parse_char_set_after_char$0(0, str_ind, end_ind, c)); + }; + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + if(94 === caml_string_get(str, str_ind)) + var str_ind$0 = str_ind + 1 | 0, reverse = 1, str_ind$1 = str_ind$0; + else + var reverse = 0, str_ind$1 = str_ind; + if(str_ind$1 === end_ind) unexpected_end_of_format(end_ind); + var + c = caml_string_get(str, str_ind$1), + next_ind = parse_char_set_after_char(str_ind$1 + 1 | 0, end_ind, c), + char_set$0 = freeze_char_set(char_set), + char_set$1 = reverse ? rev_char_set(char_set$0) : char_set$0, + fmt_rest$19 = parse(next_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$9 = [10, get_pad_opt(95), char_set$1], + _a1_ = [0, [23, ignored$9, fmt_rest$19]]; + else + var _a1_ = [0, [20, get_pad_opt(91), char_set$1, fmt_rest$19]]; + var fmt_result = _a1_; + break; + case 97: + var + fmt_rest$20 = parse(str_ind, end_ind)[1], + fmt_result = [0, [15, fmt_rest$20]]; + break; + case 99: + var + char_format = + function(fmt_rest){ + return get_ign(0) ? [0, [23, 0, fmt_rest]] : [0, [0, fmt_rest]]; + }, + fmt_rest$21 = parse(str_ind, end_ind)[1], + match$7 = get_pad_opt(99); + if(match$7){ + if(0 === match$7[1]) + var + _a2_ = + get_ign(0) ? [0, [23, 3, fmt_rest$21]] : [0, [22, fmt_rest$21]], + _a3_ = _a2_; + else + var + _a3_ = + legacy_behavior$0 + ? char_format(fmt_rest$21) + : invalid_format_message + (str_ind, cst_non_zero_widths_are_unsupp); + var _a4_ = _a3_; + } + else + var _a4_ = char_format(fmt_rest$21); + var fmt_result = _a4_; + break; + case 114: + var + fmt_rest$22 = parse(str_ind, end_ind)[1], + _a5_ = + get_ign(0) ? [0, [23, 2, fmt_rest$22]] : [0, [19, fmt_rest$22]], + fmt_result = _a5_; + break; + case 115: + var + pad$9 = check_no_0(symb, get_padprec(0)), + fmt_rest$23 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$10 = [0, get_padprec_opt(95)], + _a6_ = [0, [23, ignored$10, fmt_rest$23]]; + else + var + match$8 = make_padding_fmt_ebb(pad$9, fmt_rest$23), + fmt_rest$24 = match$8[2], + pad$10 = match$8[1], + _a6_ = [0, [2, pad$10, fmt_rest$24]]; + var fmt_result = _a6_; + break; + case 116: + var + fmt_rest$25 = parse(str_ind, end_ind)[1], + fmt_result = [0, [16, fmt_rest$25]]; + break; + case 123: + var + sub_end$0 = search_subformat_end(str_ind, end_ind, 125), + sub_fmt$0 = parse(str_ind, sub_end$0)[1], + fmt_rest$26 = parse(sub_end$0 + 2 | 0, end_ind)[1], + sub_fmtty$0 = fmtty_of_fmt(sub_fmt$0); + if(get_ign(0)) + var + ignored$11 = [8, get_pad_opt(95), sub_fmtty$0], + _a7_ = [0, [23, ignored$11, fmt_rest$26]]; + else + var _a7_ = [0, [13, get_pad_opt(123), sub_fmtty$0, fmt_rest$26]]; + var fmt_result = _a7_; + break; + case 66: + case 98: + var + pad$3 = check_no_0(symb, get_padprec(0)), + fmt_rest$8 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$3 = [7, get_padprec_opt(95)], + _aO_ = [0, [23, ignored$3, fmt_rest$8]]; + else + var + match$3 = make_padding_fmt_ebb(pad$3, fmt_rest$8), + fmt_rest$9 = match$3[2], + pad$4 = match$3[1], + _aO_ = [0, [9, pad$4, fmt_rest$9]]; + var fmt_result = _aO_; + break; + case 37: + case 64: + var + fmt_rest$6 = parse(str_ind, end_ind)[1], + fmt_result = [0, [12, symb, fmt_rest$6]]; + break; + case 76: + case 108: + case 110: + var switch$1 = 0; + if(str_ind === end_ind) + switch$1 = 1; + else{ + var + symb$0 = caml_string_get(str, str_ind), + _a8_ = symb$0 - 88 | 0, + switch$2 = 0; + if(32 >= _a8_ >>> 0) + switch(_a8_){ + case 0: + case 12: + case 17: + case 23: + case 29: + case 32: + var _aU_ = 1; switch$2 = 1; break; + } + if(! switch$2) var _aU_ = 0; + if(_aU_) switch$0 = 1; else switch$1 = 1; + } + if(switch$1){ + var fmt_rest$13 = parse(str_ind, end_ind)[1], switch$3 = 0; + if(108 <= symb){ + if(111 > symb) + switch(symb - 108 | 0){ + case 0: + var counter = 0; switch$3 = 1; break; + case 1: break; + default: var counter = 1; switch$3 = 1; + } + } + else if(76 === symb){var counter = 2; switch$3 = 1;} + if(! switch$3) + throw caml_maybe_attach_backtrace([0, Assert_failure, _V_], 1); + if(get_ign(0)) + var + ignored$5 = [11, counter], + _aT_ = [0, [23, ignored$5, fmt_rest$13]]; + else + var _aT_ = [0, [21, counter, fmt_rest$13]]; + var fmt_result = _aT_; + } + break; + case 32: + case 35: + case 43: + case 45: + case 95: + var + fmt_result = caml_call3(failwith_message(_M_), str, pct_ind, symb); + break; + case 88: + case 100: + case 105: + case 111: + case 117: + case 120: + var + _aX_ = get_space(0), + _aY_ = get_hash(0), + iconv$2 = + compute_int_conv(pct_ind, str_ind, get_plus(0), _aY_, _aX_, symb), + fmt_rest$17 = parse(str_ind, end_ind)[1]; + if(get_ign(0)) + var + ignored$8 = [2, iconv$2, get_pad_opt(95)], + _aZ_ = [0, [23, ignored$8, fmt_rest$17]]; + else + var + _a0_ = get_prec(0), + match$6 = make_padprec_fmt_ebb(get_int_pad(0), _a0_, fmt_rest$17), + fmt_rest$18 = match$6[3], + prec$4 = match$6[2], + pad$8 = match$6[1], + _aZ_ = [0, [4, iconv$2, pad$8, prec$4, fmt_rest$18]]; + var fmt_result = _aZ_; + break; + case 69: + case 70: + case 71: + case 72: + case 101: + case 102: + case 103: + case 104: + var + space$1 = get_space(0), + hash$1 = get_hash(0), + plus$2 = get_plus(0), + flag = + plus$2 + ? space$1 + ? legacy_behavior$0 + ? 1 + : incompatible_flag(pct_ind, str_ind, 32, cst$36) + : 1 + : space$1 ? 2 : 0, + switch$4 = 0; + if(73 <= symb){ + var switcher = symb - 101 | 0; + if(3 < switcher >>> 0) + switch$4 = 1; + else{ + switch(switcher){ + case 0: + var _a9_ = 1; break; + case 1: + var _a9_ = 0; break; + case 2: + var _a9_ = 3; break; + default: var _a9_ = 6; + } + var kind = _a9_; + } + } + else if(69 <= symb){ + var switch$5 = 0; + switch(symb - 69 | 0){ + case 0: + var _a__ = 2; break; + case 1: + switch$4 = 1; switch$5 = 1; break; + case 2: + var _a__ = 4; break; + default: var _a__ = 7; + } + if(! switch$5) var kind = _a__; + } + else + switch$4 = 1; + if(switch$4){ + var switch$6 = 0; + if(hash$1){ + if(70 === symb){var kind = 8; switch$6 = 1;} + } + else if(70 === symb){var kind = 5; switch$6 = 1;} + if(! switch$6) + throw caml_maybe_attach_backtrace([0, Assert_failure, _X_], 1); + } + var + fconv = [0, flag, kind], + fmt_rest$11 = parse(str_ind, end_ind)[1]; + if(get_ign(0)){ + var match = get_prec(0); + if(typeof match === "number") + var + _aQ_ = match ? incompatible_flag(pct_ind, str_ind, 95, cst$26) : 0; + else + var ndec = match[1], _aQ_ = [0, ndec]; + var + ignored$4 = [6, get_pad_opt(95), _aQ_], + _aR_ = [0, [23, ignored$4, fmt_rest$11]]; + } + else + var + _aS_ = get_prec(0), + match$4 = make_padprec_fmt_ebb(get_pad(0), _aS_, fmt_rest$11), + fmt_rest$12 = match$4[3], + prec$3 = match$4[2], + pad$5 = match$4[1], + _aR_ = [0, [8, fconv, pad$5, prec$3, fmt_rest$12]]; + var fmt_result = _aR_; + break; + default: switch$0 = 1; + } + if(switch$0){ + var switch$7 = 0; + if(108 <= symb){ + if(111 > symb){ + var switch$8 = 0; + switch(symb - 108 | 0){ + case 0: + var + _ax_ = caml_string_get(str, str_ind), + _ay_ = get_space(0), + _az_ = get_hash(0), + iconv = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _az_, _ay_, _ax_), + fmt_rest = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored = [3, iconv, get_pad_opt(95)], + _aA_ = [0, [23, ignored, fmt_rest]]; + else + var + _aC_ = get_prec(0), + match$0 = make_padprec_fmt_ebb(get_int_pad(0), _aC_, fmt_rest), + fmt_rest$0 = match$0[3], + prec$0 = match$0[2], + pad$0 = match$0[1], + _aA_ = [0, [5, iconv, pad$0, prec$0, fmt_rest$0]]; + var _aB_ = _aA_; + switch$8 = 1; + break; + case 1: break; + default: + var + _aD_ = caml_string_get(str, str_ind), + _aE_ = get_space(0), + _aF_ = get_hash(0), + iconv$0 = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _aF_, _aE_, _aD_), + fmt_rest$1 = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored$0 = [4, iconv$0, get_pad_opt(95)], + _aG_ = [0, [23, ignored$0, fmt_rest$1]]; + else + var + _aH_ = get_prec(0), + match$1 = make_padprec_fmt_ebb(get_int_pad(0), _aH_, fmt_rest$1), + fmt_rest$2 = match$1[3], + prec$1 = match$1[2], + pad$1 = match$1[1], + _aG_ = [0, [6, iconv$0, pad$1, prec$1, fmt_rest$2]]; + var _aB_ = _aG_; + switch$8 = 1; + } + if(switch$8){var fmt_result = _aB_; switch$7 = 1;} + } + } + else if(76 === symb){ + var + _aI_ = caml_string_get(str, str_ind), + _aJ_ = get_space(0), + _aK_ = get_hash(0), + iconv$1 = + compute_int_conv + (pct_ind, str_ind + 1 | 0, get_plus(0), _aK_, _aJ_, _aI_), + fmt_rest$3 = parse(str_ind + 1 | 0, end_ind)[1]; + if(get_ign(0)) + var + ignored$1 = [5, iconv$1, get_pad_opt(95)], + _aL_ = [0, [23, ignored$1, fmt_rest$3]]; + else + var + _aM_ = get_prec(0), + match$2 = make_padprec_fmt_ebb(get_int_pad(0), _aM_, fmt_rest$3), + fmt_rest$4 = match$2[3], + prec$2 = match$2[2], + pad$2 = match$2[1], + _aL_ = [0, [7, iconv$1, pad$2, prec$2, fmt_rest$4]]; + var fmt_result = _aL_; + switch$7 = 1; + } + if(! switch$7) + var + fmt_result = + caml_call3(failwith_message(_J_), str, str_ind - 1 | 0, symb); + } + if(1 - legacy_behavior$0){ + var _ao_ = 1 - plus_used[1], plus$0 = _ao_ ? plus : _ao_; + if(plus$0) incompatible_flag(pct_ind, str_ind, symb, cst$27); + var _ap_ = 1 - hash_used[1], hash$0 = _ap_ ? hash : _ap_; + if(hash$0) incompatible_flag(pct_ind, str_ind, symb, cst$28); + var _aq_ = 1 - space_used[1], space$0 = _aq_ ? space : _aq_; + if(space$0) incompatible_flag(pct_ind, str_ind, symb, cst$29); + var + _ar_ = 1 - pad_used[1], + _as_ = _ar_ ? caml_notequal([0, pad], _K_) : _ar_; + if(_as_) incompatible_flag(pct_ind, str_ind, symb, cst_padding$0); + var + _at_ = 1 - prec_used[1], + _au_ = _at_ ? caml_notequal([0, prec], _L_) : _at_; + if(_au_){ + var _av_ = ign ? 95 : symb; + incompatible_flag(pct_ind, str_ind, _av_, cst_precision$2); + } + var plus$1 = ign ? plus : ign; + if(plus$1) incompatible_flag(pct_ind, str_ind, 95, cst$30); + } + var _aw_ = 1 - ign_used[1], ign$0 = _aw_ ? ign : _aw_; + if(ign$0){ + var switch$9 = 0; + if(38 <= symb){ + if(44 !== symb && 64 !== symb) switch$9 = 1; + } + else if(33 !== symb && 37 > symb) switch$9 = 1; + var switch$10 = 0; + if(switch$9 || ! legacy_behavior$0) switch$10 = 1; + if(switch$10) incompatible_flag(pct_ind, str_ind, symb, cst$31); + } + return fmt_result; + } + function parse_after_precision + (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad, prec){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + function parse_conv(padprec){ + return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + prec, + padprec, + caml_string_get(str, str_ind)); + } + if(typeof pad !== "number") return parse_conv(pad); + if(typeof prec === "number" && ! prec) return parse_conv(0); + if(minus){ + if(typeof prec === "number") return parse_conv(_F_); + var n = prec[1]; + return parse_conv([0, 0, n]); + } + if(typeof prec === "number") return parse_conv(_G_); + var n$0 = prec[1]; + return parse_conv([0, 1, n$0]); + } + function parse_after_padding + (pct_ind, str_ind, end_ind, minus, plus, hash, space, ign, pad){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var symb = caml_string_get(str, str_ind); + if(46 !== symb) + return parse_conversion + (pct_ind, + str_ind + 1 | 0, + end_ind, + plus, + hash, + space, + ign, + pad, + 0, + pad, + symb); + var str_ind$0 = str_ind + 1 | 0; + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + function parse_literal(minus, str_ind){ + var + match = parse_positive(str_ind, end_ind, 0), + prec = match[2], + new_ind = match[1]; + return parse_after_precision + (pct_ind, + new_ind, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + [0, prec]); + } + var symb$0 = caml_string_get(str, str_ind$0); + if(48 <= symb$0){ + if(58 > symb$0) return parse_literal(minus, str_ind$0); + } + else if(42 <= symb$0) + switch(symb$0 - 42 | 0){ + case 0: + return parse_after_precision + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + 1); + case 1: + case 3: + if(legacy_behavior$0){ + var + _an_ = str_ind$0 + 1 | 0, + minus$0 = minus || (45 === symb$0 ? 1 : 0); + return parse_literal(minus$0, _an_); + } + break; + } + return legacy_behavior$0 + ? parse_after_precision + (pct_ind, + str_ind$0, + end_ind, + minus, + plus, + hash, + space, + ign, + pad, + _E_) + : invalid_format_without(str_ind$0 - 1 | 0, 46, cst_precision); + } + function parse_flags(pct_ind, str_ind, end_ind, ign){ + var + zero = [0, 0], + minus = [0, 0], + plus = [0, 0], + space = [0, 0], + hash = [0, 0]; + function set_flag(str_ind, flag){ + var _ak_ = flag[1], _al_ = _ak_ ? 1 - legacy_behavior$0 : _ak_; + if(_al_){ + var _am_ = caml_string_get(str, str_ind); + caml_call3(failwith_message(_C_), str, str_ind, _am_); + } + flag[1] = 1; + return 0; + } + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var switcher = caml_string_get(str, str_ind$0) - 32 | 0; + if(16 >= switcher >>> 0) + switch(switcher){ + case 0: + set_flag(str_ind$0, space); + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + continue; + case 3: + set_flag(str_ind$0, hash); + var str_ind$2 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$2; + continue; + case 11: + set_flag(str_ind$0, plus); + var str_ind$3 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$3; + continue; + case 13: + set_flag(str_ind$0, minus); + var str_ind$4 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$4; + continue; + case 16: + set_flag(str_ind$0, zero); + var str_ind$5 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$5; + continue; + } + var + space$0 = space[1], + hash$0 = hash[1], + plus$0 = plus[1], + minus$0 = minus[1], + zero$0 = zero[1]; + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var + padty = + zero$0 + ? minus$0 + ? legacy_behavior$0 + ? 0 + : incompatible_flag(pct_ind, str_ind$0, 45, cst_0) + : 2 + : minus$0 ? 0 : 1, + match = caml_string_get(str, str_ind$0); + if(48 <= match){ + if(58 > match){ + var + match$0 = parse_positive(str_ind$0, end_ind, 0), + width = match$0[2], + new_ind = match$0[1]; + return parse_after_padding + (pct_ind, + new_ind, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + [0, padty, width]); + } + } + else if(42 === match) + return parse_after_padding + (pct_ind, + str_ind$0 + 1 | 0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + [1, padty]); + switch(padty){ + case 0: + if(1 - legacy_behavior$0) + invalid_format_without(str_ind$0 - 1 | 0, 45, cst_padding); + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + 0); + case 1: + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + 0); + default: + return parse_after_padding + (pct_ind, + str_ind$0, + end_ind, + minus$0, + plus$0, + hash$0, + space$0, + ign, + _D_); + } + } + } + function parse_tag(is_open_tag, str_ind, end_ind){ + try{ + if(str_ind === end_ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + if(60 !== caml_string_get(str, str_ind)) + throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var ind = caml_call3(Stdlib_String[31], str, str_ind + 1 | 0, 62); + if(end_ind <= ind) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var + sub_str = + caml_call3 + (Stdlib_String[15], str, str_ind, (ind - str_ind | 0) + 1 | 0), + fmt_rest$0 = parse(ind + 1 | 0, end_ind)[1], + sub_fmt = parse(str_ind, ind + 1 | 0)[1], + sub_format$0 = [0, sub_fmt, sub_str], + formatting$0 = is_open_tag ? [0, sub_format$0] : [1, sub_format$0], + _ai_ = [0, [18, formatting$0, fmt_rest$0]]; + return _ai_; + } + catch(_aj_){ + var _ah_ = caml_wrap_exception(_aj_); + if(_ah_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ah_, 0); + var + fmt_rest = parse(str_ind, end_ind)[1], + formatting = is_open_tag ? [0, sub_format] : [1, sub_format]; + return [0, [18, formatting, fmt_rest]]; + } + } + function parse_spaces(str_ind, end_ind){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + if(32 !== caml_string_get(str, str_ind$0)) return str_ind$0; + var str_ind$1 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$1; + } + } + function parse_positive(str_ind, end_ind, acc){ + var str_ind$0 = str_ind, acc$0 = acc; + for(;;){ + if(str_ind$0 === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind$0); + if(9 < c - 48 >>> 0) return [0, str_ind$0, acc$0]; + var new_acc = (acc$0 * 10 | 0) + (c - 48 | 0) | 0; + if(Stdlib_Sys[12] < new_acc){ + var _ag_ = Stdlib_Sys[12]; + return caml_call3(failwith_message(_S_), str, new_acc, _ag_); + } + var + str_ind$1 = str_ind$0 + 1 | 0, + str_ind$0 = str_ind$1, + acc$0 = new_acc; + } + } + function parse_integer(str_ind, end_ind){ + if(str_ind === end_ind) unexpected_end_of_format(end_ind); + var match = caml_string_get(str, str_ind); + if(48 <= match){ + if(58 > match) return parse_positive(str_ind, end_ind, 0); + } + else if(45 === match){ + if((str_ind + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); + var c = caml_string_get(str, str_ind + 1 | 0); + if(9 < c - 48 >>> 0) + return expected_character(str_ind + 1 | 0, cst_digit, c); + var + match$0 = parse_positive(str_ind + 1 | 0, end_ind, 0), + n = match$0[2], + next_ind = match$0[1]; + return [0, next_ind, - n | 0]; + } + throw caml_maybe_attach_backtrace([0, Assert_failure, _T_], 1); + } + function search_subformat_end(str_ind, end_ind, c){ + var str_ind$0 = str_ind; + for(;;){ + if(str_ind$0 === end_ind) + caml_call3(failwith_message(_U_), str, c, end_ind); + if(37 !== caml_string_get(str, str_ind$0)){ + var str_ind$7 = str_ind$0 + 1 | 0, str_ind$0 = str_ind$7; + continue; + } + if((str_ind$0 + 1 | 0) === end_ind) unexpected_end_of_format(end_ind); + if(caml_string_get(str, str_ind$0 + 1 | 0) === c) return str_ind$0; + var match = caml_string_get(str, str_ind$0 + 1 | 0); + if(95 <= match){ + if(123 <= match){ + if(126 > match) + switch(match - 123 | 0){ + case 0: + var + sub_end = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 125), + str_ind$2 = sub_end + 2 | 0, + str_ind$0 = str_ind$2; + continue; + case 1: break; + default: + return expected_character(str_ind$0 + 1 | 0, cst_character, 125); + } + } + else if(96 > match){ + if((str_ind$0 + 2 | 0) === end_ind) unexpected_end_of_format(end_ind); + var match$0 = caml_string_get(str, str_ind$0 + 2 | 0); + if(40 === match$0){ + var + sub_end$0 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 41), + str_ind$3 = sub_end$0 + 2 | 0, + str_ind$0 = str_ind$3; + continue; + } + if(123 === match$0){ + var + sub_end$1 = search_subformat_end(str_ind$0 + 3 | 0, end_ind, 125), + str_ind$4 = sub_end$1 + 2 | 0, + str_ind$0 = str_ind$4; + continue; + } + var str_ind$5 = str_ind$0 + 3 | 0, str_ind$0 = str_ind$5; + continue; + } + } + else{ + if(40 === match){ + var + sub_end$2 = search_subformat_end(str_ind$0 + 2 | 0, end_ind, 41), + str_ind$6 = sub_end$2 + 2 | 0, + str_ind$0 = str_ind$6; + continue; + } + if(41 === match) + return expected_character(str_ind$0 + 1 | 0, cst_character$0, 41); + } + var str_ind$1 = str_ind$0 + 2 | 0, str_ind$0 = str_ind$1; + } + } + function incompatible_flag(pct_ind, str_ind, symb, option){ + var + subfmt = + caml_call3(Stdlib_String[15], str, pct_ind, str_ind - pct_ind | 0); + return caml_call5 + (failwith_message(_Y_), str, pct_ind, option, symb, subfmt); + } + function compute_int_conv(pct_ind, str_ind, plus, hash, space, symb){ + var plus$0 = plus, hash$0 = hash, space$0 = space; + for(;;){ + var switch$0 = 0; + if(plus$0){ + if(hash$0) + switch$0 = 1; + else if(! space$0){ + if(100 === symb) return 1; + if(105 === symb) return 4; + } + } + else if(hash$0) + if(space$0) + switch$0 = 1; + else{ + var switcher$0 = symb - 88 | 0; + if(32 < switcher$0 >>> 0) + switch$0 = 1; + else + switch(switcher$0){ + case 0: + return 9; + case 12: + return 13; + case 17: + return 14; + case 23: + return 11; + case 29: + return 15; + case 32: + return 7; + default: switch$0 = 1; + } + } + else if(space$0){ + if(100 === symb) return 2; + if(105 === symb) return 5; + } + else{ + var switcher$1 = symb - 88 | 0; + if(32 >= switcher$1 >>> 0) + switch(switcher$1){ + case 0: + return 8; + case 12: + return 0; + case 17: + return 3; + case 23: + return 10; + case 29: + return 12; + case 32: + return 6; + } + } + if(switch$0){ + var switcher = symb - 88 | 0; + if(32 >= switcher >>> 0) + switch(switcher){ + case 0: + if(legacy_behavior$0) return 9; break; + case 23: + if(legacy_behavior$0) return 11; break; + case 32: + if(legacy_behavior$0) return 7; break; + case 12: + case 17: + case 29: + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$35); + var hash$0 = 0; + continue; + } + } + if(! plus$0){ + if(! space$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$34); + var space$0 = 0; + continue; + } + if(space$0){ + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, 32, cst$32); + var space$0 = 0; + continue; + } + if(! legacy_behavior$0) + return incompatible_flag(pct_ind, str_ind, symb, cst$33); + var plus$0 = 0; + } + } + return parse(0, caml_ml_string_length(str)); + } + function format_of_string_fmtty(str, fmtty){ + var fmt = fmt_ebb_of_string(0, str)[1]; + try{var _ae_ = [0, type_format(fmt, fmtty), str]; return _ae_;} + catch(_af_){ + var _ac_ = caml_wrap_exception(_af_); + if(_ac_ !== Type_mismatch) throw caml_maybe_attach_backtrace(_ac_, 0); + var _ad_ = string_of_fmtty(fmtty); + return caml_call2(failwith_message(_Z_), str, _ad_); + } + } + function format_of_string_format(str, param){ + var + str$0 = param[2], + fmt = param[1], + fmt$0 = fmt_ebb_of_string(0, str)[1]; + try{ + var _aa_ = [0, type_format(fmt$0, fmtty_of_fmt(fmt)), str]; + return _aa_; + } + catch(_ab_){ + var _$_ = caml_wrap_exception(_ab_); + if(_$_ === Type_mismatch) + return caml_call2(failwith_message(___), str, str$0); + throw caml_maybe_attach_backtrace(_$_, 0); + } + } + var + CamlinternalFormat = + [0, + is_in_char_set, + rev_char_set, + create_char_set, + add_in_char_set, + freeze_char_set, + param_format_of_ignored_format, + make_printf, + make_iprintf, + output_acc, + bufput_acc, + strput_acc, + type_format, + fmt_ebb_of_string, + format_of_string_fmtty, + format_of_string_format, + char_of_iconv, + string_of_formatting_lit, + string_of_fmtty, + string_of_fmt, + open_box_of_string, + symm, + trans, + recast]; + runtime.caml_register_global(197, CamlinternalFormat, "CamlinternalFormat"); + return; + } + (globalThis)); + +//# 15817 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Buffer = global_data.Stdlib__Buffer, + CamlinternalFormat = global_data.CamlinternalFormat, + Stdlib = global_data.Stdlib; + function kfprintf(k, o, param){ + var fmt = param[1], _g_ = 0; + function _h_(acc){ + caml_call2(CamlinternalFormat[9], o, acc); + return caml_call1(k, o); + } + return caml_call3(CamlinternalFormat[7], _h_, _g_, fmt); + } + function kbprintf(k, b, param){ + var fmt = param[1], _e_ = 0; + function _f_(acc){ + caml_call2(CamlinternalFormat[10], b, acc); + return caml_call1(k, b); + } + return caml_call3(CamlinternalFormat[7], _f_, _e_, fmt); + } + function ikfprintf(k, oc, param){ + var fmt = param[1]; + return caml_call3(CamlinternalFormat[8], k, oc, fmt); + } + function fprintf(oc, fmt){ + return kfprintf(function(_d_){return 0;}, oc, fmt); + } + function bprintf(b, fmt){ + return kbprintf(function(_c_){return 0;}, b, fmt); + } + function ifprintf(oc, fmt){ + return ikfprintf(function(_b_){return 0;}, oc, fmt); + } + function ibprintf(b, fmt){ + return ikfprintf(function(_a_){return 0;}, b, fmt); + } + function printf(fmt){return fprintf(Stdlib[39], fmt);} + function eprintf(fmt){return fprintf(Stdlib[40], fmt);} + function ksprintf(k, param){ + var fmt = param[1]; + function k$0(acc){ + var buf = caml_call1(Stdlib_Buffer[1], 64); + caml_call2(CamlinternalFormat[11], buf, acc); + return caml_call1(k, caml_call1(Stdlib_Buffer[2], buf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function sprintf(fmt){return ksprintf(function(s){return s;}, fmt);} + var + Stdlib_Printf = + [0, + fprintf, + printf, + eprintf, + sprintf, + bprintf, + ifprintf, + ibprintf, + kfprintf, + ikfprintf, + ksprintf, + kbprintf, + ikfprintf, + ksprintf]; + runtime.caml_register_global(3, Stdlib_Printf, "Stdlib__Printf"); + return; + } + (globalThis)); + +//# 16607 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + CamlinternalAtomic = global_data.CamlinternalAtomic, + make = CamlinternalAtomic[1], + get = CamlinternalAtomic[2], + set = CamlinternalAtomic[3], + exchange = CamlinternalAtomic[4], + compare_and_set = CamlinternalAtomic[5], + fetch_and_add = CamlinternalAtomic[6], + incr = CamlinternalAtomic[7], + decr = CamlinternalAtomic[8], + Stdlib_Atomic = + [0, + make, + get, + set, + exchange, + compare_and_set, + fetch_and_add, + incr, + decr]; + runtime.caml_register_global(1, Stdlib_Atomic, "Stdlib__Atomic"); + return; + } + (globalThis)); + +//# 16639 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$4 = "", + cst_s = "%s\n", + cst_Program_not_linked_with_g_$0 = + "(Program not linked with -g, cannot print stack backtrace)\n", + cst_characters = ", characters ", + cst_Fatal_error_exception = "Fatal error: exception ", + cst_Fatal_error_exception_s = "Fatal error: exception %s\n", + cst_Uncaught_exception = "Uncaught exception: ", + cst_Uncaught_exception_s = "Uncaught exception: %s\n", + caml_check_bound = runtime.caml_check_bound, + caml_get_exception_raw_backtra = runtime.caml_get_exception_raw_backtrace, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call6(f, a0, a1, a2, a3, a4, a5){ + return (f.l >= 0 ? f.l : f.l = f.length) == 6 + ? f(a0, a1, a2, a3, a4, a5) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); + } + function caml_call8(f, a0, a1, a2, a3, a4, a5, a6, a7){ + return (f.l >= 0 ? f.l : f.l = f.length) == 8 + ? f(a0, a1, a2, a3, a4, a5, a6, a7) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7]); + } + var + global_data = runtime.caml_get_global_data(), + cst$0 = cst$4, + cst$3 = cst$4, + partial = [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, 0]]], + cst$1 = cst$4, + cst$2 = cst$4, + cst = "_", + locfmt = + [0, + [11, + 'File "', + [2, + 0, + [11, + '", line ', [4, 0, 0, 0, [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(" expected, read "),[1,0]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, %s expected, read %C")], - _aE_= + cst_characters, + [4, 0, 0, 0, [12, 45, [4, 0, 0, 0, [11, ": ", [2, 0, 0]]]]]]]]]], + 'File "%s", line %d, characters %d-%d: %s'], + Stdlib_Printf = global_data.Stdlib__Printf, + Stdlib_Atomic = global_data.Stdlib__Atomic, + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_Obj = global_data.Stdlib__Obj, + printers = caml_call1(Stdlib_Atomic[1], 0), + _c_ = [0, [11, ", ", [2, 0, [2, 0, 0]]], ", %s%s"], + _o_ = + [0, + [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], + cst_Fatal_error_exception_s], + _p_ = [0, [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(", '"), - [0,[11,caml_string_of_jsbytes("' without "),[2,0,0]]]]]]]], - caml_string_of_jsbytes - ("invalid format %S: at character number %d, '%c' without %s")], - _aD_= + "Fatal error in uncaught exception handler: exception ", + [2, 0, [12, 10, 0]]], + "Fatal error in uncaught exception handler: exception %s\n"], + cst_Fatal_error_out_of_memory_ = + "Fatal error: out of memory in uncaught exception handler", + _n_ = [0, - [11, - caml_string_of_jsbytes("invalid format "), - [3, - 0, - [11, - caml_string_of_jsbytes(": at character number "), - [4,0,0,0,[11,caml_string_of_jsbytes(", "),[2,0,0]]]]]], - caml_string_of_jsbytes("invalid format %S: at character number %d, %s")], - _aC_= + [11, cst_Fatal_error_exception, [2, 0, [12, 10, 0]]], + cst_Fatal_error_exception_s], + _l_ = [0, [2, 0, [12, 10, 0]], cst_s], + cst_Program_not_linked_with_g_ = cst_Program_not_linked_with_g_$0, + _j_ = [0, [2, 0, [12, 10, 0]], cst_s], + _k_ = [0, - [11,caml_string_of_jsbytes("invalid box description "),[3,0,0]], - caml_string_of_jsbytes("invalid box description %S")], - _aB_=[0,0,4], - _av_=[0,103], - _ae_=[0,0,0], - _bo_=[0,[2,0,[0,0]],caml_string_of_jsbytes("%s%c")], - _bi_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bj_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bg_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bh_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _be_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _bf_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _a__= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": unknown option '"), - [2,0,[11,caml_string_of_jsbytes("'.\n"),0]]]], - caml_string_of_jsbytes("%s: unknown option '%s'.\n")], - _bb_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": wrong argument '"), - [2, - 0, - [11, - caml_string_of_jsbytes("'; option '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' expects "), - [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]]]]]], - caml_string_of_jsbytes - ("%s: wrong argument '%s'; option '%s' expects %s.\n")], - _bc_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": option '"), - [2,0,[11,caml_string_of_jsbytes("' needs an argument.\n"),0]]]], - caml_string_of_jsbytes("%s: option '%s' needs an argument.\n")], - _bd_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes(": "), - [2,0,[11,caml_string_of_jsbytes(".\n"),0]]]], - caml_string_of_jsbytes("%s: %s.\n")], - _a$_=[0,caml_string_of_jsbytes("-help")], - _ba_=[0,caml_string_of_jsbytes("--help")], - _a9_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _a8_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _a7_=[0,caml_string_of_jsbytes("-help")], - _a5_= - [0, - [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[12,10,0]]]]], - caml_string_of_jsbytes(" %s %s\n")], - _a6_= - [0, - [11,caml_string_of_jsbytes(" "),[2,0,[12,32,[2,0,[2,0,[12,10,0]]]]]], - caml_string_of_jsbytes(" %s %s%s\n")], - _bt_= - [0, - [11,caml_string_of_jsbytes(", "),[2,0,[2,0,0]]], - caml_string_of_jsbytes(", %s%s")], - _bF_= - [0, - [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Fatal error: exception %s\n")], - _bG_= - [0, - [11, - caml_string_of_jsbytes - ("Fatal error in uncaught exception handler: exception "), - [2,0,[12,10,0]]], - caml_string_of_jsbytes - ("Fatal error in uncaught exception handler: exception %s\n")], - _bE_= - [0, - [11,caml_string_of_jsbytes("Fatal error: exception "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Fatal error: exception %s\n")], - _bC_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _bA_=[0,[2,0,[12,10,0]],caml_string_of_jsbytes("%s\n")], - _bB_= - [0, - [11, - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n"), - 0], - caml_string_of_jsbytes - ("(Program not linked with -g, cannot print stack backtrace)\n")], - _by_= + [11, cst_Program_not_linked_with_g_$0, 0], + cst_Program_not_linked_with_g_$0], + cst_Raised_at = "Raised at", + cst_Re_raised_at = "Re-raised at", + cst_Raised_by_primitive_operat = "Raised by primitive operation at", + cst_Called_from = "Called from", + cst_inlined = " (inlined)", + _h_ = [0, [2, 0, @@ -9917,131 +24553,550 @@ [2, 0, [11, - caml_string_of_jsbytes(' in file "'), + ' in file "', [2, 0, [12, 34, [2, 0, - [11, - caml_string_of_jsbytes(", line "), - [4,0,0,0,[11,caml_string_of_jsbytes(", characters "),partial]]]]]]]]]], - caml_string_of_jsbytes - ('%s %s in file "%s"%s, line %d, characters %d-%d')], - _bz_= + [11, ", line ", [4, 0, 0, 0, [11, cst_characters, partial]]]]]]]]]], + '%s %s in file "%s"%s, line %d, characters %d-%d'], + _i_ = [0, [2, 0, [11, " unknown location", 0]], "%s unknown location"], + _g_ = [0, - [2,0,[11,caml_string_of_jsbytes(" unknown location"),0]], - caml_string_of_jsbytes("%s unknown location")], - _bx_= + [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], + cst_Uncaught_exception_s], + _f_ = [0, - [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Uncaught exception: %s\n")], - _bw_= + [11, cst_Uncaught_exception, [2, 0, [12, 10, 0]]], + cst_Uncaught_exception_s], + cst_Out_of_memory = "Out of memory", + cst_Stack_overflow = "Stack overflow", + cst_Pattern_matching_failed = "Pattern matching failed", + cst_Assertion_failed = "Assertion failed", + cst_Undefined_recursive_module = "Undefined recursive module", + _d_ = [0, [12, 40, [2, 0, [2, 0, [12, 41, 0]]]], "(%s%s)"], + _e_ = [0, [12, 40, [2, 0, [12, 41, 0]]], "(%s)"], + _b_ = [0, [4, 0, 0, 0, 0], "%d"], + _a_ = [0, [3, 0, 0], "%S"], + _m_ = [0, - [11,caml_string_of_jsbytes("Uncaught exception: "),[2,0,[12,10,0]]], - caml_string_of_jsbytes("Uncaught exception: %s\n")], - _bu_=[0,[12,40,[2,0,[2,0,[12,41,0]]]],caml_string_of_jsbytes("(%s%s)")], - _bv_=[0,[12,40,[2,0,[12,41,0]]],caml_string_of_jsbytes("(%s)")], - _bs_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _br_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bD_= + cst$4, + "(Cannot print locations:\n bytecode executable program file not found)", + "(Cannot print locations:\n bytecode executable program file appears to be corrupt)", + "(Cannot print locations:\n bytecode executable program file has wrong magic number)", + "(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)"]; + function field(x, i){ + var f = x[1 + i]; + if(! caml_call1(Stdlib_Obj[1], f)) + return caml_call2(Stdlib_Printf[4], _b_, f); + var _al_ = Stdlib_Obj[13]; + if(caml_obj_tag(f) === _al_) return caml_call2(Stdlib_Printf[4], _a_, f); + var _am_ = Stdlib_Obj[14]; + return caml_obj_tag(f) === _am_ ? caml_call1(Stdlib[35], f) : cst; + } + function other_fields(x, i){ + if(x.length - 1 <= i) return cst$0; + var _aj_ = other_fields(x, i + 1 | 0), _ak_ = field(x, i); + return caml_call3(Stdlib_Printf[4], _c_, _ak_, _aj_); + } + function use_printers(x){ + var param = caml_call1(Stdlib_Atomic[2], printers); + for(;;){ + if(! param) return 0; + var tl = param[2], hd = param[1], switch$0 = 0; + try{var val = caml_call1(hd, x);}catch(_ai_){switch$0 = 1;} + if(! switch$0 && val){var s = val[1]; return [0, s];} + var param = tl; + } + } + function to_string_default(x){ + if(x === Stdlib[9]) return cst_Out_of_memory; + if(x === Stdlib[10]) return cst_Stack_overflow; + if(x[1] === Stdlib[4]){ + var + match$0 = x[2], + char$0 = match$0[3], + line = match$0[2], + file = match$0[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file, + line, + char$0, + char$0 + 5 | 0, + cst_Pattern_matching_failed); + } + if(x[1] === Stdlib[5]){ + var + match$1 = x[2], + char$1 = match$1[3], + line$0 = match$1[2], + file$0 = match$1[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file$0, + line$0, + char$1, + char$1 + 6 | 0, + cst_Assertion_failed); + } + if(x[1] === Stdlib[15]){ + var + match$2 = x[2], + char$2 = match$2[3], + line$1 = match$2[2], + file$1 = match$2[1]; + return caml_call6 + (Stdlib_Printf[4], + locfmt, + file$1, + line$1, + char$2, + char$2 + 6 | 0, + cst_Undefined_recursive_module); + } + if(0 !== caml_obj_tag(x)) return x[1]; + var constructor = x[1][1], match = x.length - 1; + if(2 < match >>> 0) + var + _ae_ = other_fields(x, 2), + _af_ = field(x, 1), + _ah_ = caml_call3(Stdlib_Printf[4], _d_, _af_, _ae_); + else + switch(match){ + case 0: + var _ah_ = cst$1; break; + case 1: + var _ah_ = cst$2; break; + default: + var + _ag_ = field(x, 1), + _ah_ = caml_call2(Stdlib_Printf[4], _e_, _ag_); + } + return caml_call2(Stdlib[28], constructor, _ah_); + } + function to_string(e){ + var match = use_printers(e); + if(! match) return to_string_default(e); + var s = match[1]; + return s; + } + function print(fct, arg){ + try{var _ad_ = caml_call1(fct, arg); return _ad_;} + catch(x$0){ + var x = caml_wrap_exception(x$0), _ac_ = to_string(x); + caml_call2(Stdlib_Printf[3], _f_, _ac_); + caml_call1(Stdlib[63], Stdlib[40]); + throw caml_maybe_attach_backtrace(x, 0); + } + } + function catch$0(fct, arg){ + try{var _ab_ = caml_call1(fct, arg); return _ab_;} + catch(x$0){ + var x = caml_wrap_exception(x$0); + caml_call1(Stdlib[63], Stdlib[39]); + var _aa_ = to_string(x); + caml_call2(Stdlib_Printf[3], _g_, _aa_); + return caml_call1(Stdlib[99], 2); + } + } + function raw_backtrace_entries(bt){return bt;} + function convert_raw_backtrace(bt){ + return [0, runtime.caml_convert_raw_backtrace(bt)]; + } + function format_backtrace_slot(pos, slot){ + function info(is_raise){ + return is_raise + ? 0 === pos ? cst_Raised_at : cst_Re_raised_at + : 0 === pos ? cst_Raised_by_primitive_operat : cst_Called_from; + } + if(0 === slot[0]){ + var + _U_ = slot[5], + _V_ = slot[4], + _W_ = slot[3], + _X_ = slot[6] ? cst_inlined : cst$3, + _Y_ = slot[2], + _Z_ = slot[7], + ___ = info(slot[1]); + return [0, + caml_call8 + (Stdlib_Printf[4], _h_, ___, _Z_, _Y_, _X_, _W_, _V_, _U_)]; + } + if(slot[1]) return 0; + var _$_ = info(0); + return [0, caml_call2(Stdlib_Printf[4], _i_, _$_)]; + } + function print_raw_backtrace(outchan, raw_backtrace){ + var backtrace = convert_raw_backtrace(raw_backtrace); + if(! backtrace) return caml_call2(Stdlib_Printf[1], outchan, _k_); + var a = backtrace[1], _S_ = a.length - 1 - 1 | 0, _R_ = 0; + if(_S_ >= 0){ + var i = _R_; + for(;;){ + var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); + if(match){ + var str = match[1]; + caml_call3(Stdlib_Printf[1], outchan, _j_, str); + } + var _T_ = i + 1 | 0; + if(_S_ !== i){var i = _T_; continue;} + break; + } + } + return 0; + } + function print_backtrace(outchan){ + return print_raw_backtrace(outchan, caml_get_exception_raw_backtra(0)); + } + function raw_backtrace_to_string(raw_backtrace){ + var backtrace = convert_raw_backtrace(raw_backtrace); + if(! backtrace) return cst_Program_not_linked_with_g_; + var + a = backtrace[1], + b = caml_call1(Stdlib_Buffer[1], 1024), + _P_ = a.length - 1 - 1 | 0, + _O_ = 0; + if(_P_ >= 0){ + var i = _O_; + for(;;){ + var match = format_backtrace_slot(i, caml_check_bound(a, i)[1 + i]); + if(match){ + var str = match[1]; + caml_call3(Stdlib_Printf[5], b, _l_, str); + } + var _Q_ = i + 1 | 0; + if(_P_ !== i){var i = _Q_; continue;} + break; + } + } + return caml_call1(Stdlib_Buffer[2], b); + } + function backtrace_slot_is_raise(param){ + return 0 === param[0] ? param[1] : param[1]; + } + function backtrace_slot_is_inline(param){return 0 === param[0] ? param[6] : 0; + } + function backtrace_slot_location(param){ + return 0 === param[0] + ? [0, [0, param[2], param[3], param[4], param[5]]] + : 0; + } + function backtrace_slot_defname(param){ + if(0 === param[0] && runtime.caml_string_notequal(param[7], cst$4)) + return [0, param[7]]; + return 0; + } + function backtrace_slots(raw_backtrace){ + var match = convert_raw_backtrace(raw_backtrace); + if(! match) return 0; + var backtrace = match[1], i$1 = backtrace.length - 1 - 1 | 0, i = i$1; + for(;;){ + if(-1 === i) + var _N_ = 0; + else{ + var _M_ = 0 === caml_check_bound(backtrace, i)[1 + i][0] ? 1 : 0; + if(! _M_){var i$0 = i - 1 | 0, i = i$0; continue;} + var _N_ = _M_; + } + return _N_ ? [0, backtrace] : 0; + } + } + function backtrace_slots_of_raw_entry(entry){return backtrace_slots([0, entry]); + } + function raw_backtrace_length(bt){return bt.length - 1;} + function get_backtrace(param){ + return raw_backtrace_to_string(caml_get_exception_raw_backtra(0)); + } + function register_printer(fn){ + for(;;){ + var + old_printers = caml_call1(Stdlib_Atomic[2], printers), + new_printers = [0, fn, old_printers], + success = + caml_call3(Stdlib_Atomic[5], printers, old_printers, new_printers), + _L_ = 1 - success; + if(_L_) continue; + return _L_; + } + } + function exn_slot(x){return 0 === caml_obj_tag(x) ? x[1] : x;} + function exn_slot_id(x){var slot = exn_slot(x); return slot[2];} + function exn_slot_name(x){var slot = exn_slot(x); return slot[1];} + var errors = _m_.slice(); + function default_uncaught_exception_han(exn, raw_backtrace){ + var _I_ = to_string(exn); + caml_call2(Stdlib_Printf[3], _n_, _I_); + print_raw_backtrace(Stdlib[40], raw_backtrace); + var status = runtime.caml_ml_debug_info_status(0); + if(status < 0){ + var + _J_ = caml_call1(Stdlib[18], status), + _K_ = caml_check_bound(errors, _J_)[1 + _J_]; + caml_call1(Stdlib[53], _K_); + } + return caml_call1(Stdlib[63], Stdlib[40]); + } + var uncaught_exception_handler = [0, default_uncaught_exception_han]; + function set_uncaught_exception_handler(fn){ + uncaught_exception_handler[1] = fn; + return 0; + } + var empty_backtrace = [0]; + function handle_uncaught_exception(exn$0, debugger_in_use){ + try{ + try{ + var + raw_backtrace = + debugger_in_use ? empty_backtrace : caml_get_exception_raw_backtra(0); + try{caml_call1(Stdlib[103], 0);}catch(_H_){} + try{ + var + _D_ = caml_call2(uncaught_exception_handler[1], exn$0, raw_backtrace), + _C_ = _D_; + } + catch(exn$1){ + var + exn = caml_wrap_exception(exn$1), + raw_backtrace$0 = caml_get_exception_raw_backtra(0), + _A_ = to_string(exn$0); + caml_call2(Stdlib_Printf[3], _o_, _A_); + print_raw_backtrace(Stdlib[40], raw_backtrace); + var _B_ = to_string(exn); + caml_call2(Stdlib_Printf[3], _p_, _B_); + print_raw_backtrace(Stdlib[40], raw_backtrace$0); + var _C_ = caml_call1(Stdlib[63], Stdlib[40]); + } + var _E_ = _C_; + } + catch(_G_){ + var _z_ = caml_wrap_exception(_G_); + if(_z_ !== Stdlib[9]) throw caml_maybe_attach_backtrace(_z_, 0); + var _E_ = caml_call1(Stdlib[53], cst_Fatal_error_out_of_memory_); + } + return _E_; + } + catch(_F_){return 0;} + } + runtime.caml_register_named_value + ("Printexc.handle_uncaught_exception", handle_uncaught_exception); + function _q_(_y_){return runtime.caml_raw_backtrace_next_slot(_y_);} + function _r_(_x_){return runtime.caml_convert_raw_backtrace_slot(_x_);} + function _s_(_w_, _v_){return runtime.caml_raw_backtrace_slot(_w_, _v_);} + var + _t_ = [0, - caml_string_of_jsbytes(""), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file not found)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file has wrong magic number)"), - caml_string_of_jsbytes - ("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")], - _bN_= + backtrace_slot_is_raise, + backtrace_slot_is_inline, + backtrace_slot_location, + backtrace_slot_defname, + format_backtrace_slot], + Stdlib_Printexc = [0, - [11, - caml_string_of_jsbytes("minor_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("minor_collections: %d\n")], - _bO_= + to_string, + to_string_default, + print, + catch$0, + print_backtrace, + get_backtrace, + runtime.caml_record_backtrace, + runtime.caml_backtrace_status, + register_printer, + use_printers, + raw_backtrace_entries, + function(_u_){return caml_get_exception_raw_backtra(_u_);}, + print_raw_backtrace, + raw_backtrace_to_string, + default_uncaught_exception_han, + set_uncaught_exception_handler, + backtrace_slots, + backtrace_slots_of_raw_entry, + _t_, + raw_backtrace_length, + _s_, + _r_, + _q_, + exn_slot_id, + exn_slot_name]; + runtime.caml_register_global(42, Stdlib_Printexc, "Stdlib__Printexc"); + return; + } + (globalThis)); + +//# 17358 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Digest_from_hex$1 = "Digest.from_hex", + caml_bytes_unsafe_set = runtime.caml_bytes_unsafe_set, + caml_create_bytes = runtime.caml_create_bytes, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_md5_string = runtime.caml_md5_string, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_get = runtime.caml_string_get, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_String = global_data.Stdlib__String, + compare = Stdlib_String[9], + equal = Stdlib_String[8], + cst_Digest_from_hex$0 = cst_Digest_from_hex$1, + cst_Digest_from_hex = cst_Digest_from_hex$1, + cst_Digest_to_hex = "Digest.to_hex", + cst_Digest_substring = "Digest.substring"; + function string(str){ + return caml_md5_string(str, 0, caml_ml_string_length(str)); + } + function bytes(b){return string(caml_call1(Stdlib_Bytes[48], b));} + function substring(str, ofs, len){ + if(0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) + return caml_md5_string(str, ofs, len); + return caml_call1(Stdlib[1], cst_Digest_substring); + } + function subbytes(b, ofs, len){ + return substring(caml_call1(Stdlib_Bytes[48], b), ofs, len); + } + function file(filename){ + var ic = caml_call1(Stdlib[80], filename); + try{var d = runtime.caml_md5_chan(ic, -1);} + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[93], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + caml_call1(Stdlib[93], ic); + return d; + } + function output(chan, digest){return caml_call2(Stdlib[66], chan, digest);} + function input(chan){return caml_call2(Stdlib[86], chan, 16);} + function char_hex(n){var _e_ = 10 <= n ? 87 : 48; return n + _e_ | 0;} + function to_hex(d){ + if(16 !== caml_ml_string_length(d)) + caml_call1(Stdlib[1], cst_Digest_to_hex); + var result = caml_create_bytes(32), i = 0; + for(;;){ + var x = caml_string_get(d, i); + caml_bytes_unsafe_set(result, i * 2 | 0, char_hex(x >>> 4 | 0)); + caml_bytes_unsafe_set(result, (i * 2 | 0) + 1 | 0, char_hex(x & 15)); + var _d_ = i + 1 | 0; + if(15 === i) return caml_call1(Stdlib_Bytes[48], result); + var i = _d_; + } + } + function from_hex(s){ + if(32 !== caml_ml_string_length(s)) + caml_call1(Stdlib[1], cst_Digest_from_hex); + function digit(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Digest_from_hex$0], 1); + } + var result = caml_create_bytes(16), i = 0; + for(;;){ + var + i$0 = 2 * i | 0, + _a_ = digit(caml_string_get(s, i$0 + 1 | 0)), + _b_ = (digit(caml_string_get(s, i$0)) << 4) + _a_ | 0; + runtime.caml_bytes_set(result, i, caml_call1(Stdlib_Char[1], _b_)); + var _c_ = i + 1 | 0; + if(15 === i) return caml_call1(Stdlib_Bytes[48], result); + var i = _c_; + } + } + var + Stdlib_Digest = [0, - [11, - caml_string_of_jsbytes("major_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("major_collections: %d\n")], - _bP_= - [0, - [11, - caml_string_of_jsbytes("compactions: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("compactions: %d\n")], - _bQ_= - [0, - [11, - caml_string_of_jsbytes("forced_major_collections: "), - [4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("forced_major_collections: %d\n")], - _bR_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _bS_=[0,[8,[0,0,0],0,[0,0],0],caml_string_of_jsbytes("%.0f")], - _bT_= - [0, - [11, - caml_string_of_jsbytes("minor_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("minor_words: %*.0f\n")], - _bU_= - [0, - [11, - caml_string_of_jsbytes("promoted_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("promoted_words: %*.0f\n")], - _bV_= - [0, - [11, - caml_string_of_jsbytes("major_words: "), - [8,[0,0,0],[1,1],[0,0],[12,10,0]]], - caml_string_of_jsbytes("major_words: %*.0f\n")], - _bW_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _bX_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _bY_= - [0, - [11,caml_string_of_jsbytes("top_heap_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("top_heap_words: %*d\n")], - _bZ_= - [0, - [11,caml_string_of_jsbytes("heap_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("heap_words: %*d\n")], - _b0_= - [0, - [11,caml_string_of_jsbytes("live_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("live_words: %*d\n")], - _b1_= - [0, - [11,caml_string_of_jsbytes("free_words: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("free_words: %*d\n")], - _b2_= - [0, - [11,caml_string_of_jsbytes("largest_free: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("largest_free: %*d\n")], - _b3_= - [0, - [11,caml_string_of_jsbytes("fragments: "),[4,0,[1,1],0,[12,10,0]]], - caml_string_of_jsbytes("fragments: %*d\n")], - _b4_=[0,[12,10,0],caml_string_of_jsbytes("\n")], - _b5_= - [0, - [11,caml_string_of_jsbytes("live_blocks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("live_blocks: %d\n")], - _b6_= - [0, - [11,caml_string_of_jsbytes("free_blocks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("free_blocks: %d\n")], - _b7_= - [0, - [11,caml_string_of_jsbytes("heap_chunks: "),[4,0,0,0,[12,10,0]]], - caml_string_of_jsbytes("heap_chunks: %d\n")], - _cd_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _ce_=runtime.caml_int64_create_lo_mi_hi(0,0,0), - _cf_= + compare, + equal, + string, + bytes, + substring, + subbytes, + file, + output, + input, + to_hex, + from_hex]; + runtime.caml_register_global(8, Stdlib_Digest, "Stdlib__Digest"); + return; + } + (globalThis)); + +//# 17479 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_greaterthan = runtime.caml_greaterthan, + caml_int64_of_int32 = runtime.caml_int64_of_int32, + caml_int64_or = runtime.caml_int64_or, + caml_int64_shift_left = runtime.caml_int64_shift_left, + caml_int64_shift_right_unsigne = runtime.caml_int64_shift_right_unsigned, + caml_int64_sub = runtime.caml_int64_sub, + caml_int64_to_int32 = runtime.caml_int64_to_int32, + caml_lessequal = runtime.caml_lessequal, + caml_mod = runtime.caml_mod, + caml_string_get = runtime.caml_string_get, + caml_sys_random_seed = runtime.caml_sys_random_seed; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib, + Stdlib_Int32 = global_data.Stdlib__Int32, + Stdlib_Int64 = global_data.Stdlib__Int64, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Digest = global_data.Stdlib__Digest, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Nativeint = global_data.Stdlib__Nativeint, + _a_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + _b_ = runtime.caml_int64_create_lo_mi_hi(0, 0, 0), + cst_Random_int64 = "Random.int64", + cst_Random_int32 = "Random.int32", + cst_Random_full_int = "Random.full_int", + cst_Random_int = "Random.int", + cst_x = "x", + _c_ = [0, 987910699, 495797812, @@ -10097,12815 +25152,198 @@ 510646120, 652377910, 409934019, - 801085050], - _ci_=[0,0], - _co_=[3,0,3], - _cn_=[1,caml_string_of_jsbytes("max_indent < 2")], - _cl_=[1,caml_string_of_jsbytes("margin <= max_indent")], - _cm_=[0,0], - _ck_=[0,caml_string_of_jsbytes("")], - _cj_=[0,caml_string_of_jsbytes(""),0,caml_string_of_jsbytes("")], - _cE_=[0,91], - _cD_=[0,123], - _cF_=[0,caml_string_of_jsbytes("scanf.ml"),1453,13], - _cG_=[0,[3,0,[10,0]],caml_string_of_jsbytes("%S%!")], - _cC_=[0,37,caml_string_of_jsbytes("")], - _cB_= - [0, - [11, - caml_string_of_jsbytes("scanf: bad input at char number "), - [4,3,0,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]], - caml_string_of_jsbytes("scanf: bad input at char number %i: %s")], - _cA_= - [0, - [11, - caml_string_of_jsbytes("the character "), - [1,[11,caml_string_of_jsbytes(" cannot start a boolean"),0]]], - caml_string_of_jsbytes("the character %C cannot start a boolean")], - _cz_= - [0, - [11, - caml_string_of_jsbytes("bad character hexadecimal encoding \\"), - [0,[0,0]]], - caml_string_of_jsbytes("bad character hexadecimal encoding \\%c%c")], - _cy_= - [0, - [11, - caml_string_of_jsbytes("bad character decimal encoding \\"), - [0,[0,[0,0]]]], - caml_string_of_jsbytes("bad character decimal encoding \\%c%c%c")], - _cx_= - [0, - [11, - caml_string_of_jsbytes("character "), - [1, - [11, - caml_string_of_jsbytes(" is not a valid "), - [2,0,[11,caml_string_of_jsbytes(" digit"),0]]]]], - caml_string_of_jsbytes("character %C is not a valid %s digit")], - _cw_= - [0, - [11, - caml_string_of_jsbytes("character "), - [1,[11,caml_string_of_jsbytes(" is not a decimal digit"),0]]], - caml_string_of_jsbytes("character %C is not a decimal digit")], - _cv_=[0,caml_string_of_jsbytes("scanf.ml"),555,9], - _cu_= - [0, - [11,caml_string_of_jsbytes("invalid boolean '"),[2,0,[12,39,0]]], - caml_string_of_jsbytes("invalid boolean '%s'")], - _ct_= - [0, - [11, - caml_string_of_jsbytes("looking for "), - [1,[11,caml_string_of_jsbytes(", found "),[1,0]]]], - caml_string_of_jsbytes("looking for %C, found %C")], - _cs_= - [0, - [11, - caml_string_of_jsbytes("scanning of "), - [2, - 0, - [11, - caml_string_of_jsbytes - (" failed: premature end of file occurred before end of token"), - 0]]], - caml_string_of_jsbytes - ("scanning of %s failed: premature end of file occurred before end of token")], - _cr_= - [0, - [11, - caml_string_of_jsbytes("scanning of "), - [2, - 0, - [11, - caml_string_of_jsbytes - (" failed: the specified length was too short for token"), - 0]]], - caml_string_of_jsbytes - ("scanning of %s failed: the specified length was too short for token")], - _cq_= - [0, - [11,caml_string_of_jsbytes("illegal escape character "),[1,0]], - caml_string_of_jsbytes("illegal escape character %C")], - _cN_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),439,17], - _cM_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),421,13], - _cL_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),418,13], - _cK_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),415,13], - _cJ_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),412,13], - _cI_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),409,13], - _cH_=[0,caml_string_of_jsbytes("camlinternalOO.ml"),281,50], - _cO_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),72,5], - _cP_=[0,caml_string_of_jsbytes("camlinternalMod.ml"),81,2], - _cS_=[0,0], - _cR_=[0,0], - _cQ_=[0,0], - _cX_=[0,7,0], - _cW_=[0,1,[0,3,[0,5,0]]], - _cV_=[0,[2,0,[4,6,[0,2,6],0,[2,0,0]]],caml_string_of_jsbytes("%s%06x%s")], - _cU_=[0,caml_string_of_jsbytes('"'),0], - _cY_=[254,0.,0.], - _cZ_=[0,0]; - function erase_rel(param) - {if(typeof param === "number")return 0; - switch(param[0]) - {case 0:var rest=param[1];return [0,erase_rel(rest)]; - case 1:var rest$0=param[1];return [1,erase_rel(rest$0)]; - case 2:var rest$1=param[1];return [2,erase_rel(rest$1)]; - case 3:var rest$2=param[1];return [3,erase_rel(rest$2)]; - case 4:var rest$3=param[1];return [4,erase_rel(rest$3)]; - case 5:var rest$4=param[1];return [5,erase_rel(rest$4)]; - case 6:var rest$5=param[1];return [6,erase_rel(rest$5)]; - case 7:var rest$6=param[1];return [7,erase_rel(rest$6)]; - case 8: - var rest$7=param[2],ty=param[1];return [8,ty,erase_rel(rest$7)]; - case 9: - var rest$8=param[3],ty1=param[1]; - return [9,ty1,ty1,erase_rel(rest$8)]; - case 10:var rest$9=param[1];return [10,erase_rel(rest$9)]; - case 11:var rest$10=param[1];return [11,erase_rel(rest$10)]; - case 12:var rest$11=param[1];return [12,erase_rel(rest$11)]; - case 13:var rest$12=param[1];return [13,erase_rel(rest$12)]; - default:var rest$13=param[1];return [14,erase_rel(rest$13)]}} - function concat_fmtty(fmtty1,fmtty2) - {if(typeof fmtty1 === "number")return fmtty2; - switch(fmtty1[0]) - {case 0:var rest=fmtty1[1];return [0,concat_fmtty(rest,fmtty2)]; - case 1:var rest$0=fmtty1[1];return [1,concat_fmtty(rest$0,fmtty2)]; - case 2:var rest$1=fmtty1[1];return [2,concat_fmtty(rest$1,fmtty2)]; - case 3:var rest$2=fmtty1[1];return [3,concat_fmtty(rest$2,fmtty2)]; - case 4:var rest$3=fmtty1[1];return [4,concat_fmtty(rest$3,fmtty2)]; - case 5:var rest$4=fmtty1[1];return [5,concat_fmtty(rest$4,fmtty2)]; - case 6:var rest$5=fmtty1[1];return [6,concat_fmtty(rest$5,fmtty2)]; - case 7:var rest$6=fmtty1[1];return [7,concat_fmtty(rest$6,fmtty2)]; - case 8: - var rest$7=fmtty1[2],ty=fmtty1[1]; - return [8,ty,concat_fmtty(rest$7,fmtty2)]; - case 9: - var rest$8=fmtty1[3],ty2=fmtty1[2],ty1=fmtty1[1]; - return [9,ty1,ty2,concat_fmtty(rest$8,fmtty2)]; - case 10:var rest$9=fmtty1[1];return [10,concat_fmtty(rest$9,fmtty2)]; - case 11: - var rest$10=fmtty1[1];return [11,concat_fmtty(rest$10,fmtty2)]; - case 12: - var rest$11=fmtty1[1];return [12,concat_fmtty(rest$11,fmtty2)]; - case 13: - var rest$12=fmtty1[1];return [13,concat_fmtty(rest$12,fmtty2)]; - default:var rest$13=fmtty1[1];return [14,concat_fmtty(rest$13,fmtty2)]}} - function concat_fmt(fmt1,fmt2) - {if(typeof fmt1 === "number")return fmt2; - switch(fmt1[0]) - {case 0:var rest=fmt1[1];return [0,concat_fmt(rest,fmt2)]; - case 1:var rest$0=fmt1[1];return [1,concat_fmt(rest$0,fmt2)]; - case 2: - var rest$1=fmt1[2],pad=fmt1[1]; - return [2,pad,concat_fmt(rest$1,fmt2)]; - case 3: - var rest$2=fmt1[2],pad$0=fmt1[1]; - return [3,pad$0,concat_fmt(rest$2,fmt2)]; - case 4: - var rest$3=fmt1[4],prec=fmt1[3],pad$1=fmt1[2],iconv=fmt1[1]; - return [4,iconv,pad$1,prec,concat_fmt(rest$3,fmt2)]; - case 5: - var rest$4=fmt1[4],prec$0=fmt1[3],pad$2=fmt1[2],iconv$0=fmt1[1]; - return [5,iconv$0,pad$2,prec$0,concat_fmt(rest$4,fmt2)]; - case 6: - var rest$5=fmt1[4],prec$1=fmt1[3],pad$3=fmt1[2],iconv$1=fmt1[1]; - return [6,iconv$1,pad$3,prec$1,concat_fmt(rest$5,fmt2)]; - case 7: - var rest$6=fmt1[4],prec$2=fmt1[3],pad$4=fmt1[2],iconv$2=fmt1[1]; - return [7,iconv$2,pad$4,prec$2,concat_fmt(rest$6,fmt2)]; - case 8: - var rest$7=fmt1[4],prec$3=fmt1[3],pad$5=fmt1[2],fconv=fmt1[1]; - return [8,fconv,pad$5,prec$3,concat_fmt(rest$7,fmt2)]; - case 9: - var rest$8=fmt1[2],pad$6=fmt1[1]; - return [9,pad$6,concat_fmt(rest$8,fmt2)]; - case 10:var rest$9=fmt1[1];return [10,concat_fmt(rest$9,fmt2)]; - case 11: - var rest$10=fmt1[2],str=fmt1[1]; - return [11,str,concat_fmt(rest$10,fmt2)]; - case 12: - var rest$11=fmt1[2],chr=fmt1[1]; - return [12,chr,concat_fmt(rest$11,fmt2)]; - case 13: - var rest$12=fmt1[3],fmtty=fmt1[2],pad$7=fmt1[1]; - return [13,pad$7,fmtty,concat_fmt(rest$12,fmt2)]; - case 14: - var rest$13=fmt1[3],fmtty$0=fmt1[2],pad$8=fmt1[1]; - return [14,pad$8,fmtty$0,concat_fmt(rest$13,fmt2)]; - case 15:var rest$14=fmt1[1];return [15,concat_fmt(rest$14,fmt2)]; - case 16:var rest$15=fmt1[1];return [16,concat_fmt(rest$15,fmt2)]; - case 17: - var rest$16=fmt1[2],fmting_lit=fmt1[1]; - return [17,fmting_lit,concat_fmt(rest$16,fmt2)]; - case 18: - var rest$17=fmt1[2],fmting_gen=fmt1[1]; - return [18,fmting_gen,concat_fmt(rest$17,fmt2)]; - case 19:var rest$18=fmt1[1];return [19,concat_fmt(rest$18,fmt2)]; - case 20: - var rest$19=fmt1[3],char_set=fmt1[2],width_opt=fmt1[1]; - return [20,width_opt,char_set,concat_fmt(rest$19,fmt2)]; - case 21: - var rest$20=fmt1[2],counter=fmt1[1]; - return [21,counter,concat_fmt(rest$20,fmt2)]; - case 22:var rest$21=fmt1[1];return [22,concat_fmt(rest$21,fmt2)]; - case 23: - var rest$22=fmt1[2],ign=fmt1[1]; - return [23,ign,concat_fmt(rest$22,fmt2)]; - default: - var rest$23=fmt1[3],f=fmt1[2],arity=fmt1[1]; - return [24,arity,f,concat_fmt(rest$23,fmt2)]}} - var CamlinternalFormatBasics=[0,concat_fmtty,erase_rel,concat_fmt]; - caml_register_global - (761,CamlinternalFormatBasics,"CamlinternalFormatBasics"); - function make(v){return [0,v]} - function get(r){return r[1]} - function set(r,v){r[1] = v;return 0} - function exchange(r,v){var cur=r[1];r[1] = v;return cur} - function compare_and_set(r,seen,v) - {var cur=r[1];return cur === seen?(r[1] = v,1):0} - function fetch_and_add(r,n){var cur=r[1];r[1] = cur + n | 0;return cur} - function incr(r){fetch_and_add(r,1);return 0} - function decr(r){fetch_and_add(r,-1);return 0} + 801085050]; + function new_state(param){return [0, runtime.caml_make_vect(55, 0), 0];} + function assign(st1, st2){ + caml_call5(Stdlib_Array[10], st2[1], 0, st1[1], 0, 55); + st1[2] = st2[2]; + return 0; + } + function full_init(s, seed){ var - include= - [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; - caml_register_global(762,include,"CamlinternalAtomic"); - function failwith(s){throw [0,Failure,s]} - function invalid_arg(s){throw [0,Invalid_argument,s]} - var Exit=[248,cst_Stdlib_Exit,caml_fresh_oo_id(0)]; - function min(x,y){return caml_lessequal(x,y)?x:y} - function max(x,y){return caml_greaterequal(x,y)?x:y} - function abs(x){return 0 <= x?x:- x | 0} - function lnot(x){return x ^ -1} + seed$0 = 0 === seed.length - 1 ? [0, 0] : seed, + l = seed$0.length - 1, + i$0 = 0; + for(;;){ + caml_check_bound(s[1], i$0)[1 + i$0] = i$0; + var _q_ = i$0 + 1 | 0; + if(54 !== i$0){var i$0 = _q_; continue;} + var + accu = [0, cst_x], + _n_ = 54 + caml_call2(Stdlib_Int[11], 55, l) | 0, + _m_ = 0; + if(_n_ >= 0){ + var i = _m_; + for(;;){ + var + j = i % 55 | 0, + k = caml_mod(i, l), + x = caml_check_bound(seed$0, k)[1 + k], + accu$0 = accu[1], + _g_ = caml_call1(Stdlib_Int[12], x), + _h_ = caml_call2(Stdlib[28], accu$0, _g_); + accu[1] = caml_call1(Stdlib_Digest[3], _h_); + var + d = accu[1], + _i_ = caml_string_get(d, 3) << 24, + _j_ = caml_string_get(d, 2) << 16, + _k_ = caml_string_get(d, 1) << 8, + _l_ = ((caml_string_get(d, 0) + _k_ | 0) + _j_ | 0) + _i_ | 0, + _o_ = (caml_check_bound(s[1], j)[1 + j] ^ _l_) & 1073741823; + caml_check_bound(s[1], j)[1 + j] = _o_; + var _p_ = i + 1 | 0; + if(_n_ !== i){var i = _p_; continue;} + break; + } + } + s[2] = 0; + return 0; + } + } + function make(seed){ + var result = new_state(0); + full_init(result, seed); + return result; + } + function make_self_init(param){return make(caml_sys_random_seed(0));} + function copy(s){ + var result = new_state(0); + assign(result, s); + return result; + } + function bits(s){ + s[2] = (s[2] + 1 | 0) % 55 | 0; var - infinity=caml_int64_float_of_bits(_a_), - neg_infinity=caml_int64_float_of_bits(_b_), - nan=caml_int64_float_of_bits(_c_), - max_float=caml_int64_float_of_bits(_d_), - min_float=caml_int64_float_of_bits(_e_), - epsilon=caml_int64_float_of_bits(_f_), - max_int=2147483647, - min_int=-2147483648; - function cat(s1,s2) - {var - l1=caml_ml_string_length(s1), - l2=caml_ml_string_length(s2), - s=caml_create_bytes(l1 + l2 | 0); - caml_blit_string(s1,0,s,0,l1); - caml_blit_string(s2,0,s,l1,l2); - return caml_string_of_bytes(s)} - function char_of_int(n) - {if(0 <= n && 255 >= n)return n;return invalid_arg(cst_char_of_int)} - function string_of_bool(b){return b?cst_true:cst_false} - function bool_of_string(param) - {return caml_string_notequal(param,cst_false$0) - ?caml_string_notequal(param,cst_true$0) - ?invalid_arg(cst_bool_of_string) - :1 - :0} - function bool_of_string_opt(param) - {return caml_string_notequal(param,cst_false$1) - ?caml_string_notequal(param,cst_true$1)?0:_g_ - :_h_} - function string_of_int(n){return caml_string_of_jsbytes("" + n)} - function int_of_string_opt(s) - {try - {var _Et_=[0,caml_int_of_string(s)];return _Et_} - catch(_Eu_) - {_Eu_ = caml_wrap_exception(_Eu_); - if(_Eu_[1] === Failure)return 0; - throw _Eu_}} - function valid_float_lexem(s) - {var l=caml_ml_string_length(s),i=0; - for(;;) - {if(l <= i)return cat(s,cst); - var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(58 > match)switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)return s; - var i$0=i + 1 | 0,i=i$0}} - function to_string(f) - {return valid_float_lexem(caml_format_float(cst_12g,f))} - function of_string_opt(s) - {try - {var _Er_=[0,caml_float_of_string(s)];return _Er_} - catch(_Es_) - {_Es_ = caml_wrap_exception(_Es_); - if(_Es_[1] === Failure)return 0; - throw _Es_}} - function append(l1,l2) - {if(! l1)return l2;var tl=l1[2],hd=l1[1];return [0,hd,append(tl,l2)]} - var - stdin=caml_ml_open_descriptor_in(0), - stdout=caml_ml_open_descriptor_out(1), - stderr=caml_ml_open_descriptor_out(2); - function open_gen(mode,perm,name) - {var c=caml_ml_open_descriptor_out(caml_sys_open(name,mode,perm)); - caml_ml_set_channel_name(c,name); - return c} - function open_text(name){return open_gen(_i_,438,name)} - function open_bin(name){return open_gen(_j_,438,name)} - function flush_all(param) - {function iter(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],a=param$0[1]; - try - {caml_ml_flush(a)} - catch(_Eq_) - {_Eq_ = caml_wrap_exception(_Eq_); - if(_Eq_[1] !== Sys_error)throw _Eq_} - var param$0=l}} - return iter(runtime.caml_ml_out_channels_list(0))} - function output_bytes(oc,s) - {return caml_ml_output_bytes(oc,s,0,caml_ml_bytes_length(s))} - function output_string(oc,s) - {return caml_ml_output(oc,s,0,caml_ml_string_length(s))} - function output(oc,s,ofs,len) - {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_output_bytes(oc,s,ofs,len); - return invalid_arg(cst_output)} - function output_substring(oc,s,ofs,len) - {if(0 <= ofs && 0 <= len && (caml_ml_string_length(s) - len | 0) >= ofs) - return caml_ml_output(oc,s,ofs,len); - return invalid_arg(cst_output_substring)} - function output_value(chan,v){return caml_output_value(chan,v,0)} - function close(oc){caml_ml_flush(oc);return caml_ml_close_channel(oc)} - function close_noerr(oc) - {try {caml_ml_flush(oc)}catch(_Ep_){} - try - {var _En_=caml_ml_close_channel(oc);return _En_} - catch(_Eo_){return 0}} - function open_gen$0(mode,perm,name) - {var c=caml_ml_open_descriptor_in(caml_sys_open(name,mode,perm)); - caml_ml_set_channel_name(c,name); - return c} - function open_text$0(name){return open_gen$0(_k_,0,name)} - function open_bin$0(name){return open_gen$0(_l_,0,name)} - function input(ic,s,ofs,len) - {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_ml_input(ic,s,ofs,len); - return invalid_arg(cst_input)} - function unsafe_really_input(ic,s,ofs,len) - {var ofs$0=ofs,len$0=len; - for(;;) - {if(0 >= len$0)return 0; - var r=caml_ml_input(ic,s,ofs$0,len$0); - if(0 === r)throw End_of_file; - var len$1=len$0 - r | 0,ofs$1=ofs$0 + r | 0,ofs$0=ofs$1,len$0=len$1}} - function really_input(ic,s,ofs,len) - {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return unsafe_really_input(ic,s,ofs,len); - return invalid_arg(cst_really_input)} - function really_input_string(ic,len) - {var s=caml_create_bytes(len); - really_input(ic,s,0,len); - return caml_string_of_bytes(s)} - function input_line(chan) - {function build_result(buf,pos,param) - {var pos$0=pos,param$0=param; - for(;;) - {if(! param$0)return buf; - var tl=param$0[2],hd=param$0[1],len=caml_ml_bytes_length(hd); - caml_blit_bytes(hd,0,buf,pos$0 - len | 0,len); - var pos$1=pos$0 - len | 0,pos$0=pos$1,param$0=tl}} - var accu=0,len=0; - for(;;) - {var n=runtime.caml_ml_input_scan_line(chan); - if(0 === n) - {if(! accu)throw End_of_file; - var _Em_=build_result(caml_create_bytes(len),len,accu)} - else - {if(0 >= n) - {var beg=caml_create_bytes(- n | 0); - caml_ml_input(chan,beg,0,- n | 0); - var len$1=len - n | 0,accu$0=[0,beg,accu],accu=accu$0,len=len$1; - continue} - var res=caml_create_bytes(n - 1 | 0); - caml_ml_input(chan,res,0,n - 1 | 0); - caml_ml_input_char(chan); - if(accu) - var - len$0=(len + n | 0) - 1 | 0, - _Em_=build_result(caml_create_bytes(len$0),len$0,[0,res,accu]); - else - var _Em_=res} - return caml_string_of_bytes(_Em_)}} - function close_noerr$0(ic) - {try - {var _Ek_=caml_ml_close_channel(ic);return _Ek_} - catch(_El_){return 0}} - function print_char(c){return caml_ml_output_char(stdout,c)} - function print_string(s){return output_string(stdout,s)} - function print_bytes(s){return output_bytes(stdout,s)} - function print_int(i) - {return output_string(stdout,caml_string_of_jsbytes("" + i))} - function print_float(f){return output_string(stdout,to_string(f))} - function print_endline(s) - {output_string(stdout,s); - caml_ml_output_char(stdout,10); - return caml_ml_flush(stdout)} - function print_newline(param) - {caml_ml_output_char(stdout,10);return caml_ml_flush(stdout)} - function prerr_char(c){return caml_ml_output_char(stderr,c)} - function prerr_string(s){return output_string(stderr,s)} - function prerr_bytes(s){return output_bytes(stderr,s)} - function prerr_int(i) - {return output_string(stderr,caml_string_of_jsbytes("" + i))} - function prerr_float(f){return output_string(stderr,to_string(f))} - function prerr_endline(s) - {output_string(stderr,s); - caml_ml_output_char(stderr,10); - return caml_ml_flush(stderr)} - function prerr_newline(param) - {caml_ml_output_char(stderr,10);return caml_ml_flush(stderr)} - function read_line(param){caml_ml_flush(stdout);return input_line(stdin)} - function read_int(param){return caml_int_of_string(read_line(0))} - function read_int_opt(param){return int_of_string_opt(read_line(0))} - function read_float(param){return caml_float_of_string(read_line(0))} - function read_float_opt(param){return of_string_opt(read_line(0))} - function string_of_format(param){var str=param[2];return str} - function symbol(param,_Ei_) - {var - str2=_Ei_[2], - fmt2=_Ei_[1], - str1=param[2], - fmt1=param[1], - _Ej_=cat(str1,cat(cst$0,str2)); - return [0,concat_fmt(fmt1,fmt2),_Ej_]} - var exit_function=[0,flush_all]; - function at_exit(f) - {for(;;) - {var - f_yet_to_run=[0,1], - old_exit=exit_function[1], - new_exit$0= - function(f_yet_to_run,old_exit) - {function new_exit(param) - {if(compare_and_set(f_yet_to_run,1,0))caml_call1(f,0); - return caml_call1(old_exit,0)} - return new_exit}, - new_exit=new_exit$0(f_yet_to_run,old_exit), - success=compare_and_set(exit_function,old_exit,new_exit), - _Eh_=1 - success; - if(_Eh_)continue; - return _Eh_}} - function do_at_exit(param){return caml_call1(exit_function[1],0)} - function exit(retcode) - {do_at_exit(0);return runtime.caml_sys_exit(retcode)} - caml_register_named_value - (caml_string_of_jsbytes("Pervasives.do_at_exit"),do_at_exit); - var - _m_= - [0, - runtime.caml_ml_seek_out_64, - runtime.caml_ml_pos_out_64, - caml_ml_channel_size_64, - runtime.caml_ml_seek_in_64, - runtime.caml_ml_pos_in_64, - caml_ml_channel_size_64], - set_binary_mode=caml_ml_set_binary_mode, - close$0=caml_ml_close_channel, - in_channel_length=caml_ml_channel_size, - pos_in=caml_ml_pos_in, - seek_in=runtime.caml_ml_seek_in, - input_value=caml_input_value, - input_binary_int=runtime.caml_ml_input_int, - input_byte=caml_ml_input_char, - input_char=caml_ml_input_char, - set_binary_mode$0=caml_ml_set_binary_mode, - out_channel_length=caml_ml_channel_size, - pos_out=runtime.caml_ml_pos_out, - seek_out=runtime.caml_ml_seek_out, - output_binary_int=runtime.caml_ml_output_int, - output_byte=caml_ml_output_char, - output_char=caml_ml_output_char, - flush=caml_ml_flush, - Stdlib= - [0, - invalid_arg, - failwith, - Exit, - Match_failure, - Assert_failure, - Invalid_argument, - Failure, - Not_found, - Out_of_memory, - Stack_overflow, - Sys_error, - End_of_file, - Division_by_zero, - Sys_blocked_io, - Undefined_recursive_module, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon, - cat, - char_of_int, - string_of_bool, - bool_of_string_opt, - bool_of_string, - string_of_int, - int_of_string_opt, - to_string, - of_string_opt, - append, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int_opt, - read_int, - read_float_opt, - read_float, - open_text, - open_bin, - open_gen, - flush, - flush_all, - output_char, - output_string, - output_bytes, - output, - output_substring, - output_byte, - output_binary_int, - output_value, - seek_out, - pos_out, - out_channel_length, - close, - close_noerr, - set_binary_mode$0, - open_text$0, - open_bin$0, - open_gen$0, - input_char, - input_line, - input, - really_input, - really_input_string, - input_byte, - input_binary_int, - input_value, - seek_in, - pos_in, - in_channel_length, - close$0, - close_noerr$0, - set_binary_mode, - _m_, - string_of_format, - symbol, - exit, - at_exit, - valid_float_lexem, - unsafe_really_input, - do_at_exit]; - caml_register_global(775,Stdlib,"Stdlib"); - var - Exit$0=[248,cst_Stdlib_Pervasives_Exit,caml_fresh_oo_id(0)], - Stdlib_Pervasives= - [0, - invalid_arg, - failwith, - Exit$0, - min, - max, - abs, - max_int, - min_int, - lnot, - infinity, - neg_infinity, - nan, - max_float, - min_float, - epsilon, - cat, - char_of_int, - string_of_bool, - bool_of_string, - bool_of_string_opt, - string_of_int, - int_of_string_opt, - to_string, - of_string_opt, - append, - stdin, - stdout, - stderr, - print_char, - print_string, - print_bytes, - print_int, - print_float, - print_endline, - print_newline, - prerr_char, - prerr_string, - prerr_bytes, - prerr_int, - prerr_float, - prerr_endline, - prerr_newline, - read_line, - read_int, - read_int_opt, - read_float, - read_float_opt, - open_text, - open_bin, - open_gen, - flush, - flush_all, - output_char, - output_string, - output_bytes, - output, - output_substring, - output_byte, - output_binary_int, - output_value, - seek_out, - pos_out, - out_channel_length, - close, - close_noerr, - set_binary_mode$0, - open_text$0, - open_bin$0, - open_gen$0, - input_char, - input_line, - input, - really_input, - really_input_string, - input_byte, - input_binary_int, - input_value, - seek_in, - pos_in, - in_channel_length, - close$0, - close_noerr$0, - set_binary_mode, - string_of_format, - symbol, - exit, - at_exit, - valid_float_lexem, - do_at_exit]; - caml_register_global(776,Stdlib_Pervasives,"Stdlib__Pervasives"); - function left(v){return [0,v]} - function right(v){return [1,v]} - function is_left(param){return 0 === param[0]?1:0} - function is_right(param){return 0 === param[0]?0:1} - function find_left(param) - {if(0 !== param[0])return 0;var v=param[1];return [0,v]} - function find_right(param) - {if(0 === param[0])return 0;var v=param[1];return [0,v]} - function map_left(f,e) - {if(0 !== e[0])return e;var v=e[1];return [0,caml_call1(f,v)]} - function map_right(f,e) - {if(0 === e[0])return e;var v=e[1];return [1,caml_call1(f,v)]} - function map(left,right,param) - {if(0 === param[0]){var v=param[1];return [0,caml_call1(left,v)]} - var v$0=param[1]; - return [1,caml_call1(right,v$0)]} - function fold(left,right,param) - {if(0 === param[0]){var v=param[1];return caml_call1(left,v)} - var v$0=param[1]; - return caml_call1(right,v$0)} - function equal(left,right,e1,e2) - {if(0 === e1[0]) - {var _Ef_=e1[1]; - if(0 === e2[0]){var v2=e2[1];return caml_call2(left,_Ef_,v2)}} - else - {var _Eg_=e1[1]; - if(0 !== e2[0]){var v2$0=e2[1];return caml_call2(right,_Eg_,v2$0)}} - return 0} - function compare(left,right,e1,e2) - {if(0 === e1[0]) - {var _Ed_=e1[1]; - if(0 !== e2[0])return -1; - var v2=e2[1]; - return caml_call2(left,_Ed_,v2)} - var _Ee_=e1[1]; - if(0 === e2[0])return 1; - var v2$0=e2[1]; - return caml_call2(right,_Ee_,v2$0)} - var - Stdlib_Either= - [0, - left, - right, - is_left, - is_right, - find_left, - find_right, - map_left, - map_right, - map, - fold, - fold, - fold, - equal, - compare]; - caml_register_global(777,Stdlib_Either,"Stdlib__Either"); - var - executable_name=runtime.caml_sys_executable_name(0), - match=runtime.caml_sys_get_config(0), - os_type=match[1], - match$0=[0,caml_string_of_jsbytes("js_of_ocaml")], - unix=runtime.caml_sys_const_ostype_unix(0), - win32=runtime.caml_sys_const_ostype_win32(0), - cygwin=runtime.caml_sys_const_ostype_cygwin(0), - max_array_length=runtime.caml_sys_const_max_wosize(0), - max_floatarray_length=max_array_length / 2 | 0, - max_string_length=(4 * max_array_length | 0) - 1 | 0, - big_endian=0, - match$1=32, - int_size=32; - function getenv_opt(s) - {try - {var _Eb_=[0,caml_sys_getenv(s)];return _Eb_} - catch(_Ec_) - {_Ec_ = caml_wrap_exception(_Ec_); - if(_Ec_ === Not_found)return 0; - throw _Ec_}} - var interactive=[0,0]; - function set_signal(sig_num,sig_beh){return 0} - var - Break=[248,cst_Stdlib_Sys_Break,caml_fresh_oo_id(0)], - sigabrt=-1, - sigalrm=-2, - sigfpe=-3, - sighup=-4, - sigill=-5, - sigint=-6, - sigkill=-7, - sigpipe=-8, - sigquit=-9, - sigsegv=-10, - sigterm=-11, - sigusr1=-12, - sigusr2=-13, - sigchld=-14, - sigcont=-15, - sigstop=-16, - sigtstp=-17, - sigttin=-18, - sigttou=-19, - sigvtalrm=-20, - sigprof=-21, - sigbus=-22, - sigpoll=-23, - sigsys=-24, - sigtrap=-25, - sigurg=-26, - sigxcpu=-27, - sigxfsz=-28; - function catch_break(on){return on?0:0} - var development_version=0; - function Make(_Ea_,_D$_){return [0,1]} - var - Immediate64=[0,Make], - Stdlib_Sys= - [0, - executable_name, - getenv_opt, - interactive, - os_type, - match$0, - unix, - win32, - cygwin, - match$1, - int_size, - big_endian, - max_string_length, - max_array_length, - max_floatarray_length, - set_signal, - sigabrt, - sigalrm, - sigfpe, - sighup, - sigill, - sigint, - sigkill, - sigpipe, - sigquit, - sigsegv, - sigterm, - sigusr1, - sigusr2, - sigchld, - sigcont, - sigstop, - sigtstp, - sigttin, - sigttou, - sigvtalrm, - sigprof, - sigbus, - sigpoll, - sigsys, - sigtrap, - sigurg, - sigxcpu, - sigxfsz, - Break, - catch_break, - ocaml_version, - development_version, - ocaml_release, - runtime.caml_ml_enable_runtime_warnings, - runtime.caml_ml_runtime_warnings_enabled, - Immediate64]; - caml_register_global(778,Stdlib_Sys,"Stdlib__Sys"); - function is_block(a){return 1 - (typeof a === "number"?1:0)} - function double_field(x,i){return caml_array_get(x,i)} - function set_double_field(x,i,v){return caml_array_set(x,i,v)} - var - first_non_constant_constructor=0, - last_non_constant_constructor_=245, - lazy_tag=246, - closure_tag=247, - object_tag=248, - infix_tag=249, - forward_tag=250, - no_scan_tag=251, - abstract_tag=251, - string_tag=252, - double_tag=253, - double_array_tag=254, - custom_tag=255, - int_tag=1000, - out_of_heap_tag=1001, - unaligned_tag=1002; - function info(obj) - {if(caml_obj_tag(obj) !== 247)throw [0,Assert_failure,_n_]; + _d_ = s[2], + curval = caml_check_bound(s[1], _d_)[1 + _d_], + _e_ = (s[2] + 24 | 0) % 55 | 0, + newval = + caml_check_bound(s[1], _e_)[1 + _e_] + + (curval ^ (curval >>> 25 | 0) & 31) + | 0, + newval30 = newval & 1073741823, + _f_ = s[2]; + caml_check_bound(s[1], _f_)[1 + _f_] = newval30; + return newval30; + } + function intaux(s, n){ + for(;;){ + var r = bits(s), v = caml_mod(r, n); + if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0)) continue; + return v; + } + } + function int$0(s, bound){ + if(1073741823 >= bound && 0 < bound) return intaux(s, bound); + return caml_call1(Stdlib[1], cst_Random_int); + } + function full_int(s, bound){ + if(0 >= bound) return caml_call1(Stdlib[1], cst_Random_full_int); + if(1073741823 >= bound) return intaux(s, bound); + for(;;){ + var b1 = bits(s), b2 = bits(s), max_int_32 = 2147483647; + if(bound <= 2147483647) var - info=runtime.caml_obj_raw_field(obj,1), - arity=info >> 24, - start_env=info << 8 >>> 9 | 0; - return [0,arity,start_env]} - function of_val(x) - {var switch$0=0; - if(is_block(x) && caml_obj_tag(x) !== 248 && 1 <= x.length - 1) - {var slot=x[1];switch$0 = 1} - if(! switch$0)var slot=x; - var switch$1=0; - if(is_block(slot) && caml_obj_tag(slot) === 248) - {var name=slot[1];switch$1 = 1} - if(! switch$1)var name=invalid_arg(cst_Obj_extension_constructor$0); - return caml_obj_tag(name) === 252 - ?slot - :invalid_arg(cst_Obj_extension_constructor)} - function name(slot){return slot[1]} - function id(slot){return slot[2]} - var - Extension_constructor=[0,of_val,name,id], - extension_constructor=Extension_constructor[1], - extension_name=Extension_constructor[2], - extension_id=Extension_constructor[3], - max_ephe_length=max_array_length - 2 | 0; - function create(l) - {var _D9_=0 <= l?1:0,_D__=_D9_?l <= max_ephe_length?1:0:_D9_; - if(1 - _D__)invalid_arg(cst_Obj_Ephemeron_create); - return runtime.caml_ephe_create(l)} - function length(x){return x.length - 1 - 2 | 0} - function raise_if_invalid_offset(e,o,msg) - {var _D6_=0 <= o?1:0,_D7_=_D6_?o < length(e)?1:0:_D6_,_D8_=1 - _D7_; - return _D8_?invalid_arg(msg):_D8_} - function get_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key); - return caml_ephe_get_key(e,o)} - function get_key_copy(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_get_key_copy); - return caml_ephe_get_key_copy(e,o)} - function set_key(e,o,x) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_set_key); - return caml_ephe_set_key(e,o,x)} - function unset_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_unset_key); - return caml_ephe_unset_key(e,o)} - function check_key(e,o) - {raise_if_invalid_offset(e,o,cst_Obj_Ephemeron_check_key); - return caml_ephe_check_key(e,o)} - function blit_key(e1,o1,e2,o2,l) - {if - (0 - <= - l - && - 0 - <= - o1 - && - (length(e1) - l | 0) - >= - o1 - && - 0 - <= - o2 - && - (length(e2) - l | 0) - >= - o2) - {var _D4_=0 !== l?1:0,_D5_=_D4_?caml_ephe_blit_key(e1,o1,e2,o2,l):_D4_; - return _D5_} - return invalid_arg(cst_Obj_Ephemeron_blit_key)} - var - _o_= - [0, - create, - length, - get_key, - get_key_copy, - set_key, - unset_key, - check_key, - blit_key, - runtime.caml_ephe_get_data, - runtime.caml_ephe_get_data_copy, - runtime.caml_ephe_set_data, - runtime.caml_ephe_unset_data, - runtime.caml_ephe_check_data, - runtime.caml_ephe_blit_data, - max_ephe_length], - Stdlib_Obj= - [0, - is_block, - double_field, - set_double_field, - first_non_constant_constructor, - last_non_constant_constructor_, - lazy_tag, - closure_tag, - object_tag, - infix_tag, - forward_tag, - no_scan_tag, - abstract_tag, - string_tag, - double_tag, - double_array_tag, - custom_tag, - custom_tag, - int_tag, - out_of_heap_tag, - unaligned_tag, - [0,info], - Extension_constructor, - extension_constructor, - extension_name, - extension_id, - _o_]; - caml_register_global(779,Stdlib_Obj,"Stdlib__Obj"); - var Undefined=[248,cst_CamlinternalLazy_Undefined,caml_fresh_oo_id(0)]; - function raise_undefined(param){throw Undefined} - function force_lazy_block(blk) - {var closure=blk[1]; - blk[1] = raise_undefined; - try - {var result=caml_call1(closure,0); - caml_obj_make_forward(blk,result); - return result} - catch(e) - {e = caml_wrap_exception(e);blk[1] = function(param){throw e};throw e}} - function force_val_lazy_block(blk) - {var closure=blk[1]; - blk[1] = raise_undefined; - var result=caml_call1(closure,0); - caml_obj_make_forward(blk,result); - return result} - function force(lzv) - {var t=caml_obj_tag(lzv); - return t === 250?lzv[1]:t !== 246?lzv:force_lazy_block(lzv)} - function force_val(lzv) - {var t=caml_obj_tag(lzv); - return t === 250?lzv[1]:t !== 246?lzv:force_val_lazy_block(lzv)} - var - CamlinternalLazy= - [0,Undefined,force_lazy_block,force_val_lazy_block,force,force_val]; - caml_register_global(780,CamlinternalLazy,"CamlinternalLazy"); - function to_lazy(f){var x=caml_obj_block(246,1);x[1] = f;return x} - function from_val(v) - {var t=caml_obj_tag(v); - if(t !== 250 && t !== 246 && t !== 253)return v; - return runtime.caml_lazy_make_forward(v)} - function is_val(l){return caml_obj_tag(l) !== 246?1:0} - function map$0(f,x) - {return [246, - function(_D1_) - {var - _D2_=caml_obj_tag(x), - _D3_=250 === _D2_?x[1]:246 === _D2_?force_lazy_block(x):x; - return caml_call1(f,_D3_)}]} - function map_val(f,x) - {if(! is_val(x)) - return [246, - function(_DY_) - {var - _DZ_=caml_obj_tag(x), - _D0_=250 === _DZ_?x[1]:246 === _DZ_?force_lazy_block(x):x; - return caml_call1(f,_D0_)}]; + bpos = (b2 & 1073725440) << 1 | b1 >>> 15 | 0, + max_int = max_int_32, + r = bpos; + else var - _DW_=caml_obj_tag(x), - _DX_=250 === _DW_?x[1]:246 === _DW_?force_lazy_block(x):x; - return from_val(caml_call1(f,_DX_))} + b3 = bits(s), + r$0 = ((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, + max_int$0 = Stdlib[19], + max_int = max_int$0, + r = r$0; + var v = caml_mod(r, bound); + if(((max_int - bound | 0) + 1 | 0) < (r - v | 0)) continue; + return v; + } + } + function int32(s, bound){ + if(caml_lessequal(bound, 0)) + return caml_call1(Stdlib[1], cst_Random_int32); + for(;;){ + var + b1 = bits(s), + b2 = (bits(s) & 1) << 30, + r = b1 | b2, + v = caml_mod(r, bound); + if(caml_greaterthan(r - v | 0, (Stdlib_Int32[9] - bound | 0) + 1 | 0)) + continue; + return v; + } + } + function int64(s, bound){ + if(caml_lessequal(bound, _b_)) + return caml_call1(Stdlib[1], cst_Random_int64); + for(;;){ + var + b1 = caml_int64_of_int32(bits(s)), + b2 = caml_int64_shift_left(caml_int64_of_int32(bits(s)), 30), + b3 = caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7), 60), + r = caml_int64_or(b1, caml_int64_or(b2, b3)), + v = runtime.caml_int64_mod(r, bound); + if + (caml_greaterthan + (caml_int64_sub(r, v), + runtime.caml_int64_add(caml_int64_sub(Stdlib_Int64[9], bound), _a_))) + continue; + return v; + } + } + var + nativeint = + 32 === Stdlib_Nativeint[9] + ? function(s, bound){return int32(s, bound);} + : function + (s, bound){ + return caml_int64_to_int32(int64(s, caml_int64_of_int32(bound))); + }; + function float$0(s, bound){ + var r1 = bits(s), r2 = bits(s); + return (r1 / 1073741824. + r2) / 1073741824. * bound; + } + function bool(s){return 0 === (bits(s) & 1) ? 1 : 0;} + function bits32(s){ + var b1 = bits(s) >>> 14 | 0, b2 = bits(s) >>> 14 | 0; + return b1 | b2 << 16; + } + function bits64(s){ var - Stdlib_Lazy= + b1 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), + b2 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 9), + b3 = caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)), 8); + return caml_int64_or + (b1, + caml_int64_or + (caml_int64_shift_left(b2, 21), caml_int64_shift_left(b3, 42))); + } + var + nativebits = + 32 === Stdlib_Nativeint[9] + ? function(s){return bits32(s);} + : function(s){return caml_int64_to_int32(bits64(s));}, + default$0 = [0, _c_.slice(), 0]; + function bits$0(param){return bits(default$0);} + function int$1(bound){return int$0(default$0, bound);} + function full_int$0(bound){return full_int(default$0, bound);} + function int32$0(bound){return int32(default$0, bound);} + function nativeint$0(bound){return nativeint(default$0, bound);} + function int64$0(bound){return int64(default$0, bound);} + function float$1(scale){return float$0(default$0, scale);} + function bool$0(param){return bool(default$0);} + function bits32$0(param){return bits32(default$0);} + function bits64$0(param){return bits64(default$0);} + function nativebits$0(param){return nativebits(default$0);} + function full_init$0(seed){return full_init(default$0, seed);} + function init(seed){return full_init(default$0, [0, seed]);} + function self_init(param){return full_init$0(caml_sys_random_seed(0));} + function get_state(param){return copy(default$0);} + function set_state(s){return assign(default$0, s);} + var + Stdlib_Random = [0, - Undefined, - map$0, - is_val, - from_val, - map_val, - to_lazy, - force_val, - to_lazy, - from_val, - is_val]; - caml_register_global(781,Stdlib_Lazy,"Stdlib__Lazy"); - function empty(param){return 0} - function return$0(x,param){return [0,x,empty]} - function cons(x,next,param){return [0,x,next]} - function append$0(seq1,seq2,param) - {var match=caml_call1(seq1,0); - if(! match)return caml_call1(seq2,0); - var next=match[2],x=match[1]; - return [0,x,function(_DV_){return append$0(next,seq2,_DV_)}]} - function map$1(f,seq,param) - {var match=caml_call1(seq,0); - if(! match)return 0; - var next=match[2],x=match[1]; - function _DT_(_DU_){return map$1(f,next,_DU_)} - return [0,caml_call1(f,x),_DT_]} - function filter_map(f,seq,param) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(! match)return 0; - var next=match[2],x=match[1],match$0=caml_call1(f,x); - if(match$0) - {var y=match$0[1]; - return [0,y,function(_DS_){return filter_map(f,next,_DS_)}]} - var seq$0=next}} - function filter(f,seq,param) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(! match)return 0; - var next=match[2],x=match[1]; - if(caml_call1(f,x)) - return [0,x,function(_DR_){return filter(f,next,_DR_)}]; - var seq$0=next}} - function concat(seq,param) - {var match=caml_call1(seq,0); - if(! match)return 0; - var next=match[2],x=match[1],_DP_=0; - return append$0(x,function(_DQ_){return concat(next,_DQ_)},_DP_)} - function flat_map(f,seq,param) - {var match=caml_call1(seq,0); - if(! match)return 0; - var next=match[2],x=match[1],_DM_=0; - function _DN_(_DO_){return flat_map(f,next,_DO_)} - return append$0(caml_call1(f,x),_DN_,_DM_)} - function fold_left(f,acc,seq) - {var acc$0=acc,seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(! match)return acc$0; - var - next=match[2], - x=match[1], - acc$1=caml_call2(f,acc$0,x), - acc$0=acc$1, - seq$0=next}} - function iter(f,seq) - {var seq$0=seq; - for(;;) - {var match=caml_call1(seq$0,0); - if(! match)return 0; - var next=match[2],x=match[1]; - caml_call1(f,x); - var seq$0=next}} - function unfold(f,u,param) - {var match=caml_call1(f,u); - if(! match)return 0; - var match$0=match[1],u$0=match$0[2],x=match$0[1]; - return [0,x,function(_DL_){return unfold(f,u$0,_DL_)}]} - function is_empty(xs){var match=caml_call1(xs,0);return match?0:1} - function uncons(xs) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - return [0,[0,x,xs$0]]} - function length$0(xs$1) - {var accu=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(! match)return accu; - var xs$0=match[2],accu$0=accu + 1 | 0,accu=accu$0,xs=xs$0}} - function iteri(f,xs$1) - {var i=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - caml_call2(f,i,x); - var i$0=i + 1 | 0,i=i$0,xs=xs$0}} - function fold_lefti(f,accu$1,xs$1) - {var accu=accu$1,i=0,xs=xs$1; - for(;;) - {var match=caml_call1(xs,0); - if(! match)return accu; - var - xs$0=match[2], - x=match[1], - accu$0=caml_call3(f,accu,i,x), - i$0=i + 1 | 0, - accu=accu$0, - i=i$0, - xs=xs$0}} - function for_all(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 1; - var xs$1=match[2],x=match[1],_DK_=caml_call1(p,x); - if(! _DK_)return _DK_; - var xs$0=xs$1}} - function exists(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],_DJ_=caml_call1(p,x); - if(_DJ_)return _DJ_; - var xs$0=xs$1}} - function find(p,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1]; - if(caml_call1(p,x))return [0,x]; - var xs$0=xs$1}} - function find_map(f,xs) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],result=caml_call1(f,x); - if(result)return result; - var xs$0=xs$1}} - function iter2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(! match$0)return 0; - var ys$1=match$0[2],y=match$0[1]; - caml_call2(f,x,y); - var xs$0=xs$1,ys$0=ys$1}} - function fold_left2(f,accu,xs,ys) - {var accu$0=accu,xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return accu$0; - var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(! match$0)return accu$0; - var - ys$1=match$0[2], - y=match$0[1], - accu$1=caml_call3(f,accu$0,x,y), - accu$0=accu$1, - xs$0=xs$1, - ys$0=ys$1}} - function for_all2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 1; - var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(! match$0)return 1; - var ys$1=match$0[2],y=match$0[1],_DI_=caml_call2(f,x,y); - if(! _DI_)return _DI_; - var xs$0=xs$1,ys$0=ys$1}} - function exists2(f,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],match$0=caml_call1(ys$0,0); - if(! match$0)return 0; - var ys$1=match$0[2],y=match$0[1],_DH_=caml_call2(f,x,y); - if(_DH_)return _DH_; - var xs$0=xs$1,ys$0=ys$1}} - function equal$0(eq,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); - if(match) - {if(match$0) - {var - ys$1=match$0[2], - y=match$0[1], - xs$1=match[2], - x=match[1], - _DG_=caml_call2(eq,x,y); - if(! _DG_)return _DG_; - var xs$0=xs$1,ys$0=ys$1; - continue}} - else - if(! match$0)return 1; - return 0}} - function compare$0(cmp,xs,ys) - {var xs$0=xs,ys$0=ys; - for(;;) - {var match=caml_call1(xs$0,0),match$0=caml_call1(ys$0,0); - if(! match)return match$0?-1:0; - var _DE_=match[2],_DF_=match[1]; - if(! match$0)return 1; - var ys$1=match$0[2],y=match$0[1],c=caml_call2(cmp,_DF_,y); - if(0 !== c)return c; - var xs$0=_DE_,ys$0=ys$1}} - function init_aux(f,i,j,param) - {if(i >= j)return 0; - var _DB_=i + 1 | 0; - function _DC_(_DD_){return init_aux(f,_DB_,j,_DD_)} - return [0,caml_call1(f,i),_DC_]} - function init(n,f) - {if(0 > n)return invalid_arg(cst_Seq_init); - var _Dz_=0; - return function(_DA_){return init_aux(f,_Dz_,n,_DA_)}} - function repeat(x,param) - {return [0,x,function(_Dy_){return repeat(x,_Dy_)}]} - function forever(f,param) - {function _Dw_(_Dx_){return forever(f,_Dx_)} - return [0,caml_call1(f,0),_Dw_]} - function cycle_nonempty(xs,param) - {var _Du_=0; - return append$0(xs,function(_Dv_){return cycle_nonempty(xs,_Dv_)},_Du_)} - function cycle(xs,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - function _Dr_(_Dt_){return cycle_nonempty(xs,_Dt_)} - return [0,x,function(_Ds_){return append$0(xs$0,_Dr_,_Ds_)}]} - function iterate1(f,x,param) - {var y=caml_call1(f,x); - return [0,y,function(_Dq_){return iterate1(f,y,_Dq_)}]} - function iterate(f,x) - {function _Dn_(_Dp_){return iterate1(f,x,_Dp_)} - return function(_Do_){return [0,x,_Dn_]}} - function mapi_aux(f,i,xs,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1],_Dk_=i + 1 | 0; - function _Dl_(_Dm_){return mapi_aux(f,_Dk_,xs$0,_Dm_)} - return [0,caml_call2(f,i,x),_Dl_]} - function mapi(f,xs) - {var _Di_=0;return function(_Dj_){return mapi_aux(f,_Di_,xs,_Dj_)}} - function tail_scan(f,s,xs,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1],s$0=caml_call2(f,s,x); - return [0,s$0,function(_Dh_){return tail_scan(f,s$0,xs$0,_Dh_)}]} - function scan(f,s,xs) - {function _De_(_Dg_){return tail_scan(f,s,xs,_Dg_)} - return function(_Df_){return [0,s,_De_]}} - function take_aux(n,xs) - {return 0 === n - ?empty - :function(param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - return [0,x,take_aux(n - 1 | 0,xs$0)]}} - function take(n,xs) - {if(n < 0)invalid_arg(cst_Seq_take);return take_aux(n,xs)} - function drop(n,xs) - {return 0 <= n - ?0 === n - ?xs - :function(param) - {var n$0=n,xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],n$1=n$0 - 1 | 0; - if(0 === n$1)return caml_call1(xs$1,0); - var n$0=n$1,xs$0=xs$1}} - :invalid_arg(cst_Seq_drop)} - function take_while(p,xs,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - return caml_call1(p,x) - ?[0,x,function(_Dd_){return take_while(p,xs$0,_Dd_)}] - :0} - function drop_while(p,xs,param) - {var xs$0=xs; - for(;;) - {var node=caml_call1(xs$0,0); - if(! node)return 0; - var xs$1=node[2],x=node[1]; - if(! caml_call1(p,x))return node; - var xs$0=xs$1}} - function group(eq,xs,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1],_C6_=caml_call1(eq,x); - function _C7_(_Dc_){return drop_while(_C6_,xs$0,_Dc_)} - function _C8_(_Db_){return group(eq,_C7_,_Db_)} - var _C9_=caml_call1(eq,x); - function _C__(_Da_){return take_while(_C9_,xs$0,_Da_)} - return [0,function(_C$_){return [0,x,_C__]},_C8_]} - var Forced_twice=[248,cst_Stdlib_Seq_Forced_twice,caml_fresh_oo_id(0)]; - function failure(param){throw Forced_twice} - function memoize(xs) - {function s$0(param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - return [0,x,memoize(xs$0)]} - var s=to_lazy(s$0); - return function(_C5_) - {var _C4_=caml_obj_tag(s); - return 250 === _C4_?s[1]:246 === _C4_?force_lazy_block(s):s}} - function once(xs) - {function f(param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1]; - return [0,x,once(xs$0)]} - var action=[0,f]; - return function(param) - {var f=exchange(action,failure);return caml_call1(f,0)}} - function zip(xs,ys,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); - if(! match$0)return 0; - var ys$0=match$0[2],y=match$0[1]; - return [0,[0,x,y],function(_C3_){return zip(xs$0,ys$0,_C3_)}]} - function map2(f,xs,ys,param) - {var match=caml_call1(xs,0); - if(! match)return 0; - var xs$0=match[2],x=match[1],match$0=caml_call1(ys,0); - if(! match$0)return 0; - var ys$0=match$0[2],y=match$0[1]; - function _C1_(_C2_){return map2(f,xs$0,ys$0,_C2_)} - return [0,caml_call2(f,x,y),_C1_]} - function interleave(xs,ys,param) - {var match=caml_call1(xs,0); - if(! match)return caml_call1(ys,0); - var xs$0=match[2],x=match[1]; - return [0,x,function(_C0_){return interleave(ys,xs$0,_C0_)}]} - function sorted_merge1(cmp,x,xs,y,ys) - {return 0 < caml_call2(cmp,x,y) - ?[0, - y, - function(_CY_) - {var match=caml_call1(ys,0); - if(! match)return [0,x,xs]; - var ys$0=match[2],y=match[1]; - return sorted_merge1(cmp,x,xs,y,ys$0)}] - :[0, - x, - function(_CZ_) - {var match=caml_call1(xs,0); - if(! match)return [0,y,ys]; - var xs$0=match[2],x=match[1]; - return sorted_merge1(cmp,x,xs$0,y,ys)}]} - function sorted_merge(cmp,xs,ys,param) - {var match=caml_call1(xs,0),match$0=caml_call1(ys,0); - if(match) - {if(match$0) - {var ys$0=match$0[2],y=match$0[1],xs$0=match[2],x=match[1]; - return sorted_merge1(cmp,x,xs$0,y,ys$0)} - var c=match} - else - {if(! match$0)return 0;var c=match$0} - return c} - function map_fst(xys,param) - {var match=caml_call1(xys,0); - if(! match)return 0; - var xys$0=match[2],match$0=match[1],x=match$0[1]; - return [0,x,function(_CX_){return map_fst(xys$0,_CX_)}]} - function map_snd(xys,param) - {var match=caml_call1(xys,0); - if(! match)return 0; - var xys$0=match[2],match$0=match[1],y=match$0[2]; - return [0,y,function(_CW_){return map_snd(xys$0,_CW_)}]} - function unzip(xys) - {function _CT_(_CV_){return map_snd(xys,_CV_)} - return [0,function(_CU_){return map_fst(xys,_CU_)},_CT_]} - function filter_map_find_left_map(f,xs,param) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); - if(0 === match$0[0]) - {var y=match$0[1]; - return [0, - y, - function(_CS_){return filter_map_find_left_map(f,xs$1,_CS_)}]} - var xs$0=xs$1}} - function filter_map_find_right_map(f,xs,param) - {var xs$0=xs; - for(;;) - {var match=caml_call1(xs$0,0); - if(! match)return 0; - var xs$1=match[2],x=match[1],match$0=caml_call1(f,x); - if(0 === match$0[0]){var xs$0=xs$1;continue} - var z=match$0[1]; - return [0, - z, - function(_CR_){return filter_map_find_right_map(f,xs$1,_CR_)}]}} - function partition_map(f,xs) - {function _CO_(_CQ_){return filter_map_find_right_map(f,xs,_CQ_)} - return [0, - function(_CP_){return filter_map_find_left_map(f,xs,_CP_)}, - _CO_]} - function partition(p,xs) - {function _CK_(x){return 1 - caml_call1(p,x)} - function _CL_(_CN_){return filter(_CK_,xs,_CN_)} - return [0,function(_CM_){return filter(p,xs,_CM_)},_CL_]} - function peel(xss) - {return unzip(function(_CJ_){return filter_map(uncons,xss,_CJ_)})} - function transpose(xss,param) - {var match=peel(xss),tails=match[2],heads=match[1]; - if(! is_empty(heads)) - return [0,heads,function(_CI_){return transpose(tails,_CI_)}]; - if(is_empty(tails))return 0; - throw [0,Assert_failure,_p_]} - function _q_(remainders,xss,param) - {var match=caml_call1(xss,0); - if(! match)return transpose(remainders,0); - var xss$0=match[2],xs=match[1],match$0=caml_call1(xs,0); - if(match$0) - {var - xs$0=match$0[2], - x=match$0[1], - match$1=peel(remainders), - tails=match$1[2], - heads=match$1[1], - _CC_=function(_CH_){return [0,xs$0,tails]}, - _CD_=function(_CG_){return _q_(_CC_,xss$0,_CG_)}; - return [0,function(_CF_){return [0,x,heads]},_CD_]} - var match$2=peel(remainders),tails$0=match$2[2],heads$0=match$2[1]; - return [0,heads$0,function(_CE_){return _q_(tails$0,xss$0,_CE_)}]} - function map_product(f,xs,ys) - {function _Cw_(x) - {function _CA_(y){return caml_call2(f,x,y)} - return function(_CB_){return map$1(_CA_,ys,_CB_)}} - function xss(_Cz_){return map$1(_Cw_,xs,_Cz_)} - function _Cv_(_Cy_){return _q_(empty,xss,_Cy_)} - return function(_Cx_){return concat(_Cv_,_Cx_)}} - function product(xs,ys) - {return map_product(function(x,y){return [0,x,y]},xs,ys)} - function of_dispenser(it) - {function c(param) - {var match=caml_call1(it,0); - if(! match)return 0; - var x=match[1]; - return [0,x,c]} - return c} - function to_dispenser(xs) - {var s=[0,xs]; - return function(param) - {var match=caml_call1(s[1],0); - if(! match)return 0; - var xs=match[2],x=match[1]; - s[1] = xs; - return [0,x]}} - function ints(i,param) - {var _Ct_=i + 1 | 0;return [0,i,function(_Cu_){return ints(_Ct_,_Cu_)}]} - var - Stdlib_Seq= - [0, - is_empty, - uncons, - length$0, - iter, - fold_left, - iteri, - fold_lefti, - for_all, - exists, - find, - find_map, - iter2, - fold_left2, - for_all2, - exists2, - equal$0, - compare$0, - empty, - return$0, - cons, init, - unfold, - repeat, - forever, - cycle, - iterate, - map$1, - mapi, - filter, - filter_map, - scan, - take, - drop, - take_while, - drop_while, - group, - memoize, - Forced_twice, - once, - transpose, - append$0, - concat, - flat_map, - flat_map, - zip, - map2, - interleave, - sorted_merge, - product, - map_product, - unzip, - unzip, - partition_map, - partition, - of_dispenser, - to_dispenser, - ints]; - caml_register_global(782,Stdlib_Seq,"Stdlib__Seq"); - var none=0; - function some(v){return [0,v]} - function value(o,default$0){if(! o)return default$0;var v=o[1];return v} - function get$0(param) - {if(! param)return invalid_arg(cst_option_is_None); - var v=param[1]; - return v} - function bind(o,f){if(! o)return 0;var v=o[1];return caml_call1(f,v)} - function join(param){if(! param)return 0;var o=param[1];return o} - function map$2(f,o){if(! o)return 0;var v=o[1];return [0,caml_call1(f,v)]} - function fold$0(none,some,param) - {if(! param)return none;var v=param[1];return caml_call1(some,v)} - function iter$0(f,param) - {if(! param)return 0;var v=param[1];return caml_call1(f,v)} - function is_none(param){return param?0:1} - function is_some(param){return param?1:0} - function equal$1(eq,o0,o1) - {if(o0) - {if(o1){var v1=o1[1],v0=o0[1];return caml_call2(eq,v0,v1)}} - else - if(! o1)return 1; - return 0} - function compare$1(cmp,o0,o1) - {if(! o0)return o1?-1:0; - var _Cs_=o0[1]; - if(! o1)return 1; - var v1=o1[1]; - return caml_call2(cmp,_Cs_,v1)} - function to_result(none,param) - {if(! param)return [1,none];var v=param[1];return [0,v]} - function to_list(param){if(! param)return 0;var v=param[1];return [0,v,0]} - function to_seq(param) - {if(! param)return empty; - var v=param[1]; - return function(_Cr_){return return$0(v,_Cr_)}} - var - Stdlib_Option= - [0, - none, - some, - value, - get$0, - bind, - join, - map$2, - fold$0, - iter$0, - is_none, - is_some, - equal$1, - compare$1, - to_result, - to_list, - to_seq]; - caml_register_global(783,Stdlib_Option,"Stdlib__Option"); - function ok(v){return [0,v]} - function error(e){return [1,e]} - function value$0(r,default$0) - {if(0 !== r[0])return default$0;var v=r[1];return v} - function get_ok(param) - {if(0 !== param[0])return invalid_arg(cst_result_is_Error); - var v=param[1]; - return v} - function get_error(param) - {if(0 === param[0])return invalid_arg(cst_result_is_Ok); - var e=param[1]; - return e} - function bind$0(r,f) - {if(0 !== r[0])return r;var v=r[1];return caml_call1(f,v)} - function join$0(e){if(0 !== e[0])return e;var r=e[1];return r} - function map$3(f,e) - {if(0 !== e[0])return e;var v=e[1];return [0,caml_call1(f,v)]} - function map_error(f,v) - {if(0 === v[0])return v;var e=v[1];return [1,caml_call1(f,e)]} - function fold$1(ok,error,param) - {if(0 === param[0]){var v=param[1];return caml_call1(ok,v)} - var e=param[1]; - return caml_call1(error,e)} - function iter$1(f,param) - {if(0 !== param[0])return 0;var v=param[1];return caml_call1(f,v)} - function iter_error(f,param) - {if(0 === param[0])return 0;var e=param[1];return caml_call1(f,e)} - function is_ok(param){return 0 === param[0]?1:0} - function is_error(param){return 0 === param[0]?0:1} - function equal$2(ok,error,r0,r1) - {if(0 === r0[0]) - {var _Cp_=r0[1]; - if(0 === r1[0]){var v1=r1[1];return caml_call2(ok,_Cp_,v1)}} - else - {var _Cq_=r0[1]; - if(0 !== r1[0]){var e1=r1[1];return caml_call2(error,_Cq_,e1)}} - return 0} - function compare$2(ok,error,r0,r1) - {if(0 === r0[0]) - {var _Cn_=r0[1]; - if(0 !== r1[0])return -1; - var v1=r1[1]; - return caml_call2(ok,_Cn_,v1)} - var _Co_=r0[1]; - if(0 === r1[0])return 1; - var e1=r1[1]; - return caml_call2(error,_Co_,e1)} - function to_option(param) - {if(0 !== param[0])return 0;var v=param[1];return [0,v]} - function to_list$0(param) - {if(0 !== param[0])return 0;var v=param[1];return [0,v,0]} - function to_seq$0(param) - {if(0 !== param[0])return empty; - var v=param[1]; - return function(_Cm_){return return$0(v,_Cm_)}} - var - Stdlib_Result= - [0, - ok, - error, - value$0, - get_ok, - get_error, - bind$0, - join$0, - map$3, - map_error, - fold$1, - iter$1, - iter_error, - is_ok, - is_error, - equal$2, - compare$2, - to_option, - to_list$0, - to_seq$0]; - caml_register_global(784,Stdlib_Result,"Stdlib__Result"); - function equal$3(_Cl_,_Ck_){return _Cl_ === _Ck_?1:0} - var compare$3=caml_int_compare; - function to_float(param){return param?1.:0.} - function to_string$0(param){return param?cst_true$2:cst_false$2} - function _r_(_Cj_){return _Cj_} - var - Stdlib_Bool= - [0, - function(_Ci_){return 1 - _Ci_}, - equal$3, - compare$3, - _r_, - to_float, - to_string$0]; - caml_register_global(785,Stdlib_Bool,"Stdlib__Bool"); - function chr(n) - {if(0 <= n && 255 >= n)return n;return invalid_arg(cst_Char_chr)} - function escaped(c) - {var switch$0=0; - if(40 <= c) - {if(92 === c)return cst$1;if(127 > c)switch$0 = 1} - else - if(32 <= c) - {if(39 <= c)return cst$2;switch$0 = 1} - else - if(14 > c) - switch(c) - {case 8:return cst_b; - case 9:return cst_t; - case 10:return cst_n; - case 13:return cst_r - } - if(switch$0) - {var s$0=caml_create_bytes(1); - caml_bytes_unsafe_set(s$0,0,c); - return caml_string_of_bytes(s$0)} - var s=caml_create_bytes(4); - caml_bytes_unsafe_set(s,0,92); - caml_bytes_unsafe_set(s,1,48 + (c / 100 | 0) | 0); - caml_bytes_unsafe_set(s,2,48 + ((c / 10 | 0) % 10 | 0) | 0); - caml_bytes_unsafe_set(s,3,48 + (c % 10 | 0) | 0); - return caml_string_of_bytes(s)} - function lowercase(c) - {var _Ch_=c - 192 | 0,switch$0=0; - if(30 < _Ch_ >>> 0) - {if(25 >= _Ch_ + 127 >>> 0)switch$0 = 1} - else - if(23 !== _Ch_)switch$0 = 1; - return switch$0?c + 32 | 0:c} - function uppercase(c) - {var _Cg_=c - 224 | 0,switch$0=0; - if(30 < _Cg_ >>> 0) - {if(25 >= _Cg_ + 127 >>> 0)switch$0 = 1} - else - if(23 !== _Cg_)switch$0 = 1; - return switch$0?c - 32 | 0:c} - function lowercase_ascii(c){return 25 < c - 65 >>> 0?c:c + 32 | 0} - function uppercase_ascii(c){return 25 < c - 97 >>> 0?c:c - 32 | 0} - function compare$4(c1,c2){return c1 - c2 | 0} - function equal$4(c1,c2){return 0 === (c1 - c2 | 0)?1:0} - var - Stdlib_Char= - [0, - chr, - escaped, - lowercase, - uppercase, - lowercase_ascii, - uppercase_ascii, - compare$4, - equal$4]; - caml_register_global(786,Stdlib_Char,"Stdlib__Char"); - var - min$0=0, - max$0=1114111, - lo_bound=55295, - hi_bound=57344, - bom=65279, - rep=65533; - function succ(u) - {return u === 55295 - ?hi_bound - :u === 1114111?invalid_arg(err_no_succ):u + 1 | 0} - function pred(u) - {return u === 57344?lo_bound:u === 0?invalid_arg(err_no_pred):u - 1 | 0} - function is_valid(i) - {var _Cc_=0 <= i?1:0,_Cd_=_Cc_?i <= 55295?1:0:_Cc_; - if(_Cd_) - var _Ce_=_Cd_; - else - var _Cf_=57344 <= i?1:0,_Ce_=_Cf_?i <= 1114111?1:0:_Cf_; - return _Ce_} - function of_int(i) - {return is_valid(i) - ?i - :invalid_arg - (cat(caml_format_int(cst_X,i),cst_is_not_an_Unicode_scalar_v))} - function is_char(u){return u < 256?1:0} - function of_char(c){return c} - function to_char(u) - {return 255 < u - ?invalid_arg - (cat - (cst_U, - cat - (caml_format_int(cst_04X,u),cst_is_not_a_latin1_character))) - :u} - function unsafe_to_char(_Cb_){return _Cb_} - function equal$5(_Ca_,_B$_){return _Ca_ === _B$_?1:0} - var compare$5=caml_int_compare; - function hash(_B__){return _B__} - function utf_decode_is_valid(d){return 1 === (d >>> 27 | 0)?1:0} - function utf_decode_length(d){return (d >>> 24 | 0) & 7} - function utf_decode_uchar(d){return d & 16777215} - function utf_decode(n,u){return (8 | n) << 24 | u} - function dec_invalid(n){return n << 24 | 65533} - function utf_8_byte_length(u) - {if(0 > u)throw [0,Assert_failure,_t_]; - if(127 >= u)return 1; - if(2047 >= u)return 2; - if(65535 >= u)return 3; - if(1114111 < u)throw [0,Assert_failure,_s_]; - return 4} - function utf_16_byte_length(u) - {if(0 > u)throw [0,Assert_failure,_v_]; - if(65535 >= u)return 2; - if(1114111 < u)throw [0,Assert_failure,_u_]; - return 4} - function _w_(_B9_){return _B9_} - var - Stdlib_Uchar= - [0, - min$0, - max$0, - bom, - rep, - succ, - pred, - is_valid, - of_int, - function(_B8_){return _B8_}, - _w_, - is_char, - of_char, - to_char, - unsafe_to_char, - equal$5, - compare$5, - hash, - utf_decode_is_valid, - utf_decode_uchar, - utf_decode_length, - utf_decode, - dec_invalid, - utf_8_byte_length, - utf_16_byte_length]; - caml_register_global(787,Stdlib_Uchar,"Stdlib__Uchar"); - function length$1(l) - {var len=0,param=l; - for(;;) - {if(! param)return len; - var param$0=param[2],len$0=len + 1 | 0,len=len$0,param=param$0}} - function cons$0(a,l){return [0,a,l]} - function hd(param) - {if(! param)return failwith(cst_hd);var a=param[1];return a} - function tl(param) - {if(! param)return failwith(cst_tl);var l=param[2];return l} - function nth(l,n) - {if(0 > n)return invalid_arg(cst_List_nth); - var l$0=l,n$0=n; - for(;;) - {if(! l$0)return failwith(cst_nth); - var l$1=l$0[2],a=l$0[1]; - if(0 === n$0)return a; - var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} - function nth_opt(l,n) - {if(0 > n)return invalid_arg(cst_List_nth$0); - var l$0=l,n$0=n; - for(;;) - {if(! l$0)return 0; - var l$1=l$0[2],a=l$0[1]; - if(0 === n$0)return [0,a]; - var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} - function rev_append(l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(! l1$0)return l2$0; - var l1$1=l1$0[2],a=l1$0[1],l2$1=[0,a,l2$0],l1$0=l1$1,l2$0=l2$1}} - function rev(l){return rev_append(l,0)} - function init_aux$0(i,n,f) - {if(n <= i)return 0; - var r=caml_call1(f,i); - return [0,r,init_aux$0(i + 1 | 0,n,f)]} - function init$0(len,f) - {if(0 > len)return invalid_arg(cst_List_init); - if(50 >= len)return init_aux$0(0,len,f); - var acc=0,i=0; - for(;;) - {if(len <= i)return rev(acc); - var i$0=i + 1 | 0,acc$0=[0,caml_call1(f,i),acc],acc=acc$0,i=i$0}} - function flatten(param) - {if(! param)return 0; - var r=param[2],l=param[1]; - return append(l,flatten(r))} - function map$4(f,param) - {if(! param)return 0; - var l=param[2],a=param[1],r=caml_call1(f,a); - return [0,r,map$4(f,l)]} - function _x_(i,f,param) - {if(! param)return 0; - var l=param[2],a=param[1],r=caml_call2(f,i,a); - return [0,r,_x_(i + 1 | 0,f,l)]} - function mapi$0(f,l){return _x_(0,f,l)} - function rev_map(f,param) - {var accu=0,param$0=param; - for(;;) - {if(! param$0)return accu; - var - l=param$0[2], - a=param$0[1], - accu$0=[0,caml_call1(f,a),accu], - accu=accu$0, - param$0=l}} - function iter$2(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],a=param$0[1]; - caml_call1(f,a); - var param$0=l}} - function iteri$0(f,l$0) - {var i=0,param=l$0; - for(;;) - {if(! param)return 0; - var l=param[2],a=param[1]; - caml_call2(f,i,a); - var i$0=i + 1 | 0,i=i$0,param=l}} - function fold_left$0(f,accu,l) - {var accu$0=accu,l$0=l; - for(;;) - {if(! l$0)return accu$0; - var - l$1=l$0[2], - a=l$0[1], - accu$1=caml_call2(f,accu$0,a), - accu$0=accu$1, - l$0=l$1}} - function fold_right(f,l,accu) - {if(! l)return accu; - var l$0=l[2],a=l[1]; - return caml_call2(f,a,fold_right(f,l$0,accu))} - function map2$0(f,l1,l2) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1],r=caml_call2(f,a1,a2); - return [0,r,map2$0(f,l1$0,l2$0)]}} - else - if(! l2)return 0; - return invalid_arg(cst_List_map2)} - function rev_map2(f,l1,l2) - {var accu=0,l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - accu$0=[0,caml_call2(f,a1,a2),accu], - accu=accu$0, - l1$0=l1$1, - l2$0=l2$1; - continue}} - else - if(! l2$0)return accu; - return invalid_arg(cst_List_rev_map2)}} - function iter2$0(f,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var l2$1=l2$0[2],a2=l2$0[1],l1$1=l1$0[2],a1=l1$0[1]; - caml_call2(f,a1,a2); - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 0; - return invalid_arg(cst_List_iter2)}} - function fold_left2$0(f,accu,l1,l2) - {var accu$0=accu,l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - accu$1=caml_call3(f,accu$0,a1,a2), - accu$0=accu$1, - l1$0=l1$1, - l2$0=l2$1; - continue}} - else - if(! l2$0)return accu$0; - return invalid_arg(cst_List_fold_left2)}} - function fold_right2(f,l1,l2,accu) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; - return caml_call3(f,a1,a2,fold_right2(f,l1$0,l2$0,accu))}} - else - if(! l2)return accu; - return invalid_arg(cst_List_fold_right2)} - function for_all$0(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 1; - var l=param$0[2],a=param$0[1],_B7_=caml_call1(p,a); - if(! _B7_)return _B7_; - var param$0=l}} - function exists$0(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],a=param$0[1],_B6_=caml_call1(p,a); - if(_B6_)return _B6_; - var param$0=l}} - function for_all2$0(p,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _B5_=caml_call2(p,a1,a2); - if(! _B5_)return _B5_; - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 1; - return invalid_arg(cst_List_for_all2)}} - function exists2$0(p,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _B4_=caml_call2(p,a1,a2); - if(_B4_)return _B4_; - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 0; - return invalid_arg(cst_List_exists2)}} - function mem(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],a=param$0[1],_B3_=0 === caml_compare(a,x)?1:0; - if(_B3_)return _B3_; - var param$0=l}} - function memq(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],a=param$0[1],_B2_=a === x?1:0; - if(_B2_)return _B2_; - var param$0=l}} - function assoc(x,param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(0 === caml_compare(a,x))return b; - var param$0=l}} - function assoc_opt(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(0 === caml_compare(a,x))return [0,b]; - var param$0=l}} - function assq(x,param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(a === x)return b; - var param$0=l}} - function assq_opt(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],match=param$0[1],b=match[2],a=match[1]; - if(a === x)return [0,b]; - var param$0=l}} - function mem_assoc(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - l=param$0[2], - match=param$0[1], - a=match[1], - _B1_=0 === caml_compare(a,x)?1:0; - if(_B1_)return _B1_; - var param$0=l}} - function mem_assq(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],match=param$0[1],a=match[1],_B0_=a === x?1:0; - if(_B0_)return _B0_; - var param$0=l}} - function remove_assoc(x,param) - {if(! param)return 0; - var l=param[2],pair=param[1],a=pair[1]; - return 0 === caml_compare(a,x)?l:[0,pair,remove_assoc(x,l)]} - function remove_assq(x,param) - {if(! param)return 0; - var l=param[2],pair=param[1],a=pair[1]; - return a === x?l:[0,pair,remove_assq(x,l)]} - function find$0(p,param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x))return x; - var param$0=l}} - function find_opt(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x))return [0,x]; - var param$0=l}} - function find_map$0(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],x=param$0[1],result=caml_call1(f,x); - if(result)return result; - var param$0=l}} - function find_all(p) - {var accu=0; - return function(param$0) - {var accu$0=accu,param=param$0; - for(;;) - {if(! param)return rev(accu$0); - var l=param[2],x=param[1]; - if(caml_call1(p,x)) - {var accu$1=[0,x,accu$0],accu$0=accu$1,param=l;continue} - var param=l}}} - function filteri(p,param) - {var i=0,acc=0,param$0=param; - for(;;) - {if(! param$0)return rev(acc); - var - l=param$0[2], - x=param$0[1], - acc$0=caml_call2(p,i,x)?[0,x,acc]:acc, - i$0=i + 1 | 0, - i=i$0, - acc=acc$0, - param$0=l}} - function filter_map$0(f) - {var accu=0; - return function(param$0) - {var accu$0=accu,param=param$0; - for(;;) - {if(! param)return rev(accu$0); - var l=param[2],x=param[1],match=caml_call1(f,x); - if(match) - {var v=match[1],accu$1=[0,v,accu$0],accu$0=accu$1,param=l;continue} - var param=l}}} - function concat_map(f,param) - {var acc=0,param$0=param; - for(;;) - {if(! param$0)return rev(acc); - var - l=param$0[2], - x=param$0[1], - xs=caml_call1(f,x), - acc$0=rev_append(xs,acc), - acc=acc$0, - param$0=l}} - function fold_left_map(f,accu,param) - {var accu$0=accu,l_accu=0,param$0=param; - for(;;) - {if(! param$0)return [0,accu$0,rev(l_accu)]; - var - l=param$0[2], - x=param$0[1], - match=caml_call2(f,accu$0,x), - x$0=match[2], - accu$1=match[1], - l_accu$0=[0,x$0,l_accu], - accu$0=accu$1, - l_accu=l_accu$0, - param$0=l}} - function partition$0(p,param) - {var yes=0,no=0,param$0=param; - for(;;) - {if(! param$0){var _BZ_=rev(no);return [0,rev(yes),_BZ_]} - var l=param$0[2],x=param$0[1]; - if(caml_call1(p,x)){var yes$0=[0,x,yes],yes=yes$0,param$0=l;continue} - var no$0=[0,x,no],no=no$0,param$0=l}} - function partition_map$0(p,param) - {var left=0,right=0,param$0=param; - for(;;) - {if(! param$0){var _BY_=rev(right);return [0,rev(left),_BY_]} - var l=param$0[2],x=param$0[1],match=caml_call1(p,x); - if(0 === match[0]) - {var v=match[1],left$0=[0,v,left],left=left$0,param$0=l;continue} - var v$0=match[1],right$0=[0,v$0,right],right=right$0,param$0=l}} - function split(param) - {if(! param)return _y_; - var - l=param[2], - match=param[1], - y=match[2], - x=match[1], - match$0=split(l), - ry=match$0[2], - rx=match$0[1]; - return [0,[0,x,rx],[0,y,ry]]} - function combine(l1,l2) - {if(l1) - {if(l2) - {var l2$0=l2[2],a2=l2[1],l1$0=l1[2],a1=l1[1]; - return [0,[0,a1,a2],combine(l1$0,l2$0)]}} - else - if(! l2)return 0; - return invalid_arg(cst_List_combine)} - function merge(cmp,l1,l2) - {if(! l1)return l2; - if(! l2)return l1; - var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - return 0 < caml_call2(cmp,h1,h2) - ?[0,h2,merge(cmp,l1,t2)] - :[0,h1,merge(cmp,t1,l2)]} - function fast_sort(cmp,l) - {function sort(n,l) - {if(2 === n) - {if(l) - {var _BU_=l[2]; - if(_BU_) - {var - tl=_BU_[2], - x2=_BU_[1], - x1=l[1], - s=0 < caml_call2(cmp,x1,x2)?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BW_=l[2]; - if(_BW_) - {var _BX_=_BW_[2]; - if(_BX_) - {var - tl$1=_BX_[2], - x3=_BX_[1], - x2$0=_BW_[1], - x1$0=l[1], - s$0= - 0 < caml_call2(cmp,x1$0,x2$0) - ?0 < caml_call2(cmp,x1$0,x3) - ?0 < caml_call2(cmp,x2$0,x3) - ?[0,x3,[0,x2$0,[0,x1$0,0]]] - :[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x2$0,[0,x1$0,[0,x3,0]]] - :0 < caml_call2(cmp,x2$0,x3) - ?0 < caml_call2(cmp,x1$0,x3) - ?[0,x3,[0,x1$0,[0,x2$0,0]]] - :[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x1$0,[0,x2$0,[0,x3,0]]]; - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=rev_sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=rev_sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - if(0 < caml_call2(cmp,h1,h2)) - {var accu$0=[0,h1,accu],l1=t1,accu=accu$0;continue} - var accu$1=[0,h2,accu],l2=t2,accu=accu$1; - continue} - var _BV_=rev_append(l1,accu)} - else - var _BV_=rev_append(l2,accu); - return [0,_BV_,tl$0]}} - function rev_sort(n,l) - {if(2 === n) - {if(l) - {var _BQ_=l[2]; - if(_BQ_) - {var - tl=_BQ_[2], - x2=_BQ_[1], - x1=l[1], - s=0 < caml_call2(cmp,x1,x2)?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BS_=l[2]; - if(_BS_) - {var _BT_=_BS_[2]; - if(_BT_) - {var - tl$1=_BT_[2], - x3=_BT_[1], - x2$0=_BS_[1], - x1$0=l[1], - s$0= - 0 < caml_call2(cmp,x1$0,x2$0) - ?0 < caml_call2(cmp,x2$0,x3) - ?[0,x1$0,[0,x2$0,[0,x3,0]]] - :0 < caml_call2(cmp,x1$0,x3) - ?[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x3,[0,x1$0,[0,x2$0,0]]] - :0 < caml_call2(cmp,x1$0,x3) - ?[0,x2$0,[0,x1$0,[0,x3,0]]] - :0 < caml_call2(cmp,x2$0,x3) - ?[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x3,[0,x2$0,[0,x1$0,0]]]; - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1]; - if(0 < caml_call2(cmp,h1,h2)) - {var accu$0=[0,h2,accu],l2=t2,accu=accu$0;continue} - var accu$1=[0,h1,accu],l1=t1,accu=accu$1; - continue} - var _BR_=rev_append(l1,accu)} - else - var _BR_=rev_append(l2,accu); - return [0,_BR_,tl$0]}} - var len=length$1(l); - return 2 <= len?sort(len,l)[1]:l} - function sort_uniq(cmp,l) - {function sort(n,l) - {if(2 === n) - {if(l) - {var _BH_=l[2]; - if(_BH_) - {var - tl=_BH_[2], - x2=_BH_[1], - x1=l[1], - c$0=caml_call2(cmp,x1,x2), - s=0 === c$0?[0,x1,0]:0 <= c$0?[0,x2,[0,x1,0]]:[0,x1,[0,x2,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BJ_=l[2]; - if(_BJ_) - {var _BK_=_BJ_[2]; - if(_BK_) - {var - tl$1=_BK_[2], - x3=_BK_[1], - x2$0=_BJ_[1], - x1$0=l[1], - c$1=caml_call2(cmp,x1$0,x2$0); - if(0 === c$1) - var - c$2=caml_call2(cmp,x2$0,x3), - _BL_= - 0 === c$2 - ?[0,x2$0,0] - :0 <= c$2?[0,x3,[0,x2$0,0]]:[0,x2$0,[0,x3,0]], - s$0=_BL_; - else - if(0 <= c$1) - {var c$3=caml_call2(cmp,x1$0,x3); - if(0 === c$3) - var _BM_=[0,x2$0,[0,x1$0,0]]; - else - if(0 <= c$3) - var - c$4=caml_call2(cmp,x2$0,x3), - _BN_= - 0 === c$4 - ?[0,x2$0,[0,x1$0,0]] - :0 <= c$4 - ?[0,x3,[0,x2$0,[0,x1$0,0]]] - :[0,x2$0,[0,x3,[0,x1$0,0]]], - _BM_=_BN_; - else - var _BM_=[0,x2$0,[0,x1$0,[0,x3,0]]]; - var s$0=_BM_} - else - {var c$5=caml_call2(cmp,x2$0,x3); - if(0 === c$5) - var _BO_=[0,x1$0,[0,x2$0,0]]; - else - if(0 <= c$5) - var - c$6=caml_call2(cmp,x1$0,x3), - _BP_= - 0 === c$6 - ?[0,x1$0,[0,x2$0,0]] - :0 <= c$6 - ?[0,x3,[0,x1$0,[0,x2$0,0]]] - :[0,x1$0,[0,x3,[0,x2$0,0]]], - _BO_=_BP_; - else - var _BO_=[0,x1$0,[0,x2$0,[0,x3,0]]]; - var s$0=_BO_} - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=rev_sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=rev_sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); - if(0 === c) - {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} - if(0 < c){var accu$1=[0,h1,accu],l1=t1,accu=accu$1;continue} - var accu$2=[0,h2,accu],l2=t2,accu=accu$2; - continue} - var _BI_=rev_append(l1,accu)} - else - var _BI_=rev_append(l2,accu); - return [0,_BI_,tl$0]}} - function rev_sort(n,l) - {if(2 === n) - {if(l) - {var _By_=l[2]; - if(_By_) - {var - tl=_By_[2], - x2=_By_[1], - x1=l[1], - c$0=caml_call2(cmp,x1,x2), - s=0 === c$0?[0,x1,0]:0 < c$0?[0,x1,[0,x2,0]]:[0,x2,[0,x1,0]]; - return [0,s,tl]}}} - else - if(3 === n && l) - {var _BA_=l[2]; - if(_BA_) - {var _BB_=_BA_[2]; - if(_BB_) - {var - tl$1=_BB_[2], - x3=_BB_[1], - x2$0=_BA_[1], - x1$0=l[1], - c$1=caml_call2(cmp,x1$0,x2$0); - if(0 === c$1) - var - c$2=caml_call2(cmp,x2$0,x3), - _BC_= - 0 === c$2 - ?[0,x2$0,0] - :0 < c$2?[0,x2$0,[0,x3,0]]:[0,x3,[0,x2$0,0]], - s$0=_BC_; - else - if(0 < c$1) - {var c$3=caml_call2(cmp,x2$0,x3); - if(0 === c$3) - var _BD_=[0,x1$0,[0,x2$0,0]]; - else - if(0 < c$3) - var _BD_=[0,x1$0,[0,x2$0,[0,x3,0]]]; - else - var - c$4=caml_call2(cmp,x1$0,x3), - _BE_= - 0 === c$4 - ?[0,x1$0,[0,x2$0,0]] - :0 < c$4 - ?[0,x1$0,[0,x3,[0,x2$0,0]]] - :[0,x3,[0,x1$0,[0,x2$0,0]]], - _BD_=_BE_; - var s$0=_BD_} - else - {var c$5=caml_call2(cmp,x1$0,x3); - if(0 === c$5) - var _BF_=[0,x2$0,[0,x1$0,0]]; - else - if(0 < c$5) - var _BF_=[0,x2$0,[0,x1$0,[0,x3,0]]]; - else - var - c$6=caml_call2(cmp,x2$0,x3), - _BG_= - 0 === c$6 - ?[0,x2$0,[0,x1$0,0]] - :0 < c$6 - ?[0,x2$0,[0,x3,[0,x1$0,0]]] - :[0,x3,[0,x2$0,[0,x1$0,0]]], - _BF_=_BG_; - var s$0=_BF_} - return [0,s$0,tl$1]}}} - var - n1=n >> 1, - n2=n - n1 | 0, - match=sort(n1,l), - l2$0=match[2], - s1=match[1], - match$0=sort(n2,l2$0), - tl$0=match$0[2], - s2=match$0[1], - l1=s1, - l2=s2, - accu=0; - for(;;) - {if(l1) - {if(l2) - {var t2=l2[2],h2=l2[1],t1=l1[2],h1=l1[1],c=caml_call2(cmp,h1,h2); - if(0 === c) - {var accu$0=[0,h1,accu],l1=t1,l2=t2,accu=accu$0;continue} - if(0 <= c){var accu$1=[0,h2,accu],l2=t2,accu=accu$1;continue} - var accu$2=[0,h1,accu],l1=t1,accu=accu$2; - continue} - var _Bz_=rev_append(l1,accu)} - else - var _Bz_=rev_append(l2,accu); - return [0,_Bz_,tl$0]}} - var len=length$1(l); - return 2 <= len?sort(len,l)[1]:l} - function compare_lengths(l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(! l1$0)return l2$0?-1:0; - if(! l2$0)return 1; - var l2$1=l2$0[2],l1$1=l1$0[2],l1$0=l1$1,l2$0=l2$1}} - function compare_length_with(l,n) - {var l$0=l,n$0=n; - for(;;) - {if(! l$0)return 0 === n$0?0:0 < n$0?-1:1; - var l$1=l$0[2]; - if(0 >= n$0)return 1; - var n$1=n$0 - 1 | 0,l$0=l$1,n$0=n$1}} - function equal$6(eq,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(l1$0) - {if(l2$0) - {var - l2$1=l2$0[2], - a2=l2$0[1], - l1$1=l1$0[2], - a1=l1$0[1], - _Bx_=caml_call2(eq,a1,a2); - if(! _Bx_)return _Bx_; - var l1$0=l1$1,l2$0=l2$1; - continue}} - else - if(! l2$0)return 1; - return 0}} - function compare$6(cmp,l1,l2) - {var l1$0=l1,l2$0=l2; - for(;;) - {if(! l1$0)return l2$0?-1:0; - var _Bv_=l1$0[2],_Bw_=l1$0[1]; - if(! l2$0)return 1; - var l2$1=l2$0[2],a2=l2$0[1],c=caml_call2(cmp,_Bw_,a2); - if(0 !== c)return c; - var l1$0=_Bv_,l2$0=l2$1}} - function to_seq$1(l) - {function aux(l,param) - {if(! l)return 0; - var tail=l[2],x=l[1]; - return [0,x,function(_Bu_){return aux(tail,_Bu_)}]} - return function(_Bt_){return aux(l,_Bt_)}} - function of_seq(seq) - {function direct(depth,seq) - {if(0 === depth) - {var _Bs_=0; - return rev(fold_left(function(acc,x){return [0,x,acc]},_Bs_,seq))} - var match=caml_call1(seq,0); - if(! match)return 0; - var next=match[2],x=match[1]; - return [0,x,direct(depth - 1 | 0,next)]} - return direct(500,seq)} - var - include$0= - [0, - length$1, - compare_lengths, - compare_length_with, - cons$0, - hd, - tl, - nth, - nth_opt, - rev, - init$0, - append, - rev_append, - flatten, - flatten, - equal$6, - compare$6, - iter$2, - iteri$0, - map$4, - mapi$0, - rev_map, - filter_map$0, - concat_map, - fold_left_map, - fold_left$0, - fold_right, - iter2$0, - map2$0, - rev_map2, - fold_left2$0, - fold_right2, - for_all$0, - exists$0, - for_all2$0, - exists2$0, - mem, - memq, - find$0, - find_opt, - find_map$0, - find_all, - find_all, - filteri, - partition$0, - partition_map$0, - assoc, - assoc_opt, - assq, - assq_opt, - mem_assoc, - mem_assq, - remove_assoc, - remove_assq, - split, - combine, - fast_sort, - fast_sort, - fast_sort, - sort_uniq, - merge, - to_seq$1, - of_seq]; - caml_register_global(788,include$0,"Stdlib__List"); - var zero=0,one=1,minus_one=-1; - function abs$0(x){return 0 <= x?x:- x | 0} - var max_int$0=2147483647,min_int$0=-2147483648; - function lognot(x){return x ^ -1} - function equal$7(_Br_,_Bq_){return _Br_ === _Bq_?1:0} - var compare$7=caml_int_compare; - function min$1(x,y){return x <= y?x:y} - function max$1(x,y){return y <= x?x:y} - function to_string$1(x){return caml_string_of_jsbytes("" + x)} - var - Stdlib_Int= - [0, - zero, - one, - minus_one, - abs$0, - max_int$0, - min_int$0, - lognot, - equal$7, - compare$7, - min$1, - max$1, - to_string$1]; - caml_register_global(789,Stdlib_Int,"Stdlib__Int"); - function make$0(n,c) - {var s=caml_create_bytes(n);caml_fill_bytes(s,0,n,c);return s} - function init$1(n,f) - {var s=caml_create_bytes(n),_Bo_=n - 1 | 0,_Bn_=0; - if(_Bo_ >= 0) - {var i=_Bn_; - for(;;) - {caml_bytes_unsafe_set(s,i,caml_call1(f,i)); - var _Bp_=i + 1 | 0; - if(_Bo_ !== i){var i=_Bp_;continue} - break}} - return s} - var empty$0=caml_create_bytes(0); - function copy(s) - {var len=caml_ml_bytes_length(s),r=caml_create_bytes(len); - caml_blit_bytes(s,0,r,0,len); - return r} - function of_bytes(b){return caml_string_of_bytes(copy(b))} - function to_bytes(s){return copy(caml_bytes_of_string(s))} - function sub(s,ofs,len) - {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - {var r=caml_create_bytes(len);caml_blit_bytes(s,ofs,r,0,len);return r} - return invalid_arg(cst_String_sub_Bytes_sub)} - function sub_string(b,ofs,len) - {return caml_string_of_bytes(sub(b,ofs,len))} - function symbol$0(a,b) - {var c=a + b | 0,_Bm_=b < 0?1:0,match=c < 0?1:0,switch$0=0; - if(a < 0) - {if(_Bm_ && ! match)switch$0 = 1} - else - if(! _Bm_ && match)switch$0 = 1; - return switch$0?invalid_arg(cst_Bytes_extend):c} - function extend(s,left,right) - {var - len=symbol$0(symbol$0(caml_ml_bytes_length(s),left),right), - r=caml_create_bytes(len); - if(0 <= left) - var dstoff=left,srcoff=0; - else - var dstoff=0,srcoff=- left | 0; - var cpylen=min$1(caml_ml_bytes_length(s) - srcoff | 0,len - dstoff | 0); - if(0 < cpylen)caml_blit_bytes(s,srcoff,r,dstoff,cpylen); - return r} - function fill(s,ofs,len,c) - {if(0 <= ofs && 0 <= len && (caml_ml_bytes_length(s) - len | 0) >= ofs) - return caml_fill_bytes(s,ofs,len,c); - return invalid_arg(cst_String_fill_Bytes_fill)} - function blit(s1,ofs1,s2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - (caml_ml_bytes_length(s1) - len | 0) - >= - ofs1 - && - 0 - <= - ofs2 - && - (caml_ml_bytes_length(s2) - len | 0) - >= - ofs2) - return caml_blit_bytes(s1,ofs1,s2,ofs2,len); - return invalid_arg(cst_Bytes_blit)} - function blit$0(s1,ofs1,s2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - (caml_ml_string_length(s1) - len | 0) - >= - ofs1 - && - 0 - <= - ofs2 - && - (caml_ml_bytes_length(s2) - len | 0) - >= - ofs2) - return caml_blit_string(s1,ofs1,s2,ofs2,len); - return invalid_arg(cst_String_blit_Bytes_blit_str)} - function iter$3(f,a) - {var _Bk_=caml_ml_bytes_length(a) - 1 | 0,_Bj_=0; - if(_Bk_ >= 0) - {var i=_Bj_; - for(;;) - {caml_call1(f,caml_bytes_unsafe_get(a,i)); - var _Bl_=i + 1 | 0; - if(_Bk_ !== i){var i=_Bl_;continue} - break}} - return 0} - function iteri$1(f,a) - {var _Bh_=caml_ml_bytes_length(a) - 1 | 0,_Bg_=0; - if(_Bh_ >= 0) - {var i=_Bg_; - for(;;) - {caml_call2(f,i,caml_bytes_unsafe_get(a,i)); - var _Bi_=i + 1 | 0; - if(_Bh_ !== i){var i=_Bi_;continue} - break}} - return 0} - function concat$0(sep,l) - {if(! l)return empty$0; - var seplen=caml_ml_bytes_length(sep),acc=0,param=l,pos$1=0; - for(;;) - {if(param) - {var _Bd_=param[1]; - if(param[2]) - {var - tl=param[2], - x=(caml_ml_bytes_length(_Bd_) + seplen | 0) + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_Bytes_concat), - acc=acc$0, - param=tl; - continue} - var _Bf_=caml_ml_bytes_length(_Bd_) + acc | 0} - else - var _Bf_=acc; - var dst=caml_create_bytes(_Bf_),pos=pos$1,param$0=l; - for(;;) - {if(! param$0)return dst; - var _Be_=param$0[1]; - if(param$0[2]) - {var tl$0=param$0[2]; - caml_blit_bytes(_Be_,0,dst,pos,caml_ml_bytes_length(_Be_)); - caml_blit_bytes - (sep,0,dst,pos + caml_ml_bytes_length(_Be_) | 0,seplen); - var - pos$0=(pos + caml_ml_bytes_length(_Be_) | 0) + seplen | 0, - pos=pos$0, - param$0=tl$0; - continue} - caml_blit_bytes(_Be_,0,dst,pos,caml_ml_bytes_length(_Be_)); - return dst}}} - function cat$0(s1,s2) - {var - l1=caml_ml_bytes_length(s1), - l2=caml_ml_bytes_length(s2), - r=caml_create_bytes(l1 + l2 | 0); - caml_blit_bytes(s1,0,r,0,l1); - caml_blit_bytes(s2,0,r,l1,l2); - return r} - function is_space(param) - {var _Bc_=param - 9 | 0,switch$0=0; - if(4 < _Bc_ >>> 0) - {if(23 === _Bc_)switch$0 = 1} - else - if(2 !== _Bc_)switch$0 = 1; - return switch$0?1:0} - function trim(s) - {var len=caml_ml_bytes_length(s),i=[0,0]; - for(;;) - {if(i[1] < len && is_space(caml_bytes_unsafe_get(s,i[1]))) - {i[1]++;continue} - var j=[0,len - 1 | 0]; - for(;;) - {if(i[1] <= j[1] && is_space(caml_bytes_unsafe_get(s,j[1]))) - {j[1] += -1;continue} - return i[1] <= j[1]?sub(s,i[1],(j[1] - i[1] | 0) + 1 | 0):empty$0}}} - function escaped$0(s) - {var n=[0,0],_A7_=caml_ml_bytes_length(s) - 1 | 0,_A6_=0; - if(_A7_ >= 0) - {var i$0=_A6_; - for(;;) - {var match=caml_bytes_unsafe_get(s,i$0),switch$0=0; - if(32 <= match) - {var _A$_=match - 34 | 0,switch$1=0; - if(58 < _A$_ >>> 0) - {if(93 <= _A$_)switch$1 = 1} - else - if(56 < _A$_ - 1 >>> 0){switch$0 = 1;switch$1 = 1} - if(! switch$1){var _Ba_=1;switch$0 = 2}} - else - if(11 <= match) - {if(13 === match)switch$0 = 1} - else - if(8 <= match)switch$0 = 1; - switch(switch$0){case 0:var _Ba_=4;break;case 1:var _Ba_=2;break} - n[1] = n[1] + _Ba_ | 0; - var _Bb_=i$0 + 1 | 0; - if(_A7_ !== i$0){var i$0=_Bb_;continue} - break}} - if(n[1] === caml_ml_bytes_length(s))return copy(s); - var s$0=caml_create_bytes(n[1]); - n[1] = 0; - var _A9_=caml_ml_bytes_length(s) - 1 | 0,_A8_=0; - if(_A9_ >= 0) - {var i=_A8_; - for(;;) - {var c=caml_bytes_unsafe_get(s,i),switch$2=0; - if(35 <= c) - if(92 === c) - switch$2 = 2; - else - if(127 <= c)switch$2 = 1;else switch$2 = 3; - else - if(32 <= c) - if(34 <= c)switch$2 = 2;else switch$2 = 3; - else - if(14 <= c) - switch$2 = 1; - else - switch(c) - {case 8: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],98); - break; - case 9: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],116); - break; - case 10: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],110); - break; - case 13: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],114); - break; - default:switch$2 = 1} - switch(switch$2) - {case 1: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + (c / 100 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + ((c / 10 | 0) % 10 | 0) | 0); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],48 + (c % 10 | 0) | 0); - break; - case 2: - caml_bytes_unsafe_set(s$0,n[1],92); - n[1]++; - caml_bytes_unsafe_set(s$0,n[1],c); - break; - case 3:caml_bytes_unsafe_set(s$0,n[1],c);break - } - n[1]++; - var _A__=i + 1 | 0; - if(_A9_ !== i){var i=_A__;continue} - break}} - return s$0} - function map$5(f,s) - {var l=caml_ml_bytes_length(s); - if(0 === l)return s; - var r=caml_create_bytes(l),_A4_=l - 1 | 0,_A3_=0; - if(_A4_ >= 0) - {var i=_A3_; - for(;;) - {caml_bytes_unsafe_set(r,i,caml_call1(f,caml_bytes_unsafe_get(s,i))); - var _A5_=i + 1 | 0; - if(_A4_ !== i){var i=_A5_;continue} - break}} - return r} - function mapi$1(f,s) - {var l=caml_ml_bytes_length(s); - if(0 === l)return s; - var r=caml_create_bytes(l),_A1_=l - 1 | 0,_A0_=0; - if(_A1_ >= 0) - {var i=_A0_; - for(;;) - {caml_bytes_unsafe_set - (r,i,caml_call2(f,i,caml_bytes_unsafe_get(s,i))); - var _A2_=i + 1 | 0; - if(_A1_ !== i){var i=_A2_;continue} - break}} - return r} - function fold_left$1(f,x,a) - {var r=[0,x],_AY_=caml_ml_bytes_length(a) - 1 | 0,_AX_=0; - if(_AY_ >= 0) - {var i=_AX_; - for(;;) - {r[1] = caml_call2(f,r[1],caml_bytes_unsafe_get(a,i)); - var _AZ_=i + 1 | 0; - if(_AY_ !== i){var i=_AZ_;continue} - break}} - return r[1]} - function fold_right$0(f,a,x) - {var r=[0,x],_AV_=caml_ml_bytes_length(a) - 1 | 0; - if(_AV_ >= 0) - {var i=_AV_; - for(;;) - {r[1] = caml_call2(f,caml_bytes_unsafe_get(a,i),r[1]); - var _AW_=i - 1 | 0; - if(0 !== i){var i=_AW_;continue} - break}} - return r[1]} - function exists$1(p,s) - {var n=caml_ml_bytes_length(s),i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,caml_bytes_unsafe_get(s,i)))return 1; - var i$0=i + 1 | 0,i=i$0}} - function for_all$1(p,s) - {var n=caml_ml_bytes_length(s),i=0; - for(;;) - {if(i === n)return 1; - if(! caml_call1(p,caml_bytes_unsafe_get(s,i)))return 0; - var i$0=i + 1 | 0,i=i$0}} - function uppercase_ascii$0(s){return map$5(uppercase_ascii,s)} - function lowercase_ascii$0(s){return map$5(lowercase_ascii,s)} - function apply1(f,s) - {if(0 === caml_ml_bytes_length(s))return s; - var r=copy(s); - caml_bytes_unsafe_set(r,0,caml_call1(f,caml_bytes_unsafe_get(s,0))); - return r} - function capitalize_ascii(s){return apply1(uppercase_ascii,s)} - function uncapitalize_ascii(s){return apply1(lowercase_ascii,s)} - function starts_with(prefix,s) - {var - len_s=caml_ml_bytes_length(s), - len_pre=caml_ml_bytes_length(prefix), - _AU_=len_pre <= len_s?1:0; - if(! _AU_)return _AU_; - var i=0; - for(;;) - {if(i === len_pre)return 1; - if(caml_bytes_unsafe_get(s,i) !== caml_bytes_unsafe_get(prefix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0}} - function ends_with(suffix,s) - {var - len_s=caml_ml_bytes_length(s), - len_suf=caml_ml_bytes_length(suffix), - diff=len_s - len_suf | 0, - _AT_=0 <= diff?1:0; - if(! _AT_)return _AT_; - var i=0; - for(;;) - {if(i === len_suf)return 1; - if - (caml_bytes_unsafe_get(s,diff + i | 0) - !== - caml_bytes_unsafe_get(suffix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0}} - function index_rec(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)throw Not_found; - if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1}} - function index(s,c){return index_rec(s,caml_ml_bytes_length(s),0,c)} - function index_rec_opt(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)return 0; - if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 + 1 | 0,i$0=i$1}} - function index_opt(s,c) - {return index_rec_opt(s,caml_ml_bytes_length(s),0,c)} - function index_from(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && l >= i)return index_rec(s,l,i,c); - return invalid_arg(cst_String_index_from_Bytes_in)} - function index_from_opt(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && l >= i)return index_rec_opt(s,l,i,c); - return invalid_arg(cst_String_index_from_opt_Byte)} - function rindex_rec(s,i,c) - {var i$0=i; - for(;;) - {if(0 > i$0)throw Not_found; - if(caml_bytes_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 - 1 | 0,i$0=i$1}} - function rindex(s,c) - {return rindex_rec(s,caml_ml_bytes_length(s) - 1 | 0,c)} - function rindex_from(s,i,c) - {if(-1 <= i && caml_ml_bytes_length(s) > i)return rindex_rec(s,i,c); - return invalid_arg(cst_String_rindex_from_Bytes_r)} - function rindex_rec_opt(s,i,c) - {var i$0=i; - for(;;) - {if(0 > i$0)return 0; - if(caml_bytes_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 - 1 | 0,i$0=i$1}} - function rindex_opt(s,c) - {return rindex_rec_opt(s,caml_ml_bytes_length(s) - 1 | 0,c)} - function rindex_from_opt(s,i,c) - {if(-1 <= i && caml_ml_bytes_length(s) > i)return rindex_rec_opt(s,i,c); - return invalid_arg(cst_String_rindex_from_opt_Byt)} - function contains_from(s,i,c) - {var l=caml_ml_bytes_length(s); - if(0 <= i && l >= i) - try - {index_rec(s,l,i,c);var _AR_=1;return _AR_} - catch(_AS_) - {_AS_ = caml_wrap_exception(_AS_); - if(_AS_ === Not_found)return 0; - throw _AS_} - return invalid_arg(cst_String_contains_from_Bytes)} - function contains(s,c){return contains_from(s,0,c)} - function rcontains_from(s,i,c) - {if(0 <= i && caml_ml_bytes_length(s) > i) - try - {rindex_rec(s,i,c);var _AP_=1;return _AP_} - catch(_AQ_) - {_AQ_ = caml_wrap_exception(_AQ_); - if(_AQ_ === Not_found)return 0; - throw _AQ_} - return invalid_arg(cst_String_rcontains_from_Byte)} - function compare$8(x,y){return runtime.caml_bytes_compare(x,y)} - function split_on_char(sep,s) - {var - r=[0,0], - j=[0,caml_ml_bytes_length(s)], - _AL_=caml_ml_bytes_length(s) - 1 | 0; - if(_AL_ >= 0) - {var i=_AL_; - for(;;) - {if(caml_bytes_unsafe_get(s,i) === sep) - {var _AN_=r[1]; - r[1] = [0,sub(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_AN_]; - j[1] = i} - var _AO_=i - 1 | 0; - if(0 !== i){var i=_AO_;continue} - break}} - var _AM_=r[1]; - return [0,sub(s,0,j[1]),_AM_]} - function uppercase$0(s){return map$5(uppercase,s)} - function lowercase$0(s){return map$5(lowercase,s)} - function capitalize(s){return apply1(uppercase,s)} - function uncapitalize(s){return apply1(lowercase,s)} - function to_seq$2(s) - {function aux(i,param) - {if(i === caml_ml_bytes_length(s))return 0; - var x=caml_bytes_get(s,i),_AJ_=i + 1 | 0; - return [0,x,function(_AK_){return aux(_AJ_,_AK_)}]} - var _AH_=0; - return function(_AI_){return aux(_AH_,_AI_)}} - function to_seqi(s) - {function aux(i,param) - {if(i === caml_ml_bytes_length(s))return 0; - var x=caml_bytes_get(s,i),_AF_=i + 1 | 0; - return [0,[0,i,x],function(_AG_){return aux(_AF_,_AG_)}]} - var _AD_=0; - return function(_AE_){return aux(_AD_,_AE_)}} - function of_seq$0(i) - {var n=[0,0],buf=[0,make$0(256,0)]; - iter - (function(c) - {if(n[1] === caml_ml_bytes_length(buf[1])) - {var - new_len= - min$1(2 * caml_ml_bytes_length(buf[1]) | 0,max_string_length); - if(caml_ml_bytes_length(buf[1]) === new_len) - failwith(cst_Bytes_of_seq_cannot_grow_b); - var new_buf=make$0(new_len,0); - blit(buf[1],0,new_buf,0,n[1]); - buf[1] = new_buf} - caml_bytes_set(buf[1],n[1],c); - n[1]++; - return 0}, - i); - return sub(buf[1],0,n[1])} - function get$1(b,i){return caml_bswap16(caml_bytes_get16(b,i))} - function get_int8(b,i){return caml_bytes_get(b,i) << 24 >> 24} - function get_uint16_le(b,i){return caml_bytes_get16(b,i)} - function get_uint16_be(b,i){return caml_bswap16(caml_bytes_get16(b,i))} - function get_int16_ne(b,i){return caml_bytes_get16(b,i) << 16 >> 16} - function get_int16_le(b,i){return caml_bytes_get16(b,i) << 16 >> 16} - function get_int16_be(b,i){return get_uint16_be(b,i) << 16 >> 16} - function get_int32_le(b,i){return caml_bytes_get32(b,i)} - function get_int32_be(b,i){return caml_int32_bswap(caml_bytes_get32(b,i))} - function get_int64_le(b,i){return caml_bytes_get64(b,i)} - function get_int64_be(b,i){return caml_int64_bswap(caml_bytes_get64(b,i))} - function set$0(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} - function set_int16_le(b,i,x){return caml_bytes_set16(b,i,x)} - function set_int16_be(b,i,x){return caml_bytes_set16(b,i,caml_bswap16(x))} - function set_int32_le(b,i,x){return caml_bytes_set32(b,i,x)} - function set_int32_be(b,i,x) - {return caml_bytes_set32(b,i,caml_int32_bswap(x))} - function set_int64_le(b,i,x){return caml_bytes_set64(b,i,x)} - function set_int64_be(b,i,x) - {return caml_bytes_set64(b,i,caml_int64_bswap(x))} - var set_uint8=caml_bytes_set,set_uint16_ne=caml_bytes_set16; - function dec_ret(n,u){return utf_decode(n,u)} - function not_in_x80_to_xBF(b){return 2 !== (b >>> 6 | 0)?1:0} - function not_in_xA0_to_xBF(b){return 5 !== (b >>> 5 | 0)?1:0} - function not_in_x80_to_x9F(b){return 4 !== (b >>> 5 | 0)?1:0} - function not_in_x90_to_xBF(b) - {var _AB_=b < 144?1:0,_AC_=_AB_ || (191 < b?1:0);return _AC_} - function not_in_x80_to_x8F(b){return 8 !== (b >>> 4 | 0)?1:0} - function utf_8_uchar_3(b0,b1,b2) - {return (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63} - function utf_8_uchar_4(b0,b1,b2,b3) - {return (b0 & 7) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63} - function get_utf_8_uchar(b,i) - {var b0=caml_bytes_get(b,i),max=caml_ml_bytes_length(b) - 1 | 0; - if(224 <= b0) - {var switch$0=0; - if(237 <= b0) - {if(245 > b0) - switch(b0 - 237 | 0) - {case 0: - var i$0=i + 1 | 0; - if(max < i$0)return dec_invalid(1); - var b1=caml_bytes_unsafe_get(b,i$0); - if(not_in_x80_to_x9F(b1))return dec_invalid(1); - var i$1=i$0 + 1 | 0; - if(max < i$1)return dec_invalid(2); - var b2=caml_bytes_unsafe_get(b,i$1); - return not_in_x80_to_xBF(b2) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1,b2)); - case 3: - var i$4=i + 1 | 0; - if(max < i$4)return dec_invalid(1); - var b1$1=caml_bytes_unsafe_get(b,i$4); - if(not_in_x90_to_xBF(b1$1))return dec_invalid(1); - var i$5=i$4 + 1 | 0; - if(max < i$5)return dec_invalid(2); - var b2$1=caml_bytes_unsafe_get(b,i$5); - if(not_in_x80_to_xBF(b2$1))return dec_invalid(2); - var i$6=i$5 + 1 | 0; - if(max < i$6)return dec_invalid(3); - var b3=caml_bytes_unsafe_get(b,i$6); - return not_in_x80_to_xBF(b3) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$1,b2$1,b3)); - case 7: - var i$10=i + 1 | 0; - if(max < i$10)return dec_invalid(1); - var b1$3=caml_bytes_unsafe_get(b,i$10); - if(not_in_x80_to_x8F(b1$3))return dec_invalid(1); - var i$11=i$10 + 1 | 0; - if(max < i$11)return dec_invalid(2); - var b2$3=caml_bytes_unsafe_get(b,i$11); - if(not_in_x80_to_xBF(b2$3))return dec_invalid(2); - var i$12=i$11 + 1 | 0; - if(max < i$12)return dec_invalid(3); - var b3$1=caml_bytes_unsafe_get(b,i$12); - return not_in_x80_to_xBF(b3$1) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$3,b2$3,b3$1)); - case 1: - case 2:switch$0 = 1;break; - default: - var i$7=i + 1 | 0; - if(max < i$7)return dec_invalid(1); - var b1$2=caml_bytes_unsafe_get(b,i$7); - if(not_in_x80_to_xBF(b1$2))return dec_invalid(1); - var i$8=i$7 + 1 | 0; - if(max < i$8)return dec_invalid(2); - var b2$2=caml_bytes_unsafe_get(b,i$8); - if(not_in_x80_to_xBF(b2$2))return dec_invalid(2); - var i$9=i$8 + 1 | 0; - if(max < i$9)return dec_invalid(3); - var b3$0=caml_bytes_unsafe_get(b,i$9); - return not_in_x80_to_xBF(b3$0) - ?dec_invalid(3) - :dec_ret(4,utf_8_uchar_4(b0,b1$2,b2$2,b3$0))}} - else - {if(225 > b0) - {var i$13=i + 1 | 0; - if(max < i$13)return dec_invalid(1); - var b1$4=caml_bytes_unsafe_get(b,i$13); - if(not_in_xA0_to_xBF(b1$4))return dec_invalid(1); - var i$14=i$13 + 1 | 0; - if(max < i$14)return dec_invalid(2); - var b2$4=caml_bytes_unsafe_get(b,i$14); - return not_in_x80_to_xBF(b2$4) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1$4,b2$4))} - switch$0 = 1} - if(switch$0) - {var i$2=i + 1 | 0; - if(max < i$2)return dec_invalid(1); - var b1$0=caml_bytes_unsafe_get(b,i$2); - if(not_in_x80_to_xBF(b1$0))return dec_invalid(1); - var i$3=i$2 + 1 | 0; - if(max < i$3)return dec_invalid(2); - var b2$0=caml_bytes_unsafe_get(b,i$3); - return not_in_x80_to_xBF(b2$0) - ?dec_invalid(2) - :dec_ret(3,utf_8_uchar_3(b0,b1$0,b2$0))}} - else - {if(128 > b0)return dec_ret(1,b0); - if(194 <= b0) - {var i$15=i + 1 | 0; - if(max < i$15)return dec_invalid(1); - var b1$5=caml_bytes_unsafe_get(b,i$15); - return not_in_x80_to_xBF(b1$5) - ?dec_invalid(1) - :dec_ret(2,(b0 & 31) << 6 | b1$5 & 63)}} - return dec_invalid(1)} - function set_utf_8_uchar(b,i,u) - {function set(_AA_,_Az_,_Ay_) - {caml_bytes_unsafe_set(_AA_,_Az_,_Ay_);return 0} - var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 > u)throw [0,Assert_failure,_A_]; - if(127 >= u){caml_bytes_set(b,i,u);return 1} - if(2047 >= u) - {var last$1=i + 1 | 0; - return max < last$1 - ?0 - :(caml_bytes_set(b,i,192 | u >>> 6 | 0), - set(b,last$1,128 | u & 63), - 2)} - if(65535 >= u) - {var last$0=i + 2 | 0; - return max < last$0 - ?0 - :(caml_bytes_set(b,i,224 | u >>> 12 | 0), - set(b,i + 1 | 0,128 | (u >>> 6 | 0) & 63), - set(b,last$0,128 | u & 63), - 3)} - if(1114111 < u)throw [0,Assert_failure,_z_]; - var last=i + 3 | 0; - return max < last - ?0 - :(caml_bytes_set(b,i,240 | u >>> 18 | 0), - set(b,i + 1 | 0,128 | (u >>> 12 | 0) & 63), - set(b,i + 2 | 0,128 | (u >>> 6 | 0) & 63), - set(b,last,128 | u & 63), - 4)} - function is_valid_utf_8(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - var match=caml_bytes_unsafe_get(b,i); - if(224 <= match) - {var switch$0=0; - if(237 <= match) - {if(245 > match) - switch(match - 237 | 0) - {case 0: - var last=i + 2 | 0; - if - (max - >= - last - && - ! - not_in_x80_to_x9F(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last))) - {var i$0=last + 1 | 0,i=i$0;continue} - return 0; - case 3: - var last$1=i + 3 | 0; - if - (max - >= - last$1 - && - ! - not_in_x90_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$1))) - {var i$2=last$1 + 1 | 0,i=i$2;continue} - return 0; - case 7: - var last$3=i + 3 | 0; - if - (max - >= - last$3 - && - ! - not_in_x80_to_x8F(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$3))) - {var i$4=last$3 + 1 | 0,i=i$4;continue} - return 0; - case 1: - case 2:switch$0 = 1;break; - default: - var last$2=i + 3 | 0; - if - (max - >= - last$2 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 2 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$2))) - {var i$3=last$2 + 1 | 0,i=i$3;continue} - return 0}} - else - {if(225 > match) - {var last$4=i + 2 | 0; - if - (max - >= - last$4 - && - ! - not_in_xA0_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$4))) - {var i$5=last$4 + 1 | 0,i=i$5;continue} - return 0} - switch$0 = 1} - if(switch$0) - {var last$0=i + 2 | 0; - if - (max - >= - last$0 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,i + 1 | 0)) - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$0))) - {var i$1=last$0 + 1 | 0,i=i$1;continue} - return 0}} - else - {if(128 > match){var i$7=i + 1 | 0,i=i$7;continue} - if(194 <= match) - {var last$5=i + 1 | 0; - if - (max - >= - last$5 - && - ! - not_in_x80_to_xBF(caml_bytes_unsafe_get(b,last$5))) - {var i$6=last$5 + 1 | 0,i=i$6;continue} - return 0}} - return 0}} - function get_utf_16be_uchar(b,i) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i) - {if(i === max)return dec_invalid(1); - var hi=get$1(b,i); - if(55296 <= hi && 57343 >= hi) - {if(56319 < hi)return dec_invalid(2); - var last=i + 3 | 0; - if(max < last)return dec_invalid((max - i | 0) + 1 | 0); - var u=get$1(b,i + 2 | 0); - if(56320 <= u && 57343 >= u) - {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; - return dec_ret(4,u$0)} - return dec_invalid(2)} - return dec_ret(2,hi)} - return invalid_arg(cst_index_out_of_bounds)} - function set_utf_16be_uchar(b,i,u) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i) - {if(0 > u)throw [0,Assert_failure,_C_]; - if(65535 >= u) - {var last$0=i + 1 | 0;return max < last$0?0:(set$0(b,i,u),2)} - if(1114111 < u)throw [0,Assert_failure,_B_]; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=u - 65536 | 0,hi=55296 | u$0 >>> 10 | 0,lo=56320 | u$0 & 1023; - set$0(b,i,hi); - set$0(b,i + 2 | 0,lo); - return 4} - return invalid_arg(cst_index_out_of_bounds$0)} - function is_valid_utf_16be(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - if(i === max)return 0; - var u=get$1(b,i); - if(55296 <= u && 57343 >= u) - {if(56319 < u)return 0; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=get$1(b,i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){var i$1=i + 4 | 0,i=i$1;continue} - return 0} - var i$0=i + 2 | 0,i=i$0}} - function get_utf_16le_uchar(b,i) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i) - {if(i === max)return dec_invalid(1); - var hi=caml_bytes_get16(b,i); - if(55296 <= hi && 57343 >= hi) - {if(56319 < hi)return dec_invalid(2); - var last=i + 3 | 0; - if(max < last)return dec_invalid((max - i | 0) + 1 | 0); - var u=caml_bytes_get16(b,i + 2 | 0); - if(56320 <= u && 57343 >= u) - {var u$0=((hi & 1023) << 10 | u & 1023) + 65536 | 0; - return dec_ret(4,u$0)} - return dec_invalid(2)} - return dec_ret(2,hi)} - return invalid_arg(cst_index_out_of_bounds$1)} - function set_utf_16le_uchar(b,i,u) - {var max=caml_ml_bytes_length(b) - 1 | 0; - if(0 <= i && max >= i) - {if(0 > u)throw [0,Assert_failure,_E_]; - if(65535 >= u) - {var last$0=i + 1 | 0; - return max < last$0?0:(caml_bytes_set16(b,i,u),2)} - if(1114111 < u)throw [0,Assert_failure,_D_]; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=u - 65536 | 0,hi=55296 | u$0 >>> 10 | 0,lo=56320 | u$0 & 1023; - caml_bytes_set16(b,i,hi); - caml_bytes_set16(b,i + 2 | 0,lo); - return 4} - return invalid_arg(cst_index_out_of_bounds$2)} - function is_valid_utf_16le(b) - {var max=caml_ml_bytes_length(b) - 1 | 0,i=0; - for(;;) - {if(max < i)return 1; - if(i === max)return 0; - var u=caml_bytes_get16(b,i); - if(55296 <= u && 57343 >= u) - {if(56319 < u)return 0; - var last=i + 3 | 0; - if(max < last)return 0; - var u$0=caml_bytes_get16(b,i + 2 | 0); - if(56320 <= u$0 && 57343 >= u$0){var i$1=i + 4 | 0,i=i$1;continue} - return 0} - var i$0=i + 2 | 0,i=i$0}} - var - set_int64_ne=caml_bytes_set64, - set_int32_ne=caml_bytes_set32, - set_int16_ne=caml_bytes_set16, - set_int8=caml_bytes_set, - get_int64_ne=caml_bytes_get64, - get_int32_ne=caml_bytes_get32, - get_uint16_ne=caml_bytes_get16, - get_uint8=caml_bytes_get, - unsafe_of_string=caml_bytes_of_string, - unsafe_to_string=caml_string_of_bytes, - equal$8=runtime.caml_bytes_equal, - include$1= - [0, - make$0, - init$1, - empty$0, - copy, - to_bytes, - of_bytes, - sub, - sub_string, - extend, - fill, - blit, - blit$0, - concat$0, - cat$0, - iter$3, - iteri$1, - map$5, - mapi$1, - fold_left$1, - fold_right$0, - for_all$1, - exists$1, - trim, - escaped$0, - index, - index_opt, - rindex, - rindex_opt, - index_from, - index_from_opt, - rindex_from, - rindex_from_opt, - contains, - contains_from, - rcontains_from, - uppercase$0, - lowercase$0, - capitalize, - uncapitalize, - uppercase_ascii$0, - lowercase_ascii$0, - capitalize_ascii, - uncapitalize_ascii, - compare$8, - equal$8, - starts_with, - ends_with, - unsafe_to_string, - unsafe_of_string, - split_on_char, - to_seq$2, - to_seqi, - of_seq$0, - get_utf_8_uchar, - set_utf_8_uchar, - is_valid_utf_8, - get_utf_16be_uchar, - set_utf_16be_uchar, - is_valid_utf_16be, - get_utf_16le_uchar, - set_utf_16le_uchar, - is_valid_utf_16le, - get_uint8, - get_int8, - get_uint16_ne, - get_uint16_be, - get_uint16_le, - get_int16_ne, - get_int16_be, - get_int16_le, - get_int32_ne, - get_int32_be, - get_int32_le, - get_int64_ne, - get_int64_be, - get_int64_le, - set_uint8, - set_int8, - set_uint16_ne, - set_int16_be, - set_int16_le, - set_int16_ne, - set_int16_be, - set_int16_le, - set_int32_ne, - set_int32_be, - set_int32_le, - set_int64_ne, - set_int64_be, - set_int64_le]; - caml_register_global(790,include$1,"Stdlib__Bytes"); - function make$1(n,c){return caml_string_of_bytes(make$0(n,c))} - function init$2(n,f){return caml_string_of_bytes(init$1(n,f))} - function copy$0(s) - {return caml_string_of_bytes(copy(caml_bytes_of_string(s)))} - function sub$0(s,ofs,len) - {return caml_string_of_bytes(sub(caml_bytes_of_string(s),ofs,len))} - function concat$1(sep,l) - {if(! l)return cst$3; - var seplen=caml_ml_string_length(sep),acc=0,param=l,pos$1=0; - for(;;) - {if(param) - {var _Av_=param[1]; - if(param[2]) - {var - tl=param[2], - x=(caml_ml_string_length(_Av_) + seplen | 0) + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_String_concat), - acc=acc$0, - param=tl; - continue} - var _Ax_=caml_ml_string_length(_Av_) + acc | 0} - else - var _Ax_=acc; - var dst=caml_create_bytes(_Ax_),pos=pos$1,param$0=l; - for(;;) - {if(param$0) - {var _Aw_=param$0[1]; - if(param$0[2]) - {var tl$0=param$0[2]; - caml_blit_string(_Aw_,0,dst,pos,caml_ml_string_length(_Aw_)); - caml_blit_string - (sep,0,dst,pos + caml_ml_string_length(_Aw_) | 0,seplen); - var - pos$0=(pos + caml_ml_string_length(_Aw_) | 0) + seplen | 0, - pos=pos$0, - param$0=tl$0; - continue} - caml_blit_string(_Aw_,0,dst,pos,caml_ml_string_length(_Aw_))} - return caml_string_of_bytes(dst)}}} - function iter$4(f,s) - {var _At_=caml_ml_string_length(s) - 1 | 0,_As_=0; - if(_At_ >= 0) - {var i=_As_; - for(;;) - {caml_call1(f,caml_string_unsafe_get(s,i)); - var _Au_=i + 1 | 0; - if(_At_ !== i){var i=_Au_;continue} - break}} - return 0} - function iteri$2(f,s) - {var _Aq_=caml_ml_string_length(s) - 1 | 0,_Ap_=0; - if(_Aq_ >= 0) - {var i=_Ap_; - for(;;) - {caml_call2(f,i,caml_string_unsafe_get(s,i)); - var _Ar_=i + 1 | 0; - if(_Aq_ !== i){var i=_Ar_;continue} - break}} - return 0} - function map$6(f,s) - {return caml_string_of_bytes(map$5(f,caml_bytes_of_string(s)))} - function mapi$2(f,s) - {return caml_string_of_bytes(mapi$1(f,caml_bytes_of_string(s)))} - function fold_right$1(f,x,a) - {return fold_right$0(f,caml_bytes_of_string(x),a)} - function fold_left$2(f,a,x) - {return fold_left$1(f,a,caml_bytes_of_string(x))} - function exists$2(f,s){return exists$1(f,caml_bytes_of_string(s))} - function for_all$2(f,s){return for_all$1(f,caml_bytes_of_string(s))} - function is_space$0(param) - {var _Ao_=param - 9 | 0,switch$0=0; - if(4 < _Ao_ >>> 0) - {if(23 === _Ao_)switch$0 = 1} - else - if(2 !== _Ao_)switch$0 = 1; - return switch$0?1:0} - function trim$0(s) - {if(caml_string_equal(s,cst$4))return s; - if - (! - is_space$0(caml_string_unsafe_get(s,0)) - && - ! - is_space$0(caml_string_unsafe_get(s,caml_ml_string_length(s) - 1 | 0))) - return s; - return caml_string_of_bytes(trim(caml_bytes_of_string(s)))} - function escaped$1(s) - {var n=caml_ml_string_length(s),i=0; - for(;;) - {if(n <= i)return s; - var match=caml_string_unsafe_get(s,i),_An_=match - 32 | 0,switch$0=0; - if(59 < _An_ >>> 0) - {if(33 < _An_ - 61 >>> 0)switch$0 = 1} - else - if(2 === _An_)switch$0 = 1; - if(switch$0) - return caml_string_of_bytes(escaped$0(caml_bytes_of_string(s))); - var i$0=i + 1 | 0,i=i$0}} - function index_rec$0(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)throw Not_found; - if(caml_string_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1}} - function index$0(s,c){return index_rec$0(s,caml_ml_string_length(s),0,c)} - function index_rec_opt$0(s,lim,i,c) - {var i$0=i; - for(;;) - {if(lim <= i$0)return 0; - if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 + 1 | 0,i$0=i$1}} - function index_opt$0(s,c) - {return index_rec_opt$0(s,caml_ml_string_length(s),0,c)} - function index_from$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && l >= i)return index_rec$0(s,l,i,c); - return invalid_arg(cst_String_index_from_Bytes_in$0)} - function index_from_opt$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && l >= i)return index_rec_opt$0(s,l,i,c); - return invalid_arg(cst_String_index_from_opt_Byte$0)} - function rindex_rec$0(s,i,c) - {var i$0=i; - for(;;) - {if(0 > i$0)throw Not_found; - if(caml_string_unsafe_get(s,i$0) === c)return i$0; - var i$1=i$0 - 1 | 0,i$0=i$1}} - function rindex$0(s,c) - {return rindex_rec$0(s,caml_ml_string_length(s) - 1 | 0,c)} - function rindex_from$0(s,i,c) - {if(-1 <= i && caml_ml_string_length(s) > i)return rindex_rec$0(s,i,c); - return invalid_arg(cst_String_rindex_from_Bytes_r$0)} - function rindex_rec_opt$0(s,i,c) - {var i$0=i; - for(;;) - {if(0 > i$0)return 0; - if(caml_string_unsafe_get(s,i$0) === c)return [0,i$0]; - var i$1=i$0 - 1 | 0,i$0=i$1}} - function rindex_opt$0(s,c) - {return rindex_rec_opt$0(s,caml_ml_string_length(s) - 1 | 0,c)} - function rindex_from_opt$0(s,i,c) - {if(-1 <= i && caml_ml_string_length(s) > i) - return rindex_rec_opt$0(s,i,c); - return invalid_arg(cst_String_rindex_from_opt_Byt$0)} - function contains_from$0(s,i,c) - {var l=caml_ml_string_length(s); - if(0 <= i && l >= i) - try - {index_rec$0(s,l,i,c);var _Al_=1;return _Al_} - catch(_Am_) - {_Am_ = caml_wrap_exception(_Am_); - if(_Am_ === Not_found)return 0; - throw _Am_} - return invalid_arg(cst_String_contains_from_Bytes$0)} - function contains$0(s,c){return contains_from$0(s,0,c)} - function rcontains_from$0(s,i,c) - {if(0 <= i && caml_ml_string_length(s) > i) - try - {rindex_rec$0(s,i,c);var _Aj_=1;return _Aj_} - catch(_Ak_) - {_Ak_ = caml_wrap_exception(_Ak_); - if(_Ak_ === Not_found)return 0; - throw _Ak_} - return invalid_arg(cst_String_rcontains_from_Byte$0)} - function uppercase_ascii$1(s) - {return caml_string_of_bytes(uppercase_ascii$0(caml_bytes_of_string(s)))} - function lowercase_ascii$1(s) - {return caml_string_of_bytes(lowercase_ascii$0(caml_bytes_of_string(s)))} - function capitalize_ascii$0(s) - {return caml_string_of_bytes(capitalize_ascii(caml_bytes_of_string(s)))} - function uncapitalize_ascii$0(s) - {return caml_string_of_bytes(uncapitalize_ascii(caml_bytes_of_string(s)))} - function starts_with$0(prefix,s) - {var - len_s=caml_ml_string_length(s), - len_pre=caml_ml_string_length(prefix), - _Ai_=len_pre <= len_s?1:0; - if(! _Ai_)return _Ai_; - var i=0; - for(;;) - {if(i === len_pre)return 1; - if(caml_string_unsafe_get(s,i) !== caml_string_unsafe_get(prefix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0}} - function ends_with$0(suffix,s) - {var - len_s=caml_ml_string_length(s), - len_suf=caml_ml_string_length(suffix), - diff=len_s - len_suf | 0, - _Ah_=0 <= diff?1:0; - if(! _Ah_)return _Ah_; - var i=0; - for(;;) - {if(i === len_suf)return 1; - if - (caml_string_unsafe_get(s,diff + i | 0) - !== - caml_string_unsafe_get(suffix,i)) - return 0; - var i$0=i + 1 | 0,i=i$0}} - function split_on_char$0(sep,s) - {var - r=[0,0], - j=[0,caml_ml_string_length(s)], - _Ad_=caml_ml_string_length(s) - 1 | 0; - if(_Ad_ >= 0) - {var i=_Ad_; - for(;;) - {if(caml_string_unsafe_get(s,i) === sep) - {var _Af_=r[1]; - r[1] = [0,sub$0(s,i + 1 | 0,(j[1] - i | 0) - 1 | 0),_Af_]; - j[1] = i} - var _Ag_=i - 1 | 0; - if(0 !== i){var i=_Ag_;continue} - break}} - var _Ae_=r[1]; - return [0,sub$0(s,0,j[1]),_Ae_]} - function uppercase$1(s) - {return caml_string_of_bytes(uppercase$0(caml_bytes_of_string(s)))} - function lowercase$1(s) - {return caml_string_of_bytes(lowercase$0(caml_bytes_of_string(s)))} - function capitalize$0(s) - {return caml_string_of_bytes(capitalize(caml_bytes_of_string(s)))} - function uncapitalize$0(s) - {return caml_string_of_bytes(uncapitalize(caml_bytes_of_string(s)))} - function compare$9(x,y){return caml_string_compare(x,y)} - function to_seq$3(s){return to_seq$2(caml_bytes_of_string(s))} - function to_seqi$0(s){return to_seqi(caml_bytes_of_string(s))} - function of_seq$1(g){return caml_string_of_bytes(of_seq$0(g))} - function get_utf_8_uchar$0(s,i) - {return get_utf_8_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_8$0(s) - {return is_valid_utf_8(caml_bytes_of_string(s))} - function get_utf_16be_uchar$0(s,i) - {return get_utf_16be_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_16be$0(s) - {return is_valid_utf_16be(caml_bytes_of_string(s))} - function get_utf_16le_uchar$0(s,i) - {return get_utf_16le_uchar(caml_bytes_of_string(s),i)} - function is_valid_utf_16le$0(s) - {return is_valid_utf_16le(caml_bytes_of_string(s))} - function get_int8$0(s,i){return get_int8(caml_bytes_of_string(s),i)} - function get_uint16_le$0(s,i) - {return caml_bytes_get16(caml_bytes_of_string(s),i)} - function get_uint16_be$0(s,i) - {return get_uint16_be(caml_bytes_of_string(s),i)} - function get_int16_ne$0(s,i) - {return get_int16_ne(caml_bytes_of_string(s),i)} - function get_int16_le$0(s,i) - {return get_int16_le(caml_bytes_of_string(s),i)} - function get_int16_be$0(s,i) - {return get_int16_be(caml_bytes_of_string(s),i)} - function get_int32_le$0(s,i) - {return caml_bytes_get32(caml_bytes_of_string(s),i)} - function get_int32_be$0(s,i) - {return get_int32_be(caml_bytes_of_string(s),i)} - function get_int64_le$0(s,i) - {return caml_bytes_get64(caml_bytes_of_string(s),i)} - function get_int64_be$0(s,i) - {return get_int64_be(caml_bytes_of_string(s),i)} - var - get_int64_ne$0=runtime.caml_string_get64, - get_int32_ne$0=runtime.caml_string_get32, - get_uint16_ne$0=runtime.caml_string_get16, - get_uint8$0=caml_string_get, - equal$9=caml_string_equal, - include$2= - [0, - make$1, - init$2, - empty$1, - of_bytes, - to_bytes, - concat$1, - cat, - equal$9, - compare$9, - starts_with$0, - ends_with$0, - contains_from$0, - rcontains_from$0, - contains$0, - sub$0, - split_on_char$0, - map$6, - mapi$2, - fold_left$2, - fold_right$1, - for_all$2, - exists$2, - trim$0, - escaped$1, - uppercase_ascii$1, - lowercase_ascii$1, - capitalize_ascii$0, - uncapitalize_ascii$0, - iter$4, - iteri$2, - index_from$0, - index_from_opt$0, - rindex_from$0, - rindex_from_opt$0, - index$0, - index_opt$0, - rindex$0, - rindex_opt$0, - to_seq$3, - to_seqi$0, - of_seq$1, - get_utf_8_uchar$0, - is_valid_utf_8$0, - get_utf_16be_uchar$0, - is_valid_utf_16be$0, - get_utf_16le_uchar$0, - is_valid_utf_16le$0, - blit$0, - copy$0, - fill, - uppercase$1, - lowercase$1, - capitalize$0, - uncapitalize$0, - get_uint8$0, - get_int8$0, - get_uint16_ne$0, - get_uint16_be$0, - get_uint16_le$0, - get_int16_ne$0, - get_int16_be$0, - get_int16_le$0, - get_int32_ne$0, - get_int32_be$0, - get_int32_le$0, - get_int64_ne$0, - get_int64_be$0, - get_int64_le$0]; - caml_register_global(791,include$2,"Stdlib__String"); - function equal$10(param,_Ac_){return 1} - function compare$10(param,_Ab_){return 0} - function to_string$2(param){return cst$5} - var Stdlib_Unit=[0,equal$10,compare$10,to_string$2]; - caml_register_global(792,Stdlib_Unit,"Stdlib__Unit"); - function to_buffer(buff,ofs,len,v,flags) - {if - (0 <= ofs && 0 <= len && (caml_ml_bytes_length(buff) - len | 0) >= ofs) - return runtime.caml_output_value_to_buffer(buff,ofs,len,v,flags); - return invalid_arg(cst_Marshal_to_buffer_substrin)} - var header_size=20; - function data_size(buff,ofs) - {if(0 <= ofs && (caml_ml_bytes_length(buff) - 20 | 0) >= ofs) - return caml_marshal_data_size(buff,ofs); - return invalid_arg(cst_Marshal_data_size)} - function total_size(buff,ofs){return 20 + data_size(buff,ofs) | 0} - function from_bytes(buff,ofs) - {if(0 <= ofs && (caml_ml_bytes_length(buff) - 20 | 0) >= ofs) - {var len=caml_marshal_data_size(buff,ofs); - return (caml_ml_bytes_length(buff) - (20 + len | 0) | 0) < ofs - ?invalid_arg(cst_Marshal_from_bytes$0) - :runtime.caml_input_value_from_bytes(buff,ofs)} - return invalid_arg(cst_Marshal_from_bytes)} - function from_string(buff,ofs) - {return from_bytes(caml_bytes_of_string(buff),ofs)} - var - Stdlib_Marshal= - [0, - caml_output_value, - to_buffer, - caml_input_value, - from_bytes, - from_string, - header_size, - data_size, - total_size]; - caml_register_global(793,Stdlib_Marshal,"Stdlib__Marshal"); - var make_float=runtime.caml_make_float_vect,Floatarray=[0]; - function init$3(l,f) - {if(0 === l)return [0]; - if(0 > l)return invalid_arg(cst_Array_init); - var res=caml_make_vect(l,caml_call1(f,0)),_z$_=l - 1 | 0,_z__=1; - if(_z$_ >= 1) - {var i=_z__; - for(;;) - {res[1 + i] = caml_call1(f,i); - var _Aa_=i + 1 | 0; - if(_z$_ !== i){var i=_Aa_;continue} - break}} - return res} - function create_matrix(sx,sy,init) - {var res=caml_make_vect(sx,[0]),_z8_=sx - 1 | 0,_z7_=0; - if(_z8_ >= 0) - {var x=_z7_; - for(;;) - {res[1 + x] = caml_make_vect(sy,init); - var _z9_=x + 1 | 0; - if(_z8_ !== x){var x=_z9_;continue} - break}} - return res} - function copy$1(a) - {var l=a.length - 1;return 0 === l?[0]:caml_array_sub(a,0,l)} - function append$1(a1,a2) - {var l1=a1.length - 1; - return 0 === l1 - ?copy$1(a2) - :0 === a2.length - 1 - ?caml_array_sub(a1,0,l1) - :runtime.caml_array_append(a1,a2)} - function sub$1(a,ofs,len) - {if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return caml_array_sub(a,ofs,len); - return invalid_arg(cst_Array_sub)} - function fill$0(a,ofs,len,v) - {if(0 <= ofs && 0 <= len && (a.length - 1 - len | 0) >= ofs) - return runtime.caml_array_fill(a,ofs,len,v); - return invalid_arg(cst_Array_fill)} - function blit$1(a1,ofs1,a2,ofs2,len) - {if - (0 - <= - len - && - 0 - <= - ofs1 - && - (a1.length - 1 - len | 0) - >= - ofs1 - && - 0 - <= - ofs2 - && - (a2.length - 1 - len | 0) - >= - ofs2) - return runtime.caml_array_blit(a1,ofs1,a2,ofs2,len); - return invalid_arg(cst_Array_blit)} - function iter$5(f,a) - {var _z5_=a.length - 1 - 1 | 0,_z4_=0; - if(_z5_ >= 0) - {var i=_z4_; - for(;;) - {caml_call1(f,a[1 + i]); - var _z6_=i + 1 | 0; - if(_z5_ !== i){var i=_z6_;continue} - break}} - return 0} - function iter2$1(f,a,b) - {if(a.length - 1 !== b.length - 1) - return invalid_arg(cst_Array_iter2_arrays_must_ha); - var _z2_=a.length - 1 - 1 | 0,_z1_=0; - if(_z2_ >= 0) - {var i=_z1_; - for(;;) - {caml_call2(f,a[1 + i],b[1 + i]); - var _z3_=i + 1 | 0; - if(_z2_ !== i){var i=_z3_;continue} - break}} - return 0} - function map$7(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call1(f,a[1])),_zZ_=l - 1 | 0,_zY_=1; - if(_zZ_ >= 1) - {var i=_zY_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _z0_=i + 1 | 0; - if(_zZ_ !== i){var i=_z0_;continue} - break}} - return r} - function map2$1(f,a,b) - {var la=a.length - 1,lb=b.length - 1; - if(la !== lb)return invalid_arg(cst_Array_map2_arrays_must_hav); - if(0 === la)return [0]; - var r=caml_make_vect(la,caml_call2(f,a[1],b[1])),_zW_=la - 1 | 0,_zV_=1; - if(_zW_ >= 1) - {var i=_zV_; - for(;;) - {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); - var _zX_=i + 1 | 0; - if(_zW_ !== i){var i=_zX_;continue} - break}} - return r} - function iteri$3(f,a) - {var _zT_=a.length - 1 - 1 | 0,_zS_=0; - if(_zT_ >= 0) - {var i=_zS_; - for(;;) - {caml_call2(f,i,a[1 + i]); - var _zU_=i + 1 | 0; - if(_zT_ !== i){var i=_zU_;continue} - break}} - return 0} - function mapi$3(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call2(f,0,a[1])),_zQ_=l - 1 | 0,_zP_=1; - if(_zQ_ >= 1) - {var i=_zP_; - for(;;) - {r[1 + i] = caml_call2(f,i,a[1 + i]); - var _zR_=i + 1 | 0; - if(_zQ_ !== i){var i=_zR_;continue} - break}} - return r} - function to_list$1(a) - {var i$1=a.length - 1 - 1 | 0,i=i$1,res=0; - for(;;) - {if(0 > i)return res; - var res$0=[0,a[1 + i],res],i$0=i - 1 | 0,i=i$0,res=res$0}} - function list_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var - param$1=param$0[2], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1}} - function of_list(l) - {if(! l)return [0]; - var tl=l[2],hd=l[1],a=caml_make_vect(list_length(0,l),hd),i=1,param=tl; - for(;;) - {if(! param)return a; - var tl$0=param[2],hd$0=param[1]; - a[1 + i] = hd$0; - var i$0=i + 1 | 0,i=i$0,param=tl$0}} - function fold_left$3(f,x,a) - {var r=[0,x],_zN_=a.length - 1 - 1 | 0,_zM_=0; - if(_zN_ >= 0) - {var i=_zM_; - for(;;) - {r[1] = caml_call2(f,r[1],a[1 + i]); - var _zO_=i + 1 | 0; - if(_zN_ !== i){var i=_zO_;continue} - break}} - return r[1]} - function fold_left_map$0(f,acc,input_array) - {var len=input_array.length - 1; - if(0 === len)return [0,acc,[0]]; - var - match=caml_call2(f,acc,input_array[1]), - elt=match[2], - acc$0=match[1], - output_array=caml_make_vect(len,elt), - acc$1=[0,acc$0], - _zK_=len - 1 | 0, - _zJ_=1; - if(_zK_ >= 1) - {var i=_zJ_; - for(;;) - {var - match$0=caml_call2(f,acc$1[1],input_array[1 + i]), - elt$0=match$0[2], - acc$2=match$0[1]; - acc$1[1] = acc$2; - output_array[1 + i] = elt$0; - var _zL_=i + 1 | 0; - if(_zK_ !== i){var i=_zL_;continue} - break}} - return [0,acc$1[1],output_array]} - function fold_right$2(f,a,x) - {var r=[0,x],_zH_=a.length - 1 - 1 | 0; - if(_zH_ >= 0) - {var i=_zH_; - for(;;) - {r[1] = caml_call2(f,a[1 + i],r[1]); - var _zI_=i - 1 | 0; - if(0 !== i){var i=_zI_;continue} - break}} - return r[1]} - function exists$3(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,a[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0}} - function for_all$3(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 1; - if(! caml_call1(p,a[1 + i]))return 0; - var i$0=i + 1 | 0,i=i$0}} - function for_all2$1(p,l1,l2) - {var n1=l1.length - 1,n2=l2.length - 1; - if(n1 !== n2)return invalid_arg(cst_Array_for_all2); - var i=0; - for(;;) - {if(i === n1)return 1; - if(! caml_call2(p,l1[1 + i],l2[1 + i]))return 0; - var i$0=i + 1 | 0,i=i$0}} - function exists2$1(p,l1,l2) - {var n1=l1.length - 1,n2=l2.length - 1; - if(n1 !== n2)return invalid_arg(cst_Array_exists2); - var i=0; - for(;;) - {if(i === n1)return 0; - if(caml_call2(p,l1[1 + i],l2[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0}} - function mem$0(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(0 === caml_compare(a[1 + i],x))return 1; - var i$0=i + 1 | 0,i=i$0}} - function memq$0(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(x === a[1 + i])return 1; - var i$0=i + 1 | 0,i=i$0}} - function find_opt$0(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - var x=a[1 + i]; - if(caml_call1(p,x))return [0,x]; - var i$0=i + 1 | 0,i=i$0}} - function find_map$1(f,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - var r=caml_call1(f,a[1 + i]); - if(r)return r; - var i$0=i + 1 | 0,i=i$0}} - function split$0(x) - {if(caml_equal(x,[0]))return [0,[0],[0]]; - var - match=x[1], - b0=match[2], - a0=match[1], - n=x.length - 1, - a=caml_make_vect(n,a0), - b=caml_make_vect(n,b0), - _zF_=n - 1 | 0, - _zE_=1; - if(_zF_ >= 1) - {var i=_zE_; - for(;;) - {var match$0=x[1 + i],bi=match$0[2],ai=match$0[1]; - a[1 + i] = ai; - b[1 + i] = bi; - var _zG_=i + 1 | 0; - if(_zF_ !== i){var i=_zG_;continue} - break}} - return [0,a,b]} - function combine$0(a,b) - {var na=a.length - 1,nb=b.length - 1; - if(na !== nb)invalid_arg(cst_Array_combine); - if(0 === na)return [0]; - var x=caml_make_vect(na,[0,a[1],b[1]]),_zC_=na - 1 | 0,_zB_=1; - if(_zC_ >= 1) - {var i=_zB_; - for(;;) - {x[1 + i] = [0,a[1 + i],b[1 + i]]; - var _zD_=i + 1 | 0; - if(_zC_ !== i){var i=_zD_;continue} - break}} - return x} - var Bottom=[248,cst_Stdlib_Array_Bottom,caml_fresh_oo_id(0)]; - function sort(cmp,a) - {function maxson(l,i) - {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; - if((i31 + 2 | 0) < l) - {var _zu_=i31 + 1 | 0,_zv_=caml_check_bound(a,_zu_)[1 + _zu_]; - if(caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zv_) < 0) - x[1] = i31 + 1 | 0; - var - _zw_=i31 + 2 | 0, - _zx_=caml_check_bound(a,_zw_)[1 + _zw_], - _zy_=x[1]; - if(caml_call2(cmp,caml_check_bound(a,_zy_)[1 + _zy_],_zx_) < 0) - x[1] = i31 + 2 | 0; - return x[1]} - if((i31 + 1 | 0) < l) - {var _zz_=i31 + 1 | 0,_zA_=caml_check_bound(a,_zz_)[1 + _zz_]; - if(0 > caml_call2(cmp,caml_check_bound(a,i31)[1 + i31],_zA_)) - return i31 + 1 | 0} - if(i31 < l)return i31; - throw [0,Bottom,i]} - function trickledown(l,i,e) - {var i$0=i; - for(;;) - {var j=maxson(l,i$0); - if(0 < caml_call2(cmp,caml_check_bound(a,j)[1 + j],e)) - {var _zt_=caml_check_bound(a,j)[1 + j]; - caml_check_bound(a,i$0)[1 + i$0] = _zt_; - var i$0=j; - continue} - caml_check_bound(a,i$0)[1 + i$0] = e; - return 0}} - function trickle(l,i,e) - {try - {var _zs_=trickledown(l,i,e);return _zs_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Bottom)throw exn; - var i$0=exn[2]; - caml_check_bound(a,i$0)[1 + i$0] = e; - return 0}} - function bubbledown(l,i) - {var i$0=i; - for(;;) - {var i$1=maxson(l,i$0),_zr_=caml_check_bound(a,i$1)[1 + i$1]; - caml_check_bound(a,i$0)[1 + i$0] = _zr_; - var i$0=i$1}} - function bubble(l,i) - {try - {var _zq_=bubbledown(l,i);return _zq_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Bottom)throw exn; - var i$0=exn[2]; - return i$0}} - var l=a.length - 1,_zi_=((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_zi_ >= 0) - {var i$2=_zi_; - for(;;) - {trickle(l,i$2,caml_check_bound(a,i$2)[1 + i$2]); - var _zp_=i$2 - 1 | 0; - if(0 !== i$2){var i$2=_zp_;continue} - break}} - var _zj_=l - 1 | 0; - if(_zj_ >= 2) - {var i$0=_zj_; - a: - for(;;) - {var - e$0=caml_check_bound(a,i$0)[1 + i$0], - _zn_=caml_check_bound(a,0)[1]; - caml_check_bound(a,i$0)[1 + i$0] = _zn_; - var i$1=bubble(i$0,0),i=i$1; - for(;;) - {var father=(i - 1 | 0) / 3 | 0; - if(i === father)throw [0,Assert_failure,_F_]; - if - (0 <= caml_call2(cmp,caml_check_bound(a,father)[1 + father],e$0)) - caml_check_bound(a,i)[1 + i] = e$0; - else - {var _zh_=caml_check_bound(a,father)[1 + father]; - caml_check_bound(a,i)[1 + i] = _zh_; - if(0 < father){var i=father;continue} - caml_check_bound(a,0)[1] = e$0} - var _zo_=i$0 - 1 | 0; - if(2 !== i$0){var i$0=_zo_;continue a} - break} - break}} - var _zk_=1 < l?1:0; - if(_zk_) - {var e=caml_check_bound(a,1)[2],_zl_=caml_check_bound(a,0)[1]; - caml_check_bound(a,1)[2] = _zl_; - caml_check_bound(a,0)[1] = e; - var _zm_=0} - else - var _zm_=_zk_; - return _zm_} - function fast_sort$0(cmp,a) - {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) - {var - src1r=src1ofs + src1len | 0, - src2r=src2ofs + src2len | 0, - s2$1=caml_check_bound(src2,src2ofs)[1 + src2ofs], - s1$1=caml_check_bound(a,src1ofs)[1 + src1ofs], - i1=src1ofs, - s1=s1$1, - i2=src2ofs, - s2=s2$1, - d=dstofs; - for(;;) - {if(0 < caml_call2(cmp,s1,s2)) - {caml_check_bound(dst,d)[1 + d] = s2; - var i2$0=i2 + 1 | 0; - if(i2$0 >= src2r)return blit$1(a,i1,dst,d + 1 | 0,src1r - i1 | 0); - var - d$0=d + 1 | 0, - s2$0=caml_check_bound(src2,i2$0)[1 + i2$0], - i2=i2$0, - s2=s2$0, - d=d$0; - continue} - caml_check_bound(dst,d)[1 + d] = s1; - var i1$0=i1 + 1 | 0; - if(i1$0 >= src1r) - return blit$1(src2,i2,dst,d + 1 | 0,src2r - i2 | 0); - var - d$1=d + 1 | 0, - s1$0=caml_check_bound(a,i1$0)[1 + i1$0], - i1=i1$0, - s1=s1$0, - d=d$1}} - function isortto(srcofs,dst,dstofs,len) - {var _y$_=len - 1 | 0,_y__=0; - if(_y$_ >= 0) - {var i=_y__; - a: - for(;;) - {var - _za_=srcofs + i | 0, - e=caml_check_bound(a,_za_)[1 + _za_], - j=[0,(dstofs + i | 0) - 1 | 0]; - for(;;) - {if(dstofs <= j[1]) - {var _zb_=j[1]; - if(0 < caml_call2(cmp,caml_check_bound(dst,_zb_)[1 + _zb_],e)) - {var - _zc_=j[1], - _zd_=caml_check_bound(dst,_zc_)[1 + _zc_], - _ze_=j[1] + 1 | 0; - caml_check_bound(dst,_ze_)[1 + _ze_] = _zd_; - j[1] += -1; - continue}} - var _zf_=j[1] + 1 | 0; - caml_check_bound(dst,_zf_)[1 + _zf_] = e; - var _zg_=i + 1 | 0; - if(_y$_ !== i){var i=_zg_;continue a} - break} - break}} - return 0} - function sortto(srcofs,dst,dstofs,len) - {if(len <= 5)return isortto(srcofs,dst,dstofs,len); - var l1=len / 2 | 0,l2=len - l1 | 0; - sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); - sortto(srcofs,a,srcofs + l2 | 0,l1); - return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} - var l=a.length - 1; - if(l <= 5)return isortto(0,a,0,l); - var - l1=l / 2 | 0, - l2=l - l1 | 0, - t=caml_make_vect(l2,caml_check_bound(a,0)[1]); - sortto(l1,t,0,l2); - sortto(0,a,l2,l1); - return merge(l2,l1,t,0,l2,a,0)} - function to_seq$4(a) - {function aux(i,param) - {if(i >= a.length - 1)return 0; - var x=a[1 + i],_y8_=i + 1 | 0; - return [0,x,function(_y9_){return aux(_y8_,_y9_)}]} - var _y6_=0; - return function(_y7_){return aux(_y6_,_y7_)}} - function to_seqi$1(a) - {function aux(i,param) - {if(i >= a.length - 1)return 0; - var x=a[1 + i],_y4_=i + 1 | 0; - return [0,[0,i,x],function(_y5_){return aux(_y4_,_y5_)}]} - var _y2_=0; - return function(_y3_){return aux(_y2_,_y3_)}} - function of_seq$2(i$2) - {var _y1_=0,l=fold_left(function(acc,x){return [0,x,acc]},_y1_,i$2); - if(! l)return [0]; - var - tl=l[2], - hd=l[1], - len=list_length(0,l), - a=caml_make_vect(len,hd), - i$1=len - 2 | 0, - i=i$1, - param=tl; - for(;;) - {if(! param)return a; - var tl$0=param[2],hd$0=param[1]; - a[1 + i] = hd$0; - var i$0=i - 1 | 0,i=i$0,param=tl$0}} - var - concat$2=caml_array_concat, - include$3= - [0, - make_float, - init$3, - create_matrix, - create_matrix, - append$1, - concat$2, - sub$1, - copy$1, - fill$0, - blit$1, - to_list$1, - of_list, - iter$5, - iteri$3, - map$7, - mapi$3, - fold_left$3, - fold_left_map$0, - fold_right$2, - iter2$1, - map2$1, - for_all$3, - exists$3, - for_all2$1, - exists2$1, - mem$0, - memq$0, - find_opt$0, - find_map$1, - split$0, - combine$0, - sort, - fast_sort$0, - fast_sort$0, - to_seq$4, - to_seqi$1, - of_seq$2, - Floatarray]; - caml_register_global(794,include$3,"Stdlib__Array"); - var zero$0=0.,one$0=1.,minus_one$0=-1.; - function is_finite(x){return x - x == 0.?1:0} - function is_infinite(x){return 1. / x == 0.?1:0} - function is_nan(x){return x != x?1:0} - var pi=3.14159265358979312; - function is_integer(x) - {var _y0_=x == runtime.caml_trunc_float(x)?1:0; - return _y0_?is_finite(x):_y0_} - function succ$0(x){return caml_nextafter_float(x,infinity)} - function pred$0(x){return caml_nextafter_float(x,neg_infinity)} - function equal$11(x,y){return 0 === caml_float_compare(x,y)?1:0} - function min$2(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return x != x?x:y} - return y != y?y:x} - function max$2(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return y != y?y:x} - return x != x?x:y} - function min_max(x,y) - {if(x == x && y == y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return [0,y,x]} - return [0,x,y]} - return [0,nan,nan]} - function min_num(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return y != y?x:y} - return x != x?y:x} - function max_num(x,y) - {if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return x != x?y:x} - return y != y?x:y} - function min_max_num(x,y) - {if(x != x)return [0,y,y]; - if(y != y)return [0,x,x]; - if(! (x < y)) - {var switch$0=0; - if(caml_signbit_float(y) || ! caml_signbit_float(x))switch$0 = 1; - if(switch$0)return [0,y,x]} - return [0,x,y]} - function hash$0(x){return caml_hash(10,100,0,x)} - function unsafe_fill(a,ofs,len,v) - {var _yY_=(ofs + len | 0) - 1 | 0; - if(_yY_ >= ofs) - {var i=ofs; - for(;;) - {a[1 + i] = v; - var _yZ_=i + 1 | 0; - if(_yY_ !== i){var i=_yZ_;continue} - break}} - return 0} - function check(a,ofs,len,msg) - {var _yU_=ofs < 0?1:0; - if(_yU_) - var _yV_=_yU_; - else - {var _yW_=len < 0?1:0; - if(_yW_) - var _yV_=_yW_; - else - var - _yX_=(ofs + len | 0) < 0?1:0, - _yV_=_yX_ || (a.length - 1 < (ofs + len | 0)?1:0)} - return _yV_?invalid_arg(msg):_yV_} - function make$2(n,v) - {var result=caml_floatarray_create(n); - unsafe_fill(result,0,n,v); - return result} - function init$4(l,f) - {if(0 > l)return invalid_arg(cst_Float_Array_init); - var res=caml_floatarray_create(l),_yS_=l - 1 | 0,_yR_=0; - if(_yS_ >= 0) - {var i=_yR_; - for(;;) - {res[1 + i] = caml_call1(f,i); - var _yT_=i + 1 | 0; - if(_yS_ !== i){var i=_yT_;continue} - break}} - return res} - function append$2(a1,a2) - {var - l1=a1.length - 1, - l2=a2.length - 1, - result=caml_floatarray_create(l1 + l2 | 0); - caml_floatarray_blit(a1,0,result,0,l1); - caml_floatarray_blit(a2,0,result,l1,l2); - return result} - function concat$3(l) - {var acc=0,param=l; - for(;;) - {if(param) - {var - tl=param[2], - hd=param[1], - x=hd.length - 1 + acc | 0, - acc$0=acc <= x?x:invalid_arg(cst_Float_Array_concat), - acc=acc$0, - param=tl; - continue} - var result=caml_floatarray_create(acc),l$0=l,i=0; - for(;;) - {if(l$0) - {var tl$0=l$0[2],hd$0=l$0[1],hlen=hd$0.length - 1; - caml_floatarray_blit(hd$0,0,result,i,hlen); - var i$0=i + hlen | 0,l$0=tl$0,i=i$0; - continue} - if(i === acc)return result; - throw [0,Assert_failure,_G_]}}} - function sub$2(a,ofs,len) - {check(a,ofs,len,cst_Float_Array_sub); - var result=caml_floatarray_create(len); - caml_floatarray_blit(a,ofs,result,0,len); - return result} - function copy$2(a) - {var l=a.length - 1,result=caml_floatarray_create(l); - caml_floatarray_blit(a,0,result,0,l); - return result} - function fill$1(a,ofs,len,v) - {check(a,ofs,len,cst_Float_Array_fill);return unsafe_fill(a,ofs,len,v)} - function blit$2(src,sofs,dst,dofs,len) - {check(src,sofs,len,cst_Float_array_blit); - check(dst,dofs,len,cst_Float_array_blit$0); - return caml_floatarray_blit(src,sofs,dst,dofs,len)} - function to_list$2(a) - {return init$0(a.length - 1,function(_yQ_){return a[1 + _yQ_]})} - function of_list$0(l) - {var result=caml_floatarray_create(length$1(l)),i=0,l$0=l; - for(;;) - {if(! l$0)return result; - var t=l$0[2],h=l$0[1]; - result[1 + i] = h; - var i$0=i + 1 | 0,i=i$0,l$0=t}} - function iter$6(f,a) - {var _yO_=a.length - 1 - 1 | 0,_yN_=0; - if(_yO_ >= 0) - {var i=_yN_; - for(;;) - {caml_call1(f,a[1 + i]); - var _yP_=i + 1 | 0; - if(_yO_ !== i){var i=_yP_;continue} - break}} - return 0} - function iter2$2(f,a,b) - {if(a.length - 1 !== b.length - 1) - return invalid_arg(cst_Float_Array_iter2_arrays_m); - var _yL_=a.length - 1 - 1 | 0,_yK_=0; - if(_yL_ >= 0) - {var i=_yK_; - for(;;) - {caml_call2(f,a[1 + i],b[1 + i]); - var _yM_=i + 1 | 0; - if(_yL_ !== i){var i=_yM_;continue} - break}} - return 0} - function map$8(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_yI_=l - 1 | 0,_yH_=0; - if(_yI_ >= 0) - {var i=_yH_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _yJ_=i + 1 | 0; - if(_yI_ !== i){var i=_yJ_;continue} - break}} - return r} - function map2$2(f,a,b) - {var la=a.length - 1,lb=b.length - 1; - if(la !== lb)return invalid_arg(cst_Float_Array_map2_arrays_mu); - var r=caml_floatarray_create(la),_yF_=la - 1 | 0,_yE_=0; - if(_yF_ >= 0) - {var i=_yE_; - for(;;) - {r[1 + i] = caml_call2(f,a[1 + i],b[1 + i]); - var _yG_=i + 1 | 0; - if(_yF_ !== i){var i=_yG_;continue} - break}} - return r} - function iteri$4(f,a) - {var _yC_=a.length - 1 - 1 | 0,_yB_=0; - if(_yC_ >= 0) - {var i=_yB_; - for(;;) - {caml_call2(f,i,a[1 + i]); - var _yD_=i + 1 | 0; - if(_yC_ !== i){var i=_yD_;continue} - break}} - return 0} - function mapi$4(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_yz_=l - 1 | 0,_yy_=0; - if(_yz_ >= 0) - {var i=_yy_; - for(;;) - {r[1 + i] = caml_call2(f,i,a[1 + i]); - var _yA_=i + 1 | 0; - if(_yz_ !== i){var i=_yA_;continue} - break}} - return r} - function fold_left$4(f,x,a) - {var r=[0,x],_yw_=a.length - 1 - 1 | 0,_yv_=0; - if(_yw_ >= 0) - {var i=_yv_; - for(;;) - {r[1] = caml_call2(f,r[1],a[1 + i]); - var _yx_=i + 1 | 0; - if(_yw_ !== i){var i=_yx_;continue} - break}} - return r[1]} - function fold_right$3(f,a,x) - {var r=[0,x],_yt_=a.length - 1 - 1 | 0; - if(_yt_ >= 0) - {var i=_yt_; - for(;;) - {r[1] = caml_call2(f,a[1 + i],r[1]); - var _yu_=i - 1 | 0; - if(0 !== i){var i=_yu_;continue} - break}} - return r[1]} - function exists$4(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(caml_call1(p,a[1 + i]))return 1; - var i$0=i + 1 | 0,i=i$0}} - function for_all$4(p,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 1; - if(! caml_call1(p,a[1 + i]))return 0; - var i$0=i + 1 | 0,i=i$0}} - function mem$1(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0; - if(0 === caml_float_compare(a[1 + i],x))return 1; - var i$0=i + 1 | 0,i=i$0}} - function mem_ieee(x,a) - {var n=a.length - 1,i=0; - for(;;) - {if(i === n)return 0;if(x == a[1 + i])return 1;var i$0=i + 1 | 0,i=i$0}} - var Bottom$0=[248,cst_Stdlib_Float_Array_Bottom,caml_fresh_oo_id(0)]; - function sort$0(cmp,a) - {function maxson(l,i) - {var i31=((i + i | 0) + i | 0) + 1 | 0,x=[0,i31]; - if((i31 + 2 | 0) < l) - {if - (caml_call2 - (cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0)) - < - 0) - x[1] = i31 + 1 | 0; - if - (caml_call2 - (cmp,caml_array_get(a,x[1]),caml_array_get(a,i31 + 2 | 0)) - < - 0) - x[1] = i31 + 2 | 0; - return x[1]} - if - ((i31 + 1 | 0) - < - l - && - 0 - > - caml_call2(cmp,caml_array_get(a,i31),caml_array_get(a,i31 + 1 | 0))) - return i31 + 1 | 0; - if(i31 < l)return i31; - throw [0,Bottom$0,i]} - function trickledown(l,i,e) - {var i$0=i; - for(;;) - {var j=maxson(l,i$0); - if(0 >= caml_call2(cmp,caml_array_get(a,j),e)) - return caml_array_set(a,i$0,e); - caml_array_set(a,i$0,caml_array_get(a,j)); - var i$0=j}} - function trickle(l,i,e) - {try - {var _ys_=trickledown(l,i,e);return _ys_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Bottom$0)throw exn; - var i$0=exn[2]; - return caml_array_set(a,i$0,e)}} - function bubbledown(l,i) - {var i$0=i; - for(;;) - {var i$1=maxson(l,i$0); - caml_array_set(a,i$0,caml_array_get(a,i$1)); - var i$0=i$1}} - function bubble(l,i) - {try - {var _yr_=bubbledown(l,i);return _yr_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Bottom$0)throw exn; - var i$0=exn[2]; - return i$0}} - var l=a.length - 1,_yl_=((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_yl_ >= 0) - {var i$2=_yl_; - for(;;) - {trickle(l,i$2,caml_array_get(a,i$2)); - var _yq_=i$2 - 1 | 0; - if(0 !== i$2){var i$2=_yq_;continue} - break}} - var _ym_=l - 1 | 0; - if(_ym_ >= 2) - {var i$0=_ym_; - a: - for(;;) - {var e$0=caml_array_get(a,i$0); - caml_array_set(a,i$0,caml_array_get(a,0)); - var i$1=bubble(i$0,0),i=i$1; - for(;;) - {var father=(i - 1 | 0) / 3 | 0; - if(i === father)throw [0,Assert_failure,_H_]; - if(0 <= caml_call2(cmp,caml_array_get(a,father),e$0)) - caml_array_set(a,i,e$0); - else - {caml_array_set(a,i,caml_array_get(a,father)); - if(0 < father){var i=father;continue} - caml_array_set(a,0,e$0)} - var _yp_=i$0 - 1 | 0; - if(2 !== i$0){var i$0=_yp_;continue a} - break} - break}} - var _yn_=1 < l?1:0; - if(_yn_) - {var e=caml_array_get(a,1); - caml_array_set(a,1,caml_array_get(a,0)); - var _yo_=caml_array_set(a,0,e)} - else - var _yo_=_yn_; - return _yo_} - function stable_sort(cmp,a) - {function merge(src1ofs,src1len,src2,src2ofs,src2len,dst,dstofs) - {var - src1r=src1ofs + src1len | 0, - src2r=src2ofs + src2len | 0, - s2$1=caml_array_get(src2,src2ofs), - s1$1=caml_array_get(a,src1ofs), - i1=src1ofs, - s1=s1$1, - i2=src2ofs, - s2=s2$1, - d=dstofs; - for(;;) - {if(0 < caml_call2(cmp,s1,s2)) - {caml_array_set(dst,d,s2); - var i2$0=i2 + 1 | 0; - if(i2$0 >= src2r)return blit$2(a,i1,dst,d + 1 | 0,src1r - i1 | 0); - var - d$0=d + 1 | 0, - s2$0=caml_array_get(src2,i2$0), - i2=i2$0, - s2=s2$0, - d=d$0; - continue} - caml_array_set(dst,d,s1); - var i1$0=i1 + 1 | 0; - if(i1$0 >= src1r) - return blit$2(src2,i2,dst,d + 1 | 0,src2r - i2 | 0); - var d$1=d + 1 | 0,s1$0=caml_array_get(a,i1$0),i1=i1$0,s1=s1$0,d=d$1}} - function isortto(srcofs,dst,dstofs,len) - {var _yj_=len - 1 | 0,_yi_=0; - if(_yj_ >= 0) - {var i=_yi_; - a: - for(;;) - {var - e=caml_array_get(a,srcofs + i | 0), - j=[0,(dstofs + i | 0) - 1 | 0]; - for(;;) - {if - (dstofs - <= - j[1] - && - 0 - < - caml_call2(cmp,caml_array_get(dst,j[1]),e)) - {caml_array_set(dst,j[1] + 1 | 0,caml_array_get(dst,j[1])); - j[1] += -1; - continue} - caml_array_set(dst,j[1] + 1 | 0,e); - var _yk_=i + 1 | 0; - if(_yj_ !== i){var i=_yk_;continue a} - break} - break}} - return 0} - function sortto(srcofs,dst,dstofs,len) - {if(len <= 5)return isortto(srcofs,dst,dstofs,len); - var l1=len / 2 | 0,l2=len - l1 | 0; - sortto(srcofs + l1 | 0,dst,dstofs + l1 | 0,l2); - sortto(srcofs,a,srcofs + l2 | 0,l1); - return merge(srcofs + l2 | 0,l1,dst,dstofs + l1 | 0,l2,dst,dstofs)} - var l=a.length - 1; - if(l <= 5)return isortto(0,a,0,l); - var l1=l / 2 | 0,l2=l - l1 | 0,t=caml_floatarray_create(l2); - sortto(l1,t,0,l2); - sortto(0,a,l2,l1); - return merge(l2,l1,t,0,l2,a,0)} - function to_seq$5(a) - {function aux(i,param) - {if(i >= a.length - 1)return 0; - var x=a[1 + i],_yg_=i + 1 | 0; - return [0,x,function(_yh_){return aux(_yg_,_yh_)}]} - var _ye_=0; - return function(_yf_){return aux(_ye_,_yf_)}} - function to_seqi$2(a) - {function aux(i,param) - {if(i >= a.length - 1)return 0; - var x=a[1 + i],_yc_=i + 1 | 0; - return [0,[0,i,x],function(_yd_){return aux(_yc_,_yd_)}]} - var _ya_=0; - return function(_yb_){return aux(_ya_,_yb_)}} - function of_seq$3(i$2) - {var - _x$_=0, - param$0=fold_left(function(acc,x){return [0,x,acc]},_x$_,i$2), - len=length$1(param$0), - a=caml_floatarray_create(len), - i$1=len - 1 | 0, - i=i$1, - param=param$0; - for(;;) - {if(! param)return a; - var tl=param[2],hd=param[1]; - a[1 + i] = hd; - var i$0=i - 1 | 0,i=i$0,param=tl}} - function map_to_array(f,a) - {var l=a.length - 1; - if(0 === l)return [0]; - var r=caml_make_vect(l,caml_call1(f,a[1])),_x9_=l - 1 | 0,_x8_=1; - if(_x9_ >= 1) - {var i=_x8_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _x__=i + 1 | 0; - if(_x9_ !== i){var i=_x__;continue} - break}} - return r} - function map_from_array(f,a) - {var l=a.length - 1,r=caml_floatarray_create(l),_x6_=l - 1 | 0,_x5_=0; - if(_x6_ >= 0) - {var i=_x5_; - for(;;) - {r[1 + i] = caml_call1(f,a[1 + i]); - var _x7_=i + 1 | 0; - if(_x6_ !== i){var i=_x7_;continue} - break}} - return r} - var - _I_=caml_floatarray_create, - _J_=caml_array_set, - _K_=caml_array_get, - _L_= - [0, - function(_x4_){return _x4_.length - 1}, - _K_, - _J_, - make$2, - _I_, - init$4, - append$2, - concat$3, - sub$2, - copy$2, - fill$1, - blit$2, - to_list$2, - of_list$0, - iter$6, - iteri$4, - map$8, - mapi$4, - fold_left$4, - fold_right$3, - iter2$2, - map2$2, - for_all$4, - exists$4, - mem$1, - mem_ieee, - sort$0, - stable_sort, - stable_sort, - to_seq$5, - to_seqi$2, - of_seq$3, - map_to_array, - map_from_array], - _M_=caml_floatarray_create, - _N_=caml_array_set, - _O_=caml_array_get, - Stdlib_Float= - [0, - zero$0, - one$0, - minus_one$0, - succ$0, - pred$0, - infinity, - neg_infinity, - nan, - pi, - max_float, - min_float, - epsilon, - is_finite, - is_infinite, - is_nan, - is_integer, - of_string_opt, - to_string, - caml_float_compare, - equal$11, - min$2, - max$2, - min_max, - min_num, - max_num, - min_max_num, - hash$0, - [0, - function(_x3_){return _x3_.length - 1}, - _O_, - _N_, - make$2, - _M_, - init$4, - append$2, - concat$3, - sub$2, - copy$2, - fill$1, - blit$2, - to_list$2, - of_list$0, - iter$6, - iteri$4, - map$8, - mapi$4, - fold_left$4, - fold_right$3, - iter2$2, - map2$2, - for_all$4, - exists$4, - mem$1, - mem_ieee, - sort$0, - stable_sort, - stable_sort, - to_seq$5, - to_seqi$2, - of_seq$3, - map_to_array, - map_from_array], - _L_]; - caml_register_global(795,Stdlib_Float,"Stdlib__Float"); - var zero$1=0,one$1=1,minus_one$1=-1; - function succ$1(n){return n + 1 | 0} - function pred$1(n){return n - 1 | 0} - function abs$1(n){return caml_greaterequal(n,0)?n:- n | 0} - var min_int$1=-2147483648,max_int$1=2147483647; - function lognot$0(n){return n ^ -1} - function unsigned_to_int(n) - {if(0 >= caml_int_compare(0,n) && 0 >= caml_int_compare(n,2147483647)) - return [0,n]; - return 0} - function to_string$3(n){return caml_format_int(cst_d,n)} - function of_string_opt$0(s) - {try - {var _x1_=[0,caml_int_of_string(s)];return _x1_} - catch(_x2_) - {_x2_ = caml_wrap_exception(_x2_); - if(_x2_[1] === Failure)return 0; - throw _x2_}} - function compare$11(x,y){return caml_int_compare(x,y)} - function equal$12(x,y){return 0 === caml_int_compare(x,y)?1:0} - function unsigned_compare(n,m) - {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} - function min$3(x,y){return caml_lessequal(x,y)?x:y} - function max$3(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div(n,d) - {if(caml_lessthan(d,0))return 0 <= unsigned_compare(n,d)?one$1:zero$1; - var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; - return 0 <= unsigned_compare(r,d)?q + 1 | 0:q} - function unsigned_rem(n,d){return n - caml_mul(unsigned_div(n,d),d) | 0} - var - Stdlib_Int32= - [0, - zero$1, - one$1, - minus_one$1, - unsigned_div, - unsigned_rem, - succ$1, - pred$1, - abs$1, - max_int$1, - min_int$1, - lognot$0, - unsigned_to_int, - of_string_opt$0, - to_string$3, - compare$11, - unsigned_compare, - equal$12, - min$3, - max$3]; - caml_register_global(796,Stdlib_Int32,"Stdlib__Int32"); - function succ$2(n){return caml_int64_add(n,_P_)} - function pred$2(n){return caml_int64_sub(n,_Q_)} - function abs$2(n) - {return caml_greaterequal(n,_R_)?n:runtime.caml_int64_neg(n)} - function lognot$1(n){return runtime.caml_int64_xor(n,_S_)} - var max_int$3=caml_int64_of_int32(2147483647); - function unsigned_to_int$0(n) - {if - (0 - >= - caml_int64_compare(zero$2,n) - && - 0 - >= - caml_int64_compare(n,max_int$3)) - return [0,runtime.caml_int64_to_int32(n)]; - return 0} - function to_string$4(n){return caml_int64_format(cst_d$0,n)} - function of_string_opt$1(s) - {try - {var _xZ_=[0,caml_int64_of_string(s)];return _xZ_} - catch(_x0_) - {_x0_ = caml_wrap_exception(_x0_); - if(_x0_[1] === Failure)return 0; - throw _x0_}} - function compare$12(x,y){return caml_int64_compare(x,y)} - function equal$13(x,y){return 0 === caml_int64_compare(x,y)?1:0} - function unsigned_compare$0(n,m) - {return caml_int64_compare - (caml_int64_sub(n,min_int$2),caml_int64_sub(m,min_int$2))} - function min$4(x,y){return caml_lessequal(x,y)?x:y} - function max$4(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div$0(n,d) - {if(caml_lessthan(d,zero$2)) - return 0 <= unsigned_compare$0(n,d)?one$2:zero$2; - var - q= - caml_int64_shift_left - (runtime.caml_int64_div(caml_int64_shift_right_unsigne(n,1),d),1), - r=caml_int64_sub(n,caml_int64_mul(q,d)); - return 0 <= unsigned_compare$0(r,d)?succ$2(q):q} - function unsigned_rem$0(n,d) - {return caml_int64_sub(n,caml_int64_mul(unsigned_div$0(n,d),d))} - var - Stdlib_Int64= - [0, - zero$2, - one$2, - minus_one$2, - unsigned_div$0, - unsigned_rem$0, - succ$2, - pred$2, - abs$2, - max_int$2, - min_int$2, - lognot$1, - unsigned_to_int$0, - of_string_opt$1, - to_string$4, - compare$12, - unsigned_compare$0, - equal$13, - min$4, - max$4]; - caml_register_global(797,Stdlib_Int64,"Stdlib__Int64"); - var zero$3=0,one$3=1,minus_one$3=-1; - function succ$3(n){return n + 1 | 0} - function pred$3(n){return n - 1 | 0} - function abs$3(n){return caml_greaterequal(n,0)?n:- n | 0} - var min_int$3=-2147483648,max_int$4=2147483647; - function lognot$2(n){return n ^ -1} - function unsigned_to_int$1(n) - {if(0 >= caml_int_compare(0,n) && 0 >= caml_int_compare(n,2147483647)) - return [0,n]; - return 0} - function to_string$5(n){return caml_format_int(cst_d$1,n)} - function of_string_opt$2(s) - {try - {var _xX_=[0,caml_int_of_string(s)];return _xX_} - catch(_xY_) - {_xY_ = caml_wrap_exception(_xY_); - if(_xY_[1] === Failure)return 0; - throw _xY_}} - function compare$13(x,y){return caml_int_compare(x,y)} - function equal$14(x,y){return 0 === caml_int_compare(x,y)?1:0} - function unsigned_compare$1(n,m) - {return caml_int_compare(n + 2147483648 | 0,m + 2147483648 | 0)} - function min$5(x,y){return caml_lessequal(x,y)?x:y} - function max$5(x,y){return caml_greaterequal(x,y)?x:y} - function unsigned_div$1(n,d) - {if(caml_lessthan(d,0))return 0 <= unsigned_compare$1(n,d)?one$3:zero$3; - var q=caml_div(n >>> 1 | 0,d) << 1,r=n - caml_mul(q,d) | 0; - return 0 <= unsigned_compare$1(r,d)?q + 1 | 0:q} - function unsigned_rem$1(n,d) - {return n - caml_mul(unsigned_div$1(n,d),d) | 0} - var - Stdlib_Nativeint= - [0, - zero$3, - one$3, - minus_one$3, - unsigned_div$1, - unsigned_rem$1, - succ$3, - pred$3, - abs$3, - match$1, - max_int$4, - min_int$3, - lognot$2, - unsigned_to_int$1, - of_string_opt$2, - to_string$5, - compare$13, - unsigned_compare$1, - equal$14, - min$5, - max$5]; - caml_register_global(798,Stdlib_Nativeint,"Stdlib__Nativeint"); - function engine(tbl,state,buf) - {var - result=runtime.caml_lex_engine(tbl,state,buf), - _xU_=0 <= result?1:0, - _xV_=_xU_?buf[12] !== dummy_pos?1:0:_xU_; - if(_xV_) - {buf[11] = buf[12]; - var _xW_=buf[12]; - buf[12] = [0,_xW_[1],_xW_[2],_xW_[3],buf[4] + buf[6] | 0]} - return result} - function new_engine(tbl,state,buf) - {var - result=runtime.caml_new_lex_engine(tbl,state,buf), - _xR_=0 <= result?1:0, - _xS_=_xR_?buf[12] !== dummy_pos?1:0:_xR_; - if(_xS_) - {buf[11] = buf[12]; - var _xT_=buf[12]; - buf[12] = [0,_xT_[1],_xT_[2],_xT_[3],buf[4] + buf[6] | 0]} - return result} - function from_function(opt,f) - {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; - var - _xD_=with_positions?zero_pos:dummy_pos, - _xE_=with_positions?zero_pos:dummy_pos, - aux_buffer=caml_create_bytes(512), - _xF_=[0], - _xG_=0, - _xH_=0, - _xI_=0, - _xJ_=0, - _xK_=0, - _xL_=0, - _xM_=0, - _xN_=caml_create_bytes(1024); - return [0, - function(lexbuf) - {var - read= - caml_call2(f,aux_buffer,caml_ml_bytes_length(aux_buffer)), - n=0 < read?read:(lexbuf[9] = 1,0); - if(caml_ml_bytes_length(lexbuf[2]) < (lexbuf[3] + n | 0)) - {if - (((lexbuf[3] - lexbuf[5] | 0) + n | 0) - <= - caml_ml_bytes_length(lexbuf[2])) - blit - (lexbuf[2],lexbuf[5],lexbuf[2],0,lexbuf[3] - lexbuf[5] | 0); - else - {var - newlen= - min$1 - (2 * caml_ml_bytes_length(lexbuf[2]) | 0,max_string_length); - if(newlen < ((lexbuf[3] - lexbuf[5] | 0) + n | 0)) - failwith(cst_Lexing_lex_refill_cannot_g); - var newbuf=caml_create_bytes(newlen); - blit(lexbuf[2],lexbuf[5],newbuf,0,lexbuf[3] - lexbuf[5] | 0); - lexbuf[2] = newbuf} - var s=lexbuf[5]; - lexbuf[4] = lexbuf[4] + s | 0; - lexbuf[6] = lexbuf[6] - s | 0; - lexbuf[5] = 0; - lexbuf[7] = lexbuf[7] - s | 0; - lexbuf[3] = lexbuf[3] - s | 0; - var t=lexbuf[10],_xP_=t.length - 1 - 1 | 0,_xO_=0; - if(_xP_ >= 0) - {var i=_xO_; - for(;;) - {var v=caml_check_bound(t,i)[1 + i]; - if(0 <= v)caml_check_bound(t,i)[1 + i] = v - s | 0; - var _xQ_=i + 1 | 0; - if(_xP_ !== i){var i=_xQ_;continue} - break}}} - blit(aux_buffer,0,lexbuf[2],lexbuf[3],n); - lexbuf[3] = lexbuf[3] + n | 0; - return 0}, - _xN_, - _xM_, - _xL_, - _xK_, - _xJ_, - _xI_, - _xH_, - _xG_, - _xF_, - _xE_, - _xD_]} - function from_channel(with_positions,ic) - {return from_function - (with_positions,function(buf,n){return input(ic,buf,0,n)})} - function from_string$0(opt,s) - {if(opt)var sth=opt[1],with_positions=sth;else var with_positions=1; - var - _xs_=with_positions?zero_pos:dummy_pos, - _xt_=with_positions?zero_pos:dummy_pos, - _xu_=[0], - _xv_=1, - _xw_=0, - _xx_=0, - _xy_=0, - _xz_=0, - _xA_=0, - _xB_=caml_ml_string_length(s), - _xC_=to_bytes(s); - return [0, - function(lexbuf){lexbuf[9] = 1;return 0}, - _xC_, - _xB_, - _xA_, - _xz_, - _xy_, - _xx_, - _xw_, - _xv_, - _xu_, - _xt_, - _xs_]} - function set_position(lexbuf,position) - {lexbuf[12] = [0,lexbuf[12][1],position[2],position[3],position[4]]; - lexbuf[4] = position[4]; - return 0} - function set_filename(lexbuf,fname) - {var _xr_=lexbuf[12]; - lexbuf[12] = [0,fname,_xr_[2],_xr_[3],_xr_[4]]; - return 0} - function with_positions(lexbuf){return lexbuf[12] !== dummy_pos?1:0} - function lexeme(lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return sub_string(lexbuf[2],lexbuf[5],len)} - function sub_lexeme(lexbuf,i1,i2) - {var len=i2 - i1 | 0;return sub_string(lexbuf[2],i1,len)} - function sub_lexeme_opt(lexbuf,i1,i2) - {if(0 > i1)return 0; - var len=i2 - i1 | 0; - return [0,sub_string(lexbuf[2],i1,len)]} - function sub_lexeme_char(lexbuf,i){return caml_bytes_get(lexbuf[2],i)} - function sub_lexeme_char_opt(lexbuf,i) - {return 0 <= i?[0,caml_bytes_get(lexbuf[2],i)]:0} - function lexeme_char(lexbuf,i) - {return caml_bytes_get(lexbuf[2],lexbuf[5] + i | 0)} - function lexeme_start(lexbuf){return lexbuf[11][4]} - function lexeme_end(lexbuf){return lexbuf[12][4]} - function lexeme_start_p(lexbuf){return lexbuf[11]} - function lexeme_end_p(lexbuf){return lexbuf[12]} - function new_line(lexbuf) - {var - lcp=lexbuf[12], - _xp_=lcp !== dummy_pos?1:0, - _xq_=_xp_?(lexbuf[12] = [0,lcp[1],lcp[2] + 1 | 0,lcp[4],lcp[4]],0):_xp_; - return _xq_} - function flush_input(lb) - {lb[6] = 0; - lb[4] = 0; - var lcp=lb[12]; - if(lcp !== dummy_pos) - lb[12] = [0,lcp[1],zero_pos[2],zero_pos[3],zero_pos[4]]; - lb[3] = 0; - return 0} - var - Stdlib_Lexing= - [0, - dummy_pos, - from_channel, - from_string$0, - from_function, - set_position, - set_filename, - with_positions, - lexeme, - lexeme_char, - lexeme_start, - lexeme_end, - lexeme_start_p, - lexeme_end_p, - new_line, - flush_input, - sub_lexeme, - sub_lexeme_opt, - sub_lexeme_char, - sub_lexeme_char_opt, - engine, - new_engine]; - caml_register_global(799,Stdlib_Lexing,"Stdlib__Lexing"); - var - YYexit=[248,cst_Stdlib_Parsing_YYexit,caml_fresh_oo_id(0)], - Parse_error=[248,cst_Stdlib_Parsing_Parse_error,caml_fresh_oo_id(0)], - env= - [0, - caml_make_vect(100,0), - caml_make_vect(100,0), - caml_make_vect(100,dummy_pos), - caml_make_vect(100,dummy_pos), - 100, - 0, - 0, - 0, - dummy_pos, - dummy_pos, - 0, - 0, - 0, - 0, - 0, - 0]; - function grow_stacks(param) - {var - oldsize=env[5], - newsize=oldsize * 2 | 0, - new_s=caml_make_vect(newsize,0), - new_v=caml_make_vect(newsize,0), - new_start=caml_make_vect(newsize,dummy_pos), - new_end=caml_make_vect(newsize,dummy_pos); - blit$1(env[1],0,new_s,0,oldsize); - env[1] = new_s; - blit$1(env[2],0,new_v,0,oldsize); - env[2] = new_v; - blit$1(env[3],0,new_start,0,oldsize); - env[3] = new_start; - blit$1(env[4],0,new_end,0,oldsize); - env[4] = new_end; - env[5] = newsize; - return 0} - function clear_parser(param) - {fill$0(env[2],0,env[5],0);env[8] = 0;return 0} - var current_lookahead_fun=[0,function(param){return 0}]; - function yyparse(tables,start,lexer,lexbuf) - {var - init_asp=env[11], - init_sp=env[14], - init_stackbase=env[6], - init_state=env[15], - init_curr_char=env[7], - init_lval=env[8], - init_errflag=env[16]; - env[6] = env[14] + 1 | 0; - env[7] = start; - env[10] = lexbuf[12]; - try - {var cmd=0,arg=0; - for(;;) - {var match=runtime.caml_parse_engine(tables,env,cmd,arg); - switch(match) - {case 0: - var arg$0=caml_call1(lexer,lexbuf); - env[9] = lexbuf[11]; - env[10] = lexbuf[12]; - var cmd=1,arg=arg$0; - continue; - case 1:throw Parse_error; - case 2:grow_stacks(0);var cmd=2,arg=0;continue; - case 3:grow_stacks(0);var cmd=3,arg=0;continue; - case 4: - try - {var - _xk_=env[13], - _xl_= - caml_call1(caml_check_bound(tables[1],_xk_)[1 + _xk_],env), - _xm_=4, - arg$1=_xl_, - cmd$0=_xm_} - catch(_xo_) - {_xo_ = caml_wrap_exception(_xo_); - if(_xo_ !== Parse_error)throw _xo_; - var arg$1=0,cmd$0=5} - var cmd=cmd$0,arg=arg$1; - continue; - default: - caml_call1(tables[14],cst_syntax_error);var cmd=5,arg=0;continue}}} - catch(exn) - {exn = caml_wrap_exception(exn); - var curr_char=env[7]; - env[11] = init_asp; - env[14] = init_sp; - env[6] = init_stackbase; - env[15] = init_state; - env[7] = init_curr_char; - env[8] = init_lval; - env[16] = init_errflag; - if(exn[1] === YYexit){var v=exn[2];return v} - current_lookahead_fun[1] - = - function(tok) - {if(! is_block(tok)) - return caml_check_bound(tables[2],tok)[1 + tok] === curr_char?1:0; - var _xn_=caml_obj_tag(tok); - return caml_check_bound(tables[3],_xn_)[1 + _xn_] === curr_char?1:0}; - throw exn}} - function peek_val(env,n) - {var _xj_=env[11] - n | 0;return caml_check_bound(env[2],_xj_)[1 + _xj_]} - function symbol_start_pos(param) - {var i=env[12]; - for(;;) - {if(0 >= i) - {var _xi_=env[11];return caml_check_bound(env[4],_xi_)[1 + _xi_]} - var - _xg_=(env[11] - i | 0) + 1 | 0, - st=caml_check_bound(env[3],_xg_)[1 + _xg_], - _xh_=(env[11] - i | 0) + 1 | 0, - en=caml_check_bound(env[4],_xh_)[1 + _xh_]; - if(caml_notequal(st,en))return st; - var i$0=i - 1 | 0,i=i$0}} - function symbol_end_pos(param) - {var _xf_=env[11];return caml_check_bound(env[4],_xf_)[1 + _xf_]} - function rhs_start_pos(n) - {var _xe_=env[11] - (env[12] - n | 0) | 0; - return caml_check_bound(env[3],_xe_)[1 + _xe_]} - function rhs_end_pos(n) - {var _xd_=env[11] - (env[12] - n | 0) | 0; - return caml_check_bound(env[4],_xd_)[1 + _xd_]} - function symbol_start(param){return symbol_start_pos(0)[4]} - function symbol_end(param){return symbol_end_pos(0)[4]} - function rhs_start(n){return rhs_start_pos(n)[4]} - function rhs_end(n){return rhs_end_pos(n)[4]} - function is_current_lookahead(tok) - {return caml_call1(current_lookahead_fun[1],tok)} - function parse_error(param){return 0} - var - Stdlib_Parsing= - [0, - symbol_start, - symbol_end, - rhs_start, - rhs_end, - symbol_start_pos, - symbol_end_pos, - rhs_start_pos, - rhs_end_pos, - clear_parser, - Parse_error, - runtime.caml_set_parser_trace, - YYexit, - yyparse, - peek_val, - is_current_lookahead, - parse_error]; - caml_register_global(800,Stdlib_Parsing,"Stdlib__Parsing"); - var - Stdlib_Set= - [0, - function(Ord) - {function height(param){if(! param)return 0;var h=param[4];return h} - function create(l,v,r) - {if(l)var h=l[4],hl=h;else var hl=0; - if(r)var h$0=r[4],hr=h$0;else var hr=0; - var _xc_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,v,r,_xc_]} - function bal(l,v,r) - {if(l)var h=l[4],hl=h;else var hl=0; - if(r)var h$0=r[4],hr=h$0;else var hr=0; - if((hr + 2 | 0) < hl) - {if(! l)return invalid_arg(cst_Set_bal$0); - var lr=l[3],lv=l[2],ll=l[1],_w9_=height(lr); - if(_w9_ <= height(ll))return create(ll,lv,create(lr,v,r)); - if(! lr)return invalid_arg(cst_Set_bal); - var lrr=lr[3],lrv=lr[2],lrl=lr[1],_w__=create(lrr,v,r); - return create(create(ll,lv,lrl),lrv,_w__)} - if((hl + 2 | 0) >= hr) - {var _xb_=hr <= hl?hl + 1 | 0:hr + 1 | 0;return [0,l,v,r,_xb_]} - if(! r)return invalid_arg(cst_Set_bal$2); - var rr=r[3],rv=r[2],rl=r[1],_w$_=height(rl); - if(_w$_ <= height(rr))return create(create(l,v,rl),rv,rr); - if(! rl)return invalid_arg(cst_Set_bal$1); - var rlr=rl[3],rlv=rl[2],rll=rl[1],_xa_=create(rlr,rv,rr); - return create(create(l,v,rll),rlv,_xa_)} - function add(x,t) - {if(! t)return [0,0,x,0,1]; - var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return t; - if(0 <= c){var rr=add(x,r);return r === rr?t:bal(l,v,rr)} - var ll=add(x,l); - return l === ll?t:bal(ll,v,r)} - function singleton(x){return [0,0,x,0,1]} - function add_min_element(x,param) - {if(! param)return singleton(x); - var r=param[3],v=param[2],l=param[1]; - return bal(add_min_element(x,l),v,r)} - function add_max_element(x,param) - {if(! param)return singleton(x); - var r=param[3],v=param[2],l=param[1]; - return bal(l,v,add_max_element(x,r))} - function join(l,v,r) - {if(! l)return add_min_element(v,r); - if(! r)return add_max_element(v,l); - var - rh=r[4], - rr=r[3], - rv=r[2], - rl=r[1], - lh=l[4], - lr=l[3], - lv=l[2], - ll=l[1]; - return (rh + 2 | 0) < lh - ?bal(ll,lv,join(lr,v,r)) - :(lh + 2 | 0) < rh?bal(join(l,v,rl),rv,rr):create(l,v,r)} - function min_elt(param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var _w8_=param$0[1]; - if(_w8_){var param$0=_w8_;continue} - var v=param$0[2]; - return v}} - function min_elt_opt(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var _w7_=param$0[1]; - if(_w7_){var param$0=_w7_;continue} - var v=param$0[2]; - return [0,v]}} - function max_elt(param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} - var v=param$0[2]; - return v}} - function max_elt_opt(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - if(param$0[3]){var param$1=param$0[3],param$0=param$1;continue} - var v=param$0[2]; - return [0,v]}} - function remove_min_elt(param) - {if(! param)return invalid_arg(cst_Set_remove_min_elt); - var _w6_=param[1]; - if(_w6_) - {var r=param[3],v=param[2];return bal(remove_min_elt(_w6_),v,r)} - var r$0=param[3]; - return r$0} - function concat(t1,t2) - {if(! t1)return t2; - if(! t2)return t1; - var _w5_=remove_min_elt(t2); - return join(t1,min_elt(t2),_w5_)} - function split(x,param) - {if(! param)return _T_; - var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,l,1,r]; - if(0 <= c) - {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; - return [0,join(l,v,lr),pres,rr]} - var - match$0=split(x,l), - rl=match$0[3], - pres$0=match$0[2], - ll=match$0[1]; - return [0,ll,pres$0,join(rl,v,r)]} - var empty=0; - function is_empty(param){return param?0:1} - function mem(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v), - _w4_=0 === c?1:0; - if(_w4_)return _w4_; - var param$1=0 <= c?r:l,param$0=param$1}} - function remove(x,t) - {if(! t)return 0; - var r=t[3],v=t[2],l=t[1],c=caml_call2(Ord[1],x,v); - if(0 === c) - {if(! l)return r; - if(! r)return l; - var _w3_=remove_min_elt(r); - return bal(l,min_elt(r),_w3_)} - if(0 <= c){var rr=remove(x,r);return r === rr?t:bal(l,v,rr)} - var ll=remove(x,l); - return l === ll?t:bal(ll,v,r)} - function union(s1,s2) - {if(! s1)return s2; - if(! s2)return s1; - var - h2=s2[4], - r2=s2[3], - v2=s2[2], - l2=s2[1], - h1=s1[4], - r1=s1[3], - v1=s1[2], - l1=s1[1]; - if(h2 <= h1) - {if(1 === h2)return add(v2,s1); - var - match=split(v1,s2), - r2$0=match[3], - l2$0=match[1], - _w1_=union(r1,r2$0); - return join(union(l1,l2$0),v1,_w1_)} - if(1 === h1)return add(v1,s2); - var - match$0=split(v2,s1), - r1$0=match$0[3], - l1$0=match$0[1], - _w2_=union(r1$0,r2); - return join(union(l1$0,l2),v2,_w2_)} - function inter(s1,s2) - {if(! s1)return 0; - if(! s2)return 0; - var r1=s1[3],v1=s1[2],l1=s1[1],_wX_=split(v1,s2),_wY_=_wX_[1]; - if(_wX_[2]) - {var r2=_wX_[3],_wZ_=inter(r1,r2); - return join(inter(l1,_wY_),v1,_wZ_)} - var r2$0=_wX_[3],_w0_=inter(r1,r2$0); - return concat(inter(l1,_wY_),_w0_)} - function split_bis(x,param) - {if(! param)return [0,0,function(param){return 0}]; - var r=param[3],v=param[2],l=param[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return 0; - if(0 <= c) - {var match=split_bis(x,r); - if(! match)return 0; - var rr=match[2],lr=match[1]; - return [0,join(l,v,lr),rr]} - var match$0=split_bis(x,l); - if(! match$0)return 0; - var rl=match$0[2],ll=match$0[1]; - return [0,ll,function(param){return join(caml_call1(rl,0),v,r)}]} - function disjoint(s1,s2) - {var s1$0=s1,s2$0=s2; - for(;;) - {if(s1$0 && s2$0) - {var r1=s1$0[3],v1=s1$0[2],l1=s1$0[1]; - if(s1$0 === s2$0)return 0; - var match=split_bis(v1,s2$0); - if(! match)return 0; - var r2=match[2],l2=match[1],_wW_=disjoint(l1,l2); - if(! _wW_)return _wW_; - var s2$1=caml_call1(r2,0),s1$0=r1,s2$0=s2$1; - continue} - return 1}} - function diff(s1,s2) - {if(! s1)return 0; - if(! s2)return s1; - var r1=s1[3],v1=s1[2],l1=s1[1],_wS_=split(v1,s2),_wT_=_wS_[1]; - if(_wS_[2]) - {var r2=_wS_[3],_wU_=diff(r1,r2); - return concat(diff(l1,_wT_),_wU_)} - var r2$0=_wS_[3],_wV_=diff(r1,r2$0); - return join(diff(l1,_wT_),v1,_wV_)} - function cons_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(! s$0)return e$0; - var r=s$0[3],v=s$0[2],s$1=s$0[1],e$1=[0,v,r,e$0],s$0=s$1,e$0=e$1}} - function compare(s1,s2) - {var e2$2=cons_enum(s2,0),e1$2=cons_enum(s1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(! e1)return e2?-1:0; - if(! e2)return 1; - var - e2$0=e2[3], - r2=e2[2], - v2=e2[1], - e1$0=e1[3], - r1=e1[2], - v1=e1[1], - c=caml_call2(Ord[1],v1,v2); - if(0 !== c)return c; - var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1}} - function equal(s1,s2){return 0 === compare(s1,s2)?1:0} - function subset(s1,s2) - {var s1$0=s1,s2$0=s2; - for(;;) - {if(! s1$0)return 1; - if(! s2$0)return 0; - var - r2=s2$0[3], - v2=s2$0[2], - l2=s2$0[1], - r1=s1$0[3], - v1=s1$0[2], - l1=s1$0[1], - c=caml_call2(Ord[1],v1,v2); - if(0 === c) - {var _wP_=subset(l1,l2); - if(! _wP_)return _wP_; - var s1$0=r1,s2$0=r2; - continue} - if(0 <= c) - {var _wQ_=subset([0,0,v1,r1,0],r2); - if(! _wQ_)return _wQ_; - var s1$0=l1; - continue} - var _wR_=subset([0,l1,v1,0,0],l2); - if(! _wR_)return _wR_; - var s1$0=r1}} - function iter(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var r=param$0[3],v=param$0[2],l=param$0[1]; - iter(f,l); - caml_call1(f,v); - var param$0=r}} - function fold(f,s,accu) - {var s$0=s,accu$0=accu; - for(;;) - {if(! s$0)return accu$0; - var - r=s$0[3], - v=s$0[2], - l=s$0[1], - accu$1=caml_call2(f,v,fold(f,l,accu$0)), - s$0=r, - accu$0=accu$1}} - function for_all(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 1; - var r=param$0[3],v=param$0[2],l=param$0[1],_wM_=caml_call1(p,v); - if(_wM_) - {var _wN_=for_all(p,l); - if(_wN_){var param$0=r;continue} - var _wO_=_wN_} - else - var _wO_=_wM_; - return _wO_}} - function exists(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var r=param$0[3],v=param$0[2],l=param$0[1],_wJ_=caml_call1(p,v); - if(_wJ_) - var _wK_=_wJ_; - else - {var _wL_=exists(p,l); - if(! _wL_){var param$0=r;continue} - var _wK_=_wL_} - return _wK_}} - function filter(p,t) - {if(! t)return 0; - var - r=t[3], - v=t[2], - l=t[1], - l$0=filter(p,l), - pv=caml_call1(p,v), - r$0=filter(p,r); - if(! pv)return concat(l$0,r$0); - if(l === l$0 && r === r$0)return t; - return join(l$0,v,r$0)} - function partition(p,param) - {if(! param)return _U_; - var - r=param[3], - v=param[2], - l=param[1], - match=partition(p,l), - lf=match[2], - lt=match[1], - pv=caml_call1(p,v), - match$0=partition(p,r), - rf=match$0[2], - rt=match$0[1]; - if(pv){var _wH_=concat(lf,rf);return [0,join(lt,v,rt),_wH_]} - var _wI_=join(lf,v,rf); - return [0,concat(lt,rt),_wI_]} - function cardinal(param) - {if(! param)return 0; - var r=param[3],l=param[1],_wG_=cardinal(r); - return (cardinal(l) + 1 | 0) + _wG_ | 0} - function elements_aux(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var - r=param$0[3], - v=param$0[2], - l=param$0[1], - accu$1=[0,v,elements_aux(accu$0,r)], - accu$0=accu$1, - param$0=l}} - function elements(s){return elements_aux(0,s)} - function find(x,param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return v; - var param$1=0 <= c?r:l,param$0=param$1}} - function find_first(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)throw Not_found; - var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=r$0;continue} - var v0=v$0,param=l$0; - for(;;) - {if(! param)return v0; - var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=l;continue} - var param=r}}} - function find_first_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)return 0; - var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=r$0;continue} - var v0=v$0,param=l$0; - for(;;) - {if(! param)return [0,v0]; - var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=l;continue} - var param=r}}} - function find_last(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)throw Not_found; - var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=l$0;continue} - var v0=v$0,param=r$0; - for(;;) - {if(! param)return v0; - var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=r;continue} - var param=l}}} - function find_last_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)return 0; - var r$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=l$0;continue} - var v0=v$0,param=r$0; - for(;;) - {if(! param)return [0,v0]; - var r=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,param=r;continue} - var param=l}}} - function find_opt(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - r=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,v]; - var param$1=0 <= c?r:l,param$0=param$1}} - function try_join(l,v,r) - {var switch$0=0; - if(0 !== l) - {var _wF_=max_elt(l); - if(0 <= caml_call2(Ord[1],_wF_,v))switch$0 = 1} - if(! switch$0) - {var switch$1=0; - if(0 !== r) - {var _wE_=min_elt(r); - if(0 <= caml_call2(Ord[1],v,_wE_))switch$1 = 1} - if(! switch$1)return join(l,v,r)} - return union(l,add(v,r))} - function map(f,t) - {if(! t)return 0; - var - r=t[3], - v=t[2], - l=t[1], - l$0=map(f,l), - v$0=caml_call1(f,v), - r$0=map(f,r); - if(l === l$0 && v === v$0 && r === r$0)return t; - return try_join(l$0,v$0,r$0)} - function filter_map(f,t) - {if(! t)return 0; - var - r=t[3], - v=t[2], - l=t[1], - t1=filter_map(f,l), - v$0=caml_call1(f,v), - t2=filter_map(f,r); - if(v$0) - {var v$1=v$0[1]; - if(l === t1 && v === v$1 && r === t2)return t; - return try_join(t1,v$1,t2)} - if(! t1)return t2; - if(! t2)return t1; - var _wD_=remove_min_elt(t2); - return try_join(t1,min_elt(t2),_wD_)} - function of_list(l) - {if(! l)return empty; - var _ws_=l[2],_wt_=l[1]; - if(! _ws_)return singleton(_wt_); - var _wu_=_ws_[2],_wv_=_ws_[1]; - if(! _wu_)return add(_wv_,singleton(_wt_)); - var _ww_=_wu_[2],_wx_=_wu_[1]; - if(! _ww_)return add(_wx_,add(_wv_,singleton(_wt_))); - var _wy_=_ww_[2],_wz_=_ww_[1]; - if(! _wy_)return add(_wz_,add(_wx_,add(_wv_,singleton(_wt_)))); - if(_wy_[2]) - {var - l$0=sort_uniq(Ord[1],l), - sub= - function(n,l) - {if(3 >= n >>> 0) - switch(n) - {case 0:return [0,0,l]; - case 1: - if(l){var l$3=l[2],x0=l[1];return [0,[0,0,x0,0,1],l$3]} - break; - case 2: - if(l) - {var _wA_=l[2]; - if(_wA_) - {var l$4=_wA_[2],x1=_wA_[1],x0$0=l[1]; - return [0,[0,[0,0,x0$0,0,1],x1,0,2],l$4]}} - break; - default: - if(l) - {var _wB_=l[2]; - if(_wB_) - {var _wC_=_wB_[2]; - if(_wC_) - {var l$5=_wC_[2],x2=_wC_[1],x1$0=_wB_[1],x0$1=l[1]; - return [0,[0,[0,0,x0$1,0,1],x1$0,[0,0,x2,0,1],2],l$5]}}}} - var nl=n / 2 | 0,match=sub(nl,l),l$0=match[2],left=match[1]; - if(! l$0)throw [0,Assert_failure,_V_]; - var - l$1=l$0[2], - mid=l$0[1], - match$0=sub((n - nl | 0) - 1 | 0,l$1), - l$2=match$0[2], - right=match$0[1]; - return [0,create(left,mid,right),l$2]}; - return sub(length$1(l$0),l$0)[1]} - var x4=_wy_[1]; - return add(x4,add(_wz_,add(_wx_,add(_wv_,singleton(_wt_)))))} - function add_seq(i,m) - {return fold_left(function(s,x){return add(x,s)},m,i)} - function of_seq(i){return add_seq(i,empty)} - function seq_of_enum(c,param) - {if(! c)return 0; - var rest=c[3],t=c[2],x=c[1],_wq_=cons_enum(t,rest); - return [0,x,function(_wr_){return seq_of_enum(_wq_,_wr_)}]} - function to_seq(c) - {var _wo_=cons_enum(c,0); - return function(_wp_){return seq_of_enum(_wo_,_wp_)}} - function snoc_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(! s$0)return e$0; - var s$1=s$0[3],v=s$0[2],l=s$0[1],e$1=[0,v,l,e$0],s$0=s$1,e$0=e$1}} - function rev_seq_of_enum(c,param) - {if(! c)return 0; - var rest=c[3],t=c[2],x=c[1],_wm_=snoc_enum(t,rest); - return [0,x,function(_wn_){return rev_seq_of_enum(_wm_,_wn_)}]} - function to_rev_seq(c) - {var _wk_=snoc_enum(c,0); - return function(_wl_){return rev_seq_of_enum(_wk_,_wl_)}} - function to_seq_from(low,s) - {var s$0=s,c=0; - for(;;) - {if(s$0) - {var r=s$0[3],v=s$0[2],l=s$0[1],n=caml_call2(Ord[1],v,low); - if(0 !== n) - {if(0 <= n){var c$0=[0,v,r,c],s$0=l,c=c$0;continue} - var s$0=r; - continue} - var _wi_=[0,v,r,c]} - else - var _wi_=c; - return function(_wj_){return seq_of_enum(_wi_,_wj_)}}} - return [0, - empty, - is_empty, - mem, - add, - singleton, - remove, - union, - inter, - disjoint, - diff, - compare, - equal, - subset, - iter, - map, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - elements, - min_elt, - min_elt_opt, - max_elt, - max_elt_opt, - min_elt, - min_elt_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - of_list, - to_seq_from, - to_seq, - to_rev_seq, - add_seq, - of_seq]}]; - caml_register_global(801,Stdlib_Set,"Stdlib__Set"); - var - Stdlib_Map= - [0, - function(Ord) - {function height(param){if(! param)return 0;var h=param[5];return h} - function create(l,x,d,r) - {var hl=height(l),hr=height(r),_wh_=hr <= hl?hl + 1 | 0:hr + 1 | 0; - return [0,l,x,d,r,_wh_]} - function singleton(x,d){return [0,0,x,d,0,1]} - function bal(l,x,d,r) - {if(l)var h=l[5],hl=h;else var hl=0; - if(r)var h$0=r[5],hr=h$0;else var hr=0; - if((hr + 2 | 0) < hl) - {if(! l)return invalid_arg(cst_Map_bal$0); - var lr=l[4],ld=l[3],lv=l[2],ll=l[1],_wc_=height(lr); - if(_wc_ <= height(ll))return create(ll,lv,ld,create(lr,x,d,r)); - if(! lr)return invalid_arg(cst_Map_bal); - var - lrr=lr[4], - lrd=lr[3], - lrv=lr[2], - lrl=lr[1], - _wd_=create(lrr,x,d,r); - return create(create(ll,lv,ld,lrl),lrv,lrd,_wd_)} - if((hl + 2 | 0) >= hr) - {var _wg_=hr <= hl?hl + 1 | 0:hr + 1 | 0;return [0,l,x,d,r,_wg_]} - if(! r)return invalid_arg(cst_Map_bal$2); - var rr=r[4],rd=r[3],rv=r[2],rl=r[1],_we_=height(rl); - if(_we_ <= height(rr))return create(create(l,x,d,rl),rv,rd,rr); - if(! rl)return invalid_arg(cst_Map_bal$1); - var - rlr=rl[4], - rld=rl[3], - rlv=rl[2], - rll=rl[1], - _wf_=create(rlr,rv,rd,rr); - return create(create(l,x,d,rll),rlv,rld,_wf_)} - var empty=0; - function is_empty(param){return param?0:1} - function add(x,data,m) - {if(! m)return [0,0,x,data,0,1]; - var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return d === data?m:[0,l,x,data,r,h]; - if(0 <= c){var rr=add(x,data,r);return r === rr?m:bal(l,v,d,rr)} - var ll=add(x,data,l); - return l === ll?m:bal(ll,v,d,r)} - function find(x,param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return d; - var param$1=0 <= c?r:l,param$0=param$1}} - function find_first(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)throw Not_found; - var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=r$0;continue} - var v0=v$0,d0=d$0,param=l$0; - for(;;) - {if(! param)return [0,v0,d0]; - var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} - var param=r}}} - function find_first_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)return 0; - var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=r$0;continue} - var v0=v$0,d0=d$0,param=l$0; - for(;;) - {if(! param)return [0,[0,v0,d0]]; - var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=l;continue} - var param=r}}} - function find_last(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)throw Not_found; - var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=l$0;continue} - var v0=v$0,d0=d$0,param=r$0; - for(;;) - {if(! param)return [0,v0,d0]; - var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} - var param=l}}} - function find_last_opt(f,param$0) - {var param$1=param$0; - for(;;) - {if(! param$1)return 0; - var r$0=param$1[4],d$0=param$1[3],v$0=param$1[2],l$0=param$1[1]; - if(! caml_call1(f,v$0)){var param$1=l$0;continue} - var v0=v$0,d0=d$0,param=r$0; - for(;;) - {if(! param)return [0,[0,v0,d0]]; - var r=param[4],d=param[3],v=param[2],l=param[1]; - if(caml_call1(f,v)){var v0=v,d0=d,param=r;continue} - var param=l}}} - function find_opt(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,d]; - var param$1=0 <= c?r:l,param$0=param$1}} - function mem(x,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - r=param$0[4], - v=param$0[2], - l=param$0[1], - c=caml_call2(Ord[1],x,v), - _wb_=0 === c?1:0; - if(_wb_)return _wb_; - var param$1=0 <= c?r:l,param$0=param$1}} - function min_binding(param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var _wa_=param$0[1]; - if(_wa_){var param$0=_wa_;continue} - var d=param$0[3],v=param$0[2]; - return [0,v,d]}} - function min_binding_opt(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var _v$_=param$0[1]; - if(_v$_){var param$0=_v$_;continue} - var d=param$0[3],v=param$0[2]; - return [0,[0,v,d]]}} - function max_binding(param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} - var d=param$0[3],v=param$0[2]; - return [0,v,d]}} - function max_binding_opt(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - if(param$0[4]){var param$1=param$0[4],param$0=param$1;continue} - var d=param$0[3],v=param$0[2]; - return [0,[0,v,d]]}} - function remove_min_binding(param) - {if(! param)return invalid_arg(cst_Map_remove_min_elt); - var _v__=param[1]; - if(_v__) - {var r=param[4],d=param[3],v=param[2]; - return bal(remove_min_binding(_v__),v,d,r)} - var r$0=param[4]; - return r$0} - function _vJ_(t1,t2) - {if(! t1)return t2; - if(! t2)return t1; - var match=min_binding(t2),d=match[2],x=match[1]; - return bal(t1,x,d,remove_min_binding(t2))} - function remove(x,m) - {if(! m)return 0; - var r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c)return _vJ_(l,r); - if(0 <= c){var rr=remove(x,r);return r === rr?m:bal(l,v,d,rr)} - var ll=remove(x,l); - return l === ll?m:bal(ll,v,d,r)} - function update(x,f,m) - {if(! m) - {var match$0=caml_call1(f,0); - if(! match$0)return 0; - var data$0=match$0[1]; - return [0,0,x,data$0,0,1]} - var h=m[5],r=m[4],d=m[3],v=m[2],l=m[1],c=caml_call2(Ord[1],x,v); - if(0 === c) - {var match=caml_call1(f,[0,d]); - if(! match)return _vJ_(l,r); - var data=match[1]; - return d === data?m:[0,l,x,data,r,h]} - if(0 <= c){var rr=update(x,f,r);return r === rr?m:bal(l,v,d,rr)} - var ll=update(x,f,l); - return l === ll?m:bal(ll,v,d,r)} - function iter(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var r=param$0[4],d=param$0[3],v=param$0[2],l=param$0[1]; - iter(f,l); - caml_call2(f,v,d); - var param$0=r}} - function map(f,param) - {if(! param)return 0; - var - h=param[5], - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=map(f,l), - d$0=caml_call1(f,d), - r$0=map(f,r); - return [0,l$0,v,d$0,r$0,h]} - function mapi(f,param) - {if(! param)return 0; - var - h=param[5], - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=mapi(f,l), - d$0=caml_call2(f,v,d), - r$0=mapi(f,r); - return [0,l$0,v,d$0,r$0,h]} - function fold(f,m,accu) - {var m$0=m,accu$0=accu; - for(;;) - {if(! m$0)return accu$0; - var - r=m$0[4], - d=m$0[3], - v=m$0[2], - l=m$0[1], - accu$1=caml_call3(f,v,d,fold(f,l,accu$0)), - m$0=r, - accu$0=accu$1}} - function for_all(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 1; - var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - _v7_=caml_call2(p,v,d); - if(_v7_) - {var _v8_=for_all(p,l); - if(_v8_){var param$0=r;continue} - var _v9_=_v8_} - else - var _v9_=_v7_; - return _v9_}} - function exists(p,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - _v4_=caml_call2(p,v,d); - if(_v4_) - var _v5_=_v4_; - else - {var _v6_=exists(p,l); - if(! _v6_){var param$0=r;continue} - var _v5_=_v6_} - return _v5_}} - function add_min_binding(k,x,param) - {if(! param)return singleton(k,x); - var r=param[4],d=param[3],v=param[2],l=param[1]; - return bal(add_min_binding(k,x,l),v,d,r)} - function add_max_binding(k,x,param) - {if(! param)return singleton(k,x); - var r=param[4],d=param[3],v=param[2],l=param[1]; - return bal(l,v,d,add_max_binding(k,x,r))} - function join(l,v,d,r) - {if(! l)return add_min_binding(v,d,r); - if(! r)return add_max_binding(v,d,l); - var - rh=r[5], - rr=r[4], - rd=r[3], - rv=r[2], - rl=r[1], - lh=l[5], - lr=l[4], - ld=l[3], - lv=l[2], - ll=l[1]; - return (rh + 2 | 0) < lh - ?bal(ll,lv,ld,join(lr,v,d,r)) - :(lh + 2 | 0) < rh - ?bal(join(l,v,d,rl),rv,rd,rr) - :create(l,v,d,r)} - function concat(t1,t2) - {if(! t1)return t2; - if(! t2)return t1; - var match=min_binding(t2),d=match[2],x=match[1]; - return join(t1,x,d,remove_min_binding(t2))} - function concat_or_join(t1,v,d,t2) - {if(! d)return concat(t1,t2);var d$0=d[1];return join(t1,v,d$0,t2)} - function split(x,param) - {if(! param)return _W_; - var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - c=caml_call2(Ord[1],x,v); - if(0 === c)return [0,l,[0,d],r]; - if(0 <= c) - {var match=split(x,r),rr=match[3],pres=match[2],lr=match[1]; - return [0,join(l,v,d,lr),pres,rr]} - var - match$0=split(x,l), - rl=match$0[3], - pres$0=match$0[2], - ll=match$0[1]; - return [0,ll,pres$0,join(rl,v,d,r)]} - function merge(f,s1,s2) - {if(s1) - {var h1=s1[5],r1=s1[4],d1=s1[3],v1=s1[2],l1=s1[1]; - if(height(s2) <= h1) - {var - match=split(v1,s2), - r2=match[3], - d2=match[2], - l2=match[1], - _v0_=merge(f,r1,r2), - _v1_=caml_call3(f,v1,[0,d1],d2); - return concat_or_join(merge(f,l1,l2),v1,_v1_,_v0_)}} - else - if(! s2)return 0; - if(! s2)throw [0,Assert_failure,_X_]; - var - r2$0=s2[4], - d2$0=s2[3], - v2=s2[2], - l2$0=s2[1], - match$0=split(v2,s1), - r1$0=match$0[3], - d1$0=match$0[2], - l1$0=match$0[1], - _v2_=merge(f,r1$0,r2$0), - _v3_=caml_call3(f,v2,d1$0,[0,d2$0]); - return concat_or_join(merge(f,l1$0,l2$0),v2,_v3_,_v2_)} - function union(f,s1,s2) - {if(s1) - {if(s2) - {var - h2=s2[5], - r2=s2[4], - d2=s2[3], - v2=s2[2], - l2=s2[1], - h1=s1[5], - r1=s1[4], - d1=s1[3], - v1=s1[2], - l1=s1[1]; - if(h2 <= h1) - {var - match=split(v1,s2), - r2$0=match[3], - d2$0=match[2], - l2$0=match[1], - l=union(f,l1,l2$0), - r=union(f,r1,r2$0); - if(! d2$0)return join(l,v1,d1,r); - var d2$1=d2$0[1]; - return concat_or_join(l,v1,caml_call3(f,v1,d1,d2$1),r)} - var - match$0=split(v2,s1), - r1$0=match$0[3], - d1$0=match$0[2], - l1$0=match$0[1], - l$0=union(f,l1$0,l2), - r$0=union(f,r1$0,r2); - if(! d1$0)return join(l$0,v2,d2,r$0); - var d1$1=d1$0[1]; - return concat_or_join(l$0,v2,caml_call3(f,v2,d1$1,d2),r$0)} - var s=s1} - else - var s=s2; - return s} - function filter(p,m) - {if(! m)return 0; - var - r=m[4], - d=m[3], - v=m[2], - l=m[1], - l$0=filter(p,l), - pvd=caml_call2(p,v,d), - r$0=filter(p,r); - if(! pvd)return concat(l$0,r$0); - if(l === l$0 && r === r$0)return m; - return join(l$0,v,d,r$0)} - function filter_map(f,param) - {if(! param)return 0; - var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - l$0=filter_map(f,l), - fvd=caml_call2(f,v,d), - r$0=filter_map(f,r); - if(! fvd)return concat(l$0,r$0); - var d$0=fvd[1]; - return join(l$0,v,d$0,r$0)} - function partition(p,param) - {if(! param)return _Y_; - var - r=param[4], - d=param[3], - v=param[2], - l=param[1], - match=partition(p,l), - lf=match[2], - lt=match[1], - pvd=caml_call2(p,v,d), - match$0=partition(p,r), - rf=match$0[2], - rt=match$0[1]; - if(pvd){var _vY_=concat(lf,rf);return [0,join(lt,v,d,rt),_vY_]} - var _vZ_=join(lf,v,d,rf); - return [0,concat(lt,rt),_vZ_]} - function cons_enum(m,e) - {var m$0=m,e$0=e; - for(;;) - {if(! m$0)return e$0; - var - r=m$0[4], - d=m$0[3], - v=m$0[2], - m$1=m$0[1], - e$1=[0,v,d,r,e$0], - m$0=m$1, - e$0=e$1}} - function compare(cmp,m1,m2) - {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(! e1)return e2?-1:0; - if(! e2)return 1; - var - e2$0=e2[4], - r2=e2[3], - d2=e2[2], - v2=e2[1], - e1$0=e1[4], - r1=e1[3], - d1=e1[2], - v1=e1[1], - c=caml_call2(Ord[1],v1,v2); - if(0 !== c)return c; - var c$0=caml_call2(cmp,d1,d2); - if(0 !== c$0)return c$0; - var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1}} - function equal(cmp,m1,m2) - {var e2$2=cons_enum(m2,0),e1$2=cons_enum(m1,0),e1=e1$2,e2=e2$2; - for(;;) - {if(! e1)return e2?0:1; - if(! e2)return 0; - var - e2$0=e2[4], - r2=e2[3], - d2=e2[2], - v2=e2[1], - e1$0=e1[4], - r1=e1[3], - d1=e1[2], - v1=e1[1], - _vV_=0 === caml_call2(Ord[1],v1,v2)?1:0; - if(_vV_) - {var _vW_=caml_call2(cmp,d1,d2); - if(_vW_) - {var - e2$1=cons_enum(r2,e2$0), - e1$1=cons_enum(r1,e1$0), - e1=e1$1, - e2=e2$1; - continue} - var _vX_=_vW_} - else - var _vX_=_vV_; - return _vX_}} - function cardinal(param) - {if(! param)return 0; - var r=param[4],l=param[1],_vU_=cardinal(r); - return (cardinal(l) + 1 | 0) + _vU_ | 0} - function bindings_aux(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var - r=param$0[4], - d=param$0[3], - v=param$0[2], - l=param$0[1], - accu$1=[0,[0,v,d],bindings_aux(accu$0,r)], - accu$0=accu$1, - param$0=l}} - function bindings(s){return bindings_aux(0,s)} - function add_seq(i,m) - {return fold_left - (function(m,param) - {var v=param[2],k=param[1];return add(k,v,m)}, - m, - i)} - function of_seq(i){return add_seq(i,empty)} - function seq_of_enum(c,param) - {if(! c)return 0; - var rest=c[4],t=c[3],v=c[2],k=c[1],_vS_=cons_enum(t,rest); - return [0,[0,k,v],function(_vT_){return seq_of_enum(_vS_,_vT_)}]} - function to_seq(m) - {var _vQ_=cons_enum(m,0); - return function(_vR_){return seq_of_enum(_vQ_,_vR_)}} - function snoc_enum(s,e) - {var s$0=s,e$0=e; - for(;;) - {if(! s$0)return e$0; - var - s$1=s$0[4], - d=s$0[3], - v=s$0[2], - l=s$0[1], - e$1=[0,v,d,l,e$0], - s$0=s$1, - e$0=e$1}} - function rev_seq_of_enum(c,param) - {if(! c)return 0; - var rest=c[4],t=c[3],v=c[2],k=c[1],_vO_=snoc_enum(t,rest); - return [0, - [0,k,v], - function(_vP_){return rev_seq_of_enum(_vO_,_vP_)}]} - function to_rev_seq(c) - {var _vM_=snoc_enum(c,0); - return function(_vN_){return rev_seq_of_enum(_vM_,_vN_)}} - function to_seq_from(low,m) - {var m$0=m,c=0; - for(;;) - {if(m$0) - {var - r=m$0[4], - d=m$0[3], - v=m$0[2], - l=m$0[1], - n=caml_call2(Ord[1],v,low); - if(0 !== n) - {if(0 <= n){var c$0=[0,v,d,r,c],m$0=l,c=c$0;continue} - var m$0=r; - continue} - var _vK_=[0,v,d,r,c]} - else - var _vK_=c; - return function(_vL_){return seq_of_enum(_vK_,_vL_)}}} - return [0, - empty, - is_empty, - mem, - add, - update, - singleton, - remove, - merge, - union, - compare, - equal, - iter, - fold, - for_all, - exists, - filter, - filter_map, - partition, - cardinal, - bindings, - min_binding, - min_binding_opt, - max_binding, - max_binding_opt, - min_binding, - min_binding_opt, - split, - find, - find_opt, - find_first, - find_first_opt, - find_last, - find_last_opt, - map, - mapi, - to_seq, - to_rev_seq, - to_seq_from, - add_seq, - of_seq]}]; - caml_register_global(802,Stdlib_Map,"Stdlib__Map"); - var Empty=[248,cst_Stdlib_Stack_Empty,caml_fresh_oo_id(0)]; - function create$0(param){return [0,0,0]} - function clear(s){s[1] = 0;s[2] = 0;return 0} - function copy$3(s){return [0,s[1],s[2]]} - function push(x,s){s[1] = [0,x,s[1]];s[2] = s[2] + 1 | 0;return 0} - function pop(s) - {var _vI_=s[1]; - if(! _vI_)throw Empty; - var tl=_vI_[2],hd=_vI_[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return hd} - function pop_opt(s) - {var _vH_=s[1]; - if(! _vH_)return 0; - var tl=_vH_[2],hd=_vH_[1]; - s[1] = tl; - s[2] = s[2] - 1 | 0; - return [0,hd]} - function top(s) - {var _vG_=s[1];if(! _vG_)throw Empty;var hd=_vG_[1];return hd} - function top_opt(s) - {var _vF_=s[1];if(! _vF_)return 0;var hd=_vF_[1];return [0,hd]} - function is_empty$0(s){return 0 === s[1]?1:0} - function length$2(s){return s[2]} - function iter$7(f,s){return iter$2(f,s[1])} - function fold$2(f,acc,s){return fold_left$0(f,acc,s[1])} - function to_seq$6(s){return to_seq$1(s[1])} - function add_seq(q,i){return iter(function(x){return push(x,q)},i)} - function of_seq$4(g){var s=create$0(0);add_seq(s,g);return s} - var - Stdlib_Stack= - [0, - Empty, - create$0, - push, - pop, - pop_opt, - top, - top_opt, - clear, - copy$3, - is_empty$0, - length$2, - iter$7, - fold$2, - to_seq$6, - add_seq, - of_seq$4]; - caml_register_global(803,Stdlib_Stack,"Stdlib__Stack"); - var Empty$0=[248,cst_Stdlib_Queue_Empty,caml_fresh_oo_id(0)]; - function create$1(param){return [0,0,0,0]} - function clear$0(q){q[1] = 0;q[2] = 0;q[3] = 0;return 0} - function add(x,q) - {var cell=[0,x,0],_vE_=q[3]; - return _vE_ - ?(q[1] = q[1] + 1 | 0,_vE_[2] = cell,q[3] = cell,0) - :(q[1] = 1,q[2] = cell,q[3] = cell,0)} - function peek(q) - {var _vD_=q[2]; - if(! _vD_)throw Empty$0; - var content=_vD_[1]; - return content} - function peek_opt(q) - {var _vC_=q[2];if(! _vC_)return 0;var content=_vC_[1];return [0,content]} - function take$0(q) - {var _vA_=q[2]; - if(! _vA_)throw Empty$0; - var _vB_=_vA_[1]; - if(_vA_[2]) - {var next=_vA_[2];q[1] = q[1] - 1 | 0;q[2] = next;return _vB_} - clear$0(q); - return _vB_} - function take_opt(q) - {var _vy_=q[2]; - if(! _vy_)return 0; - var _vz_=_vy_[1]; - if(_vy_[2]) - {var next=_vy_[2];q[1] = q[1] - 1 | 0;q[2] = next;return [0,_vz_]} - clear$0(q); - return [0,_vz_]} - function copy$4(q) - {var q_res=[0,q[1],0,0],prev=0,cell=q[2]; - for(;;) - {if(! cell){q_res[3] = prev;return q_res} - var content=cell[1],next=cell[2],res=[0,content,0]; - if(prev)prev[2] = res;else q_res[2] = res; - var prev=res,cell=next}} - function is_empty$1(q){return 0 === q[1]?1:0} - function length$3(q){return q[1]} - function iter$8(f,q) - {var cell=q[2]; - for(;;) - {if(! cell)return 0; - var content=cell[1],next=cell[2]; - caml_call1(f,content); - var cell=next}} - function fold$3(f,accu$1,q) - {var accu=accu$1,cell=q[2]; - for(;;) - {if(! cell)return accu; - var - content=cell[1], - next=cell[2], - accu$0=caml_call2(f,accu,content), - accu=accu$0, - cell=next}} - function transfer(q1,q2) - {var _vw_=0 < q1[1]?1:0; - if(! _vw_)return _vw_; - var _vx_=q2[3]; - return _vx_ - ?(q2[1] - = - q2[1] - + - q1[1] - | - 0, - _vx_[2] - = - q1[2], - q2[3] - = - q1[3], - clear$0(q1)) - :(q2[1] = q1[1],q2[2] = q1[2],q2[3] = q1[3],clear$0(q1))} - function to_seq$7(q) - {function aux(c,param) - {if(! c)return 0; - var x=c[1],next=c[2]; - return [0,x,function(_vv_){return aux(next,_vv_)}]} - var _vt_=q[2]; - return function(_vu_){return aux(_vt_,_vu_)}} - function add_seq$0(q,i){return iter(function(x){return add(x,q)},i)} - function of_seq$5(g){var q=create$1(0);add_seq$0(q,g);return q} - var - Stdlib_Queue= - [0, - Empty$0, - create$1, - add, - add, - take$0, - take_opt, - take$0, - peek, - peek_opt, - peek, - clear$0, - copy$4, - is_empty$1, - length$3, - iter$8, - fold$3, - transfer, - to_seq$7, - add_seq$0, - of_seq$5]; - caml_register_global(804,Stdlib_Queue,"Stdlib__Queue"); - var - Failure$0=[248,cst_Stdlib_Stream_Failure,caml_fresh_oo_id(0)], - Error=[248,cst_Stdlib_Stream_Error,caml_fresh_oo_id(0)]; - function count(param) - {if(! param)return 0;var match=param[1],count=match[1];return count} - function data(param) - {if(! param)return 0;var match=param[1],data=match[2];return data} - function fill_buff(b) - {b[3] = input(b[1],b[2],0,caml_ml_bytes_length(b[2]));b[4] = 0;return 0} - function get_data(count,d) - {var d$0=d; - for(;;) - {if(typeof d$0 !== "number") - switch(d$0[0]) - {case 1: - var d2=d$0[2],d1=d$0[1],match=get_data(count,d1); - if(typeof match === "number"){var d$0=d2;continue} - if(0 !== match[0])throw [0,Assert_failure,_Z_]; - var d11=match[2],a=match[1]; - return [0,a,[1,d11,d2]]; - case 2: - var - f=d$0[1], - _vp_=caml_obj_tag(f), - d$1=250 === _vp_?f[1]:246 === _vp_?force_lazy_block(f):f, - d$0=d$1; - continue; - case 3: - var _vq_=d$0[1],_vr_=_vq_[1]; - if(_vr_) - {var _vs_=_vr_[1]; - if(! _vs_)return 0; - var a$0=_vs_[1]; - _vq_[1] = 0; - return [0,a$0,d$0]} - var match$0=caml_call1(_vq_[2],count); - if(match$0){var a$1=match$0[1];return [0,a$1,d$0]} - _vq_[1] = ___; - return 0; - case 4: - var b=d$0[1]; - if(b[3] <= b[4])fill_buff(b); - if(0 === b[3])return 0; - var r=caml_bytes_unsafe_get(b[2],b[4]); - b[4] = b[4] + 1 | 0; - return [0,r,d$0] - } - return d$0}} - function peek_data(s) - {for(;;) - {var _vk_=s[2]; - if(typeof _vk_ === "number")return 0; - switch(_vk_[0]) - {case 0:var a=_vk_[1];return [0,a]; - case 1: - var d=get_data(s[1],s[2]); - if(typeof d === "number")return 0; - if(0 !== d[0])throw [0,Assert_failure,_$_]; - var a$0=d[1]; - s[2] = d; - return [0,a$0]; - case 2: - var - f=_vk_[1], - _vl_=caml_obj_tag(f), - _vm_=250 === _vl_?f[1]:246 === _vl_?force_lazy_block(f):f; - s[2] = _vm_; - continue; - case 3: - var _vn_=_vk_[1],_vo_=_vn_[1]; - if(_vo_){var a$1=_vo_[1];return a$1} - var x=caml_call1(_vn_[2],s[1]); - _vn_[1] = [0,x]; - return x; - default: - var b=_vk_[1]; - if(b[3] <= b[4])fill_buff(b); - return 0 === b[3]?(s[2] = 0,0):[0,caml_bytes_unsafe_get(b[2],b[4])]}}} - function peek$0(param) - {if(! param)return 0;var s=param[1];return peek_data(s)} - function junk_data(s) - {for(;;) - {var _vi_=s[2]; - if(typeof _vi_ !== "number") - switch(_vi_[0]) - {case 0:var d=_vi_[2];s[1] = s[1] + 1 | 0;s[2] = d;return 0; - case 3: - var _vj_=_vi_[1]; - if(_vj_[1]){s[1] = s[1] + 1 | 0;_vj_[1] = 0;return 0} - break; - case 4: - var b=_vi_[1]; - if(b[3] <= b[4])fill_buff(b); - return 0 === b[3] - ?(s[2] = 0,0) - :(s[1] = s[1] + 1 | 0,b[4] = b[4] + 1 | 0,0) - } - var match=peek_data(s); - if(match)continue; - return 0}} - function junk(param) - {if(! param)return 0;var data=param[1];return junk_data(data)} - function nget_data(n,s) - {if(0 >= n)return [0,0,s[2],0]; - var match=peek_data(s); - if(! match)return [0,0,s[2],0]; - var a=match[1]; - junk_data(s); - var - match$0=nget_data(n - 1 | 0,s), - k=match$0[3], - d=match$0[2], - al=match$0[1]; - return [0,[0,a,al],[0,a,d],k + 1 | 0]} - function npeek(n,param) - {if(! param)return 0; - var - d$0=param[1], - match=nget_data(n,d$0), - len=match[3], - d=match[2], - al=match[1]; - d$0[1] = d$0[1] - len | 0; - d$0[2] = d; - return al} - function next(s) - {var match=peek$0(s); - if(! match)throw Failure$0; - var a=match[1]; - junk(s); - return a} - function empty$2(s){var match=peek$0(s);if(match)throw Failure$0;return 0} - function iter$9(f,strm) - {for(;;) - {var match=peek$0(strm); - if(! match)return 0; - var a=match[1]; - junk(strm); - caml_call1(f,a)}} - function from(f){return [0,[0,0,[3,[0,0,f]]]]} - function of_list$1(l) - {var _vh_=0; - return [0,[0,0,fold_right(function(x,l){return [0,x,l]},l,_vh_)]]} - function of_string(s) - {var count=[0,0]; - return from - (function(param) - {var c=count[1]; - return c < caml_ml_string_length(s) - ?(count[1]++,[0,caml_string_get(s,c)]) - :0})} - function of_bytes$0(s) - {var count=[0,0]; - return from - (function(param) - {var c=count[1]; - return c < caml_ml_bytes_length(s) - ?(count[1]++,[0,caml_bytes_get(s,c)]) - :0})} - function of_channel(ic) - {return [0,[0,0,[4,[0,ic,caml_create_bytes(4096),0,0]]]]} - function iapp(i,s){var _vg_=data(s);return [0,[0,0,[1,data(i),_vg_]]]} - function icons(i,s){return [0,[0,0,[0,i,data(s)]]]} - function ising(i){return [0,[0,0,[0,i,0]]]} - function lapp(f,s) - {return [0, - [0, - 0, - [2, - [246, - function(_ve_) - {var _vf_=data(s);return [1,data(caml_call1(f,0)),_vf_]}]]]]} - function lcons(f,s) - {return [0, - [0, - 0, - [2, - [246, - function(_vc_) - {var _vd_=data(s);return [0,caml_call1(f,0),_vd_]}]]]]} - function lsing(f) - {return [0,[0,0,[2,[246,function(_vb_){return [0,caml_call1(f,0),0]}]]]]} - var sempty=0; - function slazy(f) - {return [0,[0,0,[2,[246,function(_va_){return data(caml_call1(f,0))}]]]]} - function dump(f,s) - {print_string(cst_count); - print_int(count(s)); - print_string(cst_data); - dump_data(f,data(s)); - print_string(cst$6); - return print_newline(0)} - function dump_data(f,param) - {if(typeof param === "number")return print_string(cst_Sempty); - switch(param[0]) - {case 0: - var d=param[2],a=param[1]; - print_string(cst_Scons); - caml_call1(f,a); - print_string(cst$7); - dump_data(f,d); - return print_string(cst$8); - case 1: - var d2=param[2],d1=param[1]; - print_string(cst_Sapp); - dump_data(f,d1); - print_string(cst$9); - dump_data(f,d2); - return print_string(cst$10); - case 2:return print_string(cst_Slazy); - case 3:return print_string(cst_Sgen); - default:return print_string(cst_Sbuffio)}} - var - Stdlib_Stream= - [0, - Failure$0, - Error, - from, - of_list$1, - of_string, - of_bytes$0, - of_channel, - iter$9, - next, - empty$2, - peek$0, - junk, - count, - npeek, - iapp, - icons, - ising, - lapp, - lcons, - lsing, - sempty, - slazy, - dump]; - caml_register_global(805,Stdlib_Stream,"Stdlib__Stream"); - function create$2(n) - {var - n$0=1 <= n?n:1, - n$1=max_string_length < n$0?max_string_length:n$0, - s=caml_create_bytes(n$1); - return [0,s,0,n$1,s]} - function contents(b){return sub_string(b[1],0,b[2])} - function to_bytes$0(b){return sub(b[1],0,b[2])} - function sub$3(b,ofs,len) - {if(0 <= ofs && 0 <= len && (b[2] - len | 0) >= ofs) - return sub_string(b[1],ofs,len); - return invalid_arg(cst_Buffer_sub)} - function blit$3(src,srcoff,dst,dstoff,len) - {if - (0 - <= - len - && - 0 - <= - srcoff - && - (src[2] - len | 0) - >= - srcoff - && - 0 - <= - dstoff - && - (caml_ml_bytes_length(dst) - len | 0) - >= - dstoff) - return caml_blit_bytes(src[1],srcoff,dst,dstoff,len); - return invalid_arg(cst_Buffer_blit)} - function nth$0(b,ofs) - {if(0 <= ofs && b[2] > ofs)return caml_bytes_unsafe_get(b[1],ofs); - return invalid_arg(cst_Buffer_nth)} - function length$4(b){return b[2]} - function clear$1(b){b[2] = 0;return 0} - function reset(b) - {b[2] = 0;b[1] = b[4];b[3] = caml_ml_bytes_length(b[1]);return 0} - function resize(b,more) - {var old_pos=b[2],old_len=b[3],new_len=[0,old_len]; - for(;;) - {if(new_len[1] < (old_pos + more | 0)) - {new_len[1] = 2 * new_len[1] | 0;continue} - if(max_string_length < new_len[1]) - if((old_pos + more | 0) <= max_string_length) - new_len[1] = max_string_length; - else - failwith(cst_Buffer_add_cannot_grow_buf); - var new_buffer=caml_create_bytes(new_len[1]); - blit(b[1],0,new_buffer,0,b[2]); - b[1] = new_buffer; - b[3] = new_len[1]; - if((b[2] + more | 0) > b[3])throw [0,Assert_failure,_ab_]; - if((old_pos + more | 0) <= b[3])return 0; - throw [0,Assert_failure,_aa_]}} - function add_char(b,c) - {var pos=b[2]; - if(b[3] <= pos)resize(b,1); - caml_bytes_unsafe_set(b[1],pos,c); - b[2] = pos + 1 | 0; - return 0} - var uchar_utf_8_byte_length_max=4,uchar_utf_16_byte_length_max=4; - function add_utf_8_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_8_byte_length_max); - var n=set_utf_8_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_8_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_utf_16be_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); - var n=set_utf_16be_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_utf_16le_uchar(b,u) - {for(;;) - {var pos=b[2]; - if(b[3] <= pos)resize(b,uchar_utf_16_byte_length_max); - var n=set_utf_16le_uchar(b[1],pos,u); - if(0 === n){resize(b,uchar_utf_16_byte_length_max);continue} - b[2] = pos + n | 0; - return 0}} - function add_substring(b,s,offset,len) - {var _u9_=offset < 0?1:0; - if(_u9_) - var _u__=_u9_; - else - var - _u$_=len < 0?1:0, - _u__=_u$_ || ((caml_ml_string_length(s) - len | 0) < offset?1:0); - if(_u__)invalid_arg(cst_Buffer_add_substring_add_s); - var new_position=b[2] + len | 0; - if(b[3] < new_position)resize(b,len); - caml_blit_string(s,offset,b[1],b[2],len); - b[2] = new_position; - return 0} - function add_subbytes(b,s,offset,len) - {return add_substring(b,caml_string_of_bytes(s),offset,len)} - function add_string(b,s) - {var len=caml_ml_string_length(s),new_position=b[2] + len | 0; - if(b[3] < new_position)resize(b,len); - caml_blit_string(s,0,b[1],b[2],len); - b[2] = new_position; - return 0} - function add_bytes(b,s){return add_string(b,caml_string_of_bytes(s))} - function add_buffer(b,bs){return add_subbytes(b,bs[1],0,bs[2])} - function add_channel(b,ic,len) - {var _u7_=len < 0?1:0,_u8_=_u7_ || (max_string_length < len?1:0); - if(_u8_)invalid_arg(cst_Buffer_add_channel); - if(b[3] < (b[2] + len | 0))resize(b,len); - var already_read=0,ofs=b[2],to_read=len,_u6_=b[1]; - for(;;) - {if(0 !== to_read) - {var r=input(ic,_u6_,ofs,to_read); - if(0 !== r) - {var - already_read$0=already_read + r | 0, - ofs$0=ofs + r | 0, - to_read$0=to_read - r | 0, - already_read=already_read$0, - ofs=ofs$0, - to_read=to_read$0; - continue}} - if((b[2] + already_read | 0) > b[3])throw [0,Assert_failure,_ac_]; - b[2] = b[2] + already_read | 0; - if(already_read < len)throw End_of_file; - return 0}} - function output_buffer(oc,b){return output(oc,b[1],0,b[2])} - function add_substitute(b,f,s) - {var lim$1=caml_ml_string_length(s),previous=32,i$7=0; - for(;;) - {if(i$7 >= lim$1) - {var _u5_=92 === previous?1:0;return _u5_?add_char(b,previous):_u5_} - var current=caml_string_get(s,i$7); - if(36 !== current) - {if(92 === previous) - {add_char(b,92); - add_char(b,current); - var i$9=i$7 + 1 | 0,previous=32,i$7=i$9; - continue} - if(92 === current) - {var i$10=i$7 + 1 | 0,previous=current,i$7=i$10;continue} - add_char(b,current); - var i$11=i$7 + 1 | 0,previous=current,i$7=i$11; - continue} - if(92 === previous) - {add_char(b,current); - var i$8=i$7 + 1 | 0,previous=32,i$7=i$8; - continue} - var start=i$7 + 1 | 0; - if(lim$1 <= start)throw Not_found; - var opening=caml_string_get(s,start),switch$0=0; - if(40 !== opening && 123 !== opening) - {var i$6=start + 1 | 0,lim$0=caml_ml_string_length(s),i$3=i$6; - for(;;) - {if(lim$0 <= i$3) - var stop=lim$0; - else - {var match=caml_string_get(s,i$3),switch$1=0; - if(91 <= match) - {if(97 <= match) - {if(123 > match)switch$1 = 1} - else - if(95 === match)switch$1 = 1} - else - if(58 <= match) - {if(65 <= match)switch$1 = 1} - else - if(48 <= match)switch$1 = 1; - if(switch$1){var i$4=i$3 + 1 | 0,i$3=i$4;continue} - var stop=i$3} - var match$0=[0,sub$0(s,start,stop - start | 0),stop]; - switch$0 = 1; - break}} - if(! switch$0) - {var i$5=start + 1 | 0,k$2=0; - if(40 === opening) - var _u4_=41; - else - {if(123 !== opening)throw [0,Assert_failure,_ad_];var _u4_=125} - var lim=caml_ml_string_length(s),k=k$2,i=i$5; - for(;;) - {if(lim <= i)throw Not_found; - if(caml_string_get(s,i) === opening) - {var i$0=i + 1 | 0,k$0=k + 1 | 0,k=k$0,i=i$0;continue} - if(caml_string_get(s,i) !== _u4_) - {var i$2=i + 1 | 0,i=i$2;continue} - if(0 !== k){var i$1=i + 1 | 0,k$1=k - 1 | 0,k=k$1,i=i$1;continue} - var match$0=[0,sub$0(s,i$5,(i - start | 0) - 1 | 0),i + 1 | 0]; - break}} - var next_i=match$0[2],ident=match$0[1]; - add_string(b,caml_call1(f,ident)); - var previous=32,i$7=next_i}} - function truncate(b,len) - {if(0 <= len && b[2] >= len){b[2] = len;return 0} - return invalid_arg(cst_Buffer_truncate)} - function to_seq$8(b) - {function aux(i,param) - {if(b[2] <= i)return 0; - var x=caml_bytes_unsafe_get(b[1],i),_u2_=i + 1 | 0; - return [0,x,function(_u3_){return aux(_u2_,_u3_)}]} - var _u0_=0; - return function(_u1_){return aux(_u0_,_u1_)}} - function to_seqi$3(b) - {function aux(i,param) - {if(b[2] <= i)return 0; - var x=caml_bytes_unsafe_get(b[1],i),_uY_=i + 1 | 0; - return [0,[0,i,x],function(_uZ_){return aux(_uY_,_uZ_)}]} - var _uW_=0; - return function(_uX_){return aux(_uW_,_uX_)}} - function add_seq$1(b,seq) - {return iter(function(_uV_){return add_char(b,_uV_)},seq)} - function of_seq$6(i){var b=create$2(32);add_seq$1(b,i);return b} - function add_int8(b,x) - {var new_position=b[2] + 1 | 0; - if(b[3] < new_position)resize(b,1); - caml_bytes_unsafe_set(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int16_ne(b,x) - {var new_position=b[2] + 2 | 0; - if(b[3] < new_position)resize(b,2); - caml_bytes_set16(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int32_ne(b,x) - {var new_position=b[2] + 4 | 0; - if(b[3] < new_position)resize(b,4); - caml_bytes_set32(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int64_ne(b,x) - {var new_position=b[2] + 8 | 0; - if(b[3] < new_position)resize(b,8); - caml_bytes_set64(b[1],b[2],x); - b[2] = new_position; - return 0} - function add_int16_le(b,x){return add_int16_ne(b,x)} - function add_int16_be(b,x) - {var x$0=caml_bswap16(x);return add_int16_ne(b,x$0)} - function add_int32_le(b,x){return add_int32_ne(b,x)} - function add_int32_be(b,x) - {var x$0=caml_int32_bswap(x);return add_int32_ne(b,x$0)} - function add_int64_le(b,x){return add_int64_ne(b,x)} - function add_int64_be(b,x) - {var x$0=caml_int64_bswap(x);return add_int64_ne(b,x$0)} - var - Stdlib_Buffer= - [0, - create$2, - contents, - to_bytes$0, - sub$3, - blit$3, - nth$0, - length$4, - clear$1, - reset, - output_buffer, - truncate, - add_char, - add_utf_8_uchar, - add_utf_16le_uchar, - add_utf_16be_uchar, - add_string, - add_bytes, - add_substring, - add_subbytes, - add_substitute, - add_buffer, - add_channel, - to_seq$8, - to_seqi$3, - add_seq$1, - of_seq$6, - add_int8, - add_int8, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int16_ne, - add_int16_be, - add_int16_le, - add_int32_ne, - add_int32_be, - add_int32_le, - add_int64_ne, - add_int64_be, - add_int64_le]; - caml_register_global(806,Stdlib_Buffer,"Stdlib__Buffer"); - function create_char_set(param){return make$0(32,0)} - function add_in_char_set(char_set,c) - {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); - return caml_bytes_set - (char_set, - str_ind, - char_of_int(caml_bytes_get(char_set,str_ind) | mask))} - function freeze_char_set(char_set){return of_bytes(char_set)} - function rev_char_set(char_set) - {var char_set$0=create_char_set(0),i=0; - for(;;) - {caml_bytes_set - (char_set$0,i,char_of_int(caml_string_get(char_set,i) ^ 255)); - var _uU_=i + 1 | 0; - if(31 === i)return caml_string_of_bytes(char_set$0); - var i=_uU_}} - function is_in_char_set(char_set,c) - {var str_ind=c >>> 3 | 0,mask=1 << (c & 7); - return 0 !== (caml_string_get(char_set,str_ind) & mask)?1:0} - function pad_of_pad_opt(pad_opt) - {if(! pad_opt)return 0;var width=pad_opt[1];return [0,1,width]} - function param_format_of_ignored_format(ign,fmt) - {if(typeof ign === "number") - switch(ign) - {case 0:return [0,[0,fmt]]; - case 1:return [0,[1,fmt]]; - case 2:return [0,[19,fmt]]; - default:return [0,[22,fmt]]} - switch(ign[0]) - {case 0:var pad_opt=ign[1];return [0,[2,pad_of_pad_opt(pad_opt),fmt]]; - case 1: - var pad_opt$0=ign[1];return [0,[3,pad_of_pad_opt(pad_opt$0),fmt]]; - case 2: - var pad_opt$1=ign[2],iconv=ign[1]; - return [0,[4,iconv,pad_of_pad_opt(pad_opt$1),0,fmt]]; - case 3: - var pad_opt$2=ign[2],iconv$0=ign[1]; - return [0,[5,iconv$0,pad_of_pad_opt(pad_opt$2),0,fmt]]; - case 4: - var pad_opt$3=ign[2],iconv$1=ign[1]; - return [0,[6,iconv$1,pad_of_pad_opt(pad_opt$3),0,fmt]]; - case 5: - var pad_opt$4=ign[2],iconv$2=ign[1]; - return [0,[7,iconv$2,pad_of_pad_opt(pad_opt$4),0,fmt]]; - case 6: - var prec_opt=ign[2],pad_opt$5=ign[1]; - if(prec_opt)var ndec=prec_opt[1],_uT_=[0,ndec];else var _uT_=0; - return [0,[8,_ae_,pad_of_pad_opt(pad_opt$5),_uT_,fmt]]; - case 7: - var pad_opt$6=ign[1];return [0,[9,pad_of_pad_opt(pad_opt$6),fmt]]; - case 8: - var fmtty=ign[2],pad_opt$7=ign[1]; - return [0,[13,pad_opt$7,fmtty,fmt]]; - case 9: - var fmtty$0=ign[2],pad_opt$8=ign[1]; - return [0,[14,pad_opt$8,fmtty$0,fmt]]; - case 10: - var char_set=ign[2],width_opt=ign[1]; - return [0,[20,width_opt,char_set,fmt]]; - default:var counter=ign[1];return [0,[21,counter,fmt]]}} - function default_float_precision(fconv){return 5 === fconv[2]?12:-6} - function buffer_create(init_size) - {return [0,0,caml_create_bytes(init_size)]} - function buffer_check_size(buf,overhead) - {var - len=caml_ml_bytes_length(buf[2]), - min_len=buf[1] + overhead | 0, - _uR_=len < min_len?1:0; - if(_uR_) - {var - new_len=max$1(len * 2 | 0,min_len), - new_str=caml_create_bytes(new_len); - blit(buf[2],0,new_str,0,len); - buf[2] = new_str; - var _uS_=0} - else - var _uS_=_uR_; - return _uS_} - function buffer_add_char(buf,c) - {buffer_check_size(buf,1); - caml_bytes_set(buf[2],buf[1],c); - buf[1] = buf[1] + 1 | 0; - return 0} - function buffer_add_string(buf,s) - {var str_len=caml_ml_string_length(s); - buffer_check_size(buf,str_len); - blit$0(s,0,buf[2],buf[1],str_len); - buf[1] = buf[1] + str_len | 0; - return 0} - function buffer_contents(buf){return sub_string(buf[2],0,buf[1])} - function char_of_iconv(iconv) - {switch(iconv) - {case 6: - case 7:return 120; - case 8: - case 9:return 88; - case 10: - case 11:return 111; - case 12: - case 15:return 117; - case 0: - case 1: - case 2: - case 13:return 100; - default:return 105}} - function char_of_fconv(opt,fconv) - {if(opt)var sth=opt[1],cF=sth;else var cF=70; - switch(fconv[2]) - {case 0:return 102; - case 1:return 101; - case 2:return 69; - case 3:return 103; - case 4:return 71; - case 5:return cF; - case 6:return 104; - case 7:return 72; - default:return 70}} - function bprint_padty(buf,padty) - {switch(padty) - {case 0:return buffer_add_char(buf,45); - case 1:return 0; - default:return buffer_add_char(buf,48)}} - function bprint_ignored_flag(buf,ign_flag) - {return ign_flag?buffer_add_char(buf,95):ign_flag} - function bprint_pad_opt(buf,pad_opt) - {if(! pad_opt)return 0; - var width=pad_opt[1]; - return buffer_add_string(buf,caml_string_of_jsbytes("" + width))} - function bprint_padding(buf,pad) - {if(typeof pad === "number")return 0; - if(0 === pad[0]) - {var n=pad[2],padty=pad[1]; - bprint_padty(buf,padty); - return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} - var padty$0=pad[1]; - bprint_padty(buf,padty$0); - return buffer_add_char(buf,42)} - function bprint_precision(buf,prec) - {if(typeof prec === "number")return prec?buffer_add_string(buf,cst$11):0; - var n=prec[1]; - buffer_add_char(buf,46); - return buffer_add_string(buf,caml_string_of_jsbytes("" + n))} - function bprint_iconv_flag(buf,iconv) - {switch(iconv) - {case 1: - case 4:return buffer_add_char(buf,43); - case 2: - case 5:return buffer_add_char(buf,32); - case 7: - case 9: - case 11: - case 13: - case 14: - case 15:return buffer_add_char(buf,35); - default:return 0}} - function bprint_altint_fmt(buf,ign_flag,iconv,pad,prec,c) - {buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag); - bprint_iconv_flag(buf,iconv); - bprint_padding(buf,pad); - bprint_precision(buf,prec); - buffer_add_char(buf,c); - return buffer_add_char(buf,char_of_iconv(iconv))} - function bprint_fconv_flag(buf,fconv) - {switch(fconv[1]) - {case 0:break; - case 1:buffer_add_char(buf,43);break; - default:buffer_add_char(buf,32)} - return 8 <= fconv[2]?buffer_add_char(buf,35):0} - function string_of_formatting_lit(formatting_lit) - {if(typeof formatting_lit === "number") - switch(formatting_lit) - {case 0:return cst$12; - case 1:return cst$13; - case 2:return cst$14; - case 3:return cst$15; - case 4:return cst$16; - case 5:return cst$17; - default:return cst$18} - switch(formatting_lit[0]) - {case 0:var str=formatting_lit[1];return str; - case 1:var str$0=formatting_lit[1];return str$0; - default:var c=formatting_lit[1];return cat(cst$19,make$1(1,c))}} - function bprint_char_literal(buf,chr) - {return 37 === chr?buffer_add_string(buf,cst$20):buffer_add_char(buf,chr)} - function bprint_string_literal(buf,str) - {var _uP_=caml_ml_string_length(str) - 1 | 0,_uO_=0; - if(_uP_ >= 0) - {var i=_uO_; - for(;;) - {bprint_char_literal(buf,caml_string_get(str,i)); - var _uQ_=i + 1 | 0; - if(_uP_ !== i){var i=_uQ_;continue} - break}} - return 0} - function bprint_fmtty(buf,fmtty) - {var fmtty$0=fmtty; - for(;;) - {if(typeof fmtty$0 === "number")return 0; - switch(fmtty$0[0]) - {case 0: - var rest=fmtty$0[1]; - buffer_add_string(buf,cst_c); - var fmtty$0=rest; - continue; - case 1: - var rest$0=fmtty$0[1]; - buffer_add_string(buf,cst_s); - var fmtty$0=rest$0; - continue; - case 2: - var rest$1=fmtty$0[1]; - buffer_add_string(buf,cst_i); - var fmtty$0=rest$1; - continue; - case 3: - var rest$2=fmtty$0[1]; - buffer_add_string(buf,cst_li); - var fmtty$0=rest$2; - continue; - case 4: - var rest$3=fmtty$0[1]; - buffer_add_string(buf,cst_ni); - var fmtty$0=rest$3; - continue; - case 5: - var rest$4=fmtty$0[1]; - buffer_add_string(buf,cst_Li); - var fmtty$0=rest$4; - continue; - case 6: - var rest$5=fmtty$0[1]; - buffer_add_string(buf,cst_f); - var fmtty$0=rest$5; - continue; - case 7: - var rest$6=fmtty$0[1]; - buffer_add_string(buf,cst_B); - var fmtty$0=rest$6; - continue; - case 8: - var rest$7=fmtty$0[2],sub_fmtty=fmtty$0[1]; - buffer_add_string(buf,cst$21); - bprint_fmtty(buf,sub_fmtty); - buffer_add_string(buf,cst$22); - var fmtty$0=rest$7; - continue; - case 9: - var rest$8=fmtty$0[3],sub_fmtty$0=fmtty$0[1]; - buffer_add_string(buf,cst$23); - bprint_fmtty(buf,sub_fmtty$0); - buffer_add_string(buf,cst$24); - var fmtty$0=rest$8; - continue; - case 10: - var rest$9=fmtty$0[1]; - buffer_add_string(buf,cst_a); - var fmtty$0=rest$9; - continue; - case 11: - var rest$10=fmtty$0[1]; - buffer_add_string(buf,cst_t$0); - var fmtty$0=rest$10; - continue; - case 12: - var rest$11=fmtty$0[1]; - buffer_add_string(buf,cst$25); - var fmtty$0=rest$11; - continue; - case 13: - var rest$12=fmtty$0[1]; - buffer_add_string(buf,cst_r$0); - var fmtty$0=rest$12; - continue; - default: - var rest$13=fmtty$0[1]; - buffer_add_string(buf,cst_r$1); - var fmtty$0=rest$13; - continue}}} - function int_of_custom_arity(param) - {if(! param)return 0; - var x=param[1]; - return 1 + int_of_custom_arity(x) | 0} - function string_of_fmt(fmt) - {var buf=buffer_create(16); - function fmtiter(fmt,ign_flag) - {var fmt$0=fmt,ign_flag$0=ign_flag; - a: - for(;;) - {if(typeof fmt$0 === "number")return 0; - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,99); - var fmt$0=rest,ign_flag$0=0; - continue; - case 1: - var rest$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,67); - var fmt$0=rest$0,ign_flag$0=0; - continue; - case 2: - var rest$1=fmt$0[2],pad=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad); - buffer_add_char(buf,115); - var fmt$0=rest$1,ign_flag$0=0; - continue; - case 3: - var rest$2=fmt$0[2],pad$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad$0); - buffer_add_char(buf,83); - var fmt$0=rest$2,ign_flag$0=0; - continue; - case 4: - var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_iconv_flag(buf,iconv); - bprint_padding(buf,pad$1); - bprint_precision(buf,prec); - buffer_add_char(buf,char_of_iconv(iconv)); - var fmt$0=rest$3,ign_flag$0=0; - continue; - case 5: - var - rest$4=fmt$0[4], - prec$0=fmt$0[3], - pad$2=fmt$0[2], - iconv$0=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$0,pad$2,prec$0,108); - var fmt$0=rest$4,ign_flag$0=0; - continue; - case 6: - var - rest$5=fmt$0[4], - prec$1=fmt$0[3], - pad$3=fmt$0[2], - iconv$1=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$1,pad$3,prec$1,110); - var fmt$0=rest$5,ign_flag$0=0; - continue; - case 7: - var - rest$6=fmt$0[4], - prec$2=fmt$0[3], - pad$4=fmt$0[2], - iconv$2=fmt$0[1]; - bprint_altint_fmt(buf,ign_flag$0,iconv$2,pad$4,prec$2,76); - var fmt$0=rest$6,ign_flag$0=0; - continue; - case 8: - var - rest$7=fmt$0[4], - prec$3=fmt$0[3], - pad$5=fmt$0[2], - fconv=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_fconv_flag(buf,fconv); - bprint_padding(buf,pad$5); - bprint_precision(buf,prec$3); - buffer_add_char(buf,char_of_fconv(0,fconv)); - var fmt$0=rest$7,ign_flag$0=0; - continue; - case 9: - var rest$8=fmt$0[2],pad$6=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_padding(buf,pad$6); - buffer_add_char(buf,66); - var fmt$0=rest$8,ign_flag$0=0; - continue; - case 10: - var rest$9=fmt$0[1]; - buffer_add_string(buf,cst$26); - var fmt$0=rest$9; - continue; - case 11: - var rest$10=fmt$0[2],str=fmt$0[1]; - bprint_string_literal(buf,str); - var fmt$0=rest$10; - continue; - case 12: - var rest$11=fmt$0[2],chr$0=fmt$0[1]; - bprint_char_literal(buf,chr$0); - var fmt$0=rest$11; - continue; - case 13: - var rest$12=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,pad_opt); - buffer_add_char(buf,123); - bprint_fmtty(buf,fmtty); - buffer_add_char(buf,37); - buffer_add_char(buf,125); - var fmt$0=rest$12,ign_flag$0=0; - continue; - case 14: - var rest$13=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,pad_opt$0); - buffer_add_char(buf,40); - bprint_fmtty(buf,fmtty$0); - buffer_add_char(buf,37); - buffer_add_char(buf,41); - var fmt$0=rest$13,ign_flag$0=0; - continue; - case 15: - var rest$14=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,97); - var fmt$0=rest$14,ign_flag$0=0; - continue; - case 16: - var rest$15=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,116); - var fmt$0=rest$15,ign_flag$0=0; - continue; - case 17: - var rest$16=fmt$0[2],fmting_lit=fmt$0[1]; - bprint_string_literal(buf,string_of_formatting_lit(fmting_lit)); - var fmt$0=rest$16; - continue; - case 18: - var rest$17=fmt$0[2],fmting_gen=fmt$0[1]; - if(0 === fmting_gen[0]) - {var match$1=fmting_gen[1],str$0=match$1[2]; - buffer_add_string(buf,cst$27); - buffer_add_string(buf,str$0)} - else - {var match$2=fmting_gen[1],str$1=match$2[2]; - buffer_add_string(buf,cst$28); - buffer_add_string(buf,str$1)} - var fmt$0=rest$17; - continue; - case 19: - var rest$18=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,114); - var fmt$0=rest$18,ign_flag$0=0; - continue; - case 20: - var rest$19=fmt$0[3],char_set=fmt$0[2],width_opt=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_pad_opt(buf,width_opt); - var - print_char= - function(buf,i) - {var c=char_of_int(i); - return 37 === c - ?(buffer_add_char(buf,37),buffer_add_char(buf,37)) - :64 === c - ?(buffer_add_char(buf,37),buffer_add_char(buf,64)) - :buffer_add_char(buf,c)}; - buffer_add_char(buf,91); - var - _uE_= - is_in_char_set(char_set,0) - ?(buffer_add_char(buf,94),rev_char_set(char_set)) - :char_set, - is_alone$0= - function(_uJ_) - {function is_alone(c) - {var - after=chr(c + 1 | 0), - before=chr(c - 1 | 0), - _uK_=is_in_char_set(_uJ_,c); - if(_uK_) - var - _uL_=is_in_char_set(_uJ_,before), - _uM_=_uL_?is_in_char_set(_uJ_,after):_uL_, - _uN_=1 - _uM_; - else - var _uN_=_uK_; - return _uN_} - return is_alone}, - is_alone=is_alone$0(_uE_); - if(is_alone(93))buffer_add_char(buf,93); - var i=1; - b: - for(;;) - {if(i < 256) - {if(! is_in_char_set(_uE_,char_of_int(i))) - {var i$0=i + 1 | 0,i=i$0;continue} - var match=char_of_int(i),switcher=match - 45 | 0,switch$0=0; - if(48 < switcher >>> 0) - if(210 <= switcher)print_char(buf,255);else switch$0 = 1; - else - {if(46 < switcher - 1 >>> 0) - {var i$2=i + 1 | 0,i=i$2;continue} - switch$0 = 1} - if(switch$0) - {var i$1=i + 1 | 0; - if(! is_in_char_set(_uE_,char_of_int(i$1))) - {print_char(buf,i$1 - 1 | 0); - var i$6=i$1 + 1 | 0,i=i$6; - continue} - var - match$0=char_of_int(i$1), - switcher$0=match$0 - 45 | 0, - switch$1=0; - if(48 < switcher$0 >>> 0) - if(210 <= switcher$0) - {print_char(buf,254);print_char(buf,255)} - else - switch$1 = 1; - else - if(46 < switcher$0 - 1 >>> 0) - {if(! is_in_char_set(_uE_,char_of_int(i$1 + 1 | 0))) - {print_char(buf,i$1 - 1 | 0); - var i$5=i$1 + 1 | 0,i=i$5; - continue} - switch$1 = 1} - else - switch$1 = 1; - if(switch$1) - {if(! is_in_char_set(_uE_,char_of_int(i$1 + 1 | 0))) - {print_char(buf,i$1 - 1 | 0); - print_char(buf,i$1); - var i$4=i$1 + 2 | 0,i=i$4; - continue} - var j=i$1 + 2 | 0,i$3=i$1 - 1 | 0,j$0=j; - for(;;) - {if(256 !== j$0 && is_in_char_set(_uE_,char_of_int(j$0))) - {var j$1=j$0 + 1 | 0,j$0=j$1;continue} - print_char(buf,i$3); - print_char(buf,45); - print_char(buf,j$0 - 1 | 0); - if(j$0 < 256){var i$7=j$0 + 1 | 0,i=i$7;continue b} - break}}}} - if(is_alone(45))buffer_add_char(buf,45); - buffer_add_char(buf,93); - var fmt$0=rest$19,ign_flag$0=0; - continue a} - case 21: - var rest$20=fmt$0[2],counter=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - switch(counter) - {case 0:var _uF_=108;break; - case 1:var _uF_=110;break; - default:var _uF_=78} - buffer_add_char(buf,_uF_); - var fmt$0=rest$20,ign_flag$0=0; - continue; - case 22: - var rest$21=fmt$0[1]; - buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - bprint_string_literal(buf,cst_0c); - var fmt$0=rest$21,ign_flag$0=0; - continue; - case 23: - var - rest$22=fmt$0[2], - ign=fmt$0[1], - match$3=param_format_of_ignored_format(ign,rest$22), - fmt$1=match$3[1], - fmt$0=fmt$1, - ign_flag$0=1; - continue; - default: - var - rest$23=fmt$0[3], - arity=fmt$0[1], - _uH_=int_of_custom_arity(arity), - _uG_=1; - if(_uH_ >= 1) - {var i$8=_uG_; - for(;;) - {buffer_add_char(buf,37); - bprint_ignored_flag(buf,ign_flag$0); - buffer_add_char(buf,63); - var _uI_=i$8 + 1 | 0; - if(_uH_ !== i$8){var i$8=_uI_;continue} - break}} - var fmt$0=rest$23,ign_flag$0=0; - continue}}} - fmtiter(fmt,0); - return buffer_contents(buf)} - function symm(param) - {if(typeof param === "number")return 0; - switch(param[0]) - {case 0:var rest=param[1];return [0,symm(rest)]; - case 1:var rest$0=param[1];return [1,symm(rest$0)]; - case 2:var rest$1=param[1];return [2,symm(rest$1)]; - case 3:var rest$2=param[1];return [3,symm(rest$2)]; - case 4:var rest$3=param[1];return [4,symm(rest$3)]; - case 5:var rest$4=param[1];return [5,symm(rest$4)]; - case 6:var rest$5=param[1];return [6,symm(rest$5)]; - case 7:var rest$6=param[1];return [7,symm(rest$6)]; - case 8:var rest$7=param[2],ty=param[1];return [8,ty,symm(rest$7)]; - case 9: - var rest$8=param[3],ty2=param[2],ty1=param[1]; - return [9,ty2,ty1,symm(rest$8)]; - case 10:var rest$9=param[1];return [10,symm(rest$9)]; - case 11:var rest$10=param[1];return [11,symm(rest$10)]; - case 12:var rest$11=param[1];return [12,symm(rest$11)]; - case 13:var rest$12=param[1];return [13,symm(rest$12)]; - default:var rest$13=param[1];return [14,symm(rest$13)]}} - function fmtty_rel_det(param) - {if(typeof param !== "number") - switch(param[0]) - {case 0: - var - rest=param[1], - match=fmtty_rel_det(rest), - de=match[4], - ed=match[3], - af=match[2], - fa=match[1], - _uj_=function(param){caml_call1(af,0);return 0}; - return [0,function(param){caml_call1(fa,0);return 0},_uj_,ed,de]; - case 1: - var - rest$0=param[1], - match$0=fmtty_rel_det(rest$0), - de$0=match$0[4], - ed$0=match$0[3], - af$0=match$0[2], - fa$0=match$0[1], - _uk_=function(param){caml_call1(af$0,0);return 0}; - return [0, - function(param){caml_call1(fa$0,0);return 0}, - _uk_, - ed$0, - de$0]; - case 2: - var - rest$1=param[1], - match$1=fmtty_rel_det(rest$1), - de$1=match$1[4], - ed$1=match$1[3], - af$1=match$1[2], - fa$1=match$1[1], - _ul_=function(param){caml_call1(af$1,0);return 0}; - return [0, - function(param){caml_call1(fa$1,0);return 0}, - _ul_, - ed$1, - de$1]; - case 3: - var - rest$2=param[1], - match$2=fmtty_rel_det(rest$2), - de$2=match$2[4], - ed$2=match$2[3], - af$2=match$2[2], - fa$2=match$2[1], - _um_=function(param){caml_call1(af$2,0);return 0}; - return [0, - function(param){caml_call1(fa$2,0);return 0}, - _um_, - ed$2, - de$2]; - case 4: - var - rest$3=param[1], - match$3=fmtty_rel_det(rest$3), - de$3=match$3[4], - ed$3=match$3[3], - af$3=match$3[2], - fa$3=match$3[1], - _un_=function(param){caml_call1(af$3,0);return 0}; - return [0, - function(param){caml_call1(fa$3,0);return 0}, - _un_, - ed$3, - de$3]; - case 5: - var - rest$4=param[1], - match$4=fmtty_rel_det(rest$4), - de$4=match$4[4], - ed$4=match$4[3], - af$4=match$4[2], - fa$4=match$4[1], - _uo_=function(param){caml_call1(af$4,0);return 0}; - return [0, - function(param){caml_call1(fa$4,0);return 0}, - _uo_, - ed$4, - de$4]; - case 6: - var - rest$5=param[1], - match$5=fmtty_rel_det(rest$5), - de$5=match$5[4], - ed$5=match$5[3], - af$5=match$5[2], - fa$5=match$5[1], - _up_=function(param){caml_call1(af$5,0);return 0}; - return [0, - function(param){caml_call1(fa$5,0);return 0}, - _up_, - ed$5, - de$5]; - case 7: - var - rest$6=param[1], - match$6=fmtty_rel_det(rest$6), - de$6=match$6[4], - ed$6=match$6[3], - af$6=match$6[2], - fa$6=match$6[1], - _uq_=function(param){caml_call1(af$6,0);return 0}; - return [0, - function(param){caml_call1(fa$6,0);return 0}, - _uq_, - ed$6, - de$6]; - case 8: - var - rest$7=param[2], - match$7=fmtty_rel_det(rest$7), - de$7=match$7[4], - ed$7=match$7[3], - af$7=match$7[2], - fa$7=match$7[1], - _ur_=function(param){caml_call1(af$7,0);return 0}; - return [0, - function(param){caml_call1(fa$7,0);return 0}, - _ur_, - ed$7, - de$7]; - case 9: - var - rest$8=param[3], - ty2=param[2], - ty1=param[1], - match$8=fmtty_rel_det(rest$8), - de$8=match$8[4], - ed$8=match$8[3], - af$8=match$8[2], - fa$8=match$8[1], - ty=trans(symm(ty1),ty2), - match$9=fmtty_rel_det(ty), - jd=match$9[4], - dj=match$9[3], - ga=match$9[2], - ag=match$9[1], - _us_=function(param){caml_call1(jd,0);caml_call1(de$8,0);return 0}, - _ut_=function(param){caml_call1(ed$8,0);caml_call1(dj,0);return 0}, - _uu_=function(param){caml_call1(ga,0);caml_call1(af$8,0);return 0}; - return [0, - function(param) - {caml_call1(fa$8,0);caml_call1(ag,0);return 0}, - _uu_, - _ut_, - _us_]; - case 10: - var - rest$9=param[1], - match$10=fmtty_rel_det(rest$9), - de$9=match$10[4], - ed$9=match$10[3], - af$9=match$10[2], - fa$9=match$10[1], - _uv_=function(param){caml_call1(af$9,0);return 0}; - return [0, - function(param){caml_call1(fa$9,0);return 0}, - _uv_, - ed$9, - de$9]; - case 11: - var - rest$10=param[1], - match$11=fmtty_rel_det(rest$10), - de$10=match$11[4], - ed$10=match$11[3], - af$10=match$11[2], - fa$10=match$11[1], - _uw_=function(param){caml_call1(af$10,0);return 0}; - return [0, - function(param){caml_call1(fa$10,0);return 0}, - _uw_, - ed$10, - de$10]; - case 12: - var - rest$11=param[1], - match$12=fmtty_rel_det(rest$11), - de$11=match$12[4], - ed$11=match$12[3], - af$11=match$12[2], - fa$11=match$12[1], - _ux_=function(param){caml_call1(af$11,0);return 0}; - return [0, - function(param){caml_call1(fa$11,0);return 0}, - _ux_, - ed$11, - de$11]; - case 13: - var - rest$12=param[1], - match$13=fmtty_rel_det(rest$12), - de$12=match$13[4], - ed$12=match$13[3], - af$12=match$13[2], - fa$12=match$13[1], - _uy_=function(param){caml_call1(de$12,0);return 0}, - _uz_=function(param){caml_call1(ed$12,0);return 0}, - _uA_=function(param){caml_call1(af$12,0);return 0}; - return [0, - function(param){caml_call1(fa$12,0);return 0}, - _uA_, - _uz_, - _uy_]; - default: - var - rest$13=param[1], - match$14=fmtty_rel_det(rest$13), - de$13=match$14[4], - ed$13=match$14[3], - af$13=match$14[2], - fa$13=match$14[1], - _uB_=function(param){caml_call1(de$13,0);return 0}, - _uC_=function(param){caml_call1(ed$13,0);return 0}, - _uD_=function(param){caml_call1(af$13,0);return 0}; - return [0, - function(param){caml_call1(fa$13,0);return 0}, - _uD_, - _uC_, - _uB_]} - function _ug_(param){return 0} - function _uh_(param){return 0} - function _ui_(param){return 0} - return [0,function(param){return 0},_ui_,_uh_,_ug_]} - function trans(ty1,ty2) - {var switch$0=0; - if(typeof ty1 === "number") - {if(typeof ty2 === "number")return 0; - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - default:throw [0,Assert_failure,_af_]}} - else - switch(ty1[0]) - {case 0: - var switch$1=0,_tZ_=ty1[1]; - if(typeof ty2 !== "number") - switch(ty2[0]) - {case 0:var rest2=ty2[1];return [0,trans(_tZ_,rest2)]; - case 8:switch$0 = 5;switch$1 = 1;break; - case 9:switch$0 = 6;switch$1 = 1;break; - case 10:switch$1 = 1;break; - case 11:switch$0 = 1;switch$1 = 1;break; - case 12:switch$0 = 2;switch$1 = 1;break; - case 13:switch$0 = 3;switch$1 = 1;break; - case 14:switch$0 = 4;switch$1 = 1;break - } - if(! switch$1)switch$0 = 7; - break; - case 1: - var switch$2=0,_t0_=ty1[1]; - if(typeof ty2 !== "number") - switch(ty2[0]) - {case 1:var rest2$0=ty2[1];return [1,trans(_t0_,rest2$0)]; - case 8:switch$0 = 5;switch$2 = 1;break; - case 9:switch$0 = 6;switch$2 = 1;break; - case 10:switch$2 = 1;break; - case 11:switch$0 = 1;switch$2 = 1;break; - case 12:switch$0 = 2;switch$2 = 1;break; - case 13:switch$0 = 3;switch$2 = 1;break; - case 14:switch$0 = 4;switch$2 = 1;break - } - if(! switch$2)switch$0 = 7; - break; - case 2: - var switch$3=0,_t1_=ty1[1]; - if(typeof ty2 === "number") - switch$3 = 1; - else - switch(ty2[0]) - {case 2:var rest2$1=ty2[1];return [2,trans(_t1_,rest2$1)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$3 = 1} - if(switch$3)switch$0 = 7; - break; - case 3: - var switch$4=0,_t2_=ty1[1]; - if(typeof ty2 === "number") - switch$4 = 1; - else - switch(ty2[0]) - {case 3:var rest2$2=ty2[1];return [3,trans(_t2_,rest2$2)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$4 = 1} - if(switch$4)switch$0 = 7; - break; - case 4: - var switch$5=0,_t3_=ty1[1]; - if(typeof ty2 === "number") - switch$5 = 1; - else - switch(ty2[0]) - {case 4:var rest2$3=ty2[1];return [4,trans(_t3_,rest2$3)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$5 = 1} - if(switch$5)switch$0 = 7; - break; - case 5: - var switch$6=0,_t4_=ty1[1]; - if(typeof ty2 === "number") - switch$6 = 1; - else - switch(ty2[0]) - {case 5:var rest2$4=ty2[1];return [5,trans(_t4_,rest2$4)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$6 = 1} - if(switch$6)switch$0 = 7; - break; - case 6: - var switch$7=0,_t5_=ty1[1]; - if(typeof ty2 === "number") - switch$7 = 1; - else - switch(ty2[0]) - {case 6:var rest2$5=ty2[1];return [6,trans(_t5_,rest2$5)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$7 = 1} - if(switch$7)switch$0 = 7; - break; - case 7: - var switch$8=0,_t6_=ty1[1]; - if(typeof ty2 === "number") - switch$8 = 1; - else - switch(ty2[0]) - {case 7:var rest2$6=ty2[1];return [7,trans(_t6_,rest2$6)]; - case 8:switch$0 = 5;break; - case 9:switch$0 = 6;break; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$8 = 1} - if(switch$8)switch$0 = 7; - break; - case 8: - var switch$9=0,_t7_=ty1[2],_t8_=ty1[1]; - if(typeof ty2 === "number") - switch$9 = 1; - else - switch(ty2[0]) - {case 8: - var rest2$7=ty2[2],ty2$0=ty2[1],_t9_=trans(_t7_,rest2$7); - return [8,trans(_t8_,ty2$0),_t9_]; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$9 = 1} - if(switch$9)throw [0,Assert_failure,_ao_]; - break; - case 9: - var switch$10=0,_t__=ty1[3],_t$_=ty1[2],_ua_=ty1[1]; - if(typeof ty2 === "number") - switch$10 = 1; - else - switch(ty2[0]) - {case 8:switch$0 = 5;break; - case 9: - var - rest2$8=ty2[3], - ty22=ty2[2], - ty21=ty2[1], - ty=trans(symm(_t$_),ty21), - match=fmtty_rel_det(ty), - f4=match[4], - f2=match[2]; - caml_call1(f2,0); - caml_call1(f4,0); - return [9,_ua_,ty22,trans(_t__,rest2$8)]; - case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:switch$0 = 4;break; - default:switch$10 = 1} - if(switch$10)throw [0,Assert_failure,_ap_]; - break; - case 10: - var _ub_=ty1[1]; - if(typeof ty2 !== "number" && 10 === ty2[0]) - {var rest2$9=ty2[1];return [10,trans(_ub_,rest2$9)]} - throw [0,Assert_failure,_aq_]; - case 11: - var switch$11=0,_uc_=ty1[1]; - if(typeof ty2 === "number") - switch$11 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:var rest2$10=ty2[1];return [11,trans(_uc_,rest2$10)]; - default:switch$11 = 1} - if(switch$11)throw [0,Assert_failure,_ar_]; - break; - case 12: - var switch$12=0,_ud_=ty1[1]; - if(typeof ty2 === "number") - switch$12 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:var rest2$11=ty2[1];return [12,trans(_ud_,rest2$11)]; - default:switch$12 = 1} - if(switch$12)throw [0,Assert_failure,_as_]; - break; - case 13: - var switch$13=0,_ue_=ty1[1]; - if(typeof ty2 === "number") - switch$13 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:var rest2$12=ty2[1];return [13,trans(_ue_,rest2$12)]; - default:switch$13 = 1} - if(switch$13)throw [0,Assert_failure,_at_]; - break; - default: - var switch$14=0,_uf_=ty1[1]; - if(typeof ty2 === "number") - switch$14 = 1; - else - switch(ty2[0]) - {case 10:break; - case 11:switch$0 = 1;break; - case 12:switch$0 = 2;break; - case 13:switch$0 = 3;break; - case 14:var rest2$13=ty2[1];return [14,trans(_uf_,rest2$13)]; - default:switch$14 = 1} - if(switch$14)throw [0,Assert_failure,_au_]} - switch(switch$0) - {case 0:throw [0,Assert_failure,_ai_]; - case 1:throw [0,Assert_failure,_aj_]; - case 2:throw [0,Assert_failure,_ak_]; - case 3:throw [0,Assert_failure,_al_]; - case 4:throw [0,Assert_failure,_am_]; - case 5:throw [0,Assert_failure,_ag_]; - case 6:throw [0,Assert_failure,_ah_]; - default:throw [0,Assert_failure,_an_]}} - function fmtty_of_padding_fmtty(pad,fmtty) - {return typeof pad === "number"?fmtty:0 === pad[0]?fmtty:[2,fmtty]} - function fmtty_of_custom(arity,fmtty) - {if(! arity)return fmtty; - var arity$0=arity[1]; - return [12,fmtty_of_custom(arity$0,fmtty)]} - function fmtty_of_fmt(fmtty) - {var fmtty$0=fmtty; - for(;;) - {if(typeof fmtty$0 === "number")return 0; - switch(fmtty$0[0]) - {case 0:var rest=fmtty$0[1];return [0,fmtty_of_fmt(rest)]; - case 1:var rest$0=fmtty$0[1];return [0,fmtty_of_fmt(rest$0)]; - case 2: - var rest$1=fmtty$0[2],pad=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad,[1,fmtty_of_fmt(rest$1)]); - case 3: - var rest$2=fmtty$0[2],pad$0=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$0,[1,fmtty_of_fmt(rest$2)]); - case 4: - var - rest$3=fmtty$0[4], - prec=fmtty$0[3], - pad$1=fmtty$0[2], - ty_rest=fmtty_of_fmt(rest$3), - prec_ty=fmtty_of_precision_fmtty(prec,[2,ty_rest]); - return fmtty_of_padding_fmtty(pad$1,prec_ty); - case 5: - var - rest$4=fmtty$0[4], - prec$0=fmtty$0[3], - pad$2=fmtty$0[2], - ty_rest$0=fmtty_of_fmt(rest$4), - prec_ty$0=fmtty_of_precision_fmtty(prec$0,[3,ty_rest$0]); - return fmtty_of_padding_fmtty(pad$2,prec_ty$0); - case 6: - var - rest$5=fmtty$0[4], - prec$1=fmtty$0[3], - pad$3=fmtty$0[2], - ty_rest$1=fmtty_of_fmt(rest$5), - prec_ty$1=fmtty_of_precision_fmtty(prec$1,[4,ty_rest$1]); - return fmtty_of_padding_fmtty(pad$3,prec_ty$1); - case 7: - var - rest$6=fmtty$0[4], - prec$2=fmtty$0[3], - pad$4=fmtty$0[2], - ty_rest$2=fmtty_of_fmt(rest$6), - prec_ty$2=fmtty_of_precision_fmtty(prec$2,[5,ty_rest$2]); - return fmtty_of_padding_fmtty(pad$4,prec_ty$2); - case 8: - var - rest$7=fmtty$0[4], - prec$3=fmtty$0[3], - pad$5=fmtty$0[2], - ty_rest$3=fmtty_of_fmt(rest$7), - prec_ty$3=fmtty_of_precision_fmtty(prec$3,[6,ty_rest$3]); - return fmtty_of_padding_fmtty(pad$5,prec_ty$3); - case 9: - var rest$8=fmtty$0[2],pad$6=fmtty$0[1]; - return fmtty_of_padding_fmtty(pad$6,[7,fmtty_of_fmt(rest$8)]); - case 10:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; - case 11:var fmtty$2=fmtty$0[2],fmtty$0=fmtty$2;continue; - case 12:var fmtty$3=fmtty$0[2],fmtty$0=fmtty$3;continue; - case 13: - var rest$9=fmtty$0[3],ty=fmtty$0[2]; - return [8,ty,fmtty_of_fmt(rest$9)]; - case 14: - var rest$10=fmtty$0[3],ty$0=fmtty$0[2]; - return [9,ty$0,ty$0,fmtty_of_fmt(rest$10)]; - case 15:var rest$11=fmtty$0[1];return [10,fmtty_of_fmt(rest$11)]; - case 16:var rest$12=fmtty$0[1];return [11,fmtty_of_fmt(rest$12)]; - case 17:var fmtty$4=fmtty$0[2],fmtty$0=fmtty$4;continue; - case 18: - var - rest$13=fmtty$0[2], - fmting_gen=fmtty$0[1], - _tX_=fmtty_of_fmt(rest$13); - if(0 === fmting_gen[0]) - var match=fmting_gen[1],fmt=match[1],_tY_=fmtty_of_fmt(fmt); - else - var - match$0=fmting_gen[1], - fmt$0=match$0[1], - _tY_=fmtty_of_fmt(fmt$0); - return concat_fmtty(_tY_,_tX_); - case 19:var rest$14=fmtty$0[1];return [13,fmtty_of_fmt(rest$14)]; - case 20:var rest$15=fmtty$0[3];return [1,fmtty_of_fmt(rest$15)]; - case 21:var rest$16=fmtty$0[2];return [2,fmtty_of_fmt(rest$16)]; - case 22:var rest$17=fmtty$0[1];return [0,fmtty_of_fmt(rest$17)]; - case 23: - var rest$18=fmtty$0[2],ign=fmtty$0[1]; - if(typeof ign === "number") - switch(ign) - {case 0:var fmtty$0=rest$18;continue; - case 1:var fmtty$0=rest$18;continue; - case 2:return [14,fmtty_of_fmt(rest$18)]; - default:var fmtty$0=rest$18;continue} - switch(ign[0]) - {case 0:var fmtty$0=rest$18;continue; - case 1:var fmtty$0=rest$18;continue; - case 2:var fmtty$0=rest$18;continue; - case 3:var fmtty$0=rest$18;continue; - case 4:var fmtty$0=rest$18;continue; - case 5:var fmtty$0=rest$18;continue; - case 6:var fmtty$0=rest$18;continue; - case 7:var fmtty$0=rest$18;continue; - case 8:var fmtty$0=rest$18;continue; - case 9: - var fmtty$5=ign[2]; - return concat_fmtty(fmtty$5,fmtty_of_fmt(rest$18)); - case 10:var fmtty$0=rest$18;continue; - default:var fmtty$0=rest$18;continue} - default: - var rest$19=fmtty$0[3],arity=fmtty$0[1]; - return fmtty_of_custom(arity,fmtty_of_fmt(rest$19))}}} - function fmtty_of_precision_fmtty(prec,fmtty) - {return typeof prec === "number"?prec?[2,fmtty]:fmtty:fmtty} - var - Type_mismatch= - [248,cst_CamlinternalFormat_Type_mi,caml_fresh_oo_id(0)]; - function type_padding(pad,fmtty) - {if(typeof pad === "number")return [0,0,fmtty]; - if(0 === pad[0]){var w=pad[2],padty=pad[1];return [0,[0,padty,w],fmtty]} - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var rest=fmtty[1],padty$0=pad[1];return [0,[1,padty$0],rest]} - throw Type_mismatch} - function type_padprec(pad,prec,fmtty) - {var match=type_padding(pad,fmtty); - if(typeof prec !== "number") - {var rest$1=match[2],pad$2=match[1],p=prec[1]; - return [0,pad$2,[0,p],rest$1]} - if(! prec){var rest$0=match[2],pad$1=match[1];return [0,pad$1,0,rest$0]} - var _tW_=match[2]; - if(typeof _tW_ !== "number" && 2 === _tW_[0]) - {var rest=_tW_[1],pad$0=match[1];return [0,pad$0,1,rest]} - throw Type_mismatch} - function type_format(fmt,fmtty) - {var _tV_=type_format_gen(fmt,fmtty); - if(typeof _tV_[2] !== "number")throw Type_mismatch; - var fmt$0=_tV_[1]; - return fmt$0} - function type_ignored_param_one(ign,fmt,fmtty) - {var match=type_format_gen(fmt,fmtty),fmtty$0=match[2],fmt$0=match[1]; - return [0,[23,ign,fmt$0],fmtty$0]} - function type_format_gen(fmt,fmtty) - {if(typeof fmt === "number")return [0,0,fmtty]; - switch(fmt[0]) - {case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest=fmtty[1], - fmt_rest=fmt[1], - match=type_format_gen(fmt_rest,fmtty_rest), - fmtty$0=match[2], - fmt$0=match[1]; - return [0,[0,fmt$0],fmtty$0]} - break; - case 1: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest$0=fmtty[1], - fmt_rest$0=fmt[1], - match$0=type_format_gen(fmt_rest$0,fmtty_rest$0), - fmtty$1=match$0[2], - fmt$1=match$0[1]; - return [0,[1,fmt$1],fmtty$1]} - break; - case 2: - var - fmt_rest$1=fmt[2], - pad=fmt[1], - match$1=type_padding(pad,fmtty), - _tE_=match$1[2], - _tD_=match$1[1]; - if(typeof _tE_ !== "number" && 1 === _tE_[0]) - {var - fmtty_rest$1=_tE_[1], - match$2=type_format_gen(fmt_rest$1,fmtty_rest$1), - fmtty$2=match$2[2], - fmt$2=match$2[1]; - return [0,[2,_tD_,fmt$2],fmtty$2]} - throw Type_mismatch; - case 3: - var - fmt_rest$2=fmt[2], - pad$0=fmt[1], - match$3=type_padding(pad$0,fmtty), - _tG_=match$3[2], - _tF_=match$3[1]; - if(typeof _tG_ !== "number" && 1 === _tG_[0]) - {var - fmtty_rest$2=_tG_[1], - match$4=type_format_gen(fmt_rest$2,fmtty_rest$2), - fmtty$3=match$4[2], - fmt$3=match$4[1]; - return [0,[3,_tF_,fmt$3],fmtty$3]} - throw Type_mismatch; - case 4: - var - fmt_rest$3=fmt[4], - prec=fmt[3], - pad$1=fmt[2], - iconv=fmt[1], - match$5=type_padprec(pad$1,prec,fmtty), - _tI_=match$5[3], - _tH_=match$5[1]; - if(typeof _tI_ !== "number" && 2 === _tI_[0]) - {var - fmtty_rest$3=_tI_[1], - prec$0=match$5[2], - match$6=type_format_gen(fmt_rest$3,fmtty_rest$3), - fmtty$4=match$6[2], - fmt$4=match$6[1]; - return [0,[4,iconv,_tH_,prec$0,fmt$4],fmtty$4]} - throw Type_mismatch; - case 5: - var - fmt_rest$4=fmt[4], - prec$1=fmt[3], - pad$2=fmt[2], - iconv$0=fmt[1], - match$7=type_padprec(pad$2,prec$1,fmtty), - _tK_=match$7[3], - _tJ_=match$7[1]; - if(typeof _tK_ !== "number" && 3 === _tK_[0]) - {var - fmtty_rest$4=_tK_[1], - prec$2=match$7[2], - match$8=type_format_gen(fmt_rest$4,fmtty_rest$4), - fmtty$5=match$8[2], - fmt$5=match$8[1]; - return [0,[5,iconv$0,_tJ_,prec$2,fmt$5],fmtty$5]} - throw Type_mismatch; - case 6: - var - fmt_rest$5=fmt[4], - prec$3=fmt[3], - pad$3=fmt[2], - iconv$1=fmt[1], - match$9=type_padprec(pad$3,prec$3,fmtty), - _tM_=match$9[3], - _tL_=match$9[1]; - if(typeof _tM_ !== "number" && 4 === _tM_[0]) - {var - fmtty_rest$5=_tM_[1], - prec$4=match$9[2], - match$10=type_format_gen(fmt_rest$5,fmtty_rest$5), - fmtty$6=match$10[2], - fmt$6=match$10[1]; - return [0,[6,iconv$1,_tL_,prec$4,fmt$6],fmtty$6]} - throw Type_mismatch; - case 7: - var - fmt_rest$6=fmt[4], - prec$5=fmt[3], - pad$4=fmt[2], - iconv$2=fmt[1], - match$11=type_padprec(pad$4,prec$5,fmtty), - _tO_=match$11[3], - _tN_=match$11[1]; - if(typeof _tO_ !== "number" && 5 === _tO_[0]) - {var - fmtty_rest$6=_tO_[1], - prec$6=match$11[2], - match$12=type_format_gen(fmt_rest$6,fmtty_rest$6), - fmtty$7=match$12[2], - fmt$7=match$12[1]; - return [0,[7,iconv$2,_tN_,prec$6,fmt$7],fmtty$7]} - throw Type_mismatch; - case 8: - var - fmt_rest$7=fmt[4], - prec$7=fmt[3], - pad$5=fmt[2], - fconv=fmt[1], - match$13=type_padprec(pad$5,prec$7,fmtty), - _tQ_=match$13[3], - _tP_=match$13[1]; - if(typeof _tQ_ !== "number" && 6 === _tQ_[0]) - {var - fmtty_rest$7=_tQ_[1], - prec$8=match$13[2], - match$14=type_format_gen(fmt_rest$7,fmtty_rest$7), - fmtty$8=match$14[2], - fmt$8=match$14[1]; - return [0,[8,fconv,_tP_,prec$8,fmt$8],fmtty$8]} - throw Type_mismatch; - case 9: - var - fmt_rest$8=fmt[2], - pad$6=fmt[1], - match$15=type_padding(pad$6,fmtty), - _tS_=match$15[2], - _tR_=match$15[1]; - if(typeof _tS_ !== "number" && 7 === _tS_[0]) - {var - fmtty_rest$8=_tS_[1], - match$16=type_format_gen(fmt_rest$8,fmtty_rest$8), - fmtty$9=match$16[2], - fmt$9=match$16[1]; - return [0,[9,_tR_,fmt$9],fmtty$9]} - throw Type_mismatch; - case 10: - var - fmt_rest$9=fmt[1], - match$17=type_format_gen(fmt_rest$9,fmtty), - fmtty$10=match$17[2], - fmt$10=match$17[1]; - return [0,[10,fmt$10],fmtty$10]; - case 11: - var - fmt_rest$10=fmt[2], - str=fmt[1], - match$18=type_format_gen(fmt_rest$10,fmtty), - fmtty$11=match$18[2], - fmt$11=match$18[1]; - return [0,[11,str,fmt$11],fmtty$11]; - case 12: - var - fmt_rest$11=fmt[2], - chr=fmt[1], - match$19=type_format_gen(fmt_rest$11,fmtty), - fmtty$12=match$19[2], - fmt$12=match$19[1]; - return [0,[12,chr,fmt$12],fmtty$12]; - case 13: - if(typeof fmtty !== "number" && 8 === fmtty[0]) - {var - fmtty_rest$9=fmtty[2], - sub_fmtty=fmtty[1], - fmt_rest$12=fmt[3], - sub_fmtty$0=fmt[2], - pad_opt=fmt[1]; - if(caml_notequal([0,sub_fmtty$0],[0,sub_fmtty])) - throw Type_mismatch; - var - match$20=type_format_gen(fmt_rest$12,fmtty_rest$9), - fmtty$13=match$20[2], - fmt$13=match$20[1]; - return [0,[13,pad_opt,sub_fmtty,fmt$13],fmtty$13]} - break; - case 14: - if(typeof fmtty !== "number" && 9 === fmtty[0]) - {var - fmtty_rest$10=fmtty[3], - sub_fmtty1=fmtty[1], - fmt_rest$13=fmt[3], - sub_fmtty$1=fmt[2], - pad_opt$0=fmt[1], - _tT_=[0,erase_rel(sub_fmtty1)]; - if(caml_notequal([0,erase_rel(sub_fmtty$1)],_tT_)) - throw Type_mismatch; - var - match$21=type_format_gen(fmt_rest$13,erase_rel(fmtty_rest$10)), - fmtty$14=match$21[2], - fmt$14=match$21[1]; - return [0,[14,pad_opt$0,sub_fmtty1,fmt$14],fmtty$14]} - break; - case 15: - if(typeof fmtty !== "number" && 10 === fmtty[0]) - {var - fmtty_rest$11=fmtty[1], - fmt_rest$14=fmt[1], - match$22=type_format_gen(fmt_rest$14,fmtty_rest$11), - fmtty$15=match$22[2], - fmt$15=match$22[1]; - return [0,[15,fmt$15],fmtty$15]} - break; - case 16: - if(typeof fmtty !== "number" && 11 === fmtty[0]) - {var - fmtty_rest$12=fmtty[1], - fmt_rest$15=fmt[1], - match$23=type_format_gen(fmt_rest$15,fmtty_rest$12), - fmtty$16=match$23[2], - fmt$16=match$23[1]; - return [0,[16,fmt$16],fmtty$16]} - break; - case 17: - var - fmt_rest$16=fmt[2], - formatting_lit=fmt[1], - match$24=type_format_gen(fmt_rest$16,fmtty), - fmtty$17=match$24[2], - fmt$17=match$24[1]; - return [0,[17,formatting_lit,fmt$17],fmtty$17]; - case 18: - var fmt_rest$17=fmt[2],formatting_gen=fmt[1]; - if(0 === formatting_gen[0]) - {var - match$28=formatting_gen[1], - str$0=match$28[2], - fmt1=match$28[1], - match$29=type_format_gen(fmt1,fmtty), - fmtty2=match$29[2], - fmt2=match$29[1], - match$30=type_format_gen(fmt_rest$17,fmtty2), - fmtty3=match$30[2], - fmt3=match$30[1]; - return [0,[18,[0,[0,fmt2,str$0]],fmt3],fmtty3]} - var - match$31=formatting_gen[1], - str$1=match$31[2], - fmt1$0=match$31[1], - match$32=type_format_gen(fmt1$0,fmtty), - fmtty2$0=match$32[2], - fmt2$0=match$32[1], - match$33=type_format_gen(fmt_rest$17,fmtty2$0), - fmtty3$0=match$33[2], - fmt3$0=match$33[1]; - return [0,[18,[1,[0,fmt2$0,str$1]],fmt3$0],fmtty3$0]; - case 19: - if(typeof fmtty !== "number" && 13 === fmtty[0]) - {var - fmtty_rest$13=fmtty[1], - fmt_rest$18=fmt[1], - match$25=type_format_gen(fmt_rest$18,fmtty_rest$13), - fmtty$18=match$25[2], - fmt$18=match$25[1]; - return [0,[19,fmt$18],fmtty$18]} - break; - case 20: - if(typeof fmtty !== "number" && 1 === fmtty[0]) - {var - fmtty_rest$14=fmtty[1], - fmt_rest$19=fmt[3], - char_set=fmt[2], - width_opt=fmt[1], - match$26=type_format_gen(fmt_rest$19,fmtty_rest$14), - fmtty$19=match$26[2], - fmt$19=match$26[1]; - return [0,[20,width_opt,char_set,fmt$19],fmtty$19]} - break; - case 21: - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var - fmtty_rest$15=fmtty[1], - fmt_rest$20=fmt[2], - counter=fmt[1], - match$27=type_format_gen(fmt_rest$20,fmtty_rest$15), - fmtty$20=match$27[2], - fmt$20=match$27[1]; - return [0,[21,counter,fmt$20],fmtty$20]} - break; - case 23: - var rest=fmt[2],ign=fmt[1]; - if(typeof ign !== "number") - switch(ign[0]) - {case 0:return type_ignored_param_one(ign,rest,fmtty); - case 1:return type_ignored_param_one(ign,rest,fmtty); - case 2:return type_ignored_param_one(ign,rest,fmtty); - case 3:return type_ignored_param_one(ign,rest,fmtty); - case 4:return type_ignored_param_one(ign,rest,fmtty); - case 5:return type_ignored_param_one(ign,rest,fmtty); - case 6:return type_ignored_param_one(ign,rest,fmtty); - case 7:return type_ignored_param_one(ign,rest,fmtty); - case 8: - var sub_fmtty$2=ign[2],pad_opt$1=ign[1]; - return type_ignored_param_one - ([8,pad_opt$1,sub_fmtty$2],rest,fmtty); - case 9: - var - sub_fmtty$3=ign[2], - pad_opt$2=ign[1], - _tU_=type_ignored_format_substituti(sub_fmtty$3,rest,fmtty), - match$35=_tU_[2], - fmtty$22=match$35[2], - fmt$22=match$35[1], - sub_fmtty$4=_tU_[1]; - return [0,[23,[9,pad_opt$2,sub_fmtty$4],fmt$22],fmtty$22]; - case 10:return type_ignored_param_one(ign,rest,fmtty); - default:return type_ignored_param_one(ign,rest,fmtty)} - switch(ign) - {case 0:return type_ignored_param_one(ign,rest,fmtty); - case 1:return type_ignored_param_one(ign,rest,fmtty); - case 2: - if(typeof fmtty !== "number" && 14 === fmtty[0]) - {var - fmtty_rest$16=fmtty[1], - match$34=type_format_gen(rest,fmtty_rest$16), - fmtty$21=match$34[2], - fmt$21=match$34[1]; - return [0,[23,2,fmt$21],fmtty$21]} - throw Type_mismatch; - default:return type_ignored_param_one(ign,rest,fmtty)} - } - throw Type_mismatch} - function type_ignored_format_substituti(sub_fmtty,fmt,fmtty) - {if(typeof sub_fmtty === "number") - return [0,0,type_format_gen(fmt,fmtty)]; - switch(sub_fmtty[0]) - {case 0: - if(typeof fmtty !== "number" && 0 === fmtty[0]) - {var - fmtty_rest=fmtty[1], - sub_fmtty_rest=sub_fmtty[1], - match= - type_ignored_format_substituti(sub_fmtty_rest,fmt,fmtty_rest), - fmt$0=match[2], - sub_fmtty_rest$0=match[1]; - return [0,[0,sub_fmtty_rest$0],fmt$0]} - break; - case 1: - if(typeof fmtty !== "number" && 1 === fmtty[0]) - {var - fmtty_rest$0=fmtty[1], - sub_fmtty_rest$1=sub_fmtty[1], - match$0= - type_ignored_format_substituti(sub_fmtty_rest$1,fmt,fmtty_rest$0), - fmt$1=match$0[2], - sub_fmtty_rest$2=match$0[1]; - return [0,[1,sub_fmtty_rest$2],fmt$1]} - break; - case 2: - if(typeof fmtty !== "number" && 2 === fmtty[0]) - {var - fmtty_rest$1=fmtty[1], - sub_fmtty_rest$3=sub_fmtty[1], - match$1= - type_ignored_format_substituti(sub_fmtty_rest$3,fmt,fmtty_rest$1), - fmt$2=match$1[2], - sub_fmtty_rest$4=match$1[1]; - return [0,[2,sub_fmtty_rest$4],fmt$2]} - break; - case 3: - if(typeof fmtty !== "number" && 3 === fmtty[0]) - {var - fmtty_rest$2=fmtty[1], - sub_fmtty_rest$5=sub_fmtty[1], - match$2= - type_ignored_format_substituti(sub_fmtty_rest$5,fmt,fmtty_rest$2), - fmt$3=match$2[2], - sub_fmtty_rest$6=match$2[1]; - return [0,[3,sub_fmtty_rest$6],fmt$3]} - break; - case 4: - if(typeof fmtty !== "number" && 4 === fmtty[0]) - {var - fmtty_rest$3=fmtty[1], - sub_fmtty_rest$7=sub_fmtty[1], - match$3= - type_ignored_format_substituti(sub_fmtty_rest$7,fmt,fmtty_rest$3), - fmt$4=match$3[2], - sub_fmtty_rest$8=match$3[1]; - return [0,[4,sub_fmtty_rest$8],fmt$4]} - break; - case 5: - if(typeof fmtty !== "number" && 5 === fmtty[0]) - {var - fmtty_rest$4=fmtty[1], - sub_fmtty_rest$9=sub_fmtty[1], - match$4= - type_ignored_format_substituti(sub_fmtty_rest$9,fmt,fmtty_rest$4), - fmt$5=match$4[2], - sub_fmtty_rest$10=match$4[1]; - return [0,[5,sub_fmtty_rest$10],fmt$5]} - break; - case 6: - if(typeof fmtty !== "number" && 6 === fmtty[0]) - {var - fmtty_rest$5=fmtty[1], - sub_fmtty_rest$11=sub_fmtty[1], - match$5= - type_ignored_format_substituti - (sub_fmtty_rest$11,fmt,fmtty_rest$5), - fmt$6=match$5[2], - sub_fmtty_rest$12=match$5[1]; - return [0,[6,sub_fmtty_rest$12],fmt$6]} - break; - case 7: - if(typeof fmtty !== "number" && 7 === fmtty[0]) - {var - fmtty_rest$6=fmtty[1], - sub_fmtty_rest$13=sub_fmtty[1], - match$6= - type_ignored_format_substituti - (sub_fmtty_rest$13,fmt,fmtty_rest$6), - fmt$7=match$6[2], - sub_fmtty_rest$14=match$6[1]; - return [0,[7,sub_fmtty_rest$14],fmt$7]} - break; - case 8: - if(typeof fmtty !== "number" && 8 === fmtty[0]) - {var - fmtty_rest$7=fmtty[2], - sub2_fmtty=fmtty[1], - sub_fmtty_rest$15=sub_fmtty[2], - sub2_fmtty$0=sub_fmtty[1]; - if(caml_notequal([0,sub2_fmtty$0],[0,sub2_fmtty])) - throw Type_mismatch; - var - match$7= - type_ignored_format_substituti - (sub_fmtty_rest$15,fmt,fmtty_rest$7), - fmt$8=match$7[2], - sub_fmtty_rest$16=match$7[1]; - return [0,[8,sub2_fmtty,sub_fmtty_rest$16],fmt$8]} - break; - case 9: - if(typeof fmtty !== "number" && 9 === fmtty[0]) - {var - fmtty_rest$8=fmtty[3], - sub2_fmtty$1=fmtty[2], - sub1_fmtty=fmtty[1], - sub_fmtty_rest$17=sub_fmtty[3], - sub2_fmtty$2=sub_fmtty[2], - sub1_fmtty$0=sub_fmtty[1], - _tB_=[0,erase_rel(sub1_fmtty)]; - if(caml_notequal([0,erase_rel(sub1_fmtty$0)],_tB_)) - throw Type_mismatch; - var _tC_=[0,erase_rel(sub2_fmtty$1)]; - if(caml_notequal([0,erase_rel(sub2_fmtty$2)],_tC_)) - throw Type_mismatch; - var - sub_fmtty$0=trans(symm(sub1_fmtty),sub2_fmtty$1), - match$8=fmtty_rel_det(sub_fmtty$0), - f4=match$8[4], - f2=match$8[2]; - caml_call1(f2,0); - caml_call1(f4,0); - var - match$9= - type_ignored_format_substituti - (erase_rel(sub_fmtty_rest$17),fmt,fmtty_rest$8), - fmt$9=match$9[2], - sub_fmtty_rest$18=match$9[1]; - return [0, - [9,sub1_fmtty,sub2_fmtty$1,symm(sub_fmtty_rest$18)], - fmt$9]} - break; - case 10: - if(typeof fmtty !== "number" && 10 === fmtty[0]) - {var - fmtty_rest$9=fmtty[1], - sub_fmtty_rest$19=sub_fmtty[1], - match$10= - type_ignored_format_substituti - (sub_fmtty_rest$19,fmt,fmtty_rest$9), - fmt$10=match$10[2], - sub_fmtty_rest$20=match$10[1]; - return [0,[10,sub_fmtty_rest$20],fmt$10]} - break; - case 11: - if(typeof fmtty !== "number" && 11 === fmtty[0]) - {var - fmtty_rest$10=fmtty[1], - sub_fmtty_rest$21=sub_fmtty[1], - match$11= - type_ignored_format_substituti - (sub_fmtty_rest$21,fmt,fmtty_rest$10), - fmt$11=match$11[2], - sub_fmtty_rest$22=match$11[1]; - return [0,[11,sub_fmtty_rest$22],fmt$11]} - break; - case 13: - if(typeof fmtty !== "number" && 13 === fmtty[0]) - {var - fmtty_rest$11=fmtty[1], - sub_fmtty_rest$23=sub_fmtty[1], - match$12= - type_ignored_format_substituti - (sub_fmtty_rest$23,fmt,fmtty_rest$11), - fmt$12=match$12[2], - sub_fmtty_rest$24=match$12[1]; - return [0,[13,sub_fmtty_rest$24],fmt$12]} - break; - case 14: - if(typeof fmtty !== "number" && 14 === fmtty[0]) - {var - fmtty_rest$12=fmtty[1], - sub_fmtty_rest$25=sub_fmtty[1], - match$13= - type_ignored_format_substituti - (sub_fmtty_rest$25,fmt,fmtty_rest$12), - fmt$13=match$13[2], - sub_fmtty_rest$26=match$13[1]; - return [0,[14,sub_fmtty_rest$26],fmt$13]} - break - } - throw Type_mismatch} - function recast(fmt,fmtty){return type_format(fmt,erase_rel(symm(fmtty)))} - function fix_padding(padty,width,str) - {var - len=caml_ml_string_length(str), - padty$0=0 <= width?padty:0, - width$0=abs(width); - if(width$0 <= len)return str; - var _tA_=2 === padty$0?48:32,res=make$0(width$0,_tA_); - switch(padty$0) - {case 0:blit$0(str,0,res,0,len);break; - case 1:blit$0(str,0,res,width$0 - len | 0,len);break; - default: - var switch$0=0; - if(0 < len) - {var switch$1=0; - if - (43 - !== - caml_string_get(str,0) - && - 45 - !== - caml_string_get(str,0) - && - 32 - !== - caml_string_get(str,0)) - {switch$0 = 1;switch$1 = 1} - if(! switch$1) - {caml_bytes_set(res,0,caml_string_get(str,0)); - blit$0(str,1,res,(width$0 - len | 0) + 1 | 0,len - 1 | 0)}} - else - switch$0 = 1; - if(switch$0) - {var switch$2=0; - if(1 < len && 48 === caml_string_get(str,0)) - {var switch$3=0; - if - (120 - !== - caml_string_get(str,1) - && - 88 - !== - caml_string_get(str,1)) - {switch$2 = 1;switch$3 = 1} - if(! switch$3) - {caml_bytes_set(res,1,caml_string_get(str,1)); - blit$0(str,2,res,(width$0 - len | 0) + 2 | 0,len - 2 | 0)}} - else - switch$2 = 1; - if(switch$2)blit$0(str,0,res,width$0 - len | 0,len)}} - return caml_string_of_bytes(res)} - function fix_int_precision(prec,str) - {var - prec$0=abs(prec), - len=caml_ml_string_length(str), - c=caml_string_get(str,0), - switch$0=0; - if(58 <= c) - {if(71 <= c) - {if(5 >= c - 97 >>> 0)switch$0 = 1} - else - if(65 <= c)switch$0 = 1} - else - {var switch$1=0; - if(32 !== c) - if(43 <= c) - switch(c - 43 | 0) - {case 5: - if(len < (prec$0 + 2 | 0) && 1 < len) - {var switch$2=0; - if - (120 - === - caml_string_get(str,1) - || - 88 - === - caml_string_get(str,1)) - switch$2 = 1; - if(switch$2) - {var res$1=make$0(prec$0 + 2 | 0,48); - caml_bytes_set(res$1,1,caml_string_get(str,1)); - blit$0(str,2,res$1,(prec$0 - len | 0) + 4 | 0,len - 2 | 0); - return caml_string_of_bytes(res$1)}} - switch$0 = 1; - switch$1 = 1; - break; - case 0: - case 2:break; - case 1: - case 3: - case 4:switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1} - else - switch$1 = 1; - if(! switch$1 && len < (prec$0 + 1 | 0)) - {var res$0=make$0(prec$0 + 1 | 0,48); - caml_bytes_set(res$0,0,c); - blit$0(str,1,res$0,(prec$0 - len | 0) + 2 | 0,len - 1 | 0); - return caml_string_of_bytes(res$0)}} - if(switch$0 && len < prec$0) - {var res=make$0(prec$0,48); - blit$0(str,0,res,prec$0 - len | 0,len); - return caml_string_of_bytes(res)} - return str} - function string_to_caml_string(str) - {var - str$0=escaped$1(str), - l=caml_ml_string_length(str$0), - res=make$0(l + 2 | 0,34); - caml_blit_string(str$0,0,res,1,l); - return caml_string_of_bytes(res)} - function format_of_fconv(fconv,prec) - {var - prec$0=abs(prec), - symb=char_of_fconv(_av_,fconv), - buf=buffer_create(16); - buffer_add_char(buf,37); - bprint_fconv_flag(buf,fconv); - buffer_add_char(buf,46); - buffer_add_string(buf,caml_string_of_jsbytes("" + prec$0)); - buffer_add_char(buf,symb); - return buffer_contents(buf)} - function transform_int_alt(iconv,s) - {if(13 > iconv)return s; - var n=[0,0],_tv_=caml_ml_string_length(s) - 1 | 0,_tu_=0; - if(_tv_ >= 0) - {var i$0=_tu_; - for(;;) - {var match=caml_string_unsafe_get(s,i$0); - if(9 >= match - 48 >>> 0)n[1]++; - var _tz_=i$0 + 1 | 0; - if(_tv_ !== i$0){var i$0=_tz_;continue} - break}} - var - digits=n[1], - buf= - caml_create_bytes - (caml_ml_string_length(s) + ((digits - 1 | 0) / 3 | 0) | 0), - pos=[0,0]; - function put(c){caml_bytes_set(buf,pos[1],c);pos[1]++;return 0} - var - left=[0,((digits - 1 | 0) % 3 | 0) + 1 | 0], - _tx_=caml_ml_string_length(s) - 1 | 0, - _tw_=0; - if(_tx_ >= 0) - {var i=_tw_; - for(;;) - {var c=caml_string_unsafe_get(s,i); - if(9 < c - 48 >>> 0) - put(c); - else - {if(0 === left[1]){put(95);left[1] = 3}left[1] += -1;put(c)} - var _ty_=i + 1 | 0; - if(_tx_ !== i){var i=_ty_;continue} - break}} - return caml_string_of_bytes(buf)} - function convert_int(iconv,n) - {switch(iconv) - {case 1:var _tt_=cst_d$3;break; - case 2:var _tt_=cst_d$4;break; - case 4:var _tt_=cst_i$1;break; - case 5:var _tt_=cst_i$2;break; - case 6:var _tt_=cst_x;break; - case 7:var _tt_=cst_x$0;break; - case 8:var _tt_=cst_X$0;break; - case 9:var _tt_=cst_X$1;break; - case 10:var _tt_=cst_o;break; - case 11:var _tt_=cst_o$0;break; - case 0: - case 13:var _tt_=cst_d$2;break; - case 3: - case 14:var _tt_=cst_i$0;break; - default:var _tt_=cst_u} - return transform_int_alt(iconv,caml_format_int(_tt_,n))} - function convert_int32(iconv,n) - {switch(iconv) - {case 1:var _ts_=cst_ld$0;break; - case 2:var _ts_=cst_ld$1;break; - case 4:var _ts_=cst_li$1;break; - case 5:var _ts_=cst_li$2;break; - case 6:var _ts_=cst_lx;break; - case 7:var _ts_=cst_lx$0;break; - case 8:var _ts_=cst_lX;break; - case 9:var _ts_=cst_lX$0;break; - case 10:var _ts_=cst_lo;break; - case 11:var _ts_=cst_lo$0;break; - case 0: - case 13:var _ts_=cst_ld;break; - case 3: - case 14:var _ts_=cst_li$0;break; - default:var _ts_=cst_lu} - return transform_int_alt(iconv,caml_format_int(_ts_,n))} - function convert_nativeint(iconv,n) - {switch(iconv) - {case 1:var _tr_=cst_nd$0;break; - case 2:var _tr_=cst_nd$1;break; - case 4:var _tr_=cst_ni$1;break; - case 5:var _tr_=cst_ni$2;break; - case 6:var _tr_=cst_nx;break; - case 7:var _tr_=cst_nx$0;break; - case 8:var _tr_=cst_nX;break; - case 9:var _tr_=cst_nX$0;break; - case 10:var _tr_=cst_no;break; - case 11:var _tr_=cst_no$0;break; - case 0: - case 13:var _tr_=cst_nd;break; - case 3: - case 14:var _tr_=cst_ni$0;break; - default:var _tr_=cst_nu} - return transform_int_alt(iconv,caml_format_int(_tr_,n))} - function convert_int64(iconv,n) - {switch(iconv) - {case 1:var _tq_=cst_Ld$0;break; - case 2:var _tq_=cst_Ld$1;break; - case 4:var _tq_=cst_Li$1;break; - case 5:var _tq_=cst_Li$2;break; - case 6:var _tq_=cst_Lx;break; - case 7:var _tq_=cst_Lx$0;break; - case 8:var _tq_=cst_LX;break; - case 9:var _tq_=cst_LX$0;break; - case 10:var _tq_=cst_Lo;break; - case 11:var _tq_=cst_Lo$0;break; - case 0: - case 13:var _tq_=cst_Ld;break; - case 3: - case 14:var _tq_=cst_Li$0;break; - default:var _tq_=cst_Lu} - return transform_int_alt(iconv,caml_int64_format(_tq_,n))} - function convert_float(fconv,prec,x) - {function hex(param) - {switch(fconv[1]) - {case 0:var sign=45;break; - case 1:var sign=43;break; - default:var sign=32} - return runtime.caml_hexstring_of_float(x,prec,sign)} - function caml_special_val(str) - {var match=runtime.caml_classify_float(x); - return 3 === match - ?x < 0.?cst_neg_infinity:cst_infinity - :4 <= match?cst_nan:str} - switch(fconv[2]) - {case 5: - var - str=caml_format_float(format_of_fconv(fconv,prec),x), - len=caml_ml_string_length(str), - i=0; - for(;;) - {if(i === len) - var _to_=0; - else - {var match=caml_string_get(str,i),_tn_=match - 46 | 0,switch$0=0; - if(23 < _tn_ >>> 0) - {if(55 === _tn_)switch$0 = 1} - else - if(21 < _tn_ - 1 >>> 0)switch$0 = 1; - if(! switch$0){var i$0=i + 1 | 0,i=i$0;continue} - var _to_=1} - var _tp_=_to_?str:cat(str,cst$29); - return caml_special_val(_tp_)} - case 6:return hex(0); - case 7:return uppercase_ascii$1(hex(0)); - case 8:return caml_special_val(hex(0)); - default:return caml_format_float(format_of_fconv(fconv,prec),x)}} - function string_of_fmtty(fmtty) - {var buf=buffer_create(16); - bprint_fmtty(buf,fmtty); - return buffer_contents(buf)} - function make_int_padding_precision(k,acc,fmt,pad,prec,trans,iconv) - {if(typeof pad === "number") - {if(typeof prec === "number") - return prec - ?function(p,x) - {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)} - :function(x) - {var str=caml_call2(trans,iconv,x); - return make_printf(k,[4,acc,str],fmt)}; - var p=prec[1]; - return function(x) - {var str=fix_int_precision(p,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}} - if(0 === pad[0]) - {var _tk_=pad[2],_tl_=pad[1]; - if(typeof prec === "number") - return prec - ?function(p,x) - {var - str= - fix_padding - (_tl_,_tk_,fix_int_precision(p,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)} - :function(x) - {var str=fix_padding(_tl_,_tk_,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}; - var p$0=prec[1]; - return function(x) - {var - str= - fix_padding - (_tl_,_tk_,fix_int_precision(p$0,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)}} - var _tm_=pad[1]; - if(typeof prec === "number") - return prec - ?function(w,p,x) - {var - str= - fix_padding - (_tm_,w,fix_int_precision(p,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)} - :function(w,x) - {var str=fix_padding(_tm_,w,caml_call2(trans,iconv,x)); - return make_printf(k,[4,acc,str],fmt)}; - var p$1=prec[1]; - return function(w,x) - {var - str= - fix_padding(_tm_,w,fix_int_precision(p$1,caml_call2(trans,iconv,x))); - return make_printf(k,[4,acc,str],fmt)}} - function make_padding(k,acc,fmt,pad,trans) - {if(typeof pad === "number") - return function(x) - {var new_acc=[4,acc,caml_call1(trans,x)]; - return make_printf(k,new_acc,fmt)}; - if(0 === pad[0]) - {var width=pad[2],padty=pad[1]; - return function(x) - {var new_acc=[4,acc,fix_padding(padty,width,caml_call1(trans,x))]; - return make_printf(k,new_acc,fmt)}} - var padty$0=pad[1]; - return function(w,x) - {var new_acc=[4,acc,fix_padding(padty$0,w,caml_call1(trans,x))]; - return make_printf(k,new_acc,fmt)}} - function make_printf$0(counter,k,acc,fmt) - {var k$0=k,acc$0=acc,fmt$0=fmt; - for(;;) - {if(typeof fmt$0 === "number")return caml_call1(k$0,acc$0); - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - return function(c) - {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest)}; - case 1: - var rest$0=fmt$0[1]; - return function(c) - {var - str=escaped(c), - l=caml_ml_string_length(str), - res=make$0(l + 2 | 0,39); - caml_blit_string(str,0,res,1,l); - var new_acc=[4,acc$0,caml_string_of_bytes(res)]; - return make_printf(k$0,new_acc,rest$0)}; - case 2: - var rest$1=fmt$0[2],pad=fmt$0[1]; - return make_padding(k$0,acc$0,rest$1,pad,function(str){return str}); - case 3: - var rest$2=fmt$0[2],pad$0=fmt$0[1]; - return make_padding(k$0,acc$0,rest$2,pad$0,string_to_caml_string); - case 4: - var rest$3=fmt$0[4],prec=fmt$0[3],pad$1=fmt$0[2],iconv=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$3,pad$1,prec,convert_int,iconv); - case 5: - var - rest$4=fmt$0[4], - prec$0=fmt$0[3], - pad$2=fmt$0[2], - iconv$0=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$4,pad$2,prec$0,convert_int32,iconv$0); - case 6: - var - rest$5=fmt$0[4], - prec$1=fmt$0[3], - pad$3=fmt$0[2], - iconv$1=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$5,pad$3,prec$1,convert_nativeint,iconv$1); - case 7: - var - rest$6=fmt$0[4], - prec$2=fmt$0[3], - pad$4=fmt$0[2], - iconv$2=fmt$0[1]; - return make_int_padding_precision - (k$0,acc$0,rest$6,pad$4,prec$2,convert_int64,iconv$2); - case 8: - var rest$7=fmt$0[4],prec$3=fmt$0[3],pad$5=fmt$0[2],fconv=fmt$0[1]; - if(typeof pad$5 === "number") - {if(typeof prec$3 === "number") - return prec$3 - ?function(p,x) - {var str=convert_float(fconv,p,x); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(x) - {var - str= - convert_float(fconv,default_float_precision(fconv),x); - return make_printf(k$0,[4,acc$0,str],rest$7)}; - var p=prec$3[1]; - return function(x) - {var str=convert_float(fconv,p,x); - return make_printf(k$0,[4,acc$0,str],rest$7)}} - if(0 === pad$5[0]) - {var _th_=pad$5[2],_ti_=pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ?function(p,x) - {var str=fix_padding(_ti_,_th_,convert_float(fconv,p,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(x) - {var - str=convert_float(fconv,default_float_precision(fconv),x), - str$0=fix_padding(_ti_,_th_,str); - return make_printf(k$0,[4,acc$0,str$0],rest$7)}; - var p$0=prec$3[1]; - return function(x) - {var str=fix_padding(_ti_,_th_,convert_float(fconv,p$0,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)}} - var _tj_=pad$5[1]; - if(typeof prec$3 === "number") - return prec$3 - ?function(w,p,x) - {var str=fix_padding(_tj_,w,convert_float(fconv,p,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)} - :function(w,x) - {var - str=convert_float(fconv,default_float_precision(fconv),x), - str$0=fix_padding(_tj_,w,str); - return make_printf(k$0,[4,acc$0,str$0],rest$7)}; - var p$1=prec$3[1]; - return function(w,x) - {var str=fix_padding(_tj_,w,convert_float(fconv,p$1,x)); - return make_printf(k$0,[4,acc$0,str],rest$7)}; - case 9: - var rest$8=fmt$0[2],pad$6=fmt$0[1]; - return make_padding(k$0,acc$0,rest$8,pad$6,string_of_bool); - case 10: - var fmt$1=fmt$0[1],acc$1=[7,acc$0],acc$0=acc$1,fmt$0=fmt$1; - continue; - case 11: - var - fmt$2=fmt$0[2], - str=fmt$0[1], - acc$2=[2,acc$0,str], - acc$0=acc$2, - fmt$0=fmt$2; - continue; - case 12: - var - fmt$3=fmt$0[2], - chr=fmt$0[1], - acc$3=[3,acc$0,chr], - acc$0=acc$3, - fmt$0=fmt$3; - continue; - case 13: - var - rest$9=fmt$0[3], - sub_fmtty=fmt$0[2], - ty=string_of_fmtty(sub_fmtty); - return function(str){return make_printf(k$0,[4,acc$0,ty],rest$9)}; - case 14: - var rest$10=fmt$0[3],fmtty=fmt$0[2]; - return function(param) - {var fmt=param[1]; - return make_printf - (k$0,acc$0,concat_fmt(recast(fmt,fmtty),rest$10))}; - case 15: - var rest$11=fmt$0[1]; - return function(f,x) - {return make_printf - (k$0, - [6,acc$0,function(o){return caml_call2(f,o,x)}], - rest$11)}; - case 16: - var rest$12=fmt$0[1]; - return function(f){return make_printf(k$0,[6,acc$0,f],rest$12)}; - case 17: - var - fmt$4=fmt$0[2], - fmting_lit=fmt$0[1], - acc$4=[0,acc$0,fmting_lit], - acc$0=acc$4, - fmt$0=fmt$4; - continue; - case 18: - var _tf_=fmt$0[1]; - if(0 === _tf_[0]) - {var - rest$13=fmt$0[2], - match=_tf_[1], - fmt$5=match[1], - k$3= - function(acc,k,rest) - {function k$0(kacc) - {return make_printf(k,[1,acc,[0,kacc]],rest)} - return k$0}, - k$1=k$3(acc$0,k$0,rest$13), - k$0=k$1, - acc$0=0, - fmt$0=fmt$5; - continue} - var - rest$14=fmt$0[2], - match$0=_tf_[1], - fmt$6=match$0[1], - k$4= - function(acc,k,rest) - {function k$0(kacc){return make_printf(k,[1,acc,[1,kacc]],rest)} - return k$0}, - k$2=k$4(acc$0,k$0,rest$14), - k$0=k$2, - acc$0=0, - fmt$0=fmt$6; - continue; - case 19:throw [0,Assert_failure,_aw_]; - case 20: - var rest$15=fmt$0[3],new_acc=[8,acc$0,cst_Printf_bad_conversion]; - return function(param){return make_printf(k$0,new_acc,rest$15)}; - case 21: - var rest$16=fmt$0[2]; - return function(n) - {var new_acc=[4,acc$0,caml_format_int(cst_u$0,n)]; - return make_printf(k$0,new_acc,rest$16)}; - case 22: - var rest$17=fmt$0[1]; - return function(c) - {var new_acc=[5,acc$0,c];return make_printf(k$0,new_acc,rest$17)}; - case 23: - var rest$18=fmt$0[2],ign=fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (make_ignored_param$0,[0,k$0,acc$0,ign,rest$18]); - var counter$1=counter + 1 | 0; - return make_ignored_param$0(counter$1,k$0,acc$0,ign,rest$18); - default: - var - rest$19=fmt$0[3], - f=fmt$0[2], - arity=fmt$0[1], - _tg_=caml_call1(f,0); - if(counter >= 50) - return caml_trampoline_return - (make_custom$0,[0,k$0,acc$0,rest$19,arity,_tg_]); - var counter$0=counter + 1 | 0; - return make_custom$0(counter$0,k$0,acc$0,rest$19,arity,_tg_)}}} - function make_ignored_param$0(counter,k,acc,ign,fmt) - {if(typeof ign === "number") - switch(ign) - {case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$0=counter + 1 | 0; - return make_invalid_arg(counter$0,k,acc,fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$1=counter + 1 | 0; - return make_invalid_arg(counter$1,k,acc,fmt); - case 2:throw [0,Assert_failure,_ax_]; - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$2=counter + 1 | 0; - return make_invalid_arg(counter$2,k,acc,fmt)} - switch(ign[0]) - {case 0: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$3=counter + 1 | 0; - return make_invalid_arg(counter$3,k,acc,fmt); - case 1: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$4=counter + 1 | 0; - return make_invalid_arg(counter$4,k,acc,fmt); - case 2: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$5=counter + 1 | 0; - return make_invalid_arg(counter$5,k,acc,fmt); - case 3: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$6=counter + 1 | 0; - return make_invalid_arg(counter$6,k,acc,fmt); - case 4: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$7=counter + 1 | 0; - return make_invalid_arg(counter$7,k,acc,fmt); - case 5: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$8=counter + 1 | 0; - return make_invalid_arg(counter$8,k,acc,fmt); - case 6: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$9=counter + 1 | 0; - return make_invalid_arg(counter$9,k,acc,fmt); - case 7: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$10=counter + 1 | 0; - return make_invalid_arg(counter$10,k,acc,fmt); - case 8: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$11=counter + 1 | 0; - return make_invalid_arg(counter$11,k,acc,fmt); - case 9: - var fmtty=ign[2]; - if(counter >= 50) - return caml_trampoline_return(make_from_fmtty$0,[0,k,acc,fmtty,fmt]); - var counter$14=counter + 1 | 0; - return make_from_fmtty$0(counter$14,k,acc,fmtty,fmt); - case 10: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$12=counter + 1 | 0; - return make_invalid_arg(counter$12,k,acc,fmt); - default: - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$13=counter + 1 | 0; - return make_invalid_arg(counter$13,k,acc,fmt)}} - function make_from_fmtty$0(counter,k,acc,fmtty,fmt) - {if(typeof fmtty !== "number") - switch(fmtty[0]) - {case 0: - var rest=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest,fmt)}; - case 1: - var rest$0=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$0,fmt)}; - case 2: - var rest$1=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$1,fmt)}; - case 3: - var rest$2=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$2,fmt)}; - case 4: - var rest$3=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$3,fmt)}; - case 5: - var rest$4=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$4,fmt)}; - case 6: - var rest$5=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$5,fmt)}; - case 7: - var rest$6=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$6,fmt)}; - case 8: - var rest$7=fmtty[2]; - return function(param){return make_from_fmtty(k,acc,rest$7,fmt)}; - case 9: - var - rest$8=fmtty[3], - ty2=fmtty[2], - ty1=fmtty[1], - ty=trans(symm(ty1),ty2); - return function(param) - {return make_from_fmtty(k,acc,concat_fmtty(ty,rest$8),fmt)}; - case 10: - var rest$9=fmtty[1]; - return function(param,_te_) - {return make_from_fmtty(k,acc,rest$9,fmt)}; - case 11: - var rest$10=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$10,fmt)}; - case 12: - var rest$11=fmtty[1]; - return function(param){return make_from_fmtty(k,acc,rest$11,fmt)}; - case 13:throw [0,Assert_failure,_ay_]; - default:throw [0,Assert_failure,_az_]} - if(counter >= 50) - return caml_trampoline_return(make_invalid_arg,[0,k,acc,fmt]); - var counter$0=counter + 1 | 0; - return make_invalid_arg(counter$0,k,acc,fmt)} - function make_invalid_arg(counter,k,acc,fmt) - {var _td_=[8,acc,cst_Printf_bad_conversion$0]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0,[0,k,_td_,fmt]); - var counter$0=counter + 1 | 0; - return make_printf$0(counter$0,k,_td_,fmt)} - function make_custom$0(counter,k,acc,rest,arity,f) - {if(arity) - {var arity$0=arity[1]; - return function(x) - {return make_custom(k,acc,rest,arity$0,caml_call1(f,x))}} - var _tc_=[4,acc,f]; - if(counter >= 50) - return caml_trampoline_return(make_printf$0,[0,k,_tc_,rest]); - var counter$0=counter + 1 | 0; - return make_printf$0(counter$0,k,_tc_,rest)} - function make_printf(k,acc,fmt) - {return caml_trampoline(make_printf$0(0,k,acc,fmt))} - function make_ignored_param(k,acc,ign,fmt) - {return caml_trampoline(make_ignored_param$0(0,k,acc,ign,fmt))} - function make_from_fmtty(k,acc,fmtty,fmt) - {return caml_trampoline(make_from_fmtty$0(0,k,acc,fmtty,fmt))} - function make_custom(k,acc,rest,arity,f) - {return caml_trampoline(make_custom$0(0,k,acc,rest,arity,f))} - function fn_of_padding_precision(k,o,fmt,pad,prec) - {if(typeof pad === "number") - {if(typeof prec !== "number") - {var _sN_=make_iprintf(k,o,fmt);return function(_tb_){return _sN_}} - if(prec) - {var _sK_=make_iprintf(k,o,fmt),_sL_=function(_ta_){return _sK_}; - return function(_s$_){return _sL_}} - var _sM_=make_iprintf(k,o,fmt); - return function(_s__){return _sM_}} - if(0 === pad[0]) - {if(typeof prec !== "number") - {var _sR_=make_iprintf(k,o,fmt);return function(_s9_){return _sR_}} - if(prec) - {var _sO_=make_iprintf(k,o,fmt),_sP_=function(_s8_){return _sO_}; - return function(_s7_){return _sP_}} - var _sQ_=make_iprintf(k,o,fmt); - return function(_s6_){return _sQ_}} - if(typeof prec !== "number") - {var _sX_=make_iprintf(k,o,fmt),_sY_=function(_s5_){return _sX_}; - return function(_s4_){return _sY_}} - if(prec) - {var - _sS_=make_iprintf(k,o,fmt), - _sT_=function(_s3_){return _sS_}, - _sU_=function(_s2_){return _sT_}; - return function(_s1_){return _sU_}} - var _sV_=make_iprintf(k,o,fmt); - function _sW_(_s0_){return _sV_} - return function(_sZ_){return _sW_}} - function make_iprintf$0(counter,k,o,fmt) - {var k$0=k,fmt$0=fmt; - for(;;) - {if(typeof fmt$0 === "number")return caml_call1(k$0,o); - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1],_r1_=make_iprintf(k$0,o,rest); - return function(_sJ_){return _r1_}; - case 1: - var rest$0=fmt$0[1],_r2_=make_iprintf(k$0,o,rest$0); - return function(_sI_){return _r2_}; - case 2: - var _r3_=fmt$0[1]; - if(typeof _r3_ === "number") - {var rest$1=fmt$0[2],_r4_=make_iprintf(k$0,o,rest$1); - return function(_sH_){return _r4_}} - if(0 === _r3_[0]) - {var rest$2=fmt$0[2],_r5_=make_iprintf(k$0,o,rest$2); - return function(_sG_){return _r5_}} - var - rest$3=fmt$0[2], - _r6_=make_iprintf(k$0,o,rest$3), - _r7_=function(_sF_){return _r6_}; - return function(_sE_){return _r7_}; - case 3: - var _r8_=fmt$0[1]; - if(typeof _r8_ === "number") - {var rest$4=fmt$0[2],_r9_=make_iprintf(k$0,o,rest$4); - return function(_sD_){return _r9_}} - if(0 === _r8_[0]) - {var rest$5=fmt$0[2],_r__=make_iprintf(k$0,o,rest$5); - return function(_sC_){return _r__}} - var - rest$6=fmt$0[2], - _r$_=make_iprintf(k$0,o,rest$6), - _sa_=function(_sB_){return _r$_}; - return function(_sA_){return _sa_}; - case 4: - var rest$7=fmt$0[4],prec=fmt$0[3],pad=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$7,pad,prec); - case 5: - var rest$8=fmt$0[4],prec$0=fmt$0[3],pad$0=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$8,pad$0,prec$0); - case 6: - var rest$9=fmt$0[4],prec$1=fmt$0[3],pad$1=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$9,pad$1,prec$1); - case 7: - var rest$10=fmt$0[4],prec$2=fmt$0[3],pad$2=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$10,pad$2,prec$2); - case 8: - var rest$11=fmt$0[4],prec$3=fmt$0[3],pad$3=fmt$0[2]; - return fn_of_padding_precision(k$0,o,rest$11,pad$3,prec$3); - case 9: - var _sb_=fmt$0[1]; - if(typeof _sb_ === "number") - {var rest$12=fmt$0[2],_sc_=make_iprintf(k$0,o,rest$12); - return function(_sz_){return _sc_}} - if(0 === _sb_[0]) - {var rest$13=fmt$0[2],_sd_=make_iprintf(k$0,o,rest$13); - return function(_sy_){return _sd_}} - var - rest$14=fmt$0[2], - _se_=make_iprintf(k$0,o,rest$14), - _sf_=function(_sx_){return _se_}; - return function(_sw_){return _sf_}; - case 10:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; - case 11:var fmt$2=fmt$0[2],fmt$0=fmt$2;continue; - case 12:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; - case 13: - var rest$15=fmt$0[3],_sg_=make_iprintf(k$0,o,rest$15); - return function(_sv_){return _sg_}; - case 14: - var rest$16=fmt$0[3],fmtty=fmt$0[2]; - return function(param) - {var fmt=param[1]; - return make_iprintf(k$0,o,concat_fmt(recast(fmt,fmtty),rest$16))}; - case 15: - var - rest$17=fmt$0[1], - _sh_=make_iprintf(k$0,o,rest$17), - _si_=function(_su_){return _sh_}; - return function(_st_){return _si_}; - case 16: - var rest$18=fmt$0[1],_sj_=make_iprintf(k$0,o,rest$18); - return function(_ss_){return _sj_}; - case 17:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; - case 18: - var _sk_=fmt$0[1]; - if(0 === _sk_[0]) - {var - rest$19=fmt$0[2], - match=_sk_[1], - fmt$5=match[1], - k$3= - function(k,rest) - {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, - k$1=k$3(k$0,rest$19), - k$0=k$1, - fmt$0=fmt$5; - continue} - var - rest$20=fmt$0[2], - match$0=_sk_[1], - fmt$6=match$0[1], - k$4= - function(k,rest) - {function k$0(koc){return make_iprintf(k,koc,rest)}return k$0}, - k$2=k$4(k$0,rest$20), - k$0=k$2, - fmt$0=fmt$6; - continue; - case 19:throw [0,Assert_failure,_aA_]; - case 20: - var rest$21=fmt$0[3],_sl_=make_iprintf(k$0,o,rest$21); - return function(_sr_){return _sl_}; - case 21: - var rest$22=fmt$0[2],_sm_=make_iprintf(k$0,o,rest$22); - return function(_sq_){return _sm_}; - case 22: - var rest$23=fmt$0[1],_sn_=make_iprintf(k$0,o,rest$23); - return function(_sp_){return _sn_}; - case 23: - var rest$24=fmt$0[2],ign=fmt$0[1],_so_=0; - return make_ignored_param - (function(param){return caml_call1(k$0,o)},_so_,ign,rest$24); - default: - var rest$25=fmt$0[3],arity=fmt$0[1]; - if(counter >= 50) - return caml_trampoline_return - (fn_of_custom_arity$0,[0,k$0,o,rest$25,arity]); - var counter$0=counter + 1 | 0; - return fn_of_custom_arity$0(counter$0,k$0,o,rest$25,arity)}}} - function fn_of_custom_arity$0(counter,k,o,fmt,param) - {if(param) - {var arity=param[1],_rZ_=fn_of_custom_arity(k,o,fmt,arity); - return function(_r0_){return _rZ_}} - if(counter >= 50) - return caml_trampoline_return(make_iprintf$0,[0,k,o,fmt]); - var counter$0=counter + 1 | 0; - return make_iprintf$0(counter$0,k,o,fmt)} - function make_iprintf(k,o,fmt) - {return caml_trampoline(make_iprintf$0(0,k,o,fmt))} - function fn_of_custom_arity(k,o,fmt,param) - {return caml_trampoline(fn_of_custom_arity$0(0,k,o,fmt,param))} - function output_acc(o,acc) - {var acc$0=acc; - for(;;) - {if(typeof acc$0 === "number")return 0; - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - output_acc(o,p); - return output_string(o,s); - case 1: - var _rX_=acc$0[2],_rY_=acc$0[1]; - if(0 === _rX_[0]) - {var acc$1=_rX_[1]; - output_acc(o,_rY_); - output_string(o,cst$30); - var acc$0=acc$1; - continue} - var acc$2=_rX_[1]; - output_acc(o,_rY_); - output_string(o,cst$31); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - output_acc(o,p$2); - return caml_call1(f,o); - case 7:var p$3=acc$0[1];output_acc(o,p$3);return caml_ml_flush(o); - case 8: - var msg=acc$0[2],p$4=acc$0[1]; - output_acc(o,p$4); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - output_acc(o,p$0); - return output_string(o,s$0); - default: - var c=acc$0[2],p$1=acc$0[1]; - output_acc(o,p$1); - return caml_ml_output_char(o,c)}}} - function bufput_acc(b,acc) - {var acc$0=acc; - for(;;) - {if(typeof acc$0 === "number")return 0; - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - bufput_acc(b,p); - return add_string(b,s); - case 1: - var _rV_=acc$0[2],_rW_=acc$0[1]; - if(0 === _rV_[0]) - {var acc$1=_rV_[1]; - bufput_acc(b,_rW_); - add_string(b,cst$32); - var acc$0=acc$1; - continue} - var acc$2=_rV_[1]; - bufput_acc(b,_rW_); - add_string(b,cst$33); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - bufput_acc(b,p$2); - return caml_call1(f,b); - case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; - case 8: - var msg=acc$0[2],p$3=acc$0[1]; - bufput_acc(b,p$3); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - bufput_acc(b,p$0); - return add_string(b,s$0); - default: - var c=acc$0[2],p$1=acc$0[1];bufput_acc(b,p$1);return add_char(b,c)}}} - function strput_acc(b,acc) - {var acc$0=acc; - for(;;) - {if(typeof acc$0 === "number")return 0; - switch(acc$0[0]) - {case 0: - var - fmting_lit=acc$0[2], - p=acc$0[1], - s=string_of_formatting_lit(fmting_lit); - strput_acc(b,p); - return add_string(b,s); - case 1: - var _rT_=acc$0[2],_rU_=acc$0[1]; - if(0 === _rT_[0]) - {var acc$1=_rT_[1]; - strput_acc(b,_rU_); - add_string(b,cst$34); - var acc$0=acc$1; - continue} - var acc$2=_rT_[1]; - strput_acc(b,_rU_); - add_string(b,cst$35); - var acc$0=acc$2; - continue; - case 6: - var f=acc$0[2],p$2=acc$0[1]; - strput_acc(b,p$2); - return add_string(b,caml_call1(f,0)); - case 7:var acc$3=acc$0[1],acc$0=acc$3;continue; - case 8: - var msg=acc$0[2],p$3=acc$0[1]; - strput_acc(b,p$3); - return invalid_arg(msg); - case 2: - case 4: - var s$0=acc$0[2],p$0=acc$0[1]; - strput_acc(b,p$0); - return add_string(b,s$0); - default: - var c=acc$0[2],p$1=acc$0[1];strput_acc(b,p$1);return add_char(b,c)}}} - function failwith_message(param) - {var fmt=param[1],buf=create$2(256); - function k(acc){strput_acc(buf,acc);return failwith(contents(buf))} - return make_printf(k,0,fmt)} - function open_box_of_string(str) - {if(caml_string_equal(str,cst$36))return _aB_; - var len=caml_ml_string_length(str); - function invalid_box(param) - {return caml_call1(failwith_message(_aC_),str)} - function parse_spaces(i) - {var i$0=i; - for(;;) - {if(i$0 === len)return i$0; - var match=caml_string_get(str,i$0); - if(9 !== match && 32 !== match)return i$0; - var i$1=i$0 + 1 | 0,i$0=i$1}} - function parse_lword(i,j) - {var j$0=j; - for(;;) - {if(j$0 === len)return j$0; - var match=caml_string_get(str,j$0); - if(25 < match - 97 >>> 0)return j$0; - var j$1=j$0 + 1 | 0,j$0=j$1}} - function parse_int(i,j) - {var j$0=j; - for(;;) - {if(j$0 === len)return j$0; - var match=caml_string_get(str,j$0),switch$0=0; - if(48 <= match) - {if(58 > match)switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)return j$0; - var j$1=j$0 + 1 | 0,j$0=j$1}} - var - wstart=parse_spaces(0), - wend=parse_lword(wstart,wstart), - box_name=sub$0(str,wstart,wend - wstart | 0), - nstart=parse_spaces(wend), - nend=parse_int(nstart,nstart); - if(nstart === nend) - var indent=0; - else - try - {var - _rR_=caml_int_of_string(sub$0(str,nstart,nend - nstart | 0)), - indent=_rR_} - catch(_rS_) - {_rS_ = caml_wrap_exception(_rS_); - if(_rS_[1] !== Failure)throw _rS_; - var indent=invalid_box(0)} - var exp_end=parse_spaces(nend); - if(exp_end !== len)invalid_box(0); - var switch$0=0; - if - (caml_string_notequal(box_name,cst$37) - && - caml_string_notequal(box_name,cst_b$0)) - var - box_type= - caml_string_notequal(box_name,cst_h) - ?caml_string_notequal(box_name,cst_hov) - ?caml_string_notequal(box_name,cst_hv) - ?caml_string_notequal(box_name,cst_v)?invalid_box(0):1 - :2 - :3 - :0; - else - switch$0 = 1; - if(switch$0)var box_type=4; - return [0,indent,box_type]} - function make_padding_fmt_ebb(pad,fmt) - {if(typeof pad === "number")return [0,0,fmt]; - if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],fmt]} - var s$0=pad[1]; - return [0,[1,s$0],fmt]} - function make_padprec_fmt_ebb(pad,prec,fmt) - {if(typeof prec === "number") - var match=prec?[0,1,fmt]:[0,0,fmt]; - else - var p=prec[1],match=[0,[0,p],fmt]; - var prec$0=match[1]; - if(typeof pad === "number")return [0,0,prec$0,fmt]; - if(0 === pad[0]){var w=pad[2],s=pad[1];return [0,[0,s,w],prec$0,fmt]} - var s$0=pad[1]; - return [0,[1,s$0],prec$0,fmt]} - function fmt_ebb_of_string(legacy_behavior,str) - {if(legacy_behavior) - var flag=legacy_behavior[1],legacy_behavior$0=flag; - else - var legacy_behavior$0=1; - function invalid_format_message(str_ind,msg) - {return caml_call3(failwith_message(_aD_),str,str_ind,msg)} - function unexpected_end_of_format(end_ind) - {return invalid_format_message(end_ind,cst_unexpected_end_of_format)} - function invalid_format_without(str_ind,c,s) - {return caml_call4(failwith_message(_aE_),str,str_ind,c,s)} - function expected_character(str_ind,expected,read) - {return caml_call4(failwith_message(_aF_),str,str_ind,expected,read)} - function add_literal(lit_start,str_ind,fmt) - {var size=str_ind - lit_start | 0; - return 0 === size - ?[0,fmt] - :1 === size - ?[0,[12,caml_string_get(str,lit_start),fmt]] - :[0,[11,sub$0(str,lit_start,size),fmt]]} - function parse(lit_start,end_ind) - {var str_ind=lit_start; - for(;;) - {if(str_ind === end_ind)return add_literal(lit_start,str_ind,0); - var match=caml_string_get(str,str_ind); - if(37 === match) - {var str_ind$2=str_ind + 1 | 0; - if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); - var - match$1=caml_string_get(str,str_ind$2), - _rQ_= - 95 === match$1 - ?parse_flags(str_ind,str_ind$2 + 1 | 0,end_ind,1) - :parse_flags(str_ind,str_ind$2,end_ind,0), - fmt_rest=_rQ_[1]; - return add_literal(lit_start,str_ind,fmt_rest)} - if(64 !== match) - {var str_ind$1=str_ind + 1 | 0,str_ind=str_ind$1;continue} - var str_ind$0=str_ind + 1 | 0; - if(str_ind$0 === end_ind) - var match$0=_aR_; - else - {var c=caml_string_get(str,str_ind$0),switch$0=0; - if(65 <= c) - if(94 <= c) - {var switcher=c - 123 | 0; - if(2 < switcher >>> 0) - switch$0 = 1; - else - switch(switcher) - {case 0: - var match$0=parse_tag(1,str_ind$0 + 1 | 0,end_ind);break; - case 1:switch$0 = 1;break; - default: - var - match$3=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$2=match$3[1], - match$0=[0,[17,1,fmt_rest$2]]}} - else - if(91 <= c) - switch(c - 91 | 0) - {case 0: - var match$0=parse_tag(0,str_ind$0 + 1 | 0,end_ind);break; - case 1:switch$0 = 1;break; - default: - var - match$4=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$3=match$4[1], - match$0=[0,[17,0,fmt_rest$3]]} - else - switch$0 = 1; - else - if(10 === c) - var - match$5=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$4=match$5[1], - match$0=[0,[17,3,fmt_rest$4]]; - else - if(32 <= c) - switch(c - 32 | 0) - {case 0: - var - match$6=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$5=match$6[1], - match$0=[0,[17,_aS_,fmt_rest$5]]; - break; - case 5: - var switch$1=0; - if - ((str_ind$0 + 1 | 0) - < - end_ind - && - 37 - === - caml_string_get(str,str_ind$0 + 1 | 0)) - {var - match$7=parse(str_ind$0 + 2 | 0,end_ind), - fmt_rest$6=match$7[1], - match$0=[0,[17,6,fmt_rest$6]]; - switch$1 = 1} - if(! switch$1) - var - match$8=parse(str_ind$0,end_ind), - fmt_rest$7=match$8[1], - match$0=[0,[12,64,fmt_rest$7]]; - break; - case 12: - var - match$9=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$8=match$9[1], - match$0=[0,[17,_aT_,fmt_rest$8]]; - break; - case 14: - var - match$10=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$9=match$10[1], - match$0=[0,[17,4,fmt_rest$9]]; - break; - case 27: - var match$0=parse_good_break(str_ind$0 + 1 | 0,end_ind); - break; - case 28: - var match$0=parse_magic_size(str_ind$0 + 1 | 0,end_ind); - break; - case 31: - var - match$11=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$10=match$11[1], - match$0=[0,[17,2,fmt_rest$10]]; - break; - case 32: - var - match$12=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$11=match$12[1], - match$0=[0,[17,5,fmt_rest$11]]; - break; - default:switch$0 = 1} - else - switch$0 = 1; - if(switch$0) - var - match$2=parse(str_ind$0 + 1 | 0,end_ind), - fmt_rest$1=match$2[1], - match$0=[0,[17,[2,c],fmt_rest$1]]} - var fmt_rest$0=match$0[1]; - return add_literal(lit_start,str_ind,fmt_rest$0)}} - function parse_conversion - (pct_ind,str_ind,end_ind,plus,hash,space,ign,pad,prec,padprec,symb) - {var - plus_used=[0,0], - hash_used=[0,0], - space_used=[0,0], - ign_used=[0,0], - pad_used=[0,0], - prec_used=[0,0]; - function get_plus(param){plus_used[1] = 1;return plus} - function get_hash(param){hash_used[1] = 1;return hash} - function get_space(param){space_used[1] = 1;return space} - function get_ign(param){ign_used[1] = 1;return ign} - function get_pad(param){pad_used[1] = 1;return pad} - function get_prec(param){prec_used[1] = 1;return prec} - function get_padprec(param){pad_used[1] = 1;return padprec} - function get_int_pad(param) - {var pad=get_pad(0),match=get_prec(0); - if(typeof match === "number" && ! match)return pad; - if(typeof pad === "number")return 0; - if(0 !== pad[0]) - return 2 <= pad[1] - ?legacy_behavior$0 - ?_aL_ - :incompatible_flag(pct_ind,str_ind,48,cst_precision$1) - :pad; - if(2 > pad[1])return pad; - var n=pad[2]; - return legacy_behavior$0 - ?[0,1,n] - :incompatible_flag(pct_ind,str_ind,48,cst_precision$0)} - function check_no_0(symb,pad) - {if(typeof pad === "number")return pad; - if(0 !== pad[0]) - return 2 <= pad[1] - ?legacy_behavior$0 - ?_aM_ - :incompatible_flag(pct_ind,str_ind,symb,cst_0$1) - :pad; - if(2 > pad[1])return pad; - var width=pad[2]; - return legacy_behavior$0 - ?[0,1,width] - :incompatible_flag(pct_ind,str_ind,symb,cst_0$0)} - function opt_of_pad(c,pad) - {if(typeof pad === "number")return 0; - if(0 === pad[0]) - switch(pad[1]) - {case 0: - var width=pad[2]; - return legacy_behavior$0 - ?[0,width] - :incompatible_flag(pct_ind,str_ind,c,cst$38); - case 1:var width$0=pad[2];return [0,width$0]; - default: - var width$1=pad[2]; - return legacy_behavior$0 - ?[0,width$1] - :incompatible_flag(pct_ind,str_ind,c,cst_0$2)} - return incompatible_flag(pct_ind,str_ind,c,cst$39)} - function get_pad_opt(c){return opt_of_pad(c,get_pad(0))} - function get_padprec_opt(c){return opt_of_pad(c,get_padprec(0))} - var switch$0=0; - if(124 <= symb) - switch$0 = 1; - else - switch(symb) - {case 33: - var - match$6=parse(str_ind,end_ind), - fmt_rest$5=match$6[1], - fmt_result=[0,[10,fmt_rest$5]]; - break; - case 40: - var - sub_end=search_subformat_end(str_ind,end_ind,41), - match$8=parse(sub_end + 2 | 0,end_ind), - fmt_rest$7=match$8[1], - match$9=parse(str_ind,sub_end), - sub_fmt=match$9[1], - sub_fmtty=fmtty_of_fmt(sub_fmt); - if(get_ign(0)) - var - ignored$2=[9,get_pad_opt(95),sub_fmtty], - _rn_=[0,[23,ignored$2,fmt_rest$7]]; - else - var _rn_=[0,[14,get_pad_opt(40),sub_fmtty,fmt_rest$7]]; - var fmt_result=_rn_; - break; - case 44:var fmt_result=parse(str_ind,end_ind);break; - case 67: - var - match$12=parse(str_ind,end_ind), - fmt_rest$10=match$12[1], - _rp_=get_ign(0)?[0,[23,1,fmt_rest$10]]:[0,[1,fmt_rest$10]], - fmt_result=_rp_; - break; - case 78: - var - match$16=parse(str_ind,end_ind), - fmt_rest$14=match$16[1], - counter$0=2; - if(get_ign(0)) - var ignored$6=[11,counter$0],_rv_=[0,[23,ignored$6,fmt_rest$14]]; - else - var _rv_=[0,[21,counter$0,fmt_rest$14]]; - var fmt_result=_rv_; - break; - case 83: - var - pad$6=check_no_0(symb,get_padprec(0)), - match$17=parse(str_ind,end_ind), - fmt_rest$15=match$17[1]; - if(get_ign(0)) - var - ignored$7=[1,get_padprec_opt(95)], - _rw_=[0,[23,ignored$7,fmt_rest$15]]; - else - var - match$18=make_padding_fmt_ebb(pad$6,fmt_rest$15), - fmt_rest$16=match$18[2], - pad$7=match$18[1], - _rw_=[0,[3,pad$7,fmt_rest$16]]; - var fmt_result=_rw_; - break; - case 91: - if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var - char_set=create_char_set(0), - add_char=function(c){return add_in_char_set(char_set,c)}, - add_range= - function(c$0,c) - {if(c >= c$0) - {var i=c$0; - for(;;) - {add_in_char_set(char_set,char_of_int(i)); - var _rP_=i + 1 | 0; - if(c !== i){var i=_rP_;continue} - break}} - return 0}, - fail_single_percent= - function(str_ind) - {return caml_call2(failwith_message(_aV_),str,str_ind)}, - parse_char_set_content= - function(counter,str_ind,end_ind) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind$0); - if(45 === c) - {add_char(45); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; - continue} - if(93 === c)return str_ind$0 + 1 | 0; - var _rO_=str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_after_char$0,[0,_rO_,end_ind,c]); - var counter$0=counter + 1 | 0; - return parse_char_set_after_char$0(counter$0,_rO_,end_ind,c)}}, - parse_char_set_after_char$0= - function(counter,str_ind,end_ind,c) - {var str_ind$0=str_ind,c$0=c; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c$1=caml_string_get(str,str_ind$0),switch$0=0; - if(46 <= c$1) - {if(64 === c$1) - switch$0 = 1; - else - if(93 === c$1){add_char(c$0);return str_ind$0 + 1 | 0}} - else - if(37 === c$1) - switch$0 = 1; - else - if(45 <= c$1) - {var str_ind$2=str_ind$0 + 1 | 0; - if(str_ind$2 === end_ind)unexpected_end_of_format(end_ind); - var c$2=caml_string_get(str,str_ind$2); - if(37 === c$2) - {if((str_ind$2 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var c$3=caml_string_get(str,str_ind$2 + 1 | 0); - if(37 !== c$3 && 64 !== c$3) - return fail_single_percent(str_ind$2); - add_range(c$0,c$3); - var _rM_=str_ind$2 + 2 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content,[0,_rM_,end_ind]); - var counter$2=counter + 1 | 0; - return parse_char_set_content(counter$2,_rM_,end_ind)} - if(93 === c$2) - {add_char(c$0);add_char(45);return str_ind$2 + 1 | 0} - add_range(c$0,c$2); - var _rN_=str_ind$2 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content,[0,_rN_,end_ind]); - var counter$1=counter + 1 | 0; - return parse_char_set_content(counter$1,_rN_,end_ind)} - if(switch$0 && 37 === c$0) - {add_char(c$1); - var _rL_=str_ind$0 + 1 | 0; - if(counter >= 50) - return caml_trampoline_return - (parse_char_set_content,[0,_rL_,end_ind]); - var counter$0=counter + 1 | 0; - return parse_char_set_content(counter$0,_rL_,end_ind)} - if(37 === c$0)fail_single_percent(str_ind$0); - add_char(c$0); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,c$0=c$1}}, - parse_char_set_after_char= - function(str_ind,end_ind,c) - {return caml_trampoline - (parse_char_set_after_char$0(0,str_ind,end_ind,c))}; - if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var match$31=caml_string_get(str,str_ind); - if(94 === match$31) - var str_ind$0=str_ind + 1 | 0,reverse=1,str_ind$1=str_ind$0; - else - var reverse=0,str_ind$1=str_ind; - if(str_ind$1 === end_ind)unexpected_end_of_format(end_ind); - var - c=caml_string_get(str,str_ind$1), - next_ind=parse_char_set_after_char(str_ind$1 + 1 | 0,end_ind,c), - char_set$0=freeze_char_set(char_set), - char_set$1=reverse?rev_char_set(char_set$0):char_set$0, - match$21=parse(next_ind,end_ind), - fmt_rest$19=match$21[1]; - if(get_ign(0)) - var - ignored$9=[10,get_pad_opt(95),char_set$1], - _rB_=[0,[23,ignored$9,fmt_rest$19]]; - else - var _rB_=[0,[20,get_pad_opt(91),char_set$1,fmt_rest$19]]; - var fmt_result=_rB_; - break; - case 97: - var - match$22=parse(str_ind,end_ind), - fmt_rest$20=match$22[1], - fmt_result=[0,[15,fmt_rest$20]]; - break; - case 99: - var - char_format= - function(fmt_rest) - {return get_ign(0)?[0,[23,0,fmt_rest]]:[0,[0,fmt_rest]]}, - match$23=parse(str_ind,end_ind), - fmt_rest$21=match$23[1], - match$24=get_pad_opt(99); - if(match$24) - {if(0 === match$24[1]) - var - _rC_=get_ign(0)?[0,[23,3,fmt_rest$21]]:[0,[22,fmt_rest$21]], - _rD_=_rC_; - else - var - _rD_= - legacy_behavior$0 - ?char_format(fmt_rest$21) - :invalid_format_message - (str_ind,cst_non_zero_widths_are_unsupp); - var _rE_=_rD_} - else - var _rE_=char_format(fmt_rest$21); - var fmt_result=_rE_; - break; - case 114: - var - match$25=parse(str_ind,end_ind), - fmt_rest$22=match$25[1], - _rF_=get_ign(0)?[0,[23,2,fmt_rest$22]]:[0,[19,fmt_rest$22]], - fmt_result=_rF_; - break; - case 115: - var - pad$9=check_no_0(symb,get_padprec(0)), - match$26=parse(str_ind,end_ind), - fmt_rest$23=match$26[1]; - if(get_ign(0)) - var - ignored$10=[0,get_padprec_opt(95)], - _rG_=[0,[23,ignored$10,fmt_rest$23]]; - else - var - match$27=make_padding_fmt_ebb(pad$9,fmt_rest$23), - fmt_rest$24=match$27[2], - pad$10=match$27[1], - _rG_=[0,[2,pad$10,fmt_rest$24]]; - var fmt_result=_rG_; - break; - case 116: - var - match$28=parse(str_ind,end_ind), - fmt_rest$25=match$28[1], - fmt_result=[0,[16,fmt_rest$25]]; - break; - case 123: - var - sub_end$0=search_subformat_end(str_ind,end_ind,125), - match$29=parse(str_ind,sub_end$0), - sub_fmt$0=match$29[1], - match$30=parse(sub_end$0 + 2 | 0,end_ind), - fmt_rest$26=match$30[1], - sub_fmtty$0=fmtty_of_fmt(sub_fmt$0); - if(get_ign(0)) - var - ignored$11=[8,get_pad_opt(95),sub_fmtty$0], - _rH_=[0,[23,ignored$11,fmt_rest$26]]; - else - var _rH_=[0,[13,get_pad_opt(123),sub_fmtty$0,fmt_rest$26]]; - var fmt_result=_rH_; - break; - case 66: - case 98: - var - pad$3=check_no_0(symb,get_padprec(0)), - match$10=parse(str_ind,end_ind), - fmt_rest$8=match$10[1]; - if(get_ign(0)) - var - ignored$3=[7,get_padprec_opt(95)], - _ro_=[0,[23,ignored$3,fmt_rest$8]]; - else - var - match$11=make_padding_fmt_ebb(pad$3,fmt_rest$8), - fmt_rest$9=match$11[2], - pad$4=match$11[1], - _ro_=[0,[9,pad$4,fmt_rest$9]]; - var fmt_result=_ro_; - break; - case 37: - case 64: - var - match$7=parse(str_ind,end_ind), - fmt_rest$6=match$7[1], - fmt_result=[0,[12,symb,fmt_rest$6]]; - break; - case 76: - case 108: - case 110: - var switch$1=0; - if(str_ind !== end_ind) - {var - symb$0=caml_string_get(str,str_ind), - _rI_=symb$0 - 88 | 0, - switch$2=0; - if(32 >= _rI_ >>> 0) - switch(_rI_) - {case 0: - case 12: - case 17: - case 23: - case 29: - case 32:var _ru_=1;switch$2 = 1;break - } - if(! switch$2)var _ru_=0; - if(_ru_){switch$0 = 1;switch$1 = 1}} - if(! switch$1) - {var - match$15=parse(str_ind,end_ind), - fmt_rest$13=match$15[1], - switch$3=0; - if(108 <= symb) - {if(111 > symb) - switch(symb - 108 | 0) - {case 0:var counter=0;switch$3 = 1;break; - case 1:break; - default:var counter=1;switch$3 = 1}} - else - if(76 === symb){var counter=2;switch$3 = 1} - if(! switch$3)throw [0,Assert_failure,_aZ_]; - if(get_ign(0)) - var ignored$5=[11,counter],_rt_=[0,[23,ignored$5,fmt_rest$13]]; - else - var _rt_=[0,[21,counter,fmt_rest$13]]; - var fmt_result=_rt_} - break; - case 32: - case 35: - case 43: - case 45: - case 95: - var - fmt_result= - caml_call3(failwith_message(_aQ_),str,pct_ind,symb); - break; - case 88: - case 100: - case 105: - case 111: - case 117: - case 120: - var - _rx_=get_space(0), - _ry_=get_hash(0), - iconv$2= - compute_int_conv(pct_ind,str_ind,get_plus(0),_ry_,_rx_,symb), - match$19=parse(str_ind,end_ind), - fmt_rest$17=match$19[1]; - if(get_ign(0)) - var - ignored$8=[2,iconv$2,get_pad_opt(95)], - _rz_=[0,[23,ignored$8,fmt_rest$17]]; - else - var - _rA_=get_prec(0), - match$20=make_padprec_fmt_ebb(get_int_pad(0),_rA_,fmt_rest$17), - fmt_rest$18=match$20[3], - prec$4=match$20[2], - pad$8=match$20[1], - _rz_=[0,[4,iconv$2,pad$8,prec$4,fmt_rest$18]]; - var fmt_result=_rz_; - break; - case 69: - case 70: - case 71: - case 72: - case 101: - case 102: - case 103: - case 104: - var - space$1=get_space(0), - hash$1=get_hash(0), - plus$2=get_plus(0), - flag= - plus$2 - ?space$1 - ?legacy_behavior$0 - ?1 - :incompatible_flag(pct_ind,str_ind,32,cst$50) - :1 - :space$1?2:0, - switch$4=0; - if(73 <= symb) - {var switcher=symb - 101 | 0; - if(3 < switcher >>> 0) - switch$4 = 1; - else - {switch(switcher) - {case 0:var _rJ_=1;break; - case 1:var _rJ_=0;break; - case 2:var _rJ_=3;break; - default:var _rJ_=6} - var kind=_rJ_}} - else - if(69 <= symb) - {var switch$5=0; - switch(symb - 69 | 0) - {case 0:var _rK_=2;break; - case 1:switch$4 = 1;switch$5 = 1;break; - case 2:var _rK_=4;break; - default:var _rK_=7} - if(! switch$5)var kind=_rK_} - else - switch$4 = 1; - if(switch$4) - {var switch$6=0; - if(hash$1) - if(70 === symb)var kind=8;else switch$6 = 1; - else - if(70 === symb)var kind=5;else switch$6 = 1; - if(switch$6)throw [0,Assert_failure,_a1_]} - var - fconv=[0,flag,kind], - match$13=parse(str_ind,end_ind), - fmt_rest$11=match$13[1]; - if(get_ign(0)) - {var match=get_prec(0); - if(typeof match === "number") - var _rq_=match?incompatible_flag(pct_ind,str_ind,95,cst$40):0; - else - var ndec=match[1],_rq_=[0,ndec]; - var - ignored$4=[6,get_pad_opt(95),_rq_], - _rr_=[0,[23,ignored$4,fmt_rest$11]]} - else - var - _rs_=get_prec(0), - match$14=make_padprec_fmt_ebb(get_pad(0),_rs_,fmt_rest$11), - fmt_rest$12=match$14[3], - prec$3=match$14[2], - pad$5=match$14[1], - _rr_=[0,[8,fconv,pad$5,prec$3,fmt_rest$12]]; - var fmt_result=_rr_; - break; - default:switch$0 = 1} - if(switch$0) - {var switch$7=0; - if(108 <= symb) - if(111 <= symb) - switch$7 = 1; - else - {var switch$8=0; - switch(symb - 108 | 0) - {case 0: - var - _q9_=caml_string_get(str,str_ind), - _q__=get_space(0), - _q$_=get_hash(0), - iconv= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_q$_,_q__,_q9_), - match$0=parse(str_ind + 1 | 0,end_ind), - fmt_rest=match$0[1]; - if(get_ign(0)) - var - ignored=[3,iconv,get_pad_opt(95)], - _ra_=[0,[23,ignored,fmt_rest]]; - else - var - _rc_=get_prec(0), - match$1=make_padprec_fmt_ebb(get_int_pad(0),_rc_,fmt_rest), - fmt_rest$0=match$1[3], - prec$0=match$1[2], - pad$0=match$1[1], - _ra_=[0,[5,iconv,pad$0,prec$0,fmt_rest$0]]; - var _rb_=_ra_; - break; - case 1:switch$7 = 1;switch$8 = 1;break; - default: - var - _rd_=caml_string_get(str,str_ind), - _re_=get_space(0), - _rf_=get_hash(0), - iconv$0= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_rf_,_re_,_rd_), - match$2=parse(str_ind + 1 | 0,end_ind), - fmt_rest$1=match$2[1]; - if(get_ign(0)) - var - ignored$0=[4,iconv$0,get_pad_opt(95)], - _rg_=[0,[23,ignored$0,fmt_rest$1]]; - else - var - _rh_=get_prec(0), - match$3=make_padprec_fmt_ebb(get_int_pad(0),_rh_,fmt_rest$1), - fmt_rest$2=match$3[3], - prec$1=match$3[2], - pad$1=match$3[1], - _rg_=[0,[6,iconv$0,pad$1,prec$1,fmt_rest$2]]; - var _rb_=_rg_} - if(! switch$8)var fmt_result=_rb_} - else - if(76 === symb) - {var - _ri_=caml_string_get(str,str_ind), - _rj_=get_space(0), - _rk_=get_hash(0), - iconv$1= - compute_int_conv - (pct_ind,str_ind + 1 | 0,get_plus(0),_rk_,_rj_,_ri_), - match$4=parse(str_ind + 1 | 0,end_ind), - fmt_rest$3=match$4[1]; - if(get_ign(0)) - var - ignored$1=[5,iconv$1,get_pad_opt(95)], - _rl_=[0,[23,ignored$1,fmt_rest$3]]; - else - var - _rm_=get_prec(0), - match$5=make_padprec_fmt_ebb(get_int_pad(0),_rm_,fmt_rest$3), - fmt_rest$4=match$5[3], - prec$2=match$5[2], - pad$2=match$5[1], - _rl_=[0,[7,iconv$1,pad$2,prec$2,fmt_rest$4]]; - var fmt_result=_rl_} - else - switch$7 = 1; - if(switch$7) - var - fmt_result= - caml_call3(failwith_message(_aN_),str,str_ind - 1 | 0,symb)} - if(1 - legacy_behavior$0) - {var _q0_=1 - plus_used[1],plus$0=_q0_?plus:_q0_; - if(plus$0)incompatible_flag(pct_ind,str_ind,symb,cst$41); - var _q1_=1 - hash_used[1],hash$0=_q1_?hash:_q1_; - if(hash$0)incompatible_flag(pct_ind,str_ind,symb,cst$42); - var _q2_=1 - space_used[1],space$0=_q2_?space:_q2_; - if(space$0)incompatible_flag(pct_ind,str_ind,symb,cst$43); - var _q3_=1 - pad_used[1],_q4_=_q3_?caml_notequal([0,pad],_aO_):_q3_; - if(_q4_)incompatible_flag(pct_ind,str_ind,symb,cst_padding$0); - var - _q5_=1 - prec_used[1], - _q6_=_q5_?caml_notequal([0,prec],_aP_):_q5_; - if(_q6_) - {var _q7_=ign?95:symb; - incompatible_flag(pct_ind,str_ind,_q7_,cst_precision$2)} - var plus$1=ign?plus:ign; - if(plus$1)incompatible_flag(pct_ind,str_ind,95,cst$44)} - var _q8_=1 - ign_used[1],ign$0=_q8_?ign:_q8_; - if(ign$0) - {var switch$9=0; - if(38 <= symb) - {if(44 !== symb && 64 !== symb)switch$9 = 1} - else - if(33 !== symb && 37 > symb)switch$9 = 1; - var switch$10=0; - if(switch$9 || ! legacy_behavior$0)switch$10 = 1; - if(switch$10)incompatible_flag(pct_ind,str_ind,symb,cst$45)} - return fmt_result} - function parse_after_precision - (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad,prec) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - function parse_conv(padprec) - {return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - prec, - padprec, - caml_string_get(str,str_ind))} - if(typeof pad !== "number")return parse_conv(pad); - if(typeof prec === "number" && ! prec)return parse_conv(0); - if(minus) - {if(typeof prec === "number")return parse_conv(_aJ_); - var n=prec[1]; - return parse_conv([0,0,n])} - if(typeof prec === "number")return parse_conv(_aK_); - var n$0=prec[1]; - return parse_conv([0,1,n$0])} - function parse_after_padding - (pct_ind,str_ind,end_ind,minus,plus,hash,space,ign,pad) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var symb=caml_string_get(str,str_ind); - if(46 !== symb) - return parse_conversion - (pct_ind, - str_ind + 1 | 0, - end_ind, - plus, - hash, - space, - ign, - pad, - 0, - pad, - symb); - var str_ind$0=str_ind + 1 | 0; - if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - function parse_literal(minus,str_ind) - {var - match=parse_positive(str_ind,end_ind,0), - prec=match[2], - new_ind=match[1]; - return parse_after_precision - (pct_ind, - new_ind, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - [0,prec])} - var symb$0=caml_string_get(str,str_ind$0); - if(48 <= symb$0) - {if(58 > symb$0)return parse_literal(minus,str_ind$0)} - else - if(42 <= symb$0) - switch(symb$0 - 42 | 0) - {case 0: - return parse_after_precision - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - 1); - case 1: - case 3: - if(legacy_behavior$0) - {var - _qZ_=str_ind$0 + 1 | 0, - minus$0=minus || (45 === symb$0?1:0); - return parse_literal(minus$0,_qZ_)} - break - } - return legacy_behavior$0 - ?parse_after_precision - (pct_ind, - str_ind$0, - end_ind, - minus, - plus, - hash, - space, - ign, - pad, - _aI_) - :invalid_format_without(str_ind$0 - 1 | 0,46,cst_precision)} - function parse_flags(pct_ind,str_ind,end_ind,ign) - {var zero=[0,0],minus=[0,0],plus=[0,0],space=[0,0],hash=[0,0]; - function set_flag(str_ind,flag) - {var _qW_=flag[1],_qX_=_qW_?1 - legacy_behavior$0:_qW_; - if(_qX_) - {var _qY_=caml_string_get(str,str_ind); - caml_call3(failwith_message(_aG_),str,str_ind,_qY_)} - flag[1] = 1; - return 0} - var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var match=caml_string_get(str,str_ind$0),switcher=match - 32 | 0; - if(16 >= switcher >>> 0) - switch(switcher) - {case 0: - set_flag(str_ind$0,space); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1; - continue; - case 3: - set_flag(str_ind$0,hash); - var str_ind$2=str_ind$0 + 1 | 0,str_ind$0=str_ind$2; - continue; - case 11: - set_flag(str_ind$0,plus); - var str_ind$3=str_ind$0 + 1 | 0,str_ind$0=str_ind$3; - continue; - case 13: - set_flag(str_ind$0,minus); - var str_ind$4=str_ind$0 + 1 | 0,str_ind$0=str_ind$4; - continue; - case 16: - set_flag(str_ind$0,zero); - var str_ind$5=str_ind$0 + 1 | 0,str_ind$0=str_ind$5; - continue - } - var - _qR_=space[1], - _qS_=hash[1], - _qT_=plus[1], - _qU_=minus[1], - _qV_=zero[1]; - if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var - padty= - _qV_ - ?_qU_ - ?legacy_behavior$0 - ?0 - :incompatible_flag(pct_ind,str_ind$0,45,cst_0) - :2 - :_qU_?0:1, - match$0=caml_string_get(str,str_ind$0); - if(48 <= match$0) - {if(58 > match$0) - {var - match$1=parse_positive(str_ind$0,end_ind,0), - width=match$1[2], - new_ind=match$1[1]; - return parse_after_padding - (pct_ind, - new_ind, - end_ind, - _qU_, - _qT_, - _qS_, - _qR_, - ign, - [0,padty,width])}} - else - if(42 === match$0) - return parse_after_padding - (pct_ind, - str_ind$0 + 1 | 0, - end_ind, - _qU_, - _qT_, - _qS_, - _qR_, - ign, - [1,padty]); - switch(padty) - {case 0: - if(1 - legacy_behavior$0) - invalid_format_without(str_ind$0 - 1 | 0,45,cst_padding); - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,0); - case 1: - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,0); - default: - return parse_after_padding - (pct_ind,str_ind$0,end_ind,_qU_,_qT_,_qS_,_qR_,ign,_aH_)}}} - function parse_tag(is_open_tag,str_ind,end_ind) - {try - {if(str_ind === end_ind)throw Not_found; - var match$0=caml_string_get(str,str_ind); - if(60 !== match$0)throw Not_found; - var ind=index_from$0(str,str_ind + 1 | 0,62); - if(end_ind <= ind)throw Not_found; - var - sub_str=sub$0(str,str_ind,(ind - str_ind | 0) + 1 | 0), - match$1=parse(ind + 1 | 0,end_ind), - fmt_rest$0=match$1[1], - match$2=parse(str_ind,ind + 1 | 0), - sub_fmt=match$2[1], - sub_format$0=[0,sub_fmt,sub_str], - formatting$0=is_open_tag?[0,sub_format$0]:[1,sub_format$0], - _qP_=[0,[18,formatting$0,fmt_rest$0]]; - return _qP_} - catch(_qQ_) - {_qQ_ = caml_wrap_exception(_qQ_); - if(_qQ_ !== Not_found)throw _qQ_; - var - match=parse(str_ind,end_ind), - fmt_rest=match[1], - formatting=is_open_tag?[0,sub_format]:[1,sub_format]; - return [0,[18,formatting,fmt_rest]]}} - function parse_good_break(str_ind,end_ind) - {try - {var - _qI_=str_ind === end_ind?1:0, - _qJ_=_qI_ || (60 !== caml_string_get(str,str_ind)?1:0); - if(_qJ_)throw Not_found; - var - str_ind_1=parse_spaces(str_ind + 1 | 0,end_ind), - match$0=caml_string_get(str,str_ind_1), - switch$0=0; - if(48 <= match$0) - {if(58 > match$0)switch$0 = 1} - else - if(45 === match$0)switch$0 = 1; - if(! switch$0)throw Not_found; - var - match$1=parse_integer(str_ind_1,end_ind), - width=match$1[2], - str_ind_2=match$1[1], - str_ind_3=parse_spaces(str_ind_2,end_ind), - match$2=caml_string_get(str,str_ind_3), - switcher=match$2 - 45 | 0, - switch$1=0; - if(12 < switcher >>> 0) - if(17 === switcher) - var - s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), - _qK_=[0,s,width,0], - _qL_=str_ind_3 + 1 | 0, - formatting_lit$0=_qK_, - next_ind=_qL_; - else - switch$1 = 1; - else - if(1 < switcher - 1 >>> 0) - {var - match$3=parse_integer(str_ind_3,end_ind), - offset=match$3[2], - str_ind_4=match$3[1], - str_ind_5=parse_spaces(str_ind_4,end_ind); - if(62 !== caml_string_get(str,str_ind_5))throw Not_found; - var - s$0=sub$0(str,str_ind - 2 | 0,(str_ind_5 - str_ind | 0) + 3 | 0), - _qM_=[0,s$0,width,offset], - _qN_=str_ind_5 + 1 | 0, - formatting_lit$0=_qM_, - next_ind=_qN_} - else - switch$1 = 1; - if(switch$1)throw Not_found} - catch(_qO_) - {_qO_ = caml_wrap_exception(_qO_); - if(_qO_ !== Not_found && _qO_[1] !== Failure)throw _qO_; - var formatting_lit$0=formatting_lit,next_ind=str_ind} - var match=parse(next_ind,end_ind),fmt_rest=match[1]; - return [0,[17,formatting_lit$0,fmt_rest]]} - function parse_magic_size(str_ind,end_ind) - {try - {var - str_ind_1=parse_spaces(str_ind,end_ind), - match$2=caml_string_get(str,str_ind_1), - switch$0=0; - if(48 <= match$2) - {if(58 > match$2)switch$0 = 1} - else - if(45 === match$2)switch$0 = 1; - if(switch$0) - {var - match$3=parse_integer(str_ind_1,end_ind), - size=match$3[2], - str_ind_2=match$3[1], - str_ind_3=parse_spaces(str_ind_2,end_ind); - if(62 !== caml_string_get(str,str_ind_3))throw Not_found; - var - s=sub$0(str,str_ind - 2 | 0,(str_ind_3 - str_ind | 0) + 3 | 0), - _qG_=[0,[0,str_ind_3 + 1 | 0,[1,s,size]]]} - else - var _qG_=0; - var _qF_=_qG_} - catch(_qH_) - {_qH_ = caml_wrap_exception(_qH_); - if(_qH_ !== Not_found && _qH_[1] !== Failure)throw _qH_; - var _qF_=0} - if(_qF_) - {var - match=_qF_[1], - formatting_lit=match[2], - next_ind=match[1], - match$0=parse(next_ind,end_ind), - fmt_rest=match$0[1]; - return [0,[17,formatting_lit,fmt_rest]]} - var match$1=parse(str_ind,end_ind),fmt_rest$0=match$1[1]; - return [0,[17,_aU_,fmt_rest$0]]} - function parse_spaces(str_ind,end_ind) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - if(32 !== caml_string_get(str,str_ind$0))return str_ind$0; - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1}} - function parse_positive(str_ind,end_ind,acc) - {var str_ind$0=str_ind,acc$0=acc; - for(;;) - {if(str_ind$0 === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind$0); - if(9 < c - 48 >>> 0)return [0,str_ind$0,acc$0]; - var acc$1=(acc$0 * 10 | 0) + (c - 48 | 0) | 0; - if(max_string_length < acc$1) - return caml_call3 - (failwith_message(_aW_),str,acc$1,max_string_length); - var str_ind$1=str_ind$0 + 1 | 0,str_ind$0=str_ind$1,acc$0=acc$1}} - function parse_integer(str_ind,end_ind) - {if(str_ind === end_ind)unexpected_end_of_format(end_ind); - var match=caml_string_get(str,str_ind); - if(48 <= match) - {if(58 > match)return parse_positive(str_ind,end_ind,0)} - else - if(45 === match) - {if((str_ind + 1 | 0) === end_ind)unexpected_end_of_format(end_ind); - var c=caml_string_get(str,str_ind + 1 | 0); - if(9 < c - 48 >>> 0) - return expected_character(str_ind + 1 | 0,cst_digit,c); - var - match$0=parse_positive(str_ind + 1 | 0,end_ind,0), - n=match$0[2], - next_ind=match$0[1]; - return [0,next_ind,- n | 0]} - throw [0,Assert_failure,_aX_]} - function search_subformat_end(str_ind,end_ind,c) - {var str_ind$0=str_ind; - for(;;) - {if(str_ind$0 === end_ind) - caml_call3(failwith_message(_aY_),str,c,end_ind); - var match=caml_string_get(str,str_ind$0); - if(37 !== match) - {var str_ind$7=str_ind$0 + 1 | 0,str_ind$0=str_ind$7;continue} - if((str_ind$0 + 1 | 0) === end_ind) - unexpected_end_of_format(end_ind); - if(caml_string_get(str,str_ind$0 + 1 | 0) === c)return str_ind$0; - var match$0=caml_string_get(str,str_ind$0 + 1 | 0); - if(95 <= match$0) - {if(123 <= match$0) - {if(126 > match$0) - switch(match$0 - 123 | 0) - {case 0: - var - sub_end=search_subformat_end(str_ind$0 + 2 | 0,end_ind,125), - str_ind$2=sub_end + 2 | 0, - str_ind$0=str_ind$2; - continue; - case 1:break; - default: - return expected_character - (str_ind$0 + 1 | 0,cst_character,125)}} - else - if(96 > match$0) - {if((str_ind$0 + 2 | 0) === end_ind) - unexpected_end_of_format(end_ind); - var match$1=caml_string_get(str,str_ind$0 + 2 | 0); - if(40 === match$1) - {var - sub_end$0=search_subformat_end(str_ind$0 + 3 | 0,end_ind,41), - str_ind$3=sub_end$0 + 2 | 0, - str_ind$0=str_ind$3; - continue} - if(123 === match$1) - {var - sub_end$1= - search_subformat_end(str_ind$0 + 3 | 0,end_ind,125), - str_ind$4=sub_end$1 + 2 | 0, - str_ind$0=str_ind$4; - continue} - var str_ind$5=str_ind$0 + 3 | 0,str_ind$0=str_ind$5; - continue}} - else - {if(40 === match$0) - {var - sub_end$2=search_subformat_end(str_ind$0 + 2 | 0,end_ind,41), - str_ind$6=sub_end$2 + 2 | 0, - str_ind$0=str_ind$6; - continue} - if(41 === match$0) - return expected_character(str_ind$0 + 1 | 0,cst_character$0,41)} - var str_ind$1=str_ind$0 + 2 | 0,str_ind$0=str_ind$1}} - function incompatible_flag(pct_ind,str_ind,symb,option) - {var subfmt=sub$0(str,pct_ind,str_ind - pct_ind | 0); - return caml_call5 - (failwith_message(_a2_),str,pct_ind,option,symb,subfmt)} - function compute_int_conv(pct_ind,str_ind,plus,hash,space,symb) - {var plus$0=plus,hash$0=hash,space$0=space; - for(;;) - {var switch$0=0; - if(plus$0) - {if(hash$0) - switch$0 = 1; - else - if(! space$0){if(100 === symb)return 1;if(105 === symb)return 4}} - else - if(hash$0) - if(space$0) - switch$0 = 1; - else - {var switcher$0=symb - 88 | 0; - if(32 < switcher$0 >>> 0) - switch$0 = 1; - else - switch(switcher$0) - {case 0:return 9; - case 12:return 13; - case 17:return 14; - case 23:return 11; - case 29:return 15; - case 32:return 7; - default:switch$0 = 1}} - else - if(space$0) - {if(100 === symb)return 2;if(105 === symb)return 5} - else - {var switcher$1=symb - 88 | 0; - if(32 >= switcher$1 >>> 0) - switch(switcher$1) - {case 0:return 8; - case 12:return 0; - case 17:return 3; - case 23:return 10; - case 29:return 12; - case 32:return 6 - }} - if(switch$0) - {var switcher=symb - 88 | 0; - if(32 >= switcher >>> 0) - switch(switcher) - {case 0:if(legacy_behavior$0)return 9;break; - case 23:if(legacy_behavior$0)return 11;break; - case 32:if(legacy_behavior$0)return 7;break; - case 12: - case 17: - case 29: - if(! legacy_behavior$0) - return incompatible_flag(pct_ind,str_ind,symb,cst$49); - var hash$0=0; - continue - }} - if(! plus$0) - {if(! space$0)throw [0,Assert_failure,_a0_]; - if(! legacy_behavior$0) - return incompatible_flag(pct_ind,str_ind,symb,cst$48); - var space$0=0; - continue} - if(space$0) - {if(! legacy_behavior$0) - return incompatible_flag(pct_ind,str_ind,32,cst$46); - var space$0=0; - continue} - if(! legacy_behavior$0) - return incompatible_flag(pct_ind,str_ind,symb,cst$47); - var plus$0=0}} - return parse(0,caml_ml_string_length(str))} - function format_of_string_fmtty(str,fmtty) - {var match=fmt_ebb_of_string(0,str),fmt=match[1]; - try - {var _qD_=[0,type_format(fmt,fmtty),str];return _qD_} - catch(_qE_) - {_qE_ = caml_wrap_exception(_qE_); - if(_qE_ !== Type_mismatch)throw _qE_; - var _qC_=string_of_fmtty(fmtty); - return caml_call2(failwith_message(_a3_),str,_qC_)}} - function format_of_string_format(str,param) - {var - str$0=param[2], - fmt=param[1], - match=fmt_ebb_of_string(0,str), - fmt$0=match[1]; - try - {var _qA_=[0,type_format(fmt$0,fmtty_of_fmt(fmt)),str];return _qA_} - catch(_qB_) - {_qB_ = caml_wrap_exception(_qB_); - if(_qB_ === Type_mismatch) - return caml_call2(failwith_message(_a4_),str,str$0); - throw _qB_}} - var - CamlinternalFormat= - [0, - is_in_char_set, - rev_char_set, - create_char_set, - add_in_char_set, - freeze_char_set, - param_format_of_ignored_format, - make_printf, - make_iprintf, - output_acc, - bufput_acc, - strput_acc, - type_format, - fmt_ebb_of_string, - format_of_string_fmtty, - format_of_string_format, - char_of_iconv, - string_of_formatting_lit, - string_of_fmtty, - string_of_fmt, - open_box_of_string, - symm, - trans, - recast]; - caml_register_global(807,CamlinternalFormat,"CamlinternalFormat"); - function kfprintf(k,o,param) - {var fmt=param[1],_qz_=0; - return make_printf - (function(acc){output_acc(o,acc);return caml_call1(k,o)}, - _qz_, - fmt)} - function kbprintf(k,b,param) - {var fmt=param[1],_qy_=0; - return make_printf - (function(acc){bufput_acc(b,acc);return caml_call1(k,b)}, - _qy_, - fmt)} - function ikfprintf(k,oc,param) - {var fmt=param[1];return make_iprintf(k,oc,fmt)} - function fprintf(oc,fmt){return kfprintf(function(_qx_){return 0},oc,fmt)} - function bprintf(b,fmt){return kbprintf(function(_qw_){return 0},b,fmt)} - function ifprintf(oc,fmt) - {return ikfprintf(function(_qv_){return 0},oc,fmt)} - function ibprintf(b,fmt){return ikfprintf(function(_qu_){return 0},b,fmt)} - function printf(fmt){return fprintf(stdout,fmt)} - function eprintf(fmt){return fprintf(stderr,fmt)} - function ksprintf(k,param) - {var fmt=param[1]; - function k$0(acc) - {var buf=create$2(64); - strput_acc(buf,acc); - return caml_call1(k,contents(buf))} - return make_printf(k$0,0,fmt)} - function sprintf(fmt){return ksprintf(function(s){return s},fmt)} - var - Stdlib_Printf= - [0, - fprintf, - printf, - eprintf, - sprintf, - bprintf, - ifprintf, - ibprintf, - kfprintf, - ikfprintf, - ksprintf, - kbprintf, - ikfprintf, - ksprintf]; - caml_register_global(808,Stdlib_Printf,"Stdlib__Printf"); - var - Bad=[248,cst_Stdlib_Arg_Bad,caml_fresh_oo_id(0)], - Help=[248,cst_Stdlib_Arg_Help,caml_fresh_oo_id(0)], - Stop=[248,cst_Stdlib_Arg_Stop,caml_fresh_oo_id(0)]; - function assoc3(x,l) - {var l$0=l; - for(;;) - {if(! l$0)throw Not_found; - var match=l$0[1],y2=match[2],y1=match[1]; - if(caml_equal(y1,x))return y2; - var l$1=l$0[2],l$0=l$1}} - function split$1(s) - {var - i=index$0(s,61), - len=caml_ml_string_length(s), - _qt_=sub$0(s,i + 1 | 0,len - (i + 1 | 0) | 0); - return [0,sub$0(s,0,i),_qt_]} - function make_symlist(prefix,sep,suffix,l) - {if(! l)return cst_none; - var t=l[2],h=l[1],_qs_=cat(prefix,h); - return cat - (fold_left$0(function(x,y){return cat(x,cat(sep,y))},_qs_,t), - suffix)} - function help_action(param){throw [0,Stop,_a7_]} - function add_help(speclist) - {try - {assoc3(cst_help$2,speclist);var _qp_=0,_qn_=_qp_} - catch(_qr_) - {_qr_ = caml_wrap_exception(_qr_); - if(_qr_ !== Not_found)throw _qr_; - var - _qn_= - [0,[0,cst_help,[0,help_action],cst_Display_this_list_of_optio],0]} - try - {assoc3(cst_help$1,speclist);var _qo_=0,add2=_qo_} - catch(_qq_) - {_qq_ = caml_wrap_exception(_qq_); - if(_qq_ !== Not_found)throw _qq_; - var - add2= - [0, - [0,cst_help$0,[0,help_action],cst_Display_this_list_of_optio$0], - 0]} - return append(speclist,append(_qn_,add2))} - function usage_b(buf,speclist,errmsg) - {caml_call1(bprintf(buf,_a8_),errmsg); - var _qk_=add_help(speclist); - return iter$2 - (function(param) - {var - doc=param[3], - spec=param[2], - key=param[1], - _ql_=0 < caml_ml_string_length(doc)?1:0; - if(! _ql_)return _ql_; - if(11 !== spec[0]) - return caml_call2(bprintf(buf,_a5_),key,doc); - var l=spec[1],_qm_=make_symlist(cst$53,cst$52,cst$51,l); - return caml_call3(bprintf(buf,_a6_),key,_qm_,doc)}, - _qk_)} - function usage_string(speclist,errmsg) - {var b=create$2(200);usage_b(b,speclist,errmsg);return contents(b)} - function usage(speclist,errmsg) - {var _qj_=usage_string(speclist,errmsg); - return caml_call1(eprintf(_a9_),_qj_)} - var current=[0,0]; - function bool_of_string_opt$0(x) - {try - {var _qh_=[0,bool_of_string(x)];return _qh_} - catch(_qi_) - {_qi_ = caml_wrap_exception(_qi_); - if(_qi_[1] === Invalid_argument)return 0; - throw _qi_}} - function int_of_string_opt$0(x) - {try - {var _qf_=[0,caml_int_of_string(x)];return _qf_} - catch(_qg_) - {_qg_ = caml_wrap_exception(_qg_); - if(_qg_[1] === Failure)return 0; - throw _qg_}} - function float_of_string_opt(x) - {try - {var _qd_=[0,caml_float_of_string(x)];return _qd_} - catch(_qe_) - {_qe_ = caml_wrap_exception(_qe_); - if(_qe_[1] === Failure)return 0; - throw _qe_}} - function parse_and_expand_argv_dynamic_ - (allow_expand,current,argv,speclist,anonfun,errmsg) - {var initpos=current[1]; - function convert_error(error) - {var - b=create$2(200), - progname= - initpos < argv[1].length - 1 - ?caml_check_bound(argv[1],initpos)[1 + initpos] - :cst$54; - switch(error[0]) - {case 0: - var _qc_=error[1]; - if - (caml_string_notequal(_qc_,cst_help$3) - && - caml_string_notequal(_qc_,cst_help$4)) - caml_call2(bprintf(b,_a__),progname,_qc_); - break; - case 1: - var expected=error[3],arg=error[2],opt=error[1]; - caml_call4(bprintf(b,_bb_),progname,arg,opt,expected); - break; - case 2:var s=error[1];caml_call2(bprintf(b,_bc_),progname,s);break; - default:var s$0=error[1];caml_call2(bprintf(b,_bd_),progname,s$0)} - usage_b(b,speclist[1],errmsg); - if(! caml_equal(error,_a$_) && ! caml_equal(error,_ba_)) - return [0,Bad,contents(b)]; - return [0,Help,contents(b)]} - current[1]++; - for(;;) - {if(current[1] >= argv[1].length - 1)return 0; - try - {var - _p5_=current[1], - s=caml_check_bound(argv[1],_p5_)[1 + _p5_], - switch$0=0; - if(1 <= caml_ml_string_length(s) && 45 === caml_string_get(s,0)) - {try - {var - follow$1=0, - _p7_=assoc3(s,speclist[1]), - follow$0=follow$1, - action=_p7_} - catch(_qa_) - {_qa_ = caml_wrap_exception(_qa_); - if(_qa_ !== Not_found)throw _qa_; - try - {var - match=split$1(s), - arg=match[2], - keyword=match[1], - follow=[0,arg], - _p6_=assoc3(keyword,speclist[1])} - catch(_qb_) - {_qb_ = caml_wrap_exception(_qb_); - if(_qb_ === Not_found)throw [0,Stop,[0,s]]; - throw _qb_} - var follow$0=follow,action=_p6_} - var - no_arg$0= - function(s,follow) - {function no_arg(param) - {if(! follow)return 0; - var arg=follow[1]; - throw [0,Stop,[1,s,arg,cst_no_argument]]} - return no_arg}, - no_arg=no_arg$0(s,follow$0), - get_arg$0= - function(s,follow) - {function get_arg(param) - {if(follow){var arg=follow[1];return arg} - if((current[1] + 1 | 0) >= argv[1].length - 1) - throw [0,Stop,[2,s]]; - var _p$_=current[1] + 1 | 0; - return caml_check_bound(argv[1],_p$_)[1 + _p$_]} - return get_arg}, - get_arg=get_arg$0(s,follow$0), - consume_arg$0= - function(follow) - {function consume_arg(param){return follow?0:(current[1]++,0)} - return consume_arg}, - consume_arg=consume_arg$0(follow$0), - treat_action$0= - function(s,no_arg,get_arg,consume_arg) - {function treat_action(param) - {switch(param[0]) - {case 0:var f=param[1];no_arg(0);return caml_call1(f,0); - case 1: - var - f$0=param[1], - arg=get_arg(0), - match=bool_of_string_opt$0(arg); - if(! match)throw [0,Stop,[1,s,arg,cst_a_boolean]]; - var s$0=match[1]; - caml_call1(f$0,s$0); - return consume_arg(0); - case 2:var r=param[1];no_arg(0);r[1] = 1;return 0; - case 3:var r$0=param[1];no_arg(0);r$0[1] = 0;return 0; - case 4: - var f$1=param[1],arg$0=get_arg(0); - caml_call1(f$1,arg$0); - return consume_arg(0); - case 5: - var r$1=param[1];r$1[1] = get_arg(0);return consume_arg(0); - case 6: - var - f$2=param[1], - arg$1=get_arg(0), - match$0=int_of_string_opt$0(arg$1); - if(! match$0)throw [0,Stop,[1,s,arg$1,cst_an_integer]]; - var x=match$0[1]; - caml_call1(f$2,x); - return consume_arg(0); - case 7: - var - r$2=param[1], - arg$2=get_arg(0), - match$1=int_of_string_opt$0(arg$2); - if(! match$1)throw [0,Stop,[1,s,arg$2,cst_an_integer$0]]; - var x$0=match$1[1]; - r$2[1] = x$0; - return consume_arg(0); - case 8: - var - f$3=param[1], - arg$3=get_arg(0), - match$2=float_of_string_opt(arg$3); - if(! match$2)throw [0,Stop,[1,s,arg$3,cst_a_float]]; - var x$1=match$2[1]; - caml_call1(f$3,x$1); - return consume_arg(0); - case 9: - var - r$3=param[1], - arg$4=get_arg(0), - match$3=float_of_string_opt(arg$4); - if(! match$3)throw [0,Stop,[1,s,arg$4,cst_a_float$0]]; - var x$2=match$3[1]; - r$3[1] = x$2; - return consume_arg(0); - case 10: - var specs=param[1]; - no_arg(0); - return iter$2(treat_action,specs); - case 11: - var f$4=param[2],symb=param[1],arg$5=get_arg(0); - if(! mem(arg$5,symb)) - throw [0, - Stop, - [1, - s, - arg$5, - cat(cst_one_of,make_symlist(cst$57,cst$56,cst$55,symb))]]; - caml_call1(f$4,arg$5); - return consume_arg(0); - case 12: - var f$5=param[1]; - no_arg(0); - for(;;) - {if(current[1] >= (argv[1].length - 1 - 1 | 0))return 0; - var _p8_=current[1] + 1 | 0; - caml_call1(f$5,caml_check_bound(argv[1],_p8_)[1 + _p8_]); - consume_arg(0)} - case 13: - var f$6=param[1]; - no_arg(0); - var acc=[0,0]; - for(;;) - {if(current[1] >= (argv[1].length - 1 - 1 | 0)) - return caml_call1(f$6,rev(acc[1])); - var _p__=current[1] + 1 | 0,_p9_=acc[1]; - acc[1] = [0,caml_check_bound(argv[1],_p__)[1 + _p__],_p9_]; - consume_arg(0)} - default: - var f$7=param[1]; - if(1 - allow_expand) - throw [0,Invalid_argument,cst_Arg_Expand_is_is_only_allo]; - var arg$6=get_arg(0),newarg=caml_call1(f$7,arg$6); - consume_arg(0); - var - before=sub$1(argv[1],0,current[1] + 1 | 0), - after= - sub$1 - (argv[1], - current[1] + 1 | 0, - (argv[1].length - 1 - current[1] | 0) - 1 | 0); - argv[1] - = - caml_array_concat([0,before,[0,newarg,[0,after,0]]]); - return 0}} - return treat_action}, - treat_action=treat_action$0(s,no_arg,get_arg,consume_arg); - treat_action(action); - switch$0 = 1} - if(! switch$0)caml_call1(anonfun,s)} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad){var m=exn[2];throw convert_error([3,m])} - if(exn[1] !== Stop)throw exn; - var e=exn[2]; - throw convert_error(e)} - current[1]++}} - function parse_and_expand_argv_dynamic - (current,argv,speclist,anonfun,errmsg) - {return parse_and_expand_argv_dynamic_ - (1,current,argv,speclist,anonfun,errmsg)} - function parse_argv_dynamic(opt,argv,speclist,anonfun,errmsg) - {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; - return parse_and_expand_argv_dynamic_ - (0,current$0,[0,argv],speclist,anonfun,errmsg)} - function parse_argv(opt,argv,speclist,anonfun,errmsg) - {if(opt)var sth=opt[1],current$0=sth;else var current$0=current; - return parse_argv_dynamic - ([0,current$0],argv,[0,speclist],anonfun,errmsg)} - function parse(l,f,msg) - {try - {var _p4_=parse_argv(0,caml_sys_argv(0),l,f,msg);return _p4_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_be_),msg$0);return exit(2)} - if(exn[1] !== Help)throw exn; - var msg$1=exn[2]; - caml_call1(printf(_bf_),msg$1); - return exit(0)}} - function parse_dynamic(l,f,msg) - {try - {var _p3_=parse_argv_dynamic(0,caml_sys_argv(0),l,f,msg);return _p3_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_bg_),msg$0);return exit(2)} - if(exn[1] !== Help)throw exn; - var msg$1=exn[2]; - caml_call1(printf(_bh_),msg$1); - return exit(0)}} - function parse_expand(l,f,msg) - {try - {var - argv=[0,caml_sys_argv(0)], - spec=[0,l], - current$0=[0,current[1]], - _p2_=parse_and_expand_argv_dynamic(current$0,argv,spec,f,msg); - return _p2_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Bad) - {var msg$0=exn[2];caml_call1(eprintf(_bi_),msg$0);return exit(2)} - if(exn[1] !== Help)throw exn; - var msg$1=exn[2]; - caml_call1(printf(_bj_),msg$1); - return exit(0)}} - function second_word(s) - {var len=caml_ml_string_length(s); - function loop(n) - {var n$0=n; - for(;;) - {if(len <= n$0)return len; - if(32 !== caml_string_get(s,n$0))return n$0; - var n$1=n$0 + 1 | 0,n$0=n$1}} - try - {var n$0=index$0(s,9)} - catch(_p0_) - {_p0_ = caml_wrap_exception(_p0_); - if(_p0_ !== Not_found)throw _p0_; - try - {var n=index$0(s,32)} - catch(_p1_) - {_p1_ = caml_wrap_exception(_p1_); - if(_p1_ === Not_found)return len; - throw _p1_} - return loop(n + 1 | 0)} - return loop(n$0 + 1 | 0)} - function max_arg_len(cur,param) - {var doc=param[3],spec=param[2],kwd=param[1]; - return 11 === spec[0] - ?max$1(cur,caml_ml_string_length(kwd)) - :max$1(cur,caml_ml_string_length(kwd) + second_word(doc) | 0)} - function replace_leading_tab(s) - {var seen=[0,0]; - return map$6 - (function(c) - {if(9 === c && ! seen[1]){seen[1] = 1;return 32}return c}, - s)} - function align(opt,speclist) - {if(opt)var sth=opt[1],limit=sth;else var limit=max_int; - var - completed=add_help(speclist), - len=fold_left$0(max_arg_len,0,completed), - len$0=min$1(len,limit); - return map$4 - (function(ksd) - {var _pY_=ksd[1],_pZ_=ksd[2]; - if(! caml_string_notequal(ksd[3],cst$58))return ksd; - if(11 === _pZ_[0]) - {var - msg$0=ksd[3], - cutcol$0=second_word(msg$0), - spaces$0=make$1(max$1(0,len$0 - cutcol$0 | 0) + 3 | 0,32); - return [0, - _pY_, - _pZ_, - cat(cst$59,cat(spaces$0,replace_leading_tab(msg$0)))]} - var - msg=ksd[3], - spec=ksd[2], - cutcol=second_word(msg), - kwd_len=caml_ml_string_length(_pY_), - diff=(len$0 - kwd_len | 0) - cutcol | 0; - if(0 >= diff)return [0,_pY_,spec,replace_leading_tab(msg)]; - var - spaces=make$1(diff,32), - prefix=sub$0(replace_leading_tab(msg),0,cutcol), - suffix= - sub$0(msg,cutcol,caml_ml_string_length(msg) - cutcol | 0); - return [0,_pY_,spec,cat(prefix,cat(spaces,suffix))]}, - completed)} - function read_aux(trim,sep,file) - {var ic=open_bin$0(file),buf=create$2(200),words=[0,0]; - function stash(param) - {var s=contents(buf); - if(trim) - {var len=caml_ml_string_length(s),switch$0=0; - if(0 < len && 13 === caml_string_get(s,len - 1 | 0)) - {var _pX_=sub$0(s,0,len - 1 | 0);switch$0 = 1} - if(! switch$0)var _pX_=s; - var word=_pX_} - else - var word=s; - words[1] = [0,word,words[1]]; - return clear$1(buf)} - try - {for(;;) - {var c=caml_ml_input_char(ic); - if(c === sep)stash(0);else add_char(buf,c)}} - catch(_pW_) - {_pW_ = caml_wrap_exception(_pW_); - if(_pW_ !== End_of_file)throw _pW_; - if(0 < buf[2])stash(0); - caml_ml_close_channel(ic); - return of_list(rev(words[1]))}} - var _bk_=10,_bl_=1; - function read_arg(_pV_){return read_aux(_bl_,_bk_,_pV_)} - var _bm_=0,_bn_=0; - function read_arg0(_pU_){return read_aux(_bn_,_bm_,_pU_)} - function write_aux(sep,file,args) - {var oc=open_bin(file); - iter$5(function(s){return caml_call2(fprintf(oc,_bo_),s,sep)},args); - return close(oc)} - var _bp_=10; - function write_arg(_pS_,_pT_){return write_aux(_bp_,_pS_,_pT_)} - var _bq_=0; - function write_arg0(_pQ_,_pR_){return write_aux(_bq_,_pQ_,_pR_)} - var - Stdlib_Arg= - [0, - parse, - parse_dynamic, - parse_argv, - parse_argv_dynamic, - parse_and_expand_argv_dynamic, - parse_expand, - Help, - Bad, - usage, - usage_string, - align, - current, - read_arg, - read_arg0, - write_arg, - write_arg0]; - caml_register_global(809,Stdlib_Arg,"Stdlib__Arg"); - var - Stdlib_Atomic= - [0,make,get,set,exchange,compare_and_set,fetch_and_add,incr,decr]; - caml_register_global(810,Stdlib_Atomic,"Stdlib__Atomic"); - var printers=[0,0]; - function field(x,i) - {var f=x[1 + i]; - return is_block(f) - ?caml_obj_tag(f) === 252 - ?caml_call1(sprintf(_br_),f) - :caml_obj_tag(f) === 253?to_string(f):cst$60 - :caml_call1(sprintf(_bs_),f)} - function other_fields(x,i) - {if(x.length - 1 <= i)return cst$61; - var _pO_=other_fields(x,i + 1 | 0),_pP_=field(x,i); - return caml_call2(sprintf(_bt_),_pP_,_pO_)} - function use_printers(x) - {function conv(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var tl=param$0[2],hd=param$0[1]; - try {var switch$0=0,val=caml_call1(hd,x);switch$0 = 1}catch(_pN_){} - if(switch$0 && val){var s=val[1];return [0,s]} - var param$0=tl}} - return conv(printers[1])} - function to_string_default(x) - {if(x === Out_of_memory)return cst_Out_of_memory; - if(x === Stack_overflow)return cst_Stack_overflow; - if(x[1] === Match_failure) - {var match$0=x[2],char$0=match$0[3],line=match$0[2],file=match$0[1]; - return caml_call5 - (sprintf(locfmt), - file, - line, - char$0, - char$0 + 5 | 0, - cst_Pattern_matching_failed)} - if(x[1] === Assert_failure) - {var - match$1=x[2], - char$1=match$1[3], - line$0=match$1[2], - file$0=match$1[1]; - return caml_call5 - (sprintf(locfmt), - file$0, - line$0, - char$1, - char$1 + 6 | 0, - cst_Assertion_failed)} - if(x[1] === Undefined_recursive_module) - {var - match$2=x[2], - char$2=match$2[3], - line$1=match$2[2], - file$1=match$2[1]; - return caml_call5 - (sprintf(locfmt), - file$1, - line$1, - char$2, - char$2 + 6 | 0, - cst_Undefined_recursive_module)} - if(0 !== caml_obj_tag(x))return x[1]; - var constructor=x[1][1],match=x.length - 1; - if(2 < match >>> 0) - var - _pJ_=other_fields(x,2), - _pK_=field(x,1), - _pM_=caml_call2(sprintf(_bu_),_pK_,_pJ_); - else - switch(match) - {case 0:var _pM_=cst$62;break; - case 1:var _pM_=cst$63;break; - default:var _pL_=field(x,1),_pM_=caml_call1(sprintf(_bv_),_pL_)} - return cat(constructor,_pM_)} - function to_string$6(e) - {var match=use_printers(e); - if(! match)return to_string_default(e); - var s=match[1]; - return s} - function print(fct,arg) - {try - {var _pI_=caml_call1(fct,arg);return _pI_} - catch(x) - {x = caml_wrap_exception(x); - var _pH_=to_string$6(x); - caml_call1(eprintf(_bw_),_pH_); - caml_ml_flush(stderr); - throw x}} - function catch$0(fct,arg) - {try - {var _pG_=caml_call1(fct,arg);return _pG_} - catch(x) - {x = caml_wrap_exception(x); - caml_ml_flush(stdout); - var _pF_=to_string$6(x); - caml_call1(eprintf(_bx_),_pF_); - return exit(2)}} - function raw_backtrace_entries(bt){return bt} - function convert_raw_backtrace(bt) - {return [0,runtime.caml_convert_raw_backtrace(bt)]} - function format_backtrace_slot(pos,slot) - {function info(is_raise) - {return is_raise - ?0 === pos?cst_Raised_at:cst_Re_raised_at - :0 === pos?cst_Raised_by_primitive_operat:cst_Called_from} - if(0 === slot[0]) - {var - _px_=slot[5], - _py_=slot[4], - _pz_=slot[3], - _pA_=slot[6]?cst_inlined:cst$64, - _pB_=slot[2], - _pC_=slot[7], - _pD_=info(slot[1]); - return [0, - caml_call7(sprintf(_by_),_pD_,_pC_,_pB_,_pA_,_pz_,_py_,_px_)]} - if(slot[1])return 0; - var _pE_=info(0); - return [0,caml_call1(sprintf(_bz_),_pE_)]} - function print_raw_backtrace(outchan,raw_backtrace) - {var backtrace=convert_raw_backtrace(raw_backtrace); - if(! backtrace)return fprintf(outchan,_bB_); - var a=backtrace[1],_pv_=a.length - 1 - 1 | 0,_pu_=0; - if(_pv_ >= 0) - {var i=_pu_; - for(;;) - {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); - if(match){var str=match[1];caml_call1(fprintf(outchan,_bA_),str)} - var _pw_=i + 1 | 0; - if(_pv_ !== i){var i=_pw_;continue} - break}} - return 0} - function print_backtrace(outchan) - {return print_raw_backtrace(outchan,caml_get_exception_raw_backtra(0))} - function raw_backtrace_to_string(raw_backtrace) - {var backtrace=convert_raw_backtrace(raw_backtrace); - if(! backtrace)return cst_Program_not_linked_with_g_; - var a=backtrace[1],b=create$2(1024),_ps_=a.length - 1 - 1 | 0,_pr_=0; - if(_ps_ >= 0) - {var i=_pr_; - for(;;) - {var match=format_backtrace_slot(i,caml_check_bound(a,i)[1 + i]); - if(match){var str=match[1];caml_call1(bprintf(b,_bC_),str)} - var _pt_=i + 1 | 0; - if(_ps_ !== i){var i=_pt_;continue} - break}} - return contents(b)} - function backtrace_slot_is_raise(param) - {return 0 === param[0]?param[1]:param[1]} - function backtrace_slot_is_inline(param){return 0 === param[0]?param[6]:0} - function backtrace_slot_location(param) - {return 0 === param[0]?[0,[0,param[2],param[3],param[4],param[5]]]:0} - function backtrace_slot_defname(param) - {if(0 === param[0] && caml_string_notequal(param[7],cst$65)) - return [0,param[7]]; - return 0} - function backtrace_slots(raw_backtrace) - {var match=convert_raw_backtrace(raw_backtrace); - if(! match)return 0; - var backtrace=match[1],i$1=backtrace.length - 1 - 1 | 0,i=i$1; - for(;;) - {if(-1 === i) - var _pq_=0; - else - {var - param=caml_check_bound(backtrace,i)[1 + i], - _pp_=0 === param[0]?1:0; - if(! _pp_){var i$0=i - 1 | 0,i=i$0;continue} - var _pq_=_pp_} - return _pq_?[0,backtrace]:0}} - function backtrace_slots_of_raw_entry(entry) - {return backtrace_slots([0,entry])} - function raw_backtrace_length(bt){return bt.length - 1} - function get_backtrace(param) - {return raw_backtrace_to_string(caml_get_exception_raw_backtra(0))} - function register_printer(fn) - {for(;;) - {var - old_printers=printers[1], - new_printers=[0,fn,old_printers], - success=compare_and_set(printers,old_printers,new_printers), - _po_=1 - success; - if(_po_)continue; - return _po_}} - function exn_slot(x){return 0 === caml_obj_tag(x)?x[1]:x} - function exn_slot_id(x){var slot=exn_slot(x);return slot[2]} - function exn_slot_name(x){var slot=exn_slot(x);return slot[1]} - var errors=_bD_.slice(); - function default_uncaught_exception_han(exn,raw_backtrace) - {var _pm_=to_string$6(exn); - caml_call1(eprintf(_bE_),_pm_); - print_raw_backtrace(stderr,raw_backtrace); - var status=runtime.caml_ml_debug_info_status(0); - if(status < 0) - {var _pn_=abs(status); - prerr_endline(caml_check_bound(errors,_pn_)[1 + _pn_])} - return caml_ml_flush(stderr)} - var uncaught_exception_handler=[0,default_uncaught_exception_han]; - function set_uncaught_exception_handler(fn) - {uncaught_exception_handler[1] = fn;return 0} - var empty_backtrace=[0]; - function handle_uncaught_exception(exn,debugger_in_use) - {try - {try - {var - raw_backtrace= - debugger_in_use?empty_backtrace:caml_get_exception_raw_backtra(0); - try {do_at_exit(0)}catch(_pl_){} - try - {var - _ph_=caml_call2(uncaught_exception_handler[1],exn,raw_backtrace), - _pg_=_ph_} - catch(exn$0) - {exn$0 = caml_wrap_exception(exn$0); - var - raw_backtrace$0=caml_get_exception_raw_backtra(0), - _pe_=to_string$6(exn); - caml_call1(eprintf(_bF_),_pe_); - print_raw_backtrace(stderr,raw_backtrace); - var _pf_=to_string$6(exn$0); - caml_call1(eprintf(_bG_),_pf_); - print_raw_backtrace(stderr,raw_backtrace$0); - var _pg_=caml_ml_flush(stderr)} - var _pi_=_pg_} - catch(_pk_) - {_pk_ = caml_wrap_exception(_pk_); - if(_pk_ !== Out_of_memory)throw _pk_; - var _pi_=prerr_endline(cst_Fatal_error_out_of_memory_)} - return _pi_} - catch(_pj_){return 0}} - caml_register_named_value - (caml_string_of_jsbytes("Printexc.handle_uncaught_exception"), - handle_uncaught_exception); - function _bH_(_pd_){return runtime.caml_raw_backtrace_next_slot(_pd_)} - function _bI_(_pc_){return runtime.caml_convert_raw_backtrace_slot(_pc_)} - function _bJ_(_pb_,_pa_) - {return runtime.caml_raw_backtrace_slot(_pb_,_pa_)} - var - _bK_= - [0, - backtrace_slot_is_raise, - backtrace_slot_is_inline, - backtrace_slot_location, - backtrace_slot_defname, - format_backtrace_slot]; - function _bL_(_o$_){return caml_get_exception_raw_backtra(_o$_)} - function _bM_(_o__){return runtime.caml_backtrace_status(_o__)} - var - Stdlib_Printexc= - [0, - to_string$6, - to_string_default, - print, - catch$0, - print_backtrace, - get_backtrace, - function(_o9_){return runtime.caml_record_backtrace(_o9_)}, - _bM_, - register_printer, - use_printers, - raw_backtrace_entries, - _bL_, - print_raw_backtrace, - raw_backtrace_to_string, - default_uncaught_exception_han, - set_uncaught_exception_handler, - backtrace_slots, - backtrace_slots_of_raw_entry, - _bK_, - raw_backtrace_length, - _bJ_, - _bI_, - _bH_, - exn_slot_id, - exn_slot_name]; - caml_register_global(811,Stdlib_Printexc,"Stdlib__Printexc"); - function const$0(c,param){return c} - function flip(f,x,y){return caml_call2(f,y,x)} - function negate(p,v){return 1 - caml_call1(p,v)} - var - Finally_raised= - [248,cst_Stdlib_Fun_Finally_raised,caml_fresh_oo_id(0)]; - register_printer - (function(param) - {if(param[1] !== Finally_raised)return 0; - var exn=param[2]; - return [0,cat(cst_Fun_Finally_raised,to_string$6(exn))]}); - function protect(finally$0,work) - {function finally_no_exn(param) - {try - {var _o8_=caml_call1(finally$0,0);return _o8_} - catch(e) - {e = caml_wrap_exception(e); - var bt=caml_get_exception_raw_backtra(0),exn=[0,Finally_raised,e]; - caml_restore_raw_backtrace(exn,bt); - throw exn}} - try - {var result=caml_call1(work,0)} - catch(work_exn) - {work_exn = caml_wrap_exception(work_exn); - var work_bt=caml_get_exception_raw_backtra(0); - finally_no_exn(0); - caml_restore_raw_backtrace(work_exn,work_bt); - throw work_exn} - finally_no_exn(0); - return result} - var Stdlib_Fun=[0,const$0,flip,negate,protect,Finally_raised]; - caml_register_global(812,Stdlib_Fun,"Stdlib__Fun"); - function print_stat(c) - {var st=runtime.caml_gc_stat(0),_oQ_=st[4]; - caml_call1(fprintf(c,_bN_),_oQ_); - var _oR_=st[5]; - caml_call1(fprintf(c,_bO_),_oR_); - var _oS_=st[14]; - caml_call1(fprintf(c,_bP_),_oS_); - var _oT_=st[17]; - caml_call1(fprintf(c,_bQ_),_oT_); - fprintf(c,_bR_); - var - _oU_=st[1], - l1=caml_ml_string_length(caml_call1(sprintf(_bS_),_oU_)), - _oV_=st[1]; - caml_call2(fprintf(c,_bT_),l1,_oV_); - var _oW_=st[2]; - caml_call2(fprintf(c,_bU_),l1,_oW_); - var _oX_=st[3]; - caml_call2(fprintf(c,_bV_),l1,_oX_); - fprintf(c,_bW_); - var - _oY_=st[15], - l2=caml_ml_string_length(caml_call1(sprintf(_bX_),_oY_)), - _oZ_=st[15]; - caml_call2(fprintf(c,_bY_),l2,_oZ_); - var _o0_=st[6]; - caml_call2(fprintf(c,_bZ_),l2,_o0_); - var _o1_=st[8]; - caml_call2(fprintf(c,_b0_),l2,_o1_); - var _o2_=st[10]; - caml_call2(fprintf(c,_b1_),l2,_o2_); - var _o3_=st[12]; - caml_call2(fprintf(c,_b2_),l2,_o3_); - var _o4_=st[13]; - caml_call2(fprintf(c,_b3_),l2,_o4_); - fprintf(c,_b4_); - var _o5_=st[9]; - caml_call1(fprintf(c,_b5_),_o5_); - var _o6_=st[11]; - caml_call1(fprintf(c,_b6_),_o6_); - var _o7_=st[7]; - return caml_call1(fprintf(c,_b7_),_o7_)} - function allocated_bytes(param) - {var - match=runtime.caml_gc_counters(0), - ma=match[3], - pro=match[2], - mi=match[1]; - return (mi + ma - pro) * 4} - function create_alarm(f){return [0,1]} - function delete_alarm(a){a[1] = 0;return 0} - function _b8_(param){return 0} - function _b9_(param){return 0} - function _b__(param){return 0} - function _b$_(param){return 0} - var null_tracker=[0,function(param){return 0},_b$_,_b__,_b9_,_b8_]; - function start(sampling_rate,opt,tracker) - {if(opt) - var sth=opt[1],callstack_size=sth; - else - var callstack_size=max_int; - return runtime.caml_memprof_start(sampling_rate,callstack_size,tracker)} - var _ca_=[0,null_tracker,start,runtime.caml_memprof_stop]; - function _cb_(_oP_){return runtime.caml_final_release(_oP_)} - var - _cc_=runtime.caml_final_register_called_without_value, - Stdlib_Gc= - [0, - print_stat, - allocated_bytes, - function(_oO_,_oN_){return runtime.caml_final_register(_oO_,_oN_)}, - _cc_, - _cb_, - create_alarm, - delete_alarm, - _ca_]; - caml_register_global(813,Stdlib_Gc,"Stdlib__Gc"); - function string(str) - {return caml_md5_string(str,0,caml_ml_string_length(str))} - function bytes(b){return string(caml_string_of_bytes(b))} - function substring(str,ofs,len) - {if - (0 <= ofs && 0 <= len && (caml_ml_string_length(str) - len | 0) >= ofs) - return caml_md5_string(str,ofs,len); - return invalid_arg(cst_Digest_substring)} - function subbytes(b,ofs,len) - {return substring(caml_string_of_bytes(b),ofs,len)} - function file(filename) - {var ic=open_bin$0(filename); - try - {var d=runtime.caml_md5_chan(ic,-1)} - catch(e){e = caml_wrap_exception(e);caml_ml_close_channel(ic);throw e} - caml_ml_close_channel(ic); - return d} - function output$0(chan,digest){return output_string(chan,digest)} - function input$0(chan){return really_input_string(chan,16)} - function char_hex(n){var _oM_=10 <= n?87:48;return n + _oM_ | 0} - function to_hex(d) - {if(16 !== caml_ml_string_length(d))invalid_arg(cst_Digest_to_hex); - var result=caml_create_bytes(32),i=0; - for(;;) - {var x=caml_string_get(d,i); - caml_bytes_unsafe_set(result,i * 2 | 0,char_hex(x >>> 4 | 0)); - caml_bytes_unsafe_set(result,(i * 2 | 0) + 1 | 0,char_hex(x & 15)); - var _oL_=i + 1 | 0; - if(15 === i)return caml_string_of_bytes(result); - var i=_oL_}} - function from_hex(s) - {if(32 !== caml_ml_string_length(s))invalid_arg(cst_Digest_from_hex); - function digit(c) - {if(65 <= c) - {if(97 <= c) - {if(103 > c)return (c - 97 | 0) + 10 | 0} - else - if(71 > c)return (c - 65 | 0) + 10 | 0} - else - if(9 >= c - 48 >>> 0)return c - 48 | 0; - throw [0,Invalid_argument,cst_Digest_from_hex$0]} - var result=caml_create_bytes(16),i=0; - for(;;) - {var i$0=2 * i | 0,_oJ_=digit(caml_string_get(s,i$0 + 1 | 0)); - caml_bytes_set - (result,i,chr((digit(caml_string_get(s,i$0)) << 4) + _oJ_ | 0)); - var _oK_=i + 1 | 0; - if(15 === i)return caml_string_of_bytes(result); - var i=_oK_}} - var - Stdlib_Digest= - [0, - compare$9, - equal$9, - string, - bytes, - substring, - subbytes, - file, - output$0, - input$0, - to_hex, - from_hex]; - caml_register_global(814,Stdlib_Digest,"Stdlib__Digest"); - function new_state(param){return [0,caml_make_vect(55,0),0]} - function assign(st1,st2) - {blit$1(st2[1],0,st1[1],0,55);st1[2] = st2[2];return 0} - function full_init(s,seed) - {var seed$0=0 === seed.length - 1?[0,0]:seed,l=seed$0.length - 1,i$0=0; - for(;;) - {caml_check_bound(s[1],i$0)[1 + i$0] = i$0; - var _oI_=i$0 + 1 | 0; - if(54 !== i$0){var i$0=_oI_;continue} - var accu=[0,cst_x$1],_oE_=54 + max$1(55,l) | 0,_oD_=0; - if(_oE_ >= 0) - {var i=_oD_; - for(;;) - {var - j=i % 55 | 0, - k=caml_mod(i,l), - x=caml_check_bound(seed$0,k)[1 + k]; - accu[1] = string(cat(accu[1],caml_string_of_jsbytes("" + x))); - var - _oF_=accu[1], - _oz_=caml_string_get(_oF_,3) << 24, - _oA_=caml_string_get(_oF_,2) << 16, - _oB_=caml_string_get(_oF_,1) << 8, - _oC_=((caml_string_get(_oF_,0) + _oB_ | 0) + _oA_ | 0) + _oz_ | 0, - _oG_=(caml_check_bound(s[1],j)[1 + j] ^ _oC_) & 1073741823; - caml_check_bound(s[1],j)[1 + j] = _oG_; - var _oH_=i + 1 | 0; - if(_oE_ !== i){var i=_oH_;continue} - break}} - s[2] = 0; - return 0}} - function make$3(seed) - {var result=new_state(0);full_init(result,seed);return result} - function make_self_init(param){return make$3(caml_sys_random_seed(0))} - function copy$5(s){var result=new_state(0);assign(result,s);return result} - function bits(s) - {s[2] = (s[2] + 1 | 0) % 55 | 0; - var - _ow_=s[2], - curval=caml_check_bound(s[1],_ow_)[1 + _ow_], - _ox_=(s[2] + 24 | 0) % 55 | 0, - newval= - caml_check_bound(s[1],_ox_)[1 + _ox_] - + - (curval ^ (curval >>> 25 | 0) & 31) - | - 0, - newval30=newval & 1073741823, - _oy_=s[2]; - caml_check_bound(s[1],_oy_)[1 + _oy_] = newval30; - return newval30} - function intaux(s,n) - {for(;;) - {var r=bits(s),v=caml_mod(r,n); - if(((1073741823 - n | 0) + 1 | 0) < (r - v | 0))continue; - return v}} - function int$0(s,bound) - {if(1073741823 >= bound && 0 < bound)return intaux(s,bound); - return invalid_arg(cst_Random_int)} - function full_int(s,bound) - {if(0 >= bound)return invalid_arg(cst_Random_full_int); - if(1073741823 >= bound)return intaux(s,bound); - for(;;) - {var b1=bits(s),b2=bits(s); - if(bound <= 2147483647) - var bpos=(b2 & 1073725440) << 1 | b1 >>> 15 | 0,r=bpos; - else - var - b3=bits(s), - r$0=((b3 & 1073741312) << 12 | b2 >>> 9 | 0) << 20 | b1 >>> 10 | 0, - r=r$0; - var v=caml_mod(r,bound); - if(((2147483647 - bound | 0) + 1 | 0) < (r - v | 0))continue; - return v}} - function int32(s,bound) - {if(caml_lessequal(bound,0))return invalid_arg(cst_Random_int32); - for(;;) - {var b1=bits(s),b2=(bits(s) & 1) << 30,r=b1 | b2,v=caml_mod(r,bound); - if(caml_greaterthan(r - v | 0,(2147483647 - bound | 0) + 1 | 0)) - continue; - return v}} - function int64(s,bound) - {if(caml_lessequal(bound,_ce_))return invalid_arg(cst_Random_int64); - for(;;) - {var - b1=caml_int64_of_int32(bits(s)), - b2=caml_int64_shift_left(caml_int64_of_int32(bits(s)),30), - b3=caml_int64_shift_left(caml_int64_of_int32(bits(s) & 7),60), - r=caml_int64_or(b1,caml_int64_or(b2,b3)), - v=runtime.caml_int64_mod(r,bound); - if - (caml_greaterthan - (caml_int64_sub(r,v), - caml_int64_add(caml_int64_sub(max_int$2,bound),_cd_))) - continue; - return v}} - function nativeint(s,bound){return int32(s,bound)} - function float$0(s,bound) - {var r1=bits(s),r2=bits(s); - return (r1 / 1073741824. + r2) / 1073741824. * bound} - function bool(s){return 0 === (bits(s) & 1)?1:0} - function bits32(s) - {var b1=bits(s) >>> 14 | 0,b2=bits(s) >>> 14 | 0;return b1 | b2 << 16} - function bits64(s) - {var - b1=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), - b2=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),9), - b3=caml_int64_shift_right_unsigne(caml_int64_of_int32(bits(s)),8); - return caml_int64_or - (b1, - caml_int64_or - (caml_int64_shift_left(b2,21),caml_int64_shift_left(b3,42)))} - function nativebits(s){return bits32(s)} - var default$0=[0,_cf_.slice(),0]; - function bits$0(param){return bits(default$0)} - function int$1(bound){return int$0(default$0,bound)} - function full_int$0(bound){return full_int(default$0,bound)} - function int32$0(bound){return int32(default$0,bound)} - function nativeint$0(bound){return nativeint(default$0,bound)} - function int64$0(bound){return int64(default$0,bound)} - function float$1(scale){return float$0(default$0,scale)} - function bool$0(param){return bool(default$0)} - function bits32$0(param){return bits32(default$0)} - function bits64$0(param){return bits64(default$0)} - function nativebits$0(param){return nativebits(default$0)} - function full_init$0(seed){return full_init(default$0,seed)} - function init$5(seed){return full_init(default$0,[0,seed])} - function self_init(param){return full_init$0(caml_sys_random_seed(0))} - function get_state(param){return copy$5(default$0)} - function set_state(s){return assign(default$0,s)} - var - _cg_= - [0, - make$3, - make_self_init, - copy$5, - bits, - int$0, - full_int, - int32, - nativeint, - int64, - float$0, - bool, - bits32, - bits64, - nativebits], - Stdlib_Random= - [0, - init$5, full_init$0, self_init, bits$0, @@ -22919,1986 +25357,2139 @@ bits32$0, bits64$0, nativebits$0, - _cg_, + [0, + make, + make_self_init, + copy, + bits, + int$0, + full_int, + int32, + nativeint, + int64, + float$0, + bool, + bits32, + bits64, + nativebits], get_state, set_state]; - caml_register_global(815,Stdlib_Random,"Stdlib__Random"); - function ongoing_traversal(h) - {var _ou_=h.length - 1 < 4?1:0,_ov_=_ou_ || (h[4] < 0?1:0);return _ov_} - function flip_ongoing_traversal(h){h[4] = - h[4] | 0;return 0} - try - {var _c3_=caml_sys_getenv(cst_OCAMLRUNPARAM),params=_c3_} - catch(_os_) - {_os_ = caml_wrap_exception(_os_); - if(_os_ !== Not_found)throw _os_; - try - {var _c2_=caml_sys_getenv(cst_CAMLRUNPARAM),_ch_=_c2_} - catch(_ot_) - {_ot_ = caml_wrap_exception(_ot_); - if(_ot_ !== Not_found)throw _ot_; - var _ch_=cst$66} - var params=_ch_} + runtime.caml_register_global(18, Stdlib_Random, "Stdlib__Random"); + return; + } + (globalThis)); + +//# 17812 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_compare = runtime.caml_compare, + caml_hash = runtime.caml_hash, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_tag = runtime.caml_obj_tag, + caml_sys_getenv = runtime.caml_sys_getenv, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "", + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib = global_data.Stdlib, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Random = global_data.Stdlib__Random, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Array = global_data.Stdlib__Array; + global_data.Assert_failure; + var + Stdlib_String = global_data.Stdlib__String, + cst_Hashtbl_unsupported_hash_t = "Hashtbl: unsupported hash table format", + _d_ = [0, 0]; + function ongoing_traversal(h){ + var _aE_ = h.length - 1 < 4 ? 1 : 0, _aF_ = _aE_ || (h[4] < 0 ? 1 : 0); + return _aF_; + } + function flip_ongoing_traversal(h){h[4] = - h[4] | 0; return 0;} + try{var _f_ = caml_sys_getenv("OCAMLRUNPARAM"), params = _f_;} + catch(_aC_){ + var _a_ = caml_wrap_exception(_aC_); + if(_a_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_a_, 0); + try{var _e_ = caml_sys_getenv("CAMLRUNPARAM"), _c_ = _e_;} + catch(_aD_){ + var _b_ = caml_wrap_exception(_aD_); + if(_b_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_b_, 0); + var _c_ = cst; + } + var params = _c_; + } + var + randomized_default = caml_call2(Stdlib_String[14], params, 82), + randomized = [0, randomized_default]; + function randomize(param){randomized[1] = 1; return 0;} + function is_randomized(param){return randomized[1];} + var + prng = [246, function(_aB_){return caml_call1(Stdlib_Random[15][2], 0);}]; + function power_2_above(x, n){ + var x$0 = x; + for(;;){ + if(n <= x$0) return x$0; + if(Stdlib_Sys[13] < (x$0 * 2 | 0)) return x$0; + var x$1 = x$0 * 2 | 0, x$0 = x$1; + } + } + function create(opt, initial_size){ + if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; + var s = power_2_above(16, initial_size); + if(random) + var + _az_ = caml_obj_tag(prng), + _aA_ = + 250 === _az_ + ? prng[1] + : 246 === _az_ ? caml_call1(CamlinternalLazy[2], prng) : prng, + seed = caml_call1(Stdlib_Random[15][4], _aA_); + else + var seed = 0; + return [0, 0, caml_make_vect(s, 0), seed, s]; + } + function clear(h){ + var _ay_ = 0 < h[1] ? 1 : 0; + return _ay_ + ? (h + [1] + = 0, + caml_call4(Stdlib_Array[9], h[2], 0, h[2].length - 1, 0)) + : _ay_; + } + function reset(h){ + var len = h[2].length - 1; + if(4 <= h.length - 1 && len !== caml_call1(Stdlib[18], h[4])){ + h[1] = 0; + h[2] = caml_make_vect(caml_call1(Stdlib[18], h[4]), 0); + return 0; + } + return clear(h); + } + function copy_bucketlist(param){ + if(! param) return 0; var - randomized_default=contains$0(params,82), - randomized=[0,randomized_default]; - function randomize(param){randomized[1] = 1;return 0} - function is_randomized(param){return randomized[1]} - var prng=[246,function(_or_){return caml_call1(_cg_[2],0)}]; - function power_2_above(x,n) - {var x$0=x; - for(;;) - {if(n <= x$0)return x$0; - if(max_array_length < (x$0 * 2 | 0))return x$0; - var x$1=x$0 * 2 | 0,x$0=x$1}} - function create$3(opt,initial_size) - {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; - var s=power_2_above(16,initial_size); - if(random) - var - _op_=caml_obj_tag(prng), - _oq_=250 === _op_?prng[1]:246 === _op_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_oq_); - else - var seed=0; - return [0,0,caml_make_vect(s,0),seed,s]} - function clear$2(h) - {var _oo_=0 < h[1]?1:0; - return _oo_?(h[1] = 0,fill$0(h[2],0,h[2].length - 1,0)):_oo_} - function reset$0(h) - {var len=h[2].length - 1; - if(4 <= h.length - 1 && len !== abs(h[4])) - {h[1] = 0;h[2] = caml_make_vect(abs(h[4]),0);return 0} - return clear$2(h)} - function copy_bucketlist(param) - {if(! param)return 0; - var - key=param[1], - data=param[2], - next=param[3], - prec$0=[0,key,data,next], - prec=prec$0, - param$0=next; - for(;;) - {if(! param$0)return prec$0; + key = param[1], + data = param[2], + next = param[3], + prec$1 = [0, key, data, next], + prec = prec$1, + param$0 = next; + for(;;){ + if(! param$0) return prec$1; + var + key$0 = param$0[1], + data$0 = param$0[2], + next$0 = param$0[3], + prec$0 = [0, key$0, data$0, next$0]; + prec[3] = prec$0; + var prec = prec$0, param$0 = next$0; + } + } + function copy(h){ + var + _av_ = h[4], + _aw_ = h[3], + _ax_ = caml_call2(Stdlib_Array[15], copy_bucketlist, h[2]); + return [0, h[1], _ax_, _aw_, _av_]; + } + function length(h){return h[1];} + function insert_all_buckets(indexfun, inplace, odata, ndata){ + var + nsize = ndata.length - 1, + ndata_tail = caml_make_vect(nsize, 0), + _ap_ = odata.length - 1 - 1 | 0, + _ao_ = 0; + if(_ap_ >= 0){ + var i$0 = _ao_; + a: + for(;;){ + var cell$1 = caml_check_bound(odata, i$0)[1 + i$0], cell = cell$1; + for(;;){ + if(cell){ var - key$0=param$0[1], - data$0=param$0[2], - next$0=param$0[3], - r=[0,key$0,data$0,next$0]; - prec[3] = r; - var prec=r,param$0=next$0}} - function copy$6(init) - {var _ol_=init[4],_om_=init[3],_on_=map$7(copy_bucketlist,init[2]); - return [0,init[1],_on_,_om_,_ol_]} - function length$5(h){return h[1]} - function insert_all_buckets(indexfun,inplace,odata,ndata) - {var - nsize=ndata.length - 1, - ndata_tail=caml_make_vect(nsize,0), - _of_=odata.length - 1 - 1 | 0, - _oe_=0; - if(_of_ >= 0) - {var i$0=_oe_; - a: - for(;;) - {var cell$1=caml_check_bound(odata,i$0)[1 + i$0],cell=cell$1; - for(;;) - {if(cell) - {var - key=cell[1], - data=cell[2], - next=cell[3], - cell$0=inplace?cell:[0,key,data,0], - nidx=caml_call1(indexfun,key), - match=caml_check_bound(ndata_tail,nidx)[1 + nidx]; - if(match) - match[3] = cell$0; - else - caml_check_bound(ndata,nidx)[1 + nidx] = cell$0; - caml_check_bound(ndata_tail,nidx)[1 + nidx] = cell$0; - var cell=next; - continue} - var _ok_=i$0 + 1 | 0; - if(_of_ !== i$0){var i$0=_ok_;continue a} - break} - break}} - if(inplace) - {var _oh_=nsize - 1 | 0,_og_=0; - if(_oh_ >= 0) - {var i=_og_; - for(;;) - {var match$0=caml_check_bound(ndata_tail,i)[1 + i]; - if(match$0)match$0[3] = 0; - var _oj_=i + 1 | 0; - if(_oh_ !== i){var i=_oj_;continue} - break}} - var _oi_=0} - else - var _oi_=inplace; - return _oi_} - function resize$0(indexfun,h) - {var - odata=h[2], - osize=odata.length - 1, - nsize=osize * 2 | 0, - _od_=nsize < max_array_length?1:0; - if(! _od_)return _od_; - var ndata=caml_make_vect(nsize,0),inplace=1 - ongoing_traversal(h); - h[2] = ndata; - return insert_all_buckets(caml_call1(indexfun,h),inplace,odata,ndata)} - function iter$10(f,h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var key=param$0[1],data=param$0[2],next=param$0[3]; - caml_call2(f,key,data); - var param$0=next}} - var old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var d=h[2],_n$_=d.length - 1 - 1 | 0,_n__=0; - if(_n$_ >= 0) - {var i=_n__; - for(;;) - {do_bucket(caml_check_bound(d,i)[1 + i]); - var _oc_=i + 1 | 0; - if(_n$_ !== i){var i=_oc_;continue} - break}} - var _oa_=1 - old_trav,_ob_=_oa_?flip_ongoing_traversal(h):_oa_; - return _ob_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function filter_map_inplace_bucket(f,h,i,prec,slot) - {var prec$0=prec,slot$0=slot; - for(;;) - {if(! slot$0) - return prec$0 - ?(prec$0[3] = 0,0) - :(caml_check_bound(h[2],i)[1 + i] = 0,0); - var - key=slot$0[1], - data=slot$0[2], - next=slot$0[3], - match=caml_call2(f,key,data); - if(! match){h[1] = h[1] - 1 | 0;var slot$0=next;continue} - var data$0=match[1]; - if(prec$0) - prec$0[3] = slot$0; + key = cell[1], + data = cell[2], + next = cell[3], + cell$0 = inplace ? cell : [0, key, data, 0], + nidx = caml_call1(indexfun, key), + match = caml_check_bound(ndata_tail, nidx)[1 + nidx]; + if(match) + match[3] = cell$0; else - caml_check_bound(h[2],i)[1 + i] = slot$0; - slot$0[2] = data$0; - var prec$0=slot$0,slot$0=next}} - function filter_map_inplace(f,h) - {var d=h[2],old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var _n6_=d.length - 1 - 1 | 0,_n5_=0; - if(_n6_ >= 0) - {var i=_n5_; - for(;;) - {filter_map_inplace_bucket(f,h,i,0,caml_check_bound(h[2],i)[1 + i]); - var _n9_=i + 1 | 0; - if(_n6_ !== i){var i=_n9_;continue} - break}} - var _n7_=1 - old_trav,_n8_=_n7_?flip_ongoing_traversal(h):_n7_; - return _n8_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function fold$4(f,h,init) - {function do_bucket(b,accu) - {var b$0=b,accu$0=accu; - for(;;) - {if(! b$0)return accu$0; - var - key=b$0[1], - data=b$0[2], - next=b$0[3], - accu$1=caml_call3(f,key,data,accu$0), - b$0=next, - accu$0=accu$1}} - var old_trav=ongoing_traversal(h); - if(1 - old_trav)flip_ongoing_traversal(h); - try - {var d=h[2],accu=[0,init],_n1_=d.length - 1 - 1 | 0,_n0_=0; - if(_n1_ >= 0) - {var i=_n0_; - for(;;) - {var _n3_=accu[1]; - accu[1] = do_bucket(caml_check_bound(d,i)[1 + i],_n3_); - var _n4_=i + 1 | 0; - if(_n1_ !== i){var i=_n4_;continue} - break}} - if(1 - old_trav)flip_ongoing_traversal(h); - var _n2_=accu[1]; - return _n2_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(old_trav)throw exn; - flip_ongoing_traversal(h); - throw exn}} - function bucket_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var - param$1=param$0[3], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1}} - function stats(h) - {var - _nW_=h[2], - _nX_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length(0,b))},_nX_,_nW_), - histo=caml_make_vect(mbl + 1 | 0,0), - _nY_=h[2]; - iter$5 - (function(b) - {var - l=bucket_length(0,b), - _nZ_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _nZ_; - return 0}, - _nY_); - return [0,h[1],h[2].length - 1,mbl,histo]} - function to_seq$9(tbl) - {var tbl_data=tbl[2]; - function aux(i,buck,param) - {var i$0=i,buck$0=buck; - for(;;) - {if(buck$0) - {var key=buck$0[1],data=buck$0[2],next=buck$0[3]; - return [0,[0,key,data],function(_nV_){return aux(i$0,next,_nV_)}]} - if(i$0 === tbl_data.length - 1)return 0; - var - buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], - i$1=i$0 + 1 | 0, - i$0=i$1, - buck$0=buck$1}} - var _nS_=0,_nT_=0; - return function(_nU_){return aux(_nT_,_nS_,_nU_)}} - function to_seq_keys(m) - {var _nO_=to_seq$9(m); - function _nP_(_nR_){return _nR_[1]} - return function(_nQ_){return map$1(_nP_,_nO_,_nQ_)}} - function to_seq_values(m) - {var _nK_=to_seq$9(m); - function _nL_(_nN_){return _nN_[2]} - return function(_nM_){return map$1(_nL_,_nK_,_nM_)}} - function MakeSeeded(H) - {function key_index(h,key) - {var _nJ_=h[2].length - 1 - 1 | 0; - return caml_call2(H[2],h[3],key) & _nJ_} - function add(h,key,data) - {var - i=key_index(h,key), - bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _nI_=h[2].length - 1 << 1 < h[1]?1:0; - return _nI_?resize$0(key_index,h):_nI_} - function remove(h,key) - {var - i=key_index(h,key), - c$0=caml_check_bound(h[2],i)[1 + i], - prec=0, - c=c$0; - for(;;) - {if(! c)return 0; - var k=c[1],next=c[3]; - if(caml_call2(H[1],k,key)) - {h[1] = h[1] - 1 | 0; - return prec - ?(prec[3] = next,0) - :(caml_check_bound(h[2],i)[1 + i] = next,0)} - var prec=c,c=next}} - function find(h,key) - {var _nH_=key_index(h,key),match=caml_check_bound(h[2],_nH_)[1 + _nH_]; - if(! match)throw Not_found; - var k1=match[1],d1=match[2],next1=match[3]; - if(caml_call2(H[1],key,k1))return d1; - if(! next1)throw Not_found; - var k2=next1[1],d2=next1[2],next2=next1[3]; - if(caml_call2(H[1],key,k2))return d2; - if(! next2)throw Not_found; - var k3=next2[1],d3=next2[2],next3=next2[3]; - if(caml_call2(H[1],key,k3))return d3; - var param=next3; - for(;;) - {if(! param)throw Not_found; - var k=param[1],data=param[2],next=param[3]; - if(caml_call2(H[1],key,k))return data; - var param=next}} - function find_opt(h,key) - {var _nG_=key_index(h,key),match=caml_check_bound(h[2],_nG_)[1 + _nG_]; - if(! match)return 0; - var k1=match[1],d1=match[2],next1=match[3]; - if(caml_call2(H[1],key,k1))return [0,d1]; - if(! next1)return 0; - var k2=next1[1],d2=next1[2],next2=next1[3]; - if(caml_call2(H[1],key,k2))return [0,d2]; - if(! next2)return 0; - var k3=next2[1],d3=next2[2],next3=next2[3]; - if(caml_call2(H[1],key,k3))return [0,d3]; - var param=next3; - for(;;) - {if(! param)return 0; - var k=param[1],data=param[2],next=param[3]; - if(caml_call2(H[1],key,k))return [0,data]; - var param=next}} - function find_all(h,key) - {function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var k=param$0[1],d=param$0[2],next=param$0[3]; - if(caml_call2(H[1],k,key))return [0,d,find_in_bucket(next)]; - var param$0=next}} - var _nF_=key_index(h,key); - return find_in_bucket(caml_check_bound(h[2],_nF_)[1 + _nF_])} - function replace(h,key,data) - {var - i=key_index(h,key), - param$0=caml_check_bound(h[2],i)[1 + i], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3]; - if(! caml_call2(H[1],k,key)){var param=next;continue} - param[1] = key; - param[2] = data; - var _nC_=0} - else - var _nC_=1; - if(_nC_) - {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; - h[1] = h[1] + 1 | 0; - var _nD_=h[2].length - 1 << 1 < h[1]?1:0; - if(_nD_)return resize$0(key_index,h); - var _nE_=_nD_} - else - var _nE_=_nC_; - return _nE_}} - function mem(h,key) - {var - _nB_=key_index(h,key), - param$0=caml_check_bound(h[2],_nB_)[1 + _nB_], - param=param$0; - for(;;) - {if(! param)return 0; - var k=param[1],next=param[3],_nA_=caml_call2(H[1],k,key); - if(_nA_)return _nA_; - var param=next}} - function add_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} - return [0, - create$3, - clear$2, - reset$0, - copy$6, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter$10, - filter_map_inplace, - fold$4, - length$5, - stats, - to_seq$9, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]} - function Make$0(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} + caml_check_bound(ndata, nidx)[1 + nidx] = cell$0; + caml_check_bound(ndata_tail, nidx)[1 + nidx] = cell$0; + var cell = next; + continue; + } + var _au_ = i$0 + 1 | 0; + if(_ap_ !== i$0){var i$0 = _au_; continue a;} + break; + } + break; + } + } + if(inplace){ + var _ar_ = nsize - 1 | 0, _aq_ = 0; + if(_ar_ >= 0){ + var i = _aq_; + for(;;){ + var match$0 = caml_check_bound(ndata_tail, i)[1 + i]; + if(match$0) match$0[3] = 0; + var _at_ = i + 1 | 0; + if(_ar_ !== i){var i = _at_; continue;} + break; + } + } + var _as_ = 0; + } + else + var _as_ = inplace; + return _as_; + } + function resize(indexfun, h){ + var + odata = h[2], + osize = odata.length - 1, + nsize = osize * 2 | 0, + _an_ = nsize < Stdlib_Sys[13] ? 1 : 0; + if(! _an_) return _an_; + var ndata = caml_make_vect(nsize, 0), inplace = 1 - ongoing_traversal(h); + h[2] = ndata; + return insert_all_buckets(caml_call1(indexfun, h), inplace, odata, ndata); + } + function iter(f, h){ + var old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var d = h[2], _aj_ = d.length - 1 - 1 | 0, _ai_ = 0; + if(_aj_ >= 0){ + var i = _ai_; + a: + for(;;){ + var param = caml_check_bound(d, i)[1 + i]; + for(;;){ + if(param){ + var key = param[1], data = param[2], next = param[3]; + caml_call2(f, key, data); + var param = next; + continue; + } + var _am_ = i + 1 | 0; + if(_aj_ !== i){var i = _am_; continue a;} + break; + } + break; + } + } + var _ak_ = 1 - old_trav, _al_ = _ak_ ? flip_ongoing_traversal(h) : _ak_; + return _al_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function filter_map_inplace(f, h){ + var d = h[2], old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var _ae_ = d.length - 1 - 1 | 0, _ad_ = 0; + if(_ae_ >= 0){ + var i = _ad_; + a: + for(;;){ + var slot$0 = caml_check_bound(h[2], i)[1 + i], prec = 0, slot = slot$0; + for(;;){ + if(slot){ + var + key = slot[1], + data = slot[2], + next = slot[3], + match = caml_call2(f, key, data); + if(! match){h[1] = h[1] - 1 | 0; var slot = next; continue;} + var data$0 = match[1]; + if(prec) + prec[3] = slot; + else + caml_check_bound(h[2], i)[1 + i] = slot; + slot[2] = data$0; + var prec = slot, slot = next; + continue; + } + if(prec) prec[3] = 0; else caml_check_bound(h[2], i)[1 + i] = 0; + var _ah_ = i + 1 | 0; + if(_ae_ !== i){var i = _ah_; continue a;} + break; + } + break; + } + } + var _af_ = 1 - old_trav, _ag_ = _af_ ? flip_ongoing_traversal(h) : _af_; + return _ag_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function fold(f, h, init){ + var old_trav = ongoing_traversal(h); + if(1 - old_trav) flip_ongoing_traversal(h); + try{ + var d = h[2], accu$1 = [0, init], _aa_ = d.length - 1 - 1 | 0, _$_ = 0; + if(_aa_ >= 0){ + var i = _$_; + a: + for(;;){ + var + accu$2 = accu$1[1], + b$0 = caml_check_bound(d, i)[1 + i], + b = b$0, + accu = accu$2; + for(;;){ + if(b){ + var + key = b[1], + data = b[2], + next = b[3], + accu$0 = caml_call3(f, key, data, accu), + b = next, + accu = accu$0; + continue; + } + accu$1[1] = accu; + var _ac_ = i + 1 | 0; + if(_aa_ !== i){var i = _ac_; continue a;} + break; + } + break; + } + } + if(1 - old_trav) flip_ongoing_traversal(h); + var _ab_ = accu$1[1]; + return _ab_; + } + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(old_trav) throw caml_maybe_attach_backtrace(exn, 0); + flip_ongoing_traversal(h); + throw caml_maybe_attach_backtrace(exn, 0); + } + } + function bucket_length(accu, param){ + var accu$0 = accu, param$0 = param; + for(;;){ + if(! param$0) return accu$0; + var + next = param$0[3], + accu$1 = accu$0 + 1 | 0, + accu$0 = accu$1, + param$0 = next; + } + } + function stats(h){ + var _V_ = h[2], _W_ = 0; + function _X_(m, b){ + var ___ = bucket_length(0, b); + return caml_call2(Stdlib_Int[11], m, ___); + } + var + mbl = caml_call3(Stdlib_Array[17], _X_, _W_, _V_), + histo = caml_make_vect(mbl + 1 | 0, 0), + _Y_ = h[2]; + function _Z_(b){ + var l = bucket_length(0, b); + histo[1 + l] = caml_check_bound(histo, l)[1 + l] + 1 | 0; + return 0; + } + caml_call2(Stdlib_Array[13], _Z_, _Y_); + return [0, h[1], h[2].length - 1, mbl, histo]; + } + function to_seq(tbl){ + var tbl_data = tbl[2]; + function aux(i, buck, param){ + var i$0 = i, buck$0 = buck; + for(;;){ + if(buck$0){ + var key = buck$0[1], data = buck$0[2], next = buck$0[3]; + return [0, [0, key, data], function(_U_){return aux(i$0, next, _U_);}]; + } + if(i$0 === tbl_data.length - 1) return 0; var - include=MakeSeeded([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - _nz_=include[1]; - function create(sz){return caml_call2(_nz_,_ci_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq]} - function hash$1(x){return caml_hash(10,100,0,x)} - function hash_param(n1,n2,x){return caml_hash(n1,n2,0,x)} - function seeded_hash(seed,x){return caml_hash(10,100,seed,x)} - function key_index(h,key) - {return 4 <= h.length - 1 - ?caml_hash(10,100,h[3],key) & (h[2].length - 1 - 1 | 0) - :invalid_arg(cst_Hashtbl_unsupported_hash_t)} - function add$0(h,key,data) - {var - i=key_index(h,key), - bucket=[0,key,data,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; + buck$1 = caml_check_bound(tbl_data, i$0)[1 + i$0], + i$1 = i$0 + 1 | 0, + i$0 = i$1, + buck$0 = buck$1; + } + } + var _R_ = 0, _S_ = 0; + return function(_T_){return aux(_S_, _R_, _T_);}; + } + function to_seq_keys(m){ + var _O_ = to_seq(m); + function _P_(_Q_){return _Q_[1];} + return caml_call2(Stdlib_Seq[27], _P_, _O_); + } + function to_seq_values(m){ + var _L_ = to_seq(m); + function _M_(_N_){return _N_[2];} + return caml_call2(Stdlib_Seq[27], _M_, _L_); + } + function MakeSeeded(H){ + function key_index(h, key){ + var _K_ = h[2].length - 1 - 1 | 0; + return caml_call2(H[2], h[3], key) & _K_; + } + function add(h, key, data){ + var + i = key_index(h, key), + bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + caml_check_bound(h[2], i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _J_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _J_ ? resize(key_index, h) : _J_; + } + function remove(h, key){ + var + i = key_index(h, key), + c = caml_check_bound(h[2], i)[1 + i], + prec$0 = 0, + prec = c; + for(;;){ + if(! prec) return 0; + var k = prec[1], next = prec[3]; + if(caml_call2(H[1], k, key)){ + h[1] = h[1] - 1 | 0; + return prec$0 + ? (prec$0[3] = next, 0) + : (caml_check_bound(h[2], i)[1 + i] = next, 0); + } + var prec$0 = prec, prec = next; + } + } + function find(h, key){ + var + _I_ = key_index(h, key), + match = caml_check_bound(h[2], _I_)[1 + _I_]; + if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(caml_call2(H[1], key, k1)) return d1; + if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(caml_call2(H[1], key, k2)) return d2; + if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(caml_call2(H[1], key, k3)) return d3; + var param = next3; + for(;;){ + if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k = param[1], data = param[2], next = param[3]; + if(caml_call2(H[1], key, k)) return data; + var param = next; + } + } + function find_opt(h, key){ + var + _H_ = key_index(h, key), + match = caml_check_bound(h[2], _H_)[1 + _H_]; + if(! match) return 0; + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(caml_call2(H[1], key, k1)) return [0, d1]; + if(! next1) return 0; + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(caml_call2(H[1], key, k2)) return [0, d2]; + if(! next2) return 0; + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(caml_call2(H[1], key, k3)) return [0, d3]; + var param = next3; + for(;;){ + if(! param) return 0; + var k = param[1], data = param[2], next = param[3]; + if(caml_call2(H[1], key, k)) return [0, data]; + var param = next; + } + } + function find_all(h, key){ + function find_in_bucket(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var k = param$0[1], d = param$0[2], next = param$0[3]; + if(caml_call2(H[1], k, key)) return [0, d, find_in_bucket(next)]; + var param$0 = next; + } + } + var _G_ = key_index(h, key); + return find_in_bucket(caml_check_bound(h[2], _G_)[1 + _G_]); + } + function replace(h, key, data){ + var + i = key_index(h, key), + l = caml_check_bound(h[2], i)[1 + i], + slot = l; + for(;;){ + if(slot){ + var k = slot[1], next = slot[3]; + if(! caml_call2(H[1], k, key)){var slot = next; continue;} + slot[1] = key; + slot[2] = data; + var _D_ = 0; + } + else + var _D_ = 1; + if(_D_){ + caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; + h[1] = h[1] + 1 | 0; + var _E_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_E_) return resize(key_index, h); + var _F_ = _E_; + } + else + var _F_ = _D_; + return _F_; + } + } + function mem(h, key){ + var + _C_ = key_index(h, key), + param = caml_check_bound(h[2], _C_)[1 + _C_]; + for(;;){ + if(! param) return 0; + var k = param[1], next = param[3], _B_ = caml_call2(H[1], k, key); + if(_B_) return _B_; + var param = next; + } + } + function add_seq(tbl, i){ + function _A_(param){ + var v = param[2], k = param[1]; + return add(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _A_, i); + } + function replace_seq(tbl, i){ + function _z_(param){ + var v = param[2], k = param[1]; + return replace(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _z_, i); + } + function of_seq(i){ + var tbl = create(0, 16); + replace_seq(tbl, i); + return tbl; + } + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]; + } + function Make(H){ + var equal = H[1]; + function hash(seed, x){return caml_call1(H[2], x);} + var + include = MakeSeeded([0, equal, hash]), + clear = include[2], + reset = include[3], + copy = include[4], + add = include[5], + remove = include[6], + find = include[7], + find_opt = include[8], + find_all = include[9], + replace = include[10], + mem = include[11], + iter = include[12], + filter_map_inplace = include[13], + fold = include[14], + length = include[15], + stats = include[16], + to_seq = include[17], + to_seq_keys = include[18], + to_seq_values = include[19], + add_seq = include[20], + replace_seq = include[21], + _y_ = include[1]; + function create(sz){return caml_call2(_y_, _d_, sz);} + function of_seq(i){ + var tbl = create(16); + caml_call2(replace_seq, tbl, i); + return tbl; + } + return [0, + create, + clear, + reset, + copy, + add, + remove, + find, + find_opt, + find_all, + replace, + mem, + iter, + filter_map_inplace, + fold, + length, + stats, + to_seq, + to_seq_keys, + to_seq_values, + add_seq, + replace_seq, + of_seq]; + } + function hash(x){return caml_hash(10, 100, 0, x);} + function hash_param(n1, n2, x){return caml_hash(n1, n2, 0, x);} + function seeded_hash(seed, x){return caml_hash(10, 100, seed, x);} + function key_index(h, key){ + return 4 <= h.length - 1 + ? caml_hash(10, 100, h[3], key) & (h[2].length - 1 - 1 | 0) + : caml_call1(Stdlib[1], cst_Hashtbl_unsupported_hash_t); + } + function add(h, key, data){ + var + i = key_index(h, key), + bucket = [0, key, data, caml_check_bound(h[2], i)[1 + i]]; + caml_check_bound(h[2], i)[1 + i] = bucket; + h[1] = h[1] + 1 | 0; + var _x_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _x_ ? resize(key_index, h) : _x_; + } + function remove(h, key){ + var + i = key_index(h, key), + c = caml_check_bound(h[2], i)[1 + i], + prec$0 = 0, + prec = c; + for(;;){ + if(! prec) return 0; + var k = prec[1], next = prec[3]; + if(0 === caml_compare(k, key)){ + h[1] = h[1] - 1 | 0; + return prec$0 + ? (prec$0[3] = next, 0) + : (caml_check_bound(h[2], i)[1 + i] = next, 0); + } + var prec$0 = prec, prec = next; + } + } + function find(h, key){ + var _w_ = key_index(h, key), match = caml_check_bound(h[2], _w_)[1 + _w_]; + if(! match) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(0 === caml_compare(key, k1)) return d1; + if(! next1) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(0 === caml_compare(key, k2)) return d2; + if(! next2) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(0 === caml_compare(key, k3)) return d3; + var param = next3; + for(;;){ + if(! param) throw caml_maybe_attach_backtrace(Stdlib[8], 1); + var k = param[1], data = param[2], next = param[3]; + if(0 === caml_compare(key, k)) return data; + var param = next; + } + } + function find_opt(h, key){ + var _v_ = key_index(h, key), match = caml_check_bound(h[2], _v_)[1 + _v_]; + if(! match) return 0; + var k1 = match[1], d1 = match[2], next1 = match[3]; + if(0 === caml_compare(key, k1)) return [0, d1]; + if(! next1) return 0; + var k2 = next1[1], d2 = next1[2], next2 = next1[3]; + if(0 === caml_compare(key, k2)) return [0, d2]; + if(! next2) return 0; + var k3 = next2[1], d3 = next2[2], next3 = next2[3]; + if(0 === caml_compare(key, k3)) return [0, d3]; + var param = next3; + for(;;){ + if(! param) return 0; + var k = param[1], data = param[2], next = param[3]; + if(0 === caml_compare(key, k)) return [0, data]; + var param = next; + } + } + function find_all(h, key){ + function find_in_bucket(param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var k = param$0[1], data = param$0[2], next = param$0[3]; + if(0 === caml_compare(k, key)) return [0, data, find_in_bucket(next)]; + var param$0 = next; + } + } + var _u_ = key_index(h, key); + return find_in_bucket(caml_check_bound(h[2], _u_)[1 + _u_]); + } + function replace(h, key, data){ + var i = key_index(h, key), l = caml_check_bound(h[2], i)[1 + i], slot = l; + for(;;){ + if(slot){ + var k = slot[1], next = slot[3]; + if(0 !== caml_compare(k, key)){var slot = next; continue;} + slot[1] = key; + slot[2] = data; + var _r_ = 0; + } + else + var _r_ = 1; + if(_r_){ + caml_check_bound(h[2], i)[1 + i] = [0, key, data, l]; h[1] = h[1] + 1 | 0; - var _ny_=h[2].length - 1 << 1 < h[1]?1:0; - return _ny_?resize$0(key_index,h):_ny_} - function remove(h,key) - {var i=key_index(h,key),c$0=caml_check_bound(h[2],i)[1 + i],prec=0,c=c$0; - for(;;) - {if(! c)return 0; - var k=c[1],next=c[3]; - if(0 === caml_compare(k,key)) - {h[1] = h[1] - 1 | 0; - return prec - ?(prec[3] = next,0) - :(caml_check_bound(h[2],i)[1 + i] = next,0)} - var prec=c,c=next}} - function find$1(h,key) - {var _nx_=key_index(h,key),match=caml_check_bound(h[2],_nx_)[1 + _nx_]; - if(! match)throw Not_found; - var k1=match[1],d1=match[2],next1=match[3]; - if(0 === caml_compare(key,k1))return d1; - if(! next1)throw Not_found; - var k2=next1[1],d2=next1[2],next2=next1[3]; - if(0 === caml_compare(key,k2))return d2; - if(! next2)throw Not_found; - var k3=next2[1],d3=next2[2],next3=next2[3]; - if(0 === caml_compare(key,k3))return d3; - var param=next3; - for(;;) - {if(! param)throw Not_found; - var k=param[1],data=param[2],next=param[3]; - if(0 === caml_compare(key,k))return data; - var param=next}} - function find_opt$1(h,key) - {var _nw_=key_index(h,key),match=caml_check_bound(h[2],_nw_)[1 + _nw_]; - if(! match)return 0; - var k1=match[1],d1=match[2],next1=match[3]; - if(0 === caml_compare(key,k1))return [0,d1]; - if(! next1)return 0; - var k2=next1[1],d2=next1[2],next2=next1[3]; - if(0 === caml_compare(key,k2))return [0,d2]; - if(! next2)return 0; - var k3=next2[1],d3=next2[2],next3=next2[3]; - if(0 === caml_compare(key,k3))return [0,d3]; - var param=next3; - for(;;) - {if(! param)return 0; - var k=param[1],data=param[2],next=param[3]; - if(0 === caml_compare(key,k))return [0,data]; - var param=next}} - function find_all$0(h,key) - {function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var k=param$0[1],data=param$0[2],next=param$0[3]; - if(0 === caml_compare(k,key))return [0,data,find_in_bucket(next)]; - var param$0=next}} - var _nv_=key_index(h,key); - return find_in_bucket(caml_check_bound(h[2],_nv_)[1 + _nv_])} - function replace(h,key,data) - {var - i=key_index(h,key), - param$0=caml_check_bound(h[2],i)[1 + i], - param=param$0; - for(;;) - {if(param) - {var k=param[1],next=param[3]; - if(0 !== caml_compare(k,key)){var param=next;continue} - param[1] = key; - param[2] = data; - var _ns_=0} - else - var _ns_=1; - if(_ns_) - {caml_check_bound(h[2],i)[1 + i] = [0,key,data,param$0]; - h[1] = h[1] + 1 | 0; - var _nt_=h[2].length - 1 << 1 < h[1]?1:0; - if(_nt_)return resize$0(key_index,h); - var _nu_=_nt_} - else - var _nu_=_ns_; - return _nu_}} - function mem$2(h,key) - {var - _nr_=key_index(h,key), - param$0=caml_check_bound(h[2],_nr_)[1 + _nr_], - param=param$0; - for(;;) - {if(! param)return 0; - var k=param[1],next=param[3],_nq_=0 === caml_compare(k,key)?1:0; - if(_nq_)return _nq_; - var param=next}} - function add_seq$2(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add$0(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq$7(i){var tbl=create$3(0,16);replace_seq(tbl,i);return tbl} - function rebuild(opt,h) - {if(opt)var sth=opt[1],random=sth;else var random=randomized[1]; - var s=power_2_above(16,h[2].length - 1); - if(random) - var - _nj_=caml_obj_tag(prng), - _nk_=250 === _nj_?prng[1]:246 === _nj_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_nk_); - else - var seed=4 <= h.length - 1?h[3]:0; - var - _nl_=4 <= h.length - 1?h[4]:s, - h$0=[0,h[1],caml_make_vect(s,0),seed,_nl_], - _nm_=h$0[2], - _nn_=h[2], - _no_=0; - insert_all_buckets - (function(_np_){return key_index(h$0,_np_)},_no_,_nn_,_nm_); - return h$0} + var _s_ = h[2].length - 1 << 1 < h[1] ? 1 : 0; + if(_s_) return resize(key_index, h); + var _t_ = _s_; + } + else + var _t_ = _r_; + return _t_; + } + } + function mem(h, key){ + var _q_ = key_index(h, key), param = caml_check_bound(h[2], _q_)[1 + _q_]; + for(;;){ + if(! param) return 0; + var + k = param[1], + next = param[3], + _p_ = 0 === caml_compare(k, key) ? 1 : 0; + if(_p_) return _p_; + var param = next; + } + } + function add_seq(tbl, i){ + function _o_(param){ + var v = param[2], k = param[1]; + return add(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _o_, i); + } + function replace_seq(tbl, i){ + function _n_(param){ + var v = param[2], k = param[1]; + return replace(tbl, k, v); + } + return caml_call2(Stdlib_Seq[4], _n_, i); + } + function of_seq(i){ + var tbl = create(0, 16); + replace_seq(tbl, i); + return tbl; + } + function rebuild(opt, h){ + if(opt) var sth = opt[1], random = sth; else var random = randomized[1]; + var s = power_2_above(16, h[2].length - 1); + if(random) + var + _g_ = caml_obj_tag(prng), + _h_ = + 250 === _g_ + ? prng[1] + : 246 === _g_ ? caml_call1(CamlinternalLazy[2], prng) : prng, + seed = caml_call1(Stdlib_Random[15][4], _h_); + else + var seed = 4 <= h.length - 1 ? h[3] : 0; var - Stdlib_Hashtbl= + _i_ = 4 <= h.length - 1 ? h[4] : s, + h$0 = [0, h[1], caml_make_vect(s, 0), seed, _i_], + _j_ = h$0[2], + _k_ = h[2], + _l_ = 0; + insert_all_buckets + (function(_m_){return key_index(h$0, _m_);}, _l_, _k_, _j_); + return h$0; + } + var + Stdlib_Hashtbl = [0, - create$3, - clear$2, - reset$0, - copy$6, - add$0, - find$1, - find_opt$1, - find_all$0, - mem$2, + create, + clear, + reset, + copy, + add, + find, + find_opt, + find_all, + mem, remove, replace, - iter$10, + iter, filter_map_inplace, - fold$4, - length$5, + fold, + length, randomize, is_randomized, rebuild, stats, - to_seq$9, + to_seq, to_seq_keys, to_seq_values, - add_seq$2, + add_seq, replace_seq, - of_seq$7, - Make$0, + of_seq, + Make, MakeSeeded, - hash$1, + hash, seeded_hash, hash_param, caml_hash]; - caml_register_global(816,Stdlib_Hashtbl,"Stdlib__Hashtbl"); - function weak_create(l) - {var _nh_=0 <= l?1:0,_ni_=_nh_?l <= _o_[15]?1:0:_nh_; - if(1 - _ni_)invalid_arg(cst_Weak_create); - return runtime.caml_weak_create(l)} - function length$6(x){return x.length - 1 - 2 | 0} - function raise_if_invalid_offset$0(e,o,msg) - {var _ne_=0 <= o?1:0,_nf_=_ne_?o < length$6(e)?1:0:_ne_,_ng_=1 - _nf_; - return _ng_?invalid_arg(msg):_ng_} - function set$1(e,o,x) - {raise_if_invalid_offset$0(e,o,cst_Weak_set); - if(! x)return caml_ephe_unset_key(e,o); - var x$0=x[1]; - return caml_ephe_set_key(e,o,x$0)} - function get$2(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_get); - return caml_ephe_get_key(e,o)} - function get_copy(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_get_copy); - return caml_ephe_get_key_copy(e,o)} - function check$0(e,o) - {raise_if_invalid_offset$0(e,o,cst_Weak_check); - return caml_ephe_check_key(e,o)} - function blit$4(e1,o1,e2,o2,l) - {if - (0 - <= - l - && - 0 - <= - o1 - && - (length$6(e1) - l | 0) - >= - o1 - && - 0 - <= - o2 - && - (length$6(e2) - l | 0) - >= - o2) - {var _nc_=0 !== l?1:0,_nd_=_nc_?caml_ephe_blit_key(e1,o1,e2,o2,l):_nc_; - return _nd_} - return invalid_arg(cst_Weak_blit)} - function fill$2(ar,ofs,len,x) - {if(0 <= ofs && 0 <= len && (length$6(ar) - len | 0) >= ofs) - {var _na_=(ofs + len | 0) - 1 | 0; - if(_na_ >= ofs) - {var i=ofs; - for(;;) - {set$1(ar,i,x); - var _nb_=i + 1 | 0; - if(_na_ !== i){var i=_nb_;continue} - break}} - return 0} - throw [0,Invalid_argument,cst_Weak_fill]} - function Make$1(H) - {var emptybucket=weak_create(0); - function get_index(t,h){return caml_mod(h & 2147483647,t[1].length - 1)} - var limit=7; - function create(sz) - {var - sz$0=7 <= sz?sz:7, - sz$1=max_array_length < sz$0?max_array_length:sz$0; - return [0, - caml_make_vect(sz$1,emptybucket), - caml_make_vect(sz$1,[0]), - limit, - 0, - 0]} - function clear(t) - {var _m__=t[1].length - 1 - 1 | 0,_m9_=0; - if(_m__ >= 0) - {var i=_m9_; - for(;;) - {caml_check_bound(t[1],i)[1 + i] = emptybucket; - caml_check_bound(t[2],i)[1 + i] = [0]; - var _m$_=i + 1 | 0; - if(_m__ !== i){var i=_m$_;continue} - break}} - t[3] = limit; - t[4] = 0; - return 0} - function fold(f,t,init) - {var _m8_=t[1],i=0; - return fold_right$2 - (function(b,accu$1) - {var i$0=i,accu=accu$1; - for(;;) - {if(length$6(b) <= i$0)return accu; - var match=get$2(b,i$0); - if(match) - {var - v=match[1], - accu$0=caml_call2(f,v,accu), - i$1=i$0 + 1 | 0, - i$0=i$1, - accu=accu$0; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2}}, - _m8_, - init)} - function iter(f,t) - {var _m7_=t[1],i=0; - return iter$5 - (function(b) - {var i$0=i; - for(;;) - {if(length$6(b) <= i$0)return 0; - var match=get$2(b,i$0); - if(match) - {var v=match[1]; - caml_call1(f,v); - var i$1=i$0 + 1 | 0,i$0=i$1; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2}}, - _m7_)} - function count_bucket(i,b,accu) - {var i$0=i,accu$0=accu; - for(;;) - {if(length$6(b) <= i$0)return accu$0; - var - _m6_=check$0(b,i$0)?1:0, - accu$1=accu$0 + _m6_ | 0, - i$1=i$0 + 1 | 0, - i$0=i$1, - accu$0=accu$1}} - function count(t) - {var _m1_=0,_m2_=t[1],_m3_=0; - return fold_right$2 - (function(_m4_,_m5_){return count_bucket(_m3_,_m4_,_m5_)}, - _m2_, - _m1_)} - function add_aux(t,setter,d,h,index) - {var - bucket$0=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket$0), - i$3=0; - for(;;) - {if(sz > i$3) - {if(check$0(bucket$0,i$3)){var i$5=i$3 + 1 | 0,i$3=i$5;continue} - caml_call3(setter,bucket$0,i$3,d); - caml_check_bound(hashes,i$3)[1 + i$3] = h; - return 0} - var - newsz= - min$1(((3 * sz | 0) / 2 | 0) + 3 | 0,max_array_length - 2 | 0); - if(newsz <= sz)failwith(cst_Weak_Make_hash_bucket_cann); - var - newbucket$0=weak_create(newsz), - newhashes=caml_make_vect(newsz,0); - blit$4(bucket$0,0,newbucket$0,0,sz); - blit$1(hashes,0,newhashes,0,sz); - caml_call3(setter,newbucket$0,sz,d); - caml_check_bound(newhashes,sz)[1 + sz] = h; - caml_check_bound(t[1],index)[1 + index] = newbucket$0; - caml_check_bound(t[2],index)[1 + index] = newhashes; - var _mX_=sz <= t[3]?1:0,_mY_=_mX_?t[3] < newsz?1:0:_mX_; - if(_mY_) - {t[4] = t[4] + 1 | 0; - var i$4=0; - for(;;) - {var - _mN_=t[5], - bucket=caml_check_bound(t[1],_mN_)[1 + _mN_], - _mO_=t[5], - hbucket=caml_check_bound(t[2],_mO_)[1 + _mO_], - n=length$6(bucket), - prev_len=(((n - 3 | 0) * 2 | 0) + 2 | 0) / 3 | 0, - live=count_bucket(0,bucket,0); - if(live <= prev_len) - {var j$2=length$6(bucket) - 1 | 0,i$0=0,j=j$2; - for(;;) - {if(prev_len <= j) - {if(check$0(bucket,i$0)) - {var i$1=i$0 + 1 | 0,i$0=i$1;continue} - if(check$0(bucket,j)) - {blit$4(bucket,j,bucket,i$0,1); - var _mP_=caml_check_bound(hbucket,j)[1 + j]; - caml_check_bound(hbucket,i$0)[1 + i$0] = _mP_; - var j$0=j - 1 | 0,i$2=i$0 + 1 | 0,i$0=i$2,j=j$0; - continue} - var j$1=j - 1 | 0,j=j$1; - continue} - if(0 === prev_len) - {var _mQ_=t[5]; - caml_check_bound(t[1],_mQ_)[1 + _mQ_] = emptybucket; - var _mR_=t[5]; - caml_check_bound(t[2],_mR_)[1 + _mR_] = [0]} - else - {var newbucket=weak_create(prev_len); - blit$4(bucket,0,newbucket,0,prev_len); - var _mU_=t[5]; - caml_check_bound(t[1],_mU_)[1 + _mU_] = newbucket; - var _mV_=sub$1(hbucket,0,prev_len),_mW_=t[5]; - caml_check_bound(t[2],_mW_)[1 + _mW_] = _mV_} - var _mS_=t[3] < n?1:0,_mT_=_mS_?prev_len <= t[3]?1:0:_mS_; - if(_mT_)t[4] = t[4] - 1 | 0; - break}} - t[5] = caml_mod(t[5] + 1 | 0,t[1].length - 1); - var _m0_=i$4 + 1 | 0; - if(2 !== i$4){var i$4=_m0_;continue} - break}} - var _mZ_=((t[1].length - 1) / 2 | 0) < t[4]?1:0; - if(! _mZ_)return _mZ_; - var - n$0=t[1].length - 1, - newlen=min$1(((3 * n$0 | 0) / 2 | 0) + 3 | 0,max_array_length); - if(n$0 < newlen) - {var newt=create(newlen),_mM_=t[1],i=0; - iteri$3 - (function(j,ob) - {var i$0=i; - for(;;) - {if(length$6(ob) <= i$0)return 0; - var match=check$0(ob,i$0); - if(match) - {var - oh=caml_check_bound(t[2],j)[1 + j], - setter$0= - function(i) - {function setter(nb,ni,param){return blit$4(ob,i,nb,ni,1)} - return setter}, - setter=setter$0(i$0), - h=caml_check_bound(oh,i$0)[1 + i$0]; - add_aux(newt,setter,0,h,get_index(newt,h)); - var i$1=i$0 + 1 | 0,i$0=i$1; - continue} - var i$2=i$0 + 1 | 0,i$0=i$2}}, - _mM_); - t[1] = newt[1]; - t[2] = newt[2]; - t[3] = newt[3]; - t[4] = newt[4]; - t[5] = caml_mod(t[5],newt[1].length - 1); - return 0} - t[3] = max_int; - t[4] = 0; - return 0}} - function add(t,d) - {var h=caml_call1(H[2],d); - return add_aux(t,set$1,[0,d],h,get_index(t,h))} - function find_or(t,d,ifnotfound) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return caml_call2(ifnotfound,h,index); - if(h !== caml_check_bound(hashes,i)[1 + i]) - {var i$2=i + 1 | 0,i=i$2;continue} - var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var match$0=get$2(bucket,i); - if(match$0){var v$0=match$0[1];return v$0} - var i$0=i + 1 | 0,i=i$0; - continue}} - var i$1=i + 1 | 0,i=i$1}} - function merge(t,d) - {return find_or - (t, - d, - function(h,index){add_aux(t,set$1,[0,d],h,index);return d})} - function find(t,d) - {return find_or(t,d,function(h,index){throw Not_found})} - function find_opt(t,d) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return 0; - if(h !== caml_check_bound(hashes,i)[1 + i]) - {var i$2=i + 1 | 0,i=i$2;continue} - var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var v$0=get$2(bucket,i); - if(v$0)return v$0; - var i$0=i + 1 | 0,i=i$0; - continue}} - var i$1=i + 1 | 0,i=i$1}} - function find_shadow(t,d,iffound,ifnotfound) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0; - for(;;) - {if(sz <= i)return ifnotfound; - if(h !== caml_check_bound(hashes,i)[1 + i]) - {var i$1=i + 1 | 0,i=i$1;continue} - var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d))return caml_call2(iffound,bucket,i)} - var i$0=i + 1 | 0,i=i$0}} - function remove(t,d) - {var _mL_=0; - return find_shadow(t,d,function(w,i){return set$1(w,i,0)},_mL_)} - function mem(t,d) - {var _mK_=0;return find_shadow(t,d,function(w,i){return 1},_mK_)} - function find_all(t,d) - {var - h=caml_call1(H[2],d), - index=get_index(t,h), - bucket=caml_check_bound(t[1],index)[1 + index], - hashes=caml_check_bound(t[2],index)[1 + index], - sz=length$6(bucket), - i=0, - accu=0; - for(;;) - {if(sz <= i)return accu; - if(h !== caml_check_bound(hashes,i)[1 + i]) - {var i$3=i + 1 | 0,i=i$3;continue} - var match=get_copy(bucket,i); - if(match) - {var v=match[1]; - if(caml_call2(H[1],v,d)) - {var match$0=get$2(bucket,i); - if(match$0) - {var - v$0=match$0[1], - accu$0=[0,v$0,accu], - i$0=i + 1 | 0, - i=i$0, - accu=accu$0; - continue} - var i$1=i + 1 | 0,i=i$1; - continue}} - var i$2=i + 1 | 0,i=i$2}} - function stats(t) - {var len=t[1].length - 1,lens=map$7(length$6,t[1]); - sort(caml_int_compare,lens); - var - _mC_=0, - totlen= - fold_left$3(function(_mJ_,_mI_){return _mJ_ + _mI_ | 0},_mC_,lens), - _mD_=len - 1 | 0, - _mF_=len / 2 | 0, - _mE_=caml_check_bound(lens,_mD_)[1 + _mD_], - _mG_=caml_check_bound(lens,_mF_)[1 + _mF_], - _mH_=caml_check_bound(lens,0)[1]; - return [0,len,count(t),totlen,_mH_,_mG_,_mE_]} - return [0, - create, - clear, - merge, - add, - remove, - find, - find_opt, - find_all, - mem, - iter, - fold, - count, - stats]} + runtime.caml_register_global(15, Stdlib_Hashtbl, "Stdlib__Hashtbl"); + return; + } + (globalThis)); + +//# 19123 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$17 = "", + cst$18 = ">", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst$15 = cst$17, + cst$16 = cst$17, + cst$14 = ".", + cst$11 = cst$18, + cst$12 = "<\/", + cst$13 = cst$17, + cst$8 = cst$18, + cst$9 = "<", + cst$10 = cst$17, + cst$7 = "\n", + cst$3 = cst$17, + cst$4 = cst$17, + cst$5 = cst$17, + cst$6 = cst$17, + cst = cst$17, + cst$0 = cst$17, + cst$1 = cst$17, + cst$2 = cst$17, + Stdlib_Queue = global_data.Stdlib__Queue, + CamlinternalFormat = global_data.CamlinternalFormat, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Stack = global_data.Stdlib__Stack, + Stdlib_Int = global_data.Stdlib__Int, + Stdlib_Bytes = global_data.Stdlib__Bytes, + _f_ = [3, 0, 3], + cst_Format_pp_set_geometry = "Format.pp_set_geometry: ", + _e_ = [1, "max_indent < 2"], + _c_ = [1, "margin <= max_indent"], + _d_ = [0, 0], + _b_ = [0, cst$17], + _a_ = [0, cst$17, 0, cst$17], + cst_Stdlib_Format_String_tag = "Stdlib.Format.String_tag"; + function id(x){return x;} + var + String_tag = + [248, cst_Stdlib_Format_String_tag, runtime.caml_fresh_oo_id(0)], + zero = 0, + unknown = -1; + function pp_enqueue(state, token){ + state[13] = state[13] + token[3] | 0; + return caml_call2(Stdlib_Queue[3], token, state[28]); + } + var pp_infinity = 1000000010; + function pp_output_string(state, s){ + return caml_call3(state[17], s, 0, caml_ml_string_length(s)); + } + function pp_output_newline(state){return caml_call1(state[19], 0);} + function format_pp_text(state, size, text){ + state[9] = state[9] - size | 0; + pp_output_string(state, text); + state[11] = 0; + return 0; + } + function format_string(state, s){ + var _bX_ = runtime.caml_string_notequal(s, cst$17); + return _bX_ ? format_pp_text(state, caml_ml_string_length(s), s) : _bX_; + } + function break_new_line(state, param, width){ + var after = param[3], offset = param[2], before = param[1]; + format_string(state, before); + pp_output_newline(state); + state[11] = 1; var - Stdlib_Weak= - [0, - weak_create, - length$6, - set$1, - get$2, - get_copy, - check$0, - fill$2, - blit$4, - Make$1]; - caml_register_global(817,Stdlib_Weak,"Stdlib__Weak"); - function id$0(x){return x} - var - String_tag=[248,cst_Stdlib_Format_String_tag,caml_fresh_oo_id(0)], - size=0, - unknown=-1; - function pp_enqueue(state,token) - {state[13] = state[13] + token[3] | 0;return add(token,state[28])} - var pp_infinity=1000000010; - function pp_output_string(state,s) - {return caml_call3(state[17],s,0,caml_ml_string_length(s))} - function pp_output_newline(state){return caml_call1(state[19],0)} - function format_pp_text(state,size,text) - {state[9] = state[9] - size | 0; - pp_output_string(state,text); - state[11] = 0; - return 0} - function format_string(state,s) - {var _mB_=caml_string_notequal(s,cst$67); - return _mB_?format_pp_text(state,caml_ml_string_length(s),s):_mB_} - function break_new_line(state,param,width) - {var after=param[3],offset=param[2],before=param[1]; - format_string(state,before); - pp_output_newline(state); - state[11] = 1; - var - indent=(state[6] - width | 0) + offset | 0, - real_indent=min$1(state[8],indent); - state[10] = real_indent; - state[9] = state[6] - state[10] | 0; - caml_call1(state[21],state[10]); - return format_string(state,after)} - function break_line(state,width){return break_new_line(state,_cj_,width)} - function break_same_line(state,param) - {var after=param[3],width=param[2],before=param[1]; - format_string(state,before); - state[9] = state[9] - width | 0; - caml_call1(state[20],width); - return format_string(state,after)} - function format_pp_token(state,size$0,param) - {if(typeof param === "number") - switch(param) - {case 0: - var match$3=top_opt(state[3]); - if(! match$3)return 0; - var - match$4=match$3[1], - tabs=match$4[1], - add_tab= - function(n,ls) - {if(! ls)return [0,n,0]; - var l=ls[2],x=ls[1]; - return caml_lessthan(n,x)?[0,n,ls]:[0,x,add_tab(n,l)]}; - tabs[1] = add_tab(state[6] - state[9] | 0,tabs[1]); - return 0; - case 1:pop_opt(state[2]);return 0; - case 2:pop_opt(state[3]);return 0; - case 3: - var match$5=top_opt(state[2]); - if(! match$5)return pp_output_newline(state); - var match$6=match$5[1],width$0=match$6[2]; - return break_line(state,width$0); - case 4: - var _my_=state[10] !== (state[6] - state[9] | 0)?1:0; - if(! _my_)return _my_; - var match$1=take_opt(state[28]); - if(! match$1)return 0; - var match$2=match$1[1],size=match$2[1],length=match$2[3]; - state[12] = state[12] - length | 0; - state[9] = state[9] + size | 0; - return 0; - default: - var match$7=pop_opt(state[5]); - if(! match$7)return 0; - var tag_name=match$7[1],marker=caml_call1(state[25],tag_name); - return pp_output_string(state,marker)} - switch(param[0]) - {case 0:var s=param[1];return format_pp_text(state,size$0,s); - case 1: - var - breaks=param[2], - fits=param[1], - off=breaks[2], - before=breaks[1], - match$8=top_opt(state[2]); - if(! match$8)return 0; - var match$9=match$8[1],width$1=match$9[2],box_type$0=match$9[1]; - switch(box_type$0) - {case 0:return break_same_line(state,fits); - case 1:return break_new_line(state,breaks,width$1); - case 2:return break_new_line(state,breaks,width$1); - case 3: - return state[9] < (size$0 + caml_ml_string_length(before) | 0) - ?break_new_line(state,breaks,width$1) - :break_same_line(state,fits); - case 4: - return state[11] - ?break_same_line(state,fits) - :state[9] < (size$0 + caml_ml_string_length(before) | 0) - ?break_new_line(state,breaks,width$1) - :((state[6] - width$1 | 0) + off | 0) < state[10] - ?break_new_line(state,breaks,width$1) - :break_same_line(state,fits); - default:return break_same_line(state,fits)} - case 2: - var - off$0=param[2], - n=param[1], - insertion_point=state[6] - state[9] | 0, - match$10=top_opt(state[3]); - if(! match$10)return 0; - var match$11=match$10[1],tabs$0=match$11[1],_mz_=tabs$0[1]; - if(_mz_) - {var first=_mz_[1],param$0=tabs$0[1]; - for(;;) - {if(param$0) - {var tail=param$0[2],head=param$0[1]; - if(insertion_point > head){var param$0=tail;continue} - var _mA_=head} - else - var _mA_=first; - var tab=_mA_; - break}} - else - var tab=insertion_point; - var offset=tab - insertion_point | 0; - return 0 <= offset - ?break_same_line(state,[0,cst$69,offset + n | 0,cst$68]) - :break_new_line - (state,[0,cst$71,tab + off$0 | 0,cst$70],state[6]); - case 3: - var - ty=param[2], - off$1=param[1], - insertion_point$0=state[6] - state[9] | 0; - if(state[8] < insertion_point$0) - {var match=top_opt(state[2]); - if(match) - {var match$0=match[1],width=match$0[2],box_type=match$0[1]; - if(state[9] < width && 3 >= box_type - 1 >>> 0) - break_line(state,width)} - else - pp_output_newline(state)} - var - width$2=state[9] - off$1 | 0, - box_type$1=1 === ty?1:state[9] < size$0?ty:5; - return push([0,box_type$1,width$2],state[2]); - case 4:var tbox=param[1];return push(tbox,state[3]); - default: - var tag_name$0=param[1],marker$0=caml_call1(state[24],tag_name$0); - pp_output_string(state,marker$0); - return push(tag_name$0,state[5])}} - function advance_left(state) - {for(;;) - {var match=peek_opt(state[28]); - if(! match)return 0; + indent = (state[6] - width | 0) + offset | 0, + real_indent = caml_call2(Stdlib_Int[10], state[8], indent); + state[10] = real_indent; + state[9] = state[6] - state[10] | 0; + var n = state[10]; + caml_call1(state[21], n); + return format_string(state, after); + } + function break_line(state, width){ + return break_new_line(state, _a_, width); + } + function break_same_line(state, param){ + var after = param[3], width = param[2], before = param[1]; + format_string(state, before); + state[9] = state[9] - width | 0; + caml_call1(state[20], width); + return format_string(state, after); + } + function format_pp_token(state, size$0, param){ + if(typeof param === "number") + switch(param){ + case 0: + var match$3 = caml_call1(Stdlib_Stack[7], state[3]); + if(! match$3) return 0; var - match$0=match[1], - size=match$0[1], - length=match$0[3], - token=match$0[2], - pending_count=state[13] - state[12] | 0, - _mw_=0 <= size?1:0, - _mx_=_mw_ || (state[9] <= pending_count?1:0); - if(! _mx_)return _mx_; - take$0(state[28]); - var size$0=0 <= size?size:pp_infinity; - format_pp_token(state,size$0,token); - state[12] = length + state[12] | 0}} - function enqueue_advance(state,tok) - {pp_enqueue(state,tok);return advance_left(state)} - function enqueue_string_as(state,size,s) - {return enqueue_advance(state,[0,size,[0,s],size])} - function initialize_scan_stack(stack) - {clear(stack); - var queue_elem=[0,unknown,_ck_,0]; - return push([0,-1,queue_elem],stack)} - function set_size(state,ty) - {var match=top_opt(state[1]); - if(! match)return 0; - var - match$0=match[1], - queue_elem=match$0[2], - left_total=match$0[1], - _mr_=queue_elem[1]; - if(left_total < state[12])return initialize_scan_stack(state[1]); - var _ms_=queue_elem[2]; - if(typeof _ms_ !== "number") - switch(_ms_[0]) - {case 3: - var - _mu_=1 - ty, - _mv_= - _mu_ - ?(queue_elem[1] = state[13] + _mr_ | 0,pop_opt(state[1]),0) - :_mu_; - return _mv_; + tabs = match$3[1][1], + add_tab = + function(n, ls){ + if(! ls) return [0, n, 0]; + var l = ls[2], x = ls[1]; + return runtime.caml_lessthan(n, x) + ? [0, n, ls] + : [0, x, add_tab(n, l)]; + }; + tabs[1] = add_tab(state[6] - state[9] | 0, tabs[1]); + return 0; + case 1: + caml_call1(Stdlib_Stack[5], state[2]); return 0; + case 2: + caml_call1(Stdlib_Stack[5], state[3]); return 0; + case 3: + var match$4 = caml_call1(Stdlib_Stack[7], state[2]); + if(! match$4) return pp_output_newline(state); + var width$0 = match$4[1][2]; + return break_line(state, width$0); + case 4: + var _bV_ = state[10] !== (state[6] - state[9] | 0) ? 1 : 0; + if(! _bV_) return _bV_; + var match$1 = caml_call1(Stdlib_Queue[6], state[28]); + if(! match$1) return 0; + var match$2 = match$1[1], size = match$2[1], length = match$2[3]; + state[12] = state[12] - length | 0; + state[9] = state[9] + size | 0; + return 0; + default: + var match$5 = caml_call1(Stdlib_Stack[5], state[5]); + if(! match$5) return 0; + var tag_name = match$5[1], marker = caml_call1(state[25], tag_name); + return pp_output_string(state, marker); + } + switch(param[0]){ + case 0: + var s = param[1]; return format_pp_text(state, size$0, s); + case 1: + var + breaks = param[2], + fits = param[1], + off = breaks[2], + before = breaks[1], + match$6 = caml_call1(Stdlib_Stack[7], state[2]); + if(! match$6) return 0; + var + match$7 = match$6[1], + width$1 = match$7[2], + box_type$0 = match$7[1]; + switch(box_type$0){ + case 0: + return break_same_line(state, fits); case 1: + return break_new_line(state, breaks, width$1); case 2: - var - _mt_= - ty?(queue_elem[1] = state[13] + _mr_ | 0,pop_opt(state[1]),0):ty; - return _mt_ + return break_new_line(state, breaks, width$1); + case 3: + return state[9] < (size$0 + caml_ml_string_length(before) | 0) + ? break_new_line(state, breaks, width$1) + : break_same_line(state, fits); + case 4: + return state[11] + ? break_same_line(state, fits) + : state + [9] + < (size$0 + caml_ml_string_length(before) | 0) + ? break_new_line(state, breaks, width$1) + : ((state + [6] + - width$1 + | 0) + + off + | 0) + < state[10] + ? break_new_line(state, breaks, width$1) + : break_same_line(state, fits); + default: return break_same_line(state, fits); + } + case 2: + var + off$0 = param[2], + n = param[1], + insertion_point = state[6] - state[9] | 0, + match$8 = caml_call1(Stdlib_Stack[7], state[3]); + if(! match$8) return 0; + var tabs$0 = match$8[1][1], match$9 = tabs$0[1]; + if(match$9){ + var first = match$9[1], param$0 = tabs$0[1]; + for(;;){ + if(param$0){ + var tail = param$0[2], head = param$0[1]; + if(insertion_point > head){var param$0 = tail; continue;} + var _bW_ = head; } - return 0} - function scan_push(state,b,token) - {pp_enqueue(state,token); - if(b)set_size(state,1); - var elem=[0,state[13],token]; - return push(elem,state[1])} - function pp_open_box_gen(state,indent,br_ty) - {state[14] = state[14] + 1 | 0; - if(state[14] < state[15]) - {var size=- state[13] | 0,elem=[0,size,[3,indent,br_ty],0]; - return scan_push(state,0,elem)} - var _mp_=state[14] === state[15]?1:0; - if(! _mp_)return _mp_; - var _mq_=state[16]; - return enqueue_string_as(state,caml_ml_string_length(_mq_),_mq_)} - function pp_close_box(state,param) - {var _mn_=1 < state[14]?1:0; - if(_mn_) - {if(state[14] < state[15]) - {pp_enqueue(state,[0,size,1,0]);set_size(state,1);set_size(state,0)} - state[14] = state[14] - 1 | 0; - var _mo_=0} - else - var _mo_=_mn_; - return _mo_} - function pp_open_stag(state,tag_name) - {if(state[22]){push(tag_name,state[4]);caml_call1(state[26],tag_name)} - var _mm_=state[23]; - if(! _mm_)return _mm_; - var token=[5,tag_name]; - return pp_enqueue(state,[0,size,token,0])} - function pp_close_stag(state,param) - {if(state[23])pp_enqueue(state,[0,size,5,0]); - var _mk_=state[22]; - if(_mk_) - {var match=pop_opt(state[4]); - if(match){var tag_name=match[1];return caml_call1(state[27],tag_name)} - var _ml_=0} - else - var _ml_=_mk_; - return _ml_} - function pp_open_tag(state,s){return pp_open_stag(state,[0,String_tag,s])} - function pp_close_tag(state,param){return pp_close_stag(state,0)} - function pp_set_print_tags(state,b){state[22] = b;return 0} - function pp_set_mark_tags(state,b){state[23] = b;return 0} - function pp_get_print_tags(state,param){return state[22]} - function pp_get_mark_tags(state,param){return state[23]} - function pp_set_tags(state,b) - {pp_set_print_tags(state,b);return pp_set_mark_tags(state,b)} - function pp_get_formatter_stag_function(state,param) - {return [0,state[24],state[25],state[26],state[27]]} - function pp_set_formatter_stag_function(state,param) - {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; - state[24] = mot; - state[25] = mct; - state[26] = pot; - state[27] = pct; - return 0} - function pp_rinit(state) - {state[12] = 1; - state[13] = 1; - clear$0(state[28]); - initialize_scan_stack(state[1]); - clear(state[2]); - clear(state[3]); - clear(state[4]); - clear(state[5]); - state[10] = 0; - state[14] = 0; - state[9] = state[6]; - return pp_open_box_gen(state,0,3)} - function pp_flush_queue(state,b) - {var _mj_=state[4]; - iter$7(function(param){return pp_close_tag(state,0)},_mj_); - for(;;) - {if(1 < state[14]){pp_close_box(state,0);continue} - state[13] = pp_infinity; - advance_left(state); - if(b)pp_output_newline(state); - return pp_rinit(state)}} - function pp_print_as_size(state,size,s) - {var _mi_=state[14] < state[15]?1:0; - return _mi_?enqueue_string_as(state,size,s):_mi_} - function pp_print_as(state,isize,s) - {return pp_print_as_size(state,isize,s)} - function pp_print_string(state,s) - {return pp_print_as(state,caml_ml_string_length(s),s)} - function pp_print_bytes(state,s) - {return pp_print_as(state,caml_ml_bytes_length(s),of_bytes(s))} - function pp_print_int(state,i) - {return pp_print_string(state,caml_string_of_jsbytes("" + i))} - function pp_print_float(state,f) - {return pp_print_string(state,to_string(f))} - function pp_print_bool(state,b) - {return pp_print_string(state,string_of_bool(b))} - function pp_print_char(state,c){return pp_print_as(state,1,make$1(1,c))} - function pp_open_hbox(state,param){return pp_open_box_gen(state,0,0)} - function pp_open_vbox(state,indent) - {return pp_open_box_gen(state,indent,1)} - function pp_open_hvbox(state,indent) - {return pp_open_box_gen(state,indent,2)} - function pp_open_hovbox(state,indent) - {return pp_open_box_gen(state,indent,3)} - function pp_open_box(state,indent){return pp_open_box_gen(state,indent,4)} - function pp_print_newline(state,param) - {pp_flush_queue(state,1);return caml_call1(state[18],0)} - function pp_print_flush(state,param) - {pp_flush_queue(state,0);return caml_call1(state[18],0)} - function pp_force_newline(state,param) - {var _mh_=state[14] < state[15]?1:0; - return _mh_?enqueue_advance(state,[0,size,3,0]):_mh_} - function pp_print_if_newline(state,param) - {var _mg_=state[14] < state[15]?1:0; - return _mg_?enqueue_advance(state,[0,size,4,0]):_mg_} - function pp_print_custom_break(state,fits,breaks) - {var - after=fits[3], - width=fits[2], - before=fits[1], - _mf_=state[14] < state[15]?1:0; - if(! _mf_)return _mf_; - var - size=- state[13] | 0, - token=[1,fits,breaks], - length= - (caml_ml_string_length(before) + width | 0) - + - caml_ml_string_length(after) - | - 0, - elem=[0,size,token,length]; - return scan_push(state,1,elem)} - function pp_print_break(state,width,offset) - {return pp_print_custom_break - (state,[0,cst$75,width,cst$74],[0,cst$73,offset,cst$72])} - function pp_print_space(state,param){return pp_print_break(state,1,0)} - function pp_print_cut(state,param){return pp_print_break(state,0,0)} - function pp_open_tbox(state,param) - {state[14] = state[14] + 1 | 0; - var _me_=state[14] < state[15]?1:0; - if(! _me_)return _me_; - var elem=[0,size,[4,[0,[0,0]]],0]; - return enqueue_advance(state,elem)} - function pp_close_tbox(state,param) - {var _mb_=1 < state[14]?1:0; - if(_mb_) - {var _mc_=state[14] < state[15]?1:0; - if(_mc_) - {var elem=[0,size,2,0]; - enqueue_advance(state,elem); - state[14] = state[14] - 1 | 0; - var _md_=0} - else - var _md_=_mc_} - else - var _md_=_mb_; - return _md_} - function pp_print_tbreak(state,width,offset) - {var _ma_=state[14] < state[15]?1:0; - if(! _ma_)return _ma_; - var size=- state[13] | 0,elem=[0,size,[2,width,offset],width]; - return scan_push(state,1,elem)} - function pp_print_tab(state,param){return pp_print_tbreak(state,0,0)} - function pp_set_tab(state,param) - {var _l$_=state[14] < state[15]?1:0; - if(! _l$_)return _l$_; - var elem=[0,size,0,0]; - return enqueue_advance(state,elem)} - function pp_set_max_boxes(state,n) - {var _l9_=1 < n?1:0,_l__=_l9_?(state[15] = n,0):_l9_;return _l__} - function pp_get_max_boxes(state,param){return state[15]} - function pp_over_max_boxes(state,param) - {return state[14] === state[15]?1:0} - function pp_set_ellipsis_text(state,s){state[16] = s;return 0} - function pp_get_ellipsis_text(state,param){return state[16]} - function pp_limit(n){return n < 1000000010?n:1000000009} - function pp_set_max_indent(state,n$0) - {var _l8_=1 < n$0?1:0; - if(! _l8_)return _l8_; - var n$1=state[6] - n$0 | 0,_l7_=1 <= n$1?1:0; - if(! _l7_)return _l7_; - var n=pp_limit(n$1); - state[7] = n; - state[8] = state[6] - state[7] | 0; - return pp_rinit(state)} - function pp_get_max_indent(state,param){return state[8]} - function pp_set_margin(state,n) - {var _l6_=1 <= n?1:0; - if(! _l6_)return _l6_; - var n$0=pp_limit(n); - state[6] = n$0; - var - new_max_indent= - state[8] <= state[6] - ?state[8] - :max$1(max$1(state[6] - state[7] | 0,state[6] / 2 | 0),1); - return pp_set_max_indent(state,new_max_indent)} - function validate_geometry(param) - {var margin=param[2],max_indent=param[1]; - return 2 <= max_indent?margin <= max_indent?_cl_:_cm_:_cn_} - function check_geometry(geometry) - {var match=validate_geometry(geometry);return 0 === match[0]?1:0} - function pp_get_margin(state,param){return state[6]} - function pp_set_full_geometry(state,param) - {var margin=param[2],max_indent=param[1]; - pp_set_margin(state,margin); - pp_set_max_indent(state,max_indent); - return 0} - function pp_set_geometry(state,max_indent,margin) - {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); - if(0 === match[0])return pp_set_full_geometry(state,geometry); - var msg=match[1]; - throw [0,Invalid_argument,cat(cst_Format_pp_set_geometry,msg)]} - function pp_safe_set_geometry(state,max_indent,margin) - {var geometry=[0,max_indent,margin],match=validate_geometry(geometry); - return 0 === match[0]?pp_set_full_geometry(state,geometry):0} - function pp_get_geometry(state,param){return [0,state[8],state[6]]} - function pp_update_geometry(state,update) - {var geometry=pp_get_geometry(state,0); - return pp_set_full_geometry(state,caml_call1(update,geometry))} - function pp_set_formatter_out_functions(state,param) - {var j=param[5],i=param[4],h=param[3],g=param[2],f=param[1]; - state[17] = f; - state[18] = g; - state[19] = h; - state[20] = i; - state[21] = j; - return 0} - function pp_get_formatter_out_functions(state,param) - {return [0,state[17],state[18],state[19],state[20],state[21]]} - function pp_set_formatter_output_functi(state,f,g) - {state[17] = f;state[18] = g;return 0} - function pp_get_formatter_output_functi(state,param) - {return [0,state[17],state[18]]} - function display_newline(state,param) - {return caml_call3(state[17],cst$76,0,1)} - var blank_line=make$1(80,32); - function display_indent(state,n) - {var n$0=n; - for(;;) - {var _l5_=0 < n$0?1:0; - if(! _l5_)return _l5_; - if(80 >= n$0)return caml_call3(state[17],blank_line,0,n$0); - caml_call3(state[17],blank_line,0,80); - var n$1=n$0 - 80 | 0,n$0=n$1}} - function pp_set_formatter_out_channel(state,oc) - {state[17] - = - function(_l2_,_l3_,_l4_){return output_substring(oc,_l2_,_l3_,_l4_)}; - state[18] = function(param){return caml_ml_flush(oc)}; - state[19] = function(_l1_){return display_newline(state,_l1_)}; - state[20] = function(_l0_){return display_indent(state,_l0_)}; - state[21] = function(_lZ_){return display_indent(state,_lZ_)}; - return 0} - function default_pp_mark_open_tag(param) - {if(param[1] !== String_tag)return cst$79; - var s=param[2]; - return cat(cst$78,cat(s,cst$77))} - function default_pp_mark_close_tag(param) - {if(param[1] !== String_tag)return cst$82; - var s=param[2]; - return cat(cst$81,cat(s,cst$80))} - function default_pp_print_open_tag(_lY_){return 0} - function default_pp_print_close_tag(_lX_){return 0} - function pp_make_formatter(f,g,h,i,j) - {var pp_queue=create$1(0),sys_tok=[0,unknown,_co_,0]; - add(sys_tok,pp_queue); - var scan_stack=create$0(0); - initialize_scan_stack(scan_stack); - push([0,1,sys_tok],scan_stack); - var _lU_=create$0(0),_lV_=create$0(0),_lW_=create$0(0); - return [0, - scan_stack, - create$0(0), - _lW_, - _lV_, - _lU_, - 78, - 10, - 68, - 78, - 0, - 1, - 1, - 1, - 1, - max_int, - cst$83, - f, - g, - h, - i, - j, - 0, - 0, - default_pp_mark_open_tag, - default_pp_mark_close_tag, - default_pp_print_open_tag, - default_pp_print_close_tag, - pp_queue]} - function formatter_of_out_functions(out_funs) - {return pp_make_formatter - (out_funs[1],out_funs[2],out_funs[3],out_funs[4],out_funs[5])} - function make_formatter(output,flush) - {function _lM_(_lT_){return 0} - function _lN_(_lS_){return 0} - var - ppf= - pp_make_formatter(output,flush,function(_lR_){return 0},_lN_,_lM_); - ppf[19] = function(_lQ_){return display_newline(ppf,_lQ_)}; - ppf[20] = function(_lP_){return display_indent(ppf,_lP_)}; - ppf[21] = function(_lO_){return display_indent(ppf,_lO_)}; - return ppf} - function formatter_of_out_channel(oc) - {function _lI_(param){return caml_ml_flush(oc)} - return make_formatter - (function(_lJ_,_lK_,_lL_) - {return output_substring(oc,_lJ_,_lK_,_lL_)}, - _lI_)} - function formatter_of_buffer(b) - {function _lD_(_lH_){return 0} - return make_formatter - (function(_lE_,_lF_,_lG_) - {return add_substring(b,_lE_,_lF_,_lG_)}, - _lD_)} - var pp_buffer_size=512; - function pp_make_buffer(param){return create$2(pp_buffer_size)} - var - stdbuf=pp_make_buffer(0), - std_formatter=formatter_of_out_channel(stdout), - err_formatter=formatter_of_out_channel(stderr), - str_formatter=formatter_of_buffer(stdbuf); - function flush_buffer_formatter(buf,ppf) - {pp_flush_queue(ppf,0);var s=contents(buf);reset(buf);return s} - function flush_str_formatter(param) - {return flush_buffer_formatter(stdbuf,str_formatter)} - function make_symbolic_output_buffer(param){return [0,0]} - function clear_symbolic_output_buffer(sob){sob[1] = 0;return 0} - function get_symbolic_output_buffer(sob){return rev(sob[1])} - function flush_symbolic_output_buffer(sob) - {var items=get_symbolic_output_buffer(sob); - clear_symbolic_output_buffer(sob); - return items} - function add_symbolic_output_item(sob,item) - {sob[1] = [0,item,sob[1]];return 0} - function formatter_of_symbolic_output_b(sob) - {function f(s,i,n){return add_symbolic_output_item(sob,[0,sub$0(s,i,n)])} - function g(_lC_){return add_symbolic_output_item(sob,0)} - function h(_lB_){return add_symbolic_output_item(sob,1)} - function i(n){return add_symbolic_output_item(sob,[1,n])} - function j(n){return add_symbolic_output_item(sob,[2,n])} - return pp_make_formatter(f,g,h,i,j)} - function open_hbox(_lA_){return pp_open_hbox(std_formatter,_lA_)} - function open_vbox(_lz_){return pp_open_vbox(std_formatter,_lz_)} - function open_hvbox(_ly_){return pp_open_hvbox(std_formatter,_ly_)} - function open_hovbox(_lx_){return pp_open_hovbox(std_formatter,_lx_)} - function open_box(_lw_){return pp_open_box(std_formatter,_lw_)} - function close_box(_lv_){return pp_close_box(std_formatter,_lv_)} - function open_tag(_lu_){return pp_open_tag(std_formatter,_lu_)} - function close_tag(_lt_){return pp_close_tag(std_formatter,_lt_)} - function open_stag(_ls_){return pp_open_stag(std_formatter,_ls_)} - function close_stag(_lr_){return pp_close_stag(std_formatter,_lr_)} - function print_as(_lp_,_lq_){return pp_print_as(std_formatter,_lp_,_lq_)} - function print_string$0(_lo_){return pp_print_string(std_formatter,_lo_)} - function print_bytes$0(_ln_){return pp_print_bytes(std_formatter,_ln_)} - function print_int$0(_lm_){return pp_print_int(std_formatter,_lm_)} - function print_float$0(_ll_){return pp_print_float(std_formatter,_ll_)} - function print_char$0(_lk_){return pp_print_char(std_formatter,_lk_)} - function print_bool(_lj_){return pp_print_bool(std_formatter,_lj_)} - function print_break(_lh_,_li_) - {return pp_print_break(std_formatter,_lh_,_li_)} - function print_cut(_lg_){return pp_print_cut(std_formatter,_lg_)} - function print_space(_lf_){return pp_print_space(std_formatter,_lf_)} - function force_newline(_le_){return pp_force_newline(std_formatter,_le_)} - function print_flush(_ld_){return pp_print_flush(std_formatter,_ld_)} - function print_newline$0(_lc_) - {return pp_print_newline(std_formatter,_lc_)} - function print_if_newline(_lb_) - {return pp_print_if_newline(std_formatter,_lb_)} - function open_tbox(_la_){return pp_open_tbox(std_formatter,_la_)} - function close_tbox(_k$_){return pp_close_tbox(std_formatter,_k$_)} - function print_tbreak(_k9_,_k__) - {return pp_print_tbreak(std_formatter,_k9_,_k__)} - function set_tab(_k8_){return pp_set_tab(std_formatter,_k8_)} - function print_tab(_k7_){return pp_print_tab(std_formatter,_k7_)} - function set_margin(_k6_){return pp_set_margin(std_formatter,_k6_)} - function get_margin(_k5_){return std_formatter[6]} - function set_max_indent(_k4_) - {return pp_set_max_indent(std_formatter,_k4_)} - function get_max_indent(_k3_){return std_formatter[8]} - function set_geometry(_k1_,_k2_) - {return pp_set_geometry(std_formatter,_k1_,_k2_)} - function safe_set_geometry(_kZ_,_k0_) - {return pp_safe_set_geometry(std_formatter,_kZ_,_k0_)} - function get_geometry(_kY_){return pp_get_geometry(std_formatter,_kY_)} - function update_geometry(_kX_) - {return pp_update_geometry(std_formatter,_kX_)} - function set_max_boxes(_kW_){return pp_set_max_boxes(std_formatter,_kW_)} - function get_max_boxes(_kV_){return std_formatter[15]} - function over_max_boxes(_kU_) - {return pp_over_max_boxes(std_formatter,_kU_)} - function set_ellipsis_text(_kT_) - {return pp_set_ellipsis_text(std_formatter,_kT_)} - function get_ellipsis_text(_kS_){return std_formatter[16]} - function set_formatter_out_channel(_kR_) - {return pp_set_formatter_out_channel(std_formatter,_kR_)} - function set_formatter_out_functions(_kQ_) - {return pp_set_formatter_out_functions(std_formatter,_kQ_)} - function get_formatter_out_functions(_kP_) - {return pp_get_formatter_out_functions(std_formatter,_kP_)} - function set_formatter_output_functions(_kN_,_kO_) - {return pp_set_formatter_output_functi(std_formatter,_kN_,_kO_)} - function get_formatter_output_functions(_kM_) - {return pp_get_formatter_output_functi(std_formatter,_kM_)} - function set_formatter_stag_functions(_kL_) - {return pp_set_formatter_stag_function(std_formatter,_kL_)} - function get_formatter_stag_functions(_kK_) - {return pp_get_formatter_stag_function(std_formatter,_kK_)} - function set_print_tags(_kJ_) - {return pp_set_print_tags(std_formatter,_kJ_)} - function get_print_tags(_kI_){return std_formatter[22]} - function set_mark_tags(_kH_){return pp_set_mark_tags(std_formatter,_kH_)} - function get_mark_tags(_kG_){return std_formatter[23]} - function set_tags(_kF_){return pp_set_tags(std_formatter,_kF_)} - function pp_print_list(opt,pp_v,ppf,param) - {var opt$0=opt,param$0=param; - for(;;) - {if(opt$0)var sth=opt$0[1],pp_sep=sth;else var pp_sep=pp_print_cut; - if(! param$0)return 0; - var _kE_=param$0[1]; - if(! param$0[2])return caml_call2(pp_v,ppf,_kE_); - var vs=param$0[2]; - caml_call2(pp_v,ppf,_kE_); - caml_call2(pp_sep,ppf,0); - var opt$1=[0,pp_sep],opt$0=opt$1,param$0=vs}} - function pp_print_seq(opt,pp_v,ppf,seq$1) - {if(opt)var sth=opt[1],pp_sep=sth;else var pp_sep=pp_print_cut; - var match$0=caml_call1(seq$1,0); - if(! match$0)return 0; - var seq$2=match$0[2],v$0=match$0[1]; - caml_call2(pp_v,ppf,v$0); - var seq=seq$2; - for(;;) - {var match=caml_call1(seq,0); - if(! match)return 0; - var seq$0=match[2],v=match[1]; - caml_call2(pp_sep,ppf,0); - caml_call2(pp_v,ppf,v); - var seq=seq$0}} - function pp_print_text(ppf,s) - {var len=caml_ml_string_length(s),left=[0,0],right=[0,0]; - function flush(param) - {pp_print_string(ppf,sub$0(s,left[1],right[1] - left[1] | 0)); - right[1]++; - left[1] = right[1]; - return 0} - for(;;) - {if(right[1] === len) - {var _kD_=left[1] !== len?1:0;return _kD_?flush(0):_kD_} - var match=caml_string_get(s,right[1]); - if(10 === match) - {flush(0);pp_force_newline(ppf,0)} - else - if(32 === match){flush(0);pp_print_space(ppf,0)}else right[1]++}} - function pp_print_option(opt,pp_v,ppf,param) - {if(opt) - var sth=opt[1],none=sth; - else - var none=function(param,_kC_){return 0}; - if(! param)return caml_call2(none,ppf,0); - var v=param[1]; - return caml_call2(pp_v,ppf,v)} - function pp_print_result(ok,error,ppf,param) - {if(0 === param[0]){var v=param[1];return caml_call2(ok,ppf,v)} - var e=param[1]; - return caml_call2(error,ppf,e)} - function pp_print_either(left,right,ppf,param) - {if(0 === param[0]){var l=param[1];return caml_call2(left,ppf,l)} - var r=param[1]; - return caml_call2(right,ppf,r)} - function compute_tag(output,tag_acc) - {var buf=create$2(16),ppf=formatter_of_buffer(buf); - caml_call2(output,ppf,tag_acc); - pp_print_flush(ppf,0); - var len=buf[2]; - return 2 <= len?sub$3(buf,1,len - 2 | 0):contents(buf)} - function output_formatting_lit(ppf,fmting_lit) - {if(typeof fmting_lit === "number") - switch(fmting_lit) - {case 0:return pp_close_box(ppf,0); - case 1:return pp_close_tag(ppf,0); - case 2:return pp_print_flush(ppf,0); - case 3:return pp_force_newline(ppf,0); - case 4:return pp_print_newline(ppf,0); - case 5:return pp_print_char(ppf,64); - default:return pp_print_char(ppf,37)} - switch(fmting_lit[0]) - {case 0: - var offset=fmting_lit[3],width=fmting_lit[2]; - return pp_print_break(ppf,width,offset); - case 1:return 0; - default: - var c=fmting_lit[1];pp_print_char(ppf,64);return pp_print_char(ppf,c)}} - function output_acc$0(ppf,acc) - {var switch$0=0; - if(typeof acc === "number")return 0; - switch(acc[0]) - {case 0: - var f=acc[2],p=acc[1]; - output_acc$0(ppf,p); - return output_formatting_lit(ppf,f); - case 1: - var _ks_=acc[2],_kt_=acc[1]; - if(0 === _ks_[0]) - {var acc$0=_ks_[1]; - output_acc$0(ppf,_kt_); - return pp_open_stag - (ppf,[0,String_tag,compute_tag(output_acc$0,acc$0)])} - var acc$1=_ks_[1]; - output_acc$0(ppf,_kt_); - var - match=open_box_of_string(compute_tag(output_acc$0,acc$1)), - bty=match[2], - indent=match[1]; - return pp_open_box_gen(ppf,indent,bty); - case 2: - var _ku_=acc[1],switch$1=0; - if(typeof _ku_ !== "number" && 0 === _ku_[0]) - {var _kv_=_ku_[2],switch$2=0; - if(typeof _kv_ !== "number" && 1 === _kv_[0]) - {var s$0=acc[2],size=_kv_[2],p$1=_ku_[1]; - switch$1 = 1; - switch$2 = 1}} - if(! switch$1){var s=acc[2],p$0=_ku_;switch$0 = 2} - break; - case 3: - var _kw_=acc[1],switch$3=0; - if(typeof _kw_ !== "number" && 0 === _kw_[0]) - {var _kx_=_kw_[2],switch$4=0; - if(typeof _kx_ !== "number" && 1 === _kx_[0]) - {var c$0=acc[2],size$0=_kx_[2],p$3=_kw_[1]; - switch$0 = 1; - switch$3 = 1; - switch$4 = 1}} - if(! switch$3){var c=acc[2],p$2=_kw_;switch$0 = 3} - break; - case 4: - var _ky_=acc[1],switch$5=0; - if(typeof _ky_ !== "number" && 0 === _ky_[0]) - {var _kz_=_ky_[2],switch$6=0; - if(typeof _kz_ !== "number" && 1 === _kz_[0]) - {var s$0=acc[2],size=_kz_[2],p$1=_ky_[1]; - switch$5 = 1; - switch$6 = 1}} - if(! switch$5){var s=acc[2],p$0=_ky_;switch$0 = 2} - break; - case 5: - var _kA_=acc[1],switch$7=0; - if(typeof _kA_ === "number" || ! (0 === _kA_[0])) - switch$7 = 1; else - {var _kB_=_kA_[2],switch$8=0; - if(typeof _kB_ !== "number" && 1 === _kB_[0]) - {var c$0=acc[2],size$0=_kB_[2],p$3=_kA_[1]; - switch$0 = 1; - switch$8 = 1} - if(! switch$8)switch$7 = 1} - if(switch$7){var c=acc[2],p$2=_kA_;switch$0 = 3} + var _bW_ = first; + var tab = _bW_; break; - case 6: - var f$0=acc[2],p$4=acc[1]; - output_acc$0(ppf,p$4); - return caml_call1(f$0,ppf); - case 7: - var p$5=acc[1];output_acc$0(ppf,p$5);return pp_print_flush(ppf,0); - default: - var msg=acc[2],p$6=acc[1]; - output_acc$0(ppf,p$6); - return invalid_arg(msg)} - switch(switch$0) - {case 0:output_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); - case 1: - output_acc$0(ppf,p$3); - return pp_print_as_size(ppf,size$0,make$1(1,c$0)); - case 2:output_acc$0(ppf,p$0);return pp_print_string(ppf,s); - default:output_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} - function strput_acc$0(ppf,acc) - {var switch$0=0; - if(typeof acc === "number")return 0; - switch(acc[0]) - {case 0: - var f=acc[2],p=acc[1]; - strput_acc$0(ppf,p); - return output_formatting_lit(ppf,f); - case 1: - var _kg_=acc[2],_kh_=acc[1]; - if(0 === _kg_[0]) - {var acc$0=_kg_[1]; - strput_acc$0(ppf,_kh_); - return pp_open_stag - (ppf,[0,String_tag,compute_tag(strput_acc$0,acc$0)])} - var acc$1=_kg_[1]; - strput_acc$0(ppf,_kh_); - var - match=open_box_of_string(compute_tag(strput_acc$0,acc$1)), - bty=match[2], - indent=match[1]; - return pp_open_box_gen(ppf,indent,bty); - case 2: - var _ki_=acc[1],switch$1=0; - if(typeof _ki_ !== "number" && 0 === _ki_[0]) - {var _kj_=_ki_[2],switch$2=0; - if(typeof _kj_ !== "number" && 1 === _kj_[0]) - {var s$0=acc[2],size=_kj_[2],p$1=_ki_[1]; - switch$1 = 1; - switch$2 = 1}} - if(! switch$1){var s=acc[2],p$0=_ki_;switch$0 = 2} - break; - case 3: - var _kk_=acc[1],switch$3=0; - if(typeof _kk_ !== "number" && 0 === _kk_[0]) - {var _kl_=_kk_[2],switch$4=0; - if(typeof _kl_ !== "number" && 1 === _kl_[0]) - {var c$0=acc[2],size$0=_kl_[2],p$3=_kk_[1]; - switch$0 = 1; - switch$3 = 1; - switch$4 = 1}} - if(! switch$3){var c=acc[2],p$2=_kk_;switch$0 = 3} - break; - case 4: - var _km_=acc[1],switch$5=0; - if(typeof _km_ !== "number" && 0 === _km_[0]) - {var _kn_=_km_[2],switch$6=0; - if(typeof _kn_ !== "number" && 1 === _kn_[0]) - {var s$0=acc[2],size=_kn_[2],p$1=_km_[1]; - switch$5 = 1; - switch$6 = 1}} - if(! switch$5){var s=acc[2],p$0=_km_;switch$0 = 2} - break; - case 5: - var _ko_=acc[1],switch$7=0; - if(typeof _ko_ === "number" || ! (0 === _ko_[0])) - switch$7 = 1; - else - {var _kp_=_ko_[2],switch$8=0; - if(typeof _kp_ !== "number" && 1 === _kp_[0]) - {var c$0=acc[2],size$0=_kp_[2],p$3=_ko_[1]; - switch$0 = 1; - switch$8 = 1} - if(! switch$8)switch$7 = 1} - if(switch$7){var c=acc[2],p$2=_ko_;switch$0 = 3} - break; - case 6: - var _kq_=acc[1]; - if(typeof _kq_ !== "number" && 0 === _kq_[0]) - {var _kr_=_kq_[2]; - if(typeof _kr_ !== "number" && 1 === _kr_[0]) - {var f$1=acc[2],size$1=_kr_[2],p$4=_kq_[1]; - strput_acc$0(ppf,p$4); - return pp_print_as_size(ppf,size$1,caml_call1(f$1,0))}} - var f$0=acc[2]; - strput_acc$0(ppf,_kq_); - return pp_print_string(ppf,caml_call1(f$0,0)); - case 7: - var p$5=acc[1];strput_acc$0(ppf,p$5);return pp_print_flush(ppf,0); - default: - var msg=acc[2],p$6=acc[1]; - strput_acc$0(ppf,p$6); - return invalid_arg(msg)} - switch(switch$0) - {case 0:strput_acc$0(ppf,p$1);return pp_print_as_size(ppf,size,s$0); - case 1: - strput_acc$0(ppf,p$3); - return pp_print_as_size(ppf,size$0,make$1(1,c$0)); - case 2:strput_acc$0(ppf,p$0);return pp_print_string(ppf,s); - default:strput_acc$0(ppf,p$2);return pp_print_char(ppf,c)}} - function kfprintf$0(k,ppf,param) - {var fmt=param[1],_kf_=0; - return make_printf - (function(acc){output_acc$0(ppf,acc);return caml_call1(k,ppf)}, - _kf_, - fmt)} - function ikfprintf$0(k,ppf,param) - {var fmt=param[1];return make_iprintf(k,ppf,fmt)} - function ifprintf$0(ppf,param) - {var fmt=param[1],_kd_=0; - return make_iprintf(function(_ke_){return 0},_kd_,fmt)} - function fprintf$0(ppf) - {function _ka_(_kc_){return 0} - return function(_kb_){return kfprintf$0(_ka_,ppf,_kb_)}} - function printf$0(fmt){return caml_call1(fprintf$0(std_formatter),fmt)} - function eprintf$0(fmt){return caml_call1(fprintf$0(err_formatter),fmt)} - function kdprintf(k,param) - {var fmt=param[1],_j$_=0; - return make_printf - (function(acc) - {return caml_call1 - (k,function(ppf){return output_acc$0(ppf,acc)})}, - _j$_, - fmt)} - function dprintf(fmt){return kdprintf(function(i){return i},fmt)} - function kprintf(k,param) - {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); - function k$0(acc) - {strput_acc$0(ppf,acc); - return caml_call1(k,flush_buffer_formatter(b,ppf))} - return make_printf(k$0,0,fmt)} - function sprintf$0(fmt){return kprintf(id$0,fmt)} - function kasprintf(k,param) - {var fmt=param[1],b=pp_make_buffer(0),ppf=formatter_of_buffer(b); - function k$0(acc) - {output_acc$0(ppf,acc); - return caml_call1(k,flush_buffer_formatter(b,ppf))} - return make_printf(k$0,0,fmt)} - function asprintf(fmt){return kasprintf(id$0,fmt)} - function flush_standard_formatters(param) - {pp_print_flush(std_formatter,0);return pp_print_flush(err_formatter,0)} - at_exit(flush_standard_formatters); - function pp_set_all_formatter_output_fu(state,f,g,h,i) - {pp_set_formatter_output_functi(state,f,g); - state[19] = h; - state[20] = i; - return 0} - function pp_get_all_formatter_output_fu(state,param) - {return [0,state[17],state[18],state[19],state[20]]} - function set_all_formatter_output_funct(_j7_,_j8_,_j9_,_j__) - {return pp_set_all_formatter_output_fu(std_formatter,_j7_,_j8_,_j9_,_j__)} - function get_all_formatter_output_funct(_j6_) - {return pp_get_all_formatter_output_fu(std_formatter,_j6_)} - function bprintf$0(b,param) - {var fmt=param[1],ppf=formatter_of_buffer(b); - function k(acc){output_acc$0(ppf,acc);return pp_flush_queue(ppf,0)} - return make_printf(k,0,fmt)} - function pp_set_formatter_tag_functions(state,param) - {var pct=param[4],pot=param[3],mct=param[2],mot=param[1]; - function stringify(f,e,param) - {if(param[1] !== String_tag)return e; - var s=param[2]; - return caml_call1(f,s)} - state[24] = function(_j5_){return stringify(mot,cst$84,_j5_)}; - state[25] = function(_j4_){return stringify(mct,cst$85,_j4_)}; - var _j0_=0; - state[26] = function(_j3_){return stringify(pot,_j0_,_j3_)}; - var _j1_=0; - state[27] = function(_j2_){return stringify(pct,_j1_,_j2_)}; - return 0} - function pp_get_formatter_tag_functions(fmt,param) - {var funs=pp_get_formatter_stag_function(fmt,0); - function mark_open_tag(s){return caml_call1(funs[1],[0,String_tag,s])} - function mark_close_tag(s){return caml_call1(funs[2],[0,String_tag,s])} - function print_open_tag(s){return caml_call1(funs[3],[0,String_tag,s])} - function print_close_tag(s){return caml_call1(funs[4],[0,String_tag,s])} - return [0,mark_open_tag,mark_close_tag,print_open_tag,print_close_tag]} - function set_formatter_tag_functions(_jZ_) - {return pp_set_formatter_tag_functions(std_formatter,_jZ_)} - function get_formatter_tag_functions(_jY_) - {return pp_get_formatter_tag_functions(std_formatter,_jY_)} + } + } + else + var tab = insertion_point; + var offset = tab - insertion_point | 0; + return 0 <= offset + ? break_same_line(state, [0, cst$0, offset + n | 0, cst]) + : break_new_line + (state, [0, cst$2, tab + off$0 | 0, cst$1], state[6]); + case 3: + var + ty = param[2], + off$1 = param[1], + insertion_point$0 = state[6] - state[9] | 0; + if(state[8] < insertion_point$0){ + var match = caml_call1(Stdlib_Stack[7], state[2]); + if(match){ + var match$0 = match[1], width = match$0[2], box_type = match$0[1]; + if(state[9] < width && 3 >= box_type - 1 >>> 0) + break_line(state, width); + } + else + pp_output_newline(state); + } + var + width$2 = state[9] - off$1 | 0, + box_type$1 = 1 === ty ? 1 : state[9] < size$0 ? ty : 5; + return caml_call2(Stdlib_Stack[3], [0, box_type$1, width$2], state[2]); + case 4: + var tbox = param[1]; + return caml_call2(Stdlib_Stack[3], tbox, state[3]); + default: + var + tag_name$0 = param[1], + marker$0 = caml_call1(state[24], tag_name$0); + pp_output_string(state, marker$0); + return caml_call2(Stdlib_Stack[3], tag_name$0, state[5]); + } + } + function advance_left(state){ + for(;;){ + var match = caml_call1(Stdlib_Queue[9], state[28]); + if(! match) return 0; + var + match$0 = match[1], + size = match$0[1], + length = match$0[3], + token = match$0[2], + pending_count = state[13] - state[12] | 0, + _bT_ = 0 <= size ? 1 : 0, + _bU_ = _bT_ || (state[9] <= pending_count ? 1 : 0); + if(! _bU_) return _bU_; + caml_call1(Stdlib_Queue[5], state[28]); + var size$0 = 0 <= size ? size : pp_infinity; + format_pp_token(state, size$0, token); + state[12] = length + state[12] | 0; + } + } + function enqueue_advance(state, tok){ + pp_enqueue(state, tok); + return advance_left(state); + } + function enqueue_string_as(state, size, s){ + return enqueue_advance(state, [0, size, [0, s], size]); + } + function initialize_scan_stack(stack){ + caml_call1(Stdlib_Stack[8], stack); + var queue_elem = [0, unknown, _b_, 0]; + return caml_call2(Stdlib_Stack[3], [0, -1, queue_elem], stack); + } + function set_size(state, ty){ + var match = caml_call1(Stdlib_Stack[7], state[1]); + if(! match) return 0; var - Stdlib_Format= + match$0 = match[1], + queue_elem = match$0[2], + left_total = match$0[1], + size = queue_elem[1]; + if(left_total < state[12]) return initialize_scan_stack(state[1]); + var _bP_ = queue_elem[2]; + if(typeof _bP_ !== "number") + switch(_bP_[0]){ + case 3: + var + _bR_ = 1 - ty, + _bS_ = + _bR_ + ? (queue_elem + [1] + = state[13] + size | 0, + caml_call1(Stdlib_Stack[5], state[1]), + 0) + : _bR_; + return _bS_; + case 1: + case 2: + var + _bQ_ = + ty + ? (queue_elem + [1] + = state[13] + size | 0, + caml_call1(Stdlib_Stack[5], state[1]), + 0) + : ty; + return _bQ_; + } + return 0; + } + function scan_push(state, b, token){ + pp_enqueue(state, token); + if(b) set_size(state, 1); + var elem = [0, state[13], token]; + return caml_call2(Stdlib_Stack[3], elem, state[1]); + } + function pp_open_box_gen(state, indent, br_ty){ + state[14] = state[14] + 1 | 0; + if(state[14] < state[15]){ + var size = - state[13] | 0, elem = [0, size, [3, indent, br_ty], 0]; + return scan_push(state, 0, elem); + } + var _bO_ = state[14] === state[15] ? 1 : 0; + if(! _bO_) return _bO_; + var s = state[16]; + return enqueue_string_as(state, caml_ml_string_length(s), s); + } + function pp_close_box(state, param){ + var _bM_ = 1 < state[14] ? 1 : 0; + if(_bM_){ + if(state[14] < state[15]){ + pp_enqueue(state, [0, zero, 1, 0]); + set_size(state, 1); + set_size(state, 0); + } + state[14] = state[14] - 1 | 0; + var _bN_ = 0; + } + else + var _bN_ = _bM_; + return _bN_; + } + function pp_open_stag(state, tag_name){ + if(state[22]){ + caml_call2(Stdlib_Stack[3], tag_name, state[4]); + caml_call1(state[26], tag_name); + } + var _bL_ = state[23]; + if(! _bL_) return _bL_; + var token = [5, tag_name]; + return pp_enqueue(state, [0, zero, token, 0]); + } + function pp_close_stag(state, param){ + if(state[23]) pp_enqueue(state, [0, zero, 5, 0]); + var _bJ_ = state[22]; + if(_bJ_){ + var match = caml_call1(Stdlib_Stack[5], state[4]); + if(match){ + var tag_name = match[1]; + return caml_call1(state[27], tag_name); + } + var _bK_ = 0; + } + else + var _bK_ = _bJ_; + return _bK_; + } + function pp_open_tag(state, s){ + return pp_open_stag(state, [0, String_tag, s]); + } + function pp_close_tag(state, param){return pp_close_stag(state, 0);} + function pp_set_print_tags(state, b){state[22] = b; return 0;} + function pp_set_mark_tags(state, b){state[23] = b; return 0;} + function pp_get_print_tags(state, param){return state[22];} + function pp_get_mark_tags(state, param){return state[23];} + function pp_set_tags(state, b){ + pp_set_print_tags(state, b); + return pp_set_mark_tags(state, b); + } + function pp_get_formatter_stag_function(state, param){ + return [0, state[24], state[25], state[26], state[27]]; + } + function pp_set_formatter_stag_function(state, param){ + var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; + state[24] = mot; + state[25] = mct; + state[26] = pot; + state[27] = pct; + return 0; + } + function pp_rinit(state){ + state[12] = 1; + state[13] = 1; + caml_call1(Stdlib_Queue[11], state[28]); + initialize_scan_stack(state[1]); + caml_call1(Stdlib_Stack[8], state[2]); + caml_call1(Stdlib_Stack[8], state[3]); + caml_call1(Stdlib_Stack[8], state[4]); + caml_call1(Stdlib_Stack[8], state[5]); + state[10] = 0; + state[14] = 0; + state[9] = state[6]; + return pp_open_box_gen(state, 0, 3); + } + function pp_flush_queue(state, b){ + var _bH_ = state[4]; + function _bI_(param){return pp_close_tag(state, 0);} + caml_call2(Stdlib_Stack[12], _bI_, _bH_); + for(;;){ + if(1 < state[14]){pp_close_box(state, 0); continue;} + state[13] = pp_infinity; + advance_left(state); + if(b) pp_output_newline(state); + return pp_rinit(state); + } + } + function pp_print_as_size(state, size, s){ + var _bG_ = state[14] < state[15] ? 1 : 0; + return _bG_ ? enqueue_string_as(state, size, s) : _bG_; + } + function pp_print_as(state, isize, s){ + return pp_print_as_size(state, isize, s); + } + function pp_print_string(state, s){ + return pp_print_as(state, caml_ml_string_length(s), s); + } + function pp_print_bytes(state, s){ + return pp_print_as + (state, + runtime.caml_ml_bytes_length(s), + caml_call1(Stdlib_Bytes[6], s)); + } + function pp_print_int(state, i){ + return pp_print_string(state, caml_call1(Stdlib_Int[12], i)); + } + function pp_print_float(state, f){ + return pp_print_string(state, caml_call1(Stdlib[35], f)); + } + function pp_print_bool(state, b){ + return pp_print_string(state, caml_call1(Stdlib[30], b)); + } + function pp_print_char(state, c){ + return pp_print_as(state, 1, caml_call2(Stdlib_String[1], 1, c)); + } + function pp_open_hbox(state, param){return pp_open_box_gen(state, 0, 0);} + function pp_open_vbox(state, indent){ + return pp_open_box_gen(state, indent, 1); + } + function pp_open_hvbox(state, indent){ + return pp_open_box_gen(state, indent, 2); + } + function pp_open_hovbox(state, indent){ + return pp_open_box_gen(state, indent, 3); + } + function pp_open_box(state, indent){ + return pp_open_box_gen(state, indent, 4); + } + function pp_print_newline(state, param){ + pp_flush_queue(state, 1); + return caml_call1(state[18], 0); + } + function pp_print_flush(state, param){ + pp_flush_queue(state, 0); + return caml_call1(state[18], 0); + } + function pp_force_newline(state, param){ + var _bF_ = state[14] < state[15] ? 1 : 0; + return _bF_ ? enqueue_advance(state, [0, zero, 3, 0]) : _bF_; + } + function pp_print_if_newline(state, param){ + var _bE_ = state[14] < state[15] ? 1 : 0; + return _bE_ ? enqueue_advance(state, [0, zero, 4, 0]) : _bE_; + } + function pp_print_custom_break(state, fits, breaks){ + var + after = fits[3], + width = fits[2], + before = fits[1], + _bD_ = state[14] < state[15] ? 1 : 0; + if(! _bD_) return _bD_; + var + size = - state[13] | 0, + token = [1, fits, breaks], + length = + (caml_ml_string_length(before) + width | 0) + + caml_ml_string_length(after) + | 0, + elem = [0, size, token, length]; + return scan_push(state, 1, elem); + } + function pp_print_break(state, width, offset){ + return pp_print_custom_break + (state, [0, cst$6, width, cst$5], [0, cst$4, offset, cst$3]); + } + function pp_print_space(state, param){return pp_print_break(state, 1, 0);} + function pp_print_cut(state, param){return pp_print_break(state, 0, 0);} + function pp_open_tbox(state, param){ + state[14] = state[14] + 1 | 0; + var _bC_ = state[14] < state[15] ? 1 : 0; + if(! _bC_) return _bC_; + var elem = [0, zero, [4, [0, [0, 0]]], 0]; + return enqueue_advance(state, elem); + } + function pp_close_tbox(state, param){ + var _bz_ = 1 < state[14] ? 1 : 0; + if(_bz_){ + var _bA_ = state[14] < state[15] ? 1 : 0; + if(_bA_){ + var elem = [0, zero, 2, 0]; + enqueue_advance(state, elem); + state[14] = state[14] - 1 | 0; + var _bB_ = 0; + } + else + var _bB_ = _bA_; + } + else + var _bB_ = _bz_; + return _bB_; + } + function pp_print_tbreak(state, width, offset){ + var _by_ = state[14] < state[15] ? 1 : 0; + if(! _by_) return _by_; + var size = - state[13] | 0, elem = [0, size, [2, width, offset], width]; + return scan_push(state, 1, elem); + } + function pp_print_tab(state, param){return pp_print_tbreak(state, 0, 0);} + function pp_set_tab(state, param){ + var _bx_ = state[14] < state[15] ? 1 : 0; + if(! _bx_) return _bx_; + var elem = [0, zero, 0, 0]; + return enqueue_advance(state, elem); + } + function pp_set_max_boxes(state, n){ + var _bv_ = 1 < n ? 1 : 0, _bw_ = _bv_ ? (state[15] = n, 0) : _bv_; + return _bw_; + } + function pp_get_max_boxes(state, param){return state[15];} + function pp_over_max_boxes(state, param){return state[14] === state[15] ? 1 : 0; + } + function pp_set_ellipsis_text(state, s){state[16] = s; return 0;} + function pp_get_ellipsis_text(state, param){return state[16];} + function pp_limit(n){return n < 1000000010 ? n : 1000000009;} + function pp_set_max_indent(state, n$0){ + var _bu_ = 1 < n$0 ? 1 : 0; + if(! _bu_) return _bu_; + var n$1 = state[6] - n$0 | 0, _bt_ = 1 <= n$1 ? 1 : 0; + if(! _bt_) return _bt_; + var n = pp_limit(n$1); + state[7] = n; + state[8] = state[6] - state[7] | 0; + return pp_rinit(state); + } + function pp_get_max_indent(state, param){return state[8];} + function pp_set_margin(state, n){ + var _br_ = 1 <= n ? 1 : 0; + if(! _br_) return _br_; + var n$0 = pp_limit(n); + state[6] = n$0; + if(state[8] <= state[6]) + var new_max_indent = state[8]; + else + var + _bs_ = + caml_call2(Stdlib_Int[11], state[6] - state[7] | 0, state[6] / 2 | 0), + new_max_indent = caml_call2(Stdlib_Int[11], _bs_, 1); + return pp_set_max_indent(state, new_max_indent); + } + function validate_geometry(param){ + var margin = param[2], max_indent = param[1]; + return 2 <= max_indent ? margin <= max_indent ? _c_ : _d_ : _e_; + } + function check_geometry(geometry){ + return 0 === validate_geometry(geometry)[0] ? 1 : 0; + } + function pp_get_margin(state, param){return state[6];} + function pp_set_full_geometry(state, param){ + var margin = param[2], max_indent = param[1]; + pp_set_margin(state, margin); + pp_set_max_indent(state, max_indent); + return 0; + } + function pp_set_geometry(state, max_indent, margin){ + var + geometry = [0, max_indent, margin], + match = validate_geometry(geometry); + if(0 === match[0]) return pp_set_full_geometry(state, geometry); + var + msg = match[1], + _bq_ = caml_call2(Stdlib[28], cst_Format_pp_set_geometry, msg); + throw caml_maybe_attach_backtrace([0, Stdlib[6], _bq_], 1); + } + function pp_safe_set_geometry(state, max_indent, margin){ + var geometry = [0, max_indent, margin]; + return 0 === validate_geometry(geometry)[0] + ? pp_set_full_geometry(state, geometry) + : 0; + } + function pp_get_geometry(state, param){return [0, state[8], state[6]];} + function pp_update_geometry(state, update){ + var geometry = pp_get_geometry(state, 0); + return pp_set_full_geometry(state, caml_call1(update, geometry)); + } + function pp_set_formatter_out_functions(state, param){ + var j = param[5], i = param[4], h = param[3], g = param[2], f = param[1]; + state[17] = f; + state[18] = g; + state[19] = h; + state[20] = i; + state[21] = j; + return 0; + } + function pp_get_formatter_out_functions(state, param){ + return [0, state[17], state[18], state[19], state[20], state[21]]; + } + function pp_set_formatter_output_functi(state, f, g){state[17] = f; state[18] = g; return 0; + } + function pp_get_formatter_output_functi(state, param){return [0, state[17], state[18]]; + } + function display_newline(state, param){ + return caml_call3(state[17], cst$7, 0, 1); + } + var blank_line = caml_call2(Stdlib_String[1], 80, 32); + function display_blanks(state, n){ + var n$0 = n; + for(;;){ + var _bp_ = 0 < n$0 ? 1 : 0; + if(! _bp_) return _bp_; + if(80 >= n$0) return caml_call3(state[17], blank_line, 0, n$0); + caml_call3(state[17], blank_line, 0, 80); + var n$1 = n$0 - 80 | 0, n$0 = n$1; + } + } + function pp_set_formatter_out_channel(state, oc){ + state[17] = caml_call1(Stdlib[69], oc); + state[18] = function(param){return caml_call1(Stdlib[63], oc);}; + state[19] = function(_bo_){return display_newline(state, _bo_);}; + state[20] = function(_bn_){return display_blanks(state, _bn_);}; + state[21] = function(_bm_){return display_blanks(state, _bm_);}; + return 0; + } + function default_pp_mark_open_tag(param){ + if(param[1] !== String_tag) return cst$10; + var s = param[2], _bl_ = caml_call2(Stdlib[28], s, cst$8); + return caml_call2(Stdlib[28], cst$9, _bl_); + } + function default_pp_mark_close_tag(param){ + if(param[1] !== String_tag) return cst$13; + var s = param[2], _bk_ = caml_call2(Stdlib[28], s, cst$11); + return caml_call2(Stdlib[28], cst$12, _bk_); + } + function default_pp_print_open_tag(_bj_){return 0;} + function default_pp_print_close_tag(_bi_){return 0;} + function pp_make_formatter(f, g, h, i, j){ + var + pp_queue = caml_call1(Stdlib_Queue[2], 0), + sys_tok = [0, unknown, _f_, 0]; + caml_call2(Stdlib_Queue[3], sys_tok, pp_queue); + var scan_stack = caml_call1(Stdlib_Stack[2], 0); + initialize_scan_stack(scan_stack); + caml_call2(Stdlib_Stack[3], [0, 1, sys_tok], scan_stack); + var + _be_ = Stdlib[19], + _bf_ = caml_call1(Stdlib_Stack[2], 0), + _bg_ = caml_call1(Stdlib_Stack[2], 0), + _bh_ = caml_call1(Stdlib_Stack[2], 0); + return [0, + scan_stack, + caml_call1(Stdlib_Stack[2], 0), + _bh_, + _bg_, + _bf_, + 78, + 10, + 68, + 78, + 0, + 1, + 1, + 1, + 1, + _be_, + cst$14, + f, + g, + h, + i, + j, + 0, + 0, + default_pp_mark_open_tag, + default_pp_mark_close_tag, + default_pp_print_open_tag, + default_pp_print_close_tag, + pp_queue]; + } + function formatter_of_out_functions(out_funs){ + return pp_make_formatter + (out_funs[1], out_funs[2], out_funs[3], out_funs[4], out_funs[5]); + } + function make_formatter(output, flush){ + function _a8_(_bd_){return 0;} + function _a9_(_bc_){return 0;} + var + ppf = + pp_make_formatter(output, flush, function(_bb_){return 0;}, _a9_, _a8_); + ppf[19] = function(_ba_){return display_newline(ppf, _ba_);}; + ppf[20] = function(_a$_){return display_blanks(ppf, _a$_);}; + ppf[21] = function(_a__){return display_blanks(ppf, _a__);}; + return ppf; + } + function formatter_of_out_channel(oc){ + function _a7_(param){return caml_call1(Stdlib[63], oc);} + return make_formatter(caml_call1(Stdlib[69], oc), _a7_); + } + function formatter_of_buffer(b){ + function _a5_(_a6_){return 0;} + return make_formatter(caml_call1(Stdlib_Buffer[18], b), _a5_); + } + var pp_buffer_size = 512; + function pp_make_buffer(param){ + return caml_call1(Stdlib_Buffer[1], pp_buffer_size); + } + var + stdbuf = pp_make_buffer(0), + std_formatter = formatter_of_out_channel(Stdlib[39]), + err_formatter = formatter_of_out_channel(Stdlib[40]), + str_formatter = formatter_of_buffer(stdbuf); + function flush_buffer_formatter(buf, ppf){ + pp_flush_queue(ppf, 0); + var s = caml_call1(Stdlib_Buffer[2], buf); + caml_call1(Stdlib_Buffer[9], buf); + return s; + } + function flush_str_formatter(param){ + return flush_buffer_formatter(stdbuf, str_formatter); + } + function make_symbolic_output_buffer(param){return [0, 0];} + function clear_symbolic_output_buffer(sob){sob[1] = 0; return 0;} + function get_symbolic_output_buffer(sob){ + return caml_call1(Stdlib_List[9], sob[1]); + } + function flush_symbolic_output_buffer(sob){ + var items = get_symbolic_output_buffer(sob); + clear_symbolic_output_buffer(sob); + return items; + } + function add_symbolic_output_item(sob, item){sob[1] = [0, item, sob[1]]; return 0; + } + function formatter_of_symbolic_output_b(sob){ + function f(s, i, n){ + return add_symbolic_output_item + (sob, [0, caml_call3(Stdlib_String[15], s, i, n)]); + } + function g(_a4_){return add_symbolic_output_item(sob, 0);} + function h(_a3_){return add_symbolic_output_item(sob, 1);} + function i(n){return add_symbolic_output_item(sob, [1, n]);} + function j(n){return add_symbolic_output_item(sob, [2, n]);} + return pp_make_formatter(f, g, h, i, j); + } + function open_hbox(_a2_){return pp_open_hbox(std_formatter, _a2_);} + function open_vbox(_a1_){return pp_open_vbox(std_formatter, _a1_);} + function open_hvbox(_a0_){return pp_open_hvbox(std_formatter, _a0_);} + function open_hovbox(_aZ_){return pp_open_hovbox(std_formatter, _aZ_);} + function open_box(_aY_){return pp_open_box(std_formatter, _aY_);} + function close_box(_aX_){return pp_close_box(std_formatter, _aX_);} + function open_tag(_aW_){return pp_open_tag(std_formatter, _aW_);} + function close_tag(_aV_){return pp_close_tag(std_formatter, _aV_);} + function open_stag(_aU_){return pp_open_stag(std_formatter, _aU_);} + function close_stag(_aT_){return pp_close_stag(std_formatter, _aT_);} + function print_as(_aR_, _aS_){ + return pp_print_as(std_formatter, _aR_, _aS_); + } + function print_string(_aQ_){return pp_print_string(std_formatter, _aQ_);} + function print_bytes(_aP_){return pp_print_bytes(std_formatter, _aP_);} + function print_int(_aO_){return pp_print_int(std_formatter, _aO_);} + function print_float(_aN_){return pp_print_float(std_formatter, _aN_);} + function print_char(_aM_){return pp_print_char(std_formatter, _aM_);} + function print_bool(_aL_){return pp_print_bool(std_formatter, _aL_);} + function print_break(_aJ_, _aK_){ + return pp_print_break(std_formatter, _aJ_, _aK_); + } + function print_cut(_aI_){return pp_print_cut(std_formatter, _aI_);} + function print_space(_aH_){return pp_print_space(std_formatter, _aH_);} + function force_newline(_aG_){return pp_force_newline(std_formatter, _aG_);} + function print_flush(_aF_){return pp_print_flush(std_formatter, _aF_);} + function print_newline(_aE_){return pp_print_newline(std_formatter, _aE_);} + function print_if_newline(_aD_){ + return pp_print_if_newline(std_formatter, _aD_); + } + function open_tbox(_aC_){return pp_open_tbox(std_formatter, _aC_);} + function close_tbox(_aB_){return pp_close_tbox(std_formatter, _aB_);} + function print_tbreak(_az_, _aA_){ + return pp_print_tbreak(std_formatter, _az_, _aA_); + } + function set_tab(_ay_){return pp_set_tab(std_formatter, _ay_);} + function print_tab(_ax_){return pp_print_tab(std_formatter, _ax_);} + function set_margin(_aw_){return pp_set_margin(std_formatter, _aw_);} + function get_margin(_av_){return std_formatter[6];} + function set_max_indent(_au_){ + return pp_set_max_indent(std_formatter, _au_); + } + function get_max_indent(_at_){return std_formatter[8];} + function set_geometry(_ar_, _as_){ + return pp_set_geometry(std_formatter, _ar_, _as_); + } + function safe_set_geometry(_ap_, _aq_){ + return pp_safe_set_geometry(std_formatter, _ap_, _aq_); + } + function get_geometry(_ao_){return pp_get_geometry(std_formatter, _ao_);} + function update_geometry(_an_){ + return pp_update_geometry(std_formatter, _an_); + } + function set_max_boxes(_am_){return pp_set_max_boxes(std_formatter, _am_);} + function get_max_boxes(_al_){return std_formatter[15];} + function over_max_boxes(_ak_){ + return pp_over_max_boxes(std_formatter, _ak_); + } + function set_ellipsis_text(_aj_){ + return pp_set_ellipsis_text(std_formatter, _aj_); + } + function get_ellipsis_text(_ai_){return std_formatter[16];} + function set_formatter_out_channel(_ah_){ + return pp_set_formatter_out_channel(std_formatter, _ah_); + } + function set_formatter_out_functions(_ag_){ + return pp_set_formatter_out_functions(std_formatter, _ag_); + } + function get_formatter_out_functions(_af_){ + return pp_get_formatter_out_functions(std_formatter, _af_); + } + function set_formatter_output_functions(_ad_, _ae_){ + return pp_set_formatter_output_functi(std_formatter, _ad_, _ae_); + } + function get_formatter_output_functions(_ac_){ + return pp_get_formatter_output_functi(std_formatter, _ac_); + } + function set_formatter_stag_functions(_ab_){ + return pp_set_formatter_stag_function(std_formatter, _ab_); + } + function get_formatter_stag_functions(_aa_){ + return pp_get_formatter_stag_function(std_formatter, _aa_); + } + function set_print_tags(_$_){return pp_set_print_tags(std_formatter, _$_);} + function get_print_tags(___){return std_formatter[22];} + function set_mark_tags(_Z_){return pp_set_mark_tags(std_formatter, _Z_);} + function get_mark_tags(_Y_){return std_formatter[23];} + function set_tags(_X_){return pp_set_tags(std_formatter, _X_);} + function pp_print_list(opt, pp_v, ppf, param){ + var opt$0 = opt, param$0 = param; + for(;;){ + if(opt$0) + var sth = opt$0[1], pp_sep = sth; + else + var pp_sep = pp_print_cut; + if(! param$0) return 0; + var v = param$0[1]; + if(! param$0[2]) return caml_call2(pp_v, ppf, v); + var vs = param$0[2]; + caml_call2(pp_v, ppf, v); + caml_call2(pp_sep, ppf, 0); + var opt$1 = [0, pp_sep], opt$0 = opt$1, param$0 = vs; + } + } + function pp_print_seq(opt, pp_v, ppf, seq$1){ + if(opt) var sth = opt[1], pp_sep = sth; else var pp_sep = pp_print_cut; + var match$0 = caml_call1(seq$1, 0); + if(! match$0) return 0; + var seq$2 = match$0[2], v$0 = match$0[1]; + caml_call2(pp_v, ppf, v$0); + var seq = seq$2; + for(;;){ + var match = caml_call1(seq, 0); + if(! match) return 0; + var seq$0 = match[2], v = match[1]; + caml_call2(pp_sep, ppf, 0); + caml_call2(pp_v, ppf, v); + var seq = seq$0; + } + } + function pp_print_text(ppf, s){ + var len = caml_ml_string_length(s), left = [0, 0], right = [0, 0]; + function flush(param){ + pp_print_string + (ppf, caml_call3(Stdlib_String[15], s, left[1], right[1] - left[1] | 0)); + right[1]++; + left[1] = right[1]; + return 0; + } + for(;;){ + if(right[1] === len){ + var _W_ = left[1] !== len ? 1 : 0; + return _W_ ? flush(0) : _W_; + } + var match = runtime.caml_string_get(s, right[1]); + if(10 === match){ + flush(0); + pp_force_newline(ppf, 0); + } + else if(32 === match){flush(0); pp_print_space(ppf, 0);} else right[1]++; + } + } + function pp_print_option(opt, pp_v, ppf, param){ + if(opt) + var sth = opt[1], none = sth; + else + var none = function(param, _V_){return 0;}; + if(! param) return caml_call2(none, ppf, 0); + var v = param[1]; + return caml_call2(pp_v, ppf, v); + } + function pp_print_result(ok, error, ppf, param){ + if(0 === param[0]){var v = param[1]; return caml_call2(ok, ppf, v);} + var e = param[1]; + return caml_call2(error, ppf, e); + } + function pp_print_either(left, right, ppf, param){ + if(0 === param[0]){var l = param[1]; return caml_call2(left, ppf, l);} + var r = param[1]; + return caml_call2(right, ppf, r); + } + function compute_tag(output, tag_acc){ + var + buf = caml_call1(Stdlib_Buffer[1], 16), + ppf = formatter_of_buffer(buf); + caml_call2(output, ppf, tag_acc); + pp_print_flush(ppf, 0); + var len = caml_call1(Stdlib_Buffer[7], buf); + return 2 <= len + ? caml_call3(Stdlib_Buffer[4], buf, 1, len - 2 | 0) + : caml_call1(Stdlib_Buffer[2], buf); + } + function output_formatting_lit(ppf, fmting_lit){ + if(typeof fmting_lit === "number") + switch(fmting_lit){ + case 0: + return pp_close_box(ppf, 0); + case 1: + return pp_close_tag(ppf, 0); + case 2: + return pp_print_flush(ppf, 0); + case 3: + return pp_force_newline(ppf, 0); + case 4: + return pp_print_newline(ppf, 0); + case 5: + return pp_print_char(ppf, 64); + default: return pp_print_char(ppf, 37); + } + switch(fmting_lit[0]){ + case 0: + var offset = fmting_lit[3], width = fmting_lit[2]; + return pp_print_break(ppf, width, offset); + case 1: + return 0; + default: + var c = fmting_lit[1]; + pp_print_char(ppf, 64); + return pp_print_char(ppf, c); + } + } + function output_acc(ppf, acc){ + var switch$0 = 0; + if(typeof acc === "number") return 0; + switch(acc[0]){ + case 0: + var f = acc[2], p = acc[1]; + output_acc(ppf, p); + return output_formatting_lit(ppf, f); + case 1: + var match = acc[2], p$0 = acc[1]; + if(0 === match[0]){ + var acc$0 = match[1]; + output_acc(ppf, p$0); + return pp_open_stag + (ppf, [0, String_tag, compute_tag(output_acc, acc$0)]); + } + var acc$1 = match[1]; + output_acc(ppf, p$0); + var + _M_ = compute_tag(output_acc, acc$1), + match$0 = caml_call1(CamlinternalFormat[20], _M_), + bty = match$0[2], + indent = match$0[1]; + return pp_open_box_gen(ppf, indent, bty); + case 2: + var _N_ = acc[1], switch$1 = 0; + if(typeof _N_ === "number" || ! (0 === _N_[0])) + switch$1 = 1; + else{ + var _O_ = _N_[2], switch$2 = 0; + if(typeof _O_ === "number" || ! (1 === _O_[0])) + switch$2 = 1; + else + var s$0 = acc[2], size = _O_[2], p$2 = _N_[1]; + if(switch$2) switch$1 = 1; + } + if(switch$1){var s = acc[2], p$1 = _N_; switch$0 = 2;} + break; + case 3: + var _P_ = acc[1], switch$3 = 0; + if(typeof _P_ === "number" || ! (0 === _P_[0])) + switch$3 = 1; + else{ + var _Q_ = _P_[2], switch$4 = 0; + if(typeof _Q_ === "number" || ! (1 === _Q_[0])) + switch$4 = 1; + else{var c$0 = acc[2], size$0 = _Q_[2], p$4 = _P_[1]; switch$0 = 1;} + if(switch$4) switch$3 = 1; + } + if(switch$3){var c = acc[2], p$3 = _P_; switch$0 = 3;} + break; + case 4: + var _R_ = acc[1], switch$5 = 0; + if(typeof _R_ === "number" || ! (0 === _R_[0])) + switch$5 = 1; + else{ + var _S_ = _R_[2], switch$6 = 0; + if(typeof _S_ === "number" || ! (1 === _S_[0])) + switch$6 = 1; + else + var s$0 = acc[2], size = _S_[2], p$2 = _R_[1]; + if(switch$6) switch$5 = 1; + } + if(switch$5){var s = acc[2], p$1 = _R_; switch$0 = 2;} + break; + case 5: + var _T_ = acc[1], switch$7 = 0; + if(typeof _T_ === "number" || ! (0 === _T_[0])) + switch$7 = 1; + else{ + var _U_ = _T_[2], switch$8 = 0; + if(typeof _U_ === "number" || ! (1 === _U_[0])) + switch$8 = 1; + else{var c$0 = acc[2], size$0 = _U_[2], p$4 = _T_[1]; switch$0 = 1;} + if(switch$8) switch$7 = 1; + } + if(switch$7){var c = acc[2], p$3 = _T_; switch$0 = 3;} + break; + case 6: + var f$0 = acc[2], p$5 = acc[1]; + output_acc(ppf, p$5); + return caml_call1(f$0, ppf); + case 7: + var p$6 = acc[1]; output_acc(ppf, p$6); return pp_print_flush(ppf, 0); + default: + var msg = acc[2], p$7 = acc[1]; + output_acc(ppf, p$7); + return caml_call1(Stdlib[1], msg); + } + switch(switch$0){ + case 0: + output_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); + case 1: + output_acc(ppf, p$4); + return pp_print_as_size + (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); + case 2: + output_acc(ppf, p$1); return pp_print_string(ppf, s); + default: output_acc(ppf, p$3); return pp_print_char(ppf, c); + } + } + function strput_acc(ppf, acc){ + var switch$0 = 0; + if(typeof acc === "number") return 0; + switch(acc[0]){ + case 0: + var f = acc[2], p = acc[1]; + strput_acc(ppf, p); + return output_formatting_lit(ppf, f); + case 1: + var match = acc[2], p$0 = acc[1]; + if(0 === match[0]){ + var acc$0 = match[1]; + strput_acc(ppf, p$0); + return pp_open_stag + (ppf, [0, String_tag, compute_tag(strput_acc, acc$0)]); + } + var acc$1 = match[1]; + strput_acc(ppf, p$0); + var + _D_ = compute_tag(strput_acc, acc$1), + match$0 = caml_call1(CamlinternalFormat[20], _D_), + bty = match$0[2], + indent = match$0[1]; + return pp_open_box_gen(ppf, indent, bty); + case 2: + var _E_ = acc[1], switch$1 = 0; + if(typeof _E_ === "number" || ! (0 === _E_[0])) + switch$1 = 1; + else{ + var _F_ = _E_[2], switch$2 = 0; + if(typeof _F_ === "number" || ! (1 === _F_[0])) + switch$2 = 1; + else + var s$0 = acc[2], size = _F_[2], p$2 = _E_[1]; + if(switch$2) switch$1 = 1; + } + if(switch$1){var s = acc[2], p$1 = _E_; switch$0 = 2;} + break; + case 3: + var _G_ = acc[1], switch$3 = 0; + if(typeof _G_ === "number" || ! (0 === _G_[0])) + switch$3 = 1; + else{ + var _H_ = _G_[2], switch$4 = 0; + if(typeof _H_ === "number" || ! (1 === _H_[0])) + switch$4 = 1; + else{var c$0 = acc[2], size$0 = _H_[2], p$4 = _G_[1]; switch$0 = 1;} + if(switch$4) switch$3 = 1; + } + if(switch$3){var c = acc[2], p$3 = _G_; switch$0 = 3;} + break; + case 4: + var _I_ = acc[1], switch$5 = 0; + if(typeof _I_ === "number" || ! (0 === _I_[0])) + switch$5 = 1; + else{ + var _J_ = _I_[2], switch$6 = 0; + if(typeof _J_ === "number" || ! (1 === _J_[0])) + switch$6 = 1; + else + var s$0 = acc[2], size = _J_[2], p$2 = _I_[1]; + if(switch$6) switch$5 = 1; + } + if(switch$5){var s = acc[2], p$1 = _I_; switch$0 = 2;} + break; + case 5: + var _K_ = acc[1], switch$7 = 0; + if(typeof _K_ === "number" || ! (0 === _K_[0])) + switch$7 = 1; + else{ + var _L_ = _K_[2], switch$8 = 0; + if(typeof _L_ === "number" || ! (1 === _L_[0])) + switch$8 = 1; + else{var c$0 = acc[2], size$0 = _L_[2], p$4 = _K_[1]; switch$0 = 1;} + if(switch$8) switch$7 = 1; + } + if(switch$7){var c = acc[2], p$3 = _K_; switch$0 = 3;} + break; + case 6: + var p$5 = acc[1]; + if(typeof p$5 !== "number" && 0 === p$5[0]){ + var match$1 = p$5[2]; + if(typeof match$1 !== "number" && 1 === match$1[0]){ + var f$1 = acc[2], size$1 = match$1[2], p$6 = p$5[1]; + strput_acc(ppf, p$6); + return pp_print_as_size(ppf, size$1, caml_call1(f$1, 0)); + } + } + var f$0 = acc[2]; + strput_acc(ppf, p$5); + return pp_print_string(ppf, caml_call1(f$0, 0)); + case 7: + var p$7 = acc[1]; strput_acc(ppf, p$7); return pp_print_flush(ppf, 0); + default: + var msg = acc[2], p$8 = acc[1]; + strput_acc(ppf, p$8); + return caml_call1(Stdlib[1], msg); + } + switch(switch$0){ + case 0: + strput_acc(ppf, p$2); return pp_print_as_size(ppf, size, s$0); + case 1: + strput_acc(ppf, p$4); + return pp_print_as_size + (ppf, size$0, caml_call2(Stdlib_String[1], 1, c$0)); + case 2: + strput_acc(ppf, p$1); return pp_print_string(ppf, s); + default: strput_acc(ppf, p$3); return pp_print_char(ppf, c); + } + } + function kfprintf(k, ppf, param){ + var fmt = param[1], _B_ = 0; + function _C_(acc){output_acc(ppf, acc); return caml_call1(k, ppf);} + return caml_call3(CamlinternalFormat[7], _C_, _B_, fmt); + } + function ikfprintf(k, ppf, param){ + var fmt = param[1]; + return caml_call3(CamlinternalFormat[8], k, ppf, fmt); + } + function ifprintf(ppf, param){ + var fmt = param[1], _y_ = 0; + function _z_(_A_){return 0;} + return caml_call3(CamlinternalFormat[8], _z_, _y_, fmt); + } + function fprintf(ppf){ + function _v_(_x_){return 0;} + return function(_w_){return kfprintf(_v_, ppf, _w_);}; + } + function printf(fmt){return caml_call1(fprintf(std_formatter), fmt);} + function eprintf(fmt){return caml_call1(fprintf(err_formatter), fmt);} + function kdprintf(k, param){ + var fmt = param[1], _t_ = 0; + function _u_(acc){ + return caml_call1(k, function(ppf){return output_acc(ppf, acc);}); + } + return caml_call3(CamlinternalFormat[7], _u_, _t_, fmt); + } + function dprintf(fmt){return kdprintf(function(i){return i;}, fmt);} + function ksprintf(k, param){ + var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); + function k$0(acc){ + strput_acc(ppf, acc); + return caml_call1(k, flush_buffer_formatter(b, ppf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function sprintf(fmt){return ksprintf(id, fmt);} + function kasprintf(k, param){ + var fmt = param[1], b = pp_make_buffer(0), ppf = formatter_of_buffer(b); + function k$0(acc){ + output_acc(ppf, acc); + return caml_call1(k, flush_buffer_formatter(b, ppf)); + } + return caml_call3(CamlinternalFormat[7], k$0, 0, fmt); + } + function asprintf(fmt){return kasprintf(id, fmt);} + function flush_standard_formatters(param){ + pp_print_flush(std_formatter, 0); + return pp_print_flush(err_formatter, 0); + } + caml_call1(Stdlib[100], flush_standard_formatters); + function pp_set_all_formatter_output_fu(state, f, g, h, i){ + pp_set_formatter_output_functi(state, f, g); + state[19] = h; + state[20] = i; + return 0; + } + function pp_get_all_formatter_output_fu(state, param){ + return [0, state[17], state[18], state[19], state[20]]; + } + function set_all_formatter_output_funct(_p_, _q_, _r_, _s_){ + return pp_set_all_formatter_output_fu(std_formatter, _p_, _q_, _r_, _s_); + } + function get_all_formatter_output_funct(_o_){ + return pp_get_all_formatter_output_fu(std_formatter, _o_); + } + function bprintf(b, param){ + var fmt = param[1], ppf = formatter_of_buffer(b); + function k(acc){output_acc(ppf, acc); return pp_flush_queue(ppf, 0);} + return caml_call3(CamlinternalFormat[7], k, 0, fmt); + } + function pp_set_formatter_tag_functions(state, param){ + var pct = param[4], pot = param[3], mct = param[2], mot = param[1]; + function stringify(f, e, param){ + if(param[1] !== String_tag) return e; + var s = param[2]; + return caml_call1(f, s); + } + state[24] = function(_n_){return stringify(mot, cst$15, _n_);}; + state[25] = function(_m_){return stringify(mct, cst$16, _m_);}; + var _i_ = 0; + state[26] = function(_l_){return stringify(pot, _i_, _l_);}; + var _j_ = 0; + state[27] = function(_k_){return stringify(pct, _j_, _k_);}; + return 0; + } + function pp_get_formatter_tag_functions(fmt, param){ + var funs = pp_get_formatter_stag_function(fmt, 0); + function mark_open_tag(s){return caml_call1(funs[1], [0, String_tag, s]);} + function mark_close_tag(s){ + return caml_call1(funs[2], [0, String_tag, s]); + } + function print_open_tag(s){ + return caml_call1(funs[3], [0, String_tag, s]); + } + function print_close_tag(s){ + return caml_call1(funs[4], [0, String_tag, s]); + } + return [0, mark_open_tag, mark_close_tag, print_open_tag, print_close_tag]; + } + function set_formatter_tag_functions(_h_){ + return pp_set_formatter_tag_functions(std_formatter, _h_); + } + function get_formatter_tag_functions(_g_){ + return pp_get_formatter_tag_functions(std_formatter, _g_); + } + var + Stdlib_Format = [0, pp_open_box, open_box, @@ -24913,17 +27504,17 @@ pp_open_hovbox, open_hovbox, pp_print_string, - print_string$0, + print_string, pp_print_bytes, - print_bytes$0, + print_bytes, pp_print_as, print_as, pp_print_int, - print_int$0, + print_int, pp_print_float, - print_float$0, + print_float, pp_print_char, - print_char$0, + print_char, pp_print_bool, print_bool, pp_print_space, @@ -24940,7 +27531,7 @@ pp_print_flush, print_flush, pp_print_newline, - print_newline$0, + print_newline, pp_set_margin, set_margin, pp_get_margin, @@ -25028,20 +27619,20 @@ pp_print_option, pp_print_result, pp_print_either, - fprintf$0, - printf$0, - eprintf$0, - sprintf$0, + fprintf, + printf, + eprintf, + sprintf, asprintf, dprintf, - ifprintf$0, - kfprintf$0, + ifprintf, + kfprintf, kdprintf, - ikfprintf$0, - kprintf, + ikfprintf, + ksprintf, kasprintf, - bprintf$0, - kprintf, + bprintf, + ksprintf, set_all_formatter_output_funct, get_all_formatter_output_funct, pp_set_all_formatter_output_fu, @@ -25054,1865 +27645,778 @@ set_formatter_tag_functions, pp_get_formatter_tag_functions, get_formatter_tag_functions]; - caml_register_global(818,Stdlib_Format,"Stdlib__Format"); - var null_char=0; - function next_char(ib) - {try - {var c=caml_call1(ib[7],0); - ib[2] = c; - ib[3] = 1; - ib[4] = ib[4] + 1 | 0; - if(10 === c)ib[5] = ib[5] + 1 | 0; - return c} - catch(_jX_) - {_jX_ = caml_wrap_exception(_jX_); - if(_jX_ !== End_of_file)throw _jX_; - ib[2] = null_char; - ib[3] = 0; - ib[1] = 1; - return null_char}} - function peek_char(ib){return ib[3]?ib[2]:next_char(ib)} - function checked_peek_char(ib) - {var c=peek_char(ib);if(ib[1])throw End_of_file;return c} - function end_of_input(ib){peek_char(ib);return ib[1]} - function beginning_of_input(ib){return 0 === ib[4]?1:0} - function name_of_input(ib) - {var _jW_=ib[9]; - if(typeof _jW_ === "number") - return 0 === _jW_?cst_unnamed_function:cst_unnamed_character_string; - if(0 === _jW_[0])return cst_unnamed_Stdlib_input_chann; - var fname=_jW_[1]; - return fname} - function char_count(ib){return ib[3]?ib[4] - 1 | 0:ib[4]} - function reset_token(ib){return reset(ib[8])} - function invalidate_current_char(ib){ib[3] = 0;return 0} - function token_string(ib) - {var token_buffer=ib[8],tok=contents(token_buffer); - clear$1(token_buffer); - ib[6] = ib[6] + 1 | 0; - return tok} - function skip_char(width,ib){invalidate_current_char(ib);return width} - function ignore_char(width,ib){return skip_char(width - 1 | 0,ib)} - function store_char(width,ib,c) - {add_char(ib[8],c);return ignore_char(width,ib)} - var default_token_buffer_size=1024; - function create$4(iname,next) - {return [0, - 0, - null_char, - 0, - 0, - 0, - 0, - next, - create$2(default_token_buffer_size), - iname]} - function from_string$1(s) - {var i=[0,0],len=caml_ml_string_length(s); - function next(param) - {if(len <= i[1])throw End_of_file; - var c=caml_string_get(s,i[1]); - i[1]++; - return c} - return create$4(1,next)} - var _cp_=0; - function from_function$0(_jV_){return create$4(_cp_,_jV_)} - var len=1024; - function scan_close_at_end(ic) - {caml_ml_close_channel(ic);throw End_of_file} - function scan_raise_at_end(ic){throw End_of_file} - function from_ic(scan_close_ic,iname,ic) - {var buf=caml_create_bytes(1024),i=[0,0],lim=[0,0],eof=[0,0]; - function next(param) - {if(i[1] < lim[1]){var c=caml_bytes_get(buf,i[1]);i[1]++;return c} - if(eof[1])throw End_of_file; - lim[1] = input(ic,buf,0,len); - return 0 === lim[1] - ?(eof[1] = 1,caml_call1(scan_close_ic,ic)) - :(i[1] = 1,caml_bytes_get(buf,0))} - return create$4(iname,next)} - var stdib=from_ic(scan_raise_at_end,[1,cst$86,stdin],stdin); - function open_in_file(open_in,fname) - {if(! caml_string_notequal(fname,cst$87))return stdib; - var ic=caml_call1(open_in,fname); - return from_ic(scan_close_at_end,[1,fname,ic],ic)} - function from_file(_jU_){return open_in_file(open_text$0,_jU_)} - function from_file_bin(_jT_){return open_in_file(open_bin$0,_jT_)} - function from_channel$0(ic){return from_ic(scan_raise_at_end,[0,ic],ic)} - function close_in(ib) - {var _jS_=ib[9]; - if(typeof _jS_ === "number")return 0; - if(0 === _jS_[0]){var ic=_jS_[1];return caml_ml_close_channel(ic)} - var ic$0=_jS_[2]; - return caml_ml_close_channel(ic$0)} - var memo=[0,0]; - function memo_from_ic(scan_close_ic,ic) - {try - {var _jQ_=assq(ic,memo[1]);return _jQ_} - catch(_jR_) - {_jR_ = caml_wrap_exception(_jR_); - if(_jR_ !== Not_found)throw _jR_; - var ib=from_ic(scan_close_ic,[0,ic],ic); - memo[1] = [0,[0,ic,ib],memo[1]]; - return ib}} - function memo_from_channel(_jP_) - {return memo_from_ic(scan_raise_at_end,_jP_)} - var Scan_failure=[248,cst_Stdlib_Scanf_Scan_failure,caml_fresh_oo_id(0)]; - function bad_input(s){throw [0,Scan_failure,s]} - function bad_input_escape(c) - {return bad_input(caml_call1(sprintf(_cq_),c))} - function bad_token_length(message) - {return bad_input(caml_call1(sprintf(_cr_),message))} - function bad_float(param) - {return bad_input(cst_no_dot_or_exponent_part_fo)} - function bad_hex_float(param) - {return bad_input(cst_not_a_valid_float_in_hexad)} - function character_mismatch(c,ci) - {return bad_input(caml_call2(sprintf(_ct_),c,ci))} - function check_this_char(ib,c) - {var ci=checked_peek_char(ib); - return ci === c?invalidate_current_char(ib):character_mismatch(c,ci)} - function check_char(ib,c$0) - {if(10 === c$0) - {var ci=checked_peek_char(ib); - return 10 === ci - ?invalidate_current_char(ib) - :13 === ci - ?(invalidate_current_char(ib),check_this_char(ib,10)) - :character_mismatch(10,ci)} - if(32 !== c$0)return check_this_char(ib,c$0); - for(;;) - {var c=peek_char(ib),_jN_=1 - ib[1]; - if(! _jN_)return _jN_; - var _jO_=c - 9 | 0,switch$0=0; - if(4 < _jO_ >>> 0) - {if(23 === _jO_)switch$0 = 1} - else - if(1 < _jO_ - 2 >>> 0)switch$0 = 1; - if(! switch$0)return 0; - invalidate_current_char(ib)}} - function token_char(ib){return caml_string_get(token_string(ib),0)} - function token_bool(ib) - {var s=token_string(ib); - return caml_string_notequal(s,cst_false$3) - ?caml_string_notequal(s,cst_true$3) - ?bad_input(caml_call1(sprintf(_cu_),s)) - :1 - :0} - function integer_conversion_of_char(param) - {var switcher=param - 88 | 0; - if(32 >= switcher >>> 0) - switch(switcher) - {case 10:return 0; - case 12:return 1; - case 17:return 2; - case 23:return 3; - case 29:return 4; - case 0: - case 32:return 5 - } - throw [0,Assert_failure,_cv_]} - function token_int_literal(conv,ib) - {switch(conv) - {case 0:var tok=cat(cst_0b,token_string(ib));break; - case 3:var tok=cat(cst_0o,token_string(ib));break; - case 4:var tok=cat(cst_0u,token_string(ib));break; - case 5:var tok=cat(cst_0x,token_string(ib));break; - default:var tok=token_string(ib)} - var l=caml_ml_string_length(tok); - if(0 !== l && 43 === caml_string_get(tok,0)) - return sub$0(tok,1,l - 1 | 0); - return tok} - function token_float(ib){return caml_float_of_string(token_string(ib))} - function scan_decimal_digit_star(width,ib) - {var width$0=width; - for(;;) - {if(0 === width$0)return width$0; - var c=peek_char(ib); - if(ib[1])return width$0; - if(58 <= c) - {if(95 === c) - {var width$1=ignore_char(width$0,ib),width$0=width$1;continue}} - else - if(48 <= c) - {var width$2=store_char(width$0,ib,c),width$0=width$2;continue} - return width$0}} - function scan_unsigned_decimal_int(width,ib) - {if(0 === width)return bad_token_length(cst_decimal_digits); - var c=checked_peek_char(ib); - if(9 < c - 48 >>> 0)return bad_input(caml_call1(sprintf(_cw_),c)); - var width$0=store_char(width,ib,c); - return scan_decimal_digit_star(width$0,ib)} - function scan_digit_plus(basis,digitp,width$2,ib) - {if(0 === width$2)return bad_token_length(cst_digits); - var c$0=checked_peek_char(ib); - if(! caml_call1(digitp,c$0)) - return bad_input(caml_call2(sprintf(_cx_),c$0,basis)); - var width$3=store_char(width$2,ib,c$0),width=width$3; - for(;;) - {if(0 === width)return width; - var c=peek_char(ib); - if(ib[1])return width; - if(caml_call1(digitp,c)) - {var width$0=store_char(width,ib,c),width=width$0;continue} - if(95 !== c)return width; - var width$1=ignore_char(width,ib),width=width$1}} - function is_binary_digit(param){return 1 < param - 48 >>> 0?0:1} - function scan_binary_int(_jL_,_jM_) - {return scan_digit_plus(cst_binary,is_binary_digit,_jL_,_jM_)} - function is_octal_digit(param){return 7 < param - 48 >>> 0?0:1} - function scan_octal_int(_jJ_,_jK_) - {return scan_digit_plus(cst_octal,is_octal_digit,_jJ_,_jK_)} - function is_hexa_digit(param) - {var _jI_=param - 48 | 0,switch$0=0; - if(22 < _jI_ >>> 0) - {if(5 >= _jI_ - 49 >>> 0)switch$0 = 1} - else - if(6 < _jI_ - 10 >>> 0)switch$0 = 1; - return switch$0?1:0} - function scan_hexadecimal_int(_jG_,_jH_) - {return scan_digit_plus(cst_hexadecimal,is_hexa_digit,_jG_,_jH_)} - function scan_sign(width,ib) - {var c=checked_peek_char(ib),switcher=c - 43 | 0; - if(2 >= switcher >>> 0) - switch(switcher) - {case 0:return store_char(width,ib,c); - case 1:break; - default:return store_char(width,ib,c)} - return width} - function scan_optionally_signed_decimal(width,ib) - {var width$0=scan_sign(width,ib); - return scan_unsigned_decimal_int(width$0,ib)} - function scan_int_conversion(conv,width$1,ib) - {switch(conv) - {case 0:return scan_binary_int(width$1,ib); - case 1:return scan_optionally_signed_decimal(width$1,ib); + runtime.caml_register_global(36, Stdlib_Format, "Stdlib__Format"); + return; + } + (globalThis)); + +//# 22293 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_register_named_value = runtime.caml_register_named_value, + global_data = runtime.caml_get_global_data(), + Stdlib_Obj = global_data.Stdlib__Obj, + register = caml_register_named_value; + function register_exception(name, exn){ + var + _a_ = Stdlib_Obj[8], + slot = runtime.caml_obj_tag(exn) === _a_ ? exn : exn[1]; + return caml_register_named_value(name, slot); + } + var Stdlib_Callback = [0, register, register_exception]; + runtime.caml_register_global(1, Stdlib_Callback, "Stdlib__Callback"); + return; + } + (globalThis)); + +//# 22316 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_camlinternalOO_ml = "camlinternalOO.ml", + caml_check_bound = runtime.caml_check_bound, + caml_div = runtime.caml_div, + caml_get_public_method = runtime.caml_get_public_method, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_obj_block = runtime.caml_obj_block, + caml_set_oo_id = runtime.caml_set_oo_id, + caml_string_compare = runtime.caml_string_compare, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Obj = global_data.Stdlib__Obj, + Stdlib = global_data.Stdlib, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Map = global_data.Stdlib__Map, + _g_ = [0, cst_camlinternalOO_ml, 439, 17], + _f_ = [0, cst_camlinternalOO_ml, 421, 13], + _e_ = [0, cst_camlinternalOO_ml, 418, 13], + _d_ = [0, cst_camlinternalOO_ml, 415, 13], + _c_ = [0, cst_camlinternalOO_ml, 412, 13], + _b_ = [0, cst_camlinternalOO_ml, 409, 13], + _a_ = [0, cst_camlinternalOO_ml, 281, 50]; + function copy(o){var o$0 = o.slice(); return caml_set_oo_id(o$0);} + var params = [0, 1, 1, 1, 3, 16], initial_object_size = 2, dummy_item = 0; + function public_method_label(s){ + var + accu = [0, 0], + _aE_ = runtime.caml_ml_string_length(s) - 1 | 0, + _aD_ = 0; + if(_aE_ >= 0){ + var i = _aD_; + for(;;){ + var _aF_ = runtime.caml_string_get(s, i); + accu[1] = (223 * accu[1] | 0) + _aF_ | 0; + var _aG_ = i + 1 | 0; + if(_aE_ !== i){var i = _aG_; continue;} + break; + } + } + accu[1] = accu[1] & 2147483647; + var tag = 1073741823 < accu[1] ? accu[1] + 2147483648 | 0 : accu[1]; + return tag; + } + var + compare = caml_string_compare, + Vars = caml_call1(Stdlib_Map[1], [0, compare]), + compare$0 = caml_string_compare, + Meths = caml_call1(Stdlib_Map[1], [0, compare$0]), + compare$1 = runtime.caml_int_compare, + Labs = caml_call1(Stdlib_Map[1], [0, compare$1]), + dummy_table = [0, 0, [0, dummy_item], Meths[1], Labs[1], 0, 0, Vars[1], 0], + table_count = [0, 0], + dummy_met = caml_obj_block(0, 0); + function fit_size(n){ + return 2 < n ? fit_size((n + 1 | 0) / 2 | 0) * 2 | 0 : n; + } + function new_table(pub_labels){ + table_count[1]++; + var + len = pub_labels.length - 1, + methods = caml_make_vect((len * 2 | 0) + 2 | 0, dummy_met); + caml_check_bound(methods, 0)[1] = len; + var + _aw_ = Stdlib_Sys[9], + _ax_ = (runtime.caml_mul(fit_size(len), _aw_) / 8 | 0) - 1 | 0; + caml_check_bound(methods, 1)[2] = _ax_; + var _az_ = len - 1 | 0, _ay_ = 0; + if(_az_ >= 0){ + var i = _ay_; + for(;;){ + var + _aB_ = (i * 2 | 0) + 3 | 0, + _aA_ = caml_check_bound(pub_labels, i)[1 + i]; + caml_check_bound(methods, _aB_)[1 + _aB_] = _aA_; + var _aC_ = i + 1 | 0; + if(_az_ !== i){var i = _aC_; continue;} + break; + } + } + return [0, + initial_object_size, + methods, + Meths[1], + Labs[1], + 0, + 0, + Vars[1], + 0]; + } + function resize(array, new_size){ + var old_size = array[2].length - 1, _au_ = old_size < new_size ? 1 : 0; + if(_au_){ + var new_buck = caml_make_vect(new_size, dummy_met); + caml_call5(Stdlib_Array[10], array[2], 0, new_buck, 0, old_size); + array[2] = new_buck; + var _av_ = 0; + } + else + var _av_ = _au_; + return _av_; + } + var method_count = [0, 0], inst_var_count = [0, 0]; + function new_method(table){ + var index = table[2].length - 1; + resize(table, index + 1 | 0); + return index; + } + function get_method_label(table, name){ + try{var _as_ = caml_call2(Meths[28], name, table[3]); return _as_;} + catch(_at_){ + var _ar_ = caml_wrap_exception(_at_); + if(_ar_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ar_, 0); + var label = new_method(table); + table[3] = caml_call3(Meths[4], name, label, table[3]); + table[4] = caml_call3(Labs[4], label, 1, table[4]); + return label; + } + } + function get_method_labels(table, names){ + function _ap_(_aq_){return get_method_label(table, _aq_);} + return caml_call2(Stdlib_Array[15], _ap_, names); + } + function set_method(table, label, element){ + method_count[1]++; + return caml_call2(Labs[28], label, table[4]) + ? (resize + (table, label + 1 | 0), + caml_check_bound(table[2], label)[1 + label] = element, + 0) + : (table[6] = [0, [0, label, element], table[6]], 0); + } + function get_method(table, label){ + try{var _an_ = caml_call2(Stdlib_List[46], label, table[6]); return _an_;} + catch(_ao_){ + var _am_ = caml_wrap_exception(_ao_); + if(_am_ === Stdlib[8]) + return caml_check_bound(table[2], label)[1 + label]; + throw caml_maybe_attach_backtrace(_am_, 0); + } + } + function to_list(arr){ + return 0 === arr ? 0 : caml_call1(Stdlib_Array[11], arr); + } + function narrow(table, vars, virt_meths, concr_meths){ + var + vars$0 = to_list(vars), + virt_meths$0 = to_list(virt_meths), + concr_meths$0 = to_list(concr_meths); + function _X_(_al_){return get_method_label(table, _al_);} + var virt_meth_labs = caml_call2(Stdlib_List[19], _X_, virt_meths$0); + function _Y_(_ak_){return get_method_label(table, _ak_);} + var concr_meth_labs = caml_call2(Stdlib_List[19], _Y_, concr_meths$0); + table[5] = + [0, + [0, table[3], table[4], table[6], table[7], virt_meth_labs, vars$0], + table[5]]; + var _Z_ = Vars[1], ___ = table[7]; + function _$_(lab, info, tvars){ + return caml_call2(Stdlib_List[36], lab, vars$0) + ? caml_call3(Vars[4], lab, info, tvars) + : tvars; + } + table[7] = caml_call3(Vars[13], _$_, ___, _Z_); + var by_name = [0, Meths[1]], by_label = [0, Labs[1]]; + function _aa_(met, label){ + by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); + var _af_ = by_label[1]; + try{var _ai_ = caml_call2(Labs[28], label, table[4]), _ah_ = _ai_;} + catch(_aj_){ + var _ag_ = caml_wrap_exception(_aj_); + if(_ag_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_ag_, 0); + var _ah_ = 1; + } + by_label[1] = caml_call3(Labs[4], label, _ah_, _af_); + return 0; + } + caml_call3(Stdlib_List[27], _aa_, concr_meths$0, concr_meth_labs); + function _ab_(met, label){ + by_name[1] = caml_call3(Meths[4], met, label, by_name[1]); + by_label[1] = caml_call3(Labs[4], label, 0, by_label[1]); + return 0; + } + caml_call3(Stdlib_List[27], _ab_, virt_meths$0, virt_meth_labs); + table[3] = by_name[1]; + table[4] = by_label[1]; + var _ac_ = 0, _ad_ = table[6]; + function _ae_(met, hm){ + var lab = met[1]; + return caml_call2(Stdlib_List[36], lab, virt_meth_labs) + ? hm + : [0, met, hm]; + } + table[6] = caml_call3(Stdlib_List[26], _ae_, _ad_, _ac_); + return 0; + } + function widen(table){ + var + match = caml_call1(Stdlib_List[5], table[5]), + vars = match[6], + virt_meths = match[5], + saved_vars = match[4], + saved_hidden_meths = match[3], + by_label = match[2], + by_name = match[1]; + table[5] = caml_call1(Stdlib_List[6], table[5]); + function _T_(s, v){ + var _W_ = caml_call2(Vars[28], v, table[7]); + return caml_call3(Vars[4], v, _W_, s); + } + table[7] = caml_call3(Stdlib_List[25], _T_, saved_vars, vars); + table[3] = by_name; + table[4] = by_label; + var _U_ = table[6]; + function _V_(met, hm){ + var lab = met[1]; + return caml_call2(Stdlib_List[36], lab, virt_meths) ? hm : [0, met, hm]; + } + table[6] = caml_call3(Stdlib_List[26], _V_, _U_, saved_hidden_meths); + return 0; + } + function new_variable(table, name){ + try{var _R_ = caml_call2(Vars[28], name, table[7]); return _R_;} + catch(_S_){ + var _Q_ = caml_wrap_exception(_S_); + if(_Q_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_Q_, 0); + var index = table[1]; + table[1] = index + 1 | 0; + if(runtime.caml_string_notequal(name, "")) + table[7] = caml_call3(Vars[4], name, index, table[7]); + return index; + } + } + function to_array(arr){return runtime.caml_equal(arr, 0) ? [0] : arr;} + function new_methods_variables(table, meths, vals){ + var + meths$0 = to_array(meths), + nmeths = meths$0.length - 1, + nvals = vals.length - 1, + res = caml_make_vect(nmeths + nvals | 0, 0), + _I_ = nmeths - 1 | 0, + _H_ = 0; + if(_I_ >= 0){ + var i$0 = _H_; + for(;;){ + var + _O_ = get_method_label(table, caml_check_bound(meths$0, i$0)[1 + i$0]); + caml_check_bound(res, i$0)[1 + i$0] = _O_; + var _P_ = i$0 + 1 | 0; + if(_I_ !== i$0){var i$0 = _P_; continue;} + break; + } + } + var _K_ = nvals - 1 | 0, _J_ = 0; + if(_K_ >= 0){ + var i = _J_; + for(;;){ + var + _M_ = i + nmeths | 0, + _L_ = new_variable(table, caml_check_bound(vals, i)[1 + i]); + caml_check_bound(res, _M_)[1 + _M_] = _L_; + var _N_ = i + 1 | 0; + if(_K_ !== i){var i = _N_; continue;} + break; + } + } + return res; + } + function get_variable(table, name){ + try{var _F_ = caml_call2(Vars[28], name, table[7]); return _F_;} + catch(_G_){ + var _E_ = caml_wrap_exception(_G_); + if(_E_ === Stdlib[8]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + throw caml_maybe_attach_backtrace(_E_, 0); + } + } + function get_variables(table, names){ + function _C_(_D_){return get_variable(table, _D_);} + return caml_call2(Stdlib_Array[15], _C_, names); + } + function add_initializer(table, f){table[8] = [0, f, table[8]]; return 0;} + function create_table(public_methods){ + if(0 === public_methods) return new_table([0]); + var + tags = caml_call2(Stdlib_Array[15], public_method_label, public_methods), + table = new_table(tags); + function _B_(i, met){ + var lab = (i * 2 | 0) + 2 | 0; + table[3] = caml_call3(Meths[4], met, lab, table[3]); + table[4] = caml_call3(Labs[4], lab, 1, table[4]); + return 0; + } + caml_call2(Stdlib_Array[14], _B_, public_methods); + return table; + } + function init_class(table){ + inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; + table[8] = caml_call1(Stdlib_List[9], table[8]); + var _A_ = Stdlib_Sys[9]; + return resize + (table, + 3 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _A_) | 0); + } + function inherits(cla, vals, virt_meths, concr_meths, param, top){ + var env = param[4], super$0 = param[2]; + narrow(cla, vals, virt_meths, concr_meths); + var init = top ? caml_call2(super$0, cla, env) : caml_call1(super$0, cla); + widen(cla); + var _s_ = 0, _t_ = to_array(concr_meths); + function _u_(nm){return get_method(cla, get_method_label(cla, nm));} + var + _v_ = [0, caml_call2(Stdlib_Array[15], _u_, _t_), _s_], + _w_ = to_array(vals); + function _x_(_z_){return get_variable(cla, _z_);} + var + _y_ = [0, [0, init], [0, caml_call2(Stdlib_Array[15], _x_, _w_), _v_]]; + return caml_call1(Stdlib_Array[6], _y_); + } + function make_class(pub_meths, class_init){ + var + table = create_table(pub_meths), + env_init = caml_call1(class_init, table); + init_class(table); + return [0, caml_call1(env_init, 0), class_init, env_init, 0]; + } + function make_class_store(pub_meths, class_init, init_table){ + var + table = create_table(pub_meths), + env_init = caml_call1(class_init, table); + init_class(table); + init_table[2] = class_init; + init_table[1] = env_init; + return 0; + } + function dummy_class(loc){ + function undef(param){ + throw caml_maybe_attach_backtrace([0, Stdlib[15], loc], 1); + } + return [0, undef, undef, undef, 0]; + } + function create_object(table){ + var obj = caml_obj_block(Stdlib_Obj[8], table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj); + } + function create_object_opt(obj_0, table){ + if(obj_0) return obj_0; + var obj = caml_obj_block(Stdlib_Obj[8], table[1]); + obj[1] = table[2]; + return caml_set_oo_id(obj); + } + function iter_f(obj, param){ + var param$0 = param; + for(;;){ + if(! param$0) return 0; + var l = param$0[2], f = param$0[1]; + caml_call1(f, obj); + var param$0 = l; + } + } + function run_initializers(obj, table){ + var inits = table[8], _r_ = 0 !== inits ? 1 : 0; + return _r_ ? iter_f(obj, inits) : _r_; + } + function run_initializers_opt(obj_0, obj, table){ + if(obj_0) return obj; + var inits = table[8]; + if(0 !== inits) iter_f(obj, inits); + return obj; + } + function create_object_and_run_initiali(obj_0, table){ + if(obj_0) return obj_0; + var obj = create_object(table); + run_initializers(obj, table); + return obj; + } + function get_data(param){ + if(param) return param[2]; + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + } + function build_path(n, keys, tables){ + var res = [0, 0, 0, 0], r = [0, res], _o_ = 0; + if(n >= 0){ + var i = _o_; + for(;;){ + var _p_ = r[1]; + r[1] = [0, caml_check_bound(keys, i)[1 + i], _p_, 0]; + var _q_ = i + 1 | 0; + if(n !== i){var i = _q_; continue;} + break; + } + } + var v = r[1]; + if(! tables) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + tables[2] = v; + return res; + } + function lookup_tables(root, keys){ + var root_data = get_data(root); + if(! root_data) return build_path(keys.length - 1 - 1 | 0, keys, root); + var i$1 = keys.length - 1 - 1 | 0, i = i$1, tables$0 = root_data; + a: + for(;;){ + if(0 > i) return tables$0; + var key = caml_check_bound(keys, i)[1 + i], tables$1 = tables$0; + for(;;){ + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + if(tables$1[1] === key){ + var tables_data = get_data(tables$1); + if(! tables_data) + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + var i$0 = i - 1 | 0, i = i$0, tables$0 = tables_data; + continue a; + } + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _f_], 1); + var tables = tables$1[3]; + if(tables){var tables$1 = tables; continue;} + var next = [0, key, 0, 0]; + if(! tables$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + tables$1[3] = next; + return build_path(i - 1 | 0, keys, next); + } + } + } + function new_cache(table){ + var n = new_method(table), switch$0 = 0; + if(0 !== (n % 2 | 0)){ + var _n_ = Stdlib_Sys[9]; + if + ((2 + caml_div(caml_check_bound(table[2], 1)[2] * 16 | 0, _n_) | 0) >= n){var n$0 = new_method(table); switch$0 = 1;} + } + if(! switch$0) var n$0 = n; + caml_check_bound(table[2], n$0)[1 + n$0] = 0; + return n$0; + } + function set_methods(table, methods){ + var len = methods.length - 1, i = [0, 0]; + for(;;){ + if(i[1] >= len) return 0; + var + _h_ = i[1], + label = caml_check_bound(methods, _h_)[1 + _h_], + next = + function(param){ + i[1]++; + var _m_ = i[1]; + return caml_check_bound(methods, _m_)[1 + _m_]; + }, + clo = next(0); + if(typeof clo === "number") + switch(clo){ + case 0: + var + x = next(0), + clo$0 = function(x){return function(obj){return x;};}(x); + break; + case 1: + var + n = next(0), + clo$0 = function(n){return function(obj){return obj[1 + n];};}(n); + break; case 2: - var width$0=scan_sign(width$1,ib),c=checked_peek_char(ib); - if(48 !== c)return scan_unsigned_decimal_int(width$0,ib); - var width=store_char(width$0,ib,c); - if(0 === width)return width; - var c$0=peek_char(ib); - if(ib[1])return width; - var switch$0=0; - if(99 <= c$0) - {if(111 === c$0)return scan_octal_int(store_char(width,ib,c$0),ib); - if(120 === c$0)switch$0 = 1} - else - if(88 === c$0) - switch$0 = 1; - else - if(98 <= c$0)return scan_binary_int(store_char(width,ib,c$0),ib); - return switch$0 - ?scan_hexadecimal_int(store_char(width,ib,c$0),ib) - :scan_decimal_digit_star(width,ib); - case 3:return scan_octal_int(width$1,ib); - case 4:return scan_unsigned_decimal_int(width$1,ib); - default:return scan_hexadecimal_int(width$1,ib)}} - function scan_fractional_part(width,ib) - {if(0 === width)return width; - var c=peek_char(ib); - return ib[1] - ?width - :9 < c - 48 >>> 0 - ?width - :scan_decimal_digit_star(store_char(width,ib,c),ib)} - function scan_exponent_part(width,ib) - {if(0 === width)return width; - var c=peek_char(ib); - if(ib[1])return width; - if(69 !== c && 101 !== c)return width; - return scan_optionally_signed_decimal(store_char(width,ib,c),ib)} - function scan_float(width$1,precision,ib) - {var - width=scan_sign(width$1,ib), - width$0=scan_decimal_digit_star(width,ib); - if(0 === width$0)return [0,width$0,precision]; - var c=peek_char(ib); - if(ib[1])return [0,width$0,precision]; - if(46 !== c)return [0,scan_exponent_part(width$0,ib),precision]; - var - width$2=store_char(width$0,ib,c), - precision$0=min$1(width$2,precision), - width$3= - width$2 - - - (precision$0 - scan_fractional_part(precision$0,ib) | 0) - | - 0; - return [0,scan_exponent_part(width$3,ib),precision$0]} - function check_case_insensitive_string(width,ib,error,str) - {function lowercase(c) - {return 25 < c - 65 >>> 0?c:char_of_int((c - 65 | 0) + 97 | 0)} - var - len=caml_ml_string_length(str), - width$0=[0,width], - _jD_=len - 1 | 0, - _jC_=0; - if(_jD_ >= 0) - {var i=_jC_; - for(;;) - {var c=peek_char(ib),_jE_=lowercase(caml_string_get(str,i)); - if(lowercase(c) !== _jE_)caml_call1(error,0); - if(0 === width$0[1])caml_call1(error,0); - width$0[1] = store_char(width$0[1],ib,c); - var _jF_=i + 1 | 0; - if(_jD_ !== i){var i=_jF_;continue} - break}} - return width$0[1]} - function scan_hex_float(width,precision,ib) - {var _jp_=0 === width?1:0,_jq_=_jp_ || end_of_input(ib); - if(_jq_)bad_hex_float(0); - var - width$0=scan_sign(width,ib), - _jr_=0 === width$0?1:0, - _js_=_jr_ || end_of_input(ib); - if(_js_)bad_hex_float(0); - var c=peek_char(ib),switch$0=0; - if(78 <= c) - {var switcher=c - 79 | 0; - if(30 < switcher >>> 0) - {if(32 > switcher) - {var - width$1=store_char(width$0,ib,c), - _jt_=0 === width$1?1:0, - _ju_=_jt_ || end_of_input(ib); - if(_ju_)bad_hex_float(0); - return check_case_insensitive_string - (width$1,ib,bad_hex_float,cst_an)}} - else - if(26 === switcher)switch$0 = 1} - else - {if(48 === c) - {var - width$3=store_char(width$0,ib,c), - _jx_=0 === width$3?1:0, - _jy_=_jx_ || end_of_input(ib); - if(_jy_)bad_hex_float(0); - var - width$4= - check_case_insensitive_string(width$3,ib,bad_hex_float,cst_x$2); - if(0 !== width$4 && ! end_of_input(ib)) - {var match=peek_char(ib),_jz_=match - 46 | 0,switch$1=0; - if(34 < _jz_ >>> 0) - {if(66 === _jz_)switch$1 = 1} - else - if(32 < _jz_ - 1 >>> 0)switch$1 = 1; - var width$5=switch$1?width$4:scan_hexadecimal_int(width$4,ib); - if(0 !== width$5 && ! end_of_input(ib)) - {var c$0=peek_char(ib); - if(46 === c$0) - {var width$6=store_char(width$5,ib,c$0),switch$2=0; - if(0 !== width$6 && ! end_of_input(ib)) - {var match$0=peek_char(ib),switch$3=0; - if(80 !== match$0 && 112 !== match$0) - {var - precision$0=min$1(width$6,precision), - width$10= - width$6 - - - (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) - | - 0; - switch$3 = 1} - if(! switch$3)var width$10=width$6; - var width$7=width$10; - switch$2 = 1} - if(! switch$2)var width$7=width$6; - var width$8=width$7} - else - var width$8=width$5; - if(0 !== width$8 && ! end_of_input(ib)) - {var c$1=peek_char(ib); - if(80 !== c$1 && 112 !== c$1)return width$8; - var - width$9=store_char(width$8,ib,c$1), - _jA_=0 === width$9?1:0, - _jB_=_jA_ || end_of_input(ib); - if(_jB_)bad_hex_float(0); - return scan_optionally_signed_decimal(width$9,ib)} - return width$8} - return width$5} - return width$4} - if(73 === c)switch$0 = 1} - if(! switch$0)return bad_hex_float(0); - var - width$2=store_char(width$0,ib,c), - _jv_=0 === width$2?1:0, - _jw_=_jv_ || end_of_input(ib); - if(_jw_)bad_hex_float(0); - return check_case_insensitive_string - (width$2,ib,bad_hex_float,cst_nfinity)} - function scan_caml_float_rest(width,precision,ib) - {var _jl_=0 === width?1:0,_jm_=_jl_ || end_of_input(ib); - if(_jm_)bad_float(0); - var - width$0=scan_decimal_digit_star(width,ib), - _jn_=0 === width$0?1:0, - _jo_=_jn_ || end_of_input(ib); - if(_jo_)bad_float(0); - var c=peek_char(ib),switcher=c - 69 | 0; - if(32 < switcher >>> 0) - {if(-23 === switcher) - {var - width$1=store_char(width$0,ib,c), - precision$0=min$1(width$1,precision), - width_precision=scan_fractional_part(precision$0,ib), - frac_width=precision$0 - width_precision | 0, - width$2=width$1 - frac_width | 0; - return scan_exponent_part(width$2,ib)}} - else - if(30 < switcher - 1 >>> 0)return scan_exponent_part(width$0,ib); - return bad_float(0)} - function scan_caml_float(width,precision,ib) - {var _i9_=0 === width?1:0,_i__=_i9_ || end_of_input(ib); - if(_i__)bad_float(0); - var - width$0=scan_sign(width,ib), - _i$_=0 === width$0?1:0, - _ja_=_i$_ || end_of_input(ib); - if(_ja_)bad_float(0); - var c=peek_char(ib); - if(49 <= c) - {if(58 > c) - {var - width$1=store_char(width$0,ib,c), - _jb_=0 === width$1?1:0, - _jc_=_jb_ || end_of_input(ib); - if(_jc_)bad_float(0); - return scan_caml_float_rest(width$1,precision,ib)}} - else - if(48 <= c) - {var - width$2=store_char(width$0,ib,c), - _jd_=0 === width$2?1:0, - _je_=_jd_ || end_of_input(ib); - if(_je_)bad_float(0); - var c$0=peek_char(ib); - if(88 !== c$0 && 120 !== c$0) - return scan_caml_float_rest(width$2,precision,ib); var - width$3=store_char(width$2,ib,c$0), - _jf_=0 === width$3?1:0, - _jg_=_jf_ || end_of_input(ib); - if(_jg_)bad_float(0); + e = next(0), + n$0 = next(0), + clo$0 = + function(e, n){return function(obj){return obj[1 + e][1 + n];};} + (e, n$0); + break; + case 3: var - width$4=scan_hexadecimal_int(width$3,ib), - _jh_=0 === width$4?1:0, - _ji_=_jh_ || end_of_input(ib); - if(_ji_)bad_float(0); - var c$1=peek_char(ib),switcher=c$1 - 80 | 0,switch$0=0; - if(32 < switcher >>> 0) - if(-34 === switcher) - {var width$5=store_char(width$4,ib,c$1),switch$1=0; - if(0 !== width$5 && ! end_of_input(ib)) - {var match=peek_char(ib),switch$2=0; - if(80 !== match && 112 !== match) - {var - precision$0=min$1(width$5,precision), - width$10= - width$5 - - - (precision$0 - scan_hexadecimal_int(precision$0,ib) | 0) - | - 0; - switch$2 = 1} - if(! switch$2)var width$10=width$5; - var width$6=width$10; - switch$1 = 1} - if(! switch$1)var width$6=width$5; - var width$7=width$6} - else - switch$0 = 1; - else - if(30 < switcher - 1 >>> 0)var width$7=width$4;else switch$0 = 1; - var width$8=switch$0?bad_float(0):width$7; - if(0 !== width$8 && ! end_of_input(ib)) - {var c$2=peek_char(ib); - if(80 !== c$2 && 112 !== c$2)return width$8; - var - width$9=store_char(width$8,ib,c$2), - _jj_=0 === width$9?1:0, - _jk_=_jj_ || end_of_input(ib); - if(_jk_)bad_hex_float(0); - return scan_optionally_signed_decimal(width$9,ib)} - return width$8} - return bad_float(0)} - function scan_string(stp,width,ib) - {var width$0=width; - for(;;) - {if(0 === width$0)return width$0; - var c=peek_char(ib); - if(ib[1])return width$0; - if(stp) - {var c$0=stp[1]; - if(c === c$0)return skip_char(width$0,ib); - var width$1=store_char(width$0,ib,c),width$0=width$1; - continue} - var _i8_=c - 9 | 0,switch$0=0; - if(4 < _i8_ >>> 0) - {if(23 === _i8_)switch$0 = 1} - else - if(1 < _i8_ - 2 >>> 0)switch$0 = 1; - if(switch$0)return width$0; - var width$2=store_char(width$0,ib,c),width$0=width$2}} - function scan_char(width,ib) - {return store_char(width,ib,checked_peek_char(ib))} - function hexadecimal_value_of_char(d) - {return 97 <= d?d - 87 | 0:65 <= d?d - 55 | 0:d - 48 | 0} - function check_next_char(message,width,ib) - {if(0 === width)return bad_token_length(message); - var c=peek_char(ib); - return ib[1]?bad_input(caml_call1(sprintf(_cs_),message)):c} - function check_next_char_for_char(_i6_,_i7_) - {return check_next_char(cst_a_Char,_i6_,_i7_)} - function check_next_char_for_string(_i4_,_i5_) - {return check_next_char(cst_a_String,_i4_,_i5_)} - function scan_backslash_char(width,ib) - {var c0=check_next_char_for_char(width,ib),switch$0=0; - if(40 <= c0) - {if(58 <= c0) - {var switcher=c0 - 92 | 0; - if(28 >= switcher >>> 0) - switch(switcher) - {case 28: - var - get_digit= - function(param) - {var c=next_char(ib),_i3_=c - 48 | 0,switch$0=0; - if(22 < _i3_ >>> 0) - {if(5 >= _i3_ - 49 >>> 0)switch$0 = 1} - else - if(6 < _i3_ - 10 >>> 0)switch$0 = 1; - return switch$0?c:bad_input_escape(c)}, - c1=get_digit(0), - c2=get_digit(0), - _iZ_=hexadecimal_value_of_char(c2), - c$0=(16 * hexadecimal_value_of_char(c1) | 0) + _iZ_ | 0, - switch$1=0; - if(0 <= c$0 && 255 >= c$0) - {var _i1_=char_of_int(c$0);switch$1 = 1} - if(! switch$1) - var _i1_=bad_input(caml_call2(sprintf(_cz_),c1,c2)); - return store_char(width - 2 | 0,ib,_i1_); - case 0: - case 6: - case 18: - case 22: - case 24:switch$0 = 1;break - }} - else - if(48 <= c0) - {var - get_digit$0= - function(param) - {var c=next_char(ib); - return 9 < c - 48 >>> 0?bad_input_escape(c):c}, - c1$0=get_digit$0(0), - c2$0=get_digit$0(0), - c= - ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) - + - (c2$0 - 48 | 0) - | - 0, - switch$2=0; - if(0 <= c && 255 >= c){var _i2_=char_of_int(c);switch$2 = 1} - if(! switch$2) - var _i2_=bad_input(caml_call3(sprintf(_cy_),c0,c1$0,c2$0)); - return store_char(width - 2 | 0,ib,_i2_)}} - else - if(34 === c0 || 39 <= c0)switch$0 = 1; - if(! switch$0)return bad_input_escape(c0); - var switch$3=0; - if(110 <= c0) - if(117 <= c0) - switch$3 = 1; - else - switch(c0 - 110 | 0) - {case 0:var _i0_=10;break; - case 4:var _i0_=13;break; - case 6:var _i0_=9;break; - default:switch$3 = 1} - else - if(98 === c0)var _i0_=8;else switch$3 = 1; - if(switch$3)var _i0_=c0; - return store_char(width,ib,_i0_)} - function scan_caml_char(width,ib) - {function find_stop(width) - {var c=check_next_char_for_char(width,ib); - return 39 === c?ignore_char(width,ib):character_mismatch(39,c)} - var c=checked_peek_char(ib); - if(39 !== c)return character_mismatch(39,c); - var - width$0=ignore_char(width,ib), - c$0=check_next_char_for_char(width$0,ib); - return 92 === c$0 - ?find_stop(scan_backslash_char(ignore_char(width$0,ib),ib)) - :find_stop(store_char(width$0,ib,c$0))} - function scan_caml_string(width,ib) - {function find_stop$0(counter,width) - {var width$0=width; - for(;;) - {var c=check_next_char_for_string(width$0,ib); - if(34 === c)return ignore_char(width$0,ib); - if(92 !== c) - {var width$2=store_char(width$0,ib,c),width$0=width$2;continue} - var - width$1=ignore_char(width$0,ib), - match=check_next_char_for_string(width$1,ib); - if(10 === match) - {var _iX_=ignore_char(width$1,ib); - if(counter >= 50) - return caml_trampoline_return(skip_spaces,[0,_iX_]); - var counter$0=counter + 1 | 0; - return skip_spaces(counter$0,_iX_)} - if(13 !== match) - {var width$4=scan_backslash_char(width$1,ib),width$0=width$4; - continue} - var - width$3=ignore_char(width$1,ib), - match$0=check_next_char_for_string(width$3,ib); - if(10 !== match$0) - {var width$5=store_char(width$3,ib,13),width$0=width$5;continue} - var _iY_=ignore_char(width$3,ib); - if(counter >= 50) - return caml_trampoline_return(skip_spaces,[0,_iY_]); - var counter$1=counter + 1 | 0; - return skip_spaces(counter$1,_iY_)}} - function skip_spaces(counter,width) - {var width$0=width; - for(;;) - {var match=check_next_char_for_string(width$0,ib); - if(32 === match) - {var width$1=ignore_char(width$0,ib),width$0=width$1;continue} - if(counter >= 50) - return caml_trampoline_return(find_stop$0,[0,width$0]); - var counter$0=counter + 1 | 0; - return find_stop$0(counter$0,width$0)}} - function find_stop(width){return caml_trampoline(find_stop$0(0,width))} - var c=checked_peek_char(ib); - return 34 === c - ?find_stop(ignore_char(width,ib)) - :character_mismatch(34,c)} - function scan_chars_in_char_set(char_set,scan_indic,width,ib) - {function scan_chars(i,stp) - {var i$0=i; - for(;;) - {var c=peek_char(ib),_iT_=0 < i$0?1:0; - if(_iT_) - {var _iU_=1 - ib[1]; - if(_iU_) - var _iV_=is_in_char_set(char_set,c),_iW_=_iV_?c !== stp?1:0:_iV_; - else - var _iW_=_iU_} - else - var _iW_=_iT_; - if(! _iW_)return _iW_; - store_char(max_int,ib,c); - var i$1=i$0 - 1 | 0,i$0=i$1}} - if(! scan_indic)return scan_chars(width,-1); - var c=scan_indic[1]; - scan_chars(width,c); - var _iS_=1 - ib[1]; - if(! _iS_)return _iS_; - var ci=peek_char(ib); - return c === ci?invalidate_current_char(ib):character_mismatch(c,ci)} - function scanf_bad_input(ib,x) - {if(x[1] === Scan_failure) - var s=x[2]; - else - {if(x[1] !== Failure)throw x;var s=x[2]} - var i=char_count(ib); - return bad_input(caml_call2(sprintf(_cB_),i,s))} - function get_counter(ib,counter) - {switch(counter) - {case 0:return ib[5];case 1:return char_count(ib);default:return ib[6]}} - function width_of_pad_opt(pad_opt) - {if(! pad_opt)return max_int;var width=pad_opt[1];return width} - function stopper_of_formatting_lit(fmting) - {if(6 === fmting)return _cC_; - var - str=string_of_formatting_lit(fmting), - stp=caml_string_get(str,1), - sub_str=sub$0(str,2,caml_ml_string_length(str) - 2 | 0); - return [0,stp,sub_str]} - function take_format_readers$0(counter,k,fmt) - {var fmt$0=fmt; - for(;;) - {if(typeof fmt$0 === "number")return caml_call1(k,0); - switch(fmt$0[0]) - {case 0:var fmt$1=fmt$0[1],fmt$0=fmt$1;continue; - case 1:var fmt$2=fmt$0[1],fmt$0=fmt$2;continue; - case 2:var fmt$3=fmt$0[2],fmt$0=fmt$3;continue; - case 3:var fmt$4=fmt$0[2],fmt$0=fmt$4;continue; - case 4:var fmt$5=fmt$0[4],fmt$0=fmt$5;continue; - case 5:var fmt$6=fmt$0[4],fmt$0=fmt$6;continue; - case 6:var fmt$7=fmt$0[4],fmt$0=fmt$7;continue; - case 7:var fmt$8=fmt$0[4],fmt$0=fmt$8;continue; - case 8:var fmt$9=fmt$0[4],fmt$0=fmt$9;continue; - case 9:var fmt$10=fmt$0[2],fmt$0=fmt$10;continue; - case 10:var fmt$11=fmt$0[1],fmt$0=fmt$11;continue; - case 11:var fmt$12=fmt$0[2],fmt$0=fmt$12;continue; - case 12:var fmt$13=fmt$0[2],fmt$0=fmt$13;continue; - case 13:var fmt$14=fmt$0[3],fmt$0=fmt$14;continue; - case 14: - var rest=fmt$0[3],fmtty=fmt$0[2],_iQ_=erase_rel(symm(fmtty)); - if(counter >= 50) - return caml_trampoline_return - (take_fmtty_format_readers$0,[0,k,_iQ_,rest]); - var counter$0=counter + 1 | 0; - return take_fmtty_format_readers$0(counter$0,k,_iQ_,rest); - case 15:var fmt$15=fmt$0[1],fmt$0=fmt$15;continue; - case 16:var fmt$16=fmt$0[1],fmt$0=fmt$16;continue; - case 17:var fmt$17=fmt$0[2],fmt$0=fmt$17;continue; - case 18: - var _iR_=fmt$0[1]; - if(0 === _iR_[0]) - {var - rest$0=fmt$0[2], - match=_iR_[1], - fmt$18=match[1], - fmt$19=concat_fmt(fmt$18,rest$0), - fmt$0=fmt$19; - continue} - var - rest$1=fmt$0[2], - match$0=_iR_[1], - fmt$20=match$0[1], - fmt$21=concat_fmt(fmt$20,rest$1), - fmt$0=fmt$21; - continue; - case 19: - var fmt_rest=fmt$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_format_readers(new_k,fmt_rest)}; - case 20:var fmt$22=fmt$0[3],fmt$0=fmt$22;continue; - case 21:var fmt$23=fmt$0[2],fmt$0=fmt$23;continue; - case 22:var fmt$24=fmt$0[1],fmt$0=fmt$24;continue; - case 23: - var rest$2=fmt$0[2],ign=fmt$0[1]; - if(typeof ign === "number") - switch(ign) - {case 0:var fmt$0=rest$2;continue; - case 1:var fmt$0=rest$2;continue; - case 2: - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_format_readers(new_k,rest$2)}; - default:var fmt$0=rest$2;continue} - switch(ign[0]) - {case 0:var fmt$0=rest$2;continue; - case 1:var fmt$0=rest$2;continue; - case 2:var fmt$0=rest$2;continue; - case 3:var fmt$0=rest$2;continue; - case 4:var fmt$0=rest$2;continue; - case 5:var fmt$0=rest$2;continue; - case 6:var fmt$0=rest$2;continue; - case 7:var fmt$0=rest$2;continue; - case 8:var fmt$0=rest$2;continue; - case 9: - var fmtty$0=ign[2]; - if(counter >= 50) - return caml_trampoline_return - (take_fmtty_format_readers$0,[0,k,fmtty$0,rest$2]); - var counter$1=counter + 1 | 0; - return take_fmtty_format_readers$0(counter$1,k,fmtty$0,rest$2); - case 10:var fmt$0=rest$2;continue; - default:var fmt$0=rest$2;continue} - default:var fmt$25=fmt$0[3],fmt$0=fmt$25;continue}}} - function take_fmtty_format_readers$0(counter,k,fmtty,fmt) - {var fmtty$0=fmtty; - for(;;) - {if(typeof fmtty$0 !== "number") - switch(fmtty$0[0]) - {case 0:var fmtty$1=fmtty$0[1],fmtty$0=fmtty$1;continue; - case 1:var fmtty$2=fmtty$0[1],fmtty$0=fmtty$2;continue; - case 2:var fmtty$3=fmtty$0[1],fmtty$0=fmtty$3;continue; - case 3:var fmtty$4=fmtty$0[1],fmtty$0=fmtty$4;continue; - case 4:var fmtty$5=fmtty$0[1],fmtty$0=fmtty$5;continue; - case 5:var fmtty$6=fmtty$0[1],fmtty$0=fmtty$6;continue; - case 6:var fmtty$7=fmtty$0[1],fmtty$0=fmtty$7;continue; - case 7:var fmtty$8=fmtty$0[1],fmtty$0=fmtty$8;continue; - case 8:var fmtty$9=fmtty$0[2],fmtty$0=fmtty$9;continue; - case 9: - var - rest=fmtty$0[3], - ty2=fmtty$0[2], - ty1=fmtty$0[1], - ty=trans(symm(ty1),ty2), - fmtty$10=concat_fmtty(ty,rest), - fmtty$0=fmtty$10; - continue; - case 10:var fmtty$11=fmtty$0[1],fmtty$0=fmtty$11;continue; - case 11:var fmtty$12=fmtty$0[1],fmtty$0=fmtty$12;continue; - case 12:var fmtty$13=fmtty$0[1],fmtty$0=fmtty$13;continue; - case 13: - var fmt_rest=fmtty$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_fmtty_format_readers(new_k,fmt_rest,fmt)}; - default: - var fmt_rest$0=fmtty$0[1]; - return function(reader) - {function new_k(readers_rest) - {return caml_call1(k,[0,reader,readers_rest])} - return take_fmtty_format_readers(new_k,fmt_rest$0,fmt)}} - if(counter >= 50) - return caml_trampoline_return(take_format_readers$0,[0,k,fmt]); - var counter$0=counter + 1 | 0; - return take_format_readers$0(counter$0,k,fmt)}} - function take_format_readers(k,fmt) - {return caml_trampoline(take_format_readers$0(0,k,fmt))} - function take_fmtty_format_readers(k,fmtty,fmt) - {return caml_trampoline(take_fmtty_format_readers$0(0,k,fmtty,fmt))} - function pad_prec_scanf(ib,fmt,readers,pad,prec,scan,token) - {if(typeof pad === "number") - {if(typeof prec !== "number") - {var p=prec[1]; - caml_call3(scan,max_int,p,ib); - var x$0=caml_call1(token,ib); - return [0,x$0,make_scanf(ib,fmt,readers)]} - if(prec)return invalid_arg(cst_scanf_bad_conversion); - caml_call3(scan,max_int,max_int,ib); - var x=caml_call1(token,ib); - return [0,x,make_scanf(ib,fmt,readers)]} - if(0 !== pad[0])return invalid_arg(cst_scanf_bad_conversion$2); - if(! pad[1])return invalid_arg(cst_scanf_bad_conversion$1); - var _iP_=pad[2]; - if(typeof prec !== "number") - {var p$0=prec[1]; - caml_call3(scan,_iP_,p$0,ib); - var x$2=caml_call1(token,ib); - return [0,x$2,make_scanf(ib,fmt,readers)]} - if(prec)return invalid_arg(cst_scanf_bad_conversion$0); - caml_call3(scan,_iP_,max_int,ib); - var x$1=caml_call1(token,ib); - return [0,x$1,make_scanf(ib,fmt,readers)]} - function make_scanf(ib,fmt,readers) - {var fmt$0=fmt; - for(;;) - {if(typeof fmt$0 === "number")return 0; - switch(fmt$0[0]) - {case 0: - var rest=fmt$0[1]; - scan_char(0,ib); - var c=token_char(ib); - return [0,c,make_scanf(ib,rest,readers)]; - case 1: - var rest$0=fmt$0[1]; - scan_caml_char(0,ib); - var c$0=token_char(ib); - return [0,c$0,make_scanf(ib,rest$0,readers)]; - case 2: - var _iC_=fmt$0[1],_iD_=fmt$0[2]; - if(typeof _iD_ !== "number") - switch(_iD_[0]) - {case 17: - var - rest$2=_iD_[2], - fmting_lit=_iD_[1], - match=stopper_of_formatting_lit(fmting_lit), - str=match[2], - stp=match[1], - scan$0= - function(width,param,ib) - {return scan_string([0,stp],width,ib)}, - str_rest=[11,str,rest$2]; - return pad_prec_scanf - (ib,str_rest,readers,_iC_,0,scan$0,token_string); - case 18: - var _iE_=_iD_[1]; - if(0 === _iE_[0]) - {var - rest$3=_iD_[2], - match$0=_iE_[1], - fmt$1=match$0[1], - scan$1= - function(width,param,ib){return scan_string(_cD_,width,ib)}; - return pad_prec_scanf - (ib, - concat_fmt(fmt$1,rest$3), - readers, - _iC_, - 0, - scan$1, - token_string)} - var - rest$4=_iD_[2], - match$1=_iE_[1], - fmt$2=match$1[1], - scan$2= - function(width,param,ib){return scan_string(_cE_,width,ib)}; - return pad_prec_scanf - (ib, - concat_fmt(fmt$2,rest$4), - readers, - _iC_, - 0, - scan$2, - token_string) - } - var - rest$1=fmt$0[2], - scan=function(width,param,ib){return scan_string(0,width,ib)}; - return pad_prec_scanf(ib,rest$1,readers,_iC_,0,scan,token_string); - case 3: - var - rest$5=fmt$0[2], - pad=fmt$0[1], - scan$3=function(width,param,ib){return scan_caml_string(width,ib)}; - return pad_prec_scanf(ib,rest$5,readers,pad,0,scan$3,token_string); - case 4: - var - rest$6=fmt$0[4], - prec=fmt$0[3], - pad$0=fmt$0[2], - iconv=fmt$0[1], - conv=integer_conversion_of_char(char_of_iconv(iconv)), - scan$4= - function(width,param,ib) - {return scan_int_conversion(conv,width,ib)}; - return pad_prec_scanf - (ib, - rest$6, - readers, - pad$0, - prec, - scan$4, - function(ib) - {return caml_int_of_string(token_int_literal(conv,ib))}); - case 5: - var - rest$7=fmt$0[4], - prec$0=fmt$0[3], - pad$1=fmt$0[2], - iconv$0=fmt$0[1], - conv$0=integer_conversion_of_char(char_of_iconv(iconv$0)), - scan$5= - function(width,param,ib) - {return scan_int_conversion(conv$0,width,ib)}; - return pad_prec_scanf - (ib, - rest$7, - readers, - pad$1, - prec$0, - scan$5, - function(ib) - {return caml_int_of_string(token_int_literal(conv$0,ib))}); - case 6: - var - rest$8=fmt$0[4], - prec$1=fmt$0[3], - pad$2=fmt$0[2], - iconv$1=fmt$0[1], - conv$1=integer_conversion_of_char(char_of_iconv(iconv$1)), - scan$6= - function(width,param,ib) - {return scan_int_conversion(conv$1,width,ib)}; - return pad_prec_scanf - (ib, - rest$8, - readers, - pad$2, - prec$1, - scan$6, - function(ib) - {return caml_int_of_string(token_int_literal(conv$1,ib))}); - case 7: - var - rest$9=fmt$0[4], - prec$2=fmt$0[3], - pad$3=fmt$0[2], - iconv$2=fmt$0[1], - conv$2=integer_conversion_of_char(char_of_iconv(iconv$2)), - scan$7= - function(width,param,ib) - {return scan_int_conversion(conv$2,width,ib)}; - return pad_prec_scanf - (ib, - rest$9, - readers, - pad$3, - prec$2, - scan$7, - function(ib) - {return caml_int64_of_string(token_int_literal(conv$2,ib))}); - case 8: - switch(fmt$0[1][2]) - {case 5: - case 8: - var rest$11=fmt$0[4],prec$4=fmt$0[3],pad$5=fmt$0[2]; - return pad_prec_scanf - (ib, - rest$11, - readers, - pad$5, - prec$4, - scan_caml_float, - token_float); - case 6: - case 7: - var rest$12=fmt$0[4],prec$5=fmt$0[3],pad$6=fmt$0[2]; - return pad_prec_scanf - (ib,rest$12,readers,pad$6,prec$5,scan_hex_float,token_float); - default: - var rest$10=fmt$0[4],prec$3=fmt$0[3],pad$4=fmt$0[2]; - return pad_prec_scanf - (ib,rest$10,readers,pad$4,prec$3,scan_float,token_float)} - case 9: - var - rest$13=fmt$0[2], - pad$7=fmt$0[1], - scan$8= - function(param,_iO_,ib) - {var - c=checked_peek_char(ib), - m= - 102 === c - ?5 - :116 === c?4:bad_input(caml_call1(sprintf(_cA_),c)); - return scan_string(0,m,ib)}; - return pad_prec_scanf(ib,rest$13,readers,pad$7,0,scan$8,token_bool); - case 10: - var rest$14=fmt$0[1]; - if(! end_of_input(ib))return bad_input(cst_end_of_input_not_found); - var fmt$0=rest$14; - continue; - case 11: - var rest$15=fmt$0[2],str$0=fmt$0[1]; - iter$4(function(_iN_){return check_char(ib,_iN_)},str$0); - var fmt$0=rest$15; - continue; - case 12: - var rest$16=fmt$0[2],chr=fmt$0[1]; - check_char(ib,chr); - var fmt$0=rest$16; - continue; - case 13: - var rest$17=fmt$0[3],fmtty=fmt$0[2],pad_opt=fmt$0[1]; - scan_caml_string(width_of_pad_opt(pad_opt),ib); - var s=token_string(ib); - try - {var _iF_=format_of_string_fmtty(s,fmtty),fmt$3=_iF_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var msg=exn[2],fmt$3=bad_input(msg)} - return [0,fmt$3,make_scanf(ib,rest$17,readers)]; - case 14: - var rest$18=fmt$0[3],fmtty$0=fmt$0[2],pad_opt$0=fmt$0[1]; - scan_caml_string(width_of_pad_opt(pad_opt$0),ib); - var s$0=token_string(ib); - try - {var - match$2=fmt_ebb_of_string(0,s$0), - fmt$6=match$2[1], - match$3=fmt_ebb_of_string(0,s$0), - fmt$7=match$3[1], - fmt$8=type_format(fmt$7,erase_rel(symm(fmtty$0))), - _iH_=type_format(fmt$6,erase_rel(fmtty$0)), - fmt$5=fmt$8, - fmt$4=_iH_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var - msg$0=exn[2], - _iG_=bad_input(msg$0), - fmt$5=_iG_[2], - fmt$4=_iG_[1]} - return [0, - [0,fmt$4,s$0], - make_scanf(ib,concat_fmt(fmt$5,rest$18),readers)]; - case 15:return invalid_arg(cst_scanf_bad_conversion_a); - case 16:return invalid_arg(cst_scanf_bad_conversion_t); - case 17: - var - rest$19=fmt$0[2], - formatting_lit=fmt$0[1], - _iI_=string_of_formatting_lit(formatting_lit); - iter$4(function(_iM_){return check_char(ib,_iM_)},_iI_); - var fmt$0=rest$19; - continue; - case 18: - var _iJ_=fmt$0[1]; - if(0 === _iJ_[0]) - {var rest$20=fmt$0[2],match$4=_iJ_[1],fmt$9=match$4[1]; - check_char(ib,64); - check_char(ib,123); - var fmt$10=concat_fmt(fmt$9,rest$20),fmt$0=fmt$10; - continue} - var rest$21=fmt$0[2],match$5=_iJ_[1],fmt$11=match$5[1]; - check_char(ib,64); - check_char(ib,91); - var fmt$12=concat_fmt(fmt$11,rest$21),fmt$0=fmt$12; - continue; - case 19: - var fmt_rest=fmt$0[1]; - if(! readers)return invalid_arg(cst_scanf_missing_reader); - var - readers_rest=readers[2], - reader=readers[1], - x=caml_call1(reader,ib); - return [0,x,make_scanf(ib,fmt_rest,readers_rest)]; - case 20: - var _iK_=fmt$0[1],_iL_=fmt$0[3]; - if(typeof _iL_ !== "number" && 17 === _iL_[0]) - {var - rest$23=_iL_[2], - fmting_lit$0=_iL_[1], - char_set$0=fmt$0[2], - match$6=stopper_of_formatting_lit(fmting_lit$0), - str$1=match$6[2], - stp$0=match$6[1], - width$0=width_of_pad_opt(_iK_); - scan_chars_in_char_set(char_set$0,[0,stp$0],width$0,ib); - var s$2=token_string(ib),str_rest$0=[11,str$1,rest$23]; - return [0,s$2,make_scanf(ib,str_rest$0,readers)]} - var - rest$22=fmt$0[3], - char_set=fmt$0[2], - width=width_of_pad_opt(_iK_); - scan_chars_in_char_set(char_set,0,width,ib); - var s$1=token_string(ib); - return [0,s$1,make_scanf(ib,rest$22,readers)]; - case 21: - var - rest$24=fmt$0[2], - counter=fmt$0[1], - count=get_counter(ib,counter); - return [0,count,make_scanf(ib,rest$24,readers)]; - case 22: - var rest$25=fmt$0[1],c$1=checked_peek_char(ib); - return [0,c$1,make_scanf(ib,rest$25,readers)]; - case 23: - var - rest$26=fmt$0[2], - ign=fmt$0[1], - match$7=param_format_of_ignored_format(ign,rest$26), - fmt$13=match$7[1], - match$8=make_scanf(ib,fmt$13,readers); - if(! match$8)throw [0,Assert_failure,_cF_]; - var arg_rest=match$8[2]; - return arg_rest; - default:return invalid_arg(cst_scanf_bad_conversion_custo)}}} - function kscanf(ib,ef,param) - {var str=param[2],fmt=param[1]; - function apply(f,args) - {var f$0=f,args$0=args; - for(;;) - {if(! args$0)return f$0; - var r=args$0[2],x=args$0[1],f$1=caml_call1(f$0,x),f$0=f$1,args$0=r}} - function k(readers,f) - {reset_token(ib); - try - {var _iB_=[0,make_scanf(ib,fmt,readers)],_iA_=_iB_} - catch(exc) - {exc = caml_wrap_exception(exc); - var switch$0=0; - if - (exc[1] - !== - Scan_failure - && - exc[1] - !== - Failure - && - exc - !== - End_of_file) - {if(exc[1] !== Invalid_argument)throw exc; - var - msg=exc[2], - _iz_= - invalid_arg - (cat(msg,cat(cst_in_format,cat(escaped$1(str),cst$88)))); - switch$0 = 1} - if(! switch$0)var _iz_=[1,exc]; - var _iA_=_iz_} - if(0 === _iA_[0]){var args=_iA_[1];return apply(f,args)} - var exc=_iA_[1]; - return caml_call2(ef,ib,exc)} - return take_format_readers(k,fmt)} - function bscanf(ib,fmt){return kscanf(ib,scanf_bad_input,fmt)} - function ksscanf(s,ef,fmt){return kscanf(from_string$1(s),ef,fmt)} - function sscanf(s,fmt) - {return kscanf(from_string$1(s),scanf_bad_input,fmt)} - function scanf(fmt){return kscanf(stdib,scanf_bad_input,fmt)} - function bscanf_format(ib,format,f) - {scan_caml_string(max_int,ib); - var str=token_string(ib); - try - {var _iy_=format_of_string_format(str,format),fmt=_iy_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Failure)throw exn; - var msg=exn[2],fmt=bad_input(msg)} - return caml_call1(f,fmt)} - function sscanf_format(s,format,f) - {return bscanf_format(from_string$1(s),format,f)} - function format_from_string(s,fmt) - {function _ix_(x){return x} - return sscanf_format(cat(cst$90,cat(escaped$1(s),cst$89)),fmt,_ix_)} - function unescaped(s) - {function _iw_(x){return x} - return caml_call1(sscanf(cat(cst$92,cat(s,cst$91)),_cG_),_iw_)} - function kfscanf(ic,ef,fmt){return kscanf(memo_from_channel(ic),ef,fmt)} - function fscanf(ic,fmt) - {return kscanf(memo_from_channel(ic),scanf_bad_input,fmt)} - var - Stdlib_Scanf= - [0, - [0, - stdib, - from_file, - from_file_bin, - close_in, - from_file, - from_file_bin, - from_string$1, - from_function$0, - from_channel$0, - end_of_input, - beginning_of_input, - name_of_input, - stdib], - Scan_failure, - bscanf, - sscanf, - scanf, - kscanf, - ksscanf, - bscanf_format, - sscanf_format, - format_from_string, - unescaped, - fscanf, - kfscanf]; - caml_register_global(819,Stdlib_Scanf,"Stdlib__Scanf"); - function register(name,v){return caml_register_named_value(name,v)} - function register_exception(name,exn) - {var slot=caml_obj_tag(exn) === 248?exn:exn[1]; - return caml_register_named_value(name,slot)} - var Stdlib_Callback=[0,register,register_exception]; - caml_register_global(820,Stdlib_Callback,"Stdlib__Callback"); - function copy$7(o){var o$0=o.slice();return caml_set_oo_id(o$0)} - var params$0=[0,1,1,1,3,16],initial_object_size=2,dummy_item=0; - function public_method_label(s) - {var accu=[0,0],_it_=caml_ml_string_length(s) - 1 | 0,_is_=0; - if(_it_ >= 0) - {var i=_is_; - for(;;) - {var _iu_=caml_string_get(s,i); - accu[1] = (223 * accu[1] | 0) + _iu_ | 0; - var _iv_=i + 1 | 0; - if(_it_ !== i){var i=_iv_;continue} - break}} - accu[1] = accu[1] & 2147483647; - var tag=1073741823 < accu[1]?accu[1] + 2147483648 | 0:accu[1]; - return tag} - function compare$14(x,y){return caml_string_compare(x,y)} - var Vars=caml_call1(Stdlib_Map[1],[0,compare$14]); - function compare$15(x,y){return caml_string_compare(x,y)} - var - Meths=caml_call1(Stdlib_Map[1],[0,compare$15]), - compare$16=caml_int_compare, - Labs=caml_call1(Stdlib_Map[1],[0,compare$16]), - dummy_table=[0,0,[0,dummy_item],Meths[1],Labs[1],0,0,Vars[1],0], - table_count=[0,0], - dummy_met=caml_obj_block(0,0); - function fit_size(n){return 2 < n?fit_size((n + 1 | 0) / 2 | 0) * 2 | 0:n} - function new_table(pub_labels) - {table_count[1]++; - var - len=pub_labels.length - 1, - methods=caml_make_vect((len * 2 | 0) + 2 | 0,dummy_met); - caml_check_bound(methods,0)[1] = len; - var _im_=((fit_size(len) * 32 | 0) / 8 | 0) - 1 | 0; - caml_check_bound(methods,1)[2] = _im_; - var _io_=len - 1 | 0,_in_=0; - if(_io_ >= 0) - {var i=_in_; - for(;;) - {var - _iq_=(i * 2 | 0) + 3 | 0, - _ip_=caml_check_bound(pub_labels,i)[1 + i]; - caml_check_bound(methods,_iq_)[1 + _iq_] = _ip_; - var _ir_=i + 1 | 0; - if(_io_ !== i){var i=_ir_;continue} - break}} - return [0,initial_object_size,methods,Meths[1],Labs[1],0,0,Vars[1],0]} - function resize$1(array,new_size) - {var old_size=array[2].length - 1,_ik_=old_size < new_size?1:0; - if(_ik_) - {var new_buck=caml_make_vect(new_size,dummy_met); - blit$1(array[2],0,new_buck,0,old_size); - array[2] = new_buck; - var _il_=0} - else - var _il_=_ik_; - return _il_} - var method_count=[0,0],inst_var_count=[0,0]; - function new_method(table) - {var index=table[2].length - 1; - resize$1(table,index + 1 | 0); - return index} - function get_method_label(table,name) - {try - {var _ii_=caml_call2(Meths[28],name,table[3]);return _ii_} - catch(_ij_) - {_ij_ = caml_wrap_exception(_ij_); - if(_ij_ !== Not_found)throw _ij_; - var label=new_method(table); - table[3] = caml_call3(Meths[4],name,label,table[3]); - table[4] = caml_call3(Labs[4],label,1,table[4]); - return label}} - function get_method_labels(table,names) - {return map$7(function(_ih_){return get_method_label(table,_ih_)},names)} - function set_method(table,label,element) - {method_count[1]++; - return caml_call2(Labs[28],label,table[4]) - ?(resize$1(table,label + 1 | 0), - caml_check_bound(table[2],label)[1 + label] - = - element, - 0) - :(table[6] = [0,[0,label,element],table[6]],0)} - function get_method(table,label) - {try - {var _if_=assoc(label,table[6]);return _if_} - catch(_ig_) - {_ig_ = caml_wrap_exception(_ig_); - if(_ig_ === Not_found) - return caml_check_bound(table[2],label)[1 + label]; - throw _ig_}} - function to_list$3(arr){return 0 === arr?0:to_list$1(arr)} - function narrow(table,vars,virt_meths,concr_meths) - {var - vars$0=to_list$3(vars), - virt_meths$0=to_list$3(virt_meths), - concr_meths$0=to_list$3(concr_meths), - virt_meth_labs= - map$4 - (function(_ie_){return get_method_label(table,_ie_)},virt_meths$0), - concr_meth_labs= - map$4 - (function(_id_){return get_method_label(table,_id_)},concr_meths$0); - table[5] - = - [0, - [0,table[3],table[4],table[6],table[7],virt_meth_labs,vars$0], - table[5]]; - var _h6_=Vars[1],_h7_=table[7]; - function _h8_(lab,info,tvars) - {return mem(lab,vars$0)?caml_call3(Vars[4],lab,info,tvars):tvars} - table[7] = caml_call3(Vars[13],_h8_,_h7_,_h6_); - var by_name=[0,Meths[1]],by_label=[0,Labs[1]]; - iter2$0 - (function(met,label) - {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); - var _h$_=by_label[1]; - try - {var _ib_=caml_call2(Labs[28],label,table[4]),_ia_=_ib_} - catch(_ic_) - {_ic_ = caml_wrap_exception(_ic_); - if(_ic_ !== Not_found)throw _ic_; - var _ia_=1} - by_label[1] = caml_call3(Labs[4],label,_ia_,_h$_); - return 0}, - concr_meths$0, - concr_meth_labs); - iter2$0 - (function(met,label) - {by_name[1] = caml_call3(Meths[4],met,label,by_name[1]); - by_label[1] = caml_call3(Labs[4],label,0,by_label[1]); - return 0}, - virt_meths$0, - virt_meth_labs); - table[3] = by_name[1]; - table[4] = by_label[1]; - var _h9_=0,_h__=table[6]; - table[6] - = - fold_right - (function(met,hm) - {var lab=met[1];return mem(lab,virt_meth_labs)?hm:[0,met,hm]}, - _h__, - _h9_); - return 0} - function widen(table) - {var - match=hd(table[5]), - vars=match[6], - virt_meths=match[5], - saved_vars=match[4], - saved_hidden_meths=match[3], - by_label=match[2], - by_name=match[1]; - table[5] = tl(table[5]); - table[7] - = - fold_left$0 - (function(s,v) - {var _h5_=caml_call2(Vars[28],v,table[7]); - return caml_call3(Vars[4],v,_h5_,s)}, - saved_vars, - vars); - table[3] = by_name; - table[4] = by_label; - var _h4_=table[6]; - table[6] - = - fold_right - (function(met,hm) - {var lab=met[1];return mem(lab,virt_meths)?hm:[0,met,hm]}, - _h4_, - saved_hidden_meths); - return 0} - function new_slot(table) - {var index=table[1];table[1] = index + 1 | 0;return index} - function new_variable(table,name) - {try - {var _h2_=caml_call2(Vars[28],name,table[7]);return _h2_} - catch(_h3_) - {_h3_ = caml_wrap_exception(_h3_); - if(_h3_ !== Not_found)throw _h3_; - var index=new_slot(table); - if(caml_string_notequal(name,cst$93)) - table[7] = caml_call3(Vars[4],name,index,table[7]); - return index}} - function to_array(arr){return caml_equal(arr,0)?[0]:arr} - function new_methods_variables(table,meths,vals) - {var - meths$0=to_array(meths), - nmeths=meths$0.length - 1, - nvals=vals.length - 1, - res=caml_make_vect(nmeths + nvals | 0,0), - _hU_=nmeths - 1 | 0, - _hT_=0; - if(_hU_ >= 0) - {var i$0=_hT_; - for(;;) - {var - _h0_= - get_method_label(table,caml_check_bound(meths$0,i$0)[1 + i$0]); - caml_check_bound(res,i$0)[1 + i$0] = _h0_; - var _h1_=i$0 + 1 | 0; - if(_hU_ !== i$0){var i$0=_h1_;continue} - break}} - var _hW_=nvals - 1 | 0,_hV_=0; - if(_hW_ >= 0) - {var i=_hV_; - for(;;) - {var - _hY_=i + nmeths | 0, - _hX_=new_variable(table,caml_check_bound(vals,i)[1 + i]); - caml_check_bound(res,_hY_)[1 + _hY_] = _hX_; - var _hZ_=i + 1 | 0; - if(_hW_ !== i){var i=_hZ_;continue} - break}} - return res} - function get_variable(table,name) - {try - {var _hR_=caml_call2(Vars[28],name,table[7]);return _hR_} - catch(_hS_) - {_hS_ = caml_wrap_exception(_hS_); - if(_hS_ === Not_found)throw [0,Assert_failure,_cH_]; - throw _hS_}} - function get_variables(table,names) - {return map$7(function(_hQ_){return get_variable(table,_hQ_)},names)} - function add_initializer(table,f){table[8] = [0,f,table[8]];return 0} - function create_table(public_methods) - {if(0 === public_methods)return new_table([0]); - var - tags=map$7(public_method_label,public_methods), - table=new_table(tags); - iteri$3 - (function(i,met) - {var lab=(i * 2 | 0) + 2 | 0; - table[3] = caml_call3(Meths[4],met,lab,table[3]); - table[4] = caml_call3(Labs[4],lab,1,table[4]); - return 0}, - public_methods); - return table} - function init_class(table) - {inst_var_count[1] = (inst_var_count[1] + table[1] | 0) - 1 | 0; - table[8] = rev(table[8]); - return resize$1 - (table, - 3 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0)} - function inherits(cla,vals,virt_meths,concr_meths,param,top) - {var env=param[4],super$0=param[2]; - narrow(cla,vals,virt_meths,concr_meths); - var init=top?caml_call2(super$0,cla,env):caml_call1(super$0,cla); - widen(cla); - var - _hL_=0, - _hM_=to_array(concr_meths), - _hN_= - [0, - map$7 - (function(nm){return get_method(cla,get_method_label(cla,nm))},_hM_), - _hL_], - _hO_=to_array(vals); - return caml_array_concat - ([0, - [0,init], - [0, - map$7(function(_hP_){return get_variable(cla,_hP_)},_hO_), - _hN_]])} - function make_class(pub_meths,class_init) - {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); - init_class(table); - return [0,caml_call1(env_init,0),class_init,env_init,0]} - function make_class_store(pub_meths,class_init,init_table) - {var table=create_table(pub_meths),env_init=caml_call1(class_init,table); - init_class(table); - init_table[2] = class_init; - init_table[1] = env_init; - return 0} - function dummy_class(loc) - {function undef(param){throw [0,Undefined_recursive_module,loc]} - return [0,undef,undef,undef,0]} - function create_object(table) - {var obj=caml_obj_block(248,table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj)} - function create_object_opt(obj_0,table) - {if(obj_0)return obj_0; - var obj=caml_obj_block(248,table[1]); - obj[1] = table[2]; - return caml_set_oo_id(obj)} - function iter_f(obj,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var l=param$0[2],f=param$0[1]; - caml_call1(f,obj); - var param$0=l}} - function run_initializers(obj,table) - {var inits=table[8],_hK_=0 !== inits?1:0; - return _hK_?iter_f(obj,inits):_hK_} - function run_initializers_opt(obj_0,obj,table) - {if(obj_0)return obj; - var inits=table[8]; - if(0 !== inits)iter_f(obj,inits); - return obj} - function create_object_and_run_initiali(obj_0,table) - {if(obj_0)return obj_0; - var obj=create_object(table); - run_initializers(obj,table); - return obj} - function get_data$0(param) - {if(param)return param[2];throw [0,Assert_failure,_cL_]} - function build_path(n,keys,tables) - {var res=[0,0,0,0],r=[0,res],_hG_=0; - if(n >= 0) - {var i=_hG_; - for(;;) - {var _hI_=r[1]; - r[1] = [0,caml_check_bound(keys,i)[1 + i],_hI_,0]; - var _hJ_=i + 1 | 0; - if(n !== i){var i=_hJ_;continue} - break}} - var _hH_=r[1]; - if(! tables)throw [0,Assert_failure,_cI_]; - tables[2] = _hH_; - return res} - function lookup_tables(root,keys) - {var tables$2=get_data$0(root); - if(! tables$2)return build_path(keys.length - 1 - 1 | 0,keys,root); - var i$1=keys.length - 1 - 1 | 0,i=i$1,tables=tables$2; - a: - for(;;) - {if(0 > i)return tables; - var key=caml_check_bound(keys,i)[1 + i],tables$0=tables; - for(;;) - {if(! tables$0)throw [0,Assert_failure,_cK_]; - if(tables$0[1] === key) - {var tables$1=get_data$0(tables$0); - if(! tables$1)throw [0,Assert_failure,_cN_]; - var i$0=i - 1 | 0,i=i$0,tables=tables$1; - continue a} - if(! tables$0)throw [0,Assert_failure,_cM_]; - var _hF_=tables$0[3]; - if(_hF_){var tables$0=_hF_;continue} - var v=[0,key,0,0]; - if(! tables$0)throw [0,Assert_failure,_cJ_]; - tables$0[3] = v; - return build_path(i - 1 | 0,keys,v)}}} - function new_cache(table) - {var n=new_method(table),switch$0=0; - if - (0 - !== - (n % 2 | 0) - && - (2 + ((caml_check_bound(table[2],1)[2] * 16 | 0) / 32 | 0) | 0) - >= - n) - {var n$0=new_method(table);switch$0 = 1} - if(! switch$0)var n$0=n; - caml_check_bound(table[2],n$0)[1 + n$0] = 0; - return n$0} - function set_methods(table,methods) - {var len=methods.length - 1,i=[0,0]; - for(;;) - {if(i[1] >= len)return 0; - var - _hz_=i[1], - label=caml_check_bound(methods,_hz_)[1 + _hz_], - next= - function(param) - {i[1]++; - var _hE_=i[1]; - return caml_check_bound(methods,_hE_)[1 + _hE_]}, - clo=next(0); - if(typeof clo === "number") - switch(clo) - {case 0: - var - x=next(0), - clo$0=function(x){return function(obj){return x}}(x); - break; - case 1: - var - n=next(0), - clo$0=function(n){return function(obj){return obj[1 + n]}}(n); - break; - case 2: - var - e=next(0), - n$0=next(0), - clo$0= - function(e,n){return function(obj){return obj[1 + e][1 + n]}} - (e,n$0); - break; - case 3: - var - n$1=next(0), - clo$0= - function(n) - {return function(obj){return caml_call1(obj[1][1 + n],obj)}} - (n$1); - break; - case 4: - var - n$2=next(0), - clo$0= - function(n){return function(obj,x){obj[1 + n] = x;return 0}} - (n$2); - break; - case 5: - var - f=next(0), - x$0=next(0), - clo$0= - function(f,x){return function(obj){return caml_call1(f,x)}} - (f,x$0); - break; - case 6: - var - f$0=next(0), - n$3=next(0), - clo$0= - function(f,n) - {return function(obj){return caml_call1(f,obj[1 + n])}} - (f$0,n$3); - break; - case 7: - var - f$1=next(0), - e$0=next(0), - n$4=next(0), - clo$0= - function(f,e,n) - {return function(obj){return caml_call1(f,obj[1 + e][1 + n])}} - (f$1,e$0,n$4); - break; - case 8: - var - f$2=next(0), - n$5=next(0), - clo$0= - function(f,n) - {return function(obj) - {return caml_call1(f,caml_call1(obj[1][1 + n],obj))}} - (f$2,n$5); - break; - case 9: - var - f$3=next(0), - x$1=next(0), - y=next(0), - clo$0= - function(f,x,y){return function(obj){return caml_call2(f,x,y)}} - (f$3,x$1,y); - break; - case 10: - var - f$4=next(0), - x$2=next(0), - n$6=next(0), - clo$0= - function(f,x,n) - {return function(obj){return caml_call2(f,x,obj[1 + n])}} - (f$4,x$2,n$6); - break; - case 11: - var - f$5=next(0), - x$3=next(0), - e$1=next(0), - n$7=next(0), - clo$0= - function(f,x,e,n) - {return function(obj) - {return caml_call2(f,x,obj[1 + e][1 + n])}} - (f$5,x$3,e$1,n$7); - break; - case 12: - var - f$6=next(0), - x$4=next(0), - n$8=next(0), - clo$0= - function(f,x,n) - {return function(obj) - {return caml_call2(f,x,caml_call1(obj[1][1 + n],obj))}} - (f$6,x$4,n$8); - break; - case 13: - var - f$7=next(0), - n$9=next(0), - x$5=next(0), - clo$0= - function(f,n,x) - {return function(obj){return caml_call2(f,obj[1 + n],x)}} - (f$7,n$9,x$5); - break; - case 14: - var - f$8=next(0), - e$2=next(0), - n$10=next(0), - x$6=next(0), - clo$0= - function(f,e,n,x) - {return function(obj) - {return caml_call2(f,obj[1 + e][1 + n],x)}} - (f$8,e$2,n$10,x$6); - break; - case 15: - var - f$9=next(0), - n$11=next(0), - x$7=next(0), - clo$0= - function(f,n,x) - {return function(obj) - {return caml_call2(f,caml_call1(obj[1][1 + n],obj),x)}} - (f$9,n$11,x$7); - break; - case 16: - var - n$12=next(0), - x$8=next(0), - clo$0= - function(n,x) - {return function(obj){return caml_call2(obj[1][1 + n],obj,x)}} - (n$12,x$8); - break; - case 17: - var - n$13=next(0), - m=next(0), - clo$0= - function(n,m) - {return function(obj) - {return caml_call2(obj[1][1 + n],obj,obj[1 + m])}} - (n$13,m); - break; - case 18: - var - n$14=next(0), - e$3=next(0), - m$0=next(0), - clo$0= - function(n,e,m) - {return function(obj) - {return caml_call2(obj[1][1 + n],obj,obj[1 + e][1 + m])}} - (n$14,e$3,m$0); - break; - case 19: - var - n$15=next(0), - m$1=next(0), - clo$0= - function(n,m) - {return function(obj) - {var _hC_=caml_call1(obj[1][1 + m],obj); - return caml_call2(obj[1][1 + n],obj,_hC_)}} - (n$15,m$1); - break; - case 20: - var m$2=next(0),x$9=next(0); - new_cache(table); - var - clo$0= - function(m,x) - {return function(obj) - {return caml_call1(caml_get_public_method(x,m,0),x)}} - (m$2,x$9); - break; - case 21: - var m$3=next(0),n$16=next(0); - new_cache(table); - var - clo$0= - function(m,n) - {return function(obj) - {var _hB_=obj[1 + n]; - return caml_call1(caml_get_public_method(_hB_,m,0),_hB_)}} - (m$3,n$16); - break; - case 22: - var m$4=next(0),e$4=next(0),n$17=next(0); - new_cache(table); - var - clo$0= - function(m,e,n) - {return function(obj) - {var _hA_=obj[1 + e][1 + n]; - return caml_call1(caml_get_public_method(_hA_,m,0),_hA_)}} - (m$4,e$4,n$17); - break; - default: - var m$5=next(0),n$18=next(0); - new_cache(table); - var - clo$0= - function(m,n) - {return function(obj) - {var _hD_=caml_call1(obj[1][1 + n],obj); - return caml_call1(caml_get_public_method(_hD_,m,0),_hD_)}} - (m$5,n$18)} - else - var clo$0=clo; - set_method(table,label,clo$0); - i[1]++}} - function stats$0(param) - {return [0,table_count[1],method_count[1],inst_var_count[1]]} - var - CamlinternalOO= + n$1 = next(0), + clo$0 = + function(n){ + return function(obj){return caml_call1(obj[1][1 + n], obj);}; + } + (n$1); + break; + case 4: + var + n$2 = next(0), + clo$0 = + function(n){return function(obj, x){obj[1 + n] = x; return 0;};} + (n$2); + break; + case 5: + var + f = next(0), + x$0 = next(0), + clo$0 = + function(f, x){return function(obj){return caml_call1(f, x);};} + (f, x$0); + break; + case 6: + var + f$0 = next(0), + n$3 = next(0), + clo$0 = + function(f, n){ + return function(obj){return caml_call1(f, obj[1 + n]);}; + } + (f$0, n$3); + break; + case 7: + var + f$1 = next(0), + e$0 = next(0), + n$4 = next(0), + clo$0 = + function(f, e, n){ + return function(obj){return caml_call1(f, obj[1 + e][1 + n]);}; + } + (f$1, e$0, n$4); + break; + case 8: + var + f$2 = next(0), + n$5 = next(0), + clo$0 = + function(f, n){ + return function(obj){ + return caml_call1(f, caml_call1(obj[1][1 + n], obj));}; + } + (f$2, n$5); + break; + case 9: + var + f$3 = next(0), + x$1 = next(0), + y = next(0), + clo$0 = + function(f, x, y){ + return function(obj){return caml_call2(f, x, y);}; + } + (f$3, x$1, y); + break; + case 10: + var + f$4 = next(0), + x$2 = next(0), + n$6 = next(0), + clo$0 = + function(f, x, n){ + return function(obj){return caml_call2(f, x, obj[1 + n]);}; + } + (f$4, x$2, n$6); + break; + case 11: + var + f$5 = next(0), + x$3 = next(0), + e$1 = next(0), + n$7 = next(0), + clo$0 = + function(f, x, e, n){ + return function(obj){ + return caml_call2(f, x, obj[1 + e][1 + n]);}; + } + (f$5, x$3, e$1, n$7); + break; + case 12: + var + f$6 = next(0), + x$4 = next(0), + n$8 = next(0), + clo$0 = + function(f, x, n){ + return function(obj){ + return caml_call2(f, x, caml_call1(obj[1][1 + n], obj));}; + } + (f$6, x$4, n$8); + break; + case 13: + var + f$7 = next(0), + n$9 = next(0), + x$5 = next(0), + clo$0 = + function(f, n, x){ + return function(obj){return caml_call2(f, obj[1 + n], x);}; + } + (f$7, n$9, x$5); + break; + case 14: + var + f$8 = next(0), + e$2 = next(0), + n$10 = next(0), + x$6 = next(0), + clo$0 = + function(f, e, n, x){ + return function(obj){ + return caml_call2(f, obj[1 + e][1 + n], x);}; + } + (f$8, e$2, n$10, x$6); + break; + case 15: + var + f$9 = next(0), + n$11 = next(0), + x$7 = next(0), + clo$0 = + function(f, n, x){ + return function(obj){ + return caml_call2(f, caml_call1(obj[1][1 + n], obj), x);}; + } + (f$9, n$11, x$7); + break; + case 16: + var + n$12 = next(0), + x$8 = next(0), + clo$0 = + function(n, x){ + return function(obj){return caml_call2(obj[1][1 + n], obj, x);}; + } + (n$12, x$8); + break; + case 17: + var + n$13 = next(0), + m = next(0), + clo$0 = + function(n, m){ + return function(obj){ + return caml_call2(obj[1][1 + n], obj, obj[1 + m]);}; + } + (n$13, m); + break; + case 18: + var + n$14 = next(0), + e$3 = next(0), + m$0 = next(0), + clo$0 = + function(n, e, m){ + return function(obj){ + return caml_call2(obj[1][1 + n], obj, obj[1 + e][1 + m]);}; + } + (n$14, e$3, m$0); + break; + case 19: + var + n$15 = next(0), + m$1 = next(0), + clo$0 = + function(n, m){ + return function(obj){ + var _k_ = caml_call1(obj[1][1 + m], obj); + return caml_call2(obj[1][1 + n], obj, _k_);}; + } + (n$15, m$1); + break; + case 20: + var m$2 = next(0), x$9 = next(0); + new_cache(table); + var + clo$0 = + function(m, x){ + return function(obj){ + return caml_call1(caml_get_public_method(x, m, 0), x);}; + } + (m$2, x$9); + break; + case 21: + var m$3 = next(0), n$16 = next(0); + new_cache(table); + var + clo$0 = + function(m, n){ + return function(obj){ + var _j_ = obj[1 + n]; + return caml_call1(caml_get_public_method(_j_, m, 0), _j_);}; + } + (m$3, n$16); + break; + case 22: + var m$4 = next(0), e$4 = next(0), n$17 = next(0); + new_cache(table); + var + clo$0 = + function(m, e, n){ + return function(obj){ + var _i_ = obj[1 + e][1 + n]; + return caml_call1(caml_get_public_method(_i_, m, 0), _i_);}; + } + (m$4, e$4, n$17); + break; + default: + var m$5 = next(0), n$18 = next(0); + new_cache(table); + var + clo$0 = + function(m, n){ + return function(obj){ + var _l_ = caml_call1(obj[1][1 + n], obj); + return caml_call1(caml_get_public_method(_l_, m, 0), _l_);}; + } + (m$5, n$18); + } + else + var clo$0 = clo; + set_method(table, label, clo$0); + i[1]++; + } + } + function stats(param){ + return [0, table_count[1], method_count[1], inst_var_count[1]]; + } + var + CamlinternalOO = [0, public_method_label, new_method, @@ -26935,2065 +28439,228 @@ make_class, make_class_store, dummy_class, - copy$7, + copy, create_object, create_object_opt, run_initializers, run_initializers_opt, create_object_and_run_initiali, lookup_tables, - params$0, - stats$0]; - caml_register_global(821,CamlinternalOO,"CamlinternalOO"); - var Stdlib_Oo=[0,copy$7,public_method_label,public_method_label]; - caml_register_global(822,Stdlib_Oo,"Stdlib__Oo"); - function init_mod_block(loc,comps$0) - {var - length=comps$0.length - 1, - modu=caml_obj_block(0,length), - _hv_=length - 1 | 0, - _hu_=0; - if(_hv_ >= 0) - {var i=_hu_; - for(;;) - {var shape=caml_check_bound(comps$0,i)[1 + i]; - if(typeof shape === "number") - switch(shape) - {case 0: - var - fn$0= - function(i) - {function fn(x) - {var fn$0=modu[1 + i]; - if(fn === fn$0)throw [0,Undefined_recursive_module,loc]; - return caml_call1(fn$0,x)} - return fn}, - fn=fn$0(i), - init=fn; - break; - case 1: - var l=[]; - runtime.caml_update_dummy - (l, - [246, - function(l,i) - {return function(_hx_) - {var l$0=modu[1 + i]; - if(l === l$0)throw [0,Undefined_recursive_module,loc]; - var _hy_=caml_obj_tag(l$0); - return 250 === _hy_ - ?l$0[1] - :246 === _hy_?force_lazy_block(l$0):l$0}} - (l,i)]); - var init=l; - break; - default:var init=dummy_class(loc)} - else - if(0 === shape[0]) - var comps=shape[1],init=init_mod_block(loc,comps); - else - var v=shape[1],init=v; - modu[1 + i] = init; - var _hw_=i + 1 | 0; - if(_hv_ !== i){var i=_hw_;continue} - break}} - return modu} - function init_mod(loc,shape) - {if(typeof shape !== "number" && 0 === shape[0]) - {var comps=shape[1];return init_mod_block(loc,comps)} - return failwith(cst_CamlinternalMod_init_mod_n)} - function update_mod_block(comps$0,o,n) - {if(0 === caml_obj_tag(n) && comps$0.length - 1 <= n.length - 1) - {var _hs_=comps$0.length - 1 - 1 | 0,_hr_=0; - if(_hs_ >= 0) - {var i=_hr_; - for(;;) - {var n$0=n[1 + i],shape=caml_check_bound(comps$0,i)[1 + i]; - if(typeof shape === "number") - if(2 === shape) - {var switch$0=0; - if(0 === caml_obj_tag(n$0) && 4 === n$0.length - 1) - {var cl=o[1 + i],j=0; - for(;;) - {cl[1 + j] = n$0[1 + j]; - var _hq_=j + 1 | 0; - if(3 !== j){var j=_hq_;continue} - break}} - else - switch$0 = 1; - if(switch$0)throw [0,Assert_failure,_cO_]} - else - o[1 + i] = n$0; - else - if(0 === shape[0]) - {var comps=shape[1];update_mod_block(comps,o[1 + i],n$0)} - var _ht_=i + 1 | 0; - if(_hs_ !== i){var i=_ht_;continue} - break}} - return 0} - throw [0,Assert_failure,_cP_]} - function update_mod(shape,o,n) - {if(typeof shape !== "number" && 0 === shape[0]) - {var comps=shape[1];return update_mod_block(comps,o,n)} - return failwith(cst_CamlinternalMod_update_mod)} - var CamlinternalMod=[0,init_mod,update_mod]; - caml_register_global(823,CamlinternalMod,"CamlinternalMod"); - var - initial_buffer=caml_create_bytes(32), - buffer=[0,initial_buffer], - bufpos=[0,0]; - function reset_buffer(param) - {buffer[1] = initial_buffer;bufpos[1] = 0;return 0} - function store(c) - {if(caml_ml_bytes_length(buffer[1]) <= bufpos[1]) - {var newbuffer=caml_create_bytes(2 * bufpos[1] | 0); - blit(buffer[1],0,newbuffer,0,bufpos[1]); - buffer[1] = newbuffer} - caml_bytes_set(buffer[1],bufpos[1],c); - bufpos[1]++; - return 0} - function get_string(param) - {var s=sub_string(buffer[1],0,bufpos[1]); - buffer[1] = initial_buffer; - return s} - function make_lexer(keywords) - {var kwd_table=caml_call2(Stdlib_Hashtbl[1],0,17); - iter$2 - (function(s){return caml_call3(Stdlib_Hashtbl[5],kwd_table,s,[0,s])}, - keywords); - function ident_or_keyword(id) - {try - {var _ho_=caml_call2(Stdlib_Hashtbl[6],kwd_table,id);return _ho_} - catch(_hp_) - {_hp_ = caml_wrap_exception(_hp_); - if(_hp_ === Not_found)return [1,id]; - throw _hp_}} - function keyword_or_error(c) - {var s=make$1(1,c); - try - {var _hm_=caml_call2(Stdlib_Hashtbl[6],kwd_table,s);return _hm_} - catch(_hn_) - {_hn_ = caml_wrap_exception(_hn_); - if(_hn_ === Not_found)throw [0,Error,cat(cst_Illegal_character,s)]; - throw _hn_}} - function end_exponent_part(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hl_=match[1]; - if(9 >= _hl_ - 48 >>> 0){junk(strm);store(_hl_);continue}} - return [0,[3,caml_float_of_string(get_string(0))]]}} - function exponent_part(strm) - {var match=peek$0(strm); - if(match) - {var _hk_=match[1],switch$0=0; - if(43 !== _hk_ && 45 !== _hk_)switch$0 = 1; - if(! switch$0) - {junk(strm);store(_hk_);return end_exponent_part(strm)}} - return end_exponent_part(strm)} - function number(s) - {for(;;) - {var match=peek$0(s); - if(match) - {var _hh_=match[1]; - if(58 <= _hh_) - {var switch$0=0; - if(69 === _hh_ || 101 === _hh_)switch$0 = 1; - if(switch$0){junk(s);store(69);return exponent_part(s)}} - else - {if(46 === _hh_) - {junk(s); - store(46); - for(;;) - {var match$0=peek$0(s); - if(match$0) - {var _hi_=match$0[1],_hj_=_hi_ - 69 | 0; - if(32 < _hj_ >>> 0) - {if(9 >= _hj_ + 21 >>> 0){junk(s);store(_hi_);continue}} - else - if(30 < _hj_ - 1 >>> 0) - {junk(s);store(69);return exponent_part(s)}} - return [0,[3,caml_float_of_string(get_string(0))]]}} - if(48 <= _hh_){junk(s);store(_hh_);continue}}} - return [0,[2,caml_int_of_string(get_string(0))]]}} - function ident2(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hf_=match[1],switch$0=0; - if(94 <= _hf_) - {var _hg_=_hf_ - 95 | 0; - if(30 < _hg_ >>> 0) - {if(32 > _hg_)switch$0 = 1} - else - if(29 === _hg_)switch$0 = 1} - else - if(65 <= _hf_) - {if(92 === _hf_)switch$0 = 1} - else - if(33 <= _hf_) - switch(_hf_ - 33 | 0) - {case 0: - case 2: - case 3: - case 4: - case 5: - case 9: - case 10: - case 12: - case 14: - case 25: - case 27: - case 28: - case 29: - case 30: - case 31:switch$0 = 1;break - } - if(switch$0){junk(strm);store(_hf_);continue}} - return [0,ident_or_keyword(get_string(0))]}} - function neg_number(s) - {var match=peek$0(s); - if(match) - {var _he_=match[1]; - if(9 >= _he_ - 48 >>> 0) - {junk(s);reset_buffer(0);store(45);store(_he_);return number(s)}} - reset_buffer(0); - store(45); - return ident2(s)} - function ident(strm) - {for(;;) - {var match=peek$0(strm); - if(match) - {var _hc_=match[1],switch$0=0; - if(91 <= _hc_) - {var _hd_=_hc_ - 95 | 0; - if(27 < _hd_ >>> 0) - {if(97 <= _hd_)switch$0 = 1} - else - if(1 !== _hd_)switch$0 = 1} - else - if(48 <= _hc_) - {if(6 < _hc_ - 58 >>> 0)switch$0 = 1} - else - if(39 === _hc_)switch$0 = 1; - if(switch$0){junk(strm);store(_hc_);continue}} - return [0,ident_or_keyword(get_string(0))]}} - function next_token$0(counter,strm) - {for(;;) - {var match=peek$0(strm); - if(! match)return 0; - var _g5_=match[1],switch$0=0; - if(124 <= _g5_) - {if(127 <= _g5_) - {if(192 <= _g5_)switch$0 = 1} - else - if(125 !== _g5_)switch$0 = 2} - else - {var _g6_=_g5_ - 65 | 0; - if(57 < _g6_ >>> 0) - {if(58 > _g6_) - switch(_g6_ + 65 | 0) - {case 34: - junk(strm); - reset_buffer(0); - for(;;) - {var match$1=peek$0(strm); - if(! match$1)throw Failure$0; - var _g8_=match$1[1]; - if(34 === _g8_){junk(strm);return [0,[4,get_string(0)]]} - if(92 !== _g8_){junk(strm);store(_g8_);continue} - junk(strm); - try - {var c$0=escape(strm)} - catch(_hb_) - {_hb_ = caml_wrap_exception(_hb_); - if(_hb_ === Failure$0)throw [0,Error,cst$96]; - throw _hb_} - store(c$0)} - case 39: - junk(strm); - try - {var match$2=peek$0(strm); - if(! match$2)throw Failure$0; - var _g9_=match$2[1]; - if(92 === _g9_) - {junk(strm); - try - {var _g__=escape(strm)} - catch(_ha_) - {_ha_ = caml_wrap_exception(_ha_); - if(_ha_ === Failure$0)throw [0,Error,cst$97]; - throw _ha_} - var c=_g__} - else - {junk(strm);var c=_g9_}} - catch(_g$_) - {_g$_ = caml_wrap_exception(_g$_); - if(_g$_ === Failure$0)throw [0,Error,cst$94]; - throw _g$_} - var match$0=peek$0(strm); - if(match$0 && 39 === match$0[1]) - {junk(strm);return [0,[5,c]]} - throw [0,Error,cst$95]; - case 40: - junk(strm); - if(counter >= 50) - return caml_trampoline_return(maybe_comment,[0,strm]); - var counter$0=counter + 1 | 0; - return maybe_comment(counter$0,strm); - case 45:junk(strm);return neg_number(strm); - case 9: - case 10: - case 12: - case 13: - case 26: - case 32:junk(strm);continue; - case 48: - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - junk(strm);reset_buffer(0);store(_g5_);return number(strm); - case 33: - case 35: - case 36: - case 37: - case 38: - case 42: - case 43: - case 47: - case 58: - case 60: - case 61: - case 62: - case 63: - case 64:switch$0 = 2;break - }} - else - {var _g7_=_g6_ - 26 | 0; - if(5 < _g7_ >>> 0) - switch$0 = 1; - else - switch(_g7_) - {case 4:switch$0 = 1;break;case 1:case 3:switch$0 = 2;break}}} - switch(switch$0) - {case 0:junk(strm);return [0,keyword_or_error(_g5_)]; - case 1:junk(strm);reset_buffer(0);store(_g5_);return ident(strm); - default:junk(strm);reset_buffer(0);store(_g5_);return ident2(strm)}}} - function maybe_comment(counter,strm) - {var match=peek$0(strm); - if(match && 42 === match[1]) - {junk(strm); - comment(strm); - if(counter >= 50) - return caml_trampoline_return(next_token$0,[0,strm]); - var counter$0=counter + 1 | 0; - return next_token$0(counter$0,strm)} - return [0,keyword_or_error(40)]} - function next_token(strm){return caml_trampoline(next_token$0(0,strm))} - function escape(strm) - {var match=peek$0(strm); - if(! match)throw Failure$0; - var _g2_=match[1]; - if(58 <= _g2_) - {var switcher=_g2_ - 110 | 0; - if(6 >= switcher >>> 0) - switch(switcher) - {case 0:junk(strm);return 10; - case 4:junk(strm);return 13; - case 6:junk(strm);return 9 - }} - else - if(48 <= _g2_) - {junk(strm); - var match$0=peek$0(strm); - if(match$0) - {var _g3_=match$0[1]; - if(9 >= _g3_ - 48 >>> 0) - {junk(strm); - var match$1=peek$0(strm); - if(match$1) - {var _g4_=match$1[1]; - if(9 >= _g4_ - 48 >>> 0) - {junk(strm); - return chr - ((((_g2_ - 48 | 0) * 100 | 0) - + - ((_g3_ - 48 | 0) * 10 | 0) - | - 0) - + - (_g4_ - 48 | 0) - | - 0)}} - throw [0,Error,cst$99]}} - throw [0,Error,cst$98]} - junk(strm); - return _g2_} - function comment(strm) - {a: - for(;;) - {var match=peek$0(strm); - if(! match)throw Failure$0; - var switcher=match[1] - 40 | 0; - if(2 >= switcher >>> 0) - switch(switcher) - {case 0: - junk(strm); - var match$0=peek$0(strm); - if(! match$0)throw Failure$0; - if(42 === match$0[1]){junk(strm);comment(strm);continue} - junk(strm); - continue; - case 1:break; - default: - junk(strm); - for(;;) - {var match$1=peek$0(strm); - if(! match$1)throw Failure$0; - var _g1_=match$1[1]; - if(41 === _g1_){junk(strm);return 0} - if(42 === _g1_){junk(strm);continue} - junk(strm); - continue a}} - junk(strm)}} - return function(input) - {return from(function(count){return next_token(input)})}} - var Stdlib_Genlex=[0,make_lexer]; - caml_register_global(824,Stdlib_Genlex,"Stdlib__Genlex"); - function MakeSeeded$0(H) - {var prng=[246,function(_g0_){return caml_call1(_cg_[2],0)}]; - function create(opt,initial_size) - {if(opt) - var sth=opt[1],random=sth; - else - var random=caml_call1(Stdlib_Hashtbl[17],0); - var x=16; - for(;;) - {if(initial_size > x && max_array_length >= (x * 2 | 0)) - {var x$0=x * 2 | 0,x=x$0;continue} - if(random) - var - _gY_=caml_obj_tag(prng), - _gZ_=250 === _gY_?prng[1]:246 === _gY_?force_lazy_block(prng):prng, - seed=caml_call1(_cg_[4],_gZ_); - else - var seed=0; - return [0,0,caml_make_vect(x,0),seed,x]}} - function clear(h) - {h[1] = 0; - var len=h[2].length - 1,_gW_=len - 1 | 0,_gV_=0; - if(_gW_ >= 0) - {var i=_gV_; - for(;;) - {caml_check_bound(h[2],i)[1 + i] = 0; - var _gX_=i + 1 | 0; - if(_gW_ !== i){var i=_gX_;continue} - break}} - return 0} - function reset(h) - {var len=h[2].length - 1; - return len === h[4] - ?clear(h) - :(h[1] = 0,h[2] = caml_make_vect(h[4],0),0)} - function copy(init) - {var _gS_=init[4],_gT_=init[3],_gU_=copy$1(init[2]); - return [0,init[1],_gU_,_gT_,_gS_]} - function key_index(h,hkey){return hkey & (h[2].length - 1 - 1 | 0)} - function clean(h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var hkey=param$0[1],rest=param$0[3],c=param$0[2]; - if(caml_call1(H[7],c)) - {var rest$0=param$0[3],c$0=param$0[2]; - return [0,hkey,c$0,do_bucket(rest$0)]} - h[1] = h[1] - 1 | 0; - var param$0=rest}} - var d=h[2],_gP_=d.length - 1 - 1 | 0,_gO_=0; - if(_gP_ >= 0) - {var i=_gO_; - for(;;) - {var _gQ_=do_bucket(caml_check_bound(d,i)[1 + i]); - caml_check_bound(d,i)[1 + i] = _gQ_; - var _gR_=i + 1 | 0; - if(_gP_ !== i){var i=_gR_;continue} - break}} - return 0} - function resize(h) - {var odata=h[2],osize=odata.length - 1,nsize=osize * 2 | 0; - clean(h); - var - _gH_=nsize < max_array_length?1:0, - _gI_=_gH_?(osize >>> 1 | 0) <= h[1]?1:0:_gH_; - if(_gI_) - {var ndata=caml_make_vect(nsize,0); - h[2] = ndata; - var - insert_bucket= - function(param) - {if(! param)return 0; - var rest=param[3],data=param[2],hkey=param[1]; - insert_bucket(rest); - var - nidx=key_index(h,hkey), - _gN_=[0,hkey,data,caml_check_bound(ndata,nidx)[1 + nidx]]; - caml_check_bound(ndata,nidx)[1 + nidx] = _gN_; - return 0}, - _gK_=osize - 1 | 0, - _gJ_=0; - if(_gK_ >= 0) - {var i=_gJ_; - for(;;) - {insert_bucket(caml_check_bound(odata,i)[1 + i]); - var _gM_=i + 1 | 0; - if(_gK_ !== i){var i=_gM_;continue} - break}} - var _gL_=0} - else - var _gL_=_gI_; - return _gL_} - function add(h,key,info) - {var - hkey=caml_call2(H[2],h[3],key), - i=key_index(h,hkey), - container=caml_call2(H[1],key,info), - bucket=[0,hkey,container,caml_check_bound(h[2],i)[1 + i]]; - caml_check_bound(h[2],i)[1 + i] = bucket; - h[1] = h[1] + 1 | 0; - var _gG_=h[2].length - 1 << 1 < h[1]?1:0; - return _gG_?resize(h):_gG_} - function remove(h,key) - {var hkey=caml_call2(H[2],h[3],key); - function remove_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var hk=param$0[1],next=param$0[3],c=param$0[2]; - if(hkey === hk) - {var match=caml_call2(H[3],c,key); - switch(match) - {case 0:h[1] = h[1] - 1 | 0;return next; - case 1:return [0,hk,c,remove_bucket(next)]; - default:h[1] = h[1] - 1 | 0;var param$0=next;continue}} - var next$0=param$0[3],c$0=param$0[2]; - return [0,hk,c$0,remove_bucket(next$0)]}} - var - i=key_index(h,hkey), - _gF_=remove_bucket(caml_check_bound(h[2],i)[1 + i]); - caml_check_bound(h[2],i)[1 + i] = _gF_; - return 0} - function find(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gE_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gE_)[1 + _gE_], - param=param$1; - for(;;) - {if(! param)throw Not_found; - var hk=param[1],rest=param[3],c=param[2]; - if(hkey !== hk){var param$0=param[3],param=param$0;continue} - var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var match$0=caml_call1(H[4],c); - if(match$0){var d=match$0[1];return d} - var param=rest; - continue; - case 1:var param=rest;continue; - default:var param=rest;continue}}} - function find_opt(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gD_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gD_)[1 + _gD_], - param=param$1; - for(;;) - {if(! param)return 0; - var hk=param[1],rest=param[3],c=param[2]; - if(hkey !== hk){var param$0=param[3],param=param$0;continue} - var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var d=caml_call1(H[4],c);if(d)return d;var param=rest;continue; - case 1:var param=rest;continue; - default:var param=rest;continue}}} - function find_all(h,key) - {var hkey=caml_call2(H[2],h[3],key); - function find_in_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var hk=param$0[1],rest=param$0[3],c=param$0[2]; - if(hkey !== hk){var param$1=param$0[3],param$0=param$1;continue} - var match=caml_call2(H[3],c,key); - switch(match) - {case 0: - var match$0=caml_call1(H[4],c); - if(match$0){var d=match$0[1];return [0,d,find_in_bucket(rest)]} - var param$0=rest; - continue; - case 1:var param$0=rest;continue; - default:var param$0=rest;continue}}} - var _gC_=key_index(h,hkey); - return find_in_bucket(caml_check_bound(h[2],_gC_)[1 + _gC_])} - function replace(h,key,info) - {var hkey=caml_call2(H[2],h[3],key); - function replace_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)throw Not_found; - var hk=param$0[1],next=param$0[3],c=param$0[2]; - if(hkey !== hk){var param$1=param$0[3],param$0=param$1;continue} - var match=caml_call2(H[3],c,key); - if(! match)return caml_call3(H[6],c,key,info); - var param$0=next}} - var i=key_index(h,hkey),l=caml_check_bound(h[2],i)[1 + i]; - try - {var _gA_=replace_bucket(l);return _gA_} - catch(_gB_) - {_gB_ = caml_wrap_exception(_gB_); - if(_gB_ !== Not_found)throw _gB_; - var container=caml_call2(H[1],key,info); - caml_check_bound(h[2],i)[1 + i] = [0,hkey,container,l]; - h[1] = h[1] + 1 | 0; - var _gz_=h[2].length - 1 << 1 < h[1]?1:0; - return _gz_?resize(h):_gz_}} - function mem(h,key) - {var - hkey=caml_call2(H[2],h[3],key), - _gy_=key_index(h,hkey), - param$1=caml_check_bound(h[2],_gy_)[1 + _gy_], - param=param$1; - for(;;) - {if(! param)return 0; - var hk=param[1],rest=param[3],c=param[2]; - if(hk !== hkey){var param$0=param[3],param=param$0;continue} - var match=caml_call2(H[3],c,key); - if(! match)return 1; - var param=rest}} - function iter$0(f,h) - {var d$0=h[2],_gw_=d$0.length - 1 - 1 | 0,_gv_=0; - if(_gw_ >= 0) - {var i=_gv_; - a: - for(;;) - {var param$0=caml_check_bound(d$0,i)[1 + i],param=param$0; - for(;;) - {if(param) - {var - rest=param[3], - c=param[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c), - switch$0=0; - if(match && match$0) - {var d=match$0[1],k=match[1];caml_call2(f,k,d);switch$0 = 1} - var param=rest; - continue} - var _gx_=i + 1 | 0; - if(_gw_ !== i){var i=_gx_;continue a} - break} - break}} - return 0} - function fold(f,h,init) - {var d$0=h[2],accu$1=[0,init],_gs_=d$0.length - 1 - 1 | 0,_gr_=0; - if(_gs_ >= 0) - {var i=_gr_; - a: - for(;;) - {var - _gt_=accu$1[1], - b$0=caml_check_bound(d$0,i)[1 + i], - b=b$0, - accu=_gt_; - for(;;) - {if(b) - {var - rest=b[3], - c=b[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c), - switch$0=0; - if(match && match$0) - {var d=match$0[1],k=match[1],accu$0=caml_call3(f,k,d,accu); - switch$0 = 1} - if(! switch$0)var accu$0=accu; - var b=rest,accu=accu$0; - continue} - accu$1[1] = accu; - var _gu_=i + 1 | 0; - if(_gs_ !== i){var i=_gu_;continue a} - break} - break}} - return accu$1[1]} - function filter_map_inplace(f,h) - {function do_bucket(param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var - rest=param$0[3], - c=param$0[2], - hk=param$0[1], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c); - if(match && match$0) - {var d=match$0[1],k=match[1],match$1=caml_call2(f,k,d); - if(match$1) - {var new_d=match$1[1]; - caml_call3(H[6],c,k,new_d); - return [0,hk,c,do_bucket(rest)]} - var param$0=rest; - continue} - var param$0=rest}} - var d=h[2],_go_=d.length - 1 - 1 | 0,_gn_=0; - if(_go_ >= 0) - {var i=_gn_; - for(;;) - {var _gp_=do_bucket(caml_check_bound(d,i)[1 + i]); - caml_check_bound(d,i)[1 + i] = _gp_; - var _gq_=i + 1 | 0; - if(_go_ !== i){var i=_gq_;continue} - break}} - return 0} - function length(h){return h[1]} - function bucket_length(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var - param$1=param$0[3], - accu$1=accu$0 + 1 | 0, - accu$0=accu$1, - param$0=param$1}} - function stats(h) - {var - _gj_=h[2], - _gk_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length(0,b))},_gk_,_gj_), - histo=caml_make_vect(mbl + 1 | 0,0), - _gl_=h[2]; - iter$5 - (function(b) - {var - l=bucket_length(0,b), - _gm_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _gm_; - return 0}, - _gl_); - return [0,h[1],h[2].length - 1,mbl,histo]} - function bucket_length_alive(accu,param) - {var accu$0=accu,param$0=param; - for(;;) - {if(! param$0)return accu$0; - var rest=param$0[3],c=param$0[2]; - if(caml_call1(H[7],c)) - {var accu$1=accu$0 + 1 | 0,accu$0=accu$1,param$0=rest;continue} - var param$1=param$0[3],param$0=param$1}} - function stats_alive(h) - {var - size=[0,0], - _gf_=h[2], - _gg_=0, - mbl= - fold_left$3 - (function(m,b){return max$1(m,bucket_length_alive(0,b))},_gg_,_gf_), - histo=caml_make_vect(mbl + 1 | 0,0), - _gh_=h[2]; - iter$5 - (function(b) - {var l=bucket_length_alive(0,b); - size[1] = size[1] + l | 0; - var _gi_=caml_check_bound(histo,l)[1 + l] + 1 | 0; - caml_check_bound(histo,l)[1 + l] = _gi_; - return 0}, - _gh_); - return [0,size[1],h[2].length - 1,mbl,histo]} - function to_seq(tbl) - {var tbl_data=tbl[2]; - function aux(i,buck,param) - {var i$0=i,buck$0=buck; - for(;;) - {if(! buck$0) - {if(i$0 === tbl_data.length - 1)return 0; - var - buck$1=caml_check_bound(tbl_data,i$0)[1 + i$0], - i$1=i$0 + 1 | 0, - i$0=i$1, - buck$0=buck$1; - continue} - var - next=buck$0[3], - c=buck$0[2], - match=caml_call1(H[5],c), - match$0=caml_call1(H[4],c); - if(match && match$0) - {var data=match$0[1],key=match[1]; - return [0, - [0,key,data], - function(_ge_){return aux(i$0,next,_ge_)}]} - var buck$0=next}} - var _gb_=0,_gc_=0; - return function(_gd_){return aux(_gc_,_gb_,_gd_)}} - function to_seq_keys(m) - {var _f9_=to_seq(m); - function _f__(_ga_){return _ga_[1]} - return function(_f$_){return map$1(_f__,_f9_,_f$_)}} - function to_seq_values(m) - {var _f5_=to_seq(m); - function _f6_(_f8_){return _f8_[2]} - return function(_f7_){return map$1(_f6_,_f5_,_f7_)}} - function add_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return add(tbl,k,v)}, - i)} - function replace_seq(tbl,i) - {return iter - (function(param) - {var v=param[2],k=param[1];return replace(tbl,k,v)}, - i)} - function of_seq(i){var tbl=create(0,16);replace_seq(tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter$0, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function create$5(param){return caml_call1(_o_[1],1)} - function get_key$0(t){return caml_call2(_o_[3],t,0)} - function get_key_copy$0(t){return caml_call2(_o_[4],t,0)} - function set_key$0(t,k){return caml_call3(_o_[5],t,0,k)} - function unset_key$0(t){return caml_call2(_o_[6],t,0)} - function check_key$0(t){return caml_call2(_o_[7],t,0)} - function blit_key$0(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} - function get_data$1(t){return caml_call1(_o_[9],t)} - function get_data_copy(t){return caml_call1(_o_[10],t)} - function set_data(t,d){return caml_call2(_o_[11],t,d)} - function unset_data(t){return caml_call1(_o_[12],t)} - function check_data(t){return caml_call1(_o_[13],t)} - function blit_data(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$4(key,data) - {var eph=create$5(0);set_data(eph,data);set_key$0(eph,key);return eph} - function query(eph,key) - {var match=get_key$0(eph); - if(! match)return 0; - var k=match[1]; - return k === key?get_data$1(eph):0} - function MakeSeeded$1(H) - {function create(k,d) - {var c=create$5(0);set_data(c,d);set_key$0(c,k);return c} - var hash=H[2]; - function equal(c,k) - {var match=get_key$0(c); - if(! match)return 2; - var k$0=match[1]; - return caml_call2(H[1],k,k$0)?0:1} - function set_key_data(c,k,d) - {unset_data(c);set_key$0(c,k);return set_data(c,d)} - return MakeSeeded$0 - ([0, - create, - hash, - equal, - get_data$1, - get_key$0, - set_key_data, - check_key$0])} - function Make$2(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} - var - include=MakeSeeded$1([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _f4_=include[1]; - function create(sz){return caml_call2(_f4_,_cQ_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$5(param){return [0,0]} - function add$1(b,k,d){var _f3_=b[1];b[1] = [0,make$4(k,d),_f3_];return 0} - function test_key(k,e) - {var match=get_key$0(e); - if(match){var x=match[1];if(x === k)return 1} - return 0} - function remove$0(b,k) - {var l=b[1],acc=0; - for(;;) - {if(! l)return 0; - var h=l[1],t=l[2]; - if(test_key(k,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} - function find$2(b,k) - {var - _f1_=b[1], - match=find_opt(function(_f2_){return test_key(k,_f2_)},_f1_); - if(! match)return 0; - var e=match[1]; - return get_data$1(e)} - function length$7(b){return length$1(b[1])} - function clear$3(b){b[1] = 0;return 0} - function create$6(param){return caml_call1(_o_[1],2)} - function get_key1(t){return caml_call2(_o_[3],t,0)} - function get_key1_copy(t){return caml_call2(_o_[4],t,0)} - function set_key1(t,k){return caml_call3(_o_[5],t,0,k)} - function unset_key1(t){return caml_call2(_o_[6],t,0)} - function check_key1(t){return caml_call2(_o_[7],t,0)} - function get_key2(t){return caml_call2(_o_[3],t,1)} - function get_key2_copy(t){return caml_call2(_o_[4],t,1)} - function set_key2(t,k){return caml_call3(_o_[5],t,1,k)} - function unset_key2(t){return caml_call2(_o_[6],t,1)} - function check_key2(t){return caml_call2(_o_[7],t,1)} - function blit_key1(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,1)} - function blit_key2(t1,t2){return caml_call5(_o_[8],t1,1,t2,1,1)} - function blit_key12(t1,t2){return caml_call5(_o_[8],t1,0,t2,0,2)} - function get_data$2(t){return caml_call1(_o_[9],t)} - function get_data_copy$0(t){return caml_call1(_o_[10],t)} - function set_data$0(t,d){return caml_call2(_o_[11],t,d)} - function unset_data$0(t){return caml_call1(_o_[12],t)} - function check_data$0(t){return caml_call1(_o_[13],t)} - function blit_data$0(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$6(key1,key2,data) - {var eph=create$6(0); - set_data$0(eph,data); - set_key1(eph,key1); - set_key2(eph,key2); - return eph} - function query$0(eph,key1,key2) - {var match=get_key1(eph); - if(! match)return 0; - var k=match[1]; - if(k !== key1)return 0; - var match$0=get_key2(eph); - if(! match$0)return 0; - var k$0=match$0[1]; - return k$0 === key2?get_data$2(eph):0} - function MakeSeeded$2(H1,H2) - {function create(param,d) - {var k2=param[2],k1=param[1],c=create$6(0); - set_data$0(c,d); - set_key1(c,k1); - set_key2(c,k2); - return c} - function hash(seed,param) - {var - k2=param[2], - k1=param[1], - _f0_=caml_call2(H2[2],seed,k2) * 65599 | 0; - return caml_call2(H1[2],seed,k1) + _f0_ | 0} - function equal(c,param) - {var k2=param[2],k1=param[1],match=get_key1(c),match$0=get_key2(c); - if(match && match$0) - {var k2$0=match$0[1],k1$0=match[1]; - if(caml_call2(H1[1],k1,k1$0) && caml_call2(H2[1],k2,k2$0))return 0; - return 1} - return 2} - function get_key(c) - {var match=get_key1(c),match$0=get_key2(c); - if(match && match$0) - {var k2=match$0[1],k1=match[1];return [0,[0,k1,k2]]} - return 0} - function set_key_data(c,param,d) - {var k2=param[2],k1=param[1]; - unset_data$0(c); - set_key1(c,k1); - set_key2(c,k2); - return set_data$0(c,d)} - function check_key(c) - {var _fZ_=check_key1(c);return _fZ_?check_key2(c):_fZ_} - return MakeSeeded$0 - ([0,create,hash,equal,get_data$2,get_key,set_key_data,check_key])} - function Make$3(H1,H2) - {var equal=H2[1]; - function hash(seed,x){return caml_call1(H2[2],x)} - var equal$0=H1[1],_fX_=[0,equal,hash]; - function hash$0(seed,x){return caml_call1(H1[2],x)} - var - include=MakeSeeded$2([0,equal$0,hash$0],_fX_), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _fY_=include[1]; - function create(sz){return caml_call2(_fY_,_cR_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$7(param){return [0,0]} - function add$2(b,k1,k2,d) - {var _fW_=b[1];b[1] = [0,make$6(k1,k2,d),_fW_];return 0} - function test_keys(k1,k2,e) - {var match=get_key1(e),match$0=get_key2(e); - if(match && match$0) - {var x2=match$0[1],x1=match[1];if(x1 === k1 && x2 === k2)return 1} - return 0} - function remove$1(b,k1,k2) - {var l=b[1],acc=0; - for(;;) - {if(! l)return 0; - var h=l[1],t=l[2]; - if(test_keys(k1,k2,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} - function find$3(b,k1,k2) - {var - _fU_=b[1], - match=find_opt(function(_fV_){return test_keys(k1,k2,_fV_)},_fU_); - if(! match)return 0; - var e=match[1]; - return get_data$2(e)} - function length$8(b){return length$1(b[1])} - function clear$4(b){b[1] = 0;return 0} - function create$7(n){return caml_call1(_o_[1],n)} - function length$9(k){return caml_call1(_o_[2],k)} - function get_key$1(t,n){return caml_call2(_o_[3],t,n)} - function get_key_copy$1(t,n){return caml_call2(_o_[4],t,n)} - function set_key$1(t,n,k){return caml_call3(_o_[5],t,n,k)} - function unset_key$1(t,n){return caml_call2(_o_[6],t,n)} - function check_key$1(t,n){return caml_call2(_o_[7],t,n)} - function blit_key$1(t1,o1,t2,o2,l) - {return caml_call5(_o_[8],t1,o1,t2,o2,l)} - function get_data$3(t){return caml_call1(_o_[9],t)} - function get_data_copy$1(t){return caml_call1(_o_[10],t)} - function set_data$1(t,d){return caml_call2(_o_[11],t,d)} - function unset_data$1(t){return caml_call1(_o_[12],t)} - function check_data$1(t){return caml_call1(_o_[13],t)} - function blit_data$1(t1,t2){return caml_call2(_o_[14],t1,t2)} - function make$8(keys,data) - {var l=keys.length - 1,eph=create$7(l); - set_data$1(eph,data); - var _fS_=l - 1 | 0,_fR_=0; - if(_fS_ >= 0) - {var i=_fR_; - for(;;) - {set_key$1(eph,i,caml_check_bound(keys,i)[1 + i]); - var _fT_=i + 1 | 0; - if(_fS_ !== i){var i=_fT_;continue} - break}} - return eph} - function query$1(eph,keys) - {var l=length$9(eph); - try - {if(l !== keys.length - 1)throw Exit; - var _fN_=l - 1 | 0,_fM_=0; - if(_fN_ >= 0) - {var i=_fM_; - for(;;) - {var match=get_key$1(eph,i); - if(! match)throw Exit; - var k=match[1]; - if(k !== caml_check_bound(keys,i)[1 + i])throw Exit; - var _fP_=i + 1 | 0; - if(_fN_ !== i){var i=_fP_;continue} - break}} - var _fO_=get_data$3(eph); - return _fO_} - catch(_fQ_) - {_fQ_ = caml_wrap_exception(_fQ_);if(_fQ_ === Exit)return 0;throw _fQ_}} - function MakeSeeded$3(H) - {function create(k,d) - {var c=create$7(k.length - 1); - set_data$1(c,d); - var _fK_=k.length - 1 - 1 | 0,_fJ_=0; - if(_fK_ >= 0) - {var i=_fJ_; - for(;;) - {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); - var _fL_=i + 1 | 0; - if(_fK_ !== i){var i=_fL_;continue} - break}} - return c} - function hash(seed,k) - {var h=[0,0],_fF_=k.length - 1 - 1 | 0,_fE_=0; - if(_fF_ >= 0) - {var i=_fE_; - for(;;) - {var _fG_=h[1],_fH_=caml_check_bound(k,i)[1 + i]; - h[1] = (caml_call2(H[2],seed,_fH_) * 65599 | 0) + _fG_ | 0; - var _fI_=i + 1 | 0; - if(_fF_ !== i){var i=_fI_;continue} - break}} - return h[1]} - function equal(c,k) - {var len=k.length - 1,len$0=length$9(c); - if(len !== len$0)return 1; - var i$1=len - 1 | 0,i=i$1; - for(;;) - {if(0 > i)return 0; - var match=get_key$1(c,i); - if(! match)return 2; - var ki=match[1],_fD_=caml_check_bound(k,i)[1 + i]; - if(! caml_call2(H[1],_fD_,ki))return 1; - var i$0=i - 1 | 0,i=i$0}} - function get_key(c) - {var len=length$9(c); - if(0 === len)return [0,[0]]; - var match=get_key$1(c,0); - if(! match)return 0; - var k0=match[1],a=caml_make_vect(len,k0),i$1=len - 1 | 0,i=i$1; - for(;;) - {if(1 > i)return [0,a]; - var match$0=get_key$1(c,i); - if(! match$0)return 0; - var ki=match$0[1]; - caml_check_bound(a,i)[1 + i] = ki; - var i$0=i - 1 | 0,i=i$0}} - function set_key_data(c,k,d) - {unset_data$1(c); - var _fB_=k.length - 1 - 1 | 0,_fA_=0; - if(_fB_ >= 0) - {var i=_fA_; - for(;;) - {set_key$1(c,i,caml_check_bound(k,i)[1 + i]); - var _fC_=i + 1 | 0; - if(_fB_ !== i){var i=_fC_;continue} - break}} - return set_data$1(c,d)} - function check_key(c) - {var i$1=length$9(c) - 1 | 0,i=i$1; - for(;;) - {var _fx_=i < 0?1:0; - if(_fx_) - var _fy_=_fx_; - else - {var _fz_=check_key$1(c,i); - if(_fz_){var i$0=i - 1 | 0,i=i$0;continue} - var _fy_=_fz_} - return _fy_}} - return MakeSeeded$0 - ([0,create,hash,equal,get_data$3,get_key,set_key_data,check_key])} - function Make$4(H) - {var equal=H[1]; - function hash(seed,x){return caml_call1(H[2],x)} - var - include=MakeSeeded$3([0,equal,hash]), - clear=include[2], - reset=include[3], - copy=include[4], - add=include[5], - remove=include[6], - find=include[7], - find_opt=include[8], - find_all=include[9], - replace=include[10], - mem=include[11], - iter=include[12], - filter_map_inplace=include[13], - fold=include[14], - length=include[15], - stats=include[16], - to_seq=include[17], - to_seq_keys=include[18], - to_seq_values=include[19], - add_seq=include[20], - replace_seq=include[21], - clean=include[23], - stats_alive=include[24], - _fw_=include[1]; - function create(sz){return caml_call2(_fw_,_cS_,sz)} - function of_seq(i) - {var tbl=create(16);caml_call2(replace_seq,tbl,i);return tbl} - return [0, - create, - clear, - reset, - copy, - add, - remove, - find, - find_opt, - find_all, - replace, - mem, - iter, - filter_map_inplace, - fold, - length, - stats, - to_seq, - to_seq_keys, - to_seq_values, - add_seq, - replace_seq, - of_seq, - clean, - stats_alive]} - function make$9(param){return [0,0]} - function add$3(b,k,d){var _fv_=b[1];b[1] = [0,make$8(k,d),_fv_];return 0} - function test_keys$0(k,e) - {try - {if(length$9(e) !== k.length - 1)throw Exit; - var _fr_=k.length - 1 - 1 | 0,_fq_=0; - if(_fr_ >= 0) - {var i=_fq_; - for(;;) - {var match=get_key$1(e,i),switch$0=0; - if(match) - {var x=match[1]; - if(x === caml_check_bound(k,i)[1 + i]) - {var _ft_=i + 1 | 0; - if(_fr_ !== i){var i=_ft_;continue} - switch$0 = 1}} - if(! switch$0)throw Exit; - break}} - var _fs_=1; - return _fs_} - catch(_fu_) - {_fu_ = caml_wrap_exception(_fu_);if(_fu_ === Exit)return 0;throw _fu_}} - function remove$2(b,k) - {var l=b[1],acc=0; - for(;;) - {if(! l)return 0; - var h=l[1],t=l[2]; - if(test_keys$0(k,h)){b[1] = rev_append(acc,t);return 0} - var l$0=l[2],acc$0=[0,h,acc],l=l$0,acc=acc$0}} - function find$4(b,k) - {var - _fo_=b[1], - match=find_opt(function(_fp_){return test_keys$0(k,_fp_)},_fo_); - if(! match)return 0; - var e=match[1]; - return get_data$3(e)} - function length$10(b){return length$1(b[1])} - function clear$5(b){b[1] = 0;return 0} - var - Stdlib_Ephemeron= - [0, - [0, - create$5, - get_key$0, - get_key_copy$0, - set_key$0, - unset_key$0, - check_key$0, - blit_key$0, - get_data$1, - get_data_copy, - set_data, - unset_data, - check_data, - blit_data, - make$4, - query, - Make$2, - MakeSeeded$1, - [0,make$5,add$1,remove$0,find$2,length$7,clear$3]], - [0, - create$6, - get_key1, - get_key1_copy, - set_key1, - unset_key1, - check_key1, - get_key2, - get_key2_copy, - set_key2, - unset_key2, - check_key2, - blit_key1, - blit_key2, - blit_key12, - get_data$2, - get_data_copy$0, - set_data$0, - unset_data$0, - check_data$0, - blit_data$0, - make$6, - query$0, - Make$3, - MakeSeeded$2, - [0,make$7,add$2,remove$1,find$3,length$8,clear$4]], - [0, - create$7, - get_key$1, - get_key_copy$1, - set_key$1, - unset_key$1, - check_key$1, - blit_key$1, - get_data$3, - get_data_copy$1, - set_data$1, - unset_data$1, - check_data$1, - blit_data$1, - make$8, - query$1, - Make$4, - MakeSeeded$3, - [0,make$9,add$3,remove$2,find$4,length$10,clear$5]], - [0, - function(_fn_) - {return MakeSeeded$0 - ([0,_fn_[3],_fn_[1],_fn_[2],_fn_[5],_fn_[4],_fn_[6],_fn_[7]])}]]; - caml_register_global(825,Stdlib_Ephemeron,"Stdlib__Ephemeron"); - function generic_basename(is_dir_sep,current_dir_name,name) - {if(caml_string_equal(name,cst$100))return current_dir_name; - var n$3=caml_ml_string_length(name) - 1 | 0,n=n$3; - for(;;) - {if(0 > n)return sub$0(name,0,1); - if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} - var p=n + 1 | 0,n$1=n; - for(;;) - {if(0 > n$1)return sub$0(name,0,p); - if(caml_call2(is_dir_sep,name,n$1)) - return sub$0(name,n$1 + 1 | 0,(p - n$1 | 0) - 1 | 0); - var n$2=n$1 - 1 | 0,n$1=n$2}}} - function generic_dirname(is_dir_sep,current_dir_name,name) - {if(caml_string_equal(name,cst$101))return current_dir_name; - var n$5=caml_ml_string_length(name) - 1 | 0,n=n$5; - for(;;) - {if(0 > n)return sub$0(name,0,1); - if(caml_call2(is_dir_sep,name,n)){var n$0=n - 1 | 0,n=n$0;continue} - var n$1=n; - for(;;) - {if(0 > n$1)return current_dir_name; - if(! caml_call2(is_dir_sep,name,n$1)) - {var n$2=n$1 - 1 | 0,n$1=n$2;continue} - var n$3=n$1; - for(;;) - {if(0 > n$3)return sub$0(name,0,1); - if(! caml_call2(is_dir_sep,name,n$3)) - return sub$0(name,0,n$3 + 1 | 0); - var n$4=n$3 - 1 | 0,n$3=n$4}}}} - function is_dir_sep(s,i){return 47 === caml_string_get(s,i)?1:0} - function is_relative(n) - {var - _fl_=caml_ml_string_length(n) < 1?1:0, - _fm_=_fl_ || (47 !== caml_string_get(n,0)?1:0); - return _fm_} - function is_implicit(n) - {var _fg_=is_relative(n); - if(_fg_) - {var - _fh_=caml_ml_string_length(n) < 2?1:0, - _fi_=_fh_ || caml_string_notequal(sub$0(n,0,2),cst$103); - if(_fi_) - var - _fj_=caml_ml_string_length(n) < 3?1:0, - _fk_=_fj_ || caml_string_notequal(sub$0(n,0,3),cst$102); - else - var _fk_=_fi_} - else - var _fk_=_fg_; - return _fk_} - function check_suffix(name,suff){return ends_with$0(suff,name)} - function chop_suffix_opt(suffix,filename) - {var - len_s=caml_ml_string_length(suffix), - len_f=caml_ml_string_length(filename); - if(len_s > len_f)return 0; - var r=sub$0(filename,len_f - len_s | 0,len_s); - return caml_string_equal(r,suffix) - ?[0,sub$0(filename,0,len_f - len_s | 0)] - :0} - try - {var _c1_=caml_sys_getenv(cst_TMPDIR),_cT_=_c1_} - catch(_ff_) - {_ff_ = caml_wrap_exception(_ff_); - if(_ff_ !== Not_found)throw _ff_; - var _cT_=cst_tmp} - function quote(s) - {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); - add_char(b,39); - var _fd_=l - 1 | 0,_fc_=0; - if(_fd_ >= 0) - {var i=_fc_; - for(;;) - {if(39 === caml_string_get(s,i)) - add_string(b,quotequote); - else - add_char(b,caml_string_get(s,i)); - var _fe_=i + 1 | 0; - if(_fd_ !== i){var i=_fe_;continue} - break}} - add_char(b,39); - return contents(b)} - function quote_command(cmd,stdin,stdout,stderr,args) - {if(stderr) - var - f=stderr[1], - _e8_=caml_equal(stderr,stdout)?cst_2_1:cat(cst_2,quote(f)), - _e9_=_e8_; - else - var _e9_=cst$109; - if(stdout) - var f$0=stdout[1],_e__=cat(cst$104,quote(f$0)); - else - var _e__=cst$108; - var _e$_=cat(_e__,_e9_); - if(stdin) - var f$1=stdin[1],_fa_=cat(cst$105,quote(f$1)); - else - var _fa_=cst$107; - var _fb_=cat(_fa_,_e$_); - return cat(concat$1(cst$106,map$4(quote,[0,cmd,args])),_fb_)} - function basename(_e7_) - {return generic_basename(is_dir_sep,current_dir_name,_e7_)} - function dirname(_e6_) - {return generic_dirname(is_dir_sep,current_dir_name,_e6_)} - var - Unix= - [0, - null$0, - current_dir_name, - parent_dir_name, - dir_sep, - is_dir_sep, - is_relative, - is_implicit, - check_suffix, - chop_suffix_opt, - _cT_, - quote, - quote_command, - basename, - dirname]; - function is_dir_sep$0(s,i) - {var c=caml_string_get(s,i),_e3_=47 === c?1:0; - if(_e3_) - var _e4_=_e3_; - else - var _e5_=92 === c?1:0,_e4_=_e5_ || (58 === c?1:0); - return _e4_} - function is_relative$0(n) - {var - _eX_=caml_ml_string_length(n) < 1?1:0, - _eY_=_eX_ || (47 !== caml_string_get(n,0)?1:0); - if(_eY_) - {var - _eZ_=caml_ml_string_length(n) < 1?1:0, - _e0_=_eZ_ || (92 !== caml_string_get(n,0)?1:0); - if(_e0_) - var - _e1_=caml_ml_string_length(n) < 2?1:0, - _e2_=_e1_ || (58 !== caml_string_get(n,1)?1:0); - else - var _e2_=_e0_} - else - var _e2_=_eY_; - return _e2_} - function is_implicit$0(n) - {var _eO_=is_relative$0(n); - if(_eO_) - {var - _eP_=caml_ml_string_length(n) < 2?1:0, - _eQ_=_eP_ || caml_string_notequal(sub$0(n,0,2),cst$113); - if(_eQ_) - {var - _eR_=caml_ml_string_length(n) < 2?1:0, - _eS_=_eR_ || caml_string_notequal(sub$0(n,0,2),cst$112); - if(_eS_) - {var - _eT_=caml_ml_string_length(n) < 3?1:0, - _eU_=_eT_ || caml_string_notequal(sub$0(n,0,3),cst$111); - if(_eU_) - var - _eV_=caml_ml_string_length(n) < 3?1:0, - _eW_=_eV_ || caml_string_notequal(sub$0(n,0,3),cst$110); - else - var _eW_=_eU_} - else - var _eW_=_eS_} - else - var _eW_=_eQ_} - else - var _eW_=_eO_; - return _eW_} - function check_suffix$0(name,suff) - {var _eL_=caml_ml_string_length(suff) <= caml_ml_string_length(name)?1:0; - if(_eL_) - var - s= - sub$0 - (name, - caml_ml_string_length(name) - caml_ml_string_length(suff) | 0, - caml_ml_string_length(suff)), - _eM_=lowercase_ascii$1(suff), - _eN_=caml_string_equal(lowercase_ascii$1(s),_eM_); - else - var _eN_=_eL_; - return _eN_} - function chop_suffix_opt$0(suffix,filename) - {var - len_s=caml_ml_string_length(suffix), - len_f=caml_ml_string_length(filename); - if(len_s > len_f)return 0; - var - r=sub$0(filename,len_f - len_s | 0,len_s), - _eK_=lowercase_ascii$1(suffix); - return caml_string_equal(lowercase_ascii$1(r),_eK_) - ?[0,sub$0(filename,0,len_f - len_s | 0)] - :0} - try - {var _c0_=caml_sys_getenv(cst_TEMP),temp_dir_name=_c0_} - catch(_eJ_) - {_eJ_ = caml_wrap_exception(_eJ_); - if(_eJ_ !== Not_found)throw _eJ_; - var temp_dir_name=cst$114} - function quote$0(s) - {var l=caml_ml_string_length(s),b=create$2(l + 20 | 0); - add_char(b,34); - function add_bs(n) - {var _eH_=1; - if(n >= 1) - {var j=_eH_; - for(;;) - {add_char(b,92); - var _eI_=j + 1 | 0; - if(n !== j){var j=_eI_;continue} - break}} - return 0} - function loop$0(counter,i) - {var i$0=i; - for(;;) - {if(i$0 === l)return add_char(b,34); - var c=caml_string_get(s,i$0); - if(34 === c) - {var _eF_=0; - if(counter >= 50) - return caml_trampoline_return(loop_bs,[0,_eF_,i$0]); - var counter$1=counter + 1 | 0; - return loop_bs(counter$1,_eF_,i$0)} - if(92 !== c){add_char(b,c);var i$1=i$0 + 1 | 0,i$0=i$1;continue} - var _eG_=0; - if(counter >= 50) - return caml_trampoline_return(loop_bs,[0,_eG_,i$0]); - var counter$0=counter + 1 | 0; - return loop_bs(counter$0,_eG_,i$0)}} - function loop_bs(counter,n,i) - {var n$0=n,i$0=i; - for(;;) - {if(i$0 === l){add_char(b,34);return add_bs(n$0)} - var match=caml_string_get(s,i$0); - if(34 === match) - {add_bs((2 * n$0 | 0) + 1 | 0); - add_char(b,34); - var _eE_=i$0 + 1 | 0; - if(counter >= 50)return caml_trampoline_return(loop$0,[0,_eE_]); - var counter$1=counter + 1 | 0; - return loop$0(counter$1,_eE_)} - if(92 === match) - {var i$1=i$0 + 1 | 0,n$1=n$0 + 1 | 0,n$0=n$1,i$0=i$1;continue} - add_bs(n$0); - if(counter >= 50)return caml_trampoline_return(loop$0,[0,i$0]); - var counter$0=counter + 1 | 0; - return loop$0(counter$0,i$0)}} - function loop(i){return caml_trampoline(loop$0(0,i))} - loop(0); - return contents(b)} - function quote_cmd_filename(f) - {if(! contains$0(f,34) && ! contains$0(f,37)) - return contains$0(f,32)?cat(cst$116,cat(f,cst$115)):f; - return failwith(cat(cst_Filename_quote_command_bad,f))} - function quote_command$0(cmd,stdin,stdout,stderr,args) - {if(stderr) - var - f=stderr[1], - _ev_= - caml_equal(stderr,stdout) - ?cst_2_1$0 - :cat(cst_2$0,quote_cmd_filename(f)), - _ew_=_ev_; - else - var _ew_=cst$125; - var _ex_=[0,_ew_,_cU_]; - if(stdout) - var f$0=stdout[1],_ey_=cat(cst$117,quote_cmd_filename(f$0)); - else - var _ey_=cst$124; - var _ez_=[0,_ey_,_ex_]; - if(stdin) - var f$1=stdin[1],_eA_=cat(cst$118,quote_cmd_filename(f$1)); - else - var _eA_=cst$123; - var - s=concat$1(cst$119,map$4(quote$0,args)), - b=create$2(caml_ml_string_length(s) + 20 | 0), - _eB_=[0,_eA_,_ez_]; - iter$4 - (function(c) - {var switch$0=0; - if(62 <= c) - {var _eD_=c - 63 | 0; - if(60 < _eD_ >>> 0) - {if(62 > _eD_)switch$0 = 1} - else - if(31 === _eD_)switch$0 = 1} - else - if(42 <= c) - {if(60 === c)switch$0 = 1} - else - if(33 <= c) - switch(c - 33 | 0) - {case 2:case 3:case 6:break;default:switch$0 = 1} - return switch$0?(add_char(b,94),add_char(b,c)):add_char(b,c)}, - s); - var _eC_=[0,cst$120,[0,contents(b),_eB_]]; - return concat$1(cst$122,[0,cst$121,[0,quote_cmd_filename(cmd),_eC_]])} - function drive_and_path(s) - {var _er_=2 <= caml_ml_string_length(s)?1:0; - if(_er_) - {var param=caml_string_get(s,0),switch$0=0; - if(91 <= param) - {if(25 >= param - 97 >>> 0)switch$0 = 1} - else - if(65 <= param)switch$0 = 1; - var _es_=switch$0?1:0,_et_=_es_?58 === caml_string_get(s,1)?1:0:_es_} - else - var _et_=_er_; - if(! _et_)return [0,cst$126,s]; - var _eu_=sub$0(s,2,caml_ml_string_length(s) - 2 | 0); - return [0,sub$0(s,0,2),_eu_]} - function dirname$0(s) - {var - match=drive_and_path(s), - path=match[2], - drive=match[1], - dir=generic_dirname(is_dir_sep$0,current_dir_name$0,path); - return cat(drive,dir)} - function basename$0(s) - {var match=drive_and_path(s),path=match[2]; - return generic_basename(is_dir_sep$0,current_dir_name$0,path)} - var - Win32= - [0, - null$1, - current_dir_name$0, - parent_dir_name$0, - dir_sep$0, - is_dir_sep$0, - is_relative$0, - is_implicit$0, - check_suffix$0, - chop_suffix_opt$0, - temp_dir_name, - quote$0, - quote_command$0, - basename$0, - dirname$0]; - function basename$1(_eq_) - {return generic_basename(is_dir_sep$0,current_dir_name$1,_eq_)} - function dirname$1(_ep_) - {return generic_dirname(is_dir_sep$0,current_dir_name$1,_ep_)} - var - Cygwin= - [0, - null$2, - current_dir_name$1, - parent_dir_name$1, - dir_sep$1, - is_dir_sep$0, - is_relative$0, - is_implicit$0, - check_suffix$0, - chop_suffix_opt$0, - _cT_, - quote, - quote_command, - basename$1, - dirname$1], - Sysdeps= - caml_string_notequal(os_type,cst_Cygwin) - ?caml_string_notequal(os_type,cst_Win32)?Unix:Win32 - :Cygwin, - null$3=Sysdeps[1], - current_dir_name$2=Sysdeps[2], - parent_dir_name$2=Sysdeps[3], - dir_sep$2=Sysdeps[4], - is_dir_sep$1=Sysdeps[5], - is_relative$1=Sysdeps[6], - is_implicit$1=Sysdeps[7], - check_suffix$1=Sysdeps[8], - chop_suffix_opt$1=Sysdeps[9], - temp_dir_name$0=Sysdeps[10], - quote$1=Sysdeps[11], - quote_command$1=Sysdeps[12], - basename$2=Sysdeps[13], - dirname$2=Sysdeps[14]; - function concat$4(dirname,filename) - {var l=caml_ml_string_length(dirname); - if(0 !== l && ! is_dir_sep$1(dirname,l - 1 | 0)) - return cat(dirname,cat(dir_sep$2,filename)); - return cat(dirname,filename)} - function chop_suffix(name,suff) - {return check_suffix$1(name,suff) - ?sub$0 - (name, - 0, - caml_ml_string_length(name) - caml_ml_string_length(suff) | 0) - :invalid_arg(cst_Filename_chop_suffix)} - function extension_len(name) - {var i$4=caml_ml_string_length(name) - 1 | 0,i$1=i$4; - for(;;) - {if(0 <= i$1 && ! is_dir_sep$1(name,i$1)) - {if(46 !== caml_string_get(name,i$1)) - {var i$3=i$1 - 1 | 0,i$1=i$3;continue} - var i$2=i$1 - 1 | 0,i=i$2; - for(;;) - {if(0 <= i && ! is_dir_sep$1(name,i)) - {if(46 !== caml_string_get(name,i)) - return caml_ml_string_length(name) - i$1 | 0; - var i$0=i - 1 | 0,i=i$0; - continue} - return 0}} - return 0}} - function extension(name) - {var l=extension_len(name); - return 0 === l?cst$127:sub$0(name,caml_ml_string_length(name) - l | 0,l)} - function chop_extension(name) - {var l=extension_len(name); - return 0 === l - ?invalid_arg(cst_Filename_chop_extension) - :sub$0(name,0,caml_ml_string_length(name) - l | 0)} - function remove_extension(name) - {var l=extension_len(name); - return 0 === l?name:sub$0(name,0,caml_ml_string_length(name) - l | 0)} - var prng$0=[246,function(_eo_){return caml_call1(_cg_[2],0)}]; - function temp_file_name(temp_dir,prefix,suffix) - {var - _em_=caml_obj_tag(prng$0), - _en_= - 250 === _em_?prng$0[1]:246 === _em_?force_lazy_block(prng$0):prng$0, - rnd=caml_call1(_cg_[4],_en_) & 16777215; - return concat$4(temp_dir,caml_call3(sprintf(_cV_),prefix,rnd,suffix))} - var current_temp_dir_name=[0,temp_dir_name$0]; - function set_temp_dir_name(s){current_temp_dir_name[1] = s;return 0} - function get_temp_dir_name(param){return current_temp_dir_name[1]} - function temp_file(opt,prefix,suffix) - {if(opt) - var sth=opt[1],temp_dir=sth; - else - var temp_dir=current_temp_dir_name[1]; - function try_name(counter) - {var counter$0=counter; - for(;;) - {var name=temp_file_name(temp_dir,prefix,suffix); - try - {runtime.caml_sys_close(caml_sys_open(name,_cW_,384));return name} - catch(e) - {e = caml_wrap_exception(e); - if(e[1] !== Sys_error)throw e; - if(1000 <= counter$0)throw e; - var counter$1=counter$0 + 1 | 0,counter$0=counter$1; - continue}}} - return try_name(0)} - function open_temp_file(opt,_ek_,_ej_,prefix,suffix) - {if(opt)var sth=opt[1],mode=sth;else var mode=_cX_; - if(_ek_)var sth$0=_ek_[1],perms=sth$0;else var perms=384; - if(_ej_) - var sth$1=_ej_[1],temp_dir=sth$1; - else - var temp_dir=current_temp_dir_name[1]; - function try_name(counter) - {var counter$0=counter; - for(;;) - {var name=temp_file_name(temp_dir,prefix,suffix); - try - {var _el_=[0,name,open_gen([0,1,[0,3,[0,5,mode]]],perms,name)]; - return _el_} - catch(e) - {e = caml_wrap_exception(e); - if(e[1] !== Sys_error)throw e; - if(1000 <= counter$0)throw e; - var counter$1=counter$0 + 1 | 0,counter$0=counter$1; - continue}}} - return try_name(0)} - var - Stdlib_Filename= - [0, - current_dir_name$2, - parent_dir_name$2, - dir_sep$2, - concat$4, - is_relative$1, - is_implicit$1, - check_suffix$1, - chop_suffix, - chop_suffix_opt$1, - extension, - remove_extension, - chop_extension, - basename$2, - dirname$2, - null$3, - temp_file, - open_temp_file, - get_temp_dir_name, - set_temp_dir_name, - temp_dir_name$0, - quote$1, - quote_command$1]; - caml_register_global(826,Stdlib_Filename,"Stdlib__Filename"); - function add$4(x,y){return [254,x[1] + y[1],x[2] + y[2]]} - function sub$4(x,y){return [254,x[1] - y[1],x[2] - y[2]]} - function neg(x){return [254,- x[1],- x[2]]} - function conj(x){return [254,x[1],- x[2]]} - function mul(x,y) - {return [254,x[1] * y[1] - x[2] * y[2],x[1] * y[2] + x[2] * y[1]]} - function div(x,y) - {if(Math.abs(y[2]) <= Math.abs(y[1])) - {var r=y[2] / y[1],d=y[1] + r * y[2]; - return [254,(x[1] + r * x[2]) / d,(x[2] - r * x[1]) / d]} - var r$0=y[1] / y[2],d$0=y[2] + r$0 * y[1]; - return [254,(r$0 * x[1] + x[2]) / d$0,(r$0 * x[2] - x[1]) / d$0]} - function inv(x){return div(one$4,x)} - function norm2(x){return x[1] * x[1] + x[2] * x[2]} - function norm(x) - {var r=Math.abs(x[1]),i=Math.abs(x[2]); - if(r == 0.)return i; - if(i == 0.)return r; - if(i <= r){var q=i / r;return r * Math.sqrt(1. + q * q)} - var q$0=r / i; - return i * Math.sqrt(1. + q$0 * q$0)} - function arg(x){return Math.atan2(x[2],x[1])} - function polar(n,a){return [254,Math.cos(a) * n,Math.sin(a) * n]} - function sqrt(x) - {if(x[1] == 0. && x[2] == 0.)return _cY_; - var r=Math.abs(x[1]),i=Math.abs(x[2]); - if(i <= r) - var - q=i / r, - w=Math.sqrt(r) * Math.sqrt(0.5 * (1. + Math.sqrt(1. + q * q))); - else - var - q$0=r / i, - w=Math.sqrt(i) * Math.sqrt(0.5 * (q$0 + Math.sqrt(1. + q$0 * q$0))); - if(0. <= x[1])return [254,w,0.5 * x[2] / w]; - var w$0=0. <= x[2]?w:- w; - return [254,0.5 * i / w,w$0]} - function exp(x) - {var e=Math.exp(x[1]);return [254,e * Math.cos(x[2]),e * Math.sin(x[2])]} - function log(x) - {var _ei_=Math.atan2(x[2],x[1]);return [254,Math.log(norm(x)),_ei_]} - function pow(x,y){return exp(mul(y,log(x)))} - var - Stdlib_Complex= - [0, - zero$4, - one$4, - i, - neg, - conj, - add$4, - sub$4, - mul, - inv, - div, - sqrt, - norm2, - norm, - arg, - polar, - exp, - log, - pow]; - caml_register_global(827,Stdlib_Complex,"Stdlib__Complex"); - var - Stdlib_ArrayLabels= + params, + stats]; + runtime.caml_register_global(17, CamlinternalOO, "CamlinternalOO"); + return; + } + (globalThis)); + +//# 25878 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Array = global_data.Stdlib__Array, + make_float = Stdlib_Array[1], + init = Stdlib_Array[2], + make_matrix = Stdlib_Array[3], + create_matrix = Stdlib_Array[4], + append = Stdlib_Array[5], + concat = Stdlib_Array[6], + sub = Stdlib_Array[7], + copy = Stdlib_Array[8], + fill = Stdlib_Array[9], + blit = Stdlib_Array[10], + to_list = Stdlib_Array[11], + of_list = Stdlib_Array[12], + iter = Stdlib_Array[13], + iteri = Stdlib_Array[14], + map = Stdlib_Array[15], + mapi = Stdlib_Array[16], + fold_left = Stdlib_Array[17], + fold_left_map = Stdlib_Array[18], + fold_right = Stdlib_Array[19], + iter2 = Stdlib_Array[20], + map2 = Stdlib_Array[21], + for_all = Stdlib_Array[22], + exists = Stdlib_Array[23], + for_all2 = Stdlib_Array[24], + exists2 = Stdlib_Array[25], + mem = Stdlib_Array[26], + memq = Stdlib_Array[27], + find_opt = Stdlib_Array[28], + find_map = Stdlib_Array[29], + split = Stdlib_Array[30], + combine = Stdlib_Array[31], + sort = Stdlib_Array[32], + stable_sort = Stdlib_Array[33], + fast_sort = Stdlib_Array[34], + to_seq = Stdlib_Array[35], + to_seqi = Stdlib_Array[36], + of_seq = Stdlib_Array[37], + Floatarray = Stdlib_Array[38], + Stdlib_ArrayLabels = [0, make_float, - init$3, + init, + make_matrix, create_matrix, - create_matrix, - append$1, - concat$2, - sub$1, - copy$1, - fill$0, - blit$1, - to_list$1, + append, + concat, + sub, + copy, + fill, + blit, + to_list, of_list, - iter$5, - iteri$3, - map$7, - mapi$3, - fold_left$3, - fold_left_map$0, - fold_right$2, - iter2$1, - map2$1, - for_all$3, - exists$3, - for_all2$1, - exists2$1, - mem$0, - memq$0, - find_opt$0, - find_map$1, - split$0, - combine$0, + iter, + iteri, + map, + mapi, + fold_left, + fold_left_map, + fold_right, + iter2, + map2, + for_all, + exists, + for_all2, + exists2, + mem, + memq, + find_opt, + find_map, + split, + combine, sort, - fast_sort$0, - fast_sort$0, - to_seq$4, - to_seqi$1, - of_seq$2, + stable_sort, + fast_sort, + to_seq, + to_seqi, + of_seq, Floatarray]; - caml_register_global(828,Stdlib_ArrayLabels,"Stdlib__ArrayLabels"); - var - Stdlib_ListLabels= + runtime.caml_register_global(1, Stdlib_ArrayLabels, "Stdlib__ArrayLabels"); + return; + } + (globalThis)); + +//# 25970 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_List = global_data.Stdlib__List, + length = Stdlib_List[1], + compare_lengths = Stdlib_List[2], + compare_length_with = Stdlib_List[3], + cons = Stdlib_List[4], + hd = Stdlib_List[5], + tl = Stdlib_List[6], + nth = Stdlib_List[7], + nth_opt = Stdlib_List[8], + rev = Stdlib_List[9], + init = Stdlib_List[10], + append = Stdlib_List[11], + rev_append = Stdlib_List[12], + concat = Stdlib_List[13], + flatten = Stdlib_List[14], + equal = Stdlib_List[15], + compare = Stdlib_List[16], + iter = Stdlib_List[17], + iteri = Stdlib_List[18], + map = Stdlib_List[19], + mapi = Stdlib_List[20], + rev_map = Stdlib_List[21], + filter_map = Stdlib_List[22], + concat_map = Stdlib_List[23], + fold_left_map = Stdlib_List[24], + fold_left = Stdlib_List[25], + fold_right = Stdlib_List[26], + iter2 = Stdlib_List[27], + map2 = Stdlib_List[28], + rev_map2 = Stdlib_List[29], + fold_left2 = Stdlib_List[30], + fold_right2 = Stdlib_List[31], + for_all = Stdlib_List[32], + exists = Stdlib_List[33], + for_all2 = Stdlib_List[34], + exists2 = Stdlib_List[35], + mem = Stdlib_List[36], + memq = Stdlib_List[37], + find = Stdlib_List[38], + find_opt = Stdlib_List[39], + find_map = Stdlib_List[40], + filter = Stdlib_List[41], + find_all = Stdlib_List[42], + filteri = Stdlib_List[43], + partition = Stdlib_List[44], + partition_map = Stdlib_List[45], + assoc = Stdlib_List[46], + assoc_opt = Stdlib_List[47], + assq = Stdlib_List[48], + assq_opt = Stdlib_List[49], + mem_assoc = Stdlib_List[50], + mem_assq = Stdlib_List[51], + remove_assoc = Stdlib_List[52], + remove_assq = Stdlib_List[53], + split = Stdlib_List[54], + combine = Stdlib_List[55], + sort = Stdlib_List[56], + stable_sort = Stdlib_List[57], + fast_sort = Stdlib_List[58], + sort_uniq = Stdlib_List[59], + merge = Stdlib_List[60], + to_seq = Stdlib_List[61], + of_seq = Stdlib_List[62], + Stdlib_ListLabels = [0, - length$1, + length, compare_lengths, compare_length_with, - cons$0, + cons, hd, tl, nth, nth_opt, rev, - init$0, + init, append, rev_append, + concat, flatten, - flatten, - equal$6, - compare$6, - iter$2, - iteri$0, - map$4, - mapi$0, + equal, + compare, + iter, + iteri, + map, + mapi, rev_map, - filter_map$0, + filter_map, concat_map, fold_left_map, - fold_left$0, + fold_left, fold_right, - iter2$0, - map2$0, + iter2, + map2, rev_map2, - fold_left2$0, + fold_left2, fold_right2, - for_all$0, - exists$0, - for_all2$0, - exists2$0, + for_all, + exists, + for_all2, + exists2, mem, memq, - find$0, + find, find_opt, - find_map$0, - find_all, + find_map, + filter, find_all, filteri, - partition$0, - partition_map$0, + partition, + partition_map, assoc, assoc_opt, assq, @@ -29004,41 +28671,142 @@ remove_assq, split, combine, - fast_sort, - fast_sort, + sort, + stable_sort, fast_sort, sort_uniq, merge, - to_seq$1, + to_seq, of_seq]; - caml_register_global(829,Stdlib_ListLabels,"Stdlib__ListLabels"); - var - Stdlib_BytesLabels= + runtime.caml_register_global(1, Stdlib_ListLabels, "Stdlib__ListLabels"); + return; + } + (globalThis)); + +//# 26110 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Bytes = global_data.Stdlib__Bytes, + make = Stdlib_Bytes[1], + init = Stdlib_Bytes[2], + empty = Stdlib_Bytes[3], + copy = Stdlib_Bytes[4], + of_string = Stdlib_Bytes[5], + to_string = Stdlib_Bytes[6], + sub = Stdlib_Bytes[7], + sub_string = Stdlib_Bytes[8], + extend = Stdlib_Bytes[9], + fill = Stdlib_Bytes[10], + blit = Stdlib_Bytes[11], + blit_string = Stdlib_Bytes[12], + concat = Stdlib_Bytes[13], + cat = Stdlib_Bytes[14], + iter = Stdlib_Bytes[15], + iteri = Stdlib_Bytes[16], + map = Stdlib_Bytes[17], + mapi = Stdlib_Bytes[18], + fold_left = Stdlib_Bytes[19], + fold_right = Stdlib_Bytes[20], + for_all = Stdlib_Bytes[21], + exists = Stdlib_Bytes[22], + trim = Stdlib_Bytes[23], + escaped = Stdlib_Bytes[24], + index = Stdlib_Bytes[25], + index_opt = Stdlib_Bytes[26], + rindex = Stdlib_Bytes[27], + rindex_opt = Stdlib_Bytes[28], + index_from = Stdlib_Bytes[29], + index_from_opt = Stdlib_Bytes[30], + rindex_from = Stdlib_Bytes[31], + rindex_from_opt = Stdlib_Bytes[32], + contains = Stdlib_Bytes[33], + contains_from = Stdlib_Bytes[34], + rcontains_from = Stdlib_Bytes[35], + uppercase = Stdlib_Bytes[36], + lowercase = Stdlib_Bytes[37], + capitalize = Stdlib_Bytes[38], + uncapitalize = Stdlib_Bytes[39], + uppercase_ascii = Stdlib_Bytes[40], + lowercase_ascii = Stdlib_Bytes[41], + capitalize_ascii = Stdlib_Bytes[42], + uncapitalize_ascii = Stdlib_Bytes[43], + compare = Stdlib_Bytes[44], + equal = Stdlib_Bytes[45], + starts_with = Stdlib_Bytes[46], + ends_with = Stdlib_Bytes[47], + unsafe_to_string = Stdlib_Bytes[48], + unsafe_of_string = Stdlib_Bytes[49], + split_on_char = Stdlib_Bytes[50], + to_seq = Stdlib_Bytes[51], + to_seqi = Stdlib_Bytes[52], + of_seq = Stdlib_Bytes[53], + get_utf_8_uchar = Stdlib_Bytes[54], + set_utf_8_uchar = Stdlib_Bytes[55], + is_valid_utf_8 = Stdlib_Bytes[56], + get_utf_16be_uchar = Stdlib_Bytes[57], + set_utf_16be_uchar = Stdlib_Bytes[58], + is_valid_utf_16be = Stdlib_Bytes[59], + get_utf_16le_uchar = Stdlib_Bytes[60], + set_utf_16le_uchar = Stdlib_Bytes[61], + is_valid_utf_16le = Stdlib_Bytes[62], + get_uint8 = Stdlib_Bytes[63], + get_int8 = Stdlib_Bytes[64], + get_uint16_ne = Stdlib_Bytes[65], + get_uint16_be = Stdlib_Bytes[66], + get_uint16_le = Stdlib_Bytes[67], + get_int16_ne = Stdlib_Bytes[68], + get_int16_be = Stdlib_Bytes[69], + get_int16_le = Stdlib_Bytes[70], + get_int32_ne = Stdlib_Bytes[71], + get_int32_be = Stdlib_Bytes[72], + get_int32_le = Stdlib_Bytes[73], + get_int64_ne = Stdlib_Bytes[74], + get_int64_be = Stdlib_Bytes[75], + get_int64_le = Stdlib_Bytes[76], + set_uint8 = Stdlib_Bytes[77], + set_int8 = Stdlib_Bytes[78], + set_uint16_ne = Stdlib_Bytes[79], + set_uint16_be = Stdlib_Bytes[80], + set_uint16_le = Stdlib_Bytes[81], + set_int16_ne = Stdlib_Bytes[82], + set_int16_be = Stdlib_Bytes[83], + set_int16_le = Stdlib_Bytes[84], + set_int32_ne = Stdlib_Bytes[85], + set_int32_be = Stdlib_Bytes[86], + set_int32_le = Stdlib_Bytes[87], + set_int64_ne = Stdlib_Bytes[88], + set_int64_be = Stdlib_Bytes[89], + set_int64_le = Stdlib_Bytes[90], + Stdlib_BytesLabels = [0, - make$0, - init$1, - empty$0, + make, + init, + empty, copy, - to_bytes, - of_bytes, + of_string, + to_string, sub, sub_string, extend, fill, blit, - blit$0, - concat$0, - cat$0, - iter$3, - iteri$1, - map$5, - mapi$1, - fold_left$1, - fold_right$0, - for_all$1, - exists$1, + blit_string, + concat, + cat, + iter, + iteri, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, trim, - escaped$0, + escaped, index, index_opt, rindex, @@ -29050,24 +28818,24 @@ contains, contains_from, rcontains_from, - uppercase$0, - lowercase$0, + uppercase, + lowercase, capitalize, uncapitalize, - uppercase_ascii$0, - lowercase_ascii$0, + uppercase_ascii, + lowercase_ascii, capitalize_ascii, uncapitalize_ascii, - compare$8, - equal$8, + compare, + equal, starts_with, ends_with, unsafe_to_string, unsafe_of_string, split_on_char, - to_seq$2, + to_seq, to_seqi, - of_seq$0, + of_seq, get_utf_8_uchar, set_utf_8_uchar, is_valid_utf_8, @@ -29094,8 +28862,8 @@ set_uint8, set_int8, set_uint16_ne, - set_int16_be, - set_int16_le, + set_uint16_be, + set_uint16_le, set_int16_ne, set_int16_be, set_int16_le, @@ -29105,700 +28873,228 @@ set_int64_ne, set_int64_be, set_int64_le]; - caml_register_global(830,Stdlib_BytesLabels,"Stdlib__BytesLabels"); - var - Stdlib_StringLabels= + runtime.caml_register_global(1, Stdlib_BytesLabels, "Stdlib__BytesLabels"); + return; + } + (globalThis)); + +//# 26306 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_String = global_data.Stdlib__String, + make = Stdlib_String[1], + init = Stdlib_String[2], + empty = Stdlib_String[3], + of_bytes = Stdlib_String[4], + to_bytes = Stdlib_String[5], + concat = Stdlib_String[6], + cat = Stdlib_String[7], + equal = Stdlib_String[8], + compare = Stdlib_String[9], + starts_with = Stdlib_String[10], + ends_with = Stdlib_String[11], + contains_from = Stdlib_String[12], + rcontains_from = Stdlib_String[13], + contains = Stdlib_String[14], + sub = Stdlib_String[15], + split_on_char = Stdlib_String[16], + map = Stdlib_String[17], + mapi = Stdlib_String[18], + fold_left = Stdlib_String[19], + fold_right = Stdlib_String[20], + for_all = Stdlib_String[21], + exists = Stdlib_String[22], + trim = Stdlib_String[23], + escaped = Stdlib_String[24], + uppercase_ascii = Stdlib_String[25], + lowercase_ascii = Stdlib_String[26], + capitalize_ascii = Stdlib_String[27], + uncapitalize_ascii = Stdlib_String[28], + iter = Stdlib_String[29], + iteri = Stdlib_String[30], + index_from = Stdlib_String[31], + index_from_opt = Stdlib_String[32], + rindex_from = Stdlib_String[33], + rindex_from_opt = Stdlib_String[34], + index = Stdlib_String[35], + index_opt = Stdlib_String[36], + rindex = Stdlib_String[37], + rindex_opt = Stdlib_String[38], + to_seq = Stdlib_String[39], + to_seqi = Stdlib_String[40], + of_seq = Stdlib_String[41], + get_utf_8_uchar = Stdlib_String[42], + is_valid_utf_8 = Stdlib_String[43], + get_utf_16be_uchar = Stdlib_String[44], + is_valid_utf_16be = Stdlib_String[45], + get_utf_16le_uchar = Stdlib_String[46], + is_valid_utf_16le = Stdlib_String[47], + blit = Stdlib_String[48], + copy = Stdlib_String[49], + fill = Stdlib_String[50], + uppercase = Stdlib_String[51], + lowercase = Stdlib_String[52], + capitalize = Stdlib_String[53], + uncapitalize = Stdlib_String[54], + get_uint8 = Stdlib_String[55], + get_int8 = Stdlib_String[56], + get_uint16_ne = Stdlib_String[57], + get_uint16_be = Stdlib_String[58], + get_uint16_le = Stdlib_String[59], + get_int16_ne = Stdlib_String[60], + get_int16_be = Stdlib_String[61], + get_int16_le = Stdlib_String[62], + get_int32_ne = Stdlib_String[63], + get_int32_be = Stdlib_String[64], + get_int32_le = Stdlib_String[65], + get_int64_ne = Stdlib_String[66], + get_int64_be = Stdlib_String[67], + get_int64_le = Stdlib_String[68], + Stdlib_StringLabels = [0, - make$1, - init$2, - empty$1, + make, + init, + empty, of_bytes, to_bytes, - concat$1, + concat, cat, - equal$9, - compare$9, - starts_with$0, - ends_with$0, - contains_from$0, - rcontains_from$0, - contains$0, - sub$0, - split_on_char$0, - map$6, - mapi$2, - fold_left$2, - fold_right$1, - for_all$2, - exists$2, - trim$0, - escaped$1, - uppercase_ascii$1, - lowercase_ascii$1, - capitalize_ascii$0, - uncapitalize_ascii$0, - iter$4, - iteri$2, - index_from$0, - index_from_opt$0, - rindex_from$0, - rindex_from_opt$0, - index$0, - index_opt$0, - rindex$0, - rindex_opt$0, - to_seq$3, - to_seqi$0, - of_seq$1, - get_utf_8_uchar$0, - is_valid_utf_8$0, - get_utf_16be_uchar$0, - is_valid_utf_16be$0, - get_utf_16le_uchar$0, - is_valid_utf_16le$0, - blit$0, - copy$0, + equal, + compare, + starts_with, + ends_with, + contains_from, + rcontains_from, + contains, + sub, + split_on_char, + map, + mapi, + fold_left, + fold_right, + for_all, + exists, + trim, + escaped, + uppercase_ascii, + lowercase_ascii, + capitalize_ascii, + uncapitalize_ascii, + iter, + iteri, + index_from, + index_from_opt, + rindex_from, + rindex_from_opt, + index, + index_opt, + rindex, + rindex_opt, + to_seq, + to_seqi, + of_seq, + get_utf_8_uchar, + is_valid_utf_8, + get_utf_16be_uchar, + is_valid_utf_16be, + get_utf_16le_uchar, + is_valid_utf_16le, + blit, + copy, fill, - uppercase$1, - lowercase$1, - capitalize$0, - uncapitalize$0, - get_uint8$0, - get_int8$0, - get_uint16_ne$0, - get_uint16_be$0, - get_uint16_le$0, - get_int16_ne$0, - get_int16_be$0, - get_int16_le$0, - get_int32_ne$0, - get_int32_be$0, - get_int32_le$0, - get_int64_ne$0, - get_int64_be$0, - get_int64_le$0]; - caml_register_global(831,Stdlib_StringLabels,"Stdlib__StringLabels"); - var Stdlib_MoreLabels=[0,Stdlib_Hashtbl,Stdlib_Map,Stdlib_Set]; - caml_register_global(832,Stdlib_MoreLabels,"Stdlib__MoreLabels"); - var Stdlib_StdLabels=[0]; - caml_register_global(833,Stdlib_StdLabels,"Stdlib__StdLabels"); - var - float32=0, - float64=1, - int8_signed=2, - int8_unsigned=3, - int16_signed=4, - int16_unsigned=5, - int32$1=6, - int64$1=7, - int$2=8, - nativeint$1=9, - complex32=10, - complex64=11, - char$0=12; - function kind_size_in_bytes(param) - {switch(param) - {case 0:return 4; - case 1:return 8; - case 2:return 1; - case 3:return 1; - case 4:return 2; - case 5:return 2; - case 6:return 4; - case 7:return 8; - case 8:return 4; - case 9:return 4; - case 10:return 8; - case 11:return 16; - default:return 1}} - var c_layout=0,fortran_layout=1; - function cloop(arr,idx,f,col,max) - {if(col === idx.length - 1) - return caml_ba_set_generic(arr,idx,caml_call1(f,idx)); - var _eg_=caml_check_bound(max,col)[1 + col] - 1 | 0,_ef_=0; - if(_eg_ >= 0) - {var j=_ef_; - for(;;) - {caml_check_bound(idx,col)[1 + col] = j; - cloop(arr,idx,f,col + 1 | 0,max); - var _eh_=j + 1 | 0; - if(_eg_ !== j){var j=_eh_;continue} - break}} - return 0} - function floop(arr,idx,f,col,max) - {if(0 > col)return caml_ba_set_generic(arr,idx,caml_call1(f,idx)); - var _ed_=caml_check_bound(max,col)[1 + col],_ec_=1; - if(_ed_ >= 1) - {var j=_ec_; - for(;;) - {caml_check_bound(idx,col)[1 + col] = j; - floop(arr,idx,f,col - 1 | 0,max); - var _ee_=j + 1 | 0; - if(_ed_ !== j){var j=_ee_;continue} - break}} - return 0} - function init$6(kind,layout,dims,f) - {var arr=caml_ba_create(kind,layout,dims),dlen=dims.length - 1; - return 0 === dlen - ?arr - :layout - ?(floop(arr,caml_make_vect(dlen,1),f,dlen - 1 | 0,dims),arr) - :(cloop(arr,caml_make_vect(dlen,0),f,0,dims),arr)} - function dims(a) - {var n=caml_ba_num_dims(a),d=caml_make_vect(n,0),_d$_=n - 1 | 0,_d__=0; - if(_d$_ >= 0) - {var i=_d__; - for(;;) - {var _ea_=runtime.caml_ba_dim(a,i); - caml_check_bound(d,i)[1 + i] = _ea_; - var _eb_=i + 1 | 0; - if(_d$_ !== i){var i=_eb_;continue} - break}} - return d} - function size_in_bytes(arr) - {var _d9_=fold_left$3(caml_mul,1,dims(arr)); - return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d9_)} - function create$8(kind,layout){return caml_ba_create(kind,layout,[0])} - function get$3(arr){return runtime.caml_ba_get_generic(arr,[0])} - function set$2(arr) - {var _d7_=[0]; - return function(_d8_){return caml_ba_set_generic(arr,_d7_,_d8_)}} - function size_in_bytes$0(arr) - {return kind_size_in_bytes(caml_ba_kind(arr))} - function of_value(kind,layout,v) - {var a=create$8(kind,layout);caml_call1(set$2(a),v);return a} - function create$9(kind,layout,dim) - {return caml_ba_create(kind,layout,[0,dim])} - function size_in_bytes$1(arr) - {var _d6_=caml_ba_dim_1(arr); - return caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_d6_)} - function slice(a,n) - {var match=runtime.caml_ba_layout(a); - return match?caml_ba_slice(a,[0,n]):caml_ba_slice(a,[0,n])} - function init$7(kind,layout,dim,f) - {var arr=create$9(kind,layout,dim); - if(layout) - {var _d4_=1; - if(dim >= 1) - {var i$0=_d4_; - for(;;) - {caml_ba_set_1(arr,i$0,caml_call1(f,i$0)); - var _d5_=i$0 + 1 | 0; - if(dim !== i$0){var i$0=_d5_;continue} - break}} - return arr} - var _d2_=dim - 1 | 0,_d1_=0; - if(_d2_ >= 0) - {var i=_d1_; - for(;;) - {caml_ba_set_1(arr,i,caml_call1(f,i)); - var _d3_=i + 1 | 0; - if(_d2_ !== i){var i=_d3_;continue} - break}} - return arr} - function of_array(kind,layout,data) - {var - ba=create$9(kind,layout,data.length - 1), - ofs=layout?1:0, - _dZ_=data.length - 1 - 1 | 0, - _dY_=0; - if(_dZ_ >= 0) - {var i=_dY_; - for(;;) - {caml_ba_set_1(ba,i + ofs | 0,caml_check_bound(data,i)[1 + i]); - var _d0_=i + 1 | 0; - if(_dZ_ !== i){var i=_d0_;continue} - break}} - return ba} - function create$10(kind,layout,dim1,dim2) - {return caml_ba_create(kind,layout,[0,dim1,dim2])} - function size_in_bytes$2(arr) - {var _dW_=caml_ba_dim_2(arr),_dX_=caml_ba_dim_1(arr); - return caml_mul - (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dX_),_dW_)} - function slice_left(a,n){return caml_ba_slice(a,[0,n])} - function slice_right(a,n){return caml_ba_slice(a,[0,n])} - function init$8(kind,layout,dim1,dim2,f) - {var arr=create$10(kind,layout,dim1,dim2); - if(layout) - {var _dS_=1; - if(dim2 >= 1) - {var j$0=_dS_; - for(;;) - {var _dT_=1; - if(dim1 >= 1) - {var i$0=_dT_; - for(;;) - {caml_ba_set_2(arr,i$0,j$0,caml_call2(f,i$0,j$0)); - var _dV_=i$0 + 1 | 0; - if(dim1 !== i$0){var i$0=_dV_;continue} - break}} - var _dU_=j$0 + 1 | 0; - if(dim2 !== j$0){var j$0=_dU_;continue} - break}} - return arr} - var _dN_=dim1 - 1 | 0,_dM_=0; - if(_dN_ >= 0) - {var i=_dM_; - for(;;) - {var _dP_=dim2 - 1 | 0,_dO_=0; - if(_dP_ >= 0) - {var j=_dO_; - for(;;) - {caml_ba_set_2(arr,i,j,caml_call2(f,i,j)); - var _dR_=j + 1 | 0; - if(_dP_ !== j){var j=_dR_;continue} - break}} - var _dQ_=i + 1 | 0; - if(_dN_ !== i){var i=_dQ_;continue} - break}} - return arr} - function of_array$0(kind,layout,data) - {var - dim1=data.length - 1, - dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, - ba=create$10(kind,layout,dim1,dim2), - ofs=layout?1:0, - _dH_=dim1 - 1 | 0, - _dG_=0; - if(_dH_ >= 0) - {var i=_dG_; - for(;;) - {var row=caml_check_bound(data,i)[1 + i]; - if(row.length - 1 !== dim2) - invalid_arg(cst_Bigarray_Array2_of_array_n); - var _dJ_=dim2 - 1 | 0,_dI_=0; - if(_dJ_ >= 0) - {var j=_dI_; - for(;;) - {caml_ba_set_2 - (ba,i + ofs | 0,j + ofs | 0,caml_check_bound(row,j)[1 + j]); - var _dL_=j + 1 | 0; - if(_dJ_ !== j){var j=_dL_;continue} - break}} - var _dK_=i + 1 | 0; - if(_dH_ !== i){var i=_dK_;continue} - break}} - return ba} - function create$11(kind,layout,dim1,dim2,dim3) - {return caml_ba_create(kind,layout,[0,dim1,dim2,dim3])} - function size_in_bytes$3(arr) - {var - _dD_=runtime.caml_ba_dim_3(arr), - _dE_=caml_ba_dim_2(arr), - _dF_=caml_ba_dim_1(arr); - return caml_mul - (caml_mul - (caml_mul(kind_size_in_bytes(caml_ba_kind(arr)),_dF_),_dE_), - _dD_)} - function slice_left_1(a,n,m){return caml_ba_slice(a,[0,n,m])} - function slice_right_1(a,n,m){return caml_ba_slice(a,[0,n,m])} - function slice_left_2(a,n){return caml_ba_slice(a,[0,n])} - function slice_right_2(a,n){return caml_ba_slice(a,[0,n])} - function init$9(kind,layout,dim1,dim2,dim3,f) - {var arr=create$11(kind,layout,dim1,dim2,dim3); - if(layout) - {var _dx_=1; - if(dim3 >= 1) - {var k$0=_dx_; - for(;;) - {var _dy_=1; - if(dim2 >= 1) - {var j$0=_dy_; - for(;;) - {var _dA_=1; - if(dim1 >= 1) - {var i$0=_dA_; - for(;;) - {caml_ba_set_3(arr,i$0,j$0,k$0,caml_call3(f,i$0,j$0,k$0)); - var _dC_=i$0 + 1 | 0; - if(dim1 !== i$0){var i$0=_dC_;continue} - break}} - var _dB_=j$0 + 1 | 0; - if(dim2 !== j$0){var j$0=_dB_;continue} - break}} - var _dz_=k$0 + 1 | 0; - if(dim3 !== k$0){var k$0=_dz_;continue} - break}} - return arr} - var _dp_=dim1 - 1 | 0,_do_=0; - if(_dp_ >= 0) - {var i=_do_; - for(;;) - {var _dr_=dim2 - 1 | 0,_dq_=0; - if(_dr_ >= 0) - {var j=_dq_; - for(;;) - {var _du_=dim3 - 1 | 0,_dt_=0; - if(_du_ >= 0) - {var k=_dt_; - for(;;) - {caml_ba_set_3(arr,i,j,k,caml_call3(f,i,j,k)); - var _dw_=k + 1 | 0; - if(_du_ !== k){var k=_dw_;continue} - break}} - var _dv_=j + 1 | 0; - if(_dr_ !== j){var j=_dv_;continue} - break}} - var _ds_=i + 1 | 0; - if(_dp_ !== i){var i=_ds_;continue} - break}} - return arr} - function of_array$1(kind,layout,data) - {var - dim1=data.length - 1, - dim2=0 === dim1?0:caml_check_bound(data,0)[1].length - 1, - dim3= - 0 === dim2 - ?0 - :caml_check_bound(caml_check_bound(data,0)[1],0)[1].length - 1, - ba=create$11(kind,layout,dim1,dim2,dim3), - ofs=layout?1:0, - _dg_=dim1 - 1 | 0, - _df_=0; - if(_dg_ >= 0) - {var i=_df_; - for(;;) - {var row=caml_check_bound(data,i)[1 + i]; - if(row.length - 1 !== dim2) - invalid_arg(cst_Bigarray_Array3_of_array_n); - var _di_=dim2 - 1 | 0,_dh_=0; - if(_di_ >= 0) - {var j=_dh_; - for(;;) - {var col=caml_check_bound(row,j)[1 + j]; - if(col.length - 1 !== dim3) - invalid_arg(cst_Bigarray_Array3_of_array_n$0); - var _dl_=dim3 - 1 | 0,_dk_=0; - if(_dl_ >= 0) - {var k=_dk_; - for(;;) - {caml_ba_set_3 - (ba, - i + ofs | 0, - j + ofs | 0, - k + ofs | 0, - caml_check_bound(col,k)[1 + k]); - var _dn_=k + 1 | 0; - if(_dl_ !== k){var k=_dn_;continue} - break}} - var _dm_=j + 1 | 0; - if(_di_ !== j){var j=_dm_;continue} - break}} - var _dj_=i + 1 | 0; - if(_dg_ !== i){var i=_dj_;continue} - break}} - return ba} - function array0_of_genarray(a) - {return 0 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array0_of_genarra)} - function array1_of_genarray(a) - {return 1 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array1_of_genarra)} - function array2_of_genarray(a) - {return 2 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array2_of_genarra)} - function array3_of_genarray(a) - {return 3 === caml_ba_num_dims(a) - ?a - :invalid_arg(cst_Bigarray_array3_of_genarra)} - function reshape_0(a){return caml_ba_reshape(a,[0])} - function reshape_1(a,dim1){return caml_ba_reshape(a,[0,dim1])} - function reshape_2(a,dim1,dim2){return caml_ba_reshape(a,[0,dim1,dim2])} - function reshape_3(a,dim1,dim2,dim3) - {return caml_ba_reshape(a,[0,dim1,dim2,dim3])} - var - Stdlib_Bigarray= - [0, - float32, - float64, - complex32, - complex64, - int8_signed, - int8_unsigned, - int16_signed, - int16_unsigned, - int$2, - int32$1, - int64$1, - nativeint$1, - char$0, - kind_size_in_bytes, - c_layout, - fortran_layout, - [0,init$6,dims,size_in_bytes], - [0, - create$8, - of_value, - caml_ba_change_layout, - size_in_bytes$0, - get$3, - set$2, - of_value], - [0, - create$9, - init$7, - caml_ba_change_layout, - size_in_bytes$1, - slice, - of_array], - [0, - create$10, - init$8, - caml_ba_change_layout, - size_in_bytes$2, - slice_left, - slice_right, - of_array$0], - [0, - create$11, - init$9, - caml_ba_change_layout, - size_in_bytes$3, - slice_left_1, - slice_right_1, - slice_left_2, - slice_right_2, - of_array$1], - array0_of_genarray, - array1_of_genarray, - array2_of_genarray, - array3_of_genarray, - caml_ba_reshape, - reshape_0, - reshape_1, - reshape_2, - reshape_3]; - caml_register_global(834,Stdlib_Bigarray,"Stdlib__Bigarray"); - function with_open(openfun,s,f) - {var ic=caml_call1(openfun,s); - function _de_(param){return caml_call1(f,ic)} - return protect(function(param){return close_noerr$0(ic)},_de_)} - function with_open_bin(s,f){return with_open(open_bin$0,s,f)} - function with_open_text(s,f){return with_open(open_text$0,s,f)} - function with_open_gen(flags,perm,s,f) - {return with_open(function(_dd_){return open_gen$0(flags,perm,_dd_)},s,f)} - var seek=_m_[4],pos=_m_[5],length$11=_m_[6]; - function input_char$0(ic) - {try - {var c=caml_ml_input_char(ic)} - catch(_dc_) - {_dc_ = caml_wrap_exception(_dc_); - if(_dc_ === End_of_file)return 0; - throw _dc_} - return [0,c]} - function input_byte$0(ic) - {try - {var n=caml_ml_input_char(ic)} - catch(_db_) - {_db_ = caml_wrap_exception(_db_); - if(_db_ === End_of_file)return 0; - throw _db_} - return [0,n]} - function input_line$0(ic) - {try - {var s=input_line(ic)} - catch(_da_) - {_da_ = caml_wrap_exception(_da_); - if(_da_ === End_of_file)return 0; - throw _da_} - return [0,s]} - function really_input$0(ic,buf,pos,len) - {try - {really_input(ic,buf,pos,len);return _cZ_} - catch(_c$_) - {_c$_ = caml_wrap_exception(_c$_); - if(_c$_ === End_of_file)return 0; - throw _c$_}} - function really_input_string$0(ic,len) - {try - {var s=really_input_string(ic,len)} - catch(_c__) - {_c__ = caml_wrap_exception(_c__); - if(_c__ === End_of_file)return 0; - throw _c__} - return [0,s]} - function read_upto(ic,buf,ofs,len) - {var ofs$0=ofs,len$0=len; - for(;;) - {if(0 !== len$0) - {var r=input(ic,buf,ofs$0,len$0); - if(0 !== r) - {var - len$1=len$0 - r | 0, - ofs$1=ofs$0 + r | 0, - ofs$0=ofs$1, - len$0=len$1; - continue}} - return ofs$0 - ofs | 0}} - function ensure(buf,ofs,n) - {var len=caml_ml_bytes_length(buf); - if((ofs + n | 0) <= len)return buf; - var new_len=[0,len]; - for(;;) - {if(new_len[1] < (ofs + n | 0)) - {new_len[1] = (2 * new_len[1] | 0) + 1 | 0;continue} - var - new_len$0=new_len[1], - new_len$1= - new_len$0 <= max_string_length - ?new_len$0 - :ofs < max_string_length - ?max_string_length - :failwith(cst_In_channel_input_all_chann), - new_buf=caml_create_bytes(new_len$1); - blit(buf,0,new_buf,0,ofs); - return new_buf}} - function input_all(ic) - {var chunk_size=65536; - try - {var - _c6_=caml_ml_pos_in(ic), - _c7_=caml_ml_channel_size(ic) - _c6_ | 0, - initial_size=_c7_} - catch(_c9_) - {_c9_ = caml_wrap_exception(_c9_); - if(_c9_[1] !== Sys_error)throw _c9_; - var initial_size=-1} - var - initial_size$0=0 <= initial_size?initial_size:chunk_size, - initial_size$1= - initial_size$0 <= max_string_length?initial_size$0:max_string_length, - buf=caml_create_bytes(initial_size$1), - nread=read_upto(ic,buf,0,initial_size$1); - if(nread < initial_size$1)return sub_string(buf,0,nread); - try - {var c=caml_ml_input_char(ic)} - catch(_c8_) - {_c8_ = caml_wrap_exception(_c8_); - if(_c8_ === End_of_file)return caml_string_of_bytes(buf); - throw _c8_} - function loop(buf,ofs) - {var buf$0=buf,ofs$0=ofs; - for(;;) - {var - buf$1=ensure(buf$0,ofs$0,chunk_size), - rem=caml_ml_bytes_length(buf$1) - ofs$0 | 0, - r=read_upto(ic,buf$1,ofs$0,rem); - if(r < rem)return sub_string(buf$1,0,ofs$0 + r | 0); - var ofs$1=ofs$0 + rem | 0,buf$0=buf$1,ofs$0=ofs$1}} - var buf$0=ensure(buf,nread,65537); - caml_bytes_set(buf$0,nread,c); - return loop(buf$0,nread + 1 | 0)} - var - Stdlib_In_channel= - [0, - stdin, - open_bin$0, - open_text$0, - open_gen$0, - with_open_bin, - with_open_text, - with_open_gen, - seek, - pos, - length$11, - close$0, - close_noerr$0, - input_char$0, - input_byte$0, - input_line$0, - input, - really_input$0, - really_input_string$0, - input_all, - set_binary_mode]; - caml_register_global(835,Stdlib_In_channel,"Stdlib__In_channel"); - function with_open$0(openfun,s,f) - {var oc=caml_call1(openfun,s); - function _c5_(param){return caml_call1(f,oc)} - return protect(function(param){return close_noerr(oc)},_c5_)} - function with_open_bin$0(s,f){return with_open$0(open_bin,s,f)} - function with_open_text$0(s,f){return with_open$0(open_text,s,f)} - function with_open_gen$0(flags,perm,s,f) - {return with_open$0(function(_c4_){return open_gen(flags,perm,_c4_)},s,f)} - var - seek$0=_m_[1], - pos$0=_m_[2], - length$12=_m_[3], - Stdlib_Out_channel= - [0, - stdout, - stderr, - open_bin, - open_text, - open_gen, - with_open_bin$0, - with_open_text$0, - with_open_gen$0, - seek$0, - pos$0, - length$12, - close, - close_noerr, - flush, - flush_all, - output_char, - output_byte, - output_string, - output_bytes, - output, - output_substring, - set_binary_mode$0, - runtime.caml_ml_set_buffered, - runtime.caml_ml_is_buffered]; - caml_register_global(836,Stdlib_Out_channel,"Stdlib__Out_channel"); - return} + uppercase, + lowercase, + capitalize, + uncapitalize, + get_uint8, + get_int8, + get_uint16_ne, + get_uint16_be, + get_uint16_le, + get_int16_ne, + get_int16_be, + get_int16_le, + get_int32_ne, + get_int32_be, + get_int32_le, + get_int64_ne, + get_int64_be, + get_int64_le]; + runtime.caml_register_global + (1, Stdlib_StringLabels, "Stdlib__StringLabels"); + return; + } + (globalThis)); + +//# 26459 "../../.js/default/stdlib/stdlib.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_Set = global_data.Stdlib__Set, + Stdlib_Map = global_data.Stdlib__Map, + Stdlib_Hashtbl = global_data.Stdlib__Hashtbl, + Stdlib_MoreLabels = [0, Stdlib_Hashtbl, Stdlib_Map, Stdlib_Set]; + runtime.caml_register_global(3, Stdlib_MoreLabels, "Stdlib__MoreLabels"); + return; + } (globalThis)); -//# 1 "../../.js/dates_calc/dates_calc.cma.js" +//# 1 "../../.js/default/dates_calc/dates_calc.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../.js/default/dates_calc/dates_calc.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_mul=runtime.caml_mul, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_Dates_calc_Dates_InvalidDa= - caml_string_of_jsbytes("Dates_calc.Dates.InvalidDate"), - cst_Dates_calc_Dates_Ambiguous= - caml_string_of_jsbytes("Dates_calc.Dates.AmbiguousComputation"), - Assert_failure=global_data.Assert_failure, - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Int=global_data.Stdlib__Int, - Dates_calc=[0]; - caml_register_global(10,Dates_calc,"Dates_calc"); - var - InvalidDate=[248,cst_Dates_calc_Dates_InvalidDa,caml_fresh_oo_id(0)], - AmbiguousComputation= - [248,cst_Dates_calc_Dates_Ambiguous,caml_fresh_oo_id(0)], - _h_=[0,caml_string_of_jsbytes("lib/dates.ml"),230,2], - _g_=[0,caml_string_of_jsbytes("lib/dates.ml"),226,2], - _f_= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_lib_dates_ml = "lib/dates.ml", + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_mul = runtime.caml_mul, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + Assert_failure = global_data.Assert_failure, + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Int = global_data.Stdlib__Int, + InvalidDate = [248, "Dates_calc.Dates.InvalidDate", caml_fresh_oo_id(0)], + AmbiguousComputation = + [248, "Dates_calc.Dates.AmbiguousComputation", caml_fresh_oo_id(0)], + _h_ = [0, cst_lib_dates_ml, 230, 2], + _g_ = [0, cst_lib_dates_ml, 226, 2], + _f_ = [0, - [4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]], - caml_string_of_jsbytes("%04d-%02d-%02d")], - _d_=[0,caml_string_of_jsbytes("lib/dates.ml"),123,2], - _e_=[0,caml_string_of_jsbytes("lib/dates.ml"),124,2], - _b_=[0,caml_string_of_jsbytes("lib/dates.ml"),109,2], - _c_=[0,caml_string_of_jsbytes("lib/dates.ml"),110,2], - _a_= + [4, + 0, + [0, 2, 4], + 0, + [12, 45, [4, 0, [0, 2, 2], 0, [12, 45, [4, 0, [0, 2, 2], 0, 0]]]]], + "%04d-%02d-%02d"], + _d_ = [0, cst_lib_dates_ml, 123, 2], + _e_ = [0, cst_lib_dates_ml, 124, 2], + _b_ = [0, cst_lib_dates_ml, 109, 2], + _c_ = [0, cst_lib_dates_ml, 110, 2], + _a_ = [0, [12, 91, @@ -29807,195 +29103,233 @@ 0, 0, [11, - caml_string_of_jsbytes(" years, "), - [4, - 0, - 0, - 0, - [11, - caml_string_of_jsbytes(" months, "), - [4,0,0,0,[11,caml_string_of_jsbytes(" days]"),0]]]]]]], - caml_string_of_jsbytes("[%d years, %d months, %d days]")]; - function format_period(fmt,p) - {return caml_call5(Stdlib_Format[129],fmt,_a_,p[1],p[2],p[3])} - function make_period(years,months,days){return [0,years,months,days]} - function add_periods(d1,d2) - {return [0,d1[1] + d2[1] | 0,d1[2] + d2[2] | 0,d1[3] + d2[3] | 0]} - function sub_periods(d1,d2) - {return [0,d1[1] - d2[1] | 0,d1[2] - d2[2] | 0,d1[3] - d2[3] | 0]} - function mul_period(d1,m) - {return [0,caml_mul(d1[1],m),caml_mul(d1[2],m),caml_mul(d1[3],m)]} - function period_to_days(p) - {if(0 === p[1] && 0 === p[2])return p[3];throw AmbiguousComputation} - function is_leap_year(year) - {var _w_=0 === (year % 400 | 0)?1:0; - if(_w_) - var _x_=_w_; - else - var - _y_=0 === (year % 4 | 0)?1:0, - _x_=_y_?0 !== (year % 100 | 0)?1:0:_y_; - return _x_} - function days_in_month(month,is_leap_year) - {var switcher=month - 1 | 0; - if(11 < switcher >>> 0)throw InvalidDate; - switch(switcher) - {case 1:return is_leap_year?29:28; - case 3: - case 5: - case 8: - case 10:return 30; - default:return 31}} - function is_valid_date(d) - {try - {var _r_=1 <= d[3]?1:0; - if(_r_) - var - _s_=is_leap_year(d[1]), - _t_=days_in_month(d[2],_s_), - _u_=d[3] <= _t_?1:0; - else - var _u_=_r_; - return _u_} - catch(_v_) - {_v_ = caml_wrap_exception(_v_); - if(_v_ === InvalidDate)return 0; - throw _v_}} - function make_date(year,month,day) - {var d=[0,year,month,day];if(is_valid_date(d))return d;throw InvalidDate} - function add_months_to_first_of_month_d(year,month,months) - {var year$0=year,months$0=months; - for(;;) - {var new_month=month + months$0 | 0; - if(1 <= new_month && 12 >= new_month)return [0,year$0,new_month]; - if(12 < new_month) - {var - months$1=months$0 - 12 | 0, - year$1=year$0 + 1 | 0, - year$0=year$1, - months$0=months$1; - continue} - var - months$2=months$0 + 12 | 0, - year$2=year$0 - 1 | 0, - year$0=year$2, - months$0=months$2}} - function add_dates(opt,d) - {if(opt)var sth=opt[1],round=sth;else var round=2; - return function(p) - {var - _o_=d[3], - match$0=add_months_to_first_of_month_d(d[1] + p[1] | 0,d[2],p[2]), - new_month$0=match$0[2], - new_year$0=match$0[1], - new_date=[0,new_year$0,new_month$0,_o_]; - if(is_valid_date(new_date)) - var _p_=new_date; - else - switch(round) - {case 0: - var switch$0=0; - if(1 <= new_date[2] && ! (12 < new_date[2])) - {var switch$1=0; - if(1 <= new_date[3] && 31 >= new_date[3]) - if(is_valid_date(new_date)) - {var _p_=new_date;switch$1 = 1} - else - {var - match= - add_months_to_first_of_month_d(new_date[1],new_date[2],1), - new_month=match[2], - new_year=match[1], - _p_=[0,new_year,new_month,1]; - switch$1 = 1} - if(! switch$1)throw [0,Assert_failure,_e_]} - else - switch$0 = 1; - if(switch$0)throw [0,Assert_failure,_d_]; - break; - case 1: - var switch$2=0; - if(1 <= new_date[2] && ! (12 < new_date[2])) - {var switch$3=0; - if(1 <= new_date[3] && 31 >= new_date[3]) - if(is_valid_date(new_date)) - {var _p_=new_date;switch$3 = 1} - else - {var - _m_=is_leap_year(new_date[1]), - _n_=days_in_month(new_date[2],_m_), - _p_=[0,new_date[1],new_date[2],_n_]; - switch$3 = 1} - if(! switch$3)throw [0,Assert_failure,_c_]} - else - switch$2 = 1; - if(switch$2)throw [0,Assert_failure,_b_]; - break; - default:throw AmbiguousComputation} - var d$0=_p_,days=p[3]; - for(;;) - {var - _q_=is_leap_year(d$0[1]), - days_in_d_month=days_in_month(d$0[2],_q_), - new_day=d$0[3] + days | 0; - if(1 <= new_day && new_day <= days_in_d_month) - return [0,d$0[1],d$0[2],new_day]; - if(days_in_d_month <= new_day) - {var - match$1=add_months_to_first_of_month_d(d$0[1],d$0[2],1), - new_month$1=match$1[2], - new_year$1=match$1[1], - days$0=(days - (days_in_d_month - d$0[3] | 0) | 0) - 1 | 0, - d$1=[0,new_year$1,new_month$1,1], - d$0=d$1, - days=days$0; - continue} - var - match$2=add_months_to_first_of_month_d(d$0[1],d$0[2],-1), - new_month$2=match$2[2], - new_year$2=match$2[1], - days$1=days + d$0[3] | 0, - d$2= - [0, - new_year$2, - new_month$2, - days_in_month(new_month$2,is_leap_year(new_year$2))], - d$0=d$2, - days=days$1}}} - function compare_dates(d1,d2) - {return 0 === caml_call2(Stdlib_Int[9],d1[1],d2[1]) - ?0 === caml_call2(Stdlib_Int[9],d1[2],d2[2]) - ?caml_call2(Stdlib_Int[9],d1[3],d2[3]) - :caml_call2(Stdlib_Int[9],d1[2],d2[2]) - :caml_call2(Stdlib_Int[9],d1[1],d2[1])} - function format_date(fmt,d) - {return caml_call5(Stdlib_Format[129],fmt,_f_,d[1],d[2],d[3])} - function first_day_of_month(d) - {if(is_valid_date(d))return make_date(d[1],d[2],1); - throw [0,Assert_failure,_g_]} - function last_day_of_month(d) - {if(! is_valid_date(d))throw [0,Assert_failure,_h_]; - var _l_=is_leap_year(d[1]),days_month=days_in_month(d[2],_l_); - return make_date(d[1],d[2],days_month)} - function neg_period(p){return [0,- p[1] | 0,- p[2] | 0,- p[3] | 0]} - function sub_dates(d1,d2) - {if(d1[1] === d2[1] && d1[2] === d2[2])return [0,0,0,d1[3] - d2[3] | 0]; - var cmp=compare_dates(d1,d2); - if(0 > cmp)return neg_period(sub_dates(d2,d1)); + " years, ", + [4, 0, 0, 0, [11, " months, ", [4, 0, 0, 0, [11, " days]", 0]]]]]]], + "[%d years, %d months, %d days]"]; + function format_period(fmt, p){ + return caml_call5(Stdlib_Format[129], fmt, _a_, p[1], p[2], p[3]); + } + function make_period(years, months, days){return [0, years, months, days];} + function add_periods(d1, d2){ + return [0, d1[1] + d2[1] | 0, d1[2] + d2[2] | 0, d1[3] + d2[3] | 0]; + } + function sub_periods(d1, d2){ + return [0, d1[1] - d2[1] | 0, d1[2] - d2[2] | 0, d1[3] - d2[3] | 0]; + } + function mul_period(d1, m){ + return [0, caml_mul(d1[1], m), caml_mul(d1[2], m), caml_mul(d1[3], m)]; + } + function period_to_days(p){ + if(0 === p[1] && 0 === p[2]) return p[3]; + throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); + } + function is_leap_year(year){ + var _w_ = 0 === (year % 400 | 0) ? 1 : 0; + if(_w_) + var _x_ = _w_; + else + var + _y_ = 0 === (year % 4 | 0) ? 1 : 0, + _x_ = _y_ ? 0 !== (year % 100 | 0) ? 1 : 0 : _y_; + return _x_; + } + function days_in_month(month, is_leap_year){ + var switcher = month - 1 | 0; + if(11 < switcher >>> 0) throw caml_maybe_attach_backtrace(InvalidDate, 1); + switch(switcher){ + case 1: + return is_leap_year ? 29 : 28; + case 3: + case 5: + case 8: + case 10: + return 30; + default: return 31; + } + } + function is_valid_date(d){ + try{ + var _r_ = 1 <= d[3] ? 1 : 0; + if(_r_) var - match=add_months_to_first_of_month_d(d2[1],d2[2],1), - new_d2_month=match[2], - new_d2_year=match[1], - new_d2=[0,new_d2_year,new_d2_month,1], - _i_=sub_dates(d1,new_d2), - _j_=d2[3], - _k_=is_leap_year(d2[1]); - return add_periods - ([0,0,0,(days_in_month(d2[2],_k_) - _j_ | 0) + 1 | 0],_i_)} - function date_to_ymd(d){return [0,d[1],d[2],d[3]]} - function period_to_ymds(p){return [0,p[1],p[2],p[3]]} + _s_ = is_leap_year(d[1]), + _t_ = days_in_month(d[2], _s_), + _u_ = d[3] <= _t_ ? 1 : 0; + else + var _u_ = _r_; + return _u_; + } + catch(_v_){ + var _q_ = caml_wrap_exception(_v_); + if(_q_ === InvalidDate) return 0; + throw caml_maybe_attach_backtrace(_q_, 0); + } + } + function make_date(year, month, day){ + var d = [0, year, month, day]; + if(is_valid_date(d)) return d; + throw caml_maybe_attach_backtrace(InvalidDate, 1); + } + function add_months_to_first_of_month_d(year, month, months){ + var year$0 = year, months$0 = months; + for(;;){ + var new_month = month + months$0 | 0; + if(1 <= new_month && 12 >= new_month) return [0, year$0, new_month]; + if(12 < new_month){ + var + months$1 = months$0 - 12 | 0, + year$1 = year$0 + 1 | 0, + year$0 = year$1, + months$0 = months$1; + continue; + } + var + months$2 = months$0 + 12 | 0, + year$2 = year$0 - 1 | 0, + year$0 = year$2, + months$0 = months$2; + } + } + function add_dates(opt, d){ + if(opt) var sth = opt[1], round = sth; else var round = 2; + return function(p){ + var + years = p[1], + months = p[2], + _o_ = d[3], + match$0 = add_months_to_first_of_month_d(d[1] + years | 0, d[2], months), + new_month$0 = match$0[2], + new_year$0 = match$0[1], + new_date = [0, new_year$0, new_month$0, _o_]; + if(is_valid_date(new_date)) + var d$0 = new_date; + else + switch(round){ + case 0: + var switch$0 = 0; + if(1 <= new_date[2] && ! (12 < new_date[2])){ + var switch$1 = 0; + if(1 <= new_date[3] && ! (31 < new_date[3])) + if(is_valid_date(new_date)) + var d$0 = new_date; + else + var + match = + add_months_to_first_of_month_d(new_date[1], new_date[2], 1), + new_month = match[2], + new_year = match[1], + d$0 = [0, new_year, new_month, 1]; + else + switch$1 = 1; + if(switch$1) + throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); + } + else + switch$0 = 1; + if(switch$0) + throw caml_maybe_attach_backtrace([0, Assert_failure, _d_], 1); + break; + case 1: + var switch$2 = 0; + if(1 <= new_date[2] && 12 >= new_date[2]){ + var switch$3 = 0; + if(1 <= new_date[3] && ! (31 < new_date[3])) + if(is_valid_date(new_date)){ + var d$0 = new_date; + switch$2 = 1; + } + else{ + var + _m_ = is_leap_year(new_date[1]), + _n_ = days_in_month(new_date[2], _m_), + d$0 = [0, new_date[1], new_date[2], _n_]; + switch$2 = 1; + } + else + switch$3 = 1; + if(switch$3) + throw caml_maybe_attach_backtrace([0, Assert_failure, _c_], 1); + } + if(! switch$2) + throw caml_maybe_attach_backtrace([0, Assert_failure, _b_], 1); + break; + default: throw caml_maybe_attach_backtrace(AmbiguousComputation, 1); + } + var days$2 = p[3], d$1 = d$0, days = days$2; + for(;;){ + var + _p_ = is_leap_year(d$1[1]), + days_in_d_month = days_in_month(d$1[2], _p_), + new_day = d$1[3] + days | 0; + if(1 <= new_day && new_day <= days_in_d_month) + return [0, d$1[1], d$1[2], new_day]; + if(days_in_d_month <= new_day){ + var + match$1 = add_months_to_first_of_month_d(d$1[1], d$1[2], 1), + new_month$1 = match$1[2], + new_year$1 = match$1[1], + days$0 = (days - (days_in_d_month - d$1[3] | 0) | 0) - 1 | 0, + d$2 = [0, new_year$1, new_month$1, 1], + d$1 = d$2, + days = days$0; + continue; + } + var + match$2 = add_months_to_first_of_month_d(d$1[1], d$1[2], -1), + new_month$2 = match$2[2], + new_year$2 = match$2[1], + days$1 = days + d$1[3] | 0, + d$3 = + [0, + new_year$2, + new_month$2, + days_in_month(new_month$2, is_leap_year(new_year$2))], + d$1 = d$3, + days = days$1; + }}; + } + function compare_dates(d1, d2){ + return 0 === caml_call2(Stdlib_Int[9], d1[1], d2[1]) + ? 0 + === caml_call2(Stdlib_Int[9], d1[2], d2[2]) + ? caml_call2(Stdlib_Int[9], d1[3], d2[3]) + : caml_call2(Stdlib_Int[9], d1[2], d2[2]) + : caml_call2(Stdlib_Int[9], d1[1], d2[1]); + } + function format_date(fmt, d){ + return caml_call5(Stdlib_Format[129], fmt, _f_, d[1], d[2], d[3]); + } + function first_day_of_month(d){ + if(is_valid_date(d)) return make_date(d[1], d[2], 1); + throw caml_maybe_attach_backtrace([0, Assert_failure, _g_], 1); + } + function last_day_of_month(d){ + if(! is_valid_date(d)) + throw caml_maybe_attach_backtrace([0, Assert_failure, _h_], 1); + var _l_ = is_leap_year(d[1]), days_month = days_in_month(d[2], _l_); + return make_date(d[1], d[2], days_month); + } + function neg_period(p){return [0, - p[1] | 0, - p[2] | 0, - p[3] | 0];} + function sub_dates(d1, d2){ + if(d1[1] === d2[1] && d1[2] === d2[2]) + return [0, 0, 0, d1[3] - d2[3] | 0]; + var cmp = compare_dates(d1, d2); + if(0 > cmp) return neg_period(sub_dates(d2, d1)); var - Dates_calc_Dates= + match = add_months_to_first_of_month_d(d2[1], d2[2], 1), + new_d2_month = match[2], + new_d2_year = match[1], + new_d2 = [0, new_d2_year, new_d2_month, 1], + _i_ = sub_dates(d1, new_d2), + _j_ = d2[3], + _k_ = is_leap_year(d2[1]); + return add_periods + ([0, 0, 0, (days_in_month(d2[2], _k_) - _j_ | 0) + 1 | 0], _i_); + } + function date_to_ymd(d){return [0, d[1], d[2], d[3]];} + function period_to_ymds(p){return [0, p[1], p[2], p[3]];} + var + Dates_calc_Dates = [0, InvalidDate, AmbiguousComputation, @@ -30016,292 +29350,347 @@ format_period, period_to_days, period_to_ymds]; - caml_register_global(14,Dates_calc_Dates,"Dates_calc__Dates"); - return} + runtime.caml_register_global(13, Dates_calc_Dates, "Dates_calc__Dates"); + return; + } (globalThis)); -//# 1 "../../.js/zarith/zarith.cma.js" +//# 1 "../../.js/default/zarith/zarith.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 5 "../../.js/default/zarith/zarith.cma.js" (function - (globalThis) - {"use strict"; + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime, Zarith_version = [0, "1.12"]; + runtime.caml_register_global(1, Zarith_version, "Zarith_version"); + return; + } + (globalThis)); + +//# 16 "../../.js/default/zarith/zarith.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_d = "%d", + caml_div = runtime.caml_div, + caml_equal = runtime.caml_equal, + caml_int64_to_float = runtime.caml_int64_to_float, + caml_ml_string_length = runtime.caml_ml_string_length; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib = global_data.Stdlib, + Stdlib_Sys = global_data.Stdlib__Sys, + Stdlib_Callback = global_data.Stdlib__Callback, + Zarith_version = global_data.Zarith_version, + _a_ = [248, "Z.Overflow", runtime.caml_fresh_oo_id(0)]; + runtime.ml_z_init(0); + caml_call2(Stdlib_Callback[2], "ml_z_overflow", _a_); + var + _S_ = runtime.caml_int64_create_lo_mi_hi(1, 0, 0), + cst_Z_log2up = "Z.log2up", + cst_Z_log2 = "Z.log2", + cst_Z_signed_extract_negative_ = "Z.signed_extract: negative bit offset", + cst_Z_signed_extract_nonpositi = + "Z.signed_extract: nonpositive bit length", + cst_Z_testbit = "Z.testbit"; + function _b_(_bU_){ + if(typeof _bU_ === "number" && _bU_ !== Stdlib[20]) return - _bU_ | 0; + return runtime.ml_z_neg(_bU_); + } + function _c_(_bS_, _bR_){ + if(typeof _bS_ === "number" && typeof _bR_ === "number"){ + var _bT_ = _bS_ + _bR_ | 0; + return 0 <= ((_bT_ ^ _bS_) & (_bT_ ^ _bR_)) + ? _bT_ + : runtime.ml_z_add(_bS_, _bR_); + } + return runtime.ml_z_add(_bS_, _bR_); + } + function _d_(_bP_, _bO_){ + if(typeof _bP_ === "number" && typeof _bO_ === "number"){ + var _bQ_ = _bP_ - _bO_ | 0; + return 0 <= ((_bP_ ^ _bO_) & (_bQ_ ^ _bP_)) + ? _bQ_ + : runtime.ml_z_sub(_bP_, _bO_); + } + return runtime.ml_z_sub(_bP_, _bO_); + } + function _e_(_bN_, _bM_){ + if + (typeof _bN_ === "number" + && typeof _bM_ === "number" && ! runtime.ml_z_mul_overflows(_bN_, _bM_)) + return runtime.caml_mul(_bN_, _bM_); + return runtime.ml_z_mul(_bN_, _bM_); + } + function _f_(_bL_, _bK_){ + return typeof _bK_ === "number" + ? -1 + === _bK_ + ? _b_(_bL_) + : typeof + _bL_ + === "number" + ? caml_div(_bL_, _bK_) + : runtime.ml_z_div(_bL_, _bK_) + : runtime.ml_z_div(_bL_, _bK_); + } + function _g_(_bJ_, _bI_){ + return typeof _bI_ === "number" + ? -1 + === _bI_ + ? 0 + : typeof + _bJ_ + === "number" + ? runtime.caml_mod(_bJ_, _bI_) + : runtime.ml_z_rem(_bJ_, _bI_) + : runtime.ml_z_rem(_bJ_, _bI_); + } + function _h_(_bH_, _bG_){ + return typeof _bG_ === "number" + ? -1 + === _bG_ + ? _b_(_bH_) + : typeof + _bH_ + === "number" + ? caml_div(_bH_, _bG_) + : runtime.ml_z_divexact(_bH_, _bG_) + : runtime.ml_z_divexact(_bH_, _bG_); + } + function _i_(_bF_){ + if(typeof _bF_ === "number" && _bF_ !== Stdlib[19]) return _bF_ + 1 | 0; + return runtime.ml_z_succ(_bF_); + } + function _j_(_bE_){ + if(typeof _bE_ === "number" && _bE_ !== Stdlib[20]) return _bE_ - 1 | 0; + return runtime.ml_z_pred(_bE_); + } + function _k_(_bD_){ + return typeof _bD_ === "number" + ? 0 + <= _bD_ + ? _bD_ + : _bD_ !== Stdlib[20] ? - _bD_ | 0 : runtime.ml_z_abs(_bD_) + : runtime.ml_z_abs(_bD_); + } + function _l_(_bC_, _bB_){ + if(typeof _bC_ === "number" && typeof _bB_ === "number") + return _bC_ & _bB_; + return runtime.ml_z_logand(_bC_, _bB_); + } + function _m_(_bA_, _bz_){ + if(typeof _bA_ === "number" && typeof _bz_ === "number") + return _bA_ | _bz_; + return runtime.ml_z_logor(_bA_, _bz_); + } + function _n_(_by_, _bx_){ + if(typeof _by_ === "number" && typeof _bx_ === "number") + return _by_ ^ _bx_; + return runtime.ml_z_logxor(_by_, _bx_); + } + function _o_(_bw_){ + return typeof _bw_ === "number" ? _bw_ ^ -1 : runtime.ml_z_lognot(_bw_); + } + function _p_(_bu_, _bt_){ + if(typeof _bu_ === "number" && 0 <= _bt_ && _bt_ < Stdlib_Sys[9]){ + var _bv_ = _bu_ << _bt_; + return _bv_ >> _bt_ === _bu_ ? _bv_ : runtime.ml_z_shift_left(_bu_, _bt_); + } + return runtime.ml_z_shift_left(_bu_, _bt_); + } + function _q_(_br_, _bq_){ + if(typeof _br_ === "number" && 0 <= _bq_){ + var _bs_ = _bq_ < Stdlib_Sys[9] ? _bq_ : Stdlib_Sys[9] - 1 | 0; + return _br_ >> _bs_; + } + return runtime.ml_z_shift_right(_br_, _bq_); + } + function _r_(_bp_, _bo_){ + if(typeof _bp_ === "number" && 0 <= _bo_) + return Stdlib_Sys[9] <= _bo_ + ? 0 + : 0 + <= _bp_ + ? _bp_ >>> _bo_ | 0 + : - ((- _bp_ | 0) >>> _bo_ | 0) | 0; + return runtime.ml_z_shift_right_trunc(_bp_, _bo_); + } + function _s_(_bn_){ + return typeof _bn_ === "number" ? _bn_ : runtime.ml_z_to_int(_bn_); + } + var _t_ = 0, _u_ = 1, _v_ = -1; + function _w_(_bm_, _bl_){ + return 0 < runtime.ml_z_compare(_bm_, _bl_) ? _bl_ : _bm_; + } + function _x_(_bk_, _bj_){ + return 0 <= runtime.ml_z_compare(_bk_, _bj_) ? _bk_ : _bj_; + } + function _y_(_bi_, _bh_){ + return runtime.ml_z_compare(_bi_, _bh_) <= 0 ? 1 : 0; + } + function _z_(_bg_, _bf_){ + return 0 <= runtime.ml_z_compare(_bg_, _bf_) ? 1 : 0; + } + function _A_(_be_, _bd_){ + return runtime.ml_z_compare(_be_, _bd_) < 0 ? 1 : 0; + } + function _B_(_bc_, _bb_){ + return 0 < runtime.ml_z_compare(_bc_, _bb_) ? 1 : 0; + } + function _C_(_ba_){return runtime.ml_z_format(cst_d, _ba_);} + function _D_(_a$_){ + return runtime.ml_z_of_substring_base + (0, _a$_, 0, caml_ml_string_length(_a$_)); + } + function _E_(_a8_, _a9_, _a__){ + return runtime.ml_z_of_substring_base(0, _a8_, _a9_, _a__); + } + function _F_(_a7_, _a6_){ + return runtime.ml_z_of_substring_base + (_a7_, _a6_, 0, caml_ml_string_length(_a6_)); + } + function _G_(_a0_, _aZ_){ var - runtime=globalThis.jsoo_runtime, - caml_div=runtime.caml_div, - caml_equal=runtime.caml_equal, - caml_int64_to_float=runtime.caml_int64_to_float, - caml_ldexp_float=runtime.caml_ldexp_float, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_mul=runtime.caml_mul, - caml_register_global=runtime.caml_register_global, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} + _a1_ = runtime.ml_z_div_rem(_a0_, _aZ_), + _a2_ = _a1_[2], + _a3_ = _a1_[1]; + if(0 <= runtime.ml_z_sign(_a2_)) return [0, _a3_, _a2_]; + if(0 <= runtime.ml_z_sign(_aZ_)){ + var _a4_ = _c_(_a2_, _aZ_); + return [0, _j_(_a3_), _a4_]; + } + var _a5_ = _d_(_a2_, _aZ_); + return [0, _i_(_a3_), _a5_]; + } + function _H_(_aY_, _aX_){ + return 0 <= runtime.ml_z_sign(_aX_) + ? runtime.ml_z_fdiv(_aY_, _aX_) + : runtime.ml_z_cdiv(_aY_, _aX_); + } + function _I_(_aV_, _aU_){ + var _aW_ = _g_(_aV_, _aU_); + return 0 <= runtime.ml_z_sign(_aW_) ? _aW_ : _c_(_aW_, _k_(_aU_)); + } + function _J_(_aM_, _aL_){ var - global_data=runtime.caml_get_global_data(), - cst_1_12=caml_string_of_jsbytes("1.12"), - cst_Z_log2up=caml_string_of_jsbytes("Z.log2up"), - cst_Z_log2=caml_string_of_jsbytes("Z.log2"), - cst_Z_signed_extract_negative_= - caml_string_of_jsbytes("Z.signed_extract: negative bit offset"), - cst_Z_signed_extract_nonpositi= - caml_string_of_jsbytes("Z.signed_extract: nonpositive bit length"), - cst_Z_testbit=caml_string_of_jsbytes("Z.testbit"), - cst_Z_Overflow=caml_string_of_jsbytes("Z.Overflow"), - cst_ml_z_overflow=caml_string_of_jsbytes("ml_z_overflow"), - cst_d=caml_string_of_jsbytes("%d"), - cst$0=caml_string_of_jsbytes(""), - cst_inf$1=caml_string_of_jsbytes("+inf"), - cst_inf$2=caml_string_of_jsbytes("-inf"), - cst_inf$3=caml_string_of_jsbytes("inf"), - cst_undef$0=caml_string_of_jsbytes("undef"), - cst_Q_of_string_invalid_digit= - caml_string_of_jsbytes("Q.of_string: invalid digit"), - cst_impossible_case$0=caml_string_of_jsbytes("impossible case"), - cst_impossible_case=caml_string_of_jsbytes("impossible case"), - cst_0=caml_string_of_jsbytes("0"), - cst_inf=caml_string_of_jsbytes("+inf"), - cst_inf$0=caml_string_of_jsbytes("-inf"), - cst_undef=caml_string_of_jsbytes("undef"), - cst=caml_string_of_jsbytes("/"), - cst_int64_of_big_int=caml_string_of_jsbytes("int64_of_big_int"), - cst_nativeint_of_big_int=caml_string_of_jsbytes("nativeint_of_big_int"), - cst_int32_of_big_int=caml_string_of_jsbytes("int32_of_big_int"), - cst_int_of_big_int=caml_string_of_jsbytes("int_of_big_int"), - cst_power_big_int_positive_big= - caml_string_of_jsbytes("power_big_int_positive_big_int"), - cst_power_int_positive_big_int= - caml_string_of_jsbytes("power_int_positive_big_int"), - cst_power_big_int_positive_int= - caml_string_of_jsbytes("power_big_int_positive_int"), - cst_power_int_positive_int= - caml_string_of_jsbytes("power_int_positive_int"), - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Buffer=global_data.Stdlib__Buffer, - Stdlib=global_data.Stdlib, - Stdlib_Sys=global_data.Stdlib__Sys, - Stdlib_Callback=global_data.Stdlib__Callback, - Stdlib_String=global_data.Stdlib__String, - Assert_failure=global_data.Assert_failure, - Zarith_version=[0,cst_1_12]; - caml_register_global(33,Zarith_version,"Zarith_version"); - var _a_=[248,cst_Z_Overflow,runtime.caml_fresh_oo_id(0)]; - runtime.ml_z_init(0); - caml_call2(Stdlib_Callback[2],cst_ml_z_overflow,_a_); + _aN_ = runtime.ml_z_sign(_aM_), + _aO_ = runtime.ml_z_sign(_aL_), + _aP_ = _aN_ + 1 | 0; + if(2 >= _aP_ >>> 0) + switch(_aP_){ + case 0: + if(0 === _aO_) return [0, _b_(_aM_), _v_, _t_]; break; + case 1: + var _aT_ = _aO_ + 1 | 0; + if(2 >= _aT_ >>> 0) + switch(_aT_){ + case 0: + return [0, _b_(_aL_), _t_, _v_]; + case 1: + return [0, _t_, _t_, _t_]; + default: return [0, _aL_, _t_, _u_]; + } + break; + default: if(0 === _aO_) return [0, _aM_, _u_, _t_]; + } var - _S_=runtime.caml_int64_create_lo_mi_hi(1,0,0), - _aV_=[0,caml_string_of_jsbytes("q.ml"),486,25]; - function _b_(_gZ_) - {if(typeof _gZ_ === "number" && _gZ_ !== Stdlib[20])return - _gZ_ | 0; - return runtime.ml_z_neg(_gZ_)} - function _c_(_gX_,_gW_) - {if(typeof _gX_ === "number" && typeof _gW_ === "number") - {var _gY_=_gX_ + _gW_ | 0; - return 0 <= ((_gY_ ^ _gX_) & (_gY_ ^ _gW_)) - ?_gY_ - :runtime.ml_z_add(_gX_,_gW_)} - return runtime.ml_z_add(_gX_,_gW_)} - function _d_(_gU_,_gT_) - {if(typeof _gU_ === "number" && typeof _gT_ === "number") - {var _gV_=_gU_ - _gT_ | 0; - return 0 <= ((_gU_ ^ _gT_) & (_gV_ ^ _gU_)) - ?_gV_ - :runtime.ml_z_sub(_gU_,_gT_)} - return runtime.ml_z_sub(_gU_,_gT_)} - function _e_(_gS_,_gR_) - {if - (typeof _gS_ - === - "number" - && - typeof _gR_ - === - "number" - && - ! - runtime.ml_z_mul_overflows(_gS_,_gR_)) - return caml_mul(_gS_,_gR_); - return runtime.ml_z_mul(_gS_,_gR_)} - function _f_(_gQ_,_gP_) - {return typeof _gP_ === "number" - ?-1 === _gP_ - ?_b_(_gQ_) - :typeof _gQ_ === "number" - ?caml_div(_gQ_,_gP_) - :runtime.ml_z_div(_gQ_,_gP_) - :runtime.ml_z_div(_gQ_,_gP_)} - function _g_(_gO_,_gN_) - {return typeof _gN_ === "number" - ?-1 === _gN_ - ?0 - :typeof _gO_ === "number" - ?runtime.caml_mod(_gO_,_gN_) - :runtime.ml_z_rem(_gO_,_gN_) - :runtime.ml_z_rem(_gO_,_gN_)} - function _h_(_gM_,_gL_) - {return typeof _gL_ === "number" - ?-1 === _gL_ - ?_b_(_gM_) - :typeof _gM_ === "number" - ?caml_div(_gM_,_gL_) - :runtime.ml_z_divexact(_gM_,_gL_) - :runtime.ml_z_divexact(_gM_,_gL_)} - function _i_(_gK_) - {if(typeof _gK_ === "number" && _gK_ !== Stdlib[19])return _gK_ + 1 | 0; - return runtime.ml_z_succ(_gK_)} - function _j_(_gJ_) - {if(typeof _gJ_ === "number" && _gJ_ !== Stdlib[20])return _gJ_ - 1 | 0; - return runtime.ml_z_pred(_gJ_)} - function _k_(_gI_) - {return typeof _gI_ === "number" - ?0 <= _gI_ - ?_gI_ - :_gI_ !== Stdlib[20]?- _gI_ | 0:runtime.ml_z_abs(_gI_) - :runtime.ml_z_abs(_gI_)} - function _l_(_gH_,_gG_) - {if(typeof _gH_ === "number" && typeof _gG_ === "number") - return _gH_ & _gG_; - return runtime.ml_z_logand(_gH_,_gG_)} - function _m_(_gF_,_gE_) - {if(typeof _gF_ === "number" && typeof _gE_ === "number") - return _gF_ | _gE_; - return runtime.ml_z_logor(_gF_,_gE_)} - function _n_(_gD_,_gC_) - {if(typeof _gD_ === "number" && typeof _gC_ === "number") - return _gD_ ^ _gC_; - return runtime.ml_z_logxor(_gD_,_gC_)} - function _o_(_gB_) - {return typeof _gB_ === "number"?_gB_ ^ -1:runtime.ml_z_lognot(_gB_)} - function _p_(_gz_,_gy_) - {if(typeof _gz_ === "number" && 0 <= _gy_ && _gy_ < Stdlib_Sys[9]) - {var _gA_=_gz_ << _gy_; - return _gA_ >> _gy_ === _gz_?_gA_:runtime.ml_z_shift_left(_gz_,_gy_)} - return runtime.ml_z_shift_left(_gz_,_gy_)} - function _q_(_gw_,_gv_) - {if(typeof _gw_ === "number" && 0 <= _gv_) - {var _gx_=_gv_ < Stdlib_Sys[9]?_gv_:Stdlib_Sys[9] - 1 | 0; - return _gw_ >> _gx_} - return runtime.ml_z_shift_right(_gw_,_gv_)} - function _r_(_gu_,_gt_) - {if(typeof _gu_ === "number" && 0 <= _gt_) - return Stdlib_Sys[9] <= _gt_ - ?0 - :0 <= _gu_?_gu_ >>> _gt_ | 0:- ((- _gu_ | 0) >>> _gt_ | 0) | 0; - return runtime.ml_z_shift_right_trunc(_gu_,_gt_)} - function _s_(_gs_) - {return typeof _gs_ === "number"?_gs_:runtime.ml_z_to_int(_gs_)} - var _t_=0,_u_=1,_v_=-1; - function _w_(_gr_,_gq_) - {return 0 < runtime.ml_z_compare(_gr_,_gq_)?_gq_:_gr_} - function _x_(_gp_,_go_) - {return 0 <= runtime.ml_z_compare(_gp_,_go_)?_gp_:_go_} - function _y_(_gn_,_gm_){return runtime.ml_z_compare(_gn_,_gm_) <= 0?1:0} - function _z_(_gl_,_gk_){return 0 <= runtime.ml_z_compare(_gl_,_gk_)?1:0} - function _A_(_gj_,_gi_){return runtime.ml_z_compare(_gj_,_gi_) < 0?1:0} - function _B_(_gh_,_gg_){return 0 < runtime.ml_z_compare(_gh_,_gg_)?1:0} - function _C_(_gf_){return runtime.ml_z_format(cst_d,_gf_)} - function _D_(_ge_) - {return runtime.ml_z_of_substring_base - (0,_ge_,0,caml_ml_string_length(_ge_))} - function _E_(_gb_,_gc_,_gd_) - {return runtime.ml_z_of_substring_base(0,_gb_,_gc_,_gd_)} - function _F_(_ga_,_f$_) - {return runtime.ml_z_of_substring_base - (_ga_,_f$_,0,caml_ml_string_length(_f$_))} - function _G_(_f5_,_f4_) - {var _f6_=runtime.ml_z_div_rem(_f5_,_f4_),_f7_=_f6_[2],_f8_=_f6_[1]; - if(0 <= runtime.ml_z_sign(_f7_))return [0,_f8_,_f7_]; - if(0 <= runtime.ml_z_sign(_f4_)) - {var _f9_=_c_(_f7_,_f4_);return [0,_j_(_f8_),_f9_]} - var _f__=_d_(_f7_,_f4_); - return [0,_i_(_f8_),_f__]} - function _H_(_f3_,_f2_) - {return 0 <= runtime.ml_z_sign(_f2_) - ?runtime.ml_z_fdiv(_f3_,_f2_) - :runtime.ml_z_cdiv(_f3_,_f2_)} - function _I_(_f0_,_fZ_) - {var _f1_=_g_(_f0_,_fZ_); - return 0 <= runtime.ml_z_sign(_f1_)?_f1_:_c_(_f1_,_k_(_fZ_))} - function _J_(_fR_,_fQ_) - {var - _fS_=runtime.ml_z_sign(_fR_), - _fT_=runtime.ml_z_sign(_fQ_), - _fU_=_fS_ + 1 | 0; - if(2 >= _fU_ >>> 0) - switch(_fU_) - {case 0:if(0 === _fT_)return [0,_b_(_fR_),_v_,_t_];break; - case 1: - var _fY_=_fT_ + 1 | 0; - if(2 >= _fY_ >>> 0) - switch(_fY_) - {case 0:return [0,_b_(_fQ_),_t_,_v_]; - case 1:return [0,_t_,_t_,_t_]; - default:return [0,_fQ_,_t_,_u_]} - break; - default:if(0 === _fT_)return [0,_fR_,_u_,_t_]} - var - _fV_=runtime.ml_z_gcdext_intern(_fR_,_fQ_), - _fW_=_fV_[2], - _fX_=_fV_[1]; - return _fV_[3] - ?[0,_fX_,_fW_,_f_(_d_(_fX_,_e_(_fR_,_fW_)),_fQ_)] - :[0,_fX_,_f_(_d_(_fX_,_e_(_fQ_,_fW_)),_fR_),_fW_]} - function _K_(_fP_,_fO_) - {if(! caml_equal(_fP_,_t_) && ! caml_equal(_fO_,_t_)) - return _k_(_e_(_h_(_fP_,runtime.ml_z_gcd(_fP_,_fO_)),_fO_)); - return _t_} - function _L_(_fN_,_fM_) - {return 0 <= _fM_ - ?runtime.ml_z_testbit(_fN_,_fM_) - :caml_call1(Stdlib[1],cst_Z_testbit)} - function _M_(_fL_){return runtime.ml_z_testbit(_fL_,0)} - function _N_(_fK_){return 1 - runtime.ml_z_testbit(_fK_,0)} - function _O_(_fJ_,_fI_,_fH_) - {if(_fI_ < 0)caml_call1(Stdlib[1],cst_Z_signed_extract_negative_); - if(_fH_ < 1)caml_call1(Stdlib[1],cst_Z_signed_extract_nonpositi); - return _L_(_fJ_,(_fI_ + _fH_ | 0) - 1 | 0) - ?_o_(runtime.ml_z_extract(_o_(_fJ_),_fI_,_fH_)) - :runtime.ml_z_extract(_fJ_,_fI_,_fH_)} - function _P_(_fG_) - {return 0 < runtime.ml_z_sign(_fG_) - ?runtime.ml_z_numbits(_fG_) - 1 | 0 - :caml_call1(Stdlib[1],cst_Z_log2)} - function _Q_(_fF_) - {return 0 < runtime.ml_z_sign(_fF_) - ?runtime.ml_z_numbits(_j_(_fF_)) - :caml_call1(Stdlib[1],cst_Z_log2up)} - function _R_(_fC_,_fB_) - {var - _fD_=runtime.ml_z_to_int64(_fC_), - _fE_=_fB_?_fD_:runtime.caml_int64_or(_fD_,_S_); - return caml_int64_to_float(_fE_)} - function _T_(_fx_) - {if(typeof _fx_ === "number")return _fx_; - var _fy_=runtime.ml_z_numbits(_fx_); - if(63 >= _fy_)return caml_int64_to_float(runtime.ml_z_to_int64(_fx_)); - var _fz_=_fy_ - 55 | 0,_fA_=_q_(_fx_,_fz_); - return caml_ldexp_float - (_R_(_fA_,runtime.ml_z_equal(_fx_,_p_(_fA_,_fz_))),_fz_)} - function _U_(_fv_){var _fw_=_C_(_fv_);return caml_call1(Stdlib[42],_fw_)} - function _V_(_ft_,_fs_) - {var _fu_=_C_(_fs_);return caml_call2(Stdlib[66],_ft_,_fu_)} - function _W_(_fr_,_fq_){return _C_(_fq_)} - function _X_(_fo_,_fn_) - {var _fp_=_C_(_fn_);return caml_call2(Stdlib_Buffer[16],_fo_,_fp_)} - function _Y_(_fl_,_fk_) - {var _fm_=_C_(_fk_);return caml_call2(Stdlib_Format[13],_fl_,_fm_)} - function _Z_(_fj_){return _fj_} - function ___(_fi_,_fh_){return runtime.ml_z_equal(_fi_,_fh_)} + _aQ_ = runtime.ml_z_gcdext_intern(_aM_, _aL_), + _aR_ = _aQ_[2], + _aS_ = _aQ_[1]; + return _aQ_[3] + ? [0, _aS_, _aR_, _f_(_d_(_aS_, _e_(_aM_, _aR_)), _aL_)] + : [0, _aS_, _f_(_d_(_aS_, _e_(_aL_, _aR_)), _aM_), _aR_]; + } + function _K_(_aK_, _aJ_){ + if(! caml_equal(_aK_, _t_) && ! caml_equal(_aJ_, _t_)) + return _k_(_e_(_h_(_aK_, runtime.ml_z_gcd(_aK_, _aJ_)), _aJ_)); + return _t_; + } + function _L_(_aI_, _aH_){ + return 0 <= _aH_ + ? runtime.ml_z_testbit(_aI_, _aH_) + : caml_call1(Stdlib[1], cst_Z_testbit); + } + function _M_(_aG_){return runtime.ml_z_testbit(_aG_, 0);} + function _N_(_aF_){return 1 - runtime.ml_z_testbit(_aF_, 0);} + function _O_(_aE_, _aD_, _aC_){ + if(_aD_ < 0) caml_call1(Stdlib[1], cst_Z_signed_extract_negative_); + if(_aC_ < 1) caml_call1(Stdlib[1], cst_Z_signed_extract_nonpositi); + return _L_(_aE_, (_aD_ + _aC_ | 0) - 1 | 0) + ? _o_(runtime.ml_z_extract(_o_(_aE_), _aD_, _aC_)) + : runtime.ml_z_extract(_aE_, _aD_, _aC_); + } + function _P_(_aB_){ + return 0 < runtime.ml_z_sign(_aB_) + ? runtime.ml_z_numbits(_aB_) - 1 | 0 + : caml_call1(Stdlib[1], cst_Z_log2); + } + function _Q_(_aA_){ + return 0 < runtime.ml_z_sign(_aA_) + ? runtime.ml_z_numbits(_j_(_aA_)) + : caml_call1(Stdlib[1], cst_Z_log2up); + } + function _R_(_ax_, _aw_){ var - Z= + _ay_ = runtime.ml_z_to_int64(_ax_), + _az_ = _aw_ ? _ay_ : runtime.caml_int64_or(_ay_, _S_); + return caml_int64_to_float(_az_); + } + function _T_(_as_){ + if(typeof _as_ === "number") return _as_; + var _at_ = runtime.ml_z_numbits(_as_); + if(63 >= _at_) return caml_int64_to_float(runtime.ml_z_to_int64(_as_)); + var _au_ = _at_ - 55 | 0, _av_ = _q_(_as_, _au_); + return runtime.caml_ldexp_float + (_R_(_av_, runtime.ml_z_equal(_as_, _p_(_av_, _au_))), _au_); + } + function _U_(_aq_){ + var _ar_ = runtime.ml_z_format(cst_d, _aq_); + return caml_call1(Stdlib[42], _ar_); + } + function _V_(_ao_, _an_){ + var _ap_ = runtime.ml_z_format(cst_d, _an_); + return caml_call2(Stdlib[66], _ao_, _ap_); + } + function _W_(_am_, _al_){return runtime.ml_z_format(cst_d, _al_);} + function _X_(_aj_, _ai_){ + var _ak_ = runtime.ml_z_format(cst_d, _ai_); + return caml_call2(Stdlib_Buffer[16], _aj_, _ak_); + } + function _Y_(_ag_, _af_){ + var _ah_ = runtime.ml_z_format(cst_d, _af_); + return caml_call2(Stdlib_Format[13], _ag_, _ah_); + } + function _Z_(_ae_){return _ae_;} + function ___(_ad_, _ac_){return runtime.ml_z_equal(_ad_, _ac_);} + var + _$_ = + [0, + ___, + _A_, + _B_, + _y_, + _z_, + function(_ab_, _aa_){return 1 - runtime.ml_z_equal(_ab_, _aa_);}], + Z = [0, _a_, _t_, @@ -30366,11247 +29755,12318 @@ _o_, _p_, _q_, - [0, - ___, - _A_, - _B_, - _y_, - _z_, - function(_fg_,_ff_){return 1 - runtime.ml_z_equal(_fg_,_ff_)}], - cst_1_12, + _$_, + Zarith_version[1], _R_]; - caml_register_global(39,Z,"Z"); - function _$_(_fc_,_fb_) - {if(_fc_ !== 0 && _fb_ !== 1) - {var _fd_=runtime.ml_z_gcd(_fc_,_fb_); - if(_fd_ === 1)return [0,_fc_,_fb_]; - var _fe_=_h_(_fb_,_fd_); - return [0,_h_(_fc_,_fd_),_fe_]} - return [0,_fc_,_u_]} - function _aa_(_e__,_e9_) - {var _e$_=runtime.ml_z_sign(_e9_); - if(0 === _e$_)return [0,runtime.ml_z_sign(_e__),_t_]; - if(0 < _e$_)return _$_(_e__,_e9_); - var _fa_=_b_(_e9_); - return _$_(_b_(_e__),_fa_)} - function _ab_(_e8_){return [0,_e8_,_u_]} - function _ac_(_e7_){return _ab_(_e7_)} - function _ad_(_e6_){return _ab_(runtime.ml_z_of_int32(_e6_))} - function _ae_(_e5_){return _ab_(runtime.ml_z_of_int64(_e5_))} - function _af_(_e4_){return _ab_(runtime.ml_z_of_nativeint(_e4_))} - function _ag_(_e3_,_e2_){return _aa_(_e3_,_e2_)} + runtime.caml_register_global(15, Z, "Z"); + return; + } + (globalThis)); + +//# 410 "../../.js/default/zarith/zarith.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_inf$1 = "+inf", + cst_inf$2 = "-inf", + cst_impossible_case$1 = "impossible case", + cst_undef$0 = "undef", + caml_equal = runtime.caml_equal, + caml_int64_to_float = runtime.caml_int64_to_float, + caml_ldexp_float = runtime.caml_ldexp_float, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_mul = runtime.caml_mul, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + cst = "/", + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib = global_data.Stdlib, + Stdlib_String = global_data.Stdlib__String, + Z = global_data.Z, + Assert_failure = global_data.Assert_failure, + _W_ = [0, "q.ml", 486, 25], + cst_Q_of_string_invalid_digit = "Q.of_string: invalid digit", + cst_impossible_case$0 = cst_impossible_case$1, + cst_impossible_case = cst_impossible_case$1, + cst_0 = "0", + cst_inf = cst_inf$1, + cst_inf$0 = cst_inf$2, + cst_undef = cst_undef$0; + function _a_(_dg_, _df_){ + if(_dg_ !== Z[2] && _df_ !== Z[3]){ + var _dh_ = runtime.ml_z_gcd(_dg_, _df_); + if(_dh_ === Z[3]) return [0, _dg_, _df_]; + var _di_ = caml_call2(Z[20], _df_, _dh_); + return [0, caml_call2(Z[20], _dg_, _dh_), _di_]; + } + return [0, _dg_, Z[3]]; + } + function _b_(_db_, _da_){ + var _dc_ = runtime.ml_z_sign(_da_); + if(0 === _dc_){ + var _dd_ = Z[2]; + return [0, runtime.ml_z_sign(_db_), _dd_]; + } + if(0 < _dc_) return _a_(_db_, _da_); + var _de_ = caml_call1(Z[11], _da_); + return _a_(caml_call1(Z[11], _db_), _de_); + } + function _c_(_c$_){return [0, _c$_, Z[3]];} + function _d_(_c__){return _c_(_c__);} + function _e_(_c9_){return _c_(runtime.ml_z_of_int32(_c9_));} + function _f_(_c8_){return _c_(runtime.ml_z_of_int64(_c8_));} + function _g_(_c7_){return _c_(runtime.ml_z_of_nativeint(_c7_));} + function _h_(_c6_, _c5_){return _b_(_c6_, _c5_);} + var + _i_ = _c_(Z[2]), + _j_ = _c_(Z[3]), + _k_ = _c_(Z[4]), + _l_ = [0, Z[3], Z[2]], + _m_ = [0, Z[4], Z[2]], + _n_ = [0, Z[2], Z[2]]; + function _o_(_c1_){ + if(_c1_ == Stdlib[22]) return _l_; + if(_c1_ == Stdlib[23]) return _m_; + if(4 === runtime.caml_classify_float(_c1_)) return _n_; var - _ah_=_ab_(_t_), - _ai_=_ab_(_u_), - _ak_=[0,_u_,_t_], - _al_=[0,_v_,_t_], - _am_=[0,_t_,_t_], - _aj_=_ab_(_v_); - function _an_(_eY_) - {if(_eY_ == Stdlib[22])return _ak_; - if(_eY_ == Stdlib[23])return _al_; - if(4 === runtime.caml_classify_float(_eY_))return _am_; - var - _eZ_=runtime.caml_frexp_float(_eY_), - _e0_=_eZ_[2] - 53 | 0, - _e1_=runtime.ml_z_of_float(caml_ldexp_float(_eZ_[1],53)); - return 0 <= _e0_?_ab_(_p_(_e1_,_e0_)):_$_(_e1_,_p_(_u_,- _e0_ | 0))} - function _ao_(_eW_) - {if(_eW_[2] !== 0)return _eW_[1] === 0?0:4; - var _eX_=runtime.ml_z_sign(_eW_[1]) + 1 | 0; - if(2 >= _eX_ >>> 0) - switch(_eX_){case 0:return 2;case 1:break;default:return 1} - return 3} - function _ap_(_eV_){return _eV_[2] !== 0?1:0} - function _aq_(_eU_){return _eU_[1]} - function _ar_(_eT_){return _eT_[2]} - function _as_(_eS_){return runtime.ml_z_sign(_eS_[1])} - function _at_(_eO_,_eN_) - {var _eP_=runtime.ml_z_equal(_eO_[1],_eN_[1]); - if(_eP_) + _c2_ = runtime.caml_frexp_float(_c1_), + _c3_ = _c2_[2] - 53 | 0, + _c4_ = runtime.ml_z_of_float(caml_ldexp_float(_c2_[1], 53)); + return 0 <= _c3_ + ? _c_(caml_call2(Z[25], _c4_, _c3_)) + : _a_(_c4_, caml_call2(Z[25], Z[3], - _c3_ | 0)); + } + function _p_(_cZ_){ + if(_cZ_[2] !== Z[2]) return _cZ_[1] === Z[2] ? 0 : 4; + var _c0_ = runtime.ml_z_sign(_cZ_[1]) + 1 | 0; + if(2 >= _c0_ >>> 0) + switch(_c0_){case 0: return 2;case 1: break;default: return 1;} + return 3; + } + function _q_(_cY_){return _cY_[2] !== Z[2] ? 1 : 0;} + function _r_(_cX_){return _cX_[1];} + function _s_(_cW_){return _cW_[2];} + function _t_(_cV_){return runtime.ml_z_sign(_cV_[1]);} + function _u_(_cR_, _cQ_){ + var _cS_ = runtime.ml_z_equal(_cR_[1], _cQ_[1]); + if(_cS_) + var + _cT_ = runtime.ml_z_equal(_cR_[2], _cQ_[2]), + _cU_ = _cT_ ? 3 !== _p_(_cR_) ? 1 : 0 : _cT_; + else + var _cU_ = _cS_; + return _cU_; + } + function _v_(_cK_, _cJ_){ + var _cL_ = _p_(_cK_), _cM_ = _p_(_cJ_), switch$0 = 0; + switch(_cL_){ + case 1: + var _cP_ = _cM_ - 1 | 0; + if(2 >= _cP_ >>> 0) + switch(_cP_){ + case 0: + switch$0 = 2; break; + case 1: break; + default: switch$0 = 1; + } + break; + case 2: + if(1 === _cM_) + switch$0 = 1; + else if(_cM_) + switch(_cM_ - 2 | 0){ + case 1: + switch$0 = 1; break; + case 2: break; + default: switch$0 = 2; + } + break; + case 3: + if(3 !== _cM_) return -1; switch$0 = 2; break; + default: switch$0 = 1; + } + var switch$1 = 0; + switch(switch$0){ + case 1: + var _cN_ = _cM_ - 1 | 0; + if(2 >= _cN_ >>> 0) + switch(_cN_){ + case 0: + switch$1 = 1; break; + case 1: break; + default: return 1; + } + break; + case 0: break; + default: return 0; + } + if(! switch$1){ + var switch$2 = 0; + if(4 > _cL_) + switch(_cL_){ + case 0: break; + case 2: + switch$2 = 2; break; + default: switch$2 = 1; + } + switch(switch$2){ + case 0: + if(2 !== _cM_){ + if(caml_equal(_cK_[2], _cJ_[2])) + return runtime.ml_z_compare(_cK_[1], _cJ_[1]); + var _cO_ = caml_call2(Z[14], _cJ_[1], _cK_[2]); + return runtime.ml_z_compare + (caml_call2(Z[14], _cK_[1], _cJ_[2]), _cO_); + } + break; + case 2: break; + } + return 1; + } + return -1; + } + function _w_(_cI_, _cH_){return 0 < _v_(_cI_, _cH_) ? _cH_ : _cI_;} + function _x_(_cG_, _cF_){return 0 <= _v_(_cG_, _cF_) ? _cG_ : _cF_;} + function _y_(_cz_, _cy_){ + var _cA_ = _p_(_cz_), _cB_ = _p_(_cy_); + if(3 !== _cA_){ + var _cC_ = _cB_ - 1 | 0, switch$0 = 0; + if(2 >= _cC_ >>> 0) + switch(_cC_){ + case 0: + switch$0 = 1; break; + case 1: break; + default: switch$0 = 2; + } + switch(switch$0){ + case 0: + var switch$1 = 0; + if(4 > _cA_) + switch(_cA_){ + case 0: break; + case 2: + switch$1 = 2; break; + default: switch$1 = 1; + } + switch(switch$1){ + case 0: + if(2 !== _cB_){ + if(caml_equal(_cz_[2], _cy_[2])) + return caml_call2(Z[37], _cz_[1], _cy_[1]); + var + _cD_ = caml_call2(Z[14], _cy_[1], _cz_[2]), + _cE_ = caml_call2(Z[14], _cz_[1], _cy_[2]); + return caml_call2(Z[37], _cE_, _cD_); + } + break; + case 2: break; + } + return 0; + case 2: break; + } + return 1; + } + return 0; + } + function _z_(_ct_, _cs_){ + var _cu_ = _p_(_ct_), _cv_ = _p_(_cs_); + if(3 !== _cu_){ + var switch$0 = 0; + if(2 <= _cv_) + switch(_cv_ - 2 | 0){ + case 2: break; + case 1: + switch$0 = 2; break; + default: switch$0 = 1; + } + switch(switch$0){ + case 0: + var switch$1 = 0; + if(4 > _cu_) + switch(_cu_){ + case 0: break; + case 1: + switch$1 = 2; break; + default: switch$1 = 1; + } + switch(switch$1){ + case 0: + if(1 !== _cv_){ + if(caml_equal(_ct_[2], _cs_[2])) + return caml_call2(Z[39], _ct_[1], _cs_[1]); + var + _cw_ = caml_call2(Z[14], _cs_[1], _ct_[2]), + _cx_ = caml_call2(Z[14], _ct_[1], _cs_[2]); + return caml_call2(Z[39], _cx_, _cw_); + } + break; + case 2: break; + } + return 1; + case 2: break; + } + return 0; + } + return 0; + } + function _A_(_cr_, _cq_){return _y_(_cq_, _cr_);} + function _B_(_cp_, _co_){return _z_(_co_, _cp_);} + function _C_(_ck_){ + switch(_p_(_ck_)){ + case 0: + return cst_0; + case 1: + return cst_inf; + case 2: + return cst_inf$0; + case 3: + return cst_undef; + default: + if(runtime.ml_z_equal(_ck_[2], Z[3])) + return caml_call1(Z[31], _ck_[1]); var - _eQ_=runtime.ml_z_equal(_eO_[2],_eN_[2]), - _eR_=_eQ_?3 !== _ao_(_eO_)?1:0:_eQ_; - else - var _eR_=_eP_; - return _eR_} - function _au_(_eH_,_eG_) - {var _eI_=_ao_(_eH_),_eJ_=_ao_(_eG_),switch$0=0; - switch(_eI_) - {case 1: - var _eM_=_eJ_ - 1 | 0; - if(2 >= _eM_ >>> 0) - switch(_eM_) - {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} - break; - case 2: - if(1 === _eJ_) - switch$0 = 1; - else - if(_eJ_) - switch(_eJ_ - 2 | 0) - {case 1:switch$0 = 1;break;case 2:break;default:switch$0 = 2} - break; - case 3:if(3 !== _eJ_)return -1;switch$0 = 2;break; - default:switch$0 = 1} - var switch$1=0; - switch(switch$0) - {case 1: - var _eK_=_eJ_ - 1 | 0; - if(2 >= _eK_ >>> 0) - switch(_eK_) - {case 0:switch$1 = 1;break;case 1:break;default:return 1} - break; - case 0:break; - default:return 0} - if(! switch$1) - {var switch$2=0; - if(4 > _eI_) - switch(_eI_) - {case 0:break;case 2:switch$2 = 1;break;default:switch$2 = 2} - var switch$3=0; - switch(switch$2) - {case 0: - if(2 !== _eJ_) - {if(caml_equal(_eH_[2],_eG_[2])) - return runtime.ml_z_compare(_eH_[1],_eG_[1]); - var _eL_=_e_(_eG_[1],_eH_[2]); - return runtime.ml_z_compare(_e_(_eH_[1],_eG_[2]),_eL_)} - switch$3 = 1; - break; - case 1:break; - default:switch$3 = 1} - if(switch$3)return 1} - return -1} - function _av_(_eF_,_eE_){return 0 < _au_(_eF_,_eE_)?_eE_:_eF_} - function _aw_(_eD_,_eC_){return 0 <= _au_(_eD_,_eC_)?_eD_:_eC_} - function _ax_(_ex_,_ew_) - {var _ey_=_ao_(_ex_),_ez_=_ao_(_ew_); - if(3 !== _ey_) - {var _eA_=_ez_ - 1 | 0,switch$0=0; - if(2 >= _eA_ >>> 0) - switch(_eA_) - {case 0:switch$0 = 2;break;case 1:break;default:switch$0 = 1} - var switch$1=0; - switch(switch$0) - {case 0: - var switch$2=0; - if(4 > _ey_) - switch(_ey_) - {case 0:break; - case 2:switch$1 = 1;switch$2 = 2;break; - default:switch$2 = 1} - var switch$3=0; - switch(switch$2) - {case 2:switch$3 = 1;break; - case 0: - if(2 !== _ez_) - {if(caml_equal(_ex_[2],_ew_[2]))return _y_(_ex_[1],_ew_[1]); - var _eB_=_e_(_ew_[1],_ex_[2]); - return _y_(_e_(_ex_[1],_ew_[2]),_eB_)} - break - } - if(! switch$3)return 0; - break; - case 1:break; - default:switch$1 = 1} - if(switch$1)return 1} - return 0} - function _ay_(_es_,_er_) - {var _et_=_ao_(_es_),_eu_=_ao_(_er_); - if(3 !== _et_) - {var switch$0=0; - if(2 <= _eu_) - switch(_eu_ - 2 | 0) - {case 2:break;case 1:switch$0 = 1;break;default:switch$0 = 2} - var switch$1=0; - switch(switch$0) - {case 0: - var switch$2=0; - if(4 > _et_) - switch(_et_) - {case 0:break; - case 1:switch$1 = 1;switch$2 = 2;break; - default:switch$2 = 1} - var switch$3=0; - switch(switch$2) - {case 2:switch$3 = 1;break; - case 0: - if(1 !== _eu_) - {if(caml_equal(_es_[2],_er_[2]))return _A_(_es_[1],_er_[1]); - var _ev_=_e_(_er_[1],_es_[2]); - return _A_(_e_(_es_[1],_er_[2]),_ev_)} - break - } - if(! switch$3)return 1; - break; - case 1:break; - default:switch$1 = 1} - if(switch$1)return 0} - return 0} - function _az_(_eq_,_ep_){return _ax_(_ep_,_eq_)} - function _aA_(_eo_,_en_){return _ay_(_en_,_eo_)} - function _aB_(_ej_) - {switch(_ao_(_ej_)) - {case 0:return cst_0; - case 1:return cst_inf; - case 2:return cst_inf$0; - case 3:return cst_undef; - default: - if(runtime.ml_z_equal(_ej_[2],1))return _C_(_ej_[1]); - var - _ek_=_C_(_ej_[2]), - _el_=caml_call2(Stdlib[28],cst,_ek_), - _em_=_C_(_ej_[1]); - return caml_call2(Stdlib[28],_em_,_el_)}} - function _aC_(_ei_){return _f_(_ei_[1],_ei_[2])} - function _aD_(_eh_){return _s_(_aC_(_eh_))} - function _aE_(_eg_){return runtime.ml_z_to_int32(_aC_(_eg_))} - function _aF_(_ef_){return runtime.ml_z_to_int64(_aC_(_ef_))} - function _aG_(_ee_){return runtime.ml_z_to_nativeint(_aC_(_ee_))} - function _aH_(_dZ_) - {switch(_ao_(_dZ_)) - {case 0:return 0.; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return Stdlib[24]; - default: - var - _d0_=_dZ_[1], - _d1_=_dZ_[2], - _d2_=runtime.ml_z_numbits(_d0_), - _d3_=runtime.ml_z_numbits(_d1_); - if(53 >= _d2_ && 53 >= _d3_) - {var _ed_=caml_int64_to_float(runtime.ml_z_to_int64(_d1_)); - return caml_int64_to_float(runtime.ml_z_to_int64(_d0_)) / _ed_} - var _d4_=0 <= runtime.ml_z_sign(_d0_)?1:-1,_d5_=_d2_ - _d3_ | 0; - if(0 <= _d5_) - var _d7_=_p_(_d1_,_d5_),_d6_=_d0_; - else - var _d7_=_d1_,_d6_=_p_(_d0_,- _d5_ | 0); - if(_z_(_k_(_d6_),_d7_)) - var _d9_=_d5_,_d8_=_d6_; - else - var _d9_=_d5_ - 1 | 0,_d8_=_p_(_d6_,1); - var _d__=_G_(_p_(_d8_,54),_d7_); - if(-1080 >= _d9_)return caml_ldexp_float(_d4_,-1080); - var - _d$_=-1023 < _d9_?_t_:_p_(_d4_,55 + (-1023 - _d9_ | 0) | 0), - _ea_=_c_(_d$_,_d__[1]), - _eb_=0 === runtime.ml_z_sign(_d__[2])?_ea_:_m_(_u_,_ea_), - _ec_=_T_(_eb_); - return caml_ldexp_float(_ec_ - _T_(_d$_),_d9_ - 54 | 0)}} - function _aI_(_dX_){var _dY_=_dX_[2];return [0,_b_(_dX_[1]),_dY_]} - function _aJ_(_dV_){var _dW_=_dV_[2];return [0,_k_(_dV_[1]),_dW_]} - function _aK_(_dR_,_dQ_,_dP_) - {if(_dQ_[2] === _dP_[2]) - {var _dS_=_dQ_[2];return _$_(caml_call2(_dR_,_dQ_[1],_dP_[1]),_dS_)} - var _dT_=_e_(_dQ_[2],_dP_[2]),_dU_=_e_(_dP_[1],_dQ_[2]); - return _$_(caml_call2(_dR_,_e_(_dQ_[1],_dP_[2]),_dU_),_dT_)} - function _aL_(_dM_,_dL_) - {if(_dM_[2] !== 0 && _dL_[2] !== 0)return _aK_(_c_,_dM_,_dL_); - var _dN_=_ao_(_dM_),_dO_=_ao_(_dL_),switch$0=0; - switch(_dN_) - {case 0:return _dL_; - case 1: - switch(_dO_) - {case 2:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} - break; - case 2: - switch(_dO_) - {case 2:switch$0 = 2;break; - case 1:switch$0 = 3;break; - case 4:switch$0 = 4;break - } - break; - case 4: - switch(_dO_) - {case 4:return caml_call1(Stdlib[2],cst_impossible_case); - case 0: - case 3:break; - default:switch$0 = 2} - break - } - var switch$1=0; - switch(switch$0) - {case 0:if(3 === _dO_)switch$1 = 1;else if(! _dO_)return _dM_;break; - case 1:break; - case 2:switch$1 = 2 <= _dO_?3:2;break; - case 3:return _am_; - default:switch$1 = 3} - var switch$2=0; - switch(switch$1) - {case 0:if(3 > _dN_)switch$2 = 1;break; - case 1:break; - case 2:switch$2 = 1;break; - default:return _al_} - return switch$2?_ak_:_am_} - function _aM_(_dI_,_dH_) - {if(_dI_[2] !== 0 && _dH_[2] !== 0)return _aK_(_d_,_dI_,_dH_); - var _dJ_=_ao_(_dI_),_dK_=_ao_(_dH_),switch$0=0; - switch(_dJ_) - {case 0:return _aI_(_dH_); - case 1: - switch(_dK_) - {case 1:switch$0 = 3;break;case 0:case 3:break;default:switch$0 = 1} - break; - case 2: - switch(_dK_) - {case 1:switch$0 = 2;break; - case 2:switch$0 = 3;break; - case 4:switch$0 = 4;break - } - break; - case 4: - switch(_dK_) - {case 4:return caml_call1(Stdlib[2],cst_impossible_case$0); - case 0: - case 3:break; - default:switch$0 = 2} - break - } - var switch$1=0; - switch(switch$0) - {case 0:if(3 === _dK_)switch$1 = 1;else if(! _dK_)return _dI_;break; - case 1:break; - case 2:switch$1 = 2 <= _dK_?2:3;break; - case 3:return _am_; - default:switch$1 = 3} - var switch$2=0; - switch(switch$1) - {case 0:if(3 > _dJ_)switch$2 = 1;break; - case 1:break; - case 2:switch$2 = 1;break; - default:return _al_} - return switch$2?_ak_:_am_} - function _aN_(_dE_,_dD_) - {if(_dE_[2] !== 0 && _dD_[2] !== 0) - {var _dG_=_e_(_dE_[2],_dD_[2]);return _$_(_e_(_dE_[1],_dD_[1]),_dG_)} - var _dF_=runtime.ml_z_sign(_dD_[1]); - return [0,caml_mul(runtime.ml_z_sign(_dE_[1]),_dF_),_t_]} - function _aO_(_dA_) - {var _dB_=runtime.ml_z_sign(_dA_[1]) + 1 | 0; - if(2 >= _dB_ >>> 0) - switch(_dB_) - {case 0:var _dC_=_b_(_dA_[1]);return [0,_b_(_dA_[2]),_dC_]; - case 1:break; - default:return [0,_dA_[2],_dA_[1]]} - return _dA_[2] === 0?_am_:_ak_} - function _aP_(_dy_,_dx_) - {if(0 <= runtime.ml_z_sign(_dx_[1])) - return _aN_(_dy_,[0,_dx_[2],_dx_[1]]); - var _dz_=_b_(_dx_[1]); - return _aN_(_dy_,[0,_b_(_dx_[2]),_dz_])} - function _aQ_(_dv_,_du_) - {if(_dv_[2] === 0)return _dv_; - var _dw_=_dv_[2]; - return _$_(_p_(_dv_[1],_du_),_dw_)} - function _aR_(_ds_,_dr_) - {if(_ds_[2] === 0)return _ds_; - var _dt_=_p_(_ds_[2],_dr_); - return _$_(_ds_[1],_dt_)} - function _aS_(_dq_) - {switch(_dq_) - {case 0:return 2;case 1:return 8;case 2:return 10;default:return 16}} - function _aT_(_do_,_dn_,_dm_,_dl_) - {var _dp_=_dn_; - for(;;) - {if(_dm_ <= _dp_)return 0; - if(caml_call1(_dl_,caml_string_get(_do_,_dp_)))return [0,_dp_]; - var _dp_=_dp_ + 1 | 0}} - function _aU_(_cy_) - {if(! caml_string_notequal(_cy_,cst$0))return _ah_; - if(caml_string_notequal(_cy_,cst_inf$1)) - {if(! caml_string_notequal(_cy_,cst_inf$2))return _al_; - if(caml_string_notequal(_cy_,cst_inf$3)) - {if(! caml_string_notequal(_cy_,cst_undef$0))return _am_; - try - {var - _dc_=caml_call2(Stdlib_String[35],_cy_,47), - _dd_= - runtime.ml_z_of_substring_base - (0, - _cy_, - _dc_ + 1 | 0, - (caml_ml_string_length(_cy_) - _dc_ | 0) - 1 | 0), - _de_=_aa_(runtime.ml_z_of_substring_base(0,_cy_,0,_dc_),_dd_); - return _de_} - catch(_df_) - {_df_ = caml_wrap_exception(_df_); - if(_df_ !== Stdlib[8])throw _df_; - var _cA_=caml_ml_string_length(_cy_),_cz_=0; - if(_cA_ < 1) - var _cB_=[0,0,_cz_]; - else - {var _c$_=caml_string_get(_cy_,0) - 43 | 0,switch$0=0; - if(2 >= _c$_ >>> 0) - {var switch$1=0; - switch(_c$_) - {case 0:var _db_=[0,0,1];break; - case 1:switch$1 = 1;break; - default:var _db_=[0,1,1]} - if(! switch$1){var _da_=_db_;switch$0 = 1}} - if(! switch$0)var _da_=[0,0,_cz_]; - var _cB_=_da_} - var _cC_=_cB_[2]; - if(_cA_ < (_cC_ + 2 | 0)) - var _cD_=[0,2,_cC_]; - else - {var - _c8_=caml_string_get(_cy_,_cC_), - _c9_=caml_string_get(_cy_,_cC_ + 1 | 0), - switch$2=0; - if(48 === _c8_) - {var switch$3=0; - if(89 <= _c9_) - {if(98 === _c9_) - switch$3 = 2; - else - if(111 === _c9_) - switch$3 = 1; - else - if(120 !== _c9_){switch$2 = 1;switch$3 = 3}} - else - if(66 === _c9_) - switch$3 = 2; - else - if(79 === _c9_) - switch$3 = 1; - else - if(88 > _c9_){switch$2 = 1;switch$3 = 3} - switch(switch$3) - {case 3:break; - case 0:var _c__=[0,3,_cC_ + 2 | 0];break; - case 1:var _c__=[0,1,_cC_ + 2 | 0];break; - default:var _c__=[0,0,_cC_ + 2 | 0]}} - else - switch$2 = 1; - if(switch$2)var _c__=[0,2,_cC_]; - var _cD_=_c__} - var - _cE_=_cD_[2], - _cF_=_cD_[1], - _cG_= - 2 === _cF_ - ?function(_di_) - {if(69 !== _di_ && 101 !== _di_)return 0;return 1} - :3 <= _cF_ - ?function(_dj_) - {if(80 !== _dj_ && 112 !== _dj_)return 0;return 1} - :function(_dk_){return 0}, - _cH_=_aT_(_cy_,_cE_,_cA_,_cG_); - if(_cH_) - var - _cI_=_cH_[1], - _cJ_=_cI_ + 1 | 0, - _cL_=_cI_, - _cK_= - _s_ - (runtime.ml_z_of_substring_base(10,_cy_,_cJ_,_cA_ - _cJ_ | 0)); - else - var _cL_=_cA_,_cK_=0; - if(2 <= _cF_) - {var - _cM_= - _aT_(_cy_,_cE_,_cL_,function(_dh_){return 46 === _dh_?1:0}); - if(_cM_) - {var _cN_=_cM_[1]; - if(2 === _cF_) - var _cO_=1; - else - {if(3 > _cF_)throw [0,Assert_failure,_aV_];var _cO_=4} - var _cQ_=_cN_ + 1 | 0,_cR_=_cL_ - 1 | 0,_cP_=0; - if(_cR_ < _cQ_) - var _cS_=_cP_; - else - {var _c4_=_cQ_,_c3_=_cP_; - for(;;) - {var _c5_=caml_string_get(_cy_,_c4_),switch$4=0; - if(71 <= _c5_) - {if(97 <= _c5_) - {if(103 > _c5_)switch$4 = 1} - else - if(95 === _c5_){var _c6_=_c3_;switch$4 = 2}} - else - if(58 <= _c5_) - {if(65 <= _c5_)switch$4 = 1} - else - if(48 <= _c5_)switch$4 = 1; - switch(switch$4) - {case 0: - caml_call1(Stdlib[1],cst_Q_of_string_invalid_digit); - var _c6_=_c3_; - break; - case 1:var _c6_=_c3_ + 1 | 0;break - } - var _c7_=_c4_ + 1 | 0; - if(_cR_ !== _c4_){var _c4_=_c7_,_c3_=_c6_;continue} - var _cS_=_c6_; - break}} - var - _cT_= - _aT_ - (_cy_, - _cN_ + 1 | 0, - _cL_, - function(_dg_){return 95 !== _dg_?1:0}), - _cU_=_cT_?_cT_[1]:_cL_, - _cV_=caml_call3(Stdlib_String[15],_cy_,_cU_,_cL_ - _cU_ | 0), - _cW_=caml_call3(Stdlib_String[15],_cy_,_cE_,_cN_ - _cE_ | 0), - _cX_=caml_call2(Stdlib[28],_cW_,_cV_), - _cZ_=caml_mul(_cS_,_cO_), - _cY_=_F_(_aS_(_cF_),_cX_)} - else - var - _cZ_=0, - _cY_= - runtime.ml_z_of_substring_base - (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0)} - else - var - _cZ_=0, - _cY_= - runtime.ml_z_of_substring_base - (_aS_(_cF_),_cy_,_cE_,_cL_ - _cE_ | 0); - var - _c0_=_cK_ - _cZ_ | 0, - _c1_=2 === _cF_?10:3 <= _cF_?2:1, - _c2_= - 0 <= _c0_ - ?_ab_(_e_(_cY_,runtime.ml_z_pow(_c1_,_c0_))) - :_aa_(_cY_,runtime.ml_z_pow(_c1_,- _c0_ | 0)); - return _cB_[1]?_aI_(_c2_):_c2_}}} - return _ak_} - function _aW_(_cw_) - {var _cx_=_aB_(_cw_);return caml_call1(Stdlib[42],_cx_)} - function _aX_(_cu_,_ct_) - {var _cv_=_aB_(_ct_);return caml_call2(Stdlib[66],_cu_,_cv_)} - function _aY_(_cs_,_cr_){return _aB_(_cr_)} - function _aZ_(_cp_,_co_) - {var _cq_=_aB_(_co_);return caml_call2(Stdlib_Buffer[16],_cp_,_cq_)} - function _a0_(_cm_,_cl_) - {var _cn_=_aB_(_cl_);return caml_call2(Stdlib_Format[13],_cm_,_cn_)} - function _a1_(_ck_){return _ck_} + _cl_ = caml_call1(Z[31], _ck_[2]), + _cm_ = caml_call2(Stdlib[28], cst, _cl_), + _cn_ = caml_call1(Z[31], _ck_[1]); + return caml_call2(Stdlib[28], _cn_, _cm_); + } + } + function _D_(_cj_){return caml_call2(Z[15], _cj_[1], _cj_[2]);} + function _E_(_ch_){var _ci_ = _D_(_ch_); return caml_call1(Z[29], _ci_);} + function _F_(_cg_){return runtime.ml_z_to_int32(_D_(_cg_));} + function _G_(_cf_){return runtime.ml_z_to_int64(_D_(_cf_));} + function _H_(_ce_){return runtime.ml_z_to_nativeint(_D_(_ce_));} + function _I_(_bX_){ + switch(_p_(_bX_)){ + case 0: + return 0.; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return Stdlib[24]; + default: + var + _bY_ = _bX_[1], + _bZ_ = _bX_[2], + _b0_ = runtime.ml_z_numbits(_bY_), + _b1_ = runtime.ml_z_numbits(_bZ_); + if(53 >= _b0_ && 53 >= _b1_){ + var _cd_ = caml_int64_to_float(runtime.ml_z_to_int64(_bZ_)); + return caml_int64_to_float(runtime.ml_z_to_int64(_bY_)) / _cd_; + } + var + _b2_ = 0 <= runtime.ml_z_sign(_bY_) ? 1 : -1, + _b3_ = _b0_ - _b1_ | 0; + if(0 <= _b3_) + var _b5_ = caml_call2(Z[25], _bZ_, _b3_), _b4_ = _bY_; + else + var _b5_ = _bZ_, _b4_ = caml_call2(Z[25], _bY_, - _b3_ | 0); + var _b6_ = caml_call1(Z[10], _b4_); + if(caml_call2(Z[38], _b6_, _b5_)) + var _b8_ = _b3_, _b7_ = _b4_; + else + var _b8_ = _b3_ - 1 | 0, _b7_ = caml_call2(Z[25], _b4_, 1); + var + _b9_ = caml_call2(Z[25], _b7_, 54), + _b__ = caml_call2(Z[17], _b9_, _b5_); + if(-1080 >= _b8_) return caml_ldexp_float(_b2_, -1080); + var + _b$_ = + -1023 < _b8_ + ? Z[2] + : caml_call2(Z[25], _b2_, 55 + (-1023 - _b8_ | 0) | 0), + _ca_ = caml_call2(Z[12], _b$_, _b__[1]), + _cb_ = + 0 === runtime.ml_z_sign(_b__[2]) + ? _ca_ + : caml_call2(Z[22], Z[3], _ca_), + _cc_ = caml_call1(Z[30], _cb_); + return caml_ldexp_float(_cc_ - caml_call1(Z[30], _b$_), _b8_ - 54 | 0); + } + } + function _J_(_bV_){ + var _bW_ = _bV_[2]; + return [0, caml_call1(Z[11], _bV_[1]), _bW_]; + } + function _K_(_bT_){ + var _bU_ = _bT_[2]; + return [0, caml_call1(Z[10], _bT_[1]), _bU_]; + } + function _L_(_bP_, _bO_, _bN_){ + if(_bO_[2] === _bN_[2]){ + var _bQ_ = _bO_[2]; + return _a_(caml_call2(_bP_, _bO_[1], _bN_[1]), _bQ_); + } var - Q= + _bR_ = caml_call2(Z[14], _bO_[2], _bN_[2]), + _bS_ = caml_call2(Z[14], _bN_[1], _bO_[2]); + return _a_ + (caml_call2(_bP_, caml_call2(Z[14], _bO_[1], _bN_[2]), _bS_), + _bR_); + } + function _M_(_bK_, _bJ_){ + if(_bK_[2] !== Z[2] && _bJ_[2] !== Z[2]) return _L_(Z[12], _bK_, _bJ_); + var _bL_ = _p_(_bK_), _bM_ = _p_(_bJ_), switch$0 = 0; + switch(_bL_){ + case 0: + return _bJ_; + case 1: + switch(_bM_){ + case 2: + switch$0 = 3; break; + case 0: + case 3: break; + default: switch$0 = 1; + } + break; + case 2: + switch(_bM_){ + case 2: + switch$0 = 2; break; + case 1: + switch$0 = 3; break; + case 4: + switch$0 = 4; break; + } + break; + case 4: + switch(_bM_){ + case 4: + return caml_call1(Stdlib[2], cst_impossible_case); + case 0: + case 3: break; + default: switch$0 = 2; + } + break; + } + var switch$1 = 0; + switch(switch$0){ + case 0: + if(3 !== _bM_){if(! _bM_) return _bK_; switch$1 = 2;} break; + case 1: + switch$1 = 2; break; + case 2: + switch$1 = 2 <= _bM_ ? 3 : 1; break; + case 3: + return _n_; + default: switch$1 = 3; + } + var switch$2 = 0; + switch(switch$1){ + case 2: + if(3 > _bL_) switch$2 = 1; break; + case 0: break; + case 1: + switch$2 = 1; break; + default: return _m_; + } + return switch$2 ? _l_ : _n_; + } + function _N_(_bG_, _bF_){ + if(_bG_[2] !== Z[2] && _bF_[2] !== Z[2]) return _L_(Z[13], _bG_, _bF_); + var _bH_ = _p_(_bG_), _bI_ = _p_(_bF_), switch$0 = 0; + switch(_bH_){ + case 0: + return _J_(_bF_); + case 1: + switch(_bI_){ + case 1: + switch$0 = 3; break; + case 0: + case 3: break; + default: switch$0 = 1; + } + break; + case 2: + switch(_bI_){ + case 1: + switch$0 = 2; break; + case 2: + switch$0 = 3; break; + case 4: + switch$0 = 4; break; + } + break; + case 4: + switch(_bI_){ + case 4: + return caml_call1(Stdlib[2], cst_impossible_case$0); + case 0: + case 3: break; + default: switch$0 = 2; + } + break; + } + var switch$1 = 0; + switch(switch$0){ + case 0: + if(3 !== _bI_){if(! _bI_) return _bG_; switch$1 = 2;} break; + case 1: + switch$1 = 2; break; + case 2: + switch$1 = 2 <= _bI_ ? 1 : 3; break; + case 3: + return _n_; + default: switch$1 = 3; + } + var switch$2 = 0; + switch(switch$1){ + case 2: + if(3 > _bH_) switch$2 = 1; break; + case 0: break; + case 1: + switch$2 = 1; break; + default: return _m_; + } + return switch$2 ? _l_ : _n_; + } + function _O_(_bB_, _bA_){ + if(_bB_[2] !== Z[2] && _bA_[2] !== Z[2]){ + var _bE_ = caml_call2(Z[14], _bB_[2], _bA_[2]); + return _a_(caml_call2(Z[14], _bB_[1], _bA_[1]), _bE_); + } + var _bC_ = Z[2], _bD_ = runtime.ml_z_sign(_bA_[1]); + return [0, caml_mul(runtime.ml_z_sign(_bB_[1]), _bD_), _bC_]; + } + function _P_(_bx_){ + var _by_ = runtime.ml_z_sign(_bx_[1]) + 1 | 0; + if(2 >= _by_ >>> 0) + switch(_by_){ + case 0: + var _bz_ = caml_call1(Z[11], _bx_[1]); + return [0, caml_call1(Z[11], _bx_[2]), _bz_]; + case 1: break; + default: return [0, _bx_[2], _bx_[1]]; + } + return _bx_[2] === Z[2] ? _n_ : _l_; + } + function _Q_(_bv_, _bu_){ + if(0 <= runtime.ml_z_sign(_bu_[1])) + return _O_(_bv_, [0, _bu_[2], _bu_[1]]); + var _bw_ = caml_call1(Z[11], _bu_[1]); + return _O_(_bv_, [0, caml_call1(Z[11], _bu_[2]), _bw_]); + } + function _R_(_bs_, _br_){ + if(_bs_[2] === Z[2]) return _bs_; + var _bt_ = _bs_[2]; + return _a_(caml_call2(Z[25], _bs_[1], _br_), _bt_); + } + function _S_(_bp_, _bo_){ + if(_bp_[2] === Z[2]) return _bp_; + var _bq_ = caml_call2(Z[25], _bp_[2], _bo_); + return _a_(_bp_[1], _bq_); + } + function _T_(_bn_){ + switch(_bn_){ + case 0: + return 2; + case 1: + return 8; + case 2: + return 10; + default: return 16; + } + } + function _U_(_bl_, _bk_, _bj_, _bi_){ + var _bm_ = _bk_; + for(;;){ + if(_bj_ <= _bm_) return 0; + if(caml_call1(_bi_, caml_string_get(_bl_, _bm_))) return [0, _bm_]; + var _bm_ = _bm_ + 1 | 0; + } + } + function _V_(_ar_){ + if(! caml_string_notequal(_ar_, "")) return _i_; + if(caml_string_notequal(_ar_, cst_inf$1)){ + if(! caml_string_notequal(_ar_, cst_inf$2)) return _m_; + if(caml_string_notequal(_ar_, "inf")){ + if(! caml_string_notequal(_ar_, cst_undef$0)) return _n_; + try{ + var + _a$_ = caml_call2(Stdlib_String[35], _ar_, 47), + _ba_ = + caml_call3 + (Z[6], + _ar_, + _a$_ + 1 | 0, + (caml_ml_string_length(_ar_) - _a$_ | 0) - 1 | 0), + _bb_ = _b_(caml_call3(Z[6], _ar_, 0, _a$_), _ba_); + return _bb_; + } + catch(_bc_){ + var _as_ = caml_wrap_exception(_bc_); + if(_as_ !== Stdlib[8]) throw caml_maybe_attach_backtrace(_as_, 0); + var _au_ = caml_ml_string_length(_ar_), _at_ = 0; + if(_au_ < 1) + var _av_ = [0, 0, _at_]; + else{ + var _a8_ = caml_string_get(_ar_, 0) - 43 | 0, switch$0 = 0; + if(2 >= _a8_ >>> 0){ + var switch$1 = 0; + switch(_a8_){ + case 0: + var _a__ = [0, 0, 1]; switch$1 = 1; break; + case 1: break; + default: var _a__ = [0, 1, 1]; switch$1 = 1; + } + if(switch$1){var _a9_ = _a__; switch$0 = 1;} + } + if(! switch$0) var _a9_ = [0, 0, _at_]; + var _av_ = _a9_; + } + var _aw_ = _av_[2]; + if(_au_ < (_aw_ + 2 | 0)) + var _ax_ = [0, 2, _aw_]; + else{ + var + _a5_ = caml_string_get(_ar_, _aw_), + _a6_ = caml_string_get(_ar_, _aw_ + 1 | 0), + switch$2 = 0; + if(48 === _a5_){ + var switch$3 = 0; + if(89 <= _a6_) + if(98 === _a6_) + switch$3 = 3; + else if(111 === _a6_) + switch$3 = 2; + else if(120 === _a6_) switch$3 = 1; else switch$2 = 1; + else if(66 === _a6_) + switch$3 = 3; + else if(79 === _a6_) + switch$3 = 2; + else if(88 <= _a6_) switch$3 = 1; else switch$2 = 1; + switch(switch$3){ + case 0: break; + case 1: + var _a7_ = [0, 3, _aw_ + 2 | 0]; break; + case 2: + var _a7_ = [0, 1, _aw_ + 2 | 0]; break; + default: var _a7_ = [0, 0, _aw_ + 2 | 0]; + } + } + else + switch$2 = 1; + if(switch$2) var _a7_ = [0, 2, _aw_]; + var _ax_ = _a7_; + } + var + _ay_ = _ax_[2], + _az_ = _ax_[1], + _aA_ = + 2 === _az_ + ? function + (_bf_){ + if(69 !== _bf_ && 101 !== _bf_) return 0; + return 1; + } + : 3 + <= _az_ + ? function + (_bg_){ + if(80 !== _bg_ && 112 !== _bg_) return 0; + return 1; + } + : function(_bh_){return 0;}, + _aB_ = _U_(_ar_, _ay_, _au_, _aA_); + if(_aB_) + var + _aC_ = _aB_[1], + _aD_ = _aC_ + 1 | 0, + _aE_ = + runtime.ml_z_of_substring_base(10, _ar_, _aD_, _au_ - _aD_ | 0), + _aG_ = _aC_, + _aF_ = caml_call1(Z[29], _aE_); + else + var _aG_ = _au_, _aF_ = 0; + if(2 <= _az_){ + var + _aH_ = + _U_(_ar_, _ay_, _aG_, function(_be_){return 46 === _be_ ? 1 : 0;}); + if(_aH_){ + var _aI_ = _aH_[1]; + if(2 === _az_) + var _aJ_ = 1; + else{ + if(3 > _az_) + throw caml_maybe_attach_backtrace([0, Assert_failure, _W_], 1); + var _aJ_ = 4; + } + var _aL_ = _aI_ + 1 | 0, _aM_ = _aG_ - 1 | 0, _aK_ = 0; + if(_aM_ < _aL_) + var _aN_ = _aK_; + else{ + var _a1_ = _aL_, _a0_ = _aK_; + for(;;){ + var _a2_ = caml_string_get(_ar_, _a1_), switch$4 = 0; + if(71 <= _a2_){ + if(97 <= _a2_){ + if(103 > _a2_) switch$4 = 1; + } + else if(95 === _a2_){var _a3_ = _a0_; switch$4 = 2;} + } + else + if(58 <= _a2_){ + if(65 <= _a2_) switch$4 = 1; + } + else if(48 <= _a2_) switch$4 = 1; + switch(switch$4){ + case 0: + caml_call1(Stdlib[1], cst_Q_of_string_invalid_digit); + var _a3_ = _a0_; + break; + case 1: + var _a3_ = _a0_ + 1 | 0; break; + } + var _a4_ = _a1_ + 1 | 0; + if(_aM_ !== _a1_){var _a1_ = _a4_, _a0_ = _a3_; continue;} + var _aN_ = _a3_; + break; + } + } + var + _aO_ = + _U_ + (_ar_, + _aI_ + 1 | 0, + _aG_, + function(_bd_){return 95 !== _bd_ ? 1 : 0;}), + _aP_ = _aO_ ? _aO_[1] : _aG_, + _aQ_ = caml_call3(Stdlib_String[15], _ar_, _aP_, _aG_ - _aP_ | 0), + _aR_ = caml_call3(Stdlib_String[15], _ar_, _ay_, _aI_ - _ay_ | 0), + _aS_ = caml_call2(Stdlib[28], _aR_, _aQ_), + _aT_ = _T_(_az_), + _aV_ = caml_mul(_aN_, _aJ_), + _aU_ = caml_call2(Z[7], _aT_, _aS_); + } + else + var + _aV_ = 0, + _aU_ = + runtime.ml_z_of_substring_base + (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); + } + else + var + _aV_ = 0, + _aU_ = + runtime.ml_z_of_substring_base + (_T_(_az_), _ar_, _ay_, _aG_ - _ay_ | 0); + var _aW_ = _aF_ - _aV_ | 0, _aX_ = 2 === _az_ ? 10 : 3 <= _az_ ? 2 : 1; + if(0 <= _aW_) + var + _aY_ = runtime.ml_z_pow(_aX_, _aW_), + _aZ_ = _c_(caml_call2(Z[14], _aU_, _aY_)); + else + var _aZ_ = _b_(_aU_, runtime.ml_z_pow(_aX_, - _aW_ | 0)); + return _av_[1] ? _J_(_aZ_) : _aZ_; + } + } + } + return _l_; + } + function _X_(_ap_){ + var _aq_ = _C_(_ap_); + return caml_call1(Stdlib[42], _aq_); + } + function _Y_(_an_, _am_){ + var _ao_ = _C_(_am_); + return caml_call2(Stdlib[66], _an_, _ao_); + } + function _Z_(_al_, _ak_){return _C_(_ak_);} + function ___(_ai_, _ah_){ + var _aj_ = _C_(_ah_); + return caml_call2(Stdlib_Buffer[16], _ai_, _aj_); + } + function _$_(_af_, _ae_){ + var _ag_ = _C_(_ae_); + return caml_call2(Stdlib_Format[13], _af_, _ag_); + } + function _aa_(_ad_){return _ad_;} + var + Q = [0, - _aa_, - _ah_, - _ai_, - _aj_, - _ak_, - _al_, - _am_, - _ab_, - _ac_, - _ad_, - _ae_, - _af_, - _ag_, - _an_, - _aU_, - _aq_, - _ar_, - _ao_, - _ap_, - _as_, - _au_, - _at_, - _av_, - _aw_, - _ax_, - _az_, - _ay_, - _aA_, - _aC_, - _aD_, - _aE_, - _aF_, - _aG_, - _aB_, - _aH_, - _aI_, - _aJ_, - _aL_, - _aM_, - _aN_, - _aO_, - _aP_, - _aQ_, - _aR_, - _aW_, - _aX_, - _aY_, - _aZ_, - _a0_, - _aI_, - _a1_, - _aL_, - _aM_, - _aN_, - _aP_, - _aQ_, - _aR_, - _ac_, - _ag_, - _ab_, - _aa_, - _at_, - _ay_, - _aA_, - _ax_, - _az_, - function(_cj_,_ci_){return 1 - _at_(_cj_,_ci_)}]; - caml_register_global(42,Q,"Q"); - function _a2_(_ch_,_cg_){return _c_(_ch_,_cg_)} - function _a3_(_cf_,_ce_){return _e_(_cf_,_ce_)} - function _a4_(_cd_){return _e_(_cd_,_cd_)} - function _a5_(_cc_){return runtime.ml_z_sqrt(_cc_)} - function _a6_(_cb_,_ca_){return runtime.ml_z_gcd(_cb_,_ca_)} - function _a7_(_b$_,_b__){return runtime.ml_z_pow(_b$_,_b__)} - function _a8_(_b9_,_b8_){return runtime.ml_z_pow(_b9_,_s_(_b8_))} - function _a9_(_b7_,_b6_) - {if(_b6_ < 0)throw [0,Stdlib[6],cst_power_int_positive_int]; - return runtime.ml_z_pow(_b7_,_b6_)} - function _a__(_b5_,_b4_) - {if(_b4_ < 0)throw [0,Stdlib[6],cst_power_big_int_positive_int]; - return runtime.ml_z_pow(_b5_,_b4_)} - function _a$_(_b3_,_b2_) - {if(runtime.ml_z_sign(_b2_) < 0) - throw [0,Stdlib[6],cst_power_int_positive_big_int]; - return _a8_(_b3_,_b2_)} - function _ba_(_b1_,_b0_) - {if(runtime.ml_z_sign(_b0_) < 0) - throw [0,Stdlib[6],cst_power_big_int_positive_big]; - return _a8_(_b1_,_b0_)} - function _bb_(_bZ_){return runtime.ml_z_sign(_bZ_)} - function _bc_(_bY_,_bX_){return runtime.ml_z_compare(_bY_,_bX_)} - function _bd_(_bW_,_bV_){return runtime.ml_z_equal(_bW_,_bV_)} - function _be_(_bU_,_bT_){return runtime.ml_z_compare(_bU_,_bT_) <= 0?1:0} - function _bf_(_bS_,_bR_){return 0 <= runtime.ml_z_compare(_bS_,_bR_)?1:0} - function _bg_(_bQ_,_bP_){return runtime.ml_z_compare(_bQ_,_bP_) < 0?1:0} - function _bh_(_bO_,_bN_){return 0 < runtime.ml_z_compare(_bO_,_bN_)?1:0} - function _bi_(_bM_){return runtime.ml_z_size(_bM_)} - function _bj_(_bL_){return _bL_} - function _bk_(_bK_){return runtime.ml_z_fits_int(_bK_)} - function _bl_(_bH_) - {try - {var _bI_=_s_(_bH_);return _bI_} - catch(_bJ_) - {_bJ_ = caml_wrap_exception(_bJ_); - if(_bJ_ === _a_)return caml_call1(Stdlib[2],cst_int_of_big_int); - throw _bJ_}} - function _bm_(_bG_){return runtime.ml_z_of_int32(_bG_)} - function _bn_(_bF_){return runtime.ml_z_of_nativeint(_bF_)} - function _bo_(_bE_){return runtime.ml_z_of_int64(_bE_)} - function _bp_(_bB_) - {try - {var _bC_=runtime.ml_z_to_int32(_bB_);return _bC_} - catch(_bD_) - {_bD_ = caml_wrap_exception(_bD_); - if(_bD_ === _a_)return caml_call1(Stdlib[2],cst_int32_of_big_int); - throw _bD_}} - function _bq_(_by_) - {try - {var _bz_=runtime.ml_z_to_nativeint(_by_);return _bz_} - catch(_bA_) - {_bA_ = caml_wrap_exception(_bA_); - if(_bA_ === _a_)return caml_call1(Stdlib[2],cst_nativeint_of_big_int); - throw _bA_}} - function _br_(_bv_) - {try - {var _bw_=runtime.ml_z_to_int64(_bv_);return _bw_} - catch(_bx_) - {_bx_ = caml_wrap_exception(_bx_); - if(_bx_ === _a_)return caml_call1(Stdlib[2],cst_int64_of_big_int); - throw _bx_}} - var - Big_int_Z= - [0, - _t_, - _u_, _b_, - _k_, - _c_, _i_, - _a2_, - _d_, _j_, - _e_, - _a3_, - _a4_, - _a5_, - _G_, - _H_, - _I_, - _a6_, - _a7_, - _a8_, - _a9_, - _a__, - _a$_, - _ba_, - _bb_, - _bc_, - _bd_, - _be_, - _bf_, - _bg_, - _bh_, - _x_, - _w_, - _bi_, - _C_, - _D_, - _bj_, - _bk_, - _bl_, - _bm_, - _bn_, - _bo_, - _bp_, - _bq_, - _br_, - _T_, + _k_, _l_, _m_, _n_, + _c_, + _d_, + _e_, + _f_, + _g_, + _h_, + _o_, + _V_, + _r_, + _s_, _p_, _q_, - _r_, - function(_bu_,_bt_,_bs_){return runtime.ml_z_extract(_bu_,_bt_,_bs_)}]; - caml_register_global(43,Big_int_Z,"Big_int_Z"); - return} + _t_, + _v_, + _u_, + _w_, + _x_, + _y_, + _A_, + _z_, + _B_, + _D_, + _E_, + _F_, + _G_, + _H_, + _C_, + _I_, + _J_, + _K_, + _M_, + _N_, + _O_, + _P_, + _Q_, + _R_, + _S_, + _X_, + _Y_, + _Z_, + ___, + _$_, + _J_, + _aa_, + _M_, + _N_, + _O_, + _Q_, + _R_, + _S_, + _d_, + _h_, + _c_, + _b_, + _u_, + _z_, + _B_, + _y_, + _A_, + function(_ac_, _ab_){return 1 - _u_(_ac_, _ab_);}]; + runtime.caml_register_global(21, Q, "Q"); + return; + } (globalThis)); -//# 1 "../../.js/zarith_stubs_js/zarith_stubs_js.cma.js" +//# 1 "../../.js/default/zarith_stubs_js/zarith_stubs_js.cma.js" // Generated by js_of_ocaml -(function - (globalThis) - {"use strict"; - var runtime=globalThis.jsoo_runtime,Zarith_stubs_js=[0]; - runtime.caml_register_global(0,Zarith_stubs_js,"Zarith_stubs_js"); - return} - (globalThis)); +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 -//# 1 "../../.js/yojson/yojson.cma.js" +//# 1 "../../.js/default/yojson/yojson.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 6 "../../.js/default/yojson/yojson.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_bytes_get=runtime.caml_bytes_get, - caml_bytes_set=runtime.caml_bytes_set, - caml_check_bound=runtime.caml_check_bound, - caml_classify_float=runtime.caml_classify_float, - caml_create_bytes=runtime.caml_create_bytes, - caml_equal=runtime.caml_equal, - caml_float_of_string=runtime.caml_float_of_string, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_get_public_method=runtime.caml_get_public_method, - caml_int64_of_string=runtime.caml_int64_of_string, - caml_int_of_string=runtime.caml_int_of_string, - caml_lex_engine=runtime.caml_lex_engine, - caml_make_vect=runtime.caml_make_vect, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_string_equal=runtime.caml_string_equal, - caml_string_get=runtime.caml_string_get, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_trampoline=runtime.caml_trampoline, - caml_trampoline_return=runtime.caml_trampoline_return, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_Null=caml_string_of_jsbytes("`Null"), - cst_Some=caml_string_of_jsbytes("(Some "), - cst$10=caml_string_of_jsbytes(")"), - cst_None=caml_string_of_jsbytes("None"), - cst_Null$2=caml_string_of_jsbytes("`Null"), - cst_Some$1=caml_string_of_jsbytes("(Some "), - cst$77=caml_string_of_jsbytes(")"), - cst_None$1=caml_string_of_jsbytes("None"), - cst_Unexpected_end_of_input$92= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$12=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$93= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$94= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence$1= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$95= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_$1= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re$1= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$96= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal$5= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$97= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$29= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$98= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$30= - caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$99= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$31= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$100= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$32= - caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$101= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$30= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$102= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment$3=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found$1= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$103= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but$1= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$104= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$5=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$6=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo$1= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found$1= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$105= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$3=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun$1= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found$1= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$106= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$4=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun$1= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found$1= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$107= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$15=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$16=caml_string_of_jsbytes("Infinity"), - cst_NaN$7=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun$1= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found$1= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$108= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$33= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$109= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$7= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$110= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$8= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$111= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$34= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$112= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$35= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$113= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$31= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$114= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$36= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$115= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$32= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$33= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$34= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$116= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$35= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$36= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$37= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$117= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$37= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$118= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$38= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$119= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$38= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$120= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$39= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$121= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$39= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$122= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$40= - caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$123= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$41= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$124= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$42= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$125= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$43= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$126= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$127= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$13=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$6= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$128= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$40= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$129= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$9= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$130= - caml_string_of_jsbytes("Unexpected end of input"), - cst$78=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$131= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$14=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$7= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$132= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$41= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$133= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$10= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$134= - caml_string_of_jsbytes("Unexpected end of input"), - cst$79=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$42= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$135= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$43= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$136= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$44= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$137= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$44= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$138= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$45= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$139= - caml_string_of_jsbytes("Unexpected end of input"), - cst$80=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$4=caml_string_of_jsbytes("Unterminated comment"), - stream$1=[0,1], - cst_Blank_input_data$4=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data$3=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val$1= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow$1=caml_string_of_jsbytes("Int8 overflow"), - cst_Line$1=caml_string_of_jsbytes("Line"), - cst_null$8=caml_string_of_jsbytes("null"), - cst$70=caml_string_of_jsbytes(","), - cst$71=caml_string_of_jsbytes("{}"), - cst$72=caml_string_of_jsbytes(","), - cst$73=caml_string_of_jsbytes(","), - cst$74=caml_string_of_jsbytes("[]"), - cst$75=caml_string_of_jsbytes("()"), - cst$76=caml_string_of_jsbytes(","), - cst$69=caml_string_of_jsbytes("\n"), - cst$68=caml_string_of_jsbytes("\n"), - cst$67=caml_string_of_jsbytes("\n"), - cst$66=caml_string_of_jsbytes("\n"), - cst$65=caml_string_of_jsbytes("\n"), - cst$64=caml_string_of_jsbytes(""), - cst$63=caml_string_of_jsbytes(""), - cst$62=caml_string_of_jsbytes(""), - cst$61=caml_string_of_jsbytes(""), - cst_true$2=caml_string_of_jsbytes("true"), - cst_false$2=caml_string_of_jsbytes("false"), - cst_null$7=caml_string_of_jsbytes("null"), - cst_b$2=caml_string_of_jsbytes("\\b"), - cst_t$2=caml_string_of_jsbytes("\\t"), - cst_n$2=caml_string_of_jsbytes("\\n"), - cst_f$2=caml_string_of_jsbytes("\\f"), - cst_r$2=caml_string_of_jsbytes("\\r"), - cst$60=caml_string_of_jsbytes('\\"'), - cst$59=caml_string_of_jsbytes("\\\\"), - cst_u00$2=caml_string_of_jsbytes("\\u00"), - cst_Null$1=caml_string_of_jsbytes("`Null"), - cst_Some$0=caml_string_of_jsbytes("(Some "), - cst$55=caml_string_of_jsbytes(")"), - cst_None$0=caml_string_of_jsbytes("None"), - cst_Unexpected_end_of_input$44= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$9=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$45= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$46= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence$0= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$47= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_$0= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re$0= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$48= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal$2= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$49= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$13= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$50= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$14= - caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$51= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$15= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$52= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$16= - caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$53= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$14= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$54= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment$1=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found$0= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$55= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but$0= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$56= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$3=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$4=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo$0= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found$0= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$57= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$1=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun$0= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found$0= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$58= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$2=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun$0= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found$0= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$59= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$13=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$14=caml_string_of_jsbytes("Infinity"), - cst_NaN$6=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun$0= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found$0= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$60= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$17= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$61= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$3= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$62= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$4= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$63= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$18= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$64= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$19= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$65= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$15= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$66= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$20= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$67= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$16= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$17= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$18= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$68= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$19= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$20= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$21= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$69= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$21= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$70= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$22= - caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$71= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$22= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$72= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$23= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$73= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$23= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$74= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$24= - caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$75= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$25= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$76= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$26= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$77= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$27= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$78= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$79= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$10=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$3= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$80= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$24= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$81= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$5= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$82= - caml_string_of_jsbytes("Unexpected end of input"), - cst$56=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$83= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$11=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$4= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$84= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$25= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$85= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$6= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$86= - caml_string_of_jsbytes("Unexpected end of input"), - cst$57=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$26= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$87= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$27= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$88= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$28= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$89= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$28= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$90= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$29= - caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$91= - caml_string_of_jsbytes("Unexpected end of input"), - cst$58=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$2=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_two_objects_check$0= - caml_string_of_jsbytes("Expected two objects, check inputs"), - cst_Can_t_convert_each_element$0= - caml_string_of_jsbytes("Can't convert each element of non-array type "), - cst_Expected_string_or_null_go$0= - caml_string_of_jsbytes("Expected string or null, got "), - cst_Expected_string_got$0=caml_string_of_jsbytes("Expected string, got "), - cst_Expected_array_got$0=caml_string_of_jsbytes("Expected array, got "), - cst_Expected_int_or_null_got$0= - caml_string_of_jsbytes("Expected int or null, got "), - cst_Expected_int_got$0=caml_string_of_jsbytes("Expected int, got "), - cst_Expected_float_or_null_got$0= - caml_string_of_jsbytes("Expected float or null, got "), - cst_Expected_float_got$0=caml_string_of_jsbytes("Expected float, got "), - cst_Expected_number_or_null_go$0= - caml_string_of_jsbytes("Expected number or null, got "), - cst_Expected_number_got$0=caml_string_of_jsbytes("Expected number, got "), - cst_Expected_bool_or_null_got$0= - caml_string_of_jsbytes("Expected bool or null, got "), - cst_Expected_bool_got$0=caml_string_of_jsbytes("Expected bool, got "), - cst_Expected_object_got$0=caml_string_of_jsbytes("Expected object, got "), - cst_Can_t_map_function_over_no$0= - caml_string_of_jsbytes("Can't map function over non-array type "), - cst_out_of_bounds$0=caml_string_of_jsbytes(" out of bounds"), - cst_Index$0=caml_string_of_jsbytes("Index "), - cst_of_non_array_type$0=caml_string_of_jsbytes(" of non-array type "), - cst_Can_t_get_index$0=caml_string_of_jsbytes("Can't get index "), - cst_of_non_object_type$0=caml_string_of_jsbytes("' of non-object type "), - cst_Can_t_get_member$0=caml_string_of_jsbytes("Can't get member '"), - cst_null$6=caml_string_of_jsbytes("null"), - cst_object$0=caml_string_of_jsbytes("object"), - cst_array$0=caml_string_of_jsbytes("array"), - cst_bool$0=caml_string_of_jsbytes("bool"), - cst_variant$0=caml_string_of_jsbytes("variant"), - cst_tuple$0=caml_string_of_jsbytes("tuple"), - cst_float$0=caml_string_of_jsbytes("float"), - cst_int$0=caml_string_of_jsbytes("int"), - cst_intlit$0=caml_string_of_jsbytes("intlit"), - cst_string$0=caml_string_of_jsbytes("string"), - stream$0=[0,1], - cst_Blank_input_data$2=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data$1=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val$0= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow$0=caml_string_of_jsbytes("Int8 overflow"), - cst_Line$0=caml_string_of_jsbytes("Line"), - cst_null$5=caml_string_of_jsbytes("null"), - cst$50=caml_string_of_jsbytes(","), - cst$51=caml_string_of_jsbytes("{}"), - cst$52=caml_string_of_jsbytes(","), - cst$53=caml_string_of_jsbytes(","), - cst$54=caml_string_of_jsbytes("[]"), - cst$48=caml_string_of_jsbytes("()"), - cst$49=caml_string_of_jsbytes(","), - cst$47=caml_string_of_jsbytes("\n"), - cst$46=caml_string_of_jsbytes("\n"), - cst$45=caml_string_of_jsbytes("\n"), - cst$44=caml_string_of_jsbytes("\n"), - cst$43=caml_string_of_jsbytes("\n"), - cst$42=caml_string_of_jsbytes(""), - cst$41=caml_string_of_jsbytes(""), - cst$40=caml_string_of_jsbytes(""), - cst$39=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$4= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$9= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$10= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s$3= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$7=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed$7= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$8= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$5=caml_string_of_jsbytes("NaN"), - cst_Infinity$11=caml_string_of_jsbytes("Infinity"), - cst_Infinity$12=caml_string_of_jsbytes("-Infinity"), - cst_0$6=caml_string_of_jsbytes(".0"), - cst_NaN$4=caml_string_of_jsbytes("NaN"), - cst_0$5=caml_string_of_jsbytes(".0"), - cst_Infinity$9=caml_string_of_jsbytes("Infinity"), - cst_Infinity$10=caml_string_of_jsbytes("-Infinity"), - cst_true$1=caml_string_of_jsbytes("true"), - cst_false$1=caml_string_of_jsbytes("false"), - cst_null$4=caml_string_of_jsbytes("null"), - cst_b$1=caml_string_of_jsbytes("\\b"), - cst_t$1=caml_string_of_jsbytes("\\t"), - cst_n$1=caml_string_of_jsbytes("\\n"), - cst_f$1=caml_string_of_jsbytes("\\f"), - cst_r$1=caml_string_of_jsbytes("\\r"), - cst$38=caml_string_of_jsbytes('\\"'), - cst$37=caml_string_of_jsbytes("\\\\"), - cst_u00$1=caml_string_of_jsbytes("\\u00"), - cst_Null$0=caml_string_of_jsbytes("`Null"), - cst_Invalid_token=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$0=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$1=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$0= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unexpected_end_of_input$1= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_escape_sequence= - caml_string_of_jsbytes("Invalid escape sequence"), - cst_Unexpected_end_of_input$2= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_low_surrogate_for_= - caml_string_of_jsbytes - ("Invalid low surrogate for code point beyond U+FFFF"), - cst_Missing_escape_sequence_re= - caml_string_of_jsbytes - ("Missing escape sequence representing low surrogate for code point beyond U+FFFF"), - cst_Unexpected_end_of_input$3= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_string_literal= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$4= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$5= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found=caml_string_of_jsbytes("Expected '<' but found"), - cst_Unexpected_end_of_input$6= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$0=caml_string_of_jsbytes("Expected '>' but found"), - cst_Unexpected_end_of_input$7= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$1=caml_string_of_jsbytes("Expected ',' but found"), - cst_Unexpected_end_of_input$8= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$0= - caml_string_of_jsbytes("Expected '<', '\"' or '[' but found"), - cst_Unexpected_end_of_input$9= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Unterminated_comment=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_null_but_found= - caml_string_of_jsbytes("Expected 'null' but found"), - cst_Unexpected_end_of_input$10= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_true_or_false_but= - caml_string_of_jsbytes("Expected 'true' or 'false' but found"), - cst_Unexpected_end_of_input$11= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int_overflow$1=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow$2=caml_string_of_jsbytes("Int overflow"), - cst_Expected_an_integer_but_fo= - caml_string_of_jsbytes - ("Expected an integer but found a string that doesn't even represent an integer"), - cst_Expected_integer_but_found= - caml_string_of_jsbytes("Expected integer but found"), - cst_Unexpected_end_of_input$12= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int32_but_foun= - caml_string_of_jsbytes - ("Expected an int32 but found a string that doesn't even represent an integer"), - cst_Expected_int32_but_found= - caml_string_of_jsbytes("Expected int32 but found"), - cst_Unexpected_end_of_input$13= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Int32_overflow$0=caml_string_of_jsbytes("Int32 overflow"), - cst_Expected_an_int64_but_foun= - caml_string_of_jsbytes - ("Expected an int64 but found a string that doesn't even represent an integer"), - cst_Expected_int64_but_found= - caml_string_of_jsbytes("Expected int64 but found"), - cst_Unexpected_end_of_input$14= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Infinity$7=caml_string_of_jsbytes("-Infinity"), - cst_Infinity$8=caml_string_of_jsbytes("Infinity"), - cst_NaN$3=caml_string_of_jsbytes("NaN"), - cst_Expected_a_number_but_foun= - caml_string_of_jsbytes - ("Expected a number but found a string that doesn't even represent a number"), - cst_Expected_number_but_found= - caml_string_of_jsbytes("Expected number but found"), - cst_Unexpected_end_of_input$15= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$2= - caml_string_of_jsbytes("Expected '\"' but found"), - cst_Unexpected_end_of_input$16= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$17= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$0= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$18= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$3=caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$19= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$4=caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$20= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$1= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$21= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$2=caml_string_of_jsbytes("Invalid token"), - cst_Expected_but_found$5=caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$22= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$2= - caml_string_of_jsbytes("Expected ')' or '' but found"), - cst_Expected_or_but_found$3= - caml_string_of_jsbytes("Expected ']' or '' but found"), - cst_Expected_or_but_found$4= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$23= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$5= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Expected_or_but_found$6= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Expected_or_but_found$7= - caml_string_of_jsbytes("Expected ',' or ')' but found"), - cst_Unexpected_end_of_input$24= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$6=caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$25= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$7=caml_string_of_jsbytes("Expected '{' but found"), - cst_Unexpected_end_of_input$26= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$8= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$27= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$8=caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$28= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$9= - caml_string_of_jsbytes("Expected '(' or '[' but found"), - cst_Unexpected_end_of_input$29= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$9=caml_string_of_jsbytes("Expected '(' but found"), - cst_Unexpected_end_of_input$30= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$10= - caml_string_of_jsbytes("Expected ')' but found"), - cst_Unexpected_end_of_input$31= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$11= - caml_string_of_jsbytes("Expected '[' but found"), - cst_Unexpected_end_of_input$32= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$12= - caml_string_of_jsbytes("Expected ']' but found"), - cst_Unexpected_end_of_input$33= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$3=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$4=caml_string_of_jsbytes("Invalid token"), - cst_Unexpected_end_of_input$34= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$5=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$0= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$35= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$10= - caml_string_of_jsbytes("Expected ':' or '>' but found"), - cst_Unexpected_end_of_input$36= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$1= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$37= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$6=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_token$7=caml_string_of_jsbytes("Invalid token"), - cst$34=caml_string_of_jsbytes("/*"), - cst_Unexpected_end_of_input$38= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Invalid_token$8=caml_string_of_jsbytes("Invalid token"), - cst_Invalid_string_literal$1= - caml_string_of_jsbytes("Invalid string literal"), - cst_Unexpected_end_of_input$39= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_string_or_identif$2= - caml_string_of_jsbytes("Expected string or identifier but found"), - cst_Unexpected_end_of_input$40= - caml_string_of_jsbytes("Unexpected end of input"), - cst$35=caml_string_of_jsbytes("/*"), - cst_Expected_or_but_found$11= - caml_string_of_jsbytes("Expected ',' or '}' but found"), - cst_Unexpected_end_of_input$41= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_or_but_found$12= - caml_string_of_jsbytes("Expected ',' or ']' but found"), - cst_Unexpected_end_of_input$42= - caml_string_of_jsbytes("Unexpected end of input"), - cst_Expected_but_found$13= - caml_string_of_jsbytes("Expected ':' but found"), - cst_Unexpected_end_of_input$43= - caml_string_of_jsbytes("Unexpected end of input"), - cst$36=caml_string_of_jsbytes("*/"), - cst_Unterminated_comment$0=caml_string_of_jsbytes("Unterminated comment"), - cst_Expected_two_objects_check= - caml_string_of_jsbytes("Expected two objects, check inputs"), - cst_Can_t_convert_each_element= - caml_string_of_jsbytes("Can't convert each element of non-array type "), - cst_Expected_string_or_null_go= - caml_string_of_jsbytes("Expected string or null, got "), - cst_Expected_string_got=caml_string_of_jsbytes("Expected string, got "), - cst_Expected_array_got=caml_string_of_jsbytes("Expected array, got "), - cst_Expected_int_or_null_got= - caml_string_of_jsbytes("Expected int or null, got "), - cst_Expected_int_got=caml_string_of_jsbytes("Expected int, got "), - cst_Expected_float_or_null_got= - caml_string_of_jsbytes("Expected float or null, got "), - cst_Expected_float_got=caml_string_of_jsbytes("Expected float, got "), - cst_Expected_number_or_null_go= - caml_string_of_jsbytes("Expected number or null, got "), - cst_Expected_number_got=caml_string_of_jsbytes("Expected number, got "), - cst_Expected_bool_or_null_got= - caml_string_of_jsbytes("Expected bool or null, got "), - cst_Expected_bool_got=caml_string_of_jsbytes("Expected bool, got "), - cst_Expected_object_got=caml_string_of_jsbytes("Expected object, got "), - cst_Can_t_map_function_over_no= - caml_string_of_jsbytes("Can't map function over non-array type "), - cst_out_of_bounds=caml_string_of_jsbytes(" out of bounds"), - cst_Index=caml_string_of_jsbytes("Index "), - cst_of_non_array_type=caml_string_of_jsbytes(" of non-array type "), - cst_Can_t_get_index=caml_string_of_jsbytes("Can't get index "), - cst_of_non_object_type=caml_string_of_jsbytes("' of non-object type "), - cst_Can_t_get_member=caml_string_of_jsbytes("Can't get member '"), - cst_null$3=caml_string_of_jsbytes("null"), - cst_object=caml_string_of_jsbytes("object"), - cst_array=caml_string_of_jsbytes("array"), - cst_bool=caml_string_of_jsbytes("bool"), - cst_variant=caml_string_of_jsbytes("variant"), - cst_tuple=caml_string_of_jsbytes("tuple"), - cst_float=caml_string_of_jsbytes("float"), - cst_int=caml_string_of_jsbytes("int"), - cst_intlit=caml_string_of_jsbytes("intlit"), - cst_string=caml_string_of_jsbytes("string"), - stream=[0,1], - cst_Blank_input_data$0=caml_string_of_jsbytes("Blank input data"), - cst_Blank_input_data=caml_string_of_jsbytes("Blank input data"), - cst_Junk_after_end_of_JSON_val= - caml_string_of_jsbytes("Junk after end of JSON value:"), - cst_Int8_overflow=caml_string_of_jsbytes("Int8 overflow"), - cst_Int_overflow$0=caml_string_of_jsbytes("Int overflow"), - cst_Int_overflow=caml_string_of_jsbytes("Int overflow"), - cst_Line=caml_string_of_jsbytes("Line"), - cst_null$2=caml_string_of_jsbytes("null"), - cst$29=caml_string_of_jsbytes(","), - cst$30=caml_string_of_jsbytes("{}"), - cst$31=caml_string_of_jsbytes(","), - cst$32=caml_string_of_jsbytes(","), - cst$33=caml_string_of_jsbytes("[]"), - cst$28=caml_string_of_jsbytes("\n"), - cst$27=caml_string_of_jsbytes("\n"), - cst$26=caml_string_of_jsbytes("\n"), - cst$25=caml_string_of_jsbytes("\n"), - cst$24=caml_string_of_jsbytes("\n"), - cst$23=caml_string_of_jsbytes(""), - cst$22=caml_string_of_jsbytes(""), - cst$21=caml_string_of_jsbytes(""), - cst$20=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$2= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$5= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$6= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s$1= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$4=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed$3= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$4= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$2=caml_string_of_jsbytes("NaN"), - cst_Infinity$5=caml_string_of_jsbytes("Infinity"), - cst_Infinity$6=caml_string_of_jsbytes("-Infinity"), - cst_0$3=caml_string_of_jsbytes(".0"), - cst_NaN$1=caml_string_of_jsbytes("NaN"), - cst_0$2=caml_string_of_jsbytes(".0"), - cst_Infinity$3=caml_string_of_jsbytes("Infinity"), - cst_Infinity$4=caml_string_of_jsbytes("-Infinity"), - cst_true$0=caml_string_of_jsbytes("true"), - cst_false$0=caml_string_of_jsbytes("false"), - cst_null$1=caml_string_of_jsbytes("null"), - cst_b$0=caml_string_of_jsbytes("\\b"), - cst_t$0=caml_string_of_jsbytes("\\t"), - cst_n$0=caml_string_of_jsbytes("\\n"), - cst_f$0=caml_string_of_jsbytes("\\f"), - cst_r$0=caml_string_of_jsbytes("\\r"), - cst$19=caml_string_of_jsbytes('\\"'), - cst$18=caml_string_of_jsbytes("\\\\"), - cst_u00$0=caml_string_of_jsbytes("\\u00"), - cst_null$0=caml_string_of_jsbytes("null"), - cst$11=caml_string_of_jsbytes(","), - cst$12=caml_string_of_jsbytes("{}"), - cst$13=caml_string_of_jsbytes(","), - cst$14=caml_string_of_jsbytes(","), - cst$15=caml_string_of_jsbytes("[]"), - cst$16=caml_string_of_jsbytes("()"), - cst$17=caml_string_of_jsbytes(","), - cst$9=caml_string_of_jsbytes("\n"), - cst$8=caml_string_of_jsbytes("\n"), - cst$7=caml_string_of_jsbytes("\n"), - cst$6=caml_string_of_jsbytes("\n"), - cst$5=caml_string_of_jsbytes("\n"), - cst$4=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst$2=caml_string_of_jsbytes(""), - cst$1=caml_string_of_jsbytes(""), - cst_NaN_value_not_allowed_in_s$0= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$1= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$2= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN_value_not_allowed_in_s= - caml_string_of_jsbytes("NaN value not allowed in standard JSON"), - cst_0$1=caml_string_of_jsbytes(".0"), - cst_Infinity_value_not_allowed= - caml_string_of_jsbytes("Infinity value not allowed in standard JSON"), - cst_Infinity_value_not_allowed$0= - caml_string_of_jsbytes("-Infinity value not allowed in standard JSON"), - cst_NaN$0=caml_string_of_jsbytes("NaN"), - cst_Infinity$1=caml_string_of_jsbytes("Infinity"), - cst_Infinity$2=caml_string_of_jsbytes("-Infinity"), - cst_0$0=caml_string_of_jsbytes(".0"), - cst_NaN=caml_string_of_jsbytes("NaN"), - cst_0=caml_string_of_jsbytes(".0"), - cst_Infinity=caml_string_of_jsbytes("Infinity"), - cst_Infinity$0=caml_string_of_jsbytes("-Infinity"), - cst_true=caml_string_of_jsbytes("true"), - cst_false=caml_string_of_jsbytes("false"), - cst_null=caml_string_of_jsbytes("null"), - cst_b=caml_string_of_jsbytes("\\b"), - cst_t=caml_string_of_jsbytes("\\t"), - cst_n=caml_string_of_jsbytes("\\n"), - cst_f=caml_string_of_jsbytes("\\f"), - cst_r=caml_string_of_jsbytes("\\r"), - cst$0=caml_string_of_jsbytes('\\"'), - cst=caml_string_of_jsbytes("\\\\"), - cst_u00=caml_string_of_jsbytes("\\u00"), - version=caml_string_of_jsbytes("2.0.2"), - cst_Yojson_Json_error=caml_string_of_jsbytes("Yojson.Json_error"), - cst_Yojson_End_of_array=caml_string_of_jsbytes("Yojson.End_of_array"), - cst_Yojson_End_of_object=caml_string_of_jsbytes("Yojson.End_of_object"), - cst_Yojson_End_of_tuple=caml_string_of_jsbytes("Yojson.End_of_tuple"), - cst_Yojson_End_of_input=caml_string_of_jsbytes("Yojson.End_of_input"), - cst_Yojson_Basic_Int_overflow= - caml_string_of_jsbytes("Yojson.Basic.Int_overflow"), - ocaml_lex_tables= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_ = + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_ = + "\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0", + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_ = + "\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02", + cst$104 = + "\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_ = + "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff", + cst$83 = "", + cst$101 = "\n", + cst$92 = " '", + cst_len = " len=", + cst_of_non_array_type$1 = " of non-array type ", + cst_out_of_bounds$1 = " out of bounds", + cst_start = " start=", + cst_10g = "%.10g", + cst_11g = "%.11g", + cst_12g = "%.12g", + cst_13g = "%.13g", + cst_14g = "%.14g", + cst_15g = "%.15g", + cst_16g = "%.16g", + cst_17g = "%.17g", + cst_1g = "%.1g", + cst_2g = "%.2g", + cst_3g = "%.3g", + cst_4g = "%.4g", + cst_5g = "%.5g", + cst_6g = "%.6g", + cst_7g = "%.7g", + cst_8g = "%.8g", + cst_9g = "%.9g", + cst_B = "%B", + cst_F = "%F", + cst_S = "%S", + cst_a = "%a", + cst_a$0 = "%a@?", + cst_d = "%d", + cst_s_i_s_s = "%s %i, %s:\n%s", + cst_s_s_s = "%s '%s%s'", + cst_s_s = "%s '%s'", + cst_s$0 = "%s@ ", + cst_of_non_object_type$1 = "' of non-object type ", + cst$99 = "()", + cst_a_0_2 = "(@,%a@;<0 -2>)", + cst$84 = "(@[", + cst_Some$2 = "(Some ", + cst$89 = ")", + cst$91 = "*/", + cst$95 = ",", + cst$93 = ", ", + cst_line = ", line", + cst$85 = ",@ ", + cst_Infinity$12 = "-Infinity", + cst_Infinity_value_not_allowed$12 = + "-Infinity value not allowed in standard JSON", + cst_0$8 = ".0", + cst$90 = "/*", + cst$94 = ":\n", + cst$100 = ": ", + cst$82 = ";@ ", + cst_s = "<%s>", + cst_2 = "<2>", + cst_hv2_s_a = "<@[%s: %a@]>", + cst_hov2 = "", + cst_hov = "", + cst_hv2 = "", + cst_hv = "", + cst$81 = "@ ", + cst$87 = "@,", + cst$88 = "@,]@]", + cst_0_2 = "@;<0 -2>", + cst_1_2 = "@;<1 -2>", + cst_1_0 = "@;<1 0>", + cst_2$0 = "@[<2>[", + cst_hov2$0 = "@[", + cst_hv2$0 = "@[", + cst_hv2_a = "@[%a@]", + cst_hv2_s_a$0 = "@[%s: %a@]", + cst$96 = "@]", + cst$86 = "@])", + cst_Blank_input_data$5 = "Blank input data", + cst_Can_t_convert_each_element$1 = + "Can't convert each element of non-array type ", + cst_Can_t_get_index$1 = "Can't get index ", + cst_Can_t_get_member$1 = "Can't get member '", + cst_Can_t_map_function_over_no$1 = + "Can't map function over non-array type ", + cst_Expected_but_found$49 = "Expected '\"' but found", + cst_Expected_but_found$54 = "Expected '(' but found", + cst_Expected_or_but_found$52 = "Expected '(' or '[' but found", + cst_Expected_but_found$51 = "Expected ')' but found", + cst_Expected_or_but_found$48 = "Expected ')' or '' but found", + cst_Expected_but_found$48 = "Expected ',' but found", + cst_Expected_or_but_found$50 = "Expected ',' or ')' but found", + cst_Expected_or_but_found$47 = "Expected ',' or ']' but found", + cst_Expected_or_but_found$51 = "Expected ',' or '}' but found", + cst_Expected_but_found$53 = "Expected ':' but found", + cst_Expected_or_but_found$45 = "Expected ':' or '>' but found", + cst_Expected_but_found$46 = "Expected '<' but found", + cst_Expected_or_but_found$46 = "Expected '<', '\"' or '[' but found", + cst_Expected_but_found$47 = "Expected '>' but found", + cst_Expected_but_found$50 = "Expected '[' but found", + cst_Expected_but_found$55 = "Expected ']' but found", + cst_Expected_or_but_found$49 = "Expected ']' or '' but found", + cst_Expected_null_but_found$2 = "Expected 'null' but found", + cst_Expected_true_or_false_but$2 = "Expected 'true' or 'false' but found", + cst_Expected_but_found$52 = "Expected '{' but found", + cst_Expected_a_number_but_foun$2 = + "Expected a number but found a string that doesn't even represent a number", + cst_Expected_an_int32_but_foun$2 = + "Expected an int32 but found a string that doesn't even represent an integer", + cst_Expected_an_int64_but_foun$2 = + "Expected an int64 but found a string that doesn't even represent an integer", + cst_Expected_an_integer_but_fo$2 = + "Expected an integer but found a string that doesn't even represent an integer", + cst_Expected_array_got$1 = "Expected array, got ", + cst_Expected_bool_or_null_got$1 = "Expected bool or null, got ", + cst_Expected_bool_got$1 = "Expected bool, got ", + cst_Expected_float_or_null_got$1 = "Expected float or null, got ", + cst_Expected_float_got$1 = "Expected float, got ", + cst_Expected_int_or_null_got$1 = "Expected int or null, got ", + cst_Expected_int_got$1 = "Expected int, got ", + cst_Expected_int32_but_found$2 = "Expected int32 but found", + cst_Expected_int64_but_found$2 = "Expected int64 but found", + cst_Expected_integer_but_found$2 = "Expected integer but found", + cst_Expected_number_but_found$2 = "Expected number but found", + cst_Expected_number_or_null_go$1 = "Expected number or null, got ", + cst_Expected_number_got$1 = "Expected number, got ", + cst_Expected_object_got$1 = "Expected object, got ", + cst_Expected_string_or_identif$11 = + "Expected string or identifier but found", + cst_Expected_string_or_null_go$1 = "Expected string or null, got ", + cst_Expected_string_got$1 = "Expected string, got ", + cst_Expected_two_objects_check$1 = "Expected two objects, check inputs", + cst_File = "File ", + cst_File_s_line = "File %s, line", + cst_Index$1 = "Index ", + cst_Infinity$11 = "Infinity", + cst_Infinity_value_not_allowed$11 = + "Infinity value not allowed in standard JSON", + cst_Int_overflow$7 = "Int overflow", + cst_Int32_overflow$5 = "Int32 overflow", + cst_Int8_overflow$2 = "Int8 overflow", + cst_Invalid_escape_sequence$2 = "Invalid escape sequence", + cst_Invalid_low_surrogate_for_$2 = + "Invalid low surrogate for code point beyond U+FFFF", + cst_Invalid_string_literal$8 = "Invalid string literal", + cst_Invalid_token$15 = "Invalid token", + cst_Junk_after_end_of_JSON_val$2 = "Junk after end of JSON value:", + cst_Line$2 = "Line", + cst_Missing_escape_sequence_re$2 = + "Missing escape sequence representing low surrogate for code point beyond U+FFFF", + cst_NaN$5 = "NaN", + cst_NaN_value_not_allowed_in_s$5 = + "NaN value not allowed in standard JSON", + cst_None$2 = "None", + cst_Unexpected_end_of_input$140 = "Unexpected end of input", + cst_Unterminated_comment$5 = "Unterminated comment", + cst_1_0_hov_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", + cst_1_0_hv_a_1_2 = "[@;<1 0>@[%a@]@;<1 -2>]", + cst$98 = "[]", + cst$102 = '\\"', + cst$103 = "\\\\", + cst_b$3 = "\\b", + cst_f$3 = "\\f", + cst_n$3 = "\\n", + cst_r$3 = "\\r", + cst_t$3 = "\\t", + cst_u00$3 = "\\u00", + cst_Assoc = "`Assoc (", + cst_Assoc_hov = "`Assoc (@[", + cst_Bool = "`Bool (", + cst_Bool_hov = "`Bool (@[", + cst_Float = "`Float (", + cst_Float_hov = "`Float (@[", + cst_Floatlit = "`Floatlit (", + cst_Floatlit_hov = "`Floatlit (@[", + cst_Int = "`Int (", + cst_Int_hov = "`Int (@[", + cst_Intlit = "`Intlit (", + cst_Intlit_hov = "`Intlit (@[", + cst_List = "`List (", + cst_List_hov = "`List (@[", + cst_Null$3 = "`Null", + cst_String = "`String (", + cst_String_hov = "`String (@[", + cst_Stringlit = "`Stringlit (", + cst_Stringlit_hov = "`Stringlit (@[", + cst_Tuple = "`Tuple (", + cst_Tuple_hov = "`Tuple (@[", + cst_Variant = "`Variant (", + cst_Variant_hov = "`Variant (@[", + cst_array$1 = "array", + cst_bool$1 = "bool", + cst_byte = "byte ", + cst_byte_i = "byte %i", + cst_bytes = "bytes ", + cst_bytes_i_i = "bytes %i-%i", + cst_false$3 = "false", + cst_float$1 = "float", + cst_int$1 = "int", + cst_intlit$1 = "intlit", + cst_lib_read_mll = "lib/read.mll", + cst_null$9 = "null", + cst_object$1 = "object", + cst_src = "src=", + cst_src_S_start_i_len_i = "src=%S start=%i len=%i\n%!", + cst_string$1 = "string", + cst_true$3 = "true", + cst_tuple$1 = "tuple", + cst_variant$1 = "variant", + cst_1_0_a_1_2 = "{@;<1 0>%a@;<1 -2>}", + cst$97 = "{}", + caml_bytes_get = runtime.caml_bytes_get, + caml_bytes_set = runtime.caml_bytes_set, + caml_check_bound = runtime.caml_check_bound, + caml_classify_float = runtime.caml_classify_float, + caml_create_bytes = runtime.caml_create_bytes, + caml_equal = runtime.caml_equal, + caml_float_of_string = runtime.caml_float_of_string, + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_get_public_method = runtime.caml_get_public_method, + caml_int64_of_string = runtime.caml_int64_of_string, + caml_int_of_string = runtime.caml_int_of_string, + caml_lex_engine = runtime.caml_lex_engine, + caml_make_vect = runtime.caml_make_vect, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_ml_string_length = runtime.caml_ml_string_length, + caml_string_equal = runtime.caml_string_equal, + caml_string_get = runtime.caml_string_get, + caml_string_notequal = runtime.caml_string_notequal, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + var + global_data = runtime.caml_get_global_data(), + cst$10 = cst$89, + cst$77 = cst$89, + cst$78 = cst$90, + cst$79 = cst$90, + cst$80 = cst$91, + stream$1 = [0, 1], + cst$70 = cst$95, + cst$71 = cst$97, + cst$72 = cst$95, + cst$73 = cst$95, + cst$74 = cst$98, + cst$75 = cst$99, + cst$76 = cst$95, + cst$69 = cst$101, + cst$68 = cst$101, + cst$67 = cst$101, + cst$66 = cst$101, + cst$65 = cst$101, + cst$64 = cst$83, + cst$63 = cst$83, + cst$62 = cst$83, + cst$61 = cst$83, + cst$60 = cst$102, + cst$59 = cst$103, + cst$55 = cst$89, + cst$56 = cst$90, + cst$57 = cst$90, + cst$58 = cst$91, + stream$0 = [0, 1], + cst$50 = cst$95, + cst$51 = cst$97, + cst$52 = cst$95, + cst$53 = cst$95, + cst$54 = cst$98, + cst$48 = cst$99, + cst$49 = cst$95, + cst$47 = cst$101, + cst$46 = cst$101, + cst$45 = cst$101, + cst$44 = cst$101, + cst$43 = cst$101, + cst$42 = cst$83, + cst$41 = cst$83, + cst$40 = cst$83, + cst$39 = cst$83, + cst$38 = cst$102, + cst$37 = cst$103, + cst$34 = cst$90, + cst$35 = cst$90, + cst$36 = cst$91, + stream = [0, 1], + cst$29 = cst$95, + cst$30 = cst$97, + cst$31 = cst$95, + cst$32 = cst$95, + cst$33 = cst$98, + cst$28 = cst$101, + cst$27 = cst$101, + cst$26 = cst$101, + cst$25 = cst$101, + cst$24 = cst$101, + cst$23 = cst$83, + cst$22 = cst$83, + cst$21 = cst$83, + cst$20 = cst$83, + cst$19 = cst$102, + cst$18 = cst$103, + cst$11 = cst$95, + cst$12 = cst$97, + cst$13 = cst$95, + cst$14 = cst$95, + cst$15 = cst$98, + cst$16 = cst$99, + cst$17 = cst$95, + cst$9 = cst$101, + cst$8 = cst$101, + cst$7 = cst$101, + cst$6 = cst$101, + cst$5 = cst$101, + cst$4 = cst$83, + cst$3 = cst$83, + cst$2 = cst$83, + cst$1 = cst$83, + cst$0 = cst$102, + cst = cst$103, + version = "2.0.2", + ocaml_lex_tables = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Basic_Finally=caml_string_of_jsbytes("Yojson.Basic.Finally"), - cst_Yojson_Basic_Util_Type_err= - caml_string_of_jsbytes("Yojson.Basic.Util.Type_error"), - cst_Yojson_Basic_Util_Undefine= - caml_string_of_jsbytes("Yojson.Basic.Util.Undefined"), - cst_Yojson_Safe_Int_overflow= - caml_string_of_jsbytes("Yojson.Safe.Int_overflow"), - ocaml_lex_tables$0= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + ocaml_lex_tables$0 = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Safe_Finally=caml_string_of_jsbytes("Yojson.Safe.Finally"), - cst_Yojson_Safe_Util_Type_erro= - caml_string_of_jsbytes("Yojson.Safe.Util.Type_error"), - cst_Yojson_Safe_Util_Undefined= - caml_string_of_jsbytes("Yojson.Safe.Util.Undefined"), - cst_Yojson_Raw_Int_overflow= - caml_string_of_jsbytes("Yojson.Raw.Int_overflow"), - ocaml_lex_tables$1= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + ocaml_lex_tables$1 = [0, - caml_string_of_jsbytes - ("\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes - ("\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02"), - caml_string_of_jsbytes - ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"), - caml_string_of_jsbytes - ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes(""), - caml_string_of_jsbytes("")], - cst_Yojson_Raw_Finally=caml_string_of_jsbytes("Yojson.Raw.Finally"), - Stdlib=global_data.Stdlib, - Stdlib_Buffer=global_data.Stdlib__Buffer, - Stdlib_String=global_data.Stdlib__String, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Format=global_data.Stdlib__Format, - Assert_failure=global_data.Assert_failure, - Stdlib_Bytes=global_data.Stdlib__Bytes, - Stdlib_Printf=global_data.Stdlib__Printf, - Stdlib_Seq=global_data.Stdlib__Seq, - Stdlib_Char=global_data.Stdlib__Char, - Stdlib_Lexing=global_data.Stdlib__Lexing, - Json_error=[248,cst_Yojson_Json_error,caml_fresh_oo_id(0)], - _V_= + cst_U_a_w_A_n_0_G_m_X_4_5_5_0_, + cst$104, + cst_9_A_A_F_T_a_a_h_m_q_u_y_4_, + cst_E_E_E_1_8_v_9_1_0_j_n_i_1_, + cst_E_9_E_E_s_f_k_f_o_R_U_0_0_, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83, + cst$83], + Stdlib = global_data.Stdlib, + Stdlib_Buffer = global_data.Stdlib__Buffer, + Stdlib_String = global_data.Stdlib__String, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Format = global_data.Stdlib__Format, + Assert_failure = global_data.Assert_failure, + Stdlib_Bytes = global_data.Stdlib__Bytes, + Stdlib_Printf = global_data.Stdlib__Printf, + Stdlib_Seq = global_data.Stdlib__Seq, + Stdlib_Char = global_data.Stdlib__Char, + Stdlib_Lexing = global_data.Stdlib__Lexing, + Json_error = [248, "Yojson.Json_error", caml_fresh_oo_id(0)], + _V_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _N_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _B_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _C_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _D_ = [0, [3, 0, 0], cst_S], + _E_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _F_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null = cst_Null$3, + _z_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _N_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _A_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _G_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _H_ = [0, [17, 0, [12, 41, 0]], cst$86], + _I_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _B_= + [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Floatlit_hov], + _J_ = [0, [3, 0, 0], cst_S], + _K_ = [0, [17, 0, [12, 41, 0]], cst$86], + _L_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _C_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _M_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _O_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _P_ = [0, [17, 0, [12, 41, 0]], cst$86], + _Q_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _D_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _E_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _R_ = [0, [9, 0, 0], cst_B], + _S_ = [0, [17, 0, [12, 41, 0]], cst$86], + _T_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _F_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _z_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _U_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _W_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _X_ = [0, [17, 0, [12, 41, 0]], cst$86], + _Y_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _A_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _Z_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + ___ = [0, [3, 0, 0], cst_S], + _$_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some = cst_Some$2, + cst_None = cst_None$2, + _aa_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ab_ = [0, [17, 0, [12, 41, 0]], cst$86], + _af_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _G_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _ag_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _ah_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ai_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _H_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _I_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _aj_ = [0, [4, 0, 0, 0, 0], cst_d], + _ak_ = [0, [17, 0, [12, 41, 0]], cst$86], + _al_ = [0, - [11, - caml_string_of_jsbytes("`Floatlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Floatlit (@[")], - _J_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _K_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _L_= + [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Stringlit_hov], + _am_ = [0, [3, 0, 0], cst_S], + _an_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ao_ = [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _M_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _ap_ = [0, [3, 0, 0], cst_S], + _aq_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ac_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _O_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _ad_ = [0, [3, 0, 0], cst_S], + _ae_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d2_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dU_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dI_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _dJ_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _dK_ = [0, [3, 0, 0], cst_S], + _dL_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _dM_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$2 = cst_Null$3, + _dG_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _P_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _Q_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _dH_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _dN_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _dO_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dP_ = [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _R_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _S_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _T_= + [11, cst_Floatlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Floatlit_hov], + _dQ_ = [0, [3, 0, 0], cst_S], + _dR_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dS_ = [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _U_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _dT_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _dV_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _dW_ = [0, [17, 0, [12, 41, 0]], cst$86], + _dX_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _W_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _dY_ = [0, [9, 0, 0], cst_B], + _dZ_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d0_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _X_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _Y_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _d1_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _d3_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _d4_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d5_ = [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _Z_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _d6_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _d7_ = [0, [3, 0, 0], cst_S], + _d8_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some$1 = cst_Some$2, + cst_None$1 = cst_None$2, + _d9_ = [0, [17, 0, [12, 41, 0]], cst$86], + _d__ = [0, [17, 0, [12, 41, 0]], cst$86], + _d$_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - ___=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _$_= + [11, cst_Stringlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Stringlit_hov], + _ea_ = [0, [3, 0, 0], cst_S], + _eb_ = [0, [17, 0, [12, 41, 0]], cst$86], + _ec_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _aa_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ab_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _af_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _ed_ = [0, [3, 0, 0], cst_S], + _ee_ = [0, [17, 0, [12, 41, 0]], cst$86], + _eq_ = [0, 737456202, 1], + _er_ = [0, 737456202, 0], + _es_ = [0, 928231259, cst_NaN$5], + _et_ = [0, 928231259, cst_Infinity$11], + _eu_ = [0, 928231259, cst_Infinity$12], + cst_Unexpected_end_of_input$92 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$12 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$93 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$94 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence$1 = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$95 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_$1 = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re$1 = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$96 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal$5 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$97 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$29 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$98 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$30 = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$99 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$31 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$100 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$32 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$101 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$30 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$102 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$3 = cst_Unterminated_comment$5, + cst_Expected_null_but_found$1 = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$103 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but$1 = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$104 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$5 = cst_Int_overflow$7, + cst_Int_overflow$6 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo$1 = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found$1 = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$105 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$3 = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun$1 = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found$1 = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$106 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$4 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun$1 = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found$1 = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$107 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun$1 = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found$1 = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$108 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$33 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$109 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$7 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$110 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$8 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$111 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$34 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$112 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$35 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$113 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$31 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$114 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$36 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$115 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$32 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$33 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$34 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$116 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$35 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$36 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$37 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$117 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$37 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$118 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$38 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$119 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$38 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$120 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$39 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$121 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$39 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$122 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$40 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$123 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$41 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$124 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$42 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$125 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$43 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$126 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$127 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$13 = cst_Invalid_token$15, + cst_Invalid_string_literal$6 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$128 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$40 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$129 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$9 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$130 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$131 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$14 = cst_Invalid_token$15, + cst_Invalid_string_literal$7 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$132 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$41 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$133 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$10 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$134 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$42 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$135 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$43 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$136 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$44 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$137 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$44 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$138 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$45 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$139 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$4 = cst_Unterminated_comment$5, + cst_Blank_input_data$4 = cst_Blank_input_data$5, + cst_Blank_input_data$3 = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val$1 = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow$1 = cst_Int8_overflow$2, + _en_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _em_ = [0, cst_lib_read_mll, 72, 32], + _el_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _eh_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line$1 = cst_Line$2, + _ei_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _ek_ = [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _ag_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _ah_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ai_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _aj_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _ak_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _al_= - [0, - [11, - caml_string_of_jsbytes("`Stringlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Stringlit (@[")], - _am_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _an_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ao_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _ap_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _aq_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ac_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _ad_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _ae_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d2_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dU_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dI_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _dJ_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _dK_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _dL_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _dM_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dG_= - [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _dH_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _dN_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _dO_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dP_= - [0, - [11, - caml_string_of_jsbytes("`Floatlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Floatlit (@[")], - _dQ_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _dR_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dS_= - [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _dT_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _dV_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _dW_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dX_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _dY_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _dZ_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d0_= - [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _d1_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _d3_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _d4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d5_= - [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _d6_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _d7_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _d8_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _d9_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _d$_= - [0, - [11, - caml_string_of_jsbytes("`Stringlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Stringlit (@[")], - _ea_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _eb_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _ec_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _ed_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _ee_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _eq_=[0,737456202,1], - _er_=[0,737456202,0], - _es_=[0,928231259,caml_string_of_jsbytes("NaN")], - _et_=[0,928231259,caml_string_of_jsbytes("Infinity")], - _eu_=[0,928231259,caml_string_of_jsbytes("-Infinity")], - _en_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _em_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _el_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _eh_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _ei_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _ek_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _ej_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _ej_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _eg_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _ef_=[0,[15,0],caml_string_of_jsbytes("%a")], - _dq_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _dr_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _eg_ = [0, cst_lib_read_mll, 44, 13], + _ef_ = [0, [15, 0], cst_a], + cst_null$8 = cst_null$9, + _dq_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _dr_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _ds_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dt_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _du_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _ds_ = [0, [17, 0, 0], cst$96], + _dt_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _du_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _dw_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _dw_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _dv_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dx_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _dy_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _dv_ = [0, [17, 0, 0], cst$96], + _dx_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _dy_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _dz_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _dA_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _dz_ = [0, [17, 0, 0], cst$96], + _dA_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _dB_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _dC_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _dB_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _dC_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _dF_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _dE_=[0,[15,0],caml_string_of_jsbytes("%a")], - _dD_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _dF_ = [0, [15, [17, 2, 0]], cst_a$0], + _dE_ = [0, [15, 0], cst_a], + _dD_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _dp_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _dm_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _dp_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_true$2 = cst_true$3, + cst_false$2 = cst_false$3, + cst_null$7 = cst_null$9, + cst_b$2 = cst_b$3, + cst_t$2 = cst_t$3, + cst_n$2 = cst_n$3, + cst_f$2 = cst_f$3, + cst_r$2 = cst_r$3, + _dm_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _cz_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$2 = cst_u00$3, + _cz_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cN_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cE_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _cF_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _cG_ = [0, [3, 0, 0], cst_S], + _cH_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _cI_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$1 = cst_Null$3, + _cC_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cN_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _cD_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cJ_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cK_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cL_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cE_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _cM_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cO_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cP_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cQ_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _cF_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _cR_ = [0, [9, 0, 0], cst_B], + _cS_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cT_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _cG_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _cH_= + [11, cst_Variant, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Variant_hov], + _cU_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _cV_ = [0, [3, 0, 0], cst_S], + _cW_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + cst_Some$0 = cst_Some$2, + cst_None$0 = cst_None$2, + _cX_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cY_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cx_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _cI_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cC_= + [11, cst_Tuple, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Tuple_hov], + _cy_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _cA_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _cB_ = [0, [17, 0, [12, 41, 0]], cst$86], + _cZ_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _cD_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _c0_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _c1_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c2_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cJ_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _c3_ = [0, [4, 0, 0, 0, 0], cst_d], + _c4_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c5_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cK_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cL_= + [11, cst_Intlit, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Intlit_hov], + _c6_ = [0, [3, 0, 0], cst_S], + _c7_ = [0, [17, 0, [12, 41, 0]], cst$86], + _c8_ = [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _cM_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _c9_ = [0, [3, 0, 0], cst_S], + _c__ = [0, [17, 0, [12, 41, 0]], cst$86], + _dk_ = [0, 737456202, 1], + _dl_ = [0, 737456202, 0], + cst_Unexpected_end_of_input$44 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$9 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$45 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$46 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence$0 = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$47 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_$0 = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re$0 = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$48 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal$2 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$49 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$13 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$50 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$14 = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$51 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$15 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$52 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$16 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$53 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$14 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$54 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$1 = cst_Unterminated_comment$5, + cst_Expected_null_but_found$0 = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$55 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but$0 = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$56 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$3 = cst_Int_overflow$7, + cst_Int_overflow$4 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo$0 = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found$0 = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$57 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$1 = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun$0 = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found$0 = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$58 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$2 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun$0 = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found$0 = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$59 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun$0 = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found$0 = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$60 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$17 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$61 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$3 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$62 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$4 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$63 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$18 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$64 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$19 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$65 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$15 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$66 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$20 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$67 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$16 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$17 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$18 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$68 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$19 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$20 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$21 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$69 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$21 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$70 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$22 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$71 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$22 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$72 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$23 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$73 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$23 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$74 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$24 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$75 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$25 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$76 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$26 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$77 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$27 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$78 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$79 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$10 = cst_Invalid_token$15, + cst_Invalid_string_literal$3 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$80 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$24 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$81 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$5 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$82 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$83 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$11 = cst_Invalid_token$15, + cst_Invalid_string_literal$4 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$84 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$25 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$85 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$6 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$86 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$26 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$87 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$27 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$88 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$28 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$89 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$28 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$90 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$29 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$91 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$2 = cst_Unterminated_comment$5, + cst_Expected_two_objects_check$0 = cst_Expected_two_objects_check$1, + cst_Can_t_convert_each_element$0 = cst_Can_t_convert_each_element$1, + cst_Expected_string_or_null_go$0 = cst_Expected_string_or_null_go$1, + cst_Expected_string_got$0 = cst_Expected_string_got$1, + cst_Expected_array_got$0 = cst_Expected_array_got$1, + cst_Expected_int_or_null_got$0 = cst_Expected_int_or_null_got$1, + cst_Expected_int_got$0 = cst_Expected_int_got$1, + cst_Expected_float_or_null_got$0 = cst_Expected_float_or_null_got$1, + cst_Expected_float_got$0 = cst_Expected_float_got$1, + cst_Expected_number_or_null_go$0 = cst_Expected_number_or_null_go$1, + cst_Expected_number_got$0 = cst_Expected_number_got$1, + cst_Expected_bool_or_null_got$0 = cst_Expected_bool_or_null_got$1, + cst_Expected_bool_got$0 = cst_Expected_bool_got$1, + cst_Expected_object_got$0 = cst_Expected_object_got$1, + cst_Can_t_map_function_over_no$0 = cst_Can_t_map_function_over_no$1, + cst_out_of_bounds$0 = cst_out_of_bounds$1, + cst_Index$0 = cst_Index$1, + cst_of_non_array_type$0 = cst_of_non_array_type$1, + cst_Can_t_get_index$0 = cst_Can_t_get_index$1, + cst_of_non_object_type$0 = cst_of_non_object_type$1, + cst_Can_t_get_member$0 = cst_Can_t_get_member$1, + cst_null$6 = cst_null$9, + cst_object$0 = cst_object$1, + cst_array$0 = cst_array$1, + cst_bool$0 = cst_bool$1, + cst_variant$0 = cst_variant$1, + cst_tuple$0 = cst_tuple$1, + cst_float$0 = cst_float$1, + cst_int$0 = cst_int$1, + cst_intlit$0 = cst_intlit$1, + cst_string$0 = cst_string$1, + cst_Blank_input_data$2 = cst_Blank_input_data$5, + cst_Blank_input_data$1 = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val$0 = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow$0 = cst_Int8_overflow$2, + _dh_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _dg_ = [0, cst_lib_read_mll, 72, 32], + _df_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _db_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line$0 = cst_Line$2, + _dc_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _de_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cO_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cP_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cQ_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _cR_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _cS_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cT_= - [0, - [11, - caml_string_of_jsbytes("`Variant ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Variant (@[")], - _cU_= - [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _cV_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _cW_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _cX_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cY_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cx_= - [0, - [11, - caml_string_of_jsbytes("`Tuple ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Tuple (@[")], - _cy_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _cA_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _cB_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _cZ_= - [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _c0_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _c1_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c2_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _c3_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _c4_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c5_= - [0, - [11, - caml_string_of_jsbytes("`Intlit ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Intlit (@[")], - _c6_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _c7_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _c8_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _c9_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _c__=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _dk_=[0,737456202,1], - _dl_=[0,737456202,0], - _dh_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _dg_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _df_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _db_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _dc_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _de_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _dd_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _dd_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _da_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _c$_=[0,[15,0],caml_string_of_jsbytes("%a")], - _ck_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _cl_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _da_ = [0, cst_lib_read_mll, 44, 13], + _c$_ = [0, [15, 0], cst_a], + cst_null$5 = cst_null$9, + _ck_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _cl_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _cm_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _cn_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _co_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _cm_ = [0, [17, 0, 0], cst$96], + _cn_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _co_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _cq_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _cq_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _cp_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _cr_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _cp_ = [0, [17, 0, 0], cst$96], + _cr_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _cs_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _ch_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ci_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _cs_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _ch_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _ci_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _cj_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _ct_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _cj_ = [0, [17, 0, 0], cst$96], + _ct_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _cw_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _cv_=[0,[15,0],caml_string_of_jsbytes("%a")], - _cu_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _cw_ = [0, [15, [17, 2, 0]], cst_a$0], + _cv_ = [0, [15, 0], cst_a], + _cu_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _cg_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _ce_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _cf_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _bZ_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _b0_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _b1_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _b2_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _b3_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _b4_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _b5_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _b6_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _b7_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _b8_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _b9_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _b__=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _b$_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _ca_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _cb_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _cc_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _cd_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _bX_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _bY_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _bU_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _cg_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_NaN_value_not_allowed_in_s$4 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$9 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$10 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s$3 = cst_NaN_value_not_allowed_in_s$5, + _ce_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _cf_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$7 = cst_0$8, + cst_Infinity_value_not_allowed$7 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$8 = cst_Infinity_value_not_allowed$12, + cst_NaN$4 = cst_NaN$5, + cst_Infinity$9 = cst_Infinity$11, + cst_Infinity$10 = cst_Infinity$12, + _bZ_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _b0_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _b1_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _b2_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _b3_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _b4_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _b5_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _b6_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _b7_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _b8_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _b9_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _b__ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _b$_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _ca_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _cb_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _cc_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _cd_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$6 = cst_0$8, + cst_NaN$3 = cst_NaN$5, + _bX_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _bY_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$5 = cst_0$8, + cst_Infinity$7 = cst_Infinity$11, + cst_Infinity$8 = cst_Infinity$12, + cst_true$1 = cst_true$3, + cst_false$1 = cst_false$3, + cst_null$4 = cst_null$9, + cst_b$1 = cst_b$3, + cst_t$1 = cst_t$3, + cst_n$1 = cst_n$3, + cst_f$1 = cst_f$3, + cst_r$1 = cst_r$3, + _bU_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _bs_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$1 = cst_u00$3, + _bs_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _bj_ = [0, [12, 59, [17, [0, cst$81, 1, 0], 0]], cst$82], + _bk_ = [0, [12, 40, [18, [1, [0, 0, cst$83]], 0]], cst$84], + _bl_ = [0, [3, 0, 0], cst_S], + _bm_ = [0, [12, 44, [17, [0, cst$81, 1, 0], 0]], cst$85], + _bn_ = [0, [17, 0, [12, 41, 0]], cst$86], + cst_Null$0 = cst_Null$3, + _bh_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _bj_= + [11, cst_Assoc, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Assoc_hov], + _bi_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _bo_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _bp_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bq_ = [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _bk_= + [11, cst_List, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_List_hov], + _br_ = [0, [18, [1, [0, [11, cst_2, 0], cst_2]], [12, 91, 0]], cst_2$0], + _bt_ = [0, [17, [0, cst$87, 0, 0], [12, 93, [17, 0, 0]]], cst$88], + _bu_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bv_ = [0, - [12,40,[18,[1,[0,0,caml_string_of_jsbytes("")]],0]], - caml_string_of_jsbytes("(@[")], - _bl_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bm_= + [11, cst_Bool, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Bool_hov], + _bw_ = [0, [9, 0, 0], cst_B], + _bx_ = [0, [17, 0, [12, 41, 0]], cst$86], + _by_ = [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _bn_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bh_= + [11, cst_Float, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Float_hov], + _bz_ = [0, [8, [0, 0, 5], 0, 0, 0], cst_F], + _bA_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bB_ = [0, - [11, - caml_string_of_jsbytes("`Assoc ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Assoc (@[")], - _bi_= + [11, cst_Int, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_Int_hov], + _bC_ = [0, [4, 0, 0, 0, 0], cst_d], + _bD_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bE_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _bo_= + [11, cst_String, [18, [1, [0, [11, cst_hov, 0], cst_hov]], 0]], + cst_String_hov], + _bF_ = [0, [3, 0, 0], cst_S], + _bG_ = [0, [17, 0, [12, 41, 0]], cst$86], + _bS_ = [0, 737456202, 1], + _bT_ = [0, 737456202, 0], + cst_Invalid_token = cst_Invalid_token$15, + cst_Invalid_token$0 = cst_Invalid_token$15, + cst_Unexpected_end_of_input = cst_Unexpected_end_of_input$140, + cst_Invalid_token$1 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$0 = cst_Unexpected_end_of_input$140, + cst_Unexpected_end_of_input$1 = cst_Unexpected_end_of_input$140, + cst_Invalid_escape_sequence = cst_Invalid_escape_sequence$2, + cst_Unexpected_end_of_input$2 = cst_Unexpected_end_of_input$140, + cst_Invalid_low_surrogate_for_ = cst_Invalid_low_surrogate_for_$2, + cst_Missing_escape_sequence_re = cst_Missing_escape_sequence_re$2, + cst_Unexpected_end_of_input$3 = cst_Unexpected_end_of_input$140, + cst_Invalid_string_literal = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$4 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$5 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found = cst_Expected_but_found$46, + cst_Unexpected_end_of_input$6 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$0 = cst_Expected_but_found$47, + cst_Unexpected_end_of_input$7 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$1 = cst_Expected_but_found$48, + cst_Unexpected_end_of_input$8 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$0 = cst_Expected_or_but_found$46, + cst_Unexpected_end_of_input$9 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment = cst_Unterminated_comment$5, + cst_Expected_null_but_found = cst_Expected_null_but_found$2, + cst_Unexpected_end_of_input$10 = cst_Unexpected_end_of_input$140, + cst_Expected_true_or_false_but = cst_Expected_true_or_false_but$2, + cst_Unexpected_end_of_input$11 = cst_Unexpected_end_of_input$140, + cst_Int_overflow$1 = cst_Int_overflow$7, + cst_Int_overflow$2 = cst_Int_overflow$7, + cst_Expected_an_integer_but_fo = cst_Expected_an_integer_but_fo$2, + cst_Expected_integer_but_found = cst_Expected_integer_but_found$2, + cst_Unexpected_end_of_input$12 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow = cst_Int32_overflow$5, + cst_Expected_an_int32_but_foun = cst_Expected_an_int32_but_foun$2, + cst_Expected_int32_but_found = cst_Expected_int32_but_found$2, + cst_Unexpected_end_of_input$13 = cst_Unexpected_end_of_input$140, + cst_Int32_overflow$0 = cst_Int32_overflow$5, + cst_Expected_an_int64_but_foun = cst_Expected_an_int64_but_foun$2, + cst_Expected_int64_but_found = cst_Expected_int64_but_found$2, + cst_Unexpected_end_of_input$14 = cst_Unexpected_end_of_input$140, + cst_Expected_a_number_but_foun = cst_Expected_a_number_but_foun$2, + cst_Expected_number_but_found = cst_Expected_number_but_found$2, + cst_Unexpected_end_of_input$15 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$2 = cst_Expected_but_found$49, + cst_Unexpected_end_of_input$16 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$17 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$0 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$18 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$3 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$19 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$4 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$20 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$1 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$21 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$2 = cst_Invalid_token$15, + cst_Expected_but_found$5 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$22 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$2 = cst_Expected_or_but_found$48, + cst_Expected_or_but_found$3 = cst_Expected_or_but_found$49, + cst_Expected_or_but_found$4 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$23 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$5 = cst_Expected_or_but_found$47, + cst_Expected_or_but_found$6 = cst_Expected_or_but_found$50, + cst_Expected_or_but_found$7 = cst_Expected_or_but_found$50, + cst_Unexpected_end_of_input$24 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$6 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$25 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$7 = cst_Expected_but_found$52, + cst_Unexpected_end_of_input$26 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$8 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$27 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$8 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$28 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$9 = cst_Expected_or_but_found$52, + cst_Unexpected_end_of_input$29 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$9 = cst_Expected_but_found$54, + cst_Unexpected_end_of_input$30 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$10 = cst_Expected_but_found$51, + cst_Unexpected_end_of_input$31 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$11 = cst_Expected_but_found$50, + cst_Unexpected_end_of_input$32 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$12 = cst_Expected_but_found$55, + cst_Unexpected_end_of_input$33 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$3 = cst_Invalid_token$15, + cst_Invalid_token$4 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$34 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$5 = cst_Invalid_token$15, + cst_Invalid_string_literal$0 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$35 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$10 = cst_Expected_or_but_found$45, + cst_Unexpected_end_of_input$36 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$1 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$37 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$6 = cst_Invalid_token$15, + cst_Invalid_token$7 = cst_Invalid_token$15, + cst_Unexpected_end_of_input$38 = cst_Unexpected_end_of_input$140, + cst_Invalid_token$8 = cst_Invalid_token$15, + cst_Invalid_string_literal$1 = cst_Invalid_string_literal$8, + cst_Unexpected_end_of_input$39 = cst_Unexpected_end_of_input$140, + cst_Expected_string_or_identif$2 = cst_Expected_string_or_identif$11, + cst_Unexpected_end_of_input$40 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$11 = cst_Expected_or_but_found$51, + cst_Unexpected_end_of_input$41 = cst_Unexpected_end_of_input$140, + cst_Expected_or_but_found$12 = cst_Expected_or_but_found$47, + cst_Unexpected_end_of_input$42 = cst_Unexpected_end_of_input$140, + cst_Expected_but_found$13 = cst_Expected_but_found$53, + cst_Unexpected_end_of_input$43 = cst_Unexpected_end_of_input$140, + cst_Unterminated_comment$0 = cst_Unterminated_comment$5, + cst_Expected_two_objects_check = cst_Expected_two_objects_check$1, + cst_Can_t_convert_each_element = cst_Can_t_convert_each_element$1, + cst_Expected_string_or_null_go = cst_Expected_string_or_null_go$1, + cst_Expected_string_got = cst_Expected_string_got$1, + cst_Expected_array_got = cst_Expected_array_got$1, + cst_Expected_int_or_null_got = cst_Expected_int_or_null_got$1, + cst_Expected_int_got = cst_Expected_int_got$1, + cst_Expected_float_or_null_got = cst_Expected_float_or_null_got$1, + cst_Expected_float_got = cst_Expected_float_got$1, + cst_Expected_number_or_null_go = cst_Expected_number_or_null_go$1, + cst_Expected_number_got = cst_Expected_number_got$1, + cst_Expected_bool_or_null_got = cst_Expected_bool_or_null_got$1, + cst_Expected_bool_got = cst_Expected_bool_got$1, + cst_Expected_object_got = cst_Expected_object_got$1, + cst_Can_t_map_function_over_no = cst_Can_t_map_function_over_no$1, + cst_out_of_bounds = cst_out_of_bounds$1, + cst_Index = cst_Index$1, + cst_of_non_array_type = cst_of_non_array_type$1, + cst_Can_t_get_index = cst_Can_t_get_index$1, + cst_of_non_object_type = cst_of_non_object_type$1, + cst_Can_t_get_member = cst_Can_t_get_member$1, + cst_null$3 = cst_null$9, + cst_object = cst_object$1, + cst_array = cst_array$1, + cst_bool = cst_bool$1, + cst_variant = cst_variant$1, + cst_tuple = cst_tuple$1, + cst_float = cst_float$1, + cst_int = cst_int$1, + cst_intlit = cst_intlit$1, + cst_string = cst_string$1, + cst_Blank_input_data$0 = cst_Blank_input_data$5, + cst_Blank_input_data = cst_Blank_input_data$5, + cst_Junk_after_end_of_JSON_val = cst_Junk_after_end_of_JSON_val$2, + cst_Int8_overflow = cst_Int8_overflow$2, + cst_Int_overflow$0 = cst_Int_overflow$7, + cst_Int_overflow = cst_Int_overflow$7, + _bP_ = [0, [2, 0, [11, cst$92, [2, 0, [2, 0, [12, 39, 0]]]]], cst_s_s_s], + _bO_ = [0, cst_lib_read_mll, 72, 32], + _bN_ = [0, [2, 0, [11, cst$92, [2, 0, [12, 39, 0]]]], cst_s_s], + _bJ_ = [0, [11, cst_File, [2, 0, [11, cst_line, 0]]], cst_File_s_line], + cst_Line = cst_Line$2, + _bK_ = [0, [11, cst_byte, [4, 3, 0, 0, 0]], cst_byte_i], + _bM_ = [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _bp_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bq_= - [0, - [11, - caml_string_of_jsbytes("`List ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`List (@[")], - _br_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes("<2>"),0], - caml_string_of_jsbytes("<2>")]], - [12,91,0]], - caml_string_of_jsbytes("@[<2>[")], - _bt_= - [0, - [17,[0,caml_string_of_jsbytes("@,"),0,0],[12,93,[17,0,0]]], - caml_string_of_jsbytes("@,]@]")], - _bu_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bv_= - [0, - [11, - caml_string_of_jsbytes("`Bool ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Bool (@[")], - _bw_=[0,[9,0,0],caml_string_of_jsbytes("%B")], - _bx_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _by_= - [0, - [11, - caml_string_of_jsbytes("`Float ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Float (@[")], - _bz_=[0,[8,[0,0,5],0,0,0],caml_string_of_jsbytes("%F")], - _bA_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bB_= - [0, - [11, - caml_string_of_jsbytes("`Int ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`Int (@[")], - _bC_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _bD_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bE_= - [0, - [11, - caml_string_of_jsbytes("`String ("), - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0]], - caml_string_of_jsbytes("`String (@[")], - _bF_=[0,[3,0,0],caml_string_of_jsbytes("%S")], - _bG_=[0,[17,0,[12,41,0]],caml_string_of_jsbytes("@])")], - _bS_=[0,737456202,1], - _bT_=[0,737456202,0], - _bP_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[2,0,[12,39,0]]]]], - caml_string_of_jsbytes("%s '%s%s'")], - _bO_=[0,caml_string_of_jsbytes("lib/read.mll"),72,32], - _bN_= - [0, - [2,0,[11,caml_string_of_jsbytes(" '"),[2,0,[12,39,0]]]], - caml_string_of_jsbytes("%s '%s'")], - _bJ_= - [0, - [11, - caml_string_of_jsbytes("File "), - [2,0,[11,caml_string_of_jsbytes(", line"),0]]], - caml_string_of_jsbytes("File %s, line")], - _bK_= - [0, - [11,caml_string_of_jsbytes("byte "),[4,3,0,0,0]], - caml_string_of_jsbytes("byte %i")], - _bM_= - [0, - [11,caml_string_of_jsbytes("bytes "),[4,3,0,0,[12,45,[4,3,0,0,0]]]], - caml_string_of_jsbytes("bytes %i-%i")], - _bL_= + [11, cst_bytes, [4, 3, 0, 0, [12, 45, [4, 3, 0, 0, 0]]]], + cst_bytes_i_i], + _bL_ = [0, [2, 0, - [12, - 32, - [4, - 3, - 0, - 0, - [11, - caml_string_of_jsbytes(", "), - [2,0,[11,caml_string_of_jsbytes(":\n"),[2,0,0]]]]]]], - caml_string_of_jsbytes("%s %i, %s:\n%s")], - _bI_=[0,caml_string_of_jsbytes("lib/read.mll"),44,13], - _bH_=[0,[15,0],caml_string_of_jsbytes("%a")], - _a8_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _a9_= + [12, 32, [4, 3, 0, 0, [11, cst$93, [2, 0, [11, cst$94, [2, 0, 0]]]]]]], + cst_s_i_s_s], + _bI_ = [0, cst_lib_read_mll, 44, 13], + _bH_ = [0, [15, 0], cst_a], + cst_null$2 = cst_null$9, + _a8_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _a9_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _a__=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _a$_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ba_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _a__ = [0, [17, 0, 0], cst$96], + _a$_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _ba_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _bc_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _bc_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _bb_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _bd_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _bb_ = [0, [17, 0, 0], cst$96], + _bd_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _bg_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _bf_=[0,[15,0],caml_string_of_jsbytes("%a")], - _be_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _bg_ = [0, [15, [17, 2, 0]], cst_a$0], + _bf_ = [0, [15, 0], cst_a], + _be_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _a7_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _a5_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _a6_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aO_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aP_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _aQ_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _aR_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _aS_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _aT_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _aU_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _aV_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _aW_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _aX_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _aY_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _aZ_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _a0_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _a1_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _a2_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _a3_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _a4_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _aM_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _aN_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _aJ_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _a7_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + cst_NaN_value_not_allowed_in_s$2 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$5 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$6 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s$1 = cst_NaN_value_not_allowed_in_s$5, + _a5_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _a6_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$4 = cst_0$8, + cst_Infinity_value_not_allowed$3 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$4 = cst_Infinity_value_not_allowed$12, + cst_NaN$2 = cst_NaN$5, + cst_Infinity$5 = cst_Infinity$11, + cst_Infinity$6 = cst_Infinity$12, + _aO_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _aP_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _aQ_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _aR_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _aS_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _aT_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _aU_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _aV_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _aW_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _aX_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _aY_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _aZ_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _a0_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _a1_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _a2_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _a3_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _a4_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$3 = cst_0$8, + cst_NaN$1 = cst_NaN$5, + _aM_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _aN_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$2 = cst_0$8, + cst_Infinity$3 = cst_Infinity$11, + cst_Infinity$4 = cst_Infinity$12, + cst_true$0 = cst_true$3, + cst_false$0 = cst_false$3, + cst_null$1 = cst_null$9, + cst_b$0 = cst_b$3, + cst_t$0 = cst_t$3, + cst_n$0 = cst_n$3, + cst_f$0 = cst_f$3, + cst_r$0 = cst_r$3, + _aJ_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _at_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _au_= + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00$0 = cst_u00$3, + cst_null$0 = cst_null$9, + _at_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _au_ = [0, [12, 123, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], - [15,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,0]]]]], - caml_string_of_jsbytes("{@;<1 0>%a@;<1 -2>}")], - _av_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aw_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _ax_= + [0, cst_1_0, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, 0]]]]], + cst_1_0_a_1_2], + _av_ = [0, [17, 0, 0], cst$96], + _aw_ = [0, [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], 0], cst_hv2$0], + _ax_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _az_= + [1, [0, [11, cst_hov, 0], cst_hov]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hov_a_1_2], + _az_ = [0, [12, 91, [17, - [0,caml_string_of_jsbytes("@;<1 0>"),1,0], + [0, cst_1_0, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15, - [17,0,[17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,0]]]]]]], - caml_string_of_jsbytes("[@;<1 0>@[%a@]@;<1 -2>]")], - _ay_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aA_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - 0], - caml_string_of_jsbytes("@[")], - _aB_= + [1, [0, [11, cst_hv, 0], cst_hv]], + [15, [17, 0, [17, [0, cst_1_2, 1, -2], [12, 93, 0]]]]]]], + cst_1_0_hv_a_1_2], + _ay_ = [0, [17, 0, 0], cst$96], + _aA_ = [0, [18, [1, [0, [11, cst_hov2, 0], cst_hov2]], 0], cst_hov2$0], + _aB_ = [0, [12, 40, - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [15,[17,[0,caml_string_of_jsbytes("@;<0 -2>"),0,-2],[12,41,0]]]]], - caml_string_of_jsbytes("(@,%a@;<0 -2>)")], - _aC_=[0,[17,0,0],caml_string_of_jsbytes("@]")], - _aD_= + [17, [0, cst$87, 0, 0], [15, [17, [0, cst_0_2, 0, -2], [12, 41, 0]]]]], + cst_a_0_2], + _aC_ = [0, [17, 0, 0], cst$96], + _aD_ = [0, [12, 60, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,[12,62,0]]]]]]], - caml_string_of_jsbytes("<@[%s: %a@]>")], - _aE_=[0,[12,60,[2,0,[12,62,0]]],caml_string_of_jsbytes("<%s>")], - _aF_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, [12, 62, 0]]]]]]], + cst_hv2_s_a], + _aE_ = [0, [12, 60, [2, 0, [12, 62, 0]]], cst_s], + _aF_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [2,0,[11,caml_string_of_jsbytes(": "),[15,[17,0,0]]]]], - caml_string_of_jsbytes("@[%s: %a@]")], - _aI_=[0,[15,[17,2,0]],caml_string_of_jsbytes("%a@?")], - _aH_=[0,[15,0],caml_string_of_jsbytes("%a")], - _aG_= + [1, [0, [11, cst_hv2, 0], cst_hv2]], + [2, 0, [11, cst$100, [15, [17, 0, 0]]]]], + cst_hv2_s_a$0], + _aI_ = [0, [15, [17, 2, 0]], cst_a$0], + _aH_ = [0, [15, 0], cst_a], + _aG_ = [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _as_= - [0, - [2,0,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes("%s@ ")], - _ar_=[0,[15,0],caml_string_of_jsbytes("%a")], - _x_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _y_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _g_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _h_=[0,[8,[0,0,3],0,[0,1],0],caml_string_of_jsbytes("%.1g")], - _i_=[0,[8,[0,0,3],0,[0,2],0],caml_string_of_jsbytes("%.2g")], - _j_=[0,[8,[0,0,3],0,[0,3],0],caml_string_of_jsbytes("%.3g")], - _k_=[0,[8,[0,0,3],0,[0,4],0],caml_string_of_jsbytes("%.4g")], - _l_=[0,[8,[0,0,3],0,[0,5],0],caml_string_of_jsbytes("%.5g")], - _m_=[0,[8,[0,0,3],0,[0,6],0],caml_string_of_jsbytes("%.6g")], - _n_=[0,[8,[0,0,3],0,[0,7],0],caml_string_of_jsbytes("%.7g")], - _o_=[0,[8,[0,0,3],0,[0,8],0],caml_string_of_jsbytes("%.8g")], - _p_=[0,[8,[0,0,3],0,[0,9],0],caml_string_of_jsbytes("%.9g")], - _q_=[0,[8,[0,0,3],0,[0,10],0],caml_string_of_jsbytes("%.10g")], - _r_=[0,[8,[0,0,3],0,[0,11],0],caml_string_of_jsbytes("%.11g")], - _s_=[0,[8,[0,0,3],0,[0,12],0],caml_string_of_jsbytes("%.12g")], - _t_=[0,[8,[0,0,3],0,[0,13],0],caml_string_of_jsbytes("%.13g")], - _u_=[0,[8,[0,0,3],0,[0,14],0],caml_string_of_jsbytes("%.14g")], - _v_=[0,[8,[0,0,3],0,[0,15],0],caml_string_of_jsbytes("%.15g")], - _w_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _e_=[0,[8,[0,0,3],0,[0,16],0],caml_string_of_jsbytes("%.16g")], - _f_=[0,[8,[0,0,3],0,[0,17],0],caml_string_of_jsbytes("%.17g")], - _b_= + [18, [1, [0, [11, cst_hv2, 0], cst_hv2]], [15, [17, 0, 0]]], + cst_hv2_a], + _as_ = [0, [2, 0, [17, [0, cst$81, 1, 0], 0]], cst_s$0], + _ar_ = [0, [15, 0], cst_a], + cst_NaN_value_not_allowed_in_s$0 = cst_NaN_value_not_allowed_in_s$5, + cst_Infinity_value_not_allowed$1 = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$2 = cst_Infinity_value_not_allowed$12, + cst_NaN_value_not_allowed_in_s = cst_NaN_value_not_allowed_in_s$5, + _x_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _y_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0$1 = cst_0$8, + cst_Infinity_value_not_allowed = cst_Infinity_value_not_allowed$11, + cst_Infinity_value_not_allowed$0 = cst_Infinity_value_not_allowed$12, + cst_NaN$0 = cst_NaN$5, + cst_Infinity$1 = cst_Infinity$11, + cst_Infinity$2 = cst_Infinity$12, + _g_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + _h_ = [0, [8, [0, 0, 3], 0, [0, 1], 0], cst_1g], + _i_ = [0, [8, [0, 0, 3], 0, [0, 2], 0], cst_2g], + _j_ = [0, [8, [0, 0, 3], 0, [0, 3], 0], cst_3g], + _k_ = [0, [8, [0, 0, 3], 0, [0, 4], 0], cst_4g], + _l_ = [0, [8, [0, 0, 3], 0, [0, 5], 0], cst_5g], + _m_ = [0, [8, [0, 0, 3], 0, [0, 6], 0], cst_6g], + _n_ = [0, [8, [0, 0, 3], 0, [0, 7], 0], cst_7g], + _o_ = [0, [8, [0, 0, 3], 0, [0, 8], 0], cst_8g], + _p_ = [0, [8, [0, 0, 3], 0, [0, 9], 0], cst_9g], + _q_ = [0, [8, [0, 0, 3], 0, [0, 10], 0], cst_10g], + _r_ = [0, [8, [0, 0, 3], 0, [0, 11], 0], cst_11g], + _s_ = [0, [8, [0, 0, 3], 0, [0, 12], 0], cst_12g], + _t_ = [0, [8, [0, 0, 3], 0, [0, 13], 0], cst_13g], + _u_ = [0, [8, [0, 0, 3], 0, [0, 14], 0], cst_14g], + _v_ = [0, [8, [0, 0, 3], 0, [0, 15], 0], cst_15g], + _w_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + cst_0$0 = cst_0$8, + cst_NaN = cst_NaN$5, + _e_ = [0, [8, [0, 0, 3], 0, [0, 16], 0], cst_16g], + _f_ = [0, [8, [0, 0, 3], 0, [0, 17], 0], cst_17g], + cst_0 = cst_0$8, + cst_Infinity = cst_Infinity$11, + cst_Infinity$0 = cst_Infinity$12, + cst_true = cst_true$3, + cst_false = cst_false$3, + cst_null = cst_null$9, + cst_b = cst_b$3, + cst_t = cst_t$3, + cst_n = cst_n$3, + cst_f = cst_f$3, + cst_r = cst_r$3, + _b_ = [0, [11, - caml_string_of_jsbytes("src="), + cst_src, [3, 0, [11, - caml_string_of_jsbytes(" start="), - [4, - 3, - 0, - 0, - [11,caml_string_of_jsbytes(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]], - caml_string_of_jsbytes("src=%S start=%i len=%i\n%!")], - _a_=[0,caml_string_of_jsbytes("common.ml"),57,4]; - function json_error(s){throw [0,Json_error,s]} - var - End_of_array=[248,cst_Yojson_End_of_array,caml_fresh_oo_id(0)], - End_of_object=[248,cst_Yojson_End_of_object,caml_fresh_oo_id(0)], - End_of_tuple=[248,cst_Yojson_End_of_tuple,caml_fresh_oo_id(0)], - End_of_input=[248,cst_Yojson_End_of_input,caml_fresh_oo_id(0)]; - function utf8_of_code(buf,x) - {var add=Stdlib_Buffer[12]; - function maxbits(n,x){return 0 === (x >>> n | 0)?1:0} - if(maxbits(7,x))return caml_call2(add,buf,caml_call1(Stdlib_Char[1],x)); - if(maxbits(11,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],192 | (x >>> 6 | 0) & 31)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(16,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],224 | (x >>> 12 | 0) & 15)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(21,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],240 | (x >>> 18 | 0) & 7)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(maxbits(26,x)) - {caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],248 | (x >>> 24 | 0) & 3)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2 - (add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - if(! maxbits(31,x))throw [0,Assert_failure,_a_]; - caml_call2(add,buf,caml_call1(Stdlib_Char[1],252 | (x >>> 30 | 0) & 1)); - caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 24 | 0) & 63)); - caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 18 | 0) & 63)); - caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 12 | 0) & 63)); - caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | (x >>> 6 | 0) & 63)); - return caml_call2(add,buf,caml_call1(Stdlib_Char[1],128 | x & 63))} - function utf8_of_surrogate_pair(buf,i,j) - {var high10=i - 55296 | 0,low10=j - 56320 | 0; - return utf8_of_code(buf,65536 + (high10 << 10 | low10) | 0)} - var Lexer_state=[0]; - function init_lexer(buf,fname,opt,param) - {if(opt)var sth=opt[1],lnum=sth;else var lnum=1; - if(buf) - var buf$0=buf[1],buf$1=buf$0; - else - var buf$1=caml_call1(Stdlib_Buffer[1],256); - return [0,buf$1,lnum,0,fname]} - function hex(n) - {var _pl_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_pl_)} - function write_special(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string(src,start,ob) - {try - {var - _pk_= - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _pk_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _b_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_pi_=caml_ml_string_length(s) - 1 | 0,_ph_=0; - if(_pi_ >= 0) - {var i=_ph_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special(s,start,i,ob,cst); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special(s,start,i,ob,cst_b);break; - case 1:write_special(s,start,i,ob,cst_t);break; - case 2:write_special(s,start,i,ob,cst_n);break; - case 4:write_special(s,start,i,ob,cst_f);break; - case 5:write_special(s,start,i,ob,cst_r);break; - case 26:write_special(s,start,i,ob,cst$0);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00); - var _pf_=hex(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_pf_); - var _pg_=hex(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_pg_); - start[1] = i + 1 | 0; - break - }} - var _pj_=i + 1 | 0; - if(_pi_ !== i){var i=_pj_;continue} - break}} - finish_string(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null)} - function write_bool(ob,x) - {var _pe_=x?cst_true:cst_false; - return caml_call2(Stdlib_Buffer[16],ob,_pe_)} - var - _c_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _d_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_d_,_c_); - function write_digits(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _pd_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_pd_)} - function write_int(ob,x) - {return 0 < x - ?write_digits(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits(ob,x))} - function float_needs_period(s) - {try - {var _o$_=caml_ml_string_length(s) - 1 | 0,_o__=0; - if(_o$_ >= 0) - {var i=_o__; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(58 > match)switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _pb_=i + 1 | 0; - if(_o$_ !== i){var i=_pb_;continue} - break}} - var _pa_=1; - return _pa_} - catch(_pc_) - {_pc_ = caml_wrap_exception(_pc_); - if(_pc_ === Stdlib[3])return 0; - throw _pc_}} - function write_float(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _o8_=0. < x?cst_Infinity:cst_Infinity$0; - return caml_call2(Stdlib_Buffer[16],ob,_o8_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN); - var - s1=caml_call2(Stdlib_Printf[4],_e_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_f_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _o9_=float_needs_period(s); - return _o9_?caml_call2(Stdlib_Buffer[16],ob,cst_0):_o9_} - function write_normal_float_prec(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_g_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_h_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_i_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_j_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_k_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_l_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_m_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_n_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_o_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_p_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_q_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_r_,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_s_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_t_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_u_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_v_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_w_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _o7_=float_needs_period(s); - return _o7_?caml_call2(Stdlib_Buffer[16],ob,cst_0$0):_o7_} - function write_float_prec(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$0) - :write_normal_float_prec(significant_figures,ob,x); - var _o6_=0. < x?cst_Infinity$1:cst_Infinity$2; - return caml_call2(Stdlib_Buffer[16],ob,_o6_)} - function write_std_float(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _o4_= - 0. < x - ?cst_Infinity_value_not_allowed - :cst_Infinity_value_not_allowed$0; - return json_error(_o4_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s); - var - s1=caml_call2(Stdlib_Printf[4],_x_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_y_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _o5_=float_needs_period(s); - return _o5_?caml_call2(Stdlib_Buffer[16],ob,cst_0$1):_o5_} - function write_std_float_prec(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$0) - :write_normal_float_prec(significant_figures,ob,x); - var - _o3_= - 0. < x - ?cst_Infinity_value_not_allowed$1 - :cst_Infinity_value_not_allowed$2; - return json_error(_o3_)} - var - write_intlit=Stdlib_Buffer[16], - write_floatlit=Stdlib_Buffer[16], - write_stringlit=Stdlib_Buffer[16]; - function iter2(f_elt,f_sep,x,param$0) - {if(! param$0)return 0; - var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(! param)return 0; - var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l}} - function f_sep(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2(write_t,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_t,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2(f_elt,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t(ob,x) - {if(typeof x === "number")return write_null(ob,0); - var _o2_=x[1]; - if(708012133 <= _o2_) - {if(737456202 > _o2_) - {if(726928360 <= _o2_){var l$1=x[2];return write_tuple(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_variant(ob,s$0,o)} - if(928231259 <= _o2_) - {if(963043957 <= _o2_){var l=x[2];return write_assoc(ob,l)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _o2_){var l$0=x[2];return write_list(ob,l$0)} - var b=x[2]; - return write_bool(ob,b)} - if(-752863768 === _o2_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - if(3654863 <= _o2_) - {if(365180284 <= _o2_){var f=x[2];return write_float(ob,f)} - var i=x[2]; - return write_int(ob,i)} - if(-375152890 <= _o2_) - {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} - var s$3=x[2]; - return write_string(ob,s$3)} - function write_std_variant(ob,s,o) - {if(! o)return write_string(ob,s); - var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_tuple(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_std_json,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json(ob,x) - {if(typeof x === "number")return write_null(ob,0); - var _o1_=x[1]; - if(708012133 <= _o1_) - {if(737456202 > _o1_) - {if(726928360 <= _o1_){var l$1=x[2];return write_std_tuple(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_std_variant(ob,s$0,o)} - if(928231259 <= _o1_) - {if(963043957 <= _o1_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2(f_elt,f_sep,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _o1_) - {var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2(write_std_json,f_sep,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - var b=x[2]; - return write_bool(ob,b)} - if(-752863768 === _o1_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - if(3654863 <= _o1_) - {if(365180284 <= _o1_){var f=x[2];return write_std_float(ob,f)} - var i=x[2]; - return write_int(ob,i)} - if(-375152890 <= _o1_) - {var s$2=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$2)} - var s$3=x[2]; - return write_string(ob,s$3)} - function to_buffer(opt,_o0_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$1; - if(_o0_)var sth$0=_o0_[1],std=sth$0;else var std=0; - if(std)write_std_json(ob,x);else write_t(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string(buf,opt,_oZ_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_oZ_)var sth$0=_oZ_[1],suf=sth$0;else var suf=cst$2; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel(buf,opt,_oY_,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_oY_)var sth$0=_oY_[1],suf=sth$0;else var suf=cst$3; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output(buf,opt,_oW_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_oW_)var sth$0=_oW_[1],suf=sth$0;else var suf=cst$4; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer([0,suf],std,ob$0,x); - var _oX_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,1), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _oX_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$5; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel(0,len,[0,suf],std,oc,x); - var _oV_=caml_call1(Stdlib[76],oc); - return _oV_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$6; - var _oS_=[0,suf]; - function _oT_(_oU_){return to_buffer(_oS_,std,ob,_oU_)} - return caml_call2(Stdlib_Seq[4],_oT_,st)} - function seq_to_string(buf,opt,_oR_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_oR_)var sth$0=_oR_[1],suf=sth$0;else var suf=cst$7; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel(buf,opt,_oP_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_oP_)var sth$0=_oP_[1],suf=sth$0;else var suf=cst$8; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _oQ_(json) - {to_buffer([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_oQ_,seq)} - function seq_to_file(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$9; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel(0,len,[0,suf],std,oc,st); - var _oO_=caml_call1(Stdlib[76],oc); - return _oO_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort(x) - {if(typeof x !== "number") - {var _oF_=x[1]; - if(726928361 <= _oF_) - {if(848054398 === _oF_) - {var l=x[2],_oG_=caml_call2(Stdlib_List[21],sort,l); - return [0,848054398,caml_call1(Stdlib_List[9],_oG_)]} - if(963043957 === _oF_) - {var - l$0=x[2], - _oH_= - function(param){var v=param[2],k=param[1];return [0,k,sort(v)]}, - _oI_=caml_call2(Stdlib_List[21],_oH_,l$0), - l$1=caml_call1(Stdlib_List[9],_oI_), - _oJ_= - function(param,_oN_) - {var b=_oN_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_oJ_,l$1)]}} - else - if(708012133 === _oF_) - {var _oK_=x[2],_oL_=_oK_[2]; - if(_oL_) - {var v=_oL_[1],k=_oK_[1],v$0=sort(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _oF_) - {var l$2=x[2],_oM_=caml_call2(Stdlib_List[21],sort,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_oM_)]}} - return x} - function pp(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null); - var _oy_=param[1]; - if(708012133 <= _oy_) - {if(737456202 > _oy_) - {if(726928360 <= _oy_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_T_); - caml_call2(Stdlib_Format[129],fmt,_U_); - var - _oD_=0, - _oE_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_V_); - pp(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_oE_,_oD_,tup); - caml_call2(Stdlib_Format[129],fmt,_W_); - return caml_call2(Stdlib_Format[129],fmt,_X_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_Y_); - caml_call2(Stdlib_Format[129],fmt,_Z_); - caml_call3(Stdlib_Format[129],fmt,___,name); - caml_call2(Stdlib_Format[129],fmt,_$_); - if(value) - {var x$1=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some); - pp(fmt,x$1); - caml_call2(Stdlib_Format[13],fmt,cst$10)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None); - caml_call2(Stdlib_Format[129],fmt,_aa_); - return caml_call2(Stdlib_Format[129],fmt,_ab_)} - if(928231259 <= _oy_) - {if(963043957 <= _oy_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_z_); - caml_call2(Stdlib_Format[129],fmt,_A_); - var - _oz_=0, - _oA_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_B_); - caml_call2(Stdlib_Format[129],fmt,_C_); - caml_call3(Stdlib_Format[129],fmt,_D_,key); - caml_call2(Stdlib_Format[129],fmt,_E_); - pp(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_F_); - return 1}; - caml_call3(Stdlib_List[25],_oA_,_oz_,xs); - caml_call2(Stdlib_Format[129],fmt,_G_); - return caml_call2(Stdlib_Format[129],fmt,_H_)} - var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_I_); - caml_call3(Stdlib_Format[129],fmt,_J_,x); - return caml_call2(Stdlib_Format[129],fmt,_K_)} - if(848054398 <= _oy_) - {var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_L_); - caml_call2(Stdlib_Format[129],fmt,_M_); - var - _oB_=0, - _oC_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_N_); - pp(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_oC_,_oB_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_O_); - return caml_call2(Stdlib_Format[129],fmt,_P_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_Q_); - caml_call3(Stdlib_Format[129],fmt,_R_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_S_)} - if(-752863768 === _oy_) - {var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ac_); - caml_call3(Stdlib_Format[129],fmt,_ad_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_ae_)} - if(3654863 <= _oy_) - {if(365180284 <= _oy_) - {var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_af_); - caml_call3(Stdlib_Format[129],fmt,_ag_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_ah_)} - var x$4=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ai_); - caml_call3(Stdlib_Format[129],fmt,_aj_,x$4); - return caml_call2(Stdlib_Format[129],fmt,_ak_)} - if(-375152890 <= _oy_) - {var x$5=param[2]; - caml_call2(Stdlib_Format[129],fmt,_al_); - caml_call3(Stdlib_Format[129],fmt,_am_,x$5); - return caml_call2(Stdlib_Format[129],fmt,_an_)} - var x$6=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ao_); - caml_call3(Stdlib_Format[129],fmt,_ap_,x$6); - return caml_call2(Stdlib_Format[129],fmt,_aq_)} - function show(x){return caml_call3(Stdlib_Format[133],_ar_,pp,x)} - function equal(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _or_=a$0[1]; - if(708012133 <= _or_) - {var switch$0=0; - if(848054398 <= _or_) - {if(928231259 === _or_) - {if(typeof b$0 !== "number" && 928231259 === b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if(963043957 === _or_) - {if(typeof b$0 !== "number" && 963043957 === b$0[1]) - {var - ys=b$0[2], - xs=a$0[2], - compare_keys= - function(param,_ox_) - {var key=_ox_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), - ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); - try - {var - _os_= - function(param,_ow_) - {var - value=_ow_[2], - key=_ow_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal(value$0,value):0}, - result=caml_call3(Stdlib_List[34],_os_,xs$0,ys$0); - return result} - catch(_ov_) - {_ov_ = caml_wrap_exception(_ov_); - if(_ov_[1] === Stdlib[6])return 0; - throw _ov_}}} - else - if - (848054399 - > - _or_ - && - typeof b$0 - !== - "number" - && - 848054398 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(726928360 === _or_) - {if(typeof b$0 !== "number" && 726928360 === b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(737456202 === _or_) - {if(typeof b$0 !== "number" && 737456202 === b$0[1]) - {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} - else - if - (708012134 - > - _or_ - && - typeof b$0 - !== - "number" - && - 708012133 - === - b$0[1]) - {var - _ot_=b$0[2], - value=_ot_[2], - name=_ot_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(! match$0)return 0; - if(value$0) - {if(value) - {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} - else - if(! value)return 1; - return 0} - if(switch$0) - try - {var result$0=caml_call3(Stdlib_List[34],equal,xs$1,ys$1); - return result$0} - catch(_ou_) - {_ou_ = caml_wrap_exception(_ou_); - if(_ou_[1] === Stdlib[6])return 0; - throw _ou_}} - else - if(-375152890 <= _or_) - {if(3654863 === _or_) - {if(typeof b$0 !== "number" && 3654863 === b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if(365180284 === _or_) - {if(typeof b$0 !== "number" && 365180284 === b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} - else - if - (-375152889 - > - _or_ - && - typeof b$0 - !== - "number" - && - -375152890 - === - b$0[1]) - {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} - else - if(-976970511 === _or_) - {if(typeof b$0 !== "number" && -976970511 === b$0[1]) - {var b$7=b$0[2],a$7=a$0[2];return caml_equal(a$7,b$7)}} - else - if - (-752863768 - === - _or_ - && - typeof b$0 - !== - "number" - && - -752863768 - === - b$0[1]) - {var b$8=b$0[2],a$8=a$0[2];return caml_equal(a$8,b$8)}} - return 0}} - function pp_list(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_as_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom(x) - {if(typeof x !== "number") - {var _oq_=x[1],switch$0=0; - if(737456202 <= _oq_) - {if(848054398 === _oq_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _oq_ && x[2])switch$0 = 1} - else - if(708012133 === _oq_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _oq_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$0); - var _nJ_=x$0[1]; - if(708012133 > _nJ_) - {if(-752863768 === _nJ_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - if(3654863 <= _nJ_) - {if(365180284 > _nJ_) - {var x$7=x$0[2],_nI_=caml_call1(Stdlib[33],x$7); - return caml_call2(Stdlib_Format[13],out,_nI_)} - var x$6=x$0[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float(ob$0,x$6); - var s$1=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float(ob,x$6); - var s$1=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s$1)} - if(-375152890 <= _nJ_) - {var s$2=x$0[2];return caml_call2(Stdlib_Format[13],out,s$2)} - var s$3=x$0[2],_n6_=json_string_of_string(s$3); - return caml_call2(Stdlib_Format[13],out,_n6_)} - if(737456202 <= _nJ_) - {if(928231259 <= _nJ_) - {if(963043957 > _nJ_) - {var s=x$0[2];return caml_call2(Stdlib_Format[13],out,s)} - var _nK_=x$0[2]; - if(! _nK_)return caml_call2(Stdlib_Format[13],out,cst$12); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_at_); - var - _nL_= - function(out,param) - {var x=param[2],name=param[1],_ol_=1; - function _om_(_oo_,_op_){return format(_ol_,std,_oo_,_op_)} - var _on_=json_string_of_string(name); - return caml_call5(Stdlib_Format[129],out,_aF_,_on_,_om_,x)}, - _nM_=function(_oj_,_ok_){return pp_list(cst$11,_nL_,_oj_,_ok_)}; - caml_call4(Stdlib_Format[129],out,_au_,_nM_,_nK_); - var _nN_=1 - inside_box; - return _nN_?caml_call2(Stdlib_Format[129],out,_av_):_nN_} - if(848054398 > _nJ_) - {var x$1=x$0[2];return caml_call2(Stdlib_Format[25],out,x$1)} - var _nO_=x$0[2]; - if(! _nO_)return caml_call2(Stdlib_Format[13],out,cst$15); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aw_); - if(caml_call2(Stdlib_List[32],is_atom,_nO_)) - {var - _nP_=0, - _nQ_=function(_od_,_oe_){return format(_nP_,std,_od_,_oe_)}, - _nR_=function(_ob_,_oc_){return pp_list(cst$13,_nQ_,_ob_,_oc_)}; - caml_call4(Stdlib_Format[129],out,_ax_,_nR_,_nO_)} - else - {var - _nT_=0, - _nU_=function(_oh_,_oi_){return format(_nT_,std,_oh_,_oi_)}, - _nV_=function(_of_,_og_){return pp_list(cst$14,_nU_,_of_,_og_)}; - caml_call4(Stdlib_Format[129],out,_az_,_nV_,_nO_)} - var _nS_=1 - inside_box; - return _nS_?caml_call2(Stdlib_Format[129],out,_ay_):_nS_} - if(726928360 <= _nJ_) - {var l=x$0[2]; - if(std){var x$2=[0,848054398,l],x$0=x$2;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$16); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_aA_); - var - _nW_=0, - _nX_=function(_n$_,_oa_){return format(_nW_,std,_n$_,_oa_)}, - _nY_=function(_n9_,_n__){return pp_list(cst$17,_nX_,_n9_,_n__)}; - caml_call4(Stdlib_Format[129],out,_aB_,_nY_,l); - var _nZ_=1 - inside_box; - return _nZ_?caml_call2(Stdlib_Format[129],out,_aC_):_nZ_} - var _n0_=x$0[2],_n1_=_n0_[2],_n2_=_n0_[1]; - if(_n1_) - {var x$3=_n1_[1]; - if(std) - {var - representation=[0,-976970511,_n2_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string(_n2_), - _n3_=1, - _n4_=function(_n7_,_n8_){return format(_n3_,std,_n7_,_n8_)}; - return caml_call5(Stdlib_Format[129],out,_aD_,op,_n4_,x$3)} - if(std){var x$5=[0,-976970511,_n2_],x$0=x$5;continue} - var _n5_=json_string_of_string(_n2_); - return caml_call3(Stdlib_Format[129],out,_aE_,_n5_)}} - function pp$0(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _nE_=1; - function _nF_(_nG_,_nH_){return format(_nE_,std,_nG_,_nH_)} - return caml_call4(Stdlib_Format[129],out,_aG_,_nF_,x)} - function pretty_print(std,out,x){return pp$0(std,out,x)} - function pretty_to_string(std,x) - {function _nB_(_nC_,_nD_){return pp$0(std,_nC_,_nD_)} - return caml_call3(Stdlib_Format[133],_aH_,_nB_,x)} - function pretty_to_channel(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _ny_(_nz_,_nA_){return pp$0(std,_nz_,_nA_)} - return caml_call4(Stdlib_Format[129],fmt,_aI_,_ny_,x)} - function hex$0(n) - {var _nx_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_nx_)} - function write_special$0(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$0(src,start,ob) - {try - {var - _nw_= - caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _nw_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _aJ_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$0(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_nu_=caml_ml_string_length(s) - 1 | 0,_nt_=0; - if(_nu_ >= 0) - {var i=_nt_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$0(s,start,i,ob,cst$18); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$0(s,start,i,ob,cst_b$0);break; - case 1:write_special$0(s,start,i,ob,cst_t$0);break; - case 2:write_special$0(s,start,i,ob,cst_n$0);break; - case 4:write_special$0(s,start,i,ob,cst_f$0);break; - case 5:write_special$0(s,start,i,ob,cst_r$0);break; - case 26:write_special$0(s,start,i,ob,cst$19);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$0); - var _nr_=hex$0(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_nr_); - var _ns_=hex$0(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_ns_); - start[1] = i + 1 | 0; - break - }} - var _nv_=i + 1 | 0; - if(_nu_ !== i){var i=_nv_;continue} - break}} - finish_string$0(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$0(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$0(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$0(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$1)} - function write_bool$0(ob,x) - {var _nq_=x?cst_true$0:cst_false$0; - return caml_call2(Stdlib_Buffer[16],ob,_nq_)} - var - _aK_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _aL_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_aL_,_aK_); - function write_digits$0(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits$0(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _np_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_np_)} - function write_int$0(ob,x) - {return 0 < x - ?write_digits$0(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$0(ob,x))} - function float_needs_period$0(s) - {try - {var _nl_=caml_ml_string_length(s) - 1 | 0,_nk_=0; - if(_nl_ >= 0) - {var i=_nk_; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(58 > match)switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _nn_=i + 1 | 0; - if(_nl_ !== i){var i=_nn_;continue} - break}} - var _nm_=1; - return _nm_} - catch(_no_) - {_no_ = caml_wrap_exception(_no_); - if(_no_ === Stdlib[3])return 0; - throw _no_}} - function write_float$0(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _ni_=0. < x?cst_Infinity$3:cst_Infinity$4; - return caml_call2(Stdlib_Buffer[16],ob,_ni_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$1); - var - s1=caml_call2(Stdlib_Printf[4],_aM_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_aN_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _nj_=float_needs_period$0(s); - return _nj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$2):_nj_} - function write_normal_float_prec$0(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_aO_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_aP_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_aQ_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_aR_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_aS_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_aT_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_aU_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_aV_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_aW_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_aX_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_aY_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_aZ_,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_a0_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_a1_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_a2_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_a3_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_a4_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _nh_=float_needs_period$0(s); - return _nh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$3):_nh_} - function write_float_prec$0(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$2) - :write_normal_float_prec$0(significant_figures,ob,x); - var _ng_=0. < x?cst_Infinity$5:cst_Infinity$6; - return caml_call2(Stdlib_Buffer[16],ob,_ng_)} - function write_std_float$0(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _ne_= - 0. < x - ?cst_Infinity_value_not_allowed$3 - :cst_Infinity_value_not_allowed$4; - return json_error(_ne_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$1); - var - s1=caml_call2(Stdlib_Printf[4],_a5_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_a6_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _nf_=float_needs_period$0(s); - return _nf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$4):_nf_} - function write_std_float_prec$0(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$2) - :write_normal_float_prec$0(significant_figures,ob,x); - var - _nd_= - 0. < x - ?cst_Infinity_value_not_allowed$5 - :cst_Infinity_value_not_allowed$6; - return json_error(_nd_)} - function iter2$0(f_elt,f_sep,x,param$0) - {if(! param$0)return 0; - var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(! param)return 0; - var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l}} - function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_list$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$0(write_t$0,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$0(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$0(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$0(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$0(f_elt,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$0(ob,x) - {if(typeof x === "number")return write_null$0(ob,0); - var _nc_=x[1]; - if(365180284 > _nc_) - {if(3654863 <= _nc_){var i=x[2];return write_int$0(ob,i)} - var s=x[2]; - return write_string$0(ob,s)} - if(848054398 <= _nc_) - {if(963043957 <= _nc_){var l=x[2];return write_assoc$0(ob,l)} - var l$0=x[2]; - return write_list$0(ob,l$0)} - if(737456202 <= _nc_){var b=x[2];return write_bool$0(ob,b)} - var f=x[2]; - return write_float$0(ob,f)} - function write_std_json$0(ob,x) - {if(typeof x === "number")return write_null$0(ob,0); - var _nb_=x[1]; - if(365180284 > _nb_) - {if(3654863 <= _nb_){var i=x[2];return write_int$0(ob,i)} - var s=x[2]; - return write_string$0(ob,s)} - if(848054398 <= _nb_) - {if(963043957 <= _nb_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$0(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$0(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$0(f_elt,f_sep$0,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$0(write_std_json$0,f_sep$0,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - if(737456202 <= _nb_){var b=x[2];return write_bool$0(ob,b)} - var f=x[2]; - return write_std_float$0(ob,f)} - function to_buffer$0(opt,_na_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$20; - if(_na_)var sth$0=_na_[1],std=sth$0;else var std=0; - if(std)write_std_json$0(ob,x);else write_t$0(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$0(buf,opt,_m$_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_m$_)var sth$0=_m$_[1],suf=sth$0;else var suf=cst$21; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$0(buf,opt,_m__,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_m__)var sth$0=_m__[1],suf=sth$0;else var suf=cst$22; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$0(buf,opt,_m8_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_m8_)var sth$0=_m8_[1],suf=sth$0;else var suf=cst$23; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$0([0,suf],std,ob$0,x); - var _m9_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,2), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _m9_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$0(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$24; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$0(0,len,[0,suf],std,oc,x); - var _m7_=caml_call1(Stdlib[76],oc); - return _m7_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$0(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$25; - var _m4_=[0,suf]; - function _m5_(_m6_){return to_buffer$0(_m4_,std,ob,_m6_)} - return caml_call2(Stdlib_Seq[4],_m5_,st)} - function seq_to_string$0(buf,opt,_m3_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_m3_)var sth$0=_m3_[1],suf=sth$0;else var suf=cst$26; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$0([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$0(buf,opt,_m1_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_m1_)var sth$0=_m1_[1],suf=sth$0;else var suf=cst$27; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _m2_(json) - {to_buffer$0([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_m2_,seq)} - function seq_to_file$0(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$28; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$0(0,len,[0,suf],std,oc,st); - var _m0_=caml_call1(Stdlib[76],oc); - return _m0_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$0(x) - {if(typeof x !== "number") - {var _mU_=x[1]; - if(848054398 === _mU_) - {var l=x[2],_mV_=caml_call2(Stdlib_List[21],sort$0,l); - return [0,848054398,caml_call1(Stdlib_List[9],_mV_)]} - if(963043957 === _mU_) - {var - l$0=x[2], - _mW_= - function(param){var v=param[2],k=param[1];return [0,k,sort$0(v)]}, - _mX_=caml_call2(Stdlib_List[21],_mW_,l$0), - l$1=caml_call1(Stdlib_List[9],_mX_), - _mY_= - function(param,_mZ_) - {var b=_mZ_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_mY_,l$1)]}} - return x} - function pp_list$0(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_a7_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$0(x) - {if(typeof x !== "number") - {var _mT_=x[1],switch$0=0; - if(737456202 <= _mT_) - {if(848054398 === _mT_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _mT_ && x[2])switch$0 = 1} - else - if(708012133 === _mT_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _mT_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$0(inside_box,std,out,x) - {if(typeof x === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$2); - var _mq_=x[1]; - if(365180284 > _mq_) - {if(3654863 <= _mq_) - {var x$2=x[2],_mp_=caml_call1(Stdlib[33],x$2); - return caml_call2(Stdlib_Format[13],out,_mp_)} - var s$0=x[2],_mD_=json_string_of_string$0(s$0); - return caml_call2(Stdlib_Format[13],out,_mD_)} - if(848054398 > _mq_) - {if(737456202 <= _mq_) - {var x$0=x[2];return caml_call2(Stdlib_Format[25],out,x$0)} - var x$1=x[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float$0(ob$0,x$1); - var s=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float$0(ob,x$1); - var s=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s)} - if(963043957 <= _mq_) - {var _mr_=x[2]; - if(! _mr_)return caml_call2(Stdlib_Format[13],out,cst$30); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a8_); - var - _ms_= - function(out,param) - {var x=param[2],name=param[1],_mO_=1; - function _mP_(_mR_,_mS_){return format$0(_mO_,std,_mR_,_mS_)} - var _mQ_=json_string_of_string$0(name); - return caml_call5(Stdlib_Format[129],out,_bd_,_mQ_,_mP_,x)}, - _mt_=function(_mM_,_mN_){return pp_list$0(cst$29,_ms_,_mM_,_mN_)}; - caml_call4(Stdlib_Format[129],out,_a9_,_mt_,_mr_); - var _mu_=1 - inside_box; - return _mu_?caml_call2(Stdlib_Format[129],out,_a__):_mu_} - var _mv_=x[2]; - if(! _mv_)return caml_call2(Stdlib_Format[13],out,cst$33); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_a$_); - if(caml_call2(Stdlib_List[32],is_atom$0,_mv_)) - {var - _mw_=0, - _mx_=function(_mG_,_mH_){return format$0(_mw_,std,_mG_,_mH_)}, - _my_=function(_mE_,_mF_){return pp_list$0(cst$31,_mx_,_mE_,_mF_)}; - caml_call4(Stdlib_Format[129],out,_ba_,_my_,_mv_)} - else - {var - _mA_=0, - _mB_=function(_mK_,_mL_){return format$0(_mA_,std,_mK_,_mL_)}, - _mC_=function(_mI_,_mJ_){return pp_list$0(cst$32,_mB_,_mI_,_mJ_)}; - caml_call4(Stdlib_Format[129],out,_bc_,_mC_,_mv_)} - var _mz_=1 - inside_box; - return _mz_?caml_call2(Stdlib_Format[129],out,_bb_):_mz_} - function pp$1(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _ml_=1; - function _mm_(_mn_,_mo_){return format$0(_ml_,std,_mn_,_mo_)} - return caml_call4(Stdlib_Format[129],out,_be_,_mm_,x)} - function pp$2(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$0); - var _mg_=param[1]; - if(365180284 > _mg_) - {if(3654863 <= _mg_) - {var x$1=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bB_); - caml_call3(Stdlib_Format[129],fmt,_bC_,x$1); - return caml_call2(Stdlib_Format[129],fmt,_bD_)} - var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bE_); - caml_call3(Stdlib_Format[129],fmt,_bF_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_bG_)} - if(848054398 <= _mg_) - {if(963043957 <= _mg_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bh_); - caml_call2(Stdlib_Format[129],fmt,_bi_); - var - _mh_=0, - _mi_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_bj_); - caml_call2(Stdlib_Format[129],fmt,_bk_); - caml_call3(Stdlib_Format[129],fmt,_bl_,key); - caml_call2(Stdlib_Format[129],fmt,_bm_); - pp$2(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_bn_); - return 1}; - caml_call3(Stdlib_List[25],_mi_,_mh_,xs); - caml_call2(Stdlib_Format[129],fmt,_bo_); - return caml_call2(Stdlib_Format[129],fmt,_bp_)} - var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bq_); - caml_call2(Stdlib_Format[129],fmt,_br_); - var - _mj_=0, - _mk_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_bs_); - pp$2(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_mk_,_mj_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_bt_); - return caml_call2(Stdlib_Format[129],fmt,_bu_)} - if(737456202 <= _mg_) - {var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_bv_); - caml_call3(Stdlib_Format[129],fmt,_bw_,x); - return caml_call2(Stdlib_Format[129],fmt,_bx_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_by_); - caml_call3(Stdlib_Format[129],fmt,_bz_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_bA_)} - function show$0(x){return caml_call3(Stdlib_Format[133],_bH_,pp$2,x)} - function equal$0(a,b) - {if(typeof a === "number") - {if(870828711 === a && 870828711 === b)return 1} - else - {var _ma_=a[1]; - if(365180285 <= _ma_) - {if(737456202 === _ma_) - {if(typeof b !== "number" && 737456202 === b[1]) - {var b$0=b[2],a$0=a[2];return caml_equal(a$0,b$0)}} - else - if(848054398 === _ma_) - {if(typeof b !== "number" && 848054398 === b[1]) - {var ys=b[2],xs=a[2]; - try - {var result=caml_call3(Stdlib_List[34],equal$0,xs,ys); - return result} - catch(_mc_) - {_mc_ = caml_wrap_exception(_mc_); - if(_mc_[1] === Stdlib[6])return 0; - throw _mc_}}} - else - if - (963043957 - === - _ma_ - && - typeof b - !== - "number" - && - 963043957 - === - b[1]) - {var - ys$0=b[2], - xs$0=a[2], - compare_keys= - function(param,_mf_) - {var key=_mf_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), - ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); - try - {var - _mb_= - function(param,_me_) - {var - value=_me_[2], - key=_me_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$0(value$0,value):0}, - result$0=caml_call3(Stdlib_List[34],_mb_,xs$1,ys$1); - return result$0} - catch(_md_) - {_md_ = caml_wrap_exception(_md_); - if(_md_[1] === Stdlib[6])return 0; - throw _md_}}} - else - if(-976970511 === _ma_) - {if(typeof b !== "number" && -976970511 === b[1]) - {var b$1=b[2],a$1=a[2];return caml_equal(a$1,b$1)}} - else - if(3654863 === _ma_) - {if(typeof b !== "number" && 3654863 === b[1]) - {var b$2=b[2],a$2=a[2];return caml_equal(a$2,b$2)}} - else - if - (365180284 <= _ma_ && typeof b !== "number" && 365180284 === b[1]) - {var b$3=b[2],a$3=a[2];return caml_equal(a$3,b$3)}} - return 0} - function pretty_print$0(std,out,x){return pp$1(std,out,x)} - function pretty_to_string$0(std,x) - {function _l9_(_l__,_l$_){return pp$1(std,_l__,_l$_)} - return caml_call3(Stdlib_Format[133],_bf_,_l9_,x)} - function pretty_to_channel$0(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _l6_(_l7_,_l8_){return pp$1(std,_l7_,_l8_)} - return caml_call4(Stdlib_Format[129],fmt,_bg_,_l6_,x)} - var - from_channel=Stdlib_Lexing[2], - from_string=Stdlib_Lexing[3], - lexeme=Stdlib_Lexing[8], - sub_lexeme=Stdlib_Lexing[16], - sub_lexeme_char=Stdlib_Lexing[18]; - function hex$1(c) - {if(65 <= c) - {if(97 <= c) - {if(103 > c)return (c - 97 | 0) + 10 | 0} - else - if(71 > c)return (c - 65 | 0) + 10 | 0} - else - if(9 >= c - 48 >>> 0)return c - 48 | 0; - throw [0,Assert_failure,_bI_]} - function custom_error(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _l5_=v[4]; - if(_l5_) - var s=_l5_[1],file_line=caml_call2(Stdlib_Printf[4],_bJ_,s); - else - var file_line=cst_Line; - var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_bK_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_bM_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_bL_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error(descr,v,lexbuf) - {var _l4_=caml_call1(lexeme,lexbuf); - return custom_error - (caml_call3(Stdlib_Printf[4],_bN_,descr,_l4_),v,lexbuf)} - var read_junk=[0,function(param){throw [0,Assert_failure,_bO_]}]; - function long_error(descr,v,lexbuf) - {var - junk=caml_call1(lexeme,lexbuf), - extra_junk=caml_call1(read_junk[1],lexbuf); - return custom_error - (caml_call4(Stdlib_Printf[4],_bP_,descr,junk,extra_junk), - v, - lexbuf)} - var - _bQ_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10=(Stdlib[20] / 10 | 0) - _bQ_ | 0, - _bR_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10=(Stdlib[19] / 10 | 0) + _bR_ | 0, - Int_overflow=[248,cst_Yojson_Basic_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _l1_=stop - 1 | 0; - if(_l1_ >= start) - {var i=start; - for(;;) - {if(max10 <= n[1])throw Int_overflow; - var _l2_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _l2_ | 0; - var _l3_=i + 1 | 0; - if(_l1_ !== i){var i=_l3_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow} - function extract_negative_int(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _lY_=stop - 1 | 0; - if(_lY_ >= start) - {var i=start; - for(;;) - {if(n[1] <= min10)throw Int_overflow; - var _lZ_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _lZ_ | 0; - var _l0_=i + 1 | 0; - if(_lY_ !== i){var i=_l0_;continue} - break}} - if(0 < n[1])throw Int_overflow; - return n[1]} - function newline(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$2(counter,v,lexbuf) - {var _lX_=0; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_read_json_rec,[0,v,lexbuf,_lX_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec(counter$0,v,lexbuf,_lX_)} - function ocaml_lex_read_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _bS_; - case 1:return _bT_; - case 2:return 870828711; - case 3:return [0,365180284,Stdlib[24]]; - case 4:return [0,365180284,Stdlib[22]]; - case 5:return [0,365180284,Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8],v[1]); - return [0,-976970511,finish_string$1(v,lexbuf)]; - case 7: - try - {var _lN_=[0,3654863,extract_positive_int(lexbuf)];return _lN_} - catch(_lW_) - {_lW_ = caml_wrap_exception(_lW_); - if(_lW_ === Int_overflow) - return lexer_error(cst_Int_overflow,v,lexbuf); - throw _lW_} - case 8: - try - {var _lO_=[0,3654863,extract_negative_int(lexbuf)];return _lO_} - catch(_lV_) - {_lV_ = caml_wrap_exception(_lV_); - if(_lV_ === Int_overflow) - return lexer_error(cst_Int_overflow$0,v,lexbuf); - throw _lV_} - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme,lexbuf))]; - case 10: - var acc=[0,0]; - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - var field_name=read_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - var _lP_=acc[1]; - acc[1] = [0,[0,field_name,read_json(v,lexbuf)],_lP_]; - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - var field_name$0=read_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - var _lQ_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json(v,lexbuf)],_lQ_]}} - catch(_lU_) - {_lU_ = caml_wrap_exception(_lU_); - if(_lU_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _lU_} - case 11: - var acc$0=[0,0]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - var _lR_=acc$0[1]; - acc$0[1] = [0,read_json(v,lexbuf),_lR_]; - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - var _lS_=acc$0[1]; - acc$0[1] = [0,read_json(v,lexbuf),_lS_]}} - catch(_lT_) - {_lT_ = caml_wrap_exception(_lT_); - if(_lT_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _lT_} - case 12:return long_error(cst_Invalid_token,v,lexbuf); - case 13:return long_error(cst_Invalid_token$0,v,lexbuf); - case 14: - if(counter >= 50) - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return read_json$2(counter$0,v,lexbuf); - case 15: - finish_comment(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return read_json$2(counter$1,v,lexbuf); - case 16: - newline(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return read_json$2(counter$2,v,lexbuf); - case 17: - if(counter >= 50) - return caml_trampoline_return(read_json$2,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return read_json$2(counter$3,v,lexbuf); - case 18:return custom_error(cst_Unexpected_end_of_input,v,lexbuf); - default:return long_error(cst_Invalid_token$1,v,lexbuf)}}} - function read_json(v,lexbuf) - {return caml_trampoline(read_json$2(0,v,lexbuf))} - function finish_string$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char(v,lexbuf);continue a; - case 2:add_lexeme(v[1],lexbuf);continue a; - default: - return custom_error(cst_Unexpected_end_of_input$0,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function map_string(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_lM_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_lM_); - case 1:finish_escaped_char(v,lexbuf);continue a; - case 2:add_lexeme(v[1],lexbuf);continue a; - default: - return custom_error(cst_Unexpected_end_of_input$1,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function finish_escaped_char(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: - var - a=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), - _lG_=hex$1(d), - _lH_=hex$1(c$0) << 4, - _lI_=hex$1(b) << 8, - x=hex$1(a) << 12 | _lI_ | _lH_ | _lG_; - if(55296 <= x && 56319 >= x) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char,lexbuf,lexbuf[5] + 5 | 0), - _lJ_=hex$1(d$0), - _lK_=hex$1(c$1) << 4, - _lL_=hex$1(b$0) << 8, - y=hex$1(a$0) << 12 | _lL_ | _lK_ | _lJ_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error(cst_Invalid_low_surrogate_for_,v,lexbuf); - case 1: - return long_error(cst_Missing_escape_sequence_re,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$3,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error(cst_Invalid_escape_sequence,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$2,v,lexbuf)}}} - function finish_stringlit(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var - len=lexbuf[6] - lexbuf[5] | 0, - s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error(cst_Invalid_string_literal,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$4,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_variant(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var x=read_json(v,lexbuf); - read_space(v,lexbuf); - read_gt(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error(cst_Expected_or_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$5,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lt(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$6,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_gt(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$7,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_comma(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$1,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$8,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_variant(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error(cst_Expected_or_but_found$0,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$9,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_comment(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Unterminated_comment,v,lexbuf); - case 2:newline(v,lexbuf);continue a; - default:continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_eof(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_space(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:newline(v,lexbuf);continue a; - case 1:finish_comment(v,lexbuf);continue a; - case 2:newline(v,lexbuf);continue a; - case 3:continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_null(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_null_but_found,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$10,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_null_if_possible(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_bool(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4:return long_error(cst_Expected_true_or_false_but,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$11,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_int_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _lA_=extract_positive_int(lexbuf);return _lA_} - catch(_lF_) - {_lF_ = caml_wrap_exception(_lF_); - if(_lF_ === Int_overflow) - return lexer_error(cst_Int_overflow$1,v,lexbuf); - throw _lF_} + cst_start, + [4, 3, 0, 0, [11, cst_len, [4, 3, 0, 0, [12, 10, [10, 0]]]]]]]], + cst_src_S_start_i_len_i], + cst_u00 = cst_u00$3, + _a_ = [0, "common.ml", 57, 4], + cst_Yojson_End_of_array = "Yojson.End_of_array", + cst_Yojson_End_of_object = "Yojson.End_of_object", + cst_Yojson_End_of_tuple = "Yojson.End_of_tuple", + cst_Yojson_End_of_input = "Yojson.End_of_input", + cst_Yojson_Basic_Int_overflow = "Yojson.Basic.Int_overflow", + cst_Yojson_Basic_Finally = "Yojson.Basic.Finally", + cst_Yojson_Basic_Util_Type_err = "Yojson.Basic.Util.Type_error", + cst_Yojson_Basic_Util_Undefine = "Yojson.Basic.Util.Undefined", + cst_Yojson_Safe_Int_overflow = "Yojson.Safe.Int_overflow", + cst_Yojson_Safe_Finally = "Yojson.Safe.Finally", + cst_Yojson_Safe_Util_Type_erro = "Yojson.Safe.Util.Type_error", + cst_Yojson_Safe_Util_Undefined = "Yojson.Safe.Util.Undefined", + cst_Yojson_Raw_Int_overflow = "Yojson.Raw.Int_overflow", + cst_Yojson_Raw_Finally = "Yojson.Raw.Finally"; + function json_error(s){ + throw caml_maybe_attach_backtrace([0, Json_error, s], 1); + } + var + End_of_array = [248, cst_Yojson_End_of_array, caml_fresh_oo_id(0)], + End_of_object = [248, cst_Yojson_End_of_object, caml_fresh_oo_id(0)], + End_of_tuple = [248, cst_Yojson_End_of_tuple, caml_fresh_oo_id(0)], + End_of_input = [248, cst_Yojson_End_of_input, caml_fresh_oo_id(0)]; + function utf8_of_code(buf, x){ + var add = Stdlib_Buffer[12]; + function maxbits(n, x){return 0 === (x >>> n | 0) ? 1 : 0;} + if(maxbits(7, x)) + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], x)); + if(maxbits(11, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 192 | (x >>> 6 | 0) & 31)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(16, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 224 | (x >>> 12 | 0) & 15)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(21, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 240 | (x >>> 18 | 0) & 7)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(maxbits(26, x)){ + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 248 | (x >>> 24 | 0) & 3)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + if(! maxbits(31, x)) + throw caml_maybe_attach_backtrace([0, Assert_failure, _a_], 1); + caml_call2(add, buf, caml_call1(Stdlib_Char[1], 252 | (x >>> 30 | 0) & 1)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 24 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 18 | 0) & 63)); + caml_call2 + (add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 12 | 0) & 63)); + caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | (x >>> 6 | 0) & 63)); + return caml_call2(add, buf, caml_call1(Stdlib_Char[1], 128 | x & 63)); + } + function utf8_of_surrogate_pair(buf, i, j){ + var high10 = i - 55296 | 0, low10 = j - 56320 | 0; + return utf8_of_code(buf, 65536 + (high10 << 10 | low10) | 0); + } + var Lexer_state = [0]; + function init_lexer(buf, fname, opt, param){ + if(opt) var sth = opt[1], lnum = sth; else var lnum = 1; + if(buf) + var buf$0 = buf[1], buf$1 = buf$0; + else + var buf$1 = caml_call1(Stdlib_Buffer[1], 256); + return [0, buf$1, lnum, 0, fname]; + } + function hex(n){ + var _pO_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _pO_); + } + function write_special(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _pM_ = caml_ml_string_length(src) - 1 | 0, _pL_ = 0; + if(_pM_ >= 0){ + var stop = _pL_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special(src, start, stop, ob, cst); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special(src, start, stop, ob, cst_b); break; case 1: - try - {var _lB_=extract_negative_int(lexbuf);return _lB_} - catch(_lE_) - {_lE_ = caml_wrap_exception(_lE_); - if(_lE_ === Int_overflow) - return lexer_error(cst_Int_overflow$2,v,lexbuf); - throw _lE_} + write_special(src, start, stop, ob, cst_t); break; case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lC_=caml_int_of_string(s);return _lC_} - catch(_lD_) - {return custom_error(cst_Expected_an_integer_but_fo,v,lexbuf)} - case 3:return long_error(cst_Expected_integer_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$12,v,lexbuf)}}} - function read_int(v,lexbuf){return ocaml_lex_read_int_rec(v,lexbuf,176)} - function ocaml_lex_read_int32_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _lw_=caml_int_of_string(caml_call1(lexeme,lexbuf)); - return _lw_} - catch(_lz_){return lexer_error(cst_Int32_overflow,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lx_=caml_int_of_string(s);return _lx_} - catch(_ly_) - {return custom_error(cst_Expected_an_int32_but_foun,v,lexbuf)} - case 2:return long_error(cst_Expected_int32_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$13,v,lexbuf)}}} - function read_int32(v,lexbuf) - {return ocaml_lex_read_int32_rec(v,lexbuf,185)} - function ocaml_lex_read_int64_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _ls_=caml_int64_of_string(caml_call1(lexeme,lexbuf)); - return _ls_} - catch(_lv_){return lexer_error(cst_Int32_overflow$0,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lt_=caml_int64_of_string(s);return _lt_} - catch(_lu_) - {return custom_error(cst_Expected_an_int64_but_foun,v,lexbuf)} - case 2:return long_error(cst_Expected_int64_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$14,v,lexbuf)}}} - function read_int64(v,lexbuf) - {return ocaml_lex_read_int64_rec(v,lexbuf,192)} - function ocaml_lex_read_number_rec(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme,lexbuf)); + write_special(src, start, stop, ob, cst_n); break; case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$1(v,lexbuf); - try - {var _lq_=caml_float_of_string(s);return _lq_} - catch(_lr_) - {return caml_string_notequal(s,cst_Infinity$7) - ?caml_string_notequal(s,cst_Infinity$8) - ?caml_string_notequal(s,cst_NaN$3) - ?custom_error(cst_Expected_a_number_but_foun,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} - case 5:return long_error(cst_Expected_number_but_found,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$15,v,lexbuf)}}} - function read_number(v,lexbuf) - {return ocaml_lex_read_number_rec(v,lexbuf,199)} - function read_string(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$1(v,lexbuf); - case 1:return long_error(cst_Expected_but_found$2,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$16,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_ident(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$1(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme,lexbuf,lexbuf[5],lexbuf[6]);return s; - case 2:return long_error(cst_Expected_string_or_identif,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$17,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function map_ident(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2: - return long_error(cst_Expected_string_or_identif$0,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$18,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_sequence_rec - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} - catch(_lp_) - {_lp_ = caml_wrap_exception(_lp_); - if(_lp_ === End_of_array)return acc[1]; - throw _lp_} - case 1:return long_error(cst_Expected_but_found$3,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$19,v,lexbuf)}}} - function read_sequence(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - var _lm_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_lm_]; - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - var _ln_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_ln_]}} - catch(_lo_) - {_lo_ = caml_wrap_exception(_lo_); - if(_lo_ === End_of_array)return acc[1]; - throw _lo_} - case 1:return long_error(cst_Expected_but_found$4,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$20,v,lexbuf)}}} - function read_list_rev(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec(read_cell,v,lexbuf,251)} - function read_array_end(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_array_sep(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error(cst_Expected_or_but_found$1,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$21,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple(read_cell,init_acc,v,lexbuf) - {var ocaml_lex_state=262; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return long_error(cst_Invalid_token$2,v,lexbuf); - case 1:return long_error(cst_Expected_but_found$5,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$22,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_end(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_end2(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error(cst_Expected_or_but_found$2,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error(cst_Expected_or_but_found$3,v,lexbuf); - default:return 0}}} - function read_tuple_sep(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error(cst_Expected_or_but_found$4,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$23,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_sep2(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error(cst_Expected_or_but_found$5,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error(cst_Expected_or_but_found$6,v,lexbuf); - case 3:return long_error(cst_Expected_or_but_found$7,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$24,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} - catch(_ll_) - {_ll_ = caml_wrap_exception(_ll_); - if(_ll_ === End_of_object)return acc[1]; - throw _ll_} - case 1:return long_error(cst_Expected_but_found$6,v,lexbuf); - default:return custom_error(cst_Unexpected_end_of_input$25,v,lexbuf)}}} - function read_abstract_fields(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$7,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$26,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_end(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_sep(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error(cst_Expected_or_but_found$8,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$27,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_colon(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$8,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$28,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_tuple(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error(cst_Expected_or_but_found$9,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$29,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lpar(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$9,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$30,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rpar(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$10,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$31,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lbr(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$11,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$32,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rbr(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Expected_but_found$12,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$33,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_skip_stringlit(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error(cst_Invalid_string_literal$0,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$35,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function skip_json$2(counter,v,lexbuf) - {var _lk_=322; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_skip_json_rec,[0,v,lexbuf,_lk_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec(counter$0,v,lexbuf,_lk_)} - function ocaml_lex_skip_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space(v,lexbuf); - read_object_end(lexbuf); - skip_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_object_sep(v,lexbuf); - read_space(v,lexbuf); - skip_ident(v,lexbuf); - read_space(v,lexbuf); - read_colon(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf)}} - catch(_lj_) - {_lj_ = caml_wrap_exception(_lj_); - if(_lj_ === End_of_object)return 0; - throw _lj_} - case 10: - try - {read_space(v,lexbuf); - read_array_end(lexbuf); - skip_json(v,lexbuf); - for(;;) - {read_space(v,lexbuf); - read_array_sep(v,lexbuf); - read_space(v,lexbuf); - skip_json(v,lexbuf)}} - catch(_li_) - {_li_ = caml_wrap_exception(_li_); - if(_li_ === End_of_array)return 0; - throw _li_} - case 11:return long_error(cst_Invalid_token$3,v,lexbuf); - case 12:return long_error(cst_Invalid_token$4,v,lexbuf); - case 13: - if(counter >= 50) - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return skip_json$2(counter$0,v,lexbuf); - case 14: - finish_comment(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return skip_json$2(counter$1,v,lexbuf); - case 15: - newline(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return skip_json$2(counter$2,v,lexbuf); - case 16: - if(counter >= 50) - return caml_trampoline_return(skip_json$2,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return skip_json$2(counter$3,v,lexbuf); - case 17: - return custom_error(cst_Unexpected_end_of_input$34,v,lexbuf); - default:return long_error(cst_Invalid_token$5,v,lexbuf)}}} - function skip_json(v,lexbuf) - {return caml_trampoline(skip_json$2(0,v,lexbuf))} - function finish_skip_variant(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - skip_json(v,lexbuf);read_space(v,lexbuf);return read_gt(v,lexbuf); - case 1:return 0; - case 2:return long_error(cst_Expected_or_but_found$10,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$36,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function skip_ident(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit(v,lexbuf); - case 1:return 0; - case 2: - return long_error(cst_Expected_string_or_identif$1,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$37,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_stringlit(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme(v[1],lexbuf); - case 1:return long_error(cst_Invalid_string_literal$1,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$39,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_json$2(counter,v,lexbuf) - {var _lh_=399; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_buffer_json_rec,[0,v,lexbuf,_lh_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec(counter$0,v,lexbuf,_lh_)} - function ocaml_lex_buffer_json_rec(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme(v[1],lexbuf); - case 1:return finish_buffer_stringlit(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space(v,lexbuf); - buffer_object_end(v,lexbuf); - buffer_ident(v,lexbuf); - buffer_space(v,lexbuf); - buffer_colon(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf); - for(;;) - {buffer_space(v,lexbuf); - buffer_object_sep(v,lexbuf); - buffer_space(v,lexbuf); - buffer_ident(v,lexbuf); - buffer_space(v,lexbuf); - buffer_colon(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf)}} - catch(_lg_) - {_lg_ = caml_wrap_exception(_lg_); - if(_lg_ === End_of_object)return 0; - throw _lg_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space(v,lexbuf); - buffer_array_end(v,lexbuf); - buffer_json(v,lexbuf); - for(;;) - {buffer_space(v,lexbuf); - buffer_array_sep(v,lexbuf); - buffer_space(v,lexbuf); - buffer_json(v,lexbuf)}} - catch(_lf_) - {_lf_ = caml_wrap_exception(_lf_); - if(_lf_ === End_of_array)return 0; - throw _lf_} - case 4:return long_error(cst_Invalid_token$6,v,lexbuf); - case 5:return long_error(cst_Invalid_token$7,v,lexbuf); - case 6: - add_lexeme(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return buffer_json$2(counter$0,v,lexbuf); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$34); - finish_buffer_comment(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return buffer_json$2(counter$1,v,lexbuf); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return buffer_json$2(counter$2,v,lexbuf); - case 9: - add_lexeme(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$2,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return buffer_json$2(counter$3,v,lexbuf); - case 10: - return custom_error(cst_Unexpected_end_of_input$38,v,lexbuf); - default:return long_error(cst_Invalid_token$8,v,lexbuf)}}} - function buffer_json(v,lexbuf) - {return caml_trampoline(buffer_json$2(0,v,lexbuf))} - function buffer_ident(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit(v,lexbuf); - case 1:return add_lexeme(v[1],lexbuf); - case 2: - return long_error(cst_Expected_string_or_identif$2,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$40,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_space(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:add_lexeme(v[1],lexbuf);newline(v,lexbuf);continue a; - case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$35); - finish_buffer_comment(v,lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - continue a; - case 3:add_lexeme(v[1],lexbuf);continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function buffer_object_end(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_object_sep(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error(cst_Expected_or_but_found$11,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$41,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_end(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_sep(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error(cst_Expected_or_but_found$12,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$42,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_colon(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error(cst_Expected_but_found$13,v,lexbuf); - default: - return custom_error(cst_Unexpected_end_of_input$43,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_comment(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$36); - case 1:return long_error(cst_Unterminated_comment$0,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline(v,lexbuf); - continue a; - default:add_lexeme(v[1],lexbuf);continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function junk(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - read_junk[1] = junk; - function read_int8(v,lexbuf) - {var n=read_int(v,lexbuf); - if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); - return lexer_error(cst_Int8_overflow,v,lexbuf)} - function read_list(read_cell,v,lexbuf) - {var _le_=read_list_rev(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_le_)} - function read_array(read_cell,v,lexbuf) - {var l=read_list_rev(read_cell,v,lexbuf); - if(! l)return [0]; - var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _lb_=len - 2 | 0; - if(_lb_ >= 0) - {var i=_lb_; - for(;;) - {var _lc_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _lc_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _ld_=i - 1 | 0; - if(0 !== i){var i=_ld_;continue} - break}} - return a} - function read_fields(read_field,init_acc,v) - {return function(_la_) - {return read_abstract_fields(read_ident,read_field,init_acc,v,_la_)}} - function from_lexbuf(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space(v,lexbuf); - if(read_eof(lexbuf))throw End_of_input; - var x=read_json(v,lexbuf); - if(1 - stream) - {read_space(v,lexbuf); - if(1 - read_eof(lexbuf)) - long_error(cst_Junk_after_end_of_JSON_val,v,lexbuf)} - return x} - function from_string$0(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string,0,s), - v=init_lexer(buf,fname,lnum,0), - _k__=from_lexbuf(v,0,lexbuf); - return _k__} - catch(_k$_) - {_k$_ = caml_wrap_exception(_k$_); - if(_k$_ === End_of_input)return json_error(cst_Blank_input_data); - throw _k$_}} - function from_channel$0(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel,0,ic), - v=init_lexer(buf,fname,lnum,0), - _k8_=from_lexbuf(v,0,lexbuf); - return _k8_} - catch(_k9_) - {_k9_ = caml_wrap_exception(_k9_); - if(_k9_ === End_of_input)return json_error(cst_Blank_input_data$0); - throw _k9_}} - function from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$0(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally=[248,cst_Yojson_Basic_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _k7_=[0,from_lexbuf(v,stream,lexbuf),f];return _k7_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally,e,fin_e]} - throw e}} - return f} - function seq_from_string(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf(v,0,caml_call2(from_string,0,s))} - function seq_from_channel(buf,fin,fname,lnum,ic) - {var lexbuf=caml_call2(from_channel,0,ic),v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf(v,fin,lexbuf)} - function seq_from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf(v,[0,fin],lexbuf)} - function lineseq_from_channel(buf,opt,fname,_kZ_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_kZ_)var sth$0=_kZ_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _k2_=lnum + 1 | 0, - _k3_=function(_k6_){return f(_k2_,_k6_)}, - _k4_= - [0,[0,826371656,from_string$0(buf$0,fname,[0,lnum],line)],_k3_]; - return _k4_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _k1_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_k5_){return f(_k1_,_k5_)}]}} - return function(_k0_){return f(lnum0,_k0_)}} - function lineseq_from_file(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel(buf,[0,fin],fname$0,lnum,ic)} - function prettify(std,s) - {return pretty_to_string$0(std,from_string$0(0,0,0,s))} - function compact(std,s) - {return to_string$0(0,0,0,0,from_string$0(0,0,0,s))} - var Type_error=[248,cst_Yojson_Basic_Util_Type_err,caml_fresh_oo_id(0)]; - function typerr(msg,js) - {if(typeof js === "number") - var _kY_=cst_null$3; - else - var - _kX_=js[1], - _kY_= - 708012133 <= _kX_ - ?726928360 === _kX_ - ?cst_tuple - :848054398 <= _kX_ - ?963043957 <= _kX_?cst_object:cst_array - :737456202 <= _kX_?cst_bool:cst_variant - :3654863 <= _kX_ - ?365180284 <= _kX_?cst_float:cst_int - :-752863768 <= _kX_?cst_intlit:cst_string; - throw [0,Type_error,caml_call2(Stdlib[28],msg,_kY_),js]} - var Undefined=[248,cst_Yojson_Basic_Util_Undefine,caml_fresh_oo_id(0)]; - function assoc(name,obj) - {try - {var _kV_=caml_call2(Stdlib_List[46],name,obj);return _kV_} - catch(_kW_) - {_kW_ = caml_wrap_exception(_kW_); - if(_kW_ === Stdlib[8])return 870828711; - throw _kW_}} - function member(name,js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return assoc(name,obj)} - var _kU_=caml_call2(Stdlib[28],name,cst_of_non_object_type); - return typerr(caml_call2(Stdlib[28],cst_Can_t_get_member,_kU_),js)} - function index(i,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var - l=js[2], - len=caml_call1(Stdlib_List[1],l), - wrapped_index=0 <= i?i:len + i | 0; - if(0 <= wrapped_index && len > wrapped_index) - return caml_call2(Stdlib_List[7],l,wrapped_index); - var - _kS_=caml_call1(Stdlib[33],i), - _kT_=caml_call2(Stdlib[28],_kS_,cst_out_of_bounds); - throw [0,Undefined,caml_call2(Stdlib[28],cst_Index,_kT_),js]} - var - _kQ_=caml_call1(Stdlib[33],i), - _kR_=caml_call2(Stdlib[28],_kQ_,cst_of_non_array_type); - return typerr(caml_call2(Stdlib[28],cst_Can_t_get_index,_kR_),js)} - function map(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} - return typerr(cst_Can_t_map_function_over_no,js)} - function to_assoc(js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return obj} - return typerr(cst_Expected_object_got,js)} - function to_option(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} - function to_bool(js) - {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} - return typerr(cst_Expected_bool_got,js)} - function to_bool_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(737456202 === js[1]){var b=js[2];return [0,b]} - return typerr(cst_Expected_bool_or_null_got,js)} - function to_number(js) - {if(typeof js !== "number") - {var _kP_=js[1]; - if(3654863 === _kP_){var i=js[2];return i} - if(365180284 === _kP_){var f=js[2];return f}} - return typerr(cst_Expected_number_got,js)} - function to_number_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - {var _kO_=js[1]; - if(3654863 === _kO_){var i=js[2];return [0,i]} - if(365180284 === _kO_){var f=js[2];return [0,f]}} - return typerr(cst_Expected_number_or_null_go,js)} - function to_float(js) - {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} - return typerr(cst_Expected_float_got,js)} - function to_float_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(365180284 === js[1]){var f=js[2];return [0,f]} - return typerr(cst_Expected_float_or_null_got,js)} - function to_int(js) - {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} - return typerr(cst_Expected_int_got,js)} - function to_int_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(3654863 === js[1]){var i=js[2];return [0,i]} - return typerr(cst_Expected_int_or_null_got,js)} - function to_list(js) - {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} - return typerr(cst_Expected_array_got,js)} - function to_string$1(js) - {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} - return typerr(cst_Expected_string_got,js)} - function to_string_option(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(-976970511 === js[1]){var s=js[2];return [0,s]} - return typerr(cst_Expected_string_or_null_go,js)} - function convert_each(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} - return typerr(cst_Can_t_convert_each_element,js)} - function filter_map(f,l$0) - {var acc=0,l=l$0; - for(;;) - {if(! l)return caml_call1(Stdlib_List[9],acc); - var tl=l[2],x=l[1],match=caml_call1(f,x); - if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} - var l=tl}} - function flatten(l$0) - {var acc=0,l=l$0; - for(;;) - {if(! l)return caml_call1(Stdlib_List[9],acc); - var tl=l[2],x=l[1]; - if(typeof x !== "number" && 848054398 === x[1]) - {var l2=x[2],acc$0=caml_call2(Stdlib_List[12],l2,acc),acc=acc$0,l=tl; - continue} - var l=tl}} - function filter_index(i,l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2]; - try - {var _kM_=[0,caml_call2(Stdlib_List[7],l,i)];return _kM_} - catch(_kN_){return 0}} - return 0}, - l)} - function filter_list(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_member(k,l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2]; - try - {var _kK_=[0,caml_call2(Stdlib_List[46],k,l)];return _kK_} - catch(_kL_){return 0}} - return 0}, - l)} - function filter_assoc(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_bool(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 737456202 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_int(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 3654863 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_float(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && 365180284 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_number(l) - {return filter_map - (function(param) - {if(typeof param !== "number") - {var _kJ_=param[1]; - if(3654863 === _kJ_){var x=param[2];return [0,x]} - if(365180284 === _kJ_){var x$0=param[2];return [0,x$0]}} - return 0}, - l)} - function filter_string(l) - {return filter_map - (function(param) - {if(typeof param !== "number" && -976970511 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function keys(o) - {var _kH_=to_assoc(o); - function _kI_(param){var key=param[1];return key} - return caml_call1(caml_call1(Stdlib_List[19],_kI_),_kH_)} - function values(o) - {var _kF_=to_assoc(o); - function _kG_(param){var value=param[2];return value} - return caml_call1(caml_call1(Stdlib_List[19],_kG_),_kF_)} - function combine(first,second) - {if - (typeof first - !== - "number" - && - 963043957 - === - first[1] - && - typeof second - !== - "number" - && - 963043957 - === - second[1]) - {var b=second[2],a=first[2]; - return [0,963043957,caml_call2(Stdlib[37],a,b)]} - throw [0,Stdlib[6],cst_Expected_two_objects_check]} - function to_basic(x) - {if(typeof x !== "number") - {var _ky_=x[1]; - if(726928360 <= _ky_) - {if(737456202 !== _ky_) - {if(963043957 <= _ky_) - {var - l=x[2], - _kz_= - function(param) - {var v=param[2],k=param[1];return [0,k,to_basic(v)]}, - _kA_=caml_call2(Stdlib_List[21],_kz_,l); - return [0,963043957,caml_call1(Stdlib_List[9],_kA_)]} - var l$0=x[2],_kB_=caml_call2(Stdlib_List[21],to_basic,l$0); - return [0,848054398,caml_call1(Stdlib_List[9],_kB_)]}} - else - {if(-752863768 === _ky_){var s=x[2];return [0,-976970511,s]} - if(708012133 <= _ky_) - {var _kC_=x[2],_kD_=_kC_[2],_kE_=_kC_[1]; - if(! _kD_)return [0,-976970511,_kE_]; - var v=_kD_[1]; - return [0,848054398,[0,[0,-976970511,_kE_],[0,to_basic(v),0]]]}}} - return x} - function hex$2(n) - {var _kx_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_kx_)} - function write_special$1(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$2(src,start,ob) - {try - {var - _kw_= + write_special(src, start, stop, ob, cst_f); break; + case 5: + write_special(src, start, stop, ob, cst_r); break; + case 26: + write_special(src, start, stop, ob, cst$0); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _kw_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _bU_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$1(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_ku_=caml_ml_string_length(s) - 1 | 0,_kt_=0; - if(_ku_ >= 0) - {var i=_kt_; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$1(s,start,i,ob,cst$37); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$1(s,start,i,ob,cst_b$1);break; - case 1:write_special$1(s,start,i,ob,cst_t$1);break; - case 2:write_special$1(s,start,i,ob,cst_n$1);break; - case 4:write_special$1(s,start,i,ob,cst_f$1);break; - case 5:write_special$1(s,start,i,ob,cst_r$1);break; - case 26:write_special$1(s,start,i,ob,cst$38);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$1); - var _kr_=hex$2(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_kr_); - var _ks_=hex$2(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_ks_); - start[1] = i + 1 | 0; - break - }} - var _kv_=i + 1 | 0; - if(_ku_ !== i){var i=_kv_;continue} - break}} - finish_string$2(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$1(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$1(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$1(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$4)} - function write_bool$1(ob,x) - {var _kq_=x?cst_true$1:cst_false$1; - return caml_call2(Stdlib_Buffer[16],ob,_kq_)} + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00); + var _pJ_ = hex(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _pJ_); + var _pK_ = hex(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _pK_); + start[1] = stop + 1 | 0; + break; + } + } + var _pN_ = stop + 1 | 0; + if(_pM_ !== stop){var stop = _pN_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _b_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null); + } + function write_bool(ob, x){ + var _pI_ = x ? cst_true : cst_false; + return caml_call2(Stdlib_Buffer[16], ob, _pI_); + } + var + _c_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _d_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _d_, _c_); + function write_digits(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits(s, x / 10 | 0); var - _bV_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _bW_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_bW_,_bV_); - function write_digits$1(s,x) - {if(0 === x)return 0; - var d=x % 10 | 0; - write_digits$1(s,x / 10 | 0); - var - n=caml_call1(Stdlib[18],d), - _kp_=caml_call1(Stdlib_Char[1],n + 48 | 0); - return caml_call2(Stdlib_Buffer[12],s,_kp_)} - function write_int$1(ob,x) - {return 0 < x - ?write_digits$1(ob,x) - :0 <= x - ?caml_call2(Stdlib_Buffer[12],ob,48) - :(caml_call2(Stdlib_Buffer[12],ob,45),write_digits$1(ob,x))} - function float_needs_period$1(s) - {try - {var _kl_=caml_ml_string_length(s) - 1 | 0,_kk_=0; - if(_kl_ >= 0) - {var i=_kk_; - for(;;) - {var match=caml_string_get(s,i),switch$0=0; - if(48 <= match) - {if(58 > match)switch$0 = 1} - else - if(45 === match)switch$0 = 1; - if(! switch$0)throw Stdlib[3]; - var _kn_=i + 1 | 0; - if(_kl_ !== i){var i=_kn_;continue} - break}} - var _km_=1; - return _km_} - catch(_ko_) - {_ko_ = caml_wrap_exception(_ko_); - if(_ko_ === Stdlib[3])return 0; - throw _ko_}} - function write_float$1(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var _ki_=0. < x?cst_Infinity$9:cst_Infinity$10; - return caml_call2(Stdlib_Buffer[16],ob,_ki_)} - if(4 <= match)return caml_call2(Stdlib_Buffer[16],ob,cst_NaN$4); - var - s1=caml_call2(Stdlib_Printf[4],_bX_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_bY_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _kj_=float_needs_period$1(s); - return _kj_?caml_call2(Stdlib_Buffer[16],ob,cst_0$5):_kj_} - function write_normal_float_prec$1(significant_figures,ob,x) - {var switcher=significant_figures - 1 | 0; - if(15 < switcher >>> 0) - var s=caml_call2(Stdlib_Printf[4],_bZ_,x); - else - switch(switcher) - {case 0:var s=caml_call2(Stdlib_Printf[4],_b0_,x);break; - case 1:var s=caml_call2(Stdlib_Printf[4],_b1_,x);break; - case 2:var s=caml_call2(Stdlib_Printf[4],_b2_,x);break; - case 3:var s=caml_call2(Stdlib_Printf[4],_b3_,x);break; - case 4:var s=caml_call2(Stdlib_Printf[4],_b4_,x);break; - case 5:var s=caml_call2(Stdlib_Printf[4],_b5_,x);break; - case 6:var s=caml_call2(Stdlib_Printf[4],_b6_,x);break; - case 7:var s=caml_call2(Stdlib_Printf[4],_b7_,x);break; - case 8:var s=caml_call2(Stdlib_Printf[4],_b8_,x);break; - case 9:var s=caml_call2(Stdlib_Printf[4],_b9_,x);break; - case 10:var s=caml_call2(Stdlib_Printf[4],_b__,x);break; - case 11:var s=caml_call2(Stdlib_Printf[4],_b$_,x);break; - case 12:var s=caml_call2(Stdlib_Printf[4],_ca_,x);break; - case 13:var s=caml_call2(Stdlib_Printf[4],_cb_,x);break; - case 14:var s=caml_call2(Stdlib_Printf[4],_cc_,x);break; - default:var s=caml_call2(Stdlib_Printf[4],_cd_,x)} - caml_call2(Stdlib_Buffer[16],ob,s); - var _kh_=float_needs_period$1(s); - return _kh_?caml_call2(Stdlib_Buffer[16],ob,cst_0$6):_kh_} - function write_float_prec$1(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?caml_call2(Stdlib_Buffer[16],ob,cst_NaN$5) - :write_normal_float_prec$1(significant_figures,ob,x); - var _kg_=0. < x?cst_Infinity$11:cst_Infinity$12; - return caml_call2(Stdlib_Buffer[16],ob,_kg_)} - function write_std_float$1(ob,x) - {var match=caml_classify_float(x); - if(3 === match) - {var - _ke_= - 0. < x - ?cst_Infinity_value_not_allowed$7 - :cst_Infinity_value_not_allowed$8; - return json_error(_ke_)} - if(4 <= match)return json_error(cst_NaN_value_not_allowed_in_s$3); - var - s1=caml_call2(Stdlib_Printf[4],_ce_,x), - s=caml_float_of_string(s1) == x?s1:caml_call2(Stdlib_Printf[4],_cf_,x); - caml_call2(Stdlib_Buffer[16],ob,s); - var _kf_=float_needs_period$1(s); - return _kf_?caml_call2(Stdlib_Buffer[16],ob,cst_0$7):_kf_} - function write_std_float_prec$1(significant_figures,ob,x) - {var match=caml_classify_float(x); - if(3 !== match) - return 4 <= match - ?json_error(cst_NaN_value_not_allowed_in_s$4) - :write_normal_float_prec$1(significant_figures,ob,x); - var - _kd_= + n = caml_call1(Stdlib[18], d), + _pH_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _pH_); + } + function write_int(ob, x){ + return 0 < x + ? write_digits(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits(ob, x)); + } + function float_needs_period(s){ + try{ + var _pD_ = caml_ml_string_length(s) - 1 | 0, _pC_ = 0; + if(_pD_ >= 0){ + var i = _pC_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _pF_ = i + 1 | 0; + if(_pD_ !== i){var i = _pF_; continue;} + break; + } + } + var _pE_ = 1; + return _pE_; + } + catch(_pG_){ + var _pB_ = caml_wrap_exception(_pG_); + if(_pB_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_pB_, 0); + } + } + function write_float(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _pz_ = 0. < x ? cst_Infinity : cst_Infinity$0; + return caml_call2(Stdlib_Buffer[16], ob, _pz_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN); + var + s1 = caml_call2(Stdlib_Printf[4], _e_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _f_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _pA_ = float_needs_period(s); + return _pA_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0) : _pA_; + } + function write_normal_float_prec(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _g_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _h_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _i_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _j_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _k_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _l_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _m_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _n_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _o_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _p_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _q_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _r_, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _s_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _t_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _u_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _v_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _w_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _py_ = float_needs_period(s); + return _py_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$0) : _py_; + } + function write_float_prec(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$0) + : write_normal_float_prec(significant_figures, ob, x); + var _px_ = 0. < x ? cst_Infinity$1 : cst_Infinity$2; + return caml_call2(Stdlib_Buffer[16], ob, _px_); + } + function write_std_float(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _pv_ = 0. < x - ?cst_Infinity_value_not_allowed$9 - :cst_Infinity_value_not_allowed$10; - return json_error(_kd_)} - var write_intlit$0=Stdlib_Buffer[16]; - function iter2$1(f_elt,f_sep,x,param$0) - {if(! param$0)return 0; - var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(! param)return 0; - var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l}} - function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant$0(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string$1(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$1(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2$1(write_t$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_t$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$1(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$1(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$1(f_elt,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$1(ob,x) - {if(typeof x === "number")return write_null$1(ob,0); - var _kc_=x[1]; - if(708012133 <= _kc_) - {if(726928360 === _kc_){var l=x[2];return write_tuple$0(ob,l)} - if(848054398 <= _kc_) - {if(963043957 <= _kc_){var l$0=x[2];return write_assoc$1(ob,l$0)} - var l$1=x[2]; - return write_list$1(ob,l$1)} - if(737456202 <= _kc_){var b=x[2];return write_bool$1(ob,b)} - var match=x[2],o=match[2],s=match[1]; - return write_variant$0(ob,s,o)} - if(3654863 <= _kc_) - {if(365180284 <= _kc_){var f=x[2];return write_float$1(ob,f)} - var i=x[2]; - return write_int$1(ob,i)} - if(-752863768 <= _kc_) - {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} - var s$1=x[2]; - return write_string$1(ob,s$1)} - function write_std_variant$0(ob,s,o) - {if(! o)return write_string$1(ob,s); - var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json$1(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_tuple$0(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_std_json$1,f_sep$1,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json$1(ob,x) - {if(typeof x === "number")return write_null$1(ob,0); - var _kb_=x[1]; - if(708012133 <= _kb_) - {if(726928360 === _kb_){var l=x[2];return write_std_tuple$0(ob,l)} - if(848054398 <= _kb_) - {if(963043957 <= _kb_) - {var - l$0=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$1(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$1(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$1(f_elt,f_sep$1,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var l$1=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$1(write_std_json$1,f_sep$1,ob,l$1); - return caml_call2(Stdlib_Buffer[12],ob,93)} - if(737456202 <= _kb_){var b=x[2];return write_bool$1(ob,b)} - var match=x[2],o=match[2],s=match[1]; - return write_std_variant$0(ob,s,o)} - if(3654863 <= _kb_) - {if(365180284 <= _kb_){var f=x[2];return write_std_float$1(ob,f)} - var i=x[2]; - return write_int$1(ob,i)} - if(-752863768 <= _kb_) - {var s$0=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$0)} - var s$1=x[2]; - return write_string$1(ob,s$1)} - function to_buffer$1(opt,_ka_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$39; - if(_ka_)var sth$0=_ka_[1],std=sth$0;else var std=0; - if(std)write_std_json$1(ob,x);else write_t$1(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$2(buf,opt,_j$_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_j$_)var sth$0=_j$_[1],suf=sth$0;else var suf=cst$40; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$1(buf,opt,_j__,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_j__)var sth$0=_j__[1],suf=sth$0;else var suf=cst$41; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$1(buf,opt,_j8_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_j8_)var sth$0=_j8_[1],suf=sth$0;else var suf=cst$42; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$1([0,suf],std,ob$0,x); - var _j9_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,3), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _j9_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$1(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$43; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$1(0,len,[0,suf],std,oc,x); - var _j7_=caml_call1(Stdlib[76],oc); - return _j7_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$1(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$44; - var _j4_=[0,suf]; - function _j5_(_j6_){return to_buffer$1(_j4_,std,ob,_j6_)} - return caml_call2(Stdlib_Seq[4],_j5_,st)} - function seq_to_string$1(buf,opt,_j3_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_j3_)var sth$0=_j3_[1],suf=sth$0;else var suf=cst$45; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$1([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$1(buf,opt,_j1_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_j1_)var sth$0=_j1_[1],suf=sth$0;else var suf=cst$46; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _j2_(json) - {to_buffer$1([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_j2_,seq)} - function seq_to_file$1(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$47; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$1(0,len,[0,suf],std,oc,st); - var _j0_=caml_call1(Stdlib[76],oc); - return _j0_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$1(x) - {if(typeof x !== "number") - {var _jR_=x[1]; - if(726928361 <= _jR_) - {if(848054398 === _jR_) - {var l=x[2],_jS_=caml_call2(Stdlib_List[21],sort$1,l); - return [0,848054398,caml_call1(Stdlib_List[9],_jS_)]} - if(963043957 === _jR_) - {var - l$0=x[2], - _jT_= - function(param) - {var v=param[2],k=param[1];return [0,k,sort$1(v)]}, - _jU_=caml_call2(Stdlib_List[21],_jT_,l$0), - l$1=caml_call1(Stdlib_List[9],_jU_), - _jV_= - function(param,_jZ_) - {var b=_jZ_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_jV_,l$1)]}} - else - if(708012133 === _jR_) - {var _jW_=x[2],_jX_=_jW_[2]; - if(_jX_) - {var v=_jX_[1],k=_jW_[1],v$0=sort$1(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _jR_) - {var l$2=x[2],_jY_=caml_call2(Stdlib_List[21],sort$1,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_jY_)]}} - return x} - function pp_list$1(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_cg_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$1(x) - {if(typeof x !== "number") - {var _jQ_=x[1],switch$0=0; - if(737456202 <= _jQ_) - {if(848054398 === _jQ_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _jQ_ && x[2])switch$0 = 1} - else - if(708012133 === _jQ_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _jQ_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$1(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$5); - var _i9_=x$0[1]; - if(708012133 > _i9_) - {if(3654863 <= _i9_) - {if(365180284 > _i9_) - {var x$7=x$0[2],_i8_=caml_call1(Stdlib[33],x$7); - return caml_call2(Stdlib_Format[13],out,_i8_)} - var x$6=x$0[2]; - if(std) - {var ob$0=caml_call1(Stdlib_Buffer[1],20); - write_std_float$1(ob$0,x$6); - var s=caml_call1(Stdlib_Buffer[2],ob$0)} - else - {var ob=caml_call1(Stdlib_Buffer[1],20); - write_float$1(ob,x$6); - var s=caml_call1(Stdlib_Buffer[2],ob)} - return caml_call2(Stdlib_Format[13],out,s)} - if(-752863768 <= _i9_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - var s$1=x$0[2],_ju_=json_string_of_string$1(s$1); - return caml_call2(Stdlib_Format[13],out,_ju_)} - if(726928360 === _i9_) - {var l=x$0[2]; - if(std){var x$1=[0,848054398,l],x$0=x$1;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$48); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ch_); - var - _i__=0, - _i$_=function(_jO_,_jP_){return format$1(_i__,std,_jO_,_jP_)}, - _ja_=function(_jM_,_jN_){return pp_list$1(cst$49,_i$_,_jM_,_jN_)}; - caml_call4(Stdlib_Format[129],out,_ci_,_ja_,l); - var _jb_=1 - inside_box; - return _jb_?caml_call2(Stdlib_Format[129],out,_cj_):_jb_} - if(848054398 <= _i9_) - {if(963043957 <= _i9_) - {var _jc_=x$0[2]; - if(! _jc_)return caml_call2(Stdlib_Format[13],out,cst$51); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_ck_); - var - _jd_= - function(out,param) - {var x=param[2],name=param[1],_jH_=1; - function _jI_(_jK_,_jL_){return format$1(_jH_,std,_jK_,_jL_)} - var _jJ_=json_string_of_string$1(name); - return caml_call5(Stdlib_Format[129],out,_ct_,_jJ_,_jI_,x)}, - _je_=function(_jF_,_jG_){return pp_list$1(cst$50,_jd_,_jF_,_jG_)}; - caml_call4(Stdlib_Format[129],out,_cl_,_je_,_jc_); - var _jf_=1 - inside_box; - return _jf_?caml_call2(Stdlib_Format[129],out,_cm_):_jf_} - var _jg_=x$0[2]; - if(! _jg_)return caml_call2(Stdlib_Format[13],out,cst$54); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_cn_); - if(caml_call2(Stdlib_List[32],is_atom$1,_jg_)) - {var - _jh_=0, - _ji_=function(_jz_,_jA_){return format$1(_jh_,std,_jz_,_jA_)}, - _jj_=function(_jx_,_jy_){return pp_list$1(cst$52,_ji_,_jx_,_jy_)}; - caml_call4(Stdlib_Format[129],out,_co_,_jj_,_jg_)} - else - {var - _jl_=0, - _jm_=function(_jD_,_jE_){return format$1(_jl_,std,_jD_,_jE_)}, - _jn_=function(_jB_,_jC_){return pp_list$1(cst$53,_jm_,_jB_,_jC_)}; - caml_call4(Stdlib_Format[129],out,_cq_,_jn_,_jg_)} - var _jk_=1 - inside_box; - return _jk_?caml_call2(Stdlib_Format[129],out,_cp_):_jk_} - if(737456202 <= _i9_) - {var x$2=x$0[2];return caml_call2(Stdlib_Format[25],out,x$2)} - var _jo_=x$0[2],_jp_=_jo_[2],_jq_=_jo_[1]; - if(_jp_) - {var x$3=_jp_[1]; - if(std) - {var - representation=[0,-976970511,_jq_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string$1(_jq_), - _jr_=1, - _js_=function(_jv_,_jw_){return format$1(_jr_,std,_jv_,_jw_)}; - return caml_call5(Stdlib_Format[129],out,_cr_,op,_js_,x$3)} - if(std){var x$5=[0,-976970511,_jq_],x$0=x$5;continue} - var _jt_=json_string_of_string$1(_jq_); - return caml_call3(Stdlib_Format[129],out,_cs_,_jt_)}} - function pp$3(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _i4_=1; - function _i5_(_i6_,_i7_){return format$1(_i4_,std,_i6_,_i7_)} - return caml_call4(Stdlib_Format[129],out,_cu_,_i5_,x)} - function pp$4(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$1); - var _iX_=param[1]; - if(708012133 <= _iX_) - {if(726928360 === _iX_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cx_); - caml_call2(Stdlib_Format[129],fmt,_cy_); - var - _iY_=0, - _iZ_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_cz_); - pp$4(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_iZ_,_iY_,tup); - caml_call2(Stdlib_Format[129],fmt,_cA_); - return caml_call2(Stdlib_Format[129],fmt,_cB_)} - if(848054398 <= _iX_) - {if(963043957 <= _iX_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cC_); - caml_call2(Stdlib_Format[129],fmt,_cD_); - var - _i0_=0, - _i1_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_cE_); - caml_call2(Stdlib_Format[129],fmt,_cF_); - caml_call3(Stdlib_Format[129],fmt,_cG_,key); - caml_call2(Stdlib_Format[129],fmt,_cH_); - pp$4(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_cI_); - return 1}; - caml_call3(Stdlib_List[25],_i1_,_i0_,xs); - caml_call2(Stdlib_Format[129],fmt,_cJ_); - return caml_call2(Stdlib_Format[129],fmt,_cK_)} - var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cL_); - caml_call2(Stdlib_Format[129],fmt,_cM_); - var - _i2_=0, - _i3_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_cN_); - pp$4(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_i3_,_i2_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_cO_); - return caml_call2(Stdlib_Format[129],fmt,_cP_)} - if(737456202 <= _iX_) - {var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cQ_); - caml_call3(Stdlib_Format[129],fmt,_cR_,x); - return caml_call2(Stdlib_Format[129],fmt,_cS_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_cT_); - caml_call2(Stdlib_Format[129],fmt,_cU_); - caml_call3(Stdlib_Format[129],fmt,_cV_,name); - caml_call2(Stdlib_Format[129],fmt,_cW_); - if(value) - {var x$0=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some$0); - pp$4(fmt,x$0); - caml_call2(Stdlib_Format[13],fmt,cst$55)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None$0); - caml_call2(Stdlib_Format[129],fmt,_cX_); - return caml_call2(Stdlib_Format[129],fmt,_cY_)} - if(3654863 <= _iX_) - {if(365180284 <= _iX_) - {var x$1=param[2]; - caml_call2(Stdlib_Format[129],fmt,_cZ_); - caml_call3(Stdlib_Format[129],fmt,_c0_,x$1); - return caml_call2(Stdlib_Format[129],fmt,_c1_)} - var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c2_); - caml_call3(Stdlib_Format[129],fmt,_c3_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_c4_)} - if(-752863768 <= _iX_) - {var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c5_); - caml_call3(Stdlib_Format[129],fmt,_c6_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_c7_)} - var x$4=param[2]; - caml_call2(Stdlib_Format[129],fmt,_c8_); - caml_call3(Stdlib_Format[129],fmt,_c9_,x$4); - return caml_call2(Stdlib_Format[129],fmt,_c__)} - function show$1(x){return caml_call3(Stdlib_Format[133],_c$_,pp$4,x)} - function equal$1(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _iQ_=a$0[1]; - if(708012133 <= _iQ_) - {var switch$0=0; - if(737456203 <= _iQ_) - {if(848054398 === _iQ_) - {if(typeof b$0 !== "number" && 848054398 === b$0[1]) - {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} - else - if - (963043957 - === - _iQ_ - && - typeof b$0 - !== - "number" - && - 963043957 - === - b$0[1]) - {var - ys$0=b$0[2], - xs$0=a$0[2], - compare_keys= - function(param,_iW_) - {var key=_iW_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$1=caml_call2(Stdlib_List[57],compare_keys,xs$0), - ys$1=caml_call2(Stdlib_List[57],compare_keys,ys$0); - try - {var - _iR_= - function(param,_iV_) - {var - value=_iV_[2], - key=_iV_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$1(value$0,value):0}, - result$0=caml_call3(Stdlib_List[34],_iR_,xs$1,ys$1); - return result$0} - catch(_iU_) - {_iU_ = caml_wrap_exception(_iU_); - if(_iU_[1] === Stdlib[6])return 0; - throw _iU_}}} - else - if(726928360 === _iQ_) - {if(typeof b$0 !== "number" && 726928360 === b$0[1]) - {var ys=b$0[2],xs=a$0[2];switch$0 = 1}} - else - if(708012134 <= _iQ_) - {if - (737456202 - <= - _iQ_ - && - typeof b$0 - !== - "number" - && - 737456202 - === - b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if(typeof b$0 !== "number" && 708012133 === b$0[1]) - {var - _iS_=b$0[2], - value=_iS_[2], - name=_iS_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(! match$0)return 0; - if(value$0) - {if(value) - {var b$2=value[1],a$2=value$0[1],a$0=a$2,b$0=b$2;continue}} - else - if(! value)return 1; - return 0} - if(switch$0) - try - {var result=caml_call3(Stdlib_List[34],equal$1,xs,ys); - return result} - catch(_iT_) - {_iT_ = caml_wrap_exception(_iT_); - if(_iT_[1] === Stdlib[6])return 0; - throw _iT_}} - else - if(-752863767 <= _iQ_) - {if(3654863 === _iQ_) - {if(typeof b$0 !== "number" && 3654863 === b$0[1]) - {var b$3=b$0[2],a$3=a$0[2];return caml_equal(a$3,b$3)}} - else - if - (365180284 - === - _iQ_ - && - typeof b$0 - !== - "number" - && - 365180284 - === - b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if(-976970511 === _iQ_) - {if(typeof b$0 !== "number" && -976970511 === b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)}} - else - if - (-752863768 - <= - _iQ_ - && - typeof b$0 - !== - "number" - && - -752863768 - === - b$0[1]) - {var b$6=b$0[2],a$6=a$0[2];return caml_equal(a$6,b$6)}} - return 0}} - function pretty_print$1(std,out,x){return pp$3(std,out,x)} - function pretty_to_string$1(std,x) - {function _iN_(_iO_,_iP_){return pp$3(std,_iO_,_iP_)} - return caml_call3(Stdlib_Format[133],_cv_,_iN_,x)} - function pretty_to_channel$1(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _iK_(_iL_,_iM_){return pp$3(std,_iL_,_iM_)} - return caml_call4(Stdlib_Format[129],fmt,_cw_,_iK_,x)} + ? cst_Infinity_value_not_allowed + : cst_Infinity_value_not_allowed$0; + return json_error(_pv_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s); var - from_channel$1=Stdlib_Lexing[2], - from_string$1=Stdlib_Lexing[3], - lexeme$0=Stdlib_Lexing[8], - sub_lexeme$0=Stdlib_Lexing[16], - sub_lexeme_char$0=Stdlib_Lexing[18]; - function hex$3(c) - {if(65 <= c) - {if(97 <= c) - {if(103 > c)return (c - 97 | 0) + 10 | 0} - else - if(71 > c)return (c - 65 | 0) + 10 | 0} + s1 = caml_call2(Stdlib_Printf[4], _x_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _y_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _pw_ = float_needs_period(s); + return _pw_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$1) : _pw_; + } + function write_std_float_prec(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$0) + : write_normal_float_prec(significant_figures, ob, x); + var + _pu_ = + 0. < x + ? cst_Infinity_value_not_allowed$1 + : cst_Infinity_value_not_allowed$2; + return json_error(_pu_); + } + var + write_intlit = Stdlib_Buffer[16], + write_floatlit = Stdlib_Buffer[16], + write_stringlit = Stdlib_Buffer[16]; + function iter2(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2(write_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2(f_elt, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json(ob, x){ + if(typeof x === "number") return write_null(ob, 0); + var _pt_ = x[1]; + if(708012133 <= _pt_){ + if(737456202 > _pt_){ + if(726928360 <= _pt_){var l$1 = x[2]; return write_tuple(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_variant(ob, s$0, o); + } + if(928231259 <= _pt_){ + if(963043957 <= _pt_){var l = x[2]; return write_assoc(ob, l);} + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _pt_){var l$0 = x[2]; return write_list(ob, l$0);} + var b = x[2]; + return write_bool(ob, b); + } + if(-752863768 === _pt_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + if(3654863 <= _pt_){ + if(365180284 <= _pt_){var f = x[2]; return write_float(ob, f);} + var i = x[2]; + return write_int(ob, i); + } + if(-375152890 <= _pt_){ + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + var s$3 = x[2]; + return write_string(ob, s$3); + } + function write_std_variant(ob, s, o){ + if(! o) return write_string(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_std_json, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json(ob, x){ + if(typeof x === "number") return write_null(ob, 0); + var _ps_ = x[1]; + if(708012133 <= _ps_){ + if(737456202 > _ps_){ + if(726928360 <= _ps_){var l$1 = x[2]; return write_std_tuple(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_std_variant(ob, s$0, o); + } + if(928231259 <= _ps_){ + if(963043957 <= _ps_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2(f_elt, f_sep, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _ps_){ + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2(write_std_json, f_sep, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + var b = x[2]; + return write_bool(ob, b); + } + if(-752863768 === _ps_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + if(3654863 <= _ps_){ + if(365180284 <= _ps_){var f = x[2]; return write_std_float(ob, f);} + var i = x[2]; + return write_int(ob, i); + } + if(-375152890 <= _ps_){ + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + var s$3 = x[2]; + return write_string(ob, s$3); + } + function to_buffer(opt, _pr_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$1; + if(_pr_) var sth$0 = _pr_[1], std = sth$0; else var std = 0; + if(std) write_std_json(ob, x); else write_json(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string(buf, opt, _pq_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_pq_) var sth$0 = _pq_[1], suf = sth$0; else var suf = cst$2; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel(buf, opt, _pp_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_pp_) var sth$0 = _pp_[1], suf = sth$0; else var suf = cst$3; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output(buf, opt, _pn_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_pn_) var sth$0 = _pn_[1], suf = sth$0; else var suf = cst$4; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer([0, suf], std, ob$0, x); + var _po_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 1), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _po_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$5; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel(0, len, [0, suf], std, oc, x); + var _pm_ = caml_call1(Stdlib[76], oc); + return _pm_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$6; + var _pj_ = [0, suf]; + function _pk_(_pl_){return to_buffer(_pj_, std, ob, _pl_);} + return caml_call2(Stdlib_Seq[4], _pk_, st); + } + function seq_to_string(buf, opt, _pi_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_pi_) var sth$0 = _pi_[1], suf = sth$0; else var suf = cst$7; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel(buf, opt, _pg_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_pg_) var sth$0 = _pg_[1], suf = sth$0; else var suf = cst$8; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _ph_(json){ + to_buffer([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _ph_, seq); + } + function seq_to_file(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$9; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel(0, len, [0, suf], std, oc, st); + var _pf_ = caml_call1(Stdlib[76], oc); + return _pf_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort(x){ + if(typeof x !== "number"){ + var _o9_ = x[1]; + if(726928361 <= _o9_){ + if(848054398 === _o9_){ + var l = x[2], _o__ = caml_call2(Stdlib_List[21], sort, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _o__)]; + } + if(963043957 === _o9_){ + var + l$0 = x[2], + _o$_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort(v)]; + }, + _pa_ = caml_call2(Stdlib_List[21], _o$_, l$0), + l$1 = caml_call1(Stdlib_List[9], _pa_), + _pb_ = + function(param, _pe_){ + var b = _pe_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _pb_, l$1)]; + } + } + else if(708012133 === _o9_){ + var _pc_ = x[2], match = _pc_[2]; + if(match){ + var v = match[1], k = _pc_[1], v$0 = sort(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _o9_){ + var l$2 = x[2], _pd_ = caml_call2(Stdlib_List[21], sort, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _pd_)]; + } + } + return x; + } + function pp(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null); + var _o2_ = param[1]; + if(708012133 <= _o2_){ + if(737456202 > _o2_){ + if(726928360 <= _o2_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _T_); + caml_call2(Stdlib_Format[129], fmt, _U_); + var + _o7_ = 0, + _o8_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _V_); + pp(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _o8_, _o7_, tup); + caml_call2(Stdlib_Format[129], fmt, _W_); + return caml_call2(Stdlib_Format[129], fmt, _X_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _Y_); + caml_call2(Stdlib_Format[129], fmt, _Z_); + caml_call3(Stdlib_Format[129], fmt, ___, name); + caml_call2(Stdlib_Format[129], fmt, _$_); + if(value){ + var x$1 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some); + pp(fmt, x$1); + caml_call2(Stdlib_Format[13], fmt, cst$10); + } else - if(9 >= c - 48 >>> 0)return c - 48 | 0; - throw [0,Assert_failure,_da_]} - function custom_error$0(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _iJ_=v[4]; - if(_iJ_) - var s=_iJ_[1],file_line=caml_call2(Stdlib_Printf[4],_db_,s); - else - var file_line=cst_Line$0; + caml_call2(Stdlib_Format[13], fmt, cst_None); + caml_call2(Stdlib_Format[129], fmt, _aa_); + return caml_call2(Stdlib_Format[129], fmt, _ab_); + } + if(928231259 <= _o2_){ + if(963043957 <= _o2_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _z_); + caml_call2(Stdlib_Format[129], fmt, _A_); + var + _o3_ = 0, + _o4_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _B_); + caml_call2(Stdlib_Format[129], fmt, _C_); + caml_call3(Stdlib_Format[129], fmt, _D_, key); + caml_call2(Stdlib_Format[129], fmt, _E_); + pp(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _F_); + return 1; + }; + caml_call3(Stdlib_List[25], _o4_, _o3_, xs); + caml_call2(Stdlib_Format[129], fmt, _G_); + return caml_call2(Stdlib_Format[129], fmt, _H_); + } + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _I_); + caml_call3(Stdlib_Format[129], fmt, _J_, x); + return caml_call2(Stdlib_Format[129], fmt, _K_); + } + if(848054398 <= _o2_){ + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _L_); + caml_call2(Stdlib_Format[129], fmt, _M_); var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_dc_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_de_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_dd_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error$0(descr,v,lexbuf) - {var _iI_=caml_call1(lexeme$0,lexbuf); - return custom_error$0 - (caml_call3(Stdlib_Printf[4],_df_,descr,_iI_),v,lexbuf)} - var read_junk$0=[0,function(param){throw [0,Assert_failure,_dg_]}]; - function long_error$0(descr,v,lexbuf) - {var - junk=caml_call1(lexeme$0,lexbuf), - extra_junk=caml_call1(read_junk$0[1],lexbuf); - return custom_error$0 - (caml_call4(Stdlib_Printf[4],_dh_,descr,junk,extra_junk), - v, - lexbuf)} - var - _di_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10$0=(Stdlib[20] / 10 | 0) - _di_ | 0, - _dj_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10$0=(Stdlib[19] / 10 | 0) + _dj_ | 0, - Int_overflow$0=[248,cst_Yojson_Safe_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int$0(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _iF_=stop - 1 | 0; - if(_iF_ >= start) - {var i=start; - for(;;) - {if(max10$0 <= n[1])throw Int_overflow$0; - var _iG_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _iG_ | 0; - var _iH_=i + 1 | 0; - if(_iF_ !== i){var i=_iH_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow$0} - function extract_negative_int$0(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _iC_=stop - 1 | 0; - if(_iC_ >= start) - {var i=start; - for(;;) - {if(n[1] <= min10$0)throw Int_overflow$0; - var _iD_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _iD_ | 0; - var _iE_=i + 1 | 0; - if(_iC_ !== i){var i=_iE_;continue} - break}} - if(0 < n[1])throw Int_overflow$0; - return n[1]} - function newline$0(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme$0(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$3(counter,v,lexbuf) - {var _iB_=0; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_read_json_rec$0,[0,v,lexbuf,_iB_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec$0(counter$0,v,lexbuf,_iB_)} - function ocaml_lex_read_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _dk_; - case 1:return _dl_; - case 2:return 870828711; - case 3:return [0,365180284,Stdlib[24]]; - case 4:return [0,365180284,Stdlib[22]]; - case 5:return [0,365180284,Stdlib[23]]; - case 6: - caml_call1(Stdlib_Buffer[8],v[1]); - return [0,-976970511,finish_string$3(v,lexbuf)]; - case 7: - try - {var _io_=[0,3654863,extract_positive_int$0(lexbuf)];return _io_} - catch(_iA_) - {_iA_ = caml_wrap_exception(_iA_); - if(_iA_ === Int_overflow$0) - return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; - throw _iA_} - case 8: - try - {var _ip_=[0,3654863,extract_negative_int$0(lexbuf)];return _ip_} - catch(_iz_) - {_iz_ = caml_wrap_exception(_iz_); - if(_iz_ === Int_overflow$0) - return [0,-752863768,caml_call1(lexeme$0,lexbuf)]; - throw _iz_} - case 9: - return [0, - 365180284, - caml_float_of_string(caml_call1(lexeme$0,lexbuf))]; - case 10: - var acc=[0,0]; - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - var field_name=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - var _iq_=acc[1]; - acc[1] = [0,[0,field_name,read_json$0(v,lexbuf)],_iq_]; - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var field_name$0=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - var _ir_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json$0(v,lexbuf)],_ir_]}} - catch(_iy_) - {_iy_ = caml_wrap_exception(_iy_); - if(_iy_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _iy_} - case 11: - var acc$0=[0,0]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - var _is_=acc$0[1]; - acc$0[1] = [0,read_json$0(v,lexbuf),_is_]; - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _it_=acc$0[1]; - acc$0[1] = [0,read_json$0(v,lexbuf),_it_]}} - catch(_ix_) - {_ix_ = caml_wrap_exception(_ix_); - if(_ix_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _ix_} - case 12: - var acc$1=[0,0]; - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - var _iu_=acc$1[1]; - acc$1[1] = [0,read_json$0(v,lexbuf),_iu_]; - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _iv_=acc$1[1]; - acc$1[1] = [0,read_json$0(v,lexbuf),_iv_]}} - catch(_iw_) - {_iw_ = caml_wrap_exception(_iw_); - if(_iw_ === End_of_tuple) - return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; - throw _iw_} - case 13: - read_space$0(v,lexbuf); - var cons=read_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - return [0,708012133,[0,cons,finish_variant$0(v,lexbuf)]]; - case 14: - if(counter >= 50) - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return read_json$3(counter$0,v,lexbuf); - case 15: - finish_comment$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return read_json$3(counter$1,v,lexbuf); - case 16: - newline$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return read_json$3(counter$2,v,lexbuf); - case 17: - if(counter >= 50) - return caml_trampoline_return(read_json$3,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return read_json$3(counter$3,v,lexbuf); - case 18: - return custom_error$0(cst_Unexpected_end_of_input$44,v,lexbuf); - default:return long_error$0(cst_Invalid_token$9,v,lexbuf)}}} - function read_json$0(v,lexbuf) - {return caml_trampoline(read_json$3(0,v,lexbuf))} - function finish_string$3(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char$0(v,lexbuf);continue a; - case 2:add_lexeme$0(v[1],lexbuf);continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$45,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function map_string$0(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_in_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_in_); - case 1:finish_escaped_char$0(v,lexbuf);continue a; - case 2:add_lexeme$0(v[1],lexbuf);continue a; - default: - return custom_error$0(cst_Unexpected_end_of_input$46,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function finish_escaped_char$0(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: + _o5_ = 0, + _o6_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _N_); + pp(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _o6_, _o5_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _O_); + return caml_call2(Stdlib_Format[129], fmt, _P_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _Q_); + caml_call3(Stdlib_Format[129], fmt, _R_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _S_); + } + if(-752863768 === _o2_){ + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ac_); + caml_call3(Stdlib_Format[129], fmt, _ad_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _ae_); + } + if(3654863 <= _o2_){ + if(365180284 <= _o2_){ + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _af_); + caml_call3(Stdlib_Format[129], fmt, _ag_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _ah_); + } + var x$4 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ai_); + caml_call3(Stdlib_Format[129], fmt, _aj_, x$4); + return caml_call2(Stdlib_Format[129], fmt, _ak_); + } + if(-375152890 <= _o2_){ + var x$5 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _al_); + caml_call3(Stdlib_Format[129], fmt, _am_, x$5); + return caml_call2(Stdlib_Format[129], fmt, _an_); + } + var x$6 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ao_); + caml_call3(Stdlib_Format[129], fmt, _ap_, x$6); + return caml_call2(Stdlib_Format[129], fmt, _aq_); + } + function show(x){return caml_call3(Stdlib_Format[133], _ar_, pp, x);} + function equal(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _oT_ = a$0[1]; + if(708012133 <= _oT_){ + var switch$0 = 0; + if(848054398 <= _oT_){ + if(928231259 === _oT_){ + if(typeof b$0 !== "number" && 928231259 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else + if(963043957 === _oT_){ + if(typeof b$0 !== "number" && 963043957 === b$0[1]){ var - a=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), - _ih_=hex$3(d), - _ii_=hex$3(c$0) << 4, - _ij_=hex$3(b) << 8, - x=hex$3(a) << 12 | _ij_ | _ii_ | _ih_; - if(55296 <= x && 56319 >= x) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char$0,lexbuf,lexbuf[5] + 5 | 0), - _ik_=hex$3(d$0), - _il_=hex$3(c$1) << 4, - _im_=hex$3(b$0) << 8, - y=hex$3(a$0) << 12 | _im_ | _il_ | _ik_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error$0 - (cst_Invalid_low_surrogate_for_$0,v,lexbuf); + ys = b$0[2], + xs = a$0[2], + compare_keys = + function(param, _o1_){ + var key = _o1_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), + ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); + try{ + var + _oV_ = + function(param, _o0_){ + var + value = _o0_[2], + key = _o0_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal(value$0, value) + : 0; + }, + result = caml_call3(Stdlib_List[34], _oV_, xs$0, ys$0); + return result; + } + catch(_oZ_){ + var _oU_ = caml_wrap_exception(_oZ_); + if(_oU_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_oU_, 0); + } + } + } + else if + (848054399 > _oT_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(726928360 === _oT_){ + if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(737456202 === _oT_){ + if(typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (708012134 > _oT_ && typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _oX_ = b$0[2], + value = _oX_[2], + name = _oX_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + if(switch$0) + try{ + var result$0 = caml_call3(Stdlib_List[34], equal, xs$1, ys$1); + return result$0; + } + catch(_oY_){ + var _oW_ = caml_wrap_exception(_oY_); + if(_oW_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_oW_, 0); + } + } + else + if(-375152890 <= _oT_){ + if(3654863 === _oT_){ + if(typeof b$0 !== "number" && 3654863 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else + if(365180284 === _oT_){ + if(typeof b$0 !== "number" && 365180284 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + } + else if + (-375152889 > _oT_ + && typeof b$0 !== "number" && -375152890 === b$0[1]){ + var b$5 = b$0[2], a$5 = a$0[2]; + return caml_equal(a$5, b$5); + } + } + else + if(-976970511 === _oT_){ + if(typeof b$0 !== "number" && -976970511 === b$0[1]){ + var b$6 = b$0[2], a$6 = a$0[2]; + return caml_equal(a$6, b$6); + } + } + else if + (-752863768 === _oT_ + && typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$7 = b$0[2], a$7 = a$0[2]; + return caml_equal(a$7, b$7); + } + } + return 0; + } + } + function pp_list(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _as_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom(x){ + if(typeof x !== "number"){ + var _oS_ = x[1], switch$0 = 0; + if(737456202 <= _oS_){ + if(848054398 === _oS_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _oS_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _oS_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _oS_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$0); + var _od_ = x$0[1]; + if(708012133 > _od_){ + if(-752863768 === _od_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + if(3654863 <= _od_){ + if(365180284 > _od_){ + var x$6 = x$0[2], _oc_ = caml_call1(Stdlib[33], x$6); + return caml_call2(Stdlib_Format[13], out, _oc_); + } + var x$5 = x$0[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float(ob$0, x$5); + var s$2 = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float(ob, x$5); + var s$2 = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s$2); + } + if(-375152890 <= _od_){ + var s$3 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$3); + } + var s$4 = x$0[2], _ow_ = json_string_of_string(s$4); + return caml_call2(Stdlib_Format[13], out, _ow_); + } + if(737456202 <= _od_){ + if(928231259 <= _od_){ + if(963043957 > _od_){ + var s = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s); + } + var l = x$0[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$12); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _at_); + var + _oe_ = + function(out, param){ + var x = param[2], name = param[1], _oN_ = 1; + function _oO_(_oQ_, _oR_){return format(_oN_, std, _oQ_, _oR_);} + var _oP_ = json_string_of_string(name); + return caml_call5(Stdlib_Format[129], out, _aF_, _oP_, _oO_, x); + }, + _of_ = function(_oL_, _oM_){return pp_list(cst$11, _oe_, _oL_, _oM_);}; + caml_call4(Stdlib_Format[129], out, _au_, _of_, l); + var _og_ = 1 - inside_box; + return _og_ ? caml_call2(Stdlib_Format[129], out, _av_) : _og_; + } + if(848054398 > _od_){ + var x$1 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$1); + } + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$15); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aw_); + if(caml_call2(Stdlib_List[32], is_atom, l$0)){ + var + _oh_ = 0, + _oi_ = function(_oF_, _oG_){return format(_oh_, std, _oF_, _oG_);}, + _oj_ = function(_oD_, _oE_){return pp_list(cst$13, _oi_, _oD_, _oE_);}; + caml_call4(Stdlib_Format[129], out, _ax_, _oj_, l$0); + } + else{ + var + _ol_ = 0, + _om_ = function(_oJ_, _oK_){return format(_ol_, std, _oJ_, _oK_);}, + _on_ = function(_oH_, _oI_){return pp_list(cst$14, _om_, _oH_, _oI_);}; + caml_call4(Stdlib_Format[129], out, _az_, _on_, l$0); + } + var _ok_ = 1 - inside_box; + return _ok_ ? caml_call2(Stdlib_Format[129], out, _ay_) : _ok_; + } + if(726928360 <= _od_){ + var l$1 = x$0[2]; + if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} + if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$16); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _aA_); + var + _oo_ = 0, + _op_ = function(_oB_, _oC_){return format(_oo_, std, _oB_, _oC_);}, + _oq_ = function(_oz_, _oA_){return pp_list(cst$17, _op_, _oz_, _oA_);}; + caml_call4(Stdlib_Format[129], out, _aB_, _oq_, l$1); + var _or_ = 1 - inside_box; + return _or_ ? caml_call2(Stdlib_Format[129], out, _aC_) : _or_; + } + var _os_ = x$0[2], match = _os_[2], s$0 = _os_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -976970511, s$0], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string(s$0), + _ot_ = 1, + _ou_ = function(_ox_, _oy_){return format(_ot_, std, _ox_, _oy_);}; + return caml_call5(Stdlib_Format[129], out, _aD_, op, _ou_, x$3); + } + if(std){ + var representation$0 = [0, -976970511, s$0], x$0 = representation$0; + continue; + } + var _ov_ = json_string_of_string(s$0); + return caml_call3(Stdlib_Format[129], out, _aE_, _ov_); + } + } + function pp$0(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _n__ = 1; + function _n$_(_oa_, _ob_){return format(_n__, std, _oa_, _ob_);} + return caml_call4(Stdlib_Format[129], out, _aG_, _n$_, x); + } + function pretty_print(std, out, x){return pp$0(std, out, x);} + function pretty_to_string(std, x){ + function _n7_(_n8_, _n9_){return pp$0(std, _n8_, _n9_);} + return caml_call3(Stdlib_Format[133], _aH_, _n7_, x); + } + function pretty_to_channel(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _n4_(_n5_, _n6_){return pp$0(std, _n5_, _n6_);} + return caml_call4(Stdlib_Format[129], fmt, _aI_, _n4_, x); + } + function hex$0(n){ + var _n3_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _n3_); + } + function write_special$0(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$0(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _n1_ = caml_ml_string_length(src) - 1 | 0, _n0_ = 0; + if(_n1_ >= 0){ + var stop = _n0_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$0(src, start, stop, ob, cst$18); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$0(src, start, stop, ob, cst_b$0); break; + case 1: + write_special$0(src, start, stop, ob, cst_t$0); break; + case 2: + write_special$0(src, start, stop, ob, cst_n$0); break; + case 4: + write_special$0(src, start, stop, ob, cst_f$0); break; + case 5: + write_special$0(src, start, stop, ob, cst_r$0); break; + case 26: + write_special$0(src, start, stop, ob, cst$19); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: + caml_call4 + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$0); + var _nY_ = hex$0(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _nY_); + var _nZ_ = hex$0(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _nZ_); + start[1] = stop + 1 | 0; + break; + } + } + var _n2_ = stop + 1 | 0; + if(_n1_ !== stop){var stop = _n2_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _aJ_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$0(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$0(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$0(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$1); + } + function write_bool$0(ob, x){ + var _nX_ = x ? cst_true$0 : cst_false$0; + return caml_call2(Stdlib_Buffer[16], ob, _nX_); + } + var + _aK_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _aL_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _aL_, _aK_); + function write_digits$0(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits$0(s, x / 10 | 0); + var + n = caml_call1(Stdlib[18], d), + _nW_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _nW_); + } + function write_int$0(ob, x){ + return 0 < x + ? write_digits$0(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$0(ob, x)); + } + function float_needs_period$0(s){ + try{ + var _nS_ = caml_ml_string_length(s) - 1 | 0, _nR_ = 0; + if(_nS_ >= 0){ + var i = _nR_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _nU_ = i + 1 | 0; + if(_nS_ !== i){var i = _nU_; continue;} + break; + } + } + var _nT_ = 1; + return _nT_; + } + catch(_nV_){ + var _nQ_ = caml_wrap_exception(_nV_); + if(_nQ_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_nQ_, 0); + } + } + function write_float$0(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _nO_ = 0. < x ? cst_Infinity$3 : cst_Infinity$4; + return caml_call2(Stdlib_Buffer[16], ob, _nO_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$1); + var + s1 = caml_call2(Stdlib_Printf[4], _aM_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _aN_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _nP_ = float_needs_period$0(s); + return _nP_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$2) : _nP_; + } + function write_normal_float_prec$0(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _aO_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _aP_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _aQ_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _aR_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _aS_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _aT_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _aU_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _aV_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _aW_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _aX_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _aY_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _aZ_, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _a0_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _a1_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _a2_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _a3_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _a4_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _nN_ = float_needs_period$0(s); + return _nN_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$3) : _nN_; + } + function write_float_prec$0(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$2) + : write_normal_float_prec$0(significant_figures, ob, x); + var _nM_ = 0. < x ? cst_Infinity$5 : cst_Infinity$6; + return caml_call2(Stdlib_Buffer[16], ob, _nM_); + } + function write_std_float$0(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _nK_ = + 0. < x + ? cst_Infinity_value_not_allowed$3 + : cst_Infinity_value_not_allowed$4; + return json_error(_nK_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$1); + var + s1 = caml_call2(Stdlib_Printf[4], _a5_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _a6_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _nL_ = float_needs_period$0(s); + return _nL_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$4) : _nL_; + } + function write_std_float_prec$0(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$2) + : write_normal_float_prec$0(significant_figures, ob, x); + var + _nJ_ = + 0. < x + ? cst_Infinity_value_not_allowed$5 + : cst_Infinity_value_not_allowed$6; + return json_error(_nJ_); + } + function iter2$0(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$0(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_list$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$0(write_json$0, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$0(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$0(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$0(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$0(f_elt, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$0(ob, x){ + if(typeof x === "number") return write_null$0(ob, 0); + var _nI_ = x[1]; + if(365180284 > _nI_){ + if(3654863 <= _nI_){var i = x[2]; return write_int$0(ob, i);} + var s = x[2]; + return write_string$0(ob, s); + } + if(848054398 <= _nI_){ + if(963043957 <= _nI_){var l = x[2]; return write_assoc$0(ob, l);} + var l$0 = x[2]; + return write_list$0(ob, l$0); + } + if(737456202 <= _nI_){var b = x[2]; return write_bool$0(ob, b);} + var f = x[2]; + return write_float$0(ob, f); + } + function write_std_json$0(ob, x){ + if(typeof x === "number") return write_null$0(ob, 0); + var _nH_ = x[1]; + if(365180284 > _nH_){ + if(3654863 <= _nH_){var i = x[2]; return write_int$0(ob, i);} + var s = x[2]; + return write_string$0(ob, s); + } + if(848054398 <= _nH_){ + if(963043957 <= _nH_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$0(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$0(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$0(f_elt, f_sep$0, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$0(write_std_json$0, f_sep$0, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + if(737456202 <= _nH_){var b = x[2]; return write_bool$0(ob, b);} + var f = x[2]; + return write_std_float$0(ob, f); + } + function to_buffer$0(opt, _nG_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$20; + if(_nG_) var sth$0 = _nG_[1], std = sth$0; else var std = 0; + if(std) write_std_json$0(ob, x); else write_json$0(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$0(buf, opt, _nF_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_nF_) var sth$0 = _nF_[1], suf = sth$0; else var suf = cst$21; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$0(buf, opt, _nE_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_nE_) var sth$0 = _nE_[1], suf = sth$0; else var suf = cst$22; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$0(buf, opt, _nC_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_nC_) var sth$0 = _nC_[1], suf = sth$0; else var suf = cst$23; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$0([0, suf], std, ob$0, x); + var _nD_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 2), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _nD_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$0(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$24; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$0(0, len, [0, suf], std, oc, x); + var _nB_ = caml_call1(Stdlib[76], oc); + return _nB_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$0(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$25; + var _ny_ = [0, suf]; + function _nz_(_nA_){return to_buffer$0(_ny_, std, ob, _nA_);} + return caml_call2(Stdlib_Seq[4], _nz_, st); + } + function seq_to_string$0(buf, opt, _nx_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_nx_) var sth$0 = _nx_[1], suf = sth$0; else var suf = cst$26; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$0([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$0(buf, opt, _nv_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_nv_) var sth$0 = _nv_[1], suf = sth$0; else var suf = cst$27; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _nw_(json){ + to_buffer$0([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _nw_, seq); + } + function seq_to_file$0(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$28; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$0(0, len, [0, suf], std, oc, st); + var _nu_ = caml_call1(Stdlib[76], oc); + return _nu_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$0(x){ + if(typeof x !== "number"){ + var _no_ = x[1]; + if(848054398 === _no_){ + var l = x[2], _np_ = caml_call2(Stdlib_List[21], sort$0, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _np_)]; + } + if(963043957 === _no_){ + var + l$0 = x[2], + _nq_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$0(v)]; + }, + _nr_ = caml_call2(Stdlib_List[21], _nq_, l$0), + l$1 = caml_call1(Stdlib_List[9], _nr_), + _ns_ = + function(param, _nt_){ + var b = _nt_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _ns_, l$1)]; + } + } + return x; + } + function pp_list$0(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _a7_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$0(x){ + if(typeof x !== "number"){ + var _nn_ = x[1], switch$0 = 0; + if(737456202 <= _nn_){ + if(848054398 === _nn_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _nn_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _nn_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _nn_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$0(inside_box, std, out, x){ + if(typeof x === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$2); + var _mY_ = x[1]; + if(365180284 > _mY_){ + if(3654863 <= _mY_){ + var x$2 = x[2], _mX_ = caml_call1(Stdlib[33], x$2); + return caml_call2(Stdlib_Format[13], out, _mX_); + } + var s$0 = x[2], _m9_ = json_string_of_string$0(s$0); + return caml_call2(Stdlib_Format[13], out, _m9_); + } + if(848054398 > _mY_){ + if(737456202 <= _mY_){ + var x$0 = x[2]; + return caml_call2(Stdlib_Format[25], out, x$0); + } + var x$1 = x[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float$0(ob$0, x$1); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float$0(ob, x$1); + var s = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s); + } + if(963043957 <= _mY_){ + var l = x[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$30); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a8_); + var + _mZ_ = + function(out, param){ + var x = param[2], name = param[1], _ni_ = 1; + function _nj_(_nl_, _nm_){return format$0(_ni_, std, _nl_, _nm_);} + var _nk_ = json_string_of_string$0(name); + return caml_call5(Stdlib_Format[129], out, _bd_, _nk_, _nj_, x); + }, + _m0_ = function(_ng_, _nh_){return pp_list$0(cst$29, _mZ_, _ng_, _nh_);}; + caml_call4(Stdlib_Format[129], out, _a9_, _m0_, l); + var _m1_ = 1 - inside_box; + return _m1_ ? caml_call2(Stdlib_Format[129], out, _a__) : _m1_; + } + var l$0 = x[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$33); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _a$_); + if(caml_call2(Stdlib_List[32], is_atom$0, l$0)){ + var + _m2_ = 0, + _m3_ = function(_na_, _nb_){return format$0(_m2_, std, _na_, _nb_);}, + _m4_ = function(_m__, _m$_){return pp_list$0(cst$31, _m3_, _m__, _m$_);}; + caml_call4(Stdlib_Format[129], out, _ba_, _m4_, l$0); + } + else{ + var + _m6_ = 0, + _m7_ = function(_ne_, _nf_){return format$0(_m6_, std, _ne_, _nf_);}, + _m8_ = function(_nc_, _nd_){return pp_list$0(cst$32, _m7_, _nc_, _nd_);}; + caml_call4(Stdlib_Format[129], out, _bc_, _m8_, l$0); + } + var _m5_ = 1 - inside_box; + return _m5_ ? caml_call2(Stdlib_Format[129], out, _bb_) : _m5_; + } + function pp$1(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _mT_ = 1; + function _mU_(_mV_, _mW_){return format$0(_mT_, std, _mV_, _mW_);} + return caml_call4(Stdlib_Format[129], out, _be_, _mU_, x); + } + function pp$2(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$0); + var _mO_ = param[1]; + if(365180284 > _mO_){ + if(3654863 <= _mO_){ + var x$1 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bB_); + caml_call3(Stdlib_Format[129], fmt, _bC_, x$1); + return caml_call2(Stdlib_Format[129], fmt, _bD_); + } + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bE_); + caml_call3(Stdlib_Format[129], fmt, _bF_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _bG_); + } + if(848054398 <= _mO_){ + if(963043957 <= _mO_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bh_); + caml_call2(Stdlib_Format[129], fmt, _bi_); + var + _mP_ = 0, + _mQ_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _bj_); + caml_call2(Stdlib_Format[129], fmt, _bk_); + caml_call3(Stdlib_Format[129], fmt, _bl_, key); + caml_call2(Stdlib_Format[129], fmt, _bm_); + pp$2(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _bn_); + return 1; + }; + caml_call3(Stdlib_List[25], _mQ_, _mP_, xs); + caml_call2(Stdlib_Format[129], fmt, _bo_); + return caml_call2(Stdlib_Format[129], fmt, _bp_); + } + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bq_); + caml_call2(Stdlib_Format[129], fmt, _br_); + var + _mR_ = 0, + _mS_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _bs_); + pp$2(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _mS_, _mR_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _bt_); + return caml_call2(Stdlib_Format[129], fmt, _bu_); + } + if(737456202 <= _mO_){ + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _bv_); + caml_call3(Stdlib_Format[129], fmt, _bw_, x); + return caml_call2(Stdlib_Format[129], fmt, _bx_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _by_); + caml_call3(Stdlib_Format[129], fmt, _bz_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _bA_); + } + function show$0(x){return caml_call3(Stdlib_Format[133], _bH_, pp$2, x);} + function equal$0(a, b){ + if(typeof a === "number"){ + if(870828711 === a && 870828711 === b) return 1; + } + else{ + var _mG_ = a[1]; + if(365180285 <= _mG_){ + if(737456202 === _mG_){ + if(typeof b !== "number" && 737456202 === b[1]){ + var b$0 = b[2], a$0 = a[2]; + return caml_equal(a$0, b$0); + } + } + else + if(848054398 === _mG_){ + if(typeof b !== "number" && 848054398 === b[1]){ + var ys = b[2], xs = a[2]; + try{ + var result = caml_call3(Stdlib_List[34], equal$0, xs, ys); + return result; + } + catch(_mK_){ + var _mH_ = caml_wrap_exception(_mK_); + if(_mH_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_mH_, 0); + } + } + } + else if + (963043957 === _mG_ && typeof b !== "number" && 963043957 === b[1]){ + var + ys$0 = b[2], + xs$0 = a[2], + compare_keys = + function(param, _mN_){ + var key = _mN_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), + ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); + try{ + var + _mJ_ = + function(param, _mM_){ + var + value = _mM_[2], + key = _mM_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$0(value$0, value) + : 0; + }, + result$0 = caml_call3(Stdlib_List[34], _mJ_, xs$1, ys$1); + return result$0; + } + catch(_mL_){ + var _mI_ = caml_wrap_exception(_mL_); + if(_mI_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_mI_, 0); + } + } + } + else + if(-976970511 === _mG_){ + if(typeof b !== "number" && -976970511 === b[1]){ + var b$1 = b[2], a$1 = a[2]; + return caml_equal(a$1, b$1); + } + } + else + if(3654863 === _mG_){ + if(typeof b !== "number" && 3654863 === b[1]){ + var b$2 = b[2], a$2 = a[2]; + return caml_equal(a$2, b$2); + } + } + else if + (365180284 <= _mG_ && typeof b !== "number" && 365180284 === b[1]){var b$3 = b[2], a$3 = a[2]; return caml_equal(a$3, b$3);} + } + return 0; + } + function pretty_print$0(std, out, x){return pp$1(std, out, x);} + function pretty_to_string$0(std, x){ + function _mD_(_mE_, _mF_){return pp$1(std, _mE_, _mF_);} + return caml_call3(Stdlib_Format[133], _bf_, _mD_, x); + } + function pretty_to_channel$0(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _mA_(_mB_, _mC_){return pp$1(std, _mB_, _mC_);} + return caml_call4(Stdlib_Format[129], fmt, _bg_, _mA_, x); + } + var + from_channel = Stdlib_Lexing[2], + from_string = Stdlib_Lexing[3], + lexeme = Stdlib_Lexing[8], + sub_lexeme = Stdlib_Lexing[16], + sub_lexeme_char = Stdlib_Lexing[18]; + function hex$1(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _bI_], 1); + } + function custom_error(descr, v, lexbuf){ + var + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _bJ_, s); + else + var file_line = cst_Line; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _bK_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _bM_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _bL_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error(descr, v, lexbuf){ + var _mz_ = caml_call1(lexeme, lexbuf); + return custom_error + (caml_call3(Stdlib_Printf[4], _bN_, descr, _mz_), v, lexbuf); + } + var + read_junk = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _bO_], 1); + }]; + function long_error(descr, v, lexbuf){ + var + junk = caml_call1(lexeme, lexbuf), + extra_junk = caml_call1(read_junk[1], lexbuf); + return custom_error + (caml_call4(Stdlib_Printf[4], _bP_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _bQ_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10 = (Stdlib[20] / 10 | 0) - _bQ_ | 0, + _bR_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10 = (Stdlib[19] / 10 | 0) + _bR_ | 0, + Int_overflow = [248, cst_Yojson_Basic_Int_overflow, caml_fresh_oo_id(0)]; + function extract_positive_int(lexbuf){ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _mw_ = stop - 1 | 0; + if(_mw_ >= start){ + var i = start; + for(;;){ + if(max10 <= n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); + var _mx_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _mx_ | 0; + var _my_ = i + 1 | 0; + if(_mw_ !== i){var i = _my_; continue;} + break; + } + } + if(0 <= n[1]) return n[1]; + throw caml_maybe_attach_backtrace(Int_overflow, 1); + } + function extract_negative_int(lexbuf){ + var + start = lexbuf[5] + 1 | 0, + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _mt_ = stop - 1 | 0; + if(_mt_ >= start){ + var i = start; + for(;;){ + if(n[1] <= min10) throw caml_maybe_attach_backtrace(Int_overflow, 1); + var _mu_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _mu_ | 0; + var _mv_ = i + 1 | 0; + if(_mt_ !== i){var i = _mv_; continue;} + break; + } + } + if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow, 1); + return n[1]; + } + function newline(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _bS_; + case 1: + return _bT_; + case 2: + return 870828711; + case 3: + return [0, 365180284, Stdlib[24]]; + case 4: + return [0, 365180284, Stdlib[22]]; + case 5: + return [0, 365180284, Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8], v[1]); + return [0, -976970511, finish_string(v, lexbuf)]; + case 7: + try{ + var _mg_ = [0, 3654863, extract_positive_int(lexbuf)]; + return _mg_; + } + catch(_ms_){ + var _mf_ = caml_wrap_exception(_ms_); + if(_mf_ === Int_overflow) + return lexer_error(cst_Int_overflow, v, lexbuf); + throw caml_maybe_attach_backtrace(_mf_, 0); + } + case 8: + try{ + var _mi_ = [0, 3654863, extract_negative_int(lexbuf)]; + return _mi_; + } + catch(_mr_){ + var _mh_ = caml_wrap_exception(_mr_); + if(_mh_ === Int_overflow) + return lexer_error(cst_Int_overflow$0, v, lexbuf); + throw caml_maybe_attach_backtrace(_mh_, 0); + } + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme, lexbuf))]; + case 10: + var acc = [0, 0]; + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + var field_name = read_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + var _mk_ = acc[1]; + acc[1] = [0, [0, field_name, read_json(v, lexbuf)], _mk_]; + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + var field_name$0 = read_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + var _ml_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json(v, lexbuf)], _ml_]; + } + } + catch(_mq_){ + var _mj_ = caml_wrap_exception(_mq_); + if(_mj_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_mj_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + var _mn_ = acc$0[1]; + acc$0[1] = [0, read_json(v, lexbuf), _mn_]; + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + var _mo_ = acc$0[1]; + acc$0[1] = [0, read_json(v, lexbuf), _mo_]; + } + } + catch(_mp_){ + var _mm_ = caml_wrap_exception(_mp_); + if(_mm_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_mm_, 0); + } + case 12: + return long_error(cst_Invalid_token, v, lexbuf); + case 13: + return long_error(cst_Invalid_token$0, v, lexbuf); + case 14: + continue a; + case 15: + finish_comment(v, lexbuf); continue a; + case 16: + newline(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error(cst_Unexpected_end_of_input, v, lexbuf); + default: return long_error(cst_Invalid_token$1, v, lexbuf); + } + } + } + } + function finish_string(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char(v, lexbuf); continue a; + case 2: + add_lexeme(v[1], lexbuf); continue a; + default: + return custom_error(cst_Unexpected_end_of_input$0, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _me_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _me_); + case 1: + finish_escaped_char(v, lexbuf); continue a; + case 2: + add_lexeme(v[1], lexbuf); continue a; + default: + return custom_error(cst_Unexpected_end_of_input$1, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), + _l__ = hex$1(d), + _l$_ = hex$1(c$0) << 4, + _ma_ = hex$1(b) << 8, + x = hex$1(a) << 12 | _ma_ | _l$_ | _l__; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char, lexbuf, lexbuf[5] + 5 | 0), + _mb_ = hex$1(d$0), + _mc_ = hex$1(c$1) << 4, + _md_ = hex$1(b$0) << 8, + y = hex$1(a$0) << 12 | _md_ | _mc_ | _mb_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error(cst_Invalid_low_surrogate_for_, v, lexbuf); + case 1: + return long_error(cst_Missing_escape_sequence_re, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$3, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error(cst_Invalid_escape_sequence, v, lexbuf); + default: return custom_error(cst_Unexpected_end_of_input$2, v, lexbuf); + } + } + } + function finish_stringlit(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error(cst_Invalid_string_literal, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$4, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json(v, lexbuf); + read_space(v, lexbuf); + read_gt(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error(cst_Expected_or_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$5, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$6, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$7, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$8, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error(cst_Expected_or_but_found$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$9, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Unterminated_comment, v, lexbuf); + case 2: + newline(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline(v, lexbuf); continue a; + case 1: + finish_comment(v, lexbuf); continue a; + case 2: + newline(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_null_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$10, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error(cst_Expected_true_or_false_but, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$11, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{var _l3_ = extract_positive_int(lexbuf); return _l3_;} + catch(_l9_){ + var _l2_ = caml_wrap_exception(_l9_); + if(_l2_ === Int_overflow) + return lexer_error(cst_Int_overflow$1, v, lexbuf); + throw caml_maybe_attach_backtrace(_l2_, 0); + } + case 1: + try{var _l5_ = extract_negative_int(lexbuf); return _l5_;} + catch(_l8_){ + var _l4_ = caml_wrap_exception(_l8_); + if(_l4_ === Int_overflow) + return lexer_error(cst_Int_overflow$2, v, lexbuf); + throw caml_maybe_attach_backtrace(_l4_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _l6_ = caml_int_of_string(s); return _l6_;} + catch(_l7_){ + return custom_error(cst_Expected_an_integer_but_fo, v, lexbuf); + } + case 3: + return long_error(cst_Expected_integer_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$12, v, lexbuf); + } + } + } + function read_int32(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _lY_ = caml_int_of_string(caml_call1(lexeme, lexbuf)); + return _lY_; + } + catch(_l1_){return lexer_error(cst_Int32_overflow, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lZ_ = caml_int_of_string(s); return _lZ_;} + catch(_l0_){ + return custom_error(cst_Expected_an_int32_but_foun, v, lexbuf); + } + case 2: + return long_error(cst_Expected_int32_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$13, v, lexbuf); + } + } + } + function read_int64(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _lU_ = caml_int64_of_string(caml_call1(lexeme, lexbuf)); + return _lU_; + } + catch(_lX_){return lexer_error(cst_Int32_overflow$0, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lV_ = caml_int64_of_string(s); return _lV_;} + catch(_lW_){ + return custom_error(cst_Expected_an_int64_but_foun, v, lexbuf); + } + case 2: + return long_error(cst_Expected_int64_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$14, v, lexbuf); + } + } + } + function read_number(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string(v, lexbuf); + try{var _lS_ = caml_float_of_string(s); return _lS_;} + catch(_lT_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error(cst_Expected_a_number_but_foun, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error(cst_Expected_number_but_found, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$15, v, lexbuf); + } + } + } + function read_string(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); + case 1: + return long_error(cst_Expected_but_found$2, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$16, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return finish_string(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error(cst_Expected_string_or_identif, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$17, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); return map_string(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error(cst_Expected_string_or_identif$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$18, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_lR_){ + var _lQ_ = caml_wrap_exception(_lR_); + if(_lQ_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_lQ_, 0); + } + case 1: + return long_error(cst_Expected_but_found$3, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$19, v, lexbuf); + } + } + } + function read_list_rev(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + var _lN_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lN_]; + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + var _lO_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _lO_]; + } + } + catch(_lP_){ + var _lM_ = caml_wrap_exception(_lP_); + if(_lM_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_lM_, 0); + } + case 1: + return long_error(cst_Expected_but_found$4, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$20, v, lexbuf); + } + } + } + function read_array_end(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error(cst_Expected_or_but_found$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$21, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return long_error(cst_Invalid_token$2, v, lexbuf); + case 1: + return long_error(cst_Expected_but_found$5, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$22, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error(cst_Expected_or_but_found$2, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error(cst_Expected_or_but_found$3, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error(cst_Expected_or_but_found$4, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$23, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error(cst_Expected_or_but_found$5, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error(cst_Expected_or_but_found$6, v, lexbuf); + case 3: + return long_error(cst_Expected_or_but_found$7, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$24, v, lexbuf); + } + } + } + function read_abstract_fields(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_lL_){ + var _lK_ = caml_wrap_exception(_lL_); + if(_lK_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_lK_, 0); + } + case 1: + return long_error(cst_Expected_but_found$6, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$25, v, lexbuf); + } + } + } + function read_lcurl(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$7, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$26, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error(cst_Expected_or_but_found$8, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$27, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$8, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$28, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error(cst_Expected_or_but_found$9, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$29, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$9, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$30, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$10, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$31, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$11, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$32, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Expected_but_found$12, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$33, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error(cst_Invalid_string_literal$0, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$35, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space(v, lexbuf); + read_object_end(lexbuf); + skip_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_object_sep(v, lexbuf); + read_space(v, lexbuf); + skip_ident(v, lexbuf); + read_space(v, lexbuf); + read_colon(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + } + } + catch(_lJ_){ + var _lG_ = caml_wrap_exception(_lJ_); + if(_lG_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_lG_, 0); + } + case 10: + try{ + read_space(v, lexbuf); + read_array_end(lexbuf); + skip_json(v, lexbuf); + for(;;){ + read_space(v, lexbuf); + read_array_sep(v, lexbuf); + read_space(v, lexbuf); + skip_json(v, lexbuf); + } + } + catch(_lI_){ + var _lH_ = caml_wrap_exception(_lI_); + if(_lH_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_lH_, 0); + } + case 11: + return long_error(cst_Invalid_token$3, v, lexbuf); + case 12: + return long_error(cst_Invalid_token$4, v, lexbuf); + case 13: + continue a; + case 14: + finish_comment(v, lexbuf); continue a; + case 15: + newline(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error(cst_Unexpected_end_of_input$34, v, lexbuf); + default: return long_error(cst_Invalid_token$5, v, lexbuf); + } + } + } + } + function finish_skip_variant(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json(v, lexbuf); + read_space(v, lexbuf); + return read_gt(v, lexbuf); + case 1: + return 0; + case 2: + return long_error(cst_Expected_or_but_found$10, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$36, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_ident(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit(v, lexbuf); + case 1: + return 0; + case 2: + return long_error(cst_Expected_string_or_identif$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$37, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme(v[1], lexbuf); + case 1: + return long_error(cst_Invalid_string_literal$1, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$39, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme(v[1], lexbuf); + case 1: + return finish_buffer_stringlit(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space(v, lexbuf); + var ocaml_lex_state$1 = 478; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$1, lexbuf); + if(0 === ocaml_lex_state$2){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$2){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + buffer_ident(v, lexbuf); + buffer_space(v, lexbuf); + buffer_colon(v, lexbuf); + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + b: + for(;;){ + buffer_space(v, lexbuf); + var ocaml_lex_state$3 = 480; + for(;;){ + var + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$3, lexbuf); + if(3 < ocaml_lex_state$4 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + switch(ocaml_lex_state$4){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error(cst_Expected_or_but_found$11, v, lexbuf); break; + default: + custom_error(cst_Unexpected_end_of_input$41, v, lexbuf); + } + buffer_space(v, lexbuf); + buffer_ident(v, lexbuf); + buffer_space(v, lexbuf); + buffer_colon(v, lexbuf); + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + continue b; + } + } + } + } + catch(_lF_){ + var _lC_ = caml_wrap_exception(_lF_); + if(_lC_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_lC_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space(v, lexbuf); + var ocaml_lex_state$5 = 485; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$5, lexbuf); + if(0 === ocaml_lex_state$6){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$6){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + buffer_json(v, lexbuf); + b: + for(;;){ + buffer_space(v, lexbuf); + var ocaml_lex_state$7 = 487; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state$7, lexbuf); + if(3 < ocaml_lex_state$8 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + switch(ocaml_lex_state$8){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error(cst_Expected_or_but_found$12, v, lexbuf); break; + default: + custom_error(cst_Unexpected_end_of_input$42, v, lexbuf); + } + buffer_space(v, lexbuf); + buffer_json(v, lexbuf); + continue b; + } + } + } + } + catch(_lE_){ + var _lD_ = caml_wrap_exception(_lE_); + if(_lD_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_lD_, 0); + } + case 4: + return long_error(cst_Invalid_token$6, v, lexbuf); + case 5: + return long_error(cst_Invalid_token$7, v, lexbuf); + case 6: + add_lexeme(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$34); + finish_buffer_comment(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + case 9: + add_lexeme(v[1], lexbuf); continue a; + case 10: + return custom_error(cst_Unexpected_end_of_input$38, v, lexbuf); + default: return long_error(cst_Invalid_token$8, v, lexbuf); + } + } + } + } + function buffer_ident(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit(v, lexbuf); + case 1: + return add_lexeme(v[1], lexbuf); + case 2: + return long_error(cst_Expected_string_or_identif$2, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$40, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme(v[1], lexbuf); newline(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$35); + finish_buffer_comment(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + case 3: + add_lexeme(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error(cst_Expected_but_found$13, v, lexbuf); + default: + return custom_error(cst_Unexpected_end_of_input$43, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$36); + case 1: + return long_error(cst_Unterminated_comment$0, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline(v, lexbuf); + continue a; + default: add_lexeme(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk[1] = junk; + function read_int8(v, lexbuf){ + var n = read_int(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error(cst_Int8_overflow, v, lexbuf); + } + function read_list(read_cell, v, lexbuf){ + var _lB_ = read_list_rev(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _lB_); + } + function read_array(read_cell, v, lexbuf){ + var l = read_list_rev(read_cell, v, lexbuf); + if(! l) return [0]; + var + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _ly_ = len - 2 | 0; + if(_ly_ >= 0){ + var i = _ly_; + for(;;){ + var _lz_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _lz_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _lA_ = i - 1 | 0; + if(0 !== i){var i = _lA_; continue;} + break; + } + } + return a; + } + function read_fields(read_field, init_acc, v){ + return function(_lx_){ + return read_abstract_fields(read_ident, read_field, init_acc, v, _lx_);}; + } + function from_lexbuf(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space(v, lexbuf); + if(read_eof(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json(v, lexbuf); + if(1 - stream){ + read_space(v, lexbuf); + if(1 - read_eof(lexbuf)) + long_error(cst_Junk_after_end_of_JSON_val, v, lexbuf); + } + return x; + } + function from_string$0(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _lv_ = from_lexbuf(v, 0, lexbuf); + return _lv_; + } + catch(_lw_){ + var _lu_ = caml_wrap_exception(_lw_); + if(_lu_ === End_of_input) return json_error(cst_Blank_input_data); + throw caml_maybe_attach_backtrace(_lu_, 0); + } + } + function from_channel$0(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _ls_ = from_lexbuf(v, 0, lexbuf); + return _ls_; + } + catch(_lt_){ + var _lr_ = caml_wrap_exception(_lt_); + if(_lr_ === End_of_input) return json_error(cst_Blank_input_data$0); + throw caml_maybe_attach_backtrace(_lr_, 0); + } + } + function from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$0(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally = [248, cst_Yojson_Basic_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _lq_ = [0, from_lexbuf(v, stream, lexbuf), f]; return _lq_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf(v, 0, caml_call2(from_string, 0, s)); + } + function seq_from_channel(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf(v, fin, lexbuf); + } + function seq_from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf(v, [0, fin], lexbuf); + } + function lineseq_from_channel(buf, opt, fname, _li_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_li_) var sth$0 = _li_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _ll_ = lnum + 1 | 0, + _lm_ = function(_lp_){return f(_ll_, _lp_);}, + _ln_ = + [0, + [0, 826371656, from_string$0(buf$0, fname, [0, lnum], line)], + _lm_]; + return _ln_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _lk_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_lo_){return f(_lk_, _lo_);}]; + } + } + return function(_lj_){return f(lnum0, _lj_);}; + } + function lineseq_from_file(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel(buf, [0, fin], fname$0, lnum, ic); + } + function prettify(std, s){ + return pretty_to_string$0(std, from_string$0(0, 0, 0, s)); + } + function compact(std, s){ + return to_string$0(0, 0, 0, 0, from_string$0(0, 0, 0, s)); + } + var + Type_error = [248, cst_Yojson_Basic_Util_Type_err, caml_fresh_oo_id(0)]; + function typerr(msg, js){ + if(typeof js === "number") + var _lh_ = cst_null$3; + else + var + _lg_ = js[1], + _lh_ = + 708012133 <= _lg_ + ? 726928360 + === _lg_ + ? cst_tuple + : 848054398 + <= _lg_ + ? 963043957 <= _lg_ ? cst_object : cst_array + : 737456202 <= _lg_ ? cst_bool : cst_variant + : 3654863 + <= _lg_ + ? 365180284 <= _lg_ ? cst_float : cst_int + : -752863768 <= _lg_ ? cst_intlit : cst_string; + throw caml_maybe_attach_backtrace + ([0, Type_error, caml_call2(Stdlib[28], msg, _lh_), js], 1); + } + var Undefined = [248, cst_Yojson_Basic_Util_Undefine, caml_fresh_oo_id(0)]; + function member(name, js){ + if(typeof js !== "number" && 963043957 === js[1]){ + var obj = js[2]; + try{var _ld_ = caml_call2(Stdlib_List[46], name, obj); return _ld_;} + catch(_lf_){ + var _lc_ = caml_wrap_exception(_lf_); + if(_lc_ === Stdlib[8]) return 870828711; + throw caml_maybe_attach_backtrace(_lc_, 0); + } + } + var _le_ = caml_call2(Stdlib[28], name, cst_of_non_object_type); + return typerr(caml_call2(Stdlib[28], cst_Can_t_get_member, _le_), js); + } + function index(i, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var + l = js[2], + len = caml_call1(Stdlib_List[1], l), + wrapped_index = 0 <= i ? i : len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7], l, wrapped_index); + var + _la_ = caml_call1(Stdlib[33], i), + _lb_ = caml_call2(Stdlib[28], _la_, cst_out_of_bounds); + throw caml_maybe_attach_backtrace + ([0, Undefined, caml_call2(Stdlib[28], cst_Index, _lb_), js], 1); + } + var + _k__ = caml_call1(Stdlib[33], i), + _k$_ = caml_call2(Stdlib[28], _k__, cst_of_non_array_type); + return typerr(caml_call2(Stdlib[28], cst_Can_t_get_index, _k$_), js); + } + function map(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; + } + return typerr(cst_Can_t_map_function_over_no, js); + } + function to_assoc(js){ + if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} + return typerr(cst_Expected_object_got, js); + } + function to_option(f, x){ + return 870828711 === x ? 0 : [0, caml_call1(f, x)]; + } + function to_bool(js){ + if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} + return typerr(cst_Expected_bool_got, js); + } + function to_bool_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(737456202 === js[1]){var b = js[2]; return [0, b];} + return typerr(cst_Expected_bool_or_null_got, js); + } + function to_number(js){ + if(typeof js !== "number"){ + var _k9_ = js[1]; + if(3654863 === _k9_){var i = js[2]; return i;} + if(365180284 === _k9_){var f = js[2]; return f;} + } + return typerr(cst_Expected_number_got, js); + } + function to_number_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else{ + var _k8_ = js[1]; + if(3654863 === _k8_){var i = js[2]; return [0, i];} + if(365180284 === _k8_){var f = js[2]; return [0, f];} + } + return typerr(cst_Expected_number_or_null_go, js); + } + function to_float(js){ + if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} + return typerr(cst_Expected_float_got, js); + } + function to_float_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(365180284 === js[1]){var f = js[2]; return [0, f];} + return typerr(cst_Expected_float_or_null_got, js); + } + function to_int(js){ + if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} + return typerr(cst_Expected_int_got, js); + } + function to_int_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(3654863 === js[1]){var i = js[2]; return [0, i];} + return typerr(cst_Expected_int_or_null_got, js); + } + function to_list(js){ + if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} + return typerr(cst_Expected_array_got, js); + } + function to_string$1(js){ + if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} + return typerr(cst_Expected_string_got, js); + } + function to_string_option(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(-976970511 === js[1]){var s = js[2]; return [0, s];} + return typerr(cst_Expected_string_or_null_go, js); + } + function convert_each(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return caml_call2(Stdlib_List[19], f, l); + } + return typerr(cst_Can_t_convert_each_element, js); + } + function filter_map(f, l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1], match = caml_call1(f, x); + if(match){ + var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; + continue; + } + var l = tl; + } + } + function flatten(l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1]; + if(typeof x !== "number" && 848054398 === x[1]){ + var + l2 = x[2], + acc$0 = caml_call2(Stdlib_List[12], l2, acc), + acc = acc$0, + l = tl; + continue; + } + var l = tl; + } + } + function filter_index(i, l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var l = param[2]; + try{ + var _k6_ = [0, caml_call2(Stdlib_List[7], l, i)]; + return _k6_; + } + catch(_k7_){return 0;} + } + return 0; + }, + l); + } + function filter_list(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_member(k, l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){ + var l = param[2]; + try{ + var _k4_ = [0, caml_call2(Stdlib_List[46], k, l)]; + return _k4_; + } + catch(_k5_){return 0;} + } + return 0; + }, + l); + } + function filter_assoc(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_bool(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_int(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_float(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_number(l){ + return filter_map + (function(param){ + if(typeof param !== "number"){ + var _k3_ = param[1]; + if(3654863 === _k3_){var x = param[2]; return [0, x];} + if(365180284 === _k3_){var x$0 = param[2]; return [0, x$0];} + } + return 0; + }, + l); + } + function filter_string(l){ + return filter_map + (function(param){ + if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function keys(o){ + var _k1_ = to_assoc(o); + function _k2_(param){var key = param[1]; return key;} + return caml_call1(caml_call1(Stdlib_List[19], _k2_), _k1_); + } + function values(o){ + var _kZ_ = to_assoc(o); + function _k0_(param){var value = param[2]; return value;} + return caml_call1(caml_call1(Stdlib_List[19], _k0_), _kZ_); + } + function combine(first, second){ + if + (typeof first !== "number" + && + 963043957 === first[1] + && typeof second !== "number" && 963043957 === second[1]){ + var b = second[2], a = first[2]; + return [0, 963043957, caml_call2(Stdlib[37], a, b)]; + } + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Expected_two_objects_check], 1); + } + function to_basic(x){ + if(typeof x !== "number"){ + var _kU_ = x[1]; + if(726928360 <= _kU_){ + if(737456202 !== _kU_){ + if(963043957 <= _kU_){ + var + l = x[2], + _kV_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, to_basic(v)]; + }, + _kW_ = caml_call2(Stdlib_List[21], _kV_, l); + return [0, 963043957, caml_call1(Stdlib_List[9], _kW_)]; + } + var l$0 = x[2], _kX_ = caml_call2(Stdlib_List[21], to_basic, l$0); + return [0, 848054398, caml_call1(Stdlib_List[9], _kX_)]; + } + } + else{ + if(-752863768 === _kU_){var s = x[2]; return [0, -976970511, s];} + if(708012133 <= _kU_){ + var _kY_ = x[2], match = _kY_[2], k = _kY_[1]; + if(! match) return [0, -976970511, k]; + var v = match[1]; + return [0, 848054398, [0, [0, -976970511, k], [0, to_basic(v), 0]]]; + } + } + } + return x; + } + function hex$2(n){ + var _kT_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _kT_); + } + function write_special$1(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$1(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _kR_ = caml_ml_string_length(src) - 1 | 0, _kQ_ = 0; + if(_kR_ >= 0){ + var stop = _kQ_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$1(src, start, stop, ob, cst$37); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$1(src, start, stop, ob, cst_b$1); break; + case 1: + write_special$1(src, start, stop, ob, cst_t$1); break; + case 2: + write_special$1(src, start, stop, ob, cst_n$1); break; + case 4: + write_special$1(src, start, stop, ob, cst_f$1); break; + case 5: + write_special$1(src, start, stop, ob, cst_r$1); break; + case 26: + write_special$1(src, start, stop, ob, cst$38); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: + caml_call4 + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$1); + var _kO_ = hex$2(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _kO_); + var _kP_ = hex$2(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _kP_); + start[1] = stop + 1 | 0; + break; + } + } + var _kS_ = stop + 1 | 0; + if(_kR_ !== stop){var stop = _kS_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _bU_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$1(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$1(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$1(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$4); + } + function write_bool$1(ob, x){ + var _kN_ = x ? cst_true$1 : cst_false$1; + return caml_call2(Stdlib_Buffer[16], ob, _kN_); + } + var + _bV_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _bW_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _bW_, _bV_); + function write_digits$1(s, x){ + if(0 === x) return 0; + var d = x % 10 | 0; + write_digits$1(s, x / 10 | 0); + var + n = caml_call1(Stdlib[18], d), + _kM_ = caml_call1(Stdlib_Char[1], n + 48 | 0); + return caml_call2(Stdlib_Buffer[12], s, _kM_); + } + function write_int$1(ob, x){ + return 0 < x + ? write_digits$1(ob, x) + : 0 + <= x + ? caml_call2(Stdlib_Buffer[12], ob, 48) + : (caml_call2(Stdlib_Buffer[12], ob, 45), write_digits$1(ob, x)); + } + function float_needs_period$1(s){ + try{ + var _kI_ = caml_ml_string_length(s) - 1 | 0, _kH_ = 0; + if(_kI_ >= 0){ + var i = _kH_; + for(;;){ + var match = caml_string_get(s, i), switch$0 = 0; + if(48 <= match){ + if(58 > match) switch$0 = 1; + } + else if(45 === match) switch$0 = 1; + if(! switch$0) throw caml_maybe_attach_backtrace(Stdlib[3], 1); + var _kK_ = i + 1 | 0; + if(_kI_ !== i){var i = _kK_; continue;} + break; + } + } + var _kJ_ = 1; + return _kJ_; + } + catch(_kL_){ + var _kG_ = caml_wrap_exception(_kL_); + if(_kG_ === Stdlib[3]) return 0; + throw caml_maybe_attach_backtrace(_kG_, 0); + } + } + function write_float$1(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var _kE_ = 0. < x ? cst_Infinity$7 : cst_Infinity$8; + return caml_call2(Stdlib_Buffer[16], ob, _kE_); + } + if(4 <= match) return caml_call2(Stdlib_Buffer[16], ob, cst_NaN$3); + var + s1 = caml_call2(Stdlib_Printf[4], _bX_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _bY_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _kF_ = float_needs_period$1(s); + return _kF_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$5) : _kF_; + } + function write_normal_float_prec$1(significant_figures, ob, x){ + var switcher = significant_figures - 1 | 0; + if(15 < switcher >>> 0) + var s = caml_call2(Stdlib_Printf[4], _bZ_, x); + else + switch(switcher){ + case 0: + var s = caml_call2(Stdlib_Printf[4], _b0_, x); break; + case 1: + var s = caml_call2(Stdlib_Printf[4], _b1_, x); break; + case 2: + var s = caml_call2(Stdlib_Printf[4], _b2_, x); break; + case 3: + var s = caml_call2(Stdlib_Printf[4], _b3_, x); break; + case 4: + var s = caml_call2(Stdlib_Printf[4], _b4_, x); break; + case 5: + var s = caml_call2(Stdlib_Printf[4], _b5_, x); break; + case 6: + var s = caml_call2(Stdlib_Printf[4], _b6_, x); break; + case 7: + var s = caml_call2(Stdlib_Printf[4], _b7_, x); break; + case 8: + var s = caml_call2(Stdlib_Printf[4], _b8_, x); break; + case 9: + var s = caml_call2(Stdlib_Printf[4], _b9_, x); break; + case 10: + var s = caml_call2(Stdlib_Printf[4], _b__, x); break; + case 11: + var s = caml_call2(Stdlib_Printf[4], _b$_, x); break; + case 12: + var s = caml_call2(Stdlib_Printf[4], _ca_, x); break; + case 13: + var s = caml_call2(Stdlib_Printf[4], _cb_, x); break; + case 14: + var s = caml_call2(Stdlib_Printf[4], _cc_, x); break; + default: var s = caml_call2(Stdlib_Printf[4], _cd_, x); + } + caml_call2(Stdlib_Buffer[16], ob, s); + var _kD_ = float_needs_period$1(s); + return _kD_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$6) : _kD_; + } + function write_float_prec$1(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? caml_call2(Stdlib_Buffer[16], ob, cst_NaN$4) + : write_normal_float_prec$1(significant_figures, ob, x); + var _kC_ = 0. < x ? cst_Infinity$9 : cst_Infinity$10; + return caml_call2(Stdlib_Buffer[16], ob, _kC_); + } + function write_std_float$1(ob, x){ + var match = caml_classify_float(x); + if(3 === match){ + var + _kA_ = + 0. < x + ? cst_Infinity_value_not_allowed$7 + : cst_Infinity_value_not_allowed$8; + return json_error(_kA_); + } + if(4 <= match) return json_error(cst_NaN_value_not_allowed_in_s$3); + var + s1 = caml_call2(Stdlib_Printf[4], _ce_, x), + s = + caml_float_of_string(s1) == x + ? s1 + : caml_call2(Stdlib_Printf[4], _cf_, x); + caml_call2(Stdlib_Buffer[16], ob, s); + var _kB_ = float_needs_period$1(s); + return _kB_ ? caml_call2(Stdlib_Buffer[16], ob, cst_0$7) : _kB_; + } + function write_std_float_prec$1(significant_figures, ob, x){ + var match = caml_classify_float(x); + if(3 !== match) + return 4 <= match + ? json_error(cst_NaN_value_not_allowed_in_s$4) + : write_normal_float_prec$1(significant_figures, ob, x); + var + _kz_ = + 0. < x + ? cst_Infinity_value_not_allowed$9 + : cst_Infinity_value_not_allowed$10; + return json_error(_kz_); + } + var write_intlit$0 = Stdlib_Buffer[16]; + function iter2$1(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$1(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant$0(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string$1(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json$1(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2$1(write_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$1(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$1(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$1(f_elt, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$1(ob, x){ + if(typeof x === "number") return write_null$1(ob, 0); + var _ky_ = x[1]; + if(708012133 <= _ky_){ + if(726928360 === _ky_){var l = x[2]; return write_tuple$0(ob, l);} + if(848054398 <= _ky_){ + if(963043957 <= _ky_){var l$0 = x[2]; return write_assoc$1(ob, l$0);} + var l$1 = x[2]; + return write_list$1(ob, l$1); + } + if(737456202 <= _ky_){var b = x[2]; return write_bool$1(ob, b);} + var match = x[2], o = match[2], s = match[1]; + return write_variant$0(ob, s, o); + } + if(3654863 <= _ky_){ + if(365180284 <= _ky_){var f = x[2]; return write_float$1(ob, f);} + var i = x[2]; + return write_int$1(ob, i); + } + if(-752863768 <= _ky_){ + var s$0 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$0); + } + var s$1 = x[2]; + return write_string$1(ob, s$1); + } + function write_std_variant$0(ob, s, o){ + if(! o) return write_string$1(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json$1(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple$0(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_std_json$1, f_sep$1, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json$1(ob, x){ + if(typeof x === "number") return write_null$1(ob, 0); + var _kx_ = x[1]; + if(708012133 <= _kx_){ + if(726928360 === _kx_){var l = x[2]; return write_std_tuple$0(ob, l);} + if(848054398 <= _kx_){ + if(963043957 <= _kx_){ + var + l$0 = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$1(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$1(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$1(f_elt, f_sep$1, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var l$1 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$1(write_std_json$1, f_sep$1, ob, l$1); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + if(737456202 <= _kx_){var b = x[2]; return write_bool$1(ob, b);} + var match = x[2], o = match[2], s = match[1]; + return write_std_variant$0(ob, s, o); + } + if(3654863 <= _kx_){ + if(365180284 <= _kx_){var f = x[2]; return write_std_float$1(ob, f);} + var i = x[2]; + return write_int$1(ob, i); + } + if(-752863768 <= _kx_){ + var s$0 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$0); + } + var s$1 = x[2]; + return write_string$1(ob, s$1); + } + function to_buffer$1(opt, _kw_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$39; + if(_kw_) var sth$0 = _kw_[1], std = sth$0; else var std = 0; + if(std) write_std_json$1(ob, x); else write_json$1(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$2(buf, opt, _kv_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_kv_) var sth$0 = _kv_[1], suf = sth$0; else var suf = cst$40; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$1(buf, opt, _ku_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ku_) var sth$0 = _ku_[1], suf = sth$0; else var suf = cst$41; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$1(buf, opt, _ks_, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ks_) var sth$0 = _ks_[1], suf = sth$0; else var suf = cst$42; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$1([0, suf], std, ob$0, x); + var _kt_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 3), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _kt_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$1(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$43; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$1(0, len, [0, suf], std, oc, x); + var _kr_ = caml_call1(Stdlib[76], oc); + return _kr_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$1(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$44; + var _ko_ = [0, suf]; + function _kp_(_kq_){return to_buffer$1(_ko_, std, ob, _kq_);} + return caml_call2(Stdlib_Seq[4], _kp_, st); + } + function seq_to_string$1(buf, opt, _kn_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_kn_) var sth$0 = _kn_[1], suf = sth$0; else var suf = cst$45; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$1([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$1(buf, opt, _kl_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_kl_) var sth$0 = _kl_[1], suf = sth$0; else var suf = cst$46; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _km_(json){ + to_buffer$1([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _km_, seq); + } + function seq_to_file$1(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$47; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$1(0, len, [0, suf], std, oc, st); + var _kk_ = caml_call1(Stdlib[76], oc); + return _kk_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$1(x){ + if(typeof x !== "number"){ + var _kc_ = x[1]; + if(726928361 <= _kc_){ + if(848054398 === _kc_){ + var l = x[2], _kd_ = caml_call2(Stdlib_List[21], sort$1, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _kd_)]; + } + if(963043957 === _kc_){ + var + l$0 = x[2], + _ke_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$1(v)]; + }, + _kf_ = caml_call2(Stdlib_List[21], _ke_, l$0), + l$1 = caml_call1(Stdlib_List[9], _kf_), + _kg_ = + function(param, _kj_){ + var b = _kj_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _kg_, l$1)]; + } + } + else if(708012133 === _kc_){ + var _kh_ = x[2], match = _kh_[2]; + if(match){ + var v = match[1], k = _kh_[1], v$0 = sort$1(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _kc_){ + var l$2 = x[2], _ki_ = caml_call2(Stdlib_List[21], sort$1, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _ki_)]; + } + } + return x; + } + function pp_list$1(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _cg_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$1(x){ + if(typeof x !== "number"){ + var _kb_ = x[1], switch$0 = 0; + if(737456202 <= _kb_){ + if(848054398 === _kb_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _kb_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _kb_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _kb_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$1(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$5); + var _jy_ = x$0[1]; + if(708012133 > _jy_){ + if(3654863 <= _jy_){ + if(365180284 > _jy_){ + var x$6 = x$0[2], _jx_ = caml_call1(Stdlib[33], x$6); + return caml_call2(Stdlib_Format[13], out, _jx_); + } + var x$5 = x$0[2]; + if(std){ + var ob$0 = caml_call1(Stdlib_Buffer[1], 20); + write_std_float$1(ob$0, x$5); + var s$0 = caml_call1(Stdlib_Buffer[2], ob$0); + } + else{ + var ob = caml_call1(Stdlib_Buffer[1], 20); + write_float$1(ob, x$5); + var s$0 = caml_call1(Stdlib_Buffer[2], ob); + } + return caml_call2(Stdlib_Format[13], out, s$0); + } + if(-752863768 <= _jy_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + var s$2 = x$0[2], _jR_ = json_string_of_string$1(s$2); + return caml_call2(Stdlib_Format[13], out, _jR_); + } + if(726928360 === _jy_){ + var l = x$0[2]; + if(std){var x$1 = [0, 848054398, l], x$0 = x$1; continue;} + if(0 === l) return caml_call2(Stdlib_Format[13], out, cst$48); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ch_); + var + _jz_ = 0, + _jA_ = function(_j$_, _ka_){return format$1(_jz_, std, _j$_, _ka_);}, + _jB_ = + function(_j9_, _j__){return pp_list$1(cst$49, _jA_, _j9_, _j__);}; + caml_call4(Stdlib_Format[129], out, _ci_, _jB_, l); + var _jC_ = 1 - inside_box; + return _jC_ ? caml_call2(Stdlib_Format[129], out, _cj_) : _jC_; + } + if(848054398 <= _jy_){ + if(963043957 <= _jy_){ + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$51); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _ck_); + var + _jD_ = + function(out, param){ + var x = param[2], name = param[1], _j4_ = 1; + function _j5_(_j7_, _j8_){return format$1(_j4_, std, _j7_, _j8_);} + var _j6_ = json_string_of_string$1(name); + return caml_call5(Stdlib_Format[129], out, _ct_, _j6_, _j5_, x); + }, + _jE_ = + function(_j2_, _j3_){return pp_list$1(cst$50, _jD_, _j2_, _j3_);}; + caml_call4(Stdlib_Format[129], out, _cl_, _jE_, l$0); + var _jF_ = 1 - inside_box; + return _jF_ ? caml_call2(Stdlib_Format[129], out, _cm_) : _jF_; + } + var l$1 = x$0[2]; + if(! l$1) return caml_call2(Stdlib_Format[13], out, cst$54); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _cn_); + if(caml_call2(Stdlib_List[32], is_atom$1, l$1)){ + var + _jG_ = 0, + _jH_ = function(_jW_, _jX_){return format$1(_jG_, std, _jW_, _jX_);}, + _jI_ = + function(_jU_, _jV_){return pp_list$1(cst$52, _jH_, _jU_, _jV_);}; + caml_call4(Stdlib_Format[129], out, _co_, _jI_, l$1); + } + else{ + var + _jK_ = 0, + _jL_ = function(_j0_, _j1_){return format$1(_jK_, std, _j0_, _j1_);}, + _jM_ = + function(_jY_, _jZ_){return pp_list$1(cst$53, _jL_, _jY_, _jZ_);}; + caml_call4(Stdlib_Format[129], out, _cq_, _jM_, l$1); + } + var _jJ_ = 1 - inside_box; + return _jJ_ ? caml_call2(Stdlib_Format[129], out, _cp_) : _jJ_; + } + if(737456202 <= _jy_){ + var x$2 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$2); + } + var _jN_ = x$0[2], match = _jN_[2], s = _jN_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -976970511, s], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string$1(s), + _jO_ = 1, + _jP_ = function(_jS_, _jT_){return format$1(_jO_, std, _jS_, _jT_);}; + return caml_call5(Stdlib_Format[129], out, _cr_, op, _jP_, x$3); + } + if(std){ + var representation$0 = [0, -976970511, s], x$0 = representation$0; + continue; + } + var _jQ_ = json_string_of_string$1(s); + return caml_call3(Stdlib_Format[129], out, _cs_, _jQ_); + } + } + function pp$3(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _jt_ = 1; + function _ju_(_jv_, _jw_){return format$1(_jt_, std, _jv_, _jw_);} + return caml_call4(Stdlib_Format[129], out, _cu_, _ju_, x); + } + function pp$4(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$1); + var _jm_ = param[1]; + if(708012133 <= _jm_){ + if(726928360 === _jm_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cx_); + caml_call2(Stdlib_Format[129], fmt, _cy_); + var + _jn_ = 0, + _jo_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _cz_); + pp$4(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _jo_, _jn_, tup); + caml_call2(Stdlib_Format[129], fmt, _cA_); + return caml_call2(Stdlib_Format[129], fmt, _cB_); + } + if(848054398 <= _jm_){ + if(963043957 <= _jm_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cC_); + caml_call2(Stdlib_Format[129], fmt, _cD_); + var + _jp_ = 0, + _jq_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _cE_); + caml_call2(Stdlib_Format[129], fmt, _cF_); + caml_call3(Stdlib_Format[129], fmt, _cG_, key); + caml_call2(Stdlib_Format[129], fmt, _cH_); + pp$4(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _cI_); + return 1; + }; + caml_call3(Stdlib_List[25], _jq_, _jp_, xs); + caml_call2(Stdlib_Format[129], fmt, _cJ_); + return caml_call2(Stdlib_Format[129], fmt, _cK_); + } + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cL_); + caml_call2(Stdlib_Format[129], fmt, _cM_); + var + _jr_ = 0, + _js_ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _cN_); + pp$4(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _js_, _jr_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _cO_); + return caml_call2(Stdlib_Format[129], fmt, _cP_); + } + if(737456202 <= _jm_){ + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cQ_); + caml_call3(Stdlib_Format[129], fmt, _cR_, x); + return caml_call2(Stdlib_Format[129], fmt, _cS_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _cT_); + caml_call2(Stdlib_Format[129], fmt, _cU_); + caml_call3(Stdlib_Format[129], fmt, _cV_, name); + caml_call2(Stdlib_Format[129], fmt, _cW_); + if(value){ + var x$0 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some$0); + pp$4(fmt, x$0); + caml_call2(Stdlib_Format[13], fmt, cst$55); + } + else + caml_call2(Stdlib_Format[13], fmt, cst_None$0); + caml_call2(Stdlib_Format[129], fmt, _cX_); + return caml_call2(Stdlib_Format[129], fmt, _cY_); + } + if(3654863 <= _jm_){ + if(365180284 <= _jm_){ + var x$1 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _cZ_); + caml_call3(Stdlib_Format[129], fmt, _c0_, x$1); + return caml_call2(Stdlib_Format[129], fmt, _c1_); + } + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c2_); + caml_call3(Stdlib_Format[129], fmt, _c3_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _c4_); + } + if(-752863768 <= _jm_){ + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c5_); + caml_call3(Stdlib_Format[129], fmt, _c6_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _c7_); + } + var x$4 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _c8_); + caml_call3(Stdlib_Format[129], fmt, _c9_, x$4); + return caml_call2(Stdlib_Format[129], fmt, _c__); + } + function show$1(x){return caml_call3(Stdlib_Format[133], _c$_, pp$4, x);} + function equal$1(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _jd_ = a$0[1]; + if(708012133 <= _jd_){ + var switch$0 = 0; + if(737456203 <= _jd_){ + if(848054398 === _jd_){ + if(typeof b$0 !== "number" && 848054398 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} + } + else if + (963043957 === _jd_ + && typeof b$0 !== "number" && 963043957 === b$0[1]){ + var + ys$0 = b$0[2], + xs$0 = a$0[2], + compare_keys = + function(param, _jl_){ + var key = _jl_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$1 = caml_call2(Stdlib_List[57], compare_keys, xs$0), + ys$1 = caml_call2(Stdlib_List[57], compare_keys, ys$0); + try{ + var + _jg_ = + function(param, _jk_){ + var + value = _jk_[2], + key = _jk_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$1(value$0, value) + : 0; + }, + result$0 = caml_call3(Stdlib_List[34], _jg_, xs$1, ys$1); + return result$0; + } + catch(_jj_){ + var _jf_ = caml_wrap_exception(_jj_); + if(_jf_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_jf_, 0); + } + } + } + else + if(726928360 === _jd_){ + if(typeof b$0 !== "number" && 726928360 === b$0[1]){var ys = b$0[2], xs = a$0[2]; switch$0 = 1;} + } + else + if(708012134 <= _jd_){ + if + (737456202 <= _jd_ + && typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else if(typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _jh_ = b$0[2], + value = _jh_[2], + name = _jh_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + if(switch$0) + try{ + var result = caml_call3(Stdlib_List[34], equal$1, xs, ys); + return result; + } + catch(_ji_){ + var _je_ = caml_wrap_exception(_ji_); + if(_je_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_je_, 0); + } + } + else + if(-752863767 <= _jd_){ + if(3654863 === _jd_){ + if(typeof b$0 !== "number" && 3654863 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (365180284 === _jd_ + && typeof b$0 !== "number" && 365180284 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else + if(-976970511 === _jd_){ + if(typeof b$0 !== "number" && -976970511 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + } + else if + (-752863768 <= _jd_ + && typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$5 = b$0[2], a$5 = a$0[2]; + return caml_equal(a$5, b$5); + } + } + return 0; + } + } + function pretty_print$1(std, out, x){return pp$3(std, out, x);} + function pretty_to_string$1(std, x){ + function _ja_(_jb_, _jc_){return pp$3(std, _jb_, _jc_);} + return caml_call3(Stdlib_Format[133], _cv_, _ja_, x); + } + function pretty_to_channel$1(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _i9_(_i__, _i$_){return pp$3(std, _i__, _i$_);} + return caml_call4(Stdlib_Format[129], fmt, _cw_, _i9_, x); + } + var + from_channel$1 = Stdlib_Lexing[2], + from_string$1 = Stdlib_Lexing[3], + lexeme$0 = Stdlib_Lexing[8], + sub_lexeme$0 = Stdlib_Lexing[16], + sub_lexeme_char$0 = Stdlib_Lexing[18]; + function hex$3(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _da_], 1); + } + function custom_error$0(descr, v, lexbuf){ + var + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _db_, s); + else + var file_line = cst_Line$0; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _dc_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _de_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _dd_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error$0(descr, v, lexbuf){ + var _i8_ = caml_call1(lexeme$0, lexbuf); + return custom_error$0 + (caml_call3(Stdlib_Printf[4], _df_, descr, _i8_), v, lexbuf); + } + var + read_junk$0 = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _dg_], 1); + }]; + function long_error$0(descr, v, lexbuf){ + var + junk = caml_call1(lexeme$0, lexbuf), + extra_junk = caml_call1(read_junk$0[1], lexbuf); + return custom_error$0 + (caml_call4(Stdlib_Printf[4], _dh_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _di_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10$0 = (Stdlib[20] / 10 | 0) - _di_ | 0, + _dj_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10$0 = (Stdlib[19] / 10 | 0) + _dj_ | 0, + Int_overflow$0 = [248, cst_Yojson_Safe_Int_overflow, caml_fresh_oo_id(0)]; + function extract_positive_int$0(lexbuf){ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _i5_ = stop - 1 | 0; + if(_i5_ >= start){ + var i = start; + for(;;){ + if(max10$0 <= n[1]) + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + var _i6_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _i6_ | 0; + var _i7_ = i + 1 | 0; + if(_i5_ !== i){var i = _i7_; continue;} + break; + } + } + if(0 <= n[1]) return n[1]; + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + } + function extract_negative_int$0(lexbuf){ + var + start = lexbuf[5] + 1 | 0, + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _i2_ = stop - 1 | 0; + if(_i2_ >= start){ + var i = start; + for(;;){ + if(n[1] <= min10$0) + throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + var _i3_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) - _i3_ | 0; + var _i4_ = i + 1 | 0; + if(_i2_ !== i){var i = _i4_; continue;} + break; + } + } + if(0 < n[1]) throw caml_maybe_attach_backtrace(Int_overflow$0, 1); + return n[1]; + } + function newline$0(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme$0(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _dk_; + case 1: + return _dl_; + case 2: + return 870828711; + case 3: + return [0, 365180284, Stdlib[24]]; + case 4: + return [0, 365180284, Stdlib[22]]; + case 5: + return [0, 365180284, Stdlib[23]]; + case 6: + caml_call1(Stdlib_Buffer[8], v[1]); + return [0, -976970511, finish_string$0(v, lexbuf)]; + case 7: + try{ + var _iL_ = [0, 3654863, extract_positive_int$0(lexbuf)]; + return _iL_; + } + catch(_i1_){ + var _iK_ = caml_wrap_exception(_i1_); + if(_iK_ === Int_overflow$0) + return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; + throw caml_maybe_attach_backtrace(_iK_, 0); + } + case 8: + try{ + var _iN_ = [0, 3654863, extract_negative_int$0(lexbuf)]; + return _iN_; + } + catch(_i0_){ + var _iM_ = caml_wrap_exception(_i0_); + if(_iM_ === Int_overflow$0) + return [0, -752863768, caml_call1(lexeme$0, lexbuf)]; + throw caml_maybe_attach_backtrace(_iM_, 0); + } + case 9: + return [0, + 365180284, + caml_float_of_string(caml_call1(lexeme$0, lexbuf))]; + case 10: + var acc = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + var field_name = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iP_ = acc[1]; + acc[1] = [0, [0, field_name, read_json$0(v, lexbuf)], _iP_]; + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var field_name$0 = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iQ_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json$0(v, lexbuf)], _iQ_]; + } + } + catch(_iZ_){ + var _iO_ = caml_wrap_exception(_iZ_); + if(_iO_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_iO_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + var _iS_ = acc$0[1]; + acc$0[1] = [0, read_json$0(v, lexbuf), _iS_]; + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iT_ = acc$0[1]; + acc$0[1] = [0, read_json$0(v, lexbuf), _iT_]; + } + } + catch(_iY_){ + var _iR_ = caml_wrap_exception(_iY_); + if(_iR_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_iR_, 0); + } + case 12: + var acc$1 = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + var _iV_ = acc$1[1]; + acc$1[1] = [0, read_json$0(v, lexbuf), _iV_]; + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _iW_ = acc$1[1]; + acc$1[1] = [0, read_json$0(v, lexbuf), _iW_]; + } + } + catch(_iX_){ + var _iU_ = caml_wrap_exception(_iX_); + if(_iU_ === End_of_tuple) + return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; + throw caml_maybe_attach_backtrace(_iU_, 0); + } + case 13: + read_space$0(v, lexbuf); + var cons = read_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + return [0, 708012133, [0, cons, finish_variant$0(v, lexbuf)]]; + case 14: + continue a; + case 15: + finish_comment$0(v, lexbuf); continue a; + case 16: + newline$0(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error$0(cst_Unexpected_end_of_input$44, v, lexbuf); + default: return long_error$0(cst_Invalid_token$9, v, lexbuf); + } + } + } + } + function finish_string$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char$0(v, lexbuf); continue a; + case 2: + add_lexeme$0(v[1], lexbuf); continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$45, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string$0(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _iJ_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _iJ_); + case 1: + finish_escaped_char$0(v, lexbuf); continue a; + case 2: + add_lexeme$0(v[1], lexbuf); continue a; + default: + return custom_error$0(cst_Unexpected_end_of_input$46, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char$0(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), + _iD_ = hex$3(d), + _iE_ = hex$3(c$0) << 4, + _iF_ = hex$3(b) << 8, + x = hex$3(a) << 12 | _iF_ | _iE_ | _iD_; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char$0, lexbuf, lexbuf[5] + 5 | 0), + _iG_ = hex$3(d$0), + _iH_ = hex$3(c$1) << 4, + _iI_ = hex$3(b$0) << 8, + y = hex$3(a$0) << 12 | _iI_ | _iH_ | _iG_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error$0(cst_Invalid_low_surrogate_for_$0, v, lexbuf); + case 1: + return long_error$0(cst_Missing_escape_sequence_re$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$48, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error$0(cst_Invalid_escape_sequence$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$47, v, lexbuf); + } + } + } + function finish_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error$0(cst_Invalid_string_literal$2, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$49, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant$0(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json$0(v, lexbuf); + read_space$0(v, lexbuf); + read_gt$0(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_or_but_found$13, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$50, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt$0(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$14, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$51, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt$0(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$15, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$52, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma$0(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$16, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$53, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant$0(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error$0(cst_Expected_or_but_found$14, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$54, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Unterminated_comment$1, v, lexbuf); + case 2: + newline$0(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof$0(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline$0(v, lexbuf); continue a; + case 1: + finish_comment$0(v, lexbuf); continue a; + case 2: + newline$0(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null$0(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_null_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$55, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible$0(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool$0(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error$0(cst_Expected_true_or_false_but$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$56, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int$0(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{var _iw_ = extract_positive_int$0(lexbuf); return _iw_;} + catch(_iC_){ + var _iv_ = caml_wrap_exception(_iC_); + if(_iv_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$3, v, lexbuf); + throw caml_maybe_attach_backtrace(_iv_, 0); + } + case 1: + try{var _iy_ = extract_negative_int$0(lexbuf); return _iy_;} + catch(_iB_){ + var _ix_ = caml_wrap_exception(_iB_); + if(_ix_ === Int_overflow$0) + return lexer_error$0(cst_Int_overflow$4, v, lexbuf); + throw caml_maybe_attach_backtrace(_ix_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _iz_ = caml_int_of_string(s); return _iz_;} + catch(_iA_){ + return custom_error$0(cst_Expected_an_integer_but_fo$0, v, lexbuf); + } + case 3: + return long_error$0(cst_Expected_integer_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$57, v, lexbuf); + } + } + } + function read_int32$0(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _ir_ = caml_int_of_string(caml_call1(lexeme$0, lexbuf)); + return _ir_; + } + catch(_iu_){return lexer_error$0(cst_Int32_overflow$1, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _is_ = caml_int_of_string(s); return _is_;} + catch(_it_){ + return custom_error$0(cst_Expected_an_int32_but_foun$0, v, lexbuf); + } + case 2: + return long_error$0(cst_Expected_int32_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$58, v, lexbuf); + } + } + } + function read_int64$0(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _in_ = caml_int64_of_string(caml_call1(lexeme$0, lexbuf)); + return _in_; + } + catch(_iq_){return lexer_error$0(cst_Int32_overflow$2, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _io_ = caml_int64_of_string(s); return _io_;} + catch(_ip_){ + return custom_error$0(cst_Expected_an_int64_but_foun$0, v, lexbuf); + } + case 2: + return long_error$0(cst_Expected_int64_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$59, v, lexbuf); + } + } + } + function read_number$0(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme$0, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$0(v, lexbuf); + try{var _il_ = caml_float_of_string(s); return _il_;} + catch(_im_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error$0 + (cst_Expected_a_number_but_foun$0, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error$0(cst_Expected_number_but_found$0, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$60, v, lexbuf); + } + } + } + function read_string$0(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$0(v, lexbuf); + case 1: + return long_error$0(cst_Expected_but_found$17, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$61, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident$0(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$0(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme$0, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error$0(cst_Expected_string_or_identif$3, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$62, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident$0(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return map_string$0(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error$0(cst_Expected_string_or_identif$4, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$63, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence$0(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_ik_){ + var _ij_ = caml_wrap_exception(_ik_); + if(_ij_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_ij_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$18, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$64, v, lexbuf); + } + } + } + function read_list_rev$0(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + var _ig_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ig_]; + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var _ih_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _ih_]; + } + } + catch(_ii_){ + var _if_ = caml_wrap_exception(_ii_); + if(_if_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_if_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$19, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$65, v, lexbuf); + } + } + } + function read_array_end$0(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep$0(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$15, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$66, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple$0(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var pos = [0, 0], acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + } + } + catch(_ie_){ + var _id_ = caml_wrap_exception(_ie_); + if(_id_ === End_of_tuple) return acc[1]; + throw caml_maybe_attach_backtrace(_id_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$20, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$67, v, lexbuf); + } + } + } + function read_tuple_end$0(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2$0(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error$0(cst_Expected_or_but_found$16, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$0(cst_Expected_or_but_found$17, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep$0(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$18, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$68, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2$0(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error$0(cst_Expected_or_but_found$19, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$0(cst_Expected_or_but_found$20, v, lexbuf); + case 3: + return long_error$0(cst_Expected_or_but_found$21, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$69, v, lexbuf); + } + } + } + function read_abstract_fields$0(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_ic_){ + var _ib_ = caml_wrap_exception(_ic_); + if(_ib_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_ib_, 0); + } + case 1: + return long_error$0(cst_Expected_but_found$21, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$70, v, lexbuf); + } + } + } + function read_lcurl$0(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$22, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$71, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end$0(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep$0(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error$0(cst_Expected_or_but_found$22, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$72, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon$0(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$23, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$73, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple$0(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error$0(cst_Expected_or_but_found$23, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$74, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar$0(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$24, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$75, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar$0(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$25, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$76, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr$0(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$26, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$77, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr$0(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Expected_but_found$27, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$78, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_variant$0(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json$0(v, lexbuf); + read_space$0(v, lexbuf); + return read_gt$0(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_or_but_found$24, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$81, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$0(cst_Invalid_string_literal$3, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$80, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit$0(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space$0(v, lexbuf); + read_object_end$0(lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_object_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + read_colon$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_ia_){ + var _h7_ = caml_wrap_exception(_ia_); + if(_h7_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_h7_, 0); + } + case 10: + try{ + read_space$0(v, lexbuf); + read_array_end$0(lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_array_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_h$_){ + var _h8_ = caml_wrap_exception(_h$_); + if(_h8_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_h8_, 0); + } + case 11: + try{ + read_space$0(v, lexbuf); + read_tuple_end$0(lexbuf); + skip_json$0(v, lexbuf); + for(;;){ + read_space$0(v, lexbuf); + read_tuple_sep$0(v, lexbuf); + read_space$0(v, lexbuf); + skip_json$0(v, lexbuf); + } + } + catch(_h__){ + var _h9_ = caml_wrap_exception(_h__); + if(_h9_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_h9_, 0); + } + case 12: + read_space$0(v, lexbuf); + skip_ident$0(v, lexbuf); + read_space$0(v, lexbuf); + return finish_skip_variant$0(v, lexbuf); + case 13: + continue a; + case 14: + finish_comment$0(v, lexbuf); continue a; + case 15: + newline$0(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error$0(cst_Unexpected_end_of_input$79, v, lexbuf); + default: return long_error$0(cst_Invalid_token$10, v, lexbuf); + } + } + } + } + function skip_ident$0(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit$0(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$0(cst_Expected_string_or_identif$5, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$82, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit$0(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme$0(v[1], lexbuf); + case 1: + return long_error$0(cst_Invalid_string_literal$4, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$84, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme$0(v[1], lexbuf); + case 1: + return finish_buffer_stringlit$0(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$3 = 478; + for(;;){ + var + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$3, lexbuf); + if(0 === ocaml_lex_state$4){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$4){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_colon$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$5 = 480; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$5, lexbuf); + if(3 < ocaml_lex_state$6 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + switch(ocaml_lex_state$6){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error$0(cst_Expected_or_but_found$26, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$87, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_colon$0(v, lexbuf); + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h6_){ + var _h1_ = caml_wrap_exception(_h6_); + if(_h1_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_h1_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$7 = 485; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$7, lexbuf); + if(0 === ocaml_lex_state$8){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$8){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$9 = 487; + for(;;){ + var + ocaml_lex_state$10 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$9, lexbuf); + if(3 < ocaml_lex_state$10 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$9 = ocaml_lex_state$10; + continue; + } + switch(ocaml_lex_state$10){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error$0(cst_Expected_or_but_found$27, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$88, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h5_){ + var _h2_ = caml_wrap_exception(_h5_); + if(_h2_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_h2_, 0); + } + case 4: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 40); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$11 = 492; + for(;;){ + var + ocaml_lex_state$12 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$11, lexbuf); + if(0 === ocaml_lex_state$12){ + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + } + if(1 !== ocaml_lex_state$12){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$11 = ocaml_lex_state$12; + continue; + } + buffer_json$0(v, lexbuf); + b: + for(;;){ + buffer_space$0(v, lexbuf); + var ocaml_lex_state$13 = 494; + for(;;){ + var + ocaml_lex_state$14 = + caml_lex_engine + (ocaml_lex_tables$0, ocaml_lex_state$13, lexbuf); + if(3 < ocaml_lex_state$14 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$13 = ocaml_lex_state$14; + continue; + } + switch(ocaml_lex_state$14){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + long_error$0(cst_Expected_or_but_found$28, v, lexbuf); break; + default: + custom_error$0(cst_Unexpected_end_of_input$89, v, lexbuf); + } + buffer_space$0(v, lexbuf); + buffer_json$0(v, lexbuf); + continue b; + } + } + } + } + catch(_h4_){ + var _h3_ = caml_wrap_exception(_h4_); + if(_h3_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_h3_, 0); + } + case 5: + caml_call2(Stdlib_Buffer[12], v[1], 60); + buffer_space$0(v, lexbuf); + buffer_ident$0(v, lexbuf); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$1 = 461; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state$1, lexbuf); + if(3 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 58); + buffer_json$0(v, lexbuf); + buffer_space$0(v, lexbuf); + var ocaml_lex_state$15 = 503; + for(;;){ + var + ocaml_lex_state$16 = + caml_lex_engine + (ocaml_lex_tables$0, ocaml_lex_state$15, lexbuf); + if(2 >= ocaml_lex_state$16 >>> 0) + switch(ocaml_lex_state$16){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 1: - return long_error$0 - (cst_Missing_escape_sequence_re$0,v,lexbuf); + return long_error$0(cst_Expected_but_found$29, v, lexbuf); default: return custom_error$0 - (cst_Unexpected_end_of_input$48,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error$0(cst_Invalid_escape_sequence$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$47,v,lexbuf)}}} - function finish_stringlit$0(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var - len=lexbuf[6] - lexbuf[5] | 0, - s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error$0(cst_Invalid_string_literal$2,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$49,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_variant$0(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var x=read_json$0(v,lexbuf); - read_space$0(v,lexbuf); - read_gt$0(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error$0(cst_Expected_or_but_found$13,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$50,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lt$0(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$14,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$51,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_gt$0(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$15,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$52,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_comma$0(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$16,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$53,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_variant$0(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error$0(cst_Expected_or_but_found$14,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$54,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_comment$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Unterminated_comment$1,v,lexbuf); - case 2:newline$0(v,lexbuf);continue a; - default:continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_eof$0(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_space$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:newline$0(v,lexbuf);continue a; - case 1:finish_comment$0(v,lexbuf);continue a; - case 2:newline$0(v,lexbuf);continue a; - case 3:continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_null$0(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_null_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$55,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_null_if_possible$0(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_bool$0(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4: - return long_error$0(cst_Expected_true_or_false_but$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$56,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_int_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _ib_=extract_positive_int$0(lexbuf);return _ib_} - catch(_ig_) - {_ig_ = caml_wrap_exception(_ig_); - if(_ig_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$3,v,lexbuf); - throw _ig_} + (cst_Unexpected_end_of_input$91, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$15 = ocaml_lex_state$16; + } + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 62); + case 2: + return long_error$0(cst_Expected_or_but_found$25, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$85, v, lexbuf); + } + } + case 6: + add_lexeme$0(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$56); + finish_buffer_comment$0(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + case 9: + add_lexeme$0(v[1], lexbuf); continue a; + case 10: + return custom_error$0(cst_Unexpected_end_of_input$83, v, lexbuf); + default: return long_error$0(cst_Invalid_token$11, v, lexbuf); + } + } + } + } + function buffer_ident$0(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit$0(v, lexbuf); + case 1: + return add_lexeme$0(v[1], lexbuf); + case 2: + return long_error$0(cst_Expected_string_or_identif$6, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$86, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme$0(v[1], lexbuf); newline$0(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$57); + finish_buffer_comment$0(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + case 3: + add_lexeme$0(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon$0(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error$0(cst_Expected_but_found$28, v, lexbuf); + default: + return custom_error$0(cst_Unexpected_end_of_input$90, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment$0(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$58); + case 1: + return long_error$0(cst_Unterminated_comment$2, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$0(v, lexbuf); + continue a; + default: add_lexeme$0(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk$0(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$0, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme$0, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk$0[1] = junk$0; + function read_int8$0(v, lexbuf){ + var n = read_int$0(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error$0(cst_Int8_overflow$0, v, lexbuf); + } + function read_list$0(read_cell, v, lexbuf){ + var _h0_ = read_list_rev$0(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _h0_); + } + function read_array$0(read_cell, v, lexbuf){ + var l = read_list_rev$0(read_cell, v, lexbuf); + if(! l) return [0]; + var + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _hX_ = len - 2 | 0; + if(_hX_ >= 0){ + var i = _hX_; + for(;;){ + var _hY_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _hY_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _hZ_ = i - 1 | 0; + if(0 !== i){var i = _hZ_; continue;} + break; + } + } + return a; + } + function read_fields$0(read_field, init_acc, v){ + return function(_hW_){ + return read_abstract_fields$0 + (read_ident$0, read_field, init_acc, v, _hW_);}; + } + function from_lexbuf$0(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space$0(v, lexbuf); + if(read_eof$0(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json$0(v, lexbuf); + if(1 - stream){ + read_space$0(v, lexbuf); + if(1 - read_eof$0(lexbuf)) + long_error$0(cst_Junk_after_end_of_JSON_val$0, v, lexbuf); + } + return x; + } + function from_string$2(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string$1, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _hU_ = from_lexbuf$0(v, 0, lexbuf); + return _hU_; + } + catch(_hV_){ + var _hT_ = caml_wrap_exception(_hV_); + if(_hT_ === End_of_input) return json_error(cst_Blank_input_data$1); + throw caml_maybe_attach_backtrace(_hT_, 0); + } + } + function from_channel$2(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _hR_ = from_lexbuf$0(v, 0, lexbuf); + return _hR_; + } + catch(_hS_){ + var _hQ_ = caml_wrap_exception(_hS_); + if(_hQ_ === End_of_input) return json_error(cst_Blank_input_data$2); + throw caml_maybe_attach_backtrace(_hQ_, 0); + } + } + function from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$2(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally$0 = [248, cst_Yojson_Safe_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf$0(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _hP_ = [0, from_lexbuf$0(v, stream$0, lexbuf), f]; return _hP_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally$0, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string$0(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$0(v, 0, caml_call2(from_string$1, 0, s)); + } + function seq_from_channel$0(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$0(v, fin, lexbuf); + } + function seq_from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel$1, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf$0(v, [0, fin], lexbuf); + } + function lineseq_from_channel$0(buf, opt, fname, _hH_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_hH_) var sth$0 = _hH_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _hK_ = lnum + 1 | 0, + _hL_ = function(_hO_){return f(_hK_, _hO_);}, + _hM_ = + [0, + [0, 826371656, from_string$2(buf$0, fname, [0, lnum], line)], + _hL_]; + return _hM_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _hJ_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_hN_){return f(_hJ_, _hN_);}]; + } + } + return function(_hI_){return f(lnum0, _hI_);}; + } + function lineseq_from_file$0(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel$0(buf, [0, fin], fname$0, lnum, ic); + } + function prettify$0(std, s){ + return pretty_to_string$1(std, from_string$2(0, 0, 0, s)); + } + function compact$0(std, s){ + return to_string$2(0, 0, 0, 0, from_string$2(0, 0, 0, s)); + } + var + Type_error$0 = [248, cst_Yojson_Safe_Util_Type_erro, caml_fresh_oo_id(0)]; + function typerr$0(msg, js){ + if(typeof js === "number") + var _hG_ = cst_null$6; + else + var + _hF_ = js[1], + _hG_ = + 708012133 <= _hF_ + ? 726928360 + === _hF_ + ? cst_tuple$0 + : 848054398 + <= _hF_ + ? 963043957 <= _hF_ ? cst_object$0 : cst_array$0 + : 737456202 <= _hF_ ? cst_bool$0 : cst_variant$0 + : 3654863 + <= _hF_ + ? 365180284 <= _hF_ ? cst_float$0 : cst_int$0 + : -752863768 <= _hF_ ? cst_intlit$0 : cst_string$0; + throw caml_maybe_attach_backtrace + ([0, Type_error$0, caml_call2(Stdlib[28], msg, _hG_), js], 1); + } + var + Undefined$0 = [248, cst_Yojson_Safe_Util_Undefined, caml_fresh_oo_id(0)]; + function member$0(name, js){ + if(typeof js !== "number" && 963043957 === js[1]){ + var obj = js[2]; + try{var _hC_ = caml_call2(Stdlib_List[46], name, obj); return _hC_;} + catch(_hE_){ + var _hB_ = caml_wrap_exception(_hE_); + if(_hB_ === Stdlib[8]) return 870828711; + throw caml_maybe_attach_backtrace(_hB_, 0); + } + } + var _hD_ = caml_call2(Stdlib[28], name, cst_of_non_object_type$0); + return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_member$0, _hD_), js); + } + function index$0(i, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var + l = js[2], + len = caml_call1(Stdlib_List[1], l), + wrapped_index = 0 <= i ? i : len + i | 0; + if(0 <= wrapped_index && len > wrapped_index) + return caml_call2(Stdlib_List[7], l, wrapped_index); + var + _hz_ = caml_call1(Stdlib[33], i), + _hA_ = caml_call2(Stdlib[28], _hz_, cst_out_of_bounds$0); + throw caml_maybe_attach_backtrace + ([0, Undefined$0, caml_call2(Stdlib[28], cst_Index$0, _hA_), js], + 1); + } + var + _hx_ = caml_call1(Stdlib[33], i), + _hy_ = caml_call2(Stdlib[28], _hx_, cst_of_non_array_type$0); + return typerr$0(caml_call2(Stdlib[28], cst_Can_t_get_index$0, _hy_), js); + } + function map$0(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return [0, 848054398, caml_call2(Stdlib_List[19], f, l)]; + } + return typerr$0(cst_Can_t_map_function_over_no$0, js); + } + function to_assoc$0(js){ + if(typeof js !== "number" && 963043957 === js[1]){var obj = js[2]; return obj;} + return typerr$0(cst_Expected_object_got$0, js); + } + function to_option$0(f, x){ + return 870828711 === x ? 0 : [0, caml_call1(f, x)]; + } + function to_bool$0(js){ + if(typeof js !== "number" && 737456202 === js[1]){var b = js[2]; return b;} + return typerr$0(cst_Expected_bool_got$0, js); + } + function to_bool_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(737456202 === js[1]){var b = js[2]; return [0, b];} + return typerr$0(cst_Expected_bool_or_null_got$0, js); + } + function to_number$0(js){ + if(typeof js !== "number"){ + var _hw_ = js[1]; + if(3654863 === _hw_){var i = js[2]; return i;} + if(365180284 === _hw_){var f = js[2]; return f;} + } + return typerr$0(cst_Expected_number_got$0, js); + } + function to_number_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else{ + var _hv_ = js[1]; + if(3654863 === _hv_){var i = js[2]; return [0, i];} + if(365180284 === _hv_){var f = js[2]; return [0, f];} + } + return typerr$0(cst_Expected_number_or_null_go$0, js); + } + function to_float$0(js){ + if(typeof js !== "number" && 365180284 === js[1]){var f = js[2]; return f;} + return typerr$0(cst_Expected_float_got$0, js); + } + function to_float_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(365180284 === js[1]){var f = js[2]; return [0, f];} + return typerr$0(cst_Expected_float_or_null_got$0, js); + } + function to_int$0(js){ + if(typeof js !== "number" && 3654863 === js[1]){var i = js[2]; return i;} + return typerr$0(cst_Expected_int_got$0, js); + } + function to_int_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(3654863 === js[1]){var i = js[2]; return [0, i];} + return typerr$0(cst_Expected_int_or_null_got$0, js); + } + function to_list$0(js){ + if(typeof js !== "number" && 848054398 === js[1]){var l = js[2]; return l;} + return typerr$0(cst_Expected_array_got$0, js); + } + function to_string$3(js){ + if(typeof js !== "number" && -976970511 === js[1]){var s = js[2]; return s;} + return typerr$0(cst_Expected_string_got$0, js); + } + function to_string_option$0(js){ + if(typeof js === "number"){ + if(870828711 === js) return 0; + } + else if(-976970511 === js[1]){var s = js[2]; return [0, s];} + return typerr$0(cst_Expected_string_or_null_go$0, js); + } + function convert_each$0(f, js){ + if(typeof js !== "number" && 848054398 === js[1]){ + var l = js[2]; + return caml_call2(Stdlib_List[19], f, l); + } + return typerr$0(cst_Can_t_convert_each_element$0, js); + } + function filter_map$0(f, l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1], match = caml_call1(f, x); + if(match){ + var y = match[1], acc$0 = [0, y, acc], acc = acc$0, l = tl; + continue; + } + var l = tl; + } + } + function flatten$0(l$0){ + var acc = 0, l = l$0; + for(;;){ + if(! l) return caml_call1(Stdlib_List[9], acc); + var tl = l[2], x = l[1]; + if(typeof x !== "number" && 848054398 === x[1]){ + var + l2 = x[2], + acc$0 = caml_call2(Stdlib_List[12], l2, acc), + acc = acc$0, + l = tl; + continue; + } + var l = tl; + } + } + function filter_index$0(i, l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var l = param[2]; + try{ + var _ht_ = [0, caml_call2(Stdlib_List[7], l, i)]; + return _ht_; + } + catch(_hu_){return 0;} + } + return 0; + }, + l); + } + function filter_list$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 848054398 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_member$0(k, l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){ + var l = param[2]; + try{ + var _hr_ = [0, caml_call2(Stdlib_List[46], k, l)]; + return _hr_; + } + catch(_hs_){return 0;} + } + return 0; + }, + l); + } + function filter_assoc$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 963043957 === param[1]){var l = param[2]; return [0, l];} + return 0; + }, + l); + } + function filter_bool$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 737456202 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_int$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 3654863 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_float$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && 365180284 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function filter_number$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number"){ + var _hq_ = param[1]; + if(3654863 === _hq_){var x = param[2]; return [0, x];} + if(365180284 === _hq_){var x$0 = param[2]; return [0, x$0];} + } + return 0; + }, + l); + } + function filter_string$0(l){ + return filter_map$0 + (function(param){ + if(typeof param !== "number" && -976970511 === param[1]){var x = param[2]; return [0, x];} + return 0; + }, + l); + } + function keys$0(o){ + var _ho_ = to_assoc$0(o); + function _hp_(param){var key = param[1]; return key;} + return caml_call1(caml_call1(Stdlib_List[19], _hp_), _ho_); + } + function values$0(o){ + var _hm_ = to_assoc$0(o); + function _hn_(param){var value = param[2]; return value;} + return caml_call1(caml_call1(Stdlib_List[19], _hn_), _hm_); + } + function combine$0(first, second){ + if + (typeof first !== "number" + && + 963043957 === first[1] + && typeof second !== "number" && 963043957 === second[1]){ + var b = second[2], a = first[2]; + return [0, 963043957, caml_call2(Stdlib[37], a, b)]; + } + throw caml_maybe_attach_backtrace + ([0, Stdlib[6], cst_Expected_two_objects_check$0], 1); + } + function hex$4(n){ + var _hl_ = 10 <= n ? n + 87 | 0 : n + 48 | 0; + return caml_call1(Stdlib_Char[1], _hl_); + } + function write_special$2(src, start, stop, ob, str){ + caml_call4(Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, str); + start[1] = stop + 1 | 0; + return 0; + } + function write_string$2(ob, src){ + caml_call2(Stdlib_Buffer[12], ob, 34); + var start = [0, 0], _hj_ = caml_ml_string_length(src) - 1 | 0, _hi_ = 0; + if(_hj_ >= 0){ + var stop = _hi_; + for(;;){ + var c = caml_string_get(src, stop); + if(92 === c) + write_special$2(src, start, stop, ob, cst$59); + else{ + var switch$0 = 0; + if(35 <= c){ + if(127 !== c) switch$0 = 2; + } + else if(8 <= c){ + var switch$1 = 0; + switch(c - 8 | 0){ + case 0: + write_special$2(src, start, stop, ob, cst_b$2); break; case 1: - try - {var _ic_=extract_negative_int$0(lexbuf);return _ic_} - catch(_if_) - {_if_ = caml_wrap_exception(_if_); - if(_if_ === Int_overflow$0) - return lexer_error$0(cst_Int_overflow$4,v,lexbuf); - throw _if_} + write_special$2(src, start, stop, ob, cst_t$2); break; case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _id_=caml_int_of_string(s);return _id_} - catch(_ie_) - {return custom_error$0(cst_Expected_an_integer_but_fo$0,v,lexbuf)} - case 3: - return long_error$0(cst_Expected_integer_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$57,v,lexbuf)}}} - function read_int$0(v,lexbuf) - {return ocaml_lex_read_int_rec$0(v,lexbuf,176)} - function ocaml_lex_read_int32_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _h9_=caml_int_of_string(caml_call1(lexeme$0,lexbuf)); - return _h9_} - catch(_ia_){return lexer_error$0(cst_Int32_overflow$1,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h__=caml_int_of_string(s);return _h__} - catch(_h$_) - {return custom_error$0(cst_Expected_an_int32_but_foun$0,v,lexbuf)} - case 2:return long_error$0(cst_Expected_int32_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$58,v,lexbuf)}}} - function read_int32$0(v,lexbuf) - {return ocaml_lex_read_int32_rec$0(v,lexbuf,185)} - function ocaml_lex_read_int64_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _h5_=caml_int64_of_string(caml_call1(lexeme$0,lexbuf)); - return _h5_} - catch(_h8_){return lexer_error$0(cst_Int32_overflow$2,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h6_=caml_int64_of_string(s);return _h6_} - catch(_h7_) - {return custom_error$0(cst_Expected_an_int64_but_foun$0,v,lexbuf)} - case 2:return long_error$0(cst_Expected_int64_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$59,v,lexbuf)}}} - function read_int64$0(v,lexbuf) - {return ocaml_lex_read_int64_rec$0(v,lexbuf,192)} - function ocaml_lex_read_number_rec$0(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme$0,lexbuf)); + write_special$2(src, start, stop, ob, cst_n$2); break; case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$3(v,lexbuf); - try - {var _h3_=caml_float_of_string(s);return _h3_} - catch(_h4_) - {return caml_string_notequal(s,cst_Infinity$13) - ?caml_string_notequal(s,cst_Infinity$14) - ?caml_string_notequal(s,cst_NaN$6) - ?custom_error$0(cst_Expected_a_number_but_foun$0,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} + write_special$2(src, start, stop, ob, cst_f$2); break; case 5: - return long_error$0(cst_Expected_number_but_found$0,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$60,v,lexbuf)}}} - function read_number$0(v,lexbuf) - {return ocaml_lex_read_number_rec$0(v,lexbuf,199)} - function read_string$0(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$3(v,lexbuf); - case 1:return long_error$0(cst_Expected_but_found$17,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$61,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_ident$0(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$3(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme$0,lexbuf,lexbuf[5],lexbuf[6]); - return s; - case 2: - return long_error$0(cst_Expected_string_or_identif$3,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$62,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function map_ident$0(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string$0(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2: - return long_error$0(cst_Expected_string_or_identif$4,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$63,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_sequence_rec$0 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} - catch(_h2_) - {_h2_ = caml_wrap_exception(_h2_); - if(_h2_ === End_of_array)return acc[1]; - throw _h2_} - case 1:return long_error$0(cst_Expected_but_found$18,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$64,v,lexbuf)}}} - function read_sequence$0(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec$0(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - var _hZ_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_hZ_]; - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var _h0_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_h0_]}} - catch(_h1_) - {_h1_ = caml_wrap_exception(_h1_); - if(_h1_ === End_of_array)return acc[1]; - throw _h1_} - case 1:return long_error$0(cst_Expected_but_found$19,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$65,v,lexbuf)}}} - function read_list_rev$0(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec$0(read_cell,v,lexbuf,251)} - function read_array_end$0(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_array_sep$0(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error$0(cst_Expected_or_but_found$15,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$66,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_tuple_rec - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var pos=[0,0],acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++}} - catch(_hY_) - {_hY_ = caml_wrap_exception(_hY_); - if(_hY_ === End_of_tuple)return acc[1]; - throw _hY_} - case 1:return long_error$0(cst_Expected_but_found$20,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$67,v,lexbuf)}}} - function read_tuple$0(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_tuple_rec(read_cell,init_acc,v,lexbuf,262)} - function read_tuple_end$0(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_end2$0(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error$0(cst_Expected_or_but_found$16,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error$0(cst_Expected_or_but_found$17,v,lexbuf); - default:return 0}}} - function read_tuple_sep$0(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error$0(cst_Expected_or_but_found$18,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$68,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_sep2$0(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error$0(cst_Expected_or_but_found$19,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error$0(cst_Expected_or_but_found$20,v,lexbuf); - case 3:return long_error$0(cst_Expected_or_but_found$21,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$69,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields$0 - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} - catch(_hX_) - {_hX_ = caml_wrap_exception(_hX_); - if(_hX_ === End_of_object)return acc[1]; - throw _hX_} - case 1:return long_error$0(cst_Expected_but_found$21,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$70,v,lexbuf)}}} - function read_abstract_fields$0(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields$0 - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl$0(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$22,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$71,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_end$0(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_sep$0(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error$0(cst_Expected_or_but_found$22,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$72,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_colon$0(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$23,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$73,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_tuple$0(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error$0(cst_Expected_or_but_found$23,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$74,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lpar$0(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$24,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$75,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rpar$0(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$25,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$76,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lbr$0(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$26,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$77,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rbr$0(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Expected_but_found$27,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$78,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_skip_variant$0(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - skip_json$0(v,lexbuf); - read_space$0(v,lexbuf); - return read_gt$0(v,lexbuf); - case 1:return 0; - case 2:return long_error$0(cst_Expected_or_but_found$24,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$81,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_skip_stringlit$0(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$0(cst_Invalid_string_literal$3,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$80,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function skip_json$3(counter,v,lexbuf) - {var _hW_=322; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_skip_json_rec$0,[0,v,lexbuf,_hW_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec$0(counter$0,v,lexbuf,_hW_)} - function ocaml_lex_skip_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit$0(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space$0(v,lexbuf); - read_object_end$0(lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_object_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - read_colon$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf)}} - catch(_hV_) - {_hV_ = caml_wrap_exception(_hV_); - if(_hV_ === End_of_object)return 0; - throw _hV_} - case 10: - try - {read_space$0(v,lexbuf); - read_array_end$0(lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_array_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf)}} - catch(_hU_) - {_hU_ = caml_wrap_exception(_hU_); - if(_hU_ === End_of_array)return 0; - throw _hU_} - case 11: - try - {read_space$0(v,lexbuf); - read_tuple_end$0(lexbuf); - skip_json$0(v,lexbuf); - for(;;) - {read_space$0(v,lexbuf); - read_tuple_sep$0(v,lexbuf); - read_space$0(v,lexbuf); - skip_json$0(v,lexbuf)}} - catch(_hT_) - {_hT_ = caml_wrap_exception(_hT_); - if(_hT_ === End_of_tuple)return 0; - throw _hT_} - case 12: - read_space$0(v,lexbuf); - skip_ident$0(v,lexbuf); - read_space$0(v,lexbuf); - return finish_skip_variant$0(v,lexbuf); - case 13: - if(counter >= 50) - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return skip_json$3(counter$0,v,lexbuf); - case 14: - finish_comment$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return skip_json$3(counter$1,v,lexbuf); - case 15: - newline$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return skip_json$3(counter$2,v,lexbuf); - case 16: - if(counter >= 50) - return caml_trampoline_return(skip_json$3,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return skip_json$3(counter$3,v,lexbuf); - case 17: - return custom_error$0(cst_Unexpected_end_of_input$79,v,lexbuf); - default:return long_error$0(cst_Invalid_token$10,v,lexbuf)}}} - function skip_json$0(v,lexbuf) - {return caml_trampoline(skip_json$3(0,v,lexbuf))} - function skip_ident$0(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit$0(v,lexbuf); - case 1:return 0; - case 2: - return long_error$0(cst_Expected_string_or_identif$5,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$82,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_variant(v,lexbuf) - {var ocaml_lex_state=461; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],58); - buffer_json$0(v,lexbuf); - buffer_space$0(v,lexbuf); - var ocaml_lex_state$1=503; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$1,lexbuf); - if(2 >= ocaml_lex_state$2 >>> 0) - switch(ocaml_lex_state$2) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 1: - return long_error$0(cst_Expected_but_found$29,v,lexbuf); - default: - return custom_error$0 - (cst_Unexpected_end_of_input$91,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2} - case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 2:return long_error$0(cst_Expected_or_but_found$25,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$85,v,lexbuf)}}} - function finish_buffer_stringlit$0(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme$0(v[1],lexbuf); - case 1:return long_error$0(cst_Invalid_string_literal$4,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$84,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_json$3(counter,v,lexbuf) - {var _hS_=399; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_buffer_json_rec$0,[0,v,lexbuf,_hS_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec$0(counter$0,v,lexbuf,_hS_)} - function ocaml_lex_buffer_json_rec$0(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme$0(v[1],lexbuf); - case 1:return finish_buffer_stringlit$0(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space$0(v,lexbuf); - buffer_object_end$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_colon$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_object_sep$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_colon$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf)}} - catch(_hR_) - {_hR_ = caml_wrap_exception(_hR_); - if(_hR_ === End_of_object)return 0; - throw _hR_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space$0(v,lexbuf); - buffer_array_end$0(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_array_sep$0(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf)}} - catch(_hQ_) - {_hQ_ = caml_wrap_exception(_hQ_); - if(_hQ_ === End_of_array)return 0; - throw _hQ_} - case 4: - try - {caml_call2(Stdlib_Buffer[12],v[1],40); - buffer_space$0(v,lexbuf); - buffer_tuple_end(v,lexbuf); - buffer_json$0(v,lexbuf); - for(;;) - {buffer_space$0(v,lexbuf); - buffer_tuple_sep(v,lexbuf); - buffer_space$0(v,lexbuf); - buffer_json$0(v,lexbuf)}} - catch(_hP_) - {_hP_ = caml_wrap_exception(_hP_); - if(_hP_ === End_of_tuple)return 0; - throw _hP_} - case 5: - caml_call2(Stdlib_Buffer[12],v[1],60); - buffer_space$0(v,lexbuf); - buffer_ident$0(v,lexbuf); - buffer_space$0(v,lexbuf); - return finish_buffer_variant(v,lexbuf); - case 6: - add_lexeme$0(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return buffer_json$3(counter$0,v,lexbuf); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$56); - finish_buffer_comment$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return buffer_json$3(counter$1,v,lexbuf); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return buffer_json$3(counter$2,v,lexbuf); - case 9: - add_lexeme$0(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$3,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return buffer_json$3(counter$3,v,lexbuf); - case 10: - return custom_error$0(cst_Unexpected_end_of_input$83,v,lexbuf); - default:return long_error$0(cst_Invalid_token$11,v,lexbuf)}}} - function buffer_json$0(v,lexbuf) - {return caml_trampoline(buffer_json$3(0,v,lexbuf))} - function buffer_ident$0(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit$0(v,lexbuf); - case 1:return add_lexeme$0(v[1],lexbuf); - case 2: - return long_error$0(cst_Expected_string_or_identif$6,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$86,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_space$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:add_lexeme$0(v[1],lexbuf);newline$0(v,lexbuf);continue a; - case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$57); - finish_buffer_comment$0(v,lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - continue a; - case 3:add_lexeme$0(v[1],lexbuf);continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function buffer_object_end$0(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_object_sep$0(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error$0(cst_Expected_or_but_found$26,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$87,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_end$0(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_sep$0(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error$0(cst_Expected_or_but_found$27,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$88,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_tuple_end(v,lexbuf) - {var ocaml_lex_state=492; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_tuple_sep(v,lexbuf) - {var ocaml_lex_state=494; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; - case 2:return long_error$0(cst_Expected_or_but_found$28,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$89,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_colon$0(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error$0(cst_Expected_but_found$28,v,lexbuf); - default: - return custom_error$0(cst_Unexpected_end_of_input$90,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_comment$0(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$58); - case 1:return long_error$0(cst_Unterminated_comment$2,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$0(v,lexbuf); - continue a; - default:add_lexeme$0(v[1],lexbuf);continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function junk$0(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$0,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme$0,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - read_junk$0[1] = junk$0; - function read_int8$0(v,lexbuf) - {var n=read_int$0(v,lexbuf); - if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); - return lexer_error$0(cst_Int8_overflow$0,v,lexbuf)} - function read_list$0(read_cell,v,lexbuf) - {var _hO_=read_list_rev$0(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_hO_)} - function read_array$0(read_cell,v,lexbuf) - {var l=read_list_rev$0(read_cell,v,lexbuf); - if(! l)return [0]; - var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _hL_=len - 2 | 0; - if(_hL_ >= 0) - {var i=_hL_; - for(;;) - {var _hM_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _hM_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _hN_=i - 1 | 0; - if(0 !== i){var i=_hN_;continue} - break}} - return a} - function read_fields$0(read_field,init_acc,v) - {return function(_hK_) - {return read_abstract_fields$0(read_ident$0,read_field,init_acc,v,_hK_)}} - function from_lexbuf$0(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space$0(v,lexbuf); - if(read_eof$0(lexbuf))throw End_of_input; - var x=read_json$0(v,lexbuf); - if(1 - stream) - {read_space$0(v,lexbuf); - if(1 - read_eof$0(lexbuf)) - long_error$0(cst_Junk_after_end_of_JSON_val$0,v,lexbuf)} - return x} - function from_string$2(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string$1,0,s), - v=init_lexer(buf,fname,lnum,0), - _hI_=from_lexbuf$0(v,0,lexbuf); - return _hI_} - catch(_hJ_) - {_hJ_ = caml_wrap_exception(_hJ_); - if(_hJ_ === End_of_input)return json_error(cst_Blank_input_data$1); - throw _hJ_}} - function from_channel$2(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname,lnum,0), - _hG_=from_lexbuf$0(v,0,lexbuf); - return _hG_} - catch(_hH_) - {_hH_ = caml_wrap_exception(_hH_); - if(_hH_ === End_of_input)return json_error(cst_Blank_input_data$2); - throw _hH_}} - function from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$2(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally$0=[248,cst_Yojson_Safe_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf$0(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _hF_=[0,from_lexbuf$0(v,stream$0,lexbuf),f];return _hF_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$0,e,fin_e]} - throw e}} - return f} - function seq_from_string$0(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$0(v,0,caml_call2(from_string$1,0,s))} - function seq_from_channel$0(buf,fin,fname,lnum,ic) - {var - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$0(v,fin,lexbuf)} - function seq_from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel$1,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf$0(v,[0,fin],lexbuf)} - function lineseq_from_channel$0(buf,opt,fname,_hx_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_hx_)var sth$0=_hx_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _hA_=lnum + 1 | 0, - _hB_=function(_hE_){return f(_hA_,_hE_)}, - _hC_= - [0,[0,826371656,from_string$2(buf$0,fname,[0,lnum],line)],_hB_]; - return _hC_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _hz_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_hD_){return f(_hz_,_hD_)}]}} - return function(_hy_){return f(lnum0,_hy_)}} - function lineseq_from_file$0(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel$0(buf,[0,fin],fname$0,lnum,ic)} - function prettify$0(std,s) - {return pretty_to_string$1(std,from_string$2(0,0,0,s))} - function compact$0(std,s) - {return to_string$2(0,0,0,0,from_string$2(0,0,0,s))} - var Type_error$0=[248,cst_Yojson_Safe_Util_Type_erro,caml_fresh_oo_id(0)]; - function typerr$0(msg,js) - {if(typeof js === "number") - var _hw_=cst_null$6; - else - var - _hv_=js[1], - _hw_= - 708012133 <= _hv_ - ?726928360 === _hv_ - ?cst_tuple$0 - :848054398 <= _hv_ - ?963043957 <= _hv_?cst_object$0:cst_array$0 - :737456202 <= _hv_?cst_bool$0:cst_variant$0 - :3654863 <= _hv_ - ?365180284 <= _hv_?cst_float$0:cst_int$0 - :-752863768 <= _hv_?cst_intlit$0:cst_string$0; - throw [0,Type_error$0,caml_call2(Stdlib[28],msg,_hw_),js]} - var Undefined$0=[248,cst_Yojson_Safe_Util_Undefined,caml_fresh_oo_id(0)]; - function assoc$0(name,obj) - {try - {var _ht_=caml_call2(Stdlib_List[46],name,obj);return _ht_} - catch(_hu_) - {_hu_ = caml_wrap_exception(_hu_); - if(_hu_ === Stdlib[8])return 870828711; - throw _hu_}} - function member$0(name,js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return assoc$0(name,obj)} - var _hs_=caml_call2(Stdlib[28],name,cst_of_non_object_type$0); - return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_member$0,_hs_),js)} - function index$0(i,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var - l=js[2], - len=caml_call1(Stdlib_List[1],l), - wrapped_index=0 <= i?i:len + i | 0; - if(0 <= wrapped_index && len > wrapped_index) - return caml_call2(Stdlib_List[7],l,wrapped_index); - var - _hq_=caml_call1(Stdlib[33],i), - _hr_=caml_call2(Stdlib[28],_hq_,cst_out_of_bounds$0); - throw [0,Undefined$0,caml_call2(Stdlib[28],cst_Index$0,_hr_),js]} - var - _ho_=caml_call1(Stdlib[33],i), - _hp_=caml_call2(Stdlib[28],_ho_,cst_of_non_array_type$0); - return typerr$0(caml_call2(Stdlib[28],cst_Can_t_get_index$0,_hp_),js)} - function map$0(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return [0,848054398,caml_call2(Stdlib_List[19],f,l)]} - return typerr$0(cst_Can_t_map_function_over_no$0,js)} - function to_assoc$0(js) - {if(typeof js !== "number" && 963043957 === js[1]) - {var obj=js[2];return obj} - return typerr$0(cst_Expected_object_got$0,js)} - function to_option$0(f,x){return 870828711 === x?0:[0,caml_call1(f,x)]} - function to_bool$0(js) - {if(typeof js !== "number" && 737456202 === js[1]){var b=js[2];return b} - return typerr$0(cst_Expected_bool_got$0,js)} - function to_bool_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(737456202 === js[1]){var b=js[2];return [0,b]} - return typerr$0(cst_Expected_bool_or_null_got$0,js)} - function to_number$0(js) - {if(typeof js !== "number") - {var _hn_=js[1]; - if(3654863 === _hn_){var i=js[2];return i} - if(365180284 === _hn_){var f=js[2];return f}} - return typerr$0(cst_Expected_number_got$0,js)} - function to_number_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - {var _hm_=js[1]; - if(3654863 === _hm_){var i=js[2];return [0,i]} - if(365180284 === _hm_){var f=js[2];return [0,f]}} - return typerr$0(cst_Expected_number_or_null_go$0,js)} - function to_float$0(js) - {if(typeof js !== "number" && 365180284 === js[1]){var f=js[2];return f} - return typerr$0(cst_Expected_float_got$0,js)} - function to_float_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(365180284 === js[1]){var f=js[2];return [0,f]} - return typerr$0(cst_Expected_float_or_null_got$0,js)} - function to_int$0(js) - {if(typeof js !== "number" && 3654863 === js[1]){var i=js[2];return i} - return typerr$0(cst_Expected_int_got$0,js)} - function to_int_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(3654863 === js[1]){var i=js[2];return [0,i]} - return typerr$0(cst_Expected_int_or_null_got$0,js)} - function to_list$0(js) - {if(typeof js !== "number" && 848054398 === js[1]){var l=js[2];return l} - return typerr$0(cst_Expected_array_got$0,js)} - function to_string$3(js) - {if(typeof js !== "number" && -976970511 === js[1]){var s=js[2];return s} - return typerr$0(cst_Expected_string_got$0,js)} - function to_string_option$0(js) - {if(typeof js === "number") - {if(870828711 === js)return 0} - else - if(-976970511 === js[1]){var s=js[2];return [0,s]} - return typerr$0(cst_Expected_string_or_null_go$0,js)} - function convert_each$0(f,js) - {if(typeof js !== "number" && 848054398 === js[1]) - {var l=js[2];return caml_call2(Stdlib_List[19],f,l)} - return typerr$0(cst_Can_t_convert_each_element$0,js)} - function filter_map$0(f,l$0) - {var acc=0,l=l$0; - for(;;) - {if(! l)return caml_call1(Stdlib_List[9],acc); - var tl=l[2],x=l[1],match=caml_call1(f,x); - if(match){var y=match[1],acc$0=[0,y,acc],acc=acc$0,l=tl;continue} - var l=tl}} - function flatten$0(l$0) - {var acc=0,l=l$0; - for(;;) - {if(! l)return caml_call1(Stdlib_List[9],acc); - var tl=l[2],x=l[1]; - if(typeof x !== "number" && 848054398 === x[1]) - {var l2=x[2],acc$0=caml_call2(Stdlib_List[12],l2,acc),acc=acc$0,l=tl; - continue} - var l=tl}} - function filter_index$0(i,l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2]; - try - {var _hk_=[0,caml_call2(Stdlib_List[7],l,i)];return _hk_} - catch(_hl_){return 0}} - return 0}, - l)} - function filter_list$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_member$0(k,l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2]; - try - {var _hi_=[0,caml_call2(Stdlib_List[46],k,l)];return _hi_} - catch(_hj_){return 0}} - return 0}, - l)} - function filter_assoc$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 963043957 === param[1]) - {var l=param[2];return [0,l]} - return 0}, - l)} - function filter_bool$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 737456202 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_int$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 3654863 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_float$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && 365180284 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function filter_number$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number") - {var _hh_=param[1]; - if(3654863 === _hh_){var x=param[2];return [0,x]} - if(365180284 === _hh_){var x$0=param[2];return [0,x$0]}} - return 0}, - l)} - function filter_string$0(l) - {return filter_map$0 - (function(param) - {if(typeof param !== "number" && -976970511 === param[1]) - {var x=param[2];return [0,x]} - return 0}, - l)} - function keys$0(o) - {var _hf_=to_assoc$0(o); - function _hg_(param){var key=param[1];return key} - return caml_call1(caml_call1(Stdlib_List[19],_hg_),_hf_)} - function values$0(o) - {var _hd_=to_assoc$0(o); - function _he_(param){var value=param[2];return value} - return caml_call1(caml_call1(Stdlib_List[19],_he_),_hd_)} - function combine$0(first,second) - {if - (typeof first - !== - "number" - && - 963043957 - === - first[1] - && - typeof second - !== - "number" - && - 963043957 - === - second[1]) - {var b=second[2],a=first[2]; - return [0,963043957,caml_call2(Stdlib[37],a,b)]} - throw [0,Stdlib[6],cst_Expected_two_objects_check$0]} - function hex$4(n) - {var _hc_=10 <= n?n + 87 | 0:n + 48 | 0; - return caml_call1(Stdlib_Char[1],_hc_)} - function write_special$2(src,start,stop,ob,str) - {caml_call4(Stdlib_Buffer[18],ob,src,start[1],stop - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,str); - start[1] = stop + 1 | 0; - return 0} - function finish_string$4(src,start,ob) - {try - {var - _hb_= + write_special$2(src, start, stop, ob, cst_r$2); break; + case 26: + write_special$2(src, start, stop, ob, cst$60); break; + case 24: + case 25: + switch$0 = 2; switch$1 = 1; break; + default: switch$1 = 1; + } + if(! switch$1) switch$0 = 1; + } + switch(switch$0){ + case 2: break; + case 0: caml_call4 - (Stdlib_Buffer[18], - ob, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - return _hb_} - catch(exc) - {exc = caml_wrap_exception(exc); - caml_call4 - (Stdlib_Printf[3], - _dm_, - src, - start[1], - caml_ml_string_length(src) - start[1] | 0); - throw exc}} - function write_string$2(ob,s) - {caml_call2(Stdlib_Buffer[12],ob,34); - var start=[0,0],_g$_=caml_ml_string_length(s) - 1 | 0,_g__=0; - if(_g$_ >= 0) - {var i=_g__; - for(;;) - {var c=caml_string_get(s,i); - if(92 === c) - write_special$2(s,start,i,ob,cst$59); - else - {var switch$0=0; - if(35 <= c) - if(127 === c)switch$0 = 1;else switch$0 = 2; - else - if(8 <= c) - {var switch$1=0; - switch(c - 8 | 0) - {case 0:write_special$2(s,start,i,ob,cst_b$2);break; - case 1:write_special$2(s,start,i,ob,cst_t$2);break; - case 2:write_special$2(s,start,i,ob,cst_n$2);break; - case 4:write_special$2(s,start,i,ob,cst_f$2);break; - case 5:write_special$2(s,start,i,ob,cst_r$2);break; - case 26:write_special$2(s,start,i,ob,cst$60);break; - case 24: - case 25:switch$0 = 2;switch$1 = 1;break; - default:switch$0 = 1;switch$1 = 1}} - else - switch$0 = 1; - switch(switch$0) - {case 2:break; - case 1: - caml_call4(Stdlib_Buffer[18],ob,s,start[1],i - start[1] | 0); - caml_call2(Stdlib_Buffer[16],ob,cst_u00$2); - var _g8_=hex$4(c >>> 4 | 0); - caml_call2(Stdlib_Buffer[12],ob,_g8_); - var _g9_=hex$4(c & 15); - caml_call2(Stdlib_Buffer[12],ob,_g9_); - start[1] = i + 1 | 0; - break - }} - var _ha_=i + 1 | 0; - if(_g$_ !== i){var i=_ha_;continue} - break}} - finish_string$4(s,start,ob); - return caml_call2(Stdlib_Buffer[12],ob,34)} - function json_string_of_string$2(s) - {var ob=caml_call1(Stdlib_Buffer[1],10); - write_string$2(ob,s); - return caml_call1(Stdlib_Buffer[2],ob)} - function write_null$2(ob,param) - {return caml_call2(Stdlib_Buffer[16],ob,cst_null$7)} - function write_bool$2(ob,x) - {var _g7_=x?cst_true$2:cst_false$2; - return caml_call2(Stdlib_Buffer[16],ob,_g7_)} - var - _dn_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[20])), - _do_=caml_ml_string_length(caml_call1(Stdlib[33],Stdlib[19])); - caml_call2(Stdlib[17],_do_,_dn_); - var - write_intlit$1=Stdlib_Buffer[16], - write_floatlit$0=Stdlib_Buffer[16], - write_stringlit$0=Stdlib_Buffer[16]; - function iter2$2(f_elt,f_sep,x,param$0) - {if(! param$0)return 0; - var l$0=param$0[2],y$0=param$0[1]; - caml_call2(f_elt,x,y$0); - var param=l$0; - for(;;) - {if(! param)return 0; - var l=param[2],y=param[1]; - caml_call1(f_sep,x); - caml_call2(f_elt,x,y); - var param=l}} - function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12],ob,44)} - function write_variant$1(ob,s,o) - {caml_call2(Stdlib_Buffer[12],ob,60); - write_string$2(ob,s); - if(o){var x=o[1];caml_call2(Stdlib_Buffer[12],ob,58);write_t$2(ob,x)} - return caml_call2(Stdlib_Buffer[12],ob,62)} - function write_tuple$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,40); - iter2$2(write_t$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,41)} - function write_list$2(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_t$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_assoc$2(ob,l) - {function f_elt(ob,param) - {var x=param[2],s=param[1]; - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_t$2(ob,x)} - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$2(f_elt,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - function write_t$2(ob,x) - {if(typeof x === "number")return write_null$2(ob,0); - var _g6_=x[1]; - if(737456202 <= _g6_) - {if(928231259 <= _g6_) - {if(963043957 <= _g6_){var l=x[2];return write_assoc$2(ob,l)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _g6_){var l$0=x[2];return write_list$2(ob,l$0)} - var b=x[2]; - return write_bool$2(ob,b)} - if(708012133 <= _g6_) - {if(726928360 <= _g6_){var l$1=x[2];return write_tuple$1(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_variant$1(ob,s$0,o)} - if(-375152890 <= _g6_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - var s$2=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s$2)} - function write_std_variant$1(ob,s,o) - {if(! o)return write_string$2(ob,s); - var x=o[1]; - caml_call2(Stdlib_Buffer[12],ob,91); - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,44); - write_std_json$2(ob,x); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_tuple$1(ob,l) - {caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_std_json$2,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,93)} - function write_std_json$2(ob,x) - {if(typeof x === "number")return write_null$2(ob,0); - var _g5_=x[1]; - if(737456202 <= _g5_) - {if(928231259 <= _g5_) - {if(963043957 <= _g5_) - {var - l=x[2], - f_elt= - function(ob,param) - {var x=param[2],s=param[1]; - write_string$2(ob,s); - caml_call2(Stdlib_Buffer[12],ob,58); - return write_std_json$2(ob,x)}; - caml_call2(Stdlib_Buffer[12],ob,123); - iter2$2(f_elt,f_sep$2,ob,l); - return caml_call2(Stdlib_Buffer[12],ob,125)} - var s=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s)} - if(848054398 <= _g5_) - {var l$0=x[2]; - caml_call2(Stdlib_Buffer[12],ob,91); - iter2$2(write_std_json$2,f_sep$2,ob,l$0); - return caml_call2(Stdlib_Buffer[12],ob,93)} - var b=x[2]; - return write_bool$2(ob,b)} - if(708012133 <= _g5_) - {if(726928360 <= _g5_){var l$1=x[2];return write_std_tuple$1(ob,l$1)} - var match=x[2],o=match[2],s$0=match[1]; - return write_std_variant$1(ob,s$0,o)} - if(-375152890 <= _g5_) - {var s$1=x[2];return caml_call2(Stdlib_Buffer[16],ob,s$1)} - var s$2=x[2]; - return caml_call2(Stdlib_Buffer[16],ob,s$2)} - function to_buffer$2(opt,_g4_,ob,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$61; - if(_g4_)var sth$0=_g4_[1],std=sth$0;else var std=0; - if(std)write_std_json$2(ob,x);else write_t$2(ob,x); - return caml_call2(Stdlib_Buffer[16],ob,suf)} - function to_string$4(buf,opt,_g3_,std,x) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_g3_)var sth$0=_g3_[1],suf=sth$0;else var suf=cst$62; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function to_channel$2(buf,opt,_g2_,std,oc,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_g2_)var sth$0=_g2_[1],suf=sth$0;else var suf=cst$63; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_output$2(buf,opt,_g0_,std,out,x) - {if(opt)var sth=opt[1],len=sth;else var len=4096; - if(_g0_)var sth$0=_g0_[1],suf=sth$0;else var suf=cst$64; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - to_buffer$2([0,suf],std,ob$0,x); - var _g1_=caml_call1(Stdlib_Buffer[7],ob$0); - caml_call4 - (caml_get_public_method(out,209784577,4), - out, - caml_call1(Stdlib_Buffer[2],ob$0), - 0, - _g1_); - return caml_call1(Stdlib_Buffer[8],ob$0)} - function to_file$2(len,std,opt,file,x) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$65; - var oc=caml_call1(Stdlib[60],file); - try - {to_channel$2(0,len,[0,suf],std,oc,x); - var _gZ_=caml_call1(Stdlib[76],oc); - return _gZ_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function seq_to_buffer$2(opt,std,ob,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$66; - var _gW_=[0,suf]; - function _gX_(_gY_){return to_buffer$2(_gW_,std,ob,_gY_)} - return caml_call2(Stdlib_Seq[4],_gX_,st)} - function seq_to_string$2(buf,opt,_gV_,std,st) - {if(opt)var sth=opt[1],len=sth;else var len=256; - if(_gV_)var sth$0=_gV_[1],suf=sth$0;else var suf=cst$67; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - seq_to_buffer$2([0,suf],std,ob$0,st); - var s=caml_call1(Stdlib_Buffer[2],ob$0); - caml_call1(Stdlib_Buffer[8],ob$0); - return s} - function seq_to_channel$2(buf,opt,_gT_,std,oc,seq) - {if(opt)var sth=opt[1],len=sth;else var len=2096; - if(_gT_)var sth$0=_gT_[1],suf=sth$0;else var suf=cst$68; - if(buf) - {var ob=buf[1];caml_call1(Stdlib_Buffer[8],ob);var ob$0=ob} - else - var ob$0=caml_call1(Stdlib_Buffer[1],len); - function _gU_(json) - {to_buffer$2([0,suf],std,ob$0,json); - caml_call2(Stdlib_Buffer[10],oc,ob$0); - return caml_call1(Stdlib_Buffer[8],ob$0)} - return caml_call2(Stdlib_Seq[4],_gU_,seq)} - function seq_to_file$2(len,opt,std,file,st) - {if(opt)var sth=opt[1],suf=sth;else var suf=cst$69; - var oc=caml_call1(Stdlib[60],file); - try - {seq_to_channel$2(0,len,[0,suf],std,oc,st); - var _gS_=caml_call1(Stdlib[76],oc); - return _gS_} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[77],oc);throw e}} - function sort$2(x) - {if(typeof x !== "number") - {var _gJ_=x[1]; - if(726928361 <= _gJ_) - {if(848054398 === _gJ_) - {var l=x[2],_gK_=caml_call2(Stdlib_List[21],sort$2,l); - return [0,848054398,caml_call1(Stdlib_List[9],_gK_)]} - if(963043957 === _gJ_) - {var - l$0=x[2], - _gL_= - function(param) - {var v=param[2],k=param[1];return [0,k,sort$2(v)]}, - _gM_=caml_call2(Stdlib_List[21],_gL_,l$0), - l$1=caml_call1(Stdlib_List[9],_gM_), - _gN_= - function(param,_gR_) - {var b=_gR_[1],a=param[1]; - return caml_call2(Stdlib_String[9],a,b)}; - return [0,963043957,caml_call2(Stdlib_List[57],_gN_,l$1)]}} - else - if(708012133 === _gJ_) - {var _gO_=x[2],_gP_=_gO_[2]; - if(_gP_) - {var v=_gP_[1],k=_gO_[1],v$0=sort$2(v); - return v === v$0?x:[0,708012133,[0,k,[0,v$0]]]}} - else - if(726928360 <= _gJ_) - {var l$2=x[2],_gQ_=caml_call2(Stdlib_List[21],sort$2,l$2); - return [0,726928360,caml_call1(Stdlib_List[9],_gQ_)]}} - return x} - function pp_list$2(sep,ppx,out,l) - {function pp_sep(out,param) - {return caml_call3(Stdlib_Format[129],out,_dp_,sep)} - return caml_call4(Stdlib_Format[123],[0,pp_sep],ppx,out,l)} - function is_atom$2(x) - {if(typeof x !== "number") - {var _gI_=x[1],switch$0=0; - if(737456202 <= _gI_) - {if(848054398 === _gI_) - {if(x[2])switch$0 = 1} - else - if(963043957 <= _gI_ && x[2])switch$0 = 1} - else - if(708012133 === _gI_) - {if(x[2][2])switch$0 = 1} - else - if(726928360 <= _gI_ && x[2])switch$0 = 1; - if(switch$0)return 0} - return 1} - function format$2(inside_box,std,out,x) - {var x$0=x; - for(;;) - {if(typeof x$0 === "number") - return caml_call2(Stdlib_Format[13],out,cst_null$8); - var _f2_=x$0[1]; - if(737456202 <= _f2_) - {if(928231259 <= _f2_) - {if(963043957 > _f2_) - {var s=x$0[2];return caml_call2(Stdlib_Format[13],out,s)} - var _f3_=x$0[2]; - if(! _f3_)return caml_call2(Stdlib_Format[13],out,cst$71); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dq_); - var - _f4_= - function(out,param) - {var x=param[2],name=param[1],_gD_=1; - function _gE_(_gG_,_gH_){return format$2(_gD_,std,_gG_,_gH_)} - var _gF_=json_string_of_string$2(name); - return caml_call5(Stdlib_Format[129],out,_dC_,_gF_,_gE_,x)}, - _f5_=function(_gB_,_gC_){return pp_list$2(cst$70,_f4_,_gB_,_gC_)}; - caml_call4(Stdlib_Format[129],out,_dr_,_f5_,_f3_); - var _f6_=1 - inside_box; - return _f6_?caml_call2(Stdlib_Format[129],out,_ds_):_f6_} - if(848054398 > _f2_) - {var x$1=x$0[2];return caml_call2(Stdlib_Format[25],out,x$1)} - var _f7_=x$0[2]; - if(! _f7_)return caml_call2(Stdlib_Format[13],out,cst$74); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dt_); - if(caml_call2(Stdlib_List[32],is_atom$2,_f7_)) - {var - _f8_=0, - _f9_=function(_gv_,_gw_){return format$2(_f8_,std,_gv_,_gw_)}, - _f__=function(_gt_,_gu_){return pp_list$2(cst$72,_f9_,_gt_,_gu_)}; - caml_call4(Stdlib_Format[129],out,_du_,_f__,_f7_)} - else - {var - _ga_=0, - _gb_=function(_gz_,_gA_){return format$2(_ga_,std,_gz_,_gA_)}, - _gc_=function(_gx_,_gy_){return pp_list$2(cst$73,_gb_,_gx_,_gy_)}; - caml_call4(Stdlib_Format[129],out,_dw_,_gc_,_f7_)} - var _f$_=1 - inside_box; - return _f$_?caml_call2(Stdlib_Format[129],out,_dv_):_f$_} - if(708012133 > _f2_) - {if(-375152890 <= _f2_) - {var s$0=x$0[2];return caml_call2(Stdlib_Format[13],out,s$0)} - var s$1=x$0[2]; - return caml_call2(Stdlib_Format[13],out,s$1)} - if(726928360 <= _f2_) - {var l=x$0[2]; - if(std){var x$2=[0,848054398,l],x$0=x$2;continue} - if(0 === l)return caml_call2(Stdlib_Format[13],out,cst$75); - if(1 - inside_box)caml_call2(Stdlib_Format[129],out,_dx_); - var - _gd_=0, - _ge_=function(_gr_,_gs_){return format$2(_gd_,std,_gr_,_gs_)}, - _gf_=function(_gp_,_gq_){return pp_list$2(cst$76,_ge_,_gp_,_gq_)}; - caml_call4(Stdlib_Format[129],out,_dy_,_gf_,l); - var _gg_=1 - inside_box; - return _gg_?caml_call2(Stdlib_Format[129],out,_dz_):_gg_} - var _gh_=x$0[2],_gi_=_gh_[2],_gj_=_gh_[1]; - if(_gi_) - {var x$3=_gi_[1]; - if(std) - {var - representation=[0,-375152890,_gj_], - x$4=[0,848054398,[0,representation,[0,x$3,0]]], - x$0=x$4; - continue} - var - op=json_string_of_string$2(_gj_), - _gk_=1, - _gl_=function(_gn_,_go_){return format$2(_gk_,std,_gn_,_go_)}; - return caml_call5(Stdlib_Format[129],out,_dA_,op,_gl_,x$3)} - if(std){var x$5=[0,-375152890,_gj_],x$0=x$5;continue} - var _gm_=json_string_of_string$2(_gj_); - return caml_call3(Stdlib_Format[129],out,_dB_,_gm_)}} - function pp$5(opt,out,x) - {if(opt)var sth=opt[1],std=sth;else var std=0; - var _fY_=1; - function _fZ_(_f0_,_f1_){return format$2(_fY_,std,_f0_,_f1_)} - return caml_call4(Stdlib_Format[129],out,_dD_,_fZ_,x)} - function pp$6(fmt,param) - {if(typeof param === "number") - return caml_call2(Stdlib_Format[13],fmt,cst_Null$2); - var _fR_=param[1]; - if(737456202 <= _fR_) - {if(928231259 <= _fR_) - {if(963043957 <= _fR_) - {var xs=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dG_); - caml_call2(Stdlib_Format[129],fmt,_dH_); - var - _fS_=0, - _fT_= - function(sep,param) - {var value=param[2],key=param[1]; - if(sep)caml_call2(Stdlib_Format[129],fmt,_dI_); - caml_call2(Stdlib_Format[129],fmt,_dJ_); - caml_call3(Stdlib_Format[129],fmt,_dK_,key); - caml_call2(Stdlib_Format[129],fmt,_dL_); - pp$6(fmt,value); - caml_call2(Stdlib_Format[129],fmt,_dM_); - return 1}; - caml_call3(Stdlib_List[25],_fT_,_fS_,xs); - caml_call2(Stdlib_Format[129],fmt,_dN_); - return caml_call2(Stdlib_Format[129],fmt,_dO_)} - var x=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dP_); - caml_call3(Stdlib_Format[129],fmt,_dQ_,x); - return caml_call2(Stdlib_Format[129],fmt,_dR_)} - if(848054398 <= _fR_) - {var xs$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dS_); - caml_call2(Stdlib_Format[129],fmt,_dT_); - var - _fU_=0, - _fV_= - function(sep,x) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_dU_); - pp$6(fmt,x); - return 1}; - caml_call3(Stdlib_List[25],_fV_,_fU_,xs$0); - caml_call2(Stdlib_Format[129],fmt,_dV_); - return caml_call2(Stdlib_Format[129],fmt,_dW_)} - var x$0=param[2]; - caml_call2(Stdlib_Format[129],fmt,_dX_); - caml_call3(Stdlib_Format[129],fmt,_dY_,x$0); - return caml_call2(Stdlib_Format[129],fmt,_dZ_)} - if(708012133 <= _fR_) - {if(726928360 <= _fR_) - {var tup=param[2]; - caml_call2(Stdlib_Format[129],fmt,_d0_); - caml_call2(Stdlib_Format[129],fmt,_d1_); - var - _fW_=0, - _fX_= - function(sep,e) - {if(sep)caml_call2(Stdlib_Format[129],fmt,_d2_); - pp$6(fmt,e); - return 1}; - caml_call3(Stdlib_List[25],_fX_,_fW_,tup); - caml_call2(Stdlib_Format[129],fmt,_d3_); - return caml_call2(Stdlib_Format[129],fmt,_d4_)} - var match=param[2],value=match[2],name=match[1]; - caml_call2(Stdlib_Format[129],fmt,_d5_); - caml_call2(Stdlib_Format[129],fmt,_d6_); - caml_call3(Stdlib_Format[129],fmt,_d7_,name); - caml_call2(Stdlib_Format[129],fmt,_d8_); - if(value) - {var x$1=value[1]; - caml_call2(Stdlib_Format[13],fmt,cst_Some$1); - pp$6(fmt,x$1); - caml_call2(Stdlib_Format[13],fmt,cst$77)} - else - caml_call2(Stdlib_Format[13],fmt,cst_None$1); - caml_call2(Stdlib_Format[129],fmt,_d9_); - return caml_call2(Stdlib_Format[129],fmt,_d__)} - if(-375152890 <= _fR_) - {var x$2=param[2]; - caml_call2(Stdlib_Format[129],fmt,_d$_); - caml_call3(Stdlib_Format[129],fmt,_ea_,x$2); - return caml_call2(Stdlib_Format[129],fmt,_eb_)} - var x$3=param[2]; - caml_call2(Stdlib_Format[129],fmt,_ec_); - caml_call3(Stdlib_Format[129],fmt,_ed_,x$3); - return caml_call2(Stdlib_Format[129],fmt,_ee_)} - function show$2(x){return caml_call3(Stdlib_Format[133],_ef_,pp$6,x)} - function equal$2(a,b) - {var a$0=a,b$0=b; - for(;;) - {if(typeof a$0 === "number") - {if(870828711 === a$0 && 870828711 === b$0)return 1} - else - {var _fK_=a$0[1],switch$0=0; - if(726928361 <= _fK_) - {if(848054399 <= _fK_) - {if(928231259 === _fK_) - {if(typeof b$0 !== "number" && 928231259 === b$0[1]) - {var b$1=b$0[2],a$1=a$0[2];return caml_equal(a$1,b$1)}} - else - if - (963043957 - === - _fK_ - && - typeof b$0 - !== - "number" - && - 963043957 - === - b$0[1]) - {var - ys=b$0[2], - xs=a$0[2], - compare_keys= - function(param,_fQ_) - {var key=_fQ_[1],key$0=param[1]; - return caml_call2(Stdlib_String[9],key$0,key)}, - xs$0=caml_call2(Stdlib_List[57],compare_keys,xs), - ys$0=caml_call2(Stdlib_List[57],compare_keys,ys); - try - {var - _fL_= - function(param,_fP_) - {var - value=_fP_[2], - key=_fP_[1], - value$0=param[2], - key$0=param[1], - match=caml_string_equal(key$0,key); - return match?equal$2(value$0,value):0}, - result=caml_call3(Stdlib_List[34],_fL_,xs$0,ys$0); - return result} - catch(_fO_) - {_fO_ = caml_wrap_exception(_fO_); - if(_fO_[1] === Stdlib[6])return 0; - throw _fO_}}} - else - if(737456202 === _fK_) - {if(typeof b$0 !== "number" && 737456202 === b$0[1]) - {var b$2=b$0[2],a$2=a$0[2];return caml_equal(a$2,b$2)}} - else - if - (848054398 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - 848054398 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(-375152889 <= _fK_) - {if(708012133 === _fK_) - {if(typeof b$0 !== "number" && 708012133 === b$0[1]) - {var - _fM_=b$0[2], - value=_fM_[2], - name=_fM_[1], - match=a$0[2], - value$0=match[2], - name$0=match[1], - match$0=caml_equal(name$0,name); - if(! match$0)return 0; - if(value$0) - {if(value) - {var b$3=value[1],a$3=value$0[1],a$0=a$3,b$0=b$3;continue}} - else - if(! value)return 1; - return 0}} - else - if - (726928360 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - 726928360 - === - b$0[1]) - {var ys$1=b$0[2],xs$1=a$0[2];switch$0 = 1}} - else - if(-752863768 === _fK_) - {if(typeof b$0 !== "number" && -752863768 === b$0[1]) - {var b$4=b$0[2],a$4=a$0[2];return caml_equal(a$4,b$4)}} - else - if - (-375152890 - <= - _fK_ - && - typeof b$0 - !== - "number" - && - -375152890 - === - b$0[1]) - {var b$5=b$0[2],a$5=a$0[2];return caml_equal(a$5,b$5)} - if(switch$0) - try - {var result$0=caml_call3(Stdlib_List[34],equal$2,xs$1,ys$1); - return result$0} - catch(_fN_) - {_fN_ = caml_wrap_exception(_fN_); - if(_fN_[1] === Stdlib[6])return 0; - throw _fN_}} - return 0}} - function pretty_print$2(std,out,x){return pp$5(std,out,x)} - function pretty_to_string$2(std,x) - {function _fH_(_fI_,_fJ_){return pp$5(std,_fI_,_fJ_)} - return caml_call3(Stdlib_Format[133],_dE_,_fH_,x)} - function pretty_to_channel$2(std,oc,x) - {var fmt=caml_call1(Stdlib_Format[108],oc); - function _fE_(_fF_,_fG_){return pp$5(std,_fF_,_fG_)} - return caml_call4(Stdlib_Format[129],fmt,_dF_,_fE_,x)} - var - from_channel$3=Stdlib_Lexing[2], - from_string$3=Stdlib_Lexing[3], - lexeme$1=Stdlib_Lexing[8], - sub_lexeme$1=Stdlib_Lexing[16], - sub_lexeme_char$1=Stdlib_Lexing[18]; - function hex$5(c) - {if(65 <= c) - {if(97 <= c) - {if(103 > c)return (c - 97 | 0) + 10 | 0} - else - if(71 > c)return (c - 65 | 0) + 10 | 0} - else - if(9 >= c - 48 >>> 0)return c - 48 | 0; - throw [0,Assert_failure,_eg_]} - function custom_error$1(descr,v,lexbuf) - {var - offs=lexbuf[4] - 1 | 0, - bol=v[3], - pos1=((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, - pos2=caml_call2(Stdlib[17],pos1,(offs + lexbuf[6] | 0) - bol | 0), - _fD_=v[4]; - if(_fD_) - var s=_fD_[1],file_line=caml_call2(Stdlib_Printf[4],_eh_,s); - else - var file_line=cst_Line$1; + (Stdlib_Buffer[18], ob, src, start[1], stop - start[1] | 0); + caml_call2(Stdlib_Buffer[16], ob, cst_u00$2); + var _hg_ = hex$4(c >>> 4 | 0); + caml_call2(Stdlib_Buffer[12], ob, _hg_); + var _hh_ = hex$4(c & 15); + caml_call2(Stdlib_Buffer[12], ob, _hh_); + start[1] = stop + 1 | 0; + break; + } + } + var _hk_ = stop + 1 | 0; + if(_hj_ !== stop){var stop = _hk_; continue;} + break; + } + } + try{ + caml_call4 + (Stdlib_Buffer[18], + ob, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + } + catch(exc$0){ + var exc = caml_wrap_exception(exc$0); + caml_call4 + (Stdlib_Printf[3], + _dm_, + src, + start[1], + caml_ml_string_length(src) - start[1] | 0); + throw caml_maybe_attach_backtrace(exc, 0); + } + return caml_call2(Stdlib_Buffer[12], ob, 34); + } + function json_string_of_string$2(s){ + var ob = caml_call1(Stdlib_Buffer[1], 10); + write_string$2(ob, s); + return caml_call1(Stdlib_Buffer[2], ob); + } + function write_null$2(ob, param){ + return caml_call2(Stdlib_Buffer[16], ob, cst_null$7); + } + function write_bool$2(ob, x){ + var _hf_ = x ? cst_true$2 : cst_false$2; + return caml_call2(Stdlib_Buffer[16], ob, _hf_); + } + var + _dn_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[20])), + _do_ = caml_ml_string_length(caml_call1(Stdlib[33], Stdlib[19])); + caml_call2(Stdlib[17], _do_, _dn_); + var + write_intlit$1 = Stdlib_Buffer[16], + write_floatlit$0 = Stdlib_Buffer[16], + write_stringlit$0 = Stdlib_Buffer[16]; + function iter2$2(f_elt, f_sep, x, param$0){ + if(! param$0) return 0; + var l$0 = param$0[2], y$0 = param$0[1]; + caml_call2(f_elt, x, y$0); + var param = l$0; + for(;;){ + if(! param) return 0; + var l = param[2], y = param[1]; + caml_call1(f_sep, x); + caml_call2(f_elt, x, y); + var param = l; + } + } + function f_sep$2(ob){return caml_call2(Stdlib_Buffer[12], ob, 44);} + function write_variant$1(ob, s, o){ + caml_call2(Stdlib_Buffer[12], ob, 60); + write_string$2(ob, s); + if(o){ + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 58); + write_json$2(ob, x); + } + return caml_call2(Stdlib_Buffer[12], ob, 62); + } + function write_tuple$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 40); + iter2$2(write_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 41); + } + function write_list$2(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_assoc$2(ob, l){ + function f_elt(ob, param){ + var x = param[2], s = param[1]; + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_json$2(ob, x); + } + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$2(f_elt, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + function write_json$2(ob, x){ + if(typeof x === "number") return write_null$2(ob, 0); + var _he_ = x[1]; + if(737456202 <= _he_){ + if(928231259 <= _he_){ + if(963043957 <= _he_){var l = x[2]; return write_assoc$2(ob, l);} + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _he_){var l$0 = x[2]; return write_list$2(ob, l$0);} + var b = x[2]; + return write_bool$2(ob, b); + } + if(708012133 <= _he_){ + if(726928360 <= _he_){var l$1 = x[2]; return write_tuple$1(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_variant$1(ob, s$0, o); + } + if(-375152890 <= _he_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + function write_std_variant$1(ob, s, o){ + if(! o) return write_string$2(ob, s); + var x = o[1]; + caml_call2(Stdlib_Buffer[12], ob, 91); + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 44); + write_std_json$2(ob, x); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_tuple$1(ob, l){ + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_std_json$2, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + function write_std_json$2(ob, x){ + if(typeof x === "number") return write_null$2(ob, 0); + var _hd_ = x[1]; + if(737456202 <= _hd_){ + if(928231259 <= _hd_){ + if(963043957 <= _hd_){ + var + l = x[2], + f_elt = + function(ob, param){ + var x = param[2], s = param[1]; + write_string$2(ob, s); + caml_call2(Stdlib_Buffer[12], ob, 58); + return write_std_json$2(ob, x); + }; + caml_call2(Stdlib_Buffer[12], ob, 123); + iter2$2(f_elt, f_sep$2, ob, l); + return caml_call2(Stdlib_Buffer[12], ob, 125); + } + var s = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s); + } + if(848054398 <= _hd_){ + var l$0 = x[2]; + caml_call2(Stdlib_Buffer[12], ob, 91); + iter2$2(write_std_json$2, f_sep$2, ob, l$0); + return caml_call2(Stdlib_Buffer[12], ob, 93); + } + var b = x[2]; + return write_bool$2(ob, b); + } + if(708012133 <= _hd_){ + if(726928360 <= _hd_){var l$1 = x[2]; return write_std_tuple$1(ob, l$1);} + var match = x[2], o = match[2], s$0 = match[1]; + return write_std_variant$1(ob, s$0, o); + } + if(-375152890 <= _hd_){ + var s$1 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$1); + } + var s$2 = x[2]; + return caml_call2(Stdlib_Buffer[16], ob, s$2); + } + function to_buffer$2(opt, _hc_, ob, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$61; + if(_hc_) var sth$0 = _hc_[1], std = sth$0; else var std = 0; + if(std) write_std_json$2(ob, x); else write_json$2(ob, x); + return caml_call2(Stdlib_Buffer[16], ob, suf); + } + function to_string$4(buf, opt, _hb_, std, x){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_hb_) var sth$0 = _hb_[1], suf = sth$0; else var suf = cst$62; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function to_channel$2(buf, opt, _ha_, std, oc, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_ha_) var sth$0 = _ha_[1], suf = sth$0; else var suf = cst$63; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_output$2(buf, opt, _g__, std, out, x){ + if(opt) var sth = opt[1], len = sth; else var len = 4096; + if(_g__) var sth$0 = _g__[1], suf = sth$0; else var suf = cst$64; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + to_buffer$2([0, suf], std, ob$0, x); + var _g$_ = caml_call1(Stdlib_Buffer[7], ob$0); + caml_call4 + (caml_get_public_method(out, 209784577, 4), + out, + caml_call1(Stdlib_Buffer[2], ob$0), + 0, + _g$_); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + function to_file$2(len, std, opt, file, x){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$65; + var oc = caml_call1(Stdlib[60], file); + try{ + to_channel$2(0, len, [0, suf], std, oc, x); + var _g9_ = caml_call1(Stdlib[76], oc); + return _g9_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function seq_to_buffer$2(opt, std, ob, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$66; + var _g6_ = [0, suf]; + function _g7_(_g8_){return to_buffer$2(_g6_, std, ob, _g8_);} + return caml_call2(Stdlib_Seq[4], _g7_, st); + } + function seq_to_string$2(buf, opt, _g5_, std, st){ + if(opt) var sth = opt[1], len = sth; else var len = 256; + if(_g5_) var sth$0 = _g5_[1], suf = sth$0; else var suf = cst$67; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + seq_to_buffer$2([0, suf], std, ob$0, st); + var s = caml_call1(Stdlib_Buffer[2], ob$0); + caml_call1(Stdlib_Buffer[8], ob$0); + return s; + } + function seq_to_channel$2(buf, opt, _g3_, std, oc, seq){ + if(opt) var sth = opt[1], len = sth; else var len = 2096; + if(_g3_) var sth$0 = _g3_[1], suf = sth$0; else var suf = cst$68; + if(buf){ + var ob = buf[1]; + caml_call1(Stdlib_Buffer[8], ob); + var ob$0 = ob; + } + else + var ob$0 = caml_call1(Stdlib_Buffer[1], len); + function _g4_(json){ + to_buffer$2([0, suf], std, ob$0, json); + caml_call2(Stdlib_Buffer[10], oc, ob$0); + return caml_call1(Stdlib_Buffer[8], ob$0); + } + return caml_call2(Stdlib_Seq[4], _g4_, seq); + } + function seq_to_file$2(len, opt, std, file, st){ + if(opt) var sth = opt[1], suf = sth; else var suf = cst$69; + var oc = caml_call1(Stdlib[60], file); + try{ + seq_to_channel$2(0, len, [0, suf], std, oc, st); + var _g2_ = caml_call1(Stdlib[76], oc); + return _g2_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[77], oc); + throw caml_maybe_attach_backtrace(e, 0); + } + } + function sort$2(x){ + if(typeof x !== "number"){ + var _gU_ = x[1]; + if(726928361 <= _gU_){ + if(848054398 === _gU_){ + var l = x[2], _gV_ = caml_call2(Stdlib_List[21], sort$2, l); + return [0, 848054398, caml_call1(Stdlib_List[9], _gV_)]; + } + if(963043957 === _gU_){ + var + l$0 = x[2], + _gW_ = + function(param){ + var v = param[2], k = param[1]; + return [0, k, sort$2(v)]; + }, + _gX_ = caml_call2(Stdlib_List[21], _gW_, l$0), + l$1 = caml_call1(Stdlib_List[9], _gX_), + _gY_ = + function(param, _g1_){ + var b = _g1_[1], a = param[1]; + return caml_call2(Stdlib_String[9], a, b); + }; + return [0, 963043957, caml_call2(Stdlib_List[57], _gY_, l$1)]; + } + } + else if(708012133 === _gU_){ + var _gZ_ = x[2], match = _gZ_[2]; + if(match){ + var v = match[1], k = _gZ_[1], v$0 = sort$2(v); + return v === v$0 ? x : [0, 708012133, [0, k, [0, v$0]]]; + } + } + else if(726928360 <= _gU_){ + var l$2 = x[2], _g0_ = caml_call2(Stdlib_List[21], sort$2, l$2); + return [0, 726928360, caml_call1(Stdlib_List[9], _g0_)]; + } + } + return x; + } + function pp_list$2(sep, ppx, out, l){ + function pp_sep(out, param){ + return caml_call3(Stdlib_Format[129], out, _dp_, sep); + } + return caml_call4(Stdlib_Format[123], [0, pp_sep], ppx, out, l); + } + function is_atom$2(x){ + if(typeof x !== "number"){ + var _gT_ = x[1], switch$0 = 0; + if(737456202 <= _gT_){ + if(848054398 === _gT_){ + if(x[2]) switch$0 = 1; + } + else if(963043957 <= _gT_ && x[2]) switch$0 = 1; + } + else + if(708012133 === _gT_){ + if(x[2][2]) switch$0 = 1; + } + else if(726928360 <= _gT_ && x[2]) switch$0 = 1; + if(switch$0) return 0; + } + return 1; + } + function format$2(inside_box, std, out, x){ + var x$0 = x; + for(;;){ + if(typeof x$0 === "number") + return caml_call2(Stdlib_Format[13], out, cst_null$8); + var _gf_ = x$0[1]; + if(737456202 <= _gf_){ + if(928231259 <= _gf_){ + if(963043957 > _gf_){ + var s = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s); + } + var l = x$0[2]; + if(! l) return caml_call2(Stdlib_Format[13], out, cst$71); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dq_); + var + _gg_ = + function(out, param){ + var x = param[2], name = param[1], _gO_ = 1; + function _gP_(_gR_, _gS_){return format$2(_gO_, std, _gR_, _gS_);} + var _gQ_ = json_string_of_string$2(name); + return caml_call5(Stdlib_Format[129], out, _dC_, _gQ_, _gP_, x); + }, + _gh_ = + function(_gM_, _gN_){return pp_list$2(cst$70, _gg_, _gM_, _gN_);}; + caml_call4(Stdlib_Format[129], out, _dr_, _gh_, l); + var _gi_ = 1 - inside_box; + return _gi_ ? caml_call2(Stdlib_Format[129], out, _ds_) : _gi_; + } + if(848054398 > _gf_){ + var x$1 = x$0[2]; + return caml_call2(Stdlib_Format[25], out, x$1); + } + var l$0 = x$0[2]; + if(! l$0) return caml_call2(Stdlib_Format[13], out, cst$74); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dt_); + if(caml_call2(Stdlib_List[32], is_atom$2, l$0)){ + var + _gj_ = 0, + _gk_ = function(_gG_, _gH_){return format$2(_gj_, std, _gG_, _gH_);}, + _gl_ = + function(_gE_, _gF_){return pp_list$2(cst$72, _gk_, _gE_, _gF_);}; + caml_call4(Stdlib_Format[129], out, _du_, _gl_, l$0); + } + else{ + var + _gn_ = 0, + _go_ = function(_gK_, _gL_){return format$2(_gn_, std, _gK_, _gL_);}, + _gp_ = + function(_gI_, _gJ_){return pp_list$2(cst$73, _go_, _gI_, _gJ_);}; + caml_call4(Stdlib_Format[129], out, _dw_, _gp_, l$0); + } + var _gm_ = 1 - inside_box; + return _gm_ ? caml_call2(Stdlib_Format[129], out, _dv_) : _gm_; + } + if(708012133 > _gf_){ + if(-375152890 <= _gf_){ + var s$1 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$1); + } + var s$2 = x$0[2]; + return caml_call2(Stdlib_Format[13], out, s$2); + } + if(726928360 <= _gf_){ + var l$1 = x$0[2]; + if(std){var x$2 = [0, 848054398, l$1], x$0 = x$2; continue;} + if(0 === l$1) return caml_call2(Stdlib_Format[13], out, cst$75); + if(1 - inside_box) caml_call2(Stdlib_Format[129], out, _dx_); var - bytes= - pos1 === pos2 - ?caml_call2(Stdlib_Printf[4],_ei_,pos1 + 1 | 0) - :caml_call3(Stdlib_Printf[4],_ek_,pos1 + 1 | 0,pos2 + 1 | 0), - msg=caml_call5(Stdlib_Printf[4],_ej_,file_line,v[2],bytes,descr); - return json_error(msg)} - function lexer_error$1(descr,v,lexbuf) - {var _fC_=caml_call1(lexeme$1,lexbuf); - return custom_error$1 - (caml_call3(Stdlib_Printf[4],_el_,descr,_fC_),v,lexbuf)} - var read_junk$1=[0,function(param){throw [0,Assert_failure,_em_]}]; - function long_error$1(descr,v,lexbuf) - {var - junk=caml_call1(lexeme$1,lexbuf), - extra_junk=caml_call1(read_junk$1[1],lexbuf); - return custom_error$1 - (caml_call4(Stdlib_Printf[4],_en_,descr,junk,extra_junk), - v, - lexbuf)} + _gq_ = 0, + _gr_ = function(_gC_, _gD_){return format$2(_gq_, std, _gC_, _gD_);}, + _gs_ = + function(_gA_, _gB_){return pp_list$2(cst$76, _gr_, _gA_, _gB_);}; + caml_call4(Stdlib_Format[129], out, _dy_, _gs_, l$1); + var _gt_ = 1 - inside_box; + return _gt_ ? caml_call2(Stdlib_Format[129], out, _dz_) : _gt_; + } + var _gu_ = x$0[2], match = _gu_[2], s$0 = _gu_[1]; + if(match){ + var x$3 = match[1]; + if(std){ + var + representation = [0, -375152890, s$0], + x$4 = [0, 848054398, [0, representation, [0, x$3, 0]]], + x$0 = x$4; + continue; + } + var + op = json_string_of_string$2(s$0), + _gv_ = 1, + _gw_ = function(_gy_, _gz_){return format$2(_gv_, std, _gy_, _gz_);}; + return caml_call5(Stdlib_Format[129], out, _dA_, op, _gw_, x$3); + } + if(std){ + var representation$0 = [0, -375152890, s$0], x$0 = representation$0; + continue; + } + var _gx_ = json_string_of_string$2(s$0); + return caml_call3(Stdlib_Format[129], out, _dB_, _gx_); + } + } + function pp$5(opt, out, x){ + if(opt) var sth = opt[1], std = sth; else var std = 0; + var _gb_ = 1; + function _gc_(_gd_, _ge_){return format$2(_gb_, std, _gd_, _ge_);} + return caml_call4(Stdlib_Format[129], out, _dD_, _gc_, x); + } + function pp$6(fmt, param){ + if(typeof param === "number") + return caml_call2(Stdlib_Format[13], fmt, cst_Null$2); + var _f6_ = param[1]; + if(737456202 <= _f6_){ + if(928231259 <= _f6_){ + if(963043957 <= _f6_){ + var xs = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dG_); + caml_call2(Stdlib_Format[129], fmt, _dH_); + var + _f7_ = 0, + _f8_ = + function(sep, param){ + var value = param[2], key = param[1]; + if(sep) caml_call2(Stdlib_Format[129], fmt, _dI_); + caml_call2(Stdlib_Format[129], fmt, _dJ_); + caml_call3(Stdlib_Format[129], fmt, _dK_, key); + caml_call2(Stdlib_Format[129], fmt, _dL_); + pp$6(fmt, value); + caml_call2(Stdlib_Format[129], fmt, _dM_); + return 1; + }; + caml_call3(Stdlib_List[25], _f8_, _f7_, xs); + caml_call2(Stdlib_Format[129], fmt, _dN_); + return caml_call2(Stdlib_Format[129], fmt, _dO_); + } + var x = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dP_); + caml_call3(Stdlib_Format[129], fmt, _dQ_, x); + return caml_call2(Stdlib_Format[129], fmt, _dR_); + } + if(848054398 <= _f6_){ + var xs$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dS_); + caml_call2(Stdlib_Format[129], fmt, _dT_); + var + _f9_ = 0, + _f__ = + function(sep, x){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _dU_); + pp$6(fmt, x); + return 1; + }; + caml_call3(Stdlib_List[25], _f__, _f9_, xs$0); + caml_call2(Stdlib_Format[129], fmt, _dV_); + return caml_call2(Stdlib_Format[129], fmt, _dW_); + } + var x$0 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _dX_); + caml_call3(Stdlib_Format[129], fmt, _dY_, x$0); + return caml_call2(Stdlib_Format[129], fmt, _dZ_); + } + if(708012133 <= _f6_){ + if(726928360 <= _f6_){ + var tup = param[2]; + caml_call2(Stdlib_Format[129], fmt, _d0_); + caml_call2(Stdlib_Format[129], fmt, _d1_); + var + _f$_ = 0, + _ga_ = + function(sep, e){ + if(sep) caml_call2(Stdlib_Format[129], fmt, _d2_); + pp$6(fmt, e); + return 1; + }; + caml_call3(Stdlib_List[25], _ga_, _f$_, tup); + caml_call2(Stdlib_Format[129], fmt, _d3_); + return caml_call2(Stdlib_Format[129], fmt, _d4_); + } + var match = param[2], value = match[2], name = match[1]; + caml_call2(Stdlib_Format[129], fmt, _d5_); + caml_call2(Stdlib_Format[129], fmt, _d6_); + caml_call3(Stdlib_Format[129], fmt, _d7_, name); + caml_call2(Stdlib_Format[129], fmt, _d8_); + if(value){ + var x$1 = value[1]; + caml_call2(Stdlib_Format[13], fmt, cst_Some$1); + pp$6(fmt, x$1); + caml_call2(Stdlib_Format[13], fmt, cst$77); + } + else + caml_call2(Stdlib_Format[13], fmt, cst_None$1); + caml_call2(Stdlib_Format[129], fmt, _d9_); + return caml_call2(Stdlib_Format[129], fmt, _d__); + } + if(-375152890 <= _f6_){ + var x$2 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _d$_); + caml_call3(Stdlib_Format[129], fmt, _ea_, x$2); + return caml_call2(Stdlib_Format[129], fmt, _eb_); + } + var x$3 = param[2]; + caml_call2(Stdlib_Format[129], fmt, _ec_); + caml_call3(Stdlib_Format[129], fmt, _ed_, x$3); + return caml_call2(Stdlib_Format[129], fmt, _ee_); + } + function show$2(x){return caml_call3(Stdlib_Format[133], _ef_, pp$6, x);} + function equal$2(a, b){ + var a$0 = a, b$0 = b; + for(;;){ + if(typeof a$0 === "number"){ + if(870828711 === a$0 && 870828711 === b$0) return 1; + } + else{ + var _fX_ = a$0[1], switch$0 = 0; + if(726928361 <= _fX_){ + if(848054399 <= _fX_){ + if(928231259 === _fX_){ + if(typeof b$0 !== "number" && 928231259 === b$0[1]){ + var b$1 = b$0[2], a$1 = a$0[2]; + return caml_equal(a$1, b$1); + } + } + else if + (963043957 === _fX_ + && typeof b$0 !== "number" && 963043957 === b$0[1]){ + var + ys = b$0[2], + xs = a$0[2], + compare_keys = + function(param, _f5_){ + var key = _f5_[1], key$0 = param[1]; + return caml_call2(Stdlib_String[9], key$0, key); + }, + xs$0 = caml_call2(Stdlib_List[57], compare_keys, xs), + ys$0 = caml_call2(Stdlib_List[57], compare_keys, ys); + try{ + var + _fZ_ = + function(param, _f4_){ + var + value = _f4_[2], + key = _f4_[1], + value$0 = param[2], + key$0 = param[1]; + return caml_string_equal(key$0, key) + ? equal$2(value$0, value) + : 0; + }, + result = caml_call3(Stdlib_List[34], _fZ_, xs$0, ys$0); + return result; + } + catch(_f3_){ + var _fY_ = caml_wrap_exception(_f3_); + if(_fY_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_fY_, 0); + } + } + } + else + if(737456202 === _fX_){ + if(typeof b$0 !== "number" && 737456202 === b$0[1]){ + var b$2 = b$0[2], a$2 = a$0[2]; + return caml_equal(a$2, b$2); + } + } + else if + (848054398 <= _fX_ && typeof b$0 !== "number" && 848054398 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(-375152889 <= _fX_){ + if(708012133 === _fX_){ + if(typeof b$0 !== "number" && 708012133 === b$0[1]){ + var + _f1_ = b$0[2], + value = _f1_[2], + name = _f1_[1], + match = a$0[2], + value$0 = match[2], + name$0 = match[1]; + if(! caml_equal(name$0, name)) return 0; + if(value$0){ + if(value){ + var y = value[1], x = value$0[1], a$0 = x, b$0 = y; + continue; + } + } + else if(! value) return 1; + return 0; + } + } + else if + (726928360 <= _fX_ && typeof b$0 !== "number" && 726928360 === b$0[1]){var ys$1 = b$0[2], xs$1 = a$0[2]; switch$0 = 1;} + } + else + if(-752863768 === _fX_){ + if(typeof b$0 !== "number" && -752863768 === b$0[1]){ + var b$3 = b$0[2], a$3 = a$0[2]; + return caml_equal(a$3, b$3); + } + } + else if + (-375152890 <= _fX_ + && typeof b$0 !== "number" && -375152890 === b$0[1]){ + var b$4 = b$0[2], a$4 = a$0[2]; + return caml_equal(a$4, b$4); + } + if(switch$0) + try{ + var result$0 = caml_call3(Stdlib_List[34], equal$2, xs$1, ys$1); + return result$0; + } + catch(_f2_){ + var _f0_ = caml_wrap_exception(_f2_); + if(_f0_[1] === Stdlib[6]) return 0; + throw caml_maybe_attach_backtrace(_f0_, 0); + } + } + return 0; + } + } + function pretty_print$2(std, out, x){return pp$5(std, out, x);} + function pretty_to_string$2(std, x){ + function _fU_(_fV_, _fW_){return pp$5(std, _fV_, _fW_);} + return caml_call3(Stdlib_Format[133], _dE_, _fU_, x); + } + function pretty_to_channel$2(std, oc, x){ + var fmt = caml_call1(Stdlib_Format[108], oc); + function _fR_(_fS_, _fT_){return pp$5(std, _fS_, _fT_);} + return caml_call4(Stdlib_Format[129], fmt, _dF_, _fR_, x); + } + var + from_channel$3 = Stdlib_Lexing[2], + from_string$3 = Stdlib_Lexing[3], + lexeme$1 = Stdlib_Lexing[8], + sub_lexeme$1 = Stdlib_Lexing[16], + sub_lexeme_char$1 = Stdlib_Lexing[18]; + function hex$5(c){ + if(65 <= c){ + if(97 <= c){ + if(103 > c) return (c - 97 | 0) + 10 | 0; + } + else if(71 > c) return (c - 65 | 0) + 10 | 0; + } + else if(9 >= c - 48 >>> 0) return c - 48 | 0; + throw caml_maybe_attach_backtrace([0, Assert_failure, _eg_], 1); + } + function custom_error$1(descr, v, lexbuf){ var - _eo_=0 === (Stdlib[20] % 10 | 0)?0:1, - min10$1=(Stdlib[20] / 10 | 0) - _eo_ | 0, - _ep_=0 === (Stdlib[19] % 10 | 0)?0:1, - max10$1=(Stdlib[19] / 10 | 0) + _ep_ | 0, - Int_overflow$1=[248,cst_Yojson_Raw_Int_overflow,caml_fresh_oo_id(0)]; - function extract_positive_int$1(lexbuf) - {var - start=lexbuf[5], - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _fz_=stop - 1 | 0; - if(_fz_ >= start) - {var i=start; - for(;;) - {if(max10$1 <= n[1])throw Int_overflow$1; - var _fA_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) + _fA_ | 0; - var _fB_=i + 1 | 0; - if(_fz_ !== i){var i=_fB_;continue} - break}} - if(0 <= n[1])return n[1]; - throw Int_overflow$1} - function make_positive_int(v,lexbuf) - {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} - function extract_negative_int$1(lexbuf) - {var - start=lexbuf[5] + 1 | 0, - stop=lexbuf[6], - s=lexbuf[2], - n=[0,0], - _fw_=stop - 1 | 0; - if(_fw_ >= start) - {var i=start; - for(;;) - {if(n[1] <= min10$1)throw Int_overflow$1; - var _fx_=caml_bytes_get(s,i) - 48 | 0; - n[1] = (10 * n[1] | 0) - _fx_ | 0; - var _fy_=i + 1 | 0; - if(_fw_ !== i){var i=_fy_;continue} - break}} - if(0 < n[1])throw Int_overflow$1; - return n[1]} - function make_negative_int(v,lexbuf) - {return [0,-752863768,caml_call1(lexeme$1,lexbuf)]} - function newline$1(v,lexbuf) - {v[2] = v[2] + 1 | 0;v[3] = lexbuf[4] + lexbuf[6] | 0;return 0} - function add_lexeme$1(buf,lexbuf) - {var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call4(Stdlib_Buffer[19],buf,lexbuf[2],lexbuf[5],len)} - function read_json$4(counter,v,lexbuf) - {var _fv_=0; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_read_json_rec$1,[0,v,lexbuf,_fv_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_read_json_rec$1(counter$0,v,lexbuf,_fv_)} - function ocaml_lex_read_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(19 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return _eq_; - case 1:return _er_; - case 2:return 870828711; - case 3:return _es_; - case 4:return _et_; - case 5:return _eu_; - case 6:return [0,-375152890,finish_stringlit$1(v,lexbuf)]; - case 7:return make_positive_int(v,lexbuf); - case 8:return make_negative_int(v,lexbuf); - case 9:return [0,928231259,caml_call1(lexeme$1,lexbuf)]; - case 10: - var acc=[0,0]; - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - var field_name=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fm_=acc[1]; - acc[1] = [0,[0,field_name,read_json$1(v,lexbuf)],_fm_]; - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var field_name$0=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fn_=acc[1]; - acc[1] = [0,[0,field_name$0,read_json$1(v,lexbuf)],_fn_]}} - catch(_fu_) - {_fu_ = caml_wrap_exception(_fu_); - if(_fu_ === End_of_object) - return [0,963043957,caml_call1(Stdlib_List[9],acc[1])]; - throw _fu_} - case 11: - var acc$0=[0,0]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - var _fo_=acc$0[1]; - acc$0[1] = [0,read_json$1(v,lexbuf),_fo_]; - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fp_=acc$0[1]; - acc$0[1] = [0,read_json$1(v,lexbuf),_fp_]}} - catch(_ft_) - {_ft_ = caml_wrap_exception(_ft_); - if(_ft_ === End_of_array) - return [0,848054398,caml_call1(Stdlib_List[9],acc$0[1])]; - throw _ft_} - case 12: - var acc$1=[0,0]; - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - var _fq_=acc$1[1]; - acc$1[1] = [0,read_json$1(v,lexbuf),_fq_]; - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _fr_=acc$1[1]; - acc$1[1] = [0,read_json$1(v,lexbuf),_fr_]}} - catch(_fs_) - {_fs_ = caml_wrap_exception(_fs_); - if(_fs_ === End_of_tuple) - return [0,726928360,caml_call1(Stdlib_List[9],acc$1[1])]; - throw _fs_} - case 13: - read_space$1(v,lexbuf); - var cons=read_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - return [0,708012133,[0,cons,finish_variant$1(v,lexbuf)]]; - case 14: - if(counter >= 50) - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return read_json$4(counter$0,v,lexbuf); - case 15: - finish_comment$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return read_json$4(counter$1,v,lexbuf); - case 16: - newline$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return read_json$4(counter$2,v,lexbuf); - case 17: - if(counter >= 50) - return caml_trampoline_return(read_json$4,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return read_json$4(counter$3,v,lexbuf); - case 18: - return custom_error$1(cst_Unexpected_end_of_input$92,v,lexbuf); - default:return long_error$1(cst_Invalid_token$12,v,lexbuf)}}} - function read_json$1(v,lexbuf) - {return caml_trampoline(read_json$4(0,v,lexbuf))} - function finish_string$5(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=58; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call1(Stdlib_Buffer[2],v[1]); - case 1:finish_escaped_char$1(v,lexbuf);continue a; - case 2:add_lexeme$1(v[1],lexbuf);continue a; - default: - return custom_error$1(cst_Unexpected_end_of_input$93,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function map_string$1(v,f,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=63; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var b=v[1],_fl_=caml_call1(Stdlib_Buffer[7],b); - return caml_call3(f,caml_call1(Stdlib_Buffer[2],b),0,_fl_); - case 1:finish_escaped_char$1(v,lexbuf);continue a; - case 2:add_lexeme$1(v[1],lexbuf);continue a; - default: - return custom_error$1(cst_Unexpected_end_of_input$94,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function finish_escaped_char$1(v,lexbuf) - {var ocaml_lex_state=68; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(8 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - var c=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5]); - return caml_call2(Stdlib_Buffer[12],v[1],c); - case 1:return caml_call2(Stdlib_Buffer[12],v[1],8); - case 2:return caml_call2(Stdlib_Buffer[12],v[1],12); - case 3:return caml_call2(Stdlib_Buffer[12],v[1],10); - case 4:return caml_call2(Stdlib_Buffer[12],v[1],13); - case 5:return caml_call2(Stdlib_Buffer[12],v[1],9); - case 6: + offs = lexbuf[4] - 1 | 0, + bol = v[3], + pos1 = ((offs + lexbuf[5] | 0) - bol | 0) - 1 | 0, + pos2 = caml_call2(Stdlib[17], pos1, (offs + lexbuf[6] | 0) - bol | 0), + match = v[4]; + if(match) + var s = match[1], file_line = caml_call2(Stdlib_Printf[4], _eh_, s); + else + var file_line = cst_Line$1; + var + bytes = + pos1 === pos2 + ? caml_call2(Stdlib_Printf[4], _ei_, pos1 + 1 | 0) + : caml_call3(Stdlib_Printf[4], _ek_, pos1 + 1 | 0, pos2 + 1 | 0), + msg = caml_call5(Stdlib_Printf[4], _ej_, file_line, v[2], bytes, descr); + return json_error(msg); + } + function lexer_error$1(descr, v, lexbuf){ + var _fQ_ = caml_call1(lexeme$1, lexbuf); + return custom_error$1 + (caml_call3(Stdlib_Printf[4], _el_, descr, _fQ_), v, lexbuf); + } + var + read_junk$1 = + [0, + function(param){ + throw caml_maybe_attach_backtrace([0, Assert_failure, _em_], 1); + }]; + function long_error$1(descr, v, lexbuf){ + var + junk = caml_call1(lexeme$1, lexbuf), + extra_junk = caml_call1(read_junk$1[1], lexbuf); + return custom_error$1 + (caml_call4(Stdlib_Printf[4], _en_, descr, junk, extra_junk), + v, + lexbuf); + } + var + _eo_ = 0 === (Stdlib[20] % 10 | 0) ? 0 : 1, + min10$1 = (Stdlib[20] / 10 | 0) - _eo_ | 0, + _ep_ = 0 === (Stdlib[19] % 10 | 0) ? 0 : 1, + max10$1 = (Stdlib[19] / 10 | 0) + _ep_ | 0, + Int_overflow$1 = [248, cst_Yojson_Raw_Int_overflow, caml_fresh_oo_id(0)]; + function newline$1(v, lexbuf){ + v[2] = v[2] + 1 | 0; + v[3] = lexbuf[4] + lexbuf[6] | 0; + return 0; + } + function add_lexeme$1(buf, lexbuf){ + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call4(Stdlib_Buffer[19], buf, lexbuf[2], lexbuf[5], len); + } + function read_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 0; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(19 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return _eq_; + case 1: + return _er_; + case 2: + return 870828711; + case 3: + return _es_; + case 4: + return _et_; + case 5: + return _eu_; + case 6: + return [0, -375152890, finish_stringlit$1(v, lexbuf)]; + case 7: + return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; + case 8: + return [0, -752863768, caml_call1(lexeme$1, lexbuf)]; + case 9: + return [0, 928231259, caml_call1(lexeme$1, lexbuf)]; + case 10: + var acc = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + var field_name = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fF_ = acc[1]; + acc[1] = [0, [0, field_name, read_json$1(v, lexbuf)], _fF_]; + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var field_name$0 = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fG_ = acc[1]; + acc[1] = [0, [0, field_name$0, read_json$1(v, lexbuf)], _fG_]; + } + } + catch(_fP_){ + var _fE_ = caml_wrap_exception(_fP_); + if(_fE_ === End_of_object) + return [0, 963043957, caml_call1(Stdlib_List[9], acc[1])]; + throw caml_maybe_attach_backtrace(_fE_, 0); + } + case 11: + var acc$0 = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + var _fI_ = acc$0[1]; + acc$0[1] = [0, read_json$1(v, lexbuf), _fI_]; + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fJ_ = acc$0[1]; + acc$0[1] = [0, read_json$1(v, lexbuf), _fJ_]; + } + } + catch(_fO_){ + var _fH_ = caml_wrap_exception(_fO_); + if(_fH_ === End_of_array) + return [0, 848054398, caml_call1(Stdlib_List[9], acc$0[1])]; + throw caml_maybe_attach_backtrace(_fH_, 0); + } + case 12: + var acc$1 = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + var _fL_ = acc$1[1]; + acc$1[1] = [0, read_json$1(v, lexbuf), _fL_]; + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _fM_ = acc$1[1]; + acc$1[1] = [0, read_json$1(v, lexbuf), _fM_]; + } + } + catch(_fN_){ + var _fK_ = caml_wrap_exception(_fN_); + if(_fK_ === End_of_tuple) + return [0, 726928360, caml_call1(Stdlib_List[9], acc$1[1])]; + throw caml_maybe_attach_backtrace(_fK_, 0); + } + case 13: + read_space$1(v, lexbuf); + var cons = read_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + return [0, 708012133, [0, cons, finish_variant$1(v, lexbuf)]]; + case 14: + continue a; + case 15: + finish_comment$1(v, lexbuf); continue a; + case 16: + newline$1(v, lexbuf); continue a; + case 17: + continue a; + case 18: + return custom_error$1(cst_Unexpected_end_of_input$92, v, lexbuf); + default: return long_error$1(cst_Invalid_token$12, v, lexbuf); + } + } + } + } + function finish_string$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 58; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call1(Stdlib_Buffer[2], v[1]); + case 1: + finish_escaped_char$1(v, lexbuf); continue a; + case 2: + add_lexeme$1(v[1], lexbuf); continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$93, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function map_string$1(v, f, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 63; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var b = v[1], _fD_ = caml_call1(Stdlib_Buffer[7], b); + return caml_call3(f, caml_call1(Stdlib_Buffer[2], b), 0, _fD_); + case 1: + finish_escaped_char$1(v, lexbuf); continue a; + case 2: + add_lexeme$1(v[1], lexbuf); continue a; + default: + return custom_error$1(cst_Unexpected_end_of_input$94, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function finish_escaped_char$1(v, lexbuf){ + var ocaml_lex_state = 68; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(8 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var c = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5]); + return caml_call2(Stdlib_Buffer[12], v[1], c); + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 8); + case 2: + return caml_call2(Stdlib_Buffer[12], v[1], 12); + case 3: + return caml_call2(Stdlib_Buffer[12], v[1], 10); + case 4: + return caml_call2(Stdlib_Buffer[12], v[1], 13); + case 5: + return caml_call2(Stdlib_Buffer[12], v[1], 9); + case 6: + var + a = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 1 | 0), + b = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), + c$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), + d = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), + _fx_ = hex$5(d), + _fy_ = hex$5(c$0) << 4, + _fz_ = hex$5(b) << 8, + x = hex$5(a) << 12 | _fz_ | _fy_ | _fx_; + if(55296 <= x && 56319 >= x){ + var ocaml_lex_state$1 = 82; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); + if(2 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + var + a$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 2 | 0), + b$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 3 | 0), + c$1 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 4 | 0), + d$0 = caml_call2(sub_lexeme_char$1, lexbuf, lexbuf[5] + 5 | 0), + _fA_ = hex$5(d$0), + _fB_ = hex$5(c$1) << 4, + _fC_ = hex$5(b$0) << 8, + y = hex$5(a$0) << 12 | _fC_ | _fB_ | _fA_; + if(56320 <= y && 57343 >= y) + return utf8_of_surrogate_pair(v[1], x, y); + return long_error$1(cst_Invalid_low_surrogate_for_$1, v, lexbuf); + case 1: + return long_error$1(cst_Missing_escape_sequence_re$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$96, v, lexbuf); + } + } + } + return utf8_of_code(v[1], x); + case 7: + return long_error$1(cst_Invalid_escape_sequence$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$95, v, lexbuf); + } + } + } + function finish_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 91; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var + len = lexbuf[6] - lexbuf[5] | 0, + s = caml_create_bytes(len + 1 | 0); + caml_bytes_set(s, 0, 34); + caml_call5(Stdlib_Bytes[11], lexbuf[2], lexbuf[5], s, 1, len); + return caml_call1(Stdlib_Bytes[6], s); + case 1: + return long_error$1(cst_Invalid_string_literal$5, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$97, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_variant$1(v, lexbuf){ + var ocaml_lex_state = 102; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + var x = read_json$1(v, lexbuf); + read_space$1(v, lexbuf); + read_gt$1(v, lexbuf); + return [0, x]; + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_or_but_found$29, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$98, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lt$1(v, lexbuf){ + var ocaml_lex_state = 107; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$30, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$99, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_gt$1(v, lexbuf){ + var ocaml_lex_state = 111; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$31, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$100, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_comma$1(v, lexbuf){ + var ocaml_lex_state = 115; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$32, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$101, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_variant$1(v, lexbuf){ + var ocaml_lex_state = 119; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return -154522342; + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); return -589953938; + case 2: + return -124528282; + case 3: + return long_error$1(cst_Expected_or_but_found$30, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$102, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_comment$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 125; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Unterminated_comment$3, v, lexbuf); + case 2: + newline$1(v, lexbuf); continue a; + default: continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_eof$1(lexbuf){ + var ocaml_lex_state = 131; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_space$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 133; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + newline$1(v, lexbuf); continue a; + case 1: + finish_comment$1(v, lexbuf); continue a; + case 2: + newline$1(v, lexbuf); continue a; + case 3: + continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function read_null$1(v, lexbuf){ + var ocaml_lex_state = 140; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_null_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$103, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_null_if_possible$1(v, lexbuf){ + var ocaml_lex_state = 147; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return 1; + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_bool$1(v, lexbuf){ + var ocaml_lex_state = 152; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(5 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 1; + case 1: + return 0; + case 2: + return 1; + case 3: + return 0; + case 4: + return long_error$1(cst_Expected_true_or_false_but$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$104, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_int$1(v, lexbuf){ + var ocaml_lex_state = 176; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var + start = lexbuf[5], + stop = lexbuf[6], + s = lexbuf[2], + n = [0, 0], + _fj_ = stop - 1 | 0; + if(_fj_ >= start){ + var i = start; + for(;;){ + if(max10$1 <= n[1]) + throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fl_ = caml_bytes_get(s, i) - 48 | 0; + n[1] = (10 * n[1] | 0) + _fl_ | 0; + var _fm_ = i + 1 | 0; + if(_fj_ !== i){var i = _fm_; continue;} + break; + } + } + if(0 > n[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fk_ = n[1]; + return _fk_; + } + catch(_fw_){ + var _fr_ = caml_wrap_exception(_fw_); + if(_fr_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$5, v, lexbuf); + throw caml_maybe_attach_backtrace(_fr_, 0); + } + case 1: + try{ + var + start$0 = lexbuf[5] + 1 | 0, + stop$0 = lexbuf[6], + s$0 = lexbuf[2], + n$0 = [0, 0], + _fn_ = stop$0 - 1 | 0; + if(_fn_ >= start$0){ + var i$0 = start$0; + for(;;){ + if(n$0[1] <= min10$1) + throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fp_ = caml_bytes_get(s$0, i$0) - 48 | 0; + n$0[1] = (10 * n$0[1] | 0) - _fp_ | 0; + var _fq_ = i$0 + 1 | 0; + if(_fn_ !== i$0){var i$0 = _fq_; continue;} + break; + } + } + if(0 < n$0[1]) throw caml_maybe_attach_backtrace(Int_overflow$1, 1); + var _fo_ = n$0[1]; + return _fo_; + } + catch(_fv_){ + var _fs_ = caml_wrap_exception(_fv_); + if(_fs_ === Int_overflow$1) + return lexer_error$1(cst_Int_overflow$6, v, lexbuf); + throw caml_maybe_attach_backtrace(_fs_, 0); + } + case 2: + caml_call1(Stdlib_Buffer[8], v[1]); + var s$1 = finish_string$1(v, lexbuf); + try{var _ft_ = caml_int_of_string(s$1); return _ft_;} + catch(_fu_){ + return custom_error$1(cst_Expected_an_integer_but_fo$1, v, lexbuf); + } + case 3: + return long_error$1(cst_Expected_integer_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$105, v, lexbuf); + } + } + } + function read_int32$1(v, lexbuf){ + var ocaml_lex_state = 185; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _ff_ = caml_int_of_string(caml_call1(lexeme$1, lexbuf)); + return _ff_; + } + catch(_fi_){return lexer_error$1(cst_Int32_overflow$3, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _fg_ = caml_int_of_string(s); return _fg_;} + catch(_fh_){ + return custom_error$1(cst_Expected_an_int32_but_foun$1, v, lexbuf); + } + case 2: + return long_error$1(cst_Expected_int32_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$106, v, lexbuf); + } + } + } + function read_int64$1(v, lexbuf){ + var ocaml_lex_state = 192; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + try{ + var _fb_ = caml_int64_of_string(caml_call1(lexeme$1, lexbuf)); + return _fb_; + } + catch(_fe_){return lexer_error$1(cst_Int32_overflow$4, v, lexbuf);} + case 1: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _fc_ = caml_int64_of_string(s); return _fc_;} + catch(_fd_){ + return custom_error$1(cst_Expected_an_int64_but_foun$1, v, lexbuf); + } + case 2: + return long_error$1(cst_Expected_int64_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$107, v, lexbuf); + } + } + } + function read_number$1(v, lexbuf){ + var ocaml_lex_state = 199; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(6 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return Stdlib[24]; + case 1: + return Stdlib[22]; + case 2: + return Stdlib[23]; + case 3: + return caml_float_of_string(caml_call1(lexeme$1, lexbuf)); + case 4: + caml_call1(Stdlib_Buffer[8], v[1]); + var s = finish_string$1(v, lexbuf); + try{var _e$_ = caml_float_of_string(s); return _e$_;} + catch(_fa_){ + return caml_string_notequal(s, cst_Infinity$12) + ? caml_string_notequal + (s, cst_Infinity$11) + ? caml_string_notequal + (s, cst_NaN$5) + ? custom_error$1 + (cst_Expected_a_number_but_foun$1, v, lexbuf) + : Stdlib[24] + : Stdlib[22] + : Stdlib[23]; + } + case 5: + return long_error$1(cst_Expected_number_but_found$1, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$108, v, lexbuf); + } + } + } + function read_string$1(v, lexbuf){ + var ocaml_lex_state = 233; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$1(v, lexbuf); + case 1: + return long_error$1(cst_Expected_but_found$33, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$109, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_ident$1(v, lexbuf){ + var ocaml_lex_state = 237; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return finish_string$1(v, lexbuf); + case 1: + var s = caml_call3(sub_lexeme$1, lexbuf, lexbuf[5], lexbuf[6]); + return s; + case 2: + return long_error$1(cst_Expected_string_or_identif$7, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$110, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function map_ident$1(v, f, lexbuf){ + var ocaml_lex_state = 242; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call1(Stdlib_Buffer[8], v[1]); + return map_string$1(v, f, lexbuf); + case 1: + var len = lexbuf[6] - lexbuf[5] | 0; + return caml_call3 + (f, + caml_call3(Stdlib_Bytes[8], lexbuf[2], lexbuf[5], len), + 0, + len); + case 2: + return long_error$1(cst_Expected_string_or_identif$8, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$111, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_sequence$1(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 247; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call3(read_cell, acc[1], v, lexbuf); + } + } + catch(_e__){ + var _e9_ = caml_wrap_exception(_e__); + if(_e9_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_e9_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$34, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$112, v, lexbuf); + } + } + } + function read_list_rev$1(read_cell, v, lexbuf){ + var ocaml_lex_state = 251; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, 0]; + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + var _e6_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e6_]; + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var _e7_ = acc[1]; + acc[1] = [0, caml_call2(read_cell, v, lexbuf), _e7_]; + } + } + catch(_e8_){ + var _e5_ = caml_wrap_exception(_e8_); + if(_e5_ === End_of_array) return acc[1]; + throw caml_maybe_attach_backtrace(_e5_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$35, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$113, v, lexbuf); + } + } + } + function read_array_end$1(lexbuf){ + var ocaml_lex_state = 255; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_array, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_array_sep$1(v, lexbuf){ + var ocaml_lex_state = 257; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$31, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$114, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple$1(read_cell, init_acc, v, lexbuf){ + var ocaml_lex_state = 262; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var pos = [0, 0], acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_cell, pos[1], acc[1], v, lexbuf); + pos[1]++; + } + } + catch(_e4_){ + var _e3_ = caml_wrap_exception(_e4_); + if(_e3_ === End_of_tuple) return acc[1]; + throw caml_maybe_attach_backtrace(_e3_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$36, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$115, v, lexbuf); + } + } + } + function read_tuple_end$1(lexbuf){ + var ocaml_lex_state = 266; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_end2$1(v, std, lexbuf){ + var ocaml_lex_state = 268; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + if(std) return long_error$1(cst_Expected_or_but_found$32, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 1: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$1(cst_Expected_or_but_found$33, v, lexbuf); + default: return 0; + } + } + } + function read_tuple_sep$1(v, lexbuf){ + var ocaml_lex_state = 271; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$34, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$116, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_tuple_sep2$1(v, std, lexbuf){ + var ocaml_lex_state = 276; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + if(std) return long_error$1(cst_Expected_or_but_found$35, v, lexbuf); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + if(std) throw caml_maybe_attach_backtrace(End_of_tuple, 1); + return long_error$1(cst_Expected_or_but_found$36, v, lexbuf); + case 3: + return long_error$1(cst_Expected_or_but_found$37, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$117, v, lexbuf); + } + } + } + function read_abstract_fields$1(read_key, read_field, init_acc, v, lexbuf){ + var ocaml_lex_state = 282; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + var acc = [0, init_acc]; + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + var field_name = caml_call2(read_key, v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name, v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + var field_name$0 = caml_call2(read_key, v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + acc[1] = caml_call4(read_field, acc[1], field_name$0, v, lexbuf); + } + } + catch(_e2_){ + var _e1_ = caml_wrap_exception(_e2_); + if(_e1_ === End_of_object) return acc[1]; + throw caml_maybe_attach_backtrace(_e1_, 0); + } + case 1: + return long_error$1(cst_Expected_but_found$37, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$118, v, lexbuf); + } + } + } + function read_lcurl$1(v, lexbuf){ + var ocaml_lex_state = 286; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$38, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$119, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_end$1(lexbuf){ + var ocaml_lex_state = 290; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) + throw caml_maybe_attach_backtrace(End_of_object, 1); + if(1 === ocaml_lex_state$0) return 0; + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_object_sep$1(v, lexbuf){ + var ocaml_lex_state = 292; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + return long_error$1(cst_Expected_or_but_found$38, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$120, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_colon$1(v, lexbuf){ + var ocaml_lex_state = 297; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$39, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$121, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function start_any_tuple$1(v, lexbuf){ + var ocaml_lex_state = 301; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 1; + case 2: + return long_error$1(cst_Expected_or_but_found$39, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$122, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lpar$1(v, lexbuf){ + var ocaml_lex_state = 306; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$40, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$123, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rpar$1(v, lexbuf){ + var ocaml_lex_state = 310; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$41, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$124, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_lbr$1(v, lexbuf){ + var ocaml_lex_state = 314; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$42, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$125, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function read_rbr$1(v, lexbuf){ + var ocaml_lex_state = 318; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Expected_but_found$43, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$126, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_variant$1(v, lexbuf){ + var ocaml_lex_state = 389; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + skip_json$1(v, lexbuf); + read_space$1(v, lexbuf); + return read_gt$1(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_or_but_found$40, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$129, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_skip_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 378; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return long_error$1(cst_Invalid_string_literal$6, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$128, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function skip_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 322; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(18 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return 0; + case 1: + return 0; + case 2: + return 0; + case 3: + return 0; + case 4: + return 0; + case 5: + return 0; + case 6: + return finish_skip_stringlit$1(v, lexbuf); + case 7: + return 0; + case 8: + return 0; + case 9: + try{ + read_space$1(v, lexbuf); + read_object_end$1(lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_object_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + read_colon$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_e0_){ + var _eV_ = caml_wrap_exception(_e0_); + if(_eV_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_eV_, 0); + } + case 10: + try{ + read_space$1(v, lexbuf); + read_array_end$1(lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_array_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_eZ_){ + var _eW_ = caml_wrap_exception(_eZ_); + if(_eW_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_eW_, 0); + } + case 11: + try{ + read_space$1(v, lexbuf); + read_tuple_end$1(lexbuf); + skip_json$1(v, lexbuf); + for(;;){ + read_space$1(v, lexbuf); + read_tuple_sep$1(v, lexbuf); + read_space$1(v, lexbuf); + skip_json$1(v, lexbuf); + } + } + catch(_eY_){ + var _eX_ = caml_wrap_exception(_eY_); + if(_eX_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_eX_, 0); + } + case 12: + read_space$1(v, lexbuf); + skip_ident$1(v, lexbuf); + read_space$1(v, lexbuf); + return finish_skip_variant$1(v, lexbuf); + case 13: + continue a; + case 14: + finish_comment$1(v, lexbuf); continue a; + case 15: + newline$1(v, lexbuf); continue a; + case 16: + continue a; + case 17: + return custom_error$1(cst_Unexpected_end_of_input$127, v, lexbuf); + default: return long_error$1(cst_Invalid_token$13, v, lexbuf); + } + } + } + } + function skip_ident$1(v, lexbuf){ + var ocaml_lex_state = 394; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_skip_stringlit$1(v, lexbuf); + case 1: + return 0; + case 2: + return long_error$1(cst_Expected_string_or_identif$9, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$130, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_stringlit$1(v, lexbuf){ + var ocaml_lex_state = 450; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 34); + return add_lexeme$1(v[1], lexbuf); + case 1: + return long_error$1(cst_Invalid_string_literal$7, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$132, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_json$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 399; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(11 < ocaml_lex_state$0 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + continue; + } + switch(ocaml_lex_state$0){ + case 0: + return add_lexeme$1(v[1], lexbuf); + case 1: + return finish_buffer_stringlit$1(v, lexbuf); + case 2: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 123); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$3 = 478; + for(;;){ var - a=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 1 | 0), - b=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), - c$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), - d=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), - _ff_=hex$5(d), - _fg_=hex$5(c$0) << 4, - _fh_=hex$5(b) << 8, - x=hex$5(a) << 12 | _fh_ | _fg_ | _ff_; - if(55296 <= x && 56319 >= x) - {var ocaml_lex_state$1=82; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); - if(2 < ocaml_lex_state$2 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2; - continue} - switch(ocaml_lex_state$2) - {case 0: - var - a$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 2 | 0), - b$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 3 | 0), - c$1=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 4 | 0), - d$0=caml_call2(sub_lexeme_char$1,lexbuf,lexbuf[5] + 5 | 0), - _fi_=hex$5(d$0), - _fj_=hex$5(c$1) << 4, - _fk_=hex$5(b$0) << 8, - y=hex$5(a$0) << 12 | _fk_ | _fj_ | _fi_; - if(56320 <= y && 57343 >= y) - return utf8_of_surrogate_pair(v[1],x,y); - return long_error$1 - (cst_Invalid_low_surrogate_for_$1,v,lexbuf); + ocaml_lex_state$4 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$3, lexbuf); + if(0 === ocaml_lex_state$4){ + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + } + if(1 !== ocaml_lex_state$4){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$3 = ocaml_lex_state$4; + continue; + } + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_colon$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$5 = 480; + for(;;){ + var + ocaml_lex_state$6 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$5, lexbuf); + if(3 < ocaml_lex_state$6 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$5 = ocaml_lex_state$6; + continue; + } + switch(ocaml_lex_state$6){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 125); + throw caml_maybe_attach_backtrace(End_of_object, 1); + case 2: + long_error$1(cst_Expected_or_but_found$42, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$135, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_colon$1(v, lexbuf); + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eU_){ + var _eP_ = caml_wrap_exception(_eU_); + if(_eP_ === End_of_object) return 0; + throw caml_maybe_attach_backtrace(_eP_, 0); + } + case 3: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 91); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$7 = 485; + for(;;){ + var + ocaml_lex_state$8 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$7, lexbuf); + if(0 === ocaml_lex_state$8){ + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + } + if(1 !== ocaml_lex_state$8){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$7 = ocaml_lex_state$8; + continue; + } + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$9 = 487; + for(;;){ + var + ocaml_lex_state$10 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$9, lexbuf); + if(3 < ocaml_lex_state$10 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$9 = ocaml_lex_state$10; + continue; + } + switch(ocaml_lex_state$10){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 93); + throw caml_maybe_attach_backtrace(End_of_array, 1); + case 2: + long_error$1(cst_Expected_or_but_found$43, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$136, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eT_){ + var _eQ_ = caml_wrap_exception(_eT_); + if(_eQ_ === End_of_array) return 0; + throw caml_maybe_attach_backtrace(_eQ_, 0); + } + case 4: + try{ + caml_call2(Stdlib_Buffer[12], v[1], 40); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$11 = 492; + for(;;){ + var + ocaml_lex_state$12 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$11, lexbuf); + if(0 === ocaml_lex_state$12){ + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + } + if(1 !== ocaml_lex_state$12){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$11 = ocaml_lex_state$12; + continue; + } + buffer_json$1(v, lexbuf); + b: + for(;;){ + buffer_space$1(v, lexbuf); + var ocaml_lex_state$13 = 494; + for(;;){ + var + ocaml_lex_state$14 = + caml_lex_engine + (ocaml_lex_tables$1, ocaml_lex_state$13, lexbuf); + if(3 < ocaml_lex_state$14 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$13 = ocaml_lex_state$14; + continue; + } + switch(ocaml_lex_state$14){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 44); break; + case 1: + caml_call2(Stdlib_Buffer[12], v[1], 41); + throw caml_maybe_attach_backtrace(End_of_tuple, 1); + case 2: + long_error$1(cst_Expected_or_but_found$44, v, lexbuf); break; + default: + custom_error$1(cst_Unexpected_end_of_input$137, v, lexbuf); + } + buffer_space$1(v, lexbuf); + buffer_json$1(v, lexbuf); + continue b; + } + } + } + } + catch(_eS_){ + var _eR_ = caml_wrap_exception(_eS_); + if(_eR_ === End_of_tuple) return 0; + throw caml_maybe_attach_backtrace(_eR_, 0); + } + case 5: + caml_call2(Stdlib_Buffer[12], v[1], 60); + buffer_space$1(v, lexbuf); + buffer_ident$1(v, lexbuf); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$1 = 461; + for(;;){ + var + ocaml_lex_state$2 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state$1, lexbuf); + if(3 < ocaml_lex_state$2 >>> 0){ + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$1 = ocaml_lex_state$2; + continue; + } + switch(ocaml_lex_state$2){ + case 0: + caml_call2(Stdlib_Buffer[12], v[1], 58); + buffer_json$1(v, lexbuf); + buffer_space$1(v, lexbuf); + var ocaml_lex_state$15 = 503; + for(;;){ + var + ocaml_lex_state$16 = + caml_lex_engine + (ocaml_lex_tables$1, ocaml_lex_state$15, lexbuf); + if(2 >= ocaml_lex_state$16 >>> 0) + switch(ocaml_lex_state$16){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 62); case 1: - return long_error$1 - (cst_Missing_escape_sequence_re$1,v,lexbuf); + return long_error$1(cst_Expected_but_found$45, v, lexbuf); default: return custom_error$1 - (cst_Unexpected_end_of_input$96,v,lexbuf)}}} - return utf8_of_code(v[1],x); - case 7:return long_error$1(cst_Invalid_escape_sequence$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$95,v,lexbuf)}}} - function finish_stringlit$1(v,lexbuf) - {var ocaml_lex_state=91; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var - len=lexbuf[6] - lexbuf[5] | 0, - s=caml_create_bytes(len + 1 | 0); - caml_bytes_set(s,0,34); - caml_call5(Stdlib_Bytes[11],lexbuf[2],lexbuf[5],s,1,len); - return caml_call1(Stdlib_Bytes[6],s); - case 1:return long_error$1(cst_Invalid_string_literal$5,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$97,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_variant$1(v,lexbuf) - {var ocaml_lex_state=102; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - var x=read_json$1(v,lexbuf); - read_space$1(v,lexbuf); - read_gt$1(v,lexbuf); - return [0,x]; - case 1:return 0; - case 2:return long_error$1(cst_Expected_or_but_found$29,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$98,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lt$1(v,lexbuf) - {var ocaml_lex_state=107; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$30,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$99,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_gt$1(v,lexbuf) - {var ocaml_lex_state=111; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$31,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$100,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_comma$1(v,lexbuf) - {var ocaml_lex_state=115; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$32,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$101,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_variant$1(v,lexbuf) - {var ocaml_lex_state=119; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return -154522342; - case 1:caml_call1(Stdlib_Buffer[8],v[1]);return -589953938; - case 2:return -124528282; - case 3:return long_error$1(cst_Expected_or_but_found$30,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$102,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_comment$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=125; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Unterminated_comment$3,v,lexbuf); - case 2:newline$1(v,lexbuf);continue a; - default:continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_eof$1(lexbuf) - {var ocaml_lex_state=131; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_space$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=133; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:newline$1(v,lexbuf);continue a; - case 1:finish_comment$1(v,lexbuf);continue a; - case 2:newline$1(v,lexbuf);continue a; - case 3:continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function read_null$1(v,lexbuf) - {var ocaml_lex_state=140; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_null_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$103,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_null_if_possible$1(v,lexbuf) - {var ocaml_lex_state=147; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return 1; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_bool$1(v,lexbuf) - {var ocaml_lex_state=152; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(5 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 1; - case 1:return 0; - case 2:return 1; - case 3:return 0; - case 4: - return long_error$1(cst_Expected_true_or_false_but$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$104,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_int_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(4 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e$_=extract_positive_int$1(lexbuf);return _e$_} - catch(_fe_) - {_fe_ = caml_wrap_exception(_fe_); - if(_fe_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$5,v,lexbuf); - throw _fe_} - case 1: - try - {var _fa_=extract_negative_int$1(lexbuf);return _fa_} - catch(_fd_) - {_fd_ = caml_wrap_exception(_fd_); - if(_fd_ === Int_overflow$1) - return lexer_error$1(cst_Int_overflow$6,v,lexbuf); - throw _fd_} - case 2: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _fb_=caml_int_of_string(s);return _fb_} - catch(_fc_) - {return custom_error$1(cst_Expected_an_integer_but_fo$1,v,lexbuf)} - case 3: - return long_error$1(cst_Expected_integer_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$105,v,lexbuf)}}} - function read_int$1(v,lexbuf) - {return ocaml_lex_read_int_rec$1(v,lexbuf,176)} - function ocaml_lex_read_int32_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e7_=caml_int_of_string(caml_call1(lexeme$1,lexbuf)); - return _e7_} - catch(_e__){return lexer_error$1(cst_Int32_overflow$3,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e8_=caml_int_of_string(s);return _e8_} - catch(_e9_) - {return custom_error$1(cst_Expected_an_int32_but_foun$1,v,lexbuf)} - case 2:return long_error$1(cst_Expected_int32_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$106,v,lexbuf)}}} - function read_int32$1(v,lexbuf) - {return ocaml_lex_read_int32_rec$1(v,lexbuf,185)} - function ocaml_lex_read_int64_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(3 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - try - {var _e3_=caml_int64_of_string(caml_call1(lexeme$1,lexbuf)); - return _e3_} - catch(_e6_){return lexer_error$1(cst_Int32_overflow$4,v,lexbuf)} - case 1: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e4_=caml_int64_of_string(s);return _e4_} - catch(_e5_) - {return custom_error$1(cst_Expected_an_int64_but_foun$1,v,lexbuf)} - case 2:return long_error$1(cst_Expected_int64_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$107,v,lexbuf)}}} - function read_int64$1(v,lexbuf) - {return ocaml_lex_read_int64_rec$1(v,lexbuf,192)} - function ocaml_lex_read_number_rec$1(v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(6 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return Stdlib[24]; - case 1:return Stdlib[22]; - case 2:return Stdlib[23]; - case 3:return caml_float_of_string(caml_call1(lexeme$1,lexbuf)); - case 4: - caml_call1(Stdlib_Buffer[8],v[1]); - var s=finish_string$5(v,lexbuf); - try - {var _e1_=caml_float_of_string(s);return _e1_} - catch(_e2_) - {return caml_string_notequal(s,cst_Infinity$15) - ?caml_string_notequal(s,cst_Infinity$16) - ?caml_string_notequal(s,cst_NaN$7) - ?custom_error$1(cst_Expected_a_number_but_foun$1,v,lexbuf) - :Stdlib[24] - :Stdlib[22] - :Stdlib[23]} - case 5: - return long_error$1(cst_Expected_number_but_found$1,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$108,v,lexbuf)}}} - function read_number$1(v,lexbuf) - {return ocaml_lex_read_number_rec$1(v,lexbuf,199)} - function read_string$1(v,lexbuf) - {var ocaml_lex_state=233; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$5(v,lexbuf); - case 1:return long_error$1(cst_Expected_but_found$33,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$109,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_ident$1(v,lexbuf) - {var ocaml_lex_state=237; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]); - return finish_string$5(v,lexbuf); - case 1: - var s=caml_call3(sub_lexeme$1,lexbuf,lexbuf[5],lexbuf[6]); - return s; - case 2: - return long_error$1(cst_Expected_string_or_identif$7,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$110,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function map_ident$1(v,f,lexbuf) - {var ocaml_lex_state=242; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call1(Stdlib_Buffer[8],v[1]);return map_string$1(v,f,lexbuf); - case 1: - var len=lexbuf[6] - lexbuf[5] | 0; - return caml_call3 - (f, - caml_call3(Stdlib_Bytes[8],lexbuf[2],lexbuf[5],len), - 0, - len); - case 2: - return long_error$1(cst_Expected_string_or_identif$8,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$111,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_sequence_rec$1 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call3(read_cell,acc[1],v,lexbuf)}} - catch(_e0_) - {_e0_ = caml_wrap_exception(_e0_); - if(_e0_ === End_of_array)return acc[1]; - throw _e0_} - case 1:return long_error$1(cst_Expected_but_found$34,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$112,v,lexbuf)}}} - function read_sequence$1(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_sequence_rec$1(read_cell,init_acc,v,lexbuf,247)} - function ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,0]; - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - var _eX_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eX_]; - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var _eY_=acc[1]; - acc[1] = [0,caml_call2(read_cell,v,lexbuf),_eY_]}} - catch(_eZ_) - {_eZ_ = caml_wrap_exception(_eZ_); - if(_eZ_ === End_of_array)return acc[1]; - throw _eZ_} - case 1:return long_error$1(cst_Expected_but_found$35,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$113,v,lexbuf)}}} - function read_list_rev$1(read_cell,v,lexbuf) - {return ocaml_lex_read_list_rev_rec$1(read_cell,v,lexbuf,251)} - function read_array_end$1(lexbuf) - {var ocaml_lex_state=255; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_array; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_array_sep$1(v,lexbuf) - {var ocaml_lex_state=257; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_array; - case 2:return long_error$1(cst_Expected_or_but_found$31,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$114,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function ocaml_lex_read_tuple_rec$0 - (read_cell,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var pos=[0,0],acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++; - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_cell,pos[1],acc[1],v,lexbuf); - pos[1]++}} - catch(_eW_) - {_eW_ = caml_wrap_exception(_eW_); - if(_eW_ === End_of_tuple)return acc[1]; - throw _eW_} - case 1:return long_error$1(cst_Expected_but_found$36,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$115,v,lexbuf)}}} - function read_tuple$1(read_cell,init_acc,v,lexbuf) - {return ocaml_lex_read_tuple_rec$0(read_cell,init_acc,v,lexbuf,262)} - function read_tuple_end$1(lexbuf) - {var ocaml_lex_state=266; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_tuple; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_end2$1(v,std,lexbuf) - {var ocaml_lex_state=268; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - if(std)return long_error$1(cst_Expected_or_but_found$32,v,lexbuf); - throw End_of_tuple; - case 1: - if(std)throw End_of_tuple; - return long_error$1(cst_Expected_or_but_found$33,v,lexbuf); - default:return 0}}} - function read_tuple_sep$1(v,lexbuf) - {var ocaml_lex_state=271; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_tuple; - case 2:return long_error$1(cst_Expected_or_but_found$34,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$116,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_tuple_sep2$1(v,std,lexbuf) - {var ocaml_lex_state=276; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1: - if(std)return long_error$1(cst_Expected_or_but_found$35,v,lexbuf); - throw End_of_tuple; - case 2: - if(std)throw End_of_tuple; - return long_error$1(cst_Expected_or_but_found$36,v,lexbuf); - case 3:return long_error$1(cst_Expected_or_but_found$37,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$117,v,lexbuf)}}} - function ocaml_lex_read_abstract_fields$1 - (read_key,read_field,init_acc,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(2 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0: - var acc=[0,init_acc]; - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - var field_name=caml_call2(read_key,v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name,v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - var field_name$0=caml_call2(read_key,v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - acc[1] = caml_call4(read_field,acc[1],field_name$0,v,lexbuf)}} - catch(_eV_) - {_eV_ = caml_wrap_exception(_eV_); - if(_eV_ === End_of_object)return acc[1]; - throw _eV_} - case 1:return long_error$1(cst_Expected_but_found$37,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$118,v,lexbuf)}}} - function read_abstract_fields$1(read_key,read_field,init_acc,v,lexbuf) - {return ocaml_lex_read_abstract_fields$1 - (read_key,read_field,init_acc,v,lexbuf,282)} - function read_lcurl$1(v,lexbuf) - {var ocaml_lex_state=286; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$38,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$119,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_end$1(lexbuf) - {var ocaml_lex_state=290; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)throw End_of_object; - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_object_sep$1(v,lexbuf) - {var ocaml_lex_state=292; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:throw End_of_object; - case 2:return long_error$1(cst_Expected_or_but_found$38,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$120,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_colon$1(v,lexbuf) - {var ocaml_lex_state=297; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$39,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$121,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function start_any_tuple$1(v,lexbuf) - {var ocaml_lex_state=301; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return 1; - case 2:return long_error$1(cst_Expected_or_but_found$39,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$122,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lpar$1(v,lexbuf) - {var ocaml_lex_state=306; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$40,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$123,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rpar$1(v,lexbuf) - {var ocaml_lex_state=310; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$41,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$124,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_lbr$1(v,lexbuf) - {var ocaml_lex_state=314; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$42,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$125,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function read_rbr$1(v,lexbuf) - {var ocaml_lex_state=318; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Expected_but_found$43,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$126,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_skip_variant$1(v,lexbuf) - {var ocaml_lex_state=389; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - skip_json$1(v,lexbuf); - read_space$1(v,lexbuf); - return read_gt$1(v,lexbuf); - case 1:return 0; - case 2:return long_error$1(cst_Expected_or_but_found$40,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$129,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_skip_stringlit$1(v,lexbuf) - {var ocaml_lex_state=378; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return 0; - case 1:return long_error$1(cst_Invalid_string_literal$6,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$128,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function skip_json$4(counter,v,lexbuf) - {var _eU_=322; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_skip_json_rec$1,[0,v,lexbuf,_eU_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_skip_json_rec$1(counter$0,v,lexbuf,_eU_)} - function ocaml_lex_skip_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(18 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return 0; - case 1:return 0; - case 2:return 0; - case 3:return 0; - case 4:return 0; - case 5:return 0; - case 6:return finish_skip_stringlit$1(v,lexbuf); - case 7:return 0; - case 8:return 0; - case 9: - try - {read_space$1(v,lexbuf); - read_object_end$1(lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_object_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - read_colon$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf)}} - catch(_eT_) - {_eT_ = caml_wrap_exception(_eT_); - if(_eT_ === End_of_object)return 0; - throw _eT_} - case 10: - try - {read_space$1(v,lexbuf); - read_array_end$1(lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_array_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf)}} - catch(_eS_) - {_eS_ = caml_wrap_exception(_eS_); - if(_eS_ === End_of_array)return 0; - throw _eS_} - case 11: - try - {read_space$1(v,lexbuf); - read_tuple_end$1(lexbuf); - skip_json$1(v,lexbuf); - for(;;) - {read_space$1(v,lexbuf); - read_tuple_sep$1(v,lexbuf); - read_space$1(v,lexbuf); - skip_json$1(v,lexbuf)}} - catch(_eR_) - {_eR_ = caml_wrap_exception(_eR_); - if(_eR_ === End_of_tuple)return 0; - throw _eR_} - case 12: - read_space$1(v,lexbuf); - skip_ident$1(v,lexbuf); - read_space$1(v,lexbuf); - return finish_skip_variant$1(v,lexbuf); - case 13: - if(counter >= 50) - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return skip_json$4(counter$0,v,lexbuf); - case 14: - finish_comment$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return skip_json$4(counter$1,v,lexbuf); - case 15: - newline$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return skip_json$4(counter$2,v,lexbuf); - case 16: - if(counter >= 50) - return caml_trampoline_return(skip_json$4,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return skip_json$4(counter$3,v,lexbuf); - case 17: - return custom_error$1(cst_Unexpected_end_of_input$127,v,lexbuf); - default:return long_error$1(cst_Invalid_token$13,v,lexbuf)}}} - function skip_json$1(v,lexbuf) - {return caml_trampoline(skip_json$4(0,v,lexbuf))} - function skip_ident$1(v,lexbuf) - {var ocaml_lex_state=394; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_skip_stringlit$1(v,lexbuf); - case 1:return 0; - case 2: - return long_error$1(cst_Expected_string_or_identif$9,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$130,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_variant$0(v,lexbuf) - {var ocaml_lex_state=461; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 < ocaml_lex_state$0 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0; - continue} - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],58); - buffer_json$1(v,lexbuf); - buffer_space$1(v,lexbuf); - var ocaml_lex_state$1=503; - for(;;) - {var - ocaml_lex_state$2= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$1,lexbuf); - if(2 >= ocaml_lex_state$2 >>> 0) - switch(ocaml_lex_state$2) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 1: - return long_error$1(cst_Expected_but_found$45,v,lexbuf); - default: - return custom_error$1 - (cst_Unexpected_end_of_input$139,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$1=ocaml_lex_state$2} - case 1:return caml_call2(Stdlib_Buffer[12],v[1],62); - case 2:return long_error$1(cst_Expected_or_but_found$41,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$133,v,lexbuf)}}} - function finish_buffer_stringlit$1(v,lexbuf) - {var ocaml_lex_state=450; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0: - caml_call2(Stdlib_Buffer[12],v[1],34); - return add_lexeme$1(v[1],lexbuf); - case 1:return long_error$1(cst_Invalid_string_literal$7,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$132,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_json$4(counter,v,lexbuf) - {var _eQ_=399; - if(counter >= 50) - return caml_trampoline_return - (ocaml_lex_buffer_json_rec$1,[0,v,lexbuf,_eQ_]); - var counter$0=counter + 1 | 0; - return ocaml_lex_buffer_json_rec$1(counter$0,v,lexbuf,_eQ_)} - function ocaml_lex_buffer_json_rec$1(counter,v,lexbuf,ocaml_lex_state) - {var ocaml_lex_state$0=ocaml_lex_state; - for(;;) - {var - ocaml_lex_state$1= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state$0,lexbuf); - if(11 < ocaml_lex_state$1 >>> 0) - {caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state$0=ocaml_lex_state$1; - continue} - switch(ocaml_lex_state$1) - {case 0:return add_lexeme$1(v[1],lexbuf); - case 1:return finish_buffer_stringlit$1(v,lexbuf); - case 2: - try - {caml_call2(Stdlib_Buffer[12],v[1],123); - buffer_space$1(v,lexbuf); - buffer_object_end$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_colon$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_object_sep$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_colon$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf)}} - catch(_eP_) - {_eP_ = caml_wrap_exception(_eP_); - if(_eP_ === End_of_object)return 0; - throw _eP_} - case 3: - try - {caml_call2(Stdlib_Buffer[12],v[1],91); - buffer_space$1(v,lexbuf); - buffer_array_end$1(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_array_sep$1(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf)}} - catch(_eO_) - {_eO_ = caml_wrap_exception(_eO_); - if(_eO_ === End_of_array)return 0; - throw _eO_} - case 4: - try - {caml_call2(Stdlib_Buffer[12],v[1],40); - buffer_space$1(v,lexbuf); - buffer_tuple_end$0(v,lexbuf); - buffer_json$1(v,lexbuf); - for(;;) - {buffer_space$1(v,lexbuf); - buffer_tuple_sep$0(v,lexbuf); - buffer_space$1(v,lexbuf); - buffer_json$1(v,lexbuf)}} - catch(_eN_) - {_eN_ = caml_wrap_exception(_eN_); - if(_eN_ === End_of_tuple)return 0; - throw _eN_} - case 5: - caml_call2(Stdlib_Buffer[12],v[1],60); - buffer_space$1(v,lexbuf); - buffer_ident$1(v,lexbuf); - buffer_space$1(v,lexbuf); - return finish_buffer_variant$0(v,lexbuf); - case 6: - add_lexeme$1(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - var counter$0=counter + 1 | 0; - return buffer_json$4(counter$0,v,lexbuf); - case 7: - caml_call2(Stdlib_Buffer[16],v[1],cst$78); - finish_buffer_comment$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - var counter$1=counter + 1 | 0; - return buffer_json$4(counter$1,v,lexbuf); - case 8: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - var counter$2=counter + 1 | 0; - return buffer_json$4(counter$2,v,lexbuf); - case 9: - add_lexeme$1(v[1],lexbuf); - if(counter >= 50) - return caml_trampoline_return(buffer_json$4,[0,v,lexbuf]); - var counter$3=counter + 1 | 0; - return buffer_json$4(counter$3,v,lexbuf); - case 10: - return custom_error$1(cst_Unexpected_end_of_input$131,v,lexbuf); - default:return long_error$1(cst_Invalid_token$14,v,lexbuf)}}} - function buffer_json$1(v,lexbuf) - {return caml_trampoline(buffer_json$4(0,v,lexbuf))} - function buffer_ident$1(v,lexbuf) - {var ocaml_lex_state=466; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return finish_buffer_stringlit$1(v,lexbuf); - case 1:return add_lexeme$1(v[1],lexbuf); - case 2: - return long_error$1(cst_Expected_string_or_identif$10,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$134,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_space$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=471; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(4 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:add_lexeme$1(v[1],lexbuf);newline$1(v,lexbuf);continue a; - case 1: - caml_call2(Stdlib_Buffer[16],v[1],cst$79); - finish_buffer_comment$1(v,lexbuf); - continue a; - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - continue a; - case 3:add_lexeme$1(v[1],lexbuf);continue a; - default:return 0} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function buffer_object_end$1(v,lexbuf) - {var ocaml_lex_state=478; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_object_sep$1(v,lexbuf) - {var ocaml_lex_state=480; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],125);throw End_of_object; - case 2:return long_error$1(cst_Expected_or_but_found$42,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$135,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_end$1(v,lexbuf) - {var ocaml_lex_state=485; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_array_sep$1(v,lexbuf) - {var ocaml_lex_state=487; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],93);throw End_of_array; - case 2:return long_error$1(cst_Expected_or_but_found$43,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$136,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_tuple_end$0(v,lexbuf) - {var ocaml_lex_state=492; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0) - {caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple} - if(1 === ocaml_lex_state$0)return 0; - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_tuple_sep$0(v,lexbuf) - {var ocaml_lex_state=494; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],44); - case 1:caml_call2(Stdlib_Buffer[12],v[1],41);throw End_of_tuple; - case 2:return long_error$1(cst_Expected_or_but_found$44,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$137,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function buffer_colon$1(v,lexbuf) - {var ocaml_lex_state=499; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(2 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[12],v[1],58); - case 1:return long_error$1(cst_Expected_but_found$44,v,lexbuf); - default: - return custom_error$1(cst_Unexpected_end_of_input$138,v,lexbuf)} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - function finish_buffer_comment$1(v,lexbuf) - {a: - for(;;) - {var ocaml_lex_state=507; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(3 >= ocaml_lex_state$0 >>> 0) - switch(ocaml_lex_state$0) - {case 0:return caml_call2(Stdlib_Buffer[16],v[1],cst$80); - case 1:return long_error$1(cst_Unterminated_comment$4,v,lexbuf); - case 2: - caml_call2(Stdlib_Buffer[12],v[1],10); - newline$1(v,lexbuf); - continue a; - default:add_lexeme$1(v[1],lexbuf);continue a} - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}}} - function junk$1(lexbuf) - {var ocaml_lex_state=513; - for(;;) - {var - ocaml_lex_state$0= - caml_lex_engine(ocaml_lex_tables$1,ocaml_lex_state,lexbuf); - if(0 === ocaml_lex_state$0)return caml_call1(lexeme$1,lexbuf); - caml_call1(lexbuf[1],lexbuf); - var ocaml_lex_state=ocaml_lex_state$0}} - read_junk$1[1] = junk$1; - function read_int8$1(v,lexbuf) - {var n=read_int$1(v,lexbuf); - if(0 <= n && 255 >= n)return caml_call1(Stdlib[29],n); - return lexer_error$1(cst_Int8_overflow$1,v,lexbuf)} - function read_list$1(read_cell,v,lexbuf) - {var _eM_=read_list_rev$1(read_cell,v,lexbuf); - return caml_call1(Stdlib_List[9],_eM_)} - function read_array$1(read_cell,v,lexbuf) - {var l=read_list_rev$1(read_cell,v,lexbuf); - if(! l)return [0]; + (cst_Unexpected_end_of_input$139, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state$15 = ocaml_lex_state$16; + } + case 1: + return caml_call2(Stdlib_Buffer[12], v[1], 62); + case 2: + return long_error$1(cst_Expected_or_but_found$41, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$133, v, lexbuf); + } + } + case 6: + add_lexeme$1(v[1], lexbuf); continue a; + case 7: + caml_call2(Stdlib_Buffer[16], v[1], cst$78); + finish_buffer_comment$1(v, lexbuf); + continue a; + case 8: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + case 9: + add_lexeme$1(v[1], lexbuf); continue a; + case 10: + return custom_error$1(cst_Unexpected_end_of_input$131, v, lexbuf); + default: return long_error$1(cst_Invalid_token$14, v, lexbuf); + } + } + } + } + function buffer_ident$1(v, lexbuf){ + var ocaml_lex_state = 466; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return finish_buffer_stringlit$1(v, lexbuf); + case 1: + return add_lexeme$1(v[1], lexbuf); + case 2: + return long_error$1(cst_Expected_string_or_identif$10, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$134, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function buffer_space$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 471; + for(;;){ var - tl=l[2], - x=l[1], - len=caml_call1(Stdlib_List[1],l), - a=caml_make_vect(len,x), - r=[0,tl], - _eJ_=len - 2 | 0; - if(_eJ_ >= 0) - {var i=_eJ_; - for(;;) - {var _eK_=caml_call1(Stdlib_List[5],r[1]); - caml_check_bound(a,i)[1 + i] = _eK_; - r[1] = caml_call1(Stdlib_List[6],r[1]); - var _eL_=i - 1 | 0; - if(0 !== i){var i=_eL_;continue} - break}} - return a} - function read_fields$1(read_field,init_acc,v) - {return function(_eI_) - {return read_abstract_fields$1(read_ident$1,read_field,init_acc,v,_eI_)}} - function from_lexbuf$1(v,opt,lexbuf) - {if(opt)var sth=opt[1],stream=sth;else var stream=0; - read_space$1(v,lexbuf); - if(read_eof$1(lexbuf))throw End_of_input; - var x=read_json$1(v,lexbuf); - if(1 - stream) - {read_space$1(v,lexbuf); - if(1 - read_eof$1(lexbuf)) - long_error$1(cst_Junk_after_end_of_JSON_val$1,v,lexbuf)} - return x} - function from_string$4(buf,fname,lnum,s) - {try - {var - lexbuf=caml_call2(from_string$3,0,s), - v=init_lexer(buf,fname,lnum,0), - _eG_=from_lexbuf$1(v,0,lexbuf); - return _eG_} - catch(_eH_) - {_eH_ = caml_wrap_exception(_eH_); - if(_eH_ === End_of_input)return json_error(cst_Blank_input_data$3); - throw _eH_}} - function from_channel$4(buf,fname,lnum,ic) - {try - {var - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname,lnum,0), - _eE_=from_lexbuf$1(v,0,lexbuf); - return _eE_} - catch(_eF_) - {_eF_ = caml_wrap_exception(_eF_); - if(_eF_ === End_of_input)return json_error(cst_Blank_input_data$4); - throw _eF_}} - function from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - try - {var x=from_channel$4(buf,fname,lnum,ic); - caml_call1(Stdlib[93],ic); - return x} - catch(e){e = caml_wrap_exception(e);caml_call1(Stdlib[94],ic);throw e}} - var Finally$1=[248,cst_Yojson_Raw_Finally,caml_fresh_oo_id(0)]; - function seq_from_lexbuf$1(v,opt,lexbuf) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - function f(param) - {try - {var _eD_=[0,from_lexbuf$1(v,stream$1,lexbuf),f];return _eD_} - catch(e) - {e = caml_wrap_exception(e); - if(e === End_of_input){caml_call1(fin,0);return 0} - try - {caml_call1(fin,0)} - catch(fin_e) - {fin_e = caml_wrap_exception(fin_e);throw [0,Finally$1,e,fin_e]} - throw e}} - return f} - function seq_from_string$1(buf,fname,lnum,s) - {var v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$1(v,0,caml_call2(from_string$3,0,s))} - function seq_from_channel$1(buf,fin,fname,lnum,ic) - {var - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname,lnum,0); - return seq_from_lexbuf$1(v,fin,lexbuf)} - function seq_from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(4 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + add_lexeme$1(v[1], lexbuf); newline$1(v, lexbuf); continue a; + case 1: + caml_call2(Stdlib_Buffer[16], v[1], cst$79); + finish_buffer_comment$1(v, lexbuf); + continue a; + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + case 3: + add_lexeme$1(v[1], lexbuf); continue a; + default: return 0; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function buffer_colon$1(v, lexbuf){ + var ocaml_lex_state = 499; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(2 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[12], v[1], 58); + case 1: + return long_error$1(cst_Expected_but_found$44, v, lexbuf); + default: + return custom_error$1(cst_Unexpected_end_of_input$138, v, lexbuf); + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + function finish_buffer_comment$1(v, lexbuf){ + a: + for(;;){ + var ocaml_lex_state = 507; + for(;;){ var - fname$0=fname || [0,file], - lexbuf=caml_call2(from_channel$3,0,ic), - v=init_lexer(buf,fname$0,lnum,0); - return seq_from_lexbuf$1(v,[0,fin],lexbuf)} - function lineseq_from_channel$1(buf,opt,fname,_ev_,ic) - {if(opt)var sth=opt[1],fin=sth;else var fin=function(param){return 0}; - if(_ev_)var sth$0=_ev_[1],lnum0=sth$0;else var lnum0=1; - var buf$0=buf || [0,caml_call1(Stdlib_Buffer[1],256)]; - function f(lnum,param) - {try - {var - line=caml_call1(Stdlib[83],ic), - _ey_=lnum + 1 | 0, - _ez_=function(_eC_){return f(_ey_,_eC_)}, - _eA_= - [0,[0,826371656,from_string$4(buf$0,fname,[0,lnum],line)],_ez_]; - return _eA_} - catch(e) - {e = caml_wrap_exception(e); - if(e === Stdlib[12]){caml_call1(fin,0);return 0} - var _ex_=lnum + 1 | 0; - return [0,[0,3458171,e],function(_eB_){return f(_ex_,_eB_)}]}} - return function(_ew_){return f(lnum0,_ew_)}} - function lineseq_from_file$1(buf,fname,lnum,file) - {var ic=caml_call1(Stdlib[79],file); - function fin(param){return caml_call1(Stdlib[93],ic)} - var fname$0=fname || [0,file]; - return lineseq_from_channel$1(buf,[0,fin],fname$0,lnum,ic)} - function prettify$1(std,s) - {return pretty_to_string$2(std,from_string$4(0,0,0,s))} - function compact$1(std,s) - {return to_string$4(0,0,0,0,from_string$4(0,0,0,s))} + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(3 >= ocaml_lex_state$0 >>> 0) + switch(ocaml_lex_state$0){ + case 0: + return caml_call2(Stdlib_Buffer[16], v[1], cst$80); + case 1: + return long_error$1(cst_Unterminated_comment$4, v, lexbuf); + case 2: + caml_call2(Stdlib_Buffer[12], v[1], 10); + newline$1(v, lexbuf); + continue a; + default: add_lexeme$1(v[1], lexbuf); continue a; + } + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + } + function junk$1(lexbuf){ + var ocaml_lex_state = 513; + for(;;){ + var + ocaml_lex_state$0 = + caml_lex_engine(ocaml_lex_tables$1, ocaml_lex_state, lexbuf); + if(0 === ocaml_lex_state$0) return caml_call1(lexeme$1, lexbuf); + caml_call1(lexbuf[1], lexbuf); + var ocaml_lex_state = ocaml_lex_state$0; + } + } + read_junk$1[1] = junk$1; + function read_int8$1(v, lexbuf){ + var n = read_int$1(v, lexbuf); + if(0 <= n && 255 >= n) return caml_call1(Stdlib[29], n); + return lexer_error$1(cst_Int8_overflow$1, v, lexbuf); + } + function read_list$1(read_cell, v, lexbuf){ + var _eO_ = read_list_rev$1(read_cell, v, lexbuf); + return caml_call1(Stdlib_List[9], _eO_); + } + function read_array$1(read_cell, v, lexbuf){ + var l = read_list_rev$1(read_cell, v, lexbuf); + if(! l) return [0]; var - Yojson= + tl = l[2], + x = l[1], + len = caml_call1(Stdlib_List[1], l), + a = caml_make_vect(len, x), + r = [0, tl], + _eL_ = len - 2 | 0; + if(_eL_ >= 0){ + var i = _eL_; + for(;;){ + var _eM_ = caml_call1(Stdlib_List[5], r[1]); + caml_check_bound(a, i)[1 + i] = _eM_; + r[1] = caml_call1(Stdlib_List[6], r[1]); + var _eN_ = i - 1 | 0; + if(0 !== i){var i = _eN_; continue;} + break; + } + } + return a; + } + function read_fields$1(read_field, init_acc, v){ + return function(_eK_){ + return read_abstract_fields$1 + (read_ident$1, read_field, init_acc, v, _eK_);}; + } + function from_lexbuf$1(v, opt, lexbuf){ + if(opt) var sth = opt[1], stream = sth; else var stream = 0; + read_space$1(v, lexbuf); + if(read_eof$1(lexbuf)) throw caml_maybe_attach_backtrace(End_of_input, 1); + var x = read_json$1(v, lexbuf); + if(1 - stream){ + read_space$1(v, lexbuf); + if(1 - read_eof$1(lexbuf)) + long_error$1(cst_Junk_after_end_of_JSON_val$1, v, lexbuf); + } + return x; + } + function from_string$4(buf, fname, lnum, s){ + try{ + var + lexbuf = caml_call2(from_string$3, 0, s), + v = init_lexer(buf, fname, lnum, 0), + _eI_ = from_lexbuf$1(v, 0, lexbuf); + return _eI_; + } + catch(_eJ_){ + var _eH_ = caml_wrap_exception(_eJ_); + if(_eH_ === End_of_input) return json_error(cst_Blank_input_data$3); + throw caml_maybe_attach_backtrace(_eH_, 0); + } + } + function from_channel$4(buf, fname, lnum, ic){ + try{ + var + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname, lnum, 0), + _eF_ = from_lexbuf$1(v, 0, lexbuf); + return _eF_; + } + catch(_eG_){ + var _eE_ = caml_wrap_exception(_eG_); + if(_eE_ === End_of_input) return json_error(cst_Blank_input_data$4); + throw caml_maybe_attach_backtrace(_eE_, 0); + } + } + function from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + try{ + var x = from_channel$4(buf, fname, lnum, ic); + caml_call1(Stdlib[93], ic); + return x; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + caml_call1(Stdlib[94], ic); + throw caml_maybe_attach_backtrace(e, 0); + } + } + var Finally$1 = [248, cst_Yojson_Raw_Finally, caml_fresh_oo_id(0)]; + function seq_from_lexbuf$1(v, opt, lexbuf){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + function f(param){ + try{var _eD_ = [0, from_lexbuf$1(v, stream$1, lexbuf), f]; return _eD_;} + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === End_of_input){caml_call1(fin, 0); return 0;} + try{caml_call1(fin, 0);} + catch(fin_e$0){ + var fin_e = caml_wrap_exception(fin_e$0); + throw caml_maybe_attach_backtrace([0, Finally$1, e, fin_e], 1); + } + throw caml_maybe_attach_backtrace(e, 0); + } + } + return f; + } + function seq_from_string$1(buf, fname, lnum, s){ + var v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$1(v, 0, caml_call2(from_string$3, 0, s)); + } + function seq_from_channel$1(buf, fin, fname, lnum, ic){ + var + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname, lnum, 0); + return seq_from_lexbuf$1(v, fin, lexbuf); + } + function seq_from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var + fname$0 = fname || [0, file], + lexbuf = caml_call2(from_channel$3, 0, ic), + v = init_lexer(buf, fname$0, lnum, 0); + return seq_from_lexbuf$1(v, [0, fin], lexbuf); + } + function lineseq_from_channel$1(buf, opt, fname, _ev_, ic){ + if(opt) + var sth = opt[1], fin = sth; + else + var fin = function(param){return 0;}; + if(_ev_) var sth$0 = _ev_[1], lnum0 = sth$0; else var lnum0 = 1; + var buf$0 = buf || [0, caml_call1(Stdlib_Buffer[1], 256)]; + function f(lnum, param){ + try{ + var + line = caml_call1(Stdlib[83], ic), + _ey_ = lnum + 1 | 0, + _ez_ = function(_eC_){return f(_ey_, _eC_);}, + _eA_ = + [0, + [0, 826371656, from_string$4(buf$0, fname, [0, lnum], line)], + _ez_]; + return _eA_; + } + catch(e$0){ + var e = caml_wrap_exception(e$0); + if(e === Stdlib[12]){caml_call1(fin, 0); return 0;} + var _ex_ = lnum + 1 | 0; + return [0, [0, 3458171, e], function(_eB_){return f(_ex_, _eB_);}]; + } + } + return function(_ew_){return f(lnum0, _ew_);}; + } + function lineseq_from_file$1(buf, fname, lnum, file){ + var ic = caml_call1(Stdlib[79], file); + function fin(param){return caml_call1(Stdlib[93], ic);} + var fname$0 = fname || [0, file]; + return lineseq_from_channel$1(buf, [0, fin], fname$0, lnum, ic); + } + function prettify$1(std, s){ + return pretty_to_string$2(std, from_string$4(0, 0, 0, s)); + } + function compact$1(std, s){ + return to_string$4(0, 0, 0, 0, from_string$4(0, 0, 0, s)); + } + var + Yojson = [0, version, Json_error, @@ -41627,7 +42087,7 @@ seq_to_channel$0, seq_to_file$0, seq_to_buffer$0, - write_t$0, + write_json$0, sort$0, write_null$0, write_bool$0, @@ -41639,7 +42099,7 @@ write_string$0, write_assoc$0, write_list$0, - write_t$0, + write_json$0, write_std_json$0, pp$2, show$0, @@ -41662,7 +42122,7 @@ lineseq_from_channel, lineseq_from_file, read_json, - finish_string$1, + finish_string, read_string, read_ident, map_string, @@ -41761,7 +42221,7 @@ seq_to_channel$1, seq_to_file$1, seq_to_buffer$1, - write_t$1, + write_json$1, sort$1, write_null$1, write_bool$1, @@ -41778,7 +42238,7 @@ write_std_tuple$0, write_variant$0, write_std_variant$0, - write_t$1, + write_json$1, write_std_json$1, pretty_print$1, pretty_to_string$1, @@ -41798,7 +42258,7 @@ lineseq_from_channel$0, lineseq_from_file$0, read_json$0, - finish_string$3, + finish_string$0, read_string$0, read_ident$0, map_string$0, @@ -41896,7 +42356,7 @@ seq_to_channel$2, seq_to_file$2, seq_to_buffer$2, - write_t$2, + write_json$2, sort$2, write_null$2, write_bool$2, @@ -41909,7 +42369,7 @@ write_std_tuple$1, write_variant$1, write_std_variant$1, - write_t$2, + write_json$2, write_std_json$2, pretty_print$2, pretty_to_string$2, @@ -41929,7 +42389,7 @@ lineseq_from_channel$1, lineseq_from_file$1, read_json$1, - finish_string$5, + finish_string$1, read_string$1, read_ident$1, map_string$1, @@ -41992,7 +42452,7 @@ seq_to_channel, seq_to_file, seq_to_buffer, - write_t, + write_json, sort, write_null, write_bool, @@ -42011,407 +42471,367 @@ write_std_tuple, write_variant, write_std_variant, - write_t, + write_json, write_std_json, pretty_print, pretty_to_string, pretty_to_channel]; - runtime.caml_register_global(1068,Yojson,"Yojson"); - return} + runtime.caml_register_global(1068, Yojson, "Yojson"); + return; + } (globalThis)); -//# 1 "../../.js/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" +//# 1 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 32 "../../.js/default/ppx_yojson_conv_lib/ppx_yojson_conv_lib.cma.js" (function - (globalThis) - {"use strict"; + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_check_bound = runtime.caml_check_bound, + caml_int_of_string = runtime.caml_int_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib_MoreLabels = global_data.Stdlib__MoreLabels, + Stdlib_ListLabels = global_data.Stdlib__ListLabels, + Stdlib_Lazy = global_data.Stdlib__Lazy, + Stdlib_BytesLabels = global_data.Stdlib__BytesLabels, + Stdlib = global_data.Stdlib, + CamlinternalLazy = global_data.CamlinternalLazy, + Stdlib_Nativeint = global_data.Stdlib__Nativeint, + Stdlib_Int64 = global_data.Stdlib__Int64, + Stdlib_Int32 = global_data.Stdlib__Int32, + Stdlib_StringLabels = global_data.Stdlib__StringLabels, + cst_fun_of_yojson_cannot_conve = + "fun_of_yojson: cannot convert function values", + cst_opaque_of_yojson_cannot_co = + "opaque_of_yojson: cannot convert opaque values", + cst_hashtbl_of_yojson_tuple_li = "hashtbl_of_yojson: tuple list needed", + cst_hashtbl_of_yojson_list_nee = "hashtbl_of_yojson: list needed", + cst_array_of_yojson_list_neede = "array_of_yojson: list needed", + cst_list_of_yojson_list_needed = "list_of_yojson: list needed", + cst_triple_of_yojson_invalid_f = "triple_of_yojson: invalid format", + cst_pair_of_yojson_invalid_for = "pair_of_yojson: invalid format", + cst_nativeint_of_yojson_intege = "nativeint_of_yojson: integer needed", + cst_int64_of_yojson_integer_ne = "int64_of_yojson: integer needed", + cst_int32_of_yojson_integer_ne = "int32_of_yojson: integer needed", + cst_float_of_yojson_float_need = "float_of_yojson: float needed", + cst_int_of_yojson_integer_need = "int_of_yojson: integer needed", + cst_char_of_yojson_string_must = + "char_of_yojson: string must contain one character only", + cst_char_of_yojson_string_of_s = + "char_of_yojson: string of size one needed", + cst_bytes_of_yojson_string_nee = "bytes_of_yojson: string needed", + cst_string_of_yojson_string_ne = "string_of_yojson: string needed", + cst_bool_of_yojson_true_false_ = "bool_of_yojson: true/false needed", + cst_unit_of_yojson_Null_needed = "unit_of_yojson: `Null needed", + _b_ = [0, -976970511, ""], + _a_ = [0, -976970511, ""], + cst_Ppx_yojson_conv_lib_Yojson = + "Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"; + function yojson_of_unit(param){return 870828711;} + function yojson_of_bool(b){return [0, 737456202, b];} + function yojson_of_string(str){return [0, -976970511, str];} + function yojson_of_bytes(bytes){ + return [0, -976970511, caml_call1(Stdlib_BytesLabels[6], bytes)]; + } + function yojson_of_char(c){ + return [0, -976970511, caml_call2(Stdlib_StringLabels[1], 1, c)]; + } + function yojson_of_int(n){return [0, 3654863, n];} + function yojson_of_float(n){return [0, 365180284, n];} + function yojson_of_int32(n){ + return [0, -752863768, caml_call1(Stdlib_Int32[14], n)]; + } + function yojson_of_int64(n){ + return [0, -752863768, caml_call1(Stdlib_Int64[14], n)]; + } + function yojson_of_nativeint(n){ + return [0, -752863768, caml_call1(Stdlib_Nativeint[15], n)]; + } + function yojson_of_ref(yojson_of_a, rf){return caml_call1(yojson_of_a, rf[1]); + } + function yojson_of_lazy_t(yojson_of_a, lv){ var - runtime=globalThis.jsoo_runtime, - caml_check_bound=runtime.caml_check_bound, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_int_of_string=runtime.caml_int_of_string, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} + _z_ = runtime.caml_obj_tag(lv), + _A_ = + 250 === _z_ + ? lv[1] + : 246 === _z_ ? caml_call1(CamlinternalLazy[2], lv) : lv; + return caml_call1(yojson_of_a, _A_); + } + function yojson_of_option(yojson_of_a, param){ + if(! param) return 870828711; + var x = param[1]; + return caml_call1(yojson_of_a, x); + } + function yojson_of_pair(yojson_of_a, yojson_of_b, param){ + var b = param[2], a = param[1], _y_ = [0, caml_call1(yojson_of_b, b), 0]; + return [0, 848054398, [0, caml_call1(yojson_of_a, a), _y_]]; + } + function yojson_of_triple(yojson_of_a, yojson_of_b, yojson_of_c, param){ var - global_data=runtime.caml_get_global_data(), - cst_fun_of_yojson_cannot_conve= - caml_string_of_jsbytes("fun_of_yojson: cannot convert function values"), - cst_opaque_of_yojson_cannot_co= - caml_string_of_jsbytes("opaque_of_yojson: cannot convert opaque values"), - cst_hashtbl_of_yojson_tuple_li= - caml_string_of_jsbytes("hashtbl_of_yojson: tuple list needed"), - cst_hashtbl_of_yojson_list_nee= - caml_string_of_jsbytes("hashtbl_of_yojson: list needed"), - cst_array_of_yojson_list_neede= - caml_string_of_jsbytes("array_of_yojson: list needed"), - cst_list_of_yojson_list_needed= - caml_string_of_jsbytes("list_of_yojson: list needed"), - cst_triple_of_yojson_invalid_f= - caml_string_of_jsbytes("triple_of_yojson: invalid format"), - cst_pair_of_yojson_invalid_for= - caml_string_of_jsbytes("pair_of_yojson: invalid format"), - cst_nativeint_of_yojson_intege= - caml_string_of_jsbytes("nativeint_of_yojson: integer needed"), - cst_int64_of_yojson_integer_ne= - caml_string_of_jsbytes("int64_of_yojson: integer needed"), - cst_int32_of_yojson_integer_ne= - caml_string_of_jsbytes("int32_of_yojson: integer needed"), - cst_float_of_yojson_float_need= - caml_string_of_jsbytes("float_of_yojson: float needed"), - cst_int_of_yojson_integer_need= - caml_string_of_jsbytes("int_of_yojson: integer needed"), - cst_char_of_yojson_string_must= - caml_string_of_jsbytes - ("char_of_yojson: string must contain one character only"), - cst_char_of_yojson_string_of_s= - caml_string_of_jsbytes("char_of_yojson: string of size one needed"), - cst_bytes_of_yojson_string_nee= - caml_string_of_jsbytes("bytes_of_yojson: string needed"), - cst_string_of_yojson_string_ne= - caml_string_of_jsbytes("string_of_yojson: string needed"), - cst_bool_of_yojson_true_false_= - caml_string_of_jsbytes("bool_of_yojson: true/false needed"), - cst_unit_of_yojson_Null_needed= - caml_string_of_jsbytes("unit_of_yojson: `Null needed"), - cst_Ppx_yojson_conv_lib_Yojson= - caml_string_of_jsbytes - ("Ppx_yojson_conv_lib__Yojson_conv.Of_yojson_error"), - cst$0=caml_string_of_jsbytes(" "), - cst_of_yojson_trying_to_conver= - caml_string_of_jsbytes("_of_yojson: trying to convert an empty type"), - cst_of_yojson_the_empty_list_i= - caml_string_of_jsbytes - ("_of_yojson: the empty list is an invalid polymorphic variant"), - cst_of_yojson_a_nested_list_is= - caml_string_of_jsbytes - ("_of_yojson: a nested list is an invalid polymorphic variant"), - cst_of_yojson_polymorphic_vari$0= - caml_string_of_jsbytes - ("_of_yojson: polymorphic variant tag takes an argument"), - cst_of_yojson_polymorphic_vari= - caml_string_of_jsbytes - ("_of_yojson: polymorphic variant does not take arguments"), - cst_of_yojson_no_matching_vari= - caml_string_of_jsbytes("_of_yojson: no matching variant found"), - cst_of_yojson_cannot_convert_v= - caml_string_of_jsbytes - ("_of_yojson: cannot convert values of types resulting from polymorphic record fields"), - cst_of_yojson_list_instead_of_= - caml_string_of_jsbytes - ("_of_yojson: list instead of atom for record expected"), - cst_extra_fields=caml_string_of_jsbytes("extra fields"), - cst_duplicate_fields=caml_string_of_jsbytes("duplicate fields"), - cst=caml_string_of_jsbytes(" "), - cst_of_yojson_unexpected_varia= - caml_string_of_jsbytes("_of_yojson: unexpected variant constructor"), - cst_of_yojson_expected_a_varia$0= - caml_string_of_jsbytes - ("_of_yojson: expected a variant type, saw an empty list"), - cst_of_yojson_expected_a_varia= - caml_string_of_jsbytes - ("_of_yojson: expected a variant type, saw a nested list"), - cst_of_yojson_this_constructor$0= - caml_string_of_jsbytes - ("_of_yojson: this constructor requires arguments"), - cst_of_yojson_this_constructor= - caml_string_of_jsbytes - ("_of_yojson: this constructor does not take arguments"), - cst_Ppx_yojson_conv_lib_Yojson$0= - caml_string_of_jsbytes - ("Ppx_yojson_conv_lib__Yojson_conv_error.No_variant_match"), - Stdlib_MoreLabels=global_data.Stdlib__MoreLabels, - Stdlib_ListLabels=global_data.Stdlib__ListLabels, - Stdlib_Lazy=global_data.Stdlib__Lazy, - Stdlib_BytesLabels=global_data.Stdlib__BytesLabels, - Stdlib=global_data.Stdlib, - CamlinternalLazy=global_data.CamlinternalLazy, - Stdlib_Nativeint=global_data.Stdlib__Nativeint, - Stdlib_Int64=global_data.Stdlib__Int64, - Stdlib_Int32=global_data.Stdlib__Int32, - Stdlib_StringLabels=global_data.Stdlib__StringLabels, - Stdlib_Printf=global_data.Stdlib__Printf, - Ppx_yojson_conv_lib=[0]; - caml_register_global(45,Ppx_yojson_conv_lib,"Ppx_yojson_conv_lib__"); - var Ppx_yojson_conv_lib_Yojsonable=[0]; - caml_register_global - (46, - Ppx_yojson_conv_lib_Yojsonable, - "Ppx_yojson_conv_lib__Yojsonable_intf"); - var - _b_=[0,-976970511,caml_string_of_jsbytes("")], - _a_=[0,-976970511,caml_string_of_jsbytes("")], - _g_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: polymorphic variant tag "), - [3, - 0, - [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], - caml_string_of_jsbytes - ("%s_of_yojson: polymorphic variant tag %S has incorrect number of arguments")], - _f_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes - ("_of_yojson: the following record elements were undefined: "), - [2,0,0]]], - caml_string_of_jsbytes - ("%s_of_yojson: the following record elements were undefined: %s")], - _e_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: "), - [2,0,[11,caml_string_of_jsbytes(": "),[2,0,0]]]]], - caml_string_of_jsbytes("%s_of_yojson: %s: %s")], - _d_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: sum tag "), - [3, - 0, - [11,caml_string_of_jsbytes(" has incorrect number of arguments"),0]]]], - caml_string_of_jsbytes - ("%s_of_yojson: sum tag %S has incorrect number of arguments")], - _c_= - [0, - [2, - 0, - [11, - caml_string_of_jsbytes("_of_yojson: tuple of size "), - [4,0,0,0,[11,caml_string_of_jsbytes(" expected"),0]]]], - caml_string_of_jsbytes("%s_of_yojson: tuple of size %d expected")]; - function yojson_of_unit(param){return 870828711} - function yojson_of_bool(b){return [0,737456202,b]} - function yojson_of_string(str){return [0,-976970511,str]} - function yojson_of_bytes(bytes) - {return [0,-976970511,caml_call1(Stdlib_BytesLabels[6],bytes)]} - function yojson_of_char(c) - {return [0,-976970511,caml_call2(Stdlib_StringLabels[1],1,c)]} - function yojson_of_int(n){return [0,3654863,n]} - function yojson_of_float(n){return [0,365180284,n]} - function yojson_of_int32(n) - {return [0,-752863768,caml_call1(Stdlib_Int32[14],n)]} - function yojson_of_int64(n) - {return [0,-752863768,caml_call1(Stdlib_Int64[14],n)]} - function yojson_of_nativeint(n) - {return [0,-752863768,caml_call1(Stdlib_Nativeint[15],n)]} - function yojson_of_ref(yojson_of_a,rf) - {return caml_call1(yojson_of_a,rf[1])} - function yojson_of_lazy_t(yojson_of_a,lv) - {var - _I_=runtime.caml_obj_tag(lv), - _J_=250 === _I_?lv[1]:246 === _I_?caml_call1(CamlinternalLazy[2],lv):lv; - return caml_call1(yojson_of_a,_J_)} - function yojson_of_option(yojson_of_a,param) - {if(! param)return 870828711; - var x=param[1]; - return caml_call1(yojson_of_a,x)} - function yojson_of_pair(yojson_of_a,yojson_of_b,param) - {var b=param[2],a=param[1],_H_=[0,caml_call1(yojson_of_b,b),0]; - return [0,848054398,[0,caml_call1(yojson_of_a,a),_H_]]} - function yojson_of_triple(yojson_of_a,yojson_of_b,yojson_of_c,param) - {var - c=param[3], - b=param[2], - a=param[1], - _F_=[0,caml_call1(yojson_of_c,c),0], - _G_=[0,caml_call1(yojson_of_b,b),_F_]; - return [0,848054398,[0,caml_call1(yojson_of_a,a),_G_]]} - function yojson_of_list(yojson_of_a,lst) - {var _E_=caml_call2(Stdlib_ListLabels[21],yojson_of_a,lst); - return [0,848054398,caml_call1(Stdlib_ListLabels[9],_E_)]} - function yojson_of_array(yojson_of_a,ar) - {var lst_ref=[0,0],_B_=ar.length - 1 - 1 | 0; - if(_B_ >= 0) - {var i=_B_; - for(;;) - {var _C_=lst_ref[1]; - lst_ref[1] - = - [0,caml_call1(yojson_of_a,caml_check_bound(ar,i)[1 + i]),_C_]; - var _D_=i - 1 | 0; - if(0 !== i){var i=_D_;continue} - break}} - return [0,848054398,lst_ref[1]]} - function yojson_of_hashtbl(yojson_of_key,yojson_of_val,htbl) - {function coll(k,v,acc) - {var _A_=[0,caml_call1(yojson_of_val,v),0]; - return [0,[0,848054398,[0,caml_call1(yojson_of_key,k),_A_]],acc]} - return [0,848054398,caml_call3(Stdlib_MoreLabels[1][14],coll,htbl,0)]} - function yojson_of_opaque(param){return _a_} - function yojson_of_fun(param){return _b_} - var - Of_yojson_error=[248,cst_Ppx_yojson_conv_lib_Yojson,caml_fresh_oo_id(0)], - record_check_extra_fields=[0,1]; - function of_yojson_error_exn(exc,yojson) - {throw [0,Of_yojson_error,exc,yojson]} - function of_yojson_error(what,yojson) - {throw [0,Of_yojson_error,[0,Stdlib[7],what],yojson]} - function unit_of_yojson(yojson) - {return 870828711 === yojson - ?0 - :of_yojson_error(cst_unit_of_yojson_Null_needed,yojson)} - function bool_of_yojson(yojson) - {if(typeof yojson !== "number" && 737456202 === yojson[1]) - {var v=yojson[2];return v} - return of_yojson_error(cst_bool_of_yojson_true_false_,yojson)} - function string_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2];return str} - return of_yojson_error(cst_string_of_yojson_string_ne,yojson)} - function bytes_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2];return caml_call1(Stdlib_BytesLabels[5],str)} - return of_yojson_error(cst_bytes_of_yojson_string_nee,yojson)} - function char_of_yojson(yojson) - {if(typeof yojson !== "number" && -976970511 === yojson[1]) - {var str=yojson[2]; - if(1 !== runtime.caml_ml_string_length(str)) - of_yojson_error(cst_char_of_yojson_string_must,yojson); - return runtime.caml_string_get(str,0)} - return of_yojson_error(cst_char_of_yojson_string_of_s,yojson)} - function int_of_yojson(yojson) - {if(typeof yojson !== "number" && 3654863 === yojson[1]) - {var v=yojson[2];return v} - return of_yojson_error(cst_int_of_yojson_integer_need,yojson)} - function float_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _z_=yojson[1]; - if(-752863768 === _z_) - {var str=yojson[2];return runtime.caml_float_of_string(str)} - if(3654863 === _z_){var i=yojson[2];return i} - if(365180284 === _z_){var v=yojson[2];return v}} - return of_yojson_error(cst_float_of_yojson_float_need,yojson)} - function int32_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _y_=yojson[1]; - if(-752863768 === _y_) - {var str=yojson[2];return caml_int_of_string(str)} - if(3654863 === _y_){var v=yojson[2];return v}} - return of_yojson_error(cst_int32_of_yojson_integer_ne,yojson)} - function int64_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _x_=yojson[1]; - if(-752863768 === _x_) - {var str=yojson[2];return runtime.caml_int64_of_string(str)} - if(3654863 === _x_) - {var v=yojson[2];return runtime.caml_int64_of_int32(v)}} - return of_yojson_error(cst_int64_of_yojson_integer_ne,yojson)} - function nativeint_of_yojson(yojson) - {if(typeof yojson !== "number") - {var _w_=yojson[1]; - if(-752863768 === _w_) - {var str=yojson[2];return caml_int_of_string(str)} - if(3654863 === _w_){var v=yojson[2];return v}} - return of_yojson_error(cst_nativeint_of_yojson_intege,yojson)} - function ref_of_yojson(a_of_yojson,yojson) - {return [0,caml_call1(a_of_yojson,yojson)]} - function lazy_t_of_yojson(a_of_yojson,yojson) - {var _v_=caml_call1(a_of_yojson,yojson); - return caml_call1(Stdlib_Lazy[4],_v_)} - function option_of_yojson(a_of_yojson,yojson) - {return 870828711 === yojson?0:[0,caml_call1(a_of_yojson,yojson)]} - function pair_of_yojson(a_of_yojson,b_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _t_=yojson[2]; - if(_t_) - {var _u_=_t_[2]; - if(_u_ && ! _u_[2]) - {var - b_yojson=_u_[1], - a_yojson=_t_[1], - a=caml_call1(a_of_yojson,a_yojson), - b=caml_call1(b_of_yojson,b_yojson); - return [0,a,b]}}} - return of_yojson_error(cst_pair_of_yojson_invalid_for,yojson)} - function triple_of_yojson(a_of_yojson,b_of_yojson,c_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _q_=yojson[2]; - if(_q_) - {var _r_=_q_[2]; - if(_r_) - {var _s_=_r_[2]; - if(_s_ && ! _s_[2]) - {var - c_yojson=_s_[1], - b_yojson=_r_[1], - a_yojson=_q_[1], - a=caml_call1(a_of_yojson,a_yojson), - b=caml_call1(b_of_yojson,b_yojson), - c=caml_call1(c_of_yojson,c_yojson); - return [0,a,b,c]}}}} - return of_yojson_error(cst_triple_of_yojson_invalid_f,yojson)} - function list_of_yojson(a_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var - lst=yojson[2], - rev_lst=caml_call2(Stdlib_ListLabels[21],a_of_yojson,lst); - return caml_call1(Stdlib_ListLabels[9],rev_lst)} - return of_yojson_error(cst_list_of_yojson_list_needed,yojson)} - function array_of_yojson(a_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var _o_=yojson[2]; - if(! _o_)return [0]; + c = param[3], + b = param[2], + a = param[1], + _w_ = [0, caml_call1(yojson_of_c, c), 0], + _x_ = [0, caml_call1(yojson_of_b, b), _w_]; + return [0, 848054398, [0, caml_call1(yojson_of_a, a), _x_]]; + } + function yojson_of_list(yojson_of_a, lst){ + var _v_ = caml_call2(Stdlib_ListLabels[21], yojson_of_a, lst); + return [0, 848054398, caml_call1(Stdlib_ListLabels[9], _v_)]; + } + function yojson_of_array(yojson_of_a, ar){ + var lst_ref = [0, 0], _s_ = ar.length - 1 - 1 | 0; + if(_s_ >= 0){ + var i = _s_; + for(;;){ + var _t_ = lst_ref[1]; + lst_ref[1] = + [0, caml_call1(yojson_of_a, caml_check_bound(ar, i)[1 + i]), _t_]; + var _u_ = i - 1 | 0; + if(0 !== i){var i = _u_; continue;} + break; + } + } + return [0, 848054398, lst_ref[1]]; + } + function yojson_of_hashtbl(yojson_of_key, yojson_of_val, htbl){ + function coll(k, v, acc){ + var _r_ = [0, caml_call1(yojson_of_val, v), 0]; + return [0, [0, 848054398, [0, caml_call1(yojson_of_key, k), _r_]], acc]; + } + return [0, 848054398, caml_call3(Stdlib_MoreLabels[1][14], coll, htbl, 0)]; + } + function yojson_of_opaque(param){return _a_;} + function yojson_of_fun(param){return _b_;} + var + Of_yojson_error = + [248, cst_Ppx_yojson_conv_lib_Yojson, runtime.caml_fresh_oo_id(0)], + record_check_extra_fields = [0, 1]; + function of_yojson_error_exn(exc, yojson){ + throw caml_maybe_attach_backtrace([0, Of_yojson_error, exc, yojson], 1); + } + function of_yojson_error(what, yojson){ + throw caml_maybe_attach_backtrace + ([0, Of_yojson_error, [0, Stdlib[7], what], yojson], 1); + } + function unit_of_yojson(yojson){ + return 870828711 === yojson + ? 0 + : of_yojson_error(cst_unit_of_yojson_Null_needed, yojson); + } + function bool_of_yojson(yojson){ + if(typeof yojson !== "number" && 737456202 === yojson[1]){var v = yojson[2]; return v;} + return of_yojson_error(cst_bool_of_yojson_true_false_, yojson); + } + function string_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){var str = yojson[2]; return str;} + return of_yojson_error(cst_string_of_yojson_string_ne, yojson); + } + function bytes_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){ + var str = yojson[2]; + return caml_call1(Stdlib_BytesLabels[5], str); + } + return of_yojson_error(cst_bytes_of_yojson_string_nee, yojson); + } + function char_of_yojson(yojson){ + if(typeof yojson !== "number" && -976970511 === yojson[1]){ + var str = yojson[2]; + if(1 !== runtime.caml_ml_string_length(str)) + of_yojson_error(cst_char_of_yojson_string_must, yojson); + return runtime.caml_string_get(str, 0); + } + return of_yojson_error(cst_char_of_yojson_string_of_s, yojson); + } + function int_of_yojson(yojson){ + if(typeof yojson !== "number" && 3654863 === yojson[1]){var v = yojson[2]; return v;} + return of_yojson_error(cst_int_of_yojson_integer_need, yojson); + } + function float_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _q_ = yojson[1]; + if(-752863768 === _q_){ + var str = yojson[2]; + return runtime.caml_float_of_string(str); + } + if(3654863 === _q_){var i = yojson[2]; return i;} + if(365180284 === _q_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_float_of_yojson_float_need, yojson); + } + function int32_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _p_ = yojson[1]; + if(-752863768 === _p_){ + var str = yojson[2]; + return caml_int_of_string(str); + } + if(3654863 === _p_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_int32_of_yojson_integer_ne, yojson); + } + function int64_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _o_ = yojson[1]; + if(-752863768 === _o_){ + var str = yojson[2]; + return runtime.caml_int64_of_string(str); + } + if(3654863 === _o_){ + var v = yojson[2]; + return runtime.caml_int64_of_int32(v); + } + } + return of_yojson_error(cst_int64_of_yojson_integer_ne, yojson); + } + function nativeint_of_yojson(yojson){ + if(typeof yojson !== "number"){ + var _n_ = yojson[1]; + if(-752863768 === _n_){ + var str = yojson[2]; + return caml_int_of_string(str); + } + if(3654863 === _n_){var v = yojson[2]; return v;} + } + return of_yojson_error(cst_nativeint_of_yojson_intege, yojson); + } + function ref_of_yojson(a_of_yojson, yojson){ + return [0, caml_call1(a_of_yojson, yojson)]; + } + function lazy_t_of_yojson(a_of_yojson, yojson){ + var _m_ = caml_call1(a_of_yojson, yojson); + return caml_call1(Stdlib_Lazy[4], _m_); + } + function option_of_yojson(a_of_yojson, yojson){ + return 870828711 === yojson ? 0 : [0, caml_call1(a_of_yojson, yojson)]; + } + function pair_of_yojson(a_of_yojson, b_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var _k_ = yojson[2]; + if(_k_){ + var _l_ = _k_[2]; + if(_l_ && ! _l_[2]){ + var + b_yojson = _l_[1], + a_yojson = _k_[1], + a = caml_call1(a_of_yojson, a_yojson), + b = caml_call1(b_of_yojson, b_yojson); + return [0, a, b]; + } + } + } + return of_yojson_error(cst_pair_of_yojson_invalid_for, yojson); + } + function triple_of_yojson(a_of_yojson, b_of_yojson, c_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var _h_ = yojson[2]; + if(_h_){ + var _i_ = _h_[2]; + if(_i_){ + var _j_ = _i_[2]; + if(_j_ && ! _j_[2]){ var - t=_o_[2], - h=_o_[1], - len=caml_call1(Stdlib_ListLabels[1],t) + 1 | 0, - res=runtime.caml_make_vect(len,caml_call1(a_of_yojson,h)), - i=1, - param=t; - for(;;) - {if(! param)return res; - var t$0=param[2],h$0=param[1],_p_=caml_call1(a_of_yojson,h$0); - caml_check_bound(res,i)[1 + i] = _p_; - var i$0=i + 1 | 0,i=i$0,param=t$0}} - return of_yojson_error(cst_array_of_yojson_list_neede,yojson)} - function hashtbl_of_yojson(key_of_yojson,val_of_yojson,yojson) - {if(typeof yojson !== "number" && 848054398 === yojson[1]) - {var - lst=yojson[2], - htbl=caml_call2(Stdlib_MoreLabels[1][1],0,0), - act= - function(param) - {if(typeof param !== "number" && 848054398 === param[1]) - {var _k_=param[2]; - if(_k_) - {var _l_=_k_[2]; - if(_l_ && ! _l_[2]) - {var - v_yojson=_l_[1], - k_yojson=_k_[1], - _m_=caml_call1(val_of_yojson,v_yojson), - _n_=caml_call1(key_of_yojson,k_yojson); - return caml_call3(Stdlib_MoreLabels[1][5],htbl,_n_,_m_)}}} - return of_yojson_error(cst_hashtbl_of_yojson_tuple_li,yojson)}; - caml_call2(Stdlib_ListLabels[17],act,lst); - return htbl} - return of_yojson_error(cst_hashtbl_of_yojson_list_nee,yojson)} - function opaque_of_yojson(yojson) - {return of_yojson_error(cst_opaque_of_yojson_cannot_co,yojson)} - function fun_of_yojson(yojson) - {return of_yojson_error(cst_fun_of_yojson_cannot_conve,yojson)} - var - Ppx_yojson_conv_lib_Yojson_con= + c_yojson = _j_[1], + b_yojson = _i_[1], + a_yojson = _h_[1], + a = caml_call1(a_of_yojson, a_yojson), + b = caml_call1(b_of_yojson, b_yojson), + c = caml_call1(c_of_yojson, c_yojson); + return [0, a, b, c]; + } + } + } + } + return of_yojson_error(cst_triple_of_yojson_invalid_f, yojson); + } + function list_of_yojson(a_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var + lst = yojson[2], + rev_lst = caml_call2(Stdlib_ListLabels[21], a_of_yojson, lst); + return caml_call1(Stdlib_ListLabels[9], rev_lst); + } + return of_yojson_error(cst_list_of_yojson_list_needed, yojson); + } + function array_of_yojson(a_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var match = yojson[2]; + if(! match) return [0]; + var + t = match[2], + h = match[1], + len = caml_call1(Stdlib_ListLabels[1], t) + 1 | 0, + res = runtime.caml_make_vect(len, caml_call1(a_of_yojson, h)), + i = 1, + param = t; + for(;;){ + if(! param) return res; + var t$0 = param[2], h$0 = param[1], _g_ = caml_call1(a_of_yojson, h$0); + caml_check_bound(res, i)[1 + i] = _g_; + var i$0 = i + 1 | 0, i = i$0, param = t$0; + } + } + return of_yojson_error(cst_array_of_yojson_list_neede, yojson); + } + function hashtbl_of_yojson(key_of_yojson, val_of_yojson, yojson){ + if(typeof yojson !== "number" && 848054398 === yojson[1]){ + var + lst = yojson[2], + htbl = caml_call2(Stdlib_MoreLabels[1][1], 0, 0), + act = + function(param){ + if(typeof param !== "number" && 848054398 === param[1]){ + var _c_ = param[2]; + if(_c_){ + var _d_ = _c_[2]; + if(_d_ && ! _d_[2]){ + var + v_yojson = _d_[1], + k_yojson = _c_[1], + _e_ = caml_call1(val_of_yojson, v_yojson), + _f_ = caml_call1(key_of_yojson, k_yojson); + return caml_call3(Stdlib_MoreLabels[1][5], htbl, _f_, _e_); + } + } + } + return of_yojson_error(cst_hashtbl_of_yojson_tuple_li, yojson); + }; + caml_call2(Stdlib_ListLabels[17], act, lst); + return htbl; + } + return of_yojson_error(cst_hashtbl_of_yojson_list_nee, yojson); + } + function opaque_of_yojson(yojson){ + return of_yojson_error(cst_opaque_of_yojson_cannot_co, yojson); + } + function fun_of_yojson(yojson){ + return of_yojson_error(cst_fun_of_yojson_cannot_conve, yojson); + } + var + Ppx_yojson_conv_lib_Yojson_con = [0, yojson_of_unit, yojson_of_bool, @@ -42490,585 +42910,369 @@ list_of_yojson, array_of_yojson, hashtbl_of_yojson]]; - caml_register_global - (57,Ppx_yojson_conv_lib_Yojson_con,"Ppx_yojson_conv_lib__Yojson_conv"); - var sprintf=Stdlib_Printf[4]; - function tuple_of_size_n_expected(loc,n,yojson) - {return of_yojson_error(caml_call3(sprintf,_c_,loc,n),yojson)} - function stag_no_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor), - yojson)} - function stag_incorrect_n_args(loc,tag,yojson) - {var msg=caml_call3(sprintf,_d_,loc,tag); - return of_yojson_error(msg,yojson)} - function stag_takes_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_this_constructor$0), - yojson)} - function nested_list_invalid_sum(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia), - yojson)} - function empty_list_invalid_sum(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_expected_a_varia$0), - yojson)} - function unexpected_stag(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_unexpected_varia), - yojson)} - function record_superfluous_fields(what,loc,rev_fld_names,yojson) - {var - _j_=caml_call1(Stdlib_ListLabels[9],rev_fld_names), - fld_names_str=caml_call2(Stdlib_StringLabels[6],cst,_j_), - msg=caml_call4(sprintf,_e_,loc,what,fld_names_str); - return of_yojson_error(msg,yojson)} - function record_duplicate_fields(loc,rev_fld_names,yojson) - {return record_superfluous_fields - (cst_duplicate_fields,loc,rev_fld_names,yojson)} - function record_extra_fields(loc,rev_fld_names,yojson) - {return record_superfluous_fields - (cst_extra_fields,loc,rev_fld_names,yojson)} - function record_get_undefined_loop(fields,param) - {var fields$0=fields,param$0=param; - for(;;) - {if(! param$0) - {var _i_=caml_call1(Stdlib_ListLabels[9],fields$0); - return caml_call2(Stdlib_StringLabels[6],cst$0,_i_)} - var _h_=param$0[1]; - if(_h_[1]) - {var - param$1=param$0[2], - field=_h_[2], - fields$1=[0,field,fields$0], - fields$0=fields$1, - param$0=param$1; - continue} - var param$2=param$0[2],param$0=param$2}} - function record_undefined_elements(loc,yojson,lst) - {var - undefined$0=record_get_undefined_loop(0,lst), - msg=caml_call3(sprintf,_f_,loc,undefined$0); - return of_yojson_error(msg,yojson)} - function record_list_instead_atom(loc,yojson) - {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_list_instead_of_); - return of_yojson_error(msg,yojson)} - function record_poly_field_value(loc,yojson) - {var msg=caml_call2(Stdlib[28],loc,cst_of_yojson_cannot_convert_v); - return of_yojson_error(msg,yojson)} - var - No_variant_match= - [248,cst_Ppx_yojson_conv_lib_Yojson$0,caml_fresh_oo_id(0)]; - function no_variant_match(param){throw No_variant_match} - function no_matching_variant_found(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_no_matching_vari), - yojson)} - function ptag_no_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari), - yojson)} - function ptag_incorrect_n_args(loc,cnstr,yojson) - {var msg=caml_call3(sprintf,_g_,loc,cnstr); - return of_yojson_error(msg,yojson)} - function ptag_takes_args(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_polymorphic_vari$0), - yojson)} - function nested_list_invalid_poly_var(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_a_nested_list_is), - yojson)} - function empty_list_invalid_poly_var(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_the_empty_list_i), - yojson)} - function empty_type(loc,yojson) - {return of_yojson_error - (caml_call2(Stdlib[28],loc,cst_of_yojson_trying_to_conver), - yojson)} - var - Ppx_yojson_conv_lib_Yojson_con$0= - [0, - sprintf, - tuple_of_size_n_expected, - stag_no_args, - stag_incorrect_n_args, - stag_takes_args, - nested_list_invalid_sum, - empty_list_invalid_sum, - unexpected_stag, - record_superfluous_fields, - record_duplicate_fields, - record_extra_fields, - record_get_undefined_loop, - record_undefined_elements, - record_list_instead_atom, - record_poly_field_value, - No_variant_match, - no_variant_match, - no_matching_variant_found, - ptag_no_args, - ptag_incorrect_n_args, - ptag_takes_args, - nested_list_invalid_poly_var, - empty_list_invalid_poly_var, - empty_type]; - caml_register_global - (59, - Ppx_yojson_conv_lib_Yojson_con$0, - "Ppx_yojson_conv_lib__Yojson_conv_error"); - var Option=[0]; - function symbol(x){return x[1]} - var Ppx_yojson_conv_lib$0=[0,Option,symbol]; - caml_register_global(60,Ppx_yojson_conv_lib$0,"Ppx_yojson_conv_lib"); - return} + runtime.caml_register_global + (32, Ppx_yojson_conv_lib_Yojson_con, "Ppx_yojson_conv_lib__Yojson_conv"); + return; + } (globalThis)); -//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/runtime_ocaml.cma.js" +//# 1 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../runtimes/ocaml/.runtime_ocaml.objs/jsoo/default/runtime_ocaml.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_check_bound=runtime.caml_check_bound, - caml_equal=runtime.caml_equal, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call6(f,a0,a1,a2,a3,a4,a5) - {return f.length == 6 - ?f(a0,a1,a2,a3,a4,a5) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} - function caml_call9(f,a0,a1,a2,a3,a4,a5,a6,a7,a8) - {return f.length == 9 - ?f(a0,a1,a2,a3,a4,a5,a6,a7,a8) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6,a7,a8])} - var - global_data=runtime.caml_get_global_data(), - cst$3=caml_string_of_jsbytes("."), - cst$4=caml_string_of_jsbytes("."), - partial= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst$24 = "", + cst$23 = " :=", + cst$26 = " ])", + cst_a = "%a", + cst_s = "%s", + cst$22 = "()", + cst$25 = ", ", + cst$18 = ".", + cst$20 = ": ", + cst_hov_1 = "", + cst_hov_2 = "", + cst_hv_1 = "", + cst_hv_2 = "", + cst$19 = "@ ", + cst$21 = "@,", + cst_1_2 = "@;<1 -2>", + cst_BeginCall = "BeginCall([ ", + cst_EndCall = "EndCall([ ", + cst_Invalid_function_call$1 = "Invalid function call ([ ", + cst_body$2 = "body", + cst_body$1 = "body:", + cst_fun = "fun", + cst_name$1 = "name", + cst_no_pos = "no_pos", + cst_output$0 = "output", + caml_check_bound = runtime.caml_check_bound, + caml_equal = runtime.caml_equal, + caml_fresh_oo_id = runtime.caml_fresh_oo_id, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + function caml_call6(f, a0, a1, a2, a3, a4, a5){ + return (f.l >= 0 ? f.l : f.l = f.length) == 6 + ? f(a0, a1, a2, a3, a4, a5) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5]); + } + function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ + return (f.l >= 0 ? f.l : f.l = f.length) == 7 + ? f(a0, a1, a2, a3, a4, a5, a6) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); + } + function caml_call9(f, a0, a1, a2, a3, a4, a5, a6, a7, a8){ + return (f.l >= 0 ? f.l : f.l = f.length) == 9 + ? f(a0, a1, a2, a3, a4, a5, a6, a7, a8) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6, a7, a8]); + } + var + global_data = runtime.caml_get_global_data(), + cst$3 = cst$18, + cst$4 = cst$18, + partial = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, - [17, - [0,caml_string_of_jsbytes("@;<1 -2>"),1,-2], - [12,93,[17,0,[12,32,[17,0,0]]]]]]]]]], - cst$5=caml_string_of_jsbytes("."), - cst$6=caml_string_of_jsbytes("; "), - cst$7=caml_string_of_jsbytes("."), - partial$0=[11,caml_string_of_jsbytes(""),0], - partial$1= + [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, [12, 32, [17, 0, 0]]]]]]]]]], + cst$5 = cst$18, + cst$6 = "; ", + cst$7 = cst$18, + partial$0 = [11, cst_hv_1, 0], + partial$1 = [12, 91, [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [15, [12, 93, [17, 0, [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]], - partial$2=[0,caml_string_of_jsbytes("@ "),1,0], - partial$3= + [0, cst$21, 0, 0], + [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]], + partial$2 = [0, cst$19, 1, 0], + partial$3 = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [12, 44, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [11, - caml_string_of_jsbytes("output:"), + "output:", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [12, 44, [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [11,caml_string_of_jsbytes("body:"),[17,partial$2,partial$1]]]]]]]]]]], - cst$8=caml_string_of_jsbytes("."), - partial$4=[11,caml_string_of_jsbytes(""),0], - partial$5= + [0, cst$19, 1, 0], + [11, cst_body$1, [17, partial$2, partial$1]]]]]]]]]]], + cst$8 = cst$18, + partial$4 = [11, cst_hv_1, 0], + partial$5 = [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [15, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 93, - [17, - 0, - [17,0,[17,0,[17,[0,caml_string_of_jsbytes("@,"),0,0],[12,125,0]]]]]]]]]], - partial$6= - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - partial$7= + [17, 0, [17, 0, [17, 0, [17, [0, cst$21, 0, 0], [12, 125, 0]]]]]]]]]], + partial$6 = [1, [0, [11, cst_hv_2, 0], cst_hv_2]], + partial$7 = [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [15, [17, 0, [11, - caml_string_of_jsbytes("],"), + "],", [17, - [0,caml_string_of_jsbytes("@,"),0,0], + [0, cst$21, 0, 0], [11, - caml_string_of_jsbytes("body:"), - [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [18,partial$6,partial$5]]]]]]]]]]], - cst_unreachable_due_to_the_is_= - caml_string_of_jsbytes("unreachable due to the [is_subscope_call] test"), - cst_unreachable_due_to_the_is_$0= - caml_string_of_jsbytes - ("unreachable due to the [is_subscope_input_var_def] test"), - cst$14=caml_string_of_jsbytes("]"), - cst$15=caml_string_of_jsbytes("["), - cst_expected_variable_definiti= - caml_string_of_jsbytes - (" ]): expected variable definition (function output), found: "), - cst$16=caml_string_of_jsbytes(", "), - cst_Invalid_function_call= - caml_string_of_jsbytes("Invalid function call ([ "), - cst_expected_variable_definiti$0= - caml_string_of_jsbytes - (" ]): expected variable definition (function output), found: end of tokens"), - cst$17=caml_string_of_jsbytes(", "), - cst_Invalid_function_call$0= - caml_string_of_jsbytes("Invalid function call ([ "), - cst_Unexpected_event=caml_string_of_jsbytes("Unexpected event: "), - cst_Missing_function_output_va= - caml_string_of_jsbytes("Missing function output variable definition."), - cst_Invalid_start_of_function_= - caml_string_of_jsbytes("Invalid start of function call."), - cst_input=caml_string_of_jsbytes("input"), - cst_output$0=caml_string_of_jsbytes("output"), - cst$9=caml_string_of_jsbytes(" ])"), - cst$10=caml_string_of_jsbytes(", "), - cst$11=caml_string_of_jsbytes(" ])"), - cst$12=caml_string_of_jsbytes(", "), - cst$13=caml_string_of_jsbytes(", "), - partial$8=[12,41,0], - cst_body=caml_string_of_jsbytes("body"), - cst_inputs=caml_string_of_jsbytes("inputs"), - cst_name=caml_string_of_jsbytes("name"), - cst_fun_calls=caml_string_of_jsbytes("fun_calls"), - cst_value=caml_string_of_jsbytes("value"), - cst_name$0=caml_string_of_jsbytes("name"), - cst_pos=caml_string_of_jsbytes("pos"), - cst_output=caml_string_of_jsbytes("output"), - cst_body$0=caml_string_of_jsbytes("body"), - cst_fun_inputs=caml_string_of_jsbytes("fun_inputs"), - cst_fun_name=caml_string_of_jsbytes("fun_name"), - cst=caml_string_of_jsbytes("\xe2\x80\xa6"), - cst$2=caml_string_of_jsbytes(""), - cst$1=caml_string_of_jsbytes("-"), - cst$0=caml_string_of_jsbytes(""), - cst_law_headings=caml_string_of_jsbytes("law_headings"), - cst_end_column=caml_string_of_jsbytes("end_column"), - cst_end_line=caml_string_of_jsbytes("end_line"), - cst_start_column=caml_string_of_jsbytes("start_column"), - cst_start_line=caml_string_of_jsbytes("start_line"), - cst_filename=caml_string_of_jsbytes("filename"), - cst_Runtime_ocaml_Runtime_Empt= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.EmptyError"), - cst_Runtime_ocaml_Runtime_Asse= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.AssertionFailed"), - cst_Runtime_ocaml_Runtime_Conf= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.ConflictError"), - cst_Runtime_ocaml_Runtime_Unco= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.UncomparableDurations"), - cst_Runtime_ocaml_Runtime_Indi= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.IndivisibleDurations"), - cst_Runtime_ocaml_Runtime_Impo= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.ImpossibleDate"), - cst_Runtime_ocaml_Runtime_NoVa= - caml_string_of_jsbytes("Runtime_ocaml.Runtime.NoValueProvided"), - Stdlib_String=global_data.Stdlib__String, - Stdlib_Format=global_data.Stdlib__Format, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_Option=global_data.Stdlib__Option, - Stdlib=global_data.Stdlib, - Dates_calc_Dates=global_data.Dates_calc__Dates, - Q=global_data.Q, - Z=global_data.Z, - Stdlib_List=global_data.Stdlib__List, - Assert_failure=global_data.Assert_failure, - Stdlib_ListLabels=global_data.Stdlib__ListLabels, - Stdlib_Printf=global_data.Stdlib__Printf, - Yojson=global_data.Yojson, - Ppx_yojson_conv_lib_Yojson_con= + cst_body$1, + [17, [0, cst$19, 1, 0], [18, partial$6, partial$5]]]]]]]]]]], + cst$14 = "]", + cst$15 = "[", + cst$16 = cst$25, + cst$17 = cst$25, + cst$9 = cst$26, + cst$10 = cst$25, + cst$11 = cst$26, + cst$12 = cst$25, + cst$13 = cst$25, + partial$8 = [12, 41, 0], + cst = "\xe2\x80\xa6", + cst$2 = cst$24, + cst$1 = "-", + cst$0 = cst$24, + Stdlib_String = global_data.Stdlib__String, + Stdlib_Format = global_data.Stdlib__Format, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Option = global_data.Stdlib__Option, + Stdlib = global_data.Stdlib, + Dates_calc_Dates = global_data.Dates_calc__Dates, + Q = global_data.Q, + Z = global_data.Z, + Stdlib_List = global_data.Stdlib__List, + Assert_failure = global_data.Assert_failure, + Stdlib_ListLabels = global_data.Stdlib__ListLabels, + Stdlib_Printf = global_data.Stdlib__Printf, + Yojson = global_data.Yojson, + Ppx_yojson_conv_lib_Yojson_con = global_data.Ppx_yojson_conv_lib__Yojson_conv, - Stdlib_Map=global_data.Stdlib__Map, - Runtime_ocaml=[0]; - caml_register_global(115,Runtime_ocaml,"Runtime_ocaml"); - var - _u_= + Stdlib_Map = global_data.Stdlib__Map, + _u_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_2, 0], cst_hov_2]], [11, - caml_string_of_jsbytes("@ %s:@ %a@]")], - _v_= + [0, cst$19, 1, 0], + [2, 0, [12, 58, [17, [0, cst$19, 1, 0], [15, [17, 0, 0]]]]]]]]]], + "@[@ %s:@ %a@]"], + _v_ = [0, - [2, - 0, - [11, - caml_string_of_jsbytes(" line "), - [4,0,0,0,[11,caml_string_of_jsbytes(" to "),[4,0,0,0,0]]]]], - caml_string_of_jsbytes("%s line %d to %d")], - _w_= - [0, - [11,caml_string_of_jsbytes("no_pos"),0], - caml_string_of_jsbytes("no_pos")], - _x_= - [0, - [17,[0,caml_string_of_jsbytes("@ "),1,0],0], - caml_string_of_jsbytes("@ ")], - _y_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(",@ ")], - _z_= + [2, 0, [11, " line ", [4, 0, 0, 0, [11, " to ", [4, 0, 0, 0, 0]]]]], + "%s line %d to %d"], + _w_ = [0, [11, cst_no_pos, 0], cst_no_pos], + _x_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], + _y_ = [0, [12, 44, [17, [0, cst$19, 1, 0], 0]], ",@ "], + _z_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_2, 0], cst_hov_2]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(": "), + cst$20, [15, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [11, - caml_string_of_jsbytes("computed from"), - [17,[0,caml_string_of_jsbytes("@ "),1,0],[12,58,partial]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]")], - _M_= - [0, - [12,59,[17,[0,caml_string_of_jsbytes("@ "),1,0],0]], - caml_string_of_jsbytes(";@ ")], - _K_= - [0, - [12,44,[17,[0,caml_string_of_jsbytes("@,"),0,0],0]], - caml_string_of_jsbytes(",@,")], - _J_= - [0, - [2,0,[11,caml_string_of_jsbytes(": "),[15,0]]], - caml_string_of_jsbytes("%s: %a")], - _A_=[0,[11,caml_string_of_jsbytes("()"),0],caml_string_of_jsbytes("()")], - _B_= - [0,[11,caml_string_of_jsbytes("fun"),0],caml_string_of_jsbytes("fun")], - _C_=[0,[9,0,0],caml_string_of_jsbytes("%b")], - _D_= - [0, - [2,0,[11,caml_string_of_jsbytes("\xe2\x82\xac"),0]], - caml_string_of_jsbytes("%s\xe2\x82\xac")], - _E_=[0,[4,0,0,0,0],caml_string_of_jsbytes("%d")], - _F_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _G_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _H_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _I_=[0,[2,0,0],caml_string_of_jsbytes("%s")], - _L_= + "computed from", + [17, [0, cst$19, 1, 0], [12, 58, partial]]]]]]]]]], + "@[@ %s: %a@ computed from@ :@ @[[@ %a@;<1 -2>]@] @]"], + _M_ = [0, [12, 59, [17, [0, cst$19, 1, 0], 0]], ";@ "], + _K_ = [0, [12, 44, [17, [0, cst$21, 0, 0], 0]], ",@,"], + _J_ = [0, [2, 0, [11, cst$20, [15, 0]]], "%s: %a"], + _A_ = [0, [11, cst$22, 0], cst$22], + _B_ = [0, [11, cst_fun, 0], cst_fun], + _C_ = [0, [9, 0, 0], "%b"], + _D_ = [0, [2, 0, [11, "\xe2\x82\xac", 0]], "%s\xe2\x82\xac"], + _E_ = [0, [4, 0, 0, 0, 0], "%d"], + _F_ = [0, [2, 0, 0], cst_s], + _G_ = [0, [2, 0, 0], cst_s], + _H_ = [0, [2, 0, 0], cst_s], + _I_ = [0, [2, 0, 0], cst_s], + _L_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [2, 0, [11, - caml_string_of_jsbytes(" = {"), + " = {", [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [15, - [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,125,[17,0,0]]]]]]]], - caml_string_of_jsbytes("@[%s = {@ %a@;<1 -2>}@]")], - _N_= + [0, cst$19, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 125, [17, 0, 0]]]]]]]], + "@[%s = {@ %a@;<1 -2>}@]"], + _N_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [12, 91, [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [15, - [17,[0,caml_string_of_jsbytes("@;<1 -2>"),1,-2],[12,93,[17,0,0]]]]]]], - caml_string_of_jsbytes("@[[@ %a@;<1 -2>]@]")], - _O_=[0,[15,0],caml_string_of_jsbytes("%a")], - _P_=[0,[15,0],caml_string_of_jsbytes("%a")], - _Q_=[0,0], - _R_= + [0, cst$19, 1, 0], + [15, [17, [0, cst_1_2, 1, -2], [12, 93, [17, 0, 0]]]]]]], + "@[[@ %a@;<1 -2>]@]"], + _O_ = [0, [15, 0], cst_a], + _P_ = [0, [15, 0], cst_a], + _Q_ = [0, 0], + _R_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hov_1, 0], cst_hov_1]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(" :="), + cst$23, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 123, [18, - [1,[0,partial$0,caml_string_of_jsbytes("")]], - [17, - [0,caml_string_of_jsbytes("@ "),1,0], - [11,caml_string_of_jsbytes("input:"),partial$3]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}")], - _S_=[0,0], - _T_= + [1, [0, partial$0, cst_hv_1]], + [17, [0, cst$19, 1, 0], [11, "input:", partial$3]]]]]]]]]], + "@[@ %s :=@ {@[@ input:@ %a,@ output:@ %a,@ body:@ [@,%a]@]@,@]@,}"], + _S_ = [0, 0], + _T_ = [0, [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], + [1, [0, [11, cst_hv_2, 0], cst_hv_2]], [11, - caml_string_of_jsbytes(""), + "", [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [2, 0, [11, - caml_string_of_jsbytes(" :="), + cst$23, [17, - [0,caml_string_of_jsbytes("@ "),1,0], + [0, cst$19, 1, 0], [12, 123, [18, - [1,[0,partial$4,caml_string_of_jsbytes("")]], - [17, - [0,caml_string_of_jsbytes("@,"),0,0], - [11,caml_string_of_jsbytes("inputs:"),partial$7]]]]]]]]]], - caml_string_of_jsbytes - ("@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}")], - _U_= + [1, [0, partial$4, cst_hv_1]], + [17, [0, cst$21, 0, 0], [11, "inputs:", partial$7]]]]]]]]]], + "@[@ %s :=@ {@[@,inputs:@ @[[@,%a@]],@,body:@ @[[@ %a@ ]@]@]@]@,}"], + _U_ = [0, [17, [0, cst$19, 1, 0], 0], cst$19], + _V_ = [0, [17, 4, 0], "@."], + _X_ = [0, 0, cst$24], + _W_ = [0, - [17,[0,caml_string_of_jsbytes("@ "),1,0],0], - caml_string_of_jsbytes("@ ")], - _V_=[0,[17,4,0],caml_string_of_jsbytes("@.")], - _X_=[0,0,caml_string_of_jsbytes("")], - _W_= - [0, - [18, - [1, - [0, - [11,caml_string_of_jsbytes(""),0], - caml_string_of_jsbytes("")]], - [15,[17,0,0]]], - caml_string_of_jsbytes("@[%a@]")], - _ae_=[0,0], - _af_=[0,0], - _ag_=[0,0], - _ab_=[0,0,0], - _ac_=[0,caml_string_of_jsbytes("runtimes/ocaml/runtime.ml"),513,19], - _ad_= + [18, [1, [0, [11, cst_hv_1, 0], cst_hv_1]], [15, [17, 0, 0]]], + "@[%a@]"], + _ae_ = [0, 0], + _af_ = [0, 0], + _ag_ = [0, 0], + _ab_ = [0, 0, 0], + cst_unreachable_due_to_the_is_ = + "unreachable due to the [is_subscope_call] test", + cst_unreachable_due_to_the_is_$0 = + "unreachable due to the [is_subscope_input_var_def] test", + cst_expected_variable_definiti = + " ]): expected variable definition (function output), found: ", + cst_Invalid_function_call = cst_Invalid_function_call$1, + cst_expected_variable_definiti$0 = + " ]): expected variable definition (function output), found: end of tokens", + cst_Invalid_function_call$0 = cst_Invalid_function_call$1, + cst_Unexpected_event = "Unexpected event: ", + _ac_ = [0, "runtimes/ocaml/runtime.ml", 513, 19], + cst_Missing_function_output_va = + "Missing function output variable definition.", + cst_Invalid_start_of_function_ = "Invalid start of function call.", + cst_input = "input", + _ad_ = [0, [11, - caml_string_of_jsbytes("An error occurred while parsing raw events: "), - [2,0,[12,10,0]]], - caml_string_of_jsbytes - ("An error occurred while parsing raw events: %s\n")], - _Z_= - [0, - [11,caml_string_of_jsbytes("BeginCall([ "),0], - caml_string_of_jsbytes("BeginCall([ ")], - ___= - [0, - [11,caml_string_of_jsbytes("EndCall([ "),0], - caml_string_of_jsbytes("EndCall([ ")], - _$_= + "An error occurred while parsing raw events: ", + [2, 0, [12, 10, 0]]], + "An error occurred while parsing raw events: %s\n"], + _Z_ = [0, [11, cst_BeginCall, 0], cst_BeginCall], + ___ = [0, [11, cst_EndCall, 0], cst_EndCall], + _$_ = [0, [11, - caml_string_of_jsbytes("VariableDefinition([ "), - [2,0,[11,caml_string_of_jsbytes(" ], "),[2,0,[12,41,0]]]]], - caml_string_of_jsbytes("VariableDefinition([ %s ], %s)")], - _aa_= + "VariableDefinition([ ", + [2, 0, [11, " ], ", [2, 0, [12, 41, 0]]]]], + "VariableDefinition([ %s ], %s)"], + _aa_ = [0, [11, - caml_string_of_jsbytes("DecisionTaken("), + "DecisionTaken(", [2, 0, [12, @@ -43077,965 +43281,1179 @@ 0, 0, 0, - [12,46,[4,0,0,0,[12,45,[4,0,0,0,[12,46,[4,0,0,0,partial$8]]]]]]]]]], - caml_string_of_jsbytes("DecisionTaken(%s:%d.%d-%d.%d)")], - _r_=[0,-976970511,caml_string_of_jsbytes("VarComputation")], - _s_=[0,-976970511,caml_string_of_jsbytes("FunCall")], - _t_=[0,-976970511,caml_string_of_jsbytes("SubScopeCall")], - _g_=[0,848054398,[0,[0,-976970511,caml_string_of_jsbytes("Unit")],0]], - _h_= - [0, - 848054398, - [0,[0,-976970511,caml_string_of_jsbytes("Unembeddable")],0]], - _i_=[0,-976970511,caml_string_of_jsbytes("Bool")], - _j_=[0,-976970511,caml_string_of_jsbytes("Money")], - _k_=[0,-976970511,caml_string_of_jsbytes("Integer")], - _l_=[0,-976970511,caml_string_of_jsbytes("Decimal")], - _m_=[0,-976970511,caml_string_of_jsbytes("Date")], - _n_=[0,-976970511,caml_string_of_jsbytes("Duration")], - _o_=[0,-976970511,caml_string_of_jsbytes("Enum")], - _p_=[0,-976970511,caml_string_of_jsbytes("Struct")], - _q_=[0,-976970511,caml_string_of_jsbytes("Array")], - _f_=[0,[15,0],caml_string_of_jsbytes("%a")], - _e_=[0,[15,0],caml_string_of_jsbytes("%a")], - _c_=[0,[15,0],caml_string_of_jsbytes("%a")], - _b_=[0,-1014801911,0], - _d_= - [0,[2,0,[15,[12,46,[15,[2,0,0]]]]],caml_string_of_jsbytes("%s%a.%a%s")], - _a_=[0,[8,[0,0,0],0,[0,2],0],caml_string_of_jsbytes("%.2f")]; - function yojson_of_source_position(param) - {var - v_law_headings=param[6], - v_end_column=param[5], - v_end_line=param[4], - v_start_column=param[3], - v_start_line=param[2], - v_filename=param[1], - arg= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v_law_headings), - bnds=[0,[0,cst_law_headings,arg],0], - arg$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_column), - bnds$0=[0,[0,cst_end_column,arg$0],bnds], - arg$1=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_end_line), - bnds$1=[0,[0,cst_end_line,arg$1],bnds$0], - arg$2=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_column), - bnds$2=[0,[0,cst_start_column,arg$2],bnds$1], - arg$3=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6],v_start_line), - bnds$3=[0,[0,cst_start_line,arg$3],bnds$2], - arg$4=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v_filename), - bnds$4=[0,[0,cst_filename,arg$4],bnds$3]; - return [0,963043957,bnds$4]} + [12, + 46, + [4, + 0, + 0, + 0, + [12, 45, [4, 0, 0, 0, [12, 46, [4, 0, 0, 0, partial$8]]]]]]]]]], + "DecisionTaken(%s:%d.%d-%d.%d)"], + _r_ = [0, -976970511, "VarComputation"], + _s_ = [0, -976970511, "FunCall"], + cst_body = cst_body$2, + cst_inputs = "inputs", + cst_name = cst_name$1, + _t_ = [0, -976970511, "SubScopeCall"], + cst_fun_calls = "fun_calls", + cst_value = "value", + cst_name$0 = cst_name$1, + cst_pos = "pos", + cst_output = cst_output$0, + cst_body$0 = cst_body$2, + cst_fun_inputs = "fun_inputs", + cst_fun_name = "fun_name", + _g_ = [0, 848054398, [0, [0, -976970511, "Unit"], 0]], + _h_ = [0, 848054398, [0, [0, -976970511, "Unembeddable"], 0]], + _i_ = [0, -976970511, "Bool"], + _j_ = [0, -976970511, "Money"], + _k_ = [0, -976970511, "Integer"], + _l_ = [0, -976970511, "Decimal"], + _m_ = [0, -976970511, "Date"], + _n_ = [0, -976970511, "Duration"], + _o_ = [0, -976970511, "Enum"], + _p_ = [0, -976970511, "Struct"], + _q_ = [0, -976970511, "Array"], + _f_ = [0, [15, 0], cst_a], + _e_ = [0, [15, 0], cst_a], + _c_ = [0, [15, 0], cst_a], + _b_ = [0, -1014801911, 0], + _d_ = [0, [2, 0, [15, [12, 46, [15, [2, 0, 0]]]]], "%s%a.%a%s"], + _a_ = [0, [8, [0, 0, 0], 0, [0, 2], 0], "%.2f"], + cst_law_headings = "law_headings", + cst_end_column = "end_column", + cst_end_line = "end_line", + cst_start_column = "start_column", + cst_start_line = "start_line", + cst_filename = "filename", + cst_Runtime_ocaml_Runtime_Empt = "Runtime_ocaml.Runtime.EmptyError", + cst_Runtime_ocaml_Runtime_Asse = "Runtime_ocaml.Runtime.AssertionFailed", + cst_Runtime_ocaml_Runtime_Conf = "Runtime_ocaml.Runtime.ConflictError", + cst_Runtime_ocaml_Runtime_Unco = + "Runtime_ocaml.Runtime.UncomparableDurations", + cst_Runtime_ocaml_Runtime_Indi = + "Runtime_ocaml.Runtime.IndivisibleDurations", + cst_Runtime_ocaml_Runtime_Impo = "Runtime_ocaml.Runtime.ImpossibleDate", + cst_Runtime_ocaml_Runtime_NoVa = "Runtime_ocaml.Runtime.NoValueProvided"; + function yojson_of_source_position(param){ var - EmptyError=[248,cst_Runtime_ocaml_Runtime_Empt,caml_fresh_oo_id(0)], - AssertionFailed=[248,cst_Runtime_ocaml_Runtime_Asse,caml_fresh_oo_id(0)], - ConflictError=[248,cst_Runtime_ocaml_Runtime_Conf,caml_fresh_oo_id(0)], - UncomparableDurations= - [248,cst_Runtime_ocaml_Runtime_Unco,caml_fresh_oo_id(0)], - IndivisibleDurations= - [248,cst_Runtime_ocaml_Runtime_Indi,caml_fresh_oo_id(0)], - ImpossibleDate=[248,cst_Runtime_ocaml_Runtime_Impo,caml_fresh_oo_id(0)], - NoValueProvided=[248,cst_Runtime_ocaml_Runtime_NoVa,caml_fresh_oo_id(0)]; - function money_of_cents_string(cents){return caml_call1(Z[5],cents)} - function money_of_units_int(units){return caml_call2(Z[54],units,100)} - function money_of_cents_integer(cents){return cents} - function money_to_float(m){return caml_call1(Z[30],m) / 100.} - function money_of_decimal(d) - {var _cM_=caml_call1(Q[9],100),_cN_=caml_call2(Q[40],d,_cM_); - return caml_call1(Q[29],_cN_)} - function money_to_string(m) - {var - _cI_=caml_call1(Q[9],100), - _cJ_=caml_call1(Q[8],m), - _cK_=caml_call2(Q[55],_cJ_,_cI_), - _cL_=caml_call1(Q[35],_cK_); - return caml_call2(Stdlib_Format[133],_a_,_cL_)} - function money_to_cents(m){return m} - function money_round(m) - {var match=runtime.ml_z_div_rem(m,100),cents=match[2],units=match[1]; - if(runtime.caml_lessthan(caml_call1(Z[10],cents),50)) - return caml_call2(Z[54],units,100); - var _cG_=runtime.ml_z_sign(units),_cH_=caml_call2(Z[52],units,_cG_); - return caml_call2(Z[54],_cH_,100)} - function decimal_of_string(d){return caml_call1(Q[15],d)} - function decimal_to_float(d){return caml_call1(Q[35],d)} - function decimal_of_float(d){return caml_call1(Q[14],d)} - function decimal_of_integer(d){return caml_call1(Q[8],d)} - function decimal_to_string(max_prec_digits,i) - {var - sign=caml_call1(Q[20],i), - _ct_=caml_call1(Q[16],i), - n=caml_call1(Z[10],_ct_), - _cu_=caml_call1(Q[17],i), - d=caml_call1(Z[10],_cu_), - int_part=caml_call2(Z[18],n,d), - n$0=[0,caml_call2(Z[19],n,d)], - digits=[0,0]; - function leading_zeroes(digits) - {function _cF_(digit,num_leading_zeroes) - {if(3455931 <= num_leading_zeroes[1])return num_leading_zeroes; - var i=num_leading_zeroes[2]; - return caml_equal(digit,Z[2]) - ?[0,-1014801911,i + 1 | 0] - :[0,3455931,i]} - var match=caml_call3(Stdlib_List[26],_cF_,digits,_b_); - if(3455931 <= match[1]){var i=match[2];return i} - var i$0=match[2]; - return i$0} - for(;;) - {if(runtime.caml_notequal(n$0[1],Z[2])) - {var _cv_=leading_zeroes(digits[1]); - if - ((caml_call1(Stdlib_List[1],digits[1]) - _cv_ | 0) - < - max_prec_digits) - {n$0[1] = caml_call2(Z[14],n$0[1],10); - var _cw_=digits[1]; - digits[1] = [0,caml_call2(Z[18],n$0[1],d),_cw_]; - n$0[1] = caml_call2(Z[19],n$0[1],d); - continue}} + v_law_headings = param[6], + v_end_column = param[5], + v_end_line = param[4], + v_start_column = param[3], + v_start_line = param[2], + v_filename = param[1], + arg = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v_law_headings), + bnds = [0, [0, cst_law_headings, arg], 0], + arg$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_column), + bnds$0 = [0, [0, cst_end_column, arg$0], bnds], + arg$1 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_end_line), + bnds$1 = [0, [0, cst_end_line, arg$1], bnds$0], + arg$2 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_column), + bnds$2 = [0, [0, cst_start_column, arg$2], bnds$1], + arg$3 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][6], v_start_line), + bnds$3 = [0, [0, cst_start_line, arg$3], bnds$2], + arg$4 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v_filename), + bnds$4 = [0, [0, cst_filename, arg$4], bnds$3]; + return [0, 963043957, bnds$4]; + } + var + EmptyError = [248, cst_Runtime_ocaml_Runtime_Empt, caml_fresh_oo_id(0)], + AssertionFailed = + [248, cst_Runtime_ocaml_Runtime_Asse, caml_fresh_oo_id(0)], + ConflictError = [248, cst_Runtime_ocaml_Runtime_Conf, caml_fresh_oo_id(0)], + UncomparableDurations = + [248, cst_Runtime_ocaml_Runtime_Unco, caml_fresh_oo_id(0)], + IndivisibleDurations = + [248, cst_Runtime_ocaml_Runtime_Indi, caml_fresh_oo_id(0)], + ImpossibleDate = + [248, cst_Runtime_ocaml_Runtime_Impo, caml_fresh_oo_id(0)], + NoValueProvided = + [248, cst_Runtime_ocaml_Runtime_NoVa, caml_fresh_oo_id(0)]; + function money_of_cents_string(cents){return caml_call1(Z[5], cents);} + function money_of_units_int(units){return caml_call2(Z[54], units, 100);} + function money_of_cents_integer(cents){return cents;} + function money_to_float(m){return caml_call1(Z[30], m) / 100.;} + function money_of_decimal(d){ + var _cG_ = caml_call1(Q[9], 100), _cH_ = caml_call2(Q[40], d, _cG_); + return caml_call1(Q[29], _cH_); + } + function money_to_string(m){ + var + _cC_ = caml_call1(Q[9], 100), + _cD_ = caml_call1(Q[8], m), + _cE_ = caml_call2(Q[55], _cD_, _cC_), + _cF_ = caml_call1(Q[35], _cE_); + return caml_call2(Stdlib_Format[133], _a_, _cF_); + } + function money_to_cents(m){return m;} + function money_round(m){ + var + match = runtime.ml_z_div_rem(m, 100), + cents = match[2], + units = match[1]; + if(runtime.caml_lessthan(caml_call1(Z[10], cents), 50)) + return caml_call2(Z[54], units, 100); + var + _cA_ = runtime.ml_z_sign(units), + _cB_ = caml_call2(Z[52], units, _cA_); + return caml_call2(Z[54], _cB_, 100); + } + function decimal_of_string(d){return caml_call1(Q[15], d);} + function decimal_to_float(d){return caml_call1(Q[35], d);} + function decimal_of_float(d){return caml_call1(Q[14], d);} + function decimal_of_integer(d){return caml_call1(Q[8], d);} + function decimal_to_string(max_prec_digits, i){ + var + sign = caml_call1(Q[20], i), + _cn_ = caml_call1(Q[16], i), + n = caml_call1(Z[10], _cn_), + _co_ = caml_call1(Q[17], i), + d = caml_call1(Z[10], _co_), + int_part = caml_call2(Z[18], n, d), + n$0 = [0, caml_call2(Z[19], n, d)], + digits = [0, 0]; + function leading_zeroes(digits){ + function _cz_(digit, num_leading_zeroes){ + if(3455931 <= num_leading_zeroes[1]) return num_leading_zeroes; + var i = num_leading_zeroes[2]; + return caml_equal(digit, Z[2]) + ? [0, -1014801911, i + 1 | 0] + : [0, 3455931, i]; + } + var match = caml_call3(Stdlib_List[26], _cz_, digits, _b_); + if(3455931 <= match[1]){var i = match[2]; return i;} + var i$0 = match[2]; + return i$0; + } + for(;;){ + if(runtime.caml_notequal(n$0[1], Z[2])){ + var _cp_ = leading_zeroes(digits[1]); + if((caml_call1(Stdlib_List[1], digits[1]) - _cp_ | 0) < max_prec_digits){ + n$0[1] = caml_call2(Z[14], n$0[1], 10); + var _cq_ = digits[1]; + digits[1] = [0, caml_call2(Z[18], n$0[1], d), _cq_]; + n$0[1] = caml_call2(Z[19], n$0[1], d); + continue; + } + } + var + _cr_ = leading_zeroes(digits[1]), + _cs_ = + (caml_call1(Stdlib_List[1], digits[1]) - _cr_ | 0) === max_prec_digits + ? cst + : cst$2, + _ct_ = caml_call1(Stdlib_List[9], digits[1]), + _cu_ = + function(fmt, digit){ + return caml_call4(Stdlib_Format[129], fmt, _c_, Z[36], digit); + }, + _cv_ = [0, function(fmt, param){return 0;}], + _cw_ = caml_call2(Stdlib_Format[123], _cv_, _cu_), + _cx_ = Z[36], + _cy_ = 0 <= sign ? cst$0 : cst$1; + return caml_call7 + (Stdlib_Format[133], _d_, _cy_, _cx_, int_part, _cw_, _ct_, _cs_); + } + } + function decimal_round(q){ + var + n = caml_call1(Q[16], q), + d = caml_call1(Q[17], q), + _ck_ = caml_call2(Z[54], 2, d), + _cl_ = caml_call2(Z[54], 2, n), + _cm_ = runtime.ml_z_fdiv(caml_call2(Z[52], _cl_, d), _ck_); + return caml_call1(Q[8], _cm_); + } + function decimal_of_money(m){ + var _ci_ = caml_call1(Q[9], 100), _cj_ = caml_call1(Q[8], m); + return caml_call2(Q[42], _cj_, _ci_); + } + function integer_of_string(s){return caml_call1(Z[5], s);} + function integer_to_string(i){return caml_call1(Z[31], i);} + function integer_to_int(i){return caml_call1(Z[29], i);} + function integer_of_int(i){return i;} + function integer_exponentiation(i, e){return runtime.ml_z_pow(i, e);} + var integer_log2 = Z[47]; + function year_of_date(d){ + var y = caml_call1(Dates_calc_Dates[7], d)[1]; + return y; + } + function month_number_of_date(d){ + var m = caml_call1(Dates_calc_Dates[7], d)[2]; + return m; + } + function is_leap_year(y){ + var y$0 = caml_call1(Z[29], y); + return caml_call1(Dates_calc_Dates[11], y$0); + } + function day_of_month_of_date(d){ + var d$0 = caml_call1(Dates_calc_Dates[7], d)[3]; + return d$0; + } + function date_of_numbers(year, month, day){ + try{ + var _cg_ = caml_call3(Dates_calc_Dates[3], year, month, day); + return _cg_; + } + catch(_ch_){throw caml_maybe_attach_backtrace(ImpossibleDate, 1);} + } + function date_to_string(d){ + return caml_call3(Stdlib_Format[133], _e_, Dates_calc_Dates[8], d); + } + var + first_day_of_month = Dates_calc_Dates[9], + last_day_of_month = Dates_calc_Dates[10]; + function duration_of_numbers(year, month, day){ + return caml_call3(Dates_calc_Dates[12], year, month, day); + } + function duration_to_string(d){ + return caml_call3(Stdlib_Format[133], _f_, Dates_calc_Dates[17], d); + } + function duration_to_years_months_days(d){ + return caml_call1(Dates_calc_Dates[19], d); + } + function yojson_of_runtime_value(param){ + if(typeof param === "number") return 0 === param ? _g_ : _h_; + switch(param[0]){ + case 0: + var + v0$4 = param[1], + v0$5 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2], v0$4); + return [0, 848054398, [0, _i_, [0, v0$5, 0]]]; + case 1: + var v0$6 = param[1], v0 = [0, 365180284, money_to_float(v0$6)]; + return [0, 848054398, [0, _j_, [0, v0, 0]]]; + case 2: + var v0$7 = param[1], v0$0 = [0, 3654863, integer_to_int(v0$7)]; + return [0, 848054398, [0, _k_, [0, v0$0, 0]]]; + case 3: + var v0$8 = param[1], v0$1 = [0, 365180284, decimal_to_float(v0$8)]; + return [0, 848054398, [0, _l_, [0, v0$1, 0]]]; + case 4: + var v0$9 = param[1], v0$2 = [0, -976970511, date_to_string(v0$9)]; + return [0, 848054398, [0, _m_, [0, v0$2, 0]]]; + case 5: + var + v0$10 = param[1], + v0$3 = [0, -976970511, duration_to_string(v0$10)]; + return [0, 848054398, [0, _n_, [0, v0$3, 0]]]; + case 6: + var + v1 = param[2], + v0$11 = param[1], + v0$12 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v0$11), + v1$0 = v1[2], + v0$13 = v1[1], + v0$14 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0$13), + v1$1 = yojson_of_runtime_value(v1$0), + v1$2 = [0, 848054398, [0, v0$14, [0, v1$1, 0]]]; + return [0, 848054398, [0, _o_, [0, v0$12, [0, v1$2, 0]]]]; + case 7: + var + v1$3 = param[2], + v0$15 = param[1], + v0$16 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v0$15), + _cf_ = + function(param){ + var + v1 = param[2], + v0 = param[1], + v0$0 = caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3], v0), + v1$0 = yojson_of_runtime_value(v1); + return [0, 848054398, [0, v0$0, [0, v1$0, 0]]]; + }, + v1$4 = caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14], _cf_, v1$3); + return [0, 848054398, [0, _p_, [0, v0$16, [0, v1$4, 0]]]]; + default: + var + v0$17 = param[1], + v0$18 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][15], + yojson_of_runtime_value, + v0$17); + return [0, 848054398, [0, _q_, [0, v0$18, 0]]]; + } + } + function unembeddable(param){return 1;} + function embed_unit(param){return 0;} + function embed_bool(x){return [0, x];} + function embed_money(x){return [1, x];} + function embed_integer(x){return [2, x];} + function embed_decimal(x){return [3, x];} + function embed_date(x){return [4, x];} + function embed_duration(x){return [5, x];} + function embed_array(f, x){return [8, caml_call2(Stdlib_Array[15], f, x)];} + function yojson_of_information(v){ + return caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + Ppx_yojson_conv_lib_Yojson_con[45][3], + v); + } + function yojson_of_event(param){ + switch(param[0]){ + case 0: + var v0 = param[1], v0$0 = yojson_of_var_def(v0); + return [0, 848054398, [0, _r_, [0, v0$0, 0]]]; + case 1: + var v0$1 = param[1], v0$2 = yojson_of_fun_call(v0$1); + return [0, 848054398, [0, _s_, [0, v0$2, 0]]]; + default: + var + v_body = param[3], + v_inputs = param[2], + v_name = param[1], + arg = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), + bnds = [0, [0, cst_body, arg], 0], + arg$0 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_inputs), + bnds$0 = [0, [0, cst_inputs, arg$0], bnds], + arg$1 = yojson_of_information(v_name), + bnds$1 = [0, [0, cst_name, arg$1], bnds$0]; + return [0, 848054398, [0, _t_, [0, [0, 963043957, bnds$1], 0]]]; + } + } + function yojson_of_var_def(param){ + var + v_fun_calls = param[4], + v_value = param[3], + v_name = param[2], + v_pos = param[1], + _ce_ = + caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_fun_call), + arg = + caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13], _ce_, v_fun_calls), + bnds = [0, [0, cst_fun_calls, arg], 0], + arg$0 = yojson_of_runtime_value(v_value), + bnds$0 = [0, [0, cst_value, arg$0], bnds], + arg$1 = yojson_of_information(v_name), + bnds$1 = [0, [0, cst_name$0, arg$1], bnds$0], + arg$2 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][13], + yojson_of_source_position, + v_pos), + bnds$2 = [0, [0, cst_pos, arg$2], bnds$1]; + return [0, 963043957, bnds$2]; + } + function yojson_of_fun_call(param){ + var + v_output = param[4], + v_body = param[3], + v_fun_inputs = param[2], + v_fun_name = param[1], + arg = yojson_of_var_def(v_output), + bnds = [0, [0, cst_output, arg], 0], + arg$0 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], yojson_of_event, v_body), + bnds$0 = [0, [0, cst_body$0, arg$0], bnds], + arg$1 = + caml_call2 + (Ppx_yojson_conv_lib_Yojson_con[45][14], + yojson_of_var_def, + v_fun_inputs), + bnds$1 = [0, [0, cst_fun_inputs, arg$1], bnds$0], + arg$2 = yojson_of_information(v_fun_name), + bnds$2 = [0, [0, cst_fun_name, arg$2], bnds$1]; + return [0, 963043957, bnds$2]; + } + var log_ref = [0, 0]; + function reset_log(param){log_ref[1] = 0; return 0;} + function retrieve_log(param){ + return caml_call1(Stdlib_List[9], log_ref[1]); + } + function log_begin_call(info, f){ + log_ref[1] = [0, [0, info], log_ref[1]]; + return f; + } + function log_end_call(info, x){ + log_ref[1] = [0, [1, info], log_ref[1]]; + return x; + } + function log_variable_definition(info, embed, x){ + var _cd_ = log_ref[1]; + log_ref[1] = [0, [2, info, caml_call1(embed, x)], _cd_]; + return x; + } + function log_decision_taken(pos, x){ + if(x) log_ref[1] = [0, [3, pos], log_ref[1]]; + return x; + } + function pp_events(opt, ppf, events){ + if(opt) var sth = opt[1], is_first_call = sth; else var is_first_call = 1; + function format_var_def(ppf, var$0){ + var + _cb_ = var$0[3], + _cc_ = caml_call2(Stdlib_String[6], cst$3, var$0[2]); + return caml_call7 + (Stdlib_Format[129], + ppf, + _u_, + format_pos_opt, + var$0[1], + _cc_, + format_value, + _cb_); + } + function format_pos_opt(ppf, param){ + if(! param) return caml_call2(Stdlib_Format[129], ppf, _w_); + var pos = param[1]; + return caml_call5(Stdlib_Format[129], ppf, _v_, pos[1], pos[2], pos[4]); + } + function format_var_defs(ppf){ + var + _ca_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _x_); + }]; + return caml_call3(Stdlib_Format[123], _ca_, format_var_def, ppf); + } + function format_var_def_with_fun_calls(ppf, var_with_fun){ + var _b6_ = var_with_fun[4]; + if(_b6_){ + var fun_calls = _b6_[1]; + if(fun_calls){ + var + _b7_ = + function(ppf, fun_call){return format_event(ppf, [1, fun_call]);}, + _b8_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _y_); + }], + _b9_ = caml_call2(Stdlib_Format[123], _b8_, _b7_), + _b__ = var_with_fun[3], + _b$_ = caml_call2(Stdlib_String[6], cst$4, var_with_fun[2]); + return caml_call7 + (Stdlib_Format[129], + ppf, + _z_, + _b$_, + format_value, + _b__, + _b9_, + fun_calls); + } + } + return format_var_def(ppf, var_with_fun); + } + function format_value(ppf, param){ + if(typeof param === "number") + return 0 === param + ? caml_call2(Stdlib_Format[129], ppf, _A_) + : caml_call2(Stdlib_Format[129], ppf, _B_); + switch(param[0]){ + case 0: + var x = param[1]; return caml_call3(Stdlib_Format[129], ppf, _C_, x); + case 1: + var x$0 = param[1], _bU_ = money_to_string(x$0); + return caml_call3(Stdlib_Format[129], ppf, _D_, _bU_); + case 2: + var x$1 = param[1], _bV_ = integer_to_int(x$1); + return caml_call3(Stdlib_Format[129], ppf, _E_, _bV_); + case 3: + var x$2 = param[1], _bW_ = decimal_to_string(10, x$2); + return caml_call3(Stdlib_Format[129], ppf, _F_, _bW_); + case 4: + var x$3 = param[1], _bX_ = date_to_string(x$3); + return caml_call3(Stdlib_Format[129], ppf, _G_, _bX_); + case 5: + var x$4 = param[1], _bY_ = duration_to_string(x$4); + return caml_call3(Stdlib_Format[129], ppf, _H_, _bY_); + case 6: + var name = param[2][1]; + return caml_call3(Stdlib_Format[129], ppf, _I_, name); + case 7: var - _cx_=leading_zeroes(digits[1]), - _cy_= - (caml_call1(Stdlib_List[1],digits[1]) - _cx_ | 0) - === - max_prec_digits - ?cst - :cst$2, - _cz_=caml_call1(Stdlib_List[9],digits[1]), - _cA_= - function(fmt,digit) - {return caml_call4(Stdlib_Format[129],fmt,_c_,Z[36],digit)}, - _cB_=[0,function(fmt,param){return 0}], - _cC_=caml_call2(Stdlib_Format[123],_cB_,_cA_), - _cD_=Z[36], - _cE_=0 <= sign?cst$0:cst$1; - return caml_call7 - (Stdlib_Format[133],_d_,_cE_,_cD_,int_part,_cC_,_cz_,_cy_)}} - function decimal_round(q) - {var - n=caml_call1(Q[16],q), - d=caml_call1(Q[17],q), - _cq_=caml_call2(Z[54],2,d), - _cr_=caml_call2(Z[54],2,n), - _cs_=runtime.ml_z_fdiv(caml_call2(Z[52],_cr_,d),_cq_); - return caml_call1(Q[8],_cs_)} - function decimal_of_money(m) - {var _co_=caml_call1(Q[9],100),_cp_=caml_call1(Q[8],m); - return caml_call2(Q[42],_cp_,_co_)} - function integer_of_string(s){return caml_call1(Z[5],s)} - function integer_to_string(i){return caml_call1(Z[31],i)} - function integer_to_int(i){return caml_call1(Z[29],i)} - function integer_of_int(i){return i} - function integer_exponentiation(i,e){return runtime.ml_z_pow(i,e)} - var integer_log2=Z[47]; - function year_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),y=match[1];return y} - function month_number_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),m=match[2];return m} - function is_leap_year(y) - {var y$0=caml_call1(Z[29],y);return caml_call1(Dates_calc_Dates[11],y$0)} - function day_of_month_of_date(d) - {var match=caml_call1(Dates_calc_Dates[7],d),d$0=match[3];return d$0} - function date_of_numbers(year,month,day) - {try - {var _cm_=caml_call3(Dates_calc_Dates[3],year,month,day);return _cm_} - catch(_cn_){throw ImpossibleDate}} - function date_to_string(d) - {return caml_call3(Stdlib_Format[133],_e_,Dates_calc_Dates[8],d)} - var - first_day_of_month=Dates_calc_Dates[9], - last_day_of_month=Dates_calc_Dates[10]; - function duration_of_numbers(year,month,day) - {return caml_call3(Dates_calc_Dates[12],year,month,day)} - function duration_to_string(d) - {return caml_call3(Stdlib_Format[133],_f_,Dates_calc_Dates[17],d)} - function duration_to_years_months_days(d) - {return caml_call1(Dates_calc_Dates[19],d)} - function yojson_of_runtime_value(param) - {if(typeof param === "number")return 0 === param?_g_:_h_; - switch(param[0]) - {case 0: - var - v0$4=param[1], - v0$5=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][2],v0$4); - return [0,848054398,[0,_i_,[0,v0$5,0]]]; - case 1: - var v0$6=param[1],v0=[0,365180284,money_to_float(v0$6)]; - return [0,848054398,[0,_j_,[0,v0,0]]]; - case 2: - var v0$7=param[1],v0$0=[0,3654863,integer_to_int(v0$7)]; - return [0,848054398,[0,_k_,[0,v0$0,0]]]; - case 3: - var v0$8=param[1],v0$1=[0,365180284,decimal_to_float(v0$8)]; - return [0,848054398,[0,_l_,[0,v0$1,0]]]; - case 4: - var v0$9=param[1],v0$2=[0,-976970511,date_to_string(v0$9)]; - return [0,848054398,[0,_m_,[0,v0$2,0]]]; - case 5: - var v0$10=param[1],v0$3=[0,-976970511,duration_to_string(v0$10)]; - return [0,848054398,[0,_n_,[0,v0$3,0]]]; - case 6: - var - v1=param[2], - v0$11=param[1], - v0$12= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$11), - v1$0=v1[2], - v0$13=v1[1], - v0$14=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0$13), - v1$1=yojson_of_runtime_value(v1$0), - v1$2=[0,848054398,[0,v0$14,[0,v1$1,0]]]; - return [0,848054398,[0,_o_,[0,v0$12,[0,v1$2,0]]]]; - case 7: - var - v1$3=param[2], - v0$15=param[1], - v0$16= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v0$15), - _cl_= - function(param) - {var - v1=param[2], - v0=param[1], - v0$0=caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][3],v0), - v1$0=yojson_of_runtime_value(v1); - return [0,848054398,[0,v0$0,[0,v1$0,0]]]}, - v1$4=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][14],_cl_,v1$3); - return [0,848054398,[0,_p_,[0,v0$16,[0,v1$4,0]]]]; - default: - var - v0$17=param[1], - v0$18= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][15], - yojson_of_runtime_value, - v0$17); - return [0,848054398,[0,_q_,[0,v0$18,0]]]}} - function unembeddable(param){return 1} - function embed_unit(param){return 0} - function embed_bool(x){return [0,x]} - function embed_money(x){return [1,x]} - function embed_integer(x){return [2,x]} - function embed_decimal(x){return [3,x]} - function embed_date(x){return [4,x]} - function embed_duration(x){return [5,x]} - function embed_array(f,x){return [8,caml_call2(Stdlib_Array[15],f,x)]} - function yojson_of_information(v) - {return caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - Ppx_yojson_conv_lib_Yojson_con[45][3], - v)} - function yojson_of_event(param) - {switch(param[0]) - {case 0: - var v0=param[1],v0$0=yojson_of_var_def(v0); - return [0,848054398,[0,_r_,[0,v0$0,0]]]; - case 1: - var v0$1=param[1],v0$2=yojson_of_fun_call(v0$1); - return [0,848054398,[0,_s_,[0,v0$2,0]]]; - default: - var - v_body=param[3], - v_inputs=param[2], - v_name=param[1], - arg= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), - bnds=[0,[0,cst_body,arg],0], - arg$0= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_inputs), - bnds$0=[0,[0,cst_inputs,arg$0],bnds], - arg$1=yojson_of_information(v_name), - bnds$1=[0,[0,cst_name,arg$1],bnds$0]; - return [0,848054398,[0,_t_,[0,[0,963043957,bnds$1],0]]]}} - function yojson_of_var_def(param) - {var - v_fun_calls=param[4], - v_value=param[3], - v_name=param[2], - v_pos=param[1], - _ck_= - caml_call1(Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_fun_call), - arg=caml_call2(Ppx_yojson_conv_lib_Yojson_con[45][13],_ck_,v_fun_calls), - bnds=[0,[0,cst_fun_calls,arg],0], - arg$0=yojson_of_runtime_value(v_value), - bnds$0=[0,[0,cst_value,arg$0],bnds], - arg$1=yojson_of_information(v_name), - bnds$1=[0,[0,cst_name$0,arg$1],bnds$0], - arg$2= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][13], - yojson_of_source_position, - v_pos), - bnds$2=[0,[0,cst_pos,arg$2],bnds$1]; - return [0,963043957,bnds$2]} - function yojson_of_fun_call(param) - {var - v_output=param[4], - v_body=param[3], - v_fun_inputs=param[2], - v_fun_name=param[1], - arg=yojson_of_var_def(v_output), - bnds=[0,[0,cst_output,arg],0], - arg$0= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14],yojson_of_event,v_body), - bnds$0=[0,[0,cst_body$0,arg$0],bnds], - arg$1= - caml_call2 - (Ppx_yojson_conv_lib_Yojson_con[45][14], - yojson_of_var_def, - v_fun_inputs), - bnds$1=[0,[0,cst_fun_inputs,arg$1],bnds$0], - arg$2=yojson_of_information(v_fun_name), - bnds$2=[0,[0,cst_fun_name,arg$2],bnds$1]; - return [0,963043957,bnds$2]} - var log_ref=[0,0]; - function reset_log(param){log_ref[1] = 0;return 0} - function retrieve_log(param){return caml_call1(Stdlib_List[9],log_ref[1])} - function log_begin_call(info,f) - {log_ref[1] = [0,[0,info],log_ref[1]];return f} - function log_end_call(info,x) - {log_ref[1] = [0,[1,info],log_ref[1]];return x} - function log_variable_definition(info,embed,x) - {var _cj_=log_ref[1]; - log_ref[1] = [0,[2,info,caml_call1(embed,x)],_cj_]; - return x} - function log_decision_taken(pos,x) - {if(x)log_ref[1] = [0,[3,pos],log_ref[1]];return x} - function pp_events(opt,ppf,events) - {if(opt)var sth=opt[1],is_first_call=sth;else var is_first_call=1; - function format_var_def(ppf,var$0) - {var _ch_=var$0[3],_ci_=caml_call2(Stdlib_String[6],cst$3,var$0[2]); + attrs = param[2], + name$0 = param[1], + _bZ_ = + function(fmt, param){ + var value = param[2], name = param[1]; + return caml_call5 + (Stdlib_Format[129], fmt, _J_, name, format_value, value); + }, + _b0_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _K_); + }], + _b1_ = caml_call2(Stdlib_Format[123], _b0_, _bZ_), + _b2_ = caml_call2(Stdlib_String[6], cst$5, name$0); + return caml_call5(Stdlib_Format[129], ppf, _L_, _b2_, _b1_, attrs); + default: + var + elts = param[1], + _b3_ = caml_call1(Stdlib_Array[11], elts), + _b4_ = + [0, + function(ppf, param){ + return caml_call2(Stdlib_Format[129], ppf, _M_); + }], + _b5_ = caml_call2(Stdlib_Format[123], _b4_, format_value); + return caml_call4(Stdlib_Format[129], ppf, _N_, _b5_, _b3_); + } + } + function format_event(ppf, param){ + switch(param[0]){ + case 0: + var var_def_with_fun = param[1]; + return caml_call1(Stdlib_Option[11], var_def_with_fun[4]) + ? caml_call4 + (Stdlib_Format[129], + ppf, + _O_, + format_var_def_with_fun_calls, + var_def_with_fun) + : caml_call4 + (Stdlib_Format[129], + ppf, + _P_, + format_var_def, + var_def_with_fun); + case 1: + var + match = param[1], + output = match[4], + body = match[3], + fun_inputs = match[2], + fun_name = match[1], + _bK_ = function(_bQ_, _bR_){return pp_events(_Q_, _bQ_, _bR_);}, + _bL_ = + [0, + function(fmt, param){ + return caml_call2(Stdlib_Format[13], fmt, cst$6); + }], + _bM_ = caml_call2(Stdlib_Format[123], _bL_, format_var_def), + _bN_ = caml_call2(Stdlib_String[6], cst$7, fun_name); + return caml_call9 + (Stdlib_Format[129], + ppf, + _R_, + _bN_, + _bM_, + fun_inputs, + format_var_def_with_fun_calls, + output, + _bK_, + body); + default: + var + body$0 = param[3], + inputs = param[2], + name = param[1], + _bO_ = function(_bS_, _bT_){return pp_events(_S_, _bS_, _bT_);}, + _bP_ = caml_call2(Stdlib_String[6], cst$8, name); return caml_call7 (Stdlib_Format[129], ppf, - _u_, - format_pos_opt, - var$0[1], - _ci_, - format_value, - _ch_)} - function format_pos_opt(ppf,param) - {if(! param)return caml_call2(Stdlib_Format[129],ppf,_w_); - var pos=param[1]; - return caml_call5(Stdlib_Format[129],ppf,_v_,pos[1],pos[2],pos[4])} - function format_var_defs(ppf) - {var - _cg_= - [0, - function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_x_)}]; - return caml_call3(Stdlib_Format[123],_cg_,format_var_def,ppf)} - function format_var_def_with_fun_calls(ppf,var_with_fun) - {var _b$_=var_with_fun[4]; - if(_b$_) - {var _ca_=_b$_[1]; - if(_ca_) - {var - _cb_= - function(ppf,fun_call){return format_event(ppf,[1,fun_call])}, - _cc_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_y_)}], - _cd_=caml_call2(Stdlib_Format[123],_cc_,_cb_), - _ce_=var_with_fun[3], - _cf_=caml_call2(Stdlib_String[6],cst$4,var_with_fun[2]); - return caml_call7 - (Stdlib_Format[129], - ppf, - _z_, - _cf_, - format_value, - _ce_, - _cd_, - _ca_)}} - return format_var_def(ppf,var_with_fun)} - function format_value(ppf,param) - {if(typeof param === "number") - return 0 === param - ?caml_call2(Stdlib_Format[129],ppf,_A_) - :caml_call2(Stdlib_Format[129],ppf,_B_); - switch(param[0]) - {case 0: - var x=param[1];return caml_call3(Stdlib_Format[129],ppf,_C_,x); - case 1: - var x$0=param[1],_bZ_=money_to_string(x$0); - return caml_call3(Stdlib_Format[129],ppf,_D_,_bZ_); - case 2: - var x$1=param[1],_b0_=integer_to_int(x$1); - return caml_call3(Stdlib_Format[129],ppf,_E_,_b0_); - case 3: - var x$2=param[1],_b1_=decimal_to_string(10,x$2); - return caml_call3(Stdlib_Format[129],ppf,_F_,_b1_); - case 4: - var x$3=param[1],_b2_=date_to_string(x$3); - return caml_call3(Stdlib_Format[129],ppf,_G_,_b2_); - case 5: - var x$4=param[1],_b3_=duration_to_string(x$4); - return caml_call3(Stdlib_Format[129],ppf,_H_,_b3_); - case 6: - var match=param[2],name=match[1]; - return caml_call3(Stdlib_Format[129],ppf,_I_,name); - case 7: - var - attrs=param[2], - name$0=param[1], - _b4_= - function(fmt,param) - {var value=param[2],name=param[1]; - return caml_call5 - (Stdlib_Format[129],fmt,_J_,name,format_value,value)}, - _b5_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_K_)}], - _b6_=caml_call2(Stdlib_Format[123],_b5_,_b4_), - _b7_=caml_call2(Stdlib_String[6],cst$5,name$0); - return caml_call5(Stdlib_Format[129],ppf,_L_,_b7_,_b6_,attrs); - default: - var - elts=param[1], - _b8_=caml_call1(Stdlib_Array[11],elts), - _b9_= - [0, - function(ppf,param) - {return caml_call2(Stdlib_Format[129],ppf,_M_)}], - _b__=caml_call2(Stdlib_Format[123],_b9_,format_value); - return caml_call4(Stdlib_Format[129],ppf,_N_,_b__,_b8_)}} - function format_event(ppf,param) - {switch(param[0]) - {case 0: - var var_def_with_fun=param[1]; - return caml_call1(Stdlib_Option[11],var_def_with_fun[4]) - ?caml_call4 - (Stdlib_Format[129], - ppf, - _O_, - format_var_def_with_fun_calls, - var_def_with_fun) - :caml_call4 - (Stdlib_Format[129],ppf,_P_,format_var_def,var_def_with_fun); - case 1: - var - match=param[1], - output=match[4], - body=match[3], - fun_inputs=match[2], - fun_name=match[1], - _bP_=function(_bV_,_bW_){return pp_events(_Q_,_bV_,_bW_)}, - _bQ_= - [0, - function(fmt,param) - {return caml_call2(Stdlib_Format[13],fmt,cst$6)}], - _bR_=caml_call2(Stdlib_Format[123],_bQ_,format_var_def), - _bS_=caml_call2(Stdlib_String[6],cst$7,fun_name); - return caml_call9 - (Stdlib_Format[129], - ppf, - _R_, - _bS_, - _bR_, - fun_inputs, - format_var_def_with_fun_calls, - output, - _bP_, - body); - default: - var - body$0=param[3], - inputs=param[2], - name=param[1], - _bT_=function(_bX_,_bY_){return pp_events(_S_,_bX_,_bY_)}, - _bU_=caml_call2(Stdlib_String[6],cst$8,name); - return caml_call7 - (Stdlib_Format[129], - ppf, - _T_, - _bU_, - format_var_defs, - inputs, - _bT_, - body$0)}} - var - _bL_= - [0,function(ppf,param){return caml_call2(Stdlib_Format[129],ppf,_U_)}], - _bM_=caml_call2(Stdlib_Format[123],_bL_,format_event), - _bN_=is_first_call?_V_:_X_, - _bO_=caml_call2(Stdlib[98],_W_,_bN_); - return caml_call4(Stdlib_Format[129],ppf,_bO_,_bM_,events)} + _T_, + _bP_, + format_var_defs, + inputs, + _bO_, + body$0); + } + } var - StringMap=caml_call1(Stdlib_Map[1],[0,Stdlib_String[9]]), - empty=StringMap[1], - empty_ctx=[0,empty,0,0], - _Y_=0; - function raw_event_to_string(param) - {switch(param[0]) - {case 0: - var - name=param[1], - _bC_=caml_call2(Stdlib_String[6],cst$10,name), - _bD_=caml_call2(Stdlib[28],_bC_,cst$9), - _bE_=caml_call1(Stdlib_Printf[4],_Z_); - return caml_call2(Stdlib[28],_bE_,_bD_); + _bG_ = + [0, + function(ppf, param){return caml_call2(Stdlib_Format[129], ppf, _U_);}], + _bH_ = caml_call2(Stdlib_Format[123], _bG_, format_event), + _bI_ = is_first_call ? _V_ : _X_, + _bJ_ = caml_call2(Stdlib[98], _W_, _bI_); + return caml_call4(Stdlib_Format[129], ppf, _bJ_, _bH_, events); + } + var + StringMap = caml_call1(Stdlib_Map[1], [0, Stdlib_String[9]]), + empty = StringMap[1], + empty_ctx = [0, empty, 0, 0], + _Y_ = 0; + function raw_event_to_string(param){ + switch(param[0]){ + case 0: + var + name = param[1], + _bx_ = caml_call2(Stdlib_String[6], cst$10, name), + _by_ = caml_call2(Stdlib[28], _bx_, cst$9), + _bz_ = caml_call1(Stdlib_Printf[4], _Z_); + return caml_call2(Stdlib[28], _bz_, _by_); + case 1: + var + name$0 = param[1], + _bA_ = caml_call2(Stdlib_String[6], cst$12, name$0), + _bB_ = caml_call2(Stdlib[28], _bA_, cst$11), + _bC_ = caml_call1(Stdlib_Printf[4], ___); + return caml_call2(Stdlib[28], _bC_, _bB_); + case 2: + var + value = param[2], + name$1 = param[1], + _bD_ = yojson_of_runtime_value(value), + _bE_ = caml_call5(Yojson[11][5], 0, 0, 0, 0, _bD_), + _bF_ = caml_call2(Stdlib_String[6], cst$13, name$1); + return caml_call3(Stdlib_Printf[4], _$_, _bF_, _bE_); + default: + var pos = param[1]; + return caml_call6 + (Stdlib_Printf[4], + _aa_, + pos[1], + pos[2], + pos[3], + pos[4], + pos[5]); + } + } + function take_while(p, l){ + if(! l) return _ab_; + var t = l[2], h = l[1]; + if(! caml_call1(p, h)) return [0, 0, l]; + var match = take_while(p, t), rest = match[2], t$0 = match[1]; + return [0, [0, h, t$0], rest]; + } + function parse_raw_events(raw_events){ + var nb_raw_events = caml_call1(Stdlib_List[1], raw_events); + function is_function_call(infos){ + return 2 === caml_call1(Stdlib_List[1], infos) ? 1 : 0; + } + function is_var_def(name){ + return 2 === caml_call1(Stdlib_List[1], name) ? 1 : 0; + } + function parse_events(ctx){ + var ctx$0 = ctx; + a: + for(;;){ + var match$1 = ctx$0[3]; + if(! match$1){ + var _bu_ = ctx$0[3], _bv_ = caml_call1(Stdlib_List[9], ctx$0[2]); + return [0, ctx$0[1], _bv_, _bu_]; + } + var event = match$1[1]; + switch(event[0]){ + case 0: + var rest = match$1[2], infos = event[1]; + if(3 === caml_call1(Stdlib_List[1], infos)){ + if(infos){ + var _a6_ = infos[2]; + if(_a6_){ + var _a7_ = _a6_[2]; + if(_a7_ && ! _a7_[2]){ + var + var_name = _a6_[1], + body_ctx = parse_events([0, empty, _Y_, rest]), + map = ctx$0[1], + match$0 = caml_call2(StringMap[29], var_name, map); + if(match$0) + var ls$0 = match$0[1], inputs = ls$0; + else + var inputs = 0; + var + ctx$1 = + [0, + ctx$0[1], + [0, [2, infos, inputs, body_ctx[2]], ctx$0[2]], + body_ctx[3]], + ctx$0 = ctx$1; + continue; + } + } + } + return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_); + } + break; case 1: - var - name$0=param[1], - _bF_=caml_call2(Stdlib_String[6],cst$12,name$0), - _bG_=caml_call2(Stdlib[28],_bF_,cst$11), - _bH_=caml_call1(Stdlib_Printf[4],___); - return caml_call2(Stdlib[28],_bH_,_bG_); + var rest$0 = match$1[2], _a__ = caml_call1(Stdlib_List[9], ctx$0[2]); + return [0, ctx$0[1], _a__, rest$0]; case 2: - var - value=param[2], - name$1=param[1], - _bI_=yojson_of_runtime_value(value), - _bJ_=caml_call5(Yojson[11][5],0,0,0,0,_bI_), - _bK_=caml_call2(Stdlib_String[6],cst$13,name$1); - return caml_call3(Stdlib_Printf[4],_$_,_bK_,_bJ_); + var rest$1 = match$1[2], name = event[1]; + if(is_var_def(name)){ + var ctx$2 = [0, ctx$0[1], ctx$0[2], rest$1], ctx$0 = ctx$2; + continue; + } + if(rest$1){ + var match$2 = rest$1[1]; + if(0 === match$2[0]){ + var infos$0 = match$2[1]; + if(is_function_call(infos$0)){ + var + match$3 = parse_fun_call(ctx$0[3]), + fun_call = match$3[2], + rest$2 = match$3[1], + ctx$3 = [0, ctx$0[1], [0, [1, fun_call], ctx$0[2]], rest$2], + ctx$0 = ctx$3; + continue; + } + } + } + break; default: - var pos=param[1]; - return caml_call6 - (Stdlib_Printf[4],_aa_,pos[1],pos[2],pos[3],pos[4],pos[5])}} - function take_while(p,l) - {if(! l)return _ab_; - var t=l[2],h=l[1]; - if(! caml_call1(p,h))return [0,0,l]; - var match=take_while(p,t),rest=match[2],t$0=match[1]; - return [0,[0,h,t$0],rest]} - function parse_raw_events(raw_events) - {var nb_raw_events=caml_call1(Stdlib_List[1],raw_events); - function is_function_call(infos) - {return 2 === caml_call1(Stdlib_List[1],infos)?1:0} - function is_var_def(name) - {return 2 === caml_call1(Stdlib_List[1],name)?1:0} - function parse_events(ctx) - {var ctx$0=ctx; - a: - for(;;) - {var _a3_=ctx$0[3]; - if(! _a3_) - {var _bz_=ctx$0[3],_bA_=caml_call1(Stdlib_List[9],ctx$0[2]); - return [0,ctx$0[1],_bA_,_bz_]} - var _a4_=_a3_[1]; - switch(_a4_[0]) - {case 0: - var rest=_a3_[2],infos=_a4_[1]; - if(3 === caml_call1(Stdlib_List[1],infos)) - {if(infos) - {var _a5_=infos[2]; - if(_a5_) - {var _a6_=_a5_[2]; - if(_a6_ && ! _a6_[2]) - {var - var_name=_a5_[1], - body_ctx=parse_events([0,empty,_Y_,rest]), - match$0=caml_call2(StringMap[29],var_name,ctx$0[1]); - if(match$0) - var ls$0=match$0[1],inputs=ls$0; - else - var inputs=0; - var - ctx$1= - [0, - ctx$0[1], - [0,[2,infos,inputs,body_ctx[2]],ctx$0[2]], - body_ctx[3]], - ctx$0=ctx$1; - continue}}} - return caml_call1(Stdlib[2],cst_unreachable_due_to_the_is_)} - break; - case 1: - var rest$0=_a3_[2],_a9_=caml_call1(Stdlib_List[9],ctx$0[2]); - return [0,ctx$0[1],_a9_,rest$0]; - case 2: - var rest$1=_a3_[2],name=_a4_[1]; - if(is_var_def(name)) - {var ctx$2=[0,ctx$0[1],ctx$0[2],rest$1],ctx$0=ctx$2;continue} - if(rest$1) - {var _a__=rest$1[1]; - if(0 === _a__[0]) - {var infos$0=_a__[1]; - if(is_function_call(infos$0)) - {var - match$1=parse_fun_call(ctx$0[3]), - fun_call=match$1[2], - rest$2=match$1[1], - ctx$3=[0,ctx$0[1],[0,[1,fun_call],ctx$0[2]],rest$2], - ctx$0=ctx$3; - continue}}} - break; - default: - var _a$_=_a3_[2]; - if(_a$_) - {var _ba_=_a$_[1]; - if(2 === _ba_[0]) - {var - rest$3=_a$_[2], - value=_ba_[2], - name$0=_ba_[1], - pos=_a4_[1], - _a1_=2 === caml_call1(Stdlib_List[1],name$0)?1:0; - if(_a1_) - var - _a2_=caml_call2(Stdlib_List[7],name$0,1), - _bb_=caml_call2(Stdlib_String[14],_a2_,46); - else - var _bb_=_a1_; - if(_bb_) - {if(name$0) - {var _bc_=name$0[2]; - if(_bc_ && ! _bc_[2]) - {var - var_dot_subscope_var_name=_bc_[1], - _bd_= - caml_call2(Stdlib_String[16],46,var_dot_subscope_var_name), - name$1=caml_call2(Stdlib_List[7],_bd_,0), - _bf_=ctx$0[1], - v=[0,[0,pos],name$0,value,0], - _be_=ctx$0[2], - match=caml_call2(StringMap[29],name$1,_bf_); - if(match) - var - ls=match[1], - _bB_=caml_call3(StringMap[4],name$1,[0,v,ls],_bf_); - else - var _bB_=caml_call3(StringMap[4],name$1,[0,v,0],_bf_); - var ctx$4=[0,_bB_,_be_,rest$3],ctx$0=ctx$4; - continue}} - return caml_call1 - (Stdlib[2],cst_unreachable_due_to_the_is_$0)} - var switch$0=0; - if(is_var_def(name$0)) - switch$0 = 1; - else - {var - _aZ_=3 === caml_call1(Stdlib_List[1],name$0)?1:0, - _a0_= - _aZ_ - ?runtime.caml_string_equal - (cst_output$0,caml_call2(Stdlib_List[7],name$0,2)) - :_aZ_; - if(_a0_) - switch$0 = 1; - else - if(rest$3) - {var _bg_=rest$3[1]; - if(0 === _bg_[0]) - {var infos$1=_bg_[1]; - if(is_function_call(infos$1)) - {var - raw_events$0=caml_call1(Stdlib_List[6],ctx$0[3]), - fun_calls=0, - rest$4=raw_events$0; - for(;;) - {var - match$2= - take_while - (function(param){return 2 === param[0]?1:0},rest$4), - _bh_=match$2[2]; - if(_bh_) - {var _bi_=_bh_[1]; - if(0 === _bi_[0]) - {var infos$2=_bi_[1]; - if(is_function_call(infos$2)) - {var - match$3=parse_fun_call(rest$4), - fun_call$0=match$3[2], - raw_events=match$3[1], - fun_calls$0=[0,fun_call$0,fun_calls], - fun_calls=fun_calls$0, - rest$4=raw_events; - continue}}} - var fun_calls$1=caml_call1(Stdlib_List[9],fun_calls); - if(rest$4) - {var _bj_=rest$4[1]; - if(2 === _bj_[0]) - var - rest$6=rest$4[2], - value$0=_bj_[2], - name$2=_bj_[1], - var_comp=[0,[0,[0,pos],name$2,value$0,[0,fun_calls$1]]], - rest$5=rest$6; - else - var - _bk_= - (nb_raw_events - caml_call1(Stdlib_List[1],rest$4) | 0) - + - 1 - | - 0, - _bl_=caml_call1(Stdlib[33],_bk_), - _bm_=caml_call2(Stdlib[28],_bl_,cst$14), - _bn_=caml_call2(Stdlib[28],cst$15,_bm_), - _bo_=raw_event_to_string(_bj_), - _bp_=caml_call2(Stdlib[28],_bo_,_bn_), - _bq_= - caml_call2(Stdlib[28],cst_expected_variable_definiti,_bp_), - _br_=caml_call2(Stdlib_String[6],cst$16,infos$1), - _bs_=caml_call2(Stdlib[28],_br_,_bq_), - _bt_=caml_call2(Stdlib[28],cst_Invalid_function_call,_bs_), - _bu_=caml_call1(Stdlib[2],_bt_), - var_comp=_bu_[2], - rest$5=_bu_[1]} - else - var - _bv_=caml_call2(Stdlib_String[6],cst$17,infos$1), - _bw_= - caml_call2(Stdlib[28],_bv_,cst_expected_variable_definiti$0), - _bx_=caml_call2(Stdlib[28],cst_Invalid_function_call$0,_bw_), - _by_=caml_call1(Stdlib[2],_bx_), - var_comp$0=_by_[2], - rest$7=_by_[1], - var_comp=var_comp$0, - rest$5=rest$7; - var - ctx$6=[0,ctx$0[1],[0,var_comp,ctx$0[2]],rest$5], - ctx$0=ctx$6; - continue a}}}}} - if(switch$0) - {var - ctx$5= - [0, - ctx$0[1], - [0,[0,[0,[0,pos],name$0,value,0]],ctx$0[2]], - rest$3], - ctx$0=ctx$5; - continue}}}} - var - _a7_=raw_event_to_string(_a4_), - _a8_=caml_call2(Stdlib[28],cst_Unexpected_event,_a7_); - return caml_call1(Stdlib[2],_a8_)}} - function parse_fun_call(events) - {var - match= - take_while - (function(param) - {if(2 !== param[0])return 0; + var _a$_ = match$1[2]; + if(_a$_){ + var match$4 = _a$_[1]; + if(2 === match$4[0]){ + var + rest$3 = _a$_[2], + value = match$4[2], + name$0 = match$4[1], + pos = event[1], + _a4_ = 2 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0; + if(_a4_) + var + _a5_ = caml_call2(Stdlib_List[7], name$0, 1), + _ba_ = caml_call2(Stdlib_String[14], _a5_, 46); + else + var _ba_ = _a4_; + if(_ba_){ + if(name$0){ + var _bb_ = name$0[2]; + if(_bb_ && ! _bb_[2]){ var - name=param[1], - _aX_=3 === caml_call1(Stdlib_List[1],name)?1:0; - if(! _aX_)return _aX_; - var _aY_=caml_call2(Stdlib_List[7],name,2); - return caml_call2(Stdlib_String[10],cst_input,_aY_)}, - events), - _aT_=match[2]; - if(_aT_) - {var _aU_=_aT_[1]; - if(0 === _aU_[0]) - {var rest=_aT_[2],infos=_aU_[1],inputs=match[1]; - if(is_function_call(infos)) - {var - _aV_= - function(param) - {if(2 !== param[0])throw [0,Assert_failure,_ac_]; - var value=param[2],name=param[1]; - return [0,0,name,value,0]}, - fun_inputs=caml_call2(Stdlib_ListLabels[19],_aV_,inputs), - body_ctx=parse_events([0,empty,0,rest]), - body_rev=caml_call1(Stdlib_List[9],body_ctx[2]), - output=caml_call1(Stdlib_List[5],body_rev), - _aW_=caml_call1(Stdlib_List[6],body_rev), - body=caml_call1(Stdlib_List[9],_aW_), - rest$0=body_ctx[3]; - if(0 === output[0]) - var var_def=output[1],output$0=var_def; + var_dot_subscope_var_name = _bb_[1], + _bc_ = + caml_call2(Stdlib_String[16], 46, var_dot_subscope_var_name), + var_name$0 = caml_call2(Stdlib_List[7], _bc_, 0), + map$0 = ctx$0[1], + v = [0, [0, pos], name$0, value, 0], + _bd_ = ctx$0[2], + match = caml_call2(StringMap[29], var_name$0, map$0); + if(match) + var + ls = match[1], + _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, ls], map$0); else var - output$0= - caml_call1(Stdlib[2],cst_Missing_function_output_va); - return [0,rest$0,[0,infos,fun_inputs,body,output$0]]}}} - return caml_call1(Stdlib[2],cst_Invalid_start_of_function_)} - try - {var _aS_=parse_events([0,empty,_Y_,raw_events]),ctx=_aS_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Stdlib[7])throw exn; - var msg=exn[2]; - caml_call2(Stdlib_Printf[3],_ad_,msg); - var ctx=empty_ctx} - return ctx[2]} - function handle_default(pos,exceptions,just,cons) - {var _aO_=0; - function _aP_(acc,except) - {try - {var _aQ_=[0,caml_call1(except,0)],new_val=_aQ_} - catch(_aR_) - {_aR_ = caml_wrap_exception(_aR_); - if(_aR_ !== EmptyError)throw _aR_; - var new_val=0} - if(! acc)return new_val; - if(new_val)throw [0,ConflictError,pos]; - return acc} - var except=caml_call3(Stdlib_Array[17],_aP_,_aO_,exceptions); - if(except){var x=except[1];return x} - if(caml_call1(just,0))return caml_call1(cons,0); - throw EmptyError} - function handle_default_opt(pos,exceptions,just,cons) - {function _aN_(acc,except) - {if(0 === acc[0])return except; - if(0 === except[0])return acc; - throw [0,ConflictError,pos]} - var except=caml_call3(Stdlib_Array[17],_aN_,_ae_,exceptions); - if(0 !== except[0])return except; - if(0 === just[0])return _af_; - var b=just[1]; - return b?cons:_ag_} - function no_input(param){throw EmptyError} - function compare_periods(p1,p2) - {try - {var - p1_days=caml_call1(Dates_calc_Dates[18],p1), - p2_days=caml_call1(Dates_calc_Dates[18],p2), - _aL_=runtime.caml_int_compare(p1_days,p2_days); - return _aL_} - catch(_aM_) - {_aM_ = caml_wrap_exception(_aM_); - if(_aM_ === Dates_calc_Dates[2])throw UncomparableDurations; - throw _aM_}} - function equal_periods(p1,p2) - {try - {var - _aI_=caml_call2(Dates_calc_Dates[15],p1,p2), - _aJ_=0 === caml_call1(Dates_calc_Dates[18],_aI_)?1:0; - return _aJ_} - catch(_aK_) - {_aK_ = caml_wrap_exception(_aK_); - if(_aK_ === Dates_calc_Dates[2])throw UncomparableDurations; - throw _aK_}} - function o_not(_aH_){return 1 - _aH_} - function o_length(a){return a.length - 1} - function o_minus_int(i1){return caml_call2(Z[13],Z[2],i1)} - function o_minus_rat(i1){return caml_call2(Q[39],Q[2],i1)} - function o_minus_mon(m1){return caml_call2(Z[13],Z[2],m1)} - var o_minus_dur=Dates_calc_Dates[13]; - function o_and(_aF_,_aE_){var _aG_=_aF_?_aE_:_aF_;return _aG_} - function o_or(_aC_,_aB_){var _aD_=_aC_ || _aB_;return _aD_} - function o_xor(_aA_,_az_){return _aA_ !== _az_?1:0} - var o_eq=caml_equal,o_map=Stdlib_Array[15]; - function o_reduce(f,dft,a) - {var len=a.length - 1; - if(0 === len)return dft; - var r=[0,caml_check_bound(a,0)[1]],_aw_=len - 1 | 0,_av_=1; - if(_aw_ >= 1) - {var i=_av_; - for(;;) - {var _ax_=caml_check_bound(a,i)[1 + i]; - r[1] = caml_call2(f,r[1],_ax_); - var _ay_=i + 1 | 0; - if(_aw_ !== i){var i=_ay_;continue} - break}} - return r[1]} - var o_concat=Stdlib_Array[5]; - function o_filter(f,a) - {var - _at_=caml_call1(Stdlib_Array[11],a), - _au_=caml_call2(Stdlib_List[41],f,_at_); - return caml_call1(Stdlib_Array[12],_au_)} - function o_add_int_int(i1,i2){return caml_call2(Z[12],i1,i2)} - function o_add_rat_rat(i1,i2){return caml_call2(Q[38],i1,i2)} - function o_add_mon_mon(m1,m2){return caml_call2(Z[12],m1,m2)} - function o_add_dat_dur(r,da,du) - {return caml_call3(Dates_calc_Dates[4],[0,r],da,du)} - var o_add_dur_dur=Dates_calc_Dates[14]; - function o_sub_int_int(i1,i2){return caml_call2(Z[13],i1,i2)} - function o_sub_rat_rat(i1,i2){return caml_call2(Q[39],i1,i2)} - function o_sub_mon_mon(m1,m2){return caml_call2(Z[13],m1,m2)} - var o_sub_dat_dat=Dates_calc_Dates[5]; - function o_sub_dat_dur(dat,dur) - {var _as_=caml_call1(Dates_calc_Dates[13],dur); - return caml_call3(Dates_calc_Dates[4],0,dat,_as_)} - var o_sub_dur_dur=Dates_calc_Dates[15]; - function o_mult_int_int(i1,i2){return caml_call2(Z[14],i1,i2)} - function o_mult_rat_rat(i1,i2){return caml_call2(Q[40],i1,i2)} - function o_mult_mon_rat(i1,i2) - {var - i1_abs=caml_call1(Z[10],i1), - i2_abs=caml_call1(Q[37],i2), - _an_=caml_call1(Q[20],i2), - sign_int=runtime.caml_mul(runtime.ml_z_sign(i1),_an_), - _ao_=caml_call1(Q[8],i1_abs), - rat_result=caml_call2(Q[40],_ao_,i2_abs), - _ap_=caml_call1(Q[17],rat_result), - match=runtime.ml_z_div_rem(caml_call1(Q[16],rat_result),_ap_), - remainder=match[2], - res=match[1], - _aq_=caml_call1(Q[17],rat_result); - if(! runtime.caml_greaterequal(caml_call2(Z[54],2,remainder),_aq_)) - return caml_call2(Z[54],res,sign_int); - var _ar_=caml_call2(Z[12],res,1); - return caml_call2(Z[54],_ar_,sign_int)} - function o_mult_dur_int(d,m) - {var _am_=caml_call1(Z[29],m); - return caml_call2(Dates_calc_Dates[16],d,_am_)} - function o_div_int_int(i1,i2) - {if(caml_equal(Z[2],i2))throw Stdlib[13]; - var _ak_=caml_call1(Q[8],i2),_al_=caml_call1(Q[8],i1); - return caml_call2(Q[42],_al_,_ak_)} - function o_div_rat_rat(i1,i2) - {if(caml_equal(Q[2],i2))throw Stdlib[13];return caml_call2(Q[42],i1,i2)} - function o_div_mon_mon(m1,m2) - {if(caml_equal(Z[2],m2))throw Stdlib[13]; - var _ai_=caml_call1(Q[8],m2),_aj_=caml_call1(Q[8],m1); - return caml_call2(Q[42],_aj_,_ai_)} - function o_div_mon_rat(m1,r1) - {if(caml_equal(Q[2],r1))throw Stdlib[13]; - return o_mult_mon_rat(m1,caml_call1(Q[41],r1))} - function o_div_dur_dur(d1,d2) - {try - {var - i2=caml_call1(Dates_calc_Dates[18],d2), - i1=caml_call1(Dates_calc_Dates[18],d1)} - catch(_ah_) - {_ah_ = caml_wrap_exception(_ah_); - if(_ah_ === Dates_calc_Dates[2])throw IndivisibleDurations; - throw _ah_} - return o_div_int_int(i1,i2)} - function o_lt_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) < 0?1:0} - function o_lt_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) < 0?1:0} - function o_lt_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) < 0?1:0} - function o_lt_dur_dur(d1,d2){return compare_periods(d1,d2) < 0?1:0} - function o_lt_dat_dat(d1,d2) - {return caml_call2(Dates_calc_Dates[6],d1,d2) < 0?1:0} - function o_lte_int_int(i1,i2){return runtime.ml_z_compare(i1,i2) <= 0?1:0} - function o_lte_rat_rat(i1,i2){return caml_call2(Q[21],i1,i2) <= 0?1:0} - function o_lte_mon_mon(m1,m2){return runtime.ml_z_compare(m1,m2) <= 0?1:0} - function o_lte_dur_dur(d1,d2){return compare_periods(d1,d2) <= 0?1:0} - function o_lte_dat_dat(d1,d2) - {return caml_call2(Dates_calc_Dates[6],d1,d2) <= 0?1:0} - function o_gt_int_int(i1,i2){return 0 < runtime.ml_z_compare(i1,i2)?1:0} - function o_gt_rat_rat(i1,i2){return 0 < caml_call2(Q[21],i1,i2)?1:0} - function o_gt_mon_mon(m1,m2){return 0 < runtime.ml_z_compare(m1,m2)?1:0} - function o_gt_dur_dur(d1,d2){return 0 < compare_periods(d1,d2)?1:0} - function o_gt_dat_dat(d1,d2) - {return 0 < caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} - function o_gte_int_int(i1,i2){return 0 <= runtime.ml_z_compare(i1,i2)?1:0} - function o_gte_rat_rat(i1,i2){return 0 <= caml_call2(Q[21],i1,i2)?1:0} - function o_gte_mon_mon(m1,m2){return 0 <= runtime.ml_z_compare(m1,m2)?1:0} - function o_gte_dur_dur(d1,d2){return 0 <= compare_periods(d1,d2)?1:0} - function o_gte_dat_dat(d1,d2) - {return 0 <= caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} - function o_eq_int_int(i1,i2){return runtime.ml_z_equal(i1,i2)} - function o_eq_rat_rat(i1,i2){return caml_call2(Q[22],i1,i2)} - function o_eq_mon_mon(m1,m2){return runtime.ml_z_equal(m1,m2)} - function o_eq_dur_dur(d1,d2){return equal_periods(d1,d2)} - function o_eq_dat_dat(d1,d2) - {return 0 === caml_call2(Dates_calc_Dates[6],d1,d2)?1:0} + _bw_ = caml_call3(StringMap[4], var_name$0, [0, v, 0], map$0); + var ctx$4 = [0, _bw_, _bd_, rest$3], ctx$0 = ctx$4; + continue; + } + } + return caml_call1(Stdlib[2], cst_unreachable_due_to_the_is_$0); + } + var switch$0 = 0; + if(is_var_def(name$0)) + switch$0 = 1; + else{ + var + _a2_ = 3 === caml_call1(Stdlib_List[1], name$0) ? 1 : 0, + _a3_ = + _a2_ + ? runtime.caml_string_equal + (cst_output$0, caml_call2(Stdlib_List[7], name$0, 2)) + : _a2_; + if(_a3_) + switch$0 = 1; + else if(rest$3){ + var match$5 = rest$3[1]; + if(0 === match$5[0]){ + var infos$1 = match$5[1]; + if(is_function_call(infos$1)){ + var + raw_events$1 = caml_call1(Stdlib_List[6], ctx$0[3]), + fun_calls = 0, + raw_events = raw_events$1; + for(;;){ + var + _be_ = + take_while + (function(param){return 2 === param[0] ? 1 : 0;}, + raw_events) + [2]; + if(_be_){ + var match$6 = _be_[1]; + if(0 === match$6[0]){ + var infos$2 = match$6[1]; + if(is_function_call(infos$2)){ + var + match$7 = parse_fun_call(raw_events), + fun_call$0 = match$7[2], + raw_events$0 = match$7[1], + fun_calls$0 = [0, fun_call$0, fun_calls], + fun_calls = fun_calls$0, + raw_events = raw_events$0; + continue; + } + } + } + var fun_calls$1 = caml_call1(Stdlib_List[9], fun_calls); + if(raw_events){ + var event$0 = raw_events[1]; + if(2 === event$0[0]) + var + rest$5 = raw_events[2], + value$0 = event$0[2], + name$1 = event$0[1], + var_comp = + [0, [0, [0, pos], name$1, value$0, [0, fun_calls$1]]], + rest$4 = rest$5; + else + var + _bf_ = + (nb_raw_events - caml_call1(Stdlib_List[1], raw_events) | 0) + + 1 + | 0, + _bg_ = caml_call1(Stdlib[33], _bf_), + _bh_ = caml_call2(Stdlib[28], _bg_, cst$14), + _bi_ = caml_call2(Stdlib[28], cst$15, _bh_), + _bj_ = raw_event_to_string(event$0), + _bk_ = caml_call2(Stdlib[28], _bj_, _bi_), + _bl_ = + caml_call2(Stdlib[28], cst_expected_variable_definiti, _bk_), + _bm_ = caml_call2(Stdlib_String[6], cst$16, infos$1), + _bn_ = caml_call2(Stdlib[28], _bm_, _bl_), + _bo_ = + caml_call2(Stdlib[28], cst_Invalid_function_call, _bn_), + _bp_ = caml_call1(Stdlib[2], _bo_), + var_comp = _bp_[2], + rest$4 = _bp_[1]; + } + else + var + _bq_ = caml_call2(Stdlib_String[6], cst$17, infos$1), + _br_ = + caml_call2 + (Stdlib[28], _bq_, cst_expected_variable_definiti$0), + _bs_ = + caml_call2(Stdlib[28], cst_Invalid_function_call$0, _br_), + _bt_ = caml_call1(Stdlib[2], _bs_), + var_comp$0 = _bt_[2], + rest$6 = _bt_[1], + var_comp = var_comp$0, + rest$4 = rest$6; + var + ctx$6 = [0, ctx$0[1], [0, var_comp, ctx$0[2]], rest$4], + ctx$0 = ctx$6; + continue a; + } + } + } + } + } + if(switch$0){ + var + ctx$5 = + [0, + ctx$0[1], + [0, [0, [0, [0, pos], name$0, value, 0]], ctx$0[2]], + rest$3], + ctx$0 = ctx$5; + continue; + } + } + } + } + var + _a8_ = raw_event_to_string(event), + _a9_ = caml_call2(Stdlib[28], cst_Unexpected_event, _a8_); + return caml_call1(Stdlib[2], _a9_); + } + } + function parse_fun_call(events){ + var + match = + take_while + (function(param){ + if(2 !== param[0]) return 0; + var + name = param[1], + _a0_ = 3 === caml_call1(Stdlib_List[1], name) ? 1 : 0; + if(! _a0_) return _a0_; + var _a1_ = caml_call2(Stdlib_List[7], name, 2); + return caml_call2(Stdlib_String[10], cst_input, _a1_); + }, + events), + _aX_ = match[2]; + if(_aX_){ + var match$0 = _aX_[1]; + if(0 === match$0[0]){ + var rest = _aX_[2], infos = match$0[1], inputs = match[1]; + if(is_function_call(infos)){ + var + _aY_ = + function(param){ + if(2 !== param[0]) + throw caml_maybe_attach_backtrace([0, Assert_failure, _ac_], 1); + var value = param[2], name = param[1]; + return [0, 0, name, value, 0]; + }, + fun_inputs = caml_call2(Stdlib_ListLabels[19], _aY_, inputs), + body_ctx = parse_events([0, empty, 0, rest]), + body_rev = caml_call1(Stdlib_List[9], body_ctx[2]), + output = caml_call1(Stdlib_List[5], body_rev), + _aZ_ = caml_call1(Stdlib_List[6], body_rev), + body = caml_call1(Stdlib_List[9], _aZ_), + rest$0 = body_ctx[3]; + if(0 === output[0]) + var var_def = output[1], output$0 = var_def; + else + var output$0 = caml_call1(Stdlib[2], cst_Missing_function_output_va); + return [0, rest$0, [0, infos, fun_inputs, body, output$0]]; + } + } + } + return caml_call1(Stdlib[2], cst_Invalid_start_of_function_); + } + try{var _aW_ = parse_events([0, empty, _Y_, raw_events]), ctx = _aW_;} + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); + var msg = exn[2]; + caml_call2(Stdlib_Printf[3], _ad_, msg); + var ctx = empty_ctx; + } + return ctx[2]; + } + function handle_default(pos, exceptions, just, cons){ + var _aR_ = 0; + function _aS_(acc, except){ + try{var _aU_ = [0, caml_call1(except, 0)], new_val = _aU_;} + catch(_aV_){ + var _aT_ = caml_wrap_exception(_aV_); + if(_aT_ !== EmptyError) throw caml_maybe_attach_backtrace(_aT_, 0); + var new_val = 0; + } + if(! acc) return new_val; + if(new_val) + throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); + return acc; + } + var except = caml_call3(Stdlib_Array[17], _aS_, _aR_, exceptions); + if(except){var x = except[1]; return x;} + if(caml_call1(just, 0)) return caml_call1(cons, 0); + throw caml_maybe_attach_backtrace(EmptyError, 1); + } + function handle_default_opt(pos, exceptions, just, cons){ + function _aQ_(acc, except){ + if(0 === acc[0]) return except; + if(0 === except[0]) return acc; + throw caml_maybe_attach_backtrace([0, ConflictError, pos], 1); + } + var except = caml_call3(Stdlib_Array[17], _aQ_, _ae_, exceptions); + if(0 !== except[0]) return except; + if(0 === just[0]) return _af_; + var b = just[1]; + return b ? cons : _ag_; + } + function no_input(param){throw caml_maybe_attach_backtrace(EmptyError, 1);} + function compare_periods(p1, p2){ + try{ + var + p1_days = caml_call1(Dates_calc_Dates[18], p1), + p2_days = caml_call1(Dates_calc_Dates[18], p2), + _aO_ = runtime.caml_int_compare(p1_days, p2_days); + return _aO_; + } + catch(_aP_){ + var _aN_ = caml_wrap_exception(_aP_); + if(_aN_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(UncomparableDurations, 1); + throw caml_maybe_attach_backtrace(_aN_, 0); + } + } + function o_not(_aM_){return 1 - _aM_;} + function o_length(a){return a.length - 1;} + function o_minus_int(i1){return caml_call2(Z[13], Z[2], i1);} + function o_minus_rat(i1){return caml_call2(Q[39], Q[2], i1);} + function o_minus_mon(m1){return caml_call2(Z[13], Z[2], m1);} + var o_minus_dur = Dates_calc_Dates[13]; + function o_and(_aK_, _aJ_){var _aL_ = _aK_ ? _aJ_ : _aK_; return _aL_;} + function o_or(_aH_, _aG_){var _aI_ = _aH_ || _aG_; return _aI_;} + function o_xor(_aF_, _aE_){return _aF_ !== _aE_ ? 1 : 0;} + var o_eq = caml_equal, o_map = Stdlib_Array[15]; + function o_reduce(f, dft, a){ + var len = a.length - 1; + if(0 === len) return dft; + var r = [0, caml_check_bound(a, 0)[1]], _aB_ = len - 1 | 0, _aA_ = 1; + if(_aB_ >= 1){ + var i = _aA_; + for(;;){ + var _aC_ = caml_check_bound(a, i)[1 + i]; + r[1] = caml_call2(f, r[1], _aC_); + var _aD_ = i + 1 | 0; + if(_aB_ !== i){var i = _aD_; continue;} + break; + } + } + return r[1]; + } + var o_concat = Stdlib_Array[5]; + function o_filter(f, a){ var - o_fold=Stdlib_Array[17], - Oper= + _ay_ = caml_call1(Stdlib_Array[11], a), + _az_ = caml_call2(Stdlib_List[41], f, _ay_); + return caml_call1(Stdlib_Array[12], _az_); + } + function o_add_int_int(i1, i2){return caml_call2(Z[12], i1, i2);} + function o_add_rat_rat(i1, i2){return caml_call2(Q[38], i1, i2);} + function o_add_mon_mon(m1, m2){return caml_call2(Z[12], m1, m2);} + function o_add_dat_dur(r, da, du){ + return caml_call3(Dates_calc_Dates[4], [0, r], da, du); + } + var o_add_dur_dur = Dates_calc_Dates[14]; + function o_sub_int_int(i1, i2){return caml_call2(Z[13], i1, i2);} + function o_sub_rat_rat(i1, i2){return caml_call2(Q[39], i1, i2);} + function o_sub_mon_mon(m1, m2){return caml_call2(Z[13], m1, m2);} + var o_sub_dat_dat = Dates_calc_Dates[5]; + function o_sub_dat_dur(dat, dur){ + var _ax_ = caml_call1(Dates_calc_Dates[13], dur); + return caml_call3(Dates_calc_Dates[4], 0, dat, _ax_); + } + var o_sub_dur_dur = Dates_calc_Dates[15]; + function o_mult_int_int(i1, i2){return caml_call2(Z[14], i1, i2);} + function o_mult_rat_rat(i1, i2){return caml_call2(Q[40], i1, i2);} + function o_mult_mon_rat(i1, i2){ + var + i1_abs = caml_call1(Z[10], i1), + i2_abs = caml_call1(Q[37], i2), + _as_ = caml_call1(Q[20], i2), + sign_int = runtime.caml_mul(runtime.ml_z_sign(i1), _as_), + _at_ = caml_call1(Q[8], i1_abs), + rat_result = caml_call2(Q[40], _at_, i2_abs), + _au_ = caml_call1(Q[17], rat_result), + match = runtime.ml_z_div_rem(caml_call1(Q[16], rat_result), _au_), + remainder = match[2], + res = match[1], + _av_ = caml_call1(Q[17], rat_result); + if(! runtime.caml_greaterequal(caml_call2(Z[54], 2, remainder), _av_)) + return caml_call2(Z[54], res, sign_int); + var _aw_ = caml_call2(Z[12], res, 1); + return caml_call2(Z[54], _aw_, sign_int); + } + function o_mult_dur_int(d, m){ + var _ar_ = caml_call1(Z[29], m); + return caml_call2(Dates_calc_Dates[16], d, _ar_); + } + function o_div_int_int(i1, i2){ + if(caml_equal(Z[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + var _ap_ = caml_call1(Q[8], i2), _aq_ = caml_call1(Q[8], i1); + return caml_call2(Q[42], _aq_, _ap_); + } + function o_div_rat_rat(i1, i2){ + if(caml_equal(Q[2], i2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + return caml_call2(Q[42], i1, i2); + } + function o_div_mon_mon(m1, m2){ + if(caml_equal(Z[2], m2)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + var _an_ = caml_call1(Q[8], m2), _ao_ = caml_call1(Q[8], m1); + return caml_call2(Q[42], _ao_, _an_); + } + function o_div_mon_rat(m1, r1){ + if(caml_equal(Q[2], r1)) throw caml_maybe_attach_backtrace(Stdlib[13], 1); + return o_mult_mon_rat(m1, caml_call1(Q[41], r1)); + } + function o_div_dur_dur(d1, d2){ + try{ + var + i2 = caml_call1(Dates_calc_Dates[18], d2), + i1 = caml_call1(Dates_calc_Dates[18], d1); + } + catch(_am_){ + var _al_ = caml_wrap_exception(_am_); + if(_al_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(IndivisibleDurations, 1); + throw caml_maybe_attach_backtrace(_al_, 0); + } + return o_div_int_int(i1, i2); + } + function o_lt_int_int(i1, i2){ + return runtime.ml_z_compare(i1, i2) < 0 ? 1 : 0; + } + function o_lt_rat_rat(i1, i2){ + return caml_call2(Q[21], i1, i2) < 0 ? 1 : 0; + } + function o_lt_mon_mon(m1, m2){ + return runtime.ml_z_compare(m1, m2) < 0 ? 1 : 0; + } + function o_lt_dur_dur(d1, d2){return compare_periods(d1, d2) < 0 ? 1 : 0;} + function o_lt_dat_dat(d1, d2){ + return caml_call2(Dates_calc_Dates[6], d1, d2) < 0 ? 1 : 0; + } + function o_lte_int_int(i1, i2){ + return runtime.ml_z_compare(i1, i2) <= 0 ? 1 : 0; + } + function o_lte_rat_rat(i1, i2){ + return caml_call2(Q[21], i1, i2) <= 0 ? 1 : 0; + } + function o_lte_mon_mon(m1, m2){ + return runtime.ml_z_compare(m1, m2) <= 0 ? 1 : 0; + } + function o_lte_dur_dur(d1, d2){ + return compare_periods(d1, d2) <= 0 ? 1 : 0; + } + function o_lte_dat_dat(d1, d2){ + return caml_call2(Dates_calc_Dates[6], d1, d2) <= 0 ? 1 : 0; + } + function o_gt_int_int(i1, i2){ + return 0 < runtime.ml_z_compare(i1, i2) ? 1 : 0; + } + function o_gt_rat_rat(i1, i2){ + return 0 < caml_call2(Q[21], i1, i2) ? 1 : 0; + } + function o_gt_mon_mon(m1, m2){ + return 0 < runtime.ml_z_compare(m1, m2) ? 1 : 0; + } + function o_gt_dur_dur(d1, d2){return 0 < compare_periods(d1, d2) ? 1 : 0;} + function o_gt_dat_dat(d1, d2){ + return 0 < caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + function o_gte_int_int(i1, i2){ + return 0 <= runtime.ml_z_compare(i1, i2) ? 1 : 0; + } + function o_gte_rat_rat(i1, i2){ + return 0 <= caml_call2(Q[21], i1, i2) ? 1 : 0; + } + function o_gte_mon_mon(m1, m2){ + return 0 <= runtime.ml_z_compare(m1, m2) ? 1 : 0; + } + function o_gte_dur_dur(d1, d2){ + return 0 <= compare_periods(d1, d2) ? 1 : 0; + } + function o_gte_dat_dat(d1, d2){ + return 0 <= caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + function o_eq_int_int(i1, i2){return runtime.ml_z_equal(i1, i2);} + function o_eq_rat_rat(i1, i2){return caml_call2(Q[22], i1, i2);} + function o_eq_mon_mon(m1, m2){return runtime.ml_z_equal(m1, m2);} + function o_eq_dur_dur(d1, d2){ + try{ + var + _ai_ = caml_call2(Dates_calc_Dates[15], d1, d2), + _aj_ = 0 === caml_call1(Dates_calc_Dates[18], _ai_) ? 1 : 0; + return _aj_; + } + catch(_ak_){ + var _ah_ = caml_wrap_exception(_ak_); + if(_ah_ === Dates_calc_Dates[2]) + throw caml_maybe_attach_backtrace(UncomparableDurations, 1); + throw caml_maybe_attach_backtrace(_ah_, 0); + } + } + function o_eq_dat_dat(d1, d2){ + return 0 === caml_call2(Dates_calc_Dates[6], d1, d2) ? 1 : 0; + } + var + o_fold = Stdlib_Array[17], + Oper = [0, o_not, o_length, @@ -44107,77 +44525,77 @@ o_eq_dur_dur, o_eq_dat_dat, o_fold], - o_not$0=Oper[1], - o_length$0=Oper[2], - o_torat_int=Oper[3], - o_torat_mon=Oper[4], - o_tomoney_rat=Oper[5], - o_getDay=Oper[6], - o_getMonth=Oper[7], - o_getYear=Oper[8], - o_firstDayOfMonth=Oper[9], - o_lastDayOfMonth=Oper[10], - o_round_mon=Oper[11], - o_round_rat=Oper[12], - o_minus_int$0=Oper[13], - o_minus_rat$0=Oper[14], - o_minus_mon$0=Oper[15], - o_minus_dur$0=Oper[16], - o_and$0=Oper[17], - o_or$0=Oper[18], - o_xor$0=Oper[19], - o_eq$0=Oper[20], - o_map$0=Oper[21], - o_reduce$0=Oper[22], - o_concat$0=Oper[23], - o_filter$0=Oper[24], - o_add_int_int$0=Oper[25], - o_add_rat_rat$0=Oper[26], - o_add_mon_mon$0=Oper[27], - o_add_dat_dur$0=Oper[28], - o_add_dur_dur$0=Oper[29], - o_sub_int_int$0=Oper[30], - o_sub_rat_rat$0=Oper[31], - o_sub_mon_mon$0=Oper[32], - o_sub_dat_dat$0=Oper[33], - o_sub_dat_dur$0=Oper[34], - o_sub_dur_dur$0=Oper[35], - o_mult_int_int$0=Oper[36], - o_mult_rat_rat$0=Oper[37], - o_mult_mon_rat$0=Oper[38], - o_mult_dur_int$0=Oper[39], - o_div_int_int$0=Oper[40], - o_div_rat_rat$0=Oper[41], - o_div_mon_mon$0=Oper[42], - o_div_mon_rat$0=Oper[43], - o_div_dur_dur$0=Oper[44], - o_lt_int_int$0=Oper[45], - o_lt_rat_rat$0=Oper[46], - o_lt_mon_mon$0=Oper[47], - o_lt_dur_dur$0=Oper[48], - o_lt_dat_dat$0=Oper[49], - o_lte_int_int$0=Oper[50], - o_lte_rat_rat$0=Oper[51], - o_lte_mon_mon$0=Oper[52], - o_lte_dur_dur$0=Oper[53], - o_lte_dat_dat$0=Oper[54], - o_gt_int_int$0=Oper[55], - o_gt_rat_rat$0=Oper[56], - o_gt_mon_mon$0=Oper[57], - o_gt_dur_dur$0=Oper[58], - o_gt_dat_dat$0=Oper[59], - o_gte_int_int$0=Oper[60], - o_gte_rat_rat$0=Oper[61], - o_gte_mon_mon$0=Oper[62], - o_gte_dur_dur$0=Oper[63], - o_gte_dat_dat$0=Oper[64], - o_eq_int_int$0=Oper[65], - o_eq_rat_rat$0=Oper[66], - o_eq_mon_mon$0=Oper[67], - o_eq_dur_dur$0=Oper[68], - o_eq_dat_dat$0=Oper[69], - o_fold$0=Oper[70], - Runtime_ocaml_Runtime= + o_not$0 = Oper[1], + o_length$0 = Oper[2], + o_torat_int = Oper[3], + o_torat_mon = Oper[4], + o_tomoney_rat = Oper[5], + o_getDay = Oper[6], + o_getMonth = Oper[7], + o_getYear = Oper[8], + o_firstDayOfMonth = Oper[9], + o_lastDayOfMonth = Oper[10], + o_round_mon = Oper[11], + o_round_rat = Oper[12], + o_minus_int$0 = Oper[13], + o_minus_rat$0 = Oper[14], + o_minus_mon$0 = Oper[15], + o_minus_dur$0 = Oper[16], + o_and$0 = Oper[17], + o_or$0 = Oper[18], + o_xor$0 = Oper[19], + o_eq$0 = Oper[20], + o_map$0 = Oper[21], + o_reduce$0 = Oper[22], + o_concat$0 = Oper[23], + o_filter$0 = Oper[24], + o_add_int_int$0 = Oper[25], + o_add_rat_rat$0 = Oper[26], + o_add_mon_mon$0 = Oper[27], + o_add_dat_dur$0 = Oper[28], + o_add_dur_dur$0 = Oper[29], + o_sub_int_int$0 = Oper[30], + o_sub_rat_rat$0 = Oper[31], + o_sub_mon_mon$0 = Oper[32], + o_sub_dat_dat$0 = Oper[33], + o_sub_dat_dur$0 = Oper[34], + o_sub_dur_dur$0 = Oper[35], + o_mult_int_int$0 = Oper[36], + o_mult_rat_rat$0 = Oper[37], + o_mult_mon_rat$0 = Oper[38], + o_mult_dur_int$0 = Oper[39], + o_div_int_int$0 = Oper[40], + o_div_rat_rat$0 = Oper[41], + o_div_mon_mon$0 = Oper[42], + o_div_mon_rat$0 = Oper[43], + o_div_dur_dur$0 = Oper[44], + o_lt_int_int$0 = Oper[45], + o_lt_rat_rat$0 = Oper[46], + o_lt_mon_mon$0 = Oper[47], + o_lt_dur_dur$0 = Oper[48], + o_lt_dat_dat$0 = Oper[49], + o_lte_int_int$0 = Oper[50], + o_lte_rat_rat$0 = Oper[51], + o_lte_mon_mon$0 = Oper[52], + o_lte_dur_dur$0 = Oper[53], + o_lte_dat_dat$0 = Oper[54], + o_gt_int_int$0 = Oper[55], + o_gt_rat_rat$0 = Oper[56], + o_gt_mon_mon$0 = Oper[57], + o_gt_dur_dur$0 = Oper[58], + o_gt_dat_dat$0 = Oper[59], + o_gte_int_int$0 = Oper[60], + o_gte_rat_rat$0 = Oper[61], + o_gte_mon_mon$0 = Oper[62], + o_gte_dur_dur$0 = Oper[63], + o_gte_dat_dat$0 = Oper[64], + o_eq_int_int$0 = Oper[65], + o_eq_rat_rat$0 = Oper[66], + o_eq_mon_mon$0 = Oper[67], + o_eq_dur_dur$0 = Oper[68], + o_eq_dat_dat$0 = Oper[69], + o_fold$0 = Oper[70], + Runtime_ocaml_Runtime = [0, yojson_of_source_position, EmptyError, @@ -44202,7 +44620,7 @@ yojson_of_var_def, yojson_of_fun_call, retrieve_log, - [0,parse_raw_events], + [0, parse_raw_events], reset_log, log_begin_call, log_end_call, @@ -44315,1635 +44733,159 @@ o_eq_dur_dur$0, o_eq_dat_dat$0, o_fold$0]; - caml_register_global(131,Runtime_ocaml_Runtime,"Runtime_ocaml__Runtime"); - return} + runtime.caml_register_global + (130, Runtime_ocaml_Runtime, "Runtime_ocaml__Runtime"); + return; + } (globalThis)); -//# 1 "../../.js/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +//# 1 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 18 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" +(function(globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + s = "5.1.1", + git_version = "", + Jsoo_runtime_Runtime_version = [0, s, git_version]; + runtime.caml_register_global + (2, Jsoo_runtime_Runtime_version, "Jsoo_runtime__Runtime_version"); + return; + } + (globalThis)); + +//# 33 "../../.js/default/js_of_ocaml-compiler.runtime/jsoo_runtime.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_exn_with_js_backtrace=runtime.caml_exn_with_js_backtrace, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes; - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - var - global_data=runtime.caml_get_global_data(), - version=caml_string_of_jsbytes("5.0.1"), - git_version=caml_string_of_jsbytes(""), - cst_Jsoo_runtime_Error_Exn= - caml_string_of_jsbytes("Jsoo_runtime.Error.Exn"), - cst_jsError=caml_string_of_jsbytes("jsError"), - Stdlib_Callback=global_data.Stdlib__Callback, - Jsoo_runtime=[0]; - caml_register_global(5,Jsoo_runtime,"Jsoo_runtime__"); - var Jsoo_runtime_Runtime_version=[0,version,git_version]; - caml_register_global - (6,Jsoo_runtime_Runtime_version,"Jsoo_runtime__Runtime_version"); - var - Js=[0], - Config=[0], - Sys=[0,Config,version,git_version], - Exn=[248,cst_Jsoo_runtime_Error_Exn,runtime.caml_fresh_oo_id(0)]; - caml_call2(Stdlib_Callback[2],cst_jsError,[0,Exn,[0]]); - function raise(exn){throw exn} - var - Error= + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Jsoo_runtime_Runtime_version = global_data.Jsoo_runtime__Runtime_version, + Stdlib_Callback = global_data.Stdlib__Callback, + Js = [0], + Config = [0], + version = Jsoo_runtime_Runtime_version[1], + git_version = Jsoo_runtime_Runtime_version[2], + Sys = [0, Config, version, git_version], + Exn = [248, "Jsoo_runtime.Error.Exn", runtime.caml_fresh_oo_id(0)]; + caml_call2(Stdlib_Callback[2], "jsError", [0, Exn, [0]]); + function raise(exn){throw exn;} + var + Error = [0, raise, - caml_exn_with_js_backtrace, + runtime.caml_exn_with_js_backtrace, runtime.caml_js_error_option_of_exception, Exn], - For_compatibility_only=[0], - Bigstring=[0], - Typed_array=[0,Bigstring], - Int64=[0], - Jsoo_runtime$0=[0,Js,Sys,Error,For_compatibility_only,Typed_array,Int64]; - caml_register_global(8,Jsoo_runtime$0,"Jsoo_runtime"); - return} + For_compatibility_only = [0], + Bigstring = [0], + Typed_array = [0, Bigstring], + Int64 = [0], + Jsoo_runtime = + [0, Js, Sys, Error, For_compatibility_only, Typed_array, Int64]; + runtime.caml_register_global(5, Jsoo_runtime, "Jsoo_runtime"); + return; + } (globalThis)); -//# 1 "../../.js/js_of_ocaml/js_of_ocaml.cma.js" +//# 1 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 19 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" (function - (globalThis) - {"use strict"; - var - jsoo_exports=typeof module === "object" && module.exports || globalThis, - runtime=globalThis.jsoo_runtime, - caml_float_of_string=runtime.caml_float_of_string, - caml_fresh_oo_id=runtime.caml_fresh_oo_id, - caml_int_of_string=runtime.caml_int_of_string, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_get=runtime.caml_js_get, - caml_js_html_escape=runtime.caml_js_html_escape, - caml_js_set=runtime.caml_js_set, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_jsbytes_of_string=runtime.caml_jsbytes_of_string, - caml_jsstring_of_string=runtime.caml_jsstring_of_string, - caml_list_of_js_array=runtime.caml_list_of_js_array, - caml_ml_string_length=runtime.caml_ml_string_length, - caml_register_global=runtime.caml_register_global, - caml_string_compare=runtime.caml_string_compare, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_array=runtime.caml_string_of_array, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_of_jsstring=runtime.caml_string_of_jsstring, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - var - global_data=runtime.caml_get_global_data(), - cst_parseFloat=caml_string_of_jsbytes("parseFloat"), - cst_parseInt=caml_string_of_jsbytes("parseInt"), - cst_can_t_retrieve_file_name_n= - caml_string_of_jsbytes("can't retrieve file name: not implemented"), - cst_endings=caml_string_of_jsbytes("endings"), - cst_type=caml_string_of_jsbytes("type"), - cst_loadstart=caml_string_of_jsbytes("loadstart"), - cst_progress=caml_string_of_jsbytes("progress"), - cst_abort=caml_string_of_jsbytes("abort"), - cst_error=caml_string_of_jsbytes("error"), - cst_load=caml_string_of_jsbytes("load"), - cst_loadend=caml_string_of_jsbytes("loadend"), - cst_a$1=caml_string_of_jsbytes("a"), - cst_area$1=caml_string_of_jsbytes("area"), - cst_audio$1=caml_string_of_jsbytes("audio"), - cst_base$1=caml_string_of_jsbytes("base"), - cst_blockquote$1=caml_string_of_jsbytes("blockquote"), - cst_body$1=caml_string_of_jsbytes("body"), - cst_br$1=caml_string_of_jsbytes("br"), - cst_button$1=caml_string_of_jsbytes("button"), - cst_canvas$1=caml_string_of_jsbytes("canvas"), - cst_caption$1=caml_string_of_jsbytes("caption"), - cst_col$1=caml_string_of_jsbytes("col"), - cst_colgroup$1=caml_string_of_jsbytes("colgroup"), - cst_del$1=caml_string_of_jsbytes("del"), - cst_div$1=caml_string_of_jsbytes("div"), - cst_dl$1=caml_string_of_jsbytes("dl"), - cst_embed$1=caml_string_of_jsbytes("embed"), - cst_fieldset$1=caml_string_of_jsbytes("fieldset"), - cst_form$1=caml_string_of_jsbytes("form"), - cst_frame$1=caml_string_of_jsbytes("frame"), - cst_frameset$1=caml_string_of_jsbytes("frameset"), - cst_h1$1=caml_string_of_jsbytes("h1"), - cst_h2$1=caml_string_of_jsbytes("h2"), - cst_h3$1=caml_string_of_jsbytes("h3"), - cst_h4$1=caml_string_of_jsbytes("h4"), - cst_h5$1=caml_string_of_jsbytes("h5"), - cst_h6$1=caml_string_of_jsbytes("h6"), - cst_head$1=caml_string_of_jsbytes("head"), - cst_hr$1=caml_string_of_jsbytes("hr"), - cst_html$1=caml_string_of_jsbytes("html"), - cst_iframe$1=caml_string_of_jsbytes("iframe"), - cst_img$1=caml_string_of_jsbytes("img"), - cst_input$2=caml_string_of_jsbytes("input"), - cst_ins$1=caml_string_of_jsbytes("ins"), - cst_label$1=caml_string_of_jsbytes("label"), - cst_legend$1=caml_string_of_jsbytes("legend"), - cst_li$1=caml_string_of_jsbytes("li"), - cst_link$1=caml_string_of_jsbytes("link"), - cst_map$1=caml_string_of_jsbytes("map"), - cst_meta$1=caml_string_of_jsbytes("meta"), - cst_object$1=caml_string_of_jsbytes("object"), - cst_ol$1=caml_string_of_jsbytes("ol"), - cst_optgroup$1=caml_string_of_jsbytes("optgroup"), - cst_option$1=caml_string_of_jsbytes("option"), - cst_p$1=caml_string_of_jsbytes("p"), - cst_param$1=caml_string_of_jsbytes("param"), - cst_pre$1=caml_string_of_jsbytes("pre"), - cst_q$1=caml_string_of_jsbytes("q"), - cst_script$1=caml_string_of_jsbytes("script"), - cst_select$2=caml_string_of_jsbytes("select"), - cst_style$1=caml_string_of_jsbytes("style"), - cst_table$1=caml_string_of_jsbytes("table"), - cst_tbody$1=caml_string_of_jsbytes("tbody"), - cst_td$1=caml_string_of_jsbytes("td"), - cst_textarea$1=caml_string_of_jsbytes("textarea"), - cst_tfoot$1=caml_string_of_jsbytes("tfoot"), - cst_th$1=caml_string_of_jsbytes("th"), - cst_thead$1=caml_string_of_jsbytes("thead"), - cst_title$1=caml_string_of_jsbytes("title"), - cst_tr$1=caml_string_of_jsbytes("tr"), - cst_ul$1=caml_string_of_jsbytes("ul"), - cst_video$1=caml_string_of_jsbytes("video"), - cst_KeyH=caml_string_of_jsbytes("KeyH"), - cst_Digit6=caml_string_of_jsbytes("Digit6"), - cst_BrowserRefresh=caml_string_of_jsbytes("BrowserRefresh"), - cst_Backslash=caml_string_of_jsbytes("Backslash"), - cst_AltLeft=caml_string_of_jsbytes("AltLeft"), - cst_AltRight=caml_string_of_jsbytes("AltRight"), - cst_ArrowDown=caml_string_of_jsbytes("ArrowDown"), - cst_ArrowLeft=caml_string_of_jsbytes("ArrowLeft"), - cst_ArrowRight=caml_string_of_jsbytes("ArrowRight"), - cst_ArrowUp=caml_string_of_jsbytes("ArrowUp"), - cst_Backquote=caml_string_of_jsbytes("Backquote"), - cst_Backspace=caml_string_of_jsbytes("Backspace"), - cst_BracketLeft=caml_string_of_jsbytes("BracketLeft"), - cst_BracketRight=caml_string_of_jsbytes("BracketRight"), - cst_BrowserBack=caml_string_of_jsbytes("BrowserBack"), - cst_BrowserFavorites=caml_string_of_jsbytes("BrowserFavorites"), - cst_BrowserForward=caml_string_of_jsbytes("BrowserForward"), - cst_BrowserHome=caml_string_of_jsbytes("BrowserHome"), - cst_Delete=caml_string_of_jsbytes("Delete"), - cst_BrowserSearch=caml_string_of_jsbytes("BrowserSearch"), - cst_BrowserStop=caml_string_of_jsbytes("BrowserStop"), - cst_CapsLock=caml_string_of_jsbytes("CapsLock"), - cst_Comma=caml_string_of_jsbytes("Comma"), - cst_ContextMenu=caml_string_of_jsbytes("ContextMenu"), - cst_ControlLeft=caml_string_of_jsbytes("ControlLeft"), - cst_ControlRight=caml_string_of_jsbytes("ControlRight"), - cst_Digit0=caml_string_of_jsbytes("Digit0"), - cst_Digit1=caml_string_of_jsbytes("Digit1"), - cst_Digit2=caml_string_of_jsbytes("Digit2"), - cst_Digit3=caml_string_of_jsbytes("Digit3"), - cst_Digit4=caml_string_of_jsbytes("Digit4"), - cst_Digit5=caml_string_of_jsbytes("Digit5"), - cst_F6=caml_string_of_jsbytes("F6"), - cst_F1=caml_string_of_jsbytes("F1"), - cst_Digit7=caml_string_of_jsbytes("Digit7"), - cst_Digit8=caml_string_of_jsbytes("Digit8"), - cst_Digit9=caml_string_of_jsbytes("Digit9"), - cst_End=caml_string_of_jsbytes("End"), - cst_Enter=caml_string_of_jsbytes("Enter"), - cst_Equal=caml_string_of_jsbytes("Equal"), - cst_Escape=caml_string_of_jsbytes("Escape"), - cst_F10=caml_string_of_jsbytes("F10"), - cst_F11=caml_string_of_jsbytes("F11"), - cst_F12=caml_string_of_jsbytes("F12"), - cst_F2=caml_string_of_jsbytes("F2"), - cst_F3=caml_string_of_jsbytes("F3"), - cst_F4=caml_string_of_jsbytes("F4"), - cst_F5=caml_string_of_jsbytes("F5"), - cst_KeyA=caml_string_of_jsbytes("KeyA"), - cst_F7=caml_string_of_jsbytes("F7"), - cst_F8=caml_string_of_jsbytes("F8"), - cst_F9=caml_string_of_jsbytes("F9"), - cst_Home=caml_string_of_jsbytes("Home"), - cst_Insert=caml_string_of_jsbytes("Insert"), - cst_IntlBackslash=caml_string_of_jsbytes("IntlBackslash"), - cst_IntlYen=caml_string_of_jsbytes("IntlYen"), - cst_KeyB=caml_string_of_jsbytes("KeyB"), - cst_KeyC=caml_string_of_jsbytes("KeyC"), - cst_KeyD=caml_string_of_jsbytes("KeyD"), - cst_KeyE=caml_string_of_jsbytes("KeyE"), - cst_KeyF=caml_string_of_jsbytes("KeyF"), - cst_KeyG=caml_string_of_jsbytes("KeyG"), - cst_Numpad4=caml_string_of_jsbytes("Numpad4"), - cst_KeyX=caml_string_of_jsbytes("KeyX"), - cst_KeyP=caml_string_of_jsbytes("KeyP"), - cst_KeyI=caml_string_of_jsbytes("KeyI"), - cst_KeyJ=caml_string_of_jsbytes("KeyJ"), - cst_KeyK=caml_string_of_jsbytes("KeyK"), - cst_KeyL=caml_string_of_jsbytes("KeyL"), - cst_KeyM=caml_string_of_jsbytes("KeyM"), - cst_KeyN=caml_string_of_jsbytes("KeyN"), - cst_KeyO=caml_string_of_jsbytes("KeyO"), - cst_KeyQ=caml_string_of_jsbytes("KeyQ"), - cst_KeyR=caml_string_of_jsbytes("KeyR"), - cst_KeyS=caml_string_of_jsbytes("KeyS"), - cst_KeyT=caml_string_of_jsbytes("KeyT"), - cst_KeyU=caml_string_of_jsbytes("KeyU"), - cst_KeyV=caml_string_of_jsbytes("KeyV"), - cst_KeyW=caml_string_of_jsbytes("KeyW"), - cst_MetaRight=caml_string_of_jsbytes("MetaRight"), - cst_KeyY=caml_string_of_jsbytes("KeyY"), - cst_KeyZ=caml_string_of_jsbytes("KeyZ"), - cst_MediaPlayPause=caml_string_of_jsbytes("MediaPlayPause"), - cst_MediaStop=caml_string_of_jsbytes("MediaStop"), - cst_MediaTrackNext=caml_string_of_jsbytes("MediaTrackNext"), - cst_MediaTrackPrevious=caml_string_of_jsbytes("MediaTrackPrevious"), - cst_MetaLeft=caml_string_of_jsbytes("MetaLeft"), - cst_Minus=caml_string_of_jsbytes("Minus"), - cst_NumLock=caml_string_of_jsbytes("NumLock"), - cst_Numpad0=caml_string_of_jsbytes("Numpad0"), - cst_Numpad1=caml_string_of_jsbytes("Numpad1"), - cst_Numpad2=caml_string_of_jsbytes("Numpad2"), - cst_Numpad3=caml_string_of_jsbytes("Numpad3"), - cst_PageUp=caml_string_of_jsbytes("PageUp"), - cst_NumpadDivide=caml_string_of_jsbytes("NumpadDivide"), - cst_Numpad5=caml_string_of_jsbytes("Numpad5"), - cst_Numpad6=caml_string_of_jsbytes("Numpad6"), - cst_Numpad7=caml_string_of_jsbytes("Numpad7"), - cst_Numpad8=caml_string_of_jsbytes("Numpad8"), - cst_Numpad9=caml_string_of_jsbytes("Numpad9"), - cst_NumpadAdd=caml_string_of_jsbytes("NumpadAdd"), - cst_NumpadDecimal=caml_string_of_jsbytes("NumpadDecimal"), - cst_NumpadEnter=caml_string_of_jsbytes("NumpadEnter"), - cst_NumpadEqual=caml_string_of_jsbytes("NumpadEqual"), - cst_NumpadMultiply=caml_string_of_jsbytes("NumpadMultiply"), - cst_NumpadSubtract=caml_string_of_jsbytes("NumpadSubtract"), - cst_OSLeft=caml_string_of_jsbytes("OSLeft"), - cst_OSRight=caml_string_of_jsbytes("OSRight"), - cst_PageDown=caml_string_of_jsbytes("PageDown"), - cst_ShiftRight=caml_string_of_jsbytes("ShiftRight"), - cst_Pause=caml_string_of_jsbytes("Pause"), - cst_Period=caml_string_of_jsbytes("Period"), - cst_PrintScreen=caml_string_of_jsbytes("PrintScreen"), - cst_Quote=caml_string_of_jsbytes("Quote"), - cst_ScrollLock=caml_string_of_jsbytes("ScrollLock"), - cst_Semicolon=caml_string_of_jsbytes("Semicolon"), - cst_ShiftLeft=caml_string_of_jsbytes("ShiftLeft"), - cst_Slash=caml_string_of_jsbytes("Slash"), - cst_Space=caml_string_of_jsbytes("Space"), - cst_Tab=caml_string_of_jsbytes("Tab"), - cst_VolumeDown=caml_string_of_jsbytes("VolumeDown"), - cst_VolumeMute=caml_string_of_jsbytes("VolumeMute"), - cst_VolumeUp=caml_string_of_jsbytes("VolumeUp"), - cst_mouseout$0=caml_string_of_jsbytes("mouseout"), - cst_mouseover$0=caml_string_of_jsbytes("mouseover"), - cst_video$0=caml_string_of_jsbytes("video"), - cst_audio$0=caml_string_of_jsbytes("audio"), - cst_ul$0=caml_string_of_jsbytes("ul"), - cst_tr$0=caml_string_of_jsbytes("tr"), - cst_title$0=caml_string_of_jsbytes("title"), - cst_thead$0=caml_string_of_jsbytes("thead"), - cst_th$0=caml_string_of_jsbytes("th"), - cst_tfoot$0=caml_string_of_jsbytes("tfoot"), - cst_textarea$0=caml_string_of_jsbytes("textarea"), - cst_td$0=caml_string_of_jsbytes("td"), - cst_tbody$0=caml_string_of_jsbytes("tbody"), - cst_table$0=caml_string_of_jsbytes("table"), - cst_style$0=caml_string_of_jsbytes("style"), - cst_select$1=caml_string_of_jsbytes("select"), - cst_script$0=caml_string_of_jsbytes("script"), - cst_q$0=caml_string_of_jsbytes("q"), - cst_pre$0=caml_string_of_jsbytes("pre"), - cst_param$0=caml_string_of_jsbytes("param"), - cst_p$0=caml_string_of_jsbytes("p"), - cst_option$0=caml_string_of_jsbytes("option"), - cst_optgroup$0=caml_string_of_jsbytes("optgroup"), - cst_ol$0=caml_string_of_jsbytes("ol"), - cst_object$0=caml_string_of_jsbytes("object"), - cst_meta$0=caml_string_of_jsbytes("meta"), - cst_map$0=caml_string_of_jsbytes("map"), - cst_link$0=caml_string_of_jsbytes("link"), - cst_li$0=caml_string_of_jsbytes("li"), - cst_legend$0=caml_string_of_jsbytes("legend"), - cst_label$0=caml_string_of_jsbytes("label"), - cst_ins$0=caml_string_of_jsbytes("ins"), - cst_input$1=caml_string_of_jsbytes("input"), - cst_img$0=caml_string_of_jsbytes("img"), - cst_iframe$0=caml_string_of_jsbytes("iframe"), - cst_html$0=caml_string_of_jsbytes("html"), - cst_hr$0=caml_string_of_jsbytes("hr"), - cst_head$0=caml_string_of_jsbytes("head"), - cst_h6$0=caml_string_of_jsbytes("h6"), - cst_h5$0=caml_string_of_jsbytes("h5"), - cst_h4$0=caml_string_of_jsbytes("h4"), - cst_h3$0=caml_string_of_jsbytes("h3"), - cst_h2$0=caml_string_of_jsbytes("h2"), - cst_h1$0=caml_string_of_jsbytes("h1"), - cst_frame$0=caml_string_of_jsbytes("frame"), - cst_frameset$0=caml_string_of_jsbytes("frameset"), - cst_form$0=caml_string_of_jsbytes("form"), - cst_embed$0=caml_string_of_jsbytes("embed"), - cst_fieldset$0=caml_string_of_jsbytes("fieldset"), - cst_dl$0=caml_string_of_jsbytes("dl"), - cst_div$0=caml_string_of_jsbytes("div"), - cst_del$0=caml_string_of_jsbytes("del"), - cst_colgroup$0=caml_string_of_jsbytes("colgroup"), - cst_col$0=caml_string_of_jsbytes("col"), - cst_caption$0=caml_string_of_jsbytes("caption"), - cst_canvas$0=caml_string_of_jsbytes("canvas"), - cst_button$0=caml_string_of_jsbytes("button"), - cst_br$0=caml_string_of_jsbytes("br"), - cst_body$0=caml_string_of_jsbytes("body"), - cst_blockquote$0=caml_string_of_jsbytes("blockquote"), - cst_base$0=caml_string_of_jsbytes("base"), - cst_area$0=caml_string_of_jsbytes("area"), - cst_a$0=caml_string_of_jsbytes("a"), - cst_canvas=caml_string_of_jsbytes("canvas"), - cst_video=caml_string_of_jsbytes("video"), - cst_audio=caml_string_of_jsbytes("audio"), - cst_iframe=caml_string_of_jsbytes("iframe"), - cst_frame=caml_string_of_jsbytes("frame"), - cst_frameset=caml_string_of_jsbytes("frameset"), - cst_address=caml_string_of_jsbytes("address"), - cst_noscript=caml_string_of_jsbytes("noscript"), - cst_dt=caml_string_of_jsbytes("dt"), - cst_dd=caml_string_of_jsbytes("dd"), - cst_abbr=caml_string_of_jsbytes("abbr"), - cst_var=caml_string_of_jsbytes("var"), - cst_kbd=caml_string_of_jsbytes("kbd"), - cst_samp=caml_string_of_jsbytes("samp"), - cst_code=caml_string_of_jsbytes("code"), - cst_dfn=caml_string_of_jsbytes("dfn"), - cst_cite=caml_string_of_jsbytes("cite"), - cst_strong=caml_string_of_jsbytes("strong"), - cst_em=caml_string_of_jsbytes("em"), - cst_small=caml_string_of_jsbytes("small"), - cst_big=caml_string_of_jsbytes("big"), - cst_b=caml_string_of_jsbytes("b"), - cst_i=caml_string_of_jsbytes("i"), - cst_tt=caml_string_of_jsbytes("tt"), - cst_span=caml_string_of_jsbytes("span"), - cst_sup=caml_string_of_jsbytes("sup"), - cst_sub=caml_string_of_jsbytes("sub"), - cst_td=caml_string_of_jsbytes("td"), - cst_th=caml_string_of_jsbytes("th"), - cst_tr=caml_string_of_jsbytes("tr"), - cst_tbody=caml_string_of_jsbytes("tbody"), - cst_tfoot=caml_string_of_jsbytes("tfoot"), - cst_thead=caml_string_of_jsbytes("thead"), - cst_colgroup=caml_string_of_jsbytes("colgroup"), - cst_col=caml_string_of_jsbytes("col"), - cst_caption=caml_string_of_jsbytes("caption"), - cst_table=caml_string_of_jsbytes("table"), - cst_script=caml_string_of_jsbytes("script"), - cst_area=caml_string_of_jsbytes("area"), - cst_map=caml_string_of_jsbytes("map"), - cst_param=caml_string_of_jsbytes("param"), - cst_object=caml_string_of_jsbytes("object"), - cst_img=caml_string_of_jsbytes("img"), - cst_a=caml_string_of_jsbytes("a"), - cst_del=caml_string_of_jsbytes("del"), - cst_ins=caml_string_of_jsbytes("ins"), - cst_hr=caml_string_of_jsbytes("hr"), - cst_br=caml_string_of_jsbytes("br"), - cst_pre=caml_string_of_jsbytes("pre"), - cst_blockquote=caml_string_of_jsbytes("blockquote"), - cst_q=caml_string_of_jsbytes("q"), - cst_h6=caml_string_of_jsbytes("h6"), - cst_h5=caml_string_of_jsbytes("h5"), - cst_h4=caml_string_of_jsbytes("h4"), - cst_h3=caml_string_of_jsbytes("h3"), - cst_h2=caml_string_of_jsbytes("h2"), - cst_h1=caml_string_of_jsbytes("h1"), - cst_p=caml_string_of_jsbytes("p"), - cst_embed=caml_string_of_jsbytes("embed"), - cst_div=caml_string_of_jsbytes("div"), - cst_li=caml_string_of_jsbytes("li"), - cst_dl=caml_string_of_jsbytes("dl"), - cst_ol=caml_string_of_jsbytes("ol"), - cst_ul=caml_string_of_jsbytes("ul"), - cst_legend=caml_string_of_jsbytes("legend"), - cst_fieldset=caml_string_of_jsbytes("fieldset"), - cst_label=caml_string_of_jsbytes("label"), - cst_button=caml_string_of_jsbytes("button"), - cst_textarea=caml_string_of_jsbytes("textarea"), - cst_input$0=caml_string_of_jsbytes("input"), - cst_select$0=caml_string_of_jsbytes("select"), - cst_option=caml_string_of_jsbytes("option"), - cst_optgroup=caml_string_of_jsbytes("optgroup"), - cst_form=caml_string_of_jsbytes("form"), - cst_body=caml_string_of_jsbytes("body"), - cst_style=caml_string_of_jsbytes("style"), - cst_base=caml_string_of_jsbytes("base"), - cst_meta=caml_string_of_jsbytes("meta"), - cst_title=caml_string_of_jsbytes("title"), - cst_link=caml_string_of_jsbytes("link"), - cst_head=caml_string_of_jsbytes("head"), - cst_html=caml_string_of_jsbytes("html"), - cst_click=caml_string_of_jsbytes("click"), - cst_copy=caml_string_of_jsbytes("copy"), - cst_cut=caml_string_of_jsbytes("cut"), - cst_paste=caml_string_of_jsbytes("paste"), - cst_dblclick=caml_string_of_jsbytes("dblclick"), - cst_mousedown=caml_string_of_jsbytes("mousedown"), - cst_mouseup=caml_string_of_jsbytes("mouseup"), - cst_mouseover=caml_string_of_jsbytes("mouseover"), - cst_mousemove=caml_string_of_jsbytes("mousemove"), - cst_mouseout=caml_string_of_jsbytes("mouseout"), - cst_keypress=caml_string_of_jsbytes("keypress"), - cst_keydown=caml_string_of_jsbytes("keydown"), - cst_keyup=caml_string_of_jsbytes("keyup"), - cst_mousewheel=caml_string_of_jsbytes("mousewheel"), - cst_wheel=caml_string_of_jsbytes("wheel"), - cst_DOMMouseScroll=caml_string_of_jsbytes("DOMMouseScroll"), - cst_touchstart=caml_string_of_jsbytes("touchstart"), - cst_touchmove=caml_string_of_jsbytes("touchmove"), - cst_touchend=caml_string_of_jsbytes("touchend"), - cst_touchcancel=caml_string_of_jsbytes("touchcancel"), - cst_dragstart=caml_string_of_jsbytes("dragstart"), - cst_dragend=caml_string_of_jsbytes("dragend"), - cst_dragenter=caml_string_of_jsbytes("dragenter"), - cst_dragover=caml_string_of_jsbytes("dragover"), - cst_dragleave=caml_string_of_jsbytes("dragleave"), - cst_drag=caml_string_of_jsbytes("drag"), - cst_drop=caml_string_of_jsbytes("drop"), - cst_hashchange=caml_string_of_jsbytes("hashchange"), - cst_change=caml_string_of_jsbytes("change"), - cst_input=caml_string_of_jsbytes("input"), - cst_timeupdate=caml_string_of_jsbytes("timeupdate"), - cst_submit=caml_string_of_jsbytes("submit"), - cst_scroll=caml_string_of_jsbytes("scroll"), - cst_focus=caml_string_of_jsbytes("focus"), - cst_blur=caml_string_of_jsbytes("blur"), - cst_load$0=caml_string_of_jsbytes("load"), - cst_unload=caml_string_of_jsbytes("unload"), - cst_beforeunload=caml_string_of_jsbytes("beforeunload"), - cst_resize=caml_string_of_jsbytes("resize"), - cst_orientationchange=caml_string_of_jsbytes("orientationchange"), - cst_popstate=caml_string_of_jsbytes("popstate"), - cst_error$0=caml_string_of_jsbytes("error"), - cst_abort$0=caml_string_of_jsbytes("abort"), - cst_select=caml_string_of_jsbytes("select"), - cst_online=caml_string_of_jsbytes("online"), - cst_offline=caml_string_of_jsbytes("offline"), - cst_checking=caml_string_of_jsbytes("checking"), - cst_noupdate=caml_string_of_jsbytes("noupdate"), - cst_downloading=caml_string_of_jsbytes("downloading"), - cst_progress$0=caml_string_of_jsbytes("progress"), - cst_updateready=caml_string_of_jsbytes("updateready"), - cst_cached=caml_string_of_jsbytes("cached"), - cst_obsolete=caml_string_of_jsbytes("obsolete"), - cst_DOMContentLoaded=caml_string_of_jsbytes("DOMContentLoaded"), - cst_animationstart=caml_string_of_jsbytes("animationstart"), - cst_animationend=caml_string_of_jsbytes("animationend"), - cst_animationiteration=caml_string_of_jsbytes("animationiteration"), - cst_animationcancel=caml_string_of_jsbytes("animationcancel"), - cst_transitionrun=caml_string_of_jsbytes("transitionrun"), - cst_transitionstart=caml_string_of_jsbytes("transitionstart"), - cst_transitionend=caml_string_of_jsbytes("transitionend"), - cst_transitioncancel=caml_string_of_jsbytes("transitioncancel"), - cst_canplay=caml_string_of_jsbytes("canplay"), - cst_canplaythrough=caml_string_of_jsbytes("canplaythrough"), - cst_durationchange=caml_string_of_jsbytes("durationchange"), - cst_emptied=caml_string_of_jsbytes("emptied"), - cst_ended=caml_string_of_jsbytes("ended"), - cst_gotpointercapture=caml_string_of_jsbytes("gotpointercapture"), - cst_loadeddata=caml_string_of_jsbytes("loadeddata"), - cst_loadedmetadata=caml_string_of_jsbytes("loadedmetadata"), - cst_loadstart$0=caml_string_of_jsbytes("loadstart"), - cst_lostpointercapture=caml_string_of_jsbytes("lostpointercapture"), - cst_message=caml_string_of_jsbytes("message"), - cst_pause=caml_string_of_jsbytes("pause"), - cst_play=caml_string_of_jsbytes("play"), - cst_playing=caml_string_of_jsbytes("playing"), - cst_pointerenter=caml_string_of_jsbytes("pointerenter"), - cst_pointercancel=caml_string_of_jsbytes("pointercancel"), - cst_pointerdown=caml_string_of_jsbytes("pointerdown"), - cst_pointerleave=caml_string_of_jsbytes("pointerleave"), - cst_pointermove=caml_string_of_jsbytes("pointermove"), - cst_pointerout=caml_string_of_jsbytes("pointerout"), - cst_pointerover=caml_string_of_jsbytes("pointerover"), - cst_pointerup=caml_string_of_jsbytes("pointerup"), - cst_ratechange=caml_string_of_jsbytes("ratechange"), - cst_seeked=caml_string_of_jsbytes("seeked"), - cst_seeking=caml_string_of_jsbytes("seeking"), - cst_stalled=caml_string_of_jsbytes("stalled"), - cst_suspend=caml_string_of_jsbytes("suspend"), - cst_volumechange=caml_string_of_jsbytes("volumechange"), - cst_waiting=caml_string_of_jsbytes("waiting"), - cst_Js_of_ocaml_Dom_html_Canva= - caml_string_of_jsbytes("Js_of_ocaml__Dom_html.Canvas_not_available"), - cst_checkbox=caml_string_of_jsbytes("checkbox"), - cst_file=caml_string_of_jsbytes("file"), - cst_password=caml_string_of_jsbytes("password"), - cst_radio=caml_string_of_jsbytes("radio"), - cst_reset=caml_string_of_jsbytes("reset"), - cst_submit$0=caml_string_of_jsbytes("submit"), - cst_text=caml_string_of_jsbytes("text"), - cst_readystatechange=caml_string_of_jsbytes("readystatechange"), - cst_loadstart$1=caml_string_of_jsbytes("loadstart"), - cst_progress$1=caml_string_of_jsbytes("progress"), - cst_abort$1=caml_string_of_jsbytes("abort"), - cst_error$1=caml_string_of_jsbytes("error"), - cst_load$1=caml_string_of_jsbytes("load"), - cst_timeout=caml_string_of_jsbytes("timeout"), - cst_loadend$0=caml_string_of_jsbytes("loadend"), - cst_Worker_onmessage_is_undefi$0= - caml_string_of_jsbytes("Worker.onmessage is undefined"), - cst_Worker_onmessage_is_undefi= - caml_string_of_jsbytes("Worker.onmessage is undefined"), - cst_Worker_import_scripts_is_u= - caml_string_of_jsbytes("Worker.import_scripts is undefined"), - cst_webglcontextlost=caml_string_of_jsbytes("webglcontextlost"), - cst_webglcontextrestored=caml_string_of_jsbytes("webglcontextrestored"), - cst_webglcontextcreationerror= - caml_string_of_jsbytes("webglcontextcreationerror"), - cst_g=caml_string_of_jsbytes("g"), - cst=caml_string_of_jsbytes("[\\][()\\\\|+*.?{}^$]"), - cst$37=caml_string_of_jsbytes(""), - cst$13=caml_string_of_jsbytes(""), - cst$21=caml_string_of_jsbytes(""), - cst$14=caml_string_of_jsbytes("#"), - cst$15=caml_string_of_jsbytes("?"), - cst$20=caml_string_of_jsbytes(""), - cst$16=caml_string_of_jsbytes("/"), - cst$17=caml_string_of_jsbytes("/"), - cst$19=caml_string_of_jsbytes(":"), - cst$18=caml_string_of_jsbytes(""), - cst_http$1=caml_string_of_jsbytes("http://"), - cst$22=caml_string_of_jsbytes(""), - cst$30=caml_string_of_jsbytes(""), - cst$23=caml_string_of_jsbytes("#"), - cst$24=caml_string_of_jsbytes("?"), - cst$29=caml_string_of_jsbytes(""), - cst$25=caml_string_of_jsbytes("/"), - cst$26=caml_string_of_jsbytes("/"), - cst$28=caml_string_of_jsbytes(":"), - cst$27=caml_string_of_jsbytes(""), - cst_https$1=caml_string_of_jsbytes("https://"), - cst$31=caml_string_of_jsbytes(""), - cst$36=caml_string_of_jsbytes(""), - cst$32=caml_string_of_jsbytes("#"), - cst$33=caml_string_of_jsbytes("?"), - cst$35=caml_string_of_jsbytes(""), - cst$34=caml_string_of_jsbytes("/"), - cst_file$2=caml_string_of_jsbytes("file://"), - cst$12=caml_string_of_jsbytes(""), - cst$11=caml_string_of_jsbytes(""), - cst$10=caml_string_of_jsbytes(""), - cst$9=caml_string_of_jsbytes(""), - cst$8=caml_string_of_jsbytes(""), - cst$7=caml_string_of_jsbytes(""), - cst$6=caml_string_of_jsbytes(""), - cst$4=caml_string_of_jsbytes("="), - cst$5=caml_string_of_jsbytes("&"), - cst$2=caml_string_of_jsbytes(""), - cst$3=caml_string_of_jsbytes(""), - cst_file$0=caml_string_of_jsbytes("file"), - cst_file$1=caml_string_of_jsbytes("file:"), - cst_http=caml_string_of_jsbytes("http"), - cst_http$0=caml_string_of_jsbytes("http:"), - cst_https=caml_string_of_jsbytes("https"), - cst_https$0=caml_string_of_jsbytes("https:"), - cst$1=caml_string_of_jsbytes(" "), - cst_2B=caml_string_of_jsbytes("%2B"), - cst_Js_of_ocaml_Url_Local_exn= - caml_string_of_jsbytes("Js_of_ocaml__Url.Local_exn"), - cst$0=caml_string_of_jsbytes("+"), - cst_Js_of_ocaml_Url_Not_an_htt= - caml_string_of_jsbytes("Js_of_ocaml__Url.Not_an_http_protocol"), - cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0= - caml_string_of_jsbytes - ("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?(/([^\\?#]*)(\\?([^#]*))?(#(.*))?)?$"), - cst_Ff_Ii_Ll_Ee= - caml_string_of_jsbytes - ("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#]*))?(#(.*))?$"), - s=caml_string_of_jsbytes("5.0.1"), - git_version=caml_string_of_jsbytes(""), - cst$38=caml_string_of_jsbytes(""), - cst$41=caml_string_of_jsbytes("+"), - cst_Jstable_keys=caml_string_of_jsbytes("Jstable.keys"), - t5=runtime.caml_int64_create_lo_mi_hi(1,0,0), - cst_is_not_a_valid_length$0= - caml_string_of_jsbytes(" is not a valid length"), - cst_d_d_deg_grad_rad_turns= - caml_string_of_jsbytes("^(\\d*(?:\\.\\d*))(deg|grad|rad|turns)$"), - cst_length_conversion_error$0= - caml_string_of_jsbytes("length conversion error: "), - cst_deg$0=caml_string_of_jsbytes("deg"), - cst_grad$0=caml_string_of_jsbytes("grad"), - cst_rad$0=caml_string_of_jsbytes("rad"), - cst_turns$0=caml_string_of_jsbytes("turns"), - cst_deg=caml_string_of_jsbytes("deg"), - cst_grad=caml_string_of_jsbytes("grad"), - cst_rad=caml_string_of_jsbytes("rad"), - cst_turns=caml_string_of_jsbytes("turns"), - cst_is_not_a_valid_length= - caml_string_of_jsbytes(" is not a valid length"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_d_d_s_S=caml_string_of_jsbytes("^(\\d*(?:\\.\\d*)?)\\s*(\\S*)$"), - cst_length_conversion_error= - caml_string_of_jsbytes("length conversion error: "), - cst_pc$0=caml_string_of_jsbytes("pc"), - cst_ch$0=caml_string_of_jsbytes("ch"), - cst_cm$0=caml_string_of_jsbytes("cm"), - cst_em$1=caml_string_of_jsbytes("em"), - cst_ex$0=caml_string_of_jsbytes("ex"), - cst_gd$0=caml_string_of_jsbytes("gd"), - cst_in$0=caml_string_of_jsbytes("in"), - cst_mm$0=caml_string_of_jsbytes("mm"), - cst_pt$0=caml_string_of_jsbytes("pt"), - cst_px$0=caml_string_of_jsbytes("px"), - cst_rem$0=caml_string_of_jsbytes("rem"), - cst_vh$0=caml_string_of_jsbytes("vh"), - cst_vm$0=caml_string_of_jsbytes("vm"), - cst_vw$0=caml_string_of_jsbytes("vw"), - cst_0=caml_string_of_jsbytes("0"), - cst_em$0=caml_string_of_jsbytes("em"), - cst_ex=caml_string_of_jsbytes("ex"), - cst_px=caml_string_of_jsbytes("px"), - cst_gd=caml_string_of_jsbytes("gd"), - cst_rem=caml_string_of_jsbytes("rem"), - cst_vw=caml_string_of_jsbytes("vw"), - cst_vh=caml_string_of_jsbytes("vh"), - cst_vm=caml_string_of_jsbytes("vm"), - cst_ch=caml_string_of_jsbytes("ch"), - cst_mm=caml_string_of_jsbytes("mm"), - cst_cm=caml_string_of_jsbytes("cm"), - cst_in=caml_string_of_jsbytes("in"), - cst_pt=caml_string_of_jsbytes("pt"), - cst_pc=caml_string_of_jsbytes("pc"), - cst$40=caml_string_of_jsbytes("): "), - cst_color_conversion_error$0= - caml_string_of_jsbytes("color conversion error ("), - cst$39=caml_string_of_jsbytes("): "), - cst_color_conversion_error= - caml_string_of_jsbytes("color conversion error ("), - cst_is_not_a_valid_color$0= - caml_string_of_jsbytes(" is not a valid color"), - cst_rgba_d_d_d_d_d= - caml_string_of_jsbytes - ("(rgba?)\\((?:(\\d*),(\\d*),(\\d*)(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_rgba_d_d_d_d_d$0= - caml_string_of_jsbytes - ("(rgba?)\\((?:(\\d*)%,(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_hsla_d_d_d_d_d= - caml_string_of_jsbytes - ("(hsla?)\\((?:(\\d*),(\\d*)%,(\\d*)%(?:,(\\d*(?:\\.\\d*)?))?)\\)"), - cst_rgb=caml_string_of_jsbytes("rgb"), - cst_rgba=caml_string_of_jsbytes("rgba"), - cst_rgb$0=caml_string_of_jsbytes("rgb"), - cst_rgba$0=caml_string_of_jsbytes("rgba"), - cst_hsl=caml_string_of_jsbytes("hsl"), - cst_hsla=caml_string_of_jsbytes("hsla"), - cst_rgb_s_d_s_d_s_d= - caml_string_of_jsbytes("^rgb\\(\\s*\\d*,\\s*\\d*,\\s*\\d*\\)$"), - cst_rgb_s_d_s_d_s_d$0= - caml_string_of_jsbytes("^rgb\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%\\)$"), - cst_rgba_s_d_s_d_s_d_d_d= - caml_string_of_jsbytes - ("^rgba\\(\\s*\\d*,\\s*\\d*,\\s*\\d*,\\d*\\.?\\d*\\)$"), - cst_rgba_s_d_s_d_s_d_d_d$0= - caml_string_of_jsbytes - ("^rgba\\(\\s*\\d*%,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), - cst_hsl_s_d_s_d_s_d= - caml_string_of_jsbytes("^hsl\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%\\)$"), - cst_hsla_s_d_s_d_s_d_d_d= - caml_string_of_jsbytes - ("^hsla\\(\\s*\\d*,\\s*\\d*%,\\s*\\d*%,\\d*\\.?\\d*\\)$"), - cst_is_not_a_valid_color=caml_string_of_jsbytes(" is not a valid color"), - cst_is_out_of_valid_range= - caml_string_of_jsbytes(" is out of valid range"), - partial=[8,[0,0,0],0,0,[12,41,0]], - partial$0=[12,41,0], - partial$1=[0,0,0], - cst_lightgrey$0=caml_string_of_jsbytes("lightgrey"), - cst_darkslategray$0=caml_string_of_jsbytes("darkslategray"), - cst_cornsilk$0=caml_string_of_jsbytes("cornsilk"), - cst_blue$0=caml_string_of_jsbytes("blue"), - cst_aliceblue$0=caml_string_of_jsbytes("aliceblue"), - cst_antiquewhite$0=caml_string_of_jsbytes("antiquewhite"), - cst_aqua$0=caml_string_of_jsbytes("aqua"), - cst_aquamarine$0=caml_string_of_jsbytes("aquamarine"), - cst_azure$0=caml_string_of_jsbytes("azure"), - cst_beige$0=caml_string_of_jsbytes("beige"), - cst_bisque$0=caml_string_of_jsbytes("bisque"), - cst_black$0=caml_string_of_jsbytes("black"), - cst_blanchedalmond$0=caml_string_of_jsbytes("blanchedalmond"), - cst_blueviolet$0=caml_string_of_jsbytes("blueviolet"), - cst_brown$0=caml_string_of_jsbytes("brown"), - cst_burlywood$0=caml_string_of_jsbytes("burlywood"), - cst_cadetblue$0=caml_string_of_jsbytes("cadetblue"), - cst_chartreuse$0=caml_string_of_jsbytes("chartreuse"), - cst_chocolate$0=caml_string_of_jsbytes("chocolate"), - cst_coral$0=caml_string_of_jsbytes("coral"), - cst_cornflowerblue$0=caml_string_of_jsbytes("cornflowerblue"), - cst_darkkhaki$0=caml_string_of_jsbytes("darkkhaki"), - cst_crimson$0=caml_string_of_jsbytes("crimson"), - cst_cyan$0=caml_string_of_jsbytes("cyan"), - cst_darkblue$0=caml_string_of_jsbytes("darkblue"), - cst_darkcyan$0=caml_string_of_jsbytes("darkcyan"), - cst_darkgoldenrod$0=caml_string_of_jsbytes("darkgoldenrod"), - cst_darkgray$0=caml_string_of_jsbytes("darkgray"), - cst_darkgreen$0=caml_string_of_jsbytes("darkgreen"), - cst_darkgrey$0=caml_string_of_jsbytes("darkgrey"), - cst_darkmagenta$0=caml_string_of_jsbytes("darkmagenta"), - cst_darkolivegreen$0=caml_string_of_jsbytes("darkolivegreen"), - cst_darkorange$0=caml_string_of_jsbytes("darkorange"), - cst_darkorchid$0=caml_string_of_jsbytes("darkorchid"), - cst_darkred$0=caml_string_of_jsbytes("darkred"), - cst_darksalmon$0=caml_string_of_jsbytes("darksalmon"), - cst_darkseagreen$0=caml_string_of_jsbytes("darkseagreen"), - cst_darkslateblue$0=caml_string_of_jsbytes("darkslateblue"), - cst_greenyellow$0=caml_string_of_jsbytes("greenyellow"), - cst_floralwhite$0=caml_string_of_jsbytes("floralwhite"), - cst_darkslategrey$0=caml_string_of_jsbytes("darkslategrey"), - cst_darkturquoise$0=caml_string_of_jsbytes("darkturquoise"), - cst_darkviolet$0=caml_string_of_jsbytes("darkviolet"), - cst_deeppink$0=caml_string_of_jsbytes("deeppink"), - cst_deepskyblue$0=caml_string_of_jsbytes("deepskyblue"), - cst_dimgray$0=caml_string_of_jsbytes("dimgray"), - cst_dimgrey$0=caml_string_of_jsbytes("dimgrey"), - cst_dodgerblue$0=caml_string_of_jsbytes("dodgerblue"), - cst_firebrick$0=caml_string_of_jsbytes("firebrick"), - cst_forestgreen$0=caml_string_of_jsbytes("forestgreen"), - cst_fuchsia$0=caml_string_of_jsbytes("fuchsia"), - cst_gainsboro$0=caml_string_of_jsbytes("gainsboro"), - cst_ghostwhite$0=caml_string_of_jsbytes("ghostwhite"), - cst_gold$0=caml_string_of_jsbytes("gold"), - cst_goldenrod$0=caml_string_of_jsbytes("goldenrod"), - cst_gray$0=caml_string_of_jsbytes("gray"), - cst_green$0=caml_string_of_jsbytes("green"), - cst_lavenderblush$0=caml_string_of_jsbytes("lavenderblush"), - cst_grey$0=caml_string_of_jsbytes("grey"), - cst_honeydew$0=caml_string_of_jsbytes("honeydew"), - cst_hotpink$0=caml_string_of_jsbytes("hotpink"), - cst_indianred$0=caml_string_of_jsbytes("indianred"), - cst_indigo$0=caml_string_of_jsbytes("indigo"), - cst_ivory$0=caml_string_of_jsbytes("ivory"), - cst_khaki$0=caml_string_of_jsbytes("khaki"), - cst_lavender$0=caml_string_of_jsbytes("lavender"), - cst_lawngreen$0=caml_string_of_jsbytes("lawngreen"), - cst_lemonchiffon$0=caml_string_of_jsbytes("lemonchiffon"), - cst_lightblue$0=caml_string_of_jsbytes("lightblue"), - cst_lightcoral$0=caml_string_of_jsbytes("lightcoral"), - cst_lightcyan$0=caml_string_of_jsbytes("lightcyan"), - cst_lightgoldenrodyellow$0=caml_string_of_jsbytes("lightgoldenrodyellow"), - cst_lightgray$0=caml_string_of_jsbytes("lightgray"), - cst_lightgreen$0=caml_string_of_jsbytes("lightgreen"), - cst_paleturquoise$0=caml_string_of_jsbytes("paleturquoise"), - cst_mediumslateblue$0=caml_string_of_jsbytes("mediumslateblue"), - cst_limegreen$0=caml_string_of_jsbytes("limegreen"), - cst_lightpink$0=caml_string_of_jsbytes("lightpink"), - cst_lightsalmon$0=caml_string_of_jsbytes("lightsalmon"), - cst_lightseagreen$0=caml_string_of_jsbytes("lightseagreen"), - cst_lightskyblue$0=caml_string_of_jsbytes("lightskyblue"), - cst_lightslategray$0=caml_string_of_jsbytes("lightslategray"), - cst_lightslategrey$0=caml_string_of_jsbytes("lightslategrey"), - cst_lightsteelblue$0=caml_string_of_jsbytes("lightsteelblue"), - cst_lightyellow$0=caml_string_of_jsbytes("lightyellow"), - cst_lime$0=caml_string_of_jsbytes("lime"), - cst_linen$0=caml_string_of_jsbytes("linen"), - cst_magenta$0=caml_string_of_jsbytes("magenta"), - cst_maroon$0=caml_string_of_jsbytes("maroon"), - cst_mediumaquamarine$0=caml_string_of_jsbytes("mediumaquamarine"), - cst_mediumblue$0=caml_string_of_jsbytes("mediumblue"), - cst_mediumorchid$0=caml_string_of_jsbytes("mediumorchid"), - cst_mediumpurple$0=caml_string_of_jsbytes("mediumpurple"), - cst_mediumseagreen$0=caml_string_of_jsbytes("mediumseagreen"), - cst_navy$0=caml_string_of_jsbytes("navy"), - cst_mediumspringgreen$0=caml_string_of_jsbytes("mediumspringgreen"), - cst_mediumturquoise$0=caml_string_of_jsbytes("mediumturquoise"), - cst_mediumvioletred$0=caml_string_of_jsbytes("mediumvioletred"), - cst_midnightblue$0=caml_string_of_jsbytes("midnightblue"), - cst_mintcream$0=caml_string_of_jsbytes("mintcream"), - cst_mistyrose$0=caml_string_of_jsbytes("mistyrose"), - cst_moccasin$0=caml_string_of_jsbytes("moccasin"), - cst_navajowhite$0=caml_string_of_jsbytes("navajowhite"), - cst_oldlace$0=caml_string_of_jsbytes("oldlace"), - cst_olive$0=caml_string_of_jsbytes("olive"), - cst_olivedrab$0=caml_string_of_jsbytes("olivedrab"), - cst_orange$0=caml_string_of_jsbytes("orange"), - cst_orangered$0=caml_string_of_jsbytes("orangered"), - cst_orchid$0=caml_string_of_jsbytes("orchid"), - cst_palegoldenrod$0=caml_string_of_jsbytes("palegoldenrod"), - cst_palegreen$0=caml_string_of_jsbytes("palegreen"), - cst_skyblue$0=caml_string_of_jsbytes("skyblue"), - cst_rosybrown$0=caml_string_of_jsbytes("rosybrown"), - cst_palevioletred$0=caml_string_of_jsbytes("palevioletred"), - cst_papayawhip$0=caml_string_of_jsbytes("papayawhip"), - cst_peachpuff$0=caml_string_of_jsbytes("peachpuff"), - cst_peru$0=caml_string_of_jsbytes("peru"), - cst_pink$0=caml_string_of_jsbytes("pink"), - cst_plum$0=caml_string_of_jsbytes("plum"), - cst_powderblue$0=caml_string_of_jsbytes("powderblue"), - cst_purple$0=caml_string_of_jsbytes("purple"), - cst_red$0=caml_string_of_jsbytes("red"), - cst_royalblue$0=caml_string_of_jsbytes("royalblue"), - cst_saddlebrown$0=caml_string_of_jsbytes("saddlebrown"), - cst_salmon$0=caml_string_of_jsbytes("salmon"), - cst_sandybrown$0=caml_string_of_jsbytes("sandybrown"), - cst_seagreen$0=caml_string_of_jsbytes("seagreen"), - cst_seashell$0=caml_string_of_jsbytes("seashell"), - cst_sienna$0=caml_string_of_jsbytes("sienna"), - cst_silver$0=caml_string_of_jsbytes("silver"), - cst_thistle$0=caml_string_of_jsbytes("thistle"), - cst_slateblue$0=caml_string_of_jsbytes("slateblue"), - cst_slategray$0=caml_string_of_jsbytes("slategray"), - cst_slategrey$0=caml_string_of_jsbytes("slategrey"), - cst_snow$0=caml_string_of_jsbytes("snow"), - cst_springgreen$0=caml_string_of_jsbytes("springgreen"), - cst_steelblue$0=caml_string_of_jsbytes("steelblue"), - cst_tan$0=caml_string_of_jsbytes("tan"), - cst_teal$0=caml_string_of_jsbytes("teal"), - cst_tomato$0=caml_string_of_jsbytes("tomato"), - cst_turquoise$0=caml_string_of_jsbytes("turquoise"), - cst_violet$0=caml_string_of_jsbytes("violet"), - cst_wheat$0=caml_string_of_jsbytes("wheat"), - cst_white$0=caml_string_of_jsbytes("white"), - cst_whitesmoke$0=caml_string_of_jsbytes("whitesmoke"), - cst_yellow$0=caml_string_of_jsbytes("yellow"), - cst_yellowgreen$0=caml_string_of_jsbytes("yellowgreen"), - cst_is_not_a_valid_color_name= - caml_string_of_jsbytes(" is not a valid color name"), - cst_aliceblue=caml_string_of_jsbytes("aliceblue"), - cst_antiquewhite=caml_string_of_jsbytes("antiquewhite"), - cst_aqua=caml_string_of_jsbytes("aqua"), - cst_aquamarine=caml_string_of_jsbytes("aquamarine"), - cst_azure=caml_string_of_jsbytes("azure"), - cst_beige=caml_string_of_jsbytes("beige"), - cst_bisque=caml_string_of_jsbytes("bisque"), - cst_black=caml_string_of_jsbytes("black"), - cst_blanchedalmond=caml_string_of_jsbytes("blanchedalmond"), - cst_blue=caml_string_of_jsbytes("blue"), - cst_blueviolet=caml_string_of_jsbytes("blueviolet"), - cst_brown=caml_string_of_jsbytes("brown"), - cst_burlywood=caml_string_of_jsbytes("burlywood"), - cst_cadetblue=caml_string_of_jsbytes("cadetblue"), - cst_chartreuse=caml_string_of_jsbytes("chartreuse"), - cst_chocolate=caml_string_of_jsbytes("chocolate"), - cst_coral=caml_string_of_jsbytes("coral"), - cst_cornflowerblue=caml_string_of_jsbytes("cornflowerblue"), - cst_cornsilk=caml_string_of_jsbytes("cornsilk"), - cst_crimson=caml_string_of_jsbytes("crimson"), - cst_cyan=caml_string_of_jsbytes("cyan"), - cst_darkblue=caml_string_of_jsbytes("darkblue"), - cst_darkcyan=caml_string_of_jsbytes("darkcyan"), - cst_darkgoldenrod=caml_string_of_jsbytes("darkgoldenrod"), - cst_darkgray=caml_string_of_jsbytes("darkgray"), - cst_darkgreen=caml_string_of_jsbytes("darkgreen"), - cst_darkgrey=caml_string_of_jsbytes("darkgrey"), - cst_darkkhaki=caml_string_of_jsbytes("darkkhaki"), - cst_darkmagenta=caml_string_of_jsbytes("darkmagenta"), - cst_darkolivegreen=caml_string_of_jsbytes("darkolivegreen"), - cst_darkorange=caml_string_of_jsbytes("darkorange"), - cst_darkorchid=caml_string_of_jsbytes("darkorchid"), - cst_darkred=caml_string_of_jsbytes("darkred"), - cst_darksalmon=caml_string_of_jsbytes("darksalmon"), - cst_darkseagreen=caml_string_of_jsbytes("darkseagreen"), - cst_darkslateblue=caml_string_of_jsbytes("darkslateblue"), - cst_darkslategray=caml_string_of_jsbytes("darkslategray"), - cst_darkslategrey=caml_string_of_jsbytes("darkslategrey"), - cst_darkturquoise=caml_string_of_jsbytes("darkturquoise"), - cst_darkviolet=caml_string_of_jsbytes("darkviolet"), - cst_deeppink=caml_string_of_jsbytes("deeppink"), - cst_deepskyblue=caml_string_of_jsbytes("deepskyblue"), - cst_dimgray=caml_string_of_jsbytes("dimgray"), - cst_dimgrey=caml_string_of_jsbytes("dimgrey"), - cst_dodgerblue=caml_string_of_jsbytes("dodgerblue"), - cst_firebrick=caml_string_of_jsbytes("firebrick"), - cst_floralwhite=caml_string_of_jsbytes("floralwhite"), - cst_forestgreen=caml_string_of_jsbytes("forestgreen"), - cst_fuchsia=caml_string_of_jsbytes("fuchsia"), - cst_gainsboro=caml_string_of_jsbytes("gainsboro"), - cst_ghostwhite=caml_string_of_jsbytes("ghostwhite"), - cst_gold=caml_string_of_jsbytes("gold"), - cst_goldenrod=caml_string_of_jsbytes("goldenrod"), - cst_gray=caml_string_of_jsbytes("gray"), - cst_grey=caml_string_of_jsbytes("grey"), - cst_green=caml_string_of_jsbytes("green"), - cst_greenyellow=caml_string_of_jsbytes("greenyellow"), - cst_honeydew=caml_string_of_jsbytes("honeydew"), - cst_hotpink=caml_string_of_jsbytes("hotpink"), - cst_indianred=caml_string_of_jsbytes("indianred"), - cst_indigo=caml_string_of_jsbytes("indigo"), - cst_ivory=caml_string_of_jsbytes("ivory"), - cst_khaki=caml_string_of_jsbytes("khaki"), - cst_lavender=caml_string_of_jsbytes("lavender"), - cst_lavenderblush=caml_string_of_jsbytes("lavenderblush"), - cst_lawngreen=caml_string_of_jsbytes("lawngreen"), - cst_lemonchiffon=caml_string_of_jsbytes("lemonchiffon"), - cst_lightblue=caml_string_of_jsbytes("lightblue"), - cst_lightcoral=caml_string_of_jsbytes("lightcoral"), - cst_lightcyan=caml_string_of_jsbytes("lightcyan"), - cst_lightgoldenrodyellow=caml_string_of_jsbytes("lightgoldenrodyellow"), - cst_lightgray=caml_string_of_jsbytes("lightgray"), - cst_lightgreen=caml_string_of_jsbytes("lightgreen"), - cst_lightgrey=caml_string_of_jsbytes("lightgrey"), - cst_lightpink=caml_string_of_jsbytes("lightpink"), - cst_lightsalmon=caml_string_of_jsbytes("lightsalmon"), - cst_lightseagreen=caml_string_of_jsbytes("lightseagreen"), - cst_lightskyblue=caml_string_of_jsbytes("lightskyblue"), - cst_lightslategray=caml_string_of_jsbytes("lightslategray"), - cst_lightslategrey=caml_string_of_jsbytes("lightslategrey"), - cst_lightsteelblue=caml_string_of_jsbytes("lightsteelblue"), - cst_lightyellow=caml_string_of_jsbytes("lightyellow"), - cst_lime=caml_string_of_jsbytes("lime"), - cst_limegreen=caml_string_of_jsbytes("limegreen"), - cst_linen=caml_string_of_jsbytes("linen"), - cst_magenta=caml_string_of_jsbytes("magenta"), - cst_maroon=caml_string_of_jsbytes("maroon"), - cst_mediumaquamarine=caml_string_of_jsbytes("mediumaquamarine"), - cst_mediumblue=caml_string_of_jsbytes("mediumblue"), - cst_mediumorchid=caml_string_of_jsbytes("mediumorchid"), - cst_mediumpurple=caml_string_of_jsbytes("mediumpurple"), - cst_mediumseagreen=caml_string_of_jsbytes("mediumseagreen"), - cst_mediumslateblue=caml_string_of_jsbytes("mediumslateblue"), - cst_mediumspringgreen=caml_string_of_jsbytes("mediumspringgreen"), - cst_mediumturquoise=caml_string_of_jsbytes("mediumturquoise"), - cst_mediumvioletred=caml_string_of_jsbytes("mediumvioletred"), - cst_midnightblue=caml_string_of_jsbytes("midnightblue"), - cst_mintcream=caml_string_of_jsbytes("mintcream"), - cst_mistyrose=caml_string_of_jsbytes("mistyrose"), - cst_moccasin=caml_string_of_jsbytes("moccasin"), - cst_navajowhite=caml_string_of_jsbytes("navajowhite"), - cst_navy=caml_string_of_jsbytes("navy"), - cst_oldlace=caml_string_of_jsbytes("oldlace"), - cst_olive=caml_string_of_jsbytes("olive"), - cst_olivedrab=caml_string_of_jsbytes("olivedrab"), - cst_orange=caml_string_of_jsbytes("orange"), - cst_orangered=caml_string_of_jsbytes("orangered"), - cst_orchid=caml_string_of_jsbytes("orchid"), - cst_palegoldenrod=caml_string_of_jsbytes("palegoldenrod"), - cst_palegreen=caml_string_of_jsbytes("palegreen"), - cst_paleturquoise=caml_string_of_jsbytes("paleturquoise"), - cst_palevioletred=caml_string_of_jsbytes("palevioletred"), - cst_papayawhip=caml_string_of_jsbytes("papayawhip"), - cst_peachpuff=caml_string_of_jsbytes("peachpuff"), - cst_peru=caml_string_of_jsbytes("peru"), - cst_pink=caml_string_of_jsbytes("pink"), - cst_plum=caml_string_of_jsbytes("plum"), - cst_powderblue=caml_string_of_jsbytes("powderblue"), - cst_purple=caml_string_of_jsbytes("purple"), - cst_red=caml_string_of_jsbytes("red"), - cst_rosybrown=caml_string_of_jsbytes("rosybrown"), - cst_royalblue=caml_string_of_jsbytes("royalblue"), - cst_saddlebrown=caml_string_of_jsbytes("saddlebrown"), - cst_salmon=caml_string_of_jsbytes("salmon"), - cst_sandybrown=caml_string_of_jsbytes("sandybrown"), - cst_seagreen=caml_string_of_jsbytes("seagreen"), - cst_seashell=caml_string_of_jsbytes("seashell"), - cst_sienna=caml_string_of_jsbytes("sienna"), - cst_silver=caml_string_of_jsbytes("silver"), - cst_skyblue=caml_string_of_jsbytes("skyblue"), - cst_slateblue=caml_string_of_jsbytes("slateblue"), - cst_slategray=caml_string_of_jsbytes("slategray"), - cst_slategrey=caml_string_of_jsbytes("slategrey"), - cst_snow=caml_string_of_jsbytes("snow"), - cst_springgreen=caml_string_of_jsbytes("springgreen"), - cst_steelblue=caml_string_of_jsbytes("steelblue"), - cst_tan=caml_string_of_jsbytes("tan"), - cst_teal=caml_string_of_jsbytes("teal"), - cst_thistle=caml_string_of_jsbytes("thistle"), - cst_tomato=caml_string_of_jsbytes("tomato"), - cst_turquoise=caml_string_of_jsbytes("turquoise"), - cst_violet=caml_string_of_jsbytes("violet"), - cst_wheat=caml_string_of_jsbytes("wheat"), - cst_white=caml_string_of_jsbytes("white"), - cst_whitesmoke=caml_string_of_jsbytes("whitesmoke"), - cst_yellow=caml_string_of_jsbytes("yellow"), - cst_yellowgreen=caml_string_of_jsbytes("yellowgreen"), - cst_vkern$0=caml_string_of_jsbytes("vkern"), - cst_view$0=caml_string_of_jsbytes("view"), - cst_use$0=caml_string_of_jsbytes("use"), - cst_tspan$0=caml_string_of_jsbytes("tspan"), - cst_tref$0=caml_string_of_jsbytes("tref"), - cst_title$3=caml_string_of_jsbytes("title"), - cst_textpath$0=caml_string_of_jsbytes("textpath"), - cst_text$1=caml_string_of_jsbytes("text"), - cst_symbol$0=caml_string_of_jsbytes("symbol"), - cst_switch$0=caml_string_of_jsbytes("switch"), - cst_svg$0=caml_string_of_jsbytes("svg"), - cst_style$3=caml_string_of_jsbytes("style"), - cst_stop$0=caml_string_of_jsbytes("stop"), - cst_set$0=caml_string_of_jsbytes("set"), - cst_script$3=caml_string_of_jsbytes("script"), - cst_rect$0=caml_string_of_jsbytes("rect"), - cst_radialgradient$0=caml_string_of_jsbytes("radialgradient"), - cst_polyline$0=caml_string_of_jsbytes("polyline"), - cst_polygon$0=caml_string_of_jsbytes("polygon"), - cst_pattern$0=caml_string_of_jsbytes("pattern"), - cst_path$0=caml_string_of_jsbytes("path"), - cst_mpath$0=caml_string_of_jsbytes("mpath"), - cst_missing_glyph$0=caml_string_of_jsbytes("missing-glyph"), - cst_metadata$0=caml_string_of_jsbytes("metadata"), - cst_mask$0=caml_string_of_jsbytes("mask"), - cst_lineargradient$0=caml_string_of_jsbytes("lineargradient"), - cst_line$0=caml_string_of_jsbytes("line"), - cst_image$0=caml_string_of_jsbytes("image"), - cst_hkern$0=caml_string_of_jsbytes("hkern"), - cst_glyphref$0=caml_string_of_jsbytes("glyphref"), - cst_glyph$0=caml_string_of_jsbytes("glyph"), - cst_g$1=caml_string_of_jsbytes("g"), - cst_foreignobject=caml_string_of_jsbytes("foreignobject"), - cst_font_face_uri$0=caml_string_of_jsbytes("font-face-uri"), - cst_font_face_src$0=caml_string_of_jsbytes("font-face-src"), - cst_font_face_name$0=caml_string_of_jsbytes("font-face-name"), - cst_font_face_format$0=caml_string_of_jsbytes("font-face-format"), - cst_font_face$0=caml_string_of_jsbytes("font-face"), - cst_font$0=caml_string_of_jsbytes("font"), - cst_filter$0=caml_string_of_jsbytes("filter"), - cst_ellipse$0=caml_string_of_jsbytes("ellipse"), - cst_desc$0=caml_string_of_jsbytes("desc"), - cst_defs$0=caml_string_of_jsbytes("defs"), - cst_cursor$0=caml_string_of_jsbytes("cursor"), - cst_clippath$0=caml_string_of_jsbytes("clippath"), - cst_circle$0=caml_string_of_jsbytes("circle"), - cst_animatetransform$0=caml_string_of_jsbytes("animatetransform"), - cst_animatemotion$0=caml_string_of_jsbytes("animatemotion"), - cst_animatecolor$0=caml_string_of_jsbytes("animatecolor"), - cst_animate$0=caml_string_of_jsbytes("animate"), - cst_altglyphitem$0=caml_string_of_jsbytes("altglyphitem"), - cst_altglyphdef$0=caml_string_of_jsbytes("altglyphdef"), - cst_altglyph$0=caml_string_of_jsbytes("altglyph"), - cst_a$3=caml_string_of_jsbytes("a"), - cst_vkern=caml_string_of_jsbytes("vkern"), - cst_view=caml_string_of_jsbytes("view"), - cst_use=caml_string_of_jsbytes("use"), - cst_tspan=caml_string_of_jsbytes("tspan"), - cst_tref=caml_string_of_jsbytes("tref"), - cst_title$2=caml_string_of_jsbytes("title"), - cst_textpath=caml_string_of_jsbytes("textpath"), - cst_text$0=caml_string_of_jsbytes("text"), - cst_symbol=caml_string_of_jsbytes("symbol"), - cst_switch=caml_string_of_jsbytes("switch"), - cst_svg=caml_string_of_jsbytes("svg"), - cst_style$2=caml_string_of_jsbytes("style"), - cst_stop=caml_string_of_jsbytes("stop"), - cst_set=caml_string_of_jsbytes("set"), - cst_script$2=caml_string_of_jsbytes("script"), - cst_rect=caml_string_of_jsbytes("rect"), - cst_radialgradient=caml_string_of_jsbytes("radialgradient"), - cst_polyline=caml_string_of_jsbytes("polyline"), - cst_polygon=caml_string_of_jsbytes("polygon"), - cst_pattern=caml_string_of_jsbytes("pattern"), - cst_path=caml_string_of_jsbytes("path"), - cst_mpath=caml_string_of_jsbytes("mpath"), - cst_missing_glyph=caml_string_of_jsbytes("missing-glyph"), - cst_metadata=caml_string_of_jsbytes("metadata"), - cst_mask=caml_string_of_jsbytes("mask"), - cst_lineargradient=caml_string_of_jsbytes("lineargradient"), - cst_line=caml_string_of_jsbytes("line"), - cst_image=caml_string_of_jsbytes("image"), - cst_hkern=caml_string_of_jsbytes("hkern"), - cst_glyphref=caml_string_of_jsbytes("glyphref"), - cst_glyph=caml_string_of_jsbytes("glyph"), - cst_g$0=caml_string_of_jsbytes("g"), - cst_foreignObject=caml_string_of_jsbytes("foreignObject"), - cst_font_face_uri=caml_string_of_jsbytes("font-face-uri"), - cst_font_face_src=caml_string_of_jsbytes("font-face-src"), - cst_font_face_name=caml_string_of_jsbytes("font-face-name"), - cst_font_face_format=caml_string_of_jsbytes("font-face-format"), - cst_font_face=caml_string_of_jsbytes("font-face"), - cst_font=caml_string_of_jsbytes("font"), - cst_filter=caml_string_of_jsbytes("filter"), - cst_ellipse=caml_string_of_jsbytes("ellipse"), - cst_desc=caml_string_of_jsbytes("desc"), - cst_defs=caml_string_of_jsbytes("defs"), - cst_cursor=caml_string_of_jsbytes("cursor"), - cst_clippath=caml_string_of_jsbytes("clippath"), - cst_circle=caml_string_of_jsbytes("circle"), - cst_animatetransform=caml_string_of_jsbytes("animatetransform"), - cst_animatemotion=caml_string_of_jsbytes("animatemotion"), - cst_animatecolor=caml_string_of_jsbytes("animatecolor"), - cst_animate=caml_string_of_jsbytes("animate"), - cst_altglyphitem=caml_string_of_jsbytes("altglyphitem"), - cst_altglyphdef=caml_string_of_jsbytes("altglyphdef"), - cst_altglyph=caml_string_of_jsbytes("altglyph"), - cst_a$2=caml_string_of_jsbytes("a"), - cst_Js_of_ocaml_Dom_svg_SVGErr= - caml_string_of_jsbytes("Js_of_ocaml__Dom_svg.SVGError"), - Stdlib_String=global_data.Stdlib__String, - Stdlib_Char=global_data.Stdlib__Char, - Stdlib=global_data.Stdlib, - Jsoo_runtime=global_data.Jsoo_runtime, - Stdlib_Printexc=global_data.Stdlib__Printexc, - Assert_failure=global_data.Assert_failure, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_Uchar=global_data.Stdlib__Uchar, - Stdlib_Printf=global_data.Stdlib__Printf; - global_data.CamlinternalOO; - var Stdlib_Obj=global_data.Stdlib__Obj,Js_of_ocaml=[0]; - caml_register_global(1653,Js_of_ocaml,"Js_of_ocaml__"); - var - Poly=[0], - _g_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom.ml"),351,67], - _h_=[0,caml_string_of_jsbytes("transparent")], - _i_=[0,caml_string_of_jsbytes("native")], - _m_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2894,58], - _l_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/dom_html.ml"),2893,61], - _k_= - [0, - [11, - caml_string_of_jsbytes("getElementById_exn: "), - [3,0,[11,caml_string_of_jsbytes(" not found"),0]]], - caml_string_of_jsbytes("getElementById_exn: %S not found")], - _p_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/form.ml"),178,13], - _o_=[0,1], - _q_=[0,caml_string_of_jsbytes("lib/js_of_ocaml/regexp.ml"),34,64], - _r_=[0,caml_string_of_jsbytes(""),0], - _cl_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cm_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cn_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _co_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b9_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b__=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b$_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ca_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cb_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cc_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cd_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ce_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cf_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cg_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ch_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ci_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _cj_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _ck_=[0,[8,[0,0,0],0,0,[2,0,0]],caml_string_of_jsbytes("%f%s")], - _b8_= - caml_list_of_js_array - ([caml_string_of_jsbytes("aliceblue"), - caml_string_of_jsbytes("antiquewhite"), - caml_string_of_jsbytes("aqua"), - caml_string_of_jsbytes("aquamarine"), - caml_string_of_jsbytes("azure"), - caml_string_of_jsbytes("beige"), - caml_string_of_jsbytes("bisque"), - caml_string_of_jsbytes("black"), - caml_string_of_jsbytes("blanchedalmond"), - caml_string_of_jsbytes("blue"), - caml_string_of_jsbytes("blueviolet"), - caml_string_of_jsbytes("brown"), - caml_string_of_jsbytes("burlywood"), - caml_string_of_jsbytes("cadetblue"), - caml_string_of_jsbytes("chartreuse"), - caml_string_of_jsbytes("chocolate"), - caml_string_of_jsbytes("coral"), - caml_string_of_jsbytes("cornflowerblue"), - caml_string_of_jsbytes("cornsilk"), - caml_string_of_jsbytes("crimson"), - caml_string_of_jsbytes("cyan"), - caml_string_of_jsbytes("darkblue"), - caml_string_of_jsbytes("darkcyan"), - caml_string_of_jsbytes("darkgoldenrod"), - caml_string_of_jsbytes("darkgray"), - caml_string_of_jsbytes("darkgreen"), - caml_string_of_jsbytes("darkgrey"), - caml_string_of_jsbytes("darkkhaki"), - caml_string_of_jsbytes("darkmagenta"), - caml_string_of_jsbytes("darkolivegreen"), - caml_string_of_jsbytes("darkorange"), - caml_string_of_jsbytes("darkorchid"), - caml_string_of_jsbytes("darkred"), - caml_string_of_jsbytes("darksalmon"), - caml_string_of_jsbytes("darkseagreen"), - caml_string_of_jsbytes("darkslateblue"), - caml_string_of_jsbytes("darkslategray"), - caml_string_of_jsbytes("darkslategrey"), - caml_string_of_jsbytes("darkturquoise"), - caml_string_of_jsbytes("darkviolet"), - caml_string_of_jsbytes("deeppink"), - caml_string_of_jsbytes("deepskyblue"), - caml_string_of_jsbytes("dimgray"), - caml_string_of_jsbytes("dimgrey"), - caml_string_of_jsbytes("dodgerblue"), - caml_string_of_jsbytes("firebrick"), - caml_string_of_jsbytes("floralwhite"), - caml_string_of_jsbytes("forestgreen"), - caml_string_of_jsbytes("fuchsia"), - caml_string_of_jsbytes("gainsboro"), - caml_string_of_jsbytes("ghostwhite"), - caml_string_of_jsbytes("gold"), - caml_string_of_jsbytes("goldenrod"), - caml_string_of_jsbytes("gray"), - caml_string_of_jsbytes("green"), - caml_string_of_jsbytes("greenyellow"), - caml_string_of_jsbytes("grey"), - caml_string_of_jsbytes("honeydew"), - caml_string_of_jsbytes("hotpink"), - caml_string_of_jsbytes("indianred"), - caml_string_of_jsbytes("indigo"), - caml_string_of_jsbytes("ivory"), - caml_string_of_jsbytes("khaki"), - caml_string_of_jsbytes("lavender"), - caml_string_of_jsbytes("lavenderblush"), - caml_string_of_jsbytes("lawngreen"), - caml_string_of_jsbytes("lemonchiffon"), - caml_string_of_jsbytes("lightblue"), - caml_string_of_jsbytes("lightcoral"), - caml_string_of_jsbytes("lightcyan"), - caml_string_of_jsbytes("lightgoldenrodyellow"), - caml_string_of_jsbytes("lightgray"), - caml_string_of_jsbytes("lightgreen"), - caml_string_of_jsbytes("lightgrey"), - caml_string_of_jsbytes("lightpink"), - caml_string_of_jsbytes("lightsalmon"), - caml_string_of_jsbytes("lightseagreen"), - caml_string_of_jsbytes("lightskyblue"), - caml_string_of_jsbytes("lightslategray"), - caml_string_of_jsbytes("lightslategrey"), - caml_string_of_jsbytes("lightsteelblue"), - caml_string_of_jsbytes("lightyellow"), - caml_string_of_jsbytes("lime"), - caml_string_of_jsbytes("limegreen"), - caml_string_of_jsbytes("linen"), - caml_string_of_jsbytes("magenta"), - caml_string_of_jsbytes("maroon"), - caml_string_of_jsbytes("mediumaquamarine"), - caml_string_of_jsbytes("mediumblue"), - caml_string_of_jsbytes("mediumorchid"), - caml_string_of_jsbytes("mediumpurple"), - caml_string_of_jsbytes("mediumseagreen"), - caml_string_of_jsbytes("mediumslateblue"), - caml_string_of_jsbytes("mediumspringgreen"), - caml_string_of_jsbytes("mediumturquoise"), - caml_string_of_jsbytes("mediumvioletred"), - caml_string_of_jsbytes("midnightblue"), - caml_string_of_jsbytes("mintcream"), - caml_string_of_jsbytes("mistyrose"), - caml_string_of_jsbytes("moccasin"), - caml_string_of_jsbytes("navajowhite"), - caml_string_of_jsbytes("navy"), - caml_string_of_jsbytes("oldlace"), - caml_string_of_jsbytes("olive"), - caml_string_of_jsbytes("olivedrab"), - caml_string_of_jsbytes("orange"), - caml_string_of_jsbytes("orangered"), - caml_string_of_jsbytes("orchid"), - caml_string_of_jsbytes("palegoldenrod"), - caml_string_of_jsbytes("palegreen"), - caml_string_of_jsbytes("paleturquoise"), - caml_string_of_jsbytes("palevioletred"), - caml_string_of_jsbytes("papayawhip"), - caml_string_of_jsbytes("peachpuff"), - caml_string_of_jsbytes("peru"), - caml_string_of_jsbytes("pink"), - caml_string_of_jsbytes("plum"), - caml_string_of_jsbytes("powderblue"), - caml_string_of_jsbytes("purple"), - caml_string_of_jsbytes("red"), - caml_string_of_jsbytes("rosybrown"), - caml_string_of_jsbytes("royalblue"), - caml_string_of_jsbytes("saddlebrown"), - caml_string_of_jsbytes("salmon"), - caml_string_of_jsbytes("sandybrown"), - caml_string_of_jsbytes("seagreen"), - caml_string_of_jsbytes("seashell"), - caml_string_of_jsbytes("sienna"), - caml_string_of_jsbytes("silver"), - caml_string_of_jsbytes("skyblue"), - caml_string_of_jsbytes("slateblue"), - caml_string_of_jsbytes("slategray"), - caml_string_of_jsbytes("slategrey"), - caml_string_of_jsbytes("snow"), - caml_string_of_jsbytes("springgreen"), - caml_string_of_jsbytes("steelblue"), - caml_string_of_jsbytes("tan"), - caml_string_of_jsbytes("teal"), - caml_string_of_jsbytes("thistle"), - caml_string_of_jsbytes("tomato"), - caml_string_of_jsbytes("turquoise"), - caml_string_of_jsbytes("violet"), - caml_string_of_jsbytes("wheat"), - caml_string_of_jsbytes("white"), - caml_string_of_jsbytes("whitesmoke"), - caml_string_of_jsbytes("yellow"), - caml_string_of_jsbytes("yellowgreen")]), - _b7_= - [0, - [12,35,[4,8,[0,2,2],0,[4,8,[0,2,2],0,[4,8,[0,2,2],0,0]]]], - caml_string_of_jsbytes("#%02X%02X%02X")], - _b1_= - [0, - [11, - caml_string_of_jsbytes("rgb("), - [4,0,0,0,[12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,41,0]]]]]]], - caml_string_of_jsbytes("rgb(%d,%d,%d)")], - _b2_= - [0, - [11, - caml_string_of_jsbytes("rgb("), - [4, - 0, - 0, - 0, - [12,37,[12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]]], - caml_string_of_jsbytes("rgb(%d%%,%d%%,%d%%)")], - _b3_= - [0, - [11, - caml_string_of_jsbytes("rgba("), - [4, - 0, - 0, - 0, - [12,44,[4,0,0,0,[12,44,[4,0,0,0,[12,44,[8,[0,0,0],0,0,[12,41,0]]]]]]]]], - caml_string_of_jsbytes("rgba(%d,%d,%d,%f)")], - _b4_= - [0, - [11, - caml_string_of_jsbytes("rgba("), - [4, - 0, - 0, - 0, - [12, - 37, - [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,44,partial]]]]]]]]]], - caml_string_of_jsbytes("rgba(%d%%,%d%%,%d%%,%f)")], - _b5_= - [0, - [11, - caml_string_of_jsbytes("hsl("), - [4, - 0, - 0, - 0, - [12,44,[4,0,0,0,[12,37,[12,44,[4,0,0,0,[12,37,[12,41,0]]]]]]]]], - caml_string_of_jsbytes("hsl(%d,%d%%,%d%%)")], - _b6_= - [0, - [11, - caml_string_of_jsbytes("hsla("), - [4, - 0, - 0, - 0, - [12, - 44, - [4, - 0, - 0, - 0, - [12, - 37, - [12,44,[4,0,0,0,[12,37,[12,44,[8,partial$1,0,0,partial$0]]]]]]]]]], - caml_string_of_jsbytes("hsla(%d,%d%%,%d%%,%f)")], - _y_=[0,240,248,255], - _z_=[0,250,235,215], - _A_=[0,0,255,255], - _B_=[0,127,255,212], - _C_=[0,240,255,255], - _D_=[0,245,245,220], - _E_=[0,255,228,196], - _F_=[0,0,0,0], - _G_=[0,255,235,205], - _H_=[0,0,0,255], - _I_=[0,138,43,226], - _J_=[0,165,42,42], - _K_=[0,222,184,135], - _L_=[0,95,158,160], - _M_=[0,127,255,0], - _N_=[0,210,105,30], - _O_=[0,255,127,80], - _P_=[0,100,149,237], - _Q_=[0,255,248,220], - _R_=[0,220,20,60], - _S_=[0,0,255,255], - _T_=[0,0,0,139], - _U_=[0,0,139,139], - _V_=[0,184,134,11], - _W_=[0,169,169,169], - _X_=[0,0,100,0], - _Y_=[0,169,169,169], - _Z_=[0,189,183,107], - ___=[0,139,0,139], - _$_=[0,85,107,47], - _aa_=[0,255,140,0], - _ab_=[0,153,50,204], - _ac_=[0,139,0,0], - _ad_=[0,233,150,122], - _ae_=[0,143,188,143], - _af_=[0,72,61,139], - _ag_=[0,47,79,79], - _ah_=[0,47,79,79], - _ai_=[0,0,206,209], - _aj_=[0,148,0,211], - _ak_=[0,255,20,147], - _al_=[0,0,191,255], - _am_=[0,105,105,105], - _an_=[0,105,105,105], - _ao_=[0,30,144,255], - _ap_=[0,178,34,34], - _aq_=[0,255,250,240], - _ar_=[0,34,139,34], - _as_=[0,255,0,255], - _at_=[0,220,220,220], - _au_=[0,248,248,255], - _av_=[0,255,215,0], - _aw_=[0,218,165,32], - _ax_=[0,128,128,128], - _ay_=[0,128,128,128], - _az_=[0,0,128,0], - _aA_=[0,173,255,47], - _aB_=[0,240,255,240], - _aC_=[0,255,105,180], - _aD_=[0,205,92,92], - _aE_=[0,75,0,130], - _aF_=[0,255,255,240], - _aG_=[0,240,230,140], - _aH_=[0,230,230,250], - _aI_=[0,255,240,245], - _aJ_=[0,124,252,0], - _aK_=[0,255,250,205], - _aL_=[0,173,216,230], - _aM_=[0,240,128,128], - _aN_=[0,224,255,255], - _aO_=[0,250,250,210], - _aP_=[0,211,211,211], - _aQ_=[0,144,238,144], - _aR_=[0,211,211,211], - _aS_=[0,255,182,193], - _aT_=[0,255,160,122], - _aU_=[0,32,178,170], - _aV_=[0,135,206,250], - _aW_=[0,119,136,153], - _aX_=[0,119,136,153], - _aY_=[0,176,196,222], - _aZ_=[0,255,255,224], - _a0_=[0,0,255,0], - _a1_=[0,50,205,50], - _a2_=[0,250,240,230], - _a3_=[0,255,0,255], - _a4_=[0,128,0,0], - _a5_=[0,102,205,170], - _a6_=[0,0,0,205], - _a7_=[0,186,85,211], - _a8_=[0,147,112,219], - _a9_=[0,60,179,113], - _a__=[0,123,104,238], - _a$_=[0,0,250,154], - _ba_=[0,72,209,204], - _bb_=[0,199,21,133], - _bc_=[0,25,25,112], - _bd_=[0,245,255,250], - _be_=[0,255,228,225], - _bf_=[0,255,228,181], - _bg_=[0,255,222,173], - _bh_=[0,0,0,128], - _bi_=[0,253,245,230], - _bj_=[0,128,128,0], - _bk_=[0,107,142,35], - _bl_=[0,255,165,0], - _bm_=[0,255,69,0], - _bn_=[0,218,112,214], - _bo_=[0,238,232,170], - _bp_=[0,152,251,152], - _bq_=[0,175,238,238], - _br_=[0,219,112,147], - _bs_=[0,255,239,213], - _bt_=[0,255,218,185], - _bu_=[0,205,133,63], - _bv_=[0,255,192,203], - _bw_=[0,221,160,221], - _bx_=[0,176,224,230], - _by_=[0,128,0,128], - _bz_=[0,255,0,0], - _bA_=[0,188,143,143], - _bB_=[0,65,105,225], - _bC_=[0,139,69,19], - _bD_=[0,250,128,114], - _bE_=[0,244,164,96], - _bF_=[0,46,139,87], - _bG_=[0,255,245,238], - _bH_=[0,160,82,45], - _bI_=[0,192,192,192], - _bJ_=[0,135,206,235], - _bK_=[0,106,90,205], - _bL_=[0,112,128,144], - _bM_=[0,112,128,144], - _bN_=[0,255,250,250], - _bO_=[0,0,255,127], - _bP_=[0,70,130,180], - _bQ_=[0,210,180,140], - _bR_=[0,0,128,128], - _bS_=[0,216,191,216], - _bT_=[0,255,99,71], - _bU_=[0,64,224,208], - _bV_=[0,238,130,238], - _bW_=[0,245,222,179], - _bX_=[0,255,255,255], - _bY_=[0,245,245,245], - _bZ_=[0,255,255,0], - _b0_=[0,154,205,50]; - function symbol(x,y){return x < y?1:0} - function symbol$0(x,y){return x <= y?1:0} - function symbol$1(x,y){return x !== y?1:0} - function symbol$2(x,y){return x === y?1:0} - function symbol$3(x,y){return y < x?1:0} - function symbol$4(x,y){return y <= x?1:0} - var compare=runtime.caml_int_compare; - function equal(x,y){return x === y?1:0} - function max(x,y){return y <= x?x:y} - function min(x,y){return x <= y?x:y} - var - Int_replace_polymorphic_compar= - [0, - symbol, - symbol$0, - symbol$1, - symbol$2, - symbol$3, - symbol$4, - compare, - equal, - max, - min], - make=Stdlib_String[1], - init=Stdlib_String[2], - empty=Stdlib_String[3], - of_bytes=Stdlib_String[4], - to_bytes=Stdlib_String[5], - concat=Stdlib_String[6], - cat=Stdlib_String[7], - compare$0=Stdlib_String[9], - starts_with=Stdlib_String[10], - ends_with=Stdlib_String[11], - contains_from=Stdlib_String[12], - rcontains_from=Stdlib_String[13], - contains=Stdlib_String[14], - sub=Stdlib_String[15], - split_on_char=Stdlib_String[16], - map=Stdlib_String[17], - mapi=Stdlib_String[18], - fold_left=Stdlib_String[19], - fold_right=Stdlib_String[20], - for_all=Stdlib_String[21], - exists=Stdlib_String[22], - trim=Stdlib_String[23], - escaped=Stdlib_String[24], - uppercase_ascii=Stdlib_String[25], - lowercase_ascii=Stdlib_String[26], - capitalize_ascii=Stdlib_String[27], - uncapitalize_ascii=Stdlib_String[28], - iter=Stdlib_String[29], - iteri=Stdlib_String[30], - index_from=Stdlib_String[31], - index_from_opt=Stdlib_String[32], - rindex_from=Stdlib_String[33], - rindex_from_opt=Stdlib_String[34], - index=Stdlib_String[35], - index_opt=Stdlib_String[36], - rindex=Stdlib_String[37], - rindex_opt=Stdlib_String[38], - to_seq=Stdlib_String[39], - to_seqi=Stdlib_String[40], - of_seq=Stdlib_String[41], - get_utf_8_uchar=Stdlib_String[42], - is_valid_utf_8=Stdlib_String[43], - get_utf_16be_uchar=Stdlib_String[44], - is_valid_utf_16be=Stdlib_String[45], - get_utf_16le_uchar=Stdlib_String[46], - is_valid_utf_16le=Stdlib_String[47], - blit=Stdlib_String[48], - copy=Stdlib_String[49], - fill=Stdlib_String[50], - uppercase=Stdlib_String[51], - lowercase=Stdlib_String[52], - capitalize=Stdlib_String[53], - uncapitalize=Stdlib_String[54], - get_uint8=Stdlib_String[55], - get_int8=Stdlib_String[56], - get_uint16_ne=Stdlib_String[57], - get_uint16_be=Stdlib_String[58], - get_uint16_le=Stdlib_String[59], - get_int16_ne=Stdlib_String[60], - get_int16_be=Stdlib_String[61], - get_int16_le=Stdlib_String[62], - get_int32_ne=Stdlib_String[63], - get_int32_be=Stdlib_String[64], - get_int32_le=Stdlib_String[65], - get_int64_ne=Stdlib_String[66], - get_int64_be=Stdlib_String[67], - get_int64_le=Stdlib_String[68]; - function equal$0(x,y){return runtime.caml_string_equal(x,y)} - var - String= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + global_data = runtime.caml_get_global_data(), + Stdlib_String = global_data.Stdlib__String, + Stdlib_Char = global_data.Stdlib__Char, + Poly = [0]; + function max(x, y){return y <= x ? x : y;} + function min(x, y){return x <= y ? x : y;} + var + Int_replace_polymorphic_compar = [0, max, min], + make = Stdlib_String[1], + init = Stdlib_String[2], + empty = Stdlib_String[3], + of_bytes = Stdlib_String[4], + to_bytes = Stdlib_String[5], + concat = Stdlib_String[6], + cat = Stdlib_String[7], + compare = Stdlib_String[9], + starts_with = Stdlib_String[10], + ends_with = Stdlib_String[11], + contains_from = Stdlib_String[12], + rcontains_from = Stdlib_String[13], + contains = Stdlib_String[14], + sub = Stdlib_String[15], + split_on_char = Stdlib_String[16], + map = Stdlib_String[17], + mapi = Stdlib_String[18], + fold_left = Stdlib_String[19], + fold_right = Stdlib_String[20], + for_all = Stdlib_String[21], + exists = Stdlib_String[22], + trim = Stdlib_String[23], + escaped = Stdlib_String[24], + uppercase_ascii = Stdlib_String[25], + lowercase_ascii = Stdlib_String[26], + capitalize_ascii = Stdlib_String[27], + uncapitalize_ascii = Stdlib_String[28], + iter = Stdlib_String[29], + iteri = Stdlib_String[30], + index_from = Stdlib_String[31], + index_from_opt = Stdlib_String[32], + rindex_from = Stdlib_String[33], + rindex_from_opt = Stdlib_String[34], + index = Stdlib_String[35], + index_opt = Stdlib_String[36], + rindex = Stdlib_String[37], + rindex_opt = Stdlib_String[38], + to_seq = Stdlib_String[39], + to_seqi = Stdlib_String[40], + of_seq = Stdlib_String[41], + get_utf_8_uchar = Stdlib_String[42], + is_valid_utf_8 = Stdlib_String[43], + get_utf_16be_uchar = Stdlib_String[44], + is_valid_utf_16be = Stdlib_String[45], + get_utf_16le_uchar = Stdlib_String[46], + is_valid_utf_16le = Stdlib_String[47], + blit = Stdlib_String[48], + copy = Stdlib_String[49], + fill = Stdlib_String[50], + uppercase = Stdlib_String[51], + lowercase = Stdlib_String[52], + capitalize = Stdlib_String[53], + uncapitalize = Stdlib_String[54], + get_uint8 = Stdlib_String[55], + get_int8 = Stdlib_String[56], + get_uint16_ne = Stdlib_String[57], + get_uint16_be = Stdlib_String[58], + get_uint16_le = Stdlib_String[59], + get_int16_ne = Stdlib_String[60], + get_int16_be = Stdlib_String[61], + get_int16_le = Stdlib_String[62], + get_int32_ne = Stdlib_String[63], + get_int32_be = Stdlib_String[64], + get_int32_le = Stdlib_String[65], + get_int64_ne = Stdlib_String[66], + get_int64_be = Stdlib_String[67], + get_int64_le = Stdlib_String[68], + equal = runtime.caml_string_equal, + String = [0, make, init, @@ -45952,7 +44894,7 @@ to_bytes, concat, cat, - compare$0, + compare, starts_with, ends_with, contains_from, @@ -46012,17 +44954,17 @@ get_int64_ne, get_int64_be, get_int64_le, - equal$0], - chr=Stdlib_Char[1], - escaped$0=Stdlib_Char[2], - lowercase$0=Stdlib_Char[3], - uppercase$0=Stdlib_Char[4], - lowercase_ascii$0=Stdlib_Char[5], - uppercase_ascii$0=Stdlib_Char[6], - compare$1=Stdlib_Char[7]; - function equal$1(x,y){return x === y?1:0} - var - Char= + equal], + chr = Stdlib_Char[1], + escaped$0 = Stdlib_Char[2], + lowercase$0 = Stdlib_Char[3], + uppercase$0 = Stdlib_Char[4], + lowercase_ascii$0 = Stdlib_Char[5], + uppercase_ascii$0 = Stdlib_Char[6], + compare$0 = Stdlib_Char[7]; + function equal$0(x, y){return x === y ? 1 : 0;} + var + Char = [0, chr, escaped$0, @@ -46030,222 +44972,286 @@ uppercase$0, lowercase_ascii$0, uppercase_ascii$0, - compare$1, - equal$1], - symbol$5=Int_replace_polymorphic_compar[1], - symbol$6=Int_replace_polymorphic_compar[2], - symbol$7=Int_replace_polymorphic_compar[3], - symbol$8=Int_replace_polymorphic_compar[4], - symbol$9=Int_replace_polymorphic_compar[5], - symbol$10=Int_replace_polymorphic_compar[6], - compare$2=Int_replace_polymorphic_compar[7], - equal$2=Int_replace_polymorphic_compar[8], - max$0=Int_replace_polymorphic_compar[9], - min$0=Int_replace_polymorphic_compar[10], - Js_of_ocaml_Import= + compare$0, + equal$0], + max$0 = Int_replace_polymorphic_compar[1], + min$0 = Int_replace_polymorphic_compar[2], + Js_of_ocaml_Import = + [0, Poly, Int_replace_polymorphic_compar, String, Char, max$0, min$0]; + runtime.caml_register_global(2, Js_of_ocaml_Import, "Js_of_ocaml__Import"); + return; + } + (globalThis)); + +//# 200 "../../.js/default/js_of_ocaml/js_of_ocaml.cma.js" +(function + (globalThis){ + "use strict"; + var + jsoo_exports = typeof module === "object" && module.exports || globalThis, + runtime = globalThis.jsoo_runtime, + cst_parseFloat$0 = "parseFloat", + cst_parseInt$0 = "parseInt", + caml_js_get = runtime.caml_js_get, + caml_js_set = runtime.caml_js_set, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var + global_data = runtime.caml_get_global_data(), + Js_of_ocaml_Import = global_data.Js_of_ocaml__Import, + Stdlib = global_data.Stdlib, + Jsoo_runtime = global_data.Jsoo_runtime, + Stdlib_Printexc = global_data.Stdlib__Printexc, + global = globalThis, + Unsafe = [0, global], + null$0 = null, + undefined$0 = undefined, + cst_function = "function", + cst_parseFloat = cst_parseFloat$0, + cst_parseInt = cst_parseInt$0; + function return$0(_z_){return _z_;} + function map(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} + function bind(x, f){return x == null$0 ? null$0 : caml_call1(f, x);} + function test(x){return 1 - (x == null$0 ? 1 : 0);} + function iter(x, f){ + var _y_ = 1 - (x == null$0 ? 1 : 0); + return _y_ ? caml_call1(f, x) : _y_; + } + function case$0(x, f, g){ + return x == null$0 ? caml_call1(f, 0) : caml_call1(g, x); + } + function get(x, f){return x == null$0 ? caml_call1(f, 0) : x;} + function option(x){if(! x) return null$0; var x$0 = x[1]; return x$0;} + function to_option(x){ + function _x_(x){return [0, x];} + return case$0(x, function(param){return 0;}, _x_); + } + var + Opt = [0, - Poly, - Int_replace_polymorphic_compar, - String, - Char, - symbol$5, - symbol$6, - symbol$7, - symbol$8, - symbol$9, - symbol$10, - compare$2, - equal$2, - max$0, - min$0]; - caml_register_global(1656,Js_of_ocaml_Import,"Js_of_ocaml__Import"); - var global=globalThis,Unsafe=[0,global],no_handler=null,t39=undefined; - function return$0(_g2_){return _g2_} - function map$0(x,f){return x == no_handler?no_handler:caml_call1(f,x)} - function bind(x,f){return x == no_handler?no_handler:caml_call1(f,x)} - function test(x){return 1 - (x == no_handler?1:0)} - function iter$0(x,f) - {var _g1_=1 - (x == no_handler?1:0);return _g1_?caml_call1(f,x):_g1_} - function case$0(x,f,g) - {return x == no_handler?caml_call1(f,0):caml_call1(g,x)} - function get(x,f){return x == no_handler?caml_call1(f,0):x} - function option(x){if(! x)return no_handler;var x$0=x[1];return x$0} - function to_option(x) - {function _g0_(x){return [0,x]} - return case$0(x,function(param){return 0},_g0_)} - var - Opt= - [0, - no_handler, + null$0, return$0, - map$0, + map, bind, test, - iter$0, + iter, case$0, get, option, to_option]; - function return$1(_gZ_){return _gZ_} - function map$1(x,f){return x === t39?t39:caml_call1(f,x)} - function bind$0(x,f){return x === t39?t39:caml_call1(f,x)} - function test$0(x){return x !== t39?1:0} - function iter$1(x,f) - {var _gY_=x !== t39?1:0;return _gY_?caml_call1(f,x):_gY_} - function case$1(x,f,g){return x === t39?caml_call1(f,0):caml_call1(g,x)} - function get$0(x,f){return x === t39?caml_call1(f,0):x} - function option$0(x){if(! x)return t39;var x$0=x[1];return x$0} - function to_option$0(x) - {function _gX_(x){return [0,x]} - return case$1(x,function(param){return 0},_gX_)} - var - Optdef= + function return$1(_w_){return _w_;} + function map$0(x, f){ + return x === undefined$0 ? undefined$0 : caml_call1(f, x); + } + function bind$0(x, f){ + return x === undefined$0 ? undefined$0 : caml_call1(f, x); + } + function test$0(x){return x !== undefined$0 ? 1 : 0;} + function iter$0(x, f){ + var _v_ = x !== undefined$0 ? 1 : 0; + return _v_ ? caml_call1(f, x) : _v_; + } + function case$1(x, f, g){ + return x === undefined$0 ? caml_call1(f, 0) : caml_call1(g, x); + } + function get$0(x, f){return x === undefined$0 ? caml_call1(f, 0) : x;} + function option$0(x){ + if(! x) return undefined$0; + var x$0 = x[1]; + return x$0; + } + function to_option$0(x){ + function _u_(x){return [0, x];} + return case$1(x, function(param){return 0;}, _u_); + } + var + Optdef = [0, - t39, + undefined$0, return$1, - map$1, + map$0, bind$0, test$0, - iter$1, + iter$0, case$1, get$0, option$0, to_option$0]; - function coerce(x,f,g) - {function _gV_(param){return caml_call1(g,x)} - var _gW_=caml_call1(f,x); - return caml_call2(Opt[8],_gW_,_gV_)} - function coerce_opt(x,f,g) - {function _gT_(param){return caml_call1(g,x)} - var _gU_=caml_call2(Opt[4],x,f); - return caml_call2(Opt[8],_gU_,_gT_)} - var - t38=true, - t4=false, - nfc="NFC", - nfd="NFD", - nfkc="NFKC", - nfkd="NFKD", - string_constr=Unsafe[1].String, - t11=Unsafe[1].RegExp, - t4$0=Unsafe[1].Object; - function object_keys(t3){return t4$0.keys(t3)} - var - array_length=Unsafe[1].Array, - array_get=caml_js_get, - array_set=caml_js_set; - function array_map(f,a) - {return a.map - (caml_js_wrap_callback - (function(x,idx,param){return caml_call1(f,x)}))} - function array_mapi(f,a) - {return a.map - (caml_js_wrap_callback - (function(x,idx,param){return caml_call2(f,idx,x)}))} - function str_array(_gS_){return _gS_} - function match_result(_gR_){return _gR_} - var - t116=Unsafe[1].Date, - math=Unsafe[1].Math, - error_constr=Unsafe[1].Error, - include=Jsoo_runtime[3], - raise=include[1], - attach_js_backtrace=include[2], - of_exn=include[3], - Error=include[4]; - function name(e){return caml_string_of_jsstring(e.name)} - function message(e){return caml_string_of_jsstring(e.message)} - function stack(e) - {var _gQ_=caml_call2(Opt[3],e.stack,caml_string_of_jsstring); - return caml_call1(Opt[10],_gQ_)} - function to_string(e){return caml_string_of_jsstring(e.toString())} - function raise_js_error(e){return caml_call1(raise,e)} - function string_of_error(e){return to_string(e)} - var JSON=Unsafe[1].JSON; - function decodeURI(s){return Unsafe[1].decodeURI(s)} - function decodeURIComponent(s){return Unsafe[1].decodeURIComponent(s)} - function encodeURI(s){return Unsafe[1].encodeURI(s)} - function encodeURIComponent(s){return Unsafe[1].encodeURIComponent(s)} - function escape(s){return Unsafe[1].escape(s)} - function unescape(s){return Unsafe[1].unescape(s)} - function isNaN(i){return Unsafe[1].isNaN(i) | 0} - function parseInt(s) - {var s$0=Unsafe[1].parseInt(s); - return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseInt):s$0} - function parseFloat(s) - {var s$0=Unsafe[1].parseFloat(s); - return isNaN(s$0)?caml_call1(Stdlib[2],cst_parseFloat):s$0} - function _a_(param) - {if(param[1] !== Error)return 0;var e=param[2];return [0,to_string(e)]} - caml_call1(Stdlib_Printexc[9],_a_); - function _b_(e) - {return e instanceof array_length - ?0 - :[0,caml_string_of_jsstring(e.toString())]} - caml_call1(Stdlib_Printexc[9],_b_); - function export_js(field,x){return jsoo_exports[field] = x} - function export$0(field,x) - {return export_js(caml_jsstring_of_string(field),x)} - function export_all(obj) - {var - t27=object_keys(obj), - t26= - caml_js_wrap_callback - (function(key,param,_gP_){return export_js(key,obj[key])}); - return t27.forEach(t26)} - var _c_=runtime.caml_js_error_of_exception; - function _d_(_gO_){return _gO_} - var - _e_= + function coerce(x, f, g){ + function _s_(param){return caml_call1(g, x);} + var _t_ = caml_call1(f, x); + return caml_call2(Opt[8], _t_, _s_); + } + function coerce_opt(x, f, g){ + function _q_(param){return caml_call1(g, x);} + var _r_ = caml_call2(Opt[4], x, f); + return caml_call2(Opt[8], _r_, _q_); + } + var + true$0 = true, + false$0 = false, + nfc = "NFC", + nfd = "NFD", + nfkc = "NFKC", + nfkd = "NFKD", + t0 = Unsafe[1], + string_constr = t0.String, + t1 = Unsafe[1], + regExp = t1.RegExp, + t2 = Unsafe[1], + object_constructor = t2.Object; + function object_keys(o){return object_constructor.keys(o);} + var + t5 = Unsafe[1], + array_constructor = t5.Array, + array_get = caml_js_get, + array_set = caml_js_set; + function array_map(f, a){ + return a.map + (caml_js_wrap_callback + (function(x, idx, param){return caml_call1(f, x);})); + } + function array_mapi(f, a){ + return a.map + (caml_js_wrap_callback + (function(x, idx, param){return caml_call2(f, idx, x);})); + } + function str_array(_p_){return _p_;} + function match_result(_o_){return _o_;} + var + t8 = Unsafe[1], + date_constr = t8.Date, + t9 = Unsafe[1], + math = t9.Math, + t10 = Unsafe[1], + error_constr = t10.Error, + include = Jsoo_runtime[3], + raise = include[1], + exn_with_js_backtrace = include[2], + of_exn = include[3], + Error = include[4]; + function name(t11){return caml_string_of_jsstring(t11.name);} + function message(t12){return caml_string_of_jsstring(t12.message);} + function stack(t13){ + var _n_ = caml_call2(Opt[3], t13.stack, caml_string_of_jsstring); + return caml_call1(Opt[10], _n_); + } + function to_string(e){return caml_string_of_jsstring(e.toString());} + function raise_js_error(e){return caml_call1(raise, e);} + function string_of_error(e){return to_string(e);} + var t15 = Unsafe[1], JSON = t15.JSON; + function decodeURI(s){var t16 = Unsafe[1]; return t16.decodeURI(s);} + function decodeURIComponent(s){ + var t17 = Unsafe[1]; + return t17.decodeURIComponent(s); + } + function encodeURI(s){var t18 = Unsafe[1]; return t18.encodeURI(s);} + function encodeURIComponent(s){ + var t19 = Unsafe[1]; + return t19.encodeURIComponent(s); + } + function escape(s){var t20 = Unsafe[1]; return t20.escape(s);} + function unescape(s){var t21 = Unsafe[1]; return t21.unescape(s);} + function isNaN(i){var t22 = Unsafe[1]; return t22.isNaN(i) | 0;} + function parseInt(s){ + var t23 = Unsafe[1], s$0 = t23.parseInt(s); + return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseInt) : s$0; + } + function parseFloat(s){ + var t24 = Unsafe[1], s$0 = t24.parseFloat(s); + return isNaN(s$0) ? caml_call1(Stdlib[2], cst_parseFloat) : s$0; + } + function _a_(param){ + if(param[1] !== Error) return 0; + var e = param[2]; + return [0, to_string(e)]; + } + caml_call1(Stdlib_Printexc[9], _a_); + function _b_(e){ + return e instanceof array_constructor + ? 0 + : [0, caml_string_of_jsstring(e.toString())]; + } + caml_call1(Stdlib_Printexc[9], _b_); + function export_js(field, x){ + var _l_ = caml_string_of_jsstring(typeof x), switch$0 = 0; + if + (caml_call2(Js_of_ocaml_Import[3][68], _l_, cst_function) && 0 < x.length){var _m_ = caml_js_wrap_callback(x); switch$0 = 1;} + if(! switch$0) var _m_ = x; + return jsoo_exports[field] = _m_; + } + function export$0(field, x){ + return export_js(runtime.caml_jsstring_of_string(field), x); + } + function export_all(obj){ + var keys = object_keys(obj); + return keys.forEach + (caml_js_wrap_callback + (function(key, param, _k_){return export_js(key, obj[key]);})); + } + var _c_ = runtime.caml_js_error_of_exception; + function _d_(_j_){return _j_;} + var + _e_ = [0, to_string, name, message, stack, raise, - attach_js_backtrace, + exn_with_js_backtrace, of_exn, Error, - function(_gN_){return _gN_}, + function(_i_){return _i_;}, _d_]; - function _f_(_gM_){return _gM_} - var - Js_of_ocaml_Js= + function _f_(_h_){return _h_;} + var + Js_of_ocaml_Js = [0, - no_handler, - function(_gL_){return _gL_}, - t39, + null$0, + function(_g_){return _g_;}, + undefined$0, _f_, Opt, Optdef, - t38, - t4, + true$0, + false$0, nfd, nfc, nfkd, nfkc, string_constr, - t11, - t11, - t11, + regExp, + regExp, + regExp, object_keys, - array_length, - array_length, + array_constructor, + array_constructor, array_get, array_set, array_map, array_mapi, str_array, match_result, - t116, - t116, - t116, - t116, - t116, - t116, - t116, - t116, - t116, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, + date_constr, math, error_constr, _e_, @@ -46266,3930 +45272,265 @@ Unsafe, string_of_error, raise_js_error, - attach_js_backtrace, + exn_with_js_backtrace, _c_, Error]; - caml_register_global(1660,Js_of_ocaml_Js,"Js_of_ocaml__Js"); - function list_of_nodeList(nodeList) - {var length=nodeList.length,acc=0,i=0; - for(;;) - {if(! caml_call2(symbol$5,i,length)) - return caml_call1(Stdlib_List[9],acc); - var _gK_=nodeList.item(i),match=caml_call1(Opt[10],_gK_); - if(match) - {var e=match[1],i$0=i + 1 | 0,acc$0=[0,e,acc],acc=acc$0,i=i$0; - continue} - var i$1=i + 1 | 0,i=i$1}} - var - disconnected=1, - preceding=2, - following=4, - contains$0=8, - contained_by=16, - implementation_specific=32; - function has(t,mask){return caml_call2(symbol$8,t & mask,mask)} - function add(x,y){return x | y} - var - DocumentPosition= - [0, - disconnected, - preceding, - following, - contains$0, - contained_by, - implementation_specific, - has, - add, - add]; - function appendChild(p,n){p.appendChild(n);return 0} - function removeChild(p,n){p.removeChild(n);return 0} - function replaceChild(p,n,o){p.replaceChild(n,o);return 0} - function insertBefore(p,n,o){p.insertBefore(n,o);return 0} - function nodeType(e) - {var match=e.nodeType; - if(match) - switch(match - 1 | 0) - {case 0:return [0,e];case 1:return [1,e];case 2:case 3:return [2,e]} - return [3,e]} - function cast(e,t){return e.nodeType === t?e:no_handler} - function element(e){return cast(e,1)} - function text(e) - {if(3 !== e.nodeType && 4 !== e.nodeType)return no_handler;return e} - function attr(e){return cast(e,2)} - function handler(f) - {return runtime.caml_js_wrap_callback_unsafe - (function(e) - {if(caml_call1(Opt[5],e)) - {var res=caml_call1(f,e); - if(1 - (res | 0))e.preventDefault(); - return res} - var t18=event,t17=caml_call1(f,t18); - if(1 - (t17 | 0))t18.returnValue = t17; - return t17})} - function full_handler(f) - {return runtime.caml_js_wrap_meth_callback_unsafe - (function(this$0,e) - {if(caml_call1(Opt[5],e)) - {var res=caml_call2(f,this$0,e); - if(1 - (res | 0))e.preventDefault(); - return res} - var t21=event,t20=caml_call2(f,this$0,t21); - if(1 - (t20 | 0))t21.returnValue = t20; - return t20})} - function invoke_handler(f,this$0,event){return f.call(this$0,event)} - function eventTarget(e) - {function _gH_(param) - {function _gJ_(param){throw Stdlib[8]} - return caml_call2(Opt[8],e.srcElement,_gJ_)} - var t27=caml_call2(Opt[8],e.target,_gH_); - if(! (t27 instanceof Unsafe[1].Node))return t27; - if(3 !== t27.nodeType)return t27; - function _gI_(param){throw [0,Assert_failure,_g_]} - return caml_call2(Opt[8],t27.parentNode,_gI_)} - function make$0(s){return caml_jsstring_of_string(s)} - var Event=[0,make$0]; - function addEventListenerWithOptions(t50,t47,capture,once,passive,t48) - {if(t50.addEventListener === t39) - {var - t34="on".concat(t47), - t35= - function(e) - {var _gE_=[0,t48,e,[0]]; - return function(_gF_,_gG_) - {return runtime.caml_js_call(_gE_,_gF_,_gG_)}}; - t50.attachEvent(t34,t35); - return function(param){return t50.detachEvent(t34,t35)}} - var t49={}; - function iter(t,f){if(! t)return 0;var b=t[1];return caml_call1(f,b)} - iter(capture,function(t37){return t49.capture = t37}); - iter(once,function(t39){return t49.once = t39}); - iter(passive,function(t41){return t49.passive = t41}); - t50.addEventListener(t47,t48,t49); - return function(param){return t50.removeEventListener(t47,t48,t49)}} - function addEventListener(e,typ,h,capt) - {return addEventListenerWithOptions(e,typ,[0,capt],0,0,h)} - function removeEventListener(id){return caml_call1(id,0)} - function preventDefault(t54) - {if(caml_call1(Optdef[5],t54.preventDefault))return t54.preventDefault(); - var t53=! ! 0; - return t54.returnValue = t53} - function createCustomEvent(bubbles,cancelable,detail,t62) - {function opt_iter(f,param) - {if(! param)return 0;var x=param[1];return caml_call1(f,x)} - var t63={}; - opt_iter(function(x){var t55=! ! x;return t63.bubbles = t55},bubbles); - opt_iter - (function(x){var t57=! ! x;return t63.cancelable = t57},cancelable); - opt_iter(function(t59){return t63.detail = t59},detail); - var t64=Unsafe[1].CustomEvent; - return new t64(t62,t63)} - var - Js_of_ocaml_Dom= - [0, - DocumentPosition, - insertBefore, - replaceChild, - removeChild, - appendChild, - list_of_nodeList, - nodeType, - [0,element,text,attr], - no_handler, - handler, - full_handler, - invoke_handler, - eventTarget, - Event, - addEventListenerWithOptions, - addEventListener, - removeEventListener, - preventDefault, - createCustomEvent]; - caml_register_global(1663,Js_of_ocaml_Dom,"Js_of_ocaml__Dom"); - var - arrayBuffer=Unsafe[1].ArrayBuffer, - int8Array_inBuffer=Unsafe[1].Int8Array, - t11$0=Unsafe[1].Uint8Array, - int16Array_inBuffer=Unsafe[1].Int16Array, - uint16Array_inBuffer=Unsafe[1].Uint16Array, - int32Array_inBuffer=Unsafe[1].Int32Array, - uint32Array_inBuffer=Unsafe[1].Uint32Array, - float32Array_inBuffer=Unsafe[1].Float32Array, - float64Array_inBuffer=Unsafe[1].Float64Array, - set=caml_js_set; - function get$1(a,i){return a[i]} - function unsafe_get(a,i){return a[i]} - var dataView=Unsafe[1].DataView; - function of_arrayBuffer(ab) - {var uint8=new t11$0(ab);return caml_string_of_array(uint8)} - var - Js_of_ocaml_Typed_array= - [0, - arrayBuffer, - runtime.caml_ba_kind_of_typed_array, - runtime.caml_ba_to_typed_array, - runtime.caml_ba_from_typed_array, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - int8Array_inBuffer, - t11$0, - t11$0, - t11$0, - t11$0, - t11$0, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - int16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - uint16Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - int32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - uint32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float32Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - float64Array_inBuffer, - set, - get$1, - unsafe_get, - dataView, - dataView, - [0, - runtime.bigstring_to_array_buffer, - runtime.bigstring_to_typed_array, - runtime.bigstring_of_array_buffer, - runtime.bigstring_of_typed_array], - [0,of_arrayBuffer,caml_string_of_array]]; - caml_register_global - (1664,Js_of_ocaml_Typed_array,"Js_of_ocaml__Typed_array"); - var t3=Unsafe[1].Blob; - function filter_map(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var q=param$0[2],v=param$0[1],match=caml_call1(f,v); - if(match){var v$0=match[1];return [0,v$0,filter_map(f,q)]} - var param$0=q}} - function blob_raw(contentType,endings,a) - {var _gA_=0; - if(endings) - var _gB_=116179762 <= endings[1]?_h_:_i_,_gC_=_gB_; - else - var _gC_=0; - var - _gD_=[0,[0,cst_type,contentType],[0,[0,cst_endings,_gC_],_gA_]], - options= - filter_map - (function(param) - {var v=param[2],name=param[1]; - if(! v)return 0; - var v$0=v[1]; - return [0,[0,name,caml_jsstring_of_string(v$0)]]}, - _gD_), - options$0= - options - ?runtime.caml_js_object(caml_call1(Stdlib_Array[12],options)) - :t39, - t1=caml_js_from_array(a); - return new t3(t1,options$0)} - function blob_from_string(contentType,endings,s) - {return blob_raw(contentType,endings,[0,caml_jsstring_of_string(s)])} - function blob_from_any(contentType,endings,l) - {function _gy_(param) - {var _gz_=param[1]; - if(155580615 === _gz_){var s=param[2];return s} - if(486041214 <= _gz_) - {if(1037850489 <= _gz_){var a=param[2];return a} - var a$0=param[2]; - return a$0} - if(288368849 <= _gz_) - {var s$0=param[2];return caml_jsstring_of_string(s$0)} - var b=param[2]; - return b} - var l$0=caml_call2(Stdlib_List[19],_gy_,l); - return blob_raw(contentType,endings,caml_call1(Stdlib_Array[12],l$0))} - function filename(file) - {var match=caml_call1(Optdef[10],file.name); - if(match){var name=match[1];return name} - var match$0=caml_call1(Optdef[10],file.fileName); - if(! match$0) - return caml_call1(Stdlib[2],cst_can_t_retrieve_file_name_n); - var name$0=match$0[1]; - return name$0} - var doc_constr=Unsafe[1].Document; - function document(e){return e instanceof doc_constr?e:no_handler} - function blob(e){return e instanceof t3?e:no_handler} - function string(e){return typeof e === "string"?e:no_handler} - function arrayBuffer$0(e){return e instanceof arrayBuffer?e:no_handler} - var - loadstart=caml_call1(Event[1],cst_loadstart), - progress=caml_call1(Event[1],cst_progress), - abort=caml_call1(Event[1],cst_abort), - error=caml_call1(Event[1],cst_error), - load=caml_call1(Event[1],cst_load), - loadend=caml_call1(Event[1],cst_loadend), - ReaderEvent=[0,loadstart,progress,abort,error,load,loadend], - fileReader=Unsafe[1].FileReader, - Js_of_ocaml_File= - [0, - blob_from_string, - blob_from_any, - [0,document,blob,function(_gx_){return _gx_},string,arrayBuffer$0], - ReaderEvent, - filename, - fileReader, - addEventListener]; - caml_register_global(1666,Js_of_ocaml_File,"Js_of_ocaml__File"); - var - onIE=runtime.caml_js_on_ie(0) | 0, - click=caml_call1(Event[1],cst_click), - copy$0=caml_call1(Event[1],cst_copy), - cut=caml_call1(Event[1],cst_cut), - paste=caml_call1(Event[1],cst_paste), - dblclick=caml_call1(Event[1],cst_dblclick), - mousedown=caml_call1(Event[1],cst_mousedown), - mouseup=caml_call1(Event[1],cst_mouseup), - mouseover=caml_call1(Event[1],cst_mouseover), - mousemove=caml_call1(Event[1],cst_mousemove), - mouseout=caml_call1(Event[1],cst_mouseout), - keypress=caml_call1(Event[1],cst_keypress), - keydown=caml_call1(Event[1],cst_keydown), - keyup=caml_call1(Event[1],cst_keyup), - mousewheel=caml_call1(Event[1],cst_mousewheel), - wheel=caml_call1(Event[1],cst_wheel), - DOMMouseScroll=caml_call1(Event[1],cst_DOMMouseScroll), - touchstart=caml_call1(Event[1],cst_touchstart), - touchmove=caml_call1(Event[1],cst_touchmove), - touchend=caml_call1(Event[1],cst_touchend), - touchcancel=caml_call1(Event[1],cst_touchcancel), - dragstart=caml_call1(Event[1],cst_dragstart), - dragend=caml_call1(Event[1],cst_dragend), - dragenter=caml_call1(Event[1],cst_dragenter), - dragover=caml_call1(Event[1],cst_dragover), - dragleave=caml_call1(Event[1],cst_dragleave), - drag=caml_call1(Event[1],cst_drag), - drop=caml_call1(Event[1],cst_drop), - hashchange=caml_call1(Event[1],cst_hashchange), - change=caml_call1(Event[1],cst_change), - input=caml_call1(Event[1],cst_input), - timeupdate=caml_call1(Event[1],cst_timeupdate), - submit=caml_call1(Event[1],cst_submit), - scroll=caml_call1(Event[1],cst_scroll), - focus=caml_call1(Event[1],cst_focus), - blur=caml_call1(Event[1],cst_blur), - load$0=caml_call1(Event[1],cst_load$0), - unload=caml_call1(Event[1],cst_unload), - beforeunload=caml_call1(Event[1],cst_beforeunload), - resize=caml_call1(Event[1],cst_resize), - orientationchange=caml_call1(Event[1],cst_orientationchange), - popstate=caml_call1(Event[1],cst_popstate), - error$0=caml_call1(Event[1],cst_error$0), - abort$0=caml_call1(Event[1],cst_abort$0), - select=caml_call1(Event[1],cst_select), - online=caml_call1(Event[1],cst_online), - offline=caml_call1(Event[1],cst_offline), - checking=caml_call1(Event[1],cst_checking), - noupdate=caml_call1(Event[1],cst_noupdate), - downloading=caml_call1(Event[1],cst_downloading), - progress$0=caml_call1(Event[1],cst_progress$0), - updateready=caml_call1(Event[1],cst_updateready), - cached=caml_call1(Event[1],cst_cached), - obsolete=caml_call1(Event[1],cst_obsolete), - domContentLoaded=caml_call1(Event[1],cst_DOMContentLoaded), - animationstart=caml_call1(Event[1],cst_animationstart), - animationend=caml_call1(Event[1],cst_animationend), - animationiteration=caml_call1(Event[1],cst_animationiteration), - animationcancel=caml_call1(Event[1],cst_animationcancel), - transitionrun=caml_call1(Event[1],cst_transitionrun), - transitionstart=caml_call1(Event[1],cst_transitionstart), - transitionend=caml_call1(Event[1],cst_transitionend), - transitioncancel=caml_call1(Event[1],cst_transitioncancel), - canplay=caml_call1(Event[1],cst_canplay), - canplaythrough=caml_call1(Event[1],cst_canplaythrough), - durationchange=caml_call1(Event[1],cst_durationchange), - emptied=caml_call1(Event[1],cst_emptied), - ended=caml_call1(Event[1],cst_ended), - gotpointercapture=caml_call1(Event[1],cst_gotpointercapture), - loadeddata=caml_call1(Event[1],cst_loadeddata), - loadedmetadata=caml_call1(Event[1],cst_loadedmetadata), - loadstart$0=caml_call1(Event[1],cst_loadstart$0), - lostpointercapture=caml_call1(Event[1],cst_lostpointercapture), - message$0=caml_call1(Event[1],cst_message), - pause=caml_call1(Event[1],cst_pause), - play=caml_call1(Event[1],cst_play), - playing=caml_call1(Event[1],cst_playing), - pointerenter=caml_call1(Event[1],cst_pointerenter), - pointercancel=caml_call1(Event[1],cst_pointercancel), - pointerdown=caml_call1(Event[1],cst_pointerdown), - pointerleave=caml_call1(Event[1],cst_pointerleave), - pointermove=caml_call1(Event[1],cst_pointermove), - pointerout=caml_call1(Event[1],cst_pointerout), - pointerover=caml_call1(Event[1],cst_pointerover), - pointerup=caml_call1(Event[1],cst_pointerup), - ratechange=caml_call1(Event[1],cst_ratechange), - seeked=caml_call1(Event[1],cst_seeked), - seeking=caml_call1(Event[1],cst_seeking), - stalled=caml_call1(Event[1],cst_stalled), - suspend=caml_call1(Event[1],cst_suspend), - volumechange=caml_call1(Event[1],cst_volumechange), - waiting=caml_call1(Event[1],cst_waiting), - make$1=Event[1], - d="2d"; - function location_origin(loc) - {function _gv_(o){return o} - function _gw_(param) - {var t8=loc.protocol,t7=loc.hostname,t9=loc.port; - if - (caml_call2(symbol$8,t8.length,0) - && - caml_call2(symbol$8,t7.length,0)) - return ""; - var t13=t8.concat("//",t7); - if(! caml_call2(symbol$9,t9.length,0))return t13; - var t12=loc.port; - return t13.concat(":",t12)} - return caml_call3(Optdef[7],loc.origin,_gw_,_gv_)} - var _j_=Unsafe[1],t87=_j_.document; - function getElementById(id) - {function _gs_(pnode){return pnode} - function _gt_(param){throw Stdlib[8]} - var t15=caml_jsstring_of_string(id),_gu_=t87.getElementById(t15); - return caml_call3(Opt[7],_gu_,_gt_,_gs_)} - function getElementById_exn(id) - {function _go_(pnode){return pnode} - function _gp_(param) - {var _gr_=caml_call2(Stdlib_Printf[4],_k_,id); - return caml_call1(Stdlib[2],_gr_)} - var t17=caml_jsstring_of_string(id),_gq_=t87.getElementById(t17); - return caml_call3(Opt[7],_gq_,_gp_,_go_)} - function getElementById_opt(id) - {var t19=caml_jsstring_of_string(id),_gn_=t87.getElementById(t19); - return caml_call1(Opt[10],_gn_)} - function getElementById_coerce(id,coerce) - {function _gj_(e) - {var _gm_=caml_call1(coerce,e);return caml_call1(Opt[10],_gm_)} - function _gk_(param){return 0} - var t21=caml_jsstring_of_string(id),_gl_=t87.getElementById(t21); - return caml_call3(Opt[7],_gl_,_gk_,_gj_)} - function opt_iter(x,f){if(! x)return 0;var v=x[1];return caml_call1(f,v)} - function createElement(t24,name) - {var t23=caml_jsstring_of_string(name);return t24.createElement(t23)} - function unsafeCreateElement(doc,name){return createElement(doc,name)} - var createElementSyntax=[0,785140586]; - function unsafeCreateElementEx(type,name,doc,elt) - {for(;;) - {if(0 === type && 0 === name)return createElement(doc,elt); - var _gd_=createElementSyntax[1]; - if(785140586 === _gd_) - {try - {var - el=t87.createElement(''), - _gg_=el.tagName.toLowerCase() === "input"?1:0, - _gh_=_gg_?el.name === "x"?1:0:_gg_, - _ge_=_gh_} - catch(_gi_){var _ge_=0} - var _gf_=_ge_?982028505:-1003883683; - createElementSyntax[1] = _gf_; - continue} - if(982028505 <= _gd_) - {var t40=new array_length(); - t40.push("<",caml_jsstring_of_string(elt)); - opt_iter - (type, - function(t) - {var t34=caml_js_html_escape(t); - t40.push(' type="',t34,'"'); - return 0}); - opt_iter - (name, - function(n) - {var t38=caml_js_html_escape(n); - t40.push(' name="',t38,'"'); - return 0}); - t40.push(">"); - return doc.createElement(t40.join(""))} - var t28=createElement(doc,elt); - opt_iter(type,function(t25){return t28.type = t25}); - opt_iter(name,function(t27){return t28.name = t27}); - return t28}} - function createHtml(doc){return unsafeCreateElement(doc,cst_html)} - function createHead(doc){return unsafeCreateElement(doc,cst_head)} - function createLink(doc){return unsafeCreateElement(doc,cst_link)} - function createTitle(doc){return unsafeCreateElement(doc,cst_title)} - function createMeta(doc){return unsafeCreateElement(doc,cst_meta)} - function createBase(doc){return unsafeCreateElement(doc,cst_base)} - function createStyle(doc){return unsafeCreateElement(doc,cst_style)} - function createBody(doc){return unsafeCreateElement(doc,cst_body)} - function createForm(doc){return unsafeCreateElement(doc,cst_form)} - function createOptgroup(doc){return unsafeCreateElement(doc,cst_optgroup)} - function createOption(doc){return unsafeCreateElement(doc,cst_option)} - function createSelect(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_select$0)} - function createInput(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_input$0)} - function createTextarea(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_textarea)} - function createButton(type,name,doc) - {return unsafeCreateElementEx(type,name,doc,cst_button)} - function createLabel(doc){return unsafeCreateElement(doc,cst_label)} - function createFieldset(doc){return unsafeCreateElement(doc,cst_fieldset)} - function createLegend(doc){return unsafeCreateElement(doc,cst_legend)} - function createUl(doc){return unsafeCreateElement(doc,cst_ul)} - function createOl(doc){return unsafeCreateElement(doc,cst_ol)} - function createDl(doc){return unsafeCreateElement(doc,cst_dl)} - function createLi(doc){return unsafeCreateElement(doc,cst_li)} - function createDiv(doc){return unsafeCreateElement(doc,cst_div)} - function createEmbed(doc){return unsafeCreateElement(doc,cst_embed)} - function createP(doc){return unsafeCreateElement(doc,cst_p)} - function createH1(doc){return unsafeCreateElement(doc,cst_h1)} - function createH2(doc){return unsafeCreateElement(doc,cst_h2)} - function createH3(doc){return unsafeCreateElement(doc,cst_h3)} - function createH4(doc){return unsafeCreateElement(doc,cst_h4)} - function createH5(doc){return unsafeCreateElement(doc,cst_h5)} - function createH6(doc){return unsafeCreateElement(doc,cst_h6)} - function createQ(doc){return unsafeCreateElement(doc,cst_q)} - function createBlockquote(doc) - {return unsafeCreateElement(doc,cst_blockquote)} - function createPre(doc){return unsafeCreateElement(doc,cst_pre)} - function createBr(doc){return unsafeCreateElement(doc,cst_br)} - function createHr(doc){return unsafeCreateElement(doc,cst_hr)} - function createIns(doc){return unsafeCreateElement(doc,cst_ins)} - function createDel(doc){return unsafeCreateElement(doc,cst_del)} - function createA(doc){return unsafeCreateElement(doc,cst_a)} - function createImg(doc){return unsafeCreateElement(doc,cst_img)} - function createObject(doc){return unsafeCreateElement(doc,cst_object)} - function createParam(doc){return unsafeCreateElement(doc,cst_param)} - function createMap(doc){return unsafeCreateElement(doc,cst_map)} - function createArea(doc){return unsafeCreateElement(doc,cst_area)} - function createScript(doc){return unsafeCreateElement(doc,cst_script)} - function createTable(doc){return unsafeCreateElement(doc,cst_table)} - function createCaption(doc){return unsafeCreateElement(doc,cst_caption)} - function createCol(doc){return unsafeCreateElement(doc,cst_col)} - function createColgroup(doc){return unsafeCreateElement(doc,cst_colgroup)} - function createThead(doc){return unsafeCreateElement(doc,cst_thead)} - function createTfoot(doc){return unsafeCreateElement(doc,cst_tfoot)} - function createTbody(doc){return unsafeCreateElement(doc,cst_tbody)} - function createTr(doc){return unsafeCreateElement(doc,cst_tr)} - function createTh(doc){return unsafeCreateElement(doc,cst_th)} - function createTd(doc){return unsafeCreateElement(doc,cst_td)} - function createSub(doc){return createElement(doc,cst_sub)} - function createSup(doc){return createElement(doc,cst_sup)} - function createSpan(doc){return createElement(doc,cst_span)} - function createTt(doc){return createElement(doc,cst_tt)} - function createI(doc){return createElement(doc,cst_i)} - function createB(doc){return createElement(doc,cst_b)} - function createBig(doc){return createElement(doc,cst_big)} - function createSmall(doc){return createElement(doc,cst_small)} - function createEm(doc){return createElement(doc,cst_em)} - function createStrong(doc){return createElement(doc,cst_strong)} - function createCite(doc){return createElement(doc,cst_cite)} - function createDfn(doc){return createElement(doc,cst_dfn)} - function createCode(doc){return createElement(doc,cst_code)} - function createSamp(doc){return createElement(doc,cst_samp)} - function createKbd(doc){return createElement(doc,cst_kbd)} - function createVar(doc){return createElement(doc,cst_var)} - function createAbbr(doc){return createElement(doc,cst_abbr)} - function createDd(doc){return createElement(doc,cst_dd)} - function createDt(doc){return createElement(doc,cst_dt)} - function createNoscript(doc){return createElement(doc,cst_noscript)} - function createAddress(doc){return createElement(doc,cst_address)} - function createFrameset(doc){return unsafeCreateElement(doc,cst_frameset)} - function createFrame(doc){return unsafeCreateElement(doc,cst_frame)} - function createIframe(doc){return unsafeCreateElement(doc,cst_iframe)} - function createAudio(doc){return unsafeCreateElement(doc,cst_audio)} - function createVideo(doc){return unsafeCreateElement(doc,cst_video)} - var - Canvas_not_available= - [248,cst_Js_of_ocaml_Dom_html_Canva,caml_fresh_oo_id(0)]; - function createCanvas(doc) - {var t52=unsafeCreateElement(doc,cst_canvas); - if(1 - caml_call1(Opt[5],t52.getContext))throw Canvas_not_available; - return t52} - var - html_element=Unsafe[1].HTMLElement, - element$0= - html_element === t39 - ?function(e){return e.innerHTML === t39?no_handler:e} - :function(e){return e instanceof html_element?e:no_handler}; - function unsafeCoerce(tag,e) - {var t56=e.tagName,_gc_=caml_jsstring_of_string(tag); - return t56.toLowerCase() === _gc_?e:no_handler} - function a(e){return unsafeCoerce(cst_a$0,e)} - function area(e){return unsafeCoerce(cst_area$0,e)} - function base(e){return unsafeCoerce(cst_base$0,e)} - function blockquote(e){return unsafeCoerce(cst_blockquote$0,e)} - function body(e){return unsafeCoerce(cst_body$0,e)} - function br(e){return unsafeCoerce(cst_br$0,e)} - function button(e){return unsafeCoerce(cst_button$0,e)} - function canvas(e){return unsafeCoerce(cst_canvas$0,e)} - function caption(e){return unsafeCoerce(cst_caption$0,e)} - function col(e){return unsafeCoerce(cst_col$0,e)} - function colgroup(e){return unsafeCoerce(cst_colgroup$0,e)} - function del(e){return unsafeCoerce(cst_del$0,e)} - function div(e){return unsafeCoerce(cst_div$0,e)} - function dl(e){return unsafeCoerce(cst_dl$0,e)} - function fieldset(e){return unsafeCoerce(cst_fieldset$0,e)} - function embed(e){return unsafeCoerce(cst_embed$0,e)} - function form(e){return unsafeCoerce(cst_form$0,e)} - function frameset(e){return unsafeCoerce(cst_frameset$0,e)} - function frame(e){return unsafeCoerce(cst_frame$0,e)} - function h1(e){return unsafeCoerce(cst_h1$0,e)} - function h2(e){return unsafeCoerce(cst_h2$0,e)} - function h3(e){return unsafeCoerce(cst_h3$0,e)} - function h4(e){return unsafeCoerce(cst_h4$0,e)} - function h5(e){return unsafeCoerce(cst_h5$0,e)} - function h6(e){return unsafeCoerce(cst_h6$0,e)} - function head(e){return unsafeCoerce(cst_head$0,e)} - function hr(e){return unsafeCoerce(cst_hr$0,e)} - function html(e){return unsafeCoerce(cst_html$0,e)} - function iframe(e){return unsafeCoerce(cst_iframe$0,e)} - function img(e){return unsafeCoerce(cst_img$0,e)} - function input$0(e){return unsafeCoerce(cst_input$1,e)} - function ins(e){return unsafeCoerce(cst_ins$0,e)} - function label(e){return unsafeCoerce(cst_label$0,e)} - function legend(e){return unsafeCoerce(cst_legend$0,e)} - function li(e){return unsafeCoerce(cst_li$0,e)} - function link(e){return unsafeCoerce(cst_link$0,e)} - function map$2(e){return unsafeCoerce(cst_map$0,e)} - function meta(e){return unsafeCoerce(cst_meta$0,e)} - function object(e){return unsafeCoerce(cst_object$0,e)} - function ol(e){return unsafeCoerce(cst_ol$0,e)} - function optgroup(e){return unsafeCoerce(cst_optgroup$0,e)} - function option$1(e){return unsafeCoerce(cst_option$0,e)} - function p(e){return unsafeCoerce(cst_p$0,e)} - function param(e){return unsafeCoerce(cst_param$0,e)} - function pre(e){return unsafeCoerce(cst_pre$0,e)} - function q(e){return unsafeCoerce(cst_q$0,e)} - function script(e){return unsafeCoerce(cst_script$0,e)} - function select$0(e){return unsafeCoerce(cst_select$1,e)} - function style(e){return unsafeCoerce(cst_style$0,e)} - function table(e){return unsafeCoerce(cst_table$0,e)} - function tbody(e){return unsafeCoerce(cst_tbody$0,e)} - function td(e){return unsafeCoerce(cst_td$0,e)} - function textarea(e){return unsafeCoerce(cst_textarea$0,e)} - function tfoot(e){return unsafeCoerce(cst_tfoot$0,e)} - function th(e){return unsafeCoerce(cst_th$0,e)} - function thead(e){return unsafeCoerce(cst_thead$0,e)} - function title(e){return unsafeCoerce(cst_title$0,e)} - function tr(e){return unsafeCoerce(cst_tr$0,e)} - function ul(e){return unsafeCoerce(cst_ul$0,e)} - function audio(e){return unsafeCoerce(cst_audio$0,e)} - function video(e){return unsafeCoerce(cst_video$0,e)} - function unsafeCoerceEvent(constr,ev) - {if(constr !== t39 && ev instanceof constr)return ev;return no_handler} - function mouseEvent(ev){return unsafeCoerceEvent(Unsafe[1].MouseEvent,ev)} - function keyboardEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].KeyboardEvent,ev)} - function wheelEvent(ev){return unsafeCoerceEvent(Unsafe[1].WheelEvent,ev)} - function mouseScrollEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].MouseScrollEvent,ev)} - function popStateEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].PopStateEvent,ev)} - function messageEvent(ev) - {return unsafeCoerceEvent(Unsafe[1].MessageEvent,ev)} - function eventRelatedTarget(e) - {function _f$_(param) - {var match=caml_string_of_jsstring(e.type); - if(! caml_string_notequal(match,cst_mouseout$0)) - {var _gb_=function(param){throw [0,Assert_failure,_m_]}; - return caml_call2(Optdef[8],e.toElement,_gb_)} - if(caml_string_notequal(match,cst_mouseover$0))return no_handler; - function _ga_(param){throw [0,Assert_failure,_l_]} - return caml_call2(Optdef[8],e.fromElement,_ga_)} - return caml_call2(Optdef[8],e.relatedTarget,_f$_)} - function eventAbsolutePosition(e) - {var t70=t87.body,t71=t87.documentElement; - return [0, - (e.clientX + t70.scrollLeft | 0) + t71.scrollLeft | 0, - (e.clientY + t70.scrollTop | 0) + t71.scrollTop | 0]} - function eventAbsolutePosition$0(e) - {function _f7_(x) - {function _f9_(y){return [0,x,y]} - function _f__(param){return eventAbsolutePosition(e)} - return caml_call3(Optdef[7],e.pageY,_f__,_f9_)} - function _f8_(param){return eventAbsolutePosition(e)} - return caml_call3(Optdef[7],e.pageX,_f8_,_f7_)} - function elementClientPosition(e) - {var t80=e.getBoundingClientRect(),t81=t87.body,t82=t87.documentElement; - return [0, - ((t80.left | 0) - t81.clientLeft | 0) - t82.clientLeft | 0, - ((t80.top | 0) - t81.clientTop | 0) - t82.clientTop | 0]} - function getDocumentScroll(param) - {var t88=t87.body,t89=t87.documentElement; - return [0, - t88.scrollLeft + t89.scrollLeft | 0, - t88.scrollTop + t89.scrollTop | 0]} - function buttonPressed(ev) - {function _f5_(x){return x} - function _f6_(param) - {var match=ev.button,switcher=match - 1 | 0; - if(3 >= switcher >>> 0) - switch(switcher) - {case 0:return 1;case 1:return 3;case 2:break;default:return 2} - return 0} - return caml_call3(Optdef[7],ev.which,_f6_,_f5_)} - function addMousewheelEventListenerWith(e,capture,once,passive,h) - {return addEventListenerWithOptions - (e, - wheel, - capture, - once, - passive, - handler - (function(e) - {function _f3_(param){return 0} - var - dx= - (- caml_call2(Optdef[8],e.wheelDeltaX,_f3_) | 0) / 40 | 0; - function _f4_(param){return e.wheelDelta} - var - dy= - (- caml_call2(Optdef[8],e.wheelDeltaY,_f4_) | 0) / 40 | 0; - return caml_call3(h,e,dx,dy)}))} - function addMousewheelEventListener(e,h,capt) - {return addMousewheelEventListenerWith(e,[0,capt],0,0,h)} - function f(v) - {var - match=caml_string_of_jsstring(v), - switch$0=caml_string_compare(match,cst_KeyH); - if(0 <= switch$0) - {if(0 >= switch$0)return 8; - var switch$1=caml_string_compare(match,cst_Numpad4); - if(0 <= switch$1) - {if(0 >= switch$1)return 72; - var switch$2=caml_string_compare(match,cst_PageUp); - if(0 <= switch$2) - {if(0 >= switch$2)return 98; - var switch$3=caml_string_compare(match,cst_ShiftRight); - if(0 <= switch$3) - {if(0 >= switch$3)return 91; - if(! caml_string_notequal(match,cst_Slash))return 55; - if(! caml_string_notequal(match,cst_Space))return 41; - if(! caml_string_notequal(match,cst_Tab))return 39; - if(! caml_string_notequal(match,cst_VolumeDown))return 103; - if(! caml_string_notequal(match,cst_VolumeMute))return 102; - if(! caml_string_notequal(match,cst_VolumeUp))return 104} - else - {if(! caml_string_notequal(match,cst_Pause))return 123; - if(! caml_string_notequal(match,cst_Period))return 54; - if(! caml_string_notequal(match,cst_PrintScreen))return 120; - if(! caml_string_notequal(match,cst_Quote))return 50; - if(! caml_string_notequal(match,cst_ScrollLock))return 119; - if(! caml_string_notequal(match,cst_Semicolon))return 49; - if(! caml_string_notequal(match,cst_ShiftLeft))return 90}} - else - {var switch$4=caml_string_compare(match,cst_NumpadDivide); - if(0 <= switch$4) - {if(0 >= switch$4)return 84; - if(! caml_string_notequal(match,cst_NumpadEnter))return 83; - if(! caml_string_notequal(match,cst_NumpadEqual))return 82; - if(! caml_string_notequal(match,cst_NumpadMultiply))return 78; - if(! caml_string_notequal(match,cst_NumpadSubtract))return 79; - if(! caml_string_notequal(match,cst_OSLeft))return 117; - if(! caml_string_notequal(match,cst_OSRight))return 118; - if(! caml_string_notequal(match,cst_PageDown))return 99} - else - {if(! caml_string_notequal(match,cst_Numpad5))return 73; - if(! caml_string_notequal(match,cst_Numpad6))return 74; - if(! caml_string_notequal(match,cst_Numpad7))return 75; - if(! caml_string_notequal(match,cst_Numpad8))return 76; - if(! caml_string_notequal(match,cst_Numpad9))return 77; - if(! caml_string_notequal(match,cst_NumpadAdd))return 80; - if(! caml_string_notequal(match,cst_NumpadDecimal))return 81}}} - else - {var switch$5=caml_string_compare(match,cst_KeyX); - if(0 <= switch$5) - {if(0 >= switch$5)return 24; - var switch$6=caml_string_compare(match,cst_MetaRight); - if(0 <= switch$6) - {if(0 >= switch$6)return 89; - if(! caml_string_notequal(match,cst_Minus))return 37; - if(! caml_string_notequal(match,cst_NumLock))return 85; - if(! caml_string_notequal(match,cst_Numpad0))return 68; - if(! caml_string_notequal(match,cst_Numpad1))return 69; - if(! caml_string_notequal(match,cst_Numpad2))return 70; - if(! caml_string_notequal(match,cst_Numpad3))return 71} - else - {if(! caml_string_notequal(match,cst_KeyY))return 25; - if(! caml_string_notequal(match,cst_KeyZ))return 26; - if(! caml_string_notequal(match,cst_MediaPlayPause))return 107; - if(! caml_string_notequal(match,cst_MediaStop))return 108; - if(! caml_string_notequal(match,cst_MediaTrackNext))return 106; - if(! caml_string_notequal(match,cst_MediaTrackPrevious)) - return 105; - if(! caml_string_notequal(match,cst_MetaLeft))return 88}} - else - {var switch$7=caml_string_compare(match,cst_KeyP); - if(0 <= switch$7) - {if(0 >= switch$7)return 16; - if(! caml_string_notequal(match,cst_KeyQ))return 17; - if(! caml_string_notequal(match,cst_KeyR))return 18; - if(! caml_string_notequal(match,cst_KeyS))return 19; - if(! caml_string_notequal(match,cst_KeyT))return 20; - if(! caml_string_notequal(match,cst_KeyU))return 21; - if(! caml_string_notequal(match,cst_KeyV))return 22; - if(! caml_string_notequal(match,cst_KeyW))return 23} - else - {if(! caml_string_notequal(match,cst_KeyI))return 9; - if(! caml_string_notequal(match,cst_KeyJ))return 10; - if(! caml_string_notequal(match,cst_KeyK))return 11; - if(! caml_string_notequal(match,cst_KeyL))return 12; - if(! caml_string_notequal(match,cst_KeyM))return 13; - if(! caml_string_notequal(match,cst_KeyN))return 14; - if(! caml_string_notequal(match,cst_KeyO))return 15}}}} - else - {var switch$8=caml_string_compare(match,cst_Digit6); - if(0 <= switch$8) - {if(0 >= switch$8)return 33; - var switch$9=caml_string_compare(match,cst_F6); - if(0 <= switch$9) - {if(0 >= switch$9)return 61; - var switch$10=caml_string_compare(match,cst_KeyA); - if(0 <= switch$10) - {if(0 >= switch$10)return 1; - if(! caml_string_notequal(match,cst_KeyB))return 2; - if(! caml_string_notequal(match,cst_KeyC))return 3; - if(! caml_string_notequal(match,cst_KeyD))return 4; - if(! caml_string_notequal(match,cst_KeyE))return 5; - if(! caml_string_notequal(match,cst_KeyF))return 6; - if(! caml_string_notequal(match,cst_KeyG))return 7} - else - {if(! caml_string_notequal(match,cst_F7))return 62; - if(! caml_string_notequal(match,cst_F8))return 63; - if(! caml_string_notequal(match,cst_F9))return 64; - if(! caml_string_notequal(match,cst_Home))return 100; - if(! caml_string_notequal(match,cst_Insert))return 44; - if(! caml_string_notequal(match,cst_IntlBackslash))return 121; - if(! caml_string_notequal(match,cst_IntlYen))return 122}} - else - {var switch$11=caml_string_compare(match,cst_F1); - if(0 <= switch$11) - {if(0 >= switch$11)return 56; - if(! caml_string_notequal(match,cst_F10))return 65; - if(! caml_string_notequal(match,cst_F11))return 66; - if(! caml_string_notequal(match,cst_F12))return 67; - if(! caml_string_notequal(match,cst_F2))return 57; - if(! caml_string_notequal(match,cst_F3))return 58; - if(! caml_string_notequal(match,cst_F4))return 59; - if(! caml_string_notequal(match,cst_F5))return 60} - else - {if(! caml_string_notequal(match,cst_Digit7))return 34; - if(! caml_string_notequal(match,cst_Digit8))return 35; - if(! caml_string_notequal(match,cst_Digit9))return 36; - if(! caml_string_notequal(match,cst_End))return 101; - if(! caml_string_notequal(match,cst_Enter))return 40; - if(! caml_string_notequal(match,cst_Equal))return 38; - if(! caml_string_notequal(match,cst_Escape))return 42}}} - else - {var switch$12=caml_string_compare(match,cst_BrowserRefresh); - if(0 <= switch$12) - {if(0 >= switch$12)return 113; - var switch$13=caml_string_compare(match,cst_Delete); - if(0 <= switch$13) - {if(0 >= switch$13)return 45; - if(! caml_string_notequal(match,cst_Digit0))return 27; - if(! caml_string_notequal(match,cst_Digit1))return 28; - if(! caml_string_notequal(match,cst_Digit2))return 29; - if(! caml_string_notequal(match,cst_Digit3))return 30; - if(! caml_string_notequal(match,cst_Digit4))return 31; - if(! caml_string_notequal(match,cst_Digit5))return 32} - else - {if(! caml_string_notequal(match,cst_BrowserSearch))return 110; - if(! caml_string_notequal(match,cst_BrowserStop))return 114; - if(! caml_string_notequal(match,cst_CapsLock))return 46; - if(! caml_string_notequal(match,cst_Comma))return 53; - if(! caml_string_notequal(match,cst_ContextMenu))return 109; - if(! caml_string_notequal(match,cst_ControlLeft))return 86; - if(! caml_string_notequal(match,cst_ControlRight))return 87}} - else - {var switch$14=caml_string_compare(match,cst_Backslash); - if(0 <= switch$14) - {if(0 >= switch$14)return 52; - if(! caml_string_notequal(match,cst_Backspace))return 43; - if(! caml_string_notequal(match,cst_BracketLeft))return 47; - if(! caml_string_notequal(match,cst_BracketRight))return 48; - if(! caml_string_notequal(match,cst_BrowserBack))return 116; - if(! caml_string_notequal(match,cst_BrowserFavorites)) - return 112; - if(! caml_string_notequal(match,cst_BrowserForward))return 115; - if(! caml_string_notequal(match,cst_BrowserHome))return 111} - else - {if(! caml_string_notequal(match,cst_AltLeft))return 92; - if(! caml_string_notequal(match,cst_AltRight))return 93; - if(! caml_string_notequal(match,cst_ArrowDown))return 97; - if(! caml_string_notequal(match,cst_ArrowLeft))return 94; - if(! caml_string_notequal(match,cst_ArrowRight))return 95; - if(! caml_string_notequal(match,cst_ArrowUp))return 96; - if(! caml_string_notequal(match,cst_Backquote))return 51}}}} - return 0} - function try_key_code_left(param) - {if(19 <= param) - {if(91 === param)return 88} - else - if(16 <= param) - switch(param - 16 | 0) - {case 0:return 90;case 1:return 86;default:return 92} - return 0} - function try_key_code_right(param) - {if(19 <= param) - {if(91 === param)return 89} - else - if(16 <= param) - switch(param - 16 | 0) - {case 0:return 91;case 1:return 87;default:return 93} - return 0} - function try_key_code_numpad(param) - {if(47 <= param) - {var switcher=param - 96 | 0; - if(15 >= switcher >>> 0) - switch(switcher) - {case 0:return 68; - case 1:return 69; - case 2:return 70; - case 3:return 71; - case 4:return 72; - case 5:return 73; - case 6:return 74; - case 7:return 75; - case 8:return 76; - case 9:return 77; - case 10:return 78; - case 11:return 80; - case 12:break; - case 13:return 79; - case 14:return 81; - default:return 84}} - else - if(12 <= param) - switch(param - 12 | 0) - {case 0:return 73; - case 1:return 83; - case 21:return 77; - case 22:return 71; - case 23:return 69; - case 24:return 75; - case 25:return 72; - case 26:return 76; - case 27:return 74; - case 28:return 70; - case 33:return 68; - case 34:return 81 - } - return 0} - function try_key_code_normal(param) - {var switcher=param - 8 | 0; - if(214 >= switcher >>> 0) - {var _f2_=switcher; - if(67 <= _f2_) - switch(_f2_) - {case 67:return 11; - case 68:return 12; - case 69:return 13; - case 70:return 14; - case 71:return 15; - case 72:return 16; - case 73:return 17; - case 74:return 18; - case 75:return 19; - case 76:return 20; - case 77:return 21; - case 78:return 22; - case 79:return 23; - case 80:return 24; - case 81:return 25; - case 82:return 26; - case 85:return 109; - case 104:return 56; - case 105:return 57; - case 106:return 58; - case 107:return 59; - case 108:return 60; - case 109:return 61; - case 110:return 62; - case 111:return 63; - case 112:return 64; - case 113:return 65; - case 114:return 66; - case 115:return 67; - case 137:return 119; - case 178:return 49; - case 179:return 38; - case 180:return 53; - case 181:return 37; - case 182:return 54; - case 183:return 55; - case 184:return 51; - case 211:return 47; - case 212:return 52; - case 213:return 48; - case 214:return 50 - } - else - switch(_f2_) - {case 0:return 43; - case 1:return 39; - case 5:return 40; - case 11:return 123; - case 12:return 46; - case 19:return 42; - case 24:return 41; - case 25:return 98; - case 26:return 99; - case 27:return 101; - case 28:return 100; - case 29:return 94; - case 30:return 96; - case 31:return 95; - case 32:return 97; - case 34:return 120; - case 37:return 44; - case 38:return 45; - case 40:return 27; - case 41:return 28; - case 42:return 29; - case 43:return 30; - case 44:return 31; - case 45:return 32; - case 46:return 33; - case 47:return 34; - case 48:return 35; - case 49:return 36; - case 57:return 1; - case 58:return 2; - case 59:return 3; - case 60:return 4; - case 61:return 5; - case 62:return 6; - case 63:return 7; - case 64:return 8; - case 65:return 9; - case 66:return 10 - }} - return 0} - function make_unidentified(param){return 0} - function run_next(value,f,v){return v?v:caml_call1(f,value)} - function symbol$11(x,f){return caml_call1(f,x)} - function of_event(evt) - {var _fV_=evt.keyCode; - function _fW_(_f1_){return run_next(_fV_,try_key_code_normal,_f1_)} - var match=evt.location,switcher=match - 1 | 0; - if(2 < switcher >>> 0) - var _fX_=make_unidentified; - else - switch(switcher) - {case 0: - var - _fS_=evt.keyCode, - _fX_=function(_fZ_){return run_next(_fS_,try_key_code_left,_fZ_)}; - break; - case 1: - var - _fT_=evt.keyCode, - _fX_=function(_fY_){return run_next(_fT_,try_key_code_right,_fY_)}; - break; - default: - var - _fU_=evt.keyCode, - _fX_=function(_f0_){return run_next(_fU_,try_key_code_numpad,_f0_)}} - var value=evt.code; - return symbol$11 - (symbol$11 - (symbol$11 - (0, - function(v) - {return v?v:caml_call3(Optdef[7],value,make_unidentified,f)}), - _fX_), - _fW_)} - function char_of_int(value) - {if(! caml_call2(symbol$5,0,value))return 0; - try - {var _fQ_=[0,caml_call1(Stdlib_Uchar[8],value)];return _fQ_} - catch(_fR_){return 0}} - function empty_string(param){return ""} - function none(param){return 0} - function of_event$0(evt) - {var t104=caml_call2(Optdef[8],evt.key,empty_string),match=t104.length; - return 0 === match - ?caml_call3(Optdef[7],evt.charCode,none,char_of_int) - :1 === match?char_of_int(t104.charCodeAt(0) | 0):0} - function element$1(_fP_){return _fP_} - function tagged(e) - {var t106=e.tagName,tag=caml_string_of_jsbytes(t106.toLowerCase()); - if(caml_call2(symbol$8,caml_ml_string_length(tag),0))return [61,e]; - var match=runtime.caml_string_unsafe_get(tag,0),switcher=match - 97 | 0; - if(21 >= switcher >>> 0) - switch(switcher) - {case 0: - return caml_string_notequal(tag,cst_a$1) - ?caml_string_notequal(tag,cst_area$1) - ?caml_string_notequal(tag,cst_audio$1)?[61,e]:[2,e] - :[1,e] - :[0,e]; - case 1: - return caml_string_notequal(tag,cst_base$1) - ?caml_string_notequal(tag,cst_blockquote$1) - ?caml_string_notequal(tag,cst_body$1) - ?caml_string_notequal(tag,cst_br$1) - ?caml_string_notequal(tag,cst_button$1)?[61,e]:[7,e] - :[6,e] - :[5,e] - :[4,e] - :[3,e]; - case 2: - return caml_string_notequal(tag,cst_canvas$1) - ?caml_string_notequal(tag,cst_caption$1) - ?caml_string_notequal(tag,cst_col$1) - ?caml_string_notequal(tag,cst_colgroup$1)?[61,e]:[11,e] - :[10,e] - :[9,e] - :[8,e]; - case 3: - return caml_string_notequal(tag,cst_del$1) - ?caml_string_notequal(tag,cst_div$1) - ?caml_string_notequal(tag,cst_dl$1)?[61,e]:[14,e] - :[13,e] - :[12,e]; - case 4:return caml_string_notequal(tag,cst_embed$1)?[61,e]:[15,e]; - case 5: - return caml_string_notequal(tag,cst_fieldset$1) - ?caml_string_notequal(tag,cst_form$1) - ?caml_string_notequal(tag,cst_frame$1) - ?caml_string_notequal(tag,cst_frameset$1)?[61,e]:[18,e] - :[19,e] - :[17,e] - :[16,e]; - case 7: - return caml_string_notequal(tag,cst_h1$1) - ?caml_string_notequal(tag,cst_h2$1) - ?caml_string_notequal(tag,cst_h3$1) - ?caml_string_notequal(tag,cst_h4$1) - ?caml_string_notequal(tag,cst_h5$1) - ?caml_string_notequal(tag,cst_h6$1) - ?caml_string_notequal(tag,cst_head$1) - ?caml_string_notequal(tag,cst_hr$1) - ?caml_string_notequal(tag,cst_html$1)?[61,e]:[28,e] - :[27,e] - :[26,e] - :[25,e] - :[24,e] - :[23,e] - :[22,e] - :[21,e] - :[20,e]; - case 8: - return caml_string_notequal(tag,cst_iframe$1) - ?caml_string_notequal(tag,cst_img$1) - ?caml_string_notequal(tag,cst_input$2) - ?caml_string_notequal(tag,cst_ins$1)?[61,e]:[32,e] - :[31,e] - :[30,e] - :[29,e]; - case 11: - return caml_string_notequal(tag,cst_label$1) - ?caml_string_notequal(tag,cst_legend$1) - ?caml_string_notequal(tag,cst_li$1) - ?caml_string_notequal(tag,cst_link$1)?[61,e]:[36,e] - :[35,e] - :[34,e] - :[33,e]; - case 12: - return caml_string_notequal(tag,cst_map$1) - ?caml_string_notequal(tag,cst_meta$1)?[61,e]:[38,e] - :[37,e]; - case 14: - return caml_string_notequal(tag,cst_object$1) - ?caml_string_notequal(tag,cst_ol$1) - ?caml_string_notequal(tag,cst_optgroup$1) - ?caml_string_notequal(tag,cst_option$1)?[61,e]:[42,e] - :[41,e] - :[40,e] - :[39,e]; - case 15: - return caml_string_notequal(tag,cst_p$1) - ?caml_string_notequal(tag,cst_param$1) - ?caml_string_notequal(tag,cst_pre$1)?[61,e]:[45,e] - :[44,e] - :[43,e]; - case 16:return caml_string_notequal(tag,cst_q$1)?[61,e]:[46,e]; - case 18: - return caml_string_notequal(tag,cst_script$1) - ?caml_string_notequal(tag,cst_select$2) - ?caml_string_notequal(tag,cst_style$1)?[61,e]:[49,e] - :[48,e] - :[47,e]; - case 19: - return caml_string_notequal(tag,cst_table$1) - ?caml_string_notequal(tag,cst_tbody$1) - ?caml_string_notequal(tag,cst_td$1) - ?caml_string_notequal(tag,cst_textarea$1) - ?caml_string_notequal(tag,cst_tfoot$1) - ?caml_string_notequal(tag,cst_th$1) - ?caml_string_notequal(tag,cst_thead$1) - ?caml_string_notequal(tag,cst_title$1) - ?caml_string_notequal(tag,cst_tr$1)?[61,e]:[58,e] - :[57,e] - :[56,e] - :[55,e] - :[54,e] - :[53,e] - :[52,e] - :[51,e] - :[50,e]; - case 20:return caml_string_notequal(tag,cst_ul$1)?[61,e]:[59,e]; - case 21:return caml_string_notequal(tag,cst_video$1)?[61,e]:[60,e] - } - return [61,e]} - function opt_tagged(e) - {function _fN_(e){return [0,tagged(e)]} - function _fO_(param){return 0} - return caml_call3(Opt[7],e,_fO_,_fN_)} - function taggedEvent(ev) - {function _fv_(ev){return [0,ev]} - function _fw_(param) - {function _fy_(ev){return [1,ev]} - function _fz_(param) - {function _fB_(ev){return [3,ev]} - function _fC_(param) - {function _fE_(ev){return [4,ev]} - function _fF_(param) - {function _fH_(ev){return [5,ev]} - function _fI_(param) - {function _fK_(ev){return [2,ev]} - function _fL_(param){return [6,ev]} - var _fM_=messageEvent(ev); - return caml_call3(Opt[7],_fM_,_fL_,_fK_)} - var _fJ_=popStateEvent(ev); - return caml_call3(Opt[7],_fJ_,_fI_,_fH_)} - var _fG_=mouseScrollEvent(ev); - return caml_call3(Opt[7],_fG_,_fF_,_fE_)} - var _fD_=wheelEvent(ev); - return caml_call3(Opt[7],_fD_,_fC_,_fB_)} - var _fA_=keyboardEvent(ev); - return caml_call3(Opt[7],_fA_,_fz_,_fy_)} - var _fx_=mouseEvent(ev); - return caml_call3(Opt[7],_fx_,_fw_,_fv_)} - function opt_taggedEvent(ev) - {function _ft_(ev){return [0,taggedEvent(ev)]} - function _fu_(param){return 0} - return caml_call3(Opt[7],ev,_fu_,_ft_)} - function stopPropagation(ev) - {function _fr_(param){return ev.stopPropagation()} - function _fs_(param){return ev.cancelBubble = t38} - return caml_call3(Optdef[7],ev.stopPropagation,_fs_,_fr_)} - var - requestAnimationFrame= - runtime.caml_js_pure_expr - (function(param) - {var - l= - [0, - _j_.requestAnimationFrame, - [0, - _j_.mozRequestAnimationFrame, - [0, - _j_.webkitRequestAnimationFrame, - [0, - _j_.oRequestAnimationFrame, - [0,_j_.msRequestAnimationFrame,0]]]]]; - try - {var - _fo_=function(c){return caml_call1(Optdef[5],c)}, - req=caml_call2(Stdlib_List[38],_fo_,l), - _fp_=function(callback){return req(callback)}; - return _fp_} - catch(_fq_) - {_fq_ = caml_wrap_exception(_fq_); - if(_fq_ !== Stdlib[8])throw _fq_; - var - now=function(param){var t117=new t116();return t117.getTime()}, - last=[0,now(0)]; - return function(callback) - {var - t=now(0), - dt=last[1] + 16.6666666666666679 - t, - dt$0=dt < 0.?0.:dt; - last[1] = t; - _j_.setTimeout(callback,dt$0); - return 0}}}); - function hasPushState(param) - {var t122=_j_.history;return caml_call1(Optdef[5],t122.pushState)} - function hasPlaceholder(param) - {var t123=createInput(0,0,t87); - return caml_call1(Optdef[5],t123.placeholder)} - function hasRequired(param) - {var t124=createInput(0,0,t87); - return caml_call1(Optdef[5],t124.required)} - var overflow_limit=2147483000.; - function setTimeout(callback,d) - {var id=[0,0]; - function loop(d,param) - {if(2147483000. < d) - var remain=d - 2147483000.,step=overflow_limit; - else - var remain=0.,step=d; - var - cb=remain == 0.?callback:function(_fn_){return loop(remain,_fn_)}, - t125=caml_js_wrap_callback(cb); - id[1] = [0,_j_.setTimeout(t125,step)]; - return 0} - loop(d,0); - return id} - function clearTimeout(id) - {var _fm_=id[1]; - if(! _fm_)return 0; - var x=_fm_[1]; - id[1] = 0; - return _j_.clearTimeout(x)} - function js_array_of_collection(c){return [].slice.call(c)} - var - _n_= - [0, - click, - copy$0, - cut, - paste, - dblclick, - mousedown, - mouseup, - mouseover, - mousemove, - mouseout, - keypress, - keydown, - keyup, - mousewheel, - DOMMouseScroll, - wheel, - touchstart, - touchmove, - touchend, - touchcancel, - dragstart, - dragend, - dragenter, - dragover, - dragleave, - drag, - drop, - hashchange, - change, - input, - timeupdate, - submit, - scroll, - focus, - blur, - load$0, - unload, - beforeunload, - resize, - orientationchange, - popstate, - error$0, - abort$0, - select, - online, - offline, - checking, - noupdate, - downloading, - progress$0, - updateready, - cached, - obsolete, - domContentLoaded, - animationstart, - animationend, - animationiteration, - animationcancel, - transitionrun, - transitionstart, - transitionend, - transitioncancel, - canplay, - canplaythrough, - durationchange, - emptied, - ended, - gotpointercapture, - loadeddata, - loadedmetadata, - loadstart$0, - lostpointercapture, - message$0, - pause, - play, - playing, - pointerenter, - pointercancel, - pointerdown, - pointerleave, - pointermove, - pointerout, - pointerover, - pointerup, - ratechange, - seeked, - seeking, - stalled, - suspend, - volumechange, - waiting, - make$1], - Js_of_ocaml_Dom_html= - [0, - d, - t87, - getElementById_opt, - getElementById_exn, - getElementById_coerce, - getElementById, - location_origin, - _j_, - no_handler, - handler, - full_handler, - invoke_handler, - eventTarget, - eventRelatedTarget, - _n_, - addEventListenerWithOptions, - addEventListener, - removeEventListener, - addMousewheelEventListenerWith, - addMousewheelEventListener, - createCustomEvent, - buttonPressed, - eventAbsolutePosition$0, - elementClientPosition, - getDocumentScroll, - [0,of_event,try_key_code_normal], - [0,of_event$0], - createHtml, - createHead, - createLink, - createTitle, - createMeta, - createBase, - createStyle, - createBody, - createForm, - createOptgroup, - createOption, - createSelect, - createInput, - createTextarea, - createButton, - createLabel, - createFieldset, - createLegend, - createUl, - createOl, - createDl, - createLi, - createDiv, - createEmbed, - createP, - createH1, - createH2, - createH3, - createH4, - createH5, - createH6, - createQ, - createBlockquote, - createPre, - createBr, - createHr, - createIns, - createDel, - createA, - createImg, - createObject, - createParam, - createMap, - createArea, - createScript, - createTable, - createCaption, - createCol, - createColgroup, - createThead, - createTfoot, - createTbody, - createTr, - createTh, - createTd, - createSub, - createSup, - createSpan, - createTt, - createI, - createB, - createBig, - createSmall, - createEm, - createStrong, - createCite, - createDfn, - createCode, - createSamp, - createKbd, - createVar, - createAbbr, - createDd, - createDt, - createNoscript, - createAddress, - createFrameset, - createFrame, - createIframe, - createAudio, - createVideo, - Canvas_not_available, - createCanvas, - element$1, - tagged, - opt_tagged, - taggedEvent, - opt_taggedEvent, - stopPropagation, - [0, - element$0, - a, - area, - audio, - base, - blockquote, - body, - br, - button, - canvas, - caption, - col, - colgroup, - del, - div, - embed, - dl, - fieldset, - form, - frameset, - frame, - h1, - h2, - h3, - h4, - h5, - h6, - head, - hr, - html, - iframe, - img, - input$0, - ins, - label, - legend, - li, - link, - map$2, - meta, - object, - ol, - optgroup, - option$1, - p, - param, - pre, - q, - script, - select$0, - style, - table, - tbody, - td, - textarea, - tfoot, - th, - thead, - title, - tr, - ul, - video, - mouseEvent, - keyboardEvent, - wheelEvent, - mouseScrollEvent, - popStateEvent, - messageEvent], - setTimeout, - clearTimeout, - js_array_of_collection, - requestAnimationFrame, - runtime.caml_js_html_entities, - onIE, - hasPushState, - hasPlaceholder, - hasRequired]; - caml_register_global(1669,Js_of_ocaml_Dom_html,"Js_of_ocaml__Dom_html"); - var formData=Unsafe[1].FormData,formData_form=Unsafe[1].FormData; - function filter_map$0(f,param) - {var param$0=param; - for(;;) - {if(! param$0)return 0; - var q=param$0[2],v=param$0[1],match=caml_call1(f,v); - if(match){var v$0=match[1];return [0,v$0,filter_map$0(f,q)]} - var param$0=q}} - function have_content(elt) - {var - t3=elt.name, - _fk_=caml_call2(symbol$9,t3.length,0), - _fl_=_fk_?1 - (elt.disabled | 0):_fk_; - return _fl_} - function form_elements(get,form) - {var t34=form.elements,i$2=t34.length - 1 | 0,acc=0,i=i$2; - for(;;) - {if(caml_call2(symbol$5,i,0)) - {var - _fb_= - function(v$2) - {var match$3=tagged(v$2); - switch(match$3[0]) - {case 31: - var v=match$3[1]; - if(get)var sth=get[1],get$0=sth;else var get$0=0; - if(! have_content(v))return 0; - var - name$1=caml_string_of_jsstring(v.name), - value=v.value, - t20=v.type, - match=caml_string_of_jsbytes(t20.toLowerCase()); - if(caml_string_notequal(match,cst_checkbox)) - {if(! caml_string_notequal(match,cst_file)) - {if(get$0)return [0,[0,name$1,[0,-976970511,value]],0]; - var match$0=caml_call1(Optdef[10],v.files); - if(! match$0)return 0; - var list=match$0[1]; - if(caml_call2(symbol$8,list.length,0)) - return [0,[0,name$1,[0,-976970511,""]],0]; - var match$1=caml_call1(Optdef[10],v.multiple); - if(match$1 && match$1[1]) - {var - _ff_=function(t28){return list.item(t28)}, - _fg_=caml_call2(Stdlib_Array[2],list.length,_ff_), - _fh_=caml_call1(Stdlib_Array[11],_fg_); - return filter_map$0 - (function(f) - {var match=caml_call1(Opt[10],f); - if(! match)return 0; - var file=match[1]; - return [0,[0,name$1,[0,781515420,file]]]}, - _fh_)} - var _fi_=list.item(0),match$2=caml_call1(Opt[10],_fi_); - if(! match$2)return 0; - var file=match$2[1]; - return [0,[0,name$1,[0,781515420,file]],0]} - var switch$0=0; - if(caml_string_notequal(match,cst_password)) - {if(caml_string_notequal(match,cst_radio)) - {var switch$1=0; - if - (caml_string_notequal(match,cst_reset) - && - caml_string_notequal(match,cst_submit$0)) - {if(caml_string_notequal(match,cst_text)) - return [0,[0,name$1,[0,-976970511,value]],0]; - switch$0 = 1; - switch$1 = 1} - if(! switch$1)return 0}} - else - switch$0 = 1; - if(switch$0)return [0,[0,name$1,[0,-976970511,value]],0]} - return v.checked | 0?[0,[0,name$1,[0,-976970511,value]],0]:0; - case 48: - var v$0=match$3[1]; - if(! have_content(v$0))return 0; - var name$0=caml_string_of_jsstring(v$0.name); - if(! (v$0.multiple | 0)) - return [0,[0,name$0,[0,-976970511,v$0.value]],0]; - var - _fd_= - function(i) - {var t13=v$0.options,_fj_=t13.item(i); - return caml_call1(Opt[10],_fj_)}, - t10=v$0.options, - options=caml_call2(Stdlib_Array[2],t10.length,_fd_), - _fe_=caml_call1(Stdlib_Array[11],options); - return filter_map$0 - (function(param) - {if(! param)return 0; - var e=param[1]; - return e.selected | 0 - ?[0,[0,name$0,[0,-976970511,e.value]]] - :0}, - _fe_); - case 53: - var v$1=match$3[1]; - if(! have_content(v$1))return 0; - var name=caml_string_of_jsstring(v$1.name); - return [0,[0,name,[0,-976970511,v$1.value]],0]; - default:return 0}}, - _fc_=caml_call2(Stdlib_List[19],_fb_,acc); - return caml_call1(Stdlib_List[14],_fc_)} - var t32=form.elements,_fa_=t32.item(i),match=caml_call1(Opt[10],_fa_); - if(match) - {var x=match[1],i$0=i - 1 | 0,acc$0=[0,x,acc],acc=acc$0,i=i$0; - continue} - var i$1=i - i | 0,i=i$1}} - function append(form_contents,form_elt) - {if(891486873 <= form_contents[1]) - {var list=form_contents[2];list[1] = [0,form_elt,list[1]];return 0} - var f=form_contents[2],_e__=form_elt[2],_e$_=form_elt[1]; - if(781515420 <= _e__[1]) - {var file=_e__[2],t38=caml_jsstring_of_string(_e$_); - return f.append(t38,file)} - var s=_e__[2],t35=caml_jsstring_of_string(_e$_); - return f.append(t35,s)} - function empty_form_contents(param) - {var match=caml_call1(Optdef[10],formData); - if(! match)return [0,891486873,[0,0]]; - var constr=match[1]; - return [0,808620462,new constr()]} - function post_form_contents(form) - {var contents=empty_form_contents(0),_e7_=form_elements(0,form); - function _e8_(_e9_){return append(contents,_e9_)} - caml_call2(Stdlib_List[17],_e8_,_e7_); - return contents} - function get_form_contents(form) - {var _e4_=form_elements(_o_,form); - function _e5_(param) - {var _e6_=param[2]; - if(typeof _e6_ !== "number" && -976970511 === _e6_[1]) - {var s=_e6_[2],name=param[1]; - return [0,name,caml_string_of_jsstring(s)]} - throw [0,Assert_failure,_p_]} - return caml_call2(Stdlib_List[19],_e5_,_e4_)} - var - Js_of_ocaml_Form= - [0, - formData, - formData_form, - append, - post_form_contents, - get_form_contents, - empty_form_contents, - form_elements]; - caml_register_global(1670,Js_of_ocaml_Form,"Js_of_ocaml__Form"); - var - readystatechange=caml_call1(Event[1],cst_readystatechange), - loadstart$1=caml_call1(Event[1],cst_loadstart$1), - progress$1=caml_call1(Event[1],cst_progress$1), - abort$1=caml_call1(Event[1],cst_abort$1), - error$1=caml_call1(Event[1],cst_error$1), - load$1=caml_call1(Event[1],cst_load$1), - timeout=caml_call1(Event[1],cst_timeout), - loadend$0=caml_call1(Event[1],cst_loadend$0), - Event$0= - [0, - readystatechange, - loadstart$1, - progress$1, - abort$1, - error$1, - load$1, - timeout, - loadend$0], - Js_of_ocaml_XmlHttpRequest=[0,runtime.caml_xmlhttprequest_create,Event$0]; - caml_register_global - (1671,Js_of_ocaml_XmlHttpRequest,"Js_of_ocaml__XmlHttpRequest"); - var t2=Unsafe[1].Worker; - function create(script) - {var t1=caml_jsstring_of_string(script);return new t2(t1)} - function import_scripts(scripts) - {if(Unsafe[1].importScripts === t39) - caml_call1(Stdlib[1],cst_Worker_import_scripts_is_u); - var _e1_=caml_call1(Stdlib_Array[12],scripts); - function _e2_(s){return caml_jsstring_of_string(s)} - var _e3_=caml_call2(Stdlib_Array[15],_e2_,_e1_); - return runtime.caml_js_fun_call(Unsafe[1].importScripts,_e3_)} - function set_onmessage(handler) - {if(Unsafe[1].onmessage === t39) - caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi); - function js_handler(ev){return caml_call1(handler,ev.data)} - var t7=caml_js_wrap_callback(js_handler); - return Unsafe[1].onmessage = t7} - function post_message(t10) - {if(Unsafe[1].postMessage === t39) - caml_call1(Stdlib[1],cst_Worker_onmessage_is_undefi$0); - return Unsafe[1].postMessage(t10)} - var - Js_of_ocaml_Worker= - [0,create,import_scripts,set_onmessage,post_message]; - caml_register_global(1672,Js_of_ocaml_Worker,"Js_of_ocaml__Worker"); - var webSocket=Unsafe[1].WebSocket; - function is_supported(param){return caml_call1(Optdef[5],webSocket)} - var Js_of_ocaml_WebSockets=[0,webSocket,webSocket,webSocket,is_supported]; - caml_register_global - (1673,Js_of_ocaml_WebSockets,"Js_of_ocaml__WebSockets"); - var - defaultContextAttributes= - {"alpha":t38, - "depth":t38, - "stencil":t4, - "antialias":t38, - "premultipliedAlpha":t4, - "preserveDrawingBuffer":t4, - "preferLowPowerToHighPerformance":t4, - "failIfMajorPerformanceCaveat":t4}, - webglcontextlost=caml_call1(_n_[92],cst_webglcontextlost), - webglcontextrestored=caml_call1(_n_[92],cst_webglcontextrestored), - webglcontextcreationerror= - caml_call1(_n_[92],cst_webglcontextcreationerror), - Event$1= - [0,webglcontextlost,webglcontextrestored,webglcontextcreationerror]; - function getContext(t3) - {var ctx=t3.getContext("webgl"); - return caml_call1(Opt[5],ctx)?ctx:t3.getContext("experimental-webgl")} - function getContextWithAttributes(t9,t8) - {var ctx=t9.getContext("webgl",t8); - return caml_call1(Opt[5],ctx)?ctx:t9.getContext("experimental-webgl",t8)} - var - Js_of_ocaml_WebGL= - [0,defaultContextAttributes,Event$1,getContext,getContextWithAttributes]; - caml_register_global(1674,Js_of_ocaml_WebGL,"Js_of_ocaml__WebGL"); - function regexp(s) - {var t0=caml_jsbytes_of_string(s);return new t11(t0,"g")} - function regexp_case_fold(s) - {var t3=caml_jsbytes_of_string(s);return new t11(t3,"gi")} - function regexp_with_flag(s,f) - {var - t7=caml_jsstring_of_string(caml_call2(Stdlib[28],cst_g,f)), - t6=caml_jsbytes_of_string(s); - return new t11(t6,t7)} - function blunt_str_array_get(a,i) - {function _eZ_(param){throw [0,Assert_failure,_q_]} - var _e0_=a[i]; - return caml_string_of_jsbytes(caml_call2(Optdef[8],_e0_,_eZ_))} - function string_match(r,s,i) - {r.lastIndex = i; - var - t11=caml_jsbytes_of_string(s), - _eX_=r.exec(t11), - _eY_=caml_call2(Opt[3],_eX_,match_result); - return caml_call1(Opt[10],_eY_)} - function search_forward(r,s,i) - {r.lastIndex = i; - var t15=caml_jsbytes_of_string(s); - function _eU_(t17){return [0,t17.index,t17]} - var _eV_=r.exec(t15),_eW_=caml_call2(Opt[3],_eV_,_eU_); - return caml_call1(Opt[10],_eW_)} - function matched_string(r){return blunt_str_array_get(r,0)} - function matched_group(r,i) - {var _eS_=r[i],_eT_=caml_call2(Optdef[3],_eS_,caml_string_of_jsbytes); - return caml_call1(Optdef[10],_eT_)} - var t21=new t11("[$]","g"); - function quote_repl(s) - {var t23=caml_jsbytes_of_string(s);return t23.replace(t21,"$$$$")} - function global_replace(r,s,s_by) - {r.lastIndex = 0; - var t27=quote_repl(s_by),t28=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t28.replace(r,t27))} - function replace_first(r,s,s_by) - {var - match=r.ignoreCase | 0, - match$0=r.multiline | 0, - flags=match?match$0?"mi":"i":match$0?"m":"", - t32=r.source, - t35=new t11(t32,flags), - t36=quote_repl(s_by), - t37=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t37.replace(t35,t36))} - function list_of_js_array(a) - {var idx$1=a.length - 1 | 0,accu=0,idx=idx$1; - for(;;) - {if(caml_call2(symbol$5,idx,0))return accu; - var - idx$0=idx - 1 | 0, - accu$0=[0,blunt_str_array_get(a,idx),accu], - accu=accu$0, - idx=idx$0}} - function split(r,s) - {r.lastIndex = 0; - var t42=caml_jsbytes_of_string(s); - return list_of_js_array(t42.split(r))} - function bounded_split(r,s,i) - {r.lastIndex = 0; - var t47=caml_jsbytes_of_string(s); - return list_of_js_array(t47.split(r,i))} - var t48=regexp(cst); - function quote(s) - {var t50=caml_jsbytes_of_string(s); - return caml_string_of_jsbytes(t50.replace(t48,"\\$&"))} - function regexp_string(s){return regexp(quote(s))} - function regexp_string_case_fold(s){return regexp_case_fold(quote(s))} - var - Js_of_ocaml_Regexp= - [0, - regexp, - regexp_case_fold, - regexp_with_flag, - quote, - regexp_string, - regexp_string_case_fold, - string_match, - search_forward, - search_forward, - matched_string, - matched_group, - global_replace, - replace_first, - split, - bounded_split]; - caml_register_global(1675,Js_of_ocaml_Regexp,"Js_of_ocaml__Regexp"); - var Local_exn=[248,cst_Js_of_ocaml_Url_Local_exn,caml_fresh_oo_id(0)]; - function interrupt(param){throw Local_exn} - var plus_re=regexp_string(cst$0),t14=new t11("\\+","g"); - function urldecode_js_string_string(s) - {t14.lastIndex = 0; - return caml_string_of_jsbytes(unescape(s.replace(t14," ")))} - function urldecode(s) - {return caml_string_of_jsbytes - (unescape - (caml_jsbytes_of_string(global_replace(plus_re,s,cst$1))))} - function urlencode(opt,s) - {if(opt)var sth=opt[1],with_plus=sth;else var with_plus=1; - if(! with_plus) - return caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s))); - var s$0=caml_string_of_jsbytes(escape(caml_jsbytes_of_string(s))); - return global_replace(plus_re,s$0,cst_2B)} - var - Not_an_http_protocol= - [248,cst_Js_of_ocaml_Url_Not_an_htt,caml_fresh_oo_id(0)], - default_http_port=80, - default_https_port=443; - function path_of_path_string(s) - {var l=caml_ml_string_length(s); - function aux(i) - {try - {var _eQ_=caml_call3(String[30],s,i,47),j=_eQ_} - catch(_eR_) - {_eR_ = caml_wrap_exception(_eR_); - if(_eR_ !== Stdlib[8])throw _eR_; - var j=l} - var word=caml_call3(String[14],s,i,j - i | 0); - return caml_call2(symbol$10,j,l)?[0,word,0]:[0,word,aux(j + 1 | 0)]} - var a=aux(0); - if(a && ! caml_string_notequal(a[1],cst$2)) - {var _eP_=a[2]; - if(! _eP_)return 0; - if(! caml_string_notequal(_eP_[1],cst$3) && ! _eP_[2])return _r_} - return a} - function encode_arguments(l) - {function _eK_(param) - {var - v=param[2], - n=param[1], - _eM_=urlencode(0,v), - _eN_=caml_call2(Stdlib[28],cst$4,_eM_), - _eO_=urlencode(0,n); - return caml_call2(Stdlib[28],_eO_,_eN_)} - var _eL_=caml_call2(Stdlib_List[19],_eK_,l); - return caml_call2(String[6],cst$5,_eL_)} - function decode_arguments_js_string(s) - {var - t0=caml_jsstring_of_string(caml_call2(String[1],1,38)), - t18=s.split(t0), - len=t18.length; - function aux(acc,idx) - {var idx$0=idx; - for(;;) - {if(caml_call2(symbol$5,idx$0,0))return acc; - try - {var - _eB_=idx$0 - 1 | 0, - _eC_= - function(s) - {function _eI_(param) - {var - y=param[2], - x=param[1], - _eJ_=urldecode_js_string_string(y); - return [0,urldecode_js_string_string(x),_eJ_]} - var - t2=caml_jsstring_of_string(caml_call2(String[1],1,61)), - t5=s.indexOf(t2); - if(caml_call2(symbol$5,t5,0)) - var _eH_=t39; - else - var - t7=t5 + 1 | 0, - _eG_=s.slice(t7), - _eH_=[0,s.slice(0,t5),_eG_]; - return caml_call3(Optdef[7],_eH_,interrupt,_eI_)}, - _eD_=t18[idx$0], - _eE_=aux([0,caml_call3(Optdef[7],_eD_,interrupt,_eC_),acc],_eB_); - return _eE_} - catch(_eF_) - {_eF_ = caml_wrap_exception(_eF_); - if(_eF_ !== Local_exn)throw _eF_; - var idx$1=idx$0 - 1 | 0,idx$0=idx$1; - continue}}} - return aux(0,len - 1 | 0)} - function decode_arguments(s) - {return decode_arguments_js_string(caml_jsbytes_of_string(s))} - var - t19=caml_jsbytes_of_string(cst_Hh_Tt_Tt_Pp_Ss_0_9a_zA_Z_0), - t24=new t11(t19), - t21$0=caml_jsbytes_of_string(cst_Ff_Ii_Ll_Ee), - t26=new t11(t21$0); - function url_of_js_string(s) - {function _d$_(res) - {var - _em_=res[1], - prot_string=caml_call2(Optdef[8],_em_,interrupt), - match=caml_string_of_jsbytes(prot_string.toLowerCase()); - if - (caml_string_notequal(match,cst_file$0) - && - caml_string_notequal(match,cst_file$1)) - {var switch$0=0; - if - (caml_string_notequal(match,cst_http) - && - caml_string_notequal(match,cst_http$0)) - {var switch$1=0; - if - (caml_string_notequal(match,cst_https) - && - caml_string_notequal(match,cst_https$0)) - switch$1 = 1; - if(! switch$1){var ssl=1;switch$0 = 2}} - else - switch$0 = 1; - var switch$2=0; - switch(switch$0) - {case 1:var ssl=0;switch$2 = 1;break; - case 0:break; - default:switch$2 = 1} - if(switch$2) - {var - _en_=function(param){return caml_jsbytes_of_string(cst$7)}, - _eo_=res[6], - path_str= - urldecode_js_string_string(caml_call2(Optdef[8],_eo_,_en_)), - _ep_=function(param){return caml_jsbytes_of_string(cst$8)}, - _eq_=res[10], - _er_=urldecode_js_string_string(caml_call2(Optdef[8],_eq_,_ep_)), - _es_=function(param){return caml_jsbytes_of_string(cst$9)}, - _et_=res[8], - _eu_=decode_arguments_js_string(caml_call2(Optdef[8],_et_,_es_)), - _ev_=path_of_path_string(path_str), - _ew_=function(param){return caml_jsbytes_of_string(cst$10)}, - _ex_=res[4], - s=caml_string_of_jsbytes(caml_call2(Optdef[8],_ex_,_ew_)), - _ey_= - caml_string_notequal(s,cst$6)?caml_int_of_string(s):ssl?443:80, - _ez_=res[2], - url= - [0, - urldecode_js_string_string - (caml_call2(Optdef[8],_ez_,interrupt)), - _ey_, - _ev_, - path_str, - _eu_, - _er_], - _eA_=ssl?[1,url]:[0,url]; - return [0,_eA_]}} - throw Not_an_http_protocol} - function _ea_(param) - {function _ec_(res) - {var - _ef_=res[2], - path_str= - urldecode_js_string_string(caml_call2(Optdef[8],_ef_,interrupt)); - function _eg_(param){return caml_jsbytes_of_string(cst$11)} - var - _eh_=res[6], - _ei_=caml_string_of_jsbytes(caml_call2(Optdef[8],_eh_,_eg_)); - function _ej_(param){return caml_jsbytes_of_string(cst$12)} - var - _ek_=res[4], - _el_=decode_arguments_js_string(caml_call2(Optdef[8],_ek_,_ej_)); - return [0,[2,[0,path_of_path_string(path_str),path_str,_el_,_ei_]]]} - function _ed_(param){return 0} - var _ee_=t26.exec(s); - return caml_call3(Opt[7],_ee_,_ed_,_ec_)} - var _eb_=t24.exec(s); - return caml_call3(Opt[7],_eb_,_ea_,_d$_)} - function url_of_string(s) - {return url_of_js_string(caml_jsbytes_of_string(s))} - function string_of_url(param) - {switch(param[0]) - {case 0: - var - match=param[1], - frag=match[6], - args=match[5], - path=match[3], - port=match[2], - host=match[1]; - if(caml_string_notequal(frag,cst$13)) - var _dy_=urlencode(0,frag),_dz_=caml_call2(Stdlib[28],cst$14,_dy_); - else - var _dz_=cst$21; - if(args) - var - _dA_=encode_arguments(args), - _dB_=caml_call2(Stdlib[28],cst$15,_dA_); - else - var _dB_=cst$20; - var - _dC_=caml_call2(Stdlib[28],_dB_,_dz_), - _dD_=function(x){return urlencode(0,x)}, - _dE_=caml_call2(Stdlib_List[19],_dD_,path), - _dF_=caml_call2(String[6],cst$16,_dE_), - _dG_=caml_call2(Stdlib[28],_dF_,_dC_), - _dH_=caml_call2(Stdlib[28],cst$17,_dG_); - if(80 === port) - var _dI_=cst$18; - else - var - _dM_=caml_call1(Stdlib[33],port), - _dI_=caml_call2(Stdlib[28],cst$19,_dM_); - var - _dJ_=caml_call2(Stdlib[28],_dI_,_dH_), - _dK_=urlencode(0,host), - _dL_=caml_call2(Stdlib[28],_dK_,_dJ_); - return caml_call2(Stdlib[28],cst_http$1,_dL_); - case 1: - var - match$0=param[1], - frag$0=match$0[6], - args$0=match$0[5], - path$0=match$0[3], - port$0=match$0[2], - host$0=match$0[1]; - if(caml_string_notequal(frag$0,cst$22)) - var - _dN_=urlencode(0,frag$0), - _dO_=caml_call2(Stdlib[28],cst$23,_dN_); - else - var _dO_=cst$30; - if(args$0) - var - _dP_=encode_arguments(args$0), - _dQ_=caml_call2(Stdlib[28],cst$24,_dP_); - else - var _dQ_=cst$29; - var - _dR_=caml_call2(Stdlib[28],_dQ_,_dO_), - _dS_=function(x){return urlencode(0,x)}, - _dT_=caml_call2(Stdlib_List[19],_dS_,path$0), - _dU_=caml_call2(String[6],cst$25,_dT_), - _dV_=caml_call2(Stdlib[28],_dU_,_dR_), - _dW_=caml_call2(Stdlib[28],cst$26,_dV_); - if(443 === port$0) - var _dX_=cst$27; - else - var - _d1_=caml_call1(Stdlib[33],port$0), - _dX_=caml_call2(Stdlib[28],cst$28,_d1_); - var - _dY_=caml_call2(Stdlib[28],_dX_,_dW_), - _dZ_=urlencode(0,host$0), - _d0_=caml_call2(Stdlib[28],_dZ_,_dY_); - return caml_call2(Stdlib[28],cst_https$1,_d0_); - default: - var - match$1=param[1], - frag$1=match$1[4], - args$1=match$1[3], - path$1=match$1[1]; - if(caml_string_notequal(frag$1,cst$31)) - var - _d2_=urlencode(0,frag$1), - _d3_=caml_call2(Stdlib[28],cst$32,_d2_); - else - var _d3_=cst$36; - if(args$1) - var - _d4_=encode_arguments(args$1), - _d5_=caml_call2(Stdlib[28],cst$33,_d4_); - else - var _d5_=cst$35; - var - _d6_=caml_call2(Stdlib[28],_d5_,_d3_), - _d7_=function(x){return urlencode(0,x)}, - _d8_=caml_call2(Stdlib_List[19],_d7_,path$1), - _d9_=caml_call2(String[6],cst$34,_d8_), - _d__=caml_call2(Stdlib[28],_d9_,_d6_); - return caml_call2(Stdlib[28],cst_file$2,_d__)}} - var _s_=caml_call1(Optdef[2],_j_.location); - if(caml_call1(Optdef[5],_s_)) - var _t_=_j_.location; - else - var - t42=function(param,_dx_){return 0}, - t41=function(param,_dw_){return 0}, - t40=function(param){return 0}, - _t_= - {"href":"", - "protocol":"", - "host":"", - "hostname":"", - "port":"", - "pathname":"", - "search":"", - "hash":"", - "origin":t39, - "reload":caml_js_wrap_meth_callback(t40), - "replace":caml_js_wrap_meth_callback(t41), - "assign":caml_js_wrap_meth_callback(t42)}; - var - host=urldecode_js_string_string(_t_.hostname), - protocol=urldecode_js_string_string(_t_.protocol), - _u_=0, - port= - function(param) - {try - {var _du_=[0,caml_int_of_string(caml_string_of_jsbytes(_t_.port))]; - return _du_} - catch(_dv_) - {_dv_ = caml_wrap_exception(_dv_); - if(_dv_[1] === Stdlib[7])return 0; - throw _dv_}} - (_u_), - path_string=urldecode_js_string_string(_t_.pathname), - path=path_of_path_string(path_string), - t49=_t_.search; - if(t49.charAt(0) === "?") - var t52=_t_.search,_v_=t52.slice(1); - else - var _v_=_t_.search; - var arguments$0=decode_arguments_js_string(_v_); - function get_fragment(param) - {function _dr_(res){return caml_string_of_jsstring(res[1])} - function _ds_(param){return cst$37} - var t57=new t11("#(.*)"),t58=_t_.href,_dt_=t58.match(t57); - return caml_call3(Opt[7],_dt_,_ds_,_dr_)} - function set_fragment(s) - {var t59=caml_jsbytes_of_string(urlencode(0,s));return _t_.hash = t59} - function get$2(param){return url_of_js_string(_t_.href)} - function set$0(u) - {var t62=caml_jsbytes_of_string(string_of_url(u));return _t_.href = t62} - var - as_string=urldecode_js_string_string(_t_.href), - Js_of_ocaml_Url= - [0, - urldecode, - urlencode, - default_http_port, - default_https_port, - path_of_path_string, - encode_arguments, - decode_arguments, - url_of_string, - string_of_url, - [0, - host, - port, - protocol, - path_string, - path, - arguments$0, - get_fragment, - set_fragment, - get$2, - set$0, - as_string]]; - caml_register_global(1677,Js_of_ocaml_Url,"Js_of_ocaml__Url"); - var Js_of_ocaml_Lib_version=[0,s,git_version]; - caml_register_global - (1678,Js_of_ocaml_Lib_version,"Js_of_ocaml__Lib_version"); - function update_file(name,content) - {var oc=caml_call1(Stdlib[60],name); - caml_call2(Stdlib[66],oc,content); - return caml_call1(Stdlib[76],oc)} - function set_channel_flusher(out_channel,f) - {var - f$0= - caml_js_wrap_callback - (function(s){return caml_call1(f,caml_string_of_jsbytes(s))}); - return runtime.caml_ml_set_channel_output(out_channel,f$0)} - function set_channel_filler(in_channel,f) - {var f$0=caml_js_wrap_callback(f); - return runtime.caml_ml_set_channel_refill(in_channel,f$0)} - function mount(path,f) - {return runtime.caml_mount_autoload - (path, - caml_js_wrap_callback - (function(prefix,path){return caml_call2(f,prefix,path)}))} - function unmount(path){return runtime.caml_unmount(path)} - if(caml_call2(String[68],git_version,cst$38)) - var js_of_ocaml_version=s; - else - var - _cp_=caml_call2(Stdlib[28],cst$41,git_version), - js_of_ocaml_version=caml_call2(Stdlib[28],s,_cp_); - var - _w_=runtime.caml_create_file, - _x_=runtime.caml_read_file_content, - Js_of_ocaml_Sys_js= - [0, - set_channel_flusher, - set_channel_filler, - function(_dq_){return runtime.caml_list_mount_point(_dq_)}, - unmount, - mount, - _x_, - _w_, - update_file, - js_of_ocaml_version]; - caml_register_global(1679,Js_of_ocaml_Sys_js,"Js_of_ocaml__Sys_js"); - function empty_resize_observer_options(param){return {}} - var t2$0=Unsafe[1].ResizeObserver; - function is_supported$0(param){return caml_call1(Optdef[5],t2$0)} - function observe(node,f,box,param) - {var t1=caml_js_wrap_callback(f),t4=new t2$0(t1); - if(box) - {var box$0=box[1],t8={};t8.box = box$0;t4.observe(node,t8)} - else - t4.observe(node); - return t4} - var - Js_of_ocaml_ResizeObserver= - [0,empty_resize_observer_options,t2$0,is_supported$0,observe]; - caml_register_global - (1680,Js_of_ocaml_ResizeObserver,"Js_of_ocaml__ResizeObserver"); - var t4$1=Unsafe[1].PerformanceObserver; - function is_supported$1(param){return caml_call1(Optdef[5],t4$1)} - function observe$0(entry_types,f) - {var - _dp_= - caml_call1 - (caml_call1(Stdlib_List[19],caml_jsstring_of_string),entry_types), - t1=caml_js_from_array(caml_call1(Stdlib_Array[12],_dp_)), - t5={}; - t5.entryTypes = t1; - var t3=caml_js_wrap_callback(f),t6=new t4$1(t3); - t6.observe(t5); - return t6} - var Js_of_ocaml_PerformanceObserve=[0,t4$1,is_supported$1,observe$0]; - caml_register_global - (1681,Js_of_ocaml_PerformanceObserve,"Js_of_ocaml__PerformanceObserver"); - function empty_mutation_observer_init(param){return {}} - var t2$1=Unsafe[1].MutationObserver; - function is_supported$2(param){return caml_call1(Optdef[5],t2$1)} - function observe$1 - (node, - f, - child_list, - attributes, - character_data, - subtree, - attribute_old_value, - character_data_old_value, - attribute_filter, - param) - {function opt_iter(x,f) - {if(! x)return 0;var x$0=x[1];return caml_call1(f,x$0)} - var t1=caml_js_wrap_callback(f),t19=new t2$1(t1),t18={}; - opt_iter(child_list,function(t3){return t18.childList = t3}); - opt_iter(attributes,function(t5){return t18.attributes = t5}); - opt_iter(character_data,function(t7){return t18.characterData = t7}); - opt_iter(subtree,function(t9){return t18.subtree = t9}); - opt_iter - (attribute_old_value,function(t11){return t18.attributeOldValue = t11}); - opt_iter - (character_data_old_value, - function(t13){return t18.characterDataOldValue = t13}); - opt_iter - (attribute_filter, - function(l) - {var t15=caml_js_from_array(caml_call1(Stdlib_Array[12],l)); - return t18.attributeFilter = t15}); - t19.observe(node,t18); - return t19} - var - Js_of_ocaml_MutationObserver= - [0,empty_mutation_observer_init,t2$1,is_supported$2,observe$1]; - caml_register_global - (1682,Js_of_ocaml_MutationObserver,"Js_of_ocaml__MutationObserver"); - var t1=Unsafe[1].Object; - function create$0(param){return new t1()} - function add$0(t,k,v){return t[k.concat("_")] = v} - function remove(t,k){return delete t[k.concat("_")]} - function find(t,k){return t[k.concat("_")]} - function keys(t) - {var - t10=Unsafe[1].Object, - t11=t10.keys(t), - res=[0,0], - _dk_=t11.length - 1 | 0, - _dj_=0; - if(_dk_ >= 0) - {var i=_dj_; - for(;;) - {var - _dl_=function(param){return caml_call1(Stdlib[2],cst_Jstable_keys)}, - _dm_=t11[i], - t15=caml_call2(Optdef[8],_dm_,_dl_), - t14=t15.length - 1 | 0, - _dn_=res[1]; - res[1] = [0,t15.substring(0,t14),_dn_]; - var _do_=i + 1 | 0; - if(_dk_ !== i){var i=_do_;continue} - break}} - return caml_call1(Stdlib_List[9],res[1])} - var Js_of_ocaml_Jstable=[0,create$0,add$0,remove,find,keys]; - caml_register_global(1683,Js_of_ocaml_Jstable,"Js_of_ocaml__Jstable"); - var t11$1=Unsafe[1].JSON; - function reviver(this$0,key,value) - {if(typeof value === "string")return caml_string_of_jsbytes(value); - if - (value instanceof array_length - && - 4 - === - value.length - && - 255 - === - value[0]) - {var _dh_=value[3],_di_=value[2]; - return runtime.caml_int64_create_lo_mi_hi(value[1],_di_,_dh_)} - return value} - var t3$0=caml_js_wrap_meth_callback(reviver); - function unsafe_input(t2){return t11$1.parse(t2,t3$0)} - var mlInt64_constr=t5.constructor; - function output_reviver(key,value) - {var _dg_=Stdlib_Obj[13]; - return caml_call2(symbol$8,runtime.caml_obj_tag(value),_dg_) - ?caml_jsbytes_of_string(value) - :value instanceof mlInt64_constr - ?caml_js_from_array([0,255,value.lo,value.mi,value.hi]) - :value} - function output(t9) - {var t10=caml_js_wrap_callback(output_reviver); - return t11$1.stringify(t9,t10)} - var Js_of_ocaml_Json=[0,output,unsafe_input]; - caml_register_global(1685,Js_of_ocaml_Json,"Js_of_ocaml__Json"); - function string_of_name(param) - {var _df_=param; - if(74 <= _df_) - {if(111 <= _df_) - switch(_df_) - {case 111:return cst_palevioletred; - case 112:return cst_papayawhip; - case 113:return cst_peachpuff; - case 114:return cst_peru; - case 115:return cst_pink; - case 116:return cst_plum; - case 117:return cst_powderblue; - case 118:return cst_purple; - case 119:return cst_red; - case 120:return cst_rosybrown; - case 121:return cst_royalblue; - case 122:return cst_saddlebrown; - case 123:return cst_salmon; - case 124:return cst_sandybrown; - case 125:return cst_seagreen; - case 126:return cst_seashell; - case 127:return cst_sienna; - case 128:return cst_silver; - case 129:return cst_skyblue; - case 130:return cst_slateblue; - case 131:return cst_slategray; - case 132:return cst_slategrey; - case 133:return cst_snow; - case 134:return cst_springgreen; - case 135:return cst_steelblue; - case 136:return cst_tan; - case 137:return cst_teal; - case 138:return cst_thistle; - case 139:return cst_tomato; - case 140:return cst_turquoise; - case 141:return cst_violet; - case 142:return cst_wheat; - case 143:return cst_white; - case 144:return cst_whitesmoke; - case 145:return cst_yellow; - default:return cst_yellowgreen} - switch(_df_) - {case 74:return cst_lightpink; - case 75:return cst_lightsalmon; - case 76:return cst_lightseagreen; - case 77:return cst_lightskyblue; - case 78:return cst_lightslategray; - case 79:return cst_lightslategrey; - case 80:return cst_lightsteelblue; - case 81:return cst_lightyellow; - case 82:return cst_lime; - case 83:return cst_limegreen; - case 84:return cst_linen; - case 85:return cst_magenta; - case 86:return cst_maroon; - case 87:return cst_mediumaquamarine; - case 88:return cst_mediumblue; - case 89:return cst_mediumorchid; - case 90:return cst_mediumpurple; - case 91:return cst_mediumseagreen; - case 92:return cst_mediumslateblue; - case 93:return cst_mediumspringgreen; - case 94:return cst_mediumturquoise; - case 95:return cst_mediumvioletred; - case 96:return cst_midnightblue; - case 97:return cst_mintcream; - case 98:return cst_mistyrose; - case 99:return cst_moccasin; - case 100:return cst_navajowhite; - case 101:return cst_navy; - case 102:return cst_oldlace; - case 103:return cst_olive; - case 104:return cst_olivedrab; - case 105:return cst_orange; - case 106:return cst_orangered; - case 107:return cst_orchid; - case 108:return cst_palegoldenrod; - case 109:return cst_palegreen; - default:return cst_paleturquoise}} - if(37 <= _df_) - switch(_df_) - {case 37:return cst_darkslategrey; - case 38:return cst_darkturquoise; - case 39:return cst_darkviolet; - case 40:return cst_deeppink; - case 41:return cst_deepskyblue; - case 42:return cst_dimgray; - case 43:return cst_dimgrey; - case 44:return cst_dodgerblue; - case 45:return cst_firebrick; - case 46:return cst_floralwhite; - case 47:return cst_forestgreen; - case 48:return cst_fuchsia; - case 49:return cst_gainsboro; - case 50:return cst_ghostwhite; - case 51:return cst_gold; - case 52:return cst_goldenrod; - case 53:return cst_gray; - case 54:return cst_grey; - case 55:return cst_green; - case 56:return cst_greenyellow; - case 57:return cst_honeydew; - case 58:return cst_hotpink; - case 59:return cst_indianred; - case 60:return cst_indigo; - case 61:return cst_ivory; - case 62:return cst_khaki; - case 63:return cst_lavender; - case 64:return cst_lavenderblush; - case 65:return cst_lawngreen; - case 66:return cst_lemonchiffon; - case 67:return cst_lightblue; - case 68:return cst_lightcoral; - case 69:return cst_lightcyan; - case 70:return cst_lightgoldenrodyellow; - case 71:return cst_lightgray; - case 72:return cst_lightgreen; - default:return cst_lightgrey} - switch(_df_) - {case 0:return cst_aliceblue; - case 1:return cst_antiquewhite; - case 2:return cst_aqua; - case 3:return cst_aquamarine; - case 4:return cst_azure; - case 5:return cst_beige; - case 6:return cst_bisque; - case 7:return cst_black; - case 8:return cst_blanchedalmond; - case 9:return cst_blue; - case 10:return cst_blueviolet; - case 11:return cst_brown; - case 12:return cst_burlywood; - case 13:return cst_cadetblue; - case 14:return cst_chartreuse; - case 15:return cst_chocolate; - case 16:return cst_coral; - case 17:return cst_cornflowerblue; - case 18:return cst_cornsilk; - case 19:return cst_crimson; - case 20:return cst_cyan; - case 21:return cst_darkblue; - case 22:return cst_darkcyan; - case 23:return cst_darkgoldenrod; - case 24:return cst_darkgray; - case 25:return cst_darkgreen; - case 26:return cst_darkgrey; - case 27:return cst_darkkhaki; - case 28:return cst_darkmagenta; - case 29:return cst_darkolivegreen; - case 30:return cst_darkorange; - case 31:return cst_darkorchid; - case 32:return cst_darkred; - case 33:return cst_darksalmon; - case 34:return cst_darkseagreen; - case 35:return cst_darkslateblue; - default:return cst_darkslategray}} - function name_of_string(s) - {var switch$0=caml_string_compare(s,cst_lightgrey$0); - if(0 <= switch$0) - {if(0 >= switch$0)return 73; - var switch$1=caml_string_compare(s,cst_paleturquoise$0); - if(0 <= switch$1) - {if(0 >= switch$1)return 110; - var switch$2=caml_string_compare(s,cst_skyblue$0); - if(0 <= switch$2) - {if(0 >= switch$2)return 129; - var switch$3=caml_string_compare(s,cst_thistle$0); - if(0 <= switch$3) - {if(0 >= switch$3)return 138; - if(! caml_string_notequal(s,cst_tomato$0))return 139; - if(! caml_string_notequal(s,cst_turquoise$0))return 140; - if(! caml_string_notequal(s,cst_violet$0))return 141; - if(! caml_string_notequal(s,cst_wheat$0))return 142; - if(! caml_string_notequal(s,cst_white$0))return 143; - if(! caml_string_notequal(s,cst_whitesmoke$0))return 144; - if(! caml_string_notequal(s,cst_yellow$0))return 145; - if(! caml_string_notequal(s,cst_yellowgreen$0))return 146} - else - {if(! caml_string_notequal(s,cst_slateblue$0))return 130; - if(! caml_string_notequal(s,cst_slategray$0))return 131; - if(! caml_string_notequal(s,cst_slategrey$0))return 132; - if(! caml_string_notequal(s,cst_snow$0))return 133; - if(! caml_string_notequal(s,cst_springgreen$0))return 134; - if(! caml_string_notequal(s,cst_steelblue$0))return 135; - if(! caml_string_notequal(s,cst_tan$0))return 136; - if(! caml_string_notequal(s,cst_teal$0))return 137}} - else - {var switch$4=caml_string_compare(s,cst_rosybrown$0); - if(0 <= switch$4) - {if(0 >= switch$4)return 120; - if(! caml_string_notequal(s,cst_royalblue$0))return 121; - if(! caml_string_notequal(s,cst_saddlebrown$0))return 122; - if(! caml_string_notequal(s,cst_salmon$0))return 123; - if(! caml_string_notequal(s,cst_sandybrown$0))return 124; - if(! caml_string_notequal(s,cst_seagreen$0))return 125; - if(! caml_string_notequal(s,cst_seashell$0))return 126; - if(! caml_string_notequal(s,cst_sienna$0))return 127; - if(! caml_string_notequal(s,cst_silver$0))return 128} - else - {if(! caml_string_notequal(s,cst_palevioletred$0))return 111; - if(! caml_string_notequal(s,cst_papayawhip$0))return 112; - if(! caml_string_notequal(s,cst_peachpuff$0))return 113; - if(! caml_string_notequal(s,cst_peru$0))return 114; - if(! caml_string_notequal(s,cst_pink$0))return 115; - if(! caml_string_notequal(s,cst_plum$0))return 116; - if(! caml_string_notequal(s,cst_powderblue$0))return 117; - if(! caml_string_notequal(s,cst_purple$0))return 118; - if(! caml_string_notequal(s,cst_red$0))return 119}}} - else - {var switch$5=caml_string_compare(s,cst_mediumslateblue$0); - if(0 <= switch$5) - {if(0 >= switch$5)return 92; - var switch$6=caml_string_compare(s,cst_navy$0); - if(0 <= switch$6) - {if(0 >= switch$6)return 101; - if(! caml_string_notequal(s,cst_oldlace$0))return 102; - if(! caml_string_notequal(s,cst_olive$0))return 103; - if(! caml_string_notequal(s,cst_olivedrab$0))return 104; - if(! caml_string_notequal(s,cst_orange$0))return 105; - if(! caml_string_notequal(s,cst_orangered$0))return 106; - if(! caml_string_notequal(s,cst_orchid$0))return 107; - if(! caml_string_notequal(s,cst_palegoldenrod$0))return 108; - if(! caml_string_notequal(s,cst_palegreen$0))return 109} - else - {if(! caml_string_notequal(s,cst_mediumspringgreen$0))return 93; - if(! caml_string_notequal(s,cst_mediumturquoise$0))return 94; - if(! caml_string_notequal(s,cst_mediumvioletred$0))return 95; - if(! caml_string_notequal(s,cst_midnightblue$0))return 96; - if(! caml_string_notequal(s,cst_mintcream$0))return 97; - if(! caml_string_notequal(s,cst_mistyrose$0))return 98; - if(! caml_string_notequal(s,cst_moccasin$0))return 99; - if(! caml_string_notequal(s,cst_navajowhite$0))return 100}} - else - {var switch$7=caml_string_compare(s,cst_limegreen$0); - if(0 <= switch$7) - {if(0 >= switch$7)return 83; - if(! caml_string_notequal(s,cst_linen$0))return 84; - if(! caml_string_notequal(s,cst_magenta$0))return 85; - if(! caml_string_notequal(s,cst_maroon$0))return 86; - if(! caml_string_notequal(s,cst_mediumaquamarine$0))return 87; - if(! caml_string_notequal(s,cst_mediumblue$0))return 88; - if(! caml_string_notequal(s,cst_mediumorchid$0))return 89; - if(! caml_string_notequal(s,cst_mediumpurple$0))return 90; - if(! caml_string_notequal(s,cst_mediumseagreen$0))return 91} - else - {if(! caml_string_notequal(s,cst_lightpink$0))return 74; - if(! caml_string_notequal(s,cst_lightsalmon$0))return 75; - if(! caml_string_notequal(s,cst_lightseagreen$0))return 76; - if(! caml_string_notequal(s,cst_lightskyblue$0))return 77; - if(! caml_string_notequal(s,cst_lightslategray$0))return 78; - if(! caml_string_notequal(s,cst_lightslategrey$0))return 79; - if(! caml_string_notequal(s,cst_lightsteelblue$0))return 80; - if(! caml_string_notequal(s,cst_lightyellow$0))return 81; - if(! caml_string_notequal(s,cst_lime$0))return 82}}}} - else - {var switch$8=caml_string_compare(s,cst_darkslategray$0); - if(0 <= switch$8) - {if(0 >= switch$8)return 36; - var switch$9=caml_string_compare(s,cst_greenyellow$0); - if(0 <= switch$9) - {if(0 >= switch$9)return 56; - var switch$10=caml_string_compare(s,cst_lavenderblush$0); - if(0 <= switch$10) - {if(0 >= switch$10)return 64; - if(! caml_string_notequal(s,cst_lawngreen$0))return 65; - if(! caml_string_notequal(s,cst_lemonchiffon$0))return 66; - if(! caml_string_notequal(s,cst_lightblue$0))return 67; - if(! caml_string_notequal(s,cst_lightcoral$0))return 68; - if(! caml_string_notequal(s,cst_lightcyan$0))return 69; - if(! caml_string_notequal(s,cst_lightgoldenrodyellow$0)) - return 70; - if(! caml_string_notequal(s,cst_lightgray$0))return 71; - if(! caml_string_notequal(s,cst_lightgreen$0))return 72} - else - {if(! caml_string_notequal(s,cst_grey$0))return 54; - if(! caml_string_notequal(s,cst_honeydew$0))return 57; - if(! caml_string_notequal(s,cst_hotpink$0))return 58; - if(! caml_string_notequal(s,cst_indianred$0))return 59; - if(! caml_string_notequal(s,cst_indigo$0))return 60; - if(! caml_string_notequal(s,cst_ivory$0))return 61; - if(! caml_string_notequal(s,cst_khaki$0))return 62; - if(! caml_string_notequal(s,cst_lavender$0))return 63}} - else - {var switch$11=caml_string_compare(s,cst_floralwhite$0); - if(0 <= switch$11) - {if(0 >= switch$11)return 46; - if(! caml_string_notequal(s,cst_forestgreen$0))return 47; - if(! caml_string_notequal(s,cst_fuchsia$0))return 48; - if(! caml_string_notequal(s,cst_gainsboro$0))return 49; - if(! caml_string_notequal(s,cst_ghostwhite$0))return 50; - if(! caml_string_notequal(s,cst_gold$0))return 51; - if(! caml_string_notequal(s,cst_goldenrod$0))return 52; - if(! caml_string_notequal(s,cst_gray$0))return 53; - if(! caml_string_notequal(s,cst_green$0))return 55} - else - {if(! caml_string_notequal(s,cst_darkslategrey$0))return 37; - if(! caml_string_notequal(s,cst_darkturquoise$0))return 38; - if(! caml_string_notequal(s,cst_darkviolet$0))return 39; - if(! caml_string_notequal(s,cst_deeppink$0))return 40; - if(! caml_string_notequal(s,cst_deepskyblue$0))return 41; - if(! caml_string_notequal(s,cst_dimgray$0))return 42; - if(! caml_string_notequal(s,cst_dimgrey$0))return 43; - if(! caml_string_notequal(s,cst_dodgerblue$0))return 44; - if(! caml_string_notequal(s,cst_firebrick$0))return 45}}} - else - {var switch$12=caml_string_compare(s,cst_cornsilk$0); - if(0 <= switch$12) - {if(0 >= switch$12)return 18; - var switch$13=caml_string_compare(s,cst_darkkhaki$0); - if(0 <= switch$13) - {if(0 >= switch$13)return 27; - if(! caml_string_notequal(s,cst_darkmagenta$0))return 28; - if(! caml_string_notequal(s,cst_darkolivegreen$0))return 29; - if(! caml_string_notequal(s,cst_darkorange$0))return 30; - if(! caml_string_notequal(s,cst_darkorchid$0))return 31; - if(! caml_string_notequal(s,cst_darkred$0))return 32; - if(! caml_string_notequal(s,cst_darksalmon$0))return 33; - if(! caml_string_notequal(s,cst_darkseagreen$0))return 34; - if(! caml_string_notequal(s,cst_darkslateblue$0))return 35} - else - {if(! caml_string_notequal(s,cst_crimson$0))return 19; - if(! caml_string_notequal(s,cst_cyan$0))return 20; - if(! caml_string_notequal(s,cst_darkblue$0))return 21; - if(! caml_string_notequal(s,cst_darkcyan$0))return 22; - if(! caml_string_notequal(s,cst_darkgoldenrod$0))return 23; - if(! caml_string_notequal(s,cst_darkgray$0))return 24; - if(! caml_string_notequal(s,cst_darkgreen$0))return 25; - if(! caml_string_notequal(s,cst_darkgrey$0))return 26}} - else - {var switch$14=caml_string_compare(s,cst_blue$0); - if(0 <= switch$14) - {if(0 >= switch$14)return 9; - if(! caml_string_notequal(s,cst_blueviolet$0))return 10; - if(! caml_string_notequal(s,cst_brown$0))return 11; - if(! caml_string_notequal(s,cst_burlywood$0))return 12; - if(! caml_string_notequal(s,cst_cadetblue$0))return 13; - if(! caml_string_notequal(s,cst_chartreuse$0))return 14; - if(! caml_string_notequal(s,cst_chocolate$0))return 15; - if(! caml_string_notequal(s,cst_coral$0))return 16; - if(! caml_string_notequal(s,cst_cornflowerblue$0))return 17} - else - {if(! caml_string_notequal(s,cst_aliceblue$0))return 0; - if(! caml_string_notequal(s,cst_antiquewhite$0))return 1; - if(! caml_string_notequal(s,cst_aqua$0))return 2; - if(! caml_string_notequal(s,cst_aquamarine$0))return 3; - if(! caml_string_notequal(s,cst_azure$0))return 4; - if(! caml_string_notequal(s,cst_beige$0))return 5; - if(! caml_string_notequal(s,cst_bisque$0))return 6; - if(! caml_string_notequal(s,cst_black$0))return 7; - if(! caml_string_notequal(s,cst_blanchedalmond$0))return 8}}}} - var _de_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color_name); - throw [0,Stdlib[6],_de_]} - function rgb_of_name(param) - {var _dd_=param; - if(74 <= _dd_) - {if(111 <= _dd_) - switch(_dd_) - {case 111:return _br_; - case 112:return _bs_; - case 113:return _bt_; - case 114:return _bu_; - case 115:return _bv_; - case 116:return _bw_; - case 117:return _bx_; - case 118:return _by_; - case 119:return _bz_; - case 120:return _bA_; - case 121:return _bB_; - case 122:return _bC_; - case 123:return _bD_; - case 124:return _bE_; - case 125:return _bF_; - case 126:return _bG_; - case 127:return _bH_; - case 128:return _bI_; - case 129:return _bJ_; - case 130:return _bK_; - case 131:return _bL_; - case 132:return _bM_; - case 133:return _bN_; - case 134:return _bO_; - case 135:return _bP_; - case 136:return _bQ_; - case 137:return _bR_; - case 138:return _bS_; - case 139:return _bT_; - case 140:return _bU_; - case 141:return _bV_; - case 142:return _bW_; - case 143:return _bX_; - case 144:return _bY_; - case 145:return _bZ_; - default:return _b0_} - switch(_dd_) - {case 74:return _aS_; - case 75:return _aT_; - case 76:return _aU_; - case 77:return _aV_; - case 78:return _aW_; - case 79:return _aX_; - case 80:return _aY_; - case 81:return _aZ_; - case 82:return _a0_; - case 83:return _a1_; - case 84:return _a2_; - case 85:return _a3_; - case 86:return _a4_; - case 87:return _a5_; - case 88:return _a6_; - case 89:return _a7_; - case 90:return _a8_; - case 91:return _a9_; - case 92:return _a__; - case 93:return _a$_; - case 94:return _ba_; - case 95:return _bb_; - case 96:return _bc_; - case 97:return _bd_; - case 98:return _be_; - case 99:return _bf_; - case 100:return _bg_; - case 101:return _bh_; - case 102:return _bi_; - case 103:return _bj_; - case 104:return _bk_; - case 105:return _bl_; - case 106:return _bm_; - case 107:return _bn_; - case 108:return _bo_; - case 109:return _bp_; - default:return _bq_}} - if(37 <= _dd_) - switch(_dd_) - {case 37:return _ah_; - case 38:return _ai_; - case 39:return _aj_; - case 40:return _ak_; - case 41:return _al_; - case 42:return _am_; - case 43:return _an_; - case 44:return _ao_; - case 45:return _ap_; - case 46:return _aq_; - case 47:return _ar_; - case 48:return _as_; - case 49:return _at_; - case 50:return _au_; - case 51:return _av_; - case 52:return _aw_; - case 53:return _ax_; - case 54:return _ay_; - case 55:return _az_; - case 56:return _aA_; - case 57:return _aB_; - case 58:return _aC_; - case 59:return _aD_; - case 60:return _aE_; - case 61:return _aF_; - case 62:return _aG_; - case 63:return _aH_; - case 64:return _aI_; - case 65:return _aJ_; - case 66:return _aK_; - case 67:return _aL_; - case 68:return _aM_; - case 69:return _aN_; - case 70:return _aO_; - case 71:return _aP_; - case 72:return _aQ_; - default:return _aR_} - switch(_dd_) - {case 0:return _y_; - case 1:return _z_; - case 2:return _A_; - case 3:return _B_; - case 4:return _C_; - case 5:return _D_; - case 6:return _E_; - case 7:return _F_; - case 8:return _G_; - case 9:return _H_; - case 10:return _I_; - case 11:return _J_; - case 12:return _K_; - case 13:return _L_; - case 14:return _M_; - case 15:return _N_; - case 16:return _O_; - case 17:return _P_; - case 18:return _Q_; - case 19:return _R_; - case 20:return _S_; - case 21:return _T_; - case 22:return _U_; - case 23:return _V_; - case 24:return _W_; - case 25:return _X_; - case 26:return _Y_; - case 27:return _Z_; - case 28:return ___; - case 29:return _$_; - case 30:return _aa_; - case 31:return _ab_; - case 32:return _ac_; - case 33:return _ad_; - case 34:return _ae_; - case 35:return _af_; - default:return _ag_}} - function rgb(a,r,g,b) - {if(! a)return [1,[0,r,g,b]];var a$0=a[1];return [3,[0,r,g,b,a$0]]} - function hsl(a,h,s,l) - {if(! a)return [5,[0,h,s,l]];var a$0=a[1];return [6,[0,h,s,l,a$0]]} - function string_of_t(param) - {switch(param[0]) - {case 0:var n=param[1];return string_of_name(n); - case 1: - var match=param[1],b=match[3],g=match[2],r=match[1]; - return caml_call4(Stdlib_Printf[4],_b1_,r,g,b); - case 2: - var match$0=param[1],b$0=match$0[3],g$0=match$0[2],r$0=match$0[1]; - return caml_call4(Stdlib_Printf[4],_b2_,r$0,g$0,b$0); - case 3: - var - match$1=param[1], - a=match$1[4], - b$1=match$1[3], - g$1=match$1[2], - r$1=match$1[1]; - return caml_call5(Stdlib_Printf[4],_b3_,r$1,g$1,b$1,a); - case 4: - var - match$2=param[1], - a$0=match$2[4], - b$2=match$2[3], - g$2=match$2[2], - r$2=match$2[1]; - return caml_call5(Stdlib_Printf[4],_b4_,r$2,g$2,b$2,a$0); - case 5: - var match$3=param[1],l=match$3[3],s=match$3[2],h=match$3[1]; - return caml_call4(Stdlib_Printf[4],_b5_,h,s,l); - default: - var - match$4=param[1], - a$1=match$4[4], - l$0=match$4[3], - s$0=match$4[2], - h$0=match$4[1]; - return caml_call5(Stdlib_Printf[4],_b6_,h$0,s$0,l$0,a$1)}} - function hex_of_rgb(param) - {var blue=param[3],green=param[2],red=param[1]; - function in_range(i) - {var - _c$_=caml_call2(symbol$5,i,0), - _da_=_c$_ || caml_call2(symbol$9,i,255); - if(! _da_)return _da_; - var - _db_=caml_call1(Stdlib[33],i), - _dc_=caml_call2(Stdlib[28],_db_,cst_is_out_of_valid_range); - throw [0,Stdlib[6],_dc_]} - in_range(red); - in_range(green); - in_range(blue); - return caml_call4(Stdlib_Printf[4],_b7_,red,green,blue)} - function js_t_of_js_string(s) - {var - t0=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d), - t13=new t11(t0), - t2=caml_jsbytes_of_string(cst_rgb_s_d_s_d_s_d$0), - t17=new t11(t2), - t4=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d), - t15=new t11(t4), - t6=caml_jsbytes_of_string(cst_rgba_s_d_s_d_s_d_d_d$0), - t19=new t11(t6), - t8=caml_jsbytes_of_string(cst_hsl_s_d_s_d_s_d), - t21=new t11(t8), - t10=caml_jsbytes_of_string(cst_hsla_s_d_s_d_s_d_d_d), - t23=new t11(t10); - if - (! - (t13.test(s) | 0) - && - ! - (t15.test(s) | 0) - && - ! - (t17.test(s) | 0) - && - ! - (t19.test(s) | 0) - && - ! - (t21.test(s) | 0) - && - ! - (t23.test(s) | 0)) - {var _c8_=caml_string_of_jsstring(s); - if(caml_call2(Stdlib_List[36],_c8_,_b8_))return s; - var - _c9_=caml_string_of_jsstring(s), - _c__=caml_call2(Stdlib[28],_c9_,cst_is_not_a_valid_color); - throw [0,Stdlib[6],_c__]} - return s} - function js(c) - {if(0 !== c[0])return caml_jsstring_of_string(string_of_t(c)); - var n=c[1]; - return caml_jsstring_of_string(string_of_name(n))} - function ml(c) - {var s=caml_string_of_jsstring(c); - try - {var _cV_=[0,name_of_string(s)];return _cV_} - catch(_cW_) - {_cW_ = caml_wrap_exception(_cW_); - if(_cW_[1] !== Stdlib[6])throw _cW_; - var - fail= - function(param) - {var _c7_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_color$0); - throw [0,Stdlib[6],_c7_]}, - re_rgb=regexp(cst_rgba_d_d_d_d_d), - re_rgb_pct=regexp(cst_rgba_d_d_d_d_d$0), - re_hsl=regexp(cst_hsla_d_d_d_d_d), - i_of_s_o= - function(param) - {if(! param)return fail(0); - var i=param[1]; - try - {var _c5_=caml_int_of_string(i);return _c5_} - catch(_c6_) - {_c6_ = caml_wrap_exception(_c6_); - if(_c6_[1] === Stdlib[6]) - var s=_c6_[2]; - else - {if(_c6_[1] !== Stdlib[7])throw _c6_;var s=_c6_[2]} - var - _c2_=caml_call2(Stdlib[28],cst$39,s), - _c3_=caml_call2(Stdlib[28],i,_c2_), - _c4_=caml_call2(Stdlib[28],cst_color_conversion_error,_c3_); - throw [0,Stdlib[6],_c4_]}}, - f_of_s= - function(f) - {try - {var _c0_=caml_float_of_string(f);return _c0_} - catch(_c1_) - {_c1_ = caml_wrap_exception(_c1_); - if(_c1_[1] === Stdlib[6]) - var s=_c1_[2]; - else - {if(_c1_[1] !== Stdlib[7])throw _c1_;var s=_c1_[2]} - var - _cX_=caml_call2(Stdlib[28],cst$40,s), - _cY_=caml_call2(Stdlib[28],f,_cX_), - _cZ_=caml_call2(Stdlib[28],cst_color_conversion_error$0,_cY_); - throw [0,Stdlib[6],_cZ_]}}, - match=string_match(re_rgb,s,0); - if(match) - {var - r=match[1], - red=matched_group(r,2), - green=matched_group(r,3), - blue=matched_group(r,4), - alpha=matched_group(r,5), - match$0=matched_group(r,1); - if(match$0) - {var _cD_=match$0[1]; - if(! caml_string_notequal(_cD_,cst_rgb)) - {if(alpha)return fail(0); - var _cH_=i_of_s_o(blue),_cI_=i_of_s_o(green); - return [1,[0,i_of_s_o(red),_cI_,_cH_]]} - if(! caml_string_notequal(_cD_,cst_rgba)) - {if(! alpha)return fail(0); - var - a=alpha[1], - _cE_=f_of_s(a), - _cF_=i_of_s_o(blue), - _cG_=i_of_s_o(green); - return [3,[0,i_of_s_o(red),_cG_,_cF_,_cE_]]}} - return fail(0)} - var match$1=string_match(re_rgb_pct,s,0); - if(match$1) - {var - r$0=match$1[1], - red$0=matched_group(r$0,2), - green$0=matched_group(r$0,3), - blue$0=matched_group(r$0,4), - alpha$0=matched_group(r$0,5), - match$2=matched_group(r$0,1); - if(match$2) - {var _cJ_=match$2[1]; - if(! caml_string_notequal(_cJ_,cst_rgb$0)) - {if(alpha$0)return fail(0); - var _cN_=i_of_s_o(blue$0),_cO_=i_of_s_o(green$0); - return [2,[0,i_of_s_o(red$0),_cO_,_cN_]]} - if(! caml_string_notequal(_cJ_,cst_rgba$0)) - {if(! alpha$0)return fail(0); - var - a$0=alpha$0[1], - _cK_=f_of_s(a$0), - _cL_=i_of_s_o(blue$0), - _cM_=i_of_s_o(green$0); - return [4,[0,i_of_s_o(red$0),_cM_,_cL_,_cK_]]}} - return fail(0)} - var match$3=string_match(re_hsl,s,0); - if(! match$3)return fail(0); - var - r$1=match$3[1], - red$1=matched_group(r$1,2), - green$1=matched_group(r$1,3), - blue$1=matched_group(r$1,4), - alpha$1=matched_group(r$1,5), - match$4=matched_group(r$1,1); - if(match$4) - {var _cP_=match$4[1]; - if(! caml_string_notequal(_cP_,cst_hsl)) - {if(alpha$1)return fail(0); - var _cT_=i_of_s_o(blue$1),_cU_=i_of_s_o(green$1); - return [5,[0,i_of_s_o(red$1),_cU_,_cT_]]} - if(! caml_string_notequal(_cP_,cst_hsla)) - {if(! alpha$1)return fail(0); - var - a$1=alpha$1[1], - _cQ_=f_of_s(a$1), - _cR_=i_of_s_o(blue$1), - _cS_=i_of_s_o(green$1); - return [6,[0,i_of_s_o(red$1),_cS_,_cR_,_cQ_]]}} - return fail(0)}} - function string_of_t$0(param) - {if(typeof param === "number")return cst_0; - switch(param[0]) - {case 0: - var f=param[1];return caml_call3(Stdlib_Printf[4],_b9_,f,cst_em$0); - case 1: - var f$0=param[1];return caml_call3(Stdlib_Printf[4],_b__,f$0,cst_ex); - case 2: - var f$1=param[1];return caml_call3(Stdlib_Printf[4],_b$_,f$1,cst_px); - case 3: - var f$2=param[1];return caml_call3(Stdlib_Printf[4],_ca_,f$2,cst_gd); - case 4: - var f$3=param[1]; - return caml_call3(Stdlib_Printf[4],_cb_,f$3,cst_rem); - case 5: - var f$4=param[1];return caml_call3(Stdlib_Printf[4],_cc_,f$4,cst_vw); - case 6: - var f$5=param[1];return caml_call3(Stdlib_Printf[4],_cd_,f$5,cst_vh); - case 7: - var f$6=param[1];return caml_call3(Stdlib_Printf[4],_ce_,f$6,cst_vm); - case 8: - var f$7=param[1];return caml_call3(Stdlib_Printf[4],_cf_,f$7,cst_ch); - case 9: - var f$8=param[1];return caml_call3(Stdlib_Printf[4],_cg_,f$8,cst_mm); - case 10: - var f$9=param[1];return caml_call3(Stdlib_Printf[4],_ch_,f$9,cst_cm); - case 11: - var f$10=param[1]; - return caml_call3(Stdlib_Printf[4],_ci_,f$10,cst_in); - case 12: - var f$11=param[1]; - return caml_call3(Stdlib_Printf[4],_cj_,f$11,cst_pt); - default: - var f$12=param[1]; - return caml_call3(Stdlib_Printf[4],_ck_,f$12,cst_pc)}} - function js$0(t){return caml_jsstring_of_string(string_of_t$0(t))} - function ml$0(t) - {var s=caml_string_of_jsstring(t); - if(caml_call2(String[68],s,cst_0$0))return 0; - function fail(param) - {var _cC_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length); - throw [0,Stdlib[6],_cC_]} - var re=regexp(cst_d_d_s_S),match=string_match(re,s,0); - if(! match)return fail(0); - var r=match[1],match$0=matched_group(r,1); - if(match$0) - {var f=match$0[1]; - try - {var _cA_=caml_float_of_string(f)} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Stdlib[6])throw exn; - var - s$0=exn[2], - _cz_=caml_call2(Stdlib[28],cst_length_conversion_error,s$0); - throw [0,Stdlib[6],_cz_]} - var f$0=_cA_} - else - var f$0=fail(0); - var match$1=matched_group(r,2); - if(! match$1)return fail(0); - var _cB_=match$1[1],switch$0=caml_string_compare(_cB_,cst_pc$0); - if(0 <= switch$0) - {if(0 >= switch$0)return [13,f$0]; - if(! caml_string_notequal(_cB_,cst_pt$0))return [12,f$0]; - if(! caml_string_notequal(_cB_,cst_px$0))return [2,f$0]; - if(! caml_string_notequal(_cB_,cst_rem$0))return [4,f$0]; - if(! caml_string_notequal(_cB_,cst_vh$0))return [6,f$0]; - if(! caml_string_notequal(_cB_,cst_vm$0))return [7,f$0]; - if(! caml_string_notequal(_cB_,cst_vw$0))return [5,f$0]} - else - {if(! caml_string_notequal(_cB_,cst_ch$0))return [8,f$0]; - if(! caml_string_notequal(_cB_,cst_cm$0))return [10,f$0]; - if(! caml_string_notequal(_cB_,cst_em$1))return [0,f$0]; - if(! caml_string_notequal(_cB_,cst_ex$0))return [1,f$0]; - if(! caml_string_notequal(_cB_,cst_gd$0))return [3,f$0]; - if(! caml_string_notequal(_cB_,cst_in$0))return [11,f$0]; - if(! caml_string_notequal(_cB_,cst_mm$0))return [9,f$0]} - return fail(0)} - var Length=[0,string_of_t$0,js$0,ml$0]; - function string_of_t$1(param) - {switch(param[0]) - {case 0: - var f=param[1];return caml_call3(Stdlib_Printf[4],_cl_,f,cst_deg); - case 1: - var f$0=param[1]; - return caml_call3(Stdlib_Printf[4],_cm_,f$0,cst_grad); - case 2: - var f$1=param[1]; - return caml_call3(Stdlib_Printf[4],_cn_,f$1,cst_rad); - default: - var f$2=param[1]; - return caml_call3(Stdlib_Printf[4],_co_,f$2,cst_turns)}} - function js$1(t){return caml_jsstring_of_string(string_of_t$1(t))} - function ml$1(j) - {var s=caml_string_of_jsstring(j),re=regexp(cst_d_d_deg_grad_rad_turns); - function fail(param) - {var _cy_=caml_call2(Stdlib[28],s,cst_is_not_a_valid_length$0); - throw [0,Stdlib[6],_cy_]} - var match=string_match(re,s,0); - if(! match)return fail(0); - var r=match[1],match$0=matched_group(r,1); - if(match$0) - {var f=match$0[1]; - try - {var _cw_=caml_float_of_string(f)} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] !== Stdlib[6])throw exn; - var - s$0=exn[2], - _cv_=caml_call2(Stdlib[28],cst_length_conversion_error$0,s$0); - throw [0,Stdlib[6],_cv_]} - var f$0=_cw_} - else - var f$0=fail(0); - var match$1=matched_group(r,2); - if(match$1) - {var _cx_=match$1[1]; - if(! caml_string_notequal(_cx_,cst_deg$0))return [0,f$0]; - if(! caml_string_notequal(_cx_,cst_grad$0))return [1,f$0]; - if(! caml_string_notequal(_cx_,cst_rad$0))return [2,f$0]; - if(! caml_string_notequal(_cx_,cst_turns$0))return [3,f$0]} - return fail(0)} - var - Angle=[0,string_of_t$1,js$1,ml$1], - Js_of_ocaml_CSS= - [0, - [0, - string_of_name, - rgb_of_name, - hex_of_rgb, - rgb, - hsl, - string_of_t, - js, - ml, - js_t_of_js_string], - Length, - Angle]; - caml_register_global(1686,Js_of_ocaml_CSS,"Js_of_ocaml__CSS"); - function listen(opt,target,typ,cb) - {if(opt)var sth=opt[1],capture=sth;else var capture=0; - var _cu_=! ! capture; - return addEventListener - (target, - typ, - full_handler(function(n,e){return ! ! caml_call2(cb,n,e)}), - _cu_)} - var Js_of_ocaml_Dom_events=[0,_n_,listen,removeEventListener]; - caml_register_global - (1687,Js_of_ocaml_Dom_events,"Js_of_ocaml__Dom_events"); - var - t0="http://www.w3.org/2000/svg", - SVGError=[248,cst_Js_of_ocaml_Dom_svg_SVGErr,caml_fresh_oo_id(0)]; - function createElement$0(t2,name) - {var t1=caml_jsstring_of_string(name); - return t2.createElementNS("http://www.w3.org/2000/svg",t1)} - function unsafeCreateElement$0(doc,name){return createElement$0(doc,name)} - function createA$0(doc){return unsafeCreateElement$0(doc,cst_a$2)} - function createAltGlyph(doc) - {return unsafeCreateElement$0(doc,cst_altglyph)} - function createAltGlyphDef(doc) - {return unsafeCreateElement$0(doc,cst_altglyphdef)} - function createAltGlyphItem(doc) - {return unsafeCreateElement$0(doc,cst_altglyphitem)} - function createAnimate(doc){return unsafeCreateElement$0(doc,cst_animate)} - function createAnimateColor(doc) - {return unsafeCreateElement$0(doc,cst_animatecolor)} - function createAnimateMotion(doc) - {return unsafeCreateElement$0(doc,cst_animatemotion)} - function createAnimateTransform(doc) - {return unsafeCreateElement$0(doc,cst_animatetransform)} - function createCircle(doc){return unsafeCreateElement$0(doc,cst_circle)} - function createClipPath(doc) - {return unsafeCreateElement$0(doc,cst_clippath)} - function createCursor(doc){return unsafeCreateElement$0(doc,cst_cursor)} - function createDefs(doc){return unsafeCreateElement$0(doc,cst_defs)} - function createDesc(doc){return unsafeCreateElement$0(doc,cst_desc)} - function createEllipse(doc){return unsafeCreateElement$0(doc,cst_ellipse)} - function createFilter(doc){return unsafeCreateElement$0(doc,cst_filter)} - function createFont(doc){return unsafeCreateElement$0(doc,cst_font)} - function createFontFace(doc) - {return unsafeCreateElement$0(doc,cst_font_face)} - function createFontFaceFormat(doc) - {return unsafeCreateElement$0(doc,cst_font_face_format)} - function createFontFaceName(doc) - {return unsafeCreateElement$0(doc,cst_font_face_name)} - function createFontFaceSrc(doc) - {return unsafeCreateElement$0(doc,cst_font_face_src)} - function createFontFaceUri(doc) - {return unsafeCreateElement$0(doc,cst_font_face_uri)} - function createForeignObject(doc) - {return unsafeCreateElement$0(doc,cst_foreignObject)} - function createG(doc){return unsafeCreateElement$0(doc,cst_g$0)} - function createGlyph(doc){return unsafeCreateElement$0(doc,cst_glyph)} - function createGlyphRef(doc) - {return unsafeCreateElement$0(doc,cst_glyphref)} - function createhkern(doc){return unsafeCreateElement$0(doc,cst_hkern)} - function createImage(doc){return unsafeCreateElement$0(doc,cst_image)} - function createLineElement(doc) - {return unsafeCreateElement$0(doc,cst_line)} - function createLinearElement(doc) - {return unsafeCreateElement$0(doc,cst_lineargradient)} - function createMask(doc){return unsafeCreateElement$0(doc,cst_mask)} - function createMetaData(doc) - {return unsafeCreateElement$0(doc,cst_metadata)} - function createMissingGlyph(doc) - {return unsafeCreateElement$0(doc,cst_missing_glyph)} - function createMPath(doc){return unsafeCreateElement$0(doc,cst_mpath)} - function createPath(doc){return unsafeCreateElement$0(doc,cst_path)} - function createPattern(doc){return unsafeCreateElement$0(doc,cst_pattern)} - function createPolygon(doc){return unsafeCreateElement$0(doc,cst_polygon)} - function createPolyline(doc) - {return unsafeCreateElement$0(doc,cst_polyline)} - function createRadialgradient(doc) - {return unsafeCreateElement$0(doc,cst_radialgradient)} - function createRect(doc){return unsafeCreateElement$0(doc,cst_rect)} - function createScript$0(doc) - {return unsafeCreateElement$0(doc,cst_script$2)} - function createSet(doc){return unsafeCreateElement$0(doc,cst_set)} - function createStop(doc){return unsafeCreateElement$0(doc,cst_stop)} - function createStyle$0(doc){return unsafeCreateElement$0(doc,cst_style$2)} - function createSvg(doc){return unsafeCreateElement$0(doc,cst_svg)} - function createSwitch(doc){return unsafeCreateElement$0(doc,cst_switch)} - function createSymbol(doc){return unsafeCreateElement$0(doc,cst_symbol)} - function createTextElement(doc) - {return unsafeCreateElement$0(doc,cst_text$0)} - function createTextpath(doc) - {return unsafeCreateElement$0(doc,cst_textpath)} - function createTitle$0(doc){return unsafeCreateElement$0(doc,cst_title$2)} - function createTref(doc){return unsafeCreateElement$0(doc,cst_tref)} - function createTspan(doc){return unsafeCreateElement$0(doc,cst_tspan)} - function createUse(doc){return unsafeCreateElement$0(doc,cst_use)} - function createView(doc){return unsafeCreateElement$0(doc,cst_view)} - function createvkern(doc){return unsafeCreateElement$0(doc,cst_vkern)} - var svg_element=Unsafe[1].SVGElement,document$0=Unsafe[1].document; - function getElementById$0(id) - {function _cr_(e){if(e instanceof svg_element)return e;throw Stdlib[8]} - function _cs_(param){throw Stdlib[8]} - var - t6=caml_jsstring_of_string(id), - t7=Unsafe[1].document, - _ct_=t7.getElementById(t6); - return caml_call3(Opt[7],_ct_,_cs_,_cr_)} - function element$2(e){return e instanceof svg_element?e:no_handler} - function unsafeCoerce$0(e,tag) - {var t9=e.tagName,_cq_=caml_jsstring_of_string(tag); - return t9.toLowerCase() === _cq_?e:no_handler} - function a$0(e){return unsafeCoerce$0(e,cst_a$3)} - function altGlyph(e){return unsafeCoerce$0(e,cst_altglyph$0)} - function altGlyphDef(e){return unsafeCoerce$0(e,cst_altglyphdef$0)} - function altGlyphItem(e){return unsafeCoerce$0(e,cst_altglyphitem$0)} - function animate(e){return unsafeCoerce$0(e,cst_animate$0)} - function animateColor(e){return unsafeCoerce$0(e,cst_animatecolor$0)} - function animateMotion(e){return unsafeCoerce$0(e,cst_animatemotion$0)} - function animateTransform(e) - {return unsafeCoerce$0(e,cst_animatetransform$0)} - function circle(e){return unsafeCoerce$0(e,cst_circle$0)} - function clipPath(e){return unsafeCoerce$0(e,cst_clippath$0)} - function cursor(e){return unsafeCoerce$0(e,cst_cursor$0)} - function defs(e){return unsafeCoerce$0(e,cst_defs$0)} - function desc(e){return unsafeCoerce$0(e,cst_desc$0)} - function ellipse(e){return unsafeCoerce$0(e,cst_ellipse$0)} - function filter(e){return unsafeCoerce$0(e,cst_filter$0)} - function font(e){return unsafeCoerce$0(e,cst_font$0)} - function fontFace(e){return unsafeCoerce$0(e,cst_font_face$0)} - function fontFaceFormat(e) - {return unsafeCoerce$0(e,cst_font_face_format$0)} - function fontFaceName(e){return unsafeCoerce$0(e,cst_font_face_name$0)} - function fontFaceSrc(e){return unsafeCoerce$0(e,cst_font_face_src$0)} - function fontFaceUri(e){return unsafeCoerce$0(e,cst_font_face_uri$0)} - function foreignObject(e){return unsafeCoerce$0(e,cst_foreignobject)} - function g(e){return unsafeCoerce$0(e,cst_g$1)} - function glyph(e){return unsafeCoerce$0(e,cst_glyph$0)} - function glyphRef(e){return unsafeCoerce$0(e,cst_glyphref$0)} - function hkern(e){return unsafeCoerce$0(e,cst_hkern$0)} - function image(e){return unsafeCoerce$0(e,cst_image$0)} - function lineElement(e){return unsafeCoerce$0(e,cst_line$0)} - function linearElement(e){return unsafeCoerce$0(e,cst_lineargradient$0)} - function mask(e){return unsafeCoerce$0(e,cst_mask$0)} - function metaData(e){return unsafeCoerce$0(e,cst_metadata$0)} - function missingGlyph(e){return unsafeCoerce$0(e,cst_missing_glyph$0)} - function mPath(e){return unsafeCoerce$0(e,cst_mpath$0)} - function path$0(e){return unsafeCoerce$0(e,cst_path$0)} - function pattern(e){return unsafeCoerce$0(e,cst_pattern$0)} - function polygon(e){return unsafeCoerce$0(e,cst_polygon$0)} - function polyline(e){return unsafeCoerce$0(e,cst_polyline$0)} - function radialgradient(e){return unsafeCoerce$0(e,cst_radialgradient$0)} - function rect(e){return unsafeCoerce$0(e,cst_rect$0)} - function script$0(e){return unsafeCoerce$0(e,cst_script$3)} - function set$1(e){return unsafeCoerce$0(e,cst_set$0)} - function stop(e){return unsafeCoerce$0(e,cst_stop$0)} - function style$0(e){return unsafeCoerce$0(e,cst_style$3)} - function svg(e){return unsafeCoerce$0(e,cst_svg$0)} - function switch$0(e){return unsafeCoerce$0(e,cst_switch$0)} - function symbol$12(e){return unsafeCoerce$0(e,cst_symbol$0)} - function textElement(e){return unsafeCoerce$0(e,cst_text$1)} - function textpath(e){return unsafeCoerce$0(e,cst_textpath$0)} - function title$0(e){return unsafeCoerce$0(e,cst_title$3)} - function tref(e){return unsafeCoerce$0(e,cst_tref$0)} - function tspan(e){return unsafeCoerce$0(e,cst_tspan$0)} - function use(e){return unsafeCoerce$0(e,cst_use$0)} - function view(e){return unsafeCoerce$0(e,cst_view$0)} - function vkern(e){return unsafeCoerce$0(e,cst_vkern$0)} - var - Js_of_ocaml_Dom_svg= - [0, - t0, - SVGError, - createElement$0, - createA$0, - createAltGlyph, - createAltGlyphDef, - createAltGlyphItem, - createAnimate, - createAnimateColor, - createAnimateMotion, - createAnimateTransform, - createCircle, - createClipPath, - createCursor, - createDefs, - createDesc, - createEllipse, - createFilter, - createFont, - createFontFace, - createFontFaceFormat, - createFontFaceName, - createFontFaceSrc, - createFontFaceUri, - createForeignObject, - createG, - createGlyph, - createGlyphRef, - createhkern, - createImage, - createLineElement, - createLinearElement, - createMask, - createMetaData, - createMissingGlyph, - createMPath, - createPath, - createPattern, - createPolygon, - createPolyline, - createRadialgradient, - createRect, - createScript$0, - createSet, - createStop, - createStyle$0, - createSvg, - createSwitch, - createSymbol, - createTextElement, - createTextpath, - createTitle$0, - createTref, - createTspan, - createUse, - createView, - createvkern, - svg_element, - document$0, - getElementById$0, - [0, - element$2, - a$0, - altGlyph, - altGlyphDef, - altGlyphItem, - animate, - animateColor, - animateMotion, - animateTransform, - circle, - clipPath, - cursor, - defs, - desc, - ellipse, - filter, - font, - fontFace, - fontFaceFormat, - fontFaceName, - fontFaceSrc, - fontFaceUri, - foreignObject, - g, - glyph, - glyphRef, - hkern, - image, - lineElement, - linearElement, - mask, - metaData, - missingGlyph, - mPath, - path$0, - pattern, - polygon, - polyline, - radialgradient, - rect, - script$0, - set$1, - stop, - style$0, - svg, - switch$0, - symbol$12, - textElement, - textpath, - title$0, - tref, - tspan, - use, - view, - vkern]]; - caml_register_global(1688,Js_of_ocaml_Dom_svg,"Js_of_ocaml__Dom_svg"); - function withCredentials(b) - {var t1={},t0=! ! b;t1.withCredentials = t0;return t1} - var - eventSource=Unsafe[1].EventSource, - eventSource_options=Unsafe[1].EventSource, - Js_of_ocaml_EventSource= - [0,withCredentials,eventSource,eventSource_options,addEventListener]; - caml_register_global - (1689,Js_of_ocaml_EventSource,"Js_of_ocaml__EventSource"); - var - console=runtime.caml_js_get_console(0), - Js_of_ocaml_Firebug=[0,console]; - caml_register_global(1690,Js_of_ocaml_Firebug,"Js_of_ocaml__Firebug"); - function empty_position_options(param){return {}} - var - t1$0=Unsafe[1].navigator, - geolocation=caml_call1(Optdef[5],t1$0)?t1$0.geolocation:t1$0; - function is_supported$3(param){return caml_call1(Optdef[5],geolocation)} - var - Js_of_ocaml_Geolocation= - [0,empty_position_options,geolocation,is_supported$3]; - caml_register_global - (1691,Js_of_ocaml_Geolocation,"Js_of_ocaml__Geolocation"); - function empty_intersection_observer_op(param){return {}} - var intersectionObserver_unsafe=Unsafe[1].IntersectionObserver; - function is_supported$4(param) - {return caml_call1(Optdef[5],intersectionObserver_unsafe)} - var - Js_of_ocaml_IntersectionObserv= - [0, - empty_intersection_observer_op, - is_supported$4, - intersectionObserver_unsafe]; - caml_register_global - (1692,Js_of_ocaml_IntersectionObserv,"Js_of_ocaml__IntersectionObserver"); - function object_options(param){return {"localeMatcher":"best fit"}} - function options(param) - {return {"localeMatcher":"best fit", - "usage":"sort", - "sensitivity":"variant", - "ignorePunctuation":t4, - "numeric":t4, - "caseFirst":"false"}} - var Collator=[0,object_options,options]; - function options$0(param) - {return {"dateStyle":t39, - "timeStyle":t39, - "calendar":t39, - "dayPeriod":t39, - "numberingSystem":t39, - "localeMatcher":"best fit", - "timeZone":t39, - "hour12":t39, - "hourCycle":t39, - "formatMatcher":"best fit", - "weekday":t39, - "era":t39, - "year":t39, - "month":t39, - "day":t39, - "hour":t39, - "minute":t39, - "second":t39, - "fractionalSecondDigits":t39, - "timeZoneName":t39}} - var DateTimeFormat=[0,object_options,options$0]; - function options$1(param) - {return {"compactDisplay":t39, - "currency":t39, - "currencyDisplay":t39, - "currencySign":t39, - "localeMatcher":"best fit", - "notation":t39, - "numberingSystem":t39, - "signDisplay":t39, - "style":"decimal", - "unit":t39, - "unitDisplay":t39, - "useGrouping":t38, - "roundingMode":t39, - "roundingPriority":t39, - "roundingIncrement":t39, - "trailingZeroDisplay":t39, - "minimumIntegerDigits":t39, - "minimumFractionDigits":t39, - "maximumFractionDigits":t39, - "minimumSignificantDigits":t39, - "maximumSignificantDigits":t39}} - var NumberFormat=[0,object_options,options$1]; - function options$2(param) - {return {"localeMatcher":"best fit","type":"cardinal"}} - var - PluralRules=[0,object_options,options$2], - intl=Unsafe[1].Intl, - t52$0=Unsafe[1].Intl, - collator_constr=t52$0.Collator, - t54=Unsafe[1].Intl, - dateTimeFormat_constr=t54.DateTimeFormat, - t56=Unsafe[1].Intl, - numberFormat_constr=t56.NumberFormat, - t58=Unsafe[1].Intl, - pluralRules_constr=t58.PluralRules; - function is_supported$5(param){return caml_call1(Optdef[5],intl)} - var - Js_of_ocaml_Intl= - [0, - Collator, - DateTimeFormat, - NumberFormat, - PluralRules, - intl, - collator_constr, - dateTimeFormat_constr, - numberFormat_constr, - pluralRules_constr, - is_supported$5]; - caml_register_global(1693,Js_of_ocaml_Intl,"Js_of_ocaml__Intl"); - var Js_of_ocaml$0=[0]; - caml_register_global(1694,Js_of_ocaml$0,"Js_of_ocaml"); - return} + runtime.caml_register_global(43, Js_of_ocaml_Js, "Js_of_ocaml__Js"); + return; + } (globalThis)); -//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/runtime_jsoo.cma.js" +//# 1 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "../../runtimes/jsoo/.runtime_jsoo.objs/jsoo/default/runtime_jsoo.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_int_of_string=runtime.caml_int_of_string, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_jsstring_of_string=runtime.caml_jsstring_of_string, - caml_register_global=runtime.caml_register_global, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call5(f,a0,a1,a2,a3,a4) - {return f.length == 5 - ?f(a0,a1,a2,a3,a4) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4])} - function caml_call7(f,a0,a1,a2,a3,a4,a5,a6) - {return f.length == 7 - ?f(a0,a1,a2,a3,a4,a5,a6) - :runtime.caml_call_gen(f,[a0,a1,a2,a3,a4,a5,a6])} - var - global_data=runtime.caml_get_global_data(), - partial=[4,0,0,0,[12,46,0]], - cst_No_rule_applies_in_the_giv= - caml_string_of_jsbytes - ("No rule applies in the given context to give a value to the variable"), - cst_A_conflict_happened_betwee= - caml_string_of_jsbytes - ("A conflict happened between two rules giving a value to the variable"), - cst_A_failure_happened_in_the_= - caml_string_of_jsbytes("A failure happened in the assertion"), - cst_Begin_call=caml_string_of_jsbytes("Begin call"), - cst_End_call=caml_string_of_jsbytes("End call"), - cst_Variable_definition=caml_string_of_jsbytes("Variable definition"), - cst_Decision_taken=caml_string_of_jsbytes("Decision taken"), - cst_date_of_jsoo_invalid_date= - caml_string_of_jsbytes("date_of_jsoo: invalid date"); - global_data.CamlinternalOO; - var - Stdlib_Format=global_data.Stdlib__Format, - Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, - Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime, - Yojson=global_data.Yojson, - Stdlib_List=global_data.Stdlib__List, - Stdlib_Array=global_data.Stdlib__Array, - Stdlib_String=global_data.Stdlib__String, - Stdlib=global_data.Stdlib, - Runtime_jsoo=[0]; - caml_register_global(52,Runtime_jsoo,"Runtime_jsoo"); - var - _a_= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_int_of_string = runtime.caml_int_of_string, + caml_js_from_array = runtime.caml_js_from_array, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_jsstring_of_string = runtime.caml_jsstring_of_string, + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call5(f, a0, a1, a2, a3, a4){ + return (f.l >= 0 ? f.l : f.l = f.length) == 5 + ? f(a0, a1, a2, a3, a4) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4]); + } + function caml_call7(f, a0, a1, a2, a3, a4, a5, a6){ + return (f.l >= 0 ? f.l : f.l = f.length) == 7 + ? f(a0, a1, a2, a3, a4, a5, a6) + : runtime.caml_call_gen(f, [a0, a1, a2, a3, a4, a5, a6]); + } + var + global_data = runtime.caml_get_global_data(), + partial = [4, 0, 0, 0, [12, 46, 0]]; + global_data.CamlinternalOO; + var + Stdlib_Format = global_data.Stdlib__Format, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Yojson = global_data.Yojson, + Stdlib_List = global_data.Stdlib__List, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_String = global_data.Stdlib__String, + Stdlib = global_data.Stdlib, + _a_ = [0, [2, 0, [11, - caml_string_of_jsbytes(" in file "), + " in file ", [2, 0, [11, - caml_string_of_jsbytes(", position "), + ", position ", [4, 0, 0, 0, [12, 58, - [4, - 0, - 0, - 0, - [11,caml_string_of_jsbytes("--"),[4,0,0,0,[12,58,partial]]]]]]]]]], - caml_string_of_jsbytes("%s in file %s, position %d:%d--%d:%d.")]; - function duration_of_jsoo(d) - {return caml_call3(Runtime_ocaml_Runtime[60],d.years,d.months,d.days)} - function duration_to_jsoo(d) - {var - match=caml_call1(Runtime_ocaml_Runtime[61],d), - days=match[3], - months=match[2], - years=match[1]; - return {"years":years,"months":months,"days":days}} - function date_of_jsoo(d) - {var d$0=runtime.caml_string_of_jsstring(d); - if(caml_call2(Stdlib_String[14],d$0,84)) + [4, 0, 0, 0, [11, "--", [4, 0, 0, 0, [12, 58, partial]]]]]]]]]], + "%s in file %s, position %d:%d--%d:%d."], + cst_No_rule_applies_in_the_giv = + "No rule applies in the given context to give a value to the variable", + cst_A_conflict_happened_betwee = + "A conflict happened between two rules giving a value to the variable", + cst_A_failure_happened_in_the_ = "A failure happened in the assertion", + cst_Begin_call = "Begin call", + cst_End_call = "End call", + cst_Variable_definition = "Variable definition", + cst_Decision_taken = "Decision taken", + cst_date_of_jsoo_invalid_date = "date_of_jsoo: invalid date"; + function duration_of_jsoo(t2){ + return caml_call3(Runtime_ocaml_Runtime[60], t2.years, t2.months, t2.days); + } + function duration_to_jsoo(d){ + var + match = caml_call1(Runtime_ocaml_Runtime[61], d), + days = match[3], + months = match[2], + years = match[1]; + return {years: years, months: months, days: days}; + } + function date_of_jsoo(d){ + var d$0 = runtime.caml_string_of_jsstring(d); + if(caml_call2(Stdlib_String[14], d$0, 84)) + var + _u_ = caml_call1(caml_call1(Stdlib_String[16], 84), d$0), + d$1 = caml_call1(Stdlib_List[5], _u_); + else + var d$1 = d$0; + var match = caml_call2(Stdlib_String[16], 45, d$1); + if(match){ + var _v_ = match[2]; + if(_v_){ + var _w_ = _v_[2]; + if(_w_ && ! _w_[2]){ var - _r_=caml_call1(caml_call1(Stdlib_String[16],84),d$0), - d$1=caml_call1(Stdlib_List[5],_r_); - else - var d$1=d$0; - var match=caml_call2(Stdlib_String[16],45,d$1); - if(match) - {var _s_=match[2]; - if(_s_) - {var _t_=_s_[2]; - if(_t_ && ! _t_[2]) - {var - day=_t_[1], - month=_s_[1], - year=match[1], - _u_=caml_int_of_string(day), - _v_=caml_int_of_string(month), - _w_=caml_int_of_string(year); - return caml_call3(Runtime_ocaml_Runtime[57],_w_,_v_,_u_)}}} - return caml_call1(Stdlib[2],cst_date_of_jsoo_invalid_date)} - function date_to_jsoo(d) - {return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56],d))} - function t19(param) - {return caml_js_wrap_meth_callback - (function(param) - {var _i_=caml_call1(Runtime_ocaml_Runtime[23],0); - function _j_(evt) - {if(3 === evt[0]) - var - pos=evt[1], - _q_= - caml_call2(Stdlib_List[19],caml_jsstring_of_string,pos[6]), - t12=caml_js_from_array(caml_call1(Stdlib_Array[12],_q_)), - t7=caml_jsstring_of_string(pos[1]), - _l_= - caml_call1 - (Js_of_ocaml_Js[4], - {"fileName":t7, - "startLine":pos[2], - "endLine":pos[4], - "startColumn":pos[3], - "endColumn":pos[5], - "lawHeadings":t12}); - else - var _l_=Js_of_ocaml_Js[3]; - if(2 === evt[0]) - var v=evt[2],_m_=v; - else - var _m_=caml_call1(Runtime_ocaml_Runtime[10],0); - var - _n_=caml_call1(Runtime_ocaml_Runtime[9],_m_), - t15= - caml_jsstring_of_string - (caml_call5(Yojson[11][5],0,0,0,0,_n_)); - if(3 === evt[0]) - var _o_=0; - else - var - info=evt[1], - _o_=caml_call2(Stdlib_List[19],caml_jsstring_of_string,info); - var - t14= - caml_js_from_array(caml_call1(Stdlib_Array[12],_o_)); - switch(evt[0]) - {case 0:var _p_=cst_Begin_call;break; - case 1:var _p_=cst_End_call;break; - case 2:var _p_=cst_Variable_definition;break; - default:var _p_=cst_Decision_taken} - var t13=caml_jsstring_of_string(_p_); - return {"eventType":t13, - "information":t14, - "loggedValueJson":t15, - "sourcePosition":_l_}} - var _k_=caml_call2(Stdlib_List[19],_j_,_i_); - return caml_js_from_array(caml_call1(Stdlib_Array[12],_k_))})} - function t18(param) - {return caml_js_wrap_meth_callback - (function(param) - {var - _d_=caml_call1(Runtime_ocaml_Runtime[23],0), - _e_=caml_call1(Runtime_ocaml_Runtime[24][1],_d_); - function _f_(event) - {var - _h_=caml_call1(Runtime_ocaml_Runtime[20],event), - t6= - caml_jsstring_of_string - (caml_call5(Yojson[11][5],0,0,0,0,_h_)); - return {"data":t6}} - var _g_=caml_call1(caml_call1(Stdlib_List[19],_f_),_e_); - return caml_js_from_array(caml_call1(Stdlib_Array[12],_g_))})} - function t17(param) - {return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25])} - var - event_manager= - {"resetLog":caml_js_wrap_meth_callback(t17), - "retrieveEvents":caml_js_wrap_meth_callback(t18), - "retrieveRawEvents":caml_js_wrap_meth_callback(t19)}; - function execute_or_throw_error(f) - {function throw_error(descr,pos) - {var - t21= - caml_jsstring_of_string - (caml_call7 - (Stdlib_Format[133],_a_,descr,pos[1],pos[2],pos[3],pos[4],pos[5])); - function t23(param){return t21} - var - _c_= - caml_call1 - (Js_of_ocaml_Js[37][9], - {"name":"NoValueProvided", - "message":t21, - "stack":Js_of_ocaml_Js[6][1], - "toString":caml_js_wrap_meth_callback(t23)}); - return caml_call1(Js_of_ocaml_Js[37][5],_c_)} - try - {var _b_=caml_call1(f,0);return _b_} - catch(exn) - {exn = caml_wrap_exception(exn); - if(exn[1] === Runtime_ocaml_Runtime[8]) - {var pos=exn[2]; - return throw_error(cst_No_rule_applies_in_the_giv,pos)} - if(exn[1] === Runtime_ocaml_Runtime[4]) - {var pos$0=exn[2]; - return throw_error(cst_A_conflict_happened_betwee,pos$0)} - if(exn[1] !== Runtime_ocaml_Runtime[3])throw exn; - var pos$1=exn[2]; - return throw_error(cst_A_failure_happened_in_the_,pos$1)}} - var - Runtime_jsoo_Runtime= + day = _w_[1], + month = _v_[1], + year = match[1], + _x_ = caml_int_of_string(day), + _y_ = caml_int_of_string(month), + _z_ = caml_int_of_string(year); + return caml_call3(Runtime_ocaml_Runtime[57], _z_, _y_, _x_); + } + } + } + return caml_call1(Stdlib[2], cst_date_of_jsoo_invalid_date); + } + function date_to_jsoo(d){ + return caml_jsstring_of_string(caml_call1(Runtime_ocaml_Runtime[56], d)); + } + function t19(param){ + return caml_js_wrap_meth_callback + (function(param){ + var _i_ = caml_call1(Runtime_ocaml_Runtime[23], 0); + function _j_(evt){ + if(3 === evt[0]) + var + pos = evt[1], + _s_ = + caml_call2(Stdlib_List[19], caml_jsstring_of_string, pos[6]), + _t_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _s_)), + _l_ = + caml_call1 + (Js_of_ocaml_Js[4], + {fileName: caml_jsstring_of_string(pos[1]), + startLine: pos[2], + endLine: pos[4], + startColumn: pos[3], + endColumn: pos[5], + lawHeadings: _t_}); + else + var _l_ = Js_of_ocaml_Js[3]; + if(2 === evt[0]) + var v = evt[2], _m_ = v; + else + var _m_ = caml_call1(Runtime_ocaml_Runtime[10], 0); + var + _n_ = caml_call1(Runtime_ocaml_Runtime[9], _m_), + _o_ = + caml_jsstring_of_string + (caml_call5(Yojson[11][5], 0, 0, 0, 0, _n_)); + if(3 === evt[0]) + var _p_ = 0; + else + var + info = evt[1], + _p_ = + caml_call2(Stdlib_List[19], caml_jsstring_of_string, info); + var + _q_ = caml_js_from_array(caml_call1(Stdlib_Array[12], _p_)); + switch(evt[0]){ + case 0: + var _r_ = cst_Begin_call; break; + case 1: + var _r_ = cst_End_call; break; + case 2: + var _r_ = cst_Variable_definition; break; + default: var _r_ = cst_Decision_taken; + } + return {eventType: caml_jsstring_of_string(_r_), + information: _q_, + loggedValueJson: _o_, + sourcePosition: _l_}; + } + var _k_ = caml_call2(Stdlib_List[19], _j_, _i_); + return caml_js_from_array(caml_call1(Stdlib_Array[12], _k_)); + }); + } + function t18(param){ + return caml_js_wrap_meth_callback + (function(param){ + var + _d_ = caml_call1(Runtime_ocaml_Runtime[23], 0), + _e_ = caml_call1(Runtime_ocaml_Runtime[24][1], _d_); + function _f_(event){ + var _h_ = caml_call1(Runtime_ocaml_Runtime[20], event); + return {data: + caml_jsstring_of_string + (caml_call5(Yojson[11][5], 0, 0, 0, 0, _h_))}; + } + var _g_ = caml_call1(caml_call1(Stdlib_List[19], _f_), _e_); + return caml_js_from_array(caml_call1(Stdlib_Array[12], _g_)); + }); + } + function t17(param){ + return caml_js_wrap_meth_callback(Runtime_ocaml_Runtime[25]); + } + var + event_manager = + {resetLog: caml_js_wrap_meth_callback(t17), + retrieveEvents: caml_js_wrap_meth_callback(t18), + retrieveRawEvents: caml_js_wrap_meth_callback(t19)}; + function execute_or_throw_error(f){ + function throw_error(descr, pos){ + var + msg = + caml_jsstring_of_string + (caml_call7 + (Stdlib_Format[133], + _a_, + descr, + pos[1], + pos[2], + pos[3], + pos[4], + pos[5])); + function t23(param){return msg;} + var + t22 = Js_of_ocaml_Js[6][1], + _c_ = + caml_call1 + (Js_of_ocaml_Js[37][9], + {name: "NoValueProvided", + message: msg, + stack: t22, + toString: caml_js_wrap_meth_callback(t23)}); + return caml_call1(Js_of_ocaml_Js[37][5], _c_); + } + try{var _b_ = caml_call1(f, 0); return _b_;} + catch(exn$0){ + var exn = caml_wrap_exception(exn$0); + if(exn[1] === Runtime_ocaml_Runtime[8]){ + var pos = exn[2]; + return throw_error(cst_No_rule_applies_in_the_giv, pos); + } + if(exn[1] === Runtime_ocaml_Runtime[4]){ + var pos$0 = exn[2]; + return throw_error(cst_A_conflict_happened_betwee, pos$0); + } + if(exn[1] !== Runtime_ocaml_Runtime[3]) + throw caml_maybe_attach_backtrace(exn, 0); + var pos$1 = exn[2]; + return throw_error(cst_A_failure_happened_in_the_, pos$1); + } + } + var + Runtime_jsoo_Runtime = [0, event_manager, duration_of_jsoo, @@ -50197,54667 +45538,11263 @@ date_of_jsoo, date_to_jsoo, execute_or_throw_error]; - caml_register_global(62,Runtime_jsoo_Runtime,"Runtime_jsoo__Runtime"); - return} + runtime.caml_register_global + (61, Runtime_jsoo_Runtime, "Runtime_jsoo__Runtime"); + return; + } (globalThis)); -//# 1 "law_source/.law_source.objs/law_source.cma.js" +//# 1 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cma, use-js-string=true, version=5.1.1 + +//# 16 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_js_from_array=runtime.caml_js_from_array, - caml_js_to_array=runtime.caml_js_to_array, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback, - caml_register_global=runtime.caml_register_global, - caml_string_notequal=runtime.caml_string_notequal, - caml_string_of_jsbytes=runtime.caml_string_of_jsbytes, - caml_string_of_jsstring=runtime.caml_string_of_jsstring, - caml_wrap_exception=runtime.caml_wrap_exception; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - function caml_call2(f,a0,a1) - {return f.length == 2?f(a0,a1):runtime.caml_call_gen(f,[a0,a1])} - function caml_call3(f,a0,a1,a2) - {return f.length == 3?f(a0,a1,a2):runtime.caml_call_gen(f,[a0,a1,a2])} - function caml_call4(f,a0,a1,a2,a3) - {return f.length == 4 - ?f(a0,a1,a2,a3) - :runtime.caml_call_gen(f,[a0,a1,a2,a3])} - var - global_data=runtime.caml_get_global_data(), - cst_0$66=caml_string_of_jsbytes("0"), - cst_0$65=caml_string_of_jsbytes("0"), - cst_0$63=caml_string_of_jsbytes("0"), - cst_0$64=caml_string_of_jsbytes("0"), - cst_0$62=caml_string_of_jsbytes("0"), - cst_1$27=caml_string_of_jsbytes("1."), - cst_0_5$0=caml_string_of_jsbytes("0.5"), - cst_0$61=caml_string_of_jsbytes("0."), - cst_12$10=caml_string_of_jsbytes("12."), - cst_12$8=caml_string_of_jsbytes("12."), - cst_1$26=caml_string_of_jsbytes("1."), - cst_12$9=caml_string_of_jsbytes("12."), - cst_12$7=caml_string_of_jsbytes("12."), - cst_12$5=caml_string_of_jsbytes("12."), - cst_1$25=caml_string_of_jsbytes("1."), - cst_12$6=caml_string_of_jsbytes("12."), - cst_0$60=caml_string_of_jsbytes("0"), - cst_1$24=caml_string_of_jsbytes("1"), - cst_0_0369=caml_string_of_jsbytes("0.0369"), - cst_1$23=caml_string_of_jsbytes("1"), - cst_0_0567=caml_string_of_jsbytes("0.0567"), - cst_1$22=caml_string_of_jsbytes("1"), - cst_0_16$1=caml_string_of_jsbytes("0.16"), - cst_0_08$0=caml_string_of_jsbytes("0.08"), - cst_0_04=caml_string_of_jsbytes("0.04"), - cst_0$59=caml_string_of_jsbytes("0"), - cst_0$57=caml_string_of_jsbytes("0."), - cst_0$58=caml_string_of_jsbytes("0."), - cst_1$21=caml_string_of_jsbytes("1"), - cst_0_232=caml_string_of_jsbytes("0.232"), - cst_0$56=caml_string_of_jsbytes("0"), - cst_1$20=caml_string_of_jsbytes("1"), - cst_0_2379=caml_string_of_jsbytes("0.2379"), - cst_0$55=caml_string_of_jsbytes("0"), - cst_1$19=caml_string_of_jsbytes("1"), - cst_0_2437=caml_string_of_jsbytes("0.2437"), - cst_0$54=caml_string_of_jsbytes("0"), - cst_1$18=caml_string_of_jsbytes("1"), - cst_0_2496=caml_string_of_jsbytes("0.2496"), - cst_0$53=caml_string_of_jsbytes("0"), - cst_1$17=caml_string_of_jsbytes("1"), - cst_0_2555=caml_string_of_jsbytes("0.2555"), - cst_0$52=caml_string_of_jsbytes("0"), - cst_1$16=caml_string_of_jsbytes("1"), - cst_0_2613=caml_string_of_jsbytes("0.2613"), - cst_0$51=caml_string_of_jsbytes("0"), - cst_1$15=caml_string_of_jsbytes("1"), - cst_0_2672=caml_string_of_jsbytes("0.2672"), - cst_0$50=caml_string_of_jsbytes("0"), - cst_1$14=caml_string_of_jsbytes("1"), - cst_0_2804=caml_string_of_jsbytes("0.2804"), - cst_0$49=caml_string_of_jsbytes("0"), - cst_1$13=caml_string_of_jsbytes("1"), - cst_0_2936=caml_string_of_jsbytes("0.2936"), - cst_0$48=caml_string_of_jsbytes("0"), - cst_1$12=caml_string_of_jsbytes("1"), - cst_0_3068=caml_string_of_jsbytes("0.3068"), - cst_0$47=caml_string_of_jsbytes("0"), - cst_1$11=caml_string_of_jsbytes("1"), - cst_0_32$0=caml_string_of_jsbytes("0.32"), - cst_0$46=caml_string_of_jsbytes("0"), - cst_1$10=caml_string_of_jsbytes("1"), - cst_0_32=caml_string_of_jsbytes("0.32"), - cst_0$45=caml_string_of_jsbytes("0"), - cst_1$9=caml_string_of_jsbytes("1"), - cst_0_16$0=caml_string_of_jsbytes("0.16"), - cst_0$44=caml_string_of_jsbytes("0"), - cst_1$8=caml_string_of_jsbytes("1"), - cst_0_08=caml_string_of_jsbytes("0.08"), - cst_0$43=caml_string_of_jsbytes("0"), - cst_2$15=caml_string_of_jsbytes("2"), - cst_2$16=caml_string_of_jsbytes("2"), - cst_0_41=caml_string_of_jsbytes("0.41"), - cst_0$42=caml_string_of_jsbytes("0"), - cst_2$13=caml_string_of_jsbytes("2"), - cst_2$14=caml_string_of_jsbytes("2"), - cst_0_205=caml_string_of_jsbytes("0.205"), - cst_0$41=caml_string_of_jsbytes("0"), - cst_2$11=caml_string_of_jsbytes("2"), - cst_2$12=caml_string_of_jsbytes("2"), - cst_0_1025=caml_string_of_jsbytes("0.1025"), - cst_0$40=caml_string_of_jsbytes("0"), - cst_0_20234=caml_string_of_jsbytes("0.20234"), - cst_0_10117=caml_string_of_jsbytes("0.10117"), - cst_0_05059=caml_string_of_jsbytes("0.05059"), - cst_12$4=caml_string_of_jsbytes("12."), - cst_12$2=caml_string_of_jsbytes("12."), - cst_1$7=caml_string_of_jsbytes("1."), - cst_12$3=caml_string_of_jsbytes("12."), - cst_12$1=caml_string_of_jsbytes("12."), - cst_12=caml_string_of_jsbytes("12."), - cst_1$6=caml_string_of_jsbytes("1."), - cst_12$0=caml_string_of_jsbytes("12."), - cst_0$39=caml_string_of_jsbytes("0"), - cst_1$5=caml_string_of_jsbytes("1"), - cst_1$4=caml_string_of_jsbytes("1"), - cst_2$10=caml_string_of_jsbytes("2"), - cst_0$37=caml_string_of_jsbytes("0"), - cst_0_145=caml_string_of_jsbytes("0.145"), - cst_0$38=caml_string_of_jsbytes("0"), - cst_0$35=caml_string_of_jsbytes("0"), - cst_0_1393=caml_string_of_jsbytes("0.1393"), - cst_0$36=caml_string_of_jsbytes("0"), - cst_0$33=caml_string_of_jsbytes("0"), - cst_0_1335=caml_string_of_jsbytes("0.1335"), - cst_0$34=caml_string_of_jsbytes("0"), - cst_0$31=caml_string_of_jsbytes("0"), - cst_0_1278=caml_string_of_jsbytes("0.1278"), - cst_0$32=caml_string_of_jsbytes("0"), - cst_0$29=caml_string_of_jsbytes("0"), - cst_0_122=caml_string_of_jsbytes("0.122"), - cst_0$30=caml_string_of_jsbytes("0"), - cst_0$27=caml_string_of_jsbytes("0"), - cst_0_1163=caml_string_of_jsbytes("0.1163"), - cst_0$28=caml_string_of_jsbytes("0"), - cst_0$25=caml_string_of_jsbytes("0"), - cst_0_1105=caml_string_of_jsbytes("0.1105"), - cst_0$26=caml_string_of_jsbytes("0"), - cst_0$23=caml_string_of_jsbytes("0"), - cst_0_0976=caml_string_of_jsbytes("0.0976"), - cst_0$24=caml_string_of_jsbytes("0"), - cst_0$21=caml_string_of_jsbytes("0"), - cst_0_0847=caml_string_of_jsbytes("0.0847"), - cst_0$22=caml_string_of_jsbytes("0"), - cst_0$19=caml_string_of_jsbytes("0"), - cst_0_0717=caml_string_of_jsbytes("0.0717"), - cst_0$20=caml_string_of_jsbytes("0"), - cst_0$17=caml_string_of_jsbytes("0"), - cst_5728=caml_string_of_jsbytes("5728"), - cst_0$18=caml_string_of_jsbytes("0"), - cst_0$15=caml_string_of_jsbytes("0"), - cst_0_0588$0=caml_string_of_jsbytes("0.0588"), - cst_0$16=caml_string_of_jsbytes("0"), - cst_1$3=caml_string_of_jsbytes("1"), - cst_0_0588=caml_string_of_jsbytes("0.0588"), - cst_0$14=caml_string_of_jsbytes("0"), - cst_1$2=caml_string_of_jsbytes("1."), - cst_0_5=caml_string_of_jsbytes("0.5"), - cst_0$12=caml_string_of_jsbytes("0."), - cst_0$13=caml_string_of_jsbytes("0."), - cst_2$9=caml_string_of_jsbytes("2"), - cst_0_0463$0=caml_string_of_jsbytes("0.0463"), - cst_0$11=caml_string_of_jsbytes("0"), - cst_2$8=caml_string_of_jsbytes("2"), - cst_0_0539=caml_string_of_jsbytes("0.0539"), - cst_0$10=caml_string_of_jsbytes("0"), - cst_2$7=caml_string_of_jsbytes("2"), - cst_0_0615=caml_string_of_jsbytes("0.0615"), - cst_0$9=caml_string_of_jsbytes("0"), - cst_2$6=caml_string_of_jsbytes("2"), - cst_0_069=caml_string_of_jsbytes("0.069"), - cst_0$8=caml_string_of_jsbytes("0"), - cst_2$5=caml_string_of_jsbytes("2"), - cst_0_0766=caml_string_of_jsbytes("0.0766"), - cst_0$7=caml_string_of_jsbytes("0"), - cst_2$4=caml_string_of_jsbytes("2"), - cst_0_0842=caml_string_of_jsbytes("0.0842"), - cst_0$6=caml_string_of_jsbytes("0"), - cst_2$3=caml_string_of_jsbytes("2"), - cst_0_0918=caml_string_of_jsbytes("0.0918"), - cst_0$5=caml_string_of_jsbytes("0"), - cst_2$2=caml_string_of_jsbytes("2"), - cst_0_1089=caml_string_of_jsbytes("0.1089"), - cst_0$4=caml_string_of_jsbytes("0"), - cst_2$1=caml_string_of_jsbytes("2"), - cst_0_1259=caml_string_of_jsbytes("0.1259"), - cst_0$3=caml_string_of_jsbytes("0"), - cst_2$0=caml_string_of_jsbytes("2"), - cst_0_143=caml_string_of_jsbytes("0.143"), - cst_0$2=caml_string_of_jsbytes("0"), - cst_2=caml_string_of_jsbytes("2"), - cst_0_16=caml_string_of_jsbytes("0.16"), - cst_0$1=caml_string_of_jsbytes("0"), - cst_3$1=caml_string_of_jsbytes("3"), - cst_3$2=caml_string_of_jsbytes("3"), - cst_0_0463=caml_string_of_jsbytes("0.0463"), - cst_0$0=caml_string_of_jsbytes("0"), - cst_1$1=caml_string_of_jsbytes("1"), - cst_1$0=caml_string_of_jsbytes("1"), - cst_562800$0=caml_string_of_jsbytes("562800"), - cst_5628600=caml_string_of_jsbytes("5628600"), - cst_568400$0=caml_string_of_jsbytes("568400"), - cst_5684900=caml_string_of_jsbytes("5684900"), - cst_577500$0=caml_string_of_jsbytes("577500"), - cst_5775900=caml_string_of_jsbytes("5775900"), - cst_582700$0=caml_string_of_jsbytes("582700"), - cst_5827900=caml_string_of_jsbytes("5827900"), - cst_559500$0=caml_string_of_jsbytes("559500"), - cst_5595000=caml_string_of_jsbytes("5595000"), - cst_562800=caml_string_of_jsbytes("562800"), - cst_7877000=caml_string_of_jsbytes("7877000"), - cst_568400=caml_string_of_jsbytes("568400"), - cst_7955800=caml_string_of_jsbytes("7955800"), - cst_577500=caml_string_of_jsbytes("577500"), - cst_8083100=caml_string_of_jsbytes("8083100"), - cst_582700=caml_string_of_jsbytes("582700"), - cst_8155800=caml_string_of_jsbytes("8155800"), - cst_559500=caml_string_of_jsbytes("559500"), - cst_7830000=caml_string_of_jsbytes("7830000"), - cst_3$0=caml_string_of_jsbytes("3"), - cst_3=caml_string_of_jsbytes("3"), - cst_169$0=caml_string_of_jsbytes("169."), - cst_0_55$0=caml_string_of_jsbytes("0.55"), - cst_169=caml_string_of_jsbytes("169."), - cst_0_55=caml_string_of_jsbytes("0.55"), - cst_41316=caml_string_of_jsbytes("41316"), - cst_41440=caml_string_of_jsbytes("41440"), - cst_41481=caml_string_of_jsbytes("41481"), - cst_42228=caml_string_of_jsbytes("42228"), - cst_1003=caml_string_of_jsbytes("1003"), - cst_757=caml_string_of_jsbytes("757"), - cst_1015=caml_string_of_jsbytes("1015"), - cst_766=caml_string_of_jsbytes("766"), - cst_1025=caml_string_of_jsbytes("1025"), - cst_774=caml_string_of_jsbytes("774"), - cst_1057=caml_string_of_jsbytes("1057"), - cst_798=caml_string_of_jsbytes("798"), - cst_1085=caml_string_of_jsbytes("1085"), - cst_819=caml_string_of_jsbytes("819"), - cst_1107=caml_string_of_jsbytes("1107"), - cst_835=caml_string_of_jsbytes("835"), - cst_1127=caml_string_of_jsbytes("1127"), - cst_851=caml_string_of_jsbytes("851"), - cst_0=caml_string_of_jsbytes("0"), - cst_1=caml_string_of_jsbytes("-1"), - cst_i_avait_enfant_charge_avan= - caml_string_of_jsbytes - ("i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), - cst_i_personne_charge_effectiv= - caml_string_of_jsbytes - ("i_personne_charge_effective_permanente_remplit_titre_I_in"), - cst_i_personne_charge_effectiv$0= - caml_string_of_jsbytes - ("i_personne_charge_effective_permanente_est_parent_in"), - cst_i_r_sidence_in=caml_string_of_jsbytes("i_r\xc3\xa9sidence_in"), - cst_i_ressources_m_nage_in= - caml_string_of_jsbytes("i_ressources_m\xc3\xa9nage_in"), - cst_i_enfants_in=caml_string_of_jsbytes("i_enfants_in"), - cst_i_date_courante_in=caml_string_of_jsbytes("i_date_courante_in"), - cst_date_courante_in$4=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$1=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$3=caml_string_of_jsbytes("date_courante_in"), - cst_ann_es_in$0=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$2=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$0=caml_string_of_jsbytes("date_naissance_in"), - cst_ann_es_in=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$1=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in=caml_string_of_jsbytes("date_naissance_in"), - cst_avait_enfant_charge_avant_= - caml_string_of_jsbytes - ("avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in"), - cst_enfants_charge_in= - caml_string_of_jsbytes("enfants_\xc3\xa0_charge_in"), - cst_date_courante_in$0=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$0=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_ressources_m_nage_in= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_in"), - cst_personne_charge_effective_= - caml_string_of_jsbytes - ("personne_charge_effective_permanente_remplit_titre_I_in"), - cst_personne_charge_effective_$0= - caml_string_of_jsbytes - ("personne_charge_effective_permanente_est_parent_in"), - cst_enfants_in=caml_string_of_jsbytes("enfants_in"), - cst_r_sidence_in=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_prestation_courante_in= - caml_string_of_jsbytes("prestation_courante_in"), - cst_date_courante_in=caml_string_of_jsbytes("date_courante_in"), - cst_r_gime_outre_mer_l751_1= - caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), - cst_ge_l512_3_2=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), - cst_conditions_hors_ge= - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - cst_droit_ouvert=caml_string_of_jsbytes("droit_ouvert"), - cst_le_plus_g=caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"), - cst_b_n_ficie_titre_personnel_= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_a_d_j_ouvert_droit_aux_all= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_prise_en_charge=caml_string_of_jsbytes("prise_en_charge"), - cst_date_de_naissance=caml_string_of_jsbytes("date_de_naissance"), - cst_r_muneration_mensuelle= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_obligation_scolaire=caml_string_of_jsbytes("obligation_scolaire"), - cst_identifiant=caml_string_of_jsbytes("identifiant"), - cst_d_b_n_ficie_titre_personne= - caml_string_of_jsbytes - ("d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_d_a_d_j_ouvert_droit_aux_a= - caml_string_of_jsbytes - ("d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_d_prise_en_charge=caml_string_of_jsbytes("d_prise_en_charge"), - cst_d_date_de_naissance=caml_string_of_jsbytes("d_date_de_naissance"), - cst_d_r_muneration_mensuelle= - caml_string_of_jsbytes("d_r\xc3\xa9muneration_mensuelle"), - cst_d_identifiant=caml_string_of_jsbytes("d_identifiant"), - cst_i_montant_vers=caml_string_of_jsbytes("i_montant_vers\xc3\xa9"), - cst_montant=caml_string_of_jsbytes("montant"), - cst_brut_horaire=caml_string_of_jsbytes("brut_horaire"), - cst_est_sup_rieur=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), - cst_est_inf_rieur_ou_gal= - caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), - cst_montant_vers=caml_string_of_jsbytes("montant_vers\xc3\xa9"), - cst_ge_minimum_alin_a_1_l521_3= - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - cst_Guadeloupe=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane=caml_string_of_jsbytes("Guyane"), - cst_Martinique=caml_string_of_jsbytes("Martinique"), - cst_LaR_union=caml_string_of_jsbytes("LaR\xc3\xa9union"), - cst_SaintBarth_lemy=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), - cst_SaintMartin=caml_string_of_jsbytes("SaintMartin"), - cst_M_tropole=caml_string_of_jsbytes("M\xc3\xa9tropole"), - cst_SaintPierreEtMiquelon=caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Mayotte=caml_string_of_jsbytes("Mayotte"), - cst_PrestationAccueilJeuneEnfa= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationsFamiliales=caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationLogement=caml_string_of_jsbytes("AllocationLogement"), - cst_Allocation_ducationEnfantH= - caml_string_of_jsbytes - ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), - cst_AllocationSoutienFamilial= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationRentr_eScolaire= - caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), - cst_AllocationJournali_rePrese= - caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), - cst_Normal=caml_string_of_jsbytes("Normal"), - cst_AllocationVers_eAuxService= - caml_string_of_jsbytes("AllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_Compl_te=caml_string_of_jsbytes("Compl\xc3\xa8te"), - cst_Partag_e=caml_string_of_jsbytes("Partag\xc3\xa9e"), - cst_Z_ro=caml_string_of_jsbytes("Z\xc3\xa9ro"), - cst_Avant=caml_string_of_jsbytes("Avant"), - cst_Pendant=caml_string_of_jsbytes("Pendant"), - cst_Apr_s=caml_string_of_jsbytes("Apr\xc3\xa8s"), - cst_GardeAltern_ePartageAlloca= - caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), - cst_GardeAltern_eAllocataireUn= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), - cst_EffectiveEtPermanente=caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ServicesSociauxAllocationV= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), - cst_ServicesSociauxAllocationV$0= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_The_function_conditions_ho= - caml_string_of_jsbytes - ("The function 'conditions_hors_age' translation isn't yet supported..."), - cst_The_function_droit_ouvert_= - caml_string_of_jsbytes - ("The function 'droit_ouvert' translation isn't yet supported..."), - cst_Guadeloupe$0=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$0=caml_string_of_jsbytes("Guyane"), - cst_LaReunion=caml_string_of_jsbytes("LaReunion"), - cst_Martinique$0=caml_string_of_jsbytes("Martinique"), - cst_Mayotte$0=caml_string_of_jsbytes("Mayotte"), - cst_Metropole=caml_string_of_jsbytes("Metropole"), - cst_SaintBarthelemy=caml_string_of_jsbytes("SaintBarthelemy"), - cst_SaintMartin$0=caml_string_of_jsbytes("SaintMartin"), - cst_SaintPierreEtMiquelon$0= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_AllocationEducationEnfantH= - caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), - cst_AllocationJournalierePrese= - caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), - cst_AllocationLogement$0=caml_string_of_jsbytes("AllocationLogement"), - cst_AllocationRentreeScolaire= - caml_string_of_jsbytes("AllocationRentreeScolaire"), - cst_AllocationSoutienFamilial$0= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$0= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial=caml_string_of_jsbytes("ComplementFamilial"), - cst_PrestationAccueilJeuneEnfa$0= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationVerseeAuxService= - caml_string_of_jsbytes("AllocationVerseeAuxServicesSociaux"), - cst_Normal$0=caml_string_of_jsbytes("Normal"), - cst_Complete=caml_string_of_jsbytes("Complete"), - cst_Partagee=caml_string_of_jsbytes("Partagee"), - cst_Zero=caml_string_of_jsbytes("Zero"), - cst_Apres=caml_string_of_jsbytes("Apres"), - cst_Avant$0=caml_string_of_jsbytes("Avant"), - cst_Pendant$0=caml_string_of_jsbytes("Pendant"), - cst_EffectiveEtPermanente$0= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_GardeAlterneeAllocataireUn= - caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), - cst_GardeAlterneePartageAlloca= - caml_string_of_jsbytes("GardeAlterneePartageAllocations"), - cst_ServicesSociauxAllocationV$1= - caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), - cst_ServicesSociauxAllocationV$2= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), - cst_AllocationsFamilialesLib= - caml_string_of_jsbytes("AllocationsFamilialesLib"), - cst_0$424=caml_string_of_jsbytes("0"), - cst_0$425=caml_string_of_jsbytes("0"), - cst_0$426=caml_string_of_jsbytes("0."), - cst_0$423=caml_string_of_jsbytes("0"), - cst_1$282=caml_string_of_jsbytes("1"), - cst_1$281=caml_string_of_jsbytes("1"), - cst_0$422=caml_string_of_jsbytes("0"), - cst_1$280=caml_string_of_jsbytes("1"), - cst_1$279=caml_string_of_jsbytes("1"), - cst_0$421=caml_string_of_jsbytes("0"), - cst_1$278=caml_string_of_jsbytes("1"), - cst_3$103=caml_string_of_jsbytes("3"), - cst_0_2$1=caml_string_of_jsbytes("0.2"), - cst_3$104=caml_string_of_jsbytes("3"), - cst_0$420=caml_string_of_jsbytes("0"), - cst_2_4=caml_string_of_jsbytes("2.4"), - cst_3$102=caml_string_of_jsbytes("3"), - cst_8$0=caml_string_of_jsbytes("8."), - cst_2026=caml_string_of_jsbytes("2026"), - cst_0$417=caml_string_of_jsbytes("0"), - cst_0$418=caml_string_of_jsbytes("0"), - cst_0$419=caml_string_of_jsbytes("0"), - cst_0$415=caml_string_of_jsbytes("0"), - cst_0$416=caml_string_of_jsbytes("0"), - cst_0$413=caml_string_of_jsbytes("0."), - cst_0$414=caml_string_of_jsbytes("0."), - cst_1_25$0=caml_string_of_jsbytes("1.25"), - cst_1_25=caml_string_of_jsbytes("1.25"), - cst_0$412=caml_string_of_jsbytes("0"), - cst_0$411=caml_string_of_jsbytes("0"), - cst_0$410=caml_string_of_jsbytes("0"), - cst_2$122=caml_string_of_jsbytes("2"), - cst_1$277=caml_string_of_jsbytes("1"), - cst_9$2=caml_string_of_jsbytes("9"), - cst_16$3=caml_string_of_jsbytes("16"), - cst_9=caml_string_of_jsbytes("9"), - cst_9$0=caml_string_of_jsbytes("9"), - cst_16=caml_string_of_jsbytes("16"), - cst_16$0=caml_string_of_jsbytes("16"), - cst_16$1=caml_string_of_jsbytes("16"), - cst_9$1=caml_string_of_jsbytes("9"), - cst_16$2=caml_string_of_jsbytes("16"), - cst_8=caml_string_of_jsbytes("8"), - cst_70=caml_string_of_jsbytes("70"), - cst_70$0=caml_string_of_jsbytes("70"), - cst_0$409=caml_string_of_jsbytes("0."), - cst_0$408=caml_string_of_jsbytes("0."), - cst_999840=caml_string_of_jsbytes("999840"), - cst_1041840=caml_string_of_jsbytes("1041840"), - cst_1083840=caml_string_of_jsbytes("1083840"), - cst_1153302=caml_string_of_jsbytes("1153302"), - cst_1100144=caml_string_of_jsbytes("1100144"), - cst_1088175=caml_string_of_jsbytes("1088175"), - cst_1$275=caml_string_of_jsbytes("1"), - cst_2$118=caml_string_of_jsbytes("2"), - cst_2$119=caml_string_of_jsbytes("2"), - cst_2$120=caml_string_of_jsbytes("2"), - cst_1$276=caml_string_of_jsbytes("1"), - cst_2$121=caml_string_of_jsbytes("2"), - cst_3000000=caml_string_of_jsbytes("3000000"), - cst_0_1$0=caml_string_of_jsbytes("0.1"), - cst_0_1=caml_string_of_jsbytes("0.1"), - cst_0_2=caml_string_of_jsbytes("0.2"), - cst_0_2$0=caml_string_of_jsbytes("0.2"), - cst_0$405=caml_string_of_jsbytes("0"), - cst_0$406=caml_string_of_jsbytes("0"), - cst_0$407=caml_string_of_jsbytes("0"), - cst_0$403=caml_string_of_jsbytes("0"), - cst_0$404=caml_string_of_jsbytes("0"), - cst_0$402=caml_string_of_jsbytes("0"), - cst_50$3=caml_string_of_jsbytes("50"), - cst_0$400=caml_string_of_jsbytes("0"), - cst_0$401=caml_string_of_jsbytes("0"), - cst_0$399=caml_string_of_jsbytes("0"), - cst_0$398=caml_string_of_jsbytes("0"), - cst_0$397=caml_string_of_jsbytes("0"), - cst_6$91=caml_string_of_jsbytes("6"), - cst_6$90=caml_string_of_jsbytes("6"), - cst_6$89=caml_string_of_jsbytes("6"), - cst_6$88=caml_string_of_jsbytes("6"), - cst_6$87=caml_string_of_jsbytes("6"), - cst_6$86=caml_string_of_jsbytes("6"), - cst_6$85=caml_string_of_jsbytes("6"), - cst_6$84=caml_string_of_jsbytes("6"), - cst_6$83=caml_string_of_jsbytes("6"), - cst_6$82=caml_string_of_jsbytes("6"), - cst_100$12=caml_string_of_jsbytes("100."), - cst_0_01$0=caml_string_of_jsbytes("0.01"), - cst_4999=caml_string_of_jsbytes("4999"), - cst_0_75$13=caml_string_of_jsbytes("0.75"), - cst_0_75$12=caml_string_of_jsbytes("0.75"), - cst_0_75$11=caml_string_of_jsbytes("0.75"), - cst_0$395=caml_string_of_jsbytes("0"), - cst_0$396=caml_string_of_jsbytes("0"), - cst_969$13=caml_string_of_jsbytes("969"), - cst_1938$4=caml_string_of_jsbytes("1938"), - cst_3767$13=caml_string_of_jsbytes("3767"), - cst_969$11=caml_string_of_jsbytes("969"), - cst_1938$2=caml_string_of_jsbytes("1938"), - cst_3767$12=caml_string_of_jsbytes("3767"), - cst_6$81=caml_string_of_jsbytes("6."), - cst_969$12=caml_string_of_jsbytes("969"), - cst_1938$3=caml_string_of_jsbytes("1938"), - cst_3767$11=caml_string_of_jsbytes("3767"), - cst_936$17=caml_string_of_jsbytes("936"), - cst_1872$5=caml_string_of_jsbytes("1872"), - cst_3640$18=caml_string_of_jsbytes("3640"), - cst_6$80=caml_string_of_jsbytes("6."), - cst_936$18=caml_string_of_jsbytes("936"), - cst_1872$6=caml_string_of_jsbytes("1872"), - cst_3640$17=caml_string_of_jsbytes("3640"), - cst_936$15=caml_string_of_jsbytes("936"), - cst_1872$3=caml_string_of_jsbytes("1872"), - cst_3640$16=caml_string_of_jsbytes("3640"), - cst_6$79=caml_string_of_jsbytes("6."), - cst_936$16=caml_string_of_jsbytes("936"), - cst_1872$4=caml_string_of_jsbytes("1872"), - cst_3640$15=caml_string_of_jsbytes("3640"), - cst_932$7=caml_string_of_jsbytes("932"), - cst_1864$1=caml_string_of_jsbytes("1864"), - cst_3625$8=caml_string_of_jsbytes("3625"), - cst_6$78=caml_string_of_jsbytes("6."), - cst_932$8=caml_string_of_jsbytes("932"), - cst_1864$2=caml_string_of_jsbytes("1864"), - cst_3625$7=caml_string_of_jsbytes("3625"), - cst_929$7=caml_string_of_jsbytes("929"), - cst_1858$1=caml_string_of_jsbytes("1858"), - cst_3614$8=caml_string_of_jsbytes("3614"), - cst_6$77=caml_string_of_jsbytes("6."), - cst_929$8=caml_string_of_jsbytes("929"), - cst_1858$2=caml_string_of_jsbytes("1858"), - cst_3614$7=caml_string_of_jsbytes("3614"), - cst_969$10=caml_string_of_jsbytes("969"), - cst_3767$10=caml_string_of_jsbytes("3767"), - cst_969$8=caml_string_of_jsbytes("969"), - cst_3767$8=caml_string_of_jsbytes("3767"), - cst_6$76=caml_string_of_jsbytes("6."), - cst_969$9=caml_string_of_jsbytes("969"), - cst_3767$9=caml_string_of_jsbytes("3767"), - cst_936$13=caml_string_of_jsbytes("936"), - cst_3640$13=caml_string_of_jsbytes("3640"), - cst_6$75=caml_string_of_jsbytes("6."), - cst_936$14=caml_string_of_jsbytes("936"), - cst_3640$14=caml_string_of_jsbytes("3640"), - cst_936$11=caml_string_of_jsbytes("936"), - cst_3640$11=caml_string_of_jsbytes("3640"), - cst_6$74=caml_string_of_jsbytes("6."), - cst_936$12=caml_string_of_jsbytes("936"), - cst_3640$12=caml_string_of_jsbytes("3640"), - cst_932$5=caml_string_of_jsbytes("932"), - cst_3625$5=caml_string_of_jsbytes("3625"), - cst_6$73=caml_string_of_jsbytes("6."), - cst_932$6=caml_string_of_jsbytes("932"), - cst_3625$6=caml_string_of_jsbytes("3625"), - cst_929$5=caml_string_of_jsbytes("929"), - cst_3614$5=caml_string_of_jsbytes("3614"), - cst_6$72=caml_string_of_jsbytes("6."), - cst_929$6=caml_string_of_jsbytes("929"), - cst_3614$6=caml_string_of_jsbytes("3614"), - cst_1272$5=caml_string_of_jsbytes("1272"), - cst_2805$1=caml_string_of_jsbytes("2805"), - cst_5612$7=caml_string_of_jsbytes("5612"), - cst_1229$5=caml_string_of_jsbytes("1229"), - cst_2710$1=caml_string_of_jsbytes("2710"), - cst_5422$7=caml_string_of_jsbytes("5422"), - cst_1224$5=caml_string_of_jsbytes("1224"), - cst_2699$1=caml_string_of_jsbytes("2699"), - cst_5399$7=caml_string_of_jsbytes("5399"), - cst_0$394=caml_string_of_jsbytes("0"), - cst_5612$5=caml_string_of_jsbytes("5612"), - cst_1272$4=caml_string_of_jsbytes("1272"), - cst_5612$6=caml_string_of_jsbytes("5612"), - cst_0$393=caml_string_of_jsbytes("0"), - cst_5422$5=caml_string_of_jsbytes("5422"), - cst_1229$4=caml_string_of_jsbytes("1229"), - cst_5422$6=caml_string_of_jsbytes("5422"), - cst_0$392=caml_string_of_jsbytes("0"), - cst_5399$5=caml_string_of_jsbytes("5399"), - cst_1224$4=caml_string_of_jsbytes("1224"), - cst_5399$6=caml_string_of_jsbytes("5399"), - cst_0$389=caml_string_of_jsbytes("0"), - cst_158700=caml_string_of_jsbytes("158700"), - cst_191300=caml_string_of_jsbytes("191300"), - cst_1$272=caml_string_of_jsbytes("1"), - cst_205500=caml_string_of_jsbytes("205500"), - cst_2$115=caml_string_of_jsbytes("2"), - cst_211300=caml_string_of_jsbytes("211300"), - cst_3$99=caml_string_of_jsbytes("3"), - cst_217100=caml_string_of_jsbytes("217100"), - cst_4$95=caml_string_of_jsbytes("4"), - cst_222900=caml_string_of_jsbytes("222900"), - cst_5$152=caml_string_of_jsbytes("5"), - cst_228000=caml_string_of_jsbytes("228000"), - cst_5$153=caml_string_of_jsbytes("5"), - cst_19800=caml_string_of_jsbytes("19800"), - cst_228000$0=caml_string_of_jsbytes("228000"), - cst_0$390=caml_string_of_jsbytes("0"), - cst_139300=caml_string_of_jsbytes("139300"), - cst_170600=caml_string_of_jsbytes("170600"), - cst_1$273=caml_string_of_jsbytes("1"), - cst_184700=caml_string_of_jsbytes("184700"), - cst_2$116=caml_string_of_jsbytes("2"), - cst_191200=caml_string_of_jsbytes("191200"), - cst_3$100=caml_string_of_jsbytes("3"), - cst_197700$0=caml_string_of_jsbytes("197700"), - cst_4$96=caml_string_of_jsbytes("4"), - cst_204200=caml_string_of_jsbytes("204200"), - cst_5$154=caml_string_of_jsbytes("5"), - cst_218700=caml_string_of_jsbytes("218700"), - cst_5$155=caml_string_of_jsbytes("5"), - cst_19100$1=caml_string_of_jsbytes("19100"), - cst_218700$0=caml_string_of_jsbytes("218700"), - cst_0$391=caml_string_of_jsbytes("0"), - cst_130600=caml_string_of_jsbytes("130600"), - cst_158400=caml_string_of_jsbytes("158400"), - cst_1$274=caml_string_of_jsbytes("1"), - cst_172600=caml_string_of_jsbytes("172600"), - cst_2$117=caml_string_of_jsbytes("2"), - cst_179800$0=caml_string_of_jsbytes("179800"), - cst_3$101=caml_string_of_jsbytes("3"), - cst_187000=caml_string_of_jsbytes("187000"), - cst_4$97=caml_string_of_jsbytes("4"), - cst_194200=caml_string_of_jsbytes("194200"), - cst_5$156=caml_string_of_jsbytes("5"), - cst_208600$0=caml_string_of_jsbytes("208600"), - cst_5$157=caml_string_of_jsbytes("5"), - cst_18200=caml_string_of_jsbytes("18200"), - cst_208600$1=caml_string_of_jsbytes("208600"), - cst_0$386=caml_string_of_jsbytes("0"), - cst_160400=caml_string_of_jsbytes("160400"), - cst_193400=caml_string_of_jsbytes("193400"), - cst_1$269=caml_string_of_jsbytes("1"), - cst_207800=caml_string_of_jsbytes("207800"), - cst_2$112=caml_string_of_jsbytes("2"), - cst_213700=caml_string_of_jsbytes("213700"), - cst_3$96=caml_string_of_jsbytes("3"), - cst_219600=caml_string_of_jsbytes("219600"), - cst_4$92=caml_string_of_jsbytes("4"), - cst_225500$0=caml_string_of_jsbytes("225500"), - cst_5$146=caml_string_of_jsbytes("5"), - cst_230500$1=caml_string_of_jsbytes("230500"), - cst_5$147=caml_string_of_jsbytes("5"), - cst_20000=caml_string_of_jsbytes("20000"), - cst_230500$2=caml_string_of_jsbytes("230500"), - cst_0$387=caml_string_of_jsbytes("0"), - cst_140800$0=caml_string_of_jsbytes("140800"), - cst_172500$0=caml_string_of_jsbytes("172500"), - cst_1$270=caml_string_of_jsbytes("1"), - cst_186700=caml_string_of_jsbytes("186700"), - cst_2$113=caml_string_of_jsbytes("2"), - cst_193300=caml_string_of_jsbytes("193300"), - cst_3$97=caml_string_of_jsbytes("3"), - cst_199900$1=caml_string_of_jsbytes("199900"), - cst_4$93=caml_string_of_jsbytes("4"), - cst_206500=caml_string_of_jsbytes("206500"), - cst_5$148=caml_string_of_jsbytes("5"), - cst_221100=caml_string_of_jsbytes("221100"), - cst_5$149=caml_string_of_jsbytes("5"), - cst_19300$0=caml_string_of_jsbytes("19300"), - cst_221100$0=caml_string_of_jsbytes("221100"), - cst_0$388=caml_string_of_jsbytes("0"), - cst_132000$0=caml_string_of_jsbytes("132000"), - cst_180100$1=caml_string_of_jsbytes("180100"), - cst_1$271=caml_string_of_jsbytes("1"), - cst_174500=caml_string_of_jsbytes("174500"), - cst_2$114=caml_string_of_jsbytes("2"), - cst_181800$0=caml_string_of_jsbytes("181800"), - cst_3$98=caml_string_of_jsbytes("3"), - cst_189100=caml_string_of_jsbytes("189100"), - cst_4$94=caml_string_of_jsbytes("4"), - cst_196400=caml_string_of_jsbytes("196400"), - cst_5$150=caml_string_of_jsbytes("5"), - cst_210900=caml_string_of_jsbytes("210900"), - cst_5$151=caml_string_of_jsbytes("5"), - cst_18400=caml_string_of_jsbytes("18400"), - cst_210900$0=caml_string_of_jsbytes("210900"), - cst_0$383=caml_string_of_jsbytes("0"), - cst_163300=caml_string_of_jsbytes("163300"), - cst_196900=caml_string_of_jsbytes("196900"), - cst_1$266=caml_string_of_jsbytes("1"), - cst_211600=caml_string_of_jsbytes("211600"), - cst_2$109=caml_string_of_jsbytes("2"), - cst_217600$0=caml_string_of_jsbytes("217600"), - cst_3$93=caml_string_of_jsbytes("3"), - cst_223600=caml_string_of_jsbytes("223600"), - cst_4$89=caml_string_of_jsbytes("4"), - cst_229600=caml_string_of_jsbytes("229600"), - cst_5$140=caml_string_of_jsbytes("5"), - cst_234600=caml_string_of_jsbytes("234600"), - cst_5$141=caml_string_of_jsbytes("5"), - cst_20400=caml_string_of_jsbytes("20400"), - cst_234600$0=caml_string_of_jsbytes("234600"), - cst_0$384=caml_string_of_jsbytes("0"), - cst_143300=caml_string_of_jsbytes("143300"), - cst_175600=caml_string_of_jsbytes("175600"), - cst_1$267=caml_string_of_jsbytes("1"), - cst_190100=caml_string_of_jsbytes("190100"), - cst_2$110=caml_string_of_jsbytes("2"), - cst_196600=caml_string_of_jsbytes("196600"), - cst_3$94=caml_string_of_jsbytes("3"), - cst_203500=caml_string_of_jsbytes("203500"), - cst_4$90=caml_string_of_jsbytes("4"), - cst_210200=caml_string_of_jsbytes("210200"), - cst_5$142=caml_string_of_jsbytes("5"), - cst_225100=caml_string_of_jsbytes("225100"), - cst_5$143=caml_string_of_jsbytes("5"), - cst_19600=caml_string_of_jsbytes("19600"), - cst_225100$0=caml_string_of_jsbytes("225100"), - cst_0$385=caml_string_of_jsbytes("0"), - cst_134400=caml_string_of_jsbytes("134400"), - cst_163000$0=caml_string_of_jsbytes("163000"), - cst_1$268=caml_string_of_jsbytes("1"), - cst_177700=caml_string_of_jsbytes("177700"), - cst_2$111=caml_string_of_jsbytes("2"), - cst_185100=caml_string_of_jsbytes("185100"), - cst_3$95=caml_string_of_jsbytes("3"), - cst_192500$0=caml_string_of_jsbytes("192500"), - cst_4$91=caml_string_of_jsbytes("4"), - cst_199900$0=caml_string_of_jsbytes("199900"), - cst_5$144=caml_string_of_jsbytes("5"), - cst_214700=caml_string_of_jsbytes("214700"), - cst_5$145=caml_string_of_jsbytes("5"), - cst_18700=caml_string_of_jsbytes("18700"), - cst_214700$0=caml_string_of_jsbytes("214700"), - cst_0$380=caml_string_of_jsbytes("0"), - cst_167200=caml_string_of_jsbytes("167200"), - cst_201600=caml_string_of_jsbytes("201600"), - cst_1$263=caml_string_of_jsbytes("1"), - cst_216700=caml_string_of_jsbytes("216700"), - cst_2$106=caml_string_of_jsbytes("2"), - cst_222800=caml_string_of_jsbytes("222800"), - cst_3$90=caml_string_of_jsbytes("3"), - cst_229000=caml_string_of_jsbytes("229000"), - cst_4$86=caml_string_of_jsbytes("4"), - cst_235100=caml_string_of_jsbytes("235100"), - cst_5$134=caml_string_of_jsbytes("5"), - cst_240200=caml_string_of_jsbytes("240200"), - cst_5$135=caml_string_of_jsbytes("5"), - cst_20900$0=caml_string_of_jsbytes("20900"), - cst_240200$0=caml_string_of_jsbytes("240200"), - cst_0$381=caml_string_of_jsbytes("0"), - cst_146700=caml_string_of_jsbytes("146700"), - cst_179800=caml_string_of_jsbytes("179800"), - cst_1$264=caml_string_of_jsbytes("1"), - cst_194700=caml_string_of_jsbytes("194700"), - cst_2$107=caml_string_of_jsbytes("2"), - cst_201500=caml_string_of_jsbytes("201500"), - cst_3$91=caml_string_of_jsbytes("3"), - cst_208400=caml_string_of_jsbytes("208400"), - cst_4$87=caml_string_of_jsbytes("4"), - cst_215200=caml_string_of_jsbytes("215200"), - cst_5$136=caml_string_of_jsbytes("5"), - cst_230500=caml_string_of_jsbytes("230500"), - cst_5$137=caml_string_of_jsbytes("5"), - cst_20100$0=caml_string_of_jsbytes("20100"), - cst_230500$0=caml_string_of_jsbytes("230500"), - cst_0$382=caml_string_of_jsbytes("0"), - cst_137600=caml_string_of_jsbytes("137600"), - cst_166900=caml_string_of_jsbytes("166900"), - cst_1$265=caml_string_of_jsbytes("1"), - cst_182000=caml_string_of_jsbytes("182000"), - cst_2$108=caml_string_of_jsbytes("2"), - cst_189500=caml_string_of_jsbytes("189500"), - cst_3$92=caml_string_of_jsbytes("3"), - cst_197100=caml_string_of_jsbytes("197100"), - cst_4$88=caml_string_of_jsbytes("4"), - cst_204700$0=caml_string_of_jsbytes("204700"), - cst_5$138=caml_string_of_jsbytes("5"), - cst_219900=caml_string_of_jsbytes("219900"), - cst_5$139=caml_string_of_jsbytes("5"), - cst_19100$0=caml_string_of_jsbytes("19100"), - cst_219900$0=caml_string_of_jsbytes("219900"), - cst_0$377=caml_string_of_jsbytes("0"), - cst_167400=caml_string_of_jsbytes("167400"), - cst_201800=caml_string_of_jsbytes("201800"), - cst_1$260=caml_string_of_jsbytes("1"), - cst_216900=caml_string_of_jsbytes("216900"), - cst_2$103=caml_string_of_jsbytes("2"), - cst_223000=caml_string_of_jsbytes("223000"), - cst_3$87=caml_string_of_jsbytes("3"), - cst_229200=caml_string_of_jsbytes("229200"), - cst_4$83=caml_string_of_jsbytes("4"), - cst_235300=caml_string_of_jsbytes("235300"), - cst_5$128=caml_string_of_jsbytes("5"), - cst_240400=caml_string_of_jsbytes("240400"), - cst_5$129=caml_string_of_jsbytes("5"), - cst_20900=caml_string_of_jsbytes("20900"), - cst_240400$0=caml_string_of_jsbytes("240400"), - cst_0$378=caml_string_of_jsbytes("0"), - cst_146800=caml_string_of_jsbytes("146800"), - cst_180000=caml_string_of_jsbytes("180000"), - cst_1$261=caml_string_of_jsbytes("1"), - cst_194900=caml_string_of_jsbytes("194900"), - cst_2$104=caml_string_of_jsbytes("2"), - cst_201700$0=caml_string_of_jsbytes("201700"), - cst_3$88=caml_string_of_jsbytes("3"), - cst_208600=caml_string_of_jsbytes("208600"), - cst_4$84=caml_string_of_jsbytes("4"), - cst_215400=caml_string_of_jsbytes("215400"), - cst_5$130=caml_string_of_jsbytes("5"), - cst_230700=caml_string_of_jsbytes("230700"), - cst_5$131=caml_string_of_jsbytes("5"), - cst_20100=caml_string_of_jsbytes("20100"), - cst_230700$0=caml_string_of_jsbytes("230700"), - cst_0$379=caml_string_of_jsbytes("0"), - cst_137700=caml_string_of_jsbytes("137700"), - cst_167100=caml_string_of_jsbytes("167100"), - cst_1$262=caml_string_of_jsbytes("1"), - cst_182200=caml_string_of_jsbytes("182200"), - cst_2$105=caml_string_of_jsbytes("2"), - cst_189700=caml_string_of_jsbytes("189700"), - cst_3$89=caml_string_of_jsbytes("3"), - cst_197300=caml_string_of_jsbytes("197300"), - cst_4$85=caml_string_of_jsbytes("4"), - cst_204900=caml_string_of_jsbytes("204900"), - cst_5$132=caml_string_of_jsbytes("5"), - cst_220100=caml_string_of_jsbytes("220100"), - cst_5$133=caml_string_of_jsbytes("5"), - cst_19100=caml_string_of_jsbytes("19100"), - cst_220100$0=caml_string_of_jsbytes("220100"), - cst_0$374=caml_string_of_jsbytes("0"), - cst_169100=caml_string_of_jsbytes("169100"), - cst_203800=caml_string_of_jsbytes("203800"), - cst_1$257=caml_string_of_jsbytes("1"), - cst_219100=caml_string_of_jsbytes("219100"), - cst_2$100=caml_string_of_jsbytes("2"), - cst_225200=caml_string_of_jsbytes("225200"), - cst_3$84=caml_string_of_jsbytes("3"), - cst_231500=caml_string_of_jsbytes("231500"), - cst_4$80=caml_string_of_jsbytes("4"), - cst_237700=caml_string_of_jsbytes("237700"), - cst_5$122=caml_string_of_jsbytes("5"), - cst_242800$1=caml_string_of_jsbytes("242800"), - cst_5$123=caml_string_of_jsbytes("5"), - cst_21100=caml_string_of_jsbytes("21100"), - cst_242800$2=caml_string_of_jsbytes("242800"), - cst_0$375=caml_string_of_jsbytes("0"), - cst_148300=caml_string_of_jsbytes("148300"), - cst_181800=caml_string_of_jsbytes("181800"), - cst_1$258=caml_string_of_jsbytes("1"), - cst_196800=caml_string_of_jsbytes("196800"), - cst_2$101=caml_string_of_jsbytes("2"), - cst_203700=caml_string_of_jsbytes("203700"), - cst_3$85=caml_string_of_jsbytes("3"), - cst_210700=caml_string_of_jsbytes("210700"), - cst_4$81=caml_string_of_jsbytes("4"), - cst_217600=caml_string_of_jsbytes("217600"), - cst_5$124=caml_string_of_jsbytes("5"), - cst_233000=caml_string_of_jsbytes("233000"), - cst_5$125=caml_string_of_jsbytes("5"), - cst_20300=caml_string_of_jsbytes("20300"), - cst_233000$0=caml_string_of_jsbytes("233000"), - cst_0$376=caml_string_of_jsbytes("0"), - cst_139100=caml_string_of_jsbytes("139100"), - cst_168800=caml_string_of_jsbytes("168800"), - cst_1$259=caml_string_of_jsbytes("1"), - cst_184000$1=caml_string_of_jsbytes("184000"), - cst_2$102=caml_string_of_jsbytes("2"), - cst_191600=caml_string_of_jsbytes("191600"), - cst_3$86=caml_string_of_jsbytes("3"), - cst_199300=caml_string_of_jsbytes("199300"), - cst_4$82=caml_string_of_jsbytes("4"), - cst_206900=caml_string_of_jsbytes("206900"), - cst_5$126=caml_string_of_jsbytes("5"), - cst_222300=caml_string_of_jsbytes("222300"), - cst_5$127=caml_string_of_jsbytes("5"), - cst_19300=caml_string_of_jsbytes("19300"), - cst_222300$0=caml_string_of_jsbytes("222300"), - cst_0$371=caml_string_of_jsbytes("0"), - cst_171100=caml_string_of_jsbytes("171100"), - cst_206200=caml_string_of_jsbytes("206200"), - cst_1$254=caml_string_of_jsbytes("1"), - cst_221700=caml_string_of_jsbytes("221700"), - cst_2$97=caml_string_of_jsbytes("2"), - cst_227900=caml_string_of_jsbytes("227900"), - cst_3$81=caml_string_of_jsbytes("3"), - cst_234300=caml_string_of_jsbytes("234300"), - cst_4$77=caml_string_of_jsbytes("4"), - cst_240600=caml_string_of_jsbytes("240600"), - cst_5$116=caml_string_of_jsbytes("5"), - cst_245700=caml_string_of_jsbytes("245700"), - cst_5$117=caml_string_of_jsbytes("5"), - cst_21400=caml_string_of_jsbytes("21400"), - cst_245700$0=caml_string_of_jsbytes("245700"), - cst_0$372=caml_string_of_jsbytes("0"), - cst_150100=caml_string_of_jsbytes("150100"), - cst_184000$0=caml_string_of_jsbytes("184000"), - cst_1$255=caml_string_of_jsbytes("1"), - cst_199200=caml_string_of_jsbytes("199200"), - cst_2$98=caml_string_of_jsbytes("2"), - cst_206100=caml_string_of_jsbytes("206100"), - cst_3$82=caml_string_of_jsbytes("3"), - cst_213200=caml_string_of_jsbytes("213200"), - cst_4$78=caml_string_of_jsbytes("4"), - cst_220200=caml_string_of_jsbytes("220200"), - cst_5$118=caml_string_of_jsbytes("5"), - cst_235800=caml_string_of_jsbytes("235800"), - cst_5$119=caml_string_of_jsbytes("5"), - cst_20500=caml_string_of_jsbytes("20500"), - cst_235800$0=caml_string_of_jsbytes("235800"), - cst_0$373=caml_string_of_jsbytes("0"), - cst_140800=caml_string_of_jsbytes("140800"), - cst_170800=caml_string_of_jsbytes("170800"), - cst_1$256=caml_string_of_jsbytes("1"), - cst_186200=caml_string_of_jsbytes("186200"), - cst_2$99=caml_string_of_jsbytes("2"), - cst_193900=caml_string_of_jsbytes("193900"), - cst_3$83=caml_string_of_jsbytes("3"), - cst_201700=caml_string_of_jsbytes("201700"), - cst_4$79=caml_string_of_jsbytes("4"), - cst_209400=caml_string_of_jsbytes("209400"), - cst_5$120=caml_string_of_jsbytes("5"), - cst_225000=caml_string_of_jsbytes("225000"), - cst_5$121=caml_string_of_jsbytes("5"), - cst_19500=caml_string_of_jsbytes("19500"), - cst_225000$0=caml_string_of_jsbytes("225000"), - cst_0$368=caml_string_of_jsbytes("0"), - cst_26084=caml_string_of_jsbytes("26084"), - cst_31435=caml_string_of_jsbytes("31435"), - cst_1$251=caml_string_of_jsbytes("1"), - cst_33798=caml_string_of_jsbytes("33798"), - cst_2$94=caml_string_of_jsbytes("2"), - cst_34743=caml_string_of_jsbytes("34743"), - cst_3$78=caml_string_of_jsbytes("3"), - cst_35719=caml_string_of_jsbytes("35719"), - cst_4$74=caml_string_of_jsbytes("4"), - cst_36679=caml_string_of_jsbytes("36679"), - cst_5$110=caml_string_of_jsbytes("5"), - cst_37457=caml_string_of_jsbytes("37457"), - cst_5$111=caml_string_of_jsbytes("5"), - cst_3262=caml_string_of_jsbytes("3262"), - cst_37457$0=caml_string_of_jsbytes("37457"), - cst_0$369=caml_string_of_jsbytes("0"), - cst_22883=caml_string_of_jsbytes("22883"), - cst_28051=caml_string_of_jsbytes("28051"), - cst_1$252=caml_string_of_jsbytes("1"), - cst_30368=caml_string_of_jsbytes("30368"), - cst_2$95=caml_string_of_jsbytes("2"), - cst_31420=caml_string_of_jsbytes("31420"), - cst_3$79=caml_string_of_jsbytes("3"), - cst_32502=caml_string_of_jsbytes("32502"), - cst_4$75=caml_string_of_jsbytes("4"), - cst_33569=caml_string_of_jsbytes("33569"), - cst_5$112=caml_string_of_jsbytes("5"), - cst_35947=caml_string_of_jsbytes("35947"), - cst_5$113=caml_string_of_jsbytes("5"), - cst_3125=caml_string_of_jsbytes("3125"), - cst_35947$0=caml_string_of_jsbytes("35947"), - cst_0$370=caml_string_of_jsbytes("0"), - cst_21465=caml_string_of_jsbytes("21465"), - cst_26038=caml_string_of_jsbytes("26038"), - cst_1$253=caml_string_of_jsbytes("1"), - cst_28386=caml_string_of_jsbytes("28386"), - cst_2$96=caml_string_of_jsbytes("2"), - cst_29560=caml_string_of_jsbytes("29560"), - cst_3$80=caml_string_of_jsbytes("3"), - cst_30749=caml_string_of_jsbytes("30749"), - cst_4$76=caml_string_of_jsbytes("4"), - cst_31923=caml_string_of_jsbytes("31923"), - cst_5$114=caml_string_of_jsbytes("5"), - cst_34301=caml_string_of_jsbytes("34301"), - cst_5$115=caml_string_of_jsbytes("5"), - cst_2973=caml_string_of_jsbytes("2973"), - cst_34301$0=caml_string_of_jsbytes("34301"), - cst_0$365=caml_string_of_jsbytes("0"), - cst_26397=caml_string_of_jsbytes("26397"), - cst_31812=caml_string_of_jsbytes("31812"), - cst_1$248=caml_string_of_jsbytes("1"), - cst_34204=caml_string_of_jsbytes("34204"), - cst_2$91=caml_string_of_jsbytes("2"), - cst_35160=caml_string_of_jsbytes("35160"), - cst_3$75=caml_string_of_jsbytes("3"), - cst_36148=caml_string_of_jsbytes("36148"), - cst_4$71=caml_string_of_jsbytes("4"), - cst_37119=caml_string_of_jsbytes("37119"), - cst_5$104=caml_string_of_jsbytes("5"), - cst_37906=caml_string_of_jsbytes("37906"), - cst_5$105=caml_string_of_jsbytes("5"), - cst_3301=caml_string_of_jsbytes("3301"), - cst_37906$0=caml_string_of_jsbytes("37906"), - cst_0$366=caml_string_of_jsbytes("0"), - cst_23158=caml_string_of_jsbytes("23158"), - cst_28388=caml_string_of_jsbytes("28388"), - cst_1$249=caml_string_of_jsbytes("1"), - cst_30732=caml_string_of_jsbytes("30732"), - cst_2$92=caml_string_of_jsbytes("2"), - cst_31797$1=caml_string_of_jsbytes("31797"), - cst_3$76=caml_string_of_jsbytes("3"), - cst_32892=caml_string_of_jsbytes("32892"), - cst_4$72=caml_string_of_jsbytes("4"), - cst_33972=caml_string_of_jsbytes("33972"), - cst_5$106=caml_string_of_jsbytes("5"), - cst_36378=caml_string_of_jsbytes("36378"), - cst_5$107=caml_string_of_jsbytes("5"), - cst_3163=caml_string_of_jsbytes("3163"), - cst_36378$0=caml_string_of_jsbytes("36378"), - cst_0$367=caml_string_of_jsbytes("0"), - cst_21723=caml_string_of_jsbytes("21723"), - cst_26350=caml_string_of_jsbytes("26350"), - cst_1$250=caml_string_of_jsbytes("1"), - cst_28727=caml_string_of_jsbytes("28727"), - cst_2$93=caml_string_of_jsbytes("2"), - cst_29915=caml_string_of_jsbytes("29915"), - cst_3$77=caml_string_of_jsbytes("3"), - cst_31118=caml_string_of_jsbytes("31118"), - cst_4$73=caml_string_of_jsbytes("4"), - cst_32306=caml_string_of_jsbytes("32306"), - cst_5$108=caml_string_of_jsbytes("5"), - cst_34713=caml_string_of_jsbytes("34713"), - cst_5$109=caml_string_of_jsbytes("5"), - cst_3009=caml_string_of_jsbytes("3009"), - cst_34713$0=caml_string_of_jsbytes("34713"), - cst_0$362=caml_string_of_jsbytes("0"), - cst_26714$0=caml_string_of_jsbytes("26714"), - cst_32194=caml_string_of_jsbytes("32194"), - cst_1$245=caml_string_of_jsbytes("1"), - cst_34614=caml_string_of_jsbytes("34614"), - cst_2$88=caml_string_of_jsbytes("2"), - cst_35582=caml_string_of_jsbytes("35582"), - cst_3$72=caml_string_of_jsbytes("3"), - cst_36582=caml_string_of_jsbytes("36582"), - cst_4$68=caml_string_of_jsbytes("4"), - cst_37564=caml_string_of_jsbytes("37564"), - cst_5$98=caml_string_of_jsbytes("5"), - cst_38361=caml_string_of_jsbytes("38361"), - cst_5$99=caml_string_of_jsbytes("5"), - cst_3341=caml_string_of_jsbytes("3341"), - cst_38361$0=caml_string_of_jsbytes("38361"), - cst_0$363=caml_string_of_jsbytes("0"), - cst_23436=caml_string_of_jsbytes("23436"), - cst_28729=caml_string_of_jsbytes("28729"), - cst_1$246=caml_string_of_jsbytes("1"), - cst_31101=caml_string_of_jsbytes("31101"), - cst_2$89=caml_string_of_jsbytes("2"), - cst_32179=caml_string_of_jsbytes("32179"), - cst_3$73=caml_string_of_jsbytes("3"), - cst_33287=caml_string_of_jsbytes("33287"), - cst_4$69=caml_string_of_jsbytes("4"), - cst_34380=caml_string_of_jsbytes("34380"), - cst_5$100=caml_string_of_jsbytes("5"), - cst_36815=caml_string_of_jsbytes("36815"), - cst_5$101=caml_string_of_jsbytes("5"), - cst_3201=caml_string_of_jsbytes("3201"), - cst_36815$0=caml_string_of_jsbytes("36815"), - cst_0$364=caml_string_of_jsbytes("0"), - cst_21984=caml_string_of_jsbytes("21984"), - cst_26666=caml_string_of_jsbytes("26666"), - cst_1$247=caml_string_of_jsbytes("1"), - cst_29072=caml_string_of_jsbytes("29072"), - cst_2$90=caml_string_of_jsbytes("2"), - cst_30274=caml_string_of_jsbytes("30274"), - cst_3$74=caml_string_of_jsbytes("3"), - cst_31491=caml_string_of_jsbytes("31491"), - cst_4$70=caml_string_of_jsbytes("4"), - cst_32694=caml_string_of_jsbytes("32694"), - cst_5$102=caml_string_of_jsbytes("5"), - cst_35130=caml_string_of_jsbytes("35130"), - cst_5$103=caml_string_of_jsbytes("5"), - cst_3045=caml_string_of_jsbytes("3045"), - cst_35130$0=caml_string_of_jsbytes("35130"), - cst_0$359=caml_string_of_jsbytes("0"), - cst_27195=caml_string_of_jsbytes("27195"), - cst_32773=caml_string_of_jsbytes("32773"), - cst_1$242=caml_string_of_jsbytes("1"), - cst_35237=caml_string_of_jsbytes("35237"), - cst_2$85=caml_string_of_jsbytes("2"), - cst_36222=caml_string_of_jsbytes("36222"), - cst_3$69=caml_string_of_jsbytes("3"), - cst_37240=caml_string_of_jsbytes("37240"), - cst_4$65=caml_string_of_jsbytes("4"), - cst_38240=caml_string_of_jsbytes("38240"), - cst_5$92=caml_string_of_jsbytes("5"), - cst_39051=caml_string_of_jsbytes("39051"), - cst_5$93=caml_string_of_jsbytes("5"), - cst_3401=caml_string_of_jsbytes("3401"), - cst_39051$0=caml_string_of_jsbytes("39051"), - cst_0$360=caml_string_of_jsbytes("0"), - cst_23858=caml_string_of_jsbytes("23858"), - cst_29246=caml_string_of_jsbytes("29246"), - cst_1$243=caml_string_of_jsbytes("1"), - cst_31661=caml_string_of_jsbytes("31661"), - cst_2$86=caml_string_of_jsbytes("2"), - cst_32758=caml_string_of_jsbytes("32758"), - cst_3$70=caml_string_of_jsbytes("3"), - cst_33886=caml_string_of_jsbytes("33886"), - cst_4$66=caml_string_of_jsbytes("4"), - cst_34999=caml_string_of_jsbytes("34999"), - cst_5$94=caml_string_of_jsbytes("5"), - cst_37478=caml_string_of_jsbytes("37478"), - cst_5$95=caml_string_of_jsbytes("5"), - cst_3259=caml_string_of_jsbytes("3259"), - cst_37478$0=caml_string_of_jsbytes("37478"), - cst_0$361=caml_string_of_jsbytes("0"), - cst_22380=caml_string_of_jsbytes("22380"), - cst_27146=caml_string_of_jsbytes("27146"), - cst_1$244=caml_string_of_jsbytes("1"), - cst_29595=caml_string_of_jsbytes("29595"), - cst_2$87=caml_string_of_jsbytes("2"), - cst_30819=caml_string_of_jsbytes("30819"), - cst_3$71=caml_string_of_jsbytes("3"), - cst_32058=caml_string_of_jsbytes("32058"), - cst_4$67=caml_string_of_jsbytes("4"), - cst_33282=caml_string_of_jsbytes("33282"), - cst_5$96=caml_string_of_jsbytes("5"), - cst_35762=caml_string_of_jsbytes("35762"), - cst_5$97=caml_string_of_jsbytes("5"), - cst_3100=caml_string_of_jsbytes("3100"), - cst_35762$0=caml_string_of_jsbytes("35762"), - cst_0$356=caml_string_of_jsbytes("0"), - cst_27956=caml_string_of_jsbytes("27956"), - cst_33691=caml_string_of_jsbytes("33691"), - cst_1$239=caml_string_of_jsbytes("1"), - cst_36224=caml_string_of_jsbytes("36224"), - cst_2$82=caml_string_of_jsbytes("2"), - cst_37236=caml_string_of_jsbytes("37236"), - cst_3$66=caml_string_of_jsbytes("3"), - cst_38283=caml_string_of_jsbytes("38283"), - cst_4$62=caml_string_of_jsbytes("4"), - cst_39311=caml_string_of_jsbytes("39311"), - cst_5$86=caml_string_of_jsbytes("5"), - cst_40144=caml_string_of_jsbytes("40144"), - cst_5$87=caml_string_of_jsbytes("5"), - cst_3496=caml_string_of_jsbytes("3496"), - cst_40144$0=caml_string_of_jsbytes("40144"), - cst_0$357=caml_string_of_jsbytes("0"), - cst_24526=caml_string_of_jsbytes("24526"), - cst_30065=caml_string_of_jsbytes("30065"), - cst_1$240=caml_string_of_jsbytes("1"), - cst_32548=caml_string_of_jsbytes("32548"), - cst_2$83=caml_string_of_jsbytes("2"), - cst_33675=caml_string_of_jsbytes("33675"), - cst_3$67=caml_string_of_jsbytes("3"), - cst_34865$0=caml_string_of_jsbytes("34865"), - cst_4$63=caml_string_of_jsbytes("4"), - cst_35979=caml_string_of_jsbytes("35979"), - cst_5$88=caml_string_of_jsbytes("5"), - cst_38527=caml_string_of_jsbytes("38527"), - cst_5$89=caml_string_of_jsbytes("5"), - cst_3350=caml_string_of_jsbytes("3350"), - cst_38527$0=caml_string_of_jsbytes("38527"), - cst_0$358=caml_string_of_jsbytes("0"), - cst_23007=caml_string_of_jsbytes("23007"), - cst_27906=caml_string_of_jsbytes("27906"), - cst_1$241=caml_string_of_jsbytes("1"), - cst_30424=caml_string_of_jsbytes("30424"), - cst_2$84=caml_string_of_jsbytes("2"), - cst_31682=caml_string_of_jsbytes("31682"), - cst_3$68=caml_string_of_jsbytes("3"), - cst_32956$0=caml_string_of_jsbytes("32956"), - cst_4$64=caml_string_of_jsbytes("4"), - cst_34214=caml_string_of_jsbytes("34214"), - cst_5$90=caml_string_of_jsbytes("5"), - cst_36733=caml_string_of_jsbytes("36733"), - cst_5$91=caml_string_of_jsbytes("5"), - cst_3187=caml_string_of_jsbytes("3187"), - cst_36733$0=caml_string_of_jsbytes("36733"), - cst_0$353=caml_string_of_jsbytes("0"), - cst_28728=caml_string_of_jsbytes("28728"), - cst_34621=caml_string_of_jsbytes("34621"), - cst_1$236=caml_string_of_jsbytes("1"), - cst_37224=caml_string_of_jsbytes("37224"), - cst_2$79=caml_string_of_jsbytes("2"), - cst_38264=caml_string_of_jsbytes("38264"), - cst_3$63=caml_string_of_jsbytes("3"), - cst_39340$0=caml_string_of_jsbytes("39340"), - cst_4$59=caml_string_of_jsbytes("4"), - cst_40396=caml_string_of_jsbytes("40396"), - cst_5$80=caml_string_of_jsbytes("5"), - cst_41252=caml_string_of_jsbytes("41252"), - cst_5$81=caml_string_of_jsbytes("5"), - cst_3592=caml_string_of_jsbytes("3592"), - cst_41252$0=caml_string_of_jsbytes("41252"), - cst_0$354=caml_string_of_jsbytes("0"), - cst_25203=caml_string_of_jsbytes("25203"), - cst_30895=caml_string_of_jsbytes("30895"), - cst_1$237=caml_string_of_jsbytes("1"), - cst_33446=caml_string_of_jsbytes("33446"), - cst_2$80=caml_string_of_jsbytes("2"), - cst_34604=caml_string_of_jsbytes("34604"), - cst_3$64=caml_string_of_jsbytes("3"), - cst_35796=caml_string_of_jsbytes("35796"), - cst_4$60=caml_string_of_jsbytes("4"), - cst_36972=caml_string_of_jsbytes("36972"), - cst_5$82=caml_string_of_jsbytes("5"), - cst_39590=caml_string_of_jsbytes("39590"), - cst_5$83=caml_string_of_jsbytes("5"), - cst_3442=caml_string_of_jsbytes("3442"), - cst_39590$0=caml_string_of_jsbytes("39590"), - cst_0$355=caml_string_of_jsbytes("0"), - cst_23642=caml_string_of_jsbytes("23642"), - cst_28676=caml_string_of_jsbytes("28676"), - cst_1$238=caml_string_of_jsbytes("1"), - cst_31264$0=caml_string_of_jsbytes("31264"), - cst_2$81=caml_string_of_jsbytes("2"), - cst_32556=caml_string_of_jsbytes("32556"), - cst_3$65=caml_string_of_jsbytes("3"), - cst_33866=caml_string_of_jsbytes("33866"), - cst_4$61=caml_string_of_jsbytes("4"), - cst_35158=caml_string_of_jsbytes("35158"), - cst_5$84=caml_string_of_jsbytes("5"), - cst_37778=caml_string_of_jsbytes("37778"), - cst_5$85=caml_string_of_jsbytes("5"), - cst_3275=caml_string_of_jsbytes("3275"), - cst_37778$0=caml_string_of_jsbytes("37778"), - cst_0$350=caml_string_of_jsbytes("0"), - cst_29575=caml_string_of_jsbytes("29575"), - cst_35642=caml_string_of_jsbytes("35642"), - cst_1$233=caml_string_of_jsbytes("1"), - cst_38322=caml_string_of_jsbytes("38322"), - cst_2$76=caml_string_of_jsbytes("2"), - cst_39393=caml_string_of_jsbytes("39393"), - cst_3$60=caml_string_of_jsbytes("3"), - cst_40501=caml_string_of_jsbytes("40501"), - cst_4$56=caml_string_of_jsbytes("4"), - cst_41588=caml_string_of_jsbytes("41588"), - cst_5$74=caml_string_of_jsbytes("5"), - cst_42469=caml_string_of_jsbytes("42469"), - cst_5$75=caml_string_of_jsbytes("5"), - cst_3698=caml_string_of_jsbytes("3698"), - cst_42469$0=caml_string_of_jsbytes("42469"), - cst_0$351=caml_string_of_jsbytes("0"), - cst_25946=caml_string_of_jsbytes("25946"), - cst_31806=caml_string_of_jsbytes("31806"), - cst_1$234=caml_string_of_jsbytes("1"), - cst_34433=caml_string_of_jsbytes("34433"), - cst_2$77=caml_string_of_jsbytes("2"), - cst_35625=caml_string_of_jsbytes("35625"), - cst_3$61=caml_string_of_jsbytes("3"), - cst_36852=caml_string_of_jsbytes("36852"), - cst_4$57=caml_string_of_jsbytes("4"), - cst_38063=caml_string_of_jsbytes("38063"), - cst_5$76=caml_string_of_jsbytes("5"), - cst_40758=caml_string_of_jsbytes("40758"), - cst_5$77=caml_string_of_jsbytes("5"), - cst_3544=caml_string_of_jsbytes("3544"), - cst_40758$0=caml_string_of_jsbytes("40758"), - cst_0$352=caml_string_of_jsbytes("0"), - cst_24339=caml_string_of_jsbytes("24339"), - cst_29522=caml_string_of_jsbytes("29522"), - cst_1$235=caml_string_of_jsbytes("1"), - cst_32186=caml_string_of_jsbytes("32186"), - cst_2$78=caml_string_of_jsbytes("2"), - cst_33516=caml_string_of_jsbytes("33516"), - cst_3$62=caml_string_of_jsbytes("3"), - cst_34865=caml_string_of_jsbytes("34865"), - cst_4$58=caml_string_of_jsbytes("4"), - cst_36195=caml_string_of_jsbytes("36195"), - cst_5$78=caml_string_of_jsbytes("5"), - cst_38892=caml_string_of_jsbytes("38892"), - cst_5$79=caml_string_of_jsbytes("5"), - cst_3372=caml_string_of_jsbytes("3372"), - cst_38892$0=caml_string_of_jsbytes("38892"), - cst_0$347=caml_string_of_jsbytes("0"), - cst_29670=caml_string_of_jsbytes("29670"), - cst_35757=caml_string_of_jsbytes("35757"), - cst_1$230=caml_string_of_jsbytes("1"), - cst_38445=caml_string_of_jsbytes("38445"), - cst_2$73=caml_string_of_jsbytes("2"), - cst_39519=caml_string_of_jsbytes("39519"), - cst_3$57=caml_string_of_jsbytes("3"), - cst_40601=caml_string_of_jsbytes("40601"), - cst_4$53=caml_string_of_jsbytes("4"), - cst_41721=caml_string_of_jsbytes("41721"), - cst_5$68=caml_string_of_jsbytes("5"), - cst_42605=caml_string_of_jsbytes("42605"), - cst_5$69=caml_string_of_jsbytes("5"), - cst_3710=caml_string_of_jsbytes("3710"), - cst_42605$0=caml_string_of_jsbytes("42605"), - cst_0$348=caml_string_of_jsbytes("0"), - cst_26029=caml_string_of_jsbytes("26029"), - cst_31908=caml_string_of_jsbytes("31908"), - cst_1$231=caml_string_of_jsbytes("1"), - cst_34643=caml_string_of_jsbytes("34643"), - cst_2$74=caml_string_of_jsbytes("2"), - cst_35739=caml_string_of_jsbytes("35739"), - cst_3$58=caml_string_of_jsbytes("3"), - cst_36970=caml_string_of_jsbytes("36970"), - cst_4$54=caml_string_of_jsbytes("4"), - cst_38185=caml_string_of_jsbytes("38185"), - cst_5$70=caml_string_of_jsbytes("5"), - cst_40888=caml_string_of_jsbytes("40888"), - cst_5$71=caml_string_of_jsbytes("5"), - cst_3555=caml_string_of_jsbytes("3555"), - cst_40888$0=caml_string_of_jsbytes("40888"), - cst_0$349=caml_string_of_jsbytes("0"), - cst_24417=caml_string_of_jsbytes("24417"), - cst_29616=caml_string_of_jsbytes("29616"), - cst_1$232=caml_string_of_jsbytes("1"), - cst_32289=caml_string_of_jsbytes("32289"), - cst_2$75=caml_string_of_jsbytes("2"), - cst_33623$0=caml_string_of_jsbytes("33623"), - cst_3$59=caml_string_of_jsbytes("3"), - cst_34977=caml_string_of_jsbytes("34977"), - cst_4$55=caml_string_of_jsbytes("4"), - cst_36311=caml_string_of_jsbytes("36311"), - cst_5$72=caml_string_of_jsbytes("5"), - cst_39016=caml_string_of_jsbytes("39016"), - cst_5$73=caml_string_of_jsbytes("5"), - cst_3383=caml_string_of_jsbytes("3383"), - cst_39016$0=caml_string_of_jsbytes("39016"), - cst_0$344=caml_string_of_jsbytes("0"), - cst_29996=caml_string_of_jsbytes("29996"), - cst_36149=caml_string_of_jsbytes("36149"), - cst_1$227=caml_string_of_jsbytes("1"), - cst_38868=caml_string_of_jsbytes("38868"), - cst_2$70=caml_string_of_jsbytes("2"), - cst_39954=caml_string_of_jsbytes("39954"), - cst_3$54=caml_string_of_jsbytes("3"), - cst_41078=caml_string_of_jsbytes("41078"), - cst_4$50=caml_string_of_jsbytes("4"), - cst_42180=caml_string_of_jsbytes("42180"), - cst_5$62=caml_string_of_jsbytes("5"), - cst_43074=caml_string_of_jsbytes("43074"), - cst_5$63=caml_string_of_jsbytes("5"), - cst_3751=caml_string_of_jsbytes("3751"), - cst_43074$0=caml_string_of_jsbytes("43074"), - cst_0$345=caml_string_of_jsbytes("0"), - cst_26315=caml_string_of_jsbytes("26315"), - cst_32259=caml_string_of_jsbytes("32259"), - cst_1$228=caml_string_of_jsbytes("1"), - cst_34923=caml_string_of_jsbytes("34923"), - cst_2$71=caml_string_of_jsbytes("2"), - cst_36132=caml_string_of_jsbytes("36132"), - cst_3$55=caml_string_of_jsbytes("3"), - cst_37373=caml_string_of_jsbytes("37373"), - cst_4$51=caml_string_of_jsbytes("4"), - cst_38605=caml_string_of_jsbytes("38605"), - cst_5$64=caml_string_of_jsbytes("5"), - cst_41338=caml_string_of_jsbytes("41338"), - cst_5$65=caml_string_of_jsbytes("5"), - cst_3594=caml_string_of_jsbytes("3594"), - cst_41338$0=caml_string_of_jsbytes("41338"), - cst_0$346=caml_string_of_jsbytes("0"), - cst_24686=caml_string_of_jsbytes("24686"), - cst_29942=caml_string_of_jsbytes("29942"), - cst_1$229=caml_string_of_jsbytes("1"), - cst_32644=caml_string_of_jsbytes("32644"), - cst_2$72=caml_string_of_jsbytes("2"), - cst_33993=caml_string_of_jsbytes("33993"), - cst_3$56=caml_string_of_jsbytes("3"), - cst_35362=caml_string_of_jsbytes("35362"), - cst_4$52=caml_string_of_jsbytes("4"), - cst_36710=caml_string_of_jsbytes("36710"), - cst_5$66=caml_string_of_jsbytes("5"), - cst_39445=caml_string_of_jsbytes("39445"), - cst_5$67=caml_string_of_jsbytes("5"), - cst_3420=caml_string_of_jsbytes("3420"), - cst_39445$0=caml_string_of_jsbytes("39445"), - cst_0$341=caml_string_of_jsbytes("0"), - cst_30296=caml_string_of_jsbytes("30296"), - cst_36510=caml_string_of_jsbytes("36510"), - cst_1$224=caml_string_of_jsbytes("1"), - cst_39257=caml_string_of_jsbytes("39257"), - cst_2$67=caml_string_of_jsbytes("2"), - cst_40354=caml_string_of_jsbytes("40354"), - cst_3$51=caml_string_of_jsbytes("3"), - cst_41489=caml_string_of_jsbytes("41489"), - cst_4$47=caml_string_of_jsbytes("4"), - cst_42602=caml_string_of_jsbytes("42602"), - cst_5$56=caml_string_of_jsbytes("5"), - cst_43505=caml_string_of_jsbytes("43505"), - cst_5$57=caml_string_of_jsbytes("5"), - cst_3789=caml_string_of_jsbytes("3789"), - cst_43505$0=caml_string_of_jsbytes("43505"), - cst_0$342=caml_string_of_jsbytes("0"), - cst_26578=caml_string_of_jsbytes("26578"), - cst_32582=caml_string_of_jsbytes("32582"), - cst_1$225=caml_string_of_jsbytes("1"), - cst_35272=caml_string_of_jsbytes("35272"), - cst_2$68=caml_string_of_jsbytes("2"), - cst_36493=caml_string_of_jsbytes("36493"), - cst_3$52=caml_string_of_jsbytes("3"), - cst_37751=caml_string_of_jsbytes("37751"), - cst_4$48=caml_string_of_jsbytes("4"), - cst_38991=caml_string_of_jsbytes("38991"), - cst_5$58=caml_string_of_jsbytes("5"), - cst_41751=caml_string_of_jsbytes("41751"), - cst_5$59=caml_string_of_jsbytes("5"), - cst_3630=caml_string_of_jsbytes("3630"), - cst_41751$0=caml_string_of_jsbytes("41751"), - cst_0$343=caml_string_of_jsbytes("0"), - cst_24933=caml_string_of_jsbytes("24933"), - cst_30241=caml_string_of_jsbytes("30241"), - cst_1$226=caml_string_of_jsbytes("1"), - cst_32970=caml_string_of_jsbytes("32970"), - cst_2$69=caml_string_of_jsbytes("2"), - cst_34333=caml_string_of_jsbytes("34333"), - cst_3$53=caml_string_of_jsbytes("3"), - cst_35716=caml_string_of_jsbytes("35716"), - cst_4$49=caml_string_of_jsbytes("4"), - cst_37077=caml_string_of_jsbytes("37077"), - cst_5$60=caml_string_of_jsbytes("5"), - cst_39839=caml_string_of_jsbytes("39839"), - cst_5$61=caml_string_of_jsbytes("5"), - cst_3454=caml_string_of_jsbytes("3454"), - cst_39839$0=caml_string_of_jsbytes("39839"), - cst_0$338=caml_string_of_jsbytes("0"), - cst_30947=caml_string_of_jsbytes("30947"), - cst_37295=caml_string_of_jsbytes("37295"), - cst_1$221=caml_string_of_jsbytes("1"), - cst_40101=caml_string_of_jsbytes("40101"), - cst_2$64=caml_string_of_jsbytes("2"), - cst_41222=caml_string_of_jsbytes("41222"), - cst_3$48=caml_string_of_jsbytes("3"), - cst_42381=caml_string_of_jsbytes("42381"), - cst_4$44=caml_string_of_jsbytes("4"), - cst_43518=caml_string_of_jsbytes("43518"), - cst_5$50=caml_string_of_jsbytes("5"), - cst_44440=caml_string_of_jsbytes("44440"), - cst_5$51=caml_string_of_jsbytes("5"), - cst_3870=caml_string_of_jsbytes("3870"), - cst_44440$0=caml_string_of_jsbytes("44440"), - cst_0$339=caml_string_of_jsbytes("0"), - cst_27149=caml_string_of_jsbytes("27149"), - cst_33283=caml_string_of_jsbytes("33283"), - cst_1$222=caml_string_of_jsbytes("1"), - cst_36030=caml_string_of_jsbytes("36030"), - cst_2$65=caml_string_of_jsbytes("2"), - cst_37278=caml_string_of_jsbytes("37278"), - cst_3$49=caml_string_of_jsbytes("3"), - cst_38563=caml_string_of_jsbytes("38563"), - cst_4$45=caml_string_of_jsbytes("4"), - cst_39829=caml_string_of_jsbytes("39829"), - cst_5$52=caml_string_of_jsbytes("5"), - cst_42649=caml_string_of_jsbytes("42649"), - cst_5$53=caml_string_of_jsbytes("5"), - cst_3708=caml_string_of_jsbytes("3708"), - cst_42659=caml_string_of_jsbytes("42659"), - cst_0$340=caml_string_of_jsbytes("0"), - cst_25469=caml_string_of_jsbytes("25469"), - cst_30891=caml_string_of_jsbytes("30891"), - cst_1$223=caml_string_of_jsbytes("1"), - cst_33679=caml_string_of_jsbytes("33679"), - cst_2$66=caml_string_of_jsbytes("2"), - cst_35071=caml_string_of_jsbytes("35071"), - cst_3$50=caml_string_of_jsbytes("3"), - cst_36484=caml_string_of_jsbytes("36484"), - cst_4$46=caml_string_of_jsbytes("4"), - cst_37874=caml_string_of_jsbytes("37874"), - cst_5$54=caml_string_of_jsbytes("5"), - cst_40696=caml_string_of_jsbytes("40696"), - cst_5$55=caml_string_of_jsbytes("5"), - cst_3528=caml_string_of_jsbytes("3528"), - cst_40696$0=caml_string_of_jsbytes("40696"), - cst_0$335=caml_string_of_jsbytes("0"), - cst_31123=caml_string_of_jsbytes("31123"), - cst_37508=caml_string_of_jsbytes("37508"), - cst_1$218=caml_string_of_jsbytes("1"), - cst_40330=caml_string_of_jsbytes("40330"), - cst_2$61=caml_string_of_jsbytes("2"), - cst_41457=caml_string_of_jsbytes("41457"), - cst_3$45=caml_string_of_jsbytes("3"), - cst_42623=caml_string_of_jsbytes("42623"), - cst_4$41=caml_string_of_jsbytes("4"), - cst_43766=caml_string_of_jsbytes("43766"), - cst_5$44=caml_string_of_jsbytes("5"), - cst_44693=caml_string_of_jsbytes("44693"), - cst_5$45=caml_string_of_jsbytes("5"), - cst_3892=caml_string_of_jsbytes("3892"), - cst_44693$0=caml_string_of_jsbytes("44693"), - cst_0$336=caml_string_of_jsbytes("0"), - cst_27304=caml_string_of_jsbytes("27304"), - cst_33473=caml_string_of_jsbytes("33473"), - cst_1$219=caml_string_of_jsbytes("1"), - cst_36235=caml_string_of_jsbytes("36235"), - cst_2$62=caml_string_of_jsbytes("2"), - cst_37490=caml_string_of_jsbytes("37490"), - cst_3$46=caml_string_of_jsbytes("3"), - cst_38783=caml_string_of_jsbytes("38783"), - cst_4$42=caml_string_of_jsbytes("4"), - cst_40056=caml_string_of_jsbytes("40056"), - cst_5$46=caml_string_of_jsbytes("5"), - cst_42892=caml_string_of_jsbytes("42892"), - cst_5$47=caml_string_of_jsbytes("5"), - cst_3729=caml_string_of_jsbytes("3729"), - cst_42892$0=caml_string_of_jsbytes("42892"), - cst_0$337=caml_string_of_jsbytes("0"), - cst_25614=caml_string_of_jsbytes("25614"), - cst_31067=caml_string_of_jsbytes("31067"), - cst_1$220=caml_string_of_jsbytes("1"), - cst_33871=caml_string_of_jsbytes("33871"), - cst_2$63=caml_string_of_jsbytes("2"), - cst_35271=caml_string_of_jsbytes("35271"), - cst_3$47=caml_string_of_jsbytes("3"), - cst_36692=caml_string_of_jsbytes("36692"), - cst_4$43=caml_string_of_jsbytes("4"), - cst_38090=caml_string_of_jsbytes("38090"), - cst_5$48=caml_string_of_jsbytes("5"), - cst_40928=caml_string_of_jsbytes("40928"), - cst_5$49=caml_string_of_jsbytes("5"), - cst_3548=caml_string_of_jsbytes("3548"), - cst_40928$0=caml_string_of_jsbytes("40928"), - cst_0$332=caml_string_of_jsbytes("0"), - cst_31148=caml_string_of_jsbytes("31148"), - cst_37538=caml_string_of_jsbytes("37538"), - cst_1$215=caml_string_of_jsbytes("1"), - cst_40362=caml_string_of_jsbytes("40362"), - cst_2$58=caml_string_of_jsbytes("2"), - cst_41490=caml_string_of_jsbytes("41490"), - cst_3$42=caml_string_of_jsbytes("3"), - cst_42657=caml_string_of_jsbytes("42657"), - cst_4$38=caml_string_of_jsbytes("4"), - cst_43801=caml_string_of_jsbytes("43801"), - cst_5$38=caml_string_of_jsbytes("5"), - cst_44729=caml_string_of_jsbytes("44729"), - cst_5$39=caml_string_of_jsbytes("5"), - cst_3895=caml_string_of_jsbytes("3895"), - cst_44729$0=caml_string_of_jsbytes("44729"), - cst_0$333=caml_string_of_jsbytes("0"), - cst_27326=caml_string_of_jsbytes("27326"), - cst_33500$0=caml_string_of_jsbytes("33500"), - cst_1$216=caml_string_of_jsbytes("1"), - cst_36264=caml_string_of_jsbytes("36264"), - cst_2$59=caml_string_of_jsbytes("2"), - cst_37520=caml_string_of_jsbytes("37520"), - cst_3$43=caml_string_of_jsbytes("3"), - cst_38814=caml_string_of_jsbytes("38814"), - cst_4$39=caml_string_of_jsbytes("4"), - cst_40088=caml_string_of_jsbytes("40088"), - cst_5$40=caml_string_of_jsbytes("5"), - cst_42926=caml_string_of_jsbytes("42926"), - cst_5$41=caml_string_of_jsbytes("5"), - cst_3732=caml_string_of_jsbytes("3732"), - cst_42926$0=caml_string_of_jsbytes("42926"), - cst_0$334=caml_string_of_jsbytes("0"), - cst_25634=caml_string_of_jsbytes("25634"), - cst_31092=caml_string_of_jsbytes("31092"), - cst_1$217=caml_string_of_jsbytes("1"), - cst_33898=caml_string_of_jsbytes("33898"), - cst_2$60=caml_string_of_jsbytes("2"), - cst_35299=caml_string_of_jsbytes("35299"), - cst_3$44=caml_string_of_jsbytes("3"), - cst_36721=caml_string_of_jsbytes("36721"), - cst_4$40=caml_string_of_jsbytes("4"), - cst_38120=caml_string_of_jsbytes("38120"), - cst_5$42=caml_string_of_jsbytes("5"), - cst_40961=caml_string_of_jsbytes("40961"), - cst_5$43=caml_string_of_jsbytes("5"), - cst_3551=caml_string_of_jsbytes("3551"), - cst_40961$0=caml_string_of_jsbytes("40961"), - cst_0$329=caml_string_of_jsbytes("0"), - cst_31382=caml_string_of_jsbytes("31382"), - cst_37820=caml_string_of_jsbytes("37820"), - cst_1$212=caml_string_of_jsbytes("1"), - cst_40665=caml_string_of_jsbytes("40665"), - cst_2$55=caml_string_of_jsbytes("2"), - cst_41801=caml_string_of_jsbytes("41801"), - cst_3$39=caml_string_of_jsbytes("3"), - cst_42977=caml_string_of_jsbytes("42977"), - cst_4$35=caml_string_of_jsbytes("4"), - cst_44130=caml_string_of_jsbytes("44130"), - cst_5$32=caml_string_of_jsbytes("5"), - cst_45064=caml_string_of_jsbytes("45064"), - cst_5$33=caml_string_of_jsbytes("5"), - cst_3924=caml_string_of_jsbytes("3924"), - cst_45064$0=caml_string_of_jsbytes("45064"), - cst_0$330=caml_string_of_jsbytes("0"), - cst_27531=caml_string_of_jsbytes("27531"), - cst_33751=caml_string_of_jsbytes("33751"), - cst_1$213=caml_string_of_jsbytes("1"), - cst_36536=caml_string_of_jsbytes("36536"), - cst_2$56=caml_string_of_jsbytes("2"), - cst_37801=caml_string_of_jsbytes("37801"), - cst_3$40=caml_string_of_jsbytes("3"), - cst_39105=caml_string_of_jsbytes("39105"), - cst_4$36=caml_string_of_jsbytes("4"), - cst_40389=caml_string_of_jsbytes("40389"), - cst_5$34=caml_string_of_jsbytes("5"), - cst_43248=caml_string_of_jsbytes("43248"), - cst_5$35=caml_string_of_jsbytes("5"), - cst_3760=caml_string_of_jsbytes("3760"), - cst_43248$0=caml_string_of_jsbytes("43248"), - cst_0$331=caml_string_of_jsbytes("0"), - cst_25826=caml_string_of_jsbytes("25826"), - cst_31325=caml_string_of_jsbytes("31325"), - cst_1$214=caml_string_of_jsbytes("1"), - cst_34152=caml_string_of_jsbytes("34152"), - cst_2$57=caml_string_of_jsbytes("2"), - cst_35564=caml_string_of_jsbytes("35564"), - cst_3$41=caml_string_of_jsbytes("3"), - cst_36996=caml_string_of_jsbytes("36996"), - cst_4$37=caml_string_of_jsbytes("4"), - cst_38406=caml_string_of_jsbytes("38406"), - cst_5$36=caml_string_of_jsbytes("5"), - cst_41268=caml_string_of_jsbytes("41268"), - cst_5$37=caml_string_of_jsbytes("5"), - cst_3578=caml_string_of_jsbytes("3578"), - cst_41268$0=caml_string_of_jsbytes("41268"), - cst_0$326=caml_string_of_jsbytes("0"), - cst_31476=caml_string_of_jsbytes("31476"), - cst_37933=caml_string_of_jsbytes("37933"), - cst_1$209=caml_string_of_jsbytes("1"), - cst_40787=caml_string_of_jsbytes("40787"), - cst_2$52=caml_string_of_jsbytes("2"), - cst_41927=caml_string_of_jsbytes("41927"), - cst_3$36=caml_string_of_jsbytes("3"), - cst_43106=caml_string_of_jsbytes("43106"), - cst_4$32=caml_string_of_jsbytes("4"), - cst_44262=caml_string_of_jsbytes("44262"), - cst_5$26=caml_string_of_jsbytes("5"), - cst_45200=caml_string_of_jsbytes("45200"), - cst_5$27=caml_string_of_jsbytes("5"), - cst_3936=caml_string_of_jsbytes("3936"), - cst_45200$0=caml_string_of_jsbytes("45200"), - cst_0$327=caml_string_of_jsbytes("0"), - cst_27614=caml_string_of_jsbytes("27614"), - cst_33853=caml_string_of_jsbytes("33853"), - cst_1$210=caml_string_of_jsbytes("1"), - cst_36646=caml_string_of_jsbytes("36646"), - cst_2$53=caml_string_of_jsbytes("2"), - cst_37915=caml_string_of_jsbytes("37915"), - cst_3$37=caml_string_of_jsbytes("3"), - cst_39222=caml_string_of_jsbytes("39222"), - cst_4$33=caml_string_of_jsbytes("4"), - cst_40510=caml_string_of_jsbytes("40510"), - cst_5$28=caml_string_of_jsbytes("5"), - cst_43378=caml_string_of_jsbytes("43378"), - cst_5$29=caml_string_of_jsbytes("5"), - cst_3771=caml_string_of_jsbytes("3771"), - cst_43378$0=caml_string_of_jsbytes("43378"), - cst_0$328=caml_string_of_jsbytes("0"), - cst_25904=caml_string_of_jsbytes("25904"), - cst_31419=caml_string_of_jsbytes("31419"), - cst_1$211=caml_string_of_jsbytes("1"), - cst_34255=caml_string_of_jsbytes("34255"), - cst_2$54=caml_string_of_jsbytes("2"), - cst_35670=caml_string_of_jsbytes("35670"), - cst_3$38=caml_string_of_jsbytes("3"), - cst_37107=caml_string_of_jsbytes("37107"), - cst_4$34=caml_string_of_jsbytes("4"), - cst_38521=caml_string_of_jsbytes("38521"), - cst_5$30=caml_string_of_jsbytes("5"), - cst_41392=caml_string_of_jsbytes("41392"), - cst_5$31=caml_string_of_jsbytes("5"), - cst_3588=caml_string_of_jsbytes("3588"), - cst_41392$0=caml_string_of_jsbytes("41392"), - cst_500$3=caml_string_of_jsbytes("500"), - cst_1000$4=caml_string_of_jsbytes("1000"), - cst_1500$1=caml_string_of_jsbytes("1500"), - cst_390000=caml_string_of_jsbytes("390000"), - cst_0_0234$1=caml_string_of_jsbytes("0.0234"), - cst_16_25$0=caml_string_of_jsbytes("16.25"), - cst_6$71=caml_string_of_jsbytes("6"), - cst_6$70=caml_string_of_jsbytes("6."), - cst_6$69=caml_string_of_jsbytes("6"), - cst_6$68=caml_string_of_jsbytes("6."), - cst_6$67=caml_string_of_jsbytes("6"), - cst_6$66=caml_string_of_jsbytes("6."), - cst_6$65=caml_string_of_jsbytes("6"), - cst_6$64=caml_string_of_jsbytes("6."), - cst_6$63=caml_string_of_jsbytes("6"), - cst_6$62=caml_string_of_jsbytes("6."), - cst_6_55957$0=caml_string_of_jsbytes("6.55957"), - cst_1$208=caml_string_of_jsbytes("1."), - cst_0$325=caml_string_of_jsbytes("0"), - cst_50$2=caml_string_of_jsbytes("50"), - cst_0$323=caml_string_of_jsbytes("0"), - cst_0$324=caml_string_of_jsbytes("0"), - cst_0$321=caml_string_of_jsbytes("0"), - cst_0$322=caml_string_of_jsbytes("0"), - cst_0$320=caml_string_of_jsbytes("0"), - cst_0$318=caml_string_of_jsbytes("0"), - cst_0$319=caml_string_of_jsbytes("0"), - cst_969$7=caml_string_of_jsbytes("969"), - cst_3767$7=caml_string_of_jsbytes("3767"), - cst_969$5=caml_string_of_jsbytes("969"), - cst_3767$5=caml_string_of_jsbytes("3767"), - cst_6$61=caml_string_of_jsbytes("6."), - cst_969$6=caml_string_of_jsbytes("969"), - cst_3767$6=caml_string_of_jsbytes("3767"), - cst_936$9=caml_string_of_jsbytes("936"), - cst_3640$9=caml_string_of_jsbytes("3640"), - cst_6$60=caml_string_of_jsbytes("6."), - cst_936$10=caml_string_of_jsbytes("936"), - cst_3640$10=caml_string_of_jsbytes("3640"), - cst_936$7=caml_string_of_jsbytes("936"), - cst_3640$7=caml_string_of_jsbytes("3640"), - cst_6$59=caml_string_of_jsbytes("6."), - cst_936$8=caml_string_of_jsbytes("936"), - cst_3640$8=caml_string_of_jsbytes("3640"), - cst_932$3=caml_string_of_jsbytes("932"), - cst_3625$3=caml_string_of_jsbytes("3625"), - cst_6$58=caml_string_of_jsbytes("6."), - cst_932$4=caml_string_of_jsbytes("932"), - cst_3625$4=caml_string_of_jsbytes("3625"), - cst_929$3=caml_string_of_jsbytes("929"), - cst_3614$3=caml_string_of_jsbytes("3614"), - cst_6$57=caml_string_of_jsbytes("6."), - cst_929$4=caml_string_of_jsbytes("929"), - cst_3614$4=caml_string_of_jsbytes("3614"), - cst_0$317=caml_string_of_jsbytes("0"), - cst_5612$3=caml_string_of_jsbytes("5612"), - cst_1272$3=caml_string_of_jsbytes("1272"), - cst_5612$4=caml_string_of_jsbytes("5612"), - cst_0$316=caml_string_of_jsbytes("0"), - cst_5422$3=caml_string_of_jsbytes("5422"), - cst_1229$3=caml_string_of_jsbytes("1229"), - cst_5422$4=caml_string_of_jsbytes("5422"), - cst_0$315=caml_string_of_jsbytes("0"), - cst_5399$3=caml_string_of_jsbytes("5399"), - cst_1224$3=caml_string_of_jsbytes("1224"), - cst_5399$4=caml_string_of_jsbytes("5399"), - cst_8708=caml_string_of_jsbytes("8708"), - cst_13559=caml_string_of_jsbytes("13559"), - cst_21362=caml_string_of_jsbytes("21362"), - cst_33196=caml_string_of_jsbytes("33196"), - cst_17607$0=caml_string_of_jsbytes("17607"), - cst_27365$0=caml_string_of_jsbytes("27365"), - cst_17607=caml_string_of_jsbytes("17607"), - cst_27365=caml_string_of_jsbytes("27365"), - cst_8414=caml_string_of_jsbytes("8414"), - cst_13100=caml_string_of_jsbytes("13100"), - cst_20640=caml_string_of_jsbytes("20640"), - cst_32073=caml_string_of_jsbytes("32073"), - cst_17012$0=caml_string_of_jsbytes("17012"), - cst_26440$0=caml_string_of_jsbytes("26440"), - cst_17012=caml_string_of_jsbytes("17012"), - cst_26440=caml_string_of_jsbytes("26440"), - cst_8379=caml_string_of_jsbytes("8379"), - cst_13045=caml_string_of_jsbytes("13045"), - cst_20554=caml_string_of_jsbytes("20554"), - cst_31939=caml_string_of_jsbytes("31939"), - cst_16941$0=caml_string_of_jsbytes("16941"), - cst_26329$0=caml_string_of_jsbytes("26329"), - cst_16941=caml_string_of_jsbytes("16941"), - cst_26329=caml_string_of_jsbytes("26329"), - cst_1000$3=caml_string_of_jsbytes("1000"), - cst_500$2=caml_string_of_jsbytes("500"), - cst_1500$0=caml_string_of_jsbytes("1500"), - cst_6$56=caml_string_of_jsbytes("6"), - cst_6$55=caml_string_of_jsbytes("6."), - cst_6$54=caml_string_of_jsbytes("6"), - cst_6$53=caml_string_of_jsbytes("6."), - cst_6$52=caml_string_of_jsbytes("6"), - cst_6$51=caml_string_of_jsbytes("6."), - cst_6$50=caml_string_of_jsbytes("6"), - cst_6$49=caml_string_of_jsbytes("6."), - cst_6$48=caml_string_of_jsbytes("6"), - cst_6$47=caml_string_of_jsbytes("6."), - cst_0$314=caml_string_of_jsbytes("0"), - cst_169$2=caml_string_of_jsbytes("169."), - cst_0_55$2=caml_string_of_jsbytes("0.55"), - cst_169$1=caml_string_of_jsbytes("169."), - cst_0_55$1=caml_string_of_jsbytes("0.55"), - cst_12$15=caml_string_of_jsbytes("12."), - cst_0$313=caml_string_of_jsbytes("0"), - cst_0$312=caml_string_of_jsbytes("0"), - cst_0$311=caml_string_of_jsbytes("0"), - cst_258900=caml_string_of_jsbytes("258900"), - cst_9500=caml_string_of_jsbytes("9500"), - cst_0$305=caml_string_of_jsbytes("0"), - cst_0$306=caml_string_of_jsbytes("0"), - cst_2$51=caml_string_of_jsbytes("2"), - cst_90100=caml_string_of_jsbytes("90100"), - cst_135000=caml_string_of_jsbytes("135000"), - cst_0$307=caml_string_of_jsbytes("0"), - cst_0$308=caml_string_of_jsbytes("0"), - cst_0$309=caml_string_of_jsbytes("0"), - cst_0$310=caml_string_of_jsbytes("0"), - cst_0$304=caml_string_of_jsbytes("0"), - cst_0$303=caml_string_of_jsbytes("0"), - cst_0$301=caml_string_of_jsbytes("0"), - cst_0$302=caml_string_of_jsbytes("0"), - cst_50$1=caml_string_of_jsbytes("50"), - cst_0$299=caml_string_of_jsbytes("0"), - cst_0$300=caml_string_of_jsbytes("0"), - cst_0_95$3=caml_string_of_jsbytes("0.95"), - cst_0_95$4=caml_string_of_jsbytes("0.95"), - cst_0$297=caml_string_of_jsbytes("0"), - cst_0$298=caml_string_of_jsbytes("0"), - cst_100$10=caml_string_of_jsbytes("100."), - cst_100$11=caml_string_of_jsbytes("100."), - cst_0_005$2=caml_string_of_jsbytes("0.005"), - cst_12$14=caml_string_of_jsbytes("12."), - cst_0$296=caml_string_of_jsbytes("0."), - cst_0_75$10=caml_string_of_jsbytes("0.75"), - cst_0_75$9=caml_string_of_jsbytes("0.75"), - cst_0_75$8=caml_string_of_jsbytes("0.75"), - cst_0$295=caml_string_of_jsbytes("0"), - cst_0_95$2=caml_string_of_jsbytes("0.95"), - cst_0$293=caml_string_of_jsbytes("0"), - cst_0$294=caml_string_of_jsbytes("0"), - cst_0$292=caml_string_of_jsbytes("0"), - cst_86900=caml_string_of_jsbytes("86900"), - cst_97100=caml_string_of_jsbytes("97100"), - cst_1$207=caml_string_of_jsbytes("1"), - cst_10200=caml_string_of_jsbytes("10200"), - cst_107300=caml_string_of_jsbytes("107300"), - cst_0$289=caml_string_of_jsbytes("0"), - cst_208500$0=caml_string_of_jsbytes("208500"), - cst_251500$0=caml_string_of_jsbytes("251500"), - cst_1$204=caml_string_of_jsbytes("1"), - cst_43000$0=caml_string_of_jsbytes("43000"), - cst_294500$0=caml_string_of_jsbytes("294500"), - cst_0$290=caml_string_of_jsbytes("0"), - cst_186000$0=caml_string_of_jsbytes("186000"), - cst_223900$0=caml_string_of_jsbytes("223900"), - cst_1$205=caml_string_of_jsbytes("1"), - cst_37900$0=caml_string_of_jsbytes("37900"), - cst_261800$0=caml_string_of_jsbytes("261800"), - cst_0$291=caml_string_of_jsbytes("0"), - cst_173600$0=caml_string_of_jsbytes("173600"), - cst_208200$0=caml_string_of_jsbytes("208200"), - cst_1$206=caml_string_of_jsbytes("1"), - cst_34600=caml_string_of_jsbytes("34600"), - cst_242800$0=caml_string_of_jsbytes("242800"), - cst_0$286=caml_string_of_jsbytes("0"), - cst_167800$0=caml_string_of_jsbytes("167800"), - cst_202500$1=caml_string_of_jsbytes("202500"), - cst_1$201=caml_string_of_jsbytes("1"), - cst_34700$0=caml_string_of_jsbytes("34700"), - cst_237200$0=caml_string_of_jsbytes("237200"), - cst_0$287=caml_string_of_jsbytes("0"), - cst_149600$0=caml_string_of_jsbytes("149600"), - cst_180100$0=caml_string_of_jsbytes("180100"), - cst_1$202=caml_string_of_jsbytes("1"), - cst_30500$2=caml_string_of_jsbytes("30500"), - cst_210600$0=caml_string_of_jsbytes("210600"), - cst_0$288=caml_string_of_jsbytes("0"), - cst_139700$0=caml_string_of_jsbytes("139700"), - cst_167600$0=caml_string_of_jsbytes("167600"), - cst_1$203=caml_string_of_jsbytes("1"), - cst_27900$0=caml_string_of_jsbytes("27900"), - cst_195500$0=caml_string_of_jsbytes("195500"), - cst_0$283=caml_string_of_jsbytes("0"), - cst_198100=caml_string_of_jsbytes("198100"), - cst_239000=caml_string_of_jsbytes("239000"), - cst_1$198=caml_string_of_jsbytes("1"), - cst_40900=caml_string_of_jsbytes("40900"), - cst_279900=caml_string_of_jsbytes("279900"), - cst_0$284=caml_string_of_jsbytes("0"), - cst_176800=caml_string_of_jsbytes("176800"), - cst_212800=caml_string_of_jsbytes("212800"), - cst_1$199=caml_string_of_jsbytes("1"), - cst_36000=caml_string_of_jsbytes("36000"), - cst_248800=caml_string_of_jsbytes("248800"), - cst_0$285=caml_string_of_jsbytes("0"), - cst_165000=caml_string_of_jsbytes("165000"), - cst_197900=caml_string_of_jsbytes("197900"), - cst_1$200=caml_string_of_jsbytes("1"), - cst_32900=caml_string_of_jsbytes("32900"), - cst_230800=caml_string_of_jsbytes("230800"), - cst_0$280=caml_string_of_jsbytes("0"), - cst_159500=caml_string_of_jsbytes("159500"), - cst_192500=caml_string_of_jsbytes("192500"), - cst_1$195=caml_string_of_jsbytes("1"), - cst_33000=caml_string_of_jsbytes("33000"), - cst_225500=caml_string_of_jsbytes("225500"), - cst_0$281=caml_string_of_jsbytes("0"), - cst_142200=caml_string_of_jsbytes("142200"), - cst_171200=caml_string_of_jsbytes("171200"), - cst_1$196=caml_string_of_jsbytes("1"), - cst_29000=caml_string_of_jsbytes("29000"), - cst_200200=caml_string_of_jsbytes("200200"), - cst_0$282=caml_string_of_jsbytes("0"), - cst_132800=caml_string_of_jsbytes("132800"), - cst_159300=caml_string_of_jsbytes("159300"), - cst_1$197=caml_string_of_jsbytes("1"), - cst_26500=caml_string_of_jsbytes("26500"), - cst_185800$0=caml_string_of_jsbytes("185800"), - cst_0$277=caml_string_of_jsbytes("0"), - cst_200100=caml_string_of_jsbytes("200100"), - cst_141400=caml_string_of_jsbytes("141400"), - cst_1$192=caml_string_of_jsbytes("1"), - cst_41300=caml_string_of_jsbytes("41300"), - cst_182700=caml_string_of_jsbytes("182700"), - cst_0$278=caml_string_of_jsbytes("0"), - cst_178600=caml_string_of_jsbytes("178600"), - cst_215000=caml_string_of_jsbytes("215000"), - cst_1$193=caml_string_of_jsbytes("1"), - cst_36400=caml_string_of_jsbytes("36400"), - cst_251400=caml_string_of_jsbytes("251400"), - cst_0$279=caml_string_of_jsbytes("0"), - cst_166700=caml_string_of_jsbytes("166700"), - cst_199900=caml_string_of_jsbytes("199900"), - cst_1$194=caml_string_of_jsbytes("1"), - cst_33200=caml_string_of_jsbytes("33200"), - cst_233100=caml_string_of_jsbytes("233100"), - cst_0$274=caml_string_of_jsbytes("0"), - cst_161100=caml_string_of_jsbytes("161100"), - cst_194400=caml_string_of_jsbytes("194400"), - cst_1$189=caml_string_of_jsbytes("1"), - cst_33300=caml_string_of_jsbytes("33300"), - cst_227700=caml_string_of_jsbytes("227700"), - cst_0$275=caml_string_of_jsbytes("0"), - cst_143600=caml_string_of_jsbytes("143600"), - cst_172900=caml_string_of_jsbytes("172900"), - cst_1$190=caml_string_of_jsbytes("1"), - cst_29300=caml_string_of_jsbytes("29300"), - cst_202200=caml_string_of_jsbytes("202200"), - cst_0$276=caml_string_of_jsbytes("0"), - cst_134100=caml_string_of_jsbytes("134100"), - cst_160900=caml_string_of_jsbytes("160900"), - cst_1$191=caml_string_of_jsbytes("1"), - cst_26800=caml_string_of_jsbytes("26800"), - cst_187700=caml_string_of_jsbytes("187700"), - cst_0$271=caml_string_of_jsbytes("0"), - cst_202500$0=caml_string_of_jsbytes("202500"), - cst_244300=caml_string_of_jsbytes("244300"), - cst_1$186=caml_string_of_jsbytes("1"), - cst_41800=caml_string_of_jsbytes("41800"), - cst_286100=caml_string_of_jsbytes("286100"), - cst_0$272=caml_string_of_jsbytes("0"), - cst_180700=caml_string_of_jsbytes("180700"), - cst_217500=caml_string_of_jsbytes("217500"), - cst_1$187=caml_string_of_jsbytes("1"), - cst_36800=caml_string_of_jsbytes("36800"), - cst_254300=caml_string_of_jsbytes("254300"), - cst_0$273=caml_string_of_jsbytes("0"), - cst_168700=caml_string_of_jsbytes("168700"), - cst_202300=caml_string_of_jsbytes("202300"), - cst_1$188=caml_string_of_jsbytes("1"), - cst_33600=caml_string_of_jsbytes("33600"), - cst_235900=caml_string_of_jsbytes("235900"), - cst_0$268=caml_string_of_jsbytes("0"), - cst_30871=caml_string_of_jsbytes("30871"), - cst_37243=caml_string_of_jsbytes("37243"), - cst_1$183=caml_string_of_jsbytes("1"), - cst_6372=caml_string_of_jsbytes("6372"), - cst_43615=caml_string_of_jsbytes("43615"), - cst_0$269=caml_string_of_jsbytes("0"), - cst_27548=caml_string_of_jsbytes("27548"), - cst_33148=caml_string_of_jsbytes("33148"), - cst_1$184=caml_string_of_jsbytes("1"), - cst_5610=caml_string_of_jsbytes("5610"), - cst_38768=caml_string_of_jsbytes("38768"), - cst_0$270=caml_string_of_jsbytes("0"), - cst_25718=caml_string_of_jsbytes("25718"), - cst_30840=caml_string_of_jsbytes("30840"), - cst_1$185=caml_string_of_jsbytes("1"), - cst_5122=caml_string_of_jsbytes("5122"), - cst_35962=caml_string_of_jsbytes("35962"), - cst_0$265=caml_string_of_jsbytes("0"), - cst_163000=caml_string_of_jsbytes("163000"), - cst_196700=caml_string_of_jsbytes("196700"), - cst_1$180=caml_string_of_jsbytes("1"), - cst_33700=caml_string_of_jsbytes("33700"), - cst_230400=caml_string_of_jsbytes("230400"), - cst_0$266=caml_string_of_jsbytes("0"), - cst_145300=caml_string_of_jsbytes("145300"), - cst_175000=caml_string_of_jsbytes("175000"), - cst_1$181=caml_string_of_jsbytes("1"), - cst_29700=caml_string_of_jsbytes("29700"), - cst_204700=caml_string_of_jsbytes("204700"), - cst_0$267=caml_string_of_jsbytes("0"), - cst_135700=caml_string_of_jsbytes("135700"), - cst_162800=caml_string_of_jsbytes("162800"), - cst_1$182=caml_string_of_jsbytes("1"), - cst_27100=caml_string_of_jsbytes("27100"), - cst_189900=caml_string_of_jsbytes("189900"), - cst_0$262=caml_string_of_jsbytes("0"), - cst_24849=caml_string_of_jsbytes("24849"), - cst_29987=caml_string_of_jsbytes("29987"), - cst_1$177=caml_string_of_jsbytes("1"), - cst_5138=caml_string_of_jsbytes("5138"), - cst_35125=caml_string_of_jsbytes("35125"), - cst_0$263=caml_string_of_jsbytes("0"), - cst_22151=caml_string_of_jsbytes("22151"), - cst_26679=caml_string_of_jsbytes("26679"), - cst_1$178=caml_string_of_jsbytes("1"), - cst_4528=caml_string_of_jsbytes("4528"), - cst_31207=caml_string_of_jsbytes("31207"), - cst_0$264=caml_string_of_jsbytes("0"), - cst_20687=caml_string_of_jsbytes("20687"), - cst_24818=caml_string_of_jsbytes("24818"), - cst_1$179=caml_string_of_jsbytes("1"), - cst_4131=caml_string_of_jsbytes("4131"), - cst_28949=caml_string_of_jsbytes("28949"), - cst_0$259=caml_string_of_jsbytes("0"), - cst_31241=caml_string_of_jsbytes("31241"), - cst_37689=caml_string_of_jsbytes("37689"), - cst_1$174=caml_string_of_jsbytes("1"), - cst_6448=caml_string_of_jsbytes("6448"), - cst_44137=caml_string_of_jsbytes("44137"), - cst_0$260=caml_string_of_jsbytes("0"), - cst_27879=caml_string_of_jsbytes("27879"), - cst_33556=caml_string_of_jsbytes("33556"), - cst_1$175=caml_string_of_jsbytes("1"), - cst_5677=caml_string_of_jsbytes("5677"), - cst_39233=caml_string_of_jsbytes("39233"), - cst_0$261=caml_string_of_jsbytes("0"), - cst_26027=caml_string_of_jsbytes("26027"), - cst_31210=caml_string_of_jsbytes("31210"), - cst_1$176=caml_string_of_jsbytes("1"), - cst_5183=caml_string_of_jsbytes("5183"), - cst_36393=caml_string_of_jsbytes("36393"), - cst_0$256=caml_string_of_jsbytes("0"), - cst_25147=caml_string_of_jsbytes("25147"), - cst_30347=caml_string_of_jsbytes("30347"), - cst_1$171=caml_string_of_jsbytes("1"), - cst_5200=caml_string_of_jsbytes("5200"), - cst_35547=caml_string_of_jsbytes("35547"), - cst_0$257=caml_string_of_jsbytes("0"), - cst_22417=caml_string_of_jsbytes("22417"), - cst_26999=caml_string_of_jsbytes("26999"), - cst_1$172=caml_string_of_jsbytes("1"), - cst_4582=caml_string_of_jsbytes("4582"), - cst_31581=caml_string_of_jsbytes("31581"), - cst_0$258=caml_string_of_jsbytes("0"), - cst_20935=caml_string_of_jsbytes("20935"), - cst_25116$0=caml_string_of_jsbytes("25116"), - cst_1$173=caml_string_of_jsbytes("1"), - cst_4181=caml_string_of_jsbytes("4181"), - cst_29297=caml_string_of_jsbytes("29297"), - cst_0$253=caml_string_of_jsbytes("0"), - cst_31616=caml_string_of_jsbytes("31616"), - cst_38141=caml_string_of_jsbytes("38141"), - cst_1$168=caml_string_of_jsbytes("1"), - cst_6525=caml_string_of_jsbytes("6525"), - cst_44666=caml_string_of_jsbytes("44666"), - cst_0$254=caml_string_of_jsbytes("0"), - cst_28214=caml_string_of_jsbytes("28214"), - cst_33959=caml_string_of_jsbytes("33959"), - cst_1$169=caml_string_of_jsbytes("1"), - cst_5745=caml_string_of_jsbytes("5745"), - cst_39704=caml_string_of_jsbytes("39704"), - cst_0$255=caml_string_of_jsbytes("0"), - cst_26339=caml_string_of_jsbytes("26339"), - cst_31584=caml_string_of_jsbytes("31584"), - cst_1$170=caml_string_of_jsbytes("1"), - cst_5245=caml_string_of_jsbytes("5245"), - cst_36829=caml_string_of_jsbytes("36829"), - cst_0$250=caml_string_of_jsbytes("0"), - cst_25449=caml_string_of_jsbytes("25449"), - cst_30711=caml_string_of_jsbytes("30711"), - cst_1$165=caml_string_of_jsbytes("1"), - cst_5262=caml_string_of_jsbytes("5262"), - cst_35973=caml_string_of_jsbytes("35973"), - cst_0$251=caml_string_of_jsbytes("0"), - cst_22686=caml_string_of_jsbytes("22686"), - cst_27323=caml_string_of_jsbytes("27323"), - cst_1$166=caml_string_of_jsbytes("1"), - cst_4637=caml_string_of_jsbytes("4637"), - cst_31960=caml_string_of_jsbytes("31960"), - cst_0$252=caml_string_of_jsbytes("0"), - cst_21186=caml_string_of_jsbytes("21186"), - cst_25417=caml_string_of_jsbytes("25417"), - cst_1$167=caml_string_of_jsbytes("1"), - cst_4231=caml_string_of_jsbytes("4231"), - cst_29648=caml_string_of_jsbytes("29648"), - cst_0$247=caml_string_of_jsbytes("0"), - cst_32185=caml_string_of_jsbytes("32185"), - cst_38827=caml_string_of_jsbytes("38827"), - cst_1$162=caml_string_of_jsbytes("1"), - cst_6642=caml_string_of_jsbytes("6642"), - cst_45469=caml_string_of_jsbytes("45469"), - cst_0$248=caml_string_of_jsbytes("0"), - cst_28722=caml_string_of_jsbytes("28722"), - cst_34570$0=caml_string_of_jsbytes("34570"), - cst_1$163=caml_string_of_jsbytes("1"), - cst_5848=caml_string_of_jsbytes("5848"), - cst_40418=caml_string_of_jsbytes("40418"), - cst_0$249=caml_string_of_jsbytes("0"), - cst_26813=caml_string_of_jsbytes("26813"), - cst_32152=caml_string_of_jsbytes("32152"), - cst_1$164=caml_string_of_jsbytes("1"), - cst_5339=caml_string_of_jsbytes("5339"), - cst_37491=caml_string_of_jsbytes("37491"), - cst_0$244=caml_string_of_jsbytes("0"), - cst_25907=caml_string_of_jsbytes("25907"), - cst_31264=caml_string_of_jsbytes("31264"), - cst_1$159=caml_string_of_jsbytes("1"), - cst_5357=caml_string_of_jsbytes("5357"), - cst_36621=caml_string_of_jsbytes("36621"), - cst_0$245=caml_string_of_jsbytes("0"), - cst_23094=caml_string_of_jsbytes("23094"), - cst_27814=caml_string_of_jsbytes("27814"), - cst_1$160=caml_string_of_jsbytes("1"), - cst_4720=caml_string_of_jsbytes("4720"), - cst_32534=caml_string_of_jsbytes("32534"), - cst_0$246=caml_string_of_jsbytes("0"), - cst_21567=caml_string_of_jsbytes("21567"), - cst_25874=caml_string_of_jsbytes("25874"), - cst_1$161=caml_string_of_jsbytes("1"), - cst_4307=caml_string_of_jsbytes("4307"), - cst_30181=caml_string_of_jsbytes("30181"), - cst_0$241=caml_string_of_jsbytes("0"), - cst_33086=caml_string_of_jsbytes("33086"), - cst_39914=caml_string_of_jsbytes("39914"), - cst_1$156=caml_string_of_jsbytes("1"), - cst_6828=caml_string_of_jsbytes("6828"), - cst_46742=caml_string_of_jsbytes("46742"), - cst_0$242=caml_string_of_jsbytes("0"), - cst_29526=caml_string_of_jsbytes("29526"), - cst_35538=caml_string_of_jsbytes("35538"), - cst_1$157=caml_string_of_jsbytes("1"), - cst_6012=caml_string_of_jsbytes("6012"), - cst_41550=caml_string_of_jsbytes("41550"), - cst_0$243=caml_string_of_jsbytes("0"), - cst_27564=caml_string_of_jsbytes("27564"), - cst_33052=caml_string_of_jsbytes("33052"), - cst_1$158=caml_string_of_jsbytes("1"), - cst_5488=caml_string_of_jsbytes("5488"), - cst_38541=caml_string_of_jsbytes("38541"), - cst_0$238=caml_string_of_jsbytes("0"), - cst_26632=caml_string_of_jsbytes("26632"), - cst_32139=caml_string_of_jsbytes("32139"), - cst_1$153=caml_string_of_jsbytes("1"), - cst_5507=caml_string_of_jsbytes("5507"), - cst_37646=caml_string_of_jsbytes("37646"), - cst_0$239=caml_string_of_jsbytes("0"), - cst_23741=caml_string_of_jsbytes("23741"), - cst_28593=caml_string_of_jsbytes("28593"), - cst_1$154=caml_string_of_jsbytes("1"), - cst_4852=caml_string_of_jsbytes("4852"), - cst_33445=caml_string_of_jsbytes("33445"), - cst_0$240=caml_string_of_jsbytes("0"), - cst_22171=caml_string_of_jsbytes("22171"), - cst_36598=caml_string_of_jsbytes("36598"), - cst_1$155=caml_string_of_jsbytes("1"), - cst_4428=caml_string_of_jsbytes("4428"), - cst_31026=caml_string_of_jsbytes("31026"), - cst_0$235=caml_string_of_jsbytes("0"), - cst_33999=caml_string_of_jsbytes("33999"), - cst_41016=caml_string_of_jsbytes("41016"), - cst_1$150=caml_string_of_jsbytes("1"), - cst_7016=caml_string_of_jsbytes("7016"), - cst_48032=caml_string_of_jsbytes("48032"), - cst_0$236=caml_string_of_jsbytes("0"), - cst_30341=caml_string_of_jsbytes("30341"), - cst_36519=caml_string_of_jsbytes("36519"), - cst_1$151=caml_string_of_jsbytes("1"), - cst_6178=caml_string_of_jsbytes("6178"), - cst_42697=caml_string_of_jsbytes("42697"), - cst_0$237=caml_string_of_jsbytes("0"), - cst_28325=caml_string_of_jsbytes("28325"), - cst_33964=caml_string_of_jsbytes("33964"), - cst_1$152=caml_string_of_jsbytes("1"), - cst_5639=caml_string_of_jsbytes("5639"), - cst_39605=caml_string_of_jsbytes("39605"), - cst_0$232=caml_string_of_jsbytes("0"), - cst_27367=caml_string_of_jsbytes("27367"), - cst_33026=caml_string_of_jsbytes("33026"), - cst_1$147=caml_string_of_jsbytes("1"), - cst_5659=caml_string_of_jsbytes("5659"), - cst_38685=caml_string_of_jsbytes("38685"), - cst_0$233=caml_string_of_jsbytes("0"), - cst_24396=caml_string_of_jsbytes("24396"), - cst_29382=caml_string_of_jsbytes("29382"), - cst_1$148=caml_string_of_jsbytes("1"), - cst_4986$0=caml_string_of_jsbytes("4986"), - cst_34368=caml_string_of_jsbytes("34368"), - cst_0$234=caml_string_of_jsbytes("0"), - cst_22783=caml_string_of_jsbytes("22783"), - cst_27332=caml_string_of_jsbytes("27332"), - cst_1$149=caml_string_of_jsbytes("1"), - cst_4550=caml_string_of_jsbytes("4550"), - cst_31882=caml_string_of_jsbytes("31882"), - cst_0$229=caml_string_of_jsbytes("0"), - cst_35002=caml_string_of_jsbytes("35002"), - cst_42226=caml_string_of_jsbytes("42226"), - cst_1$144=caml_string_of_jsbytes("1"), - cst_7223=caml_string_of_jsbytes("7223"), - cst_49449=caml_string_of_jsbytes("49449"), - cst_0$230=caml_string_of_jsbytes("0"), - cst_31236=caml_string_of_jsbytes("31236"), - cst_37596=caml_string_of_jsbytes("37596"), - cst_1$145=caml_string_of_jsbytes("1"), - cst_6360=caml_string_of_jsbytes("6360"), - cst_43957=caml_string_of_jsbytes("43957"), - cst_0$231=caml_string_of_jsbytes("0"), - cst_29161=caml_string_of_jsbytes("29161"), - cst_34966=caml_string_of_jsbytes("34966"), - cst_1$146=caml_string_of_jsbytes("1"), - cst_5805=caml_string_of_jsbytes("5805"), - cst_40773=caml_string_of_jsbytes("40773"), - cst_0$226=caml_string_of_jsbytes("0"), - cst_28174=caml_string_of_jsbytes("28174"), - cst_34000=caml_string_of_jsbytes("34000"), - cst_1$141=caml_string_of_jsbytes("1"), - cst_5826=caml_string_of_jsbytes("5826"), - cst_39826=caml_string_of_jsbytes("39826"), - cst_0$227=caml_string_of_jsbytes("0"), - cst_25116=caml_string_of_jsbytes("25116"), - cst_30249=caml_string_of_jsbytes("30249"), - cst_1$142=caml_string_of_jsbytes("1"), - cst_5133=caml_string_of_jsbytes("5133"), - cst_35382=caml_string_of_jsbytes("35382"), - cst_0$228=caml_string_of_jsbytes("0"), - cst_23455=caml_string_of_jsbytes("23455"), - cst_28138=caml_string_of_jsbytes("28138"), - cst_1$143=caml_string_of_jsbytes("1"), - cst_4684=caml_string_of_jsbytes("4684"), - cst_32823=caml_string_of_jsbytes("32823"), - cst_0$223=caml_string_of_jsbytes("0"), - cst_35114=caml_string_of_jsbytes("35114"), - cst_42361=caml_string_of_jsbytes("42361"), - cst_1$138=caml_string_of_jsbytes("1"), - cst_7246=caml_string_of_jsbytes("7246"), - cst_49607=caml_string_of_jsbytes("49607"), - cst_0$224=caml_string_of_jsbytes("0"), - cst_31336=caml_string_of_jsbytes("31336"), - cst_37716=caml_string_of_jsbytes("37716"), - cst_1$139=caml_string_of_jsbytes("1"), - cst_6380=caml_string_of_jsbytes("6380"), - cst_44098=caml_string_of_jsbytes("44098"), - cst_0$225=caml_string_of_jsbytes("0"), - cst_29254=caml_string_of_jsbytes("29254"), - cst_35078=caml_string_of_jsbytes("35078"), - cst_1$140=caml_string_of_jsbytes("1"), - cst_5824=caml_string_of_jsbytes("5824"), - cst_40903=caml_string_of_jsbytes("40903"), - cst_0$220=caml_string_of_jsbytes("0"), - cst_28264=caml_string_of_jsbytes("28264"), - cst_34109=caml_string_of_jsbytes("34109"), - cst_1$135=caml_string_of_jsbytes("1"), - cst_5845=caml_string_of_jsbytes("5845"), - cst_39953=caml_string_of_jsbytes("39953"), - cst_0$221=caml_string_of_jsbytes("0"), - cst_25196=caml_string_of_jsbytes("25196"), - cst_30346=caml_string_of_jsbytes("30346"), - cst_1$136=caml_string_of_jsbytes("1"), - cst_5149=caml_string_of_jsbytes("5149"), - cst_35495=caml_string_of_jsbytes("35495"), - cst_0$222=caml_string_of_jsbytes("0"), - cst_23530=caml_string_of_jsbytes("23530"), - cst_28228=caml_string_of_jsbytes("28228"), - cst_1$137=caml_string_of_jsbytes("1"), - cst_4699=caml_string_of_jsbytes("4699"), - cst_32928=caml_string_of_jsbytes("32928"), - cst_0$217=caml_string_of_jsbytes("0"), - cst_35500=caml_string_of_jsbytes("35500"), - cst_42827=caml_string_of_jsbytes("42827"), - cst_1$132=caml_string_of_jsbytes("1"), - cst_7326=caml_string_of_jsbytes("7326"), - cst_50153=caml_string_of_jsbytes("50153"), - cst_0$218=caml_string_of_jsbytes("0"), - cst_31681=caml_string_of_jsbytes("31681"), - cst_38131=caml_string_of_jsbytes("38131"), - cst_1$133=caml_string_of_jsbytes("1"), - cst_6450=caml_string_of_jsbytes("6450"), - cst_44583=caml_string_of_jsbytes("44583"), - cst_0$219=caml_string_of_jsbytes("0"), - cst_29576=caml_string_of_jsbytes("29576"), - cst_35464=caml_string_of_jsbytes("35464"), - cst_1$134=caml_string_of_jsbytes("1"), - cst_5888=caml_string_of_jsbytes("5888"), - cst_41353=caml_string_of_jsbytes("41353"), - cst_0$214=caml_string_of_jsbytes("0"), - cst_28575=caml_string_of_jsbytes("28575"), - cst_34484=caml_string_of_jsbytes("34484"), - cst_1$129=caml_string_of_jsbytes("1"), - cst_5909=caml_string_of_jsbytes("5909"), - cst_40392=caml_string_of_jsbytes("40392"), - cst_0$215=caml_string_of_jsbytes("0"), - cst_25473=caml_string_of_jsbytes("25473"), - cst_30680=caml_string_of_jsbytes("30680"), - cst_1$130=caml_string_of_jsbytes("1"), - cst_5206=caml_string_of_jsbytes("5206"), - cst_35885=caml_string_of_jsbytes("35885"), - cst_0$216=caml_string_of_jsbytes("0"), - cst_23789=caml_string_of_jsbytes("23789"), - cst_28539=caml_string_of_jsbytes("28539"), - cst_1$131=caml_string_of_jsbytes("1"), - cst_4751=caml_string_of_jsbytes("4751"), - cst_33290=caml_string_of_jsbytes("33290"), - cst_0$211=caml_string_of_jsbytes("0"), - cst_35855=caml_string_of_jsbytes("35855"), - cst_43255=caml_string_of_jsbytes("43255"), - cst_1$126=caml_string_of_jsbytes("1"), - cst_7399=caml_string_of_jsbytes("7399"), - cst_50655=caml_string_of_jsbytes("50655"), - cst_0$212=caml_string_of_jsbytes("0"), - cst_31998=caml_string_of_jsbytes("31998"), - cst_38512=caml_string_of_jsbytes("38512"), - cst_1$127=caml_string_of_jsbytes("1"), - cst_6515=caml_string_of_jsbytes("6515"), - cst_45029=caml_string_of_jsbytes("45029"), - cst_0$213=caml_string_of_jsbytes("0"), - cst_29872=caml_string_of_jsbytes("29872"), - cst_35819=caml_string_of_jsbytes("35819"), - cst_1$128=caml_string_of_jsbytes("1"), - cst_5947=caml_string_of_jsbytes("5947"), - cst_41767=caml_string_of_jsbytes("41767"), - cst_0$208=caml_string_of_jsbytes("0"), - cst_28861=caml_string_of_jsbytes("28861"), - cst_34829$0=caml_string_of_jsbytes("34829"), - cst_1$123=caml_string_of_jsbytes("1"), - cst_5968=caml_string_of_jsbytes("5968"), - cst_40796=caml_string_of_jsbytes("40796"), - cst_0$209=caml_string_of_jsbytes("0"), - cst_25728=caml_string_of_jsbytes("25728"), - cst_30987=caml_string_of_jsbytes("30987"), - cst_1$124=caml_string_of_jsbytes("1"), - cst_5258=caml_string_of_jsbytes("5258"), - cst_36244=caml_string_of_jsbytes("36244"), - cst_0$210=caml_string_of_jsbytes("0"), - cst_24027=caml_string_of_jsbytes("24027"), - cst_28824=caml_string_of_jsbytes("28824"), - cst_1$125=caml_string_of_jsbytes("1"), - cst_4799=caml_string_of_jsbytes("4799"), - cst_33623=caml_string_of_jsbytes("33623"), - cst_0$205=caml_string_of_jsbytes("0"), - cst_36626=caml_string_of_jsbytes("36626"), - cst_44185=caml_string_of_jsbytes("44185"), - cst_1$120=caml_string_of_jsbytes("1"), - cst_7558=caml_string_of_jsbytes("7558"), - cst_51744=caml_string_of_jsbytes("51744"), - cst_0$206=caml_string_of_jsbytes("0"), - cst_32686=caml_string_of_jsbytes("32686"), - cst_39340=caml_string_of_jsbytes("39340"), - cst_1$121=caml_string_of_jsbytes("1"), - cst_6655=caml_string_of_jsbytes("6655"), - cst_45997=caml_string_of_jsbytes("45997"), - cst_0$207=caml_string_of_jsbytes("0"), - cst_30514=caml_string_of_jsbytes("30514"), - cst_36589=caml_string_of_jsbytes("36589"), - cst_1$122=caml_string_of_jsbytes("1"), - cst_6075=caml_string_of_jsbytes("6075"), - cst_42665=caml_string_of_jsbytes("42665"), - cst_0$202=caml_string_of_jsbytes("0"), - cst_29482=caml_string_of_jsbytes("29482"), - cst_35578=caml_string_of_jsbytes("35578"), - cst_1$117=caml_string_of_jsbytes("1"), - cst_6096=caml_string_of_jsbytes("6096"), - cst_41673=caml_string_of_jsbytes("41673"), - cst_0$203=caml_string_of_jsbytes("0"), - cst_26281=caml_string_of_jsbytes("26281"), - cst_31653=caml_string_of_jsbytes("31653"), - cst_1$118=caml_string_of_jsbytes("1"), - cst_5371=caml_string_of_jsbytes("5371"), - cst_37023=caml_string_of_jsbytes("37023"), - cst_0$204=caml_string_of_jsbytes("0"), - cst_24544=caml_string_of_jsbytes("24544"), - cst_29444=caml_string_of_jsbytes("29444"), - cst_1$119=caml_string_of_jsbytes("1"), - cst_4902=caml_string_of_jsbytes("4902"), - cst_34346=caml_string_of_jsbytes("34346"), - cst_0$199=caml_string_of_jsbytes("0"), - cst_36835=caml_string_of_jsbytes("36835"), - cst_44437=caml_string_of_jsbytes("44437"), - cst_1$114=caml_string_of_jsbytes("1"), - cst_7601=caml_string_of_jsbytes("7601"), - cst_52039=caml_string_of_jsbytes("52039"), - cst_0$200=caml_string_of_jsbytes("0"), - cst_32872=caml_string_of_jsbytes("32872"), - cst_39564=caml_string_of_jsbytes("39564"), - cst_1$115=caml_string_of_jsbytes("1"), - cst_6693=caml_string_of_jsbytes("6693"), - cst_46259=caml_string_of_jsbytes("46259"), - cst_0$201=caml_string_of_jsbytes("0"), - cst_30688=caml_string_of_jsbytes("30688"), - cst_36798=caml_string_of_jsbytes("36798"), - cst_1$116=caml_string_of_jsbytes("1"), - cst_6110=caml_string_of_jsbytes("6110"), - cst_42908=caml_string_of_jsbytes("42908"), - cst_0$196=caml_string_of_jsbytes("0"), - cst_29650=caml_string_of_jsbytes("29650"), - cst_35781=caml_string_of_jsbytes("35781"), - cst_1$111=caml_string_of_jsbytes("1"), - cst_6131=caml_string_of_jsbytes("6131"), - cst_41911=caml_string_of_jsbytes("41911"), - cst_0$197=caml_string_of_jsbytes("0"), - cst_26431=caml_string_of_jsbytes("26431"), - cst_31833=caml_string_of_jsbytes("31833"), - cst_1$112=caml_string_of_jsbytes("1"), - cst_5402=caml_string_of_jsbytes("5402"), - cst_37234=caml_string_of_jsbytes("37234"), - cst_0$198=caml_string_of_jsbytes("0"), - cst_24684=caml_string_of_jsbytes("24684"), - cst_29612=caml_string_of_jsbytes("29612"), - cst_1$113=caml_string_of_jsbytes("1"), - cst_4930=caml_string_of_jsbytes("4930"), - cst_34542=caml_string_of_jsbytes("34542"), - cst_0$193=caml_string_of_jsbytes("0"), - cst_36864=caml_string_of_jsbytes("36864"), - cst_44473=caml_string_of_jsbytes("44473"), - cst_1$108=caml_string_of_jsbytes("1"), - cst_7607=caml_string_of_jsbytes("7607"), - cst_52081=caml_string_of_jsbytes("52081"), - cst_0$194=caml_string_of_jsbytes("0"), - cst_32898=caml_string_of_jsbytes("32898"), - cst_39596=caml_string_of_jsbytes("39596"), - cst_1$109=caml_string_of_jsbytes("1"), - cst_6698=caml_string_of_jsbytes("6698"), - cst_46296=caml_string_of_jsbytes("46296"), - cst_0$195=caml_string_of_jsbytes("0"), - cst_30713=caml_string_of_jsbytes("30713"), - cst_36827=caml_string_of_jsbytes("36827"), - cst_1$110=caml_string_of_jsbytes("1"), - cst_6115=caml_string_of_jsbytes("6115"), - cst_42942=caml_string_of_jsbytes("42942"), - cst_0$190=caml_string_of_jsbytes("0"), - cst_29674=caml_string_of_jsbytes("29674"), - cst_35810=caml_string_of_jsbytes("35810"), - cst_1$105=caml_string_of_jsbytes("1"), - cst_6136=caml_string_of_jsbytes("6136"), - cst_41945=caml_string_of_jsbytes("41945"), - cst_0$191=caml_string_of_jsbytes("0"), - cst_26452=caml_string_of_jsbytes("26452"), - cst_31858=caml_string_of_jsbytes("31858"), - cst_1$106=caml_string_of_jsbytes("1"), - cst_5406=caml_string_of_jsbytes("5406"), - cst_37264=caml_string_of_jsbytes("37264"), - cst_0$192=caml_string_of_jsbytes("0"), - cst_24704=caml_string_of_jsbytes("24704"), - cst_29636=caml_string_of_jsbytes("29636"), - cst_1$107=caml_string_of_jsbytes("1"), - cst_4934=caml_string_of_jsbytes("4934"), - cst_34570=caml_string_of_jsbytes("34570"), - cst_0$187=caml_string_of_jsbytes("0"), - cst_37140=caml_string_of_jsbytes("37140"), - cst_44807=caml_string_of_jsbytes("44807"), - cst_1$102=caml_string_of_jsbytes("1"), - cst_7664=caml_string_of_jsbytes("7664"), - cst_52472=caml_string_of_jsbytes("52472"), - cst_0$188=caml_string_of_jsbytes("0"), - cst_33145=caml_string_of_jsbytes("33145"), - cst_39893=caml_string_of_jsbytes("39893"), - cst_1$103=caml_string_of_jsbytes("1"), - cst_6748=caml_string_of_jsbytes("6748"), - cst_46643=caml_string_of_jsbytes("46643"), - cst_0$189=caml_string_of_jsbytes("0"), - cst_30943=caml_string_of_jsbytes("30943"), - cst_37103=caml_string_of_jsbytes("37103"), - cst_1$104=caml_string_of_jsbytes("1"), - cst_6161=caml_string_of_jsbytes("6161"), - cst_43264=caml_string_of_jsbytes("43264"), - cst_0$184=caml_string_of_jsbytes("0"), - cst_29897=caml_string_of_jsbytes("29897"), - cst_36079=caml_string_of_jsbytes("36079"), - cst_1$99=caml_string_of_jsbytes("1"), - cst_6182=caml_string_of_jsbytes("6182"), - cst_42260=caml_string_of_jsbytes("42260"), - cst_0$185=caml_string_of_jsbytes("0"), - cst_26650=caml_string_of_jsbytes("26650"), - cst_32097=caml_string_of_jsbytes("32097"), - cst_1$100=caml_string_of_jsbytes("1"), - cst_5447=caml_string_of_jsbytes("5447"), - cst_37543=caml_string_of_jsbytes("37543"), - cst_0$186=caml_string_of_jsbytes("0"), - cst_24889=caml_string_of_jsbytes("24889"), - cst_29858=caml_string_of_jsbytes("29858"), - cst_1$101=caml_string_of_jsbytes("1"), - cst_4971=caml_string_of_jsbytes("4971"), - cst_34829=caml_string_of_jsbytes("34829"), - cst_0$181=caml_string_of_jsbytes("0"), - cst_37252=caml_string_of_jsbytes("37252"), - cst_44941=caml_string_of_jsbytes("44941"), - cst_1$96=caml_string_of_jsbytes("1"), - cst_7687=caml_string_of_jsbytes("7687"), - cst_52629=caml_string_of_jsbytes("52629"), - cst_0$182=caml_string_of_jsbytes("0"), - cst_33244=caml_string_of_jsbytes("33244"), - cst_40013=caml_string_of_jsbytes("40013"), - cst_1$97=caml_string_of_jsbytes("1"), - cst_6768=caml_string_of_jsbytes("6768"), - cst_46783=caml_string_of_jsbytes("46783"), - cst_0$183=caml_string_of_jsbytes("0"), - cst_31036=caml_string_of_jsbytes("31036"), - cst_37215=caml_string_of_jsbytes("37215"), - cst_1$98=caml_string_of_jsbytes("1"), - cst_6179=caml_string_of_jsbytes("6179"), - cst_43394=caml_string_of_jsbytes("43394"), - cst_0$178=caml_string_of_jsbytes("0"), - cst_29986=caml_string_of_jsbytes("29986"), - cst_36187=caml_string_of_jsbytes("36187"), - cst_1$93=caml_string_of_jsbytes("1"), - cst_6201=caml_string_of_jsbytes("6201"), - cst_42386=caml_string_of_jsbytes("42386"), - cst_0$179=caml_string_of_jsbytes("0"), - cst_26730=caml_string_of_jsbytes("26730"), - cst_32193=caml_string_of_jsbytes("32193"), - cst_1$94=caml_string_of_jsbytes("1"), - cst_5463=caml_string_of_jsbytes("5463"), - cst_37656=caml_string_of_jsbytes("37656"), - cst_0$180=caml_string_of_jsbytes("0"), - cst_24964=caml_string_of_jsbytes("24964"), - cst_29948=caml_string_of_jsbytes("29948"), - cst_1$95=caml_string_of_jsbytes("1"), - cst_4986=caml_string_of_jsbytes("4986"), - cst_34934=caml_string_of_jsbytes("34934"), - cst_0$175=caml_string_of_jsbytes("0"), - cst_208500=caml_string_of_jsbytes("208500"), - cst_251500=caml_string_of_jsbytes("251500"), - cst_1$90=caml_string_of_jsbytes("1"), - cst_43000=caml_string_of_jsbytes("43000"), - cst_294500=caml_string_of_jsbytes("294500"), - cst_0$176=caml_string_of_jsbytes("0"), - cst_186000=caml_string_of_jsbytes("186000"), - cst_223900=caml_string_of_jsbytes("223900"), - cst_1$91=caml_string_of_jsbytes("1"), - cst_37900=caml_string_of_jsbytes("37900"), - cst_261800=caml_string_of_jsbytes("261800"), - cst_0$177=caml_string_of_jsbytes("0"), - cst_173600=caml_string_of_jsbytes("173600"), - cst_208200=caml_string_of_jsbytes("208200"), - cst_1$92=caml_string_of_jsbytes("1"), - cst_35600=caml_string_of_jsbytes("35600"), - cst_242800=caml_string_of_jsbytes("242800"), - cst_0$172=caml_string_of_jsbytes("0"), - cst_167800=caml_string_of_jsbytes("167800"), - cst_202500=caml_string_of_jsbytes("202500"), - cst_1$87=caml_string_of_jsbytes("1"), - cst_34700=caml_string_of_jsbytes("34700"), - cst_237200=caml_string_of_jsbytes("237200"), - cst_0$173=caml_string_of_jsbytes("0"), - cst_149600=caml_string_of_jsbytes("149600"), - cst_180100=caml_string_of_jsbytes("180100"), - cst_1$88=caml_string_of_jsbytes("1"), - cst_30500$1=caml_string_of_jsbytes("30500"), - cst_210600=caml_string_of_jsbytes("210600"), - cst_0$174=caml_string_of_jsbytes("0"), - cst_139700=caml_string_of_jsbytes("139700"), - cst_167600=caml_string_of_jsbytes("167600"), - cst_1$89=caml_string_of_jsbytes("1"), - cst_27900=caml_string_of_jsbytes("27900"), - cst_195500=caml_string_of_jsbytes("195500"), - cst_0$169=caml_string_of_jsbytes("0"), - cst_184000=caml_string_of_jsbytes("184000"), - cst_220000=caml_string_of_jsbytes("220000"), - cst_1$84=caml_string_of_jsbytes("1"), - cst_38000=caml_string_of_jsbytes("38000"), - cst_260000=caml_string_of_jsbytes("260000"), - cst_0$170=caml_string_of_jsbytes("0"), - cst_164200=caml_string_of_jsbytes("164200"), - cst_197700=caml_string_of_jsbytes("197700"), - cst_1$85=caml_string_of_jsbytes("1"), - cst_33500=caml_string_of_jsbytes("33500"), - cst_231200=caml_string_of_jsbytes("231200"), - cst_0$171=caml_string_of_jsbytes("0"), - cst_153200=caml_string_of_jsbytes("153200"), - cst_183700=caml_string_of_jsbytes("183700"), - cst_1$86=caml_string_of_jsbytes("1"), - cst_30500$0=caml_string_of_jsbytes("30500"), - cst_214200=caml_string_of_jsbytes("214200"), - cst_0$166=caml_string_of_jsbytes("0"), - cst_148100=caml_string_of_jsbytes("148100"), - cst_178700=caml_string_of_jsbytes("178700"), - cst_1$81=caml_string_of_jsbytes("1"), - cst_30600=caml_string_of_jsbytes("30600"), - cst_209300=caml_string_of_jsbytes("209300"), - cst_0$167=caml_string_of_jsbytes("0"), - cst_132000=caml_string_of_jsbytes("132000"), - cst_158900=caml_string_of_jsbytes("158900"), - cst_1$82=caml_string_of_jsbytes("1"), - cst_26900=caml_string_of_jsbytes("26900"), - cst_185800=caml_string_of_jsbytes("185800"), - cst_0$168=caml_string_of_jsbytes("0"), - cst_123300=caml_string_of_jsbytes("123300"), - cst_147900=caml_string_of_jsbytes("147900"), - cst_1$83=caml_string_of_jsbytes("1"), - cst_24600=caml_string_of_jsbytes("24600"), - cst_172500=caml_string_of_jsbytes("172500"), - cst_1272$2=caml_string_of_jsbytes("1272"), - cst_2805$0=caml_string_of_jsbytes("2805"), - cst_5612$2=caml_string_of_jsbytes("5612"), - cst_1229$2=caml_string_of_jsbytes("1229"), - cst_2710$0=caml_string_of_jsbytes("2710"), - cst_5422$2=caml_string_of_jsbytes("5422"), - cst_1224$2=caml_string_of_jsbytes("1224"), - cst_2699$0=caml_string_of_jsbytes("2699"), - cst_5399$2=caml_string_of_jsbytes("5399"), - cst_1272$1=caml_string_of_jsbytes("1272"), - cst_5612$1=caml_string_of_jsbytes("5612"), - cst_1229$1=caml_string_of_jsbytes("1229"), - cst_5422$1=caml_string_of_jsbytes("5422"), - cst_1224$1=caml_string_of_jsbytes("1224"), - cst_5399$1=caml_string_of_jsbytes("5399"), - cst_500$1=caml_string_of_jsbytes("500"), - cst_1000$2=caml_string_of_jsbytes("1000"), - cst_0_0226=caml_string_of_jsbytes("0.0226"), - cst_0_0234=caml_string_of_jsbytes("0.0234"), - cst_0_0172=caml_string_of_jsbytes("0.0172"), - cst_0_0226$0=caml_string_of_jsbytes("0.0226"), - cst_0_0234$0=caml_string_of_jsbytes("0.0234"), - cst_2211133=caml_string_of_jsbytes("2211133"), - cst_16_25=caml_string_of_jsbytes("16.25"), - cst_560085=caml_string_of_jsbytes("560085"), - cst_0_208$0=caml_string_of_jsbytes("0.208"), - cst_0_416=caml_string_of_jsbytes("0.416"), - cst_6_55957=caml_string_of_jsbytes("6.55957"), - cst_1$80=caml_string_of_jsbytes("1."), - cst_0$165=caml_string_of_jsbytes("0"), - cst_0$163=caml_string_of_jsbytes("0"), - cst_0$164=caml_string_of_jsbytes("0"), - cst_50$0=caml_string_of_jsbytes("50"), - cst_0$161=caml_string_of_jsbytes("0"), - cst_0$162=caml_string_of_jsbytes("0"), - cst_0_9$1=caml_string_of_jsbytes("0.9"), - cst_0_9$2=caml_string_of_jsbytes("0.9"), - cst_0_95$0=caml_string_of_jsbytes("0.95"), - cst_0_95$1=caml_string_of_jsbytes("0.95"), - cst_0$159=caml_string_of_jsbytes("0"), - cst_0$160=caml_string_of_jsbytes("0"), - cst_100$8=caml_string_of_jsbytes("100."), - cst_100$9=caml_string_of_jsbytes("100."), - cst_0_005$1=caml_string_of_jsbytes("0.005"), - cst_100$6=caml_string_of_jsbytes("100."), - cst_100$7=caml_string_of_jsbytes("100."), - cst_0_005$0=caml_string_of_jsbytes("0.005"), - cst_0$158=caml_string_of_jsbytes("0"), - cst_0_9$0=caml_string_of_jsbytes("0.9"), - cst_0$156=caml_string_of_jsbytes("0"), - cst_0$157=caml_string_of_jsbytes("0"), - cst_0_95=caml_string_of_jsbytes("0.95"), - cst_0$154=caml_string_of_jsbytes("0"), - cst_0$155=caml_string_of_jsbytes("0"), - cst_2142091=caml_string_of_jsbytes("2142091"), - cst_1339340=caml_string_of_jsbytes("1339340"), - cst_1500=caml_string_of_jsbytes("1500"), - cst_2668=caml_string_of_jsbytes("2668"), - cst_121726=caml_string_of_jsbytes("121726"), - cst_0$151=caml_string_of_jsbytes("0"), - cst_46192=caml_string_of_jsbytes("46192"), - cst_54152=caml_string_of_jsbytes("54152"), - cst_1$77=caml_string_of_jsbytes("1"), - cst_57741=caml_string_of_jsbytes("57741"), - cst_2$48=caml_string_of_jsbytes("2"), - cst_61794=caml_string_of_jsbytes("61794"), - cst_3$33=caml_string_of_jsbytes("3"), - cst_65862=caml_string_of_jsbytes("65862"), - cst_4$29=caml_string_of_jsbytes("4"), - cst_7368=caml_string_of_jsbytes("7368"), - cst_71039=caml_string_of_jsbytes("71039"), - cst_0$152=caml_string_of_jsbytes("0"), - cst_42242=caml_string_of_jsbytes("42242"), - cst_49299=caml_string_of_jsbytes("49299"), - cst_1$78=caml_string_of_jsbytes("1"), - cst_52565=caml_string_of_jsbytes("52565"), - cst_2$49=caml_string_of_jsbytes("2"), - cst_56268=caml_string_of_jsbytes("56268"), - cst_3$34=caml_string_of_jsbytes("3"), - cst_59957=caml_string_of_jsbytes("59957"), - cst_4$30=caml_string_of_jsbytes("4"), - cst_6659=caml_string_of_jsbytes("6659"), - cst_63887=caml_string_of_jsbytes("63887"), - cst_0$153=caml_string_of_jsbytes("0"), - cst_40096=caml_string_of_jsbytes("40096"), - cst_46634=caml_string_of_jsbytes("46634"), - cst_1$79=caml_string_of_jsbytes("1"), - cst_49475=caml_string_of_jsbytes("49475"), - cst_2$50=caml_string_of_jsbytes("2"), - cst_52740=caml_string_of_jsbytes("52740"), - cst_3$35=caml_string_of_jsbytes("3"), - cst_56004=caml_string_of_jsbytes("56004"), - cst_4$31=caml_string_of_jsbytes("4"), - cst_6180=caml_string_of_jsbytes("6180"), - cst_59675=caml_string_of_jsbytes("59675"), - cst_0$148=caml_string_of_jsbytes("0"), - cst_44630=caml_string_of_jsbytes("44630"), - cst_52321=caml_string_of_jsbytes("52321"), - cst_1$74=caml_string_of_jsbytes("1"), - cst_55788=caml_string_of_jsbytes("55788"), - cst_2$45=caml_string_of_jsbytes("2"), - cst_59704=caml_string_of_jsbytes("59704"), - cst_3$30=caml_string_of_jsbytes("3"), - cst_63635=caml_string_of_jsbytes("63635"), - cst_4$26=caml_string_of_jsbytes("4"), - cst_7119=caml_string_of_jsbytes("7119"), - cst_68637=caml_string_of_jsbytes("68637"), - cst_0$149=caml_string_of_jsbytes("0"), - cst_40814=caml_string_of_jsbytes("40814"), - cst_47632=caml_string_of_jsbytes("47632"), - cst_1$75=caml_string_of_jsbytes("1"), - cst_50787=caml_string_of_jsbytes("50787"), - cst_2$46=caml_string_of_jsbytes("2"), - cst_54365=caml_string_of_jsbytes("54365"), - cst_3$31=caml_string_of_jsbytes("3"), - cst_57929=caml_string_of_jsbytes("57929"), - cst_4$27=caml_string_of_jsbytes("4"), - cst_6434=caml_string_of_jsbytes("6434"), - cst_61727=caml_string_of_jsbytes("61727"), - cst_0$150=caml_string_of_jsbytes("0"), - cst_38740=caml_string_of_jsbytes("38740"), - cst_45057=caml_string_of_jsbytes("45057"), - cst_1$76=caml_string_of_jsbytes("1"), - cst_47802=caml_string_of_jsbytes("47802"), - cst_2$47=caml_string_of_jsbytes("2"), - cst_50957=caml_string_of_jsbytes("50957"), - cst_3$32=caml_string_of_jsbytes("3"), - cst_54110=caml_string_of_jsbytes("54110"), - cst_4$28=caml_string_of_jsbytes("4"), - cst_5971=caml_string_of_jsbytes("5971"), - cst_57657=caml_string_of_jsbytes("57657"), - cst_0$145=caml_string_of_jsbytes("0"), - cst_44443=caml_string_of_jsbytes("44443"), - cst_52101=caml_string_of_jsbytes("52101"), - cst_1$71=caml_string_of_jsbytes("1"), - cst_55555=caml_string_of_jsbytes("55555"), - cst_2$42=caml_string_of_jsbytes("2"), - cst_59454=caml_string_of_jsbytes("59454"), - cst_3$27=caml_string_of_jsbytes("3"), - cst_63369=caml_string_of_jsbytes("63369"), - cst_4$23=caml_string_of_jsbytes("4"), - cst_7089=caml_string_of_jsbytes("7089"), - cst_68350=caml_string_of_jsbytes("68350"), - cst_0$146=caml_string_of_jsbytes("0"), - cst_40643=caml_string_of_jsbytes("40643"), - cst_47433=caml_string_of_jsbytes("47433"), - cst_1$72=caml_string_of_jsbytes("1"), - cst_50575=caml_string_of_jsbytes("50575"), - cst_2$43=caml_string_of_jsbytes("2"), - cst_54138=caml_string_of_jsbytes("54138"), - cst_3$28=caml_string_of_jsbytes("3"), - cst_57687=caml_string_of_jsbytes("57687"), - cst_4$24=caml_string_of_jsbytes("4"), - cst_6407=caml_string_of_jsbytes("6407"), - cst_61469=caml_string_of_jsbytes("61469"), - cst_0$147=caml_string_of_jsbytes("0"), - cst_38578=caml_string_of_jsbytes("38578"), - cst_44869=caml_string_of_jsbytes("44869"), - cst_1$73=caml_string_of_jsbytes("1"), - cst_47602=caml_string_of_jsbytes("47602"), - cst_2$44=caml_string_of_jsbytes("2"), - cst_50744=caml_string_of_jsbytes("50744"), - cst_3$29=caml_string_of_jsbytes("3"), - cst_53884=caml_string_of_jsbytes("53884"), - cst_4$25=caml_string_of_jsbytes("4"), - cst_5946=caml_string_of_jsbytes("5946"), - cst_57416=caml_string_of_jsbytes("57416"), - cst_500$0=caml_string_of_jsbytes("500"), - cst_1000$1=caml_string_of_jsbytes("1000"), - cst_0$142=caml_string_of_jsbytes("0"), - cst_0$143=caml_string_of_jsbytes("0"), - cst_0$140=caml_string_of_jsbytes("0"), - cst_0$141=caml_string_of_jsbytes("0"), - cst_0$139=caml_string_of_jsbytes("0"), - cst_0$137=caml_string_of_jsbytes("0"), - cst_0$138=caml_string_of_jsbytes("0"), - cst_100000$3=caml_string_of_jsbytes("100000."), - cst_100000$4=caml_string_of_jsbytes("100000."), - cst_100000$1=caml_string_of_jsbytes("100000."), - cst_100000$2=caml_string_of_jsbytes("100000."), - cst_100000=caml_string_of_jsbytes("100000."), - cst_100000$0=caml_string_of_jsbytes("100000."), - cst_50=caml_string_of_jsbytes("50"), - cst_0$135=caml_string_of_jsbytes("0"), - cst_0$136=caml_string_of_jsbytes("0"), - cst_0_45$3=caml_string_of_jsbytes("0.45"), - cst_0$133=caml_string_of_jsbytes("0."), - cst_0_75$5=caml_string_of_jsbytes("0.75"), - cst_0_45$4=caml_string_of_jsbytes("0.45"), - cst_0_0045$5=caml_string_of_jsbytes("0.0045"), - cst_0_0045$6=caml_string_of_jsbytes("0.0045"), - cst_0_75$6=caml_string_of_jsbytes("0.75"), - cst_0_75$7=caml_string_of_jsbytes("0.75"), - cst_0_0068$1=caml_string_of_jsbytes("0.0068"), - cst_0_3$1=caml_string_of_jsbytes("0.3"), - cst_0_0045$7=caml_string_of_jsbytes("0.0045"), - cst_0$134=caml_string_of_jsbytes("0."), - cst_0_45$1=caml_string_of_jsbytes("0.45"), - cst_0$131=caml_string_of_jsbytes("0."), - cst_0_75$2=caml_string_of_jsbytes("0.75"), - cst_0_45$2=caml_string_of_jsbytes("0.45"), - cst_0_0045$2=caml_string_of_jsbytes("0.0045"), - cst_0_0045$3=caml_string_of_jsbytes("0.0045"), - cst_0_75$3=caml_string_of_jsbytes("0.75"), - cst_0_75$4=caml_string_of_jsbytes("0.75"), - cst_0_0068$0=caml_string_of_jsbytes("0.0068"), - cst_0_3$0=caml_string_of_jsbytes("0.3"), - cst_0_0045$4=caml_string_of_jsbytes("0.0045"), - cst_0$132=caml_string_of_jsbytes("0."), - cst_0_45=caml_string_of_jsbytes("0.45"), - cst_0$129=caml_string_of_jsbytes("0."), - cst_0_75=caml_string_of_jsbytes("0.75"), - cst_0_45$0=caml_string_of_jsbytes("0.45"), - cst_0_0045=caml_string_of_jsbytes("0.0045"), - cst_0_0045$0=caml_string_of_jsbytes("0.0045"), - cst_0_75$0=caml_string_of_jsbytes("0.75"), - cst_0_75$1=caml_string_of_jsbytes("0.75"), - cst_0_0068=caml_string_of_jsbytes("0.0068"), - cst_0_3=caml_string_of_jsbytes("0.3"), - cst_0_0045$1=caml_string_of_jsbytes("0.0045"), - cst_0$130=caml_string_of_jsbytes("0."), - cst_0$127=caml_string_of_jsbytes("0"), - cst_0$128=caml_string_of_jsbytes("0"), - cst_100$4=caml_string_of_jsbytes("100."), - cst_100$5=caml_string_of_jsbytes("100."), - cst_100$2=caml_string_of_jsbytes("100."), - cst_100$3=caml_string_of_jsbytes("100."), - cst_100$0=caml_string_of_jsbytes("100."), - cst_100$1=caml_string_of_jsbytes("100."), - cst_3663=caml_string_of_jsbytes("3663"), - cst_0_085$3=caml_string_of_jsbytes("0.085"), - cst_0_085$4=caml_string_of_jsbytes("0.085"), - cst_3663$0=caml_string_of_jsbytes("3663"), - cst_3539=caml_string_of_jsbytes("3539"), - cst_0_085$1=caml_string_of_jsbytes("0.085"), - cst_0_085$2=caml_string_of_jsbytes("0.085"), - cst_3539$0=caml_string_of_jsbytes("3539"), - cst_3524=caml_string_of_jsbytes("3524"), - cst_0_085=caml_string_of_jsbytes("0.085"), - cst_0_085$0=caml_string_of_jsbytes("0.085"), - cst_3524$0=caml_string_of_jsbytes("3524"), - cst_0$126=caml_string_of_jsbytes("0"), - cst_3_4=caml_string_of_jsbytes("3.4"), - cst_2_5$2=caml_string_of_jsbytes("2.5"), - cst_2_5$3=caml_string_of_jsbytes("2.5"), - cst_4$22=caml_string_of_jsbytes("4."), - cst_3_1=caml_string_of_jsbytes("3.1"), - cst_3_1$0=caml_string_of_jsbytes("3.1"), - cst_0$125=caml_string_of_jsbytes("0"), - cst_23138$0=caml_string_of_jsbytes("23138"), - cst_20165$0=caml_string_of_jsbytes("20165"), - cst_18900$0=caml_string_of_jsbytes("18900"), - cst_0$124=caml_string_of_jsbytes("0"), - cst_27905=caml_string_of_jsbytes("27905"), - cst_24683=caml_string_of_jsbytes("24683"), - cst_22911=caml_string_of_jsbytes("22911"), - cst_1$70=caml_string_of_jsbytes("1"), - cst_4576=caml_string_of_jsbytes("4576"), - cst_31539=caml_string_of_jsbytes("31539"), - cst_4043=caml_string_of_jsbytes("4043"), - cst_27774=caml_string_of_jsbytes("27774"), - cst_3682=caml_string_of_jsbytes("3682"), - cst_25689=caml_string_of_jsbytes("25689"), - cst_0$123=caml_string_of_jsbytes("0"), - cst_22355$0=caml_string_of_jsbytes("22355"), - cst_19484$0=caml_string_of_jsbytes("19484"), - cst_18261$0=caml_string_of_jsbytes("18261"), - cst_0$122=caml_string_of_jsbytes("0"), - cst_26962=caml_string_of_jsbytes("26962"), - cst_23848=caml_string_of_jsbytes("23848"), - cst_22136=caml_string_of_jsbytes("22136"), - cst_1$69=caml_string_of_jsbytes("1"), - cst_4421=caml_string_of_jsbytes("4421"), - cst_30473=caml_string_of_jsbytes("30473"), - cst_3906=caml_string_of_jsbytes("3906"), - cst_26835=caml_string_of_jsbytes("26835"), - cst_3557=caml_string_of_jsbytes("3557"), - cst_24821=caml_string_of_jsbytes("24821"), - cst_0$121=caml_string_of_jsbytes("0"), - cst_22262$0=caml_string_of_jsbytes("22262"), - cst_19402$0=caml_string_of_jsbytes("19402"), - cst_18185$0=caml_string_of_jsbytes("18185"), - cst_0$120=caml_string_of_jsbytes("0"), - cst_26849=caml_string_of_jsbytes("26849"), - cst_23748=caml_string_of_jsbytes("23748"), - cst_22044=caml_string_of_jsbytes("22044"), - cst_1$68=caml_string_of_jsbytes("1"), - cst_4403=caml_string_of_jsbytes("4403"), - cst_30345=caml_string_of_jsbytes("30345"), - cst_3890=caml_string_of_jsbytes("3890"), - cst_26723=caml_string_of_jsbytes("26723"), - cst_3542=caml_string_of_jsbytes("3542"), - cst_24717=caml_string_of_jsbytes("24717"), - cst_23138=caml_string_of_jsbytes("23138"), - cst_20165=caml_string_of_jsbytes("20165"), - cst_18900=caml_string_of_jsbytes("18900"), - cst_22355=caml_string_of_jsbytes("22355"), - cst_19484=caml_string_of_jsbytes("19484"), - cst_18261=caml_string_of_jsbytes("18261"), - cst_22262=caml_string_of_jsbytes("22262"), - cst_19402=caml_string_of_jsbytes("19402"), - cst_18185=caml_string_of_jsbytes("18185"), - cst_27765=caml_string_of_jsbytes("27765"), - cst_24198=caml_string_of_jsbytes("24198"), - cst_22680=caml_string_of_jsbytes("22680"), - cst_26826=caml_string_of_jsbytes("26826"), - cst_23380=caml_string_of_jsbytes("23380"), - cst_21913=caml_string_of_jsbytes("21913"), - cst_26714=caml_string_of_jsbytes("26714"), - cst_23282=caml_string_of_jsbytes("23282"), - cst_21821=caml_string_of_jsbytes("21821"), - cst_0$119=caml_string_of_jsbytes("0"), - cst_30850=caml_string_of_jsbytes("30850"), - cst_26887$0=caml_string_of_jsbytes("26887"), - cst_25200=caml_string_of_jsbytes("25200"), - cst_0$118=caml_string_of_jsbytes("0"), - cst_37207=caml_string_of_jsbytes("37207"), - cst_32910$0=caml_string_of_jsbytes("32910"), - cst_30548=caml_string_of_jsbytes("30548"), - cst_1$67=caml_string_of_jsbytes("1"), - cst_6101=caml_string_of_jsbytes("6101"), - cst_42052=caml_string_of_jsbytes("42052"), - cst_5390$0=caml_string_of_jsbytes("5390"), - cst_37032$0=caml_string_of_jsbytes("37032"), - cst_4909=caml_string_of_jsbytes("4909"), - cst_34252=caml_string_of_jsbytes("34252"), - cst_0$117=caml_string_of_jsbytes("0"), - cst_29807=caml_string_of_jsbytes("29807"), - cst_25978$0=caml_string_of_jsbytes("25978"), - cst_24348=caml_string_of_jsbytes("24348"), - cst_0$116=caml_string_of_jsbytes("0"), - cst_35949=caml_string_of_jsbytes("35949"), - cst_31797$0=caml_string_of_jsbytes("31797"), - cst_29515=caml_string_of_jsbytes("29515"), - cst_1$66=caml_string_of_jsbytes("1"), - cst_5895=caml_string_of_jsbytes("5895"), - cst_40630=caml_string_of_jsbytes("40630"), - cst_5208$0=caml_string_of_jsbytes("5208"), - cst_35780$0=caml_string_of_jsbytes("35780"), - cst_4743=caml_string_of_jsbytes("4743"), - cst_33094=caml_string_of_jsbytes("33094"), - cst_0$115=caml_string_of_jsbytes("0"), - cst_29682=caml_string_of_jsbytes("29682"), - cst_25859=caml_string_of_jsbytes("25859"), - cst_24246=caml_string_of_jsbytes("24246"), - cst_0$114=caml_string_of_jsbytes("0"), - cst_35799=caml_string_of_jsbytes("35799"), - cst_31664$0=caml_string_of_jsbytes("31664"), - cst_29392=caml_string_of_jsbytes("29392"), - cst_1$65=caml_string_of_jsbytes("1"), - cst_5870=caml_string_of_jsbytes("5870"), - cst_40460=caml_string_of_jsbytes("40460"), - cst_5186$0=caml_string_of_jsbytes("5186"), - cst_35630$0=caml_string_of_jsbytes("35630"), - cst_4723=caml_string_of_jsbytes("4723"), - cst_32956=caml_string_of_jsbytes("32956"), - cst_0$113=caml_string_of_jsbytes("0"), - cst_26887=caml_string_of_jsbytes("26887"), - cst_32910=caml_string_of_jsbytes("32910"), - cst_5390=caml_string_of_jsbytes("5390"), - cst_37032=caml_string_of_jsbytes("37032"), - cst_0$112=caml_string_of_jsbytes("0"), - cst_25978=caml_string_of_jsbytes("25978"), - cst_31797=caml_string_of_jsbytes("31797"), - cst_5208=caml_string_of_jsbytes("5208"), - cst_35780=caml_string_of_jsbytes("35780"), - cst_0$111=caml_string_of_jsbytes("0"), - cst_25869=caml_string_of_jsbytes("25869"), - cst_31664=caml_string_of_jsbytes("31664"), - cst_5186=caml_string_of_jsbytes("5186"), - cst_35630=caml_string_of_jsbytes("35630"), - cst_1$64=caml_string_of_jsbytes("1"), - cst_818100=caml_string_of_jsbytes("818100"), - cst_0$110=caml_string_of_jsbytes("0"), - cst_527200=caml_string_of_jsbytes("527200"), - cst_755200=caml_string_of_jsbytes("755200"), - cst_1$63=caml_string_of_jsbytes("1"), - cst_900800=caml_string_of_jsbytes("900800"), - cst_2$41=caml_string_of_jsbytes("2"), - cst_921100=caml_string_of_jsbytes("921100"), - cst_3$26=caml_string_of_jsbytes("3"), - cst_956300=caml_string_of_jsbytes("956300"), - cst_4$21=caml_string_of_jsbytes("4"), - cst_991900=caml_string_of_jsbytes("991900"), - cst_5$25=caml_string_of_jsbytes("5"), - cst_1027100=caml_string_of_jsbytes("1027100"), - cst_6$45=caml_string_of_jsbytes("6"), - cst_1062600=caml_string_of_jsbytes("1062600"), - cst_6$46=caml_string_of_jsbytes("6"), - cst_35000$0=caml_string_of_jsbytes("35000"), - cst_1062600$0=caml_string_of_jsbytes("1062600"), - cst_1$62=caml_string_of_jsbytes("1"), - cst_805100=caml_string_of_jsbytes("805100"), - cst_0$109=caml_string_of_jsbytes("0"), - cst_487000$0=caml_string_of_jsbytes("487000"), - cst_697700$0=caml_string_of_jsbytes("697700"), - cst_1$61=caml_string_of_jsbytes("1"), - cst_832200$1=caml_string_of_jsbytes("832200"), - cst_2$40=caml_string_of_jsbytes("2"), - cst_850900$0=caml_string_of_jsbytes("850900"), - cst_3$25=caml_string_of_jsbytes("3"), - cst_883400$0=caml_string_of_jsbytes("883400"), - cst_4$20=caml_string_of_jsbytes("4"), - cst_916300$0=caml_string_of_jsbytes("916300"), - cst_5$24=caml_string_of_jsbytes("5"), - cst_948800$0=caml_string_of_jsbytes("948800"), - cst_6$43=caml_string_of_jsbytes("6"), - cst_981600$1=caml_string_of_jsbytes("981600"), - cst_6$44=caml_string_of_jsbytes("6"), - cst_35000=caml_string_of_jsbytes("35000"), - cst_981600$2=caml_string_of_jsbytes("981600"), - cst_1$60=caml_string_of_jsbytes("1"), - cst_774200=caml_string_of_jsbytes("774200"), - cst_0$108=caml_string_of_jsbytes("0"), - cst_427400=caml_string_of_jsbytes("427400"), - cst_612200=caml_string_of_jsbytes("612200"), - cst_1$59=caml_string_of_jsbytes("1"), - cst_699000=caml_string_of_jsbytes("699000"), - cst_2$39=caml_string_of_jsbytes("2"), - cst_743200=caml_string_of_jsbytes("743200"), - cst_3$24=caml_string_of_jsbytes("3"), - cst_785400=caml_string_of_jsbytes("785400"), - cst_4$19=caml_string_of_jsbytes("4"), - cst_828300=caml_string_of_jsbytes("828300"), - cst_5$23=caml_string_of_jsbytes("5"), - cst_871100=caml_string_of_jsbytes("871100"), - cst_913900=caml_string_of_jsbytes("913900"), - cst_1$58=caml_string_of_jsbytes("1"), - cst_758400$1=caml_string_of_jsbytes("758400"), - cst_1$57=caml_string_of_jsbytes("1"), - cst_758400$0=caml_string_of_jsbytes("758400"), - cst_1$56=caml_string_of_jsbytes("1"), - cst_758400=caml_string_of_jsbytes("758400"), - cst_0$107=caml_string_of_jsbytes("0"), - cst_396000=caml_string_of_jsbytes("396000"), - cst_567300=caml_string_of_jsbytes("567300"), - cst_1$55=caml_string_of_jsbytes("1"), - cst_639600=caml_string_of_jsbytes("639600"), - cst_2$38=caml_string_of_jsbytes("2"), - cst_684900=caml_string_of_jsbytes("684900"), - cst_3$23=caml_string_of_jsbytes("3"), - cst_738600=caml_string_of_jsbytes("738600"), - cst_4$18=caml_string_of_jsbytes("4"), - cst_793500=caml_string_of_jsbytes("793500"), - cst_5$22=caml_string_of_jsbytes("5"), - cst_848400=caml_string_of_jsbytes("848400"), - cst_903200=caml_string_of_jsbytes("903200"), - cst_0$106=caml_string_of_jsbytes("0"), - cst_494900=caml_string_of_jsbytes("494900"), - cst_709000=caml_string_of_jsbytes("709000"), - cst_1$54=caml_string_of_jsbytes("1"), - cst_845600=caml_string_of_jsbytes("845600"), - cst_2$37=caml_string_of_jsbytes("2"), - cst_864600=caml_string_of_jsbytes("864600"), - cst_3$22=caml_string_of_jsbytes("3"), - cst_897700=caml_string_of_jsbytes("897700"), - cst_4$17=caml_string_of_jsbytes("4"), - cst_931100=caml_string_of_jsbytes("931100"), - cst_5$21=caml_string_of_jsbytes("5"), - cst_964200=caml_string_of_jsbytes("964200"), - cst_6$42=caml_string_of_jsbytes("6"), - cst_997500=caml_string_of_jsbytes("997500"), - cst_32800=caml_string_of_jsbytes("32800"), - cst_997500$0=caml_string_of_jsbytes("997500"), - cst_0$105=caml_string_of_jsbytes("0"), - cst_487000=caml_string_of_jsbytes("487000"), - cst_697700=caml_string_of_jsbytes("697700"), - cst_1$53=caml_string_of_jsbytes("1"), - cst_832200$0=caml_string_of_jsbytes("832200"), - cst_2$36=caml_string_of_jsbytes("2"), - cst_850900=caml_string_of_jsbytes("850900"), - cst_3$21=caml_string_of_jsbytes("3"), - cst_883400=caml_string_of_jsbytes("883400"), - cst_4$16=caml_string_of_jsbytes("4"), - cst_916300=caml_string_of_jsbytes("916300"), - cst_5$20=caml_string_of_jsbytes("5"), - cst_948800=caml_string_of_jsbytes("948800"), - cst_6$41=caml_string_of_jsbytes("6"), - cst_981600=caml_string_of_jsbytes("981600"), - cst_32300=caml_string_of_jsbytes("32300"), - cst_981600$0=caml_string_of_jsbytes("981600"), - cst_0$104=caml_string_of_jsbytes("0"), - cst_468300=caml_string_of_jsbytes("468300"), - cst_670900=caml_string_of_jsbytes("670900"), - cst_1$52=caml_string_of_jsbytes("1"), - cst_800200=caml_string_of_jsbytes("800200"), - cst_2$35=caml_string_of_jsbytes("2"), - cst_819200=caml_string_of_jsbytes("819200"), - cst_3$20=caml_string_of_jsbytes("3"), - cst_849500=caml_string_of_jsbytes("849500"), - cst_4$15=caml_string_of_jsbytes("4"), - cst_881100=caml_string_of_jsbytes("881100"), - cst_5$19=caml_string_of_jsbytes("5"), - cst_912400=caml_string_of_jsbytes("912400"), - cst_6$40=caml_string_of_jsbytes("6"), - cst_943900=caml_string_of_jsbytes("943900"), - cst_31100=caml_string_of_jsbytes("31100"), - cst_943900$0=caml_string_of_jsbytes("943900"), - cst_0$103=caml_string_of_jsbytes("0"), - cst_458800=caml_string_of_jsbytes("458800"), - cst_657200=caml_string_of_jsbytes("657200"), - cst_1$51=caml_string_of_jsbytes("1"), - cst_783900=caml_string_of_jsbytes("783900"), - cst_2$34=caml_string_of_jsbytes("2"), - cst_801500=caml_string_of_jsbytes("801500"), - cst_3$19=caml_string_of_jsbytes("3"), - cst_832200=caml_string_of_jsbytes("832200"), - cst_4$14=caml_string_of_jsbytes("4"), - cst_863100=caml_string_of_jsbytes("863100"), - cst_5$18=caml_string_of_jsbytes("5"), - cst_893800=caml_string_of_jsbytes("893800"), - cst_6$38=caml_string_of_jsbytes("6"), - cst_924600=caml_string_of_jsbytes("924600"), - cst_6$39=caml_string_of_jsbytes("6"), - cst_30500=caml_string_of_jsbytes("30500"), - cst_924600$0=caml_string_of_jsbytes("924600"), - cst_969$4=caml_string_of_jsbytes("969"), - cst_1938$1=caml_string_of_jsbytes("1938"), - cst_3767$4=caml_string_of_jsbytes("3767"), - cst_969$2=caml_string_of_jsbytes("969"), - cst_1938=caml_string_of_jsbytes("1938"), - cst_3767$3=caml_string_of_jsbytes("3767"), - cst_6$37=caml_string_of_jsbytes("6."), - cst_969$3=caml_string_of_jsbytes("969"), - cst_1938$0=caml_string_of_jsbytes("1938"), - cst_3767$2=caml_string_of_jsbytes("3767"), - cst_936$5=caml_string_of_jsbytes("936"), - cst_1872$1=caml_string_of_jsbytes("1872"), - cst_3640$6=caml_string_of_jsbytes("3640"), - cst_6$36=caml_string_of_jsbytes("6."), - cst_936$6=caml_string_of_jsbytes("936"), - cst_1872$2=caml_string_of_jsbytes("1872"), - cst_3640$5=caml_string_of_jsbytes("3640"), - cst_936$3=caml_string_of_jsbytes("936"), - cst_1872=caml_string_of_jsbytes("1872"), - cst_3640$4=caml_string_of_jsbytes("3640"), - cst_6$35=caml_string_of_jsbytes("6."), - cst_936$4=caml_string_of_jsbytes("936"), - cst_1872$0=caml_string_of_jsbytes("1872"), - cst_3640$3=caml_string_of_jsbytes("3640"), - cst_932$1=caml_string_of_jsbytes("932"), - cst_1864=caml_string_of_jsbytes("1864"), - cst_3625$2=caml_string_of_jsbytes("3625"), - cst_6$34=caml_string_of_jsbytes("6."), - cst_932$2=caml_string_of_jsbytes("932"), - cst_1864$0=caml_string_of_jsbytes("1864"), - cst_3625$1=caml_string_of_jsbytes("3625"), - cst_929$1=caml_string_of_jsbytes("929"), - cst_1858=caml_string_of_jsbytes("1858"), - cst_3614$2=caml_string_of_jsbytes("3614"), - cst_6$33=caml_string_of_jsbytes("6."), - cst_929$2=caml_string_of_jsbytes("929"), - cst_1858$0=caml_string_of_jsbytes("1858"), - cst_3614$1=caml_string_of_jsbytes("3614"), - cst_1272$0=caml_string_of_jsbytes("1272"), - cst_2805=caml_string_of_jsbytes("2805"), - cst_5612$0=caml_string_of_jsbytes("5612"), - cst_1229$0=caml_string_of_jsbytes("1229"), - cst_2710=caml_string_of_jsbytes("2710"), - cst_5422$0=caml_string_of_jsbytes("5422"), - cst_1224$0=caml_string_of_jsbytes("1224"), - cst_2699=caml_string_of_jsbytes("2699"), - cst_5399$0=caml_string_of_jsbytes("5399"), - cst_969$1=caml_string_of_jsbytes("969"), - cst_3767$1=caml_string_of_jsbytes("3767"), - cst_969=caml_string_of_jsbytes("969"), - cst_3767=caml_string_of_jsbytes("3767"), - cst_6$32=caml_string_of_jsbytes("6."), - cst_969$0=caml_string_of_jsbytes("969"), - cst_3767$0=caml_string_of_jsbytes("3767"), - cst_936$1=caml_string_of_jsbytes("936"), - cst_3640$1=caml_string_of_jsbytes("3640"), - cst_6$31=caml_string_of_jsbytes("6."), - cst_936$2=caml_string_of_jsbytes("936"), - cst_3640$2=caml_string_of_jsbytes("3640"), - cst_936=caml_string_of_jsbytes("936"), - cst_3640=caml_string_of_jsbytes("3640"), - cst_6$30=caml_string_of_jsbytes("6."), - cst_936$0=caml_string_of_jsbytes("936"), - cst_3640$0=caml_string_of_jsbytes("3640"), - cst_932=caml_string_of_jsbytes("932"), - cst_3625=caml_string_of_jsbytes("3625"), - cst_6$29=caml_string_of_jsbytes("6."), - cst_932$0=caml_string_of_jsbytes("932"), - cst_3625$0=caml_string_of_jsbytes("3625"), - cst_929=caml_string_of_jsbytes("929"), - cst_3614=caml_string_of_jsbytes("3614"), - cst_6$28=caml_string_of_jsbytes("6."), - cst_929$0=caml_string_of_jsbytes("929"), - cst_3614$0=caml_string_of_jsbytes("3614"), - cst_1272=caml_string_of_jsbytes("1272"), - cst_5612=caml_string_of_jsbytes("5612"), - cst_1229=caml_string_of_jsbytes("1229"), - cst_5422=caml_string_of_jsbytes("5422"), - cst_1224=caml_string_of_jsbytes("1224"), - cst_5399=caml_string_of_jsbytes("5399"), - cst_6$27=caml_string_of_jsbytes("6"), - cst_5$17=caml_string_of_jsbytes("5."), - cst_6$26=caml_string_of_jsbytes("6"), - cst_5$16=caml_string_of_jsbytes("5."), - cst_6$25=caml_string_of_jsbytes("6"), - cst_5$15=caml_string_of_jsbytes("5."), - cst_6$24=caml_string_of_jsbytes("6"), - cst_5$14=caml_string_of_jsbytes("5."), - cst_6$23=caml_string_of_jsbytes("6"), - cst_5$13=caml_string_of_jsbytes("5."), - cst_1$50=caml_string_of_jsbytes("1"), - cst_1$49=caml_string_of_jsbytes("1"), - cst_1$48=caml_string_of_jsbytes("1"), - cst_1$47=caml_string_of_jsbytes("1"), - cst_1$46=caml_string_of_jsbytes("1"), - cst_6$22=caml_string_of_jsbytes("6"), - cst_5$12=caml_string_of_jsbytes("5."), - cst_6$21=caml_string_of_jsbytes("6"), - cst_5$11=caml_string_of_jsbytes("5."), - cst_6$20=caml_string_of_jsbytes("6"), - cst_5$10=caml_string_of_jsbytes("5."), - cst_6$19=caml_string_of_jsbytes("6"), - cst_5$9=caml_string_of_jsbytes("5."), - cst_6$18=caml_string_of_jsbytes("6"), - cst_5$8=caml_string_of_jsbytes("5."), - cst_1$45=caml_string_of_jsbytes("1"), - cst_1$44=caml_string_of_jsbytes("1"), - cst_1$43=caml_string_of_jsbytes("1"), - cst_6$17=caml_string_of_jsbytes("6"), - cst_0$102=caml_string_of_jsbytes("0."), - cst_6$16=caml_string_of_jsbytes("6"), - cst_0$101=caml_string_of_jsbytes("0."), - cst_6$15=caml_string_of_jsbytes("6"), - cst_0$100=caml_string_of_jsbytes("0."), - cst_6$14=caml_string_of_jsbytes("6"), - cst_0$99=caml_string_of_jsbytes("0."), - cst_6$13=caml_string_of_jsbytes("6"), - cst_0$98=caml_string_of_jsbytes("0."), - cst_6$12=caml_string_of_jsbytes("6"), - cst_6$11=caml_string_of_jsbytes("6"), - cst_6$10=caml_string_of_jsbytes("6"), - cst_6$9=caml_string_of_jsbytes("6"), - cst_0$97=caml_string_of_jsbytes("0"), - cst_0_0281$4=caml_string_of_jsbytes("0.0281"), - cst_0_0299$4=caml_string_of_jsbytes("0.0299"), - cst_1$42=caml_string_of_jsbytes("1"), - cst_0_0238$7=caml_string_of_jsbytes("0.0238"), - cst_2$33=caml_string_of_jsbytes("2"), - cst_0_0217$4=caml_string_of_jsbytes("0.0217"), - cst_3$18=caml_string_of_jsbytes("3"), - cst_0_0194$4=caml_string_of_jsbytes("0.0194"), - cst_4$13=caml_string_of_jsbytes("4"), - cst_0_018$4=caml_string_of_jsbytes("0.018"), - cst_5$7=caml_string_of_jsbytes("5"), - cst_0_0169$4=caml_string_of_jsbytes("0.0169"), - cst_6$8=caml_string_of_jsbytes("6"), - cst_0_0162$4=caml_string_of_jsbytes("0.0162"), - cst_7=caml_string_of_jsbytes("7"), - cst_0_0167=caml_string_of_jsbytes("0.0167"), - cst_7$0=caml_string_of_jsbytes("7"), - cst_0_0006$2=caml_string_of_jsbytes("0.0006"), - cst_0_0167$0=caml_string_of_jsbytes("0.0167"), - cst_0$96=caml_string_of_jsbytes("0"), - cst_0_0281$3=caml_string_of_jsbytes("0.0281"), - cst_0_0299$3=caml_string_of_jsbytes("0.0299"), - cst_1$41=caml_string_of_jsbytes("1"), - cst_0_0238$6=caml_string_of_jsbytes("0.0238"), - cst_2$32=caml_string_of_jsbytes("2"), - cst_0_0217$3=caml_string_of_jsbytes("0.0217"), - cst_3$17=caml_string_of_jsbytes("3"), - cst_0_0194$3=caml_string_of_jsbytes("0.0194"), - cst_4$12=caml_string_of_jsbytes("4"), - cst_0_018$3=caml_string_of_jsbytes("0.018"), - cst_5$6=caml_string_of_jsbytes("5"), - cst_0_0169$3=caml_string_of_jsbytes("0.0169"), - cst_0_0162$3=caml_string_of_jsbytes("0.0162"), - cst_0$95=caml_string_of_jsbytes("0"), - cst_0_0281$2=caml_string_of_jsbytes("0.0281"), - cst_0_0299$2=caml_string_of_jsbytes("0.0299"), - cst_1$40=caml_string_of_jsbytes("1"), - cst_0_0238$5=caml_string_of_jsbytes("0.0238"), - cst_2$31=caml_string_of_jsbytes("2"), - cst_0_0217$2=caml_string_of_jsbytes("0.0217"), - cst_3$16=caml_string_of_jsbytes("3"), - cst_0_0194$2=caml_string_of_jsbytes("0.0194"), - cst_4$11=caml_string_of_jsbytes("4"), - cst_0_018$2=caml_string_of_jsbytes("0.018"), - cst_5$5=caml_string_of_jsbytes("5"), - cst_0_0169$2=caml_string_of_jsbytes("0.0169"), - cst_0_0162$2=caml_string_of_jsbytes("0.0162"), - cst_0$94=caml_string_of_jsbytes("0"), - cst_0_0281$1=caml_string_of_jsbytes("0.0281"), - cst_0_0299$1=caml_string_of_jsbytes("0.0299"), - cst_1$39=caml_string_of_jsbytes("1"), - cst_0_0238$4=caml_string_of_jsbytes("0.0238"), - cst_2$30=caml_string_of_jsbytes("2"), - cst_0_0217$1=caml_string_of_jsbytes("0.0217"), - cst_3$15=caml_string_of_jsbytes("3"), - cst_0_0194$1=caml_string_of_jsbytes("0.0194"), - cst_4$10=caml_string_of_jsbytes("4"), - cst_0_018$1=caml_string_of_jsbytes("0.018"), - cst_5$4=caml_string_of_jsbytes("5"), - cst_0_0169$1=caml_string_of_jsbytes("0.0169"), - cst_0_0162$1=caml_string_of_jsbytes("0.0162"), - cst_0$93=caml_string_of_jsbytes("0"), - cst_0_0281$0=caml_string_of_jsbytes("0.0281"), - cst_0_0299$0=caml_string_of_jsbytes("0.0299"), - cst_1$38=caml_string_of_jsbytes("1"), - cst_0_0238$3=caml_string_of_jsbytes("0.0238"), - cst_2$29=caml_string_of_jsbytes("2"), - cst_0_0217$0=caml_string_of_jsbytes("0.0217"), - cst_3$14=caml_string_of_jsbytes("3"), - cst_0_0194$0=caml_string_of_jsbytes("0.0194"), - cst_4$9=caml_string_of_jsbytes("4"), - cst_0_018$0=caml_string_of_jsbytes("0.018"), - cst_5$3=caml_string_of_jsbytes("5"), - cst_0_0169$0=caml_string_of_jsbytes("0.0169"), - cst_0_0162$0=caml_string_of_jsbytes("0.0162"), - cst_0$92=caml_string_of_jsbytes("0"), - cst_0_0281=caml_string_of_jsbytes("0.0281"), - cst_0_0299=caml_string_of_jsbytes("0.0299"), - cst_1$37=caml_string_of_jsbytes("1"), - cst_0_0238$2=caml_string_of_jsbytes("0.0238"), - cst_2$28=caml_string_of_jsbytes("2"), - cst_0_0217=caml_string_of_jsbytes("0.0217"), - cst_3$13=caml_string_of_jsbytes("3"), - cst_0_0194=caml_string_of_jsbytes("0.0194"), - cst_4$8=caml_string_of_jsbytes("4"), - cst_0_018=caml_string_of_jsbytes("0.018"), - cst_5$2=caml_string_of_jsbytes("5"), - cst_0_0169=caml_string_of_jsbytes("0.0169"), - cst_0_0162=caml_string_of_jsbytes("0.0162"), - cst_0$91=caml_string_of_jsbytes("0"), - cst_0_0283$1=caml_string_of_jsbytes("0.0283"), - cst_0_0315$1=caml_string_of_jsbytes("0.0315"), - cst_1$36=caml_string_of_jsbytes("1"), - cst_0_027$1=caml_string_of_jsbytes("0.027"), - cst_2$27=caml_string_of_jsbytes("2"), - cst_0_0238$1=caml_string_of_jsbytes("0.0238"), - cst_3$12=caml_string_of_jsbytes("3"), - cst_0_0201$1=caml_string_of_jsbytes("0.0201"), - cst_4$7=caml_string_of_jsbytes("4"), - cst_0_0185$1=caml_string_of_jsbytes("0.0185"), - cst_5$1=caml_string_of_jsbytes("5"), - cst_0_0179$1=caml_string_of_jsbytes("0.0179"), - cst_6$6=caml_string_of_jsbytes("6"), - cst_0_0173$3=caml_string_of_jsbytes("0.0173"), - cst_6$7=caml_string_of_jsbytes("6"), - cst_0_0006$1=caml_string_of_jsbytes("0.0006"), - cst_0_0173$4=caml_string_of_jsbytes("0.0173"), - cst_0$90=caml_string_of_jsbytes("0"), - cst_0_0283$0=caml_string_of_jsbytes("0.0283"), - cst_0_0315$0=caml_string_of_jsbytes("0.0315"), - cst_1$35=caml_string_of_jsbytes("1"), - cst_0_027$0=caml_string_of_jsbytes("0.027"), - cst_2$26=caml_string_of_jsbytes("2"), - cst_0_0238$0=caml_string_of_jsbytes("0.0238"), - cst_3$11=caml_string_of_jsbytes("3"), - cst_0_0201$0=caml_string_of_jsbytes("0.0201"), - cst_4$6=caml_string_of_jsbytes("4"), - cst_0_0185$0=caml_string_of_jsbytes("0.0185"), - cst_5$0=caml_string_of_jsbytes("5"), - cst_0_0179$0=caml_string_of_jsbytes("0.0179"), - cst_6$4=caml_string_of_jsbytes("6"), - cst_0_0173$1=caml_string_of_jsbytes("0.0173"), - cst_6$5=caml_string_of_jsbytes("6"), - cst_0_0006$0=caml_string_of_jsbytes("0.0006"), - cst_0_0173$2=caml_string_of_jsbytes("0.0173"), - cst_0$89=caml_string_of_jsbytes("0"), - cst_0_0283=caml_string_of_jsbytes("0.0283"), - cst_0_0315=caml_string_of_jsbytes("0.0315"), - cst_1$34=caml_string_of_jsbytes("1"), - cst_0_027=caml_string_of_jsbytes("0.027"), - cst_2$25=caml_string_of_jsbytes("2"), - cst_0_0238=caml_string_of_jsbytes("0.0238"), - cst_3$10=caml_string_of_jsbytes("3"), - cst_0_0201=caml_string_of_jsbytes("0.0201"), - cst_4$5=caml_string_of_jsbytes("4"), - cst_0_0185=caml_string_of_jsbytes("0.0185"), - cst_5=caml_string_of_jsbytes("5"), - cst_0_0179=caml_string_of_jsbytes("0.0179"), - cst_6$2=caml_string_of_jsbytes("6"), - cst_0_0173=caml_string_of_jsbytes("0.0173"), - cst_6$3=caml_string_of_jsbytes("6"), - cst_0_0006=caml_string_of_jsbytes("0.0006"), - cst_0_0173$0=caml_string_of_jsbytes("0.0173"), - cst_3$9=caml_string_of_jsbytes("3."), - cst_2$24=caml_string_of_jsbytes("2."), - cst_0$88=caml_string_of_jsbytes("0"), - cst_1000=caml_string_of_jsbytes("1000"), - cst_1000$0=caml_string_of_jsbytes("1000"), - cst_500=caml_string_of_jsbytes("500"), - cst_0_98=caml_string_of_jsbytes("0.98"), - cst_2_5$4=caml_string_of_jsbytes("2.5"), - cst_0_98$0=caml_string_of_jsbytes("0.98"), - cst_0_9=caml_string_of_jsbytes("0.9"), - cst_0$144=caml_string_of_jsbytes("0"), - cst_0$87=caml_string_of_jsbytes("0"), - cst_100=caml_string_of_jsbytes("100."), - cst_49=caml_string_of_jsbytes("49"), - cst_0_01=caml_string_of_jsbytes("0.01"), - cst_1003$0=caml_string_of_jsbytes("1003"), - cst_757$0=caml_string_of_jsbytes("757"), - cst_1015$0=caml_string_of_jsbytes("1015"), - cst_766$0=caml_string_of_jsbytes("766"), - cst_1025$0=caml_string_of_jsbytes("1025"), - cst_774$0=caml_string_of_jsbytes("774"), - cst_1057$0=caml_string_of_jsbytes("1057"), - cst_798$0=caml_string_of_jsbytes("798"), - cst_1085$0=caml_string_of_jsbytes("1085"), - cst_819$0=caml_string_of_jsbytes("819"), - cst_1107$0=caml_string_of_jsbytes("1107"), - cst_835$0=caml_string_of_jsbytes("835"), - cst_1127$0=caml_string_of_jsbytes("1127"), - cst_851$0=caml_string_of_jsbytes("851"), - cst_41316$0=caml_string_of_jsbytes("41316"), - cst_41440$0=caml_string_of_jsbytes("41440"), - cst_41481$0=caml_string_of_jsbytes("41481"), - cst_42228$0=caml_string_of_jsbytes("42228"), - cst_0$86=caml_string_of_jsbytes("0"), - cst_0$85=caml_string_of_jsbytes("0"), - cst_0$83=caml_string_of_jsbytes("0"), - cst_0$84=caml_string_of_jsbytes("0"), - cst_2$23=caml_string_of_jsbytes("2."), - cst_0$81=caml_string_of_jsbytes("0"), - cst_0$82=caml_string_of_jsbytes("0"), - cst_2$22=caml_string_of_jsbytes("2."), - cst_6$1=caml_string_of_jsbytes("6."), - cst_1$33=caml_string_of_jsbytes("1."), - cst_2$21=caml_string_of_jsbytes("2."), - cst_0$80=caml_string_of_jsbytes("0"), - cst_6$0=caml_string_of_jsbytes("6."), - cst_1$32=caml_string_of_jsbytes("1."), - cst_2$20=caml_string_of_jsbytes("2."), - cst_0$79=caml_string_of_jsbytes("0"), - cst_12$13=caml_string_of_jsbytes("12."), - cst_1952=caml_string_of_jsbytes("1952"), - cst_1953=caml_string_of_jsbytes("1953"), - cst_1954=caml_string_of_jsbytes("1954"), - cst_0$78=caml_string_of_jsbytes("0"), - cst_1_4$0=caml_string_of_jsbytes("1.4"), - cst_1_8$0=caml_string_of_jsbytes("1.8"), - cst_1$31=caml_string_of_jsbytes("1"), - cst_2_5$1=caml_string_of_jsbytes("2.5"), - cst_2$19=caml_string_of_jsbytes("2"), - cst_3$7=caml_string_of_jsbytes("3."), - cst_3$8=caml_string_of_jsbytes("3"), - cst_3_7$1=caml_string_of_jsbytes("3.7"), - cst_4$3=caml_string_of_jsbytes("4"), - cst_4_3$1=caml_string_of_jsbytes("4.3"), - cst_4$4=caml_string_of_jsbytes("4"), - cst_0_5$3=caml_string_of_jsbytes("0.5"), - cst_4_3$2=caml_string_of_jsbytes("4.3"), - cst_6=caml_string_of_jsbytes("6"), - cst_1$30=caml_string_of_jsbytes("1."), - cst_4$1=caml_string_of_jsbytes("4"), - cst_4$2=caml_string_of_jsbytes("4"), - cst_0_5$2=caml_string_of_jsbytes("0.5"), - cst_0$77=caml_string_of_jsbytes("0."), - cst_4=caml_string_of_jsbytes("4"), - cst_4$0=caml_string_of_jsbytes("4"), - cst_0_5$1=caml_string_of_jsbytes("0.5"), - cst_0$76=caml_string_of_jsbytes("0."), - cst_0$75=caml_string_of_jsbytes("0"), - cst_1_2=caml_string_of_jsbytes("1.2"), - cst_1_5=caml_string_of_jsbytes("1.5"), - cst_1$29=caml_string_of_jsbytes("1"), - cst_2_5$0=caml_string_of_jsbytes("2.5"), - cst_2$18=caml_string_of_jsbytes("2"), - cst_3$5=caml_string_of_jsbytes("3."), - cst_3$6=caml_string_of_jsbytes("3"), - cst_3_7$0=caml_string_of_jsbytes("3.7"), - cst_4_3$0=caml_string_of_jsbytes("4.3"), - cst_0$74=caml_string_of_jsbytes("0"), - cst_1_4=caml_string_of_jsbytes("1.4"), - cst_1_8=caml_string_of_jsbytes("1.8"), - cst_1$28=caml_string_of_jsbytes("1"), - cst_2_5=caml_string_of_jsbytes("2.5"), - cst_2$17=caml_string_of_jsbytes("2"), - cst_3$3=caml_string_of_jsbytes("3."), - cst_3$4=caml_string_of_jsbytes("3"), - cst_3_7=caml_string_of_jsbytes("3.7"), - cst_4_3=caml_string_of_jsbytes("4.3"), - cst_0$72=caml_string_of_jsbytes("0."), - cst_12$12=caml_string_of_jsbytes("12."), - cst_0$73=caml_string_of_jsbytes("0."), - cst_0$70=caml_string_of_jsbytes("0."), - cst_12$11=caml_string_of_jsbytes("12."), - cst_0$71=caml_string_of_jsbytes("0."), - cst_0_328=caml_string_of_jsbytes("0.328"), - cst_409505=caml_string_of_jsbytes("409505"), - cst_0_232$0=caml_string_of_jsbytes("0.232"), - cst_262985=caml_string_of_jsbytes("262985"), - cst_409505$0=caml_string_of_jsbytes("409505"), - cst_0_208=caml_string_of_jsbytes("0.208"), - cst_204761=caml_string_of_jsbytes("204761"), - cst_262985$0=caml_string_of_jsbytes("262985"), - cst_0_024=caml_string_of_jsbytes("0.024"), - cst_142303=caml_string_of_jsbytes("142303"), - cst_204761$0=caml_string_of_jsbytes("204761"), - cst_0$68=caml_string_of_jsbytes("0."), - cst_0$69=caml_string_of_jsbytes("0"), - cst_142303$0=caml_string_of_jsbytes("142303"), - cst_0_48=caml_string_of_jsbytes("0.48"), - cst_633129=caml_string_of_jsbytes("633129"), - cst_0_32$1=caml_string_of_jsbytes("0.32"), - cst_535744=caml_string_of_jsbytes("535744"), - cst_633129$0=caml_string_of_jsbytes("633129"), - cst_0_264=caml_string_of_jsbytes("0.264"), - cst_389618=caml_string_of_jsbytes("389618"), - cst_535744$0=caml_string_of_jsbytes("535744"), - cst_0_216=caml_string_of_jsbytes("0.216"), - cst_267871=caml_string_of_jsbytes("267871"), - cst_389618$0=caml_string_of_jsbytes("389618"), - cst_0_104=caml_string_of_jsbytes("0.104"), - cst_194810=caml_string_of_jsbytes("194810"), - cst_267871$0=caml_string_of_jsbytes("267871"), - cst_0_04$0=caml_string_of_jsbytes("0.04"), - cst_0$67=caml_string_of_jsbytes("0"), - cst_194810$0=caml_string_of_jsbytes("194810"), - cst_7632=caml_string_of_jsbytes("7632"), - cst_4557=caml_string_of_jsbytes("4557"), - cst_0_005=caml_string_of_jsbytes("0.005"), - cst_ge_l512_3_2_in=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2_in"), - cst_r_sidence_in$11=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_prestation_courante_in$0= - caml_string_of_jsbytes("prestation_courante_in"), - cst_date_courante_in$26=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$10=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$25=caml_string_of_jsbytes("date_courante_in"), - cst_ann_es_in$2=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$24=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$2=caml_string_of_jsbytes("date_naissance_in"), - cst_ann_es_in$1=caml_string_of_jsbytes("ann\xc3\xa9es_in"), - cst_date_courante_in$23=caml_string_of_jsbytes("date_courante_in"), - cst_date_naissance_in$1=caml_string_of_jsbytes("date_naissance_in"), - cst_date_courante_in$22=caml_string_of_jsbytes("date_courante_in"), - cst_ressources_m_nage_prises_e$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), - cst_date_courante_in$21=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$4=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$4=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_ressources_m_nage_prises_e= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_prises_en_compte_in"), - cst_date_courante_in$20=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$3=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$3=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_montant_dette_in=caml_string_of_jsbytes("montant_dette_in"), - cst_d_pense_logement_in= - caml_string_of_jsbytes("d\xc3\xa9pense_logement_in"), - cst_montant_charges_in=caml_string_of_jsbytes("montant_charges_in"), - cst_montant_apl_in=caml_string_of_jsbytes("montant_apl_in"), - cst_aide_vers_e_in=caml_string_of_jsbytes("aide_vers\xc3\xa9e_in"), - cst_mode_occupation_in$2=caml_string_of_jsbytes("mode_occupation_in"), - cst_date_naissance_assur_in= - caml_string_of_jsbytes("date_naissance_assur\xc3\xa9_in"), - cst_r_sidence_in$9=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_type_aide_in$2=caml_string_of_jsbytes("type_aide_in"), - cst_date_courante_in$19=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$6=caml_string_of_jsbytes("zone_in"), - cst_nombre_personnes_charge_in$8= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_situation_familiale_in$1= - caml_string_of_jsbytes("situation_familiale_in"), - cst_ressources_m_nage_sans_arr$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), - cst_mode_occupation_in$1=caml_string_of_jsbytes("mode_occupation_in"), - cst_cat_gorie_quivalence_loyer$0= - caml_string_of_jsbytes - ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in"), - cst_date_courante_in$18=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$5=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$6= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$7= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$6= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_redevance_in$0=caml_string_of_jsbytes("redevance_in"), - cst_r_sidence_in$8=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_conventionnement_in$0= - caml_string_of_jsbytes("date_conventionnement_in"), - cst_type_logement_foyer_in$0= - caml_string_of_jsbytes("type_logement_foyer_in"), - cst_op_rations_logement_voluti$0= - caml_string_of_jsbytes - ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in"), - cst_copropri_t_in$0= - caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), - cst_charges_mensuelles_pr_t_in= - caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat_in"), - cst_date_entr_e_logement_in$0= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), - cst_local_habit_premi_re_fois_$1= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), - cst_type_travaux_logement_in$0= - caml_string_of_jsbytes("type_travaux_logement_in"), - cst_date_signature_pr_t_in$0= - caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), - cst_situation_r822_11_13_17_in$0= - caml_string_of_jsbytes("situation_r822_11_13_17_in"), - cst_mensualit_principale_in$0= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), - cst_date_courante_in$17=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$7=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_zone_in$4=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$5= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$6= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$5= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), - cst_changement_logement_d842_4$0= - caml_string_of_jsbytes("changement_logement_d842_4_in"), - cst_r_sidence_in$6=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_logement_meubl_d842_2_in$0= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), - cst_r_duction_loyer_solidarit_$1= - caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), - cst_colocation_in$0=caml_string_of_jsbytes("colocation_in"), - cst_type_aide_in$1=caml_string_of_jsbytes("type_aide_in"), - cst_g_es_ou_handicap_adultes_h$1= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), - cst_logement_est_chambre_in$0= - caml_string_of_jsbytes("logement_est_chambre_in"), - cst_zone_in$3=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$4= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$5= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_date_courante_in$16=caml_string_of_jsbytes("date_courante_in"), - cst_b_n_ficiaire_aide_adulte_o$2= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), - cst_ressources_m_nage_arrondie$4= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_loyer_principal_in=caml_string_of_jsbytes("loyer_principal_in"), - cst_r_sidence_in$5=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_date_courante_in$15=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$2=caml_string_of_jsbytes("zone_in"), - cst_nombre_personnes_charge_in$4= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_situation_familiale_in$0= - caml_string_of_jsbytes("situation_familiale_in"), - cst_ressources_m_nage_sans_arr= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_sans_arrondi_in"), - cst_type_aide_in$0=caml_string_of_jsbytes("type_aide_in"), - cst_mode_occupation_in$0=caml_string_of_jsbytes("mode_occupation_in"), - cst_date_courante_in$14=caml_string_of_jsbytes("date_courante_in"), - cst_anciennet_logement_in= - caml_string_of_jsbytes("anciennet\xc3\xa9_logement_in"), - cst_type_pr_t_in=caml_string_of_jsbytes("type_pr\xc3\xaat_in"), - cst_zone_in$1=caml_string_of_jsbytes("zone_in"), - cst_situation_r822_11_13_17_in= - caml_string_of_jsbytes("situation_r822_11_13_17_in"), - cst_copropri_t_in=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9_in"), - cst_date_entr_e_logement_in= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement_in"), - cst_local_habit_premi_re_fois_$0= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in"), - cst_date_signature_pr_t_in= - caml_string_of_jsbytes("date_signature_pr\xc3\xaat_in"), - cst_type_travaux_logement_in= - caml_string_of_jsbytes("type_travaux_logement_in"), - cst_situation_familiale_calcul$3= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$3= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$3= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_mensualit_principale_in= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale_in"), - cst_situation_familiale_calcul$2= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$2= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_n_nombre_parts_d832_25_in$0= - caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), - cst_limitation_majoration_pers$0= - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge_in"), - cst_condition_2_du_832_25_in$1= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_r_sidence_in$4=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_redevance_in=caml_string_of_jsbytes("redevance_in"), - cst_date_courante_in$13=caml_string_of_jsbytes("date_courante_in"), - cst_zone_in$0=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul$1= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$1= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_ressources_m_nage_arrondie$2= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_date_conventionnement_in= - caml_string_of_jsbytes("date_conventionnement_in"), - cst_type_logement_foyer_in= - caml_string_of_jsbytes("type_logement_foyer_in"), - cst_limitation_majoration_pers= - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge_in"), - cst_r_sidence_in$3=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_situation_familiale_calcul$0= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in$0= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_condition_2_du_832_25_in$0= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_n_nombre_parts_d832_25_in= - caml_string_of_jsbytes("n_nombre_parts_d832_25_in"), - cst_condition_2_du_832_25_in= - caml_string_of_jsbytes("condition_2_du_832_25_in"), - cst_ressources_m_nage_arrondie$1= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_date_courante_in$12=caml_string_of_jsbytes("date_courante_in"), - cst_r_sidence_in$2=caml_string_of_jsbytes("r\xc3\xa9sidence_in"), - cst_logement_meubl_d842_2_in= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2_in"), - cst_r_duction_loyer_solidarit_$0= - caml_string_of_jsbytes("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in"), - cst_colocation_in=caml_string_of_jsbytes("colocation_in"), - cst_type_aide_in=caml_string_of_jsbytes("type_aide_in"), - cst_g_es_ou_handicap_adultes_h$0= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in"), - cst_logement_est_chambre_in= - caml_string_of_jsbytes("logement_est_chambre_in"), - cst_zone_in=caml_string_of_jsbytes("zone_in"), - cst_situation_familiale_calcul= - caml_string_of_jsbytes("situation_familiale_calcul_apl_in"), - cst_nombre_personnes_charge_in= - caml_string_of_jsbytes("nombre_personnes_\xc3\xa0_charge_in"), - cst_date_courante_in$11=caml_string_of_jsbytes("date_courante_in"), - cst_b_n_ficiaire_aide_adulte_o$1= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in"), - cst_ressources_m_nage_arrondie$0= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_in"), - cst_loyer_principal_base_in= - caml_string_of_jsbytes("loyer_principal_base_in"), - cst_date_courante_in$10=caml_string_of_jsbytes("date_courante_in"), - cst_ressources_m_nage_arrondie= - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_base_in"), - cst_paiement_logement_distinct= - caml_string_of_jsbytes("paiement_logement_distinct_professionnel_in"), - cst_date_demande_ou_reexamen_d= - caml_string_of_jsbytes("date_demande_ou_reexamen_droit_in"), - cst_demandeur_poursuit_des_tud= - caml_string_of_jsbytes("demandeur_poursuit_des_\xc3\xa9tudes_in"), - cst_condition_ge_bourse_enseig= - caml_string_of_jsbytes - ("condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in"), - cst_date_courante_in$9=caml_string_of_jsbytes("date_courante_in"), - cst_mode_occupation_in=caml_string_of_jsbytes("mode_occupation_in"), - cst_situation_familiale_in= - caml_string_of_jsbytes("situation_familiale_in"), - cst_personnes_charge_in= - caml_string_of_jsbytes("personnes_\xc3\xa0_charge_in"), - cst_conjoint_exerce_activit_r_= - caml_string_of_jsbytes - ("conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), - cst_demandeur_exerce_activit_r= - caml_string_of_jsbytes - ("demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in"), - cst_personnes_vivant_habituell= - caml_string_of_jsbytes("personnes_vivant_habituellement_foyer_in"), - cst_ressources_conjoint_in= - caml_string_of_jsbytes("ressources_conjoint_in"), - cst_ressources_demandeur_in= - caml_string_of_jsbytes("ressources_demandeur_in"), - cst_d_penses_justifi_es_r_elle= - caml_string_of_jsbytes - ("d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in"), - cst_date_courante_in$8=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$2=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$2=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_emm_nagement_in= - caml_string_of_jsbytes("date_emm\xc3\xa9nagement_in"), - cst_informations_in=caml_string_of_jsbytes("informations_in"), - cst_b_n_ficie_aide_personnalis= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in"), - cst_demandeur_in$1=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$1=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_courante_in$7=caml_string_of_jsbytes("date_courante_in"), - cst_date_courante_in$6=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in$0=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in$0=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_date_entr_e_vigueur_diff_r= - caml_string_of_jsbytes - ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in"), - cst_condition_logement_surface= - caml_string_of_jsbytes("condition_logement_surface_in"), - cst_condition_logement_r_siden= - caml_string_of_jsbytes - ("condition_logement_r\xc3\xa9sidence_principale_in"), - cst_date_courante_in$5=caml_string_of_jsbytes("date_courante_in"), - cst_demandeur_in=caml_string_of_jsbytes("demandeur_in"), - cst_m_nage_in=caml_string_of_jsbytes("m\xc3\xa9nage_in"), - cst_r_sidence=caml_string_of_jsbytes("r\xc3\xa9sidence"), - cst_personnes_g_es_handicap_es= - caml_string_of_jsbytes - ("personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4"), - cst_enfant_na_tre_apr_s_quatri= - caml_string_of_jsbytes - ("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"), - cst_condition_rattach_foyer_fi= - caml_string_of_jsbytes - ("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"), - cst_situation_familiale=caml_string_of_jsbytes("situation_familiale"), - cst_nombre_autres_occupants_lo= - caml_string_of_jsbytes("nombre_autres_occupants_logement"), - cst_personnes_charge=caml_string_of_jsbytes("personnes_\xc3\xa0_charge"), - cst_logement=caml_string_of_jsbytes("logement"), - cst_prestations_re_ues= - caml_string_of_jsbytes("prestations_re\xc3\xa7ues"), - cst_zone=caml_string_of_jsbytes("zone"), - cst_surface_m_carr_s=caml_string_of_jsbytes("surface_m_carr\xc3\xa9s"), - cst_logement_decent_l89_462= - caml_string_of_jsbytes("logement_decent_l89_462"), - cst_usufruit=caml_string_of_jsbytes("usufruit"), - cst_lou_ou_sous_lou_des_tiers= - caml_string_of_jsbytes - ("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"), - cst_propri_taire=caml_string_of_jsbytes("propri\xc3\xa9taire"), - cst_mode_occupation=caml_string_of_jsbytes("mode_occupation"), - cst_est_ehpad_ou_maison_autono= - caml_string_of_jsbytes("est_ehpad_ou_maison_autonomie_l313_12_asf"), - cst_r_sidence_principale= - caml_string_of_jsbytes("r\xc3\xa9sidence_principale"), - cst_condition_2_r823_4=caml_string_of_jsbytes("condition_2_r823_4"), - cst_coefficents_enfants_garde_$2= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr$1= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit$3=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_date_courante$0=caml_string_of_jsbytes("date_courante"), - cst_Locataire=caml_string_of_jsbytes("Locataire"), - cst_R_sidentLogementFoyer= - caml_string_of_jsbytes("R\xc3\xa9sidentLogementFoyer"), - cst_AccessionPropri_t_LocalUsa= - caml_string_of_jsbytes - ("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"), - cst_SousLocataire=caml_string_of_jsbytes("SousLocataire"), - cst_LocationAccession=caml_string_of_jsbytes("LocationAccession"), - cst_Location=caml_string_of_jsbytes("Location"), - cst_AccessionPropri_t= - caml_string_of_jsbytes("AccessionPropri\xc3\xa9t\xc3\xa9"), - cst_LogementFoyer=caml_string_of_jsbytes("LogementFoyer"), - cst_Enfant_Charge=caml_string_of_jsbytes("Enfant\xc3\x80Charge"), - cst_AutrePersonne_Charge= - caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"), - cst_changement_logement_d842_4= - caml_string_of_jsbytes("changement_logement_d842_4"), - cst_logement_meubl_d842_2$0= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), - cst_g_es_ou_handicap_adultes_h= - caml_string_of_jsbytes - ("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), - cst_colocation=caml_string_of_jsbytes("colocation"), - cst_logement_est_chambre=caml_string_of_jsbytes("logement_est_chambre"), - cst_b_n_ficiaire_aide_adulte_o$0= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - cst_loyer_principal=caml_string_of_jsbytes("loyer_principal"), - cst_bailleur=caml_string_of_jsbytes("bailleur"), - cst_tudes_apprentissage_stage_= - caml_string_of_jsbytes - ("\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail"), - cst_situation_garde_altern_e= - caml_string_of_jsbytes("situation_garde_altern\xc3\xa9e"), - cst_obligation_scolaire$1=caml_string_of_jsbytes("obligation_scolaire"), - cst_r_muneration_mensuelle$1= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_date_de_naissance$1=caml_string_of_jsbytes("date_de_naissance"), - cst_a_d_j_ouvert_droit_aux_all$1= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_b_n_ficie_titre_personnel_$1= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_nationalit$0=caml_string_of_jsbytes("nationalit\xc3\xa9"), - cst_identifiant$1=caml_string_of_jsbytes("identifiant"), - cst_magistrat_fonctionnaire_ce= - caml_string_of_jsbytes - ("magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte"), - cst_est_non_salari_agricole_l7= - caml_string_of_jsbytes - ("est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural"), - cst_personne_h_berg_e_centre_s= - caml_string_of_jsbytes - ("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"), - cst_patrimoine=caml_string_of_jsbytes("patrimoine"), - cst_nationalit=caml_string_of_jsbytes("nationalit\xc3\xa9"), - cst_date_naissance$0=caml_string_of_jsbytes("date_naissance"), - cst_r_gime_outre_mer_l751_1$0= - caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"), - cst_conditions_hors_ge$0= - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - cst_droit_ouvert$0=caml_string_of_jsbytes("droit_ouvert"), - cst_ge_l512_3_2$0=caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"), - cst_op_rations_logement_voluti= - caml_string_of_jsbytes - ("op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat"), - cst_pr_t=caml_string_of_jsbytes("pr\xc3\xaat"), - cst_anciennet_logement= - caml_string_of_jsbytes("anciennet\xc3\xa9_logement"), - cst_situation_r822_11_13_17= - caml_string_of_jsbytes("situation_r822_11_13_17"), - cst_copropri_t=caml_string_of_jsbytes("copropri\xc3\xa9t\xc3\xa9"), - cst_local_habit_premi_re_fois_= - caml_string_of_jsbytes - ("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"), - cst_type_travaux_logement_r842= - caml_string_of_jsbytes("type_travaux_logement_r842_5"), - cst_type_travaux_logement_d832= - caml_string_of_jsbytes("type_travaux_logement_d832_15"), - cst_date_entr_e_logement= - caml_string_of_jsbytes("date_entr\xc3\xa9e_logement"), - cst_charges_mensuelles_pr_t= - caml_string_of_jsbytes("charges_mensuelles_pr\xc3\xaat"), - cst_mensualit_principale= - caml_string_of_jsbytes("mensualit\xc3\xa9_principale"), - cst_date_naissance_troisi_me_e= - caml_string_of_jsbytes - ("date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus"), - cst_nombre_enfants_na_tre_apr_= - caml_string_of_jsbytes - ("nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse"), - cst_Changement=caml_string_of_jsbytes("Changement"), - cst_PasDeChangement=caml_string_of_jsbytes("PasDeChangement"), - cst_Fran_aise=caml_string_of_jsbytes("Fran\xc3\xa7aise"), - cst_trang_re=caml_string_of_jsbytes("\xc3\x89trang\xc3\xa8re"), - cst_Non$1=caml_string_of_jsbytes("Non"), - cst_Oui$0=caml_string_of_jsbytes("Oui"), - cst_BailleurSocial=caml_string_of_jsbytes("BailleurSocial"), - cst_BailleurPriv_AvecConventio= - caml_string_of_jsbytes("BailleurPriv\xc3\xa9AvecConventionnementSocial"), - cst_BailleurPriv=caml_string_of_jsbytes("BailleurPriv\xc3\xa9"), - cst_b_n_ficie_titre_personnel_$0= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement"), - cst_a_d_j_ouvert_droit_aux_all$0= - caml_string_of_jsbytes - ("a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales"), - cst_prise_en_charge$0=caml_string_of_jsbytes("prise_en_charge"), - cst_date_de_naissance$0=caml_string_of_jsbytes("date_de_naissance"), - cst_r_muneration_mensuelle$0= - caml_string_of_jsbytes("r\xc3\xa9muneration_mensuelle"), - cst_obligation_scolaire$0=caml_string_of_jsbytes("obligation_scolaire"), - cst_identifiant$0=caml_string_of_jsbytes("identifiant"), - cst_logement_meubl_d842_2= - caml_string_of_jsbytes("logement_meubl\xc3\xa9_d842_2"), - cst_b_n_ficiaire_aide_adulte_o= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - cst_cat_gorie_quivalence_loyer= - caml_string_of_jsbytes - ("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"), - cst_redevance=caml_string_of_jsbytes("redevance"), - cst_construit_application_loi_= - caml_string_of_jsbytes("construit_application_loi_1957_12_III"), - cst_date_conventionnement=caml_string_of_jsbytes("date_conventionnement"), - cst_conventionn_selon_r_gles_d= - caml_string_of_jsbytes("conventionn\xc3\xa9_selon_r\xc3\xa8gles_drom"), - cst_conventionn_livre_III_titr$1= - caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), - cst_remplit_conditions_r832_21= - caml_string_of_jsbytes("remplit_conditions_r832_21"), - cst_type=caml_string_of_jsbytes("type"), - cst_accord_financement_repr_se= - caml_string_of_jsbytes - ("accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer"), - cst_titulaire_pr_t=caml_string_of_jsbytes("titulaire_pr\xc3\xaat"), - cst_date_signature=caml_string_of_jsbytes("date_signature"), - cst_type_pr_t=caml_string_of_jsbytes("type_pr\xc3\xaat"), - cst_coefficents_enfants_garde_$1= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr$0= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit$2=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_MoinsDeTroisEnfants=caml_string_of_jsbytes("MoinsDeTroisEnfants"), - cst_PlusDeTroisEnfants=caml_string_of_jsbytes("PlusDeTroisEnfants"), - cst_titulaire_allocation_perso= - caml_string_of_jsbytes - ("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"), - cst_b_n_ficiaire_l161_19_l351_= - caml_string_of_jsbytes - ("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"), - cst_incapacit_80_pourcent_ou_r= - caml_string_of_jsbytes - ("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"), - cst_parent=caml_string_of_jsbytes("parent\xc3\xa9"), - cst_ascendant_descendant_colla= - caml_string_of_jsbytes - ("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"), - cst_ressources$0=caml_string_of_jsbytes("ressources"), - cst_date_naissance=caml_string_of_jsbytes("date_naissance"), - cst_taux$0=caml_string_of_jsbytes("taux"), - cst_bas$0=caml_string_of_jsbytes("bas"), - cst_haut$0=caml_string_of_jsbytes("haut"), - cst_taux=caml_string_of_jsbytes("taux"), - cst_bas=caml_string_of_jsbytes("bas"), - cst_haut=caml_string_of_jsbytes("haut"), - cst_Neuf=caml_string_of_jsbytes("Neuf"), - cst_Ancien=caml_string_of_jsbytes("Ancien"), - cst_brut_horaire$0=caml_string_of_jsbytes("brut_horaire"), - cst_est_sup_rieur$0=caml_string_of_jsbytes("est_sup\xc3\xa9rieur"), - cst_est_inf_rieur_ou_gal$0= - caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"), - cst_montant$2=caml_string_of_jsbytes("montant"), - cst_aide_finale=caml_string_of_jsbytes("aide_finale"), - cst_ligibilit$1=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_coefficents_enfants_garde_$0= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_traitement_aide_finale$8= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$8=caml_string_of_jsbytes("aide_finale_formule"), - cst_ligibilit$0=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_montant_impay=caml_string_of_jsbytes("montant_impay\xc3\xa9"), - cst_ge_ouverture_droit= - caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"), - cst_traitement_aide_finale$7= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$7=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$6= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$6=caml_string_of_jsbytes("aide_finale_formule"), - cst_loyer_minimal=caml_string_of_jsbytes("loyer_minimal"), - cst_montant_forfaitaire_charge$0= - caml_string_of_jsbytes("montant_forfaitaire_charges"), - cst_quivalence_loyer=caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"), - cst_coefficient_prise_en_charg$2= - caml_string_of_jsbytes("coefficient_prise_en_charge"), - cst_traitement_aide_finale$5= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$5=caml_string_of_jsbytes("aide_finale_formule"), - cst_coefficient_prise_en_charg$1= - caml_string_of_jsbytes("coefficient_prise_en_charge"), - cst_mensualit_minimale$0= - caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"), - cst_mensualit_ligible$0= - caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"), - cst_traitement_aide_finale$4= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$4=caml_string_of_jsbytes("aide_finale_formule"), - cst_ancienne_allocation_logeme= - caml_string_of_jsbytes("ancienne_allocation_logement"), - cst_ancien_loyer_principal= - caml_string_of_jsbytes("ancien_loyer_principal"), - cst_traitement_aide_finale$3= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$3=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$2= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$2=caml_string_of_jsbytes("aide_finale_formule"), - cst_traitement_aide_finale$1= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$1=caml_string_of_jsbytes("aide_finale_formule"), - cst_coefficient_prise_en_charg$0= - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10"), - cst_mensualit_minimale= - caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"), - cst_mensualit_ligible= - caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"), - cst_n_nombre_parts_d832_11= - caml_string_of_jsbytes("n_nombre_parts_d832_11"), - cst_traitement_aide_finale$0= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule$0=caml_string_of_jsbytes("aide_finale_formule"), - cst_coefficient_prise_en_charg= - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25"), - cst_quivalence_loyer_minimale= - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"), - cst_plafond_quivalence_loyer_l= - caml_string_of_jsbytes - ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - cst_quivalence_loyer_ligible= - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - cst_n_nombre_parts_d832_25$0= - caml_string_of_jsbytes("n_nombre_parts_d832_25"), - cst_coefficient_r_d832_25=caml_string_of_jsbytes("coefficient_r_d832_25"), - cst_coefficient_multiplicateur= - caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"), - cst_n_nombre_parts_d832_25= - caml_string_of_jsbytes("n_nombre_parts_d832_25"), - cst_montant$1=caml_string_of_jsbytes("montant"), - cst_traitement_aide_finale= - caml_string_of_jsbytes("traitement_aide_finale"), - cst_aide_finale_formule=caml_string_of_jsbytes("aide_finale_formule"), - cst_participation_personnelle= - caml_string_of_jsbytes("participation_personnelle"), - cst_taux_composition_familiale= - caml_string_of_jsbytes("taux_composition_familiale"), - cst_participation_minimale= - caml_string_of_jsbytes("participation_minimale"), - cst_plafond_loyer_d823_16_2= - caml_string_of_jsbytes("plafond_loyer_d823_16_2"), - cst_montant_forfaitaire_charge= - caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"), - cst_montant$0=caml_string_of_jsbytes("montant"), - cst_ressources_prises_en_compt= - caml_string_of_jsbytes("ressources_prises_en_compte"), - cst_montant_prime_d_m_nagement= - caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), - cst_coefficents_enfants_garde_= - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - cst_nombre_personnes_charge_pr= - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - cst_ligibilit=caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"), - cst_date_courante=caml_string_of_jsbytes("date_courante"), - cst_ressources=caml_string_of_jsbytes("ressources"), - cst_dur_e_r_sidence_durant_p_r= - caml_string_of_jsbytes - ("dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois"), - cst_satisfait_art_4_ordonnance= - caml_string_of_jsbytes("satisfait_art_4_ordonnance_2002_mayotte"), - cst_satisfait_conditions_l512_= - caml_string_of_jsbytes - ("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"), - cst_ne_produisant_pas_revenu_p= - caml_string_of_jsbytes - ("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), - cst_produisant_revenu_p_riode_= - caml_string_of_jsbytes - ("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"), - cst_conforme_article_l442_1= - caml_string_of_jsbytes("conforme_article_l442_1"), - cst_date_naissance_personne_so= - caml_string_of_jsbytes("date_naissance_personne_sous_location"), - cst_conventionn_livre_III_titr$0= - caml_string_of_jsbytes - ("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"), - cst_r_duction_loyer_solidarit_= - caml_string_of_jsbytes - ("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"), - cst_conventionn_livre_III_titr= - caml_string_of_jsbytes("conventionn\xc3\xa9_livre_III_titre_V_chap_III"), - cst_PrestationAccueilJeuneEnfa$1= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_AllocationsFamiliales$2= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial$1= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationLogement$1=caml_string_of_jsbytes("AllocationLogement"), - cst_Allocation_ducationEnfantH$0= - caml_string_of_jsbytes - ("Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9"), - cst_AllocationSoutienFamilial$2= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationRentr_eScolaire$0= - caml_string_of_jsbytes("AllocationRentr\xc3\xa9eScolaire"), - cst_AllocationJournali_rePrese$0= - caml_string_of_jsbytes("AllocationJournali\xc3\xa8rePresenceParentale"), - cst_Avant$1=caml_string_of_jsbytes("Avant"), - cst_Pendant$1=caml_string_of_jsbytes("Pendant"), - cst_Apr_s$0=caml_string_of_jsbytes("Apr\xc3\xa8s"), - cst_GardeAltern_ePartageAlloca$0= - caml_string_of_jsbytes("GardeAltern\xc3\xa9ePartageAllocations"), - cst_GardeAltern_eAllocataireUn$0= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eAllocataireUnique"), - cst_EffectiveEtPermanente$2= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ServicesSociauxAllocationV$3= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille"), - cst_ServicesSociauxAllocationV$4= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux"), - cst_Guadeloupe$1=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$1=caml_string_of_jsbytes("Guyane"), - cst_Martinique$1=caml_string_of_jsbytes("Martinique"), - cst_LaR_union$0=caml_string_of_jsbytes("LaR\xc3\xa9union"), - cst_SaintBarth_lemy$0=caml_string_of_jsbytes("SaintBarth\xc3\xa9lemy"), - cst_SaintMartin$1=caml_string_of_jsbytes("SaintMartin"), - cst_M_tropole$0=caml_string_of_jsbytes("M\xc3\xa9tropole"), - cst_SaintPierreEtMiquelon$1= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Mayotte$1=caml_string_of_jsbytes("Mayotte"), - cst_PersonneSeule=caml_string_of_jsbytes("PersonneSeule"), - cst_Couple=caml_string_of_jsbytes("Couple"), - cst_tudiantLog_EnChambreCROUS= - caml_string_of_jsbytes("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"), - cst_tudiantLog_EnChambreCROUSR= - caml_string_of_jsbytes - ("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"), - cst_Personnes_g_esSelon3DeD842= - caml_string_of_jsbytes("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"), - cst_AutresPersonnes=caml_string_of_jsbytes("AutresPersonnes"), - cst_LogementPersonnes_g_esOuHa= - caml_string_of_jsbytes - ("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"), - cst_R_sidenceSociale=caml_string_of_jsbytes("R\xc3\xa9sidenceSociale"), - cst_FoyerJeunesTrvailleursOuMi= - caml_string_of_jsbytes - ("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"), - cst_Autre$1=caml_string_of_jsbytes("Autre"), - cst_EffectiveEtPermanente$1= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_R_sidenceAltern_eAllocatai= - caml_string_of_jsbytes - ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique"), - cst_R_sidenceAltern_eAllocatio= - caml_string_of_jsbytes - ("R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e"), - cst_C_libataire=caml_string_of_jsbytes("C\xc3\xa9libataire"), - cst_Mari_s=caml_string_of_jsbytes("Mari\xc3\xa9s"), - cst_Pacs_s=caml_string_of_jsbytes("Pacs\xc3\xa9s"), - cst_Concubins=caml_string_of_jsbytes("Concubins"), - cst_C_libataireS_par_DeFait= - caml_string_of_jsbytes("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"), - cst_ConcubinageDontS_par_DeFai= - caml_string_of_jsbytes("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"), - cst_AidePersonnalis_eLogement= - caml_string_of_jsbytes("AidePersonnalis\xc3\xa9eLogement"), - cst_AllocationLogementFamilial$0= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$0= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Accord=caml_string_of_jsbytes("Accord"), - cst_PasdAccord=caml_string_of_jsbytes("PasdAccord"), - cst_Pas_ligible=caml_string_of_jsbytes("Pas\xc3\x89ligible"), - cst_AllocationLogementFamilial= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Impay_Loyer=caml_string_of_jsbytes("Impay\xc3\xa9Loyer"), - cst_Impay_Pr_t=caml_string_of_jsbytes("Impay\xc3\xa9Pr\xc3\xaat"), - cst_TotalAnnuel_ch_ances= - caml_string_of_jsbytes("TotalAnnuel\xc3\x89ch\xc3\xa9ances"), - cst_Mensualit=caml_string_of_jsbytes("Mensualit\xc3\xa9"), - cst_Loyer=caml_string_of_jsbytes("Loyer"), - cst_Bailleur=caml_string_of_jsbytes("Bailleur"), - cst_B_n_ficiaire=caml_string_of_jsbytes("B\xc3\xa9n\xc3\xa9ficiaire"), - cst_tablissementHabilit= - caml_string_of_jsbytes("\xc3\x89tablissementHabilit\xc3\xa9"), - cst_OuiAvecLoyerOuCharges=caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), - cst_Non$0=caml_string_of_jsbytes("Non"), - cst_Zone1=caml_string_of_jsbytes("Zone1"), - cst_Zone2=caml_string_of_jsbytes("Zone2"), - cst_Zone3=caml_string_of_jsbytes("Zone3"), - cst_DateDeNaissance=caml_string_of_jsbytes("DateDeNaissance"), - cst_AvantPremierJourMoisCivilT= - caml_string_of_jsbytes - ("AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), - cst_Apr_sPremierJourMoisCivilT= - caml_string_of_jsbytes - ("Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse"), - cst_Ascendant=caml_string_of_jsbytes("Ascendant"), - cst_Descendant=caml_string_of_jsbytes("Descendant"), - cst_Collat_ralDeuxi_meTroisi_m= - caml_string_of_jsbytes - ("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"), - cst_PasDeGardeAltern_e= - caml_string_of_jsbytes("PasDeGardeAltern\xc3\xa9e"), - cst_GardeAltern_eCoefficientPr= - caml_string_of_jsbytes("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"), - cst_DemandeurOuConjointOuParen= - caml_string_of_jsbytes - ("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"), - cst_Autre$0=caml_string_of_jsbytes("Autre"), - cst_AllocationsFamiliales$1= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_Compl_mentFamilial$0= - caml_string_of_jsbytes("Compl\xc3\xa9mentFamilial"), - cst_AllocationJeuneEnfant=caml_string_of_jsbytes("AllocationJeuneEnfant"), - cst_AllocationSoutienFamilial$1= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationSoutienEnfantHan= - caml_string_of_jsbytes("AllocationSoutienEnfantHandicap\xc3\xa9"), - cst_AllocationAdulteHandicap= - caml_string_of_jsbytes("AllocationAdulteHandicap\xc3\xa9"), - cst_Revenu$0=caml_string_of_jsbytes("Revenu"), - cst_Infini$0=caml_string_of_jsbytes("Infini"), - cst_Revenu=caml_string_of_jsbytes("Revenu"), - cst_Infini=caml_string_of_jsbytes("Infini"), - cst_Oui=caml_string_of_jsbytes("Oui"), - cst_Non=caml_string_of_jsbytes("Non"), - cst_ObjectifD_cenceLogement= - caml_string_of_jsbytes("ObjectifD\xc3\xa9cenceLogement"), - cst_Pr_vuDansListeR321_15= - caml_string_of_jsbytes("Pr\xc3\xa9vuDansListeR321_15"), - cst_AgrandirOuRendreHabitableD= - caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), - cst_PasDeTravaux$0=caml_string_of_jsbytes("PasDeTravaux"), - cst_TravauxPourAcquisitionD832= - caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), - cst_TravauxSurLogementD_j_Acqu= - caml_string_of_jsbytes - ("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"), - cst_PasDeTravaux=caml_string_of_jsbytes("PasDeTravaux"), - cst_Demandeur=caml_string_of_jsbytes("Demandeur"), - cst_VendeurQuandDemandeurACont= - caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), - cst_D331_32=caml_string_of_jsbytes("D331_32"), - cst_D331_63_64=caml_string_of_jsbytes("D331_63_64"), - cst_D331_59_8=caml_string_of_jsbytes("D331_59_8"), - cst_D331_76_1=caml_string_of_jsbytes("D331_76_1"), - cst_Autre=caml_string_of_jsbytes("Autre"), - cst_The_function_age_l512_3_2_= - caml_string_of_jsbytes - ("The function 'age_l512_3_2_in' translation isn't yet supported..."), - cst_The_function_n_nombre_part= - caml_string_of_jsbytes - ("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."), - cst_The_function_limitation_ma$0= - caml_string_of_jsbytes - ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), - cst_The_function_condition_2_d= - caml_string_of_jsbytes - ("The function 'condition_2_du_832_25_in' translation isn't yet supported..."), - cst_The_function_limitation_ma= - caml_string_of_jsbytes - ("The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported..."), - cst_The_function_date_entree_v= - caml_string_of_jsbytes - ("The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported..."), - cst_The_function_condition_log= - caml_string_of_jsbytes - ("The function 'condition_logement_surface_in' translation isn't yet supported..."), - cst_The_function_condition_log$0= - caml_string_of_jsbytes - ("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."), - cst_The_function_condition_2_r= - caml_string_of_jsbytes - ("The function 'condition_2_r823_4' translation isn't yet supported..."), - cst_AccessionProprieteLocalUsa= - caml_string_of_jsbytes("AccessionProprieteLocalUsageExclusifHabitation"), - cst_Locataire$0=caml_string_of_jsbytes("Locataire"), - cst_LocationAccession$0=caml_string_of_jsbytes("LocationAccession"), - cst_ResidentLogementFoyer=caml_string_of_jsbytes("ResidentLogementFoyer"), - cst_SousLocataire$0=caml_string_of_jsbytes("SousLocataire"), - cst_AccessionPropriete=caml_string_of_jsbytes("AccessionPropriete"), - cst_Location$0=caml_string_of_jsbytes("Location"), - cst_LogementFoyer$0=caml_string_of_jsbytes("LogementFoyer"), - cst_AutrePersonneACharge=caml_string_of_jsbytes("AutrePersonneACharge"), - cst_EnfantACharge=caml_string_of_jsbytes("EnfantACharge"), - cst_The_function_conditions_ho$0= - caml_string_of_jsbytes - ("The function 'conditions_hors_age' translation isn't yet supported..."), - cst_The_function_droit_ouvert_$0= - caml_string_of_jsbytes - ("The function 'droit_ouvert' translation isn't yet supported..."), - cst_Changement$0=caml_string_of_jsbytes("Changement"), - cst_PasDeChangement$0=caml_string_of_jsbytes("PasDeChangement"), - cst_Etrangere=caml_string_of_jsbytes("Etrangere"), - cst_Francaise=caml_string_of_jsbytes("Francaise"), - cst_Non$4=caml_string_of_jsbytes("Non"), - cst_Oui$2=caml_string_of_jsbytes("Oui"), - cst_BailleurPrive=caml_string_of_jsbytes("BailleurPrive"), - cst_BailleurPriveAvecConventio= - caml_string_of_jsbytes("BailleurPriveAvecConventionnementSocial"), - cst_BailleurSocial$0=caml_string_of_jsbytes("BailleurSocial"), - cst_MoinsDeTroisEnfants$0=caml_string_of_jsbytes("MoinsDeTroisEnfants"), - cst_PlusDeTroisEnfants$0=caml_string_of_jsbytes("PlusDeTroisEnfants"), - cst_Ancien$0=caml_string_of_jsbytes("Ancien"), - cst_Neuf$0=caml_string_of_jsbytes("Neuf"), - cst_The_function_traitement_ai$8= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$7= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$6= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$5= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$4= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$3= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$2= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$1= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai$0= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_traitement_ai= - caml_string_of_jsbytes - ("The function 'traitement_aide_finale' translation isn't yet supported..."), - cst_The_function_montant_trans= - caml_string_of_jsbytes - ("The function 'montant' translation isn't yet supported..."), - cst_AllocationEducationEnfantH$0= - caml_string_of_jsbytes("AllocationEducationEnfantHandicape"), - cst_AllocationJournalierePrese$0= - caml_string_of_jsbytes("AllocationJournalierePresenceParentale"), - cst_AllocationLogement$2=caml_string_of_jsbytes("AllocationLogement"), - cst_AllocationRentreeScolaire$0= - caml_string_of_jsbytes("AllocationRentreeScolaire"), - cst_AllocationSoutienFamilial$4= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$4= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial$1=caml_string_of_jsbytes("ComplementFamilial"), - cst_PrestationAccueilJeuneEnfa$2= - caml_string_of_jsbytes("PrestationAccueilJeuneEnfant"), - cst_Apres$0=caml_string_of_jsbytes("Apres"), - cst_Avant$2=caml_string_of_jsbytes("Avant"), - cst_Pendant$2=caml_string_of_jsbytes("Pendant"), - cst_EffectiveEtPermanente$4= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_GardeAlterneeAllocataireUn$0= - caml_string_of_jsbytes("GardeAlterneeAllocataireUnique"), - cst_GardeAlterneePartageAlloca$0= - caml_string_of_jsbytes("GardeAlterneePartageAllocations"), - cst_ServicesSociauxAllocationV$5= - caml_string_of_jsbytes("ServicesSociauxAllocationVerseeALaFamille"), - cst_ServicesSociauxAllocationV$6= - caml_string_of_jsbytes - ("ServicesSociauxAllocationVerseeAuxServicesSociaux"), - cst_Guadeloupe$2=caml_string_of_jsbytes("Guadeloupe"), - cst_Guyane$2=caml_string_of_jsbytes("Guyane"), - cst_LaReunion$0=caml_string_of_jsbytes("LaReunion"), - cst_Martinique$2=caml_string_of_jsbytes("Martinique"), - cst_Mayotte$2=caml_string_of_jsbytes("Mayotte"), - cst_Metropole$0=caml_string_of_jsbytes("Metropole"), - cst_SaintBarthelemy$0=caml_string_of_jsbytes("SaintBarthelemy"), - cst_SaintMartin$2=caml_string_of_jsbytes("SaintMartin"), - cst_SaintPierreEtMiquelon$2= - caml_string_of_jsbytes("SaintPierreEtMiquelon"), - cst_Couple$0=caml_string_of_jsbytes("Couple"), - cst_PersonneSeule$0=caml_string_of_jsbytes("PersonneSeule"), - cst_AutresPersonnes$0=caml_string_of_jsbytes("AutresPersonnes"), - cst_EtudiantLogeEnChambreCROUS= - caml_string_of_jsbytes("EtudiantLogeEnChambreCROUS"), - cst_EtudiantLogeEnChambreCROUS$0= - caml_string_of_jsbytes("EtudiantLogeEnChambreCROUSRehabilitee"), - cst_PersonnesAgeesSelon3DeD842= - caml_string_of_jsbytes("PersonnesAgeesSelon3DeD842_16"), - cst_Autre$4=caml_string_of_jsbytes("Autre"), - cst_FoyerJeunesTrvailleursOuMi$0= - caml_string_of_jsbytes - ("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"), - cst_LogementPersonnesAgeesOuHa= - caml_string_of_jsbytes("LogementPersonnesAgeesOuHandicapees"), - cst_ResidenceSociale=caml_string_of_jsbytes("ResidenceSociale"), - cst_EffectiveEtPermanente$3= - caml_string_of_jsbytes("EffectiveEtPermanente"), - cst_ResidenceAlterneeAllocatai= - caml_string_of_jsbytes("ResidenceAlterneeAllocataireUnique"), - cst_ResidenceAlterneeAllocatio= - caml_string_of_jsbytes("ResidenceAlterneeAllocationsPartagee"), - cst_Celibataire=caml_string_of_jsbytes("Celibataire"), - cst_CelibataireSepareDeFait= - caml_string_of_jsbytes("CelibataireSepareDeFait"), - cst_ConcubinageDontSepareDeFai= - caml_string_of_jsbytes("ConcubinageDontSepareDeFait"), - cst_Concubins$0=caml_string_of_jsbytes("Concubins"), - cst_Maries=caml_string_of_jsbytes("Maries"), - cst_Pacses=caml_string_of_jsbytes("Pacses"), - cst_AidePersonnaliseeLogement= - caml_string_of_jsbytes("AidePersonnaliseeLogement"), - cst_AllocationLogementFamilial$2= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$2= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_Accord$0=caml_string_of_jsbytes("Accord"), - cst_PasdAccord$0=caml_string_of_jsbytes("PasdAccord"), - cst_AllocationLogementFamilial$1= - caml_string_of_jsbytes("AllocationLogementFamiliale"), - cst_AllocationLogementSociale$1= - caml_string_of_jsbytes("AllocationLogementSociale"), - cst_PasEligible=caml_string_of_jsbytes("PasEligible"), - cst_ImpayeLoyer=caml_string_of_jsbytes("ImpayeLoyer"), - cst_ImpayePret=caml_string_of_jsbytes("ImpayePret"), - cst_Loyer$0=caml_string_of_jsbytes("Loyer"), - cst_Mensualite=caml_string_of_jsbytes("Mensualite"), - cst_TotalAnnuelEcheances=caml_string_of_jsbytes("TotalAnnuelEcheances"), - cst_Bailleur$0=caml_string_of_jsbytes("Bailleur"), - cst_Beneficiaire=caml_string_of_jsbytes("Beneficiaire"), - cst_EtablissementHabilite=caml_string_of_jsbytes("EtablissementHabilite"), - cst_Non$3=caml_string_of_jsbytes("Non"), - cst_OuiAvecLoyerOuCharges$0= - caml_string_of_jsbytes("OuiAvecLoyerOuCharges"), - cst_Zone1$0=caml_string_of_jsbytes("Zone1"), - cst_Zone2$0=caml_string_of_jsbytes("Zone2"), - cst_Zone3$0=caml_string_of_jsbytes("Zone3"), - cst_ApresPremierJourMoisCivilT= - caml_string_of_jsbytes - ("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"), - cst_AvantPremierJourMoisCivilT$0= - caml_string_of_jsbytes - ("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"), - cst_DateDeNaissance$0=caml_string_of_jsbytes("DateDeNaissance"), - cst_Ascendant$0=caml_string_of_jsbytes("Ascendant"), - cst_CollateralDeuxiemeTroisiem= - caml_string_of_jsbytes("CollateralDeuxiemeTroisiemeDegre"), - cst_Descendant$0=caml_string_of_jsbytes("Descendant"), - cst_GardeAlterneeCoefficientPr= - caml_string_of_jsbytes("GardeAlterneeCoefficientPriseEnCharge"), - cst_PasDeGardeAlternee=caml_string_of_jsbytes("PasDeGardeAlternee"), - cst_Autre$3=caml_string_of_jsbytes("Autre"), - cst_DemandeurOuConjointOuParen$0= - caml_string_of_jsbytes("DemandeurOuConjointOuParentOuViaPartsSocietes"), - cst_AllocationAdulteHandicape= - caml_string_of_jsbytes("AllocationAdulteHandicape"), - cst_AllocationJeuneEnfant$0= - caml_string_of_jsbytes("AllocationJeuneEnfant"), - cst_AllocationSoutienEnfantHan$0= - caml_string_of_jsbytes("AllocationSoutienEnfantHandicape"), - cst_AllocationSoutienFamilial$3= - caml_string_of_jsbytes("AllocationSoutienFamilial"), - cst_AllocationsFamiliales$3= - caml_string_of_jsbytes("AllocationsFamiliales"), - cst_ComplementFamilial$0=caml_string_of_jsbytes("ComplementFamilial"), - cst_Infini$2=caml_string_of_jsbytes("Infini"), - cst_Revenu$2=caml_string_of_jsbytes("Revenu"), - cst_Infini$1=caml_string_of_jsbytes("Infini"), - cst_Revenu$1=caml_string_of_jsbytes("Revenu"), - cst_Non$2=caml_string_of_jsbytes("Non"), - cst_Oui$1=caml_string_of_jsbytes("Oui"), - cst_AgrandirOuRendreHabitableD$0= - caml_string_of_jsbytes("AgrandirOuRendreHabitableD331_63"), - cst_ObjectifDecenceLogement= - caml_string_of_jsbytes("ObjectifDecenceLogement"), - cst_PasDeTravaux$2=caml_string_of_jsbytes("PasDeTravaux"), - cst_PrevuDansListeR321_15=caml_string_of_jsbytes("PrevuDansListeR321_15"), - cst_PasDeTravaux$1=caml_string_of_jsbytes("PasDeTravaux"), - cst_TravauxPourAcquisitionD832$0= - caml_string_of_jsbytes("TravauxPourAcquisitionD832_15_1"), - cst_TravauxSurLogementDejaAcqu= - caml_string_of_jsbytes("TravauxSurLogementDejaAcquisD832_15_2"), - cst_Demandeur$0=caml_string_of_jsbytes("Demandeur"), - cst_VendeurQuandDemandeurACont$0= - caml_string_of_jsbytes("VendeurQuandDemandeurAContratLocationAccession"), - cst_Autre$2=caml_string_of_jsbytes("Autre"), - cst_D331_32$0=caml_string_of_jsbytes("D331_32"), - cst_D331_59_8$0=caml_string_of_jsbytes("D331_59_8"), - cst_D331_63_64$0=caml_string_of_jsbytes("D331_63_64"), - cst_D331_76_1$0=caml_string_of_jsbytes("D331_76_1"), - cst_AidesLogementLib=caml_string_of_jsbytes("AidesLogementLib"), - Runtime_ocaml_Runtime=global_data.Runtime_ocaml__Runtime; - global_data.CamlinternalOO; - var - Stdlib_Array=global_data.Stdlib__Array, - Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, - Stdlib=global_data.Stdlib, - Stdlib_Printf=global_data.Stdlib__Printf, - Js_of_ocaml_Js=global_data.Js_of_ocaml__Js, - Law_source=[0]; - caml_register_global(9726,Law_source,"Law_source"); - var - PriseEnCharge=[0], - _kl_= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Arr_t_du_14_d_cembre_2020_ = + "Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations", + cst_Arr_t_du_19_avril_2022_rel = + "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Arr_t_du_29_juillet_2022_r = + "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Chapitre_5_Prestations_fam = + "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Circulaire_interminist_rie = + "Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Code_de_la_s_curit_sociale = + "Code de la s\xc3\xa9curit\xc3\xa9 sociale", + cst_Dispositions_sp_ciales_rel = + "Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte", + cst_D_cret_n_2018_1173_du_19_d = + "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2019_1387_du_18_d = + "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2020_1598_du_16_d = + "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2021_1741_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2022_1608_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2002_423_du_29_ma = + "D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte", + cst_EnfantLePlus_g = "EnfantLePlus\xc3\x82g\xc3\xa9", + cst_Instruction_interministeri = + "Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Instruction_interminist_ri = + "Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte", + cst_Livre_5_Prestations_famili = + "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Livre_7_R_gimes_divers_Dis = + "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", + cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", + cst_Partie_r_glementaire_D_cre$0 = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", + cst_Partie_r_glementaire_D_cre = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", + cst_R_gles_diverses = "R\xc3\xa8gles diverses", + cst_Titre_1_Champ_d_applicatio = + "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + cst_Titre_2_Prestations_g_n_ra = + "Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien", + cst_Titre_5_Dispositions_parti = + "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", + cst_Titre_5_D_partements_d_out = + "Titre 5 : D\xc3\xa9partements d'outre-mer", + cst_V_rification_geInf_rieurOu = + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", + cst_V_rification_geSup_rieur = + "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", + cst_ann_es_in$1 = "ann\xc3\xa9es_in", + cst_compl_ment_d_gressif = "compl\xc3\xa9ment_d\xc3\xa9gressif", + cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", + cst_enfant_le_plus_g = "enfant_le_plus_\xc3\xa2g\xc3\xa9", + cst_est_enfant_le_plus_g = "est_enfant_le_plus_\xc3\xa2g\xc3\xa9", + cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", + cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", + cst_i_montant_vers$0 = "i_montant_vers\xc3\xa9", + cst_le_plus_g$0 = "le_plus_\xc3\xa2g\xc3\xa9", + cst_montant_avec_garde_altern_ = + "montant_avec_garde_altern\xc3\xa9e_majoration", + cst_montant_initial_m_tropole_ = + "montant_initial_m\xc3\xa9tropole_majoration", + cst_montant_vers$0 = "montant_vers\xc3\xa9", + cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", + cst_r_sidence_in$2 = "r\xc3\xa9sidence_in", + cst_pilogue = "\xc3\x89pilogue", + cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", + cst_ge_minimum_alin_a_1_l521_3$0 = + "\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3", + cst_0$67 = "0", + cst_0$68 = "0.", + cst_0_0463$1 = "0.0463", + cst_0_0588$1 = "0.0588", + cst_0_08$1 = "0.08", + cst_0_16$2 = "0.16", + cst_0_32$1 = "0.32", + cst_0_5$1 = "0.5", + cst_0_55$1 = "0.55", + cst_1$29 = "1", + cst_1$28 = "1.", + cst_12$11 = "12.", + cst_169$1 = "169.", + cst_2$17 = "2", + cst_3$3 = "3", + cst_559500$1 = "559500", + cst_562800$1 = "562800", + cst_568400$1 = "568400", + cst_577500$1 = "577500", + cst_582700$1 = "582700", + cst_AllocationFamilialesAvril2 = "AllocationFamilialesAvril2008", + cst_Allocations_familiales = "Allocations familiales", + cst_AllocationsFamiliales$0 = "AllocationsFamiliales", + cst_Annexe = "Annexe", + cst_Article_1 = "Article 1", + cst_Article_2 = "Article 2", + cst_Article_7 = "Article 7", + cst_Article_D521_1 = "Article D521-1", + cst_Article_D521_2 = "Article D521-2", + cst_Article_D521_3 = "Article D521-3", + cst_Article_D755_5 = "Article D755-5", + cst_Article_L512_3 = "Article L512-3", + cst_Article_L521_1 = "Article L521-1", + cst_Article_L521_2 = "Article L521-2", + cst_Article_L521_3 = "Article L521-3", + cst_Article_L755_12 = "Article L755-12", + cst_Article_R512_2 = "Article R512-2", + cst_Article_R521_1 = "Article R521-1", + cst_Article_R521_3 = "Article R521-3", + cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", + cst_Champs_d_applications = "Champs d'applications", + cst_Chapitre_1er_Allocations_f = "Chapitre 1er : Allocations familiales", + cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", + cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", + cst_Interface_du_programme = "Interface du programme", + cst_InterfaceAllocationsFamili = "InterfaceAllocationsFamiliales", + cst_Montant_de_la_base_mensuel = + "Montant de la base mensuelle des allocations familiales", + cst_Montant_des_plafonds_de_re = "Montant des plafonds de ressources", + cst_Montant_du_salaire_minimum = + "Montant du salaire minimum de croissance", + cst_Prestations_familiales = "Prestations familiales", + cst_PrestationsFamiliales = "PrestationsFamiliales", + cst_Prologue = "Prologue", + cst_Smic = "Smic", + cst_allocations_familiales = "allocations_familiales", + cst_bmaf = "bmaf", + cst_brut_horaire$0 = "brut_horaire", + cst_date_courante_in$5 = "date_courante_in", + cst_date_naissance_in$1 = "date_naissance_in", + cst_droit_ouvert$0 = "droit_ouvert", + cst_droit_ouvert_forfaitaire = "droit_ouvert_forfaitaire", + cst_droit_ouvert_majoration = "droit_ouvert_majoration", + cst_examples_allocations_famil$5 = + "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr", + cst_examples_allocations_famil$7 = + "examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr", + cst_examples_allocations_famil$6 = + "examples/allocations_familiales/../smic/smic.catala_fr", + cst_examples_allocations_famil$3 = + "examples/allocations_familiales/decrets_divers.catala_fr", + cst_examples_allocations_famil = + "examples/allocations_familiales/epilogue.catala_fr", + cst_examples_allocations_famil$2 = + "examples/allocations_familiales/prologue.catala_fr", + cst_examples_allocations_famil$0 = + "examples/allocations_familiales/securite_sociale_D.catala_fr", + cst_examples_allocations_famil$4 = + "examples/allocations_familiales/securite_sociale_L.catala_fr", + cst_examples_allocations_famil$1 = + "examples/allocations_familiales/securite_sociale_R.catala_fr", + cst_input0 = "input0", + cst_montant$0 = "montant", + cst_montant_initial_majoration = "montant_initial_majoration", + cst_output = "output", + cst_prestations_familiales = "prestations_familiales", + cst_prise_en_compte = "prise_en_compte", + cst_smic = "smic", + cst_version_avril_2008 = "version_avril_2008", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + PriseEnCharge = [0], + _kl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 90, 14, 90, 29, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ke_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ke_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 101, 18, 101, 64, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kf_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kd_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j$_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j7_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j3_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jZ_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jU_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 97, 18, 97, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jV_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jT_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jO_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 93, 18, 93, 67, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jP_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jN_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jJ_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 117, 14, 117, 30, [0, - caml_string_of_jsbytes("Article L131-1"), - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]]], - _jG_=[0,0], - _jH_=[1,0], - _jI_=[2,0], - _jK_= + "Article L131-1", + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]]], + _jG_ = [0, 0], + _jH_ = [1, 0], + _jI_ = [2, 0], + _jK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 76, 11, 76, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jF_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 76, 11, 76, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jL_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jL_ = + [0, cst_InterfaceAllocationsFamili, [0, "enfants_\xc3\xa0_charge", 0]], + _jQ_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("enfants_\xc3\xa0_charge"),0]], - _jQ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jR_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jR_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.personne_charge_effective_permanente_est_parent"), + "allocations_familiales.personne_charge_effective_permanente_est_parent", 0]], - _jM_= + _jM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 92, 5, 92, 75, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jW_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jX_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _jX_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"), + "allocations_familiales.personne_charge_effective_permanente_remplit_titre_I", 0]], - _jS_= + _jS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 96, 5, 96, 80, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j0_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j1_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j1_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("allocations_familiales.ressources_m\xc3\xa9nage"), - 0]], - _jY_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.ressources_m\xc3\xa9nage", 0]], + _jY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 88, 14, 88, 54, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j4_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j5_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j5_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("allocations_familiales.r\xc3\xa9sidence"),0]], - _j2_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.r\xc3\xa9sidence", 0]], + _j2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 89, 14, 89, 46, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j8_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _j9_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _j9_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("allocations_familiales.date_courante"),0]], - _j6_= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.date_courante", 0]], + _j6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 86, 14, 86, 50, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ka_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ka_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kb_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kb_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("allocations_familiales.enfants_\xc3\xa0_charge"), - 0]], - _j__= + cst_InterfaceAllocationsFamili, + [0, "allocations_familiales.enfants_\xc3\xa0_charge", 0]], + _j__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 87, 14, 87, 53, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kg_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kh_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kh_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), + cst_InterfaceAllocationsFamili, [0, - caml_string_of_jsbytes - ("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"), + "allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012", 0]], - _kc_= + _kc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 100, 5, 100, 72, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ki_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _ki_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes("allocations_familiales"), - [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], - _kj_= + cst_InterfaceAllocationsFamili, + [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], + _kj_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0, - caml_string_of_jsbytes("allocations_familiales"), - [0,caml_string_of_jsbytes("AllocationsFamiliales"),0]]], - _km_= + cst_InterfaceAllocationsFamili, + [0, cst_allocations_familiales, [0, cst_AllocationsFamiliales$0, 0]]], + _km_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 80, 12, 80, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kk_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 80, 12, 80, 27, - [0, - caml_string_of_jsbytes("Interface du programme"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _kn_= + [0, cst_Interface_du_programme, [0, cst_pilogue, 0]]], + _kn_ = [0, cst_InterfaceAllocationsFamili, [0, cst_i_montant_vers$0, 0]], + _jA_ = [0, - caml_string_of_jsbytes("InterfaceAllocationsFamiliales"), - [0,caml_string_of_jsbytes("i_montant_vers\xc3\xa9"),0]], - _jA_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 45, 14, 45, 27, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jw_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$66 = cst_0$67, + _jw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 183, 14, 183, 62, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _js_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _js_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), - [0,caml_string_of_jsbytes("input0"),0]]], - _jt_= + cst_AllocationsFamiliales$0, + [0, cst_compl_ment_d_gressif, [0, cst_input0, 0]]], + _jt_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + _ju_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _ju_= + cst_AllocationsFamiliales$0, + [0, cst_compl_ment_d_gressif, [0, cst_output, 0]]], + _jv_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + cst_0$65 = cst_0$67, + _jo_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"), - [0,caml_string_of_jsbytes("output"),0]]], - _jv_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _jo_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 189, 14, 189, 61, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _jk_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _jk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 39, 14, 39, 38, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _jg_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _jg_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _jh_= + cst_AllocationsFamiliales$0, + [0, cst_montant_avec_garde_altern_, [0, cst_input0, 0]]], + _jh_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + _ji_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _ji_= + cst_AllocationsFamiliales$0, + [0, cst_montant_avec_garde_altern_, [0, cst_output, 0]]], + _jj_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + cst_0$63 = cst_0$67, + cst_0$64 = cst_0$67, + _jc_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _jj_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _jc_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 37, 14, 37, 32, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _i__= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$62 = cst_0$67, + _i__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 186, 5, 186, 43, [0, - caml_string_of_jsbytes("Article R521-4"), + "Article R521-4", [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _i2_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _i2_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("input0"),0]]], - _i3_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_input0, 0]]], + _i3_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _i4_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _i4_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_output, 0]]], + _i5_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + cst_1$27 = cst_1$28, + cst_0_5$0 = cst_0_5$1, + cst_0$61 = cst_0$68, + _i6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("output"),0]]], - _i5_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_majoration, [0, cst_input0, 0]]], + _i7_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _i8_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _i6_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_majoration, [0, cst_output, 0]]], + _i9_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _i$_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _i7_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _i8_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _i9_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _i$_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 132, 11, 132, 49, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _i1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _i1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 132, 11, 132, 49, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 125, 14, 125, 46, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iS_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$10 = cst_12$11, + _iS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 268, 5, 270, 41, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iT_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$8 = cst_12$11, + cst_1$26 = cst_1$28, + cst_12$9 = cst_12$11, + _iT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$7 = cst_12$11, + _iQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 278, 5, 280, 40, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iR_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$5 = cst_12$11, + cst_1$25 = cst_1$28, + cst_12$6 = cst_12$11, + _iR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 286, 14, 286, 55, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iF_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$60 = cst_0$67, + cst_1$24 = cst_1$29, + _iF_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iG_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _iG_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iH_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iH_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _iI_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iJ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _iI_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iJ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 379, 5, 383, 55, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iK_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0369 = "0.0369", + _iK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$23 = cst_1$29, + _iz_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iA_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _iA_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iB_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iB_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _iC_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _iD_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _iC_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _iD_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 389, 5, 392, 56, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iE_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0567 = "0.0567", + _iE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 22, 14, 22, 40, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _iu_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _iu_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _iv_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_m_tropole_, [0, cst_input0, 0]]], + _iv_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _iw_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _iw_= + cst_AllocationsFamiliales$0, + [0, cst_montant_initial_m_tropole_, [0, cst_output, 0]]], + _ix_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _iM_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _ix_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _iM_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _it_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _it_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 130, 11, 130, 37, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _io_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$22 = cst_1$29, + _io_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 356, 5, 357, 69, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ip_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ip_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _il_=[8,0], - _im_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _il_ = [8, 0], + _im_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 151, 24, 151, 44, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _in_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + _in_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ik_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ik_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 18, 14, 18, 34, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ig_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ig_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 199, 14, 199, 39, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ic_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ic_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _id_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_forfaitaire, [0, cst_input0, 0]]], + _id_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _ie_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _ie_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_forfaitaire, [0, cst_output, 0]]], + _if_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _h5_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _if_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _h6_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h7_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _h5_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _h8_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h9_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _h6_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h7_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _h8_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h9_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 60, 5, 60, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _h__= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_16$1 = cst_0_16$2, + _h__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hZ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _h0_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _h0_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h1_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h1_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _h2_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _h3_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _h2_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _h3_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 101, 5, 101, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _h4_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_08$0 = cst_0_08$1, + _h4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hT_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _hU_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _hU_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hV_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hV_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _hW_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hX_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _hW_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hX_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 138, 5, 138, 38, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _hY_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_04 = "0.04", + _hY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hN_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("input0"),0]]], - _hO_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_input0, 0]]], + _hO_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hP_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hP_= + cst_AllocationsFamiliales$0, + [0, cst_droit_ouvert_majoration, [0, cst_output, 0]]], + _hQ_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _hR_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert_majoration"), - [0,caml_string_of_jsbytes("output"),0]]], - _hQ_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _hR_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 28, 5, 28, 44, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _hS_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + cst_0$59 = cst_0$67, + _hS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _h$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _h$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 128, 11, 128, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 128, 14, 128, 41, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _hB_=[8,0], - _hC_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$57 = cst_0$68, + cst_0$58 = cst_0$68, + _hB_ = [8, 0], + _hC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 350, 5, 350, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hD_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$21 = cst_1$29, + cst_0_232 = "0.232", + cst_0$56 = cst_0$67, + _hD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hy_=[8,0], - _hz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hy_ = [8, 0], + _hz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 358, 5, 358, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hA_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$20 = cst_1$29, + cst_0_2379 = "0.2379", + cst_0$55 = cst_0$67, + _hA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hv_=[8,0], - _hw_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hv_ = [8, 0], + _hw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 366, 5, 366, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hx_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$19 = cst_1$29, + cst_0_2437 = "0.2437", + cst_0$54 = cst_0$67, + _hx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hs_=[8,0], - _ht_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hs_ = [8, 0], + _ht_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 374, 5, 374, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hu_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$18 = cst_1$29, + cst_0_2496 = "0.2496", + cst_0$53 = cst_0$67, + _hu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hp_=[8,0], - _hq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hp_ = [8, 0], + _hq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 382, 5, 382, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hr_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$17 = cst_1$29, + cst_0_2555 = "0.2555", + cst_0$52 = cst_0$67, + _hr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hm_=[8,0], - _hn_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hm_ = [8, 0], + _hn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 390, 5, 390, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _ho_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$16 = cst_1$29, + cst_0_2613 = "0.2613", + cst_0$51 = cst_0$67, + _ho_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hj_=[8,0], - _hk_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hj_ = [8, 0], + _hk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 398, 5, 398, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hl_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$15 = cst_1$29, + cst_0_2672 = "0.2672", + cst_0$50 = cst_0$67, + _hl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hg_=[8,0], - _hh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hg_ = [8, 0], + _hh_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 406, 5, 406, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hi_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$14 = cst_1$29, + cst_0_2804 = "0.2804", + cst_0$49 = cst_0$67, + _hi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hd_=[8,0], - _he_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hd_ = [8, 0], + _he_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 414, 5, 414, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hf_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$13 = cst_1$29, + cst_0_2936 = "0.2936", + cst_0$48 = cst_0$67, + _hf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ha_=[8,0], - _hb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ha_ = [8, 0], + _hb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 422, 5, 422, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hc_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$12 = cst_1$29, + cst_0_3068 = "0.3068", + cst_0$47 = cst_0$67, + _hc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hE_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g__=[8,0], - _g$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g__ = [8, 0], + _g$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 177, 14, 177, 50, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _hF_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_1$11 = cst_1$29, + cst_0_32$0 = cst_0_32$1, + cst_0$46 = cst_0$67, + _hF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 38, 14, 38, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g8_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$10 = cst_1$29, + cst_0_32 = cst_0_32$1, + cst_0$45 = cst_0$67, + _g8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 79, 14, 79, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g6_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$9 = cst_1$29, + cst_0_16$0 = cst_0_16$2, + cst_0$44 = cst_0$67, + _g6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g3_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 117, 14, 117, 50, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _g4_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_1$8 = cst_1$29, + cst_0_08 = cst_0_08$1, + cst_0$43 = cst_0$67, + _g4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 43, 14, 43, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gZ_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$15 = cst_2$17, + cst_2$16 = cst_2$17, + cst_0_41 = "0.41", + cst_0$42 = cst_0$67, + _gZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 84, 14, 84, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gX_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$13 = cst_2$17, + cst_2$14 = cst_2$17, + cst_0_205 = "0.205", + cst_0$41 = cst_0$67, + _gX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 122, 14, 122, 59, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gV_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_2$11 = cst_2$17, + cst_2$12 = cst_2$17, + cst_0_1025 = "0.1025", + cst_0$40 = cst_0$67, + _gV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 221, 5, 221, 42, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gQ_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_20234 = "0.20234", + _gQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 235, 5, 236, 45, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gO_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_10117 = "0.10117", + _gO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 249, 5, 249, 42, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gM_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_05059 = "0.05059", + _gM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gF_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$4 = cst_12$11, + _gF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 165, 5, 166, 65, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gG_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12$2 = cst_12$11, + cst_1$7 = cst_1$28, + cst_12$3 = cst_12$11, + _gG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_12$1 = cst_12$11, + _gD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 174, 5, 175, 65, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gE_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_12 = cst_12$11, + cst_1$6 = cst_1$28, + cst_12$0 = cst_12$11, + _gE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gC_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 181, 14, 181, 34, [0, - caml_string_of_jsbytes("Article D521-1"), + cst_Article_D521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gI_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$39 = cst_0$67, + _gI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gB_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 139, 11, 139, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gs_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gs_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _gt_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], + _gt_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gu_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gu_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _gv_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], + _gv_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gw_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 315, 5, 318, 21, [0, - caml_string_of_jsbytes("Article L521-3"), + cst_Article_L521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gx_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gj_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gj_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _gk_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_input0, 0]]], + _gk_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gl_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _gm_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, [0, cst_output, 0]]], + _gm_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _gn_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _gn_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _go_= + cst_AllocationsFamiliales$0, + [0, cst_est_enfant_le_plus_g, [0, cst_input0, 0]]], + _go_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _gp_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _gp_= + cst_AllocationsFamiliales$0, + [0, cst_est_enfant_le_plus_g, [0, cst_output, 0]]], + _gq_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _gr_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _gq_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _gr_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 300, 5, 302, 21, [0, - caml_string_of_jsbytes("Article L521-3"), + cst_Article_L521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gy_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gi_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gh_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 126, 11, 126, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f$_=[8,0], - _ga_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$5 = cst_1$29, + _f$_ = [8, 0], + _ga_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 159, 6, 159, 71, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _gb_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + _gb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f__= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$4 = cst_1$29, + _f__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 409, 5, 410, 72, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _gc_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _gc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_2$10 = cst_2$17, + _f9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 101, 5, 101, 70, [0, - caml_string_of_jsbytes("Article L521-1"), + cst_Article_L521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ge_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ge_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f0_=[8,0], - _f1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f0_ = [8, 0], + _f1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 251, 5, 252, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _f2_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$37 = cst_0$67, + cst_0_145 = "0.145", + cst_0$38 = cst_0$67, + _f2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fX_=[8,0], - _fY_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fX_ = [8, 0], + _fY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 260, 5, 261, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fZ_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$35 = cst_0$67, + cst_0_1393 = "0.1393", + cst_0$36 = cst_0$67, + _fZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fU_=[8,0], - _fV_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fU_ = [8, 0], + _fV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 269, 5, 270, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fW_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$33 = cst_0$67, + cst_0_1335 = "0.1335", + cst_0$34 = cst_0$67, + _fW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fR_=[8,0], - _fS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fR_ = [8, 0], + _fS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 278, 5, 279, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fT_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$31 = cst_0$67, + cst_0_1278 = "0.1278", + cst_0$32 = cst_0$67, + _fT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fO_=[8,0], - _fP_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fO_ = [8, 0], + _fP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 287, 5, 288, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fQ_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$29 = cst_0$67, + cst_0_122 = "0.122", + cst_0$30 = cst_0$67, + _fQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fL_=[8,0], - _fM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fL_ = [8, 0], + _fM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 296, 5, 297, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fN_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$27 = cst_0$67, + cst_0_1163 = "0.1163", + cst_0$28 = cst_0$67, + _fN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fI_=[8,0], - _fJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fI_ = [8, 0], + _fJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 305, 5, 306, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fK_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$25 = cst_0$67, + cst_0_1105 = "0.1105", + cst_0$26 = cst_0$67, + _fK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fF_=[8,0], - _fG_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fF_ = [8, 0], + _fG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 314, 5, 315, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fH_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$23 = cst_0$67, + cst_0_0976 = "0.0976", + cst_0$24 = cst_0$67, + _fH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fC_=[8,0], - _fD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fC_ = [8, 0], + _fD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 323, 5, 324, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fE_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$21 = cst_0$67, + cst_0_0847 = "0.0847", + cst_0$22 = cst_0$67, + _fE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fz_=[8,0], - _fA_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fz_ = [8, 0], + _fA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 332, 5, 333, 53, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fB_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$19 = cst_0$67, + cst_0_0717 = "0.0717", + cst_0$20 = cst_0$67, + _fB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fw_=[8,0], - _fx_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fw_ = [8, 0], + _fx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 341, 5, 341, 49, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fy_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$17 = cst_0$67, + cst_5728 = "5728", + cst_0$18 = cst_0$67, + _fy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f3_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fu_=[8,0], - _fv_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fu_ = [8, 0], + _fv_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 167, 14, 167, 49, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _f4_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_0$15 = cst_0$67, + cst_0_0588$0 = cst_0_0588$1, + cst_0$16 = cst_0$67, + _f4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fs_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$3 = cst_1$29, + _fs_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 365, 5, 366, 71, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ft_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0_0588 = cst_0_0588$1, + _ft_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fr_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 362, 29, 362, 64, [0, - caml_string_of_jsbytes("Article D755-5"), + cst_Article_D755_5, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _fn_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_0$14 = cst_0$67, + _fn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 142, 14, 142, 34, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _fj_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _fj_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("input0"),0]]], - _fk_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_input0, 0]]], + _fk_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _fl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _fl_= + cst_AllocationsFamiliales$0, + [0, cst_prise_en_compte, [0, cst_output, 0]]], + _fm_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + cst_1$2 = cst_1$28, + cst_0_5 = cst_0_5$1, + cst_0$12 = cst_0$68, + cst_0$13 = cst_0$68, + _ff_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prise_en_compte"), - [0,caml_string_of_jsbytes("output"),0]]], - _fm_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _ff_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 160, 14, 160, 34, [0, - caml_string_of_jsbytes("Article R521-3"), + cst_Article_R521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _e__=[8,0], - _e$_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _e__ = [8, 0], + _e$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 431, 5, 431, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _fa_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$9 = cst_2$17, + cst_0_0463$0 = cst_0_0463$1, + cst_0$11 = cst_0$67, + _fa_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e7_=[8,0], - _e8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e7_ = [8, 0], + _e8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 439, 5, 439, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e9_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$8 = cst_2$17, + cst_0_0539 = "0.0539", + cst_0$10 = cst_0$67, + _e9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e4_=[8,0], - _e5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e4_ = [8, 0], + _e5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 447, 5, 447, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e6_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$7 = cst_2$17, + cst_0_0615 = "0.0615", + cst_0$9 = cst_0$67, + _e6_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _e1_=[8,0], - _e2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _e1_ = [8, 0], + _e2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 455, 5, 455, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e3_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$6 = cst_2$17, + cst_0_069 = "0.069", + cst_0$8 = cst_0$67, + _e3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eY_=[8,0], - _eZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eY_ = [8, 0], + _eZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 463, 5, 463, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _e0_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$5 = cst_2$17, + cst_0_0766 = "0.0766", + cst_0$7 = cst_0$67, + _e0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eV_=[8,0], - _eW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eV_ = [8, 0], + _eW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 471, 5, 471, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eX_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$4 = cst_2$17, + cst_0_0842 = "0.0842", + cst_0$6 = cst_0$67, + _eX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eS_=[8,0], - _eT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eS_ = [8, 0], + _eT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 479, 5, 479, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eU_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$3 = cst_2$17, + cst_0_0918 = "0.0918", + cst_0$5 = cst_0$67, + _eU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eP_=[8,0], - _eQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eP_ = [8, 0], + _eQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 487, 5, 487, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eR_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$2 = cst_2$17, + cst_0_1089 = "0.1089", + cst_0$4 = cst_0$67, + _eR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eM_=[8,0], - _eN_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eM_ = [8, 0], + _eN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 495, 5, 495, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eO_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$1 = cst_2$17, + cst_0_1259 = "0.1259", + cst_0$3 = cst_0$67, + _eO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eJ_=[8,0], - _eK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eJ_ = [8, 0], + _eK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 503, 5, 503, 67, [0, - caml_string_of_jsbytes("Annexe"), + cst_Annexe, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eL_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2$0 = cst_2$17, + cst_0_143 = "0.143", + cst_0$2 = cst_0$67, + _eL_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 186, 14, 186, 59, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _eE_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_2 = cst_2$17, + cst_0_16 = cst_0_16$2, + cst_0$1 = cst_0$67, + _eE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 195, 14, 195, 67, [0, - caml_string_of_jsbytes("Article 7"), + cst_Article_7, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte"), - [0, - caml_string_of_jsbytes - ("Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte"), - 0]]]], - _ey_= + cst_D_cret_n_2002_423_du_29_ma, + [0, cst_Dispositions_sp_ciales_rel, 0]]]], + cst_3$1 = cst_3$3, + cst_3$2 = cst_3$3, + cst_0_0463 = cst_0_0463$1, + cst_0$0 = cst_0$67, + cst_1$1 = cst_1$29, + _ey_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 423, 6, 424, 72, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _ez_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _ez_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _et_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _et_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - [0,caml_string_of_jsbytes("input0"),0]]], - _eu_= + cst_PrestationsFamiliales, + [0, cst_conditions_hors_ge$0, [0, cst_input0, 0]]], + _eu_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ev_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ev_= + cst_PrestationsFamiliales, + [0, cst_conditions_hors_ge$0, [0, cst_output, 0]]], + _ew_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ex_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"), - [0,caml_string_of_jsbytes("output"),0]]], - _ew_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ex_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 119, 5, 126, 59, [0, - caml_string_of_jsbytes("Article L521-1"), + cst_Article_L521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _eA_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _eA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _es_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _es_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eB_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _er_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _er_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 120, 11, 120, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _em_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + cst_1$0 = cst_1$29, + _em_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 429, 5, 430, 71, [0, - caml_string_of_jsbytes("Article L755-12"), + cst_Article_L755_12, [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _en_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _en_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _el_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _el_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 31, 9, 31, 32, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _eo_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _eo_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ek_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ek_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ee_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ee_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 23, 5, 23, 67, [0, - caml_string_of_jsbytes - ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _ef_= + cst_Circulaire_interminist_rie, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_562800$0 = cst_562800$1, + cst_5628600 = "5628600", + _ef_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ec_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ec_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 56, 5, 56, 67, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _ed_= + cst_Instruction_interminist_ri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_568400$0 = cst_568400$1, + cst_5684900 = "5684900", + _ed_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ea_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ea_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 89, 5, 89, 67, [0, - caml_string_of_jsbytes - ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _eb_= + cst_Instruction_interministeri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_577500$0 = cst_577500$1, + cst_5775900 = "5775900", + _eb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d__= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 116, 5, 116, 67, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], - _d$_= + cst_Arr_t_du_14_d_cembre_2020_, + [0, cst_Montant_des_plafonds_de_re, 0]]]], + cst_582700$0 = cst_582700$1, + cst_5827900 = "5827900", + _d$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 304, 14, 304, 30, [0, - caml_string_of_jsbytes("Article D521-3"), + cst_Article_D521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _d3_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_559500$0 = cst_559500$1, + cst_5595000 = "5595000", + _d3_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 30, 5, 30, 67, [0, - caml_string_of_jsbytes - ("Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d4_= + cst_Circulaire_interminist_rie, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_562800 = cst_562800$1, + cst_7877000 = "7877000", + _d4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 63, 5, 63, 67, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d2_= + cst_Instruction_interminist_ri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_568400 = cst_568400$1, + cst_7955800 = "7955800", + _d2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dZ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 96, 5, 96, 67, [0, - caml_string_of_jsbytes - ("Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]], - _d0_= + cst_Instruction_interministeri, + [0, cst_Montant_des_plafonds_de_re, 0]]], + cst_577500 = cst_577500$1, + cst_8083100 = "8083100", + _d0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dX_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/decrets_divers.catala_fr"), + cst_examples_allocations_famil$3, 132, 5, 132, 67, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations"), - [0,caml_string_of_jsbytes("Montant des plafonds de ressources"),0]]]], - _dY_= + cst_Arr_t_du_14_d_cembre_2020_, + [0, cst_Montant_des_plafonds_de_re, 0]]]], + cst_582700 = cst_582700$1, + cst_8155800 = "8155800", + _dY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d5_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 314, 14, 314, 31, [0, - caml_string_of_jsbytes("Article D521-3"), + cst_Article_D521_3, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dS_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_559500 = cst_559500$1, + cst_7830000 = "7830000", + _dS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 34, 14, 34, 36, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dT_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 155, 11, 155, 33, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dR_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 155, 11, 155, 33, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 75, 14, 75, 64, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dK_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dK_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _dL_= + cst_PrestationsFamiliales, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _dL_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _dM_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _dM_= + cst_PrestationsFamiliales, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _dN_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _dF_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _dN_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _dF_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 83, 19, 83, 67, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dG_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dE_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 56, 14, 56, 41, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _dH_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _dH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 152, 11, 152, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _ds_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _ds_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _do_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _do_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dn_=[1,0], - _dj_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dn_ = [1, 0], + _dj_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c9_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 64, 14, 64, 44, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _c5_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_3$0 = cst_3$3, + _c5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_D.catala_fr"), + cst_examples_allocations_famil$0, 294, 14, 294, 35, [0, - caml_string_of_jsbytes("Article D521-2"), + cst_Article_D521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _c0_= + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_3 = cst_3$3, + _c0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 259, 5, 260, 56, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cZ_=[1,0], - _c1_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cZ_ = [1, 0], + _c1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cU_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cU_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 270, 5, 271, 48, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cT_=[0,0], - _cV_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cT_ = [0, 0], + _cV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 219, 5, 219, 70, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cR_=[0,0], - _cW_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cR_ = [0, 0], + _cW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cQ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 209, 5, 209, 69, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cP_=[0,0], - _cX_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cP_ = [0, 0], + _cX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 189, 5, 189, 60, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cN_=[0,0], - _cY_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cN_ = [0, 0], + _cY_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cM_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cM_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 98, 11, 98, 20, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 215, 5, 215, 70, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cH_=[1,0], - _cJ_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cH_ = [1, 0], + _cJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cF_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 254, 5, 255, 56, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cE_=[2,0], - _cG_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cE_ = [2, 0], + _cG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cA_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 264, 5, 265, 48, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cz_=[0,0], - _cB_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cz_ = [0, 0], + _cB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cy_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 205, 5, 205, 69, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cx_=[0,0], - _cC_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cx_ = [0, 0], + _cC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cw_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 185, 5, 185, 60, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cv_=[0,0], - _cD_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cv_ = [0, 0], + _cD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cu_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 97, 11, 97, 26, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cL_ = [0, cst_AllocationsFamiliales$0, [0, cst_prise_en_compte, 0]], + _c3_ = [0, cst_AllocationsFamiliales$0, [0, "versement", 0]], + _c6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prise_en_compte"),0]], - _c3_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("versement"),0]], - _c6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 151, 11, 151, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c4_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 151, 11, 151, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c7_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_enfants_l521_1", 0]], + _c__ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_enfants_l521_1"),0]], - _c__= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 154, 11, 154, 41, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 154, 11, 154, 41, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _c$_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _c$_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]], - _da_= + cst_AllocationsFamiliales$0, + [0, "nombre_enfants_alin\xc3\xa9a_2_l521_3", 0]], + _da_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("version_avril_2008"), - [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], - _db_= + cst_AllocationsFamiliales$0, + [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], + _db_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("version_avril_2008"), - [0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0]]], - _de_= + cst_AllocationsFamiliales$0, + [0, cst_version_avril_2008, [0, cst_AllocationFamilialesAvril2, 0]]], + _de_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _df_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _df_ = [0, cst_AllocationsFamiliales$0, [0, "bmaf.date_courante", 0]], + _dc_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("bmaf.date_courante"),0]], - _dc_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 167, 14, 167, 32, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dg_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("bmaf"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _dh_= + cst_AllocationsFamiliales$0, + [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], + _dh_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("bmaf"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _dk_= + cst_AllocationsFamiliales$0, + [0, cst_bmaf, [0, cst_BaseMensuelleAllocationsFa, 0]]], + _dk_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dl_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _di_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.date_courante", 0]], + _di_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 163, 14, 163, 50, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dp_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _dm_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.prestation_courante", 0]], + _dm_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 161, 14, 161, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dt_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dt_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _du_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _du_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _dr_= + cst_AllocationsFamiliales$0, + [0, "prestations_familiales.r\xc3\xa9sidence", 0]], + _dr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 165, 14, 165, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dv_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dv_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], - _dw_= + cst_AllocationsFamiliales$0, + [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], + _dw_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0,caml_string_of_jsbytes("PrestationsFamiliales"),0]]], - _dz_= + cst_AllocationsFamiliales$0, + [0, cst_prestations_familiales, [0, cst_PrestationsFamiliales, 0]]], + _dz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dA_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dA_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"), - 0]], - _dx_= + cst_AllocationsFamiliales$0, + [0, "enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants", 0]], + _dx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 33, 14, 33, 40, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _dB_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _dB_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], - _dC_= + cst_AllocationsFamiliales$0, + [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], + _dC_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("enfant_le_plus_\xc3\xa2g\xc3\xa9"), - [0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0]]], - _dI_= + cst_AllocationsFamiliales$0, + [0, cst_enfant_le_plus_g, [0, cst_EnfantLePlus_g, 0]]], + _dI_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _dP_= + cst_AllocationsFamiliales$0, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + _dP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 95, 11, 95, 61, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dJ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 95, 11, 95, 61, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dQ_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dQ_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"), - 0]], - _dU_= + cst_AllocationsFamiliales$0, + [0, "enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale", 0]], + _dU_ = [0, cst_AllocationsFamiliales$0, [0, cst_est_enfant_le_plus_g, 0]], + _d6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("est_enfant_le_plus_\xc3\xa2g\xc3\xa9"),0]], - _d6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _dV_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _dV_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 158, 11, 158, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d7_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_II_d521_3", 0]], + _eh_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_II_d521_3"),0]], - _eh_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _d8_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _d8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 157, 11, 157, 27, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ei_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ei_ = [0, cst_AllocationsFamiliales$0, [0, "plafond_I_d521_3", 0]], + _ep_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_I_d521_3"),0]], - _ep_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ej_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ej_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 137, 11, 137, 34, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_compl\xc3\xa9ment"),0]], - _eC_= + cst_AllocationsFamiliales$0, + [0, "droit_ouvert_compl\xc3\xa9ment", 0]], + _eC_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_forfaitaire, 0]], + _eF_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_forfaitaire"),0]], - _eF_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 117, 11, 117, 64, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eD_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 117, 11, 117, 64, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eG_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eG_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"), - 0]], - _fc_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte", 0]], + _fc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _eH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _eH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 116, 11, 116, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fd_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fd_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"), - 0]], - _fg_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_troisi\xc3\xa8me_enfant_mayotte", 0]], + _fg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 110, 11, 110, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fe_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fe_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 110, 11, 110, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fh_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fh_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_total_enfants", 0]], + _fo_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_total_enfants"),0]], - _fo_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 109, 11, 109, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fi_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fi_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 109, 11, 109, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fp_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fp_ = [0, cst_AllocationsFamiliales$0, [0, "nombre_moyen_enfants", 0]], + _f5_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("nombre_moyen_enfants"),0]], - _f5_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _fq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _fq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 105, 11, 105, 46, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f6_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f6_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_base_premier_enfant"),0]], - _gf_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_premier_enfant", 0]], + _gf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _f7_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _f7_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 103, 11, 103, 28, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gg_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gg_ = [0, cst_AllocationsFamiliales$0, [0, "droit_ouvert_base", 0]], + _gA_ = + [0, cst_AllocationsFamiliales$0, [0, cst_droit_ouvert_majoration, 0]], + _gJ_ = [0, cst_AllocationsFamiliales$0, [0, cst_compl_ment_d_gressif, 0]], + _gR_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_base"),0]], - _gA_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert_majoration"),0]], - _gJ_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("compl\xc3\xa9ment_d\xc3\xa9gressif"),0]], - _gR_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gK_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 122, 11, 122, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gS_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gS_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire_par_enfant"), - 0]], - _g0_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_forfaitaire_par_enfant", 0]], + _g0_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _gT_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _gT_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 107, 11, 107, 56, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g1_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g1_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"), - 0]], - _hG_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_troisi\xc3\xa8me_enfant_et_plus", 0]], + _hG_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _g2_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _g2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 106, 11, 106, 47, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hH_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hH_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_base_deuxi\xc3\xa8me_enfant"), - 0]], - _hK_= + cst_AllocationsFamiliales$0, + [0, "montant_initial_base_deuxi\xc3\xa8me_enfant", 0]], + _hK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 108, 11, 108, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hI_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 108, 11, 108, 38, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _hL_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _hL_ = + [0, cst_AllocationsFamiliales$0, [0, "rapport_enfants_total_moyen", 0]], + _ia_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_m_tropole_, 0]], + _ih_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("rapport_enfants_total_moyen"),0]], - _ia_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes("montant_initial_m\xc3\xa9tropole_majoration"), - 0]], - _ih_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 123, 11, 123, 36, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ib_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ib_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 123, 11, 123, 36, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ii_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ii_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_forfaitaire"),0]], - _ir_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_forfaitaire", 0]], + _ir_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ij_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ij_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 104, 11, 104, 31, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _is_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _is_ = [0, cst_AllocationsFamiliales$0, [0, "montant_initial_base", 0]], + _iN_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_initial_majoration, 0]], + _iV_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_base"),0]], - _iN_= - [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_initial_majoration"),0]], - _iV_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iO_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 142, 11, 142, 52, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iW_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iW_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"), - 0]], - _iZ_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire", 0]], + _iZ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 111, 11, 111, 43, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _iX_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _iX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 111, 11, 111, 43, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _i0_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _i0_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_avec_garde_altern\xc3\xa9e_base"),0]], - _ja_= + cst_AllocationsFamiliales$0, + [0, "montant_avec_garde_altern\xc3\xa9e_base", 0]], + _ja_ = + [0, cst_AllocationsFamiliales$0, [0, cst_montant_avec_garde_altern_, 0]], + _jd_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_avec_garde_altern\xc3\xa9e_majoration"), - 0]], - _jd_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 112, 11, 112, 29, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jb_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jb_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 112, 11, 112, 29, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _je_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _je_ = + [0, cst_AllocationsFamiliales$0, [0, "montant_vers\xc3\xa9_base", 0]], + _jl_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_base"),0]], - _jl_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 134, 11, 134, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jf_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 134, 11, 134, 35, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jm_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jm_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9_majoration"),0]], - _jp_= + cst_AllocationsFamiliales$0, + [0, "montant_vers\xc3\xa9_majoration", 0]], + _jp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 138, 11, 138, 58, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jn_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 138, 11, 138, 58, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jq_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jq_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0, - caml_string_of_jsbytes - ("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"), - 0]], - _jx_= + cst_AllocationsFamiliales$0, + [0, "montant_base_compl\xc3\xa9ment_pour_base_et_majoration", 0]], + _jx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 141, 11, 141, 59, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jr_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 141, 11, 141, 59, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jy_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jy_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), + cst_AllocationsFamiliales$0, [0, - caml_string_of_jsbytes - ("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"), + "montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration", 0]], - _jB_= + _jB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 100, 12, 100, 25, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jz_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 100, 12, 100, 25, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _jC_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _jC_ = [0, cst_AllocationsFamiliales$0, [0, cst_montant_vers$0, 0]], + _jD_ = [0, - caml_string_of_jsbytes("AllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant_vers\xc3\xa9"),0]], - _jD_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 231, 5, 235, 6, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _jE_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _jE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 231, 5, 235, 6, [0, - caml_string_of_jsbytes("Article L521-2"), + cst_Article_L521_2, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cp_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/autres_codes.catala_fr"), + "examples/allocations_familiales/autres_codes.catala_fr", 24, 5, 24, 63, [0, - caml_string_of_jsbytes("Article L821-3"), + "Article L821-3", [0, - caml_string_of_jsbytes - ("Sous-section 1 : Aides personnelles au logement"), + "Sous-section 1 : Aides personnelles au logement", [0, - caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), + "Section 2 : R\xc3\xa8gles de non-cumul", [0, - caml_string_of_jsbytes - ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), + "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), + "Titre II : Dispositions communes aux aides personnelles au logement", [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), + "Livre VIII : Aides personnelles au logement", [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _cq_= + cst_Partie_l_gislative, + [0, "Code de la construction et de l'habitation", 0]]]]]]]]], + _cq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cl_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cl_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 60, 5, 62, 62, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cm_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cm_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ck_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ck_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 49, 5, 50, 50, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cn_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cn_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _co_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _co_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cr_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cr_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cj_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cj_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cs_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cs_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ci_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ci_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 57, 12, 57, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _ce_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _ce_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 68, 5, 71, 56, [0, - caml_string_of_jsbytes("Article L512-3"), + cst_Article_L512_3, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), + cst_Chapitre_2_Champ_d_applica, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _cf_= + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _cf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cd_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cg_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cc_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 58, 12, 58, 31, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b__= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b__ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 215, 18, 215, 41, [0, - caml_string_of_jsbytes("Article R755-0-2"), + "Article R755-0-2", [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Chapitre_5_Prestations_fam, [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), + cst_Titre_5_D_partements_d_out, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), + cst_Livre_7_R_gimes_divers_Dis, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _b$_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169$0 = cst_169$1, + cst_0_55$0 = cst_0_55$1, + _b$_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b9_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b9_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 31, 14, 31, 30, [0, - caml_string_of_jsbytes("Article R512-2"), + cst_Article_R512_2, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + cst_Chapitre_2_Champ_d_applica$0, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _bY_=[5,0], - _bZ_=[4,0], - _b0_=[3,0], - _b1_=[2,0], - _b2_=[1,0], - _b3_=[0,0], - _b4_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169 = cst_169$1, + cst_0_55 = cst_0_55$1, + _bY_ = [5, 0], + _bZ_ = [4, 0], + _b0_ = [3, 0], + _b1_ = [2, 0], + _b2_ = [1, 0], + _b3_ = [0, 0], + _b4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_L.catala_fr"), + cst_examples_allocations_famil$4, 357, 5, 362, 30, [0, - caml_string_of_jsbytes("Article L751-1"), + "Article L751-1", [0, - caml_string_of_jsbytes - ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), + cst_Titre_5_Dispositions_parti, [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _b5_= + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _b5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bX_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bX_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bR_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bN_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bN_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bJ_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bJ_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 21, 14, 21, 26, [0, - caml_string_of_jsbytes("Article R512-2"), + cst_Article_R512_2, [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), + cst_Chapitre_2_Champ_d_applica$0, [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), + cst_Titre_1_Champ_d_applicatio, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _bK_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _bK_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 60, 12, 60, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bI_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bI_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 60, 12, 60, 24, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bL_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bL_ = [0, cst_PrestationsFamiliales, [0, cst_ge_l512_3_2$0, 0]], + _bO_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], - _bO_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bP_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bP_ = [0, cst_PrestationsFamiliales, [0, "smic.date_courante", 0]], + _bM_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.date_courante"),0]], - _bM_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 69, 14, 69, 32, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bS_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bT_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bT_ = [0, cst_PrestationsFamiliales, [0, "smic.r\xc3\xa9sidence", 0]], + _bQ_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], - _bQ_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 68, 14, 68, 28, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bU_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bU_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], + _bV_ = [0, cst_PrestationsFamiliales, [0, cst_smic, [0, cst_Smic, 0]]], + _b6_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _bV_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _b6_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _bW_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _bW_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 61, 12, 61, 35, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b7_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b7_ = + [0, cst_PrestationsFamiliales, [0, cst_r_gime_outre_mer_l751_1$0, 0]], + _ca_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], - _ca_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _b8_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _b8_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 59, 11, 59, 27, [0, - caml_string_of_jsbytes("Prestations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _cb_= + cst_Prestations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _cb_ = [0, cst_PrestationsFamiliales, [0, "plafond_l512_3_2", 0]], + _ch_ = [0, cst_PrestationsFamiliales, [0, cst_conditions_hors_ge$0, 0]], + _ct_ = [0, cst_PrestationsFamiliales, [0, cst_droit_ouvert$0, 0]], + _bC_ = [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], - _ch_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _ct_= - [0, - caml_string_of_jsbytes("PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _bC_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 32, 5, 33, 33, [0, - caml_string_of_jsbytes - ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bD_= + "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41316 = "41316", + _bD_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bA_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bA_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 52, 5, 53, 33, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bB_= + "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41440 = "41440", + _bB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _by_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _by_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 68, 5, 69, 33, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bz_= + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41481 = "41481", + _bz_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bw_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bw_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 86, 5, 86, 34, [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _bx_= + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_42228 = "42228", + _bx_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bE_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bv_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bv_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 6, 12, 6, 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bF_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bF_ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$0, 0]], + _bG_ = [0, - caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant"),0]], - _bG_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 10, 13, 10, 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bH_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bH_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), + cst_examples_allocations_famil$5, 10, 13, 10, 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _bh_=[7,0], - _bi_=[5,0], - _bj_=[4,0], - _bk_=[3,0], - _bl_=[2,0], - _bm_=[1,0], - _bn_=[0,0], - _bo_=[6,0], - _bp_= + [0, cst_Montant_de_la_base_mensuel, 0]], + _bh_ = [7, 0], + _bi_ = [5, 0], + _bj_ = [4, 0], + _bk_ = [3, 0], + _bl_ = [2, 0], + _bm_ = [1, 0], + _bn_ = [0, 0], + _bo_ = [6, 0], + _bp_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 34, 5, 43, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bq_= + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1003 = "1003", + _bq_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _be_=[8,0], - _bf_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _be_ = [8, 0], + _bf_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 52, 5, 54, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bg_= + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_757 = "757", + _bg_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _a6_=[7,0], - _a7_=[5,0], - _a8_=[4,0], - _a9_=[3,0], - _a__=[2,0], - _a$_=[1,0], - _ba_=[0,0], - _bb_=[6,0], - _bc_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _a6_ = [7, 0], + _a7_ = [5, 0], + _a8_ = [4, 0], + _a9_ = [3, 0], + _a__ = [2, 0], + _a$_ = [1, 0], + _ba_ = [0, 0], + _bb_ = [6, 0], + _bc_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 73, 5, 82, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _bd_= + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1015 = "1015", + _bd_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _a3_=[8,0], - _a4_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _a3_ = [8, 0], + _a4_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 91, 5, 93, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _a5_= + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_766 = "766", + _a5_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aT_=[7,0], - _aU_=[5,0], - _aV_=[4,0], - _aW_=[3,0], - _aX_=[2,0], - _aY_=[1,0], - _aZ_=[0,0], - _a0_=[6,0], - _a1_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aT_ = [7, 0], + _aU_ = [5, 0], + _aV_ = [4, 0], + _aW_ = [3, 0], + _aX_ = [2, 0], + _aY_ = [1, 0], + _aZ_ = [0, 0], + _a0_ = [6, 0], + _a1_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 112, 5, 121, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _a2_= + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1025 = "1025", + _a2_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aQ_=[8,0], - _aR_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aQ_ = [8, 0], + _aR_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 130, 5, 132, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aS_= + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_774 = "774", + _aS_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aG_=[7,0], - _aH_=[5,0], - _aI_=[4,0], - _aJ_=[3,0], - _aK_=[2,0], - _aL_=[1,0], - _aM_=[0,0], - _aN_=[6,0], - _aO_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aG_ = [7, 0], + _aH_ = [5, 0], + _aI_ = [4, 0], + _aJ_ = [3, 0], + _aK_ = [2, 0], + _aL_ = [1, 0], + _aM_ = [0, 0], + _aN_ = [6, 0], + _aO_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 151, 5, 160, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aP_= + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1057 = "1057", + _aP_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aD_=[8,0], - _aE_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aD_ = [8, 0], + _aE_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 170, 5, 172, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aF_= + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_798 = "798", + _aF_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _at_=[7,0], - _au_=[5,0], - _av_=[4,0], - _aw_=[3,0], - _ax_=[2,0], - _ay_=[1,0], - _az_=[0,0], - _aA_=[6,0], - _aB_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _at_ = [7, 0], + _au_ = [5, 0], + _av_ = [4, 0], + _aw_ = [3, 0], + _ax_ = [2, 0], + _ay_ = [1, 0], + _az_ = [0, 0], + _aA_ = [6, 0], + _aB_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 191, 5, 200, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _aC_= + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1085 = "1085", + _aC_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _aq_=[8,0], - _ar_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _aq_ = [8, 0], + _ar_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 209, 5, 211, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _as_= + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_819 = "819", + _as_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _ag_=[7,0], - _ah_=[5,0], - _ai_=[4,0], - _aj_=[3,0], - _ak_=[2,0], - _al_=[1,0], - _am_=[0,0], - _an_=[6,0], - _ao_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ag_ = [7, 0], + _ah_ = [5, 0], + _ai_ = [4, 0], + _aj_ = [3, 0], + _ak_ = [2, 0], + _al_ = [1, 0], + _am_ = [0, 0], + _an_ = [6, 0], + _ao_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 230, 5, 239, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _ap_= + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1107 = "1107", + _ap_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _ad_=[8,0], - _ae_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ad_ = [8, 0], + _ae_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 248, 5, 250, 6, [0, - caml_string_of_jsbytes("Article 2"), + cst_Article_2, [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _af_= + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_835 = "835", + _af_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _V_=[7,0], - _W_=[5,0], - _X_=[4,0], - _Y_=[3,0], - _Z_=[2,0], - ___=[1,0], - _$_=[0,0], - _aa_=[6,0], - _ab_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _V_ = [7, 0], + _W_ = [5, 0], + _X_ = [4, 0], + _Y_ = [3, 0], + _Z_ = [2, 0], + ___ = [1, 0], + _$_ = [0, 0], + _aa_ = [6, 0], + _ab_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 270, 5, 279, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _ac_= + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1127 = "1127", + _ac_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _S_=[8,0], - _T_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _S_ = [8, 0], + _T_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 288, 5, 290, 6, [0, - caml_string_of_jsbytes("Article 1"), + cst_Article_1, [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _U_= + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_851 = "851", + _U_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _br_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _br_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _R_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _R_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 11, 12, 11, 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _bs_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _bs_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], + _bt_ = [0, - caml_string_of_jsbytes("Smic"), - [0,caml_string_of_jsbytes("brut_horaire"),0]], - _bt_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 16, 13, 16, 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _bu_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _bu_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/smic.catala_fr"), + cst_examples_allocations_famil$6, 16, 13, 16, 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _O_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _O_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 36, 14, 36, 27, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _P_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _P_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 33, 12, 33, 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _N_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _N_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 33, 12, 33, 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _Q_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _Q_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], + _K_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], - _K_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 25, 14, 25, 35, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _L_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _L_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 22, 12, 22, 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _J_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _J_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/../smic/../prologue_france/prologue.catala_fr"), + cst_examples_allocations_famil$7, 22, 12, 22, 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _M_= + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _M_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], + _G_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], - _G_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/epilogue.catala_fr"), + cst_examples_allocations_famil, 12, 14, 12, 25, - [0, - caml_string_of_jsbytes("R\xc3\xa8gles diverses"), - [0,caml_string_of_jsbytes("\xc3\x89pilogue"),0]]], - _E_=[2,0], - _F_=[1,0], - _H_= + [0, cst_R_gles_diverses, [0, cst_pilogue, 0]]], + _E_ = [2, 0], + cst_0 = cst_0$67, + _F_ = [1, 0], + cst_1 = "-1", + _H_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 80, 12, 80, 23, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _D_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _D_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 80, 12, 80, 23, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _I_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _I_ = [0, cst_EnfantLePlus_g, [0, cst_le_plus_g$0, 0]], + _A_ = [0, - caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"), - [0,caml_string_of_jsbytes("le_plus_\xc3\xa2g\xc3\xa9"),0]], - _A_= - [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/securite_sociale_R.catala_fr"), + cst_examples_allocations_famil$1, 78, 14, 78, 41, [0, - caml_string_of_jsbytes("Article R521-1"), + cst_Article_R521_1, [0, - caml_string_of_jsbytes("Chapitre 1er : Allocations familiales"), + cst_Chapitre_1er_Allocations_f, [0, - caml_string_of_jsbytes - ("Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien"), + cst_Titre_2_Prestations_g_n_ra, [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), + cst_Livre_5_Prestations_famili, [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _B_= + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _B_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 76, 12, 76, 39, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _z_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _z_ = [0, - caml_string_of_jsbytes - ("examples/allocations_familiales/prologue.catala_fr"), + cst_examples_allocations_famil$2, 76, 12, 76, 39, [0, - caml_string_of_jsbytes("Allocations familiales"), - [0, - caml_string_of_jsbytes("Champs d'applications"), - [0,caml_string_of_jsbytes("Prologue"),0]]]], - _C_= + cst_Allocations_familiales, + [0, cst_Champs_d_applications, [0, cst_Prologue, 0]]]], + _C_ = [0, - caml_string_of_jsbytes("AllocationFamilialesAvril2008"), - [0, - caml_string_of_jsbytes("\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3"), - 0]], - _y_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales_in"),0], - _x_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], - _w_=[0,caml_string_of_jsbytes("Smic_in"),0], - _v_= + cst_AllocationFamilialesAvril2, + [0, cst_ge_minimum_alin_a_1_l521_3$0, 0]], + cst_i_avait_enfant_charge_avan = + "i_avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", + cst_i_personne_charge_effectiv = + "i_personne_charge_effective_permanente_remplit_titre_I_in", + cst_i_personne_charge_effectiv$0 = + "i_personne_charge_effective_permanente_est_parent_in", + cst_i_r_sidence_in = "i_r\xc3\xa9sidence_in", + cst_i_ressources_m_nage_in = "i_ressources_m\xc3\xa9nage_in", + cst_i_enfants_in = "i_enfants_in", + cst_i_date_courante_in = "i_date_courante_in", + _y_ = [0, "InterfaceAllocationsFamiliales_in", 0], + cst_date_courante_in$4 = cst_date_courante_in$5, + _x_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], + cst_r_sidence_in$1 = cst_r_sidence_in$2, + cst_date_courante_in$3 = cst_date_courante_in$5, + _w_ = [0, "Smic_in", 0], + cst_ann_es_in$0 = cst_ann_es_in$1, + cst_date_courante_in$2 = cst_date_courante_in$5, + cst_date_naissance_in$0 = cst_date_naissance_in$1, + _v_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], + cst_ann_es_in = cst_ann_es_in$1, + cst_date_courante_in$1 = cst_date_courante_in$5, + cst_date_naissance_in = cst_date_naissance_in$1, + _u_ = [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", 0], - _u_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), - 0], - _t_=[0,caml_string_of_jsbytes("AllocationsFamiliales_in"),0], - _s_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9_in"),0], - _r_=[0,caml_string_of_jsbytes("PrestationsFamiliales_in"),0], - _q_=[0,caml_string_of_jsbytes("PrestationsFamiliales"),0], - _p_=[0,caml_string_of_jsbytes("EnfantLePlus\xc3\x82g\xc3\xa9"),0], - _o_=[0,caml_string_of_jsbytes("Enfant"),0], - _n_=[0,caml_string_of_jsbytes("EnfantEntr\xc3\xa9e"),0], - _m_=[0,caml_string_of_jsbytes("InterfaceAllocationsFamiliales"),0], - _l_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], - _k_=[0,caml_string_of_jsbytes("Smic"),0], - _j_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - 0], - _i_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - 0], - _h_=[0,caml_string_of_jsbytes("AllocationsFamiliales"),0], - _g_=[0,caml_string_of_jsbytes("AllocationFamilialesAvril2008"),0], - _f_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], - _e_= - [0, - caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), - 0], - _d_=[0,caml_string_of_jsbytes("VersementAllocations"),0], - _c_=[0,caml_string_of_jsbytes("PriseEnCompte"),0], - _b_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], - _a_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], - _kP_=[7,0], - _kQ_=[5,0], - _kR_=[4,0], - _kS_=[6,0], - _kT_=[8,0], - _kU_=[2,0], - _kV_=[3,0], - _kW_=[1,0], - _kX_=[0,0], - _kO_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'Collectivite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], - _kG_=[0,0], - _kH_=[2,0], - _kI_=[1,0], - _kJ_=[5,0], - _kK_=[6,0], - _kL_=[3,0], - _kM_=[7,0], - _kN_=[4,0], - _kF_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], - _kD_=[0,0], - _kE_=[1,0], - _kC_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'VersementAllocations.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'VersementAllocations.t'")], - _kz_=[2,0], - _kA_=[1,0], - _kB_=[0,0], - _ky_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCompte.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'")], - _kv_=[1,0], - _kw_=[0,0], - _kx_=[2,0], - _ku_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationObligationScolaire.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], - _kp_=[4,0], - _kq_=[3,0], - _kr_=[0,0], - _ks_=[1,0], - _kt_=[2,0], - _ko_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], - _acm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 283, - 14, - 283, - 25, - [0, - caml_string_of_jsbytes - ("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"), - 0]], - _aci_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _acj_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _ack_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _acl_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _ace_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1273, - 14, - 1273, - 63, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aca_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1304, - 14, - 1304, - 25, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1269, - 5, - 1269, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1266, - 14, - 1266, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1264, - 14, - 1264, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1262, - 14, - 1262, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1260, - 14, - 1260, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 14, - 1258, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1256, - 14, - 1256, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1254, - 14, - 1254, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aby_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1275, - 14, - 1275, - 48, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1243, - 11, - 1243, - 45, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1243, - 11, - 1243, - 45, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abA_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"), - 0]], - _abD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1254, - 14, - 1254, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abE_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.m\xc3\xa9nage"),0]], - _abB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1254, - 14, - 1254, - 31, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1256, - 14, - 1256, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abI_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.demandeur"),0]], - _abF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1256, - 14, - 1256, - 34, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 14, - 1258, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abM_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("calculette.date_courante"),0]], - _abJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1258, - 14, - 1258, - 38, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1260, - 14, - 1260, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abQ_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette.ressources_m\xc3\xa9nage_prises_en_compte"), - 0]], - _abN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1260, - 14, - 1260, - 59, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abR_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - _abS_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - _abV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1262, - 14, - 1262, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abW_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"), - 0]], - _abT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1262, - 14, - 1262, - 51, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1264, - 14, - 1264, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab0_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.demandeur"), - 0]], - _abX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1264, - 14, - 1264, - 54, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1266, - 14, - 1266, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab4_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.date_courante"), - 0]], - _ab1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1266, - 14, - 1266, - 58, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1269, - 5, - 1269, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab8_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"), - 0]], - _ab5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1269, - 5, - 1269, - 70, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab9_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - _ab__= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes("calculette_sans_garde_altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0]]], - _acb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1250, - 12, - 1250, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ab$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1250, - 12, - 1250, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _acc_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _acf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1244, - 11, - 1244, - 60, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _acd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1244, - 11, - 1244, - 60, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _acg_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _acn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1251, - 12, - 1251, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _ach_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1251, - 12, - 1251, - 23, - [0, - caml_string_of_jsbytes("Calculette avec garde altern\xc3\xa9e"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aco_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - [0,caml_string_of_jsbytes("aide_finale"),0]], - _abu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1123, - 14, - 1123, - 33, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _abm_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _abn_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abo_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _abp_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abq_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _abr_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abs_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _abt_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1140, - 14, - 1140, - 36, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aba_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _abb_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abc_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _abd_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abe_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _abf_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abg_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _abh_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1174, - 12, - 1174, - 34, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1174, - 12, - 1174, - 34, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1102, - 14, - 1102, - 25, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aa4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1224, - 14, - 1224, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1219, - 14, - 1219, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1215, - 14, - 1215, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1211, - 14, - 1211, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1205, - 5, - 1205, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1196, - 14, - 1196, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aaz_=[0,0], - _aav_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1192, - 14, - 1192, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aap_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1221, - 14, - 1221, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aal_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aai_=[2,0], - _aaj_=[1,0], - _aak_=[2,0], - _aae_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1217, - 14, - 1217, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1213, - 14, - 1213, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1209, - 14, - 1209, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$W_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 14, - 1194, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$Q_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1188, - 14, - 1188, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$M_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1184, - 14, - 1184, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$I_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1180, - 14, - 1180, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$C_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$y_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1186, - 14, - 1186, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$u_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1182, - 14, - 1182, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$q_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1190, - 14, - 1190, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$r_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1190, - 14, - 1190, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$s_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"), - 0]], - _$p_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1190, - 14, - 1190, - 59, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$v_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1182, - 14, - 1182, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$w_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"), - 0]], - _$t_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1182, - 14, - 1182, - 52, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1186, - 14, - 1186, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$A_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"), - 0]], - _$x_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1186, - 14, - 1186, - 55, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$D_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$E_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"), - 0]], - _$B_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1097, - 5, - 1097, - 74, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$F_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0]]], - _$G_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement"), - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0]]], - _$J_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1180, - 14, - 1180, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$K_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"), - 0]], - _$H_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1180, - 14, - 1180, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$N_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1184, - 14, - 1184, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$O_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"), - 0]], - _$L_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1184, - 14, - 1184, - 63, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$R_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1188, - 14, - 1188, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$S_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"), - 0]], - _$P_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1188, - 14, - 1188, - 67, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$T_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0]]], - _$U_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0]]], - _$X_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 14, - 1194, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$Y_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.mode_occupation"), - 0]], - _$V_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1194, - 14, - 1194, - 56, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$2_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"), - 0]], - _$Z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1198, - 14, - 1198, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$6_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.situation_familiale"), - 0]], - _$3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1202, - 14, - 1202, - 60, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1209, - 14, - 1209, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _$__= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"), - 0]], - _$7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1209, - 14, - 1209, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aab_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1213, - 14, - 1213, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aac_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("calcul_allocation_logement.zone"),0]], - _$$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1213, - 14, - 1213, - 45, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1217, - 14, - 1217, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aag_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.date_courante"), - 0]], - _aad_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1217, - 14, - 1217, - 54, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aam_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aan_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("calcul_allocation_logement.type_aide"),0]], - _aah_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1113, - 14, - 1113, - 50, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aaq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1221, - 14, - 1221, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aar_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement.r\xc3\xa9sidence"), - 0]], - _aao_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1221, - 14, - 1221, - 50, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aas_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement"), - [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], - _aat_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_allocation_logement"), - [0,caml_string_of_jsbytes("CalculAllocationLogement"),0]]], - _aaw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1192, - 14, - 1192, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aax_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"), - 0]], - _aau_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1192, - 14, - 1192, - 64, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aaC_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"), - 0]], - _aay_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1111, - 14, - 1111, - 58, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _aaF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1196, - 14, - 1196, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaG_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"), - 0]], - _aaD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1196, - 14, - 1196, - 66, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaK_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"), - 0]], - _aaH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1200, - 14, - 1200, - 68, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1205, - 5, - 1205, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaO_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"), - 0]], - _aaL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1205, - 5, - 1205, - 65, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1211, - 14, - 1211, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaS_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.zone"), - 0]], - _aaP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1211, - 14, - 1211, - 53, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1215, - 14, - 1215, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaW_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"), - 0]], - _aaT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1215, - 14, - 1215, - 62, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aaZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1219, - 14, - 1219, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa0_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence"), - 0]], - _aaX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1219, - 14, - 1219, - 58, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa1_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], - _aa2_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes("calcul_aide_personnalis\xc3\xa9e_logement"), - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0]]], - _aa5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1176, - 12, - 1176, - 61, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1176, - 12, - 1176, - 61, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa6_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _aa9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1172, - 12, - 1172, - 23, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1172, - 12, - 1172, - 23, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _aa__= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _abk_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _abv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1173, - 12, - 1173, - 31, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1173, - 12, - 1173, - 31, - [0, - caml_string_of_jsbytes("Calculette globale"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]], - _abw_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _$k_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1278, - 5, - 1279, - 54, - [0, - caml_string_of_jsbytes("Article L860-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _$l_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$j_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 627, - 5, - 629, - 36, - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _$m_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$i_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$b_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 777, - 5, - 790, - 30, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$c_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$a_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 758, - 5, - 763, - 30, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$d_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 753, - 31, - 753, - 54, - [0, - caml_string_of_jsbytes("Article L831-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _$e_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - ____= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 413, - 14, - 413, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 415, - 14, - 415, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __W_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1419, - 5, - 1422, - 30, - [0, - caml_string_of_jsbytes("Article L861-5-1"), - [0, - caml_string_of_jsbytes - ("Section 3 : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - __X_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __V_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 721, - 5, - 724, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __Y_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __P_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3690, - 5, - 3695, - 30, - [0, - caml_string_of_jsbytes("Article R832-21"), - [0, - caml_string_of_jsbytes - ("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - __Q_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __L_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - [0,caml_string_of_jsbytes("input0"),0]]], - __M_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - __N_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - [0,caml_string_of_jsbytes("output"),0]]], - __O_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - __K_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 738, - 5, - 741, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __R_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __J_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 677, - 5, - 686, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __S_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __F_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - [0,caml_string_of_jsbytes("input0"),0]]], - __G_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - __H_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - [0,caml_string_of_jsbytes("output"),0]]], - __I_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - __E_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 656, - 5, - 659, - 30, - [0, - caml_string_of_jsbytes("Article L831-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __T_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __U_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __D_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __y_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4637, - 6, - 4637, - 43, - [0, - caml_string_of_jsbytes("Article 49"), - [0, - caml_string_of_jsbytes("Chapitre XI : Dispositions communes"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - __z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __x_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __r_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5468, - 5, - 5469, - 53, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __s_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5467, - 14, - 5467, - 66, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - __t_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), - 0]], - __o_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __k_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __g_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __c_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __d_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __b_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 398, - 11, - 398, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3018, - 5, - 3021, - 41, - [0, - caml_string_of_jsbytes("Article R832-7"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Z8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2983, - 5, - 2985, - 42, - [0, - caml_string_of_jsbytes("Article R832-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Z9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 397, - 11, - 397, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __a_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1"), - 0]], - __e_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6"), - 0]], - __h_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __i_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), - 0]], - __f_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 409, - 14, - 409, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __l_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __m_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), - 0]], - __j_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 410, - 14, - 410, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __p_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __q_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), - 0]], - __n_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 411, - 14, - 411, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __u_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - __v_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - __A_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __w_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 394, - 11, - 394, - 53, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __B_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"), - 0]], - __Z_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __C_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 395, - 11, - 395, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("condition_logement_bailleur"),0]], - __3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 404, - 12, - 404, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 404, - 12, - 404, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __4_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - __7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 403, - 12, - 403, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 403, - 12, - 403, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _$f_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - __9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 396, - 11, - 396, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$g_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("condition_logement_pr\xc3\xaat"),0]], - _$n_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$h_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 402, - 12, - 402, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _$o_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _ZY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1638, - 5, - 1639, - 79, - [0, - caml_string_of_jsbytes("Article L816-8"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ZX_=[0,0], - _ZZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1604, - 5, - 1613, - 28, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ZV_=[0,0], - _Z0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1181, - 5, - 1181, - 73, - [0, - caml_string_of_jsbytes("Article L841-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZS_=[2,0], - _ZU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1195, - 5, - 1198, - 28, - [0, - caml_string_of_jsbytes("Article L841-4"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZQ_=[0,0], - _Z1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1081, - 29, - 1081, - 40, - [0, - caml_string_of_jsbytes("Article L841-2"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZL_=[0,0], - _ZM_=[0,0], - _ZN_=[1,0], - _ZO_=[2,0], - _Zz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1818, - 5, - 1818, - 66, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _ZA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zs_=[2,0], - _Zx_=[0,0], - _Zt_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Zu_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Zv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Zw_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Zy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1778, - 5, - 1799, - 9, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _ZB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1528, - 5, - 1528, - 66, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Zq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zi_=[2,0], - _Zn_=[0,0], - _Zj_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Zk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Zl_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Zm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Zo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1486, - 5, - 1507, - 9, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Zr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1049, - 5, - 1054, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1023, - 5, - 1034, - 13, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Zb_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Zc_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Zd_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ze_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Zf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1005, - 5, - 1007, - 9, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Y6_=[2,0], - _Y$_=[0,0], - _Y7_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Y8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Y9_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Y__= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Za_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 965, - 5, - 991, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YZ_=[2,0], - _Y4_=[0,0], - _Y0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Y1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Y2_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _Y3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _Y5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 932, - 5, - 954, - 8, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YU_=[4,0], - _YV_=[3,0], - _YW_=[1,0], - _YX_=[0,0], - _YY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 909, - 5, - 915, - 6, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ZH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 877, - 14, - 877, - 25, - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _YN_=[0,0], - _YO_=[2,0], - _YJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 468, - 14, - 468, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 470, - 14, - 470, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4778, - 9, - 4778, - 55, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _YA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4778, - 9, - 4778, - 55, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _YB_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"), - 0]], - _Yw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4777, - 9, - 4777, - 68, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Yx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4777, - 9, - 4777, - 68, - [0, - caml_string_of_jsbytes("Article R842-14"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Yy_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"), - 0]], - _Yt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4372, - 5, - 4377, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Yd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4355, - 5, - 4360, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ye_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ya_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4338, - 5, - 4345, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Yf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4308, - 5, - 4310, - 28, - [0, - caml_string_of_jsbytes("Article R842-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Yh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 905, - 9, - 905, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _X5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1754, - 9, - 1754, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _X2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1448, - 9, - 1448, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _X3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 927, - 9, - 927, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1755, - 9, - 1755, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _XR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1449, - 9, - 1449, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _XS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1044, - 9, - 1044, - 29, - [0, - caml_string_of_jsbytes("Article L841-1"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _XJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1756, - 9, - 1756, - 29, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _XG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1450, - 9, - 1450, - 29, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _XH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xs_=[3,0], - _Xo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4179, - 14, - 4179, - 28, - [0, - caml_string_of_jsbytes("Article D841-1"), - [0, - caml_string_of_jsbytes("Chapitre 1 : Champ d'application"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Xl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 443, - 11, - 443, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 443, - 11, - 443, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xm_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("dur\xc3\xa9e_l841_1_3"),0]], - _Xp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xq_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _Xn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 459, - 14, - 459, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xv_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _Xr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 460, - 14, - 460, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xz_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _Xw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 462, - 14, - 462, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XA_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _XB_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _XL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 440, - 11, - 440, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XM_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_6_applicable"),0]], - _XW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 439, - 11, - 439, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XX_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_2_applicable"),0]], - _X7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _XY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 438, - 11, - 438, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X8_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("l_841_1_1_applicable"),0]], - _Yi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _X9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 437, - 11, - 437, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yj_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("condition_accession_propri\xc3\xa9t\xc3\xa9"), - 0]], - _Ym_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yn_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage"), - 0]], - _Yk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 464, - 14, - 464, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yr_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune.demandeur"), - 0]], - _Yo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 465, - 14, - 465, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Yv_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_commune.date_courante"), - 0]], - _Ys_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 466, - 14, - 466, - 47, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YC_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _YD_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_commune"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _YG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 453, - 12, - 453, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 453, - 12, - 453, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YH_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _YK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 452, - 12, - 452, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 452, - 12, - 452, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YL_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _YQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 450, - 10, - 450, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 450, - 10, - 450, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YR_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"), - 0]], - _ZI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _YS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 442, - 11, - 442, - 52, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZJ_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0, - caml_string_of_jsbytes - ("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"), - 0]], - _Z2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ZK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 451, - 10, - 451, - 16, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux allocations de logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Z3_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]], - _Xg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2106, - 14, - 2106, - 40, - [0, - caml_string_of_jsbytes("Article D823-22"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _W9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5502, - 5, - 5502, - 40, - [0, - caml_string_of_jsbytes("Article D861-7"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _W__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1889, - 5, - 1889, - 54, - [0, - caml_string_of_jsbytes("Article L863-2"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _W$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1314, - 5, - 1314, - 40, - [0, - caml_string_of_jsbytes("Article L861-4"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Xa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 599, - 5, - 602, - 42, - [0, - caml_string_of_jsbytes("Article L823-8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Xc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4303, - 14, - 4303, - 29, - [0, - caml_string_of_jsbytes("Article 45"), - [0, - caml_string_of_jsbytes - ("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _WW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2065, - 6, - 2076, - 75, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _WX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ww_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2056, - 5, - 2061, - 77, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2080, - 14, - 2080, - 47, - [0, - caml_string_of_jsbytes("Article D823-20"), - [0, - caml_string_of_jsbytes - ("Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ws_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 494, - 11, - 494, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 494, - 11, - 494, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wt_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"), - 0]], - _Wy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 491, - 11, - 491, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Wz_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("condition_rang_enfant"),0]], - _WC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WD_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("base_mensuelle_allocations_familiales.date_courante"), - 0]], - _WA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 508, - 14, - 508, - 65, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WE_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _WF_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _WI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WJ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"), - 0]], - _WG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 504, - 14, - 504, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]], - _WK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 505, - 14, - 505, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WR_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"), - 0]], - _WO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 506, - 14, - 506, - 43, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WS_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _WT_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_apl"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0]]], - _WY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 492, - 11, - 492, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _WZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"), - 0]], - _W2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 495, - 11, - 495, - 26, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 495, - 11, - 495, - 26, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("plafond_d823_22"),0]], - _Xd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _W4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 493, - 11, - 493, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xe_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], - _Xh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 501, - 12, - 501, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 501, - 12, - 501, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Xi_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - [0, - caml_string_of_jsbytes("montant_prime_d\xc3\xa9m\xc3\xa9nagement"), - 0]], - _Wm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 372, - 5, - 373, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1750 du 21 d\xc3\xa9cembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement \xc3\xa0 Saint-Pierre-et-Miquelon"), - 0]]], - _Wn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1109, - 12, - 1109, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1439, - 14, - 1439, - 33, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1441, - 14, - 1441, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1110, - 12, - 1110, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1110, - 12, - 1110, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6410, - 24, - 6410, - 46, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _V7_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _V8_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _V9_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _V__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _V3_=[1,0], - _V4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6439, - 42, - 6439, - 45, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _V5_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _V6_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _V$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6414, - 9, - 6442, - 10, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Wa_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Wb_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Wd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 11, - 1107, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _V2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1555, - 14, - 1555, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _VW_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VX_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _VY_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VM_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _VN_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _VP_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VD_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _VE_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _VG_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _VA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1575, - 16, - 1578, - 39, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _VC_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _VH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1559, - 9, - 1581, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VI_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _VJ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _VK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _VL_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _VQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1614, - 10, - 1633, - 11, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _VR_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _VS_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _VT_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _VU_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _VZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1592, - 9, - 1604, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _V0_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _V1_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _Vw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 90, - 14, - 90, - 44, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Vq_=[0,0], - _Vr_=[1,0], - _Vs_=[1,0], - _Vt_=[1,0], - _Vu_=[0,0], - _Vv_=[1,0], - _Vm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1972, - 14, - 1972, - 31, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Vi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1428, - 14, - 1428, - 34, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Vj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1104, - 11, - 1104, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1104, - 11, - 1104, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vk_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], - _Vn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1096, - 10, - 1096, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1096, - 10, - 1096, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vo_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], - _Vx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1105, - 11, - 1105, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1105, - 11, - 1105, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vy_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], - _We_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 11, - 1107, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Vz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1107, - 11, - 1107, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wf_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], - _Wj_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Wo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1109, - 12, - 1109, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1109, - 12, - 1109, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Wp_= - [0, - caml_string_of_jsbytes("CalculAllocationLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _U__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 357, - 14, - 357, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 359, - 14, - 359, - 63, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1139, - 14, - 1139, - 49, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UY_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - [0,caml_string_of_jsbytes("input0"),0]]], - _UZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _U0_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - [0,caml_string_of_jsbytes("output"),0]]], - _U1_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _US_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1246, - 4, - 1252, - 48, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("input0"),0]]], - _UO_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _UP_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("condition_2_r823_4"), - [0,caml_string_of_jsbytes("output"),0]]], - _UQ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _UR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1227, - 5, - 1227, - 44, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1844, - 5, - 1850, - 34, - [0, - caml_string_of_jsbytes("Article L862-3"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _UI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1574, - 5, - 1580, - 34, - [0, - caml_string_of_jsbytes("Article L861-6"), - [0, - caml_string_of_jsbytes("Section 4 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 449, - 5, - 457, - 28, - [0, - caml_string_of_jsbytes("Article L823-1"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _UK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uy_=[2,0], - _UE_=[0,0], - _Uz_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("input0"),0]]], - _UA_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _UB_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0, - caml_string_of_jsbytes("droit_ouvert"), - [0,caml_string_of_jsbytes("output"),0]]], - _UC_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _UD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1156, - 5, - 1178, - 44, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _UM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ux_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 321, - 11, - 321, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Us_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 353, - 5, - 355, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ut_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ur_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ug_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1214, - 30, - 1214, - 35, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Uh_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _Ui_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Uj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1211, - 17, - 1214, - 37, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Uk_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ul_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _Um_=[0,0], - _Uf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1199, - 5, - 1222, - 10, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Un_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ue_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ud_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 346, - 12, - 346, - 30, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 91, - 5, - 92, - 52, - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _T$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 84, - 5, - 87, - 52, - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]], - _Ua_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 163, - 14, - 163, - 31, - [0, - caml_string_of_jsbytes("Article L351-8"), - [0, - caml_string_of_jsbytes("Section 5 : Taux et montant de la pension"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"), - [0, - caml_string_of_jsbytes - ("Titre V : Assurance vieillesse - Assurance veuvage"), - [0, - caml_string_of_jsbytes - ("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _TZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 401, - 18, - 401, - 44, - [0, - caml_string_of_jsbytes("Article L822-10"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _T0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 302, - 18, - 302, - 75, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _TR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TN_=[5,0], - _TO_=[4,0], - _TP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 288, - 18, - 290, - 45, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _TS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 945, - 5, - 945, - 58, - [0, - caml_string_of_jsbytes("Article R822-22"), - [0, - caml_string_of_jsbytes - ("Sous-section 4 : Prise en compte du patrimoine"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _TU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 271, - 33, - 271, - 58, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _TH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 125, - 14, - 125, - 32, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Tz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5280, - 5, - 5281, - 34, - [0, - caml_string_of_jsbytes("Article R844-4"), - [0, - caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _TA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ty_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5273, - 5, - 5275, - 58, - [0, - caml_string_of_jsbytes("Article R844-4"), - [0, - caml_string_of_jsbytes("Chapitre IV : Conditions de peuplement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _TB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1048, - 5, - 1065, - 65, - [0, - caml_string_of_jsbytes("Article R822-25"), - [0, - caml_string_of_jsbytes - ("Section 3 : Conditions relatives au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _TC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 189, - 5, - 195, - 65, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _To_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 174, - 5, - 176, - 30, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 143, - 5, - 149, - 33, - [0, - caml_string_of_jsbytes("Article L822-2"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ts_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Td_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5723, - 5, - 5726, - 28, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Te_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5722, - 24, - 5722, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5628, - 6, - 5634, - 30, - [0, - caml_string_of_jsbytes("Article D861-9"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5722, - 24, - 5722, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5722, - 24, - 5722, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Tb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1152, - 14, - 1152, - 49, - [0, - caml_string_of_jsbytes("Article R823-4"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Th_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5722, - 24, - 5722, - 59, - [0, - caml_string_of_jsbytes("Article R862-2"), - [0, - caml_string_of_jsbytes - ("Section I : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Ti_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.\xc3\xa2ge_l512_3_2"), - 0]], - _S__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S5_=[3,0], - _S1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 227, - 22, - 227, - 27, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _SR_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _SS_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _ST_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 224, - 8, - 227, - 29, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _SU_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _SV_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _SP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 221, - 5, - 229, - 39, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _SW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 215, - 5, - 216, - 34, - [0, - caml_string_of_jsbytes("Article L822-4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _SX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 329, - 5, - 330, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _SJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 334, - 5, - 335, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _SH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 339, - 5, - 340, - 34, - [0, - caml_string_of_jsbytes("Article D815-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]], - _SF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 58, - 5, - 58, - 34, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _SD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 89, - 5, - 90, - 33, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _SB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 122, - 5, - 123, - 33, - [0, - caml_string_of_jsbytes - ('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'), - [0, - caml_string_of_jsbytes - ("Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es"), - 0]]], - _Sz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _St_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1334, - 5, - 1334, - 40, - [0, - caml_string_of_jsbytes("Article L861-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Su_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ss_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 125, - 14, - 125, - 35, - [0, - caml_string_of_jsbytes("Article L822-2"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _So_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 267, - 14, - 267, - 40, - [0, - caml_string_of_jsbytes("Article L822-5"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Si_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Sc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 46, - 5, - 46, - 41, - [0, - caml_string_of_jsbytes("Article L821-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Section 2 : R\xc3\xa8gles de non-cumul"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Sd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Se_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 362, - 18, - 362, - 67, - [0, - caml_string_of_jsbytes("Article L822-8"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _R9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 376, - 18, - 376, - 61, - [0, - caml_string_of_jsbytes("Article L822-9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _R3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 1376, - 5, - 1376, - 40, - [0, - caml_string_of_jsbytes("Article L861-5"), - [0, - caml_string_of_jsbytes - ("Section 2 : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 445, - 9, - 445, - 42, - [0, - caml_string_of_jsbytes("Article L823-1"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _RX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1035, - 14, - 1035, - 39, - [0, - caml_string_of_jsbytes("Article R822-25"), - [0, - caml_string_of_jsbytes - ("Section 3 : Conditions relatives au logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _RL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 164, - 14, - 164, - 43, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _RH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 928, - 14, - 928, - 37, - [0, - caml_string_of_jsbytes("Article R822-22"), - [0, - caml_string_of_jsbytes - ("Sous-section 4 : Prise en compte du patrimoine"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _RD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 106, - 14, - 106, - 41, - [0, - caml_string_of_jsbytes("Article R822-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Rz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 105, - 14, - 105, - 42, - [0, - caml_string_of_jsbytes("Article R822-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ru_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5464, - 14, - 5464, - 46, - [0, - caml_string_of_jsbytes("Article R861-5"), - [0, - caml_string_of_jsbytes - ("Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Rv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 309, - 11, - 309, - 25, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ro_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_pr\xc3\xaat"),0]], - _Rr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 318, - 11, - 318, - 48, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rs_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_peuplement_logement_l822_10"),0]], - _Rw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 325, - 12, - 325, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Rx_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch"), - 0]], - _RA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 331, - 11, - 331, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ry_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 331, - 11, - 331, - 39, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RB_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"), - 0]], - _RE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 332, - 11, - 332, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 332, - 11, - 332, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RF_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("seuil_l822_3_parts_usufruit"),0]], - _RI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 333, - 11, - 333, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 333, - 11, - 333, - 34, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RJ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("seuil_l822_5_patrimoine"),0]], - _RM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 330, - 11, - 330, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 330, - 11, - 330, - 40, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RN_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"), - 0]], - _RQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 326, - 11, - 326, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 326, - 11, - 326, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RR_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("nombre_personnes_logement"),0]], - _RY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 319, - 11, - 319, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _RZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable"), - 0]], - _R4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 316, - 11, - 316, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R5_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_non_ouverture_l822_9_decence_logement"), - 0]], - _R__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 315, - 11, - 315, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _R$_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_non_ouverture_l822_8"),0]], - _Sf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 311, - 12, - 311, - 51, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sg_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_logement_r\xc3\xa9sidence_principale"), - 0]], - _Sj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Sk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"), - 0]], - _Sh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 123, - 14, - 123, - 61, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _Sl_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("ouverture_droits_retraite"), - [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], - _Sm_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("ouverture_droits_retraite"), - [0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0]]], - _Sp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 329, - 11, - 329, - 37, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 329, - 11, - 329, - 37, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sq_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("patrimoine_total_demandeur"),0]], - _Sv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 310, - 11, - 310, - 32, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sw_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_nationalit\xc3\xa9"),0]], - _SK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Sx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 337, - 11, - 337, - 41, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SL_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("plafond_individuel_l815_9_s\xc3\xa9cu"),0]], - _SY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 313, - 11, - 313, - 44, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _SZ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_location_tiers"),0]], - _S2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S3_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.date_courante"),0]], - _S0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 380, - 14, - 380, - 50, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales.prestation_courante"), - 0]], - _S4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 381, - 14, - 381, - 56, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _S$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ta_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("prestations_familiales.r\xc3\xa9sidence"),0]], - _S9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 383, - 14, - 383, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tj_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _Tk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prestations_familiales"), - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0]]], - _Tt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 312, - 11, - 312, - 45, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tu_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_mode_occupation"),0]], - _TE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Tv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 314, - 12, - 314, - 38, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TF_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_logement_surface"),0]], - _TI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 336, - 11, - 336, - 29, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 336, - 11, - 336, - 29, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TJ_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]], - _TV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 334, - 11, - 334, - 36, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TW_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("patrimoine_pris_en_compte"),0]], - _T1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _TX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 317, - 11, - 317, - 58, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T2_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("condition_ouverture_l822_10_peuplement_logement"), - 0]], - _T5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 335, - 11, - 335, - 28, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 335, - 11, - 335, - 28, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T6_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]], - _Ub_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _T7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 320, - 11, - 320, - 31, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uc_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9_logement"),0]], - _Up_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("condition_2_r823_4"),0]], - _Uu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 342, - 12, - 342, - 23, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Uv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("\xc3\xa9ligibilit\xc3\xa9"),0]], - _UW_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("prise_en_compte_personne_\xc3\xa0_charge"), - 0]], - _U3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 323, - 11, - 323, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _UX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 323, - 11, - 323, - 46, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U4_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _U7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 344, - 12, - 344, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 344, - 12, - 344, - 61, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U8_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte"), - 0]], - _U$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 343, - 12, - 343, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _U9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 343, - 12, - 343, - 54, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Va_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("nombre_personnes_\xc3\xa0_charge_prises_en_compte"), - 0]], - _Vb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 200, - 13, - 200, - 47, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Vg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 200, - 13, - 200, - 47, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Vc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 199, - 13, - 199, - 48, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Vf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 199, - 13, - 199, - 48, - [0, - caml_string_of_jsbytes("Article L822-3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Vd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 378, - 13, - 378, - 42, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ve_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 378, - 13, - 378, - 42, - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ri_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1457, - 14, - 1457, - 33, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Re_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1459, - 14, - 1459, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Rf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 832, - 12, - 832, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Rd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 832, - 12, - 832, - 34, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Q$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6355, - 24, - 6355, - 46, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Q4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Q5_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Q6_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Q7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Q1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6395, - 42, - 6395, - 45, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Q2_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _Q3_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Q8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 6371, - 9, - 6398, - 10, - [0, - caml_string_of_jsbytes("Article D863-7"), - [0, - caml_string_of_jsbytes - ("Sous-section III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Section II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Chapitre III : Saint-Pierre-et-Miquelon"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Q9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _Q__= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _Ra_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 829, - 11, - 829, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Q0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1469, - 14, - 1469, - 36, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _QT_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _QU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _QV_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _QW_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _QK_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _QL_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _QM_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _QN_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _QB_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _QC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _QD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale"), - [0,caml_string_of_jsbytes("output"),0]]], - _QE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Qy_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1488, - 16, - 1491, - 39, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Qz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _QA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _QF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1473, - 9, - 1494, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _QG_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _QH_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("direct"),0]], - _QI_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _QJ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _QO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1526, - 10, - 1542, - 11, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _QP_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _QQ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("direct"),0]], - _QR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _QS_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _QX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1505, - 9, - 1515, - 10, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _QY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _QZ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("direct"),0]], - _Qu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 80, - 14, - 80, - 44, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Qo_=[0,0], - _Qp_=[1,0], - _Qq_=[1,0], - _Qr_=[1,0], - _Qs_=[0,0], - _Qt_=[1,0], - _Qk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1968, - 14, - 1968, - 31, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Qg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1446, - 14, - 1446, - 34, - [0, - caml_string_of_jsbytes("Article D823-9"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Qh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 826, - 11, - 826, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 826, - 11, - 826, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qi_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("cat\xc3\xa9gorie_calcul_apl"),0]], - _Ql_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 819, - 10, - 819, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 819, - 10, - 819, - 22, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qm_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_arrondi"),0]], - _Qv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 827, - 11, - 827, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 827, - 11, - 827, - 41, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qw_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("situation_familiale_calcul_apl"),0]], - _Rb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 829, - 11, - 829, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Qx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 829, - 11, - 829, - 33, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Rc_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("sous_calcul_traitement"),0]], - _Rg_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _Rj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 831, - 12, - 831, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Rh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 831, - 12, - 831, - 31, - [0, - caml_string_of_jsbytes("Tous secteurs"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Rk_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _P__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4505, - 14, - 4505, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _P6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _P7_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _P8_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _P9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _P$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 983, - 10, - 983, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 983, - 10, - 983, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _P2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4485, - 14, - 4485, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _PU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _PV_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _PW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _PX_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _PY_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _PZ_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _P0_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _P1_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _P3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 982, - 10, - 982, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 982, - 10, - 982, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4390, - 14, - 4390, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _PM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4471, - 14, - 4471, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _PE_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _PF_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _PG_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _PH_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _PI_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _PJ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _PK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _PL_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _PN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 981, - 10, - 981, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 981, - 10, - 981, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4423, - 14, - 4423, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Pw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4653, - 14, - 4653, - 47, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ps_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Pt_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Pu_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Pv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Px_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 958, - 11, - 958, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 958, - 11, - 958, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Po_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4412, - 14, - 4412, - 41, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Pk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4438, - 14, - 4438, - 33, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Pf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4588, - 5, - 4588, - 44, - [0, - caml_string_of_jsbytes("Article D842-9"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _O9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input1"),0]]], - _O__= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input0"),0]]], - _O$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("output"),0]]], - _Pa_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - 0]], - _Pb_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input1"),0]]], - _Pc_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Pd_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("output"),0]]], - _Pe_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - 0]], - _Pg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4569, - 14, - 4569, - 39, - [0, - caml_string_of_jsbytes("Article D842-9"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _O4_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input1"),0]]], - _O5_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("input0"),0]]], - _O6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - [0,caml_string_of_jsbytes("output"),0]]], - _O7_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - 0]], - _OZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4683, - 7, - 4683, - 26, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _O0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 953, - 11, - 953, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4664, - 14, - 4664, - 50, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _OQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5910, - 5, - 5913, - 28, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5908, - 9, - 5908, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5555, - 5, - 5561, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5908, - 9, - 5908, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5908, - 9, - 5908, - 75, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _OU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _OM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4409, - 14, - 4409, - 61, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _ON_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4409, - 14, - 4409, - 61, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _OO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.condition_2_du_832_25"), - 0]], - _OJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1006, - 14, - 1006, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1007, - 14, - 1007, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ox_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1004, - 14, - 1004, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ot_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1002, - 14, - 1002, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Op_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ol_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 998, - 14, - 998, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Od_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oc_=[3,0], - _N8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4442, - 14, - 4442, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _NW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1010, - 14, - 1010, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _NM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3408, - 5, - 3416, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _NI_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _NJ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _NL_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _NH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2872, - 5, - 2880, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ND_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _NE_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NF_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _NG_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _NC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1802, - 5, - 1810, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ny_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _Nz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _NA_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _NB_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 683, - 5, - 691, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Nt_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _Nu_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Nv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _Nw_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ns_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 189, - 5, - 197, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _No_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _Np_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Nq_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _Nr_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _NS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3987, - 14, - 3987, - 46, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Nj_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input1"),0]]], - _Nk_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Nl_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _Nm_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _NT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ni_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 951, - 10, - 951, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ne_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4744, - 5, - 4744, - 28, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Nf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 924, - 10, - 924, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4734, - 14, - 4734, - 41, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _M$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4641, - 15, - 4641, - 37, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Na_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _M__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 956, - 11, - 956, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _M3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2609, - 5, - 2609, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _MZ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input1"),0]]], - _M0_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _M1_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _M2_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _M4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1533, - 5, - 1533, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _MU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input1"),0]]], - _MV_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _MW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _MX_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _M5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4073, - 5, - 4073, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _MP_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input1"),0]]], - _MQ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _MR_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _MS_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _M6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _M7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3981, - 14, - 3981, - 46, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _MK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input1"),0]]], - _ML_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("input0"),0]]], - _MM_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - [0,caml_string_of_jsbytes("output"),0]]], - _MN_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _M8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 950, - 10, - 950, - 26, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4457, - 14, - 4457, - 36, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 980, - 10, - 980, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 980, - 10, - 980, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _MB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4705, - 6, - 4711, - 6, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4723, - 5, - 4724, - 59, - [0, - caml_string_of_jsbytes("Article D842-12"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _MA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4441, - 5, - 4449, - 16, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ms_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 341, - 6, - 348, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1953, - 6, - 1960, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ml_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 837, - 6, - 844, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3025, - 6, - 3032, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3561, - 6, - 3568, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Me_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4381, - 6, - 4388, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 260, - 6, - 267, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Md_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1873, - 6, - 1880, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ma_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L__= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 756, - 6, - 763, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Mb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2945, - 6, - 2952, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _L9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3481, - 6, - 3488, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _L7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4091, - 57, - 4091, - 68, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _L4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1553, - 5, - 1553, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _L2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2630, - 5, - 2630, - 16, - [0, - caml_string_of_jsbytes("Article 37"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _L0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _L5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4035, - 29, - 4035, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1515, - 29, - 1515, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2589, - 29, - 2589, - 56, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2955, - 5, - 2955, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3000, - 5, - 3000, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3045, - 5, - 3045, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3090, - 5, - 3090, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3135, - 5, - 3135, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3183, - 5, - 3183, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3231, - 5, - 3231, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3279, - 5, - 3279, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _LA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3326, - 5, - 3326, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ly_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3373, - 5, - 3373, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3420, - 5, - 3420, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3467, - 5, - 3467, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ls_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3514, - 5, - 3514, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ln_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3561, - 5, - 3561, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ll_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3608, - 5, - 3608, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3655, - 5, - 3655, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3702, - 5, - 3702, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Li_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3749, - 5, - 3749, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ld_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3796, - 5, - 3796, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Le_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Lb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3843, - 5, - 3843, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Lc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3890, - 5, - 3890, - 62, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _La_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 3937, - 5, - 3937, - 32, - [0, - caml_string_of_jsbytes("Article 33"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _K__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 949, - 10, - 949, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5924, - 5, - 5928, - 73, - [0, - caml_string_of_jsbytes("Article D862-7"), - [0, - caml_string_of_jsbytes("Section III : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _K2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5572, - 5, - 5579, - 73, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _K3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4676, - 6, - 4679, - 44, - [0, - caml_string_of_jsbytes("Article D842-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _K5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4047, - 14, - 4047, - 40, - [0, - caml_string_of_jsbytes("Article 35"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4058, - 14, - 4058, - 41, - [0, - caml_string_of_jsbytes("Article 36"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4113, - 14, - 4113, - 41, - [0, - caml_string_of_jsbytes("Article 38"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4141, - 14, - 4141, - 41, - [0, - caml_string_of_jsbytes("Article 39"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4121, - 14, - 4121, - 33, - [0, - caml_string_of_jsbytes("Article 38"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _KA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4133, - 14, - 4133, - 33, - [0, - caml_string_of_jsbytes("Article 39"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3329, - 5, - 3337, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2794, - 5, - 2802, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ks_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ko_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1723, - 5, - 1731, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 604, - 5, - 612, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ku_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Km_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 111, - 5, - 119, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ki_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1512, - 14, - 1512, - 47, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4032, - 14, - 4032, - 47, - [0, - caml_string_of_jsbytes("Article 34"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul des allocations de logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Kk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1009, - 14, - 1009, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4449, - 14, - 4449, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _JZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 330, - 14, - 330, - 36, - [0, - caml_string_of_jsbytes("Article premier"), - [0, - caml_string_of_jsbytes - ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), - 0]]], - _J0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 955, - 11, - 955, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 955, - 11, - 955, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _J1_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], - _J4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J5_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _J2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4447, - 14, - 4447, - 59, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4449, - 14, - 4449, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _J6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4449, - 14, - 4449, - 64, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _J__= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _J$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _Kc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1009, - 14, - 1009, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kd_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _Ka_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1009, - 14, - 1009, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ke_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _Kf_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _Kx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 966, - 11, - 966, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ky_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("multiplicateur_majoration_charges"),0]], - _KB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 964, - 11, - 964, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Kz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 964, - 11, - 964, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KC_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_d842_12"),0]], - _KF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 963, - 11, - 963, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 963, - 11, - 963, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KG_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_d842_11"),0]], - _KJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 962, - 11, - 962, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 962, - 11, - 962, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KK_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_12"),0]], - _KN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 961, - 11, - 961, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 961, - 11, - 961, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_11"),0]], - _KR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 960, - 11, - 960, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 960, - 11, - 960, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KS_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d842_6"),0]], - _KV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 952, - 11, - 952, - 37, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 952, - 11, - 952, - 37, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_6"),0]], - _K6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _KX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 965, - 11, - 965, - 30, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _K7_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("condition_d842_11_3"),0]], - _LQ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d842_6_base"), - 0]], - _Mw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _LR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 942, - 11, - 942, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Mx_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], - _MD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _My_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 954, - 11, - 954, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ME_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("seuil_minimal_ressources_m\xc3\xa9nage"),0]], - _MI_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _M9_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9"), - 0]], - _Nb_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Ng_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 924, - 10, - 924, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 924, - 10, - 924, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Nh_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("ressources_m\xc3\xa9nage_arrondies_seuil"), - 0]], - _NU_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom"), - 0]], - _NX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1010, - 14, - 1010, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _NY_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _NV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1010, - 14, - 1010, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _N1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N2_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _NZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4443, - 14, - 4443, - 75, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4442, - 14, - 4442, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N6_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _N3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4442, - 14, - 4442, - 69, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N__= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _N7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4445, - 14, - 4445, - 70, - [0, - caml_string_of_jsbytes("Article D842-6"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _N$_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Oa_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Oe_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Of_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.type_logement_foyer"), - 0]], - _Ob_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 992, - 14, - 992, - 59, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oj_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.date_conventionnement"), - 0]], - _Og_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 994, - 14, - 994, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Om_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 998, - 14, - 998, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _On_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Ok_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 998, - 14, - 998, - 67, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Or_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Oo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1000, - 14, - 1000, - 65, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ou_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1002, - 14, - 1002, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ov_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), - 0]], - _Os_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1002, - 14, - 1002, - 70, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1004, - 14, - 1004, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Oz_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], - _Ow_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1004, - 14, - 1004, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1007, - 14, - 1007, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OD_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], - _OA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1007, - 14, - 1007, - 53, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OH_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], - _OE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 996, - 14, - 996, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1006, - 14, - 1006, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OL_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), - 0]], - _OI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1006, - 14, - 1006, - 49, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OV_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _OW_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _O1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 953, - 11, - 953, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _OX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 953, - 11, - 953, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O2_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("seuil_minimal_d\xc3\xa9pense_nette_minimale"), - 0]], - _Ph_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _O3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 945, - 11, - 945, - 36, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pi_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d842_6"),0]], - _Pl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 943, - 12, - 943, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 943, - 12, - 943, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pm_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], - _Pp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 944, - 12, - 944, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 944, - 12, - 944, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pq_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], - _Py_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _PB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 12, - 941, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Pz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 941, - 12, - 941, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PC_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], - _PO_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _PR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 976, - 12, - 976, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 976, - 12, - 976, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _PS_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _P4_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Qa_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _Qb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1015, - 13, - 1015, - 48, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qe_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1015, - 13, - 1015, - 48, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1014, - 13, - 1014, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Qd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1014, - 13, - 1014, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4920, - 14, - 4920, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _JP_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _JQ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _JR_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _JS_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _JU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1062, - 10, - 1062, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1062, - 10, - 1062, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4899, - 14, - 4899, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _JD_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_redevance"), - [0,caml_string_of_jsbytes("input0"),0]]], - _JE_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _JF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_redevance"), - [0,caml_string_of_jsbytes("output"),0]]], - _JG_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _JH_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _JI_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _JJ_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _JK_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _JM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1061, - 10, - 1061, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1061, - 10, - 1061, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4885, - 14, - 4885, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Jv_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Jw_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _Jx_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Jy_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _JA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1060, - 10, - 1060, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ju_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1060, - 10, - 1060, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4867, - 14, - 4867, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Jj_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Jk_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Jl_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _Jm_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _Jn_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Jo_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _Jp_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Jq_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _Js_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1059, - 10, - 1059, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ji_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1059, - 10, - 1059, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Jf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4974, - 14, - 4974, - 47, - [0, - caml_string_of_jsbytes("Article D842-17"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _I9_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _I__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _I$_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Ja_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Jb_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Jc_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Jd_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"), - [0,caml_string_of_jsbytes("output"),0]]], - _Je_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _Jg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1036, - 11, - 1036, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1036, - 11, - 1036, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4793, - 14, - 4793, - 33, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _I1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4965, - 14, - 4965, - 36, - [0, - caml_string_of_jsbytes("Article D842-17"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _I2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1034, - 11, - 1034, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1034, - 11, - 1034, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4845, - 14, - 4845, - 27, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _IT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4853, - 14, - 4853, - 36, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _IU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1058, - 10, - 1058, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1058, - 10, - 1058, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4395, - 6, - 4402, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 280, - 6, - 287, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _II_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1893, - 6, - 1900, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 776, - 6, - 783, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2965, - 6, - 2972, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ID_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3501, - 6, - 3508, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4170, - 29, - 4170, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _IB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Iy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1589, - 29, - 1589, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Iz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Iw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2655, - 29, - 2655, - 56, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ix_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Is_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4814, - 14, - 4814, - 41, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Im_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4843, - 14, - 4843, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ii_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4832, - 14, - 4832, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ie_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ia_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1082, - 14, - 1082, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4213, - 6, - 4213, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4248, - 6, - 4249, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4266, - 6, - 4267, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4230, - 6, - 4231, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1611, - 6, - 1611, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _H0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1648, - 6, - 1649, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1667, - 6, - 1668, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1629, - 6, - 1630, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2680, - 6, - 2680, - 79, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2717, - 6, - 2718, - 38, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2736, - 6, - 2737, - 24, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2698, - 6, - 2699, - 46, - [0, - caml_string_of_jsbytes("Article 43"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4195, - 14, - 4195, - 42, - [0, - caml_string_of_jsbytes("Article 42"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _HD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4183, - 14, - 4183, - 41, - [0, - caml_string_of_jsbytes("Article 41"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4287, - 14, - 4287, - 51, - [0, - caml_string_of_jsbytes("Article 44"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3344, - 5, - 3352, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ho_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2809, - 5, - 2817, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1738, - 5, - 1746, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 619, - 5, - 627, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ht_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 126, - 5, - 134, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1586, - 14, - 1586, - 47, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4167, - 14, - 4167, - 47, - [0, - caml_string_of_jsbytes("Article 40"), - [0, - caml_string_of_jsbytes - ("Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Hj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ha_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5598, - 5, - 5604, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Hb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5596, - 9, - 5596, - 75, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _Hc_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _G9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4811, - 14, - 4811, - 61, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _G__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4811, - 14, - 4811, - 61, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _G$_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.condition_2_du_832_25"), - 0]], - _G6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1078, - 14, - 1078, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1069, - 14, - 1069, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1079, - 14, - 1079, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1077, - 14, - 1077, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1075, - 14, - 1075, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1073, - 14, - 1073, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1065, - 14, - 1065, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1081, - 14, - 1081, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Go_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4840, - 14, - 4840, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4841, - 14, - 4841, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4841, - 14, - 4841, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ge_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), - 0]], - _Gb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4841, - 14, - 4841, - 55, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gi_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Gf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4836, - 14, - 4836, - 59, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gm_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _Gj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4838, - 14, - 4838, - 64, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4840, - 14, - 4840, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gq_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], - _Gn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4840, - 14, - 4840, - 43, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Gr_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _Gs_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _Gv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1081, - 14, - 1081, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gw_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _Gt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1081, - 14, - 1081, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Gx_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _Gy_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _GB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1065, - 14, - 1065, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GC_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.type_logement_foyer"), - 0]], - _Gz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1065, - 14, - 1065, - 59, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GG_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.date_conventionnement"), - 0]], - _GD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1067, - 14, - 1067, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GK_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _GH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1071, - 14, - 1071, - 67, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1073, - 14, - 1073, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GO_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge"), - 0]], - _GL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1073, - 14, - 1073, - 65, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1075, - 14, - 1075, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GS_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_apl_logement_foyer.situation_familiale_calcul_apl"), - 0]], - _GP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1075, - 14, - 1075, - 70, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1077, - 14, - 1077, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GW_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.zone"),0]], - _GT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1077, - 14, - 1077, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _GZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1079, - 14, - 1079, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G0_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.date_courante"),0]], - _GX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1079, - 14, - 1079, - 53, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1069, - 14, - 1069, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G4_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_apl_logement_foyer.redevance"),0]], - _G1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1069, - 14, - 1069, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1078, - 14, - 1078, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _G8_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer.r\xc3\xa9sidence"), - 0]], - _G5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1078, - 14, - 1078, - 49, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hd_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _He_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_apl_logement_foyer"), - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0]]], - _Hw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1041, - 11, - 1041, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hx_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("multiplicateur_majoration_charges"),0]], - _HA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1040, - 11, - 1040, - 48, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Hy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1040, - 11, - 1040, - 48, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("montant_minimal_d\xc3\xa9pense_nette_d842_17"), - 0]], - _HE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1039, - 11, - 1039, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1039, - 11, - 1039, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HF_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d842_15"),0]], - _HI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1038, - 11, - 1038, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1038, - 11, - 1038, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HJ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d842_15"),0]], - _H9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _HK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1043, - 12, - 1043, - 29, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _H__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer"),0]], - _Ib_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1082, - 14, - 1082, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ic_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _H$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1082, - 14, - 1082, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _If_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ig_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Id_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4833, - 14, - 4833, - 75, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ij_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4832, - 14, - 4832, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ik_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _Ih_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4832, - 14, - 4832, - 69, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _In_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4843, - 14, - 4843, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Io_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _Il_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4843, - 14, - 4843, - 70, - [0, - caml_string_of_jsbytes("Article D842-15"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ip_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Iq_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _It_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1042, - 12, - 1042, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ir_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1042, - 12, - 1042, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Iu_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_prise_en_charge"),0]], - _IQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Iv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1044, - 12, - 1044, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IR_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges"),0]], - _IV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _IY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1045, - 12, - 1045, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1045, - 12, - 1045, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _IZ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("loyer_minimal"),0]], - _I3_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale"),0]], - _I6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1055, - 12, - 1055, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1055, - 12, - 1055, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _I7_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Jh_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes("abattement_d\xc3\xa9pense_nette_minimale"), - 0]], - _Jt_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_d\xc3\xa9pense_nette_minimale"), - 0]], - _JB_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_redevance"),0]], - _JN_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _JV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _JW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1086, - 13, - 1086, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _JX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1086, - 13, - 1086, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4281, - 24, - 4281, - 43, - [0, - caml_string_of_jsbytes("Article D842-4"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _F__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 874, - 12, - 874, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 913, - 14, - 913, - 33, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4289, - 24, - 4289, - 46, - [0, - caml_string_of_jsbytes("Article D842-4"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _F4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 876, - 12, - 876, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 914, - 14, - 914, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), - [0,caml_string_of_jsbytes("input0"),0]]], - _FZ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _F0_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"), - [0,caml_string_of_jsbytes("output"),0]]], - _F1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _F5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 876, - 12, - 876, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 876, - 12, - 876, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 910, - 14, - 910, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 908, - 14, - 908, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 906, - 14, - 906, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 904, - 14, - 904, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 902, - 14, - 902, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 898, - 5, - 899, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 893, - 14, - 893, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 14, - 891, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 889, - 14, - 889, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fe_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 887, - 14, - 887, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E6_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.loyer_principal_base"),0]], - _E3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 880, - 14, - 880, - 48, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _E__= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _E7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 882, - 14, - 882, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fc_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"), - 0]], - _E$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 884, - 14, - 884, - 78, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ff_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 887, - 14, - 887, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fg_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.date_courante"),0]], - _Fd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 887, - 14, - 887, - 46, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 889, - 14, - 889, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fk_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"), - 0]], - _Fh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 889, - 14, - 889, - 58, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 14, - 891, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fo_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.situation_familiale_calcul_apl"), - 0]], - _Fl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 891, - 14, - 891, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 893, - 14, - 893, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fs_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.zone"),0]], - _Fp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 893, - 14, - 893, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fw_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.logement_est_chambre"),0]], - _Ft_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 895, - 14, - 895, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Fz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 898, - 5, - 899, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FA_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"), - 0]], - _Fx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 898, - 5, - 899, - 63, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 902, - 14, - 902, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FE_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.type_aide"),0]], - _FB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 902, - 14, - 902, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 904, - 14, - 904, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FI_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.colocation"),0]], - _FF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 904, - 14, - 904, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 906, - 14, - 906, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FM_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _FJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 906, - 14, - 906, - 59, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 908, - 14, - 908, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FQ_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes - ("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"), - 0]], - _FN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 908, - 14, - 908, - 55, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 910, - 14, - 910, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FU_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("calcul_apl_locatif.r\xc3\xa9sidence"),0]], - _FR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 910, - 14, - 910, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _FV_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("calcul_apl_locatif"), - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0]]], - _FW_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0, - caml_string_of_jsbytes("calcul_apl_locatif"), - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0]]], - _F6_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale"),0]], - _F$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 874, - 12, - 874, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _F7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 874, - 12, - 874, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _Ga_= - [0, - caml_string_of_jsbytes("CalculAllocationLogementLocatif"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _ES_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("input"),0]]], - _ET_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _EU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 69, - 6, - 72, - 44, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EV_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0, - caml_string_of_jsbytes("direct"), - [0,caml_string_of_jsbytes("output"),0]]], - _EW_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("direct"),0]], - _EX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 67, - 5, - 72, - 59, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _ER_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 56, - 5, - 57, - 50, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _E0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _E1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 47, - 12, - 47, - 24, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 78, - 5, - 82, - 24, - [0, - caml_string_of_jsbytes("Article L512-3"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 49, - 12, - 49, - 31, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 62, - 18, - 62, - 41, - [0, - caml_string_of_jsbytes("Article R755-0-2"), - [0, - caml_string_of_jsbytes - ("Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes("Titre 5 : D\xc3\xa9partements d'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 31, - 14, - 31, - 30, - [0, - caml_string_of_jsbytes("Article R512-2"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _Et_=[5,0], - _Eu_=[4,0], - _Ev_=[3,0], - _Ew_=[2,0], - _Ex_=[1,0], - _Ey_=[0,0], - _Ez_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr"), - 127, - 5, - 132, - 30, - [0, - caml_string_of_jsbytes("Article L751-1"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin"), - [0, - caml_string_of_jsbytes - ("Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _EA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Es_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Em_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ei_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ed_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr"), - 21, - 14, - 21, - 26, - [0, - caml_string_of_jsbytes("Article R512-2"), - [0, - caml_string_of_jsbytes("Chapitre 2 : Champ d'application."), - [0, - caml_string_of_jsbytes - ("Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s"), - [0, - caml_string_of_jsbytes - ("Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _Ee_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ef_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ec_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 46, - 21, - 46, - 33, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Eg_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_l512_3_2"),0]], - _Ej_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ek_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.date_courante"),0]], - _Eh_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 57, - 14, - 57, - 32, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _En_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Eo_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic.r\xc3\xa9sidence"),0]], - _El_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 56, - 14, - 56, - 28, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Ep_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _Eq_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("smic"),[0,caml_string_of_jsbytes("Smic"),0]]], - _EB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _Er_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 51, - 12, - 51, - 35, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EC_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("r\xc3\xa9gime_outre_mer_l751_1"),0]], - _EH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _ED_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/prologue.catala_fr"), - 44, - 11, - 44, - 27, - [0,caml_string_of_jsbytes("Prologue : prestations familiales"),0]], - _EI_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("plafond_l512_3_2"),0]], - _EO_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("conditions_hors_\xc3\xa2ge"),0]], - _E2_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - [0,caml_string_of_jsbytes("droit_ouvert"),0]], - _D9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 409, - 14, - 409, - 32, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _D5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 462, - 14, - 462, - 32, - [0, - caml_string_of_jsbytes("Article R822-8"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _D0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 854, - 6, - 857, - 35, - [0, - caml_string_of_jsbytes("Article R822-20"), - [0, - caml_string_of_jsbytes - ("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _D1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 546, - 12, - 546, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 124, - 14, - 124, - 41, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 23, - 14, - 23, - 41, - [0, - caml_string_of_jsbytes("Article 4"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Dispositions applicables aux ressources"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _DL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 12, - 14, - 12, - 41, - [0, - caml_string_of_jsbytes("Article 3"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Dispositions applicables aux ressources"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _DH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 524, - 14, - 524, - 33, - [0, - caml_string_of_jsbytes("Article R822-10"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 129, - 14, - 129, - 62, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 535, - 11, - 535, - 59, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 535, - 11, - 535, - 59, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DF_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("ressources_personnes_vivant_habituellement_foyer"), - 0]], - _DI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 540, - 11, - 540, - 30, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 540, - 11, - 540, - 30, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DJ_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_10"),0]], - _DM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 539, - 11, - 539, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 539, - 11, - 539, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DN_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_7"),0]], - _DQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 537, - 11, - 537, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 537, - 11, - 537, - 38, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DR_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant_forfaitaire_r_822_8"),0]], - _DU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DV_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes - ("base_mensuelle_allocations_familiales.date_courante"), - 0]], - _DS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 418, - 14, - 418, - 65, - [0, - caml_string_of_jsbytes("Article R822-7"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Principes de neutralisation et d'abattement"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _DW_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _DX_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("base_mensuelle_allocations_familiales"), - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0]]], - _D2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 546, - 12, - 546, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _DY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 546, - 12, - 546, - 39, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D3_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("ressources_prises_en_compte"),0]], - _D6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 536, - 11, - 536, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 536, - 11, - 536, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D7_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_8"),0]], - _D__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 538, - 11, - 538, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 538, - 11, - 538, - 29, - [0, - caml_string_of_jsbytes - ("Prise en compte des ressources pour les aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _D$_= - [0, - caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("abattement_r_822_7"),0]], - _Ea_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 142, - 13, - 143, - 74, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Eb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 142, - 13, - 143, - 74, - [0, - caml_string_of_jsbytes("Article R822-2"), - [0, - caml_string_of_jsbytes - ("Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources"), - [0, - caml_string_of_jsbytes - ("Section 2 : Conditions relatives aux ressources"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _Dx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3175, - 14, - 3175, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Dt_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Du_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Dv_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _Dw_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Dy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 795, - 10, - 795, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ds_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 795, - 10, - 795, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Dp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3082, - 14, - 3082, - 33, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Dl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3155, - 14, - 3155, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Dd_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("input0"),0]]], - _De_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _Df_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("output"),0]]], - _Dg_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _Dh_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Di_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _Dj_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _Dk_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _Dm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 794, - 10, - 794, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Dc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 794, - 10, - 794, - 40, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _C$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3210, - 14, - 3210, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _C7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3102, - 14, - 3102, - 33, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _C3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3141, - 14, - 3141, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _CV_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _CW_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _CX_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _CY_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _CZ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("input0"),0]]], - _C0_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _C1_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("output"),0]]], - _C2_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _C4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 793, - 10, - 793, - 20, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 793, - 10, - 793, - 20, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3207, - 14, - 3207, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _CM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3423, - 5, - 3435, - 77, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _CN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 756, - 12, - 756, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3478, - 5, - 3478, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _CL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 756, - 12, - 756, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2474, - 14, - 2474, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _CE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1394, - 14, - 1394, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _CF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2419, - 14, - 2419, - 42, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _CG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Cx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3550, - 14, - 3550, - 55, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ct_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("input0"),0]]], - _Cu_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _Cv_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"), - [0,caml_string_of_jsbytes("output"),0]]], - _Cw_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _Cy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 769, - 11, - 769, - 52, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Cs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 769, - 11, - 769, - 52, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Cp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3191, - 14, - 3191, - 49, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3486, - 14, - 3486, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3483, - 14, - 3483, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _B9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 799, - 14, - 799, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _B4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3363, - 5, - 3363, - 44, - [0, - caml_string_of_jsbytes("Article D832-14"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BW_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _BX_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _BY_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _BZ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _B0_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _B1_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _B2_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _B3_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _B5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 758, - 10, - 758, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3343, - 14, - 3343, - 42, - [0, - caml_string_of_jsbytes("Article D832-14"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BR_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("input0"),0]]], - _BS_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _BT_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - [0,caml_string_of_jsbytes("output"),0]]], - _BU_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _BM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3528, - 5, - 3528, - 40, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 767, - 11, - 767, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3539, - 14, - 3539, - 44, - [0, - caml_string_of_jsbytes("Article D832-17"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 767, - 11, - 767, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 767, - 11, - 767, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3127, - 14, - 3127, - 36, - [0, - caml_string_of_jsbytes("Article D832-10"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 792, - 10, - 792, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 792, - 10, - 792, - 32, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3592, - 5, - 3592, - 28, - [0, - caml_string_of_jsbytes("Article D832-18"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _BD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 771, - 11, - 771, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3584, - 14, - 3584, - 44, - [0, - caml_string_of_jsbytes("Article D832-18"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Bx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3276, - 14, - 3276, - 36, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Br_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 827, - 5, - 842, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1083, - 5, - 1087, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1116, - 5, - 1120, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1149, - 5, - 1153, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1182, - 5, - 1186, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1215, - 5, - 1219, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Be_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1248, - 5, - 1252, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1281, - 5, - 1285, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ba_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1314, - 5, - 1318, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Bb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1347, - 5, - 1351, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1380, - 5, - 1384, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1413, - 5, - 1417, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1446, - 5, - 1450, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1479, - 5, - 1483, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _A0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1512, - 5, - 1516, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _A1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1545, - 5, - 1549, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1578, - 5, - 1582, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1611, - 5, - 1615, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1644, - 5, - 1648, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1677, - 5, - 1681, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1710, - 5, - 1714, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1743, - 5, - 1747, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1776, - 5, - 1780, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1809, - 5, - 1813, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1842, - 5, - 1846, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1875, - 5, - 1879, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1908, - 5, - 1912, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _AA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1941, - 5, - 1945, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _AB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ay_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 1974, - 5, - 1978, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Az_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Aw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2007, - 5, - 2011, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ax_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Au_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2040, - 5, - 2044, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Av_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _As_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2073, - 5, - 2077, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _At_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Aq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2106, - 5, - 2110, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ar_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ao_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2139, - 5, - 2143, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ap_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Am_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2172, - 5, - 2176, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _An_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ak_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2205, - 5, - 2209, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Al_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ai_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2238, - 5, - 2242, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Aj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ag_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2271, - 5, - 2274, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ah_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ae_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2303, - 5, - 2306, - 36, - [0, - caml_string_of_jsbytes("Article 18"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Af_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ab_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 635, - 5, - 638, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Ac_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 680, - 5, - 683, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _Aa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 726, - 5, - 728, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _z__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 770, - 5, - 772, - 33, - [0, - caml_string_of_jsbytes("Article 17"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _z8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Ad_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 55, - 760, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 760, - 11, - 760, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2438, - 7, - 2438, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _z1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1414, - 7, - 1414, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2494, - 7, - 2494, - 18, - [0, - caml_string_of_jsbytes("Article 24"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2355, - 29, - 2355, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1380, - 29, - 1380, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2460, - 29, - 2460, - 64, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2367, - 14, - 2367, - 41, - [0, - caml_string_of_jsbytes("Article 20"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2379, - 14, - 2379, - 42, - [0, - caml_string_of_jsbytes("Article 21"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2466, - 14, - 2466, - 50, - [0, - caml_string_of_jsbytes("Article 25"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2389, - 14, - 2389, - 48, - [0, - caml_string_of_jsbytes("Article 22"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2485, - 14, - 2485, - 48, - [0, - caml_string_of_jsbytes("Article 26"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2405, - 14, - 2405, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2406, - 14, - 2406, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2407, - 14, - 2407, - 47, - [0, - caml_string_of_jsbytes("Article 23"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _zd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 798, - 14, - 798, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3280, - 14, - 3280, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _y5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _y1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 327, - 14, - 327, - 36, - [0, - caml_string_of_jsbytes("Article premier"), - [0, - caml_string_of_jsbytes - ("R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro"), - 0]]], - _y2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 781, - 11, - 781, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 781, - 11, - 781, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _y3_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("taux_francs_vers_euros"),0]], - _y6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _y7_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _y4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3278, - 14, - 3278, - 59, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _y__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3280, - 14, - 3280, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _y$_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _y8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3280, - 14, - 3280, - 64, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _za_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _zb_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0]]], - _ze_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 798, - 14, - 798, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zf_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _zc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 798, - 14, - 798, - 50, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zg_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _zh_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _zk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 780, - 11, - 780, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 780, - 11, - 780, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zl_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("taux_tranche_sup\xc3\xa9rieure_d832_15_1"), - 0]], - _zo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 779, - 11, - 779, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 779, - 11, - 779, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zp_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("taux_tranche_inf\xc3\xa9rieure_d832_15_1"), - 0]], - _zs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 778, - 11, - 778, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 778, - 11, - 778, - 44, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zt_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_limite_tranches_d832_15_1"),0]], - _zw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 777, - 11, - 777, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 777, - 11, - 777, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zx_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_18"),0]], - _zA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 776, - 11, - 776, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 776, - 11, - 776, - 45, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zB_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_11"),0]], - _zE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 775, - 11, - 775, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 775, - 11, - 775, - 47, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zF_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_17_3"),0]], - _zI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 774, - 11, - 774, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 774, - 11, - 774, - 39, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zJ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d832_10"),0]], - _zM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 773, - 11, - 773, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 773, - 11, - 773, - 38, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zN_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_10"),0]], - _z3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _zO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 772, - 11, - 772, - 46, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _z4_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d832_10"),0]], - _Bv_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_plafond_mensualit\xc3\xa9_d832_10_3"), - 0]], - _By_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 762, - 11, - 762, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 762, - 11, - 762, - 33, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Bz_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], - _BE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 771, - 11, - 771, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 771, - 11, - 771, - 41, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BF_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("ressources_m\xc3\xa9nage_avec_d832_18"),0]], - _BJ_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _BP_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_10"),0]], - _B6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 758, - 10, - 758, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _BQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 758, - 10, - 758, - 14, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _B7_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("plafond_mensualit\xc3\xa9_d832_10_3_base"), - 0]], - _B__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 799, - 14, - 799, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _B$_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _B8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 799, - 14, - 799, - 61, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Cc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cd_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _Ca_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3484, - 14, - 3484, - 75, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3483, - 14, - 3483, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ch_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _Ce_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3483, - 14, - 3483, - 69, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Ck_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3486, - 14, - 3486, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cl_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _Ci_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3486, - 14, - 3486, - 70, - [0, - caml_string_of_jsbytes("Article D832-15"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _Cm_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Cn_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _Cq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 764, - 10, - 764, - 17, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Co_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 764, - 10, - 764, - 17, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Cr_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_formule"), - 0]], - _Cz_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_10"), - 0]], - _CH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 759, - 10, - 759, - 25, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CI_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"), - 0]], - _CO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 756, - 12, - 756, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 756, - 12, - 756, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CP_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_minimale"),0]], - _CS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 10, - 765, - 23, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 765, - 10, - 765, - 23, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _CT_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("coefficient_prise_en_charge_d832_10_coeff_arrondi"), - 0]], - _C5_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _C8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 755, - 12, - 755, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _C6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 755, - 12, - 755, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _C9_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("mensualit\xc3\xa9_\xc3\xa9ligible"),0]], - _Da_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 766, - 10, - 766, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _C__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 766, - 10, - 766, - 15, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Db_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_10_seuil"), - 0]], - _Dn_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _Dq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 789, - 12, - 789, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Do_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 789, - 12, - 789, - 31, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _Dr_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _Dz_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _DA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 803, - 13, - 803, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _DB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 803, - 13, - 803, - 42, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3829, - 14, - 3829, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _yS_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _yT_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _yU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _yW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 717, - 10, - 717, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 717, - 10, - 717, - 25, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3733, - 14, - 3733, - 33, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3808, - 14, - 3808, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yB_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("input0"),0]]], - _yC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _yD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_abattement"), - [0,caml_string_of_jsbytes("output"),0]]], - _yE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _yF_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _yG_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _yH_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _yI_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _yK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 716, - 10, - 716, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 716, - 10, - 716, - 40, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3980, - 5, - 3980, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 709, - 10, - 709, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3886, - 14, - 3886, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3794, - 14, - 3794, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yj_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _yk_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _yl_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _ym_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _yn_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("input0"),0]]], - _yo_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _yp_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("output"),0]]], - _yq_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _ys_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 715, - 10, - 715, - 20, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 715, - 10, - 715, - 20, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ye_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3974, - 5, - 3974, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _yf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 708, - 10, - 708, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yd_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3883, - 14, - 3883, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _x$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3766, - 14, - 3766, - 40, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _x7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4149, - 14, - 4149, - 55, - [0, - caml_string_of_jsbytes("Article D832-27"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _x3_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("input0"),0]]], - _x4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _x5_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"), - [0,caml_string_of_jsbytes("output"),0]]], - _x6_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _x8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 691, - 11, - 691, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 691, - 11, - 691, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3957, - 5, - 3957, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 707, - 10, - 707, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3862, - 14, - 3862, - 49, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3772, - 14, - 3772, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 721, - 14, - 721, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4145, - 14, - 4145, - 44, - [0, - caml_string_of_jsbytes("Article D832-27"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 693, - 11, - 693, - 41, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 693, - 11, - 693, - 41, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3944, - 14, - 3944, - 36, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 688, - 21, - 688, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xs_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3754, - 14, - 3754, - 40, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xo_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3780, - 14, - 3780, - 36, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 714, - 10, - 714, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 714, - 10, - 714, - 32, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2607, - 14, - 2607, - 48, - [0, - caml_string_of_jsbytes("Article 30"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xg_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2754, - 14, - 2754, - 41, - [0, - caml_string_of_jsbytes("Article 32"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _xa_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5545, - 5, - 5545, - 45, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _xb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5543, - 5, - 5543, - 65, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _xc_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _w9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3943, - 14, - 3943, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2596, - 14, - 2596, - 35, - [0, - caml_string_of_jsbytes("Article 30"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _wO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2514, - 14, - 2514, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _wP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 12, - 690, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1449, - 14, - 1449, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _wN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 12, - 690, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2529, - 14, - 2529, - 48, - [0, - caml_string_of_jsbytes("Article 27"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _wL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 12, - 690, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2569, - 14, - 2569, - 41, - [0, - caml_string_of_jsbytes("Article 28"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _wC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2581, - 14, - 2581, - 42, - [0, - caml_string_of_jsbytes("Article 29"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ww_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 720, - 14, - 720, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3847, - 14, - 3847, - 35, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ws_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 683, - 12, - 683, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 684, - 12, - 684, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wp_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _wt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 683, - 12, - 683, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 683, - 12, - 683, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("condition_2_du_832_25"),0]], - _wx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 720, - 14, - 720, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wy_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _wv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 720, - 14, - 720, - 50, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _wA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _wD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 697, - 11, - 697, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 697, - 11, - 697, - 39, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d823_24"),0]], - _wH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 695, - 11, - 695, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 695, - 11, - 695, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wI_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_24"),0]], - _wQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 12, - 690, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 690, - 12, - 690, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - 0]], - _wU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 687, - 12, - 687, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 687, - 12, - 687, - 33, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wV_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_r_d832_25"),0]], - _wY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wZ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts.condition_2_du_832_25"), - 0]], - _wW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3941, - 14, - 3941, - 55, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w3_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge"), - 0]], - _w0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3937, - 14, - 3937, - 59, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w7_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_nombre_parts.situation_familiale_calcul_apl"), - 0]], - _w4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3939, - 14, - 3939, - 64, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3943, - 14, - 3943, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _w$_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("calcul_nombre_parts.r\xc3\xa9sidence"),0]], - _w8_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3943, - 14, - 3943, - 43, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xd_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _xe_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_nombre_parts"), - [0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0]]], - _xh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 696, - 11, - 696, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 696, - 11, - 696, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xi_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_27"),0]], - _xl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 686, - 12, - 686, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 686, - 12, - 686, - 46, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xm_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("coefficient_multiplicateur_d832_25"),0]], - _xq_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _xt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 689, - 12, - 689, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 689, - 12, - 689, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"), - 0]], - _xy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 688, - 21, - 688, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 688, - 21, - 688, - 43, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], - _xD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_nette_minimale_d832_27"),0]], - _xG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 721, - 14, - 721, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xH_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.date_courante"), - 0]], - _xE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 721, - 14, - 721, - 61, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xL_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies"), - 0]], - _xI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3770, - 14, - 3770, - 75, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xP_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25"), - 0]], - _xM_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3768, - 14, - 3768, - 69, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3772, - 14, - 3772, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xT_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25"), - 0]], - _xQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3772, - 14, - 3772, - 70, - [0, - caml_string_of_jsbytes("Article D832-24"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _xU_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _xV_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("calcul_\xc3\xa9quivalence_loyer_minimale"), - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0]]], - _x0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 707, - 10, - 707, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _xW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 707, - 10, - 707, - 17, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_formule"), - 0]], - _x9_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("abattement_d\xc3\xa9pense_nette_minimale_d832_27"), - 0]], - _ya_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 698, - 12, - 698, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _x__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 698, - 12, - 698, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yb_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("\xc3\xa9quivalence_loyer_minimale"),0]], - _yg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 708, - 10, - 708, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 708, - 10, - 708, - 23, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yh_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("coefficient_prise_en_charge_d832_25_coeff_arrondi"), - 0]], - _yt_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_abattement"),0]], - _yy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 709, - 10, - 709, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 709, - 10, - 709, - 15, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes("coefficient_prise_en_charge_d832_25_seuil"), - 0]], - _yL_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _yO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 711, - 12, - 711, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 711, - 12, - 711, - 31, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yP_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _yX_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _yY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 725, - 13, - 725, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _yZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 725, - 13, - 725, - 42, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1770, - 14, - 1770, - 33, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1913, - 14, - 1913, - 39, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _v2_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1896, - 14, - 1896, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _vZ_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _v0_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _v1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _v3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 626, - 10, - 626, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 626, - 10, - 626, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1947, - 14, - 1947, - 42, - [0, - caml_string_of_jsbytes("Article D823-17"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 844, - 14, - 844, - 36, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _vM_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("input0"),0]]], - _vN_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _vO_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - [0,caml_string_of_jsbytes("output"),0]]], - _vP_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _vR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 625, - 10, - 625, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 625, - 10, - 625, - 36, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2312, - 14, - 2312, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 10, - 594, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1232, - 14, - 1232, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 10, - 594, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 423, - 14, - 423, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 10, - 594, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vz_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1864, - 14, - 1864, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _vr_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("input0"),0]]], - _vs_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _vt_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - [0,caml_string_of_jsbytes("output"),0]]], - _vu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _vv_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("input0"),0]]], - _vw_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _vx_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0, - caml_string_of_jsbytes("montant"), - [0,caml_string_of_jsbytes("output"),0]]], - _vy_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _vA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 624, - 10, - 624, - 40, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 624, - 10, - 624, - 40, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2305, - 14, - 2305, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1225, - 14, - 1225, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vi_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 416, - 14, - 416, - 33, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _vn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ve_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1847, - 14, - 1847, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _va_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), - [0,caml_string_of_jsbytes("input0"),0]]], - _vb_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _vc_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"), - [0,caml_string_of_jsbytes("output"),0]]], - _vd_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _vf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 623, - 10, - 623, - 32, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 623, - 10, - 623, - 32, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2281, - 14, - 2281, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _u6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1198, - 14, - 1198, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _u7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u3_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 390, - 14, - 390, - 28, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _u8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 314, - 14, - 314, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 611, - 12, - 611, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1124, - 14, - 1124, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 611, - 12, - 611, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2206, - 14, - 2206, - 36, - [0, - caml_string_of_jsbytes("Article 13"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 611, - 12, - 611, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1837, - 5, - 1837, - 50, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 622, - 10, - 622, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1823, - 14, - 1823, - 36, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 622, - 10, - 622, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 622, - 10, - 622, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1788, - 14, - 1788, - 28, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _uG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 263, - 14, - 263, - 42, - [0, - caml_string_of_jsbytes("Article 10"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 269, - 14, - 269, - 41, - [0, - caml_string_of_jsbytes("Article 10"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 546, - 5, - 547, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ux_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uu_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 555, - 5, - 556, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _us_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 564, - 5, - 564, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ut_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1301, - 5, - 1302, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ur_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1310, - 5, - 1311, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _up_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _um_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1323, - 5, - 1323, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _un_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2379, - 5, - 2380, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ul_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ui_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2388, - 5, - 2389, - 34, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ug_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2401, - 5, - 2401, - 35, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _uh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 198, - 5, - 198, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ud_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ua_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1069, - 5, - 1069, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ub_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t__= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2151, - 5, - 2151, - 61, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ue_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t7_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 191, - 14, - 191, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1062, - 14, - 1062, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2144, - 14, - 2144, - 37, - [0, - caml_string_of_jsbytes("Article 8"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 106, - 5, - 107, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _t1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 116, - 5, - 117, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tW_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 130, - 5, - 130, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 976, - 5, - 977, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 986, - 5, - 987, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1000, - 5, - 1000, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2059, - 5, - 2060, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2069, - 5, - 2070, - 34, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2083, - 5, - 2083, - 35, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _t2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 445, - 14, - 445, - 29, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1255, - 14, - 1255, - 29, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2335, - 14, - 2335, - 29, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4336, - 5, - 4344, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tt_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4583, - 5, - 4585, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 211, - 5, - 219, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ts_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 459, - 5, - 461, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 706, - 5, - 714, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _to_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3184, - 5, - 3193, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 01 janvier 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _th_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3431, - 5, - 3439, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ti_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2894, - 5, - 2902, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1824, - 5, - 1832, - 34, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _td_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3693, - 5, - 3702, - 28, - [0, - caml_string_of_jsbytes("Article 47"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _te_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ta_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 486, - 14, - 486, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _tb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s__= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 39, - 14, - 39, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _s$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 533, - 14, - 533, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _s9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3246, - 14, - 3246, - 44, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _s7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4422, - 5, - 4430, - 15, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 314, - 6, - 321, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1926, - 6, - 1933, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 810, - 6, - 817, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2998, - 6, - 3005, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3534, - 6, - 3541, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 588, - 14, - 588, - 49, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1347, - 14, - 1347, - 49, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2426, - 14, - 2426, - 49, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4366, - 6, - 4373, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 239, - 6, - 246, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1852, - 6, - 1859, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 735, - 6, - 742, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2924, - 6, - 2931, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _su_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3460, - 6, - 3467, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sr_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 239, - 14, - 239, - 49, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ss_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1110, - 14, - 1110, - 49, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2192, - 14, - 2192, - 49, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _so_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _st_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3300, - 5, - 3308, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _se_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sc_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2765, - 5, - 2773, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1695, - 5, - 1703, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 575, - 5, - 583, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _sh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 82, - 5, - 90, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _si_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2397, - 14, - 2397, - 63, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2078, - 14, - 2078, - 63, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1319, - 14, - 1319, - 63, - [0, - caml_string_of_jsbytes("Article 16"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 995, - 14, - 995, - 63, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 125, - 14, - 125, - 63, - [0, - caml_string_of_jsbytes("Article 7"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _r9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _r__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3365, - 5, - 3373, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2830, - 5, - 2838, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1759, - 5, - 1767, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 640, - 5, - 648, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 147, - 5, - 155, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2332, - 14, - 2332, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1252, - 14, - 1252, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 442, - 14, - 442, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3387, - 5, - 3395, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ru_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2851, - 5, - 2859, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1780, - 5, - 1788, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ry_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rs_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 662, - 5, - 670, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 168, - 5, - 176, - 35, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3242, - 14, - 3242, - 42, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 529, - 14, - 529, - 42, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rn_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 35, - 14, - 35, - 42, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ro_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ri_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 482, - 14, - 482, - 42, - [0, - caml_string_of_jsbytes("Article 15"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rp_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 4485, - 6, - 4492, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Chapitre IX : Calcul des allocations de logement en outre-mer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3605, - 6, - 3612, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 3068, - 6, - 3075, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1996, - 6, - 2003, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 881, - 6, - 888, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _ra_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q4_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 385, - 6, - 392, - 28, - [0, - caml_string_of_jsbytes("Article 46"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _rb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _re_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2251, - 29, - 2251, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1168, - 29, - 1168, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q1_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 360, - 29, - 360, - 55, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _q2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _q3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4219, - 14, - 4219, - 29, - [0, - caml_string_of_jsbytes("Article D842-2"), - [0, - caml_string_of_jsbytes("Section 1 : Secteur locatif ordinaire"), - [0, - caml_string_of_jsbytes - ("Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement"), - [0, - caml_string_of_jsbytes("Titre IV : Allocations de Logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _qP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 298, - 14, - 298, - 42, - [0, - caml_string_of_jsbytes("Article 12"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 2188, - 14, - 2188, - 55, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 11, - 605, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/archives.catala_fr"), - 1106, - 14, - 1106, - 55, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A"), - [0, - caml_string_of_jsbytes - ("Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 11, - 605, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 235, - 14, - 235, - 55, - [0, - caml_string_of_jsbytes("Article 9"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 11, - 605, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 285, - 14, - 285, - 41, - [0, - caml_string_of_jsbytes("Article 11"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Calcul des aides personnelles au logement en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _qw_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 629, - 14, - 629, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qs_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1887, - 14, - 1887, - 29, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _qt_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 597, - 11, - 597, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 597, - 11, - 597, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qu_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("fraction_l832_3"),0]], - _qx_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 629, - 14, - 629, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qy_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("contributions_sociales.date_courante"),0]], - _qv_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 629, - 14, - 629, - 50, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _qA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("contributions_sociales"), - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement"), - 0]]], - _qD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 600, - 11, - 600, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 600, - 11, - 600, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d823_16"),0]], - _qM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 11, - 605, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 605, - 11, - 605, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qN_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("multiplicateur_majoration_charges_d823_16"), - 0]], - _qQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 601, - 11, - 601, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qR_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_minimal_aide_d823_16"),0]], - _qU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 574, - 10, - 574, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 574, - 10, - 574, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qV_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"), - 0]], - _rf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 612, - 12, - 612, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rg_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_composition_familiale"),0]], - _rC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 607, - 11, - 607, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rD_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("multiplicateur_majoration_r0"),0]], - _rX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 606, - 11, - 606, - 52, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rY_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("multiplicateur_majoration_loyer_r\xc3\xa9f\xc3\xa9rence"), - 0]], - _sk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _rZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 604, - 11, - 604, - 60, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sl_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("multiplicateur_majoration_plafond_loyer_d823_16_2"), - 0]], - _s3_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _sm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 609, - 12, - 609, - 47, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("montant_forfaitaire_charges_d823_16"),0]], - _ty_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _s5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 602, - 11, - 602, - 41, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("abattement_forfaitaire_d823_17"),0]], - _tH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 596, - 11, - 596, - 26, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tI_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("loyer_r\xc3\xa9f\xc3\xa9rence"),0]], - _uz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _tJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 610, - 12, - 610, - 35, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uA_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("plafond_loyer_d823_16_2"),0]], - _uD_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 599, - 11, - 599, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uB_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 599, - 11, - 599, - 38, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uE_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("plafond_suppression_d823_16"),0]], - _uH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 598, - 11, - 598, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uF_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 598, - 11, - 598, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uI_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"), - 0]], - _uL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 591, - 11, - 591, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 591, - 11, - 591, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uM_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("loyer_\xc3\xa9ligible"),0]], - _uS_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_diminu\xc3\xa9"),0]], - _u0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 611, - 12, - 611, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _uT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 611, - 12, - 611, - 34, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u1_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("participation_minimale"),0]], - _u9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 595, - 11, - 595, - 25, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _u__= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("rapport_loyers"),0]], - _vg_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_minoration_forfaitaire"), - 0]], - _vo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 593, - 10, - 593, - 17, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vp_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_formule"),0]], - _vB_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_contributions_sociales_arrondi"), - 0]], - _vJ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 10, - 594, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 594, - 10, - 594, - 22, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vK_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_loyer_\xc3\xa9ligible_taux_arrondi"),0]], - _vS_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0, - caml_string_of_jsbytes - ("traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9"), - 0]], - _vV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 603, - 11, - 603, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 603, - 11, - 603, - 39, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _vW_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("taux_prise_compte_ressources"),0]], - _v4_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("traitement_aide_finale_montant_minimal"),0]], - _v7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 613, - 12, - 613, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v5_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 613, - 12, - 613, - 37, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v8_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("participation_personnelle"),0]], - _v$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 618, - 12, - 618, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _v9_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 618, - 12, - 618, - 31, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wa_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - [0,caml_string_of_jsbytes("aide_finale_formule"),0]], - _wb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1840, - 13, - 1840, - 74, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 1840, - 13, - 1840, - 74, - [0, - caml_string_of_jsbytes("Article D823-16"), - [0, - caml_string_of_jsbytes - ("Sous-section 2 : Calcul de l'aide en secteur locatif"), - [0, - caml_string_of_jsbytes - ("Section 1 : Calcul, liquidation et versement des aides"), - [0, - caml_string_of_jsbytes - ("Chapitre III : Modalit\xc3\xa9s de liquidation et de versement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _wc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 854, - 13, - 854, - 61, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _wj_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_legislatif.catala_fr"), - 854, - 13, - 854, - 61, - [0, - caml_string_of_jsbytes("Article L832-3"), - [0, - caml_string_of_jsbytes("Chapitre Ier : Champ d'application"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _wd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 640, - 13, - 640, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 640, - 13, - 640, - 53, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _we_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 633, - 13, - 633, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 633, - 13, - 633, - 43, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wf_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 632, - 13, - 632, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _wg_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 632, - 13, - 632, - 42, - [0, - caml_string_of_jsbytes("Secteur locatif"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _qd_=[7,0], - _qe_=[5,0], - _qf_=[4,0], - _qg_=[3,0], - _qh_=[2,0], - _qi_=[1,0], - _qj_=[0,0], - _qk_=[6,0], - _ql_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 34, - 5, - 43, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _qm_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qa_=[8,0], - _qb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 52, - 5, - 54, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _qc_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _p2_=[7,0], - _p3_=[5,0], - _p4_=[4,0], - _p5_=[3,0], - _p6_=[2,0], - _p7_=[1,0], - _p8_=[0,0], - _p9_=[6,0], - _p__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 73, - 5, - 82, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _p$_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pZ_=[8,0], - _p0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 91, - 5, - 93, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _p1_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pP_=[7,0], - _pQ_=[5,0], - _pR_=[4,0], - _pS_=[3,0], - _pT_=[2,0], - _pU_=[1,0], - _pV_=[0,0], - _pW_=[6,0], - _pX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 112, - 5, - 121, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pY_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pM_=[8,0], - _pN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 130, - 5, - 132, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pC_=[7,0], - _pD_=[5,0], - _pE_=[4,0], - _pF_=[3,0], - _pG_=[2,0], - _pH_=[1,0], - _pI_=[0,0], - _pJ_=[6,0], - _pK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 151, - 5, - 160, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pz_=[8,0], - _pA_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 170, - 5, - 172, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pB_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pp_=[7,0], - _pq_=[5,0], - _pr_=[4,0], - _ps_=[3,0], - _pt_=[2,0], - _pu_=[1,0], - _pv_=[0,0], - _pw_=[6,0], - _px_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 191, - 5, - 200, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _py_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pm_=[8,0], - _pn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 209, - 5, - 211, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _po_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _pc_=[7,0], - _pd_=[5,0], - _pe_=[4,0], - _pf_=[3,0], - _pg_=[2,0], - _ph_=[1,0], - _pi_=[0,0], - _pj_=[6,0], - _pk_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 230, - 5, - 239, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pl_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _o$_=[8,0], - _pa_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 248, - 5, - 250, - 6, - [0, - caml_string_of_jsbytes("Article 2"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _pb_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _o1_=[7,0], - _o2_=[5,0], - _o3_=[4,0], - _o4_=[3,0], - _o5_=[2,0], - _o6_=[1,0], - _o7_=[0,0], - _o8_=[6,0], - _o9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 270, - 5, - 279, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _o__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oY_=[8,0], - _oZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 288, - 5, - 290, - 6, - [0, - caml_string_of_jsbytes("Article 1"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]]], - _o0_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qn_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 11, - 12, - 11, - 24, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qo_= - [0, - caml_string_of_jsbytes("Smic"), - [0,caml_string_of_jsbytes("brut_horaire"),0]], - _qp_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 16, - 13, - 16, - 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _qq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"), - 16, - 13, - 16, - 42, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oU_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 36, - 14, - 36, - 27, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 33, - 12, - 33, - 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 33, - 12, - 33, - 25, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oW_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - [0,caml_string_of_jsbytes("est_sup\xc3\xa9rieur"),0]], - _oQ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 25, - 14, - 25, - 35, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 22, - 12, - 22, - 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr"), - 22, - 12, - 22, - 33, - [0, - caml_string_of_jsbytes("Prologue"), - [0, - caml_string_of_jsbytes("Montant du salaire minimum de croissance"), - 0]]], - _oS_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - [0,caml_string_of_jsbytes("est_inf\xc3\xa9rieur_ou_\xc3\xa9gal"),0]], - _oJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 32, - 5, - 33, - 33, - [0, - caml_string_of_jsbytes - ("Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oK_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 52, - 5, - 53, - 33, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oI_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oF_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 68, - 5, - 69, - 33, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oG_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 86, - 5, - 86, - 34, - [0, - caml_string_of_jsbytes - ("Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte"), - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]]], - _oE_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oC_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 6, - 12, - 6, - 19, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oM_= - [0, - caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"), - [0,caml_string_of_jsbytes("montant"),0]], - _oN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 10, - 13, - 10, - 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _oO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"), - 10, - 13, - 10, - 42, - [0, - caml_string_of_jsbytes - ("Montant de la base mensuelle des allocations familiales"), - 0]], - _ox_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2242, - 14, - 2242, - 28, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oy_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1138, - 12, - 1138, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ow_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2179, - 14, - 2179, - 28, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1138, - 12, - 1138, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _or_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2184, - 20, - 2184, - 55, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _os_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _op_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2200, - 20, - 2200, - 51, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oq_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _on_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2266, - 7, - 2266, - 42, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oo_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ol_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2294, - 7, - 2294, - 51, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _om_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _og_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2223, - 14, - 2223, - 36, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1136, - 11, - 1136, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oe_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2319, - 14, - 2319, - 36, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _of_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1136, - 11, - 1136, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n__= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2310, - 14, - 2310, - 36, - [0, - caml_string_of_jsbytes("Article R824-2"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _n$_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1135, - 11, - 1135, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n9_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2214, - 14, - 2214, - 36, - [0, - caml_string_of_jsbytes("Article R824-1"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _oa_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1135, - 11, - 1135, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n5_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 2342, - 14, - 2342, - 36, - [0, - caml_string_of_jsbytes("Article R824-3"), - [0, - caml_string_of_jsbytes - ("Section 1 : Seuils de constitution d'un impay\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement"), - [0, - caml_string_of_jsbytes - ("Titre II : Dispositions communes aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _n0_=[0,0], - _n1_=[1,0], - _n2_=[1,0], - _n3_=[0,0], - _n4_=[0,0], - _n6_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1134, - 11, - 1134, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nZ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1134, - 11, - 1134, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n7_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("mode_occupation_impay\xc3\xa9"),0]], - _ob_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1135, - 11, - 1135, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _n8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1135, - 11, - 1135, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oc_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_brute"),0]], - _oi_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1136, - 11, - 1136, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _od_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1136, - 11, - 1136, - 33, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oj_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("d\xc3\xa9pense_logement_nette"),0]], - _ot_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ok_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1133, - 11, - 1133, - 43, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ou_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0, - caml_string_of_jsbytes - ("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"), - 0]], - _oA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1138, - 12, - 1138, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _ov_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1138, - 12, - 1138, - 26, - [0, - caml_string_of_jsbytes - ("Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _oB_= - [0, - caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"), - [0,caml_string_of_jsbytes("montant_impay\xc3\xa9"),0]], - _nV_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 119, - 5, - 119, - 42, - [0, - caml_string_of_jsbytes("Article L161-17-2"), - [0, - caml_string_of_jsbytes - ("Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nT_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 256, - 5, - 256, - 41, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nU_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nR_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 266, - 5, - 267, - 42, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nS_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nP_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 276, - 5, - 276, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nQ_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nN_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 285, - 5, - 285, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nO_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nL_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 294, - 5, - 294, - 48, - [0, - caml_string_of_jsbytes("Article D161-2-1-9"), - [0, - caml_string_of_jsbytes - ("Paragraphe 2 : Ouverture du droit et liquidation."), - [0, - caml_string_of_jsbytes("Sous-section 4 : Assurance vieillesse"), - [0, - caml_string_of_jsbytes("Section 1 : B\xc3\xa9n\xc3\xa9ficiaires"), - [0, - caml_string_of_jsbytes - ("Chapitre 1er : Dispositions relatives aux prestations"), - [0, - caml_string_of_jsbytes - ("Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales"), - [0, - caml_string_of_jsbytes - ("Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base"), - [0, - caml_string_of_jsbytes - ("Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]]]]], - _nM_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nX_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 1118, - 12, - 1118, - 31, - [0, - caml_string_of_jsbytes - ("Date d'ouverture des droits \xc3\xa0 la retraite"), - [0, - caml_string_of_jsbytes("Calcul du montant de l'allocation logement"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _nY_= - [0, - caml_string_of_jsbytes("OuvertureDroitsRetraite"), - [0,caml_string_of_jsbytes("\xc3\xa2ge_ouverture_droit"),0]], - _nH_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3257, - 14, - 3257, - 36, - [0, - caml_string_of_jsbytes("Article D832-11"), - [0, - caml_string_of_jsbytes - ("Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]], - _nI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 735, - 12, - 735, - 34, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nG_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 735, - 12, - 735, - 34, - [0, - caml_string_of_jsbytes - ("Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nJ_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_11"),0]], - _nD_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3933, - 14, - 3933, - 36, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nx_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 5522, - 5, - 5529, - 28, - [0, - caml_string_of_jsbytes("Article D861-8"), - [0, - caml_string_of_jsbytes("Section 2 : Allocations de logement"), - [0, - caml_string_of_jsbytes - ("Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]], - _ny_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 668, - 11, - 668, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nw_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4024, - 5, - 4024, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nz_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 668, - 11, - 668, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nv_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3928, - 14, - 3928, - 47, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nq_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4007, - 5, - 4007, - 26, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nr_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 667, - 11, - 667, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _np_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 3913, - 14, - 3913, - 41, - [0, - caml_string_of_jsbytes("Article D832-25"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _nk_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 665, - 12, - 665, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nl_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 665, - 12, - 665, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nm_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 665, - 12, - 665, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nj_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 665, - 12, - 665, - 52, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nn_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0, - caml_string_of_jsbytes - ("limitation_majoration_personnes_\xc3\xa0_charge"), - 0]], - _ns_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 667, - 11, - 667, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _no_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 667, - 11, - 667, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nt_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_base"),0]], - _nA_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 668, - 11, - 668, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nu_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 668, - 11, - 668, - 44, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nB_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25_majoration"),0]], - _nE_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 670, - 12, - 670, - 34, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nC_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 670, - 12, - 670, - 34, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nF_= - [0, - caml_string_of_jsbytes("CalculNombrePartLogementFoyer"), - [0,caml_string_of_jsbytes("n_nombre_parts_d832_25"),0]], - _nf_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4097, - 5, - 4097, - 26, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _ng_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 657, - 12, - 657, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ne_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4059, - 14, - 4059, - 21, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _na_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_construction_reglementaire.catala_fr"), - 4046, - 14, - 4046, - 50, - [0, - caml_string_of_jsbytes("Article D832-26"), - [0, - caml_string_of_jsbytes - ("Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer"), - [0, - caml_string_of_jsbytes("Section 3 : Logements-foyers"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Titre III : Aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("Livre VIII : Aides personnelles au logement"), - [0, - caml_string_of_jsbytes("Partie r\xc3\xa9glementaire"), - [0, - caml_string_of_jsbytes - ("Code de la construction et de l'habitation"), - 0]]]]]]]]], - _m$_=[1,0], - _m6_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2684, - 5, - 2684, - 26, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m5_=[1,0], - _m7_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 652, - 11, - 652, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m4_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2634, - 14, - 2634, - 38, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m3_=[1,0], - _mZ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/arrete_2019-09-27.catala_fr"), - 2720, - 14, - 2720, - 41, - [0, - caml_string_of_jsbytes("Article 31"), - [0, - caml_string_of_jsbytes - ("Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement"), - 0]]]], - _m0_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 655, - 11, - 655, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _mY_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 655, - 11, - 655, - 38, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m1_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("montant_forfaitaire_d832_26"),0]], - _m8_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 652, - 11, - 652, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m2_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 652, - 11, - 652, - 35, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m9_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("tranches_revenus_d832_26"),0]], - _nb_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 653, - 11, - 653, - 47, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _m__= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 653, - 11, - 653, - 47, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nc_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0, - caml_string_of_jsbytes("tranches_revenus_d832_26_multipli\xc3\xa9es"), - 0]], - _nh_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 657, - 12, - 657, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _nd_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 657, - 12, - 657, - 19, - [0, - caml_string_of_jsbytes("Secteur logement-foyer"), - [0, - caml_string_of_jsbytes - ("Calcul du montant de l'aide personnalis\xc3\xa9e au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]]], - _ni_= - [0, - caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"), - [0,caml_string_of_jsbytes("montant"),0]], - _mS_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 152, - 5, - 152, - 34, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mT_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 558, - 12, - 558, - 19, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mR_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 558, - 12, - 558, - 19, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mO_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 190, - 39, - 190, - 68, - [0, - caml_string_of_jsbytes("Article 19"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mJ_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr"), - 37, - 9, - 37, - 20, - [0, - caml_string_of_jsbytes("Article L136-1-3"), - [0, - caml_string_of_jsbytes - ("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"), - [0, - caml_string_of_jsbytes - ("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"), - [0, - caml_string_of_jsbytes - ("Titre III: Titre III : Dispositions communes relatives au financement"), - [0, - caml_string_of_jsbytes("Partie l\xc3\xa9gislative"), - [0, - caml_string_of_jsbytes - ("Code de la s\xc3\xa9curit\xc3\xa9 sociale"), - 0]]]]]]], - _mK_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 556, - 11, - 556, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mI_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 556, - 11, - 556, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mL_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 556, - 11, - 556, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mH_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 556, - 11, - 556, - 22, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mM_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("exon\xc3\xa9r\xc3\xa9_csg"),0]], - _mP_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 20, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mN_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 555, - 11, - 555, - 20, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mQ_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("taux_crds"),0]], - _mU_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - [0,caml_string_of_jsbytes("montant"),0]], - _mX_= - [0, - caml_string_of_jsbytes - ("examples/aides_logement/autres_sources.catala_fr"), - 156, - 13, - 156, - 24, - [0, - caml_string_of_jsbytes("Article 14"), - [0, - caml_string_of_jsbytes - ("Chapitre II : Des contributions pour le remboursement de la dette sociale."), - [0, - caml_string_of_jsbytes - ("Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"), - 0]]]], - _mV_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 563, - 13, - 563, - 42, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mW_= - [0, - caml_string_of_jsbytes("examples/aides_logement/prologue.catala_fr"), - 563, - 13, - 563, - 42, - [0, - caml_string_of_jsbytes - ("Calcul des contributions sociales s'appliquant aux aides personnelles au logement"), - [0, - caml_string_of_jsbytes - ("D\xc3\xa9clarations des champs d'application"), - [0,caml_string_of_jsbytes("Prologue : aides au logement"),0]]]], - _mG_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in"), - 0], - _mF_=[0,caml_string_of_jsbytes("Smic_in"),0], - _mE_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in"), - 0], - _mD_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in"), - 0], - _mC_= - [0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales_in"),0], - _mB_= - [0, - caml_string_of_jsbytes - ("CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in"), - 0], - _mA_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement_in"),0], - _mz_= - [0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement_in"),0], - _my_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite_in"),0], - _mx_=[0,caml_string_of_jsbytes("CalculAllocationLogement_in"),0], - _mw_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer_in"),0], - _mv_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mu_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif_in"),0], - _mt_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement_in"), - 0], - _ms_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mr_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in"), - 0], - _mq_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementFoyer_in"), - 0], - _mp_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer_in"),0], - _mo_= - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale_in"),0], - _mn_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementLocatif_in"), - 0], - _mm_= - [0, - caml_string_of_jsbytes - ("ContributionsSocialesAidesPersonnelleLogement_in"), - 0], - _ml_= - [0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement_in"),0], - _mk_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in"), - 0], - _mj_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AllocationLogement_in"), - 0], - _mi_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in"), - 0], - _mh_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in"), - 0], - _mg_=[0,caml_string_of_jsbytes("M\xc3\xa9nage"),0], - _mf_=[0,caml_string_of_jsbytes("Logement"),0], - _me_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement"), - 0], - _md_=[0,caml_string_of_jsbytes("ModeOccupation"),0], - _mc_=[0,caml_string_of_jsbytes("Cat\xc3\xa9gorieCalculAPL"),0], - _mb_=[0,caml_string_of_jsbytes("Personne\xc3\x80Charge"),0], - _ma_=[0,caml_string_of_jsbytes("Location"),0], - _l$_=[0,caml_string_of_jsbytes("Enfant\xc3\x80Charge"),0], - _l__=[0,caml_string_of_jsbytes("Demandeur"),0], - _l9_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales"), - 0], - _l8_=[0,caml_string_of_jsbytes("Propri\xc3\xa9taire"),0], - _l7_= - [0, - caml_string_of_jsbytes("InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement"), - 0], - _l6_=[0,caml_string_of_jsbytes("ChangementLogementD842_4"),0], - _l5_=[0,caml_string_of_jsbytes("Nationalit\xc3\xa9"),0], - _l4_= - [0, - caml_string_of_jsbytes("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"), - 0], - _l3_=[0,caml_string_of_jsbytes("TypeBailleur"),0], - _l2_=[0,caml_string_of_jsbytes("EnfantPrestationsFamiliales"),0], - _l1_=[0,caml_string_of_jsbytes("LogementFoyer"),0], - _l0_=[0,caml_string_of_jsbytes("Pr\xc3\xaat"),0], - _lZ_= - [0, - caml_string_of_jsbytes("\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0], - _lY_= - [0, - caml_string_of_jsbytes - ("DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant"), - 0], - _lX_=[0,caml_string_of_jsbytes("AutrePersonne\xc3\x80Charge"),0], - _lW_=[0,caml_string_of_jsbytes("TrancheRevenuD\xc3\xa9cimal"),0], - _lV_=[0,caml_string_of_jsbytes("TrancheRevenu"),0], - _lU_=[0,caml_string_of_jsbytes("NeufOuAncien"),0], - _lT_=[0,caml_string_of_jsbytes("Smic"),0], - _lS_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80"), - 0], - _lR_= - [0, - caml_string_of_jsbytes - ("V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80"), - 0], - _lQ_=[0,caml_string_of_jsbytes("BaseMensuelleAllocationsFamiliales"),0], - _lP_= - [0, - caml_string_of_jsbytes("CalculetteAidesAuLogementGardeAltern\xc3\xa9e"), - 0], - _lO_=[0,caml_string_of_jsbytes("CalculetteAidesAuLogement"),0], - _lN_=[0,caml_string_of_jsbytes("Impay\xc3\xa9D\xc3\xa9penseLogement"),0], - _lM_=[0,caml_string_of_jsbytes("OuvertureDroitsRetraite"),0], - _lL_=[0,caml_string_of_jsbytes("CalculAllocationLogement"),0], - _lK_=[0,caml_string_of_jsbytes("CalculAllocationLogementFoyer"),0], - _lJ_= - [0, - caml_string_of_jsbytes - ("CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lI_=[0,caml_string_of_jsbytes("CalculAllocationLogementLocatif"),0], - _lH_=[0,caml_string_of_jsbytes("InfosChangementLogementD842_4"),0], - _lG_= - [0,caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogement"),0], - _lF_=[0,caml_string_of_jsbytes("Traitement_formule_aide_finale"),0], - _lE_= - [0, - caml_string_of_jsbytes - ("CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lD_= - [0, - caml_string_of_jsbytes - ("CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9"), - 0], - _lC_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementFoyer"), - 0], - _lB_=[0,caml_string_of_jsbytes("CalculNombrePartLogementFoyer"),0], - _lA_= - [0,caml_string_of_jsbytes("Calcul\xc3\x89quivalenceLoyerMinimale"),0], - _lz_= - [0, - caml_string_of_jsbytes("CalculAidePersonnalis\xc3\xa9eLogementLocatif"), - 0], - _ly_= - [0, - caml_string_of_jsbytes("ContributionsSocialesAidesPersonnelleLogement"), - 0], - _lx_=[0,caml_string_of_jsbytes("RessourcesAidesPersonnelleLogement"),0], - _lw_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement"), - 0], - _lv_= - [0, - caml_string_of_jsbytes - ("\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement"), - 0], - _lu_=[0,caml_string_of_jsbytes("PersonneVivantHabituellementAuFoyer"),0], - _lt_=[0,caml_string_of_jsbytes("Conditions\xc3\x89trangers"),0], - _ls_=[0,caml_string_of_jsbytes("Patrimoine"),0], - _lr_=[0,caml_string_of_jsbytes("PersonneSousLocation"),0], - _lq_=[0,caml_string_of_jsbytes("ConventionANHA"),0], - _lp_=[0,caml_string_of_jsbytes("ConventionBailleurSocial"),0], - _lo_= - [0, - caml_string_of_jsbytes("\xc3\x89l\xc3\xa9mentPrestationsFamiliales"), - 0], - _ln_=[0,caml_string_of_jsbytes("SituationObligationScolaire"),0], - _lm_=[0,caml_string_of_jsbytes("PriseEnChargeEnfant"),0], - _ll_=[0,caml_string_of_jsbytes("Collectivit\xc3\xa9"),0], - _lk_=[0,caml_string_of_jsbytes("SituationFamilialeCalculAPL"),0], - _lj_= - [0, - caml_string_of_jsbytes - ("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"), - 0], - _li_=[0,caml_string_of_jsbytes("TypeLogementFoyer"),0], - _lh_=[0,caml_string_of_jsbytes("PriseEnCharge"),0], - _lg_=[0,caml_string_of_jsbytes("SituationFamiliale"),0], - _lf_=[0,caml_string_of_jsbytes("TypeAidesPersonnelleLogement"),0], - _le_= - [0, - caml_string_of_jsbytes - ("AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer"), - 0], - _ld_= - [0, - caml_string_of_jsbytes - ("Type\xc3\x89ligibilit\xc3\xa9AllocationLogement"), - 0], - _lc_=[0,caml_string_of_jsbytes("ModeOccupationImpay\xc3\xa9"),0], - _lb_=[0,caml_string_of_jsbytes("D\xc3\xa9penseLogement"),0], - _la_=[0,caml_string_of_jsbytes("Versement\xc3\x80"),0], - _k$_= - [0,caml_string_of_jsbytes("PaiementLogementDistinctProfessionnel"),0], - _k__=[0,caml_string_of_jsbytes("ZoneDHabitation"),0], - _k9_=[0,caml_string_of_jsbytes("DateDeNaissanceOuMoisDeGrossesse"),0], - _k8_=[0,caml_string_of_jsbytes("Parent\xc3\xa9"),0], - _k7_=[0,caml_string_of_jsbytes("SituationGardeAltern\xc3\xa9e"),0], - _k6_=[0,caml_string_of_jsbytes("ParentOuAutre"),0], - _k5_=[0,caml_string_of_jsbytes("PrestationRe\xc3\xa7ue"),0], - _k4_=[0,caml_string_of_jsbytes("LimiteTrancheD\xc3\xa9cimal"),0], - _k3_=[0,caml_string_of_jsbytes("LimiteTranche"),0], - _k2_=[0,caml_string_of_jsbytes("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0], - _k1_=[0,caml_string_of_jsbytes("TypeTravauxLogementR842_5"),0], - _k0_=[0,caml_string_of_jsbytes("TypeTravauxLogementD832_15"),0], - _kZ_=[0,caml_string_of_jsbytes("TitulairePr\xc3\xaat"),0], - _kY_=[0,caml_string_of_jsbytes("TypePr\xc3\xaat"),0], - _aeu_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ModeOccupation.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")], - _aet_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'CategorieCalculAPL.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'")], - _aes_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PersonneACharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")], - _aer_=[1,0], - _aeq_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ChangementLogementD8424.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")], - _aep_=[0,0], - _aeo_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'Nationalite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Nationalite.t'")], - _aen_=[0,0], - _aem_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")], - _ael_=[2,0], - _aek_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeBailleur.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")], - _aej_=[0,0], - _aei_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")], - _aeh_=[0,0], - _aeg_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'NeufOuAncien.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")], - _ad__=[0,0], - _ad$_=[2,0], - _aea_=[1,0], - _aeb_=[5,0], - _aec_=[6,0], - _aed_=[3,0], - _aee_=[7,0], - _aef_=[4,0], - _ad9_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ElementPrestationsFamiliales.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'")], - _ad6_=[1,0], - _ad7_=[0,0], - _ad8_=[2,0], - _ad5_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationObligationScolaire.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'")], - _ad0_=[4,0], - _ad1_=[3,0], - _ad2_=[0,0], - _ad3_=[1,0], - _ad4_=[2,0], - _adZ_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnChargeEnfant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")], - _adQ_=[7,0], - _adR_=[5,0], - _adS_=[4,0], - _adT_=[6,0], - _adU_=[8,0], - _adV_=[2,0], - _adW_=[3,0], - _adX_=[1,0], - _adY_=[0,0], - _adP_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'Collectivite.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Collectivite.t'")], - _adN_=[0,0], - _adO_=[1,0], - _adM_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")], - _adI_=[2,0], - _adJ_=[1,0], - _adK_=[0,0], - _adL_=[3,0], - _adH_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")], - _adD_=[1,0], - _adE_=[0,0], - _adF_=[2,0], - _adG_=[3,0], - _adC_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeLogementFoyer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")], - _adz_=[2,0], - _adA_=[1,0], - _adB_=[0,0], - _ady_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PriseEnCharge.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")], - _adt_=[2,0], - _adu_=[3,0], - _adv_=[5,0], - _adw_=[4,0], - _adx_=[0,0], - _ads_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationFamiliale.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")], - _adp_=[2,0], - _adq_=[1,0], - _adr_=[0,0], - _ado_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")], - _adn_=[1,0], - _adm_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'")], - _adj_=[0,0], - _adk_=[2,0], - _adl_=[1,0], - _adi_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'")], - _adg_=[1,0], - _adh_=[0,0], - _adf_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ModeOccupationImpaye.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'")], - _ade_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DepenseLogement.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")], - _adb_=[2,0], - _adc_=[1,0], - _add_=[0,0], - _ada_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'VersementA.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'VersementA.t'")], - _ac$_=[1,0], - _ac__= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")], - _ac7_=[2,0], - _ac8_=[1,0], - _ac9_=[0,0], - _ac6_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ZoneDHabitation.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")], - _ac4_=[1,0], - _ac5_=[2,0], - _ac3_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")], - _ac0_=[1,0], - _ac1_=[2,0], - _ac2_=[0,0], - _acZ_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'Parente.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'Parente.t'")], - _acY_=[0,0], - _acX_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'SituationGardeAlternee.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")], - _acW_=[1,0], - _acV_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'ParentOuAutre.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")], - _acP_=[1,0], - _acQ_=[0,0], - _acR_=[3,0], - _acS_=[4,0], - _acT_=[2,0], - _acU_=[5,0], - _acO_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'PrestationRecue.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")], - _acN_=[1,0], - _acM_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LimiteTrancheDecimal.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'")], - _acL_=[1,0], - _acK_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'LimiteTranche.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'LimiteTranche.t'")], - _acI_=[0,0], - _acJ_=[1,0], - _acH_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'AmelioreParOccupant.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")], - _acD_=[1,0], - _acE_=[3,0], - _acF_=[0,0], - _acG_=[2,0], - _acC_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeTravauxLogementR8425.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")], - _acz_=[1,0], - _acA_=[0,0], - _acB_=[2,0], - _acy_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TypeTravauxLogementD83215.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")], - _acw_=[1,0], - _acx_=[0,0], - _acv_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes - ("' kind for the enumeration 'TitulairePret.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")], - _acq_=[3,0], - _acr_=[1,0], - _acs_=[2,0], - _act_=[0,0], - _acu_=[4,0], - _acp_= - [0, - [11, - caml_string_of_jsbytes("Unexpected '"), - [2, - 0, - [11, - caml_string_of_jsbytes("' kind for the enumeration 'TypePret.t'"), - 0]]], - caml_string_of_jsbytes - ("Unexpected '%s' kind for the enumeration 'TypePret.t'")]; - function embed_prise_en_charge(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cY5_= - [0, - cst_GardeAltern_ePartageAlloca, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cY5_= - [0, - cst_GardeAltern_eAllocataireUn, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cY5_= - [0, - cst_EffectiveEtPermanente, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cY5_= - [0, - cst_ServicesSociauxAllocationV, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cY5_= - [0, - cst_ServicesSociauxAllocationV$0, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_a_,_cY5_]} - var SituationObligationScolaire=[0]; - function embed_situation_obligation_sco(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cY4_=[0,cst_Avant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cY4_=[0,cst_Pendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cY4_=[0,cst_Apr_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_b_,_cY4_]} - var PriseEnCompte=[0]; - function embed_prise_en_compte(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cY3_=[0,cst_Compl_te,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cY3_=[0,cst_Partag_e,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cY3_=[0,cst_Z_ro,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_c_,_cY3_]} - var VersementAllocations=[0]; - function embed_versement_allocations(x) - {if(0 === x[0]) + cst_avait_enfant_charge_avant_ = + "avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012_in", + cst_enfants_charge_in = "enfants_\xc3\xa0_charge_in", + cst_date_courante_in$0 = cst_date_courante_in$5, + cst_r_sidence_in$0 = cst_r_sidence_in$2, + cst_ressources_m_nage_in = "ressources_m\xc3\xa9nage_in", + cst_personne_charge_effective_ = + "personne_charge_effective_permanente_remplit_titre_I_in", + cst_personne_charge_effective_$0 = + "personne_charge_effective_permanente_est_parent_in", + _t_ = [0, "AllocationsFamiliales_in", 0], + cst_enfants_in = "enfants_in", + _s_ = [0, "EnfantLePlus\xc3\x82g\xc3\xa9_in", 0], + cst_r_sidence_in = cst_r_sidence_in$2, + cst_prestation_courante_in = "prestation_courante_in", + cst_date_courante_in = cst_date_courante_in$5, + _r_ = [0, "PrestationsFamiliales_in", 0], + cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, + cst_ge_l512_3_2 = cst_ge_l512_3_2$0, + cst_conditions_hors_ge = cst_conditions_hors_ge$0, + cst_droit_ouvert = cst_droit_ouvert$0, + _q_ = [0, cst_PrestationsFamiliales, 0], + cst_le_plus_g = cst_le_plus_g$0, + _p_ = [0, cst_EnfantLePlus_g, 0], + cst_b_n_ficie_titre_personnel_ = + "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_a_d_j_ouvert_droit_aux_all = + "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_prise_en_charge = "prise_en_charge", + cst_date_de_naissance = "date_de_naissance", + cst_r_muneration_mensuelle = "r\xc3\xa9muneration_mensuelle", + cst_obligation_scolaire = "obligation_scolaire", + cst_identifiant = "identifiant", + _o_ = [0, "Enfant", 0], + cst_d_b_n_ficie_titre_personne = + "d_b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_d_a_d_j_ouvert_droit_aux_a = + "d_a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_d_prise_en_charge = "d_prise_en_charge", + cst_d_date_de_naissance = "d_date_de_naissance", + cst_d_r_muneration_mensuelle = "d_r\xc3\xa9muneration_mensuelle", + cst_d_identifiant = "d_identifiant", + _n_ = [0, "EnfantEntr\xc3\xa9e", 0], + cst_i_montant_vers = cst_i_montant_vers$0, + _m_ = [0, cst_InterfaceAllocationsFamili, 0], + cst_montant = cst_montant$0, + _l_ = [0, cst_BaseMensuelleAllocationsFa, 0], + cst_brut_horaire = cst_brut_horaire$0, + _k_ = [0, cst_Smic, 0], + cst_est_sup_rieur = cst_est_sup_rieur$0, + _j_ = [0, cst_V_rification_geSup_rieur, 0], + cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, + _i_ = [0, cst_V_rification_geInf_rieurOu, 0], + cst_montant_vers = cst_montant_vers$0, + _h_ = [0, cst_AllocationsFamiliales$0, 0], + cst_ge_minimum_alin_a_1_l521_3 = cst_ge_minimum_alin_a_1_l521_3$0, + _g_ = [0, cst_AllocationFamilialesAvril2, 0], + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_Martinique = "Martinique", + cst_LaR_union = "LaR\xc3\xa9union", + cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", + cst_SaintMartin = "SaintMartin", + cst_M_tropole = "M\xc3\xa9tropole", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_Mayotte = "Mayotte", + _f_ = [0, "Collectivit\xc3\xa9", 0], + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_AllocationsFamiliales = cst_AllocationsFamiliales$0, + cst_Compl_mentFamilial = "Compl\xc3\xa9mentFamilial", + cst_AllocationLogement = "AllocationLogement", + cst_Allocation_ducationEnfantH = + "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", + cst_AllocationJournali_rePrese = + "AllocationJournali\xc3\xa8rePresenceParentale", + _e_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], + cst_Normal = "Normal", + cst_AllocationVers_eAuxService = + "AllocationVers\xc3\xa9eAuxServicesSociaux", + _d_ = [0, "VersementAllocations", 0], + cst_Compl_te = "Compl\xc3\xa8te", + cst_Partag_e = "Partag\xc3\xa9e", + cst_Z_ro = "Z\xc3\xa9ro", + _c_ = [0, "PriseEnCompte", 0], + cst_Avant = "Avant", + cst_Pendant = "Pendant", + cst_Apr_s = "Apr\xc3\xa8s", + _b_ = [0, "SituationObligationScolaire", 0], + cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", + cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", + _a_ = [0, "PriseEnCharge", 0]; + function embed_prise_en_charge(x){ + switch(x[0]){ + case 0: var - x$0=x[1], - _cY2_=[0,cst_Normal,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else + x$0 = x[1], + _Ln_ = + [0, + cst_GardeAltern_ePartageAlloca, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: var - x$1=x[1], - _cY2_= - [0, - cst_AllocationVers_eAuxService, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_d_,_cY2_]} - var ElementPrestationsFamiliales=[0]; - function embed_element_prestations_fami(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cY1_= - [0, - cst_PrestationAccueilJeuneEnfa, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cY1_= - [0, - cst_AllocationsFamiliales, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cY1_= - [0, - cst_Compl_mentFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cY1_= - [0, - cst_AllocationLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cY1_= - [0, - cst_Allocation_ducationEnfantH, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cY1_= - [0, - cst_AllocationSoutienFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cY1_= - [0, - cst_AllocationRentr_eScolaire, - caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - default: - var - x$7=x[1], - _cY1_= - [0, - cst_AllocationJournali_rePrese, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]} - return [6,_e_,_cY1_]} - var Collectivite=[0]; - function embed_collectivite(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cY0_=[0,cst_Guadeloupe,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cY0_=[0,cst_Guyane,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cY0_=[0,cst_Martinique,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cY0_=[0,cst_LaR_union,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cY0_= - [0,cst_SaintBarth_lemy,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cY0_=[0,cst_SaintMartin,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cY0_=[0,cst_M_tropole,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - case 7: - var - x$7=x[1], - _cY0_= - [0, - cst_SaintPierreEtMiquelon, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]; - break; - default: - var - x$8=x[1], - _cY0_=[0,cst_Mayotte,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} - return [6,_f_,_cY0_]} - var AllocationFamilialesAvril2008=[0]; - function embed_allocation_familiales_av(x) - {return [7, - _g_, - [0, - [0, - cst_ge_minimum_alin_a_1_l521_3, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - 0]]} - var AllocationsFamiliales=[0]; - function embed_allocations_familiales(x) - {return [7, - _h_, - [0, - [0,cst_montant_vers,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal=[0]; - function embed_verification_age_inferie(x) - {return [7, - _i_, - [0, - [0, - cst_est_inf_rieur_ou_gal, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var VerificationAgeSuperieurA=[0]; - function embed_verification_age_superie(x) - {return [7, - _j_, - [0, - [0, - cst_est_sup_rieur, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var Smic=[0]; - function embed_smic(x) - {return [7, - _k_, - [0, - [0,cst_brut_horaire,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var BaseMensuelleAllocationsFamili=[0]; - function embed_base_mensuelle_allocatio(x) - {return [7, - _l_, - [0,[0,cst_montant,caml_call1(Runtime_ocaml_Runtime[13],x[1])],0]]} - var InterfaceAllocationsFamiliales=[0]; - function embed_interface_allocations_fa(x) - {return [7, - _m_, - [0, - [0, - cst_i_montant_vers, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var EnfantEntree=[0]; - function embed_enfant_entree(x) - {var - _cYV_= - [0, - [0, - cst_d_b_n_ficie_titre_personne, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - 0], - _cYW_= - [0, - [0, - cst_d_a_d_j_ouvert_droit_aux_a, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cYV_], - _cYX_=[0,[0,cst_d_prise_en_charge,embed_prise_en_charge(x[4])],_cYW_], - _cYY_= - [0, - [0, - cst_d_date_de_naissance, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cYX_], - _cYZ_= - [0, - [0, - cst_d_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cYY_]; - return [7, - _n_, - [0, - [0, - cst_d_identifiant, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cYZ_]]} - var Enfant=[0]; - function embed_enfant(x) - {var - _cYP_= - [0, - [0, - cst_b_n_ficie_titre_personnel_, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cYQ_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cYP_], - _cYR_=[0,[0,cst_prise_en_charge,embed_prise_en_charge(x[5])],_cYQ_], - _cYS_= - [0, - [0,cst_date_de_naissance,caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cYR_], - _cYT_= - [0, - [0, - cst_r_muneration_mensuelle, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cYS_], - _cYU_= - [0, - [0,cst_obligation_scolaire,embed_situation_obligation_sco(x[2])], - _cYT_]; - return [7, - _o_, - [0, - [0,cst_identifiant,caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cYU_]]} - var EnfantLePlusAge=[0]; - function embed_enfant_le_plus_age(x) - {return [7,_p_,[0,[0,cst_le_plus_g,embed_enfant(x[1])],0]]} - var PrestationsFamiliales=[0]; - function embed_prestations_familiales(x) - {var - _cYM_= - [0, - [0, - cst_r_gime_outre_mer_l751_1, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _cYN_= - [0, - [0,cst_ge_l512_3_2,caml_call1(Runtime_ocaml_Runtime[17],x[3])], - _cYM_], - _cYO_= - [0, - [0,cst_conditions_hors_ge,caml_call1(Runtime_ocaml_Runtime[10],x[2])], - _cYN_]; - return [7, - _q_, - [0, - [0,cst_droit_ouvert,caml_call1(Runtime_ocaml_Runtime[10],x[1])], - _cYO_]]} - var PrestationsFamilialesIn=[0]; - function embed_prestations_familiales_i(x) - {var - _cYK_=[0,[0,cst_r_sidence_in,embed_collectivite(x[3])],0], - _cYL_= - [0, - [0,cst_prestation_courante_in,embed_element_prestations_fami(x[2])], - _cYK_]; - return [7, - _r_, - [0, - [0, - cst_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cYL_]]} - var AllocationFamilialesAvril2008I=[0]; - function embed_allocation_familiales_av$0(param){return 0} - var EnfantLePlusAgeIn=[0]; - function embed_enfant_le_plus_age_in(x) - {return [7, - _s_, - [0, - [0, - cst_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[1])], - 0]]} - var AllocationsFamilialesIn=[0]; - function embed_allocations_familiales_i(x) - {var - _cYE_= - [0, - [0, - cst_avait_enfant_charge_avant_, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cYF_= - [0, - [0, - cst_enfants_charge_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant,x[6])], - _cYE_], - _cYG_= - [0, - [0,cst_date_courante_in$0,caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cYF_], - _cYH_=[0,[0,cst_r_sidence_in$0,embed_collectivite(x[4])],_cYG_], - _cYI_= - [0, - [0, - cst_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cYH_], - _cYJ_= - [0, - [0, - cst_personne_charge_effective_, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cYI_]; - return [7, - _t_, - [0, - [0, - cst_personne_charge_effective_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cYJ_]]} - var VerificationAgeInferieurOuEgal$0=[0]; - function embed_verification_age_inferie$0(x) - {var - _cYC_= - [0,[0,cst_ann_es_in,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _cYD_= - [0, - [0,cst_date_courante_in$1,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cYC_]; - return [7, - _u_, - [0, - [0, - cst_date_naissance_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cYD_]]} - var VerificationAgeSuperieurAIn=[0]; - function embed_verification_age_superie$0(x) - {var - _cYA_= - [0,[0,cst_ann_es_in$0,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _cYB_= - [0, - [0,cst_date_courante_in$2,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cYA_]; - return [7, - _v_, - [0, - [0, - cst_date_naissance_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cYB_]]} - var SmicIn=[0]; - function embed_smic_in(x) - {var _cYz_=[0,[0,cst_r_sidence_in$1,embed_collectivite(x[2])],0]; - return [7, - _w_, - [0, - [0, - cst_date_courante_in$3, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cYz_]]} - var BaseMensuelleAllocationsFamili$0=[0]; - function embed_base_mensuelle_allocatio$0(x) - {return [7, - _x_, - [0, - [0, - cst_date_courante_in$4, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var InterfaceAllocationsFamiliales$0=[0]; - function embed_interface_allocations_fa$0(x) - {var - _cYt_= - [0, - [0, - cst_i_avait_enfant_charge_avan, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cYu_= - [0, - [0, - cst_i_personne_charge_effectiv, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cYt_], - _cYv_= - [0, - [0, - cst_i_personne_charge_effectiv$0, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cYu_], - _cYw_=[0,[0,cst_i_r_sidence_in,embed_collectivite(x[4])],_cYv_], - _cYx_= - [0, - [0, - cst_i_ressources_m_nage_in, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cYw_], - _cYy_= - [0, - [0, - cst_i_enfants_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_enfant_entree,x[2])], - _cYx_]; - return [7, - _y_, - [0, - [0, - cst_i_date_courante_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cYy_]]} - function allocation_familiales_avril200(allocation_familiales_avril200) - {try - {var - _cYp_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],16,0,0)}, - _cYq_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_A_,1)}, - _cYr_=caml_call4(Runtime_ocaml_Runtime[63],_B_,[0],_cYq_,_cYp_)} - catch(_cYs_) - {_cYs_ = caml_wrap_exception(_cYs_); - if(_cYs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_z_]; - throw _cYs_} - var - age_minimum_alinea_1_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_C_,Runtime_ocaml_Runtime[17],_cYr_); - return [0,age_minimum_alinea_1_l521_3]} - function enfant_le_plus_age(enfant_le_plus_age_in) - {var enfants=enfant_le_plus_age_in[1]; - try - {var - _cYh_= - function(param) - {var - _cYl_=caml_call3(Runtime_ocaml_Runtime[57],2999,12,31), - _cYm_=caml_call1(Runtime_ocaml_Runtime[31],cst_0), - _cYn_= - [0, - caml_call1(Runtime_ocaml_Runtime[46],cst_1), - _F_, - _cYm_, - _cYl_, - _E_, - 0, - 0]; - function _cYo_(potentiel_plus_age_1,potentiel_plus_age_2) - {return caml_call2 - (Runtime_ocaml_Runtime[115], - potentiel_plus_age_1[4], - potentiel_plus_age_2[4]) - ?potentiel_plus_age_1 - :potentiel_plus_age_2} - return caml_call3(Runtime_ocaml_Runtime[88],_cYo_,_cYn_,enfants)}, - _cYi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G_,1)}, - _cYj_=caml_call4(Runtime_ocaml_Runtime[63],_H_,[0],_cYi_,_cYh_)} - catch(_cYk_) - {_cYk_ = caml_wrap_exception(_cYk_); - if(_cYk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D_]; - throw _cYk_} - var - le_plus_age= - caml_call3(Runtime_ocaml_Runtime[28],_I_,embed_enfant,_cYj_); - return [0,le_plus_age]} - function verification_age_inferieur_ou_(verification_age_inferieur_ou_) - {var - date_naissance=verification_age_inferieur_ou_[1], - date_courante=verification_age_inferieur_ou_[2], - annees=verification_age_inferieur_ou_[3]; - try - {var - _cYc_= - function(param) - {var - _cYg_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[120],_cYg_,date_courante)}, - _cYd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_K_,1)}, - _cYe_=caml_call4(Runtime_ocaml_Runtime[63],_L_,[0],_cYd_,_cYc_)} - catch(_cYf_) - {_cYf_ = caml_wrap_exception(_cYf_); - if(_cYf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_J_]; - throw _cYf_} - var - est_inferieur_ou_egal= - caml_call3 - (Runtime_ocaml_Runtime[28],_M_,Runtime_ocaml_Runtime[12],_cYe_); - return [0,est_inferieur_ou_egal]} - function verification_age_superieur_a(verification_age_superieur_a_i) - {var - date_naissance=verification_age_superieur_a_i[1], - date_courante=verification_age_superieur_a_i[2], - annees=verification_age_superieur_a_i[3]; - try - {var - _cX9_= - function(param) - {var - _cYb_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[125],_cYb_,date_courante)}, - _cX__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O_,1)}, - _cX$_=caml_call4(Runtime_ocaml_Runtime[63],_P_,[0],_cX__,_cX9_)} - catch(_cYa_) - {_cYa_ = caml_wrap_exception(_cYa_); - if(_cYa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_N_]; - throw _cYa_} - var - est_superieur= - caml_call3 - (Runtime_ocaml_Runtime[28],_Q_,Runtime_ocaml_Runtime[12],_cX$_); - return [0,est_superieur]} - function smic(smic_in) - {var date_courante=smic_in[1],residence=smic_in[2]; - try - {var - _cUo_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cUp_=function(param){return 0}, - _cUq_= - function(param) - {function _cX3_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_851)} - function _cX4_(param) - {var - _cX5_=caml_call2(Runtime_ocaml_Runtime[86],residence,_S_), - _cX6_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cX7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cX6_), - _cX8_=caml_call2(Runtime_ocaml_Runtime[83],_cX7_,_cX5_); - return caml_call2(Runtime_ocaml_Runtime[29],_T_,_cX8_)} - return caml_call4(Runtime_ocaml_Runtime[63],_U_,[0],_cX4_,_cX3_)}, - _cUr_= - function(param) - {function _cXJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127)} - function _cXK_(param) - {var - _cXL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_V_), - _cXM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_W_), - _cXN_=caml_call2(Runtime_ocaml_Runtime[84],_cXM_,_cXL_), - _cXO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_X_), - _cXP_=caml_call2(Runtime_ocaml_Runtime[84],_cXO_,_cXN_), - _cXQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Y_), - _cXR_=caml_call2(Runtime_ocaml_Runtime[84],_cXQ_,_cXP_), - _cXS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Z_), - _cXT_=caml_call2(Runtime_ocaml_Runtime[84],_cXS_,_cXR_), - _cXU_=caml_call2(Runtime_ocaml_Runtime[86],residence,___), - _cXV_=caml_call2(Runtime_ocaml_Runtime[84],_cXU_,_cXT_), - _cXW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_$_), - _cXX_=caml_call2(Runtime_ocaml_Runtime[84],_cXW_,_cXV_), - _cXY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aa_), - _cXZ_=caml_call2(Runtime_ocaml_Runtime[84],_cXY_,_cXX_), - _cX0_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cX1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cX0_), - _cX2_=caml_call2(Runtime_ocaml_Runtime[83],_cX1_,_cXZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_ab_,_cX2_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ac_,[0],_cXK_,_cXJ_)}, - _cUs_= - function(param) - {function _cXA_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_835)} - function _cXB_(param) - {var - _cXC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ad_), - _cXD_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cXE_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cXD_), - _cXF_=caml_call2(Runtime_ocaml_Runtime[83],_cXE_,_cXC_), - _cXG_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cXH_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXG_), - _cXI_=caml_call2(Runtime_ocaml_Runtime[83],_cXH_,_cXF_); - return caml_call2(Runtime_ocaml_Runtime[29],_ae_,_cXI_)} - return caml_call4(Runtime_ocaml_Runtime[63],_af_,[0],_cXB_,_cXA_)}, - _cUt_= - function(param) - {function _cXd_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107)} - function _cXe_(param) - {var - _cXf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ag_), - _cXg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ah_), - _cXh_=caml_call2(Runtime_ocaml_Runtime[84],_cXg_,_cXf_), - _cXi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ai_), - _cXj_=caml_call2(Runtime_ocaml_Runtime[84],_cXi_,_cXh_), - _cXk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aj_), - _cXl_=caml_call2(Runtime_ocaml_Runtime[84],_cXk_,_cXj_), - _cXm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ak_), - _cXn_=caml_call2(Runtime_ocaml_Runtime[84],_cXm_,_cXl_), - _cXo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_al_), - _cXp_=caml_call2(Runtime_ocaml_Runtime[84],_cXo_,_cXn_), - _cXq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_am_), - _cXr_=caml_call2(Runtime_ocaml_Runtime[84],_cXq_,_cXp_), - _cXs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_an_), - _cXt_=caml_call2(Runtime_ocaml_Runtime[84],_cXs_,_cXr_), - _cXu_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cXv_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cXu_), - _cXw_=caml_call2(Runtime_ocaml_Runtime[83],_cXv_,_cXt_), - _cXx_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cXy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXx_), - _cXz_=caml_call2(Runtime_ocaml_Runtime[83],_cXy_,_cXw_); - return caml_call2(Runtime_ocaml_Runtime[29],_ao_,_cXz_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ap_,[0],_cXe_,_cXd_)}, - _cUu_= - function(param) - {function _cW6_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_819)} - function _cW7_(param) - {var - _cW8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aq_), - _cW9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cW__= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cW9_), - _cW$_=caml_call2(Runtime_ocaml_Runtime[83],_cW__,_cW8_), - _cXa_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cXb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cXa_), - _cXc_=caml_call2(Runtime_ocaml_Runtime[83],_cXb_,_cW$_); - return caml_call2(Runtime_ocaml_Runtime[29],_ar_,_cXc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_as_,[0],_cW7_,_cW6_)}, - _cUv_= - function(param) - {function _cWJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085)} - function _cWK_(param) - {var - _cWL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_at_), - _cWM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_au_), - _cWN_=caml_call2(Runtime_ocaml_Runtime[84],_cWM_,_cWL_), - _cWO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_av_), - _cWP_=caml_call2(Runtime_ocaml_Runtime[84],_cWO_,_cWN_), - _cWQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aw_), - _cWR_=caml_call2(Runtime_ocaml_Runtime[84],_cWQ_,_cWP_), - _cWS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ax_), - _cWT_=caml_call2(Runtime_ocaml_Runtime[84],_cWS_,_cWR_), - _cWU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ay_), - _cWV_=caml_call2(Runtime_ocaml_Runtime[84],_cWU_,_cWT_), - _cWW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_az_), - _cWX_=caml_call2(Runtime_ocaml_Runtime[84],_cWW_,_cWV_), - _cWY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aA_), - _cWZ_=caml_call2(Runtime_ocaml_Runtime[84],_cWY_,_cWX_), - _cW0_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cW1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cW0_), - _cW2_=caml_call2(Runtime_ocaml_Runtime[83],_cW1_,_cWZ_), - _cW3_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cW4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cW3_), - _cW5_=caml_call2(Runtime_ocaml_Runtime[83],_cW4_,_cW2_); - return caml_call2(Runtime_ocaml_Runtime[29],_aB_,_cW5_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aC_,[0],_cWK_,_cWJ_)}, - _cUw_= - function(param) - {function _cWA_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_798)} - function _cWB_(param) - {var - _cWC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aD_), - _cWD_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cWE_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cWD_), - _cWF_=caml_call2(Runtime_ocaml_Runtime[83],_cWE_,_cWC_), - _cWG_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cWH_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWG_), - _cWI_=caml_call2(Runtime_ocaml_Runtime[83],_cWH_,_cWF_); - return caml_call2(Runtime_ocaml_Runtime[29],_aE_,_cWI_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aF_,[0],_cWB_,_cWA_)}, - _cUx_= - function(param) - {function _cWd_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057)} - function _cWe_(param) - {var - _cWf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aG_), - _cWg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aH_), - _cWh_=caml_call2(Runtime_ocaml_Runtime[84],_cWg_,_cWf_), - _cWi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aI_), - _cWj_=caml_call2(Runtime_ocaml_Runtime[84],_cWi_,_cWh_), - _cWk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aJ_), - _cWl_=caml_call2(Runtime_ocaml_Runtime[84],_cWk_,_cWj_), - _cWm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aK_), - _cWn_=caml_call2(Runtime_ocaml_Runtime[84],_cWm_,_cWl_), - _cWo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aL_), - _cWp_=caml_call2(Runtime_ocaml_Runtime[84],_cWo_,_cWn_), - _cWq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aM_), - _cWr_=caml_call2(Runtime_ocaml_Runtime[84],_cWq_,_cWp_), - _cWs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aN_), - _cWt_=caml_call2(Runtime_ocaml_Runtime[84],_cWs_,_cWr_), - _cWu_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cWv_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cWu_), - _cWw_=caml_call2(Runtime_ocaml_Runtime[83],_cWv_,_cWt_), - _cWx_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cWy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWx_), - _cWz_=caml_call2(Runtime_ocaml_Runtime[83],_cWy_,_cWw_); - return caml_call2(Runtime_ocaml_Runtime[29],_aO_,_cWz_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aP_,[0],_cWe_,_cWd_)}, - _cUy_= - function(param) - {function _cV6_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_774)} - function _cV7_(param) - {var - _cV8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aQ_), - _cV9_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cV__= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cV9_), - _cV$_=caml_call2(Runtime_ocaml_Runtime[83],_cV__,_cV8_), - _cWa_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cWb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cWa_), - _cWc_=caml_call2(Runtime_ocaml_Runtime[83],_cWb_,_cV$_); - return caml_call2(Runtime_ocaml_Runtime[29],_aR_,_cWc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_aS_,[0],_cV7_,_cV6_)}, - _cUz_= - function(param) - {function _cVJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025)} - function _cVK_(param) - {var - _cVL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aT_), - _cVM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aU_), - _cVN_=caml_call2(Runtime_ocaml_Runtime[84],_cVM_,_cVL_), - _cVO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aV_), - _cVP_=caml_call2(Runtime_ocaml_Runtime[84],_cVO_,_cVN_), - _cVQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aW_), - _cVR_=caml_call2(Runtime_ocaml_Runtime[84],_cVQ_,_cVP_), - _cVS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aX_), - _cVT_=caml_call2(Runtime_ocaml_Runtime[84],_cVS_,_cVR_), - _cVU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aY_), - _cVV_=caml_call2(Runtime_ocaml_Runtime[84],_cVU_,_cVT_), - _cVW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_aZ_), - _cVX_=caml_call2(Runtime_ocaml_Runtime[84],_cVW_,_cVV_), - _cVY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a0_), - _cVZ_=caml_call2(Runtime_ocaml_Runtime[84],_cVY_,_cVX_), - _cV0_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cV1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cV0_), - _cV2_=caml_call2(Runtime_ocaml_Runtime[83],_cV1_,_cVZ_), - _cV3_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cV4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cV3_), - _cV5_=caml_call2(Runtime_ocaml_Runtime[83],_cV4_,_cV2_); - return caml_call2(Runtime_ocaml_Runtime[29],_a1_,_cV5_)} - return caml_call4(Runtime_ocaml_Runtime[63],_a2_,[0],_cVK_,_cVJ_)}, - _cUA_= - function(param) - {function _cVA_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_766)} - function _cVB_(param) - {var - _cVC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a3_), - _cVD_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cVE_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cVD_), - _cVF_=caml_call2(Runtime_ocaml_Runtime[83],_cVE_,_cVC_), - _cVG_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cVH_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVG_), - _cVI_=caml_call2(Runtime_ocaml_Runtime[83],_cVH_,_cVF_); - return caml_call2(Runtime_ocaml_Runtime[29],_a4_,_cVI_)} - return caml_call4(Runtime_ocaml_Runtime[63],_a5_,[0],_cVB_,_cVA_)}, - _cUB_= - function(param) - {function _cVd_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015)} - function _cVe_(param) - {var - _cVf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a6_), - _cVg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a7_), - _cVh_=caml_call2(Runtime_ocaml_Runtime[84],_cVg_,_cVf_), - _cVi_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a8_), - _cVj_=caml_call2(Runtime_ocaml_Runtime[84],_cVi_,_cVh_), - _cVk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a9_), - _cVl_=caml_call2(Runtime_ocaml_Runtime[84],_cVk_,_cVj_), - _cVm_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a__), - _cVn_=caml_call2(Runtime_ocaml_Runtime[84],_cVm_,_cVl_), - _cVo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_a$_), - _cVp_=caml_call2(Runtime_ocaml_Runtime[84],_cVo_,_cVn_), - _cVq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ba_), - _cVr_=caml_call2(Runtime_ocaml_Runtime[84],_cVq_,_cVp_), - _cVs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bb_), - _cVt_=caml_call2(Runtime_ocaml_Runtime[84],_cVs_,_cVr_), - _cVu_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cVv_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cVu_), - _cVw_=caml_call2(Runtime_ocaml_Runtime[83],_cVv_,_cVt_), - _cVx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cVy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVx_), - _cVz_=caml_call2(Runtime_ocaml_Runtime[83],_cVy_,_cVw_); - return caml_call2(Runtime_ocaml_Runtime[29],_bc_,_cVz_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bd_,[0],_cVe_,_cVd_)}, - _cUC_= - function(param) - {function _cU6_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_757)} - function _cU7_(param) - {var - _cU8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_be_), - _cU9_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cU__= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cU9_), - _cU$_=caml_call2(Runtime_ocaml_Runtime[83],_cU__,_cU8_), - _cVa_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cVb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cVa_), - _cVc_=caml_call2(Runtime_ocaml_Runtime[83],_cVb_,_cU$_); - return caml_call2(Runtime_ocaml_Runtime[29],_bf_,_cVc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bg_,[0],_cU7_,_cU6_)}, - _cUD_= + x$1 = x[1], + _Ln_ = [0, - function(param) - {function _cUJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003)} - function _cUK_(param) - {var - _cUL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bh_), - _cUM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bi_), - _cUN_=caml_call2(Runtime_ocaml_Runtime[84],_cUM_,_cUL_), - _cUO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bj_), - _cUP_=caml_call2(Runtime_ocaml_Runtime[84],_cUO_,_cUN_), - _cUQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bk_), - _cUR_=caml_call2(Runtime_ocaml_Runtime[84],_cUQ_,_cUP_), - _cUS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bl_), - _cUT_=caml_call2(Runtime_ocaml_Runtime[84],_cUS_,_cUR_), - _cUU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bm_), - _cUV_=caml_call2(Runtime_ocaml_Runtime[84],_cUU_,_cUT_), - _cUW_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bn_), - _cUX_=caml_call2(Runtime_ocaml_Runtime[84],_cUW_,_cUV_), - _cUY_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bo_), - _cUZ_=caml_call2(Runtime_ocaml_Runtime[84],_cUY_,_cUX_), - _cU0_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cU1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cU0_), - _cU2_=caml_call2(Runtime_ocaml_Runtime[83],_cU1_,_cUZ_), - _cU3_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cU4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cU3_), - _cU5_=caml_call2(Runtime_ocaml_Runtime[83],_cU4_,_cU2_); - return caml_call2(Runtime_ocaml_Runtime[29],_bp_,_cU5_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bq_,[0],_cUK_,_cUJ_)}, - _cUC_, - _cUB_, - _cUA_, - _cUz_, - _cUy_, - _cUx_, - _cUw_, - _cUv_, - _cUu_, - _cUt_, - _cUs_, - _cUr_, - _cUq_], - _cUE_=caml_call4(Runtime_ocaml_Runtime[63],_br_,_cUD_,_cUp_,_cUo_)} - catch(_cUI_) - {_cUI_ = caml_wrap_exception(_cUI_); - if(_cUI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R_]; - throw _cUI_} - var - brut_horaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_bs_,Runtime_ocaml_Runtime[13],_cUE_); - try - {var - _cUF_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cUG_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUF_)} - catch(_cUH_) - {_cUH_ = caml_wrap_exception(_cUH_); - if(_cUH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bt_]; - throw _cUH_} - if(_cUG_)return [0,brut_horaire]; - throw [0,Runtime_ocaml_Runtime[3],_bu_]} - function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam) - {var date_courante=base_mensuelle_allocations_fam[1]; - try - {var - _cTQ_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cTR_=function(param){return 0}, - _cTS_= - function(param) - {function _cUk_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228)} - function _cUl_(param) - {var - _cUm_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _cUn_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUm_); - return caml_call2(Runtime_ocaml_Runtime[29],_bw_,_cUn_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bx_,[0],_cUl_,_cUk_)}, - _cTT_= - function(param) - {function _cUd_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481)} - function _cUe_(param) - {var - _cUf_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _cUg_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cUf_), - _cUh_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _cUi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUh_), - _cUj_=caml_call2(Runtime_ocaml_Runtime[83],_cUi_,_cUg_); - return caml_call2(Runtime_ocaml_Runtime[29],_by_,_cUj_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bz_,[0],_cUe_,_cUd_)}, - _cTU_= - function(param) - {function _cT8_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440)} - function _cT9_(param) - {var - _cT__=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _cT$_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cT__), - _cUa_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _cUb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cUa_), - _cUc_=caml_call2(Runtime_ocaml_Runtime[83],_cUb_,_cT$_); - return caml_call2(Runtime_ocaml_Runtime[29],_bA_,_cUc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bB_,[0],_cT9_,_cT8_)}, - _cTV_= + cst_GardeAltern_eAllocataireUn, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Ln_ = [0, - function(param) - {function _cT1_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316)} - function _cT2_(param) - {var - _cT3_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _cT4_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cT3_), - _cT5_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _cT6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cT5_), - _cT7_=caml_call2(Runtime_ocaml_Runtime[83],_cT6_,_cT4_); - return caml_call2(Runtime_ocaml_Runtime[29],_bC_,_cT7_)} - return caml_call4(Runtime_ocaml_Runtime[63],_bD_,[0],_cT2_,_cT1_)}, - _cTU_, - _cTT_, - _cTS_], - _cTW_=caml_call4(Runtime_ocaml_Runtime[63],_bE_,_cTV_,_cTR_,_cTQ_)} - catch(_cT0_) - {_cT0_ = caml_wrap_exception(_cT0_); - if(_cT0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bv_]; - throw _cT0_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_bF_,Runtime_ocaml_Runtime[13],_cTW_); - try - {var - _cTX_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _cTY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cTX_)} - catch(_cTZ_) - {_cTZ_ = caml_wrap_exception(_cTZ_); - if(_cTZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bG_]; - throw _cTZ_} - if(_cTY_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_bH_]} - function prestations_familiales(prestations_familiales_in) - {var - date_courante=prestations_familiales_in[1], - residence=prestations_familiales_in[3]; - try - {var - _cSt_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)}, - _cSu_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bJ_,1)}, - _cSv_=caml_call4(Runtime_ocaml_Runtime[63],_bK_,[0],_cSu_,_cSt_)} - catch(_cTP_) - {_cTP_ = caml_wrap_exception(_cTP_); - if(_cTP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bI_]; - throw _cTP_} - var - age_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_bL_,Runtime_ocaml_Runtime[17],_cSv_); - try - {var - _cSw_=function(param){return date_courante}, - _cSx_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bN_,1)}, - _cSy_=caml_call4(Runtime_ocaml_Runtime[63],_bO_,[0],_cSx_,_cSw_), - smic_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_bP_,Runtime_ocaml_Runtime[16],_cSy_)} - catch(_cTO_) - {_cTO_ = caml_wrap_exception(_cTO_); - if(_cTO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bM_]; - throw _cTO_} - try - {var - _cSz_=function(param){return residence}, - _cSA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bR_,1)}, - _cSB_=caml_call4(Runtime_ocaml_Runtime[63],_bS_,[0],_cSA_,_cSz_), - smic_dot_residence= - caml_call3(Runtime_ocaml_Runtime[28],_bT_,embed_collectivite,_cSB_)} - catch(_cTN_) - {_cTN_ = caml_wrap_exception(_cTN_); - if(_cTN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bQ_]; - throw _cTN_} - var - _cSC_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_bU_,smic), - [0,smic_dot_date_courante,smic_dot_residence]), - result=caml_call2(Runtime_ocaml_Runtime[27],_bV_,_cSC_), - smic_dot_brut_horaire=result[1]; - try - {var - _cSD_=function(param){return 0}, - _cSE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_bX_,1)}, - _cSF_= + cst_EffectiveEtPermanente, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Ln_ = [0, - function(param) - {function _cTA_(param){return 1} - function _cTB_(param) - {var - _cTC_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bY_), - _cTD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_bZ_), - _cTE_=caml_call2(Runtime_ocaml_Runtime[84],_cTD_,_cTC_), - _cTF_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b0_), - _cTG_=caml_call2(Runtime_ocaml_Runtime[84],_cTF_,_cTE_), - _cTH_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b1_), - _cTI_=caml_call2(Runtime_ocaml_Runtime[84],_cTH_,_cTG_), - _cTJ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b2_), - _cTK_=caml_call2(Runtime_ocaml_Runtime[84],_cTJ_,_cTI_), - _cTL_=caml_call2(Runtime_ocaml_Runtime[86],residence,_b3_), - _cTM_=caml_call2(Runtime_ocaml_Runtime[84],_cTL_,_cTK_); - return caml_call2(Runtime_ocaml_Runtime[29],_b4_,_cTM_)} - return caml_call4(Runtime_ocaml_Runtime[63],_b5_,[0],_cTB_,_cTA_)}], - _cSG_=caml_call4(Runtime_ocaml_Runtime[63],_b6_,_cSF_,_cSE_,_cSD_)} - catch(_cTz_) - {_cTz_ = caml_wrap_exception(_cTz_); - if(_cTz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_bW_]; - throw _cTz_} - var - regime_outre_mer_l751_1= + cst_ServicesSociauxAllocationV, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _Ln_ = + [0, + cst_ServicesSociauxAllocationV$0, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _a_, _Ln_]; + } + var SituationObligationScolaire = [0]; + function embed_situation_obligation_sco(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Lm_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Lm_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _Lm_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _b_, _Lm_]; + } + var PriseEnCompte = [0]; + function embed_prise_en_compte(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Ll_ = [0, cst_Compl_te, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Ll_ = [0, cst_Partag_e, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _Ll_ = [0, cst_Z_ro, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _c_, _Ll_]; + } + var VersementAllocations = [0]; + function embed_versement_allocations(x){ + if(0 === x[0]) + var + x$0 = x[1], + _Lk_ = [0, cst_Normal, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _Lk_ = + [0, + cst_AllocationVers_eAuxService, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _d_, _Lk_]; + } + var ElementPrestationsFamiliales = [0]; + function embed_element_prestations_fami(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Lj_ = + [0, + cst_PrestationAccueilJeuneEnfa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Lj_ = + [0, + cst_AllocationsFamiliales, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Lj_ = + [0, + cst_Compl_mentFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Lj_ = + [0, + cst_AllocationLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _Lj_ = + [0, + cst_Allocation_ducationEnfantH, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _Lj_ = + [0, + cst_AllocationSoutienFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _Lj_ = + [0, + cst_AllocationRentr_eScolaire, + caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + default: + var + x$7 = x[1], + _Lj_ = + [0, + cst_AllocationJournali_rePrese, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + } + return [6, _e_, _Lj_]; + } + var Collectivite = [0]; + function embed_collectivite(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _Li_ = [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _Li_ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _Li_ = [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _Li_ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _Li_ = + [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _Li_ = + [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _Li_ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + case 7: + var + x$7 = x[1], + _Li_ = + [0, + cst_SaintPierreEtMiquelon, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + break; + default: + var + x$8 = x[1], + _Li_ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; + } + return [6, _f_, _Li_]; + } + var AllocationFamilialesAvril2008 = [0]; + function embed_allocation_familiales_av(x){ + return [7, + _g_, + [0, + [0, + cst_ge_minimum_alin_a_1_l521_3, + caml_call1(Runtime_ocaml_Runtime[17], x[1])], + 0]]; + } + var AllocationsFamiliales = [0]; + function embed_allocations_familiales(x){ + return [7, + _h_, + [0, + [0, + cst_montant_vers, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal = [0]; + function embed_verification_age_inferie(x){ + return [7, + _i_, + [0, + [0, + cst_est_inf_rieur_ou_gal, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var VerificationAgeSuperieurA = [0]; + function embed_verification_age_superie(x){ + return [7, + _j_, + [0, + [0, + cst_est_sup_rieur, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var Smic = [0]; + function embed_smic(x){ + return [7, + _k_, + [0, + [0, + cst_brut_horaire, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var BaseMensuelleAllocationsFamili = [0]; + function embed_base_mensuelle_allocatio(x){ + return [7, + _l_, + [0, + [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var InterfaceAllocationsFamiliales = [0]; + function embed_interface_allocations_fa(x){ + return [7, + _m_, + [0, + [0, + cst_i_montant_vers, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var EnfantEntree = [0]; + function embed_enfant_entree(x){ + var + _Ld_ = + [0, + [0, + cst_d_b_n_ficie_titre_personne, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + 0], + _Le_ = + [0, + [0, + cst_d_a_d_j_ouvert_droit_aux_a, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _Ld_], + _Lf_ = [0, [0, cst_d_prise_en_charge, embed_prise_en_charge(x[4])], _Le_], + _Lg_ = + [0, + [0, + cst_d_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _Lf_], + _Lh_ = + [0, + [0, + cst_d_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _Lg_]; + return [7, + _n_, + [0, + [0, + cst_d_identifiant, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _Lh_]]; + } + var Enfant = [0]; + function embed_enfant(x){ + var + _K9_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _K__ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _K9_], + _K$_ = [0, [0, cst_prise_en_charge, embed_prise_en_charge(x[5])], _K__], + _La_ = + [0, + [0, + cst_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _K$_], + _Lb_ = + [0, + [0, + cst_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _La_], + _Lc_ = + [0, + [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], + _Lb_]; + return [7, + _o_, + [0, + [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _Lc_]]; + } + var EnfantLePlusAge = [0]; + function embed_enfant_le_plus_age(x){ + return [7, _p_, [0, [0, cst_le_plus_g, embed_enfant(x[1])], 0]]; + } + var PrestationsFamiliales = [0]; + function embed_prestations_familiales(x){ + var + _K6_ = + [0, + [0, + cst_r_gime_outre_mer_l751_1, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _K7_ = + [0, + [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + _K6_], + _K8_ = + [0, + [0, + cst_conditions_hors_ge, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + _K7_]; + return [7, + _q_, + [0, + [0, + cst_droit_ouvert, + caml_call1(Runtime_ocaml_Runtime[10], x[1])], + _K8_]]; + } + var PrestationsFamilialesIn = [0]; + function embed_prestations_familiales_i(x){ + var + _K4_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[3])], 0], + _K5_ = + [0, + [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], + _K4_]; + return [7, + _r_, + [0, + [0, + cst_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _K5_]]; + } + var AllocationFamilialesAvril2008I = [0]; + function embed_allocation_familiales_av$0(param){return 0;} + var EnfantLePlusAgeIn = [0]; + function embed_enfant_le_plus_age_in(x){ + return [7, + _s_, + [0, + [0, + cst_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[1])], + 0]]; + } + var AllocationsFamilialesIn = [0]; + function embed_allocations_familiales_i(x){ + var + _KY_ = + [0, + [0, + cst_avait_enfant_charge_avant_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _KZ_ = + [0, + [0, + cst_enfants_charge_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant, x[6])], + _KY_], + _K0_ = + [0, + [0, + cst_date_courante_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _KZ_], + _K1_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _K0_], + _K2_ = + [0, + [0, + cst_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _K1_], + _K3_ = + [0, + [0, + cst_personne_charge_effective_, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _K2_]; + return [7, + _t_, + [0, + [0, + cst_personne_charge_effective_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _K3_]]; + } + var VerificationAgeInferieurOuEgal$0 = [0]; + function embed_verification_age_inferie$0(x){ + var + _KW_ = + [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], + _KX_ = + [0, + [0, + cst_date_courante_in$1, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _KW_]; + return [7, + _u_, + [0, + [0, + cst_date_naissance_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KX_]]; + } + var VerificationAgeSuperieurAIn = [0]; + function embed_verification_age_superie$0(x){ + var + _KU_ = + [0, + [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + 0], + _KV_ = + [0, + [0, + cst_date_courante_in$2, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _KU_]; + return [7, + _v_, + [0, + [0, + cst_date_naissance_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KV_]]; + } + var SmicIn = [0]; + function embed_smic_in(x){ + var _KT_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[2])], 0]; + return [7, + _w_, + [0, + [0, + cst_date_courante_in$3, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KT_]]; + } + var BaseMensuelleAllocationsFamili$0 = [0]; + function embed_base_mensuelle_allocatio$0(x){ + return [7, + _x_, + [0, + [0, + cst_date_courante_in$4, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var InterfaceAllocationsFamiliales$0 = [0]; + function embed_interface_allocations_fa$0(x){ + var + _KN_ = + [0, + [0, + cst_i_avait_enfant_charge_avan, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _KO_ = + [0, + [0, + cst_i_personne_charge_effectiv, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _KN_], + _KP_ = + [0, + [0, + cst_i_personne_charge_effectiv$0, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _KO_], + _KQ_ = [0, [0, cst_i_r_sidence_in, embed_collectivite(x[4])], _KP_], + _KR_ = + [0, + [0, + cst_i_ressources_m_nage_in, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _KQ_], + _KS_ = + [0, + [0, + cst_i_enfants_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_enfant_entree, x[2])], + _KR_]; + return [7, + _y_, + [0, + [0, + cst_i_date_courante_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _KS_]]; + } + function allocation_familiales_avril200(allocation_familiales_avril200){ + try{ + var + _KJ_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0); + }, + _KK_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _A_, 1);}, + _KL_ = caml_call4(Runtime_ocaml_Runtime[63], _B_, [0], _KK_, _KJ_); + } + catch(_KM_){ + var _KI_ = caml_wrap_exception(_KM_); + if(_KI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _z_], 1); + throw caml_maybe_attach_backtrace(_KI_, 0); + } + var + age_minimum_alinea_1_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _C_, Runtime_ocaml_Runtime[17], _KL_); + return [0, age_minimum_alinea_1_l521_3]; + } + function enfant_le_plus_age(enfant_le_plus_age_in){ + var enfants = enfant_le_plus_age_in[1]; + try{ + var + _KA_ = + function(param){ + var + _KE_ = caml_call3(Runtime_ocaml_Runtime[57], 2999, 12, 31), + _KF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0), + _KG_ = + [0, + caml_call1(Runtime_ocaml_Runtime[46], cst_1), + _F_, + _KF_, + _KE_, + _E_, + 0, + 0]; + function _KH_(potentiel_plus_age_1, potentiel_plus_age_2){ + return caml_call2 + (Runtime_ocaml_Runtime[115], + potentiel_plus_age_1[4], + potentiel_plus_age_2[4]) + ? potentiel_plus_age_1 + : potentiel_plus_age_2; + } + return caml_call3(Runtime_ocaml_Runtime[88], _KH_, _KG_, enfants); + }, + _KB_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _G_, 1);}, + _KC_ = caml_call4(Runtime_ocaml_Runtime[63], _H_, [0], _KB_, _KA_); + } + catch(_KD_){ + var _Kz_ = caml_wrap_exception(_KD_); + if(_Kz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _D_], 1); + throw caml_maybe_attach_backtrace(_Kz_, 0); + } + var + le_plus_age = + caml_call3(Runtime_ocaml_Runtime[28], _I_, embed_enfant, _KC_); + return [0, le_plus_age]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ + var + date_naissance = verification_age_inferieur_ou_[1], + date_courante = verification_age_inferieur_ou_[2], + annees = verification_age_inferieur_ou_[3]; + try{ + var + _Ku_ = + function(param){ + var + _Ky_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[120], _Ky_, date_courante); + }, + _Kv_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _K_, 1);}, + _Kw_ = caml_call4(Runtime_ocaml_Runtime[63], _L_, [0], _Kv_, _Ku_); + } + catch(_Kx_){ + var _Kt_ = caml_wrap_exception(_Kx_); + if(_Kt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _J_], 1); + throw caml_maybe_attach_backtrace(_Kt_, 0); + } + var + est_inferieur_ou_egal = + caml_call3 + (Runtime_ocaml_Runtime[28], _M_, Runtime_ocaml_Runtime[12], _Kw_); + return [0, est_inferieur_ou_egal]; + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + date_naissance = verification_age_superieur_a_i[1], + date_courante = verification_age_superieur_a_i[2], + annees = verification_age_superieur_a_i[3]; + try{ + var + _Ko_ = + function(param){ + var + _Ks_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[125], _Ks_, date_courante); + }, + _Kp_ = + function(param){return caml_call2(Runtime_ocaml_Runtime[29], _O_, 1);}, + _Kq_ = caml_call4(Runtime_ocaml_Runtime[63], _P_, [0], _Kp_, _Ko_); + } + catch(_Kr_){ + var _Kn_ = caml_wrap_exception(_Kr_); + if(_Kn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _N_], 1); + throw caml_maybe_attach_backtrace(_Kn_, 0); + } + var + est_superieur = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q_, Runtime_ocaml_Runtime[12], _Kq_); + return [0, est_superieur]; + } + function smic(smic_in){ + var date_courante = smic_in[1], residence = smic_in[2]; + try{ + var + _GD_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _GE_ = function(param){return 0;}, + _GF_ = + function(param){ + function _Kh_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_851); + } + function _Ki_(param){ + var + _Kj_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _S_), + _Kk_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _Kl_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Kk_), + _Km_ = caml_call2(Runtime_ocaml_Runtime[83], _Kl_, _Kj_); + return caml_call2(Runtime_ocaml_Runtime[29], _T_, _Km_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _U_, [0], _Ki_, _Kh_); + }, + _GG_ = + function(param){ + function _JZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); + } + function _J0_(param){ + var + _J1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _V_), + _J2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _W_), + _J3_ = caml_call2(Runtime_ocaml_Runtime[84], _J2_, _J1_), + _J4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _X_), + _J5_ = caml_call2(Runtime_ocaml_Runtime[84], _J4_, _J3_), + _J6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Y_), + _J7_ = caml_call2(Runtime_ocaml_Runtime[84], _J6_, _J5_), + _J8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _Z_), + _J9_ = caml_call2(Runtime_ocaml_Runtime[84], _J8_, _J7_), + _J__ = caml_call2(Runtime_ocaml_Runtime[86], residence, ___), + _J$_ = caml_call2(Runtime_ocaml_Runtime[84], _J__, _J9_), + _Ka_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _$_), + _Kb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ka_, _J$_), + _Kc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aa_), + _Kd_ = caml_call2(Runtime_ocaml_Runtime[84], _Kc_, _Kb_), + _Ke_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _Kf_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ke_), + _Kg_ = caml_call2(Runtime_ocaml_Runtime[83], _Kf_, _Kd_); + return caml_call2(Runtime_ocaml_Runtime[29], _ab_, _Kg_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ac_, [0], _J0_, _JZ_); + }, + _GH_ = + function(param){ + function _JQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_835); + } + function _JR_(param){ + var + _JS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ad_), + _JT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _JU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JT_), + _JV_ = caml_call2(Runtime_ocaml_Runtime[83], _JU_, _JS_), + _JW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _JX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JW_), + _JY_ = caml_call2(Runtime_ocaml_Runtime[83], _JX_, _JV_); + return caml_call2(Runtime_ocaml_Runtime[29], _ae_, _JY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _af_, [0], _JR_, _JQ_); + }, + _GI_ = + function(param){ + function _Jt_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); + } + function _Ju_(param){ + var + _Jv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ag_), + _Jw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ah_), + _Jx_ = caml_call2(Runtime_ocaml_Runtime[84], _Jw_, _Jv_), + _Jy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ai_), + _Jz_ = caml_call2(Runtime_ocaml_Runtime[84], _Jy_, _Jx_), + _JA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aj_), + _JB_ = caml_call2(Runtime_ocaml_Runtime[84], _JA_, _Jz_), + _JC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ak_), + _JD_ = caml_call2(Runtime_ocaml_Runtime[84], _JC_, _JB_), + _JE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _al_), + _JF_ = caml_call2(Runtime_ocaml_Runtime[84], _JE_, _JD_), + _JG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _am_), + _JH_ = caml_call2(Runtime_ocaml_Runtime[84], _JG_, _JF_), + _JI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _an_), + _JJ_ = caml_call2(Runtime_ocaml_Runtime[84], _JI_, _JH_), + _JK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _JL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _JK_), + _JM_ = caml_call2(Runtime_ocaml_Runtime[83], _JL_, _JJ_), + _JN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _JO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _JN_), + _JP_ = caml_call2(Runtime_ocaml_Runtime[83], _JO_, _JM_); + return caml_call2(Runtime_ocaml_Runtime[29], _ao_, _JP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ap_, [0], _Ju_, _Jt_); + }, + _GJ_ = + function(param){ + function _Jk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_819); + } + function _Jl_(param){ + var + _Jm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aq_), + _Jn_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _Jo_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Jn_), + _Jp_ = caml_call2(Runtime_ocaml_Runtime[83], _Jo_, _Jm_), + _Jq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _Jr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jq_), + _Js_ = caml_call2(Runtime_ocaml_Runtime[83], _Jr_, _Jp_); + return caml_call2(Runtime_ocaml_Runtime[29], _ar_, _Js_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _as_, [0], _Jl_, _Jk_); + }, + _GK_ = + function(param){ + function _IZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); + } + function _I0_(param){ + var + _I1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _at_), + _I2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _au_), + _I3_ = caml_call2(Runtime_ocaml_Runtime[84], _I2_, _I1_), + _I4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _av_), + _I5_ = caml_call2(Runtime_ocaml_Runtime[84], _I4_, _I3_), + _I6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aw_), + _I7_ = caml_call2(Runtime_ocaml_Runtime[84], _I6_, _I5_), + _I8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ax_), + _I9_ = caml_call2(Runtime_ocaml_Runtime[84], _I8_, _I7_), + _I__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ay_), + _I$_ = caml_call2(Runtime_ocaml_Runtime[84], _I__, _I9_), + _Ja_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _az_), + _Jb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ja_, _I$_), + _Jc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aA_), + _Jd_ = caml_call2(Runtime_ocaml_Runtime[84], _Jc_, _Jb_), + _Je_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _Jf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Je_), + _Jg_ = caml_call2(Runtime_ocaml_Runtime[83], _Jf_, _Jd_), + _Jh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _Ji_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Jh_), + _Jj_ = caml_call2(Runtime_ocaml_Runtime[83], _Ji_, _Jg_); + return caml_call2(Runtime_ocaml_Runtime[29], _aB_, _Jj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aC_, [0], _I0_, _IZ_); + }, + _GL_ = + function(param){ + function _IQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_798); + } + function _IR_(param){ + var + _IS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aD_), + _IT_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _IU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IT_), + _IV_ = caml_call2(Runtime_ocaml_Runtime[83], _IU_, _IS_), + _IW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _IX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IW_), + _IY_ = caml_call2(Runtime_ocaml_Runtime[83], _IX_, _IV_); + return caml_call2(Runtime_ocaml_Runtime[29], _aE_, _IY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aF_, [0], _IR_, _IQ_); + }, + _GM_ = + function(param){ + function _It_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); + } + function _Iu_(param){ + var + _Iv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aG_), + _Iw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aH_), + _Ix_ = caml_call2(Runtime_ocaml_Runtime[84], _Iw_, _Iv_), + _Iy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aI_), + _Iz_ = caml_call2(Runtime_ocaml_Runtime[84], _Iy_, _Ix_), + _IA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aJ_), + _IB_ = caml_call2(Runtime_ocaml_Runtime[84], _IA_, _Iz_), + _IC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aK_), + _ID_ = caml_call2(Runtime_ocaml_Runtime[84], _IC_, _IB_), + _IE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aL_), + _IF_ = caml_call2(Runtime_ocaml_Runtime[84], _IE_, _ID_), + _IG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aM_), + _IH_ = caml_call2(Runtime_ocaml_Runtime[84], _IG_, _IF_), + _II_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aN_), + _IJ_ = caml_call2(Runtime_ocaml_Runtime[84], _II_, _IH_), + _IK_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _IL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _IK_), + _IM_ = caml_call2(Runtime_ocaml_Runtime[83], _IL_, _IJ_), + _IN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _IO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _IN_), + _IP_ = caml_call2(Runtime_ocaml_Runtime[83], _IO_, _IM_); + return caml_call2(Runtime_ocaml_Runtime[29], _aO_, _IP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aP_, [0], _Iu_, _It_); + }, + _GN_ = + function(param){ + function _Ik_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774); + } + function _Il_(param){ + var + _Im_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aQ_), + _In_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _Io_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _In_), + _Ip_ = caml_call2(Runtime_ocaml_Runtime[83], _Io_, _Im_), + _Iq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Ir_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Iq_), + _Is_ = caml_call2(Runtime_ocaml_Runtime[83], _Ir_, _Ip_); + return caml_call2(Runtime_ocaml_Runtime[29], _aR_, _Is_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _aS_, [0], _Il_, _Ik_); + }, + _GO_ = + function(param){ + function _HZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); + } + function _H0_(param){ + var + _H1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aT_), + _H2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aU_), + _H3_ = caml_call2(Runtime_ocaml_Runtime[84], _H2_, _H1_), + _H4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aV_), + _H5_ = caml_call2(Runtime_ocaml_Runtime[84], _H4_, _H3_), + _H6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aW_), + _H7_ = caml_call2(Runtime_ocaml_Runtime[84], _H6_, _H5_), + _H8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aX_), + _H9_ = caml_call2(Runtime_ocaml_Runtime[84], _H8_, _H7_), + _H__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aY_), + _H$_ = caml_call2(Runtime_ocaml_Runtime[84], _H__, _H9_), + _Ia_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _aZ_), + _Ib_ = caml_call2(Runtime_ocaml_Runtime[84], _Ia_, _H$_), + _Ic_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a0_), + _Id_ = caml_call2(Runtime_ocaml_Runtime[84], _Ic_, _Ib_), + _Ie_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _If_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Ie_), + _Ig_ = caml_call2(Runtime_ocaml_Runtime[83], _If_, _Id_), + _Ih_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Ii_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ih_), + _Ij_ = caml_call2(Runtime_ocaml_Runtime[83], _Ii_, _Ig_); + return caml_call2(Runtime_ocaml_Runtime[29], _a1_, _Ij_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _a2_, [0], _H0_, _HZ_); + }, + _GP_ = + function(param){ + function _HQ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_766); + } + function _HR_(param){ + var + _HS_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a3_), + _HT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _HU_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HT_), + _HV_ = caml_call2(Runtime_ocaml_Runtime[83], _HU_, _HS_), + _HW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _HX_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HW_), + _HY_ = caml_call2(Runtime_ocaml_Runtime[83], _HX_, _HV_); + return caml_call2(Runtime_ocaml_Runtime[29], _a4_, _HY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _a5_, [0], _HR_, _HQ_); + }, + _GQ_ = + function(param){ + function _Ht_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); + } + function _Hu_(param){ + var + _Hv_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a6_), + _Hw_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a7_), + _Hx_ = caml_call2(Runtime_ocaml_Runtime[84], _Hw_, _Hv_), + _Hy_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a8_), + _Hz_ = caml_call2(Runtime_ocaml_Runtime[84], _Hy_, _Hx_), + _HA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a9_), + _HB_ = caml_call2(Runtime_ocaml_Runtime[84], _HA_, _Hz_), + _HC_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a__), + _HD_ = caml_call2(Runtime_ocaml_Runtime[84], _HC_, _HB_), + _HE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _a$_), + _HF_ = caml_call2(Runtime_ocaml_Runtime[84], _HE_, _HD_), + _HG_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ba_), + _HH_ = caml_call2(Runtime_ocaml_Runtime[84], _HG_, _HF_), + _HI_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bb_), + _HJ_ = caml_call2(Runtime_ocaml_Runtime[84], _HI_, _HH_), + _HK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _HL_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _HK_), + _HM_ = caml_call2(Runtime_ocaml_Runtime[83], _HL_, _HJ_), + _HN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _HO_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _HN_), + _HP_ = caml_call2(Runtime_ocaml_Runtime[83], _HO_, _HM_); + return caml_call2(Runtime_ocaml_Runtime[29], _bc_, _HP_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bd_, [0], _Hu_, _Ht_); + }, + _GR_ = + function(param){ + function _Hk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_757); + } + function _Hl_(param){ + var + _Hm_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _be_), + _Hn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Ho_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Hn_), + _Hp_ = caml_call2(Runtime_ocaml_Runtime[83], _Ho_, _Hm_), + _Hq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Hr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hq_), + _Hs_ = caml_call2(Runtime_ocaml_Runtime[83], _Hr_, _Hp_); + return caml_call2(Runtime_ocaml_Runtime[29], _bf_, _Hs_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bg_, [0], _Hl_, _Hk_); + }, + _GS_ = + [0, + function(param){ + function _GZ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); + } + function _G0_(param){ + var + _G1_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bh_), + _G2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bi_), + _G3_ = caml_call2(Runtime_ocaml_Runtime[84], _G2_, _G1_), + _G4_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bj_), + _G5_ = caml_call2(Runtime_ocaml_Runtime[84], _G4_, _G3_), + _G6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bk_), + _G7_ = caml_call2(Runtime_ocaml_Runtime[84], _G6_, _G5_), + _G8_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bl_), + _G9_ = caml_call2(Runtime_ocaml_Runtime[84], _G8_, _G7_), + _G__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bm_), + _G$_ = caml_call2(Runtime_ocaml_Runtime[84], _G__, _G9_), + _Ha_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bn_), + _Hb_ = caml_call2(Runtime_ocaml_Runtime[84], _Ha_, _G$_), + _Hc_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bo_), + _Hd_ = caml_call2(Runtime_ocaml_Runtime[84], _Hc_, _Hb_), + _He_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Hf_ = caml_call2(Runtime_ocaml_Runtime[120], date_courante, _He_), + _Hg_ = caml_call2(Runtime_ocaml_Runtime[83], _Hf_, _Hd_), + _Hh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Hi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Hh_), + _Hj_ = caml_call2(Runtime_ocaml_Runtime[83], _Hi_, _Hg_); + return caml_call2(Runtime_ocaml_Runtime[29], _bp_, _Hj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bq_, [0], _G0_, _GZ_); + }, + _GR_, + _GQ_, + _GP_, + _GO_, + _GN_, + _GM_, + _GL_, + _GK_, + _GJ_, + _GI_, + _GH_, + _GG_, + _GF_], + _GT_ = caml_call4(Runtime_ocaml_Runtime[63], _br_, _GS_, _GE_, _GD_); + } + catch(_GY_){ + var _GC_ = caml_wrap_exception(_GY_); + if(_GC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[8], _R_], 1); + throw caml_maybe_attach_backtrace(_GC_, 0); + } + var + brut_horaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _bs_, Runtime_ocaml_Runtime[13], _GT_); + try{ + var + _GV_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _GW_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GV_); + } + catch(_GX_){ + var _GU_ = caml_wrap_exception(_GX_); + if(_GU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bt_], 1); + throw caml_maybe_attach_backtrace(_GU_, 0); + } + if(_GW_) return [0, brut_horaire]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bu_], 1); + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + var date_courante = base_mensuelle_allocations_fam[1]; + try{ + var + _F3_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _F4_ = function(param){return 0;}, + _F5_ = + function(param){ + function _Gy_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); + } + function _Gz_(param){ + var + _GA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _GB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _GA_); + return caml_call2(Runtime_ocaml_Runtime[29], _bw_, _GB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bx_, [0], _Gz_, _Gy_); + }, + _F6_ = + function(param){ + function _Gr_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); + } + function _Gs_(param){ + var + _Gt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _Gu_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gt_), + _Gv_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _Gw_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gv_), + _Gx_ = caml_call2(Runtime_ocaml_Runtime[83], _Gw_, _Gu_); + return caml_call2(Runtime_ocaml_Runtime[29], _by_, _Gx_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _Gs_, _Gr_); + }, + _F7_ = + function(param){ + function _Gk_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); + } + function _Gl_(param){ + var + _Gm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _Gn_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gm_), + _Go_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _Gp_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Go_), + _Gq_ = caml_call2(Runtime_ocaml_Runtime[83], _Gp_, _Gn_); + return caml_call2(Runtime_ocaml_Runtime[29], _bA_, _Gq_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bB_, [0], _Gl_, _Gk_); + }, + _F8_ = + [0, + function(param){ + function _Gd_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); + } + function _Ge_(param){ + var + _Gf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _Gg_ = caml_call2(Runtime_ocaml_Runtime[115], date_courante, _Gf_), + _Gh_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _Gi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Gh_), + _Gj_ = caml_call2(Runtime_ocaml_Runtime[83], _Gi_, _Gg_); + return caml_call2(Runtime_ocaml_Runtime[29], _bC_, _Gj_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bD_, [0], _Ge_, _Gd_); + }, + _F7_, + _F6_, + _F5_], + _F9_ = caml_call4(Runtime_ocaml_Runtime[63], _bE_, _F8_, _F4_, _F3_); + } + catch(_Gc_){ + var _F2_ = caml_wrap_exception(_Gc_); + if(_F2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bv_], 1); + throw caml_maybe_attach_backtrace(_F2_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bF_, Runtime_ocaml_Runtime[13], _F9_); + try{ + var + _F$_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _Ga_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _F$_); + } + catch(_Gb_){ + var _F__ = caml_wrap_exception(_Gb_); + if(_F__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bG_], 1); + throw caml_maybe_attach_backtrace(_F__, 0); + } + if(_Ga_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bH_], 1); + } + function prestations_familiales(prestations_familiales_in){ + var + date_courante = prestations_familiales_in[1], + residence = prestations_familiales_in[3]; + try{ + var + _Ez_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); + }, + _EA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bJ_, 1); + }, + _EB_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, [0], _EA_, _Ez_); + } + catch(_F1_){ + var _Ey_ = caml_wrap_exception(_F1_); + if(_Ey_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bI_], 1); + throw caml_maybe_attach_backtrace(_Ey_, 0); + } + var + age_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[17], _EB_); + try{ + var + _ED_ = function(param){return date_courante;}, + _EE_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); + }, + _EF_ = caml_call4(Runtime_ocaml_Runtime[63], _bO_, [0], _EE_, _ED_), + smic_dot_date_courante = caml_call3 - (Runtime_ocaml_Runtime[28],_b7_,Runtime_ocaml_Runtime[12],_cSG_); - try - {var - _cSH_= - function(param) - {var - _cTw_=caml_call1(Runtime_ocaml_Runtime[39],cst_169), - _cTx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55), - _cTy_= + (Runtime_ocaml_Runtime[28], _bP_, Runtime_ocaml_Runtime[16], _EF_); + } + catch(_F0_){ + var _EC_ = caml_wrap_exception(_F0_); + if(_EC_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bM_], 1); + throw caml_maybe_attach_backtrace(_EC_, 0); + } + try{ + var + _EH_ = function(param){return residence;}, + _EI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bR_, 1); + }, + _EJ_ = caml_call4(Runtime_ocaml_Runtime[63], _bS_, [0], _EI_, _EH_), + smic_dot_residence = + caml_call3(Runtime_ocaml_Runtime[28], _bT_, embed_collectivite, _EJ_); + } + catch(_FZ_){ + var _EG_ = caml_wrap_exception(_FZ_); + if(_EG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bQ_], 1); + throw caml_maybe_attach_backtrace(_EG_, 0); + } + var + _EK_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _bU_, smic), + [0, smic_dot_date_courante, smic_dot_residence]), + result = caml_call2(Runtime_ocaml_Runtime[27], _bV_, _EK_), + smic_dot_brut_horaire = result[1]; + try{ + var + _EM_ = function(param){return 0;}, + _EN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bX_, 1); + }, + _EO_ = + [0, + function(param){ + function _FM_(param){return 1;} + function _FN_(param){ + var + _FO_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bY_), + _FP_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _bZ_), + _FQ_ = caml_call2(Runtime_ocaml_Runtime[84], _FP_, _FO_), + _FR_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b0_), + _FS_ = caml_call2(Runtime_ocaml_Runtime[84], _FR_, _FQ_), + _FT_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b1_), + _FU_ = caml_call2(Runtime_ocaml_Runtime[84], _FT_, _FS_), + _FV_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b2_), + _FW_ = caml_call2(Runtime_ocaml_Runtime[84], _FV_, _FU_), + _FX_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _b3_), + _FY_ = caml_call2(Runtime_ocaml_Runtime[84], _FX_, _FW_); + return caml_call2(Runtime_ocaml_Runtime[29], _b4_, _FY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b5_, [0], _FN_, _FM_); + }], + _EP_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, _EO_, _EN_, _EM_); + } + catch(_FL_){ + var _EL_ = caml_wrap_exception(_FL_); + if(_EL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bW_], 1); + throw caml_maybe_attach_backtrace(_EL_, 0); + } + var + regime_outre_mer_l751_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[12], _EP_); + try{ + var + _ER_ = + function(param){ + var + _FI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), + _FJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), + _FK_ = + caml_call2 + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FJ_); + return caml_call2(Runtime_ocaml_Runtime[104], _FK_, _FI_); + }, + _ES_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b9_, 1); + }, + _ET_ = + [0, + function(param){ + function _FD_(param){ + var + _FF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), + _FG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), + _FH_ = caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cTx_); - return caml_call2(Runtime_ocaml_Runtime[104],_cTy_,_cTw_)}, - _cSI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_b9_,1)}, - _cSJ_= - [0, - function(param) - {function _cTr_(param) - {var - _cTt_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$0), - _cTu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$0), - _cTv_= - caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_cTu_); - return caml_call2(Runtime_ocaml_Runtime[104],_cTv_,_cTt_)} - function _cTs_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_b__,regime_outre_mer_l751_1)} - return caml_call4(Runtime_ocaml_Runtime[63],_b$_,[0],_cTs_,_cTr_)}], - _cSK_=caml_call4(Runtime_ocaml_Runtime[63],_ca_,_cSJ_,_cSI_,_cSH_)} - catch(_cTq_) - {_cTq_ = caml_wrap_exception(_cTq_); - if(_cTq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_b8_]; - throw _cTq_} + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _FG_); + return caml_call2(Runtime_ocaml_Runtime[104], _FH_, _FF_); + } + function _FE_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _b__, regime_outre_mer_l751_1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b$_, [0], _FE_, _FD_); + }], + _EU_ = caml_call4(Runtime_ocaml_Runtime[63], _ca_, _ET_, _ES_, _ER_); + } + catch(_FC_){ + var _EQ_ = caml_wrap_exception(_FC_); + if(_EQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b8_], 1); + throw caml_maybe_attach_backtrace(_EQ_, 0); + } + var + plafond_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _cb_, Runtime_ocaml_Runtime[13], _EU_); + function _EV_(enfant){ + try{ var - plafond_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_cb_,Runtime_ocaml_Runtime[13],_cSK_); - function _cSL_(enfant) - {try - {var - _cTc_=function(param){return 0}, - _cTd_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cd_,1)}, - _cTe_= - [0, - function(param) - {function _cTh_(param){return 1} - function _cTi_(param) - {var - _cTj_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); - switch(enfant[2][0]) - {case 0:var _cTk_=0;break; - case 1:var _cTk_=0;break; - default:var _cTk_=1} - switch(enfant[2][0]) - {case 0:var _cTl_=0;break; - case 1:var _cTl_=1;break; - default:var _cTl_=0} - var _cTm_=caml_call2(Runtime_ocaml_Runtime[84],_cTl_,_cTk_); - switch(enfant[2][0]) - {case 0:var _cTn_=1;break; - case 1:var _cTn_=0;break; - default:var _cTn_=0} - var - _cTo_=caml_call2(Runtime_ocaml_Runtime[84],_cTn_,_cTm_), - _cTp_=caml_call2(Runtime_ocaml_Runtime[83],_cTo_,_cTj_); - return caml_call2(Runtime_ocaml_Runtime[29],_ce_,_cTp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cf_,[0],_cTi_,_cTh_)}], - _cTf_=caml_call4(Runtime_ocaml_Runtime[63],_cg_,_cTe_,_cTd_,_cTc_); - return _cTf_} - catch(_cTg_) - {_cTg_ = caml_wrap_exception(_cTg_); - if(_cTg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cc_]; - throw _cTg_}} + _Fo_ = function(param){return 0;}, + _Fp_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cd_, 1); + }, + _Fq_ = + [0, + function(param){ + function _Ft_(param){return 1;} + function _Fu_(param){ + var + _Fv_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); + switch(enfant[2][0]){ + case 0: + var _Fw_ = 0; break; + case 1: + var _Fw_ = 0; break; + default: var _Fw_ = 1; + } + switch(enfant[2][0]){ + case 0: + var _Fx_ = 0; break; + case 1: + var _Fx_ = 1; break; + default: var _Fx_ = 0; + } + var _Fy_ = caml_call2(Runtime_ocaml_Runtime[84], _Fx_, _Fw_); + switch(enfant[2][0]){ + case 0: + var _Fz_ = 1; break; + case 1: + var _Fz_ = 0; break; + default: var _Fz_ = 0; + } + var + _FA_ = caml_call2(Runtime_ocaml_Runtime[84], _Fz_, _Fy_), + _FB_ = caml_call2(Runtime_ocaml_Runtime[83], _FA_, _Fv_); + return caml_call2(Runtime_ocaml_Runtime[29], _ce_, _FB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cf_, [0], _Fu_, _Ft_); + }], + _Fr_ = caml_call4(Runtime_ocaml_Runtime[63], _cg_, _Fq_, _Fp_, _Fo_); + return _Fr_; + } + catch(_Fs_){ + var _Fn_ = caml_wrap_exception(_Fs_); + if(_Fn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cc_], 1); + throw caml_maybe_attach_backtrace(_Fn_, 0); + } + } + var + conditions_hors_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _ch_, Runtime_ocaml_Runtime[10], _EV_); + function _EW_(enfant){ + try{ var - conditions_hors_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_ch_,Runtime_ocaml_Runtime[10],_cSL_); - function _cSM_(enfant) - {try - {var - _cSN_=function(param){return 0}, - _cSO_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cj_,1)}, - _cSP_= - [0, - function(param) - {function _cSS_(param) - {function _cSX_(param){throw Runtime_ocaml_Runtime[2]} - function _cSY_(param){return 0} + _EY_ = function(param){return 0;}, + _EZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cj_, 1); + }, + _E0_ = + [0, + function(param){ + function _E3_(param){ + function _E8_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _E9_(param){return 0;} + var + _E__ = + [0, + function(param){ + function _E$_(param){return 1;} + function _Fa_(param){ + switch(enfant[2][0]){ + case 0: + var _Fk_ = 0; break; + case 1: + var _Fk_ = 1; break; + default: var _Fk_ = 0; + } + switch(enfant[2][0]){ + case 0: + var _Fl_ = 1; break; + case 1: + var _Fl_ = 0; break; + default: var _Fl_ = 0; + } + var + _Fm_ = caml_call2(Runtime_ocaml_Runtime[84], _Fl_, _Fk_); + return caml_call2(Runtime_ocaml_Runtime[29], _ck_, _Fm_); + } var - _cSZ_= - [0, - function(param) - {function _cS0_(param){return 1} - function _cS1_(param) - {switch(enfant[2][0]) - {case 0:var _cS$_=0;break; - case 1:var _cS$_=1;break; - default:var _cS$_=0} - switch(enfant[2][0]) - {case 0:var _cTa_=1;break; - case 1:var _cTa_=0;break; - default:var _cTa_=0} - var _cTb_=caml_call2(Runtime_ocaml_Runtime[84],_cTa_,_cS$_); - return caml_call2(Runtime_ocaml_Runtime[29],_ck_,_cTb_)} - var - _cS2_= - [0, - function(param) - {function _cS3_(param){return 1} - function _cS4_(param) - {var - _cS5_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,enfant[4],age_l512_3_2), - _cS6_= - caml_call2(Runtime_ocaml_Runtime[125],_cS5_,date_courante), - _cS7_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), - _cS8_=caml_call2(Runtime_ocaml_Runtime[83],_cS7_,_cS6_); - switch(enfant[2][0]) - {case 0:var _cS9_=0;break; - case 1:var _cS9_=0;break; - default:var _cS9_=1} - var _cS__=caml_call2(Runtime_ocaml_Runtime[83],_cS9_,_cS8_); - return caml_call2(Runtime_ocaml_Runtime[29],_cl_,_cS__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cm_,[0],_cS4_,_cS3_)}]; + _Fb_ = + [0, + function(param){ + function _Fc_(param){return 1;} + function _Fd_(param){ + var + _Fe_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, enfant[4], age_l512_3_2), + _Ff_ = + caml_call2(Runtime_ocaml_Runtime[125], _Fe_, date_courante), + _Fg_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), + _Fh_ = caml_call2(Runtime_ocaml_Runtime[83], _Fg_, _Ff_); + switch(enfant[2][0]){ + case 0: + var _Fi_ = 0; break; + case 1: + var _Fi_ = 0; break; + default: var _Fi_ = 1; + } + var + _Fj_ = caml_call2(Runtime_ocaml_Runtime[83], _Fi_, _Fh_); + return caml_call2(Runtime_ocaml_Runtime[29], _cl_, _Fj_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_cn_,_cS2_,_cS1_,_cS0_)}]; + (Runtime_ocaml_Runtime[63], _cm_, [0], _Fd_, _Fc_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_co_,_cSZ_,_cSY_,_cSX_)} - function _cST_(param){return 1} + (Runtime_ocaml_Runtime[63], _cn_, _Fb_, _Fa_, _E$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _co_, _E__, _E9_, _E8_); + } + function _E4_(param){return 1;} + var + _E5_ = + [0, + function(param){ + function _E6_(param){return 0;} + function _E7_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cp_, enfant[7]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cq_, [0], _E7_, _E6_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cr_, _E5_, _E4_, _E3_); + }], + _E1_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, _E0_, _EZ_, _EY_); + return _E1_; + } + catch(_E2_){ + var _EX_ = caml_wrap_exception(_E2_); + if(_EX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ci_], 1); + throw caml_maybe_attach_backtrace(_EX_, 0); + } + } + var + droit_ouvert = + caml_call3 + (Runtime_ocaml_Runtime[28], _ct_, Runtime_ocaml_Runtime[10], _EW_); + return [0, + droit_ouvert, + conditions_hors_age, + age_l512_3_2, + regime_outre_mer_l751_1]; + } + function allocations_familiales(allocations_familiales_in){ + var + personne_charge_effective_perm = allocations_familiales_in[1], + personne_charge_effective_perm$0 = allocations_familiales_in[2], + ressources_menage = allocations_familiales_in[3], + residence = allocations_familiales_in[4], + date_courante = allocations_familiales_in[5], + enfants_a_charge = allocations_familiales_in[6], + avait_enfant_a_charge_avant_1e = allocations_familiales_in[7]; + function _ls_(enfant){ + try{ + var + _Ea_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _Eb_ = function(param){return 0;}, + _Ec_ = + function(param){ + function _En_(param){return _cv_;} + function _Eo_(param){ + switch(enfant[5][0]){ + case 0: + var _Ex_ = 0; break; + case 1: + var _Ex_ = 0; break; + case 2: + var _Ex_ = 1; break; + case 3: + var _Ex_ = 0; break; + default: var _Ex_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _Ex_); + } + var + _Ep_ = + [0, + function(param){ + function _Eq_(param){return _cx_;} + function _Er_(param){ + switch(enfant[5][0]){ + case 0: + var _Ew_ = 0; break; + case 1: + var _Ew_ = 1; break; + case 2: + var _Ew_ = 0; break; + case 3: + var _Ew_ = 0; break; + default: var _Ew_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cy_, _Ew_); + } var - _cSU_= - [0, - function(param) - {function _cSV_(param){return 0} - function _cSW_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_cp_,enfant[7])} + _Es_ = + [0, + function(param){ + function _Et_(param){return _cz_;} + function _Eu_(param){ + switch(enfant[5][0]){ + case 0: + var _Ev_ = 0; break; + case 1: + var _Ev_ = 0; break; + case 2: + var _Ev_ = 0; break; + case 3: + var _Ev_ = 1; break; + default: var _Ev_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cA_, _Ev_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_cq_,[0],_cSW_,_cSV_)}]; + (Runtime_ocaml_Runtime[63], _cB_, [0], _Eu_, _Et_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_cr_,_cSU_,_cST_,_cSS_)}], - _cSQ_=caml_call4(Runtime_ocaml_Runtime[63],_cs_,_cSP_,_cSO_,_cSN_); - return _cSQ_} - catch(_cSR_) - {_cSR_ = caml_wrap_exception(_cSR_); - if(_cSR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ci_]; - throw _cSR_}} + (Runtime_ocaml_Runtime[63], _cC_, _Es_, _Er_, _Eq_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _cD_, _Ep_, _Eo_, _En_); + }, + _Ed_ = + function(param){ + function _Ek_(param){return _cE_;} + function _El_(param){ + switch(enfant[5][0]){ + case 0: + var _Em_ = 0; break; + case 1: + var _Em_ = 0; break; + case 2: + var _Em_ = 0; break; + case 3: + var _Em_ = 0; break; + default: var _Em_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cF_, _Em_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cG_, [0], _El_, _Ek_); + }, + _Ee_ = + [0, + function(param){ + function _Eh_(param){return _cH_;} + function _Ei_(param){ + switch(enfant[5][0]){ + case 0: + var _Ej_ = 1; break; + case 1: + var _Ej_ = 0; break; + case 2: + var _Ej_ = 0; break; + case 3: + var _Ej_ = 0; break; + default: var _Ej_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cI_, _Ej_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cJ_, [0], _Ei_, _Eh_); + }, + _Ed_, + _Ec_], + _Ef_ = caml_call4(Runtime_ocaml_Runtime[63], _cK_, _Ee_, _Eb_, _Ea_); + return _Ef_; + } + catch(_Eg_){ + var _D$_ = caml_wrap_exception(_Eg_); + if(_D$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cu_], 1); + throw caml_maybe_attach_backtrace(_D$_, 0); + } + } + var + prise_en_compte = + caml_call3 + (Runtime_ocaml_Runtime[28], _cL_, Runtime_ocaml_Runtime[10], _ls_); + function _lt_(enfant){ + try{ var - droit_ouvert= - caml_call3 - (Runtime_ocaml_Runtime[28],_ct_,Runtime_ocaml_Runtime[10],_cSM_); - return [0, - droit_ouvert, - conditions_hors_age, - age_l512_3_2, - regime_outre_mer_l751_1]} - function allocations_familiales(allocations_familiales_in) - {var - personne_charge_effective_perm=allocations_familiales_in[1], - personne_charge_effective_perm$0=allocations_familiales_in[2], - ressources_menage=allocations_familiales_in[3], - residence=allocations_familiales_in[4], - date_courante=allocations_familiales_in[5], - enfants_a_charge=allocations_familiales_in[6], - avait_enfant_a_charge_avant_1e=allocations_familiales_in[7]; - function _cz2_(enfant) - {try - {var - _cR7_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cR8_=function(param){return 0}, - _cR9_= - function(param) - {function _cSi_(param){return _cv_} - function _cSj_(param) - {switch(enfant[5][0]) - {case 0:var _cSs_=0;break; - case 1:var _cSs_=0;break; - case 2:var _cSs_=1;break; - case 3:var _cSs_=0;break; - default:var _cSs_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cw_,_cSs_)} - var - _cSk_= - [0, - function(param) - {function _cSl_(param){return _cx_} - function _cSm_(param) - {switch(enfant[5][0]) - {case 0:var _cSr_=0;break; - case 1:var _cSr_=1;break; - case 2:var _cSr_=0;break; - case 3:var _cSr_=0;break; - default:var _cSr_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cy_,_cSr_)} - var - _cSn_= - [0, - function(param) - {function _cSo_(param){return _cz_} - function _cSp_(param) - {switch(enfant[5][0]) - {case 0:var _cSq_=0;break; - case 1:var _cSq_=0;break; - case 2:var _cSq_=0;break; - case 3:var _cSq_=1;break; - default:var _cSq_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cA_,_cSq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cB_,[0],_cSp_,_cSo_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cC_,_cSn_,_cSm_,_cSl_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cD_,_cSk_,_cSj_,_cSi_)}, - _cR__= - function(param) - {function _cSf_(param){return _cE_} - function _cSg_(param) - {switch(enfant[5][0]) - {case 0:var _cSh_=0;break; - case 1:var _cSh_=0;break; - case 2:var _cSh_=0;break; - case 3:var _cSh_=0;break; - default:var _cSh_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_cF_,_cSh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cG_,[0],_cSg_,_cSf_)}, - _cR$_= - [0, - function(param) - {function _cSc_(param){return _cH_} - function _cSd_(param) - {switch(enfant[5][0]) - {case 0:var _cSe_=1;break; - case 1:var _cSe_=0;break; - case 2:var _cSe_=0;break; - case 3:var _cSe_=0;break; - default:var _cSe_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cI_,_cSe_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cJ_,[0],_cSd_,_cSc_)}, - _cR__, - _cR9_], - _cSa_=caml_call4(Runtime_ocaml_Runtime[63],_cK_,_cR$_,_cR8_,_cR7_); - return _cSa_} - catch(_cSb_) - {_cSb_ = caml_wrap_exception(_cSb_); - if(_cSb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cu_]; - throw _cSb_}} - var - prise_en_compte= - caml_call3 - (Runtime_ocaml_Runtime[28],_cL_,Runtime_ocaml_Runtime[10],_cz2_); - function _cz3_(enfant) - {try - {var - _cRJ_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cRK_=function(param){return 0}, - _cRL_= - function(param) - {function _cRS_(param){return _cN_} - function _cRT_(param) - {switch(enfant[5][0]) - {case 0:var _cR6_=0;break; - case 1:var _cR6_=0;break; - case 2:var _cR6_=1;break; - case 3:var _cR6_=0;break; - default:var _cR6_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cO_,_cR6_)} - var - _cRU_= - [0, - function(param) - {function _cRV_(param){return _cP_} - function _cRW_(param) - {switch(enfant[5][0]) - {case 0:var _cR5_=0;break; - case 1:var _cR5_=1;break; - case 2:var _cR5_=0;break; - case 3:var _cR5_=0;break; - default:var _cR5_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cQ_,_cR5_)} - var - _cRX_= - [0, - function(param) - {function _cRY_(param){return _cR_} - function _cRZ_(param) - {switch(enfant[5][0]) - {case 0:var _cR4_=1;break; - case 1:var _cR4_=0;break; - case 2:var _cR4_=0;break; - case 3:var _cR4_=0;break; - default:var _cR4_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cS_,_cR4_)} - var - _cR0_= - [0, - function(param) - {function _cR1_(param){return _cT_} - function _cR2_(param) - {switch(enfant[5][0]) - {case 0:var _cR3_=0;break; - case 1:var _cR3_=0;break; - case 2:var _cR3_=0;break; - case 3:var _cR3_=1;break; - default:var _cR3_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_cU_,_cR3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_cV_,[0],_cR2_,_cR1_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cW_,_cR0_,_cRZ_,_cRY_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cX_,_cRX_,_cRW_,_cRV_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_cY_,_cRU_,_cRT_,_cRS_)}, - _cRM_= - [0, - function(param) - {function _cRP_(param){return _cZ_} - function _cRQ_(param) - {switch(enfant[5][0]) - {case 0:var _cRR_=0;break; - case 1:var _cRR_=0;break; - case 2:var _cRR_=0;break; - case 3:var _cRR_=0;break; - default:var _cRR_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_c0_,_cRR_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_c1_,[0],_cRQ_,_cRP_)}, - _cRL_], - _cRN_=caml_call4(Runtime_ocaml_Runtime[63],_c2_,_cRM_,_cRK_,_cRJ_); - return _cRN_} - catch(_cRO_) - {_cRO_ = caml_wrap_exception(_cRO_); - if(_cRO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_cM_]; - throw _cRO_}} - caml_call3 - (Runtime_ocaml_Runtime[28],_c3_,Runtime_ocaml_Runtime[10],_cz3_); - try - {var - _cz4_= - function(param){return caml_call1(Runtime_ocaml_Runtime[46],cst_3)}, - _cz5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c5_,1)}, - _cz6_=caml_call4(Runtime_ocaml_Runtime[63],_c6_,[0],_cz5_,_cz4_)} - catch(_cRI_) - {_cRI_ = caml_wrap_exception(_cRI_); - if(_cRI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_c4_]; - throw _cRI_} - caml_call3 - (Runtime_ocaml_Runtime[28],_c7_,Runtime_ocaml_Runtime[14],_cz6_); - try - {var - _cz7_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[46],cst_3$0)}, - _cz8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_c9_,1)}, - _cz9_=caml_call4(Runtime_ocaml_Runtime[63],_c__,[0],_cz8_,_cz7_)} - catch(_cRH_) - {_cRH_ = caml_wrap_exception(_cRH_); - if(_cRH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_c8_]; - throw _cRH_} - var - nombre_enfants_alinea_2_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_c$_,Runtime_ocaml_Runtime[14],_cz9_), - _cz__= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_da_,allocation_familiales_avril200), - 0), - result=caml_call2(Runtime_ocaml_Runtime[27],_db_,_cz__), - version_avril_2008_dot_age_min=result[1]; - try - {var - _cz$_=function(param){return date_courante}, - _cAa_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dd_,1)}, - _cAb_=caml_call4(Runtime_ocaml_Runtime[63],_de_,[0],_cAa_,_cz$_), - bmaf_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_df_,Runtime_ocaml_Runtime[16],_cAb_)} - catch(_cRG_) - {_cRG_ = caml_wrap_exception(_cRG_); - if(_cRG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dc_]; - throw _cRG_} - var - _cAc_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_dg_,base_mensuelle_allocations_fam), - [0,bmaf_dot_date_courante]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_dh_,_cAc_), - bmaf_dot_montant=result$0[1]; - try - {var - _cAd_=function(param){return date_courante}, - _cAe_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dj_,1)}, - _cAf_=caml_call4(Runtime_ocaml_Runtime[63],_dk_,[0],_cAe_,_cAd_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_dl_,Runtime_ocaml_Runtime[16],_cAf_)} - catch(_cRF_) - {_cRF_ = caml_wrap_exception(_cRF_); - if(_cRF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_di_]; - throw _cRF_} - try - {var - _cAg_=function(param){return _dn_}, - _cAh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_do_,1)}, - _cAi_=caml_call4(Runtime_ocaml_Runtime[63],_dp_,[0],_cAh_,_cAg_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _dq_, - embed_element_prestations_fami, - _cAi_)} - catch(_cRE_) - {_cRE_ = caml_wrap_exception(_cRE_); - if(_cRE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dm_]; - throw _cRE_} - try - {var - _cAj_=function(param){return residence}, - _cAk_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ds_,1)}, - _cAl_=caml_call4(Runtime_ocaml_Runtime[63],_dt_,[0],_cAk_,_cAj_), - prestations_familiales_dot_res= - caml_call3(Runtime_ocaml_Runtime[28],_du_,embed_collectivite,_cAl_)} - catch(_cRD_) - {_cRD_ = caml_wrap_exception(_cRD_); - if(_cRD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dr_]; - throw _cRD_} - var - _cAm_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_dv_,prestations_familiales), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_dw_,_cAm_), - prestations_familiales_dot_dro=result$1[1], - prestations_familiales_dot_con=result$1[2], - prestations_familiales_dot_age=result$1[3], - prestations_familiales_dot_reg=result$1[4]; - try - {var - _cAn_=function(param){return enfants_a_charge}, - _cAo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dy_,1)}, - _cAp_=caml_call4(Runtime_ocaml_Runtime[63],_dz_,[0],_cAo_,_cAn_), - _cAq_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfant_le_plus_age_dot_enfants= - caml_call3(Runtime_ocaml_Runtime[28],_dA_,_cAq_,_cAp_)} - catch(_cRC_) - {_cRC_ = caml_wrap_exception(_cRC_); - if(_cRC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dx_]; - throw _cRC_} - var - _cAr_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_dB_,enfant_le_plus_age), - [0,enfant_le_plus_age_dot_enfants]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_dC_,_cAr_), - enfant_le_plus_age_dot_le_plus=result$2[1]; - function _cAs_(enfant) - {try - {var - _cRr_= - function(param) - {return caml_call3(Runtime_ocaml_Runtime[60],14,0,0)}, - _cRs_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_dE_,1)}, - _cRt_= - [0, - function(param) - {function _cRw_(param){return version_avril_2008_dot_age_min} - function _cRx_(param) - {var - _cRy_=caml_call3(Runtime_ocaml_Runtime[57],2008,4,30), - _cRz_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), - _cRA_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cRz_), - _cRB_=caml_call2(Runtime_ocaml_Runtime[120],_cRA_,_cRy_); - return caml_call2(Runtime_ocaml_Runtime[29],_dF_,_cRB_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_dG_,[0],_cRx_,_cRw_)}], - _cRu_=caml_call4(Runtime_ocaml_Runtime[63],_dH_,_cRt_,_cRs_,_cRr_); - return _cRu_} - catch(_cRv_) - {_cRv_ = caml_wrap_exception(_cRv_); - if(_cRv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dD_]; - throw _cRv_}} - var - age_minimum_alinea_1_l521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_dI_,Runtime_ocaml_Runtime[10],_cAs_); - try - {var - _cAt_= - function(param) - {function _cRn_(enfant) - {var - _cRo_= - caml_call3(Runtime_ocaml_Runtime[28],_dK_,embed_enfant,enfant), - _cRp_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _dL_, - prestations_familiales_dot_dro), - _cRo_), - _cRq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _dM_, - Runtime_ocaml_Runtime[12], - _cRp_); - return caml_call2(Runtime_ocaml_Runtime[27],_dN_,_cRq_)} - return caml_call2 - (Runtime_ocaml_Runtime[90],_cRn_,enfants_a_charge)}, - _cAu_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dO_,1)}, - _cAv_=caml_call4(Runtime_ocaml_Runtime[63],_dP_,[0],_cAu_,_cAt_)} - catch(_cRm_) - {_cRm_ = caml_wrap_exception(_cRm_); - if(_cRm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dJ_]; - throw _cRm_} - var - _cAw_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfants_a_charge_droit_ouvert_= - caml_call3(Runtime_ocaml_Runtime[28],_dQ_,_cAw_,_cAv_); - function _cAx_(enfant) - {try - {var - _cRi_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[86], - enfant_le_plus_age_dot_le_plus, - enfant)}, - _cRj_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_dS_,1)}, - _cRk_=caml_call4(Runtime_ocaml_Runtime[63],_dT_,[0],_cRj_,_cRi_); - return _cRk_} - catch(_cRl_) - {_cRl_ = caml_wrap_exception(_cRl_); - if(_cRl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dR_]; - throw _cRl_}} - var - est_enfant_le_plus_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_dU_,Runtime_ocaml_Runtime[10],_cAx_); - try - {var - _cAy_= - function(param) - {var - _cRd_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cRe_=caml_call1(Runtime_ocaml_Runtime[69],_cRd_), - _cRf_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500), - _cRg_=caml_call2(Runtime_ocaml_Runtime[104],_cRf_,_cRe_), - _cRh_=caml_call1(Runtime_ocaml_Runtime[31],cst_7830000); - return caml_call2(Runtime_ocaml_Runtime[93],_cRh_,_cRg_)}, - _cAz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_dW_,1)}, - _cAA_= - [0, - function(param) - {function _cQn_(param){throw Runtime_ocaml_Runtime[2]} - function _cQo_(param){return 0} - function _cQp_(param) - {function _cQ3_(param) - {var - _cQ__= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQ$_=caml_call1(Runtime_ocaml_Runtime[69],_cQ__), - _cRa_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700), - _cRb_=caml_call2(Runtime_ocaml_Runtime[104],_cRa_,_cQ$_), - _cRc_=caml_call1(Runtime_ocaml_Runtime[31],cst_8155800); - return caml_call2(Runtime_ocaml_Runtime[93],_cRc_,_cRb_)} - function _cQ4_(param) - {var - _cQ5_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cQ6_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQ5_), - _cQ7_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cQ8_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQ7_), - _cQ9_=caml_call2(Runtime_ocaml_Runtime[83],_cQ8_,_cQ6_); - return caml_call2(Runtime_ocaml_Runtime[29],_dX_,_cQ9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_dY_,[0],_cQ4_,_cQ3_)} - function _cQq_(param) - {function _cQR_(param) - {var - _cQY_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQZ_=caml_call1(Runtime_ocaml_Runtime[69],_cQY_), - _cQ0_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500), - _cQ1_=caml_call2(Runtime_ocaml_Runtime[104],_cQ0_,_cQZ_), - _cQ2_=caml_call1(Runtime_ocaml_Runtime[31],cst_8083100); - return caml_call2(Runtime_ocaml_Runtime[93],_cQ2_,_cQ1_)} - function _cQS_(param) - {var - _cQT_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cQU_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQT_), - _cQV_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cQW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQV_), - _cQX_=caml_call2(Runtime_ocaml_Runtime[83],_cQW_,_cQU_); - return caml_call2(Runtime_ocaml_Runtime[29],_dZ_,_cQX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d0_,[0],_cQS_,_cQR_)} - function _cQr_(param) - {function _cQF_(param) - {var - _cQM_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQN_=caml_call1(Runtime_ocaml_Runtime[69],_cQM_), - _cQO_=caml_call1(Runtime_ocaml_Runtime[31],cst_568400), - _cQP_=caml_call2(Runtime_ocaml_Runtime[104],_cQO_,_cQN_), - _cQQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7955800); - return caml_call2(Runtime_ocaml_Runtime[93],_cQQ_,_cQP_)} - function _cQG_(param) - {var - _cQH_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cQI_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQH_), - _cQJ_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cQK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQJ_), - _cQL_=caml_call2(Runtime_ocaml_Runtime[83],_cQK_,_cQI_); - return caml_call2(Runtime_ocaml_Runtime[29],_d1_,_cQL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d2_,[0],_cQG_,_cQF_)} - var - _cQs_= - [0, - function(param) - {function _cQt_(param) - {var - _cQA_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQB_=caml_call1(Runtime_ocaml_Runtime[69],_cQA_), - _cQC_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800), - _cQD_=caml_call2(Runtime_ocaml_Runtime[104],_cQC_,_cQB_), - _cQE_=caml_call1(Runtime_ocaml_Runtime[31],cst_7877000); - return caml_call2(Runtime_ocaml_Runtime[93],_cQE_,_cQD_)} - function _cQu_(param) - {var - _cQv_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cQw_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cQv_), - _cQx_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cQy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cQx_), - _cQz_=caml_call2(Runtime_ocaml_Runtime[83],_cQy_,_cQw_); - return caml_call2(Runtime_ocaml_Runtime[29],_d3_,_cQz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d4_,[0],_cQu_,_cQt_)}, - _cQr_, - _cQq_, - _cQp_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_d5_,_cQs_,_cQo_,_cQn_)}], - _cAB_=caml_call4(Runtime_ocaml_Runtime[63],_d6_,_cAA_,_cAz_,_cAy_)} - catch(_cQm_) - {_cQm_ = caml_wrap_exception(_cQm_); - if(_cQm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_dV_]; - throw _cQm_} - var - plafond_i_i_d521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_d7_,Runtime_ocaml_Runtime[13],_cAB_); - try - {var - _cAC_= - function(param) - {var - _cQh_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQi_=caml_call1(Runtime_ocaml_Runtime[69],_cQh_), - _cQj_=caml_call1(Runtime_ocaml_Runtime[31],cst_559500$0), - _cQk_=caml_call2(Runtime_ocaml_Runtime[104],_cQj_,_cQi_), - _cQl_=caml_call1(Runtime_ocaml_Runtime[31],cst_5595000); - return caml_call2(Runtime_ocaml_Runtime[93],_cQl_,_cQk_)}, - _cAD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_d9_,1)}, - _cAE_= - [0, - function(param) - {function _cPr_(param){throw Runtime_ocaml_Runtime[2]} - function _cPs_(param){return 0} - function _cPt_(param) - {function _cP7_(param) - {var - _cQc_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cQd_=caml_call1(Runtime_ocaml_Runtime[69],_cQc_), - _cQe_=caml_call1(Runtime_ocaml_Runtime[31],cst_582700$0), - _cQf_=caml_call2(Runtime_ocaml_Runtime[104],_cQe_,_cQd_), - _cQg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5827900); - return caml_call2(Runtime_ocaml_Runtime[93],_cQg_,_cQf_)} - function _cP8_(param) - {var - _cP9_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _cP__= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cP9_), - _cP$_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _cQa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cP$_), - _cQb_=caml_call2(Runtime_ocaml_Runtime[83],_cQa_,_cP__); - return caml_call2(Runtime_ocaml_Runtime[29],_d__,_cQb_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_d$_,[0],_cP8_,_cP7_)} - function _cPu_(param) - {function _cPV_(param) - {var - _cP2_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cP3_=caml_call1(Runtime_ocaml_Runtime[69],_cP2_), - _cP4_=caml_call1(Runtime_ocaml_Runtime[31],cst_577500$0), - _cP5_=caml_call2(Runtime_ocaml_Runtime[104],_cP4_,_cP3_), - _cP6_=caml_call1(Runtime_ocaml_Runtime[31],cst_5775900); - return caml_call2(Runtime_ocaml_Runtime[93],_cP6_,_cP5_)} - function _cPW_(param) - {var - _cPX_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cPY_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPX_), - _cPZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cP0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPZ_), - _cP1_=caml_call2(Runtime_ocaml_Runtime[83],_cP0_,_cPY_); - return caml_call2(Runtime_ocaml_Runtime[29],_ea_,_cP1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eb_,[0],_cPW_,_cPV_)} - function _cPv_(param) - {function _cPJ_(param) - {var - _cPQ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cPR_=caml_call1(Runtime_ocaml_Runtime[69],_cPQ_), - _cPS_=caml_call1(Runtime_ocaml_Runtime[31],cst_568400$0), - _cPT_=caml_call2(Runtime_ocaml_Runtime[104],_cPS_,_cPR_), - _cPU_=caml_call1(Runtime_ocaml_Runtime[31],cst_5684900); - return caml_call2(Runtime_ocaml_Runtime[93],_cPU_,_cPT_)} - function _cPK_(param) - {var - _cPL_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cPM_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPL_), - _cPN_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cPO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPN_), - _cPP_=caml_call2(Runtime_ocaml_Runtime[83],_cPO_,_cPM_); - return caml_call2(Runtime_ocaml_Runtime[29],_ec_,_cPP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ed_,[0],_cPK_,_cPJ_)} - var - _cPw_= - [0, - function(param) - {function _cPx_(param) - {var - _cPE_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cPF_=caml_call1(Runtime_ocaml_Runtime[69],_cPE_), - _cPG_=caml_call1(Runtime_ocaml_Runtime[31],cst_562800$0), - _cPH_=caml_call2(Runtime_ocaml_Runtime[104],_cPG_,_cPF_), - _cPI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5628600); - return caml_call2(Runtime_ocaml_Runtime[93],_cPI_,_cPH_)} - function _cPy_(param) - {var - _cPz_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cPA_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cPz_), - _cPB_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cPC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cPB_), - _cPD_=caml_call2(Runtime_ocaml_Runtime[83],_cPC_,_cPA_); - return caml_call2(Runtime_ocaml_Runtime[29],_ee_,_cPD_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ef_,[0],_cPy_,_cPx_)}, - _cPv_, - _cPu_, - _cPt_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eg_,_cPw_,_cPs_,_cPr_)}], - _cAF_=caml_call4(Runtime_ocaml_Runtime[63],_eh_,_cAE_,_cAD_,_cAC_)} - catch(_cPq_) - {_cPq_ = caml_wrap_exception(_cPq_); - if(_cPq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_d8_]; - throw _cPq_} - var - plafond_i_d521_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_ei_,Runtime_ocaml_Runtime[13],_cAF_); - try - {var - _cAG_=function(param){return 0}, - _cAH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ek_,1)}, - _cAI_= - [0, - function(param) - {function _cPh_(param){return 1} - function _cPi_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_el_,1)} - var - _cPj_= - [0, - function(param) - {function _cPk_(param){return 0} - function _cPl_(param) - {var - _cPm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$0), - _cPn_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cPo_=caml_call2(Runtime_ocaml_Runtime[86],_cPn_,_cPm_), - _cPp_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cPo_); - return caml_call2(Runtime_ocaml_Runtime[29],_em_,_cPp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_en_,[0],_cPl_,_cPk_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eo_,_cPj_,_cPi_,_cPh_)}], - _cAJ_=caml_call4(Runtime_ocaml_Runtime[63],_ep_,_cAI_,_cAH_,_cAG_)} - catch(_cPg_) - {_cPg_ = caml_wrap_exception(_cPg_); - if(_cPg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ej_]; - throw _cPg_} - var - droit_ouvert_complement= - caml_call3 - (Runtime_ocaml_Runtime[28],_eq_,Runtime_ocaml_Runtime[12],_cAJ_); - function _cAK_(enfant) - {try - {var - _cOR_=function(param){return 0}, - _cOS_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_es_,1)}, - _cOT_= - [0, - function(param) - {function _cOW_(param){return 1} - function _cOX_(param) - {var - _cO5_= - caml_call3 - (Runtime_ocaml_Runtime[28],_et_,embed_enfant,enfant), - _cO6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _eu_, - prestations_familiales_dot_con), - _cO5_), - _cO7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ev_, - Runtime_ocaml_Runtime[12], - _cO6_), - _cO8_=caml_call2(Runtime_ocaml_Runtime[27],_ew_,_cO7_), - _cO9_=caml_call2(Runtime_ocaml_Runtime[83],enfant[6],_cO8_), - _cO__=caml_call3(Runtime_ocaml_Runtime[60],0,0,365), - _cO$_= - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[4], - prestations_familiales_dot_age), - _cPa_= - caml_call2(Runtime_ocaml_Runtime[99],_cO$_,date_courante), - _cPb_=caml_call2(Runtime_ocaml_Runtime[114],_cPa_,_cO__), - _cPc_=caml_call2(Runtime_ocaml_Runtime[83],_cPb_,_cO9_), - _cPd_=caml_call1(Runtime_ocaml_Runtime[68],enfants_a_charge), - _cPe_= - caml_call2 - (Runtime_ocaml_Runtime[126], - _cPd_, - nombre_enfants_alinea_2_l521_3), - _cPf_=caml_call2(Runtime_ocaml_Runtime[83],_cPe_,_cPc_); - return caml_call2(Runtime_ocaml_Runtime[29],_ex_,_cPf_)} + _DN_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _DO_ = function(param){return 0;}, + _DP_ = + function(param){ + function _DW_(param){return _cN_;} + function _DX_(param){ + switch(enfant[5][0]){ + case 0: + var _D__ = 0; break; + case 1: + var _D__ = 0; break; + case 2: + var _D__ = 1; break; + case 3: + var _D__ = 0; break; + default: var _D__ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cO_, _D__); + } + var + _DY_ = + [0, + function(param){ + function _DZ_(param){return _cP_;} + function _D0_(param){ + switch(enfant[5][0]){ + case 0: + var _D9_ = 0; break; + case 1: + var _D9_ = 1; break; + case 2: + var _D9_ = 0; break; + case 3: + var _D9_ = 0; break; + default: var _D9_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cQ_, _D9_); + } var - _cOY_= - [0, - function(param) - {function _cOZ_(param){return 0} - function _cO0_(param) - {var - _cO1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$1), - _cO2_= + _D1_ = + [0, + function(param){ + function _D2_(param){return _cR_;} + function _D3_(param){ + switch(enfant[5][0]){ + case 0: + var _D8_ = 1; break; + case 1: + var _D8_ = 0; break; + case 2: + var _D8_ = 0; break; + case 3: + var _D8_ = 0; break; + default: var _D8_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cS_, _D8_); + } + var + _D4_ = + [0, + function(param){ + function _D5_(param){return _cT_;} + function _D6_(param){ + switch(enfant[5][0]){ + case 0: + var _D7_ = 0; break; + case 1: + var _D7_ = 0; break; + case 2: + var _D7_ = 0; break; + case 3: + var _D7_ = 1; break; + default: var _D7_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _D7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cV_, [0], _D6_, _D5_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cW_, _D4_, _D3_, _D2_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cX_, _D1_, _D0_, _DZ_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _cY_, _DY_, _DX_, _DW_); + }, + _DQ_ = + [0, + function(param){ + function _DT_(param){return _cZ_;} + function _DU_(param){ + switch(enfant[5][0]){ + case 0: + var _DV_ = 0; break; + case 1: + var _DV_ = 0; break; + case 2: + var _DV_ = 0; break; + case 3: + var _DV_ = 0; break; + default: var _DV_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _c0_, _DV_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c1_, [0], _DU_, _DT_); + }, + _DP_], + _DR_ = caml_call4(Runtime_ocaml_Runtime[63], _c2_, _DQ_, _DO_, _DN_); + return _DR_; + } + catch(_DS_){ + var _DM_ = caml_wrap_exception(_DS_); + if(_DM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cM_], 1); + throw caml_maybe_attach_backtrace(_DM_, 0); + } + } + caml_call3 + (Runtime_ocaml_Runtime[28], _c3_, Runtime_ocaml_Runtime[10], _lt_); + try{ + var + _lv_ = + function(param){return caml_call1(Runtime_ocaml_Runtime[46], cst_3);}, + _lw_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _c5_, 1); + }, + _lx_ = caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _lw_, _lv_); + } + catch(_DL_){ + var _lu_ = caml_wrap_exception(_DL_); + if(_lu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c4_], 1); + throw caml_maybe_attach_backtrace(_lu_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _c7_, Runtime_ocaml_Runtime[14], _lx_); + try{ + var + _lz_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); + }, + _lA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _c9_, 1); + }, + _lB_ = caml_call4(Runtime_ocaml_Runtime[63], _c__, [0], _lA_, _lz_); + } + catch(_DK_){ + var _ly_ = caml_wrap_exception(_DK_); + if(_ly_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c8_], 1); + throw caml_maybe_attach_backtrace(_ly_, 0); + } + var + nombre_enfants_alinea_2_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _c$_, Runtime_ocaml_Runtime[14], _lB_), + _lC_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _da_, allocation_familiales_avril200), + 0), + result = caml_call2(Runtime_ocaml_Runtime[27], _db_, _lC_), + version_avril_2008_dot_age_min = result[1]; + try{ + var + _lE_ = function(param){return date_courante;}, + _lF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dd_, 1); + }, + _lG_ = caml_call4(Runtime_ocaml_Runtime[63], _de_, [0], _lF_, _lE_), + bmaf_dot_date_courante = + caml_call3 + (Runtime_ocaml_Runtime[28], _df_, Runtime_ocaml_Runtime[16], _lG_); + } + catch(_DJ_){ + var _lD_ = caml_wrap_exception(_DJ_); + if(_lD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dc_], 1); + throw caml_maybe_attach_backtrace(_lD_, 0); + } + var + _lH_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _dg_, base_mensuelle_allocations_fam), + [0, bmaf_dot_date_courante]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _dh_, _lH_), + bmaf_dot_montant = result$0[1]; + try{ + var + _lJ_ = function(param){return date_courante;}, + _lK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dj_, 1); + }, + _lL_ = caml_call4(Runtime_ocaml_Runtime[63], _dk_, [0], _lK_, _lJ_), + prestations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _dl_, Runtime_ocaml_Runtime[16], _lL_); + } + catch(_DI_){ + var _lI_ = caml_wrap_exception(_DI_); + if(_lI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _di_], 1); + throw caml_maybe_attach_backtrace(_lI_, 0); + } + try{ + var + _lN_ = function(param){return _dn_;}, + _lO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _do_, 1); + }, + _lP_ = caml_call4(Runtime_ocaml_Runtime[63], _dp_, [0], _lO_, _lN_), + prestations_familiales_dot_pre = + caml_call3 + (Runtime_ocaml_Runtime[28], + _dq_, + embed_element_prestations_fami, + _lP_); + } + catch(_DH_){ + var _lM_ = caml_wrap_exception(_DH_); + if(_lM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dm_], 1); + throw caml_maybe_attach_backtrace(_lM_, 0); + } + try{ + var + _lR_ = function(param){return residence;}, + _lS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ds_, 1); + }, + _lT_ = caml_call4(Runtime_ocaml_Runtime[63], _dt_, [0], _lS_, _lR_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _du_, embed_collectivite, _lT_); + } + catch(_DG_){ + var _lQ_ = caml_wrap_exception(_DG_); + if(_lQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dr_], 1); + throw caml_maybe_attach_backtrace(_lQ_, 0); + } + var + _lU_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _dv_, prestations_familiales), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _dw_, _lU_), + prestations_familiales_dot_dro = result$1[1], + prestations_familiales_dot_con = result$1[2], + prestations_familiales_dot_age = result$1[3], + prestations_familiales_dot_reg = result$1[4]; + try{ + var + _lW_ = function(param){return enfants_a_charge;}, + _lX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dy_, 1); + }, + _lY_ = caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _lX_, _lW_), + _lZ_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfant_le_plus_age_dot_enfants = + caml_call3(Runtime_ocaml_Runtime[28], _dA_, _lZ_, _lY_); + } + catch(_DF_){ + var _lV_ = caml_wrap_exception(_DF_); + if(_lV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dx_], 1); + throw caml_maybe_attach_backtrace(_lV_, 0); + } + var + _l0_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _dB_, enfant_le_plus_age), + [0, enfant_le_plus_age_dot_enfants]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _dC_, _l0_), + enfant_le_plus_age_dot_le_plus = result$2[1]; + function _l1_(enfant){ + try{ + var + _Du_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 14, 0, 0); + }, + _Dv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dE_, 1); + }, + _Dw_ = + [0, + function(param){ + function _Dz_(param){return version_avril_2008_dot_age_min;} + function _DA_(param){ + var + _DB_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 4, 30), + _DC_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), + _DD_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _DC_), + _DE_ = caml_call2(Runtime_ocaml_Runtime[120], _DD_, _DB_); + return caml_call2(Runtime_ocaml_Runtime[29], _dF_, _DE_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dG_, [0], _DA_, _Dz_); + }], + _Dx_ = caml_call4(Runtime_ocaml_Runtime[63], _dH_, _Dw_, _Dv_, _Du_); + return _Dx_; + } + catch(_Dy_){ + var _Dt_ = caml_wrap_exception(_Dy_); + if(_Dt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dD_], 1); + throw caml_maybe_attach_backtrace(_Dt_, 0); + } + } + var + age_minimum_alinea_1_l521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _dI_, Runtime_ocaml_Runtime[10], _l1_); + try{ + var + _l3_ = + function(param){ + function _Dp_(enfant){ + var + _Dq_ = + caml_call3(Runtime_ocaml_Runtime[28], _dK_, embed_enfant, enfant), + _Dr_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _dL_, + prestations_familiales_dot_dro), + _Dq_), + _Ds_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _dM_, + Runtime_ocaml_Runtime[12], + _Dr_); + return caml_call2(Runtime_ocaml_Runtime[27], _dN_, _Ds_); + } + return caml_call2(Runtime_ocaml_Runtime[90], _Dp_, enfants_a_charge); + }, + _l4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dO_, 1); + }, + _l5_ = caml_call4(Runtime_ocaml_Runtime[63], _dP_, [0], _l4_, _l3_); + } + catch(_Do_){ + var _l2_ = caml_wrap_exception(_Do_); + if(_l2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dJ_], 1); + throw caml_maybe_attach_backtrace(_l2_, 0); + } + var + _l6_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfants_a_charge_droit_ouvert_ = + caml_call3(Runtime_ocaml_Runtime[28], _dQ_, _l6_, _l5_); + function _l7_(enfant){ + try{ + var + _Dk_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[86], + enfant_le_plus_age_dot_le_plus, + enfant); + }, + _Dl_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dS_, 1); + }, + _Dm_ = caml_call4(Runtime_ocaml_Runtime[63], _dT_, [0], _Dl_, _Dk_); + return _Dm_; + } + catch(_Dn_){ + var _Dj_ = caml_wrap_exception(_Dn_); + if(_Dj_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dR_], 1); + throw caml_maybe_attach_backtrace(_Dj_, 0); + } + } + var + est_enfant_le_plus_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _dU_, Runtime_ocaml_Runtime[10], _l7_); + try{ + var + _l9_ = + function(param){ + var + _De_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Df_ = caml_call1(Runtime_ocaml_Runtime[69], _De_), + _Dg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500), + _Dh_ = caml_call2(Runtime_ocaml_Runtime[104], _Dg_, _Df_), + _Di_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7830000); + return caml_call2(Runtime_ocaml_Runtime[93], _Di_, _Dh_); + }, + _l__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dW_, 1); + }, + _l$_ = + [0, + function(param){ + function _Co_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _Cp_(param){return 0;} + function _Cq_(param){ + function _C4_(param){ + var + _C$_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Da_ = caml_call1(Runtime_ocaml_Runtime[69], _C$_), + _Db_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700), + _Dc_ = caml_call2(Runtime_ocaml_Runtime[104], _Db_, _Da_), + _Dd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8155800); + return caml_call2(Runtime_ocaml_Runtime[93], _Dd_, _Dc_); + } + function _C5_(param){ + var + _C6_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _C7_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _C6_), + _C8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _C9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _C8_), + _C__ = caml_call2(Runtime_ocaml_Runtime[83], _C9_, _C7_); + return caml_call2(Runtime_ocaml_Runtime[29], _dX_, _C__); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dY_, [0], _C5_, _C4_); + } + function _Cr_(param){ + function _CS_(param){ + var + _CZ_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _C0_ = caml_call1(Runtime_ocaml_Runtime[69], _CZ_), + _C1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500), + _C2_ = caml_call2(Runtime_ocaml_Runtime[104], _C1_, _C0_), + _C3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_8083100); + return caml_call2(Runtime_ocaml_Runtime[93], _C3_, _C2_); + } + function _CT_(param){ + var + _CU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _CV_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CU_), + _CW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _CX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CW_), + _CY_ = caml_call2(Runtime_ocaml_Runtime[83], _CX_, _CV_); + return caml_call2(Runtime_ocaml_Runtime[29], _dZ_, _CY_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d0_, [0], _CT_, _CS_); + } + function _Cs_(param){ + function _CG_(param){ + var + _CN_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _CO_ = caml_call1(Runtime_ocaml_Runtime[69], _CN_), + _CP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400), + _CQ_ = caml_call2(Runtime_ocaml_Runtime[104], _CP_, _CO_), + _CR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7955800); + return caml_call2(Runtime_ocaml_Runtime[93], _CR_, _CQ_); + } + function _CH_(param){ + var + _CI_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _CJ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _CI_), + _CK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _CL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _CK_), + _CM_ = caml_call2(Runtime_ocaml_Runtime[83], _CL_, _CJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _d1_, _CM_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d2_, [0], _CH_, _CG_); + } + var + _Ct_ = + [0, + function(param){ + function _Cu_(param){ + var + _CB_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _CC_ = caml_call1(Runtime_ocaml_Runtime[69], _CB_), + _CD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800), + _CE_ = caml_call2(Runtime_ocaml_Runtime[104], _CD_, _CC_), + _CF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7877000); + return caml_call2(Runtime_ocaml_Runtime[93], _CF_, _CE_); + } + function _Cv_(param){ + var + _Cw_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _Cx_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Cw_), + _Cy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Cz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Cy_), + _CA_ = caml_call2(Runtime_ocaml_Runtime[83], _Cz_, _Cx_); + return caml_call2(Runtime_ocaml_Runtime[29], _d3_, _CA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _d4_, [0], _Cv_, _Cu_); + }, + _Cs_, + _Cr_, + _Cq_]; + return caml_call4(Runtime_ocaml_Runtime[63], _d5_, _Ct_, _Cp_, _Co_); + }], + _ma_ = caml_call4(Runtime_ocaml_Runtime[63], _d6_, _l$_, _l__, _l9_); + } + catch(_Cn_){ + var _l8_ = caml_wrap_exception(_Cn_); + if(_l8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dV_], 1); + throw caml_maybe_attach_backtrace(_l8_, 0); + } + var + plafond_i_i_d521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _d7_, Runtime_ocaml_Runtime[13], _ma_); + try{ + var + _mc_ = + function(param){ + var + _Ci_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Cj_ = caml_call1(Runtime_ocaml_Runtime[69], _Ci_), + _Ck_ = caml_call1(Runtime_ocaml_Runtime[31], cst_559500$0), + _Cl_ = caml_call2(Runtime_ocaml_Runtime[104], _Ck_, _Cj_), + _Cm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5595000); + return caml_call2(Runtime_ocaml_Runtime[93], _Cm_, _Cl_); + }, + _md_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _d9_, 1); + }, + _me_ = + [0, + function(param){ + function _Bs_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _Bt_(param){return 0;} + function _Bu_(param){ + function _B8_(param){ + var + _Cd_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Ce_ = caml_call1(Runtime_ocaml_Runtime[69], _Cd_), + _Cf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_582700$0), + _Cg_ = caml_call2(Runtime_ocaml_Runtime[104], _Cf_, _Ce_), + _Ch_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5827900); + return caml_call2(Runtime_ocaml_Runtime[93], _Ch_, _Cg_); + } + function _B9_(param){ + var + _B__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _B$_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _B__), + _Ca_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Cb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ca_), + _Cc_ = caml_call2(Runtime_ocaml_Runtime[83], _Cb_, _B$_); + return caml_call2(Runtime_ocaml_Runtime[29], _d__, _Cc_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d$_, [0], _B9_, _B8_); + } + function _Bv_(param){ + function _BW_(param){ + var + _B3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _B4_ = caml_call1(Runtime_ocaml_Runtime[69], _B3_), + _B5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_577500$0), + _B6_ = caml_call2(Runtime_ocaml_Runtime[104], _B5_, _B4_), + _B7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5775900); + return caml_call2(Runtime_ocaml_Runtime[93], _B7_, _B6_); + } + function _BX_(param){ + var + _BY_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _BZ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BY_), + _B0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _B1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _B0_), + _B2_ = caml_call2(Runtime_ocaml_Runtime[83], _B1_, _BZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _ea_, _B2_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eb_, [0], _BX_, _BW_); + } + function _Bw_(param){ + function _BK_(param){ + var + _BR_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _BS_ = caml_call1(Runtime_ocaml_Runtime[69], _BR_), + _BT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_568400$0), + _BU_ = caml_call2(Runtime_ocaml_Runtime[104], _BT_, _BS_), + _BV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5684900); + return caml_call2(Runtime_ocaml_Runtime[93], _BV_, _BU_); + } + function _BL_(param){ + var + _BM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _BN_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BM_), + _BO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _BP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BO_), + _BQ_ = caml_call2(Runtime_ocaml_Runtime[83], _BP_, _BN_); + return caml_call2(Runtime_ocaml_Runtime[29], _ec_, _BQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ed_, [0], _BL_, _BK_); + } + var + _Bx_ = + [0, + function(param){ + function _By_(param){ + var + _BF_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _BG_ = caml_call1(Runtime_ocaml_Runtime[69], _BF_), + _BH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_562800$0), + _BI_ = caml_call2(Runtime_ocaml_Runtime[104], _BH_, _BG_), + _BJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5628600); + return caml_call2(Runtime_ocaml_Runtime[93], _BJ_, _BI_); + } + function _Bz_(param){ + var + _BA_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _BB_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _BA_), + _BC_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _BD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _BC_), + _BE_ = caml_call2(Runtime_ocaml_Runtime[83], _BD_, _BB_); + return caml_call2(Runtime_ocaml_Runtime[29], _ee_, _BE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ef_, [0], _Bz_, _By_); + }, + _Bw_, + _Bv_, + _Bu_]; + return caml_call4(Runtime_ocaml_Runtime[63], _eg_, _Bx_, _Bt_, _Bs_); + }], + _mf_ = caml_call4(Runtime_ocaml_Runtime[63], _eh_, _me_, _md_, _mc_); + } + catch(_Br_){ + var _mb_ = caml_wrap_exception(_Br_); + if(_mb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _d8_], 1); + throw caml_maybe_attach_backtrace(_mb_, 0); + } + var + plafond_i_d521_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _ei_, Runtime_ocaml_Runtime[13], _mf_); + try{ + var + _mh_ = function(param){return 0;}, + _mi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ek_, 1); + }, + _mj_ = + [0, + function(param){ + function _Bi_(param){return 1;} + function _Bj_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _el_, 1); + } + var + _Bk_ = + [0, + function(param){ + function _Bl_(param){return 0;} + function _Bm_(param){ + var + _Bn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0), + _Bo_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _Bp_ = caml_call2(Runtime_ocaml_Runtime[86], _Bo_, _Bn_), + _Bq_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _Bp_); + return caml_call2(Runtime_ocaml_Runtime[29], _em_, _Bq_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _en_, [0], _Bm_, _Bl_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _eo_, _Bk_, _Bj_, _Bi_); + }], + _mk_ = caml_call4(Runtime_ocaml_Runtime[63], _ep_, _mj_, _mi_, _mh_); + } + catch(_Bh_){ + var _mg_ = caml_wrap_exception(_Bh_); + if(_mg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ej_], 1); + throw caml_maybe_attach_backtrace(_mg_, 0); + } + var + droit_ouvert_complement = + caml_call3 + (Runtime_ocaml_Runtime[28], _eq_, Runtime_ocaml_Runtime[12], _mk_); + function _ml_(enfant){ + try{ + var + _AS_ = function(param){return 0;}, + _AT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _es_, 1); + }, + _AU_ = + [0, + function(param){ + function _AX_(param){return 1;} + function _AY_(param){ + var + _A6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _et_, embed_enfant, enfant), + _A7_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _eu_, + prestations_familiales_dot_con), + _A6_), + _A8_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ev_, + Runtime_ocaml_Runtime[12], + _A7_), + _A9_ = caml_call2(Runtime_ocaml_Runtime[27], _ew_, _A8_), + _A__ = caml_call2(Runtime_ocaml_Runtime[83], enfant[6], _A9_), + _A$_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, 365), + _Ba_ = + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[4], + prestations_familiales_dot_age), + _Bb_ = caml_call2(Runtime_ocaml_Runtime[99], _Ba_, date_courante), + _Bc_ = caml_call2(Runtime_ocaml_Runtime[114], _Bb_, _A$_), + _Bd_ = caml_call2(Runtime_ocaml_Runtime[83], _Bc_, _A__), + _Be_ = caml_call1(Runtime_ocaml_Runtime[68], enfants_a_charge), + _Bf_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + _Be_, + nombre_enfants_alinea_2_l521_3), + _Bg_ = caml_call2(Runtime_ocaml_Runtime[83], _Bf_, _Bd_); + return caml_call2(Runtime_ocaml_Runtime[29], _ex_, _Bg_); + } + var + _AZ_ = + [0, + function(param){ + function _A0_(param){return 0;} + function _A1_(param){ + var + _A2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$1), + _A3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _A4_ = caml_call2(Runtime_ocaml_Runtime[86], _A3_, _A2_), + _A5_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _A4_); + return caml_call2(Runtime_ocaml_Runtime[29], _ey_, _A5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ez_, [0], _A1_, _A0_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _eA_, _AZ_, _AY_, _AX_); + }], + _AV_ = caml_call4(Runtime_ocaml_Runtime[63], _eB_, _AU_, _AT_, _AS_); + return _AV_; + } + catch(_AW_){ + var _AR_ = caml_wrap_exception(_AW_); + if(_AR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _er_], 1); + throw caml_maybe_attach_backtrace(_AR_, 0); + } + } + var + droit_ouvert_forfaitaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _eC_, Runtime_ocaml_Runtime[10], _ml_); + try{ + var + _mn_ = + function(param){ + var + _AJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$1), + _AK_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AK_, _AJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$0); + var + _AL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2), + _AM_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _AN_ = caml_call2(Runtime_ocaml_Runtime[96], _AM_, _AL_), + _AO_ = caml_call1(Runtime_ocaml_Runtime[69], _AN_), + _AP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463), + _AQ_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AP_); + return caml_call2(Runtime_ocaml_Runtime[104], _AQ_, _AO_); + }, + _mo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eE_, 1); + }, + _mp_ = caml_call4(Runtime_ocaml_Runtime[63], _eF_, [0], _mo_, _mn_); + } + catch(_AI_){ + var _mm_ = caml_wrap_exception(_AI_); + if(_mm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eD_], 1); + throw caml_maybe_attach_backtrace(_mm_, 0); + } + var + montant_initial_base_quatrieme = + caml_call3 + (Runtime_ocaml_Runtime[28], _eG_, Runtime_ocaml_Runtime[13], _mp_); + try{ + var + _mr_ = + function(param){ + var + _AF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2), + _AG_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AG_, _AF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); + var _AH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16); + return caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AH_); + }, + _ms_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eI_, 1); + }, + _mt_ = + [0, + function(param){ + function _yB_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _yC_(param){return 0;} + function _yD_(param){ + function _At_(param){ + var + _AC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0), + _AD_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _AD_, _AC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$2); + var _AE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_143); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _AE_); + } + function _Au_(param){ + var + _Av_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _Aw_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Av_), + _Ax_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _Ay_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Ax_), + _Az_ = caml_call2(Runtime_ocaml_Runtime[83], _Ay_, _Aw_), + _AA_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eJ_), + _AB_ = caml_call2(Runtime_ocaml_Runtime[83], _AA_, _Az_); + return caml_call2(Runtime_ocaml_Runtime[29], _eK_, _AB_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eL_, [0], _Au_, _At_); + } + function _yE_(param){ + function _Ah_(param){ + var + _Aq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1), + _Ar_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _Ar_, _Aq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$3); + var _As_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1259); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _As_); + } + function _Ai_(param){ + var + _Aj_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _Ak_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _Aj_), + _Al_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _Am_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Al_), + _An_ = caml_call2(Runtime_ocaml_Runtime[83], _Am_, _Ak_), + _Ao_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eM_), + _Ap_ = caml_call2(Runtime_ocaml_Runtime[83], _Ao_, _An_); + return caml_call2(Runtime_ocaml_Runtime[29], _eN_, _Ap_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eO_, [0], _Ai_, _Ah_); + } + function _yF_(param){ + function _z7_(param){ + var + _Ae_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$2), + _Af_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _Af_, _Ae_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$4); + var _Ag_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1089); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _Ag_); + } + function _z8_(param){ + var + _z9_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _z__ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _z9_), + _z$_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _Aa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _z$_), + _Ab_ = caml_call2(Runtime_ocaml_Runtime[83], _Aa_, _z__), + _Ac_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eP_), + _Ad_ = caml_call2(Runtime_ocaml_Runtime[83], _Ac_, _Ab_); + return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, _Ad_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _z8_, _z7_); + } + function _yG_(param){ + function _zV_(param){ + var + _z4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$3), + _z5_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _z5_, _z4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$5); + var _z6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0918); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _z6_); + } + function _zW_(param){ + var + _zX_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _zY_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zX_), + _zZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _z0_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zZ_), + _z1_ = caml_call2(Runtime_ocaml_Runtime[83], _z0_, _zY_), + _z2_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eS_), + _z3_ = caml_call2(Runtime_ocaml_Runtime[83], _z2_, _z1_); + return caml_call2(Runtime_ocaml_Runtime[29], _eT_, _z3_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eU_, [0], _zW_, _zV_); + } + function _yH_(param){ + function _zJ_(param){ + var + _zS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$4), + _zT_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zT_, _zS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$6); + var _zU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0842); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zU_); + } + function _zK_(param){ + var + _zL_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _zM_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zL_), + _zN_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _zO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zN_), + _zP_ = caml_call2(Runtime_ocaml_Runtime[83], _zO_, _zM_), + _zQ_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eV_), + _zR_ = caml_call2(Runtime_ocaml_Runtime[83], _zQ_, _zP_); + return caml_call2(Runtime_ocaml_Runtime[29], _eW_, _zR_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eX_, [0], _zK_, _zJ_); + } + function _yI_(param){ + function _zx_(param){ + var + _zG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$5), + _zH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zH_, _zG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$7); + var _zI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0766); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zI_); + } + function _zy_(param){ + var + _zz_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _zA_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zz_), + _zB_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _zC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zB_), + _zD_ = caml_call2(Runtime_ocaml_Runtime[83], _zC_, _zA_), + _zE_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eY_), + _zF_ = caml_call2(Runtime_ocaml_Runtime[83], _zE_, _zD_); + return caml_call2(Runtime_ocaml_Runtime[29], _eZ_, _zF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e0_, [0], _zy_, _zx_); + } + function _yJ_(param){ + function _zl_(param){ + var + _zu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$6), + _zv_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zv_, _zu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$8); + var _zw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_069); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zw_); + } + function _zm_(param){ + var + _zn_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _zo_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zn_), + _zp_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _zq_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zp_), + _zr_ = caml_call2(Runtime_ocaml_Runtime[83], _zq_, _zo_), + _zs_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e1_), + _zt_ = caml_call2(Runtime_ocaml_Runtime[83], _zs_, _zr_); + return caml_call2(Runtime_ocaml_Runtime[29], _e2_, _zt_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e3_, [0], _zm_, _zl_); + } + function _yK_(param){ + function _y$_(param){ + var + _zi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7), + _zj_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _zj_, _zi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$9); + var _zk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0615); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _zk_); + } + function _za_(param){ + var + _zb_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _zc_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _zb_), + _zd_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _ze_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _zd_), + _zf_ = caml_call2(Runtime_ocaml_Runtime[83], _ze_, _zc_), + _zg_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e4_), + _zh_ = caml_call2(Runtime_ocaml_Runtime[83], _zg_, _zf_); + return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _zh_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e6_, [0], _za_, _y$_); + } + function _yL_(param){ + function _yZ_(param){ + var + _y8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8), + _y9_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _y9_, _y8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$10); + var _y__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0539); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _y__); + } + function _y0_(param){ + var + _y1_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _y2_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _y1_), + _y3_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _y4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _y3_), + _y5_ = caml_call2(Runtime_ocaml_Runtime[83], _y4_, _y2_), + _y6_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e7_), + _y7_ = caml_call2(Runtime_ocaml_Runtime[83], _y6_, _y5_); + return caml_call2(Runtime_ocaml_Runtime[29], _e8_, _y7_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _e9_, [0], _y0_, _yZ_); + } + var + _yM_ = + [0, + function(param){ + function _yN_(param){ + var + _yW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9), + _yX_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _yX_, _yW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$11); + var + _yY_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0463$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yY_); + } + function _yO_(param){ + var + _yP_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _yQ_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _yP_), + _yR_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _yS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _yR_), + _yT_ = caml_call2(Runtime_ocaml_Runtime[83], _yS_, _yQ_), + _yU_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _e__), + _yV_ = caml_call2(Runtime_ocaml_Runtime[83], _yU_, _yT_); + return caml_call2(Runtime_ocaml_Runtime[29], _e$_, _yV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fa_, [0], _yO_, _yN_); + }, + _yL_, + _yK_, + _yJ_, + _yI_, + _yH_, + _yG_, + _yF_, + _yE_, + _yD_]; + return caml_call4(Runtime_ocaml_Runtime[63], _fb_, _yM_, _yC_, _yB_); + }], + _mu_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, _mt_, _ms_, _mr_); + } + catch(_yA_){ + var _mq_ = caml_wrap_exception(_yA_); + if(_mq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eH_], 1); + throw caml_maybe_attach_backtrace(_mq_, 0); + } + var + montant_initial_base_troisieme = + caml_call3 + (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _mu_); + try{ + var + _mw_ = + function(param){ + var + _yz_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + return caml_call1(Runtime_ocaml_Runtime[69], _yz_); + }, + _mx_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); + }, + _my_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _mx_, _mw_); + } + catch(_yy_){ + var _mv_ = caml_wrap_exception(_yy_); + if(_mv_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fe_], 1); + throw caml_maybe_attach_backtrace(_mv_, 0); + } + var + nombre_total_enfants = + caml_call3 + (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[15], _my_); + try{ + var + _mA_ = + function(param){ + function _yr_(enfant){ + var + _yv_ = + caml_call3(Runtime_ocaml_Runtime[28], _fj_, embed_enfant, enfant), + _yw_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _fk_, prise_en_compte), + _yv_), + _yx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _fl_, embed_prise_en_compte, _yw_); + switch(caml_call2(Runtime_ocaml_Runtime[27], _fm_, _yx_)[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[39], cst_1$2); + case 1: + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); + default: return caml_call1(Runtime_ocaml_Runtime[39], cst_0$12); + } + } + var + _ys_ = + caml_call2 + (Runtime_ocaml_Runtime[87], _yr_, enfants_a_charge_droit_ouvert_), + _yt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$13); + function _yu_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _yu_, _yt_, _ys_); + }, + _mB_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _fn_, 1); + }, + _mC_ = caml_call4(Runtime_ocaml_Runtime[63], _fo_, [0], _mB_, _mA_); + } + catch(_yq_){ + var _mz_ = caml_wrap_exception(_yq_); + if(_mz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fi_], 1); + throw caml_maybe_attach_backtrace(_mz_, 0); + } + var + nombre_moyen_enfants = + caml_call3 + (Runtime_ocaml_Runtime[28], _fp_, Runtime_ocaml_Runtime[15], _mC_); + try{ + var + _mE_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); + }, + _mF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _fr_, 1); + }, + _mG_ = + function(param){ + function _yj_(param){ + var _yp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yp_); + } + function _yk_(param){ + var + _yl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$3), + _ym_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _yn_ = caml_call2(Runtime_ocaml_Runtime[86], _ym_, _yl_), + _yo_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _yn_); + return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _yo_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ft_, [0], _yk_, _yj_); + }, + _mH_ = + [0, + function(param){ + function _vJ_(param){ + var + _yg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$15), + _yh_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _yh_, _yg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); + var _yi_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0588$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _yi_); + } + function _vK_(param){ + var _yf_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _fu_); + return caml_call2(Runtime_ocaml_Runtime[29], _fv_, _yf_); + } + var + _vL_ = + [0, + function(param){ + function _vM_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _vN_(param){return 0;} + function _vO_(param){ + function _x$_(param){ + var + _yd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$17), + _ye_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + return caml_call2(Runtime_ocaml_Runtime[121], _ye_, _yd_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_5728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); + } + function _ya_(param){ + var + _yb_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fw_), + _yc_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _yb_, + avait_enfant_a_charge_avant_1e); + return caml_call2(Runtime_ocaml_Runtime[29], _fx_, _yc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fy_, [0], _ya_, _x$_); + } + function _vP_(param){ + function _xX_(param){ + var + _x8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$19), + _x9_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _x9_, _x8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); + var _x__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0717); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _x__); + } + function _xY_(param){ + var + _xZ_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _x0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _x1_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _x0_), + _x2_ = caml_call2(Runtime_ocaml_Runtime[83], _x1_, _xZ_), + _x3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _x4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _x3_), + _x5_ = caml_call2(Runtime_ocaml_Runtime[83], _x4_, _x2_), + _x6_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fz_), + _x7_ = caml_call2(Runtime_ocaml_Runtime[83], _x6_, _x5_); + return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _x7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fB_, [0], _xY_, _xX_); + } + function _vQ_(param){ + function _xJ_(param){ + var + _xU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$21), + _xV_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xV_, _xU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$22); + var _xW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0847); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xW_); + } + function _xK_(param){ + var + _xL_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _xN_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xM_), + _xO_ = caml_call2(Runtime_ocaml_Runtime[83], _xN_, _xL_), + _xP_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _xQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xP_), + _xR_ = caml_call2(Runtime_ocaml_Runtime[83], _xQ_, _xO_), + _xS_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fC_), + _xT_ = caml_call2(Runtime_ocaml_Runtime[83], _xS_, _xR_); + return caml_call2(Runtime_ocaml_Runtime[29], _fD_, _xT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fE_, [0], _xK_, _xJ_); + } + function _vR_(param){ + function _xv_(param){ + var + _xG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23), + _xH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xH_, _xG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$24); + var _xI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0976); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xI_); + } + function _xw_(param){ + var + _xx_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xy_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _xz_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xy_), + _xA_ = caml_call2(Runtime_ocaml_Runtime[83], _xz_, _xx_), + _xB_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _xC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xB_), + _xD_ = caml_call2(Runtime_ocaml_Runtime[83], _xC_, _xA_), + _xE_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fF_), + _xF_ = caml_call2(Runtime_ocaml_Runtime[83], _xE_, _xD_); + return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _xF_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fH_, [0], _xw_, _xv_); + } + function _vS_(param){ + function _xh_(param){ + var + _xs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25), + _xt_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xt_, _xs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$26); + var _xu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1105); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xu_); + } + function _xi_(param){ + var + _xj_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _xk_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _xl_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _xk_), + _xm_ = caml_call2(Runtime_ocaml_Runtime[83], _xl_, _xj_), + _xn_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _xo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _xn_), + _xp_ = caml_call2(Runtime_ocaml_Runtime[83], _xo_, _xm_), + _xq_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fI_), + _xr_ = caml_call2(Runtime_ocaml_Runtime[83], _xq_, _xp_); + return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _xr_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fK_, [0], _xi_, _xh_); + } + function _vT_(param){ + function _w5_(param){ + var + _xe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27), + _xf_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _xf_, _xe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$28); + var _xg_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1163); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _xg_); + } + function _w6_(param){ + var + _w7_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _w8_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _w9_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _w8_), + _w__ = caml_call2(Runtime_ocaml_Runtime[83], _w9_, _w7_), + _w$_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _xa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _w$_), + _xb_ = caml_call2(Runtime_ocaml_Runtime[83], _xa_, _w__), + _xc_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fL_), + _xd_ = caml_call2(Runtime_ocaml_Runtime[83], _xc_, _xb_); + return caml_call2(Runtime_ocaml_Runtime[29], _fM_, _xd_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fN_, [0], _w6_, _w5_); + } + function _vU_(param){ + function _wR_(param){ + var + _w2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29), + _w3_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _w3_, _w2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$30); + var _w4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_122); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _w4_); + } + function _wS_(param){ + var + _wT_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _wU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _wV_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wU_), + _wW_ = caml_call2(Runtime_ocaml_Runtime[83], _wV_, _wT_), + _wX_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _wY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wX_), + _wZ_ = caml_call2(Runtime_ocaml_Runtime[83], _wY_, _wW_), + _w0_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fO_), + _w1_ = caml_call2(Runtime_ocaml_Runtime[83], _w0_, _wZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _w1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fQ_, [0], _wS_, _wR_); + } + function _vV_(param){ + function _wD_(param){ + var + _wO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$31), + _wP_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wP_, _wO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$32); + var _wQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1278); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wQ_); + } + function _wE_(param){ + var + _wF_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _wG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _wH_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _wG_), + _wI_ = caml_call2(Runtime_ocaml_Runtime[83], _wH_, _wF_), + _wJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _wK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wJ_), + _wL_ = caml_call2(Runtime_ocaml_Runtime[83], _wK_, _wI_), + _wM_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fR_), + _wN_ = caml_call2(Runtime_ocaml_Runtime[83], _wM_, _wL_); + return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _wN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fT_, [0], _wE_, _wD_); + } + function _vW_(param){ + function _wp_(param){ + var + _wA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$33), + _wB_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wB_, _wA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$34); + var _wC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1335); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wC_); + } + function _wq_(param){ + var + _wr_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _ws_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _wt_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ws_), + _wu_ = caml_call2(Runtime_ocaml_Runtime[83], _wt_, _wr_), + _wv_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _ww_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wv_), + _wx_ = caml_call2(Runtime_ocaml_Runtime[83], _ww_, _wu_), + _wy_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fU_), + _wz_ = caml_call2(Runtime_ocaml_Runtime[83], _wy_, _wx_); + return caml_call2(Runtime_ocaml_Runtime[29], _fV_, _wz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fW_, [0], _wq_, _wp_); + } + function _vX_(param){ + function _wb_(param){ + var + _wm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$35), + _wn_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _wn_, _wm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$36); + var _wo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1393); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wo_); + } + function _wc_(param){ + var + _wd_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _we_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _wf_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _we_), + _wg_ = caml_call2(Runtime_ocaml_Runtime[83], _wf_, _wd_), + _wh_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _wi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _wh_), + _wj_ = caml_call2(Runtime_ocaml_Runtime[83], _wi_, _wg_), + _wk_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _fX_), + _wl_ = caml_call2(Runtime_ocaml_Runtime[83], _wk_, _wj_); + return caml_call2(Runtime_ocaml_Runtime[29], _fY_, _wl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fZ_, [0], _wc_, _wb_); + } + var + _vY_ = + [0, + function(param){ + function _vZ_(param){ + var + _v__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37), + _v$_ = caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cO3_=caml_call2(Runtime_ocaml_Runtime[86],_cO2_,_cO1_), - _cO4_= + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _v$_, _v__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$38); + var _wa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_145); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _wa_); + } + function _v0_(param){ + var + _v1_ = + caml_call1 + (Runtime_ocaml_Runtime[67], avait_enfant_a_charge_avant_1e), + _v2_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _v3_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _v2_), + _v4_ = caml_call2(Runtime_ocaml_Runtime[83], _v3_, _v1_), + _v5_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _v6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _v5_), + _v7_ = caml_call2(Runtime_ocaml_Runtime[83], _v6_, _v4_), + _v8_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _f0_), + _v9_ = caml_call2(Runtime_ocaml_Runtime[83], _v8_, _v7_); + return caml_call2(Runtime_ocaml_Runtime[29], _f1_, _v9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _f2_, [0], _v0_, _vZ_); + }, + _vX_, + _vW_, + _vV_, + _vU_, + _vT_, + _vS_, + _vR_, + _vQ_, + _vP_, + _vO_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f3_, _vY_, _vN_, _vM_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _f4_, _vL_, _vK_, _vJ_); + }, + _mG_], + _mI_ = caml_call4(Runtime_ocaml_Runtime[63], _f5_, _mH_, _mF_, _mE_); + } + catch(_vI_){ + var _mD_ = caml_wrap_exception(_vI_); + if(_mD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fq_], 1); + throw caml_maybe_attach_backtrace(_mD_, 0); + } + var + montant_initial_base_premier_e = + caml_call3 + (Runtime_ocaml_Runtime[28], _f6_, Runtime_ocaml_Runtime[13], _mI_); + try{ + var + _mK_ = function(param){return 0;}, + _mL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _f8_, 1); + }, + _mM_ = + [0, + function(param){ + function _vl_(param){return 1;} + function _vm_(param){ + var + _vF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10), + _vG_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vH_ = caml_call2(Runtime_ocaml_Runtime[126], _vG_, _vF_); + return caml_call2(Runtime_ocaml_Runtime[29], _f9_, _vH_); + } + var + _vn_ = + [0, + function(param){ + function _vo_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _vp_(param){return 0;} + var + _vq_ = + [0, + function(param){ + function _vr_(param){return 1;} + function _vs_(param){ + var + _vB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$4), + _vC_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vD_ = caml_call2(Runtime_ocaml_Runtime[126], _vC_, _vB_), + _vE_ = caml_call2 (Runtime_ocaml_Runtime[83], prestations_familiales_dot_reg, - _cO3_); - return caml_call2(Runtime_ocaml_Runtime[29],_ey_,_cO4_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ez_,[0],_cO0_,_cOZ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_eA_,_cOY_,_cOX_,_cOW_)}], - _cOU_=caml_call4(Runtime_ocaml_Runtime[63],_eB_,_cOT_,_cOS_,_cOR_); - return _cOU_} - catch(_cOV_) - {_cOV_ = caml_wrap_exception(_cOV_); - if(_cOV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_er_]; - throw _cOV_}} - var - droit_ouvert_forfaitaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_eC_,Runtime_ocaml_Runtime[10],_cAK_); - try - {var - _cAL_= - function(param) - {var - _cOJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$1), - _cOK_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cOK_,_cOJ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$0); - var - _cOL_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$2), - _cOM_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cON_=caml_call2(Runtime_ocaml_Runtime[96],_cOM_,_cOL_), - _cOO_=caml_call1(Runtime_ocaml_Runtime[69],_cON_), - _cOP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463), - _cOQ_= - caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOP_); - return caml_call2(Runtime_ocaml_Runtime[104],_cOQ_,_cOO_)}, - _cAM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eE_,1)}, - _cAN_=caml_call4(Runtime_ocaml_Runtime[63],_eF_,[0],_cAM_,_cAL_)} - catch(_cOI_) - {_cOI_ = caml_wrap_exception(_cOI_); - if(_cOI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_eD_]; - throw _cOI_} - var - montant_initial_base_quatrieme= - caml_call3 - (Runtime_ocaml_Runtime[28],_eG_,Runtime_ocaml_Runtime[13],_cAN_); - try - {var - _cAO_= - function(param) - {var - _cOF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2), - _cOG_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cOG_,_cOF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$1); - var _cOH_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOH_)}, - _cAP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_eI_,1)}, - _cAQ_= - [0, - function(param) - {function _cMB_(param){throw Runtime_ocaml_Runtime[2]} - function _cMC_(param){return 0} - function _cMD_(param) - {function _cOt_(param) - {var - _cOC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$0), - _cOD_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cOD_,_cOC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$2); - var _cOE_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_143); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOE_)} - function _cOu_(param) - {var - _cOv_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cOw_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cOv_), - _cOx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cOy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cOx_), - _cOz_=caml_call2(Runtime_ocaml_Runtime[83],_cOy_,_cOw_), - _cOA_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eJ_), - _cOB_=caml_call2(Runtime_ocaml_Runtime[83],_cOA_,_cOz_); - return caml_call2(Runtime_ocaml_Runtime[29],_eK_,_cOB_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eL_,[0],_cOu_,_cOt_)} - function _cME_(param) - {function _cOh_(param) - {var - _cOq_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$1), - _cOr_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cOr_,_cOq_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$3); - var _cOs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1259); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOs_)} - function _cOi_(param) - {var - _cOj_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cOk_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cOj_), - _cOl_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cOm_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cOl_), - _cOn_=caml_call2(Runtime_ocaml_Runtime[83],_cOm_,_cOk_), - _cOo_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eM_), - _cOp_=caml_call2(Runtime_ocaml_Runtime[83],_cOo_,_cOn_); - return caml_call2(Runtime_ocaml_Runtime[29],_eN_,_cOp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eO_,[0],_cOi_,_cOh_)} - function _cMF_(param) - {function _cN7_(param) - {var - _cOe_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$2), - _cOf_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cOf_,_cOe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$4); - var _cOg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1089); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cOg_)} - function _cN8_(param) - {var - _cN9_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cN__= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cN9_), - _cN$_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cOa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cN$_), - _cOb_=caml_call2(Runtime_ocaml_Runtime[83],_cOa_,_cN__), - _cOc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eP_), - _cOd_=caml_call2(Runtime_ocaml_Runtime[83],_cOc_,_cOb_); - return caml_call2(Runtime_ocaml_Runtime[29],_eQ_,_cOd_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eR_,[0],_cN8_,_cN7_)} - function _cMG_(param) - {function _cNV_(param) - {var - _cN4_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$3), - _cN5_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cN5_,_cN4_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$5); - var _cN6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0918); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cN6_)} - function _cNW_(param) - {var - _cNX_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _cNY_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNX_), - _cNZ_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _cN0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNZ_), - _cN1_=caml_call2(Runtime_ocaml_Runtime[83],_cN0_,_cNY_), - _cN2_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eS_), - _cN3_=caml_call2(Runtime_ocaml_Runtime[83],_cN2_,_cN1_); - return caml_call2(Runtime_ocaml_Runtime[29],_eT_,_cN3_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eU_,[0],_cNW_,_cNV_)} - function _cMH_(param) - {function _cNJ_(param) - {var - _cNS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$4), - _cNT_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cNT_,_cNS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$6); - var _cNU_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0842); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNU_)} - function _cNK_(param) - {var - _cNL_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _cNM_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNL_), - _cNN_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _cNO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNN_), - _cNP_=caml_call2(Runtime_ocaml_Runtime[83],_cNO_,_cNM_), - _cNQ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eV_), - _cNR_=caml_call2(Runtime_ocaml_Runtime[83],_cNQ_,_cNP_); - return caml_call2(Runtime_ocaml_Runtime[29],_eW_,_cNR_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_eX_,[0],_cNK_,_cNJ_)} - function _cMI_(param) - {function _cNx_(param) - {var - _cNG_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$5), - _cNH_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cNH_,_cNG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$7); - var _cNI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0766); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNI_)} - function _cNy_(param) - {var - _cNz_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _cNA_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNz_), - _cNB_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _cNC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNB_), - _cND_=caml_call2(Runtime_ocaml_Runtime[83],_cNC_,_cNA_), - _cNE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_eY_), - _cNF_=caml_call2(Runtime_ocaml_Runtime[83],_cNE_,_cND_); - return caml_call2(Runtime_ocaml_Runtime[29],_eZ_,_cNF_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e0_,[0],_cNy_,_cNx_)} - function _cMJ_(param) - {function _cNl_(param) - {var - _cNu_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$6), - _cNv_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cNv_,_cNu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$8); - var _cNw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_069); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNw_)} - function _cNm_(param) - {var - _cNn_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _cNo_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNn_), - _cNp_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _cNq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNp_), - _cNr_=caml_call2(Runtime_ocaml_Runtime[83],_cNq_,_cNo_), - _cNs_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e1_), - _cNt_=caml_call2(Runtime_ocaml_Runtime[83],_cNs_,_cNr_); - return caml_call2(Runtime_ocaml_Runtime[29],_e2_,_cNt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e3_,[0],_cNm_,_cNl_)} - function _cMK_(param) - {function _cM$_(param) - {var - _cNi_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$7), - _cNj_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cNj_,_cNi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$9); - var _cNk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0615); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cNk_)} - function _cNa_(param) - {var - _cNb_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _cNc_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cNb_), - _cNd_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _cNe_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cNd_), - _cNf_=caml_call2(Runtime_ocaml_Runtime[83],_cNe_,_cNc_), - _cNg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e4_), - _cNh_=caml_call2(Runtime_ocaml_Runtime[83],_cNg_,_cNf_); - return caml_call2(Runtime_ocaml_Runtime[29],_e5_,_cNh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e6_,[0],_cNa_,_cM$_)} - function _cML_(param) - {function _cMZ_(param) - {var - _cM8_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$8), - _cM9_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cM9_,_cM8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$10); - var _cM__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0539); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cM__)} - function _cM0_(param) - {var - _cM1_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _cM2_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cM1_), - _cM3_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _cM4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cM3_), - _cM5_=caml_call2(Runtime_ocaml_Runtime[83],_cM4_,_cM2_), - _cM6_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e7_), - _cM7_=caml_call2(Runtime_ocaml_Runtime[83],_cM6_,_cM5_); - return caml_call2(Runtime_ocaml_Runtime[29],_e8_,_cM7_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_e9_,[0],_cM0_,_cMZ_)} - var - _cMM_= - [0, - function(param) - {function _cMN_(param) - {var - _cMW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$9), - _cMX_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cMX_,_cMW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$11); + _vD_); + return caml_call2(Runtime_ocaml_Runtime[29], _f__, _vE_); + } var - _cMY_= - caml_call1(Runtime_ocaml_Runtime[39],cst_0_0463$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMY_)} - function _cMO_(param) - {var - _cMP_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _cMQ_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cMP_), - _cMR_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _cMS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cMR_), - _cMT_=caml_call2(Runtime_ocaml_Runtime[83],_cMS_,_cMQ_), - _cMU_=caml_call2(Runtime_ocaml_Runtime[86],residence,_e__), - _cMV_=caml_call2(Runtime_ocaml_Runtime[83],_cMU_,_cMT_); - return caml_call2(Runtime_ocaml_Runtime[29],_e$_,_cMV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fa_,[0],_cMO_,_cMN_)}, - _cML_, - _cMK_, - _cMJ_, - _cMI_, - _cMH_, - _cMG_, - _cMF_, - _cME_, - _cMD_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_fb_,_cMM_,_cMC_,_cMB_)}], - _cAR_=caml_call4(Runtime_ocaml_Runtime[63],_fc_,_cAQ_,_cAP_,_cAO_)} - catch(_cMA_) - {_cMA_ = caml_wrap_exception(_cMA_); - if(_cMA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_eH_]; - throw _cMA_} + _vt_ = + [0, + function(param){ + function _vu_(param){return 1;} + function _vv_(param){ + var + _vw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5), + _vx_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _vy_ = caml_call2(Runtime_ocaml_Runtime[126], _vx_, _vw_), + _vz_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _f$_), + _vA_ = caml_call2(Runtime_ocaml_Runtime[83], _vz_, _vy_); + return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _vA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gb_, [0], _vv_, _vu_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gc_, _vt_, _vs_, _vr_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gd_, _vq_, _vp_, _vo_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _ge_, _vn_, _vm_, _vl_); + }], + _mN_ = caml_call4(Runtime_ocaml_Runtime[63], _gf_, _mM_, _mL_, _mK_); + } + catch(_vk_){ + var _mJ_ = caml_wrap_exception(_vk_); + if(_mJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _f7_], 1); + throw caml_maybe_attach_backtrace(_mJ_, 0); + } + var + droit_ouvert_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _gg_, Runtime_ocaml_Runtime[12], _mN_); + function _mO_(enfant){ + try{ var - montant_initial_base_troisieme= - caml_call3 - (Runtime_ocaml_Runtime[28],_fd_,Runtime_ocaml_Runtime[13],_cAR_); - try - {var - _cAS_= - function(param) - {var - _cMz_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - return caml_call1(Runtime_ocaml_Runtime[69],_cMz_)}, - _cAT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ff_,1)}, - _cAU_=caml_call4(Runtime_ocaml_Runtime[63],_fg_,[0],_cAT_,_cAS_)} - catch(_cMy_) - {_cMy_ = caml_wrap_exception(_cMy_); - if(_cMy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fe_]; - throw _cMy_} - var - nombre_total_enfants= - caml_call3 - (Runtime_ocaml_Runtime[28],_fh_,Runtime_ocaml_Runtime[15],_cAU_); - try - {var - _cAV_= - function(param) - {function _cMr_(enfant) - {var - _cMv_= - caml_call3(Runtime_ocaml_Runtime[28],_fj_,embed_enfant,enfant), - _cMw_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_fk_,prise_en_compte), - _cMv_), - _cMx_= - caml_call3 - (Runtime_ocaml_Runtime[28],_fl_,embed_prise_en_compte,_cMw_), - match=caml_call2(Runtime_ocaml_Runtime[27],_fm_,_cMx_); - switch(match[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[39],cst_1$2); - case 1:return caml_call1(Runtime_ocaml_Runtime[39],cst_0_5); - default:return caml_call1(Runtime_ocaml_Runtime[39],cst_0$12)}} + _uR_ = function(param){return 0;}, + _uS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _gi_, 1); + }, + _uT_ = + [0, + function(param){ + function _uW_(param){return 1;} + function _uX_(param){ var - _cMs_= - caml_call2 - (Runtime_ocaml_Runtime[87], - _cMr_, - enfants_a_charge_droit_ouvert_), - _cMt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$13); - function _cMu_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - return caml_call3(Runtime_ocaml_Runtime[88],_cMu_,_cMt_,_cMs_)}, - _cAW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fn_,1)}, - _cAX_=caml_call4(Runtime_ocaml_Runtime[63],_fo_,[0],_cAW_,_cAV_)} - catch(_cMq_) - {_cMq_ = caml_wrap_exception(_cMq_); - if(_cMq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fi_]; - throw _cMq_} + _u__ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gj_, embed_enfant, enfant), + _u$_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _gk_, + age_minimum_alinea_1_l521_3), + _u__), + _va_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _gl_, + Runtime_ocaml_Runtime[17], + _u$_), + _vb_ = caml_call2(Runtime_ocaml_Runtime[27], _gm_, _va_), + _vc_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _vb_), + _vd_ = + caml_call2(Runtime_ocaml_Runtime[120], _vc_, date_courante), + _ve_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gn_, embed_enfant, enfant), + _vf_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _go_, est_enfant_le_plus_age), + _ve_), + _vg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _gp_, + Runtime_ocaml_Runtime[12], + _vf_), + _vh_ = caml_call2(Runtime_ocaml_Runtime[27], _gq_, _vg_), + _vi_ = caml_call1(Runtime_ocaml_Runtime[67], _vh_), + _vj_ = caml_call2(Runtime_ocaml_Runtime[83], _vi_, _vd_); + return caml_call2(Runtime_ocaml_Runtime[29], _gr_, _vj_); + } + var + _uY_ = + [0, + function(param){ + function _uZ_(param){return 1;} + function _u0_(param){ + var + _u1_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gs_, embed_enfant, enfant), + _u2_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _gt_, + age_minimum_alinea_1_l521_3), + _u1_), + _u3_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _gu_, + Runtime_ocaml_Runtime[17], + _u2_), + _u4_ = caml_call2(Runtime_ocaml_Runtime[27], _gv_, _u3_), + _u5_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _u4_), + _u6_ = + caml_call2(Runtime_ocaml_Runtime[120], _u5_, date_courante), + _u7_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _u8_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + _u7_, + nombre_enfants_alinea_2_l521_3), + _u9_ = caml_call2(Runtime_ocaml_Runtime[83], _u8_, _u6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gw_, _u9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gx_, [0], _u0_, _uZ_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gy_, _uY_, _uX_, _uW_); + }], + _uU_ = caml_call4(Runtime_ocaml_Runtime[63], _gz_, _uT_, _uS_, _uR_); + return _uU_; + } + catch(_uV_){ + var _uQ_ = caml_wrap_exception(_uV_); + if(_uQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gh_], 1); + throw caml_maybe_attach_backtrace(_uQ_, 0); + } + } + var + droit_ouvert_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _gA_, Runtime_ocaml_Runtime[10], _mO_); + function _mP_(allocation){ + try{ var - nombre_moyen_enfants= - caml_call3 - (Runtime_ocaml_Runtime[28],_fp_,Runtime_ocaml_Runtime[15],_cAX_); - try - {var - _cAY_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$14)}, - _cAZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_fr_,1)}, - _cA0_= - function(param) - {function _cMj_(param) - {var _cMp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMp_)} - function _cMk_(param) - {var - _cMl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$3), - _cMm_= + _ud_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$39); + }, + _ue_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _gC_, 1); + }, + _uf_ = + [0, + function(param){ + function _ui_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _uj_(param){return 0;} + function _uk_(param){ + function _uB_(param){ + var + _uJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), + _uK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$6), + _uL_ = caml_call2(Runtime_ocaml_Runtime[107], _uK_, _uJ_), + _uM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), + _uN_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uM_), + _uO_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uN_), + _uP_ = + caml_call2(Runtime_ocaml_Runtime[98], _uO_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _uP_, _uL_); + } + function _uC_(param){ + var + _uD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), + _uE_ = caml_call2(Runtime_ocaml_Runtime[104], allocation, _uD_), + _uF_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _uE_), + _uG_ = + caml_call2 + (Runtime_ocaml_Runtime[118], ressources_menage, _uF_), + _uH_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _uI_ = caml_call2(Runtime_ocaml_Runtime[83], _uH_, _uG_); + return caml_call2(Runtime_ocaml_Runtime[29], _gD_, _uI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gE_, [0], _uC_, _uB_); + } + var + _ul_ = + [0, + function(param){ + function _um_(param){ + var + _uu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), + _uv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$7), + _uw_ = caml_call2(Runtime_ocaml_Runtime[107], _uv_, _uu_), + _ux_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), + _uy_ = + caml_call2(Runtime_ocaml_Runtime[104], allocation, _ux_), + _uz_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _uy_), + _uA_ = + caml_call2 + (Runtime_ocaml_Runtime[98], _uz_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _uA_, _uw_); + } + function _un_(param){ + var + _uo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$4), + _up_ = + caml_call2(Runtime_ocaml_Runtime[104], allocation, _uo_), + _uq_ = + caml_call2 + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _up_), + _ur_ = + caml_call2 + (Runtime_ocaml_Runtime[118], ressources_menage, _uq_), + _us_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _ut_ = caml_call2(Runtime_ocaml_Runtime[83], _us_, _ur_); + return caml_call2(Runtime_ocaml_Runtime[29], _gF_, _ut_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gG_, [0], _un_, _um_); + }, + _uk_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gH_, _ul_, _uj_, _ui_); + }], + _ug_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _uf_, _ue_, _ud_); + return _ug_; + } + catch(_uh_){ + var _uc_ = caml_wrap_exception(_uh_); + if(_uc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gB_], 1); + throw caml_maybe_attach_backtrace(_uc_, 0); + } + } + var + complement_degressif = + caml_call3 + (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[10], _mP_); + try{ + var + _mR_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _mS_ = function(param){return 0;}, + _mT_ = + function(param){ + function _t__(param){ + var _ub_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_05059); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ub_); + } + function _t$_(param){ + var + _ua_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _ua_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gM_, [0], _t$_, _t__); + }, + _mU_ = + function(param){ + function _t4_(param){ + var _t9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_10117); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t9_); + } + function _t5_(param){ + var + _t6_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _t7_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _t8_ = caml_call2(Runtime_ocaml_Runtime[83], _t7_, _t6_); + return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _t8_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gO_, [0], _t5_, _t4_); + }, + _mV_ = + [0, + function(param){ + function _t0_(param){ + var _t3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_20234); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _t3_); + } + function _t1_(param){ + var + _t2_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _t2_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gQ_, [0], _t1_, _t0_); + }, + _mU_, + _mT_], + _mW_ = caml_call4(Runtime_ocaml_Runtime[63], _gR_, _mV_, _mS_, _mR_); + } + catch(_tZ_){ + var _mQ_ = caml_wrap_exception(_tZ_); + if(_mQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gK_], 1); + throw caml_maybe_attach_backtrace(_mQ_, 0); + } + var + montant_verse_forfaitaire_par_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _gS_, Runtime_ocaml_Runtime[13], _mW_); + try{ + var + _mY_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _mZ_ = function(param){return 0;}, + _m0_ = + function(param){ + function _tO_(param){ + var + _tR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11), + _tS_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tS_, _tR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$40); + var + _tT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12), + _tU_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tV_ = caml_call2(Runtime_ocaml_Runtime[96], _tU_, _tT_), + _tW_ = caml_call1(Runtime_ocaml_Runtime[69], _tV_), + _tX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_1025), + _tY_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tX_); + return caml_call2(Runtime_ocaml_Runtime[104], _tY_, _tW_); + } + function _tP_(param){ + var + _tQ_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _tQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gV_, [0], _tP_, _tO_); + }, + _m1_ = + function(param){ + function _tB_(param){ + var + _tG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13), + _tH_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tH_, _tG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$41); + var + _tI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14), + _tJ_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tK_ = caml_call2(Runtime_ocaml_Runtime[96], _tJ_, _tI_), + _tL_ = caml_call1(Runtime_ocaml_Runtime[69], _tK_), + _tM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_205), + _tN_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tM_); + return caml_call2(Runtime_ocaml_Runtime[104], _tN_, _tL_); + } + function _tC_(param){ + var + _tD_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _tE_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _tF_ = caml_call2(Runtime_ocaml_Runtime[83], _tE_, _tD_); + return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _tF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gX_, [0], _tC_, _tB_); + }, + _m2_ = + [0, + function(param){ + function _tq_(param){ + var + _tt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15), + _tu_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tu_, _tt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$42); + var + _tv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16), + _tw_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _tx_ = caml_call2(Runtime_ocaml_Runtime[96], _tw_, _tv_), + _ty_ = caml_call1(Runtime_ocaml_Runtime[69], _tx_), + _tz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_41), + _tA_ = + caml_call2(Runtime_ocaml_Runtime[104], bmaf_dot_montant, _tz_); + return caml_call2(Runtime_ocaml_Runtime[104], _tA_, _ty_); + } + function _tr_(param){ + var + _ts_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _gY_, _ts_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _gZ_, [0], _tr_, _tq_); + }, + _m1_, + _m0_], + _m3_ = caml_call4(Runtime_ocaml_Runtime[63], _g0_, _m2_, _mZ_, _mY_); + } + catch(_tp_){ + var _mX_ = caml_wrap_exception(_tp_); + if(_mX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gT_], 1); + throw caml_maybe_attach_backtrace(_mX_, 0); + } + var + montant_initial_base_troisieme$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _g1_, Runtime_ocaml_Runtime[13], _m3_); + try{ + var + _m5_ = + function(param){ + function _s2_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _s3_(param){return 0;} + function _s4_(param){ + function _tj_(param){ + var + _tm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8), + _tn_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _tn_, _tm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$43); + var _to_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _to_); + } + function _tk_(param){ + var + _tl_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _g3_, _tl_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _g4_, [0], _tk_, _tj_); + } + function _s5_(param){ + function _tb_(param){ + var + _tg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9), + _th_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _th_, _tg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$44); + var _ti_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ti_); + } + function _tc_(param){ + var + _td_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _te_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _tf_ = caml_call2(Runtime_ocaml_Runtime[83], _te_, _td_); + return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _tf_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _g6_, [0], _tc_, _tb_); + } + var + _s6_ = + [0, + function(param){ + function _s7_(param){ + var + _s__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10), + _s$_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _s$_, _s__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$45); + var _ta_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _ta_); + } + function _s8_(param){ + var + _s9_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3); + return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _s9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g8_, [0], _s8_, _s7_); + }, + _s5_, + _s4_]; + return caml_call4(Runtime_ocaml_Runtime[63], _g9_, _s6_, _s3_, _s2_); + }, + _m6_ = function(param){return 1;}, + _m7_ = + [0, + function(param){ + function _qR_(param){ + var + _sZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11), + _s0_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _s0_, _sZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$46); + var _s1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _s1_); + } + function _qS_(param){ + var _sY_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _g__); + return caml_call2(Runtime_ocaml_Runtime[29], _g$_, _sY_); + } + var + _qT_ = + [0, + function(param){ + function _qU_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _qV_(param){return 0;} + function _qW_(param){ + function _sM_(param){ + var + _sV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12), + _sW_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sW_, _sV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$47); + var _sX_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3068); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sX_); + } + function _sN_(param){ + var + _sO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _sP_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sO_), + _sQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _sR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sQ_), + _sS_ = caml_call2(Runtime_ocaml_Runtime[83], _sR_, _sP_), + _sT_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _ha_), + _sU_ = caml_call2(Runtime_ocaml_Runtime[83], _sT_, _sS_); + return caml_call2(Runtime_ocaml_Runtime[29], _hb_, _sU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hc_, [0], _sN_, _sM_); + } + function _qX_(param){ + function _sA_(param){ + var + _sJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13), + _sK_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sK_, _sJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$48); + var _sL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2936); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sL_); + } + function _sB_(param){ + var + _sC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _sD_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sC_), + _sE_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _sF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sE_), + _sG_ = caml_call2(Runtime_ocaml_Runtime[83], _sF_, _sD_), + _sH_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hd_), + _sI_ = caml_call2(Runtime_ocaml_Runtime[83], _sH_, _sG_); + return caml_call2(Runtime_ocaml_Runtime[29], _he_, _sI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hf_, [0], _sB_, _sA_); + } + function _qY_(param){ + function _so_(param){ + var + _sx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), + _sy_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sy_, _sx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$49); + var _sz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2804); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sz_); + } + function _sp_(param){ + var + _sq_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + _sr_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _sq_), + _ss_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _st_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ss_), + _su_ = caml_call2(Runtime_ocaml_Runtime[83], _st_, _sr_), + _sv_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hg_), + _sw_ = caml_call2(Runtime_ocaml_Runtime[83], _sv_, _su_); + return caml_call2(Runtime_ocaml_Runtime[29], _hh_, _sw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hi_, [0], _sp_, _so_); + } + function _qZ_(param){ + function _sc_(param){ + var + _sl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), + _sm_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sm_, _sl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$50); + var _sn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2672); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sn_); + } + function _sd_(param){ + var + _se_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _sf_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _se_), + _sg_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 1, 1), + _sh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _sg_), + _si_ = caml_call2(Runtime_ocaml_Runtime[83], _sh_, _sf_), + _sj_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hj_), + _sk_ = caml_call2(Runtime_ocaml_Runtime[83], _sj_, _si_); + return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _sk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hl_, [0], _sd_, _sc_); + } + function _q0_(param){ + function _r2_(param){ + var + _r$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), + _sa_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _sa_, _r$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$51); + var _sb_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2613); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _sb_); + } + function _r3_(param){ + var + _r4_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 12, 31), + _r5_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _r4_), + _r6_ = caml_call3(Runtime_ocaml_Runtime[57], 2016, 1, 1), + _r7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _r6_), + _r8_ = caml_call2(Runtime_ocaml_Runtime[83], _r7_, _r5_), + _r9_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hm_), + _r__ = caml_call2(Runtime_ocaml_Runtime[83], _r9_, _r8_); + return caml_call2(Runtime_ocaml_Runtime[29], _hn_, _r__); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ho_, [0], _r3_, _r2_); + } + function _q1_(param){ + function _rQ_(param){ + var + _rZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), + _r0_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _r0_, _rZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$52); + var _r1_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2555); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _r1_); + } + function _rR_(param){ + var + _rS_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 12, 31), + _rT_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rS_), + _rU_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 1, 1), + _rV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rU_), + _rW_ = caml_call2(Runtime_ocaml_Runtime[83], _rV_, _rT_), + _rX_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hp_), + _rY_ = caml_call2(Runtime_ocaml_Runtime[83], _rX_, _rW_); + return caml_call2(Runtime_ocaml_Runtime[29], _hq_, _rY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hr_, [0], _rR_, _rQ_); + } + function _q2_(param){ + function _rE_(param){ + var + _rN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), + _rO_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rO_, _rN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$53); + var _rP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2496); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rP_); + } + function _rF_(param){ + var + _rG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 12, 31), + _rH_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _rG_), + _rI_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 1, 1), + _rJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rI_), + _rK_ = caml_call2(Runtime_ocaml_Runtime[83], _rJ_, _rH_), + _rL_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hs_), + _rM_ = caml_call2(Runtime_ocaml_Runtime[83], _rL_, _rK_); + return caml_call2(Runtime_ocaml_Runtime[29], _ht_, _rM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hu_, [0], _rF_, _rE_); + } + function _q3_(param){ + function _rs_(param){ + var + _rB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), + _rC_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rC_, _rB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$54); + var _rD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2437); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rD_); + } + function _rt_(param){ + var + _ru_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 12, 31), + _rv_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ru_), + _rw_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _rx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rw_), + _ry_ = caml_call2(Runtime_ocaml_Runtime[83], _rx_, _rv_), + _rz_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hv_), + _rA_ = caml_call2(Runtime_ocaml_Runtime[83], _rz_, _ry_); + return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _rA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hx_, [0], _rt_, _rs_); + } + function _q4_(param){ + function _rg_(param){ + var + _rp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), + _rq_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _rq_, _rp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$55); + var _rr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2379); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rr_); + } + function _rh_(param){ + var + _ri_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _rj_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _ri_), + _rk_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _rl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _rk_), + _rm_ = caml_call2(Runtime_ocaml_Runtime[83], _rl_, _rj_), + _rn_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hy_), + _ro_ = caml_call2(Runtime_ocaml_Runtime[83], _rn_, _rm_); + return caml_call2(Runtime_ocaml_Runtime[29], _hz_, _ro_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hA_, [0], _rh_, _rg_); + } + var + _q5_ = + [0, + function(param){ + function _q6_(param){ + var + _rd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), + _re_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_); + if(! caml_call2(Runtime_ocaml_Runtime[121], _re_, _rd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$56); + var _rf_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _rf_); + } + function _q7_(param){ + var + _q8_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _q9_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _q8_), + _q__ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _q$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _q__), + _ra_ = caml_call2(Runtime_ocaml_Runtime[83], _q$_, _q9_), + _rb_ = + caml_call2(Runtime_ocaml_Runtime[86], residence, _hB_), + _rc_ = caml_call2(Runtime_ocaml_Runtime[83], _rb_, _ra_); + return caml_call2(Runtime_ocaml_Runtime[29], _hC_, _rc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hD_, [0], _q7_, _q6_); + }, + _q4_, + _q3_, + _q2_, + _q1_, + _q0_, + _qZ_, + _qY_, + _qX_, + _qW_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hE_, _q5_, _qV_, _qU_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _hF_, _qT_, _qS_, _qR_); + }], + _m8_ = caml_call4(Runtime_ocaml_Runtime[63], _hG_, _m7_, _m6_, _m5_); + } + catch(_qQ_){ + var _m4_ = caml_wrap_exception(_qQ_); + if(_m4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _g2_], 1); + throw caml_maybe_attach_backtrace(_m4_, 0); + } + var + montant_initial_base_deuxieme_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hH_, Runtime_ocaml_Runtime[13], _m8_); + try{ + var + _m__ = + function(param){ + var _qP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$57); + return caml_call2 + (Runtime_ocaml_Runtime[86], nombre_total_enfants, _qP_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0$58) + : caml_call2 + (Runtime_ocaml_Runtime[107], + nombre_moyen_enfants, + nombre_total_enfants); + }, + _m$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, 1); + }, + _na_ = caml_call4(Runtime_ocaml_Runtime[63], _hK_, [0], _m$_, _m__); + } + catch(_qO_){ + var _m9_ = caml_wrap_exception(_qO_); + if(_m9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hI_], 1); + throw caml_maybe_attach_backtrace(_m9_, 0); + } + var + rapport_enfants_total_moyen = + caml_call3 + (Runtime_ocaml_Runtime[28], _hL_, Runtime_ocaml_Runtime[15], _na_); + function _nb_(enfant){ + try{ + var + _p8_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _p9_ = function(param){return 0;}, + _p__ = + function(param){ + function _qH_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$59); + } + function _qI_(param){ + var + _qJ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hN_, embed_enfant, enfant), + _qK_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _hO_, droit_ouvert_majoration), + _qJ_), + _qL_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _hP_, + Runtime_ocaml_Runtime[12], + _qK_), + _qM_ = caml_call2(Runtime_ocaml_Runtime[27], _hQ_, _qL_), + _qN_ = caml_call1(Runtime_ocaml_Runtime[67], _qM_); + return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _qN_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _hS_, [0], _qI_, _qH_); + }, + _p$_ = + function(param){ + function _qy_(param){ + var _qG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qG_); + } + function _qz_(param){ + var + _qA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hT_, embed_enfant, enfant), + _qB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _hU_, droit_ouvert_majoration), + _qA_), + _qC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _hV_, + Runtime_ocaml_Runtime[12], + _qB_), + _qD_ = caml_call2(Runtime_ocaml_Runtime[27], _hW_, _qC_), + _qE_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _qF_ = caml_call2(Runtime_ocaml_Runtime[83], _qE_, _qD_); + return caml_call2(Runtime_ocaml_Runtime[29], _hX_, _qF_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _hY_, [0], _qz_, _qy_); + }, + _qa_ = + function(param){ + function _qn_(param){ + var _qx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_08$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qx_); + } + function _qo_(param){ + var + _qp_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _hZ_, embed_enfant, enfant), + _qq_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _h0_, droit_ouvert_majoration), + _qp_), + _qr_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _h1_, + Runtime_ocaml_Runtime[12], + _qq_), + _qs_ = caml_call2(Runtime_ocaml_Runtime[27], _h2_, _qr_), + _qt_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_i_d521_3), + _qu_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_d521_3), + _qv_ = caml_call2(Runtime_ocaml_Runtime[83], _qu_, _qt_), + _qw_ = caml_call2(Runtime_ocaml_Runtime[83], _qv_, _qs_); + return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _qw_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h4_, [0], _qo_, _qn_); + }, + _qb_ = + [0, + function(param){ + function _qe_(param){ + var _qm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_16$1); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _qm_); + } + function _qf_(param){ + var + _qg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _h5_, embed_enfant, enfant), + _qh_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _h6_, droit_ouvert_majoration), + _qg_), + _qi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _h7_, + Runtime_ocaml_Runtime[12], + _qh_), + _qj_ = caml_call2(Runtime_ocaml_Runtime[27], _h8_, _qi_), + _qk_ = + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage, + plafond_i_d521_3), + _ql_ = caml_call2(Runtime_ocaml_Runtime[83], _qk_, _qj_); + return caml_call2(Runtime_ocaml_Runtime[29], _h9_, _ql_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h__, [0], _qf_, _qe_); + }, + _qa_, + _p$_, + _p__], + _qc_ = caml_call4(Runtime_ocaml_Runtime[63], _h$_, _qb_, _p9_, _p8_); + return _qc_; + } + catch(_qd_){ + var _p7_ = caml_wrap_exception(_qd_); + if(_p7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hM_], 1); + throw caml_maybe_attach_backtrace(_p7_, 0); + } + } + var + montant_initial_metropole_majo = + caml_call3 + (Runtime_ocaml_Runtime[28], _ia_, Runtime_ocaml_Runtime[10], _nb_); + try{ + var + _nd_ = + function(param){ + function _p0_(enfant){ + var + _p4_ = + caml_call3(Runtime_ocaml_Runtime[28], _ic_, embed_enfant, enfant), + _p5_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _id_, droit_ouvert_forfaitaire), + _p4_), + _p6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ie_, + Runtime_ocaml_Runtime[12], + _p5_); + return caml_call2(Runtime_ocaml_Runtime[27], _if_, _p6_); + } + var + _p1_ = caml_call2(Runtime_ocaml_Runtime[90], _p0_, enfants_a_charge), + _p2_ = caml_call1(Runtime_ocaml_Runtime[68], _p1_), + _p3_ = caml_call1(Runtime_ocaml_Runtime[69], _p2_); + return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire_par_, + _p3_); + }, + _ne_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ig_, 1); + }, + _nf_ = caml_call4(Runtime_ocaml_Runtime[63], _ih_, [0], _ne_, _nd_); + } + catch(_pZ_){ + var _nc_ = caml_wrap_exception(_pZ_); + if(_nc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ib_], 1); + throw caml_maybe_attach_backtrace(_nc_, 0); + } + var + montant_verse_forfaitaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _ii_, Runtime_ocaml_Runtime[13], _nf_); + try{ + var + _nh_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_deuxieme_, + montant_initial_base_troisieme$0); + }, + _ni_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ik_, 1); + }, + _nj_ = + [0, + function(param){ + function _pK_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _pL_(param){return 0;} + function _pM_(param){ + function _pU_(param){ + var + _pX_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_initial_base_premier_e, + montant_initial_base_deuxieme_), + _pY_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + _pX_, + montant_initial_base_troisieme); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _pY_, + montant_initial_base_quatrieme); + } + function _pV_(param){ + var _pW_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _il_); + return caml_call2(Runtime_ocaml_Runtime[29], _im_, _pW_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _in_, [0], _pV_, _pU_); + } + var + _pN_ = + [0, + function(param){ + function _pO_(param){return montant_initial_base_premier_e;} + function _pP_(param){ + var + _pQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22), + _pR_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _pS_ = caml_call2(Runtime_ocaml_Runtime[86], _pR_, _pQ_), + _pT_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _pS_); + return caml_call2(Runtime_ocaml_Runtime[29], _io_, _pT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ip_, [0], _pP_, _pO_); + }, + _pM_]; + return caml_call4(Runtime_ocaml_Runtime[63], _iq_, _pN_, _pL_, _pK_); + }], + _nk_ = caml_call4(Runtime_ocaml_Runtime[63], _ir_, _nj_, _ni_, _nh_); + } + catch(_pJ_){ + var _ng_ = caml_wrap_exception(_pJ_); + if(_ng_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ij_], 1); + throw caml_maybe_attach_backtrace(_ng_, 0); + } + var + montant_initial_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _is_, Runtime_ocaml_Runtime[13], _nk_); + function _nl_(enfant){ + try{ + var + _oZ_ = + function(param){ + var + _pG_ = + caml_call3(Runtime_ocaml_Runtime[28], _iu_, embed_enfant, enfant), + _pH_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _iv_, + montant_initial_metropole_majo), + _pG_), + _pI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _iw_, + Runtime_ocaml_Runtime[13], + _pH_); + return caml_call2(Runtime_ocaml_Runtime[27], _ix_, _pI_); + }, + _o0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iy_, 1); + }, + _o1_ = + [0, + function(param){ + function _o4_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _o5_(param){return 0;} + function _o6_(param){ + function _pq_(param){ + var _pF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0567); + return caml_call2 + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pF_); + } + function _pr_(param){ + var + _ps_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _pt_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _ps_), + _pu_ = + caml_call2(Runtime_ocaml_Runtime[120], _pt_, date_courante), + _pv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23), + _pw_ = caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cMn_=caml_call2(Runtime_ocaml_Runtime[86],_cMm_,_cMl_), - _cMo_= + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _px_ = caml_call2(Runtime_ocaml_Runtime[86], _pw_, _pv_), + _py_ = caml_call2(Runtime_ocaml_Runtime[83], _px_, _pu_), + _pz_ = caml_call2 (Runtime_ocaml_Runtime[83], prestations_familiales_dot_reg, - _cMn_); - return caml_call2(Runtime_ocaml_Runtime[29],_fs_,_cMo_)} - return caml_call4(Runtime_ocaml_Runtime[63],_ft_,[0],_cMk_,_cMj_)}, - _cA1_= - [0, - function(param) - {function _cJJ_(param) - {var - _cMg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$15), - _cMh_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cMh_,_cMg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$16); - var _cMi_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0588$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cMi_)} - function _cJK_(param) - {var _cMf_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fu_); - return caml_call2(Runtime_ocaml_Runtime[29],_fv_,_cMf_)} - var - _cJL_= - [0, - function(param) - {function _cJM_(param){throw Runtime_ocaml_Runtime[2]} - function _cJN_(param){return 0} - function _cJO_(param) - {function _cL$_(param) - {var - _cMd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$17), - _cMe_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - return caml_call2(Runtime_ocaml_Runtime[121],_cMe_,_cMd_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_5728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$18)} - function _cMa_(param) - {var - _cMb_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fw_), - _cMc_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _cMb_, - avait_enfant_a_charge_avant_1e); - return caml_call2(Runtime_ocaml_Runtime[29],_fx_,_cMc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fy_,[0],_cMa_,_cL$_)} - function _cJP_(param) - {function _cLX_(param) - {var - _cL8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$19), - _cL9_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cL9_,_cL8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$20); - var _cL__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0717); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cL__)} - function _cLY_(param) - {var - _cLZ_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cL0_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cL1_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cL0_), - _cL2_=caml_call2(Runtime_ocaml_Runtime[83],_cL1_,_cLZ_), - _cL3_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cL4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cL3_), - _cL5_=caml_call2(Runtime_ocaml_Runtime[83],_cL4_,_cL2_), - _cL6_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fz_), - _cL7_=caml_call2(Runtime_ocaml_Runtime[83],_cL6_,_cL5_); - return caml_call2(Runtime_ocaml_Runtime[29],_fA_,_cL7_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fB_,[0],_cLY_,_cLX_)} - function _cJQ_(param) - {function _cLJ_(param) - {var - _cLU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$21), - _cLV_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cLV_,_cLU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$22); - var _cLW_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0847); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLW_)} - function _cLK_(param) - {var - _cLL_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cLM_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cLN_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLM_), - _cLO_=caml_call2(Runtime_ocaml_Runtime[83],_cLN_,_cLL_), - _cLP_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cLQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLP_), - _cLR_=caml_call2(Runtime_ocaml_Runtime[83],_cLQ_,_cLO_), - _cLS_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fC_), - _cLT_=caml_call2(Runtime_ocaml_Runtime[83],_cLS_,_cLR_); - return caml_call2(Runtime_ocaml_Runtime[29],_fD_,_cLT_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fE_,[0],_cLK_,_cLJ_)} - function _cJR_(param) - {function _cLv_(param) - {var - _cLG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$23), - _cLH_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cLH_,_cLG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$24); - var _cLI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0976); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLI_)} - function _cLw_(param) - {var - _cLx_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cLy_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cLz_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLy_), - _cLA_=caml_call2(Runtime_ocaml_Runtime[83],_cLz_,_cLx_), - _cLB_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cLC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLB_), - _cLD_=caml_call2(Runtime_ocaml_Runtime[83],_cLC_,_cLA_), - _cLE_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fF_), - _cLF_=caml_call2(Runtime_ocaml_Runtime[83],_cLE_,_cLD_); - return caml_call2(Runtime_ocaml_Runtime[29],_fG_,_cLF_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fH_,[0],_cLw_,_cLv_)} - function _cJS_(param) - {function _cLh_(param) - {var - _cLs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$25), - _cLt_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cLt_,_cLs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$26); - var _cLu_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1105); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLu_)} - function _cLi_(param) - {var - _cLj_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cLk_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _cLl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cLk_), - _cLm_=caml_call2(Runtime_ocaml_Runtime[83],_cLl_,_cLj_), - _cLn_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _cLo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cLn_), - _cLp_=caml_call2(Runtime_ocaml_Runtime[83],_cLo_,_cLm_), - _cLq_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fI_), - _cLr_=caml_call2(Runtime_ocaml_Runtime[83],_cLq_,_cLp_); - return caml_call2(Runtime_ocaml_Runtime[29],_fJ_,_cLr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fK_,[0],_cLi_,_cLh_)} - function _cJT_(param) - {function _cK5_(param) - {var - _cLe_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$27), - _cLf_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cLf_,_cLe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$28); - var _cLg_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1163); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cLg_)} - function _cK6_(param) - {var - _cK7_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cK8_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _cK9_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cK8_), - _cK__=caml_call2(Runtime_ocaml_Runtime[83],_cK9_,_cK7_), - _cK$_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _cLa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cK$_), - _cLb_=caml_call2(Runtime_ocaml_Runtime[83],_cLa_,_cK__), - _cLc_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fL_), - _cLd_=caml_call2(Runtime_ocaml_Runtime[83],_cLc_,_cLb_); - return caml_call2(Runtime_ocaml_Runtime[29],_fM_,_cLd_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fN_,[0],_cK6_,_cK5_)} - function _cJU_(param) - {function _cKR_(param) - {var - _cK2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$29), - _cK3_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cK3_,_cK2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$30); - var _cK4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_122); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cK4_)} - function _cKS_(param) - {var - _cKT_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cKU_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _cKV_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKU_), - _cKW_=caml_call2(Runtime_ocaml_Runtime[83],_cKV_,_cKT_), - _cKX_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _cKY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKX_), - _cKZ_=caml_call2(Runtime_ocaml_Runtime[83],_cKY_,_cKW_), - _cK0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fO_), - _cK1_=caml_call2(Runtime_ocaml_Runtime[83],_cK0_,_cKZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_fP_,_cK1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fQ_,[0],_cKS_,_cKR_)} - function _cJV_(param) - {function _cKD_(param) - {var - _cKO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$31), - _cKP_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cKP_,_cKO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$32); - var _cKQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1278); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKQ_)} - function _cKE_(param) - {var - _cKF_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cKG_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _cKH_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKG_), - _cKI_=caml_call2(Runtime_ocaml_Runtime[83],_cKH_,_cKF_), - _cKJ_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _cKK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKJ_), - _cKL_=caml_call2(Runtime_ocaml_Runtime[83],_cKK_,_cKI_), - _cKM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fR_), - _cKN_=caml_call2(Runtime_ocaml_Runtime[83],_cKM_,_cKL_); - return caml_call2(Runtime_ocaml_Runtime[29],_fS_,_cKN_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fT_,[0],_cKE_,_cKD_)} - function _cJW_(param) - {function _cKp_(param) - {var - _cKA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$33), - _cKB_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cKB_,_cKA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$34); - var _cKC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1335); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKC_)} - function _cKq_(param) - {var - _cKr_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cKs_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _cKt_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKs_), - _cKu_=caml_call2(Runtime_ocaml_Runtime[83],_cKt_,_cKr_), - _cKv_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _cKw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKv_), - _cKx_=caml_call2(Runtime_ocaml_Runtime[83],_cKw_,_cKu_), - _cKy_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fU_), - _cKz_=caml_call2(Runtime_ocaml_Runtime[83],_cKy_,_cKx_); - return caml_call2(Runtime_ocaml_Runtime[29],_fV_,_cKz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fW_,[0],_cKq_,_cKp_)} - function _cJX_(param) - {function _cKb_(param) - {var - _cKm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$35), - _cKn_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cKn_,_cKm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$36); - var _cKo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1393); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKo_)} - function _cKc_(param) - {var - _cKd_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cKe_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _cKf_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cKe_), - _cKg_=caml_call2(Runtime_ocaml_Runtime[83],_cKf_,_cKd_), - _cKh_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _cKi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cKh_), - _cKj_=caml_call2(Runtime_ocaml_Runtime[83],_cKi_,_cKg_), - _cKk_=caml_call2(Runtime_ocaml_Runtime[86],residence,_fX_), - _cKl_=caml_call2(Runtime_ocaml_Runtime[83],_cKk_,_cKj_); - return caml_call2(Runtime_ocaml_Runtime[29],_fY_,_cKl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_fZ_,[0],_cKc_,_cKb_)} - var - _cJY_= - [0, - function(param) - {function _cJZ_(param) - {var - _cJ__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$37), - _cJ$_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cJ$_,_cJ__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$38); - var _cKa_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_145); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cKa_)} - function _cJ0_(param) - {var - _cJ1_= - caml_call1 - (Runtime_ocaml_Runtime[67],avait_enfant_a_charge_avant_1e), - _cJ2_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _cJ3_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cJ2_), - _cJ4_=caml_call2(Runtime_ocaml_Runtime[83],_cJ3_,_cJ1_), - _cJ5_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _cJ6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cJ5_), - _cJ7_=caml_call2(Runtime_ocaml_Runtime[83],_cJ6_,_cJ4_), - _cJ8_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f0_), - _cJ9_=caml_call2(Runtime_ocaml_Runtime[83],_cJ8_,_cJ7_); - return caml_call2(Runtime_ocaml_Runtime[29],_f1_,_cJ9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_f2_,[0],_cJ0_,_cJZ_)}, - _cJX_, - _cJW_, - _cJV_, - _cJU_, - _cJT_, - _cJS_, - _cJR_, - _cJQ_, - _cJP_, - _cJO_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_f3_,_cJY_,_cJN_,_cJM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_f4_,_cJL_,_cJK_,_cJJ_)}, - _cA0_], - _cA2_=caml_call4(Runtime_ocaml_Runtime[63],_f5_,_cA1_,_cAZ_,_cAY_)} - catch(_cJI_) - {_cJI_ = caml_wrap_exception(_cJI_); - if(_cJI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_fq_]; - throw _cJI_} - var - montant_initial_base_premier_e= - caml_call3 - (Runtime_ocaml_Runtime[28],_f6_,Runtime_ocaml_Runtime[13],_cA2_); - try - {var - _cA3_=function(param){return 0}, - _cA4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_f8_,1)}, - _cA5_= - [0, - function(param) - {function _cJl_(param){return 1} - function _cJm_(param) - {var - _cJF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$10), - _cJG_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cJH_=caml_call2(Runtime_ocaml_Runtime[126],_cJG_,_cJF_); - return caml_call2(Runtime_ocaml_Runtime[29],_f9_,_cJH_)} - var - _cJn_= - [0, - function(param) - {function _cJo_(param){throw Runtime_ocaml_Runtime[2]} - function _cJp_(param){return 0} - var - _cJq_= - [0, - function(param) - {function _cJr_(param){return 1} - function _cJs_(param) - {var - _cJB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$4), - _cJC_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cJD_=caml_call2(Runtime_ocaml_Runtime[126],_cJC_,_cJB_), - _cJE_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cJD_); - return caml_call2(Runtime_ocaml_Runtime[29],_f__,_cJE_)} - var - _cJt_= - [0, - function(param) - {function _cJu_(param){return 1} - function _cJv_(param) - {var - _cJw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$5), - _cJx_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cJy_=caml_call2(Runtime_ocaml_Runtime[126],_cJx_,_cJw_), - _cJz_=caml_call2(Runtime_ocaml_Runtime[86],residence,_f$_), - _cJA_=caml_call2(Runtime_ocaml_Runtime[83],_cJz_,_cJy_); - return caml_call2(Runtime_ocaml_Runtime[29],_ga_,_cJA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gb_,[0],_cJv_,_cJu_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gc_,_cJt_,_cJs_,_cJr_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gd_,_cJq_,_cJp_,_cJo_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ge_,_cJn_,_cJm_,_cJl_)}], - _cA6_=caml_call4(Runtime_ocaml_Runtime[63],_gf_,_cA5_,_cA4_,_cA3_)} - catch(_cJk_) - {_cJk_ = caml_wrap_exception(_cJk_); - if(_cJk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_f7_]; - throw _cJk_} - var - droit_ouvert_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_gg_,Runtime_ocaml_Runtime[12],_cA6_); - function _cA7_(enfant) - {try - {var - _cIR_=function(param){return 0}, - _cIS_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_gi_,1)}, - _cIT_= - [0, - function(param) - {function _cIW_(param){return 1} - function _cIX_(param) - {var - _cI__= - caml_call3 - (Runtime_ocaml_Runtime[28],_gj_,embed_enfant,enfant), - _cI$_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_gk_,age_minimum_alinea_1_l521_3), - _cI__), - _cJa_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gl_, - Runtime_ocaml_Runtime[17], - _cI$_), - _cJb_=caml_call2(Runtime_ocaml_Runtime[27],_gm_,_cJa_), - _cJc_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cJb_), - _cJd_= - caml_call2(Runtime_ocaml_Runtime[120],_cJc_,date_courante), - _cJe_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gn_,embed_enfant,enfant), - _cJf_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_go_,est_enfant_le_plus_age), - _cJe_), - _cJg_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gp_, - Runtime_ocaml_Runtime[12], - _cJf_), - _cJh_=caml_call2(Runtime_ocaml_Runtime[27],_gq_,_cJg_), - _cJi_=caml_call1(Runtime_ocaml_Runtime[67],_cJh_), - _cJj_=caml_call2(Runtime_ocaml_Runtime[83],_cJi_,_cJd_); - return caml_call2(Runtime_ocaml_Runtime[29],_gr_,_cJj_)} - var - _cIY_= - [0, - function(param) - {function _cIZ_(param){return 1} - function _cI0_(param) - {var - _cI1_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gs_,embed_enfant,enfant), - _cI2_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_gt_,age_minimum_alinea_1_l521_3), - _cI1_), - _cI3_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _gu_, - Runtime_ocaml_Runtime[17], - _cI2_), - _cI4_=caml_call2(Runtime_ocaml_Runtime[27],_gv_,_cI3_), - _cI5_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cI4_), - _cI6_= - caml_call2(Runtime_ocaml_Runtime[120],_cI5_,date_courante), - _cI7_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cI8_= - caml_call2 - (Runtime_ocaml_Runtime[126], - _cI7_, - nombre_enfants_alinea_2_l521_3), - _cI9_=caml_call2(Runtime_ocaml_Runtime[83],_cI8_,_cI6_); - return caml_call2(Runtime_ocaml_Runtime[29],_gw_,_cI9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gx_,[0],_cI0_,_cIZ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gy_,_cIY_,_cIX_,_cIW_)}], - _cIU_=caml_call4(Runtime_ocaml_Runtime[63],_gz_,_cIT_,_cIS_,_cIR_); - return _cIU_} - catch(_cIV_) - {_cIV_ = caml_wrap_exception(_cIV_); - if(_cIV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gh_]; - throw _cIV_}} - var - droit_ouvert_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_gA_,Runtime_ocaml_Runtime[10],_cA7_); - function _cA8_(allocation) - {try - {var - _cIe_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$39)}, - _cIf_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_gC_,1)}, - _cIg_= - [0, - function(param) - {function _cIj_(param){throw Runtime_ocaml_Runtime[2]} - function _cIk_(param){return 0} - function _cIl_(param) - {function _cIC_(param) - {var - _cIK_=caml_call1(Runtime_ocaml_Runtime[39],cst_12), - _cIL_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$6), - _cIM_=caml_call2(Runtime_ocaml_Runtime[107],_cIL_,_cIK_), - _cIN_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$0), - _cIO_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIN_), - _cIP_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cIO_), - _cIQ_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cIP_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cIQ_,_cIM_)} - function _cID_(param) - {var - _cIE_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$1), - _cIF_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIE_), - _cIG_= - caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cIF_), - _cIH_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cIG_), - _cII_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _cIJ_=caml_call2(Runtime_ocaml_Runtime[83],_cII_,_cIH_); - return caml_call2(Runtime_ocaml_Runtime[29],_gD_,_cIJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gE_,[0],_cID_,_cIC_)} - var - _cIm_= - [0, - function(param) - {function _cIn_(param) - {var - _cIv_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$2), - _cIw_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$7), - _cIx_=caml_call2(Runtime_ocaml_Runtime[107],_cIw_,_cIv_), - _cIy_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$3), - _cIz_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIy_), - _cIA_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cIz_), - _cIB_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cIA_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cIB_,_cIx_)} - function _cIo_(param) - {var - _cIp_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$4), - _cIq_= - caml_call2(Runtime_ocaml_Runtime[104],allocation,_cIp_), - _cIr_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cIq_), - _cIs_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cIr_), - _cIt_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cIu_=caml_call2(Runtime_ocaml_Runtime[83],_cIt_,_cIs_); - return caml_call2(Runtime_ocaml_Runtime[29],_gF_,_cIu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_gG_,[0],_cIo_,_cIn_)}, - _cIl_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_gH_,_cIm_,_cIk_,_cIj_)}], - _cIh_=caml_call4(Runtime_ocaml_Runtime[63],_gI_,_cIg_,_cIf_,_cIe_); - return _cIh_} - catch(_cIi_) - {_cIi_ = caml_wrap_exception(_cIi_); - if(_cIi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gB_]; - throw _cIi_}} - var - complement_degressif= - caml_call3 - (Runtime_ocaml_Runtime[28],_gJ_,Runtime_ocaml_Runtime[10],_cA8_); - try - {var - _cA9_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cA__=function(param){return 0}, - _cA$_= - function(param) - {function _cIa_(param) - {var _cId_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_05059); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cId_)} - function _cIb_(param) - {var - _cIc_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gL_,_cIc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gM_,[0],_cIb_,_cIa_)}, - _cBa_= - function(param) - {function _cH6_(param) - {var _cH$_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_10117); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cH$_)} - function _cH7_(param) - {var - _cH8_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cH9_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cH__=caml_call2(Runtime_ocaml_Runtime[83],_cH9_,_cH8_); - return caml_call2(Runtime_ocaml_Runtime[29],_gN_,_cH__)} - return caml_call4(Runtime_ocaml_Runtime[63],_gO_,[0],_cH7_,_cH6_)}, - _cBb_= - [0, - function(param) - {function _cH2_(param) - {var _cH5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_20234); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cH5_)} - function _cH3_(param) - {var - _cH4_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gP_,_cH4_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gQ_,[0],_cH3_,_cH2_)}, - _cBa_, - _cA$_], - _cBc_=caml_call4(Runtime_ocaml_Runtime[63],_gR_,_cBb_,_cA__,_cA9_)} - catch(_cH1_) - {_cH1_ = caml_wrap_exception(_cH1_); - if(_cH1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gK_]; - throw _cH1_} - var - montant_verse_forfaitaire_par_= - caml_call3 - (Runtime_ocaml_Runtime[28],_gS_,Runtime_ocaml_Runtime[13],_cBc_); - try - {var - _cBd_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cBe_=function(param){return 0}, - _cBf_= - function(param) - {function _cHQ_(param) - {var - _cHT_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$11), - _cHU_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHU_,_cHT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$40); - var - _cHV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$12), - _cHW_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cHX_=caml_call2(Runtime_ocaml_Runtime[96],_cHW_,_cHV_), - _cHY_=caml_call1(Runtime_ocaml_Runtime[69],_cHX_), - _cHZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_1025), - _cH0_= - caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHZ_); - return caml_call2(Runtime_ocaml_Runtime[104],_cH0_,_cHY_)} - function _cHR_(param) - {var - _cHS_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gU_,_cHS_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gV_,[0],_cHR_,_cHQ_)}, - _cBg_= - function(param) - {function _cHD_(param) - {var - _cHI_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$13), - _cHJ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHJ_,_cHI_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$41); - var - _cHK_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$14), - _cHL_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cHM_=caml_call2(Runtime_ocaml_Runtime[96],_cHL_,_cHK_), - _cHN_=caml_call1(Runtime_ocaml_Runtime[69],_cHM_), - _cHO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_205), - _cHP_= - caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHO_); - return caml_call2(Runtime_ocaml_Runtime[104],_cHP_,_cHN_)} - function _cHE_(param) - {var - _cHF_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cHG_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cHH_=caml_call2(Runtime_ocaml_Runtime[83],_cHG_,_cHF_); - return caml_call2(Runtime_ocaml_Runtime[29],_gW_,_cHH_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gX_,[0],_cHE_,_cHD_)}, - _cBh_= - [0, - function(param) - {function _cHs_(param) - {var - _cHv_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$15), - _cHw_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHw_,_cHv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$42); - var - _cHx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$16), - _cHy_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cHz_=caml_call2(Runtime_ocaml_Runtime[96],_cHy_,_cHx_), - _cHA_=caml_call1(Runtime_ocaml_Runtime[69],_cHz_), - _cHB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_41), - _cHC_= - caml_call2(Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHB_); - return caml_call2(Runtime_ocaml_Runtime[104],_cHC_,_cHA_)} - function _cHt_(param) - {var - _cHu_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_gY_,_cHu_)} - return caml_call4(Runtime_ocaml_Runtime[63],_gZ_,[0],_cHt_,_cHs_)}, - _cBg_, - _cBf_], - _cBi_=caml_call4(Runtime_ocaml_Runtime[63],_g0_,_cBh_,_cBe_,_cBd_)} - catch(_cHr_) - {_cHr_ = caml_wrap_exception(_cHr_); - if(_cHr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_gT_]; - throw _cHr_} - var - montant_initial_base_troisieme$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_g1_,Runtime_ocaml_Runtime[13],_cBi_); - try - {var - _cBj_= - function(param) - {function _cG4_(param){throw Runtime_ocaml_Runtime[2]} - function _cG5_(param){return 0} - function _cG6_(param) - {function _cHl_(param) - {var - _cHo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$8), - _cHp_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHp_,_cHo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$43); - var _cHq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHq_)} - function _cHm_(param) - {var - _cHn_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_g3_,_cHn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g4_,[0],_cHm_,_cHl_)} - function _cG7_(param) - {function _cHd_(param) - {var - _cHi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$9), - _cHj_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHj_,_cHi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$44); - var _cHk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHk_)} - function _cHe_(param) - {var - _cHf_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cHg_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cHh_=caml_call2(Runtime_ocaml_Runtime[83],_cHg_,_cHf_); - return caml_call2(Runtime_ocaml_Runtime[29],_g5_,_cHh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g6_,[0],_cHe_,_cHd_)} - var - _cG8_= - [0, - function(param) - {function _cG9_(param) - {var - _cHa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$10), - _cHb_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cHb_,_cHa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$45); - var _cHc_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cHc_)} - function _cG__(param) - {var - _cG$_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3); - return caml_call2(Runtime_ocaml_Runtime[29],_g7_,_cG$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_g8_,[0],_cG__,_cG9_)}, - _cG7_, - _cG6_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_g9_,_cG8_,_cG5_,_cG4_)}, - _cBk_=function(param){return 1}, - _cBl_= - [0, - function(param) - {function _cET_(param) - {var - _cG1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$11), - _cG2_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cG2_,_cG1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$46); - var _cG3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cG3_)} - function _cEU_(param) - {var _cG0_=caml_call2(Runtime_ocaml_Runtime[86],residence,_g__); - return caml_call2(Runtime_ocaml_Runtime[29],_g$_,_cG0_)} - var - _cEV_= - [0, - function(param) - {function _cEW_(param){throw Runtime_ocaml_Runtime[2]} - function _cEX_(param){return 0} - function _cEY_(param) - {function _cGO_(param) - {var - _cGX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$12), - _cGY_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cGY_,_cGX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$47); - var _cGZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3068); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGZ_)} - function _cGP_(param) - {var - _cGQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _cGR_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGQ_), - _cGS_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cGT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGS_), - _cGU_=caml_call2(Runtime_ocaml_Runtime[83],_cGT_,_cGR_), - _cGV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ha_), - _cGW_=caml_call2(Runtime_ocaml_Runtime[83],_cGV_,_cGU_); - return caml_call2(Runtime_ocaml_Runtime[29],_hb_,_cGW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hc_,[0],_cGP_,_cGO_)} - function _cEZ_(param) - {function _cGC_(param) - {var - _cGL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$13), - _cGM_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cGM_,_cGL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$48); - var _cGN_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2936); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGN_)} - function _cGD_(param) - {var - _cGE_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _cGF_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGE_), - _cGG_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _cGH_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGG_), - _cGI_=caml_call2(Runtime_ocaml_Runtime[83],_cGH_,_cGF_), - _cGJ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hd_), - _cGK_=caml_call2(Runtime_ocaml_Runtime[83],_cGJ_,_cGI_); - return caml_call2(Runtime_ocaml_Runtime[29],_he_,_cGK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hf_,[0],_cGD_,_cGC_)} - function _cE0_(param) - {function _cGq_(param) - {var - _cGz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$14), - _cGA_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cGA_,_cGz_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$49); - var _cGB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2804); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGB_)} - function _cGr_(param) - {var - _cGs_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _cGt_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGs_), - _cGu_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _cGv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGu_), - _cGw_=caml_call2(Runtime_ocaml_Runtime[83],_cGv_,_cGt_), - _cGx_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hg_), - _cGy_=caml_call2(Runtime_ocaml_Runtime[83],_cGx_,_cGw_); - return caml_call2(Runtime_ocaml_Runtime[29],_hh_,_cGy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hi_,[0],_cGr_,_cGq_)} - function _cE1_(param) - {function _cGe_(param) - {var - _cGn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$15), - _cGo_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cGo_,_cGn_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$50); - var _cGp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2672); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGp_)} - function _cGf_(param) - {var - _cGg_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _cGh_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cGg_), - _cGi_=caml_call3(Runtime_ocaml_Runtime[57],2017,1,1), - _cGj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cGi_), - _cGk_=caml_call2(Runtime_ocaml_Runtime[83],_cGj_,_cGh_), - _cGl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hj_), - _cGm_=caml_call2(Runtime_ocaml_Runtime[83],_cGl_,_cGk_); - return caml_call2(Runtime_ocaml_Runtime[29],_hk_,_cGm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hl_,[0],_cGf_,_cGe_)} - function _cE2_(param) - {function _cF4_(param) - {var - _cGb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$16), - _cGc_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cGc_,_cGb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$51); - var _cGd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2613); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cGd_)} - function _cF5_(param) - {var - _cF6_=caml_call3(Runtime_ocaml_Runtime[57],2016,12,31), - _cF7_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cF6_), - _cF8_=caml_call3(Runtime_ocaml_Runtime[57],2016,1,1), - _cF9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cF8_), - _cF__=caml_call2(Runtime_ocaml_Runtime[83],_cF9_,_cF7_), - _cF$_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hm_), - _cGa_=caml_call2(Runtime_ocaml_Runtime[83],_cF$_,_cF__); - return caml_call2(Runtime_ocaml_Runtime[29],_hn_,_cGa_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ho_,[0],_cF5_,_cF4_)} - function _cE3_(param) - {function _cFS_(param) - {var - _cF1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$17), - _cF2_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cF2_,_cF1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$52); - var _cF3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2555); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cF3_)} - function _cFT_(param) - {var - _cFU_=caml_call3(Runtime_ocaml_Runtime[57],2015,12,31), - _cFV_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFU_), - _cFW_=caml_call3(Runtime_ocaml_Runtime[57],2015,1,1), - _cFX_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFW_), - _cFY_=caml_call2(Runtime_ocaml_Runtime[83],_cFX_,_cFV_), - _cFZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hp_), - _cF0_=caml_call2(Runtime_ocaml_Runtime[83],_cFZ_,_cFY_); - return caml_call2(Runtime_ocaml_Runtime[29],_hq_,_cF0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hr_,[0],_cFT_,_cFS_)} - function _cE4_(param) - {function _cFG_(param) - {var - _cFP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$18), - _cFQ_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cFQ_,_cFP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$53); - var _cFR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2496); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFR_)} - function _cFH_(param) - {var - _cFI_=caml_call3(Runtime_ocaml_Runtime[57],2014,12,31), - _cFJ_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFI_), - _cFK_=caml_call3(Runtime_ocaml_Runtime[57],2014,1,1), - _cFL_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFK_), - _cFM_=caml_call2(Runtime_ocaml_Runtime[83],_cFL_,_cFJ_), - _cFN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hs_), - _cFO_=caml_call2(Runtime_ocaml_Runtime[83],_cFN_,_cFM_); - return caml_call2(Runtime_ocaml_Runtime[29],_ht_,_cFO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hu_,[0],_cFH_,_cFG_)} - function _cE5_(param) - {function _cFu_(param) - {var - _cFD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$19), - _cFE_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cFE_,_cFD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$54); - var _cFF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2437); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFF_)} - function _cFv_(param) - {var - _cFw_=caml_call3(Runtime_ocaml_Runtime[57],2013,12,31), - _cFx_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFw_), - _cFy_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _cFz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFy_), - _cFA_=caml_call2(Runtime_ocaml_Runtime[83],_cFz_,_cFx_), - _cFB_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hv_), - _cFC_=caml_call2(Runtime_ocaml_Runtime[83],_cFB_,_cFA_); - return caml_call2(Runtime_ocaml_Runtime[29],_hw_,_cFC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hx_,[0],_cFv_,_cFu_)} - function _cE6_(param) - {function _cFi_(param) - {var - _cFr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$20), - _cFs_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cFs_,_cFr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$55); - var _cFt_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2379); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFt_)} - function _cFj_(param) - {var - _cFk_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _cFl_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cFk_), - _cFm_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _cFn_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFm_), - _cFo_=caml_call2(Runtime_ocaml_Runtime[83],_cFn_,_cFl_), - _cFp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hy_), - _cFq_=caml_call2(Runtime_ocaml_Runtime[83],_cFp_,_cFo_); - return caml_call2(Runtime_ocaml_Runtime[29],_hz_,_cFq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hA_,[0],_cFj_,_cFi_)} - var - _cE7_= - [0, - function(param) - {function _cE8_(param) - {var - _cFf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$21), - _cFg_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_); - if(! caml_call2(Runtime_ocaml_Runtime[121],_cFg_,_cFf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$56); - var _cFh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cFh_)} - function _cE9_(param) - {var - _cE__=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _cE$_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cE__), - _cFa_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _cFb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cFa_), - _cFc_=caml_call2(Runtime_ocaml_Runtime[83],_cFb_,_cE$_), - _cFd_=caml_call2(Runtime_ocaml_Runtime[86],residence,_hB_), - _cFe_=caml_call2(Runtime_ocaml_Runtime[83],_cFd_,_cFc_); - return caml_call2(Runtime_ocaml_Runtime[29],_hC_,_cFe_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hD_,[0],_cE9_,_cE8_)}, - _cE6_, - _cE5_, - _cE4_, - _cE3_, - _cE2_, - _cE1_, - _cE0_, - _cEZ_, - _cEY_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_hE_,_cE7_,_cEX_,_cEW_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_hF_,_cEV_,_cEU_,_cET_)}], - _cBm_=caml_call4(Runtime_ocaml_Runtime[63],_hG_,_cBl_,_cBk_,_cBj_)} - catch(_cES_) - {_cES_ = caml_wrap_exception(_cES_); - if(_cES_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_g2_]; - throw _cES_} - var - montant_initial_base_deuxieme_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hH_,Runtime_ocaml_Runtime[13],_cBm_); - try - {var - _cBn_= - function(param) - {var _cER_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$57); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_total_enfants,_cER_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0$58) - :caml_call2 - (Runtime_ocaml_Runtime[107], - nombre_moyen_enfants, - nombre_total_enfants)}, - _cBo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_hJ_,1)}, - _cBp_=caml_call4(Runtime_ocaml_Runtime[63],_hK_,[0],_cBo_,_cBn_)} - catch(_cEQ_) - {_cEQ_ = caml_wrap_exception(_cEQ_); - if(_cEQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_hI_]; - throw _cEQ_} - var - rapport_enfants_total_moyen= - caml_call3 - (Runtime_ocaml_Runtime[28],_hL_,Runtime_ocaml_Runtime[15],_cBp_); - function _cBq_(enfant) - {try - {var - _cD__=function(param){throw Runtime_ocaml_Runtime[2]}, - _cD$_=function(param){return 0}, - _cEa_= - function(param) - {function _cEJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$59)} - function _cEK_(param) - {var - _cEL_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hN_,embed_enfant,enfant), - _cEM_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_hO_,droit_ouvert_majoration), - _cEL_), - _cEN_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _hP_, - Runtime_ocaml_Runtime[12], - _cEM_), - _cEO_=caml_call2(Runtime_ocaml_Runtime[27],_hQ_,_cEN_), - _cEP_=caml_call1(Runtime_ocaml_Runtime[67],_cEO_); - return caml_call2(Runtime_ocaml_Runtime[29],_hR_,_cEP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hS_,[0],_cEK_,_cEJ_)}, - _cEb_= - function(param) - {function _cEA_(param) - {var _cEI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEI_)} - function _cEB_(param) - {var - _cEC_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hT_,embed_enfant,enfant), - _cED_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_hU_,droit_ouvert_majoration), - _cEC_), - _cEE_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _hV_, - Runtime_ocaml_Runtime[12], - _cED_), - _cEF_=caml_call2(Runtime_ocaml_Runtime[27],_hW_,_cEE_), - _cEG_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_i_d521_3), - _cEH_=caml_call2(Runtime_ocaml_Runtime[83],_cEG_,_cEF_); - return caml_call2(Runtime_ocaml_Runtime[29],_hX_,_cEH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_hY_,[0],_cEB_,_cEA_)}, - _cEc_= - function(param) - {function _cEp_(param) - {var _cEz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_08$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEz_)} - function _cEq_(param) - {var - _cEr_= - caml_call3 - (Runtime_ocaml_Runtime[28],_hZ_,embed_enfant,enfant), - _cEs_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_h0_,droit_ouvert_majoration), - _cEr_), - _cEt_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _h1_, - Runtime_ocaml_Runtime[12], - _cEs_), - _cEu_=caml_call2(Runtime_ocaml_Runtime[27],_h2_,_cEt_), - _cEv_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_i_d521_3), - _cEw_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cEx_=caml_call2(Runtime_ocaml_Runtime[83],_cEw_,_cEv_), - _cEy_=caml_call2(Runtime_ocaml_Runtime[83],_cEx_,_cEu_); - return caml_call2(Runtime_ocaml_Runtime[29],_h3_,_cEy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_h4_,[0],_cEq_,_cEp_)}, - _cEd_= - [0, - function(param) - {function _cEg_(param) - {var _cEo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_16$1); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cEo_)} - function _cEh_(param) - {var - _cEi_= - caml_call3 - (Runtime_ocaml_Runtime[28],_h5_,embed_enfant,enfant), - _cEj_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_h6_,droit_ouvert_majoration), - _cEi_), - _cEk_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _h7_, - Runtime_ocaml_Runtime[12], - _cEj_), - _cEl_=caml_call2(Runtime_ocaml_Runtime[27],_h8_,_cEk_), - _cEm_= - caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage, - plafond_i_d521_3), - _cEn_=caml_call2(Runtime_ocaml_Runtime[83],_cEm_,_cEl_); - return caml_call2(Runtime_ocaml_Runtime[29],_h9_,_cEn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_h__,[0],_cEh_,_cEg_)}, - _cEc_, - _cEb_, - _cEa_], - _cEe_=caml_call4(Runtime_ocaml_Runtime[63],_h$_,_cEd_,_cD$_,_cD__); - return _cEe_} - catch(_cEf_) - {_cEf_ = caml_wrap_exception(_cEf_); - if(_cEf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_hM_]; - throw _cEf_}} - var - montant_initial_metropole_majo= - caml_call3 - (Runtime_ocaml_Runtime[28],_ia_,Runtime_ocaml_Runtime[10],_cBq_); - try - {var - _cBr_= - function(param) - {function _cD3_(enfant) - {var - _cD7_= - caml_call3(Runtime_ocaml_Runtime[28],_ic_,embed_enfant,enfant), - _cD8_= + _py_), + _pA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _iz_, embed_enfant, enfant), + _pB_ = caml_call1 (caml_call2 - (Runtime_ocaml_Runtime[26],_id_,droit_ouvert_forfaitaire), - _cD7_), - _cD9_= + (Runtime_ocaml_Runtime[26], _iA_, droit_ouvert_majoration), + _pA_), + _pC_ = caml_call3 (Runtime_ocaml_Runtime[28], - _ie_, + _iB_, Runtime_ocaml_Runtime[12], - _cD8_); - return caml_call2(Runtime_ocaml_Runtime[27],_if_,_cD9_)} - var - _cD4_= - caml_call2(Runtime_ocaml_Runtime[90],_cD3_,enfants_a_charge), - _cD5_=caml_call1(Runtime_ocaml_Runtime[68],_cD4_), - _cD6_=caml_call1(Runtime_ocaml_Runtime[69],_cD5_); - return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_verse_forfaitaire_par_, - _cD6_)}, - _cBs_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ig_,1)}, - _cBt_=caml_call4(Runtime_ocaml_Runtime[63],_ih_,[0],_cBs_,_cBr_)} - catch(_cD2_) - {_cD2_ = caml_wrap_exception(_cD2_); - if(_cD2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ib_]; - throw _cD2_} - var - montant_verse_forfaitaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_ii_,Runtime_ocaml_Runtime[13],_cBt_); - try - {var - _cBu_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_deuxieme_, - montant_initial_base_troisieme$0)}, - _cBv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ik_,1)}, - _cBw_= - [0, - function(param) - {function _cDN_(param){throw Runtime_ocaml_Runtime[2]} - function _cDO_(param){return 0} - function _cDP_(param) - {function _cDX_(param) - {var - _cD0_= - caml_call2 - (Runtime_ocaml_Runtime[93], - montant_initial_base_premier_e, - montant_initial_base_deuxieme_), - _cD1_= - caml_call2 - (Runtime_ocaml_Runtime[93], - _cD0_, - montant_initial_base_troisieme); + _pB_), + _pD_ = caml_call2(Runtime_ocaml_Runtime[27], _iC_, _pC_), + _pE_ = caml_call2(Runtime_ocaml_Runtime[83], _pD_, _pz_); + return caml_call2(Runtime_ocaml_Runtime[29], _iD_, _pE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iE_, [0], _pr_, _pq_); + } + var + _o7_ = + [0, + function(param){ + function _o8_(param){ + var _pp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0369); return caml_call2 - (Runtime_ocaml_Runtime[93], - _cD1_, - montant_initial_base_quatrieme)} - function _cDY_(param) - {var - _cDZ_= - caml_call2(Runtime_ocaml_Runtime[86],residence,_il_); - return caml_call2(Runtime_ocaml_Runtime[29],_im_,_cDZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_in_,[0],_cDY_,_cDX_)} - var - _cDQ_= - [0, - function(param) - {function _cDR_(param){return montant_initial_base_premier_e} - function _cDS_(param) - {var - _cDT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$22), - _cDU_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cDV_=caml_call2(Runtime_ocaml_Runtime[86],_cDU_,_cDT_), - _cDW_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cDV_); - return caml_call2(Runtime_ocaml_Runtime[29],_io_,_cDW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ip_,[0],_cDS_,_cDR_)}, - _cDP_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_iq_,_cDQ_,_cDO_,_cDN_)}], - _cBx_=caml_call4(Runtime_ocaml_Runtime[63],_ir_,_cBw_,_cBv_,_cBu_)} - catch(_cDM_) - {_cDM_ = caml_wrap_exception(_cDM_); - if(_cDM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ij_]; - throw _cDM_} - var - montant_initial_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_is_,Runtime_ocaml_Runtime[13],_cBx_); - function _cBy_(enfant) - {try - {var - _cC2_= - function(param) - {var - _cDJ_= - caml_call3(Runtime_ocaml_Runtime[28],_iu_,embed_enfant,enfant), - _cDK_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _iv_, - montant_initial_metropole_majo), - _cDJ_), - _cDL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iw_, - Runtime_ocaml_Runtime[13], - _cDK_); - return caml_call2(Runtime_ocaml_Runtime[27],_ix_,_cDL_)}, - _cC3_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_iy_,1)}, - _cC4_= - [0, - function(param) - {function _cC7_(param){throw Runtime_ocaml_Runtime[2]} - function _cC8_(param){return 0} - function _cC9_(param) - {function _cDt_(param) - {var _cDI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0567); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cDI_)} - function _cDu_(param) - {var - _cDv_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _cDw_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDv_), - _cDx_= - caml_call2(Runtime_ocaml_Runtime[120],_cDw_,date_courante), - _cDy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$23), - _cDz_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cDA_=caml_call2(Runtime_ocaml_Runtime[86],_cDz_,_cDy_), - _cDB_=caml_call2(Runtime_ocaml_Runtime[83],_cDA_,_cDx_), - _cDC_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cDB_), - _cDD_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iz_,embed_enfant,enfant), - _cDE_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_iA_,droit_ouvert_majoration), - _cDD_), - _cDF_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iB_, - Runtime_ocaml_Runtime[12], - _cDE_), - _cDG_=caml_call2(Runtime_ocaml_Runtime[27],_iC_,_cDF_), - _cDH_=caml_call2(Runtime_ocaml_Runtime[83],_cDG_,_cDC_); - return caml_call2(Runtime_ocaml_Runtime[29],_iD_,_cDH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iE_,[0],_cDu_,_cDt_)} - var - _cC__= - [0, - function(param) - {function _cC$_(param) - {var _cDs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0369); - return caml_call2 - (Runtime_ocaml_Runtime[104],bmaf_dot_montant,_cDs_)} - function _cDa_(param) - {var - _cDb_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _cDc_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDb_), - _cDd_= - caml_call2(Runtime_ocaml_Runtime[125],_cDc_,date_courante), - _cDe_=caml_call3(Runtime_ocaml_Runtime[60],11,0,0), - _cDf_= - caml_call3(Runtime_ocaml_Runtime[94],2,enfant[4],_cDe_), - _cDg_= - caml_call2(Runtime_ocaml_Runtime[120],_cDf_,date_courante), - _cDh_=caml_call2(Runtime_ocaml_Runtime[83],_cDg_,_cDd_), - _cDi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$24), - _cDj_= - caml_call1 - (Runtime_ocaml_Runtime[68],enfants_a_charge_droit_ouvert_), - _cDk_=caml_call2(Runtime_ocaml_Runtime[86],_cDj_,_cDi_), - _cDl_=caml_call2(Runtime_ocaml_Runtime[83],_cDk_,_cDh_), - _cDm_= - caml_call2 - (Runtime_ocaml_Runtime[83], - prestations_familiales_dot_reg, - _cDl_), - _cDn_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iF_,embed_enfant,enfant), - _cDo_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_iG_,droit_ouvert_majoration), - _cDn_), - _cDp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _iH_, - Runtime_ocaml_Runtime[12], - _cDo_), - _cDq_=caml_call2(Runtime_ocaml_Runtime[27],_iI_,_cDp_), - _cDr_=caml_call2(Runtime_ocaml_Runtime[83],_cDq_,_cDm_); - return caml_call2(Runtime_ocaml_Runtime[29],_iJ_,_cDr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iK_,[0],_cDa_,_cC$_)}, - _cC9_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_iL_,_cC__,_cC8_,_cC7_)}], - _cC5_=caml_call4(Runtime_ocaml_Runtime[63],_iM_,_cC4_,_cC3_,_cC2_); - return _cC5_} - catch(_cC6_) - {_cC6_ = caml_wrap_exception(_cC6_); - if(_cC6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_it_]; - throw _cC6_}} - var - montant_initial_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_iN_,Runtime_ocaml_Runtime[10],_cBy_); - try - {var - _cBz_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$60)}, - _cBA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iP_,1)}, - _cBB_= - [0, - function(param) - {function _cCu_(param){throw Runtime_ocaml_Runtime[2]} - function _cCv_(param){return 0} - function _cCw_(param) - {function _cCN_(param) - {var - _cCV_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$5), - _cCW_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$25), - _cCX_=caml_call2(Runtime_ocaml_Runtime[107],_cCW_,_cCV_), - _cCY_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$6), - _cCZ_= + (Runtime_ocaml_Runtime[104], bmaf_dot_montant, _pp_); + } + function _o9_(param){ + var + _o__ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _o$_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _o__), + _pa_ = + caml_call2(Runtime_ocaml_Runtime[125], _o$_, date_courante), + _pb_ = caml_call3(Runtime_ocaml_Runtime[60], 11, 0, 0), + _pc_ = + caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[4], _pb_), + _pd_ = + caml_call2(Runtime_ocaml_Runtime[120], _pc_, date_courante), + _pe_ = caml_call2(Runtime_ocaml_Runtime[83], _pd_, _pa_), + _pf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24), + _pg_ = + caml_call1 + (Runtime_ocaml_Runtime[68], enfants_a_charge_droit_ouvert_), + _ph_ = caml_call2(Runtime_ocaml_Runtime[86], _pg_, _pf_), + _pi_ = caml_call2(Runtime_ocaml_Runtime[83], _ph_, _pe_), + _pj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + prestations_familiales_dot_reg, + _pi_), + _pk_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _iF_, embed_enfant, enfant), + _pl_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _iG_, droit_ouvert_majoration), + _pk_), + _pm_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _iH_, + Runtime_ocaml_Runtime[12], + _pl_), + _pn_ = caml_call2(Runtime_ocaml_Runtime[27], _iI_, _pm_), + _po_ = caml_call2(Runtime_ocaml_Runtime[83], _pn_, _pj_); + return caml_call2(Runtime_ocaml_Runtime[29], _iJ_, _po_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iK_, [0], _o9_, _o8_); + }, + _o6_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iL_, _o7_, _o5_, _o4_); + }], + _o2_ = caml_call4(Runtime_ocaml_Runtime[63], _iM_, _o1_, _o0_, _oZ_); + return _o2_; + } + catch(_o3_){ + var _oY_ = caml_wrap_exception(_o3_); + if(_oY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _it_], 1); + throw caml_maybe_attach_backtrace(_oY_, 0); + } + } + var + montant_initial_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _iN_, Runtime_ocaml_Runtime[10], _nl_); + try{ + var + _nn_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$60); + }, + _no_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iP_, 1); + }, + _np_ = + [0, + function(param){ + function _oq_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _or_(param){return 0;} + function _os_(param){ + function _oJ_(param){ + var + _oR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$5), + _oS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$25), + _oT_ = caml_call2(Runtime_ocaml_Runtime[107], _oS_, _oR_), + _oU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$6), + _oV_ = + caml_call2 + (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oU_), + _oW_ = + caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oV_), + _oX_ = + caml_call2(Runtime_ocaml_Runtime[98], _oW_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _oX_, _oT_); + } + function _oK_(param){ + var + _oL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$7), + _oM_ = + caml_call2 + (Runtime_ocaml_Runtime[104], montant_verse_forfaitaire, _oL_), + _oN_ = + caml_call2(Runtime_ocaml_Runtime[93], plafond_i_i_d521_3, _oM_), + _oO_ = + caml_call2(Runtime_ocaml_Runtime[118], ressources_menage, _oN_), + _oP_ = + caml_call2 + (Runtime_ocaml_Runtime[123], + ressources_menage, + plafond_i_i_d521_3), + _oQ_ = caml_call2(Runtime_ocaml_Runtime[83], _oP_, _oO_); + return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _oQ_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _iR_, [0], _oK_, _oJ_); + } + var + _ot_ = + [0, + function(param){ + function _ou_(param){ + var + _oC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$8), + _oD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$26), + _oE_ = caml_call2(Runtime_ocaml_Runtime[107], _oD_, _oC_), + _oF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$9), + _oG_ = caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCY_), - _cC0_= + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire, + _oF_), + _oH_ = caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cCZ_), - _cC1_= + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _oG_), + _oI_ = caml_call2 - (Runtime_ocaml_Runtime[98],_cC0_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cC1_,_cCX_)} - function _cCO_(param) - {var - _cCP_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$7), - _cCQ_= + (Runtime_ocaml_Runtime[98], _oH_, ressources_menage); + return caml_call2(Runtime_ocaml_Runtime[104], _oI_, _oE_); + } + function _ov_(param){ + var + _ow_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$10), + _ox_ = caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCP_), - _cCR_= + (Runtime_ocaml_Runtime[104], + montant_verse_forfaitaire, + _ow_), + _oy_ = caml_call2 - (Runtime_ocaml_Runtime[93],plafond_i_i_d521_3,_cCQ_), - _cCS_= + (Runtime_ocaml_Runtime[93], plafond_i_d521_3, _ox_), + _oz_ = caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cCR_), - _cCT_= + (Runtime_ocaml_Runtime[118], ressources_menage, _oy_), + _oA_ = caml_call2 (Runtime_ocaml_Runtime[123], ressources_menage, - plafond_i_i_d521_3), - _cCU_=caml_call2(Runtime_ocaml_Runtime[83],_cCT_,_cCS_); - return caml_call2(Runtime_ocaml_Runtime[29],_iQ_,_cCU_)} + plafond_i_d521_3), + _oB_ = caml_call2(Runtime_ocaml_Runtime[83], _oA_, _oz_); + return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _oB_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_iR_,[0],_cCO_,_cCN_)} - var - _cCx_= - [0, - function(param) - {function _cCy_(param) - {var - _cCG_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$8), - _cCH_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$26), - _cCI_=caml_call2(Runtime_ocaml_Runtime[107],_cCH_,_cCG_), - _cCJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$9), - _cCK_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCJ_), - _cCL_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cCK_), - _cCM_= - caml_call2 - (Runtime_ocaml_Runtime[98],_cCL_,ressources_menage); - return caml_call2(Runtime_ocaml_Runtime[104],_cCM_,_cCI_)} - function _cCz_(param) - {var - _cCA_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$10), - _cCB_= - caml_call2 - (Runtime_ocaml_Runtime[104],montant_verse_forfaitaire,_cCA_), - _cCC_= - caml_call2(Runtime_ocaml_Runtime[93],plafond_i_d521_3,_cCB_), - _cCD_= - caml_call2 - (Runtime_ocaml_Runtime[118],ressources_menage,_cCC_), - _cCE_= - caml_call2 - (Runtime_ocaml_Runtime[123], - ressources_menage, - plafond_i_d521_3), - _cCF_=caml_call2(Runtime_ocaml_Runtime[83],_cCE_,_cCD_); - return caml_call2(Runtime_ocaml_Runtime[29],_iS_,_cCF_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_iT_,[0],_cCz_,_cCy_)}, - _cCw_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_iU_,_cCx_,_cCv_,_cCu_)}], - _cBC_=caml_call4(Runtime_ocaml_Runtime[63],_iV_,_cBB_,_cBA_,_cBz_)} - catch(_cCt_) - {_cCt_ = caml_wrap_exception(_cCt_); - if(_cCt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_iO_]; - throw _cCt_} - var - montant_verse_complement_pour_= - caml_call3 - (Runtime_ocaml_Runtime[28],_iW_,Runtime_ocaml_Runtime[13],_cBC_); - try - {var - _cBD_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - montant_initial_base, - rapport_enfants_total_moyen)}, - _cBE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_iY_,1)}, - _cBF_=caml_call4(Runtime_ocaml_Runtime[63],_iZ_,[0],_cBE_,_cBD_)} - catch(_cCs_) - {_cCs_ = caml_wrap_exception(_cCs_); - if(_cCs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_iX_]; - throw _cCs_} - var - montant_avec_garde_alternee_ba= - caml_call3 - (Runtime_ocaml_Runtime[28],_i0_,Runtime_ocaml_Runtime[13],_cBF_); - function _cBG_(enfant) - {try - {var - _cCg_= - function(param) - {var - _cCk_= - caml_call3(Runtime_ocaml_Runtime[28],_i2_,embed_enfant,enfant), - _cCl_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_i3_,prise_en_compte), - _cCk_), - _cCm_= - caml_call3 - (Runtime_ocaml_Runtime[28],_i4_,embed_prise_en_compte,_cCl_), - match=caml_call2(Runtime_ocaml_Runtime[27],_i5_,_cCm_); - switch(match[0]) - {case 0: - var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$27); - break; - case 1: - var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$0); - break; - default: - var _cCn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$61)} - var - _cCo_= - caml_call3(Runtime_ocaml_Runtime[28],_i6_,embed_enfant,enfant), - _cCp_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_i7_,montant_initial_majoration), - _cCo_), - _cCq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _i8_, - Runtime_ocaml_Runtime[13], - _cCp_), - _cCr_=caml_call2(Runtime_ocaml_Runtime[27],_i9_,_cCq_); - return caml_call2(Runtime_ocaml_Runtime[104],_cCr_,_cCn_)}, - _cCh_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_i__,1)}, - _cCi_=caml_call4(Runtime_ocaml_Runtime[63],_i$_,[0],_cCh_,_cCg_); - return _cCi_} - catch(_cCj_) - {_cCj_ = caml_wrap_exception(_cCj_); - if(_cCj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_i1_]; - throw _cCj_}} - var - montant_avec_garde_alternee_ma= - caml_call3 - (Runtime_ocaml_Runtime[28],_ja_,Runtime_ocaml_Runtime[10],_cBG_); - try - {var - _cBH_= - function(param) - {return droit_ouvert_base - ?montant_avec_garde_alternee_ba - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$62)}, - _cBI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jc_,1)}, - _cBJ_=caml_call4(Runtime_ocaml_Runtime[63],_jd_,[0],_cBI_,_cBH_)} - catch(_cCf_) - {_cCf_ = caml_wrap_exception(_cCf_); - if(_cCf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jb_]; - throw _cCf_} - var - montant_verse_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_je_,Runtime_ocaml_Runtime[13],_cBJ_); - try - {var - _cBK_= - function(param) - {if(! droit_ouvert_base) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$64); - function _cB__(enfant) - {var - _cCc_= - caml_call3(Runtime_ocaml_Runtime[28],_jg_,embed_enfant,enfant), - _cCd_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _jh_, - montant_avec_garde_alternee_ma), - _cCc_), - _cCe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ji_, - Runtime_ocaml_Runtime[13], - _cCd_); - return caml_call2(Runtime_ocaml_Runtime[27],_jj_,_cCe_)} - var - _cB$_= - caml_call2(Runtime_ocaml_Runtime[87],_cB__,enfants_a_charge), - _cCa_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$63); - function _cCb_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)} - return caml_call3(Runtime_ocaml_Runtime[88],_cCb_,_cCa_,_cB$_)}, - _cBL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jk_,1)}, - _cBM_=caml_call4(Runtime_ocaml_Runtime[63],_jl_,[0],_cBL_,_cBK_)} - catch(_cB9_) - {_cB9_ = caml_wrap_exception(_cB9_); - if(_cB9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jf_]; - throw _cB9_} - var - montant_verse_majoration= - caml_call3 - (Runtime_ocaml_Runtime[28],_jm_,Runtime_ocaml_Runtime[13],_cBM_); - try - {var - _cBN_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[93], - montant_verse_base, - montant_verse_majoration)}, - _cBO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jo_,1)}, - _cBP_=caml_call4(Runtime_ocaml_Runtime[63],_jp_,[0],_cBO_,_cBN_)} - catch(_cB8_) - {_cB8_ = caml_wrap_exception(_cB8_); - if(_cB8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jn_]; - throw _cB8_} - var - montant_base_complement_pour_b= - caml_call3 - (Runtime_ocaml_Runtime[28],_jq_,Runtime_ocaml_Runtime[13],_cBP_); - try - {var - _cBQ_= - function(param) - {if(! droit_ouvert_complement) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$65); - var - _cB5_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _js_, - Runtime_ocaml_Runtime[13], - montant_base_complement_pour_b), - _cB6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_jt_,complement_degressif), - _cB5_), - _cB7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ju_, - Runtime_ocaml_Runtime[13], - _cB6_); - return caml_call2(Runtime_ocaml_Runtime[27],_jv_,_cB7_)}, - _cBR_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jw_,1)}, - _cBS_=caml_call4(Runtime_ocaml_Runtime[63],_jx_,[0],_cBR_,_cBQ_)} - catch(_cB4_) - {_cB4_ = caml_wrap_exception(_cB4_); - if(_cB4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jr_]; - throw _cB4_} - var - montant_verse_complement_pour_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_jy_,Runtime_ocaml_Runtime[13],_cBS_); - try - {var - _cBT_= - function(param) - {if(! droit_ouvert_base) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$66); - var - _cB1_= - caml_call2 - (Runtime_ocaml_Runtime[93], - montant_verse_base, - montant_verse_majoration), - _cB2_= - caml_call2 - (Runtime_ocaml_Runtime[93],_cB1_,montant_verse_forfaitaire), - _cB3_= - caml_call2 - (Runtime_ocaml_Runtime[93], - _cB2_, - montant_verse_complement_pour_$0); - return caml_call2 - (Runtime_ocaml_Runtime[93], - _cB3_, - montant_verse_complement_pour_)}, - _cBU_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jA_,1)}, - _cBV_=caml_call4(Runtime_ocaml_Runtime[63],_jB_,[0],_cBU_,_cBT_)} - catch(_cB0_) - {_cB0_ = caml_wrap_exception(_cB0_); - if(_cB0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jz_]; - throw _cB0_} - var - montant_verse= - caml_call3 - (Runtime_ocaml_Runtime[28],_jC_,Runtime_ocaml_Runtime[13],_cBV_); - try - {var - _cBW_= - caml_call1(Runtime_ocaml_Runtime[67],personne_charge_effective_perm), - _cBX_= - caml_call2 - (Runtime_ocaml_Runtime[83],_cBW_,personne_charge_effective_perm$0), - _cBY_= - caml_call2 - (Runtime_ocaml_Runtime[84],personne_charge_effective_perm,_cBX_)} - catch(_cBZ_) - {_cBZ_ = caml_wrap_exception(_cBZ_); - if(_cBZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jD_]; - throw _cBZ_} - if(_cBY_)return [0,montant_verse]; - throw [0,Runtime_ocaml_Runtime[3],_jE_]} - function interface_allocations_familial(interface_allocations_familial) - {var - i_date_courante=interface_allocations_familial[1], - i_enfants=interface_allocations_familial[2], - i_ressources_menage=interface_allocations_familial[3], - i_residence=interface_allocations_familial[4], - i_personne_charge_effective_pe=interface_allocations_familial[5], - i_personne_charge_effective_pe$0=interface_allocations_familial[6], - i_avait_enfant_a_charge_avant_=interface_allocations_familial[7]; - try - {var - _cy7_= - function(param) - {function _czR_(enfant) - {var - _czS_=enfant[6], - _czT_=enfant[5], - _czU_=enfant[4], - _czV_=enfant[3], - _czW_=enfant[2], - _czX_=caml_call3(Runtime_ocaml_Runtime[60],3,0,0), - _czY_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_czX_); - if(caml_call2(Runtime_ocaml_Runtime[130],_czY_,i_date_courante)) - var _czZ_=_jG_; - else - var - _cz0_=caml_call3(Runtime_ocaml_Runtime[60],16,0,0), - _cz1_=caml_call3(Runtime_ocaml_Runtime[94],2,enfant[3],_cz0_), - _czZ_= - caml_call2(Runtime_ocaml_Runtime[130],_cz1_,i_date_courante) - ?_jH_ - :_jI_; - return [0,enfant[1],_czZ_,_czW_,_czV_,_czU_,_czT_,_czS_]} - return caml_call2(Runtime_ocaml_Runtime[87],_czR_,i_enfants)}, - _cy8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jJ_,1)}, - _cy9_=caml_call4(Runtime_ocaml_Runtime[63],_jK_,[0],_cy8_,_cy7_)} - catch(_czQ_) - {_czQ_ = caml_wrap_exception(_czQ_); - if(_czQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jF_]; - throw _czQ_} - var - _cy__=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - enfants_a_charge=caml_call3(Runtime_ocaml_Runtime[28],_jL_,_cy__,_cy9_); - try - {var - _cy$_=function(param){return 0}, - _cza_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jN_,1)}, - _czb_= - [0, - function(param) - {function _czO_(param){return 1} - function _czP_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _jO_, - i_personne_charge_effective_pe)} - return caml_call4(Runtime_ocaml_Runtime[63],_jP_,[0],_czP_,_czO_)}], - _czc_=caml_call4(Runtime_ocaml_Runtime[63],_jQ_,_czb_,_cza_,_cy$_), - allocations_familiales_dot_per= - caml_call3 - (Runtime_ocaml_Runtime[28],_jR_,Runtime_ocaml_Runtime[12],_czc_)} - catch(_czN_) - {_czN_ = caml_wrap_exception(_czN_); - if(_czN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jM_]; - throw _czN_} - try - {var - _czd_=function(param){return 0}, - _cze_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jT_,1)}, - _czf_= - [0, - function(param) - {function _czL_(param){return 1} - function _czM_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _jU_, - i_personne_charge_effective_pe$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_jV_,[0],_czM_,_czL_)}], - _czg_=caml_call4(Runtime_ocaml_Runtime[63],_jW_,_czf_,_cze_,_czd_), - allocations_familiales_dot_per$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_jX_,Runtime_ocaml_Runtime[12],_czg_)} - catch(_czK_) - {_czK_ = caml_wrap_exception(_czK_); - if(_czK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jS_]; - throw _czK_} - try - {var - _czh_=function(param){return i_ressources_menage}, - _czi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_jZ_,1)}, - _czj_=caml_call4(Runtime_ocaml_Runtime[63],_j0_,[0],_czi_,_czh_), - allocations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_j1_,Runtime_ocaml_Runtime[13],_czj_)} - catch(_czJ_) - {_czJ_ = caml_wrap_exception(_czJ_); - if(_czJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_jY_]; - throw _czJ_} - try - {var - _czk_=function(param){return i_residence}, - _czl_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j3_,1)}, - _czm_=caml_call4(Runtime_ocaml_Runtime[63],_j4_,[0],_czl_,_czk_), - allocations_familiales_dot_res$0= - caml_call3(Runtime_ocaml_Runtime[28],_j5_,embed_collectivite,_czm_)} - catch(_czI_) - {_czI_ = caml_wrap_exception(_czI_); - if(_czI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j2_]; - throw _czI_} - try - {var - _czn_=function(param){return i_date_courante}, - _czo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j7_,1)}, - _czp_=caml_call4(Runtime_ocaml_Runtime[63],_j8_,[0],_czo_,_czn_), - allocations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_j9_,Runtime_ocaml_Runtime[16],_czp_)} - catch(_czH_) - {_czH_ = caml_wrap_exception(_czH_); - if(_czH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j6_]; - throw _czH_} - try - {var - _czq_=function(param){return enfants_a_charge}, - _czr_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_j$_,1)}, - _czs_=caml_call4(Runtime_ocaml_Runtime[63],_ka_,[0],_czr_,_czq_), - _czt_=caml_call1(Runtime_ocaml_Runtime[18],embed_enfant), - allocations_familiales_dot_enf= - caml_call3(Runtime_ocaml_Runtime[28],_kb_,_czt_,_czs_)} - catch(_czG_) - {_czG_ = caml_wrap_exception(_czG_); - if(_czG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_j__]; - throw _czG_} - try - {var - _czu_=function(param){return 0}, - _czv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kd_,1)}, - _czw_= - [0, - function(param) - {function _czE_(param){return 1} - function _czF_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _ke_, - i_avait_enfant_a_charge_avant_)} - return caml_call4(Runtime_ocaml_Runtime[63],_kf_,[0],_czF_,_czE_)}], - _czx_=caml_call4(Runtime_ocaml_Runtime[63],_kg_,_czw_,_czv_,_czu_), - allocations_familiales_dot_ava= - caml_call3 - (Runtime_ocaml_Runtime[28],_kh_,Runtime_ocaml_Runtime[12],_czx_)} - catch(_czD_) - {_czD_ = caml_wrap_exception(_czD_); - if(_czD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_kc_]; - throw _czD_} - var - _czy_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_ki_,allocations_familiales), - [0, - allocations_familiales_dot_per, - allocations_familiales_dot_per$0, - allocations_familiales_dot_res, - allocations_familiales_dot_res$0, - allocations_familiales_dot_dat, - allocations_familiales_dot_enf, - allocations_familiales_dot_ava]), - result=caml_call2(Runtime_ocaml_Runtime[27],_kj_,_czy_), - allocations_familiales_dot_mon=result[1]; - try - {var - _czz_=function(param){return allocations_familiales_dot_mon}, - _czA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_kl_,1)}, - _czB_=caml_call4(Runtime_ocaml_Runtime[63],_km_,[0],_czA_,_czz_)} - catch(_czC_) - {_czC_ = caml_wrap_exception(_czC_); - if(_czC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_kk_]; - throw _czC_} - var - i_montant_verse= - caml_call3 - (Runtime_ocaml_Runtime[28],_kn_,Runtime_ocaml_Runtime[13],_czB_); - return [0,i_montant_verse]} + (Runtime_ocaml_Runtime[63], _iT_, [0], _ov_, _ou_); + }, + _os_]; + return caml_call4(Runtime_ocaml_Runtime[63], _iU_, _ot_, _or_, _oq_); + }], + _nq_ = caml_call4(Runtime_ocaml_Runtime[63], _iV_, _np_, _no_, _nn_); + } + catch(_op_){ + var _nm_ = caml_wrap_exception(_op_); + if(_nm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iO_], 1); + throw caml_maybe_attach_backtrace(_nm_, 0); + } var - Law_source_Allocations_familia= + montant_verse_complement_pour_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _iW_, Runtime_ocaml_Runtime[13], _nq_); + try{ + var + _ns_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + montant_initial_base, + rapport_enfants_total_moyen); + }, + _nt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _iY_, 1); + }, + _nu_ = caml_call4(Runtime_ocaml_Runtime[63], _iZ_, [0], _nt_, _ns_); + } + catch(_oo_){ + var _nr_ = caml_wrap_exception(_oo_); + if(_nr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iX_], 1); + throw caml_maybe_attach_backtrace(_nr_, 0); + } + var + montant_avec_garde_alternee_ba = + caml_call3 + (Runtime_ocaml_Runtime[28], _i0_, Runtime_ocaml_Runtime[13], _nu_); + function _nv_(enfant){ + try{ + var + _oc_ = + function(param){ + var + _og_ = + caml_call3(Runtime_ocaml_Runtime[28], _i2_, embed_enfant, enfant), + _oh_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _i3_, prise_en_compte), + _og_), + _oi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _i4_, embed_prise_en_compte, _oh_); + switch(caml_call2(Runtime_ocaml_Runtime[27], _i5_, _oi_)[0]){ + case 0: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$27); + break; + case 1: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); + break; + default: + var _oj_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$61); + } + var + _ok_ = + caml_call3(Runtime_ocaml_Runtime[28], _i6_, embed_enfant, enfant), + _ol_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _i7_, montant_initial_majoration), + _ok_), + _om_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _i8_, + Runtime_ocaml_Runtime[13], + _ol_), + _on_ = caml_call2(Runtime_ocaml_Runtime[27], _i9_, _om_); + return caml_call2(Runtime_ocaml_Runtime[104], _on_, _oj_); + }, + _od_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _i__, 1); + }, + _oe_ = caml_call4(Runtime_ocaml_Runtime[63], _i$_, [0], _od_, _oc_); + return _oe_; + } + catch(_of_){ + var _ob_ = caml_wrap_exception(_of_); + if(_ob_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i1_], 1); + throw caml_maybe_attach_backtrace(_ob_, 0); + } + } + var + montant_avec_garde_alternee_ma = + caml_call3 + (Runtime_ocaml_Runtime[28], _ja_, Runtime_ocaml_Runtime[10], _nv_); + try{ + var + _nx_ = + function(param){ + return droit_ouvert_base + ? montant_avec_garde_alternee_ba + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$62); + }, + _ny_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jc_, 1); + }, + _nz_ = caml_call4(Runtime_ocaml_Runtime[63], _jd_, [0], _ny_, _nx_); + } + catch(_oa_){ + var _nw_ = caml_wrap_exception(_oa_); + if(_nw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jb_], 1); + throw caml_maybe_attach_backtrace(_nw_, 0); + } + var + montant_verse_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[13], _nz_); + try{ + var + _nB_ = + function(param){ + if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$64); + function _n5_(enfant){ + var + _n9_ = + caml_call3(Runtime_ocaml_Runtime[28], _jg_, embed_enfant, enfant), + _n__ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jh_, + montant_avec_garde_alternee_ma), + _n9_), + _n$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ji_, + Runtime_ocaml_Runtime[13], + _n__); + return caml_call2(Runtime_ocaml_Runtime[27], _jj_, _n$_); + } + var + _n6_ = caml_call2(Runtime_ocaml_Runtime[87], _n5_, enfants_a_charge), + _n7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$63); + function _n8_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _n8_, _n7_, _n6_); + }, + _nC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jk_, 1); + }, + _nD_ = caml_call4(Runtime_ocaml_Runtime[63], _jl_, [0], _nC_, _nB_); + } + catch(_n4_){ + var _nA_ = caml_wrap_exception(_n4_); + if(_nA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jf_], 1); + throw caml_maybe_attach_backtrace(_nA_, 0); + } + var + montant_verse_majoration = + caml_call3 + (Runtime_ocaml_Runtime[28], _jm_, Runtime_ocaml_Runtime[13], _nD_); + try{ + var + _nF_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[93], + montant_verse_base, + montant_verse_majoration); + }, + _nG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jo_, 1); + }, + _nH_ = caml_call4(Runtime_ocaml_Runtime[63], _jp_, [0], _nG_, _nF_); + } + catch(_n3_){ + var _nE_ = caml_wrap_exception(_n3_); + if(_nE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jn_], 1); + throw caml_maybe_attach_backtrace(_nE_, 0); + } + var + montant_base_complement_pour_b = + caml_call3 + (Runtime_ocaml_Runtime[28], _jq_, Runtime_ocaml_Runtime[13], _nH_); + try{ + var + _nJ_ = + function(param){ + if(! droit_ouvert_complement) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$65); + var + _n0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _js_, + Runtime_ocaml_Runtime[13], + montant_base_complement_pour_b), + _n1_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _jt_, complement_degressif), + _n0_), + _n2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ju_, + Runtime_ocaml_Runtime[13], + _n1_); + return caml_call2(Runtime_ocaml_Runtime[27], _jv_, _n2_); + }, + _nK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jw_, 1); + }, + _nL_ = caml_call4(Runtime_ocaml_Runtime[63], _jx_, [0], _nK_, _nJ_); + } + catch(_nZ_){ + var _nI_ = caml_wrap_exception(_nZ_); + if(_nI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jr_], 1); + throw caml_maybe_attach_backtrace(_nI_, 0); + } + var + montant_verse_complement_pour_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _jy_, Runtime_ocaml_Runtime[13], _nL_); + try{ + var + _nN_ = + function(param){ + if(! droit_ouvert_base) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$66); + var + _nW_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + montant_verse_base, + montant_verse_majoration), + _nX_ = + caml_call2 + (Runtime_ocaml_Runtime[93], _nW_, montant_verse_forfaitaire), + _nY_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + _nX_, + montant_verse_complement_pour_$0); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _nY_, + montant_verse_complement_pour_); + }, + _nO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jA_, 1); + }, + _nP_ = caml_call4(Runtime_ocaml_Runtime[63], _jB_, [0], _nO_, _nN_); + } + catch(_nV_){ + var _nM_ = caml_wrap_exception(_nV_); + if(_nM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jz_], 1); + throw caml_maybe_attach_backtrace(_nM_, 0); + } + var + montant_verse = + caml_call3 + (Runtime_ocaml_Runtime[28], _jC_, Runtime_ocaml_Runtime[13], _nP_); + try{ + var + _nR_ = + caml_call1(Runtime_ocaml_Runtime[67], personne_charge_effective_perm), + _nS_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _nR_, personne_charge_effective_perm$0), + _nT_ = + caml_call2 + (Runtime_ocaml_Runtime[84], personne_charge_effective_perm, _nS_); + } + catch(_nU_){ + var _nQ_ = caml_wrap_exception(_nU_); + if(_nQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jD_], 1); + throw caml_maybe_attach_backtrace(_nQ_, 0); + } + if(_nT_) return [0, montant_verse]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _jE_], 1); + } + function interface_allocations_familial(interface_allocations_familial){ + var + i_date_courante = interface_allocations_familial[1], + i_enfants = interface_allocations_familial[2], + i_ressources_menage = interface_allocations_familial[3], + i_residence = interface_allocations_familial[4], + i_personne_charge_effective_pe = interface_allocations_familial[5], + i_personne_charge_effective_pe$0 = interface_allocations_familial[6], + i_avait_enfant_a_charge_avant_ = interface_allocations_familial[7]; + try{ + var + _kp_ = + function(param){ + function _lh_(enfant){ + var + _li_ = enfant[6], + _lj_ = enfant[5], + _lk_ = enfant[4], + _ll_ = enfant[3], + _lm_ = enfant[2], + _ln_ = caml_call3(Runtime_ocaml_Runtime[60], 3, 0, 0), + _lo_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _ln_); + if(caml_call2(Runtime_ocaml_Runtime[130], _lo_, i_date_courante)) + var _lp_ = _jG_; + else + var + _lq_ = caml_call3(Runtime_ocaml_Runtime[60], 16, 0, 0), + _lr_ = caml_call3(Runtime_ocaml_Runtime[94], 2, enfant[3], _lq_), + _lp_ = + caml_call2(Runtime_ocaml_Runtime[130], _lr_, i_date_courante) + ? _jH_ + : _jI_; + return [0, enfant[1], _lp_, _lm_, _ll_, _lk_, _lj_, _li_]; + } + return caml_call2(Runtime_ocaml_Runtime[87], _lh_, i_enfants); + }, + _kq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jJ_, 1); + }, + _kr_ = caml_call4(Runtime_ocaml_Runtime[63], _jK_, [0], _kq_, _kp_); + } + catch(_lg_){ + var _ko_ = caml_wrap_exception(_lg_); + if(_ko_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jF_], 1); + throw caml_maybe_attach_backtrace(_ko_, 0); + } + var + _ks_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + enfants_a_charge = + caml_call3(Runtime_ocaml_Runtime[28], _jL_, _ks_, _kr_); + try{ + var + _ku_ = function(param){return 0;}, + _kv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jN_, 1); + }, + _kw_ = + [0, + function(param){ + function _le_(param){return 1;} + function _lf_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jO_, + i_personne_charge_effective_pe); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jP_, [0], _lf_, _le_); + }], + _kx_ = caml_call4(Runtime_ocaml_Runtime[63], _jQ_, _kw_, _kv_, _ku_), + allocations_familiales_dot_per = + caml_call3 + (Runtime_ocaml_Runtime[28], _jR_, Runtime_ocaml_Runtime[12], _kx_); + } + catch(_ld_){ + var _kt_ = caml_wrap_exception(_ld_); + if(_kt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jM_], 1); + throw caml_maybe_attach_backtrace(_kt_, 0); + } + try{ + var + _kz_ = function(param){return 0;}, + _kA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jT_, 1); + }, + _kB_ = + [0, + function(param){ + function _lb_(param){return 1;} + function _lc_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jU_, + i_personne_charge_effective_pe$0); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jV_, [0], _lc_, _lb_); + }], + _kC_ = caml_call4(Runtime_ocaml_Runtime[63], _jW_, _kB_, _kA_, _kz_), + allocations_familiales_dot_per$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _jX_, Runtime_ocaml_Runtime[12], _kC_); + } + catch(_la_){ + var _ky_ = caml_wrap_exception(_la_); + if(_ky_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jS_], 1); + throw caml_maybe_attach_backtrace(_ky_, 0); + } + try{ + var + _kE_ = function(param){return i_ressources_menage;}, + _kF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jZ_, 1); + }, + _kG_ = caml_call4(Runtime_ocaml_Runtime[63], _j0_, [0], _kF_, _kE_), + allocations_familiales_dot_res = + caml_call3 + (Runtime_ocaml_Runtime[28], _j1_, Runtime_ocaml_Runtime[13], _kG_); + } + catch(_k$_){ + var _kD_ = caml_wrap_exception(_k$_); + if(_kD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jY_], 1); + throw caml_maybe_attach_backtrace(_kD_, 0); + } + try{ + var + _kI_ = function(param){return i_residence;}, + _kJ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j3_, 1); + }, + _kK_ = caml_call4(Runtime_ocaml_Runtime[63], _j4_, [0], _kJ_, _kI_), + allocations_familiales_dot_res$0 = + caml_call3(Runtime_ocaml_Runtime[28], _j5_, embed_collectivite, _kK_); + } + catch(_k__){ + var _kH_ = caml_wrap_exception(_k__); + if(_kH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j2_], 1); + throw caml_maybe_attach_backtrace(_kH_, 0); + } + try{ + var + _kM_ = function(param){return i_date_courante;}, + _kN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j7_, 1); + }, + _kO_ = caml_call4(Runtime_ocaml_Runtime[63], _j8_, [0], _kN_, _kM_), + allocations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _j9_, Runtime_ocaml_Runtime[16], _kO_); + } + catch(_k9_){ + var _kL_ = caml_wrap_exception(_k9_); + if(_kL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j6_], 1); + throw caml_maybe_attach_backtrace(_kL_, 0); + } + try{ + var + _kQ_ = function(param){return enfants_a_charge;}, + _kR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _j$_, 1); + }, + _kS_ = caml_call4(Runtime_ocaml_Runtime[63], _ka_, [0], _kR_, _kQ_), + _kT_ = caml_call1(Runtime_ocaml_Runtime[18], embed_enfant), + allocations_familiales_dot_enf = + caml_call3(Runtime_ocaml_Runtime[28], _kb_, _kT_, _kS_); + } + catch(_k8_){ + var _kP_ = caml_wrap_exception(_k8_); + if(_kP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j__], 1); + throw caml_maybe_attach_backtrace(_kP_, 0); + } + try{ + var + _kV_ = function(param){return 0;}, + _kW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kd_, 1); + }, + _kX_ = + [0, + function(param){ + function _k6_(param){return 1;} + function _k7_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _ke_, + i_avait_enfant_a_charge_avant_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kf_, [0], _k7_, _k6_); + }], + _kY_ = caml_call4(Runtime_ocaml_Runtime[63], _kg_, _kX_, _kW_, _kV_), + allocations_familiales_dot_ava = + caml_call3 + (Runtime_ocaml_Runtime[28], _kh_, Runtime_ocaml_Runtime[12], _kY_); + } + catch(_k5_){ + var _kU_ = caml_wrap_exception(_k5_); + if(_kU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kc_], 1); + throw caml_maybe_attach_backtrace(_kU_, 0); + } + var + _kZ_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _ki_, allocations_familiales), + [0, + allocations_familiales_dot_per, + allocations_familiales_dot_per$0, + allocations_familiales_dot_res, + allocations_familiales_dot_res$0, + allocations_familiales_dot_dat, + allocations_familiales_dot_enf, + allocations_familiales_dot_ava]), + result = caml_call2(Runtime_ocaml_Runtime[27], _kj_, _kZ_), + allocations_familiales_dot_mon = result[1]; + try{ + var + _k1_ = function(param){return allocations_familiales_dot_mon;}, + _k2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kl_, 1); + }, + _k3_ = caml_call4(Runtime_ocaml_Runtime[63], _km_, [0], _k2_, _k1_); + } + catch(_k4_){ + var _k0_ = caml_wrap_exception(_k4_); + if(_k0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kk_], 1); + throw caml_maybe_attach_backtrace(_k0_, 0); + } + var + i_montant_verse = + caml_call3 + (Runtime_ocaml_Runtime[28], _kn_, Runtime_ocaml_Runtime[13], _k3_); + return [0, i_montant_verse]; + } + var + Law_source_Allocations_familia = [0, PriseEnCharge, embed_prise_en_charge, @@ -104920,585 +56857,795 @@ prestations_familiales, allocations_familiales, interface_allocations_familial]; - caml_register_global - (9728, - Law_source_Allocations_familia, - "Law_source__Allocations_familiales"); - function prise_en_charge_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"GardeAlterneePartageAllocations","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeALaFamille", - "payload":arg$2}; - default: - var arg$3=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", - "payload":arg$3}}} - function prise_en_charge_of_jsoo(prise_en_charge) - {var cons=caml_string_of_jsstring(prise_en_charge.kind); - if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$0))return _kt_; - if(! caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn)) - return _ks_; - if(! caml_string_notequal(cons,cst_GardeAlterneePartageAlloca)) - return _kr_; - if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$1)) - return _kq_; - if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$2)) - return _kp_; - var _cy6_=caml_call2(Stdlib_Printf[4],_ko_,cons); - return caml_call1(Stdlib[2],_cy6_)} - function situation_obligation_scolaire_(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} - function situation_obligation_scolaire_$0(situation_obligation_scolaire) - {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(! caml_string_notequal(cons,cst_Apres))return _kx_; - if(! caml_string_notequal(cons,cst_Avant$0))return _kw_; - if(! caml_string_notequal(cons,cst_Pendant$0))return _kv_; - var _cy5_=caml_call2(Stdlib_Printf[4],_ku_,cons); - return caml_call1(Stdlib[2],_cy5_)} - function prise_en_compte_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Complete","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Partagee","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Zero","payload":arg$1}}} - function prise_en_compte_of_jsoo(prise_en_compte) - {var cons=caml_string_of_jsstring(prise_en_compte.kind); - if(! caml_string_notequal(cons,cst_Complete))return _kB_; - if(! caml_string_notequal(cons,cst_Partagee))return _kA_; - if(! caml_string_notequal(cons,cst_Zero))return _kz_; - var _cy4_=caml_call2(Stdlib_Printf[4],_ky_,cons); - return caml_call1(Stdlib[2],_cy4_)} - function versement_allocations_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Normal","payload":arg}} - var arg$0=param[1]; - return {"kind":"AllocationVerseeAuxServicesSociaux","payload":arg$0}} - function versement_allocations_of_jsoo(versement_allocations) - {var cons=caml_string_of_jsstring(versement_allocations.kind); - if(! caml_string_notequal(cons,cst_AllocationVerseeAuxService)) - return _kE_; - if(! caml_string_notequal(cons,cst_Normal$0))return _kD_; - var _cy3_=caml_call2(Stdlib_Printf[4],_kC_,cons); - return caml_call1(Stdlib[2],_cy3_)} - function element_prestations_familiales(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"ComplementFamilial","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationLogement","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; - case 5: - var arg$4=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$4}; - case 6: - var arg$5=param[1]; - return {"kind":"AllocationRentreeScolaire","payload":arg$5}; - default: - var arg$6=param[1]; - return {"kind":"AllocationJournalierePresenceParentale", - "payload":arg$6}}} - function element_prestations_familiales$0(element_prestations_familiales) - {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); - if(! caml_string_notequal(cons,cst_AllocationEducationEnfantH)) - return _kN_; - if(! caml_string_notequal(cons,cst_AllocationJournalierePrese)) - return _kM_; - if(! caml_string_notequal(cons,cst_AllocationLogement$0))return _kL_; - if(! caml_string_notequal(cons,cst_AllocationRentreeScolaire)) - return _kK_; - if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$0)) - return _kJ_; - if(! caml_string_notequal(cons,cst_AllocationsFamiliales$0))return _kI_; - if(! caml_string_notequal(cons,cst_ComplementFamilial))return _kH_; - if(! caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$0)) - return _kG_; - var _cy2_=caml_call2(Stdlib_Printf[4],_kF_,cons); - return caml_call1(Stdlib[2],_cy2_)} - function collectivite_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; - case 2: - var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; - case 4: - var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; - case 5: - var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; - case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; - case 7: - var arg$6=param[1]; - return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; - default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} - function collectivite_of_jsoo(collectivite) - {var cons=caml_string_of_jsstring(collectivite.kind); - if(! caml_string_notequal(cons,cst_Guadeloupe$0))return _kX_; - if(! caml_string_notequal(cons,cst_Guyane$0))return _kW_; - if(! caml_string_notequal(cons,cst_LaReunion))return _kV_; - if(! caml_string_notequal(cons,cst_Martinique$0))return _kU_; - if(! caml_string_notequal(cons,cst_Mayotte$0))return _kT_; - if(! caml_string_notequal(cons,cst_Metropole))return _kS_; - if(! caml_string_notequal(cons,cst_SaintBarthelemy))return _kR_; - if(! caml_string_notequal(cons,cst_SaintMartin$0))return _kQ_; - if(! caml_string_notequal(cons,cst_SaintPierreEtMiquelon$0))return _kP_; - var _cy1_=caml_call2(Stdlib_Printf[4],_kO_,cons); - return caml_call1(Stdlib[2],_cy1_)} - function allocation_familiales_avril200$0(allocation_familiales_avril200) - {var - t66= - caml_call1(Runtime_jsoo_Runtime[3],allocation_familiales_avril200[1]); - return {"ageMinimumAlinea1L5213":t66}} - function allocation_familiales_avril200$1(allocation_familiales_avril200) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - allocation_familiales_avril200.ageMinimumAlinea1L5213)]} - function allocations_familiales_to_jsoo(allocations_familiales) - {var t68=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales[1]); - return {"montantVerse":t68}} - function allocations_familiales_of_jsoo(allocations_familiales) - {var - _cy0_= - caml_call1 - (Runtime_ocaml_Runtime[42],allocations_familiales.montantVerse); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cy0_)]} - function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_) - {var t70=! ! verification_age_inferieur_ou_[1]; - return {"estInferieurOuEgal":t70}} - function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_) - {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} - function verification_age_superieur_a_t(verification_age_superieur_a) - {var t72=! ! verification_age_superieur_a[1];return {"estSuperieur":t72}} - function verification_age_superieur_a_o(verification_age_superieur_a) - {return [0,verification_age_superieur_a.estSuperieur | 0]} - function smic_to_jsoo(smic) - {var t74=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); - return {"brutHoraire":t74}} - function smic_of_jsoo(smic) - {var _cyZ_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyZ_)]} - function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam) - {var - t76= - caml_call1 - (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); - return {"montant":t76}} - function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam) - {var - _cyY_= - caml_call1 - (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyY_)]} - function interface_allocations_familial$0(interface_allocations_familial) - {var - t78= - caml_call1 - (Runtime_ocaml_Runtime[35],interface_allocations_familial[1]); - return {"iMontantVerse":t78}} - function interface_allocations_familial$1(interface_allocations_familial) - {var - _cyX_= - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iMontantVerse); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_cyX_)]} - function enfant_entree_to_jsoo(enfant_entree) - {var - t85=! ! enfant_entree[6], - t84=! ! enfant_entree[5], - t83=prise_en_charge_to_jsoo(enfant_entree[4]), - t82=caml_call1(Runtime_jsoo_Runtime[5],enfant_entree[3]), - t81=caml_call1(Runtime_ocaml_Runtime[35],enfant_entree[2]), - t80=caml_call1(Runtime_ocaml_Runtime[48],enfant_entree[1]); - return {"dIdentifiant":t80, - "dRemunerationMensuelle":t81, - "dDateDeNaissance":t82, - "dPriseEnCharge":t83, - "dADejaOuvertDroitAuxAllocationsFamiliales":t84, - "dBeneficieTitrePersonnelAidePersonnelleLogement":t85}} - function enfant_entree_of_jsoo(enfant_entree) - {var - _cyR_=enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, - _cyS_=enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, - _cyT_=prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), - _cyU_= - caml_call1(Runtime_jsoo_Runtime[4],enfant_entree.dDateDeNaissance), - _cyV_= - caml_call1 - (Runtime_ocaml_Runtime[42],enfant_entree.dRemunerationMensuelle), - _cyW_=caml_call1(Runtime_ocaml_Runtime[33],_cyV_); - return [0, - caml_call1(Runtime_ocaml_Runtime[49],enfant_entree.dIdentifiant), - _cyW_, - _cyU_, - _cyT_, - _cyS_, - _cyR_]} - function enfant_to_jsoo(enfant) - {var - t98=! ! enfant[7], - t97=! ! enfant[6], - t96=prise_en_charge_to_jsoo(enfant[5]), - t95=caml_call1(Runtime_jsoo_Runtime[5],enfant[4]), - t94=caml_call1(Runtime_ocaml_Runtime[35],enfant[3]), - t93=situation_obligation_scolaire_(enfant[2]), - t92=caml_call1(Runtime_ocaml_Runtime[48],enfant[1]); - return {"identifiant":t92, - "obligationScolaire":t93, - "remunerationMensuelle":t94, - "dateDeNaissance":t95, - "priseEnCharge":t96, - "aDejaOuvertDroitAuxAllocationsFamiliales":t97, - "beneficieTitrePersonnelAidePersonnelleLogement":t98}} - function enfant_of_jsoo(enfant) - {var - _cyK_=enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, - _cyL_=enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _cyM_=prise_en_charge_of_jsoo(enfant.priseEnCharge), - _cyN_=caml_call1(Runtime_jsoo_Runtime[4],enfant.dateDeNaissance), - _cyO_= - caml_call1(Runtime_ocaml_Runtime[42],enfant.remunerationMensuelle), - _cyP_=caml_call1(Runtime_ocaml_Runtime[33],_cyO_), - _cyQ_=situation_obligation_scolaire_$0(enfant.obligationScolaire); - return [0, - caml_call1(Runtime_ocaml_Runtime[49],enfant.identifiant), - _cyQ_, - _cyP_, - _cyN_, - _cyM_, - _cyL_, - _cyK_]} - function enfant_le_plus_age_to_jsoo(enfant_le_plus_age) - {var t106=enfant_to_jsoo(enfant_le_plus_age[1]); - return {"lePlusAge":t106}} - function enfant_le_plus_age_of_jsoo(enfant_le_plus_age) - {return [0,enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]} - function prestations_familiales_to_jsoo(prestations_familiales) - {var - t111=! ! prestations_familiales[4], - t110=caml_call1(Runtime_jsoo_Runtime[3],prestations_familiales[3]); - function t109(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _cyJ_=enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[2],_cyJ_)})} - function t108(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _cyI_=enfant_of_jsoo(function_input0); - return ! ! caml_call1(prestations_familiales[1],_cyI_)})} - return {"droitOuvert":caml_js_wrap_meth_callback(t108), - "conditionsHorsAge":caml_js_wrap_meth_callback(t109), - "ageL51232":t110, - "regimeOutreMerL7511":t111}} - function prestations_familiales_of_jsoo(prestations_familiales) - {var - _cyF_=prestations_familiales.regimeOutreMerL7511 | 0, - _cyG_= - caml_call1(Runtime_jsoo_Runtime[2],prestations_familiales.ageL51232), - _cyH_=caml_call1(Stdlib[2],cst_The_function_conditions_ho); - return [0, - caml_call1(Stdlib[2],cst_The_function_droit_ouvert_), - _cyH_, - _cyG_, - _cyF_]} - function prestations_familiales_in_to_j(prestations_familiales_in) - {var - t116=collectivite_to_jsoo(prestations_familiales_in[3]), - t115=element_prestations_familiales(prestations_familiales_in[2]), - t114=caml_call1(Runtime_jsoo_Runtime[5],prestations_familiales_in[1]); - return {"dateCouranteIn":t114, - "prestationCouranteIn":t115, - "residenceIn":t116}} - function prestations_familiales_in_of_j(prestations_familiales_in) - {var - _cyD_=collectivite_of_jsoo(prestations_familiales_in.residenceIn), - _cyE_= - element_prestations_familiales$0 - (prestations_familiales_in.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - prestations_familiales_in.dateCouranteIn), - _cyE_, - _cyD_]} - function allocation_familiales_avril200$2(param){return {}} - function allocation_familiales_avril200$3(param){return 0} - function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in) - {var _cyB_=enfant_le_plus_age_in[1]; - function _cyC_(x){return enfant_to_jsoo(x)} - var t120=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyC_,_cyB_)); - return {"enfantsIn":t120}} - function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in) - {var _cyz_=caml_js_to_array(enfant_le_plus_age_in.enfantsIn); - function _cyA_(x){return enfant_of_jsoo(x)} - return [0,caml_call1(caml_call1(Stdlib_Array[15],_cyA_),_cyz_)]} - function allocations_familiales_in_to_j(allocations_familiales_in) - {var - t128=! ! allocations_familiales_in[7], - _cyx_=allocations_familiales_in[6]; - function _cyy_(x){return enfant_to_jsoo(x)} - var - t127=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyy_,_cyx_)), - t126=caml_call1(Runtime_jsoo_Runtime[5],allocations_familiales_in[5]), - t125=collectivite_to_jsoo(allocations_familiales_in[4]), - t124=caml_call1(Runtime_ocaml_Runtime[35],allocations_familiales_in[3]), - t123=! ! allocations_familiales_in[2], - t122=! ! allocations_familiales_in[1]; - return {"personneChargeEffectivePermanenteEstParentIn":t122, - "personneChargeEffectivePermanenteRemplitTitreIIn":t123, - "ressourcesMenageIn":t124, - "residenceIn":t125, - "dateCouranteIn":t126, - "enfantsAChargeIn":t127, - "avaitEnfantAChargeAvant1erJanvier2012In":t128}} - function allocations_familiales_in_of_j(allocations_familiales_in) - {var - _cyp_= - allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In - | - 0, - _cyq_=caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); - function _cyr_(x){return enfant_of_jsoo(x)} - var - _cys_=caml_call1(caml_call1(Stdlib_Array[15],_cyr_),_cyq_), - _cyt_= - caml_call1 - (Runtime_jsoo_Runtime[4],allocations_familiales_in.dateCouranteIn), - _cyu_=collectivite_of_jsoo(allocations_familiales_in.residenceIn), - _cyv_= - caml_call1 - (Runtime_ocaml_Runtime[42], - allocations_familiales_in.ressourcesMenageIn), - _cyw_=caml_call1(Runtime_ocaml_Runtime[33],_cyv_); - return [0, - allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn - | - 0, - allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn - | - 0, - _cyw_, - _cyu_, - _cyt_, - _cys_, - _cyp_]} - function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_) - {var - t138= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), - t137= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), - t136= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); - return {"dateNaissanceIn":t136,"dateCouranteIn":t137,"anneesIn":t138}} - function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_) - {var - _cyn_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), - _cyo_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _cyo_, - _cyn_]} - function verification_age_superieur_a_i(verification_age_superieur_a_i) - {var - t144= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), - t143= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), - t142= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); - return {"dateNaissanceIn":t142,"dateCouranteIn":t143,"anneesIn":t144}} - function verification_age_superieur_a_i$0(verification_age_superieur_a_i) - {var - _cyl_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), - _cym_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _cym_, - _cyl_]} - function smic_in_to_jsoo(smic_in) - {var - t149=collectivite_to_jsoo(smic_in[2]), - t148=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); - return {"dateCouranteIn":t148,"residenceIn":t149}} - function smic_in_of_jsoo(smic_in) - {var _cyk_=collectivite_of_jsoo(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), - _cyk_]} - function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam) - {var - t152= - caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); - return {"dateCouranteIn":t152}} - function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]} - function interface_allocations_familial$2(interface_allocations_familial) - {var - t160=! ! interface_allocations_familial[7], - t159=! ! interface_allocations_familial[6], - t158=! ! interface_allocations_familial[5], - t157=collectivite_to_jsoo(interface_allocations_familial[4]), - t156= - caml_call1 - (Runtime_ocaml_Runtime[35],interface_allocations_familial[3]), - _cyi_=interface_allocations_familial[2]; - function _cyj_(x){return enfant_entree_to_jsoo(x)} - var - t155=caml_js_from_array(caml_call2(Stdlib_Array[15],_cyj_,_cyi_)), - t154= - caml_call1(Runtime_jsoo_Runtime[5],interface_allocations_familial[1]); - return {"iDateCouranteIn":t154, - "iEnfantsIn":t155, - "iRessourcesMenageIn":t156, - "iResidenceIn":t157, - "iPersonneChargeEffectivePermanenteEstParentIn":t158, - "iPersonneChargeEffectivePermanenteRemplitTitreIIn":t159, - "iAvaitEnfantAChargeAvant1erJanvier2012In":t160}} - function interface_allocations_familial$3(interface_allocations_familial) - {var - _cx$_= - interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In - | - 0, - _cya_= - interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn - | - 0, - _cyb_= - interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn - | - 0, - _cyc_=collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), - _cyd_= - caml_call1 - (Runtime_ocaml_Runtime[42], - interface_allocations_familial.iRessourcesMenageIn), - _cye_=caml_call1(Runtime_ocaml_Runtime[33],_cyd_), - _cyf_=caml_js_to_array(interface_allocations_familial.iEnfantsIn); - function _cyg_(x){return enfant_entree_of_jsoo(x)} - var _cyh_=caml_call1(caml_call1(Stdlib_Array[15],_cyg_),_cyf_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - interface_allocations_familial.iDateCouranteIn), - _cyh_, - _cye_, - _cyc_, - _cyb_, - _cya_, - _cx$_]} - function allocation_familiales_avril200$4 - (allocation_familiales_avril200$1) - {return allocation_familiales_avril200$0 - (allocation_familiales_avril200(0))} - function enfant_le_plus_age$0(enfant_le_plus_age_in) - {return enfant_le_plus_age_to_jsoo - (enfant_le_plus_age - (enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in)))} - function verification_age_inferieur_ou_$4 - (verification_age_inferieur_ou_$1) - {return verification_age_inferieur_ou_$0 - (verification_age_inferieur_ou_ - (verification_age_inferieur_ou_$3 - (verification_age_inferieur_ou_$1)))} - function verification_age_superieur_a$0(verification_age_superieur_a_i) - {return verification_age_superieur_a_t - (verification_age_superieur_a - (verification_age_superieur_a_i$0 - (verification_age_superieur_a_i)))} - function smic$0(smic_in) - {return smic_to_jsoo(smic(smic_in_of_jsoo(smic_in)))} - function base_mensuelle_allocations_fam$4 - (base_mensuelle_allocations_fam$1) - {return base_mensuelle_allocations_fam$0 - (base_mensuelle_allocations_fam - (base_mensuelle_allocations_fam$3 - (base_mensuelle_allocations_fam$1)))} - function prestations_familiales$0(prestations_familiales_in) - {return prestations_familiales_to_jsoo - (prestations_familiales - (prestations_familiales_in_of_j(prestations_familiales_in)))} - function allocations_familiales$0(allocations_familiales_in) - {return allocations_familiales_to_jsoo - (allocations_familiales - (allocations_familiales_in_of_j(allocations_familiales_in)))} - function interface_allocations_familial$4 - (interface_allocations_familial$1) - {return interface_allocations_familial$0 - (interface_allocations_familial - (interface_allocations_familial$3 - (interface_allocations_familial$1)))} - function t176(param) - {return caml_js_wrap_callback(interface_allocations_familial$4)} - function t175(param) - {return caml_js_wrap_callback(allocations_familiales$0)} - function t174(param) - {return caml_js_wrap_callback(prestations_familiales$0)} - function t173(param) - {return caml_js_wrap_callback(base_mensuelle_allocations_fam$4)} - function t172(param){return caml_js_wrap_callback(smic$0)} - function t171(param) - {return caml_js_wrap_callback(verification_age_superieur_a$0)} - function t170(param) - {return caml_js_wrap_callback(verification_age_inferieur_ou_$4)} - function t169(param){return caml_js_wrap_callback(enfant_le_plus_age$0)} - function t168(param) - {return caml_js_wrap_callback(allocation_familiales_avril200$4)} - caml_call2 - (Js_of_ocaml_Js[50], - cst_AllocationsFamilialesLib, - {"allocationFamilialesAvril2008":caml_js_wrap_meth_callback(t168), - "enfantLePlusAge":caml_js_wrap_meth_callback(t169), - "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t170), - "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t171), - "smic":caml_js_wrap_meth_callback(t172), - "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t173), - "prestationsFamiliales":caml_js_wrap_meth_callback(t174), - "allocationsFamiliales":caml_js_wrap_meth_callback(t175), - "interfaceAllocationsFamiliales":caml_js_wrap_meth_callback(t176)}); + runtime.caml_register_global + (1028, + Law_source_Allocations_familia, + "Law_source__Allocations_familiales"); + return; + } + (globalThis)); + +//# 11333 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", + cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", + cst_AllocationLogement = "AllocationLogement", + cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationVerseeAuxService = "AllocationVerseeAuxServicesSociaux", + cst_AllocationsFamiliales = "AllocationsFamiliales", + cst_Apres = "Apres", + cst_Avant = "Avant", + cst_ComplementFamilial = "ComplementFamilial", + cst_Complete = "Complete", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", + cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_LaReunion = "LaReunion", + cst_Martinique = "Martinique", + cst_Mayotte = "Mayotte", + cst_Metropole = "Metropole", + cst_Normal = "Normal", + cst_Partagee = "Partagee", + cst_Pendant = "Pendant", + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_SaintBarthelemy = "SaintBarthelemy", + cst_SaintMartin = "SaintMartin", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVerseeALaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVerseeAuxServicesSociaux", + cst_Unexpected = "Unexpected '", + cst_Zero = "Zero", + caml_js_from_array = runtime.caml_js_from_array, + caml_js_to_array = runtime.caml_js_to_array, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var global_data = runtime.caml_get_global_data(); + global_data.CamlinternalOO; + var + Law_source_Allocations_familia = + global_data.Law_source__Allocations_familiales, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Stdlib_Array = global_data.Stdlib__Array, + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Stdlib = global_data.Stdlib, + Stdlib_Printf = global_data.Stdlib__Printf, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + cst_The_function_conditions_ho = + "The function 'conditions_hors_age' translation isn't yet supported...", + cst_The_function_droit_ouvert_ = + "The function 'droit_ouvert' translation isn't yet supported...", + _B_ = [7, 0], + _C_ = [5, 0], + _D_ = [4, 0], + _E_ = [6, 0], + _F_ = [8, 0], + _G_ = [2, 0], + _H_ = [3, 0], + _I_ = [1, 0], + _J_ = [0, 0], + _A_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], + _s_ = [0, 0], + _t_ = [2, 0], + _u_ = [1, 0], + _v_ = [5, 0], + _w_ = [6, 0], + _x_ = [3, 0], + _y_ = [7, 0], + _z_ = [4, 0], + _r_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'ElementPrestationsFamiliales.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], + _p_ = [0, 0], + _q_ = [1, 0], + _o_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'VersementAllocations.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'VersementAllocations.t'"], + _l_ = [2, 0], + _m_ = [1, 0], + _n_ = [0, 0], + _k_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCompte.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCompte.t'"], + _h_ = [1, 0], + _i_ = [0, 0], + _j_ = [2, 0], + _g_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], + _b_ = [4, 0], + _c_ = [3, 0], + _d_ = [0, 0], + _e_ = [1, 0], + _f_ = [2, 0], + _a_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], + cst_AllocationsFamilialesLib = "AllocationsFamilialesLib"; + function prise_en_charge_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; + default: + var arg$3 = param[1]; + return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; + } + } + function prise_en_charge_of_jsoo(prise_en_charge){ + var cons = caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _f_; + if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) + return _e_; + if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) + return _d_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) + return _c_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) + return _b_; + var _bo_ = caml_call2(Stdlib_Printf[4], _a_, cons); + return caml_call1(Stdlib[2], _bo_); + } + function situation_obligation_scolaire_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Avant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; + } + } + function situation_obligation_scolaire_$0(situation_obligation_scolaire){ + var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons, cst_Apres)) return _j_; + if(! caml_string_notequal(cons, cst_Avant)) return _i_; + if(! caml_string_notequal(cons, cst_Pendant)) return _h_; + var _bn_ = caml_call2(Stdlib_Printf[4], _g_, cons); + return caml_call1(Stdlib[2], _bn_); + } + function prise_en_compte_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Complete, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Partagee, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Zero, payload: arg$1}; + } + } + function prise_en_compte_of_jsoo(prise_en_compte){ + var cons = caml_string_of_jsstring(prise_en_compte.kind); + if(! caml_string_notequal(cons, cst_Complete)) return _n_; + if(! caml_string_notequal(cons, cst_Partagee)) return _m_; + if(! caml_string_notequal(cons, cst_Zero)) return _l_; + var _bm_ = caml_call2(Stdlib_Printf[4], _k_, cons); + return caml_call1(Stdlib[2], _bm_); + } + function versement_allocations_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Normal, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_AllocationVerseeAuxService, payload: arg$0}; + } + function versement_allocations_of_jsoo(versement_allocations){ + var cons = caml_string_of_jsstring(versement_allocations.kind); + if(! caml_string_notequal(cons, cst_AllocationVerseeAuxService)) + return _q_; + if(! caml_string_notequal(cons, cst_Normal)) return _p_; + var _bl_ = caml_call2(Stdlib_Printf[4], _o_, cons); + return caml_call1(Stdlib[2], _bl_); + } + function element_prestations_familiales(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationLogement, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; + case 5: + var arg$4 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; + case 6: + var arg$5 = param[1]; + return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; + default: + var arg$6 = param[1]; + return {kind: cst_AllocationJournalierePrese, payload: arg$6}; + } + } + function element_prestations_familiales$0(element_prestations_familiales){ + var cons = caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) + return _z_; + if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) + return _y_; + if(! caml_string_notequal(cons, cst_AllocationLogement)) return _x_; + if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) + return _w_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _v_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _u_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _t_; + if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) + return _s_; + var _bk_ = caml_call2(Stdlib_Printf[4], _r_, cons); + return caml_call1(Stdlib[2], _bk_); + } + function collectivite_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_SaintBarthelemy, payload: arg$3}; + case 5: + var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; + case 6: + var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; + case 7: + var arg$6 = param[1]; + return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; + default: + var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; + } + } + function collectivite_of_jsoo(collectivite){ + var cons = caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons, cst_Guadeloupe)) return _J_; + if(! caml_string_notequal(cons, cst_Guyane)) return _I_; + if(! caml_string_notequal(cons, cst_LaReunion)) return _H_; + if(! caml_string_notequal(cons, cst_Martinique)) return _G_; + if(! caml_string_notequal(cons, cst_Mayotte)) return _F_; + if(! caml_string_notequal(cons, cst_Metropole)) return _E_; + if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _D_; + if(! caml_string_notequal(cons, cst_SaintMartin)) return _C_; + if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _B_; + var _bj_ = caml_call2(Stdlib_Printf[4], _A_, cons); + return caml_call1(Stdlib[2], _bj_); + } + function allocation_familiales_avril200(allocation_familiales_avril200){ + return {ageMinimumAlinea1L5213: + caml_call1 + (Runtime_jsoo_Runtime[3], allocation_familiales_avril200[1])}; + } + function allocation_familiales_avril200$0(allocation_familiales_avril200){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + allocation_familiales_avril200.ageMinimumAlinea1L5213)]; + } + function allocations_familiales_to_jsoo(allocations_familiales){ + return {montantVerse: + caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales[1])}; + } + function allocations_familiales_of_jsoo(allocations_familiales){ var - Law_source_Allocations_familia$0= + _bi_ = + caml_call1 + (Runtime_ocaml_Runtime[42], allocations_familiales.montantVerse); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bi_)]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; + } + function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; + } + function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; + } + function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; + } + function smic_to_jsoo(smic){ + return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; + } + function smic_of_jsoo(smic){ + var _bh_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bh_)]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ + var + _bg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bg_)]; + } + function interface_allocations_familial(interface_allocations_familial){ + return {iMontantVerse: + caml_call1 + (Runtime_ocaml_Runtime[35], interface_allocations_familial[1])}; + } + function interface_allocations_familial$0(interface_allocations_familial){ + var + _bf_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iMontantVerse); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _bf_)]; + } + function enfant_entree_to_jsoo(enfant_entree){ + var + _ba_ = ! ! enfant_entree[6], + _bb_ = ! ! enfant_entree[5], + _bc_ = prise_en_charge_to_jsoo(enfant_entree[4]), + _bd_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_entree[3]), + _be_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_entree[2]); + return {dIdentifiant: + caml_call1(Runtime_ocaml_Runtime[48], enfant_entree[1]), + dRemunerationMensuelle: _be_, + dDateDeNaissance: _bd_, + dPriseEnCharge: _bc_, + dADejaOuvertDroitAuxAllocationsFamiliales: _bb_, + dBeneficieTitrePersonnelAidePersonnelleLogement: _ba_}; + } + function enfant_entree_of_jsoo(enfant_entree){ + var + _a6_ = enfant_entree.dBeneficieTitrePersonnelAidePersonnelleLogement | 0, + _a7_ = enfant_entree.dADejaOuvertDroitAuxAllocationsFamiliales | 0, + _a8_ = prise_en_charge_of_jsoo(enfant_entree.dPriseEnCharge), + _a9_ = + caml_call1(Runtime_jsoo_Runtime[4], enfant_entree.dDateDeNaissance), + _a__ = + caml_call1 + (Runtime_ocaml_Runtime[42], enfant_entree.dRemunerationMensuelle), + _a$_ = caml_call1(Runtime_ocaml_Runtime[33], _a__); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant_entree.dIdentifiant), + _a$_, + _a9_, + _a8_, + _a7_, + _a6_]; + } + function enfant_to_jsoo(enfant){ + var + _a0_ = ! ! enfant[7], + _a1_ = ! ! enfant[6], + _a2_ = prise_en_charge_to_jsoo(enfant[5]), + _a3_ = caml_call1(Runtime_jsoo_Runtime[5], enfant[4]), + _a4_ = caml_call1(Runtime_ocaml_Runtime[35], enfant[3]), + _a5_ = situation_obligation_scolaire_(enfant[2]); + return {identifiant: caml_call1(Runtime_ocaml_Runtime[48], enfant[1]), + obligationScolaire: _a5_, + remunerationMensuelle: _a4_, + dateDeNaissance: _a3_, + priseEnCharge: _a2_, + aDejaOuvertDroitAuxAllocationsFamiliales: _a1_, + beneficieTitrePersonnelAidePersonnelleLogement: _a0_}; + } + function enfant_of_jsoo(enfant){ + var + _aT_ = enfant.beneficieTitrePersonnelAidePersonnelleLogement | 0, + _aU_ = enfant.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _aV_ = prise_en_charge_of_jsoo(enfant.priseEnCharge), + _aW_ = caml_call1(Runtime_jsoo_Runtime[4], enfant.dateDeNaissance), + _aX_ = + caml_call1(Runtime_ocaml_Runtime[42], enfant.remunerationMensuelle), + _aY_ = caml_call1(Runtime_ocaml_Runtime[33], _aX_), + _aZ_ = situation_obligation_scolaire_$0(enfant.obligationScolaire); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant.identifiant), + _aZ_, + _aY_, + _aW_, + _aV_, + _aU_, + _aT_]; + } + function enfant_le_plus_age_to_jsoo(enfant_le_plus_age){ + return {lePlusAge: enfant_to_jsoo(enfant_le_plus_age[1])}; + } + function enfant_le_plus_age_of_jsoo(enfant_le_plus_age){ + return [0, enfant_of_jsoo(enfant_le_plus_age.lePlusAge)]; + } + function prestations_familiales_to_jsoo(prestations_familiales){ + var + t111 = ! ! prestations_familiales[4], + t110 = caml_call1(Runtime_jsoo_Runtime[3], prestations_familiales[3]); + function t109(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _aS_ = enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[2], _aS_); + }); + } + function t108(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _aR_ = enfant_of_jsoo(function_input0); + return ! ! caml_call1(prestations_familiales[1], _aR_); + }); + } + return {droitOuvert: caml_js_wrap_meth_callback(t108), + conditionsHorsAge: caml_js_wrap_meth_callback(t109), + ageL51232: t110, + regimeOutreMerL7511: t111}; + } + function prestations_familiales_of_jsoo(prestations_familiales){ + var + _aO_ = prestations_familiales.regimeOutreMerL7511 | 0, + _aP_ = + caml_call1(Runtime_jsoo_Runtime[2], prestations_familiales.ageL51232), + _aQ_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho); + return [0, + caml_call1(Stdlib[2], cst_The_function_droit_ouvert_), + _aQ_, + _aP_, + _aO_]; + } + function prestations_familiales_in_to_j(prestations_familiales_in){ + var + _aM_ = collectivite_to_jsoo(prestations_familiales_in[3]), + _aN_ = element_prestations_familiales(prestations_familiales_in[2]); + return {dateCouranteIn: + caml_call1(Runtime_jsoo_Runtime[5], prestations_familiales_in[1]), + prestationCouranteIn: _aN_, + residenceIn: _aM_}; + } + function prestations_familiales_in_of_j(prestations_familiales_in){ + var + _aK_ = collectivite_of_jsoo(prestations_familiales_in.residenceIn), + _aL_ = + element_prestations_familiales$0 + (prestations_familiales_in.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + prestations_familiales_in.dateCouranteIn), + _aL_, + _aK_]; + } + function allocation_familiales_avril200$1(param){return {};} + function allocation_familiales_avril200$2(param){return 0;} + function enfant_le_plus_age_in_to_jsoo(enfant_le_plus_age_in){ + var _aI_ = enfant_le_plus_age_in[1]; + function _aJ_(x){return enfant_to_jsoo(x);} + return {enfantsIn: + caml_js_from_array(caml_call2(Stdlib_Array[15], _aJ_, _aI_))}; + } + function enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in){ + var _aG_ = caml_js_to_array(enfant_le_plus_age_in.enfantsIn); + function _aH_(x){return enfant_of_jsoo(x);} + return [0, caml_call1(caml_call1(Stdlib_Array[15], _aH_), _aG_)]; + } + function allocations_familiales_in_to_j(allocations_familiales_in){ + var + _az_ = ! ! allocations_familiales_in[7], + _aA_ = allocations_familiales_in[6]; + function _aB_(x){return enfant_to_jsoo(x);} + var + _aC_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _aB_, _aA_)), + _aD_ = caml_call1(Runtime_jsoo_Runtime[5], allocations_familiales_in[5]), + _aE_ = collectivite_to_jsoo(allocations_familiales_in[4]), + _aF_ = + caml_call1(Runtime_ocaml_Runtime[35], allocations_familiales_in[3]); + return {personneChargeEffectivePermanenteEstParentIn: + ! + ! + allocations_familiales_in[1], + personneChargeEffectivePermanenteRemplitTitreIIn: + ! + ! + allocations_familiales_in[2], + ressourcesMenageIn: _aF_, + residenceIn: _aE_, + dateCouranteIn: _aD_, + enfantsAChargeIn: _aC_, + avaitEnfantAChargeAvant1erJanvier2012In: _az_}; + } + function allocations_familiales_in_of_j(allocations_familiales_in){ + var + _ar_ = + allocations_familiales_in.avaitEnfantAChargeAvant1erJanvier2012In | 0, + _as_ = caml_js_to_array(allocations_familiales_in.enfantsAChargeIn); + function _at_(x){return enfant_of_jsoo(x);} + var + _au_ = caml_call1(caml_call1(Stdlib_Array[15], _at_), _as_), + _av_ = + caml_call1 + (Runtime_jsoo_Runtime[4], allocations_familiales_in.dateCouranteIn), + _aw_ = collectivite_of_jsoo(allocations_familiales_in.residenceIn), + _ax_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + allocations_familiales_in.ressourcesMenageIn), + _ay_ = caml_call1(Runtime_ocaml_Runtime[33], _ax_); + return [0, + allocations_familiales_in.personneChargeEffectivePermanenteEstParentIn + | 0, + allocations_familiales_in.personneChargeEffectivePermanenteRemplitTitreIIn + | 0, + _ay_, + _aw_, + _av_, + _au_, + _ar_]; + } + function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ + var + _ap_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), + _aq_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), + dateCouranteIn: _aq_, + anneesIn: _ap_}; + } + function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ + var + _an_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), + _ao_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _ao_, + _an_]; + } + function verification_age_superieur_a_i(verification_age_superieur_a_i){ + var + _al_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), + _am_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), + dateCouranteIn: _am_, + anneesIn: _al_}; + } + function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ + var + _aj_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), + _ak_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _ak_, + _aj_]; + } + function smic_in_to_jsoo(smic_in){ + var _ai_ = collectivite_to_jsoo(smic_in[2]); + return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), + residenceIn: _ai_}; + } + function smic_in_of_jsoo(smic_in){ + var _ah_ = collectivite_of_jsoo(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), + _ah_]; + } + function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]; + } + function interface_allocations_familial$1(interface_allocations_familial){ + var + _$_ = ! ! interface_allocations_familial[7], + _aa_ = ! ! interface_allocations_familial[6], + _ab_ = ! ! interface_allocations_familial[5], + _ac_ = collectivite_to_jsoo(interface_allocations_familial[4]), + _ad_ = + caml_call1 + (Runtime_ocaml_Runtime[35], interface_allocations_familial[3]), + _ae_ = interface_allocations_familial[2]; + function _af_(x){return enfant_entree_to_jsoo(x);} + var _ag_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _af_, _ae_)); + return {iDateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], interface_allocations_familial[1]), + iEnfantsIn: _ag_, + iRessourcesMenageIn: _ad_, + iResidenceIn: _ac_, + iPersonneChargeEffectivePermanenteEstParentIn: _ab_, + iPersonneChargeEffectivePermanenteRemplitTitreIIn: _aa_, + iAvaitEnfantAChargeAvant1erJanvier2012In: _$_}; + } + function interface_allocations_familial$2(interface_allocations_familial){ + var + _S_ = + interface_allocations_familial.iAvaitEnfantAChargeAvant1erJanvier2012In + | 0, + _T_ = + interface_allocations_familial.iPersonneChargeEffectivePermanenteRemplitTitreIIn + | 0, + _U_ = + interface_allocations_familial.iPersonneChargeEffectivePermanenteEstParentIn + | 0, + _V_ = collectivite_of_jsoo(interface_allocations_familial.iResidenceIn), + _W_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + interface_allocations_familial.iRessourcesMenageIn), + _X_ = caml_call1(Runtime_ocaml_Runtime[33], _W_), + _Y_ = caml_js_to_array(interface_allocations_familial.iEnfantsIn); + function _Z_(x){return enfant_entree_of_jsoo(x);} + var ___ = caml_call1(caml_call1(Stdlib_Array[15], _Z_), _Y_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + interface_allocations_familial.iDateCouranteIn), + ___, + _X_, + _V_, + _U_, + _T_, + _S_]; + } + function allocation_familiales_avril200$3(allocation_familiales_avril200$0){ + return allocation_familiales_avril200 + (caml_call1(Law_source_Allocations_familia[53], 0)); + } + function enfant_le_plus_age(enfant_le_plus_age_in){ + var _R_ = enfant_le_plus_age_in_of_jsoo(enfant_le_plus_age_in); + return enfant_le_plus_age_to_jsoo + (caml_call1(Law_source_Allocations_familia[54], _R_)); + } + function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ + var + _Q_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); + return verification_age_inferieur_ou_ + (caml_call1(Law_source_Allocations_familia[55], _Q_)); + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + _P_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); + return verification_age_superieur_a_t + (caml_call1(Law_source_Allocations_familia[56], _P_)); + } + function smic(smic_in){ + var _O_ = smic_in_of_jsoo(smic_in); + return smic_to_jsoo(caml_call1(Law_source_Allocations_familia[57], _O_)); + } + function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ + var + _N_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); + return base_mensuelle_allocations_fam + (caml_call1(Law_source_Allocations_familia[58], _N_)); + } + function prestations_familiales(prestations_familiales_in){ + var _M_ = prestations_familiales_in_of_j(prestations_familiales_in); + return prestations_familiales_to_jsoo + (caml_call1(Law_source_Allocations_familia[59], _M_)); + } + function allocations_familiales(allocations_familiales_in){ + var _L_ = allocations_familiales_in_of_j(allocations_familiales_in); + return allocations_familiales_to_jsoo + (caml_call1(Law_source_Allocations_familia[60], _L_)); + } + function interface_allocations_familial$3(interface_allocations_familial$0){ + var + _K_ = interface_allocations_familial$2(interface_allocations_familial$0); + return interface_allocations_familial + (caml_call1(Law_source_Allocations_familia[61], _K_)); + } + function t176(param){ + return caml_js_wrap_callback(interface_allocations_familial$3); + } + function t175(param){return caml_js_wrap_callback(allocations_familiales);} + function t174(param){return caml_js_wrap_callback(prestations_familiales);} + function t173(param){ + return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); + } + function t172(param){return caml_js_wrap_callback(smic);} + function t171(param){ + return caml_js_wrap_callback(verification_age_superieur_a); + } + function t170(param){ + return caml_js_wrap_callback(verification_age_inferieur_ou_$3); + } + function t169(param){return caml_js_wrap_callback(enfant_le_plus_age);} + function t168(param){ + return caml_js_wrap_callback(allocation_familiales_avril200$3); + } + caml_call2 + (Js_of_ocaml_Js[50], + cst_AllocationsFamilialesLib, + {allocationFamilialesAvril2008: caml_js_wrap_meth_callback(t168), + enfantLePlusAge: caml_js_wrap_meth_callback(t169), + verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t170), + verificationAgeSuperieurA: caml_js_wrap_meth_callback(t171), + smic: caml_js_wrap_meth_callback(t172), + baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t173), + prestationsFamiliales: caml_js_wrap_meth_callback(t174), + allocationsFamiliales: caml_js_wrap_meth_callback(t175), + interfaceAllocationsFamiliales: caml_js_wrap_meth_callback(t176)}); + var + Law_source_Allocations_familia$0 = [0, prise_en_charge_to_jsoo, prise_en_charge_of_jsoo, @@ -105512,20 +57659,20 @@ element_prestations_familiales$0, collectivite_to_jsoo, collectivite_of_jsoo, + allocation_familiales_avril200, allocation_familiales_avril200$0, - allocation_familiales_avril200$1, allocations_familiales_to_jsoo, allocations_familiales_of_jsoo, + verification_age_inferieur_ou_, verification_age_inferieur_ou_$0, - verification_age_inferieur_ou_$1, verification_age_superieur_a_t, verification_age_superieur_a_o, smic_to_jsoo, smic_of_jsoo, + base_mensuelle_allocations_fam, base_mensuelle_allocations_fam$0, - base_mensuelle_allocations_fam$1, + interface_allocations_familial, interface_allocations_familial$0, - interface_allocations_familial$1, enfant_entree_to_jsoo, enfant_entree_of_jsoo, enfant_to_jsoo, @@ -105536,30264 +57683,70526 @@ prestations_familiales_of_jsoo, prestations_familiales_in_to_j, prestations_familiales_in_of_j, + allocation_familiales_avril200$1, allocation_familiales_avril200$2, - allocation_familiales_avril200$3, enfant_le_plus_age_in_to_jsoo, enfant_le_plus_age_in_of_jsoo, allocations_familiales_in_to_j, allocations_familiales_in_of_j, + verification_age_inferieur_ou_$1, verification_age_inferieur_ou_$2, - verification_age_inferieur_ou_$3, verification_age_superieur_a_i, verification_age_superieur_a_i$0, smic_in_to_jsoo, smic_in_of_jsoo, + base_mensuelle_allocations_fam$1, base_mensuelle_allocations_fam$2, - base_mensuelle_allocations_fam$3, + interface_allocations_familial$1, interface_allocations_familial$2, - interface_allocations_familial$3, - allocation_familiales_avril200$4, - enfant_le_plus_age$0, - verification_age_inferieur_ou_$4, - verification_age_superieur_a$0, - smic$0, - base_mensuelle_allocations_fam$4, - prestations_familiales$0, - allocations_familiales$0, - interface_allocations_familial$4]; - caml_register_global - (9735, - Law_source_Allocations_familia$0, - "Law_source__Allocations_familiales_api_web"); - var TypePret=[0]; - function embed_type_pret(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cx__=[0,cst_D331_32,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cx__=[0,cst_D331_63_64,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cx__=[0,cst_D331_59_8,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cx__=[0,cst_D331_76_1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cx__=[0,cst_Autre,caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_kY_,_cx__]} - var TitulairePret=[0]; - function embed_titulaire_pret(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx9_=[0,cst_Demandeur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cx9_= - [0, - cst_VendeurQuandDemandeurACont, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_kZ_,_cx9_]} - var TypeTravauxLogementD83215=[0]; - function embed_type_travaux_logement_d8(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cx8_= - [0, - cst_TravauxPourAcquisitionD832, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cx8_= - [0, - cst_TravauxSurLogementD_j_Acqu, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cx8_=[0,cst_PasDeTravaux,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k0_,_cx8_]} - var TypeTravauxLogementR8425=[0]; - function embed_type_travaux_logement_r8(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cx7_= - [0, - cst_ObjectifD_cenceLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cx7_= - [0, - cst_Pr_vuDansListeR321_15, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cx7_= - [0, - cst_AgrandirOuRendreHabitableD, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cx7_= - [0,cst_PasDeTravaux$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_k1_,_cx7_]} - var AmelioreParOccupant=[0]; - function embed_ameliore_par_occupant(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx6_=[0,cst_Oui,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cx6_=[0,cst_Non,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k2_,_cx6_]} - var LimiteTranche=[0]; - function embed_limite_tranche(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx5_=[0,cst_Revenu,caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - else - var - x$1=x[1], - _cx5_=[0,cst_Infini,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k3_,_cx5_]} - var LimiteTrancheDecimal=[0]; - function embed_limite_tranche_decimal(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx4_=[0,cst_Revenu$0,caml_call1(Runtime_ocaml_Runtime[15],x$0)]; - else - var - x$1=x[1], - _cx4_=[0,cst_Infini$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k4_,_cx4_]} - var PrestationRecue=[0]; - function embed_prestation_recue(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cx3_= - [0, - cst_AllocationsFamiliales$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cx3_= - [0, - cst_Compl_mentFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cx3_= - [0, - cst_AllocationJeuneEnfant, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cx3_= - [0, - cst_AllocationSoutienFamilial$1, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cx3_= - [0, - cst_AllocationSoutienEnfantHan, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - default: - var - x$5=x[1], - _cx3_= - [0, - cst_AllocationAdulteHandicap, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]} - return [6,_k5_,_cx3_]} - var ParentOuAutre=[0]; - function embed_parent_ou_autre(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx2_= - [0, - cst_DemandeurOuConjointOuParen, - caml_call1(Runtime_ocaml_Runtime[15],x$0)]; - else - var - x$1=x[1], - _cx2_=[0,cst_Autre$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k6_,_cx2_]} - var SituationGardeAlternee=[0]; - function embed_situation_garde_alternee(x) - {if(0 === x[0]) - var - x$0=x[1], - _cx1_= - [0,cst_PasDeGardeAltern_e,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cx1_= - [0, - cst_GardeAltern_eCoefficientPr, - caml_call1(Runtime_ocaml_Runtime[15],x$1)]; - return [6,_k7_,_cx1_]} - var Parente=[0]; - function embed_parente(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cx0_=[0,cst_Ascendant,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cx0_=[0,cst_Descendant,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cx0_= - [0, - cst_Collat_ralDeuxi_meTroisi_m, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k8_,_cx0_]} - var DateDeNaissanceOuMoisDeGrosses=[0]; - function embed_date_de_naissance_ou_moi(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxZ_= - [0,cst_DateDeNaissance,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxZ_= - [0, - cst_AvantPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxZ_= - [0, - cst_Apr_sPremierJourMoisCivilT, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k9_,_cxZ_]} - var ZoneDHabitation=[0]; - function embed_zone_d_habitation(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxY_=[0,cst_Zone1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxY_=[0,cst_Zone2,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxY_=[0,cst_Zone3,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_k__,_cxY_]} - var PaiementLogementDistinctProfes=[0]; - function embed_paiement_logement_distin(x) - {if(0 === x[0]) - var - x$0=x[1], - _cxX_= - [0, - cst_OuiAvecLoyerOuCharges, - caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - else - var - x$1=x[1], - _cxX_=[0,cst_Non$0,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_k$_,_cxX_]} - var VersementA=[0]; - function embed_versement_a(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxW_=[0,cst_Bailleur,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxW_=[0,cst_B_n_ficiaire,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxW_= - [0, - cst_tablissementHabilit, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_la_,_cxW_]} - var DepenseLogement=[0]; - function embed_depense_logement(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxV_= - [0, - cst_TotalAnnuel_ch_ances, - caml_call1(Runtime_ocaml_Runtime[13],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxV_=[0,cst_Mensualit,caml_call1(Runtime_ocaml_Runtime[13],x$1)]; - break; - default: - var - x$2=x[1], - _cxV_=[0,cst_Loyer,caml_call1(Runtime_ocaml_Runtime[13],x$2)]} - return [6,_lb_,_cxV_]} - var ModeOccupationImpaye=[0]; - function embed_mode_occupation_impaye(x) - {if(0 === x[0]) - var - x$0=x[1], - _cxU_=[0,cst_Impay_Loyer,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cxU_=[0,cst_Impay_Pr_t,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_lc_,_cxU_]} - var TypeEligibiliteAllocationLogem=[0]; - function embed_type_eligibilite_allocat(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxT_=[0,cst_Pas_ligible,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxT_= - [0, - cst_AllocationLogementFamilial, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxT_= - [0, - cst_AllocationLogementSociale, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_ld_,_cxT_]} - var AccordFinancementRepresentantE=[0]; - function embed_accord_financement_repre(x) - {if(0 === x[0]) - var - x$0=x[1], - _cxS_=[0,cst_Accord,caml_call1(Runtime_ocaml_Runtime[16],x$0)]; - else - var - x$1=x[1], - _cxS_=[0,cst_PasdAccord,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_le_,_cxS_]} - var TypeAidesPersonnelleLogement=[0]; - function embed_type_aides_personnelle_l(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxR_= - [0, - cst_AidePersonnalis_eLogement, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxR_= - [0, - cst_AllocationLogementFamilial$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxR_= - [0, - cst_AllocationLogementSociale$0, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_lf_,_cxR_]} - var SituationFamiliale=[0]; - function embed_situation_familiale(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxQ_=[0,cst_C_libataire,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxQ_=[0,cst_Mari_s,caml_call1(Runtime_ocaml_Runtime[16],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxQ_=[0,cst_Pacs_s,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cxQ_=[0,cst_Concubins,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cxQ_= - [0, - cst_C_libataireS_par_DeFait, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - default: - var - x$5=x[1], - _cxQ_= - [0, - cst_ConcubinageDontS_par_DeFai, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]} - return [6,_lg_,_cxQ_]} - var PriseEnCharge$0=[0]; - function embed_prise_en_charge$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxP_= - [0, - cst_EffectiveEtPermanente$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxP_= - [0, - cst_R_sidenceAltern_eAllocatai, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxP_= - [0, - cst_R_sidenceAltern_eAllocatio, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_lh_,_cxP_]} - var TypeLogementFoyer=[0]; - function embed_type_logement_foyer(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxO_= - [0, - cst_LogementPersonnes_g_esOuHa, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxO_= - [0,cst_R_sidenceSociale,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxO_= - [0, - cst_FoyerJeunesTrvailleursOuMi, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cxO_=[0,cst_Autre$1,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_li_,_cxO_]} - var CategorieEquivalenceLoyerAlloc=[0]; - function embed_categorie_equivalence_lo(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxN_= - [0, - cst_tudiantLog_EnChambreCROUS, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxN_= - [0, - cst_tudiantLog_EnChambreCROUSR, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxN_= - [0, - cst_Personnes_g_esSelon3DeD842, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - default: - var - x$3=x[1], - _cxN_= - [0,cst_AutresPersonnes,caml_call1(Runtime_ocaml_Runtime[11],x$3)]} - return [6,_lj_,_cxN_]} - var SituationFamilialeCalculAPL=[0]; - function embed_situation_familiale_calc(x) - {if(0 === x[0]) - var - x$0=x[1], - _cxM_=[0,cst_PersonneSeule,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cxM_=[0,cst_Couple,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_lk_,_cxM_]} - var Collectivite$0=[0]; - function embed_collectivite$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxL_=[0,cst_Guadeloupe$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxL_=[0,cst_Guyane$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxL_=[0,cst_Martinique$1,caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cxL_=[0,cst_LaR_union$0,caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cxL_= - [0,cst_SaintBarth_lemy$0,caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cxL_= - [0,cst_SaintMartin$1,caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cxL_=[0,cst_M_tropole$0,caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - case 7: - var - x$7=x[1], - _cxL_= - [0, - cst_SaintPierreEtMiquelon$1, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]; - break; - default: - var - x$8=x[1], - _cxL_=[0,cst_Mayotte$1,caml_call1(Runtime_ocaml_Runtime[11],x$8)]} - return [6,_ll_,_cxL_]} - var PriseEnChargeEnfant=[0]; - function embed_prise_en_charge_enfant(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxK_= - [0, - cst_GardeAltern_ePartageAlloca$0, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxK_= - [0, - cst_GardeAltern_eAllocataireUn$0, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxK_= - [0, - cst_EffectiveEtPermanente$2, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cxK_= - [0, - cst_ServicesSociauxAllocationV$3, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - default: - var - x$4=x[1], - _cxK_= - [0, - cst_ServicesSociauxAllocationV$4, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]} - return [6,_lm_,_cxK_]} - var SituationObligationScolaire$0=[0]; - function embed_situation_obligation_sco$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxJ_=[0,cst_Avant$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxJ_=[0,cst_Pendant$1,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - default: - var - x$2=x[1], - _cxJ_=[0,cst_Apr_s$0,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_ln_,_cxJ_]} - var ElementPrestationsFamiliales$0=[0]; - function embed_element_prestations_fami$0(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cxI_= - [0, - cst_PrestationAccueilJeuneEnfa$1, - caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - break; - case 1: - var - x$1=x[1], - _cxI_= - [0, - cst_AllocationsFamiliales$2, - caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - break; - case 2: - var - x$2=x[1], - _cxI_= - [0, - cst_Compl_mentFamilial$1, - caml_call1(Runtime_ocaml_Runtime[11],x$2)]; - break; - case 3: - var - x$3=x[1], - _cxI_= - [0, - cst_AllocationLogement$1, - caml_call1(Runtime_ocaml_Runtime[11],x$3)]; - break; - case 4: - var - x$4=x[1], - _cxI_= - [0, - cst_Allocation_ducationEnfantH$0, - caml_call1(Runtime_ocaml_Runtime[11],x$4)]; - break; - case 5: - var - x$5=x[1], - _cxI_= - [0, - cst_AllocationSoutienFamilial$2, - caml_call1(Runtime_ocaml_Runtime[11],x$5)]; - break; - case 6: - var - x$6=x[1], - _cxI_= - [0, - cst_AllocationRentr_eScolaire$0, - caml_call1(Runtime_ocaml_Runtime[11],x$6)]; - break; - default: - var - x$7=x[1], - _cxI_= - [0, - cst_AllocationJournali_rePrese$0, - caml_call1(Runtime_ocaml_Runtime[11],x$7)]} - return [6,_lo_,_cxI_]} - var ConventionBailleurSocial=[0]; - function embed_convention_bailleur_soci(x) - {var - _cxH_= - [0, - [0, - cst_r_duction_loyer_solidarit_, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _lp_, - [0, - [0, - cst_conventionn_livre_III_titr, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cxH_]]} - var ConventionANHA=[0]; - function embed_convention_a_n_h_a(x) - {return [7, - _lq_, - [0, - [0, - cst_conventionn_livre_III_titr$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var PersonneSousLocation=[0]; - function embed_personne_sous_location(x) - {var - _cxG_= - [0, - [0, - cst_conforme_article_l442_1, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - 0]; - return [7, - _lr_, - [0, - [0, - cst_date_naissance_personne_so, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cxG_]]} - var Patrimoine=[0]; - function embed_patrimoine(x) - {var - _cxF_= - [0, - [0, - cst_ne_produisant_pas_revenu_p, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _ls_, - [0, - [0, - cst_produisant_revenu_p_riode_, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxF_]]} - var ConditionsEtrangers=[0]; - function embed_conditions_etrangers(x) - {var - _cxE_= - [0, - [0, - cst_satisfait_art_4_ordonnance, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - 0]; - return [7, - _lt_, - [0, - [0, - cst_satisfait_conditions_l512_, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cxE_]]} - var PersonneVivantHabituellementAu=[0]; - function embed_personne_vivant_habituel(x) - {var - _cxD_= - [0,[0,cst_ressources,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; - return [7, - _lu_, - [0, - [0, - cst_dur_e_r_sidence_durant_p_r, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cxD_]]} - var EligibiliteAidePersonnaliseeLo=[0]; - function embed_eligibilite_aide_personn(x) - {var - _cxA_= - [0, - [0, - cst_coefficents_enfants_garde_, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - 0], - _cxB_= - [0, - [0, - cst_nombre_personnes_charge_pr, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _cxA_], - _cxC_= - [0,[0,cst_ligibilit,caml_call1(Runtime_ocaml_Runtime[12],x[2])],_cxB_]; - return [7, - _lv_, - [0, - [0, - cst_date_courante, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cxC_]]} - var EligibilitePrimeDeDemenagement=[0]; - function embed_eligibilite_prime_de_dem(x) - {return [7, - _lw_, - [0, - [0, - cst_montant_prime_d_m_nagement, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var RessourcesAidesPersonnelleLoge=[0]; - function embed_ressources_aides_personn(x) - {return [7, - _lx_, - [0, - [0, - cst_ressources_prises_en_compt, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var ContributionsSocialesAidesPers=[0]; - function embed_contributions_sociales_a(x) - {return [7, - _ly_, - [0, - [0,cst_montant$0,caml_call1(Runtime_ocaml_Runtime[10],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen=[0]; - function embed_calcul_aide_personnalise(x) - {var - _cxu_= - [0, - [0, - cst_traitement_aide_finale, - caml_call1(Runtime_ocaml_Runtime[10],x[7])], - 0], - _cxv_= - [0, - [0, - cst_aide_finale_formule, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _cxu_], - _cxw_= - [0, - [0, - cst_participation_personnelle, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _cxv_], - _cxx_= - [0, - [0, - cst_taux_composition_familiale, - caml_call1(Runtime_ocaml_Runtime[15],x[4])], - _cxw_], - _cxy_= - [0, - [0, - cst_participation_minimale, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cxx_], - _cxz_= - [0, - [0, - cst_plafond_loyer_d823_16_2, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cxy_]; - return [7, - _lz_, - [0, - [0, - cst_montant_forfaitaire_charge, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxz_]]} - var CalculEquivalenceLoyerMinimale=[0]; - function embed_calcul_equivalence_loyer(x) - {return [7, - _lA_, - [0, - [0,cst_montant$1,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var CalculNombrePartLogementFoyer=[0]; - function embed_calcul_nombre_part_logem(x) - {return [7, - _lB_, - [0, - [0, - cst_n_nombre_parts_d832_25, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$0=[0]; - function embed_calcul_aide_personnalise$0(x) - {var - _cxm_= - [0, - [0, - cst_traitement_aide_finale$0, - caml_call1(Runtime_ocaml_Runtime[10],x[9])], - 0], - _cxn_= - [0, - [0, - cst_aide_finale_formule$0, - caml_call1(Runtime_ocaml_Runtime[13],x[8])], - _cxm_], - _cxo_= - [0, - [0, - cst_coefficient_prise_en_charg, - caml_call1(Runtime_ocaml_Runtime[15],x[7])], - _cxn_], - _cxp_= - [0, - [0, - cst_quivalence_loyer_minimale, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _cxo_], - _cxq_= - [0, - [0, - cst_plafond_quivalence_loyer_l, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _cxp_], - _cxr_= - [0, - [0, - cst_quivalence_loyer_ligible, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _cxq_], - _cxs_= - [0, - [0, - cst_n_nombre_parts_d832_25$0, - caml_call1(Runtime_ocaml_Runtime[15],x[3])], - _cxr_], - _cxt_= - [0, - [0, - cst_coefficient_r_d832_25, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cxs_]; - return [7, - _lC_, - [0, - [0, - cst_coefficient_multiplicateur, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxt_]]} - var CalculNombrePartsAccessionProp=[0]; - function embed_calcul_nombre_parts_acce(x) - {return [7, - _lD_, - [0, - [0, - cst_n_nombre_parts_d832_11, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$1=[0]; - function embed_calcul_aide_personnalise$1(x) - {var - _cxi_= - [0, - [0, - cst_traitement_aide_finale$1, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cxj_= - [0, - [0, - cst_aide_finale_formule$1, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _cxi_], - _cxk_= - [0, - [0, - cst_coefficient_prise_en_charg$0, - caml_call1(Runtime_ocaml_Runtime[15],x[3])], - _cxj_], - _cxl_= - [0, - [0,cst_mensualit_minimale,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cxk_]; - return [7, - _lE_, - [0, - [0, - cst_mensualit_ligible, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxl_]]} - var TraitementFormuleAideFinale=[0]; - function embed_traitement_formule_aide_(x) - {var - _cxh_= - [0, - [0, - cst_traitement_aide_finale$2, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lF_, - [0, - [0, - cst_aide_finale_formule$2, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxh_]]} - var CalculAidePersonnaliseeLogemen$2=[0]; - function embed_calcul_aide_personnalise$2(x) - {var - _cxg_= - [0, - [0, - cst_traitement_aide_finale$3, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lG_, - [0, - [0, - cst_aide_finale_formule$3, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxg_]]} - var InfosChangementLogementD8424=[0]; - function embed_infos_changement_logemen(x) - {var - _cxf_= - [0, - [0, - cst_ancienne_allocation_logeme, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - 0]; - return [7, - _lH_, - [0, - [0, - cst_ancien_loyer_principal, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxf_]]} - var CalculAllocationLogementLocati=[0]; - function embed_calcul_allocation_logeme(x) - {var - _cxe_= - [0, - [0, - cst_traitement_aide_finale$4, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lI_, - [0, - [0, - cst_aide_finale_formule$4, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxe_]]} - var CalculAllocationLogementAccess=[0]; - function embed_calcul_allocation_logeme$0(x) - {var - _cxa_= - [0, - [0, - cst_traitement_aide_finale$5, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cxb_= - [0, - [0, - cst_aide_finale_formule$5, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _cxa_], - _cxc_= - [0, - [0, - cst_coefficient_prise_en_charg$1, - caml_call1(Runtime_ocaml_Runtime[15],x[3])], - _cxb_], - _cxd_= - [0, - [0, - cst_mensualit_minimale$0, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cxc_]; - return [7, - _lJ_, - [0, - [0, - cst_mensualit_ligible$0, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cxd_]]} - var CalculAllocationLogementFoyer=[0]; - function embed_calcul_allocation_logeme$1(x) - {var - _cw7_= - [0, - [0, - cst_traitement_aide_finale$6, - caml_call1(Runtime_ocaml_Runtime[10],x[6])], - 0], - _cw8_= - [0, - [0, - cst_aide_finale_formule$6, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _cw7_], - _cw9_= - [0, - [0,cst_loyer_minimal,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _cw8_], - _cw__= - [0, - [0, - cst_montant_forfaitaire_charge$0, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cw9_], - _cw$_= - [0, - [0,cst_quivalence_loyer,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cw__]; - return [7, - _lK_, - [0, - [0, - cst_coefficient_prise_en_charg$2, - caml_call1(Runtime_ocaml_Runtime[15],x[1])], - _cw$_]]} - var CalculAllocationLogement=[0]; - function embed_calcul_allocation_logeme$2(x) - {var - _cw6_= - [0, - [0, - cst_traitement_aide_finale$7, - caml_call1(Runtime_ocaml_Runtime[10],x[2])], - 0]; - return [7, - _lL_, - [0, - [0, - cst_aide_finale_formule$7, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cw6_]]} - var OuvertureDroitsRetraite=[0]; - function embed_ouverture_droits_retrait(x) - {return [7, - _lM_, - [0, - [0, - cst_ge_ouverture_droit, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - 0]]} - var ImpayeDepenseLogement=[0]; - function embed_impaye_depense_logement(x) - {return [7, - _lN_, - [0, - [0, - cst_montant_impay, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var CalculetteAidesAuLogement=[0]; - function embed_calculette_aides_au_loge(x) - {var - _cw3_= - [0, - [0, - cst_coefficents_enfants_garde_$0, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - 0], - _cw4_= - [0, - [0, - cst_traitement_aide_finale$8, - caml_call1(Runtime_ocaml_Runtime[10],x[3])], - _cw3_], - _cw5_= - [0, - [0, - cst_aide_finale_formule$8, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cw4_]; - return [7, - _lO_, - [0, - [0,cst_ligibilit$0,caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cw5_]]} - var CalculetteAidesAuLogementGarde=[0]; - function embed_calculette_aides_au_loge$0(x) - {var - _cw2_= - [0,[0,cst_aide_finale,caml_call1(Runtime_ocaml_Runtime[13],x[2])],0]; - return [7, - _lP_, - [0, - [0,cst_ligibilit$1,caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cw2_]]} - var BaseMensuelleAllocationsFamili$1=[0]; - function embed_base_mensuelle_allocatio$1(x) - {return [7, - _lQ_, - [0, - [0,cst_montant$2,caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal$1=[0]; - function embed_verification_age_inferie$1(x) - {return [7, - _lR_, - [0, - [0, - cst_est_inf_rieur_ou_gal$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var VerificationAgeSuperieurA$0=[0]; - function embed_verification_age_superie$1(x) - {return [7, - _lS_, - [0, - [0, - cst_est_sup_rieur$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - 0]]} - var Smic$0=[0]; - function embed_smic$0(x) - {return [7, - _lT_, - [0, - [0, - cst_brut_horaire$0, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - 0]]} - var NeufOuAncien=[0]; - function embed_neuf_ou_ancien(x) - {if(0 === x[0]) - var - x$0=x[1], - _cw1_=[0,cst_Neuf,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cw1_=[0,cst_Ancien,embed_ameliore_par_occupant(x$1)]; - return [6,_lU_,_cw1_]} - var TrancheRevenu=[0]; - function embed_tranche_revenu(x) - {var - _cwZ_=[0,[0,cst_taux,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], - _cw0_=[0,[0,cst_bas,caml_call1(Runtime_ocaml_Runtime[13],x[2])],_cwZ_]; - return [7,_lV_,[0,[0,cst_haut,embed_limite_tranche(x[1])],_cw0_]]} - var TrancheRevenuDecimal=[0]; - function embed_tranche_revenu_decimal(x) - {var - _cwX_=[0,[0,cst_taux$0,caml_call1(Runtime_ocaml_Runtime[15],x[3])],0], - _cwY_= - [0,[0,cst_bas$0,caml_call1(Runtime_ocaml_Runtime[15],x[2])],_cwX_]; - return [7, - _lW_, - [0,[0,cst_haut$0,embed_limite_tranche_decimal(x[1])],_cwY_]]} - var AutrePersonneACharge=[0]; - function embed_autre_personne_a_charge(x) - {var - _cwR_= - [0, - [0, - cst_titulaire_allocation_perso, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cwS_= - [0, - [0, - cst_b_n_ficiaire_l161_19_l351_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cwR_], - _cwT_= - [0, - [0, - cst_incapacit_80_pourcent_ou_r, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cwS_], - _cwU_=[0,[0,cst_parent,embed_parente(x[4])],_cwT_], - _cwV_= - [0, - [0, - cst_ascendant_descendant_colla, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cwU_], - _cwW_= - [0, - [0,cst_ressources$0,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cwV_]; - return [7, - _lX_, - [0, - [0, - cst_date_naissance, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cwW_]]} - var DateNaissanceTroisiemeOuDernie=[0]; - function embed_date_naissance_troisieme(x) - {if(0 === x[0]) - var - x$0=x[1], - _cwQ_= - [0,cst_MoinsDeTroisEnfants,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var - x$1=x[1], - _cwQ_=[0,cst_PlusDeTroisEnfants,embed_date_de_naissance_ou_moi(x$1)]; - return [6,_lY_,_cwQ_]} - var EligibiliteAllocationLogement=[0]; - function embed_eligibilite_allocation_l(x) - {var - _cwO_= - [0, - [0, - cst_coefficents_enfants_garde_$1, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[3])], - 0], - _cwP_= - [0, - [0, - cst_nombre_personnes_charge_pr$0, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _cwO_]; - return [7, - _lZ_, - [0, - [0,cst_ligibilit$2,embed_type_eligibilite_allocat(x[1])], - _cwP_]]} - var Pret=[0]; - function embed_pret(x) - {var - _cwL_= - [0, - [0, - cst_accord_financement_repr_se, - embed_accord_financement_repre(x[4])], - 0], - _cwM_=[0,[0,cst_titulaire_pr_t,embed_titulaire_pret(x[3])],_cwL_], - _cwN_= - [0, - [0,cst_date_signature,caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cwM_]; - return [7,_l0_,[0,[0,cst_type_pr_t,embed_type_pret(x[1])],_cwN_]]} - var LogementFoyer=[0]; - function embed_logement_foyer(x) - {var - _cwC_= - [0, - [0, - cst_logement_meubl_d842_2, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - 0], - _cwD_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cwC_], - _cwE_= - [0, - [0, - cst_cat_gorie_quivalence_loyer, - embed_categorie_equivalence_lo(x[8])], - _cwD_], - _cwF_= - [0,[0,cst_redevance,caml_call1(Runtime_ocaml_Runtime[13],x[7])],_cwE_], - _cwG_= - [0, - [0, - cst_construit_application_loi_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cwF_], - _cwH_= - [0, - [0, - cst_date_conventionnement, - caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cwG_], - _cwI_= - [0, - [0, - cst_conventionn_selon_r_gles_d, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cwH_], - _cwJ_= - [0, - [0, - cst_conventionn_livre_III_titr$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cwI_], - _cwK_= - [0, - [0, - cst_remplit_conditions_r832_21, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cwJ_]; - return [7,_l1_,[0,[0,cst_type,embed_type_logement_foyer(x[1])],_cwK_]]} - var EnfantPrestationsFamiliales=[0]; - function embed_enfant_prestations_famil(x) - {var - _cww_= - [0, - [0, - cst_b_n_ficie_titre_personnel_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - 0], - _cwx_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all$0, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cww_], - _cwy_= - [0,[0,cst_prise_en_charge$0,embed_prise_en_charge_enfant(x[5])],_cwx_], - _cwz_= - [0, - [0, - cst_date_de_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cwy_], - _cwA_= - [0, - [0, - cst_r_muneration_mensuelle$0, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cwz_], - _cwB_= - [0, - [0,cst_obligation_scolaire$0,embed_situation_obligation_sco$0(x[2])], - _cwA_]; - return [7, - _l2_, - [0, - [0, - cst_identifiant$0, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cwB_]]} - var TypeBailleur=[0]; - function embed_type_bailleur(x) - {switch(x[0]) - {case 0: - var - x$0=x[1], - _cwv_=[0,cst_BailleurSocial,embed_convention_bailleur_soci(x$0)]; - break; - case 1: - var - x$1=x[1], - _cwv_= - [0,cst_BailleurPriv_AvecConventio,embed_convention_a_n_h_a(x$1)]; - break; - default: - var - x$2=x[1], - _cwv_=[0,cst_BailleurPriv,caml_call1(Runtime_ocaml_Runtime[11],x$2)]} - return [6,_l3_,_cwv_]} - var LoueOuSousLoueADesTiers=[0]; - function embed_loue_ou_sous_loue_a_des_(x) - {if(0 === x[0]) - var - x$0=x[1], - _cwu_=[0,cst_Non$1,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cwu_=[0,cst_Oui$0,embed_personne_sous_location(x$1)]; - return [6,_l4_,_cwu_]} - var Nationalite=[0]; - function embed_nationalite(x) - {if(0 === x[0]) - var - x$0=x[1], - _cwt_=[0,cst_Fran_aise,caml_call1(Runtime_ocaml_Runtime[11],x$0)]; - else - var x$1=x[1],_cwt_=[0,cst_trang_re,embed_conditions_etrangers(x$1)]; - return [6,_l5_,_cwt_]} - var ChangementLogementD8424=[0]; - function embed_changement_logement_d842(x) - {if(0 === x[0]) - var - x$0=x[1], - _cws_=[0,cst_Changement,embed_infos_changement_logemen(x$0)]; - else - var - x$1=x[1], - _cws_= - [0,cst_PasDeChangement,caml_call1(Runtime_ocaml_Runtime[11],x$1)]; - return [6,_l6_,_cws_]} - var InformationsPrimeDeDemenagemen=[0]; - function embed_informations_prime_de_de(x) - {var - _cwr_= - [0, - [0, - cst_date_naissance_troisi_me_e, - embed_date_naissance_troisieme(x[2])], - 0]; - return [7, - _l7_, - [0, - [0, - cst_nombre_enfants_na_tre_apr_, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cwr_]]} - var Proprietaire=[0]; - function embed_proprietaire(x) - {var - _cwh_= - [0, - [0, - cst_op_rations_logement_voluti, - caml_call1(Runtime_ocaml_Runtime[12],x[11])], - 0], - _cwi_=[0,[0,cst_pr_t,embed_pret(x[10])],_cwh_], - _cwj_=[0,[0,cst_anciennet_logement,embed_neuf_ou_ancien(x[9])],_cwi_], - _cwk_= - [0, - [0, - cst_situation_r822_11_13_17, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cwj_], - _cwl_= - [0, - [0,cst_copropri_t,caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cwk_], - _cwm_= - [0, - [0, - cst_local_habit_premi_re_fois_, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cwl_], - _cwn_= - [0, - [0, - cst_type_travaux_logement_r842, - embed_type_travaux_logement_r8(x[5])], - _cwm_], - _cwo_= - [0, - [0, - cst_type_travaux_logement_d832, - embed_type_travaux_logement_d8(x[4])], - _cwn_], - _cwp_= - [0, - [0, - cst_date_entr_e_logement, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cwo_], - _cwq_= - [0, - [0, - cst_charges_mensuelles_pr_t, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cwp_]; - return [7, - _l8_, - [0, - [0, - cst_mensualit_principale, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cwq_]]} - var EligibilitePrestationsFamilial=[0]; - function embed_eligibilite_prestations_(x) - {var - _cwe_= - [0, - [0, - cst_r_gime_outre_mer_l751_1$0, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _cwf_= - [0, - [0, - cst_conditions_hors_ge$0, - caml_call1(Runtime_ocaml_Runtime[10],x[3])], - _cwe_], - _cwg_= - [0, - [0,cst_droit_ouvert$0,caml_call1(Runtime_ocaml_Runtime[10],x[2])], - _cwf_]; - return [7, - _l9_, - [0, - [0, - cst_ge_l512_3_2$0, - caml_call1(Runtime_ocaml_Runtime[17],x[1])], - _cwg_]]} - var Demandeur=[0]; - function embed_demandeur(x) - {var - _cv$_= - [0, - [0, - cst_magistrat_fonctionnaire_ce, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - 0], - _cwa_= - [0, - [0, - cst_est_non_salari_agricole_l7, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cv$_], - _cwb_= - [0, - [0, - cst_personne_h_berg_e_centre_s, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cwa_], - _cwc_=[0,[0,cst_patrimoine,embed_patrimoine(x[3])],_cwb_], - _cwd_=[0,[0,cst_nationalit,embed_nationalite(x[2])],_cwc_]; - return [7, - _l__, - [0, - [0, - cst_date_naissance$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cwd_]]} - var EnfantACharge=[0]; - function embed_enfant_a_charge(x) - {var - _cv3_= - [0, - [0, - cst_tudes_apprentissage_stage_, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - 0], - _cv4_= - [0, - [0,cst_situation_garde_altern_e,embed_situation_garde_alternee(x[8])], - _cv3_], - _cv5_= - [0, - [0,cst_obligation_scolaire$1,embed_situation_obligation_sco$0(x[7])], - _cv4_], - _cv6_= - [0, - [0, - cst_r_muneration_mensuelle$1, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - _cv5_], - _cv7_= - [0, - [0, - cst_date_de_naissance$1, - caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cv6_], - _cv8_= - [0, - [0, - cst_a_d_j_ouvert_droit_aux_all$1, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cv7_], - _cv9_= - [0, - [0, - cst_b_n_ficie_titre_personnel_$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cv8_], - _cv__=[0,[0,cst_nationalit$0,embed_nationalite(x[2])],_cv9_]; - return [7, - _l$_, - [0, - [0, - cst_identifiant$1, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cv__]]} - var Location=[0]; - function embed_location(x) - {var - _cvW_= - [0, - [0, - cst_changement_logement_d842_4, - embed_changement_logement_d842(x[8])], - 0], - _cvX_= - [0, - [0, - cst_logement_meubl_d842_2$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cvW_], - _cvY_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cvX_], - _cvZ_= - [0, - [0,cst_colocation,caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cvY_], - _cv0_= - [0, - [0, - cst_logement_est_chambre, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cvZ_], - _cv1_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$0, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cv0_], - _cv2_= - [0, - [0,cst_loyer_principal,caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cv1_]; - return [7,_ma_,[0,[0,cst_bailleur,embed_type_bailleur(x[1])],_cv2_]]} - var PersonneACharge=[0]; - function embed_personne_a_charge(x) - {if(0 === x[0]) - var x$0=x[1],_cvV_=[0,cst_Enfant_Charge,embed_enfant_a_charge(x$0)]; - else - var - x$1=x[1], - _cvV_=[0,cst_AutrePersonne_Charge,embed_autre_personne_a_charge(x$1)]; - return [6,_mb_,_cvV_]} - var CategorieCalculAPL=[0]; - function embed_categorie_calcul_a_p_l(x) - {switch(x[0]) - {case 0:var x$0=x[1],_cvU_=[0,cst_Location,embed_location(x$0)];break; - case 1: - var x$1=x[1],_cvU_=[0,cst_AccessionPropri_t,embed_proprietaire(x$1)]; - break; - default: - var x$2=x[1],_cvU_=[0,cst_LogementFoyer,embed_logement_foyer(x$2)]} - return [6,_mc_,_cvU_]} - var ModeOccupation=[0]; - function embed_mode_occupation(x) - {switch(x[0]) - {case 0:var x$0=x[1],_cvT_=[0,cst_Locataire,embed_location(x$0)];break; - case 1: - var - x$1=x[1], - _cvT_=[0,cst_R_sidentLogementFoyer,embed_logement_foyer(x$1)]; - break; - case 2: - var - x$2=x[1], - _cvT_=[0,cst_AccessionPropri_t_LocalUsa,embed_proprietaire(x$2)]; - break; - case 3: - var x$3=x[1],_cvT_=[0,cst_SousLocataire,embed_location(x$3)];break; - default: - var x$4=x[1],_cvT_=[0,cst_LocationAccession,embed_proprietaire(x$4)]} - return [6,_md_,_cvT_]} - var EligibiliteAidesPersonnelleLog=[0]; - function embed_eligibilite_aides_person(x) - {var - _cvP_= - [0, - [0,cst_condition_2_r823_4,caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cvQ_= - [0, - [0, - cst_coefficents_enfants_garde_$2, - caml_call2(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15],x[4])], - _cvP_], - _cvR_= - [0, - [0, - cst_nombre_personnes_charge_pr$1, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _cvQ_], - _cvS_= - [0, - [0,cst_ligibilit$3,caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cvR_]; - return [7, - _me_, - [0, - [0, - cst_date_courante$0, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cvS_]]} - var Logement=[0]; - function embed_logement(x) - {var - _cvH_=[0,[0,cst_zone,embed_zone_d_habitation(x[9])],0], - _cvI_= - [0, - [0,cst_surface_m_carr_s,caml_call1(Runtime_ocaml_Runtime[14],x[8])], - _cvH_], - _cvJ_= - [0, - [0, - cst_logement_decent_l89_462, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cvI_], - _cvK_=[0,[0,cst_usufruit,embed_parent_ou_autre(x[6])],_cvJ_], - _cvL_= - [0, - [0, - cst_lou_ou_sous_lou_des_tiers, - embed_loue_ou_sous_loue_a_des_(x[5])], - _cvK_], - _cvM_=[0,[0,cst_propri_taire,embed_parent_ou_autre(x[4])],_cvL_], - _cvN_=[0,[0,cst_mode_occupation,embed_mode_occupation(x[3])],_cvM_], - _cvO_= - [0, - [0, - cst_est_ehpad_ou_maison_autono, - caml_call1(Runtime_ocaml_Runtime[12],x[2])], - _cvN_]; - return [7, - _mf_, - [0, - [0, - cst_r_sidence_principale, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cvO_]]} - var Menage=[0]; - function embed_menage(x) - {var - _cvz_=[0,[0,cst_r_sidence,embed_collectivite$0(x[9])],0], - _cvA_= - [0, - [0, - cst_personnes_g_es_handicap_es, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cvz_], - _cvB_= - [0, - [0, - cst_enfant_na_tre_apr_s_quatri, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cvA_], - _cvC_= - [0, - [0, - cst_condition_rattach_foyer_fi, - caml_call1(Runtime_ocaml_Runtime[12],x[6])], - _cvB_], - _cvD_= - [0,[0,cst_situation_familiale,embed_situation_familiale(x[5])],_cvC_], - _cvE_= - [0, - [0, - cst_nombre_autres_occupants_lo, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _cvD_], - _cvF_= - [0, - [0, - cst_personnes_charge, - caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[3])], - _cvE_], - _cvG_=[0,[0,cst_logement,embed_logement(x[2])],_cvF_]; - return [7, - _mg_, - [0, - [0, - cst_prestations_re_ues, - caml_call2 - (Runtime_ocaml_Runtime[18],embed_prestation_recue,x[1])], - _cvG_]]} - var EligibiliteAidesPersonnelleLog$0=[0]; - function embed_eligibilite_aides_person$0(x) - {var - _cvu_= - [0, - [0, - cst_date_entr_e_vigueur_diff_r, - caml_call1(Runtime_ocaml_Runtime[10],x[6])], - 0], - _cvv_= - [0, - [0, - cst_condition_logement_surface, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - _cvu_], - _cvw_= - [0, - [0, - cst_condition_logement_r_siden, - caml_call1(Runtime_ocaml_Runtime[10],x[4])], - _cvv_], - _cvx_= - [0, - [0,cst_date_courante_in$5,caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cvw_], - _cvy_=[0,[0,cst_demandeur_in,embed_demandeur(x[2])],_cvx_]; - return [7,_mh_,[0,[0,cst_m_nage_in,embed_menage(x[1])],_cvy_]]} - var EligibiliteAidePersonnaliseeLo$0=[0]; - function embed_eligibilite_aide_personn$0(x) - {var - _cvs_= - [0, - [0,cst_date_courante_in$6,caml_call1(Runtime_ocaml_Runtime[16],x[3])], - 0], - _cvt_=[0,[0,cst_demandeur_in$0,embed_demandeur(x[2])],_cvs_]; - return [7,_mi_,[0,[0,cst_m_nage_in$0,embed_menage(x[1])],_cvt_]]} - var EligibiliteAllocationLogementI=[0]; - function embed_eligibilite_allocation_l$0(x) - {var - _cvp_= - [0, - [0, - cst_b_n_ficie_aide_personnalis, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - 0], - _cvq_=[0,[0,cst_demandeur_in$1,embed_demandeur(x[3])],_cvp_], - _cvr_=[0,[0,cst_m_nage_in$1,embed_menage(x[2])],_cvq_]; - return [7, - _mj_, - [0, - [0, - cst_date_courante_in$7, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cvr_]]} - var EligibilitePrimeDeDemenagement$0=[0]; - function embed_eligibilite_prime_de_dem$0(x) - {var - _cvk_= - [0, - [0, - cst_d_penses_justifi_es_r_elle, - caml_call1(Runtime_ocaml_Runtime[13],x[6])], - 0], - _cvl_= - [0, - [0,cst_date_courante_in$8,caml_call1(Runtime_ocaml_Runtime[16],x[5])], - _cvk_], - _cvm_=[0,[0,cst_demandeur_in$2,embed_demandeur(x[4])],_cvl_], - _cvn_=[0,[0,cst_m_nage_in$2,embed_menage(x[3])],_cvm_], - _cvo_= - [0, - [0, - cst_date_emm_nagement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cvn_]; - return [7, - _mk_, - [0, - [0,cst_informations_in,embed_informations_prime_de_de(x[1])], - _cvo_]]} - var RessourcesAidesPersonnelleLoge$0=[0]; - function embed_ressources_aides_personn$0(x) - {var - _cu9_= - [0, - [0, - cst_ressources_m_nage_arrondie, - caml_call1(Runtime_ocaml_Runtime[13],x[14])], - 0], - _cu__= - [0, - [0, - cst_paiement_logement_distinct, - embed_paiement_logement_distin(x[13])], - _cu9_], - _cu$_= - [0, - [0, - cst_date_demande_ou_reexamen_d, - caml_call1(Runtime_ocaml_Runtime[16],x[12])], - _cu__], - _cva_= - [0, - [0, - cst_demandeur_poursuit_des_tud, - caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _cu$_], - _cvb_= - [0, - [0, - cst_condition_ge_bourse_enseig, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - _cva_], - _cvc_= - [0, - [0,cst_date_courante_in$9,caml_call1(Runtime_ocaml_Runtime[16],x[9])], - _cvb_], - _cvd_=[0,[0,cst_mode_occupation_in,embed_mode_occupation(x[8])],_cvc_], - _cve_= - [0, - [0,cst_situation_familiale_in,embed_situation_familiale(x[7])], - _cvd_], - _cvf_= - [0, - [0, - cst_personnes_charge_in, - caml_call2(Runtime_ocaml_Runtime[18],embed_personne_a_charge,x[6])], - _cve_], - _cvg_= - [0, - [0, - cst_conjoint_exerce_activit_r_, - caml_call1(Runtime_ocaml_Runtime[12],x[5])], - _cvf_], - _cvh_= - [0, - [0, - cst_demandeur_exerce_activit_r, - caml_call1(Runtime_ocaml_Runtime[12],x[4])], - _cvg_], - _cvi_= - [0, - [0, - cst_personnes_vivant_habituell, - caml_call2 - (Runtime_ocaml_Runtime[18],embed_personne_vivant_habituel,x[3])], - _cvh_], - _cvj_= - [0, - [0, - cst_ressources_conjoint_in, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cvi_]; - return [7, - _ml_, - [0, - [0, - cst_ressources_demandeur_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cvj_]]} - var ContributionsSocialesAidesPers$0=[0]; - function embed_contributions_sociales_a$0(x) - {return [7, - _mm_, - [0, - [0, - cst_date_courante_in$10, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var CalculAidePersonnaliseeLogemen$3=[0]; - function embed_calcul_aide_personnalise$3(x) - {var - _cuW_=[0,[0,cst_r_sidence_in$2,embed_collectivite$0(x[14])],0], - _cuX_= - [0, - [0, - cst_logement_meubl_d842_2_in, - caml_call1(Runtime_ocaml_Runtime[12],x[13])], - _cuW_], - _cuY_= - [0, - [0, - cst_r_duction_loyer_solidarit_$0, - caml_call1(Runtime_ocaml_Runtime[13],x[12])], - _cuX_], - _cuZ_= - [0, - [0,cst_colocation_in,caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _cuY_], - _cu0_= - [0,[0,cst_type_aide_in,embed_type_aides_personnelle_l(x[10])],_cuZ_], - _cu1_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h$0, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cu0_], - _cu2_= - [0, - [0, - cst_logement_est_chambre_in, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cu1_], - _cu3_=[0,[0,cst_zone_in,embed_zone_d_habitation(x[7])],_cu2_], - _cu4_= - [0, - [0, - cst_situation_familiale_calcul, - embed_situation_familiale_calc(x[6])], - _cu3_], - _cu5_= - [0, - [0, - cst_nombre_personnes_charge_in, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _cu4_], - _cu6_= - [0, - [0, - cst_date_courante_in$11, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cu5_], - _cu7_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$1, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cu6_], - _cu8_= - [0, - [0, - cst_ressources_m_nage_arrondie$0, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cu7_]; - return [7, - _mn_, - [0, - [0, - cst_loyer_principal_base_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cu8_]]} - var CalculEquivalenceLoyerMinimale$0=[0]; - function embed_calcul_equivalence_loyer$0(x) - {var - _cuT_= - [0, - [0, - cst_n_nombre_parts_d832_25_in, - caml_call1(Runtime_ocaml_Runtime[15],x[4])], - 0], - _cuU_= - [0, - [0, - cst_condition_2_du_832_25_in, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cuT_], - _cuV_= - [0, - [0, - cst_ressources_m_nage_arrondie$1, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cuU_]; - return [7, - _mo_, - [0, - [0, - cst_date_courante_in$12, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _cuV_]]} - var CalculNombrePartLogementFoyerI=[0]; - function embed_calcul_nombre_part_logem$0(x) - {var - _cuP_= - [0, - [0, - cst_limitation_majoration_pers, - caml_call1(Runtime_ocaml_Runtime[10],x[5])], - 0], - _cuQ_=[0,[0,cst_r_sidence_in$3,embed_collectivite$0(x[4])],_cuP_], - _cuR_= - [0, - [0, - cst_situation_familiale_calcul$0, - embed_situation_familiale_calc(x[3])], - _cuQ_], - _cuS_= - [0, - [0, - cst_nombre_personnes_charge_in$0, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _cuR_]; - return [7, - _mp_, - [0, - [0, - cst_condition_2_du_832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[1])], - _cuS_]]} - var CalculAidePersonnaliseeLogemen$4=[0]; - function embed_calcul_aide_personnalise$4(x) - {var - _cuE_= - [0, - [0, - cst_n_nombre_parts_d832_25_in$0, - caml_call1(Runtime_ocaml_Runtime[10],x[12])], - 0], - _cuF_= - [0, - [0, - cst_limitation_majoration_pers$0, - caml_call1(Runtime_ocaml_Runtime[10],x[11])], - _cuE_], - _cuG_= - [0, - [0, - cst_condition_2_du_832_25_in$1, - caml_call1(Runtime_ocaml_Runtime[10],x[10])], - _cuF_], - _cuH_=[0,[0,cst_r_sidence_in$4,embed_collectivite$0(x[9])],_cuG_], - _cuI_= - [0, - [0,cst_redevance_in,caml_call1(Runtime_ocaml_Runtime[13],x[8])], - _cuH_], - _cuJ_= - [0, - [0, - cst_date_courante_in$13, - caml_call1(Runtime_ocaml_Runtime[16],x[7])], - _cuI_], - _cuK_=[0,[0,cst_zone_in$0,embed_zone_d_habitation(x[6])],_cuJ_], - _cuL_= - [0, - [0, - cst_situation_familiale_calcul$1, - embed_situation_familiale_calc(x[5])], - _cuK_], - _cuM_= - [0, - [0, - cst_nombre_personnes_charge_in$1, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _cuL_], - _cuN_= - [0, - [0, - cst_ressources_m_nage_arrondie$2, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cuM_], - _cuO_= - [0, - [0, - cst_date_conventionnement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cuN_]; - return [7, - _mq_, - [0, - [0,cst_type_logement_foyer_in,embed_type_logement_foyer(x[1])], - _cuO_]]} - var CalculNombrePartsAccessionProp$0=[0]; - function embed_calcul_nombre_parts_acce$0(x) - {var - _cuD_= - [0, - [0, - cst_situation_familiale_calcul$2, - embed_situation_familiale_calc(x[2])], - 0]; - return [7, - _mr_, - [0, - [0, - cst_nombre_personnes_charge_in$2, - caml_call1(Runtime_ocaml_Runtime[14],x[1])], - _cuD_]]} - var CalculAidePersonnaliseeLogemen$5=[0]; - function embed_calcul_aide_personnalise$5(x) - {var - _cuq_= - [0, - [0, - cst_date_courante_in$14, - caml_call1(Runtime_ocaml_Runtime[16],x[14])], - 0], - _cur_= - [0,[0,cst_anciennet_logement_in,embed_neuf_ou_ancien(x[13])],_cuq_], - _cus_=[0,[0,cst_type_pr_t_in,embed_type_pret(x[12])],_cur_], - _cut_=[0,[0,cst_zone_in$1,embed_zone_d_habitation(x[11])],_cus_], - _cuu_= - [0, - [0, - cst_situation_r822_11_13_17_in, - caml_call1(Runtime_ocaml_Runtime[12],x[10])], - _cut_], - _cuv_= - [0, - [0,cst_copropri_t_in,caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cuu_], - _cuw_= - [0, - [0, - cst_date_entr_e_logement_in, - caml_call1(Runtime_ocaml_Runtime[16],x[8])], - _cuv_], - _cux_= - [0, - [0, - cst_local_habit_premi_re_fois_$0, - caml_call1(Runtime_ocaml_Runtime[12],x[7])], - _cuw_], - _cuy_= - [0, - [0, - cst_date_signature_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _cux_], - _cuz_= - [0, - [0,cst_type_travaux_logement_in,embed_type_travaux_logement_d8(x[5])], - _cuy_], - _cuA_= - [0, - [0, - cst_situation_familiale_calcul$3, - embed_situation_familiale_calc(x[4])], - _cuz_], - _cuB_= - [0, - [0, - cst_nombre_personnes_charge_in$3, - caml_call1(Runtime_ocaml_Runtime[14],x[3])], - _cuA_], - _cuC_= - [0, - [0, - cst_ressources_m_nage_arrondie$3, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cuB_]; - return [7, - _ms_, - [0, - [0, - cst_mensualit_principale_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cuC_]]} - var CalculAidePersonnaliseeLogemen$6=[0]; - function embed_calcul_aide_personnalise$6(x) - {var - _cuj_=[0,[0,cst_r_sidence_in$5,embed_collectivite$0(x[8])],0], - _cuk_= - [0, - [0, - cst_date_courante_in$15, - caml_call1(Runtime_ocaml_Runtime[16],x[7])], - _cuj_], - _cul_=[0,[0,cst_zone_in$2,embed_zone_d_habitation(x[6])],_cuk_], - _cum_= - [0, - [0, - cst_nombre_personnes_charge_in$4, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _cul_], - _cun_= - [0, - [0,cst_situation_familiale_in$0,embed_situation_familiale(x[4])], - _cum_], - _cuo_= - [0, - [0, - cst_ressources_m_nage_sans_arr, - caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _cun_], - _cup_= - [0,[0,cst_type_aide_in$0,embed_type_aides_personnelle_l(x[2])],_cuo_]; - return [7, - _mt_, - [0, - [0,cst_mode_occupation_in$0,embed_mode_occupation(x[1])], - _cup_]]} - var CalculAllocationLogementLocati$0=[0]; - function embed_calcul_allocation_logeme$3(x) - {var - _ct7_= - [0, - [0, - cst_changement_logement_d842_4$0, - embed_changement_logement_d842(x[15])], - 0], - _ct8_=[0,[0,cst_r_sidence_in$6,embed_collectivite$0(x[14])],_ct7_], - _ct9_= - [0, - [0, - cst_logement_meubl_d842_2_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[13])], - _ct8_], - _ct__= - [0, - [0, - cst_r_duction_loyer_solidarit_$1, - caml_call1(Runtime_ocaml_Runtime[13],x[12])], - _ct9_], - _ct$_= - [0, - [0,cst_colocation_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _ct__], - _cua_= - [0,[0,cst_type_aide_in$1,embed_type_aides_personnelle_l(x[10])],_ct$_], - _cub_= - [0, - [0, - cst_g_es_ou_handicap_adultes_h$1, - caml_call1(Runtime_ocaml_Runtime[12],x[9])], - _cua_], - _cuc_= - [0, - [0, - cst_logement_est_chambre_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _cub_], - _cud_=[0,[0,cst_zone_in$3,embed_zone_d_habitation(x[7])],_cuc_], - _cue_= - [0, - [0, - cst_situation_familiale_calcul$4, - embed_situation_familiale_calc(x[6])], - _cud_], - _cuf_= - [0, - [0, - cst_nombre_personnes_charge_in$5, - caml_call1(Runtime_ocaml_Runtime[14],x[5])], - _cue_], - _cug_= - [0, - [0, - cst_date_courante_in$16, - caml_call1(Runtime_ocaml_Runtime[16],x[4])], - _cuf_], - _cuh_= - [0, - [0, - cst_b_n_ficiaire_aide_adulte_o$2, - caml_call1(Runtime_ocaml_Runtime[12],x[3])], - _cug_], - _cui_= - [0, - [0, - cst_ressources_m_nage_arrondie$4, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _cuh_]; - return [7, - _mu_, - [0, - [0, - cst_loyer_principal_in, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _cui_]]} - var CalculAllocationLogementAccess$0=[0]; - function embed_calcul_allocation_logeme$4(x) - {var - _ctT_= - [0, - [0, - cst_op_rations_logement_voluti$0, - caml_call1(Runtime_ocaml_Runtime[12],x[15])], - 0], - _ctU_= - [0, - [0,cst_copropri_t_in$0,caml_call1(Runtime_ocaml_Runtime[12],x[14])], - _ctT_], - _ctV_= - [0, - [0, - cst_charges_mensuelles_pr_t_in, - caml_call1(Runtime_ocaml_Runtime[13],x[13])], - _ctU_], - _ctW_= - [0, - [0, - cst_date_entr_e_logement_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[12])], - _ctV_], - _ctX_= - [0, - [0, - cst_local_habit_premi_re_fois_$1, - caml_call1(Runtime_ocaml_Runtime[12],x[11])], - _ctW_], - _ctY_= - [0, - [0, - cst_type_travaux_logement_in$0, - embed_type_travaux_logement_r8(x[10])], - _ctX_], - _ctZ_= - [0, - [0, - cst_date_signature_pr_t_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[9])], - _ctY_], - _ct0_= - [0, - [0, - cst_situation_r822_11_13_17_in$0, - caml_call1(Runtime_ocaml_Runtime[12],x[8])], - _ctZ_], - _ct1_= - [0, - [0, - cst_mensualit_principale_in$0, - caml_call1(Runtime_ocaml_Runtime[13],x[7])], - _ct0_], - _ct2_= - [0, - [0, - cst_date_courante_in$17, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _ct1_], - _ct3_=[0,[0,cst_r_sidence_in$7,embed_collectivite$0(x[5])],_ct2_], - _ct4_=[0,[0,cst_zone_in$4,embed_zone_d_habitation(x[4])],_ct3_], - _ct5_= - [0, - [0, - cst_situation_familiale_calcul$5, - embed_situation_familiale_calc(x[3])], - _ct4_], - _ct6_= - [0, - [0, - cst_nombre_personnes_charge_in$6, - caml_call1(Runtime_ocaml_Runtime[14],x[2])], - _ct5_]; - return [7, - _mv_, - [0, - [0, - cst_ressources_m_nage_arrondie$5, - caml_call1(Runtime_ocaml_Runtime[13],x[1])], - _ct6_]]} - var CalculAllocationLogementFoyerI=[0]; - function embed_calcul_allocation_logeme$5(x) - {var - _ctK_= - [0, - [0, - cst_cat_gorie_quivalence_loyer$0, - embed_categorie_equivalence_lo(x[10])], - 0], - _ctL_= - [0, - [0, - cst_date_courante_in$18, - caml_call1(Runtime_ocaml_Runtime[16],x[9])], - _ctK_], - _ctM_=[0,[0,cst_zone_in$5,embed_zone_d_habitation(x[8])],_ctL_], - _ctN_= - [0, - [0, - cst_situation_familiale_calcul$6, - embed_situation_familiale_calc(x[7])], - _ctM_], - _ctO_= - [0, - [0, - cst_nombre_personnes_charge_in$7, - caml_call1(Runtime_ocaml_Runtime[14],x[6])], - _ctN_], - _ctP_= - [0, - [0, - cst_ressources_m_nage_arrondie$6, - caml_call1(Runtime_ocaml_Runtime[13],x[5])], - _ctO_], - _ctQ_= - [0, - [0,cst_redevance_in$0,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _ctP_], - _ctR_=[0,[0,cst_r_sidence_in$8,embed_collectivite$0(x[3])],_ctQ_], - _ctS_= - [0, - [0, - cst_date_conventionnement_in$0, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _ctR_]; - return [7, - _mw_, - [0, - [0, - cst_type_logement_foyer_in$0, - embed_type_logement_foyer(x[1])], - _ctS_]]} - var CalculAllocationLogementIn=[0]; - function embed_calcul_allocation_logeme$6(x) - {var - _ctD_=[0,[0,cst_r_sidence_in$9,embed_collectivite$0(x[8])],0], - _ctE_= - [0,[0,cst_type_aide_in$2,embed_type_aides_personnelle_l(x[7])],_ctD_], - _ctF_= - [0, - [0, - cst_date_courante_in$19, - caml_call1(Runtime_ocaml_Runtime[16],x[6])], - _ctE_], - _ctG_=[0,[0,cst_zone_in$6,embed_zone_d_habitation(x[5])],_ctF_], - _ctH_= - [0, - [0, - cst_nombre_personnes_charge_in$8, - caml_call1(Runtime_ocaml_Runtime[14],x[4])], - _ctG_], - _ctI_= - [0, - [0,cst_situation_familiale_in$1,embed_situation_familiale(x[3])], - _ctH_], - _ctJ_= - [0, - [0, - cst_ressources_m_nage_sans_arr$0, - caml_call1(Runtime_ocaml_Runtime[13],x[2])], - _ctI_]; - return [7, - _mx_, - [0, - [0,cst_mode_occupation_in$1,embed_mode_occupation(x[1])], - _ctJ_]]} - var OuvertureDroitsRetraiteIn=[0]; - function embed_ouverture_droits_retrait$0(x) - {return [7, - _my_, - [0, - [0, - cst_date_naissance_assur_in, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var ImpayeDepenseLogementIn=[0]; - function embed_impaye_depense_logement_(x) - {var - _cty_= - [0, - [0,cst_montant_dette_in,caml_call1(Runtime_ocaml_Runtime[13],x[6])], - 0], - _ctz_= - [0,[0,cst_d_pense_logement_in,embed_depense_logement(x[5])],_cty_], - _ctA_= - [0, - [0,cst_montant_charges_in,caml_call1(Runtime_ocaml_Runtime[13],x[4])], - _ctz_], - _ctB_= - [0, - [0,cst_montant_apl_in,caml_call1(Runtime_ocaml_Runtime[13],x[3])], - _ctA_], - _ctC_=[0,[0,cst_aide_vers_e_in,embed_versement_a(x[2])],_ctB_]; - return [7, - _mz_, - [0, - [0,cst_mode_occupation_in$2,embed_mode_occupation(x[1])], - _ctC_]]} - var CalculetteAidesAuLogementIn=[0]; - function embed_calculette_aides_au_loge$1(x) - {var - _ctv_= - [0, - [0, - cst_ressources_m_nage_prises_e, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - 0], - _ctw_= - [0, - [0, - cst_date_courante_in$20, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _ctv_], - _ctx_=[0,[0,cst_demandeur_in$3,embed_demandeur(x[2])],_ctw_]; - return [7,_mA_,[0,[0,cst_m_nage_in$3,embed_menage(x[1])],_ctx_]]} - var CalculetteAidesAuLogementGarde$0=[0]; - function embed_calculette_aides_au_loge$2(x) - {var - _cts_= - [0, - [0, - cst_ressources_m_nage_prises_e$0, - caml_call1(Runtime_ocaml_Runtime[13],x[4])], - 0], - _ctt_= - [0, - [0, - cst_date_courante_in$21, - caml_call1(Runtime_ocaml_Runtime[16],x[3])], - _cts_], - _ctu_=[0,[0,cst_demandeur_in$4,embed_demandeur(x[2])],_ctt_]; - return [7,_mB_,[0,[0,cst_m_nage_in$4,embed_menage(x[1])],_ctu_]]} - var BaseMensuelleAllocationsFamili$2=[0]; - function embed_base_mensuelle_allocatio$2(x) - {return [7, - _mC_, - [0, - [0, - cst_date_courante_in$22, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - 0]]} - var VerificationAgeInferieurOuEgal$2=[0]; - function embed_verification_age_inferie$2(x) - {var - _ctq_= - [0,[0,cst_ann_es_in$1,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _ctr_= - [0, - [0, - cst_date_courante_in$23, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _ctq_]; - return [7, - _mD_, - [0, - [0, - cst_date_naissance_in$1, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ctr_]]} - var VerificationAgeSuperieurAIn$0=[0]; - function embed_verification_age_superie$2(x) - {var - _cto_= - [0,[0,cst_ann_es_in$2,caml_call1(Runtime_ocaml_Runtime[17],x[3])],0], - _ctp_= - [0, - [0, - cst_date_courante_in$24, - caml_call1(Runtime_ocaml_Runtime[16],x[2])], - _cto_]; - return [7, - _mE_, - [0, - [0, - cst_date_naissance_in$2, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ctp_]]} - var SmicIn$0=[0]; - function embed_smic_in$0(x) - {var _ctn_=[0,[0,cst_r_sidence_in$10,embed_collectivite$0(x[2])],0]; - return [7, - _mF_, - [0, - [0, - cst_date_courante_in$25, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ctn_]]} - var EligibilitePrestationsFamilial$0=[0]; - function embed_eligibilite_prestations_$0(x) - {var - _ctk_= - [0, - [0,cst_ge_l512_3_2_in,caml_call1(Runtime_ocaml_Runtime[10],x[4])], - 0], - _ctl_=[0,[0,cst_r_sidence_in$11,embed_collectivite$0(x[3])],_ctk_], - _ctm_= - [0, - [0, - cst_prestation_courante_in$0, - embed_element_prestations_fami$0(x[2])], - _ctl_]; - return [7, - _mG_, - [0, - [0, - cst_date_courante_in$26, - caml_call1(Runtime_ocaml_Runtime[16],x[1])], - _ctm_]]} - function contributions_sociales_aides_p(contributions_sociales_aides_p) - {var date_courante=contributions_sociales_aides_p[1]; - try - {var - _csZ_=function(param){return 0}, - _cs0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_mI_,1)}, - _cs1_= + allocation_familiales_avril200$3, + enfant_le_plus_age, + verification_age_inferieur_ou_$3, + verification_age_superieur_a, + smic, + base_mensuelle_allocations_fam$3, + prestations_familiales, + allocations_familiales, + interface_allocations_familial$3]; + runtime.caml_register_global + (374, + Law_source_Allocations_familia$0, + "Law_source__Allocations_familiales_api_web"); + return; + } + (globalThis)); + +//# 12185 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_Archives_de_l_arr_t_du_27_ = + "Archives de l'arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Arr_t_du_19_avril_2022_rel = + "Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Arr_t_du_27_septembre_2019 = + "Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Arr_t_du_29_juillet_2022_r = + "Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance", + cst_Articles_en_vigueur_partir = + "Articles en vigueur \xc3\xa0 partir du 1er janvier 2020 - Arr\xc3\xaat\xc3\xa9 du 3 janvier 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2020 NOR : LOGL1934006A", + cst_Articles_en_vigueur_partir$2 = + "Articles en vigueur \xc3\xa0 partir du 1er janvier 2022 - Arr\xc3\xaat\xc3\xa9 du 20 d\xc3\xa9cembre 2021 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2022 NOR : LOGL2134477A", + cst_Articles_en_vigueur_partir$3 = + "Articles en vigueur \xc3\xa0 partir du 1er juillet 2022 - Arr\xc3\xaat\xc3\xa9 du 29 juillet 2022 relatif au calcul des aides personnelles au logement NOR : TREL2220748A - Arr\xc3\xaat\xc3\xa9 du 16 ao\xc3\xbbt 2022 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer - NOR : TREL2220744A", + cst_Articles_en_vigueur_partir$1 = + "Articles en vigueur \xc3\xa0 partir du 1er octobre 2021 - Arr\xc3\xaat\xc3\xa9 du 23 septembre 2021 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2123452A", + cst_Articles_en_vigueur_partir$0 = + "Articles en vigueur \xc3\xa0 partir du du 1er octobre 2020 - Arr\xc3\xaat\xc3\xa9 du 25 septembre 2020 relatif au calcul des aides personnelles au logement et de l'aide \xc3\xa0 l'accession sociale et \xc3\xa0 la sortie de l'insalubrit\xc3\xa9 sp\xc3\xa9cifique \xc3\xa0 l'outre-mer NOR : LOGL2020835A", + cst_AutrePersonne_Charge$0 = "AutrePersonne\xc3\x80Charge", + cst_Calcul_du_montant_de_l_aid = + "Calcul du montant de l'aide personnalis\xc3\xa9e au logement", + cst_CalculAidePersonnalis_eLog = "CalculAidePersonnalis\xc3\xa9eLogement", + cst_CalculAidePersonnalis_eLog$1 = + "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9", + cst_CalculAidePersonnalis_eLog$0 = + "CalculAidePersonnalis\xc3\xa9eLogementFoyer", + cst_CalculAidePersonnalis_eLog$2 = + "CalculAidePersonnalis\xc3\xa9eLogementLocatif", + cst_CalculAllocationLogementAc = + "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9", + cst_CalculNombrePartsAccession = + "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9", + cst_Calculette_avec_garde_alte = "Calculette avec garde altern\xc3\xa9e", + cst_CalculetteAidesAuLogementG = + "CalculetteAidesAuLogementGardeAltern\xc3\xa9e", + cst_Calcul_quivalenceLoyerMini = "Calcul\xc3\x89quivalenceLoyerMinimale", + cst_Capitre_I_Guadeloupe_Guyan = + "Capitre I : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", + cst_Chapitre_2_Modalit_s_de_li = + "Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement", + cst_Chapitre_5_Allocation_de_s = + "Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Chapitre_II_Conditions_g_n = + "Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution", + cst_Chapitre_II_Modalit_s_de_l = + "Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement", + cst_Chapitre_II_Saint_Barth_le = + "Chapitre II : Saint-Barth\xc3\xa9lemy et Saint-Martin", + cst_Chapitre_III_Modalit_s_de_ = + "Chapitre III : Modalit\xc3\xa9s de liquidation et de versement", + cst_Chapitre_IV_Calcul_de_l_ai = + "Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession", + cst_Chapitre_IV_Impay_s_de_d_p = + "Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement", + cst_Chapitre_Ier_Guadeloupe_Gu = + "Chapitre Ier : Guadeloupe, Guyane, Martinique, La R\xc3\xa9union et Mayotte", + cst_Chapitre_V_Calcul_de_l_aid = + "Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer", + cst_Code_de_la_s_curit_sociale = + "Code de la s\xc3\xa9curit\xc3\xa9 sociale", + cst_Compl_mentFamilial$1 = "Compl\xc3\xa9mentFamilial", + cst_Date_d_ouverture_des_droit = + "Date d'ouverture des droits \xc3\xa0 la retraite", + cst_D_clarations_des_champs_d_ = + "D\xc3\xa9clarations des champs d'application", + cst_D_cret_n_2018_1173_du_19_d = + "D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2019_1387_du_18_d = + "D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2020_1598_du_16_d = + "D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2021_1741_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_D_cret_n_2022_1608_du_22_d = + "D\xc3\xa9cret n\xc2\xb0 2022-1608 du 22 d\xc3\xa9cembre 2022 portant rel\xc3\xa8vement du salaire minimum de croissance", + cst_Enfant_Charge$0 = "Enfant\xc3\x80Charge", + cst_Impay_D_penseLogement = "Impay\xc3\xa9D\xc3\xa9penseLogement", + cst_Livre_5_Prestations_famili = + "Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + cst_Livre_7_R_gimes_divers_Dis = + "Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses", + cst_Livre_I_G_n_ralit_s_Dispos = + "Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base", + cst_Livre_VIII_Allocations_aux = + "Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9", + cst_Montants_revaloris_s_de_l_ = + "Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Ordonnance_n_96_50_du_24_j = + "Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale", + cst_Paragraphe_1_Information_e = + "Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.", + cst_Partie_l_gislative = "Partie l\xc3\xa9gislative", + cst_Partie_r_glementaire = "Partie r\xc3\xa9glementaire", + cst_Partie_r_glementaire_D_cre$0 = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat", + cst_Partie_r_glementaire_D_cre = + "Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples", + cst_Quantification_des_impay_s = + "Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement", + cst_R_glement_CE_n_2866_98_du_ = + "R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro", + cst_Secteur_accession_la_propr = + "Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", + cst_Section_1_B_n_ficiaires = "Section 1 : B\xc3\xa9n\xc3\xa9ficiaires", + cst_Section_1_Conditions_relat = + "Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire", + cst_Section_1_Ouverture_du_dro = + "Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es", + cst_Section_1_Seuils_de_consti = + "Section 1 : Seuils de constitution d'un impay\xc3\xa9", + cst_Section_2_Accession_la_pro = + "Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9", + cst_Section_2_Prime_de_d_m_nag = + "Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement", + cst_Sous_Section_2_Conditions_ = + "Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer", + cst_Sous_section_1_Modalit_s_g = + "Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources", + cst_Sous_section_III_Modalit_s = + "Sous-section III : Modalit\xc3\xa9s de liquidation et de versement", + cst_Titre_1_Champ_d_applicatio = + "Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + cst_Titre_I_Allocations_aux_pe = + "Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es", + cst_Titre_III_Aide_personnalis = + "Titre III : Aide personnalis\xc3\xa9e au logement", + cst_Titre_VI_Disposition_parti = + "Titre VI : Disposition particuli\xc3\xa8res \xc3\xa0 l'outre-mer", + cst_Titre_VI_Dispositions_part = + "Titre VI : Dispositions particuli\xc3\xa8res \xc3\xa0 l'outre-mer", + cst_Titre_VI_Dispositions_rela = + "Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales", + cst_V_rification_geInf_rieurOu = + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80", + cst_V_rification_geSup_rieur = + "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80", + cst_a_d_j_ouvert_droit_aux_all$1 = + "a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales", + cst_abattement_d_pense_nette_m = + "abattement_d\xc3\xa9pense_nette_minimale", + cst_abattement_d_pense_nette_m$0 = + "abattement_d\xc3\xa9pense_nette_minimale_d832_10", + cst_abattement_d_pense_nette_m$1 = + "abattement_d\xc3\xa9pense_nette_minimale_d832_27", + cst_ann_es_in$1 = "ann\xc3\xa9es_in", + cst_b_n_ficiaire_aide_adulte_o$4 = + "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", + cst_b_n_ficiaire_aide_adulte_o$3 = + "b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s_in", + cst_b_n_ficie_titre_personnel_$1 = + "b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement", + cst_calcul_aide_personnalis_e_ = + "calcul_aide_personnalis\xc3\xa9e_logement", + cst_calcul_apl_logement_foyer_ = + "calcul_apl_logement_foyer.limitation_majoration_personnes_\xc3\xa0_charge", + cst_calcul_apl_logement_foyer_$4 = + "calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge", + cst_calcul_apl_logement_foyer_$3 = + "calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies", + cst_calcul_apl_logement_foyer_$9 = + "calcul_apl_logement_foyer.r\xc3\xa9sidence", + cst_calcul_nombre_parts_nombre = + "calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge", + cst_calcul_nombre_parts_r_side = "calcul_nombre_parts.r\xc3\xa9sidence", + cst_calcul_plafond_mensualit_d$2 = + "calcul_plafond_mensualit\xc3\xa9_d832_10_3", + cst_calcul_plafond_mensualit_d$0 = + "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9", + cst_calcul_plafond_mensualit_d = + "calcul_plafond_mensualit\xc3\xa9_d842_6_avec_limitation_dom_tom", + cst_calcul_plafond_mensualit_d$1 = + "calcul_plafond_mensualit\xc3\xa9_d842_6_base", + cst_calcul_quivalence_loyer_mi$3 = + "calcul_\xc3\xa9quivalence_loyer_minimale", + cst_calcul_quivalence_loyer_mi$1 = + "calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25", + cst_calcul_quivalence_loyer_mi = + "calcul_\xc3\xa9quivalence_loyer_minimale.date_courante", + cst_calcul_quivalence_loyer_mi$2 = + "calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25", + cst_calcul_quivalence_loyer_mi$0 = + "calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies", + cst_calculette_sans_garde_alte = "calculette_sans_garde_altern\xc3\xa9e", + cst_caract_ristiques_pr_t_l831$0 = + "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1", + cst_caract_ristiques_pr_t_l831 = + "caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6", + cst_cat_gorie_calcul_apl = "cat\xc3\xa9gorie_calcul_apl", + cst_coefficents_enfants_garde_$3 = + "coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte", + cst_conditions_hors_ge$0 = "conditions_hors_\xc3\xa2ge", + cst_conventionn_livre_III_titr$2 = + "conventionn\xc3\xa9_livre_III_titre_V_chap_III", + cst_copropri_t_in$1 = "copropri\xc3\xa9t\xc3\xa9_in", + cst_date_entr_e_logement_in$1 = "date_entr\xc3\xa9e_logement_in", + cst_date_signature_pr_t_in$1 = "date_signature_pr\xc3\xaat_in", + cst_d_pense_nette_minimale = "d\xc3\xa9pense_nette_minimale", + cst_d_pense_nette_minimale_d83 = "d\xc3\xa9pense_nette_minimale_d832_10", + cst_d_pense_nette_minimale_d83$0 = "d\xc3\xa9pense_nette_minimale_d832_27", + cst_est_inf_rieur_ou_gal$0 = "est_inf\xc3\xa9rieur_ou_\xc3\xa9gal", + cst_est_sup_rieur$0 = "est_sup\xc3\xa9rieur", + cst_examples_aides_logement_pr$0 = + "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr", + cst_examples_aides_logement_pr$2 = + "examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr", + cst_examples_aides_logement_co$1 = + "examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr", + cst_limitation_majoration_pers$1 = + "limitation_majoration_personnes_\xc3\xa0_charge", + cst_limitation_majoration_pers$2 = + "limitation_majoration_personnes_\xc3\xa0_charge_in", + cst_local_habit_premi_re_fois_$2 = + "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire_in", + cst_logement_meubl_d842_2$1 = "logement_meubl\xc3\xa9_d842_2", + cst_logement_meubl_d842_2_in$1 = "logement_meubl\xc3\xa9_d842_2_in", + cst_mensualit_minimale$1 = "mensualit\xc3\xa9_minimale", + cst_mensualit_principale_in$1 = "mensualit\xc3\xa9_principale_in", + cst_mensualit_ligible$1 = "mensualit\xc3\xa9_\xc3\xa9ligible", + cst_montant_impay$0 = "montant_impay\xc3\xa9", + cst_montant_prime_d_m_nagement$0 = + "montant_prime_d\xc3\xa9m\xc3\xa9nagement", + cst_m_nage_in$5 = "m\xc3\xa9nage_in", + cst_nationalit$1 = "nationalit\xc3\xa9", + cst_nombre_personnes_charge_in$9 = "nombre_personnes_\xc3\xa0_charge_in", + cst_nombre_personnes_charge_pr$2 = + "nombre_personnes_\xc3\xa0_charge_prises_en_compte", + cst_plafond_quivalence_loyer_l$0 = + "plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible", + cst_prestations_familiales_r_s = "prestations_familiales.r\xc3\xa9sidence", + cst_prise_en_compte_personne_c = + "prise_en_compte_personne_\xc3\xa0_charge", + cst_ressources_m_nage_arrondie$8 = + "ressources_m\xc3\xa9nage_arrondies_base_in", + cst_ressources_m_nage_arrondie$7 = "ressources_m\xc3\xa9nage_arrondies_in", + cst_ressources_m_nage_avec_arr = "ressources_m\xc3\xa9nage_avec_arrondi", + cst_ressources_m_nage_prises_e$1 = + "ressources_m\xc3\xa9nage_prises_en_compte_in", + cst_ressources_m_nage_sans_arr$1 = + "ressources_m\xc3\xa9nage_sans_arrondi_in", + cst_r_duction_loyer_solidarit_$2 = + "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_in", + cst_r_gime_outre_mer_l751_1$0 = "r\xc3\xa9gime_outre_mer_l751_1", + cst_r_muneration_mensuelle$1 = "r\xc3\xa9muneration_mensuelle", + cst_r_sidence_in$9 = "r\xc3\xa9sidence_in", + cst_traitement_aide_finale_dim = "traitement_aide_finale_diminu\xc3\xa9", + cst_traitement_aide_finale_d_p = + "traitement_aide_finale_d\xc3\xa9pense_nette_minimale", + cst_traitement_aide_finale_r_d = + "traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9", + cst_ligibilit_aux_aides_person = + "\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement", + cst_ligibilit_aux_allocations_ = + "\xc3\x89ligibilit\xc3\xa9 aux allocations de logement", + cst_ligibilit_l_aide_personnal = + "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement", + cst_ligibilit_la_prime_de_d_m_ = + "\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement", + cst_ligibilit_AidePersonnalis_ = + "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement", + cst_ligibilit_AidesPersonnelle = + "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement", + cst_ligibilit_AllocationLogeme = + "\xc3\x89ligibilit\xc3\xa9AllocationLogement", + cst_ligibilit_PrestationsFamil = + "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales", + cst_ligibilit_PrimeDeD_m_nagem = + "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement", + cst_ge_l512_3_2$0 = "\xc3\xa2ge_l512_3_2", + cst_ge_ouverture_droit$0 = "\xc3\xa2ge_ouverture_droit", + cst_g_es_ou_handicap_adultes_h$2 = + "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers_in", + cst_ligibilit$4 = "\xc3\xa9ligibilit\xc3\xa9", + cst_ligibilit_aide_personnalis = + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement", + cst_ligibilit_allocation_logem = + "\xc3\xa9ligibilit\xc3\xa9_allocation_logement", + cst_ligibilit_apl = "\xc3\xa9ligibilit\xc3\xa9_apl", + cst_ligibilit_commune = "\xc3\xa9ligibilit\xc3\xa9_commune", + cst_ligibilit_commune_date_cou = + "\xc3\xa9ligibilit\xc3\xa9_commune.date_courante", + cst_ligibilit_commune_demandeu = + "\xc3\xa9ligibilit\xc3\xa9_commune.demandeur", + cst_ligibilit_commune_m_nage = + "\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage", + cst_ligibilit_logement = "\xc3\xa9ligibilit\xc3\xa9_logement", + cst_quivalence_loyer$0 = "\xc3\xa9quivalence_loyer", + cst_quivalence_loyer_minimale$0 = "\xc3\xa9quivalence_loyer_minimale", + cst_quivalence_loyer_ligible$0 = + "\xc3\xa9quivalence_loyer_\xc3\xa9ligible", + cst_0$356 = "0", + cst_0$357 = "0.", + cst_0_0006$3 = "0.0006", + cst_0_0045$8 = "0.0045", + cst_0_005$3 = "0.005", + cst_0_0068$2 = "0.0068", + cst_0_01$1 = "0.01", + cst_0_0162$5 = "0.0162", + cst_0_0167$1 = "0.0167", + cst_0_0169$5 = "0.0169", + cst_0_0173$5 = "0.0173", + cst_0_0179$2 = "0.0179", + cst_0_018$5 = "0.018", + cst_0_0185$2 = "0.0185", + cst_0_0194$5 = "0.0194", + cst_0_0201$2 = "0.0201", + cst_0_0217$5 = "0.0217", + cst_0_0226$1 = "0.0226", + cst_0_0234$2 = "0.0234", + cst_0_0238$8 = "0.0238", + cst_0_027$2 = "0.027", + cst_0_0281$5 = "0.0281", + cst_0_0283$2 = "0.0283", + cst_0_0299$5 = "0.0299", + cst_0_0315$2 = "0.0315", + cst_0_085$5 = "0.085", + cst_0_1$1 = "0.1", + cst_0_2$2 = "0.2", + cst_0_208$1 = "0.208", + cst_0_3$2 = "0.3", + cst_0_45$5 = "0.45", + cst_0_5$2 = "0.5", + cst_0_55$1 = "0.55", + cst_0_75$14 = "0.75", + cst_0_9$3 = "0.9", + cst_0_95$5 = "0.95", + cst_0_98$1 = "0.98", + cst_1$254 = "1", + cst_1$255 = "1.", + cst_1_25$1 = "1.25", + cst_1_4$1 = "1.4", + cst_1_8$1 = "1.8", + cst_100$13 = "100.", + cst_1000$5 = "1000", + cst_100000$5 = "100000.", + cst_1062600$1 = "1062600", + cst_12$4 = "12.", + cst_1224$6 = "1224", + cst_1229$6 = "1229", + cst_1272$6 = "1272", + cst_132000$1 = "132000", + cst_139700$1 = "139700", + cst_140800$1 = "140800", + cst_142303$1 = "142303", + cst_149600$1 = "149600", + cst_1500$2 = "1500", + cst_16$4 = "16", + cst_16_25$1 = "16.25", + cst_163000$1 = "163000", + cst_167600$1 = "167600", + cst_167800$1 = "167800", + cst_169$1 = "169.", + cst_16941$1 = "16941", + cst_17012$1 = "17012", + cst_172500$1 = "172500", + cst_173600$1 = "173600", + cst_17607$1 = "17607", + cst_179800$1 = "179800", + cst_180100$2 = "180100", + cst_181800$1 = "181800", + cst_18185$1 = "18185", + cst_18261$1 = "18261", + cst_184000$2 = "184000", + cst_1858$3 = "1858", + cst_185800$1 = "185800", + cst_186000$1 = "186000", + cst_1864$3 = "1864", + cst_1872$7 = "1872", + cst_18900$1 = "18900", + cst_19100$2 = "19100", + cst_192500$1 = "192500", + cst_19300$1 = "19300", + cst_1938$5 = "1938", + cst_19402$1 = "19402", + cst_194810$1 = "194810", + cst_19484$1 = "19484", + cst_195500$1 = "195500", + cst_197700$1 = "197700", + cst_199900$2 = "199900", + cst_2$105 = "2", + cst_2$106 = "2.", + cst_2_5$5 = "2.5", + cst_20100$1 = "20100", + cst_20165$1 = "20165", + cst_201700$1 = "201700", + cst_202500$2 = "202500", + cst_204700$1 = "204700", + cst_204761$1 = "204761", + cst_208200$1 = "208200", + cst_208500$1 = "208500", + cst_208600$2 = "208600", + cst_20900$1 = "20900", + cst_210600$1 = "210600", + cst_210900$1 = "210900", + cst_214700$1 = "214700", + cst_217600$1 = "217600", + cst_218700$1 = "218700", + cst_219900$1 = "219900", + cst_220100$1 = "220100", + cst_221100$1 = "221100", + cst_222300$1 = "222300", + cst_22262$1 = "22262", + cst_22355$1 = "22355", + cst_223900$1 = "223900", + cst_225000$1 = "225000", + cst_225100$1 = "225100", + cst_225500$1 = "225500", + cst_228000$1 = "228000", + cst_230500$3 = "230500", + cst_230700$1 = "230700", + cst_23138$1 = "23138", + cst_233000$1 = "233000", + cst_234600$1 = "234600", + cst_235800$1 = "235800", + cst_237200$1 = "237200", + cst_240200$1 = "240200", + cst_240400$1 = "240400", + cst_242800$3 = "242800", + cst_245700$1 = "245700", + cst_25116$1 = "25116", + cst_251500$1 = "251500", + cst_25978$1 = "25978", + cst_261800$1 = "261800", + cst_262985$1 = "262985", + cst_26329$1 = "26329", + cst_26440$1 = "26440", + cst_26714$1 = "26714", + cst_267871$1 = "267871", + cst_26887$1 = "26887", + cst_2699$2 = "2699", + cst_2710$2 = "2710", + cst_27365$1 = "27365", + cst_27900$1 = "27900", + cst_2805$2 = "2805", + cst_294500$1 = "294500", + cst_3$101 = "3", + cst_3$102 = "3.", + cst_3_1$1 = "3.1", + cst_3_7$2 = "3.7", + cst_30500$3 = "30500", + cst_31264$1 = "31264", + cst_31664$1 = "31664", + cst_31797$2 = "31797", + cst_32910$1 = "32910", + cst_32956$1 = "32956", + cst_33500$1 = "33500", + cst_33623$1 = "33623", + cst_34301$1 = "34301", + cst_34570$1 = "34570", + cst_34700$1 = "34700", + cst_34713$1 = "34713", + cst_34829$1 = "34829", + cst_34865$1 = "34865", + cst_35000$1 = "35000", + cst_35130$1 = "35130", + cst_3524$1 = "3524", + cst_3539$1 = "3539", + cst_35630$1 = "35630", + cst_35762$1 = "35762", + cst_35780$1 = "35780", + cst_35947$1 = "35947", + cst_3614$9 = "3614", + cst_3625$9 = "3625", + cst_36378$1 = "36378", + cst_3640$19 = "3640", + cst_3663$1 = "3663", + cst_36733$1 = "36733", + cst_36815$1 = "36815", + cst_37032$1 = "37032", + cst_37457$1 = "37457", + cst_37478$1 = "37478", + cst_3767$14 = "3767", + cst_37778$1 = "37778", + cst_37900$1 = "37900", + cst_37906$1 = "37906", + cst_38361$1 = "38361", + cst_38527$1 = "38527", + cst_38892$1 = "38892", + cst_389618$1 = "389618", + cst_39016$1 = "39016", + cst_39051$1 = "39051", + cst_39340$1 = "39340", + cst_39445$1 = "39445", + cst_39590$1 = "39590", + cst_39839$1 = "39839", + cst_4$98 = "4", + cst_4_3$3 = "4.3", + cst_40144$1 = "40144", + cst_40696$1 = "40696", + cst_40758$1 = "40758", + cst_40888$1 = "40888", + cst_40928$1 = "40928", + cst_409505$1 = "409505", + cst_40961$1 = "40961", + cst_41252$1 = "41252", + cst_41268$1 = "41268", + cst_41338$1 = "41338", + cst_41392$1 = "41392", + cst_41751$1 = "41751", + cst_42469$1 = "42469", + cst_42605$1 = "42605", + cst_42892$1 = "42892", + cst_42926$1 = "42926", + cst_43000$1 = "43000", + cst_43074$1 = "43074", + cst_43248$1 = "43248", + cst_43378$1 = "43378", + cst_43505$1 = "43505", + cst_44440$1 = "44440", + cst_44693$1 = "44693", + cst_44729$1 = "44729", + cst_45064$1 = "45064", + cst_45200$1 = "45200", + cst_487000$1 = "487000", + cst_4986$1 = "4986", + cst_5$158 = "5", + cst_5$159 = "5.", + cst_50$4 = "50", + cst_500$4 = "500", + cst_5186$1 = "5186", + cst_5208$1 = "5208", + cst_535744$1 = "535744", + cst_5390$1 = "5390", + cst_5399$8 = "5399", + cst_5422$8 = "5422", + cst_5612$8 = "5612", + cst_6$92 = "6", + cst_6$93 = "6.", + cst_6_55957$1 = "6.55957", + cst_633129$1 = "633129", + cst_697700$1 = "697700", + cst_7$1 = "7", + cst_70$1 = "70", + cst_758400$2 = "758400", + cst_832200$2 = "832200", + cst_850900$1 = "850900", + cst_883400$1 = "883400", + cst_9$3 = "9", + cst_916300$1 = "916300", + cst_924600$1 = "924600", + cst_929$9 = "929", + cst_932$9 = "932", + cst_936$19 = "936", + cst_943900$1 = "943900", + cst_948800$1 = "948800", + cst_969$14 = "969", + cst_981600$3 = "981600", + cst_997500$1 = "997500", + cst_AllocationLogementFamilial$1 = "AllocationLogementFamiliale", + cst_AllocationLogementSociale$1 = "AllocationLogementSociale", + cst_AllocationSoutienFamilial$1 = "AllocationSoutienFamilial", + cst_AllocationsFamiliales$1 = "AllocationsFamiliales", + cst_Article_1 = "Article 1", + cst_Article_10 = "Article 10", + cst_Article_13 = "Article 13", + cst_Article_14 = "Article 14", + cst_Article_15 = "Article 15", + cst_Article_16 = "Article 16", + cst_Article_17 = "Article 17", + cst_Article_18 = "Article 18", + cst_Article_19 = "Article 19", + cst_Article_2 = "Article 2", + cst_Article_23 = "Article 23", + cst_Article_24 = "Article 24", + cst_Article_27 = "Article 27", + cst_Article_30 = "Article 30", + cst_Article_31 = "Article 31", + cst_Article_33 = "Article 33", + cst_Article_34 = "Article 34", + cst_Article_37 = "Article 37", + cst_Article_38 = "Article 38", + cst_Article_39 = "Article 39", + cst_Article_40 = "Article 40", + cst_Article_43 = "Article 43", + cst_Article_46 = "Article 46", + cst_Article_47 = "Article 47", + cst_Article_7 = "Article 7", + cst_Article_8 = "Article 8", + cst_Article_9 = "Article 9", + cst_Article_D161_2_1_9 = "Article D161-2-1-9", + cst_Article_D815_1 = "Article D815-1", + cst_Article_D823_16 = "Article D823-16", + cst_Article_D823_17 = "Article D823-17", + cst_Article_D823_20 = "Article D823-20", + cst_Article_D823_9 = "Article D823-9", + cst_Article_D832_10 = "Article D832-10", + cst_Article_D832_11 = "Article D832-11", + cst_Article_D832_14 = "Article D832-14", + cst_Article_D832_15 = "Article D832-15", + cst_Article_D832_17 = "Article D832-17", + cst_Article_D832_18 = "Article D832-18", + cst_Article_D832_24 = "Article D832-24", + cst_Article_D832_25 = "Article D832-25", + cst_Article_D832_26 = "Article D832-26", + cst_Article_D832_27 = "Article D832-27", + cst_Article_D842_1 = "Article D842-1", + cst_Article_D842_11 = "Article D842-11", + cst_Article_D842_12 = "Article D842-12", + cst_Article_D842_15 = "Article D842-15", + cst_Article_D842_17 = "Article D842-17", + cst_Article_D842_4 = "Article D842-4", + cst_Article_D842_6 = "Article D842-6", + cst_Article_D842_9 = "Article D842-9", + cst_Article_D861_8 = "Article D861-8", + cst_Article_D862_7 = "Article D862-7", + cst_Article_D863_7 = "Article D863-7", + cst_Article_L161_17_2 = "Article L161-17-2", + cst_Article_L512_3 = "Article L512-3", + cst_Article_L822_2 = "Article L822-2", + cst_Article_L822_3 = "Article L822-3", + cst_Article_L822_4 = "Article L822-4", + cst_Article_L822_5 = "Article L822-5", + cst_Article_L823_1 = "Article L823-1", + cst_Article_L831_1 = "Article L831-1", + cst_Article_L831_2 = "Article L831-2", + cst_Article_L832_3 = "Article L832-3", + cst_Article_L841_1 = "Article L841-1", + cst_Article_L841_2 = "Article L841-2", + cst_Article_L861_5 = "Article L861-5", + cst_Article_L861_6 = "Article L861-6", + cst_Article_L862_3 = "Article L862-3", + cst_Article_R512_2 = "Article R512-2", + cst_Article_R822_1 = "Article R822-1", + cst_Article_R822_2 = "Article R822-2", + cst_Article_R822_22 = "Article R822-22", + cst_Article_R822_25 = "Article R822-25", + cst_Article_R822_7 = "Article R822-7", + cst_Article_R823_4 = "Article R823-4", + cst_Article_R824_1 = "Article R824-1", + cst_Article_R824_2 = "Article R824-2", + cst_Article_R842_14 = "Article R842-14", + cst_Article_R842_5 = "Article R842-5", + cst_Article_R844_4 = "Article R844-4", + cst_Article_R861_5 = "Article R861-5", + cst_Article_R862_2 = "Article R862-2", + cst_Article_premier = "Article premier", + cst_Autre$2 = "Autre", + cst_BaseMensuelleAllocationsFa = "BaseMensuelleAllocationsFamiliales", + cst_Calcul_des_contributions_s = + "Calcul des contributions sociales s'appliquant aux aides personnelles au logement", + cst_Calcul_du_montant_de_l_all = + "Calcul du montant de l'allocation logement", + cst_CalculAllocationLogement = "CalculAllocationLogement", + cst_CalculAllocationLogementFo = "CalculAllocationLogementFoyer", + cst_CalculAllocationLogementLo = "CalculAllocationLogementLocatif", + cst_CalculNombrePartLogementFo = "CalculNombrePartLogementFoyer", + cst_Calculette_globale = "Calculette globale", + cst_CalculetteAidesAuLogement = "CalculetteAidesAuLogement", + cst_Chapitre_1er_Dispositions_ = + "Chapitre 1er : Dispositions relatives aux prestations", + cst_Chapitre_2_Champ_d_applica = "Chapitre 2 : Champ d'application", + cst_Chapitre_2_Champ_d_applica$0 = "Chapitre 2 : Champ d'application.", + cst_Chapitre_II_Des_contributi = + "Chapitre II : Des contributions pour le remboursement de la dette sociale.", + cst_Chapitre_II_Dispositions_a = + "Chapitre II : Dispositions applicables aux ressources", + cst_Chapitre_III_Calcul_des_ai = + "Chapitre III : Calcul des aides personnelles au logement en secteur locatif", + cst_Chapitre_III_Saint_Pierre_ = "Chapitre III : Saint-Pierre-et-Miquelon", + cst_Chapitre_IV_Calcul_des_all = + "Chapitre IV : Calcul des allocations de logement en secteur accession", + cst_Chapitre_IV_Conditions_de_ = "Chapitre IV : Conditions de peuplement", + cst_Chapitre_IX_Calcul_des_all = + "Chapitre IX : Calcul des allocations de logement en outre-mer", + cst_Chapitre_Ier_Champ_d_appli = "Chapitre Ier : Champ d'application", + cst_Chapitre_VII_Calcul_des_al = + "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer", + cst_Code_de_la_construction_et = + "Code de la construction et de l'habitation", + cst_ContributionsSocialesAides = + "ContributionsSocialesAidesPersonnelleLogement", + cst_Demandeur$0 = "Demandeur", + cst_EffectiveEtPermanente$1 = "EffectiveEtPermanente", + cst_Infini$1 = "Infini", + cst_Livre_VIII_Aides_personnel = + "Livre VIII : Aides personnelles au logement", + cst_Location$0 = "Location", + cst_LogementFoyer$0 = "LogementFoyer", + cst_Montant_de_la_base_mensuel = + "Montant de la base mensuelle des allocations familiales", + cst_Montant_du_salaire_minimum = + "Montant du salaire minimum de croissance", + cst_Non$2 = "Non", + cst_Oui$1 = "Oui", + cst_OuvertureDroitsRetraite = "OuvertureDroitsRetraite", + cst_Paragraphe_2_Ouverture_du_ = + "Paragraphe 2 : Ouverture du droit et liquidation.", + cst_PasDeTravaux$1 = "PasDeTravaux", + cst_Prise_en_compte_des_ressou = + "Prise en compte des ressources pour les aides personnelles au logement", + cst_Prologue = "Prologue", + cst_Prologue_aides_au_logement = "Prologue : aides au logement", + cst_Prologue_prestations_famil = "Prologue : prestations familiales", + cst_RessourcesAidesPersonnelle = "RessourcesAidesPersonnelleLogement", + cst_Revenu$1 = "Revenu", + cst_Secteur_locatif = "Secteur locatif", + cst_Secteur_logement_foyer = "Secteur logement-foyer", + cst_Section_1_Calcul_liquidati = + "Section 1 : Calcul, liquidation et versement des aides", + cst_Section_1_Secteur_locatif_ = "Section 1 : Secteur locatif ordinaire", + cst_Section_2_Allocations_de_l = "Section 2 : Allocations de logement", + cst_Section_2_Conditions_relat = + "Section 2 : Conditions relatives aux ressources", + cst_Section_2_Dispositions_com = + "Section 2 : Dispositions communes aux aides personnelles au logement", + cst_Section_3_Conditions_relat = + "Section 3 : Conditions relatives au logement", + cst_Section_3_Logements_foyers = "Section 3 : Logements-foyers", + cst_Section_4_Allocations_de_l = "Section 4 : Allocations de logement", + cst_Section_I_Dispositions_com = + "Section I : Dispositions communes aux aides personnelles au logement", + cst_Section_II_Dispositions_co = + "Section II : Dispositions communes aux aides personnelles au logement", + cst_Section_III_Allocations_de = "Section III : Allocations de logement", + cst_Smic = "Smic", + cst_Sous_section_2_Calcul_de_l = + "Sous-section 2 : Calcul de l'aide en secteur locatif", + cst_Sous_section_2_Principes_d = + "Sous-section 2 : Principes de neutralisation et d'abattement", + cst_Sous_section_4_Assurance_v = "Sous-section 4 : Assurance vieillesse", + cst_Sous_section_4_Prise_en_co = + "Sous-section 4 : Prise en compte du patrimoine", + cst_Titre_II_Dispositions_comm = + "Titre II : Dispositions communes aux aides personnelles au logement", + cst_Titre_III_Titre_III_Dispos = + "Titre III: Titre III : Dispositions communes relatives au financement", + cst_Titre_IV_Allocations_de_Lo = "Titre IV : Allocations de Logement", + cst_Titre_IV_Allocations_de_lo = "Titre IV : Allocations de logement", + cst_Tous_secteurs = "Tous secteurs", + cst_aide_finale$0 = "aide_finale", + cst_aide_finale_formule$9 = "aide_finale_formule", + cst_bas$1 = "bas", + cst_base_mensuelle_allocations$0 = "base_mensuelle_allocations_familiales", + cst_base_mensuelle_allocations = + "base_mensuelle_allocations_familiales.date_courante", + cst_brut_horaire$0 = "brut_horaire", + cst_calcul_allocation_logement = "calcul_allocation_logement", + cst_calcul_apl_locatif = "calcul_apl_locatif", + cst_calcul_apl_logement_foyer = "calcul_apl_logement_foyer", + cst_calcul_apl_logement_foyer_$0 = + "calcul_apl_logement_foyer.condition_2_du_832_25", + cst_calcul_apl_logement_foyer_$2 = + "calcul_apl_logement_foyer.date_conventionnement", + cst_calcul_apl_logement_foyer_$7 = + "calcul_apl_logement_foyer.date_courante", + cst_calcul_apl_logement_foyer_$8 = "calcul_apl_logement_foyer.redevance", + cst_calcul_apl_logement_foyer_$5 = + "calcul_apl_logement_foyer.situation_familiale_calcul_apl", + cst_calcul_apl_logement_foyer_$1 = + "calcul_apl_logement_foyer.type_logement_foyer", + cst_calcul_apl_logement_foyer_$6 = "calcul_apl_logement_foyer.zone", + cst_calcul_nombre_parts = "calcul_nombre_parts", + cst_calcul_nombre_parts_condit = + "calcul_nombre_parts.condition_2_du_832_25", + cst_calcul_nombre_parts_situat = + "calcul_nombre_parts.situation_familiale_calcul_apl", + cst_calculette = "calculette", + cst_coefficient_multiplicateur$0 = "coefficient_multiplicateur_d832_25", + cst_coefficient_prise_en_charg$3 = "coefficient_prise_en_charge", + cst_coefficient_r_d832_25$0 = "coefficient_r_d832_25", + cst_colocation_in$1 = "colocation_in", + cst_condition_2_du_832_25_in$2 = "condition_2_du_832_25_in", + cst_condition_2_r823_4$0 = "condition_2_r823_4", + cst_contributions_sociales = "contributions_sociales", + cst_contributions_sociales_dat = "contributions_sociales.date_courante", + cst_date_conventionnement_in$1 = "date_conventionnement_in", + cst_date_courante$1 = "date_courante", + cst_date_courante_in$21 = "date_courante_in", + cst_date_de_naissance$1 = "date_de_naissance", + cst_date_naissance$1 = "date_naissance", + cst_date_naissance_in$1 = "date_naissance_in", + cst_demandeur_in$5 = "demandeur_in", + cst_direct = "direct", + cst_droit_ouvert$0 = "droit_ouvert", + cst_examples_aides_logement_ba = + "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr", + cst_examples_aides_logement_pr$4 = + "examples/aides_logement/../prestations_familiales/../smic/../prologue_france/prologue.catala_fr", + cst_examples_aides_logement_pr$3 = + "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr", + cst_examples_aides_logement_pr$1 = + "examples/aides_logement/../prestations_familiales/prologue.catala_fr", + cst_examples_aides_logement_ar$0 = + "examples/aides_logement/archives.catala_fr", + cst_examples_aides_logement_ar = + "examples/aides_logement/arrete_2019-09-27.catala_fr", + cst_examples_aides_logement_au = + "examples/aides_logement/autres_sources.catala_fr", + cst_examples_aides_logement_co = + "examples/aides_logement/code_construction_legislatif.catala_fr", + cst_examples_aides_logement_co$0 = + "examples/aides_logement/code_construction_reglementaire.catala_fr", + cst_examples_aides_logement_pr = + "examples/aides_logement/prologue.catala_fr", + cst_haut$1 = "haut", + cst_identifiant$1 = "identifiant", + cst_input = "input", + cst_input0 = "input0", + cst_input1 = "input1", + cst_logement_est_chambre_in$1 = "logement_est_chambre_in", + cst_loyer_minimal$0 = "loyer_minimal", + cst_mode_occupation_in$3 = "mode_occupation_in", + cst_montant$2 = "montant", + cst_montant_forfaitaire_charge$1 = "montant_forfaitaire_charges", + cst_montant_forfaitaire_charge$2 = "montant_forfaitaire_charges_d823_16", + cst_multiplicateur_majoration_ = "multiplicateur_majoration_charges", + cst_n_nombre_parts_d832_11$0 = "n_nombre_parts_d832_11", + cst_n_nombre_parts_d832_25$1 = "n_nombre_parts_d832_25", + cst_n_nombre_parts_d832_25_in$1 = "n_nombre_parts_d832_25_in", + cst_obligation_scolaire$1 = "obligation_scolaire", + cst_output = "output", + cst_ouverture_droits_retraite = "ouverture_droits_retraite", + cst_participation_minimale$0 = "participation_minimale", + cst_participation_personnelle$0 = "participation_personnelle", + cst_plafond_loyer_d823_16_2$0 = "plafond_loyer_d823_16_2", + cst_prestations_familiales = "prestations_familiales", + cst_prestations_familiales_dat = "prestations_familiales.date_courante", + cst_prestations_familiales_pre = + "prestations_familiales.prestation_courante", + cst_redevance_in$1 = "redevance_in", + cst_ressources$1 = "ressources", + cst_ressources_prises_en_compt$0 = "ressources_prises_en_compte", + cst_situation_familiale_calcul$7 = "situation_familiale_calcul_apl", + cst_situation_familiale_calcul$8 = "situation_familiale_calcul_apl_in", + cst_situation_familiale_in$2 = "situation_familiale_in", + cst_situation_r822_11_13_17_in$1 = "situation_r822_11_13_17_in", + cst_smic = "smic", + cst_sous_calcul_traitement = "sous_calcul_traitement", + cst_taux$1 = "taux", + cst_taux_composition_familiale$0 = "taux_composition_familiale", + cst_taux_francs_vers_euros = "taux_francs_vers_euros", + cst_traitement_aide_finale$9 = "traitement_aide_finale", + cst_traitement_aide_finale_aba = "traitement_aide_finale_abattement", + cst_traitement_aide_finale_con = + "traitement_aide_finale_contributions_sociales_arrondi", + cst_traitement_aide_finale_min = + "traitement_aide_finale_minoration_forfaitaire", + cst_traitement_aide_finale_mon = "traitement_aide_finale_montant_minimal", + cst_traitement_aide_finale_red = "traitement_aide_finale_redevance", + cst_type_aide_in$3 = "type_aide_in", + cst_type_logement_foyer_in$1 = "type_logement_foyer_in", + cst_type_travaux_logement_in$1 = "type_travaux_logement_in", + cst_zone_in$7 = "zone_in", + caml_maybe_attach_backtrace = runtime.caml_maybe_attach_backtrace, + caml_wrap_exception = runtime.caml_wrap_exception; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + function caml_call3(f, a0, a1, a2){ + return (f.l >= 0 ? f.l : f.l = f.length) == 3 + ? f(a0, a1, a2) + : runtime.caml_call_gen(f, [a0, a1, a2]); + } + function caml_call4(f, a0, a1, a2, a3){ + return (f.l >= 0 ? f.l : f.l = f.length) == 4 + ? f(a0, a1, a2, a3) + : runtime.caml_call_gen(f, [a0, a1, a2, a3]); + } + var + global_data = runtime.caml_get_global_data(), + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + TypePret = [0], + _Sy_ = + [0, + cst_examples_aides_logement_au, + 283, + 14, + 283, + 25, + [0, + "Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563", + 0]], + cst_0$353 = cst_0$356, + cst_0$354 = cst_0$356, + cst_0$355 = cst_0$357, + _Su_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Sv_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _Sw_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Sx_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _Sq_ = + [0, + cst_examples_aides_logement_pr, + 1235, + 14, + 1235, + 63, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sm_ = + [0, + cst_examples_aides_logement_pr, + 1266, + 14, + 1266, + 25, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sg_ = + [0, + cst_examples_aides_logement_pr, + 1231, + 5, + 1231, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sc_ = + [0, + cst_examples_aides_logement_pr, + 1228, + 14, + 1228, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R__ = + [0, + cst_examples_aides_logement_pr, + 1226, + 14, + 1226, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R6_ = + [0, + cst_examples_aides_logement_pr, + 1224, + 14, + 1224, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R0_ = + [0, + cst_examples_aides_logement_pr, + 1222, + 14, + 1222, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RW_ = + [0, + cst_examples_aides_logement_pr, + 1220, + 14, + 1220, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RS_ = + [0, + cst_examples_aides_logement_pr, + 1218, + 14, + 1218, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RO_ = + [0, + cst_examples_aides_logement_pr, + 1216, + 14, + 1216, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RK_ = + [0, + cst_examples_aides_logement_pr, + 1237, + 14, + 1237, + 48, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RL_ = + [0, + cst_examples_aides_logement_pr, + 1205, + 11, + 1205, + 45, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RJ_ = + [0, + cst_examples_aides_logement_pr, + 1205, + 11, + 1205, + 45, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RM_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e", 0]], + _RP_ = + [0, + cst_examples_aides_logement_pr, + 1216, + 14, + 1216, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RQ_ = + [0, cst_CalculetteAidesAuLogementG, [0, "calculette.m\xc3\xa9nage", 0]], + _RN_ = + [0, + cst_examples_aides_logement_pr, + 1216, + 14, + 1216, + 31, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RT_ = + [0, + cst_examples_aides_logement_pr, + 1218, + 14, + 1218, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RU_ = [0, cst_CalculetteAidesAuLogementG, [0, "calculette.demandeur", 0]], + _RR_ = + [0, + cst_examples_aides_logement_pr, + 1218, + 14, + 1218, + 34, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RX_ = + [0, + cst_examples_aides_logement_pr, + 1220, + 14, + 1220, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _RY_ = + [0, cst_CalculetteAidesAuLogementG, [0, "calculette.date_courante", 0]], + _RV_ = + [0, + cst_examples_aides_logement_pr, + 1220, + 14, + 1220, + 38, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R1_ = + [0, + cst_examples_aides_logement_pr, + 1222, + 14, + 1222, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R2_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette.ressources_m\xc3\xa9nage_prises_en_compte", 0]], + _RZ_ = + [0, + cst_examples_aides_logement_pr, + 1222, + 14, + 1222, + 59, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R3_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], + _R4_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_calculette, [0, cst_CalculetteAidesAuLogement, 0]]], + _R7_ = + [0, + cst_examples_aides_logement_pr, + 1224, + 14, + 1224, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R8_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage", 0]], + _R5_ = + [0, + cst_examples_aides_logement_pr, + 1224, + 14, + 1224, + 51, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _R$_ = + [0, + cst_examples_aides_logement_pr, + 1226, + 14, + 1226, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sa_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.demandeur", 0]], + _R9_ = + [0, + cst_examples_aides_logement_pr, + 1226, + 14, + 1226, + 54, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sd_ = + [0, + cst_examples_aides_logement_pr, + 1228, + 14, + 1228, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Se_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, "calculette_sans_garde_altern\xc3\xa9e.date_courante", 0]], + _Sb_ = + [0, + cst_examples_aides_logement_pr, + 1228, + 14, + 1228, + 58, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sh_ = + [0, + cst_examples_aides_logement_pr, + 1231, + 5, + 1231, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Si_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + "calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte", + 0]], + _Sf_ = + [0, + cst_examples_aides_logement_pr, + 1231, + 5, + 1231, + 70, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sj_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + cst_calculette_sans_garde_alte, + [0, cst_CalculetteAidesAuLogement, 0]]], + _Sk_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, + cst_calculette_sans_garde_alte, + [0, cst_CalculetteAidesAuLogement, 0]]], + _Sn_ = + [0, + cst_examples_aides_logement_pr, + 1212, + 12, + 1212, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sl_ = + [0, + cst_examples_aides_logement_pr, + 1212, + 12, + 1212, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _So_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_ligibilit$4, 0]], + _Sr_ = + [0, + cst_examples_aides_logement_pr, + 1206, + 11, + 1206, + 60, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Sp_ = + [0, + cst_examples_aides_logement_pr, + 1206, + 11, + 1206, + 60, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _Ss_ = + [0, + cst_CalculetteAidesAuLogementG, + [0, cst_coefficents_enfants_garde_$3, 0]], + _Sz_ = + [0, + cst_examples_aides_logement_pr, + 1213, + 12, + 1213, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _St_ = + [0, + cst_examples_aides_logement_pr, + 1213, + 12, + 1213, + 23, + [0, + cst_Calculette_avec_garde_alte, + [0, cst_Prologue_aides_au_logement, 0]]], + _SA_ = [0, cst_CalculetteAidesAuLogementG, [0, cst_aide_finale$0, 0]], + _RG_ = + [0, + cst_examples_aides_logement_co, + 1121, + 14, + 1121, + 33, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, [0, - function(param) - {function _cti_(param){return 1} - function _ctj_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_mJ_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_mK_,[0],_ctj_,_cti_)}], - _cs2_=caml_call4(Runtime_ocaml_Runtime[63],_mL_,_cs1_,_cs0_,_csZ_)} - catch(_cth_) - {_cth_ = caml_wrap_exception(_cth_); - if(_cth_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mH_]; - throw _cth_} - var - exonere_csg= - caml_call3 - (Runtime_ocaml_Runtime[28],_mM_,Runtime_ocaml_Runtime[12],_cs2_); - try - {var - _cs3_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_005)}, - _cs4_= - function(param) - {var - _ctf_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _ctg_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctf_); - return caml_call2(Runtime_ocaml_Runtime[29],_mO_,_ctg_)}, - _cs5_=caml_call4(Runtime_ocaml_Runtime[63],_mP_,[0],_cs4_,_cs3_)} - catch(_cte_) - {_cte_ = caml_wrap_exception(_cte_); - if(_cte_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mN_]; - throw _cte_} - var - taux_crds= - caml_call3 - (Runtime_ocaml_Runtime[28],_mQ_,Runtime_ocaml_Runtime[15],_cs5_); - function _cs6_(aide_finale) - {try - {var - _cs__= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104],aide_finale,taux_crds)}, - _cs$_= - function(param) - {var - _ctc_=caml_call3(Runtime_ocaml_Runtime[57],2018,9,1), - _ctd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ctc_); - return caml_call2(Runtime_ocaml_Runtime[29],_mS_,_ctd_)}, - _cta_=caml_call4(Runtime_ocaml_Runtime[63],_mT_,[0],_cs$_,_cs__); - return _cta_} - catch(_ctb_) - {_ctb_ = caml_wrap_exception(_ctb_); - if(_ctb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mR_]; - throw _ctb_}} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_mU_,Runtime_ocaml_Runtime[10],_cs6_); - if(! exonere_csg)throw [0,Runtime_ocaml_Runtime[3],_mX_]; - try - {var - _cs7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cs8_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cs7_)} - catch(_cs9_) - {_cs9_ = caml_wrap_exception(_cs9_); - if(_cs9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mV_]; - throw _cs9_} - if(_cs8_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_mW_]} - function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim) - {var - date_courante=calcul_equivalence_loyer_minim[1], - ressources_menage_arrondies=calcul_equivalence_loyer_minim[2], - condition_2_du_832_25=calcul_equivalence_loyer_minim[3], - n_nombre_parts_d832_25=calcul_equivalence_loyer_minim[4]; - try - {var - _crp_= - function(param) - {return condition_2_du_832_25 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_7632) - :caml_call1(Runtime_ocaml_Runtime[31],cst_4557)}, - _crq_= - function(param) - {var - _csX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _csY_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_csX_); - return caml_call2(Runtime_ocaml_Runtime[29],_mZ_,_csY_)}, - _crr_=caml_call4(Runtime_ocaml_Runtime[63],_m0_,[0],_crq_,_crp_)} - catch(_csW_) - {_csW_ = caml_wrap_exception(_csW_); - if(_csW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_mY_]; - throw _csW_} - var - montant_forfaitaire_d832_26= - caml_call3 - (Runtime_ocaml_Runtime[28],_m1_,Runtime_ocaml_Runtime[13],_crr_); - try - {var - _crs_= - function(param) - {var - _csG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_48), - _csH_= - [0,_m3_,caml_call1(Runtime_ocaml_Runtime[31],cst_633129),_csG_], - _csI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_32$1), - _csJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_535744), - _csK_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_633129$0)], - _csJ_, - _csI_], - _csL_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_264), - _csM_=caml_call1(Runtime_ocaml_Runtime[31],cst_389618), - _csN_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_535744$0)], - _csM_, - _csL_], - _csO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_216), - _csP_=caml_call1(Runtime_ocaml_Runtime[31],cst_267871), - _csQ_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_389618$0)], - _csP_, - _csO_], - _csR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_104), - _csS_=caml_call1(Runtime_ocaml_Runtime[31],cst_194810), - _csT_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_267871$0)], - _csS_, - _csR_], - _csU_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_04$0), - _csV_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$67); - return [0, - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_194810$0)], - _csV_, - _csU_], - _csT_, - _csQ_, - _csN_, - _csK_, - _csH_]}, - _crt_= - function(param) - {var - _csE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _csF_=caml_call2(Runtime_ocaml_Runtime[125],date_courante,_csE_); - return caml_call2(Runtime_ocaml_Runtime[29],_m4_,_csF_)}, - _cru_= + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$352 = cst_0$356, + _Ry_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Rz_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _RA_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _RB_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _RC_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _RD_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _RE_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _RF_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Ru_ = + [0, + cst_examples_aides_logement_co, + 1138, + 14, + 1138, + 36, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, [0, - function(param) - {function _csm_(param) - {var - _csr_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_328), - _css_= - [0, - _m5_, - caml_call1(Runtime_ocaml_Runtime[31],cst_409505), - _csr_], - _cst_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_232$0), - _csu_=caml_call1(Runtime_ocaml_Runtime[31],cst_262985), - _csv_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_409505$0)], - _csu_, - _cst_], - _csw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_208), - _csx_=caml_call1(Runtime_ocaml_Runtime[31],cst_204761), - _csy_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_262985$0)], - _csx_, - _csw_], - _csz_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_024), - _csA_=caml_call1(Runtime_ocaml_Runtime[31],cst_142303), - _csB_= - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_204761$0)], - _csA_, - _csz_], - _csC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$68), - _csD_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$69); - return [0, - [0, - [0,caml_call1(Runtime_ocaml_Runtime[31],cst_142303$0)], - _csD_, - _csC_], - _csB_, - _csy_, - _csv_, - _css_]} - function _csn_(param) - {var - _cso_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _csp_= - caml_call2(Runtime_ocaml_Runtime[125],date_courante,_cso_), - _csq_= - caml_call2 - (Runtime_ocaml_Runtime[83],_csp_,condition_2_du_832_25); - return caml_call2(Runtime_ocaml_Runtime[29],_m6_,_csq_)} - return caml_call4(Runtime_ocaml_Runtime[63],_m7_,[0],_csn_,_csm_)}], - _crv_=caml_call4(Runtime_ocaml_Runtime[63],_m8_,_cru_,_crt_,_crs_)} - catch(_csl_) - {_csl_ = caml_wrap_exception(_csl_); - if(_csl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_m2_]; - throw _csl_} - var - _crw_=caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu), - tranches_revenus_d832_26= - caml_call3(Runtime_ocaml_Runtime[28],_m9_,_crw_,_crv_); - try - {var - _crx_= - function(param) - {function _cse_(tranche) - {var - _csf_=tranche[3], - _csg_=caml_call1(Runtime_ocaml_Runtime[70],tranche[2]), - _csh_= - caml_call2 - (Runtime_ocaml_Runtime[103],_csg_,n_nombre_parts_d832_25), - _csi_=tranche[1]; - if(0 === _csi_[0]) - var - tranche_haut=_csi_[1], - _csj_=caml_call1(Runtime_ocaml_Runtime[70],tranche_haut), - _csk_= - [0, - caml_call2 - (Runtime_ocaml_Runtime[103],_csj_,n_nombre_parts_d832_25)]; - else - var _csk_=_m$_; - return [0,_csk_,_csh_,_csf_]} - return caml_call2 - (Runtime_ocaml_Runtime[87],_cse_,tranches_revenus_d832_26)}, - _cry_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_na_,1)}, - _crz_=caml_call4(Runtime_ocaml_Runtime[63],_nb_,[0],_cry_,_crx_)} - catch(_csd_) - {_csd_ = caml_wrap_exception(_csd_); - if(_csd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_m__]; - throw _csd_} - var - _crA_= - caml_call1(Runtime_ocaml_Runtime[18],embed_tranche_revenu_decimal), - tranches_revenus_d832_26_multi= - caml_call3(Runtime_ocaml_Runtime[28],_nc_,_crA_,_crz_); - try - {var - _crB_= - function(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - _crY_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$11), - _crZ_= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26), - _cr0_= + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Rm_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Rn_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Ro_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Rp_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Rq_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Rr_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Rs_ = + [0, + cst_CalculAllocationLogement, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Rt_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Rv_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 12, + 1136, + 34, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rl_ = + [0, + cst_examples_aides_logement_pr, + 1136, + 12, + 1136, + 34, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Ri_ = + [0, + cst_examples_aides_logement_co, + 1100, + 14, + 1100, + 25, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Re_ = + [0, + cst_examples_aides_logement_pr, + 1186, + 14, + 1186, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q__ = + [0, + cst_examples_aides_logement_pr, + 1181, + 14, + 1181, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q6_ = + [0, + cst_examples_aides_logement_pr, + 1177, + 14, + 1177, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q2_ = + [0, + cst_examples_aides_logement_pr, + 1173, + 14, + 1173, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QY_ = + [0, + cst_examples_aides_logement_pr, + 1167, + 5, + 1167, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QU_ = + [0, + cst_examples_aides_logement_pr, + 1162, + 14, + 1162, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QQ_ = + [0, + cst_examples_aides_logement_pr, + 1158, + 14, + 1158, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QM_ = + [0, + cst_examples_aides_logement_co, + 1109, + 14, + 1109, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _QL_ = [0, 0], + _QH_ = + [0, + cst_examples_aides_logement_pr, + 1154, + 14, + 1154, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QB_ = + [0, + cst_examples_aides_logement_pr, + 1183, + 14, + 1183, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qx_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Qu_ = [2, 0], + _Qv_ = [1, 0], + _Qw_ = [2, 0], + _Qq_ = + [0, + cst_examples_aides_logement_pr, + 1179, + 14, + 1179, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qm_ = + [0, + cst_examples_aides_logement_pr, + 1175, + 14, + 1175, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qi_ = + [0, + cst_examples_aides_logement_pr, + 1171, + 14, + 1171, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qe_ = + [0, + cst_examples_aides_logement_pr, + 1164, + 14, + 1164, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qa_ = + [0, + cst_examples_aides_logement_pr, + 1160, + 14, + 1160, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P8_ = + [0, + cst_examples_aides_logement_pr, + 1156, + 14, + 1156, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P2_ = + [0, + cst_examples_aides_logement_pr, + 1150, + 14, + 1150, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PY_ = + [0, + cst_examples_aides_logement_pr, + 1146, + 14, + 1146, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PU_ = + [0, + cst_examples_aides_logement_pr, + 1142, + 14, + 1142, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PO_ = + [0, + cst_examples_aides_logement_co, + 1095, + 5, + 1095, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PK_ = + [0, + cst_examples_aides_logement_pr, + 1148, + 14, + 1148, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PG_ = + [0, + cst_examples_aides_logement_pr, + 1144, + 14, + 1144, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PC_ = + [0, + cst_examples_aides_logement_pr, + 1152, + 14, + 1152, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PD_ = + [0, + cst_examples_aides_logement_pr, + 1152, + 14, + 1152, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PE_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante", 0]], + _PB_ = + [0, + cst_examples_aides_logement_pr, + 1152, + 14, + 1152, + 59, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PH_ = + [0, + cst_examples_aides_logement_pr, + 1144, + 14, + 1144, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PI_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage", 0]], + _PF_ = + [0, + cst_examples_aides_logement_pr, + 1144, + 14, + 1144, + 52, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PL_ = + [0, + cst_examples_aides_logement_pr, + 1148, + 14, + 1148, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PM_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur", 0]], + _PJ_ = + [0, + cst_examples_aides_logement_pr, + 1148, + 14, + 1148, + 55, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PP_ = + [0, + cst_examples_aides_logement_co, + 1095, + 5, + 1095, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PQ_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement", + 0]], + _PN_ = + [0, + cst_examples_aides_logement_co, + 1095, + 5, + 1095, + 74, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _PR_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_allocation_logem, + [0, cst_ligibilit_AllocationLogeme, 0]]], + _PS_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_allocation_logem, + [0, cst_ligibilit_AllocationLogeme, 0]]], + _PV_ = + [0, + cst_examples_aides_logement_pr, + 1142, + 14, + 1142, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PW_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage", + 0]], + _PT_ = + [0, + cst_examples_aides_logement_pr, + 1142, + 14, + 1142, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _PZ_ = + [0, + cst_examples_aides_logement_pr, + 1146, + 14, + 1146, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P0_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur", + 0]], + _PX_ = + [0, + cst_examples_aides_logement_pr, + 1146, + 14, + 1146, + 63, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P3_ = + [0, + cst_examples_aides_logement_pr, + 1150, + 14, + 1150, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P4_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante", + 0]], + _P1_ = + [0, + cst_examples_aides_logement_pr, + 1150, + 14, + 1150, + 67, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P5_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_aide_personnalis, + [0, cst_ligibilit_AidePersonnalis_, 0]]], + _P6_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_ligibilit_aide_personnalis, + [0, cst_ligibilit_AidePersonnalis_, 0]]], + _P9_ = + [0, + cst_examples_aides_logement_pr, + 1156, + 14, + 1156, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _P__ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.mode_occupation", 0]], + _P7_ = + [0, + cst_examples_aides_logement_pr, + 1156, + 14, + 1156, + 56, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qb_ = + [0, + cst_examples_aides_logement_pr, + 1160, + 14, + 1160, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qc_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi", + 0]], + _P$_ = + [0, + cst_examples_aides_logement_pr, + 1160, + 14, + 1160, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qf_ = + [0, + cst_examples_aides_logement_pr, + 1164, + 14, + 1164, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qg_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.situation_familiale", 0]], + _Qd_ = + [0, + cst_examples_aides_logement_pr, + 1164, + 14, + 1164, + 60, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qj_ = + [0, + cst_examples_aides_logement_pr, + 1171, + 14, + 1171, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qk_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge", 0]], + _Qh_ = + [0, + cst_examples_aides_logement_pr, + 1171, + 14, + 1171, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qn_ = + [0, + cst_examples_aides_logement_pr, + 1175, + 14, + 1175, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qo_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.zone", 0]], + _Ql_ = + [0, + cst_examples_aides_logement_pr, + 1175, + 14, + 1175, + 45, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qr_ = + [0, + cst_examples_aides_logement_pr, + 1179, + 14, + 1179, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qs_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.date_courante", 0]], + _Qp_ = + [0, + cst_examples_aides_logement_pr, + 1179, + 14, + 1179, + 54, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Qy_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Qz_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.type_aide", 0]], + _Qt_ = + [0, + cst_examples_aides_logement_co, + 1111, + 14, + 1111, + 50, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _QC_ = + [0, + cst_examples_aides_logement_pr, + 1183, + 14, + 1183, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QD_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_allocation_logement.r\xc3\xa9sidence", 0]], + _QA_ = + [0, + cst_examples_aides_logement_pr, + 1183, + 14, + 1183, + 50, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QE_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_allocation_logement, + [0, cst_CalculAllocationLogement, 0]]], + _QF_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_allocation_logement, + [0, cst_CalculAllocationLogement, 0]]], + _QI_ = + [0, + cst_examples_aides_logement_pr, + 1154, + 14, + 1154, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QJ_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation", 0]], + _QG_ = + [0, + cst_examples_aides_logement_pr, + 1154, + 14, + 1154, + 64, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QN_ = + [0, + cst_examples_aides_logement_co, + 1109, + 14, + 1109, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _QO_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.type_aide", 0]], + _QK_ = + [0, + cst_examples_aides_logement_co, + 1109, + 14, + 1109, + 58, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _QR_ = + [0, + cst_examples_aides_logement_pr, + 1158, + 14, + 1158, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QS_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi", + 0]], + _QP_ = + [0, + cst_examples_aides_logement_pr, + 1158, + 14, + 1158, + 66, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QV_ = + [0, + cst_examples_aides_logement_pr, + 1162, + 14, + 1162, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QW_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale", 0]], + _QT_ = + [0, + cst_examples_aides_logement_pr, + 1162, + 14, + 1162, + 68, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _QZ_ = + [0, + cst_examples_aides_logement_pr, + 1167, + 5, + 1167, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q0_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + "calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge", + 0]], + _QX_ = + [0, + cst_examples_aides_logement_pr, + 1167, + 5, + 1167, + 65, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q3_ = + [0, + cst_examples_aides_logement_pr, + 1173, + 14, + 1173, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q4_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.zone", 0]], + _Q1_ = + [0, + cst_examples_aides_logement_pr, + 1173, + 14, + 1173, + 53, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q7_ = + [0, + cst_examples_aides_logement_pr, + 1177, + 14, + 1177, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q8_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.date_courante", 0]], + _Q5_ = + [0, + cst_examples_aides_logement_pr, + 1177, + 14, + 1177, + 62, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Q$_ = + [0, + cst_examples_aides_logement_pr, + 1181, + 14, + 1181, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Ra_ = + [0, + cst_CalculetteAidesAuLogement, + [0, "calcul_aide_personnalis\xc3\xa9e_logement.r\xc3\xa9sidence", 0]], + _Q9_ = + [0, + cst_examples_aides_logement_pr, + 1181, + 14, + 1181, + 58, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rb_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_aide_personnalis_e_, + [0, cst_CalculAidePersonnalis_eLog, 0]]], + _Rc_ = + [0, + cst_CalculetteAidesAuLogement, + [0, + cst_calcul_aide_personnalis_e_, + [0, cst_CalculAidePersonnalis_eLog, 0]]], + _Rf_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 61, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rd_ = + [0, + cst_examples_aides_logement_pr, + 1138, + 12, + 1138, + 61, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rg_ = + [0, + cst_CalculetteAidesAuLogement, + [0, cst_coefficents_enfants_garde_$3, 0]], + _Rj_ = + [0, + cst_examples_aides_logement_pr, + 1134, + 12, + 1134, + 23, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rh_ = + [0, + cst_examples_aides_logement_pr, + 1134, + 12, + 1134, + 23, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rk_ = [0, cst_CalculetteAidesAuLogement, [0, cst_ligibilit$4, 0]], + _Rw_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_traitement_aide_finale$9, 0]], + _RH_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 12, + 1135, + 31, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _Rx_ = + [0, + cst_examples_aides_logement_pr, + 1135, + 12, + 1135, + 31, + [0, cst_Calculette_globale, [0, cst_Prologue_aides_au_logement, 0]]], + _RI_ = + [0, cst_CalculetteAidesAuLogement, [0, cst_aide_finale_formule$9, 0]], + _Pw_ = + [0, + cst_examples_aides_logement_co, + 1276, + 5, + 1277, + 54, + [0, + "Article L860-3", + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Px_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pv_ = + [0, + cst_examples_aides_logement_co, + 627, + 5, + 629, + 36, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Py_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pu_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pn_ = + [0, + cst_examples_aides_logement_co, + 777, + 5, + 790, + 30, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Po_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pm_ = + [0, + cst_examples_aides_logement_co, + 758, + 5, + 763, + 30, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Pp_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pl_ = + [0, + cst_examples_aides_logement_co, + 753, + 31, + 753, + 54, + [0, + cst_Article_L831_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Pq_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pk_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pg_ = + [0, + cst_examples_aides_logement_pr, + 413, + 14, + 413, + 56, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pc_ = + [0, + cst_examples_aides_logement_pr, + 415, + 14, + 415, + 63, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O8_ = + [0, + cst_examples_aides_logement_co, + 1417, + 5, + 1420, + 30, + [0, + "Article L861-5-1", + [0, + "Section 3 : Aide personnalis\xc3\xa9e au logement", + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _O9_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O7_ = + [0, + cst_examples_aides_logement_co, + 721, + 5, + 724, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _O__ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O1_ = + [0, + cst_examples_aides_logement_co$0, + 3692, + 5, + 3697, + 30, + [0, + "Article R832-21", + [0, + "Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif", + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _O2_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OX_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, [0, cst_input0, 0]]], + _OY_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _OZ_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, [0, cst_output, 0]]], + _O0_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _OW_ = + [0, + cst_examples_aides_logement_co, + 738, + 5, + 741, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _O3_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OV_ = + [0, + cst_examples_aides_logement_co, + 677, + 5, + 686, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _O4_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OR_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_input0, 0]]], + _OS_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _OT_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, [0, cst_output, 0]]], + _OU_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _OQ_ = + [0, + cst_examples_aides_logement_co, + 656, + 5, + 659, + 30, + [0, + cst_Article_L831_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _O5_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _O6_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OP_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OK_ = + [0, + cst_examples_aides_logement_ar, + 4655, + 6, + 4655, + 43, + [0, + "Article 49", + [0, + "Chapitre XI : Dispositions communes", + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _OL_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OJ_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OD_ = + [0, + cst_examples_aides_logement_co$0, + 5504, + 5, + 5505, + 53, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _OE_ = + [0, + cst_examples_aides_logement_co$0, + 5503, + 14, + 5503, + 66, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _OF_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, + "\xc3\xa9ligibilit\xc3\xa9_commune.date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", + 0]], + _OA_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ow_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Os_ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oo_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Op_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _On_ = + [0, + cst_examples_aides_logement_pr, + 398, + 11, + 398, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oh_ = + [0, + cst_examples_aides_logement_co$0, + 3020, + 5, + 3023, + 41, + [0, + "Article R832-7", + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Oi_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Og_ = + [0, + cst_examples_aides_logement_co$0, + 2985, + 5, + 2987, + 42, + [0, + "Article R832-5", + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Oj_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ok_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Of_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ol_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oe_ = + [0, + cst_examples_aides_logement_pr, + 397, + 11, + 397, + 41, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Om_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831$0, 0]], + _Oq_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_caract_ristiques_pr_t_l831, 0]], + _Ot_ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ou_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_m_nage, 0]], + _Or_ = + [0, + cst_examples_aides_logement_pr, + 409, + 14, + 409, + 40, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ox_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Oy_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_demandeu, 0]], + _Ov_ = + [0, + cst_examples_aides_logement_pr, + 410, + 14, + 410, + 43, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OB_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OC_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune_date_cou, 0]], + _Oz_ = + [0, + cst_examples_aides_logement_pr, + 411, + 14, + 411, + 47, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OG_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _OH_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _OM_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OI_ = + [0, + cst_examples_aides_logement_pr, + 394, + 11, + 394, + 53, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ON_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, + "logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2", + 0]], + _O$_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _OO_ = + [0, + cst_examples_aides_logement_pr, + 395, + 11, + 395, + 38, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pa_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, "condition_logement_bailleur", 0]], + _Pd_ = + [0, + cst_examples_aides_logement_pr, + 404, + 12, + 404, + 61, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pb_ = + [0, + cst_examples_aides_logement_pr, + 404, + 12, + 404, + 61, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pe_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_coefficents_enfants_garde_$3, 0]], + _Ph_ = + [0, + cst_examples_aides_logement_pr, + 403, + 12, + 403, + 54, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pf_ = + [0, + cst_examples_aides_logement_pr, + 403, + 12, + 403, + 54, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pi_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, cst_nombre_personnes_charge_pr$2, 0]], + _Pr_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pj_ = + [0, + cst_examples_aides_logement_pr, + 396, + 11, + 396, + 34, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ps_ = + [0, + cst_ligibilit_AidePersonnalis_, + [0, "condition_logement_pr\xc3\xaat", 0]], + _Pz_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Pt_ = + [0, + cst_examples_aides_logement_pr, + 402, + 12, + 402, + 23, + [0, + cst_ligibilit_l_aide_personnal, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _PA_ = [0, cst_ligibilit_AidePersonnalis_, [0, cst_ligibilit$4, 0]], + _N__ = + [0, + cst_examples_aides_logement_co, + 1636, + 5, + 1637, + 79, + [0, + "Article L861-8", + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _N9_ = [0, 0], + _N$_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _N8_ = + [0, + cst_examples_aides_logement_co, + 1602, + 5, + 1611, + 28, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _N7_ = [0, 0], + _Oa_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _N5_ = + [0, + cst_examples_aides_logement_co, + 1179, + 5, + 1179, + 73, + [0, + "Article L841-3", + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _N4_ = [2, 0], + _N6_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _N3_ = + [0, + cst_examples_aides_logement_co, + 1193, + 5, + 1196, + 28, + [0, + "Article L841-4", + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _N2_ = [0, 0], + _Ob_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _N1_ = + [0, + cst_examples_aides_logement_co, + 1079, + 29, + 1079, + 40, + [0, + cst_Article_L841_2, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NX_ = [0, 0], + _NY_ = [0, 0], + _NZ_ = [1, 0], + _N0_ = [2, 0], + _NI_ = + [0, + cst_examples_aides_logement_co, + 1820, + 5, + 1820, + 66, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _NJ_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NB_ = [2, 0], + _NG_ = [0, 0], + _NC_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _ND_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _NE_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _NF_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$253 = cst_1$254, + _NH_ = + [0, + cst_examples_aides_logement_co, + 1781, + 5, + 1802, + 9, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _NK_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NA_ = + [0, + cst_examples_aides_logement_co, + 1526, + 5, + 1526, + 66, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _NL_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nt_ = [2, 0], + _Ny_ = [0, 0], + _Nu_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Nv_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Nw_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Nx_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$252 = cst_1$254, + _Nz_ = + [0, + cst_examples_aides_logement_co, + 1484, + 5, + 1505, + 9, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _NM_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$351 = cst_0$356, + _Ns_ = + [0, + cst_examples_aides_logement_co, + 1047, + 5, + 1052, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NN_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1$251 = cst_1$254, + _Nr_ = + [0, + cst_examples_aides_logement_co, + 1022, + 5, + 1033, + 13, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NO_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nm_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], + _Nn_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _No_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], + _Np_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + cst_1$250 = cst_1$254, + _Nq_ = + [0, + cst_examples_aides_logement_co, + 1004, + 5, + 1006, + 9, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NP_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Nf_ = [2, 0], + _Nk_ = [0, 0], + _Ng_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Nh_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Ni_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Nj_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_0$350 = cst_0$356, + _Nl_ = + [0, + cst_examples_aides_logement_co, + 964, + 5, + 990, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NQ_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M__ = [2, 0], + _Nd_ = [0, 0], + _M$_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _Na_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _Nb_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _Nc_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + cst_1$249 = cst_1$254, + _Ne_ = + [0, + cst_examples_aides_logement_co, + 931, + 5, + 953, + 8, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NR_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M5_ = [4, 0], + _M6_ = [3, 0], + _M7_ = [1, 0], + _M8_ = [0, 0], + _M9_ = + [0, + cst_examples_aides_logement_co, + 909, + 5, + 915, + 6, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _NS_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NT_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M4_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M0_ = + [0, + cst_examples_aides_logement_co, + 877, + 14, + 877, + 25, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _MY_ = [0, 0], + _MZ_ = [2, 0], + _MU_ = + [0, + cst_examples_aides_logement_pr, + 468, + 14, + 468, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MQ_ = + [0, + cst_examples_aides_logement_pr, + 470, + 14, + 470, + 63, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MK_ = + [0, + cst_examples_aides_logement_co$0, + 4816, + 9, + 4816, + 55, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ML_ = + [0, + cst_examples_aides_logement_co$0, + 4816, + 9, + 4816, + 55, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _MM_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface", 0]], + _MH_ = + [0, + cst_examples_aides_logement_co$0, + 4815, + 9, + 4815, + 68, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _MI_ = + [0, + cst_examples_aides_logement_co$0, + 4815, + 9, + 4815, + 68, + [0, + cst_Article_R842_14, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _MJ_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, + "\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale", + 0]], + _ME_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MA_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mw_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mn_ = + [0, + cst_examples_aides_logement_co$0, + 4410, + 5, + 4415, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Mo_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mm_ = + [0, + cst_examples_aides_logement_co$0, + 4393, + 5, + 4398, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Mp_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ml_ = + [0, + cst_examples_aides_logement_co$0, + 4376, + 5, + 4383, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Mq_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mr_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mk_ = + [0, + cst_examples_aides_logement_co$0, + 4346, + 5, + 4348, + 28, + [0, + cst_Article_R842_5, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ms_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mj_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Md_ = + [0, + cst_examples_aides_logement_co, + 905, + 9, + 905, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Me_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ma_ = + [0, + cst_examples_aides_logement_co, + 1758, + 9, + 1758, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Mb_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L$_ = + [0, + cst_examples_aides_logement_co, + 1446, + 9, + 1446, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Mc_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mf_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L__ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L4_ = + [0, + cst_examples_aides_logement_co, + 927, + 9, + 927, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _L5_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L1_ = + [0, + cst_examples_aides_logement_co, + 1759, + 9, + 1759, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _L2_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L0_ = + [0, + cst_examples_aides_logement_co, + 1447, + 9, + 1447, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _L3_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L6_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LZ_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LT_ = + [0, + cst_examples_aides_logement_co, + 1043, + 9, + 1043, + 29, + [0, + cst_Article_L841_1, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_IV_Allocations_de_lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _LU_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LQ_ = + [0, + cst_examples_aides_logement_co, + 1760, + 9, + 1760, + 29, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _LR_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LP_ = + [0, + cst_examples_aides_logement_co, + 1448, + 9, + 1448, + 29, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _LS_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LV_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LO_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LI_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LE_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LD_ = [3, 0], + _Lz_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lv_ = + [0, + cst_examples_aides_logement_co$0, + 4181, + 14, + 4181, + 28, + [0, + "Article D841-1", + [0, + "Chapitre 1 : Champ d'application", + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Lw_ = + [0, + cst_examples_aides_logement_pr, + 443, + 11, + 443, + 25, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lu_ = + [0, + cst_examples_aides_logement_pr, + 443, + 11, + 443, + 25, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lx_ = + [0, cst_ligibilit_AllocationLogeme, [0, "dur\xc3\xa9e_l841_1_3", 0]], + _LA_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LB_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_dat, 0]], + _Ly_ = + [0, + cst_examples_aides_logement_pr, + 459, + 14, + 459, + 50, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LF_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LG_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_pre, 0]], + _LC_ = + [0, + cst_examples_aides_logement_pr, + 460, + 14, + 460, + 56, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LJ_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LK_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales_r_s, 0]], + _LH_ = + [0, + cst_examples_aides_logement_pr, + 462, + 14, + 462, + 46, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LL_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _LM_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _LW_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LN_ = + [0, + cst_examples_aides_logement_pr, + 440, + 11, + 440, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LX_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_6_applicable", 0]], + _L7_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _LY_ = + [0, + cst_examples_aides_logement_pr, + 439, + 11, + 439, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L8_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_2_applicable", 0]], + _Mg_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _L9_ = + [0, + cst_examples_aides_logement_pr, + 438, + 11, + 438, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mh_ = [0, cst_ligibilit_AllocationLogeme, [0, "l_841_1_1_applicable", 0]], + _Mt_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mi_ = + [0, + cst_examples_aides_logement_pr, + 437, + 11, + 437, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Mu_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "condition_accession_propri\xc3\xa9t\xc3\xa9", 0]], + _Mx_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _My_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_m_nage, 0]], + _Mv_ = + [0, + cst_examples_aides_logement_pr, + 464, + 14, + 464, + 40, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MB_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MC_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_demandeu, 0]], + _Mz_ = + [0, + cst_examples_aides_logement_pr, + 465, + 14, + 465, + 43, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MF_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MG_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune_date_cou, 0]], + _MD_ = + [0, + cst_examples_aides_logement_pr, + 466, + 14, + 466, + 47, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MN_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _MO_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_ligibilit_commune, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _MR_ = + [0, + cst_examples_aides_logement_pr, + 453, + 12, + 453, + 61, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MP_ = + [0, + cst_examples_aides_logement_pr, + 453, + 12, + 453, + 61, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MS_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_coefficents_enfants_garde_$3, 0]], + _MV_ = + [0, + cst_examples_aides_logement_pr, + 452, + 12, + 452, + 54, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MT_ = + [0, + cst_examples_aides_logement_pr, + 452, + 12, + 452, + 54, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MW_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, cst_nombre_personnes_charge_pr$2, 0]], + _M1_ = + [0, + cst_examples_aides_logement_pr, + 450, + 10, + 450, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _MX_ = + [0, + cst_examples_aides_logement_pr, + 450, + 10, + 450, + 31, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M2_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_dispositions_communes", 0]], + _NU_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _M3_ = + [0, + cst_examples_aides_logement_pr, + 442, + 11, + 442, + 52, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NV_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale", 0]], + _Oc_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _NW_ = + [0, + cst_examples_aides_logement_pr, + 451, + 10, + 451, + 16, + [0, + cst_ligibilit_aux_allocations_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Od_ = + [0, + cst_ligibilit_AllocationLogeme, + [0, "\xc3\xa9ligibilit\xc3\xa9_l841_2", 0]], + _Lr_ = + [0, + cst_examples_aides_logement_co$0, + 2108, + 14, + 2108, + 40, + [0, + "Article D823-22", + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Li_ = + [0, + cst_examples_aides_logement_co$0, + 5538, + 5, + 5538, + 40, + [0, + "Article D861-7", + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Lj_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lh_ = + [0, + cst_examples_aides_logement_co, + 1891, + 5, + 1891, + 54, + [0, + "Article L863-2", + [0, + "Section 2 : Dispositions communes aux aides applicables \xc3\xa0 Saint-Pierre-et-Miquelon", + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Lk_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lg_ = + [0, + cst_examples_aides_logement_co, + 1312, + 5, + 1312, + 40, + [0, + "Article L861-4", + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ll_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lm_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lf_ = + [0, + cst_examples_aides_logement_co, + 599, + 5, + 602, + 42, + [0, + "Article L823-8", + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ln_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Le_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _La_ = + [0, + cst_examples_aides_logement_ar, + 4303, + 14, + 4303, + 29, + [0, + "Article 45", + [0, + "Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement", + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3$99 = cst_3$101, + cst_0_2$1 = cst_0_2$2, + cst_3$100 = cst_3$101, + cst_0$349 = cst_0$356, + cst_2_4 = "2.4", + _K7_ = + [0, + cst_examples_aides_logement_co$0, + 2067, + 6, + 2078, + 75, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _K8_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K6_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K0_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KW_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KS_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KM_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_3$98 = cst_3$101, + _KH_ = + [0, + cst_examples_aides_logement_co$0, + 2058, + 5, + 2063, + 77, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KI_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KG_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KC_ = + [0, + cst_examples_aides_logement_co$0, + 2082, + 14, + 2082, + 47, + [0, + cst_Article_D823_20, + [0, + cst_Section_2_Prime_de_d_m_nag, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _KD_ = + [0, + cst_examples_aides_logement_pr, + 494, + 11, + 494, + 44, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KB_ = + [0, + cst_examples_aides_logement_pr, + 494, + 11, + 494, + 44, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KE_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2", 0]], + _KJ_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KF_ = + [0, + cst_examples_aides_logement_pr, + 491, + 11, + 491, + 32, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KK_ = + [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "condition_rang_enfant", 0]], + _KN_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KO_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_base_mensuelle_allocations, 0]], + _KL_ = + [0, + cst_examples_aides_logement_pr, + 508, + 14, + 508, + 65, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KP_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _KQ_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _KT_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KU_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage", 0]], + _KR_ = + [0, + cst_examples_aides_logement_pr, + 504, + 14, + 504, + 36, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KX_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _KY_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.demandeur", 0]], + _KV_ = + [0, + cst_examples_aides_logement_pr, + 505, + 14, + 505, + 39, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K1_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K2_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "\xc3\xa9ligibilit\xc3\xa9_apl.date_courante", 0]], + _KZ_ = + [0, + cst_examples_aides_logement_pr, + 506, + 14, + 506, + 43, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K3_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _K4_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_ligibilit_apl, [0, cst_ligibilit_AidesPersonnelle, 0]]], + _K9_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K5_ = + [0, + cst_examples_aides_logement_pr, + 492, + 11, + 492, + 41, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K__ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, "condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement", 0]], + _Lb_ = + [0, + cst_examples_aides_logement_pr, + 495, + 11, + 495, + 26, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _K$_ = + [0, + cst_examples_aides_logement_pr, + 495, + 11, + 495, + 26, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lc_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, "plafond_d823_22", 0]], + _Lo_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ld_ = + [0, + cst_examples_aides_logement_pr, + 493, + 11, + 493, + 31, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lp_ = [0, cst_ligibilit_PrimeDeD_m_nagem, [0, cst_ligibilit_logement, 0]], + _Ls_ = + [0, + cst_examples_aides_logement_pr, + 501, + 12, + 501, + 38, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lq_ = + [0, + cst_examples_aides_logement_pr, + 501, + 12, + 501, + 38, + [0, + cst_ligibilit_la_prime_de_d_m_, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Lt_ = + [0, + cst_ligibilit_PrimeDeD_m_nagem, + [0, cst_montant_prime_d_m_nagement$0, 0]], + _Kx_ = + [0, + cst_examples_aides_logement_au, + 372, + 5, + 374, + 34, + [0, + cst_Article_7, + [0, + "D\xc3\xa9cret n\xc2\xb0 2021-1750 du 21 d\xc3\xa9cembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement \xc3\xa0 Saint-Pierre-et-Miquelon", + 0]]], + cst_8$0 = "8.", + cst_2026 = "2026", + _Ky_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 12, + 1071, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kw_ = + [0, + cst_examples_aides_logement_co$0, + 1441, + 14, + 1441, + 33, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ks_ = + [0, + cst_examples_aides_logement_co$0, + 1443, + 14, + 1443, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Kt_ = + [0, + cst_examples_aides_logement_pr, + 1072, + 12, + 1072, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kr_ = + [0, + cst_examples_aides_logement_pr, + 1072, + 12, + 1072, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kn_ = + [0, + cst_examples_aides_logement_co$0, + 6398, + 24, + 6398, + 46, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Kg_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Kh_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _Ki_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Kj_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$346 = cst_0$356, + cst_0$347 = cst_0$356, + _Kc_ = [1, 0], + cst_0$348 = cst_0$356, + _Kd_ = + [0, + cst_examples_aides_logement_co$0, + 6428, + 42, + 6428, + 45, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ke_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], + _Kf_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _Kk_ = + [0, + cst_examples_aides_logement_co$0, + 6402, + 9, + 6431, + 10, + [0, + cst_Article_D863_7, + [0, + cst_Sous_section_III_Modalit_s, + [0, + cst_Section_II_Dispositions_co, + [0, + cst_Chapitre_III_Saint_Pierre_, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Kl_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], + _Km_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _Ko_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 11, + 1069, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kb_ = + [0, + cst_examples_aides_logement_co$0, + 1557, + 14, + 1557, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _J6_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _J7_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, 0]], + _J8_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _J9_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale$9, 0]], + _JX_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _JY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, 0]], + _JZ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _J0_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale$9, 0]], + _JO_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _JP_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _JQ_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _JR_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$344 = cst_0$356, + cst_0$345 = cst_0$356, + _JL_ = + [0, + cst_examples_aides_logement_co$0, + 1577, + 16, + 1580, + 39, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JM_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_input, 0]]], + _JN_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _JS_ = + [0, + cst_examples_aides_logement_co$0, + 1561, + 9, + 1583, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _JT_ = + [0, cst_CalculAllocationLogementLo, [0, cst_direct, [0, cst_output, 0]]], + _JU_ = [0, cst_CalculAllocationLogementLo, [0, cst_direct, 0]], + _JV_ = + [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_input, 0]]], + _JW_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], + _J1_ = + [0, + cst_examples_aides_logement_co$0, + 1616, + 10, + 1635, + 11, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _J2_ = + [0, cst_CalculAllocationLogementAc, [0, cst_direct, [0, cst_output, 0]]], + _J3_ = [0, cst_CalculAllocationLogementAc, [0, cst_direct, 0]], + _J4_ = + [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_input, 0]]], + _J5_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], + _J__ = + [0, + cst_examples_aides_logement_co$0, + 1594, + 9, + 1606, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _J$_ = + [0, cst_CalculAllocationLogementFo, [0, cst_direct, [0, cst_output, 0]]], + _Ka_ = [0, cst_CalculAllocationLogementFo, [0, cst_direct, 0]], + _JH_ = + [0, + cst_examples_aides_logement_ar, + 90, + 14, + 90, + 44, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _JB_ = [0, 0], + _JC_ = [1, 0], + _JD_ = [1, 0], + _JE_ = [1, 0], + _JF_ = [0, 0], + _JG_ = [1, 0], + _Jx_ = + [0, + cst_examples_aides_logement_co$0, + 1974, + 14, + 1974, + 31, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _Jt_ = + [0, + cst_examples_aides_logement_co$0, + 1430, + 14, + 1430, + 34, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ju_ = + [0, + cst_examples_aides_logement_pr, + 1066, + 11, + 1066, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Js_ = + [0, + cst_examples_aides_logement_pr, + 1066, + 11, + 1066, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Jv_ = [0, cst_CalculAllocationLogement, [0, cst_cat_gorie_calcul_apl, 0]], + _Jy_ = + [0, + cst_examples_aides_logement_pr, + 1058, + 10, + 1058, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Jw_ = + [0, + cst_examples_aides_logement_pr, + 1058, + 10, + 1058, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Jz_ = + [0, + cst_CalculAllocationLogement, + [0, cst_ressources_m_nage_avec_arr, 0]], + _JI_ = + [0, + cst_examples_aides_logement_pr, + 1067, + 11, + 1067, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _JA_ = + [0, + cst_examples_aides_logement_pr, + 1067, + 11, + 1067, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _JJ_ = + [0, + cst_CalculAllocationLogement, + [0, cst_situation_familiale_calcul$7, 0]], + _Kp_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 11, + 1069, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _JK_ = + [0, + cst_examples_aides_logement_pr, + 1069, + 11, + 1069, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kq_ = + [0, cst_CalculAllocationLogement, [0, cst_sous_calcul_traitement, 0]], + _Ku_ = + [0, cst_CalculAllocationLogement, [0, cst_traitement_aide_finale$9, 0]], + _Kz_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 12, + 1071, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Kv_ = + [0, + cst_examples_aides_logement_pr, + 1071, + 12, + 1071, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _KA_ = + [0, cst_CalculAllocationLogement, [0, cst_aide_finale_formule$9, 0]], + _Jj_ = + [0, + cst_examples_aides_logement_pr, + 357, + 14, + 357, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jf_ = + [0, + cst_examples_aides_logement_pr, + 359, + 14, + 359, + 63, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$342 = cst_0$357, + cst_0$343 = cst_0$357, + _Jb_ = + [0, + cst_examples_aides_logement_co$0, + 1139, + 14, + 1139, + 49, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _I9_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, [0, cst_input0, 0]]], + _I__ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + _I$_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, [0, cst_output, 0]]], + _Ja_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + cst_1_25$0 = cst_1_25$1, + _I3_ = + [0, + cst_examples_aides_logement_co$0, + 1246, + 4, + 1254, + 48, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _I4_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IY_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_input0, 0]]], + _IZ_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _I0_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_condition_2_r823_4$0, [0, cst_output, 0]]], + _I1_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _I2_ = + [0, + cst_examples_aides_logement_co$0, + 1227, + 5, + 1227, + 44, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _I5_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IS_ = + [0, + cst_examples_aides_logement_co, + 1846, + 5, + 1852, + 34, + [0, + cst_Article_L862_3, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _IT_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IR_ = + [0, + cst_examples_aides_logement_co, + 1572, + 5, + 1578, + 34, + [0, + cst_Article_L861_6, + [0, + cst_Section_4_Allocations_de_l, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _IU_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IQ_ = + [0, + cst_examples_aides_logement_co, + 449, + 5, + 457, + 28, + [0, + cst_Article_L823_1, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _IV_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IW_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IJ_ = [2, 0], + _IP_ = [0, 0], + _IK_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_input0, 0]]], + _IL_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _IM_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_droit_ouvert$0, [0, cst_output, 0]]], + _IN_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _IO_ = + [0, + cst_examples_aides_logement_co$0, + 1156, + 5, + 1178, + 44, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _IX_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _II_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I6_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IH_ = + [0, + cst_examples_aides_logement_pr, + 321, + 11, + 321, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ID_ = + [0, + cst_examples_aides_logement_pr, + 353, + 5, + 355, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IE_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IC_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Is_ = + [0, + cst_examples_aides_logement_co$0, + 1214, + 30, + 1214, + 35, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _It_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_input, 0]]], + _Iu_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], + _Iv_ = + [0, + cst_examples_aides_logement_co$0, + 1211, + 17, + 1214, + 37, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Iw_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, [0, cst_output, 0]]], + _Ix_ = [0, cst_V_rification_geInf_rieurOu, [0, cst_direct, 0]], + cst_1_25 = cst_1_25$1, + _Ir_ = + [0, + cst_examples_aides_logement_co$0, + 1199, + 5, + 1222, + 10, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Iy_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Iq_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Iz_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ip_ = + [0, + cst_examples_aides_logement_pr, + 346, + 12, + 346, + 30, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ik_ = + [0, + cst_examples_aides_logement_co, + 91, + 5, + 92, + 52, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Il_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ij_ = + [0, + cst_examples_aides_logement_co, + 84, + 5, + 87, + 52, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]], + _Im_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ii_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ie_ = + [0, + cst_examples_aides_logement_co$1, + 163, + 14, + 163, + 31, + [0, + "Article L351-8", + [0, + "Section 5 : Taux et montant de la pension", + [0, + "Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite", + [0, + "Titre V : Assurance vieillesse - Assurance veuvage", + [0, + "Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale", + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + _H$_ = + [0, + cst_examples_aides_logement_co, + 401, + 18, + 401, + 44, + [0, + "Article L822-10", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ia_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H__ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H2_ = + [0, + cst_examples_aides_logement_co, + 302, + 18, + 302, + 75, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$341 = cst_0$356, + _H3_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HZ_ = [5, 0], + _H0_ = [4, 0], + _H1_ = + [0, + cst_examples_aides_logement_co, + 288, + 18, + 290, + 45, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$340 = cst_0$356, + _H4_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H5_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HY_ = + [0, + cst_examples_aides_logement_co$0, + 945, + 5, + 945, + 58, + [0, + cst_Article_R822_22, + [0, + cst_Sous_section_4_Prise_en_co, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _H6_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HX_ = + [0, + cst_examples_aides_logement_co, + 271, + 33, + 271, + 58, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0$339 = cst_0$356, + _HT_ = + [0, + cst_examples_aides_logement_co$1, + 125, + 14, + 125, + 32, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + cst_2$104 = cst_2$105, + _HL_ = + [0, + cst_examples_aides_logement_co$0, + 5318, + 5, + 5319, + 34, + [0, + cst_Article_R844_4, + [0, + cst_Chapitre_IV_Conditions_de_, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HM_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1$248 = cst_1$254, + cst_9$2 = cst_9$3, + cst_16$3 = cst_16$4, + _HK_ = + [0, + cst_examples_aides_logement_co$0, + 5311, + 5, + 5313, + 58, + [0, + cst_Article_R844_4, + [0, + cst_Chapitre_IV_Conditions_de_, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HN_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_9 = cst_9$3, + cst_9$0 = cst_9$3, + cst_16 = cst_16$4, + cst_16$0 = cst_16$4, + cst_16$1 = cst_16$4, + cst_9$1 = cst_9$3, + cst_16$2 = cst_16$4, + cst_8 = "8", + cst_70 = cst_70$1, + cst_70$0 = cst_70$1, + _HJ_ = + [0, + cst_examples_aides_logement_co$0, + 1048, + 5, + 1065, + 65, + [0, + cst_Article_R822_25, + [0, + cst_Section_3_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _HO_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HI_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HP_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$338 = cst_0$357, + cst_0$337 = cst_0$357, + _HB_ = + [0, + cst_examples_aides_logement_co, + 189, + 5, + 195, + 65, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HC_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HA_ = + [0, + cst_examples_aides_logement_co, + 174, + 5, + 176, + 30, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HD_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hz_ = + [0, + cst_examples_aides_logement_co, + 143, + 5, + 149, + 33, + [0, + cst_Article_L822_2, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _HE_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hy_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hp_ = + [0, + cst_examples_aides_logement_co$0, + 5759, + 5, + 5762, + 28, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hq_ = + [0, + cst_examples_aides_logement_co$0, + 5758, + 24, + 5758, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Ho_ = + [0, + cst_examples_aides_logement_co$0, + 5664, + 6, + 5670, + 30, + [0, + "Article D861-9", + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hr_ = + [0, + cst_examples_aides_logement_co$0, + 5758, + 24, + 5758, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hs_ = + [0, + cst_examples_aides_logement_co$0, + 5758, + 24, + 5758, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hn_ = + [0, + cst_examples_aides_logement_co$0, + 1152, + 14, + 1152, + 49, + [0, + cst_Article_R823_4, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ht_ = + [0, + cst_examples_aides_logement_co$0, + 5758, + 24, + 5758, + 59, + [0, + cst_Article_R862_2, + [0, + cst_Section_I_Dispositions_com, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Hu_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "prestations_familiales.\xc3\xa2ge_l512_3_2", 0]], + _Hk_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hg_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hf_ = [3, 0], + _Hb_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G2_ = + [0, + cst_examples_aides_logement_co, + 227, + 22, + 227, + 27, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _G3_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], + _G4_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _G5_ = + [0, + cst_examples_aides_logement_co, + 224, + 8, + 227, + 29, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _G6_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], + _G7_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _G1_ = + [0, + cst_examples_aides_logement_co, + 221, + 5, + 229, + 39, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _G8_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G0_ = + [0, + cst_examples_aides_logement_co, + 215, + 5, + 216, + 34, + [0, + cst_Article_L822_4, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _G9_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GZ_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GU_ = + [0, + cst_examples_aides_logement_co$1, + 329, + 5, + 330, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_999840 = "999840", + _GV_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GS_ = + [0, + cst_examples_aides_logement_co$1, + 334, + 5, + 335, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_1041840 = "1041840", + _GT_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GQ_ = + [0, + cst_examples_aides_logement_co$1, + 339, + 5, + 340, + 34, + [0, + cst_Article_D815_1, + [0, + cst_Section_1_Ouverture_du_dro, + [0, + cst_Chapitre_5_Allocation_de_s, + [0, + cst_Titre_I_Allocations_aux_pe, + [0, + cst_Livre_VIII_Allocations_aux, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]], + cst_1083840 = "1083840", + _GR_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GO_ = + [0, + cst_examples_aides_logement_au, + 58, + 5, + 58, + 34, + [0, + 'Circulaire de la CNAV 2023-3 du 09/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2023"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1153302 = "1153302", + _GP_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GM_ = + [0, + cst_examples_aides_logement_au, + 89, + 5, + 90, + 33, + [0, + 'Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1100144 = "1100144", + _GN_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GK_ = + [0, + cst_examples_aides_logement_au, + 122, + 5, + 123, + 33, + [0, + 'Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"', + [0, cst_Montants_revaloris_s_de_l_, 0]]], + cst_1088175 = "1088175", + _GL_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GF_ = + [0, + cst_examples_aides_logement_co, + 1332, + 5, + 1332, + 40, + [0, + cst_Article_L861_5, + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _GG_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GE_ = + [0, + cst_examples_aides_logement_co, + 125, + 14, + 125, + 35, + [0, + cst_Article_L822_2, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _GA_ = + [0, + cst_examples_aides_logement_co, + 267, + 14, + 267, + 40, + [0, + cst_Article_L822_5, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Gu_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _Go_ = + [0, + cst_examples_aides_logement_co, + 46, + 5, + 46, + 41, + [0, + "Article L821-2", + [0, + "Sous-section 1 : Aides personnelles au logement", + [0, + "Section 2 : R\xc3\xa8gles de non-cumul", + [0, + "Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux", + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _Gp_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gn_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gq_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gi_ = + [0, + cst_examples_aides_logement_co, + 362, + 18, + 362, + 67, + [0, + "Article L822-8", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Gj_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gh_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gc_ = + [0, + cst_examples_aides_logement_co, + 376, + 18, + 376, + 61, + [0, + "Article L822-9", + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Gd_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gb_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F7_ = + [0, + cst_examples_aides_logement_co, + 1374, + 5, + 1374, + 40, + [0, + cst_Article_L861_5, + [0, + cst_Section_2_Dispositions_com, + [0, + cst_Chapitre_Ier_Guadeloupe_Gu, + [0, + cst_Titre_VI_Dispositions_part, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _F8_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F6_ = + [0, + cst_examples_aides_logement_co, + 445, + 9, + 445, + 42, + [0, + cst_Article_L823_1, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _F9_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F5_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F1_ = + [0, + cst_examples_aides_logement_co$0, + 1035, + 14, + 1035, + 39, + [0, + cst_Article_R822_25, + [0, + cst_Section_3_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_1$246 = cst_1$254, + cst_2$100 = cst_2$105, + cst_2$101 = cst_2$105, + cst_2$102 = cst_2$105, + cst_1$247 = cst_1$254, + cst_2$103 = cst_2$105, + _FX_ = + [0, + cst_examples_aides_logement_co, + 164, + 14, + 164, + 43, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _FT_ = + [0, + cst_examples_aides_logement_co$0, + 928, + 14, + 928, + 37, + [0, + cst_Article_R822_22, + [0, + cst_Sous_section_4_Prise_en_co, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_3000000 = "3000000", + _FP_ = + [0, + cst_examples_aides_logement_co$0, + 106, + 14, + 106, + 41, + [0, + cst_Article_R822_1, + [0, + cst_Section_1_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_1$0 = cst_0_1$1, + _FL_ = + [0, + cst_examples_aides_logement_co$0, + 105, + 14, + 105, + 42, + [0, + cst_Article_R822_1, + [0, + cst_Section_1_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_1 = cst_0_1$1, + _FG_ = + [0, + cst_examples_aides_logement_co$0, + 5500, + 14, + 5500, + 46, + [0, + cst_Article_R861_5, + [0, + cst_Capitre_I_Guadeloupe_Guyan, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _FH_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FC_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Fy_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Fz_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Fx_ = + [0, + cst_examples_aides_logement_pr, + 309, + 11, + 309, + 25, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FA_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "condition_pr\xc3\xaat", 0]], + _FD_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FB_ = + [0, + cst_examples_aides_logement_pr, + 318, + 11, + 318, + 48, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FE_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_peuplement_logement_l822_10", 0]], + _FI_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FF_ = + [0, + cst_examples_aides_logement_pr, + 325, + 12, + 325, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FJ_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch", 0]], + _FM_ = + [0, + cst_examples_aides_logement_pr, + 331, + 11, + 331, + 39, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FK_ = + [0, + cst_examples_aides_logement_pr, + 331, + 11, + 331, + 39, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FN_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9", 0]], + _FQ_ = + [0, + cst_examples_aides_logement_pr, + 332, + 11, + 332, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FO_ = + [0, + cst_examples_aides_logement_pr, + 332, + 11, + 332, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FR_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "seuil_l822_3_parts_usufruit", 0]], + _FU_ = + [0, + cst_examples_aides_logement_pr, + 333, + 11, + 333, + 34, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FS_ = + [0, + cst_examples_aides_logement_pr, + 333, + 11, + 333, + 34, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FV_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "seuil_l822_5_patrimoine", 0]], + _FY_ = + [0, + cst_examples_aides_logement_pr, + 330, + 11, + 330, + 40, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FW_ = + [0, + cst_examples_aides_logement_pr, + 330, + 11, + 330, + 40, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _FZ_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille", 0]], + _F2_ = + [0, + cst_examples_aides_logement_pr, + 326, + 11, + 326, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F0_ = + [0, + cst_examples_aides_logement_pr, + 326, + 11, + 326, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F3_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "nombre_personnes_logement", 0]], + _F__ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F4_ = + [0, + cst_examples_aides_logement_pr, + 319, + 11, + 319, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _F$_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "septi\xc3\xa8me_alin\xc3\xa9a_l823_1_applicable", 0]], + _Ge_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ga_ = + [0, + cst_examples_aides_logement_pr, + 316, + 11, + 316, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gf_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_non_ouverture_l822_9_decence_logement", 0]], + _Gk_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gg_ = + [0, + cst_examples_aides_logement_pr, + 315, + 11, + 315, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gl_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_non_ouverture_l822_8", 0]], + _Gr_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gm_ = + [0, + cst_examples_aides_logement_pr, + 311, + 12, + 311, + 51, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gs_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_r\xc3\xa9sidence_principale", 0]], + _Gv_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _Gw_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "ouverture_droits_retraite.date_naissance_assur\xc3\xa9", 0]], + _Gt_ = + [0, + cst_examples_aides_logement_co$1, + 123, + 14, + 123, + 61, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _Gx_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], + _Gy_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_ouverture_droits_retraite, [0, cst_OuvertureDroitsRetraite, 0]]], + _GB_ = + [0, + cst_examples_aides_logement_pr, + 329, + 11, + 329, + 37, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Gz_ = + [0, + cst_examples_aides_logement_pr, + 329, + 11, + 329, + 37, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GC_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "patrimoine_total_demandeur", 0]], + _GH_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GD_ = + [0, + cst_examples_aides_logement_pr, + 310, + 11, + 310, + 32, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GI_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_nationalit\xc3\xa9", 0]], + _GW_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GJ_ = + [0, + cst_examples_aides_logement_pr, + 337, + 11, + 337, + 41, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GX_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "plafond_individuel_l815_9_s\xc3\xa9cu", 0]], + _G__ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _GY_ = + [0, + cst_examples_aides_logement_pr, + 313, + 11, + 313, + 44, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _G$_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_location_tiers", 0]], + _Hc_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hd_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_dat, 0]], + _Ha_ = + [0, + cst_examples_aides_logement_pr, + 380, + 14, + 380, + 50, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hh_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hi_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_pre, 0]], + _He_ = + [0, + cst_examples_aides_logement_pr, + 381, + 14, + 381, + 56, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hl_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hm_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales_r_s, 0]], + _Hj_ = + [0, + cst_examples_aides_logement_pr, + 383, + 14, + 383, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hv_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _Hw_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prestations_familiales, [0, cst_ligibilit_PrestationsFamil, 0]]], + _HF_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Hx_ = + [0, + cst_examples_aides_logement_pr, + 312, + 11, + 312, + 45, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HG_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_mode_occupation", 0]], + _HQ_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HH_ = + [0, + cst_examples_aides_logement_pr, + 314, + 12, + 314, + 38, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HR_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_logement_surface", 0]], + _HU_ = + [0, + cst_examples_aides_logement_pr, + 336, + 11, + 336, + 29, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HS_ = + [0, + cst_examples_aides_logement_pr, + 336, + 11, + 336, + 29, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HV_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "\xc3\xa2ge_l161_17_2_s\xc3\xa9cu", 0]], + _H7_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _HW_ = + [0, + cst_examples_aides_logement_pr, + 334, + 11, + 334, + 36, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H8_ = + [0, cst_ligibilit_AidesPersonnelle, [0, "patrimoine_pris_en_compte", 0]], + _Ib_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _H9_ = + [0, + cst_examples_aides_logement_pr, + 317, + 11, + 317, + 58, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ic_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "condition_ouverture_l822_10_peuplement_logement", 0]], + _If_ = + [0, + cst_examples_aides_logement_pr, + 335, + 11, + 335, + 28, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Id_ = + [0, + cst_examples_aides_logement_pr, + 335, + 11, + 335, + 28, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ig_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "\xc3\xa2ge_l351_8_1_s\xc3\xa9cu", 0]], + _In_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ih_ = + [0, + cst_examples_aides_logement_pr, + 320, + 11, + 320, + 31, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Io_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit_logement, 0]], + _IA_ = + [0, cst_ligibilit_AidesPersonnelle, [0, cst_condition_2_r823_4$0, 0]], + _IF_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IB_ = + [0, + cst_examples_aides_logement_pr, + 342, + 12, + 342, + 23, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _IG_ = [0, cst_ligibilit_AidesPersonnelle, [0, cst_ligibilit$4, 0]], + _I7_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_prise_en_compte_personne_c, 0]], + _Jc_ = + [0, + cst_examples_aides_logement_pr, + 323, + 11, + 323, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _I8_ = + [0, + cst_examples_aides_logement_pr, + 323, + 11, + 323, + 46, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jd_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, "personnes_\xc3\xa0_charge_prises_en_compte", 0]], + _Jg_ = + [0, + cst_examples_aides_logement_pr, + 344, + 12, + 344, + 61, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Je_ = + [0, + cst_examples_aides_logement_pr, + 344, + 12, + 344, + 61, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jh_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_coefficents_enfants_garde_$3, 0]], + _Jk_ = + [0, + cst_examples_aides_logement_pr, + 343, + 12, + 343, + 54, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ji_ = + [0, + cst_examples_aides_logement_pr, + 343, + 12, + 343, + 54, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jl_ = + [0, + cst_ligibilit_AidesPersonnelle, + [0, cst_nombre_personnes_charge_pr$2, 0]], + cst_0_2 = cst_0_2$2, + _Jm_ = + [0, + cst_examples_aides_logement_co, + 200, + 13, + 200, + 47, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Jr_ = + [0, + cst_examples_aides_logement_co, + 200, + 13, + 200, + 47, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_0_2$0 = cst_0_2$2, + _Jn_ = + [0, + cst_examples_aides_logement_co, + 199, + 13, + 199, + 48, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Jq_ = + [0, + cst_examples_aides_logement_co, + 199, + 13, + 199, + 48, + [0, + cst_Article_L822_3, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Jo_ = + [0, + cst_examples_aides_logement_pr, + 378, + 13, + 378, + 42, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Jp_ = + [0, + cst_examples_aides_logement_pr, + 378, + 13, + 378, + 42, + [0, + cst_ligibilit_aux_aides_person, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Fu_ = + [0, + cst_examples_aides_logement_co$0, + 1459, + 14, + 1459, + 33, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fq_ = + [0, + cst_examples_aides_logement_co$0, + 1461, + 14, + 1461, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fr_ = + [0, + cst_examples_aides_logement_pr, + 832, + 12, + 832, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fp_ = + [0, + cst_examples_aides_logement_pr, + 832, + 12, + 832, + 34, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fm_ = + [0, + cst_examples_aides_logement_co$0, + 1471, + 14, + 1471, + 36, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ff_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _Fg_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + _Fh_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _Fi_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale$9, 0]], + _E8_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _E9_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, 0]], + _E__ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _E$_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale$9, 0]], + _EZ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, [0, cst_input0, 0]]], + _E0_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, 0]], + _E1_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, [0, cst_output, 0]]], + _E2_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale$9, 0]], + cst_0$335 = cst_0$356, + cst_0$336 = cst_0$356, + _EW_ = + [0, + cst_examples_aides_logement_co$0, + 1490, + 16, + 1493, + 39, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _EX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_direct, [0, cst_input, 0]]], + _EY_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], + _E3_ = + [0, + cst_examples_aides_logement_co$0, + 1475, + 9, + 1496, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _E4_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_direct, [0, cst_output, 0]]], + _E5_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_direct, 0]], + _E6_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_direct, [0, cst_input, 0]]], + _E7_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], + _Fa_ = + [0, + cst_examples_aides_logement_co$0, + 1528, + 10, + 1544, + 11, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fb_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_direct, [0, cst_output, 0]]], + _Fc_ = [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_direct, 0]], + _Fd_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_input, 0]]], + _Fe_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _Fj_ = + [0, + cst_examples_aides_logement_co$0, + 1507, + 9, + 1517, + 10, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Fk_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_direct, [0, cst_output, 0]]], + _Fl_ = [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_direct, 0]], + _ES_ = + [0, + cst_examples_aides_logement_ar, + 80, + 14, + 80, + 44, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _EM_ = [0, 0], + _EN_ = [1, 0], + _EO_ = [1, 0], + _EP_ = [1, 0], + _EQ_ = [0, 0], + _ER_ = [1, 0], + _EI_ = + [0, + cst_examples_aides_logement_co$0, + 1970, + 14, + 1970, + 31, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _EE_ = + [0, + cst_examples_aides_logement_co$0, + 1448, + 14, + 1448, + 34, + [0, + cst_Article_D823_9, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _EF_ = + [0, + cst_examples_aides_logement_pr, + 826, + 11, + 826, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ED_ = + [0, + cst_examples_aides_logement_pr, + 826, + 11, + 826, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EG_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_cat_gorie_calcul_apl, 0]], + _EJ_ = + [0, + cst_examples_aides_logement_pr, + 819, + 10, + 819, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EH_ = + [0, + cst_examples_aides_logement_pr, + 819, + 10, + 819, + 22, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EK_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_ressources_m_nage_avec_arr, 0]], + _ET_ = + [0, + cst_examples_aides_logement_pr, + 827, + 11, + 827, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EL_ = + [0, + cst_examples_aides_logement_pr, + 827, + 11, + 827, + 41, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EU_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_situation_familiale_calcul$7, 0]], + _Fn_ = + [0, + cst_examples_aides_logement_pr, + 829, + 11, + 829, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _EV_ = + [0, + cst_examples_aides_logement_pr, + 829, + 11, + 829, + 33, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fo_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_sous_calcul_traitement, 0]], + _Fs_ = + [0, + cst_CalculAidePersonnalis_eLog, + [0, cst_traitement_aide_finale$9, 0]], + _Fv_ = + [0, + cst_examples_aides_logement_pr, + 831, + 12, + 831, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Ft_ = + [0, + cst_examples_aides_logement_pr, + 831, + 12, + 831, + 31, + [0, + cst_Tous_secteurs, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _Fw_ = + [0, cst_CalculAidePersonnalis_eLog, [0, cst_aide_finale_formule$9, 0]], + _Ew_ = + [0, + cst_examples_aides_logement_co$0, + 4543, + 14, + 4543, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Es_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _Et_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + _Eu_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _Ev_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$334 = cst_0$356, + _Ex_ = + [0, + cst_examples_aides_logement_pr, + 945, + 10, + 945, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Er_ = + [0, + cst_examples_aides_logement_pr, + 945, + 10, + 945, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Eo_ = + [0, + cst_examples_aides_logement_co$0, + 4523, + 14, + 4523, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Eg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], + _Eh_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _Ei_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], + _Ej_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _Ek_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _El_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _Em_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _En_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$3 = cst_50$4, + cst_0$332 = cst_0$356, + cst_0$333 = cst_0$356, + _Ep_ = + [0, + cst_examples_aides_logement_pr, + 944, + 10, + 944, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ef_ = + [0, + cst_examples_aides_logement_pr, + 944, + 10, + 944, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ec_ = + [0, + cst_examples_aides_logement_co$0, + 4428, + 14, + 4428, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _D__ = + [0, + cst_examples_aides_logement_co$0, + 4509, + 14, + 4509, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _D2_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _D3_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _D4_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _D5_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _D6_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], + _D7_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + _D8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], + _D9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + cst_0$331 = cst_0$356, + _D$_ = + [0, + cst_examples_aides_logement_pr, + 943, + 10, + 943, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _D1_ = + [0, + cst_examples_aides_logement_pr, + 943, + 10, + 943, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DY_ = + [0, + cst_examples_aides_logement_co$0, + 4461, + 14, + 4461, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DU_ = + [0, + cst_examples_aides_logement_co$0, + 4691, + 14, + 4691, + 47, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DQ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _DR_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + _DS_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _DT_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + cst_0$330 = cst_0$356, + _DV_ = + [0, + cst_examples_aides_logement_pr, + 920, + 11, + 920, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DP_ = + [0, + cst_examples_aides_logement_pr, + 920, + 11, + 920, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DM_ = + [0, + cst_examples_aides_logement_co$0, + 4450, + 14, + 4450, + 41, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DI_ = + [0, + cst_examples_aides_logement_co$0, + 4476, + 14, + 4476, + 33, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _DD_ = + [0, + cst_examples_aides_logement_co$0, + 4626, + 5, + 4626, + 44, + [0, + cst_Article_D842_9, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Dv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _Dw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _Dx_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _Dy_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _Dz_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _DA_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _DB_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _DC_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _DE_ = + [0, + cst_examples_aides_logement_pr, + 907, + 11, + 907, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Du_ = + [0, + cst_examples_aides_logement_co$0, + 4607, + 14, + 4607, + 39, + [0, + cst_Article_D842_9, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Dq_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input1, 0]]], + _Dr_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_input0, 0]]], + _Ds_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, [0, cst_output, 0]]], + _Dt_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _Dl_ = + [0, + cst_examples_aides_logement_co$0, + 4721, + 7, + 4721, + 26, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Dm_ = + [0, + cst_examples_aides_logement_pr, + 915, + 11, + 915, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dk_ = + [0, + cst_examples_aides_logement_co$0, + 4702, + 14, + 4702, + 50, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Dc_ = + [0, + cst_examples_aides_logement_co$0, + 5951, + 5, + 5954, + 28, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Dd_ = + [0, + cst_examples_aides_logement_co$0, + 5949, + 9, + 5949, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Db_ = + [0, + cst_examples_aides_logement_co$0, + 5591, + 5, + 5597, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _De_ = + [0, + cst_examples_aides_logement_co$0, + 5949, + 9, + 5949, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Df_ = + [0, + cst_examples_aides_logement_co$0, + 5949, + 9, + 5949, + 75, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _Dg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_, 0]], + _C__ = + [0, + cst_examples_aides_logement_co$0, + 4447, + 14, + 4447, + 61, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _C$_ = + [0, + cst_examples_aides_logement_co$0, + 4447, + 14, + 4447, + 61, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Da_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$0, 0]], + _C7_ = + [0, + cst_examples_aides_logement_pr, + 968, + 14, + 968, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C3_ = + [0, + cst_examples_aides_logement_pr, + 958, + 14, + 958, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_0$329 = cst_0$356, + _CZ_ = + [0, + cst_examples_aides_logement_pr, + 969, + 14, + 969, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CV_ = + [0, + cst_examples_aides_logement_pr, + 966, + 14, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CR_ = + [0, + cst_examples_aides_logement_pr, + 964, + 14, + 964, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CN_ = + [0, + cst_examples_aides_logement_pr, + 962, + 14, + 962, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CJ_ = + [0, + cst_examples_aides_logement_pr, + 960, + 14, + 960, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CF_ = + [0, + cst_examples_aides_logement_pr, + 956, + 14, + 956, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CB_ = + [0, + cst_examples_aides_logement_pr, + 954, + 14, + 954, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CA_ = [3, 0], + _Cu_ = + [0, + cst_examples_aides_logement_co$0, + 4483, + 14, + 4483, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cq_ = + [0, + cst_examples_aides_logement_co$0, + 4480, + 14, + 4480, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cm_ = + [0, + cst_examples_aides_logement_co$0, + 4481, + 14, + 4481, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Ci_ = + [0, + cst_examples_aides_logement_pr, + 972, + 14, + 972, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$91 = cst_6$92, + _B__ = + [0, + cst_examples_aides_logement_ar$0, + 3408, + 5, + 3416, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$90 = cst_6$92, + _B6_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _B7_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _B8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _B9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _B$_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$89 = cst_6$92, + _B5_ = + [0, + cst_examples_aides_logement_ar$0, + 2872, + 5, + 2880, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$88 = cst_6$92, + _B1_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _B2_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _B3_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _B4_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Ca_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$87 = cst_6$92, + _B0_ = + [0, + cst_examples_aides_logement_ar$0, + 1802, + 5, + 1810, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$86 = cst_6$92, + _BW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BX_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _BY_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _BZ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Cb_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$85 = cst_6$92, + _BV_ = + [0, + cst_examples_aides_logement_ar$0, + 683, + 5, + 691, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$84 = cst_6$92, + _BR_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BS_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _BT_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _BU_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Cc_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$83 = cst_6$92, + _BQ_ = + [0, + cst_examples_aides_logement_ar$0, + 189, + 5, + 197, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$82 = cst_6$92, + _BM_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BN_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _BO_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _BP_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Cd_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ce_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BL_ = + [0, + cst_examples_aides_logement_ar, + 3987, + 14, + 3987, + 46, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _BH_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input1, 0]]], + _BI_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_input0, 0]]], + _BJ_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, [0, cst_output, 0]]], + _BK_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Cf_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BG_ = + [0, + cst_examples_aides_logement_pr, + 913, + 10, + 913, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BC_ = + [0, + cst_examples_aides_logement_co$0, + 4782, + 5, + 4782, + 28, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _BD_ = + [0, + cst_examples_aides_logement_pr, + 886, + 10, + 886, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BB_ = + [0, + cst_examples_aides_logement_co$0, + 4772, + 14, + 4772, + 41, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_100$12 = cst_100$13, + cst_0_01$0 = cst_0_01$1, + cst_4999 = "4999", + _Bx_ = + [0, + cst_examples_aides_logement_co$0, + 4679, + 15, + 4679, + 37, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _By_ = + [0, + cst_examples_aides_logement_pr, + 918, + 11, + 918, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bw_ = + [0, + cst_examples_aides_logement_pr, + 918, + 11, + 918, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bp_ = + [0, + cst_examples_aides_logement_ar$0, + 2609, + 5, + 2609, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$13 = cst_0_75$14, + _Bl_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bm_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bn_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Bo_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bq_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bk_ = + [0, + cst_examples_aides_logement_ar$0, + 1533, + 5, + 1533, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$12 = cst_0_75$14, + _Bg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bh_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bi_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Bj_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Br_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bf_ = + [0, + cst_examples_aides_logement_ar, + 4073, + 5, + 4073, + 16, + [0, + cst_Article_37, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_75$11 = cst_0_75$14, + _Bb_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _Bc_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _Bd_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _Be_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bs_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Bt_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ba_ = + [0, + cst_examples_aides_logement_ar, + 3981, + 14, + 3981, + 46, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _A8_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input1, 0]]], + _A9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_input0, 0]]], + _A__ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, [0, cst_output, 0]]], + _A$_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _Bu_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A7_ = + [0, + cst_examples_aides_logement_pr, + 912, + 10, + 912, + 26, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A4_ = + [0, + cst_examples_aides_logement_co$0, + 4495, + 14, + 4495, + 36, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$327 = cst_0$356, + cst_0$328 = cst_0$356, + _A5_ = + [0, + cst_examples_aides_logement_pr, + 942, + 10, + 942, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A3_ = + [0, + cst_examples_aides_logement_pr, + 942, + 10, + 942, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AZ_ = + [0, + cst_examples_aides_logement_co$0, + 4743, + 6, + 4749, + 6, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _A0_ = + [0, + cst_examples_aides_logement_pr, + 916, + 11, + 916, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AX_ = + [0, + cst_examples_aides_logement_co$0, + 4761, + 5, + 4762, + 59, + [0, + cst_Article_D842_12, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _AY_ = + [0, + cst_examples_aides_logement_pr, + 916, + 11, + 916, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AP_ = + [0, + cst_examples_aides_logement_ar, + 4459, + 5, + 4467, + 16, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$13 = cst_969$14, + cst_1938$4 = cst_1938$5, + cst_3767$13 = cst_3767$14, + _AQ_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AN_ = + [0, + cst_examples_aides_logement_ar$0, + 341, + 6, + 348, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$11 = cst_969$14, + cst_1938$2 = cst_1938$5, + cst_3767$12 = cst_3767$14, + cst_6$81 = cst_6$93, + cst_969$12 = cst_969$14, + cst_1938$3 = cst_1938$5, + cst_3767$11 = cst_3767$14, + _AO_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AK_ = + [0, + cst_examples_aides_logement_ar$0, + 1953, + 6, + 1960, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$17 = cst_936$19, + cst_1872$5 = cst_1872$7, + cst_3640$18 = cst_3640$19, + cst_6$80 = cst_6$93, + cst_936$18 = cst_936$19, + cst_1872$6 = cst_1872$7, + cst_3640$17 = cst_3640$19, + _AL_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AJ_ = + [0, + cst_examples_aides_logement_ar$0, + 837, + 6, + 844, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$15 = cst_936$19, + cst_1872$3 = cst_1872$7, + cst_3640$16 = cst_3640$19, + cst_6$79 = cst_6$93, + cst_936$16 = cst_936$19, + cst_1872$4 = cst_1872$7, + cst_3640$15 = cst_3640$19, + _AM_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AH_ = + [0, + cst_examples_aides_logement_ar$0, + 3025, + 6, + 3032, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$7 = cst_932$9, + cst_1864$1 = cst_1864$3, + cst_3625$8 = cst_3625$9, + cst_6$78 = cst_6$93, + cst_932$8 = cst_932$9, + cst_1864$2 = cst_1864$3, + cst_3625$7 = cst_3625$9, + _AI_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AF_ = + [0, + cst_examples_aides_logement_ar$0, + 3561, + 6, + 3568, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$7 = cst_929$9, + cst_1858$1 = cst_1858$3, + cst_3614$8 = cst_3614$9, + cst_6$77 = cst_6$93, + cst_929$8 = cst_929$9, + cst_1858$2 = cst_1858$3, + cst_3614$7 = cst_3614$9, + _AG_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AR_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AC_ = + [0, + cst_examples_aides_logement_ar, + 4392, + 6, + 4399, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$10 = cst_969$14, + cst_3767$10 = cst_3767$14, + _AD_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AA_ = + [0, + cst_examples_aides_logement_ar$0, + 260, + 6, + 267, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$8 = cst_969$14, + cst_3767$8 = cst_3767$14, + cst_6$76 = cst_6$93, + cst_969$9 = cst_969$14, + cst_3767$9 = cst_3767$14, + _AB_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ax_ = + [0, + cst_examples_aides_logement_ar$0, + 1873, + 6, + 1880, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$13 = cst_936$19, + cst_3640$13 = cst_3640$19, + cst_6$75 = cst_6$93, + cst_936$14 = cst_936$19, + cst_3640$14 = cst_3640$19, + _Ay_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Aw_ = + [0, + cst_examples_aides_logement_ar$0, + 756, + 6, + 763, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$11 = cst_936$19, + cst_3640$11 = cst_3640$19, + cst_6$74 = cst_6$93, + cst_936$12 = cst_936$19, + cst_3640$12 = cst_3640$19, + _Az_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Au_ = + [0, + cst_examples_aides_logement_ar$0, + 2945, + 6, + 2952, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$5 = cst_932$9, + cst_3625$5 = cst_3625$9, + cst_6$73 = cst_6$93, + cst_932$6 = cst_932$9, + cst_3625$6 = cst_3625$9, + _Av_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _As_ = + [0, + cst_examples_aides_logement_ar$0, + 3481, + 6, + 3488, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$5 = cst_929$9, + cst_3614$5 = cst_3614$9, + cst_6$72 = cst_6$93, + cst_929$6 = cst_929$9, + cst_3614$6 = cst_3614$9, + _At_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AE_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AS_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ap_ = + [0, + cst_examples_aides_logement_ar, + 4091, + 57, + 4091, + 68, + [0, + cst_Article_37, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$5 = cst_1272$6, + cst_2805$1 = cst_2805$2, + cst_5612$7 = cst_5612$8, + _Aq_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _An_ = + [0, + cst_examples_aides_logement_ar$0, + 1553, + 5, + 1553, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$5 = cst_1229$6, + cst_2710$1 = cst_2710$2, + cst_5422$7 = cst_5422$8, + _Ao_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Al_ = + [0, + cst_examples_aides_logement_ar$0, + 2630, + 5, + 2630, + 16, + [0, + cst_Article_37, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$5 = cst_1224$6, + cst_2699$1 = cst_2699$2, + cst_5399$7 = cst_5399$8, + _Am_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ar_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AT_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ai_ = + [0, + cst_examples_aides_logement_ar, + 4035, + 29, + 4035, + 56, + [0, + cst_Article_34, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$326 = cst_0$356, + cst_5612$5 = cst_5612$8, + cst_1272$4 = cst_1272$6, + cst_5612$6 = cst_5612$8, + _Aj_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ag_ = + [0, + cst_examples_aides_logement_ar$0, + 1515, + 29, + 1515, + 56, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$325 = cst_0$356, + cst_5422$5 = cst_5422$8, + cst_1229$4 = cst_1229$6, + cst_5422$6 = cst_5422$8, + _Ah_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ae_ = + [0, + cst_examples_aides_logement_ar$0, + 2589, + 29, + 2589, + 56, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$324 = cst_0$356, + cst_5399$5 = cst_5399$8, + cst_1224$4 = cst_1224$6, + cst_5399$6 = cst_5399$8, + _Af_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ak_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z$_ = + [0, + cst_examples_aides_logement_ar, + 2955, + 5, + 2955, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$321 = cst_0$356, + cst_158700 = "158700", + cst_191300 = "191300", + cst_1$243 = cst_1$254, + cst_205500 = "205500", + cst_2$97 = cst_2$105, + cst_211300 = "211300", + cst_3$95 = cst_3$101, + cst_217100 = "217100", + cst_4$95 = cst_4$98, + cst_222900 = "222900", + cst_5$152 = cst_5$158, + cst_228000 = cst_228000$1, + cst_5$153 = cst_5$158, + cst_19800 = "19800", + cst_228000$0 = cst_228000$1, + cst_0$322 = cst_0$356, + cst_139300 = "139300", + cst_170600 = "170600", + cst_1$244 = cst_1$254, + cst_184700 = "184700", + cst_2$98 = cst_2$105, + cst_191200 = "191200", + cst_3$96 = cst_3$101, + cst_197700$0 = cst_197700$1, + cst_4$96 = cst_4$98, + cst_204200 = "204200", + cst_5$154 = cst_5$158, + cst_218700 = cst_218700$1, + cst_5$155 = cst_5$158, + cst_19100$1 = cst_19100$2, + cst_218700$0 = cst_218700$1, + cst_0$323 = cst_0$356, + cst_130600 = "130600", + cst_158400 = "158400", + cst_1$245 = cst_1$254, + cst_172600 = "172600", + cst_2$99 = cst_2$105, + cst_179800$0 = cst_179800$1, + cst_3$97 = cst_3$101, + cst_187000 = "187000", + cst_4$97 = cst_4$98, + cst_194200 = "194200", + cst_5$156 = cst_5$158, + cst_208600$0 = cst_208600$2, + cst_5$157 = cst_5$158, + cst_18200 = "18200", + cst_208600$1 = cst_208600$2, + _Aa_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z9_ = + [0, + cst_examples_aides_logement_ar, + 3000, + 5, + 3000, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$318 = cst_0$356, + cst_160400 = "160400", + cst_193400 = "193400", + cst_1$240 = cst_1$254, + cst_207800 = "207800", + cst_2$94 = cst_2$105, + cst_213700 = "213700", + cst_3$92 = cst_3$101, + cst_219600 = "219600", + cst_4$92 = cst_4$98, + cst_225500$0 = cst_225500$1, + cst_5$146 = cst_5$158, + cst_230500$1 = cst_230500$3, + cst_5$147 = cst_5$158, + cst_20000 = "20000", + cst_230500$2 = cst_230500$3, + cst_0$319 = cst_0$356, + cst_140800$0 = cst_140800$1, + cst_172500$0 = cst_172500$1, + cst_1$241 = cst_1$254, + cst_186700 = "186700", + cst_2$95 = cst_2$105, + cst_193300 = "193300", + cst_3$93 = cst_3$101, + cst_199900$1 = cst_199900$2, + cst_4$93 = cst_4$98, + cst_206500 = "206500", + cst_5$148 = cst_5$158, + cst_221100 = cst_221100$1, + cst_5$149 = cst_5$158, + cst_19300$0 = cst_19300$1, + cst_221100$0 = cst_221100$1, + cst_0$320 = cst_0$356, + cst_132000$0 = cst_132000$1, + cst_180100$1 = cst_180100$2, + cst_1$242 = cst_1$254, + cst_174500 = "174500", + cst_2$96 = cst_2$105, + cst_181800$0 = cst_181800$1, + cst_3$94 = cst_3$101, + cst_189100 = "189100", + cst_4$94 = cst_4$98, + cst_196400 = "196400", + cst_5$150 = cst_5$158, + cst_210900 = cst_210900$1, + cst_5$151 = cst_5$158, + cst_18400 = "18400", + cst_210900$0 = cst_210900$1, + _z__ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z7_ = + [0, + cst_examples_aides_logement_ar, + 3045, + 5, + 3045, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$315 = cst_0$356, + cst_163300 = "163300", + cst_196900 = "196900", + cst_1$237 = cst_1$254, + cst_211600 = "211600", + cst_2$91 = cst_2$105, + cst_217600$0 = cst_217600$1, + cst_3$89 = cst_3$101, + cst_223600 = "223600", + cst_4$89 = cst_4$98, + cst_229600 = "229600", + cst_5$140 = cst_5$158, + cst_234600 = cst_234600$1, + cst_5$141 = cst_5$158, + cst_20400 = "20400", + cst_234600$0 = cst_234600$1, + cst_0$316 = cst_0$356, + cst_143300 = "143300", + cst_175600 = "175600", + cst_1$238 = cst_1$254, + cst_190100 = "190100", + cst_2$92 = cst_2$105, + cst_196600 = "196600", + cst_3$90 = cst_3$101, + cst_203500 = "203500", + cst_4$90 = cst_4$98, + cst_210200 = "210200", + cst_5$142 = cst_5$158, + cst_225100 = cst_225100$1, + cst_5$143 = cst_5$158, + cst_19600 = "19600", + cst_225100$0 = cst_225100$1, + cst_0$317 = cst_0$356, + cst_134400 = "134400", + cst_163000$0 = cst_163000$1, + cst_1$239 = cst_1$254, + cst_177700 = "177700", + cst_2$93 = cst_2$105, + cst_185100 = "185100", + cst_3$91 = cst_3$101, + cst_192500$0 = cst_192500$1, + cst_4$91 = cst_4$98, + cst_199900$0 = cst_199900$2, + cst_5$144 = cst_5$158, + cst_214700 = cst_214700$1, + cst_5$145 = cst_5$158, + cst_18700 = "18700", + cst_214700$0 = cst_214700$1, + _z8_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z5_ = + [0, + cst_examples_aides_logement_ar, + 3090, + 5, + 3090, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$312 = cst_0$356, + cst_167200 = "167200", + cst_201600 = "201600", + cst_1$234 = cst_1$254, + cst_216700 = "216700", + cst_2$88 = cst_2$105, + cst_222800 = "222800", + cst_3$86 = cst_3$101, + cst_229000 = "229000", + cst_4$86 = cst_4$98, + cst_235100 = "235100", + cst_5$134 = cst_5$158, + cst_240200 = cst_240200$1, + cst_5$135 = cst_5$158, + cst_20900$0 = cst_20900$1, + cst_240200$0 = cst_240200$1, + cst_0$313 = cst_0$356, + cst_146700 = "146700", + cst_179800 = cst_179800$1, + cst_1$235 = cst_1$254, + cst_194700 = "194700", + cst_2$89 = cst_2$105, + cst_201500 = "201500", + cst_3$87 = cst_3$101, + cst_208400 = "208400", + cst_4$87 = cst_4$98, + cst_215200 = "215200", + cst_5$136 = cst_5$158, + cst_230500 = cst_230500$3, + cst_5$137 = cst_5$158, + cst_20100$0 = cst_20100$1, + cst_230500$0 = cst_230500$3, + cst_0$314 = cst_0$356, + cst_137600 = "137600", + cst_166900 = "166900", + cst_1$236 = cst_1$254, + cst_182000 = "182000", + cst_2$90 = cst_2$105, + cst_189500 = "189500", + cst_3$88 = cst_3$101, + cst_197100 = "197100", + cst_4$88 = cst_4$98, + cst_204700$0 = cst_204700$1, + cst_5$138 = cst_5$158, + cst_219900 = cst_219900$1, + cst_5$139 = cst_5$158, + cst_19100$0 = cst_19100$2, + cst_219900$0 = cst_219900$1, + _z6_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z3_ = + [0, + cst_examples_aides_logement_ar, + 3135, + 5, + 3135, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$309 = cst_0$356, + cst_167400 = "167400", + cst_201800 = "201800", + cst_1$231 = cst_1$254, + cst_216900 = "216900", + cst_2$85 = cst_2$105, + cst_223000 = "223000", + cst_3$83 = cst_3$101, + cst_229200 = "229200", + cst_4$83 = cst_4$98, + cst_235300 = "235300", + cst_5$128 = cst_5$158, + cst_240400 = cst_240400$1, + cst_5$129 = cst_5$158, + cst_20900 = cst_20900$1, + cst_240400$0 = cst_240400$1, + cst_0$310 = cst_0$356, + cst_146800 = "146800", + cst_180000 = "180000", + cst_1$232 = cst_1$254, + cst_194900 = "194900", + cst_2$86 = cst_2$105, + cst_201700$0 = cst_201700$1, + cst_3$84 = cst_3$101, + cst_208600 = cst_208600$2, + cst_4$84 = cst_4$98, + cst_215400 = "215400", + cst_5$130 = cst_5$158, + cst_230700 = cst_230700$1, + cst_5$131 = cst_5$158, + cst_20100 = cst_20100$1, + cst_230700$0 = cst_230700$1, + cst_0$311 = cst_0$356, + cst_137700 = "137700", + cst_167100 = "167100", + cst_1$233 = cst_1$254, + cst_182200 = "182200", + cst_2$87 = cst_2$105, + cst_189700 = "189700", + cst_3$85 = cst_3$101, + cst_197300 = "197300", + cst_4$85 = cst_4$98, + cst_204900 = "204900", + cst_5$132 = cst_5$158, + cst_220100 = cst_220100$1, + cst_5$133 = cst_5$158, + cst_19100 = cst_19100$2, + cst_220100$0 = cst_220100$1, + _z4_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _z1_ = + [0, + cst_examples_aides_logement_ar, + 3183, + 5, + 3183, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$306 = cst_0$356, + cst_169100 = "169100", + cst_203800 = "203800", + cst_1$228 = cst_1$254, + cst_219100 = "219100", + cst_2$82 = cst_2$105, + cst_225200 = "225200", + cst_3$80 = cst_3$101, + cst_231500 = "231500", + cst_4$80 = cst_4$98, + cst_237700 = "237700", + cst_5$122 = cst_5$158, + cst_242800$1 = cst_242800$3, + cst_5$123 = cst_5$158, + cst_21100 = "21100", + cst_242800$2 = cst_242800$3, + cst_0$307 = cst_0$356, + cst_148300 = "148300", + cst_181800 = cst_181800$1, + cst_1$229 = cst_1$254, + cst_196800 = "196800", + cst_2$83 = cst_2$105, + cst_203700 = "203700", + cst_3$81 = cst_3$101, + cst_210700 = "210700", + cst_4$81 = cst_4$98, + cst_217600 = cst_217600$1, + cst_5$124 = cst_5$158, + cst_233000 = cst_233000$1, + cst_5$125 = cst_5$158, + cst_20300 = "20300", + cst_233000$0 = cst_233000$1, + cst_0$308 = cst_0$356, + cst_139100 = "139100", + cst_168800 = "168800", + cst_1$230 = cst_1$254, + cst_184000$1 = cst_184000$2, + cst_2$84 = cst_2$105, + cst_191600 = "191600", + cst_3$82 = cst_3$101, + cst_199300 = "199300", + cst_4$82 = cst_4$98, + cst_206900 = "206900", + cst_5$126 = cst_5$158, + cst_222300 = cst_222300$1, + cst_5$127 = cst_5$158, + cst_19300 = cst_19300$1, + cst_222300$0 = cst_222300$1, + _z2_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zZ_ = + [0, + cst_examples_aides_logement_ar, + 3231, + 5, + 3231, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$303 = cst_0$356, + cst_171100 = "171100", + cst_206200 = "206200", + cst_1$225 = cst_1$254, + cst_221700 = "221700", + cst_2$79 = cst_2$105, + cst_227900 = "227900", + cst_3$77 = cst_3$101, + cst_234300 = "234300", + cst_4$77 = cst_4$98, + cst_240600 = "240600", + cst_5$116 = cst_5$158, + cst_245700 = cst_245700$1, + cst_5$117 = cst_5$158, + cst_21400 = "21400", + cst_245700$0 = cst_245700$1, + cst_0$304 = cst_0$356, + cst_150100 = "150100", + cst_184000$0 = cst_184000$2, + cst_1$226 = cst_1$254, + cst_199200 = "199200", + cst_2$80 = cst_2$105, + cst_206100 = "206100", + cst_3$78 = cst_3$101, + cst_213200 = "213200", + cst_4$78 = cst_4$98, + cst_220200 = "220200", + cst_5$118 = cst_5$158, + cst_235800 = cst_235800$1, + cst_5$119 = cst_5$158, + cst_20500 = "20500", + cst_235800$0 = cst_235800$1, + cst_0$305 = cst_0$356, + cst_140800 = cst_140800$1, + cst_170800 = "170800", + cst_1$227 = cst_1$254, + cst_186200 = "186200", + cst_2$81 = cst_2$105, + cst_193900 = "193900", + cst_3$79 = cst_3$101, + cst_201700 = cst_201700$1, + cst_4$79 = cst_4$98, + cst_209400 = "209400", + cst_5$120 = cst_5$158, + cst_225000 = cst_225000$1, + cst_5$121 = cst_5$158, + cst_19500 = "19500", + cst_225000$0 = cst_225000$1, + _z0_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zX_ = + [0, + cst_examples_aides_logement_ar, + 3279, + 5, + 3279, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$300 = cst_0$356, + cst_26084 = "26084", + cst_31435 = "31435", + cst_1$222 = cst_1$254, + cst_33798 = "33798", + cst_2$76 = cst_2$105, + cst_34743 = "34743", + cst_3$74 = cst_3$101, + cst_35719 = "35719", + cst_4$74 = cst_4$98, + cst_36679 = "36679", + cst_5$110 = cst_5$158, + cst_37457 = cst_37457$1, + cst_5$111 = cst_5$158, + cst_3262 = "3262", + cst_37457$0 = cst_37457$1, + cst_0$301 = cst_0$356, + cst_22883 = "22883", + cst_28051 = "28051", + cst_1$223 = cst_1$254, + cst_30368 = "30368", + cst_2$77 = cst_2$105, + cst_31420 = "31420", + cst_3$75 = cst_3$101, + cst_32502 = "32502", + cst_4$75 = cst_4$98, + cst_33569 = "33569", + cst_5$112 = cst_5$158, + cst_35947 = cst_35947$1, + cst_5$113 = cst_5$158, + cst_3125 = "3125", + cst_35947$0 = cst_35947$1, + cst_0$302 = cst_0$356, + cst_21465 = "21465", + cst_26038 = "26038", + cst_1$224 = cst_1$254, + cst_28386 = "28386", + cst_2$78 = cst_2$105, + cst_29560 = "29560", + cst_3$76 = cst_3$101, + cst_30749 = "30749", + cst_4$76 = cst_4$98, + cst_31923 = "31923", + cst_5$114 = cst_5$158, + cst_34301 = cst_34301$1, + cst_5$115 = cst_5$158, + cst_2973 = "2973", + cst_34301$0 = cst_34301$1, + _zY_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zV_ = + [0, + cst_examples_aides_logement_ar, + 3326, + 5, + 3326, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$297 = cst_0$356, + cst_26397 = "26397", + cst_31812 = "31812", + cst_1$219 = cst_1$254, + cst_34204 = "34204", + cst_2$73 = cst_2$105, + cst_35160 = "35160", + cst_3$71 = cst_3$101, + cst_36148 = "36148", + cst_4$71 = cst_4$98, + cst_37119 = "37119", + cst_5$104 = cst_5$158, + cst_37906 = cst_37906$1, + cst_5$105 = cst_5$158, + cst_3301 = "3301", + cst_37906$0 = cst_37906$1, + cst_0$298 = cst_0$356, + cst_23158 = "23158", + cst_28388 = "28388", + cst_1$220 = cst_1$254, + cst_30732 = "30732", + cst_2$74 = cst_2$105, + cst_31797$1 = cst_31797$2, + cst_3$72 = cst_3$101, + cst_32892 = "32892", + cst_4$72 = cst_4$98, + cst_33972 = "33972", + cst_5$106 = cst_5$158, + cst_36378 = cst_36378$1, + cst_5$107 = cst_5$158, + cst_3163 = "3163", + cst_36378$0 = cst_36378$1, + cst_0$299 = cst_0$356, + cst_21723 = "21723", + cst_26350 = "26350", + cst_1$221 = cst_1$254, + cst_28727 = "28727", + cst_2$75 = cst_2$105, + cst_29915 = "29915", + cst_3$73 = cst_3$101, + cst_31118 = "31118", + cst_4$73 = cst_4$98, + cst_32306 = "32306", + cst_5$108 = cst_5$158, + cst_34713 = cst_34713$1, + cst_5$109 = cst_5$158, + cst_3009 = "3009", + cst_34713$0 = cst_34713$1, + _zW_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zT_ = + [0, + cst_examples_aides_logement_ar, + 3373, + 5, + 3373, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$294 = cst_0$356, + cst_26714$0 = cst_26714$1, + cst_32194 = "32194", + cst_1$216 = cst_1$254, + cst_34614 = "34614", + cst_2$70 = cst_2$105, + cst_35582 = "35582", + cst_3$68 = cst_3$101, + cst_36582 = "36582", + cst_4$68 = cst_4$98, + cst_37564 = "37564", + cst_5$98 = cst_5$158, + cst_38361 = cst_38361$1, + cst_5$99 = cst_5$158, + cst_3341 = "3341", + cst_38361$0 = cst_38361$1, + cst_0$295 = cst_0$356, + cst_23436 = "23436", + cst_28729 = "28729", + cst_1$217 = cst_1$254, + cst_31101 = "31101", + cst_2$71 = cst_2$105, + cst_32179 = "32179", + cst_3$69 = cst_3$101, + cst_33287 = "33287", + cst_4$69 = cst_4$98, + cst_34380 = "34380", + cst_5$100 = cst_5$158, + cst_36815 = cst_36815$1, + cst_5$101 = cst_5$158, + cst_3201 = "3201", + cst_36815$0 = cst_36815$1, + cst_0$296 = cst_0$356, + cst_21984 = "21984", + cst_26666 = "26666", + cst_1$218 = cst_1$254, + cst_29072 = "29072", + cst_2$72 = cst_2$105, + cst_30274 = "30274", + cst_3$70 = cst_3$101, + cst_31491 = "31491", + cst_4$70 = cst_4$98, + cst_32694 = "32694", + cst_5$102 = cst_5$158, + cst_35130 = cst_35130$1, + cst_5$103 = cst_5$158, + cst_3045 = "3045", + cst_35130$0 = cst_35130$1, + _zU_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zR_ = + [0, + cst_examples_aides_logement_ar, + 3420, + 5, + 3420, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$291 = cst_0$356, + cst_27195 = "27195", + cst_32773 = "32773", + cst_1$213 = cst_1$254, + cst_35237 = "35237", + cst_2$67 = cst_2$105, + cst_36222 = "36222", + cst_3$65 = cst_3$101, + cst_37240 = "37240", + cst_4$65 = cst_4$98, + cst_38240 = "38240", + cst_5$92 = cst_5$158, + cst_39051 = cst_39051$1, + cst_5$93 = cst_5$158, + cst_3401 = "3401", + cst_39051$0 = cst_39051$1, + cst_0$292 = cst_0$356, + cst_23858 = "23858", + cst_29246 = "29246", + cst_1$214 = cst_1$254, + cst_31661 = "31661", + cst_2$68 = cst_2$105, + cst_32758 = "32758", + cst_3$66 = cst_3$101, + cst_33886 = "33886", + cst_4$66 = cst_4$98, + cst_34999 = "34999", + cst_5$94 = cst_5$158, + cst_37478 = cst_37478$1, + cst_5$95 = cst_5$158, + cst_3259 = "3259", + cst_37478$0 = cst_37478$1, + cst_0$293 = cst_0$356, + cst_22380 = "22380", + cst_27146 = "27146", + cst_1$215 = cst_1$254, + cst_29595 = "29595", + cst_2$69 = cst_2$105, + cst_30819 = "30819", + cst_3$67 = cst_3$101, + cst_32058 = "32058", + cst_4$67 = cst_4$98, + cst_33282 = "33282", + cst_5$96 = cst_5$158, + cst_35762 = cst_35762$1, + cst_5$97 = cst_5$158, + cst_3100 = "3100", + cst_35762$0 = cst_35762$1, + _zS_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zP_ = + [0, + cst_examples_aides_logement_ar, + 3467, + 5, + 3467, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$288 = cst_0$356, + cst_27956 = "27956", + cst_33691 = "33691", + cst_1$210 = cst_1$254, + cst_36224 = "36224", + cst_2$64 = cst_2$105, + cst_37236 = "37236", + cst_3$62 = cst_3$101, + cst_38283 = "38283", + cst_4$62 = cst_4$98, + cst_39311 = "39311", + cst_5$86 = cst_5$158, + cst_40144 = cst_40144$1, + cst_5$87 = cst_5$158, + cst_3496 = "3496", + cst_40144$0 = cst_40144$1, + cst_0$289 = cst_0$356, + cst_24526 = "24526", + cst_30065 = "30065", + cst_1$211 = cst_1$254, + cst_32548 = "32548", + cst_2$65 = cst_2$105, + cst_33675 = "33675", + cst_3$63 = cst_3$101, + cst_34865$0 = cst_34865$1, + cst_4$63 = cst_4$98, + cst_35979 = "35979", + cst_5$88 = cst_5$158, + cst_38527 = cst_38527$1, + cst_5$89 = cst_5$158, + cst_3350 = "3350", + cst_38527$0 = cst_38527$1, + cst_0$290 = cst_0$356, + cst_23007 = "23007", + cst_27906 = "27906", + cst_1$212 = cst_1$254, + cst_30424 = "30424", + cst_2$66 = cst_2$105, + cst_31682 = "31682", + cst_3$64 = cst_3$101, + cst_32956$0 = cst_32956$1, + cst_4$64 = cst_4$98, + cst_34214 = "34214", + cst_5$90 = cst_5$158, + cst_36733 = cst_36733$1, + cst_5$91 = cst_5$158, + cst_3187 = "3187", + cst_36733$0 = cst_36733$1, + _zQ_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zN_ = + [0, + cst_examples_aides_logement_ar, + 3514, + 5, + 3514, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$285 = cst_0$356, + cst_28728 = "28728", + cst_34621 = "34621", + cst_1$207 = cst_1$254, + cst_37224 = "37224", + cst_2$61 = cst_2$105, + cst_38264 = "38264", + cst_3$59 = cst_3$101, + cst_39340$0 = cst_39340$1, + cst_4$59 = cst_4$98, + cst_40396 = "40396", + cst_5$80 = cst_5$158, + cst_41252 = cst_41252$1, + cst_5$81 = cst_5$158, + cst_3592 = "3592", + cst_41252$0 = cst_41252$1, + cst_0$286 = cst_0$356, + cst_25203 = "25203", + cst_30895 = "30895", + cst_1$208 = cst_1$254, + cst_33446 = "33446", + cst_2$62 = cst_2$105, + cst_34604 = "34604", + cst_3$60 = cst_3$101, + cst_35796 = "35796", + cst_4$60 = cst_4$98, + cst_36972 = "36972", + cst_5$82 = cst_5$158, + cst_39590 = cst_39590$1, + cst_5$83 = cst_5$158, + cst_3442 = "3442", + cst_39590$0 = cst_39590$1, + cst_0$287 = cst_0$356, + cst_23642 = "23642", + cst_28676 = "28676", + cst_1$209 = cst_1$254, + cst_31264$0 = cst_31264$1, + cst_2$63 = cst_2$105, + cst_32556 = "32556", + cst_3$61 = cst_3$101, + cst_33866 = "33866", + cst_4$61 = cst_4$98, + cst_35158 = "35158", + cst_5$84 = cst_5$158, + cst_37778 = cst_37778$1, + cst_5$85 = cst_5$158, + cst_3275 = "3275", + cst_37778$0 = cst_37778$1, + _zO_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zL_ = + [0, + cst_examples_aides_logement_ar, + 3561, + 5, + 3561, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$282 = cst_0$356, + cst_29575 = "29575", + cst_35642 = "35642", + cst_1$204 = cst_1$254, + cst_38322 = "38322", + cst_2$58 = cst_2$105, + cst_39393 = "39393", + cst_3$56 = cst_3$101, + cst_40501 = "40501", + cst_4$56 = cst_4$98, + cst_41588 = "41588", + cst_5$74 = cst_5$158, + cst_42469 = cst_42469$1, + cst_5$75 = cst_5$158, + cst_3698 = "3698", + cst_42469$0 = cst_42469$1, + cst_0$283 = cst_0$356, + cst_25946 = "25946", + cst_31806 = "31806", + cst_1$205 = cst_1$254, + cst_34433 = "34433", + cst_2$59 = cst_2$105, + cst_35625 = "35625", + cst_3$57 = cst_3$101, + cst_36852 = "36852", + cst_4$57 = cst_4$98, + cst_38063 = "38063", + cst_5$76 = cst_5$158, + cst_40758 = cst_40758$1, + cst_5$77 = cst_5$158, + cst_3544 = "3544", + cst_40758$0 = cst_40758$1, + cst_0$284 = cst_0$356, + cst_24339 = "24339", + cst_29522 = "29522", + cst_1$206 = cst_1$254, + cst_32186 = "32186", + cst_2$60 = cst_2$105, + cst_33516 = "33516", + cst_3$58 = cst_3$101, + cst_34865 = cst_34865$1, + cst_4$58 = cst_4$98, + cst_36195 = "36195", + cst_5$78 = cst_5$158, + cst_38892 = cst_38892$1, + cst_5$79 = cst_5$158, + cst_3372 = "3372", + cst_38892$0 = cst_38892$1, + _zM_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zJ_ = + [0, + cst_examples_aides_logement_ar, + 3608, + 5, + 3608, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$279 = cst_0$356, + cst_29670 = "29670", + cst_35757 = "35757", + cst_1$201 = cst_1$254, + cst_38445 = "38445", + cst_2$55 = cst_2$105, + cst_39519 = "39519", + cst_3$53 = cst_3$101, + cst_40601 = "40601", + cst_4$53 = cst_4$98, + cst_41721 = "41721", + cst_5$68 = cst_5$158, + cst_42605 = cst_42605$1, + cst_5$69 = cst_5$158, + cst_3710 = "3710", + cst_42605$0 = cst_42605$1, + cst_0$280 = cst_0$356, + cst_26029 = "26029", + cst_31908 = "31908", + cst_1$202 = cst_1$254, + cst_34643 = "34643", + cst_2$56 = cst_2$105, + cst_35739 = "35739", + cst_3$54 = cst_3$101, + cst_36970 = "36970", + cst_4$54 = cst_4$98, + cst_38185 = "38185", + cst_5$70 = cst_5$158, + cst_40888 = cst_40888$1, + cst_5$71 = cst_5$158, + cst_3555 = "3555", + cst_40888$0 = cst_40888$1, + cst_0$281 = cst_0$356, + cst_24417 = "24417", + cst_29616 = "29616", + cst_1$203 = cst_1$254, + cst_32289 = "32289", + cst_2$57 = cst_2$105, + cst_33623$0 = cst_33623$1, + cst_3$55 = cst_3$101, + cst_34977 = "34977", + cst_4$55 = cst_4$98, + cst_36311 = "36311", + cst_5$72 = cst_5$158, + cst_39016 = cst_39016$1, + cst_5$73 = cst_5$158, + cst_3383 = "3383", + cst_39016$0 = cst_39016$1, + _zK_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zH_ = + [0, + cst_examples_aides_logement_ar, + 3655, + 5, + 3655, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$276 = cst_0$356, + cst_29996 = "29996", + cst_36149 = "36149", + cst_1$198 = cst_1$254, + cst_38868 = "38868", + cst_2$52 = cst_2$105, + cst_39954 = "39954", + cst_3$50 = cst_3$101, + cst_41078 = "41078", + cst_4$50 = cst_4$98, + cst_42180 = "42180", + cst_5$62 = cst_5$158, + cst_43074 = cst_43074$1, + cst_5$63 = cst_5$158, + cst_3751 = "3751", + cst_43074$0 = cst_43074$1, + cst_0$277 = cst_0$356, + cst_26315 = "26315", + cst_32259 = "32259", + cst_1$199 = cst_1$254, + cst_34923 = "34923", + cst_2$53 = cst_2$105, + cst_36132 = "36132", + cst_3$51 = cst_3$101, + cst_37373 = "37373", + cst_4$51 = cst_4$98, + cst_38605 = "38605", + cst_5$64 = cst_5$158, + cst_41338 = cst_41338$1, + cst_5$65 = cst_5$158, + cst_3594 = "3594", + cst_41338$0 = cst_41338$1, + cst_0$278 = cst_0$356, + cst_24686 = "24686", + cst_29942 = "29942", + cst_1$200 = cst_1$254, + cst_32644 = "32644", + cst_2$54 = cst_2$105, + cst_33993 = "33993", + cst_3$52 = cst_3$101, + cst_35362 = "35362", + cst_4$52 = cst_4$98, + cst_36710 = "36710", + cst_5$66 = cst_5$158, + cst_39445 = cst_39445$1, + cst_5$67 = cst_5$158, + cst_3420 = "3420", + cst_39445$0 = cst_39445$1, + _zI_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zF_ = + [0, + cst_examples_aides_logement_ar, + 3702, + 5, + 3702, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$273 = cst_0$356, + cst_30296 = "30296", + cst_36510 = "36510", + cst_1$195 = cst_1$254, + cst_39257 = "39257", + cst_2$49 = cst_2$105, + cst_40354 = "40354", + cst_3$47 = cst_3$101, + cst_41489 = "41489", + cst_4$47 = cst_4$98, + cst_42602 = "42602", + cst_5$56 = cst_5$158, + cst_43505 = cst_43505$1, + cst_5$57 = cst_5$158, + cst_3789 = "3789", + cst_43505$0 = cst_43505$1, + cst_0$274 = cst_0$356, + cst_26578 = "26578", + cst_32582 = "32582", + cst_1$196 = cst_1$254, + cst_35272 = "35272", + cst_2$50 = cst_2$105, + cst_36493 = "36493", + cst_3$48 = cst_3$101, + cst_37751 = "37751", + cst_4$48 = cst_4$98, + cst_38991 = "38991", + cst_5$58 = cst_5$158, + cst_41751 = cst_41751$1, + cst_5$59 = cst_5$158, + cst_3630 = "3630", + cst_41751$0 = cst_41751$1, + cst_0$275 = cst_0$356, + cst_24933 = "24933", + cst_30241 = "30241", + cst_1$197 = cst_1$254, + cst_32970 = "32970", + cst_2$51 = cst_2$105, + cst_34333 = "34333", + cst_3$49 = cst_3$101, + cst_35716 = "35716", + cst_4$49 = cst_4$98, + cst_37077 = "37077", + cst_5$60 = cst_5$158, + cst_39839 = cst_39839$1, + cst_5$61 = cst_5$158, + cst_3454 = "3454", + cst_39839$0 = cst_39839$1, + _zG_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zD_ = + [0, + cst_examples_aides_logement_ar, + 3749, + 5, + 3749, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$270 = cst_0$356, + cst_30947 = "30947", + cst_37295 = "37295", + cst_1$192 = cst_1$254, + cst_40101 = "40101", + cst_2$46 = cst_2$105, + cst_41222 = "41222", + cst_3$44 = cst_3$101, + cst_42381 = "42381", + cst_4$44 = cst_4$98, + cst_43518 = "43518", + cst_5$50 = cst_5$158, + cst_44440 = cst_44440$1, + cst_5$51 = cst_5$158, + cst_3870 = "3870", + cst_44440$0 = cst_44440$1, + cst_0$271 = cst_0$356, + cst_27149 = "27149", + cst_33283 = "33283", + cst_1$193 = cst_1$254, + cst_36030 = "36030", + cst_2$47 = cst_2$105, + cst_37278 = "37278", + cst_3$45 = cst_3$101, + cst_38563 = "38563", + cst_4$45 = cst_4$98, + cst_39829 = "39829", + cst_5$52 = cst_5$158, + cst_42649 = "42649", + cst_5$53 = cst_5$158, + cst_3708 = "3708", + cst_42659 = "42659", + cst_0$272 = cst_0$356, + cst_25469 = "25469", + cst_30891 = "30891", + cst_1$194 = cst_1$254, + cst_33679 = "33679", + cst_2$48 = cst_2$105, + cst_35071 = "35071", + cst_3$46 = cst_3$101, + cst_36484 = "36484", + cst_4$46 = cst_4$98, + cst_37874 = "37874", + cst_5$54 = cst_5$158, + cst_40696 = cst_40696$1, + cst_5$55 = cst_5$158, + cst_3528 = "3528", + cst_40696$0 = cst_40696$1, + _zE_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zB_ = + [0, + cst_examples_aides_logement_ar, + 3796, + 5, + 3796, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$267 = cst_0$356, + cst_31123 = "31123", + cst_37508 = "37508", + cst_1$189 = cst_1$254, + cst_40330 = "40330", + cst_2$43 = cst_2$105, + cst_41457 = "41457", + cst_3$41 = cst_3$101, + cst_42623 = "42623", + cst_4$41 = cst_4$98, + cst_43766 = "43766", + cst_5$44 = cst_5$158, + cst_44693 = cst_44693$1, + cst_5$45 = cst_5$158, + cst_3892 = "3892", + cst_44693$0 = cst_44693$1, + cst_0$268 = cst_0$356, + cst_27304 = "27304", + cst_33473 = "33473", + cst_1$190 = cst_1$254, + cst_36235 = "36235", + cst_2$44 = cst_2$105, + cst_37490 = "37490", + cst_3$42 = cst_3$101, + cst_38783 = "38783", + cst_4$42 = cst_4$98, + cst_40056 = "40056", + cst_5$46 = cst_5$158, + cst_42892 = cst_42892$1, + cst_5$47 = cst_5$158, + cst_3729 = "3729", + cst_42892$0 = cst_42892$1, + cst_0$269 = cst_0$356, + cst_25614 = "25614", + cst_31067 = "31067", + cst_1$191 = cst_1$254, + cst_33871 = "33871", + cst_2$45 = cst_2$105, + cst_35271 = "35271", + cst_3$43 = cst_3$101, + cst_36692 = "36692", + cst_4$43 = cst_4$98, + cst_38090 = "38090", + cst_5$48 = cst_5$158, + cst_40928 = cst_40928$1, + cst_5$49 = cst_5$158, + cst_3548 = "3548", + cst_40928$0 = cst_40928$1, + _zC_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zz_ = + [0, + cst_examples_aides_logement_ar, + 3843, + 5, + 3843, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$264 = cst_0$356, + cst_31148 = "31148", + cst_37538 = "37538", + cst_1$186 = cst_1$254, + cst_40362 = "40362", + cst_2$40 = cst_2$105, + cst_41490 = "41490", + cst_3$38 = cst_3$101, + cst_42657 = "42657", + cst_4$38 = cst_4$98, + cst_43801 = "43801", + cst_5$38 = cst_5$158, + cst_44729 = cst_44729$1, + cst_5$39 = cst_5$158, + cst_3895 = "3895", + cst_44729$0 = cst_44729$1, + cst_0$265 = cst_0$356, + cst_27326 = "27326", + cst_33500$0 = cst_33500$1, + cst_1$187 = cst_1$254, + cst_36264 = "36264", + cst_2$41 = cst_2$105, + cst_37520 = "37520", + cst_3$39 = cst_3$101, + cst_38814 = "38814", + cst_4$39 = cst_4$98, + cst_40088 = "40088", + cst_5$40 = cst_5$158, + cst_42926 = cst_42926$1, + cst_5$41 = cst_5$158, + cst_3732 = "3732", + cst_42926$0 = cst_42926$1, + cst_0$266 = cst_0$356, + cst_25634 = "25634", + cst_31092 = "31092", + cst_1$188 = cst_1$254, + cst_33898 = "33898", + cst_2$42 = cst_2$105, + cst_35299 = "35299", + cst_3$40 = cst_3$101, + cst_36721 = "36721", + cst_4$40 = cst_4$98, + cst_38120 = "38120", + cst_5$42 = cst_5$158, + cst_40961 = cst_40961$1, + cst_5$43 = cst_5$158, + cst_3551 = "3551", + cst_40961$0 = cst_40961$1, + _zA_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zx_ = + [0, + cst_examples_aides_logement_ar, + 3890, + 5, + 3890, + 62, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$261 = cst_0$356, + cst_31382 = "31382", + cst_37820 = "37820", + cst_1$183 = cst_1$254, + cst_40665 = "40665", + cst_2$37 = cst_2$105, + cst_41801 = "41801", + cst_3$35 = cst_3$101, + cst_42977 = "42977", + cst_4$35 = cst_4$98, + cst_44130 = "44130", + cst_5$32 = cst_5$158, + cst_45064 = cst_45064$1, + cst_5$33 = cst_5$158, + cst_3924 = "3924", + cst_45064$0 = cst_45064$1, + cst_0$262 = cst_0$356, + cst_27531 = "27531", + cst_33751 = "33751", + cst_1$184 = cst_1$254, + cst_36536 = "36536", + cst_2$38 = cst_2$105, + cst_37801 = "37801", + cst_3$36 = cst_3$101, + cst_39105 = "39105", + cst_4$36 = cst_4$98, + cst_40389 = "40389", + cst_5$34 = cst_5$158, + cst_43248 = cst_43248$1, + cst_5$35 = cst_5$158, + cst_3760 = "3760", + cst_43248$0 = cst_43248$1, + cst_0$263 = cst_0$356, + cst_25826 = "25826", + cst_31325 = "31325", + cst_1$185 = cst_1$254, + cst_34152 = "34152", + cst_2$39 = cst_2$105, + cst_35564 = "35564", + cst_3$37 = cst_3$101, + cst_36996 = "36996", + cst_4$37 = cst_4$98, + cst_38406 = "38406", + cst_5$36 = cst_5$158, + cst_41268 = cst_41268$1, + cst_5$37 = cst_5$158, + cst_3578 = "3578", + cst_41268$0 = cst_41268$1, + _zy_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zv_ = + [0, + cst_examples_aides_logement_ar, + 3937, + 5, + 3937, + 32, + [0, + cst_Article_33, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$258 = cst_0$356, + cst_31476 = "31476", + cst_37933 = "37933", + cst_1$180 = cst_1$254, + cst_40787 = "40787", + cst_2$34 = cst_2$105, + cst_41927 = "41927", + cst_3$32 = cst_3$101, + cst_43106 = "43106", + cst_4$32 = cst_4$98, + cst_44262 = "44262", + cst_5$26 = cst_5$158, + cst_45200 = cst_45200$1, + cst_5$27 = cst_5$158, + cst_3936 = "3936", + cst_45200$0 = cst_45200$1, + cst_0$259 = cst_0$356, + cst_27614 = "27614", + cst_33853 = "33853", + cst_1$181 = cst_1$254, + cst_36646 = "36646", + cst_2$35 = cst_2$105, + cst_37915 = "37915", + cst_3$33 = cst_3$101, + cst_39222 = "39222", + cst_4$33 = cst_4$98, + cst_40510 = "40510", + cst_5$28 = cst_5$158, + cst_43378 = cst_43378$1, + cst_5$29 = cst_5$158, + cst_3771 = "3771", + cst_43378$0 = cst_43378$1, + cst_0$260 = cst_0$356, + cst_25904 = "25904", + cst_31419 = "31419", + cst_1$182 = cst_1$254, + cst_34255 = "34255", + cst_2$36 = cst_2$105, + cst_35670 = "35670", + cst_3$34 = cst_3$101, + cst_37107 = "37107", + cst_4$34 = cst_4$98, + cst_38521 = "38521", + cst_5$30 = cst_5$158, + cst_41392 = cst_41392$1, + cst_5$31 = cst_5$158, + cst_3588 = "3588", + cst_41392$0 = cst_41392$1, + _zw_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ab_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zu_ = + [0, + cst_examples_aides_logement_pr, + 911, + 10, + 911, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zn_ = + [0, + cst_examples_aides_logement_co$0, + 5965, + 5, + 5969, + 73, + [0, + cst_Article_D862_7, + [0, + cst_Section_III_Allocations_de, + [0, + cst_Chapitre_II_Saint_Barth_le, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _zo_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zm_ = + [0, + cst_examples_aides_logement_co$0, + 5608, + 5, + 5615, + 73, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _zp_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zq_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zl_ = + [0, + cst_examples_aides_logement_co$0, + 4714, + 6, + 4717, + 44, + [0, + cst_Article_D842_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _zr_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zk_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zg_ = + [0, + cst_examples_aides_logement_ar, + 4047, + 14, + 4047, + 40, + [0, + "Article 35", + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$3 = cst_500$4, + _zc_ = + [0, + cst_examples_aides_logement_ar, + 4058, + 14, + 4058, + 41, + [0, + "Article 36", + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$4 = cst_1000$5, + _y__ = + [0, + cst_examples_aides_logement_ar, + 4113, + 14, + 4113, + 41, + [0, + cst_Article_38, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500$1 = cst_1500$2, + _y6_ = + [0, + cst_examples_aides_logement_ar, + 4141, + 14, + 4141, + 41, + [0, + cst_Article_39, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_390000 = "390000", + _y2_ = + [0, + cst_examples_aides_logement_ar, + 4121, + 14, + 4121, + 33, + [0, + cst_Article_38, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_0234$1 = cst_0_0234$2, + _yY_ = + [0, + cst_examples_aides_logement_ar, + 4133, + 14, + 4133, + 33, + [0, + cst_Article_39, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_16_25$0 = cst_16_25$1, + cst_6$71 = cst_6$92, + _yO_ = + [0, + cst_examples_aides_logement_ar$0, + 3329, + 5, + 3337, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$70 = cst_6$93, + _yP_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$69 = cst_6$92, + _yN_ = + [0, + cst_examples_aides_logement_ar$0, + 2794, + 5, + 2802, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$68 = cst_6$93, + _yQ_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$67 = cst_6$92, + _yM_ = + [0, + cst_examples_aides_logement_ar$0, + 1723, + 5, + 1731, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$66 = cst_6$93, + _yR_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$65 = cst_6$92, + _yL_ = + [0, + cst_examples_aides_logement_ar$0, + 604, + 5, + 612, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$64 = cst_6$93, + _yS_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$63 = cst_6$92, + _yK_ = + [0, + cst_examples_aides_logement_ar$0, + 111, + 5, + 119, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$62 = cst_6$93, + _yT_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yU_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yG_ = + [0, + cst_examples_aides_logement_ar$0, + 1512, + 14, + 1512, + 47, + [0, + cst_Article_34, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _yH_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yF_ = + [0, + cst_examples_aides_logement_ar, + 4032, + 14, + 4032, + 47, + [0, + cst_Article_34, + [0, + cst_Chapitre_IV_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _yI_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yJ_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yz_ = + [0, + cst_examples_aides_logement_pr, + 971, + 14, + 971, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yt_ = + [0, + cst_examples_aides_logement_co$0, + 4487, + 14, + 4487, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yp_ = + [0, + cst_examples_aides_logement_co$0, + 4485, + 14, + 4485, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yl_ = + [0, + cst_examples_aides_logement_au, + 330, + 14, + 330, + 36, + [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], + cst_6_55957$0 = cst_6_55957$1, + cst_1$179 = cst_1$255, + _ym_ = + [0, + cst_examples_aides_logement_pr, + 917, + 11, + 917, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yk_ = + [0, + cst_examples_aides_logement_pr, + 917, + 11, + 917, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yn_ = + [0, cst_CalculAllocationLogementAc, [0, cst_taux_francs_vers_euros, 0]], + _yq_ = + [0, + cst_examples_aides_logement_co$0, + 4485, + 14, + 4485, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yr_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts_nombre, 0]], + _yo_ = + [0, + cst_examples_aides_logement_co$0, + 4485, + 14, + 4485, + 59, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yu_ = + [0, + cst_examples_aides_logement_co$0, + 4487, + 14, + 4487, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts_situat, 0]], + _ys_ = + [0, + cst_examples_aides_logement_co$0, + 4487, + 14, + 4487, + 64, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _yx_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _yA_ = + [0, + cst_examples_aides_logement_pr, + 971, + 14, + 971, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yB_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales_dat, 0]], + _yy_ = + [0, + cst_examples_aides_logement_pr, + 971, + 14, + 971, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yC_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _yD_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _yV_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yE_ = + [0, + cst_examples_aides_logement_pr, + 928, + 11, + 928, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_multiplicateur_majoration_, 0]], + _yZ_ = + [0, + cst_examples_aides_logement_pr, + 926, + 11, + 926, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yX_ = + [0, + cst_examples_aides_logement_pr, + 926, + 11, + 926, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y0_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_12", 0]], + _y3_ = + [0, + cst_examples_aides_logement_pr, + 925, + 11, + 925, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y1_ = + [0, + cst_examples_aides_logement_pr, + 925, + 11, + 925, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y4_ = [0, cst_CalculAllocationLogementAc, [0, "coefficient_d842_11", 0]], + _y7_ = + [0, + cst_examples_aides_logement_pr, + 924, + 11, + 924, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y5_ = + [0, + cst_examples_aides_logement_pr, + 924, + 11, + 924, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y8_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_12", 0]], + _y$_ = + [0, + cst_examples_aides_logement_pr, + 923, + 11, + 923, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _y9_ = + [0, + cst_examples_aides_logement_pr, + 923, + 11, + 923, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _za_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_11", 0]], + _zd_ = + [0, + cst_examples_aides_logement_pr, + 922, + 11, + 922, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zb_ = + [0, + cst_examples_aides_logement_pr, + 922, + 11, + 922, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ze_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_minimal_aide_d842_6", 0]], + _zh_ = + [0, + cst_examples_aides_logement_pr, + 914, + 11, + 914, + 37, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zf_ = + [0, + cst_examples_aides_logement_pr, + 914, + 11, + 914, + 37, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zi_ = + [0, + cst_CalculAllocationLogementAc, + [0, "montant_forfaitaire_d842_6", 0]], + _zs_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zj_ = + [0, + cst_examples_aides_logement_pr, + 927, + 11, + 927, + 30, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _zt_ = [0, cst_CalculAllocationLogementAc, [0, "condition_d842_11_3", 0]], + _Ac_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$1, 0]], + _AU_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ad_ = + [0, + cst_examples_aides_logement_pr, + 904, + 11, + 904, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AV_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_montant_forfaitaire_charge$1, 0]], + _A1_ = + [0, + cst_examples_aides_logement_pr, + 916, + 11, + 916, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _AW_ = + [0, + cst_examples_aides_logement_pr, + 916, + 11, + 916, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _A2_ = + [0, + cst_CalculAllocationLogementAc, + [0, "seuil_minimal_ressources_m\xc3\xa9nage", 0]], + _A6_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_min, 0]], + _Bv_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d$0, 0]], + _Bz_ = + [0, cst_CalculAllocationLogementAc, [0, cst_d_pense_nette_minimale, 0]], + _BE_ = + [0, + cst_examples_aides_logement_pr, + 886, + 10, + 886, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BA_ = + [0, + cst_examples_aides_logement_pr, + 886, + 10, + 886, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _BF_ = + [0, + cst_CalculAllocationLogementAc, + [0, "ressources_m\xc3\xa9nage_arrondies_seuil", 0]], + _Cg_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_plafond_mensualit_d, 0]], + _Cj_ = + [0, + cst_examples_aides_logement_pr, + 972, + 14, + 972, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ck_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _Ch_ = + [0, + cst_examples_aides_logement_pr, + 972, + 14, + 972, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Cn_ = + [0, + cst_examples_aides_logement_co$0, + 4481, + 14, + 4481, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Co_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _Cl_ = + [0, + cst_examples_aides_logement_co$0, + 4481, + 14, + 4481, + 75, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cr_ = + [0, + cst_examples_aides_logement_co$0, + 4480, + 14, + 4480, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cs_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _Cp_ = + [0, + cst_examples_aides_logement_co$0, + 4480, + 14, + 4480, + 69, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cv_ = + [0, + cst_examples_aides_logement_co$0, + 4483, + 14, + 4483, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cw_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _Ct_ = + [0, + cst_examples_aides_logement_co$0, + 4483, + 14, + 4483, + 70, + [0, + cst_Article_D842_6, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _Cx_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _Cy_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _CC_ = + [0, + cst_examples_aides_logement_pr, + 954, + 14, + 954, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CD_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$1, 0]], + _Cz_ = + [0, + cst_examples_aides_logement_pr, + 954, + 14, + 954, + 59, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CG_ = + [0, + cst_examples_aides_logement_pr, + 956, + 14, + 956, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CH_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$2, 0]], + _CE_ = + [0, + cst_examples_aides_logement_pr, + 956, + 14, + 956, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CK_ = + [0, + cst_examples_aides_logement_pr, + 960, + 14, + 960, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CL_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$3, 0]], + _CI_ = + [0, + cst_examples_aides_logement_pr, + 960, + 14, + 960, + 67, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CO_ = + [0, + cst_examples_aides_logement_pr, + 962, + 14, + 962, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CP_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$4, 0]], + _CM_ = + [0, + cst_examples_aides_logement_pr, + 962, + 14, + 962, + 65, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CS_ = + [0, + cst_examples_aides_logement_pr, + 964, + 14, + 964, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CT_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$5, 0]], + _CQ_ = + [0, + cst_examples_aides_logement_pr, + 964, + 14, + 964, + 70, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CW_ = + [0, + cst_examples_aides_logement_pr, + 966, + 14, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _CX_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$6, 0]], + _CU_ = + [0, + cst_examples_aides_logement_pr, + 966, + 14, + 966, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C0_ = + [0, + cst_examples_aides_logement_pr, + 969, + 14, + 969, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C1_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$7, 0]], + _CY_ = + [0, + cst_examples_aides_logement_pr, + 969, + 14, + 969, + 53, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C4_ = + [0, + cst_examples_aides_logement_pr, + 958, + 14, + 958, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C5_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$8, 0]], + _C2_ = + [0, + cst_examples_aides_logement_pr, + 958, + 14, + 958, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C8_ = + [0, + cst_examples_aides_logement_pr, + 968, + 14, + 968, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _C9_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_calcul_apl_logement_foyer_$9, 0]], + _C6_ = + [0, + cst_examples_aides_logement_pr, + 968, + 14, + 968, + 49, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dh_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _Di_ = + [0, + cst_CalculAllocationLogementAc, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _Dn_ = + [0, + cst_examples_aides_logement_pr, + 915, + 11, + 915, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dj_ = + [0, + cst_examples_aides_logement_pr, + 915, + 11, + 915, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Do_ = + [0, + cst_CalculAllocationLogementAc, + [0, "seuil_minimal_d\xc3\xa9pense_nette_minimale", 0]], + _DF_ = + [0, + cst_examples_aides_logement_pr, + 907, + 11, + 907, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Dp_ = + [0, + cst_examples_aides_logement_pr, + 907, + 11, + 907, + 36, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DG_ = + [0, + cst_CalculAllocationLogementAc, + [0, "plafond_mensualit\xc3\xa9_d842_6", 0]], + _DJ_ = + [0, + cst_examples_aides_logement_pr, + 905, + 12, + 905, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DH_ = + [0, + cst_examples_aides_logement_pr, + 905, + 12, + 905, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DK_ = + [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_minimale$1, 0]], + _DN_ = + [0, + cst_examples_aides_logement_pr, + 906, + 12, + 906, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DL_ = + [0, + cst_examples_aides_logement_pr, + 906, + 12, + 906, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DO_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_coefficient_prise_en_charg$3, 0]], + _DW_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_abattement_d_pense_nette_m, 0]], + _DZ_ = + [0, + cst_examples_aides_logement_pr, + 903, + 12, + 903, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _DX_ = + [0, + cst_examples_aides_logement_pr, + 903, + 12, + 903, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _D0_ = + [0, cst_CalculAllocationLogementAc, [0, cst_mensualit_ligible$1, 0]], + _Ea_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_d_p, 0]], + _Ed_ = + [0, + cst_examples_aides_logement_pr, + 938, + 12, + 938, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Eb_ = + [0, + cst_examples_aides_logement_pr, + 938, + 12, + 938, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _Ee_ = + [0, cst_CalculAllocationLogementAc, [0, cst_aide_finale_formule$9, 0]], + _Eq_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_con, 0]], + _Ey_ = + [0, + cst_CalculAllocationLogementAc, + [0, cst_traitement_aide_finale_mon, 0]], + _Ez_ = + [0, + cst_examples_aides_logement_pr, + 977, + 13, + 977, + 48, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EC_ = + [0, + cst_examples_aides_logement_pr, + 977, + 13, + 977, + 48, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EA_ = + [0, + cst_examples_aides_logement_pr, + 976, + 13, + 976, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _EB_ = + [0, + cst_examples_aides_logement_pr, + 976, + 13, + 976, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yf_ = + [0, + cst_examples_aides_logement_co$0, + 4958, + 14, + 4958, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _yb_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _yc_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + _yd_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _ye_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$257 = cst_0$356, + _yg_ = + [0, + cst_examples_aides_logement_pr, + 1024, + 10, + 1024, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ya_ = + [0, + cst_examples_aides_logement_pr, + 1024, + 10, + 1024, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _x9_ = + [0, + cst_examples_aides_logement_co$0, + 4937, + 14, + 4937, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _x1_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, [0, cst_input0, 0]]], + _x2_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x3_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, [0, cst_output, 0]]], + _x4_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x5_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _x6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _x7_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _x8_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$2 = cst_50$4, + cst_0$255 = cst_0$356, + cst_0$256 = cst_0$356, + _x__ = + [0, + cst_examples_aides_logement_pr, + 1023, + 10, + 1023, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _x0_ = + [0, + cst_examples_aides_logement_pr, + 1023, + 10, + 1023, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xX_ = + [0, + cst_examples_aides_logement_co$0, + 4923, + 14, + 4923, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xT_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, [0, cst_input0, 0]]], + _xU_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, [0, cst_output, 0]]], + _xW_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xY_ = + [0, + cst_examples_aides_logement_pr, + 1022, + 10, + 1022, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xS_ = + [0, + cst_examples_aides_logement_pr, + 1022, + 10, + 1022, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xP_ = + [0, + cst_examples_aides_logement_co$0, + 4905, + 14, + 4905, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xH_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _xI_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xJ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _xK_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xL_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, [0, cst_input0, 0]]], + _xM_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + _xN_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, [0, cst_output, 0]]], + _xO_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + cst_0$253 = cst_0$356, + cst_0$254 = cst_0$356, + _xQ_ = + [0, + cst_examples_aides_logement_pr, + 1021, + 10, + 1021, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xG_ = + [0, + cst_examples_aides_logement_pr, + 1021, + 10, + 1021, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xD_ = + [0, + cst_examples_aides_logement_co$0, + 5012, + 14, + 5012, + 47, + [0, + cst_Article_D842_17, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xv_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _xw_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xx_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _xy_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xz_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_input0, 0]]], + _xA_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xB_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_d_pense_nette_minimale, [0, cst_output, 0]]], + _xC_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + cst_0$252 = cst_0$356, + _xE_ = + [0, + cst_examples_aides_logement_pr, + 998, + 11, + 998, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xu_ = + [0, + cst_examples_aides_logement_pr, + 998, + 11, + 998, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xr_ = + [0, + cst_examples_aides_logement_co$0, + 4831, + 14, + 4831, + 33, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xn_ = + [0, + cst_examples_aides_logement_co$0, + 5003, + 14, + 5003, + 36, + [0, + cst_Article_D842_17, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xo_ = + [0, + cst_examples_aides_logement_pr, + 996, + 11, + 996, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xm_ = + [0, + cst_examples_aides_logement_pr, + 996, + 11, + 996, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xj_ = + [0, + cst_examples_aides_logement_co$0, + 4883, + 14, + 4883, + 27, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _xf_ = + [0, + cst_examples_aides_logement_co$0, + 4891, + 14, + 4891, + 36, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$250 = cst_0$356, + cst_0$251 = cst_0$356, + _xg_ = + [0, + cst_examples_aides_logement_pr, + 1020, + 10, + 1020, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xe_ = + [0, + cst_examples_aides_logement_pr, + 1020, + 10, + 1020, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w$_ = + [0, + cst_examples_aides_logement_ar, + 4406, + 6, + 4413, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$7 = cst_969$14, + cst_3767$7 = cst_3767$14, + _xa_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w9_ = + [0, + cst_examples_aides_logement_ar$0, + 280, + 6, + 287, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$5 = cst_969$14, + cst_3767$5 = cst_3767$14, + cst_6$61 = cst_6$93, + cst_969$6 = cst_969$14, + cst_3767$6 = cst_3767$14, + _w__ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w6_ = + [0, + cst_examples_aides_logement_ar$0, + 1893, + 6, + 1900, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$9 = cst_936$19, + cst_3640$9 = cst_3640$19, + cst_6$60 = cst_6$93, + cst_936$10 = cst_936$19, + cst_3640$10 = cst_3640$19, + _w7_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w5_ = + [0, + cst_examples_aides_logement_ar$0, + 776, + 6, + 783, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$7 = cst_936$19, + cst_3640$7 = cst_3640$19, + cst_6$59 = cst_6$93, + cst_936$8 = cst_936$19, + cst_3640$8 = cst_3640$19, + _w8_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w3_ = + [0, + cst_examples_aides_logement_ar$0, + 2965, + 6, + 2972, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$3 = cst_932$9, + cst_3625$3 = cst_3625$9, + cst_6$58 = cst_6$93, + cst_932$4 = cst_932$9, + cst_3625$4 = cst_3625$9, + _w4_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w1_ = + [0, + cst_examples_aides_logement_ar$0, + 3501, + 6, + 3508, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$3 = cst_929$9, + cst_3614$3 = cst_3614$9, + cst_6$57 = cst_6$93, + cst_929$4 = cst_929$9, + cst_3614$4 = cst_3614$9, + _w2_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xb_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wY_ = + [0, + cst_examples_aides_logement_ar, + 4170, + 29, + 4170, + 56, + [0, + cst_Article_40, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$249 = cst_0$356, + cst_5612$3 = cst_5612$8, + cst_1272$3 = cst_1272$6, + cst_5612$4 = cst_5612$8, + _wZ_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wW_ = + [0, + cst_examples_aides_logement_ar$0, + 1589, + 29, + 1589, + 56, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$248 = cst_0$356, + cst_5422$3 = cst_5422$8, + cst_1229$3 = cst_1229$6, + cst_5422$4 = cst_5422$8, + _wX_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wU_ = + [0, + cst_examples_aides_logement_ar$0, + 2655, + 29, + 2655, + 56, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$247 = cst_0$356, + cst_5399$3 = cst_5399$8, + cst_1224$3 = cst_1224$6, + cst_5399$4 = cst_5399$8, + _wV_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _w0_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wQ_ = + [0, + cst_examples_aides_logement_co$0, + 4852, + 14, + 4852, + 41, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wK_ = + [0, + cst_examples_aides_logement_co$0, + 4881, + 14, + 4881, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wG_ = + [0, + cst_examples_aides_logement_co$0, + 4870, + 14, + 4870, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wC_ = + [0, + cst_examples_aides_logement_co$0, + 4871, + 14, + 4871, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wy_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 14, + 1044, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wt_ = + [0, + cst_examples_aides_logement_ar, + 4213, + 6, + 4213, + 79, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_8708 = "8708", + cst_13559 = "13559", + _wu_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wr_ = + [0, + cst_examples_aides_logement_ar, + 4248, + 6, + 4249, + 38, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_21362 = "21362", + cst_33196 = "33196", + _ws_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wo_ = + [0, + cst_examples_aides_logement_ar, + 4266, + 6, + 4267, + 24, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_17607$0 = cst_17607$1, + cst_27365$0 = cst_27365$1, + _wp_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wn_ = + [0, + cst_examples_aides_logement_ar, + 4230, + 6, + 4231, + 46, + [0, + cst_Article_43, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_17607 = cst_17607$1, + cst_27365 = cst_27365$1, + _wq_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wl_ = + [0, + cst_examples_aides_logement_ar$0, + 1611, + 6, + 1611, + 79, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_8414 = "8414", + cst_13100 = "13100", + _wm_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wj_ = + [0, + cst_examples_aides_logement_ar$0, + 1648, + 6, + 1649, + 38, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_20640 = "20640", + cst_32073 = "32073", + _wk_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wg_ = + [0, + cst_examples_aides_logement_ar$0, + 1667, + 6, + 1668, + 24, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_17012$0 = cst_17012$1, + cst_26440$0 = cst_26440$1, + _wh_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wf_ = + [0, + cst_examples_aides_logement_ar$0, + 1629, + 6, + 1630, + 46, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_17012 = cst_17012$1, + cst_26440 = cst_26440$1, + _wi_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wd_ = + [0, + cst_examples_aides_logement_ar$0, + 2680, + 6, + 2680, + 79, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_8379 = "8379", + cst_13045 = "13045", + _we_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wb_ = + [0, + cst_examples_aides_logement_ar$0, + 2717, + 6, + 2718, + 38, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_20554 = "20554", + cst_31939 = "31939", + _wc_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v__ = + [0, + cst_examples_aides_logement_ar$0, + 2736, + 6, + 2737, + 24, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_16941$0 = cst_16941$1, + cst_26329$0 = cst_26329$1, + _v$_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v9_ = + [0, + cst_examples_aides_logement_ar$0, + 2698, + 6, + 2699, + 46, + [0, + cst_Article_43, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_16941 = cst_16941$1, + cst_26329 = cst_26329$1, + _wa_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v5_ = + [0, + cst_examples_aides_logement_ar, + 4195, + 14, + 4195, + 42, + [0, + "Article 42", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$3 = cst_1000$5, + _v1_ = + [0, + cst_examples_aides_logement_ar, + 4183, + 14, + 4183, + 41, + [0, + "Article 41", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$2 = cst_500$4, + _vX_ = + [0, + cst_examples_aides_logement_ar, + 4287, + 14, + 4287, + 51, + [0, + "Article 44", + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500$0 = cst_1500$2, + cst_6$56 = cst_6$92, + _vN_ = + [0, + cst_examples_aides_logement_ar$0, + 3344, + 5, + 3352, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$55 = cst_6$93, + _vO_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$54 = cst_6$92, + _vM_ = + [0, + cst_examples_aides_logement_ar$0, + 2809, + 5, + 2817, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$53 = cst_6$93, + _vP_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$52 = cst_6$92, + _vL_ = + [0, + cst_examples_aides_logement_ar$0, + 1738, + 5, + 1746, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$51 = cst_6$93, + _vQ_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$50 = cst_6$92, + _vK_ = + [0, + cst_examples_aides_logement_ar$0, + 619, + 5, + 627, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$49 = cst_6$93, + _vR_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_6$48 = cst_6$92, + _vJ_ = + [0, + cst_examples_aides_logement_ar$0, + 126, + 5, + 134, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$47 = cst_6$93, + _vS_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vT_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vF_ = + [0, + cst_examples_aides_logement_ar$0, + 1586, + 14, + 1586, + 47, + [0, + cst_Article_40, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _vG_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vE_ = + [0, + cst_examples_aides_logement_ar, + 4167, + 14, + 4167, + 47, + [0, + cst_Article_40, + [0, + cst_Chapitre_VII_Calcul_des_al, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _vH_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vI_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vy_ = + [0, + cst_examples_aides_logement_co$0, + 5634, + 5, + 5640, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _vz_ = + [0, + cst_examples_aides_logement_co$0, + 5632, + 9, + 5632, + 75, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _vA_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_, 0]], + _vv_ = + [0, + cst_examples_aides_logement_co$0, + 4849, + 14, + 4849, + 61, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _vw_ = + [0, + cst_examples_aides_logement_co$0, + 4849, + 14, + 4849, + 61, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _vx_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$0, 0]], + _vs_ = + [0, + cst_examples_aides_logement_pr, + 1040, + 14, + 1040, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vo_ = + [0, + cst_examples_aides_logement_pr, + 1031, + 14, + 1031, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vk_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 14, + 1041, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vg_ = + [0, + cst_examples_aides_logement_pr, + 1039, + 14, + 1039, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vc_ = + [0, + cst_examples_aides_logement_pr, + 1037, + 14, + 1037, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u__ = + [0, + cst_examples_aides_logement_pr, + 1035, + 14, + 1035, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u6_ = + [0, + cst_examples_aides_logement_pr, + 1033, + 14, + 1033, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u2_ = + [0, + cst_examples_aides_logement_pr, + 1029, + 14, + 1029, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uY_ = + [0, + cst_examples_aides_logement_pr, + 1027, + 14, + 1027, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uS_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 14, + 1043, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uM_ = + [0, + cst_examples_aides_logement_co$0, + 4878, + 14, + 4878, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uI_ = + [0, + cst_examples_aides_logement_co$0, + 4876, + 14, + 4876, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uE_ = + [0, + cst_examples_aides_logement_co$0, + 4874, + 14, + 4874, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uA_ = + [0, + cst_examples_aides_logement_co$0, + 4879, + 14, + 4879, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uB_ = + [0, + cst_examples_aides_logement_co$0, + 4879, + 14, + 4879, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uC_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_condit, 0]], + _uz_ = + [0, + cst_examples_aides_logement_co$0, + 4879, + 14, + 4879, + 55, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uF_ = + [0, + cst_examples_aides_logement_co$0, + 4874, + 14, + 4874, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uG_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_nombre, 0]], + _uD_ = + [0, + cst_examples_aides_logement_co$0, + 4874, + 14, + 4874, + 59, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uJ_ = + [0, + cst_examples_aides_logement_co$0, + 4876, + 14, + 4876, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uK_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_situat, 0]], + _uH_ = + [0, + cst_examples_aides_logement_co$0, + 4876, + 14, + 4876, + 64, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uN_ = + [0, + cst_examples_aides_logement_co$0, + 4878, + 14, + 4878, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uO_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts_r_side, 0]], + _uL_ = + [0, + cst_examples_aides_logement_co$0, + 4878, + 14, + 4878, + 43, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uP_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _uQ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _uT_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 14, + 1043, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uU_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales_dat, 0]], + _uR_ = + [0, + cst_examples_aides_logement_pr, + 1043, + 14, + 1043, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _uW_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _uZ_ = + [0, + cst_examples_aides_logement_pr, + 1027, + 14, + 1027, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u0_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$1, 0]], + _uX_ = + [0, + cst_examples_aides_logement_pr, + 1027, + 14, + 1027, + 59, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u3_ = + [0, + cst_examples_aides_logement_pr, + 1029, + 14, + 1029, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u4_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$2, 0]], + _u1_ = + [0, + cst_examples_aides_logement_pr, + 1029, + 14, + 1029, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u7_ = + [0, + cst_examples_aides_logement_pr, + 1033, + 14, + 1033, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u8_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$3, 0]], + _u5_ = + [0, + cst_examples_aides_logement_pr, + 1033, + 14, + 1033, + 67, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _u$_ = + [0, + cst_examples_aides_logement_pr, + 1035, + 14, + 1035, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _va_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$4, 0]], + _u9_ = + [0, + cst_examples_aides_logement_pr, + 1035, + 14, + 1035, + 65, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vd_ = + [0, + cst_examples_aides_logement_pr, + 1037, + 14, + 1037, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ve_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$5, 0]], + _vb_ = + [0, + cst_examples_aides_logement_pr, + 1037, + 14, + 1037, + 70, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vh_ = + [0, + cst_examples_aides_logement_pr, + 1039, + 14, + 1039, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vi_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$6, 0]], + _vf_ = + [0, + cst_examples_aides_logement_pr, + 1039, + 14, + 1039, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vl_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 14, + 1041, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vm_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$7, 0]], + _vj_ = + [0, + cst_examples_aides_logement_pr, + 1041, + 14, + 1041, + 53, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vp_ = + [0, + cst_examples_aides_logement_pr, + 1031, + 14, + 1031, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vq_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$8, 0]], + _vn_ = + [0, + cst_examples_aides_logement_pr, + 1031, + 14, + 1031, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vt_ = + [0, + cst_examples_aides_logement_pr, + 1040, + 14, + 1040, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vu_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_apl_logement_foyer_$9, 0]], + _vr_ = + [0, + cst_examples_aides_logement_pr, + 1040, + 14, + 1040, + 49, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vB_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _vC_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_apl_logement_foyer, + [0, cst_CalculAidePersonnalis_eLog$0, 0]]], + _vU_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vD_ = + [0, + cst_examples_aides_logement_pr, + 1003, + 11, + 1003, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vV_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_multiplicateur_majoration_, 0]], + _vY_ = + [0, + cst_examples_aides_logement_pr, + 1002, + 11, + 1002, + 48, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vW_ = + [0, + cst_examples_aides_logement_pr, + 1002, + 11, + 1002, + 48, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _vZ_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_minimal_d\xc3\xa9pense_nette_d842_17", 0]], + _v2_ = + [0, + cst_examples_aides_logement_pr, + 1001, + 11, + 1001, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v0_ = + [0, + cst_examples_aides_logement_pr, + 1001, + 11, + 1001, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v3_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_forfaitaire_d842_15", 0]], + _v6_ = + [0, + cst_examples_aides_logement_pr, + 1000, + 11, + 1000, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v4_ = + [0, + cst_examples_aides_logement_pr, + 1000, + 11, + 1000, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v7_ = + [0, + cst_CalculAllocationLogementFo, + [0, "montant_minimal_aide_d842_15", 0]], + _wv_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _v8_ = + [0, + cst_examples_aides_logement_pr, + 1005, + 12, + 1005, + 29, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ww_ = [0, cst_CalculAllocationLogementFo, [0, cst_quivalence_loyer$0, 0]], + _wz_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 14, + 1044, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wA_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _wx_ = + [0, + cst_examples_aides_logement_pr, + 1044, + 14, + 1044, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wD_ = + [0, + cst_examples_aides_logement_co$0, + 4871, + 14, + 4871, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wE_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _wB_ = + [0, + cst_examples_aides_logement_co$0, + 4871, + 14, + 4871, + 75, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wH_ = + [0, + cst_examples_aides_logement_co$0, + 4870, + 14, + 4870, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wI_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _wF_ = + [0, + cst_examples_aides_logement_co$0, + 4870, + 14, + 4870, + 69, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wL_ = + [0, + cst_examples_aides_logement_co$0, + 4881, + 14, + 4881, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wM_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _wJ_ = + [0, + cst_examples_aides_logement_co$0, + 4881, + 14, + 4881, + 70, + [0, + cst_Article_D842_15, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _wN_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _wO_ = + [0, + cst_CalculAllocationLogementFo, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _wR_ = + [0, + cst_examples_aides_logement_pr, + 1004, + 12, + 1004, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wP_ = + [0, + cst_examples_aides_logement_pr, + 1004, + 12, + 1004, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wS_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_coefficient_prise_en_charg$3, 0]], + _xc_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _wT_ = + [0, + cst_examples_aides_logement_pr, + 1006, + 12, + 1006, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xd_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_montant_forfaitaire_charge$1, 0]], + _xh_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_min, 0]], + _xk_ = + [0, + cst_examples_aides_logement_pr, + 1007, + 12, + 1007, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xi_ = + [0, + cst_examples_aides_logement_pr, + 1007, + 12, + 1007, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xl_ = [0, cst_CalculAllocationLogementFo, [0, cst_loyer_minimal$0, 0]], + _xp_ = + [0, cst_CalculAllocationLogementFo, [0, cst_d_pense_nette_minimale, 0]], + _xs_ = + [0, + cst_examples_aides_logement_pr, + 1017, + 12, + 1017, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xq_ = + [0, + cst_examples_aides_logement_pr, + 1017, + 12, + 1017, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _xt_ = + [0, cst_CalculAllocationLogementFo, [0, cst_aide_finale_formule$9, 0]], + _xF_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_abattement_d_pense_nette_m, 0]], + _xR_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_d_p, 0]], + _xZ_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_red, 0]], + _x$_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_con, 0]], + _yh_ = + [0, + cst_CalculAllocationLogementFo, + [0, cst_traitement_aide_finale_mon, 0]], + _yi_ = + [0, + cst_examples_aides_logement_pr, + 1048, + 13, + 1048, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _yj_ = + [0, + cst_examples_aides_logement_pr, + 1048, + 13, + 1048, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uv_ = + [0, + cst_examples_aides_logement_co$0, + 4319, + 24, + 4319, + 43, + [0, + cst_Article_D842_4, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$246 = cst_0$356, + _uw_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uu_ = + [0, + cst_examples_aides_logement_co$0, + 4240, + 14, + 4240, + 33, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _up_ = + [0, + cst_examples_aides_logement_co$0, + 4327, + 24, + 4327, + 46, + [0, + cst_Article_D842_4, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uq_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uo_ = + [0, + cst_examples_aides_logement_co$0, + 4241, + 14, + 4241, + 36, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uk_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, [0, cst_input0, 0]]], + _ul_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, 0]], + _um_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, [0, cst_output, 0]]], + _un_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, 0]], + _ur_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uj_ = + [0, + cst_examples_aides_logement_pr, + 876, + 12, + 876, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ue_ = + [0, + cst_examples_aides_logement_co$0, + 4237, + 14, + 4237, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ua_ = + [0, + cst_examples_aides_logement_co$0, + 4235, + 14, + 4235, + 55, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t8_ = + [0, + cst_examples_aides_logement_co$0, + 4233, + 14, + 4233, + 59, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t4_ = + [0, + cst_examples_aides_logement_co$0, + 4231, + 14, + 4231, + 43, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t0_ = + [0, + cst_examples_aides_logement_co$0, + 4229, + 14, + 4229, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tW_ = + [0, + cst_examples_aides_logement_co$0, + 4225, + 5, + 4226, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tS_ = + [0, + cst_examples_aides_logement_co$0, + 4222, + 14, + 4222, + 53, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tO_ = + [0, + cst_examples_aides_logement_co$0, + 4220, + 14, + 4220, + 37, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tK_ = + [0, + cst_examples_aides_logement_co$0, + 4218, + 14, + 4218, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tG_ = + [0, + cst_examples_aides_logement_co$0, + 4216, + 14, + 4216, + 58, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tC_ = + [0, + cst_examples_aides_logement_co$0, + 4214, + 14, + 4214, + 46, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ty_ = + [0, + cst_examples_aides_logement_co$0, + 4211, + 14, + 4211, + 78, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tu_ = + [0, + cst_examples_aides_logement_co$0, + 4209, + 14, + 4209, + 60, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tq_ = + [0, + cst_examples_aides_logement_co$0, + 4207, + 14, + 4207, + 48, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tr_ = + [0, + cst_examples_aides_logement_co$0, + 4207, + 14, + 4207, + 48, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ts_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.loyer_principal_base", 0]], + _tp_ = + [0, + cst_examples_aides_logement_co$0, + 4207, + 14, + 4207, + 48, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tv_ = + [0, + cst_examples_aides_logement_co$0, + 4209, + 14, + 4209, + 60, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tw_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies", 0]], + _tt_ = + [0, + cst_examples_aides_logement_co$0, + 4209, + 14, + 4209, + 60, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tz_ = + [0, + cst_examples_aides_logement_co$0, + 4211, + 14, + 4211, + 78, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tA_ = + [0, + cst_CalculAllocationLogementLo, + [0, + "calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s", + 0]], + _tx_ = + [0, + cst_examples_aides_logement_co$0, + 4211, + 14, + 4211, + 78, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tD_ = + [0, + cst_examples_aides_logement_co$0, + 4214, + 14, + 4214, + 46, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tE_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.date_courante", 0]], + _tB_ = + [0, + cst_examples_aides_logement_co$0, + 4214, + 14, + 4214, + 46, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tH_ = + [0, + cst_examples_aides_logement_co$0, + 4216, + 14, + 4216, + 58, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tI_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge", 0]], + _tF_ = + [0, + cst_examples_aides_logement_co$0, + 4216, + 14, + 4216, + 58, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tL_ = + [0, + cst_examples_aides_logement_co$0, + 4218, + 14, + 4218, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tM_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.situation_familiale_calcul_apl", 0]], + _tJ_ = + [0, + cst_examples_aides_logement_co$0, + 4218, + 14, + 4218, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tP_ = + [0, + cst_examples_aides_logement_co$0, + 4220, + 14, + 4220, + 37, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tQ_ = + [0, cst_CalculAllocationLogementLo, [0, "calcul_apl_locatif.zone", 0]], + _tN_ = + [0, + cst_examples_aides_logement_co$0, + 4220, + 14, + 4220, + 37, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tT_ = + [0, + cst_examples_aides_logement_co$0, + 4222, + 14, + 4222, + 53, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tU_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.logement_est_chambre", 0]], + _tR_ = + [0, + cst_examples_aides_logement_co$0, + 4222, + 14, + 4222, + 53, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tX_ = + [0, + cst_examples_aides_logement_co$0, + 4225, + 5, + 4226, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _tY_ = + [0, + cst_CalculAllocationLogementLo, + [0, + "calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", + 0]], + _tV_ = + [0, + cst_examples_aides_logement_co$0, + 4225, + 5, + 4226, + 63, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t1_ = + [0, + cst_examples_aides_logement_co$0, + 4229, + 14, + 4229, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t2_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.type_aide", 0]], + _tZ_ = + [0, + cst_examples_aides_logement_co$0, + 4229, + 14, + 4229, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t5_ = + [0, + cst_examples_aides_logement_co$0, + 4231, + 14, + 4231, + 43, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t6_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.colocation", 0]], + _t3_ = + [0, + cst_examples_aides_logement_co$0, + 4231, + 14, + 4231, + 43, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t9_ = + [0, + cst_examples_aides_logement_co$0, + 4233, + 14, + 4233, + 59, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _t__ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9", 0]], + _t7_ = + [0, + cst_examples_aides_logement_co$0, + 4233, + 14, + 4233, + 59, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ub_ = + [0, + cst_examples_aides_logement_co$0, + 4235, + 14, + 4235, + 55, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uc_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2", 0]], + _t$_ = + [0, + cst_examples_aides_logement_co$0, + 4235, + 14, + 4235, + 55, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uf_ = + [0, + cst_examples_aides_logement_co$0, + 4237, + 14, + 4237, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ug_ = + [0, + cst_CalculAllocationLogementLo, + [0, "calcul_apl_locatif.r\xc3\xa9sidence", 0]], + _ud_ = + [0, + cst_examples_aides_logement_co$0, + 4237, + 14, + 4237, + 42, + [0, + cst_Article_D842_1, + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _uh_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$2, 0]]], + _ui_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_calcul_apl_locatif, [0, cst_CalculAidePersonnalis_eLog$2, 0]]], + _us_ = + [0, + cst_CalculAllocationLogementLo, + [0, cst_traitement_aide_finale$9, 0]], + _ux_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ut_ = + [0, + cst_examples_aides_logement_pr, + 874, + 12, + 874, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _uy_ = + [0, cst_CalculAllocationLogementLo, [0, cst_aide_finale_formule$9, 0]], + _te_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_input, 0]]], + _tf_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _tg_ = + [0, + cst_examples_aides_logement_pr$0, + 69, + 6, + 72, + 44, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _th_ = + [0, cst_V_rification_geSup_rieur, [0, cst_direct, [0, cst_output, 0]]], + _ti_ = [0, cst_V_rification_geSup_rieur, [0, cst_direct, 0]], + _tj_ = + [0, + cst_examples_aides_logement_pr$0, + 67, + 5, + 72, + 59, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _tk_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _td_ = + [0, + cst_examples_aides_logement_pr$0, + 56, + 5, + 57, + 50, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _tl_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tm_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tc_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tn_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _tb_ = + [0, + cst_examples_aides_logement_pr$1, + 47, + 12, + 47, + 24, + [0, cst_Prologue_prestations_famil, 0]], + _s9_ = + [0, + cst_examples_aides_logement_pr$0, + 78, + 5, + 82, + 24, + [0, + cst_Article_L512_3, + [0, + cst_Chapitre_2_Champ_d_applica, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _s__ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s8_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s$_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s7_ = + [0, + cst_examples_aides_logement_pr$1, + 49, + 12, + 49, + 31, + [0, cst_Prologue_prestations_famil, 0]], + _s3_ = + [0, + cst_examples_aides_logement_pr$2, + 62, + 18, + 62, + 41, + [0, + "Article R755-0-2", + [0, + "Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es", + [0, + "Titre 5 : D\xc3\xa9partements d'outre-mer", + [0, + cst_Livre_7_R_gimes_divers_Dis, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169$0 = cst_169$1, + cst_0_55$0 = cst_0_55$1, + _s4_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s2_ = + [0, + cst_examples_aides_logement_pr$2, + 31, + 14, + 31, + 30, + [0, + cst_Article_R512_2, + [0, + cst_Chapitre_2_Champ_d_applica$0, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + cst_169 = cst_169$1, + cst_0_55 = cst_0_55$1, + _sR_ = [5, 0], + _sS_ = [4, 0], + _sT_ = [3, 0], + _sU_ = [2, 0], + _sV_ = [1, 0], + _sW_ = [0, 0], + _sX_ = + [0, + cst_examples_aides_logement_pr$0, + 127, + 5, + 132, + 30, + [0, + "Article L751-1", + [0, + "Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s", + [0, + "Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin", + [0, + cst_Livre_7_R_gimes_divers_Dis, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _sY_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sQ_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sK_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sG_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sB_ = + [0, + cst_examples_aides_logement_pr$2, + 21, + 14, + 21, + 26, + [0, + cst_Article_R512_2, + [0, + cst_Chapitre_2_Champ_d_applica$0, + [0, + cst_Titre_1_Champ_d_applicatio, + [0, + cst_Livre_5_Prestations_famili, + [0, + cst_Partie_r_glementaire_D_cre$0, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _sC_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sD_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sA_ = + [0, + cst_examples_aides_logement_pr$1, + 46, + 21, + 46, + 33, + [0, cst_Prologue_prestations_famil, 0]], + _sE_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_ge_l512_3_2$0, 0]], + _sH_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sI_ = [0, cst_ligibilit_PrestationsFamil, [0, "smic.date_courante", 0]], + _sF_ = + [0, + cst_examples_aides_logement_pr$1, + 57, + 14, + 57, + 32, + [0, cst_Prologue_prestations_famil, 0]], + _sL_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sM_ = + [0, cst_ligibilit_PrestationsFamil, [0, "smic.r\xc3\xa9sidence", 0]], + _sJ_ = + [0, + cst_examples_aides_logement_pr$1, + 56, + 14, + 56, + 28, + [0, cst_Prologue_prestations_famil, 0]], + _sN_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], + _sO_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_smic, [0, cst_Smic, 0]]], + _sZ_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _sP_ = + [0, + cst_examples_aides_logement_pr$1, + 51, + 12, + 51, + 35, + [0, cst_Prologue_prestations_famil, 0]], + _s0_ = + [0, + cst_ligibilit_PrestationsFamil, + [0, cst_r_gime_outre_mer_l751_1$0, 0]], + _s5_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s1_ = + [0, + cst_examples_aides_logement_pr$1, + 44, + 11, + 44, + 27, + [0, cst_Prologue_prestations_famil, 0]], + _s6_ = [0, cst_ligibilit_PrestationsFamil, [0, "plafond_l512_3_2", 0]], + _ta_ = + [0, cst_ligibilit_PrestationsFamil, [0, cst_conditions_hors_ge$0, 0]], + _to_ = [0, cst_ligibilit_PrestationsFamil, [0, cst_droit_ouvert$0, 0]], + _sv_ = + [0, + cst_examples_aides_logement_co$0, + 409, + 14, + 409, + 32, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_12$3 = cst_12$4, + cst_0$245 = cst_0$356, + _sr_ = + [0, + cst_examples_aides_logement_co$0, + 462, + 14, + 462, + 32, + [0, + "Article R822-8", + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$244 = cst_0$356, + _sm_ = + [0, + cst_examples_aides_logement_co$0, + 854, + 6, + 857, + 35, + [0, + "Article R822-20", + [0, + "Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants", + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$243 = cst_0$356, + _sn_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sl_ = + [0, + cst_examples_aides_logement_co$0, + 124, + 14, + 124, + 41, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sf_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sb_ = + [0, + cst_examples_aides_logement_ar, + 23, + 14, + 23, + 41, + [0, + "Article 4", + [0, + cst_Chapitre_II_Dispositions_a, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_258900 = "258900", + _r9_ = + [0, + cst_examples_aides_logement_ar, + 12, + 14, + 12, + 41, + [0, + "Article 3", + [0, + cst_Chapitre_II_Dispositions_a, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_9500 = "9500", + _r5_ = + [0, + cst_examples_aides_logement_co$0, + 524, + 14, + 524, + 33, + [0, + "Article R822-10", + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$237 = cst_0$356, + cst_0$238 = cst_0$356, + cst_2$33 = cst_2$105, + cst_90100 = "90100", + cst_135000 = "135000", + cst_0$239 = cst_0$356, + cst_0$240 = cst_0$356, + cst_0$241 = cst_0$356, + cst_0$242 = cst_0$356, + _r1_ = + [0, + cst_examples_aides_logement_co$0, + 129, + 14, + 129, + 62, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$236 = cst_0$356, + _r2_ = + [0, + cst_examples_aides_logement_pr, + 535, + 11, + 535, + 59, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r0_ = + [0, + cst_examples_aides_logement_pr, + 535, + 11, + 535, + 59, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r3_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "ressources_personnes_vivant_habituellement_foyer", 0]], + _r6_ = + [0, + cst_examples_aides_logement_pr, + 540, + 11, + 540, + 30, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r4_ = + [0, + cst_examples_aides_logement_pr, + 540, + 11, + 540, + 30, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r7_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_10", 0]], + _r__ = + [0, + cst_examples_aides_logement_pr, + 539, + 11, + 539, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r8_ = + [0, + cst_examples_aides_logement_pr, + 539, + 11, + 539, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _r$_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "montant_forfaitaire_r_822_7", 0]], + _sc_ = + [0, + cst_examples_aides_logement_pr, + 537, + 11, + 537, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sa_ = + [0, + cst_examples_aides_logement_pr, + 537, + 11, + 537, + 38, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sd_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, "montant_forfaitaire_r_822_8", 0]], + _sg_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sh_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, cst_base_mensuelle_allocations, 0]], + _se_ = + [0, + cst_examples_aides_logement_co$0, + 418, + 14, + 418, + 65, + [0, + cst_Article_R822_7, + [0, + cst_Sous_section_2_Principes_d, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _si_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _sj_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, + cst_base_mensuelle_allocations$0, + [0, cst_BaseMensuelleAllocationsFa, 0]]], + _so_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sk_ = + [0, + cst_examples_aides_logement_pr, + 546, + 12, + 546, + 39, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sp_ = + [0, + cst_RessourcesAidesPersonnelle, + [0, cst_ressources_prises_en_compt$0, 0]], + _ss_ = + [0, + cst_examples_aides_logement_pr, + 536, + 11, + 536, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sq_ = + [0, + cst_examples_aides_logement_pr, + 536, + 11, + 536, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _st_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_8", 0]], + _sw_ = + [0, + cst_examples_aides_logement_pr, + 538, + 11, + 538, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _su_ = + [0, + cst_examples_aides_logement_pr, + 538, + 11, + 538, + 29, + [0, + cst_Prise_en_compte_des_ressou, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _sx_ = [0, cst_RessourcesAidesPersonnelle, [0, "abattement_r_822_7", 0]], + _sy_ = + [0, + cst_examples_aides_logement_co$0, + 142, + 13, + 143, + 74, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _sz_ = + [0, + cst_examples_aides_logement_co$0, + 142, + 13, + 143, + 74, + [0, + cst_Article_R822_2, + [0, + cst_Sous_section_1_Modalit_s_g, + [0, + cst_Section_2_Conditions_relat, + [0, + cst_Chapitre_II_Conditions_g_n, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _rV_ = + [0, + cst_examples_aides_logement_co$0, + 3177, + 14, + 3177, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rR_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _rS_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + _rT_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _rU_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$235 = cst_0$356, + _rW_ = + [0, + cst_examples_aides_logement_pr, + 795, + 10, + 795, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rQ_ = + [0, + cst_examples_aides_logement_pr, + 795, + 10, + 795, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rN_ = + [0, + cst_examples_aides_logement_co$0, + 3084, + 14, + 3084, + 33, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$233 = cst_0$356, + cst_0$234 = cst_0$356, + _rJ_ = + [0, + cst_examples_aides_logement_co$0, + 3157, + 14, + 3157, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rB_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], + _rC_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _rD_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], + _rE_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _rF_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _rG_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _rH_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _rI_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$1 = cst_50$4, + cst_0$231 = cst_0$356, + cst_0$232 = cst_0$356, + _rK_ = + [0, + cst_examples_aides_logement_pr, + 794, + 10, + 794, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rA_ = + [0, + cst_examples_aides_logement_pr, + 794, + 10, + 794, + 40, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rx_ = + [0, + cst_examples_aides_logement_co$0, + 3212, + 14, + 3212, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_95$3 = cst_0_95$5, + cst_0_95$4 = cst_0_95$5, + _rt_ = + [0, + cst_examples_aides_logement_co$0, + 3104, + 14, + 3104, + 33, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rp_ = + [0, + cst_examples_aides_logement_co$0, + 3143, + 14, + 3143, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _rh_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _ri_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _rj_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _rk_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _rl_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$0, [0, cst_input0, 0]]], + _rm_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$0, 0]], + _rn_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$0, [0, cst_output, 0]]], + _ro_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$0, 0]], + cst_0$229 = cst_0$356, + cst_0$230 = cst_0$356, + _rq_ = + [0, + cst_examples_aides_logement_pr, + 793, + 10, + 793, + 20, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rg_ = + [0, + cst_examples_aides_logement_pr, + 793, + 10, + 793, + 20, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rd_ = + [0, + cst_examples_aides_logement_co$0, + 3209, + 14, + 3209, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_100$10 = cst_100$13, + cst_100$11 = cst_100$13, + cst_0_005$2 = cst_0_005$3, + _q__ = + [0, + cst_examples_aides_logement_co$0, + 3425, + 5, + 3437, + 77, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_12$2 = cst_12$4, + cst_0$228 = cst_0$357, + _q$_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q8_ = + [0, + cst_examples_aides_logement_co$0, + 3480, + 5, + 3480, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _q9_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q1_ = + [0, + cst_examples_aides_logement_ar$0, + 2474, + 14, + 2474, + 42, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$10 = cst_0_75$14, + _q2_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q0_ = + [0, + cst_examples_aides_logement_ar$0, + 1394, + 14, + 1394, + 42, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_75$9 = cst_0_75$14, + _q3_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qZ_ = + [0, + cst_examples_aides_logement_ar, + 2419, + 14, + 2419, + 42, + [0, + cst_Article_24, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_75$8 = cst_0_75$14, + _q4_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qV_ = + [0, + cst_examples_aides_logement_co$0, + 3552, + 14, + 3552, + 55, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qR_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83, [0, cst_input0, 0]]], + _qS_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83, 0]], + _qT_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83, [0, cst_output, 0]]], + _qU_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83, 0]], + cst_0$227 = cst_0$356, + _qW_ = + [0, + cst_examples_aides_logement_pr, + 769, + 11, + 769, + 52, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qQ_ = + [0, + cst_examples_aides_logement_pr, + 769, + 11, + 769, + 52, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qN_ = + [0, + cst_examples_aides_logement_co$0, + 3193, + 14, + 3193, + 49, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0_95$2 = cst_0_95$5, + _qH_ = + [0, + cst_examples_aides_logement_co$0, + 3488, + 14, + 3488, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qD_ = + [0, + cst_examples_aides_logement_co$0, + 3485, + 14, + 3485, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qz_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qv_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qq_ = + [0, + cst_examples_aides_logement_co$0, + 3365, + 5, + 3365, + 44, + [0, + cst_Article_D832_14, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qi_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qj_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qk_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _ql_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qm_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qn_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qo_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _qp_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qr_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qh_ = + [0, + cst_examples_aides_logement_co$0, + 3345, + 14, + 3345, + 42, + [0, + cst_Article_D832_14, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qd_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_input0, 0]]], + _qe_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _qf_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, [0, cst_output, 0]]], + _qg_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _p__ = + [0, + cst_examples_aides_logement_co$0, + 3530, + 5, + 3530, + 40, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _p$_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p9_ = + [0, + cst_examples_aides_logement_co$0, + 3541, + 14, + 3541, + 44, + [0, + cst_Article_D832_17, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qa_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p8_ = + [0, + cst_examples_aides_logement_pr, + 767, + 11, + 767, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p5_ = + [0, + cst_examples_aides_logement_co$0, + 3129, + 14, + 3129, + 36, + [0, + cst_Article_D832_10, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$225 = cst_0$356, + cst_0$226 = cst_0$356, + _p6_ = + [0, + cst_examples_aides_logement_pr, + 792, + 10, + 792, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p4_ = + [0, + cst_examples_aides_logement_pr, + 792, + 10, + 792, + 32, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p0_ = + [0, + cst_examples_aides_logement_co$0, + 3594, + 5, + 3594, + 28, + [0, + cst_Article_D832_18, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _p1_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pZ_ = + [0, + cst_examples_aides_logement_co$0, + 3586, + 14, + 3586, + 44, + [0, + cst_Article_D832_18, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _pV_ = + [0, + cst_examples_aides_logement_co$0, + 3278, + 14, + 3278, + 36, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _pP_ = + [0, + cst_examples_aides_logement_ar, + 827, + 5, + 842, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$224 = cst_0$356, + cst_86900 = "86900", + cst_97100 = "97100", + cst_1$178 = cst_1$254, + cst_10200 = "10200", + cst_107300 = "107300", + _pQ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pM_ = + [0, + cst_examples_aides_logement_ar, + 1083, + 5, + 1087, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$221 = cst_0$356, + cst_208500$0 = cst_208500$1, + cst_251500$0 = cst_251500$1, + cst_1$175 = cst_1$254, + cst_43000$0 = cst_43000$1, + cst_294500$0 = cst_294500$1, + cst_0$222 = cst_0$356, + cst_186000$0 = cst_186000$1, + cst_223900$0 = cst_223900$1, + cst_1$176 = cst_1$254, + cst_37900$0 = cst_37900$1, + cst_261800$0 = cst_261800$1, + cst_0$223 = cst_0$356, + cst_173600$0 = cst_173600$1, + cst_208200$0 = cst_208200$1, + cst_1$177 = cst_1$254, + cst_34600 = "34600", + cst_242800$0 = cst_242800$3, + _pN_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pK_ = + [0, + cst_examples_aides_logement_ar, + 1116, + 5, + 1120, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$218 = cst_0$356, + cst_167800$0 = cst_167800$1, + cst_202500$1 = cst_202500$2, + cst_1$172 = cst_1$254, + cst_34700$0 = cst_34700$1, + cst_237200$0 = cst_237200$1, + cst_0$219 = cst_0$356, + cst_149600$0 = cst_149600$1, + cst_180100$0 = cst_180100$2, + cst_1$173 = cst_1$254, + cst_30500$2 = cst_30500$3, + cst_210600$0 = cst_210600$1, + cst_0$220 = cst_0$356, + cst_139700$0 = cst_139700$1, + cst_167600$0 = cst_167600$1, + cst_1$174 = cst_1$254, + cst_27900$0 = cst_27900$1, + cst_195500$0 = cst_195500$1, + _pL_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pI_ = + [0, + cst_examples_aides_logement_ar, + 1149, + 5, + 1153, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$215 = cst_0$356, + cst_198100 = "198100", + cst_239000 = "239000", + cst_1$169 = cst_1$254, + cst_40900 = "40900", + cst_279900 = "279900", + cst_0$216 = cst_0$356, + cst_176800 = "176800", + cst_212800 = "212800", + cst_1$170 = cst_1$254, + cst_36000 = "36000", + cst_248800 = "248800", + cst_0$217 = cst_0$356, + cst_165000 = "165000", + cst_197900 = "197900", + cst_1$171 = cst_1$254, + cst_32900 = "32900", + cst_230800 = "230800", + _pJ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pG_ = + [0, + cst_examples_aides_logement_ar, + 1182, + 5, + 1186, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$212 = cst_0$356, + cst_159500 = "159500", + cst_192500 = cst_192500$1, + cst_1$166 = cst_1$254, + cst_33000 = "33000", + cst_225500 = cst_225500$1, + cst_0$213 = cst_0$356, + cst_142200 = "142200", + cst_171200 = "171200", + cst_1$167 = cst_1$254, + cst_29000 = "29000", + cst_200200 = "200200", + cst_0$214 = cst_0$356, + cst_132800 = "132800", + cst_159300 = "159300", + cst_1$168 = cst_1$254, + cst_26500 = "26500", + cst_185800$0 = cst_185800$1, + _pH_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pE_ = + [0, + cst_examples_aides_logement_ar, + 1215, + 5, + 1219, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$209 = cst_0$356, + cst_200100 = "200100", + cst_141400 = "141400", + cst_1$163 = cst_1$254, + cst_41300 = "41300", + cst_182700 = "182700", + cst_0$210 = cst_0$356, + cst_178600 = "178600", + cst_215000 = "215000", + cst_1$164 = cst_1$254, + cst_36400 = "36400", + cst_251400 = "251400", + cst_0$211 = cst_0$356, + cst_166700 = "166700", + cst_199900 = cst_199900$2, + cst_1$165 = cst_1$254, + cst_33200 = "33200", + cst_233100 = "233100", + _pF_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pC_ = + [0, + cst_examples_aides_logement_ar, + 1248, + 5, + 1252, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$206 = cst_0$356, + cst_161100 = "161100", + cst_194400 = "194400", + cst_1$160 = cst_1$254, + cst_33300 = "33300", + cst_227700 = "227700", + cst_0$207 = cst_0$356, + cst_143600 = "143600", + cst_172900 = "172900", + cst_1$161 = cst_1$254, + cst_29300 = "29300", + cst_202200 = "202200", + cst_0$208 = cst_0$356, + cst_134100 = "134100", + cst_160900 = "160900", + cst_1$162 = cst_1$254, + cst_26800 = "26800", + cst_187700 = "187700", + _pD_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pA_ = + [0, + cst_examples_aides_logement_ar, + 1281, + 5, + 1285, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$203 = cst_0$356, + cst_202500$0 = cst_202500$2, + cst_244300 = "244300", + cst_1$157 = cst_1$254, + cst_41800 = "41800", + cst_286100 = "286100", + cst_0$204 = cst_0$356, + cst_180700 = "180700", + cst_217500 = "217500", + cst_1$158 = cst_1$254, + cst_36800 = "36800", + cst_254300 = "254300", + cst_0$205 = cst_0$356, + cst_168700 = "168700", + cst_202300 = "202300", + cst_1$159 = cst_1$254, + cst_33600 = "33600", + cst_235900 = "235900", + _pB_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _py_ = + [0, + cst_examples_aides_logement_ar, + 1314, + 5, + 1318, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$200 = cst_0$356, + cst_30871 = "30871", + cst_37243 = "37243", + cst_1$154 = cst_1$254, + cst_6372 = "6372", + cst_43615 = "43615", + cst_0$201 = cst_0$356, + cst_27548 = "27548", + cst_33148 = "33148", + cst_1$155 = cst_1$254, + cst_5610 = "5610", + cst_38768 = "38768", + cst_0$202 = cst_0$356, + cst_25718 = "25718", + cst_30840 = "30840", + cst_1$156 = cst_1$254, + cst_5122 = "5122", + cst_35962 = "35962", + _pz_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pw_ = + [0, + cst_examples_aides_logement_ar, + 1347, + 5, + 1351, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$197 = cst_0$356, + cst_163000 = cst_163000$1, + cst_196700 = "196700", + cst_1$151 = cst_1$254, + cst_33700 = "33700", + cst_230400 = "230400", + cst_0$198 = cst_0$356, + cst_145300 = "145300", + cst_175000 = "175000", + cst_1$152 = cst_1$254, + cst_29700 = "29700", + cst_204700 = cst_204700$1, + cst_0$199 = cst_0$356, + cst_135700 = "135700", + cst_162800 = "162800", + cst_1$153 = cst_1$254, + cst_27100 = "27100", + cst_189900 = "189900", + _px_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pu_ = + [0, + cst_examples_aides_logement_ar, + 1380, + 5, + 1384, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$194 = cst_0$356, + cst_24849 = "24849", + cst_29987 = "29987", + cst_1$148 = cst_1$254, + cst_5138 = "5138", + cst_35125 = "35125", + cst_0$195 = cst_0$356, + cst_22151 = "22151", + cst_26679 = "26679", + cst_1$149 = cst_1$254, + cst_4528 = "4528", + cst_31207 = "31207", + cst_0$196 = cst_0$356, + cst_20687 = "20687", + cst_24818 = "24818", + cst_1$150 = cst_1$254, + cst_4131 = "4131", + cst_28949 = "28949", + _pv_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ps_ = + [0, + cst_examples_aides_logement_ar, + 1413, + 5, + 1417, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$191 = cst_0$356, + cst_31241 = "31241", + cst_37689 = "37689", + cst_1$145 = cst_1$254, + cst_6448 = "6448", + cst_44137 = "44137", + cst_0$192 = cst_0$356, + cst_27879 = "27879", + cst_33556 = "33556", + cst_1$146 = cst_1$254, + cst_5677 = "5677", + cst_39233 = "39233", + cst_0$193 = cst_0$356, + cst_26027 = "26027", + cst_31210 = "31210", + cst_1$147 = cst_1$254, + cst_5183 = "5183", + cst_36393 = "36393", + _pt_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pq_ = + [0, + cst_examples_aides_logement_ar, + 1446, + 5, + 1450, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$188 = cst_0$356, + cst_25147 = "25147", + cst_30347 = "30347", + cst_1$142 = cst_1$254, + cst_5200 = "5200", + cst_35547 = "35547", + cst_0$189 = cst_0$356, + cst_22417 = "22417", + cst_26999 = "26999", + cst_1$143 = cst_1$254, + cst_4582 = "4582", + cst_31581 = "31581", + cst_0$190 = cst_0$356, + cst_20935 = "20935", + cst_25116$0 = cst_25116$1, + cst_1$144 = cst_1$254, + cst_4181 = "4181", + cst_29297 = "29297", + _pr_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _po_ = + [0, + cst_examples_aides_logement_ar, + 1479, + 5, + 1483, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$185 = cst_0$356, + cst_31616 = "31616", + cst_38141 = "38141", + cst_1$139 = cst_1$254, + cst_6525 = "6525", + cst_44666 = "44666", + cst_0$186 = cst_0$356, + cst_28214 = "28214", + cst_33959 = "33959", + cst_1$140 = cst_1$254, + cst_5745 = "5745", + cst_39704 = "39704", + cst_0$187 = cst_0$356, + cst_26339 = "26339", + cst_31584 = "31584", + cst_1$141 = cst_1$254, + cst_5245 = "5245", + cst_36829 = "36829", + _pp_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pm_ = + [0, + cst_examples_aides_logement_ar, + 1512, + 5, + 1516, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$182 = cst_0$356, + cst_25449 = "25449", + cst_30711 = "30711", + cst_1$136 = cst_1$254, + cst_5262 = "5262", + cst_35973 = "35973", + cst_0$183 = cst_0$356, + cst_22686 = "22686", + cst_27323 = "27323", + cst_1$137 = cst_1$254, + cst_4637 = "4637", + cst_31960 = "31960", + cst_0$184 = cst_0$356, + cst_21186 = "21186", + cst_25417 = "25417", + cst_1$138 = cst_1$254, + cst_4231 = "4231", + cst_29648 = "29648", + _pn_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pk_ = + [0, + cst_examples_aides_logement_ar, + 1545, + 5, + 1549, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$179 = cst_0$356, + cst_32185 = "32185", + cst_38827 = "38827", + cst_1$133 = cst_1$254, + cst_6642 = "6642", + cst_45469 = "45469", + cst_0$180 = cst_0$356, + cst_28722 = "28722", + cst_34570$0 = cst_34570$1, + cst_1$134 = cst_1$254, + cst_5848 = "5848", + cst_40418 = "40418", + cst_0$181 = cst_0$356, + cst_26813 = "26813", + cst_32152 = "32152", + cst_1$135 = cst_1$254, + cst_5339 = "5339", + cst_37491 = "37491", + _pl_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pi_ = + [0, + cst_examples_aides_logement_ar, + 1578, + 5, + 1582, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$176 = cst_0$356, + cst_25907 = "25907", + cst_31264 = cst_31264$1, + cst_1$130 = cst_1$254, + cst_5357 = "5357", + cst_36621 = "36621", + cst_0$177 = cst_0$356, + cst_23094 = "23094", + cst_27814 = "27814", + cst_1$131 = cst_1$254, + cst_4720 = "4720", + cst_32534 = "32534", + cst_0$178 = cst_0$356, + cst_21567 = "21567", + cst_25874 = "25874", + cst_1$132 = cst_1$254, + cst_4307 = "4307", + cst_30181 = "30181", + _pj_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pg_ = + [0, + cst_examples_aides_logement_ar, + 1611, + 5, + 1615, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$173 = cst_0$356, + cst_33086 = "33086", + cst_39914 = "39914", + cst_1$127 = cst_1$254, + cst_6828 = "6828", + cst_46742 = "46742", + cst_0$174 = cst_0$356, + cst_29526 = "29526", + cst_35538 = "35538", + cst_1$128 = cst_1$254, + cst_6012 = "6012", + cst_41550 = "41550", + cst_0$175 = cst_0$356, + cst_27564 = "27564", + cst_33052 = "33052", + cst_1$129 = cst_1$254, + cst_5488 = "5488", + cst_38541 = "38541", + _ph_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pe_ = + [0, + cst_examples_aides_logement_ar, + 1644, + 5, + 1648, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$170 = cst_0$356, + cst_26632 = "26632", + cst_32139 = "32139", + cst_1$124 = cst_1$254, + cst_5507 = "5507", + cst_37646 = "37646", + cst_0$171 = cst_0$356, + cst_23741 = "23741", + cst_28593 = "28593", + cst_1$125 = cst_1$254, + cst_4852 = "4852", + cst_33445 = "33445", + cst_0$172 = cst_0$356, + cst_22171 = "22171", + cst_36598 = "36598", + cst_1$126 = cst_1$254, + cst_4428 = "4428", + cst_31026 = "31026", + _pf_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pc_ = + [0, + cst_examples_aides_logement_ar, + 1677, + 5, + 1681, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$167 = cst_0$356, + cst_33999 = "33999", + cst_41016 = "41016", + cst_1$121 = cst_1$254, + cst_7016 = "7016", + cst_48032 = "48032", + cst_0$168 = cst_0$356, + cst_30341 = "30341", + cst_36519 = "36519", + cst_1$122 = cst_1$254, + cst_6178 = "6178", + cst_42697 = "42697", + cst_0$169 = cst_0$356, + cst_28325 = "28325", + cst_33964 = "33964", + cst_1$123 = cst_1$254, + cst_5639 = "5639", + cst_39605 = "39605", + _pd_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pa_ = + [0, + cst_examples_aides_logement_ar, + 1710, + 5, + 1714, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$164 = cst_0$356, + cst_27367 = "27367", + cst_33026 = "33026", + cst_1$118 = cst_1$254, + cst_5659 = "5659", + cst_38685 = "38685", + cst_0$165 = cst_0$356, + cst_24396 = "24396", + cst_29382 = "29382", + cst_1$119 = cst_1$254, + cst_4986$0 = cst_4986$1, + cst_34368 = "34368", + cst_0$166 = cst_0$356, + cst_22783 = "22783", + cst_27332 = "27332", + cst_1$120 = cst_1$254, + cst_4550 = "4550", + cst_31882 = "31882", + _pb_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o__ = + [0, + cst_examples_aides_logement_ar, + 1743, + 5, + 1747, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$161 = cst_0$356, + cst_35002 = "35002", + cst_42226 = "42226", + cst_1$115 = cst_1$254, + cst_7223 = "7223", + cst_49449 = "49449", + cst_0$162 = cst_0$356, + cst_31236 = "31236", + cst_37596 = "37596", + cst_1$116 = cst_1$254, + cst_6360 = "6360", + cst_43957 = "43957", + cst_0$163 = cst_0$356, + cst_29161 = "29161", + cst_34966 = "34966", + cst_1$117 = cst_1$254, + cst_5805 = "5805", + cst_40773 = "40773", + _o$_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o8_ = + [0, + cst_examples_aides_logement_ar, + 1776, + 5, + 1780, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$158 = cst_0$356, + cst_28174 = "28174", + cst_34000 = "34000", + cst_1$112 = cst_1$254, + cst_5826 = "5826", + cst_39826 = "39826", + cst_0$159 = cst_0$356, + cst_25116 = cst_25116$1, + cst_30249 = "30249", + cst_1$113 = cst_1$254, + cst_5133 = "5133", + cst_35382 = "35382", + cst_0$160 = cst_0$356, + cst_23455 = "23455", + cst_28138 = "28138", + cst_1$114 = cst_1$254, + cst_4684 = "4684", + cst_32823 = "32823", + _o9_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o6_ = + [0, + cst_examples_aides_logement_ar, + 1809, + 5, + 1813, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$155 = cst_0$356, + cst_35114 = "35114", + cst_42361 = "42361", + cst_1$109 = cst_1$254, + cst_7246 = "7246", + cst_49607 = "49607", + cst_0$156 = cst_0$356, + cst_31336 = "31336", + cst_37716 = "37716", + cst_1$110 = cst_1$254, + cst_6380 = "6380", + cst_44098 = "44098", + cst_0$157 = cst_0$356, + cst_29254 = "29254", + cst_35078 = "35078", + cst_1$111 = cst_1$254, + cst_5824 = "5824", + cst_40903 = "40903", + _o7_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o4_ = + [0, + cst_examples_aides_logement_ar, + 1842, + 5, + 1846, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$152 = cst_0$356, + cst_28264 = "28264", + cst_34109 = "34109", + cst_1$106 = cst_1$254, + cst_5845 = "5845", + cst_39953 = "39953", + cst_0$153 = cst_0$356, + cst_25196 = "25196", + cst_30346 = "30346", + cst_1$107 = cst_1$254, + cst_5149 = "5149", + cst_35495 = "35495", + cst_0$154 = cst_0$356, + cst_23530 = "23530", + cst_28228 = "28228", + cst_1$108 = cst_1$254, + cst_4699 = "4699", + cst_32928 = "32928", + _o5_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o2_ = + [0, + cst_examples_aides_logement_ar, + 1875, + 5, + 1879, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$149 = cst_0$356, + cst_35500 = "35500", + cst_42827 = "42827", + cst_1$103 = cst_1$254, + cst_7326 = "7326", + cst_50153 = "50153", + cst_0$150 = cst_0$356, + cst_31681 = "31681", + cst_38131 = "38131", + cst_1$104 = cst_1$254, + cst_6450 = "6450", + cst_44583 = "44583", + cst_0$151 = cst_0$356, + cst_29576 = "29576", + cst_35464 = "35464", + cst_1$105 = cst_1$254, + cst_5888 = "5888", + cst_41353 = "41353", + _o3_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _o0_ = + [0, + cst_examples_aides_logement_ar, + 1908, + 5, + 1912, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$146 = cst_0$356, + cst_28575 = "28575", + cst_34484 = "34484", + cst_1$100 = cst_1$254, + cst_5909 = "5909", + cst_40392 = "40392", + cst_0$147 = cst_0$356, + cst_25473 = "25473", + cst_30680 = "30680", + cst_1$101 = cst_1$254, + cst_5206 = "5206", + cst_35885 = "35885", + cst_0$148 = cst_0$356, + cst_23789 = "23789", + cst_28539 = "28539", + cst_1$102 = cst_1$254, + cst_4751 = "4751", + cst_33290 = "33290", + _o1_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oY_ = + [0, + cst_examples_aides_logement_ar, + 1941, + 5, + 1945, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$143 = cst_0$356, + cst_35855 = "35855", + cst_43255 = "43255", + cst_1$97 = cst_1$254, + cst_7399 = "7399", + cst_50655 = "50655", + cst_0$144 = cst_0$356, + cst_31998 = "31998", + cst_38512 = "38512", + cst_1$98 = cst_1$254, + cst_6515 = "6515", + cst_45029 = "45029", + cst_0$145 = cst_0$356, + cst_29872 = "29872", + cst_35819 = "35819", + cst_1$99 = cst_1$254, + cst_5947 = "5947", + cst_41767 = "41767", + _oZ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oW_ = + [0, + cst_examples_aides_logement_ar, + 1974, + 5, + 1978, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$140 = cst_0$356, + cst_28861 = "28861", + cst_34829$0 = cst_34829$1, + cst_1$94 = cst_1$254, + cst_5968 = "5968", + cst_40796 = "40796", + cst_0$141 = cst_0$356, + cst_25728 = "25728", + cst_30987 = "30987", + cst_1$95 = cst_1$254, + cst_5258 = "5258", + cst_36244 = "36244", + cst_0$142 = cst_0$356, + cst_24027 = "24027", + cst_28824 = "28824", + cst_1$96 = cst_1$254, + cst_4799 = "4799", + cst_33623 = cst_33623$1, + _oX_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oU_ = + [0, + cst_examples_aides_logement_ar, + 2007, + 5, + 2011, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$137 = cst_0$356, + cst_36626 = "36626", + cst_44185 = "44185", + cst_1$91 = cst_1$254, + cst_7558 = "7558", + cst_51744 = "51744", + cst_0$138 = cst_0$356, + cst_32686 = "32686", + cst_39340 = cst_39340$1, + cst_1$92 = cst_1$254, + cst_6655 = "6655", + cst_45997 = "45997", + cst_0$139 = cst_0$356, + cst_30514 = "30514", + cst_36589 = "36589", + cst_1$93 = cst_1$254, + cst_6075 = "6075", + cst_42665 = "42665", + _oV_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oS_ = + [0, + cst_examples_aides_logement_ar, + 2040, + 5, + 2044, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$134 = cst_0$356, + cst_29482 = "29482", + cst_35578 = "35578", + cst_1$88 = cst_1$254, + cst_6096 = "6096", + cst_41673 = "41673", + cst_0$135 = cst_0$356, + cst_26281 = "26281", + cst_31653 = "31653", + cst_1$89 = cst_1$254, + cst_5371 = "5371", + cst_37023 = "37023", + cst_0$136 = cst_0$356, + cst_24544 = "24544", + cst_29444 = "29444", + cst_1$90 = cst_1$254, + cst_4902 = "4902", + cst_34346 = "34346", + _oT_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oQ_ = + [0, + cst_examples_aides_logement_ar, + 2073, + 5, + 2077, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$131 = cst_0$356, + cst_36835 = "36835", + cst_44437 = "44437", + cst_1$85 = cst_1$254, + cst_7601 = "7601", + cst_52039 = "52039", + cst_0$132 = cst_0$356, + cst_32872 = "32872", + cst_39564 = "39564", + cst_1$86 = cst_1$254, + cst_6693 = "6693", + cst_46259 = "46259", + cst_0$133 = cst_0$356, + cst_30688 = "30688", + cst_36798 = "36798", + cst_1$87 = cst_1$254, + cst_6110 = "6110", + cst_42908 = "42908", + _oR_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oO_ = + [0, + cst_examples_aides_logement_ar, + 2106, + 5, + 2110, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$128 = cst_0$356, + cst_29650 = "29650", + cst_35781 = "35781", + cst_1$82 = cst_1$254, + cst_6131 = "6131", + cst_41911 = "41911", + cst_0$129 = cst_0$356, + cst_26431 = "26431", + cst_31833 = "31833", + cst_1$83 = cst_1$254, + cst_5402 = "5402", + cst_37234 = "37234", + cst_0$130 = cst_0$356, + cst_24684 = "24684", + cst_29612 = "29612", + cst_1$84 = cst_1$254, + cst_4930 = "4930", + cst_34542 = "34542", + _oP_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oM_ = + [0, + cst_examples_aides_logement_ar, + 2139, + 5, + 2143, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$125 = cst_0$356, + cst_36864 = "36864", + cst_44473 = "44473", + cst_1$79 = cst_1$254, + cst_7607 = "7607", + cst_52081 = "52081", + cst_0$126 = cst_0$356, + cst_32898 = "32898", + cst_39596 = "39596", + cst_1$80 = cst_1$254, + cst_6698 = "6698", + cst_46296 = "46296", + cst_0$127 = cst_0$356, + cst_30713 = "30713", + cst_36827 = "36827", + cst_1$81 = cst_1$254, + cst_6115 = "6115", + cst_42942 = "42942", + _oN_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oK_ = + [0, + cst_examples_aides_logement_ar, + 2172, + 5, + 2176, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$122 = cst_0$356, + cst_29674 = "29674", + cst_35810 = "35810", + cst_1$76 = cst_1$254, + cst_6136 = "6136", + cst_41945 = "41945", + cst_0$123 = cst_0$356, + cst_26452 = "26452", + cst_31858 = "31858", + cst_1$77 = cst_1$254, + cst_5406 = "5406", + cst_37264 = "37264", + cst_0$124 = cst_0$356, + cst_24704 = "24704", + cst_29636 = "29636", + cst_1$78 = cst_1$254, + cst_4934 = "4934", + cst_34570 = cst_34570$1, + _oL_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oI_ = + [0, + cst_examples_aides_logement_ar, + 2205, + 5, + 2209, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$119 = cst_0$356, + cst_37140 = "37140", + cst_44807 = "44807", + cst_1$73 = cst_1$254, + cst_7664 = "7664", + cst_52472 = "52472", + cst_0$120 = cst_0$356, + cst_33145 = "33145", + cst_39893 = "39893", + cst_1$74 = cst_1$254, + cst_6748 = "6748", + cst_46643 = "46643", + cst_0$121 = cst_0$356, + cst_30943 = "30943", + cst_37103 = "37103", + cst_1$75 = cst_1$254, + cst_6161 = "6161", + cst_43264 = "43264", + _oJ_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oG_ = + [0, + cst_examples_aides_logement_ar, + 2238, + 5, + 2242, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$116 = cst_0$356, + cst_29897 = "29897", + cst_36079 = "36079", + cst_1$70 = cst_1$254, + cst_6182 = "6182", + cst_42260 = "42260", + cst_0$117 = cst_0$356, + cst_26650 = "26650", + cst_32097 = "32097", + cst_1$71 = cst_1$254, + cst_5447 = "5447", + cst_37543 = "37543", + cst_0$118 = cst_0$356, + cst_24889 = "24889", + cst_29858 = "29858", + cst_1$72 = cst_1$254, + cst_4971 = "4971", + cst_34829 = cst_34829$1, + _oH_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oE_ = + [0, + cst_examples_aides_logement_ar, + 2271, + 5, + 2274, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$113 = cst_0$356, + cst_37252 = "37252", + cst_44941 = "44941", + cst_1$67 = cst_1$254, + cst_7687 = "7687", + cst_52629 = "52629", + cst_0$114 = cst_0$356, + cst_33244 = "33244", + cst_40013 = "40013", + cst_1$68 = cst_1$254, + cst_6768 = "6768", + cst_46783 = "46783", + cst_0$115 = cst_0$356, + cst_31036 = "31036", + cst_37215 = "37215", + cst_1$69 = cst_1$254, + cst_6179 = "6179", + cst_43394 = "43394", + _oF_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oC_ = + [0, + cst_examples_aides_logement_ar, + 2303, + 5, + 2306, + 36, + [0, + cst_Article_18, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$110 = cst_0$356, + cst_29986 = "29986", + cst_36187 = "36187", + cst_1$64 = cst_1$254, + cst_6201 = "6201", + cst_42386 = "42386", + cst_0$111 = cst_0$356, + cst_26730 = "26730", + cst_32193 = "32193", + cst_1$65 = cst_1$254, + cst_5463 = "5463", + cst_37656 = "37656", + cst_0$112 = cst_0$356, + cst_24964 = "24964", + cst_29948 = "29948", + cst_1$66 = cst_1$254, + cst_4986 = cst_4986$1, + cst_34934 = "34934", + _oD_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pO_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pR_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oz_ = + [0, + cst_examples_aides_logement_ar, + 635, + 5, + 638, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$107 = cst_0$356, + cst_208500 = cst_208500$1, + cst_251500 = cst_251500$1, + cst_1$61 = cst_1$254, + cst_43000 = cst_43000$1, + cst_294500 = cst_294500$1, + cst_0$108 = cst_0$356, + cst_186000 = cst_186000$1, + cst_223900 = cst_223900$1, + cst_1$62 = cst_1$254, + cst_37900 = cst_37900$1, + cst_261800 = cst_261800$1, + cst_0$109 = cst_0$356, + cst_173600 = cst_173600$1, + cst_208200 = cst_208200$1, + cst_1$63 = cst_1$254, + cst_35600 = "35600", + cst_242800 = cst_242800$3, + _oA_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ox_ = + [0, + cst_examples_aides_logement_ar, + 680, + 5, + 683, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$104 = cst_0$356, + cst_167800 = cst_167800$1, + cst_202500 = cst_202500$2, + cst_1$58 = cst_1$254, + cst_34700 = cst_34700$1, + cst_237200 = cst_237200$1, + cst_0$105 = cst_0$356, + cst_149600 = cst_149600$1, + cst_180100 = cst_180100$2, + cst_1$59 = cst_1$254, + cst_30500$1 = cst_30500$3, + cst_210600 = cst_210600$1, + cst_0$106 = cst_0$356, + cst_139700 = cst_139700$1, + cst_167600 = cst_167600$1, + cst_1$60 = cst_1$254, + cst_27900 = cst_27900$1, + cst_195500 = cst_195500$1, + _oy_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ov_ = + [0, + cst_examples_aides_logement_ar, + 726, + 5, + 728, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$101 = cst_0$356, + cst_184000 = cst_184000$2, + cst_220000 = "220000", + cst_1$55 = cst_1$254, + cst_38000 = "38000", + cst_260000 = "260000", + cst_0$102 = cst_0$356, + cst_164200 = "164200", + cst_197700 = cst_197700$1, + cst_1$56 = cst_1$254, + cst_33500 = cst_33500$1, + cst_231200 = "231200", + cst_0$103 = cst_0$356, + cst_153200 = "153200", + cst_183700 = "183700", + cst_1$57 = cst_1$254, + cst_30500$0 = cst_30500$3, + cst_214200 = "214200", + _ow_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ot_ = + [0, + cst_examples_aides_logement_ar, + 770, + 5, + 772, + 33, + [0, + cst_Article_17, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$98 = cst_0$356, + cst_148100 = "148100", + cst_178700 = "178700", + cst_1$52 = cst_1$254, + cst_30600 = "30600", + cst_209300 = "209300", + cst_0$99 = cst_0$356, + cst_132000 = cst_132000$1, + cst_158900 = "158900", + cst_1$53 = cst_1$254, + cst_26900 = "26900", + cst_185800 = cst_185800$1, + cst_0$100 = cst_0$356, + cst_123300 = "123300", + cst_147900 = "147900", + cst_1$54 = cst_1$254, + cst_24600 = "24600", + cst_172500 = cst_172500$1, + _ou_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oB_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _os_ = + [0, + cst_examples_aides_logement_pr, + 760, + 55, + 760, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pS_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _or_ = + [0, + cst_examples_aides_logement_pr, + 760, + 11, + 760, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _om_ = + [0, + cst_examples_aides_logement_ar, + 2438, + 7, + 2438, + 18, + [0, + cst_Article_24, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$2 = cst_1272$6, + cst_2805$0 = cst_2805$2, + cst_5612$2 = cst_5612$8, + _on_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ok_ = + [0, + cst_examples_aides_logement_ar$0, + 1414, + 7, + 1414, + 18, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$2 = cst_1229$6, + cst_2710$0 = cst_2710$2, + cst_5422$2 = cst_5422$8, + _ol_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oi_ = + [0, + cst_examples_aides_logement_ar$0, + 2494, + 7, + 2494, + 18, + [0, + cst_Article_24, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$2 = cst_1224$6, + cst_2699$0 = cst_2699$2, + cst_5399$2 = cst_5399$8, + _oj_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oo_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _of_ = + [0, + cst_examples_aides_logement_ar, + 2355, + 29, + 2355, + 64, + [0, + cst_Article_19, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$1 = cst_1272$6, + cst_5612$1 = cst_5612$8, + _og_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _od_ = + [0, + cst_examples_aides_logement_ar$0, + 1380, + 29, + 1380, + 64, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$1 = cst_1229$6, + cst_5422$1 = cst_5422$8, + _oe_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ob_ = + [0, + cst_examples_aides_logement_ar$0, + 2460, + 29, + 2460, + 64, + [0, + cst_Article_19, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$1 = cst_1224$6, + cst_5399$1 = cst_5399$8, + _oc_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oh_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n9_ = + [0, + cst_examples_aides_logement_ar, + 2367, + 14, + 2367, + 41, + [0, + "Article 20", + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$1 = cst_500$4, + _n5_ = + [0, + cst_examples_aides_logement_ar, + 2379, + 14, + 2379, + 42, + [0, + "Article 21", + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$2 = cst_1000$5, + _n1_ = + [0, + cst_examples_aides_logement_ar, + 2466, + 14, + 2466, + 50, + [0, + "Article 25", + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_0226 = cst_0_0226$1, + cst_0_0234 = cst_0_0234$2, + cst_0_0172 = "0.0172", + cst_0_0226$0 = cst_0_0226$1, + cst_0_0234$0 = cst_0_0234$2, + _nX_ = + [0, + cst_examples_aides_logement_ar, + 2389, + 14, + 2389, + 48, + [0, + "Article 22", + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_2211133 = "2211133", + _nT_ = + [0, + cst_examples_aides_logement_ar, + 2485, + 14, + 2485, + 48, + [0, + "Article 26", + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_16_25 = cst_16_25$1, + _nP_ = + [0, + cst_examples_aides_logement_ar, + 2405, + 14, + 2405, + 47, + [0, + cst_Article_23, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_560085 = "560085", + _nL_ = + [0, + cst_examples_aides_logement_ar, + 2406, + 14, + 2406, + 47, + [0, + cst_Article_23, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_208$0 = cst_0_208$1, + _nH_ = + [0, + cst_examples_aides_logement_ar, + 2407, + 14, + 2407, + 47, + [0, + cst_Article_23, + [0, + cst_Chapitre_IV_Calcul_de_l_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_416 = "0.416", + _nB_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nv_ = + [0, + cst_examples_aides_logement_co$0, + 3282, + 14, + 3282, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nr_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nn_ = + [0, + cst_examples_aides_logement_au, + 327, + 14, + 327, + 36, + [0, cst_Article_premier, [0, cst_R_glement_CE_n_2866_98_du_, 0]]], + cst_6_55957 = cst_6_55957$1, + cst_1$51 = cst_1$255, + _no_ = + [0, + cst_examples_aides_logement_pr, + 781, + 11, + 781, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nm_ = + [0, + cst_examples_aides_logement_pr, + 781, + 11, + 781, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _np_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_taux_francs_vers_euros, 0]], + _ns_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nt_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_nombre, 0]], + _nq_ = + [0, + cst_examples_aides_logement_co$0, + 3280, + 14, + 3280, + 59, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nw_ = + [0, + cst_examples_aides_logement_co$0, + 3282, + 14, + 3282, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _nx_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts_situat, 0]], + _nu_ = + [0, + cst_examples_aides_logement_co$0, + 3282, + 14, + 3282, + 64, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _ny_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _nz_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartsAccession, 0]]], + _nC_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nD_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales_dat, 0]], + _nA_ = + [0, + cst_examples_aides_logement_pr, + 798, + 14, + 798, + 50, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nE_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _nF_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _nI_ = + [0, + cst_examples_aides_logement_pr, + 780, + 11, + 780, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nG_ = + [0, + cst_examples_aides_logement_pr, + 780, + 11, + 780, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nJ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "taux_tranche_sup\xc3\xa9rieure_d832_15_1", 0]], + _nM_ = + [0, + cst_examples_aides_logement_pr, + 779, + 11, + 779, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nK_ = + [0, + cst_examples_aides_logement_pr, + 779, + 11, + 779, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nN_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "taux_tranche_inf\xc3\xa9rieure_d832_15_1", 0]], + _nQ_ = + [0, + cst_examples_aides_logement_pr, + 778, + 11, + 778, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nO_ = + [0, + cst_examples_aides_logement_pr, + 778, + 11, + 778, + 44, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nR_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_limite_tranches_d832_15_1", 0]], + _nU_ = + [0, + cst_examples_aides_logement_pr, + 777, + 11, + 777, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nS_ = + [0, + cst_examples_aides_logement_pr, + 777, + 11, + 777, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nV_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_multiplicateur_d832_18", 0]], + _nY_ = + [0, + cst_examples_aides_logement_pr, + 776, + 11, + 776, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nW_ = + [0, + cst_examples_aides_logement_pr, + 776, + 11, + 776, + 45, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nZ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_multiplicateur_d832_11", 0]], + _n2_ = + [0, + cst_examples_aides_logement_pr, + 775, + 11, + 775, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n0_ = + [0, + cst_examples_aides_logement_pr, + 775, + 11, + 775, + 47, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n3_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_multiplicateur_d832_17_3", 0]], + _n6_ = + [0, + cst_examples_aides_logement_pr, + 774, + 11, + 774, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n4_ = + [0, + cst_examples_aides_logement_pr, + 774, + 11, + 774, + 39, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n7_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_minimal_aide_d832_10", 0]], + _n__ = + [0, + cst_examples_aides_logement_pr, + 773, + 11, + 773, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n8_ = + [0, + cst_examples_aides_logement_pr, + 773, + 11, + 773, + 38, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _n$_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_forfaitaire_d832_10", 0]], + _op_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oa_ = + [0, + cst_examples_aides_logement_pr, + 772, + 11, + 772, + 46, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _oq_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "montant_forfaitaire_charges_d832_10", 0]], + _pT_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_plafond_mensualit_d$2, 0]], + _pW_ = + [0, + cst_examples_aides_logement_pr, + 762, + 11, + 762, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pU_ = + [0, + cst_examples_aides_logement_pr, + 762, + 11, + 762, + 33, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_n_nombre_parts_d832_11$0, 0]], + _p2_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _pY_ = + [0, + cst_examples_aides_logement_pr, + 771, + 11, + 771, + 41, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _p3_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "ressources_m\xc3\xa9nage_avec_d832_18", 0]], + _p7_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_min, 0]], + _qb_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_d_pense_nette_minimale_d83, 0]], + _qs_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qc_ = + [0, + cst_examples_aides_logement_pr, + 758, + 10, + 758, + 14, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qt_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "plafond_mensualit\xc3\xa9_d832_10_3_base", 0]], + _qw_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qx_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _qu_ = + [0, + cst_examples_aides_logement_pr, + 799, + 14, + 799, + 61, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qA_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qB_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _qy_ = + [0, + cst_examples_aides_logement_co$0, + 3486, + 14, + 3486, + 75, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qE_ = + [0, + cst_examples_aides_logement_co$0, + 3485, + 14, + 3485, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qF_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _qC_ = + [0, + cst_examples_aides_logement_co$0, + 3485, + 14, + 3485, + 69, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qI_ = + [0, + cst_examples_aides_logement_co$0, + 3488, + 14, + 3488, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qJ_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _qG_ = + [0, + cst_examples_aides_logement_co$0, + 3488, + 14, + 3488, + 70, + [0, + cst_Article_D832_15, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _qK_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _qL_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _qO_ = + [0, + cst_examples_aides_logement_pr, + 764, + 10, + 764, + 17, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qM_ = + [0, + cst_examples_aides_logement_pr, + 764, + 10, + 764, + 17, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qP_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_10_formule", 0]], + _qX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_abattement_d_pense_nette_m$0, 0]], + _q5_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _qY_ = + [0, + cst_examples_aides_logement_pr, + 759, + 10, + 759, + 25, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q6_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires", 0]], + _ra_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _q7_ = + [0, + cst_examples_aides_logement_pr, + 756, + 12, + 756, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rb_ = + [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_mensualit_minimale$1, 0]], + _re_ = + [0, + cst_examples_aides_logement_pr, + 765, + 10, + 765, + 23, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rc_ = + [0, + cst_examples_aides_logement_pr, + 765, + 10, + 765, + 23, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rf_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_10_coeff_arrondi", 0]], + _rr_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_aba, 0]], + _ru_ = + [0, + cst_examples_aides_logement_pr, + 755, + 12, + 755, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rs_ = + [0, + cst_examples_aides_logement_pr, + 755, + 12, + 755, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rv_ = + [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_mensualit_ligible$1, 0]], + _ry_ = + [0, + cst_examples_aides_logement_pr, + 766, + 10, + 766, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rw_ = + [0, + cst_examples_aides_logement_pr, + 766, + 10, + 766, + 15, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rz_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, "coefficient_prise_en_charge_d832_10_seuil", 0]], + _rL_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_con, 0]], + _rO_ = + [0, + cst_examples_aides_logement_pr, + 789, + 12, + 789, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rM_ = + [0, + cst_examples_aides_logement_pr, + 789, + 12, + 789, + 31, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rP_ = + [0, cst_CalculAidePersonnalis_eLog$1, [0, cst_aide_finale_formule$9, 0]], + _rX_ = + [0, + cst_CalculAidePersonnalis_eLog$1, + [0, cst_traitement_aide_finale_mon, 0]], + _rY_ = + [0, + cst_examples_aides_logement_pr, + 803, + 13, + 803, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _rZ_ = + [0, + cst_examples_aides_logement_pr, + 803, + 13, + 803, + 42, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nh_ = + [0, + cst_examples_aides_logement_co$0, + 3831, + 14, + 3831, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _nd_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _ne_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + _nf_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _ng_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$97 = cst_0$356, + _ni_ = + [0, + cst_examples_aides_logement_pr, + 717, + 10, + 717, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nc_ = + [0, + cst_examples_aides_logement_pr, + 717, + 10, + 717, + 25, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _m$_ = + [0, + cst_examples_aides_logement_co$0, + 3735, + 14, + 3735, + 33, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$95 = cst_0$356, + cst_0$96 = cst_0$356, + _m7_ = + [0, + cst_examples_aides_logement_co$0, + 3810, + 14, + 3810, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mZ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_aba, [0, cst_input0, 0]]], + _m0_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_aba, 0]], + _m1_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_aba, [0, cst_output, 0]]], + _m2_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_aba, 0]], + _m3_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _m4_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _m5_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _m6_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50$0 = cst_50$4, + cst_0$93 = cst_0$356, + cst_0$94 = cst_0$356, + _m8_ = + [0, + cst_examples_aides_logement_pr, + 716, + 10, + 716, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mY_ = + [0, + cst_examples_aides_logement_pr, + 716, + 10, + 716, + 40, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mU_ = + [0, + cst_examples_aides_logement_co$0, + 3982, + 5, + 3982, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_9$1 = cst_0_9$3, + cst_0_9$2 = cst_0_9$3, + _mV_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mT_ = + [0, + cst_examples_aides_logement_co$0, + 3888, + 14, + 3888, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_95$0 = cst_0_95$5, + cst_0_95$1 = cst_0_95$5, + _mP_ = + [0, + cst_examples_aides_logement_co$0, + 3796, + 14, + 3796, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mH_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _mI_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _mJ_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _mK_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _mL_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_abattement_d_pense_nette_m$1, [0, cst_input0, 0]]], + _mM_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_abattement_d_pense_nette_m$1, 0]], + _mN_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_abattement_d_pense_nette_m$1, [0, cst_output, 0]]], + _mO_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_abattement_d_pense_nette_m$1, 0]], + cst_0$91 = cst_0$356, + cst_0$92 = cst_0$356, + _mQ_ = + [0, + cst_examples_aides_logement_pr, + 715, + 10, + 715, + 20, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mG_ = + [0, + cst_examples_aides_logement_pr, + 715, + 10, + 715, + 20, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mC_ = + [0, + cst_examples_aides_logement_co$0, + 3976, + 5, + 3976, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_100$8 = cst_100$13, + cst_100$9 = cst_100$13, + cst_0_005$1 = cst_0_005$3, + _mD_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mB_ = + [0, + cst_examples_aides_logement_co$0, + 3885, + 14, + 3885, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_100$6 = cst_100$13, + cst_100$7 = cst_100$13, + cst_0_005$0 = cst_0_005$3, + _mx_ = + [0, + cst_examples_aides_logement_co$0, + 3768, + 14, + 3768, + 40, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mt_ = + [0, + cst_examples_aides_logement_co$0, + 4151, + 14, + 4151, + 55, + [0, + cst_Article_D832_27, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mp_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_d_pense_nette_minimale_d83$0, [0, cst_input0, 0]]], + _mq_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + _mr_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_d_pense_nette_minimale_d83$0, [0, cst_output, 0]]], + _ms_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + cst_0$90 = cst_0$356, + _mu_ = + [0, + cst_examples_aides_logement_pr, + 691, + 11, + 691, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mo_ = + [0, + cst_examples_aides_logement_pr, + 691, + 11, + 691, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mk_ = + [0, + cst_examples_aides_logement_co$0, + 3959, + 5, + 3959, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_9$0 = cst_0_9$3, + _ml_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mj_ = + [0, + cst_examples_aides_logement_co$0, + 3864, + 14, + 3864, + 49, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$88 = cst_0$356, + cst_0$89 = cst_0$356, + cst_0_95 = cst_0_95$5, + _md_ = + [0, + cst_examples_aides_logement_co$0, + 3774, + 14, + 3774, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l$_ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l7_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l3_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lZ_ = + [0, + cst_examples_aides_logement_co$0, + 4147, + 14, + 4147, + 44, + [0, + cst_Article_D832_27, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l0_ = + [0, + cst_examples_aides_logement_pr, + 693, + 11, + 693, + 41, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lY_ = + [0, + cst_examples_aides_logement_pr, + 693, + 11, + 693, + 41, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lU_ = + [0, + cst_examples_aides_logement_co$0, + 3946, + 14, + 3946, + 36, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lV_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lQ_ = + [0, + cst_examples_aides_logement_co$0, + 3756, + 14, + 3756, + 40, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lM_ = + [0, + cst_examples_aides_logement_co$0, + 3782, + 14, + 3782, + 36, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$86 = cst_0$356, + cst_0$87 = cst_0$356, + _lN_ = + [0, + cst_examples_aides_logement_pr, + 714, + 10, + 714, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lL_ = + [0, + cst_examples_aides_logement_pr, + 714, + 10, + 714, + 32, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lI_ = + [0, + cst_examples_aides_logement_ar, + 2607, + 14, + 2607, + 48, + [0, + cst_Article_30, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_2142091 = "2142091", + cst_1339340 = "1339340", + _lE_ = + [0, + cst_examples_aides_logement_ar, + 2754, + 14, + 2754, + 41, + [0, + "Article 32", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1500 = cst_1500$2, + cst_2668 = "2668", + _ly_ = + [0, + cst_examples_aides_logement_co$0, + 5581, + 5, + 5581, + 45, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _lz_ = + [0, + cst_examples_aides_logement_co$0, + 5579, + 5, + 5579, + 65, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + _lA_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, + "calcul_nombre_parts.limitation_majoration_personnes_\xc3\xa0_charge", + 0]], + _lv_ = + [0, + cst_examples_aides_logement_co$0, + 3945, + 14, + 3945, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lr_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ln_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lj_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lf_ = + [0, + cst_examples_aides_logement_ar, + 2596, + 14, + 2596, + 35, + [0, + cst_Article_30, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_121726 = "121726", + _la_ = + [0, + cst_examples_aides_logement_ar, + 2514, + 14, + 2514, + 48, + [0, + cst_Article_27, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$83 = cst_0$356, + cst_46192 = "46192", + cst_54152 = "54152", + cst_1$48 = cst_1$254, + cst_57741 = "57741", + cst_2$30 = cst_2$105, + cst_61794 = "61794", + cst_3$29 = cst_3$101, + cst_65862 = "65862", + cst_4$29 = cst_4$98, + cst_7368 = "7368", + cst_71039 = "71039", + cst_0$84 = cst_0$356, + cst_42242 = "42242", + cst_49299 = "49299", + cst_1$49 = cst_1$254, + cst_52565 = "52565", + cst_2$31 = cst_2$105, + cst_56268 = "56268", + cst_3$30 = cst_3$101, + cst_59957 = "59957", + cst_4$30 = cst_4$98, + cst_6659 = "6659", + cst_63887 = "63887", + cst_0$85 = cst_0$356, + cst_40096 = "40096", + cst_46634 = "46634", + cst_1$50 = cst_1$254, + cst_49475 = "49475", + cst_2$32 = cst_2$105, + cst_52740 = "52740", + cst_3$31 = cst_3$101, + cst_56004 = "56004", + cst_4$31 = cst_4$98, + cst_6180 = "6180", + cst_59675 = "59675", + _lb_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k__ = + [0, + cst_examples_aides_logement_ar$0, + 1449, + 14, + 1449, + 48, + [0, + cst_Article_27, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$80 = cst_0$356, + cst_44630 = "44630", + cst_52321 = "52321", + cst_1$45 = cst_1$254, + cst_55788 = "55788", + cst_2$27 = cst_2$105, + cst_59704 = "59704", + cst_3$26 = cst_3$101, + cst_63635 = "63635", + cst_4$26 = cst_4$98, + cst_7119 = "7119", + cst_68637 = "68637", + cst_0$81 = cst_0$356, + cst_40814 = "40814", + cst_47632 = "47632", + cst_1$46 = cst_1$254, + cst_50787 = "50787", + cst_2$28 = cst_2$105, + cst_54365 = "54365", + cst_3$27 = cst_3$101, + cst_57929 = "57929", + cst_4$27 = cst_4$98, + cst_6434 = "6434", + cst_61727 = "61727", + cst_0$82 = cst_0$356, + cst_38740 = "38740", + cst_45057 = "45057", + cst_1$47 = cst_1$254, + cst_47802 = "47802", + cst_2$29 = cst_2$105, + cst_50957 = "50957", + cst_3$28 = cst_3$101, + cst_54110 = "54110", + cst_4$28 = cst_4$98, + cst_5971 = "5971", + cst_57657 = "57657", + _k$_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k8_ = + [0, + cst_examples_aides_logement_ar$0, + 2529, + 14, + 2529, + 48, + [0, + cst_Article_27, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$77 = cst_0$356, + cst_44443 = "44443", + cst_52101 = "52101", + cst_1$42 = cst_1$254, + cst_55555 = "55555", + cst_2$24 = cst_2$105, + cst_59454 = "59454", + cst_3$23 = cst_3$101, + cst_63369 = "63369", + cst_4$23 = cst_4$98, + cst_7089 = "7089", + cst_68350 = "68350", + cst_0$78 = cst_0$356, + cst_40643 = "40643", + cst_47433 = "47433", + cst_1$43 = cst_1$254, + cst_50575 = "50575", + cst_2$25 = cst_2$105, + cst_54138 = "54138", + cst_3$24 = cst_3$101, + cst_57687 = "57687", + cst_4$24 = cst_4$98, + cst_6407 = "6407", + cst_61469 = "61469", + cst_0$79 = cst_0$356, + cst_38578 = "38578", + cst_44869 = "44869", + cst_1$44 = cst_1$254, + cst_47602 = "47602", + cst_2$26 = cst_2$105, + cst_50744 = "50744", + cst_3$25 = cst_3$101, + cst_53884 = "53884", + cst_4$25 = cst_4$98, + cst_5946 = "5946", + cst_57416 = "57416", + _k9_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k4_ = + [0, + cst_examples_aides_logement_ar, + 2569, + 14, + 2569, + 41, + [0, + "Article 28", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500$0 = cst_500$4, + _k0_ = + [0, + cst_examples_aides_logement_ar, + 2581, + 14, + 2581, + 42, + [0, + "Article 29", + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1000$1 = cst_1000$5, + _kU_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kP_ = + [0, + cst_examples_aides_logement_co$0, + 3849, + 14, + 3849, + 35, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kQ_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kK_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kL_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kM_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kJ_ = + [0, + cst_examples_aides_logement_pr, + 684, + 12, + 684, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kN_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_limitation_majoration_pers$1, 0]], + _kR_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kO_ = + [0, + cst_examples_aides_logement_pr, + 683, + 12, + 683, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kS_ = + [0, cst_CalculAidePersonnalis_eLog$0, [0, "condition_2_du_832_25", 0]], + _kV_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kW_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales_dat, 0]], + _kT_ = + [0, + cst_examples_aides_logement_pr, + 720, + 14, + 720, + 50, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _kY_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _k1_ = + [0, + cst_examples_aides_logement_pr, + 697, + 11, + 697, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kZ_ = + [0, + cst_examples_aides_logement_pr, + 697, + 11, + 697, + 39, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k2_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "montant_minimal_aide_d823_24", 0]], + _k5_ = + [0, + cst_examples_aides_logement_pr, + 695, + 11, + 695, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k3_ = + [0, + cst_examples_aides_logement_pr, + 695, + 11, + 695, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k6_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "montant_forfaitaire_d832_24", 0]], + _lc_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _k7_ = + [0, + cst_examples_aides_logement_pr, + 690, + 12, + 690, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ld_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_plafond_quivalence_loyer_l$0, 0]], + _lg_ = + [0, + cst_examples_aides_logement_pr, + 687, + 12, + 687, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _le_ = + [0, + cst_examples_aides_logement_pr, + 687, + 12, + 687, + 33, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lh_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_coefficient_r_d832_25$0, 0]], + _lk_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ll_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts_condit, 0]], + _li_ = + [0, + cst_examples_aides_logement_co$0, + 3943, + 14, + 3943, + 55, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lo_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lp_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts_nombre, 0]], + _lm_ = + [0, + cst_examples_aides_logement_co$0, + 3939, + 14, + 3939, + 59, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ls_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lt_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts_situat, 0]], + _lq_ = + [0, + cst_examples_aides_logement_co$0, + 3941, + 14, + 3941, + 64, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lw_ = + [0, + cst_examples_aides_logement_co$0, + 3945, + 14, + 3945, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lx_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts_r_side, 0]], + _lu_ = + [0, + cst_examples_aides_logement_co$0, + 3945, + 14, + 3945, + 43, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _lB_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _lC_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_nombre_parts, [0, cst_CalculNombrePartLogementFo, 0]]], + _lF_ = + [0, + cst_examples_aides_logement_pr, + 696, + 11, + 696, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lD_ = + [0, + cst_examples_aides_logement_pr, + 696, + 11, + 696, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lG_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "montant_forfaitaire_d832_27", 0]], + _lJ_ = + [0, + cst_examples_aides_logement_pr, + 686, + 12, + 686, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lH_ = + [0, + cst_examples_aides_logement_pr, + 686, + 12, + 686, + 46, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lK_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_coefficient_multiplicateur$0, 0]], + _lO_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_min, 0]], + _lR_ = + [0, + cst_examples_aides_logement_pr, + 689, + 12, + 689, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lP_ = + [0, + cst_examples_aides_logement_pr, + 689, + 12, + 689, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lS_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_quivalence_loyer_ligible$0, 0]], + _lW_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lT_ = + [0, + cst_examples_aides_logement_pr, + 688, + 21, + 688, + 43, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _lX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_n_nombre_parts_d832_25$1, 0]], + _l1_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_d_pense_nette_minimale_d83$0, 0]], + _l4_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _l5_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_quivalence_loyer_mi, 0]], + _l2_ = + [0, + cst_examples_aides_logement_pr, + 721, + 14, + 721, + 61, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _l8_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _l9_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_quivalence_loyer_mi$0, 0]], + _l6_ = + [0, + cst_examples_aides_logement_co$0, + 3772, + 14, + 3772, + 75, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _ma_ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mb_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_quivalence_loyer_mi$1, 0]], + _l__ = + [0, + cst_examples_aides_logement_co$0, + 3770, + 14, + 3770, + 69, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _me_ = + [0, + cst_examples_aides_logement_co$0, + 3774, + 14, + 3774, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mf_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_calcul_quivalence_loyer_mi$2, 0]], + _mc_ = + [0, + cst_examples_aides_logement_co$0, + 3774, + 14, + 3774, + 70, + [0, + cst_Article_D832_24, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _mg_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _mh_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, + cst_calcul_quivalence_loyer_mi$3, + [0, cst_Calcul_quivalenceLoyerMini, 0]]], + _mm_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mi_ = + [0, + cst_examples_aides_logement_pr, + 707, + 10, + 707, + 17, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mn_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "coefficient_prise_en_charge_d832_25_formule", 0]], + _mv_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_abattement_d_pense_nette_m$1, 0]], + _my_ = + [0, + cst_examples_aides_logement_pr, + 698, + 12, + 698, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mw_ = + [0, + cst_examples_aides_logement_pr, + 698, + 12, + 698, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mz_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_quivalence_loyer_minimale$0, 0]], + _mE_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mA_ = + [0, + cst_examples_aides_logement_pr, + 708, + 10, + 708, + 23, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mF_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "coefficient_prise_en_charge_d832_25_coeff_arrondi", 0]], + _mR_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_aba, 0]], + _mW_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mS_ = + [0, + cst_examples_aides_logement_pr, + 709, + 10, + 709, + 15, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _mX_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, "coefficient_prise_en_charge_d832_25_seuil", 0]], + _m9_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_con, 0]], + _na_ = + [0, + cst_examples_aides_logement_pr, + 711, + 12, + 711, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _m__ = + [0, + cst_examples_aides_logement_pr, + 711, + 12, + 711, + 31, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nb_ = + [0, cst_CalculAidePersonnalis_eLog$0, [0, cst_aide_finale_formule$9, 0]], + _nj_ = + [0, + cst_CalculAidePersonnalis_eLog$0, + [0, cst_traitement_aide_finale_mon, 0]], + _nk_ = + [0, + cst_examples_aides_logement_pr, + 725, + 13, + 725, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _nl_ = + [0, + cst_examples_aides_logement_pr, + 725, + 13, + 725, + 42, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kw_ = + [0, + cst_examples_aides_logement_co$0, + 1772, + 14, + 1772, + 33, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$74 = cst_0$356, + cst_0$75 = cst_0$356, + _ks_ = + [0, + cst_examples_aides_logement_co$0, + 1915, + 14, + 1915, + 39, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$72 = cst_0$356, + cst_0$73 = cst_0$356, + _ko_ = + [0, + cst_examples_aides_logement_co$0, + 1898, + 14, + 1898, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kk_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_r_d, [0, cst_input0, 0]]], + _kl_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_r_d, 0]], + _km_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_r_d, [0, cst_output, 0]]], + _kn_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_r_d, 0]], + cst_0$71 = cst_0$356, + _kp_ = + [0, + cst_examples_aides_logement_pr, + 626, + 10, + 626, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kj_ = + [0, + cst_examples_aides_logement_pr, + 626, + 10, + 626, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kg_ = + [0, + cst_examples_aides_logement_co$0, + 1949, + 14, + 1949, + 42, + [0, + cst_Article_D823_17, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kc_ = + [0, + cst_examples_aides_logement_co, + 844, + 14, + 844, + 36, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _j__ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, [0, cst_input0, 0]]], + _j$_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + _ka_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, [0, cst_output, 0]]], + _kb_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + cst_0$69 = cst_0$356, + cst_0$70 = cst_0$356, + _kd_ = + [0, + cst_examples_aides_logement_pr, + 625, + 10, + 625, + 36, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j9_ = + [0, + cst_examples_aides_logement_pr, + 625, + 10, + 625, + 36, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j3_ = + [0, + cst_examples_aides_logement_ar$0, + 2312, + 14, + 2312, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100000$3 = cst_100000$5, + cst_100000$4 = cst_100000$5, + _j4_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j2_ = + [0, + cst_examples_aides_logement_ar$0, + 1232, + 14, + 1232, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100000$1 = cst_100000$5, + cst_100000$2 = cst_100000$5, + _j5_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j1_ = + [0, + cst_examples_aides_logement_ar, + 423, + 14, + 423, + 33, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_100000 = cst_100000$5, + cst_100000$0 = cst_100000$5, + _j6_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jX_ = + [0, + cst_examples_aides_logement_co$0, + 1866, + 14, + 1866, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jP_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, [0, cst_input0, 0]]], + _jQ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _jR_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, [0, cst_output, 0]]], + _jS_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _jT_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_input0, 0]]], + _jU_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _jV_ = + [0, + cst_ContributionsSocialesAides, + [0, cst_montant$2, [0, cst_output, 0]]], + _jW_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + cst_50 = cst_50$4, + cst_0$67 = cst_0$356, + cst_0$68 = cst_0$356, + _jY_ = + [0, + cst_examples_aides_logement_pr, + 624, + 10, + 624, + 40, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jO_ = + [0, + cst_examples_aides_logement_pr, + 624, + 10, + 624, + 40, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jI_ = + [0, + cst_examples_aides_logement_ar$0, + 2305, + 14, + 2305, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_45$3 = cst_0_45$5, + cst_0$65 = cst_0$357, + cst_0_75$5 = cst_0_75$14, + cst_0_45$4 = cst_0_45$5, + cst_0_0045$5 = cst_0_0045$8, + cst_0_0045$6 = cst_0_0045$8, + cst_0_75$6 = cst_0_75$14, + cst_0_75$7 = cst_0_75$14, + cst_0_0068$1 = cst_0_0068$2, + cst_0_3$1 = cst_0_3$2, + cst_0_0045$7 = cst_0_0045$8, + cst_0$66 = cst_0$357, + _jJ_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jH_ = + [0, + cst_examples_aides_logement_ar$0, + 1225, + 14, + 1225, + 33, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0_45$1 = cst_0_45$5, + cst_0$63 = cst_0$357, + cst_0_75$2 = cst_0_75$14, + cst_0_45$2 = cst_0_45$5, + cst_0_0045$2 = cst_0_0045$8, + cst_0_0045$3 = cst_0_0045$8, + cst_0_75$3 = cst_0_75$14, + cst_0_75$4 = cst_0_75$14, + cst_0_0068$0 = cst_0_0068$2, + cst_0_3$0 = cst_0_3$2, + cst_0_0045$4 = cst_0_0045$8, + cst_0$64 = cst_0$357, + _jK_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jG_ = + [0, + cst_examples_aides_logement_ar, + 416, + 14, + 416, + 33, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_45 = cst_0_45$5, + cst_0$61 = cst_0$357, + cst_0_75 = cst_0_75$14, + cst_0_45$0 = cst_0_45$5, + cst_0_0045 = cst_0_0045$8, + cst_0_0045$0 = cst_0_0045$8, + cst_0_75$0 = cst_0_75$14, + cst_0_75$1 = cst_0_75$14, + cst_0_0068 = cst_0_0068$2, + cst_0_3 = cst_0_3$2, + cst_0_0045$1 = cst_0_0045$8, + cst_0$62 = cst_0$357, + _jL_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jC_ = + [0, + cst_examples_aides_logement_co$0, + 1849, + 14, + 1849, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jy_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_dim, [0, cst_input0, 0]]], + _jz_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_dim, 0]], + _jA_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_dim, [0, cst_output, 0]]], + _jB_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_dim, 0]], + cst_0$59 = cst_0$356, + cst_0$60 = cst_0$356, + _jD_ = + [0, + cst_examples_aides_logement_pr, + 623, + 10, + 623, + 32, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jx_ = + [0, + cst_examples_aides_logement_pr, + 623, + 10, + 623, + 32, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jr_ = + [0, + cst_examples_aides_logement_ar$0, + 2281, + 14, + 2281, + 28, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100$4 = cst_100$13, + cst_100$5 = cst_100$13, + _js_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jq_ = + [0, + cst_examples_aides_logement_ar$0, + 1198, + 14, + 1198, + 28, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_100$2 = cst_100$13, + cst_100$3 = cst_100$13, + _jt_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jp_ = + [0, + cst_examples_aides_logement_ar, + 390, + 14, + 390, + 28, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_100$0 = cst_100$13, + cst_100$1 = cst_100$13, + _ju_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jk_ = + [0, + cst_examples_aides_logement_ar, + 314, + 14, + 314, + 36, + [0, + cst_Article_13, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3663 = cst_3663$1, + cst_0_085$3 = cst_0_085$5, + cst_0_085$4 = cst_0_085$5, + cst_3663$0 = cst_3663$1, + _jl_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ji_ = + [0, + cst_examples_aides_logement_ar$0, + 1124, + 14, + 1124, + 36, + [0, + cst_Article_13, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_3539 = cst_3539$1, + cst_0_085$1 = cst_0_085$5, + cst_0_085$2 = cst_0_085$5, + cst_3539$0 = cst_3539$1, + _jj_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jg_ = + [0, + cst_examples_aides_logement_ar$0, + 2206, + 14, + 2206, + 36, + [0, + cst_Article_13, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_3524 = cst_3524$1, + cst_0_085 = cst_0_085$5, + cst_0_085$0 = cst_0_085$5, + cst_3524$0 = cst_3524$1, + _jh_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jb_ = + [0, + cst_examples_aides_logement_co$0, + 1839, + 5, + 1839, + 50, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _jc_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ja_ = + [0, + cst_examples_aides_logement_co$0, + 1825, + 14, + 1825, + 36, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$58 = cst_0$356, + _jd_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i$_ = + [0, + cst_examples_aides_logement_pr, + 622, + 10, + 622, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i8_ = + [0, + cst_examples_aides_logement_co$0, + 1790, + 14, + 1790, + 28, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _i4_ = + [0, + cst_examples_aides_logement_ar, + 263, + 14, + 263, + 42, + [0, + cst_Article_10, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_3_4 = "3.4", + cst_2_5$2 = cst_2_5$5, + cst_2_5$3 = cst_2_5$5, + _i0_ = + [0, + cst_examples_aides_logement_ar, + 269, + 14, + 269, + 41, + [0, + cst_Article_10, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_4$22 = "4.", + cst_3_1 = cst_3_1$1, + cst_3_1$0 = cst_3_1$1, + cst_0$57 = cst_0$356, + _iU_ = + [0, + cst_examples_aides_logement_ar, + 546, + 5, + 547, + 34, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_23138$0 = cst_23138$1, + cst_20165$0 = cst_20165$1, + cst_18900$0 = cst_18900$1, + _iV_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$56 = cst_0$356, + _iS_ = + [0, + cst_examples_aides_logement_ar, + 555, + 5, + 556, + 34, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_27905 = "27905", + cst_24683 = "24683", + cst_22911 = "22911", + _iT_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$41 = cst_1$254, + _iQ_ = + [0, + cst_examples_aides_logement_ar, + 564, + 5, + 564, + 35, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_4576 = "4576", + cst_31539 = "31539", + cst_4043 = "4043", + cst_27774 = "27774", + cst_3682 = "3682", + cst_25689 = "25689", + _iR_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$55 = cst_0$356, + _iO_ = + [0, + cst_examples_aides_logement_ar$0, + 1301, + 5, + 1302, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22355$0 = cst_22355$1, + cst_19484$0 = cst_19484$1, + cst_18261$0 = cst_18261$1, + _iP_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$54 = cst_0$356, + _iM_ = + [0, + cst_examples_aides_logement_ar$0, + 1310, + 5, + 1311, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26962 = "26962", + cst_23848 = "23848", + cst_22136 = "22136", + _iN_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$40 = cst_1$254, + _iK_ = + [0, + cst_examples_aides_logement_ar$0, + 1323, + 5, + 1323, + 35, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_4421 = "4421", + cst_30473 = "30473", + cst_3906 = "3906", + cst_26835 = "26835", + cst_3557 = "3557", + cst_24821 = "24821", + _iL_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$53 = cst_0$356, + _iI_ = + [0, + cst_examples_aides_logement_ar$0, + 2379, + 5, + 2380, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22262$0 = cst_22262$1, + cst_19402$0 = cst_19402$1, + cst_18185$0 = cst_18185$1, + _iJ_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$52 = cst_0$356, + _iG_ = + [0, + cst_examples_aides_logement_ar$0, + 2388, + 5, + 2389, + 34, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26849 = "26849", + cst_23748 = "23748", + cst_22044 = "22044", + _iH_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$39 = cst_1$254, + _iE_ = + [0, + cst_examples_aides_logement_ar$0, + 2401, + 5, + 2401, + 35, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_4403 = "4403", + cst_30345 = "30345", + cst_3890 = "3890", + cst_26723 = "26723", + cst_3542 = "3542", + cst_24717 = "24717", + _iF_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iW_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iA_ = + [0, + cst_examples_aides_logement_ar, + 198, + 5, + 198, + 61, + [0, + cst_Article_8, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_23138 = cst_23138$1, + cst_20165 = cst_20165$1, + cst_18900 = cst_18900$1, + _iB_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iy_ = + [0, + cst_examples_aides_logement_ar$0, + 1069, + 5, + 1069, + 61, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22355 = cst_22355$1, + cst_19484 = cst_19484$1, + cst_18261 = cst_18261$1, + _iz_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iw_ = + [0, + cst_examples_aides_logement_ar$0, + 2151, + 5, + 2151, + 61, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_22262 = cst_22262$1, + cst_19402 = cst_19402$1, + cst_18185 = cst_18185$1, + _ix_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iC_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _it_ = + [0, + cst_examples_aides_logement_ar, + 191, + 14, + 191, + 37, + [0, + cst_Article_8, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_27765 = "27765", + cst_24198 = "24198", + cst_22680 = "22680", + _iu_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ir_ = + [0, + cst_examples_aides_logement_ar$0, + 1062, + 14, + 1062, + 37, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26826 = "26826", + cst_23380 = "23380", + cst_21913 = "21913", + _is_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ip_ = + [0, + cst_examples_aides_logement_ar$0, + 2144, + 14, + 2144, + 37, + [0, + cst_Article_8, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_26714 = cst_26714$1, + cst_23282 = "23282", + cst_21821 = "21821", + _iq_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iv_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iD_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$51 = cst_0$356, + _im_ = + [0, + cst_examples_aides_logement_ar, + 106, + 5, + 107, + 34, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_30850 = "30850", + cst_26887$0 = cst_26887$1, + cst_25200 = "25200", + _in_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$50 = cst_0$356, + _ik_ = + [0, + cst_examples_aides_logement_ar, + 116, + 5, + 117, + 34, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_37207 = "37207", + cst_32910$0 = cst_32910$1, + cst_30548 = "30548", + _il_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$38 = cst_1$254, + _ii_ = + [0, + cst_examples_aides_logement_ar, + 130, + 5, + 130, + 35, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_6101 = "6101", + cst_42052 = "42052", + cst_5390$0 = cst_5390$1, + cst_37032$0 = cst_37032$1, + cst_4909 = "4909", + cst_34252 = "34252", + _ij_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$49 = cst_0$356, + _ig_ = + [0, + cst_examples_aides_logement_ar$0, + 976, + 5, + 977, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_29807 = "29807", + cst_25978$0 = cst_25978$1, + cst_24348 = "24348", + _ih_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$48 = cst_0$356, + _ie_ = + [0, + cst_examples_aides_logement_ar$0, + 986, + 5, + 987, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_35949 = "35949", + cst_31797$0 = cst_31797$2, + cst_29515 = "29515", + _if_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$37 = cst_1$254, + _ic_ = + [0, + cst_examples_aides_logement_ar$0, + 1000, + 5, + 1000, + 35, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5895 = "5895", + cst_40630 = "40630", + cst_5208$0 = cst_5208$1, + cst_35780$0 = cst_35780$1, + cst_4743 = "4743", + cst_33094 = "33094", + _id_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$47 = cst_0$356, + _ia_ = + [0, + cst_examples_aides_logement_ar$0, + 2059, + 5, + 2060, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_29682 = "29682", + cst_25859 = "25859", + cst_24246 = "24246", + _ib_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$46 = cst_0$356, + _h__ = + [0, + cst_examples_aides_logement_ar$0, + 2069, + 5, + 2070, + 34, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_35799 = "35799", + cst_31664$0 = cst_31664$1, + cst_29392 = "29392", + _h$_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$36 = cst_1$254, + _h8_ = + [0, + cst_examples_aides_logement_ar$0, + 2083, + 5, + 2083, + 35, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5870 = "5870", + cst_40460 = "40460", + cst_5186$0 = cst_5186$1, + cst_35630$0 = cst_35630$1, + cst_4723 = "4723", + cst_32956 = cst_32956$1, + _h9_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _io_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h3_ = + [0, + cst_examples_aides_logement_ar, + 445, + 14, + 445, + 29, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$45 = cst_0$356, + cst_26887 = cst_26887$1, + cst_32910 = cst_32910$1, + cst_5390 = cst_5390$1, + cst_37032 = cst_37032$1, + _h4_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h1_ = + [0, + cst_examples_aides_logement_ar$0, + 1255, + 14, + 1255, + 29, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$44 = cst_0$356, + cst_25978 = cst_25978$1, + cst_31797 = cst_31797$2, + cst_5208 = cst_5208$1, + cst_35780 = cst_35780$1, + _h2_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hZ_ = + [0, + cst_examples_aides_logement_ar$0, + 2335, + 14, + 2335, + 29, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$43 = cst_0$356, + cst_25869 = "25869", + cst_31664 = cst_31664$1, + cst_5186 = cst_5186$1, + cst_35630 = cst_35630$1, + _h0_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$35 = cst_1$254, + _hT_ = + [0, + cst_examples_aides_logement_ar, + 4340, + 5, + 4348, + 34, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_818100 = "818100", + _hU_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hR_ = + [0, + cst_examples_aides_logement_ar, + 4601, + 5, + 4603, + 28, + [0, + cst_Article_47, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$42 = cst_0$356, + cst_527200 = "527200", + cst_755200 = "755200", + cst_1$34 = cst_1$254, + cst_900800 = "900800", + cst_2$23 = cst_2$105, + cst_921100 = "921100", + cst_3$22 = cst_3$101, + cst_956300 = "956300", + cst_4$21 = cst_4$98, + cst_991900 = "991900", + cst_5$25 = cst_5$158, + cst_1027100 = "1027100", + cst_6$45 = cst_6$92, + cst_1062600 = cst_1062600$1, + cst_6$46 = cst_6$92, + cst_35000$0 = cst_35000$1, + cst_1062600$0 = cst_1062600$1, + _hS_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$33 = cst_1$254, + _hP_ = + [0, + cst_examples_aides_logement_ar$0, + 211, + 5, + 219, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_805100 = "805100", + _hQ_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hN_ = + [0, + cst_examples_aides_logement_ar$0, + 459, + 5, + 461, + 28, + [0, + cst_Article_47, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$41 = cst_0$356, + cst_487000$0 = cst_487000$1, + cst_697700$0 = cst_697700$1, + cst_1$32 = cst_1$254, + cst_832200$1 = cst_832200$2, + cst_2$22 = cst_2$105, + cst_850900$0 = cst_850900$1, + cst_3$21 = cst_3$101, + cst_883400$0 = cst_883400$1, + cst_4$20 = cst_4$98, + cst_916300$0 = cst_916300$1, + cst_5$24 = cst_5$158, + cst_948800$0 = cst_948800$1, + cst_6$43 = cst_6$92, + cst_981600$1 = cst_981600$3, + cst_6$44 = cst_6$92, + cst_35000 = cst_35000$1, + cst_981600$2 = cst_981600$3, + _hO_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$31 = cst_1$254, + _hL_ = + [0, + cst_examples_aides_logement_ar$0, + 706, + 5, + 714, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_774200 = "774200", + _hM_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hJ_ = + [0, + cst_examples_aides_logement_ar$0, + 3184, + 5, + 3193, + 28, + [0, + cst_Article_47, + [0, + "Articles en vigueur \xc3\xa0 partir du 01 janvier 2021 - Arr\xc3\xaat\xc3\xa9 du 31 d\xc3\xa9cembre 2020 relatif au calcul des aides personnelles au logement pour l'ann\xc3\xa9e 2021 NOR : LOGL2028351A", + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$40 = cst_0$356, + cst_427400 = "427400", + cst_612200 = "612200", + cst_1$30 = cst_1$254, + cst_699000 = "699000", + cst_2$21 = cst_2$105, + cst_743200 = "743200", + cst_3$20 = cst_3$101, + cst_785400 = "785400", + cst_4$19 = cst_4$98, + cst_828300 = "828300", + cst_5$23 = cst_5$158, + cst_871100 = "871100", + cst_913900 = "913900", + _hK_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$29 = cst_1$254, + _hF_ = + [0, + cst_examples_aides_logement_ar$0, + 3431, + 5, + 3439, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400$1 = cst_758400$2, + _hG_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$28 = cst_1$254, + _hE_ = + [0, + cst_examples_aides_logement_ar$0, + 2894, + 5, + 2902, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400$0 = cst_758400$2, + _hH_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_1$27 = cst_1$254, + _hD_ = + [0, + cst_examples_aides_logement_ar$0, + 1824, + 5, + 1832, + 34, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_758400 = cst_758400$2, + _hI_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hB_ = + [0, + cst_examples_aides_logement_ar$0, + 3693, + 5, + 3702, + 28, + [0, + cst_Article_47, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$39 = cst_0$356, + cst_396000 = "396000", + cst_567300 = "567300", + cst_1$26 = cst_1$254, + cst_639600 = "639600", + cst_2$20 = cst_2$105, + cst_684900 = "684900", + cst_3$19 = cst_3$101, + cst_738600 = "738600", + cst_4$18 = cst_4$98, + cst_793500 = "793500", + cst_5$22 = cst_5$158, + cst_848400 = "848400", + cst_903200 = "903200", + _hC_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hV_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hy_ = + [0, + cst_examples_aides_logement_ar, + 486, + 14, + 486, + 44, + [0, + cst_Article_15, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$38 = cst_0$356, + cst_494900 = "494900", + cst_709000 = "709000", + cst_1$25 = cst_1$254, + cst_845600 = "845600", + cst_2$19 = cst_2$105, + cst_864600 = "864600", + cst_3$18 = cst_3$101, + cst_897700 = "897700", + cst_4$17 = cst_4$98, + cst_931100 = "931100", + cst_5$21 = cst_5$158, + cst_964200 = "964200", + cst_6$42 = cst_6$92, + cst_997500 = cst_997500$1, + cst_32800 = "32800", + cst_997500$0 = cst_997500$1, + _hz_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hw_ = + [0, + cst_examples_aides_logement_ar$0, + 39, + 14, + 39, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$37 = cst_0$356, + cst_487000 = cst_487000$1, + cst_697700 = cst_697700$1, + cst_1$24 = cst_1$254, + cst_832200$0 = cst_832200$2, + cst_2$18 = cst_2$105, + cst_850900 = cst_850900$1, + cst_3$17 = cst_3$101, + cst_883400 = cst_883400$1, + cst_4$16 = cst_4$98, + cst_916300 = cst_916300$1, + cst_5$20 = cst_5$158, + cst_948800 = cst_948800$1, + cst_6$41 = cst_6$92, + cst_981600 = cst_981600$3, + cst_32300 = "32300", + cst_981600$0 = cst_981600$3, + _hx_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hu_ = + [0, + cst_examples_aides_logement_ar$0, + 533, + 14, + 533, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$36 = cst_0$356, + cst_468300 = "468300", + cst_670900 = "670900", + cst_1$23 = cst_1$254, + cst_800200 = "800200", + cst_2$17 = cst_2$105, + cst_819200 = "819200", + cst_3$16 = cst_3$101, + cst_849500 = "849500", + cst_4$15 = cst_4$98, + cst_881100 = "881100", + cst_5$19 = cst_5$158, + cst_912400 = "912400", + cst_6$40 = cst_6$92, + cst_943900 = cst_943900$1, + cst_31100 = "31100", + cst_943900$0 = cst_943900$1, + _hv_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hs_ = + [0, + cst_examples_aides_logement_ar$0, + 3246, + 14, + 3246, + 44, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$35 = cst_0$356, + cst_458800 = "458800", + cst_657200 = "657200", + cst_1$22 = cst_1$254, + cst_783900 = "783900", + cst_2$16 = cst_2$105, + cst_801500 = "801500", + cst_3$15 = cst_3$101, + cst_832200 = cst_832200$2, + cst_4$14 = cst_4$98, + cst_863100 = "863100", + cst_5$18 = cst_5$158, + cst_893800 = "893800", + cst_6$38 = cst_6$92, + cst_924600 = cst_924600$1, + cst_6$39 = cst_6$92, + cst_30500 = cst_30500$3, + cst_924600$0 = cst_924600$1, + _ht_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hA_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hk_ = + [0, + cst_examples_aides_logement_ar, + 4440, + 5, + 4448, + 15, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$4 = cst_969$14, + cst_1938$1 = cst_1938$5, + cst_3767$4 = cst_3767$14, + _hl_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hi_ = + [0, + cst_examples_aides_logement_ar$0, + 314, + 6, + 321, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969$2 = cst_969$14, + cst_1938 = cst_1938$5, + cst_3767$3 = cst_3767$14, + cst_6$37 = cst_6$93, + cst_969$3 = cst_969$14, + cst_1938$0 = cst_1938$5, + cst_3767$2 = cst_3767$14, + _hj_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hf_ = + [0, + cst_examples_aides_logement_ar$0, + 1926, + 6, + 1933, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$5 = cst_936$19, + cst_1872$1 = cst_1872$7, + cst_3640$6 = cst_3640$19, + cst_6$36 = cst_6$93, + cst_936$6 = cst_936$19, + cst_1872$2 = cst_1872$7, + cst_3640$5 = cst_3640$19, + _hg_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _he_ = + [0, + cst_examples_aides_logement_ar$0, + 810, + 6, + 817, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$3 = cst_936$19, + cst_1872 = cst_1872$7, + cst_3640$4 = cst_3640$19, + cst_6$35 = cst_6$93, + cst_936$4 = cst_936$19, + cst_1872$0 = cst_1872$7, + cst_3640$3 = cst_3640$19, + _hh_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hc_ = + [0, + cst_examples_aides_logement_ar$0, + 2998, + 6, + 3005, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932$1 = cst_932$9, + cst_1864 = cst_1864$3, + cst_3625$2 = cst_3625$9, + cst_6$34 = cst_6$93, + cst_932$2 = cst_932$9, + cst_1864$0 = cst_1864$3, + cst_3625$1 = cst_3625$9, + _hd_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ha_ = + [0, + cst_examples_aides_logement_ar$0, + 3534, + 6, + 3541, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929$1 = cst_929$9, + cst_1858 = cst_1858$3, + cst_3614$2 = cst_3614$9, + cst_6$33 = cst_6$93, + cst_929$2 = cst_929$9, + cst_1858$0 = cst_1858$3, + cst_3614$1 = cst_3614$9, + _hb_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hm_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g9_ = + [0, + cst_examples_aides_logement_ar, + 588, + 14, + 588, + 49, + [0, + cst_Article_16, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272$0 = cst_1272$6, + cst_2805 = cst_2805$2, + cst_5612$0 = cst_5612$8, + _g__ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g7_ = + [0, + cst_examples_aides_logement_ar$0, + 1347, + 14, + 1347, + 49, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229$0 = cst_1229$6, + cst_2710 = cst_2710$2, + cst_5422$0 = cst_5422$8, + _g8_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g5_ = + [0, + cst_examples_aides_logement_ar$0, + 2426, + 14, + 2426, + 49, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224$0 = cst_1224$6, + cst_2699 = cst_2699$2, + cst_5399$0 = cst_5399$8, + _g6_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g$_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hn_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g2_ = + [0, + cst_examples_aides_logement_ar, + 4377, + 6, + 4384, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_969$1 = cst_969$14, + cst_3767$1 = cst_3767$14, + _g3_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g0_ = + [0, + cst_examples_aides_logement_ar$0, + 239, + 6, + 246, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_969 = cst_969$14, + cst_3767 = cst_3767$14, + cst_6$32 = cst_6$93, + cst_969$0 = cst_969$14, + cst_3767$0 = cst_3767$14, + _g1_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gX_ = + [0, + cst_examples_aides_logement_ar$0, + 1852, + 6, + 1859, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936$1 = cst_936$19, + cst_3640$1 = cst_3640$19, + cst_6$31 = cst_6$93, + cst_936$2 = cst_936$19, + cst_3640$2 = cst_3640$19, + _gY_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gW_ = + [0, + cst_examples_aides_logement_ar$0, + 735, + 6, + 742, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_936 = cst_936$19, + cst_3640 = cst_3640$19, + cst_6$30 = cst_6$93, + cst_936$0 = cst_936$19, + cst_3640$0 = cst_3640$19, + _gZ_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gU_ = + [0, + cst_examples_aides_logement_ar$0, + 2924, + 6, + 2931, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_932 = cst_932$9, + cst_3625 = cst_3625$9, + cst_6$29 = cst_6$93, + cst_932$0 = cst_932$9, + cst_3625$0 = cst_3625$9, + _gV_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gS_ = + [0, + cst_examples_aides_logement_ar$0, + 3460, + 6, + 3467, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_929 = cst_929$9, + cst_3614 = cst_3614$9, + cst_6$28 = cst_6$93, + cst_929$0 = cst_929$9, + cst_3614$0 = cst_3614$9, + _gT_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _g4_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ho_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gP_ = + [0, + cst_examples_aides_logement_ar, + 239, + 14, + 239, + 49, + [0, + cst_Article_9, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1272 = cst_1272$6, + cst_5612 = cst_5612$8, + _gQ_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gN_ = + [0, + cst_examples_aides_logement_ar$0, + 1110, + 14, + 1110, + 49, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1229 = cst_1229$6, + cst_5422 = cst_5422$8, + _gO_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gL_ = + [0, + cst_examples_aides_logement_ar$0, + 2192, + 14, + 2192, + 49, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1224 = cst_1224$6, + cst_5399 = cst_5399$8, + _gM_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gR_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$27 = cst_6$92, + _gB_ = + [0, + cst_examples_aides_logement_ar$0, + 3300, + 5, + 3308, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$17 = cst_5$159, + _gC_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$26 = cst_6$92, + _gA_ = + [0, + cst_examples_aides_logement_ar$0, + 2765, + 5, + 2773, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$16 = cst_5$159, + _gD_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$25 = cst_6$92, + _gz_ = + [0, + cst_examples_aides_logement_ar$0, + 1695, + 5, + 1703, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$15 = cst_5$159, + _gE_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$24 = cst_6$92, + _gy_ = + [0, + cst_examples_aides_logement_ar$0, + 575, + 5, + 583, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$14 = cst_5$159, + _gF_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$23 = cst_6$92, + _gx_ = + [0, + cst_examples_aides_logement_ar$0, + 82, + 5, + 90, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$13 = cst_5$159, + _gG_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gH_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gq_ = + [0, + cst_examples_aides_logement_ar$0, + 2397, + 14, + 2397, + 63, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$21 = cst_1$254, + _gr_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gp_ = + [0, + cst_examples_aides_logement_ar$0, + 2078, + 14, + 2078, + 63, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$20 = cst_1$254, + _gs_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _go_ = + [0, + cst_examples_aides_logement_ar$0, + 1319, + 14, + 1319, + 63, + [0, + cst_Article_16, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$19 = cst_1$254, + _gt_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gn_ = + [0, + cst_examples_aides_logement_ar$0, + 995, + 14, + 995, + 63, + [0, + cst_Article_7, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$18 = cst_1$254, + _gu_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gm_ = + [0, + cst_examples_aides_logement_ar, + 125, + 14, + 125, + 63, + [0, + cst_Article_7, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1$17 = cst_1$254, + _gv_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gw_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$22 = cst_6$92, + _gc_ = + [0, + cst_examples_aides_logement_ar$0, + 3365, + 5, + 3373, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$12 = cst_5$159, + _gd_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$21 = cst_6$92, + _gb_ = + [0, + cst_examples_aides_logement_ar$0, + 2830, + 5, + 2838, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$11 = cst_5$159, + _ge_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$20 = cst_6$92, + _ga_ = + [0, + cst_examples_aides_logement_ar$0, + 1759, + 5, + 1767, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$10 = cst_5$159, + _gf_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$19 = cst_6$92, + _f$_ = + [0, + cst_examples_aides_logement_ar$0, + 640, + 5, + 648, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$9 = cst_5$159, + _gg_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$18 = cst_6$92, + _f__ = + [0, + cst_examples_aides_logement_ar$0, + 147, + 5, + 155, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_5$8 = cst_5$159, + _gh_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gi_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f5_ = + [0, + cst_examples_aides_logement_ar$0, + 2332, + 14, + 2332, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$16 = cst_1$254, + _f6_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f4_ = + [0, + cst_examples_aides_logement_ar$0, + 1252, + 14, + 1252, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_1$15 = cst_1$254, + _f7_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f3_ = + [0, + cst_examples_aides_logement_ar, + 442, + 14, + 442, + 55, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_1$14 = cst_1$254, + _f8_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f9_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$17 = cst_6$92, + _fT_ = + [0, + cst_examples_aides_logement_ar$0, + 3387, + 5, + 3395, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$34 = cst_0$357, + _fU_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$16 = cst_6$92, + _fS_ = + [0, + cst_examples_aides_logement_ar$0, + 2851, + 5, + 2859, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$33 = cst_0$357, + _fV_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$15 = cst_6$92, + _fR_ = + [0, + cst_examples_aides_logement_ar$0, + 1780, + 5, + 1788, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$32 = cst_0$357, + _fW_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$14 = cst_6$92, + _fQ_ = + [0, + cst_examples_aides_logement_ar$0, + 662, + 5, + 670, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$31 = cst_0$357, + _fX_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_6$13 = cst_6$92, + _fP_ = + [0, + cst_examples_aides_logement_ar$0, + 168, + 5, + 176, + 35, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$30 = cst_0$357, + _fY_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fZ_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fJ_ = + [0, + cst_examples_aides_logement_ar$0, + 3242, + 14, + 3242, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$12 = cst_6$92, + _fK_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fI_ = + [0, + cst_examples_aides_logement_ar$0, + 529, + 14, + 529, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$11 = cst_6$92, + _fL_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fH_ = + [0, + cst_examples_aides_logement_ar$0, + 35, + 14, + 35, + 42, + [0, + cst_Article_15, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_6$10 = cst_6$92, + _fM_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fG_ = + [0, + cst_examples_aides_logement_ar, + 482, + 14, + 482, + 42, + [0, + cst_Article_15, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_6$9 = cst_6$92, + _fN_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fO_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fA_ = + [0, + cst_examples_aides_logement_ar, + 4510, + 6, + 4517, + 28, + [0, + cst_Article_46, + [0, + cst_Chapitre_IX_Calcul_des_all, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$29 = cst_0$356, + cst_0_0281$4 = cst_0_0281$5, + cst_0_0299$4 = cst_0_0299$5, + cst_1$13 = cst_1$254, + cst_0_0238$7 = cst_0_0238$8, + cst_2$15 = cst_2$105, + cst_0_0217$4 = cst_0_0217$5, + cst_3$14 = cst_3$101, + cst_0_0194$4 = cst_0_0194$5, + cst_4$13 = cst_4$98, + cst_0_018$4 = cst_0_018$5, + cst_5$7 = cst_5$158, + cst_0_0169$4 = cst_0_0169$5, + cst_6$8 = cst_6$92, + cst_0_0162$4 = cst_0_0162$5, + cst_7 = cst_7$1, + cst_0_0167 = cst_0_0167$1, + cst_7$0 = cst_7$1, + cst_0_0006$2 = cst_0_0006$3, + cst_0_0167$0 = cst_0_0167$1, + _fB_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fu_ = + [0, + cst_examples_aides_logement_ar$0, + 3605, + 6, + 3612, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$28 = cst_0$356, + cst_0_0281$3 = cst_0_0281$5, + cst_0_0299$3 = cst_0_0299$5, + cst_1$12 = cst_1$254, + cst_0_0238$6 = cst_0_0238$8, + cst_2$14 = cst_2$105, + cst_0_0217$3 = cst_0_0217$5, + cst_3$13 = cst_3$101, + cst_0_0194$3 = cst_0_0194$5, + cst_4$12 = cst_4$98, + cst_0_018$3 = cst_0_018$5, + cst_5$6 = cst_5$158, + cst_0_0169$3 = cst_0_0169$5, + cst_0_0162$3 = cst_0_0162$5, + _fv_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ft_ = + [0, + cst_examples_aides_logement_ar$0, + 3068, + 6, + 3075, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$27 = cst_0$356, + cst_0_0281$2 = cst_0_0281$5, + cst_0_0299$2 = cst_0_0299$5, + cst_1$11 = cst_1$254, + cst_0_0238$5 = cst_0_0238$8, + cst_2$13 = cst_2$105, + cst_0_0217$2 = cst_0_0217$5, + cst_3$12 = cst_3$101, + cst_0_0194$2 = cst_0_0194$5, + cst_4$11 = cst_4$98, + cst_0_018$2 = cst_0_018$5, + cst_5$5 = cst_5$158, + cst_0_0169$2 = cst_0_0169$5, + cst_0_0162$2 = cst_0_0162$5, + _fw_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fs_ = + [0, + cst_examples_aides_logement_ar$0, + 1996, + 6, + 2003, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$26 = cst_0$356, + cst_0_0281$1 = cst_0_0281$5, + cst_0_0299$1 = cst_0_0299$5, + cst_1$10 = cst_1$254, + cst_0_0238$4 = cst_0_0238$8, + cst_2$12 = cst_2$105, + cst_0_0217$1 = cst_0_0217$5, + cst_3$11 = cst_3$101, + cst_0_0194$1 = cst_0_0194$5, + cst_4$10 = cst_4$98, + cst_0_018$1 = cst_0_018$5, + cst_5$4 = cst_5$158, + cst_0_0169$1 = cst_0_0169$5, + cst_0_0162$1 = cst_0_0162$5, + _fx_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fr_ = + [0, + cst_examples_aides_logement_ar$0, + 881, + 6, + 888, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$2, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$25 = cst_0$356, + cst_0_0281$0 = cst_0_0281$5, + cst_0_0299$0 = cst_0_0299$5, + cst_1$9 = cst_1$254, + cst_0_0238$3 = cst_0_0238$8, + cst_2$11 = cst_2$105, + cst_0_0217$0 = cst_0_0217$5, + cst_3$10 = cst_3$101, + cst_0_0194$0 = cst_0_0194$5, + cst_4$9 = cst_4$98, + cst_0_018$0 = cst_0_018$5, + cst_5$3 = cst_5$158, + cst_0_0169$0 = cst_0_0169$5, + cst_0_0162$0 = cst_0_0162$5, + _fy_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fq_ = + [0, + cst_examples_aides_logement_ar$0, + 385, + 6, + 392, + 28, + [0, + cst_Article_46, + [0, + cst_Articles_en_vigueur_partir$3, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$24 = cst_0$356, + cst_0_0281 = cst_0_0281$5, + cst_0_0299 = cst_0_0299$5, + cst_1$8 = cst_1$254, + cst_0_0238$2 = cst_0_0238$8, + cst_2$10 = cst_2$105, + cst_0_0217 = cst_0_0217$5, + cst_3$9 = cst_3$101, + cst_0_0194 = cst_0_0194$5, + cst_4$8 = cst_4$98, + cst_0_018 = cst_0_018$5, + cst_5$2 = cst_5$158, + cst_0_0169 = cst_0_0169$5, + cst_0_0162 = cst_0_0162$5, + _fz_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fC_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fl_ = + [0, + cst_examples_aides_logement_ar$0, + 2251, + 29, + 2251, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$23 = cst_0$356, + cst_0_0283$1 = cst_0_0283$2, + cst_0_0315$1 = cst_0_0315$2, + cst_1$7 = cst_1$254, + cst_0_027$1 = cst_0_027$2, + cst_2$9 = cst_2$105, + cst_0_0238$1 = cst_0_0238$8, + cst_3$8 = cst_3$101, + cst_0_0201$1 = cst_0_0201$2, + cst_4$7 = cst_4$98, + cst_0_0185$1 = cst_0_0185$2, + cst_5$1 = cst_5$158, + cst_0_0179$1 = cst_0_0179$2, + cst_6$6 = cst_6$92, + cst_0_0173$3 = cst_0_0173$5, + cst_6$7 = cst_6$92, + cst_0_0006$1 = cst_0_0006$3, + cst_0_0173$4 = cst_0_0173$5, + _fm_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fk_ = + [0, + cst_examples_aides_logement_ar$0, + 1168, + 29, + 1168, + 55, + [0, + cst_Article_14, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + cst_0$22 = cst_0$356, + cst_0_0283$0 = cst_0_0283$2, + cst_0_0315$0 = cst_0_0315$2, + cst_1$6 = cst_1$254, + cst_0_027$0 = cst_0_027$2, + cst_2$8 = cst_2$105, + cst_0_0238$0 = cst_0_0238$8, + cst_3$7 = cst_3$101, + cst_0_0201$0 = cst_0_0201$2, + cst_4$6 = cst_4$98, + cst_0_0185$0 = cst_0_0185$2, + cst_5$0 = cst_5$158, + cst_0_0179$0 = cst_0_0179$2, + cst_6$4 = cst_6$92, + cst_0_0173$1 = cst_0_0173$5, + cst_6$5 = cst_6$92, + cst_0_0006$0 = cst_0_0006$3, + cst_0_0173$2 = cst_0_0173$5, + _fn_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fj_ = + [0, + cst_examples_aides_logement_ar, + 360, + 29, + 360, + 55, + [0, + cst_Article_14, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$21 = cst_0$356, + cst_0_0283 = cst_0_0283$2, + cst_0_0315 = cst_0_0315$2, + cst_1$5 = cst_1$254, + cst_0_027 = cst_0_027$2, + cst_2$7 = cst_2$105, + cst_0_0238 = cst_0_0238$8, + cst_3$6 = cst_3$101, + cst_0_0201 = cst_0_0201$2, + cst_4$5 = cst_4$98, + cst_0_0185 = cst_0_0185$2, + cst_5 = cst_5$158, + cst_0_0179 = cst_0_0179$2, + cst_6$2 = cst_6$92, + cst_0_0173 = cst_0_0173$5, + cst_6$3 = cst_6$92, + cst_0_0006 = cst_0_0006$3, + cst_0_0173$0 = cst_0_0173$5, + _fo_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fp_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ff_ = + [0, + cst_examples_aides_logement_co$0, + 4257, + 14, + 4257, + 29, + [0, + "Article D842-2", + [0, + cst_Section_1_Secteur_locatif_, + [0, + cst_Chapitre_2_Modalit_s_de_li, + [0, + cst_Titre_IV_Allocations_de_Lo, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_3$5 = cst_3$102, + cst_2$6 = cst_2$106, + _fb_ = + [0, + cst_examples_aides_logement_ar, + 298, + 14, + 298, + 42, + [0, + "Article 12", + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0$20 = cst_0$356, + cst_1000 = cst_1000$5, + cst_1000$0 = cst_1000$5, + _e6_ = + [0, + cst_examples_aides_logement_ar$0, + 2188, + 14, + 2188, + 55, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$0, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _e7_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e5_ = + [0, + cst_examples_aides_logement_ar$0, + 1106, + 14, + 1106, + 55, + [0, + cst_Article_9, + [0, + cst_Articles_en_vigueur_partir$1, + [0, cst_Archives_de_l_arr_t_du_27_, 0]]]], + _e8_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e4_ = + [0, + cst_examples_aides_logement_ar, + 235, + 14, + 235, + 55, + [0, + cst_Article_9, + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + _e9_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e0_ = + [0, + cst_examples_aides_logement_ar, + 285, + 14, + 285, + 41, + [0, + "Article 11", + [0, + cst_Chapitre_III_Calcul_des_ai, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_500 = cst_500$4, + _eU_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eQ_ = + [0, + cst_examples_aides_logement_co$0, + 1889, + 14, + 1889, + 29, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_98 = cst_0_98$1, + _eR_ = + [0, + cst_examples_aides_logement_pr, + 597, + 11, + 597, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eP_ = + [0, + cst_examples_aides_logement_pr, + 597, + 11, + 597, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eS_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, "fraction_l832_3", 0]], + _eV_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eW_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales_dat, 0]], + _eT_ = + [0, + cst_examples_aides_logement_pr, + 629, + 14, + 629, + 50, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _eY_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_contributions_sociales, [0, cst_ContributionsSocialesAides, 0]]], + _e1_ = + [0, + cst_examples_aides_logement_pr, + 600, + 11, + 600, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _eZ_ = + [0, + cst_examples_aides_logement_pr, + 600, + 11, + 600, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e2_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_forfaitaire_d823_16", 0]], + _e__ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e3_ = + [0, + cst_examples_aides_logement_pr, + 605, + 11, + 605, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _e$_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "multiplicateur_majoration_charges_d823_16", 0]], + _fc_ = + [0, + cst_examples_aides_logement_pr, + 601, + 11, + 601, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fa_ = + [0, + cst_examples_aides_logement_pr, + 601, + 11, + 601, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fd_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "montant_minimal_aide_d823_16", 0]], + _fg_ = + [0, + cst_examples_aides_logement_pr, + 574, + 10, + 574, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fe_ = + [0, + cst_examples_aides_logement_pr, + 574, + 10, + 574, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fh_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9", 0]], + _fD_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fi_ = + [0, + cst_examples_aides_logement_pr, + 612, + 12, + 612, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fE_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_taux_composition_familiale$0, 0]], + _f0_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _fF_ = + [0, + cst_examples_aides_logement_pr, + 607, + 11, + 607, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f1_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "multiplicateur_majoration_r0", 0]], + _gj_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _f2_ = + [0, + cst_examples_aides_logement_pr, + 606, + 11, + 606, + 52, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gk_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "multiplicateur_majoration_loyer_r\xc3\xa9f\xc3\xa9rence", 0]], + _gI_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gl_ = + [0, + cst_examples_aides_logement_pr, + 604, + 11, + 604, + 60, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gJ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "multiplicateur_majoration_plafond_loyer_d823_16_2", 0]], + _hp_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _gK_ = + [0, + cst_examples_aides_logement_pr, + 609, + 12, + 609, + 47, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hq_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_montant_forfaitaire_charge$2, 0]], + _hW_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hr_ = + [0, + cst_examples_aides_logement_pr, + 602, + 11, + 602, + 41, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hX_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "abattement_forfaitaire_d823_17", 0]], + _h5_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _hY_ = + [0, + cst_examples_aides_logement_pr, + 596, + 11, + 596, + 26, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h6_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "loyer_r\xc3\xa9f\xc3\xa9rence", 0]], + _iX_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _h7_ = + [0, + cst_examples_aides_logement_pr, + 610, + 12, + 610, + 35, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iY_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_plafond_loyer_d823_16_2$0, 0]], + _i1_ = + [0, + cst_examples_aides_logement_pr, + 599, + 11, + 599, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _iZ_ = + [0, + cst_examples_aides_logement_pr, + 599, + 11, + 599, + 38, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i2_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "plafond_suppression_d823_16", 0]], + _i5_ = + [0, + cst_examples_aides_logement_pr, + 598, + 11, + 598, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i3_ = + [0, + cst_examples_aides_logement_pr, + 598, + 11, + 598, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i6_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16", 0]], + _i9_ = + [0, + cst_examples_aides_logement_pr, + 591, + 11, + 591, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i7_ = + [0, + cst_examples_aides_logement_pr, + 591, + 11, + 591, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _i__ = + [0, cst_CalculAidePersonnalis_eLog$2, [0, "loyer_\xc3\xa9ligible", 0]], + _je_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_dim, 0]], + _jm_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jf_ = + [0, + cst_examples_aides_logement_pr, + 611, + 12, + 611, + 34, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jn_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_participation_minimale$0, 0]], + _jv_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jo_ = + [0, + cst_examples_aides_logement_pr, + 595, + 11, + 595, + 25, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jw_ = [0, cst_CalculAidePersonnalis_eLog$2, [0, "rapport_loyers", 0]], + _jE_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_min, 0]], + _jM_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jF_ = + [0, + cst_examples_aides_logement_pr, + 593, + 10, + 593, + 17, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _jN_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "taux_loyer_\xc3\xa9ligible_formule", 0]], + _jZ_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_con, 0]], + _j7_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j0_ = + [0, + cst_examples_aides_logement_pr, + 594, + 10, + 594, + 22, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _j8_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "taux_loyer_\xc3\xa9ligible_taux_arrondi", 0]], + _ke_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_r_d, 0]], + _kh_ = + [0, + cst_examples_aides_logement_pr, + 603, + 11, + 603, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kf_ = + [0, + cst_examples_aides_logement_pr, + 603, + 11, + 603, + 39, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ki_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, "taux_prise_compte_ressources", 0]], + _kq_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_traitement_aide_finale_mon, 0]], + _kt_ = + [0, + cst_examples_aides_logement_pr, + 613, + 12, + 613, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kr_ = + [0, + cst_examples_aides_logement_pr, + 613, + 12, + 613, + 37, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ku_ = + [0, + cst_CalculAidePersonnalis_eLog$2, + [0, cst_participation_personnelle$0, 0]], + _kx_ = + [0, + cst_examples_aides_logement_pr, + 618, + 12, + 618, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kv_ = + [0, + cst_examples_aides_logement_pr, + 618, + 12, + 618, + 31, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _ky_ = + [0, cst_CalculAidePersonnalis_eLog$2, [0, cst_aide_finale_formule$9, 0]], + cst_2_5$4 = cst_2_5$5, + _kz_ = + [0, + cst_examples_aides_logement_co$0, + 1842, + 13, + 1842, + 74, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _kI_ = + [0, + cst_examples_aides_logement_co$0, + 1842, + 13, + 1842, + 74, + [0, + cst_Article_D823_16, + [0, + cst_Sous_section_2_Calcul_de_l, + [0, + cst_Section_1_Calcul_liquidati, + [0, + cst_Chapitre_III_Modalit_s_de_, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0_98$0 = cst_0_98$1, + cst_0_9 = cst_0_9$3, + _kA_ = + [0, + cst_examples_aides_logement_co, + 854, + 13, + 854, + 61, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _kH_ = + [0, + cst_examples_aides_logement_co, + 854, + 13, + 854, + 61, + [0, + cst_Article_L832_3, + [0, + cst_Chapitre_Ier_Champ_d_appli, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_construction_et, 0]]]]]]], + _kB_ = + [0, + cst_examples_aides_logement_pr, + 640, + 13, + 640, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kG_ = + [0, + cst_examples_aides_logement_pr, + 640, + 13, + 640, + 53, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$76 = cst_0$356, + _kC_ = + [0, + cst_examples_aides_logement_pr, + 633, + 13, + 633, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kF_ = + [0, + cst_examples_aides_logement_pr, + 633, + 13, + 633, + 43, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kD_ = + [0, + cst_examples_aides_logement_pr, + 632, + 13, + 632, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _kE_ = + [0, + cst_examples_aides_logement_pr, + 632, + 13, + 632, + 42, + [0, + cst_Secteur_locatif, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + cst_0$19 = cst_0$356, + cst_100 = cst_100$13, + cst_49 = "49", + cst_0_01 = cst_0_01$1, + _eB_ = [7, 0], + _eC_ = [5, 0], + _eD_ = [4, 0], + _eE_ = [3, 0], + _eF_ = [2, 0], + _eG_ = [1, 0], + _eH_ = [0, 0], + _eI_ = [6, 0], + _eJ_ = + [0, + cst_examples_aides_logement_pr$3, + 34, + 5, + 43, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1003 = "1003", + _eK_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _ey_ = [8, 0], + _ez_ = + [0, + cst_examples_aides_logement_pr$3, + 52, + 5, + 54, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2018_1173_du_19_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_757 = "757", + _eA_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eo_ = [7, 0], + _ep_ = [5, 0], + _eq_ = [4, 0], + _er_ = [3, 0], + _es_ = [2, 0], + _et_ = [1, 0], + _eu_ = [0, 0], + _ev_ = [6, 0], + _ew_ = + [0, + cst_examples_aides_logement_pr$3, + 73, + 5, + 82, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1015 = "1015", + _ex_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _el_ = [8, 0], + _em_ = + [0, + cst_examples_aides_logement_pr$3, + 91, + 5, + 93, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2019_1387_du_18_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_766 = "766", + _en_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eb_ = [7, 0], + _ec_ = [5, 0], + _ed_ = [4, 0], + _ee_ = [3, 0], + _ef_ = [2, 0], + _eg_ = [1, 0], + _eh_ = [0, 0], + _ei_ = [6, 0], + _ej_ = + [0, + cst_examples_aides_logement_pr$3, + 112, + 5, + 121, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1025 = "1025", + _ek_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _d__ = [8, 0], + _d$_ = + [0, + cst_examples_aides_logement_pr$3, + 130, + 5, + 132, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2020_1598_du_16_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_774 = "774", + _ea_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _d0_ = [7, 0], + _d1_ = [5, 0], + _d2_ = [4, 0], + _d3_ = [3, 0], + _d4_ = [2, 0], + _d5_ = [1, 0], + _d6_ = [0, 0], + _d7_ = [6, 0], + _d8_ = + [0, + cst_examples_aides_logement_pr$3, + 151, + 5, + 160, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1057 = "1057", + _d9_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dX_ = [8, 0], + _dY_ = + [0, + cst_examples_aides_logement_pr$3, + 170, + 5, + 172, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2021_1741_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_798 = "798", + _dZ_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dN_ = [7, 0], + _dO_ = [5, 0], + _dP_ = [4, 0], + _dQ_ = [3, 0], + _dR_ = [2, 0], + _dS_ = [1, 0], + _dT_ = [0, 0], + _dU_ = [6, 0], + _dV_ = + [0, + cst_examples_aides_logement_pr$3, + 191, + 5, + 200, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1085 = "1085", + _dW_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dK_ = [8, 0], + _dL_ = + [0, + cst_examples_aides_logement_pr$3, + 209, + 5, + 211, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_19_avril_2022_rel, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_819 = "819", + _dM_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dA_ = [7, 0], + _dB_ = [5, 0], + _dC_ = [4, 0], + _dD_ = [3, 0], + _dE_ = [2, 0], + _dF_ = [1, 0], + _dG_ = [0, 0], + _dH_ = [6, 0], + _dI_ = + [0, + cst_examples_aides_logement_pr$3, + 230, + 5, + 239, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1107 = "1107", + _dJ_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dx_ = [8, 0], + _dy_ = + [0, + cst_examples_aides_logement_pr$3, + 248, + 5, + 250, + 6, + [0, + cst_Article_2, + [0, + cst_Arr_t_du_29_juillet_2022_r, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_835 = "835", + _dz_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dn_ = [7, 0], + _do_ = [5, 0], + _dp_ = [4, 0], + _dq_ = [3, 0], + _dr_ = [2, 0], + _ds_ = [1, 0], + _dt_ = [0, 0], + _du_ = [6, 0], + _dv_ = + [0, + cst_examples_aides_logement_pr$3, + 270, + 5, + 279, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_1127 = "1127", + _dw_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dk_ = [8, 0], + _dl_ = + [0, + cst_examples_aides_logement_pr$3, + 288, + 5, + 290, + 6, + [0, + cst_Article_1, + [0, + cst_D_cret_n_2022_1608_du_22_d, + [0, cst_Montant_du_salaire_minimum, 0]]]], + cst_851 = "851", + _dm_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eL_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dj_ = + [0, + cst_examples_aides_logement_pr$3, + 11, + 12, + 11, + 24, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eM_ = [0, cst_Smic, [0, cst_brut_horaire$0, 0]], + _eN_ = + [0, + cst_examples_aides_logement_pr$3, + 16, + 13, + 16, + 42, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _eO_ = + [0, + cst_examples_aides_logement_pr$3, + 16, + 13, + 16, + 42, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dg_ = + [0, + cst_examples_aides_logement_pr$4, + 36, + 14, + 36, + 27, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dh_ = + [0, + cst_examples_aides_logement_pr$4, + 33, + 12, + 33, + 25, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _df_ = + [0, + cst_examples_aides_logement_pr$4, + 33, + 12, + 33, + 25, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _di_ = [0, cst_V_rification_geSup_rieur, [0, cst_est_sup_rieur$0, 0]], + _dc_ = + [0, + cst_examples_aides_logement_pr$4, + 25, + 14, + 25, + 35, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _dd_ = + [0, + cst_examples_aides_logement_pr$4, + 22, + 12, + 22, + 33, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _db_ = + [0, + cst_examples_aides_logement_pr$4, + 22, + 12, + 22, + 33, + [0, cst_Prologue, [0, cst_Montant_du_salaire_minimum, 0]]], + _de_ = + [0, cst_V_rification_geInf_rieurOu, [0, cst_est_inf_rieur_ou_gal$0, 0]], + _c7_ = + [0, + cst_examples_aides_logement_ba, + 32, + 5, + 33, + 33, + [0, + "Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41316 = "41316", + _c8_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c5_ = + [0, + cst_examples_aides_logement_ba, + 52, + 5, + 53, + 33, + [0, + "Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41440 = "41440", + _c6_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c3_ = + [0, + cst_examples_aides_logement_ba, + 68, + 5, + 69, + 33, + [0, + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_41481 = "41481", + _c4_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c1_ = + [0, + cst_examples_aides_logement_ba, + 86, + 5, + 86, + 34, + [0, + "Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte", + [0, cst_Montant_de_la_base_mensuel, 0]]], + cst_42228 = "42228", + _c2_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c9_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c0_ = + [0, + cst_examples_aides_logement_ba, + 6, + 12, + 6, + 19, + [0, cst_Montant_de_la_base_mensuel, 0]], + _c__ = [0, cst_BaseMensuelleAllocationsFa, [0, cst_montant$2, 0]], + _c$_ = + [0, + cst_examples_aides_logement_ba, + 10, + 13, + 10, + 42, + [0, cst_Montant_de_la_base_mensuel, 0]], + _da_ = + [0, + cst_examples_aides_logement_ba, + 10, + 13, + 10, + 42, + [0, cst_Montant_de_la_base_mensuel, 0]], + _cV_ = + [0, + cst_examples_aides_logement_co$0, + 2244, + 14, + 2244, + 28, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$18 = cst_0$356, + _cW_ = + [0, + cst_examples_aides_logement_pr, + 1100, + 12, + 1100, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cU_ = + [0, + cst_examples_aides_logement_co$0, + 2181, + 14, + 2181, + 28, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$17 = cst_0$356, + _cX_ = + [0, + cst_examples_aides_logement_pr, + 1100, + 12, + 1100, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cP_ = + [0, + cst_examples_aides_logement_co$0, + 2186, + 20, + 2186, + 55, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$15 = cst_0$356, + cst_0$16 = cst_0$356, + cst_2$5 = cst_2$106, + _cQ_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cN_ = + [0, + cst_examples_aides_logement_co$0, + 2202, + 20, + 2202, + 51, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$13 = cst_0$356, + cst_0$14 = cst_0$356, + cst_2$4 = cst_2$106, + _cO_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cL_ = + [0, + cst_examples_aides_logement_co$0, + 2268, + 7, + 2268, + 42, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_6$1 = cst_6$93, + cst_1$4 = cst_1$255, + cst_2$3 = cst_2$106, + cst_0$12 = cst_0$356, + _cM_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cJ_ = + [0, + cst_examples_aides_logement_co$0, + 2296, + 7, + 2296, + 51, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_6$0 = cst_6$93, + cst_1$3 = cst_1$255, + cst_2$2 = cst_2$106, + cst_0$11 = cst_0$356, + _cK_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cE_ = + [0, + cst_examples_aides_logement_co$0, + 2225, + 14, + 2225, + 36, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cF_ = + [0, + cst_examples_aides_logement_pr, + 1098, + 11, + 1098, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cC_ = + [0, + cst_examples_aides_logement_co$0, + 2321, + 14, + 2321, + 36, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_12$1 = cst_12$4, + _cD_ = + [0, + cst_examples_aides_logement_pr, + 1098, + 11, + 1098, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cw_ = + [0, + cst_examples_aides_logement_co$0, + 2312, + 14, + 2312, + 36, + [0, + cst_Article_R824_2, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cx_ = + [0, + cst_examples_aides_logement_pr, + 1097, + 11, + 1097, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cv_ = + [0, + cst_examples_aides_logement_co$0, + 2216, + 14, + 2216, + 36, + [0, + cst_Article_R824_1, + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cy_ = + [0, + cst_examples_aides_logement_pr, + 1097, + 11, + 1097, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cr_ = + [0, + cst_examples_aides_logement_co$0, + 2344, + 14, + 2344, + 36, + [0, + "Article R824-3", + [0, + cst_Section_1_Seuils_de_consti, + [0, + cst_Chapitre_IV_Impay_s_de_d_p, + [0, + cst_Titre_II_Dispositions_comm, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + _cm_ = [0, 0], + _cn_ = [1, 0], + _co_ = [1, 0], + _cp_ = [0, 0], + _cq_ = [0, 0], + _cs_ = + [0, + cst_examples_aides_logement_pr, + 1096, + 11, + 1096, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cl_ = + [0, + cst_examples_aides_logement_pr, + 1096, + 11, + 1096, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ct_ = + [0, cst_Impay_D_penseLogement, [0, "mode_occupation_impay\xc3\xa9", 0]], + _cz_ = + [0, + cst_examples_aides_logement_pr, + 1097, + 11, + 1097, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cu_ = + [0, + cst_examples_aides_logement_pr, + 1097, + 11, + 1097, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cA_ = + [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_brute", 0]], + _cG_ = + [0, + cst_examples_aides_logement_pr, + 1098, + 11, + 1098, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cB_ = + [0, + cst_examples_aides_logement_pr, + 1098, + 11, + 1098, + 33, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cH_ = + [0, cst_Impay_D_penseLogement, [0, "d\xc3\xa9pense_logement_nette", 0]], + _cR_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cI_ = + [0, + cst_examples_aides_logement_pr, + 1095, + 11, + 1095, + 43, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cS_ = + [0, + cst_Impay_D_penseLogement, + [0, "seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement", 0]], + _cY_ = + [0, + cst_examples_aides_logement_pr, + 1100, + 12, + 1100, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cT_ = + [0, + cst_examples_aides_logement_pr, + 1100, + 12, + 1100, + 26, + [0, + cst_Quantification_des_impay_s, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cZ_ = [0, cst_Impay_D_penseLogement, [0, cst_montant_impay$0, 0]], + _ch_ = + [0, + cst_examples_aides_logement_co$1, + 119, + 5, + 119, + 42, + [0, + cst_Article_L161_17_2, + [0, + cst_Paragraphe_1_Information_e, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Titre_III_Titre_III_Dispos, + [0, + cst_Partie_l_gislative, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ci_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cf_ = + [0, + cst_examples_aides_logement_co$1, + 256, + 5, + 256, + 41, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _cg_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cd_ = + [0, + cst_examples_aides_logement_co$1, + 266, + 5, + 267, + 42, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ce_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1952 = "1952", + _cb_ = + [0, + cst_examples_aides_logement_co$1, + 276, + 5, + 276, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _cc_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1953 = "1953", + _b$_ = + [0, + cst_examples_aides_logement_co$1, + 285, + 5, + 285, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _ca_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_1954 = "1954", + _b9_ = + [0, + cst_examples_aides_logement_co$1, + 294, + 5, + 294, + 48, + [0, + cst_Article_D161_2_1_9, + [0, + cst_Paragraphe_2_Ouverture_du_, + [0, + cst_Sous_section_4_Assurance_v, + [0, + cst_Section_1_B_n_ficiaires, + [0, + cst_Chapitre_1er_Dispositions_, + [0, + cst_Titre_VI_Dispositions_rela, + [0, + cst_Livre_I_G_n_ralit_s_Dispos, + [0, + cst_Partie_r_glementaire_D_cre, + [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]]]]], + _b__ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _cj_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _b8_ = + [0, + cst_examples_aides_logement_pr, + 1080, + 12, + 1080, + 31, + [0, + cst_Date_d_ouverture_des_droit, + [0, + cst_Calcul_du_montant_de_l_all, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ck_ = [0, cst_OuvertureDroitsRetraite, [0, cst_ge_ouverture_droit$0, 0]], + _b5_ = + [0, + cst_examples_aides_logement_co$0, + 3259, + 14, + 3259, + 36, + [0, + cst_Article_D832_11, + [0, + cst_Section_2_Accession_la_pro, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]], + cst_0$10 = cst_0$356, + cst_1_4$0 = cst_1_4$1, + cst_1_8$0 = cst_1_8$1, + cst_1$2 = cst_1$254, + cst_2_5$1 = cst_2_5$5, + cst_2$1 = cst_2$105, + cst_3$3 = cst_3$102, + cst_3$4 = cst_3$101, + cst_3_7$1 = cst_3_7$2, + cst_4$3 = cst_4$98, + cst_4_3$1 = cst_4_3$3, + cst_4$4 = cst_4$98, + cst_0_5$1 = cst_0_5$2, + cst_4_3$2 = cst_4_3$3, + _b6_ = + [0, + cst_examples_aides_logement_pr, + 735, + 12, + 735, + 34, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b4_ = + [0, + cst_examples_aides_logement_pr, + 735, + 12, + 735, + 34, + [0, + cst_Secteur_accession_la_propr, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b7_ = + [0, + cst_CalculNombrePartsAccession, + [0, cst_n_nombre_parts_d832_11$0, 0]], + _b1_ = + [0, + cst_examples_aides_logement_co$0, + 3935, + 14, + 3935, + 36, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_6 = cst_6$92, + _bV_ = + [0, + cst_examples_aides_logement_co$0, + 5558, + 5, + 5565, + 28, + [0, + cst_Article_D861_8, + [0, + cst_Section_2_Allocations_de_l, + [0, + cst_Titre_VI_Disposition_parti, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]], + cst_1$1 = cst_1$255, + _bW_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bU_ = + [0, + cst_examples_aides_logement_co$0, + 4026, + 5, + 4026, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_4$1 = cst_4$98, + cst_4$2 = cst_4$98, + cst_0_5$0 = cst_0_5$2, + cst_0$9 = cst_0$357, + _bX_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bT_ = + [0, + cst_examples_aides_logement_co$0, + 3930, + 14, + 3930, + 47, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_4 = cst_4$98, + cst_4$0 = cst_4$98, + cst_0_5 = cst_0_5$2, + cst_0$8 = cst_0$357, + _bO_ = + [0, + cst_examples_aides_logement_co$0, + 4009, + 5, + 4009, + 26, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$7 = cst_0$356, + cst_1_2 = "1.2", + cst_1_5 = "1.5", + cst_1$0 = cst_1$254, + cst_2_5$0 = cst_2_5$5, + cst_2$0 = cst_2$105, + cst_3$1 = cst_3$102, + cst_3$2 = cst_3$101, + cst_3_7$0 = cst_3_7$2, + cst_4_3$0 = cst_4_3$3, + _bP_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bN_ = + [0, + cst_examples_aides_logement_co$0, + 3915, + 14, + 3915, + 41, + [0, + cst_Article_D832_25, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$6 = cst_0$356, + cst_1_4 = cst_1_4$1, + cst_1_8 = cst_1_8$1, + cst_1 = cst_1$254, + cst_2_5 = cst_2_5$5, + cst_2 = cst_2$105, + cst_3 = cst_3$102, + cst_3$0 = cst_3$101, + cst_3_7 = cst_3_7$2, + cst_4_3 = cst_4_3$3, + _bI_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bJ_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bK_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bH_ = + [0, + cst_examples_aides_logement_pr, + 665, + 12, + 665, + 52, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bL_ = + [0, + cst_CalculNombrePartLogementFo, + [0, cst_limitation_majoration_pers$1, 0]], + _bQ_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bM_ = + [0, + cst_examples_aides_logement_pr, + 667, + 11, + 667, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bR_ = + [0, + cst_CalculNombrePartLogementFo, + [0, "n_nombre_parts_d832_25_base", 0]], + _bY_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bS_ = + [0, + cst_examples_aides_logement_pr, + 668, + 11, + 668, + 44, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bZ_ = + [0, + cst_CalculNombrePartLogementFo, + [0, "n_nombre_parts_d832_25_majoration", 0]], + _b2_ = + [0, + cst_examples_aides_logement_pr, + 670, + 12, + 670, + 34, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b0_ = + [0, + cst_examples_aides_logement_pr, + 670, + 12, + 670, + 34, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _b3_ = + [0, + cst_CalculNombrePartLogementFo, + [0, cst_n_nombre_parts_d832_25$1, 0]], + _bD_ = + [0, + cst_examples_aides_logement_co$0, + 4099, + 5, + 4099, + 26, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$4 = cst_0$357, + cst_12$0 = cst_12$4, + cst_0$5 = cst_0$357, + _bE_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bC_ = + [0, + cst_examples_aides_logement_co$0, + 4061, + 14, + 4061, + 21, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + cst_0$2 = cst_0$357, + cst_12 = cst_12$4, + cst_0$3 = cst_0$357, + _by_ = + [0, + cst_examples_aides_logement_co$0, + 4048, + 14, + 4048, + 50, + [0, + cst_Article_D832_26, + [0, + cst_Sous_Section_2_Conditions_, + [0, + cst_Section_3_Logements_foyers, + [0, + cst_Chapitre_II_Modalit_s_de_l, + [0, + cst_Titre_III_Aide_personnalis, + [0, + cst_Livre_VIII_Aides_personnel, + [0, + cst_Partie_r_glementaire, + [0, cst_Code_de_la_construction_et, 0]]]]]]]]], + _bx_ = [1, 0], + _bs_ = + [0, + cst_examples_aides_logement_ar, + 2684, + 5, + 2684, + 26, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_328 = "0.328", + cst_409505 = cst_409505$1, + _br_ = [1, 0], + cst_0_232 = "0.232", + cst_262985 = cst_262985$1, + cst_409505$0 = cst_409505$1, + cst_0_208 = cst_0_208$1, + cst_204761 = cst_204761$1, + cst_262985$0 = cst_262985$1, + cst_0_024 = "0.024", + cst_142303 = cst_142303$1, + cst_204761$0 = cst_204761$1, + cst_0$0 = cst_0$357, + cst_0$1 = cst_0$356, + cst_142303$0 = cst_142303$1, + _bt_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bq_ = + [0, + cst_examples_aides_logement_ar, + 2634, + 14, + 2634, + 38, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_0_48 = "0.48", + cst_633129 = cst_633129$1, + _bp_ = [1, 0], + cst_0_32 = "0.32", + cst_535744 = cst_535744$1, + cst_633129$0 = cst_633129$1, + cst_0_264 = "0.264", + cst_389618 = cst_389618$1, + cst_535744$0 = cst_535744$1, + cst_0_216 = "0.216", + cst_267871 = cst_267871$1, + cst_389618$0 = cst_389618$1, + cst_0_104 = "0.104", + cst_194810 = cst_194810$1, + cst_267871$0 = cst_267871$1, + cst_0_04 = "0.04", + cst_0 = cst_0$356, + cst_194810$0 = cst_194810$1, + _bl_ = + [0, + cst_examples_aides_logement_ar, + 2720, + 14, + 2720, + 41, + [0, + cst_Article_31, + [0, + cst_Chapitre_V_Calcul_de_l_aid, + [0, cst_Arr_t_du_27_septembre_2019, 0]]]], + cst_7632 = "7632", + cst_4557 = "4557", + _bm_ = + [0, + cst_examples_aides_logement_pr, + 655, + 11, + 655, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bk_ = + [0, + cst_examples_aides_logement_pr, + 655, + 11, + 655, + 38, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bn_ = + [0, + cst_Calcul_quivalenceLoyerMini, + [0, "montant_forfaitaire_d832_26", 0]], + _bu_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bo_ = + [0, + cst_examples_aides_logement_pr, + 652, + 11, + 652, + 35, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bv_ = + [0, cst_Calcul_quivalenceLoyerMini, [0, "tranches_revenus_d832_26", 0]], + _bz_ = + [0, + cst_examples_aides_logement_pr, + 653, + 11, + 653, + 47, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bw_ = + [0, + cst_examples_aides_logement_pr, + 653, + 11, + 653, + 47, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bA_ = + [0, + cst_Calcul_quivalenceLoyerMini, + [0, "tranches_revenus_d832_26_multipli\xc3\xa9es", 0]], + _bF_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bB_ = + [0, + cst_examples_aides_logement_pr, + 657, + 12, + 657, + 19, + [0, + cst_Secteur_logement_foyer, + [0, + cst_Calcul_du_montant_de_l_aid, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]]], + _bG_ = [0, cst_Calcul_quivalenceLoyerMini, [0, cst_montant$2, 0]], + _be_ = + [0, + cst_examples_aides_logement_au, + 152, + 5, + 152, + 34, + [0, + cst_Article_14, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + _bf_ = + [0, + cst_examples_aides_logement_pr, + 558, + 12, + 558, + 19, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bd_ = + [0, + cst_examples_aides_logement_pr, + 558, + 12, + 558, + 19, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _ba_ = + [0, + cst_examples_aides_logement_au, + 190, + 39, + 190, + 68, + [0, + cst_Article_19, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + cst_0_005 = cst_0_005$3, + _a7_ = + [0, + cst_examples_aides_logement_co$1, + 37, + 9, + 37, + 20, + [0, + "Article L136-1-3", + [0, + "Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement", + [0, + "Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e", + [0, + cst_Titre_III_Titre_III_Dispos, + [0, cst_Partie_l_gislative, [0, cst_Code_de_la_s_curit_sociale, 0]]]]]]], + _a8_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a6_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a9_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a5_ = + [0, + cst_examples_aides_logement_pr, + 556, + 11, + 556, + 22, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a__ = + [0, cst_ContributionsSocialesAides, [0, "exon\xc3\xa9r\xc3\xa9_csg", 0]], + _bb_ = + [0, + cst_examples_aides_logement_pr, + 555, + 11, + 555, + 20, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _a$_ = + [0, + cst_examples_aides_logement_pr, + 555, + 11, + 555, + 20, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bc_ = [0, cst_ContributionsSocialesAides, [0, "taux_crds", 0]], + _bg_ = [0, cst_ContributionsSocialesAides, [0, cst_montant$2, 0]], + _bj_ = + [0, + cst_examples_aides_logement_au, + 156, + 13, + 156, + 24, + [0, + cst_Article_14, + [0, + cst_Chapitre_II_Des_contributi, + [0, cst_Ordonnance_n_96_50_du_24_j, 0]]]], + _bh_ = + [0, + cst_examples_aides_logement_pr, + 563, + 13, + 563, + 42, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + _bi_ = + [0, + cst_examples_aides_logement_pr, + 563, + 13, + 563, + 42, + [0, + cst_Calcul_des_contributions_s, + [0, + cst_D_clarations_des_champs_d_, + [0, cst_Prologue_aides_au_logement, 0]]]], + cst_ge_l512_3_2_in = "\xc3\xa2ge_l512_3_2_in", + cst_r_sidence_in$8 = cst_r_sidence_in$9, + cst_prestation_courante_in = "prestation_courante_in", + cst_date_courante_in$20 = cst_date_courante_in$21, + _a4_ = [0, "\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales_in", 0], + cst_r_sidence_in$7 = cst_r_sidence_in$9, + cst_date_courante_in$19 = cst_date_courante_in$21, + _a3_ = [0, "Smic_in", 0], + cst_ann_es_in$0 = cst_ann_es_in$1, + cst_date_courante_in$18 = cst_date_courante_in$21, + cst_date_naissance_in$0 = cst_date_naissance_in$1, + _a2_ = [0, "V\xc3\xa9rification\xc3\x82geSup\xc3\xa9rieur\xc3\x80_in", 0], + cst_ann_es_in = cst_ann_es_in$1, + cst_date_courante_in$17 = cst_date_courante_in$21, + cst_date_naissance_in = cst_date_naissance_in$1, + _a1_ = + [0, + "V\xc3\xa9rification\xc3\x82geInf\xc3\xa9rieurOu\xc3\x89gal\xc3\x80_in", + 0], + cst_date_courante_in$16 = cst_date_courante_in$21, + _a0_ = [0, "BaseMensuelleAllocationsFamiliales_in", 0], + cst_ressources_m_nage_prises_e$0 = cst_ressources_m_nage_prises_e$1, + cst_date_courante_in$15 = cst_date_courante_in$21, + cst_demandeur_in$4 = cst_demandeur_in$5, + cst_m_nage_in$4 = cst_m_nage_in$5, + _aZ_ = [0, "CalculetteAidesAuLogementGardeAltern\xc3\xa9e_in", 0], + cst_ressources_m_nage_prises_e = cst_ressources_m_nage_prises_e$1, + cst_date_courante_in$14 = cst_date_courante_in$21, + cst_demandeur_in$3 = cst_demandeur_in$5, + cst_m_nage_in$3 = cst_m_nage_in$5, + _aY_ = [0, "CalculetteAidesAuLogement_in", 0], + cst_montant_dette_in = "montant_dette_in", + cst_d_pense_logement_in = "d\xc3\xa9pense_logement_in", + cst_montant_charges_in = "montant_charges_in", + cst_montant_apl_in = "montant_apl_in", + cst_aide_vers_e_in = "aide_vers\xc3\xa9e_in", + cst_mode_occupation_in$2 = cst_mode_occupation_in$3, + _aX_ = [0, "Impay\xc3\xa9D\xc3\xa9penseLogement_in", 0], + cst_date_naissance_assur_in = "date_naissance_assur\xc3\xa9_in", + _aW_ = [0, "OuvertureDroitsRetraite_in", 0], + cst_r_sidence_in$6 = cst_r_sidence_in$9, + cst_type_aide_in$2 = cst_type_aide_in$3, + cst_date_courante_in$13 = cst_date_courante_in$21, + cst_zone_in$6 = cst_zone_in$7, + cst_nombre_personnes_charge_in$8 = cst_nombre_personnes_charge_in$9, + cst_situation_familiale_in$1 = cst_situation_familiale_in$2, + cst_ressources_m_nage_sans_arr$0 = cst_ressources_m_nage_sans_arr$1, + cst_mode_occupation_in$1 = cst_mode_occupation_in$3, + _aV_ = [0, "CalculAllocationLogement_in", 0], + cst_cat_gorie_quivalence_loyer$0 = + "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16_in", + cst_date_courante_in$12 = cst_date_courante_in$21, + cst_zone_in$5 = cst_zone_in$7, + cst_situation_familiale_calcul$6 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$7 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$6 = cst_ressources_m_nage_arrondie$7, + cst_redevance_in$0 = cst_redevance_in$1, + cst_r_sidence_in$5 = cst_r_sidence_in$9, + cst_date_conventionnement_in$0 = cst_date_conventionnement_in$1, + cst_type_logement_foyer_in$0 = cst_type_logement_foyer_in$1, + _aU_ = [0, "CalculAllocationLogementFoyer_in", 0], + cst_op_rations_logement_voluti$0 = + "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat_in", + cst_copropri_t_in$0 = cst_copropri_t_in$1, + cst_charges_mensuelles_pr_t_in = "charges_mensuelles_pr\xc3\xaat_in", + cst_date_entr_e_logement_in$0 = cst_date_entr_e_logement_in$1, + cst_local_habit_premi_re_fois_$1 = cst_local_habit_premi_re_fois_$2, + cst_type_travaux_logement_in$0 = cst_type_travaux_logement_in$1, + cst_date_signature_pr_t_in$0 = cst_date_signature_pr_t_in$1, + cst_situation_r822_11_13_17_in$0 = cst_situation_r822_11_13_17_in$1, + cst_mensualit_principale_in$0 = cst_mensualit_principale_in$1, + cst_date_courante_in$11 = cst_date_courante_in$21, + cst_r_sidence_in$4 = cst_r_sidence_in$9, + cst_zone_in$4 = cst_zone_in$7, + cst_situation_familiale_calcul$5 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$6 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$5 = cst_ressources_m_nage_arrondie$8, + _aT_ = + [0, "CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], + cst_changement_logement_d842_4$0 = "changement_logement_d842_4_in", + cst_r_sidence_in$3 = cst_r_sidence_in$9, + cst_logement_meubl_d842_2_in$0 = cst_logement_meubl_d842_2_in$1, + cst_r_duction_loyer_solidarit_$1 = cst_r_duction_loyer_solidarit_$2, + cst_colocation_in$0 = cst_colocation_in$1, + cst_type_aide_in$1 = cst_type_aide_in$3, + cst_g_es_ou_handicap_adultes_h$1 = cst_g_es_ou_handicap_adultes_h$2, + cst_logement_est_chambre_in$0 = cst_logement_est_chambre_in$1, + cst_zone_in$3 = cst_zone_in$7, + cst_situation_familiale_calcul$4 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$5 = cst_nombre_personnes_charge_in$9, + cst_date_courante_in$10 = cst_date_courante_in$21, + cst_b_n_ficiaire_aide_adulte_o$2 = cst_b_n_ficiaire_aide_adulte_o$3, + cst_ressources_m_nage_arrondie$4 = cst_ressources_m_nage_arrondie$7, + cst_loyer_principal_in = "loyer_principal_in", + _aS_ = [0, "CalculAllocationLogementLocatif_in", 0], + cst_r_sidence_in$2 = cst_r_sidence_in$9, + cst_date_courante_in$9 = cst_date_courante_in$21, + cst_zone_in$2 = cst_zone_in$7, + cst_nombre_personnes_charge_in$4 = cst_nombre_personnes_charge_in$9, + cst_situation_familiale_in$0 = cst_situation_familiale_in$2, + cst_ressources_m_nage_sans_arr = cst_ressources_m_nage_sans_arr$1, + cst_type_aide_in$0 = cst_type_aide_in$3, + cst_mode_occupation_in$0 = cst_mode_occupation_in$3, + _aR_ = [0, "CalculAidePersonnalis\xc3\xa9eLogement_in", 0], + cst_date_courante_in$8 = cst_date_courante_in$21, + cst_anciennet_logement_in = "anciennet\xc3\xa9_logement_in", + cst_type_pr_t_in = "type_pr\xc3\xaat_in", + cst_zone_in$1 = cst_zone_in$7, + cst_situation_r822_11_13_17_in = cst_situation_r822_11_13_17_in$1, + cst_copropri_t_in = cst_copropri_t_in$1, + cst_date_entr_e_logement_in = cst_date_entr_e_logement_in$1, + cst_local_habit_premi_re_fois_$0 = cst_local_habit_premi_re_fois_$2, + cst_date_signature_pr_t_in = cst_date_signature_pr_t_in$1, + cst_type_travaux_logement_in = cst_type_travaux_logement_in$1, + cst_situation_familiale_calcul$3 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$3 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$3 = cst_ressources_m_nage_arrondie$7, + cst_mensualit_principale_in = cst_mensualit_principale_in$1, + _aQ_ = + [0, + "CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9_in", + 0], + cst_situation_familiale_calcul$2 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$2 = cst_nombre_personnes_charge_in$9, + _aP_ = [0, "CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9_in", 0], + cst_n_nombre_parts_d832_25_in$0 = cst_n_nombre_parts_d832_25_in$1, + cst_limitation_majoration_pers$0 = cst_limitation_majoration_pers$2, + cst_condition_2_du_832_25_in$1 = cst_condition_2_du_832_25_in$2, + cst_r_sidence_in$1 = cst_r_sidence_in$9, + cst_redevance_in = cst_redevance_in$1, + cst_date_courante_in$7 = cst_date_courante_in$21, + cst_zone_in$0 = cst_zone_in$7, + cst_situation_familiale_calcul$1 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$1 = cst_nombre_personnes_charge_in$9, + cst_ressources_m_nage_arrondie$2 = cst_ressources_m_nage_arrondie$7, + cst_date_conventionnement_in = cst_date_conventionnement_in$1, + cst_type_logement_foyer_in = cst_type_logement_foyer_in$1, + _aO_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementFoyer_in", 0], + cst_limitation_majoration_pers = cst_limitation_majoration_pers$2, + cst_r_sidence_in$0 = cst_r_sidence_in$9, + cst_situation_familiale_calcul$0 = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in$0 = cst_nombre_personnes_charge_in$9, + cst_condition_2_du_832_25_in$0 = cst_condition_2_du_832_25_in$2, + _aN_ = [0, "CalculNombrePartLogementFoyer_in", 0], + cst_n_nombre_parts_d832_25_in = cst_n_nombre_parts_d832_25_in$1, + cst_condition_2_du_832_25_in = cst_condition_2_du_832_25_in$2, + cst_ressources_m_nage_arrondie$1 = cst_ressources_m_nage_arrondie$7, + cst_date_courante_in$6 = cst_date_courante_in$21, + _aM_ = [0, "Calcul\xc3\x89quivalenceLoyerMinimale_in", 0], + cst_r_sidence_in = cst_r_sidence_in$9, + cst_logement_meubl_d842_2_in = cst_logement_meubl_d842_2_in$1, + cst_r_duction_loyer_solidarit_$0 = cst_r_duction_loyer_solidarit_$2, + cst_colocation_in = cst_colocation_in$1, + cst_type_aide_in = cst_type_aide_in$3, + cst_g_es_ou_handicap_adultes_h$0 = cst_g_es_ou_handicap_adultes_h$2, + cst_logement_est_chambre_in = cst_logement_est_chambre_in$1, + cst_zone_in = cst_zone_in$7, + cst_situation_familiale_calcul = cst_situation_familiale_calcul$8, + cst_nombre_personnes_charge_in = cst_nombre_personnes_charge_in$9, + cst_date_courante_in$5 = cst_date_courante_in$21, + cst_b_n_ficiaire_aide_adulte_o$1 = cst_b_n_ficiaire_aide_adulte_o$3, + cst_ressources_m_nage_arrondie$0 = cst_ressources_m_nage_arrondie$7, + cst_loyer_principal_base_in = "loyer_principal_base_in", + _aL_ = [0, "CalculAidePersonnalis\xc3\xa9eLogementLocatif_in", 0], + cst_date_courante_in$4 = cst_date_courante_in$21, + _aK_ = [0, "ContributionsSocialesAidesPersonnelleLogement_in", 0], + cst_ressources_m_nage_arrondie = cst_ressources_m_nage_arrondie$8, + cst_paiement_logement_distinct = + "paiement_logement_distinct_professionnel_in", + cst_date_demande_ou_reexamen_d = "date_demande_ou_reexamen_droit_in", + cst_demandeur_poursuit_des_tud = "demandeur_poursuit_des_\xc3\xa9tudes_in", + cst_condition_ge_bourse_enseig = + "condition_\xc3\xa2ge_bourse_enseignement_sup\xc3\xa9rieur_in", + cst_date_courante_in$3 = cst_date_courante_in$21, + cst_mode_occupation_in = cst_mode_occupation_in$3, + cst_situation_familiale_in = cst_situation_familiale_in$2, + cst_personnes_charge_in = "personnes_\xc3\xa0_charge_in", + cst_conjoint_exerce_activit_r_ = + "conjoint_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", + cst_demandeur_exerce_activit_r = + "demandeur_exerce_activit\xc3\xa9_r\xc3\xa9mun\xc3\xa9r\xc3\xa9e_in", + cst_personnes_vivant_habituell = + "personnes_vivant_habituellement_foyer_in", + cst_ressources_conjoint_in = "ressources_conjoint_in", + cst_ressources_demandeur_in = "ressources_demandeur_in", + _aJ_ = [0, "RessourcesAidesPersonnelleLogement_in", 0], + cst_d_penses_justifi_es_r_elle = + "d\xc3\xa9penses_justifi\xc3\xa9es_r\xc3\xa9ellement_engag\xc3\xa9es_in", + cst_date_courante_in$2 = cst_date_courante_in$21, + cst_demandeur_in$2 = cst_demandeur_in$5, + cst_m_nage_in$2 = cst_m_nage_in$5, + cst_date_emm_nagement_in = "date_emm\xc3\xa9nagement_in", + cst_informations_in = "informations_in", + _aI_ = + [0, "\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement_in", 0], + cst_b_n_ficie_aide_personnalis = + "b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement_in", + cst_demandeur_in$1 = cst_demandeur_in$5, + cst_m_nage_in$1 = cst_m_nage_in$5, + cst_date_courante_in$1 = cst_date_courante_in$21, + _aH_ = [0, "\xc3\x89ligibilit\xc3\xa9AllocationLogement_in", 0], + cst_date_courante_in$0 = cst_date_courante_in$21, + cst_demandeur_in$0 = cst_demandeur_in$5, + cst_m_nage_in$0 = cst_m_nage_in$5, + _aG_ = + [0, "\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement_in", 0], + cst_date_entr_e_vigueur_diff_r = + "date_entr\xc3\xa9e_vigueur_diff\xc3\xa9r\xc3\xa9e_cch_in", + cst_condition_logement_surface = "condition_logement_surface_in", + cst_condition_logement_r_siden = + "condition_logement_r\xc3\xa9sidence_principale_in", + cst_date_courante_in = cst_date_courante_in$21, + cst_demandeur_in = cst_demandeur_in$5, + cst_m_nage_in = cst_m_nage_in$5, + _aF_ = [0, "\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement_in", 0], + cst_r_sidence = "r\xc3\xa9sidence", + cst_personnes_g_es_handicap_es = + "personnes_\xc3\xa2g\xc3\xa9es_handicap\xc3\xa9es_foyer_r844_4", + cst_enfant_na_tre_apr_s_quatri = + "enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse", + cst_condition_rattach_foyer_fi = + "condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi", + cst_situation_familiale = "situation_familiale", + cst_nombre_autres_occupants_lo = "nombre_autres_occupants_logement", + cst_personnes_charge = "personnes_\xc3\xa0_charge", + cst_logement = "logement", + cst_prestations_re_ues = "prestations_re\xc3\xa7ues", + _aE_ = [0, "M\xc3\xa9nage", 0], + cst_zone = "zone", + cst_surface_m_carr_s = "surface_m_carr\xc3\xa9s", + cst_logement_decent_l89_462 = "logement_decent_l89_462", + cst_usufruit = "usufruit", + cst_lou_ou_sous_lou_des_tiers = + "lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers", + cst_propri_taire = "propri\xc3\xa9taire", + cst_mode_occupation = "mode_occupation", + cst_est_ehpad_ou_maison_autono = + "est_ehpad_ou_maison_autonomie_l313_12_asf", + cst_r_sidence_principale = "r\xc3\xa9sidence_principale", + _aD_ = [0, "Logement", 0], + cst_condition_2_r823_4 = cst_condition_2_r823_4$0, + cst_coefficents_enfants_garde_$2 = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr$1 = cst_nombre_personnes_charge_pr$2, + cst_ligibilit$3 = cst_ligibilit$4, + cst_date_courante$0 = cst_date_courante$1, + _aC_ = [0, cst_ligibilit_AidesPersonnelle, 0], + cst_Locataire = "Locataire", + cst_R_sidentLogementFoyer = "R\xc3\xa9sidentLogementFoyer", + cst_AccessionPropri_t_LocalUsa = + "AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation", + cst_SousLocataire = "SousLocataire", + cst_LocationAccession = "LocationAccession", + _aB_ = [0, "ModeOccupation", 0], + cst_Location = cst_Location$0, + cst_AccessionPropri_t = "AccessionPropri\xc3\xa9t\xc3\xa9", + cst_LogementFoyer = cst_LogementFoyer$0, + _aA_ = [0, "Cat\xc3\xa9gorieCalculAPL", 0], + cst_Enfant_Charge = cst_Enfant_Charge$0, + cst_AutrePersonne_Charge = cst_AutrePersonne_Charge$0, + _az_ = [0, "Personne\xc3\x80Charge", 0], + cst_changement_logement_d842_4 = "changement_logement_d842_4", + cst_logement_meubl_d842_2$0 = cst_logement_meubl_d842_2$1, + cst_g_es_ou_handicap_adultes_h = + "\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers", + cst_colocation = "colocation", + cst_logement_est_chambre = "logement_est_chambre", + cst_b_n_ficiaire_aide_adulte_o$0 = cst_b_n_ficiaire_aide_adulte_o$4, + cst_loyer_principal = "loyer_principal", + cst_bailleur = "bailleur", + _ay_ = [0, cst_Location$0, 0], + cst_tudes_apprentissage_stage_ = + "\xc3\xa9tudes_apprentissage_stage_formation_pro_impossibilit\xc3\xa9_travail", + cst_situation_garde_altern_e = "situation_garde_altern\xc3\xa9e", + cst_obligation_scolaire$0 = cst_obligation_scolaire$1, + cst_r_muneration_mensuelle$0 = cst_r_muneration_mensuelle$1, + cst_date_de_naissance$0 = cst_date_de_naissance$1, + cst_a_d_j_ouvert_droit_aux_all$0 = cst_a_d_j_ouvert_droit_aux_all$1, + cst_b_n_ficie_titre_personnel_$0 = cst_b_n_ficie_titre_personnel_$1, + cst_nationalit$0 = cst_nationalit$1, + cst_identifiant$0 = cst_identifiant$1, + _ax_ = [0, cst_Enfant_Charge$0, 0], + cst_magistrat_fonctionnaire_ce = + "magistrat_fonctionnaire_centre_int\xc3\xa9r\xc3\xaats_mat\xc3\xa9riels_familiaux_hors_mayotte", + cst_est_non_salari_agricole_l7 = + "est_non_salari\xc3\xa9_agricole_l781_8_l_781_46_code_rural", + cst_personne_h_berg_e_centre_s = + "personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale", + cst_patrimoine = "patrimoine", + cst_nationalit = cst_nationalit$1, + cst_date_naissance$0 = cst_date_naissance$1, + _aw_ = [0, cst_Demandeur$0, 0], + cst_r_gime_outre_mer_l751_1 = cst_r_gime_outre_mer_l751_1$0, + cst_conditions_hors_ge = cst_conditions_hors_ge$0, + cst_droit_ouvert = cst_droit_ouvert$0, + cst_ge_l512_3_2 = cst_ge_l512_3_2$0, + _av_ = [0, cst_ligibilit_PrestationsFamil, 0], + cst_op_rations_logement_voluti = + "op\xc3\xa9rations_logement_\xc3\xa9volutifs_sociaux_accession_propri\xc3\xa9t\xc3\xa9_aid\xc3\xa9e_\xc3\x89tat", + cst_pr_t = "pr\xc3\xaat", + cst_anciennet_logement = "anciennet\xc3\xa9_logement", + cst_situation_r822_11_13_17 = "situation_r822_11_13_17", + cst_copropri_t = "copropri\xc3\xa9t\xc3\xa9", + cst_local_habit_premi_re_fois_ = + "local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire", + cst_type_travaux_logement_r842 = "type_travaux_logement_r842_5", + cst_type_travaux_logement_d832 = "type_travaux_logement_d832_15", + cst_date_entr_e_logement = "date_entr\xc3\xa9e_logement", + cst_charges_mensuelles_pr_t = "charges_mensuelles_pr\xc3\xaat", + cst_mensualit_principale = "mensualit\xc3\xa9_principale", + _au_ = [0, "Propri\xc3\xa9taire", 0], + cst_date_naissance_troisi_me_e = + "date_naissance_troisi\xc3\xa8me_enfant_ou_dernier_si_plus", + cst_nombre_enfants_na_tre_apr_ = + "nombre_enfants_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_troisi\xc3\xa8me_mois_grossesse", + _at_ = [0, "InformationsPrimeDeD\xc3\xa9m\xc3\xa9nagement", 0], + cst_Changement = "Changement", + cst_PasDeChangement = "PasDeChangement", + _as_ = [0, "ChangementLogementD842_4", 0], + cst_Fran_aise = "Fran\xc3\xa7aise", + cst_trang_re = "\xc3\x89trang\xc3\xa8re", + _ar_ = [0, "Nationalit\xc3\xa9", 0], + cst_Non$1 = cst_Non$2, + cst_Oui$0 = cst_Oui$1, + _aq_ = [0, "Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers", 0], + cst_BailleurSocial = "BailleurSocial", + cst_BailleurPriv_AvecConventio = + "BailleurPriv\xc3\xa9AvecConventionnementSocial", + cst_BailleurPriv = "BailleurPriv\xc3\xa9", + _ap_ = [0, "TypeBailleur", 0], + cst_b_n_ficie_titre_personnel_ = cst_b_n_ficie_titre_personnel_$1, + cst_a_d_j_ouvert_droit_aux_all = cst_a_d_j_ouvert_droit_aux_all$1, + cst_prise_en_charge = "prise_en_charge", + cst_date_de_naissance = cst_date_de_naissance$1, + cst_r_muneration_mensuelle = cst_r_muneration_mensuelle$1, + cst_obligation_scolaire = cst_obligation_scolaire$1, + cst_identifiant = cst_identifiant$1, + _ao_ = [0, "EnfantPrestationsFamiliales", 0], + cst_logement_meubl_d842_2 = cst_logement_meubl_d842_2$1, + cst_b_n_ficiaire_aide_adulte_o = cst_b_n_ficiaire_aide_adulte_o$4, + cst_cat_gorie_quivalence_loyer = + "cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16", + cst_redevance = "redevance", + cst_construit_application_loi_ = "construit_application_loi_1957_12_III", + cst_date_conventionnement = "date_conventionnement", + cst_conventionn_selon_r_gles_d = + "conventionn\xc3\xa9_selon_r\xc3\xa8gles_drom", + cst_conventionn_livre_III_titr$1 = cst_conventionn_livre_III_titr$2, + cst_remplit_conditions_r832_21 = "remplit_conditions_r832_21", + cst_type = "type", + _an_ = [0, cst_LogementFoyer$0, 0], + cst_accord_financement_repr_se = + "accord_financement_repr\xc3\xa9sentant_\xc3\x89tat_outre_mer", + cst_titulaire_pr_t = "titulaire_pr\xc3\xaat", + cst_date_signature = "date_signature", + cst_type_pr_t = "type_pr\xc3\xaat", + _am_ = [0, "Pr\xc3\xaat", 0], + cst_coefficents_enfants_garde_$1 = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr$0 = cst_nombre_personnes_charge_pr$2, + cst_ligibilit$2 = cst_ligibilit$4, + _al_ = [0, cst_ligibilit_AllocationLogeme, 0], + cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", + cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", + _ak_ = [0, "DateNaissanceTroisi\xc3\xa8meOuDernierPlusEnfant", 0], + cst_titulaire_allocation_perso = + "titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e", + cst_b_n_ficiaire_l161_19_l351_ = + "b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu", + cst_incapacit_80_pourcent_ou_r = + "incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi", + cst_parent = "parent\xc3\xa9", + cst_ascendant_descendant_colla = + "ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9", + cst_ressources$0 = cst_ressources$1, + cst_date_naissance = cst_date_naissance$1, + _aj_ = [0, cst_AutrePersonne_Charge$0, 0], + cst_taux$0 = cst_taux$1, + cst_bas$0 = cst_bas$1, + cst_haut$0 = cst_haut$1, + _ai_ = [0, "TrancheRevenuD\xc3\xa9cimal", 0], + cst_taux = cst_taux$1, + cst_bas = cst_bas$1, + cst_haut = cst_haut$1, + _ah_ = [0, "TrancheRevenu", 0], + cst_Neuf = "Neuf", + cst_Ancien = "Ancien", + _ag_ = [0, "NeufOuAncien", 0], + cst_brut_horaire = cst_brut_horaire$0, + _af_ = [0, cst_Smic, 0], + cst_est_sup_rieur = cst_est_sup_rieur$0, + _ae_ = [0, cst_V_rification_geSup_rieur, 0], + cst_est_inf_rieur_ou_gal = cst_est_inf_rieur_ou_gal$0, + _ad_ = [0, cst_V_rification_geInf_rieurOu, 0], + cst_montant$1 = cst_montant$2, + _ac_ = [0, cst_BaseMensuelleAllocationsFa, 0], + cst_aide_finale = cst_aide_finale$0, + cst_ligibilit$1 = cst_ligibilit$4, + _ab_ = [0, cst_CalculetteAidesAuLogementG, 0], + cst_coefficents_enfants_garde_$0 = cst_coefficents_enfants_garde_$3, + cst_traitement_aide_finale$8 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$8 = cst_aide_finale_formule$9, + cst_ligibilit$0 = cst_ligibilit$4, + _aa_ = [0, cst_CalculetteAidesAuLogement, 0], + cst_montant_impay = cst_montant_impay$0, + _$_ = [0, cst_Impay_D_penseLogement, 0], + cst_ge_ouverture_droit = cst_ge_ouverture_droit$0, + ___ = [0, cst_OuvertureDroitsRetraite, 0], + cst_traitement_aide_finale$7 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$7 = cst_aide_finale_formule$9, + _Z_ = [0, cst_CalculAllocationLogement, 0], + cst_traitement_aide_finale$6 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$6 = cst_aide_finale_formule$9, + cst_loyer_minimal = cst_loyer_minimal$0, + cst_montant_forfaitaire_charge$0 = cst_montant_forfaitaire_charge$1, + cst_quivalence_loyer = cst_quivalence_loyer$0, + cst_coefficient_prise_en_charg$2 = cst_coefficient_prise_en_charg$3, + _Y_ = [0, cst_CalculAllocationLogementFo, 0], + cst_traitement_aide_finale$5 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$5 = cst_aide_finale_formule$9, + cst_coefficient_prise_en_charg$1 = cst_coefficient_prise_en_charg$3, + cst_mensualit_minimale$0 = cst_mensualit_minimale$1, + cst_mensualit_ligible$0 = cst_mensualit_ligible$1, + _X_ = [0, cst_CalculAllocationLogementAc, 0], + cst_traitement_aide_finale$4 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$4 = cst_aide_finale_formule$9, + _W_ = [0, cst_CalculAllocationLogementLo, 0], + cst_ancienne_allocation_logeme = "ancienne_allocation_logement", + cst_ancien_loyer_principal = "ancien_loyer_principal", + _V_ = [0, "InfosChangementLogementD842_4", 0], + cst_traitement_aide_finale$3 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$3 = cst_aide_finale_formule$9, + _U_ = [0, cst_CalculAidePersonnalis_eLog, 0], + cst_traitement_aide_finale$2 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$2 = cst_aide_finale_formule$9, + _T_ = [0, "Traitement_formule_aide_finale", 0], + cst_traitement_aide_finale$1 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$1 = cst_aide_finale_formule$9, + cst_coefficient_prise_en_charg$0 = "coefficient_prise_en_charge_d832_10", + cst_mensualit_minimale = cst_mensualit_minimale$1, + cst_mensualit_ligible = cst_mensualit_ligible$1, + _S_ = [0, cst_CalculAidePersonnalis_eLog$1, 0], + cst_n_nombre_parts_d832_11 = cst_n_nombre_parts_d832_11$0, + _R_ = [0, cst_CalculNombrePartsAccession, 0], + cst_traitement_aide_finale$0 = cst_traitement_aide_finale$9, + cst_aide_finale_formule$0 = cst_aide_finale_formule$9, + cst_coefficient_prise_en_charg = "coefficient_prise_en_charge_d832_25", + cst_quivalence_loyer_minimale = cst_quivalence_loyer_minimale$0, + cst_plafond_quivalence_loyer_l = cst_plafond_quivalence_loyer_l$0, + cst_quivalence_loyer_ligible = cst_quivalence_loyer_ligible$0, + cst_n_nombre_parts_d832_25$0 = cst_n_nombre_parts_d832_25$1, + cst_coefficient_r_d832_25 = cst_coefficient_r_d832_25$0, + cst_coefficient_multiplicateur = cst_coefficient_multiplicateur$0, + _Q_ = [0, cst_CalculAidePersonnalis_eLog$0, 0], + cst_n_nombre_parts_d832_25 = cst_n_nombre_parts_d832_25$1, + _P_ = [0, cst_CalculNombrePartLogementFo, 0], + cst_montant$0 = cst_montant$2, + _O_ = [0, cst_Calcul_quivalenceLoyerMini, 0], + cst_traitement_aide_finale = cst_traitement_aide_finale$9, + cst_aide_finale_formule = cst_aide_finale_formule$9, + cst_participation_personnelle = cst_participation_personnelle$0, + cst_taux_composition_familiale = cst_taux_composition_familiale$0, + cst_participation_minimale = cst_participation_minimale$0, + cst_plafond_loyer_d823_16_2 = cst_plafond_loyer_d823_16_2$0, + cst_montant_forfaitaire_charge = cst_montant_forfaitaire_charge$2, + _N_ = [0, cst_CalculAidePersonnalis_eLog$2, 0], + cst_montant = cst_montant$2, + _M_ = [0, cst_ContributionsSocialesAides, 0], + cst_ressources_prises_en_compt = cst_ressources_prises_en_compt$0, + _L_ = [0, cst_RessourcesAidesPersonnelle, 0], + cst_montant_prime_d_m_nagement = cst_montant_prime_d_m_nagement$0, + _K_ = [0, cst_ligibilit_PrimeDeD_m_nagem, 0], + cst_coefficents_enfants_garde_ = cst_coefficents_enfants_garde_$3, + cst_nombre_personnes_charge_pr = cst_nombre_personnes_charge_pr$2, + cst_ligibilit = cst_ligibilit$4, + cst_date_courante = cst_date_courante$1, + _J_ = [0, cst_ligibilit_AidePersonnalis_, 0], + cst_ressources = cst_ressources$1, + cst_dur_e_r_sidence_durant_p_r = + "dur\xc3\xa9e_r\xc3\xa9sidence_durant_p\xc3\xa9riode_r_822_3_1_sup\xc3\xa9rieure_\xc3\xa0_6_mois", + _I_ = [0, "PersonneVivantHabituellementAuFoyer", 0], + cst_satisfait_art_4_ordonnance = "satisfait_art_4_ordonnance_2002_mayotte", + cst_satisfait_conditions_l512_ = + "satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale", + _H_ = [0, "Conditions\xc3\x89trangers", 0], + cst_ne_produisant_pas_revenu_p = + "ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4", + cst_produisant_revenu_p_riode_ = + "produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4", + _G_ = [0, "Patrimoine", 0], + cst_conforme_article_l442_1 = "conforme_article_l442_1", + cst_date_naissance_personne_so = "date_naissance_personne_sous_location", + _F_ = [0, "PersonneSousLocation", 0], + cst_conventionn_livre_III_titr$0 = + "conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3", + _E_ = [0, "ConventionANHA", 0], + cst_r_duction_loyer_solidarit_ = + "r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue", + cst_conventionn_livre_III_titr = cst_conventionn_livre_III_titr$2, + _D_ = [0, "ConventionBailleurSocial", 0], + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_AllocationsFamiliales$0 = cst_AllocationsFamiliales$1, + cst_Compl_mentFamilial$0 = cst_Compl_mentFamilial$1, + cst_AllocationLogement = "AllocationLogement", + cst_Allocation_ducationEnfantH = + "Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9", + cst_AllocationSoutienFamilial$0 = cst_AllocationSoutienFamilial$1, + cst_AllocationRentr_eScolaire = "AllocationRentr\xc3\xa9eScolaire", + cst_AllocationJournali_rePrese = + "AllocationJournali\xc3\xa8rePresenceParentale", + _C_ = [0, "\xc3\x89l\xc3\xa9mentPrestationsFamiliales", 0], + cst_Avant = "Avant", + cst_Pendant = "Pendant", + cst_Apr_s = "Apr\xc3\xa8s", + _B_ = [0, "SituationObligationScolaire", 0], + cst_GardeAltern_ePartageAlloca = "GardeAltern\xc3\xa9ePartageAllocations", + cst_GardeAltern_eAllocataireUn = "GardeAltern\xc3\xa9eAllocataireUnique", + cst_EffectiveEtPermanente$0 = cst_EffectiveEtPermanente$1, + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux", + _A_ = [0, "PriseEnChargeEnfant", 0], + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_Martinique = "Martinique", + cst_LaR_union = "LaR\xc3\xa9union", + cst_SaintBarth_lemy = "SaintBarth\xc3\xa9lemy", + cst_SaintMartin = "SaintMartin", + cst_M_tropole = "M\xc3\xa9tropole", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_Mayotte = "Mayotte", + _z_ = [0, "Collectivit\xc3\xa9", 0], + cst_PersonneSeule = "PersonneSeule", + cst_Couple = "Couple", + _y_ = [0, "SituationFamilialeCalculAPL", 0], + cst_tudiantLog_EnChambreCROUS = "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS", + cst_tudiantLog_EnChambreCROUSR = + "\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e", + cst_Personnes_g_esSelon3DeD842 = + "Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16", + cst_AutresPersonnes = "AutresPersonnes", + _x_ = + [0, "Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer", 0], + cst_LogementPersonnes_g_esOuHa = + "LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es", + cst_R_sidenceSociale = "R\xc3\xa9sidenceSociale", + cst_FoyerJeunesTrvailleursOuMi = + "FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995", + cst_Autre$1 = cst_Autre$2, + _w_ = [0, "TypeLogementFoyer", 0], + cst_EffectiveEtPermanente = cst_EffectiveEtPermanente$1, + cst_R_sidenceAltern_eAllocatai = + "R\xc3\xa9sidenceAltern\xc3\xa9eAllocataireUnique", + cst_R_sidenceAltern_eAllocatio = + "R\xc3\xa9sidenceAltern\xc3\xa9eAllocationsPartag\xc3\xa9e", + _v_ = [0, "PriseEnCharge", 0], + cst_C_libataire = "C\xc3\xa9libataire", + cst_Mari_s = "Mari\xc3\xa9s", + cst_Pacs_s = "Pacs\xc3\xa9s", + cst_Concubins = "Concubins", + cst_C_libataireS_par_DeFait = + "C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait", + cst_ConcubinageDontS_par_DeFai = + "ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait", + _u_ = [0, "SituationFamiliale", 0], + cst_AidePersonnalis_eLogement = "AidePersonnalis\xc3\xa9eLogement", + cst_AllocationLogementFamilial$0 = cst_AllocationLogementFamilial$1, + cst_AllocationLogementSociale$0 = cst_AllocationLogementSociale$1, + _t_ = [0, "TypeAidesPersonnelleLogement", 0], + cst_Accord = "Accord", + cst_PasdAccord = "PasdAccord", + _s_ = [0, "AccordFinancementRepr\xc3\xa9sentant\xc3\x89tatOutreMer", 0], + cst_Pas_ligible = "Pas\xc3\x89ligible", + cst_AllocationLogementFamilial = cst_AllocationLogementFamilial$1, + cst_AllocationLogementSociale = cst_AllocationLogementSociale$1, + _r_ = [0, "Type\xc3\x89ligibilit\xc3\xa9AllocationLogement", 0], + cst_Impay_Loyer = "Impay\xc3\xa9Loyer", + cst_Impay_Pr_t = "Impay\xc3\xa9Pr\xc3\xaat", + _q_ = [0, "ModeOccupationImpay\xc3\xa9", 0], + cst_TotalAnnuel_ch_ances = "TotalAnnuel\xc3\x89ch\xc3\xa9ances", + cst_Mensualit = "Mensualit\xc3\xa9", + cst_Loyer = "Loyer", + _p_ = [0, "D\xc3\xa9penseLogement", 0], + cst_Bailleur = "Bailleur", + cst_B_n_ficiaire = "B\xc3\xa9n\xc3\xa9ficiaire", + cst_tablissementHabilit = "\xc3\x89tablissementHabilit\xc3\xa9", + _o_ = [0, "Versement\xc3\x80", 0], + cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", + cst_Non$0 = cst_Non$2, + _n_ = [0, "PaiementLogementDistinctProfessionnel", 0], + cst_Zone1 = "Zone1", + cst_Zone2 = "Zone2", + cst_Zone3 = "Zone3", + _m_ = [0, "ZoneDHabitation", 0], + cst_DateDeNaissance = "DateDeNaissance", + cst_AvantPremierJourMoisCivilT = + "AvantPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", + cst_Apr_sPremierJourMoisCivilT = + "Apr\xc3\xa8sPremierJourMoisCivilTroisi\xc3\xa8meMoisDeGrossesse", + _l_ = [0, "DateDeNaissanceOuMoisDeGrossesse", 0], + cst_Ascendant = "Ascendant", + cst_Descendant = "Descendant", + cst_Collat_ralDeuxi_meTroisi_m = + "Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9", + _k_ = [0, "Parent\xc3\xa9", 0], + cst_PasDeGardeAltern_e = "PasDeGardeAltern\xc3\xa9e", + cst_GardeAltern_eCoefficientPr = + "GardeAltern\xc3\xa9eCoefficientPriseEnCharge", + _j_ = [0, "SituationGardeAltern\xc3\xa9e", 0], + cst_DemandeurOuConjointOuParen = + "DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s", + cst_Autre$0 = cst_Autre$2, + _i_ = [0, "ParentOuAutre", 0], + cst_AllocationsFamiliales = cst_AllocationsFamiliales$1, + cst_Compl_mentFamilial = cst_Compl_mentFamilial$1, + cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", + cst_AllocationSoutienFamilial = cst_AllocationSoutienFamilial$1, + cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicap\xc3\xa9", + cst_AllocationAdulteHandicap = "AllocationAdulteHandicap\xc3\xa9", + _h_ = [0, "PrestationRe\xc3\xa7ue", 0], + cst_Revenu$0 = cst_Revenu$1, + cst_Infini$0 = cst_Infini$1, + _g_ = [0, "LimiteTrancheD\xc3\xa9cimal", 0], + cst_Revenu = cst_Revenu$1, + cst_Infini = cst_Infini$1, + _f_ = [0, "LimiteTranche", 0], + cst_Oui = cst_Oui$1, + cst_Non = cst_Non$2, + _e_ = [0, "Am\xc3\xa9lior\xc3\xa9ParOccupant", 0], + cst_ObjectifD_cenceLogement = "ObjectifD\xc3\xa9cenceLogement", + cst_Pr_vuDansListeR321_15 = "Pr\xc3\xa9vuDansListeR321_15", + cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", + cst_PasDeTravaux$0 = cst_PasDeTravaux$1, + _d_ = [0, "TypeTravauxLogementR842_5", 0], + cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", + cst_TravauxSurLogementD_j_Acqu = + "TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2", + cst_PasDeTravaux = cst_PasDeTravaux$1, + _c_ = [0, "TypeTravauxLogementD832_15", 0], + cst_Demandeur = cst_Demandeur$0, + cst_VendeurQuandDemandeurACont = + "VendeurQuandDemandeurAContratLocationAccession", + _b_ = [0, "TitulairePr\xc3\xaat", 0], + cst_D331_32 = "D331_32", + cst_D331_63_64 = "D331_63_64", + cst_D331_59_8 = "D331_59_8", + cst_D331_76_1 = "D331_76_1", + cst_Autre = cst_Autre$2, + _a_ = [0, "TypePr\xc3\xaat", 0]; + function embed_type_pret(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cih_ = [0, cst_D331_32, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _cih_ = + [0, cst_D331_63_64, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _cih_ = [0, cst_D331_59_8, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _cih_ = [0, cst_D331_76_1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _cih_ = [0, cst_Autre, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _a_, _cih_]; + } + var TitulairePret = [0]; + function embed_titulaire_pret(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cig_ = [0, cst_Demandeur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cig_ = + [0, + cst_VendeurQuandDemandeurACont, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _b_, _cig_]; + } + var TypeTravauxLogementD83215 = [0]; + function embed_type_travaux_logement_d8(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cif_ = + [0, + cst_TravauxPourAcquisitionD832, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _cif_ = + [0, + cst_TravauxSurLogementD_j_Acqu, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _cif_ = + [0, cst_PasDeTravaux, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _c_, _cif_]; + } + var TypeTravauxLogementR8425 = [0]; + function embed_type_travaux_logement_r8(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cie_ = + [0, + cst_ObjectifD_cenceLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _cie_ = + [0, + cst_Pr_vuDansListeR321_15, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _cie_ = + [0, + cst_AgrandirOuRendreHabitableD, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _cie_ = + [0, cst_PasDeTravaux$0, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _d_, _cie_]; + } + var AmelioreParOccupant = [0]; + function embed_ameliore_par_occupant(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cid_ = [0, cst_Oui, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cid_ = [0, cst_Non, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _e_, _cid_]; + } + var LimiteTranche = [0]; + function embed_limite_tranche(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cic_ = [0, cst_Revenu, caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + else + var + x$1 = x[1], + _cic_ = [0, cst_Infini, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _f_, _cic_]; + } + var LimiteTrancheDecimal = [0]; + function embed_limite_tranche_decimal(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cib_ = [0, cst_Revenu$0, caml_call1(Runtime_ocaml_Runtime[15], x$0)]; + else + var + x$1 = x[1], + _cib_ = [0, cst_Infini$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _g_, _cib_]; + } + var PrestationRecue = [0]; + function embed_prestation_recue(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cia_ = + [0, + cst_AllocationsFamiliales, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _cia_ = + [0, + cst_Compl_mentFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _cia_ = + [0, + cst_AllocationJeuneEnfant, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _cia_ = + [0, + cst_AllocationSoutienFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _cia_ = + [0, + cst_AllocationSoutienEnfantHan, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + default: + var + x$5 = x[1], + _cia_ = + [0, + cst_AllocationAdulteHandicap, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + } + return [6, _h_, _cia_]; + } + var ParentOuAutre = [0]; + function embed_parent_ou_autre(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch$_ = + [0, + cst_DemandeurOuConjointOuParen, + caml_call1(Runtime_ocaml_Runtime[15], x$0)]; + else + var + x$1 = x[1], + _ch$_ = [0, cst_Autre$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _i_, _ch$_]; + } + var SituationGardeAlternee = [0]; + function embed_situation_garde_alternee(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch__ = + [0, + cst_PasDeGardeAltern_e, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ch__ = + [0, + cst_GardeAltern_eCoefficientPr, + caml_call1(Runtime_ocaml_Runtime[15], x$1)]; + return [6, _j_, _ch__]; + } + var Parente = [0]; + function embed_parente(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch9_ = [0, cst_Ascendant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch9_ = + [0, cst_Descendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch9_ = + [0, + cst_Collat_ralDeuxi_meTroisi_m, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _k_, _ch9_]; + } + var DateDeNaissanceOuMoisDeGrosses = [0]; + function embed_date_de_naissance_ou_moi(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch8_ = + [0, cst_DateDeNaissance, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch8_ = + [0, + cst_AvantPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch8_ = + [0, + cst_Apr_sPremierJourMoisCivilT, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _l_, _ch8_]; + } + var ZoneDHabitation = [0]; + function embed_zone_d_habitation(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch7_ = [0, cst_Zone1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch7_ = [0, cst_Zone2, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch7_ = [0, cst_Zone3, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _m_, _ch7_]; + } + var PaiementLogementDistinctProfes = [0]; + function embed_paiement_logement_distin(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch6_ = + [0, + cst_OuiAvecLoyerOuCharges, + caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + else + var + x$1 = x[1], + _ch6_ = [0, cst_Non$0, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _n_, _ch6_]; + } + var VersementA = [0]; + function embed_versement_a(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch5_ = [0, cst_Bailleur, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch5_ = + [0, cst_B_n_ficiaire, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch5_ = + [0, + cst_tablissementHabilit, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _o_, _ch5_]; + } + var DepenseLogement = [0]; + function embed_depense_logement(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch4_ = + [0, + cst_TotalAnnuel_ch_ances, + caml_call1(Runtime_ocaml_Runtime[13], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch4_ = [0, cst_Mensualit, caml_call1(Runtime_ocaml_Runtime[13], x$1)]; + break; + default: + var + x$2 = x[1], + _ch4_ = [0, cst_Loyer, caml_call1(Runtime_ocaml_Runtime[13], x$2)]; + } + return [6, _p_, _ch4_]; + } + var ModeOccupationImpaye = [0]; + function embed_mode_occupation_impaye(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch3_ = [0, cst_Impay_Loyer, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _ch3_ = [0, cst_Impay_Pr_t, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _q_, _ch3_]; + } + var TypeEligibiliteAllocationLogem = [0]; + function embed_type_eligibilite_allocat(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch2_ = + [0, cst_Pas_ligible, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch2_ = + [0, + cst_AllocationLogementFamilial, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch2_ = + [0, + cst_AllocationLogementSociale, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _r_, _ch2_]; + } + var AccordFinancementRepresentantE = [0]; + function embed_accord_financement_repre(x){ + if(0 === x[0]) + var + x$0 = x[1], + _ch1_ = [0, cst_Accord, caml_call1(Runtime_ocaml_Runtime[16], x$0)]; + else + var + x$1 = x[1], + _ch1_ = [0, cst_PasdAccord, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _s_, _ch1_]; + } + var TypeAidesPersonnelleLogement = [0]; + function embed_type_aides_personnelle_l(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _ch0_ = + [0, + cst_AidePersonnalis_eLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _ch0_ = + [0, + cst_AllocationLogementFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _ch0_ = + [0, + cst_AllocationLogementSociale$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _t_, _ch0_]; + } + var SituationFamiliale = [0]; + function embed_situation_familiale(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chZ_ = + [0, cst_C_libataire, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chZ_ = [0, cst_Mari_s, caml_call1(Runtime_ocaml_Runtime[16], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chZ_ = [0, cst_Pacs_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _chZ_ = [0, cst_Concubins, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _chZ_ = + [0, + cst_C_libataireS_par_DeFait, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + default: + var + x$5 = x[1], + _chZ_ = + [0, + cst_ConcubinageDontS_par_DeFai, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + } + return [6, _u_, _chZ_]; + } + var PriseEnCharge = [0]; + function embed_prise_en_charge(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chY_ = + [0, + cst_EffectiveEtPermanente, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chY_ = + [0, + cst_R_sidenceAltern_eAllocatai, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _chY_ = + [0, + cst_R_sidenceAltern_eAllocatio, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _v_, _chY_]; + } + var TypeLogementFoyer = [0]; + function embed_type_logement_foyer(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chX_ = + [0, + cst_LogementPersonnes_g_esOuHa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chX_ = + [0, + cst_R_sidenceSociale, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chX_ = + [0, + cst_FoyerJeunesTrvailleursOuMi, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _chX_ = [0, cst_Autre$1, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _w_, _chX_]; + } + var CategorieEquivalenceLoyerAlloc = [0]; + function embed_categorie_equivalence_lo(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chW_ = + [0, + cst_tudiantLog_EnChambreCROUS, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chW_ = + [0, + cst_tudiantLog_EnChambreCROUSR, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chW_ = + [0, + cst_Personnes_g_esSelon3DeD842, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + default: + var + x$3 = x[1], + _chW_ = + [0, cst_AutresPersonnes, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + } + return [6, _x_, _chW_]; + } + var SituationFamilialeCalculAPL = [0]; + function embed_situation_familiale_calc(x){ + if(0 === x[0]) + var + x$0 = x[1], + _chV_ = + [0, cst_PersonneSeule, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _chV_ = [0, cst_Couple, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _y_, _chV_]; + } + var Collectivite = [0]; + function embed_collectivite(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chU_ = + [0, cst_Guadeloupe, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chU_ = [0, cst_Guyane, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chU_ = + [0, cst_Martinique, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _chU_ = [0, cst_LaR_union, caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _chU_ = + [0, cst_SaintBarth_lemy, caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _chU_ = + [0, cst_SaintMartin, caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _chU_ = [0, cst_M_tropole, caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + case 7: + var + x$7 = x[1], + _chU_ = + [0, + cst_SaintPierreEtMiquelon, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + break; + default: + var + x$8 = x[1], + _chU_ = [0, cst_Mayotte, caml_call1(Runtime_ocaml_Runtime[11], x$8)]; + } + return [6, _z_, _chU_]; + } + var PriseEnChargeEnfant = [0]; + function embed_prise_en_charge_enfant(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chT_ = + [0, + cst_GardeAltern_ePartageAlloca, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chT_ = + [0, + cst_GardeAltern_eAllocataireUn, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chT_ = + [0, + cst_EffectiveEtPermanente$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _chT_ = + [0, + cst_ServicesSociauxAllocationV, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + default: + var + x$4 = x[1], + _chT_ = + [0, + cst_ServicesSociauxAllocationV$0, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + } + return [6, _A_, _chT_]; + } + var SituationObligationScolaire = [0]; + function embed_situation_obligation_sco(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chS_ = [0, cst_Avant, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chS_ = [0, cst_Pendant, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + default: + var + x$2 = x[1], + _chS_ = [0, cst_Apr_s, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _B_, _chS_]; + } + var ElementPrestationsFamiliales = [0]; + function embed_element_prestations_fami(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _chR_ = + [0, + cst_PrestationAccueilJeuneEnfa, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + break; + case 1: + var + x$1 = x[1], + _chR_ = + [0, + cst_AllocationsFamiliales$0, + caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + break; + case 2: + var + x$2 = x[1], + _chR_ = + [0, + cst_Compl_mentFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + break; + case 3: + var + x$3 = x[1], + _chR_ = + [0, + cst_AllocationLogement, + caml_call1(Runtime_ocaml_Runtime[11], x$3)]; + break; + case 4: + var + x$4 = x[1], + _chR_ = + [0, + cst_Allocation_ducationEnfantH, + caml_call1(Runtime_ocaml_Runtime[11], x$4)]; + break; + case 5: + var + x$5 = x[1], + _chR_ = + [0, + cst_AllocationSoutienFamilial$0, + caml_call1(Runtime_ocaml_Runtime[11], x$5)]; + break; + case 6: + var + x$6 = x[1], + _chR_ = + [0, + cst_AllocationRentr_eScolaire, + caml_call1(Runtime_ocaml_Runtime[11], x$6)]; + break; + default: + var + x$7 = x[1], + _chR_ = + [0, + cst_AllocationJournali_rePrese, + caml_call1(Runtime_ocaml_Runtime[11], x$7)]; + } + return [6, _C_, _chR_]; + } + var ConventionBailleurSocial = [0]; + function embed_convention_bailleur_soci(x){ + var + _chQ_ = + [0, + [0, + cst_r_duction_loyer_solidarit_, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _D_, + [0, + [0, + cst_conventionn_livre_III_titr, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _chQ_]]; + } + var ConventionANHA = [0]; + function embed_convention_a_n_h_a(x){ + return [7, + _E_, + [0, + [0, + cst_conventionn_livre_III_titr$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var PersonneSousLocation = [0]; + function embed_personne_sous_location(x){ + var + _chP_ = + [0, + [0, + cst_conforme_article_l442_1, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + 0]; + return [7, + _F_, + [0, + [0, + cst_date_naissance_personne_so, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _chP_]]; + } + var Patrimoine = [0]; + function embed_patrimoine(x){ + var + _chO_ = + [0, + [0, + cst_ne_produisant_pas_revenu_p, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _G_, + [0, + [0, + cst_produisant_revenu_p_riode_, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chO_]]; + } + var ConditionsEtrangers = [0]; + function embed_conditions_etrangers(x){ + var + _chN_ = + [0, + [0, + cst_satisfait_art_4_ordonnance, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + 0]; + return [7, + _H_, + [0, + [0, + cst_satisfait_conditions_l512_, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _chN_]]; + } + var PersonneVivantHabituellementAu = [0]; + function embed_personne_vivant_habituel(x){ + var + _chM_ = + [0, + [0, cst_ressources, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _I_, + [0, + [0, + cst_dur_e_r_sidence_durant_p_r, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _chM_]]; + } + var EligibiliteAidePersonnaliseeLo = [0]; + function embed_eligibilite_aide_personn(x){ + var + _chJ_ = + [0, + [0, + cst_coefficents_enfants_garde_, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + 0], + _chK_ = + [0, + [0, + cst_nombre_personnes_charge_pr, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _chJ_], + _chL_ = + [0, + [0, cst_ligibilit, caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _chK_]; + return [7, + _J_, + [0, + [0, + cst_date_courante, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _chL_]]; + } + var EligibilitePrimeDeDemenagement = [0]; + function embed_eligibilite_prime_de_dem(x){ + return [7, + _K_, + [0, + [0, + cst_montant_prime_d_m_nagement, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var RessourcesAidesPersonnelleLoge = [0]; + function embed_ressources_aides_personn(x){ + return [7, + _L_, + [0, + [0, + cst_ressources_prises_en_compt, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var ContributionsSocialesAidesPers = [0]; + function embed_contributions_sociales_a(x){ + return [7, + _M_, + [0, + [0, cst_montant, caml_call1(Runtime_ocaml_Runtime[10], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen = [0]; + function embed_calcul_aide_personnalise(x){ + var + _chD_ = + [0, + [0, + cst_traitement_aide_finale, + caml_call1(Runtime_ocaml_Runtime[10], x[7])], + 0], + _chE_ = + [0, + [0, + cst_aide_finale_formule, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _chD_], + _chF_ = + [0, + [0, + cst_participation_personnelle, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _chE_], + _chG_ = + [0, + [0, + cst_taux_composition_familiale, + caml_call1(Runtime_ocaml_Runtime[15], x[4])], + _chF_], + _chH_ = + [0, + [0, + cst_participation_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _chG_], + _chI_ = + [0, + [0, + cst_plafond_loyer_d823_16_2, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chH_]; + return [7, + _N_, + [0, + [0, + cst_montant_forfaitaire_charge, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chI_]]; + } + var CalculEquivalenceLoyerMinimale = [0]; + function embed_calcul_equivalence_loyer(x){ + return [7, + _O_, + [0, + [0, cst_montant$0, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var CalculNombrePartLogementFoyer = [0]; + function embed_calcul_nombre_part_logem(x){ + return [7, + _P_, + [0, + [0, + cst_n_nombre_parts_d832_25, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$0 = [0]; + function embed_calcul_aide_personnalise$0(x){ + var + _chv_ = + [0, + [0, + cst_traitement_aide_finale$0, + caml_call1(Runtime_ocaml_Runtime[10], x[9])], + 0], + _chw_ = + [0, + [0, + cst_aide_finale_formule$0, + caml_call1(Runtime_ocaml_Runtime[13], x[8])], + _chv_], + _chx_ = + [0, + [0, + cst_coefficient_prise_en_charg, + caml_call1(Runtime_ocaml_Runtime[15], x[7])], + _chw_], + _chy_ = + [0, + [0, + cst_quivalence_loyer_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _chx_], + _chz_ = + [0, + [0, + cst_plafond_quivalence_loyer_l, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _chy_], + _chA_ = + [0, + [0, + cst_quivalence_loyer_ligible, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _chz_], + _chB_ = + [0, + [0, + cst_n_nombre_parts_d832_25$0, + caml_call1(Runtime_ocaml_Runtime[15], x[3])], + _chA_], + _chC_ = + [0, + [0, + cst_coefficient_r_d832_25, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chB_]; + return [7, + _Q_, + [0, + [0, + cst_coefficient_multiplicateur, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chC_]]; + } + var CalculNombrePartsAccessionProp = [0]; + function embed_calcul_nombre_parts_acce(x){ + return [7, + _R_, + [0, + [0, + cst_n_nombre_parts_d832_11, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$1 = [0]; + function embed_calcul_aide_personnalise$1(x){ + var + _chr_ = + [0, + [0, + cst_traitement_aide_finale$1, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _chs_ = + [0, + [0, + cst_aide_finale_formule$1, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _chr_], + _cht_ = + [0, + [0, + cst_coefficient_prise_en_charg$0, + caml_call1(Runtime_ocaml_Runtime[15], x[3])], + _chs_], + _chu_ = + [0, + [0, + cst_mensualit_minimale, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cht_]; + return [7, + _S_, + [0, + [0, + cst_mensualit_ligible, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chu_]]; + } + var TraitementFormuleAideFinale = [0]; + function embed_traitement_formule_aide_(x){ + var + _chq_ = + [0, + [0, + cst_traitement_aide_finale$2, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _T_, + [0, + [0, + cst_aide_finale_formule$2, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chq_]]; + } + var CalculAidePersonnaliseeLogemen$2 = [0]; + function embed_calcul_aide_personnalise$2(x){ + var + _chp_ = + [0, + [0, + cst_traitement_aide_finale$3, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _U_, + [0, + [0, + cst_aide_finale_formule$3, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chp_]]; + } + var InfosChangementLogementD8424 = [0]; + function embed_infos_changement_logemen(x){ + var + _cho_ = + [0, + [0, + cst_ancienne_allocation_logeme, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _V_, + [0, + [0, + cst_ancien_loyer_principal, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cho_]]; + } + var CalculAllocationLogementLocati = [0]; + function embed_calcul_allocation_logeme(x){ + var + _chn_ = + [0, + [0, + cst_traitement_aide_finale$4, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _W_, + [0, + [0, + cst_aide_finale_formule$4, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chn_]]; + } + var CalculAllocationLogementAccess = [0]; + function embed_calcul_allocation_logeme$0(x){ + var + _chj_ = + [0, + [0, + cst_traitement_aide_finale$5, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _chk_ = + [0, + [0, + cst_aide_finale_formule$5, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _chj_], + _chl_ = + [0, + [0, + cst_coefficient_prise_en_charg$1, + caml_call1(Runtime_ocaml_Runtime[15], x[3])], + _chk_], + _chm_ = + [0, + [0, + cst_mensualit_minimale$0, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chl_]; + return [7, + _X_, + [0, + [0, + cst_mensualit_ligible$0, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chm_]]; + } + var CalculAllocationLogementFoyer = [0]; + function embed_calcul_allocation_logeme$1(x){ + var + _che_ = + [0, + [0, + cst_traitement_aide_finale$6, + caml_call1(Runtime_ocaml_Runtime[10], x[6])], + 0], + _chf_ = + [0, + [0, + cst_aide_finale_formule$6, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _che_], + _chg_ = + [0, + [0, cst_loyer_minimal, caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _chf_], + _chh_ = + [0, + [0, + cst_montant_forfaitaire_charge$0, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _chg_], + _chi_ = + [0, + [0, cst_quivalence_loyer, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chh_]; + return [7, + _Y_, + [0, + [0, + cst_coefficient_prise_en_charg$2, + caml_call1(Runtime_ocaml_Runtime[15], x[1])], + _chi_]]; + } + var CalculAllocationLogement = [0]; + function embed_calcul_allocation_logeme$2(x){ + var + _chd_ = + [0, + [0, + cst_traitement_aide_finale$7, + caml_call1(Runtime_ocaml_Runtime[10], x[2])], + 0]; + return [7, + _Z_, + [0, + [0, + cst_aide_finale_formule$7, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _chd_]]; + } + var OuvertureDroitsRetraite = [0]; + function embed_ouverture_droits_retrait(x){ + return [7, + ___, + [0, + [0, + cst_ge_ouverture_droit, + caml_call1(Runtime_ocaml_Runtime[17], x[1])], + 0]]; + } + var ImpayeDepenseLogement = [0]; + function embed_impaye_depense_logement(x){ + return [7, + _$_, + [0, + [0, + cst_montant_impay, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var CalculetteAidesAuLogement = [0]; + function embed_calculette_aides_au_loge(x){ + var + _cha_ = + [0, + [0, + cst_coefficents_enfants_garde_$0, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + 0], + _chb_ = + [0, + [0, + cst_traitement_aide_finale$8, + caml_call1(Runtime_ocaml_Runtime[10], x[3])], + _cha_], + _chc_ = + [0, + [0, + cst_aide_finale_formule$8, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _chb_]; + return [7, + _aa_, + [0, + [0, cst_ligibilit$0, caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _chc_]]; + } + var CalculetteAidesAuLogementGarde = [0]; + function embed_calculette_aides_au_loge$0(x){ + var + _cg$_ = + [0, + [0, cst_aide_finale, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + 0]; + return [7, + _ab_, + [0, + [0, cst_ligibilit$1, caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _cg$_]]; + } + var BaseMensuelleAllocationsFamili = [0]; + function embed_base_mensuelle_allocatio(x){ + return [7, + _ac_, + [0, + [0, cst_montant$1, caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal = [0]; + function embed_verification_age_inferie(x){ + return [7, + _ad_, + [0, + [0, + cst_est_inf_rieur_ou_gal, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var VerificationAgeSuperieurA = [0]; + function embed_verification_age_superie(x){ + return [7, + _ae_, + [0, + [0, + cst_est_sup_rieur, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + 0]]; + } + var Smic = [0]; + function embed_smic(x){ + return [7, + _af_, + [0, + [0, + cst_brut_horaire, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + 0]]; + } + var NeufOuAncien = [0]; + function embed_neuf_ou_ancien(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cg__ = [0, cst_Neuf, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cg__ = [0, cst_Ancien, embed_ameliore_par_occupant(x$1)]; + return [6, _ag_, _cg__]; + } + var TrancheRevenu = [0]; + function embed_tranche_revenu(x){ + var + _cg8_ = + [0, [0, cst_taux, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], + _cg9_ = + [0, [0, cst_bas, caml_call1(Runtime_ocaml_Runtime[13], x[2])], _cg8_]; + return [7, _ah_, [0, [0, cst_haut, embed_limite_tranche(x[1])], _cg9_]]; + } + var TrancheRevenuDecimal = [0]; + function embed_tranche_revenu_decimal(x){ + var + _cg6_ = + [0, [0, cst_taux$0, caml_call1(Runtime_ocaml_Runtime[15], x[3])], 0], + _cg7_ = + [0, [0, cst_bas$0, caml_call1(Runtime_ocaml_Runtime[15], x[2])], _cg6_]; + return [7, + _ai_, + [0, [0, cst_haut$0, embed_limite_tranche_decimal(x[1])], _cg7_]]; + } + var AutrePersonneACharge = [0]; + function embed_autre_personne_a_charge(x){ + var + _cg0_ = + [0, + [0, + cst_titulaire_allocation_perso, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _cg1_ = + [0, + [0, + cst_b_n_ficiaire_l161_19_l351_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cg0_], + _cg2_ = + [0, + [0, + cst_incapacit_80_pourcent_ou_r, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cg1_], + _cg3_ = [0, [0, cst_parent, embed_parente(x[4])], _cg2_], + _cg4_ = + [0, + [0, + cst_ascendant_descendant_colla, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cg3_], + _cg5_ = + [0, + [0, cst_ressources$0, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cg4_]; + return [7, + _aj_, + [0, + [0, + cst_date_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cg5_]]; + } + var DateNaissanceTroisiemeOuDernie = [0]; + function embed_date_naissance_troisieme(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cgZ_ = + [0, + cst_MoinsDeTroisEnfants, + caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cgZ_ = [0, cst_PlusDeTroisEnfants, embed_date_de_naissance_ou_moi(x$1)]; + return [6, _ak_, _cgZ_]; + } + var EligibiliteAllocationLogement = [0]; + function embed_eligibilite_allocation_l(x){ + var + _cgX_ = + [0, + [0, + cst_coefficents_enfants_garde_$1, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[3])], + 0], + _cgY_ = + [0, + [0, + cst_nombre_personnes_charge_pr$0, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _cgX_]; + return [7, + _al_, + [0, + [0, cst_ligibilit$2, embed_type_eligibilite_allocat(x[1])], + _cgY_]]; + } + var Pret = [0]; + function embed_pret(x){ + var + _cgU_ = + [0, + [0, + cst_accord_financement_repr_se, + embed_accord_financement_repre(x[4])], + 0], + _cgV_ = [0, [0, cst_titulaire_pr_t, embed_titulaire_pret(x[3])], _cgU_], + _cgW_ = + [0, + [0, cst_date_signature, caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cgV_]; + return [7, _am_, [0, [0, cst_type_pr_t, embed_type_pret(x[1])], _cgW_]]; + } + var LogementFoyer = [0]; + function embed_logement_foyer(x){ + var + _cgL_ = + [0, + [0, + cst_logement_meubl_d842_2, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + 0], + _cgM_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _cgL_], + _cgN_ = + [0, + [0, + cst_cat_gorie_quivalence_loyer, + embed_categorie_equivalence_lo(x[8])], + _cgM_], + _cgO_ = + [0, + [0, cst_redevance, caml_call1(Runtime_ocaml_Runtime[13], x[7])], + _cgN_], + _cgP_ = + [0, + [0, + cst_construit_application_loi_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cgO_], + _cgQ_ = + [0, + [0, + cst_date_conventionnement, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _cgP_], + _cgR_ = + [0, + [0, + cst_conventionn_selon_r_gles_d, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cgQ_], + _cgS_ = + [0, + [0, + cst_conventionn_livre_III_titr$1, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cgR_], + _cgT_ = + [0, + [0, + cst_remplit_conditions_r832_21, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _cgS_]; + return [7, + _an_, + [0, [0, cst_type, embed_type_logement_foyer(x[1])], _cgT_]]; + } + var EnfantPrestationsFamiliales = [0]; + function embed_enfant_prestations_famil(x){ + var + _cgF_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + 0], + _cgG_ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cgF_], + _cgH_ = + [0, + [0, cst_prise_en_charge, embed_prise_en_charge_enfant(x[5])], + _cgG_], + _cgI_ = + [0, + [0, + cst_date_de_naissance, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _cgH_], + _cgJ_ = + [0, + [0, + cst_r_muneration_mensuelle, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cgI_], + _cgK_ = + [0, + [0, cst_obligation_scolaire, embed_situation_obligation_sco(x[2])], + _cgJ_]; + return [7, + _ao_, + [0, + [0, cst_identifiant, caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _cgK_]]; + } + var TypeBailleur = [0]; + function embed_type_bailleur(x){ + switch(x[0]){ + case 0: + var + x$0 = x[1], + _cgE_ = [0, cst_BailleurSocial, embed_convention_bailleur_soci(x$0)]; + break; + case 1: + var + x$1 = x[1], + _cgE_ = + [0, cst_BailleurPriv_AvecConventio, embed_convention_a_n_h_a(x$1)]; + break; + default: + var + x$2 = x[1], + _cgE_ = + [0, cst_BailleurPriv, caml_call1(Runtime_ocaml_Runtime[11], x$2)]; + } + return [6, _ap_, _cgE_]; + } + var LoueOuSousLoueADesTiers = [0]; + function embed_loue_ou_sous_loue_a_des_(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cgD_ = [0, cst_Non$1, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cgD_ = [0, cst_Oui$0, embed_personne_sous_location(x$1)]; + return [6, _aq_, _cgD_]; + } + var Nationalite = [0]; + function embed_nationalite(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cgC_ = [0, cst_Fran_aise, caml_call1(Runtime_ocaml_Runtime[11], x$0)]; + else + var + x$1 = x[1], + _cgC_ = [0, cst_trang_re, embed_conditions_etrangers(x$1)]; + return [6, _ar_, _cgC_]; + } + var ChangementLogementD8424 = [0]; + function embed_changement_logement_d842(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cgB_ = [0, cst_Changement, embed_infos_changement_logemen(x$0)]; + else + var + x$1 = x[1], + _cgB_ = + [0, cst_PasDeChangement, caml_call1(Runtime_ocaml_Runtime[11], x$1)]; + return [6, _as_, _cgB_]; + } + var InformationsPrimeDeDemenagemen = [0]; + function embed_informations_prime_de_de(x){ + var + _cgA_ = + [0, + [0, + cst_date_naissance_troisi_me_e, + embed_date_naissance_troisieme(x[2])], + 0]; + return [7, + _at_, + [0, + [0, + cst_nombre_enfants_na_tre_apr_, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _cgA_]]; + } + var Proprietaire = [0]; + function embed_proprietaire(x){ + var + _cgq_ = + [0, + [0, + cst_op_rations_logement_voluti, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + 0], + _cgr_ = [0, [0, cst_pr_t, embed_pret(x[10])], _cgq_], + _cgs_ = + [0, [0, cst_anciennet_logement, embed_neuf_ou_ancien(x[9])], _cgr_], + _cgt_ = + [0, + [0, + cst_situation_r822_11_13_17, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cgs_], + _cgu_ = + [0, + [0, cst_copropri_t, caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cgt_], + _cgv_ = + [0, + [0, + cst_local_habit_premi_re_fois_, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cgu_], + _cgw_ = + [0, + [0, + cst_type_travaux_logement_r842, + embed_type_travaux_logement_r8(x[5])], + _cgv_], + _cgx_ = + [0, + [0, + cst_type_travaux_logement_d832, + embed_type_travaux_logement_d8(x[4])], + _cgw_], + _cgy_ = + [0, + [0, + cst_date_entr_e_logement, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cgx_], + _cgz_ = + [0, + [0, + cst_charges_mensuelles_pr_t, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cgy_]; + return [7, + _au_, + [0, + [0, + cst_mensualit_principale, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cgz_]]; + } + var EligibilitePrestationsFamilial = [0]; + function embed_eligibilite_prestations_(x){ + var + _cgn_ = + [0, + [0, + cst_r_gime_outre_mer_l751_1, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _cgo_ = + [0, + [0, + cst_conditions_hors_ge, + caml_call1(Runtime_ocaml_Runtime[10], x[3])], + _cgn_], + _cgp_ = + [0, + [0, cst_droit_ouvert, caml_call1(Runtime_ocaml_Runtime[10], x[2])], + _cgo_]; + return [7, + _av_, + [0, + [0, cst_ge_l512_3_2, caml_call1(Runtime_ocaml_Runtime[17], x[1])], + _cgp_]]; + } + var Demandeur = [0]; + function embed_demandeur(x){ + var + _cgi_ = + [0, + [0, + cst_magistrat_fonctionnaire_ce, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + 0], + _cgj_ = + [0, + [0, + cst_est_non_salari_agricole_l7, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cgi_], + _cgk_ = + [0, + [0, + cst_personne_h_berg_e_centre_s, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cgj_], + _cgl_ = [0, [0, cst_patrimoine, embed_patrimoine(x[3])], _cgk_], + _cgm_ = [0, [0, cst_nationalit, embed_nationalite(x[2])], _cgl_]; + return [7, + _aw_, + [0, + [0, + cst_date_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cgm_]]; + } + var EnfantACharge = [0]; + function embed_enfant_a_charge(x){ + var + _cga_ = + [0, + [0, + cst_tudes_apprentissage_stage_, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + 0], + _cgb_ = + [0, + [0, + cst_situation_garde_altern_e, + embed_situation_garde_alternee(x[8])], + _cga_], + _cgc_ = + [0, + [0, cst_obligation_scolaire$0, embed_situation_obligation_sco(x[7])], + _cgb_], + _cgd_ = + [0, + [0, + cst_r_muneration_mensuelle$0, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + _cgc_], + _cge_ = + [0, + [0, + cst_date_de_naissance$0, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _cgd_], + _cgf_ = + [0, + [0, + cst_a_d_j_ouvert_droit_aux_all$0, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cge_], + _cgg_ = + [0, + [0, + cst_b_n_ficie_titre_personnel_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cgf_], + _cgh_ = [0, [0, cst_nationalit$0, embed_nationalite(x[2])], _cgg_]; + return [7, + _ax_, + [0, + [0, + cst_identifiant$0, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _cgh_]]; + } + var Location = [0]; + function embed_location(x){ + var + _cf5_ = + [0, + [0, + cst_changement_logement_d842_4, + embed_changement_logement_d842(x[8])], + 0], + _cf6_ = + [0, + [0, + cst_logement_meubl_d842_2$0, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cf5_], + _cf7_ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cf6_], + _cf8_ = + [0, + [0, cst_colocation, caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cf7_], + _cf9_ = + [0, + [0, + cst_logement_est_chambre, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cf8_], + _cf__ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$0, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cf9_], + _cf$_ = + [0, + [0, cst_loyer_principal, caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cf__]; + return [7, _ay_, [0, [0, cst_bailleur, embed_type_bailleur(x[1])], _cf$_]]; + } + var PersonneACharge = [0]; + function embed_personne_a_charge(x){ + if(0 === x[0]) + var + x$0 = x[1], + _cf4_ = [0, cst_Enfant_Charge, embed_enfant_a_charge(x$0)]; + else + var + x$1 = x[1], + _cf4_ = + [0, cst_AutrePersonne_Charge, embed_autre_personne_a_charge(x$1)]; + return [6, _az_, _cf4_]; + } + var CategorieCalculAPL = [0]; + function embed_categorie_calcul_a_p_l(x){ + switch(x[0]){ + case 0: + var x$0 = x[1], _cf3_ = [0, cst_Location, embed_location(x$0)]; break; + case 1: + var + x$1 = x[1], + _cf3_ = [0, cst_AccessionPropri_t, embed_proprietaire(x$1)]; + break; + default: + var + x$2 = x[1], + _cf3_ = [0, cst_LogementFoyer, embed_logement_foyer(x$2)]; + } + return [6, _aA_, _cf3_]; + } + var ModeOccupation = [0]; + function embed_mode_occupation(x){ + switch(x[0]){ + case 0: + var x$0 = x[1], _cf2_ = [0, cst_Locataire, embed_location(x$0)]; break; + case 1: + var + x$1 = x[1], + _cf2_ = [0, cst_R_sidentLogementFoyer, embed_logement_foyer(x$1)]; + break; + case 2: + var + x$2 = x[1], + _cf2_ = [0, cst_AccessionPropri_t_LocalUsa, embed_proprietaire(x$2)]; + break; + case 3: + var x$3 = x[1], _cf2_ = [0, cst_SousLocataire, embed_location(x$3)]; + break; + default: + var + x$4 = x[1], + _cf2_ = [0, cst_LocationAccession, embed_proprietaire(x$4)]; + } + return [6, _aB_, _cf2_]; + } + var EligibiliteAidesPersonnelleLog = [0]; + function embed_eligibilite_aides_person(x){ + var + _cfY_ = + [0, + [0, + cst_condition_2_r823_4, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _cfZ_ = + [0, + [0, + cst_coefficents_enfants_garde_$2, + caml_call2 + (Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15], x[4])], + _cfY_], + _cf0_ = + [0, + [0, + cst_nombre_personnes_charge_pr$1, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _cfZ_], + _cf1_ = + [0, + [0, cst_ligibilit$3, caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _cf0_]; + return [7, + _aC_, + [0, + [0, + cst_date_courante$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cf1_]]; + } + var Logement = [0]; + function embed_logement(x){ + var + _cfQ_ = [0, [0, cst_zone, embed_zone_d_habitation(x[9])], 0], + _cfR_ = + [0, + [0, cst_surface_m_carr_s, caml_call1(Runtime_ocaml_Runtime[14], x[8])], + _cfQ_], + _cfS_ = + [0, + [0, + cst_logement_decent_l89_462, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cfR_], + _cfT_ = [0, [0, cst_usufruit, embed_parent_ou_autre(x[6])], _cfS_], + _cfU_ = + [0, + [0, + cst_lou_ou_sous_lou_des_tiers, + embed_loue_ou_sous_loue_a_des_(x[5])], + _cfT_], + _cfV_ = [0, [0, cst_propri_taire, embed_parent_ou_autre(x[4])], _cfU_], + _cfW_ = [0, [0, cst_mode_occupation, embed_mode_occupation(x[3])], _cfV_], + _cfX_ = + [0, + [0, + cst_est_ehpad_ou_maison_autono, + caml_call1(Runtime_ocaml_Runtime[12], x[2])], + _cfW_]; + return [7, + _aD_, + [0, + [0, + cst_r_sidence_principale, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _cfX_]]; + } + var Menage = [0]; + function embed_menage(x){ + var + _cfI_ = [0, [0, cst_r_sidence, embed_collectivite(x[9])], 0], + _cfJ_ = + [0, + [0, + cst_personnes_g_es_handicap_es, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cfI_], + _cfK_ = + [0, + [0, + cst_enfant_na_tre_apr_s_quatri, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _cfJ_], + _cfL_ = + [0, + [0, + cst_condition_rattach_foyer_fi, + caml_call1(Runtime_ocaml_Runtime[12], x[6])], + _cfK_], + _cfM_ = + [0, + [0, cst_situation_familiale, embed_situation_familiale(x[5])], + _cfL_], + _cfN_ = + [0, + [0, + cst_nombre_autres_occupants_lo, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _cfM_], + _cfO_ = + [0, + [0, + cst_personnes_charge, + caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[3])], + _cfN_], + _cfP_ = [0, [0, cst_logement, embed_logement(x[2])], _cfO_]; + return [7, + _aE_, + [0, + [0, + cst_prestations_re_ues, caml_call2 - (Runtime_ocaml_Runtime[103],_crZ_,n_nombre_parts_d832_25); - function _cr1_(tranche) - {if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$70); - var _cr8_=tranche[1]; - if(0 !== _cr8_[0]) - {var - _csb_=tranche[3], - _csc_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_csc_,_csb_)} - var tranche_haut=_cr8_[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)) - {var - _cr9_=tranche[3], - _cr__= - caml_call2 - (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_cr__,_cr9_)} - var - _cr$_=tranche[3], - _csa_= + (Runtime_ocaml_Runtime[18], embed_prestation_recue, x[1])], + _cfP_]]; + } + var EligibiliteAidesPersonnelleLog$0 = [0]; + function embed_eligibilite_aides_person$0(x){ + var + _cfD_ = + [0, + [0, + cst_date_entr_e_vigueur_diff_r, + caml_call1(Runtime_ocaml_Runtime[10], x[6])], + 0], + _cfE_ = + [0, + [0, + cst_condition_logement_surface, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + _cfD_], + _cfF_ = + [0, + [0, + cst_condition_logement_r_siden, + caml_call1(Runtime_ocaml_Runtime[10], x[4])], + _cfE_], + _cfG_ = + [0, + [0, cst_date_courante_in, caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cfF_], + _cfH_ = [0, [0, cst_demandeur_in, embed_demandeur(x[2])], _cfG_]; + return [7, _aF_, [0, [0, cst_m_nage_in, embed_menage(x[1])], _cfH_]]; + } + var EligibiliteAidePersonnaliseeLo$0 = [0]; + function embed_eligibilite_aide_personn$0(x){ + var + _cfB_ = + [0, + [0, + cst_date_courante_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + 0], + _cfC_ = [0, [0, cst_demandeur_in$0, embed_demandeur(x[2])], _cfB_]; + return [7, _aG_, [0, [0, cst_m_nage_in$0, embed_menage(x[1])], _cfC_]]; + } + var EligibiliteAllocationLogementI = [0]; + function embed_eligibilite_allocation_l$0(x){ + var + _cfy_ = + [0, + [0, + cst_b_n_ficie_aide_personnalis, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + 0], + _cfz_ = [0, [0, cst_demandeur_in$1, embed_demandeur(x[3])], _cfy_], + _cfA_ = [0, [0, cst_m_nage_in$1, embed_menage(x[2])], _cfz_]; + return [7, + _aH_, + [0, + [0, + cst_date_courante_in$1, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cfA_]]; + } + var EligibilitePrimeDeDemenagement$0 = [0]; + function embed_eligibilite_prime_de_dem$0(x){ + var + _cft_ = + [0, + [0, + cst_d_penses_justifi_es_r_elle, + caml_call1(Runtime_ocaml_Runtime[13], x[6])], + 0], + _cfu_ = + [0, + [0, + cst_date_courante_in$2, + caml_call1(Runtime_ocaml_Runtime[16], x[5])], + _cft_], + _cfv_ = [0, [0, cst_demandeur_in$2, embed_demandeur(x[4])], _cfu_], + _cfw_ = [0, [0, cst_m_nage_in$2, embed_menage(x[3])], _cfv_], + _cfx_ = + [0, + [0, + cst_date_emm_nagement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cfw_]; + return [7, + _aI_, + [0, + [0, cst_informations_in, embed_informations_prime_de_de(x[1])], + _cfx_]]; + } + var RessourcesAidesPersonnelleLoge$0 = [0]; + function embed_ressources_aides_personn$0(x){ + var + _cfg_ = + [0, + [0, + cst_ressources_m_nage_arrondie, + caml_call1(Runtime_ocaml_Runtime[13], x[14])], + 0], + _cfh_ = + [0, + [0, + cst_paiement_logement_distinct, + embed_paiement_logement_distin(x[13])], + _cfg_], + _cfi_ = + [0, + [0, + cst_date_demande_ou_reexamen_d, + caml_call1(Runtime_ocaml_Runtime[16], x[12])], + _cfh_], + _cfj_ = + [0, + [0, + cst_demandeur_poursuit_des_tud, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _cfi_], + _cfk_ = + [0, + [0, + cst_condition_ge_bourse_enseig, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + _cfj_], + _cfl_ = + [0, + [0, + cst_date_courante_in$3, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _cfk_], + _cfm_ = + [0, [0, cst_mode_occupation_in, embed_mode_occupation(x[8])], _cfl_], + _cfn_ = + [0, + [0, cst_situation_familiale_in, embed_situation_familiale(x[7])], + _cfm_], + _cfo_ = + [0, + [0, + cst_personnes_charge_in, + caml_call2(Runtime_ocaml_Runtime[18], embed_personne_a_charge, x[6])], + _cfn_], + _cfp_ = + [0, + [0, + cst_conjoint_exerce_activit_r_, + caml_call1(Runtime_ocaml_Runtime[12], x[5])], + _cfo_], + _cfq_ = + [0, + [0, + cst_demandeur_exerce_activit_r, + caml_call1(Runtime_ocaml_Runtime[12], x[4])], + _cfp_], + _cfr_ = + [0, + [0, + cst_personnes_vivant_habituell, + caml_call2 + (Runtime_ocaml_Runtime[18], embed_personne_vivant_habituel, x[3])], + _cfq_], + _cfs_ = + [0, + [0, + cst_ressources_conjoint_in, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cfr_]; + return [7, + _aJ_, + [0, + [0, + cst_ressources_demandeur_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cfs_]]; + } + var ContributionsSocialesAidesPers$0 = [0]; + function embed_contributions_sociales_a$0(x){ + return [7, + _aK_, + [0, + [0, + cst_date_courante_in$4, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var CalculAidePersonnaliseeLogemen$3 = [0]; + function embed_calcul_aide_personnalise$3(x){ + var + _ce5_ = [0, [0, cst_r_sidence_in, embed_collectivite(x[14])], 0], + _ce6_ = + [0, + [0, + cst_logement_meubl_d842_2_in, + caml_call1(Runtime_ocaml_Runtime[12], x[13])], + _ce5_], + _ce7_ = + [0, + [0, + cst_r_duction_loyer_solidarit_$0, + caml_call1(Runtime_ocaml_Runtime[13], x[12])], + _ce6_], + _ce8_ = + [0, + [0, cst_colocation_in, caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _ce7_], + _ce9_ = + [0, + [0, cst_type_aide_in, embed_type_aides_personnelle_l(x[10])], + _ce8_], + _ce__ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h$0, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _ce9_], + _ce$_ = + [0, + [0, + cst_logement_est_chambre_in, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _ce__], + _cfa_ = [0, [0, cst_zone_in, embed_zone_d_habitation(x[7])], _ce$_], + _cfb_ = + [0, + [0, + cst_situation_familiale_calcul, + embed_situation_familiale_calc(x[6])], + _cfa_], + _cfc_ = + [0, + [0, + cst_nombre_personnes_charge_in, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _cfb_], + _cfd_ = + [0, + [0, + cst_date_courante_in$5, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _cfc_], + _cfe_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$1, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cfd_], + _cff_ = + [0, + [0, + cst_ressources_m_nage_arrondie$0, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cfe_]; + return [7, + _aL_, + [0, + [0, + cst_loyer_principal_base_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cff_]]; + } + var CalculEquivalenceLoyerMinimale$0 = [0]; + function embed_calcul_equivalence_loyer$0(x){ + var + _ce2_ = + [0, + [0, + cst_n_nombre_parts_d832_25_in, + caml_call1(Runtime_ocaml_Runtime[15], x[4])], + 0], + _ce3_ = + [0, + [0, + cst_condition_2_du_832_25_in, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _ce2_], + _ce4_ = + [0, + [0, + cst_ressources_m_nage_arrondie$1, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ce3_]; + return [7, + _aM_, + [0, + [0, + cst_date_courante_in$6, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _ce4_]]; + } + var CalculNombrePartLogementFoyerI = [0]; + function embed_calcul_nombre_part_logem$0(x){ + var + _ceY_ = + [0, + [0, + cst_limitation_majoration_pers, + caml_call1(Runtime_ocaml_Runtime[10], x[5])], + 0], + _ceZ_ = [0, [0, cst_r_sidence_in$0, embed_collectivite(x[4])], _ceY_], + _ce0_ = + [0, + [0, + cst_situation_familiale_calcul$0, + embed_situation_familiale_calc(x[3])], + _ceZ_], + _ce1_ = + [0, + [0, + cst_nombre_personnes_charge_in$0, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _ce0_]; + return [7, + _aN_, + [0, + [0, + cst_condition_2_du_832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[1])], + _ce1_]]; + } + var CalculAidePersonnaliseeLogemen$4 = [0]; + function embed_calcul_aide_personnalise$4(x){ + var + _ceN_ = + [0, + [0, + cst_n_nombre_parts_d832_25_in$0, + caml_call1(Runtime_ocaml_Runtime[10], x[12])], + 0], + _ceO_ = + [0, + [0, + cst_limitation_majoration_pers$0, + caml_call1(Runtime_ocaml_Runtime[10], x[11])], + _ceN_], + _ceP_ = + [0, + [0, + cst_condition_2_du_832_25_in$1, + caml_call1(Runtime_ocaml_Runtime[10], x[10])], + _ceO_], + _ceQ_ = [0, [0, cst_r_sidence_in$1, embed_collectivite(x[9])], _ceP_], + _ceR_ = + [0, + [0, cst_redevance_in, caml_call1(Runtime_ocaml_Runtime[13], x[8])], + _ceQ_], + _ceS_ = + [0, + [0, + cst_date_courante_in$7, + caml_call1(Runtime_ocaml_Runtime[16], x[7])], + _ceR_], + _ceT_ = [0, [0, cst_zone_in$0, embed_zone_d_habitation(x[6])], _ceS_], + _ceU_ = + [0, + [0, + cst_situation_familiale_calcul$1, + embed_situation_familiale_calc(x[5])], + _ceT_], + _ceV_ = + [0, + [0, + cst_nombre_personnes_charge_in$1, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _ceU_], + _ceW_ = + [0, + [0, + cst_ressources_m_nage_arrondie$2, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _ceV_], + _ceX_ = + [0, + [0, + cst_date_conventionnement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _ceW_]; + return [7, + _aO_, + [0, + [0, cst_type_logement_foyer_in, embed_type_logement_foyer(x[1])], + _ceX_]]; + } + var CalculNombrePartsAccessionProp$0 = [0]; + function embed_calcul_nombre_parts_acce$0(x){ + var + _ceM_ = + [0, + [0, + cst_situation_familiale_calcul$2, + embed_situation_familiale_calc(x[2])], + 0]; + return [7, + _aP_, + [0, + [0, + cst_nombre_personnes_charge_in$2, + caml_call1(Runtime_ocaml_Runtime[14], x[1])], + _ceM_]]; + } + var CalculAidePersonnaliseeLogemen$5 = [0]; + function embed_calcul_aide_personnalise$5(x){ + var + _cez_ = + [0, + [0, + cst_date_courante_in$8, + caml_call1(Runtime_ocaml_Runtime[16], x[14])], + 0], + _ceA_ = + [0, [0, cst_anciennet_logement_in, embed_neuf_ou_ancien(x[13])], _cez_], + _ceB_ = [0, [0, cst_type_pr_t_in, embed_type_pret(x[12])], _ceA_], + _ceC_ = [0, [0, cst_zone_in$1, embed_zone_d_habitation(x[11])], _ceB_], + _ceD_ = + [0, + [0, + cst_situation_r822_11_13_17_in, + caml_call1(Runtime_ocaml_Runtime[12], x[10])], + _ceC_], + _ceE_ = + [0, + [0, cst_copropri_t_in, caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _ceD_], + _ceF_ = + [0, + [0, + cst_date_entr_e_logement_in, + caml_call1(Runtime_ocaml_Runtime[16], x[8])], + _ceE_], + _ceG_ = + [0, + [0, + cst_local_habit_premi_re_fois_$0, + caml_call1(Runtime_ocaml_Runtime[12], x[7])], + _ceF_], + _ceH_ = + [0, + [0, + cst_date_signature_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _ceG_], + _ceI_ = + [0, + [0, + cst_type_travaux_logement_in, + embed_type_travaux_logement_d8(x[5])], + _ceH_], + _ceJ_ = + [0, + [0, + cst_situation_familiale_calcul$3, + embed_situation_familiale_calc(x[4])], + _ceI_], + _ceK_ = + [0, + [0, + cst_nombre_personnes_charge_in$3, + caml_call1(Runtime_ocaml_Runtime[14], x[3])], + _ceJ_], + _ceL_ = + [0, + [0, + cst_ressources_m_nage_arrondie$3, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ceK_]; + return [7, + _aQ_, + [0, + [0, + cst_mensualit_principale_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ceL_]]; + } + var CalculAidePersonnaliseeLogemen$6 = [0]; + function embed_calcul_aide_personnalise$6(x){ + var + _ces_ = [0, [0, cst_r_sidence_in$2, embed_collectivite(x[8])], 0], + _cet_ = + [0, + [0, + cst_date_courante_in$9, + caml_call1(Runtime_ocaml_Runtime[16], x[7])], + _ces_], + _ceu_ = [0, [0, cst_zone_in$2, embed_zone_d_habitation(x[6])], _cet_], + _cev_ = + [0, + [0, + cst_nombre_personnes_charge_in$4, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _ceu_], + _cew_ = + [0, + [0, cst_situation_familiale_in$0, embed_situation_familiale(x[4])], + _cev_], + _cex_ = + [0, + [0, + cst_ressources_m_nage_sans_arr, + caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cew_], + _cey_ = + [0, + [0, cst_type_aide_in$0, embed_type_aides_personnelle_l(x[2])], + _cex_]; + return [7, + _aR_, + [0, + [0, cst_mode_occupation_in$0, embed_mode_occupation(x[1])], + _cey_]]; + } + var CalculAllocationLogementLocati$0 = [0]; + function embed_calcul_allocation_logeme$3(x){ + var + _cee_ = + [0, + [0, + cst_changement_logement_d842_4$0, + embed_changement_logement_d842(x[15])], + 0], + _cef_ = [0, [0, cst_r_sidence_in$3, embed_collectivite(x[14])], _cee_], + _ceg_ = + [0, + [0, + cst_logement_meubl_d842_2_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[13])], + _cef_], + _ceh_ = + [0, + [0, + cst_r_duction_loyer_solidarit_$1, + caml_call1(Runtime_ocaml_Runtime[13], x[12])], + _ceg_], + _cei_ = + [0, + [0, cst_colocation_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _ceh_], + _cej_ = + [0, + [0, cst_type_aide_in$1, embed_type_aides_personnelle_l(x[10])], + _cei_], + _cek_ = + [0, + [0, + cst_g_es_ou_handicap_adultes_h$1, + caml_call1(Runtime_ocaml_Runtime[12], x[9])], + _cej_], + _cel_ = + [0, + [0, + cst_logement_est_chambre_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cek_], + _cem_ = [0, [0, cst_zone_in$3, embed_zone_d_habitation(x[7])], _cel_], + _cen_ = + [0, + [0, + cst_situation_familiale_calcul$4, + embed_situation_familiale_calc(x[6])], + _cem_], + _ceo_ = + [0, + [0, + cst_nombre_personnes_charge_in$5, + caml_call1(Runtime_ocaml_Runtime[14], x[5])], + _cen_], + _cep_ = + [0, + [0, + cst_date_courante_in$10, + caml_call1(Runtime_ocaml_Runtime[16], x[4])], + _ceo_], + _ceq_ = + [0, + [0, + cst_b_n_ficiaire_aide_adulte_o$2, + caml_call1(Runtime_ocaml_Runtime[12], x[3])], + _cep_], + _cer_ = + [0, + [0, + cst_ressources_m_nage_arrondie$4, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _ceq_]; + return [7, + _aS_, + [0, + [0, + cst_loyer_principal_in, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _cer_]]; + } + var CalculAllocationLogementAccess$0 = [0]; + function embed_calcul_allocation_logeme$4(x){ + var + _cd2_ = + [0, + [0, + cst_op_rations_logement_voluti$0, + caml_call1(Runtime_ocaml_Runtime[12], x[15])], + 0], + _cd3_ = + [0, + [0, cst_copropri_t_in$0, caml_call1(Runtime_ocaml_Runtime[12], x[14])], + _cd2_], + _cd4_ = + [0, + [0, + cst_charges_mensuelles_pr_t_in, + caml_call1(Runtime_ocaml_Runtime[13], x[13])], + _cd3_], + _cd5_ = + [0, + [0, + cst_date_entr_e_logement_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[12])], + _cd4_], + _cd6_ = + [0, + [0, + cst_local_habit_premi_re_fois_$1, + caml_call1(Runtime_ocaml_Runtime[12], x[11])], + _cd5_], + _cd7_ = + [0, + [0, + cst_type_travaux_logement_in$0, + embed_type_travaux_logement_r8(x[10])], + _cd6_], + _cd8_ = + [0, + [0, + cst_date_signature_pr_t_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _cd7_], + _cd9_ = + [0, + [0, + cst_situation_r822_11_13_17_in$0, + caml_call1(Runtime_ocaml_Runtime[12], x[8])], + _cd8_], + _cd__ = + [0, + [0, + cst_mensualit_principale_in$0, + caml_call1(Runtime_ocaml_Runtime[13], x[7])], + _cd9_], + _cd$_ = + [0, + [0, + cst_date_courante_in$11, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _cd__], + _cea_ = [0, [0, cst_r_sidence_in$4, embed_collectivite(x[5])], _cd$_], + _ceb_ = [0, [0, cst_zone_in$4, embed_zone_d_habitation(x[4])], _cea_], + _cec_ = + [0, + [0, + cst_situation_familiale_calcul$5, + embed_situation_familiale_calc(x[3])], + _ceb_], + _ced_ = + [0, + [0, + cst_nombre_personnes_charge_in$6, + caml_call1(Runtime_ocaml_Runtime[14], x[2])], + _cec_]; + return [7, + _aT_, + [0, + [0, + cst_ressources_m_nage_arrondie$5, + caml_call1(Runtime_ocaml_Runtime[13], x[1])], + _ced_]]; + } + var CalculAllocationLogementFoyerI = [0]; + function embed_calcul_allocation_logeme$5(x){ + var + _cdT_ = + [0, + [0, + cst_cat_gorie_quivalence_loyer$0, + embed_categorie_equivalence_lo(x[10])], + 0], + _cdU_ = + [0, + [0, + cst_date_courante_in$12, + caml_call1(Runtime_ocaml_Runtime[16], x[9])], + _cdT_], + _cdV_ = [0, [0, cst_zone_in$5, embed_zone_d_habitation(x[8])], _cdU_], + _cdW_ = + [0, + [0, + cst_situation_familiale_calcul$6, + embed_situation_familiale_calc(x[7])], + _cdV_], + _cdX_ = + [0, + [0, + cst_nombre_personnes_charge_in$7, + caml_call1(Runtime_ocaml_Runtime[14], x[6])], + _cdW_], + _cdY_ = + [0, + [0, + cst_ressources_m_nage_arrondie$6, + caml_call1(Runtime_ocaml_Runtime[13], x[5])], + _cdX_], + _cdZ_ = + [0, + [0, cst_redevance_in$0, caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _cdY_], + _cd0_ = [0, [0, cst_r_sidence_in$5, embed_collectivite(x[3])], _cdZ_], + _cd1_ = + [0, + [0, + cst_date_conventionnement_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cd0_]; + return [7, + _aU_, + [0, + [0, + cst_type_logement_foyer_in$0, + embed_type_logement_foyer(x[1])], + _cd1_]]; + } + var CalculAllocationLogementIn = [0]; + function embed_calcul_allocation_logeme$6(x){ + var + _cdM_ = [0, [0, cst_r_sidence_in$6, embed_collectivite(x[8])], 0], + _cdN_ = + [0, + [0, cst_type_aide_in$2, embed_type_aides_personnelle_l(x[7])], + _cdM_], + _cdO_ = + [0, + [0, + cst_date_courante_in$13, + caml_call1(Runtime_ocaml_Runtime[16], x[6])], + _cdN_], + _cdP_ = [0, [0, cst_zone_in$6, embed_zone_d_habitation(x[5])], _cdO_], + _cdQ_ = + [0, + [0, + cst_nombre_personnes_charge_in$8, + caml_call1(Runtime_ocaml_Runtime[14], x[4])], + _cdP_], + _cdR_ = + [0, + [0, cst_situation_familiale_in$1, embed_situation_familiale(x[3])], + _cdQ_], + _cdS_ = + [0, + [0, + cst_ressources_m_nage_sans_arr$0, + caml_call1(Runtime_ocaml_Runtime[13], x[2])], + _cdR_]; + return [7, + _aV_, + [0, + [0, cst_mode_occupation_in$1, embed_mode_occupation(x[1])], + _cdS_]]; + } + var OuvertureDroitsRetraiteIn = [0]; + function embed_ouverture_droits_retrait$0(x){ + return [7, + _aW_, + [0, + [0, + cst_date_naissance_assur_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var ImpayeDepenseLogementIn = [0]; + function embed_impaye_depense_logement_(x){ + var + _cdH_ = + [0, + [0, cst_montant_dette_in, caml_call1(Runtime_ocaml_Runtime[13], x[6])], + 0], + _cdI_ = + [0, [0, cst_d_pense_logement_in, embed_depense_logement(x[5])], _cdH_], + _cdJ_ = + [0, + [0, + cst_montant_charges_in, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + _cdI_], + _cdK_ = + [0, + [0, cst_montant_apl_in, caml_call1(Runtime_ocaml_Runtime[13], x[3])], + _cdJ_], + _cdL_ = [0, [0, cst_aide_vers_e_in, embed_versement_a(x[2])], _cdK_]; + return [7, + _aX_, + [0, + [0, cst_mode_occupation_in$2, embed_mode_occupation(x[1])], + _cdL_]]; + } + var CalculetteAidesAuLogementIn = [0]; + function embed_calculette_aides_au_loge$1(x){ + var + _cdE_ = + [0, + [0, + cst_ressources_m_nage_prises_e, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + 0], + _cdF_ = + [0, + [0, + cst_date_courante_in$14, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cdE_], + _cdG_ = [0, [0, cst_demandeur_in$3, embed_demandeur(x[2])], _cdF_]; + return [7, _aY_, [0, [0, cst_m_nage_in$3, embed_menage(x[1])], _cdG_]]; + } + var CalculetteAidesAuLogementGarde$0 = [0]; + function embed_calculette_aides_au_loge$2(x){ + var + _cdB_ = + [0, + [0, + cst_ressources_m_nage_prises_e$0, + caml_call1(Runtime_ocaml_Runtime[13], x[4])], + 0], + _cdC_ = + [0, + [0, + cst_date_courante_in$15, + caml_call1(Runtime_ocaml_Runtime[16], x[3])], + _cdB_], + _cdD_ = [0, [0, cst_demandeur_in$4, embed_demandeur(x[2])], _cdC_]; + return [7, _aZ_, [0, [0, cst_m_nage_in$4, embed_menage(x[1])], _cdD_]]; + } + var BaseMensuelleAllocationsFamili$0 = [0]; + function embed_base_mensuelle_allocatio$0(x){ + return [7, + _a0_, + [0, + [0, + cst_date_courante_in$16, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + 0]]; + } + var VerificationAgeInferieurOuEgal$0 = [0]; + function embed_verification_age_inferie$0(x){ + var + _cdz_ = + [0, [0, cst_ann_es_in, caml_call1(Runtime_ocaml_Runtime[17], x[3])], 0], + _cdA_ = + [0, + [0, + cst_date_courante_in$17, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cdz_]; + return [7, + _a1_, + [0, + [0, + cst_date_naissance_in, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cdA_]]; + } + var VerificationAgeSuperieurAIn = [0]; + function embed_verification_age_superie$0(x){ + var + _cdx_ = + [0, + [0, cst_ann_es_in$0, caml_call1(Runtime_ocaml_Runtime[17], x[3])], + 0], + _cdy_ = + [0, + [0, + cst_date_courante_in$18, + caml_call1(Runtime_ocaml_Runtime[16], x[2])], + _cdx_]; + return [7, + _a2_, + [0, + [0, + cst_date_naissance_in$0, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cdy_]]; + } + var SmicIn = [0]; + function embed_smic_in(x){ + var _cdw_ = [0, [0, cst_r_sidence_in$7, embed_collectivite(x[2])], 0]; + return [7, + _a3_, + [0, + [0, + cst_date_courante_in$19, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cdw_]]; + } + var EligibilitePrestationsFamilial$0 = [0]; + function embed_eligibilite_prestations_$0(x){ + var + _cdt_ = + [0, + [0, cst_ge_l512_3_2_in, caml_call1(Runtime_ocaml_Runtime[10], x[4])], + 0], + _cdu_ = [0, [0, cst_r_sidence_in$8, embed_collectivite(x[3])], _cdt_], + _cdv_ = + [0, + [0, cst_prestation_courante_in, embed_element_prestations_fami(x[2])], + _cdu_]; + return [7, + _a4_, + [0, + [0, + cst_date_courante_in$20, + caml_call1(Runtime_ocaml_Runtime[16], x[1])], + _cdv_]]; + } + function contributions_sociales_aides_p(contributions_sociales_aides_p){ + var date_courante = contributions_sociales_aides_p[1]; + try{ + var + _cc5_ = function(param){return 0;}, + _cc6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _a6_, 1); + }, + _cc7_ = + [0, + function(param){ + function _cdr_(param){return 1;} + function _cds_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _a7_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _a8_, [0], _cds_, _cdr_); + }], + _cc8_ = caml_call4(Runtime_ocaml_Runtime[63], _a9_, _cc7_, _cc6_, _cc5_); + } + catch(_cdq_){ + var _cc4_ = caml_wrap_exception(_cdq_); + if(_cc4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _a5_], 1); + throw caml_maybe_attach_backtrace(_cc4_, 0); + } + var + exonere_csg = + caml_call3 + (Runtime_ocaml_Runtime[28], _a__, Runtime_ocaml_Runtime[12], _cc8_); + try{ + var + _cc__ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_005); + }, + _cc$_ = + function(param){ + var + _cdo_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _cdp_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdo_); + return caml_call2(Runtime_ocaml_Runtime[29], _ba_, _cdp_); + }, + _cda_ = caml_call4(Runtime_ocaml_Runtime[63], _bb_, [0], _cc$_, _cc__); + } + catch(_cdn_){ + var _cc9_ = caml_wrap_exception(_cdn_); + if(_cc9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _a$_], 1); + throw caml_maybe_attach_backtrace(_cc9_, 0); + } + var + taux_crds = + caml_call3 + (Runtime_ocaml_Runtime[28], _bc_, Runtime_ocaml_Runtime[15], _cda_); + function _cdb_(aide_finale){ + try{ + var + _cdh_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], aide_finale, taux_crds); + }, + _cdi_ = + function(param){ + var + _cdl_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 9, 1), + _cdm_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdl_); + return caml_call2(Runtime_ocaml_Runtime[29], _be_, _cdm_); + }, + _cdj_ = caml_call4(Runtime_ocaml_Runtime[63], _bf_, [0], _cdi_, _cdh_); + return _cdj_; + } + catch(_cdk_){ + var _cdg_ = caml_wrap_exception(_cdk_); + if(_cdg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bd_], 1); + throw caml_maybe_attach_backtrace(_cdg_, 0); + } + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bg_, Runtime_ocaml_Runtime[10], _cdb_); + if(! exonere_csg) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bj_], 1); + try{ + var + _cdd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _cde_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _cdd_); + } + catch(_cdf_){ + var _cdc_ = caml_wrap_exception(_cdf_); + if(_cdc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bh_], 1); + throw caml_maybe_attach_backtrace(_cdc_, 0); + } + if(_cde_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _bi_], 1); + } + function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ + var + date_courante = calcul_equivalence_loyer_minim[1], + ressources_menage_arrondies = calcul_equivalence_loyer_minim[2], + condition_2_du_832_25 = calcul_equivalence_loyer_minim[3], + n_nombre_parts_d832_25 = calcul_equivalence_loyer_minim[4]; + try{ + var + _cbu_ = + function(param){ + return condition_2_du_832_25 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_7632) + : caml_call1(Runtime_ocaml_Runtime[31], cst_4557); + }, + _cbv_ = + function(param){ + var + _cc2_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _cc3_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cc2_); + return caml_call2(Runtime_ocaml_Runtime[29], _bl_, _cc3_); + }, + _cbw_ = caml_call4(Runtime_ocaml_Runtime[63], _bm_, [0], _cbv_, _cbu_); + } + catch(_cc1_){ + var _cbt_ = caml_wrap_exception(_cc1_); + if(_cbt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bk_], 1); + throw caml_maybe_attach_backtrace(_cbt_, 0); + } + var + montant_forfaitaire_d832_26 = + caml_call3 + (Runtime_ocaml_Runtime[28], _bn_, Runtime_ocaml_Runtime[13], _cbw_); + try{ + var + _cby_ = + function(param){ + var + _ccL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_48), + _ccM_ = + [0, + _bp_, + caml_call1(Runtime_ocaml_Runtime[31], cst_633129), + _ccL_], + _ccN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_32), + _ccO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_535744), + _ccP_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_633129$0)], + _ccO_, + _ccN_], + _ccQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_264), + _ccR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_389618), + _ccS_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_535744$0)], + _ccR_, + _ccQ_], + _ccT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_216), + _ccU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_267871), + _ccV_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_389618$0)], + _ccU_, + _ccT_], + _ccW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_104), + _ccX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194810), + _ccY_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_267871$0)], + _ccX_, + _ccW_], + _ccZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_04), + _cc0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0); + return [0, + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_194810$0)], + _cc0_, + _ccZ_], + _ccY_, + _ccV_, + _ccS_, + _ccP_, + _ccM_]; + }, + _cbz_ = + function(param){ + var + _ccJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _ccK_ = caml_call2(Runtime_ocaml_Runtime[125], date_courante, _ccJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _bq_, _ccK_); + }, + _cbA_ = + [0, + function(param){ + function _ccr_(param){ + var + _ccw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_328), + _ccx_ = + [0, + _br_, + caml_call1(Runtime_ocaml_Runtime[31], cst_409505), + _ccw_], + _ccy_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_232), + _ccz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_262985), + _ccA_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_409505$0)], + _ccz_, + _ccy_], + _ccB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_208), + _ccC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204761), + _ccD_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_262985$0)], + _ccC_, + _ccB_], + _ccE_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_024), + _ccF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_142303), + _ccG_ = + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_204761$0)], + _ccF_, + _ccE_], + _ccH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$0), + _ccI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$1); + return [0, + [0, + [0, caml_call1(Runtime_ocaml_Runtime[31], cst_142303$0)], + _ccI_, + _ccH_], + _ccG_, + _ccD_, + _ccA_, + _ccx_]; + } + function _ccs_(param){ + var + _cct_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _ccu_ = + caml_call2(Runtime_ocaml_Runtime[125], date_courante, _cct_), + _ccv_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _ccu_, condition_2_du_832_25); + return caml_call2(Runtime_ocaml_Runtime[29], _bs_, _ccv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bt_, [0], _ccs_, _ccr_); + }], + _cbB_ = caml_call4(Runtime_ocaml_Runtime[63], _bu_, _cbA_, _cbz_, _cby_); + } + catch(_ccq_){ + var _cbx_ = caml_wrap_exception(_ccq_); + if(_cbx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bo_], 1); + throw caml_maybe_attach_backtrace(_cbx_, 0); + } + var + _cbC_ = caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu), + tranches_revenus_d832_26 = + caml_call3(Runtime_ocaml_Runtime[28], _bv_, _cbC_, _cbB_); + try{ + var + _cbE_ = + function(param){ + function _cck_(tranche){ + var + _ccl_ = tranche[3], + _ccm_ = caml_call1(Runtime_ocaml_Runtime[70], tranche[2]), + _ccn_ = + caml_call2 + (Runtime_ocaml_Runtime[103], _ccm_, n_nombre_parts_d832_25), + match = tranche[1]; + if(0 === match[0]) + var + tranche_haut = match[1], + _cco_ = caml_call1(Runtime_ocaml_Runtime[70], tranche_haut), + _ccp_ = + [0, + caml_call2 + (Runtime_ocaml_Runtime[103], _cco_, n_nombre_parts_d832_25)]; + else + var _ccp_ = _bx_; + return [0, _ccp_, _ccn_, _ccl_]; + } + return caml_call2 + (Runtime_ocaml_Runtime[87], _cck_, tranches_revenus_d832_26); + }, + _cbF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _by_, 1); + }, + _cbG_ = caml_call4(Runtime_ocaml_Runtime[63], _bz_, [0], _cbF_, _cbE_); + } + catch(_ccj_){ + var _cbD_ = caml_wrap_exception(_ccj_); + if(_cbD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bw_], 1); + throw caml_maybe_attach_backtrace(_cbD_, 0); + } + var + _cbH_ = + caml_call1(Runtime_ocaml_Runtime[18], embed_tranche_revenu_decimal), + tranches_revenus_d832_26_multi = + caml_call3(Runtime_ocaml_Runtime[28], _bA_, _cbH_, _cbG_); + try{ + var + _cbJ_ = + function(param){ + var + ressources_menage_arrondies$0 = + caml_call1(Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + _cb5_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12), + _cb6_ = + caml_call1(Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26), + _cb7_ = + caml_call2 + (Runtime_ocaml_Runtime[103], _cb6_, n_nombre_parts_d832_25); + function _cb8_(tranche){ + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$2); + var match = tranche[1]; + if(0 !== match[0]){ + var + _cch_ = tranche[3], + _cci_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cci_, _cch_); + } + var tranche_haut = match[1]; + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)){ + var + _ccd_ = tranche[3], + _cce_ = + caml_call2(Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cce_, _ccd_); + } + var + _ccf_ = tranche[3], + _ccg_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _ccg_, _ccf_); + } + var + _cb9_ = + caml_call2 + (Runtime_ocaml_Runtime[87], + _cb8_, + tranches_revenus_d832_26_multi), + _cb__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$3); + function _cb$_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + var + _cca_ = caml_call3(Runtime_ocaml_Runtime[88], _cb$_, _cb__, _cb9_), + _ccb_ = caml_call2(Runtime_ocaml_Runtime[92], _cca_, _cb7_), + _ccc_ = caml_call2(Runtime_ocaml_Runtime[107], _ccb_, _cb5_); + return caml_call1(Runtime_ocaml_Runtime[71], _ccc_); + }, + _cbK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bC_, 1); + }, + _cbL_ = + [0, + function(param){ + function _cbO_(param){ + var + ressources_menage_arrondies$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + _cbQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$0), + _cbR_ = + caml_call1 + (Runtime_ocaml_Runtime[70], montant_forfaitaire_d832_26); + function _cbS_(tranche){ + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + tranche[2])) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$4); + var match = tranche[1]; + if(0 !== match[0]){ + var + _cb3_ = tranche[3], + _cb4_ = caml_call2 (Runtime_ocaml_Runtime[97], ressources_menage_arrondies$0, tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_csa_,_cr$_)} + return caml_call2(Runtime_ocaml_Runtime[103], _cb4_, _cb3_); + } + var tranche_haut = match[1]; + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + tranche_haut)){ + var + _cbZ_ = tranche[3], + _cb0_ = + caml_call2 + (Runtime_ocaml_Runtime[97], tranche_haut, tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cb0_, _cbZ_); + } var - _cr2_= + _cb1_ = tranche[3], + _cb2_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + tranche[2]); + return caml_call2(Runtime_ocaml_Runtime[103], _cb2_, _cb1_); + } + var + _cbT_ = caml_call2 (Runtime_ocaml_Runtime[87], - _cr1_, + _cbS_, tranches_revenus_d832_26_multi), - _cr3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$71); - function _cr4_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - var - _cr5_=caml_call3(Runtime_ocaml_Runtime[88],_cr4_,_cr3_,_cr2_), - _cr6_=caml_call2(Runtime_ocaml_Runtime[92],_cr5_,_cr0_), - _cr7_=caml_call2(Runtime_ocaml_Runtime[107],_cr6_,_crY_); - return caml_call1(Runtime_ocaml_Runtime[71],_cr7_)}, - _crC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ne_,1)}, - _crD_= - [0, - function(param) - {function _crG_(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - _crI_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$12), - _crJ_= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_forfaitaire_d832_26); - function _crK_(tranche) - {if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - tranche[2])) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$72); - var _crR_=tranche[1]; - if(0 !== _crR_[0]) - {var - _crW_=tranche[3], - _crX_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_crX_,_crW_)} - var tranche_haut=_crR_[1]; - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - tranche_haut)) - {var - _crS_=tranche[3], - _crT_= - caml_call2 - (Runtime_ocaml_Runtime[97],tranche_haut,tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_crT_,_crS_)} - var - _crU_=tranche[3], - _crV_= + _cbU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$5); + function _cbV_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + } + var + _cbW_ = caml_call3(Runtime_ocaml_Runtime[88], _cbV_, _cbU_, _cbT_), + _cbX_ = caml_call2(Runtime_ocaml_Runtime[92], _cbW_, _cbR_), + _cbY_ = caml_call2(Runtime_ocaml_Runtime[107], _cbX_, _cbQ_); + return caml_call1(Runtime_ocaml_Runtime[71], _cbY_); + } + function _cbP_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bD_, condition_2_du_832_25); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bE_, [0], _cbP_, _cbO_); + }], + _cbM_ = caml_call4(Runtime_ocaml_Runtime[63], _bF_, _cbL_, _cbK_, _cbJ_); + } + catch(_cbN_){ + var _cbI_ = caml_wrap_exception(_cbN_); + if(_cbI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bB_], 1); + throw caml_maybe_attach_backtrace(_cbI_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _bG_, Runtime_ocaml_Runtime[13], _cbM_); + return [0, montant]; + } + function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ + var + condition_2_du_832_25 = calcul_nombre_part_logement_fo[1], + nombre_personnes_a_charge = calcul_nombre_part_logement_fo[2], + situation_familiale_calcul_apl = calcul_nombre_part_logement_fo[3], + residence = calcul_nombre_part_logement_fo[4], + limitation_majoration_personne = calcul_nombre_part_logement_fo[5]; + try{ + var + _caE_ = + function(param){ + function _cbr_(param){return 0;} + function _cbs_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bI_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _bJ_, [0], _cbs_, _cbr_); + }, + _caF_ = function(param){return 1;}, + _caG_ = + [0, + function(param){ + return caml_call1(limitation_majoration_personne, 0); + }], + _caH_ = caml_call4(Runtime_ocaml_Runtime[63], _bK_, _caG_, _caF_, _caE_); + } + catch(_cbq_){ + var _caD_ = caml_wrap_exception(_cbq_); + if(_caD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bH_], 1); + throw caml_maybe_attach_backtrace(_caD_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _bL_, Runtime_ocaml_Runtime[12], _caH_); + try{ + var + _caJ_ = + function(param){ + var _cbm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8); + var _cbn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbn_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5); + var _cbo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbo_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3); + var _cbp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$0); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _cbp_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7) + : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3); + }, + _caK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bN_, 1); + }, + _caL_ = + [0, + function(param){ + function _cbg_(param){ + var _cbi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbi_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_5); + var _cbj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbj_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$0); + var _cbk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$0); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cbk_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3$1); + var _cbl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$2); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _cbl_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$0); + } + function _cbh_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bO_, condition_2_du_832_25); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _bP_, [0], _cbh_, _cbg_); + }], + _caM_ = caml_call4(Runtime_ocaml_Runtime[63], _bQ_, _caL_, _caK_, _caJ_); + } + catch(_cbf_){ + var _caI_ = caml_wrap_exception(_cbf_); + if(_caI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bM_], 1); + throw caml_maybe_attach_backtrace(_caI_, 0); + } + var + n_nombre_parts_d832_25_base = + caml_call3 + (Runtime_ocaml_Runtime[28], _bR_, Runtime_ocaml_Runtime[15], _caM_); + try{ + var + _caO_ = + function(param){ + var _cba_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _cba_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$8); + var + _cbb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$0), + _cbc_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cbb_), + _cbd_ = caml_call1(Runtime_ocaml_Runtime[69], _cbc_), + _cbe_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5); + return caml_call2(Runtime_ocaml_Runtime[103], _cbe_, _cbd_); + }, + _caP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _bT_, 1); + }, + _caQ_ = + [0, + function(param){ + function _caY_(param){ + var _ca7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[121], nombre_personnes_a_charge, _ca7_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$9); + var + _ca8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$2), + _ca9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _ca8_), + _ca__ = caml_call1(Runtime_ocaml_Runtime[69], _ca9_), + _ca$_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$0); + return caml_call2(Runtime_ocaml_Runtime[103], _ca$_, _ca__); + } + function _caZ_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _bU_, condition_2_du_832_25); + } + var + _ca0_ = + [0, + function(param){ + function _ca1_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_1$1); + } + function _ca2_(param){ + switch(residence[0]){ + case 0: + var _ca3_ = 1; break; + case 1: + var _ca3_ = 1; break; + case 2: + var _ca3_ = 1; break; + case 3: + var _ca3_ = 1; break; + case 4: + var _ca3_ = 0; break; + case 5: + var _ca3_ = 0; break; + case 6: + var _ca3_ = 0; break; + case 7: + var _ca3_ = 0; break; + default: var _ca3_ = 1; + } + var + _ca4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6), + _ca5_ = caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - tranche[2]); - return caml_call2(Runtime_ocaml_Runtime[103],_crV_,_crU_)} - var - _crL_= - caml_call2 - (Runtime_ocaml_Runtime[87], - _crK_, - tranches_revenus_d832_26_multi), - _crM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$73); - function _crN_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)} - var - _crO_=caml_call3(Runtime_ocaml_Runtime[88],_crN_,_crM_,_crL_), - _crP_=caml_call2(Runtime_ocaml_Runtime[92],_crO_,_crJ_), - _crQ_=caml_call2(Runtime_ocaml_Runtime[107],_crP_,_crI_); - return caml_call1(Runtime_ocaml_Runtime[71],_crQ_)} - function _crH_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nf_,condition_2_du_832_25)} - return caml_call4(Runtime_ocaml_Runtime[63],_ng_,[0],_crH_,_crG_)}], - _crE_=caml_call4(Runtime_ocaml_Runtime[63],_nh_,_crD_,_crC_,_crB_)} - catch(_crF_) - {_crF_ = caml_wrap_exception(_crF_); - if(_crF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nd_]; - throw _crF_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_ni_,Runtime_ocaml_Runtime[13],_crE_); - return [0,montant]} - function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo) - {var - condition_2_du_832_25=calcul_nombre_part_logement_fo[1], - nombre_personnes_a_charge=calcul_nombre_part_logement_fo[2], - situation_familiale_calcul_apl=calcul_nombre_part_logement_fo[3], - residence=calcul_nombre_part_logement_fo[4], - limitation_majoration_personne=calcul_nombre_part_logement_fo[5]; - try - {var - _cqD_= - function(param) - {function _crn_(param){return 0} - function _cro_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_nk_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_nl_,[0],_cro_,_crn_)}, - _cqE_=function(param){return 1}, - _cqF_= - [0, - function(param) - {return caml_call1(limitation_majoration_personne,0)}], - _cqG_=caml_call4(Runtime_ocaml_Runtime[63],_nm_,_cqF_,_cqE_,_cqD_)} - catch(_crm_) - {_crm_ = caml_wrap_exception(_crm_); - if(_crm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nj_]; - throw _crm_} - caml_call3 - (Runtime_ocaml_Runtime[28],_nn_,Runtime_ocaml_Runtime[12],_cqG_); - try - {var - _cqH_= - function(param) - {var _cri_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cri_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8); - var _crj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crj_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5); - var _crk_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crk_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$3); - var _crl_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$4); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crl_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7) - :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3)}, - _cqI_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_np_,1)}, - _cqJ_= - [0, - function(param) - {function _crc_(param) - {var _cre_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cre_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_2) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_5); - var _crf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crf_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$0); - var _crg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crg_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$5); - var _crh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$6); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_crh_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$0)} - function _crd_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nq_,condition_2_du_832_25)} - return caml_call4(Runtime_ocaml_Runtime[63],_nr_,[0],_crd_,_crc_)}], - _cqK_=caml_call4(Runtime_ocaml_Runtime[63],_ns_,_cqJ_,_cqI_,_cqH_)} - catch(_crb_) - {_crb_ = caml_wrap_exception(_crb_); - if(_crb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_no_]; - throw _crb_} - var - n_nombre_parts_d832_25_base= - caml_call3 - (Runtime_ocaml_Runtime[28],_nt_,Runtime_ocaml_Runtime[15],_cqK_); - try - {var - _cqL_= - function(param) - {var _cq8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq8_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$76); - var - _cq9_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$0), - _cq__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cq9_), - _cq$_=caml_call1(Runtime_ocaml_Runtime[69],_cq__), - _cra_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$1); - return caml_call2(Runtime_ocaml_Runtime[103],_cra_,_cq$_)}, - _cqM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nv_,1)}, - _cqN_= - [0, - function(param) - {function _cqU_(param) - {var _cq3_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$1); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq3_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$77); - var - _cq4_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$2), - _cq5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cq4_), - _cq6_=caml_call1(Runtime_ocaml_Runtime[69],_cq5_), - _cq7_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$2); - return caml_call2(Runtime_ocaml_Runtime[103],_cq7_,_cq6_)} - function _cqV_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_nw_,condition_2_du_832_25)} - var - _cqW_= - [0, - function(param) - {function _cqX_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_1$30)} - function _cqY_(param) - {switch(residence[0]) - {case 0:var _cqZ_=1;break; - case 1:var _cqZ_=1;break; - case 2:var _cqZ_=1;break; - case 3:var _cqZ_=1;break; - case 4:var _cqZ_=0;break; - case 5:var _cqZ_=0;break; - case 6:var _cqZ_=0;break; - case 7:var _cqZ_=0;break; - default:var _cqZ_=1} - var - _cq0_=caml_call1(Runtime_ocaml_Runtime[46],cst_6), - _cq1_= - caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_a_charge,_cq0_), - _cq2_=caml_call2(Runtime_ocaml_Runtime[83],_cq1_,_cqZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_nx_,_cq2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ny_,[0],_cqY_,_cqX_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_nz_,_cqW_,_cqV_,_cqU_)}], - _cqO_=caml_call4(Runtime_ocaml_Runtime[63],_nA_,_cqN_,_cqM_,_cqL_)} - catch(_cqT_) - {_cqT_ = caml_wrap_exception(_cqT_); - if(_cqT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nu_]; - throw _cqT_} - var - n_nombre_parts_d832_25_majorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_nB_,Runtime_ocaml_Runtime[15],_cqO_); - try - {var - _cqP_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[92], - n_nombre_parts_d832_25_base, - n_nombre_parts_d832_25_majorat)}, - _cqQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nD_,1)}, - _cqR_=caml_call4(Runtime_ocaml_Runtime[63],_nE_,[0],_cqQ_,_cqP_)} - catch(_cqS_) - {_cqS_ = caml_wrap_exception(_cqS_); - if(_cqS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nC_]; - throw _cqS_} - var - n_nombre_parts_d832_25= - caml_call3 - (Runtime_ocaml_Runtime[28],_nF_,Runtime_ocaml_Runtime[15],_cqR_); - return [0,n_nombre_parts_d832_25]} - function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_) - {var - nombre_personnes_a_charge=calcul_nombre_parts_accession_[1], - situation_familiale_calcul_apl=calcul_nombre_parts_accession_[2]; - try - {var - _cqo_= - function(param) - {var _cqs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqs_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_1_4$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_1_8$0); - var _cqt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqt_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$1); - var _cqu_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqu_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3$7); - var _cqv_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqv_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_3_7$1); - var _cqw_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$3); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cqw_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$1); - var - _cqx_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$4), - _cqy_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cqx_), - _cqz_=caml_call1(Runtime_ocaml_Runtime[69],_cqy_), - _cqA_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_5$3), - _cqB_=caml_call2(Runtime_ocaml_Runtime[103],_cqA_,_cqz_), - _cqC_=caml_call1(Runtime_ocaml_Runtime[39],cst_4_3$2); - return caml_call2(Runtime_ocaml_Runtime[92],_cqC_,_cqB_)}, - _cqp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_nH_,1)}, - _cqq_=caml_call4(Runtime_ocaml_Runtime[63],_nI_,[0],_cqp_,_cqo_)} - catch(_cqr_) - {_cqr_ = caml_wrap_exception(_cqr_); - if(_cqr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nG_]; - throw _cqr_} - var - n_nombre_parts_d832_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_nJ_,Runtime_ocaml_Runtime[15],_cqq_); - return [0,n_nombre_parts_d832_11]} - function ouverture_droits_retraite(ouverture_droits_retraite_in) - {var date_naissance_assure=ouverture_droits_retraite_in[1]; - try - {var - _cpE_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cpF_=function(param){return 0}, - _cpG_= - function(param) - {function _cqh_(param) - {var - _cqm_=caml_call3(Runtime_ocaml_Runtime[60],0,7,0), - _cqn_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_cqn_,_cqm_)} - function _cqi_(param) - {var - _cqj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1954), - _cqk_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _cql_=caml_call2(Runtime_ocaml_Runtime[86],_cqk_,_cqj_); - return caml_call2(Runtime_ocaml_Runtime[29],_nL_,_cql_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nM_,[0],_cqi_,_cqh_)}, - _cpH_= - function(param) - {function _cqa_(param) - {var - _cqf_=caml_call3(Runtime_ocaml_Runtime[60],0,2,0), - _cqg_=caml_call3(Runtime_ocaml_Runtime[60],61,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_cqg_,_cqf_)} - function _cqb_(param) - {var - _cqc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1953), - _cqd_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _cqe_=caml_call2(Runtime_ocaml_Runtime[86],_cqd_,_cqc_); - return caml_call2(Runtime_ocaml_Runtime[29],_nN_,_cqe_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nO_,[0],_cqb_,_cqa_)}, - _cpI_= - function(param) - {function _cp5_(param) - {var - _cp__=caml_call3(Runtime_ocaml_Runtime[60],0,9,0), - _cp$_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_cp$_,_cp__)} - function _cp6_(param) - {var - _cp7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1952), - _cp8_= - caml_call1(Runtime_ocaml_Runtime[74],date_naissance_assure), - _cp9_=caml_call2(Runtime_ocaml_Runtime[86],_cp8_,_cp7_); - return caml_call2(Runtime_ocaml_Runtime[29],_nP_,_cp9_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nQ_,[0],_cp6_,_cp5_)}, - _cpJ_= - function(param) - {function _cpW_(param) - {var - _cp3_=caml_call3(Runtime_ocaml_Runtime[60],0,4,0), - _cp4_=caml_call3(Runtime_ocaml_Runtime[60],60,0,0); - return caml_call2(Runtime_ocaml_Runtime[95],_cp4_,_cp3_)} - function _cpX_(param) - {var - _cpY_=caml_call3(Runtime_ocaml_Runtime[57],1951,12,31), - _cpZ_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_naissance_assure,_cpY_), - _cp0_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), - _cp1_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_naissance_assure,_cp0_), - _cp2_=caml_call2(Runtime_ocaml_Runtime[83],_cp1_,_cpZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_nR_,_cp2_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nS_,[0],_cpX_,_cpW_)}, - _cpK_= - function(param) - {function _cpS_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],60,0,0)} - function _cpT_(param) - {var - _cpU_=caml_call3(Runtime_ocaml_Runtime[57],1951,7,1), - _cpV_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_naissance_assure,_cpU_); - return caml_call2(Runtime_ocaml_Runtime[29],_nT_,_cpV_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nU_,[0],_cpT_,_cpS_)}, - _cpL_= - [0, - function(param) - {function _cpO_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],62,0,0)} - function _cpP_(param) - {var - _cpQ_=caml_call3(Runtime_ocaml_Runtime[57],1955,1,1), - _cpR_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_naissance_assure,_cpQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_nV_,_cpR_)} - return caml_call4(Runtime_ocaml_Runtime[63],_nW_,[0],_cpP_,_cpO_)}, - _cpK_, - _cpJ_, - _cpI_, - _cpH_, - _cpG_], - _cpM_=caml_call4(Runtime_ocaml_Runtime[63],_nX_,_cpL_,_cpF_,_cpE_)} - catch(_cpN_) - {_cpN_ = caml_wrap_exception(_cpN_); - if(_cpN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nK_]; - throw _cpN_} - var - age_ouverture_droit= - caml_call3 - (Runtime_ocaml_Runtime[28],_nY_,Runtime_ocaml_Runtime[17],_cpM_); - return [0,age_ouverture_droit]} - function impaye_depense_logement(impaye_depense_logement_in) - {var - mode_occupation=impaye_depense_logement_in[1], - aide_versee=impaye_depense_logement_in[2], - montant_apl=impaye_depense_logement_in[3], - montant_charges=impaye_depense_logement_in[4], - depense_logement=impaye_depense_logement_in[5], - montant_dette=impaye_depense_logement_in[6]; - try - {var - _com_= - function(param) - {switch(mode_occupation[0]) - {case 0:return _n0_; - case 1:return _n1_; - case 2:return _n2_; - case 3:return _n3_; - default:return _n4_}}, - _con_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_n5_,1)}, - _coo_=caml_call4(Runtime_ocaml_Runtime[63],_n6_,[0],_con_,_com_)} - catch(_cpD_) - {_cpD_ = caml_wrap_exception(_cpD_); - if(_cpD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_nZ_]; - throw _cpD_} - var - mode_occupation_impaye= - caml_call3 - (Runtime_ocaml_Runtime[28],_n7_,embed_mode_occupation_impaye,_coo_); - try - {var - _cop_=function(param){throw Runtime_ocaml_Runtime[2]}, - _coq_=function(param){return 0}, - _cor_= - [0, - function(param) - {function _cpw_(param){return depense_logement} - function _cpx_(param) - {var _cpC_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_n9_,_cpC_)} - var - _cpy_= - [0, - function(param) - {function _cpz_(param){return depense_logement} - function _cpA_(param) - {var _cpB_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_n__,_cpB_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_n$_,[0],_cpA_,_cpz_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_oa_,_cpy_,_cpx_,_cpw_)}], - _cos_=caml_call4(Runtime_ocaml_Runtime[63],_ob_,_cor_,_coq_,_cop_)} - catch(_cpv_) - {_cpv_ = caml_wrap_exception(_cpv_); - if(_cpv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_n8_]; - throw _cpv_} - var - depense_logement_brute= - caml_call3 - (Runtime_ocaml_Runtime[28],_oc_,embed_depense_logement,_cos_); - try - {var - _cot_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cou_=function(param){return 0}, - _cov_= - function(param) - {function _cpq_(param) - {switch(depense_logement[0]) - {case 0: - var - total_echeances=depense_logement[1], - _cpt_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$13), - _cpu_= - caml_call2(Runtime_ocaml_Runtime[104],montant_apl,_cpt_); - return [0, - caml_call2(Runtime_ocaml_Runtime[98],total_echeances,_cpu_)]; - case 1: - var mensualite=depense_logement[1]; - return [1, - caml_call2(Runtime_ocaml_Runtime[98],mensualite,montant_apl)]; - default:var loyer=depense_logement[1];return [2,loyer]}} - function _cpr_(param) - {var _cps_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_oe_,_cps_)} - return caml_call4(Runtime_ocaml_Runtime[63],_of_,[0],_cpr_,_cpq_)}, - _cow_= - [0, - function(param) - {function _cpn_(param) - {switch(depense_logement_brute[0]) - {case 0:var total=depense_logement_brute[1];return [0,total]; - case 1: - var mensualite=depense_logement_brute[1]; - return [1,mensualite]; - default: - var montant_loyer=depense_logement_brute[1]; - return [2, - caml_call2 - (Runtime_ocaml_Runtime[98],montant_loyer,montant_apl)]}} - function _cpo_(param) - {var _cpp_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_og_,_cpp_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oh_,[0],_cpo_,_cpn_)}, - _cov_], - _cox_=caml_call4(Runtime_ocaml_Runtime[63],_oi_,_cow_,_cou_,_cot_)} - catch(_cpm_) - {_cpm_ = caml_wrap_exception(_cpm_); - if(_cpm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_od_]; - throw _cpm_} - var - depense_logement_nette= - caml_call3 - (Runtime_ocaml_Runtime[28],_oj_,embed_depense_logement,_cox_); - try - {var - _coy_=function(param){throw Runtime_ocaml_Runtime[2]}, - _coz_=function(param){return 0}, - _coA_= - function(param) - {function _cpd_(param) - {switch(depense_logement_nette[0]) - {case 0: - var - echeance_pret_nette=depense_logement_nette[1], - _cpi_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$0), - _cpj_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$32), - _cpk_=caml_call2(Runtime_ocaml_Runtime[107],_cpj_,_cpi_); - return caml_call2 - (Runtime_ocaml_Runtime[104],echeance_pret_nette,_cpk_); - case 1: - var - mensualite_nette=depense_logement_nette[1], - _cpl_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$20); - return caml_call2 - (Runtime_ocaml_Runtime[104],mensualite_nette,_cpl_); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$79)}} - function _cpe_(param) - {switch(aide_versee[0]) - {case 0:var _cpf_=0;break; - case 1:var _cpf_=0;break; - default:var _cpf_=1} - var - _cpg_=0 === mode_occupation_impaye[0]?0:1, - _cph_=caml_call2(Runtime_ocaml_Runtime[83],_cpg_,_cpf_); - return caml_call2(Runtime_ocaml_Runtime[29],_ol_,_cph_)} - return caml_call4(Runtime_ocaml_Runtime[63],_om_,[0],_cpe_,_cpd_)}, - _coB_= - function(param) - {function _co6_(param) - {switch(depense_logement_brute[0]) - {case 0: - var - echeance_pret_brute=depense_logement_brute[1], - _co$_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$1), - _cpa_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$33), - _cpb_=caml_call2(Runtime_ocaml_Runtime[107],_cpa_,_co$_); - return caml_call2 - (Runtime_ocaml_Runtime[104],echeance_pret_brute,_cpb_); - case 1: - var - mensualite_brute=depense_logement_brute[1], - _cpc_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$21); - return caml_call2 - (Runtime_ocaml_Runtime[104],mensualite_brute,_cpc_); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$80)}} - function _co7_(param) - {switch(aide_versee[0]) - {case 0:var _co8_=0;break; - case 1:var _co8_=1;break; - default:var _co8_=0} - var - _co9_=0 === mode_occupation_impaye[0]?0:1, - _co__=caml_call2(Runtime_ocaml_Runtime[83],_co9_,_co8_); - return caml_call2(Runtime_ocaml_Runtime[29],_on_,_co__)} - return caml_call4(Runtime_ocaml_Runtime[63],_oo_,[0],_co7_,_co6_)}, - _coC_= - function(param) - {function _coZ_(param) - {switch(depense_logement_nette[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$81); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$82); - default: - var - loyer_net=depense_logement_nette[1], - _co4_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$22), - _co5_= - caml_call2 - (Runtime_ocaml_Runtime[93],loyer_net,montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104],_co5_,_co4_)}} - function _co0_(param) - {switch(aide_versee[0]) - {case 0:var _co1_=1;break; - case 1:var _co1_=0;break; - default:var _co1_=0} - var - _co2_=0 === mode_occupation_impaye[0]?1:0, - _co3_=caml_call2(Runtime_ocaml_Runtime[83],_co2_,_co1_); - return caml_call2(Runtime_ocaml_Runtime[29],_op_,_co3_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oq_,[0],_co0_,_coZ_)}, - _coD_= - [0, - function(param) - {function _coS_(param) - {switch(depense_logement_brute[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$83); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$84); - default: - var - loyer_brut=depense_logement_brute[1], - _coX_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$23), - _coY_= - caml_call2 - (Runtime_ocaml_Runtime[93],loyer_brut,montant_charges); - return caml_call2(Runtime_ocaml_Runtime[104],_coY_,_coX_)}} - function _coT_(param) - {switch(aide_versee[0]) - {case 0:var _coU_=0;break; - case 1:var _coU_=1;break; - default:var _coU_=0} - var - _coV_=0 === mode_occupation_impaye[0]?1:0, - _coW_=caml_call2(Runtime_ocaml_Runtime[83],_coV_,_coU_); - return caml_call2(Runtime_ocaml_Runtime[29],_or_,_coW_)} - return caml_call4(Runtime_ocaml_Runtime[63],_os_,[0],_coT_,_coS_)}, - _coC_, - _coB_, - _coA_], - _coE_=caml_call4(Runtime_ocaml_Runtime[63],_ot_,_coD_,_coz_,_coy_)} - catch(_coR_) - {_coR_ = caml_wrap_exception(_coR_); - if(_coR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ok_]; - throw _coR_} - var - seuil_impaye_depense_de_logeme= - caml_call3 - (Runtime_ocaml_Runtime[28],_ou_,Runtime_ocaml_Runtime[13],_coE_); - try - {var - _coF_=function(param){throw Runtime_ocaml_Runtime[2]}, - _coG_=function(param){return 0}, - _coH_= - [0, - function(param) - {function _coK_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ?montant_dette - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$85)} - function _coL_(param) - {var _coQ_=0 === mode_occupation_impaye[0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_ow_,_coQ_)} - var - _coM_= - [0, - function(param) - {function _coN_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - montant_dette, - seuil_impaye_depense_de_logeme) - ?montant_dette - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$86)} - function _coO_(param) - {var _coP_=0 === mode_occupation_impaye[0]?0:1; - return caml_call2(Runtime_ocaml_Runtime[29],_ox_,_coP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_oy_,[0],_coO_,_coN_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_oz_,_coM_,_coL_,_coK_)}], - _coI_=caml_call4(Runtime_ocaml_Runtime[63],_oA_,_coH_,_coG_,_coF_)} - catch(_coJ_) - {_coJ_ = caml_wrap_exception(_coJ_); - if(_coJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ov_]; - throw _coJ_} - var - montant_impaye= - caml_call3 - (Runtime_ocaml_Runtime[28],_oB_,Runtime_ocaml_Runtime[13],_coI_); - return [0,montant_impaye]} - function base_mensuelle_allocations_fam$5(base_mensuelle_allocations_fam) - {var date_courante=base_mensuelle_allocations_fam[1]; - try - {var - _cnO_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cnP_=function(param){return 0}, - _cnQ_= - function(param) - {function _coi_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_42228$0)} - function _coj_(param) - {var - _cok_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _col_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cok_); - return caml_call2(Runtime_ocaml_Runtime[29],_oD_,_col_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oE_,[0],_coj_,_coi_)}, - _cnR_= - function(param) - {function _cob_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41481$0)} - function _coc_(param) - {var - _cod_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,1), - _coe_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cod_), - _cof_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _cog_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cof_), - _coh_=caml_call2(Runtime_ocaml_Runtime[83],_cog_,_coe_); - return caml_call2(Runtime_ocaml_Runtime[29],_oF_,_coh_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oG_,[0],_coc_,_cob_)}, - _cnS_= - function(param) - {function _cn6_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41440$0)} - function _cn7_(param) - {var - _cn8_=caml_call3(Runtime_ocaml_Runtime[57],2021,4,1), - _cn9_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cn8_), - _cn__=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _cn$_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cn__), - _coa_=caml_call2(Runtime_ocaml_Runtime[83],_cn$_,_cn9_); - return caml_call2(Runtime_ocaml_Runtime[29],_oH_,_coa_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oI_,[0],_cn7_,_cn6_)}, - _cnT_= - [0, - function(param) - {function _cnZ_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_41316$0)} - function _cn0_(param) - {var - _cn1_=caml_call3(Runtime_ocaml_Runtime[57],2020,4,1), - _cn2_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cn1_), - _cn3_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _cn4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cn3_), - _cn5_=caml_call2(Runtime_ocaml_Runtime[83],_cn4_,_cn2_); - return caml_call2(Runtime_ocaml_Runtime[29],_oJ_,_cn5_)} - return caml_call4(Runtime_ocaml_Runtime[63],_oK_,[0],_cn0_,_cnZ_)}, - _cnS_, - _cnR_, - _cnQ_], - _cnU_=caml_call4(Runtime_ocaml_Runtime[63],_oL_,_cnT_,_cnP_,_cnO_)} - catch(_cnY_) - {_cnY_ = caml_wrap_exception(_cnY_); - if(_cnY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oC_]; - throw _cnY_} - var - montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_oM_,Runtime_ocaml_Runtime[13],_cnU_); - try - {var - _cnV_=caml_call3(Runtime_ocaml_Runtime[57],2019,4,1), - _cnW_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnV_)} - catch(_cnX_) - {_cnX_ = caml_wrap_exception(_cnX_); - if(_cnX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oN_]; - throw _cnX_} - if(_cnW_)return [0,montant]; - throw [0,Runtime_ocaml_Runtime[3],_oO_]} - function verification_age_inferieur_ou_$5(verification_age_inferieur_ou_) - {var - date_naissance=verification_age_inferieur_ou_[1], - date_courante=verification_age_inferieur_ou_[2], - annees=verification_age_inferieur_ou_[3]; - try - {var - _cnJ_= - function(param) - {var - _cnN_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[120],_cnN_,date_courante)}, - _cnK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oQ_,1)}, - _cnL_=caml_call4(Runtime_ocaml_Runtime[63],_oR_,[0],_cnK_,_cnJ_)} - catch(_cnM_) - {_cnM_ = caml_wrap_exception(_cnM_); - if(_cnM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oP_]; - throw _cnM_} - var - est_inferieur_ou_egal= - caml_call3 - (Runtime_ocaml_Runtime[28],_oS_,Runtime_ocaml_Runtime[12],_cnL_); - return [0,est_inferieur_ou_egal]} - function verification_age_superieur_a$1(verification_age_superieur_a_i) - {var - date_naissance=verification_age_superieur_a_i[1], - date_courante=verification_age_superieur_a_i[2], - annees=verification_age_superieur_a_i[3]; - try - {var - _cnE_= - function(param) - {var - _cnI_= - caml_call3(Runtime_ocaml_Runtime[94],0,date_naissance,annees); - return caml_call2(Runtime_ocaml_Runtime[125],_cnI_,date_courante)}, - _cnF_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_oU_,1)}, - _cnG_=caml_call4(Runtime_ocaml_Runtime[63],_oV_,[0],_cnF_,_cnE_)} - catch(_cnH_) - {_cnH_ = caml_wrap_exception(_cnH_); - if(_cnH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oT_]; - throw _cnH_} - var - est_superieur= - caml_call3 - (Runtime_ocaml_Runtime[28],_oW_,Runtime_ocaml_Runtime[12],_cnG_); - return [0,est_superieur]} - function smic$1(smic_in) - {var date_courante=smic_in[1],residence=smic_in[2]; - try - {var - _cjV_=function(param){throw Runtime_ocaml_Runtime[2]}, - _cjW_=function(param){return 0}, - _cjX_= - function(param) - {function _cny_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_851$0)} - function _cnz_(param) - {var - _cnA_=caml_call2(Runtime_ocaml_Runtime[86],residence,_oY_), - _cnB_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cnC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnB_), - _cnD_=caml_call2(Runtime_ocaml_Runtime[83],_cnC_,_cnA_); - return caml_call2(Runtime_ocaml_Runtime[29],_oZ_,_cnD_)} - return caml_call4(Runtime_ocaml_Runtime[63],_o0_,[0],_cnz_,_cny_)}, - _cjY_= - function(param) - {function _cne_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1127$0)} - function _cnf_(param) - {var - _cng_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o1_), - _cnh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o2_), - _cni_=caml_call2(Runtime_ocaml_Runtime[84],_cnh_,_cng_), - _cnj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o3_), - _cnk_=caml_call2(Runtime_ocaml_Runtime[84],_cnj_,_cni_), - _cnl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o4_), - _cnm_=caml_call2(Runtime_ocaml_Runtime[84],_cnl_,_cnk_), - _cnn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o5_), - _cno_=caml_call2(Runtime_ocaml_Runtime[84],_cnn_,_cnm_), - _cnp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o6_), - _cnq_=caml_call2(Runtime_ocaml_Runtime[84],_cnp_,_cno_), - _cnr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o7_), - _cns_=caml_call2(Runtime_ocaml_Runtime[84],_cnr_,_cnq_), - _cnt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o8_), - _cnu_=caml_call2(Runtime_ocaml_Runtime[84],_cnt_,_cns_), - _cnv_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cnw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnv_), - _cnx_=caml_call2(Runtime_ocaml_Runtime[83],_cnw_,_cnu_); - return caml_call2(Runtime_ocaml_Runtime[29],_o9_,_cnx_)} - return caml_call4(Runtime_ocaml_Runtime[63],_o__,[0],_cnf_,_cne_)}, - _cjZ_= - function(param) - {function _cm7_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_835$0)} - function _cm8_(param) - {var - _cm9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_o$_), - _cm__=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cm$_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cm__), - _cna_=caml_call2(Runtime_ocaml_Runtime[83],_cm$_,_cm9_), - _cnb_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cnc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cnb_), - _cnd_=caml_call2(Runtime_ocaml_Runtime[83],_cnc_,_cna_); - return caml_call2(Runtime_ocaml_Runtime[29],_pa_,_cnd_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pb_,[0],_cm8_,_cm7_)}, - _cj0_= - function(param) - {function _cmK_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1107$0)} - function _cmL_(param) - {var - _cmM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pc_), - _cmN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pd_), - _cmO_=caml_call2(Runtime_ocaml_Runtime[84],_cmN_,_cmM_), - _cmP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pe_), - _cmQ_=caml_call2(Runtime_ocaml_Runtime[84],_cmP_,_cmO_), - _cmR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pf_), - _cmS_=caml_call2(Runtime_ocaml_Runtime[84],_cmR_,_cmQ_), - _cmT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pg_), - _cmU_=caml_call2(Runtime_ocaml_Runtime[84],_cmT_,_cmS_), - _cmV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ph_), - _cmW_=caml_call2(Runtime_ocaml_Runtime[84],_cmV_,_cmU_), - _cmX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pi_), - _cmY_=caml_call2(Runtime_ocaml_Runtime[84],_cmX_,_cmW_), - _cmZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pj_), - _cm0_=caml_call2(Runtime_ocaml_Runtime[84],_cmZ_,_cmY_), - _cm1_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cm2_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cm1_), - _cm3_=caml_call2(Runtime_ocaml_Runtime[83],_cm2_,_cm0_), - _cm4_=caml_call3(Runtime_ocaml_Runtime[57],2022,8,1), - _cm5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cm4_), - _cm6_=caml_call2(Runtime_ocaml_Runtime[83],_cm5_,_cm3_); - return caml_call2(Runtime_ocaml_Runtime[29],_pk_,_cm6_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pl_,[0],_cmL_,_cmK_)}, - _cj1_= - function(param) - {function _cmB_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_819$0)} - function _cmC_(param) - {var - _cmD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pm_), - _cmE_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cmF_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cmE_), - _cmG_=caml_call2(Runtime_ocaml_Runtime[83],_cmF_,_cmD_), - _cmH_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cmI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmH_), - _cmJ_=caml_call2(Runtime_ocaml_Runtime[83],_cmI_,_cmG_); - return caml_call2(Runtime_ocaml_Runtime[29],_pn_,_cmJ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_po_,[0],_cmC_,_cmB_)}, - _cj2_= - function(param) - {function _cme_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1085$0)} - function _cmf_(param) - {var - _cmg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pp_), - _cmh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pq_), - _cmi_=caml_call2(Runtime_ocaml_Runtime[84],_cmh_,_cmg_), - _cmj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pr_), - _cmk_=caml_call2(Runtime_ocaml_Runtime[84],_cmj_,_cmi_), - _cml_=caml_call2(Runtime_ocaml_Runtime[86],residence,_ps_), - _cmm_=caml_call2(Runtime_ocaml_Runtime[84],_cml_,_cmk_), - _cmn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pt_), - _cmo_=caml_call2(Runtime_ocaml_Runtime[84],_cmn_,_cmm_), - _cmp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pu_), - _cmq_=caml_call2(Runtime_ocaml_Runtime[84],_cmp_,_cmo_), - _cmr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pv_), - _cms_=caml_call2(Runtime_ocaml_Runtime[84],_cmr_,_cmq_), - _cmt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pw_), - _cmu_=caml_call2(Runtime_ocaml_Runtime[84],_cmt_,_cms_), - _cmv_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,31), - _cmw_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cmv_), - _cmx_=caml_call2(Runtime_ocaml_Runtime[83],_cmw_,_cmu_), - _cmy_=caml_call3(Runtime_ocaml_Runtime[57],2022,5,1), - _cmz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmy_), - _cmA_=caml_call2(Runtime_ocaml_Runtime[83],_cmz_,_cmx_); - return caml_call2(Runtime_ocaml_Runtime[29],_px_,_cmA_)} - return caml_call4(Runtime_ocaml_Runtime[63],_py_,[0],_cmf_,_cme_)}, - _cj3_= - function(param) - {function _cl7_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_798$0)} - function _cl8_(param) - {var - _cl9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pz_), - _cl__=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cl$_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cl__), - _cma_=caml_call2(Runtime_ocaml_Runtime[83],_cl$_,_cl9_), - _cmb_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cmc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cmb_), - _cmd_=caml_call2(Runtime_ocaml_Runtime[83],_cmc_,_cma_); - return caml_call2(Runtime_ocaml_Runtime[29],_pA_,_cmd_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pB_,[0],_cl8_,_cl7_)}, - _cj4_= - function(param) - {function _clK_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1057$0)} - function _clL_(param) - {var - _clM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pC_), - _clN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pD_), - _clO_=caml_call2(Runtime_ocaml_Runtime[84],_clN_,_clM_), - _clP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pE_), - _clQ_=caml_call2(Runtime_ocaml_Runtime[84],_clP_,_clO_), - _clR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pF_), - _clS_=caml_call2(Runtime_ocaml_Runtime[84],_clR_,_clQ_), - _clT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pG_), - _clU_=caml_call2(Runtime_ocaml_Runtime[84],_clT_,_clS_), - _clV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pH_), - _clW_=caml_call2(Runtime_ocaml_Runtime[84],_clV_,_clU_), - _clX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pI_), - _clY_=caml_call2(Runtime_ocaml_Runtime[84],_clX_,_clW_), - _clZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pJ_), - _cl0_=caml_call2(Runtime_ocaml_Runtime[84],_clZ_,_clY_), - _cl1_=caml_call3(Runtime_ocaml_Runtime[57],2022,4,30), - _cl2_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cl1_), - _cl3_=caml_call2(Runtime_ocaml_Runtime[83],_cl2_,_cl0_), - _cl4_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cl5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cl4_), - _cl6_=caml_call2(Runtime_ocaml_Runtime[83],_cl5_,_cl3_); - return caml_call2(Runtime_ocaml_Runtime[29],_pK_,_cl6_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pL_,[0],_clL_,_clK_)}, - _cj5_= - function(param) - {function _clB_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_774$0)} - function _clC_(param) - {var - _clD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pM_), - _clE_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _clF_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clE_), - _clG_=caml_call2(Runtime_ocaml_Runtime[83],_clF_,_clD_), - _clH_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _clI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clH_), - _clJ_=caml_call2(Runtime_ocaml_Runtime[83],_clI_,_clG_); - return caml_call2(Runtime_ocaml_Runtime[29],_pN_,_clJ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pO_,[0],_clC_,_clB_)}, - _cj6_= - function(param) - {function _cle_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1025$0)} - function _clf_(param) - {var - _clg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pP_), - _clh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pQ_), - _cli_=caml_call2(Runtime_ocaml_Runtime[84],_clh_,_clg_), - _clj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pR_), - _clk_=caml_call2(Runtime_ocaml_Runtime[84],_clj_,_cli_), - _cll_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pS_), - _clm_=caml_call2(Runtime_ocaml_Runtime[84],_cll_,_clk_), - _cln_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pT_), - _clo_=caml_call2(Runtime_ocaml_Runtime[84],_cln_,_clm_), - _clp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pU_), - _clq_=caml_call2(Runtime_ocaml_Runtime[84],_clp_,_clo_), - _clr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pV_), - _cls_=caml_call2(Runtime_ocaml_Runtime[84],_clr_,_clq_), - _clt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pW_), - _clu_=caml_call2(Runtime_ocaml_Runtime[84],_clt_,_cls_), - _clv_=caml_call3(Runtime_ocaml_Runtime[57],2021,12,31), - _clw_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_clv_), - _clx_=caml_call2(Runtime_ocaml_Runtime[83],_clw_,_clu_), - _cly_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _clz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cly_), - _clA_=caml_call2(Runtime_ocaml_Runtime[83],_clz_,_clx_); - return caml_call2(Runtime_ocaml_Runtime[29],_pX_,_clA_)} - return caml_call4(Runtime_ocaml_Runtime[63],_pY_,[0],_clf_,_cle_)}, - _cj7_= - function(param) - {function _ck7_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_766$0)} - function _ck8_(param) - {var - _ck9_=caml_call2(Runtime_ocaml_Runtime[86],residence,_pZ_), - _ck__=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _ck$_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ck__), - _cla_=caml_call2(Runtime_ocaml_Runtime[83],_ck$_,_ck9_), - _clb_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _clc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_clb_), - _cld_=caml_call2(Runtime_ocaml_Runtime[83],_clc_,_cla_); - return caml_call2(Runtime_ocaml_Runtime[29],_p0_,_cld_)} - return caml_call4(Runtime_ocaml_Runtime[63],_p1_,[0],_ck8_,_ck7_)}, - _cj8_= - function(param) - {function _ckK_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1015$0)} - function _ckL_(param) - {var - _ckM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p2_), - _ckN_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p3_), - _ckO_=caml_call2(Runtime_ocaml_Runtime[84],_ckN_,_ckM_), - _ckP_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p4_), - _ckQ_=caml_call2(Runtime_ocaml_Runtime[84],_ckP_,_ckO_), - _ckR_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p5_), - _ckS_=caml_call2(Runtime_ocaml_Runtime[84],_ckR_,_ckQ_), - _ckT_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p6_), - _ckU_=caml_call2(Runtime_ocaml_Runtime[84],_ckT_,_ckS_), - _ckV_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p7_), - _ckW_=caml_call2(Runtime_ocaml_Runtime[84],_ckV_,_ckU_), - _ckX_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p8_), - _ckY_=caml_call2(Runtime_ocaml_Runtime[84],_ckX_,_ckW_), - _ckZ_=caml_call2(Runtime_ocaml_Runtime[86],residence,_p9_), - _ck0_=caml_call2(Runtime_ocaml_Runtime[84],_ckZ_,_ckY_), - _ck1_=caml_call3(Runtime_ocaml_Runtime[57],2020,12,31), - _ck2_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ck1_), - _ck3_=caml_call2(Runtime_ocaml_Runtime[83],_ck2_,_ck0_), - _ck4_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _ck5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ck4_), - _ck6_=caml_call2(Runtime_ocaml_Runtime[83],_ck5_,_ck3_); - return caml_call2(Runtime_ocaml_Runtime[29],_p__,_ck6_)} - return caml_call4(Runtime_ocaml_Runtime[63],_p$_,[0],_ckL_,_ckK_)}, - _cj9_= - function(param) - {function _ckB_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_757$0)} - function _ckC_(param) - {var - _ckD_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qa_), - _ckE_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _ckF_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckE_), - _ckG_=caml_call2(Runtime_ocaml_Runtime[83],_ckF_,_ckD_), - _ckH_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _ckI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ckH_), - _ckJ_=caml_call2(Runtime_ocaml_Runtime[83],_ckI_,_ckG_); - return caml_call2(Runtime_ocaml_Runtime[29],_qb_,_ckJ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_qc_,[0],_ckC_,_ckB_)}, - _cj__= - [0, - function(param) - {function _cke_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1003$0)} - function _ckf_(param) - {var - _ckg_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qd_), - _ckh_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qe_), - _cki_=caml_call2(Runtime_ocaml_Runtime[84],_ckh_,_ckg_), - _ckj_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qf_), - _ckk_=caml_call2(Runtime_ocaml_Runtime[84],_ckj_,_cki_), - _ckl_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qg_), - _ckm_=caml_call2(Runtime_ocaml_Runtime[84],_ckl_,_ckk_), - _ckn_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qh_), - _cko_=caml_call2(Runtime_ocaml_Runtime[84],_ckn_,_ckm_), - _ckp_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qi_), - _ckq_=caml_call2(Runtime_ocaml_Runtime[84],_ckp_,_cko_), - _ckr_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qj_), - _cks_=caml_call2(Runtime_ocaml_Runtime[84],_ckr_,_ckq_), - _ckt_=caml_call2(Runtime_ocaml_Runtime[86],residence,_qk_), - _cku_=caml_call2(Runtime_ocaml_Runtime[84],_ckt_,_cks_), - _ckv_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _ckw_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_ckv_), - _ckx_=caml_call2(Runtime_ocaml_Runtime[83],_ckw_,_cku_), - _cky_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _ckz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cky_), - _ckA_=caml_call2(Runtime_ocaml_Runtime[83],_ckz_,_ckx_); - return caml_call2(Runtime_ocaml_Runtime[29],_ql_,_ckA_)} - return caml_call4(Runtime_ocaml_Runtime[63],_qm_,[0],_ckf_,_cke_)}, - _cj9_, - _cj8_, - _cj7_, - _cj6_, - _cj5_, - _cj4_, - _cj3_, - _cj2_, - _cj1_, - _cj0_, - _cjZ_, - _cjY_, - _cjX_], - _cj$_=caml_call4(Runtime_ocaml_Runtime[63],_qn_,_cj__,_cjW_,_cjV_)} - catch(_ckd_) - {_ckd_ = caml_wrap_exception(_ckd_); - if(_ckd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_oX_]; - throw _ckd_} - var - brut_horaire= - caml_call3 - (Runtime_ocaml_Runtime[28],_qo_,Runtime_ocaml_Runtime[13],_cj$_); - try - {var - _cka_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _ckb_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cka_)} - catch(_ckc_) - {_ckc_ = caml_wrap_exception(_ckc_); - if(_ckc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qp_]; - throw _ckc_} - if(_ckb_)return [0,brut_horaire]; - throw [0,Runtime_ocaml_Runtime[3],_qq_]} - function arrondi_centaine_superieure(ressources_menage) - {var - _cjP_=caml_call1(Runtime_ocaml_Runtime[39],cst_100), - _cjQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_49), - _cjR_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01), - _cjS_=caml_call2(Runtime_ocaml_Runtime[104],ressources_menage,_cjR_), - _cjT_=caml_call2(Runtime_ocaml_Runtime[93],_cjS_,_cjQ_), - _cjU_=caml_call1(Runtime_ocaml_Runtime[77],_cjT_); - return caml_call2(Runtime_ocaml_Runtime[104],_cjU_,_cjP_)} - function traitement_nul_tout_le_temps(aide_finale) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$87)} - function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge) - {var - loyer_principal_base=calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], - beneficiaire_aide_adulte_ou_en=calcul_aide_personnalisee_loge[3], - date_courante=calcul_aide_personnalisee_loge[4], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[5], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[6], - zone=calcul_aide_personnalisee_loge[7], - logement_est_chambre=calcul_aide_personnalisee_loge[8], - agees_ou_handicap_adultes_hebe=calcul_aide_personnalisee_loge[9], - type_aide=calcul_aide_personnalisee_loge[10], - colocation=calcul_aide_personnalisee_loge[11], - reduction_loyer_solidarite=calcul_aide_personnalisee_loge[12], - logement_meuble_d842_2=calcul_aide_personnalisee_loge[13], - residence=calcul_aide_personnalisee_loge[14]; - try - {var - _bUr_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_98)}, - _bUs_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qs_,1)}, - _bUt_=caml_call4(Runtime_ocaml_Runtime[63],_qt_,[0],_bUs_,_bUr_)} - catch(_cjO_) - {_cjO_ = caml_wrap_exception(_cjO_); - if(_cjO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qr_]; - throw _cjO_} - var - fraction_l832_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_qu_,Runtime_ocaml_Runtime[15],_bUt_); - try - {var - _bUu_=function(param){return date_courante}, - _bUv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qw_,1)}, - _bUw_=caml_call4(Runtime_ocaml_Runtime[63],_qx_,[0],_bUv_,_bUu_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_qy_,Runtime_ocaml_Runtime[16],_bUw_)} - catch(_cjN_) - {_cjN_ = caml_wrap_exception(_cjN_); - if(_cjN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qv_]; - throw _cjN_} - var - _bUx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_qz_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_qA_,_bUx_), - contributions_sociales_dot_mon=result[1]; - try - {var - _bUy_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500)}, - _bUz_= - function(param) - {var - _cjL_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _cjM_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjL_); - return caml_call2(Runtime_ocaml_Runtime[29],_qC_,_cjM_)}, - _bUA_=caml_call4(Runtime_ocaml_Runtime[63],_qD_,[0],_bUz_,_bUy_)} - catch(_cjK_) - {_cjK_ = caml_wrap_exception(_cjK_); - if(_cjK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qB_]; - throw _cjK_} - var - montant_forfaitaire_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_qE_,Runtime_ocaml_Runtime[13],_bUA_); - try - {var - _bUB_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bUC_=function(param){return 0}, - _bUD_= - [0, - function(param) - {function _cjq_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _cjr_(param) - {var - _cjI_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cjJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjI_); - return caml_call2(Runtime_ocaml_Runtime[29],_qG_,_cjJ_)} - var - _cjs_= - [0, - function(param) - {function _cjt_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _cju_(param) - {var - _cjD_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cjE_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cjD_), - _cjF_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cjG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjF_), - _cjH_=caml_call2(Runtime_ocaml_Runtime[83],_cjG_,_cjE_); - return caml_call2(Runtime_ocaml_Runtime[29],_qH_,_cjH_)} - var - _cjv_= - [0, - function(param) - {function _cjw_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _cjx_(param) - {var - _cjy_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cjz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjy_), - _cjA_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cjB_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cjA_), - _cjC_=caml_call2(Runtime_ocaml_Runtime[83],_cjB_,_cjz_); - return caml_call2(Runtime_ocaml_Runtime[29],_qI_,_cjC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_qJ_,[0],_cjx_,_cjw_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_qK_,_cjv_,_cju_,_cjt_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_qL_,_cjs_,_cjr_,_cjq_)}], - _bUE_=caml_call4(Runtime_ocaml_Runtime[63],_qM_,_bUD_,_bUC_,_bUB_)} - catch(_cjp_) - {_cjp_ = caml_wrap_exception(_cjp_); - if(_cjp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qF_]; - throw _cjp_} - var - multiplicateur_majoration_char= - caml_call3 - (Runtime_ocaml_Runtime[28],_qN_,Runtime_ocaml_Runtime[15],_bUE_); - try - {var - _bUF_= - function(param) - {switch(type_aide[0]) - {case 0:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$88); - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000); - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$0)}}, - _bUG_= - function(param) - {var - _cjn_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _cjo_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cjn_); - return caml_call2(Runtime_ocaml_Runtime[29],_qP_,_cjo_)}, - _bUH_=caml_call4(Runtime_ocaml_Runtime[63],_qQ_,[0],_bUG_,_bUF_)} - catch(_cjm_) - {_cjm_ = caml_wrap_exception(_cjm_); - if(_cjm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qO_]; - throw _cjm_} - var - montant_minimal_aide_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_qR_,Runtime_ocaml_Runtime[13],_bUH_); - try - {var - _bUI_= - function(param) - {if(! logement_meuble_d842_2)return loyer_principal_base; - var - _cjj_=caml_call1(Runtime_ocaml_Runtime[39],cst_3$9), - _cjk_=caml_call1(Runtime_ocaml_Runtime[39],cst_2$24), - _cjl_=caml_call2(Runtime_ocaml_Runtime[107],_cjk_,_cjj_); - return caml_call2 - (Runtime_ocaml_Runtime[104],loyer_principal_base,_cjl_)}, - _bUJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_qT_,1)}, - _bUK_=caml_call4(Runtime_ocaml_Runtime[63],_qU_,[0],_bUJ_,_bUI_)} - catch(_cji_) - {_cji_ = caml_wrap_exception(_cji_); - if(_cji_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qS_]; - throw _cji_} - var - loyer_principal_avec_reduction= - caml_call3 - (Runtime_ocaml_Runtime[28],_qV_,Runtime_ocaml_Runtime[13],_bUK_); - try - {var - _bUL_= - function(param) - {function _cik_(param){throw Runtime_ocaml_Runtime[2]} - function _cil_(param){return 0} - var - _cim_= - [0, - function(param) - {function _cin_(param) - {var _ci7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315); - var _ci8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci8_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027); - var _ci9_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci9_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238); - var _ci__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci__)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201); - var _ci$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ci$_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185); - var _cja_=caml_call1(Runtime_ocaml_Runtime[46],cst_5); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cja_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179); - var _cjb_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$2); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cjb_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173); - var - _cjc_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$3), - _cjd_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cjc_), - _cje_=caml_call1(Runtime_ocaml_Runtime[69],_cjd_), - _cjf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006), - _cjg_=caml_call2(Runtime_ocaml_Runtime[103],_cjf_,_cje_), - _cjh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$0); - return caml_call2(Runtime_ocaml_Runtime[97],_cjh_,_cjg_)} - function _cio_(param) - {var - _ci5_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ci6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ci5_); - return caml_call2(Runtime_ocaml_Runtime[29],_qX_,_ci6_)} - var - _cip_= - [0, - function(param) - {function _ciq_(param) - {var _ciS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$0); - var _ciT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciT_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$0); - var _ciU_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciU_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$0); - var _ciV_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciV_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$0); - var _ciW_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciW_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$0); - var _ciX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$0); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciX_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$0); - var _ciY_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$4); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciY_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$1); - var - _ciZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$5), - _ci0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ciZ_), - _ci1_=caml_call1(Runtime_ocaml_Runtime[69],_ci0_), - _ci2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$0), - _ci3_=caml_call2(Runtime_ocaml_Runtime[103],_ci2_,_ci1_), - _ci4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$2); - return caml_call2(Runtime_ocaml_Runtime[97],_ci4_,_ci3_)} - function _cir_(param) - {var - _ciN_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ciO_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ciN_), - _ciP_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ciQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ciP_), - _ciR_=caml_call2(Runtime_ocaml_Runtime[83],_ciQ_,_ciO_); - return caml_call2(Runtime_ocaml_Runtime[29],_qY_,_ciR_)} - var - _cis_= - [0, - function(param) - {function _cit_(param) - {var _ciA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0283$1) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0315$1); - var _ciB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciB_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_027$1); - var _ciC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciC_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$1); - var _ciD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciD_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0201$1); - var _ciE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciE_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0185$1); - var _ciF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$1); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciF_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0179$1); - var _ciG_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$6); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ciG_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$3); - var - _ciH_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$7), - _ciI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ciH_), - _ciJ_=caml_call1(Runtime_ocaml_Runtime[69],_ciI_), - _ciK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$1), - _ciL_=caml_call2(Runtime_ocaml_Runtime[103],_ciK_,_ciJ_), - _ciM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0173$4); - return caml_call2(Runtime_ocaml_Runtime[97],_ciM_,_ciL_)} - function _ciu_(param) - {var - _civ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ciw_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_civ_), - _cix_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _ciy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cix_), - _ciz_=caml_call2(Runtime_ocaml_Runtime[83],_ciy_,_ciw_); - return caml_call2(Runtime_ocaml_Runtime[29],_qZ_,_ciz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_q0_,[0],_ciu_,_cit_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q1_,_cis_,_cir_,_ciq_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q2_,_cip_,_cio_,_cin_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q3_,_cim_,_cil_,_cik_)}, - _bUM_=function(param){return 1}, - _bUN_= - [0, - function(param) - {function _cgJ_(param){throw Runtime_ocaml_Runtime[2]} - function _cgK_(param){return 0} - function _cgL_(param) - {function _cg7_(param) - {var _cie_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cie_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299); - var _cif_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cif_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$2); - var _cig_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cig_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217); - var _cih_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$13); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cih_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194); - var _cii_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$8); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cii_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018); - var _cij_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cij_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162)} - function _cg8_(param) - {switch(residence[0]) - {case 0:var _ch9_=1;break; - case 1:var _ch9_=0;break; - case 2:var _ch9_=1;break; - case 3:var _ch9_=1;break; - case 4:var _ch9_=1;break; - case 5:var _ch9_=1;break; - case 6:var _ch9_=0;break; - case 7:var _ch9_=0;break; - default:var _ch9_=1} - var - _ch__=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _ch$_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ch__), - _cia_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cib_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cia_), - _cic_=caml_call2(Runtime_ocaml_Runtime[83],_cib_,_ch$_), - _cid_=caml_call2(Runtime_ocaml_Runtime[83],_cic_,_ch9_); - return caml_call2(Runtime_ocaml_Runtime[29],_q4_,_cid_)} - var - _cg9_= - [0, - function(param) - {function _cg__(param) - {var _ch3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$0); - var _ch4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch4_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$3); - var _ch5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch5_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$0); - var _ch6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch6_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$0); - var _ch7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$9); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch7_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$0); - var _ch8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$3); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_ch8_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$0)} - function _cg$_(param) - {switch(residence[0]) - {case 0:var _chW_=1;break; - case 1:var _chW_=0;break; - case 2:var _chW_=1;break; - case 3:var _chW_=1;break; - case 4:var _chW_=1;break; - case 5:var _chW_=1;break; - case 6:var _chW_=0;break; - case 7:var _chW_=0;break; - default:var _chW_=1} - var - _chX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _chY_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chX_), - _chZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _ch0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chZ_), - _ch1_=caml_call2(Runtime_ocaml_Runtime[83],_ch0_,_chY_), - _ch2_=caml_call2(Runtime_ocaml_Runtime[83],_ch1_,_chW_); - return caml_call2(Runtime_ocaml_Runtime[29],_q5_,_ch2_)} - var - _cha_= - [0, - function(param) - {function _chb_(param) - {var _chQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$1) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$1); - var _chR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chR_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$4); - var _chS_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chS_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$1); - var _chT_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chT_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$1); - var _chU_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$10); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chU_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$1); - var _chV_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$4); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chV_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$1) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$1)} - function _chc_(param) - {switch(residence[0]) - {case 0:var _chJ_=1;break; - case 1:var _chJ_=0;break; - case 2:var _chJ_=1;break; - case 3:var _chJ_=1;break; - case 4:var _chJ_=1;break; - case 5:var _chJ_=1;break; - case 6:var _chJ_=0;break; - case 7:var _chJ_=0;break; - default:var _chJ_=1} - var - _chK_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _chL_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chK_), - _chM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _chN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chM_), - _chO_=caml_call2(Runtime_ocaml_Runtime[83],_chN_,_chL_), - _chP_=caml_call2(Runtime_ocaml_Runtime[83],_chO_,_chJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_q6_,_chP_)} - var - _chd_= - [0, - function(param) - {function _che_(param) - {var _chD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chD_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$2) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$2); - var _chE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chE_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$5); - var _chF_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chF_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$2); - var _chG_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chG_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$2); - var _chH_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$11); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chH_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$2); - var _chI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$5); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chI_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$2) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$2)} - function _chf_(param) - {switch(residence[0]) - {case 0:var _chw_=1;break; - case 1:var _chw_=0;break; - case 2:var _chw_=1;break; - case 3:var _chw_=1;break; - case 4:var _chw_=1;break; - case 5:var _chw_=1;break; - case 6:var _chw_=0;break; - case 7:var _chw_=0;break; - default:var _chw_=1} - var - _chx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _chy_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chx_), - _chz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _chA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chz_), - _chB_=caml_call2(Runtime_ocaml_Runtime[83],_chA_,_chy_), - _chC_=caml_call2(Runtime_ocaml_Runtime[83],_chB_,_chw_); - return caml_call2(Runtime_ocaml_Runtime[29],_q7_,_chC_)} - var - _chg_= - [0, - function(param) - {function _chh_(param) - {var _chq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chq_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$3) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$3); - var _chr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chr_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$6); - var _chs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chs_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$3); - var _cht_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cht_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$3); - var _chu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$12); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chu_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$3); - var _chv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$6); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_chv_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$3) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$3)} - function _chi_(param) - {switch(residence[0]) - {case 0:var _chj_=1;break; - case 1:var _chj_=0;break; - case 2:var _chj_=1;break; - case 3:var _chj_=1;break; - case 4:var _chj_=1;break; - case 5:var _chj_=1;break; - case 6:var _chj_=0;break; - case 7:var _chj_=0;break; - default:var _chj_=1} - var - _chk_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _chl_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_chk_), - _chm_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _chn_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_chm_), - _cho_=caml_call2(Runtime_ocaml_Runtime[83],_chn_,_chl_), - _chp_=caml_call2(Runtime_ocaml_Runtime[83],_cho_,_chj_); - return caml_call2(Runtime_ocaml_Runtime[29],_q8_,_chp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_q9_,[0],_chi_,_chh_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q__,_chg_,_chf_,_che_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_q$_,_chd_,_chc_,_chb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ra_,_cha_,_cg$_,_cg__)}]; + (Runtime_ocaml_Runtime[121], + nombre_personnes_a_charge, + _ca4_), + _ca6_ = caml_call2(Runtime_ocaml_Runtime[83], _ca5_, _ca3_); + return caml_call2(Runtime_ocaml_Runtime[29], _bV_, _ca6_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_rb_,_cg9_,_cg8_,_cg7_)} + (Runtime_ocaml_Runtime[63], _bW_, [0], _ca2_, _ca1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _bX_, _ca0_, _caZ_, _caY_); + }], + _caR_ = caml_call4(Runtime_ocaml_Runtime[63], _bY_, _caQ_, _caP_, _caO_); + } + catch(_caX_){ + var _caN_ = caml_wrap_exception(_caX_); + if(_caN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _bS_], 1); + throw caml_maybe_attach_backtrace(_caN_, 0); + } + var + n_nombre_parts_d832_25_majorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _bZ_, Runtime_ocaml_Runtime[15], _caR_); + try{ + var + _caT_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[92], + n_nombre_parts_d832_25_base, + n_nombre_parts_d832_25_majorat); + }, + _caU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b1_, 1); + }, + _caV_ = caml_call4(Runtime_ocaml_Runtime[63], _b2_, [0], _caU_, _caT_); + } + catch(_caW_){ + var _caS_ = caml_wrap_exception(_caW_); + if(_caS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b0_], 1); + throw caml_maybe_attach_backtrace(_caS_, 0); + } + var + n_nombre_parts_d832_25 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b3_, Runtime_ocaml_Runtime[15], _caV_); + return [0, n_nombre_parts_d832_25]; + } + function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ + var + nombre_personnes_a_charge = calcul_nombre_parts_accession_[1], + situation_familiale_calcul_apl = calcul_nombre_parts_accession_[2]; + try{ + var + _cao_ = + function(param){ + var _cas_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cas_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_1_4$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_1_8$0); + var _cat_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cat_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$1); + var _cau_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cau_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3$3); + var _cav_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$4); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _cav_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_3_7$1); + var _caw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$3); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _caw_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$1); + var + _cax_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$4), + _cay_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _cax_), + _caz_ = caml_call1(Runtime_ocaml_Runtime[69], _cay_), + _caA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_5$1), + _caB_ = caml_call2(Runtime_ocaml_Runtime[103], _caA_, _caz_), + _caC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4_3$2); + return caml_call2(Runtime_ocaml_Runtime[92], _caC_, _caB_); + }, + _cap_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _b5_, 1); + }, + _caq_ = caml_call4(Runtime_ocaml_Runtime[63], _b6_, [0], _cap_, _cao_); + } + catch(_car_){ + var _can_ = caml_wrap_exception(_car_); + if(_can_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b4_], 1); + throw caml_maybe_attach_backtrace(_can_, 0); + } + var + n_nombre_parts_d832_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _b7_, Runtime_ocaml_Runtime[15], _caq_); + return [0, n_nombre_parts_d832_11]; + } + function ouverture_droits_retraite(ouverture_droits_retraite_in){ + var date_naissance_assure = ouverture_droits_retraite_in[1]; + try{ + var + _b$D_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b$E_ = function(param){return 0;}, + _b$F_ = + function(param){ + function _cag_(param){ + var + _cal_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 7, 0), + _cam_ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _cam_, _cal_); + } + function _cah_(param){ + var + _cai_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1954), + _caj_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _cak_ = caml_call2(Runtime_ocaml_Runtime[86], _caj_, _cai_); + return caml_call2(Runtime_ocaml_Runtime[29], _b9_, _cak_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _b__, [0], _cah_, _cag_); + }, + _b$G_ = + function(param){ + function _b$$_(param){ + var + _cae_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 2, 0), + _caf_ = caml_call3(Runtime_ocaml_Runtime[60], 61, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _caf_, _cae_); + } + function _caa_(param){ + var + _cab_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1953), + _cac_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _cad_ = caml_call2(Runtime_ocaml_Runtime[86], _cac_, _cab_); + return caml_call2(Runtime_ocaml_Runtime[29], _b$_, _cad_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ca_, [0], _caa_, _b$$_); + }, + _b$H_ = + function(param){ + function _b$4_(param){ + var + _b$9_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 9, 0), + _b$__ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _b$__, _b$9_); + } + function _b$5_(param){ + var + _b$6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1952), + _b$7_ = + caml_call1(Runtime_ocaml_Runtime[74], date_naissance_assure), + _b$8_ = caml_call2(Runtime_ocaml_Runtime[86], _b$7_, _b$6_); + return caml_call2(Runtime_ocaml_Runtime[29], _cb_, _b$8_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cc_, [0], _b$5_, _b$4_); + }, + _b$I_ = + function(param){ + function _b$V_(param){ + var + _b$2_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 4, 0), + _b$3_ = caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + return caml_call2(Runtime_ocaml_Runtime[95], _b$3_, _b$2_); + } + function _b$W_(param){ + var + _b$X_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 12, 31), + _b$Y_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_naissance_assure, _b$X_), + _b$Z_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), + _b$0_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_naissance_assure, _b$Z_), + _b$1_ = caml_call2(Runtime_ocaml_Runtime[83], _b$0_, _b$Y_); + return caml_call2(Runtime_ocaml_Runtime[29], _cd_, _b$1_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ce_, [0], _b$W_, _b$V_); + }, + _b$J_ = + function(param){ + function _b$R_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 60, 0, 0); + } + function _b$S_(param){ + var + _b$T_ = caml_call3(Runtime_ocaml_Runtime[57], 1951, 7, 1), + _b$U_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_naissance_assure, _b$T_); + return caml_call2(Runtime_ocaml_Runtime[29], _cf_, _b$U_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cg_, [0], _b$S_, _b$R_); + }, + _b$K_ = + [0, + function(param){ + function _b$N_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 62, 0, 0); + } + function _b$O_(param){ + var + _b$P_ = caml_call3(Runtime_ocaml_Runtime[57], 1955, 1, 1), + _b$Q_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_naissance_assure, _b$P_); + return caml_call2(Runtime_ocaml_Runtime[29], _ch_, _b$Q_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ci_, [0], _b$O_, _b$N_); + }, + _b$J_, + _b$I_, + _b$H_, + _b$G_, + _b$F_], + _b$L_ = caml_call4(Runtime_ocaml_Runtime[63], _cj_, _b$K_, _b$E_, _b$D_); + } + catch(_b$M_){ + var _b$C_ = caml_wrap_exception(_b$M_); + if(_b$C_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _b8_], 1); + throw caml_maybe_attach_backtrace(_b$C_, 0); + } + var + age_ouverture_droit = + caml_call3 + (Runtime_ocaml_Runtime[28], _ck_, Runtime_ocaml_Runtime[17], _b$L_); + return [0, age_ouverture_droit]; + } + function impaye_depense_logement(impaye_depense_logement_in){ + var + mode_occupation = impaye_depense_logement_in[1], + aide_versee = impaye_depense_logement_in[2], + montant_apl = impaye_depense_logement_in[3], + montant_charges = impaye_depense_logement_in[4], + depense_logement = impaye_depense_logement_in[5], + montant_dette = impaye_depense_logement_in[6]; + try{ + var + _b_g_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + return _cm_; + case 1: + return _cn_; + case 2: + return _co_; + case 3: + return _cp_; + default: return _cq_; + } + }, + _b_h_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _cr_, 1); + }, + _b_i_ = caml_call4(Runtime_ocaml_Runtime[63], _cs_, [0], _b_h_, _b_g_); + } + catch(_b$B_){ + var _b_f_ = caml_wrap_exception(_b$B_); + if(_b_f_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cl_], 1); + throw caml_maybe_attach_backtrace(_b_f_, 0); + } + var + mode_occupation_impaye = + caml_call3 + (Runtime_ocaml_Runtime[28], _ct_, embed_mode_occupation_impaye, _b_i_); + try{ + var + _b_k_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b_l_ = function(param){return 0;}, + _b_m_ = + [0, + function(param){ + function _b$u_(param){return depense_logement;} + function _b$v_(param){ + var _b$A_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cv_, _b$A_); + } + var + _b$w_ = + [0, + function(param){ + function _b$x_(param){return depense_logement;} + function _b$y_(param){ + var _b$z_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cw_, _b$z_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cx_, [0], _b$y_, _b$x_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cy_, _b$w_, _b$v_, _b$u_); + }], + _b_n_ = caml_call4(Runtime_ocaml_Runtime[63], _cz_, _b_m_, _b_l_, _b_k_); + } + catch(_b$t_){ + var _b_j_ = caml_wrap_exception(_b$t_); + if(_b_j_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cu_], 1); + throw caml_maybe_attach_backtrace(_b_j_, 0); + } + var + depense_logement_brute = + caml_call3 + (Runtime_ocaml_Runtime[28], _cA_, embed_depense_logement, _b_n_); + try{ + var + _b_p_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b_q_ = function(param){return 0;}, + _b_r_ = + function(param){ + function _b$o_(param){ + switch(depense_logement[0]){ + case 0: var - _cgM_= - [0, - function(param) - {function _cgN_(param) - {var _cgT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$97); + total_echeances = depense_logement[1], + _b$r_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$1), + _b$s_ = + caml_call2(Runtime_ocaml_Runtime[104], montant_apl, _b$r_); + return [0, + caml_call2 + (Runtime_ocaml_Runtime[98], total_echeances, _b$s_)]; + case 1: + var mensualite = depense_logement[1]; + return [1, + caml_call2 + (Runtime_ocaml_Runtime[98], mensualite, montant_apl)]; + default: var loyer = depense_logement[1]; return [2, loyer]; + } + } + function _b$p_(param){ + var _b$q_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cC_, _b$q_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cD_, [0], _b$p_, _b$o_); + }, + _b_s_ = + [0, + function(param){ + function _b$l_(param){ + switch(depense_logement_brute[0]){ + case 0: + var total = depense_logement_brute[1]; return [0, total]; + case 1: + var mensualite = depense_logement_brute[1]; + return [1, mensualite]; + default: + var montant_loyer = depense_logement_brute[1]; + return [2, + caml_call2 + (Runtime_ocaml_Runtime[98], montant_loyer, montant_apl)]; + } + } + function _b$m_(param){ + var _b$n_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cE_, _b$n_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cF_, [0], _b$m_, _b$l_); + }, + _b_r_], + _b_t_ = caml_call4(Runtime_ocaml_Runtime[63], _cG_, _b_s_, _b_q_, _b_p_); + } + catch(_b$k_){ + var _b_o_ = caml_wrap_exception(_b$k_); + if(_b_o_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cB_], 1); + throw caml_maybe_attach_backtrace(_b_o_, 0); + } + var + depense_logement_nette = + caml_call3 + (Runtime_ocaml_Runtime[28], _cH_, embed_depense_logement, _b_t_); + try{ + var + _b_v_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b_w_ = function(param){return 0;}, + _b_x_ = + function(param){ + function _b$b_(param){ + switch(depense_logement_nette[0]){ + case 0: + var + echeance_pret_nette = depense_logement_nette[1], + _b$g_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$0), + _b$h_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$3), + _b$i_ = caml_call2(Runtime_ocaml_Runtime[107], _b$h_, _b$g_); + return caml_call2 + (Runtime_ocaml_Runtime[104], echeance_pret_nette, _b$i_); + case 1: + var + mensualite_nette = depense_logement_nette[1], + _b$j_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$2); + return caml_call2 + (Runtime_ocaml_Runtime[104], mensualite_nette, _b$j_); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$11); + } + } + function _b$c_(param){ + switch(aide_versee[0]){ + case 0: + var _b$d_ = 0; break; + case 1: + var _b$d_ = 0; break; + default: var _b$d_ = 1; + } + var + _b$e_ = 0 === mode_occupation_impaye[0] ? 0 : 1, + _b$f_ = caml_call2(Runtime_ocaml_Runtime[83], _b$e_, _b$d_); + return caml_call2(Runtime_ocaml_Runtime[29], _cJ_, _b$f_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cK_, [0], _b$c_, _b$b_); + }, + _b_y_ = + function(param){ + function _b_4_(param){ + switch(depense_logement_brute[0]){ + case 0: + var + echeance_pret_brute = depense_logement_brute[1], + _b_9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$1), + _b___ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$4), + _b_$_ = caml_call2(Runtime_ocaml_Runtime[107], _b___, _b_9_); + return caml_call2 + (Runtime_ocaml_Runtime[104], echeance_pret_brute, _b_$_); + case 1: + var + mensualite_brute = depense_logement_brute[1], + _b$a_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$3); + return caml_call2 + (Runtime_ocaml_Runtime[104], mensualite_brute, _b$a_); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$12); + } + } + function _b_5_(param){ + switch(aide_versee[0]){ + case 0: + var _b_6_ = 0; break; + case 1: + var _b_6_ = 1; break; + default: var _b_6_ = 0; + } + var + _b_7_ = 0 === mode_occupation_impaye[0] ? 0 : 1, + _b_8_ = caml_call2(Runtime_ocaml_Runtime[83], _b_7_, _b_6_); + return caml_call2(Runtime_ocaml_Runtime[29], _cL_, _b_8_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cM_, [0], _b_5_, _b_4_); + }, + _b_z_ = + function(param){ + function _b_X_(param){ + switch(depense_logement_nette[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$13); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$14); + default: + var + loyer_net = depense_logement_nette[1], + _b_2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$4), + _b_3_ = + caml_call2 + (Runtime_ocaml_Runtime[93], loyer_net, montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104], _b_3_, _b_2_); + } + } + function _b_Y_(param){ + switch(aide_versee[0]){ + case 0: + var _b_Z_ = 1; break; + case 1: + var _b_Z_ = 0; break; + default: var _b_Z_ = 0; + } + var + _b_0_ = 0 === mode_occupation_impaye[0] ? 1 : 0, + _b_1_ = caml_call2(Runtime_ocaml_Runtime[83], _b_0_, _b_Z_); + return caml_call2(Runtime_ocaml_Runtime[29], _cN_, _b_1_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _cO_, [0], _b_Y_, _b_X_); + }, + _b_A_ = + [0, + function(param){ + function _b_Q_(param){ + switch(depense_logement_brute[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$15); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$16); + default: + var + loyer_brut = depense_logement_brute[1], + _b_V_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$5), + _b_W_ = + caml_call2 + (Runtime_ocaml_Runtime[93], loyer_brut, montant_charges); + return caml_call2(Runtime_ocaml_Runtime[104], _b_W_, _b_V_); + } + } + function _b_R_(param){ + switch(aide_versee[0]){ + case 0: + var _b_S_ = 0; break; + case 1: + var _b_S_ = 1; break; + default: var _b_S_ = 0; + } + var + _b_T_ = 0 === mode_occupation_impaye[0] ? 1 : 0, + _b_U_ = caml_call2(Runtime_ocaml_Runtime[83], _b_T_, _b_S_); + return caml_call2(Runtime_ocaml_Runtime[29], _cP_, _b_U_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cQ_, [0], _b_R_, _b_Q_); + }, + _b_z_, + _b_y_, + _b_x_], + _b_B_ = caml_call4(Runtime_ocaml_Runtime[63], _cR_, _b_A_, _b_w_, _b_v_); + } + catch(_b_P_){ + var _b_u_ = caml_wrap_exception(_b_P_); + if(_b_u_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cI_], 1); + throw caml_maybe_attach_backtrace(_b_u_, 0); + } + var + seuil_impaye_depense_de_logeme = + caml_call3 + (Runtime_ocaml_Runtime[28], _cS_, Runtime_ocaml_Runtime[13], _b_B_); + try{ + var + _b_D_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b_E_ = function(param){return 0;}, + _b_F_ = + [0, + function(param){ + function _b_I_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ? montant_dette + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$17); + } + function _b_J_(param){ + var _b_O_ = 0 === mode_occupation_impaye[0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _cU_, _b_O_); + } + var + _b_K_ = + [0, + function(param){ + function _b_L_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + montant_dette, + seuil_impaye_depense_de_logeme) + ? montant_dette + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$18); + } + function _b_M_(param){ + var _b_N_ = 0 === mode_occupation_impaye[0] ? 0 : 1; + return caml_call2(Runtime_ocaml_Runtime[29], _cV_, _b_N_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _cW_, [0], _b_M_, _b_L_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _cX_, _b_K_, _b_J_, _b_I_); + }], + _b_G_ = caml_call4(Runtime_ocaml_Runtime[63], _cY_, _b_F_, _b_E_, _b_D_); + } + catch(_b_H_){ + var _b_C_ = caml_wrap_exception(_b_H_); + if(_b_C_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _cT_], 1); + throw caml_maybe_attach_backtrace(_b_C_, 0); + } + var + montant_impaye = + caml_call3 + (Runtime_ocaml_Runtime[28], _cZ_, Runtime_ocaml_Runtime[13], _b_G_); + return [0, montant_impaye]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + var date_courante = base_mensuelle_allocations_fam[1]; + try{ + var + _b9G_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b9H_ = function(param){return 0;}, + _b9I_ = + function(param){ + function _b_b_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_42228); + } + function _b_c_(param){ + var + _b_d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _b_e_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b_d_); + return caml_call2(Runtime_ocaml_Runtime[29], _c1_, _b_e_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c2_, [0], _b_c_, _b_b_); + }, + _b9J_ = + function(param){ + function _b96_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41481); + } + function _b97_(param){ + var + _b98_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 1), + _b99_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b98_), + _b9__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _b9$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9__), + _b_a_ = caml_call2(Runtime_ocaml_Runtime[83], _b9$_, _b99_); + return caml_call2(Runtime_ocaml_Runtime[29], _c3_, _b_a_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c4_, [0], _b97_, _b96_); + }, + _b9K_ = + function(param){ + function _b9Z_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41440); + } + function _b90_(param){ + var + _b91_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 4, 1), + _b92_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b91_), + _b93_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _b94_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b93_), + _b95_ = caml_call2(Runtime_ocaml_Runtime[83], _b94_, _b92_); + return caml_call2(Runtime_ocaml_Runtime[29], _c5_, _b95_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _c6_, [0], _b90_, _b9Z_); + }, + _b9L_ = + [0, + function(param){ + function _b9S_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_41316); + } + function _b9T_(param){ + var + _b9U_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 4, 1), + _b9V_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b9U_), + _b9W_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _b9X_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9W_), + _b9Y_ = caml_call2(Runtime_ocaml_Runtime[83], _b9X_, _b9V_); + return caml_call2(Runtime_ocaml_Runtime[29], _c7_, _b9Y_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _c8_, [0], _b9T_, _b9S_); + }, + _b9K_, + _b9J_, + _b9I_], + _b9M_ = caml_call4(Runtime_ocaml_Runtime[63], _c9_, _b9L_, _b9H_, _b9G_); + } + catch(_b9R_){ + var _b9F_ = caml_wrap_exception(_b9R_); + if(_b9F_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c0_], 1); + throw caml_maybe_attach_backtrace(_b9F_, 0); + } + var + montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _c__, Runtime_ocaml_Runtime[13], _b9M_); + try{ + var + _b9O_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 4, 1), + _b9P_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9O_); + } + catch(_b9Q_){ + var _b9N_ = caml_wrap_exception(_b9Q_); + if(_b9N_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _c$_], 1); + throw caml_maybe_attach_backtrace(_b9N_, 0); + } + if(_b9P_) return [0, montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _da_], 1); + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){ + var + date_naissance = verification_age_inferieur_ou_[1], + date_courante = verification_age_inferieur_ou_[2], + annees = verification_age_inferieur_ou_[3]; + try{ + var + _b9A_ = + function(param){ + var + _b9E_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[120], _b9E_, date_courante); + }, + _b9B_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dc_, 1); + }, + _b9C_ = caml_call4(Runtime_ocaml_Runtime[63], _dd_, [0], _b9B_, _b9A_); + } + catch(_b9D_){ + var _b9z_ = caml_wrap_exception(_b9D_); + if(_b9z_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _db_], 1); + throw caml_maybe_attach_backtrace(_b9z_, 0); + } + var + est_inferieur_ou_egal = + caml_call3 + (Runtime_ocaml_Runtime[28], _de_, Runtime_ocaml_Runtime[12], _b9C_); + return [0, est_inferieur_ou_egal]; + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + date_naissance = verification_age_superieur_a_i[1], + date_courante = verification_age_superieur_a_i[2], + annees = verification_age_superieur_a_i[3]; + try{ + var + _b9u_ = + function(param){ + var + _b9y_ = + caml_call3(Runtime_ocaml_Runtime[94], 0, date_naissance, annees); + return caml_call2(Runtime_ocaml_Runtime[125], _b9y_, date_courante); + }, + _b9v_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _dg_, 1); + }, + _b9w_ = caml_call4(Runtime_ocaml_Runtime[63], _dh_, [0], _b9v_, _b9u_); + } + catch(_b9x_){ + var _b9t_ = caml_wrap_exception(_b9x_); + if(_b9t_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _df_], 1); + throw caml_maybe_attach_backtrace(_b9t_, 0); + } + var + est_superieur = + caml_call3 + (Runtime_ocaml_Runtime[28], _di_, Runtime_ocaml_Runtime[12], _b9w_); + return [0, est_superieur]; + } + function smic(smic_in){ + var date_courante = smic_in[1], residence = smic_in[2]; + try{ + var + _b5J_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _b5K_ = function(param){return 0;}, + _b5L_ = + function(param){ + function _b9n_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_851); + } + function _b9o_(param){ + var + _b9p_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dk_), + _b9q_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b9r_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9q_), + _b9s_ = caml_call2(Runtime_ocaml_Runtime[83], _b9r_, _b9p_); + return caml_call2(Runtime_ocaml_Runtime[29], _dl_, _b9s_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dm_, [0], _b9o_, _b9n_); + }, + _b5M_ = + function(param){ + function _b85_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1127); + } + function _b86_(param){ + var + _b87_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dn_), + _b88_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _do_), + _b89_ = caml_call2(Runtime_ocaml_Runtime[84], _b88_, _b87_), + _b8__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dp_), + _b8$_ = caml_call2(Runtime_ocaml_Runtime[84], _b8__, _b89_), + _b9a_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dq_), + _b9b_ = caml_call2(Runtime_ocaml_Runtime[84], _b9a_, _b8$_), + _b9c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dr_), + _b9d_ = caml_call2(Runtime_ocaml_Runtime[84], _b9c_, _b9b_), + _b9e_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ds_), + _b9f_ = caml_call2(Runtime_ocaml_Runtime[84], _b9e_, _b9d_), + _b9g_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dt_), + _b9h_ = caml_call2(Runtime_ocaml_Runtime[84], _b9g_, _b9f_), + _b9i_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _du_), + _b9j_ = caml_call2(Runtime_ocaml_Runtime[84], _b9i_, _b9h_), + _b9k_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b9l_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b9k_), + _b9m_ = caml_call2(Runtime_ocaml_Runtime[83], _b9l_, _b9j_); + return caml_call2(Runtime_ocaml_Runtime[29], _dv_, _b9m_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dw_, [0], _b86_, _b85_); + }, + _b5N_ = + function(param){ + function _b8W_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_835); + } + function _b8X_(param){ + var + _b8Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dx_), + _b8Z_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b80_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8Z_), + _b81_ = caml_call2(Runtime_ocaml_Runtime[83], _b80_, _b8Y_), + _b82_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _b83_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b82_), + _b84_ = caml_call2(Runtime_ocaml_Runtime[83], _b83_, _b81_); + return caml_call2(Runtime_ocaml_Runtime[29], _dy_, _b84_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dz_, [0], _b8X_, _b8W_); + }, + _b5O_ = + function(param){ + function _b8z_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1107); + } + function _b8A_(param){ + var + _b8B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dA_), + _b8C_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dB_), + _b8D_ = caml_call2(Runtime_ocaml_Runtime[84], _b8C_, _b8B_), + _b8E_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dC_), + _b8F_ = caml_call2(Runtime_ocaml_Runtime[84], _b8E_, _b8D_), + _b8G_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dD_), + _b8H_ = caml_call2(Runtime_ocaml_Runtime[84], _b8G_, _b8F_), + _b8I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dE_), + _b8J_ = caml_call2(Runtime_ocaml_Runtime[84], _b8I_, _b8H_), + _b8K_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dF_), + _b8L_ = caml_call2(Runtime_ocaml_Runtime[84], _b8K_, _b8J_), + _b8M_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dG_), + _b8N_ = caml_call2(Runtime_ocaml_Runtime[84], _b8M_, _b8L_), + _b8O_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dH_), + _b8P_ = caml_call2(Runtime_ocaml_Runtime[84], _b8O_, _b8N_), + _b8Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b8R_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8Q_), + _b8S_ = caml_call2(Runtime_ocaml_Runtime[83], _b8R_, _b8P_), + _b8T_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 8, 1), + _b8U_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8T_), + _b8V_ = caml_call2(Runtime_ocaml_Runtime[83], _b8U_, _b8S_); + return caml_call2(Runtime_ocaml_Runtime[29], _dI_, _b8V_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dJ_, [0], _b8A_, _b8z_); + }, + _b5P_ = + function(param){ + function _b8q_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_819); + } + function _b8r_(param){ + var + _b8s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dK_), + _b8t_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _b8u_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8t_), + _b8v_ = caml_call2(Runtime_ocaml_Runtime[83], _b8u_, _b8s_), + _b8w_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _b8x_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8w_), + _b8y_ = caml_call2(Runtime_ocaml_Runtime[83], _b8x_, _b8v_); + return caml_call2(Runtime_ocaml_Runtime[29], _dL_, _b8y_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dM_, [0], _b8r_, _b8q_); + }, + _b5Q_ = + function(param){ + function _b75_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1085); + } + function _b76_(param){ + var + _b77_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dN_), + _b78_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dO_), + _b79_ = caml_call2(Runtime_ocaml_Runtime[84], _b78_, _b77_), + _b7__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dP_), + _b7$_ = caml_call2(Runtime_ocaml_Runtime[84], _b7__, _b79_), + _b8a_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dQ_), + _b8b_ = caml_call2(Runtime_ocaml_Runtime[84], _b8a_, _b7$_), + _b8c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dR_), + _b8d_ = caml_call2(Runtime_ocaml_Runtime[84], _b8c_, _b8b_), + _b8e_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dS_), + _b8f_ = caml_call2(Runtime_ocaml_Runtime[84], _b8e_, _b8d_), + _b8g_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dT_), + _b8h_ = caml_call2(Runtime_ocaml_Runtime[84], _b8g_, _b8f_), + _b8i_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dU_), + _b8j_ = caml_call2(Runtime_ocaml_Runtime[84], _b8i_, _b8h_), + _b8k_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 31), + _b8l_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b8k_), + _b8m_ = caml_call2(Runtime_ocaml_Runtime[83], _b8l_, _b8j_), + _b8n_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 5, 1), + _b8o_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b8n_), + _b8p_ = caml_call2(Runtime_ocaml_Runtime[83], _b8o_, _b8m_); + return caml_call2(Runtime_ocaml_Runtime[29], _dV_, _b8p_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dW_, [0], _b76_, _b75_); + }, + _b5R_ = + function(param){ + function _b7W_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_798); + } + function _b7X_(param){ + var + _b7Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _dX_), + _b7Z_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _b70_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7Z_), + _b71_ = caml_call2(Runtime_ocaml_Runtime[83], _b70_, _b7Y_), + _b72_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b73_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b72_), + _b74_ = caml_call2(Runtime_ocaml_Runtime[83], _b73_, _b71_); + return caml_call2(Runtime_ocaml_Runtime[29], _dY_, _b74_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _dZ_, [0], _b7X_, _b7W_); + }, + _b5S_ = + function(param){ + function _b7z_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1057); + } + function _b7A_(param){ + var + _b7B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d0_), + _b7C_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d1_), + _b7D_ = caml_call2(Runtime_ocaml_Runtime[84], _b7C_, _b7B_), + _b7E_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d2_), + _b7F_ = caml_call2(Runtime_ocaml_Runtime[84], _b7E_, _b7D_), + _b7G_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d3_), + _b7H_ = caml_call2(Runtime_ocaml_Runtime[84], _b7G_, _b7F_), + _b7I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d4_), + _b7J_ = caml_call2(Runtime_ocaml_Runtime[84], _b7I_, _b7H_), + _b7K_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d5_), + _b7L_ = caml_call2(Runtime_ocaml_Runtime[84], _b7K_, _b7J_), + _b7M_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d6_), + _b7N_ = caml_call2(Runtime_ocaml_Runtime[84], _b7M_, _b7L_), + _b7O_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d7_), + _b7P_ = caml_call2(Runtime_ocaml_Runtime[84], _b7O_, _b7N_), + _b7Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 4, 30), + _b7R_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7Q_), + _b7S_ = caml_call2(Runtime_ocaml_Runtime[83], _b7R_, _b7P_), + _b7T_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b7U_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7T_), + _b7V_ = caml_call2(Runtime_ocaml_Runtime[83], _b7U_, _b7S_); + return caml_call2(Runtime_ocaml_Runtime[29], _d8_, _b7V_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _d9_, [0], _b7A_, _b7z_); + }, + _b5T_ = + function(param){ + function _b7q_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774); + } + function _b7r_(param){ + var + _b7s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _d__), + _b7t_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _b7u_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7t_), + _b7v_ = caml_call2(Runtime_ocaml_Runtime[83], _b7u_, _b7s_), + _b7w_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _b7x_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7w_), + _b7y_ = caml_call2(Runtime_ocaml_Runtime[83], _b7x_, _b7v_); + return caml_call2(Runtime_ocaml_Runtime[29], _d$_, _b7y_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ea_, [0], _b7r_, _b7q_); + }, + _b5U_ = + function(param){ + function _b65_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1025); + } + function _b66_(param){ + var + _b67_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eb_), + _b68_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ec_), + _b69_ = caml_call2(Runtime_ocaml_Runtime[84], _b68_, _b67_), + _b6__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ed_), + _b6$_ = caml_call2(Runtime_ocaml_Runtime[84], _b6__, _b69_), + _b7a_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ee_), + _b7b_ = caml_call2(Runtime_ocaml_Runtime[84], _b7a_, _b6$_), + _b7c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ef_), + _b7d_ = caml_call2(Runtime_ocaml_Runtime[84], _b7c_, _b7b_), + _b7e_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eg_), + _b7f_ = caml_call2(Runtime_ocaml_Runtime[84], _b7e_, _b7d_), + _b7g_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eh_), + _b7h_ = caml_call2(Runtime_ocaml_Runtime[84], _b7g_, _b7f_), + _b7i_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ei_), + _b7j_ = caml_call2(Runtime_ocaml_Runtime[84], _b7i_, _b7h_), + _b7k_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 12, 31), + _b7l_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b7k_), + _b7m_ = caml_call2(Runtime_ocaml_Runtime[83], _b7l_, _b7j_), + _b7n_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _b7o_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b7n_), + _b7p_ = caml_call2(Runtime_ocaml_Runtime[83], _b7o_, _b7m_); + return caml_call2(Runtime_ocaml_Runtime[29], _ej_, _b7p_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ek_, [0], _b66_, _b65_); + }, + _b5V_ = + function(param){ + function _b6W_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_766); + } + function _b6X_(param){ + var + _b6Y_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _el_), + _b6Z_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _b60_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6Z_), + _b61_ = caml_call2(Runtime_ocaml_Runtime[83], _b60_, _b6Y_), + _b62_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b63_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b62_), + _b64_ = caml_call2(Runtime_ocaml_Runtime[83], _b63_, _b61_); + return caml_call2(Runtime_ocaml_Runtime[29], _em_, _b64_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _en_, [0], _b6X_, _b6W_); + }, + _b5W_ = + function(param){ + function _b6z_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1015); + } + function _b6A_(param){ + var + _b6B_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eo_), + _b6C_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ep_), + _b6D_ = caml_call2(Runtime_ocaml_Runtime[84], _b6C_, _b6B_), + _b6E_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eq_), + _b6F_ = caml_call2(Runtime_ocaml_Runtime[84], _b6E_, _b6D_), + _b6G_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _er_), + _b6H_ = caml_call2(Runtime_ocaml_Runtime[84], _b6G_, _b6F_), + _b6I_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _es_), + _b6J_ = caml_call2(Runtime_ocaml_Runtime[84], _b6I_, _b6H_), + _b6K_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _et_), + _b6L_ = caml_call2(Runtime_ocaml_Runtime[84], _b6K_, _b6J_), + _b6M_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eu_), + _b6N_ = caml_call2(Runtime_ocaml_Runtime[84], _b6M_, _b6L_), + _b6O_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ev_), + _b6P_ = caml_call2(Runtime_ocaml_Runtime[84], _b6O_, _b6N_), + _b6Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 12, 31), + _b6R_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6Q_), + _b6S_ = caml_call2(Runtime_ocaml_Runtime[83], _b6R_, _b6P_), + _b6T_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b6U_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6T_), + _b6V_ = caml_call2(Runtime_ocaml_Runtime[83], _b6U_, _b6S_); + return caml_call2(Runtime_ocaml_Runtime[29], _ew_, _b6V_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ex_, [0], _b6A_, _b6z_); + }, + _b5X_ = + function(param){ + function _b6q_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_757); + } + function _b6r_(param){ + var + _b6s_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _ey_), + _b6t_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _b6u_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6t_), + _b6v_ = caml_call2(Runtime_ocaml_Runtime[83], _b6u_, _b6s_), + _b6w_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b6x_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6w_), + _b6y_ = caml_call2(Runtime_ocaml_Runtime[83], _b6x_, _b6v_); + return caml_call2(Runtime_ocaml_Runtime[29], _ez_, _b6y_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _eA_, [0], _b6r_, _b6q_); + }, + _b5Y_ = + [0, + function(param){ + function _b55_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1003); + } + function _b56_(param){ + var + _b57_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eB_), + _b58_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eC_), + _b59_ = caml_call2(Runtime_ocaml_Runtime[84], _b58_, _b57_), + _b5__ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eD_), + _b5$_ = caml_call2(Runtime_ocaml_Runtime[84], _b5__, _b59_), + _b6a_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eE_), + _b6b_ = caml_call2(Runtime_ocaml_Runtime[84], _b6a_, _b5$_), + _b6c_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eF_), + _b6d_ = caml_call2(Runtime_ocaml_Runtime[84], _b6c_, _b6b_), + _b6e_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eG_), + _b6f_ = caml_call2(Runtime_ocaml_Runtime[84], _b6e_, _b6d_), + _b6g_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eH_), + _b6h_ = caml_call2(Runtime_ocaml_Runtime[84], _b6g_, _b6f_), + _b6i_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _eI_), + _b6j_ = caml_call2(Runtime_ocaml_Runtime[84], _b6i_, _b6h_), + _b6k_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + _b6l_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b6k_), + _b6m_ = caml_call2(Runtime_ocaml_Runtime[83], _b6l_, _b6j_), + _b6n_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b6o_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b6n_), + _b6p_ = caml_call2(Runtime_ocaml_Runtime[83], _b6o_, _b6m_); + return caml_call2(Runtime_ocaml_Runtime[29], _eJ_, _b6p_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _eK_, [0], _b56_, _b55_); + }, + _b5X_, + _b5W_, + _b5V_, + _b5U_, + _b5T_, + _b5S_, + _b5R_, + _b5Q_, + _b5P_, + _b5O_, + _b5N_, + _b5M_, + _b5L_], + _b5Z_ = caml_call4(Runtime_ocaml_Runtime[63], _eL_, _b5Y_, _b5K_, _b5J_); + } + catch(_b54_){ + var _b5I_ = caml_wrap_exception(_b54_); + if(_b5I_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _dj_], 1); + throw caml_maybe_attach_backtrace(_b5I_, 0); + } + var + brut_horaire = + caml_call3 + (Runtime_ocaml_Runtime[28], _eM_, Runtime_ocaml_Runtime[13], _b5Z_); + try{ + var + _b51_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _b52_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b51_); + } + catch(_b53_){ + var _b50_ = caml_wrap_exception(_b53_); + if(_b50_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eN_], 1); + throw caml_maybe_attach_backtrace(_b50_, 0); + } + if(_b52_) return [0, brut_horaire]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _eO_], 1); + } + function arrondi_centaine_superieure(ressources_menage){ + var + _b5C_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100), + _b5D_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49), + _b5E_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01), + _b5F_ = caml_call2(Runtime_ocaml_Runtime[104], ressources_menage, _b5E_), + _b5G_ = caml_call2(Runtime_ocaml_Runtime[93], _b5F_, _b5D_), + _b5H_ = caml_call1(Runtime_ocaml_Runtime[77], _b5G_); + return caml_call2(Runtime_ocaml_Runtime[104], _b5H_, _b5C_); + } + function traitement_nul_tout_le_temps(aide_finale){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$19); + } + function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ + var + loyer_principal_base = calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], + beneficiaire_aide_adulte_ou_en = calcul_aide_personnalisee_loge[3], + date_courante = calcul_aide_personnalisee_loge[4], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[5], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[6], + zone = calcul_aide_personnalisee_loge[7], + logement_est_chambre = calcul_aide_personnalisee_loge[8], + agees_ou_handicap_adultes_hebe = calcul_aide_personnalisee_loge[9], + type_aide = calcul_aide_personnalisee_loge[10], + colocation = calcul_aide_personnalisee_loge[11], + reduction_loyer_solidarite = calcul_aide_personnalisee_loge[12], + logement_meuble_d842_2 = calcul_aide_personnalisee_loge[13], + residence = calcul_aide_personnalisee_loge[14]; + try{ + var + _bDJ_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_98); + }, + _bDK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eQ_, 1); + }, + _bDL_ = caml_call4(Runtime_ocaml_Runtime[63], _eR_, [0], _bDK_, _bDJ_); + } + catch(_b5B_){ + var _bDI_ = caml_wrap_exception(_b5B_); + if(_bDI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eP_], 1); + throw caml_maybe_attach_backtrace(_bDI_, 0); + } + var + fraction_l832_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _eS_, Runtime_ocaml_Runtime[15], _bDL_); + try{ + var + _bDN_ = function(param){return date_courante;}, + _bDO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _eU_, 1); + }, + _bDP_ = caml_call4(Runtime_ocaml_Runtime[63], _eV_, [0], _bDO_, _bDN_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _eW_, Runtime_ocaml_Runtime[16], _bDP_); + } + catch(_b5A_){ + var _bDM_ = caml_wrap_exception(_b5A_); + if(_bDM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eT_], 1); + throw caml_maybe_attach_backtrace(_bDM_, 0); + } + var + _bDQ_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _eX_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _eY_, _bDQ_), + contributions_sociales_dot_mon = result[1]; + try{ + var + _bDS_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500); + }, + _bDT_ = + function(param){ + var + _b5y_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _b5z_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5y_); + return caml_call2(Runtime_ocaml_Runtime[29], _e0_, _b5z_); + }, + _bDU_ = caml_call4(Runtime_ocaml_Runtime[63], _e1_, [0], _bDT_, _bDS_); + } + catch(_b5x_){ + var _bDR_ = caml_wrap_exception(_b5x_); + if(_bDR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _eZ_], 1); + throw caml_maybe_attach_backtrace(_bDR_, 0); + } + var + montant_forfaitaire_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _e2_, Runtime_ocaml_Runtime[13], _bDU_); + try{ + var + _bDW_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bDX_ = function(param){return 0;}, + _bDY_ = + [0, + function(param){ + function _b5d_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b5e_(param){ + var + _b5v_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b5w_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5v_); + return caml_call2(Runtime_ocaml_Runtime[29], _e4_, _b5w_); + } + var + _b5f_ = + [0, + function(param){ + function _b5g_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b5h_(param){ + var + _b5q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b5r_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5q_), + _b5s_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b5t_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5s_), + _b5u_ = caml_call2(Runtime_ocaml_Runtime[83], _b5t_, _b5r_); + return caml_call2(Runtime_ocaml_Runtime[29], _e5_, _b5u_); + } + var + _b5i_ = + [0, + function(param){ + function _b5j_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _b5k_(param){ + var + _b5l_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b5m_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5l_), + _b5n_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b5o_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b5n_), + _b5p_ = caml_call2(Runtime_ocaml_Runtime[83], _b5o_, _b5m_); + return caml_call2(Runtime_ocaml_Runtime[29], _e6_, _b5p_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _e7_, [0], _b5k_, _b5j_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _e8_, _b5i_, _b5h_, _b5g_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _e9_, _b5f_, _b5e_, _b5d_); + }], + _bDZ_ = caml_call4(Runtime_ocaml_Runtime[63], _e__, _bDY_, _bDX_, _bDW_); + } + catch(_b5c_){ + var _bDV_ = caml_wrap_exception(_b5c_); + if(_bDV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _e3_], 1); + throw caml_maybe_attach_backtrace(_bDV_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _e$_, Runtime_ocaml_Runtime[15], _bDZ_); + try{ + var + _bD1_ = + function(param){ + switch(type_aide[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$20); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$0); + } + }, + _bD2_ = + function(param){ + var + _b5a_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _b5b_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b5a_); + return caml_call2(Runtime_ocaml_Runtime[29], _fb_, _b5b_); + }, + _bD3_ = caml_call4(Runtime_ocaml_Runtime[63], _fc_, [0], _bD2_, _bD1_); + } + catch(_b4$_){ + var _bD0_ = caml_wrap_exception(_b4$_); + if(_bD0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fa_], 1); + throw caml_maybe_attach_backtrace(_bD0_, 0); + } + var + montant_minimal_aide_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _fd_, Runtime_ocaml_Runtime[13], _bD3_); + try{ + var + _bD5_ = + function(param){ + if(! logement_meuble_d842_2) return loyer_principal_base; + var + _b48_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3$5), + _b49_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2$6), + _b4__ = caml_call2(Runtime_ocaml_Runtime[107], _b49_, _b48_); + return caml_call2 + (Runtime_ocaml_Runtime[104], loyer_principal_base, _b4__); + }, + _bD6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ff_, 1); + }, + _bD7_ = caml_call4(Runtime_ocaml_Runtime[63], _fg_, [0], _bD6_, _bD5_); + } + catch(_b47_){ + var _bD4_ = caml_wrap_exception(_b47_); + if(_bD4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fe_], 1); + throw caml_maybe_attach_backtrace(_bD4_, 0); + } + var + loyer_principal_avec_reduction = + caml_call3 + (Runtime_ocaml_Runtime[28], _fh_, Runtime_ocaml_Runtime[13], _bD7_); + try{ + var + _bD9_ = + function(param){ + function _b39_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b3__(param){return 0;} + var + _b3$_ = + [0, + function(param){ + function _b4a_(param){ + var _b4U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4U_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315); + var _b4V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4V_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027); + var _b4W_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4W_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238); + var _b4X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4X_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201); + var _b4Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4Y_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185); + var _b4Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4Z_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179); + var _b40_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$2); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b40_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173); + var + _b41_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$3), + _b42_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b41_), + _b43_ = caml_call1(Runtime_ocaml_Runtime[69], _b42_), + _b44_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006), + _b45_ = caml_call2(Runtime_ocaml_Runtime[103], _b44_, _b43_), + _b46_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$0); + return caml_call2(Runtime_ocaml_Runtime[97], _b46_, _b45_); + } + function _b4b_(param){ + var + _b4S_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b4T_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4S_); + return caml_call2(Runtime_ocaml_Runtime[29], _fj_, _b4T_); + } + var + _b4c_ = + [0, + function(param){ + function _b4d_(param){ + var _b4F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$22); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgT_)) + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4F_)) return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0281$4) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0299$4); - var _cgU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$42); + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$0); + var _b4G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$6); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgU_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0238$7); - var _cgV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$33); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4G_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$0); + var _b4H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$8); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgV_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0217$4); - var _cgW_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$18); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4H_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$0); + var _b4I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$7); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgW_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0194$4); - var _cgX_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$13); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4I_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$0); + var _b4J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$6); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgX_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_018$4); - var _cgY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$7); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4J_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$0); + var _b4K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$0); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgY_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0169$4); - var _cgZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$8); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4K_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$0); + var _b4L_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$4); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cgZ_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0162$4); - var _cg0_=caml_call1(Runtime_ocaml_Runtime[46],cst_7); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_cg0_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167); + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4L_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$1); var - _cg1_=caml_call1(Runtime_ocaml_Runtime[46],cst_7$0), - _cg2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cg1_), - _cg3_=caml_call1(Runtime_ocaml_Runtime[69],_cg2_), - _cg4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0006$2), - _cg5_=caml_call2(Runtime_ocaml_Runtime[103],_cg4_,_cg3_), - _cg6_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0167$0); - return caml_call2(Runtime_ocaml_Runtime[97],_cg6_,_cg5_)} - function _cgO_(param) - {switch(residence[0]) - {case 0:var _cgP_=1;break; - case 1:var _cgP_=0;break; - case 2:var _cgP_=1;break; - case 3:var _cgP_=1;break; - case 4:var _cgP_=1;break; - case 5:var _cgP_=1;break; - case 6:var _cgP_=0;break; - case 7:var _cgP_=0;break; - default:var _cgP_=1} + _b4M_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$5), + _b4N_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b4M_), + _b4O_ = caml_call1(Runtime_ocaml_Runtime[69], _b4N_), + _b4P_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$0), + _b4Q_ = caml_call2(Runtime_ocaml_Runtime[103], _b4P_, _b4O_), + _b4R_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$2); + return caml_call2(Runtime_ocaml_Runtime[97], _b4R_, _b4Q_); + } + function _b4e_(param){ var - _cgQ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cgR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgQ_), - _cgS_=caml_call2(Runtime_ocaml_Runtime[83],_cgR_,_cgP_); - return caml_call2(Runtime_ocaml_Runtime[29],_rc_,_cgS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rd_,[0],_cgO_,_cgN_)}, - _cgL_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_re_,_cgM_,_cgK_,_cgJ_)}], - _bUO_=caml_call4(Runtime_ocaml_Runtime[63],_rf_,_bUN_,_bUM_,_bUL_)} - catch(_cgI_) - {_cgI_ = caml_wrap_exception(_cgI_); - if(_cgI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_qW_]; - throw _cgI_} - var - taux_composition_familiale= - caml_call3 - (Runtime_ocaml_Runtime[28],_rg_,Runtime_ocaml_Runtime[15],_bUO_); - try - {var - _bUP_= - function(param) - {function _cf7_(param){throw Runtime_ocaml_Runtime[2]} - function _cf8_(param){return 0} - var - _cf9_= - [0, - function(param) - {function _cf__(param) - {var - _cgG_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$9), - _cgH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgG_); - return caml_call1(Runtime_ocaml_Runtime[69],_cgH_)} - function _cf$_(param) - {var - _cgE_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cgF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgE_); - return caml_call2(Runtime_ocaml_Runtime[29],_ri_,_cgF_)} - var - _cga_= - [0, - function(param) - {function _cgb_(param) - {var - _cgC_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$10), - _cgD_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgC_); - return caml_call1(Runtime_ocaml_Runtime[69],_cgD_)} - function _cgc_(param) - {var - _cgx_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _cgy_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_cgx_), - _cgz_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cgA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgz_), - _cgB_=caml_call2(Runtime_ocaml_Runtime[83],_cgA_,_cgy_); - return caml_call2(Runtime_ocaml_Runtime[29],_rj_,_cgB_)} - var - _cgd_= - [0, - function(param) - {function _cge_(param) - {var - _cgv_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$11), - _cgw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgv_); - return caml_call1(Runtime_ocaml_Runtime[69],_cgw_)} - function _cgf_(param) - {var - _cgq_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cgr_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cgq_), - _cgs_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cgt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgs_), - _cgu_=caml_call2(Runtime_ocaml_Runtime[83],_cgt_,_cgr_); - return caml_call2(Runtime_ocaml_Runtime[29],_rk_,_cgu_)} - var - _cgg_= - [0, - function(param) - {function _cgh_(param) - {var - _cgo_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$12), - _cgp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cgo_); - return caml_call1(Runtime_ocaml_Runtime[69],_cgp_)} - function _cgi_(param) - {var - _cgj_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cgk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cgj_), - _cgl_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cgm_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cgl_), - _cgn_=caml_call2(Runtime_ocaml_Runtime[83],_cgm_,_cgk_); - return caml_call2(Runtime_ocaml_Runtime[29],_rl_,_cgn_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rm_,[0],_cgi_,_cgh_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rn_,_cgg_,_cgf_,_cge_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ro_,_cgd_,_cgc_,_cgb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rp_,_cga_,_cf$_,_cf__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rq_,_cf9_,_cf8_,_cf7_)}, - _bUQ_=function(param){return 1}, - _bUR_= - [0, - function(param) - {function _ce4_(param){throw Runtime_ocaml_Runtime[2]} - function _ce5_(param){return 0} - var - _ce6_= - [0, - function(param) - {function _ce7_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$98)} - function _ce8_(param) - {var - _cfX_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$13), - _cfY_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfX_); - switch(residence[0]) - {case 0:var _cfZ_=1;break; - case 1:var _cfZ_=0;break; - case 2:var _cfZ_=1;break; - case 3:var _cfZ_=1;break; - case 4:var _cfZ_=1;break; - case 5:var _cfZ_=1;break; - case 6:var _cfZ_=0;break; - case 7:var _cfZ_=0;break; - default:var _cfZ_=1} - var - _cf0_=caml_call2(Runtime_ocaml_Runtime[83],_cfZ_,_cfY_), - _cf1_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cf2_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cf1_), - _cf3_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cf4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cf3_), - _cf5_=caml_call2(Runtime_ocaml_Runtime[83],_cf4_,_cf2_), - _cf6_=caml_call2(Runtime_ocaml_Runtime[83],_cf5_,_cf0_); - return caml_call2(Runtime_ocaml_Runtime[29],_rr_,_cf6_)} - var - _ce9_= - [0, - function(param) - {function _ce__(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$99)} - function _ce$_(param) - {var - _cfN_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$14), - _cfO_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfN_); - switch(residence[0]) - {case 0:var _cfP_=1;break; - case 1:var _cfP_=0;break; - case 2:var _cfP_=1;break; - case 3:var _cfP_=1;break; - case 4:var _cfP_=1;break; - case 5:var _cfP_=1;break; - case 6:var _cfP_=0;break; - case 7:var _cfP_=0;break; - default:var _cfP_=1} + _b4A_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b4B_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4A_), + _b4C_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b4D_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4C_), + _b4E_ = caml_call2(Runtime_ocaml_Runtime[83], _b4D_, _b4B_); + return caml_call2(Runtime_ocaml_Runtime[29], _fk_, _b4E_); + } + var + _b4f_ = + [0, + function(param){ + function _b4g_(param){ + var _b4n_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4n_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0283$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0315$1); + var _b4o_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4o_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_027$1); + var _b4p_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4p_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$1); + var _b4q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4q_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0201$1); + var _b4r_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4r_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0185$1); + var _b4s_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4s_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0179$1); + var _b4t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$6); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b4t_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$3); var - _cfQ_=caml_call2(Runtime_ocaml_Runtime[83],_cfP_,_cfO_), - _cfR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cfS_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfR_), - _cfT_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cfU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfT_), - _cfV_=caml_call2(Runtime_ocaml_Runtime[83],_cfU_,_cfS_), - _cfW_=caml_call2(Runtime_ocaml_Runtime[83],_cfV_,_cfQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_rs_,_cfW_)} - var - _cfa_= - [0, - function(param) - {function _cfb_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$100)} - function _cfc_(param) - {var - _cfD_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$15), - _cfE_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfD_); - switch(residence[0]) - {case 0:var _cfF_=1;break; - case 1:var _cfF_=0;break; - case 2:var _cfF_=1;break; - case 3:var _cfF_=1;break; - case 4:var _cfF_=1;break; - case 5:var _cfF_=1;break; - case 6:var _cfF_=0;break; - case 7:var _cfF_=0;break; - default:var _cfF_=1} - var - _cfG_=caml_call2(Runtime_ocaml_Runtime[83],_cfF_,_cfE_), - _cfH_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cfI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfH_), - _cfJ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cfK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfJ_), - _cfL_=caml_call2(Runtime_ocaml_Runtime[83],_cfK_,_cfI_), - _cfM_=caml_call2(Runtime_ocaml_Runtime[83],_cfL_,_cfG_); - return caml_call2(Runtime_ocaml_Runtime[29],_rt_,_cfM_)} - var - _cfd_= - [0, - function(param) - {function _cfe_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$101)} - function _cff_(param) - {var - _cft_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$16), - _cfu_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cft_); - switch(residence[0]) - {case 0:var _cfv_=1;break; - case 1:var _cfv_=0;break; - case 2:var _cfv_=1;break; - case 3:var _cfv_=1;break; - case 4:var _cfv_=1;break; - case 5:var _cfv_=1;break; - case 6:var _cfv_=0;break; - case 7:var _cfv_=0;break; - default:var _cfv_=1} - var - _cfw_=caml_call2(Runtime_ocaml_Runtime[83],_cfv_,_cfu_), - _cfx_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cfy_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfx_), - _cfz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cfA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfz_), - _cfB_=caml_call2(Runtime_ocaml_Runtime[83],_cfA_,_cfy_), - _cfC_=caml_call2(Runtime_ocaml_Runtime[83],_cfB_,_cfw_); - return caml_call2(Runtime_ocaml_Runtime[29],_ru_,_cfC_)} - var - _cfg_= - [0, - function(param) - {function _cfh_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0$102)} - function _cfi_(param) - {var - _cfj_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$17), - _cfk_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cfj_); - switch(residence[0]) - {case 0:var _cfl_=1;break; - case 1:var _cfl_=0;break; - case 2:var _cfl_=1;break; - case 3:var _cfl_=1;break; - case 4:var _cfl_=1;break; - case 5:var _cfl_=1;break; - case 6:var _cfl_=0;break; - case 7:var _cfl_=0;break; - default:var _cfl_=1} - var - _cfm_=caml_call2(Runtime_ocaml_Runtime[83],_cfl_,_cfk_), - _cfn_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cfo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cfn_), - _cfp_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cfq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cfp_), - _cfr_=caml_call2(Runtime_ocaml_Runtime[83],_cfq_,_cfo_), - _cfs_=caml_call2(Runtime_ocaml_Runtime[83],_cfr_,_cfm_); - return caml_call2(Runtime_ocaml_Runtime[29],_rv_,_cfs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rw_,[0],_cfi_,_cfh_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rx_,_cfg_,_cff_,_cfe_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ry_,_cfd_,_cfc_,_cfb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rz_,_cfa_,_ce$_,_ce__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rA_,_ce9_,_ce8_,_ce7_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rB_,_ce6_,_ce5_,_ce4_)}], - _bUS_=caml_call4(Runtime_ocaml_Runtime[63],_rC_,_bUR_,_bUQ_,_bUP_)} - catch(_ce3_) - {_ce3_ = caml_wrap_exception(_ce3_); - if(_ce3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_rh_]; - throw _ce3_} - var - multiplicateur_majoration_r0= - caml_call3 - (Runtime_ocaml_Runtime[28],_rD_,Runtime_ocaml_Runtime[15],_bUS_); - try - {var - _bUT_= - function(param) - {function _ceA_(param){throw Runtime_ocaml_Runtime[2]} - function _ceB_(param){return 0} - var - _ceC_= - [0, - function(param) - {function _ceD_(param) - {var - _ce1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$43), - _ce2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ce1_); - return caml_call1(Runtime_ocaml_Runtime[69],_ce2_)} - function _ceE_(param) - {var - _ceZ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ce0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_rF_,_ce0_)} - var - _ceF_= - [0, - function(param) - {function _ceG_(param) - {var - _ceX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$44), - _ceY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ceX_); - return caml_call1(Runtime_ocaml_Runtime[69],_ceY_)} - function _ceH_(param) - {var - _ceS_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ceT_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceS_), - _ceU_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ceV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceU_), - _ceW_=caml_call2(Runtime_ocaml_Runtime[83],_ceV_,_ceT_); - return caml_call2(Runtime_ocaml_Runtime[29],_rG_,_ceW_)} - var - _ceI_= - [0, - function(param) - {function _ceJ_(param) - {var - _ceQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$45), - _ceR_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_ceQ_); - return caml_call1(Runtime_ocaml_Runtime[69],_ceR_)} - function _ceK_(param) - {var - _ceL_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ceM_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceL_), - _ceN_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _ceO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ceN_), - _ceP_=caml_call2(Runtime_ocaml_Runtime[83],_ceO_,_ceM_); - return caml_call2(Runtime_ocaml_Runtime[29],_rH_,_ceP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rI_,[0],_ceK_,_ceJ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rJ_,_ceI_,_ceH_,_ceG_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rK_,_ceF_,_ceE_,_ceD_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rL_,_ceC_,_ceB_,_ceA_)}, - _bUU_=function(param){return 1}, - _bUV_= - [0, - function(param) - {function _cdx_(param){throw Runtime_ocaml_Runtime[2]} - function _cdy_(param){return 0} - var - _cdz_= - [0, - function(param) - {function _cdA_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$8)} - function _cdB_(param) - {var - _ceq_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$18), - _cer_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ceq_); - switch(residence[0]) - {case 0:var _ces_=1;break; - case 1:var _ces_=0;break; - case 2:var _ces_=1;break; - case 3:var _ces_=1;break; - case 4:var _ces_=1;break; - case 5:var _ces_=1;break; - case 6:var _ces_=0;break; - case 7:var _ces_=0;break; - default:var _ces_=1} - var - _cet_=caml_call2(Runtime_ocaml_Runtime[83],_ces_,_cer_), - _ceu_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _cev_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ceu_), - _cew_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cex_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cew_), - _cey_=caml_call2(Runtime_ocaml_Runtime[83],_cex_,_cev_), - _cez_=caml_call2(Runtime_ocaml_Runtime[83],_cey_,_cet_); - return caml_call2(Runtime_ocaml_Runtime[29],_rM_,_cez_)} - var - _cdC_= - [0, - function(param) - {function _cdD_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$9)} - function _cdE_(param) - {var - _ceg_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$19), - _ceh_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ceg_); - switch(residence[0]) - {case 0:var _cei_=1;break; - case 1:var _cei_=0;break; - case 2:var _cei_=1;break; - case 3:var _cei_=1;break; - case 4:var _cei_=1;break; - case 5:var _cei_=1;break; - case 6:var _cei_=0;break; - case 7:var _cei_=0;break; - default:var _cei_=1} + _b4u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$7), + _b4v_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b4u_), + _b4w_ = caml_call1(Runtime_ocaml_Runtime[69], _b4v_), + _b4x_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$1), + _b4y_ = caml_call2(Runtime_ocaml_Runtime[103], _b4x_, _b4w_), + _b4z_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0173$4); + return caml_call2(Runtime_ocaml_Runtime[97], _b4z_, _b4y_); + } + function _b4h_(param){ var - _cej_=caml_call2(Runtime_ocaml_Runtime[83],_cei_,_ceh_), - _cek_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cel_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cek_), - _cem_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cen_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cem_), - _ceo_=caml_call2(Runtime_ocaml_Runtime[83],_cen_,_cel_), - _cep_=caml_call2(Runtime_ocaml_Runtime[83],_ceo_,_cej_); - return caml_call2(Runtime_ocaml_Runtime[29],_rN_,_cep_)} - var - _cdF_= - [0, - function(param) - {function _cdG_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$10)} - function _cdH_(param) - {var - _cd8_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$20), - _cd9_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cd8_); - switch(residence[0]) - {case 0:var _cd__=1;break; - case 1:var _cd__=0;break; - case 2:var _cd__=1;break; - case 3:var _cd__=1;break; - case 4:var _cd__=1;break; - case 5:var _cd__=1;break; - case 6:var _cd__=0;break; - case 7:var _cd__=0;break; - default:var _cd__=1} - var - _cd$_=caml_call2(Runtime_ocaml_Runtime[83],_cd__,_cd9_), - _cea_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _ceb_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cea_), - _cec_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ced_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cec_), - _cee_=caml_call2(Runtime_ocaml_Runtime[83],_ced_,_ceb_), - _cef_=caml_call2(Runtime_ocaml_Runtime[83],_cee_,_cd$_); - return caml_call2(Runtime_ocaml_Runtime[29],_rO_,_cef_)} - var - _cdI_= - [0, - function(param) - {function _cdJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$11)} - function _cdK_(param) - {var - _cdY_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$21), - _cdZ_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cdY_); - switch(residence[0]) - {case 0:var _cd0_=1;break; - case 1:var _cd0_=0;break; - case 2:var _cd0_=1;break; - case 3:var _cd0_=1;break; - case 4:var _cd0_=1;break; - case 5:var _cd0_=1;break; - case 6:var _cd0_=0;break; - case 7:var _cd0_=0;break; - default:var _cd0_=1} - var - _cd1_=caml_call2(Runtime_ocaml_Runtime[83],_cd0_,_cdZ_), - _cd2_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cd3_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cd2_), - _cd4_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cd5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cd4_), - _cd6_=caml_call2(Runtime_ocaml_Runtime[83],_cd5_,_cd3_), - _cd7_=caml_call2(Runtime_ocaml_Runtime[83],_cd6_,_cd1_); - return caml_call2(Runtime_ocaml_Runtime[29],_rP_,_cd7_)} - var - _cdL_= - [0, - function(param) - {function _cdM_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$12)} - function _cdN_(param) - {var - _cdO_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$22), - _cdP_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cdO_); - switch(residence[0]) - {case 0:var _cdQ_=1;break; - case 1:var _cdQ_=0;break; - case 2:var _cdQ_=1;break; - case 3:var _cdQ_=1;break; - case 4:var _cdQ_=1;break; - case 5:var _cdQ_=1;break; - case 6:var _cdQ_=0;break; - case 7:var _cdQ_=0;break; - default:var _cdQ_=1} - var - _cdR_=caml_call2(Runtime_ocaml_Runtime[83],_cdQ_,_cdP_), - _cdS_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cdT_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdS_), - _cdU_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cdV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdU_), - _cdW_=caml_call2(Runtime_ocaml_Runtime[83],_cdV_,_cdT_), - _cdX_=caml_call2(Runtime_ocaml_Runtime[83],_cdW_,_cdR_); - return caml_call2(Runtime_ocaml_Runtime[29],_rQ_,_cdX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_rR_,[0],_cdN_,_cdM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rS_,_cdL_,_cdK_,_cdJ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rT_,_cdI_,_cdH_,_cdG_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rU_,_cdF_,_cdE_,_cdD_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rV_,_cdC_,_cdB_,_cdA_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_rW_,_cdz_,_cdy_,_cdx_)}], - _bUW_=caml_call4(Runtime_ocaml_Runtime[63],_rX_,_bUV_,_bUU_,_bUT_)} - catch(_cdw_) - {_cdw_ = caml_wrap_exception(_cdw_); - if(_cdw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_rE_]; - throw _cdw_} - var - multiplicateur_majoration_loye= - caml_call3 - (Runtime_ocaml_Runtime[28],_rY_,Runtime_ocaml_Runtime[15],_bUW_); - try - {var - _bUX_= - function(param) - {function _ccJ_(param){throw Runtime_ocaml_Runtime[2]} - function _ccK_(param){return 0} + _b4i_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b4j_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b4i_), + _b4k_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b4l_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b4k_), + _b4m_ = caml_call2(Runtime_ocaml_Runtime[83], _b4l_, _b4j_); + return caml_call2(Runtime_ocaml_Runtime[29], _fl_, _b4m_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fm_, [0], _b4h_, _b4g_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fn_, _b4f_, _b4e_, _b4d_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fo_, _b4c_, _b4b_, _b4a_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fp_, _b3$_, _b3__, _b39_); + }, + _bD__ = function(param){return 1;}, + _bD$_ = + [0, + function(param){ + function _b2w_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b2x_(param){return 0;} + function _b2y_(param){ + function _b2U_(param){ + var _b33_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b33_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299); + var _b34_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b34_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$2); + var _b35_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b35_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217); + var _b36_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b36_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194); + var _b37_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _b37_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018); + var _b38_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b38_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162); + } + function _b2V_(param){ + switch(residence[0]){ + case 0: + var _b3W_ = 1; break; + case 1: + var _b3W_ = 0; break; + case 2: + var _b3W_ = 1; break; + case 3: + var _b3W_ = 1; break; + case 4: + var _b3W_ = 1; break; + case 5: + var _b3W_ = 1; break; + case 6: + var _b3W_ = 0; break; + case 7: + var _b3W_ = 0; break; + default: var _b3W_ = 1; + } var - _ccL_= + _b3X_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b3Y_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3X_), + _b3Z_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b30_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3Z_), + _b31_ = caml_call2(Runtime_ocaml_Runtime[83], _b30_, _b3Y_), + _b32_ = caml_call2(Runtime_ocaml_Runtime[83], _b31_, _b3W_); + return caml_call2(Runtime_ocaml_Runtime[29], _fq_, _b32_); + } + var + _b2W_ = [0, - function(param) - {function _ccM_(param) - {var - _cdu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$46), - _cdv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdu_); - return caml_call1(Runtime_ocaml_Runtime[69],_cdv_)} - function _ccN_(param) - {var - _cds_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cdt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cds_); - return caml_call2(Runtime_ocaml_Runtime[29],_r0_,_cdt_)} + function(param){ + function _b2X_(param){ + var _b3Q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3Q_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$0); + var _b3R_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3R_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$3); + var _b3S_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3S_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$0); + var _b3T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3T_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$0); + var _b3U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$9); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3U_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$0); + var _b3V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3V_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$0); + } + function _b2Y_(param){ + switch(residence[0]){ + case 0: + var _b3J_ = 1; break; + case 1: + var _b3J_ = 0; break; + case 2: + var _b3J_ = 1; break; + case 3: + var _b3J_ = 1; break; + case 4: + var _b3J_ = 1; break; + case 5: + var _b3J_ = 1; break; + case 6: + var _b3J_ = 0; break; + case 7: + var _b3J_ = 0; break; + default: var _b3J_ = 1; + } var - _ccO_= + _b3K_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b3L_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3K_), + _b3M_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b3N_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3M_), + _b3O_ = caml_call2(Runtime_ocaml_Runtime[83], _b3N_, _b3L_), + _b3P_ = caml_call2(Runtime_ocaml_Runtime[83], _b3O_, _b3J_); + return caml_call2(Runtime_ocaml_Runtime[29], _fr_, _b3P_); + } + var + _b2Z_ = [0, - function(param) - {function _ccP_(param) - {var - _cdq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$47), - _cdr_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdq_); - return caml_call1(Runtime_ocaml_Runtime[69],_cdr_)} - function _ccQ_(param) - {var - _cdl_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cdm_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdl_), - _cdn_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cdo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdn_), - _cdp_=caml_call2(Runtime_ocaml_Runtime[83],_cdo_,_cdm_); - return caml_call2(Runtime_ocaml_Runtime[29],_r1_,_cdp_)} + function(param){ + function _b20_(param){ + var _b3D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3D_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$1); + var _b3E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3E_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$4); + var _b3F_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3F_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$1); + var _b3G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3G_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$1); + var _b3H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$10); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3H_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$1); + var _b3I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$4); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3I_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$1) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$1); + } + function _b21_(param){ + switch(residence[0]){ + case 0: + var _b3w_ = 1; break; + case 1: + var _b3w_ = 0; break; + case 2: + var _b3w_ = 1; break; + case 3: + var _b3w_ = 1; break; + case 4: + var _b3w_ = 1; break; + case 5: + var _b3w_ = 1; break; + case 6: + var _b3w_ = 0; break; + case 7: + var _b3w_ = 0; break; + default: var _b3w_ = 1; + } var - _ccR_= + _b3x_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b3y_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3x_), + _b3z_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b3A_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3z_), + _b3B_ = caml_call2(Runtime_ocaml_Runtime[83], _b3A_, _b3y_), + _b3C_ = caml_call2(Runtime_ocaml_Runtime[83], _b3B_, _b3w_); + return caml_call2(Runtime_ocaml_Runtime[29], _fs_, _b3C_); + } + var + _b22_ = [0, - function(param) - {function _ccS_(param) - {var - _cdj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$48), - _cdk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdj_); - return caml_call1(Runtime_ocaml_Runtime[69],_cdk_)} - function _ccT_(param) - {var - _cdd_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cde_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cdd_), - _cdf_=caml_call2(Runtime_ocaml_Runtime[83],_cde_,colocation), - _cdg_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cdh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cdg_), - _cdi_=caml_call2(Runtime_ocaml_Runtime[83],_cdh_,_cdf_); - return caml_call2(Runtime_ocaml_Runtime[29],_r2_,_cdi_)} + function(param){ + function _b23_(param){ + var _b3q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3q_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$2); + var _b3r_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3r_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$5); + var _b3s_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3s_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$2); + var _b3t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3t_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$2); + var _b3u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$11); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3u_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$2); + var _b3v_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$5); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3v_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$2) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$2); + } + function _b24_(param){ + switch(residence[0]){ + case 0: + var _b3j_ = 1; break; + case 1: + var _b3j_ = 0; break; + case 2: + var _b3j_ = 1; break; + case 3: + var _b3j_ = 1; break; + case 4: + var _b3j_ = 1; break; + case 5: + var _b3j_ = 1; break; + case 6: + var _b3j_ = 0; break; + case 7: + var _b3j_ = 0; break; + default: var _b3j_ = 1; + } var - _ccU_= + _b3k_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b3l_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b3k_), + _b3m_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b3n_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b3m_), + _b3o_ = caml_call2(Runtime_ocaml_Runtime[83], _b3n_, _b3l_), + _b3p_ = caml_call2(Runtime_ocaml_Runtime[83], _b3o_, _b3j_); + return caml_call2(Runtime_ocaml_Runtime[29], _ft_, _b3p_); + } + var + _b25_ = [0, - function(param) - {function _ccV_(param) - {var - _cdb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$49), - _cdc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cdb_); - return caml_call1(Runtime_ocaml_Runtime[69],_cdc_)} - function _ccW_(param) - {var - _cc8_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cc9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cc8_), - _cc__=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cc$_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cc__), - _cda_=caml_call2(Runtime_ocaml_Runtime[83],_cc$_,_cc9_); - return caml_call2(Runtime_ocaml_Runtime[29],_r3_,_cda_)} + function(param){ + function _b26_(param){ + var _b3d_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3d_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$3) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$3); + var _b3e_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3e_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$6); + var _b3f_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3f_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$3); + var _b3g_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3g_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$3); + var _b3h_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$12); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3h_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$3); + var _b3i_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$6); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b3i_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$3) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$3); + } + function _b27_(param){ + switch(residence[0]){ + case 0: + var _b28_ = 1; break; + case 1: + var _b28_ = 0; break; + case 2: + var _b28_ = 1; break; + case 3: + var _b28_ = 1; break; + case 4: + var _b28_ = 1; break; + case 5: + var _b28_ = 1; break; + case 6: + var _b28_ = 0; break; + case 7: + var _b28_ = 0; break; + default: var _b28_ = 1; + } var - _ccX_= - [0, - function(param) - {function _ccY_(param) - {var - _cc6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$50), - _cc7_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_cc6_); - return caml_call1(Runtime_ocaml_Runtime[69],_cc7_)} - function _ccZ_(param) - {var - _cc0_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cc1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cc0_), - _cc2_=caml_call2(Runtime_ocaml_Runtime[83],_cc1_,colocation), - _cc3_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cc4_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cc3_), - _cc5_=caml_call2(Runtime_ocaml_Runtime[83],_cc4_,_cc2_); - return caml_call2(Runtime_ocaml_Runtime[29],_r4_,_cc5_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_r5_,[0],_ccZ_,_ccY_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r6_,_ccX_,_ccW_,_ccV_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r7_,_ccU_,_ccT_,_ccS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r8_,_ccR_,_ccQ_,_ccP_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r9_,_ccO_,_ccN_,_ccM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_r__,_ccL_,_ccK_,_ccJ_)}, - _bUY_=function(param){return 1}, - _bUZ_= - [0, - function(param) - {function _cbG_(param){throw Runtime_ocaml_Runtime[2]} - function _cbH_(param){return 0} - var - _cbI_= - [0, - function(param) - {function _cbJ_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$13)} - function _cbK_(param) - {var - _ccz_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$23), - _ccA_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccz_); - switch(residence[0]) - {case 0:var _ccB_=1;break; - case 1:var _ccB_=0;break; - case 2:var _ccB_=1;break; - case 3:var _ccB_=1;break; - case 4:var _ccB_=1;break; - case 5:var _ccB_=1;break; - case 6:var _ccB_=0;break; - case 7:var _ccB_=0;break; - default:var _ccB_=1} + _b29_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b2__ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b29_), + _b2$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b3a_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2$_), + _b3b_ = caml_call2(Runtime_ocaml_Runtime[83], _b3a_, _b2__), + _b3c_ = caml_call2(Runtime_ocaml_Runtime[83], _b3b_, _b28_); + return caml_call2(Runtime_ocaml_Runtime[29], _fu_, _b3c_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fv_, [0], _b27_, _b26_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fw_, _b25_, _b24_, _b23_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fx_, _b22_, _b21_, _b20_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fy_, _b2Z_, _b2Y_, _b2X_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fz_, _b2W_, _b2V_, _b2U_); + } + var + _b2z_ = + [0, + function(param){ + function _b2A_(param){ + var _b2G_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2G_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0281$4) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0299$4); + var _b2H_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2H_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0238$7); + var _b2I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2I_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0217$4); + var _b2J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2J_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0194$4); + var _b2K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$13); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2K_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_018$4); + var _b2L_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2L_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0169$4); + var _b2M_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$8); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2M_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0162$4); + var _b2N_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _b2N_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167); + var + _b2O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_7$0), + _b2P_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b2O_), + _b2Q_ = caml_call1(Runtime_ocaml_Runtime[69], _b2P_), + _b2R_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0006$2), + _b2S_ = caml_call2(Runtime_ocaml_Runtime[103], _b2R_, _b2Q_), + _b2T_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0167$0); + return caml_call2(Runtime_ocaml_Runtime[97], _b2T_, _b2S_); + } + function _b2B_(param){ + switch(residence[0]){ + case 0: + var _b2C_ = 1; break; + case 1: + var _b2C_ = 0; break; + case 2: + var _b2C_ = 1; break; + case 3: + var _b2C_ = 1; break; + case 4: + var _b2C_ = 1; break; + case 5: + var _b2C_ = 1; break; + case 6: + var _b2C_ = 0; break; + case 7: + var _b2C_ = 0; break; + default: var _b2C_ = 1; + } + var + _b2D_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b2E_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2D_), + _b2F_ = caml_call2(Runtime_ocaml_Runtime[83], _b2E_, _b2C_); + return caml_call2(Runtime_ocaml_Runtime[29], _fA_, _b2F_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fB_, [0], _b2B_, _b2A_); + }, + _b2y_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fC_, _b2z_, _b2x_, _b2w_); + }], + _bEa_ = caml_call4(Runtime_ocaml_Runtime[63], _fD_, _bD$_, _bD__, _bD9_); + } + catch(_b2v_){ + var _bD8_ = caml_wrap_exception(_b2v_); + if(_bD8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fi_], 1); + throw caml_maybe_attach_backtrace(_bD8_, 0); + } + var + taux_composition_familiale = + caml_call3 + (Runtime_ocaml_Runtime[28], _fE_, Runtime_ocaml_Runtime[15], _bEa_); + try{ + var + _bEc_ = + function(param){ + function _b1U_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b1V_(param){return 0;} + var + _b1W_ = + [0, + function(param){ + function _b1X_(param){ + var + _b2t_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$9), + _b2u_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b2t_); + return caml_call1(Runtime_ocaml_Runtime[69], _b2u_); + } + function _b1Y_(param){ + var + _b2r_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b2s_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2r_); + return caml_call2(Runtime_ocaml_Runtime[29], _fG_, _b2s_); + } + var + _b1Z_ = + [0, + function(param){ + function _b10_(param){ var - _ccC_=caml_call2(Runtime_ocaml_Runtime[83],_ccB_,_ccA_), - _ccD_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _ccE_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ccD_), - _ccF_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ccG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccF_), - _ccH_=caml_call2(Runtime_ocaml_Runtime[83],_ccG_,_ccE_), - _ccI_=caml_call2(Runtime_ocaml_Runtime[83],_ccH_,_ccC_); - return caml_call2(Runtime_ocaml_Runtime[29],_r$_,_ccI_)} - var - _cbL_= - [0, - function(param) - {function _cbM_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$14)} - function _cbN_(param) - {var - _ccp_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$24), - _ccq_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccp_); - switch(residence[0]) - {case 0:var _ccr_=1;break; - case 1:var _ccr_=0;break; - case 2:var _ccr_=1;break; - case 3:var _ccr_=1;break; - case 4:var _ccr_=1;break; - case 5:var _ccr_=1;break; - case 6:var _ccr_=0;break; - case 7:var _ccr_=0;break; - default:var _ccr_=1} + _b2p_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$10), + _b2q_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b2p_); + return caml_call1(Runtime_ocaml_Runtime[69], _b2q_); + } + function _b11_(param){ + var + _b2k_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _b2l_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _b2k_), + _b2m_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b2n_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2m_), + _b2o_ = caml_call2(Runtime_ocaml_Runtime[83], _b2n_, _b2l_); + return caml_call2(Runtime_ocaml_Runtime[29], _fH_, _b2o_); + } + var + _b12_ = + [0, + function(param){ + function _b13_(param){ var - _ccs_=caml_call2(Runtime_ocaml_Runtime[83],_ccr_,_ccq_), - _cct_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ccu_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cct_), - _ccv_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _ccw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccv_), - _ccx_=caml_call2(Runtime_ocaml_Runtime[83],_ccw_,_ccu_), - _ccy_=caml_call2(Runtime_ocaml_Runtime[83],_ccx_,_ccs_); - return caml_call2(Runtime_ocaml_Runtime[29],_sa_,_ccy_)} - var - _cbO_= - [0, - function(param) - {function _cbP_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$15)} - function _cbQ_(param) - {var - _ccf_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$25), - _ccg_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_ccf_); - switch(residence[0]) - {case 0:var _cch_=1;break; - case 1:var _cch_=0;break; - case 2:var _cch_=1;break; - case 3:var _cch_=1;break; - case 4:var _cch_=1;break; - case 5:var _cch_=1;break; - case 6:var _cch_=0;break; - case 7:var _cch_=0;break; - default:var _cch_=1} + _b2i_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$11), + _b2j_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b2i_); + return caml_call1(Runtime_ocaml_Runtime[69], _b2j_); + } + function _b14_(param){ + var + _b2d_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b2e_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b2d_), + _b2f_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b2g_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b2f_), + _b2h_ = caml_call2(Runtime_ocaml_Runtime[83], _b2g_, _b2e_); + return caml_call2(Runtime_ocaml_Runtime[29], _fI_, _b2h_); + } + var + _b15_ = + [0, + function(param){ + function _b16_(param){ var - _cci_=caml_call2(Runtime_ocaml_Runtime[83],_cch_,_ccg_), - _ccj_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cck_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ccj_), - _ccl_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _ccm_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccl_), - _ccn_=caml_call2(Runtime_ocaml_Runtime[83],_ccm_,_cck_), - _cco_=caml_call2(Runtime_ocaml_Runtime[83],_ccn_,_cci_); - return caml_call2(Runtime_ocaml_Runtime[29],_sb_,_cco_)} - var - _cbR_= - [0, - function(param) - {function _cbS_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$16)} - function _cbT_(param) - {var - _cb7_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$26), - _cb8_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cb7_); - switch(residence[0]) - {case 0:var _cb9_=1;break; - case 1:var _cb9_=0;break; - case 2:var _cb9_=1;break; - case 3:var _cb9_=1;break; - case 4:var _cb9_=1;break; - case 5:var _cb9_=1;break; - case 6:var _cb9_=0;break; - case 7:var _cb9_=0;break; - default:var _cb9_=1} + _b2b_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$12), + _b2c_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b2b_); + return caml_call1(Runtime_ocaml_Runtime[69], _b2c_); + } + function _b17_(param){ + var + _b18_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b19_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b18_), + _b1__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b1$_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1__), + _b2a_ = caml_call2(Runtime_ocaml_Runtime[83], _b1$_, _b19_); + return caml_call2(Runtime_ocaml_Runtime[29], _fJ_, _b2a_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fK_, [0], _b17_, _b16_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fL_, _b15_, _b14_, _b13_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fM_, _b12_, _b11_, _b10_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fN_, _b1Z_, _b1Y_, _b1X_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fO_, _b1W_, _b1V_, _b1U_); + }, + _bEd_ = function(param){return 1;}, + _bEe_ = + [0, + function(param){ + function _b0R_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b0S_(param){return 0;} + var + _b0T_ = + [0, + function(param){ + function _b0U_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$30); + } + function _b0V_(param){ + var + _b1K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$13), + _b1L_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b1K_); + switch(residence[0]){ + case 0: + var _b1M_ = 1; break; + case 1: + var _b1M_ = 0; break; + case 2: + var _b1M_ = 1; break; + case 3: + var _b1M_ = 1; break; + case 4: + var _b1M_ = 1; break; + case 5: + var _b1M_ = 1; break; + case 6: + var _b1M_ = 0; break; + case 7: + var _b1M_ = 0; break; + default: var _b1M_ = 1; + } + var + _b1N_ = caml_call2(Runtime_ocaml_Runtime[83], _b1M_, _b1L_), + _b1O_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b1P_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1O_), + _b1Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b1R_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1Q_), + _b1S_ = caml_call2(Runtime_ocaml_Runtime[83], _b1R_, _b1P_), + _b1T_ = caml_call2(Runtime_ocaml_Runtime[83], _b1S_, _b1N_); + return caml_call2(Runtime_ocaml_Runtime[29], _fP_, _b1T_); + } + var + _b0W_ = + [0, + function(param){ + function _b0X_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$31); + } + function _b0Y_(param){ + var + _b1A_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$14), + _b1B_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b1A_); + switch(residence[0]){ + case 0: + var _b1C_ = 1; break; + case 1: + var _b1C_ = 0; break; + case 2: + var _b1C_ = 1; break; + case 3: + var _b1C_ = 1; break; + case 4: + var _b1C_ = 1; break; + case 5: + var _b1C_ = 1; break; + case 6: + var _b1C_ = 0; break; + case 7: + var _b1C_ = 0; break; + default: var _b1C_ = 1; + } + var + _b1D_ = caml_call2(Runtime_ocaml_Runtime[83], _b1C_, _b1B_), + _b1E_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b1F_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1E_), + _b1G_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b1H_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1G_), + _b1I_ = caml_call2(Runtime_ocaml_Runtime[83], _b1H_, _b1F_), + _b1J_ = caml_call2(Runtime_ocaml_Runtime[83], _b1I_, _b1D_); + return caml_call2(Runtime_ocaml_Runtime[29], _fQ_, _b1J_); + } + var + _b0Z_ = + [0, + function(param){ + function _b00_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$32); + } + function _b01_(param){ + var + _b1q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$15), + _b1r_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b1q_); + switch(residence[0]){ + case 0: + var _b1s_ = 1; break; + case 1: + var _b1s_ = 0; break; + case 2: + var _b1s_ = 1; break; + case 3: + var _b1s_ = 1; break; + case 4: + var _b1s_ = 1; break; + case 5: + var _b1s_ = 1; break; + case 6: + var _b1s_ = 0; break; + case 7: + var _b1s_ = 0; break; + default: var _b1s_ = 1; + } + var + _b1t_ = caml_call2(Runtime_ocaml_Runtime[83], _b1s_, _b1r_), + _b1u_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b1v_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1u_), + _b1w_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b1x_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1w_), + _b1y_ = caml_call2(Runtime_ocaml_Runtime[83], _b1x_, _b1v_), + _b1z_ = caml_call2(Runtime_ocaml_Runtime[83], _b1y_, _b1t_); + return caml_call2(Runtime_ocaml_Runtime[29], _fR_, _b1z_); + } + var + _b02_ = + [0, + function(param){ + function _b03_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$33); + } + function _b04_(param){ + var + _b1g_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$16), + _b1h_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b1g_); + switch(residence[0]){ + case 0: + var _b1i_ = 1; break; + case 1: + var _b1i_ = 0; break; + case 2: + var _b1i_ = 1; break; + case 3: + var _b1i_ = 1; break; + case 4: + var _b1i_ = 1; break; + case 5: + var _b1i_ = 1; break; + case 6: + var _b1i_ = 0; break; + case 7: + var _b1i_ = 0; break; + default: var _b1i_ = 1; + } + var + _b1j_ = caml_call2(Runtime_ocaml_Runtime[83], _b1i_, _b1h_), + _b1k_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b1l_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1k_), + _b1m_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b1n_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1m_), + _b1o_ = caml_call2(Runtime_ocaml_Runtime[83], _b1n_, _b1l_), + _b1p_ = caml_call2(Runtime_ocaml_Runtime[83], _b1o_, _b1j_); + return caml_call2(Runtime_ocaml_Runtime[29], _fS_, _b1p_); + } + var + _b05_ = + [0, + function(param){ + function _b06_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$34); + } + function _b07_(param){ + var + _b08_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$17), + _b09_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b08_); + switch(residence[0]){ + case 0: + var _b0__ = 1; break; + case 1: + var _b0__ = 0; break; + case 2: + var _b0__ = 1; break; + case 3: + var _b0__ = 1; break; + case 4: + var _b0__ = 1; break; + case 5: + var _b0__ = 1; break; + case 6: + var _b0__ = 0; break; + case 7: + var _b0__ = 0; break; + default: var _b0__ = 1; + } + var + _b0$_ = caml_call2(Runtime_ocaml_Runtime[83], _b0__, _b09_), + _b1a_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b1b_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b1a_), + _b1c_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _b1d_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b1c_), + _b1e_ = caml_call2(Runtime_ocaml_Runtime[83], _b1d_, _b1b_), + _b1f_ = caml_call2(Runtime_ocaml_Runtime[83], _b1e_, _b0$_); + return caml_call2(Runtime_ocaml_Runtime[29], _fT_, _b1f_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _fU_, [0], _b07_, _b06_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fV_, _b05_, _b04_, _b03_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fW_, _b02_, _b01_, _b00_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fX_, _b0Z_, _b0Y_, _b0X_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fY_, _b0W_, _b0V_, _b0U_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _fZ_, _b0T_, _b0S_, _b0R_); + }], + _bEf_ = caml_call4(Runtime_ocaml_Runtime[63], _f0_, _bEe_, _bEd_, _bEc_); + } + catch(_b0Q_){ + var _bEb_ = caml_wrap_exception(_b0Q_); + if(_bEb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _fF_], 1); + throw caml_maybe_attach_backtrace(_bEb_, 0); + } + var + multiplicateur_majoration_r0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _f1_, Runtime_ocaml_Runtime[15], _bEf_); + try{ + var + _bEh_ = + function(param){ + function _b0n_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _b0o_(param){return 0;} + var + _b0p_ = + [0, + function(param){ + function _b0q_(param){ + var + _b0O_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$14), + _b0P_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b0O_); + return caml_call1(Runtime_ocaml_Runtime[69], _b0P_); + } + function _b0r_(param){ + var + _b0M_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b0N_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0M_); + return caml_call2(Runtime_ocaml_Runtime[29], _f3_, _b0N_); + } + var + _b0s_ = + [0, + function(param){ + function _b0t_(param){ + var + _b0K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$15), + _b0L_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b0K_); + return caml_call1(Runtime_ocaml_Runtime[69], _b0L_); + } + function _b0u_(param){ + var + _b0F_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b0G_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0F_), + _b0H_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b0I_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0H_), + _b0J_ = caml_call2(Runtime_ocaml_Runtime[83], _b0I_, _b0G_); + return caml_call2(Runtime_ocaml_Runtime[29], _f4_, _b0J_); + } + var + _b0v_ = + [0, + function(param){ + function _b0w_(param){ + var + _b0D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$16), + _b0E_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _b0D_); + return caml_call1(Runtime_ocaml_Runtime[69], _b0E_); + } + function _b0x_(param){ + var + _b0y_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _b0z_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0y_), + _b0A_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _b0B_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0A_), + _b0C_ = caml_call2(Runtime_ocaml_Runtime[83], _b0B_, _b0z_); + return caml_call2(Runtime_ocaml_Runtime[29], _f5_, _b0C_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _f6_, [0], _b0x_, _b0w_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f7_, _b0v_, _b0u_, _b0t_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f8_, _b0s_, _b0r_, _b0q_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _f9_, _b0p_, _b0o_, _b0n_); + }, + _bEi_ = function(param){return 1;}, + _bEj_ = + [0, + function(param){ + function _bZk_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bZl_(param){return 0;} + var + _bZm_ = + [0, + function(param){ + function _bZn_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$8); + } + function _bZo_(param){ + var + _b0d_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$18), + _b0e_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _b0d_); + switch(residence[0]){ + case 0: + var _b0f_ = 1; break; + case 1: + var _b0f_ = 0; break; + case 2: + var _b0f_ = 1; break; + case 3: + var _b0f_ = 1; break; + case 4: + var _b0f_ = 1; break; + case 5: + var _b0f_ = 1; break; + case 6: + var _b0f_ = 0; break; + case 7: + var _b0f_ = 0; break; + default: var _b0f_ = 1; + } + var + _b0g_ = caml_call2(Runtime_ocaml_Runtime[83], _b0f_, _b0e_), + _b0h_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _b0i_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _b0h_), + _b0j_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _b0k_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _b0j_), + _b0l_ = caml_call2(Runtime_ocaml_Runtime[83], _b0k_, _b0i_), + _b0m_ = caml_call2(Runtime_ocaml_Runtime[83], _b0l_, _b0g_); + return caml_call2(Runtime_ocaml_Runtime[29], _f__, _b0m_); + } + var + _bZp_ = + [0, + function(param){ + function _bZq_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$9); + } + function _bZr_(param){ + var + _bZ5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$19), + _bZ6_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bZ5_); + switch(residence[0]){ + case 0: + var _bZ7_ = 1; break; + case 1: + var _bZ7_ = 0; break; + case 2: + var _bZ7_ = 1; break; + case 3: + var _bZ7_ = 1; break; + case 4: + var _bZ7_ = 1; break; + case 5: + var _bZ7_ = 1; break; + case 6: + var _bZ7_ = 0; break; + case 7: + var _bZ7_ = 0; break; + default: var _bZ7_ = 1; + } + var + _bZ8_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ7_, _bZ6_), + _bZ9_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZ__ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZ9_), + _bZ$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _b0a_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZ$_), + _b0b_ = caml_call2(Runtime_ocaml_Runtime[83], _b0a_, _bZ__), + _b0c_ = caml_call2(Runtime_ocaml_Runtime[83], _b0b_, _bZ8_); + return caml_call2(Runtime_ocaml_Runtime[29], _f$_, _b0c_); + } + var + _bZs_ = + [0, + function(param){ + function _bZt_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$10); + } + function _bZu_(param){ + var + _bZV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$20), + _bZW_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bZV_); + switch(residence[0]){ + case 0: + var _bZX_ = 1; break; + case 1: + var _bZX_ = 0; break; + case 2: + var _bZX_ = 1; break; + case 3: + var _bZX_ = 1; break; + case 4: + var _bZX_ = 1; break; + case 5: + var _bZX_ = 1; break; + case 6: + var _bZX_ = 0; break; + case 7: + var _bZX_ = 0; break; + default: var _bZX_ = 1; + } + var + _bZY_ = caml_call2(Runtime_ocaml_Runtime[83], _bZX_, _bZW_), + _bZZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bZ0_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZZ_), + _bZ1_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZ2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZ1_), + _bZ3_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ2_, _bZ0_), + _bZ4_ = caml_call2(Runtime_ocaml_Runtime[83], _bZ3_, _bZY_); + return caml_call2(Runtime_ocaml_Runtime[29], _ga_, _bZ4_); + } + var + _bZv_ = + [0, + function(param){ + function _bZw_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$11); + } + function _bZx_(param){ + var + _bZL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$21), + _bZM_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bZL_); + switch(residence[0]){ + case 0: + var _bZN_ = 1; break; + case 1: + var _bZN_ = 0; break; + case 2: + var _bZN_ = 1; break; + case 3: + var _bZN_ = 1; break; + case 4: + var _bZN_ = 1; break; + case 5: + var _bZN_ = 1; break; + case 6: + var _bZN_ = 0; break; + case 7: + var _bZN_ = 0; break; + default: var _bZN_ = 1; + } + var + _bZO_ = caml_call2(Runtime_ocaml_Runtime[83], _bZN_, _bZM_), + _bZP_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZP_), + _bZR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bZS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZR_), + _bZT_ = caml_call2(Runtime_ocaml_Runtime[83], _bZS_, _bZQ_), + _bZU_ = caml_call2(Runtime_ocaml_Runtime[83], _bZT_, _bZO_); + return caml_call2(Runtime_ocaml_Runtime[29], _gb_, _bZU_); + } + var + _bZy_ = + [0, + function(param){ + function _bZz_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$12); + } + function _bZA_(param){ + var + _bZB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$22), + _bZC_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bZB_); + switch(residence[0]){ + case 0: + var _bZD_ = 1; break; + case 1: + var _bZD_ = 0; break; + case 2: + var _bZD_ = 1; break; + case 3: + var _bZD_ = 1; break; + case 4: + var _bZD_ = 1; break; + case 5: + var _bZD_ = 1; break; + case 6: + var _bZD_ = 0; break; + case 7: + var _bZD_ = 0; break; + default: var _bZD_ = 1; + } + var + _bZE_ = caml_call2(Runtime_ocaml_Runtime[83], _bZD_, _bZC_), + _bZF_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bZG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bZF_), + _bZH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bZI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZH_), + _bZJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bZI_, _bZG_), + _bZK_ = caml_call2(Runtime_ocaml_Runtime[83], _bZJ_, _bZE_); + return caml_call2(Runtime_ocaml_Runtime[29], _gc_, _bZK_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gd_, [0], _bZA_, _bZz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ge_, _bZy_, _bZx_, _bZw_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gf_, _bZv_, _bZu_, _bZt_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gg_, _bZs_, _bZr_, _bZq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gh_, _bZp_, _bZo_, _bZn_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gi_, _bZm_, _bZl_, _bZk_); + }], + _bEk_ = caml_call4(Runtime_ocaml_Runtime[63], _gj_, _bEj_, _bEi_, _bEh_); + } + catch(_bZj_){ + var _bEg_ = caml_wrap_exception(_bZj_); + if(_bEg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _f2_], 1); + throw caml_maybe_attach_backtrace(_bEg_, 0); + } + var + multiplicateur_majoration_loye = + caml_call3 + (Runtime_ocaml_Runtime[28], _gk_, Runtime_ocaml_Runtime[15], _bEk_); + try{ + var + _bEm_ = + function(param){ + function _bYw_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bYx_(param){return 0;} + var + _bYy_ = + [0, + function(param){ + function _bYz_(param){ + var + _bZh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$17), + _bZi_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZh_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZi_); + } + function _bYA_(param){ + var + _bZf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bZg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZf_); + return caml_call2(Runtime_ocaml_Runtime[29], _gm_, _bZg_); + } + var + _bYB_ = + [0, + function(param){ + function _bYC_(param){ + var + _bZd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$18), + _bZe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bZd_); + return caml_call1(Runtime_ocaml_Runtime[69], _bZe_); + } + function _bYD_(param){ + var + _bY__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bY$_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bY__), + _bZa_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bZb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bZa_), + _bZc_ = caml_call2(Runtime_ocaml_Runtime[83], _bZb_, _bY$_); + return caml_call2(Runtime_ocaml_Runtime[29], _gn_, _bZc_); + } + var + _bYE_ = + [0, + function(param){ + function _bYF_(param){ + var + _bY8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$19), + _bY9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bY8_); + return caml_call1(Runtime_ocaml_Runtime[69], _bY9_); + } + function _bYG_(param){ + var + _bY2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bY3_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bY2_), + _bY4_ = + caml_call2(Runtime_ocaml_Runtime[83], _bY3_, colocation), + _bY5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bY6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bY5_), + _bY7_ = caml_call2(Runtime_ocaml_Runtime[83], _bY6_, _bY4_); + return caml_call2(Runtime_ocaml_Runtime[29], _go_, _bY7_); + } + var + _bYH_ = + [0, + function(param){ + function _bYI_(param){ + var + _bY0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$20), + _bY1_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bY0_); + return caml_call1(Runtime_ocaml_Runtime[69], _bY1_); + } + function _bYJ_(param){ + var + _bYV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bYW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYV_), + _bYX_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bYY_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYX_), + _bYZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bYY_, _bYW_); + return caml_call2(Runtime_ocaml_Runtime[29], _gp_, _bYZ_); + } + var + _bYK_ = + [0, + function(param){ + function _bYL_(param){ var - _cb__=caml_call2(Runtime_ocaml_Runtime[83],_cb9_,_cb8_), - _cb$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cca_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cb$_), - _ccb_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _ccc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ccb_), - _ccd_=caml_call2(Runtime_ocaml_Runtime[83],_ccc_,_cca_), - _cce_=caml_call2(Runtime_ocaml_Runtime[83],_ccd_,_cb__); - return caml_call2(Runtime_ocaml_Runtime[29],_sc_,_cce_)} - var - _cbU_= - [0, - function(param) - {function _cbV_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_5$17)} - function _cbW_(param) - {var - _cbX_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$27), - _cbY_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_cbX_); - switch(residence[0]) - {case 0:var _cbZ_=1;break; - case 1:var _cbZ_=0;break; - case 2:var _cbZ_=1;break; - case 3:var _cbZ_=1;break; - case 4:var _cbZ_=1;break; - case 5:var _cbZ_=1;break; - case 6:var _cbZ_=0;break; - case 7:var _cbZ_=0;break; - default:var _cbZ_=1} - var - _cb0_=caml_call2(Runtime_ocaml_Runtime[83],_cbZ_,_cbY_), - _cb1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cb2_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cb1_), - _cb3_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _cb4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cb3_), - _cb5_=caml_call2(Runtime_ocaml_Runtime[83],_cb4_,_cb2_), - _cb6_=caml_call2(Runtime_ocaml_Runtime[83],_cb5_,_cb0_); - return caml_call2(Runtime_ocaml_Runtime[29],_sd_,_cb6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_se_,[0],_cbW_,_cbV_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sf_,_cbU_,_cbT_,_cbS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sg_,_cbR_,_cbQ_,_cbP_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sh_,_cbO_,_cbN_,_cbM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_si_,_cbL_,_cbK_,_cbJ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sj_,_cbI_,_cbH_,_cbG_)}], - _bU0_=caml_call4(Runtime_ocaml_Runtime[63],_sk_,_bUZ_,_bUY_,_bUX_)} - catch(_cbF_) - {_cbF_ = caml_wrap_exception(_cbF_); - if(_cbF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_rZ_]; - throw _cbF_} - var - multiplicateur_majoration_plaf= - caml_call3 - (Runtime_ocaml_Runtime[28],_sl_,Runtime_ocaml_Runtime[15],_bU0_); - try - {var - _bU1_= - function(param) - {function _ca$_(param){throw Runtime_ocaml_Runtime[2]} - function _cba_(param){return 0} - function _cbb_(param) - {function _cbv_(param) - {var - _cbC_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224), - _cbD_= + _bYT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$21), + _bYU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bYT_); + return caml_call1(Runtime_ocaml_Runtime[69], _bYU_); + } + function _bYM_(param){ + var + _bYN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bYO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYN_), + _bYP_ = + caml_call2(Runtime_ocaml_Runtime[83], _bYO_, colocation), + _bYQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bYR_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYQ_), + _bYS_ = caml_call2(Runtime_ocaml_Runtime[83], _bYR_, _bYP_); + return caml_call2(Runtime_ocaml_Runtime[29], _gq_, _bYS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gr_, [0], _bYM_, _bYL_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gs_, _bYK_, _bYJ_, _bYI_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gt_, _bYH_, _bYG_, _bYF_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gu_, _bYE_, _bYD_, _bYC_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gv_, _bYB_, _bYA_, _bYz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gw_, _bYy_, _bYx_, _bYw_); + }, + _bEn_ = function(param){return 1;}, + _bEo_ = + [0, + function(param){ + function _bXt_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bXu_(param){return 0;} + var + _bXv_ = + [0, + function(param){ + function _bXw_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$13); + } + function _bXx_(param){ + var + _bYm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$23), + _bYn_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bYm_); + switch(residence[0]){ + case 0: + var _bYo_ = 1; break; + case 1: + var _bYo_ = 0; break; + case 2: + var _bYo_ = 1; break; + case 3: + var _bYo_ = 1; break; + case 4: + var _bYo_ = 1; break; + case 5: + var _bYo_ = 1; break; + case 6: + var _bYo_ = 0; break; + case 7: + var _bYo_ = 0; break; + default: var _bYo_ = 1; + } + var + _bYp_ = caml_call2(Runtime_ocaml_Runtime[83], _bYo_, _bYn_), + _bYq_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bYr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYq_), + _bYs_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bYt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYs_), + _bYu_ = caml_call2(Runtime_ocaml_Runtime[83], _bYt_, _bYr_), + _bYv_ = caml_call2(Runtime_ocaml_Runtime[83], _bYu_, _bYp_); + return caml_call2(Runtime_ocaml_Runtime[29], _gx_, _bYv_); + } + var + _bXy_ = + [0, + function(param){ + function _bXz_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$14); + } + function _bXA_(param){ + var + _bYc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$24), + _bYd_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bYc_); + switch(residence[0]){ + case 0: + var _bYe_ = 1; break; + case 1: + var _bYe_ = 0; break; + case 2: + var _bYe_ = 1; break; + case 3: + var _bYe_ = 1; break; + case 4: + var _bYe_ = 1; break; + case 5: + var _bYe_ = 1; break; + case 6: + var _bYe_ = 0; break; + case 7: + var _bYe_ = 0; break; + default: var _bYe_ = 1; + } + var + _bYf_ = caml_call2(Runtime_ocaml_Runtime[83], _bYe_, _bYd_), + _bYg_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bYh_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bYg_), + _bYi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bYj_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bYi_), + _bYk_ = caml_call2(Runtime_ocaml_Runtime[83], _bYj_, _bYh_), + _bYl_ = caml_call2(Runtime_ocaml_Runtime[83], _bYk_, _bYf_); + return caml_call2(Runtime_ocaml_Runtime[29], _gy_, _bYl_); + } + var + _bXB_ = + [0, + function(param){ + function _bXC_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$15); + } + function _bXD_(param){ + var + _bX4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$25), + _bX5_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bX4_); + switch(residence[0]){ + case 0: + var _bX6_ = 1; break; + case 1: + var _bX6_ = 0; break; + case 2: + var _bX6_ = 1; break; + case 3: + var _bX6_ = 1; break; + case 4: + var _bX6_ = 1; break; + case 5: + var _bX6_ = 1; break; + case 6: + var _bX6_ = 0; break; + case 7: + var _bX6_ = 0; break; + default: var _bX6_ = 1; + } + var + _bX7_ = caml_call2(Runtime_ocaml_Runtime[83], _bX6_, _bX5_), + _bX8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bX9_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bX8_), + _bX__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bX$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bX__), + _bYa_ = caml_call2(Runtime_ocaml_Runtime[83], _bX$_, _bX9_), + _bYb_ = caml_call2(Runtime_ocaml_Runtime[83], _bYa_, _bX7_); + return caml_call2(Runtime_ocaml_Runtime[29], _gz_, _bYb_); + } + var + _bXE_ = + [0, + function(param){ + function _bXF_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$16); + } + function _bXG_(param){ + var + _bXU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$26), + _bXV_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bXU_); + switch(residence[0]){ + case 0: + var _bXW_ = 1; break; + case 1: + var _bXW_ = 0; break; + case 2: + var _bXW_ = 1; break; + case 3: + var _bXW_ = 1; break; + case 4: + var _bXW_ = 1; break; + case 5: + var _bXW_ = 1; break; + case 6: + var _bXW_ = 0; break; + case 7: + var _bXW_ = 0; break; + default: var _bXW_ = 1; + } + var + _bXX_ = caml_call2(Runtime_ocaml_Runtime[83], _bXW_, _bXV_), + _bXY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bXZ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXY_), + _bX0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bX1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bX0_), + _bX2_ = caml_call2(Runtime_ocaml_Runtime[83], _bX1_, _bXZ_), + _bX3_ = caml_call2(Runtime_ocaml_Runtime[83], _bX2_, _bXX_); + return caml_call2(Runtime_ocaml_Runtime[29], _gA_, _bX3_); + } + var + _bXH_ = + [0, + function(param){ + function _bXI_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_5$17); + } + function _bXJ_(param){ + var + _bXK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$27), + _bXL_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _bXK_); + switch(residence[0]){ + case 0: + var _bXM_ = 1; break; + case 1: + var _bXM_ = 0; break; + case 2: + var _bXM_ = 1; break; + case 3: + var _bXM_ = 1; break; + case 4: + var _bXM_ = 1; break; + case 5: + var _bXM_ = 1; break; + case 6: + var _bXM_ = 0; break; + case 7: + var _bXM_ = 0; break; + default: var _bXM_ = 1; + } + var + _bXN_ = caml_call2(Runtime_ocaml_Runtime[83], _bXM_, _bXL_), + _bXO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bXP_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXO_), + _bXQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bXR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXQ_), + _bXS_ = caml_call2(Runtime_ocaml_Runtime[83], _bXR_, _bXP_), + _bXT_ = caml_call2(Runtime_ocaml_Runtime[83], _bXS_, _bXN_); + return caml_call2(Runtime_ocaml_Runtime[29], _gB_, _bXT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gC_, [0], _bXJ_, _bXI_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gD_, _bXH_, _bXG_, _bXF_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gE_, _bXE_, _bXD_, _bXC_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gF_, _bXB_, _bXA_, _bXz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gG_, _bXy_, _bXx_, _bXw_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gH_, _bXv_, _bXu_, _bXt_); + }], + _bEp_ = caml_call4(Runtime_ocaml_Runtime[63], _gI_, _bEo_, _bEn_, _bEm_); + } + catch(_bXs_){ + var _bEl_ = caml_wrap_exception(_bXs_); + if(_bEl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gl_], 1); + throw caml_maybe_attach_backtrace(_bEl_, 0); + } + var + multiplicateur_majoration_plaf = + caml_call3 + (Runtime_ocaml_Runtime[28], _gJ_, Runtime_ocaml_Runtime[15], _bEp_); + try{ + var + _bEr_ = + function(param){ + function _bWY_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bWZ_(param){return 0;} + function _bW0_(param){ + function _bXi_(param){ + var + _bXp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224), + _bXq_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bXp_, + multiplicateur_majoration_char), + _bXr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399); + return caml_call2(Runtime_ocaml_Runtime[93], _bXr_, _bXq_); + } + function _bXj_(param){ + var + _bXk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bXl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXk_), + _bXm_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bXn_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXm_), + _bXo_ = caml_call2(Runtime_ocaml_Runtime[83], _bXn_, _bXl_); + return caml_call2(Runtime_ocaml_Runtime[29], _gL_, _bXo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gM_, [0], _bXj_, _bXi_); + } + function _bW1_(param){ + function _bW__(param){ + var + _bXf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229), + _bXg_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bXf_, + multiplicateur_majoration_char), + _bXh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422); + return caml_call2(Runtime_ocaml_Runtime[93], _bXh_, _bXg_); + } + function _bW$_(param){ + var + _bXa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bXb_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bXa_), + _bXc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bXd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bXc_), + _bXe_ = caml_call2(Runtime_ocaml_Runtime[83], _bXd_, _bXb_); + return caml_call2(Runtime_ocaml_Runtime[29], _gN_, _bXe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gO_, [0], _bW$_, _bW__); + } + var + _bW2_ = + [0, + function(param){ + function _bW3_(param){ + var + _bW7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272), + _bW8_ = caml_call2 (Runtime_ocaml_Runtime[104], - _cbC_, + _bW7_, multiplicateur_majoration_char), - _cbE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399); - return caml_call2(Runtime_ocaml_Runtime[93],_cbE_,_cbD_)} - function _cbw_(param) - {var - _cbx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _cby_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbx_), - _cbz_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cbA_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cbz_), - _cbB_=caml_call2(Runtime_ocaml_Runtime[83],_cbA_,_cby_); - return caml_call2(Runtime_ocaml_Runtime[29],_sn_,_cbB_)} + _bW9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612); + return caml_call2(Runtime_ocaml_Runtime[93], _bW9_, _bW8_); + } + function _bW4_(param){ + var + _bW5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bW6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bW5_); + return caml_call2(Runtime_ocaml_Runtime[29], _gP_, _bW6_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_so_,[0],_cbw_,_cbv_)} - function _cbc_(param) - {function _cbl_(param) - {var - _cbs_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229), - _cbt_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _cbs_, - multiplicateur_majoration_char), - _cbu_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422); - return caml_call2(Runtime_ocaml_Runtime[93],_cbu_,_cbt_)} - function _cbm_(param) - {var - _cbn_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cbo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cbn_), - _cbp_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cbq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbp_), - _cbr_=caml_call2(Runtime_ocaml_Runtime[83],_cbq_,_cbo_); - return caml_call2(Runtime_ocaml_Runtime[29],_sp_,_cbr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sq_,[0],_cbm_,_cbl_)} + (Runtime_ocaml_Runtime[63], _gQ_, [0], _bW4_, _bW3_); + }, + _bW1_, + _bW0_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gR_, _bW2_, _bWZ_, _bWY_); + }, + _bEs_ = function(param){return 1;}, + _bEt_ = + [0, + function(param){ + function _bS8_(param){ + function _bVm_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bVn_(param){return 0;} + function _bVo_(param){ + function _bWH_(param){ + var + _bWQ_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bWR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929), + _bWS_ = caml_call2(Runtime_ocaml_Runtime[104], _bWR_, _bWQ_), + _bWT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bWT_, _bWS_), + _bWU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$28), + _bWV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$0), + _bWW_ = caml_call2(Runtime_ocaml_Runtime[104], _bWV_, _bWU_), + _bWX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bWX_, _bWW_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bWI_(param){ + switch(residence[0]){ + case 0: + var _bWJ_ = 1; break; + case 1: + var _bWJ_ = 0; break; + case 2: + var _bWJ_ = 1; break; + case 3: + var _bWJ_ = 1; break; + case 4: + var _bWJ_ = 1; break; + case 5: + var _bWJ_ = 1; break; + case 6: + var _bWJ_ = 0; break; + case 7: + var _bWJ_ = 0; break; + default: var _bWJ_ = 1; + } + var + _bWK_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bWL_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWK_), + _bWM_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bWN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWM_), + _bWO_ = caml_call2(Runtime_ocaml_Runtime[83], _bWN_, _bWL_), + _bWP_ = caml_call2(Runtime_ocaml_Runtime[83], _bWO_, _bWJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _gS_, _bWP_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gT_, [0], _bWI_, _bWH_); + } + function _bVp_(param){ + function _bWq_(param){ + var + _bWz_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bWA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932), + _bWB_ = caml_call2(Runtime_ocaml_Runtime[104], _bWA_, _bWz_), + _bWC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bWC_, _bWB_), + _bWD_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$29), + _bWE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$0), + _bWF_ = caml_call2(Runtime_ocaml_Runtime[104], _bWE_, _bWD_), + _bWG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bWG_, _bWF_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bWr_(param){ + switch(residence[0]){ + case 0: + var _bWs_ = 1; break; + case 1: + var _bWs_ = 0; break; + case 2: + var _bWs_ = 1; break; + case 3: + var _bWs_ = 1; break; + case 4: + var _bWs_ = 1; break; + case 5: + var _bWs_ = 1; break; + case 6: + var _bWs_ = 0; break; + case 7: + var _bWs_ = 0; break; + default: var _bWs_ = 1; + } + var + _bWt_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bWu_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWt_), + _bWv_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bWw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWv_), + _bWx_ = caml_call2(Runtime_ocaml_Runtime[83], _bWw_, _bWu_), + _bWy_ = caml_call2(Runtime_ocaml_Runtime[83], _bWx_, _bWs_); + return caml_call2(Runtime_ocaml_Runtime[29], _gU_, _bWy_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gV_, [0], _bWr_, _bWq_); + } + function _bVq_(param){ + function _bVT_(param){ + var + _bWi_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bWj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936), + _bWk_ = caml_call2(Runtime_ocaml_Runtime[104], _bWj_, _bWi_), + _bWl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bWl_, _bWk_), + _bWm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$30), + _bWn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$0), + _bWo_ = caml_call2(Runtime_ocaml_Runtime[104], _bWn_, _bWm_), + _bWp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bWp_, _bWo_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bVU_(param){ + switch(residence[0]){ + case 0: + var _bWb_ = 1; break; + case 1: + var _bWb_ = 0; break; + case 2: + var _bWb_ = 1; break; + case 3: + var _bWb_ = 1; break; + case 4: + var _bWb_ = 1; break; + case 5: + var _bWb_ = 1; break; + case 6: + var _bWb_ = 0; break; + case 7: + var _bWb_ = 0; break; + default: var _bWb_ = 1; + } + var + _bWc_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bWd_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bWc_), + _bWe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bWf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bWe_), + _bWg_ = caml_call2(Runtime_ocaml_Runtime[83], _bWf_, _bWd_), + _bWh_ = caml_call2(Runtime_ocaml_Runtime[83], _bWg_, _bWb_); + return caml_call2(Runtime_ocaml_Runtime[29], _gW_, _bWh_); + } var - _cbd_= + _bVV_ = + [0, + function(param){ + function _bVW_(param){ + var + _bV5_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bV6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$1), + _bV7_ = caml_call2(Runtime_ocaml_Runtime[104], _bV6_, _bV5_), + _bV8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$1), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bV8_, _bV7_), + _bV9_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$31), + _bV__ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$2), + _bV$_ = caml_call2(Runtime_ocaml_Runtime[104], _bV__, _bV9_), + _bWa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$2), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bWa_, _bV$_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bVX_(param){ + switch(residence[0]){ + case 0: + var _bVY_ = 1; break; + case 1: + var _bVY_ = 0; break; + case 2: + var _bVY_ = 1; break; + case 3: + var _bVY_ = 1; break; + case 4: + var _bVY_ = 1; break; + case 5: + var _bVY_ = 1; break; + case 6: + var _bVY_ = 0; break; + case 7: + var _bVY_ = 0; break; + default: var _bVY_ = 1; + } + var + _bVZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bV0_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVZ_), + _bV1_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bV2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bV1_), + _bV3_ = caml_call2(Runtime_ocaml_Runtime[83], _bV2_, _bV0_), + _bV4_ = caml_call2(Runtime_ocaml_Runtime[83], _bV3_, _bVY_); + return caml_call2(Runtime_ocaml_Runtime[29], _gX_, _bV4_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _gY_, [0], _bVX_, _bVW_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _gZ_, _bVV_, _bVU_, _bVT_); + } + function _bVr_(param){ + function _bVC_(param){ + var + _bVL_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bVM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969), + _bVN_ = caml_call2(Runtime_ocaml_Runtime[104], _bVM_, _bVL_), + _bVO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767), + montant = caml_call2(Runtime_ocaml_Runtime[93], _bVO_, _bVN_), + _bVP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$32), + _bVQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$0), + _bVR_ = caml_call2(Runtime_ocaml_Runtime[104], _bVQ_, _bVP_), + _bVS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$0), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bVS_, _bVR_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bVD_(param){ + switch(residence[0]){ + case 0: + var _bVE_ = 1; break; + case 1: + var _bVE_ = 0; break; + case 2: + var _bVE_ = 1; break; + case 3: + var _bVE_ = 1; break; + case 4: + var _bVE_ = 1; break; + case 5: + var _bVE_ = 1; break; + case 6: + var _bVE_ = 0; break; + case 7: + var _bVE_ = 0; break; + default: var _bVE_ = 1; + } + var + _bVF_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bVG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVF_), + _bVH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bVI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVH_), + _bVJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bVI_, _bVG_), + _bVK_ = caml_call2(Runtime_ocaml_Runtime[83], _bVJ_, _bVE_); + return caml_call2(Runtime_ocaml_Runtime[29], _g0_, _bVK_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g1_, [0], _bVD_, _bVC_); + } + var + _bVs_ = [0, - function(param) - {function _cbe_(param) - {var - _cbi_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272), - _cbj_= + function(param){ + function _bVt_(param){ + var + _bVz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$1), + _bVA_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bVz_, + multiplicateur_majoration_char), + _bVB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bVB_, _bVA_); + } + function _bVu_(param){ + switch(residence[0]){ + case 0: + var _bVv_ = 1; break; + case 1: + var _bVv_ = 0; break; + case 2: + var _bVv_ = 1; break; + case 3: + var _bVv_ = 1; break; + case 4: + var _bVv_ = 1; break; + case 5: + var _bVv_ = 1; break; + case 6: + var _bVv_ = 0; break; + case 7: + var _bVv_ = 0; break; + default: var _bVv_ = 1; + } + var + _bVw_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bVx_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVw_), + _bVy_ = caml_call2(Runtime_ocaml_Runtime[83], _bVx_, _bVv_); + return caml_call2(Runtime_ocaml_Runtime[29], _g2_, _bVy_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g3_, [0], _bVu_, _bVt_); + }, + _bVr_, + _bVq_, + _bVp_, + _bVo_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _g4_, _bVs_, _bVn_, _bVm_); + } + function _bS9_(param){return 1;} + var + _bS__ = + [0, + function(param){ + function _bS$_(param){ + function _bUP_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _bUQ_(param){return 0;} + function _bUR_(param){ + function _bVb_(param){ + var + _bVj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$0), + _bVk_ = caml_call2 (Runtime_ocaml_Runtime[104], - _cbi_, + _bVj_, multiplicateur_majoration_char), - _cbk_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612); - return caml_call2(Runtime_ocaml_Runtime[93],_cbk_,_cbj_)} - function _cbf_(param) - {var - _cbg_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _cbh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cbg_); - return caml_call2(Runtime_ocaml_Runtime[29],_sr_,_cbh_)} + _bVl_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bVl_, _bVk_); + } + function _bVc_(param){ + var + _bVd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bVe_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bVd_), + _bVf_ = + caml_call2(Runtime_ocaml_Runtime[83], _bVe_, colocation), + _bVg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bVh_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bVg_), + _bVi_ = caml_call2(Runtime_ocaml_Runtime[83], _bVh_, _bVf_); + return caml_call2(Runtime_ocaml_Runtime[29], _g5_, _bVi_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_ss_,[0],_cbf_,_cbe_)}, - _cbc_, - _cbb_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_st_,_cbd_,_cba_,_ca$_)}, - _bU2_=function(param){return 1}, - _bU3_= - [0, - function(param) - {function _b9j_(param) - {function _b$z_(param){throw Runtime_ocaml_Runtime[2]} - function _b$A_(param){return 0} - function _b$B_(param) - {function _caU_(param) - {var - _ca3_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _ca4_=caml_call1(Runtime_ocaml_Runtime[31],cst_929), - _ca5_=caml_call2(Runtime_ocaml_Runtime[104],_ca4_,_ca3_), - _ca6_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614), - montant=caml_call2(Runtime_ocaml_Runtime[93],_ca6_,_ca5_), - _ca7_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$28), - _ca8_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$0), - _ca9_=caml_call2(Runtime_ocaml_Runtime[104],_ca8_,_ca7_), - _ca__=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$0), - limite=caml_call2(Runtime_ocaml_Runtime[93],_ca__,_ca9_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _caV_(param) - {switch(residence[0]) - {case 0:var _caW_=1;break; - case 1:var _caW_=0;break; - case 2:var _caW_=1;break; - case 3:var _caW_=1;break; - case 4:var _caW_=1;break; - case 5:var _caW_=1;break; - case 6:var _caW_=0;break; - case 7:var _caW_=0;break; - default:var _caW_=1} - var - _caX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _caY_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caX_), - _caZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _ca0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_caZ_), - _ca1_=caml_call2(Runtime_ocaml_Runtime[83],_ca0_,_caY_), - _ca2_=caml_call2(Runtime_ocaml_Runtime[83],_ca1_,_caW_); - return caml_call2(Runtime_ocaml_Runtime[29],_su_,_ca2_)} + (Runtime_ocaml_Runtime[63], _g6_, [0], _bVc_, _bVb_); + } + function _bUS_(param){ + function _bU2_(param){ + var + _bU__ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$0), + _bU$_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bU__, + multiplicateur_majoration_char), + _bVa_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bVa_, _bU$_); + } + function _bU3_(param){ + var + _bU4_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bU5_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bU4_), + _bU6_ = + caml_call2(Runtime_ocaml_Runtime[83], _bU5_, colocation), + _bU7_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bU8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bU7_), + _bU9_ = caml_call2(Runtime_ocaml_Runtime[83], _bU8_, _bU6_); + return caml_call2(Runtime_ocaml_Runtime[29], _g7_, _bU9_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_sv_,[0],_caV_,_caU_)} - function _b$C_(param) - {function _caD_(param) - {var - _caM_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _caN_=caml_call1(Runtime_ocaml_Runtime[31],cst_932), - _caO_=caml_call2(Runtime_ocaml_Runtime[104],_caN_,_caM_), - _caP_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625), - montant=caml_call2(Runtime_ocaml_Runtime[93],_caP_,_caO_), - _caQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$29), - _caR_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$0), - _caS_=caml_call2(Runtime_ocaml_Runtime[104],_caR_,_caQ_), - _caT_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$0), - limite=caml_call2(Runtime_ocaml_Runtime[93],_caT_,_caS_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _caE_(param) - {switch(residence[0]) - {case 0:var _caF_=1;break; - case 1:var _caF_=0;break; - case 2:var _caF_=1;break; - case 3:var _caF_=1;break; - case 4:var _caF_=1;break; - case 5:var _caF_=1;break; - case 6:var _caF_=0;break; - case 7:var _caF_=0;break; - default:var _caF_=1} - var - _caG_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _caH_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caG_), - _caI_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _caJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_caI_), - _caK_=caml_call2(Runtime_ocaml_Runtime[83],_caJ_,_caH_), - _caL_=caml_call2(Runtime_ocaml_Runtime[83],_caK_,_caF_); - return caml_call2(Runtime_ocaml_Runtime[29],_sw_,_caL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sx_,[0],_caE_,_caD_)} - function _b$D_(param) - {function _b$6_(param) - {var - _cav_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _caw_=caml_call1(Runtime_ocaml_Runtime[31],cst_936), - _cax_=caml_call2(Runtime_ocaml_Runtime[104],_caw_,_cav_), - _cay_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640), - montant=caml_call2(Runtime_ocaml_Runtime[93],_cay_,_cax_), - _caz_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$30), - _caA_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$0), - _caB_=caml_call2(Runtime_ocaml_Runtime[104],_caA_,_caz_), - _caC_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$0), - limite=caml_call2(Runtime_ocaml_Runtime[93],_caC_,_caB_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b$7_(param) - {switch(residence[0]) - {case 0:var _cao_=1;break; - case 1:var _cao_=0;break; - case 2:var _cao_=1;break; - case 3:var _cao_=1;break; - case 4:var _cao_=1;break; - case 5:var _cao_=1;break; - case 6:var _cao_=0;break; - case 7:var _cao_=0;break; - default:var _cao_=1} - var - _cap_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _caq_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_cap_), - _car_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cas_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_car_), - _cat_=caml_call2(Runtime_ocaml_Runtime[83],_cas_,_caq_), - _cau_=caml_call2(Runtime_ocaml_Runtime[83],_cat_,_cao_); - return caml_call2(Runtime_ocaml_Runtime[29],_sy_,_cau_)} - var - _b$8_= + (Runtime_ocaml_Runtime[63], _g8_, [0], _bU3_, _bU2_); + } + var + _bUT_ = [0, - function(param) - {function _b$9_(param) - {var - _cag_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _cah_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$1), - _cai_=caml_call2(Runtime_ocaml_Runtime[104],_cah_,_cag_), - _caj_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$1), - montant=caml_call2(Runtime_ocaml_Runtime[93],_caj_,_cai_), - _cak_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$31), - _cal_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$2), - _cam_=caml_call2(Runtime_ocaml_Runtime[104],_cal_,_cak_), - _can_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$2), - limite=caml_call2(Runtime_ocaml_Runtime[93],_can_,_cam_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b$__(param) - {switch(residence[0]) - {case 0:var _b$$_=1;break; - case 1:var _b$$_=0;break; - case 2:var _b$$_=1;break; - case 3:var _b$$_=1;break; - case 4:var _b$$_=1;break; - case 5:var _b$$_=1;break; - case 6:var _b$$_=0;break; - case 7:var _b$$_=0;break; - default:var _b$$_=1} - var - _caa_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _cab_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_caa_), - _cac_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _cad_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_cac_), - _cae_=caml_call2(Runtime_ocaml_Runtime[83],_cad_,_cab_), - _caf_=caml_call2(Runtime_ocaml_Runtime[83],_cae_,_b$$_); - return caml_call2(Runtime_ocaml_Runtime[29],_sz_,_caf_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sA_,[0],_b$__,_b$9_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sB_,_b$8_,_b$7_,_b$6_)} - function _b$E_(param) - {function _b$P_(param) - {var - _b$Y_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b$Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_969), - _b$0_=caml_call2(Runtime_ocaml_Runtime[104],_b$Z_,_b$Y_), - _b$1_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b$1_,_b$0_), - _b$2_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$32), - _b$3_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$0), - _b$4_=caml_call2(Runtime_ocaml_Runtime[104],_b$3_,_b$2_), - _b$5_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$0), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b$5_,_b$4_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b$Q_(param) - {switch(residence[0]) - {case 0:var _b$R_=1;break; - case 1:var _b$R_=0;break; - case 2:var _b$R_=1;break; - case 3:var _b$R_=1;break; - case 4:var _b$R_=1;break; - case 5:var _b$R_=1;break; - case 6:var _b$R_=0;break; - case 7:var _b$R_=0;break; - default:var _b$R_=1} - var - _b$S_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b$T_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$S_), - _b$U_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b$V_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$U_), - _b$W_=caml_call2(Runtime_ocaml_Runtime[83],_b$V_,_b$T_), - _b$X_=caml_call2(Runtime_ocaml_Runtime[83],_b$W_,_b$R_); - return caml_call2(Runtime_ocaml_Runtime[29],_sC_,_b$X_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sD_,[0],_b$Q_,_b$P_)} - var - _b$F_= - [0, - function(param) - {function _b$G_(param) - {var - _b$M_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$1), - _b$N_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b$M_, - multiplicateur_majoration_char), - _b$O_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$1); - return caml_call2(Runtime_ocaml_Runtime[93],_b$O_,_b$N_)} - function _b$H_(param) - {switch(residence[0]) - {case 0:var _b$I_=1;break; - case 1:var _b$I_=0;break; - case 2:var _b$I_=1;break; - case 3:var _b$I_=1;break; - case 4:var _b$I_=1;break; - case 5:var _b$I_=1;break; - case 6:var _b$I_=0;break; - case 7:var _b$I_=0;break; - default:var _b$I_=1} + function(param){ + function _bUU_(param){ var - _b$J_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b$K_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$J_), - _b$L_=caml_call2(Runtime_ocaml_Runtime[83],_b$K_,_b$I_); - return caml_call2(Runtime_ocaml_Runtime[29],_sE_,_b$L_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sF_,[0],_b$H_,_b$G_)}, - _b$E_, - _b$D_, - _b$C_, - _b$B_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sG_,_b$F_,_b$A_,_b$z_)} - function _b9k_(param){return 1} - var - _b9l_= - [0, - function(param) - {function _b9m_(param) - {function _b_2_(param){throw Runtime_ocaml_Runtime[2]} - function _b_3_(param){return 0} - function _b_4_(param) - {function _b$o_(param) - {var - _b$w_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$0), - _b$x_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b$w_, - multiplicateur_majoration_char), - _b$y_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b$y_,_b$x_)} - function _b$p_(param) - {var - _b$q_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b$r_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$q_), - _b$s_=caml_call2(Runtime_ocaml_Runtime[83],_b$r_,colocation), - _b$t_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b$u_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$t_), - _b$v_=caml_call2(Runtime_ocaml_Runtime[83],_b$u_,_b$s_); - return caml_call2(Runtime_ocaml_Runtime[29],_sH_,_b$v_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sI_,[0],_b$p_,_b$o_)} - function _b_5_(param) - {function _b$d_(param) - {var - _b$l_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$0), - _b$m_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b$l_, - multiplicateur_majoration_char), - _b$n_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b$n_,_b$m_)} - function _b$e_(param) - {var - _b$f_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b$g_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b$f_), - _b$h_=caml_call2(Runtime_ocaml_Runtime[83],_b$g_,colocation), - _b$i_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b$j_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b$i_), - _b$k_=caml_call2(Runtime_ocaml_Runtime[83],_b$j_,_b$h_); - return caml_call2(Runtime_ocaml_Runtime[29],_sJ_,_b$k_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sK_,[0],_b$e_,_b$d_)} + _bUZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$0), + _bU0_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bUZ_, + multiplicateur_majoration_char), + _bU1_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bU1_, _bU0_); + } + function _bUV_(param){ + var + _bUW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bUX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUW_), + _bUY_ = + caml_call2(Runtime_ocaml_Runtime[83], _bUX_, colocation); + return caml_call2(Runtime_ocaml_Runtime[29], _g9_, _bUY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _g__, [0], _bUV_, _bUU_); + }, + _bUS_, + _bUR_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _g$_, _bUT_, _bUQ_, _bUP_); + } + function _bTa_(param){return 1;} + var + _bTb_ = + [0, + function(param){ + function _bTc_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _bTd_(param){return 0;} + function _bTe_(param){ + function _bUy_(param){ + var + _bUH_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bUI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$1), + _bUJ_ = caml_call2(Runtime_ocaml_Runtime[104], _bUI_, _bUH_), + _bUK_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$2), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bUK_, _bUJ_), + _bUL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$33), + _bUM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$2), + _bUN_ = caml_call2(Runtime_ocaml_Runtime[104], _bUM_, _bUL_), + _bUO_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$1), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bUO_, _bUN_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bUz_(param){ + switch(residence[0]){ + case 0: + var _bUA_ = 1; break; + case 1: + var _bUA_ = 0; break; + case 2: + var _bUA_ = 1; break; + case 3: + var _bUA_ = 1; break; + case 4: + var _bUA_ = 1; break; + case 5: + var _bUA_ = 1; break; + case 6: + var _bUA_ = 0; break; + case 7: + var _bUA_ = 0; break; + default: var _bUA_ = 1; + } + var + _bUB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bUC_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUB_), + _bUD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bUE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUD_), + _bUF_ = caml_call2(Runtime_ocaml_Runtime[83], _bUE_, _bUC_), + _bUG_ = caml_call2(Runtime_ocaml_Runtime[83], _bUF_, _bUA_); + return caml_call2(Runtime_ocaml_Runtime[29], _ha_, _bUG_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hb_, [0], _bUz_, _bUy_); + } + function _bTf_(param){ + function _bUh_(param){ + var + _bUq_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bUr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$1), + _bUs_ = caml_call2(Runtime_ocaml_Runtime[104], _bUr_, _bUq_), + _bUt_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$2), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bUt_, _bUs_), + _bUu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$34), + _bUv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$2), + _bUw_ = caml_call2(Runtime_ocaml_Runtime[104], _bUv_, _bUu_), + _bUx_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$1), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bUx_, _bUw_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bUi_(param){ + switch(residence[0]){ + case 0: + var _bUj_ = 1; break; + case 1: + var _bUj_ = 0; break; + case 2: + var _bUj_ = 1; break; + case 3: + var _bUj_ = 1; break; + case 4: + var _bUj_ = 1; break; + case 5: + var _bUj_ = 1; break; + case 6: + var _bUj_ = 0; break; + case 7: + var _bUj_ = 0; break; + default: var _bUj_ = 1; + } + var + _bUk_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bUl_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bUk_), + _bUm_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bUn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bUm_), + _bUo_ = caml_call2(Runtime_ocaml_Runtime[83], _bUn_, _bUl_), + _bUp_ = caml_call2(Runtime_ocaml_Runtime[83], _bUo_, _bUj_); + return caml_call2(Runtime_ocaml_Runtime[29], _hc_, _bUp_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hd_, [0], _bUi_, _bUh_); + } + function _bTg_(param){ + function _bTK_(param){ + var + _bT$_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bUa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$3), + _bUb_ = caml_call2(Runtime_ocaml_Runtime[104], _bUa_, _bT$_), + _bUc_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$4), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bUc_, _bUb_), + _bUd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$35), + _bUe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$4), + _bUf_ = caml_call2(Runtime_ocaml_Runtime[104], _bUe_, _bUd_), + _bUg_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$3), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bUg_, _bUf_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bTL_(param){ + switch(residence[0]){ + case 0: + var _bT4_ = 1; break; + case 1: + var _bT4_ = 0; break; + case 2: + var _bT4_ = 1; break; + case 3: + var _bT4_ = 1; break; + case 4: + var _bT4_ = 1; break; + case 5: + var _bT4_ = 1; break; + case 6: + var _bT4_ = 0; break; + case 7: + var _bT4_ = 0; break; + default: var _bT4_ = 1; + } + var + _bT5_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bT6_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bT5_), + _bT7_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bT8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bT7_), + _bT9_ = caml_call2(Runtime_ocaml_Runtime[83], _bT8_, _bT6_), + _bT__ = caml_call2(Runtime_ocaml_Runtime[83], _bT9_, _bT4_); + return caml_call2(Runtime_ocaml_Runtime[29], _he_, _bT__); + } + var + _bTM_ = + [0, + function(param){ + function _bTN_(param){ + var + _bTW_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bTX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$5), + _bTY_ = caml_call2(Runtime_ocaml_Runtime[104], _bTX_, _bTW_), + _bTZ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$6), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bTZ_, _bTY_), + _bT0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$36), + _bT1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$6), + _bT2_ = caml_call2(Runtime_ocaml_Runtime[104], _bT1_, _bT0_), + _bT3_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$5), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bT3_, _bT2_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bTO_(param){ + switch(residence[0]){ + case 0: + var _bTP_ = 1; break; + case 1: + var _bTP_ = 0; break; + case 2: + var _bTP_ = 1; break; + case 3: + var _bTP_ = 1; break; + case 4: + var _bTP_ = 1; break; + case 5: + var _bTP_ = 1; break; + case 6: + var _bTP_ = 0; break; + case 7: + var _bTP_ = 0; break; + default: var _bTP_ = 1; + } + var + _bTQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bTR_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bTQ_), + _bTS_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bTT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTS_), + _bTU_ = caml_call2(Runtime_ocaml_Runtime[83], _bTT_, _bTR_), + _bTV_ = caml_call2(Runtime_ocaml_Runtime[83], _bTU_, _bTP_); + return caml_call2(Runtime_ocaml_Runtime[29], _hf_, _bTV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hg_, [0], _bTO_, _bTN_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hh_, _bTM_, _bTL_, _bTK_); + } + function _bTh_(param){ + function _bTt_(param){ + var + _bTC_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bTD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$2), + _bTE_ = caml_call2(Runtime_ocaml_Runtime[104], _bTD_, _bTC_), + _bTF_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$3), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _bTF_, _bTE_), + _bTG_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$37), + _bTH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$3), + _bTI_ = caml_call2(Runtime_ocaml_Runtime[104], _bTH_, _bTG_), + _bTJ_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$2), + limite = caml_call2(Runtime_ocaml_Runtime[93], _bTJ_, _bTI_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _bTu_(param){ + switch(residence[0]){ + case 0: + var _bTv_ = 1; break; + case 1: + var _bTv_ = 0; break; + case 2: + var _bTv_ = 1; break; + case 3: + var _bTv_ = 1; break; + case 4: + var _bTv_ = 1; break; + case 5: + var _bTv_ = 1; break; + case 6: + var _bTv_ = 0; break; + case 7: + var _bTv_ = 0; break; + default: var _bTv_ = 1; + } + var + _bTw_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bTx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bTw_), + _bTy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bTz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTy_), + _bTA_ = caml_call2(Runtime_ocaml_Runtime[83], _bTz_, _bTx_), + _bTB_ = caml_call2(Runtime_ocaml_Runtime[83], _bTA_, _bTv_); + return caml_call2(Runtime_ocaml_Runtime[29], _hi_, _bTB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hj_, [0], _bTu_, _bTt_); + } var - _b_6_= - [0, - function(param) - {function _b_7_(param) - {var - _b$a_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$0), - _b$b_= + _bTi_ = + [0, + function(param){ + function _bTj_(param){ + var + _bTq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$4), + _bTr_ = caml_call2 (Runtime_ocaml_Runtime[104], - _b$a_, + _bTq_, multiplicateur_majoration_char), - _b$c_= + _bTs_ = 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b$c_,_b$b_)} - function _b_8_(param) - {var - _b_9_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b___= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_9_), - _b_$_=caml_call2(Runtime_ocaml_Runtime[83],_b___,colocation); - return caml_call2(Runtime_ocaml_Runtime[29],_sL_,_b_$_)} + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$4); + return caml_call2(Runtime_ocaml_Runtime[93], _bTs_, _bTr_); + } + function _bTk_(param){ + switch(residence[0]){ + case 0: + var _bTl_ = 1; break; + case 1: + var _bTl_ = 0; break; + case 2: + var _bTl_ = 1; break; + case 3: + var _bTl_ = 1; break; + case 4: + var _bTl_ = 1; break; + case 5: + var _bTl_ = 1; break; + case 6: + var _bTl_ = 0; break; + case 7: + var _bTl_ = 0; break; + default: var _bTl_ = 1; + } + var + _bTm_ = + caml_call2(Runtime_ocaml_Runtime[83], _bTl_, colocation), + _bTn_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bTo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bTn_), + _bTp_ = caml_call2(Runtime_ocaml_Runtime[83], _bTo_, _bTm_); + return caml_call2(Runtime_ocaml_Runtime[29], _hk_, _bTp_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_sM_,[0],_b_8_,_b_7_)}, - _b_5_, - _b_4_]; + (Runtime_ocaml_Runtime[63], _hl_, [0], _bTk_, _bTj_); + }, + _bTh_, + _bTg_, + _bTf_, + _bTe_]; return caml_call4 - (Runtime_ocaml_Runtime[63],_sN_,_b_6_,_b_3_,_b_2_)} - function _b9n_(param){return 1} - var - _b9o_= - [0, - function(param) - {function _b9p_(param){throw Runtime_ocaml_Runtime[2]} - function _b9q_(param){return 0} - function _b9r_(param) - {function _b_L_(param) - {var - _b_U_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b_V_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$1), - _b_W_=caml_call2(Runtime_ocaml_Runtime[104],_b_V_,_b_U_), - _b_X_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$2), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b_X_,_b_W_), - _b_Y_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$33), - _b_Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$2), - _b_0_=caml_call2(Runtime_ocaml_Runtime[104],_b_Z_,_b_Y_), - _b_1_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$1), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b_1_,_b_0_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b_M_(param) - {switch(residence[0]) - {case 0:var _b_N_=1;break; - case 1:var _b_N_=0;break; - case 2:var _b_N_=1;break; - case 3:var _b_N_=1;break; - case 4:var _b_N_=1;break; - case 5:var _b_N_=1;break; - case 6:var _b_N_=0;break; - case 7:var _b_N_=0;break; - default:var _b_N_=1} - var - _b_O_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b_P_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_O_), - _b_Q_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b_R_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_Q_), - _b_S_=caml_call2(Runtime_ocaml_Runtime[83],_b_R_,_b_P_), - _b_T_=caml_call2(Runtime_ocaml_Runtime[83],_b_S_,_b_N_); - return caml_call2(Runtime_ocaml_Runtime[29],_sO_,_b_T_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sP_,[0],_b_M_,_b_L_)} - function _b9s_(param) - {function _b_u_(param) - {var - _b_D_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b_E_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$1), - _b_F_=caml_call2(Runtime_ocaml_Runtime[104],_b_E_,_b_D_), - _b_G_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$2), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b_G_,_b_F_), - _b_H_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$34), - _b_I_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$2), - _b_J_=caml_call2(Runtime_ocaml_Runtime[104],_b_I_,_b_H_), - _b_K_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$1), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b_K_,_b_J_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b_v_(param) - {switch(residence[0]) - {case 0:var _b_w_=1;break; - case 1:var _b_w_=0;break; - case 2:var _b_w_=1;break; - case 3:var _b_w_=1;break; - case 4:var _b_w_=1;break; - case 5:var _b_w_=1;break; - case 6:var _b_w_=0;break; - case 7:var _b_w_=0;break; - default:var _b_w_=1} - var - _b_x_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b_y_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_x_), - _b_z_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b_A_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_z_), - _b_B_=caml_call2(Runtime_ocaml_Runtime[83],_b_A_,_b_y_), - _b_C_=caml_call2(Runtime_ocaml_Runtime[83],_b_B_,_b_w_); - return caml_call2(Runtime_ocaml_Runtime[29],_sQ_,_b_C_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sR_,[0],_b_v_,_b_u_)} - function _b9t_(param) - {function _b9X_(param) - {var - _b_m_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b_n_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$3), - _b_o_=caml_call2(Runtime_ocaml_Runtime[104],_b_n_,_b_m_), - _b_p_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$4), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b_p_,_b_o_), - _b_q_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$35), - _b_r_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$4), - _b_s_=caml_call2(Runtime_ocaml_Runtime[104],_b_r_,_b_q_), - _b_t_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$3), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b_t_,_b_s_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b9Y_(param) - {switch(residence[0]) - {case 0:var _b_f_=1;break; - case 1:var _b_f_=0;break; - case 2:var _b_f_=1;break; - case 3:var _b_f_=1;break; - case 4:var _b_f_=1;break; - case 5:var _b_f_=1;break; - case 6:var _b_f_=0;break; - case 7:var _b_f_=0;break; - default:var _b_f_=1} - var - _b_g_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b_h_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b_g_), - _b_i_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b_j_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b_i_), - _b_k_=caml_call2(Runtime_ocaml_Runtime[83],_b_j_,_b_h_), - _b_l_=caml_call2(Runtime_ocaml_Runtime[83],_b_k_,_b_f_); - return caml_call2(Runtime_ocaml_Runtime[29],_sS_,_b_l_)} - var - _b9Z_= - [0, - function(param) - {function _b90_(param) - {var - _b99_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b9__=caml_call1(Runtime_ocaml_Runtime[31],cst_936$5), - _b9$_=caml_call2(Runtime_ocaml_Runtime[104],_b9__,_b99_), - _b_a_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$6), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b_a_,_b9$_), - _b_b_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$36), - _b_c_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$6), - _b_d_=caml_call2(Runtime_ocaml_Runtime[104],_b_c_,_b_b_), - _b_e_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$2) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$5), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b_e_,_b_d_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b91_(param) - {switch(residence[0]) - {case 0:var _b92_=1;break; - case 1:var _b92_=0;break; - case 2:var _b92_=1;break; - case 3:var _b92_=1;break; - case 4:var _b92_=1;break; - case 5:var _b92_=1;break; - case 6:var _b92_=0;break; - case 7:var _b92_=0;break; - default:var _b92_=1} - var - _b93_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b94_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b93_), - _b95_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b96_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b95_), - _b97_=caml_call2(Runtime_ocaml_Runtime[83],_b96_,_b94_), - _b98_=caml_call2(Runtime_ocaml_Runtime[83],_b97_,_b92_); - return caml_call2(Runtime_ocaml_Runtime[29],_sT_,_b98_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sU_,[0],_b91_,_b90_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_sV_,_b9Z_,_b9Y_,_b9X_)} - function _b9u_(param) - {function _b9G_(param) - {var - _b9P_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _b9Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$2), - _b9R_=caml_call2(Runtime_ocaml_Runtime[104],_b9Q_,_b9P_), - _b9S_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$3), - montant=caml_call2(Runtime_ocaml_Runtime[93],_b9S_,_b9R_), - _b9T_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$37), - _b9U_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$3), - _b9V_=caml_call2(Runtime_ocaml_Runtime[104],_b9U_,_b9T_), - _b9W_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$2), - limite=caml_call2(Runtime_ocaml_Runtime[93],_b9W_,_b9V_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _b9H_(param) - {switch(residence[0]) - {case 0:var _b9I_=1;break; - case 1:var _b9I_=0;break; - case 2:var _b9I_=1;break; - case 3:var _b9I_=1;break; - case 4:var _b9I_=1;break; - case 5:var _b9I_=1;break; - case 6:var _b9I_=0;break; - case 7:var _b9I_=0;break; - default:var _b9I_=1} - var - _b9J_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b9K_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b9J_), - _b9L_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b9M_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b9L_), - _b9N_=caml_call2(Runtime_ocaml_Runtime[83],_b9M_,_b9K_), - _b9O_=caml_call2(Runtime_ocaml_Runtime[83],_b9N_,_b9I_); - return caml_call2(Runtime_ocaml_Runtime[29],_sW_,_b9O_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sX_,[0],_b9H_,_b9G_)} - var - _b9v_= - [0, - function(param) - {function _b9w_(param) - {var - _b9D_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$4), - _b9E_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b9D_, - multiplicateur_majoration_char), - _b9F_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$4); - return caml_call2(Runtime_ocaml_Runtime[93],_b9F_,_b9E_)} - function _b9x_(param) - {switch(residence[0]) - {case 0:var _b9y_=1;break; - case 1:var _b9y_=0;break; - case 2:var _b9y_=1;break; - case 3:var _b9y_=1;break; - case 4:var _b9y_=1;break; - case 5:var _b9y_=1;break; - case 6:var _b9y_=0;break; - case 7:var _b9y_=0;break; - default:var _b9y_=1} - var - _b9z_=caml_call2(Runtime_ocaml_Runtime[83],_b9y_,colocation), - _b9A_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b9B_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b9A_), - _b9C_=caml_call2(Runtime_ocaml_Runtime[83],_b9B_,_b9z_); - return caml_call2(Runtime_ocaml_Runtime[29],_sY_,_b9C_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_sZ_,[0],_b9x_,_b9w_)}, - _b9u_, - _b9t_, - _b9s_, - _b9r_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_s0_,_b9v_,_b9q_,_b9p_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_s1_,_b9o_,_b9n_,_b9m_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_s2_,_b9l_,_b9k_,_b9j_)}], - _bU4_=caml_call4(Runtime_ocaml_Runtime[63],_s3_,_bU3_,_bU2_,_bU1_)} - catch(_b9i_) - {_b9i_ = caml_wrap_exception(_b9i_); - if(_b9i_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_sm_]; - throw _b9i_} - var - montant_forfaitaire_charges_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_s4_,Runtime_ocaml_Runtime[13],_bU4_); - try - {var - _bU5_= - function(param) - {function _b7__(param){throw Runtime_ocaml_Runtime[2]} - function _b7$_(param){return 0} - function _b8a_(param) - {function _b80_(param) - {var _b87_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$103); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b87_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_458800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_657200); - var _b88_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b88_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_783900); - var _b89_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b89_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_801500); - var _b8__=caml_call1(Runtime_ocaml_Runtime[46],cst_3$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_832200); - var _b8$_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$14); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_863100); - var _b9a_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b9a_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_893800); - var _b9b_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b9b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_924600); - var - _b9c_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$39), - _b9d_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b9c_), - _b9e_=caml_call1(Runtime_ocaml_Runtime[69],_b9d_), - _b9f_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500), - _b9g_=caml_call2(Runtime_ocaml_Runtime[104],_b9f_,_b9e_), - _b9h_=caml_call1(Runtime_ocaml_Runtime[31],cst_924600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b9h_,_b9g_)} - function _b81_(param) - {var - _b82_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b83_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b82_), - _b84_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b85_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b84_), - _b86_=caml_call2(Runtime_ocaml_Runtime[83],_b85_,_b83_); - return caml_call2(Runtime_ocaml_Runtime[29],_s6_,_b86_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_s7_,[0],_b81_,_b80_)} - function _b8b_(param) - {function _b8J_(param) - {var _b8Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8Q_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_468300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_670900); - var _b8R_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8R_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_800200); - var _b8S_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8S_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_819200); - var _b8T_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8T_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_849500); - var _b8U_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$15); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8U_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_881100); - var _b8V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8V_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_912400); - var _b8W_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8W_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_943900); - var - _b8X_=caml_call1(Runtime_ocaml_Runtime[31],cst_31100), - _b8Y_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b8X_, - multiplicateur_majoration_r0), - _b8Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_943900$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b8Z_,_b8Y_)} - function _b8K_(param) - {var - _b8L_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b8M_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b8L_), - _b8N_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b8O_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8N_), - _b8P_=caml_call2(Runtime_ocaml_Runtime[83],_b8O_,_b8M_); - return caml_call2(Runtime_ocaml_Runtime[29],_s8_,_b8P_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_s9_,[0],_b8K_,_b8J_)} - function _b8c_(param) - {function _b8s_(param) - {var _b8z_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$105); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8z_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_487000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_697700); - var _b8A_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8A_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_832200$0); - var _b8B_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8B_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_850900); - var _b8C_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8C_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_883400); - var _b8D_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$16); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8D_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_916300); - var _b8E_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8E_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_948800); - var _b8F_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8F_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_981600); - var - _b8G_=caml_call1(Runtime_ocaml_Runtime[31],cst_32300), - _b8H_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b8G_, - multiplicateur_majoration_r0), - _b8I_=caml_call1(Runtime_ocaml_Runtime[31],cst_981600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b8I_,_b8H_)} - function _b8t_(param) - {var - _b8u_=caml_call3(Runtime_ocaml_Runtime[57],2022,12,31), - _b8v_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_b8u_), - _b8w_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b8x_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8w_), - _b8y_=caml_call2(Runtime_ocaml_Runtime[83],_b8x_,_b8v_); - return caml_call2(Runtime_ocaml_Runtime[29],_s__,_b8y_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_s$_,[0],_b8t_,_b8s_)} - var - _b8d_= - [0, - function(param) - {function _b8e_(param) - {var _b8i_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8i_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_494900) - :caml_call1(Runtime_ocaml_Runtime[31],cst_709000); - var _b8j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8j_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_845600); - var _b8k_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8k_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_864600); - var _b8l_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$22); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8l_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_897700); - var _b8m_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$17); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8m_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_931100); - var _b8n_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8n_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_964200); - var _b8o_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b8o_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_997500); - var - _b8p_=caml_call1(Runtime_ocaml_Runtime[31],cst_32800), - _b8q_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b8p_, - multiplicateur_majoration_r0), - _b8r_=caml_call1(Runtime_ocaml_Runtime[31],cst_997500$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b8r_,_b8q_)} - function _b8f_(param) - {var - _b8g_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b8h_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b8g_); - return caml_call2(Runtime_ocaml_Runtime[29],_ta_,_b8h_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tb_,[0],_b8f_,_b8e_)}, - _b8c_, - _b8b_, - _b8a_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tc_,_b8d_,_b7$_,_b7__)}, - _bU6_=function(param){return 1}, - _bU7_= - [0, - function(param) - {function _b5M_(param){throw Runtime_ocaml_Runtime[2]} - function _b5N_(param){return 0} - function _b5O_(param) - {function _b7V_(param) - {var _b74_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$107); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b74_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_396000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_567300); - var _b75_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b75_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_639600); - var _b76_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b76_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_684900); - var _b77_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$23); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b77_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_738600); - var _b78_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$18); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b78_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_793500); - var _b79_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$22); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b79_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_848400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_903200)} - function _b7W_(param) - {switch(residence[0]) - {case 0:var _b7X_=1;break; - case 1:var _b7X_=0;break; - case 2:var _b7X_=1;break; - case 3:var _b7X_=1;break; - case 4:var _b7X_=1;break; - case 5:var _b7X_=1;break; - case 6:var _b7X_=0;break; - case 7:var _b7X_=0;break; - default:var _b7X_=1} - var - _b7Y_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _b7Z_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7Y_), - _b70_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b71_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b70_), - _b72_=caml_call2(Runtime_ocaml_Runtime[83],_b71_,_b7Z_), - _b73_=caml_call2(Runtime_ocaml_Runtime[83],_b72_,_b7X_); - return caml_call2(Runtime_ocaml_Runtime[29],_td_,_b73_)} + (Runtime_ocaml_Runtime[63], _hm_, _bTi_, _bTd_, _bTc_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_te_,[0],_b7W_,_b7V_)} - function _b5P_(param) - {function _b7j_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400)} - function _b7k_(param) - {var - _b7L_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$56), - _b7M_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7L_); - switch(residence[0]) - {case 0:var _b7N_=1;break; - case 1:var _b7N_=0;break; - case 2:var _b7N_=1;break; - case 3:var _b7N_=1;break; - case 4:var _b7N_=1;break; - case 5:var _b7N_=1;break; - case 6:var _b7N_=0;break; - case 7:var _b7N_=0;break; - default:var _b7N_=1} - var - _b7O_=caml_call2(Runtime_ocaml_Runtime[83],_b7N_,_b7M_), - _b7P_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b7Q_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7P_), - _b7R_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b7S_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7R_), - _b7T_=caml_call2(Runtime_ocaml_Runtime[83],_b7S_,_b7Q_), - _b7U_=caml_call2(Runtime_ocaml_Runtime[83],_b7T_,_b7O_); - return caml_call2(Runtime_ocaml_Runtime[29],_tf_,_b7U_)} - var - _b7l_= - [0, - function(param) - {function _b7m_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400$0)} - function _b7n_(param) - {var - _b7B_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$57), - _b7C_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7B_); - switch(residence[0]) - {case 0:var _b7D_=1;break; - case 1:var _b7D_=0;break; - case 2:var _b7D_=1;break; - case 3:var _b7D_=1;break; - case 4:var _b7D_=1;break; - case 5:var _b7D_=1;break; - case 6:var _b7D_=0;break; - case 7:var _b7D_=0;break; - default:var _b7D_=1} - var - _b7E_=caml_call2(Runtime_ocaml_Runtime[83],_b7D_,_b7C_), - _b7F_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b7G_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7F_), - _b7H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b7I_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7H_), - _b7J_=caml_call2(Runtime_ocaml_Runtime[83],_b7I_,_b7G_), - _b7K_=caml_call2(Runtime_ocaml_Runtime[83],_b7J_,_b7E_); - return caml_call2(Runtime_ocaml_Runtime[29],_tg_,_b7K_)} - var - _b7o_= - [0, - function(param) - {function _b7p_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_758400$1)} - function _b7q_(param) - {var - _b7r_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$58), - _b7s_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7r_); - switch(residence[0]) - {case 0:var _b7t_=1;break; - case 1:var _b7t_=0;break; - case 2:var _b7t_=1;break; - case 3:var _b7t_=1;break; - case 4:var _b7t_=1;break; - case 5:var _b7t_=1;break; - case 6:var _b7t_=0;break; - case 7:var _b7t_=0;break; - default:var _b7t_=1} - var - _b7u_=caml_call2(Runtime_ocaml_Runtime[83],_b7t_,_b7s_), - _b7v_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b7w_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b7v_), - _b7x_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _b7y_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b7x_), - _b7z_=caml_call2(Runtime_ocaml_Runtime[83],_b7y_,_b7w_), - _b7A_=caml_call2(Runtime_ocaml_Runtime[83],_b7z_,_b7u_); - return caml_call2(Runtime_ocaml_Runtime[29],_th_,_b7A_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ti_,[0],_b7q_,_b7p_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tj_,_b7o_,_b7n_,_b7m_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tk_,_b7l_,_b7k_,_b7j_)} - function _b5Q_(param) - {function _b66_(param) - {var _b7d_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7d_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_427400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_612200); - var _b7e_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7e_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_699000); - var _b7f_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7f_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_743200); - var _b7g_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7g_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_785400); - var _b7h_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$19); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7h_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_828300); - var _b7i_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$23); - return caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b7i_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_871100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_913900)} - function _b67_(param) - {switch(residence[0]) - {case 0:var _b68_=1;break; - case 1:var _b68_=0;break; - case 2:var _b68_=1;break; - case 3:var _b68_=1;break; - case 4:var _b68_=1;break; - case 5:var _b68_=1;break; - case 6:var _b68_=0;break; - case 7:var _b68_=0;break; - default:var _b68_=1} - var - _b69_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b6__= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b69_), - _b6$_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _b7a_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6$_), - _b7b_=caml_call2(Runtime_ocaml_Runtime[83],_b7a_,_b6__), - _b7c_=caml_call2(Runtime_ocaml_Runtime[83],_b7b_,_b68_); - return caml_call2(Runtime_ocaml_Runtime[29],_tl_,_b7c_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tm_,[0],_b67_,_b66_)} - function _b5R_(param) - {function _b6U_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_774200)} - function _b6V_(param) - {var - _b6W_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$60), - _b6X_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6W_); - switch(residence[0]) - {case 0:var _b6Y_=1;break; - case 1:var _b6Y_=0;break; - case 2:var _b6Y_=1;break; - case 3:var _b6Y_=1;break; - case 4:var _b6Y_=1;break; - case 5:var _b6Y_=1;break; - case 6:var _b6Y_=0;break; - case 7:var _b6Y_=0;break; - default:var _b6Y_=1} - var - _b6Z_=caml_call2(Runtime_ocaml_Runtime[83],_b6Y_,_b6X_), - _b60_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b61_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b60_), - _b62_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _b63_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b62_), - _b64_=caml_call2(Runtime_ocaml_Runtime[83],_b63_,_b61_), - _b65_=caml_call2(Runtime_ocaml_Runtime[83],_b64_,_b6Z_); - return caml_call2(Runtime_ocaml_Runtime[29],_tn_,_b65_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_to_,[0],_b6V_,_b6U_)} - function _b5S_(param) - {function _b6y_(param) - {var _b6H_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$109); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6H_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_487000$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_697700$0); - var _b6I_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6I_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_832200$1); - var _b6J_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6J_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_850900$0); - var _b6K_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6K_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_883400$0); - var _b6L_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$20); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6L_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_916300$0); - var _b6M_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$24); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6M_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_948800$0); - var _b6N_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6N_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_981600$1); - var - _b6O_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$44), - _b6P_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b6O_), - _b6Q_=caml_call1(Runtime_ocaml_Runtime[69],_b6P_), - _b6R_=caml_call1(Runtime_ocaml_Runtime[31],cst_35000), - _b6S_=caml_call2(Runtime_ocaml_Runtime[104],_b6R_,_b6Q_), - _b6T_=caml_call1(Runtime_ocaml_Runtime[31],cst_981600$2); - return caml_call2(Runtime_ocaml_Runtime[93],_b6T_,_b6S_)} - function _b6z_(param) - {switch(residence[0]) - {case 0:var _b6A_=0;break; - case 1:var _b6A_=0;break; - case 2:var _b6A_=0;break; - case 3:var _b6A_=0;break; - case 4:var _b6A_=0;break; - case 5:var _b6A_=0;break; - case 6:var _b6A_=0;break; - case 7:var _b6A_=1;break; - default:var _b6A_=0} - var - _b6B_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b6C_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b6B_), - _b6D_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b6E_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6D_), - _b6F_=caml_call2(Runtime_ocaml_Runtime[83],_b6E_,_b6C_), - _b6G_=caml_call2(Runtime_ocaml_Runtime[83],_b6F_,_b6A_); - return caml_call2(Runtime_ocaml_Runtime[29],_tp_,_b6G_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tq_,[0],_b6z_,_b6y_)} - function _b5T_(param) - {function _b6m_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_805100)} - function _b6n_(param) - {var - _b6o_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$62), - _b6p_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6o_); - switch(residence[0]) - {case 0:var _b6q_=1;break; - case 1:var _b6q_=0;break; - case 2:var _b6q_=1;break; - case 3:var _b6q_=1;break; - case 4:var _b6q_=1;break; - case 5:var _b6q_=1;break; - case 6:var _b6q_=0;break; - case 7:var _b6q_=0;break; - default:var _b6q_=1} - var - _b6r_=caml_call2(Runtime_ocaml_Runtime[83],_b6q_,_b6p_), - _b6s_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b6t_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b6s_), - _b6u_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b6v_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b6u_), - _b6w_=caml_call2(Runtime_ocaml_Runtime[83],_b6v_,_b6t_), - _b6x_=caml_call2(Runtime_ocaml_Runtime[83],_b6w_,_b6r_); - return caml_call2(Runtime_ocaml_Runtime[29],_tr_,_b6x_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ts_,[0],_b6n_,_b6m_)} - function _b5U_(param) - {function _b55_(param) - {var _b5$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_527200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_755200); - var _b6a_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6a_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_900800); - var _b6b_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_921100); - var _b6c_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6c_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_956300); - var _b6d_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$21); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6d_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_991900); - var _b6e_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$25); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6e_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_1027100); - var _b6f_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b6f_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_1062600); - var - _b6g_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$46), - _b6h_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_b6g_), - _b6i_=caml_call1(Runtime_ocaml_Runtime[69],_b6h_), - _b6j_=caml_call1(Runtime_ocaml_Runtime[31],cst_35000$0), - _b6k_=caml_call2(Runtime_ocaml_Runtime[104],_b6j_,_b6i_), - _b6l_=caml_call1(Runtime_ocaml_Runtime[31],cst_1062600$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b6l_,_b6k_)} - function _b56_(param) - {switch(residence[0]) - {case 0:var _b57_=0;break; - case 1:var _b57_=0;break; - case 2:var _b57_=0;break; - case 3:var _b57_=0;break; - case 4:var _b57_=0;break; - case 5:var _b57_=0;break; - case 6:var _b57_=0;break; - case 7:var _b57_=1;break; - default:var _b57_=0} - var - _b58_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b59_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b58_), - _b5__=caml_call2(Runtime_ocaml_Runtime[83],_b59_,_b57_); - return caml_call2(Runtime_ocaml_Runtime[29],_tt_,_b5__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tu_,[0],_b56_,_b55_)} - var - _b5V_= - [0, - function(param) - {function _b5W_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_818100)} - function _b5X_(param) - {var - _b5Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$64), - _b5Z_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5Y_); - switch(residence[0]) - {case 0:var _b50_=1;break; - case 1:var _b50_=0;break; - case 2:var _b50_=1;break; - case 3:var _b50_=1;break; - case 4:var _b50_=1;break; - case 5:var _b50_=1;break; - case 6:var _b50_=0;break; - case 7:var _b50_=0;break; - default:var _b50_=1} - var - _b51_=caml_call2(Runtime_ocaml_Runtime[83],_b50_,_b5Z_), - _b52_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _b53_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b52_), - _b54_=caml_call2(Runtime_ocaml_Runtime[83],_b53_,_b51_); - return caml_call2(Runtime_ocaml_Runtime[29],_tv_,_b54_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tw_,[0],_b5X_,_b5W_)}, - _b5U_, - _b5T_, - _b5S_, - _b5R_, - _b5Q_, - _b5P_, - _b5O_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_tx_,_b5V_,_b5N_,_b5M_)}], - _bU8_=caml_call4(Runtime_ocaml_Runtime[63],_ty_,_bU7_,_bU6_,_bU5_)} - catch(_b5L_) - {_b5L_ = caml_wrap_exception(_b5L_); - if(_b5L_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_s5_]; - throw _b5L_} - var - abattement_forfaitaire_d823_17= - caml_call3 - (Runtime_ocaml_Runtime[28],_tz_,Runtime_ocaml_Runtime[13],_bU8_); - try - {var - _bU9_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bU__=function(param){return 0}, - _bU$_= - function(param) - {function _b5A_(param) - {var _b5H_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5H_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25869) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31664); - var - _b5I_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186), - _b5J_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b5I_, - multiplicateur_majoration_loye), - _b5K_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630); - return caml_call2(Runtime_ocaml_Runtime[93],_b5K_,_b5J_)} - function _b5B_(param) - {var - _b5C_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b5D_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5C_), - _b5E_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b5F_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5E_), - _b5G_=caml_call2(Runtime_ocaml_Runtime[83],_b5F_,_b5D_); - return caml_call2(Runtime_ocaml_Runtime[29],_tB_,_b5G_)} - return caml_call4(Runtime_ocaml_Runtime[63],_tC_,[0],_b5B_,_b5A_)}, - _bVa_= - function(param) - {function _b5p_(param) - {var _b5w_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5w_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25978) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31797); - var - _b5x_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208), - _b5y_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b5x_, - multiplicateur_majoration_loye), - _b5z_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780); - return caml_call2(Runtime_ocaml_Runtime[93],_b5z_,_b5y_)} - function _b5q_(param) - {var - _b5r_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b5s_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b5r_), - _b5t_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b5u_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5t_), - _b5v_=caml_call2(Runtime_ocaml_Runtime[83],_b5u_,_b5s_); - return caml_call2(Runtime_ocaml_Runtime[29],_tD_,_b5v_)} - return caml_call4(Runtime_ocaml_Runtime[63],_tE_,[0],_b5q_,_b5p_)}, - _bVb_= - [0, - function(param) - {function _b5h_(param) - {var _b5l_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$113); + (Runtime_ocaml_Runtime[63], _hn_, _bTb_, _bTa_, _bS$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ho_, _bS__, _bS9_, _bS8_); + }], + _bEu_ = caml_call4(Runtime_ocaml_Runtime[63], _hp_, _bEt_, _bEs_, _bEr_); + } + catch(_bS7_){ + var _bEq_ = caml_wrap_exception(_bS7_); + if(_bEq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _gK_], 1); + throw caml_maybe_attach_backtrace(_bEq_, 0); + } + var + montant_forfaitaire_charges_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _hq_, Runtime_ocaml_Runtime[13], _bEu_); + try{ + var + _bEw_ = + function(param){ + function _bRX_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bRY_(param){return 0;} + function _bRZ_(param){ + function _bSN_(param){ + var _bSU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_458800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_657200); + var _bSV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_783900); + var _bSW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_801500); + var _bSX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200); + var _bSY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$14); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_863100); + var _bSZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_893800); + var _bS0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bS0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_924600); + var + _bS1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$39), + _bS2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bS1_), + _bS3_ = caml_call1(Runtime_ocaml_Runtime[69], _bS2_), + _bS4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500), + _bS5_ = caml_call2(Runtime_ocaml_Runtime[104], _bS4_, _bS3_), + _bS6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_924600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bS6_, _bS5_); + } + function _bSO_(param){ + var + _bSP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bSQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSP_), + _bSR_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bSS_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSR_), + _bST_ = caml_call2(Runtime_ocaml_Runtime[83], _bSS_, _bSQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _hs_, _bST_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ht_, [0], _bSO_, _bSN_); + } + function _bR0_(param){ + function _bSw_(param){ + var _bSD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_468300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_670900); + var _bSE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_800200); + var _bSF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_819200); + var _bSG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_849500); + var _bSH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$15); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_881100); + var _bSI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_912400); + var _bSJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_943900); + var + _bSK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31100), + _bSL_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bSK_, + multiplicateur_majoration_r0), + _bSM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_943900$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bSM_, _bSL_); + } + function _bSx_(param){ + var + _bSy_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bSz_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bSy_), + _bSA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bSB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSA_), + _bSC_ = caml_call2(Runtime_ocaml_Runtime[83], _bSB_, _bSz_); + return caml_call2(Runtime_ocaml_Runtime[29], _hu_, _bSC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hv_, [0], _bSx_, _bSw_); + } + function _bR1_(param){ + function _bSf_(param){ + var _bSm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_697700); + var _bSn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$0); + var _bSo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_850900); + var _bSp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_883400); + var _bSq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$16); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_916300); + var _bSr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_948800); + var _bSs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bSs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_981600); + var + _bSt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32300), + _bSu_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bSt_, + multiplicateur_majoration_r0), + _bSv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bSv_, _bSu_); + } + function _bSg_(param){ + var + _bSh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 12, 31), + _bSi_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _bSh_), + _bSj_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bSk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bSj_), + _bSl_ = caml_call2(Runtime_ocaml_Runtime[83], _bSk_, _bSi_); + return caml_call2(Runtime_ocaml_Runtime[29], _hw_, _bSl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hx_, [0], _bSg_, _bSf_); + } + var + _bR2_ = + [0, + function(param){ + function _bR3_(param){ + var _bR7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$38); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b5l_)) + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR7_)) return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26887) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32910); + ? caml_call1(Runtime_ocaml_Runtime[31], cst_494900) + : caml_call1(Runtime_ocaml_Runtime[31], cst_709000); + var _bR8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_845600); + var _bR9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_864600); + var _bR__ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_897700); + var _bR$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$17); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bR$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_931100); + var _bSa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bSa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_964200); + var _bSb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bSb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_997500); var - _b5m_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390), - _b5n_= + _bSc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32800), + _bSd_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bSc_, + multiplicateur_majoration_r0), + _bSe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_997500$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bSe_, _bSd_); + } + function _bR4_(param){ + var + _bR5_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bR6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bR5_); + return caml_call2(Runtime_ocaml_Runtime[29], _hy_, _bR6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hz_, [0], _bR4_, _bR3_); + }, + _bR1_, + _bR0_, + _bRZ_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hA_, _bR2_, _bRY_, _bRX_); + }, + _bEx_ = function(param){return 1;}, + _bEy_ = + [0, + function(param){ + function _bPz_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bPA_(param){return 0;} + function _bPB_(param){ + function _bRI_(param){ + var _bRR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_396000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_567300); + var _bRS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_639600); + var _bRT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_684900); + var _bRU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_738600); + var _bRV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$18); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_793500); + var _bRW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$22); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bRW_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_848400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_903200); + } + function _bRJ_(param){ + switch(residence[0]){ + case 0: + var _bRK_ = 1; break; + case 1: + var _bRK_ = 0; break; + case 2: + var _bRK_ = 1; break; + case 3: + var _bRK_ = 1; break; + case 4: + var _bRK_ = 1; break; + case 5: + var _bRK_ = 1; break; + case 6: + var _bRK_ = 0; break; + case 7: + var _bRK_ = 0; break; + default: var _bRK_ = 1; + } + var + _bRL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _bRM_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRL_), + _bRN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bRO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRN_), + _bRP_ = caml_call2(Runtime_ocaml_Runtime[83], _bRO_, _bRM_), + _bRQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bRP_, _bRK_); + return caml_call2(Runtime_ocaml_Runtime[29], _hB_, _bRQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hC_, [0], _bRJ_, _bRI_); + } + function _bPC_(param){ + function _bQ8_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400); + } + function _bQ9_(param){ + var + _bRy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$27), + _bRz_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bRy_); + switch(residence[0]){ + case 0: + var _bRA_ = 1; break; + case 1: + var _bRA_ = 0; break; + case 2: + var _bRA_ = 1; break; + case 3: + var _bRA_ = 1; break; + case 4: + var _bRA_ = 1; break; + case 5: + var _bRA_ = 1; break; + case 6: + var _bRA_ = 0; break; + case 7: + var _bRA_ = 0; break; + default: var _bRA_ = 1; + } + var + _bRB_ = caml_call2(Runtime_ocaml_Runtime[83], _bRA_, _bRz_), + _bRC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bRD_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRC_), + _bRE_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bRF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRE_), + _bRG_ = caml_call2(Runtime_ocaml_Runtime[83], _bRF_, _bRD_), + _bRH_ = caml_call2(Runtime_ocaml_Runtime[83], _bRG_, _bRB_); + return caml_call2(Runtime_ocaml_Runtime[29], _hD_, _bRH_); + } + var + _bQ__ = + [0, + function(param){ + function _bQ$_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$0); + } + function _bRa_(param){ + var + _bRo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$28), + _bRp_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bRo_); + switch(residence[0]){ + case 0: + var _bRq_ = 1; break; + case 1: + var _bRq_ = 0; break; + case 2: + var _bRq_ = 1; break; + case 3: + var _bRq_ = 1; break; + case 4: + var _bRq_ = 1; break; + case 5: + var _bRq_ = 1; break; + case 6: + var _bRq_ = 0; break; + case 7: + var _bRq_ = 0; break; + default: var _bRq_ = 1; + } + var + _bRr_ = caml_call2(Runtime_ocaml_Runtime[83], _bRq_, _bRp_), + _bRs_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bRt_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRs_), + _bRu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bRv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRu_), + _bRw_ = caml_call2(Runtime_ocaml_Runtime[83], _bRv_, _bRt_), + _bRx_ = caml_call2(Runtime_ocaml_Runtime[83], _bRw_, _bRr_); + return caml_call2(Runtime_ocaml_Runtime[29], _hE_, _bRx_); + } + var + _bRb_ = + [0, + function(param){ + function _bRc_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_758400$1); + } + function _bRd_(param){ + var + _bRe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$29), + _bRf_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bRe_); + switch(residence[0]){ + case 0: + var _bRg_ = 1; break; + case 1: + var _bRg_ = 0; break; + case 2: + var _bRg_ = 1; break; + case 3: + var _bRg_ = 1; break; + case 4: + var _bRg_ = 1; break; + case 5: + var _bRg_ = 1; break; + case 6: + var _bRg_ = 0; break; + case 7: + var _bRg_ = 0; break; + default: var _bRg_ = 1; + } + var + _bRh_ = caml_call2(Runtime_ocaml_Runtime[83], _bRg_, _bRf_), + _bRi_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bRj_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bRi_), + _bRk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _bRl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bRk_), + _bRm_ = caml_call2(Runtime_ocaml_Runtime[83], _bRl_, _bRj_), + _bRn_ = caml_call2(Runtime_ocaml_Runtime[83], _bRm_, _bRh_); + return caml_call2(Runtime_ocaml_Runtime[29], _hF_, _bRn_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hG_, [0], _bRd_, _bRc_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hH_, _bRb_, _bRa_, _bQ$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hI_, _bQ__, _bQ9_, _bQ8_); + } + function _bPD_(param){ + function _bQT_(param){ + var _bQ2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ2_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_427400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_612200); + var _bQ3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_699000); + var _bQ4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_743200); + var _bQ5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_785400); + var _bQ6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$19); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQ6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_828300); + var _bQ7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$23); + return caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bQ7_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_871100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_913900); + } + function _bQU_(param){ + switch(residence[0]){ + case 0: + var _bQV_ = 1; break; + case 1: + var _bQV_ = 0; break; + case 2: + var _bQV_ = 1; break; + case 3: + var _bQV_ = 1; break; + case 4: + var _bQV_ = 1; break; + case 5: + var _bQV_ = 1; break; + case 6: + var _bQV_ = 0; break; + case 7: + var _bQV_ = 0; break; + default: var _bQV_ = 1; + } + var + _bQW_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bQX_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQW_), + _bQY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _bQZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQY_), + _bQ0_ = caml_call2(Runtime_ocaml_Runtime[83], _bQZ_, _bQX_), + _bQ1_ = caml_call2(Runtime_ocaml_Runtime[83], _bQ0_, _bQV_); + return caml_call2(Runtime_ocaml_Runtime[29], _hJ_, _bQ1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hK_, [0], _bQU_, _bQT_); + } + function _bPE_(param){ + function _bQH_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_774200); + } + function _bQI_(param){ + var + _bQJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$31), + _bQK_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQJ_); + switch(residence[0]){ + case 0: + var _bQL_ = 1; break; + case 1: + var _bQL_ = 0; break; + case 2: + var _bQL_ = 1; break; + case 3: + var _bQL_ = 1; break; + case 4: + var _bQL_ = 1; break; + case 5: + var _bQL_ = 1; break; + case 6: + var _bQL_ = 0; break; + case 7: + var _bQL_ = 0; break; + default: var _bQL_ = 1; + } + var + _bQM_ = caml_call2(Runtime_ocaml_Runtime[83], _bQL_, _bQK_), + _bQN_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bQO_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQN_), + _bQP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _bQQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQP_), + _bQR_ = caml_call2(Runtime_ocaml_Runtime[83], _bQQ_, _bQO_), + _bQS_ = caml_call2(Runtime_ocaml_Runtime[83], _bQR_, _bQM_); + return caml_call2(Runtime_ocaml_Runtime[29], _hL_, _bQS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hM_, [0], _bQI_, _bQH_); + } + function _bPF_(param){ + function _bQl_(param){ + var _bQu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQu_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_487000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_697700$0); + var _bQv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_832200$1); + var _bQw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_850900$0); + var _bQx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_883400$0); + var _bQy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$20); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_916300$0); + var _bQz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_948800$0); + var _bQA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_981600$1); + var + _bQB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$44), + _bQC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bQB_), + _bQD_ = caml_call1(Runtime_ocaml_Runtime[69], _bQC_), + _bQE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000), + _bQF_ = caml_call2(Runtime_ocaml_Runtime[104], _bQE_, _bQD_), + _bQG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_981600$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bQG_, _bQF_); + } + function _bQm_(param){ + switch(residence[0]){ + case 0: + var _bQn_ = 0; break; + case 1: + var _bQn_ = 0; break; + case 2: + var _bQn_ = 0; break; + case 3: + var _bQn_ = 0; break; + case 4: + var _bQn_ = 0; break; + case 5: + var _bQn_ = 0; break; + case 6: + var _bQn_ = 0; break; + case 7: + var _bQn_ = 1; break; + default: var _bQn_ = 0; + } + var + _bQo_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bQp_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQo_), + _bQq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bQr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQq_), + _bQs_ = caml_call2(Runtime_ocaml_Runtime[83], _bQr_, _bQp_), + _bQt_ = caml_call2(Runtime_ocaml_Runtime[83], _bQs_, _bQn_); + return caml_call2(Runtime_ocaml_Runtime[29], _hN_, _bQt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hO_, [0], _bQm_, _bQl_); + } + function _bPG_(param){ + function _bP$_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_805100); + } + function _bQa_(param){ + var + _bQb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$33), + _bQc_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bQb_); + switch(residence[0]){ + case 0: + var _bQd_ = 1; break; + case 1: + var _bQd_ = 0; break; + case 2: + var _bQd_ = 1; break; + case 3: + var _bQd_ = 1; break; + case 4: + var _bQd_ = 1; break; + case 5: + var _bQd_ = 1; break; + case 6: + var _bQd_ = 0; break; + case 7: + var _bQd_ = 0; break; + default: var _bQd_ = 1; + } + var + _bQe_ = caml_call2(Runtime_ocaml_Runtime[83], _bQd_, _bQc_), + _bQf_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bQg_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bQf_), + _bQh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bQi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bQh_), + _bQj_ = caml_call2(Runtime_ocaml_Runtime[83], _bQi_, _bQg_), + _bQk_ = caml_call2(Runtime_ocaml_Runtime[83], _bQj_, _bQe_); + return caml_call2(Runtime_ocaml_Runtime[29], _hP_, _bQk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hQ_, [0], _bQa_, _bP$_); + } + function _bPH_(param){ + function _bPS_(param){ + var _bPY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_527200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_755200); + var _bPZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_900800); + var _bP0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_921100); + var _bP1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$22); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_956300); + var _bP2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$21); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_991900); + var _bP3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_1027100); + var _bP4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bP4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_1062600); + var + _bP5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$46), + _bP6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bP5_), + _bP7_ = caml_call1(Runtime_ocaml_Runtime[69], _bP6_), + _bP8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35000$0), + _bP9_ = caml_call2(Runtime_ocaml_Runtime[104], _bP8_, _bP7_), + _bP__ = caml_call1(Runtime_ocaml_Runtime[31], cst_1062600$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bP__, _bP9_); + } + function _bPT_(param){ + switch(residence[0]){ + case 0: + var _bPU_ = 0; break; + case 1: + var _bPU_ = 0; break; + case 2: + var _bPU_ = 0; break; + case 3: + var _bPU_ = 0; break; + case 4: + var _bPU_ = 0; break; + case 5: + var _bPU_ = 0; break; + case 6: + var _bPU_ = 0; break; + case 7: + var _bPU_ = 1; break; + default: var _bPU_ = 0; + } + var + _bPV_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bPW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPV_), + _bPX_ = caml_call2(Runtime_ocaml_Runtime[83], _bPW_, _bPU_); + return caml_call2(Runtime_ocaml_Runtime[29], _hR_, _bPX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hS_, [0], _bPT_, _bPS_); + } + var + _bPI_ = + [0, + function(param){ + function _bPJ_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_818100); + } + function _bPK_(param){ + var + _bPL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$35), + _bPM_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bPL_); + switch(residence[0]){ + case 0: + var _bPN_ = 1; break; + case 1: + var _bPN_ = 0; break; + case 2: + var _bPN_ = 1; break; + case 3: + var _bPN_ = 1; break; + case 4: + var _bPN_ = 1; break; + case 5: + var _bPN_ = 1; break; + case 6: + var _bPN_ = 0; break; + case 7: + var _bPN_ = 0; break; + default: var _bPN_ = 1; + } + var + _bPO_ = caml_call2(Runtime_ocaml_Runtime[83], _bPN_, _bPM_), + _bPP_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _bPQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPP_), + _bPR_ = caml_call2(Runtime_ocaml_Runtime[83], _bPQ_, _bPO_); + return caml_call2(Runtime_ocaml_Runtime[29], _hT_, _bPR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _hU_, [0], _bPK_, _bPJ_); + }, + _bPH_, + _bPG_, + _bPF_, + _bPE_, + _bPD_, + _bPC_, + _bPB_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _hV_, _bPI_, _bPA_, _bPz_); + }], + _bEz_ = caml_call4(Runtime_ocaml_Runtime[63], _hW_, _bEy_, _bEx_, _bEw_); + } + catch(_bPy_){ + var _bEv_ = caml_wrap_exception(_bPy_); + if(_bEv_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hr_], 1); + throw caml_maybe_attach_backtrace(_bEv_, 0); + } + var + abattement_forfaitaire_d823_17 = + caml_call3 + (Runtime_ocaml_Runtime[28], _hX_, Runtime_ocaml_Runtime[13], _bEz_); + try{ + var + _bEB_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bEC_ = function(param){return 0;}, + _bED_ = + function(param){ + function _bPn_(param){ + var _bPu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPu_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25869) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31664); + var + _bPv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186), + _bPw_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPv_, + multiplicateur_majoration_loye), + _bPx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630); + return caml_call2(Runtime_ocaml_Runtime[93], _bPx_, _bPw_); + } + function _bPo_(param){ + var + _bPp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bPq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPp_), + _bPr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bPs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPr_), + _bPt_ = caml_call2(Runtime_ocaml_Runtime[83], _bPs_, _bPq_); + return caml_call2(Runtime_ocaml_Runtime[29], _hZ_, _bPt_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h0_, [0], _bPo_, _bPn_); + }, + _bEE_ = + function(param){ + function _bPc_(param){ + var _bPj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bPj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25978) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31797); + var + _bPk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208), + _bPl_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bPk_, + multiplicateur_majoration_loye), + _bPm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780); + return caml_call2(Runtime_ocaml_Runtime[93], _bPm_, _bPl_); + } + function _bPd_(param){ + var + _bPe_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bPf_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bPe_), + _bPg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bPh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bPg_), + _bPi_ = caml_call2(Runtime_ocaml_Runtime[83], _bPh_, _bPf_); + return caml_call2(Runtime_ocaml_Runtime[29], _h1_, _bPi_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _h2_, [0], _bPd_, _bPc_); + }, + _bEF_ = + [0, + function(param){ + function _bO6_(param){ + var _bO__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bO__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26887) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32910); + var + _bO$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390), + _bPa_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bO$_, + multiplicateur_majoration_loye), + _bPb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032); + return caml_call2(Runtime_ocaml_Runtime[93], _bPb_, _bPa_); + } + function _bO7_(param){ + var + _bO8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bO9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bO8_); + return caml_call2(Runtime_ocaml_Runtime[29], _h3_, _bO9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h4_, [0], _bO7_, _bO6_); + }, + _bEE_, + _bED_], + _bEG_ = caml_call4(Runtime_ocaml_Runtime[63], _h5_, _bEF_, _bEC_, _bEB_); + } + catch(_bO5_){ + var _bEA_ = caml_wrap_exception(_bO5_); + if(_bEA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _hY_], 1); + throw caml_maybe_attach_backtrace(_bEA_, 0); + } + var + loyer_reference = + caml_call3 + (Runtime_ocaml_Runtime[28], _h6_, Runtime_ocaml_Runtime[13], _bEG_); + try{ + var + _bEI_ = + function(param){ + function _bM2_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bM3_(param){return 0;} + function _bM4_(param){ + function _bOM_(param){ + switch(zone[0]){ + case 0: + var + _bOW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5870), + _bOX_ = caml_call2 (Runtime_ocaml_Runtime[104], - _b5m_, - multiplicateur_majoration_loye), - _b5o_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032); - return caml_call2(Runtime_ocaml_Runtime[93],_b5o_,_b5n_)} - function _b5i_(param) - {var - _b5j_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b5k_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b5j_); - return caml_call2(Runtime_ocaml_Runtime[29],_tF_,_b5k_)} - return caml_call4(Runtime_ocaml_Runtime[63],_tG_,[0],_b5i_,_b5h_)}, - _bVa_, - _bU$_], - _bVc_=caml_call4(Runtime_ocaml_Runtime[63],_tH_,_bVb_,_bU__,_bU9_)} - catch(_b5g_) - {_b5g_ = caml_wrap_exception(_b5g_); - if(_b5g_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tA_]; - throw _b5g_} - var - loyer_reference= - caml_call3 - (Runtime_ocaml_Runtime[28],_tI_,Runtime_ocaml_Runtime[13],_bVc_); - try - {var - _bVd_= - function(param) - {function _b3d_(param){throw Runtime_ocaml_Runtime[2]} - function _b3e_(param){return 0} - function _b3f_(param) - {function _b4Z_(param) - {switch(zone[0]) - {case 0: - var - _b49_=caml_call1(Runtime_ocaml_Runtime[31],cst_5870), - _b4__= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b49_, - multiplicateur_majoration_plaf), - _b4$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40460); - return caml_call2(Runtime_ocaml_Runtime[93],_b4$_,_b4__); - case 1: - var - _b5a_=caml_call1(Runtime_ocaml_Runtime[31],cst_5186$0), - _b5b_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b5a_, - multiplicateur_majoration_plaf), - _b5c_=caml_call1(Runtime_ocaml_Runtime[31],cst_35630$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b5c_,_b5b_); - default: - var - _b5d_=caml_call1(Runtime_ocaml_Runtime[31],cst_4723), - _b5e_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b5d_, - multiplicateur_majoration_plaf), - _b5f_=caml_call1(Runtime_ocaml_Runtime[31],cst_32956); - return caml_call2(Runtime_ocaml_Runtime[93],_b5f_,_b5e_)}} - function _b40_(param) - {var - _b41_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$65), - _b42_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b41_), - _b43_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b44_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b43_), - _b45_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b46_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b45_), - _b47_=caml_call2(Runtime_ocaml_Runtime[83],_b46_,_b44_), - _b48_=caml_call2(Runtime_ocaml_Runtime[83],_b47_,_b42_); - return caml_call2(Runtime_ocaml_Runtime[29],_tK_,_b48_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tL_,[0],_b40_,_b4Z_)} - function _b3g_(param) - {function _b4N_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_35799); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_31664$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29392)}} - function _b4O_(param) - {var - _b4P_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$114), - _b4Q_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b4P_), - _b4R_=0 === situation_familiale_calcul_apl[0]?0:1, - _b4S_=caml_call2(Runtime_ocaml_Runtime[83],_b4R_,_b4Q_), - _b4T_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b4U_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4T_), - _b4V_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b4W_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4V_), - _b4X_=caml_call2(Runtime_ocaml_Runtime[83],_b4W_,_b4U_), - _b4Y_=caml_call2(Runtime_ocaml_Runtime[83],_b4X_,_b4S_); - return caml_call2(Runtime_ocaml_Runtime[29],_tM_,_b4Y_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tN_,[0],_b4O_,_b4N_)} - function _b3h_(param) - {function _b4B_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29682); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25859); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24246)}} - function _b4C_(param) - {var - _b4D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$115), - _b4E_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b4D_), - _b4F_=0 === situation_familiale_calcul_apl[0]?1:0, - _b4G_=caml_call2(Runtime_ocaml_Runtime[83],_b4F_,_b4E_), - _b4H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b4I_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4H_), - _b4J_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b4K_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4J_), - _b4L_=caml_call2(Runtime_ocaml_Runtime[83],_b4K_,_b4I_), - _b4M_=caml_call2(Runtime_ocaml_Runtime[83],_b4L_,_b4G_); - return caml_call2(Runtime_ocaml_Runtime[29],_tO_,_b4M_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tP_,[0],_b4C_,_b4B_)} - function _b3i_(param) - {function _b4i_(param) - {switch(zone[0]) - {case 0: - var - _b4s_=caml_call1(Runtime_ocaml_Runtime[31],cst_5895), - _b4t_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b4s_, - multiplicateur_majoration_plaf), - _b4u_=caml_call1(Runtime_ocaml_Runtime[31],cst_40630); - return caml_call2(Runtime_ocaml_Runtime[93],_b4u_,_b4t_); - case 1: - var - _b4v_=caml_call1(Runtime_ocaml_Runtime[31],cst_5208$0), - _b4w_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b4v_, - multiplicateur_majoration_plaf), - _b4x_=caml_call1(Runtime_ocaml_Runtime[31],cst_35780$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b4x_,_b4w_); - default: - var - _b4y_=caml_call1(Runtime_ocaml_Runtime[31],cst_4743), - _b4z_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b4y_, - multiplicateur_majoration_plaf), - _b4A_=caml_call1(Runtime_ocaml_Runtime[31],cst_33094); - return caml_call2(Runtime_ocaml_Runtime[93],_b4A_,_b4z_)}} - function _b4j_(param) - {var - _b4k_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$66), - _b4l_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b4k_), - _b4m_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b4n_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4m_), - _b4o_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b4p_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4o_), - _b4q_=caml_call2(Runtime_ocaml_Runtime[83],_b4p_,_b4n_), - _b4r_=caml_call2(Runtime_ocaml_Runtime[83],_b4q_,_b4l_); - return caml_call2(Runtime_ocaml_Runtime[29],_tQ_,_b4r_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tR_,[0],_b4j_,_b4i_)} - function _b3j_(param) - {function _b38_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_35949); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29515)}} - function _b39_(param) - {var - _b3__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$116), - _b3$_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3__), - _b4a_=0 === situation_familiale_calcul_apl[0]?0:1, - _b4b_=caml_call2(Runtime_ocaml_Runtime[83],_b4a_,_b3$_), - _b4c_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b4d_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b4c_), - _b4e_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b4f_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b4e_), - _b4g_=caml_call2(Runtime_ocaml_Runtime[83],_b4f_,_b4d_), - _b4h_=caml_call2(Runtime_ocaml_Runtime[83],_b4g_,_b4b_); - return caml_call2(Runtime_ocaml_Runtime[29],_tS_,_b4h_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tT_,[0],_b39_,_b38_)} - function _b3k_(param) - {function _b3W_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_29807); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25978$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24348)}} - function _b3X_(param) - {var - _b3Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$117), - _b3Z_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3Y_), - _b30_=0 === situation_familiale_calcul_apl[0]?1:0, - _b31_=caml_call2(Runtime_ocaml_Runtime[83],_b30_,_b3Z_), - _b32_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b33_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b32_), - _b34_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b35_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b34_), - _b36_=caml_call2(Runtime_ocaml_Runtime[83],_b35_,_b33_), - _b37_=caml_call2(Runtime_ocaml_Runtime[83],_b36_,_b31_); - return caml_call2(Runtime_ocaml_Runtime[29],_tU_,_b37_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tV_,[0],_b3X_,_b3W_)} - function _b3l_(param) - {function _b3G_(param) - {switch(zone[0]) - {case 0: - var - _b3N_=caml_call1(Runtime_ocaml_Runtime[31],cst_6101), - _b3O_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b3N_, - multiplicateur_majoration_plaf), - _b3P_=caml_call1(Runtime_ocaml_Runtime[31],cst_42052); - return caml_call2(Runtime_ocaml_Runtime[93],_b3P_,_b3O_); - case 1: - var - _b3Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_5390$0), - _b3R_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b3Q_, - multiplicateur_majoration_plaf), - _b3S_=caml_call1(Runtime_ocaml_Runtime[31],cst_37032$0); - return caml_call2(Runtime_ocaml_Runtime[93],_b3S_,_b3R_); - default: - var - _b3T_=caml_call1(Runtime_ocaml_Runtime[31],cst_4909), - _b3U_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b3T_, - multiplicateur_majoration_plaf), - _b3V_=caml_call1(Runtime_ocaml_Runtime[31],cst_34252); - return caml_call2(Runtime_ocaml_Runtime[93],_b3V_,_b3U_)}} - function _b3H_(param) - {var - _b3I_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$67), - _b3J_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b3I_), - _b3K_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b3L_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3K_), - _b3M_=caml_call2(Runtime_ocaml_Runtime[83],_b3L_,_b3J_); - return caml_call2(Runtime_ocaml_Runtime[29],_tW_,_b3M_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tX_,[0],_b3H_,_b3G_)} - function _b3m_(param) - {function _b3x_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_37207); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_32910$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_30548)}} - function _b3y_(param) - {var - _b3z_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$118), - _b3A_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3z_), - _b3B_=0 === situation_familiale_calcul_apl[0]?0:1, - _b3C_=caml_call2(Runtime_ocaml_Runtime[83],_b3B_,_b3A_), - _b3D_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b3E_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3D_), - _b3F_=caml_call2(Runtime_ocaml_Runtime[83],_b3E_,_b3C_); - return caml_call2(Runtime_ocaml_Runtime[29],_tY_,_b3F_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_tZ_,[0],_b3y_,_b3x_)} - var - _b3n_= - [0, - function(param) - {function _b3o_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_30850); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26887$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_25200)}} - function _b3p_(param) - {var - _b3q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$119), - _b3r_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b3q_), - _b3s_=0 === situation_familiale_calcul_apl[0]?1:0, - _b3t_=caml_call2(Runtime_ocaml_Runtime[83],_b3s_,_b3r_), - _b3u_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b3v_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b3u_), - _b3w_=caml_call2(Runtime_ocaml_Runtime[83],_b3v_,_b3t_); - return caml_call2(Runtime_ocaml_Runtime[29],_t0_,_b3w_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t1_,[0],_b3p_,_b3o_)}, - _b3m_, - _b3l_, - _b3k_, - _b3j_, - _b3i_, - _b3h_, - _b3g_, - _b3f_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_t2_,_b3n_,_b3e_,_b3d_)}, - _bVe_=function(param){return 1}, - _bVf_= - function(param) - {function _b2j_(param) - {function _b2P_(param){throw Runtime_ocaml_Runtime[2]} - function _b2Q_(param){return 0} - function _b2R_(param) - {function _b27_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26714); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23282); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_21821)}} - function _b28_(param) - {var - _b29_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b2__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b29_), - _b2$_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b2__,logement_est_chambre), - _b3a_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b3b_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b3a_), - _b3c_=caml_call2(Runtime_ocaml_Runtime[83],_b3b_,_b2$_); - return caml_call2(Runtime_ocaml_Runtime[29],_t3_,_b3c_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t4_,[0],_b28_,_b27_)} - function _b2S_(param) - {function _b2Z_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26826); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23380); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_21913)}} - function _b20_(param) - {var - _b21_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b22_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b21_), - _b23_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b22_,logement_est_chambre), - _b24_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b25_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b24_), - _b26_=caml_call2(Runtime_ocaml_Runtime[83],_b25_,_b23_); - return caml_call2(Runtime_ocaml_Runtime[29],_t5_,_b26_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t6_,[0],_b20_,_b2Z_)} + _bOW_, + multiplicateur_majoration_plaf), + _bOY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40460); + return caml_call2(Runtime_ocaml_Runtime[93], _bOY_, _bOX_); + case 1: var - _b2T_= - [0, - function(param) - {function _b2U_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_27765); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24198); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22680)}} - function _b2V_(param) - {var - _b2W_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b2X_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2W_), - _b2Y_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b2X_,logement_est_chambre); - return caml_call2(Runtime_ocaml_Runtime[29],_t7_,_b2Y_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t8_,[0],_b2V_,_b2U_)}, - _b2S_, - _b2R_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_t9_,_b2T_,_b2Q_,_b2P_)} - function _b2k_(param){return 1} - var - _b2l_= - [0, - function(param) - {function _b2m_(param){throw Runtime_ocaml_Runtime[2]} - function _b2n_(param){return 0} - function _b2o_(param) - {function _b2G_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22262); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19402); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18185)}} - function _b2H_(param) - {var - _b2I_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b2J_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2I_), - _b2K_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b2J_,logement_est_chambre), - _b2L_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b2M_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b2L_), - _b2N_=caml_call2(Runtime_ocaml_Runtime[83],_b2M_,_b2K_), - _b2O_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _b2N_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_t__,_b2O_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_t$_,[0],_b2H_,_b2G_)} - function _b2p_(param) - {function _b2x_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22355); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19484); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18261)}} - function _b2y_(param) - {var - _b2z_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b2A_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b2z_), - _b2B_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b2A_,logement_est_chambre), - _b2C_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b2D_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2C_), - _b2E_=caml_call2(Runtime_ocaml_Runtime[83],_b2D_,_b2B_), - _b2F_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _b2E_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_ua_,_b2F_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ub_,[0],_b2y_,_b2x_)} - var - _b2q_= - [0, - function(param) - {function _b2r_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23138); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_20165); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18900)}} - function _b2s_(param) - {var - _b2t_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b2u_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b2t_), - _b2v_= - caml_call2 - (Runtime_ocaml_Runtime[83],_b2u_,logement_est_chambre), - _b2w_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _b2v_, - agees_ou_handicap_adultes_hebe); - return caml_call2(Runtime_ocaml_Runtime[29],_uc_,_b2w_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ud_,[0],_b2s_,_b2r_)}, - _b2p_, - _b2o_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ue_,_b2q_,_b2n_,_b2m_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_uf_,_b2l_,_b2k_,_b2j_)}, - _bVg_= - [0, - function(param) - {function _bZ9_(param){throw Runtime_ocaml_Runtime[2]} - function _bZ__(param){return 0} - function _bZ$_(param) - {function _b11_(param) - {switch(zone[0]) - {case 0: - var - _b2a_=caml_call1(Runtime_ocaml_Runtime[31],cst_4403), - _b2b_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b2a_, - multiplicateur_majoration_plaf), - _b2c_=caml_call1(Runtime_ocaml_Runtime[31],cst_30345); - return caml_call2(Runtime_ocaml_Runtime[93],_b2c_,_b2b_); - case 1: - var - _b2d_=caml_call1(Runtime_ocaml_Runtime[31],cst_3890), - _b2e_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b2d_, - multiplicateur_majoration_plaf), - _b2f_=caml_call1(Runtime_ocaml_Runtime[31],cst_26723); - return caml_call2(Runtime_ocaml_Runtime[93],_b2f_,_b2e_); - default: - var - _b2g_=caml_call1(Runtime_ocaml_Runtime[31],cst_3542), - _b2h_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b2g_, - multiplicateur_majoration_plaf), - _b2i_=caml_call1(Runtime_ocaml_Runtime[31],cst_24717); - return caml_call2(Runtime_ocaml_Runtime[93],_b2i_,_b2h_)}} - function _b12_(param) - {var - _b13_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$68), - _b14_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b13_), - _b15_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b16_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b15_), - _b17_=caml_call2(Runtime_ocaml_Runtime[83],_b16_,colocation), - _b18_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b19_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b18_), - _b1__=caml_call2(Runtime_ocaml_Runtime[83],_b19_,_b17_), - _b1$_=caml_call2(Runtime_ocaml_Runtime[83],_b1__,_b14_); - return caml_call2(Runtime_ocaml_Runtime[29],_ug_,_b1$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_uh_,[0],_b12_,_b11_)} - function _b0a_(param) - {function _b1O_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26849); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23748); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22044)}} - function _b1P_(param) - {var - _b1Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$120), - _b1R_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b1Q_), - _b1S_=0 === situation_familiale_calcul_apl[0]?0:1, - _b1T_=caml_call2(Runtime_ocaml_Runtime[83],_b1S_,_b1R_), - _b1U_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b1V_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1U_), - _b1W_=caml_call2(Runtime_ocaml_Runtime[83],_b1V_,colocation), - _b1X_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b1Y_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1X_), - _b1Z_=caml_call2(Runtime_ocaml_Runtime[83],_b1Y_,_b1W_), - _b10_=caml_call2(Runtime_ocaml_Runtime[83],_b1Z_,_b1T_); - return caml_call2(Runtime_ocaml_Runtime[29],_ui_,_b10_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_uj_,[0],_b1P_,_b1O_)} - function _b0b_(param) - {function _b1B_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22262$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19402$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18185$0)}} - function _b1C_(param) - {var - _b1D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$121), - _b1E_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b1D_), - _b1F_=0 === situation_familiale_calcul_apl[0]?1:0, - _b1G_=caml_call2(Runtime_ocaml_Runtime[83],_b1F_,_b1E_), - _b1H_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _b1I_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1H_), - _b1J_=caml_call2(Runtime_ocaml_Runtime[83],_b1I_,colocation), - _b1K_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b1L_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1K_), - _b1M_=caml_call2(Runtime_ocaml_Runtime[83],_b1L_,_b1J_), - _b1N_=caml_call2(Runtime_ocaml_Runtime[83],_b1M_,_b1G_); - return caml_call2(Runtime_ocaml_Runtime[29],_uk_,_b1N_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ul_,[0],_b1C_,_b1B_)} - function _b0c_(param) - {function _b1h_(param) - {switch(zone[0]) - {case 0: - var - _b1s_=caml_call1(Runtime_ocaml_Runtime[31],cst_4421), - _b1t_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b1s_, - multiplicateur_majoration_plaf), - _b1u_=caml_call1(Runtime_ocaml_Runtime[31],cst_30473); - return caml_call2(Runtime_ocaml_Runtime[93],_b1u_,_b1t_); - case 1: - var - _b1v_=caml_call1(Runtime_ocaml_Runtime[31],cst_3906), - _b1w_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b1v_, - multiplicateur_majoration_plaf), - _b1x_=caml_call1(Runtime_ocaml_Runtime[31],cst_26835); - return caml_call2(Runtime_ocaml_Runtime[93],_b1x_,_b1w_); - default: - var - _b1y_=caml_call1(Runtime_ocaml_Runtime[31],cst_3557), - _b1z_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b1y_, - multiplicateur_majoration_plaf), - _b1A_=caml_call1(Runtime_ocaml_Runtime[31],cst_24821); - return caml_call2(Runtime_ocaml_Runtime[93],_b1A_,_b1z_)}} - function _b1i_(param) - {var - _b1j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$69), - _b1k_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b1j_), - _b1l_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b1m_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1l_), - _b1n_=caml_call2(Runtime_ocaml_Runtime[83],_b1m_,colocation), - _b1o_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b1p_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1o_), - _b1q_=caml_call2(Runtime_ocaml_Runtime[83],_b1p_,_b1n_), - _b1r_=caml_call2(Runtime_ocaml_Runtime[83],_b1q_,_b1k_); - return caml_call2(Runtime_ocaml_Runtime[29],_um_,_b1r_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_un_,[0],_b1i_,_b1h_)} - function _b0d_(param) - {function _b06_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_26962); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23848); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22136)}} - function _b07_(param) - {var - _b08_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$122), - _b09_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b08_), - _b0__=0 === situation_familiale_calcul_apl[0]?0:1, - _b0$_=caml_call2(Runtime_ocaml_Runtime[83],_b0__,_b09_), - _b1a_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b1b_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b1a_), - _b1c_=caml_call2(Runtime_ocaml_Runtime[83],_b1b_,colocation), - _b1d_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b1e_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b1d_), - _b1f_=caml_call2(Runtime_ocaml_Runtime[83],_b1e_,_b1c_), - _b1g_=caml_call2(Runtime_ocaml_Runtime[83],_b1f_,_b0$_); - return caml_call2(Runtime_ocaml_Runtime[29],_uo_,_b1g_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_up_,[0],_b07_,_b06_)} - function _b0e_(param) - {function _b0T_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22355$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_19484$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18261$0)}} - function _b0U_(param) - {var - _b0V_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$123), - _b0W_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0V_), - _b0X_=0 === situation_familiale_calcul_apl[0]?1:0, - _b0Y_=caml_call2(Runtime_ocaml_Runtime[83],_b0X_,_b0W_), - _b0Z_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b00_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_b0Z_), - _b01_=caml_call2(Runtime_ocaml_Runtime[83],_b00_,colocation), - _b02_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _b03_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b02_), - _b04_=caml_call2(Runtime_ocaml_Runtime[83],_b03_,_b01_), - _b05_=caml_call2(Runtime_ocaml_Runtime[83],_b04_,_b0Y_); - return caml_call2(Runtime_ocaml_Runtime[29],_uq_,_b05_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ur_,[0],_b0U_,_b0T_)} - function _b0f_(param) - {function _b0C_(param) - {switch(zone[0]) - {case 0: - var - _b0K_=caml_call1(Runtime_ocaml_Runtime[31],cst_4576), - _b0L_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b0K_, - multiplicateur_majoration_plaf), - _b0M_=caml_call1(Runtime_ocaml_Runtime[31],cst_31539); - return caml_call2(Runtime_ocaml_Runtime[93],_b0M_,_b0L_); - case 1: - var - _b0N_=caml_call1(Runtime_ocaml_Runtime[31],cst_4043), - _b0O_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b0N_, - multiplicateur_majoration_plaf), - _b0P_=caml_call1(Runtime_ocaml_Runtime[31],cst_27774); - return caml_call2(Runtime_ocaml_Runtime[93],_b0P_,_b0O_); - default: - var - _b0Q_=caml_call1(Runtime_ocaml_Runtime[31],cst_3682), - _b0R_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _b0Q_, - multiplicateur_majoration_plaf), - _b0S_=caml_call1(Runtime_ocaml_Runtime[31],cst_25689); - return caml_call2(Runtime_ocaml_Runtime[93],_b0S_,_b0R_)}} - function _b0D_(param) - {var - _b0E_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$70), - _b0F_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_b0E_), - _b0G_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0H_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0G_), - _b0I_=caml_call2(Runtime_ocaml_Runtime[83],_b0H_,colocation), - _b0J_=caml_call2(Runtime_ocaml_Runtime[83],_b0I_,_b0F_); - return caml_call2(Runtime_ocaml_Runtime[29],_us_,_b0J_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ut_,[0],_b0D_,_b0C_)} - function _b0g_(param) - {function _b0s_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_27905); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_24683); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_22911)}} - function _b0t_(param) - {var - _b0u_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$124), - _b0v_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0u_), - _b0w_=0 === situation_familiale_calcul_apl[0]?0:1, - _b0x_=caml_call2(Runtime_ocaml_Runtime[83],_b0w_,_b0v_), - _b0y_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0z_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0y_), - _b0A_=caml_call2(Runtime_ocaml_Runtime[83],_b0z_,colocation), - _b0B_=caml_call2(Runtime_ocaml_Runtime[83],_b0A_,_b0x_); - return caml_call2(Runtime_ocaml_Runtime[29],_uu_,_b0B_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_uv_,[0],_b0t_,_b0s_)} - var - _b0h_= - [0, - function(param) - {function _b0i_(param) - {switch(zone[0]) - {case 0: - return caml_call1(Runtime_ocaml_Runtime[31],cst_23138$0); - case 1: - return caml_call1(Runtime_ocaml_Runtime[31],cst_20165$0); - default: - return caml_call1(Runtime_ocaml_Runtime[31],cst_18900$0)}} - function _b0j_(param) - {var - _b0k_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$125), - _b0l_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_b0k_), - _b0m_=0 === situation_familiale_calcul_apl[0]?1:0, - _b0n_=caml_call2(Runtime_ocaml_Runtime[83],_b0m_,_b0l_), - _b0o_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _b0p_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_b0o_), - _b0q_=caml_call2(Runtime_ocaml_Runtime[83],_b0p_,colocation), - _b0r_=caml_call2(Runtime_ocaml_Runtime[83],_b0q_,_b0n_); - return caml_call2(Runtime_ocaml_Runtime[29],_uw_,_b0r_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ux_,[0],_b0j_,_b0i_)}, - _b0g_, - _b0f_, - _b0e_, - _b0d_, - _b0c_, - _b0b_, - _b0a_, - _bZ$_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_uy_,_b0h_,_bZ__,_bZ9_)}, - _bVf_], - _bVh_=caml_call4(Runtime_ocaml_Runtime[63],_uz_,_bVg_,_bVe_,_bVd_)} - catch(_bZ8_) - {_bZ8_ = caml_wrap_exception(_bZ8_); - if(_bZ8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_tJ_]; - throw _bZ8_} - var - plafond_loyer_d823_16_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_uA_,Runtime_ocaml_Runtime[13],_bVh_); - try - {var - _bVi_= - function(param) - {switch(zone[0]) - {case 0: - var _bZ5_=caml_call1(Runtime_ocaml_Runtime[39],cst_4$22); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ5_); - case 1: - var _bZ6_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ6_); - default: - var _bZ7_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_1$0); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ7_)}}, - _bVj_= - function(param) - {var - _bZ3_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bZ4_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZ3_); - return caml_call2(Runtime_ocaml_Runtime[29],_uC_,_bZ4_)}, - _bVk_=caml_call4(Runtime_ocaml_Runtime[63],_uD_,[0],_bVj_,_bVi_)} - catch(_bZ2_) - {_bZ2_ = caml_wrap_exception(_bZ2_); - if(_bZ2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uB_]; - throw _bZ2_} - var - plafond_suppression_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_uE_,Runtime_ocaml_Runtime[13],_bVk_); - try - {var - _bVl_= - function(param) - {switch(zone[0]) - {case 0: - var _bZZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_3_4); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZZ_); - case 1: - var _bZ0_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$2); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ0_); - default: - var _bZ1_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$3); - return caml_call2 - (Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bZ1_)}}, - _bVm_= - function(param) - {var - _bZX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bZY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZX_); - return caml_call2(Runtime_ocaml_Runtime[29],_uG_,_bZY_)}, - _bVn_=caml_call4(Runtime_ocaml_Runtime[63],_uH_,[0],_bVm_,_bVl_)} - catch(_bZW_) - {_bZW_ = caml_wrap_exception(_bZW_); - if(_bZW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uF_]; - throw _bZW_} - var - plafond_degressivite_d823_16= - caml_call3 - (Runtime_ocaml_Runtime[28],_uI_,Runtime_ocaml_Runtime[13],_bVn_); - try - {var - _bVo_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_loyer_d823_16_2) - ?plafond_loyer_d823_16_2 - :loyer_principal_avec_reduction}, - _bVp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_uK_,1)}, - _bVq_=caml_call4(Runtime_ocaml_Runtime[63],_uL_,[0],_bVp_,_bVo_)} - catch(_bZV_) - {_bZV_ = caml_wrap_exception(_bZV_); - if(_bZV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uJ_]; - throw _bZV_} - var - loyer_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_uM_,Runtime_ocaml_Runtime[13],_bVq_); - function _bVr_(aide_finale) - {try - {var - _bZK_= - function(param) - {if - (caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_suppression_d823_16)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$126); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[123], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16)) - return aide_finale; + _bOZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5186$0), + _bO0_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOZ_, + multiplicateur_majoration_plaf), + _bO1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35630$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bO1_, _bO0_); + default: var - _bZR_= - caml_call2 - (Runtime_ocaml_Runtime[98], - plafond_suppression_d823_16, - plafond_degressivite_d823_16), - _bZS_= - caml_call2 - (Runtime_ocaml_Runtime[98], - loyer_principal_avec_reduction, - plafond_degressivite_d823_16), - _bZT_=caml_call2(Runtime_ocaml_Runtime[108],_bZS_,_bZR_), - _bZU_=caml_call2(Runtime_ocaml_Runtime[104],aide_finale,_bZT_); - return caml_call2(Runtime_ocaml_Runtime[98],aide_finale,_bZU_)}, - _bZL_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_uO_,1)}, - _bZM_= + _bO2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4723), + _bO3_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bO2_, + multiplicateur_majoration_plaf), + _bO4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32956); + return caml_call2(Runtime_ocaml_Runtime[93], _bO4_, _bO3_); + } + } + function _bON_(param){ + var + _bOO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$36), + _bOP_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bOO_), + _bOQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bOR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOQ_), + _bOS_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOT_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOS_), + _bOU_ = caml_call2(Runtime_ocaml_Runtime[83], _bOT_, _bOR_), + _bOV_ = caml_call2(Runtime_ocaml_Runtime[83], _bOU_, _bOP_); + return caml_call2(Runtime_ocaml_Runtime[29], _h8_, _bOV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h9_, [0], _bON_, _bOM_); + } + function _bM5_(param){ + function _bOA_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_35799); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_31664$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29392); + } + } + function _bOB_(param){ + var + _bOC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$46), + _bOD_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOC_), + _bOE_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bOF_ = caml_call2(Runtime_ocaml_Runtime[83], _bOE_, _bOD_), + _bOG_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bOH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOG_), + _bOI_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOJ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOI_), + _bOK_ = caml_call2(Runtime_ocaml_Runtime[83], _bOJ_, _bOH_), + _bOL_ = caml_call2(Runtime_ocaml_Runtime[83], _bOK_, _bOF_); + return caml_call2(Runtime_ocaml_Runtime[29], _h__, _bOL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _h$_, [0], _bOB_, _bOA_); + } + function _bM6_(param){ + function _bOo_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_29682); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25859); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24246); + } + } + function _bOp_(param){ + var + _bOq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$47), + _bOr_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bOq_), + _bOs_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bOt_ = caml_call2(Runtime_ocaml_Runtime[83], _bOs_, _bOr_), + _bOu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bOv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOu_), + _bOw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bOw_), + _bOy_ = caml_call2(Runtime_ocaml_Runtime[83], _bOx_, _bOv_), + _bOz_ = caml_call2(Runtime_ocaml_Runtime[83], _bOy_, _bOt_); + return caml_call2(Runtime_ocaml_Runtime[29], _ia_, _bOz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ib_, [0], _bOp_, _bOo_); + } + function _bM7_(param){ + function _bN7_(param){ + switch(zone[0]){ + case 0: + var + _bOf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5895), + _bOg_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOf_, + multiplicateur_majoration_plaf), + _bOh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40630); + return caml_call2(Runtime_ocaml_Runtime[93], _bOh_, _bOg_); + case 1: + var + _bOi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5208$0), + _bOj_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOi_, + multiplicateur_majoration_plaf), + _bOk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35780$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bOk_, _bOj_); + default: + var + _bOl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4743), + _bOm_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bOl_, + multiplicateur_majoration_plaf), + _bOn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33094); + return caml_call2(Runtime_ocaml_Runtime[93], _bOn_, _bOm_); + } + } + function _bN8_(param){ + var + _bN9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$37), + _bN__ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bN9_), + _bN$_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bOa_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bN$_), + _bOb_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bOc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bOb_), + _bOd_ = caml_call2(Runtime_ocaml_Runtime[83], _bOc_, _bOa_), + _bOe_ = caml_call2(Runtime_ocaml_Runtime[83], _bOd_, _bN__); + return caml_call2(Runtime_ocaml_Runtime[29], _ic_, _bOe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _id_, [0], _bN8_, _bN7_); + } + function _bM8_(param){ + function _bNV_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_35949); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_29515); + } + } + function _bNW_(param){ + var + _bNX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$48), + _bNY_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bNX_), + _bNZ_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bN0_ = caml_call2(Runtime_ocaml_Runtime[83], _bNZ_, _bNY_), + _bN1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bN2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bN1_), + _bN3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bN4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bN3_), + _bN5_ = caml_call2(Runtime_ocaml_Runtime[83], _bN4_, _bN2_), + _bN6_ = caml_call2(Runtime_ocaml_Runtime[83], _bN5_, _bN0_); + return caml_call2(Runtime_ocaml_Runtime[29], _ie_, _bN6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _if_, [0], _bNW_, _bNV_); + } + function _bM9_(param){ + function _bNJ_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_29807); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25978$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_24348); + } + } + function _bNK_(param){ + var + _bNL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$49), + _bNM_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bNL_), + _bNN_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bNO_ = caml_call2(Runtime_ocaml_Runtime[83], _bNN_, _bNM_), + _bNP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bNP_), + _bNR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bNS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNR_), + _bNT_ = caml_call2(Runtime_ocaml_Runtime[83], _bNS_, _bNQ_), + _bNU_ = caml_call2(Runtime_ocaml_Runtime[83], _bNT_, _bNO_); + return caml_call2(Runtime_ocaml_Runtime[29], _ig_, _bNU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ih_, [0], _bNK_, _bNJ_); + } + function _bM__(param){ + function _bNt_(param){ + switch(zone[0]){ + case 0: + var + _bNA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6101), + _bNB_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bNA_, + multiplicateur_majoration_plaf), + _bNC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42052); + return caml_call2(Runtime_ocaml_Runtime[93], _bNC_, _bNB_); + case 1: + var + _bND_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5390$0), + _bNE_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bND_, + multiplicateur_majoration_plaf), + _bNF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37032$0); + return caml_call2(Runtime_ocaml_Runtime[93], _bNF_, _bNE_); + default: + var + _bNG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4909), + _bNH_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bNG_, + multiplicateur_majoration_plaf), + _bNI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34252); + return caml_call2(Runtime_ocaml_Runtime[93], _bNI_, _bNH_); + } + } + function _bNu_(param){ + var + _bNv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$38), + _bNw_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bNv_), + _bNx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNx_), + _bNz_ = caml_call2(Runtime_ocaml_Runtime[83], _bNy_, _bNw_); + return caml_call2(Runtime_ocaml_Runtime[29], _ii_, _bNz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ij_, [0], _bNu_, _bNt_); + } + function _bM$_(param){ + function _bNk_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_37207); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_32910$0); + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_30548); + } + } + function _bNl_(param){ + var + _bNm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$50), + _bNn_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bNm_), + _bNo_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bNp_ = caml_call2(Runtime_ocaml_Runtime[83], _bNo_, _bNn_), + _bNq_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNq_), + _bNs_ = caml_call2(Runtime_ocaml_Runtime[83], _bNr_, _bNp_); + return caml_call2(Runtime_ocaml_Runtime[29], _ik_, _bNs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _il_, [0], _bNl_, _bNk_); + } + var + _bNa_ = [0, - function(param) - {function _bZP_(param){return aide_finale} - function _bZQ_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _uP_, - beneficiaire_aide_adulte_ou_en)} + function(param){ + function _bNb_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_30850); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26887$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_25200); + } + } + function _bNc_(param){ + var + _bNd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$51), + _bNe_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bNd_), + _bNf_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bNg_ = caml_call2(Runtime_ocaml_Runtime[83], _bNf_, _bNe_), + _bNh_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bNi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bNh_), + _bNj_ = caml_call2(Runtime_ocaml_Runtime[83], _bNi_, _bNg_); + return caml_call2(Runtime_ocaml_Runtime[29], _im_, _bNj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _in_, [0], _bNc_, _bNb_); + }, + _bM$_, + _bM__, + _bM9_, + _bM8_, + _bM7_, + _bM6_, + _bM5_, + _bM4_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _io_, _bNa_, _bM3_, _bM2_); + }, + _bEJ_ = function(param){return 1;}, + _bEK_ = + function(param){ + function _bL8_(param){ + function _bMC_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bMD_(param){return 0;} + function _bME_(param){ + function _bMU_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26714); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23282); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_21821); + } + } + function _bMV_(param){ + var + _bMW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bMX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMW_), + _bMY_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMX_, logement_est_chambre), + _bMZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bM0_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMZ_), + _bM1_ = caml_call2(Runtime_ocaml_Runtime[83], _bM0_, _bMY_); + return caml_call2(Runtime_ocaml_Runtime[29], _ip_, _bM1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iq_, [0], _bMV_, _bMU_); + } + function _bMF_(param){ + function _bMM_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26826); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23380); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_21913); + } + } + function _bMN_(param){ + var + _bMO_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bMP_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMO_), + _bMQ_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMP_, logement_est_chambre), + _bMR_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bMS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMR_), + _bMT_ = caml_call2(Runtime_ocaml_Runtime[83], _bMS_, _bMQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _ir_, _bMT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _is_, [0], _bMN_, _bMM_); + } + var + _bMG_ = + [0, + function(param){ + function _bMH_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_27765); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_24198); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22680); + } + } + function _bMI_(param){ + var + _bMJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bMK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMJ_), + _bML_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMK_, logement_est_chambre); + return caml_call2(Runtime_ocaml_Runtime[29], _it_, _bML_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_uQ_,[0],_bZQ_,_bZP_)}], - _bZN_=caml_call4(Runtime_ocaml_Runtime[63],_uR_,_bZM_,_bZL_,_bZK_); - return _bZN_} - catch(_bZO_) - {_bZO_ = caml_wrap_exception(_bZO_); - if(_bZO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uN_]; - throw _bZO_}} - var - traitement_aide_finale_diminue= - caml_call3 - (Runtime_ocaml_Runtime[28],_uS_,Runtime_ocaml_Runtime[10],_bVr_); - try - {var - _bVs_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bVt_=function(param){return 0}, - _bVu_= - function(param) - {function _bZx_(param) - {var - _bZE_=caml_call1(Runtime_ocaml_Runtime[31],cst_3524), - _bZF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085), - _bZG_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bZH_=caml_call2(Runtime_ocaml_Runtime[104],_bZG_,_bZF_); - if(! caml_call2(Runtime_ocaml_Runtime[128],_bZH_,_bZE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_3524$0); + (Runtime_ocaml_Runtime[63], _iu_, [0], _bMI_, _bMH_); + }, + _bMF_, + _bME_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iv_, _bMG_, _bMD_, _bMC_); + } + function _bL9_(param){return 1;} + var + _bL__ = + [0, + function(param){ + function _bL$_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bMa_(param){return 0;} + function _bMb_(param){ + function _bMt_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22262); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19402); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18185); + } + } + function _bMu_(param){ + var + _bMv_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bMw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMv_), + _bMx_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMw_, logement_est_chambre), + _bMy_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bMz_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMy_), + _bMA_ = caml_call2(Runtime_ocaml_Runtime[83], _bMz_, _bMx_), + _bMB_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bMA_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iw_, _bMB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ix_, [0], _bMu_, _bMt_); + } + function _bMc_(param){ + function _bMk_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22355); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19484); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18261); + } + } + function _bMl_(param){ + var + _bMm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bMn_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bMm_), + _bMo_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMn_, logement_est_chambre), + _bMp_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bMq_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMp_), + _bMr_ = caml_call2(Runtime_ocaml_Runtime[83], _bMq_, _bMo_), + _bMs_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bMr_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iy_, _bMs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iz_, [0], _bMl_, _bMk_); + } var - _bZI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$0), - _bZJ_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bZJ_,_bZI_)} - function _bZy_(param) - {var - _bZz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bZA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZz_), - _bZB_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bZC_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZB_), - _bZD_=caml_call2(Runtime_ocaml_Runtime[83],_bZC_,_bZA_); - return caml_call2(Runtime_ocaml_Runtime[29],_uU_,_bZD_)} - return caml_call4(Runtime_ocaml_Runtime[63],_uV_,[0],_bZy_,_bZx_)}, - _bVv_= - function(param) - {function _bZk_(param) - {var - _bZr_=caml_call1(Runtime_ocaml_Runtime[31],cst_3539), - _bZs_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$1), - _bZt_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bZu_=caml_call2(Runtime_ocaml_Runtime[104],_bZt_,_bZs_); - if(! caml_call2(Runtime_ocaml_Runtime[128],_bZu_,_bZr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_3539$0); - var - _bZv_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$2), - _bZw_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bZw_,_bZv_)} - function _bZl_(param) - {var - _bZm_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bZn_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bZm_), - _bZo_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bZp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZo_), - _bZq_=caml_call2(Runtime_ocaml_Runtime[83],_bZp_,_bZn_); - return caml_call2(Runtime_ocaml_Runtime[29],_uW_,_bZq_)} - return caml_call4(Runtime_ocaml_Runtime[63],_uX_,[0],_bZl_,_bZk_)}, - _bVw_= - [0, - function(param) - {function _bZa_(param) - {var - _bZe_=caml_call1(Runtime_ocaml_Runtime[31],cst_3663), - _bZf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$3), - _bZg_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8), - _bZh_=caml_call2(Runtime_ocaml_Runtime[104],_bZg_,_bZf_); - if(! caml_call2(Runtime_ocaml_Runtime[128],_bZh_,_bZe_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_3663$0); - var - _bZi_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_085$4), - _bZj_= - caml_call2 - (Runtime_ocaml_Runtime[93], - loyer_eligible, - montant_forfaitaire_charges_d8); - return caml_call2(Runtime_ocaml_Runtime[104],_bZj_,_bZi_)} - function _bZb_(param) - {var - _bZc_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bZd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bZc_); - return caml_call2(Runtime_ocaml_Runtime[29],_uY_,_bZd_)} - return caml_call4(Runtime_ocaml_Runtime[63],_uZ_,[0],_bZb_,_bZa_)}, - _bVv_, - _bVu_], - _bVx_=caml_call4(Runtime_ocaml_Runtime[63],_u0_,_bVw_,_bVt_,_bVs_)} - catch(_bY$_) - {_bY$_ = caml_wrap_exception(_bY$_); - if(_bY$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_uT_]; - throw _bY$_} - var - participation_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_u1_,Runtime_ocaml_Runtime[13],_bVx_); - try - {var - _bVy_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bVz_=function(param){return 0}, - _bVA_= - [0, - function(param) - {function _bYC_(param) - {var - _bY6_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$0), - _bY7_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$1), - _bY8_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bY9_=caml_call2(Runtime_ocaml_Runtime[103],_bY8_,_bY7_), - _bY__=caml_call1(Runtime_ocaml_Runtime[78],_bY9_); - return caml_call2(Runtime_ocaml_Runtime[107],_bY__,_bY6_)} - function _bYD_(param) - {var - _bY4_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bY5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bY4_); - return caml_call2(Runtime_ocaml_Runtime[29],_u3_,_bY5_)} - var - _bYE_= - [0, - function(param) - {function _bYF_(param) - {var - _bYZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$2), - _bY0_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$3), - _bY1_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bY2_=caml_call2(Runtime_ocaml_Runtime[103],_bY1_,_bY0_), - _bY3_=caml_call1(Runtime_ocaml_Runtime[78],_bY2_); - return caml_call2(Runtime_ocaml_Runtime[107],_bY3_,_bYZ_)} - function _bYG_(param) - {var - _bYU_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bYV_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bYU_), - _bYW_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bYX_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYW_), - _bYY_=caml_call2(Runtime_ocaml_Runtime[83],_bYX_,_bYV_); - return caml_call2(Runtime_ocaml_Runtime[29],_u4_,_bYY_)} - var - _bYH_= - [0, - function(param) - {function _bYI_(param) - {var - _bYP_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$4), - _bYQ_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$5), - _bYR_= - caml_call2 - (Runtime_ocaml_Runtime[108],loyer_eligible,loyer_reference), - _bYS_=caml_call2(Runtime_ocaml_Runtime[103],_bYR_,_bYQ_), - _bYT_=caml_call1(Runtime_ocaml_Runtime[78],_bYS_); - return caml_call2(Runtime_ocaml_Runtime[107],_bYT_,_bYP_)} - function _bYJ_(param) - {var - _bYK_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bYL_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bYK_), - _bYM_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bYN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYM_), - _bYO_=caml_call2(Runtime_ocaml_Runtime[83],_bYN_,_bYL_); - return caml_call2(Runtime_ocaml_Runtime[29],_u5_,_bYO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_u6_,[0],_bYJ_,_bYI_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_u7_,_bYH_,_bYG_,_bYF_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_u8_,_bYE_,_bYD_,_bYC_)}], - _bVB_=caml_call4(Runtime_ocaml_Runtime[63],_u9_,_bVA_,_bVz_,_bVy_)} - catch(_bYB_) - {_bYB_ = caml_wrap_exception(_bYB_); - if(_bYB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_u2_]; - throw _bYB_} - var - rapport_loyers= - caml_call3 - (Runtime_ocaml_Runtime[28],_u__,Runtime_ocaml_Runtime[15],_bVB_); - function _bVC_(aide_finale) - {try - {var - _bYs_= - function(param) - {var - _bYw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _va_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bYx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _vb_, - traitement_aide_finale_diminue), - _bYw_), - _bYy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vc_, - Runtime_ocaml_Runtime[13], - _bYx_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vd_,_bYy_), - _bYz_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$127), - _bYA_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16); - return caml_call2(Runtime_ocaml_Runtime[128],_bYA_,_bYz_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale$0, - montant_forfaitaire_d823_16) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$128)}, - _bYt_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ve_,1)}, - _bYu_=caml_call4(Runtime_ocaml_Runtime[63],_vf_,[0],_bYt_,_bYs_); - return _bYu_} - catch(_bYv_) - {_bYv_ = caml_wrap_exception(_bYv_); - if(_bYv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_u$_]; - throw _bYv_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_vg_,Runtime_ocaml_Runtime[10],_bVC_); - try - {var - _bVD_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bVE_=function(param){return 0}, - _bVF_= - [0, - function(param) - {function _bXo_(param) - {var _bYc_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45); - if(caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bYc_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$129); - var - _bYd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75), - _bYe_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bYd_), - _bYf_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$0), - _bYg_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bYf_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bYg_,_bYe_)) - {var - _bYh_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045), - _bYi_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bYh_), - _bYj_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$0); - return caml_call2(Runtime_ocaml_Runtime[103],_bYj_,_bYi_)} - var _bYk_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$0); - if - (! - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bYk_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$130); - var - _bYl_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$1), - _bYm_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bYl_), - _bYn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068), - _bYo_=caml_call2(Runtime_ocaml_Runtime[103],_bYn_,_bYm_), - _bYp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3), - _bYq_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$1), - _bYr_=caml_call2(Runtime_ocaml_Runtime[103],_bYq_,_bYp_); - return caml_call2(Runtime_ocaml_Runtime[92],_bYr_,_bYo_)} - function _bXp_(param) - {var - _bYa_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bYb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bYa_); - return caml_call2(Runtime_ocaml_Runtime[29],_vi_,_bYb_)} - var - _bXq_= - [0, - function(param) - {function _bXr_(param) - {var _bXW_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$1); - if - (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXW_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$131); + _bMd_ = + [0, + function(param){ + function _bMe_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23138); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_20165); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18900); + } + } + function _bMf_(param){ var - _bXX_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$2), - _bXY_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXX_), - _bXZ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$2), - _bX0_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXZ_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bX0_,_bXY_)) - {var - _bX1_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$2), - _bX2_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bX1_), - _bX3_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$3); - return caml_call2(Runtime_ocaml_Runtime[103],_bX3_,_bX2_)} - var _bX4_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$3); - if - (! - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bX4_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$132); - var - _bX5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$4), - _bX6_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bX5_), - _bX7_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$0), - _bX8_=caml_call2(Runtime_ocaml_Runtime[103],_bX7_,_bX6_), - _bX9_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$0), - _bX__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$4), - _bX$_=caml_call2(Runtime_ocaml_Runtime[103],_bX__,_bX9_); - return caml_call2(Runtime_ocaml_Runtime[92],_bX$_,_bX8_)} - function _bXs_(param) - {var - _bXR_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bXS_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXR_), - _bXT_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bXU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXT_), - _bXV_=caml_call2(Runtime_ocaml_Runtime[83],_bXU_,_bXS_); - return caml_call2(Runtime_ocaml_Runtime[29],_vj_,_bXV_)} - var - _bXt_= - [0, - function(param) - {function _bXu_(param) - {var _bXB_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$3); - if - (caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXB_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$133); - var - _bXC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$5), - _bXD_= - caml_call2(Runtime_ocaml_Runtime[112],rapport_loyers,_bXC_), - _bXE_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_45$4), - _bXF_= - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXE_); - if(caml_call2(Runtime_ocaml_Runtime[83],_bXF_,_bXD_)) - {var - _bXG_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$5), - _bXH_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bXG_), - _bXI_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$6); - return caml_call2(Runtime_ocaml_Runtime[103],_bXI_,_bXH_)} - var _bXJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$6); - if - (! - caml_call2(Runtime_ocaml_Runtime[127],rapport_loyers,_bXJ_)) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$134); - var - _bXK_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$7), - _bXL_= - caml_call2(Runtime_ocaml_Runtime[97],rapport_loyers,_bXK_), - _bXM_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0068$1), - _bXN_=caml_call2(Runtime_ocaml_Runtime[103],_bXM_,_bXL_), - _bXO_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_3$1), - _bXP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_0045$7), - _bXQ_=caml_call2(Runtime_ocaml_Runtime[103],_bXP_,_bXO_); - return caml_call2(Runtime_ocaml_Runtime[92],_bXQ_,_bXN_)} - function _bXv_(param) - {var - _bXw_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bXx_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bXw_), - _bXy_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bXz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bXy_), - _bXA_=caml_call2(Runtime_ocaml_Runtime[83],_bXz_,_bXx_); - return caml_call2(Runtime_ocaml_Runtime[29],_vk_,_bXA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_vl_,[0],_bXv_,_bXu_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_vm_,_bXt_,_bXs_,_bXr_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_vn_,_bXq_,_bXp_,_bXo_)}], - _bVG_=caml_call4(Runtime_ocaml_Runtime[63],_vo_,_bVF_,_bVE_,_bVD_)} - catch(_bXn_) - {_bXn_ = caml_wrap_exception(_bXn_); - if(_bXn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vh_]; - throw _bXn_} - var - taux_loyer_eligible_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_vp_,Runtime_ocaml_Runtime[15],_bVG_); - function _bVH_(aide_finale) - {try - {var - _bW__= - function(param) - {var - _bXc_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vr_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bXd_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _vs_, - traitement_aide_finale_minorat), - _bXc_), - _bXe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vt_, - Runtime_ocaml_Runtime[13], - _bXd_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vu_,_bXe_), - _bXf_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vv_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bXg_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _vw_, - contributions_sociales_dot_mon), - _bXf_), - _bXh_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vx_, - Runtime_ocaml_Runtime[13], - _bXg_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_vy_,_bXh_), - _bXi_=caml_call1(Runtime_ocaml_Runtime[31],cst_50), - _bXj_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _bXk_=caml_call2(Runtime_ocaml_Runtime[98],_bXj_,_bXi_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_bXk_), - _bXl_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$135), - _bXm_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_bXm_,_bXl_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$136)}, - _bW$_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_vz_,1)}, - _bXa_=caml_call4(Runtime_ocaml_Runtime[63],_vA_,[0],_bW$_,_bW__); - return _bXa_} - catch(_bXb_) - {_bXb_ = caml_wrap_exception(_bXb_); - if(_bXb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vq_]; - throw _bXb_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_vB_,Runtime_ocaml_Runtime[10],_bVH_); - try - {var - _bVI_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bVJ_=function(param){return 0}, - _bVK_= - [0, - function(param) - {function _bWE_(param) - {var - _bW6_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000), - _bW7_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$0), - _bW8_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bW7_), - _bW9_=caml_call1(Runtime_ocaml_Runtime[78],_bW8_); - return caml_call2(Runtime_ocaml_Runtime[107],_bW9_,_bW6_)} - function _bWF_(param) - {var - _bW4_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bW5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bW4_); - return caml_call2(Runtime_ocaml_Runtime[29],_vD_,_bW5_)} - var - _bWG_= - [0, - function(param) - {function _bWH_(param) - {var - _bW0_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$1), - _bW1_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$2), - _bW2_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bW1_), - _bW3_=caml_call1(Runtime_ocaml_Runtime[78],_bW2_); - return caml_call2(Runtime_ocaml_Runtime[107],_bW3_,_bW0_)} - function _bWI_(param) - {var - _bWV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bWW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bWV_), - _bWX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bWY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWX_), - _bWZ_=caml_call2(Runtime_ocaml_Runtime[83],_bWY_,_bWW_); - return caml_call2(Runtime_ocaml_Runtime[29],_vE_,_bWZ_)} - var - _bWJ_= - [0, - function(param) - {function _bWK_(param) - {var - _bWR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$3), - _bWS_=caml_call1(Runtime_ocaml_Runtime[39],cst_100000$4), - _bWT_= - caml_call2 - (Runtime_ocaml_Runtime[103], - taux_loyer_eligible_formule, - _bWS_), - _bWU_=caml_call1(Runtime_ocaml_Runtime[78],_bWT_); - return caml_call2(Runtime_ocaml_Runtime[107],_bWU_,_bWR_)} - function _bWL_(param) - {var - _bWM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bWN_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bWM_), - _bWO_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bWP_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bWO_), - _bWQ_=caml_call2(Runtime_ocaml_Runtime[83],_bWP_,_bWN_); - return caml_call2(Runtime_ocaml_Runtime[29],_vF_,_bWQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_vG_,[0],_bWL_,_bWK_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_vH_,_bWJ_,_bWI_,_bWH_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_vI_,_bWG_,_bWF_,_bWE_)}], - _bVL_=caml_call4(Runtime_ocaml_Runtime[63],_vJ_,_bVK_,_bVJ_,_bVI_)} - catch(_bWD_) - {_bWD_ = caml_wrap_exception(_bWD_); - if(_bWD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vC_]; - throw _bWD_} - var - taux_loyer_eligible_taux_arron= - caml_call3 - (Runtime_ocaml_Runtime[28],_vK_,Runtime_ocaml_Runtime[15],_bVL_); - function _bVM_(aide_finale) - {try - {var - _bWs_= - function(param) - {var - _bWw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vM_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bWx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _vN_, - traitement_aide_finale_contrib), - _bWw_), - _bWy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vO_, - Runtime_ocaml_Runtime[13], - _bWx_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_vP_,_bWy_), - _bWz_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$137), - _bWA_= - caml_call2 - (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3), - _bWB_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bWA_); - if(! caml_call2(Runtime_ocaml_Runtime[128],_bWB_,_bWz_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$138); - var - _bWC_= - caml_call2 - (Runtime_ocaml_Runtime[104], - reduction_loyer_solidarite, - fraction_l832_3); - return caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bWC_)}, - _bWt_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_vQ_,1)}, - _bWu_=caml_call4(Runtime_ocaml_Runtime[63],_vR_,[0],_bWt_,_bWs_); - return _bWu_} - catch(_bWv_) - {_bWv_ = caml_wrap_exception(_bWv_); - if(_bWv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vL_]; - throw _bWv_}} - var - traitement_aide_finale_reducti= - caml_call3 - (Runtime_ocaml_Runtime[28],_vS_,Runtime_ocaml_Runtime[10],_bVM_); - try - {var - _bVN_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[92], - taux_composition_familiale, - taux_loyer_eligible_taux_arron)}, - _bVO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_vU_,1)}, - _bVP_=caml_call4(Runtime_ocaml_Runtime[63],_vV_,[0],_bVO_,_bVN_)} - catch(_bWr_) - {_bWr_ = caml_wrap_exception(_bWr_); - if(_bWr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vT_]; - throw _bWr_} - var - taux_prise_compte_ressources= - caml_call3 - (Runtime_ocaml_Runtime[28],_vW_,Runtime_ocaml_Runtime[15],_bVP_); - function _bVQ_(aide_finale) - {try - {var - _bWk_= - function(param) - {var - _bWo_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _vY_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bWp_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _vZ_, - traitement_aide_finale_reducti), - _bWo_), - _bWq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _v0_, - Runtime_ocaml_Runtime[13], - _bWp_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_v1_,_bWq_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_16) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$139) - :aide_finale$0}, - _bWl_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_v2_,1)}, - _bWm_=caml_call4(Runtime_ocaml_Runtime[63],_v3_,[0],_bWl_,_bWk_); - return _bWm_} - catch(_bWn_) - {_bWn_ = caml_wrap_exception(_bWn_); - if(_bWn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_vX_]; - throw _bWn_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_v4_,Runtime_ocaml_Runtime[10],_bVQ_); - try - {var - _bVR_= - function(param) - {var - _bWi_= - caml_call2 - (Runtime_ocaml_Runtime[98], - ressources_menage_arrondies, - abattement_forfaitaire_d823_17), - participation_ressources= - caml_call2 - (Runtime_ocaml_Runtime[104],_bWi_,taux_prise_compte_ressources), - _bWj_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$140), - participation_ressources$0= - caml_call2 - (Runtime_ocaml_Runtime[113],participation_ressources,_bWj_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$141) - :participation_ressources; + _bMg_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bMh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bMg_), + _bMi_ = + caml_call2 + (Runtime_ocaml_Runtime[83], _bMh_, logement_est_chambre), + _bMj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _bMi_, + agees_ou_handicap_adultes_hebe); + return caml_call2(Runtime_ocaml_Runtime[29], _iA_, _bMj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iB_, [0], _bMf_, _bMe_); + }, + _bMc_, + _bMb_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iC_, _bMd_, _bMa_, _bL$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iD_, _bL__, _bL9_, _bL8_); + }, + _bEL_ = + [0, + function(param){ + function _bJW_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bJX_(param){return 0;} + function _bJY_(param){ + function _bLO_(param){ + switch(zone[0]){ + case 0: + var + _bLZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4403), + _bL0_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLZ_, + multiplicateur_majoration_plaf), + _bL1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30345); + return caml_call2(Runtime_ocaml_Runtime[93], _bL1_, _bL0_); + case 1: + var + _bL2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3890), + _bL3_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bL2_, + multiplicateur_majoration_plaf), + _bL4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26723); + return caml_call2(Runtime_ocaml_Runtime[93], _bL4_, _bL3_); + default: + var + _bL5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3542), + _bL6_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bL5_, + multiplicateur_majoration_plaf), + _bL7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24717); + return caml_call2(Runtime_ocaml_Runtime[93], _bL7_, _bL6_); + } + } + function _bLP_(param){ + var + _bLQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$39), + _bLR_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bLQ_), + _bLS_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bLT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLS_), + _bLU_ = caml_call2(Runtime_ocaml_Runtime[83], _bLT_, colocation), + _bLV_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLW_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLV_), + _bLX_ = caml_call2(Runtime_ocaml_Runtime[83], _bLW_, _bLU_), + _bLY_ = caml_call2(Runtime_ocaml_Runtime[83], _bLX_, _bLR_); + return caml_call2(Runtime_ocaml_Runtime[29], _iE_, _bLY_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iF_, [0], _bLP_, _bLO_); + } + function _bJZ_(param){ + function _bLB_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26849); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23748); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22044); + } + } + function _bLC_(param){ + var + _bLD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$52), + _bLE_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLD_), + _bLF_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bLG_ = caml_call2(Runtime_ocaml_Runtime[83], _bLF_, _bLE_), + _bLH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bLI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLH_), + _bLJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bLI_, colocation), + _bLK_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLL_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLK_), + _bLM_ = caml_call2(Runtime_ocaml_Runtime[83], _bLL_, _bLJ_), + _bLN_ = caml_call2(Runtime_ocaml_Runtime[83], _bLM_, _bLG_); + return caml_call2(Runtime_ocaml_Runtime[29], _iG_, _bLN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iH_, [0], _bLC_, _bLB_); + } + function _bJ0_(param){ + function _bLo_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22262$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19402$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18185$0); + } + } + function _bLp_(param){ + var + _bLq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$53), + _bLr_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bLq_), + _bLs_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bLt_ = caml_call2(Runtime_ocaml_Runtime[83], _bLs_, _bLr_), + _bLu_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bLv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLu_), + _bLw_ = caml_call2(Runtime_ocaml_Runtime[83], _bLv_, colocation), + _bLx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLy_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bLx_), + _bLz_ = caml_call2(Runtime_ocaml_Runtime[83], _bLy_, _bLw_), + _bLA_ = caml_call2(Runtime_ocaml_Runtime[83], _bLz_, _bLt_); + return caml_call2(Runtime_ocaml_Runtime[29], _iI_, _bLA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iJ_, [0], _bLp_, _bLo_); + } + function _bJ1_(param){ + function _bK6_(param){ + switch(zone[0]){ + case 0: + var + _bLf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4421), + _bLg_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLf_, + multiplicateur_majoration_plaf), + _bLh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30473); + return caml_call2(Runtime_ocaml_Runtime[93], _bLh_, _bLg_); + case 1: + var + _bLi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3906), + _bLj_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLi_, + multiplicateur_majoration_plaf), + _bLk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26835); + return caml_call2(Runtime_ocaml_Runtime[93], _bLk_, _bLj_); + default: + var + _bLl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3557), + _bLm_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bLl_, + multiplicateur_majoration_plaf), + _bLn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24821); + return caml_call2(Runtime_ocaml_Runtime[93], _bLn_, _bLm_); + } + } + function _bK7_(param){ + var + _bK8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$40), + _bK9_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bK8_), + _bK__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bK$_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bK__), + _bLa_ = caml_call2(Runtime_ocaml_Runtime[83], _bK$_, colocation), + _bLb_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bLc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bLb_), + _bLd_ = caml_call2(Runtime_ocaml_Runtime[83], _bLc_, _bLa_), + _bLe_ = caml_call2(Runtime_ocaml_Runtime[83], _bLd_, _bK9_); + return caml_call2(Runtime_ocaml_Runtime[29], _iK_, _bLe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iL_, [0], _bK7_, _bK6_); + } + function _bJ2_(param){ + function _bKT_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_26962); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23848); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22136); + } + } + function _bKU_(param){ + var + _bKV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$54), + _bKW_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bKV_), + _bKX_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bKY_ = caml_call2(Runtime_ocaml_Runtime[83], _bKX_, _bKW_), + _bKZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bK0_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bKZ_), + _bK1_ = caml_call2(Runtime_ocaml_Runtime[83], _bK0_, colocation), + _bK2_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bK3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bK2_), + _bK4_ = caml_call2(Runtime_ocaml_Runtime[83], _bK3_, _bK1_), + _bK5_ = caml_call2(Runtime_ocaml_Runtime[83], _bK4_, _bKY_); + return caml_call2(Runtime_ocaml_Runtime[29], _iM_, _bK5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iN_, [0], _bKU_, _bKT_); + } + function _bJ3_(param){ + function _bKG_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22355$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_19484$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18261$0); + } + } + function _bKH_(param){ + var + _bKI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$55), + _bKJ_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bKI_), + _bKK_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bKL_ = caml_call2(Runtime_ocaml_Runtime[83], _bKK_, _bKJ_), + _bKM_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bKN_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bKM_), + _bKO_ = caml_call2(Runtime_ocaml_Runtime[83], _bKN_, colocation), + _bKP_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bKQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKP_), + _bKR_ = caml_call2(Runtime_ocaml_Runtime[83], _bKQ_, _bKO_), + _bKS_ = caml_call2(Runtime_ocaml_Runtime[83], _bKR_, _bKL_); + return caml_call2(Runtime_ocaml_Runtime[29], _iO_, _bKS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iP_, [0], _bKH_, _bKG_); + } + function _bJ4_(param){ + function _bKp_(param){ + switch(zone[0]){ + case 0: + var + _bKx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4576), + _bKy_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bKx_, + multiplicateur_majoration_plaf), + _bKz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31539); + return caml_call2(Runtime_ocaml_Runtime[93], _bKz_, _bKy_); + case 1: + var + _bKA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4043), + _bKB_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bKA_, + multiplicateur_majoration_plaf), + _bKC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27774); + return caml_call2(Runtime_ocaml_Runtime[93], _bKC_, _bKB_); + default: + var + _bKD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3682), + _bKE_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bKD_, + multiplicateur_majoration_plaf), + _bKF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_25689); + return caml_call2(Runtime_ocaml_Runtime[93], _bKF_, _bKE_); + } + } + function _bKq_(param){ + var + _bKr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$41), + _bKs_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bKr_), + _bKt_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bKu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKt_), + _bKv_ = caml_call2(Runtime_ocaml_Runtime[83], _bKu_, colocation), + _bKw_ = caml_call2(Runtime_ocaml_Runtime[83], _bKv_, _bKs_); + return caml_call2(Runtime_ocaml_Runtime[29], _iQ_, _bKw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iR_, [0], _bKq_, _bKp_); + } + function _bJ5_(param){ + function _bKf_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_27905); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_24683); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_22911); + } + } + function _bKg_(param){ + var + _bKh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$56), + _bKi_ = + caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bKh_), + _bKj_ = 0 === situation_familiale_calcul_apl[0] ? 0 : 1, + _bKk_ = caml_call2(Runtime_ocaml_Runtime[83], _bKj_, _bKi_), + _bKl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bKm_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKl_), + _bKn_ = caml_call2(Runtime_ocaml_Runtime[83], _bKm_, colocation), + _bKo_ = caml_call2(Runtime_ocaml_Runtime[83], _bKn_, _bKk_); + return caml_call2(Runtime_ocaml_Runtime[29], _iS_, _bKo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iT_, [0], _bKg_, _bKf_); + } + var + _bJ6_ = + [0, + function(param){ + function _bJ7_(param){ + switch(zone[0]){ + case 0: + return caml_call1(Runtime_ocaml_Runtime[31], cst_23138$0); + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_20165$0); + default: + return caml_call1(Runtime_ocaml_Runtime[31], cst_18900$0); + } + } + function _bJ8_(param){ + var + _bJ9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$57), + _bJ__ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bJ9_), + _bJ$_ = 0 === situation_familiale_calcul_apl[0] ? 1 : 0, + _bKa_ = caml_call2(Runtime_ocaml_Runtime[83], _bJ$_, _bJ__), + _bKb_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bKc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bKb_), + _bKd_ = + caml_call2(Runtime_ocaml_Runtime[83], _bKc_, colocation), + _bKe_ = caml_call2(Runtime_ocaml_Runtime[83], _bKd_, _bKa_); + return caml_call2(Runtime_ocaml_Runtime[29], _iU_, _bKe_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _iV_, [0], _bJ8_, _bJ7_); + }, + _bJ5_, + _bJ4_, + _bJ3_, + _bJ2_, + _bJ1_, + _bJ0_, + _bJZ_, + _bJY_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _iW_, _bJ6_, _bJX_, _bJW_); + }, + _bEK_], + _bEM_ = caml_call4(Runtime_ocaml_Runtime[63], _iX_, _bEL_, _bEJ_, _bEI_); + } + catch(_bJV_){ + var _bEH_ = caml_wrap_exception(_bJV_); + if(_bEH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _h7_], 1); + throw caml_maybe_attach_backtrace(_bEH_, 0); + } + var + plafond_loyer_d823_16_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _iY_, Runtime_ocaml_Runtime[13], _bEM_); + try{ + var + _bEO_ = + function(param){ + switch(zone[0]){ + case 0: + var _bJS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_4$22); return caml_call2 - (Runtime_ocaml_Runtime[93], - participation_minimale, - participation_ressources$0)}, - _bVS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v6_,1)}, - _bVT_=caml_call4(Runtime_ocaml_Runtime[63],_v7_,[0],_bVS_,_bVR_)} - catch(_bWh_) - {_bWh_ = caml_wrap_exception(_bWh_); - if(_bWh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_v5_]; - throw _bWh_} + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJS_); + case 1: + var _bJT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJT_); + default: + var _bJU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_1$0); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJU_); + } + }, + _bEP_ = + function(param){ + var + _bJQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bJR_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _i0_, _bJR_); + }, + _bEQ_ = caml_call4(Runtime_ocaml_Runtime[63], _i1_, [0], _bEP_, _bEO_); + } + catch(_bJP_){ + var _bEN_ = caml_wrap_exception(_bJP_); + if(_bEN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _iZ_], 1); + throw caml_maybe_attach_backtrace(_bEN_, 0); + } + var + plafond_suppression_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _i2_, Runtime_ocaml_Runtime[13], _bEQ_); + try{ + var + _bES_ = + function(param){ + switch(zone[0]){ + case 0: + var _bJM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_3_4); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJM_); + case 1: + var _bJN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$2); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJN_); + default: + var _bJO_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$3); + return caml_call2 + (Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bJO_); + } + }, + _bET_ = + function(param){ + var + _bJK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bJL_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJK_); + return caml_call2(Runtime_ocaml_Runtime[29], _i4_, _bJL_); + }, + _bEU_ = caml_call4(Runtime_ocaml_Runtime[63], _i5_, [0], _bET_, _bES_); + } + catch(_bJJ_){ + var _bER_ = caml_wrap_exception(_bJJ_); + if(_bER_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i3_], 1); + throw caml_maybe_attach_backtrace(_bER_, 0); + } + var + plafond_degressivite_d823_16 = + caml_call3 + (Runtime_ocaml_Runtime[28], _i6_, Runtime_ocaml_Runtime[13], _bEU_); + try{ + var + _bEW_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_loyer_d823_16_2) + ? plafond_loyer_d823_16_2 + : loyer_principal_avec_reduction; + }, + _bEX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _i8_, 1); + }, + _bEY_ = caml_call4(Runtime_ocaml_Runtime[63], _i9_, [0], _bEX_, _bEW_); + } + catch(_bJI_){ + var _bEV_ = caml_wrap_exception(_bJI_); + if(_bEV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i7_], 1); + throw caml_maybe_attach_backtrace(_bEV_, 0); + } + var + loyer_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _i__, Runtime_ocaml_Runtime[13], _bEY_); + function _bEZ_(aide_finale){ + try{ var - participation_personnelle= - caml_call3 - (Runtime_ocaml_Runtime[28],_v8_,Runtime_ocaml_Runtime[13],_bVT_); - try - {var - _bVU_= - function(param) - {var - _bWf_= + _bJx_ = + function(param){ + if + (caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_suppression_d823_16)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$58); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[123], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16)) + return aide_finale; + var + _bJE_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + plafond_suppression_d823_16, + plafond_degressivite_d823_16), + _bJF_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + loyer_principal_avec_reduction, + plafond_degressivite_d823_16), + _bJG_ = caml_call2(Runtime_ocaml_Runtime[108], _bJF_, _bJE_), + _bJH_ = caml_call2(Runtime_ocaml_Runtime[104], aide_finale, _bJG_); + return caml_call2(Runtime_ocaml_Runtime[98], aide_finale, _bJH_); + }, + _bJy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ja_, 1); + }, + _bJz_ = + [0, + function(param){ + function _bJC_(param){return aide_finale;} + function _bJD_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _jb_, + beneficiaire_aide_adulte_ou_en); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jc_, [0], _bJD_, _bJC_); + }], + _bJA_ = + caml_call4(Runtime_ocaml_Runtime[63], _jd_, _bJz_, _bJy_, _bJx_); + return _bJA_; + } + catch(_bJB_){ + var _bJw_ = caml_wrap_exception(_bJB_); + if(_bJw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _i$_], 1); + throw caml_maybe_attach_backtrace(_bJw_, 0); + } + } + var + traitement_aide_finale_diminue = + caml_call3 + (Runtime_ocaml_Runtime[28], _je_, Runtime_ocaml_Runtime[10], _bEZ_); + try{ + var + _bE1_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bE2_ = function(param){return 0;}, + _bE3_ = + function(param){ + function _bJj_(param){ + var + _bJq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3524), + _bJr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085), + _bJs_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bJt_ = caml_call2(Runtime_ocaml_Runtime[104], _bJs_, _bJr_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bJt_, _bJq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3524$0); + var + _bJu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$0), + _bJv_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bJv_, _bJu_); + } + function _bJk_(param){ + var + _bJl_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bJm_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJl_), + _bJn_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bJo_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bJn_), + _bJp_ = caml_call2(Runtime_ocaml_Runtime[83], _bJo_, _bJm_); + return caml_call2(Runtime_ocaml_Runtime[29], _jg_, _bJp_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jh_, [0], _bJk_, _bJj_); + }, + _bE4_ = + function(param){ + function _bI8_(param){ + var + _bJd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3539), + _bJe_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$1), + _bJf_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + _bJg_ = caml_call2(Runtime_ocaml_Runtime[104], _bJf_, _bJe_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bJg_, _bJd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3539$0); + var + _bJh_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$2), + _bJi_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bJi_, _bJh_); + } + function _bI9_(param){ + var + _bI__ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bI$_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bI__), + _bJa_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bJb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bJa_), + _bJc_ = caml_call2(Runtime_ocaml_Runtime[83], _bJb_, _bI$_); + return caml_call2(Runtime_ocaml_Runtime[29], _ji_, _bJc_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _jj_, [0], _bI9_, _bI8_); + }, + _bE5_ = + [0, + function(param){ + function _bIY_(param){ + var + _bI2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3663), + _bI3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$3), + _bI4_ = caml_call2 (Runtime_ocaml_Runtime[93], loyer_eligible, montant_forfaitaire_charges_d8), - aide_finale= + _bI5_ = caml_call2(Runtime_ocaml_Runtime[104], _bI4_, _bI3_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bI5_, _bI2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_3663$0); + var + _bI6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_085$4), + _bI7_ = caml_call2 - (Runtime_ocaml_Runtime[98],_bWf_,participation_personnelle), - _bWg_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$142); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bWg_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$143) - :aide_finale}, - _bVV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_v__,1)}, - _bVW_=caml_call4(Runtime_ocaml_Runtime[63],_v$_,[0],_bVV_,_bVU_)} - catch(_bWe_) - {_bWe_ = caml_wrap_exception(_bWe_); - if(_bWe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_v9_]; - throw _bWe_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_wa_,Runtime_ocaml_Runtime[13],_bVW_); - try - {var - _bVX_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_5$4), - _bVY_= - caml_call2(Runtime_ocaml_Runtime[104],plafond_loyer_d823_16_2,_bVX_), - _bVZ_= - caml_call2 - (Runtime_ocaml_Runtime[128],plafond_degressivite_d823_16,_bVY_)} - catch(_bWd_) - {_bWd_ = caml_wrap_exception(_bWd_); - if(_bWd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wb_]; - throw _bWd_} - if(! _bVZ_)throw [0,Runtime_ocaml_Runtime[3],_wk_]; - try - {var - _bV0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_98$0), - _bV1_=caml_call2(Runtime_ocaml_Runtime[117],fraction_l832_3,_bV0_), - _bV2_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9), - _bV3_=caml_call2(Runtime_ocaml_Runtime[127],fraction_l832_3,_bV2_), - _bV4_=caml_call2(Runtime_ocaml_Runtime[83],_bV3_,_bV1_)} - catch(_bWc_) - {_bWc_ = caml_wrap_exception(_bWc_); - if(_bWc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wc_]; - throw _bWc_} - if(! _bV4_)throw [0,Runtime_ocaml_Runtime[3],_wj_]; - try - {var - _bV5_= - caml_call2 - (Runtime_ocaml_Runtime[83],logement_est_chambre,colocation), - _bV6_=caml_call1(Runtime_ocaml_Runtime[67],_bV5_)} - catch(_bWb_) - {_bWb_ = caml_wrap_exception(_bWb_); - if(_bWb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wd_]; - throw _bWb_} - if(! _bV6_)throw [0,Runtime_ocaml_Runtime[3],_wi_]; - try - {var - _bV7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$144), - _bV8_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bV7_)} - catch(_bWa_) - {_bWa_ = caml_wrap_exception(_bWa_); - if(_bWa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_we_]; - throw _bWa_} - if(! _bV8_)throw [0,Runtime_ocaml_Runtime[3],_wh_]; - try - {var - _bV9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bV__=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bV9_)} - catch(_bV$_) - {_bV$_ = caml_wrap_exception(_bV$_); - if(_bV$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wf_]; - throw _bV$_} - if(_bV__) - return [0, - montant_forfaitaire_charges_d8, - plafond_loyer_d823_16_2, - participation_minimale, - taux_composition_familiale, - participation_personnelle, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_wg_]} - function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge) - {var - type_logement_foyer=calcul_aide_personnalisee_loge[1], - date_conventionnement=calcul_aide_personnalisee_loge[2], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[3], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[4], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[5], - zone=calcul_aide_personnalisee_loge[6], - date_courante=calcul_aide_personnalisee_loge[7], - redevance=calcul_aide_personnalisee_loge[8], - residence=calcul_aide_personnalisee_loge[9], - condition_2_du_832_25=calcul_aide_personnalisee_loge[10], - limitation_majoration_personne=calcul_aide_personnalisee_loge[11], - n_nombre_parts_d832_25=calcul_aide_personnalisee_loge[12]; - try - {var - _bPk_= - function(param) - {function _bUp_(param){return 0} - function _bUq_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_wm_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_wn_,[0],_bUq_,_bUp_)}, - _bPl_=function(param){return 1}, - _bPm_= - [0, - function(param) - {return caml_call1(limitation_majoration_personne,0)}], - _bPn_=caml_call4(Runtime_ocaml_Runtime[63],_wo_,_bPm_,_bPl_,_bPk_)} - catch(_bUo_) - {_bUo_ = caml_wrap_exception(_bUo_); - if(_bUo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wl_]; - throw _bUo_} - var - limitation_majoration_personne$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_wp_,Runtime_ocaml_Runtime[12],_bPn_); - try - {var - _bPo_= - function(param) - {function _bUk_(param) - {switch(type_logement_foyer[0]) - {case 0:return 0; - case 1: - var _bUm_=caml_call3(Runtime_ocaml_Runtime[57],1994,12,31); - return caml_call2 - (Runtime_ocaml_Runtime[130],date_conventionnement,_bUm_); - case 2: - var _bUn_=caml_call3(Runtime_ocaml_Runtime[57],1990,9,30); - return caml_call2 - (Runtime_ocaml_Runtime[130],date_conventionnement,_bUn_); - default:return 0}} - function _bUl_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_wr_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_ws_,[0],_bUl_,_bUk_)}, - _bPp_=function(param){return 1}, - _bPq_=[0,function(param){return caml_call1(condition_2_du_832_25,0)}], - _bPr_=caml_call4(Runtime_ocaml_Runtime[63],_wt_,_bPq_,_bPp_,_bPo_)} - catch(_bUj_) - {_bUj_ = caml_wrap_exception(_bUj_); - if(_bUj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wq_]; - throw _bUj_} - var - condition_2_du_832_25$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_wu_,Runtime_ocaml_Runtime[12],_bPr_); - try - {var - _bPs_=function(param){return date_courante}, - _bPt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ww_,1)}, - _bPu_=caml_call4(Runtime_ocaml_Runtime[63],_wx_,[0],_bPt_,_bPs_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_wy_,Runtime_ocaml_Runtime[16],_bPu_)} - catch(_bUi_) - {_bUi_ = caml_wrap_exception(_bUi_); - if(_bUi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wv_]; - throw _bUi_} - var - _bPv_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_wz_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_wA_,_bPv_), - contributions_sociales_dot_mon=result[1]; - try - {var - _bPw_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$1)}, - _bPx_= - function(param) - {var - _bUg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bUh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUg_); - return caml_call2(Runtime_ocaml_Runtime[29],_wC_,_bUh_)}, - _bPy_=caml_call4(Runtime_ocaml_Runtime[63],_wD_,[0],_bPx_,_bPw_)} - catch(_bUf_) - {_bUf_ = caml_wrap_exception(_bUf_); - if(_bUf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wB_]; - throw _bUf_} - var - montant_minimal_aide_d823_24= - caml_call3 - (Runtime_ocaml_Runtime[28],_wE_,Runtime_ocaml_Runtime[13],_bPy_); - try - {var - _bPz_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$0)}, - _bPA_= - function(param) - {var - _bUd_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bUe_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bUd_); - return caml_call2(Runtime_ocaml_Runtime[29],_wG_,_bUe_)}, - _bPB_=caml_call4(Runtime_ocaml_Runtime[63],_wH_,[0],_bPA_,_bPz_)} - catch(_bUc_) - {_bUc_ = caml_wrap_exception(_bUc_); - if(_bUc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wF_]; - throw _bUc_} - var - montant_forfaitaire_d832_24= - caml_call3 - (Runtime_ocaml_Runtime[28],_wI_,Runtime_ocaml_Runtime[13],_bPB_); - try - {var - _bPC_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bPD_=function(param){return 0}, - _bPE_= - function(param) - {function _bTD_(param) - {switch(zone[0]) - {case 0: - var _bTK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$145); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTK_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_44443) - :caml_call1(Runtime_ocaml_Runtime[31],cst_52101); - var _bTL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_55555); - var _bTM_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59454); - var _bTN_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$27); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTN_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_63369); - var - _bTO_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$23), - _bTP_= + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8); + return caml_call2(Runtime_ocaml_Runtime[104], _bI7_, _bI6_); + } + function _bIZ_(param){ + var + _bI0_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bI1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bI0_); + return caml_call2(Runtime_ocaml_Runtime[29], _jk_, _bI1_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jl_, [0], _bIZ_, _bIY_); + }, + _bE4_, + _bE3_], + _bE6_ = caml_call4(Runtime_ocaml_Runtime[63], _jm_, _bE5_, _bE2_, _bE1_); + } + catch(_bIX_){ + var _bE0_ = caml_wrap_exception(_bIX_); + if(_bE0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jf_], 1); + throw caml_maybe_attach_backtrace(_bE0_, 0); + } + var + participation_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _jn_, Runtime_ocaml_Runtime[13], _bE6_); + try{ + var + _bE8_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bE9_ = function(param){return 0;}, + _bE__ = + [0, + function(param){ + function _bIo_(param){ + var + _bIS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$0), + _bIT_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$1), + _bIU_ = + caml_call2 + (Runtime_ocaml_Runtime[108], loyer_eligible, loyer_reference), + _bIV_ = caml_call2(Runtime_ocaml_Runtime[103], _bIU_, _bIT_), + _bIW_ = caml_call1(Runtime_ocaml_Runtime[78], _bIV_); + return caml_call2(Runtime_ocaml_Runtime[107], _bIW_, _bIS_); + } + function _bIp_(param){ + var + _bIQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bIR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _jp_, _bIR_); + } + var + _bIq_ = + [0, + function(param){ + function _bIr_(param){ + var + _bIL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$2), + _bIM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$3), + _bIN_ = caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTO_), - _bTQ_=caml_call1(Runtime_ocaml_Runtime[69],_bTP_), - _bTR_=caml_call1(Runtime_ocaml_Runtime[31],cst_7089), - _bTS_=caml_call2(Runtime_ocaml_Runtime[104],_bTR_,_bTQ_), - _bTT_=caml_call1(Runtime_ocaml_Runtime[31],cst_68350); - return caml_call2(Runtime_ocaml_Runtime[93],_bTT_,_bTS_); - case 1: - var _bTU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$146); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTU_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40643) - :caml_call1(Runtime_ocaml_Runtime[31],cst_47433); - var _bTV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50575); - var _bTW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54138); - var _bTX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57687); - var - _bTY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$24), - _bTZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTY_), - _bT0_=caml_call1(Runtime_ocaml_Runtime[69],_bTZ_), - _bT1_=caml_call1(Runtime_ocaml_Runtime[31],cst_6407), - _bT2_=caml_call2(Runtime_ocaml_Runtime[104],_bT1_,_bT0_), - _bT3_=caml_call1(Runtime_ocaml_Runtime[31],cst_61469); - return caml_call2(Runtime_ocaml_Runtime[93],_bT3_,_bT2_); - default: - var _bT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$147); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_38578) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44869); - var _bT5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_47602); - var _bT6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50744); - var _bT7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$29); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bT7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_53884); - var - _bT8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$25), - _bT9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bT8_), - _bT__=caml_call1(Runtime_ocaml_Runtime[69],_bT9_), - _bT$_=caml_call1(Runtime_ocaml_Runtime[31],cst_5946), - _bUa_=caml_call2(Runtime_ocaml_Runtime[104],_bT$_,_bT__), - _bUb_=caml_call1(Runtime_ocaml_Runtime[31],cst_57416); - return caml_call2(Runtime_ocaml_Runtime[93],_bUb_,_bUa_)}} - function _bTE_(param) - {var - _bTF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bTG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bTF_), - _bTH_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bTI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bTH_), - _bTJ_=caml_call2(Runtime_ocaml_Runtime[83],_bTI_,_bTG_); - return caml_call2(Runtime_ocaml_Runtime[29],_wK_,_bTJ_)} - return caml_call4(Runtime_ocaml_Runtime[63],_wL_,[0],_bTE_,_bTD_)}, - _bPF_= - function(param) - {function _bS4_(param) - {switch(zone[0]) - {case 0: - var _bS$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$148); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bS$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_44630) - :caml_call1(Runtime_ocaml_Runtime[31],cst_52321); - var _bTa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_55788); - var _bTb_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59704); - var _bTc_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_63635); - var - _bTd_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$26), - _bTe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTd_), - _bTf_=caml_call1(Runtime_ocaml_Runtime[69],_bTe_), - _bTg_=caml_call1(Runtime_ocaml_Runtime[31],cst_7119), - _bTh_=caml_call2(Runtime_ocaml_Runtime[104],_bTg_,_bTf_), - _bTi_=caml_call1(Runtime_ocaml_Runtime[31],cst_68637); - return caml_call2(Runtime_ocaml_Runtime[93],_bTi_,_bTh_); - case 1: - var _bTj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$149); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40814) - :caml_call1(Runtime_ocaml_Runtime[31],cst_47632); - var _bTk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTk_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50787); - var _bTl_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTl_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54365); - var _bTm_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$31); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57929); - var - _bTn_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$27), - _bTo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTn_), - _bTp_=caml_call1(Runtime_ocaml_Runtime[69],_bTo_), - _bTq_=caml_call1(Runtime_ocaml_Runtime[31],cst_6434), - _bTr_=caml_call2(Runtime_ocaml_Runtime[104],_bTq_,_bTp_), - _bTs_=caml_call1(Runtime_ocaml_Runtime[31],cst_61727); - return caml_call2(Runtime_ocaml_Runtime[93],_bTs_,_bTr_); - default: - var _bTt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$150); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_38740) - :caml_call1(Runtime_ocaml_Runtime[31],cst_45057); - var _bTu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_47802); - var _bTv_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_50957); - var _bTw_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bTw_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_54110); - var - _bTx_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$28), - _bTy_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bTx_), - _bTz_=caml_call1(Runtime_ocaml_Runtime[69],_bTy_), - _bTA_=caml_call1(Runtime_ocaml_Runtime[31],cst_5971), - _bTB_=caml_call2(Runtime_ocaml_Runtime[104],_bTA_,_bTz_), - _bTC_=caml_call1(Runtime_ocaml_Runtime[31],cst_57657); - return caml_call2(Runtime_ocaml_Runtime[93],_bTC_,_bTB_)}} - function _bS5_(param) - {var - _bS6_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bS7_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bS6_), - _bS8_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bS9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bS8_), - _bS__=caml_call2(Runtime_ocaml_Runtime[83],_bS9_,_bS7_); - return caml_call2(Runtime_ocaml_Runtime[29],_wM_,_bS__)} - return caml_call4(Runtime_ocaml_Runtime[63],_wN_,[0],_bS5_,_bS4_)}, - _bPG_= - [0, - function(param) - {function _bSw_(param) - {switch(zone[0]) - {case 0: - var _bSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$151); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_46192) - :caml_call1(Runtime_ocaml_Runtime[31],cst_54152); - var _bSB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_57741); - var _bSC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_61794); - var _bSD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_65862); - var - _bSE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$29), - _bSF_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSE_), - _bSG_=caml_call1(Runtime_ocaml_Runtime[69],_bSF_), - _bSH_=caml_call1(Runtime_ocaml_Runtime[31],cst_7368), - _bSI_=caml_call2(Runtime_ocaml_Runtime[104],_bSH_,_bSG_), - _bSJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_71039); - return caml_call2(Runtime_ocaml_Runtime[93],_bSJ_,_bSI_); - case 1: - var _bSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$152); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSK_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_42242) - :caml_call1(Runtime_ocaml_Runtime[31],cst_49299); - var _bSL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSL_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_52565); - var _bSM_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSM_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_56268); - var _bSN_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSN_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_59957); - var - _bSO_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$30), - _bSP_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSO_), - _bSQ_=caml_call1(Runtime_ocaml_Runtime[69],_bSP_), - _bSR_=caml_call1(Runtime_ocaml_Runtime[31],cst_6659), - _bSS_=caml_call2(Runtime_ocaml_Runtime[104],_bSR_,_bSQ_), - _bST_=caml_call1(Runtime_ocaml_Runtime[31],cst_63887); - return caml_call2(Runtime_ocaml_Runtime[93],_bST_,_bSS_); - default: - var _bSU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$153); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSU_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_40096) - :caml_call1(Runtime_ocaml_Runtime[31],cst_46634); - var _bSV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_49475); - var _bSW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_52740); - var _bSX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bSX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_56004); - var - _bSY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$31), - _bSZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bSY_), - _bS0_=caml_call1(Runtime_ocaml_Runtime[69],_bSZ_), - _bS1_=caml_call1(Runtime_ocaml_Runtime[31],cst_6180), - _bS2_=caml_call2(Runtime_ocaml_Runtime[104],_bS1_,_bS0_), - _bS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_59675); - return caml_call2(Runtime_ocaml_Runtime[93],_bS3_,_bS2_)}} - function _bSx_(param) - {var - _bSy_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bSz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSy_); - return caml_call2(Runtime_ocaml_Runtime[29],_wO_,_bSz_)} - return caml_call4(Runtime_ocaml_Runtime[63],_wP_,[0],_bSx_,_bSw_)}, - _bPF_, - _bPE_], - _bPH_=caml_call4(Runtime_ocaml_Runtime[63],_wQ_,_bPG_,_bPD_,_bPC_)} - catch(_bSv_) - {_bSv_ = caml_wrap_exception(_bSv_); - if(_bSv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wJ_]; - throw _bSv_} + (Runtime_ocaml_Runtime[108], + loyer_eligible, + loyer_reference), + _bIO_ = caml_call2(Runtime_ocaml_Runtime[103], _bIN_, _bIM_), + _bIP_ = caml_call1(Runtime_ocaml_Runtime[78], _bIO_); + return caml_call2(Runtime_ocaml_Runtime[107], _bIP_, _bIL_); + } + function _bIs_(param){ + var + _bIG_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bIH_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIG_), + _bII_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bIJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bII_), + _bIK_ = caml_call2(Runtime_ocaml_Runtime[83], _bIJ_, _bIH_); + return caml_call2(Runtime_ocaml_Runtime[29], _jq_, _bIK_); + } + var + _bIt_ = + [0, + function(param){ + function _bIu_(param){ + var + _bIB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$4), + _bIC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$5), + _bID_ = + caml_call2 + (Runtime_ocaml_Runtime[108], + loyer_eligible, + loyer_reference), + _bIE_ = caml_call2(Runtime_ocaml_Runtime[103], _bID_, _bIC_), + _bIF_ = caml_call1(Runtime_ocaml_Runtime[78], _bIE_); + return caml_call2(Runtime_ocaml_Runtime[107], _bIF_, _bIB_); + } + function _bIv_(param){ + var + _bIw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bIx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bIw_), + _bIy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bIz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bIy_), + _bIA_ = caml_call2(Runtime_ocaml_Runtime[83], _bIz_, _bIx_); + return caml_call2(Runtime_ocaml_Runtime[29], _jr_, _bIA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _js_, [0], _bIv_, _bIu_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jt_, _bIt_, _bIs_, _bIr_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _ju_, _bIq_, _bIp_, _bIo_); + }], + _bE$_ = caml_call4(Runtime_ocaml_Runtime[63], _jv_, _bE__, _bE9_, _bE8_); + } + catch(_bIn_){ + var _bE7_ = caml_wrap_exception(_bIn_); + if(_bE7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jo_], 1); + throw caml_maybe_attach_backtrace(_bE7_, 0); + } + var + rapport_loyers = + caml_call3 + (Runtime_ocaml_Runtime[28], _jw_, Runtime_ocaml_Runtime[15], _bE$_); + function _bFa_(aide_finale){ + try{ var - plafond_equivalence_loyer_elig= + _bIe_ = + function(param){ + var + _bIi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jy_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bIj_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jz_, + traitement_aide_finale_diminue), + _bIi_), + _bIk_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jA_, + Runtime_ocaml_Runtime[13], + _bIj_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jB_, _bIk_), + _bIl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$59), + _bIm_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16); + return caml_call2(Runtime_ocaml_Runtime[128], _bIm_, _bIl_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale$0, + montant_forfaitaire_d823_16) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$60); + }, + _bIf_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jC_, 1); + }, + _bIg_ = caml_call4(Runtime_ocaml_Runtime[63], _jD_, [0], _bIf_, _bIe_); + return _bIg_; + } + catch(_bIh_){ + var _bId_ = caml_wrap_exception(_bIh_); + if(_bId_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jx_], 1); + throw caml_maybe_attach_backtrace(_bId_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _jE_, Runtime_ocaml_Runtime[10], _bFa_); + try{ + var + _bFc_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bFd_ = function(param){return 0;}, + _bFe_ = + [0, + function(param){ + function _bG$_(param){ + var _bHZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45); + if(caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bHZ_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$61); + var + _bH0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75), + _bH1_ = + caml_call2(Runtime_ocaml_Runtime[112], rapport_loyers, _bH0_), + _bH2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$0), + _bH3_ = + caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bH2_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bH3_, _bH1_)){ + var + _bH4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045), + _bH5_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bH4_), + _bH6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$0); + return caml_call2(Runtime_ocaml_Runtime[103], _bH6_, _bH5_); + } + var _bH7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$0); + if(! caml_call2(Runtime_ocaml_Runtime[127], rapport_loyers, _bH7_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$62); + var + _bH8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$1), + _bH9_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bH8_), + _bH__ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068), + _bH$_ = caml_call2(Runtime_ocaml_Runtime[103], _bH__, _bH9_), + _bIa_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3), + _bIb_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$1), + _bIc_ = caml_call2(Runtime_ocaml_Runtime[103], _bIb_, _bIa_); + return caml_call2(Runtime_ocaml_Runtime[92], _bIc_, _bH$_); + } + function _bHa_(param){ + var + _bHX_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bHY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHX_); + return caml_call2(Runtime_ocaml_Runtime[29], _jG_, _bHY_); + } + var + _bHb_ = + [0, + function(param){ + function _bHc_(param){ + var _bHH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$1); + if + (caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bHH_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$63); + var + _bHI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$2), + _bHJ_ = + caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bHI_), + _bHK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$2), + _bHL_ = + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bHK_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bHL_, _bHJ_)){ + var + _bHM_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$2), + _bHN_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHM_), + _bHO_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$3); + return caml_call2(Runtime_ocaml_Runtime[103], _bHO_, _bHN_); + } + var _bHP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$3); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bHP_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$64); + var + _bHQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$4), + _bHR_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHQ_), + _bHS_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$0), + _bHT_ = caml_call2(Runtime_ocaml_Runtime[103], _bHS_, _bHR_), + _bHU_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$0), + _bHV_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$4), + _bHW_ = caml_call2(Runtime_ocaml_Runtime[103], _bHV_, _bHU_); + return caml_call2(Runtime_ocaml_Runtime[92], _bHW_, _bHT_); + } + function _bHd_(param){ + var + _bHC_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bHD_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHC_), + _bHE_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bHF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHE_), + _bHG_ = caml_call2(Runtime_ocaml_Runtime[83], _bHF_, _bHD_); + return caml_call2(Runtime_ocaml_Runtime[29], _jH_, _bHG_); + } + var + _bHe_ = + [0, + function(param){ + function _bHf_(param){ + var + _bHm_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$3); + if + (caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bHm_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$65); + var + _bHn_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$5), + _bHo_ = + caml_call2 + (Runtime_ocaml_Runtime[112], rapport_loyers, _bHn_), + _bHp_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_45$4), + _bHq_ = + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bHp_); + if(caml_call2(Runtime_ocaml_Runtime[83], _bHq_, _bHo_)){ + var + _bHr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$5), + _bHs_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHr_), + _bHt_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$6); + return caml_call2(Runtime_ocaml_Runtime[103], _bHt_, _bHs_); + } + var + _bHu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$6); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[127], rapport_loyers, _bHu_)) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$66); + var + _bHv_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$7), + _bHw_ = + caml_call2(Runtime_ocaml_Runtime[97], rapport_loyers, _bHv_), + _bHx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0068$1), + _bHy_ = caml_call2(Runtime_ocaml_Runtime[103], _bHx_, _bHw_), + _bHz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_3$1), + _bHA_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_0045$7), + _bHB_ = caml_call2(Runtime_ocaml_Runtime[103], _bHA_, _bHz_); + return caml_call2(Runtime_ocaml_Runtime[92], _bHB_, _bHy_); + } + function _bHg_(param){ + var + _bHh_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bHi_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bHh_), + _bHj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bHk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bHj_), + _bHl_ = caml_call2(Runtime_ocaml_Runtime[83], _bHk_, _bHi_); + return caml_call2(Runtime_ocaml_Runtime[29], _jI_, _bHl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _jJ_, [0], _bHg_, _bHf_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jK_, _bHe_, _bHd_, _bHc_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _jL_, _bHb_, _bHa_, _bG$_); + }], + _bFf_ = caml_call4(Runtime_ocaml_Runtime[63], _jM_, _bFe_, _bFd_, _bFc_); + } + catch(_bG__){ + var _bFb_ = caml_wrap_exception(_bG__); + if(_bFb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jF_], 1); + throw caml_maybe_attach_backtrace(_bFb_, 0); + } + var + taux_loyer_eligible_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _jN_, Runtime_ocaml_Runtime[15], _bFf_); + function _bFg_(aide_finale){ + try{ + var + _bGV_ = + function(param){ + var + _bGZ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jP_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bG0_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jQ_, + traitement_aide_finale_minorat), + _bGZ_), + _bG1_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jR_, + Runtime_ocaml_Runtime[13], + _bG0_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _jS_, _bG1_), + _bG2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jT_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bG3_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _jU_, + contributions_sociales_dot_mon), + _bG2_), + _bG4_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _jV_, + Runtime_ocaml_Runtime[13], + _bG3_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _jW_, _bG4_), + _bG5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50), + _bG6_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _bG7_ = caml_call2(Runtime_ocaml_Runtime[98], _bG6_, _bG5_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _bG7_), + _bG8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$67), + _bG9_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _bG9_, _bG8_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$68); + }, + _bGW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _jX_, 1); + }, + _bGX_ = caml_call4(Runtime_ocaml_Runtime[63], _jY_, [0], _bGW_, _bGV_); + return _bGX_; + } + catch(_bGY_){ + var _bGU_ = caml_wrap_exception(_bGY_); + if(_bGU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _jO_], 1); + throw caml_maybe_attach_backtrace(_bGU_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _jZ_, Runtime_ocaml_Runtime[10], _bFg_); + try{ + var + _bFi_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _bFj_ = function(param){return 0;}, + _bFk_ = + [0, + function(param){ + function _bGo_(param){ + var + _bGQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000), + _bGR_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$0), + _bGS_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bGR_), + _bGT_ = caml_call1(Runtime_ocaml_Runtime[78], _bGS_); + return caml_call2(Runtime_ocaml_Runtime[107], _bGT_, _bGQ_); + } + function _bGp_(param){ + var + _bGO_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bGP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGO_); + return caml_call2(Runtime_ocaml_Runtime[29], _j1_, _bGP_); + } + var + _bGq_ = + [0, + function(param){ + function _bGr_(param){ + var + _bGK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$1), + _bGL_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$2), + _bGM_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bGL_), + _bGN_ = caml_call1(Runtime_ocaml_Runtime[78], _bGM_); + return caml_call2(Runtime_ocaml_Runtime[107], _bGN_, _bGK_); + } + function _bGs_(param){ + var + _bGF_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bGG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bGF_), + _bGH_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bGI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGH_), + _bGJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bGI_, _bGG_); + return caml_call2(Runtime_ocaml_Runtime[29], _j2_, _bGJ_); + } + var + _bGt_ = + [0, + function(param){ + function _bGu_(param){ + var + _bGB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$3), + _bGC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100000$4), + _bGD_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + taux_loyer_eligible_formule, + _bGC_), + _bGE_ = caml_call1(Runtime_ocaml_Runtime[78], _bGD_); + return caml_call2(Runtime_ocaml_Runtime[107], _bGE_, _bGB_); + } + function _bGv_(param){ + var + _bGw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bGx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bGw_), + _bGy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bGz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bGy_), + _bGA_ = caml_call2(Runtime_ocaml_Runtime[83], _bGz_, _bGx_); + return caml_call2(Runtime_ocaml_Runtime[29], _j3_, _bGA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _j4_, [0], _bGv_, _bGu_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _j5_, _bGt_, _bGs_, _bGr_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _j6_, _bGq_, _bGp_, _bGo_); + }], + _bFl_ = caml_call4(Runtime_ocaml_Runtime[63], _j7_, _bFk_, _bFj_, _bFi_); + } + catch(_bGn_){ + var _bFh_ = caml_wrap_exception(_bGn_); + if(_bFh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j0_], 1); + throw caml_maybe_attach_backtrace(_bFh_, 0); + } + var + taux_loyer_eligible_taux_arron = + caml_call3 + (Runtime_ocaml_Runtime[28], _j8_, Runtime_ocaml_Runtime[15], _bFl_); + function _bFm_(aide_finale){ + try{ + var + _bGc_ = + function(param){ + var + _bGg_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _j__, + Runtime_ocaml_Runtime[13], + aide_finale), + _bGh_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _j$_, + traitement_aide_finale_contrib), + _bGg_), + _bGi_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ka_, + Runtime_ocaml_Runtime[13], + _bGh_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kb_, _bGi_), + _bGj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$69), + _bGk_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3), + _bGl_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bGk_); + if(! caml_call2(Runtime_ocaml_Runtime[128], _bGl_, _bGj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$70); + var + _bGm_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + reduction_loyer_solidarite, + fraction_l832_3); + return caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bGm_); + }, + _bGd_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kc_, 1); + }, + _bGe_ = caml_call4(Runtime_ocaml_Runtime[63], _kd_, [0], _bGd_, _bGc_); + return _bGe_; + } + catch(_bGf_){ + var _bGb_ = caml_wrap_exception(_bGf_); + if(_bGb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _j9_], 1); + throw caml_maybe_attach_backtrace(_bGb_, 0); + } + } + var + traitement_aide_finale_reducti = + caml_call3 + (Runtime_ocaml_Runtime[28], _ke_, Runtime_ocaml_Runtime[10], _bFm_); + try{ + var + _bFo_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[92], + taux_composition_familiale, + taux_loyer_eligible_taux_arron); + }, + _bFp_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kg_, 1); + }, + _bFq_ = caml_call4(Runtime_ocaml_Runtime[63], _kh_, [0], _bFp_, _bFo_); + } + catch(_bGa_){ + var _bFn_ = caml_wrap_exception(_bGa_); + if(_bFn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kf_], 1); + throw caml_maybe_attach_backtrace(_bFn_, 0); + } + var + taux_prise_compte_ressources = + caml_call3 + (Runtime_ocaml_Runtime[28], _ki_, Runtime_ocaml_Runtime[15], _bFq_); + function _bFr_(aide_finale){ + try{ + var + _bF5_ = + function(param){ + var + _bF9_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _kk_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bF__ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _kl_, + traitement_aide_finale_reducti), + _bF9_), + _bF$_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _km_, + Runtime_ocaml_Runtime[13], + _bF__), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _kn_, _bF$_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_16) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$71) + : aide_finale$0; + }, + _bF6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ko_, 1); + }, + _bF7_ = caml_call4(Runtime_ocaml_Runtime[63], _kp_, [0], _bF6_, _bF5_); + return _bF7_; + } + catch(_bF8_){ + var _bF4_ = caml_wrap_exception(_bF8_); + if(_bF4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kj_], 1); + throw caml_maybe_attach_backtrace(_bF4_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _kq_, Runtime_ocaml_Runtime[10], _bFr_); + try{ + var + _bFt_ = + function(param){ + var + _bF2_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + ressources_menage_arrondies, + abattement_forfaitaire_d823_17), + participation_ressources = + caml_call2 + (Runtime_ocaml_Runtime[104], _bF2_, taux_prise_compte_ressources), + _bF3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$72), + participation_ressources$0 = + caml_call2 + (Runtime_ocaml_Runtime[113], participation_ressources, _bF3_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$73) + : participation_ressources; + return caml_call2 + (Runtime_ocaml_Runtime[93], + participation_minimale, + participation_ressources$0); + }, + _bFu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ks_, 1); + }, + _bFv_ = caml_call4(Runtime_ocaml_Runtime[63], _kt_, [0], _bFu_, _bFt_); + } + catch(_bF1_){ + var _bFs_ = caml_wrap_exception(_bF1_); + if(_bFs_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kr_], 1); + throw caml_maybe_attach_backtrace(_bFs_, 0); + } + var + participation_personnelle = + caml_call3 + (Runtime_ocaml_Runtime[28], _ku_, Runtime_ocaml_Runtime[13], _bFv_); + try{ + var + _bFx_ = + function(param){ + var + _bFZ_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + loyer_eligible, + montant_forfaitaire_charges_d8), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[98], _bFZ_, participation_personnelle), + _bF0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$74); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bF0_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$75) + : aide_finale; + }, + _bFy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kw_, 1); + }, + _bFz_ = caml_call4(Runtime_ocaml_Runtime[63], _kx_, [0], _bFy_, _bFx_); + } + catch(_bFY_){ + var _bFw_ = caml_wrap_exception(_bFY_); + if(_bFw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kv_], 1); + throw caml_maybe_attach_backtrace(_bFw_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _ky_, Runtime_ocaml_Runtime[13], _bFz_); + try{ + var + _bFB_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_5$4), + _bFC_ = + caml_call2(Runtime_ocaml_Runtime[104], plafond_loyer_d823_16_2, _bFB_), + _bFD_ = + caml_call2 + (Runtime_ocaml_Runtime[128], plafond_degressivite_d823_16, _bFC_); + } + catch(_bFX_){ + var _bFA_ = caml_wrap_exception(_bFX_); + if(_bFA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kz_], 1); + throw caml_maybe_attach_backtrace(_bFA_, 0); + } + if(! _bFD_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kI_], 1); + try{ + var + _bFF_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_98$0), + _bFG_ = caml_call2(Runtime_ocaml_Runtime[117], fraction_l832_3, _bFF_), + _bFH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9), + _bFI_ = caml_call2(Runtime_ocaml_Runtime[127], fraction_l832_3, _bFH_), + _bFJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bFI_, _bFG_); + } + catch(_bFW_){ + var _bFE_ = caml_wrap_exception(_bFW_); + if(_bFE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kA_], 1); + throw caml_maybe_attach_backtrace(_bFE_, 0); + } + if(! _bFJ_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kH_], 1); + try{ + var + _bFL_ = + caml_call2 + (Runtime_ocaml_Runtime[83], logement_est_chambre, colocation), + _bFM_ = caml_call1(Runtime_ocaml_Runtime[67], _bFL_); + } + catch(_bFV_){ + var _bFK_ = caml_wrap_exception(_bFV_); + if(_bFK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kB_], 1); + throw caml_maybe_attach_backtrace(_bFK_, 0); + } + if(! _bFM_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kG_], 1); + try{ + var + _bFO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$76), + _bFP_ = + caml_call2 + (Runtime_ocaml_Runtime[126], nombre_personnes_a_charge, _bFO_); + } + catch(_bFU_){ + var _bFN_ = caml_wrap_exception(_bFU_); + if(_bFN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kC_], 1); + throw caml_maybe_attach_backtrace(_bFN_, 0); + } + if(! _bFP_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kF_], 1); + try{ + var + _bFR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bFS_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bFR_); + } + catch(_bFT_){ + var _bFQ_ = caml_wrap_exception(_bFT_); + if(_bFQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kD_], 1); + throw caml_maybe_attach_backtrace(_bFQ_, 0); + } + if(_bFS_) + return [0, + montant_forfaitaire_charges_d8, + plafond_loyer_d823_16_2, + participation_minimale, + taux_composition_familiale, + participation_personnelle, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _kE_], 1); + } + function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ + var + type_logement_foyer = calcul_aide_personnalisee_loge[1], + date_conventionnement = calcul_aide_personnalisee_loge[2], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[3], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[4], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[5], + zone = calcul_aide_personnalisee_loge[6], + date_courante = calcul_aide_personnalisee_loge[7], + redevance = calcul_aide_personnalisee_loge[8], + residence = calcul_aide_personnalisee_loge[9], + condition_2_du_832_25 = calcul_aide_personnalisee_loge[10], + limitation_majoration_personne = calcul_aide_personnalisee_loge[11], + n_nombre_parts_d832_25 = calcul_aide_personnalisee_loge[12]; + try{ + var + _bx9_ = + function(param){ + function _bDG_(param){return 0;} + function _bDH_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kK_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kL_, [0], _bDH_, _bDG_); + }, + _bx__ = function(param){return 1;}, + _bx$_ = + [0, + function(param){ + return caml_call1(limitation_majoration_personne, 0); + }], + _bya_ = caml_call4(Runtime_ocaml_Runtime[63], _kM_, _bx$_, _bx__, _bx9_); + } + catch(_bDF_){ + var _bx8_ = caml_wrap_exception(_bDF_); + if(_bx8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kJ_], 1); + throw caml_maybe_attach_backtrace(_bx8_, 0); + } + var + limitation_majoration_personne$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _kN_, Runtime_ocaml_Runtime[12], _bya_); + try{ + var + _byc_ = + function(param){ + function _bDB_(param){ + switch(type_logement_foyer[0]){ + case 0: + return 0; + case 1: + var _bDD_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 12, 31); + return caml_call2 + (Runtime_ocaml_Runtime[130], date_conventionnement, _bDD_); + case 2: + var _bDE_ = caml_call3(Runtime_ocaml_Runtime[57], 1990, 9, 30); + return caml_call2 + (Runtime_ocaml_Runtime[130], date_conventionnement, _bDE_); + default: return 0; + } + } + function _bDC_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kP_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _kQ_, [0], _bDC_, _bDB_); + }, + _byd_ = function(param){return 1;}, + _bye_ = + [0, function(param){return caml_call1(condition_2_du_832_25, 0);}], + _byf_ = caml_call4(Runtime_ocaml_Runtime[63], _kR_, _bye_, _byd_, _byc_); + } + catch(_bDA_){ + var _byb_ = caml_wrap_exception(_bDA_); + if(_byb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kO_], 1); + throw caml_maybe_attach_backtrace(_byb_, 0); + } + var + condition_2_du_832_25$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _kS_, Runtime_ocaml_Runtime[12], _byf_); + try{ + var + _byh_ = function(param){return date_courante;}, + _byi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _kU_, 1); + }, + _byj_ = caml_call4(Runtime_ocaml_Runtime[63], _kV_, [0], _byi_, _byh_), + contributions_sociales_dot_dat = caml_call3 - (Runtime_ocaml_Runtime[28],_wR_,Runtime_ocaml_Runtime[13],_bPH_); - try - {var - _bPI_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_121726)}, - _bPJ_= - function(param) - {var - _bSt_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bSu_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSt_); - return caml_call2(Runtime_ocaml_Runtime[29],_wT_,_bSu_)}, - _bPK_=caml_call4(Runtime_ocaml_Runtime[63],_wU_,[0],_bPJ_,_bPI_)} - catch(_bSs_) - {_bSs_ = caml_wrap_exception(_bSs_); - if(_bSs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wS_]; - throw _bSs_} - var - coefficient_r_d832_25= - caml_call3 - (Runtime_ocaml_Runtime[28],_wV_,Runtime_ocaml_Runtime[13],_bPK_); - try - {var - _bPL_=function(param){return condition_2_du_832_25$0}, - _bPM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_wX_,1)}, - _bPN_=caml_call4(Runtime_ocaml_Runtime[63],_wY_,[0],_bPM_,_bPL_), - calcul_nombre_parts_dot_condit= - caml_call3 - (Runtime_ocaml_Runtime[28],_wZ_,Runtime_ocaml_Runtime[12],_bPN_)} - catch(_bSr_) - {_bSr_ = caml_wrap_exception(_bSr_); - if(_bSr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_wW_]; - throw _bSr_} - try - {var - _bPO_=function(param){return nombre_personnes_a_charge}, - _bPP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w1_,1)}, - _bPQ_=caml_call4(Runtime_ocaml_Runtime[63],_w2_,[0],_bPP_,_bPO_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_w3_,Runtime_ocaml_Runtime[14],_bPQ_)} - catch(_bSq_) - {_bSq_ = caml_wrap_exception(_bSq_); - if(_bSq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_w0_]; - throw _bSq_} - try - {var - _bPR_=function(param){return situation_familiale_calcul_apl}, - _bPS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w5_,1)}, - _bPT_=caml_call4(Runtime_ocaml_Runtime[63],_w6_,[0],_bPS_,_bPR_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _w7_, - embed_situation_familiale_calc, - _bPT_)} - catch(_bSp_) - {_bSp_ = caml_wrap_exception(_bSp_); - if(_bSp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_w4_]; - throw _bSp_} - try - {var - _bPU_=function(param){return residence}, - _bPV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_w9_,1)}, - _bPW_=caml_call4(Runtime_ocaml_Runtime[63],_w__,[0],_bPV_,_bPU_), - calcul_nombre_parts_dot_reside= - caml_call3 - (Runtime_ocaml_Runtime[28],_w$_,embed_collectivite$0,_bPW_)} - catch(_bSo_) - {_bSo_ = caml_wrap_exception(_bSo_); - if(_bSo_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_w8_]; - throw _bSo_} - function calcul_nombre_parts_dot_limita(param) - {function _bSl_(param){return 1} - function _bSm_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _xa_, - limitation_majoration_personne$0)} - var _bSn_=caml_call4(Runtime_ocaml_Runtime[63],_xb_,[0],_bSm_,_bSl_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _xc_, - Runtime_ocaml_Runtime[12], - _bSn_)} - var - _bPX_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_xd_,calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_xe_,_bPX_), - calcul_nombre_parts_dot_n_nomb=result$0[1]; - try - {var - _bPY_= - function(param) - {return condition_2_du_832_25$0 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_2668)}, - _bPZ_= - function(param) - {var - _bSj_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bSk_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSj_); - return caml_call2(Runtime_ocaml_Runtime[29],_xg_,_bSk_)}, - _bP0_=caml_call4(Runtime_ocaml_Runtime[63],_xh_,[0],_bPZ_,_bPY_)} - catch(_bSi_) - {_bSi_ = caml_wrap_exception(_bSi_); - if(_bSi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xf_]; - throw _bSi_} - var - montant_forfaitaire_d832_27= - caml_call3 - (Runtime_ocaml_Runtime[28],_xi_,Runtime_ocaml_Runtime[13],_bP0_); - try - {var - _bP1_= - function(param) - {return condition_2_du_832_25$0 - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2142091) - :caml_call1(Runtime_ocaml_Runtime[31],cst_1339340)}, - _bP2_= - function(param) - {var - _bSg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bSh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bSg_); - return caml_call2(Runtime_ocaml_Runtime[29],_xk_,_bSh_)}, - _bP3_=caml_call4(Runtime_ocaml_Runtime[63],_xl_,[0],_bP2_,_bP1_)} - catch(_bSf_) - {_bSf_ = caml_wrap_exception(_bSf_); - if(_bSf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xj_]; - throw _bSf_} - var - coefficient_multiplicateur_d83= - caml_call3 - (Runtime_ocaml_Runtime[28],_xm_,Runtime_ocaml_Runtime[13],_bP3_); - function _bP4_(aide_finale) - {try - {var - _bR$_= - function(param) - {var - _bSd_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$154), - _bSe_= + (Runtime_ocaml_Runtime[28], _kW_, Runtime_ocaml_Runtime[16], _byj_); + } + catch(_bDz_){ + var _byg_ = caml_wrap_exception(_bDz_); + if(_byg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kT_], 1); + throw caml_maybe_attach_backtrace(_byg_, 0); + } + var + _byk_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _kX_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _kY_, _byk_), + contributions_sociales_dot_mon = result[1]; + try{ + var + _bym_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$1); + }, + _byn_ = + function(param){ + var + _bDx_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bDy_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDx_); + return caml_call2(Runtime_ocaml_Runtime[29], _k0_, _bDy_); + }, + _byo_ = caml_call4(Runtime_ocaml_Runtime[63], _k1_, [0], _byn_, _bym_); + } + catch(_bDw_){ + var _byl_ = caml_wrap_exception(_bDw_); + if(_byl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _kZ_], 1); + throw caml_maybe_attach_backtrace(_byl_, 0); + } + var + montant_minimal_aide_d823_24 = + caml_call3 + (Runtime_ocaml_Runtime[28], _k2_, Runtime_ocaml_Runtime[13], _byo_); + try{ + var + _byq_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$0); + }, + _byr_ = + function(param){ + var + _bDu_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bDv_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bDu_); + return caml_call2(Runtime_ocaml_Runtime[29], _k4_, _bDv_); + }, + _bys_ = caml_call4(Runtime_ocaml_Runtime[63], _k5_, [0], _byr_, _byq_); + } + catch(_bDt_){ + var _byp_ = caml_wrap_exception(_bDt_); + if(_byp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _k3_], 1); + throw caml_maybe_attach_backtrace(_byp_, 0); + } + var + montant_forfaitaire_d832_24 = + caml_call3 + (Runtime_ocaml_Runtime[28], _k6_, Runtime_ocaml_Runtime[13], _bys_); + try{ + var + _byu_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _byv_ = function(param){return 0;}, + _byw_ = + function(param){ + function _bCU_(param){ + switch(zone[0]){ + case 0: + var _bC1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_44443) + : caml_call1(Runtime_ocaml_Runtime[31], cst_52101); + var _bC2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_55555); + var _bC3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59454); + var _bC4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$23); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_63369); + var + _bC5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$23), + _bC6_ = caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24); - return caml_call2(Runtime_ocaml_Runtime[128],_bSe_,_bSd_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_24) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$155)}, - _bSa_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_xo_,1)}, - _bSb_=caml_call4(Runtime_ocaml_Runtime[63],_xp_,[0],_bSa_,_bR$_); - return _bSb_} - catch(_bSc_) - {_bSc_ = caml_wrap_exception(_bSc_); - if(_bSc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xn_]; - throw _bSc_}} - var - traitement_aide_finale_minorat= + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bC5_), + _bC7_ = caml_call1(Runtime_ocaml_Runtime[69], _bC6_), + _bC8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7089), + _bC9_ = caml_call2(Runtime_ocaml_Runtime[104], _bC8_, _bC7_), + _bC__ = caml_call1(Runtime_ocaml_Runtime[31], cst_68350); + return caml_call2(Runtime_ocaml_Runtime[93], _bC__, _bC9_); + case 1: + var _bC$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bC$_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40643) + : caml_call1(Runtime_ocaml_Runtime[31], cst_47433); + var _bDa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50575); + var _bDb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54138); + var _bDc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$24); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57687); + var + _bDd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$24), + _bDe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDd_), + _bDf_ = caml_call1(Runtime_ocaml_Runtime[69], _bDe_), + _bDg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6407), + _bDh_ = caml_call2(Runtime_ocaml_Runtime[104], _bDg_, _bDf_), + _bDi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61469); + return caml_call2(Runtime_ocaml_Runtime[93], _bDi_, _bDh_); + default: + var _bDj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_38578) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44869); + var _bDk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_47602); + var _bDl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50744); + var _bDm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$25); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bDm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_53884); + var + _bDn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$25), + _bDo_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bDn_), + _bDp_ = caml_call1(Runtime_ocaml_Runtime[69], _bDo_), + _bDq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5946), + _bDr_ = caml_call2(Runtime_ocaml_Runtime[104], _bDq_, _bDp_), + _bDs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57416); + return caml_call2(Runtime_ocaml_Runtime[93], _bDs_, _bDr_); + } + } + function _bCV_(param){ + var + _bCW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bCX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCW_), + _bCY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bCZ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bCY_), + _bC0_ = caml_call2(Runtime_ocaml_Runtime[83], _bCZ_, _bCX_); + return caml_call2(Runtime_ocaml_Runtime[29], _k8_, _bC0_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _k9_, [0], _bCV_, _bCU_); + }, + _byx_ = + function(param){ + function _bCj_(param){ + switch(zone[0]){ + case 0: + var _bCq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_44630) + : caml_call1(Runtime_ocaml_Runtime[31], cst_52321); + var _bCr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_55788); + var _bCs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59704); + var _bCt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_63635); + var + _bCu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$26), + _bCv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bCu_), + _bCw_ = caml_call1(Runtime_ocaml_Runtime[69], _bCv_), + _bCx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7119), + _bCy_ = caml_call2(Runtime_ocaml_Runtime[104], _bCx_, _bCw_), + _bCz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_68637); + return caml_call2(Runtime_ocaml_Runtime[93], _bCz_, _bCy_); + case 1: + var _bCA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCA_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40814) + : caml_call1(Runtime_ocaml_Runtime[31], cst_47632); + var _bCB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50787); + var _bCC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54365); + var _bCD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$27); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCD_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57929); + var + _bCE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$27), + _bCF_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bCE_), + _bCG_ = caml_call1(Runtime_ocaml_Runtime[69], _bCF_), + _bCH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6434), + _bCI_ = caml_call2(Runtime_ocaml_Runtime[104], _bCH_, _bCG_), + _bCJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_61727); + return caml_call2(Runtime_ocaml_Runtime[93], _bCJ_, _bCI_); + default: + var _bCK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_38740) + : caml_call1(Runtime_ocaml_Runtime[31], cst_45057); + var _bCL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_47802); + var _bCM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_50957); + var _bCN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_54110); + var + _bCO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$28), + _bCP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], nombre_personnes_a_charge, _bCO_), + _bCQ_ = caml_call1(Runtime_ocaml_Runtime[69], _bCP_), + _bCR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5971), + _bCS_ = caml_call2(Runtime_ocaml_Runtime[104], _bCR_, _bCQ_), + _bCT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_57657); + return caml_call2(Runtime_ocaml_Runtime[93], _bCT_, _bCS_); + } + } + function _bCk_(param){ + var + _bCl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bCm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bCl_), + _bCn_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bCo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bCn_), + _bCp_ = caml_call2(Runtime_ocaml_Runtime[83], _bCo_, _bCm_); + return caml_call2(Runtime_ocaml_Runtime[29], _k__, _bCp_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _k$_, [0], _bCk_, _bCj_); + }, + _byy_ = + [0, + function(param){ + function _bBN_(param){ + switch(zone[0]){ + case 0: + var _bBR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bBR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_46192) + : caml_call1(Runtime_ocaml_Runtime[31], cst_54152); + var _bBS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bBS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_57741); + var _bBT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bBT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_61794); + var _bBU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$29); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bBU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_65862); + var + _bBV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$29), + _bBW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bBV_), + _bBX_ = caml_call1(Runtime_ocaml_Runtime[69], _bBW_), + _bBY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7368), + _bBZ_ = caml_call2(Runtime_ocaml_Runtime[104], _bBY_, _bBX_), + _bB0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_71039); + return caml_call2(Runtime_ocaml_Runtime[93], _bB0_, _bBZ_); + case 1: + var _bB1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_42242) + : caml_call1(Runtime_ocaml_Runtime[31], cst_49299); + var _bB2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_52565); + var _bB3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_56268); + var _bB4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_59957); + var + _bB5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$30), + _bB6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bB5_), + _bB7_ = caml_call1(Runtime_ocaml_Runtime[69], _bB6_), + _bB8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6659), + _bB9_ = caml_call2(Runtime_ocaml_Runtime[104], _bB8_, _bB7_), + _bB__ = caml_call1(Runtime_ocaml_Runtime[31], cst_63887); + return caml_call2(Runtime_ocaml_Runtime[93], _bB__, _bB9_); + default: + var _bB$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bB$_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_40096) + : caml_call1(Runtime_ocaml_Runtime[31], cst_46634); + var _bCa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_49475); + var _bCb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_52740); + var _bCc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$31); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _bCc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_56004); + var + _bCd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$31), + _bCe_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bCd_), + _bCf_ = caml_call1(Runtime_ocaml_Runtime[69], _bCe_), + _bCg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6180), + _bCh_ = caml_call2(Runtime_ocaml_Runtime[104], _bCg_, _bCf_), + _bCi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_59675); + return caml_call2(Runtime_ocaml_Runtime[93], _bCi_, _bCh_); + } + } + function _bBO_(param){ + var + _bBP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bBQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBP_); + return caml_call2(Runtime_ocaml_Runtime[29], _la_, _bBQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _lb_, [0], _bBO_, _bBN_); + }, + _byx_, + _byw_], + _byz_ = caml_call4(Runtime_ocaml_Runtime[63], _lc_, _byy_, _byv_, _byu_); + } + catch(_bBM_){ + var _byt_ = caml_wrap_exception(_bBM_); + if(_byt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _k7_], 1); + throw caml_maybe_attach_backtrace(_byt_, 0); + } + var + plafond_equivalence_loyer_elig = + caml_call3 + (Runtime_ocaml_Runtime[28], _ld_, Runtime_ocaml_Runtime[13], _byz_); + try{ + var + _byB_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_121726); + }, + _byC_ = + function(param){ + var + _bBK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bBL_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBK_); + return caml_call2(Runtime_ocaml_Runtime[29], _lf_, _bBL_); + }, + _byD_ = caml_call4(Runtime_ocaml_Runtime[63], _lg_, [0], _byC_, _byB_); + } + catch(_bBJ_){ + var _byA_ = caml_wrap_exception(_bBJ_); + if(_byA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _le_], 1); + throw caml_maybe_attach_backtrace(_byA_, 0); + } + var + coefficient_r_d832_25 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lh_, Runtime_ocaml_Runtime[13], _byD_); + try{ + var + _byF_ = function(param){return condition_2_du_832_25$0;}, + _byG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lj_, 1); + }, + _byH_ = caml_call4(Runtime_ocaml_Runtime[63], _lk_, [0], _byG_, _byF_), + calcul_nombre_parts_dot_condit = caml_call3 - (Runtime_ocaml_Runtime[28],_xq_,Runtime_ocaml_Runtime[10],_bP4_); - try - {var - _bP5_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[128], - redevance, - plafond_equivalence_loyer_elig) - ?plafond_equivalence_loyer_elig - :redevance}, - _bP6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xs_,1)}, - _bP7_=caml_call4(Runtime_ocaml_Runtime[63],_xt_,[0],_bP6_,_bP5_)} - catch(_bR__) - {_bR__ = caml_wrap_exception(_bR__); - if(_bR__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xr_]; - throw _bR__} - var - equivalence_loyer_eligible= + (Runtime_ocaml_Runtime[28], _ll_, Runtime_ocaml_Runtime[12], _byH_); + } + catch(_bBI_){ + var _byE_ = caml_wrap_exception(_bBI_); + if(_byE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _li_], 1); + throw caml_maybe_attach_backtrace(_byE_, 0); + } + try{ + var + _byJ_ = function(param){return nombre_personnes_a_charge;}, + _byK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ln_, 1); + }, + _byL_ = caml_call4(Runtime_ocaml_Runtime[63], _lo_, [0], _byK_, _byJ_), + calcul_nombre_parts_dot_nombre = caml_call3 - (Runtime_ocaml_Runtime[28],_xu_,Runtime_ocaml_Runtime[13],_bP7_); - try - {var - _bP8_= - function(param) - {function _bR8_(param){return calcul_nombre_parts_dot_n_nomb} - function _bR9_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_xw_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_xx_,[0],_bR9_,_bR8_)}, - _bP9_=function(param){return 1}, - _bP__= - [0,function(param){return caml_call1(n_nombre_parts_d832_25,0)}], - _bP$_=caml_call4(Runtime_ocaml_Runtime[63],_xy_,_bP__,_bP9_,_bP8_)} - catch(_bR7_) - {_bR7_ = caml_wrap_exception(_bR7_); - if(_bR7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xv_]; - throw _bR7_} - var - n_nombre_parts_d832_25$0= + (Runtime_ocaml_Runtime[28], _lp_, Runtime_ocaml_Runtime[14], _byL_); + } + catch(_bBH_){ + var _byI_ = caml_wrap_exception(_bBH_); + if(_byI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lm_], 1); + throw caml_maybe_attach_backtrace(_byI_, 0); + } + try{ + var + _byN_ = function(param){return situation_familiale_calcul_apl;}, + _byO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lr_, 1); + }, + _byP_ = caml_call4(Runtime_ocaml_Runtime[63], _ls_, [0], _byO_, _byN_), + calcul_nombre_parts_dot_situat = caml_call3 - (Runtime_ocaml_Runtime[28],_xz_,Runtime_ocaml_Runtime[15],_bP$_); - function _bQa_(allocation_mensuelle) - {try - {var - _bR3_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - allocation_mensuelle)}, - _bR4_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_xB_,1)}, - _bR5_=caml_call4(Runtime_ocaml_Runtime[63],_xC_,[0],_bR4_,_bR3_); - return _bR5_} - catch(_bR6_) - {_bR6_ = caml_wrap_exception(_bR6_); - if(_bR6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xA_]; - throw _bR6_}} + (Runtime_ocaml_Runtime[28], + _lt_, + embed_situation_familiale_calc, + _byP_); + } + catch(_bBG_){ + var _byM_ = caml_wrap_exception(_bBG_); + if(_byM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lq_], 1); + throw caml_maybe_attach_backtrace(_byM_, 0); + } + try{ + var + _byR_ = function(param){return residence;}, + _byS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lv_, 1); + }, + _byT_ = caml_call4(Runtime_ocaml_Runtime[63], _lw_, [0], _byS_, _byR_), + calcul_nombre_parts_dot_reside = + caml_call3(Runtime_ocaml_Runtime[28], _lx_, embed_collectivite, _byT_); + } + catch(_bBF_){ + var _byQ_ = caml_wrap_exception(_bBF_); + if(_byQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lu_], 1); + throw caml_maybe_attach_backtrace(_byQ_, 0); + } + function calcul_nombre_parts_dot_limita(param){ + function _bBC_(param){return 1;} + function _bBD_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _ly_, + limitation_majoration_personne$0); + } + var + _bBE_ = caml_call4(Runtime_ocaml_Runtime[63], _lz_, [0], _bBD_, _bBC_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _lA_, + Runtime_ocaml_Runtime[12], + _bBE_); + } + var + _byU_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _lB_, calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _lC_, _byU_), + calcul_nombre_parts_dot_n_nomb = result$0[1]; + try{ + var + _byW_ = + function(param){ + return condition_2_du_832_25$0 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_2668); + }, + _byX_ = + function(param){ + var + _bBA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bBB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBA_); + return caml_call2(Runtime_ocaml_Runtime[29], _lE_, _bBB_); + }, + _byY_ = caml_call4(Runtime_ocaml_Runtime[63], _lF_, [0], _byX_, _byW_); + } + catch(_bBz_){ + var _byV_ = caml_wrap_exception(_bBz_); + if(_byV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lD_], 1); + throw caml_maybe_attach_backtrace(_byV_, 0); + } + var + montant_forfaitaire_d832_27 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lG_, Runtime_ocaml_Runtime[13], _byY_); + try{ + var + _by0_ = + function(param){ + return condition_2_du_832_25$0 + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2142091) + : caml_call1(Runtime_ocaml_Runtime[31], cst_1339340); + }, + _by1_ = + function(param){ + var + _bBx_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bBy_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bBx_); + return caml_call2(Runtime_ocaml_Runtime[29], _lI_, _bBy_); + }, + _by2_ = caml_call4(Runtime_ocaml_Runtime[63], _lJ_, [0], _by1_, _by0_); + } + catch(_bBw_){ + var _byZ_ = caml_wrap_exception(_bBw_); + if(_byZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lH_], 1); + throw caml_maybe_attach_backtrace(_byZ_, 0); + } + var + coefficient_multiplicateur_d83 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lK_, Runtime_ocaml_Runtime[13], _by2_); + function _by3_(aide_finale){ + try{ var - depense_nette_minimale_d832_27= + _bBq_ = + function(param){ + var + _bBu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$86), + _bBv_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24); + return caml_call2(Runtime_ocaml_Runtime[128], _bBv_, _bBu_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_24) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$87); + }, + _bBr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lM_, 1); + }, + _bBs_ = caml_call4(Runtime_ocaml_Runtime[63], _lN_, [0], _bBr_, _bBq_); + return _bBs_; + } + catch(_bBt_){ + var _bBp_ = caml_wrap_exception(_bBt_); + if(_bBp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lL_], 1); + throw caml_maybe_attach_backtrace(_bBp_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _lO_, Runtime_ocaml_Runtime[10], _by3_); + try{ + var + _by5_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[128], + redevance, + plafond_equivalence_loyer_elig) + ? plafond_equivalence_loyer_elig + : redevance; + }, + _by6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lQ_, 1); + }, + _by7_ = caml_call4(Runtime_ocaml_Runtime[63], _lR_, [0], _by6_, _by5_); + } + catch(_bBo_){ + var _by4_ = caml_wrap_exception(_bBo_); + if(_by4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lP_], 1); + throw caml_maybe_attach_backtrace(_by4_, 0); + } + var + equivalence_loyer_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _lS_, Runtime_ocaml_Runtime[13], _by7_); + try{ + var + _by9_ = + function(param){ + function _bBm_(param){return calcul_nombre_parts_dot_n_nomb;} + function _bBn_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lU_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _lV_, [0], _bBn_, _bBm_); + }, + _by__ = function(param){return 1;}, + _by$_ = + [0, function(param){return caml_call1(n_nombre_parts_d832_25, 0);}], + _bza_ = caml_call4(Runtime_ocaml_Runtime[63], _lW_, _by$_, _by__, _by9_); + } + catch(_bBl_){ + var _by8_ = caml_wrap_exception(_bBl_); + if(_by8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lT_], 1); + throw caml_maybe_attach_backtrace(_by8_, 0); + } + var + n_nombre_parts_d832_25$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _lX_, Runtime_ocaml_Runtime[15], _bza_); + function _bzb_(allocation_mensuelle){ + try{ + var + _bBh_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + allocation_mensuelle); + }, + _bBi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _lZ_, 1); + }, + _bBj_ = caml_call4(Runtime_ocaml_Runtime[63], _l0_, [0], _bBi_, _bBh_); + return _bBj_; + } + catch(_bBk_){ + var _bBg_ = caml_wrap_exception(_bBk_); + if(_bBg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _lY_], 1); + throw caml_maybe_attach_backtrace(_bBg_, 0); + } + } + var + depense_nette_minimale_d832_27 = + caml_call3 + (Runtime_ocaml_Runtime[28], _l1_, Runtime_ocaml_Runtime[10], _bzb_); + try{ + var + _bzd_ = function(param){return date_courante;}, + _bze_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l3_, 1); + }, + _bzf_ = caml_call4(Runtime_ocaml_Runtime[63], _l4_, [0], _bze_, _bzd_), + calcul_equivalence_loyer_minim$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_xD_,Runtime_ocaml_Runtime[10],_bQa_); - try - {var - _bQb_=function(param){return date_courante}, - _bQc_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xF_,1)}, - _bQd_=caml_call4(Runtime_ocaml_Runtime[63],_xG_,[0],_bQc_,_bQb_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_xH_,Runtime_ocaml_Runtime[16],_bQd_)} - catch(_bR2_) - {_bR2_ = caml_wrap_exception(_bR2_); - if(_bR2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xE_]; - throw _bR2_} - try - {var - _bQe_=function(param){return ressources_menage_arrondies}, - _bQf_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xJ_,1)}, - _bQg_=caml_call4(Runtime_ocaml_Runtime[63],_xK_,[0],_bQf_,_bQe_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_xL_,Runtime_ocaml_Runtime[13],_bQg_)} - catch(_bR1_) - {_bR1_ = caml_wrap_exception(_bR1_); - if(_bR1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xI_]; - throw _bR1_} - try - {var - _bQh_=function(param){return condition_2_du_832_25$0}, - _bQi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xN_,1)}, - _bQj_=caml_call4(Runtime_ocaml_Runtime[63],_xO_,[0],_bQi_,_bQh_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_xP_,Runtime_ocaml_Runtime[12],_bQj_)} - catch(_bR0_) - {_bR0_ = caml_wrap_exception(_bR0_); - if(_bR0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xM_]; - throw _bR0_} - try - {var - _bQk_=function(param){return n_nombre_parts_d832_25$0}, - _bQl_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xR_,1)}, - _bQm_=caml_call4(Runtime_ocaml_Runtime[63],_xS_,[0],_bQl_,_bQk_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_xT_,Runtime_ocaml_Runtime[15],_bQm_)} - catch(_bRZ_) - {_bRZ_ = caml_wrap_exception(_bRZ_); - if(_bRZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xQ_]; - throw _bRZ_} - var - _bQn_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_xU_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_xV_,_bQn_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _bQo_= - function(param) - {var - _bRU_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_r_d832_25, - n_nombre_parts_d832_25$0), - denominateur= - caml_call2 - (Runtime_ocaml_Runtime[98],ressources_menage_arrondies,_bRU_), - _bRV_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$156), - denominateur$0= - caml_call2(Runtime_ocaml_Runtime[113],denominateur,_bRV_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$157) - :denominateur, - _bRW_= + (Runtime_ocaml_Runtime[28], _l5_, Runtime_ocaml_Runtime[16], _bzf_); + } + catch(_bBf_){ + var _bzc_ = caml_wrap_exception(_bBf_); + if(_bzc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l2_], 1); + throw caml_maybe_attach_backtrace(_bzc_, 0); + } + try{ + var + _bzh_ = function(param){return ressources_menage_arrondies;}, + _bzi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l7_, 1); + }, + _bzj_ = caml_call4(Runtime_ocaml_Runtime[63], _l8_, [0], _bzi_, _bzh_), + calcul_equivalence_loyer_minim$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _l9_, Runtime_ocaml_Runtime[13], _bzj_); + } + catch(_bBe_){ + var _bzg_ = caml_wrap_exception(_bBe_); + if(_bzg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l6_], 1); + throw caml_maybe_attach_backtrace(_bzg_, 0); + } + try{ + var + _bzl_ = function(param){return condition_2_du_832_25$0;}, + _bzm_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _l$_, 1); + }, + _bzn_ = caml_call4(Runtime_ocaml_Runtime[63], _ma_, [0], _bzm_, _bzl_), + calcul_equivalence_loyer_minim$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mb_, Runtime_ocaml_Runtime[12], _bzn_); + } + catch(_bBd_){ + var _bzk_ = caml_wrap_exception(_bBd_); + if(_bzk_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _l__], 1); + throw caml_maybe_attach_backtrace(_bzk_, 0); + } + try{ + var + _bzp_ = function(param){return n_nombre_parts_d832_25$0;}, + _bzq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _md_, 1); + }, + _bzr_ = caml_call4(Runtime_ocaml_Runtime[63], _me_, [0], _bzq_, _bzp_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mf_, Runtime_ocaml_Runtime[15], _bzr_); + } + catch(_bBc_){ + var _bzo_ = caml_wrap_exception(_bBc_); + if(_bzo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mc_], 1); + throw caml_maybe_attach_backtrace(_bzo_, 0); + } + var + _bzs_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _mg_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _mh_, _bzs_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _bzu_ = + function(param){ + var + _bA9_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_r_d832_25, + n_nombre_parts_d832_25$0), + denominateur = + caml_call2 + (Runtime_ocaml_Runtime[98], ressources_menage_arrondies, _bA9_), + _bA__ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$88), + denominateur$0 = + caml_call2(Runtime_ocaml_Runtime[113], denominateur, _bA__) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$89) + : denominateur, + _bA$_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83, + n_nombre_parts_d832_25$0), + _bBa_ = + caml_call2(Runtime_ocaml_Runtime[108], denominateur$0, _bA$_), + _bBb_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95); + return caml_call2(Runtime_ocaml_Runtime[97], _bBb_, _bBa_); + }, + _bzv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mj_, 1); + }, + _bzw_ = + [0, + function(param){ + function _bA4_(param){ + var + _bA6_ = caml_call2 (Runtime_ocaml_Runtime[104], coefficient_multiplicateur_d83, n_nombre_parts_d832_25$0), - _bRX_=caml_call2(Runtime_ocaml_Runtime[108],denominateur$0,_bRW_), - _bRY_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95); - return caml_call2(Runtime_ocaml_Runtime[97],_bRY_,_bRX_)}, - _bQp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_xX_,1)}, - _bQq_= - [0, - function(param) - {function _bRP_(param) - {var - _bRR_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83, - n_nombre_parts_d832_25$0), - _bRS_= - caml_call2 - (Runtime_ocaml_Runtime[108], - ressources_menage_arrondies, - _bRR_), - _bRT_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$0); - return caml_call2(Runtime_ocaml_Runtime[97],_bRT_,_bRS_)} - function _bRQ_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_xY_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_xZ_,[0],_bRQ_,_bRP_)}], - _bQr_=caml_call4(Runtime_ocaml_Runtime[63],_x0_,_bQq_,_bQp_,_bQo_)} - catch(_bRO_) - {_bRO_ = caml_wrap_exception(_bRO_); - if(_bRO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_xW_]; - throw _bRO_} + _bA7_ = + caml_call2 + (Runtime_ocaml_Runtime[108], + ressources_menage_arrondies, + _bA6_), + _bA8_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$0); + return caml_call2(Runtime_ocaml_Runtime[97], _bA8_, _bA7_); + } + function _bA5_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mk_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ml_, [0], _bA5_, _bA4_); + }], + _bzx_ = caml_call4(Runtime_ocaml_Runtime[63], _mm_, _bzw_, _bzv_, _bzu_); + } + catch(_bA3_){ + var _bzt_ = caml_wrap_exception(_bA3_); + if(_bzt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mi_], 1); + throw caml_maybe_attach_backtrace(_bzt_, 0); + } + var + coefficient_prise_en_charge_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mn_, Runtime_ocaml_Runtime[15], _bzx_); + function _bzy_(allocation_mensuelle){ + try{ var - coefficient_prise_en_charge_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_x1_,Runtime_ocaml_Runtime[15],_bQr_); - function _bQs_(allocation_mensuelle) - {try - {var - _bRH_= - function(param) - {var - _bRL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _x3_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bRM_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _x4_, - depense_nette_minimale_d832_27), - _bRL_), - _bRN_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _x5_, - Runtime_ocaml_Runtime[13], - _bRM_), - depense_nette_minimale= - caml_call2(Runtime_ocaml_Runtime[27],_x6_,_bRN_); - return caml_call2 - (Runtime_ocaml_Runtime[118], - depense_nette_minimale, - montant_forfaitaire_d832_27) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - montant_forfaitaire_d832_27, - depense_nette_minimale) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$158)}, - _bRI_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_x7_,1)}, - _bRJ_=caml_call4(Runtime_ocaml_Runtime[63],_x8_,[0],_bRI_,_bRH_); - return _bRJ_} - catch(_bRK_) - {_bRK_ = caml_wrap_exception(_bRK_); - if(_bRK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_x2_]; - throw _bRK_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_x9_,Runtime_ocaml_Runtime[10],_bQs_); - try - {var - _bQt_=function(param){return calcul_equivalence_loyer_minim$4}, - _bQu_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_x$_,1)}, - _bQv_=caml_call4(Runtime_ocaml_Runtime[63],_ya_,[0],_bQu_,_bQt_)} - catch(_bRG_) - {_bRG_ = caml_wrap_exception(_bRG_); - if(_bRG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_x__]; - throw _bRG_} - var - equivalence_loyer_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_yb_,Runtime_ocaml_Runtime[13],_bQv_); - try - {var - _bQw_= - function(param) - {var - _bRA_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$6), - _bRB_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$7), - _bRC_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$0), - _bRD_= + _bAW_ = + function(param){ + var + _bA0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mp_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _bA1_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mq_, + depense_nette_minimale_d832_27), + _bA0_), + _bA2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mr_, + Runtime_ocaml_Runtime[13], + _bA1_), + depense_nette_minimale = + caml_call2(Runtime_ocaml_Runtime[27], _ms_, _bA2_); + return caml_call2 + (Runtime_ocaml_Runtime[118], + depense_nette_minimale, + montant_forfaitaire_d832_27) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + montant_forfaitaire_d832_27, + depense_nette_minimale) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$90); + }, + _bAX_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mt_, 1); + }, + _bAY_ = caml_call4(Runtime_ocaml_Runtime[63], _mu_, [0], _bAX_, _bAW_); + return _bAY_; + } + catch(_bAZ_){ + var _bAV_ = caml_wrap_exception(_bAZ_); + if(_bAV_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mo_], 1); + throw caml_maybe_attach_backtrace(_bAV_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _mv_, Runtime_ocaml_Runtime[10], _bzy_); + try{ + var + _bzA_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _bzB_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mx_, 1); + }, + _bzC_ = caml_call4(Runtime_ocaml_Runtime[63], _my_, [0], _bzB_, _bzA_); + } + catch(_bAU_){ + var _bzz_ = caml_wrap_exception(_bAU_); + if(_bzz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mw_], 1); + throw caml_maybe_attach_backtrace(_bzz_, 0); + } + var + equivalence_loyer_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _mz_, Runtime_ocaml_Runtime[13], _bzC_); + try{ + var + _bzE_ = + function(param){ + var + _bAO_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$6), + _bAP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$7), + _bAQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$0), + _bAR_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _bAQ_), + _bAS_ = caml_call2(Runtime_ocaml_Runtime[103], _bAR_, _bAP_), + _bAT_ = caml_call1(Runtime_ocaml_Runtime[78], _bAS_); + return caml_call2(Runtime_ocaml_Runtime[107], _bAT_, _bAO_); + }, + _bzF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mB_, 1); + }, + _bzG_ = + [0, + function(param){ + function _bAG_(param){ + var + _bAI_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$8), + _bAJ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$9), + _bAK_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$1), + _bAL_ = caml_call2 (Runtime_ocaml_Runtime[97], coefficient_prise_en_charge_d8, - _bRC_), - _bRE_=caml_call2(Runtime_ocaml_Runtime[103],_bRD_,_bRB_), - _bRF_=caml_call1(Runtime_ocaml_Runtime[78],_bRE_); - return caml_call2(Runtime_ocaml_Runtime[107],_bRF_,_bRA_)}, - _bQx_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yd_,1)}, - _bQy_= - [0, - function(param) - {function _bRs_(param) - {var - _bRu_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$8), - _bRv_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$9), - _bRw_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$1), - _bRx_= - caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _bRw_), - _bRy_=caml_call2(Runtime_ocaml_Runtime[103],_bRx_,_bRv_), - _bRz_=caml_call1(Runtime_ocaml_Runtime[78],_bRy_); - return caml_call2(Runtime_ocaml_Runtime[107],_bRz_,_bRu_)} - function _bRt_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_ye_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_yf_,[0],_bRt_,_bRs_)}], - _bQz_=caml_call4(Runtime_ocaml_Runtime[63],_yg_,_bQy_,_bQx_,_bQw_)} - catch(_bRr_) - {_bRr_ = caml_wrap_exception(_bRr_); - if(_bRr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yc_]; - throw _bRr_} + _bAK_), + _bAM_ = caml_call2(Runtime_ocaml_Runtime[103], _bAL_, _bAJ_), + _bAN_ = caml_call1(Runtime_ocaml_Runtime[78], _bAM_); + return caml_call2(Runtime_ocaml_Runtime[107], _bAN_, _bAI_); + } + function _bAH_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mC_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _mD_, [0], _bAH_, _bAG_); + }], + _bzH_ = caml_call4(Runtime_ocaml_Runtime[63], _mE_, _bzG_, _bzF_, _bzE_); + } + catch(_bAF_){ + var _bzD_ = caml_wrap_exception(_bAF_); + if(_bzD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mA_], 1); + throw caml_maybe_attach_backtrace(_bzD_, 0); + } + var + coefficient_prise_en_charge_d8$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mF_, Runtime_ocaml_Runtime[15], _bzH_); + function _bzI_(aide_finale){ + try{ var - coefficient_prise_en_charge_d8$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_yh_,Runtime_ocaml_Runtime[15],_bQz_); - function _bQA_(aide_finale) - {try - {var - _bRf_= - function(param) - {var - _bRj_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yj_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bRk_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yk_, - traitement_aide_finale_minorat), - _bRj_), - _bRl_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yl_, - Runtime_ocaml_Runtime[13], - _bRk_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_ym_,_bRl_), - _bRm_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yn_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bRn_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yo_, - abattement_depense_nette_minim), - _bRm_), - _bRo_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yp_, - Runtime_ocaml_Runtime[13], - _bRn_), - _bRp_=caml_call2(Runtime_ocaml_Runtime[27],_yq_,_bRo_), - aide_finale$1= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bRp_), - _bRq_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$159); - return caml_call2 - (Runtime_ocaml_Runtime[128],aide_finale$1,_bRq_) - ?aide_finale$1 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$160)}, - _bRg_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_yr_,1)}, - _bRh_=caml_call4(Runtime_ocaml_Runtime[63],_ys_,[0],_bRg_,_bRf_); - return _bRh_} - catch(_bRi_) - {_bRi_ = caml_wrap_exception(_bRi_); - if(_bRi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yi_]; - throw _bRi_}} + _bAt_ = + function(param){ + var + _bAx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mH_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bAy_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mI_, + traitement_aide_finale_minorat), + _bAx_), + _bAz_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mJ_, + Runtime_ocaml_Runtime[13], + _bAy_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _mK_, _bAz_), + _bAA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mL_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bAB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _mM_, + abattement_depense_nette_minim), + _bAA_), + _bAC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mN_, + Runtime_ocaml_Runtime[13], + _bAB_), + _bAD_ = caml_call2(Runtime_ocaml_Runtime[27], _mO_, _bAC_), + aide_finale$1 = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _bAD_), + _bAE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$91); + return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _bAE_) + ? aide_finale$1 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$92); + }, + _bAu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mP_, 1); + }, + _bAv_ = caml_call4(Runtime_ocaml_Runtime[63], _mQ_, [0], _bAu_, _bAt_); + return _bAv_; + } + catch(_bAw_){ + var _bAs_ = caml_wrap_exception(_bAw_); + if(_bAs_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mG_], 1); + throw caml_maybe_attach_backtrace(_bAs_, 0); + } + } + var + traitement_aide_finale_abattem = + caml_call3 + (Runtime_ocaml_Runtime[28], _mR_, Runtime_ocaml_Runtime[10], _bzI_); + try{ + var + _bzK_ = + function(param){ + var _bAr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$0); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bAr_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$1) + : coefficient_prise_en_charge_d8$0; + }, + _bzL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _mT_, 1); + }, + _bzM_ = + [0, + function(param){ + function _bAo_(param){ + var _bAq_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$1); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _bAq_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_9$2) + : coefficient_prise_en_charge_d8$0; + } + function _bAp_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _mU_, condition_2_du_832_25$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _mV_, [0], _bAp_, _bAo_); + }], + _bzN_ = caml_call4(Runtime_ocaml_Runtime[63], _mW_, _bzM_, _bzL_, _bzK_); + } + catch(_bAn_){ + var _bzJ_ = caml_wrap_exception(_bAn_); + if(_bzJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mS_], 1); + throw caml_maybe_attach_backtrace(_bzJ_, 0); + } + var + coefficient_prise_en_charge_d8$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _mX_, Runtime_ocaml_Runtime[15], _bzN_); + function _bzO_(aide_finale){ + try{ var - traitement_aide_finale_abattem= - caml_call3 - (Runtime_ocaml_Runtime[28],_yt_,Runtime_ocaml_Runtime[10],_bQA_); - try - {var - _bQB_= - function(param) - {var _bRe_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$0); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bRe_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$1) - :coefficient_prise_en_charge_d8$0}, - _bQC_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yv_,1)}, - _bQD_= - [0, - function(param) - {function _bRb_(param) - {var _bRd_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$1); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _bRd_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_9$2) - :coefficient_prise_en_charge_d8$0} - function _bRc_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_yw_,condition_2_du_832_25$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_yx_,[0],_bRc_,_bRb_)}], - _bQE_=caml_call4(Runtime_ocaml_Runtime[63],_yy_,_bQD_,_bQC_,_bQB_)} - catch(_bRa_) - {_bRa_ = caml_wrap_exception(_bRa_); - if(_bRa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yu_]; - throw _bRa_} - var - coefficient_prise_en_charge_d8$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_yz_,Runtime_ocaml_Runtime[15],_bQE_); - function _bQF_(aide_finale) - {try - {var - _bQX_= - function(param) - {var - _bQ1_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yB_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bQ2_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yC_, - traitement_aide_finale_abattem), - _bQ1_), - _bQ3_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yD_, - Runtime_ocaml_Runtime[13], - _bQ2_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_yE_,_bQ3_), - _bQ4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yF_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bQ5_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yG_, - contributions_sociales_dot_mon), - _bQ4_), - _bQ6_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yH_, - Runtime_ocaml_Runtime[13], - _bQ5_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_yI_,_bQ6_), - _bQ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$0), - _bQ8_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _bQ9_=caml_call2(Runtime_ocaml_Runtime[98],_bQ8_,_bQ7_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_bQ9_), - _bQ__=caml_call1(Runtime_ocaml_Runtime[31],cst_0$161), - _bQ$_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_bQ$_,_bQ__) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$162)}, - _bQY_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_yJ_,1)}, - _bQZ_=caml_call4(Runtime_ocaml_Runtime[63],_yK_,[0],_bQY_,_bQX_); - return _bQZ_} - catch(_bQ0_) - {_bQ0_ = caml_wrap_exception(_bQ0_); - if(_bQ0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yA_]; - throw _bQ0_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_yL_,Runtime_ocaml_Runtime[10],_bQF_); - try - {var - _bQG_= - function(param) - {var - _bQV_= - caml_call2 - (Runtime_ocaml_Runtime[98], - equivalence_loyer_eligible, - equivalence_loyer_minimale), - aide_finale= - caml_call2 - (Runtime_ocaml_Runtime[104], - _bQV_, - coefficient_prise_en_charge_d8$1), - _bQW_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$163); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_bQW_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$164) - :aide_finale}, - _bQH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_yN_,1)}, - _bQI_=caml_call4(Runtime_ocaml_Runtime[63],_yO_,[0],_bQH_,_bQG_)} - catch(_bQU_) - {_bQU_ = caml_wrap_exception(_bQU_); - if(_bQU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yM_]; - throw _bQU_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_yP_,Runtime_ocaml_Runtime[13],_bQI_); - function _bQJ_(aide_finale) - {try - {var - _bQN_= - function(param) - {var - _bQR_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yR_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bQS_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _yS_, - traitement_aide_finale_contrib), - _bQR_), - _bQT_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _yT_, - Runtime_ocaml_Runtime[13], - _bQS_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_yU_,_bQT_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d823_24) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$165) - :aide_finale$0}, - _bQO_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_yV_,1)}, - _bQP_=caml_call4(Runtime_ocaml_Runtime[63],_yW_,[0],_bQO_,_bQN_); - return _bQP_} - catch(_bQQ_) - {_bQQ_ = caml_wrap_exception(_bQQ_); - if(_bQQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yQ_]; - throw _bQQ_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_yX_,Runtime_ocaml_Runtime[10],_bQJ_); - try - {var - _bQK_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bQL_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bQK_)} - catch(_bQM_) - {_bQM_ = caml_wrap_exception(_bQM_); - if(_bQM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_yY_]; - throw _bQM_} - if(_bQL_) - return [0, - coefficient_multiplicateur_d83, - coefficient_r_d832_25, - n_nombre_parts_d832_25$0, - equivalence_loyer_eligible, - plafond_equivalence_loyer_elig, - equivalence_loyer_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_yZ_]} - function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge) - {var - mensualite_principale=calcul_aide_personnalisee_loge[1], - ressources_menage_arrondies=calcul_aide_personnalisee_loge[2], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge[3], - situation_familiale_calcul_apl=calcul_aide_personnalisee_loge[4], - type_travaux_logement=calcul_aide_personnalisee_loge[5], - date_signature_pret=calcul_aide_personnalisee_loge[6], - local_habite_premiere_fois_ben=calcul_aide_personnalisee_loge[7], - date_entree_logement=calcul_aide_personnalisee_loge[8], - copropriete=calcul_aide_personnalisee_loge[9], - situation_r822_11_13_17=calcul_aide_personnalisee_loge[10], - zone=calcul_aide_personnalisee_loge[11], - type_pret=calcul_aide_personnalisee_loge[12], - anciennete_logement=calcul_aide_personnalisee_loge[13], - date_courante=calcul_aide_personnalisee_loge[14]; - try - {var - _bjU_= - function(param) - {var - _bPi_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957), - _bPj_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$80); - return caml_call2(Runtime_ocaml_Runtime[107],_bPj_,_bPi_)}, - _bjV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y1_,1)}, - _bjW_=caml_call4(Runtime_ocaml_Runtime[63],_y2_,[0],_bjV_,_bjU_)} - catch(_bPh_) - {_bPh_ = caml_wrap_exception(_bPh_); - if(_bPh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_y0_]; - throw _bPh_} - var - taux_francs_vers_euros= - caml_call3 - (Runtime_ocaml_Runtime[28],_y3_,Runtime_ocaml_Runtime[15],_bjW_); - try - {var - _bjX_=function(param){return nombre_personnes_a_charge}, - _bjY_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y5_,1)}, - _bjZ_=caml_call4(Runtime_ocaml_Runtime[63],_y6_,[0],_bjY_,_bjX_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_y7_,Runtime_ocaml_Runtime[14],_bjZ_)} - catch(_bPg_) - {_bPg_ = caml_wrap_exception(_bPg_); - if(_bPg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_y4_]; - throw _bPg_} - try - {var - _bj0_=function(param){return situation_familiale_calcul_apl}, - _bj1_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_y9_,1)}, - _bj2_=caml_call4(Runtime_ocaml_Runtime[63],_y__,[0],_bj1_,_bj0_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _y$_, - embed_situation_familiale_calc, - _bj2_)} - catch(_bPf_) - {_bPf_ = caml_wrap_exception(_bPf_); - if(_bPf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_y8_]; - throw _bPf_} - var - _bj3_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_za_,calcul_nombre_parts_accession_), - [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_zb_,_bj3_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _bj4_=function(param){return date_courante}, - _bj5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_zd_,1)}, - _bj6_=caml_call4(Runtime_ocaml_Runtime[63],_ze_,[0],_bj5_,_bj4_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_zf_,Runtime_ocaml_Runtime[16],_bj6_)} - catch(_bPe_) - {_bPe_ = caml_wrap_exception(_bPe_); - if(_bPe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zc_]; - throw _bPe_} - var - _bj7_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_zg_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_zh_,_bj7_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _bj8_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_416)}, - _bj9_= - function(param) - {var - _bPc_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bPd_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bPc_); - return caml_call2(Runtime_ocaml_Runtime[29],_zj_,_bPd_)}, - _bj__=caml_call4(Runtime_ocaml_Runtime[63],_zk_,[0],_bj9_,_bj8_)} - catch(_bPb_) - {_bPb_ = caml_wrap_exception(_bPb_); - if(_bPb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zi_]; - throw _bPb_} - var - taux_tranche_superieure_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_zl_,Runtime_ocaml_Runtime[15],_bj__); - try - {var - _bj$_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_208$0)}, - _bka_= - function(param) - {var - _bO$_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bPa_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO$_); - return caml_call2(Runtime_ocaml_Runtime[29],_zn_,_bPa_)}, - _bkb_=caml_call4(Runtime_ocaml_Runtime[63],_zo_,[0],_bka_,_bj$_)} - catch(_bO__) - {_bO__ = caml_wrap_exception(_bO__); - if(_bO__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zm_]; - throw _bO__} - var - taux_tranche_inferieure_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_zp_,Runtime_ocaml_Runtime[15],_bkb_); - try - {var - _bkc_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_560085)}, - _bkd_= - function(param) - {var - _bO8_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bO9_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO8_); - return caml_call2(Runtime_ocaml_Runtime[29],_zr_,_bO9_)}, - _bke_=caml_call4(Runtime_ocaml_Runtime[63],_zs_,[0],_bkd_,_bkc_)} - catch(_bO7_) - {_bO7_ = caml_wrap_exception(_bO7_); - if(_bO7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zq_]; - throw _bO7_} - var - montant_limite_tranches_d832_1= - caml_call3 - (Runtime_ocaml_Runtime[28],_zt_,Runtime_ocaml_Runtime[13],_bke_); - try - {var - _bkf_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25)}, - _bkg_= - function(param) - {var - _bO5_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bO6_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO5_); - return caml_call2(Runtime_ocaml_Runtime[29],_zv_,_bO6_)}, - _bkh_=caml_call4(Runtime_ocaml_Runtime[63],_zw_,[0],_bkg_,_bkf_)} - catch(_bO4_) - {_bO4_ = caml_wrap_exception(_bO4_); - if(_bO4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zu_]; - throw _bO4_} - var - coefficient_multiplicateur_d83= - caml_call3 - (Runtime_ocaml_Runtime[28],_zx_,Runtime_ocaml_Runtime[15],_bkh_); - try - {var - _bki_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_2211133)}, - _bkj_= - function(param) - {var - _bO2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bO3_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bO2_); - return caml_call2(Runtime_ocaml_Runtime[29],_zz_,_bO3_)}, - _bkk_=caml_call4(Runtime_ocaml_Runtime[63],_zA_,[0],_bkj_,_bki_)} - catch(_bO1_) - {_bO1_ = caml_wrap_exception(_bO1_); - if(_bO1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zy_]; - throw _bO1_} - var - coefficient_multiplicateur_d83$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_zB_,Runtime_ocaml_Runtime[13],_bkk_); - try - {var - _bkl_= - function(param) - {if(0 === anciennete_logement[0]) - {var _bOZ_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); - return caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bOZ_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234)} - var ameliore_par_occupant=anciennete_logement[1]; - if(0 === ameliore_par_occupant[0]) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0172); - var _bO0_=caml_call3(Runtime_ocaml_Runtime[57],1998,10,1); - return caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bO0_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_0226$0) - :caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$0)}, - _bkm_= - function(param) - {var - _bOX_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bOY_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOX_); - return caml_call2(Runtime_ocaml_Runtime[29],_zD_,_bOY_)}, - _bkn_=caml_call4(Runtime_ocaml_Runtime[63],_zE_,[0],_bkm_,_bkl_)} - catch(_bOW_) - {_bOW_ = caml_wrap_exception(_bOW_); - if(_bOW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zC_]; - throw _bOW_} - var - coefficient_multiplicateur_d83$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_zF_,Runtime_ocaml_Runtime[15],_bkn_); - try - {var - _bko_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$2)}, - _bkp_= - function(param) - {var - _bOU_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bOV_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOU_); - return caml_call2(Runtime_ocaml_Runtime[29],_zH_,_bOV_)}, - _bkq_=caml_call4(Runtime_ocaml_Runtime[63],_zI_,[0],_bkp_,_bko_)} - catch(_bOT_) - {_bOT_ = caml_wrap_exception(_bOT_); - if(_bOT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zG_]; - throw _bOT_} - var - montant_minimal_aide_d832_10= - caml_call3 - (Runtime_ocaml_Runtime[28],_zJ_,Runtime_ocaml_Runtime[13],_bkq_); - try - {var - _bkr_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$1)}, - _bks_= - function(param) - {var - _bOR_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bOS_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOR_); - return caml_call2(Runtime_ocaml_Runtime[29],_zL_,_bOS_)}, - _bkt_=caml_call4(Runtime_ocaml_Runtime[63],_zM_,[0],_bks_,_bkr_)} - catch(_bOQ_) - {_bOQ_ = caml_wrap_exception(_bOQ_); - if(_bOQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zK_]; - throw _bOQ_} - var - montant_forfaitaire_d832_10= - caml_call3 - (Runtime_ocaml_Runtime[28],_zN_,Runtime_ocaml_Runtime[13],_bkt_); - try - {var - _bku_= - function(param) - {function _bOh_(param){throw Runtime_ocaml_Runtime[2]} - function _bOi_(param){return 0} - function _bOj_(param) - {function _bOF_(param) - {var - _bOM_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bON_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$1), - _bOO_=caml_call2(Runtime_ocaml_Runtime[104],_bON_,_bOM_), - _bOP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bOP_,_bOO_)} - function _bOG_(param) - {var - _bOH_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bOI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOH_), - _bOJ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bOK_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bOJ_), - _bOL_=caml_call2(Runtime_ocaml_Runtime[83],_bOK_,_bOI_); - return caml_call2(Runtime_ocaml_Runtime[29],_zP_,_bOL_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zQ_,[0],_bOG_,_bOF_)} - function _bOk_(param) - {function _bOu_(param) - {var - _bOB_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bOC_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$1), - _bOD_=caml_call2(Runtime_ocaml_Runtime[104],_bOC_,_bOB_), - _bOE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bOE_,_bOD_)} - function _bOv_(param) - {var - _bOw_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bOx_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bOw_), - _bOy_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bOz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOy_), - _bOA_=caml_call2(Runtime_ocaml_Runtime[83],_bOz_,_bOx_); - return caml_call2(Runtime_ocaml_Runtime[29],_zR_,_bOA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zS_,[0],_bOv_,_bOu_)} - var - _bOl_= - [0, - function(param) - {function _bOm_(param) - {var - _bOq_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bOr_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$1), - _bOs_=caml_call2(Runtime_ocaml_Runtime[104],_bOr_,_bOq_), - _bOt_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$1); - return caml_call2(Runtime_ocaml_Runtime[93],_bOt_,_bOs_)} - function _bOn_(param) - {var - _bOo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bOp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bOo_); - return caml_call2(Runtime_ocaml_Runtime[29],_zT_,_bOp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zU_,[0],_bOn_,_bOm_)}, - _bOk_, - _bOj_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_zV_,_bOl_,_bOi_,_bOh_)}, - _bkv_=function(param){return 1}, - _bkw_= - [0, - function(param) - {function _bNH_(param){throw Runtime_ocaml_Runtime[2]} - function _bNI_(param){return 0} - function _bNJ_(param) - {function _bN7_(param) - {var - _bOd_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bOe_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$2), - _bOf_=caml_call2(Runtime_ocaml_Runtime[104],_bOe_,_bOd_), - _bOg_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bOg_,_bOf_)} - function _bN8_(param) - {var - _bN9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bN__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bN9_), - _bN$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bOa_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bN$_), - _bOb_=caml_call2(Runtime_ocaml_Runtime[83],_bOa_,_bN__), - _bOc_= - caml_call2(Runtime_ocaml_Runtime[83],_bOb_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_zW_,_bOc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zX_,[0],_bN8_,_bN7_)} - function _bNK_(param) - {function _bNV_(param) - {var - _bN3_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bN4_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$2), - _bN5_=caml_call2(Runtime_ocaml_Runtime[104],_bN4_,_bN3_), - _bN6_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bN6_,_bN5_)} - function _bNW_(param) - {var - _bNX_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bNY_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bNX_), - _bNZ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bN0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNZ_), - _bN1_=caml_call2(Runtime_ocaml_Runtime[83],_bN0_,_bNY_), - _bN2_= - caml_call2(Runtime_ocaml_Runtime[83],_bN1_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_zY_,_bN2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_zZ_,[0],_bNW_,_bNV_)} - var - _bNL_= - [0, - function(param) - {function _bNM_(param) - {var - _bNR_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bNS_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$2), - _bNT_=caml_call2(Runtime_ocaml_Runtime[104],_bNS_,_bNR_), - _bNU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$2); - return caml_call2(Runtime_ocaml_Runtime[93],_bNU_,_bNT_)} - function _bNN_(param) - {var - _bNO_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bNP_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNO_), - _bNQ_= - caml_call2(Runtime_ocaml_Runtime[83],_bNP_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_z0_,_bNQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_z1_,[0],_bNN_,_bNM_)}, - _bNK_, - _bNJ_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_z2_,_bNL_,_bNI_,_bNH_)}], - _bkx_=caml_call4(Runtime_ocaml_Runtime[63],_z3_,_bkw_,_bkv_,_bku_)} - catch(_bNG_) - {_bNG_ = caml_wrap_exception(_bNG_); - if(_bNG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_zO_]; - throw _bNG_} - var - montant_forfaitaire_charges_d8= - caml_call3 - (Runtime_ocaml_Runtime[28],_z4_,Runtime_ocaml_Runtime[13],_bkx_); - function _bky_(date_signature_pret) - {try - {var - _bnF_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bnG_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_z6_,0)}, - _bnH_= - function(param) - {function _bLq_(param){throw Runtime_ocaml_Runtime[2]} - function _bLr_(param){return 0} - function _bLs_(param) - {function _bM$_(param) - {switch(zone[0]) - {case 0: - var _bNk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$166); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNk_)) - var - _bNl_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_148100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_178700); - else - var - _bNm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$81), - _bNn_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNm_), - _bNo_=caml_call1(Runtime_ocaml_Runtime[69],_bNn_), - _bNp_=caml_call1(Runtime_ocaml_Runtime[31],cst_30600), - _bNq_=caml_call2(Runtime_ocaml_Runtime[104],_bNp_,_bNo_), - _bNr_=caml_call1(Runtime_ocaml_Runtime[31],cst_209300), - _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNr_,_bNq_); - break; - case 1: - var _bNs_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$167); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNs_)) - var - _bNl_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_158900); - else - var - _bNt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$82), - _bNu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNt_), - _bNv_=caml_call1(Runtime_ocaml_Runtime[69],_bNu_), - _bNw_=caml_call1(Runtime_ocaml_Runtime[31],cst_26900), - _bNx_=caml_call2(Runtime_ocaml_Runtime[104],_bNw_,_bNv_), - _bNy_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800), - _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNy_,_bNx_); - break; - default: - var _bNz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$168); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bNz_)) - var - _bNl_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_123300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_147900); - else - var - _bNA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$83), - _bNB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bNA_), - _bNC_=caml_call1(Runtime_ocaml_Runtime[69],_bNB_), - _bND_=caml_call1(Runtime_ocaml_Runtime[31],cst_24600), - _bNE_=caml_call2(Runtime_ocaml_Runtime[104],_bND_,_bNC_), - _bNF_=caml_call1(Runtime_ocaml_Runtime[31],cst_172500), - _bNl_=caml_call2(Runtime_ocaml_Runtime[93],_bNF_,_bNE_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bNl_,taux_francs_vers_euros)} - function _bNa_(param) - {switch(type_pret[0]) - {case 0:var _bNb_=1;break; - case 1:var _bNb_=0;break; - case 2:var _bNb_=0;break; - case 3:var _bNb_=0;break; - default:var _bNb_=0} - var - _bNc_=0 === anciennete_logement[0]?0:1, - _bNd_=caml_call2(Runtime_ocaml_Runtime[83],_bNc_,_bNb_), - _bNe_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bNf_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bNe_), - _bNg_=caml_call2(Runtime_ocaml_Runtime[83],_bNf_,_bNd_), - _bNh_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bNi_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bNh_), - _bNj_=caml_call2(Runtime_ocaml_Runtime[83],_bNi_,_bNg_); - return caml_call2(Runtime_ocaml_Runtime[29],_z7_,_bNj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_z8_,[0],_bNa_,_bM$_)} - function _bLt_(param) - {function _bME_(param) - {switch(zone[0]) - {case 0: - var _bMP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$169); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMP_)) - var - _bMQ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_184000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_220000); - else - var - _bMR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$84), - _bMS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMR_), - _bMT_=caml_call1(Runtime_ocaml_Runtime[69],_bMS_), - _bMU_=caml_call1(Runtime_ocaml_Runtime[31],cst_38000), - _bMV_=caml_call2(Runtime_ocaml_Runtime[104],_bMU_,_bMT_), - _bMW_=caml_call1(Runtime_ocaml_Runtime[31],cst_260000), - _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bMW_,_bMV_); - break; - case 1: - var _bMX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$170); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMX_)) - var - _bMQ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_164200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_197700); - else - var - _bMY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$85), - _bMZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMY_), - _bM0_=caml_call1(Runtime_ocaml_Runtime[69],_bMZ_), - _bM1_=caml_call1(Runtime_ocaml_Runtime[31],cst_33500), - _bM2_=caml_call2(Runtime_ocaml_Runtime[104],_bM1_,_bM0_), - _bM3_=caml_call1(Runtime_ocaml_Runtime[31],cst_231200), - _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bM3_,_bM2_); - break; - default: - var _bM4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$171); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bM4_)) - var - _bMQ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_153200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_183700); - else - var - _bM5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$86), - _bM6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bM5_), - _bM7_=caml_call1(Runtime_ocaml_Runtime[69],_bM6_), - _bM8_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$0), - _bM9_=caml_call2(Runtime_ocaml_Runtime[104],_bM8_,_bM7_), - _bM__=caml_call1(Runtime_ocaml_Runtime[31],cst_214200), - _bMQ_=caml_call2(Runtime_ocaml_Runtime[93],_bM__,_bM9_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bMQ_,taux_francs_vers_euros)} - function _bMF_(param) - {switch(type_pret[0]) - {case 0:var _bMG_=1;break; - case 1:var _bMG_=0;break; - case 2:var _bMG_=0;break; - case 3:var _bMG_=0;break; - default:var _bMG_=0} - var - _bMH_=0 === anciennete_logement[0]?1:0, - _bMI_=caml_call2(Runtime_ocaml_Runtime[83],_bMH_,_bMG_), - _bMJ_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bMK_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bMJ_), - _bML_=caml_call2(Runtime_ocaml_Runtime[83],_bMK_,_bMI_), - _bMM_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bMN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bMM_), - _bMO_=caml_call2(Runtime_ocaml_Runtime[83],_bMN_,_bML_); - return caml_call2(Runtime_ocaml_Runtime[29],_z9_,_bMO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_z__,[0],_bMF_,_bME_)} - function _bLu_(param) - {function _bL6_(param) - {switch(zone[0]) - {case 0: - var _bMi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$172); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMi_)) - var - _bMj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202500); - else - var - _bMk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$87), - _bMl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMk_), - _bMm_=caml_call1(Runtime_ocaml_Runtime[69],_bMl_), - _bMn_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700), - _bMo_=caml_call2(Runtime_ocaml_Runtime[104],_bMn_,_bMm_), - _bMp_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200), - _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMp_,_bMo_); - break; - case 1: - var _bMq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$173); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMq_)) - var - _bMj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100); - else - var - _bMr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$88), - _bMs_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMr_), - _bMt_=caml_call1(Runtime_ocaml_Runtime[69],_bMs_), - _bMu_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$1), - _bMv_=caml_call2(Runtime_ocaml_Runtime[104],_bMu_,_bMt_), - _bMw_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600), - _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMw_,_bMv_); - break; - default: - var _bMx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$174); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bMx_)) - var - _bMj_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167600); - else - var - _bMy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$89), - _bMz_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bMy_), - _bMA_=caml_call1(Runtime_ocaml_Runtime[69],_bMz_), - _bMB_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900), - _bMC_=caml_call2(Runtime_ocaml_Runtime[104],_bMB_,_bMA_), - _bMD_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500), - _bMj_=caml_call2(Runtime_ocaml_Runtime[93],_bMD_,_bMC_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bMj_,taux_francs_vers_euros)} - function _bL7_(param) - {switch(type_pret[0]) - {case 0:var _bL8_=1;break; - case 1:var _bL8_=0;break; - case 2:var _bL8_=0;break; - case 3:var _bL8_=0;break; - default:var _bL8_=0} - var - _bL9_=0 === anciennete_logement[0]?0:1, - _bL__=caml_call2(Runtime_ocaml_Runtime[83],_bL9_,_bL8_), - _bL$_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bMa_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bL$_), - _bMb_=caml_call2(Runtime_ocaml_Runtime[83],_bMa_,_bL__), - _bMc_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bMd_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bMc_), - _bMe_=caml_call2(Runtime_ocaml_Runtime[83],_bMd_,_bMb_), - _bMf_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bMg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bMf_), - _bMh_=caml_call2(Runtime_ocaml_Runtime[83],_bMg_,_bMe_); - return caml_call2(Runtime_ocaml_Runtime[29],_z$_,_bMh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Aa_,[0],_bL7_,_bL6_)} - var - _bLv_= - [0, - function(param) - {function _bLw_(param) - {switch(zone[0]) - {case 0: - var _bLK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$175); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLK_)) - var - _bLL_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_251500); - else - var - _bLM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$90), - _bLN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLM_), - _bLO_=caml_call1(Runtime_ocaml_Runtime[69],_bLN_), - _bLP_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000), - _bLQ_=caml_call2(Runtime_ocaml_Runtime[104],_bLP_,_bLO_), - _bLR_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500), - _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bLR_,_bLQ_); - break; - case 1: - var _bLS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$176); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLS_)) - var - _bLL_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_223900); - else - var - _bLT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$91), - _bLU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLT_), - _bLV_=caml_call1(Runtime_ocaml_Runtime[69],_bLU_), - _bLW_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900), - _bLX_=caml_call2(Runtime_ocaml_Runtime[104],_bLW_,_bLV_), - _bLY_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800), - _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bLY_,_bLX_); - break; - default: - var _bLZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$177); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLZ_)) - var - _bLL_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_208200); - else - var - _bL0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$92), - _bL1_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bL0_), - _bL2_=caml_call1(Runtime_ocaml_Runtime[69],_bL1_), - _bL3_=caml_call1(Runtime_ocaml_Runtime[31],cst_35600), - _bL4_=caml_call2(Runtime_ocaml_Runtime[104],_bL3_,_bL2_), - _bL5_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800), - _bLL_=caml_call2(Runtime_ocaml_Runtime[93],_bL5_,_bL4_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bLL_,taux_francs_vers_euros)} - function _bLx_(param) - {switch(type_pret[0]) - {case 0:var _bLy_=1;break; - case 1:var _bLy_=0;break; - case 2:var _bLy_=0;break; - case 3:var _bLy_=0;break; - default:var _bLy_=0} - var - _bLz_=0 === anciennete_logement[0]?1:0, - _bLA_=caml_call2(Runtime_ocaml_Runtime[83],_bLz_,_bLy_), - _bLB_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bLC_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bLB_), - _bLD_=caml_call2(Runtime_ocaml_Runtime[83],_bLC_,_bLA_), - _bLE_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bLF_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bLE_), - _bLG_=caml_call2(Runtime_ocaml_Runtime[83],_bLF_,_bLD_), - _bLH_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bLI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bLH_), - _bLJ_=caml_call2(Runtime_ocaml_Runtime[83],_bLI_,_bLG_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ab_,_bLJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ac_,[0],_bLx_,_bLw_)}, - _bLu_, - _bLt_, - _bLs_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ad_,_bLv_,_bLr_,_bLq_)}, - _bnI_= - [0, - function(param) - {function _bnL_(param) - {function _boc_(param){throw Runtime_ocaml_Runtime[2]} - function _bod_(param){return 0} - function _boe_(param) - {function _bKT_(param) - {switch(zone[0]) - {case 0: - var _bK7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$178); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bK7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29986) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36187); - var - _bK8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$93), - _bK9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bK8_), - _bK__=caml_call1(Runtime_ocaml_Runtime[69],_bK9_), - _bK$_=caml_call1(Runtime_ocaml_Runtime[31],cst_6201), - _bLa_=caml_call2(Runtime_ocaml_Runtime[104],_bK$_,_bK__), - _bLb_=caml_call1(Runtime_ocaml_Runtime[31],cst_42386); - return caml_call2(Runtime_ocaml_Runtime[93],_bLb_,_bLa_); - case 1: - var _bLc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$179); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLc_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26730) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32193); - var - _bLd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$94), - _bLe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLd_), - _bLf_=caml_call1(Runtime_ocaml_Runtime[69],_bLe_), - _bLg_=caml_call1(Runtime_ocaml_Runtime[31],cst_5463), - _bLh_=caml_call2(Runtime_ocaml_Runtime[104],_bLg_,_bLf_), - _bLi_=caml_call1(Runtime_ocaml_Runtime[31],cst_37656); - return caml_call2(Runtime_ocaml_Runtime[93],_bLi_,_bLh_); - default: - var _bLj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$180); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bLj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24964) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29948); - var - _bLk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$95), - _bLl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bLk_), - _bLm_=caml_call1(Runtime_ocaml_Runtime[69],_bLl_), - _bLn_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986), - _bLo_=caml_call2(Runtime_ocaml_Runtime[104],_bLn_,_bLm_), - _bLp_=caml_call1(Runtime_ocaml_Runtime[31],cst_34934); - return caml_call2(Runtime_ocaml_Runtime[93],_bLp_,_bLo_)}} - function _bKU_(param) - {switch(type_pret[0]) - {case 0:var _bKV_=0;break; - case 1:var _bKV_=1;break; - case 2:var _bKV_=0;break; - case 3:var _bKV_=0;break; - default:var _bKV_=0} - var - _bKW_=0 === anciennete_logement[0]?0:1, - _bKX_=caml_call2(Runtime_ocaml_Runtime[83],_bKW_,_bKV_), - _bKY_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bKZ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bKY_), - _bK0_=caml_call2(Runtime_ocaml_Runtime[83],_bKZ_,_bKX_), - _bK1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bK2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bK1_), - _bK3_=caml_call2(Runtime_ocaml_Runtime[83],_bK2_,_bK0_), - _bK4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bK5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bK4_), - _bK6_=caml_call2(Runtime_ocaml_Runtime[83],_bK5_,_bK3_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ae_,_bK6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Af_,[0],_bKU_,_bKT_)} - function _bof_(param) - {function _bKk_(param) - {switch(zone[0]) - {case 0: - var _bKy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$181); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKy_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_37252) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44941); - var - _bKz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$96), - _bKA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKz_), - _bKB_=caml_call1(Runtime_ocaml_Runtime[69],_bKA_), - _bKC_=caml_call1(Runtime_ocaml_Runtime[31],cst_7687), - _bKD_=caml_call2(Runtime_ocaml_Runtime[104],_bKC_,_bKB_), - _bKE_=caml_call1(Runtime_ocaml_Runtime[31],cst_52629); - return caml_call2(Runtime_ocaml_Runtime[93],_bKE_,_bKD_); - case 1: - var _bKF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$182); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33244) - :caml_call1(Runtime_ocaml_Runtime[31],cst_40013); - var - _bKG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$97), - _bKH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKG_), - _bKI_=caml_call1(Runtime_ocaml_Runtime[69],_bKH_), - _bKJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6768), - _bKK_=caml_call2(Runtime_ocaml_Runtime[104],_bKJ_,_bKI_), - _bKL_=caml_call1(Runtime_ocaml_Runtime[31],cst_46783); - return caml_call2(Runtime_ocaml_Runtime[93],_bKL_,_bKK_); - default: - var _bKM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$183); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKM_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31036) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37215); - var - _bKN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$98), - _bKO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKN_), - _bKP_=caml_call1(Runtime_ocaml_Runtime[69],_bKO_), - _bKQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6179), - _bKR_=caml_call2(Runtime_ocaml_Runtime[104],_bKQ_,_bKP_), - _bKS_=caml_call1(Runtime_ocaml_Runtime[31],cst_43394); - return caml_call2(Runtime_ocaml_Runtime[93],_bKS_,_bKR_)}} - function _bKl_(param) - {switch(type_pret[0]) - {case 0:var _bKm_=0;break; - case 1:var _bKm_=1;break; - case 2:var _bKm_=0;break; - case 3:var _bKm_=0;break; - default:var _bKm_=0} - var - _bKn_=0 === anciennete_logement[0]?1:0, - _bKo_=caml_call2(Runtime_ocaml_Runtime[83],_bKn_,_bKm_), - _bKp_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bKq_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bKp_), - _bKr_=caml_call2(Runtime_ocaml_Runtime[83],_bKq_,_bKo_), - _bKs_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bKt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKs_), - _bKu_=caml_call2(Runtime_ocaml_Runtime[83],_bKt_,_bKr_), - _bKv_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bKw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bKv_), - _bKx_=caml_call2(Runtime_ocaml_Runtime[83],_bKw_,_bKu_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ag_,_bKx_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ah_,[0],_bKl_,_bKk_)} - function _bog_(param) - {function _bJK_(param) - {switch(zone[0]) - {case 0: - var _bJ1_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$184); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJ1_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29897) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36079); - var - _bJ2_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$99), - _bJ3_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJ2_), - _bJ4_=caml_call1(Runtime_ocaml_Runtime[69],_bJ3_), - _bJ5_=caml_call1(Runtime_ocaml_Runtime[31],cst_6182), - _bJ6_=caml_call2(Runtime_ocaml_Runtime[104],_bJ5_,_bJ4_), - _bJ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_42260); - return caml_call2(Runtime_ocaml_Runtime[93],_bJ7_,_bJ6_); - case 1: - var _bJ8_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$185); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJ8_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26650) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32097); - var - _bJ9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$100), - _bJ__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJ9_), - _bJ$_=caml_call1(Runtime_ocaml_Runtime[69],_bJ__), - _bKa_=caml_call1(Runtime_ocaml_Runtime[31],cst_5447), - _bKb_=caml_call2(Runtime_ocaml_Runtime[104],_bKa_,_bJ$_), - _bKc_=caml_call1(Runtime_ocaml_Runtime[31],cst_37543); - return caml_call2(Runtime_ocaml_Runtime[93],_bKc_,_bKb_); - default: - var _bKd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$186); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bKd_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24889) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29858); - var - _bKe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$101), - _bKf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bKe_), - _bKg_=caml_call1(Runtime_ocaml_Runtime[69],_bKf_), - _bKh_=caml_call1(Runtime_ocaml_Runtime[31],cst_4971), - _bKi_=caml_call2(Runtime_ocaml_Runtime[104],_bKh_,_bKg_), - _bKj_=caml_call1(Runtime_ocaml_Runtime[31],cst_34829); - return caml_call2(Runtime_ocaml_Runtime[93],_bKj_,_bKi_)}} - function _bJL_(param) - {switch(type_pret[0]) - {case 0:var _bJM_=0;break; - case 1:var _bJM_=1;break; - case 2:var _bJM_=0;break; - case 3:var _bJM_=0;break; - default:var _bJM_=0} - var - _bJN_=0 === anciennete_logement[0]?0:1, - _bJO_=caml_call2(Runtime_ocaml_Runtime[83],_bJN_,_bJM_), - _bJP_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bJQ_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bJP_), - _bJR_=caml_call2(Runtime_ocaml_Runtime[83],_bJQ_,_bJO_), - _bJS_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bJT_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bJS_), - _bJU_=caml_call2(Runtime_ocaml_Runtime[83],_bJT_,_bJR_), - _bJV_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bJW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJV_), - _bJX_=caml_call2(Runtime_ocaml_Runtime[83],_bJW_,_bJU_), - _bJY_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bJZ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJY_), - _bJ0_=caml_call2(Runtime_ocaml_Runtime[83],_bJZ_,_bJX_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ai_,_bJ0_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Aj_,[0],_bJL_,_bJK_)} - function _boh_(param) - {function _bI__(param) - {switch(zone[0]) - {case 0: - var _bJp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$187); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJp_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_37140) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44807); - var - _bJq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$102), - _bJr_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJq_), - _bJs_=caml_call1(Runtime_ocaml_Runtime[69],_bJr_), - _bJt_=caml_call1(Runtime_ocaml_Runtime[31],cst_7664), - _bJu_=caml_call2(Runtime_ocaml_Runtime[104],_bJt_,_bJs_), - _bJv_=caml_call1(Runtime_ocaml_Runtime[31],cst_52472); - return caml_call2(Runtime_ocaml_Runtime[93],_bJv_,_bJu_); - case 1: - var _bJw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$188); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJw_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33145) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39893); - var - _bJx_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$103), - _bJy_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJx_), - _bJz_=caml_call1(Runtime_ocaml_Runtime[69],_bJy_), - _bJA_=caml_call1(Runtime_ocaml_Runtime[31],cst_6748), - _bJB_=caml_call2(Runtime_ocaml_Runtime[104],_bJA_,_bJz_), - _bJC_=caml_call1(Runtime_ocaml_Runtime[31],cst_46643); - return caml_call2(Runtime_ocaml_Runtime[93],_bJC_,_bJB_); - default: - var _bJD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$189); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bJD_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30943) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37103); - var - _bJE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$104), - _bJF_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bJE_), - _bJG_=caml_call1(Runtime_ocaml_Runtime[69],_bJF_), - _bJH_=caml_call1(Runtime_ocaml_Runtime[31],cst_6161), - _bJI_=caml_call2(Runtime_ocaml_Runtime[104],_bJH_,_bJG_), - _bJJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_43264); - return caml_call2(Runtime_ocaml_Runtime[93],_bJJ_,_bJI_)}} - function _bI$_(param) - {switch(type_pret[0]) - {case 0:var _bJa_=0;break; - case 1:var _bJa_=1;break; - case 2:var _bJa_=0;break; - case 3:var _bJa_=0;break; - default:var _bJa_=0} - var - _bJb_=0 === anciennete_logement[0]?1:0, - _bJc_=caml_call2(Runtime_ocaml_Runtime[83],_bJb_,_bJa_), - _bJd_=caml_call3(Runtime_ocaml_Runtime[57],2019,9,30), - _bJe_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bJd_), - _bJf_=caml_call2(Runtime_ocaml_Runtime[83],_bJe_,_bJc_), - _bJg_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bJh_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bJg_), - _bJi_=caml_call2(Runtime_ocaml_Runtime[83],_bJh_,_bJf_), - _bJj_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bJk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJj_), - _bJl_=caml_call2(Runtime_ocaml_Runtime[83],_bJk_,_bJi_), - _bJm_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bJn_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bJm_), - _bJo_=caml_call2(Runtime_ocaml_Runtime[83],_bJn_,_bJl_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ak_,_bJo_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Al_,[0],_bI$_,_bI__)} - function _boi_(param) - {function _bIy_(param) - {switch(zone[0]) - {case 0: - var _bIP_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$190); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIP_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29674) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35810); - var - _bIQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$105), - _bIR_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIQ_), - _bIS_=caml_call1(Runtime_ocaml_Runtime[69],_bIR_), - _bIT_=caml_call1(Runtime_ocaml_Runtime[31],cst_6136), - _bIU_=caml_call2(Runtime_ocaml_Runtime[104],_bIT_,_bIS_), - _bIV_=caml_call1(Runtime_ocaml_Runtime[31],cst_41945); - return caml_call2(Runtime_ocaml_Runtime[93],_bIV_,_bIU_); - case 1: - var _bIW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$191); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIW_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26452) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31858); - var - _bIX_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$106), - _bIY_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIX_), - _bIZ_=caml_call1(Runtime_ocaml_Runtime[69],_bIY_), - _bI0_=caml_call1(Runtime_ocaml_Runtime[31],cst_5406), - _bI1_=caml_call2(Runtime_ocaml_Runtime[104],_bI0_,_bIZ_), - _bI2_=caml_call1(Runtime_ocaml_Runtime[31],cst_37264); - return caml_call2(Runtime_ocaml_Runtime[93],_bI2_,_bI1_); - default: - var _bI3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$192); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bI3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24704) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29636); - var - _bI4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$107), - _bI5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bI4_), - _bI6_=caml_call1(Runtime_ocaml_Runtime[69],_bI5_), - _bI7_=caml_call1(Runtime_ocaml_Runtime[31],cst_4934), - _bI8_=caml_call2(Runtime_ocaml_Runtime[104],_bI7_,_bI6_), - _bI9_=caml_call1(Runtime_ocaml_Runtime[31],cst_34570); - return caml_call2(Runtime_ocaml_Runtime[93],_bI9_,_bI8_)}} - function _bIz_(param) - {switch(type_pret[0]) - {case 0:var _bIA_=0;break; - case 1:var _bIA_=1;break; - case 2:var _bIA_=0;break; - case 3:var _bIA_=0;break; - default:var _bIA_=0} - var - _bIB_=0 === anciennete_logement[0]?0:1, - _bIC_=caml_call2(Runtime_ocaml_Runtime[83],_bIB_,_bIA_), - _bID_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bIE_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bID_), - _bIF_=caml_call2(Runtime_ocaml_Runtime[83],_bIE_,_bIC_), - _bIG_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bIH_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bIG_), - _bII_=caml_call2(Runtime_ocaml_Runtime[83],_bIH_,_bIF_), - _bIJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bIK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIJ_), - _bIL_=caml_call2(Runtime_ocaml_Runtime[83],_bIK_,_bII_), - _bIM_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bIN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIM_), - _bIO_=caml_call2(Runtime_ocaml_Runtime[83],_bIN_,_bIL_); - return caml_call2(Runtime_ocaml_Runtime[29],_Am_,_bIO_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_An_,[0],_bIz_,_bIy_)} - function _boj_(param) - {function _bHY_(param) - {switch(zone[0]) - {case 0: - var _bId_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$193); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bId_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36864) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44473); - var - _bIe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$108), - _bIf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIe_), - _bIg_=caml_call1(Runtime_ocaml_Runtime[69],_bIf_), - _bIh_=caml_call1(Runtime_ocaml_Runtime[31],cst_7607), - _bIi_=caml_call2(Runtime_ocaml_Runtime[104],_bIh_,_bIg_), - _bIj_=caml_call1(Runtime_ocaml_Runtime[31],cst_52081); - return caml_call2(Runtime_ocaml_Runtime[93],_bIj_,_bIi_); - case 1: - var _bIk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$194); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIk_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32898) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39596); - var - _bIl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$109), - _bIm_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIl_), - _bIn_=caml_call1(Runtime_ocaml_Runtime[69],_bIm_), - _bIo_=caml_call1(Runtime_ocaml_Runtime[31],cst_6698), - _bIp_=caml_call2(Runtime_ocaml_Runtime[104],_bIo_,_bIn_), - _bIq_=caml_call1(Runtime_ocaml_Runtime[31],cst_46296); - return caml_call2(Runtime_ocaml_Runtime[93],_bIq_,_bIp_); - default: - var _bIr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$195); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bIr_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30713) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36827); - var - _bIs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$110), - _bIt_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bIs_), - _bIu_=caml_call1(Runtime_ocaml_Runtime[69],_bIt_), - _bIv_=caml_call1(Runtime_ocaml_Runtime[31],cst_6115), - _bIw_=caml_call2(Runtime_ocaml_Runtime[104],_bIv_,_bIu_), - _bIx_=caml_call1(Runtime_ocaml_Runtime[31],cst_42942); - return caml_call2(Runtime_ocaml_Runtime[93],_bIx_,_bIw_)}} - function _bHZ_(param) - {switch(type_pret[0]) - {case 0:var _bH0_=0;break; - case 1:var _bH0_=1;break; - case 2:var _bH0_=0;break; - case 3:var _bH0_=0;break; - default:var _bH0_=0} - var - _bH1_=0 === anciennete_logement[0]?1:0, - _bH2_=caml_call2(Runtime_ocaml_Runtime[83],_bH1_,_bH0_), - _bH3_=caml_call3(Runtime_ocaml_Runtime[57],2017,9,30), - _bH4_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bH3_), - _bH5_=caml_call2(Runtime_ocaml_Runtime[83],_bH4_,_bH2_), - _bH6_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bH7_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bH6_), - _bH8_=caml_call2(Runtime_ocaml_Runtime[83],_bH7_,_bH5_), - _bH9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bH__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bH9_), - _bH$_=caml_call2(Runtime_ocaml_Runtime[83],_bH__,_bH8_), - _bIa_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bIb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bIa_), - _bIc_=caml_call2(Runtime_ocaml_Runtime[83],_bIb_,_bH$_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ao_,_bIc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ap_,[0],_bHZ_,_bHY_)} - function _bok_(param) - {function _bHm_(param) - {switch(zone[0]) - {case 0: - var _bHD_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$196); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHD_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29650) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35781); - var - _bHE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$111), - _bHF_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHE_), - _bHG_=caml_call1(Runtime_ocaml_Runtime[69],_bHF_), - _bHH_=caml_call1(Runtime_ocaml_Runtime[31],cst_6131), - _bHI_=caml_call2(Runtime_ocaml_Runtime[104],_bHH_,_bHG_), - _bHJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41911); - return caml_call2(Runtime_ocaml_Runtime[93],_bHJ_,_bHI_); - case 1: - var _bHK_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$197); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHK_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26431) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31833); - var - _bHL_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$112), - _bHM_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHL_), - _bHN_=caml_call1(Runtime_ocaml_Runtime[69],_bHM_), - _bHO_=caml_call1(Runtime_ocaml_Runtime[31],cst_5402), - _bHP_=caml_call2(Runtime_ocaml_Runtime[104],_bHO_,_bHN_), - _bHQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_37234); - return caml_call2(Runtime_ocaml_Runtime[93],_bHQ_,_bHP_); - default: - var _bHR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$198); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24684) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29612); - var - _bHS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$113), - _bHT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHS_), - _bHU_=caml_call1(Runtime_ocaml_Runtime[69],_bHT_), - _bHV_=caml_call1(Runtime_ocaml_Runtime[31],cst_4930), - _bHW_=caml_call2(Runtime_ocaml_Runtime[104],_bHV_,_bHU_), - _bHX_=caml_call1(Runtime_ocaml_Runtime[31],cst_34542); - return caml_call2(Runtime_ocaml_Runtime[93],_bHX_,_bHW_)}} - function _bHn_(param) - {switch(type_pret[0]) - {case 0:var _bHo_=0;break; - case 1:var _bHo_=1;break; - case 2:var _bHo_=0;break; - case 3:var _bHo_=0;break; - default:var _bHo_=0} - var - _bHp_=0 === anciennete_logement[0]?0:1, - _bHq_=caml_call2(Runtime_ocaml_Runtime[83],_bHp_,_bHo_), - _bHr_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bHs_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bHr_), - _bHt_=caml_call2(Runtime_ocaml_Runtime[83],_bHs_,_bHq_), - _bHu_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bHv_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bHu_), - _bHw_=caml_call2(Runtime_ocaml_Runtime[83],_bHv_,_bHt_), - _bHx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bHy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bHx_), - _bHz_=caml_call2(Runtime_ocaml_Runtime[83],_bHy_,_bHw_), - _bHA_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bHB_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bHA_), - _bHC_=caml_call2(Runtime_ocaml_Runtime[83],_bHB_,_bHz_); - return caml_call2(Runtime_ocaml_Runtime[29],_Aq_,_bHC_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ar_,[0],_bHn_,_bHm_)} - function _bol_(param) - {function _bGM_(param) - {switch(zone[0]) - {case 0: - var _bG3_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$199); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG3_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36835) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44437); - var - _bG4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$114), - _bG5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bG4_), - _bG6_=caml_call1(Runtime_ocaml_Runtime[69],_bG5_), - _bG7_=caml_call1(Runtime_ocaml_Runtime[31],cst_7601), - _bG8_=caml_call2(Runtime_ocaml_Runtime[104],_bG7_,_bG6_), - _bG9_=caml_call1(Runtime_ocaml_Runtime[31],cst_52039); - return caml_call2(Runtime_ocaml_Runtime[93],_bG9_,_bG8_); - case 1: - var _bG__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$200); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bG__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32872) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39564); - var - _bG$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$115), - _bHa_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bG$_), - _bHb_=caml_call1(Runtime_ocaml_Runtime[69],_bHa_), - _bHc_=caml_call1(Runtime_ocaml_Runtime[31],cst_6693), - _bHd_=caml_call2(Runtime_ocaml_Runtime[104],_bHc_,_bHb_), - _bHe_=caml_call1(Runtime_ocaml_Runtime[31],cst_46259); - return caml_call2(Runtime_ocaml_Runtime[93],_bHe_,_bHd_); - default: - var _bHf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$201); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bHf_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30688) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36798); - var - _bHg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$116), - _bHh_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bHg_), - _bHi_=caml_call1(Runtime_ocaml_Runtime[69],_bHh_), - _bHj_=caml_call1(Runtime_ocaml_Runtime[31],cst_6110), - _bHk_=caml_call2(Runtime_ocaml_Runtime[104],_bHj_,_bHi_), - _bHl_=caml_call1(Runtime_ocaml_Runtime[31],cst_42908); - return caml_call2(Runtime_ocaml_Runtime[93],_bHl_,_bHk_)}} - function _bGN_(param) - {switch(type_pret[0]) - {case 0:var _bGO_=0;break; - case 1:var _bGO_=1;break; - case 2:var _bGO_=0;break; - case 3:var _bGO_=0;break; - default:var _bGO_=0} - var - _bGP_=0 === anciennete_logement[0]?1:0, - _bGQ_=caml_call2(Runtime_ocaml_Runtime[83],_bGP_,_bGO_), - _bGR_=caml_call3(Runtime_ocaml_Runtime[57],2015,9,30), - _bGS_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bGR_), - _bGT_=caml_call2(Runtime_ocaml_Runtime[83],_bGS_,_bGQ_), - _bGU_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bGV_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bGU_), - _bGW_=caml_call2(Runtime_ocaml_Runtime[83],_bGV_,_bGT_), - _bGX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bGY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGX_), - _bGZ_=caml_call2(Runtime_ocaml_Runtime[83],_bGY_,_bGW_), - _bG0_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bG1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bG0_), - _bG2_=caml_call2(Runtime_ocaml_Runtime[83],_bG1_,_bGZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_As_,_bG2_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_At_,[0],_bGN_,_bGM_)} - function _bom_(param) - {function _bGa_(param) - {switch(zone[0]) - {case 0: - var _bGr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$202); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGr_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29482) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35578); - var - _bGs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$117), - _bGt_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGs_), - _bGu_=caml_call1(Runtime_ocaml_Runtime[69],_bGt_), - _bGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_6096), - _bGw_=caml_call2(Runtime_ocaml_Runtime[104],_bGv_,_bGu_), - _bGx_=caml_call1(Runtime_ocaml_Runtime[31],cst_41673); - return caml_call2(Runtime_ocaml_Runtime[93],_bGx_,_bGw_); - case 1: - var _bGy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$203); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGy_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26281) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31653); - var - _bGz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$118), - _bGA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGz_), - _bGB_=caml_call1(Runtime_ocaml_Runtime[69],_bGA_), - _bGC_=caml_call1(Runtime_ocaml_Runtime[31],cst_5371), - _bGD_=caml_call2(Runtime_ocaml_Runtime[104],_bGC_,_bGB_), - _bGE_=caml_call1(Runtime_ocaml_Runtime[31],cst_37023); - return caml_call2(Runtime_ocaml_Runtime[93],_bGE_,_bGD_); - default: - var _bGF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$204); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bGF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24544) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29444); - var - _bGG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$119), - _bGH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bGG_), - _bGI_=caml_call1(Runtime_ocaml_Runtime[69],_bGH_), - _bGJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4902), - _bGK_=caml_call2(Runtime_ocaml_Runtime[104],_bGJ_,_bGI_), - _bGL_=caml_call1(Runtime_ocaml_Runtime[31],cst_34346); - return caml_call2(Runtime_ocaml_Runtime[93],_bGL_,_bGK_)}} - function _bGb_(param) - {switch(type_pret[0]) - {case 0:var _bGc_=0;break; - case 1:var _bGc_=1;break; - case 2:var _bGc_=0;break; - case 3:var _bGc_=0;break; - default:var _bGc_=0} - var - _bGd_=0 === anciennete_logement[0]?0:1, - _bGe_=caml_call2(Runtime_ocaml_Runtime[83],_bGd_,_bGc_), - _bGf_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bGg_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bGf_), - _bGh_=caml_call2(Runtime_ocaml_Runtime[83],_bGg_,_bGe_), - _bGi_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bGj_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bGi_), - _bGk_=caml_call2(Runtime_ocaml_Runtime[83],_bGj_,_bGh_), - _bGl_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bGm_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGl_), - _bGn_=caml_call2(Runtime_ocaml_Runtime[83],_bGm_,_bGk_), - _bGo_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bGp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bGo_), - _bGq_=caml_call2(Runtime_ocaml_Runtime[83],_bGp_,_bGn_); - return caml_call2(Runtime_ocaml_Runtime[29],_Au_,_bGq_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Av_,[0],_bGb_,_bGa_)} - function _bon_(param) - {function _bFA_(param) - {switch(zone[0]) - {case 0: - var _bFR_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$205); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFR_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_36626) - :caml_call1(Runtime_ocaml_Runtime[31],cst_44185); - var - _bFS_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$120), - _bFT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFS_), - _bFU_=caml_call1(Runtime_ocaml_Runtime[69],_bFT_), - _bFV_=caml_call1(Runtime_ocaml_Runtime[31],cst_7558), - _bFW_=caml_call2(Runtime_ocaml_Runtime[104],_bFV_,_bFU_), - _bFX_=caml_call1(Runtime_ocaml_Runtime[31],cst_51744); - return caml_call2(Runtime_ocaml_Runtime[93],_bFX_,_bFW_); - case 1: - var _bFY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$206); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFY_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39340); - var - _bFZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$121), - _bF0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFZ_), - _bF1_=caml_call1(Runtime_ocaml_Runtime[69],_bF0_), - _bF2_=caml_call1(Runtime_ocaml_Runtime[31],cst_6655), - _bF3_=caml_call2(Runtime_ocaml_Runtime[104],_bF2_,_bF1_), - _bF4_=caml_call1(Runtime_ocaml_Runtime[31],cst_45997); - return caml_call2(Runtime_ocaml_Runtime[93],_bF4_,_bF3_); - default: - var _bF5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$207); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bF5_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30514) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36589); - var - _bF6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$122), - _bF7_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bF6_), - _bF8_=caml_call1(Runtime_ocaml_Runtime[69],_bF7_), - _bF9_=caml_call1(Runtime_ocaml_Runtime[31],cst_6075), - _bF__=caml_call2(Runtime_ocaml_Runtime[104],_bF9_,_bF8_), - _bF$_=caml_call1(Runtime_ocaml_Runtime[31],cst_42665); - return caml_call2(Runtime_ocaml_Runtime[93],_bF$_,_bF__)}} - function _bFB_(param) - {switch(type_pret[0]) - {case 0:var _bFC_=0;break; - case 1:var _bFC_=1;break; - case 2:var _bFC_=0;break; - case 3:var _bFC_=0;break; - default:var _bFC_=0} - var - _bFD_=0 === anciennete_logement[0]?1:0, - _bFE_=caml_call2(Runtime_ocaml_Runtime[83],_bFD_,_bFC_), - _bFF_=caml_call3(Runtime_ocaml_Runtime[57],2014,9,30), - _bFG_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bFF_), - _bFH_=caml_call2(Runtime_ocaml_Runtime[83],_bFG_,_bFE_), - _bFI_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bFJ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bFI_), - _bFK_=caml_call2(Runtime_ocaml_Runtime[83],_bFJ_,_bFH_), - _bFL_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bFM_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFL_), - _bFN_=caml_call2(Runtime_ocaml_Runtime[83],_bFM_,_bFK_), - _bFO_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bFP_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFO_), - _bFQ_=caml_call2(Runtime_ocaml_Runtime[83],_bFP_,_bFN_); - return caml_call2(Runtime_ocaml_Runtime[29],_Aw_,_bFQ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ax_,[0],_bFB_,_bFA_)} - function _boo_(param) - {function _bE0_(param) - {switch(zone[0]) - {case 0: - var _bFf_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$208); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFf_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28861) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34829$0); - var - _bFg_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$123), - _bFh_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFg_), - _bFi_=caml_call1(Runtime_ocaml_Runtime[69],_bFh_), - _bFj_=caml_call1(Runtime_ocaml_Runtime[31],cst_5968), - _bFk_=caml_call2(Runtime_ocaml_Runtime[104],_bFj_,_bFi_), - _bFl_=caml_call1(Runtime_ocaml_Runtime[31],cst_40796); - return caml_call2(Runtime_ocaml_Runtime[93],_bFl_,_bFk_); - case 1: - var _bFm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$209); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFm_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30987); - var - _bFn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$124), - _bFo_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFn_), - _bFp_=caml_call1(Runtime_ocaml_Runtime[69],_bFo_), - _bFq_=caml_call1(Runtime_ocaml_Runtime[31],cst_5258), - _bFr_=caml_call2(Runtime_ocaml_Runtime[104],_bFq_,_bFp_), - _bFs_=caml_call1(Runtime_ocaml_Runtime[31],cst_36244); - return caml_call2(Runtime_ocaml_Runtime[93],_bFs_,_bFr_); - default: - var _bFt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$210); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bFt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24027) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28824); - var - _bFu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$125), - _bFv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bFu_), - _bFw_=caml_call1(Runtime_ocaml_Runtime[69],_bFv_), - _bFx_=caml_call1(Runtime_ocaml_Runtime[31],cst_4799), - _bFy_=caml_call2(Runtime_ocaml_Runtime[104],_bFx_,_bFw_), - _bFz_=caml_call1(Runtime_ocaml_Runtime[31],cst_33623); - return caml_call2(Runtime_ocaml_Runtime[93],_bFz_,_bFy_)}} - function _bE1_(param) - {switch(type_pret[0]) - {case 0:var _bE2_=0;break; - case 1:var _bE2_=1;break; - case 2:var _bE2_=0;break; - case 3:var _bE2_=0;break; - default:var _bE2_=0} - var - _bE3_=0 === anciennete_logement[0]?0:1, - _bE4_=caml_call2(Runtime_ocaml_Runtime[83],_bE3_,_bE2_), - _bE5_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bE6_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bE5_), - _bE7_=caml_call2(Runtime_ocaml_Runtime[83],_bE6_,_bE4_), - _bE8_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bE9_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bE8_), - _bE__=caml_call2(Runtime_ocaml_Runtime[83],_bE9_,_bE7_), - _bE$_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bFa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bE$_), - _bFb_=caml_call2(Runtime_ocaml_Runtime[83],_bFa_,_bE__), - _bFc_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bFd_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bFc_), - _bFe_=caml_call2(Runtime_ocaml_Runtime[83],_bFd_,_bFb_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ay_,_bFe_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Az_,[0],_bE1_,_bE0_)} - function _bop_(param) - {function _bEo_(param) - {switch(zone[0]) - {case 0: - var _bEF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$211); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEF_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35855) - :caml_call1(Runtime_ocaml_Runtime[31],cst_43255); - var - _bEG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$126), - _bEH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEG_), - _bEI_=caml_call1(Runtime_ocaml_Runtime[69],_bEH_), - _bEJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7399), - _bEK_=caml_call2(Runtime_ocaml_Runtime[104],_bEJ_,_bEI_), - _bEL_=caml_call1(Runtime_ocaml_Runtime[31],cst_50655); - return caml_call2(Runtime_ocaml_Runtime[93],_bEL_,_bEK_); - case 1: - var _bEM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$212); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEM_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31998) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38512); - var - _bEN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$127), - _bEO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEN_), - _bEP_=caml_call1(Runtime_ocaml_Runtime[69],_bEO_), - _bEQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_6515), - _bER_=caml_call2(Runtime_ocaml_Runtime[104],_bEQ_,_bEP_), - _bES_=caml_call1(Runtime_ocaml_Runtime[31],cst_45029); - return caml_call2(Runtime_ocaml_Runtime[93],_bES_,_bER_); - default: - var _bET_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$213); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bET_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29872) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35819); - var - _bEU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$128), - _bEV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEU_), - _bEW_=caml_call1(Runtime_ocaml_Runtime[69],_bEV_), - _bEX_=caml_call1(Runtime_ocaml_Runtime[31],cst_5947), - _bEY_=caml_call2(Runtime_ocaml_Runtime[104],_bEX_,_bEW_), - _bEZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41767); - return caml_call2(Runtime_ocaml_Runtime[93],_bEZ_,_bEY_)}} - function _bEp_(param) - {switch(type_pret[0]) - {case 0:var _bEq_=0;break; - case 1:var _bEq_=1;break; - case 2:var _bEq_=0;break; - case 3:var _bEq_=0;break; - default:var _bEq_=0} - var - _bEr_=0 === anciennete_logement[0]?1:0, - _bEs_=caml_call2(Runtime_ocaml_Runtime[83],_bEr_,_bEq_), - _bEt_=caml_call3(Runtime_ocaml_Runtime[57],2012,12,31), - _bEu_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bEt_), - _bEv_=caml_call2(Runtime_ocaml_Runtime[83],_bEu_,_bEs_), - _bEw_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bEx_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bEw_), - _bEy_=caml_call2(Runtime_ocaml_Runtime[83],_bEx_,_bEv_), - _bEz_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bEA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bEz_), - _bEB_=caml_call2(Runtime_ocaml_Runtime[83],_bEA_,_bEy_), - _bEC_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bED_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bEC_), - _bEE_=caml_call2(Runtime_ocaml_Runtime[83],_bED_,_bEB_); - return caml_call2(Runtime_ocaml_Runtime[29],_AA_,_bEE_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AB_,[0],_bEp_,_bEo_)} - function _boq_(param) - {function _bDO_(param) - {switch(zone[0]) - {case 0: - var _bD5_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$214); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bD5_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28575) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34484); - var - _bD6_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$129), - _bD7_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bD6_), - _bD8_=caml_call1(Runtime_ocaml_Runtime[69],_bD7_), - _bD9_=caml_call1(Runtime_ocaml_Runtime[31],cst_5909), - _bD__=caml_call2(Runtime_ocaml_Runtime[104],_bD9_,_bD8_), - _bD$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40392); - return caml_call2(Runtime_ocaml_Runtime[93],_bD$_,_bD__); - case 1: - var _bEa_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$215); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEa_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25473) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30680); - var - _bEb_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$130), - _bEc_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEb_), - _bEd_=caml_call1(Runtime_ocaml_Runtime[69],_bEc_), - _bEe_=caml_call1(Runtime_ocaml_Runtime[31],cst_5206), - _bEf_=caml_call2(Runtime_ocaml_Runtime[104],_bEe_,_bEd_), - _bEg_=caml_call1(Runtime_ocaml_Runtime[31],cst_35885); - return caml_call2(Runtime_ocaml_Runtime[93],_bEg_,_bEf_); - default: - var _bEh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$216); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bEh_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23789) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28539); - var - _bEi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$131), - _bEj_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bEi_), - _bEk_=caml_call1(Runtime_ocaml_Runtime[69],_bEj_), - _bEl_=caml_call1(Runtime_ocaml_Runtime[31],cst_4751), - _bEm_=caml_call2(Runtime_ocaml_Runtime[104],_bEl_,_bEk_), - _bEn_=caml_call1(Runtime_ocaml_Runtime[31],cst_33290); - return caml_call2(Runtime_ocaml_Runtime[93],_bEn_,_bEm_)}} - function _bDP_(param) - {switch(type_pret[0]) - {case 0:var _bDQ_=0;break; - case 1:var _bDQ_=1;break; - case 2:var _bDQ_=0;break; - case 3:var _bDQ_=0;break; - default:var _bDQ_=0} - var - _bDR_=0 === anciennete_logement[0]?0:1, - _bDS_=caml_call2(Runtime_ocaml_Runtime[83],_bDR_,_bDQ_), - _bDT_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bDU_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bDT_), - _bDV_=caml_call2(Runtime_ocaml_Runtime[83],_bDU_,_bDS_), - _bDW_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bDX_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bDW_), - _bDY_=caml_call2(Runtime_ocaml_Runtime[83],_bDX_,_bDV_), - _bDZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bD0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDZ_), - _bD1_=caml_call2(Runtime_ocaml_Runtime[83],_bD0_,_bDY_), - _bD2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bD3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bD2_), - _bD4_=caml_call2(Runtime_ocaml_Runtime[83],_bD3_,_bD1_); - return caml_call2(Runtime_ocaml_Runtime[29],_AC_,_bD4_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AD_,[0],_bDP_,_bDO_)} - function _bor_(param) - {function _bDc_(param) - {switch(zone[0]) - {case 0: - var _bDt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$217); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42827); - var - _bDu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$132), - _bDv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDu_), - _bDw_=caml_call1(Runtime_ocaml_Runtime[69],_bDv_), - _bDx_=caml_call1(Runtime_ocaml_Runtime[31],cst_7326), - _bDy_=caml_call2(Runtime_ocaml_Runtime[104],_bDx_,_bDw_), - _bDz_=caml_call1(Runtime_ocaml_Runtime[31],cst_50153); - return caml_call2(Runtime_ocaml_Runtime[93],_bDz_,_bDy_); - case 1: - var _bDA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31681) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38131); - var - _bDB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$133), - _bDC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDB_), - _bDD_=caml_call1(Runtime_ocaml_Runtime[69],_bDC_), - _bDE_=caml_call1(Runtime_ocaml_Runtime[31],cst_6450), - _bDF_=caml_call2(Runtime_ocaml_Runtime[104],_bDE_,_bDD_), - _bDG_=caml_call1(Runtime_ocaml_Runtime[31],cst_44583); - return caml_call2(Runtime_ocaml_Runtime[93],_bDG_,_bDF_); - default: - var _bDH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bDH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29576) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35464); - var - _bDI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$134), - _bDJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bDI_), - _bDK_=caml_call1(Runtime_ocaml_Runtime[69],_bDJ_), - _bDL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5888), - _bDM_=caml_call2(Runtime_ocaml_Runtime[104],_bDL_,_bDK_), - _bDN_=caml_call1(Runtime_ocaml_Runtime[31],cst_41353); - return caml_call2(Runtime_ocaml_Runtime[93],_bDN_,_bDM_)}} - function _bDd_(param) - {switch(type_pret[0]) - {case 0:var _bDe_=0;break; - case 1:var _bDe_=1;break; - case 2:var _bDe_=0;break; - case 3:var _bDe_=0;break; - default:var _bDe_=0} - var - _bDf_=0 === anciennete_logement[0]?1:0, - _bDg_=caml_call2(Runtime_ocaml_Runtime[83],_bDf_,_bDe_), - _bDh_=caml_call3(Runtime_ocaml_Runtime[57],2011,12,31), - _bDi_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bDh_), - _bDj_=caml_call2(Runtime_ocaml_Runtime[83],_bDi_,_bDg_), - _bDk_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bDl_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bDk_), - _bDm_=caml_call2(Runtime_ocaml_Runtime[83],_bDl_,_bDj_), - _bDn_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bDo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDn_), - _bDp_=caml_call2(Runtime_ocaml_Runtime[83],_bDo_,_bDm_), - _bDq_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bDr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bDq_), - _bDs_=caml_call2(Runtime_ocaml_Runtime[83],_bDr_,_bDp_); - return caml_call2(Runtime_ocaml_Runtime[29],_AE_,_bDs_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AF_,[0],_bDd_,_bDc_)} - function _bos_(param) - {function _bCC_(param) - {switch(zone[0]) - {case 0: - var _bCT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCT_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28264) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34109); - var - _bCU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$135), - _bCV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCU_), - _bCW_=caml_call1(Runtime_ocaml_Runtime[69],_bCV_), - _bCX_=caml_call1(Runtime_ocaml_Runtime[31],cst_5845), - _bCY_=caml_call2(Runtime_ocaml_Runtime[104],_bCX_,_bCW_), - _bCZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_39953); - return caml_call2(Runtime_ocaml_Runtime[93],_bCZ_,_bCY_); - case 1: - var _bC0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$221); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bC0_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25196) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30346); - var - _bC1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$136), - _bC2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bC1_), - _bC3_=caml_call1(Runtime_ocaml_Runtime[69],_bC2_), - _bC4_=caml_call1(Runtime_ocaml_Runtime[31],cst_5149), - _bC5_=caml_call2(Runtime_ocaml_Runtime[104],_bC4_,_bC3_), - _bC6_=caml_call1(Runtime_ocaml_Runtime[31],cst_35495); - return caml_call2(Runtime_ocaml_Runtime[93],_bC6_,_bC5_); - default: - var _bC7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$222); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bC7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23530) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28228); - var - _bC8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$137), - _bC9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bC8_), - _bC__=caml_call1(Runtime_ocaml_Runtime[69],_bC9_), - _bC$_=caml_call1(Runtime_ocaml_Runtime[31],cst_4699), - _bDa_=caml_call2(Runtime_ocaml_Runtime[104],_bC$_,_bC__), - _bDb_=caml_call1(Runtime_ocaml_Runtime[31],cst_32928); - return caml_call2(Runtime_ocaml_Runtime[93],_bDb_,_bDa_)}} - function _bCD_(param) - {switch(type_pret[0]) - {case 0:var _bCE_=0;break; - case 1:var _bCE_=1;break; - case 2:var _bCE_=0;break; - case 3:var _bCE_=0;break; - default:var _bCE_=0} - var - _bCF_=0 === anciennete_logement[0]?0:1, - _bCG_=caml_call2(Runtime_ocaml_Runtime[83],_bCF_,_bCE_), - _bCH_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bCI_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bCH_), - _bCJ_=caml_call2(Runtime_ocaml_Runtime[83],_bCI_,_bCG_), - _bCK_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bCL_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bCK_), - _bCM_=caml_call2(Runtime_ocaml_Runtime[83],_bCL_,_bCJ_), - _bCN_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bCO_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCN_), - _bCP_=caml_call2(Runtime_ocaml_Runtime[83],_bCO_,_bCM_), - _bCQ_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bCR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCQ_), - _bCS_=caml_call2(Runtime_ocaml_Runtime[83],_bCR_,_bCP_); - return caml_call2(Runtime_ocaml_Runtime[29],_AG_,_bCS_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AH_,[0],_bCD_,_bCC_)} - function _bot_(param) - {function _bB2_(param) - {switch(zone[0]) - {case 0: - var _bCh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$223); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCh_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35114) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42361); - var - _bCi_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$138), - _bCj_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCi_), - _bCk_=caml_call1(Runtime_ocaml_Runtime[69],_bCj_), - _bCl_=caml_call1(Runtime_ocaml_Runtime[31],cst_7246), - _bCm_=caml_call2(Runtime_ocaml_Runtime[104],_bCl_,_bCk_), - _bCn_=caml_call1(Runtime_ocaml_Runtime[31],cst_49607); - return caml_call2(Runtime_ocaml_Runtime[93],_bCn_,_bCm_); - case 1: - var _bCo_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCo_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31336) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37716); - var - _bCp_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$139), - _bCq_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCp_), - _bCr_=caml_call1(Runtime_ocaml_Runtime[69],_bCq_), - _bCs_=caml_call1(Runtime_ocaml_Runtime[31],cst_6380), - _bCt_=caml_call2(Runtime_ocaml_Runtime[104],_bCs_,_bCr_), - _bCu_=caml_call1(Runtime_ocaml_Runtime[31],cst_44098); - return caml_call2(Runtime_ocaml_Runtime[93],_bCu_,_bCt_); - default: - var _bCv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$225); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bCv_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29254) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35078); - var - _bCw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$140), - _bCx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bCw_), - _bCy_=caml_call1(Runtime_ocaml_Runtime[69],_bCx_), - _bCz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5824), - _bCA_=caml_call2(Runtime_ocaml_Runtime[104],_bCz_,_bCy_), - _bCB_=caml_call1(Runtime_ocaml_Runtime[31],cst_40903); - return caml_call2(Runtime_ocaml_Runtime[93],_bCB_,_bCA_)}} - function _bB3_(param) - {switch(type_pret[0]) - {case 0:var _bB4_=0;break; - case 1:var _bB4_=1;break; - case 2:var _bB4_=0;break; - case 3:var _bB4_=0;break; - default:var _bB4_=0} - var - _bB5_=0 === anciennete_logement[0]?1:0, - _bB6_=caml_call2(Runtime_ocaml_Runtime[83],_bB5_,_bB4_), - _bB7_=caml_call3(Runtime_ocaml_Runtime[57],2010,12,31), - _bB8_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bB7_), - _bB9_=caml_call2(Runtime_ocaml_Runtime[83],_bB8_,_bB6_), - _bB__=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bB$_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bB__), - _bCa_=caml_call2(Runtime_ocaml_Runtime[83],_bB$_,_bB9_), - _bCb_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bCc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCb_), - _bCd_=caml_call2(Runtime_ocaml_Runtime[83],_bCc_,_bCa_), - _bCe_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bCf_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bCe_), - _bCg_=caml_call2(Runtime_ocaml_Runtime[83],_bCf_,_bCd_); - return caml_call2(Runtime_ocaml_Runtime[29],_AI_,_bCg_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AJ_,[0],_bB3_,_bB2_)} - function _bou_(param) - {function _bBq_(param) - {switch(zone[0]) - {case 0: - var _bBH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$226); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBH_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28174) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34000); - var - _bBI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$141), - _bBJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBI_), - _bBK_=caml_call1(Runtime_ocaml_Runtime[69],_bBJ_), - _bBL_=caml_call1(Runtime_ocaml_Runtime[31],cst_5826), - _bBM_=caml_call2(Runtime_ocaml_Runtime[104],_bBL_,_bBK_), - _bBN_=caml_call1(Runtime_ocaml_Runtime[31],cst_39826); - return caml_call2(Runtime_ocaml_Runtime[93],_bBN_,_bBM_); - case 1: - var _bBO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$227); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBO_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25116) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30249); - var - _bBP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$142), - _bBQ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBP_), - _bBR_=caml_call1(Runtime_ocaml_Runtime[69],_bBQ_), - _bBS_=caml_call1(Runtime_ocaml_Runtime[31],cst_5133), - _bBT_=caml_call2(Runtime_ocaml_Runtime[104],_bBS_,_bBR_), - _bBU_=caml_call1(Runtime_ocaml_Runtime[31],cst_35382); - return caml_call2(Runtime_ocaml_Runtime[93],_bBU_,_bBT_); - default: - var _bBV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$228); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBV_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23455) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28138); - var - _bBW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$143), - _bBX_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBW_), - _bBY_=caml_call1(Runtime_ocaml_Runtime[69],_bBX_), - _bBZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_4684), - _bB0_=caml_call2(Runtime_ocaml_Runtime[104],_bBZ_,_bBY_), - _bB1_=caml_call1(Runtime_ocaml_Runtime[31],cst_32823); - return caml_call2(Runtime_ocaml_Runtime[93],_bB1_,_bB0_)}} - function _bBr_(param) - {switch(type_pret[0]) - {case 0:var _bBs_=0;break; - case 1:var _bBs_=1;break; - case 2:var _bBs_=0;break; - case 3:var _bBs_=0;break; - default:var _bBs_=0} - var - _bBt_=0 === anciennete_logement[0]?0:1, - _bBu_=caml_call2(Runtime_ocaml_Runtime[83],_bBt_,_bBs_), - _bBv_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bBw_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bBv_), - _bBx_=caml_call2(Runtime_ocaml_Runtime[83],_bBw_,_bBu_), - _bBy_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bBz_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bBy_), - _bBA_=caml_call2(Runtime_ocaml_Runtime[83],_bBz_,_bBx_), - _bBB_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bBC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBB_), - _bBD_=caml_call2(Runtime_ocaml_Runtime[83],_bBC_,_bBA_), - _bBE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bBF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bBE_), - _bBG_=caml_call2(Runtime_ocaml_Runtime[83],_bBF_,_bBD_); - return caml_call2(Runtime_ocaml_Runtime[29],_AK_,_bBG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AL_,[0],_bBr_,_bBq_)} - function _bov_(param) - {function _bAQ_(param) - {switch(zone[0]) - {case 0: - var _bA7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$229); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bA7_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_35002) - :caml_call1(Runtime_ocaml_Runtime[31],cst_42226); - var - _bA8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$144), - _bA9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bA8_), - _bA__=caml_call1(Runtime_ocaml_Runtime[69],_bA9_), - _bA$_=caml_call1(Runtime_ocaml_Runtime[31],cst_7223), - _bBa_=caml_call2(Runtime_ocaml_Runtime[104],_bA$_,_bA__), - _bBb_=caml_call1(Runtime_ocaml_Runtime[31],cst_49449); - return caml_call2(Runtime_ocaml_Runtime[93],_bBb_,_bBa_); - case 1: - var _bBc_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$230); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBc_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31236) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37596); - var - _bBd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$145), - _bBe_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBd_), - _bBf_=caml_call1(Runtime_ocaml_Runtime[69],_bBe_), - _bBg_=caml_call1(Runtime_ocaml_Runtime[31],cst_6360), - _bBh_=caml_call2(Runtime_ocaml_Runtime[104],_bBg_,_bBf_), - _bBi_=caml_call1(Runtime_ocaml_Runtime[31],cst_43957); - return caml_call2(Runtime_ocaml_Runtime[93],_bBi_,_bBh_); - default: - var _bBj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$231); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bBj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29161) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34966); - var - _bBk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$146), - _bBl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bBk_), - _bBm_=caml_call1(Runtime_ocaml_Runtime[69],_bBl_), - _bBn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5805), - _bBo_=caml_call2(Runtime_ocaml_Runtime[104],_bBn_,_bBm_), - _bBp_=caml_call1(Runtime_ocaml_Runtime[31],cst_40773); - return caml_call2(Runtime_ocaml_Runtime[93],_bBp_,_bBo_)}} - function _bAR_(param) - {switch(type_pret[0]) - {case 0:var _bAS_=0;break; - case 1:var _bAS_=1;break; - case 2:var _bAS_=0;break; - case 3:var _bAS_=0;break; - default:var _bAS_=0} - var - _bAT_=0 === anciennete_logement[0]?1:0, - _bAU_=caml_call2(Runtime_ocaml_Runtime[83],_bAT_,_bAS_), - _bAV_=caml_call3(Runtime_ocaml_Runtime[57],2009,12,31), - _bAW_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bAV_), - _bAX_=caml_call2(Runtime_ocaml_Runtime[83],_bAW_,_bAU_), - _bAY_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bAZ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bAY_), - _bA0_=caml_call2(Runtime_ocaml_Runtime[83],_bAZ_,_bAX_), - _bA1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bA2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bA1_), - _bA3_=caml_call2(Runtime_ocaml_Runtime[83],_bA2_,_bA0_), - _bA4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bA5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bA4_), - _bA6_=caml_call2(Runtime_ocaml_Runtime[83],_bA5_,_bA3_); - return caml_call2(Runtime_ocaml_Runtime[29],_AM_,_bA6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AN_,[0],_bAR_,_bAQ_)} - function _bow_(param) - {function _bAe_(param) - {switch(zone[0]) - {case 0: - var _bAv_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$232); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAv_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27367) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33026); - var - _bAw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$147), - _bAx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAw_), - _bAy_=caml_call1(Runtime_ocaml_Runtime[69],_bAx_), - _bAz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5659), - _bAA_=caml_call2(Runtime_ocaml_Runtime[104],_bAz_,_bAy_), - _bAB_=caml_call1(Runtime_ocaml_Runtime[31],cst_38685); - return caml_call2(Runtime_ocaml_Runtime[93],_bAB_,_bAA_); - case 1: - var _bAC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$233); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAC_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24396) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29382); - var - _bAD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$148), - _bAE_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAD_), - _bAF_=caml_call1(Runtime_ocaml_Runtime[69],_bAE_), - _bAG_=caml_call1(Runtime_ocaml_Runtime[31],cst_4986$0), - _bAH_=caml_call2(Runtime_ocaml_Runtime[104],_bAG_,_bAF_), - _bAI_=caml_call1(Runtime_ocaml_Runtime[31],cst_34368); - return caml_call2(Runtime_ocaml_Runtime[93],_bAI_,_bAH_); - default: - var _bAJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$234); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bAJ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22783) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27332); - var - _bAK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$149), - _bAL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bAK_), - _bAM_=caml_call1(Runtime_ocaml_Runtime[69],_bAL_), - _bAN_=caml_call1(Runtime_ocaml_Runtime[31],cst_4550), - _bAO_=caml_call2(Runtime_ocaml_Runtime[104],_bAN_,_bAM_), - _bAP_=caml_call1(Runtime_ocaml_Runtime[31],cst_31882); - return caml_call2(Runtime_ocaml_Runtime[93],_bAP_,_bAO_)}} - function _bAf_(param) - {switch(type_pret[0]) - {case 0:var _bAg_=0;break; - case 1:var _bAg_=1;break; - case 2:var _bAg_=0;break; - case 3:var _bAg_=0;break; - default:var _bAg_=0} - var - _bAh_=0 === anciennete_logement[0]?0:1, - _bAi_=caml_call2(Runtime_ocaml_Runtime[83],_bAh_,_bAg_), - _bAj_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bAk_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bAj_), - _bAl_=caml_call2(Runtime_ocaml_Runtime[83],_bAk_,_bAi_), - _bAm_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _bAn_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bAm_), - _bAo_=caml_call2(Runtime_ocaml_Runtime[83],_bAn_,_bAl_), - _bAp_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bAq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bAp_), - _bAr_=caml_call2(Runtime_ocaml_Runtime[83],_bAq_,_bAo_), - _bAs_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bAt_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bAs_), - _bAu_=caml_call2(Runtime_ocaml_Runtime[83],_bAt_,_bAr_); - return caml_call2(Runtime_ocaml_Runtime[29],_AO_,_bAu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AP_,[0],_bAf_,_bAe_)} - function _box_(param) - {function _bzE_(param) - {switch(zone[0]) - {case 0: - var _bzV_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$235); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzV_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33999) - :caml_call1(Runtime_ocaml_Runtime[31],cst_41016); - var - _bzW_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$150), - _bzX_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzW_), - _bzY_=caml_call1(Runtime_ocaml_Runtime[69],_bzX_), - _bzZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_7016), - _bz0_=caml_call2(Runtime_ocaml_Runtime[104],_bzZ_,_bzY_), - _bz1_=caml_call1(Runtime_ocaml_Runtime[31],cst_48032); - return caml_call2(Runtime_ocaml_Runtime[93],_bz1_,_bz0_); - case 1: - var _bz2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$236); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bz2_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30341) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36519); - var - _bz3_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$151), - _bz4_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bz3_), - _bz5_=caml_call1(Runtime_ocaml_Runtime[69],_bz4_), - _bz6_=caml_call1(Runtime_ocaml_Runtime[31],cst_6178), - _bz7_=caml_call2(Runtime_ocaml_Runtime[104],_bz6_,_bz5_), - _bz8_=caml_call1(Runtime_ocaml_Runtime[31],cst_42697); - return caml_call2(Runtime_ocaml_Runtime[93],_bz8_,_bz7_); - default: - var _bz9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$237); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bz9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28325) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33964); - var - _bz__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$152), - _bz$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bz__), - _bAa_=caml_call1(Runtime_ocaml_Runtime[69],_bz$_), - _bAb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5639), - _bAc_=caml_call2(Runtime_ocaml_Runtime[104],_bAb_,_bAa_), - _bAd_=caml_call1(Runtime_ocaml_Runtime[31],cst_39605); - return caml_call2(Runtime_ocaml_Runtime[93],_bAd_,_bAc_)}} - function _bzF_(param) - {switch(type_pret[0]) - {case 0:var _bzG_=0;break; - case 1:var _bzG_=1;break; - case 2:var _bzG_=0;break; - case 3:var _bzG_=0;break; - default:var _bzG_=0} - var - _bzH_=0 === anciennete_logement[0]?1:0, - _bzI_=caml_call2(Runtime_ocaml_Runtime[83],_bzH_,_bzG_), - _bzJ_=caml_call3(Runtime_ocaml_Runtime[57],2008,12,31), - _bzK_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bzJ_), - _bzL_=caml_call2(Runtime_ocaml_Runtime[83],_bzK_,_bzI_), - _bzM_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _bzN_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bzM_), - _bzO_=caml_call2(Runtime_ocaml_Runtime[83],_bzN_,_bzL_), - _bzP_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bzQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzP_), - _bzR_=caml_call2(Runtime_ocaml_Runtime[83],_bzQ_,_bzO_), - _bzS_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bzT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzS_), - _bzU_=caml_call2(Runtime_ocaml_Runtime[83],_bzT_,_bzR_); - return caml_call2(Runtime_ocaml_Runtime[29],_AQ_,_bzU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AR_,[0],_bzF_,_bzE_)} - function _boy_(param) - {function _by4_(param) - {switch(zone[0]) - {case 0: - var _bzj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$238); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzj_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26632) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32139); - var - _bzk_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$153), - _bzl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzk_), - _bzm_=caml_call1(Runtime_ocaml_Runtime[69],_bzl_), - _bzn_=caml_call1(Runtime_ocaml_Runtime[31],cst_5507), - _bzo_=caml_call2(Runtime_ocaml_Runtime[104],_bzn_,_bzm_), - _bzp_=caml_call1(Runtime_ocaml_Runtime[31],cst_37646); - return caml_call2(Runtime_ocaml_Runtime[93],_bzp_,_bzo_); - case 1: - var _bzq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$239); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzq_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23741) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28593); - var - _bzr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$154), - _bzs_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzr_), - _bzt_=caml_call1(Runtime_ocaml_Runtime[69],_bzs_), - _bzu_=caml_call1(Runtime_ocaml_Runtime[31],cst_4852), - _bzv_=caml_call2(Runtime_ocaml_Runtime[104],_bzu_,_bzt_), - _bzw_=caml_call1(Runtime_ocaml_Runtime[31],cst_33445); - return caml_call2(Runtime_ocaml_Runtime[93],_bzw_,_bzv_); - default: - var _bzx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$240); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bzx_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22171) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36598); - var - _bzy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$155), - _bzz_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bzy_), - _bzA_=caml_call1(Runtime_ocaml_Runtime[69],_bzz_), - _bzB_=caml_call1(Runtime_ocaml_Runtime[31],cst_4428), - _bzC_=caml_call2(Runtime_ocaml_Runtime[104],_bzB_,_bzA_), - _bzD_=caml_call1(Runtime_ocaml_Runtime[31],cst_31026); - return caml_call2(Runtime_ocaml_Runtime[93],_bzD_,_bzC_)}} - function _by5_(param) - {switch(type_pret[0]) - {case 0:var _by6_=0;break; - case 1:var _by6_=1;break; - case 2:var _by6_=0;break; - case 3:var _by6_=0;break; - default:var _by6_=0} - var - _by7_=0 === anciennete_logement[0]?0:1, - _by8_=caml_call2(Runtime_ocaml_Runtime[83],_by7_,_by6_), - _by9_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _by__= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_by9_), - _by$_=caml_call2(Runtime_ocaml_Runtime[83],_by__,_by8_), - _bza_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bzb_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bza_), - _bzc_=caml_call2(Runtime_ocaml_Runtime[83],_bzb_,_by$_), - _bzd_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bze_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzd_), - _bzf_=caml_call2(Runtime_ocaml_Runtime[83],_bze_,_bzc_), - _bzg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bzh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bzg_), - _bzi_=caml_call2(Runtime_ocaml_Runtime[83],_bzh_,_bzf_); - return caml_call2(Runtime_ocaml_Runtime[29],_AS_,_bzi_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AT_,[0],_by5_,_by4_)} - function _boz_(param) - {function _bys_(param) - {switch(zone[0]) - {case 0: - var _byJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$241); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byJ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_33086) - :caml_call1(Runtime_ocaml_Runtime[31],cst_39914); - var - _byK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$156), - _byL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byK_), - _byM_=caml_call1(Runtime_ocaml_Runtime[69],_byL_), - _byN_=caml_call1(Runtime_ocaml_Runtime[31],cst_6828), - _byO_=caml_call2(Runtime_ocaml_Runtime[104],_byN_,_byM_), - _byP_=caml_call1(Runtime_ocaml_Runtime[31],cst_46742); - return caml_call2(Runtime_ocaml_Runtime[93],_byP_,_byO_); - case 1: - var _byQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$242); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byQ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29526) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35538); - var - _byR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$157), - _byS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byR_), - _byT_=caml_call1(Runtime_ocaml_Runtime[69],_byS_), - _byU_=caml_call1(Runtime_ocaml_Runtime[31],cst_6012), - _byV_=caml_call2(Runtime_ocaml_Runtime[104],_byU_,_byT_), - _byW_=caml_call1(Runtime_ocaml_Runtime[31],cst_41550); - return caml_call2(Runtime_ocaml_Runtime[93],_byW_,_byV_); - default: - var _byX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$243); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27564) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33052); - var - _byY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$158), - _byZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byY_), - _by0_=caml_call1(Runtime_ocaml_Runtime[69],_byZ_), - _by1_=caml_call1(Runtime_ocaml_Runtime[31],cst_5488), - _by2_=caml_call2(Runtime_ocaml_Runtime[104],_by1_,_by0_), - _by3_=caml_call1(Runtime_ocaml_Runtime[31],cst_38541); - return caml_call2(Runtime_ocaml_Runtime[93],_by3_,_by2_)}} - function _byt_(param) - {switch(type_pret[0]) - {case 0:var _byu_=0;break; - case 1:var _byu_=1;break; - case 2:var _byu_=0;break; - case 3:var _byu_=0;break; - default:var _byu_=0} - var - _byv_=0 === anciennete_logement[0]?1:0, - _byw_=caml_call2(Runtime_ocaml_Runtime[83],_byv_,_byu_), - _byx_=caml_call3(Runtime_ocaml_Runtime[57],2007,12,31), - _byy_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_byx_), - _byz_=caml_call2(Runtime_ocaml_Runtime[83],_byy_,_byw_), - _byA_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _byB_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_byA_), - _byC_=caml_call2(Runtime_ocaml_Runtime[83],_byB_,_byz_), - _byD_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _byE_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_byD_), - _byF_=caml_call2(Runtime_ocaml_Runtime[83],_byE_,_byC_), - _byG_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _byH_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_byG_), - _byI_=caml_call2(Runtime_ocaml_Runtime[83],_byH_,_byF_); - return caml_call2(Runtime_ocaml_Runtime[29],_AU_,_byI_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AV_,[0],_byt_,_bys_)} - function _boA_(param) - {function _bxS_(param) - {switch(zone[0]) - {case 0: - var _bx9_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$244); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bx9_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25907) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31264); - var - _bx__=caml_call1(Runtime_ocaml_Runtime[46],cst_1$159), - _bx$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bx__), - _bya_=caml_call1(Runtime_ocaml_Runtime[69],_bx$_), - _byb_=caml_call1(Runtime_ocaml_Runtime[31],cst_5357), - _byc_=caml_call2(Runtime_ocaml_Runtime[104],_byb_,_bya_), - _byd_=caml_call1(Runtime_ocaml_Runtime[31],cst_36621); - return caml_call2(Runtime_ocaml_Runtime[93],_byd_,_byc_); - case 1: - var _bye_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$245); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bye_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23094) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27814); - var - _byf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$160), - _byg_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_byf_), - _byh_=caml_call1(Runtime_ocaml_Runtime[69],_byg_), - _byi_=caml_call1(Runtime_ocaml_Runtime[31],cst_4720), - _byj_=caml_call2(Runtime_ocaml_Runtime[104],_byi_,_byh_), - _byk_=caml_call1(Runtime_ocaml_Runtime[31],cst_32534); - return caml_call2(Runtime_ocaml_Runtime[93],_byk_,_byj_); - default: - var _byl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$246); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_byl_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21567) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25874); - var - _bym_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$161), - _byn_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bym_), - _byo_=caml_call1(Runtime_ocaml_Runtime[69],_byn_), - _byp_=caml_call1(Runtime_ocaml_Runtime[31],cst_4307), - _byq_=caml_call2(Runtime_ocaml_Runtime[104],_byp_,_byo_), - _byr_=caml_call1(Runtime_ocaml_Runtime[31],cst_30181); - return caml_call2(Runtime_ocaml_Runtime[93],_byr_,_byq_)}} - function _bxT_(param) - {switch(type_pret[0]) - {case 0:var _bxU_=0;break; - case 1:var _bxU_=1;break; - case 2:var _bxU_=0;break; - case 3:var _bxU_=0;break; - default:var _bxU_=0} - var - _bxV_=0 === anciennete_logement[0]?0:1, - _bxW_=caml_call2(Runtime_ocaml_Runtime[83],_bxV_,_bxU_), - _bxX_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bxY_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bxX_), - _bxZ_=caml_call2(Runtime_ocaml_Runtime[83],_bxY_,_bxW_), - _bx0_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bx1_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bx0_), - _bx2_=caml_call2(Runtime_ocaml_Runtime[83],_bx1_,_bxZ_), - _bx3_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bx4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bx3_), - _bx5_=caml_call2(Runtime_ocaml_Runtime[83],_bx4_,_bx2_), - _bx6_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bx7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bx6_), - _bx8_=caml_call2(Runtime_ocaml_Runtime[83],_bx7_,_bx5_); - return caml_call2(Runtime_ocaml_Runtime[29],_AW_,_bx8_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AX_,[0],_bxT_,_bxS_)} - function _boB_(param) - {function _bxg_(param) - {switch(zone[0]) - {case 0: - var _bxx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$247); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxx_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_32185) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38827); - var - _bxy_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$162), - _bxz_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxy_), - _bxA_=caml_call1(Runtime_ocaml_Runtime[69],_bxz_), - _bxB_=caml_call1(Runtime_ocaml_Runtime[31],cst_6642), - _bxC_=caml_call2(Runtime_ocaml_Runtime[104],_bxB_,_bxA_), - _bxD_=caml_call1(Runtime_ocaml_Runtime[31],cst_45469); - return caml_call2(Runtime_ocaml_Runtime[93],_bxD_,_bxC_); - case 1: - var _bxE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$248); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxE_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28722) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34570$0); - var - _bxF_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$163), - _bxG_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxF_), - _bxH_=caml_call1(Runtime_ocaml_Runtime[69],_bxG_), - _bxI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5848), - _bxJ_=caml_call2(Runtime_ocaml_Runtime[104],_bxI_,_bxH_), - _bxK_=caml_call1(Runtime_ocaml_Runtime[31],cst_40418); - return caml_call2(Runtime_ocaml_Runtime[93],_bxK_,_bxJ_); - default: - var _bxL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$249); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bxL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26813) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32152); - var - _bxM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$164), - _bxN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxM_), - _bxO_=caml_call1(Runtime_ocaml_Runtime[69],_bxN_), - _bxP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5339), - _bxQ_=caml_call2(Runtime_ocaml_Runtime[104],_bxP_,_bxO_), - _bxR_=caml_call1(Runtime_ocaml_Runtime[31],cst_37491); - return caml_call2(Runtime_ocaml_Runtime[93],_bxR_,_bxQ_)}} - function _bxh_(param) - {switch(type_pret[0]) - {case 0:var _bxi_=0;break; - case 1:var _bxi_=1;break; - case 2:var _bxi_=0;break; - case 3:var _bxi_=0;break; - default:var _bxi_=0} - var - _bxj_=0 === anciennete_logement[0]?1:0, - _bxk_=caml_call2(Runtime_ocaml_Runtime[83],_bxj_,_bxi_), - _bxl_=caml_call3(Runtime_ocaml_Runtime[57],2006,12,31), - _bxm_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bxl_), - _bxn_=caml_call2(Runtime_ocaml_Runtime[83],_bxm_,_bxk_), - _bxo_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bxp_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bxo_), - _bxq_=caml_call2(Runtime_ocaml_Runtime[83],_bxp_,_bxn_), - _bxr_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bxs_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bxr_), - _bxt_=caml_call2(Runtime_ocaml_Runtime[83],_bxs_,_bxq_), - _bxu_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bxv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bxu_), - _bxw_=caml_call2(Runtime_ocaml_Runtime[83],_bxv_,_bxt_); - return caml_call2(Runtime_ocaml_Runtime[29],_AY_,_bxw_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_AZ_,[0],_bxh_,_bxg_)} - function _boC_(param) - {function _bwG_(param) - {switch(zone[0]) - {case 0: - var _bwX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$250); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwX_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25449) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30711); - var - _bwY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$165), - _bwZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwY_), - _bw0_=caml_call1(Runtime_ocaml_Runtime[69],_bwZ_), - _bw1_=caml_call1(Runtime_ocaml_Runtime[31],cst_5262), - _bw2_=caml_call2(Runtime_ocaml_Runtime[104],_bw1_,_bw0_), - _bw3_=caml_call1(Runtime_ocaml_Runtime[31],cst_35973); - return caml_call2(Runtime_ocaml_Runtime[93],_bw3_,_bw2_); - case 1: - var _bw4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$251); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27323); - var - _bw5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$166), - _bw6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bw5_), - _bw7_=caml_call1(Runtime_ocaml_Runtime[69],_bw6_), - _bw8_=caml_call1(Runtime_ocaml_Runtime[31],cst_4637), - _bw9_=caml_call2(Runtime_ocaml_Runtime[104],_bw8_,_bw7_), - _bw__=caml_call1(Runtime_ocaml_Runtime[31],cst_31960); - return caml_call2(Runtime_ocaml_Runtime[93],_bw__,_bw9_); - default: - var _bw$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$252); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bw$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21186) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25417); - var - _bxa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$167), - _bxb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bxa_), - _bxc_=caml_call1(Runtime_ocaml_Runtime[69],_bxb_), - _bxd_=caml_call1(Runtime_ocaml_Runtime[31],cst_4231), - _bxe_=caml_call2(Runtime_ocaml_Runtime[104],_bxd_,_bxc_), - _bxf_=caml_call1(Runtime_ocaml_Runtime[31],cst_29648); - return caml_call2(Runtime_ocaml_Runtime[93],_bxf_,_bxe_)}} - function _bwH_(param) - {switch(type_pret[0]) - {case 0:var _bwI_=0;break; - case 1:var _bwI_=1;break; - case 2:var _bwI_=0;break; - case 3:var _bwI_=0;break; - default:var _bwI_=0} - var - _bwJ_=0 === anciennete_logement[0]?0:1, - _bwK_=caml_call2(Runtime_ocaml_Runtime[83],_bwJ_,_bwI_), - _bwL_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bwM_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bwL_), - _bwN_=caml_call2(Runtime_ocaml_Runtime[83],_bwM_,_bwK_), - _bwO_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bwP_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bwO_), - _bwQ_=caml_call2(Runtime_ocaml_Runtime[83],_bwP_,_bwN_), - _bwR_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bwS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwR_), - _bwT_=caml_call2(Runtime_ocaml_Runtime[83],_bwS_,_bwQ_), - _bwU_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bwV_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwU_), - _bwW_=caml_call2(Runtime_ocaml_Runtime[83],_bwV_,_bwT_); - return caml_call2(Runtime_ocaml_Runtime[29],_A0_,_bwW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A1_,[0],_bwH_,_bwG_)} - function _boD_(param) - {function _bv6_(param) - {switch(zone[0]) - {case 0: - var _bwl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$253); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwl_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31616) - :caml_call1(Runtime_ocaml_Runtime[31],cst_38141); - var - _bwm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$168), - _bwn_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwm_), - _bwo_=caml_call1(Runtime_ocaml_Runtime[69],_bwn_), - _bwp_=caml_call1(Runtime_ocaml_Runtime[31],cst_6525), - _bwq_=caml_call2(Runtime_ocaml_Runtime[104],_bwp_,_bwo_), - _bwr_=caml_call1(Runtime_ocaml_Runtime[31],cst_44666); - return caml_call2(Runtime_ocaml_Runtime[93],_bwr_,_bwq_); - case 1: - var _bws_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$254); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bws_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28214) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33959); - var - _bwt_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$169), - _bwu_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwt_), - _bwv_=caml_call1(Runtime_ocaml_Runtime[69],_bwu_), - _bww_=caml_call1(Runtime_ocaml_Runtime[31],cst_5745), - _bwx_=caml_call2(Runtime_ocaml_Runtime[104],_bww_,_bwv_), - _bwy_=caml_call1(Runtime_ocaml_Runtime[31],cst_39704); - return caml_call2(Runtime_ocaml_Runtime[93],_bwy_,_bwx_); - default: - var _bwz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$255); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bwz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26339) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31584); - var - _bwA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$170), - _bwB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bwA_), - _bwC_=caml_call1(Runtime_ocaml_Runtime[69],_bwB_), - _bwD_=caml_call1(Runtime_ocaml_Runtime[31],cst_5245), - _bwE_=caml_call2(Runtime_ocaml_Runtime[104],_bwD_,_bwC_), - _bwF_=caml_call1(Runtime_ocaml_Runtime[31],cst_36829); - return caml_call2(Runtime_ocaml_Runtime[93],_bwF_,_bwE_)}} - function _bv7_(param) - {switch(type_pret[0]) - {case 0:var _bv8_=0;break; - case 1:var _bv8_=1;break; - case 2:var _bv8_=0;break; - case 3:var _bv8_=0;break; - default:var _bv8_=0} - var - _bv9_=0 === anciennete_logement[0]?1:0, - _bv__=caml_call2(Runtime_ocaml_Runtime[83],_bv9_,_bv8_), - _bv$_=caml_call3(Runtime_ocaml_Runtime[57],2005,8,31), - _bwa_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bv$_), - _bwb_=caml_call2(Runtime_ocaml_Runtime[83],_bwa_,_bv__), - _bwc_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bwd_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bwc_), - _bwe_=caml_call2(Runtime_ocaml_Runtime[83],_bwd_,_bwb_), - _bwf_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bwg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwf_), - _bwh_=caml_call2(Runtime_ocaml_Runtime[83],_bwg_,_bwe_), - _bwi_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bwj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bwi_), - _bwk_=caml_call2(Runtime_ocaml_Runtime[83],_bwj_,_bwh_); - return caml_call2(Runtime_ocaml_Runtime[29],_A2_,_bwk_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A3_,[0],_bv7_,_bv6_)} - function _boE_(param) - {function _bvu_(param) - {switch(zone[0]) - {case 0: - var _bvL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$256); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvL_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25147) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30347); - var - _bvM_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$171), - _bvN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvM_), - _bvO_=caml_call1(Runtime_ocaml_Runtime[69],_bvN_), - _bvP_=caml_call1(Runtime_ocaml_Runtime[31],cst_5200), - _bvQ_=caml_call2(Runtime_ocaml_Runtime[104],_bvP_,_bvO_), - _bvR_=caml_call1(Runtime_ocaml_Runtime[31],cst_35547); - return caml_call2(Runtime_ocaml_Runtime[93],_bvR_,_bvQ_); - case 1: - var _bvS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$257); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22417) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26999); - var - _bvT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$172), - _bvU_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvT_), - _bvV_=caml_call1(Runtime_ocaml_Runtime[69],_bvU_), - _bvW_=caml_call1(Runtime_ocaml_Runtime[31],cst_4582), - _bvX_=caml_call2(Runtime_ocaml_Runtime[104],_bvW_,_bvV_), - _bvY_=caml_call1(Runtime_ocaml_Runtime[31],cst_31581); - return caml_call2(Runtime_ocaml_Runtime[93],_bvY_,_bvX_); - default: - var _bvZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$258); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvZ_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20935) - :caml_call1(Runtime_ocaml_Runtime[31],cst_25116$0); - var - _bv0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$173), - _bv1_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bv0_), - _bv2_=caml_call1(Runtime_ocaml_Runtime[69],_bv1_), - _bv3_=caml_call1(Runtime_ocaml_Runtime[31],cst_4181), - _bv4_=caml_call2(Runtime_ocaml_Runtime[104],_bv3_,_bv2_), - _bv5_=caml_call1(Runtime_ocaml_Runtime[31],cst_29297); - return caml_call2(Runtime_ocaml_Runtime[93],_bv5_,_bv4_)}} - function _bvv_(param) - {switch(type_pret[0]) - {case 0:var _bvw_=0;break; - case 1:var _bvw_=1;break; - case 2:var _bvw_=0;break; - case 3:var _bvw_=0;break; - default:var _bvw_=0} - var - _bvx_=0 === anciennete_logement[0]?0:1, - _bvy_=caml_call2(Runtime_ocaml_Runtime[83],_bvx_,_bvw_), - _bvz_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bvA_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bvz_), - _bvB_=caml_call2(Runtime_ocaml_Runtime[83],_bvA_,_bvy_), - _bvC_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bvD_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bvC_), - _bvE_=caml_call2(Runtime_ocaml_Runtime[83],_bvD_,_bvB_), - _bvF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bvG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvF_), - _bvH_=caml_call2(Runtime_ocaml_Runtime[83],_bvG_,_bvE_), - _bvI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bvJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bvI_), - _bvK_=caml_call2(Runtime_ocaml_Runtime[83],_bvJ_,_bvH_); - return caml_call2(Runtime_ocaml_Runtime[29],_A4_,_bvK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A5_,[0],_bvv_,_bvu_)} - function _boF_(param) - {function _buU_(param) - {switch(zone[0]) - {case 0: - var _bu$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$259); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bu$_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31241) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37689); - var - _bva_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$174), - _bvb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bva_), - _bvc_=caml_call1(Runtime_ocaml_Runtime[69],_bvb_), - _bvd_=caml_call1(Runtime_ocaml_Runtime[31],cst_6448), - _bve_=caml_call2(Runtime_ocaml_Runtime[104],_bvd_,_bvc_), - _bvf_=caml_call1(Runtime_ocaml_Runtime[31],cst_44137); - return caml_call2(Runtime_ocaml_Runtime[93],_bvf_,_bve_); - case 1: - var _bvg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$260); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvg_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27879) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33556); - var - _bvh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$175), - _bvi_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvh_), - _bvj_=caml_call1(Runtime_ocaml_Runtime[69],_bvi_), - _bvk_=caml_call1(Runtime_ocaml_Runtime[31],cst_5677), - _bvl_=caml_call2(Runtime_ocaml_Runtime[104],_bvk_,_bvj_), - _bvm_=caml_call1(Runtime_ocaml_Runtime[31],cst_39233); - return caml_call2(Runtime_ocaml_Runtime[93],_bvm_,_bvl_); - default: - var _bvn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$261); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bvn_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26027) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31210); - var - _bvo_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$176), - _bvp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bvo_), - _bvq_=caml_call1(Runtime_ocaml_Runtime[69],_bvp_), - _bvr_=caml_call1(Runtime_ocaml_Runtime[31],cst_5183), - _bvs_=caml_call2(Runtime_ocaml_Runtime[104],_bvr_,_bvq_), - _bvt_=caml_call1(Runtime_ocaml_Runtime[31],cst_36393); - return caml_call2(Runtime_ocaml_Runtime[93],_bvt_,_bvs_)}} - function _buV_(param) - {switch(type_pret[0]) - {case 0:var _buW_=0;break; - case 1:var _buW_=1;break; - case 2:var _buW_=0;break; - case 3:var _buW_=0;break; - default:var _buW_=0} - var - _buX_=0 === anciennete_logement[0]?1:0, - _buY_=caml_call2(Runtime_ocaml_Runtime[83],_buX_,_buW_), - _buZ_=caml_call3(Runtime_ocaml_Runtime[57],2003,6,30), - _bu0_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_buZ_), - _bu1_=caml_call2(Runtime_ocaml_Runtime[83],_bu0_,_buY_), - _bu2_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _bu3_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bu2_), - _bu4_=caml_call2(Runtime_ocaml_Runtime[83],_bu3_,_bu1_), - _bu5_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bu6_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bu5_), - _bu7_=caml_call2(Runtime_ocaml_Runtime[83],_bu6_,_bu4_), - _bu8_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bu9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bu8_), - _bu__=caml_call2(Runtime_ocaml_Runtime[83],_bu9_,_bu7_); - return caml_call2(Runtime_ocaml_Runtime[29],_A6_,_bu__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A7_,[0],_buV_,_buU_)} - function _boG_(param) - {function _bui_(param) - {switch(zone[0]) - {case 0: - var _buz_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$262); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buz_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24849) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29987); - var - _buA_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$177), - _buB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buA_), - _buC_=caml_call1(Runtime_ocaml_Runtime[69],_buB_), - _buD_=caml_call1(Runtime_ocaml_Runtime[31],cst_5138), - _buE_=caml_call2(Runtime_ocaml_Runtime[104],_buD_,_buC_), - _buF_=caml_call1(Runtime_ocaml_Runtime[31],cst_35125); - return caml_call2(Runtime_ocaml_Runtime[93],_buF_,_buE_); - case 1: - var _buG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$263); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buG_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22151) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26679); - var - _buH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$178), - _buI_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buH_), - _buJ_=caml_call1(Runtime_ocaml_Runtime[69],_buI_), - _buK_=caml_call1(Runtime_ocaml_Runtime[31],cst_4528), - _buL_=caml_call2(Runtime_ocaml_Runtime[104],_buK_,_buJ_), - _buM_=caml_call1(Runtime_ocaml_Runtime[31],cst_31207); - return caml_call2(Runtime_ocaml_Runtime[93],_buM_,_buL_); - default: - var _buN_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$264); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_buN_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20687) - :caml_call1(Runtime_ocaml_Runtime[31],cst_24818); - var - _buO_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$179), - _buP_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buO_), - _buQ_=caml_call1(Runtime_ocaml_Runtime[69],_buP_), - _buR_=caml_call1(Runtime_ocaml_Runtime[31],cst_4131), - _buS_=caml_call2(Runtime_ocaml_Runtime[104],_buR_,_buQ_), - _buT_=caml_call1(Runtime_ocaml_Runtime[31],cst_28949); - return caml_call2(Runtime_ocaml_Runtime[93],_buT_,_buS_)}} - function _buj_(param) - {switch(type_pret[0]) - {case 0:var _buk_=0;break; - case 1:var _buk_=1;break; - case 2:var _buk_=0;break; - case 3:var _buk_=0;break; - default:var _buk_=0} - var - _bul_=0 === anciennete_logement[0]?0:1, - _bum_=caml_call2(Runtime_ocaml_Runtime[83],_bul_,_buk_), - _bun_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _buo_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bun_), - _bup_=caml_call2(Runtime_ocaml_Runtime[83],_buo_,_bum_), - _buq_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _bur_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_buq_), - _bus_=caml_call2(Runtime_ocaml_Runtime[83],_bur_,_bup_), - _but_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _buu_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_but_), - _buv_=caml_call2(Runtime_ocaml_Runtime[83],_buu_,_bus_), - _buw_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bux_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_buw_), - _buy_=caml_call2(Runtime_ocaml_Runtime[83],_bux_,_buv_); - return caml_call2(Runtime_ocaml_Runtime[29],_A8_,_buy_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A9_,[0],_buj_,_bui_)} - function _boH_(param) - {function _btH_(param) - {switch(zone[0]) - {case 0: - var _btY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$265); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btY_)) - var - _btZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_163000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_196700); - else - var - _bt0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$180), - _bt1_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bt0_), - _bt2_=caml_call1(Runtime_ocaml_Runtime[69],_bt1_), - _bt3_=caml_call1(Runtime_ocaml_Runtime[31],cst_33700), - _bt4_=caml_call2(Runtime_ocaml_Runtime[104],_bt3_,_bt2_), - _bt5_=caml_call1(Runtime_ocaml_Runtime[31],cst_230400), - _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_bt5_,_bt4_); - break; - case 1: - var _bt6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$266); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bt6_)) - var - _btZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_145300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_175000); - else - var - _bt7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$181), - _bt8_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bt7_), - _bt9_=caml_call1(Runtime_ocaml_Runtime[69],_bt8_), - _bt__=caml_call1(Runtime_ocaml_Runtime[31],cst_29700), - _bt$_=caml_call2(Runtime_ocaml_Runtime[104],_bt__,_bt9_), - _bua_=caml_call1(Runtime_ocaml_Runtime[31],cst_204700), - _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_bua_,_bt$_); - break; - default: - var _bub_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$267); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bub_)) - var - _btZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_135700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_162800); - else - var - _buc_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$182), - _bud_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_buc_), - _bue_=caml_call1(Runtime_ocaml_Runtime[69],_bud_), - _buf_=caml_call1(Runtime_ocaml_Runtime[31],cst_27100), - _bug_=caml_call2(Runtime_ocaml_Runtime[104],_buf_,_bue_), - _buh_=caml_call1(Runtime_ocaml_Runtime[31],cst_189900), - _btZ_=caml_call2(Runtime_ocaml_Runtime[93],_buh_,_bug_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_btZ_,taux_francs_vers_euros)} - function _btI_(param) - {switch(type_pret[0]) - {case 0:var _btJ_=0;break; - case 1:var _btJ_=1;break; - case 2:var _btJ_=0;break; - case 3:var _btJ_=0;break; - default:var _btJ_=0} - var - _btK_=0 === anciennete_logement[0]?0:1, - _btL_=caml_call2(Runtime_ocaml_Runtime[83],_btK_,_btJ_), - _btM_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), - _btN_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_btM_), - _btO_=caml_call2(Runtime_ocaml_Runtime[83],_btN_,_btL_), - _btP_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _btQ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_btP_), - _btR_=caml_call2(Runtime_ocaml_Runtime[83],_btQ_,_btO_), - _btS_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _btT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btS_), - _btU_=caml_call2(Runtime_ocaml_Runtime[83],_btT_,_btR_), - _btV_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _btW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btV_), - _btX_=caml_call2(Runtime_ocaml_Runtime[83],_btW_,_btU_); - return caml_call2(Runtime_ocaml_Runtime[29],_A__,_btX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_A$_,[0],_btI_,_btH_)} - function _boI_(param) - {function _bs7_(param) - {switch(zone[0]) - {case 0: - var _btm_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$268); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btm_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30871) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37243); - var - _btn_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$183), - _bto_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btn_), - _btp_=caml_call1(Runtime_ocaml_Runtime[69],_bto_), - _btq_=caml_call1(Runtime_ocaml_Runtime[31],cst_6372), - _btr_=caml_call2(Runtime_ocaml_Runtime[104],_btq_,_btp_), - _bts_=caml_call1(Runtime_ocaml_Runtime[31],cst_43615); - return caml_call2(Runtime_ocaml_Runtime[93],_bts_,_btr_); - case 1: - var _btt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$269); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btt_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27548) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33148); - var - _btu_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$184), - _btv_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btu_), - _btw_=caml_call1(Runtime_ocaml_Runtime[69],_btv_), - _btx_=caml_call1(Runtime_ocaml_Runtime[31],cst_5610), - _bty_=caml_call2(Runtime_ocaml_Runtime[104],_btx_,_btw_), - _btz_=caml_call1(Runtime_ocaml_Runtime[31],cst_38768); - return caml_call2(Runtime_ocaml_Runtime[93],_btz_,_bty_); - default: - var _btA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$270); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_btA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25718) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30840); - var - _btB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$185), - _btC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_btB_), - _btD_=caml_call1(Runtime_ocaml_Runtime[69],_btC_), - _btE_=caml_call1(Runtime_ocaml_Runtime[31],cst_5122), - _btF_=caml_call2(Runtime_ocaml_Runtime[104],_btE_,_btD_), - _btG_=caml_call1(Runtime_ocaml_Runtime[31],cst_35962); - return caml_call2(Runtime_ocaml_Runtime[93],_btG_,_btF_)}} - function _bs8_(param) - {switch(type_pret[0]) - {case 0:var _bs9_=0;break; - case 1:var _bs9_=1;break; - case 2:var _bs9_=0;break; - case 3:var _bs9_=0;break; - default:var _bs9_=0} - var - _bs__=0 === anciennete_logement[0]?1:0, - _bs$_=caml_call2(Runtime_ocaml_Runtime[83],_bs__,_bs9_), - _bta_=caml_call3(Runtime_ocaml_Runtime[57],2002,6,30), - _btb_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bta_), - _btc_=caml_call2(Runtime_ocaml_Runtime[83],_btb_,_bs$_), - _btd_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _bte_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_btd_), - _btf_=caml_call2(Runtime_ocaml_Runtime[83],_bte_,_btc_), - _btg_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bth_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btg_), - _bti_=caml_call2(Runtime_ocaml_Runtime[83],_bth_,_btf_), - _btj_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _btk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_btj_), - _btl_=caml_call2(Runtime_ocaml_Runtime[83],_btk_,_bti_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ba_,_btl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bb_,[0],_bs8_,_bs7_)} - function _boJ_(param) - {function _bsu_(param) - {switch(zone[0]) - {case 0: - var _bsL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$271); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsL_)) - var - _bsM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_202500$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_244300); - else - var - _bsN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$186), - _bsO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsN_), - _bsP_=caml_call1(Runtime_ocaml_Runtime[69],_bsO_), - _bsQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_41800), - _bsR_=caml_call2(Runtime_ocaml_Runtime[104],_bsQ_,_bsP_), - _bsS_=caml_call1(Runtime_ocaml_Runtime[31],cst_286100), - _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bsS_,_bsR_); - break; - case 1: - var _bsT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$272); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsT_)) - var - _bsM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_180700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_217500); - else - var - _bsU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$187), - _bsV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsU_), - _bsW_=caml_call1(Runtime_ocaml_Runtime[69],_bsV_), - _bsX_=caml_call1(Runtime_ocaml_Runtime[31],cst_36800), - _bsY_=caml_call2(Runtime_ocaml_Runtime[104],_bsX_,_bsW_), - _bsZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_254300), - _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bsZ_,_bsY_); - break; - default: - var _bs0_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$273); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bs0_)) - var - _bsM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_168700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202300); - else - var - _bs1_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$188), - _bs2_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bs1_), - _bs3_=caml_call1(Runtime_ocaml_Runtime[69],_bs2_), - _bs4_=caml_call1(Runtime_ocaml_Runtime[31],cst_33600), - _bs5_=caml_call2(Runtime_ocaml_Runtime[104],_bs4_,_bs3_), - _bs6_=caml_call1(Runtime_ocaml_Runtime[31],cst_235900), - _bsM_=caml_call2(Runtime_ocaml_Runtime[93],_bs6_,_bs5_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bsM_,taux_francs_vers_euros)} - function _bsv_(param) - {switch(type_pret[0]) - {case 0:var _bsw_=0;break; - case 1:var _bsw_=1;break; - case 2:var _bsw_=0;break; - case 3:var _bsw_=0;break; - default:var _bsw_=0} - var - _bsx_=0 === anciennete_logement[0]?1:0, - _bsy_=caml_call2(Runtime_ocaml_Runtime[83],_bsx_,_bsw_), - _bsz_=caml_call3(Runtime_ocaml_Runtime[57],2001,12,31), - _bsA_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bsz_), - _bsB_=caml_call2(Runtime_ocaml_Runtime[83],_bsA_,_bsy_), - _bsC_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _bsD_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bsC_), - _bsE_=caml_call2(Runtime_ocaml_Runtime[83],_bsD_,_bsB_), - _bsF_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bsG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bsF_), - _bsH_=caml_call2(Runtime_ocaml_Runtime[83],_bsG_,_bsE_), - _bsI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bsJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bsI_), - _bsK_=caml_call2(Runtime_ocaml_Runtime[83],_bsJ_,_bsH_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bc_,_bsK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bd_,[0],_bsv_,_bsu_)} - function _boK_(param) - {function _brT_(param) - {switch(zone[0]) - {case 0: - var _br__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$274); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_br__)) - var - _br$_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_161100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_194400); - else - var - _bsa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$189), - _bsb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsa_), - _bsc_=caml_call1(Runtime_ocaml_Runtime[69],_bsb_), - _bsd_=caml_call1(Runtime_ocaml_Runtime[31],cst_33300), - _bse_=caml_call2(Runtime_ocaml_Runtime[104],_bsd_,_bsc_), - _bsf_=caml_call1(Runtime_ocaml_Runtime[31],cst_227700), - _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bsf_,_bse_); - break; - case 1: - var _bsg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$275); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsg_)) - var - _br$_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_143600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_172900); - else - var - _bsh_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$190), - _bsi_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bsh_), - _bsj_=caml_call1(Runtime_ocaml_Runtime[69],_bsi_), - _bsk_=caml_call1(Runtime_ocaml_Runtime[31],cst_29300), - _bsl_=caml_call2(Runtime_ocaml_Runtime[104],_bsk_,_bsj_), - _bsm_=caml_call1(Runtime_ocaml_Runtime[31],cst_202200), - _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bsm_,_bsl_); - break; - default: - var _bsn_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$276); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bsn_)) - var - _br$_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_134100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_160900); - else - var - _bso_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$191), - _bsp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bso_), - _bsq_=caml_call1(Runtime_ocaml_Runtime[69],_bsp_), - _bsr_=caml_call1(Runtime_ocaml_Runtime[31],cst_26800), - _bss_=caml_call2(Runtime_ocaml_Runtime[104],_bsr_,_bsq_), - _bst_=caml_call1(Runtime_ocaml_Runtime[31],cst_187700), - _br$_=caml_call2(Runtime_ocaml_Runtime[93],_bst_,_bss_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_br$_,taux_francs_vers_euros)} - function _brU_(param) - {switch(type_pret[0]) - {case 0:var _brV_=0;break; - case 1:var _brV_=1;break; - case 2:var _brV_=0;break; - case 3:var _brV_=0;break; - default:var _brV_=0} - var - _brW_=0 === anciennete_logement[0]?0:1, - _brX_=caml_call2(Runtime_ocaml_Runtime[83],_brW_,_brV_), - _brY_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), - _brZ_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_brY_), - _br0_=caml_call2(Runtime_ocaml_Runtime[83],_brZ_,_brX_), - _br1_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _br2_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_br1_), - _br3_=caml_call2(Runtime_ocaml_Runtime[83],_br2_,_br0_), - _br4_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _br5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_br4_), - _br6_=caml_call2(Runtime_ocaml_Runtime[83],_br5_,_br3_), - _br7_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _br8_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_br7_), - _br9_=caml_call2(Runtime_ocaml_Runtime[83],_br8_,_br6_); - return caml_call2(Runtime_ocaml_Runtime[29],_Be_,_br9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bf_,[0],_brU_,_brT_)} - function _boL_(param) - {function _brg_(param) - {switch(zone[0]) - {case 0: - var _brx_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$277); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brx_)) - var - _bry_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_200100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_141400); - else - var - _brz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$192), - _brA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brz_), - _brB_=caml_call1(Runtime_ocaml_Runtime[69],_brA_), - _brC_=caml_call1(Runtime_ocaml_Runtime[31],cst_41300), - _brD_=caml_call2(Runtime_ocaml_Runtime[104],_brC_,_brB_), - _brE_=caml_call1(Runtime_ocaml_Runtime[31],cst_182700), - _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brE_,_brD_); - break; - case 1: - var _brF_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$278); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brF_)) - var - _bry_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_178600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_215000); - else - var - _brG_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$193), - _brH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brG_), - _brI_=caml_call1(Runtime_ocaml_Runtime[69],_brH_), - _brJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_36400), - _brK_=caml_call2(Runtime_ocaml_Runtime[104],_brJ_,_brI_), - _brL_=caml_call1(Runtime_ocaml_Runtime[31],cst_251400), - _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brL_,_brK_); - break; - default: - var _brM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$279); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_brM_)) - var - _bry_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_166700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_199900); - else - var - _brN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$194), - _brO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_brN_), - _brP_=caml_call1(Runtime_ocaml_Runtime[69],_brO_), - _brQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_33200), - _brR_=caml_call2(Runtime_ocaml_Runtime[104],_brQ_,_brP_), - _brS_=caml_call1(Runtime_ocaml_Runtime[31],cst_233100), - _bry_=caml_call2(Runtime_ocaml_Runtime[93],_brS_,_brR_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bry_,taux_francs_vers_euros)} - function _brh_(param) - {switch(type_pret[0]) - {case 0:var _bri_=0;break; - case 1:var _bri_=1;break; - case 2:var _bri_=0;break; - case 3:var _bri_=0;break; - default:var _bri_=0} - var - _brj_=0 === anciennete_logement[0]?1:0, - _brk_=caml_call2(Runtime_ocaml_Runtime[83],_brj_,_bri_), - _brl_=caml_call3(Runtime_ocaml_Runtime[57],2001,6,30), - _brm_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_brl_), - _brn_=caml_call2(Runtime_ocaml_Runtime[83],_brm_,_brk_), - _bro_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _brp_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bro_), - _brq_=caml_call2(Runtime_ocaml_Runtime[83],_brp_,_brn_), - _brr_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _brs_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_brr_), - _brt_=caml_call2(Runtime_ocaml_Runtime[83],_brs_,_brq_), - _bru_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _brv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bru_), - _brw_=caml_call2(Runtime_ocaml_Runtime[83],_brv_,_brt_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bg_,_brw_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bh_,[0],_brh_,_brg_)} - function _boM_(param) - {function _bqF_(param) - {switch(zone[0]) - {case 0: - var _bqW_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$280); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqW_)) - var - _bqX_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_159500) - :caml_call1(Runtime_ocaml_Runtime[31],cst_192500); - else - var - _bqY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$195), - _bqZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqY_), - _bq0_=caml_call1(Runtime_ocaml_Runtime[69],_bqZ_), - _bq1_=caml_call1(Runtime_ocaml_Runtime[31],cst_33000), - _bq2_=caml_call2(Runtime_ocaml_Runtime[104],_bq1_,_bq0_), - _bq3_=caml_call1(Runtime_ocaml_Runtime[31],cst_225500), - _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_bq3_,_bq2_); - break; - case 1: - var _bq4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$281); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq4_)) - var - _bqX_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_142200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_171200); - else - var - _bq5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$196), - _bq6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bq5_), - _bq7_=caml_call1(Runtime_ocaml_Runtime[69],_bq6_), - _bq8_=caml_call1(Runtime_ocaml_Runtime[31],cst_29000), - _bq9_=caml_call2(Runtime_ocaml_Runtime[104],_bq8_,_bq7_), - _bq__=caml_call1(Runtime_ocaml_Runtime[31],cst_200200), - _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_bq__,_bq9_); - break; - default: - var _bq$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$282); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bq$_)) - var - _bqX_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_159300); - else - var - _bra_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$197), - _brb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bra_), - _brc_=caml_call1(Runtime_ocaml_Runtime[69],_brb_), - _brd_=caml_call1(Runtime_ocaml_Runtime[31],cst_26500), - _bre_=caml_call2(Runtime_ocaml_Runtime[104],_brd_,_brc_), - _brf_=caml_call1(Runtime_ocaml_Runtime[31],cst_185800$0), - _bqX_=caml_call2(Runtime_ocaml_Runtime[93],_brf_,_bre_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bqX_,taux_francs_vers_euros)} - function _bqG_(param) - {switch(type_pret[0]) - {case 0:var _bqH_=0;break; - case 1:var _bqH_=1;break; - case 2:var _bqH_=0;break; - case 3:var _bqH_=0;break; - default:var _bqH_=0} - var - _bqI_=0 === anciennete_logement[0]?0:1, - _bqJ_=caml_call2(Runtime_ocaml_Runtime[83],_bqI_,_bqH_), - _bqK_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bqL_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bqK_), - _bqM_=caml_call2(Runtime_ocaml_Runtime[83],_bqL_,_bqJ_), - _bqN_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bqO_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bqN_), - _bqP_=caml_call2(Runtime_ocaml_Runtime[83],_bqO_,_bqM_), - _bqQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bqR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqQ_), - _bqS_=caml_call2(Runtime_ocaml_Runtime[83],_bqR_,_bqP_), - _bqT_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bqU_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqT_), - _bqV_=caml_call2(Runtime_ocaml_Runtime[83],_bqU_,_bqS_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bi_,_bqV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bj_,[0],_bqG_,_bqF_)} - function _boN_(param) - {function _bp4_(param) - {switch(zone[0]) - {case 0: - var _bqj_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$283); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqj_)) - var - _bqk_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_198100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_239000); - else - var - _bql_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$198), - _bqm_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bql_), - _bqn_=caml_call1(Runtime_ocaml_Runtime[69],_bqm_), - _bqo_=caml_call1(Runtime_ocaml_Runtime[31],cst_40900), - _bqp_=caml_call2(Runtime_ocaml_Runtime[104],_bqo_,_bqn_), - _bqq_=caml_call1(Runtime_ocaml_Runtime[31],cst_279900), - _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqq_,_bqp_); - break; - case 1: - var _bqr_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$284); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqr_)) - var - _bqk_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_176800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_212800); - else - var - _bqs_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$199), - _bqt_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqs_), - _bqu_=caml_call1(Runtime_ocaml_Runtime[69],_bqt_), - _bqv_=caml_call1(Runtime_ocaml_Runtime[31],cst_36000), - _bqw_=caml_call2(Runtime_ocaml_Runtime[104],_bqv_,_bqu_), - _bqx_=caml_call1(Runtime_ocaml_Runtime[31],cst_248800), - _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqx_,_bqw_); - break; - default: - var _bqy_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$285); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bqy_)) - var - _bqk_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_165000) - :caml_call1(Runtime_ocaml_Runtime[31],cst_197900); - else - var - _bqz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$200), - _bqA_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bqz_), - _bqB_=caml_call1(Runtime_ocaml_Runtime[69],_bqA_), - _bqC_=caml_call1(Runtime_ocaml_Runtime[31],cst_32900), - _bqD_=caml_call2(Runtime_ocaml_Runtime[104],_bqC_,_bqB_), - _bqE_=caml_call1(Runtime_ocaml_Runtime[31],cst_230800), - _bqk_=caml_call2(Runtime_ocaml_Runtime[93],_bqE_,_bqD_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bqk_,taux_francs_vers_euros)} - function _bp5_(param) - {switch(type_pret[0]) - {case 0:var _bp6_=0;break; - case 1:var _bp6_=1;break; - case 2:var _bp6_=0;break; - case 3:var _bp6_=0;break; - default:var _bp6_=0} - var - _bp7_=0 === anciennete_logement[0]?1:0, - _bp8_=caml_call2(Runtime_ocaml_Runtime[83],_bp7_,_bp6_), - _bp9_=caml_call3(Runtime_ocaml_Runtime[57],2000,6,30), - _bp__= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bp9_), - _bp$_=caml_call2(Runtime_ocaml_Runtime[83],_bp__,_bp8_), - _bqa_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bqb_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bqa_), - _bqc_=caml_call2(Runtime_ocaml_Runtime[83],_bqb_,_bp$_), - _bqd_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bqe_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqd_), - _bqf_=caml_call2(Runtime_ocaml_Runtime[83],_bqe_,_bqc_), - _bqg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bqh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bqg_), - _bqi_=caml_call2(Runtime_ocaml_Runtime[83],_bqh_,_bqf_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bk_,_bqi_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bl_,[0],_bp5_,_bp4_)} - function _boO_(param) - {function _bpr_(param) - {switch(zone[0]) - {case 0: - var _bpI_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$286); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpI_)) - var - _bpJ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167800$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_202500$1); - else - var - _bpK_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$201), - _bpL_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpK_), - _bpM_=caml_call1(Runtime_ocaml_Runtime[69],_bpL_), - _bpN_=caml_call1(Runtime_ocaml_Runtime[31],cst_34700$0), - _bpO_=caml_call2(Runtime_ocaml_Runtime[104],_bpN_,_bpM_), - _bpP_=caml_call1(Runtime_ocaml_Runtime[31],cst_237200$0), - _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bpP_,_bpO_); - break; - case 1: - var _bpQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$287); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpQ_)) - var - _bpJ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_149600$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$0); - else - var - _bpR_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$202), - _bpS_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpR_), - _bpT_=caml_call1(Runtime_ocaml_Runtime[69],_bpS_), - _bpU_=caml_call1(Runtime_ocaml_Runtime[31],cst_30500$2), - _bpV_=caml_call2(Runtime_ocaml_Runtime[104],_bpU_,_bpT_), - _bpW_=caml_call1(Runtime_ocaml_Runtime[31],cst_210600$0), - _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bpW_,_bpV_); - break; - default: - var _bpX_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$288); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpX_)) - var - _bpJ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139700$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167600$0); - else - var - _bpY_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$203), - _bpZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpY_), - _bp0_=caml_call1(Runtime_ocaml_Runtime[69],_bpZ_), - _bp1_=caml_call1(Runtime_ocaml_Runtime[31],cst_27900$0), - _bp2_=caml_call2(Runtime_ocaml_Runtime[104],_bp1_,_bp0_), - _bp3_=caml_call1(Runtime_ocaml_Runtime[31],cst_195500$0), - _bpJ_=caml_call2(Runtime_ocaml_Runtime[93],_bp3_,_bp2_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bpJ_,taux_francs_vers_euros)} - function _bps_(param) - {switch(type_pret[0]) - {case 0:var _bpt_=0;break; - case 1:var _bpt_=1;break; - case 2:var _bpt_=0;break; - case 3:var _bpt_=0;break; - default:var _bpt_=0} - var - _bpu_=0 === anciennete_logement[0]?0:1, - _bpv_=caml_call2(Runtime_ocaml_Runtime[83],_bpu_,_bpt_), - _bpw_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bpx_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_bpw_), - _bpy_=caml_call2(Runtime_ocaml_Runtime[83],_bpx_,_bpv_), - _bpz_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bpA_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bpz_), - _bpB_=caml_call2(Runtime_ocaml_Runtime[83],_bpA_,_bpy_), - _bpC_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bpD_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpC_), - _bpE_=caml_call2(Runtime_ocaml_Runtime[83],_bpD_,_bpB_), - _bpF_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bpG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bpF_), - _bpH_=caml_call2(Runtime_ocaml_Runtime[83],_bpG_,_bpE_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bm_,_bpH_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bn_,[0],_bps_,_bpr_)} - var - _boP_= - [0, - function(param) - {function _boQ_(param) - {switch(zone[0]) - {case 0: - var _bo7_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$289); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bo7_)) - var - _bo8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_208500$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_251500$0); - else - var - _bo9_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$204), - _bo__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bo9_), - _bo$_=caml_call1(Runtime_ocaml_Runtime[69],_bo__), - _bpa_=caml_call1(Runtime_ocaml_Runtime[31],cst_43000$0), - _bpb_=caml_call2(Runtime_ocaml_Runtime[104],_bpa_,_bo$_), - _bpc_=caml_call1(Runtime_ocaml_Runtime[31],cst_294500$0), - _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpc_,_bpb_); - break; - case 1: - var _bpd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$290); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpd_)) - var - _bo8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_186000$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_223900$0); - else - var - _bpe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$205), - _bpf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpe_), - _bpg_=caml_call1(Runtime_ocaml_Runtime[69],_bpf_), - _bph_=caml_call1(Runtime_ocaml_Runtime[31],cst_37900$0), - _bpi_=caml_call2(Runtime_ocaml_Runtime[104],_bph_,_bpg_), - _bpj_=caml_call1(Runtime_ocaml_Runtime[31],cst_261800$0), - _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpj_,_bpi_); - break; - default: - var _bpk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$291); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bpk_)) - var - _bo8_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_173600$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_208200$0); - else - var - _bpl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$206), - _bpm_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bpl_), - _bpn_=caml_call1(Runtime_ocaml_Runtime[69],_bpm_), - _bpo_=caml_call1(Runtime_ocaml_Runtime[31],cst_34600), - _bpp_=caml_call2(Runtime_ocaml_Runtime[104],_bpo_,_bpn_), - _bpq_=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$0), - _bo8_=caml_call2(Runtime_ocaml_Runtime[93],_bpq_,_bpp_)} - return caml_call2 - (Runtime_ocaml_Runtime[104],_bo8_,taux_francs_vers_euros)} - function _boR_(param) - {switch(type_pret[0]) - {case 0:var _boS_=0;break; - case 1:var _boS_=1;break; - case 2:var _boS_=0;break; - case 3:var _boS_=0;break; - default:var _boS_=0} - var - _boT_=0 === anciennete_logement[0]?1:0, - _boU_=caml_call2(Runtime_ocaml_Runtime[83],_boT_,_boS_), - _boV_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _boW_= - caml_call2 - (Runtime_ocaml_Runtime[115],date_signature_pret,_boV_), - _boX_=caml_call2(Runtime_ocaml_Runtime[83],_boW_,_boU_), - _boY_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _boZ_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_boY_), - _bo0_=caml_call2(Runtime_ocaml_Runtime[83],_boZ_,_boX_), - _bo1_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bo2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bo1_), - _bo3_=caml_call2(Runtime_ocaml_Runtime[83],_bo2_,_bo0_), - _bo4_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bo5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bo4_), - _bo6_=caml_call2(Runtime_ocaml_Runtime[83],_bo5_,_bo3_); - return caml_call2(Runtime_ocaml_Runtime[29],_Bo_,_bo6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bp_,[0],_boR_,_boQ_)}, - _boO_, - _boN_, - _boM_, - _boL_, - _boK_, - _boJ_, - _boI_, - _boH_, - _boG_, - _boF_, - _boE_, - _boD_, - _boC_, - _boB_, - _boA_, - _boz_, - _boy_, - _box_, - _bow_, - _bov_, - _bou_, - _bot_, - _bos_, - _bor_, - _boq_, - _bop_, - _boo_, - _bon_, - _bom_, - _bol_, - _bok_, - _boj_, - _boi_, - _boh_, - _bog_, - _bof_, - _boe_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bq_,_boP_,_bod_,_boc_)} - function _bnM_(param){return 1} - var - _bnN_= - [0, - function(param) - {function _bnO_(param) - {var _bn6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$292); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bn6_)) - var - _bn7_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_86900) - :caml_call1(Runtime_ocaml_Runtime[31],cst_97100); - else - var - _bn8_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$207), - _bn9_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_bn8_), - _bn__=caml_call1(Runtime_ocaml_Runtime[69],_bn9_), - _bn$_=caml_call1(Runtime_ocaml_Runtime[31],cst_10200), - _boa_=caml_call2(Runtime_ocaml_Runtime[104],_bn$_,_bn__), - _bob_=caml_call1(Runtime_ocaml_Runtime[31],cst_107300), - _bn7_=caml_call2(Runtime_ocaml_Runtime[93],_bob_,_boa_); - return caml_call2 - (Runtime_ocaml_Runtime[104],_bn7_,taux_francs_vers_euros)} - function _bnP_(param) - {switch(type_pret[0]) - {case 0:var _bnQ_=0;break; - case 1:var _bnQ_=1;break; - case 2:var _bnQ_=0;break; - case 3:var _bnQ_=0;break; - default:var _bnQ_=0} - if(0 === anciennete_logement[0]) - var _bnR_=0; - else - var - ameliore_par_occupant=anciennete_logement[1], - _bn5_=0 === ameliore_par_occupant[0]?1:0, - _bnR_=_bn5_; - var - _bnS_=caml_call2(Runtime_ocaml_Runtime[83],_bnR_,_bnQ_), - _bnT_=caml_call3(Runtime_ocaml_Runtime[57],1994,11,27), - _bnU_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_bnT_), - _bnV_=caml_call2(Runtime_ocaml_Runtime[83],_bnU_,_bnS_), - _bnW_=caml_call3(Runtime_ocaml_Runtime[57],1992,6,30), - _bnX_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bnW_), - _bnY_=caml_call2(Runtime_ocaml_Runtime[83],_bnX_,_bnV_), - _bnZ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bn0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bnZ_), - _bn1_=caml_call2(Runtime_ocaml_Runtime[83],_bn0_,_bnY_), - _bn2_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bn3_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bn2_), - _bn4_=caml_call2(Runtime_ocaml_Runtime[83],_bn3_,_bn1_); - return caml_call2(Runtime_ocaml_Runtime[29],_Br_,_bn4_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bs_,[0],_bnP_,_bnO_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Bt_,_bnN_,_bnM_,_bnL_)}, - _bnH_], - _bnJ_=caml_call4(Runtime_ocaml_Runtime[63],_Bu_,_bnI_,_bnG_,_bnF_); - return _bnJ_} - catch(_bnK_) - {_bnK_ = caml_wrap_exception(_bnK_); - if(_bnK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_z5_]; - throw _bnK_}} - var - calcul_plafond_mensualite_d832= - caml_call3 - (Runtime_ocaml_Runtime[28],_Bv_,Runtime_ocaml_Runtime[10],_bky_); - try - {var - _bkz_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _bkA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Bx_,1)}, - _bkB_=caml_call4(Runtime_ocaml_Runtime[63],_By_,[0],_bkA_,_bkz_)} - catch(_bnE_) - {_bnE_ = caml_wrap_exception(_bnE_); - if(_bnE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Bw_]; - throw _bnE_} - var - n_nombre_parts_d832_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_Bz_,Runtime_ocaml_Runtime[15],_bkB_); - try - {var - _bkC_= - function(param) - {var - _bnD_= - caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83); - return caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies, - _bnD_) - ?caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_multiplicateur_d83) - :ressources_menage_arrondies}, - _bkD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_BB_,1)}, - _bkE_= - [0, - function(param) - {function _bnB_(param){return ressources_menage_arrondies} - function _bnC_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_BC_,situation_r822_11_13_17)} - return caml_call4(Runtime_ocaml_Runtime[63],_BD_,[0],_bnC_,_bnB_)}], - _bkF_=caml_call4(Runtime_ocaml_Runtime[63],_BE_,_bkE_,_bkD_,_bkC_)} - catch(_bnA_) - {_bnA_ = caml_wrap_exception(_bnA_); - if(_bnA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BA_]; - throw _bnA_} - var - ressources_menage_avec_d832_18= - caml_call3 - (Runtime_ocaml_Runtime[28],_BF_,Runtime_ocaml_Runtime[13],_bkF_); - function _bkG_(aide_finale) - {try - {var - _bnu_= - function(param) - {var - _bny_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$293), - _bnz_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10); - return caml_call2(Runtime_ocaml_Runtime[128],_bnz_,_bny_) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d832_10) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$294)}, - _bnv_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_BH_,1)}, - _bnw_=caml_call4(Runtime_ocaml_Runtime[63],_BI_,[0],_bnv_,_bnu_); - return _bnw_} - catch(_bnx_) - {_bnx_ = caml_wrap_exception(_bnx_); - if(_bnx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BG_]; - throw _bnx_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_BJ_,Runtime_ocaml_Runtime[10],_bkG_); - function _bkH_(allocation_mensuelle) - {try - {var - _bnk_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[98], - mensualite_principale, - allocation_mensuelle)}, - _bnl_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_BL_,1)}, - _bnm_= - [0, - function(param) - {function _bnp_(param) - {var - _bnt_= - caml_call2 + _bz__ = + function(param){ + var + _bAc_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _mZ_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bAd_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _m0_, + traitement_aide_finale_abattem), + _bAc_), + _bAe_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m1_, + Runtime_ocaml_Runtime[13], + _bAd_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _m2_, _bAe_), + _bAf_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m3_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _bAg_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _m4_, + contributions_sociales_dot_mon), + _bAf_), + _bAh_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _m5_, + Runtime_ocaml_Runtime[13], + _bAg_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _m6_, _bAh_), + _bAi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$0), + _bAj_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _bAk_ = caml_call2(Runtime_ocaml_Runtime[98], _bAj_, _bAi_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _bAk_), + _bAl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$93), + _bAm_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _bAm_, _bAl_) + ? caml_call2 (Runtime_ocaml_Runtime[93], - mensualite_principale, - montant_forfaitaire_charges_d8); - return caml_call2 - (Runtime_ocaml_Runtime[98],_bnt_,allocation_mensuelle)} - function _bnq_(param) - {var - _bnr_=caml_call3(Runtime_ocaml_Runtime[57],1999,6,30), - _bns_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_bnr_); - return caml_call2(Runtime_ocaml_Runtime[29],_BM_,_bns_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_BN_,[0],_bnq_,_bnp_)}], - _bnn_=caml_call4(Runtime_ocaml_Runtime[63],_BO_,_bnm_,_bnl_,_bnk_); - return _bnn_} - catch(_bno_) - {_bno_ = caml_wrap_exception(_bno_); - if(_bno_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BK_]; - throw _bno_}} + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$94); + }, + _bz$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _m7_, 1); + }, + _bAa_ = caml_call4(Runtime_ocaml_Runtime[63], _m8_, [0], _bz$_, _bz__); + return _bAa_; + } + catch(_bAb_){ + var _bz9_ = caml_wrap_exception(_bAb_); + if(_bz9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _mY_], 1); + throw caml_maybe_attach_backtrace(_bz9_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _m9_, Runtime_ocaml_Runtime[10], _bzO_); + try{ + var + _bzQ_ = + function(param){ + var + _bz7_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + equivalence_loyer_eligible, + equivalence_loyer_minimale), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[104], + _bz7_, + coefficient_prise_en_charge_d8$1), + _bz8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$95); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _bz8_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$96) + : aide_finale; + }, + _bzR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _m$_, 1); + }, + _bzS_ = caml_call4(Runtime_ocaml_Runtime[63], _na_, [0], _bzR_, _bzQ_); + } + catch(_bz6_){ + var _bzP_ = caml_wrap_exception(_bz6_); + if(_bzP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _m__], 1); + throw caml_maybe_attach_backtrace(_bzP_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _nb_, Runtime_ocaml_Runtime[13], _bzS_); + function _bzT_(aide_finale){ + try{ var - depense_nette_minimale_d832_10= + _bzZ_ = + function(param){ + var + _bz3_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nd_, + Runtime_ocaml_Runtime[13], + aide_finale), + _bz4_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ne_, + traitement_aide_finale_contrib), + _bz3_), + _bz5_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nf_, + Runtime_ocaml_Runtime[13], + _bz4_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ng_, _bz5_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d823_24) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$97) + : aide_finale$0; + }, + _bz0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nh_, 1); + }, + _bz1_ = caml_call4(Runtime_ocaml_Runtime[63], _ni_, [0], _bz0_, _bzZ_); + return _bz1_; + } + catch(_bz2_){ + var _bzY_ = caml_wrap_exception(_bz2_); + if(_bzY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nc_], 1); + throw caml_maybe_attach_backtrace(_bzY_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _nj_, Runtime_ocaml_Runtime[10], _bzT_); + try{ + var + _bzV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bzW_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bzV_); + } + catch(_bzX_){ + var _bzU_ = caml_wrap_exception(_bzX_); + if(_bzU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nk_], 1); + throw caml_maybe_attach_backtrace(_bzU_, 0); + } + if(_bzW_) + return [0, + coefficient_multiplicateur_d83, + coefficient_r_d832_25, + n_nombre_parts_d832_25$0, + equivalence_loyer_eligible, + plafond_equivalence_loyer_elig, + equivalence_loyer_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _nl_], 1); + } + function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ + var + mensualite_principale = calcul_aide_personnalisee_loge[1], + ressources_menage_arrondies = calcul_aide_personnalisee_loge[2], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge[3], + situation_familiale_calcul_apl = calcul_aide_personnalisee_loge[4], + type_travaux_logement = calcul_aide_personnalisee_loge[5], + date_signature_pret = calcul_aide_personnalisee_loge[6], + local_habite_premiere_fois_ben = calcul_aide_personnalisee_loge[7], + date_entree_logement = calcul_aide_personnalisee_loge[8], + copropriete = calcul_aide_personnalisee_loge[9], + situation_r822_11_13_17 = calcul_aide_personnalisee_loge[10], + zone = calcul_aide_personnalisee_loge[11], + type_pret = calcul_aide_personnalisee_loge[12], + anciennete_logement = calcul_aide_personnalisee_loge[13], + date_courante = calcul_aide_personnalisee_loge[14]; + try{ + var + _a3__ = + function(param){ + var + _bx6_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957), + _bx7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$51); + return caml_call2(Runtime_ocaml_Runtime[107], _bx7_, _bx6_); + }, + _a3$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nn_, 1); + }, + _a4a_ = caml_call4(Runtime_ocaml_Runtime[63], _no_, [0], _a3$_, _a3__); + } + catch(_bx5_){ + var _a39_ = caml_wrap_exception(_bx5_); + if(_a39_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nm_], 1); + throw caml_maybe_attach_backtrace(_a39_, 0); + } + var + taux_francs_vers_euros = + caml_call3 + (Runtime_ocaml_Runtime[28], _np_, Runtime_ocaml_Runtime[15], _a4a_); + try{ + var + _a4c_ = function(param){return nombre_personnes_a_charge;}, + _a4d_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nr_, 1); + }, + _a4e_ = caml_call4(Runtime_ocaml_Runtime[63], _ns_, [0], _a4d_, _a4c_), + calcul_nombre_parts_dot_nombre = caml_call3 - (Runtime_ocaml_Runtime[28],_BP_,Runtime_ocaml_Runtime[10],_bkH_); - try - {var - _bkI_= - function(param) - {var - _bnh_= + (Runtime_ocaml_Runtime[28], _nt_, Runtime_ocaml_Runtime[14], _a4e_); + } + catch(_bx4_){ + var _a4b_ = caml_wrap_exception(_bx4_); + if(_a4b_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nq_], 1); + throw caml_maybe_attach_backtrace(_a4b_, 0); + } + try{ + var + _a4g_ = function(param){return situation_familiale_calcul_apl;}, + _a4h_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nv_, 1); + }, + _a4i_ = caml_call4(Runtime_ocaml_Runtime[63], _nw_, [0], _a4h_, _a4g_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _nx_, + embed_situation_familiale_calc, + _a4i_); + } + catch(_bx3_){ + var _a4f_ = caml_wrap_exception(_bx3_); + if(_a4f_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nu_], 1); + throw caml_maybe_attach_backtrace(_a4f_, 0); + } + var + _a4j_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _ny_, calcul_nombre_parts_accession_), + [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _nz_, _a4j_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _a4l_ = function(param){return date_courante;}, + _a4m_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _nB_, 1); + }, + _a4n_ = caml_call4(Runtime_ocaml_Runtime[63], _nC_, [0], _a4m_, _a4l_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _nD_, Runtime_ocaml_Runtime[16], _a4n_); + } + catch(_bx2_){ + var _a4k_ = caml_wrap_exception(_bx2_); + if(_a4k_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nA_], 1); + throw caml_maybe_attach_backtrace(_a4k_, 0); + } + var + _a4o_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _nE_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _nF_, _a4o_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _a4q_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_416); + }, + _a4r_ = + function(param){ + var + _bx0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bx1_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bx0_); + return caml_call2(Runtime_ocaml_Runtime[29], _nH_, _bx1_); + }, + _a4s_ = caml_call4(Runtime_ocaml_Runtime[63], _nI_, [0], _a4r_, _a4q_); + } + catch(_bxZ_){ + var _a4p_ = caml_wrap_exception(_bxZ_); + if(_a4p_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nG_], 1); + throw caml_maybe_attach_backtrace(_a4p_, 0); + } + var + taux_tranche_superieure_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nJ_, Runtime_ocaml_Runtime[15], _a4s_); + try{ + var + _a4u_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_208$0); + }, + _a4v_ = + function(param){ + var + _bxX_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxY_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxX_); + return caml_call2(Runtime_ocaml_Runtime[29], _nL_, _bxY_); + }, + _a4w_ = caml_call4(Runtime_ocaml_Runtime[63], _nM_, [0], _a4v_, _a4u_); + } + catch(_bxW_){ + var _a4t_ = caml_wrap_exception(_bxW_); + if(_a4t_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nK_], 1); + throw caml_maybe_attach_backtrace(_a4t_, 0); + } + var + taux_tranche_inferieure_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nN_, Runtime_ocaml_Runtime[15], _a4w_); + try{ + var + _a4y_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_560085); + }, + _a4z_ = + function(param){ + var + _bxU_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxV_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxU_); + return caml_call2(Runtime_ocaml_Runtime[29], _nP_, _bxV_); + }, + _a4A_ = caml_call4(Runtime_ocaml_Runtime[63], _nQ_, [0], _a4z_, _a4y_); + } + catch(_bxT_){ + var _a4x_ = caml_wrap_exception(_bxT_); + if(_a4x_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nO_], 1); + throw caml_maybe_attach_backtrace(_a4x_, 0); + } + var + montant_limite_tranches_d832_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nR_, Runtime_ocaml_Runtime[13], _a4A_); + try{ + var + _a4C_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25); + }, + _a4D_ = + function(param){ + var + _bxR_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxS_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxR_); + return caml_call2(Runtime_ocaml_Runtime[29], _nT_, _bxS_); + }, + _a4E_ = caml_call4(Runtime_ocaml_Runtime[63], _nU_, [0], _a4D_, _a4C_); + } + catch(_bxQ_){ + var _a4B_ = caml_wrap_exception(_bxQ_); + if(_a4B_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nS_], 1); + throw caml_maybe_attach_backtrace(_a4B_, 0); + } + var + coefficient_multiplicateur_d83 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nV_, Runtime_ocaml_Runtime[15], _a4E_); + try{ + var + _a4G_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_2211133); + }, + _a4H_ = + function(param){ + var + _bxO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxP_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxO_); + return caml_call2(Runtime_ocaml_Runtime[29], _nX_, _bxP_); + }, + _a4I_ = caml_call4(Runtime_ocaml_Runtime[63], _nY_, [0], _a4H_, _a4G_); + } + catch(_bxN_){ + var _a4F_ = caml_wrap_exception(_bxN_); + if(_a4F_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _nW_], 1); + throw caml_maybe_attach_backtrace(_a4F_, 0); + } + var + coefficient_multiplicateur_d83$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _nZ_, Runtime_ocaml_Runtime[13], _a4I_); + try{ + var + _a4K_ = + function(param){ + if(0 === anciennete_logement[0]){ + var _bxL_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); + return caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _bxL_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234); + } + var ameliore_par_occupant = anciennete_logement[1]; + if(0 === ameliore_par_occupant[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0172); + var _bxM_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 10, 1); + return caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _bxM_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_0226$0) + : caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$0); + }, + _a4L_ = + function(param){ + var + _bxJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxK_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _n1_, _bxK_); + }, + _a4M_ = caml_call4(Runtime_ocaml_Runtime[63], _n2_, [0], _a4L_, _a4K_); + } + catch(_bxI_){ + var _a4J_ = caml_wrap_exception(_bxI_); + if(_a4J_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n0_], 1); + throw caml_maybe_attach_backtrace(_a4J_, 0); + } + var + coefficient_multiplicateur_d83$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n3_, Runtime_ocaml_Runtime[15], _a4M_); + try{ + var + _a4O_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$2); + }, + _a4P_ = + function(param){ + var + _bxG_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxH_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxG_); + return caml_call2(Runtime_ocaml_Runtime[29], _n5_, _bxH_); + }, + _a4Q_ = caml_call4(Runtime_ocaml_Runtime[63], _n6_, [0], _a4P_, _a4O_); + } + catch(_bxF_){ + var _a4N_ = caml_wrap_exception(_bxF_); + if(_a4N_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n4_], 1); + throw caml_maybe_attach_backtrace(_a4N_, 0); + } + var + montant_minimal_aide_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n7_, Runtime_ocaml_Runtime[13], _a4Q_); + try{ + var + _a4S_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$1); + }, + _a4T_ = + function(param){ + var + _bxD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bxE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxD_); + return caml_call2(Runtime_ocaml_Runtime[29], _n9_, _bxE_); + }, + _a4U_ = caml_call4(Runtime_ocaml_Runtime[63], _n__, [0], _a4T_, _a4S_); + } + catch(_bxC_){ + var _a4R_ = caml_wrap_exception(_bxC_); + if(_a4R_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _n8_], 1); + throw caml_maybe_attach_backtrace(_a4R_, 0); + } + var + montant_forfaitaire_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _n$_, Runtime_ocaml_Runtime[13], _a4U_); + try{ + var + _a4W_ = + function(param){ + function _bw5_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bw6_(param){return 0;} + function _bw7_(param){ + function _bxr_(param){ + var + _bxy_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$1), + _bxA_ = caml_call2(Runtime_ocaml_Runtime[104], _bxz_, _bxy_), + _bxB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bxB_, _bxA_); + } + function _bxs_(param){ + var + _bxt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bxu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxt_), + _bxv_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bxw_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxv_), + _bxx_ = caml_call2(Runtime_ocaml_Runtime[83], _bxw_, _bxu_); + return caml_call2(Runtime_ocaml_Runtime[29], _ob_, _bxx_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oc_, [0], _bxs_, _bxr_); + } + function _bw8_(param){ + function _bxg_(param){ + var + _bxn_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$1), + _bxp_ = caml_call2(Runtime_ocaml_Runtime[104], _bxo_, _bxn_), + _bxq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bxq_, _bxp_); + } + function _bxh_(param){ + var + _bxi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bxj_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bxi_), + _bxk_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bxl_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxk_), + _bxm_ = caml_call2(Runtime_ocaml_Runtime[83], _bxl_, _bxj_); + return caml_call2(Runtime_ocaml_Runtime[29], _od_, _bxm_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oe_, [0], _bxh_, _bxg_); + } + var + _bw9_ = + [0, + function(param){ + function _bw__(param){ + var + _bxc_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bxd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$1), + _bxe_ = caml_call2(Runtime_ocaml_Runtime[104], _bxd_, _bxc_), + _bxf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$1); + return caml_call2(Runtime_ocaml_Runtime[93], _bxf_, _bxe_); + } + function _bw$_(param){ + var + _bxa_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bxb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bxa_); + return caml_call2(Runtime_ocaml_Runtime[29], _of_, _bxb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _og_, [0], _bw$_, _bw__); + }, + _bw8_, + _bw7_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oh_, _bw9_, _bw6_, _bw5_); + }, + _a4X_ = function(param){return 1;}, + _a4Y_ = + [0, + function(param){ + function _bwt_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bwu_(param){return 0;} + function _bwv_(param){ + function _bwT_(param){ + var + _bw1_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bw2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$2), + _bw3_ = caml_call2(Runtime_ocaml_Runtime[104], _bw2_, _bw1_), + _bw4_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bw4_, _bw3_); + } + function _bwU_(param){ + var + _bwV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bwW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwV_), + _bwX_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bwY_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bwX_), + _bwZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bwY_, _bwW_), + _bw0_ = caml_call2(Runtime_ocaml_Runtime[83], _bwZ_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _oi_, _bw0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oj_, [0], _bwU_, _bwT_); + } + function _bww_(param){ + function _bwH_(param){ + var + _bwP_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bwQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$2), + _bwR_ = caml_call2(Runtime_ocaml_Runtime[104], _bwQ_, _bwP_), + _bwS_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bwS_, _bwR_); + } + function _bwI_(param){ + var + _bwJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bwK_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _bwJ_), + _bwL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _bwM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwL_), + _bwN_ = caml_call2(Runtime_ocaml_Runtime[83], _bwM_, _bwK_), + _bwO_ = caml_call2(Runtime_ocaml_Runtime[83], _bwN_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _ok_, _bwO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ol_, [0], _bwI_, _bwH_); + } + var + _bwx_ = + [0, + function(param){ + function _bwy_(param){ + var + _bwD_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _bwE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$2), + _bwF_ = caml_call2(Runtime_ocaml_Runtime[104], _bwE_, _bwD_), + _bwG_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$2); + return caml_call2(Runtime_ocaml_Runtime[93], _bwG_, _bwF_); + } + function _bwz_(param){ + var + _bwA_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _bwB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bwA_), + _bwC_ = + caml_call2(Runtime_ocaml_Runtime[83], _bwB_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _om_, _bwC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _on_, [0], _bwz_, _bwy_); + }, + _bww_, + _bwv_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oo_, _bwx_, _bwu_, _bwt_); + }], + _a4Z_ = caml_call4(Runtime_ocaml_Runtime[63], _op_, _a4Y_, _a4X_, _a4W_); + } + catch(_bws_){ + var _a4V_ = caml_wrap_exception(_bws_); + if(_a4V_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _oa_], 1); + throw caml_maybe_attach_backtrace(_a4V_, 0); + } + var + montant_forfaitaire_charges_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _oq_, Runtime_ocaml_Runtime[13], _a4Z_); + function _a40_(date_signature_pret){ + try{ + var + _a8r_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a8s_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _os_, 0); + }, + _a8t_ = + function(param){ + function _buc_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _bud_(param){return 0;} + function _bue_(param){ + function _bvX_(param){ + switch(zone[0]){ + case 0: + var _bv8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bv8_)) + var + _bv9_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_148100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_178700); + else + var + _bv__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$52), + _bv$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bv__), + _bwa_ = caml_call1(Runtime_ocaml_Runtime[69], _bv$_), + _bwb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30600), + _bwc_ = caml_call2(Runtime_ocaml_Runtime[104], _bwb_, _bwa_), + _bwd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_209300), + _bv9_ = caml_call2(Runtime_ocaml_Runtime[93], _bwd_, _bwc_); + break; + case 1: + var _bwe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwe_)) + var + _bv9_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_158900); + else + var + _bwf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$53), + _bwg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bwf_), + _bwh_ = caml_call1(Runtime_ocaml_Runtime[69], _bwg_), + _bwi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26900), + _bwj_ = caml_call2(Runtime_ocaml_Runtime[104], _bwi_, _bwh_), + _bwk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800), + _bv9_ = caml_call2(Runtime_ocaml_Runtime[93], _bwk_, _bwj_); + break; + default: + var _bwl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bwl_)) + var + _bv9_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_123300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_147900); + else + var + _bwm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$54), + _bwn_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bwm_), + _bwo_ = caml_call1(Runtime_ocaml_Runtime[69], _bwn_), + _bwp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_24600), + _bwq_ = caml_call2(Runtime_ocaml_Runtime[104], _bwp_, _bwo_), + _bwr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172500), + _bv9_ = caml_call2(Runtime_ocaml_Runtime[93], _bwr_, _bwq_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bv9_, taux_francs_vers_euros); + } + function _bvY_(param){ + switch(type_pret[0]){ + case 0: + var _bvZ_ = 1; break; + case 1: + var _bvZ_ = 0; break; + case 2: + var _bvZ_ = 0; break; + case 3: + var _bvZ_ = 0; break; + default: var _bvZ_ = 0; + } + var + _bv0_ = 0 === anciennete_logement[0] ? 0 : 1, + _bv1_ = caml_call2(Runtime_ocaml_Runtime[83], _bv0_, _bvZ_), + _bv2_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bv3_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bv2_), + _bv4_ = caml_call2(Runtime_ocaml_Runtime[83], _bv3_, _bv1_), + _bv5_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bv6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bv5_), + _bv7_ = caml_call2(Runtime_ocaml_Runtime[83], _bv6_, _bv4_); + return caml_call2(Runtime_ocaml_Runtime[29], _ot_, _bv7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ou_, [0], _bvY_, _bvX_); + } + function _buf_(param){ + function _bvq_(param){ + switch(zone[0]){ + case 0: + var _bvB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$101); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvB_)) + var + _bvC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_184000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_220000); + else + var + _bvD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$55), + _bvE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvD_), + _bvF_ = caml_call1(Runtime_ocaml_Runtime[69], _bvE_), + _bvG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38000), + _bvH_ = caml_call2(Runtime_ocaml_Runtime[104], _bvG_, _bvF_), + _bvI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_260000), + _bvC_ = caml_call2(Runtime_ocaml_Runtime[93], _bvI_, _bvH_); + break; + case 1: + var _bvJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvJ_)) + var + _bvC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_164200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_197700); + else + var + _bvK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$56), + _bvL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvK_), + _bvM_ = caml_call1(Runtime_ocaml_Runtime[69], _bvL_), + _bvN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33500), + _bvO_ = caml_call2(Runtime_ocaml_Runtime[104], _bvN_, _bvM_), + _bvP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231200), + _bvC_ = caml_call2(Runtime_ocaml_Runtime[93], _bvP_, _bvO_); + break; + default: + var _bvQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$103); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvQ_)) + var + _bvC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_153200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_183700); + else + var + _bvR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$57), + _bvS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvR_), + _bvT_ = caml_call1(Runtime_ocaml_Runtime[69], _bvS_), + _bvU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$0), + _bvV_ = caml_call2(Runtime_ocaml_Runtime[104], _bvU_, _bvT_), + _bvW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214200), + _bvC_ = caml_call2(Runtime_ocaml_Runtime[93], _bvW_, _bvV_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bvC_, taux_francs_vers_euros); + } + function _bvr_(param){ + switch(type_pret[0]){ + case 0: + var _bvs_ = 1; break; + case 1: + var _bvs_ = 0; break; + case 2: + var _bvs_ = 0; break; + case 3: + var _bvs_ = 0; break; + default: var _bvs_ = 0; + } + var + _bvt_ = 0 === anciennete_logement[0] ? 1 : 0, + _bvu_ = caml_call2(Runtime_ocaml_Runtime[83], _bvt_, _bvs_), + _bvv_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _bvw_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bvv_), + _bvx_ = caml_call2(Runtime_ocaml_Runtime[83], _bvw_, _bvu_), + _bvy_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bvz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bvy_), + _bvA_ = caml_call2(Runtime_ocaml_Runtime[83], _bvz_, _bvx_); + return caml_call2(Runtime_ocaml_Runtime[29], _ov_, _bvA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ow_, [0], _bvr_, _bvq_); + } + function _bug_(param){ + function _buS_(param){ + switch(zone[0]){ + case 0: + var _bu6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bu6_)) + var + _bu7_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202500); + else + var + _bu8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$58), + _bu9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bu8_), + _bu__ = caml_call1(Runtime_ocaml_Runtime[69], _bu9_), + _bu$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700), + _bva_ = caml_call2(Runtime_ocaml_Runtime[104], _bu$_, _bu__), + _bvb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200), + _bu7_ = caml_call2(Runtime_ocaml_Runtime[93], _bvb_, _bva_); + break; + case 1: + var _bvc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$105); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvc_)) + var + _bu7_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100); + else + var + _bvd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$59), + _bve_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvd_), + _bvf_ = caml_call1(Runtime_ocaml_Runtime[69], _bve_), + _bvg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$1), + _bvh_ = caml_call2(Runtime_ocaml_Runtime[104], _bvg_, _bvf_), + _bvi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600), + _bu7_ = caml_call2(Runtime_ocaml_Runtime[93], _bvi_, _bvh_); + break; + default: + var _bvj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bvj_)) + var + _bu7_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167600); + else + var + _bvk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$60), + _bvl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bvk_), + _bvm_ = caml_call1(Runtime_ocaml_Runtime[69], _bvl_), + _bvn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900), + _bvo_ = caml_call2(Runtime_ocaml_Runtime[104], _bvn_, _bvm_), + _bvp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500), + _bu7_ = caml_call2(Runtime_ocaml_Runtime[93], _bvp_, _bvo_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bu7_, taux_francs_vers_euros); + } + function _buT_(param){ + switch(type_pret[0]){ + case 0: + var _buU_ = 1; break; + case 1: + var _buU_ = 0; break; + case 2: + var _buU_ = 0; break; + case 3: + var _buU_ = 0; break; + default: var _buU_ = 0; + } + var + _buV_ = 0 === anciennete_logement[0] ? 0 : 1, + _buW_ = caml_call2(Runtime_ocaml_Runtime[83], _buV_, _buU_), + _buX_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _buY_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _buX_), + _buZ_ = caml_call2(Runtime_ocaml_Runtime[83], _buY_, _buW_), + _bu0_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _bu1_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bu0_), + _bu2_ = caml_call2(Runtime_ocaml_Runtime[83], _bu1_, _buZ_), + _bu3_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bu4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bu3_), + _bu5_ = caml_call2(Runtime_ocaml_Runtime[83], _bu4_, _bu2_); + return caml_call2(Runtime_ocaml_Runtime[29], _ox_, _bu5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oy_, [0], _buT_, _buS_); + } + var + _buh_ = + [0, + function(param){ + function _bui_(param){ + switch(zone[0]){ + case 0: + var + _buw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$107); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buw_)) + var + _bux_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_251500); + else + var + _buy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$61), + _buz_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _buy_), + _buA_ = caml_call1(Runtime_ocaml_Runtime[69], _buz_), + _buB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000), + _buC_ = caml_call2(Runtime_ocaml_Runtime[104], _buB_, _buA_), + _buD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500), + _bux_ = caml_call2(Runtime_ocaml_Runtime[93], _buD_, _buC_); + break; + case 1: + var + _buE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buE_)) + var + _bux_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_223900); + else + var + _buF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$62), + _buG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _buF_), + _buH_ = caml_call1(Runtime_ocaml_Runtime[69], _buG_), + _buI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900), + _buJ_ = caml_call2(Runtime_ocaml_Runtime[104], _buI_, _buH_), + _buK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800), + _bux_ = caml_call2(Runtime_ocaml_Runtime[93], _buK_, _buJ_); + break; + default: + var + _buL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$109); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _buL_)) + var + _bux_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_208200); + else + var + _buM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$63), + _buN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _buM_), + _buO_ = caml_call1(Runtime_ocaml_Runtime[69], _buN_), + _buP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35600), + _buQ_ = caml_call2(Runtime_ocaml_Runtime[104], _buP_, _buO_), + _buR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800), + _bux_ = caml_call2(Runtime_ocaml_Runtime[93], _buR_, _buQ_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bux_, taux_francs_vers_euros); + } + function _buj_(param){ + switch(type_pret[0]){ + case 0: + var _buk_ = 1; break; + case 1: + var _buk_ = 0; break; + case 2: + var _buk_ = 0; break; + case 3: + var _buk_ = 0; break; + default: var _buk_ = 0; + } + var + _bul_ = 0 === anciennete_logement[0] ? 1 : 0, + _bum_ = caml_call2(Runtime_ocaml_Runtime[83], _bul_, _buk_), + _bun_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _buo_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bun_), + _bup_ = caml_call2(Runtime_ocaml_Runtime[83], _buo_, _bum_), + _buq_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _bur_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _buq_), + _bus_ = caml_call2(Runtime_ocaml_Runtime[83], _bur_, _bup_), + _but_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _buu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _but_), + _buv_ = caml_call2(Runtime_ocaml_Runtime[83], _buu_, _bus_); + return caml_call2(Runtime_ocaml_Runtime[29], _oz_, _buv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oA_, [0], _buj_, _bui_); + }, + _bug_, + _buf_, + _bue_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _oB_, _buh_, _bud_, _buc_); + }, + _a8u_ = + [0, + function(param){ + function _a8x_(param){ + function _a80_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _a81_(param){return 0;} + function _a82_(param){ + function _btF_(param){ + switch(zone[0]){ + case 0: + var _btT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29986) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36187); + var + _btU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$64), + _btV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btU_), + _btW_ = caml_call1(Runtime_ocaml_Runtime[69], _btV_), + _btX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6201), + _btY_ = caml_call2(Runtime_ocaml_Runtime[104], _btX_, _btW_), + _btZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42386); + return caml_call2(Runtime_ocaml_Runtime[93], _btZ_, _btY_); + case 1: + var _bt0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$111); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bt0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26730) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32193); + var + _bt1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$65), + _bt2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bt1_), + _bt3_ = caml_call1(Runtime_ocaml_Runtime[69], _bt2_), + _bt4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5463), + _bt5_ = caml_call2(Runtime_ocaml_Runtime[104], _bt4_, _bt3_), + _bt6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37656); + return caml_call2(Runtime_ocaml_Runtime[93], _bt6_, _bt5_); + default: + var _bt7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bt7_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24964) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29948); + var + _bt8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$66), + _bt9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bt8_), + _bt__ = caml_call1(Runtime_ocaml_Runtime[69], _bt9_), + _bt$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986), + _bua_ = caml_call2(Runtime_ocaml_Runtime[104], _bt$_, _bt__), + _bub_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34934); + return caml_call2(Runtime_ocaml_Runtime[93], _bub_, _bua_); + } + } + function _btG_(param){ + switch(type_pret[0]){ + case 0: + var _btH_ = 0; break; + case 1: + var _btH_ = 1; break; + case 2: + var _btH_ = 0; break; + case 3: + var _btH_ = 0; break; + default: var _btH_ = 0; + } + var + _btI_ = 0 === anciennete_logement[0] ? 0 : 1, + _btJ_ = caml_call2(Runtime_ocaml_Runtime[83], _btI_, _btH_), + _btK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _btL_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _btK_), + _btM_ = caml_call2(Runtime_ocaml_Runtime[83], _btL_, _btJ_), + _btN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _btO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btN_), + _btP_ = caml_call2(Runtime_ocaml_Runtime[83], _btO_, _btM_), + _btQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _btR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _btQ_), + _btS_ = caml_call2(Runtime_ocaml_Runtime[83], _btR_, _btP_); + return caml_call2(Runtime_ocaml_Runtime[29], _oC_, _btS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oD_, [0], _btG_, _btF_); + } + function _a83_(param){ + function _bs8_(param){ + switch(zone[0]){ + case 0: + var _btk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$113); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_37252) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44941); + var + _btl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$67), + _btm_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btl_), + _btn_ = caml_call1(Runtime_ocaml_Runtime[69], _btm_), + _bto_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7687), + _btp_ = caml_call2(Runtime_ocaml_Runtime[104], _bto_, _btn_), + _btq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52629); + return caml_call2(Runtime_ocaml_Runtime[93], _btq_, _btp_); + case 1: + var _btr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _btr_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33244) + : caml_call1(Runtime_ocaml_Runtime[31], cst_40013); + var + _bts_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$68), + _btt_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bts_), + _btu_ = caml_call1(Runtime_ocaml_Runtime[69], _btt_), + _btv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6768), + _btw_ = caml_call2(Runtime_ocaml_Runtime[104], _btv_, _btu_), + _btx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46783); + return caml_call2(Runtime_ocaml_Runtime[93], _btx_, _btw_); + default: + var _bty_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$115); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bty_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31036) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37215); + var + _btz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$69), + _btA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _btz_), + _btB_ = caml_call1(Runtime_ocaml_Runtime[69], _btA_), + _btC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6179), + _btD_ = caml_call2(Runtime_ocaml_Runtime[104], _btC_, _btB_), + _btE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43394); + return caml_call2(Runtime_ocaml_Runtime[93], _btE_, _btD_); + } + } + function _bs9_(param){ + switch(type_pret[0]){ + case 0: + var _bs__ = 0; break; + case 1: + var _bs__ = 1; break; + case 2: + var _bs__ = 0; break; + case 3: + var _bs__ = 0; break; + default: var _bs__ = 0; + } + var + _bs$_ = 0 === anciennete_logement[0] ? 1 : 0, + _bta_ = caml_call2(Runtime_ocaml_Runtime[83], _bs$_, _bs__), + _btb_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _btc_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _btb_), + _btd_ = caml_call2(Runtime_ocaml_Runtime[83], _btc_, _bta_), + _bte_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _btf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bte_), + _btg_ = caml_call2(Runtime_ocaml_Runtime[83], _btf_, _btd_), + _bth_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bti_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bth_), + _btj_ = caml_call2(Runtime_ocaml_Runtime[83], _bti_, _btg_); + return caml_call2(Runtime_ocaml_Runtime[29], _oE_, _btj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oF_, [0], _bs9_, _bs8_); + } + function _a84_(param){ + function _bsw_(param){ + switch(zone[0]){ + case 0: + var _bsN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$116); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsN_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29897) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36079); + var + _bsO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$70), + _bsP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsO_), + _bsQ_ = caml_call1(Runtime_ocaml_Runtime[69], _bsP_), + _bsR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6182), + _bsS_ = caml_call2(Runtime_ocaml_Runtime[104], _bsR_, _bsQ_), + _bsT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42260); + return caml_call2(Runtime_ocaml_Runtime[93], _bsT_, _bsS_); + case 1: + var _bsU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$117); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26650) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32097); + var + _bsV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$71), + _bsW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsV_), + _bsX_ = caml_call1(Runtime_ocaml_Runtime[69], _bsW_), + _bsY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5447), + _bsZ_ = caml_call2(Runtime_ocaml_Runtime[104], _bsY_, _bsX_), + _bs0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37543); + return caml_call2(Runtime_ocaml_Runtime[93], _bs0_, _bsZ_); + default: + var _bs1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$118); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bs1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24889) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29858); + var + _bs2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$72), + _bs3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bs2_), + _bs4_ = caml_call1(Runtime_ocaml_Runtime[69], _bs3_), + _bs5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4971), + _bs6_ = caml_call2(Runtime_ocaml_Runtime[104], _bs5_, _bs4_), + _bs7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34829); + return caml_call2(Runtime_ocaml_Runtime[93], _bs7_, _bs6_); + } + } + function _bsx_(param){ + switch(type_pret[0]){ + case 0: + var _bsy_ = 0; break; + case 1: + var _bsy_ = 1; break; + case 2: + var _bsy_ = 0; break; + case 3: + var _bsy_ = 0; break; + default: var _bsy_ = 0; + } + var + _bsz_ = 0 === anciennete_logement[0] ? 0 : 1, + _bsA_ = caml_call2(Runtime_ocaml_Runtime[83], _bsz_, _bsy_), + _bsB_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _bsC_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bsB_), + _bsD_ = caml_call2(Runtime_ocaml_Runtime[83], _bsC_, _bsA_), + _bsE_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _bsF_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bsE_), + _bsG_ = caml_call2(Runtime_ocaml_Runtime[83], _bsF_, _bsD_), + _bsH_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bsI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bsH_), + _bsJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bsI_, _bsG_), + _bsK_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bsL_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bsK_), + _bsM_ = caml_call2(Runtime_ocaml_Runtime[83], _bsL_, _bsJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _oG_, _bsM_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oH_, [0], _bsx_, _bsw_); + } + function _a85_(param){ + function _brW_(param){ + switch(zone[0]){ + case 0: + var _bsb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$119); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsb_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_37140) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44807); + var + _bsc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$73), + _bsd_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsc_), + _bse_ = caml_call1(Runtime_ocaml_Runtime[69], _bsd_), + _bsf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7664), + _bsg_ = caml_call2(Runtime_ocaml_Runtime[104], _bsf_, _bse_), + _bsh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52472); + return caml_call2(Runtime_ocaml_Runtime[93], _bsh_, _bsg_); + case 1: + var _bsi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$120); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsi_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33145) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39893); + var + _bsj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$74), + _bsk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsj_), + _bsl_ = caml_call1(Runtime_ocaml_Runtime[69], _bsk_), + _bsm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6748), + _bsn_ = caml_call2(Runtime_ocaml_Runtime[104], _bsm_, _bsl_), + _bso_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46643); + return caml_call2(Runtime_ocaml_Runtime[93], _bso_, _bsn_); + default: + var _bsp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$121); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bsp_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30943) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37103); + var + _bsq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$75), + _bsr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bsq_), + _bss_ = caml_call1(Runtime_ocaml_Runtime[69], _bsr_), + _bst_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6161), + _bsu_ = caml_call2(Runtime_ocaml_Runtime[104], _bst_, _bss_), + _bsv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43264); + return caml_call2(Runtime_ocaml_Runtime[93], _bsv_, _bsu_); + } + } + function _brX_(param){ + switch(type_pret[0]){ + case 0: + var _brY_ = 0; break; + case 1: + var _brY_ = 1; break; + case 2: + var _brY_ = 0; break; + case 3: + var _brY_ = 0; break; + default: var _brY_ = 0; + } + var + _brZ_ = 0 === anciennete_logement[0] ? 1 : 0, + _br0_ = caml_call2(Runtime_ocaml_Runtime[83], _brZ_, _brY_), + _br1_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 9, 30), + _br2_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _br1_), + _br3_ = caml_call2(Runtime_ocaml_Runtime[83], _br2_, _br0_), + _br4_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _br5_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _br4_), + _br6_ = caml_call2(Runtime_ocaml_Runtime[83], _br5_, _br3_), + _br7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _br8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _br7_), + _br9_ = caml_call2(Runtime_ocaml_Runtime[83], _br8_, _br6_), + _br__ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _br$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _br__), + _bsa_ = caml_call2(Runtime_ocaml_Runtime[83], _br$_, _br9_); + return caml_call2(Runtime_ocaml_Runtime[29], _oI_, _bsa_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oJ_, [0], _brX_, _brW_); + } + function _a86_(param){ + function _brk_(param){ + switch(zone[0]){ + case 0: + var _brB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$122); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brB_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29674) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35810); + var + _brC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$76), + _brD_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brC_), + _brE_ = caml_call1(Runtime_ocaml_Runtime[69], _brD_), + _brF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6136), + _brG_ = caml_call2(Runtime_ocaml_Runtime[104], _brF_, _brE_), + _brH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41945); + return caml_call2(Runtime_ocaml_Runtime[93], _brH_, _brG_); + case 1: + var _brI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$123); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26452) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31858); + var + _brJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$77), + _brK_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brJ_), + _brL_ = caml_call1(Runtime_ocaml_Runtime[69], _brK_), + _brM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5406), + _brN_ = caml_call2(Runtime_ocaml_Runtime[104], _brM_, _brL_), + _brO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37264); + return caml_call2(Runtime_ocaml_Runtime[93], _brO_, _brN_); + default: + var _brP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$124); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brP_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24704) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29636); + var + _brQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$78), + _brR_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _brQ_), + _brS_ = caml_call1(Runtime_ocaml_Runtime[69], _brR_), + _brT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4934), + _brU_ = caml_call2(Runtime_ocaml_Runtime[104], _brT_, _brS_), + _brV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34570); + return caml_call2(Runtime_ocaml_Runtime[93], _brV_, _brU_); + } + } + function _brl_(param){ + switch(type_pret[0]){ + case 0: + var _brm_ = 0; break; + case 1: + var _brm_ = 1; break; + case 2: + var _brm_ = 0; break; + case 3: + var _brm_ = 0; break; + default: var _brm_ = 0; + } + var + _brn_ = 0 === anciennete_logement[0] ? 0 : 1, + _bro_ = caml_call2(Runtime_ocaml_Runtime[83], _brn_, _brm_), + _brp_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _brq_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _brp_), + _brr_ = caml_call2(Runtime_ocaml_Runtime[83], _brq_, _bro_), + _brs_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _brt_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _brs_), + _bru_ = caml_call2(Runtime_ocaml_Runtime[83], _brt_, _brr_), + _brv_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _brw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _brv_), + _brx_ = caml_call2(Runtime_ocaml_Runtime[83], _brw_, _bru_), + _bry_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _brz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bry_), + _brA_ = caml_call2(Runtime_ocaml_Runtime[83], _brz_, _brx_); + return caml_call2(Runtime_ocaml_Runtime[29], _oK_, _brA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oL_, [0], _brl_, _brk_); + } + function _a87_(param){ + function _bqK_(param){ + switch(zone[0]){ + case 0: + var _bq1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$125); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bq1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36864) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44473); + var + _bq2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$79), + _bq3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bq2_), + _bq4_ = caml_call1(Runtime_ocaml_Runtime[69], _bq3_), + _bq5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7607), + _bq6_ = caml_call2(Runtime_ocaml_Runtime[104], _bq5_, _bq4_), + _bq7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52081); + return caml_call2(Runtime_ocaml_Runtime[93], _bq7_, _bq6_); + case 1: + var _bq8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$126); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bq8_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32898) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39596); + var + _bq9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$80), + _bq__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bq9_), + _bq$_ = caml_call1(Runtime_ocaml_Runtime[69], _bq__), + _bra_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6698), + _brb_ = caml_call2(Runtime_ocaml_Runtime[104], _bra_, _bq$_), + _brc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46296); + return caml_call2(Runtime_ocaml_Runtime[93], _brc_, _brb_); + default: + var _brd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$127); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _brd_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30713) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36827); + var + _bre_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$81), + _brf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bre_), + _brg_ = caml_call1(Runtime_ocaml_Runtime[69], _brf_), + _brh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6115), + _bri_ = caml_call2(Runtime_ocaml_Runtime[104], _brh_, _brg_), + _brj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42942); + return caml_call2(Runtime_ocaml_Runtime[93], _brj_, _bri_); + } + } + function _bqL_(param){ + switch(type_pret[0]){ + case 0: + var _bqM_ = 0; break; + case 1: + var _bqM_ = 1; break; + case 2: + var _bqM_ = 0; break; + case 3: + var _bqM_ = 0; break; + default: var _bqM_ = 0; + } + var + _bqN_ = 0 === anciennete_logement[0] ? 1 : 0, + _bqO_ = caml_call2(Runtime_ocaml_Runtime[83], _bqN_, _bqM_), + _bqP_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 9, 30), + _bqQ_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bqP_), + _bqR_ = caml_call2(Runtime_ocaml_Runtime[83], _bqQ_, _bqO_), + _bqS_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bqT_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bqS_), + _bqU_ = caml_call2(Runtime_ocaml_Runtime[83], _bqT_, _bqR_), + _bqV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bqW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqV_), + _bqX_ = caml_call2(Runtime_ocaml_Runtime[83], _bqW_, _bqU_), + _bqY_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bqZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqY_), + _bq0_ = caml_call2(Runtime_ocaml_Runtime[83], _bqZ_, _bqX_); + return caml_call2(Runtime_ocaml_Runtime[29], _oM_, _bq0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oN_, [0], _bqL_, _bqK_); + } + function _a88_(param){ + function _bp__(param){ + switch(zone[0]){ + case 0: + var _bqp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$128); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqp_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29650) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35781); + var + _bqq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$82), + _bqr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqq_), + _bqs_ = caml_call1(Runtime_ocaml_Runtime[69], _bqr_), + _bqt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6131), + _bqu_ = caml_call2(Runtime_ocaml_Runtime[104], _bqt_, _bqs_), + _bqv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41911); + return caml_call2(Runtime_ocaml_Runtime[93], _bqv_, _bqu_); + case 1: + var _bqw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$129); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26431) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31833); + var + _bqx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$83), + _bqy_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqx_), + _bqz_ = caml_call1(Runtime_ocaml_Runtime[69], _bqy_), + _bqA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5402), + _bqB_ = caml_call2(Runtime_ocaml_Runtime[104], _bqA_, _bqz_), + _bqC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37234); + return caml_call2(Runtime_ocaml_Runtime[93], _bqC_, _bqB_); + default: + var _bqD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$130); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bqD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24684) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29612); + var + _bqE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$84), + _bqF_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bqE_), + _bqG_ = caml_call1(Runtime_ocaml_Runtime[69], _bqF_), + _bqH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4930), + _bqI_ = caml_call2(Runtime_ocaml_Runtime[104], _bqH_, _bqG_), + _bqJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34542); + return caml_call2(Runtime_ocaml_Runtime[93], _bqJ_, _bqI_); + } + } + function _bp$_(param){ + switch(type_pret[0]){ + case 0: + var _bqa_ = 0; break; + case 1: + var _bqa_ = 1; break; + case 2: + var _bqa_ = 0; break; + case 3: + var _bqa_ = 0; break; + default: var _bqa_ = 0; + } + var + _bqb_ = 0 === anciennete_logement[0] ? 0 : 1, + _bqc_ = caml_call2(Runtime_ocaml_Runtime[83], _bqb_, _bqa_), + _bqd_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bqe_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bqd_), + _bqf_ = caml_call2(Runtime_ocaml_Runtime[83], _bqe_, _bqc_), + _bqg_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bqh_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bqg_), + _bqi_ = caml_call2(Runtime_ocaml_Runtime[83], _bqh_, _bqf_), + _bqj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bqk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqj_), + _bql_ = caml_call2(Runtime_ocaml_Runtime[83], _bqk_, _bqi_), + _bqm_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bqn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bqm_), + _bqo_ = caml_call2(Runtime_ocaml_Runtime[83], _bqn_, _bql_); + return caml_call2(Runtime_ocaml_Runtime[29], _oO_, _bqo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oP_, [0], _bp$_, _bp__); + } + function _a89_(param){ + function _bpy_(param){ + switch(zone[0]){ + case 0: + var _bpP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$131); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpP_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36835) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44437); + var + _bpQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$85), + _bpR_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpQ_), + _bpS_ = caml_call1(Runtime_ocaml_Runtime[69], _bpR_), + _bpT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7601), + _bpU_ = caml_call2(Runtime_ocaml_Runtime[104], _bpT_, _bpS_), + _bpV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_52039); + return caml_call2(Runtime_ocaml_Runtime[93], _bpV_, _bpU_); + case 1: + var _bpW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$132); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpW_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39564); + var + _bpX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$86), + _bpY_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpX_), + _bpZ_ = caml_call1(Runtime_ocaml_Runtime[69], _bpY_), + _bp0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6693), + _bp1_ = caml_call2(Runtime_ocaml_Runtime[104], _bp0_, _bpZ_), + _bp2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46259); + return caml_call2(Runtime_ocaml_Runtime[93], _bp2_, _bp1_); + default: + var _bp3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$133); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bp3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30688) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36798); + var + _bp4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$87), + _bp5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bp4_), + _bp6_ = caml_call1(Runtime_ocaml_Runtime[69], _bp5_), + _bp7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6110), + _bp8_ = caml_call2(Runtime_ocaml_Runtime[104], _bp7_, _bp6_), + _bp9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42908); + return caml_call2(Runtime_ocaml_Runtime[93], _bp9_, _bp8_); + } + } + function _bpz_(param){ + switch(type_pret[0]){ + case 0: + var _bpA_ = 0; break; + case 1: + var _bpA_ = 1; break; + case 2: + var _bpA_ = 0; break; + case 3: + var _bpA_ = 0; break; + default: var _bpA_ = 0; + } + var + _bpB_ = 0 === anciennete_logement[0] ? 1 : 0, + _bpC_ = caml_call2(Runtime_ocaml_Runtime[83], _bpB_, _bpA_), + _bpD_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 9, 30), + _bpE_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bpD_), + _bpF_ = caml_call2(Runtime_ocaml_Runtime[83], _bpE_, _bpC_), + _bpG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bpH_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bpG_), + _bpI_ = caml_call2(Runtime_ocaml_Runtime[83], _bpH_, _bpF_), + _bpJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bpK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpJ_), + _bpL_ = caml_call2(Runtime_ocaml_Runtime[83], _bpK_, _bpI_), + _bpM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bpN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpM_), + _bpO_ = caml_call2(Runtime_ocaml_Runtime[83], _bpN_, _bpL_); + return caml_call2(Runtime_ocaml_Runtime[29], _oQ_, _bpO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oR_, [0], _bpz_, _bpy_); + } + function _a8__(param){ + function _boY_(param){ + switch(zone[0]){ + case 0: + var _bpd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$134); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpd_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29482) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35578); + var + _bpe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$88), + _bpf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpe_), + _bpg_ = caml_call1(Runtime_ocaml_Runtime[69], _bpf_), + _bph_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6096), + _bpi_ = caml_call2(Runtime_ocaml_Runtime[104], _bph_, _bpg_), + _bpj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41673); + return caml_call2(Runtime_ocaml_Runtime[93], _bpj_, _bpi_); + case 1: + var _bpk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$135); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26281) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31653); + var + _bpl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$89), + _bpm_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bpl_), + _bpn_ = caml_call1(Runtime_ocaml_Runtime[69], _bpm_), + _bpo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5371), + _bpp_ = caml_call2(Runtime_ocaml_Runtime[104], _bpo_, _bpn_), + _bpq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37023); + return caml_call2(Runtime_ocaml_Runtime[93], _bpq_, _bpp_); + default: + var _bpr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$136); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bpr_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24544) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29444); + var + _bps_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$90), + _bpt_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bps_), + _bpu_ = caml_call1(Runtime_ocaml_Runtime[69], _bpt_), + _bpv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4902), + _bpw_ = caml_call2(Runtime_ocaml_Runtime[104], _bpv_, _bpu_), + _bpx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34346); + return caml_call2(Runtime_ocaml_Runtime[93], _bpx_, _bpw_); + } + } + function _boZ_(param){ + switch(type_pret[0]){ + case 0: + var _bo0_ = 0; break; + case 1: + var _bo0_ = 1; break; + case 2: + var _bo0_ = 0; break; + case 3: + var _bo0_ = 0; break; + default: var _bo0_ = 0; + } + var + _bo1_ = 0 === anciennete_logement[0] ? 0 : 1, + _bo2_ = caml_call2(Runtime_ocaml_Runtime[83], _bo1_, _bo0_), + _bo3_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bo4_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bo3_), + _bo5_ = caml_call2(Runtime_ocaml_Runtime[83], _bo4_, _bo2_), + _bo6_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bo7_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bo6_), + _bo8_ = caml_call2(Runtime_ocaml_Runtime[83], _bo7_, _bo5_), + _bo9_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bo__ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bo9_), + _bo$_ = caml_call2(Runtime_ocaml_Runtime[83], _bo__, _bo8_), + _bpa_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bpb_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bpa_), + _bpc_ = caml_call2(Runtime_ocaml_Runtime[83], _bpb_, _bo$_); + return caml_call2(Runtime_ocaml_Runtime[29], _oS_, _bpc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oT_, [0], _boZ_, _boY_); + } + function _a8$_(param){ + function _bom_(param){ + switch(zone[0]){ + case 0: + var _boD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$137); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _boD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_36626) + : caml_call1(Runtime_ocaml_Runtime[31], cst_44185); + var + _boE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$91), + _boF_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _boE_), + _boG_ = caml_call1(Runtime_ocaml_Runtime[69], _boF_), + _boH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7558), + _boI_ = caml_call2(Runtime_ocaml_Runtime[104], _boH_, _boG_), + _boJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_51744); + return caml_call2(Runtime_ocaml_Runtime[93], _boJ_, _boI_); + case 1: + var _boK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$138); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _boK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39340); + var + _boL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$92), + _boM_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _boL_), + _boN_ = caml_call1(Runtime_ocaml_Runtime[69], _boM_), + _boO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6655), + _boP_ = caml_call2(Runtime_ocaml_Runtime[104], _boO_, _boN_), + _boQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45997); + return caml_call2(Runtime_ocaml_Runtime[93], _boQ_, _boP_); + default: + var _boR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$139); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _boR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30514) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36589); + var + _boS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$93), + _boT_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _boS_), + _boU_ = caml_call1(Runtime_ocaml_Runtime[69], _boT_), + _boV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6075), + _boW_ = caml_call2(Runtime_ocaml_Runtime[104], _boV_, _boU_), + _boX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42665); + return caml_call2(Runtime_ocaml_Runtime[93], _boX_, _boW_); + } + } + function _bon_(param){ + switch(type_pret[0]){ + case 0: + var _boo_ = 0; break; + case 1: + var _boo_ = 1; break; + case 2: + var _boo_ = 0; break; + case 3: + var _boo_ = 0; break; + default: var _boo_ = 0; + } + var + _bop_ = 0 === anciennete_logement[0] ? 1 : 0, + _boq_ = caml_call2(Runtime_ocaml_Runtime[83], _bop_, _boo_), + _bor_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 9, 30), + _bos_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bor_), + _bot_ = caml_call2(Runtime_ocaml_Runtime[83], _bos_, _boq_), + _bou_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bov_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bou_), + _bow_ = caml_call2(Runtime_ocaml_Runtime[83], _bov_, _bot_), + _box_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _boy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _box_), + _boz_ = caml_call2(Runtime_ocaml_Runtime[83], _boy_, _bow_), + _boA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _boB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _boA_), + _boC_ = caml_call2(Runtime_ocaml_Runtime[83], _boB_, _boz_); + return caml_call2(Runtime_ocaml_Runtime[29], _oU_, _boC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oV_, [0], _bon_, _bom_); + } + function _a9a_(param){ + function _bnM_(param){ + switch(zone[0]){ + case 0: + var _bn3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$140); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bn3_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28861) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34829$0); + var + _bn4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$94), + _bn5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bn4_), + _bn6_ = caml_call1(Runtime_ocaml_Runtime[69], _bn5_), + _bn7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5968), + _bn8_ = caml_call2(Runtime_ocaml_Runtime[104], _bn7_, _bn6_), + _bn9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40796); + return caml_call2(Runtime_ocaml_Runtime[93], _bn9_, _bn8_); + case 1: + var _bn__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$141); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bn__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30987); + var + _bn$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$95), + _boa_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bn$_), + _bob_ = caml_call1(Runtime_ocaml_Runtime[69], _boa_), + _boc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5258), + _bod_ = caml_call2(Runtime_ocaml_Runtime[104], _boc_, _bob_), + _boe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36244); + return caml_call2(Runtime_ocaml_Runtime[93], _boe_, _bod_); + default: + var _bof_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$142); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bof_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24027) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28824); + var + _bog_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$96), + _boh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bog_), + _boi_ = caml_call1(Runtime_ocaml_Runtime[69], _boh_), + _boj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4799), + _bok_ = caml_call2(Runtime_ocaml_Runtime[104], _boj_, _boi_), + _bol_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33623); + return caml_call2(Runtime_ocaml_Runtime[93], _bol_, _bok_); + } + } + function _bnN_(param){ + switch(type_pret[0]){ + case 0: + var _bnO_ = 0; break; + case 1: + var _bnO_ = 1; break; + case 2: + var _bnO_ = 0; break; + case 3: + var _bnO_ = 0; break; + default: var _bnO_ = 0; + } + var + _bnP_ = 0 === anciennete_logement[0] ? 0 : 1, + _bnQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bnP_, _bnO_), + _bnR_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bnS_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bnR_), + _bnT_ = caml_call2(Runtime_ocaml_Runtime[83], _bnS_, _bnQ_), + _bnU_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bnV_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bnU_), + _bnW_ = caml_call2(Runtime_ocaml_Runtime[83], _bnV_, _bnT_), + _bnX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bnY_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnX_), + _bnZ_ = caml_call2(Runtime_ocaml_Runtime[83], _bnY_, _bnW_), + _bn0_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bn1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bn0_), + _bn2_ = caml_call2(Runtime_ocaml_Runtime[83], _bn1_, _bnZ_); + return caml_call2(Runtime_ocaml_Runtime[29], _oW_, _bn2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oX_, [0], _bnN_, _bnM_); + } + function _a9b_(param){ + function _bna_(param){ + switch(zone[0]){ + case 0: + var _bnr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$143); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnr_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35855) + : caml_call1(Runtime_ocaml_Runtime[31], cst_43255); + var + _bns_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$97), + _bnt_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bns_), + _bnu_ = caml_call1(Runtime_ocaml_Runtime[69], _bnt_), + _bnv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7399), + _bnw_ = caml_call2(Runtime_ocaml_Runtime[104], _bnv_, _bnu_), + _bnx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50655); + return caml_call2(Runtime_ocaml_Runtime[93], _bnx_, _bnw_); + case 1: + var _bny_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$144); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bny_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31998) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38512); + var + _bnz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$98), + _bnA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnz_), + _bnB_ = caml_call1(Runtime_ocaml_Runtime[69], _bnA_), + _bnC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6515), + _bnD_ = caml_call2(Runtime_ocaml_Runtime[104], _bnC_, _bnB_), + _bnE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45029); + return caml_call2(Runtime_ocaml_Runtime[93], _bnE_, _bnD_); + default: + var _bnF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$145); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bnF_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29872) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35819); + var + _bnG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$99), + _bnH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bnG_), + _bnI_ = caml_call1(Runtime_ocaml_Runtime[69], _bnH_), + _bnJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5947), + _bnK_ = caml_call2(Runtime_ocaml_Runtime[104], _bnJ_, _bnI_), + _bnL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41767); + return caml_call2(Runtime_ocaml_Runtime[93], _bnL_, _bnK_); + } + } + function _bnb_(param){ + switch(type_pret[0]){ + case 0: + var _bnc_ = 0; break; + case 1: + var _bnc_ = 1; break; + case 2: + var _bnc_ = 0; break; + case 3: + var _bnc_ = 0; break; + default: var _bnc_ = 0; + } + var + _bnd_ = 0 === anciennete_logement[0] ? 1 : 0, + _bne_ = caml_call2(Runtime_ocaml_Runtime[83], _bnd_, _bnc_), + _bnf_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 12, 31), + _bng_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bnf_), + _bnh_ = caml_call2(Runtime_ocaml_Runtime[83], _bng_, _bne_), + _bni_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bnj_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bni_), + _bnk_ = caml_call2(Runtime_ocaml_Runtime[83], _bnj_, _bnh_), + _bnl_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bnm_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bnl_), + _bnn_ = caml_call2(Runtime_ocaml_Runtime[83], _bnm_, _bnk_), + _bno_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bnp_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bno_), + _bnq_ = caml_call2(Runtime_ocaml_Runtime[83], _bnp_, _bnn_); + return caml_call2(Runtime_ocaml_Runtime[29], _oY_, _bnq_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _oZ_, [0], _bnb_, _bna_); + } + function _a9c_(param){ + function _bmA_(param){ + switch(zone[0]){ + case 0: + var _bmR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmR_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28575) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34484); + var + _bmS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$100), + _bmT_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmS_), + _bmU_ = caml_call1(Runtime_ocaml_Runtime[69], _bmT_), + _bmV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5909), + _bmW_ = caml_call2(Runtime_ocaml_Runtime[104], _bmV_, _bmU_), + _bmX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40392); + return caml_call2(Runtime_ocaml_Runtime[93], _bmX_, _bmW_); + case 1: + var _bmY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$147); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25473) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30680); + var + _bmZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$101), + _bm0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmZ_), + _bm1_ = caml_call1(Runtime_ocaml_Runtime[69], _bm0_), + _bm2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5206), + _bm3_ = caml_call2(Runtime_ocaml_Runtime[104], _bm2_, _bm1_), + _bm4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35885); + return caml_call2(Runtime_ocaml_Runtime[93], _bm4_, _bm3_); + default: + var _bm5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bm5_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23789) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28539); + var + _bm6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$102), + _bm7_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bm6_), + _bm8_ = caml_call1(Runtime_ocaml_Runtime[69], _bm7_), + _bm9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4751), + _bm__ = caml_call2(Runtime_ocaml_Runtime[104], _bm9_, _bm8_), + _bm$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33290); + return caml_call2(Runtime_ocaml_Runtime[93], _bm$_, _bm__); + } + } + function _bmB_(param){ + switch(type_pret[0]){ + case 0: + var _bmC_ = 0; break; + case 1: + var _bmC_ = 1; break; + case 2: + var _bmC_ = 0; break; + case 3: + var _bmC_ = 0; break; + default: var _bmC_ = 0; + } + var + _bmD_ = 0 === anciennete_logement[0] ? 0 : 1, + _bmE_ = caml_call2(Runtime_ocaml_Runtime[83], _bmD_, _bmC_), + _bmF_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bmG_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bmF_), + _bmH_ = caml_call2(Runtime_ocaml_Runtime[83], _bmG_, _bmE_), + _bmI_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bmJ_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bmI_), + _bmK_ = caml_call2(Runtime_ocaml_Runtime[83], _bmJ_, _bmH_), + _bmL_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bmM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bmL_), + _bmN_ = caml_call2(Runtime_ocaml_Runtime[83], _bmM_, _bmK_), + _bmO_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bmP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bmO_), + _bmQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bmP_, _bmN_); + return caml_call2(Runtime_ocaml_Runtime[29], _o0_, _bmQ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o1_, [0], _bmB_, _bmA_); + } + function _a9d_(param){ + function _bl0_(param){ + switch(zone[0]){ + case 0: + var _bmf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$149); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42827); + var + _bmg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$103), + _bmh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmg_), + _bmi_ = caml_call1(Runtime_ocaml_Runtime[69], _bmh_), + _bmj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7326), + _bmk_ = caml_call2(Runtime_ocaml_Runtime[104], _bmj_, _bmi_), + _bml_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50153); + return caml_call2(Runtime_ocaml_Runtime[93], _bml_, _bmk_); + case 1: + var _bmm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31681) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38131); + var + _bmn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$104), + _bmo_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmn_), + _bmp_ = caml_call1(Runtime_ocaml_Runtime[69], _bmo_), + _bmq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6450), + _bmr_ = caml_call2(Runtime_ocaml_Runtime[104], _bmq_, _bmp_), + _bms_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44583); + return caml_call2(Runtime_ocaml_Runtime[93], _bms_, _bmr_); + default: + var _bmt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$151); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bmt_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29576) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35464); + var + _bmu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$105), + _bmv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bmu_), + _bmw_ = caml_call1(Runtime_ocaml_Runtime[69], _bmv_), + _bmx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5888), + _bmy_ = caml_call2(Runtime_ocaml_Runtime[104], _bmx_, _bmw_), + _bmz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41353); + return caml_call2(Runtime_ocaml_Runtime[93], _bmz_, _bmy_); + } + } + function _bl1_(param){ + switch(type_pret[0]){ + case 0: + var _bl2_ = 0; break; + case 1: + var _bl2_ = 1; break; + case 2: + var _bl2_ = 0; break; + case 3: + var _bl2_ = 0; break; + default: var _bl2_ = 0; + } + var + _bl3_ = 0 === anciennete_logement[0] ? 1 : 0, + _bl4_ = caml_call2(Runtime_ocaml_Runtime[83], _bl3_, _bl2_), + _bl5_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 12, 31), + _bl6_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bl5_), + _bl7_ = caml_call2(Runtime_ocaml_Runtime[83], _bl6_, _bl4_), + _bl8_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bl9_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bl8_), + _bl__ = caml_call2(Runtime_ocaml_Runtime[83], _bl9_, _bl7_), + _bl$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bma_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bl$_), + _bmb_ = caml_call2(Runtime_ocaml_Runtime[83], _bma_, _bl__), + _bmc_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bmd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bmc_), + _bme_ = caml_call2(Runtime_ocaml_Runtime[83], _bmd_, _bmb_); + return caml_call2(Runtime_ocaml_Runtime[29], _o2_, _bme_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o3_, [0], _bl1_, _bl0_); + } + function _a9e_(param){ + function _blo_(param){ + switch(zone[0]){ + case 0: + var _blF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blF_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28264) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34109); + var + _blG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$106), + _blH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blG_), + _blI_ = caml_call1(Runtime_ocaml_Runtime[69], _blH_), + _blJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5845), + _blK_ = caml_call2(Runtime_ocaml_Runtime[104], _blJ_, _blI_), + _blL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39953); + return caml_call2(Runtime_ocaml_Runtime[93], _blL_, _blK_); + case 1: + var _blM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$153); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blM_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25196) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30346); + var + _blN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$107), + _blO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blN_), + _blP_ = caml_call1(Runtime_ocaml_Runtime[69], _blO_), + _blQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5149), + _blR_ = caml_call2(Runtime_ocaml_Runtime[104], _blQ_, _blP_), + _blS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35495); + return caml_call2(Runtime_ocaml_Runtime[93], _blS_, _blR_); + default: + var _blT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$154); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23530) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28228); + var + _blU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$108), + _blV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blU_), + _blW_ = caml_call1(Runtime_ocaml_Runtime[69], _blV_), + _blX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4699), + _blY_ = caml_call2(Runtime_ocaml_Runtime[104], _blX_, _blW_), + _blZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32928); + return caml_call2(Runtime_ocaml_Runtime[93], _blZ_, _blY_); + } + } + function _blp_(param){ + switch(type_pret[0]){ + case 0: + var _blq_ = 0; break; + case 1: + var _blq_ = 1; break; + case 2: + var _blq_ = 0; break; + case 3: + var _blq_ = 0; break; + default: var _blq_ = 0; + } + var + _blr_ = 0 === anciennete_logement[0] ? 0 : 1, + _bls_ = caml_call2(Runtime_ocaml_Runtime[83], _blr_, _blq_), + _blt_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _blu_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _blt_), + _blv_ = caml_call2(Runtime_ocaml_Runtime[83], _blu_, _bls_), + _blw_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _blx_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _blw_), + _bly_ = caml_call2(Runtime_ocaml_Runtime[83], _blx_, _blv_), + _blz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _blA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blz_), + _blB_ = caml_call2(Runtime_ocaml_Runtime[83], _blA_, _bly_), + _blC_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _blD_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _blC_), + _blE_ = caml_call2(Runtime_ocaml_Runtime[83], _blD_, _blB_); + return caml_call2(Runtime_ocaml_Runtime[29], _o4_, _blE_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o5_, [0], _blp_, _blo_); + } + function _a9f_(param){ + function _bkO_(param){ + switch(zone[0]){ + case 0: + var _bk5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$155); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bk5_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35114) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42361); + var + _bk6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$109), + _bk7_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bk6_), + _bk8_ = caml_call1(Runtime_ocaml_Runtime[69], _bk7_), + _bk9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7246), + _bk__ = caml_call2(Runtime_ocaml_Runtime[104], _bk9_, _bk8_), + _bk$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49607); + return caml_call2(Runtime_ocaml_Runtime[93], _bk$_, _bk__); + case 1: + var _bla_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$156); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bla_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31336) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37716); + var + _blb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$110), + _blc_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _blb_), + _bld_ = caml_call1(Runtime_ocaml_Runtime[69], _blc_), + _ble_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6380), + _blf_ = caml_call2(Runtime_ocaml_Runtime[104], _ble_, _bld_), + _blg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44098); + return caml_call2(Runtime_ocaml_Runtime[93], _blg_, _blf_); + default: + var _blh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$157); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _blh_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29254) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35078); + var + _bli_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$111), + _blj_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bli_), + _blk_ = caml_call1(Runtime_ocaml_Runtime[69], _blj_), + _bll_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5824), + _blm_ = caml_call2(Runtime_ocaml_Runtime[104], _bll_, _blk_), + _bln_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40903); + return caml_call2(Runtime_ocaml_Runtime[93], _bln_, _blm_); + } + } + function _bkP_(param){ + switch(type_pret[0]){ + case 0: + var _bkQ_ = 0; break; + case 1: + var _bkQ_ = 1; break; + case 2: + var _bkQ_ = 0; break; + case 3: + var _bkQ_ = 0; break; + default: var _bkQ_ = 0; + } + var + _bkR_ = 0 === anciennete_logement[0] ? 1 : 0, + _bkS_ = caml_call2(Runtime_ocaml_Runtime[83], _bkR_, _bkQ_), + _bkT_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 12, 31), + _bkU_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bkT_), + _bkV_ = caml_call2(Runtime_ocaml_Runtime[83], _bkU_, _bkS_), + _bkW_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _bkX_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bkW_), + _bkY_ = caml_call2(Runtime_ocaml_Runtime[83], _bkX_, _bkV_), + _bkZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bk0_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkZ_), + _bk1_ = caml_call2(Runtime_ocaml_Runtime[83], _bk0_, _bkY_), + _bk2_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bk3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bk2_), + _bk4_ = caml_call2(Runtime_ocaml_Runtime[83], _bk3_, _bk1_); + return caml_call2(Runtime_ocaml_Runtime[29], _o6_, _bk4_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o7_, [0], _bkP_, _bkO_); + } + function _a9g_(param){ + function _bkc_(param){ + switch(zone[0]){ + case 0: + var _bkt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$158); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkt_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28174) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34000); + var + _bku_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$112), + _bkv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bku_), + _bkw_ = caml_call1(Runtime_ocaml_Runtime[69], _bkv_), + _bkx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5826), + _bky_ = caml_call2(Runtime_ocaml_Runtime[104], _bkx_, _bkw_), + _bkz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39826); + return caml_call2(Runtime_ocaml_Runtime[93], _bkz_, _bky_); + case 1: + var _bkA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$159); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkA_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25116) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30249); + var + _bkB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$113), + _bkC_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkB_), + _bkD_ = caml_call1(Runtime_ocaml_Runtime[69], _bkC_), + _bkE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5133), + _bkF_ = caml_call2(Runtime_ocaml_Runtime[104], _bkE_, _bkD_), + _bkG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35382); + return caml_call2(Runtime_ocaml_Runtime[93], _bkG_, _bkF_); + default: + var _bkH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$160); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bkH_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23455) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28138); + var + _bkI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$114), + _bkJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bkI_), + _bkK_ = caml_call1(Runtime_ocaml_Runtime[69], _bkJ_), + _bkL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4684), + _bkM_ = caml_call2(Runtime_ocaml_Runtime[104], _bkL_, _bkK_), + _bkN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32823); + return caml_call2(Runtime_ocaml_Runtime[93], _bkN_, _bkM_); + } + } + function _bkd_(param){ + switch(type_pret[0]){ + case 0: + var _bke_ = 0; break; + case 1: + var _bke_ = 1; break; + case 2: + var _bke_ = 0; break; + case 3: + var _bke_ = 0; break; + default: var _bke_ = 0; + } + var + _bkf_ = 0 === anciennete_logement[0] ? 0 : 1, + _bkg_ = caml_call2(Runtime_ocaml_Runtime[83], _bkf_, _bke_), + _bkh_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _bki_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bkh_), + _bkj_ = caml_call2(Runtime_ocaml_Runtime[83], _bki_, _bkg_), + _bkk_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bkl_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bkk_), + _bkm_ = caml_call2(Runtime_ocaml_Runtime[83], _bkl_, _bkj_), + _bkn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bko_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkn_), + _bkp_ = caml_call2(Runtime_ocaml_Runtime[83], _bko_, _bkm_), + _bkq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bkr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bkq_), + _bks_ = caml_call2(Runtime_ocaml_Runtime[83], _bkr_, _bkp_); + return caml_call2(Runtime_ocaml_Runtime[29], _o8_, _bks_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o9_, [0], _bkd_, _bkc_); + } + function _a9h_(param){ + function _bjC_(param){ + switch(zone[0]){ + case 0: + var _bjT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$161); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjT_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_35002) + : caml_call1(Runtime_ocaml_Runtime[31], cst_42226); + var + _bjU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$115), + _bjV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjU_), + _bjW_ = caml_call1(Runtime_ocaml_Runtime[69], _bjV_), + _bjX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7223), + _bjY_ = caml_call2(Runtime_ocaml_Runtime[104], _bjX_, _bjW_), + _bjZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_49449); + return caml_call2(Runtime_ocaml_Runtime[93], _bjZ_, _bjY_); + case 1: + var _bj0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$162); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bj0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31236) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37596); + var + _bj1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$116), + _bj2_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bj1_), + _bj3_ = caml_call1(Runtime_ocaml_Runtime[69], _bj2_), + _bj4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6360), + _bj5_ = caml_call2(Runtime_ocaml_Runtime[104], _bj4_, _bj3_), + _bj6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43957); + return caml_call2(Runtime_ocaml_Runtime[93], _bj6_, _bj5_); + default: + var _bj7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$163); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bj7_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29161) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34966); + var + _bj8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$117), + _bj9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bj8_), + _bj__ = caml_call1(Runtime_ocaml_Runtime[69], _bj9_), + _bj$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5805), + _bka_ = caml_call2(Runtime_ocaml_Runtime[104], _bj$_, _bj__), + _bkb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40773); + return caml_call2(Runtime_ocaml_Runtime[93], _bkb_, _bka_); + } + } + function _bjD_(param){ + switch(type_pret[0]){ + case 0: + var _bjE_ = 0; break; + case 1: + var _bjE_ = 1; break; + case 2: + var _bjE_ = 0; break; + case 3: + var _bjE_ = 0; break; + default: var _bjE_ = 0; + } + var + _bjF_ = 0 === anciennete_logement[0] ? 1 : 0, + _bjG_ = caml_call2(Runtime_ocaml_Runtime[83], _bjF_, _bjE_), + _bjH_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 12, 31), + _bjI_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bjH_), + _bjJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bjI_, _bjG_), + _bjK_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bjL_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bjK_), + _bjM_ = caml_call2(Runtime_ocaml_Runtime[83], _bjL_, _bjJ_), + _bjN_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bjO_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bjN_), + _bjP_ = caml_call2(Runtime_ocaml_Runtime[83], _bjO_, _bjM_), + _bjQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bjR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bjQ_), + _bjS_ = caml_call2(Runtime_ocaml_Runtime[83], _bjR_, _bjP_); + return caml_call2(Runtime_ocaml_Runtime[29], _o__, _bjS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _o$_, [0], _bjD_, _bjC_); + } + function _a9i_(param){ + function _bi2_(param){ + switch(zone[0]){ + case 0: + var _bjh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$164); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjh_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27367) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33026); + var + _bji_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$118), + _bjj_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bji_), + _bjk_ = caml_call1(Runtime_ocaml_Runtime[69], _bjj_), + _bjl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5659), + _bjm_ = caml_call2(Runtime_ocaml_Runtime[104], _bjl_, _bjk_), + _bjn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38685); + return caml_call2(Runtime_ocaml_Runtime[93], _bjn_, _bjm_); + case 1: + var _bjo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$165); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjo_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24396) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29382); + var + _bjp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$119), + _bjq_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjp_), + _bjr_ = caml_call1(Runtime_ocaml_Runtime[69], _bjq_), + _bjs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4986$0), + _bjt_ = caml_call2(Runtime_ocaml_Runtime[104], _bjs_, _bjr_), + _bju_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34368); + return caml_call2(Runtime_ocaml_Runtime[93], _bju_, _bjt_); + default: + var _bjv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$166); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bjv_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22783) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27332); + var + _bjw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$120), + _bjx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bjw_), + _bjy_ = caml_call1(Runtime_ocaml_Runtime[69], _bjx_), + _bjz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4550), + _bjA_ = caml_call2(Runtime_ocaml_Runtime[104], _bjz_, _bjy_), + _bjB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31882); + return caml_call2(Runtime_ocaml_Runtime[93], _bjB_, _bjA_); + } + } + function _bi3_(param){ + switch(type_pret[0]){ + case 0: + var _bi4_ = 0; break; + case 1: + var _bi4_ = 1; break; + case 2: + var _bi4_ = 0; break; + case 3: + var _bi4_ = 0; break; + default: var _bi4_ = 0; + } + var + _bi5_ = 0 === anciennete_logement[0] ? 0 : 1, + _bi6_ = caml_call2(Runtime_ocaml_Runtime[83], _bi5_, _bi4_), + _bi7_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _bi8_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bi7_), + _bi9_ = caml_call2(Runtime_ocaml_Runtime[83], _bi8_, _bi6_), + _bi__ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bi$_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bi__), + _bja_ = caml_call2(Runtime_ocaml_Runtime[83], _bi$_, _bi9_), + _bjb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bjc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bjb_), + _bjd_ = caml_call2(Runtime_ocaml_Runtime[83], _bjc_, _bja_), + _bje_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bjf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bje_), + _bjg_ = caml_call2(Runtime_ocaml_Runtime[83], _bjf_, _bjd_); + return caml_call2(Runtime_ocaml_Runtime[29], _pa_, _bjg_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pb_, [0], _bi3_, _bi2_); + } + function _a9j_(param){ + function _biq_(param){ + switch(zone[0]){ + case 0: + var _biH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$167); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _biH_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33999) + : caml_call1(Runtime_ocaml_Runtime[31], cst_41016); + var + _biI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$121), + _biJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _biI_), + _biK_ = caml_call1(Runtime_ocaml_Runtime[69], _biJ_), + _biL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_7016), + _biM_ = caml_call2(Runtime_ocaml_Runtime[104], _biL_, _biK_), + _biN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_48032); + return caml_call2(Runtime_ocaml_Runtime[93], _biN_, _biM_); + case 1: + var _biO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$168); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _biO_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30341) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36519); + var + _biP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$122), + _biQ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _biP_), + _biR_ = caml_call1(Runtime_ocaml_Runtime[69], _biQ_), + _biS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6178), + _biT_ = caml_call2(Runtime_ocaml_Runtime[104], _biS_, _biR_), + _biU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42697); + return caml_call2(Runtime_ocaml_Runtime[93], _biU_, _biT_); + default: + var _biV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$169); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _biV_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28325) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33964); + var + _biW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$123), + _biX_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _biW_), + _biY_ = caml_call1(Runtime_ocaml_Runtime[69], _biX_), + _biZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5639), + _bi0_ = caml_call2(Runtime_ocaml_Runtime[104], _biZ_, _biY_), + _bi1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39605); + return caml_call2(Runtime_ocaml_Runtime[93], _bi1_, _bi0_); + } + } + function _bir_(param){ + switch(type_pret[0]){ + case 0: + var _bis_ = 0; break; + case 1: + var _bis_ = 1; break; + case 2: + var _bis_ = 0; break; + case 3: + var _bis_ = 0; break; + default: var _bis_ = 0; + } + var + _bit_ = 0 === anciennete_logement[0] ? 1 : 0, + _biu_ = caml_call2(Runtime_ocaml_Runtime[83], _bit_, _bis_), + _biv_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 12, 31), + _biw_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _biv_), + _bix_ = caml_call2(Runtime_ocaml_Runtime[83], _biw_, _biu_), + _biy_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _biz_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _biy_), + _biA_ = caml_call2(Runtime_ocaml_Runtime[83], _biz_, _bix_), + _biB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _biC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biB_), + _biD_ = caml_call2(Runtime_ocaml_Runtime[83], _biC_, _biA_), + _biE_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _biF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _biE_), + _biG_ = caml_call2(Runtime_ocaml_Runtime[83], _biF_, _biD_); + return caml_call2(Runtime_ocaml_Runtime[29], _pc_, _biG_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pd_, [0], _bir_, _biq_); + } + function _a9k_(param){ + function _bhQ_(param){ + switch(zone[0]){ + case 0: + var _bh7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$170); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bh7_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26632) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32139); + var + _bh8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$124), + _bh9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bh8_), + _bh__ = caml_call1(Runtime_ocaml_Runtime[69], _bh9_), + _bh$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5507), + _bia_ = caml_call2(Runtime_ocaml_Runtime[104], _bh$_, _bh__), + _bib_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37646); + return caml_call2(Runtime_ocaml_Runtime[93], _bib_, _bia_); + case 1: + var _bic_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$171); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bic_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23741) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28593); + var + _bid_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$125), + _bie_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bid_), + _bif_ = caml_call1(Runtime_ocaml_Runtime[69], _bie_), + _big_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4852), + _bih_ = caml_call2(Runtime_ocaml_Runtime[104], _big_, _bif_), + _bii_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33445); + return caml_call2(Runtime_ocaml_Runtime[93], _bii_, _bih_); + default: + var _bij_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$172); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bij_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22171) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36598); + var + _bik_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$126), + _bil_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bik_), + _bim_ = caml_call1(Runtime_ocaml_Runtime[69], _bil_), + _bin_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4428), + _bio_ = caml_call2(Runtime_ocaml_Runtime[104], _bin_, _bim_), + _bip_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31026); + return caml_call2(Runtime_ocaml_Runtime[93], _bip_, _bio_); + } + } + function _bhR_(param){ + switch(type_pret[0]){ + case 0: + var _bhS_ = 0; break; + case 1: + var _bhS_ = 1; break; + case 2: + var _bhS_ = 0; break; + case 3: + var _bhS_ = 0; break; + default: var _bhS_ = 0; + } + var + _bhT_ = 0 === anciennete_logement[0] ? 0 : 1, + _bhU_ = caml_call2(Runtime_ocaml_Runtime[83], _bhT_, _bhS_), + _bhV_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bhW_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bhV_), + _bhX_ = caml_call2(Runtime_ocaml_Runtime[83], _bhW_, _bhU_), + _bhY_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bhZ_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bhY_), + _bh0_ = caml_call2(Runtime_ocaml_Runtime[83], _bhZ_, _bhX_), + _bh1_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bh2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bh1_), + _bh3_ = caml_call2(Runtime_ocaml_Runtime[83], _bh2_, _bh0_), + _bh4_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bh5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bh4_), + _bh6_ = caml_call2(Runtime_ocaml_Runtime[83], _bh5_, _bh3_); + return caml_call2(Runtime_ocaml_Runtime[29], _pe_, _bh6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pf_, [0], _bhR_, _bhQ_); + } + function _a9l_(param){ + function _bhe_(param){ + switch(zone[0]){ + case 0: + var _bhv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$173); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhv_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_33086) + : caml_call1(Runtime_ocaml_Runtime[31], cst_39914); + var + _bhw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$127), + _bhx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhw_), + _bhy_ = caml_call1(Runtime_ocaml_Runtime[69], _bhx_), + _bhz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6828), + _bhA_ = caml_call2(Runtime_ocaml_Runtime[104], _bhz_, _bhy_), + _bhB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_46742); + return caml_call2(Runtime_ocaml_Runtime[93], _bhB_, _bhA_); + case 1: + var _bhC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$174); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhC_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29526) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35538); + var + _bhD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$128), + _bhE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhD_), + _bhF_ = caml_call1(Runtime_ocaml_Runtime[69], _bhE_), + _bhG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6012), + _bhH_ = caml_call2(Runtime_ocaml_Runtime[104], _bhG_, _bhF_), + _bhI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41550); + return caml_call2(Runtime_ocaml_Runtime[93], _bhI_, _bhH_); + default: + var _bhJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$175); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bhJ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27564) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33052); + var + _bhK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$129), + _bhL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bhK_), + _bhM_ = caml_call1(Runtime_ocaml_Runtime[69], _bhL_), + _bhN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5488), + _bhO_ = caml_call2(Runtime_ocaml_Runtime[104], _bhN_, _bhM_), + _bhP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38541); + return caml_call2(Runtime_ocaml_Runtime[93], _bhP_, _bhO_); + } + } + function _bhf_(param){ + switch(type_pret[0]){ + case 0: + var _bhg_ = 0; break; + case 1: + var _bhg_ = 1; break; + case 2: + var _bhg_ = 0; break; + case 3: + var _bhg_ = 0; break; + default: var _bhg_ = 0; + } + var + _bhh_ = 0 === anciennete_logement[0] ? 1 : 0, + _bhi_ = caml_call2(Runtime_ocaml_Runtime[83], _bhh_, _bhg_), + _bhj_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 12, 31), + _bhk_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bhj_), + _bhl_ = caml_call2(Runtime_ocaml_Runtime[83], _bhk_, _bhi_), + _bhm_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bhn_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bhm_), + _bho_ = caml_call2(Runtime_ocaml_Runtime[83], _bhn_, _bhl_), + _bhp_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bhq_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhp_), + _bhr_ = caml_call2(Runtime_ocaml_Runtime[83], _bhq_, _bho_), + _bhs_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bht_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bhs_), + _bhu_ = caml_call2(Runtime_ocaml_Runtime[83], _bht_, _bhr_); + return caml_call2(Runtime_ocaml_Runtime[29], _pg_, _bhu_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _ph_, [0], _bhf_, _bhe_); + } + function _a9m_(param){ + function _bgE_(param){ + switch(zone[0]){ + case 0: + var _bgV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$176); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgV_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25907) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31264); + var + _bgW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$130), + _bgX_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgW_), + _bgY_ = caml_call1(Runtime_ocaml_Runtime[69], _bgX_), + _bgZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5357), + _bg0_ = caml_call2(Runtime_ocaml_Runtime[104], _bgZ_, _bgY_), + _bg1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36621); + return caml_call2(Runtime_ocaml_Runtime[93], _bg1_, _bg0_); + case 1: + var _bg2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$177); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bg2_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23094) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27814); + var + _bg3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$131), + _bg4_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bg3_), + _bg5_ = caml_call1(Runtime_ocaml_Runtime[69], _bg4_), + _bg6_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4720), + _bg7_ = caml_call2(Runtime_ocaml_Runtime[104], _bg6_, _bg5_), + _bg8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32534); + return caml_call2(Runtime_ocaml_Runtime[93], _bg8_, _bg7_); + default: + var _bg9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$178); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bg9_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21567) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25874); + var + _bg__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$132), + _bg$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bg__), + _bha_ = caml_call1(Runtime_ocaml_Runtime[69], _bg$_), + _bhb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4307), + _bhc_ = caml_call2(Runtime_ocaml_Runtime[104], _bhb_, _bha_), + _bhd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30181); + return caml_call2(Runtime_ocaml_Runtime[93], _bhd_, _bhc_); + } + } + function _bgF_(param){ + switch(type_pret[0]){ + case 0: + var _bgG_ = 0; break; + case 1: + var _bgG_ = 1; break; + case 2: + var _bgG_ = 0; break; + case 3: + var _bgG_ = 0; break; + default: var _bgG_ = 0; + } + var + _bgH_ = 0 === anciennete_logement[0] ? 0 : 1, + _bgI_ = caml_call2(Runtime_ocaml_Runtime[83], _bgH_, _bgG_), + _bgJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bgK_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bgJ_), + _bgL_ = caml_call2(Runtime_ocaml_Runtime[83], _bgK_, _bgI_), + _bgM_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bgN_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bgM_), + _bgO_ = caml_call2(Runtime_ocaml_Runtime[83], _bgN_, _bgL_), + _bgP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bgQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgP_), + _bgR_ = caml_call2(Runtime_ocaml_Runtime[83], _bgQ_, _bgO_), + _bgS_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bgT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgS_), + _bgU_ = caml_call2(Runtime_ocaml_Runtime[83], _bgT_, _bgR_); + return caml_call2(Runtime_ocaml_Runtime[29], _pi_, _bgU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pj_, [0], _bgF_, _bgE_); + } + function _a9n_(param){ + function _bf4_(param){ + switch(zone[0]){ + case 0: + var _bgj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$179); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgj_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_32185) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38827); + var + _bgk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$133), + _bgl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgk_), + _bgm_ = caml_call1(Runtime_ocaml_Runtime[69], _bgl_), + _bgn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6642), + _bgo_ = caml_call2(Runtime_ocaml_Runtime[104], _bgn_, _bgm_), + _bgp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45469); + return caml_call2(Runtime_ocaml_Runtime[93], _bgp_, _bgo_); + case 1: + var _bgq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$180); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28722) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34570$0); + var + _bgr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$134), + _bgs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgr_), + _bgt_ = caml_call1(Runtime_ocaml_Runtime[69], _bgs_), + _bgu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5848), + _bgv_ = caml_call2(Runtime_ocaml_Runtime[104], _bgu_, _bgt_), + _bgw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40418); + return caml_call2(Runtime_ocaml_Runtime[93], _bgw_, _bgv_); + default: + var _bgx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$181); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bgx_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26813) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32152); + var + _bgy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$135), + _bgz_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bgy_), + _bgA_ = caml_call1(Runtime_ocaml_Runtime[69], _bgz_), + _bgB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5339), + _bgC_ = caml_call2(Runtime_ocaml_Runtime[104], _bgB_, _bgA_), + _bgD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37491); + return caml_call2(Runtime_ocaml_Runtime[93], _bgD_, _bgC_); + } + } + function _bf5_(param){ + switch(type_pret[0]){ + case 0: + var _bf6_ = 0; break; + case 1: + var _bf6_ = 1; break; + case 2: + var _bf6_ = 0; break; + case 3: + var _bf6_ = 0; break; + default: var _bf6_ = 0; + } + var + _bf7_ = 0 === anciennete_logement[0] ? 1 : 0, + _bf8_ = caml_call2(Runtime_ocaml_Runtime[83], _bf7_, _bf6_), + _bf9_ = caml_call3(Runtime_ocaml_Runtime[57], 2006, 12, 31), + _bf__ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bf9_), + _bf$_ = caml_call2(Runtime_ocaml_Runtime[83], _bf__, _bf8_), + _bga_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bgb_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bga_), + _bgc_ = caml_call2(Runtime_ocaml_Runtime[83], _bgb_, _bf$_), + _bgd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bge_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgd_), + _bgf_ = caml_call2(Runtime_ocaml_Runtime[83], _bge_, _bgc_), + _bgg_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bgh_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bgg_), + _bgi_ = caml_call2(Runtime_ocaml_Runtime[83], _bgh_, _bgf_); + return caml_call2(Runtime_ocaml_Runtime[29], _pk_, _bgi_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pl_, [0], _bf5_, _bf4_); + } + function _a9o_(param){ + function _bfs_(param){ + switch(zone[0]){ + case 0: + var _bfJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$182); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfJ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25449) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30711); + var + _bfK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$136), + _bfL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfK_), + _bfM_ = caml_call1(Runtime_ocaml_Runtime[69], _bfL_), + _bfN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5262), + _bfO_ = caml_call2(Runtime_ocaml_Runtime[104], _bfN_, _bfM_), + _bfP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35973); + return caml_call2(Runtime_ocaml_Runtime[93], _bfP_, _bfO_); + case 1: + var _bfQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$183); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfQ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27323); + var + _bfR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$137), + _bfS_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfR_), + _bfT_ = caml_call1(Runtime_ocaml_Runtime[69], _bfS_), + _bfU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4637), + _bfV_ = caml_call2(Runtime_ocaml_Runtime[104], _bfU_, _bfT_), + _bfW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31960); + return caml_call2(Runtime_ocaml_Runtime[93], _bfW_, _bfV_); + default: + var _bfX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$184); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfX_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21186) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25417); + var + _bfY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$138), + _bfZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfY_), + _bf0_ = caml_call1(Runtime_ocaml_Runtime[69], _bfZ_), + _bf1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4231), + _bf2_ = caml_call2(Runtime_ocaml_Runtime[104], _bf1_, _bf0_), + _bf3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29648); + return caml_call2(Runtime_ocaml_Runtime[93], _bf3_, _bf2_); + } + } + function _bft_(param){ + switch(type_pret[0]){ + case 0: + var _bfu_ = 0; break; + case 1: + var _bfu_ = 1; break; + case 2: + var _bfu_ = 0; break; + case 3: + var _bfu_ = 0; break; + default: var _bfu_ = 0; + } + var + _bfv_ = 0 === anciennete_logement[0] ? 0 : 1, + _bfw_ = caml_call2(Runtime_ocaml_Runtime[83], _bfv_, _bfu_), + _bfx_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _bfy_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bfx_), + _bfz_ = caml_call2(Runtime_ocaml_Runtime[83], _bfy_, _bfw_), + _bfA_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bfB_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bfA_), + _bfC_ = caml_call2(Runtime_ocaml_Runtime[83], _bfB_, _bfz_), + _bfD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bfE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfD_), + _bfF_ = caml_call2(Runtime_ocaml_Runtime[83], _bfE_, _bfC_), + _bfG_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bfH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bfG_), + _bfI_ = caml_call2(Runtime_ocaml_Runtime[83], _bfH_, _bfF_); + return caml_call2(Runtime_ocaml_Runtime[29], _pm_, _bfI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pn_, [0], _bft_, _bfs_); + } + function _a9p_(param){ + function _beS_(param){ + switch(zone[0]){ + case 0: + var _be9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$185); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _be9_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31616) + : caml_call1(Runtime_ocaml_Runtime[31], cst_38141); + var + _be__ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$139), + _be$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _be__), + _bfa_ = caml_call1(Runtime_ocaml_Runtime[69], _be$_), + _bfb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6525), + _bfc_ = caml_call2(Runtime_ocaml_Runtime[104], _bfb_, _bfa_), + _bfd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44666); + return caml_call2(Runtime_ocaml_Runtime[93], _bfd_, _bfc_); + case 1: + var _bfe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$186); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfe_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28214) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33959); + var + _bff_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$140), + _bfg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bff_), + _bfh_ = caml_call1(Runtime_ocaml_Runtime[69], _bfg_), + _bfi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5745), + _bfj_ = caml_call2(Runtime_ocaml_Runtime[104], _bfi_, _bfh_), + _bfk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39704); + return caml_call2(Runtime_ocaml_Runtime[93], _bfk_, _bfj_); + default: + var _bfl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$187); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bfl_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26339) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31584); + var + _bfm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$141), + _bfn_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bfm_), + _bfo_ = caml_call1(Runtime_ocaml_Runtime[69], _bfn_), + _bfp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5245), + _bfq_ = caml_call2(Runtime_ocaml_Runtime[104], _bfp_, _bfo_), + _bfr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36829); + return caml_call2(Runtime_ocaml_Runtime[93], _bfr_, _bfq_); + } + } + function _beT_(param){ + switch(type_pret[0]){ + case 0: + var _beU_ = 0; break; + case 1: + var _beU_ = 1; break; + case 2: + var _beU_ = 0; break; + case 3: + var _beU_ = 0; break; + default: var _beU_ = 0; + } + var + _beV_ = 0 === anciennete_logement[0] ? 1 : 0, + _beW_ = caml_call2(Runtime_ocaml_Runtime[83], _beV_, _beU_), + _beX_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 8, 31), + _beY_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _beX_), + _beZ_ = caml_call2(Runtime_ocaml_Runtime[83], _beY_, _beW_), + _be0_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _be1_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _be0_), + _be2_ = caml_call2(Runtime_ocaml_Runtime[83], _be1_, _beZ_), + _be3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _be4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _be3_), + _be5_ = caml_call2(Runtime_ocaml_Runtime[83], _be4_, _be2_), + _be6_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _be7_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _be6_), + _be8_ = caml_call2(Runtime_ocaml_Runtime[83], _be7_, _be5_); + return caml_call2(Runtime_ocaml_Runtime[29], _po_, _be8_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pp_, [0], _beT_, _beS_); + } + function _a9q_(param){ + function _beg_(param){ + switch(zone[0]){ + case 0: + var _bex_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$188); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bex_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25147) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30347); + var + _bey_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$142), + _bez_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bey_), + _beA_ = caml_call1(Runtime_ocaml_Runtime[69], _bez_), + _beB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5200), + _beC_ = caml_call2(Runtime_ocaml_Runtime[104], _beB_, _beA_), + _beD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35547); + return caml_call2(Runtime_ocaml_Runtime[93], _beD_, _beC_); + case 1: + var _beE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$189); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _beE_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22417) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26999); + var + _beF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$143), + _beG_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _beF_), + _beH_ = caml_call1(Runtime_ocaml_Runtime[69], _beG_), + _beI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4582), + _beJ_ = caml_call2(Runtime_ocaml_Runtime[104], _beI_, _beH_), + _beK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31581); + return caml_call2(Runtime_ocaml_Runtime[93], _beK_, _beJ_); + default: + var _beL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$190); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _beL_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20935) + : caml_call1(Runtime_ocaml_Runtime[31], cst_25116$0); + var + _beM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$144), + _beN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _beM_), + _beO_ = caml_call1(Runtime_ocaml_Runtime[69], _beN_), + _beP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4181), + _beQ_ = caml_call2(Runtime_ocaml_Runtime[104], _beP_, _beO_), + _beR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29297); + return caml_call2(Runtime_ocaml_Runtime[93], _beR_, _beQ_); + } + } + function _beh_(param){ + switch(type_pret[0]){ + case 0: + var _bei_ = 0; break; + case 1: + var _bei_ = 1; break; + case 2: + var _bei_ = 0; break; + case 3: + var _bei_ = 0; break; + default: var _bei_ = 0; + } + var + _bej_ = 0 === anciennete_logement[0] ? 0 : 1, + _bek_ = caml_call2(Runtime_ocaml_Runtime[83], _bej_, _bei_), + _bel_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bem_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bel_), + _ben_ = caml_call2(Runtime_ocaml_Runtime[83], _bem_, _bek_), + _beo_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bep_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _beo_), + _beq_ = caml_call2(Runtime_ocaml_Runtime[83], _bep_, _ben_), + _ber_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bes_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ber_), + _bet_ = caml_call2(Runtime_ocaml_Runtime[83], _bes_, _beq_), + _beu_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bev_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _beu_), + _bew_ = caml_call2(Runtime_ocaml_Runtime[83], _bev_, _bet_); + return caml_call2(Runtime_ocaml_Runtime[29], _pq_, _bew_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pr_, [0], _beh_, _beg_); + } + function _a9r_(param){ + function _bdG_(param){ + switch(zone[0]){ + case 0: + var _bdX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$191); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdX_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31241) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37689); + var + _bdY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$145), + _bdZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdY_), + _bd0_ = caml_call1(Runtime_ocaml_Runtime[69], _bdZ_), + _bd1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6448), + _bd2_ = caml_call2(Runtime_ocaml_Runtime[104], _bd1_, _bd0_), + _bd3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44137); + return caml_call2(Runtime_ocaml_Runtime[93], _bd3_, _bd2_); + case 1: + var _bd4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$192); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bd4_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27879) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33556); + var + _bd5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$146), + _bd6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bd5_), + _bd7_ = caml_call1(Runtime_ocaml_Runtime[69], _bd6_), + _bd8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5677), + _bd9_ = caml_call2(Runtime_ocaml_Runtime[104], _bd8_, _bd7_), + _bd__ = caml_call1(Runtime_ocaml_Runtime[31], cst_39233); + return caml_call2(Runtime_ocaml_Runtime[93], _bd__, _bd9_); + default: + var _bd$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$193); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bd$_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26027) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31210); + var + _bea_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$147), + _beb_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bea_), + _bec_ = caml_call1(Runtime_ocaml_Runtime[69], _beb_), + _bed_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5183), + _bee_ = caml_call2(Runtime_ocaml_Runtime[104], _bed_, _bec_), + _bef_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36393); + return caml_call2(Runtime_ocaml_Runtime[93], _bef_, _bee_); + } + } + function _bdH_(param){ + switch(type_pret[0]){ + case 0: + var _bdI_ = 0; break; + case 1: + var _bdI_ = 1; break; + case 2: + var _bdI_ = 0; break; + case 3: + var _bdI_ = 0; break; + default: var _bdI_ = 0; + } + var + _bdJ_ = 0 === anciennete_logement[0] ? 1 : 0, + _bdK_ = caml_call2(Runtime_ocaml_Runtime[83], _bdJ_, _bdI_), + _bdL_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 6, 30), + _bdM_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bdL_), + _bdN_ = caml_call2(Runtime_ocaml_Runtime[83], _bdM_, _bdK_), + _bdO_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bdP_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bdO_), + _bdQ_ = caml_call2(Runtime_ocaml_Runtime[83], _bdP_, _bdN_), + _bdR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bdS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdR_), + _bdT_ = caml_call2(Runtime_ocaml_Runtime[83], _bdS_, _bdQ_), + _bdU_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bdV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdU_), + _bdW_ = caml_call2(Runtime_ocaml_Runtime[83], _bdV_, _bdT_); + return caml_call2(Runtime_ocaml_Runtime[29], _ps_, _bdW_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pt_, [0], _bdH_, _bdG_); + } + function _a9s_(param){ + function _bc6_(param){ + switch(zone[0]){ + case 0: + var _bdl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$194); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdl_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24849) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29987); + var + _bdm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$148), + _bdn_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdm_), + _bdo_ = caml_call1(Runtime_ocaml_Runtime[69], _bdn_), + _bdp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5138), + _bdq_ = caml_call2(Runtime_ocaml_Runtime[104], _bdp_, _bdo_), + _bdr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35125); + return caml_call2(Runtime_ocaml_Runtime[93], _bdr_, _bdq_); + case 1: + var _bds_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$195); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bds_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22151) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26679); + var + _bdt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$149), + _bdu_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdt_), + _bdv_ = caml_call1(Runtime_ocaml_Runtime[69], _bdu_), + _bdw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4528), + _bdx_ = caml_call2(Runtime_ocaml_Runtime[104], _bdw_, _bdv_), + _bdy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_31207); + return caml_call2(Runtime_ocaml_Runtime[93], _bdy_, _bdx_); + default: + var _bdz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$196); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bdz_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20687) + : caml_call1(Runtime_ocaml_Runtime[31], cst_24818); + var + _bdA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$150), + _bdB_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bdA_), + _bdC_ = caml_call1(Runtime_ocaml_Runtime[69], _bdB_), + _bdD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4131), + _bdE_ = caml_call2(Runtime_ocaml_Runtime[104], _bdD_, _bdC_), + _bdF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_28949); + return caml_call2(Runtime_ocaml_Runtime[93], _bdF_, _bdE_); + } + } + function _bc7_(param){ + switch(type_pret[0]){ + case 0: + var _bc8_ = 0; break; + case 1: + var _bc8_ = 1; break; + case 2: + var _bc8_ = 0; break; + case 3: + var _bc8_ = 0; break; + default: var _bc8_ = 0; + } + var + _bc9_ = 0 === anciennete_logement[0] ? 0 : 1, + _bc__ = caml_call2(Runtime_ocaml_Runtime[83], _bc9_, _bc8_), + _bc$_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bda_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bc$_), + _bdb_ = caml_call2(Runtime_ocaml_Runtime[83], _bda_, _bc__), + _bdc_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _bdd_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bdc_), + _bde_ = caml_call2(Runtime_ocaml_Runtime[83], _bdd_, _bdb_), + _bdf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bdg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdf_), + _bdh_ = caml_call2(Runtime_ocaml_Runtime[83], _bdg_, _bde_), + _bdi_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bdj_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bdi_), + _bdk_ = caml_call2(Runtime_ocaml_Runtime[83], _bdj_, _bdh_); + return caml_call2(Runtime_ocaml_Runtime[29], _pu_, _bdk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pv_, [0], _bc7_, _bc6_); + } + function _a9t_(param){ + function _bct_(param){ + switch(zone[0]){ + case 0: + var _bcK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$197); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcK_)) + var + _bcL_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_163000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_196700); + else + var + _bcM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$151), + _bcN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcM_), + _bcO_ = caml_call1(Runtime_ocaml_Runtime[69], _bcN_), + _bcP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33700), + _bcQ_ = caml_call2(Runtime_ocaml_Runtime[104], _bcP_, _bcO_), + _bcR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230400), + _bcL_ = caml_call2(Runtime_ocaml_Runtime[93], _bcR_, _bcQ_); + break; + case 1: + var _bcS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$198); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcS_)) + var + _bcL_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_145300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_175000); + else + var + _bcT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$152), + _bcU_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcT_), + _bcV_ = caml_call1(Runtime_ocaml_Runtime[69], _bcU_), + _bcW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29700), + _bcX_ = caml_call2(Runtime_ocaml_Runtime[104], _bcW_, _bcV_), + _bcY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700), + _bcL_ = caml_call2(Runtime_ocaml_Runtime[93], _bcY_, _bcX_); + break; + default: + var _bcZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$199); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcZ_)) + var + _bcL_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_135700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_162800); + else + var + _bc0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$153), + _bc1_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bc0_), + _bc2_ = caml_call1(Runtime_ocaml_Runtime[69], _bc1_), + _bc3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27100), + _bc4_ = caml_call2(Runtime_ocaml_Runtime[104], _bc3_, _bc2_), + _bc5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189900), + _bcL_ = caml_call2(Runtime_ocaml_Runtime[93], _bc5_, _bc4_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bcL_, taux_francs_vers_euros); + } + function _bcu_(param){ + switch(type_pret[0]){ + case 0: + var _bcv_ = 0; break; + case 1: + var _bcv_ = 1; break; + case 2: + var _bcv_ = 0; break; + case 3: + var _bcv_ = 0; break; + default: var _bcv_ = 0; + } + var + _bcw_ = 0 === anciennete_logement[0] ? 0 : 1, + _bcx_ = caml_call2(Runtime_ocaml_Runtime[83], _bcw_, _bcv_), + _bcy_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), + _bcz_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bcy_), + _bcA_ = caml_call2(Runtime_ocaml_Runtime[83], _bcz_, _bcx_), + _bcB_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _bcC_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bcB_), + _bcD_ = caml_call2(Runtime_ocaml_Runtime[83], _bcC_, _bcA_), + _bcE_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bcF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcE_), + _bcG_ = caml_call2(Runtime_ocaml_Runtime[83], _bcF_, _bcD_), + _bcH_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bcI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bcH_), + _bcJ_ = caml_call2(Runtime_ocaml_Runtime[83], _bcI_, _bcG_); + return caml_call2(Runtime_ocaml_Runtime[29], _pw_, _bcJ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _px_, [0], _bcu_, _bct_); + } + function _a9u_(param){ + function _bbT_(param){ + switch(zone[0]){ + case 0: + var _bb__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$200); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bb__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30871) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37243); + var + _bb$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$154), + _bca_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bb$_), + _bcb_ = caml_call1(Runtime_ocaml_Runtime[69], _bca_), + _bcc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_6372), + _bcd_ = caml_call2(Runtime_ocaml_Runtime[104], _bcc_, _bcb_), + _bce_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43615); + return caml_call2(Runtime_ocaml_Runtime[93], _bce_, _bcd_); + case 1: + var _bcf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$201); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcf_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27548) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33148); + var + _bcg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$155), + _bch_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcg_), + _bci_ = caml_call1(Runtime_ocaml_Runtime[69], _bch_), + _bcj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5610), + _bck_ = caml_call2(Runtime_ocaml_Runtime[104], _bcj_, _bci_), + _bcl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38768); + return caml_call2(Runtime_ocaml_Runtime[93], _bcl_, _bck_); + default: + var _bcm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$202); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bcm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25718) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30840); + var + _bcn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$156), + _bco_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bcn_), + _bcp_ = caml_call1(Runtime_ocaml_Runtime[69], _bco_), + _bcq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5122), + _bcr_ = caml_call2(Runtime_ocaml_Runtime[104], _bcq_, _bcp_), + _bcs_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35962); + return caml_call2(Runtime_ocaml_Runtime[93], _bcs_, _bcr_); + } + } + function _bbU_(param){ + switch(type_pret[0]){ + case 0: + var _bbV_ = 0; break; + case 1: + var _bbV_ = 1; break; + case 2: + var _bbV_ = 0; break; + case 3: + var _bbV_ = 0; break; + default: var _bbV_ = 0; + } + var + _bbW_ = 0 === anciennete_logement[0] ? 1 : 0, + _bbX_ = caml_call2(Runtime_ocaml_Runtime[83], _bbW_, _bbV_), + _bbY_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 6, 30), + _bbZ_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bbY_), + _bb0_ = caml_call2(Runtime_ocaml_Runtime[83], _bbZ_, _bbX_), + _bb1_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _bb2_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bb1_), + _bb3_ = caml_call2(Runtime_ocaml_Runtime[83], _bb2_, _bb0_), + _bb4_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bb5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bb4_), + _bb6_ = caml_call2(Runtime_ocaml_Runtime[83], _bb5_, _bb3_), + _bb7_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bb8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bb7_), + _bb9_ = caml_call2(Runtime_ocaml_Runtime[83], _bb8_, _bb6_); + return caml_call2(Runtime_ocaml_Runtime[29], _py_, _bb9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pz_, [0], _bbU_, _bbT_); + } + function _a9v_(param){ + function _bbg_(param){ + switch(zone[0]){ + case 0: + var _bbx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$203); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbx_)) + var + _bby_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_202500$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_244300); + else + var + _bbz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$157), + _bbA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbz_), + _bbB_ = caml_call1(Runtime_ocaml_Runtime[69], _bbA_), + _bbC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41800), + _bbD_ = caml_call2(Runtime_ocaml_Runtime[104], _bbC_, _bbB_), + _bbE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_286100), + _bby_ = caml_call2(Runtime_ocaml_Runtime[93], _bbE_, _bbD_); + break; + case 1: + var _bbF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$204); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbF_)) + var + _bby_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_180700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_217500); + else + var + _bbG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$158), + _bbH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbG_), + _bbI_ = caml_call1(Runtime_ocaml_Runtime[69], _bbH_), + _bbJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36800), + _bbK_ = caml_call2(Runtime_ocaml_Runtime[104], _bbJ_, _bbI_), + _bbL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_254300), + _bby_ = caml_call2(Runtime_ocaml_Runtime[93], _bbL_, _bbK_); + break; + default: + var _bbM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$205); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bbM_)) + var + _bby_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_168700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202300); + else + var + _bbN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$159), + _bbO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bbN_), + _bbP_ = caml_call1(Runtime_ocaml_Runtime[69], _bbO_), + _bbQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33600), + _bbR_ = caml_call2(Runtime_ocaml_Runtime[104], _bbQ_, _bbP_), + _bbS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235900), + _bby_ = caml_call2(Runtime_ocaml_Runtime[93], _bbS_, _bbR_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bby_, taux_francs_vers_euros); + } + function _bbh_(param){ + switch(type_pret[0]){ + case 0: + var _bbi_ = 0; break; + case 1: + var _bbi_ = 1; break; + case 2: + var _bbi_ = 0; break; + case 3: + var _bbi_ = 0; break; + default: var _bbi_ = 0; + } + var + _bbj_ = 0 === anciennete_logement[0] ? 1 : 0, + _bbk_ = caml_call2(Runtime_ocaml_Runtime[83], _bbj_, _bbi_), + _bbl_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 12, 31), + _bbm_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _bbl_), + _bbn_ = caml_call2(Runtime_ocaml_Runtime[83], _bbm_, _bbk_), + _bbo_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _bbp_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _bbo_), + _bbq_ = caml_call2(Runtime_ocaml_Runtime[83], _bbp_, _bbn_), + _bbr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bbs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbr_), + _bbt_ = caml_call2(Runtime_ocaml_Runtime[83], _bbs_, _bbq_), + _bbu_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bbv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bbu_), + _bbw_ = caml_call2(Runtime_ocaml_Runtime[83], _bbv_, _bbt_); + return caml_call2(Runtime_ocaml_Runtime[29], _pA_, _bbw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pB_, [0], _bbh_, _bbg_); + } + function _a9w_(param){ + function _baF_(param){ + switch(zone[0]){ + case 0: + var _baW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$206); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _baW_)) + var + _baX_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_161100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_194400); + else + var + _baY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$160), + _baZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _baY_), + _ba0_ = caml_call1(Runtime_ocaml_Runtime[69], _baZ_), + _ba1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33300), + _ba2_ = caml_call2(Runtime_ocaml_Runtime[104], _ba1_, _ba0_), + _ba3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_227700), + _baX_ = caml_call2(Runtime_ocaml_Runtime[93], _ba3_, _ba2_); + break; + case 1: + var _ba4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$207); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _ba4_)) + var + _baX_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_143600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_172900); + else + var + _ba5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$161), + _ba6_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _ba5_), + _ba7_ = caml_call1(Runtime_ocaml_Runtime[69], _ba6_), + _ba8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29300), + _ba9_ = caml_call2(Runtime_ocaml_Runtime[104], _ba8_, _ba7_), + _ba__ = caml_call1(Runtime_ocaml_Runtime[31], cst_202200), + _baX_ = caml_call2(Runtime_ocaml_Runtime[93], _ba__, _ba9_); + break; + default: + var _ba$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$208); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _ba$_)) + var + _baX_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_134100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_160900); + else + var + _bba_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$162), + _bbb_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bba_), + _bbc_ = caml_call1(Runtime_ocaml_Runtime[69], _bbb_), + _bbd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26800), + _bbe_ = caml_call2(Runtime_ocaml_Runtime[104], _bbd_, _bbc_), + _bbf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_187700), + _baX_ = caml_call2(Runtime_ocaml_Runtime[93], _bbf_, _bbe_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _baX_, taux_francs_vers_euros); + } + function _baG_(param){ + switch(type_pret[0]){ + case 0: + var _baH_ = 0; break; + case 1: + var _baH_ = 1; break; + case 2: + var _baH_ = 0; break; + case 3: + var _baH_ = 0; break; + default: var _baH_ = 0; + } + var + _baI_ = 0 === anciennete_logement[0] ? 0 : 1, + _baJ_ = caml_call2(Runtime_ocaml_Runtime[83], _baI_, _baH_), + _baK_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), + _baL_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _baK_), + _baM_ = caml_call2(Runtime_ocaml_Runtime[83], _baL_, _baJ_), + _baN_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _baO_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _baN_), + _baP_ = caml_call2(Runtime_ocaml_Runtime[83], _baO_, _baM_), + _baQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _baR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _baQ_), + _baS_ = caml_call2(Runtime_ocaml_Runtime[83], _baR_, _baP_), + _baT_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _baU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _baT_), + _baV_ = caml_call2(Runtime_ocaml_Runtime[83], _baU_, _baS_); + return caml_call2(Runtime_ocaml_Runtime[29], _pC_, _baV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pD_, [0], _baG_, _baF_); + } + function _a9x_(param){ + function _a$4_(param){ + switch(zone[0]){ + case 0: + var _baj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _baj_)) + var + _bak_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_200100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_141400); + else + var + _bal_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$163), + _bam_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bal_), + _ban_ = caml_call1(Runtime_ocaml_Runtime[69], _bam_), + _bao_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41300), + _bap_ = caml_call2(Runtime_ocaml_Runtime[104], _bao_, _ban_), + _baq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182700), + _bak_ = caml_call2(Runtime_ocaml_Runtime[93], _baq_, _bap_); + break; + case 1: + var _bar_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bar_)) + var + _bak_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_178600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_215000); + else + var + _bas_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$164), + _bat_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _bas_), + _bau_ = caml_call1(Runtime_ocaml_Runtime[69], _bat_), + _bav_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36400), + _baw_ = caml_call2(Runtime_ocaml_Runtime[104], _bav_, _bau_), + _bax_ = caml_call1(Runtime_ocaml_Runtime[31], cst_251400), + _bak_ = caml_call2(Runtime_ocaml_Runtime[93], _bax_, _baw_); + break; + default: + var _bay_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _bay_)) + var + _bak_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_166700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_199900); + else + var + _baz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$165), + _baA_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _baz_), + _baB_ = caml_call1(Runtime_ocaml_Runtime[69], _baA_), + _baC_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33200), + _baD_ = caml_call2(Runtime_ocaml_Runtime[104], _baC_, _baB_), + _baE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233100), + _bak_ = caml_call2(Runtime_ocaml_Runtime[93], _baE_, _baD_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _bak_, taux_francs_vers_euros); + } + function _a$5_(param){ + switch(type_pret[0]){ + case 0: + var _a$6_ = 0; break; + case 1: + var _a$6_ = 1; break; + case 2: + var _a$6_ = 0; break; + case 3: + var _a$6_ = 0; break; + default: var _a$6_ = 0; + } + var + _a$7_ = 0 === anciennete_logement[0] ? 1 : 0, + _a$8_ = caml_call2(Runtime_ocaml_Runtime[83], _a$7_, _a$6_), + _a$9_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 6, 30), + _a$__ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _a$9_), + _a$$_ = caml_call2(Runtime_ocaml_Runtime[83], _a$__, _a$8_), + _baa_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _bab_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _baa_), + _bac_ = caml_call2(Runtime_ocaml_Runtime[83], _bab_, _a$$_), + _bad_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _bae_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bad_), + _baf_ = caml_call2(Runtime_ocaml_Runtime[83], _bae_, _bac_), + _bag_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _bah_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _bag_), + _bai_ = caml_call2(Runtime_ocaml_Runtime[83], _bah_, _baf_); + return caml_call2(Runtime_ocaml_Runtime[29], _pE_, _bai_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pF_, [0], _a$5_, _a$4_); + } + function _a9y_(param){ + function _a$r_(param){ + switch(zone[0]){ + case 0: + var _a$I_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$I_)) + var + _a$J_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_159500) + : caml_call1(Runtime_ocaml_Runtime[31], cst_192500); + else + var + _a$K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$166), + _a$L_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$K_), + _a$M_ = caml_call1(Runtime_ocaml_Runtime[69], _a$L_), + _a$N_ = caml_call1(Runtime_ocaml_Runtime[31], cst_33000), + _a$O_ = caml_call2(Runtime_ocaml_Runtime[104], _a$N_, _a$M_), + _a$P_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500), + _a$J_ = caml_call2(Runtime_ocaml_Runtime[93], _a$P_, _a$O_); + break; + case 1: + var _a$Q_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$Q_)) + var + _a$J_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_142200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_171200); + else + var + _a$R_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$167), + _a$S_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$R_), + _a$T_ = caml_call1(Runtime_ocaml_Runtime[69], _a$S_), + _a$U_ = caml_call1(Runtime_ocaml_Runtime[31], cst_29000), + _a$V_ = caml_call2(Runtime_ocaml_Runtime[104], _a$U_, _a$T_), + _a$W_ = caml_call1(Runtime_ocaml_Runtime[31], cst_200200), + _a$J_ = caml_call2(Runtime_ocaml_Runtime[93], _a$W_, _a$V_); + break; + default: + var _a$X_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$X_)) + var + _a$J_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_159300); + else + var + _a$Y_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$168), + _a$Z_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$Y_), + _a$0_ = caml_call1(Runtime_ocaml_Runtime[69], _a$Z_), + _a$1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_26500), + _a$2_ = caml_call2(Runtime_ocaml_Runtime[104], _a$1_, _a$0_), + _a$3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185800$0), + _a$J_ = caml_call2(Runtime_ocaml_Runtime[93], _a$3_, _a$2_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a$J_, taux_francs_vers_euros); + } + function _a$s_(param){ + switch(type_pret[0]){ + case 0: + var _a$t_ = 0; break; + case 1: + var _a$t_ = 1; break; + case 2: + var _a$t_ = 0; break; + case 3: + var _a$t_ = 0; break; + default: var _a$t_ = 0; + } + var + _a$u_ = 0 === anciennete_logement[0] ? 0 : 1, + _a$v_ = caml_call2(Runtime_ocaml_Runtime[83], _a$u_, _a$t_), + _a$w_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _a$x_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a$w_), + _a$y_ = caml_call2(Runtime_ocaml_Runtime[83], _a$x_, _a$v_), + _a$z_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a$A_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a$z_), + _a$B_ = caml_call2(Runtime_ocaml_Runtime[83], _a$A_, _a$y_), + _a$C_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a$D_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$C_), + _a$E_ = caml_call2(Runtime_ocaml_Runtime[83], _a$D_, _a$B_), + _a$F_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a$G_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a$F_), + _a$H_ = caml_call2(Runtime_ocaml_Runtime[83], _a$G_, _a$E_); + return caml_call2(Runtime_ocaml_Runtime[29], _pG_, _a$H_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pH_, [0], _a$s_, _a$r_); + } + function _a9z_(param){ + function _a_Q_(param){ + switch(zone[0]){ + case 0: + var _a_7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_7_)) + var + _a_8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_198100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_239000); + else + var + _a_9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$169), + _a___ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_9_), + _a_$_ = caml_call1(Runtime_ocaml_Runtime[69], _a___), + _a$a_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40900), + _a$b_ = caml_call2(Runtime_ocaml_Runtime[104], _a$a_, _a_$_), + _a$c_ = caml_call1(Runtime_ocaml_Runtime[31], cst_279900), + _a_8_ = caml_call2(Runtime_ocaml_Runtime[93], _a$c_, _a$b_); + break; + case 1: + var _a$d_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$d_)) + var + _a_8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_176800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_212800); + else + var + _a$e_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$170), + _a$f_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$e_), + _a$g_ = caml_call1(Runtime_ocaml_Runtime[69], _a$f_), + _a$h_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36000), + _a$i_ = caml_call2(Runtime_ocaml_Runtime[104], _a$h_, _a$g_), + _a$j_ = caml_call1(Runtime_ocaml_Runtime[31], cst_248800), + _a_8_ = caml_call2(Runtime_ocaml_Runtime[93], _a$j_, _a$i_); + break; + default: + var _a$k_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a$k_)) + var + _a_8_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_165000) + : caml_call1(Runtime_ocaml_Runtime[31], cst_197900); + else + var + _a$l_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$171), + _a$m_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a$l_), + _a$n_ = caml_call1(Runtime_ocaml_Runtime[69], _a$m_), + _a$o_ = caml_call1(Runtime_ocaml_Runtime[31], cst_32900), + _a$p_ = caml_call2(Runtime_ocaml_Runtime[104], _a$o_, _a$n_), + _a$q_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230800), + _a_8_ = caml_call2(Runtime_ocaml_Runtime[93], _a$q_, _a$p_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a_8_, taux_francs_vers_euros); + } + function _a_R_(param){ + switch(type_pret[0]){ + case 0: + var _a_S_ = 0; break; + case 1: + var _a_S_ = 1; break; + case 2: + var _a_S_ = 0; break; + case 3: + var _a_S_ = 0; break; + default: var _a_S_ = 0; + } + var + _a_T_ = 0 === anciennete_logement[0] ? 1 : 0, + _a_U_ = caml_call2(Runtime_ocaml_Runtime[83], _a_T_, _a_S_), + _a_V_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 6, 30), + _a_W_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a_V_), + _a_X_ = caml_call2(Runtime_ocaml_Runtime[83], _a_W_, _a_U_), + _a_Y_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a_Z_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a_Y_), + _a_0_ = caml_call2(Runtime_ocaml_Runtime[83], _a_Z_, _a_X_), + _a_1_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a_2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_1_), + _a_3_ = caml_call2(Runtime_ocaml_Runtime[83], _a_2_, _a_0_), + _a_4_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a_5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_4_), + _a_6_ = caml_call2(Runtime_ocaml_Runtime[83], _a_5_, _a_3_); + return caml_call2(Runtime_ocaml_Runtime[29], _pI_, _a_6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pJ_, [0], _a_R_, _a_Q_); + } + function _a9A_(param){ + function _a_d_(param){ + switch(zone[0]){ + case 0: + var _a_u_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_u_)) + var + _a_v_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167800$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_202500$1); + else + var + _a_w_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$172), + _a_x_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_w_), + _a_y_ = caml_call1(Runtime_ocaml_Runtime[69], _a_x_), + _a_z_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34700$0), + _a_A_ = caml_call2(Runtime_ocaml_Runtime[104], _a_z_, _a_y_), + _a_B_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237200$0), + _a_v_ = caml_call2(Runtime_ocaml_Runtime[93], _a_B_, _a_A_); + break; + case 1: + var _a_C_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_C_)) + var + _a_v_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_149600$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$0); + else + var + _a_D_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$173), + _a_E_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_D_), + _a_F_ = caml_call1(Runtime_ocaml_Runtime[69], _a_E_), + _a_G_ = caml_call1(Runtime_ocaml_Runtime[31], cst_30500$2), + _a_H_ = caml_call2(Runtime_ocaml_Runtime[104], _a_G_, _a_F_), + _a_I_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210600$0), + _a_v_ = caml_call2(Runtime_ocaml_Runtime[93], _a_I_, _a_H_); + break; + default: + var _a_J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a_J_)) + var + _a_v_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139700$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167600$0); + else + var + _a_K_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$174), + _a_L_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a_K_), + _a_M_ = caml_call1(Runtime_ocaml_Runtime[69], _a_L_), + _a_N_ = caml_call1(Runtime_ocaml_Runtime[31], cst_27900$0), + _a_O_ = caml_call2(Runtime_ocaml_Runtime[104], _a_N_, _a_M_), + _a_P_ = caml_call1(Runtime_ocaml_Runtime[31], cst_195500$0), + _a_v_ = caml_call2(Runtime_ocaml_Runtime[93], _a_P_, _a_O_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a_v_, taux_francs_vers_euros); + } + function _a_e_(param){ + switch(type_pret[0]){ + case 0: + var _a_f_ = 0; break; + case 1: + var _a_f_ = 1; break; + case 2: + var _a_f_ = 0; break; + case 3: + var _a_f_ = 0; break; + default: var _a_f_ = 0; + } + var + _a_g_ = 0 === anciennete_logement[0] ? 0 : 1, + _a_h_ = caml_call2(Runtime_ocaml_Runtime[83], _a_g_, _a_f_), + _a_i_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a_j_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a_i_), + _a_k_ = caml_call2(Runtime_ocaml_Runtime[83], _a_j_, _a_h_), + _a_l_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a_m_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a_l_), + _a_n_ = caml_call2(Runtime_ocaml_Runtime[83], _a_m_, _a_k_), + _a_o_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a_p_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_o_), + _a_q_ = caml_call2(Runtime_ocaml_Runtime[83], _a_p_, _a_n_), + _a_r_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a_s_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a_r_), + _a_t_ = caml_call2(Runtime_ocaml_Runtime[83], _a_s_, _a_q_); + return caml_call2(Runtime_ocaml_Runtime[29], _pK_, _a_t_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pL_, [0], _a_e_, _a_d_); + } + var + _a9B_ = + [0, + function(param){ + function _a9C_(param){ + switch(zone[0]){ + case 0: + var + _a9T_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a9T_)) + var + _a9U_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_208500$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_251500$0); + else + var + _a9V_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$175), + _a9W_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a9V_), + _a9X_ = caml_call1(Runtime_ocaml_Runtime[69], _a9W_), + _a9Y_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43000$0), + _a9Z_ = caml_call2(Runtime_ocaml_Runtime[104], _a9Y_, _a9X_), + _a90_ = caml_call1(Runtime_ocaml_Runtime[31], cst_294500$0), + _a9U_ = caml_call2(Runtime_ocaml_Runtime[93], _a90_, _a9Z_); + break; + case 1: + var + _a91_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a91_)) + var + _a9U_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_186000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_223900$0); + else + var + _a92_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$176), + _a93_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a92_), + _a94_ = caml_call1(Runtime_ocaml_Runtime[69], _a93_), + _a95_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37900$0), + _a96_ = caml_call2(Runtime_ocaml_Runtime[104], _a95_, _a94_), + _a97_ = caml_call1(Runtime_ocaml_Runtime[31], cst_261800$0), + _a9U_ = caml_call2(Runtime_ocaml_Runtime[93], _a97_, _a96_); + break; + default: + var + _a98_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a98_)) + var + _a9U_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_173600$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_208200$0); + else + var + _a99_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$177), + _a9__ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a99_), + _a9$_ = caml_call1(Runtime_ocaml_Runtime[69], _a9__), + _a_a_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34600), + _a_b_ = caml_call2(Runtime_ocaml_Runtime[104], _a_a_, _a9$_), + _a_c_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$0), + _a9U_ = caml_call2(Runtime_ocaml_Runtime[93], _a_c_, _a_b_); + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _a9U_, taux_francs_vers_euros); + } + function _a9D_(param){ + switch(type_pret[0]){ + case 0: + var _a9E_ = 0; break; + case 1: + var _a9E_ = 1; break; + case 2: + var _a9E_ = 0; break; + case 3: + var _a9E_ = 0; break; + default: var _a9E_ = 0; + } + var + _a9F_ = 0 === anciennete_logement[0] ? 1 : 0, + _a9G_ = caml_call2(Runtime_ocaml_Runtime[83], _a9F_, _a9E_), + _a9H_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a9I_ = + caml_call2 + (Runtime_ocaml_Runtime[115], date_signature_pret, _a9H_), + _a9J_ = caml_call2(Runtime_ocaml_Runtime[83], _a9I_, _a9G_), + _a9K_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a9L_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a9K_), + _a9M_ = caml_call2(Runtime_ocaml_Runtime[83], _a9L_, _a9J_), + _a9N_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a9O_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a9N_), + _a9P_ = caml_call2(Runtime_ocaml_Runtime[83], _a9O_, _a9M_), + _a9Q_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a9R_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a9Q_), + _a9S_ = caml_call2(Runtime_ocaml_Runtime[83], _a9R_, _a9P_); + return caml_call2(Runtime_ocaml_Runtime[29], _pM_, _a9S_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pN_, [0], _a9D_, _a9C_); + }, + _a9A_, + _a9z_, + _a9y_, + _a9x_, + _a9w_, + _a9v_, + _a9u_, + _a9t_, + _a9s_, + _a9r_, + _a9q_, + _a9p_, + _a9o_, + _a9n_, + _a9m_, + _a9l_, + _a9k_, + _a9j_, + _a9i_, + _a9h_, + _a9g_, + _a9f_, + _a9e_, + _a9d_, + _a9c_, + _a9b_, + _a9a_, + _a8$_, + _a8__, + _a89_, + _a88_, + _a87_, + _a86_, + _a85_, + _a84_, + _a83_, + _a82_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _pO_, _a9B_, _a81_, _a80_); + } + function _a8y_(param){return 1;} + var + _a8z_ = + [0, + function(param){ + function _a8A_(param){ + var _a8S_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _a8S_)) + var + _a8T_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_86900) + : caml_call1(Runtime_ocaml_Runtime[31], cst_97100); + else + var + _a8U_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$178), + _a8V_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _a8U_), + _a8W_ = caml_call1(Runtime_ocaml_Runtime[69], _a8V_), + _a8X_ = caml_call1(Runtime_ocaml_Runtime[31], cst_10200), + _a8Y_ = caml_call2(Runtime_ocaml_Runtime[104], _a8X_, _a8W_), + _a8Z_ = caml_call1(Runtime_ocaml_Runtime[31], cst_107300), + _a8T_ = caml_call2(Runtime_ocaml_Runtime[93], _a8Z_, _a8Y_); + return caml_call2 + (Runtime_ocaml_Runtime[104], _a8T_, taux_francs_vers_euros); + } + function _a8B_(param){ + switch(type_pret[0]){ + case 0: + var _a8C_ = 0; break; + case 1: + var _a8C_ = 1; break; + case 2: + var _a8C_ = 0; break; + case 3: + var _a8C_ = 0; break; + default: var _a8C_ = 0; + } + if(0 === anciennete_logement[0]) + var _a8D_ = 0; + else + var + ameliore_par_occupant = anciennete_logement[1], + _a8R_ = 0 === ameliore_par_occupant[0] ? 1 : 0, + _a8D_ = _a8R_; + var + _a8E_ = caml_call2(Runtime_ocaml_Runtime[83], _a8D_, _a8C_), + _a8F_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 11, 27), + _a8G_ = + caml_call2 + (Runtime_ocaml_Runtime[120], date_signature_pret, _a8F_), + _a8H_ = caml_call2(Runtime_ocaml_Runtime[83], _a8G_, _a8E_), + _a8I_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 6, 30), + _a8J_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a8I_), + _a8K_ = caml_call2(Runtime_ocaml_Runtime[83], _a8J_, _a8H_), + _a8L_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _a8M_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a8L_), + _a8N_ = caml_call2(Runtime_ocaml_Runtime[83], _a8M_, _a8K_), + _a8O_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a8P_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a8O_), + _a8Q_ = caml_call2(Runtime_ocaml_Runtime[83], _a8P_, _a8N_); + return caml_call2(Runtime_ocaml_Runtime[29], _pP_, _a8Q_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _pQ_, [0], _a8B_, _a8A_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _pR_, _a8z_, _a8y_, _a8x_); + }, + _a8t_], + _a8v_ = + caml_call4(Runtime_ocaml_Runtime[63], _pS_, _a8u_, _a8s_, _a8r_); + return _a8v_; + } + catch(_a8w_){ + var _a8q_ = caml_wrap_exception(_a8w_); + if(_a8q_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _or_], 1); + throw caml_maybe_attach_backtrace(_a8q_, 0); + } + } + var + calcul_plafond_mensualite_d832 = + caml_call3 + (Runtime_ocaml_Runtime[28], _pT_, Runtime_ocaml_Runtime[10], _a40_); + try{ + var + _a42_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _a43_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _pV_, 1); + }, + _a44_ = caml_call4(Runtime_ocaml_Runtime[63], _pW_, [0], _a43_, _a42_); + } + catch(_a8p_){ + var _a41_ = caml_wrap_exception(_a8p_); + if(_a41_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _pU_], 1); + throw caml_maybe_attach_backtrace(_a41_, 0); + } + var + n_nombre_parts_d832_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _pX_, Runtime_ocaml_Runtime[15], _a44_); + try{ + var + _a46_ = + function(param){ + var + _a8o_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83); + return caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies, + _a8o_) + ? caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_multiplicateur_d83) + : ressources_menage_arrondies; + }, + _a47_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _pZ_, 1); + }, + _a48_ = + [0, + function(param){ + function _a8m_(param){return ressources_menage_arrondies;} + function _a8n_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _p0_, situation_r822_11_13_17); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _p1_, [0], _a8n_, _a8m_); + }], + _a49_ = caml_call4(Runtime_ocaml_Runtime[63], _p2_, _a48_, _a47_, _a46_); + } + catch(_a8l_){ + var _a45_ = caml_wrap_exception(_a8l_); + if(_a45_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _pY_], 1); + throw caml_maybe_attach_backtrace(_a45_, 0); + } + var + ressources_menage_avec_d832_18 = + caml_call3 + (Runtime_ocaml_Runtime[28], _p3_, Runtime_ocaml_Runtime[13], _a49_); + function _a4__(aide_finale){ + try{ + var + _a8f_ = + function(param){ + var + _a8j_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$225), + _a8k_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10); + return caml_call2(Runtime_ocaml_Runtime[128], _a8k_, _a8j_) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d832_10) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$226); + }, + _a8g_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _p5_, 1); + }, + _a8h_ = caml_call4(Runtime_ocaml_Runtime[63], _p6_, [0], _a8g_, _a8f_); + return _a8h_; + } + catch(_a8i_){ + var _a8e_ = caml_wrap_exception(_a8i_); + if(_a8e_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _p4_], 1); + throw caml_maybe_attach_backtrace(_a8e_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _p7_, Runtime_ocaml_Runtime[10], _a4__); + function _a4$_(allocation_mensuelle){ + try{ + var + _a76_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[98], + mensualite_principale, + allocation_mensuelle); + }, + _a77_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _p9_, 1); + }, + _a78_ = + [0, + function(param){ + function _a7$_(param){ + var + _a8d_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_principale, + montant_forfaitaire_charges_d8); + return caml_call2 + (Runtime_ocaml_Runtime[98], _a8d_, allocation_mensuelle); + } + function _a8a_(param){ + var + _a8b_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 6, 30), + _a8c_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _a8b_); + return caml_call2(Runtime_ocaml_Runtime[29], _p__, _a8c_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _p$_, [0], _a8a_, _a7$_); + }], + _a79_ = + caml_call4(Runtime_ocaml_Runtime[63], _qa_, _a78_, _a77_, _a76_); + return _a79_; + } + catch(_a7__){ + var _a75_ = caml_wrap_exception(_a7__); + if(_a75_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _p8_], 1); + throw caml_maybe_attach_backtrace(_a75_, 0); + } + } + var + depense_nette_minimale_d832_10 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qb_, Runtime_ocaml_Runtime[10], _a4$_); + try{ + var + _a5b_ = + function(param){ + var + _a72_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qd_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _a73_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _qe_, + calcul_plafond_mensualite_d832), + _a72_), + _a74_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qf_, + Runtime_ocaml_Runtime[13], + _a73_); + return caml_call2(Runtime_ocaml_Runtime[27], _qg_, _a74_); + }, + _a5c_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qh_, 1); + }, + _a5d_ = + [0, + function(param){ + function _a7U_(param){ + var + _a7W_ = caml_call3 (Runtime_ocaml_Runtime[28], - _BR_, + _qi_, Runtime_ocaml_Runtime[16], date_signature_pret), - _bni_= + _a7X_ = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _BS_, + _qj_, calcul_plafond_mensualite_d832), - _bnh_), - _bnj_= + _a7W_), + _a7Y_ = caml_call3 (Runtime_ocaml_Runtime[28], - _BT_, + _qk_, Runtime_ocaml_Runtime[13], - _bni_); - return caml_call2(Runtime_ocaml_Runtime[27],_BU_,_bnj_)}, - _bkJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_BV_,1)}, - _bkK_= - [0, - function(param) - {function _bm$_(param) - {var - _bnb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BW_, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _bnc_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _BX_, - calcul_plafond_mensualite_d832), - _bnb_), - _bnd_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _BY_, - Runtime_ocaml_Runtime[13], - _bnc_), - plafond_signature= - caml_call2(Runtime_ocaml_Runtime[27],_BZ_,_bnd_), - _bne_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _B0_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _bnf_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _B1_, - calcul_plafond_mensualite_d832), - _bne_), - _bng_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _B2_, - Runtime_ocaml_Runtime[13], - _bnf_), - plafond_entree= - caml_call2(Runtime_ocaml_Runtime[27],_B3_,_bng_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ?plafond_entree - :plafond_signature} - function _bna_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _B4_, - local_habite_premiere_fois_ben)} - return caml_call4(Runtime_ocaml_Runtime[63],_B5_,[0],_bna_,_bm$_)}], - _bkL_=caml_call4(Runtime_ocaml_Runtime[63],_B6_,_bkK_,_bkJ_,_bkI_)} - catch(_bm__) - {_bm__ = caml_wrap_exception(_bm__); - if(_bm__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_BQ_]; - throw _bm__} - var - plafond_mensualite_d832_10_3_b= + _a7X_), + plafond_signature = + caml_call2(Runtime_ocaml_Runtime[27], _ql_, _a7Y_), + _a7Z_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qm_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _a70_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _qn_, + calcul_plafond_mensualite_d832), + _a7Z_), + _a71_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qo_, + Runtime_ocaml_Runtime[13], + _a70_), + plafond_entree = + caml_call2(Runtime_ocaml_Runtime[27], _qp_, _a71_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ? plafond_entree + : plafond_signature; + } + function _a7V_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _qq_, + local_habite_premiere_fois_ben); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _qr_, [0], _a7V_, _a7U_); + }], + _a5e_ = caml_call4(Runtime_ocaml_Runtime[63], _qs_, _a5d_, _a5c_, _a5b_); + } + catch(_a7T_){ + var _a5a_ = caml_wrap_exception(_a7T_); + if(_a5a_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qc_], 1); + throw caml_maybe_attach_backtrace(_a5a_, 0); + } + var + plafond_mensualite_d832_10_3_b = + caml_call3 + (Runtime_ocaml_Runtime[28], _qt_, Runtime_ocaml_Runtime[13], _a5e_); + try{ + var + _a5g_ = function(param){return date_courante;}, + _a5h_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qv_, 1); + }, + _a5i_ = caml_call4(Runtime_ocaml_Runtime[63], _qw_, [0], _a5h_, _a5g_), + calcul_equivalence_loyer_minim$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_B7_,Runtime_ocaml_Runtime[13],_bkL_); - try - {var - _bkM_=function(param){return date_courante}, - _bkN_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_B9_,1)}, - _bkO_=caml_call4(Runtime_ocaml_Runtime[63],_B__,[0],_bkN_,_bkM_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_B$_,Runtime_ocaml_Runtime[16],_bkO_)} - catch(_bm9_) - {_bm9_ = caml_wrap_exception(_bm9_); - if(_bm9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_B8_]; - throw _bm9_} - try - {var - _bkP_=function(param){return ressources_menage_arrondies}, - _bkQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cb_,1)}, - _bkR_=caml_call4(Runtime_ocaml_Runtime[63],_Cc_,[0],_bkQ_,_bkP_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Cd_,Runtime_ocaml_Runtime[13],_bkR_)} - catch(_bm8_) - {_bm8_ = caml_wrap_exception(_bm8_); - if(_bm8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ca_]; - throw _bm8_} - try - {var - _bkS_=function(param){return 0}, - _bkT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cf_,1)}, - _bkU_=caml_call4(Runtime_ocaml_Runtime[63],_Cg_,[0],_bkT_,_bkS_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ch_,Runtime_ocaml_Runtime[12],_bkU_)} - catch(_bm7_) - {_bm7_ = caml_wrap_exception(_bm7_); - if(_bm7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ce_]; - throw _bm7_} - try - {var - _bkV_=function(param){return n_nombre_parts_d832_11}, - _bkW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cj_,1)}, - _bkX_=caml_call4(Runtime_ocaml_Runtime[63],_Ck_,[0],_bkW_,_bkV_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Cl_,Runtime_ocaml_Runtime[15],_bkX_)} - catch(_bm6_) - {_bm6_ = caml_wrap_exception(_bm6_); - if(_bm6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ci_]; - throw _bm6_} - var - _bkY_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Cm_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_Cn_,_bkY_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _bkZ_= - function(param) - {var - _bm3_= - caml_call2 - (Runtime_ocaml_Runtime[104], - coefficient_multiplicateur_d83$0, - n_nombre_parts_d832_11), - _bm4_= - caml_call2 - (Runtime_ocaml_Runtime[108],ressources_menage_arrondies,_bm3_), - _bm5_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$2); - return caml_call2(Runtime_ocaml_Runtime[97],_bm5_,_bm4_)}, - _bk0_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Cp_,1)}, - _bk1_=caml_call4(Runtime_ocaml_Runtime[63],_Cq_,[0],_bk0_,_bkZ_)} - catch(_bm2_) - {_bm2_ = caml_wrap_exception(_bm2_); - if(_bm2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Co_]; - throw _bm2_} - var - coefficient_prise_en_charge_d8= + (Runtime_ocaml_Runtime[28], _qx_, Runtime_ocaml_Runtime[16], _a5i_); + } + catch(_a7S_){ + var _a5f_ = caml_wrap_exception(_a7S_); + if(_a5f_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qu_], 1); + throw caml_maybe_attach_backtrace(_a5f_, 0); + } + try{ + var + _a5k_ = function(param){return ressources_menage_arrondies;}, + _a5l_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qz_, 1); + }, + _a5m_ = caml_call4(Runtime_ocaml_Runtime[63], _qA_, [0], _a5l_, _a5k_), + calcul_equivalence_loyer_minim$1 = caml_call3 - (Runtime_ocaml_Runtime[28],_Cr_,Runtime_ocaml_Runtime[15],_bk1_); - function _bk2_(allocation_mensuelle) - {try - {var - _bmT_= - function(param) - {var - _bmX_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ct_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bmY_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Cu_, - depense_nette_minimale_d832_10), - _bmX_), - _bmZ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Cv_, - Runtime_ocaml_Runtime[13], - _bmY_), - depense_nette_minimale= - caml_call2(Runtime_ocaml_Runtime[27],_Cw_,_bmZ_), - _bm0_= - caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[118],depense_nette_minimale,_bm0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$295); - var - _bm1_= - caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_avec_d832_18, - coefficient_multiplicateur_d83$1); - return caml_call2 - (Runtime_ocaml_Runtime[98],_bm1_,depense_nette_minimale)}, - _bmU_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Cx_,1)}, - _bmV_=caml_call4(Runtime_ocaml_Runtime[63],_Cy_,[0],_bmU_,_bmT_); - return _bmV_} - catch(_bmW_) - {_bmW_ = caml_wrap_exception(_bmW_); - if(_bmW_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Cs_]; - throw _bmW_}} - var - abattement_depense_nette_minim= + (Runtime_ocaml_Runtime[28], _qB_, Runtime_ocaml_Runtime[13], _a5m_); + } + catch(_a7R_){ + var _a5j_ = caml_wrap_exception(_a7R_); + if(_a5j_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qy_], 1); + throw caml_maybe_attach_backtrace(_a5j_, 0); + } + try{ + var + _a5o_ = function(param){return 0;}, + _a5p_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qD_, 1); + }, + _a5q_ = caml_call4(Runtime_ocaml_Runtime[63], _qE_, [0], _a5p_, _a5o_), + calcul_equivalence_loyer_minim$2 = caml_call3 - (Runtime_ocaml_Runtime[28],_Cz_,Runtime_ocaml_Runtime[10],_bk2_); - try - {var - _bk3_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bk4_=function(param){return 0}, - _bk5_= - [0, - function(param) - {function _bmw_(param) - {if(! copropriete)return plafond_mensualite_d832_10_3_b; - var _bmS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$8); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bmS_)} - function _bmx_(param) - {var - _bmQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bmR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmQ_); - return caml_call2(Runtime_ocaml_Runtime[29],_CB_,_bmR_)} - var - _bmy_= - [0, - function(param) - {function _bmz_(param) - {if(! copropriete)return plafond_mensualite_d832_10_3_b; - var _bmP_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$9); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bmP_)} - function _bmA_(param) - {var - _bmK_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bmL_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bmK_), - _bmM_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bmN_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmM_), - _bmO_=caml_call2(Runtime_ocaml_Runtime[83],_bmN_,_bmL_); - return caml_call2(Runtime_ocaml_Runtime[29],_CC_,_bmO_)} - var - _bmB_= - [0, - function(param) - {function _bmC_(param) - {if(! copropriete)return plafond_mensualite_d832_10_3_b; - var _bmJ_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$10); - return caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_mensualite_d832_10_3_b, - _bmJ_)} - function _bmD_(param) - {var - _bmE_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bmF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bmE_), - _bmG_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bmH_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bmG_), - _bmI_=caml_call2(Runtime_ocaml_Runtime[83],_bmH_,_bmF_); - return caml_call2(Runtime_ocaml_Runtime[29],_CD_,_bmI_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_CE_,[0],_bmD_,_bmC_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_CF_,_bmB_,_bmA_,_bmz_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_CG_,_bmy_,_bmx_,_bmw_)}], - _bk6_=caml_call4(Runtime_ocaml_Runtime[63],_CH_,_bk5_,_bk4_,_bk3_)} - catch(_bmv_) - {_bmv_ = caml_wrap_exception(_bmv_); - if(_bmv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CA_]; - throw _bmv_} - var - plafond_mensualite_d832_10_3_c= + (Runtime_ocaml_Runtime[28], _qF_, Runtime_ocaml_Runtime[12], _a5q_); + } + catch(_a7Q_){ + var _a5n_ = caml_wrap_exception(_a7Q_); + if(_a5n_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qC_], 1); + throw caml_maybe_attach_backtrace(_a5n_, 0); + } + try{ + var + _a5s_ = function(param){return n_nombre_parts_d832_11;}, + _a5t_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qH_, 1); + }, + _a5u_ = caml_call4(Runtime_ocaml_Runtime[63], _qI_, [0], _a5t_, _a5s_), + calcul_equivalence_loyer_minim$3 = caml_call3 - (Runtime_ocaml_Runtime[28],_CI_,Runtime_ocaml_Runtime[13],_bk6_); - try - {var - _bk7_=function(param){throw Runtime_ocaml_Runtime[2]}, - _bk8_=function(param){return 0}, - _bk9_= - function(param) - {function _bms_(param){return calcul_equivalence_loyer_minim$4} - function _bmt_(param) - {switch(type_travaux_logement[0]) - {case 0:var _bmu_=0;break; - case 1:var _bmu_=1;break; - default:var _bmu_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_CK_,_bmu_)} - return caml_call4(Runtime_ocaml_Runtime[63],_CL_,[0],_bmt_,_bms_)}, - _bk__= - [0, - function(param) - {function _bmd_(param) - {var - ressources_menage_arrondies$0= - caml_call1 - (Runtime_ocaml_Runtime[70],ressources_menage_arrondies), - montant_limite_tranches_d832_1$0= - caml_call1 - (Runtime_ocaml_Runtime[70],montant_limite_tranches_d832_1), - _bmi_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$14), - _bmj_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[117], - ressources_menage_arrondies$0, - _bmj_)) + (Runtime_ocaml_Runtime[28], _qJ_, Runtime_ocaml_Runtime[15], _a5u_); + } + catch(_a7P_){ + var _a5r_ = caml_wrap_exception(_a7P_); + if(_a5r_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qG_], 1); + throw caml_maybe_attach_backtrace(_a5r_, 0); + } + var + _a5v_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _qK_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _qL_, _a5v_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _a5x_ = + function(param){ + var + _a7M_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + coefficient_multiplicateur_d83$0, + n_nombre_parts_d832_11), + _a7N_ = + caml_call2 + (Runtime_ocaml_Runtime[108], ressources_menage_arrondies, _a7M_), + _a7O_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$2); + return caml_call2(Runtime_ocaml_Runtime[97], _a7O_, _a7N_); + }, + _a5y_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qN_, 1); + }, + _a5z_ = caml_call4(Runtime_ocaml_Runtime[63], _qO_, [0], _a5y_, _a5x_); + } + catch(_a7L_){ + var _a5w_ = caml_wrap_exception(_a7L_); + if(_a5w_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qM_], 1); + throw caml_maybe_attach_backtrace(_a5w_, 0); + } + var + coefficient_prise_en_charge_d8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _qP_, Runtime_ocaml_Runtime[15], _a5z_); + function _a5A_(allocation_mensuelle){ + try{ + var + _a7C_ = + function(param){ + var + _a7G_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qR_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _a7H_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _qS_, + depense_nette_minimale_d832_10), + _a7G_), + _a7I_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _qT_, + Runtime_ocaml_Runtime[13], + _a7H_), + depense_nette_minimale = + caml_call2(Runtime_ocaml_Runtime[27], _qU_, _a7I_), + _a7J_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[118], depense_nette_minimale, _a7J_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$227); + var + _a7K_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_avec_d832_18, + coefficient_multiplicateur_d83$1); + return caml_call2 + (Runtime_ocaml_Runtime[98], _a7K_, depense_nette_minimale); + }, + _a7D_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _qV_, 1); + }, + _a7E_ = caml_call4(Runtime_ocaml_Runtime[63], _qW_, [0], _a7D_, _a7C_); + return _a7E_; + } + catch(_a7F_){ + var _a7B_ = caml_wrap_exception(_a7F_); + if(_a7B_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qQ_], 1); + throw caml_maybe_attach_backtrace(_a7B_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _qX_, Runtime_ocaml_Runtime[10], _a5A_); + try{ + var + _a5C_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a5D_ = function(param){return 0;}, + _a5E_ = + [0, + function(param){ + function _a7e_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var _a7A_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$8); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _a7A_); + } + function _a7f_(param){ + var + _a7y_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a7z_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7y_); + return caml_call2(Runtime_ocaml_Runtime[29], _qZ_, _a7z_); + } + var + _a7g_ = + [0, + function(param){ + function _a7h_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var _a7x_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$9); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _a7x_); + } + function _a7i_(param){ var - _bmk_= - caml_call2 - (Runtime_ocaml_Runtime[103], - ressources_menage_arrondies$0, - taux_tranche_inferieure_d832_1); - else - var - _bmr_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _bmk_= - caml_call2 - (Runtime_ocaml_Runtime[103], - _bmr_, - taux_tranche_inferieure_d832_1); + _a7s_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _a7t_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a7s_), + _a7u_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _a7v_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7u_), + _a7w_ = caml_call2(Runtime_ocaml_Runtime[83], _a7v_, _a7t_); + return caml_call2(Runtime_ocaml_Runtime[29], _q0_, _a7w_); + } var - _bml_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11); - if - (caml_call2 - (Runtime_ocaml_Runtime[127], - ressources_menage_arrondies$0, - _bml_)) - var - _bmm_= - caml_call2 - (Runtime_ocaml_Runtime[103], - montant_limite_tranches_d832_1$0, - n_nombre_parts_d832_11), - _bmn_= - caml_call2 - (Runtime_ocaml_Runtime[97], - ressources_menage_arrondies$0, - _bmm_), - _bmo_= - caml_call2 - (Runtime_ocaml_Runtime[103], - _bmn_, - taux_tranche_superieure_d832_1); - else - var _bmo_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$296); - var - _bmp_=caml_call2(Runtime_ocaml_Runtime[92],_bmo_,_bmk_), - _bmq_=caml_call2(Runtime_ocaml_Runtime[107],_bmp_,_bmi_); - return caml_call1(Runtime_ocaml_Runtime[71],_bmq_)} - function _bme_(param) - {switch(type_travaux_logement[0]) - {case 0:var _bmf_=0;break; - case 1:var _bmf_=0;break; - default:var _bmf_=1} - switch(type_travaux_logement[0]) - {case 0:var _bmg_=1;break; - case 1:var _bmg_=0;break; - default:var _bmg_=0} - var _bmh_=caml_call2(Runtime_ocaml_Runtime[84],_bmg_,_bmf_); - return caml_call2(Runtime_ocaml_Runtime[29],_CM_,_bmh_)} - return caml_call4(Runtime_ocaml_Runtime[63],_CN_,[0],_bme_,_bmd_)}, - _bk9_], - _bk$_=caml_call4(Runtime_ocaml_Runtime[63],_CO_,_bk__,_bk8_,_bk7_)} - catch(_bmc_) - {_bmc_ = caml_wrap_exception(_bmc_); - if(_bmc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CJ_]; - throw _bmc_} - var - mensualite_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_CP_,Runtime_ocaml_Runtime[13],_bk$_); - try - {var - _bla_= - function(param) - {var - _bl8_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$10), - _bl9_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$11), - _bl__=caml_call1(Runtime_ocaml_Runtime[39],cst_0_005$2), - _bl$_= + _a7j_ = + [0, + function(param){ + function _a7k_(param){ + if(! copropriete) return plafond_mensualite_d832_10_3_b; + var + _a7r_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$10); + return caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_mensualite_d832_10_3_b, + _a7r_); + } + function _a7l_(param){ + var + _a7m_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a7n_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a7m_), + _a7o_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _a7p_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _a7o_), + _a7q_ = caml_call2(Runtime_ocaml_Runtime[83], _a7p_, _a7n_); + return caml_call2(Runtime_ocaml_Runtime[29], _q1_, _a7q_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _q2_, [0], _a7l_, _a7k_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _q3_, _a7j_, _a7i_, _a7h_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _q4_, _a7g_, _a7f_, _a7e_); + }], + _a5F_ = caml_call4(Runtime_ocaml_Runtime[63], _q5_, _a5E_, _a5D_, _a5C_); + } + catch(_a7d_){ + var _a5B_ = caml_wrap_exception(_a7d_); + if(_a5B_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _qY_], 1); + throw caml_maybe_attach_backtrace(_a5B_, 0); + } + var + plafond_mensualite_d832_10_3_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _q6_, Runtime_ocaml_Runtime[13], _a5F_); + try{ + var + _a5H_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _a5I_ = function(param){return 0;}, + _a5J_ = + function(param){ + function _a7a_(param){return calcul_equivalence_loyer_minim$4;} + function _a7b_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _a7c_ = 0; break; + case 1: + var _a7c_ = 1; break; + default: var _a7c_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _q8_, _a7c_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _q9_, [0], _a7b_, _a7a_); + }, + _a5K_ = + [0, + function(param){ + function _a6X_(param){ + var + ressources_menage_arrondies$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], ressources_menage_arrondies), + montant_limite_tranches_d832_1$0 = + caml_call1 + (Runtime_ocaml_Runtime[70], montant_limite_tranches_d832_1), + _a62_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$2), + _a63_ = caml_call2 - (Runtime_ocaml_Runtime[97], - coefficient_prise_en_charge_d8, - _bl__), - _bma_=caml_call2(Runtime_ocaml_Runtime[103],_bl$_,_bl9_), - _bmb_=caml_call1(Runtime_ocaml_Runtime[78],_bma_); - return caml_call2(Runtime_ocaml_Runtime[107],_bmb_,_bl8_)}, - _blb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_CR_,1)}, - _blc_=caml_call4(Runtime_ocaml_Runtime[63],_CS_,[0],_blb_,_bla_)} - catch(_bl7_) - {_bl7_ = caml_wrap_exception(_bl7_); - if(_bl7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CQ_]; - throw _bl7_} - var - coefficient_prise_en_charge_d8$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_CT_,Runtime_ocaml_Runtime[15],_blc_); - function _bld_(aide_finale) - {try - {var - _blV_= - function(param) - {var - _blZ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _CV_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bl0_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _CW_, - traitement_aide_finale_minorat), - _blZ_), - _bl1_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _CX_, - Runtime_ocaml_Runtime[13], - _bl0_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_CY_,_bl1_), - _bl2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _CZ_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bl3_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _C0_, - abattement_depense_nette_minim), - _bl2_), - _bl4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _C1_, - Runtime_ocaml_Runtime[13], - _bl3_), - _bl5_=caml_call2(Runtime_ocaml_Runtime[27],_C2_,_bl4_), - aide_finale$1= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,_bl5_), - _bl6_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$297); - return caml_call2 - (Runtime_ocaml_Runtime[128],aide_finale$1,_bl6_) - ?aide_finale$1 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$298)}, - _blW_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_C3_,1)}, - _blX_=caml_call4(Runtime_ocaml_Runtime[63],_C4_,[0],_blW_,_blV_); - return _blX_} - catch(_blY_) - {_blY_ = caml_wrap_exception(_blY_); - if(_blY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_CU_]; - throw _blY_}} - var - traitement_aide_finale_abattem= - caml_call3 - (Runtime_ocaml_Runtime[28],_C5_,Runtime_ocaml_Runtime[10],_bld_); - try - {var - _ble_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d832_10_3_c) - ?plafond_mensualite_d832_10_3_c - :mensualite_principale}, - _blf_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_C7_,1)}, - _blg_=caml_call4(Runtime_ocaml_Runtime[63],_C8_,[0],_blf_,_ble_)} - catch(_blU_) - {_blU_ = caml_wrap_exception(_blU_); - if(_blU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_C6_]; - throw _blU_} - var - mensualite_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_C9_,Runtime_ocaml_Runtime[13],_blg_); - try - {var - _blh_= - function(param) - {var _blT_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$3); - return caml_call2 - (Runtime_ocaml_Runtime[127], - coefficient_prise_en_charge_d8$0, - _blT_) - ?caml_call1(Runtime_ocaml_Runtime[39],cst_0_95$4) - :coefficient_prise_en_charge_d8$0}, - _bli_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_C$_,1)}, - _blj_=caml_call4(Runtime_ocaml_Runtime[63],_Da_,[0],_bli_,_blh_)} - catch(_blS_) - {_blS_ = caml_wrap_exception(_blS_); - if(_blS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_C__]; - throw _blS_} - var - coefficient_prise_en_charge_d8$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Db_,Runtime_ocaml_Runtime[15],_blj_); - function _blk_(aide_finale) - {try - {var - _blD_= - function(param) - {var - _blH_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dd_, - Runtime_ocaml_Runtime[13], - aide_finale), - _blI_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _De_, - traitement_aide_finale_abattem), - _blH_), - _blJ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Df_, - Runtime_ocaml_Runtime[13], - _blI_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Dg_,_blJ_), - _blK_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dh_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _blL_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Di_, - contributions_sociales_dot_mon), - _blK_), - _blM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dj_, - Runtime_ocaml_Runtime[13], - _blL_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_Dk_,_blM_), - _blN_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$1), - _blO_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _blP_=caml_call2(Runtime_ocaml_Runtime[98],_blO_,_blN_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_blP_), - _blQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$299), - _blR_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_blR_,_blQ_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$300)}, - _blE_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Dl_,1)}, - _blF_=caml_call4(Runtime_ocaml_Runtime[63],_Dm_,[0],_blE_,_blD_); - return _blF_} - catch(_blG_) - {_blG_ = caml_wrap_exception(_blG_); - if(_blG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Dc_]; - throw _blG_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dn_,Runtime_ocaml_Runtime[10],_blk_); - try - {var - _bll_= - function(param) - {var - _blA_= - caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges_d8), - _blB_= - caml_call2(Runtime_ocaml_Runtime[98],_blA_,mensualite_minimale), - aide_finale= - caml_call2 - (Runtime_ocaml_Runtime[104], - _blB_, - coefficient_prise_en_charge_d8$1), - _blC_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$301); - return caml_call2(Runtime_ocaml_Runtime[113],aide_finale,_blC_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$302) - :aide_finale}, - _blm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Dp_,1)}, - _bln_=caml_call4(Runtime_ocaml_Runtime[63],_Dq_,[0],_blm_,_bll_)} - catch(_blz_) - {_blz_ = caml_wrap_exception(_blz_); - if(_blz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Do_]; - throw _blz_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dr_,Runtime_ocaml_Runtime[13],_bln_); - function _blo_(aide_finale) - {try - {var - _bls_= - function(param) - {var - _blw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dt_, - Runtime_ocaml_Runtime[13], - aide_finale), - _blx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Du_, - traitement_aide_finale_contrib), - _blw_), - _bly_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Dv_, - Runtime_ocaml_Runtime[13], - _blx_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Dw_,_bly_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d832_10) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$303) - :aide_finale$0}, - _blt_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Dx_,1)}, - _blu_=caml_call4(Runtime_ocaml_Runtime[63],_Dy_,[0],_blt_,_bls_); - return _blu_} - catch(_blv_) - {_blv_ = caml_wrap_exception(_blv_); - if(_blv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ds_]; - throw _blv_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_Dz_,Runtime_ocaml_Runtime[10],_blo_); - try - {var - _blp_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _blq_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_blp_)} - catch(_blr_) - {_blr_ = caml_wrap_exception(_blr_); - if(_blr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DA_]; - throw _blr_} - if(_blq_) - return [0, - mensualite_eligible, - mensualite_minimale, - coefficient_prise_en_charge_d8$1, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_DB_]} - function ressources_aides_personnelle_l(ressources_aides_personnelle_l) - {var - ressources_demandeur=ressources_aides_personnelle_l[1], - ressources_conjoint=ressources_aides_personnelle_l[2], - personnes_vivant_habituellemen=ressources_aides_personnelle_l[3], - demandeur_exerce_activite_remu=ressources_aides_personnelle_l[4], - conjoint_exerce_activite_remun=ressources_aides_personnelle_l[5], - personnes_a_charge=ressources_aides_personnelle_l[6], - situation_familiale=ressources_aides_personnelle_l[7], - mode_occupation=ressources_aides_personnelle_l[8], - date_courante=ressources_aides_personnelle_l[9], - condition_age_bourse_enseignem=ressources_aides_personnelle_l[10], - demandeur_poursuit_des_etudes=ressources_aides_personnelle_l[11], - date_demande_ou_reexamen_droit=ressources_aides_personnelle_l[12], - paiement_logement_distinct_pro=ressources_aides_personnelle_l[13]; - try - {var - _biV_= - function(param) - {function _bjQ_(personne){return personne[2]} + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[117], + ressources_menage_arrondies$0, + _a63_)) var - _bjR_= + _a64_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + ressources_menage_arrondies$0, + taux_tranche_inferieure_d832_1); + else + var + _a6$_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _a64_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + _a6$_, + taux_tranche_inferieure_d832_1); + var + _a65_ = caml_call2 - (Runtime_ocaml_Runtime[87], - _bjQ_, - personnes_vivant_habituellemen), - _bjS_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$304); - function _bjT_(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[93],sum1,sum2)} - return caml_call3(Runtime_ocaml_Runtime[88],_bjT_,_bjS_,_bjR_)}, - _biW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DD_,1)}, - _biX_=caml_call4(Runtime_ocaml_Runtime[63],_DE_,[0],_biW_,_biV_)} - catch(_bjP_) - {_bjP_ = caml_wrap_exception(_bjP_); - if(_bjP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DC_]; - throw _bjP_} + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11); + if + (caml_call2 + (Runtime_ocaml_Runtime[127], + ressources_menage_arrondies$0, + _a65_)) + var + _a66_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + montant_limite_tranches_d832_1$0, + n_nombre_parts_d832_11), + _a67_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + ressources_menage_arrondies$0, + _a66_), + _a68_ = + caml_call2 + (Runtime_ocaml_Runtime[103], + _a67_, + taux_tranche_superieure_d832_1); + else + var _a68_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$228); + var + _a69_ = caml_call2(Runtime_ocaml_Runtime[92], _a68_, _a64_), + _a6__ = caml_call2(Runtime_ocaml_Runtime[107], _a69_, _a62_); + return caml_call1(Runtime_ocaml_Runtime[71], _a6__); + } + function _a6Y_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _a6Z_ = 0; break; + case 1: + var _a6Z_ = 0; break; + default: var _a6Z_ = 1; + } + switch(type_travaux_logement[0]){ + case 0: + var _a60_ = 1; break; + case 1: + var _a60_ = 0; break; + default: var _a60_ = 0; + } + var _a61_ = caml_call2(Runtime_ocaml_Runtime[84], _a60_, _a6Z_); + return caml_call2(Runtime_ocaml_Runtime[29], _q__, _a61_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _q$_, [0], _a6Y_, _a6X_); + }, + _a5J_], + _a5L_ = caml_call4(Runtime_ocaml_Runtime[63], _ra_, _a5K_, _a5I_, _a5H_); + } + catch(_a6W_){ + var _a5G_ = caml_wrap_exception(_a6W_); + if(_a5G_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _q7_], 1); + throw caml_maybe_attach_backtrace(_a5G_, 0); + } + var + mensualite_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _rb_, Runtime_ocaml_Runtime[13], _a5L_); + try{ + var + _a5N_ = + function(param){ + var + _a6Q_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$10), + _a6R_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$11), + _a6S_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_005$2), + _a6T_ = + caml_call2 + (Runtime_ocaml_Runtime[97], + coefficient_prise_en_charge_d8, + _a6S_), + _a6U_ = caml_call2(Runtime_ocaml_Runtime[103], _a6T_, _a6R_), + _a6V_ = caml_call1(Runtime_ocaml_Runtime[78], _a6U_); + return caml_call2(Runtime_ocaml_Runtime[107], _a6V_, _a6Q_); + }, + _a5O_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rd_, 1); + }, + _a5P_ = caml_call4(Runtime_ocaml_Runtime[63], _re_, [0], _a5O_, _a5N_); + } + catch(_a6P_){ + var _a5M_ = caml_wrap_exception(_a6P_); + if(_a5M_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rc_], 1); + throw caml_maybe_attach_backtrace(_a5M_, 0); + } + var + coefficient_prise_en_charge_d8$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _rf_, Runtime_ocaml_Runtime[15], _a5P_); + function _a5Q_(aide_finale){ + try{ var - ressources_personnes_vivant_ha= - caml_call3 - (Runtime_ocaml_Runtime[28],_DF_,Runtime_ocaml_Runtime[13],_biX_); - try - {var - _biY_= - function(param) - {var - _bjL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$305), - _bjM_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge); - if(caml_call2(Runtime_ocaml_Runtime[86],_bjM_,_bjL_)) - var abattement=caml_call1(Runtime_ocaml_Runtime[31],cst_0$306); - else - var - _bjN_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$51), - _bjO_=caml_call1(Runtime_ocaml_Runtime[68],personnes_a_charge), - abattement= - caml_call2(Runtime_ocaml_Runtime[116],_bjO_,_bjN_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_90100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_135000); - switch(situation_familiale[0]) - {case 0:return abattement; - case 1:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$307); - case 2:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$308); - case 3:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$309); - case 4:return abattement; - default:return caml_call1(Runtime_ocaml_Runtime[31],cst_0$310)}}, - _biZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DH_,1)}, - _bi0_=caml_call4(Runtime_ocaml_Runtime[63],_DI_,[0],_biZ_,_biY_)} - catch(_bjK_) - {_bjK_ = caml_wrap_exception(_bjK_); - if(_bjK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DG_]; - throw _bjK_} - caml_call3 - (Runtime_ocaml_Runtime[28],_DJ_,Runtime_ocaml_Runtime[13],_bi0_); - try - {var - _bi1_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_9500)}, - _bi2_= - function(param) - {var - _bjI_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bjJ_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjI_); - return caml_call2(Runtime_ocaml_Runtime[29],_DL_,_bjJ_)}, - _bi3_=caml_call4(Runtime_ocaml_Runtime[63],_DM_,[0],_bi2_,_bi1_)} - catch(_bjH_) - {_bjH_ = caml_wrap_exception(_bjH_); - if(_bjH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DK_]; - throw _bjH_} + _a6D_ = + function(param){ + var + _a6H_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rh_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a6I_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ri_, + traitement_aide_finale_minorat), + _a6H_), + _a6J_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rj_, + Runtime_ocaml_Runtime[13], + _a6I_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rk_, _a6J_), + _a6K_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rl_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _a6L_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rm_, + abattement_depense_nette_minim), + _a6K_), + _a6M_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rn_, + Runtime_ocaml_Runtime[13], + _a6L_), + _a6N_ = caml_call2(Runtime_ocaml_Runtime[27], _ro_, _a6M_), + aide_finale$1 = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, _a6N_), + _a6O_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$229); + return caml_call2(Runtime_ocaml_Runtime[128], aide_finale$1, _a6O_) + ? aide_finale$1 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$230); + }, + _a6E_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rp_, 1); + }, + _a6F_ = caml_call4(Runtime_ocaml_Runtime[63], _rq_, [0], _a6E_, _a6D_); + return _a6F_; + } + catch(_a6G_){ + var _a6C_ = caml_wrap_exception(_a6G_); + if(_a6C_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rg_], 1); + throw caml_maybe_attach_backtrace(_a6C_, 0); + } + } + var + traitement_aide_finale_abattem = + caml_call3 + (Runtime_ocaml_Runtime[28], _rr_, Runtime_ocaml_Runtime[10], _a5Q_); + try{ + var + _a5S_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d832_10_3_c) + ? plafond_mensualite_d832_10_3_c + : mensualite_principale; + }, + _a5T_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rt_, 1); + }, + _a5U_ = caml_call4(Runtime_ocaml_Runtime[63], _ru_, [0], _a5T_, _a5S_); + } + catch(_a6B_){ + var _a5R_ = caml_wrap_exception(_a6B_); + if(_a5R_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rs_], 1); + throw caml_maybe_attach_backtrace(_a5R_, 0); + } + var + mensualite_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _rv_, Runtime_ocaml_Runtime[13], _a5U_); + try{ + var + _a5W_ = + function(param){ + var _a6A_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$3); + return caml_call2 + (Runtime_ocaml_Runtime[127], + coefficient_prise_en_charge_d8$0, + _a6A_) + ? caml_call1(Runtime_ocaml_Runtime[39], cst_0_95$4) + : coefficient_prise_en_charge_d8$0; + }, + _a5X_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rx_, 1); + }, + _a5Y_ = caml_call4(Runtime_ocaml_Runtime[63], _ry_, [0], _a5X_, _a5W_); + } + catch(_a6z_){ + var _a5V_ = caml_wrap_exception(_a6z_); + if(_a5V_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rw_], 1); + throw caml_maybe_attach_backtrace(_a5V_, 0); + } + var + coefficient_prise_en_charge_d8$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _rz_, Runtime_ocaml_Runtime[15], _a5Y_); + function _a5Z_(aide_finale){ + try{ var - montant_forfaitaire_r_822_7= - caml_call3 - (Runtime_ocaml_Runtime[28],_DN_,Runtime_ocaml_Runtime[13],_bi3_); - try - {var - _bi4_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_258900)}, - _bi5_= - function(param) - {var - _bjF_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _bjG_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bjF_); - return caml_call2(Runtime_ocaml_Runtime[29],_DP_,_bjG_)}, - _bi6_=caml_call4(Runtime_ocaml_Runtime[63],_DQ_,[0],_bi5_,_bi4_)} - catch(_bjE_) - {_bjE_ = caml_wrap_exception(_bjE_); - if(_bjE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DO_]; - throw _bjE_} - var - montant_forfaitaire_r_822_8= - caml_call3 - (Runtime_ocaml_Runtime[28],_DR_,Runtime_ocaml_Runtime[13],_bi6_); - try - {var - _bi7_=function(param){return date_demande_ou_reexamen_droit}, - _bi8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DT_,1)}, - _bi9_=caml_call4(Runtime_ocaml_Runtime[63],_DU_,[0],_bi8_,_bi7_), - base_mensuelle_allocations_fam= - caml_call3 - (Runtime_ocaml_Runtime[28],_DV_,Runtime_ocaml_Runtime[16],_bi9_)} - catch(_bjD_) - {_bjD_ = caml_wrap_exception(_bjD_); - if(_bjD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DS_]; - throw _bjD_} - var - _bi__= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_DW_,base_mensuelle_allocations_fam$5), - [0,base_mensuelle_allocations_fam]), - result=caml_call2(Runtime_ocaml_Runtime[27],_DX_,_bi__), - base_mensuelle_allocations_fam$0=result[1]; - try - {var - _bi$_= - function(param) - {var - _bjC_= - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint); - return caml_call2 + _a6k_ = + function(param){ + var + _a6o_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rB_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a6p_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rC_, + traitement_aide_finale_abattem), + _a6o_), + _a6q_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rD_, + Runtime_ocaml_Runtime[13], + _a6p_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rE_, _a6q_), + _a6r_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rF_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _a6s_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rG_, + contributions_sociales_dot_mon), + _a6r_), + _a6t_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rH_, + Runtime_ocaml_Runtime[13], + _a6s_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _rI_, _a6t_), + _a6u_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$1), + _a6v_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _a6w_ = caml_call2(Runtime_ocaml_Runtime[98], _a6v_, _a6u_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _a6w_), + _a6x_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$231), + _a6y_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _a6y_, _a6x_) + ? caml_call2 (Runtime_ocaml_Runtime[93], - _bjC_, - ressources_personnes_vivant_ha)}, - _bja_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_DZ_,1)}, - _bjb_= - [0, - function(param) - {function _bjv_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$311)} - function _bjw_(param) - {var - _bjx_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_age_bourse_enseignem, - demandeur_poursuit_des_etudes); - switch(mode_occupation[0]) - {case 0:var _bjy_=0;break; - case 1:var _bjy_=1;break; - case 2:var _bjy_=0;break; - case 3:var _bjy_=0;break; - default:var _bjy_=0} - switch(mode_occupation[0]) - {case 0:var _bjz_=1;break; - case 1:var _bjz_=0;break; - case 2:var _bjz_=0;break; - case 3:var _bjz_=0;break; - default:var _bjz_=0} - var - _bjA_=caml_call2(Runtime_ocaml_Runtime[84],_bjz_,_bjy_), - _bjB_=caml_call2(Runtime_ocaml_Runtime[83],_bjA_,_bjx_); - return caml_call2(Runtime_ocaml_Runtime[29],_D0_,_bjB_)} - return caml_call4(Runtime_ocaml_Runtime[63],_D1_,[0],_bjw_,_bjv_)}], - _bjc_=caml_call4(Runtime_ocaml_Runtime[63],_D2_,_bjb_,_bja_,_bi$_)} - catch(_bju_) - {_bju_ = caml_wrap_exception(_bju_); - if(_bju_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_DY_]; - throw _bju_} + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$232); + }, + _a6l_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rJ_, 1); + }, + _a6m_ = caml_call4(Runtime_ocaml_Runtime[63], _rK_, [0], _a6l_, _a6k_); + return _a6m_; + } + catch(_a6n_){ + var _a6j_ = caml_wrap_exception(_a6n_); + if(_a6j_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rA_], 1); + throw caml_maybe_attach_backtrace(_a6j_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _rL_, Runtime_ocaml_Runtime[10], _a5Z_); + try{ + var + _a51_ = + function(param){ + var + _a6g_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges_d8), + _a6h_ = + caml_call2(Runtime_ocaml_Runtime[98], _a6g_, mensualite_minimale), + aide_finale = + caml_call2 + (Runtime_ocaml_Runtime[104], + _a6h_, + coefficient_prise_en_charge_d8$1), + _a6i_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$233); + return caml_call2(Runtime_ocaml_Runtime[113], aide_finale, _a6i_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$234) + : aide_finale; + }, + _a52_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rN_, 1); + }, + _a53_ = caml_call4(Runtime_ocaml_Runtime[63], _rO_, [0], _a52_, _a51_); + } + catch(_a6f_){ + var _a50_ = caml_wrap_exception(_a6f_); + if(_a50_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rM_], 1); + throw caml_maybe_attach_backtrace(_a50_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _rP_, Runtime_ocaml_Runtime[13], _a53_); + function _a54_(aide_finale){ + try{ var - ressources_prises_en_compte= + _a5__ = + function(param){ + var + _a6c_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rR_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a6d_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _rS_, + traitement_aide_finale_contrib), + _a6c_), + _a6e_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _rT_, + Runtime_ocaml_Runtime[13], + _a6d_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _rU_, _a6e_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d832_10) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$235) + : aide_finale$0; + }, + _a5$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _rV_, 1); + }, + _a6a_ = caml_call4(Runtime_ocaml_Runtime[63], _rW_, [0], _a5$_, _a5__); + return _a6a_; + } + catch(_a6b_){ + var _a59_ = caml_wrap_exception(_a6b_); + if(_a59_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rQ_], 1); + throw caml_maybe_attach_backtrace(_a59_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _rX_, Runtime_ocaml_Runtime[10], _a54_); + try{ + var + _a56_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _a57_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a56_); + } + catch(_a58_){ + var _a55_ = caml_wrap_exception(_a58_); + if(_a55_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _rY_], 1); + throw caml_maybe_attach_backtrace(_a55_, 0); + } + if(_a57_) + return [0, + mensualite_eligible, + mensualite_minimale, + coefficient_prise_en_charge_d8$1, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _rZ_], 1); + } + function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ + var + ressources_demandeur = ressources_aides_personnelle_l[1], + ressources_conjoint = ressources_aides_personnelle_l[2], + personnes_vivant_habituellemen = ressources_aides_personnelle_l[3], + demandeur_exerce_activite_remu = ressources_aides_personnelle_l[4], + conjoint_exerce_activite_remun = ressources_aides_personnelle_l[5], + personnes_a_charge = ressources_aides_personnelle_l[6], + situation_familiale = ressources_aides_personnelle_l[7], + mode_occupation = ressources_aides_personnelle_l[8], + date_courante = ressources_aides_personnelle_l[9], + condition_age_bourse_enseignem = ressources_aides_personnelle_l[10], + demandeur_poursuit_des_etudes = ressources_aides_personnelle_l[11], + date_demande_ou_reexamen_droit = ressources_aides_personnelle_l[12], + paiement_logement_distinct_pro = ressources_aides_personnelle_l[13]; + try{ + var + _a22_ = + function(param){ + function _a35_(personne){return personne[2];} + var + _a36_ = + caml_call2 + (Runtime_ocaml_Runtime[87], + _a35_, + personnes_vivant_habituellemen), + _a37_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$236); + function _a38_(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[93], sum1, sum2); + } + return caml_call3(Runtime_ocaml_Runtime[88], _a38_, _a37_, _a36_); + }, + _a23_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _r1_, 1); + }, + _a24_ = caml_call4(Runtime_ocaml_Runtime[63], _r2_, [0], _a23_, _a22_); + } + catch(_a34_){ + var _a21_ = caml_wrap_exception(_a34_); + if(_a21_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r0_], 1); + throw caml_maybe_attach_backtrace(_a21_, 0); + } + var + ressources_personnes_vivant_ha = + caml_call3 + (Runtime_ocaml_Runtime[28], _r3_, Runtime_ocaml_Runtime[13], _a24_); + try{ + var + _a26_ = + function(param){ + var + _a30_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$237), + _a31_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge); + if(caml_call2(Runtime_ocaml_Runtime[86], _a31_, _a30_)) + var abattement = caml_call1(Runtime_ocaml_Runtime[31], cst_0$238); + else + var + _a32_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$33), + _a33_ = caml_call1(Runtime_ocaml_Runtime[68], personnes_a_charge), + abattement = + caml_call2(Runtime_ocaml_Runtime[116], _a33_, _a32_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_90100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_135000); + switch(situation_familiale[0]){ + case 0: + return abattement; + case 1: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$239); + case 2: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$240); + case 3: + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$241); + case 4: + return abattement; + default: return caml_call1(Runtime_ocaml_Runtime[31], cst_0$242); + } + }, + _a27_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _r5_, 1); + }, + _a28_ = caml_call4(Runtime_ocaml_Runtime[63], _r6_, [0], _a27_, _a26_); + } + catch(_a3Z_){ + var _a25_ = caml_wrap_exception(_a3Z_); + if(_a25_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r4_], 1); + throw caml_maybe_attach_backtrace(_a25_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _r7_, Runtime_ocaml_Runtime[13], _a28_); + try{ + var + _a2__ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_9500); + }, + _a2$_ = + function(param){ + var + _a3X_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a3Y_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a3X_); + return caml_call2(Runtime_ocaml_Runtime[29], _r9_, _a3Y_); + }, + _a3a_ = caml_call4(Runtime_ocaml_Runtime[63], _r__, [0], _a2$_, _a2__); + } + catch(_a3W_){ + var _a29_ = caml_wrap_exception(_a3W_); + if(_a29_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _r8_], 1); + throw caml_maybe_attach_backtrace(_a29_, 0); + } + var + montant_forfaitaire_r_822_7 = + caml_call3 + (Runtime_ocaml_Runtime[28], _r$_, Runtime_ocaml_Runtime[13], _a3a_); + try{ + var + _a3c_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_258900); + }, + _a3d_ = + function(param){ + var + _a3U_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _a3V_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _a3U_); + return caml_call2(Runtime_ocaml_Runtime[29], _sb_, _a3V_); + }, + _a3e_ = caml_call4(Runtime_ocaml_Runtime[63], _sc_, [0], _a3d_, _a3c_); + } + catch(_a3T_){ + var _a3b_ = caml_wrap_exception(_a3T_); + if(_a3b_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sa_], 1); + throw caml_maybe_attach_backtrace(_a3b_, 0); + } + var + montant_forfaitaire_r_822_8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _sd_, Runtime_ocaml_Runtime[13], _a3e_); + try{ + var + _a3g_ = function(param){return date_demande_ou_reexamen_droit;}, + _a3h_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sf_, 1); + }, + _a3i_ = caml_call4(Runtime_ocaml_Runtime[63], _sg_, [0], _a3h_, _a3g_), + base_mensuelle_allocations_fam$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_D3_,Runtime_ocaml_Runtime[13],_bjc_); - try - {var - _bjd_= - function(param) - {return 0 === paiement_logement_distinct_pro[0] - ?montant_forfaitaire_r_822_8 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$312)}, - _bje_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D5_,1)}, - _bjf_=caml_call4(Runtime_ocaml_Runtime[63],_D6_,[0],_bje_,_bjd_)} - catch(_bjt_) - {_bjt_ = caml_wrap_exception(_bjt_); - if(_bjt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D4_]; - throw _bjt_} - caml_call3 - (Runtime_ocaml_Runtime[28],_D7_,Runtime_ocaml_Runtime[13],_bjf_); - try - {var - _bjg_= - function(param) - {var - _bjo_=caml_call1(Runtime_ocaml_Runtime[39],cst_12$15), - _bjp_= - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _bjo_), - _bjq_= - caml_call2 - (Runtime_ocaml_Runtime[93], - ressources_demandeur, - ressources_conjoint), - _bjr_=caml_call2(Runtime_ocaml_Runtime[128],_bjq_,_bjp_), - _bjs_= + (Runtime_ocaml_Runtime[28], _sh_, Runtime_ocaml_Runtime[16], _a3i_); + } + catch(_a3S_){ + var _a3f_ = caml_wrap_exception(_a3S_); + if(_a3f_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _se_], 1); + throw caml_maybe_attach_backtrace(_a3f_, 0); + } + var + _a3j_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _si_, base_mensuelle_allocations_fam), + [0, base_mensuelle_allocations_fam$0]), + result = caml_call2(Runtime_ocaml_Runtime[27], _sj_, _a3j_), + base_mensuelle_allocations_fam$1 = result[1]; + try{ + var + _a3l_ = + function(param){ + var + _a3R_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint); + return caml_call2 + (Runtime_ocaml_Runtime[93], + _a3R_, + ressources_personnes_vivant_ha); + }, + _a3m_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sl_, 1); + }, + _a3n_ = + [0, + function(param){ + function _a3K_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$243); + } + function _a3L_(param){ + var + _a3M_ = caml_call2 (Runtime_ocaml_Runtime[83], - conjoint_exerce_activite_remun, - _bjr_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - demandeur_exerce_activite_remu, - _bjs_) - ?montant_forfaitaire_r_822_7 - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$313)}, - _bjh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_D9_,1)}, - _bji_=caml_call4(Runtime_ocaml_Runtime[63],_D__,[0],_bjh_,_bjg_)} - catch(_bjn_) - {_bjn_ = caml_wrap_exception(_bjn_); - if(_bjn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_D8_]; - throw _bjn_} - caml_call3 - (Runtime_ocaml_Runtime[28],_D$_,Runtime_ocaml_Runtime[13],_bji_); - try - {var - _bjj_=1, - _bjk_= - function(acc,personne) - {return caml_call2(Runtime_ocaml_Runtime[83],acc,personne[1])}, - _bjl_= - caml_call3 - (Runtime_ocaml_Runtime[136], - _bjk_, - _bjj_, - personnes_vivant_habituellemen)} - catch(_bjm_) - {_bjm_ = caml_wrap_exception(_bjm_); - if(_bjm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ea_]; - throw _bjm_} - if(_bjl_)return [0,ressources_prises_en_compte]; - throw [0,Runtime_ocaml_Runtime[3],_Eb_]} - function eligibilite_prestations_famili(eligibilite_prestations_famili) - {var - date_courante=eligibilite_prestations_famili[1], - residence=eligibilite_prestations_famili[3], - age_l512_3_2=eligibilite_prestations_famili[4]; - try - {var - _bhz_= - function(param) - {function _biT_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],20,0,0)} - function _biU_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Ed_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_Ee_,[0],_biU_,_biT_)}, - _bhA_=function(param){return 1}, - _bhB_=[0,function(param){return caml_call1(age_l512_3_2,0)}], - _bhC_=caml_call4(Runtime_ocaml_Runtime[63],_Ef_,_bhB_,_bhA_,_bhz_)} - catch(_biS_) - {_biS_ = caml_wrap_exception(_biS_); - if(_biS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ec_]; - throw _biS_} - var - age_l512_3_2$0= + condition_age_bourse_enseignem, + demandeur_poursuit_des_etudes); + switch(mode_occupation[0]){ + case 0: + var _a3N_ = 0; break; + case 1: + var _a3N_ = 1; break; + case 2: + var _a3N_ = 0; break; + case 3: + var _a3N_ = 0; break; + default: var _a3N_ = 0; + } + switch(mode_occupation[0]){ + case 0: + var _a3O_ = 1; break; + case 1: + var _a3O_ = 0; break; + case 2: + var _a3O_ = 0; break; + case 3: + var _a3O_ = 0; break; + default: var _a3O_ = 0; + } + var + _a3P_ = caml_call2(Runtime_ocaml_Runtime[84], _a3O_, _a3N_), + _a3Q_ = caml_call2(Runtime_ocaml_Runtime[83], _a3P_, _a3M_); + return caml_call2(Runtime_ocaml_Runtime[29], _sm_, _a3Q_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _sn_, [0], _a3L_, _a3K_); + }], + _a3o_ = caml_call4(Runtime_ocaml_Runtime[63], _so_, _a3n_, _a3m_, _a3l_); + } + catch(_a3J_){ + var _a3k_ = caml_wrap_exception(_a3J_); + if(_a3k_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sk_], 1); + throw caml_maybe_attach_backtrace(_a3k_, 0); + } + var + ressources_prises_en_compte = + caml_call3 + (Runtime_ocaml_Runtime[28], _sp_, Runtime_ocaml_Runtime[13], _a3o_); + try{ + var + _a3q_ = + function(param){ + return 0 === paiement_logement_distinct_pro[0] + ? montant_forfaitaire_r_822_8 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$244); + }, + _a3r_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sr_, 1); + }, + _a3s_ = caml_call4(Runtime_ocaml_Runtime[63], _ss_, [0], _a3r_, _a3q_); + } + catch(_a3I_){ + var _a3p_ = caml_wrap_exception(_a3I_); + if(_a3p_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sq_], 1); + throw caml_maybe_attach_backtrace(_a3p_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _st_, Runtime_ocaml_Runtime[13], _a3s_); + try{ + var + _a3u_ = + function(param){ + var + _a3D_ = caml_call1(Runtime_ocaml_Runtime[39], cst_12$3), + _a3E_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _a3D_), + _a3F_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + ressources_demandeur, + ressources_conjoint), + _a3G_ = caml_call2(Runtime_ocaml_Runtime[128], _a3F_, _a3E_), + _a3H_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + conjoint_exerce_activite_remun, + _a3G_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + demandeur_exerce_activite_remu, + _a3H_) + ? montant_forfaitaire_r_822_7 + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$245); + }, + _a3v_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sv_, 1); + }, + _a3w_ = caml_call4(Runtime_ocaml_Runtime[63], _sw_, [0], _a3v_, _a3u_); + } + catch(_a3C_){ + var _a3t_ = caml_wrap_exception(_a3C_); + if(_a3t_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _su_], 1); + throw caml_maybe_attach_backtrace(_a3t_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _sx_, Runtime_ocaml_Runtime[13], _a3w_); + try{ + var + _a3y_ = 1, + _a3z_ = + function(acc, personne){ + return caml_call2(Runtime_ocaml_Runtime[83], acc, personne[1]); + }, + _a3A_ = caml_call3 - (Runtime_ocaml_Runtime[28],_Eg_,Runtime_ocaml_Runtime[17],_bhC_); - try - {var - _bhD_=function(param){return date_courante}, - _bhE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ei_,1)}, - _bhF_=caml_call4(Runtime_ocaml_Runtime[63],_Ej_,[0],_bhE_,_bhD_), - smic_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ek_,Runtime_ocaml_Runtime[16],_bhF_)} - catch(_biR_) - {_biR_ = caml_wrap_exception(_biR_); - if(_biR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Eh_]; - throw _biR_} - try - {var - _bhG_=function(param){return residence}, - _bhH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Em_,1)}, - _bhI_=caml_call4(Runtime_ocaml_Runtime[63],_En_,[0],_bhH_,_bhG_), - smic_dot_residence= - caml_call3 - (Runtime_ocaml_Runtime[28],_Eo_,embed_collectivite$0,_bhI_)} - catch(_biQ_) - {_biQ_ = caml_wrap_exception(_biQ_); - if(_biQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_El_]; - throw _biQ_} - var - _bhJ_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_Ep_,smic$1), - [0,smic_dot_date_courante,smic_dot_residence]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Eq_,_bhJ_), - smic_dot_brut_horaire=result[1]; - try - {var - _bhK_=function(param){return 0}, - _bhL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Es_,1)}, - _bhM_= - [0, - function(param) - {function _biD_(param){return 1} - function _biE_(param) - {var - _biF_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Et_), - _biG_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Eu_), - _biH_=caml_call2(Runtime_ocaml_Runtime[84],_biG_,_biF_), - _biI_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ev_), - _biJ_=caml_call2(Runtime_ocaml_Runtime[84],_biI_,_biH_), - _biK_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ew_), - _biL_=caml_call2(Runtime_ocaml_Runtime[84],_biK_,_biJ_), - _biM_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ex_), - _biN_=caml_call2(Runtime_ocaml_Runtime[84],_biM_,_biL_), - _biO_=caml_call2(Runtime_ocaml_Runtime[86],residence,_Ey_), - _biP_=caml_call2(Runtime_ocaml_Runtime[84],_biO_,_biN_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ez_,_biP_)} - return caml_call4(Runtime_ocaml_Runtime[63],_EA_,[0],_biE_,_biD_)}], - _bhN_=caml_call4(Runtime_ocaml_Runtime[63],_EB_,_bhM_,_bhL_,_bhK_)} - catch(_biC_) - {_biC_ = caml_wrap_exception(_biC_); - if(_biC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Er_]; - throw _biC_} - var - regime_outre_mer_l751_1= + (Runtime_ocaml_Runtime[136], + _a3z_, + _a3y_, + personnes_vivant_habituellemen); + } + catch(_a3B_){ + var _a3x_ = caml_wrap_exception(_a3B_); + if(_a3x_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sy_], 1); + throw caml_maybe_attach_backtrace(_a3x_, 0); + } + if(_a3A_) return [0, ressources_prises_en_compte]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _sz_], 1); + } + function eligibilite_prestations_famili(eligibilite_prestations_famili){ + var + date_courante = eligibilite_prestations_famili[1], + residence = eligibilite_prestations_famili[3], + age_l512_3_2 = eligibilite_prestations_famili[4]; + try{ + var + _a1z_ = + function(param){ + function _a2Z_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 20, 0, 0); + } + function _a20_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sB_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _sC_, [0], _a20_, _a2Z_); + }, + _a1A_ = function(param){return 1;}, + _a1B_ = [0, function(param){return caml_call1(age_l512_3_2, 0);}], + _a1C_ = caml_call4(Runtime_ocaml_Runtime[63], _sD_, _a1B_, _a1A_, _a1z_); + } + catch(_a2Y_){ + var _a1y_ = caml_wrap_exception(_a2Y_); + if(_a1y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sA_], 1); + throw caml_maybe_attach_backtrace(_a1y_, 0); + } + var + age_l512_3_2$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _sE_, Runtime_ocaml_Runtime[17], _a1C_); + try{ + var + _a1E_ = function(param){return date_courante;}, + _a1F_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sG_, 1); + }, + _a1G_ = caml_call4(Runtime_ocaml_Runtime[63], _sH_, [0], _a1F_, _a1E_), + smic_dot_date_courante = caml_call3 - (Runtime_ocaml_Runtime[28],_EC_,Runtime_ocaml_Runtime[12],_bhN_); - try - {var - _bhO_= - function(param) - {var - _biz_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$1), - _biA_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$1), - _biB_= + (Runtime_ocaml_Runtime[28], _sI_, Runtime_ocaml_Runtime[16], _a1G_); + } + catch(_a2X_){ + var _a1D_ = caml_wrap_exception(_a2X_); + if(_a1D_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sF_], 1); + throw caml_maybe_attach_backtrace(_a1D_, 0); + } + try{ + var + _a1I_ = function(param){return residence;}, + _a1J_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sK_, 1); + }, + _a1K_ = caml_call4(Runtime_ocaml_Runtime[63], _sL_, [0], _a1J_, _a1I_), + smic_dot_residence = + caml_call3(Runtime_ocaml_Runtime[28], _sM_, embed_collectivite, _a1K_); + } + catch(_a2W_){ + var _a1H_ = caml_wrap_exception(_a2W_); + if(_a1H_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sJ_], 1); + throw caml_maybe_attach_backtrace(_a1H_, 0); + } + var + _a1L_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _sN_, smic), + [0, smic_dot_date_courante, smic_dot_residence]), + result = caml_call2(Runtime_ocaml_Runtime[27], _sO_, _a1L_), + smic_dot_brut_horaire = result[1]; + try{ + var + _a1N_ = function(param){return 0;}, + _a1O_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _sQ_, 1); + }, + _a1P_ = + [0, + function(param){ + function _a2J_(param){return 1;} + function _a2K_(param){ + var + _a2L_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sR_), + _a2M_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sS_), + _a2N_ = caml_call2(Runtime_ocaml_Runtime[84], _a2M_, _a2L_), + _a2O_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sT_), + _a2P_ = caml_call2(Runtime_ocaml_Runtime[84], _a2O_, _a2N_), + _a2Q_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sU_), + _a2R_ = caml_call2(Runtime_ocaml_Runtime[84], _a2Q_, _a2P_), + _a2S_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sV_), + _a2T_ = caml_call2(Runtime_ocaml_Runtime[84], _a2S_, _a2R_), + _a2U_ = caml_call2(Runtime_ocaml_Runtime[86], residence, _sW_), + _a2V_ = caml_call2(Runtime_ocaml_Runtime[84], _a2U_, _a2T_); + return caml_call2(Runtime_ocaml_Runtime[29], _sX_, _a2V_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _sY_, [0], _a2K_, _a2J_); + }], + _a1Q_ = caml_call4(Runtime_ocaml_Runtime[63], _sZ_, _a1P_, _a1O_, _a1N_); + } + catch(_a2I_){ + var _a1M_ = caml_wrap_exception(_a2I_); + if(_a1M_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _sP_], 1); + throw caml_maybe_attach_backtrace(_a1M_, 0); + } + var + regime_outre_mer_l751_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _s0_, Runtime_ocaml_Runtime[12], _a1Q_); + try{ + var + _a1S_ = + function(param){ + var + _a2F_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169), + _a2G_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55), + _a2H_ = + caml_call2 + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a2G_); + return caml_call2(Runtime_ocaml_Runtime[104], _a2H_, _a2F_); + }, + _a1T_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _s2_, 1); + }, + _a1U_ = + [0, + function(param){ + function _a2A_(param){ + var + _a2C_ = caml_call1(Runtime_ocaml_Runtime[39], cst_169$0), + _a2D_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_55$0), + _a2E_ = caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_biA_); - return caml_call2(Runtime_ocaml_Runtime[104],_biB_,_biz_)}, - _bhP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_EE_,1)}, - _bhQ_= - [0, - function(param) - {function _biu_(param) - {var - _biw_=caml_call1(Runtime_ocaml_Runtime[39],cst_169$2), - _bix_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_55$2), - _biy_= - caml_call2 - (Runtime_ocaml_Runtime[104],smic_dot_brut_horaire,_bix_); - return caml_call2(Runtime_ocaml_Runtime[104],_biy_,_biw_)} - function _biv_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_EF_,regime_outre_mer_l751_1)} - return caml_call4(Runtime_ocaml_Runtime[63],_EG_,[0],_biv_,_biu_)}], - _bhR_=caml_call4(Runtime_ocaml_Runtime[63],_EH_,_bhQ_,_bhP_,_bhO_)} - catch(_bit_) - {_bit_ = caml_wrap_exception(_bit_); - if(_bit_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ED_]; - throw _bit_} + (Runtime_ocaml_Runtime[104], smic_dot_brut_horaire, _a2D_); + return caml_call2(Runtime_ocaml_Runtime[104], _a2E_, _a2C_); + } + function _a2B_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _s3_, regime_outre_mer_l751_1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _s4_, [0], _a2B_, _a2A_); + }], + _a1V_ = caml_call4(Runtime_ocaml_Runtime[63], _s5_, _a1U_, _a1T_, _a1S_); + } + catch(_a2z_){ + var _a1R_ = caml_wrap_exception(_a2z_); + if(_a1R_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _s1_], 1); + throw caml_maybe_attach_backtrace(_a1R_, 0); + } + var + plafond_l512_3_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _s6_, Runtime_ocaml_Runtime[13], _a1V_); + function _a1W_(enfant){ + try{ var - plafond_l512_3_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_EI_,Runtime_ocaml_Runtime[13],_bhR_); - function _bhS_(enfant) - {try - {var - _bif_=function(param){return 0}, - _big_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_EK_,1)}, - _bih_= - [0, - function(param) - {function _bik_(param){return 1} - function _bil_(param) - {var - _bim_= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2); - switch(enfant[2][0]) - {case 0:var _bin_=0;break; - case 1:var _bin_=0;break; - default:var _bin_=1} - switch(enfant[2][0]) - {case 0:var _bio_=0;break; - case 1:var _bio_=1;break; - default:var _bio_=0} - var _bip_=caml_call2(Runtime_ocaml_Runtime[84],_bio_,_bin_); - switch(enfant[2][0]) - {case 0:var _biq_=1;break; - case 1:var _biq_=0;break; - default:var _biq_=0} - var - _bir_=caml_call2(Runtime_ocaml_Runtime[84],_biq_,_bip_), - _bis_=caml_call2(Runtime_ocaml_Runtime[83],_bir_,_bim_); - return caml_call2(Runtime_ocaml_Runtime[29],_EL_,_bis_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_EM_,[0],_bil_,_bik_)}], - _bii_=caml_call4(Runtime_ocaml_Runtime[63],_EN_,_bih_,_big_,_bif_); - return _bii_} - catch(_bij_) - {_bij_ = caml_wrap_exception(_bij_); - if(_bij_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EJ_]; - throw _bij_}} - var - conditions_hors_age= - caml_call3 - (Runtime_ocaml_Runtime[28],_EO_,Runtime_ocaml_Runtime[10],_bhS_); - function _bhT_(enfant) - {try - {var - _bhU_=function(param){return 0}, - _bhV_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_EQ_,1)}, - _bhW_= - [0, - function(param) - {function _bhZ_(param){throw Runtime_ocaml_Runtime[2]} - function _bh0_(param){return 0} - var - _bh1_= - [0, - function(param) - {function _bh2_(param){return 1} - function _bh3_(param) - {switch(enfant[2][0]) - {case 0:var _bic_=0;break; - case 1:var _bic_=1;break; - default:var _bic_=0} - switch(enfant[2][0]) - {case 0:var _bid_=1;break; - case 1:var _bid_=0;break; - default:var _bid_=0} - var _bie_=caml_call2(Runtime_ocaml_Runtime[84],_bid_,_bic_); - return caml_call2(Runtime_ocaml_Runtime[29],_ER_,_bie_)} - var - _bh4_= - [0, - function(param) - {function _bh5_(param){return 1} - function _bh6_(param) - {var - _bh7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ES_, - embed_verification_age_superie$2, - [0,enfant[4],date_courante,age_l512_3_2$0]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _ET_, - verification_age_superieur_a$1), - _bh7_), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_EU_,1); - var - _bh8_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _EV_, - embed_verification_age_superie$1, - result$0), - _bh9_=caml_call2(Runtime_ocaml_Runtime[27],_EW_,_bh8_)[1], - _bh__= - caml_call2 - (Runtime_ocaml_Runtime[118],enfant[3],plafond_l512_3_2), - _bh$_=caml_call2(Runtime_ocaml_Runtime[83],_bh__,_bh9_); - switch(enfant[2][0]) - {case 0:var _bia_=0;break; - case 1:var _bia_=0;break; - default:var _bia_=1} - var _bib_=caml_call2(Runtime_ocaml_Runtime[83],_bia_,_bh$_); - return caml_call2(Runtime_ocaml_Runtime[29],_EX_,_bib_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_EY_,[0],_bh6_,_bh5_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_EZ_,_bh4_,_bh3_,_bh2_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_E0_,_bh1_,_bh0_,_bhZ_)}], - _bhX_=caml_call4(Runtime_ocaml_Runtime[63],_E1_,_bhW_,_bhV_,_bhU_); - return _bhX_} - catch(_bhY_) - {_bhY_ = caml_wrap_exception(_bhY_); - if(_bhY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_EP_]; - throw _bhY_}} - var - droit_ouvert= - caml_call3 - (Runtime_ocaml_Runtime[28],_E2_,Runtime_ocaml_Runtime[10],_bhT_); - return [0, - age_l512_3_2$0, - droit_ouvert, - conditions_hors_age, - regime_outre_mer_l751_1]} - function calcul_allocation_logement_loc(calcul_allocation_logement_loc) - {var - loyer_principal=calcul_allocation_logement_loc[1], - ressources_menage_arrondies=calcul_allocation_logement_loc[2], - beneficiaire_aide_adulte_ou_en=calcul_allocation_logement_loc[3], - date_courante=calcul_allocation_logement_loc[4], - nombre_personnes_a_charge=calcul_allocation_logement_loc[5], - situation_familiale_calcul_apl=calcul_allocation_logement_loc[6], - zone=calcul_allocation_logement_loc[7], - logement_est_chambre=calcul_allocation_logement_loc[8], - agees_ou_handicap_adultes_hebe=calcul_allocation_logement_loc[9], - type_aide=calcul_allocation_logement_loc[10], - colocation=calcul_allocation_logement_loc[11], - reduction_loyer_solidarite=calcul_allocation_logement_loc[12], - logement_meuble_d842_2=calcul_allocation_logement_loc[13], - residence=calcul_allocation_logement_loc[14], - changement_logement_d842_4=calcul_allocation_logement_loc[15]; - try - {var - _bgl_=function(param){return loyer_principal}, - _bgm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E4_,1)}, - _bgn_=caml_call4(Runtime_ocaml_Runtime[63],_E5_,[0],_bgm_,_bgl_), - calcul_apl_locatif_dot_loyer_p= - caml_call3 - (Runtime_ocaml_Runtime[28],_E6_,Runtime_ocaml_Runtime[13],_bgn_)} - catch(_bhy_) - {_bhy_ = caml_wrap_exception(_bhy_); - if(_bhy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_E3_]; - throw _bhy_} - try - {var - _bgo_=function(param){return ressources_menage_arrondies}, - _bgp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_E8_,1)}, - _bgq_=caml_call4(Runtime_ocaml_Runtime[63],_E9_,[0],_bgp_,_bgo_), - calcul_apl_locatif_dot_ressour= - caml_call3 - (Runtime_ocaml_Runtime[28],_E__,Runtime_ocaml_Runtime[13],_bgq_)} - catch(_bhx_) - {_bhx_ = caml_wrap_exception(_bhx_); - if(_bhx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_E7_]; - throw _bhx_} - try - {var - _bgr_=function(param){return beneficiaire_aide_adulte_ou_en}, - _bgs_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fa_,1)}, - _bgt_=caml_call4(Runtime_ocaml_Runtime[63],_Fb_,[0],_bgs_,_bgr_), - calcul_apl_locatif_dot_benefic= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fc_,Runtime_ocaml_Runtime[12],_bgt_)} - catch(_bhw_) - {_bhw_ = caml_wrap_exception(_bhw_); - if(_bhw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_E$_]; - throw _bhw_} - try - {var - _bgu_=function(param){return date_courante}, - _bgv_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fe_,1)}, - _bgw_=caml_call4(Runtime_ocaml_Runtime[63],_Ff_,[0],_bgv_,_bgu_), - calcul_apl_locatif_dot_date_co= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fg_,Runtime_ocaml_Runtime[16],_bgw_)} - catch(_bhv_) - {_bhv_ = caml_wrap_exception(_bhv_); - if(_bhv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fd_]; - throw _bhv_} - try - {var - _bgx_=function(param){return nombre_personnes_a_charge}, - _bgy_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fi_,1)}, - _bgz_=caml_call4(Runtime_ocaml_Runtime[63],_Fj_,[0],_bgy_,_bgx_), - calcul_apl_locatif_dot_nombre_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fk_,Runtime_ocaml_Runtime[14],_bgz_)} - catch(_bhu_) - {_bhu_ = caml_wrap_exception(_bhu_); - if(_bhu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fh_]; - throw _bhu_} - try - {var - _bgA_=function(param){return situation_familiale_calcul_apl}, - _bgB_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fm_,1)}, - _bgC_=caml_call4(Runtime_ocaml_Runtime[63],_Fn_,[0],_bgB_,_bgA_), - calcul_apl_locatif_dot_situati= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Fo_, - embed_situation_familiale_calc, - _bgC_)} - catch(_bht_) - {_bht_ = caml_wrap_exception(_bht_); - if(_bht_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fl_]; - throw _bht_} - try - {var - _bgD_=function(param){return zone}, - _bgE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fq_,1)}, - _bgF_=caml_call4(Runtime_ocaml_Runtime[63],_Fr_,[0],_bgE_,_bgD_), - calcul_apl_locatif_dot_zone= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fs_,embed_zone_d_habitation,_bgF_)} - catch(_bhs_) - {_bhs_ = caml_wrap_exception(_bhs_); - if(_bhs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fp_]; - throw _bhs_} - try - {var - _bgG_=function(param){return logement_est_chambre}, - _bgH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fu_,1)}, - _bgI_=caml_call4(Runtime_ocaml_Runtime[63],_Fv_,[0],_bgH_,_bgG_), - calcul_apl_locatif_dot_logemen= - caml_call3 - (Runtime_ocaml_Runtime[28],_Fw_,Runtime_ocaml_Runtime[12],_bgI_)} - catch(_bhr_) - {_bhr_ = caml_wrap_exception(_bhr_); - if(_bhr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ft_]; - throw _bhr_} - try - {var - _bgJ_=function(param){return agees_ou_handicap_adultes_hebe}, - _bgK_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Fy_,1)}, - _bgL_=caml_call4(Runtime_ocaml_Runtime[63],_Fz_,[0],_bgK_,_bgJ_), - calcul_apl_locatif_dot_agees_o= - caml_call3 - (Runtime_ocaml_Runtime[28],_FA_,Runtime_ocaml_Runtime[12],_bgL_)} - catch(_bhq_) - {_bhq_ = caml_wrap_exception(_bhq_); - if(_bhq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Fx_]; - throw _bhq_} - try - {var - _bgM_=function(param){return type_aide}, - _bgN_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FC_,1)}, - _bgO_=caml_call4(Runtime_ocaml_Runtime[63],_FD_,[0],_bgN_,_bgM_), - calcul_apl_locatif_dot_type_ai= - caml_call3 - (Runtime_ocaml_Runtime[28], - _FE_, - embed_type_aides_personnelle_l, - _bgO_)} - catch(_bhp_) - {_bhp_ = caml_wrap_exception(_bhp_); - if(_bhp_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FB_]; - throw _bhp_} - try - {var - _bgP_=function(param){return colocation}, - _bgQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FG_,1)}, - _bgR_=caml_call4(Runtime_ocaml_Runtime[63],_FH_,[0],_bgQ_,_bgP_), - calcul_apl_locatif_dot_colocat= - caml_call3 - (Runtime_ocaml_Runtime[28],_FI_,Runtime_ocaml_Runtime[12],_bgR_)} - catch(_bho_) - {_bho_ = caml_wrap_exception(_bho_); - if(_bho_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FF_]; - throw _bho_} - try - {var - _bgS_=function(param){return reduction_loyer_solidarite}, - _bgT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FK_,1)}, - _bgU_=caml_call4(Runtime_ocaml_Runtime[63],_FL_,[0],_bgT_,_bgS_), - calcul_apl_locatif_dot_reducti= - caml_call3 - (Runtime_ocaml_Runtime[28],_FM_,Runtime_ocaml_Runtime[13],_bgU_)} - catch(_bhn_) - {_bhn_ = caml_wrap_exception(_bhn_); - if(_bhn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FJ_]; - throw _bhn_} - try - {var - _bgV_=function(param){return logement_meuble_d842_2}, - _bgW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FO_,1)}, - _bgX_=caml_call4(Runtime_ocaml_Runtime[63],_FP_,[0],_bgW_,_bgV_), - calcul_apl_locatif_dot_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_FQ_,Runtime_ocaml_Runtime[12],_bgX_)} - catch(_bhm_) - {_bhm_ = caml_wrap_exception(_bhm_); - if(_bhm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FN_]; - throw _bhm_} - try - {var - _bgY_=function(param){return residence}, - _bgZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_FS_,1)}, - _bg0_=caml_call4(Runtime_ocaml_Runtime[63],_FT_,[0],_bgZ_,_bgY_), - calcul_apl_locatif_dot_residen= - caml_call3 - (Runtime_ocaml_Runtime[28],_FU_,embed_collectivite$0,_bg0_)} - catch(_bhl_) - {_bhl_ = caml_wrap_exception(_bhl_); - if(_bhl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FR_]; - throw _bhl_} - var - _bg1_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_FV_,calcul_aide_personnalisee_loge), - [0, - calcul_apl_locatif_dot_loyer_p, - calcul_apl_locatif_dot_ressour, - calcul_apl_locatif_dot_benefic, - calcul_apl_locatif_dot_date_co, - calcul_apl_locatif_dot_nombre_, - calcul_apl_locatif_dot_situati, - calcul_apl_locatif_dot_zone, - calcul_apl_locatif_dot_logemen, - calcul_apl_locatif_dot_agees_o, - calcul_apl_locatif_dot_type_ai, - calcul_apl_locatif_dot_colocat, - calcul_apl_locatif_dot_reducti, - calcul_apl_locatif_dot_logemen$0, - calcul_apl_locatif_dot_residen]), - result=caml_call2(Runtime_ocaml_Runtime[27],_FW_,_bg1_), - calcul_apl_locatif_dot_aide_fi=result[6], - calcul_apl_locatif_dot_traitem=result[7]; - function _bg2_(aide_finale) - {try - {var - _bha_= - function(param) - {var - _bhi_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _FY_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bhj_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _FZ_, - calcul_apl_locatif_dot_traitem), - _bhi_), - _bhk_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _F0_, - Runtime_ocaml_Runtime[13], - _bhj_); - return caml_call2(Runtime_ocaml_Runtime[27],_F1_,_bhk_)}, - _bhb_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_F2_,1)}, - _bhc_= - [0, - function(param) - {function _bhf_(param){return aide_finale} - function _bhg_(param) - {if(0 === changement_logement_d842_4[0]) - var - infos=changement_logement_d842_4[1], - _bhh_= - caml_call2 - (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); - else - var _bhh_=0; - return caml_call2(Runtime_ocaml_Runtime[29],_F3_,_bhh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_F4_,[0],_bhg_,_bhf_)}], - _bhd_=caml_call4(Runtime_ocaml_Runtime[63],_F5_,_bhc_,_bhb_,_bha_); - return _bhd_} - catch(_bhe_) - {_bhe_ = caml_wrap_exception(_bhe_); - if(_bhe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_FX_]; - throw _bhe_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_F6_,Runtime_ocaml_Runtime[10],_bg2_); - try - {var - _bg3_=function(param){return calcul_apl_locatif_dot_aide_fi}, - _bg4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_F8_,1)}, - _bg5_= - [0, - function(param) - {function _bg8_(param) - {if(0 !== changement_logement_d842_4[0]) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$314); - var - infos=changement_logement_d842_4[1], - _bg$_=caml_call2(Runtime_ocaml_Runtime[98],infos[1],infos[2]); - return caml_call2 - (Runtime_ocaml_Runtime[98],loyer_principal,_bg$_)} - function _bg9_(param) - {if(0 === changement_logement_d842_4[0]) - var - infos=changement_logement_d842_4[1], - _bg__= - caml_call2 - (Runtime_ocaml_Runtime[128],loyer_principal,infos[1]); - else - var _bg__=0; - return caml_call2(Runtime_ocaml_Runtime[29],_F9_,_bg__)} - return caml_call4(Runtime_ocaml_Runtime[63],_F__,[0],_bg9_,_bg8_)}], - _bg6_=caml_call4(Runtime_ocaml_Runtime[63],_F$_,_bg5_,_bg4_,_bg3_)} - catch(_bg7_) - {_bg7_ = caml_wrap_exception(_bg7_); - if(_bg7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_F7_]; - throw _bg7_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ga_,Runtime_ocaml_Runtime[13],_bg6_); - return [0,aide_finale_formule,traitement_aide_finale]} - function calcul_allocation_logement_foy(calcul_allocation_logement_foy) - {var - type_logement_foyer=calcul_allocation_logement_foy[1], - date_conventionnement=calcul_allocation_logement_foy[2], - residence=calcul_allocation_logement_foy[3], - redevance=calcul_allocation_logement_foy[4], - ressources_menage_arrondies=calcul_allocation_logement_foy[5], - nombre_personnes_a_charge=calcul_allocation_logement_foy[6], - situation_familiale_calcul_apl=calcul_allocation_logement_foy[7], - zone=calcul_allocation_logement_foy[8], - date_courante=calcul_allocation_logement_foy[9], - categorie_equivalence_loyer_d8=calcul_allocation_logement_foy[10]; - try - {var - _a94_=function(param){return 1}, - _a95_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gc_,1)}, - _a96_=caml_call4(Runtime_ocaml_Runtime[63],_Gd_,[0],_a95_,_a94_), - calcul_nombre_parts_dot_condit= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ge_,Runtime_ocaml_Runtime[12],_a96_)} - catch(_bgk_) - {_bgk_ = caml_wrap_exception(_bgk_); - if(_bgk_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gb_]; - throw _bgk_} - try - {var - _a97_=function(param){return nombre_personnes_a_charge}, - _a98_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gg_,1)}, - _a99_=caml_call4(Runtime_ocaml_Runtime[63],_Gh_,[0],_a98_,_a97_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_Gi_,Runtime_ocaml_Runtime[14],_a99_)} - catch(_bgj_) - {_bgj_ = caml_wrap_exception(_bgj_); - if(_bgj_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gf_]; - throw _bgj_} - try - {var - _a9__=function(param){return situation_familiale_calcul_apl}, - _a9$_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gk_,1)}, - _a_a_=caml_call4(Runtime_ocaml_Runtime[63],_Gl_,[0],_a9$_,_a9__), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Gm_, - embed_situation_familiale_calc, - _a_a_)} - catch(_bgi_) - {_bgi_ = caml_wrap_exception(_bgi_); - if(_bgi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gj_]; - throw _bgi_} - try - {var - _a_b_=function(param){return residence}, - _a_c_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Go_,1)}, - _a_d_=caml_call4(Runtime_ocaml_Runtime[63],_Gp_,[0],_a_c_,_a_b_), - calcul_nombre_parts_dot_reside= - caml_call3 - (Runtime_ocaml_Runtime[28],_Gq_,embed_collectivite$0,_a_d_)} - catch(_bgh_) - {_bgh_ = caml_wrap_exception(_bgh_); - if(_bgh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gn_]; - throw _bgh_} - function calcul_nombre_parts_dot_limita(param) - {throw Runtime_ocaml_Runtime[2]} - var - _a_e_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Gr_,calcul_nombre_part_logement_fo), - [0, - calcul_nombre_parts_dot_condit, - calcul_nombre_parts_dot_nombre, - calcul_nombre_parts_dot_situat, - calcul_nombre_parts_dot_reside, - calcul_nombre_parts_dot_limita]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Gs_,_a_e_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _a_f_=function(param){return date_courante}, - _a_g_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Gu_,1)}, - _a_h_=caml_call4(Runtime_ocaml_Runtime[63],_Gv_,[0],_a_g_,_a_f_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Gw_,Runtime_ocaml_Runtime[16],_a_h_)} - catch(_bgg_) - {_bgg_ = caml_wrap_exception(_bgg_); - if(_bgg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gt_]; - throw _bgg_} - var - _a_i_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Gx_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_Gy_,_a_i_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _a_j_=function(param){return type_logement_foyer}, - _a_k_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GA_,1)}, - _a_l_=caml_call4(Runtime_ocaml_Runtime[63],_GB_,[0],_a_k_,_a_j_), - calcul_apl_logement_foyer_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_GC_,embed_type_logement_foyer,_a_l_)} - catch(_bgf_) - {_bgf_ = caml_wrap_exception(_bgf_); - if(_bgf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Gz_]; - throw _bgf_} - try - {var - _a_m_=function(param){return date_conventionnement}, - _a_n_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GE_,1)}, - _a_o_=caml_call4(Runtime_ocaml_Runtime[63],_GF_,[0],_a_n_,_a_m_), - calcul_apl_logement_foyer_dot_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_GG_,Runtime_ocaml_Runtime[16],_a_o_)} - catch(_bge_) - {_bge_ = caml_wrap_exception(_bge_); - if(_bge_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GD_]; - throw _bge_} - try - {var - _a_p_=function(param){return ressources_menage_arrondies}, - _a_q_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GI_,1)}, - _a_r_=caml_call4(Runtime_ocaml_Runtime[63],_GJ_,[0],_a_q_,_a_p_), - calcul_apl_logement_foyer_dot_$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_GK_,Runtime_ocaml_Runtime[13],_a_r_)} - catch(_bgd_) - {_bgd_ = caml_wrap_exception(_bgd_); - if(_bgd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GH_]; - throw _bgd_} - try - {var - _a_s_=function(param){return nombre_personnes_a_charge}, - _a_t_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GM_,1)}, - _a_u_=caml_call4(Runtime_ocaml_Runtime[63],_GN_,[0],_a_t_,_a_s_), - calcul_apl_logement_foyer_dot_$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_GO_,Runtime_ocaml_Runtime[14],_a_u_)} - catch(_bgc_) - {_bgc_ = caml_wrap_exception(_bgc_); - if(_bgc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GL_]; - throw _bgc_} - try - {var - _a_v_=function(param){return situation_familiale_calcul_apl}, - _a_w_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GQ_,1)}, - _a_x_=caml_call4(Runtime_ocaml_Runtime[63],_GR_,[0],_a_w_,_a_v_), - calcul_apl_logement_foyer_dot_$3= - caml_call3 - (Runtime_ocaml_Runtime[28], - _GS_, - embed_situation_familiale_calc, - _a_x_)} - catch(_bgb_) - {_bgb_ = caml_wrap_exception(_bgb_); - if(_bgb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GP_]; - throw _bgb_} - try - {var - _a_y_=function(param){return zone}, - _a_z_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GU_,1)}, - _a_A_=caml_call4(Runtime_ocaml_Runtime[63],_GV_,[0],_a_z_,_a_y_), - calcul_apl_logement_foyer_dot_$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_GW_,embed_zone_d_habitation,_a_A_)} - catch(_bga_) - {_bga_ = caml_wrap_exception(_bga_); - if(_bga_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GT_]; - throw _bga_} - try - {var - _a_B_=function(param){return date_courante}, - _a_C_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_GY_,1)}, - _a_D_=caml_call4(Runtime_ocaml_Runtime[63],_GZ_,[0],_a_C_,_a_B_), - calcul_apl_logement_foyer_dot_$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_G0_,Runtime_ocaml_Runtime[16],_a_D_)} - catch(_bf$_) - {_bf$_ = caml_wrap_exception(_bf$_); - if(_bf$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_GX_]; - throw _bf$_} - try - {var - _a_E_=function(param){return redevance}, - _a_F_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G2_,1)}, - _a_G_=caml_call4(Runtime_ocaml_Runtime[63],_G3_,[0],_a_F_,_a_E_), - calcul_apl_logement_foyer_dot_$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_G4_,Runtime_ocaml_Runtime[13],_a_G_)} - catch(_bf__) - {_bf__ = caml_wrap_exception(_bf__); - if(_bf__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_G1_]; - throw _bf__} - try - {var - _a_H_=function(param){return residence}, - _a_I_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_G6_,1)}, - _a_J_=caml_call4(Runtime_ocaml_Runtime[63],_G7_,[0],_a_I_,_a_H_), - calcul_apl_logement_foyer_dot_$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_G8_,embed_collectivite$0,_a_J_)} - catch(_bf9_) - {_bf9_ = caml_wrap_exception(_bf9_); - if(_bf9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_G5_]; - throw _bf9_} - function calcul_apl_logement_foyer_dot_$8(param) - {function _bf6_(param){return 1} - function _bf7_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_G9_,1)} - var _bf8_=caml_call4(Runtime_ocaml_Runtime[63],_G__,[0],_bf7_,_bf6_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _G$_, - Runtime_ocaml_Runtime[12], - _bf8_)} - function calcul_apl_logement_foyer_dot_$9(param) - {function _bf2_(param){return 1} - function _bf3_(param) - {switch(residence[0]) - {case 0:var _bf5_=1;break; - case 1:var _bf5_=1;break; - case 2:var _bf5_=1;break; - case 3:var _bf5_=1;break; - case 4:var _bf5_=0;break; - case 5:var _bf5_=0;break; - case 6:var _bf5_=0;break; - case 7:var _bf5_=0;break; - default:var _bf5_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Ha_,_bf5_)} - var _bf4_=caml_call4(Runtime_ocaml_Runtime[63],_Hb_,[0],_bf3_,_bf2_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Hc_, - Runtime_ocaml_Runtime[12], - _bf4_)} - function calcul_apl_logement_foyer_dot_$10(param) - {throw Runtime_ocaml_Runtime[2]} - var - _a_K_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Hd_,calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_He_,_a_K_), - calcul_apl_logement_foyer_dot_$11=result$1[7]; - try - {var - _a_L_= - function(param) - {function _bfN_(param){throw Runtime_ocaml_Runtime[2]} - function _bfO_(param){return 0} + _a2l_ = function(param){return 0;}, + _a2m_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _s8_, 1); + }, + _a2n_ = + [0, + function(param){ + function _a2q_(param){return 1;} + function _a2r_(param){ var - _bfP_= - [0, - function(param) - {function _bfQ_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _bfR_(param) - {var - _bf0_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bf1_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bf0_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hg_,_bf1_)} - var - _bfS_= - [0, - function(param) - {function _bfT_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _bfU_(param) - {var - _bfV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bfW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfV_), - _bfX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bfY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfX_), - _bfZ_=caml_call2(Runtime_ocaml_Runtime[83],_bfY_,_bfW_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hh_,_bfZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hi_,[0],_bfU_,_bfT_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hj_,_bfS_,_bfR_,_bfQ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hk_,_bfP_,_bfO_,_bfN_)}, - _a_M_=function(param){return 1}, - _a_N_= - [0, - function(param) - {function _beK_(param){throw Runtime_ocaml_Runtime[2]} - function _beL_(param){return 0} - var - _beM_= - [0, - function(param) - {function _beN_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$47)} - function _beO_(param) - {var - _bfD_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$48), - _bfE_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bfD_); - switch(residence[0]) - {case 0:var _bfF_=1;break; - case 1:var _bfF_=0;break; - case 2:var _bfF_=1;break; - case 3:var _bfF_=1;break; - case 4:var _bfF_=1;break; - case 5:var _bfF_=1;break; - case 6:var _bfF_=0;break; - case 7:var _bfF_=0;break; - default:var _bfF_=1} - var - _bfG_=caml_call2(Runtime_ocaml_Runtime[83],_bfF_,_bfE_), - _bfH_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _bfI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfH_), - _bfJ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bfK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfJ_), - _bfL_=caml_call2(Runtime_ocaml_Runtime[83],_bfK_,_bfI_), - _bfM_=caml_call2(Runtime_ocaml_Runtime[83],_bfL_,_bfG_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hl_,_bfM_)} - var - _beP_= - [0, - function(param) - {function _beQ_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$49)} - function _beR_(param) - {var - _bft_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$50), - _bfu_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bft_); - switch(residence[0]) - {case 0:var _bfv_=1;break; - case 1:var _bfv_=0;break; - case 2:var _bfv_=1;break; - case 3:var _bfv_=1;break; - case 4:var _bfv_=1;break; - case 5:var _bfv_=1;break; - case 6:var _bfv_=0;break; - case 7:var _bfv_=0;break; - default:var _bfv_=1} - var - _bfw_=caml_call2(Runtime_ocaml_Runtime[83],_bfv_,_bfu_), - _bfx_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bfy_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfx_), - _bfz_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bfA_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfz_), - _bfB_=caml_call2(Runtime_ocaml_Runtime[83],_bfA_,_bfy_), - _bfC_=caml_call2(Runtime_ocaml_Runtime[83],_bfB_,_bfw_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hm_,_bfC_)} - var - _beS_= - [0, - function(param) - {function _beT_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$51)} - function _beU_(param) - {var - _bfj_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$52), - _bfk_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_bfj_); - switch(residence[0]) - {case 0:var _bfl_=1;break; - case 1:var _bfl_=0;break; - case 2:var _bfl_=1;break; - case 3:var _bfl_=1;break; - case 4:var _bfl_=1;break; - case 5:var _bfl_=1;break; - case 6:var _bfl_=0;break; - case 7:var _bfl_=0;break; - default:var _bfl_=1} - var - _bfm_=caml_call2(Runtime_ocaml_Runtime[83],_bfl_,_bfk_), - _bfn_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bfo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfn_), - _bfp_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bfq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bfp_), - _bfr_=caml_call2(Runtime_ocaml_Runtime[83],_bfq_,_bfo_), - _bfs_=caml_call2(Runtime_ocaml_Runtime[83],_bfr_,_bfm_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hn_,_bfs_)} - var - _beV_= - [0, - function(param) - {function _beW_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$53)} - function _beX_(param) - {var - _be$_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$54), - _bfa_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_be$_); - switch(residence[0]) - {case 0:var _bfb_=1;break; - case 1:var _bfb_=0;break; - case 2:var _bfb_=1;break; - case 3:var _bfb_=1;break; - case 4:var _bfb_=1;break; - case 5:var _bfb_=1;break; - case 6:var _bfb_=0;break; - case 7:var _bfb_=0;break; - default:var _bfb_=1} - var - _bfc_=caml_call2(Runtime_ocaml_Runtime[83],_bfb_,_bfa_), - _bfd_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bfe_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bfd_), - _bff_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bfg_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bff_), - _bfh_=caml_call2(Runtime_ocaml_Runtime[83],_bfg_,_bfe_), - _bfi_=caml_call2(Runtime_ocaml_Runtime[83],_bfh_,_bfc_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ho_,_bfi_)} - var - _beY_= - [0, - function(param) - {function _beZ_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$55)} - function _be0_(param) - {var - _be1_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$56), - _be2_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_be1_); - switch(residence[0]) - {case 0:var _be3_=1;break; - case 1:var _be3_=0;break; - case 2:var _be3_=1;break; - case 3:var _be3_=1;break; - case 4:var _be3_=1;break; - case 5:var _be3_=1;break; - case 6:var _be3_=0;break; - case 7:var _be3_=0;break; - default:var _be3_=1} - var - _be4_=caml_call2(Runtime_ocaml_Runtime[83],_be3_,_be2_), - _be5_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _be6_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_be5_), - _be7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _be8_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_be7_), - _be9_=caml_call2(Runtime_ocaml_Runtime[83],_be8_,_be6_), - _be__=caml_call2(Runtime_ocaml_Runtime[83],_be9_,_be4_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hp_,_be__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hq_,[0],_be0_,_beZ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hr_,_beY_,_beX_,_beW_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hs_,_beV_,_beU_,_beT_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ht_,_beS_,_beR_,_beQ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hu_,_beP_,_beO_,_beN_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Hv_,_beM_,_beL_,_beK_)}], - _a_O_=caml_call4(Runtime_ocaml_Runtime[63],_Hw_,_a_N_,_a_M_,_a_L_)} - catch(_beJ_) - {_beJ_ = caml_wrap_exception(_beJ_); - if(_beJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Hf_]; - throw _beJ_} - var - multiplicateur_majoration_char= - caml_call3 - (Runtime_ocaml_Runtime[28],_Hx_,Runtime_ocaml_Runtime[15],_a_O_); - try - {var - _a_P_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$0)}, - _a_Q_= - function(param) - {var - _beH_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _beI_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beH_); - return caml_call2(Runtime_ocaml_Runtime[29],_Hz_,_beI_)}, - _a_R_=caml_call4(Runtime_ocaml_Runtime[63],_HA_,[0],_a_Q_,_a_P_)} - catch(_beG_) - {_beG_ = caml_wrap_exception(_beG_); - if(_beG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Hy_]; - throw _beG_} - var - montant_minimal_depense_nette_= - caml_call3 - (Runtime_ocaml_Runtime[28],_HB_,Runtime_ocaml_Runtime[13],_a_R_); - try - {var - _a_S_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$2)}, - _a_T_= - function(param) - {var - _beE_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _beF_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beE_); - return caml_call2(Runtime_ocaml_Runtime[29],_HD_,_beF_)}, - _a_U_=caml_call4(Runtime_ocaml_Runtime[63],_HE_,[0],_a_T_,_a_S_)} - catch(_beD_) - {_beD_ = caml_wrap_exception(_beD_); - if(_beD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HC_]; - throw _beD_} - var - montant_forfaitaire_d842_15= - caml_call3 - (Runtime_ocaml_Runtime[28],_HF_,Runtime_ocaml_Runtime[13],_a_U_); - try - {var - _a_V_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$3)}, - _a_W_= - function(param) - {var - _beB_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _beC_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_beB_); - return caml_call2(Runtime_ocaml_Runtime[29],_HH_,_beC_)}, - _a_X_=caml_call4(Runtime_ocaml_Runtime[63],_HI_,[0],_a_W_,_a_V_)} - catch(_beA_) - {_beA_ = caml_wrap_exception(_beA_); - if(_beA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HG_]; - throw _beA_} - var - montant_minimal_aide_d842_15= - caml_call3 - (Runtime_ocaml_Runtime[28],_HJ_,Runtime_ocaml_Runtime[13],_a_X_); - try - {var - _a_Y_=function(param){throw Runtime_ocaml_Runtime[2]}, - _a_Z_=function(param){return 0}, - _a_0_= - function(param) - {function _beh_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26329)} - function _bei_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bet_=0;break; - case 1:var _bet_=1;break; - case 2:var _bet_=0;break; - default:var _bet_=0} - var - _beu_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bev_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_beu_), - _bew_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bex_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bew_), - _bey_=caml_call2(Runtime_ocaml_Runtime[83],_bex_,_bev_), - _bez_=caml_call2(Runtime_ocaml_Runtime[83],_bey_,_bet_); - return caml_call2(Runtime_ocaml_Runtime[29],_HL_,_bez_)} + _a2s_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2); + switch(enfant[2][0]){ + case 0: + var _a2t_ = 0; break; + case 1: + var _a2t_ = 0; break; + default: var _a2t_ = 1; + } + switch(enfant[2][0]){ + case 0: + var _a2u_ = 0; break; + case 1: + var _a2u_ = 1; break; + default: var _a2u_ = 0; + } + var _a2v_ = caml_call2(Runtime_ocaml_Runtime[84], _a2u_, _a2t_); + switch(enfant[2][0]){ + case 0: + var _a2w_ = 1; break; + case 1: + var _a2w_ = 0; break; + default: var _a2w_ = 0; + } var - _bej_= + _a2x_ = caml_call2(Runtime_ocaml_Runtime[84], _a2w_, _a2v_), + _a2y_ = caml_call2(Runtime_ocaml_Runtime[83], _a2x_, _a2s_); + return caml_call2(Runtime_ocaml_Runtime[29], _s9_, _a2y_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _s__, [0], _a2r_, _a2q_); + }], + _a2o_ = + caml_call4(Runtime_ocaml_Runtime[63], _s$_, _a2n_, _a2m_, _a2l_); + return _a2o_; + } + catch(_a2p_){ + var _a2k_ = caml_wrap_exception(_a2p_); + if(_a2k_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _s7_], 1); + throw caml_maybe_attach_backtrace(_a2k_, 0); + } + } + var + conditions_hors_age = + caml_call3 + (Runtime_ocaml_Runtime[28], _ta_, Runtime_ocaml_Runtime[10], _a1W_); + function _a1X_(enfant){ + try{ + var + _a1Z_ = function(param){return 0;}, + _a10_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tc_, 1); + }, + _a11_ = + [0, + function(param){ + function _a14_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _a15_(param){return 0;} + var + _a16_ = [0, - function(param) - {function _bek_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_16941$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26329$0)} - function _bel_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bem_=0;break; - case 1:var _bem_=0;break; - case 2:var _bem_=0;break; - default:var _bem_=1} - var - _ben_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _beo_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ben_), - _bep_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _beq_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bep_), - _ber_=caml_call2(Runtime_ocaml_Runtime[83],_beq_,_beo_), - _bes_=caml_call2(Runtime_ocaml_Runtime[83],_ber_,_bem_); - return caml_call2(Runtime_ocaml_Runtime[29],_HM_,_bes_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_HN_,[0],_bel_,_bek_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_HO_,_bej_,_bei_,_beh_)}, - _a_1_= - function(param) - {function _bd__(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20554) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31939)} - function _bd$_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bea_=0;break; - case 1:var _bea_=0;break; - case 2:var _bea_=1;break; - default:var _bea_=0} - var - _beb_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bec_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_beb_), - _bed_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bee_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bed_), - _bef_=caml_call2(Runtime_ocaml_Runtime[83],_bee_,_bec_), - _beg_=caml_call2(Runtime_ocaml_Runtime[83],_bef_,_bea_); - return caml_call2(Runtime_ocaml_Runtime[29],_HP_,_beg_)} - return caml_call4(Runtime_ocaml_Runtime[63],_HQ_,[0],_bd$_,_bd__)}, - _a_2_= - function(param) - {function _bd1_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8379) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13045)} - function _bd2_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bd3_=1;break; - case 1:var _bd3_=0;break; - case 2:var _bd3_=0;break; - default:var _bd3_=0} - var - _bd4_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bd5_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bd4_), - _bd6_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bd7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bd6_), - _bd8_=caml_call2(Runtime_ocaml_Runtime[83],_bd7_,_bd5_), - _bd9_=caml_call2(Runtime_ocaml_Runtime[83],_bd8_,_bd3_); - return caml_call2(Runtime_ocaml_Runtime[29],_HR_,_bd9_)} - return caml_call4(Runtime_ocaml_Runtime[63],_HS_,[0],_bd2_,_bd1_)}, - _a_3_= - function(param) - {function _bdI_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26440)} - function _bdJ_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bdU_=0;break; - case 1:var _bdU_=1;break; - case 2:var _bdU_=0;break; - default:var _bdU_=0} - var - _bdV_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdV_), - _bdX_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bdY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdX_), - _bdZ_=caml_call2(Runtime_ocaml_Runtime[83],_bdY_,_bdW_), - _bd0_=caml_call2(Runtime_ocaml_Runtime[83],_bdZ_,_bdU_); - return caml_call2(Runtime_ocaml_Runtime[29],_HT_,_bd0_)} - var - _bdK_= - [0, - function(param) - {function _bdL_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17012$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26440$0)} - function _bdM_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bdN_=0;break; - case 1:var _bdN_=0;break; - case 2:var _bdN_=0;break; - default:var _bdN_=1} - var - _bdO_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdP_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdO_), - _bdQ_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bdR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdQ_), - _bdS_=caml_call2(Runtime_ocaml_Runtime[83],_bdR_,_bdP_), - _bdT_=caml_call2(Runtime_ocaml_Runtime[83],_bdS_,_bdN_); - return caml_call2(Runtime_ocaml_Runtime[29],_HU_,_bdT_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_HV_,[0],_bdM_,_bdL_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_HW_,_bdK_,_bdJ_,_bdI_)}, - _a_4_= - function(param) - {function _bdz_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_20640) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32073)} - function _bdA_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bdB_=0;break; - case 1:var _bdB_=0;break; - case 2:var _bdB_=1;break; - default:var _bdB_=0} - var - _bdC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdC_), - _bdE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bdF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdE_), - _bdG_=caml_call2(Runtime_ocaml_Runtime[83],_bdF_,_bdD_), - _bdH_=caml_call2(Runtime_ocaml_Runtime[83],_bdG_,_bdB_); - return caml_call2(Runtime_ocaml_Runtime[29],_HX_,_bdH_)} - return caml_call4(Runtime_ocaml_Runtime[63],_HY_,[0],_bdA_,_bdz_)}, - _a_5_= - function(param) - {function _bdq_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8414) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13100)} - function _bdr_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bds_=1;break; - case 1:var _bds_=0;break; - case 2:var _bds_=0;break; - default:var _bds_=0} - var - _bdt_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdu_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bdt_), - _bdv_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bdw_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdv_), - _bdx_=caml_call2(Runtime_ocaml_Runtime[83],_bdw_,_bdu_), - _bdy_=caml_call2(Runtime_ocaml_Runtime[83],_bdx_,_bds_); - return caml_call2(Runtime_ocaml_Runtime[29],_HZ_,_bdy_)} - return caml_call4(Runtime_ocaml_Runtime[63],_H0_,[0],_bdr_,_bdq_)}, - _a_6_= - function(param) - {function _bdd_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27365)} - function _bde_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bdm_=0;break; - case 1:var _bdm_=1;break; - case 2:var _bdm_=0;break; - default:var _bdm_=0} - var - _bdn_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdn_), - _bdp_=caml_call2(Runtime_ocaml_Runtime[83],_bdo_,_bdm_); - return caml_call2(Runtime_ocaml_Runtime[29],_H1_,_bdp_)} - var - _bdf_= - [0, - function(param) - {function _bdg_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_17607$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27365$0)} - function _bdh_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bdi_=0;break; - case 1:var _bdi_=0;break; - case 2:var _bdi_=0;break; - default:var _bdi_=1} - var - _bdj_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bdj_), - _bdl_=caml_call2(Runtime_ocaml_Runtime[83],_bdk_,_bdi_); - return caml_call2(Runtime_ocaml_Runtime[29],_H2_,_bdl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_H3_,[0],_bdh_,_bdg_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_H4_,_bdf_,_bde_,_bdd_)}, - _a_7_= - function(param) - {function _bc9_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21362) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33196)} - function _bc__(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bc$_=0;break; - case 1:var _bc$_=0;break; - case 2:var _bc$_=1;break; - default:var _bc$_=0} - var - _bda_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bdb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bda_), - _bdc_=caml_call2(Runtime_ocaml_Runtime[83],_bdb_,_bc$_); - return caml_call2(Runtime_ocaml_Runtime[29],_H5_,_bdc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_H6_,[0],_bc__,_bc9_)}, - _a_8_= - [0, - function(param) - {function _bc3_(param) - {return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_8708) - :caml_call1(Runtime_ocaml_Runtime[31],cst_13559)} - function _bc4_(param) - {switch(categorie_equivalence_loyer_d8[0]) - {case 0:var _bc5_=1;break; - case 1:var _bc5_=0;break; - case 2:var _bc5_=0;break; - default:var _bc5_=0} - var - _bc6_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bc7_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bc6_), - _bc8_=caml_call2(Runtime_ocaml_Runtime[83],_bc7_,_bc5_); - return caml_call2(Runtime_ocaml_Runtime[29],_H7_,_bc8_)} - return caml_call4(Runtime_ocaml_Runtime[63],_H8_,[0],_bc4_,_bc3_)}, - _a_7_, - _a_6_, - _a_5_, - _a_4_, - _a_3_, - _a_2_, - _a_1_, - _a_0_], - _a_9_=caml_call4(Runtime_ocaml_Runtime[63],_H9_,_a_8_,_a_Z_,_a_Y_)} - catch(_bc2_) - {_bc2_ = caml_wrap_exception(_bc2_); - if(_bc2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_HK_]; - throw _bc2_} - var - equivalence_loyer= - caml_call3 - (Runtime_ocaml_Runtime[28],_H__,Runtime_ocaml_Runtime[13],_a_9_); - try - {var - _a___=function(param){return date_courante}, - _a_$_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ia_,1)}, - _a$a_=caml_call4(Runtime_ocaml_Runtime[63],_Ib_,[0],_a_$_,_a___), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ic_,Runtime_ocaml_Runtime[16],_a$a_)} - catch(_bc1_) - {_bc1_ = caml_wrap_exception(_bc1_); - if(_bc1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_H$_]; - throw _bc1_} - try - {var - _a$b_=function(param){return ressources_menage_arrondies}, - _a$c_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ie_,1)}, - _a$d_=caml_call4(Runtime_ocaml_Runtime[63],_If_,[0],_a$c_,_a$b_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ig_,Runtime_ocaml_Runtime[13],_a$d_)} - catch(_bc0_) - {_bc0_ = caml_wrap_exception(_bc0_); - if(_bc0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Id_]; - throw _bc0_} - try - {var - _a$e_=function(param){return 1}, - _a$f_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ii_,1)}, - _a$g_=caml_call4(Runtime_ocaml_Runtime[63],_Ij_,[0],_a$f_,_a$e_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ik_,Runtime_ocaml_Runtime[12],_a$g_)} - catch(_bcZ_) - {_bcZ_ = caml_wrap_exception(_bcZ_); - if(_bcZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ih_]; - throw _bcZ_} - try - {var - _a$h_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _a$i_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Im_,1)}, - _a$j_=caml_call4(Runtime_ocaml_Runtime[63],_In_,[0],_a$i_,_a$h_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Io_,Runtime_ocaml_Runtime[15],_a$j_)} - catch(_bcY_) - {_bcY_ = caml_wrap_exception(_bcY_); - if(_bcY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Il_]; - throw _bcY_} - var - _a$k_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Ip_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_Iq_,_a$k_), - calcul_equivalence_loyer_minim$4=result$2[1]; - try - {var - _a$l_=function(param){return calcul_apl_logement_foyer_dot_$11}, - _a$m_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Is_,1)}, - _a$n_=caml_call4(Runtime_ocaml_Runtime[63],_It_,[0],_a$m_,_a$l_)} - catch(_bcX_) - {_bcX_ = caml_wrap_exception(_bcX_); - if(_bcX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ir_]; - throw _bcX_} - var - coefficient_prise_en_charge= - caml_call3 - (Runtime_ocaml_Runtime[28],_Iu_,Runtime_ocaml_Runtime[15],_a$n_); - try - {var - _a$o_= - function(param) - {function _bcn_(param){throw Runtime_ocaml_Runtime[2]} - function _bco_(param){return 0} - function _bcp_(param) - {function _bcL_(param) - {var _bcS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$315); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$3); - var - _bcT_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bcU_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$3), - _bcV_=caml_call2(Runtime_ocaml_Runtime[104],_bcU_,_bcT_), - _bcW_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$4); - return caml_call2(Runtime_ocaml_Runtime[93],_bcW_,_bcV_)} - function _bcM_(param) - {var - _bcN_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bcO_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bcN_), - _bcP_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bcQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcP_), - _bcR_=caml_call2(Runtime_ocaml_Runtime[83],_bcQ_,_bcO_); - return caml_call2(Runtime_ocaml_Runtime[29],_Iw_,_bcR_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ix_,[0],_bcM_,_bcL_)} - function _bcq_(param) - {function _bcA_(param) - {var _bcH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$316); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$3); - var - _bcI_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$3), - _bcJ_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _bcI_, - multiplicateur_majoration_char), - _bcK_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$4); - return caml_call2(Runtime_ocaml_Runtime[93],_bcK_,_bcJ_)} - function _bcB_(param) - {var - _bcC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bcD_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bcC_), - _bcE_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bcF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcE_), - _bcG_=caml_call2(Runtime_ocaml_Runtime[83],_bcF_,_bcD_); - return caml_call2(Runtime_ocaml_Runtime[29],_Iy_,_bcG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Iz_,[0],_bcB_,_bcA_)} - var - _bcr_= - [0, - function(param) - {function _bcs_(param) - {var _bcw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$317); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_bcw_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$3); - var - _bcx_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$3), - _bcy_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _bcx_, - multiplicateur_majoration_char), - _bcz_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$4); - return caml_call2(Runtime_ocaml_Runtime[93],_bcz_,_bcy_)} - function _bct_(param) - {var - _bcu_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bcv_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcu_); - return caml_call2(Runtime_ocaml_Runtime[29],_IA_,_bcv_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IB_,[0],_bct_,_bcs_)}, - _bcq_, - _bcp_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IC_,_bcr_,_bco_,_bcn_)}, - _a$p_=function(param){return 1}, - _a$q_= - [0, - function(param) - {function _baN_(param){throw Runtime_ocaml_Runtime[2]} - function _baO_(param){return 0} - function _baP_(param) - {function _bb8_(param) - {var - _bcf_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bcg_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$3), - _bch_=caml_call2(Runtime_ocaml_Runtime[104],_bcg_,_bcf_), - _bci_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$3), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bci_,_bch_), - _bcj_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$57), - _bck_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$4), - _bcl_=caml_call2(Runtime_ocaml_Runtime[104],_bck_,_bcj_), - _bcm_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$4), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bcm_,_bcl_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bb9_(param) - {switch(residence[0]) - {case 0:var _bb__=1;break; - case 1:var _bb__=0;break; - case 2:var _bb__=1;break; - case 3:var _bb__=1;break; - case 4:var _bb__=1;break; - case 5:var _bb__=1;break; - case 6:var _bb__=0;break; - case 7:var _bb__=0;break; - default:var _bb__=1} - var - _bb$_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bca_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bb$_), - _bcb_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _bcc_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bcb_), - _bcd_=caml_call2(Runtime_ocaml_Runtime[83],_bcc_,_bca_), - _bce_=caml_call2(Runtime_ocaml_Runtime[83],_bcd_,_bb__); - return caml_call2(Runtime_ocaml_Runtime[29],_ID_,_bce_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IE_,[0],_bb9_,_bb8_)} - function _baQ_(param) - {function _bbR_(param) - {var - _bb0_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bb1_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$3), - _bb2_=caml_call2(Runtime_ocaml_Runtime[104],_bb1_,_bb0_), - _bb3_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$3), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bb3_,_bb2_), - _bb4_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$58), - _bb5_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$4), - _bb6_=caml_call2(Runtime_ocaml_Runtime[104],_bb5_,_bb4_), - _bb7_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$4), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bb7_,_bb6_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bbS_(param) - {switch(residence[0]) - {case 0:var _bbT_=1;break; - case 1:var _bbT_=0;break; - case 2:var _bbT_=1;break; - case 3:var _bbT_=1;break; - case 4:var _bbT_=1;break; - case 5:var _bbT_=1;break; - case 6:var _bbT_=0;break; - case 7:var _bbT_=0;break; - default:var _bbT_=1} - var - _bbU_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bbV_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbU_), - _bbW_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _bbX_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbW_), - _bbY_=caml_call2(Runtime_ocaml_Runtime[83],_bbX_,_bbV_), - _bbZ_=caml_call2(Runtime_ocaml_Runtime[83],_bbY_,_bbT_); - return caml_call2(Runtime_ocaml_Runtime[29],_IF_,_bbZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IG_,[0],_bbS_,_bbR_)} - function _baR_(param) - {function _bbi_(param) - {var - _bbJ_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bbK_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$7), - _bbL_=caml_call2(Runtime_ocaml_Runtime[104],_bbK_,_bbJ_), - _bbM_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$7), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bbM_,_bbL_), - _bbN_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$59), - _bbO_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$8), - _bbP_=caml_call2(Runtime_ocaml_Runtime[104],_bbO_,_bbN_), - _bbQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$8), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bbQ_,_bbP_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bbj_(param) - {switch(residence[0]) - {case 0:var _bbC_=1;break; - case 1:var _bbC_=0;break; - case 2:var _bbC_=1;break; - case 3:var _bbC_=1;break; - case 4:var _bbC_=1;break; - case 5:var _bbC_=1;break; - case 6:var _bbC_=0;break; - case 7:var _bbC_=0;break; - default:var _bbC_=1} - var - _bbD_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _bbE_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbD_), - _bbF_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bbG_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbF_), - _bbH_=caml_call2(Runtime_ocaml_Runtime[83],_bbG_,_bbE_), - _bbI_=caml_call2(Runtime_ocaml_Runtime[83],_bbH_,_bbC_); - return caml_call2(Runtime_ocaml_Runtime[29],_IH_,_bbI_)} - var - _bbk_= - [0, - function(param) - {function _bbl_(param) - {var - _bbu_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bbv_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$9), - _bbw_=caml_call2(Runtime_ocaml_Runtime[104],_bbv_,_bbu_), - _bbx_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$9), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bbx_,_bbw_), - _bby_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$60), - _bbz_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$10), - _bbA_=caml_call2(Runtime_ocaml_Runtime[104],_bbz_,_bby_), - _bbB_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$10), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bbB_,_bbA_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _bbm_(param) - {switch(residence[0]) - {case 0:var _bbn_=1;break; - case 1:var _bbn_=0;break; - case 2:var _bbn_=1;break; - case 3:var _bbn_=1;break; - case 4:var _bbn_=1;break; - case 5:var _bbn_=1;break; - case 6:var _bbn_=0;break; - case 7:var _bbn_=0;break; - default:var _bbn_=1} - var - _bbo_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _bbp_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_bbo_), - _bbq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _bbr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_bbq_), - _bbs_=caml_call2(Runtime_ocaml_Runtime[83],_bbr_,_bbp_), - _bbt_=caml_call2(Runtime_ocaml_Runtime[83],_bbs_,_bbn_); - return caml_call2(Runtime_ocaml_Runtime[29],_II_,_bbt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IJ_,[0],_bbm_,_bbl_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IK_,_bbk_,_bbj_,_bbi_)} - function _baS_(param) - {function _ba3_(param) - {var - _bba_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _bbb_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$5), - _bbc_=caml_call2(Runtime_ocaml_Runtime[104],_bbb_,_bba_), - _bbd_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$5), - montant=caml_call2(Runtime_ocaml_Runtime[93],_bbd_,_bbc_), - _bbe_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$61), - _bbf_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$6), - _bbg_=caml_call2(Runtime_ocaml_Runtime[104],_bbf_,_bbe_), - _bbh_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$6), - limite=caml_call2(Runtime_ocaml_Runtime[93],_bbh_,_bbg_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _ba4_(param) - {switch(residence[0]) - {case 0:var _ba5_=1;break; - case 1:var _ba5_=0;break; - case 2:var _ba5_=1;break; - case 3:var _ba5_=1;break; - case 4:var _ba5_=1;break; - case 5:var _ba5_=1;break; - case 6:var _ba5_=0;break; - case 7:var _ba5_=0;break; - default:var _ba5_=1} - var - _ba6_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _ba7_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_ba6_), - _ba8_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _ba9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ba8_), - _ba__=caml_call2(Runtime_ocaml_Runtime[83],_ba9_,_ba7_), - _ba$_=caml_call2(Runtime_ocaml_Runtime[83],_ba__,_ba5_); - return caml_call2(Runtime_ocaml_Runtime[29],_IL_,_ba$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IM_,[0],_ba4_,_ba3_)} - var - _baT_= - [0, - function(param) - {function _baU_(param) - {var - _ba0_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$7), - _ba1_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _ba0_, - multiplicateur_majoration_char), - _ba2_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$7); - return caml_call2(Runtime_ocaml_Runtime[93],_ba2_,_ba1_)} - function _baV_(param) - {switch(residence[0]) - {case 0:var _baW_=1;break; - case 1:var _baW_=0;break; - case 2:var _baW_=1;break; - case 3:var _baW_=1;break; - case 4:var _baW_=1;break; - case 5:var _baW_=1;break; - case 6:var _baW_=0;break; - case 7:var _baW_=0;break; - default:var _baW_=1} - var - _baX_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _baY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_baX_), - _baZ_=caml_call2(Runtime_ocaml_Runtime[83],_baY_,_baW_); - return caml_call2(Runtime_ocaml_Runtime[29],_IN_,_baZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_IO_,[0],_baV_,_baU_)}, - _baS_, - _baR_, - _baQ_, - _baP_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_IP_,_baT_,_baO_,_baN_)}], - _a$r_=caml_call4(Runtime_ocaml_Runtime[63],_IQ_,_a$q_,_a$p_,_a$o_)} - catch(_baM_) - {_baM_ = caml_wrap_exception(_baM_); - if(_baM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Iv_]; - throw _baM_} - var - montant_forfaitaire_charges= - caml_call3 - (Runtime_ocaml_Runtime[28],_IR_,Runtime_ocaml_Runtime[13],_a$r_); - function _a$s_(aide_finale) - {try - {var - _baG_= - function(param) - {var - _baK_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$318), - _baL_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15); - return caml_call2(Runtime_ocaml_Runtime[113],_baL_,_baK_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$319) - :caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_15)}, - _baH_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_IT_,1)}, - _baI_=caml_call4(Runtime_ocaml_Runtime[63],_IU_,[0],_baH_,_baG_); - return _baI_} - catch(_baJ_) - {_baJ_ = caml_wrap_exception(_baJ_); - if(_baJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_IS_]; - throw _baJ_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_IV_,Runtime_ocaml_Runtime[10],_a$s_); - try - {var - _a$t_=function(param){return calcul_equivalence_loyer_minim$4}, - _a$u_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_IX_,1)}, - _a$v_=caml_call4(Runtime_ocaml_Runtime[63],_IY_,[0],_a$u_,_a$t_)} - catch(_baF_) - {_baF_ = caml_wrap_exception(_baF_); - if(_baF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_IW_]; - throw _baF_} - var - loyer_minimal= - caml_call3 - (Runtime_ocaml_Runtime[28],_IZ_,Runtime_ocaml_Runtime[13],_a$v_); - function _a$w_(allocation_mensuelle) - {try - {var - _baA_= - function(param) - {var - _baE_= - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98],_baE_,allocation_mensuelle)}, - _baB_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_I1_,1)}, - _baC_=caml_call4(Runtime_ocaml_Runtime[63],_I2_,[0],_baB_,_baA_); - return _baC_} - catch(_baD_) - {_baD_ = caml_wrap_exception(_baD_); - if(_baD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_I0_]; - throw _baD_}} - var - depense_nette_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_I3_,Runtime_ocaml_Runtime[10],_a$w_); - try - {var - _a$x_= - function(param) - {var - _bay_= - caml_call2 - (Runtime_ocaml_Runtime[93], - equivalence_loyer, - montant_forfaitaire_charges), - _baz_=caml_call2(Runtime_ocaml_Runtime[98],_bay_,loyer_minimal); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _baz_, - coefficient_prise_en_charge)}, - _a$y_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_I5_,1)}, - _a$z_=caml_call4(Runtime_ocaml_Runtime[63],_I6_,[0],_a$y_,_a$x_)} - catch(_bax_) - {_bax_ = caml_wrap_exception(_bax_); - if(_bax_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_I4_]; - throw _bax_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_I7_,Runtime_ocaml_Runtime[13],_a$z_); - function _a$A_(allocation_mensuelle) - {try - {var - _bal_= - function(param) - {var - _bap_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _I9_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _baq_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_I__,depense_nette_minimale), - _bap_), - _bar_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _I$_, - Runtime_ocaml_Runtime[13], - _baq_), - _bas_=caml_call2(Runtime_ocaml_Runtime[27],_Ja_,_bar_); - if - (! - caml_call2 - (Runtime_ocaml_Runtime[113], - _bas_, - montant_minimal_depense_nette_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$320); - var - _bat_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jb_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _bau_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Jc_,depense_nette_minimale), - _bat_), - _bav_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jd_, - Runtime_ocaml_Runtime[13], - _bau_), - _baw_=caml_call2(Runtime_ocaml_Runtime[27],_Je_,_bav_); - return caml_call2 - (Runtime_ocaml_Runtime[98], - montant_minimal_depense_nette_, - _baw_)}, - _bam_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Jf_,1)}, - _ban_=caml_call4(Runtime_ocaml_Runtime[63],_Jg_,[0],_bam_,_bal_); - return _ban_} - catch(_bao_) - {_bao_ = caml_wrap_exception(_bao_); - if(_bao_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_I8_]; - throw _bao_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_Jh_,Runtime_ocaml_Runtime[10],_a$A_); - function _a$B_(aide_finale) - {try - {var - _a$$_= - function(param) - {var - _bad_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jj_, - Runtime_ocaml_Runtime[13], - aide_finale), - _bae_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Jk_, - traitement_aide_finale_minorat), - _bad_), - _baf_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jl_, - Runtime_ocaml_Runtime[13], - _bae_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Jm_,_baf_), - _bag_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jn_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _bah_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Jo_, - abattement_depense_nette_minim), - _bag_), - _bai_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jp_, - Runtime_ocaml_Runtime[13], - _bah_), - abattement=caml_call2(Runtime_ocaml_Runtime[27],_Jq_,_bai_), - _baj_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$321), - _bak_= - caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,abattement); - return caml_call2(Runtime_ocaml_Runtime[113],_bak_,_baj_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$322) - :caml_call2 - (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, - _baa_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Jr_,1)}, - _bab_=caml_call4(Runtime_ocaml_Runtime[63],_Js_,[0],_baa_,_a$$_); - return _bab_} - catch(_bac_) - {_bac_ = caml_wrap_exception(_bac_); - if(_bac_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ji_]; - throw _bac_}} - var - traitement_aide_finale_depense= - caml_call3 - (Runtime_ocaml_Runtime[28],_Jt_,Runtime_ocaml_Runtime[10],_a$B_); - function _a$C_(aide_finale) - {try - {var - _a$4_= - function(param) - {var - _a$8_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jv_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a$9_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Jw_, - traitement_aide_finale_depense), - _a$8_), - _a$__= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Jx_, - Runtime_ocaml_Runtime[13], - _a$9_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_Jy_,_a$__); - return caml_call2 - (Runtime_ocaml_Runtime[123],aide_finale$0,redevance) - ?redevance - :aide_finale$0}, - _a$5_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Jz_,1)}, - _a$6_=caml_call4(Runtime_ocaml_Runtime[63],_JA_,[0],_a$5_,_a$4_); - return _a$6_} - catch(_a$7_) - {_a$7_ = caml_wrap_exception(_a$7_); - if(_a$7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ju_]; - throw _a$7_}} - var - traitement_aide_finale_redevan= - caml_call3 - (Runtime_ocaml_Runtime[28],_JB_,Runtime_ocaml_Runtime[10],_a$C_); - function _a$D_(aide_finale) - {try - {var - _a$P_= - function(param) - {var - _a$T_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JD_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a$U_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _JE_, - traitement_aide_finale_redevan), - _a$T_), - _a$V_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JF_, - Runtime_ocaml_Runtime[13], - _a$U_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_JG_,_a$V_), - _a$W_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JH_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _a$X_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _JI_, - contributions_sociales_dot_mon), - _a$W_), - _a$Y_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JJ_, - Runtime_ocaml_Runtime[13], - _a$X_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_JK_,_a$Y_), - _a$Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$2), - _a$0_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _a$1_=caml_call2(Runtime_ocaml_Runtime[98],_a$0_,_a$Z_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_a$1_), - _a$2_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$323), - _a$3_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_a$3_,_a$2_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$324)}, - _a$Q_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_JL_,1)}, - _a$R_=caml_call4(Runtime_ocaml_Runtime[63],_JM_,[0],_a$Q_,_a$P_); - return _a$R_} - catch(_a$S_) - {_a$S_ = caml_wrap_exception(_a$S_); - if(_a$S_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_JC_]; - throw _a$S_}} - var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_JN_,Runtime_ocaml_Runtime[10],_a$D_); - function _a$E_(aide_finale) - {try - {var - _a$I_= - function(param) - {var - _a$M_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JP_, - Runtime_ocaml_Runtime[13], - aide_finale), - _a$N_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _JQ_, - traitement_aide_finale_contrib), - _a$M_), - _a$O_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _JR_, - Runtime_ocaml_Runtime[13], - _a$N_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_JS_,_a$O_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_15) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$325) - :aide_finale$0}, - _a$J_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_JT_,1)}, - _a$K_=caml_call4(Runtime_ocaml_Runtime[63],_JU_,[0],_a$J_,_a$I_); - return _a$K_} - catch(_a$L_) - {_a$L_ = caml_wrap_exception(_a$L_); - if(_a$L_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_JO_]; - throw _a$L_}} - var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_JV_,Runtime_ocaml_Runtime[10],_a$E_); - try - {var - _a$F_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a$G_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a$F_)} - catch(_a$H_) - {_a$H_ = caml_wrap_exception(_a$H_); - if(_a$H_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_JW_]; - throw _a$H_} - if(_a$G_) - return [0, - coefficient_prise_en_charge, - equivalence_loyer, - montant_forfaitaire_charges, - loyer_minimal, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_JX_]} - function calcul_allocation_logement_acc(calcul_allocation_logement_acc) - {var - ressources_menage_arrondies_ba=calcul_allocation_logement_acc[1], - nombre_personnes_a_charge=calcul_allocation_logement_acc[2], - situation_familiale_calcul_apl=calcul_allocation_logement_acc[3], - zone=calcul_allocation_logement_acc[4], - residence=calcul_allocation_logement_acc[5], - date_courante=calcul_allocation_logement_acc[6], - mensualite_principale=calcul_allocation_logement_acc[7], - situation_r822_11_13_17=calcul_allocation_logement_acc[8], - date_signature_pret=calcul_allocation_logement_acc[9], - type_travaux_logement=calcul_allocation_logement_acc[10], - local_habite_premiere_fois_ben=calcul_allocation_logement_acc[11], - date_entree_logement=calcul_allocation_logement_acc[12], - charges_mensuelles_pret=calcul_allocation_logement_acc[13], - copropriete=calcul_allocation_logement_acc[14], - operations_logement_evolutifs_=calcul_allocation_logement_acc[15]; - try - {var - _aGV_= - function(param) - {var - _a92_=caml_call1(Runtime_ocaml_Runtime[39],cst_6_55957$0), - _a93_=caml_call1(Runtime_ocaml_Runtime[39],cst_1$208); - return caml_call2(Runtime_ocaml_Runtime[107],_a93_,_a92_)}, - _aGW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_JZ_,1)}, - _aGX_=caml_call4(Runtime_ocaml_Runtime[63],_J0_,[0],_aGW_,_aGV_)} - catch(_a91_) - {_a91_ = caml_wrap_exception(_a91_); - if(_a91_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_JY_]; - throw _a91_} - var - taux_francs_vers_euros= - caml_call3 - (Runtime_ocaml_Runtime[28],_J1_,Runtime_ocaml_Runtime[15],_aGX_); - try - {var - _aGY_=function(param){return nombre_personnes_a_charge}, - _aGZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_J3_,1)}, - _aG0_=caml_call4(Runtime_ocaml_Runtime[63],_J4_,[0],_aGZ_,_aGY_), - calcul_nombre_parts_dot_nombre= - caml_call3 - (Runtime_ocaml_Runtime[28],_J5_,Runtime_ocaml_Runtime[14],_aG0_)} - catch(_a90_) - {_a90_ = caml_wrap_exception(_a90_); - if(_a90_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_J2_]; - throw _a90_} - try - {var - _aG1_=function(param){return situation_familiale_calcul_apl}, - _aG2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_J7_,1)}, - _aG3_=caml_call4(Runtime_ocaml_Runtime[63],_J8_,[0],_aG2_,_aG1_), - calcul_nombre_parts_dot_situat= - caml_call3 - (Runtime_ocaml_Runtime[28], - _J9_, - embed_situation_familiale_calc, - _aG3_)} - catch(_a9Z_) - {_a9Z_ = caml_wrap_exception(_a9Z_); - if(_a9Z_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_J6_]; - throw _a9Z_} - var - _aG4_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_J__,calcul_nombre_parts_accession_), - [0,calcul_nombre_parts_dot_nombre,calcul_nombre_parts_dot_situat]), - result=caml_call2(Runtime_ocaml_Runtime[27],_J$_,_aG4_), - calcul_nombre_parts_dot_n_nomb=result[1]; - try - {var - _aG5_=function(param){return date_courante}, - _aG6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Kb_,1)}, - _aG7_=caml_call4(Runtime_ocaml_Runtime[63],_Kc_,[0],_aG6_,_aG5_), - contributions_sociales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Kd_,Runtime_ocaml_Runtime[16],_aG7_)} - catch(_a9Y_) - {_a9Y_ = caml_wrap_exception(_a9Y_); - if(_a9Y_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ka_]; - throw _a9Y_} - var - _aG8_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Ke_,contributions_sociales_aides_p), - [0,contributions_sociales_dot_dat]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_Kf_,_aG8_), - contributions_sociales_dot_mon=result$0[1]; - try - {var - _aG9_= - function(param) - {function _a9J_(param){throw Runtime_ocaml_Runtime[2]} - function _a9K_(param){return 0} - var - _a9L_= - [0, - function(param) - {function _a9M_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _a9N_(param) - {var - _a9W_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a9X_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9W_); - return caml_call2(Runtime_ocaml_Runtime[29],_Kh_,_a9X_)} - var - _a9O_= - [0, - function(param) - {function _a9P_(param) - {return caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge)} - function _a9Q_(param) - {var - _a9R_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a9S_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9R_), - _a9T_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a9U_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9T_), - _a9V_=caml_call2(Runtime_ocaml_Runtime[83],_a9U_,_a9S_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ki_,_a9V_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kj_,[0],_a9Q_,_a9P_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kk_,_a9O_,_a9N_,_a9M_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kl_,_a9L_,_a9K_,_a9J_)}, - _aG__=function(param){return 1}, - _aG$_= - [0, - function(param) - {function _a8G_(param){throw Runtime_ocaml_Runtime[2]} - function _a8H_(param){return 0} - var - _a8I_= - [0, - function(param) - {function _a8J_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$62)} - function _a8K_(param) - {var - _a9z_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$63), - _a9A_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9z_); - switch(residence[0]) - {case 0:var _a9B_=1;break; - case 1:var _a9B_=0;break; - case 2:var _a9B_=1;break; - case 3:var _a9B_=1;break; - case 4:var _a9B_=1;break; - case 5:var _a9B_=1;break; - case 6:var _a9B_=0;break; - case 7:var _a9B_=0;break; - default:var _a9B_=1} - var - _a9C_=caml_call2(Runtime_ocaml_Runtime[83],_a9B_,_a9A_), - _a9D_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _a9E_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9D_), - _a9F_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a9G_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9F_), - _a9H_=caml_call2(Runtime_ocaml_Runtime[83],_a9G_,_a9E_), - _a9I_=caml_call2(Runtime_ocaml_Runtime[83],_a9H_,_a9C_); - return caml_call2(Runtime_ocaml_Runtime[29],_Km_,_a9I_)} - var - _a8L_= - [0, - function(param) - {function _a8M_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$64)} - function _a8N_(param) - {var - _a9p_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$65), - _a9q_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9p_); - switch(residence[0]) - {case 0:var _a9r_=1;break; - case 1:var _a9r_=0;break; - case 2:var _a9r_=1;break; - case 3:var _a9r_=1;break; - case 4:var _a9r_=1;break; - case 5:var _a9r_=1;break; - case 6:var _a9r_=0;break; - case 7:var _a9r_=0;break; - default:var _a9r_=1} - var - _a9s_=caml_call2(Runtime_ocaml_Runtime[83],_a9r_,_a9q_), - _a9t_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _a9u_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9t_), - _a9v_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _a9w_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9v_), - _a9x_=caml_call2(Runtime_ocaml_Runtime[83],_a9w_,_a9u_), - _a9y_=caml_call2(Runtime_ocaml_Runtime[83],_a9x_,_a9s_); - return caml_call2(Runtime_ocaml_Runtime[29],_Kn_,_a9y_)} - var - _a8O_= - [0, - function(param) - {function _a8P_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$66)} - function _a8Q_(param) - {var - _a9f_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$67), - _a9g_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a9f_); - switch(residence[0]) - {case 0:var _a9h_=1;break; - case 1:var _a9h_=0;break; - case 2:var _a9h_=1;break; - case 3:var _a9h_=1;break; - case 4:var _a9h_=1;break; - case 5:var _a9h_=1;break; - case 6:var _a9h_=0;break; - case 7:var _a9h_=0;break; - default:var _a9h_=1} - var - _a9i_=caml_call2(Runtime_ocaml_Runtime[83],_a9h_,_a9g_), - _a9j_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _a9k_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a9j_), - _a9l_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a9m_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9l_), - _a9n_=caml_call2(Runtime_ocaml_Runtime[83],_a9m_,_a9k_), - _a9o_=caml_call2(Runtime_ocaml_Runtime[83],_a9n_,_a9i_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ko_,_a9o_)} - var - _a8R_= - [0, - function(param) - {function _a8S_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$68)} - function _a8T_(param) - {var - _a87_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$69), - _a88_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a87_); - switch(residence[0]) - {case 0:var _a89_=1;break; - case 1:var _a89_=0;break; - case 2:var _a89_=1;break; - case 3:var _a89_=1;break; - case 4:var _a89_=1;break; - case 5:var _a89_=1;break; - case 6:var _a89_=0;break; - case 7:var _a89_=0;break; - default:var _a89_=1} - var - _a8__=caml_call2(Runtime_ocaml_Runtime[83],_a89_,_a88_), - _a8$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _a9a_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a8$_), - _a9b_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a9c_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a9b_), - _a9d_=caml_call2(Runtime_ocaml_Runtime[83],_a9c_,_a9a_), - _a9e_=caml_call2(Runtime_ocaml_Runtime[83],_a9d_,_a8__); - return caml_call2(Runtime_ocaml_Runtime[29],_Kp_,_a9e_)} - var - _a8U_= - [0, - function(param) - {function _a8V_(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_6$70)} - function _a8W_(param) - {var - _a8X_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$71), - _a8Y_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_a8X_); - switch(residence[0]) - {case 0:var _a8Z_=1;break; - case 1:var _a8Z_=0;break; - case 2:var _a8Z_=1;break; - case 3:var _a8Z_=1;break; - case 4:var _a8Z_=1;break; - case 5:var _a8Z_=1;break; - case 6:var _a8Z_=0;break; - case 7:var _a8Z_=0;break; - default:var _a8Z_=1} - var - _a80_=caml_call2(Runtime_ocaml_Runtime[83],_a8Z_,_a8Y_), - _a81_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _a82_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_a81_), - _a83_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a84_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a83_), - _a85_=caml_call2(Runtime_ocaml_Runtime[83],_a84_,_a82_), - _a86_=caml_call2(Runtime_ocaml_Runtime[83],_a85_,_a80_); - return caml_call2(Runtime_ocaml_Runtime[29],_Kq_,_a86_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kr_,[0],_a8W_,_a8V_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ks_,_a8U_,_a8T_,_a8S_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kt_,_a8R_,_a8Q_,_a8P_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ku_,_a8O_,_a8N_,_a8M_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kv_,_a8L_,_a8K_,_a8J_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Kw_,_a8I_,_a8H_,_a8G_)}], - _aHa_=caml_call4(Runtime_ocaml_Runtime[63],_Kx_,_aG$_,_aG__,_aG9_)} - catch(_a8F_) - {_a8F_ = caml_wrap_exception(_a8F_); - if(_a8F_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Kg_]; - throw _a8F_} - var - multiplicateur_majoration_char= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ky_,Runtime_ocaml_Runtime[15],_aHa_); - try - {var - _aHb_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_16_25$0)}, - _aHc_= - function(param) - {var - _a8D_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8E_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8D_); - return caml_call2(Runtime_ocaml_Runtime[29],_KA_,_a8E_)}, - _aHd_=caml_call4(Runtime_ocaml_Runtime[63],_KB_,[0],_aHc_,_aHb_)} - catch(_a8C_) - {_a8C_ = caml_wrap_exception(_a8C_); - if(_a8C_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Kz_]; - throw _a8C_} - var - coefficient_d842_12= - caml_call3 - (Runtime_ocaml_Runtime[28],_KC_,Runtime_ocaml_Runtime[15],_aHd_); - try - {var - _aHe_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_0234$1)}, - _aHf_= - function(param) - {var - _a8A_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8B_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8A_); - return caml_call2(Runtime_ocaml_Runtime[29],_KE_,_a8B_)}, - _aHg_=caml_call4(Runtime_ocaml_Runtime[63],_KF_,[0],_aHf_,_aHe_)} - catch(_a8z_) - {_a8z_ = caml_wrap_exception(_a8z_); - if(_a8z_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KD_]; - throw _a8z_} - var - coefficient_d842_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_KG_,Runtime_ocaml_Runtime[15],_aHg_); - try - {var - _aHh_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_390000)}, - _aHi_= - function(param) - {var - _a8x_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8y_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8x_); - return caml_call2(Runtime_ocaml_Runtime[29],_KI_,_a8y_)}, - _aHj_=caml_call4(Runtime_ocaml_Runtime[63],_KJ_,[0],_aHi_,_aHh_)} - catch(_a8w_) - {_a8w_ = caml_wrap_exception(_a8w_); - if(_a8w_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KH_]; - throw _a8w_} - var - montant_forfaitaire_d842_12= - caml_call3 - (Runtime_ocaml_Runtime[28],_KK_,Runtime_ocaml_Runtime[13],_aHj_); - try - {var - _aHk_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1500$1)}, - _aHl_= - function(param) - {var - _a8u_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8v_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8u_); - return caml_call2(Runtime_ocaml_Runtime[29],_KM_,_a8v_)}, - _aHm_=caml_call4(Runtime_ocaml_Runtime[63],_KN_,[0],_aHl_,_aHk_)} - catch(_a8t_) - {_a8t_ = caml_wrap_exception(_a8t_); - if(_a8t_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KL_]; - throw _a8t_} - var - montant_forfaitaire_d842_11= - caml_call3 - (Runtime_ocaml_Runtime[28],_KO_,Runtime_ocaml_Runtime[13],_aHm_); - try - {var - _aHn_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1000$4)}, - _aHo_= - function(param) - {var - _a8r_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8s_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8r_); - return caml_call2(Runtime_ocaml_Runtime[29],_KQ_,_a8s_)}, - _aHp_=caml_call4(Runtime_ocaml_Runtime[63],_KR_,[0],_aHo_,_aHn_)} - catch(_a8q_) - {_a8q_ = caml_wrap_exception(_a8q_); - if(_a8q_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KP_]; - throw _a8q_} - var - montant_minimal_aide_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_KS_,Runtime_ocaml_Runtime[13],_aHp_); - try - {var - _aHq_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_500$3)}, - _aHr_= - function(param) - {var - _a8o_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a8p_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a8o_); - return caml_call2(Runtime_ocaml_Runtime[29],_KU_,_a8p_)}, - _aHs_=caml_call4(Runtime_ocaml_Runtime[63],_KV_,[0],_aHr_,_aHq_)} - catch(_a8n_) - {_a8n_ = caml_wrap_exception(_a8n_); - if(_a8n_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KT_]; - throw _a8n_} - var - montant_forfaitaire_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_KW_,Runtime_ocaml_Runtime[13],_aHs_); - try - {var - _aHt_=function(param){return 0}, - _aHu_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_KY_,1)}, - _aHv_= - [0, - function(param) - {function _a72_(param){return 1} - function _a73_(param) - {var - _a8f_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _a8g_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_a8f_); - switch(type_travaux_logement[0]) - {case 0:var _a8h_=0;break; - case 1:var _a8h_=0;break; - case 2:var _a8h_=1;break; - default:var _a8h_=0} - switch(type_travaux_logement[0]) - {case 0:var _a8i_=1;break; - case 1:var _a8i_=0;break; - case 2:var _a8i_=0;break; - default:var _a8i_=0} - var _a8j_=caml_call2(Runtime_ocaml_Runtime[84],_a8i_,_a8h_); - switch(type_travaux_logement[0]) - {case 0:var _a8k_=0;break; - case 1:var _a8k_=0;break; - case 2:var _a8k_=0;break; - default:var _a8k_=1} - var - _a8l_=caml_call2(Runtime_ocaml_Runtime[84],_a8k_,_a8j_), - _a8m_=caml_call2(Runtime_ocaml_Runtime[83],_a8l_,_a8g_); - return caml_call2(Runtime_ocaml_Runtime[29],_KZ_,_a8m_)} - var - _a74_= - [0, - function(param) - {function _a75_(param){throw Runtime_ocaml_Runtime[2]} - function _a76_(param){return 0} - var - _a77_= - [0, - function(param) - {function _a78_(param){return 0} - function _a79_(param) - {switch(residence[0]) - {case 0:var _a8d_=1;break; - case 1:var _a8d_=1;break; - case 2:var _a8d_=1;break; - case 3:var _a8d_=1;break; - case 4:var _a8d_=0;break; - case 5:var _a8d_=0;break; - case 6:var _a8d_=0;break; - case 7:var _a8d_=0;break; - default:var _a8d_=1} - var - _a8e_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _a8d_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29],_K0_,_a8e_)} - var - _a7__= - [0, - function(param) - {function _a7$_(param){return 0} - function _a8a_(param) - {switch(residence[0]) - {case 0:var _a8b_=0;break; - case 1:var _a8b_=0;break; - case 2:var _a8b_=0;break; - case 3:var _a8b_=0;break; - case 4:var _a8b_=1;break; - case 5:var _a8b_=1;break; - case 6:var _a8b_=0;break; - case 7:var _a8b_=0;break; - default:var _a8b_=0} - var - _a8c_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _a8b_, - operations_logement_evolutifs_); - return caml_call2(Runtime_ocaml_Runtime[29],_K1_,_a8c_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_K2_,[0],_a8a_,_a7$_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_K3_,_a7__,_a79_,_a78_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_K4_,_a77_,_a76_,_a75_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_K5_,_a74_,_a73_,_a72_)}], - _aHw_=caml_call4(Runtime_ocaml_Runtime[63],_K6_,_aHv_,_aHu_,_aHt_)} - catch(_a71_) - {_a71_ = caml_wrap_exception(_a71_); - if(_a71_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_KX_]; - throw _a71_} - var - condition_d842_11_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_K7_,Runtime_ocaml_Runtime[12],_aHw_); - function _aHx_(date_calcul,nombre_personnes_a_charge) - {try - {var - _aRJ_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aRK_=function(param){return 0}, - _aRL_= - function(param) - {function _a7k_(param) - {switch(zone[0]) - {case 0: - var _a7r_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$326); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7r_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31476) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37933); - var _a7s_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$209); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7s_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40787); - var _a7t_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7t_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41927); - var _a7u_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7u_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43106); - var _a7v_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7v_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44262); - var _a7w_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$26); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7w_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_45200); - var - _a7x_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$27), - _a7y_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7x_), - _a7z_=caml_call1(Runtime_ocaml_Runtime[69],_a7y_), - _a7A_=caml_call1(Runtime_ocaml_Runtime[31],cst_3936), - _a7B_=caml_call2(Runtime_ocaml_Runtime[104],_a7A_,_a7z_), - _a7C_=caml_call1(Runtime_ocaml_Runtime[31],cst_45200$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a7C_,_a7B_); - case 1: - var _a7D_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$327); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7D_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27614) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33853); - var _a7E_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$210); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7E_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36646); - var _a7F_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7F_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37915); - var _a7G_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7G_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39222); - var _a7H_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$33); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7H_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40510); - var _a7I_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$28); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7I_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43378); - var - _a7J_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$29), - _a7K_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7J_), - _a7L_=caml_call1(Runtime_ocaml_Runtime[69],_a7K_), - _a7M_=caml_call1(Runtime_ocaml_Runtime[31],cst_3771), - _a7N_=caml_call2(Runtime_ocaml_Runtime[104],_a7M_,_a7L_), - _a7O_=caml_call1(Runtime_ocaml_Runtime[31],cst_43378$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a7O_,_a7N_); - default: - var _a7P_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$328); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7P_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25904) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31419); - var _a7Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$211); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7Q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34255); - var _a7R_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7R_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35670); - var _a7S_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7S_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37107); - var _a7T_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7T_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38521); - var _a7U_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$30); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7U_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41392); - var - _a7V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$31), - _a7W_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7V_), - _a7X_=caml_call1(Runtime_ocaml_Runtime[69],_a7W_), - _a7Y_=caml_call1(Runtime_ocaml_Runtime[31],cst_3588), - _a7Z_=caml_call2(Runtime_ocaml_Runtime[104],_a7Y_,_a7X_), - _a70_=caml_call1(Runtime_ocaml_Runtime[31],cst_41392$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a70_,_a7Z_)}} - function _a7l_(param) - {var - _a7m_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a7n_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a7m_), - _a7o_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a7p_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a7o_), - _a7q_=caml_call2(Runtime_ocaml_Runtime[83],_a7p_,_a7n_); - return caml_call2(Runtime_ocaml_Runtime[29],_K9_,_a7q_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_K__,[0],_a7l_,_a7k_)}, - _aRM_= - function(param) - {function _a6C_(param) - {switch(zone[0]) - {case 0: - var _a6M_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$329); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6M_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31382) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37820); - var _a6N_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$212); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6N_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40665); - var _a6O_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6O_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41801); - var _a6P_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6P_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42977); - var _a6Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$35); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44130); - var _a6R_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$32); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6R_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_45064); - var - _a6S_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$33), - _a6T_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6S_), - _a6U_=caml_call1(Runtime_ocaml_Runtime[69],_a6T_), - _a6V_=caml_call1(Runtime_ocaml_Runtime[31],cst_3924), - _a6W_=caml_call2(Runtime_ocaml_Runtime[104],_a6V_,_a6U_), - _a6X_=caml_call1(Runtime_ocaml_Runtime[31],cst_45064$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a6X_,_a6W_); - case 1: - var _a6Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$330); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Y_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27531) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33751); - var _a6Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$213); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6Z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36536); - var _a60_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a60_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37801); - var _a61_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a61_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39105); - var _a62_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a62_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40389); - var _a63_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$34); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a63_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43248); - var - _a64_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$35), - _a65_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a64_), - _a66_=caml_call1(Runtime_ocaml_Runtime[69],_a65_), - _a67_=caml_call1(Runtime_ocaml_Runtime[31],cst_3760), - _a68_=caml_call2(Runtime_ocaml_Runtime[104],_a67_,_a66_), - _a69_=caml_call1(Runtime_ocaml_Runtime[31],cst_43248$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a69_,_a68_); - default: - var _a6__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$331); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25826) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31325); - var _a6$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$214); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34152); - var _a7a_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7a_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35564); - var _a7b_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36996); - var _a7c_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$37); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7c_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38406); - var _a7d_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$36); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a7d_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41268); - var - _a7e_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$37), - _a7f_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a7e_), - _a7g_=caml_call1(Runtime_ocaml_Runtime[69],_a7f_), - _a7h_=caml_call1(Runtime_ocaml_Runtime[31],cst_3578), - _a7i_=caml_call2(Runtime_ocaml_Runtime[104],_a7h_,_a7g_), - _a7j_=caml_call1(Runtime_ocaml_Runtime[31],cst_41268$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a7j_,_a7i_)}} - function _a6D_(param) - {var - _a6E_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _a6F_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a6E_), - _a6G_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), - _a6H_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a6G_), - _a6I_=caml_call2(Runtime_ocaml_Runtime[83],_a6H_,_a6F_), - _a6J_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a6K_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a6J_), - _a6L_=caml_call2(Runtime_ocaml_Runtime[83],_a6K_,_a6I_); - return caml_call2(Runtime_ocaml_Runtime[29],_K$_,_a6L_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_La_,[0],_a6D_,_a6C_)}, - _aRN_= - function(param) - {function _a5U_(param) - {switch(zone[0]) - {case 0: - var _a54_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$332); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a54_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31148) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37538); - var _a55_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$215); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a55_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40362); - var _a56_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a56_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41490); - var _a57_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a57_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42657); - var _a58_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a58_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43801); - var _a59_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$38); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a59_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44729); - var - _a5__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$39), - _a5$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5__), - _a6a_=caml_call1(Runtime_ocaml_Runtime[69],_a5$_), - _a6b_=caml_call1(Runtime_ocaml_Runtime[31],cst_3895), - _a6c_=caml_call2(Runtime_ocaml_Runtime[104],_a6b_,_a6a_), - _a6d_=caml_call1(Runtime_ocaml_Runtime[31],cst_44729$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a6d_,_a6c_); - case 1: - var _a6e_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$333); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6e_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27326) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33500$0); - var _a6f_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$216); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6f_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36264); - var _a6g_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6g_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37520); - var _a6h_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6h_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38814); - var _a6i_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$39); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6i_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40088); - var _a6j_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6j_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42926); - var - _a6k_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$41), - _a6l_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6k_), - _a6m_=caml_call1(Runtime_ocaml_Runtime[69],_a6l_), - _a6n_=caml_call1(Runtime_ocaml_Runtime[31],cst_3732), - _a6o_=caml_call2(Runtime_ocaml_Runtime[104],_a6n_,_a6m_), - _a6p_=caml_call1(Runtime_ocaml_Runtime[31],cst_42926$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a6p_,_a6o_); - default: - var _a6q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$334); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6q_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25634) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31092); - var _a6r_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$217); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6r_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33898); - var _a6s_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6s_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35299); - var _a6t_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6t_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36721); - var _a6u_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$40); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6u_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38120); - var _a6v_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a6v_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40961); - var - _a6w_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$43), - _a6x_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a6w_), - _a6y_=caml_call1(Runtime_ocaml_Runtime[69],_a6x_), - _a6z_=caml_call1(Runtime_ocaml_Runtime[31],cst_3551), - _a6A_=caml_call2(Runtime_ocaml_Runtime[104],_a6z_,_a6y_), - _a6B_=caml_call1(Runtime_ocaml_Runtime[31],cst_40961$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a6B_,_a6A_)}} - function _a5V_(param) - {var - _a5W_=caml_call3(Runtime_ocaml_Runtime[57],2017,10,1), - _a5X_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a5W_), - _a5Y_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), - _a5Z_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a5Y_), - _a50_=caml_call2(Runtime_ocaml_Runtime[83],_a5Z_,_a5X_), - _a51_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a52_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a51_), - _a53_=caml_call2(Runtime_ocaml_Runtime[83],_a52_,_a50_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lb_,_a53_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lc_,[0],_a5V_,_a5U_)}, - _aRO_= - function(param) - {function _a5a_(param) - {switch(zone[0]) - {case 0: - var _a5k_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$335); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5k_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_31123) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37508); - var _a5l_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$218); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5l_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40330); - var _a5m_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5m_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41457); - var _a5n_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5n_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42623); - var _a5o_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$41); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5o_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43766); - var _a5p_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5p_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44693); - var - _a5q_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$45), - _a5r_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5q_), - _a5s_=caml_call1(Runtime_ocaml_Runtime[69],_a5r_), - _a5t_=caml_call1(Runtime_ocaml_Runtime[31],cst_3892), - _a5u_=caml_call2(Runtime_ocaml_Runtime[104],_a5t_,_a5s_), - _a5v_=caml_call1(Runtime_ocaml_Runtime[31],cst_44693$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a5v_,_a5u_); - case 1: - var _a5w_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$336); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5w_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27304) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33473); - var _a5x_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$219); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5x_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36235); - var _a5y_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5y_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37490); - var _a5z_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38783); - var _a5A_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$42); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5A_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40056); - var _a5B_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5B_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42892); - var - _a5C_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$47), - _a5D_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5C_), - _a5E_=caml_call1(Runtime_ocaml_Runtime[69],_a5D_), - _a5F_=caml_call1(Runtime_ocaml_Runtime[31],cst_3729), - _a5G_=caml_call2(Runtime_ocaml_Runtime[104],_a5F_,_a5E_), - _a5H_=caml_call1(Runtime_ocaml_Runtime[31],cst_42892$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a5H_,_a5G_); - default: - var _a5I_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$337); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5I_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25614) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31067); - var _a5J_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$220); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5J_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33871); - var _a5K_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5K_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35271); - var _a5L_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5L_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36692); - var _a5M_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$43); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5M_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38090); - var _a5N_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a5N_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40928); - var - _a5O_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$49), - _a5P_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a5O_), - _a5Q_=caml_call1(Runtime_ocaml_Runtime[69],_a5P_), - _a5R_=caml_call1(Runtime_ocaml_Runtime[31],cst_3548), - _a5S_=caml_call2(Runtime_ocaml_Runtime[104],_a5R_,_a5Q_), - _a5T_=caml_call1(Runtime_ocaml_Runtime[31],cst_40928$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a5T_,_a5S_)}} - function _a5b_(param) - {var - _a5c_=caml_call3(Runtime_ocaml_Runtime[57],2015,10,1), - _a5d_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a5c_), - _a5e_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), - _a5f_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a5e_), - _a5g_=caml_call2(Runtime_ocaml_Runtime[83],_a5f_,_a5d_), - _a5h_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a5i_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a5h_), - _a5j_=caml_call2(Runtime_ocaml_Runtime[83],_a5i_,_a5g_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ld_,_a5j_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Le_,[0],_a5b_,_a5a_)}, - _aRP_= - function(param) - {function _a4s_(param) - {switch(zone[0]) - {case 0: - var _a4C_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$338); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4C_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30947) - :caml_call1(Runtime_ocaml_Runtime[31],cst_37295); - var _a4D_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$221); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4D_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40101); - var _a4E_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4E_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41222); - var _a4F_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4F_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42381); - var _a4G_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$44); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4G_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43518); - var _a4H_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4H_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_44440); - var - _a4I_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$51), - _a4J_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4I_), - _a4K_=caml_call1(Runtime_ocaml_Runtime[69],_a4J_), - _a4L_=caml_call1(Runtime_ocaml_Runtime[31],cst_3870), - _a4M_=caml_call2(Runtime_ocaml_Runtime[104],_a4L_,_a4K_), - _a4N_=caml_call1(Runtime_ocaml_Runtime[31],cst_44440$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a4N_,_a4M_); - case 1: - var _a4O_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$339); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4O_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27149) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33283); - var _a4P_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$222); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4P_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36030); - var _a4Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4Q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37278); - var _a4R_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4R_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38563); - var _a4S_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$45); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4S_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39829); - var _a4T_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4T_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42649); - var - _a4U_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$53), - _a4V_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4U_), - _a4W_=caml_call1(Runtime_ocaml_Runtime[69],_a4V_), - _a4X_=caml_call1(Runtime_ocaml_Runtime[31],cst_3708), - _a4Y_=caml_call2(Runtime_ocaml_Runtime[104],_a4X_,_a4W_), - _a4Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_42659); - return caml_call2(Runtime_ocaml_Runtime[93],_a4Z_,_a4Y_); - default: - var _a40_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$340); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a40_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25469) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30891); - var _a41_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$223); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a41_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33679); - var _a42_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a42_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35071); - var _a43_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a43_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36484); - var _a44_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$46); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a44_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37874); - var _a45_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a45_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40696); - var - _a46_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$55), - _a47_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a46_), - _a48_=caml_call1(Runtime_ocaml_Runtime[69],_a47_), - _a49_=caml_call1(Runtime_ocaml_Runtime[31],cst_3528), - _a4__=caml_call2(Runtime_ocaml_Runtime[104],_a49_,_a48_), - _a4$_=caml_call1(Runtime_ocaml_Runtime[31],cst_40696$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a4$_,_a4__)}} - function _a4t_(param) - {var - _a4u_=caml_call3(Runtime_ocaml_Runtime[57],2014,10,1), - _a4v_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a4u_), - _a4w_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _a4x_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a4w_), - _a4y_=caml_call2(Runtime_ocaml_Runtime[83],_a4x_,_a4v_), - _a4z_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a4A_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a4z_), - _a4B_=caml_call2(Runtime_ocaml_Runtime[83],_a4A_,_a4y_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lf_,_a4B_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lg_,[0],_a4t_,_a4s_)}, - _aRQ_= - function(param) - {function _a3K_(param) - {switch(zone[0]) - {case 0: - var _a3U_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$341); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3U_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_30296) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36510); - var _a3V_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$224); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3V_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39257); - var _a3W_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3W_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40354); - var _a3X_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3X_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41489); - var _a3Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$47); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3Y_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42602); - var _a3Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3Z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43505); - var - _a30_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$57), - _a31_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a30_), - _a32_=caml_call1(Runtime_ocaml_Runtime[69],_a31_), - _a33_=caml_call1(Runtime_ocaml_Runtime[31],cst_3789), - _a34_=caml_call2(Runtime_ocaml_Runtime[104],_a33_,_a32_), - _a35_=caml_call1(Runtime_ocaml_Runtime[31],cst_43505$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a35_,_a34_); - case 1: - var _a36_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$342); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a36_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26578) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32582); - var _a37_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$225); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a37_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35272); - var _a38_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a38_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36493); - var _a39_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a39_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37751); - var _a3__=caml_call1(Runtime_ocaml_Runtime[46],cst_4$48); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38991); - var _a3$_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41751); - var - _a4a_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$59), - _a4b_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4a_), - _a4c_=caml_call1(Runtime_ocaml_Runtime[69],_a4b_), - _a4d_=caml_call1(Runtime_ocaml_Runtime[31],cst_3630), - _a4e_=caml_call2(Runtime_ocaml_Runtime[104],_a4d_,_a4c_), - _a4f_=caml_call1(Runtime_ocaml_Runtime[31],cst_41751$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a4f_,_a4e_); - default: - var _a4g_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$343); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4g_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24933) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30241); - var _a4h_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$226); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4h_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32970); - var _a4i_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4i_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34333); - var _a4j_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4j_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35716); - var _a4k_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$49); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4k_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37077); - var _a4l_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a4l_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39839); - var - _a4m_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$61), - _a4n_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a4m_), - _a4o_=caml_call1(Runtime_ocaml_Runtime[69],_a4n_), - _a4p_=caml_call1(Runtime_ocaml_Runtime[31],cst_3454), - _a4q_=caml_call2(Runtime_ocaml_Runtime[104],_a4p_,_a4o_), - _a4r_=caml_call1(Runtime_ocaml_Runtime[31],cst_39839$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a4r_,_a4q_)}} - function _a3L_(param) - {var - _a3M_=caml_call3(Runtime_ocaml_Runtime[57],2013,1,1), - _a3N_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a3M_), - _a3O_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _a3P_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a3O_), - _a3Q_=caml_call2(Runtime_ocaml_Runtime[83],_a3P_,_a3N_), - _a3R_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a3S_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a3R_), - _a3T_=caml_call2(Runtime_ocaml_Runtime[83],_a3S_,_a3Q_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lh_,_a3T_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Li_,[0],_a3L_,_a3K_)}, - _aRR_= - function(param) - {function _a22_(param) - {switch(zone[0]) - {case 0: - var _a3a_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$344); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3a_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29996) - :caml_call1(Runtime_ocaml_Runtime[31],cst_36149); - var _a3b_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$227); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38868); - var _a3c_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3c_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39954); - var _a3d_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3d_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41078); - var _a3e_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$50); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3e_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42180); - var _a3f_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3f_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_43074); - var - _a3g_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$63), - _a3h_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3g_), - _a3i_=caml_call1(Runtime_ocaml_Runtime[69],_a3h_), - _a3j_=caml_call1(Runtime_ocaml_Runtime[31],cst_3751), - _a3k_=caml_call2(Runtime_ocaml_Runtime[104],_a3j_,_a3i_), - _a3l_=caml_call1(Runtime_ocaml_Runtime[31],cst_43074$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a3l_,_a3k_); - case 1: - var _a3m_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$345); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3m_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26315) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32259); - var _a3n_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$228); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3n_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34923); - var _a3o_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3o_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36132); - var _a3p_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3p_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37373); - var _a3q_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$51); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38605); - var _a3r_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3r_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41338); - var - _a3s_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$65), - _a3t_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3s_), - _a3u_=caml_call1(Runtime_ocaml_Runtime[69],_a3t_), - _a3v_=caml_call1(Runtime_ocaml_Runtime[31],cst_3594), - _a3w_=caml_call2(Runtime_ocaml_Runtime[104],_a3v_,_a3u_), - _a3x_=caml_call1(Runtime_ocaml_Runtime[31],cst_41338$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a3x_,_a3w_); - default: - var _a3y_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$346); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3y_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24686) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29942); - var _a3z_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$229); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32644); - var _a3A_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3A_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33993); - var _a3B_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3B_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35362); - var _a3C_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$52); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3C_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36710); - var _a3D_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a3D_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39445); - var - _a3E_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$67), - _a3F_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a3E_), - _a3G_=caml_call1(Runtime_ocaml_Runtime[69],_a3F_), - _a3H_=caml_call1(Runtime_ocaml_Runtime[31],cst_3420), - _a3I_=caml_call2(Runtime_ocaml_Runtime[104],_a3H_,_a3G_), - _a3J_=caml_call1(Runtime_ocaml_Runtime[31],cst_39445$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a3J_,_a3I_)}} - function _a23_(param) - {var - _a24_=caml_call3(Runtime_ocaml_Runtime[57],2012,1,1), - _a25_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a24_), - _a26_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _a27_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a26_), - _a28_=caml_call2(Runtime_ocaml_Runtime[83],_a27_,_a25_), - _a29_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a2__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a29_), - _a2$_=caml_call2(Runtime_ocaml_Runtime[83],_a2__,_a28_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lj_,_a2$_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lk_,[0],_a23_,_a22_)}, - _aRS_= - function(param) - {function _a2i_(param) - {switch(zone[0]) - {case 0: - var _a2s_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$347); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2s_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29670) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35757); - var _a2t_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$230); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2t_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38445); - var _a2u_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2u_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39519); - var _a2v_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2v_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40601); - var _a2w_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$53); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2w_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41721); - var _a2x_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2x_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42605); - var - _a2y_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$69), - _a2z_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2y_), - _a2A_=caml_call1(Runtime_ocaml_Runtime[69],_a2z_), - _a2B_=caml_call1(Runtime_ocaml_Runtime[31],cst_3710), - _a2C_=caml_call2(Runtime_ocaml_Runtime[104],_a2B_,_a2A_), - _a2D_=caml_call1(Runtime_ocaml_Runtime[31],cst_42605$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a2D_,_a2C_); - case 1: - var _a2E_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$348); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2E_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26029) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31908); - var _a2F_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$231); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2F_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34643); - var _a2G_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2G_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35739); - var _a2H_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2H_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36970); - var _a2I_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$54); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2I_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38185); - var _a2J_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2J_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40888); - var - _a2K_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$71), - _a2L_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2K_), - _a2M_=caml_call1(Runtime_ocaml_Runtime[69],_a2L_), - _a2N_=caml_call1(Runtime_ocaml_Runtime[31],cst_3555), - _a2O_=caml_call2(Runtime_ocaml_Runtime[104],_a2N_,_a2M_), - _a2P_=caml_call1(Runtime_ocaml_Runtime[31],cst_40888$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a2P_,_a2O_); - default: - var _a2Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$349); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2Q_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24417) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29616); - var _a2R_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$232); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2R_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32289); - var _a2S_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2S_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33623$0); - var _a2T_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2T_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34977); - var _a2U_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$55); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2U_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36311); - var _a2V_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2V_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39016); - var - _a2W_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$73), - _a2X_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2W_), - _a2Y_=caml_call1(Runtime_ocaml_Runtime[69],_a2X_), - _a2Z_=caml_call1(Runtime_ocaml_Runtime[31],cst_3383), - _a20_=caml_call2(Runtime_ocaml_Runtime[104],_a2Z_,_a2Y_), - _a21_=caml_call1(Runtime_ocaml_Runtime[31],cst_39016$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a21_,_a20_)}} - function _a2j_(param) - {var - _a2k_=caml_call3(Runtime_ocaml_Runtime[57],2011,1,1), - _a2l_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a2k_), - _a2m_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), - _a2n_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a2m_), - _a2o_=caml_call2(Runtime_ocaml_Runtime[83],_a2n_,_a2l_), - _a2p_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a2q_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a2p_), - _a2r_=caml_call2(Runtime_ocaml_Runtime[83],_a2q_,_a2o_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ll_,_a2r_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lm_,[0],_a2j_,_a2i_)}, - _aRT_= - function(param) - {function _a1A_(param) - {switch(zone[0]) - {case 0: - var _a1K_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$350); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1K_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_29575) - :caml_call1(Runtime_ocaml_Runtime[31],cst_35642); - var _a1L_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$233); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1L_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38322); - var _a1M_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1M_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39393); - var _a1N_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1N_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40501); - var _a1O_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$56); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1O_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41588); - var _a1P_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1P_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_42469); - var - _a1Q_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$75), - _a1R_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1Q_), - _a1S_=caml_call1(Runtime_ocaml_Runtime[69],_a1R_), - _a1T_=caml_call1(Runtime_ocaml_Runtime[31],cst_3698), - _a1U_=caml_call2(Runtime_ocaml_Runtime[104],_a1T_,_a1S_), - _a1V_=caml_call1(Runtime_ocaml_Runtime[31],cst_42469$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a1V_,_a1U_); - case 1: - var _a1W_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$351); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1W_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25946) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31806); - var _a1X_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$234); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1X_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34433); - var _a1Y_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1Y_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35625); - var _a1Z_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1Z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36852); - var _a10_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$57); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a10_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38063); - var _a11_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a11_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40758); - var - _a12_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$77), - _a13_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a12_), - _a14_=caml_call1(Runtime_ocaml_Runtime[69],_a13_), - _a15_=caml_call1(Runtime_ocaml_Runtime[31],cst_3544), - _a16_=caml_call2(Runtime_ocaml_Runtime[104],_a15_,_a14_), - _a17_=caml_call1(Runtime_ocaml_Runtime[31],cst_40758$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a17_,_a16_); - default: - var _a18_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$352); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a18_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24339) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29522); - var _a19_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$235); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a19_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32186); - var _a1__=caml_call1(Runtime_ocaml_Runtime[46],cst_2$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1__)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33516); - var _a1$_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34865); - var _a2a_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$58); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2a_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36195); - var _a2b_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a2b_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38892); - var - _a2c_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$79), - _a2d_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a2c_), - _a2e_=caml_call1(Runtime_ocaml_Runtime[69],_a2d_), - _a2f_=caml_call1(Runtime_ocaml_Runtime[31],cst_3372), - _a2g_=caml_call2(Runtime_ocaml_Runtime[104],_a2f_,_a2e_), - _a2h_=caml_call1(Runtime_ocaml_Runtime[31],cst_38892$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a2h_,_a2g_)}} - function _a1B_(param) - {var - _a1C_=caml_call3(Runtime_ocaml_Runtime[57],2010,1,1), - _a1D_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a1C_), - _a1E_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), - _a1F_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a1E_), - _a1G_=caml_call2(Runtime_ocaml_Runtime[83],_a1F_,_a1D_), - _a1H_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a1I_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a1H_), - _a1J_=caml_call2(Runtime_ocaml_Runtime[83],_a1I_,_a1G_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ln_,_a1J_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lo_,[0],_a1B_,_a1A_)}, - _aRU_= - function(param) - {function _a0S_(param) - {switch(zone[0]) - {case 0: - var _a02_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$353); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a02_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_28728) - :caml_call1(Runtime_ocaml_Runtime[31],cst_34621); - var _a03_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$236); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a03_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37224); - var _a04_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a04_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38264); - var _a05_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a05_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39340$0); - var _a06_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$59); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a06_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40396); - var _a07_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a07_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_41252); - var - _a08_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$81), - _a09_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a08_), - _a0__=caml_call1(Runtime_ocaml_Runtime[69],_a09_), - _a0$_=caml_call1(Runtime_ocaml_Runtime[31],cst_3592), - _a1a_=caml_call2(Runtime_ocaml_Runtime[104],_a0$_,_a0__), - _a1b_=caml_call1(Runtime_ocaml_Runtime[31],cst_41252$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a1b_,_a1a_); - case 1: - var _a1c_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$354); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1c_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_25203) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30895); - var _a1d_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$237); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1d_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33446); - var _a1e_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1e_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34604); - var _a1f_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1f_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35796); - var _a1g_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$60); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1g_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36972); - var _a1h_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1h_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39590); - var - _a1i_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$83), - _a1j_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1i_), - _a1k_=caml_call1(Runtime_ocaml_Runtime[69],_a1j_), - _a1l_=caml_call1(Runtime_ocaml_Runtime[31],cst_3442), - _a1m_=caml_call2(Runtime_ocaml_Runtime[104],_a1l_,_a1k_), - _a1n_=caml_call1(Runtime_ocaml_Runtime[31],cst_39590$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a1n_,_a1m_); - default: - var _a1o_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$355); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1o_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23642) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28676); - var _a1p_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$238); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1p_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31264$0); - var _a1q_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1q_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32556); - var _a1r_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1r_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33866); - var _a1s_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$61); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1s_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35158); - var _a1t_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a1t_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37778); - var - _a1u_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$85), - _a1v_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a1u_), - _a1w_=caml_call1(Runtime_ocaml_Runtime[69],_a1v_), - _a1x_=caml_call1(Runtime_ocaml_Runtime[31],cst_3275), - _a1y_=caml_call2(Runtime_ocaml_Runtime[104],_a1x_,_a1w_), - _a1z_=caml_call1(Runtime_ocaml_Runtime[31],cst_37778$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a1z_,_a1y_)}} - function _a0T_(param) - {var - _a0U_=caml_call3(Runtime_ocaml_Runtime[57],2009,1,1), - _a0V_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a0U_), - _a0W_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), - _a0X_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a0W_), - _a0Y_=caml_call2(Runtime_ocaml_Runtime[83],_a0X_,_a0V_), - _a0Z_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a00_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0Z_), - _a01_=caml_call2(Runtime_ocaml_Runtime[83],_a00_,_a0Y_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lp_,_a01_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lq_,[0],_a0T_,_a0S_)}, - _aRV_= - function(param) - {function _aZ__(param) - {switch(zone[0]) - {case 0: - var _a0i_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$356); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0i_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27956) - :caml_call1(Runtime_ocaml_Runtime[31],cst_33691); - var _a0j_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$239); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0j_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36224); - var _a0k_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0k_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37236); - var _a0l_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0l_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38283); - var _a0m_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$62); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0m_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39311); - var _a0n_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0n_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_40144); - var - _a0o_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$87), - _a0p_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0o_), - _a0q_=caml_call1(Runtime_ocaml_Runtime[69],_a0p_), - _a0r_=caml_call1(Runtime_ocaml_Runtime[31],cst_3496), - _a0s_=caml_call2(Runtime_ocaml_Runtime[104],_a0r_,_a0q_), - _a0t_=caml_call1(Runtime_ocaml_Runtime[31],cst_40144$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a0t_,_a0s_); - case 1: - var _a0u_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$357); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0u_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_24526) - :caml_call1(Runtime_ocaml_Runtime[31],cst_30065); - var _a0v_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$240); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0v_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32548); - var _a0w_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0w_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33675); - var _a0x_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0x_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34865$0); - var _a0y_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$63); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0y_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35979); - var _a0z_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0z_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38527); - var - _a0A_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$89), - _a0B_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0A_), - _a0C_=caml_call1(Runtime_ocaml_Runtime[69],_a0B_), - _a0D_=caml_call1(Runtime_ocaml_Runtime[31],cst_3350), - _a0E_=caml_call2(Runtime_ocaml_Runtime[104],_a0D_,_a0C_), - _a0F_=caml_call1(Runtime_ocaml_Runtime[31],cst_38527$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a0F_,_a0E_); - default: - var _a0G_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$358); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0G_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23007) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27906); - var _a0H_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$241); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0H_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30424); - var _a0I_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0I_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31682); - var _a0J_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0J_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32956$0); - var _a0K_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$64); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0K_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34214); - var _a0L_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_a0L_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36733); - var - _a0M_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$91), - _a0N_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_a0M_), - _a0O_=caml_call1(Runtime_ocaml_Runtime[69],_a0N_), - _a0P_=caml_call1(Runtime_ocaml_Runtime[31],cst_3187), - _a0Q_=caml_call2(Runtime_ocaml_Runtime[104],_a0P_,_a0O_), - _a0R_=caml_call1(Runtime_ocaml_Runtime[31],cst_36733$0); - return caml_call2(Runtime_ocaml_Runtime[93],_a0R_,_a0Q_)}} - function _aZ$_(param) - {var - _a0a_=caml_call3(Runtime_ocaml_Runtime[57],2008,1,1), - _a0b_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_a0a_), - _a0c_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), - _a0d_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_a0c_), - _a0e_=caml_call2(Runtime_ocaml_Runtime[83],_a0d_,_a0b_), - _a0f_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _a0g_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_a0f_), - _a0h_=caml_call2(Runtime_ocaml_Runtime[83],_a0g_,_a0e_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lr_,_a0h_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ls_,[0],_aZ$_,_aZ__)}, - _aRW_= - function(param) - {function _aZq_(param) - {switch(zone[0]) - {case 0: - var _aZA_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$359); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZA_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_27195) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32773); - var _aZB_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$242); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35237); - var _aZC_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZC_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36222); - var _aZD_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37240); - var _aZE_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$65); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38240); - var _aZF_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_39051); - var - _aZG_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$93), - _aZH_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZG_), - _aZI_=caml_call1(Runtime_ocaml_Runtime[69],_aZH_), - _aZJ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3401), - _aZK_=caml_call2(Runtime_ocaml_Runtime[104],_aZJ_,_aZI_), - _aZL_=caml_call1(Runtime_ocaml_Runtime[31],cst_39051$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aZL_,_aZK_); - case 1: - var _aZM_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$360); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZM_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23858) - :caml_call1(Runtime_ocaml_Runtime[31],cst_29246); - var _aZN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$243); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZN_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31661); - var _aZO_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZO_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32758); - var _aZP_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33886); - var _aZQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$66); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34999); - var _aZR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37478); - var - _aZS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$95), - _aZT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZS_), - _aZU_=caml_call1(Runtime_ocaml_Runtime[69],_aZT_), - _aZV_=caml_call1(Runtime_ocaml_Runtime[31],cst_3259), - _aZW_=caml_call2(Runtime_ocaml_Runtime[104],_aZV_,_aZU_), - _aZX_=caml_call1(Runtime_ocaml_Runtime[31],cst_37478$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aZX_,_aZW_); - default: - var _aZY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$361); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZY_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22380) - :caml_call1(Runtime_ocaml_Runtime[31],cst_27146); - var _aZZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$244); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZZ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29595); - var _aZ0_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ0_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30819); - var _aZ1_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ1_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32058); - var _aZ2_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$67); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ2_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33282); - var _aZ3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZ3_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35762); - var - _aZ4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$97), - _aZ5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZ4_), - _aZ6_=caml_call1(Runtime_ocaml_Runtime[69],_aZ5_), - _aZ7_=caml_call1(Runtime_ocaml_Runtime[31],cst_3100), - _aZ8_=caml_call2(Runtime_ocaml_Runtime[104],_aZ7_,_aZ6_), - _aZ9_=caml_call1(Runtime_ocaml_Runtime[31],cst_35762$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aZ9_,_aZ8_)}} - function _aZr_(param) - {var - _aZs_=caml_call3(Runtime_ocaml_Runtime[57],2007,1,1), - _aZt_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aZs_), - _aZu_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), - _aZv_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aZu_), - _aZw_=caml_call2(Runtime_ocaml_Runtime[83],_aZv_,_aZt_), - _aZx_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aZy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aZx_), - _aZz_=caml_call2(Runtime_ocaml_Runtime[83],_aZy_,_aZw_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lt_,_aZz_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lu_,[0],_aZr_,_aZq_)}, - _aRX_= - function(param) - {function _aYI_(param) - {switch(zone[0]) - {case 0: - var _aYS_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$362); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYS_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26714$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_32194); - var _aYT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$245); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34614); - var _aYU_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYU_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35582); - var _aYV_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYV_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36582); - var _aYW_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$68); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYW_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37564); - var _aYX_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYX_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_38361); - var - _aYY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$99), - _aYZ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYY_), - _aY0_=caml_call1(Runtime_ocaml_Runtime[69],_aYZ_), - _aY1_=caml_call1(Runtime_ocaml_Runtime[31],cst_3341), - _aY2_=caml_call2(Runtime_ocaml_Runtime[104],_aY1_,_aY0_), - _aY3_=caml_call1(Runtime_ocaml_Runtime[31],cst_38361$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aY3_,_aY2_); - case 1: - var _aY4_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$363); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY4_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23436) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28729); - var _aY5_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$246); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY5_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31101); - var _aY6_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY6_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32179); - var _aY7_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY7_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33287); - var _aY8_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$69); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY8_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34380); - var _aY9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aY9_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36815); - var - _aY__=caml_call1(Runtime_ocaml_Runtime[46],cst_5$101), - _aY$_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aY__), - _aZa_=caml_call1(Runtime_ocaml_Runtime[69],_aY$_), - _aZb_=caml_call1(Runtime_ocaml_Runtime[31],cst_3201), - _aZc_=caml_call2(Runtime_ocaml_Runtime[104],_aZb_,_aZa_), - _aZd_=caml_call1(Runtime_ocaml_Runtime[31],cst_36815$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aZd_,_aZc_); - default: - var _aZe_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$364); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZe_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21984) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26666); - var _aZf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$247); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZf_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29072); - var _aZg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZg_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30274); - var _aZh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZh_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31491); - var _aZi_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$70); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32694); - var _aZj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$102); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aZj_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35130); - var - _aZk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$103), - _aZl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aZk_), - _aZm_=caml_call1(Runtime_ocaml_Runtime[69],_aZl_), - _aZn_=caml_call1(Runtime_ocaml_Runtime[31],cst_3045), - _aZo_=caml_call2(Runtime_ocaml_Runtime[104],_aZn_,_aZm_), - _aZp_=caml_call1(Runtime_ocaml_Runtime[31],cst_35130$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aZp_,_aZo_)}} - function _aYJ_(param) - {var - _aYK_=caml_call3(Runtime_ocaml_Runtime[57],2005,9,1), - _aYL_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aYK_), - _aYM_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), - _aYN_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aYM_), - _aYO_=caml_call2(Runtime_ocaml_Runtime[83],_aYN_,_aYL_), - _aYP_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aYQ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aYP_), - _aYR_=caml_call2(Runtime_ocaml_Runtime[83],_aYQ_,_aYO_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lv_,_aYR_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Lw_,[0],_aYJ_,_aYI_)}, - _aRY_= - function(param) - {function _aX0_(param) - {switch(zone[0]) - {case 0: - var _aX__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$365); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX__)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26397) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31812); - var _aX$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$248); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aX$_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34204); - var _aYa_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYa_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35160); - var _aYb_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYb_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36148); - var _aYc_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$71); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYc_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37119); - var _aYd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYd_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37906); - var - _aYe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$105), - _aYf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYe_), - _aYg_=caml_call1(Runtime_ocaml_Runtime[69],_aYf_), - _aYh_=caml_call1(Runtime_ocaml_Runtime[31],cst_3301), - _aYi_=caml_call2(Runtime_ocaml_Runtime[104],_aYh_,_aYg_), - _aYj_=caml_call1(Runtime_ocaml_Runtime[31],cst_37906$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYj_,_aYi_); - case 1: - var _aYk_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$366); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYk_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_23158) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28388); - var _aYl_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$249); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYl_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30732); - var _aYm_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYm_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31797$1); - var _aYn_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYn_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32892); - var _aYo_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$72); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYo_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33972); - var _aYp_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYp_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36378); - var - _aYq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$107), - _aYr_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYq_), - _aYs_=caml_call1(Runtime_ocaml_Runtime[69],_aYr_), - _aYt_=caml_call1(Runtime_ocaml_Runtime[31],cst_3163), - _aYu_=caml_call2(Runtime_ocaml_Runtime[104],_aYt_,_aYs_), - _aYv_=caml_call1(Runtime_ocaml_Runtime[31],cst_36378$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYv_,_aYu_); - default: - var _aYw_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$367); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYw_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21723) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26350); - var _aYx_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$250); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYx_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_28727); - var _aYy_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYy_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29915); - var _aYz_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYz_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31118); - var _aYA_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$73); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYA_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32306); - var _aYB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aYB_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34713); - var - _aYC_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$109), - _aYD_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aYC_), - _aYE_=caml_call1(Runtime_ocaml_Runtime[69],_aYD_), - _aYF_=caml_call1(Runtime_ocaml_Runtime[31],cst_3009), - _aYG_=caml_call2(Runtime_ocaml_Runtime[104],_aYF_,_aYE_), - _aYH_=caml_call1(Runtime_ocaml_Runtime[31],cst_34713$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aYH_,_aYG_)}} - function _aX1_(param) - {var - _aX2_=caml_call3(Runtime_ocaml_Runtime[57],2003,7,1), - _aX3_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aX2_), - _aX4_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), - _aX5_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aX4_), - _aX6_=caml_call2(Runtime_ocaml_Runtime[83],_aX5_,_aX3_), - _aX7_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aX8_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aX7_), - _aX9_=caml_call2(Runtime_ocaml_Runtime[83],_aX8_,_aX6_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lx_,_aX9_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ly_,[0],_aX1_,_aX0_)}, - _aRZ_= - function(param) - {function _aXg_(param) - {switch(zone[0]) - {case 0: - var _aXq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$368); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXq_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_26084) - :caml_call1(Runtime_ocaml_Runtime[31],cst_31435); - var _aXr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$251); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXr_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33798); - var _aXs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXs_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34743); - var _aXt_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35719); - var _aXu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$74); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXu_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_36679); - var _aXv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXv_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_37457); - var - _aXw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$111), - _aXx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXw_), - _aXy_=caml_call1(Runtime_ocaml_Runtime[69],_aXx_), - _aXz_=caml_call1(Runtime_ocaml_Runtime[31],cst_3262), - _aXA_=caml_call2(Runtime_ocaml_Runtime[104],_aXz_,_aXy_), - _aXB_=caml_call1(Runtime_ocaml_Runtime[31],cst_37457$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXB_,_aXA_); - case 1: - var _aXC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$369); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXC_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_22883) - :caml_call1(Runtime_ocaml_Runtime[31],cst_28051); - var _aXD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$252); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXD_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30368); - var _aXE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31420); - var _aXF_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXF_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_32502); - var _aXG_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$75); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXG_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_33569); - var _aXH_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXH_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_35947); - var - _aXI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$113), - _aXJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXI_), - _aXK_=caml_call1(Runtime_ocaml_Runtime[69],_aXJ_), - _aXL_=caml_call1(Runtime_ocaml_Runtime[31],cst_3125), - _aXM_=caml_call2(Runtime_ocaml_Runtime[104],_aXL_,_aXK_), - _aXN_=caml_call1(Runtime_ocaml_Runtime[31],cst_35947$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXN_,_aXM_); - default: - var _aXO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$370); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXO_)) - return 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_21465) - :caml_call1(Runtime_ocaml_Runtime[31],cst_26038); - var _aXP_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$253); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXP_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_28386); - var _aXQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXQ_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_29560); - var _aXR_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXR_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_30749); - var _aXS_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$76); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXS_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_31923); - var _aXT_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$114); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aXT_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_34301); - var - _aXU_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$115), - _aXV_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXU_), - _aXW_=caml_call1(Runtime_ocaml_Runtime[69],_aXV_), - _aXX_=caml_call1(Runtime_ocaml_Runtime[31],cst_2973), - _aXY_=caml_call2(Runtime_ocaml_Runtime[104],_aXX_,_aXW_), - _aXZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_34301$0); - return caml_call2(Runtime_ocaml_Runtime[93],_aXZ_,_aXY_)}} - function _aXh_(param) - {var - _aXi_=caml_call3(Runtime_ocaml_Runtime[57],2002,7,1), - _aXj_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aXi_), - _aXk_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _aXl_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aXk_), - _aXm_=caml_call2(Runtime_ocaml_Runtime[83],_aXl_,_aXj_), - _aXn_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aXo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aXn_), - _aXp_=caml_call2(Runtime_ocaml_Runtime[83],_aXo_,_aXm_); - return caml_call2(Runtime_ocaml_Runtime[29],_Lz_,_aXp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LA_,[0],_aXh_,_aXg_)}, - _aR0_= - function(param) - {function _aWx_(param) - {switch(zone[0]) - {case 0: - var _aWH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$371); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWH_)) - var - _aWI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_171100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_206200); - else - {var _aWJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$254); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWJ_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_221700); - else - {var _aWK_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWK_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_227900); - else - {var _aWL_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWL_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_234300); - else - {var _aWM_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$77); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWM_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_240600); - else - {var _aWN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$116); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWN_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700); - else - var - _aWO_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$117), - _aWP_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWO_), - _aWQ_=caml_call1(Runtime_ocaml_Runtime[69],_aWP_), - _aWR_=caml_call1(Runtime_ocaml_Runtime[31],cst_21400), - _aWS_=caml_call2(Runtime_ocaml_Runtime[104],_aWR_,_aWQ_), - _aWT_=caml_call1(Runtime_ocaml_Runtime[31],cst_245700$0), - _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aWT_,_aWS_)}}}}} - break; - case 1: - var _aWU_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$372); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWU_)) - var - _aWI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_150100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_184000$0); - else - {var _aWV_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$255); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWV_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_199200); - else - {var _aWW_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWW_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_206100); - else - {var _aWX_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWX_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_213200); - else - {var _aWY_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$78); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWY_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_220200); - else - {var _aWZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$118); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWZ_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800); - else - var - _aW0_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$119), - _aW1_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aW0_), - _aW2_=caml_call1(Runtime_ocaml_Runtime[69],_aW1_), - _aW3_=caml_call1(Runtime_ocaml_Runtime[31],cst_20500), - _aW4_=caml_call2(Runtime_ocaml_Runtime[104],_aW3_,_aW2_), - _aW5_=caml_call1(Runtime_ocaml_Runtime[31],cst_235800$0), - _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aW5_,_aW4_)}}}}} - break; - default: - var _aW6_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$373); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW6_)) - var - _aWI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_170800); - else - {var _aW7_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$256); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW7_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_186200); - else - {var _aW8_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW8_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_193900); - else - {var _aW9_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW9_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_201700); - else - {var _aW__=caml_call1(Runtime_ocaml_Runtime[46],cst_4$79); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW__)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_209400); - else - {var _aW$_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$120); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aW$_)) - var _aWI_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000); - else - var - _aXa_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$121), - _aXb_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aXa_), - _aXc_=caml_call1(Runtime_ocaml_Runtime[69],_aXb_), - _aXd_=caml_call1(Runtime_ocaml_Runtime[31],cst_19500), - _aXe_=caml_call2(Runtime_ocaml_Runtime[104],_aXd_,_aXc_), - _aXf_=caml_call1(Runtime_ocaml_Runtime[31],cst_225000$0), - _aWI_=caml_call2(Runtime_ocaml_Runtime[93],_aXf_,_aXe_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aWI_,taux_francs_vers_euros)} - function _aWy_(param) - {var - _aWz_=caml_call3(Runtime_ocaml_Runtime[57],2002,1,1), - _aWA_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aWz_), - _aWB_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _aWC_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aWB_), - _aWD_=caml_call2(Runtime_ocaml_Runtime[83],_aWC_,_aWA_), - _aWE_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aWF_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aWE_), - _aWG_=caml_call2(Runtime_ocaml_Runtime[83],_aWF_,_aWD_); - return caml_call2(Runtime_ocaml_Runtime[29],_LB_,_aWG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LC_,[0],_aWy_,_aWx_)}, - _aR1_= - function(param) - {function _aVO_(param) - {switch(zone[0]) - {case 0: - var _aVY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$374); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVY_)) - var - _aVZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_169100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_203800); - else - {var _aV0_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$257); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV0_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_219100); - else - {var _aV1_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV1_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_225200); - else - {var _aV2_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV2_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_231500); - else - {var _aV3_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$80); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV3_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_237700); - else - {var _aV4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$122); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV4_)) - var - _aVZ_= - caml_call1(Runtime_ocaml_Runtime[31],cst_242800$1); - else - var - _aV5_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$123), - _aV6_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aV5_), - _aV7_=caml_call1(Runtime_ocaml_Runtime[69],_aV6_), - _aV8_=caml_call1(Runtime_ocaml_Runtime[31],cst_21100), - _aV9_=caml_call2(Runtime_ocaml_Runtime[104],_aV8_,_aV7_), - _aV__=caml_call1(Runtime_ocaml_Runtime[31],cst_242800$2), - _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aV__,_aV9_)}}}}} - break; - case 1: - var _aV$_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$375); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aV$_)) - var - _aVZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_148300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_181800); - else - {var _aWa_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$258); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWa_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_196800); - else - {var _aWb_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$101); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWb_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_203700); - else - {var _aWc_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWc_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_210700); - else - {var _aWd_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$81); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWd_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_217600); - else - {var _aWe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$124); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWe_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000); - else - var - _aWf_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$125), - _aWg_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWf_), - _aWh_=caml_call1(Runtime_ocaml_Runtime[69],_aWg_), - _aWi_=caml_call1(Runtime_ocaml_Runtime[31],cst_20300), - _aWj_=caml_call2(Runtime_ocaml_Runtime[104],_aWi_,_aWh_), - _aWk_=caml_call1(Runtime_ocaml_Runtime[31],cst_233000$0), - _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aWk_,_aWj_)}}}}} - break; - default: - var _aWl_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$376); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWl_)) - var - _aVZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139100) - :caml_call1(Runtime_ocaml_Runtime[31],cst_168800); - else - {var _aWm_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$259); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWm_)) - var - _aVZ_= - caml_call1(Runtime_ocaml_Runtime[31],cst_184000$1); - else - {var _aWn_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$102); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWn_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_191600); - else - {var _aWo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWo_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_199300); - else - {var _aWp_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$82); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWp_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_206900); - else - {var _aWq_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$126); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aWq_)) - var _aVZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300); - else - var - _aWr_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$127), - _aWs_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aWr_), - _aWt_=caml_call1(Runtime_ocaml_Runtime[69],_aWs_), - _aWu_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300), - _aWv_=caml_call2(Runtime_ocaml_Runtime[104],_aWu_,_aWt_), - _aWw_=caml_call1(Runtime_ocaml_Runtime[31],cst_222300$0), - _aVZ_=caml_call2(Runtime_ocaml_Runtime[93],_aWw_,_aWv_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aVZ_,taux_francs_vers_euros)} - function _aVP_(param) - {var - _aVQ_=caml_call3(Runtime_ocaml_Runtime[57],2001,7,1), - _aVR_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aVQ_), - _aVS_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), - _aVT_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aVS_), - _aVU_=caml_call2(Runtime_ocaml_Runtime[83],_aVT_,_aVR_), - _aVV_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aVW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVV_), - _aVX_=caml_call2(Runtime_ocaml_Runtime[83],_aVW_,_aVU_); - return caml_call2(Runtime_ocaml_Runtime[29],_LD_,_aVX_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LE_,[0],_aVP_,_aVO_)}, - _aR2_= - function(param) - {function _aU5_(param) - {switch(zone[0]) - {case 0: - var _aVd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$377); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVd_)) - var - _aVe_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_201800); - else - {var _aVf_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$260); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVf_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_216900); - else - {var _aVg_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$103); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVg_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_223000); - else - {var _aVh_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVh_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_229200); - else - {var _aVi_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$83); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVi_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_235300); - else - {var _aVj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$128); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVj_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400); - else - var - _aVk_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$129), - _aVl_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVk_), - _aVm_=caml_call1(Runtime_ocaml_Runtime[69],_aVl_), - _aVn_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900), - _aVo_=caml_call2(Runtime_ocaml_Runtime[104],_aVn_,_aVm_), - _aVp_=caml_call1(Runtime_ocaml_Runtime[31],cst_240400$0), - _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVp_,_aVo_)}}}}} - break; - case 1: - var _aVq_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$378); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVq_)) - var - _aVe_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_146800) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180000); - else - {var _aVr_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$261); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVr_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_194900); - else - {var _aVs_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$104); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVs_)) - var - _aVe_= - caml_call1(Runtime_ocaml_Runtime[31],cst_201700$0); - else - {var _aVt_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVt_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600); - else - {var _aVu_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$84); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVu_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_215400); - else - {var _aVv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$130); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVv_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700); - else - var - _aVw_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$131), - _aVx_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVw_), - _aVy_=caml_call1(Runtime_ocaml_Runtime[69],_aVx_), - _aVz_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100), - _aVA_=caml_call2(Runtime_ocaml_Runtime[104],_aVz_,_aVy_), - _aVB_=caml_call1(Runtime_ocaml_Runtime[31],cst_230700$0), - _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVB_,_aVA_)}}}}} - break; - default: - var _aVC_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$379); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVC_)) - var - _aVe_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_137700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_167100); - else - {var _aVD_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$262); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVD_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_182200); - else - {var _aVE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$105); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVE_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_189700); - else - {var _aVF_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVF_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_197300); - else - {var _aVG_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$85); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVG_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_204900); - else - {var _aVH_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$132); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aVH_)) - var _aVe_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100); - else - var - _aVI_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$133), - _aVJ_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aVI_), - _aVK_=caml_call1(Runtime_ocaml_Runtime[69],_aVJ_), - _aVL_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100), - _aVM_=caml_call2(Runtime_ocaml_Runtime[104],_aVL_,_aVK_), - _aVN_=caml_call1(Runtime_ocaml_Runtime[31],cst_220100$0), - _aVe_=caml_call2(Runtime_ocaml_Runtime[93],_aVN_,_aVM_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aVe_,taux_francs_vers_euros)} - function _aU6_(param) - {var - _aU7_=caml_call3(Runtime_ocaml_Runtime[57],2000,7,1), - _aU8_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aU7_), - _aU9_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _aU__= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aU9_), - _aU$_=caml_call2(Runtime_ocaml_Runtime[83],_aU__,_aU8_), - _aVa_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aVb_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aVa_), - _aVc_=caml_call2(Runtime_ocaml_Runtime[83],_aVb_,_aU$_); - return caml_call2(Runtime_ocaml_Runtime[29],_LF_,_aVc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LG_,[0],_aU6_,_aU5_)}, - _aR3_= - function(param) - {function _aUk_(param) - {switch(zone[0]) - {case 0: - var _aUu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$380); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUu_)) - var - _aUv_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_167200) - :caml_call1(Runtime_ocaml_Runtime[31],cst_201600); - else - {var _aUw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$263); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUw_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_216700); - else - {var _aUx_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$106); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUx_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_222800); - else - {var _aUy_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUy_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_229000); - else - {var _aUz_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$86); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUz_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_235100); - else - {var _aUA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$134); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUA_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200); - else - var - _aUB_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$135), - _aUC_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUB_), - _aUD_=caml_call1(Runtime_ocaml_Runtime[69],_aUC_), - _aUE_=caml_call1(Runtime_ocaml_Runtime[31],cst_20900$0), - _aUF_=caml_call2(Runtime_ocaml_Runtime[104],_aUE_,_aUD_), - _aUG_=caml_call1(Runtime_ocaml_Runtime[31],cst_240200$0), - _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aUG_,_aUF_)}}}}} - break; - case 1: - var _aUH_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$381); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUH_)) - var - _aUv_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_146700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_179800); - else - {var _aUI_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$264); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUI_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_194700); - else - {var _aUJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$107); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUJ_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_201500); - else - {var _aUK_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUK_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_208400); - else - {var _aUL_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$87); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUL_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_215200); - else - {var _aUM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$136); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUM_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500); - else - var - _aUN_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$137), - _aUO_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUN_), - _aUP_=caml_call1(Runtime_ocaml_Runtime[69],_aUO_), - _aUQ_=caml_call1(Runtime_ocaml_Runtime[31],cst_20100$0), - _aUR_=caml_call2(Runtime_ocaml_Runtime[104],_aUQ_,_aUP_), - _aUS_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$0), - _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aUS_,_aUR_)}}}}} - break; - default: - var _aUT_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$382); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUT_)) - var - _aUv_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_137600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_166900); - else - {var _aUU_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$265); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUU_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_182000); - else - {var _aUV_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$108); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUV_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_189500); - else - {var _aUW_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUW_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_197100); - else - {var _aUX_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$88); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUX_)) - var - _aUv_= - caml_call1(Runtime_ocaml_Runtime[31],cst_204700$0); - else - {var _aUY_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$138); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUY_)) - var _aUv_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900); - else - var - _aUZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$139), - _aU0_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUZ_), - _aU1_=caml_call1(Runtime_ocaml_Runtime[69],_aU0_), - _aU2_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$0), - _aU3_=caml_call2(Runtime_ocaml_Runtime[104],_aU2_,_aU1_), - _aU4_=caml_call1(Runtime_ocaml_Runtime[31],cst_219900$0), - _aUv_=caml_call2(Runtime_ocaml_Runtime[93],_aU4_,_aU3_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aUv_,taux_francs_vers_euros)} - function _aUl_(param) - {var - _aUm_=caml_call3(Runtime_ocaml_Runtime[57],1999,7,1), - _aUn_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aUm_), - _aUo_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), - _aUp_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aUo_), - _aUq_=caml_call2(Runtime_ocaml_Runtime[83],_aUp_,_aUn_), - _aUr_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aUs_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aUr_), - _aUt_=caml_call2(Runtime_ocaml_Runtime[83],_aUs_,_aUq_); - return caml_call2(Runtime_ocaml_Runtime[29],_LH_,_aUt_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LI_,[0],_aUl_,_aUk_)}, - _aR4_= - function(param) - {function _aTB_(param) - {switch(zone[0]) - {case 0: - var _aTL_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$383); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTL_)) - var - _aTM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_163300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_196900); - else - {var _aTN_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$266); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTN_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_211600); - else - {var _aTO_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$109); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTO_)) - var - _aTM_= - caml_call1(Runtime_ocaml_Runtime[31],cst_217600$0); - else - {var _aTP_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTP_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_223600); - else - {var _aTQ_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$89); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTQ_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_229600); - else - {var _aTR_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$140); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTR_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600); - else - var - _aTS_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$141), - _aTT_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTS_), - _aTU_=caml_call1(Runtime_ocaml_Runtime[69],_aTT_), - _aTV_=caml_call1(Runtime_ocaml_Runtime[31],cst_20400), - _aTW_=caml_call2(Runtime_ocaml_Runtime[104],_aTV_,_aTU_), - _aTX_=caml_call1(Runtime_ocaml_Runtime[31],cst_234600$0), - _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aTX_,_aTW_)}}}}} - break; - case 1: - var _aTY_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$384); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTY_)) - var - _aTM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_143300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_175600); - else - {var _aTZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$267); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTZ_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_190100); - else - {var _aT0_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$110); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT0_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_196600); - else - {var _aT1_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT1_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_203500); - else - {var _aT2_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$90); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT2_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_210200); - else - {var _aT3_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$142); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT3_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100); - else - var - _aT4_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$143), - _aT5_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aT4_), - _aT6_=caml_call1(Runtime_ocaml_Runtime[69],_aT5_), - _aT7_=caml_call1(Runtime_ocaml_Runtime[31],cst_19600), - _aT8_=caml_call2(Runtime_ocaml_Runtime[104],_aT7_,_aT6_), - _aT9_=caml_call1(Runtime_ocaml_Runtime[31],cst_225100$0), - _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aT9_,_aT8_)}}}}} - break; - default: - var _aT__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$385); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT__)) - var - _aTM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_134400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_163000$0); - else - {var _aT$_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$268); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aT$_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_177700); - else - {var _aUa_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$111); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUa_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_185100); - else - {var _aUb_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUb_)) - var - _aTM_= - caml_call1(Runtime_ocaml_Runtime[31],cst_192500$0); - else - {var _aUc_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$91); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUc_)) - var - _aTM_= - caml_call1(Runtime_ocaml_Runtime[31],cst_199900$0); - else - {var _aUd_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$144); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aUd_)) - var _aTM_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700); - else - var - _aUe_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$145), - _aUf_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aUe_), - _aUg_=caml_call1(Runtime_ocaml_Runtime[69],_aUf_), - _aUh_=caml_call1(Runtime_ocaml_Runtime[31],cst_18700), - _aUi_=caml_call2(Runtime_ocaml_Runtime[104],_aUh_,_aUg_), - _aUj_=caml_call1(Runtime_ocaml_Runtime[31],cst_214700$0), - _aTM_=caml_call2(Runtime_ocaml_Runtime[93],_aUj_,_aUi_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aTM_,taux_francs_vers_euros)} - function _aTC_(param) - {var - _aTD_=caml_call3(Runtime_ocaml_Runtime[57],1998,7,1), - _aTE_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aTD_), - _aTF_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), - _aTG_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aTF_), - _aTH_=caml_call2(Runtime_ocaml_Runtime[83],_aTG_,_aTE_), - _aTI_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aTJ_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aTI_), - _aTK_=caml_call2(Runtime_ocaml_Runtime[83],_aTJ_,_aTH_); - return caml_call2(Runtime_ocaml_Runtime[29],_LJ_,_aTK_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LK_,[0],_aTC_,_aTB_)}, - _aR5_= - function(param) - {function _aSS_(param) - {switch(zone[0]) - {case 0: - var _aS2_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$386); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS2_)) - var - _aS3_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_160400) - :caml_call1(Runtime_ocaml_Runtime[31],cst_193400); - else - {var _aS4_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$269); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS4_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_207800); - else - {var _aS5_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$112); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS5_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_213700); - else - {var _aS6_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS6_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_219600); - else - {var _aS7_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$92); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS7_)) - var - _aS3_= - caml_call1(Runtime_ocaml_Runtime[31],cst_225500$0); - else - {var _aS8_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$146); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aS8_)) - var - _aS3_= - caml_call1(Runtime_ocaml_Runtime[31],cst_230500$1); - else - var - _aS9_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$147), - _aS__= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aS9_), - _aS$_=caml_call1(Runtime_ocaml_Runtime[69],_aS__), - _aTa_=caml_call1(Runtime_ocaml_Runtime[31],cst_20000), - _aTb_=caml_call2(Runtime_ocaml_Runtime[104],_aTa_,_aS$_), - _aTc_=caml_call1(Runtime_ocaml_Runtime[31],cst_230500$2), - _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTc_,_aTb_)}}}}} - break; - case 1: - var _aTd_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$387); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTd_)) - var - _aS3_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_140800$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_172500$0); - else - {var _aTe_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$270); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTe_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_186700); - else - {var _aTf_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$113); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTf_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_193300); - else - {var _aTg_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTg_)) - var - _aS3_= - caml_call1(Runtime_ocaml_Runtime[31],cst_199900$1); - else - {var _aTh_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$93); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTh_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_206500); - else - {var _aTi_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$148); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTi_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100); - else - var - _aTj_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$149), - _aTk_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTj_), - _aTl_=caml_call1(Runtime_ocaml_Runtime[69],_aTk_), - _aTm_=caml_call1(Runtime_ocaml_Runtime[31],cst_19300$0), - _aTn_=caml_call2(Runtime_ocaml_Runtime[104],_aTm_,_aTl_), - _aTo_=caml_call1(Runtime_ocaml_Runtime[31],cst_221100$0), - _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTo_,_aTn_)}}}}} - break; - default: - var _aTp_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$388); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTp_)) - var - _aS3_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_132000$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_180100$1); - else - {var _aTq_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$271); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTq_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_174500); - else - {var _aTr_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$114); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTr_)) - var - _aS3_= - caml_call1(Runtime_ocaml_Runtime[31],cst_181800$0); - else - {var _aTs_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$98); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTs_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_189100); - else - {var _aTt_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$94); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTt_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_196400); - else - {var _aTu_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$150); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aTu_)) - var _aS3_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900); - else - var - _aTv_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$151), - _aTw_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aTv_), - _aTx_=caml_call1(Runtime_ocaml_Runtime[69],_aTw_), - _aTy_=caml_call1(Runtime_ocaml_Runtime[31],cst_18400), - _aTz_=caml_call2(Runtime_ocaml_Runtime[104],_aTy_,_aTx_), - _aTA_=caml_call1(Runtime_ocaml_Runtime[31],cst_210900$0), - _aS3_=caml_call2(Runtime_ocaml_Runtime[93],_aTA_,_aTz_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aS3_,taux_francs_vers_euros)} - function _aST_(param) - {var - _aSU_=caml_call3(Runtime_ocaml_Runtime[57],1997,7,1), - _aSV_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aSU_), - _aSW_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), - _aSX_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSW_), - _aSY_=caml_call2(Runtime_ocaml_Runtime[83],_aSX_,_aSV_), - _aSZ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aS0_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aSZ_), - _aS1_=caml_call2(Runtime_ocaml_Runtime[83],_aS0_,_aSY_); - return caml_call2(Runtime_ocaml_Runtime[29],_LL_,_aS1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LM_,[0],_aST_,_aSS_)}, - _aR6_= - [0, - function(param) - {function _aR9_(param) - {switch(zone[0]) - {case 0: - var _aSh_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$389); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSh_)) - var - _aSi_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_158700) - :caml_call1(Runtime_ocaml_Runtime[31],cst_191300); - else - {var _aSj_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$272); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSj_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_205500); - else - {var _aSk_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$115); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSk_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_211300); - else - {var _aSl_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$99); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSl_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_217100); - else - {var _aSm_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$95); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSm_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_222900); - else - {var _aSn_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$152); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSn_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000); - else - var - _aSo_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$153), - _aSp_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSo_), - _aSq_=caml_call1(Runtime_ocaml_Runtime[69],_aSp_), - _aSr_=caml_call1(Runtime_ocaml_Runtime[31],cst_19800), - _aSs_=caml_call2(Runtime_ocaml_Runtime[104],_aSr_,_aSq_), - _aSt_=caml_call1(Runtime_ocaml_Runtime[31],cst_228000$0), - _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSt_,_aSs_)}}}}} - break; + function(param){ + function _a17_(param){return 1;} + function _a18_(param){ + switch(enfant[2][0]){ + case 0: + var _a2h_ = 0; break; case 1: - var _aSu_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$390); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSu_)) - var - _aSi_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_139300) - :caml_call1(Runtime_ocaml_Runtime[31],cst_170600); - else - {var _aSv_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$273); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSv_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_184700); - else - {var _aSw_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$116); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSw_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_191200); - else - {var _aSx_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$100); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSx_)) - var - _aSi_= - caml_call1(Runtime_ocaml_Runtime[31],cst_197700$0); - else - {var _aSy_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$96); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSy_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_204200); - else - {var _aSz_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$154); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSz_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700); - else - var - _aSA_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$155), - _aSB_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSA_), - _aSC_=caml_call1(Runtime_ocaml_Runtime[69],_aSB_), - _aSD_=caml_call1(Runtime_ocaml_Runtime[31],cst_19100$1), - _aSE_=caml_call2(Runtime_ocaml_Runtime[104],_aSD_,_aSC_), - _aSF_=caml_call1(Runtime_ocaml_Runtime[31],cst_218700$0), - _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSF_,_aSE_)}}}}} - break; - default: - var _aSG_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$391); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSG_)) - var - _aSi_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_130600) - :caml_call1(Runtime_ocaml_Runtime[31],cst_158400); - else - {var _aSH_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$274); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSH_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_172600); - else - {var _aSI_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$117); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSI_)) - var - _aSi_= - caml_call1(Runtime_ocaml_Runtime[31],cst_179800$0); - else - {var _aSJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$101); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSJ_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_187000); - else - {var _aSK_=caml_call1(Runtime_ocaml_Runtime[46],cst_4$97); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSK_)) - var _aSi_=caml_call1(Runtime_ocaml_Runtime[31],cst_194200); - else - {var _aSL_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$156); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aSL_)) - var - _aSi_= - caml_call1(Runtime_ocaml_Runtime[31],cst_208600$0); - else - var - _aSM_=caml_call1(Runtime_ocaml_Runtime[46],cst_5$157), - _aSN_= - caml_call2 - (Runtime_ocaml_Runtime[96],nombre_personnes_a_charge,_aSM_), - _aSO_=caml_call1(Runtime_ocaml_Runtime[69],_aSN_), - _aSP_=caml_call1(Runtime_ocaml_Runtime[31],cst_18200), - _aSQ_=caml_call2(Runtime_ocaml_Runtime[104],_aSP_,_aSO_), - _aSR_=caml_call1(Runtime_ocaml_Runtime[31],cst_208600$1), - _aSi_=caml_call2(Runtime_ocaml_Runtime[93],_aSR_,_aSQ_)}}}}}} - return caml_call2 - (Runtime_ocaml_Runtime[104],_aSi_,taux_francs_vers_euros)} - function _aR__(param) - {var - _aR$_=caml_call3(Runtime_ocaml_Runtime[57],1994,7,1), - _aSa_= - caml_call2(Runtime_ocaml_Runtime[115],date_calcul,_aR$_), - _aSb_=caml_call3(Runtime_ocaml_Runtime[57],1992,7,1), - _aSc_= - caml_call2(Runtime_ocaml_Runtime[130],date_calcul,_aSb_), - _aSd_=caml_call2(Runtime_ocaml_Runtime[83],_aSc_,_aSa_), - _aSe_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aSf_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aSe_), - _aSg_=caml_call2(Runtime_ocaml_Runtime[83],_aSf_,_aSd_); - return caml_call2(Runtime_ocaml_Runtime[29],_LN_,_aSg_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LO_,[0],_aR__,_aR9_)}, - _aR5_, - _aR4_, - _aR3_, - _aR2_, - _aR1_, - _aR0_, - _aRZ_, - _aRY_, - _aRX_, - _aRW_, - _aRV_, - _aRU_, - _aRT_, - _aRS_, - _aRR_, - _aRQ_, - _aRP_, - _aRO_, - _aRN_, - _aRM_, - _aRL_], - _aR7_=caml_call4(Runtime_ocaml_Runtime[63],_LP_,_aR6_,_aRK_,_aRJ_); - return _aR7_} - catch(_aR8_) - {_aR8_ = caml_wrap_exception(_aR8_); - if(_aR8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_K8_]; - throw _aR8_}} - var - calcul_plafond_mensualite_d842= + var _a2h_ = 1; break; + default: var _a2h_ = 0; + } + switch(enfant[2][0]){ + case 0: + var _a2i_ = 1; break; + case 1: + var _a2i_ = 0; break; + default: var _a2i_ = 0; + } + var + _a2j_ = caml_call2(Runtime_ocaml_Runtime[84], _a2i_, _a2h_); + return caml_call2(Runtime_ocaml_Runtime[29], _td_, _a2j_); + } + var + _a19_ = + [0, + function(param){ + function _a1__(param){return 1;} + function _a1$_(param){ + var + _a2a_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _te_, + embed_verification_age_superie$0, + [0, enfant[4], date_courante, age_l512_3_2$0]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _tf_, + verification_age_superieur_a), + _a2a_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _tg_, 1); + var + _a2b_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _th_, + embed_verification_age_superie, + result$0), + _a2c_ = + caml_call2(Runtime_ocaml_Runtime[27], _ti_, _a2b_)[1], + _a2d_ = + caml_call2 + (Runtime_ocaml_Runtime[118], enfant[3], plafond_l512_3_2), + _a2e_ = caml_call2(Runtime_ocaml_Runtime[83], _a2d_, _a2c_); + switch(enfant[2][0]){ + case 0: + var _a2f_ = 0; break; + case 1: + var _a2f_ = 0; break; + default: var _a2f_ = 1; + } + var + _a2g_ = caml_call2(Runtime_ocaml_Runtime[83], _a2f_, _a2e_); + return caml_call2(Runtime_ocaml_Runtime[29], _tj_, _a2g_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _tk_, [0], _a1$_, _a1__); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _tl_, _a19_, _a18_, _a17_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _tm_, _a16_, _a15_, _a14_); + }], + _a12_ = + caml_call4(Runtime_ocaml_Runtime[63], _tn_, _a11_, _a10_, _a1Z_); + return _a12_; + } + catch(_a13_){ + var _a1Y_ = caml_wrap_exception(_a13_); + if(_a1Y_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tb_], 1); + throw caml_maybe_attach_backtrace(_a1Y_, 0); + } + } + var + droit_ouvert = + caml_call3 + (Runtime_ocaml_Runtime[28], _to_, Runtime_ocaml_Runtime[10], _a1X_); + return [0, + age_l512_3_2$0, + droit_ouvert, + conditions_hors_age, + regime_outre_mer_l751_1]; + } + function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ + var + loyer_principal = calcul_allocation_logement_loc[1], + ressources_menage_arrondies = calcul_allocation_logement_loc[2], + beneficiaire_aide_adulte_ou_en = calcul_allocation_logement_loc[3], + date_courante = calcul_allocation_logement_loc[4], + nombre_personnes_a_charge = calcul_allocation_logement_loc[5], + situation_familiale_calcul_apl = calcul_allocation_logement_loc[6], + zone = calcul_allocation_logement_loc[7], + logement_est_chambre = calcul_allocation_logement_loc[8], + agees_ou_handicap_adultes_hebe = calcul_allocation_logement_loc[9], + type_aide = calcul_allocation_logement_loc[10], + colocation = calcul_allocation_logement_loc[11], + reduction_loyer_solidarite = calcul_allocation_logement_loc[12], + logement_meuble_d842_2 = calcul_allocation_logement_loc[13], + residence = calcul_allocation_logement_loc[14], + changement_logement_d842_4 = calcul_allocation_logement_loc[15]; + try{ + var + _aZ7_ = function(param){return loyer_principal;}, + _aZ8_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tq_, 1); + }, + _aZ9_ = caml_call4(Runtime_ocaml_Runtime[63], _tr_, [0], _aZ8_, _aZ7_), + calcul_apl_locatif_dot_loyer_p = caml_call3 - (Runtime_ocaml_Runtime[28],_LQ_,Runtime_ocaml_Runtime[10],_aHx_); - try - {var - _aHy_= - function(param) - {function _aQ$_(param){throw Runtime_ocaml_Runtime[2]} - function _aRa_(param){return 0} - function _aRb_(param) - {function _aRx_(param) - {var _aRE_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$392); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRE_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5399$5); - var - _aRF_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aRG_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$4), - _aRH_=caml_call2(Runtime_ocaml_Runtime[104],_aRG_,_aRF_), - _aRI_=caml_call1(Runtime_ocaml_Runtime[31],cst_5399$6); - return caml_call2(Runtime_ocaml_Runtime[93],_aRI_,_aRH_)} - function _aRy_(param) - {var - _aRz_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aRA_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aRz_), - _aRB_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aRC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRB_), - _aRD_=caml_call2(Runtime_ocaml_Runtime[83],_aRC_,_aRA_); - return caml_call2(Runtime_ocaml_Runtime[29],_LS_,_aRD_)} + (Runtime_ocaml_Runtime[28], _ts_, Runtime_ocaml_Runtime[13], _aZ9_); + } + catch(_a1x_){ + var _aZ6_ = caml_wrap_exception(_a1x_); + if(_aZ6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tp_], 1); + throw caml_maybe_attach_backtrace(_aZ6_, 0); + } + try{ + var + _aZ$_ = function(param){return ressources_menage_arrondies;}, + _a0a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tu_, 1); + }, + _a0b_ = caml_call4(Runtime_ocaml_Runtime[63], _tv_, [0], _a0a_, _aZ$_), + calcul_apl_locatif_dot_ressour = + caml_call3 + (Runtime_ocaml_Runtime[28], _tw_, Runtime_ocaml_Runtime[13], _a0b_); + } + catch(_a1w_){ + var _aZ__ = caml_wrap_exception(_a1w_); + if(_aZ__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tt_], 1); + throw caml_maybe_attach_backtrace(_aZ__, 0); + } + try{ + var + _a0d_ = function(param){return beneficiaire_aide_adulte_ou_en;}, + _a0e_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ty_, 1); + }, + _a0f_ = caml_call4(Runtime_ocaml_Runtime[63], _tz_, [0], _a0e_, _a0d_), + calcul_apl_locatif_dot_benefic = + caml_call3 + (Runtime_ocaml_Runtime[28], _tA_, Runtime_ocaml_Runtime[12], _a0f_); + } + catch(_a1v_){ + var _a0c_ = caml_wrap_exception(_a1v_); + if(_a0c_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tx_], 1); + throw caml_maybe_attach_backtrace(_a0c_, 0); + } + try{ + var + _a0h_ = function(param){return date_courante;}, + _a0i_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tC_, 1); + }, + _a0j_ = caml_call4(Runtime_ocaml_Runtime[63], _tD_, [0], _a0i_, _a0h_), + calcul_apl_locatif_dot_date_co = + caml_call3 + (Runtime_ocaml_Runtime[28], _tE_, Runtime_ocaml_Runtime[16], _a0j_); + } + catch(_a1u_){ + var _a0g_ = caml_wrap_exception(_a1u_); + if(_a0g_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tB_], 1); + throw caml_maybe_attach_backtrace(_a0g_, 0); + } + try{ + var + _a0l_ = function(param){return nombre_personnes_a_charge;}, + _a0m_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tG_, 1); + }, + _a0n_ = caml_call4(Runtime_ocaml_Runtime[63], _tH_, [0], _a0m_, _a0l_), + calcul_apl_locatif_dot_nombre_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _tI_, Runtime_ocaml_Runtime[14], _a0n_); + } + catch(_a1t_){ + var _a0k_ = caml_wrap_exception(_a1t_); + if(_a0k_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tF_], 1); + throw caml_maybe_attach_backtrace(_a0k_, 0); + } + try{ + var + _a0p_ = function(param){return situation_familiale_calcul_apl;}, + _a0q_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tK_, 1); + }, + _a0r_ = caml_call4(Runtime_ocaml_Runtime[63], _tL_, [0], _a0q_, _a0p_), + calcul_apl_locatif_dot_situati = + caml_call3 + (Runtime_ocaml_Runtime[28], + _tM_, + embed_situation_familiale_calc, + _a0r_); + } + catch(_a1s_){ + var _a0o_ = caml_wrap_exception(_a1s_); + if(_a0o_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tJ_], 1); + throw caml_maybe_attach_backtrace(_a0o_, 0); + } + try{ + var + _a0t_ = function(param){return zone;}, + _a0u_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tO_, 1); + }, + _a0v_ = caml_call4(Runtime_ocaml_Runtime[63], _tP_, [0], _a0u_, _a0t_), + calcul_apl_locatif_dot_zone = + caml_call3 + (Runtime_ocaml_Runtime[28], _tQ_, embed_zone_d_habitation, _a0v_); + } + catch(_a1r_){ + var _a0s_ = caml_wrap_exception(_a1r_); + if(_a0s_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tN_], 1); + throw caml_maybe_attach_backtrace(_a0s_, 0); + } + try{ + var + _a0x_ = function(param){return logement_est_chambre;}, + _a0y_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tS_, 1); + }, + _a0z_ = caml_call4(Runtime_ocaml_Runtime[63], _tT_, [0], _a0y_, _a0x_), + calcul_apl_locatif_dot_logemen = + caml_call3 + (Runtime_ocaml_Runtime[28], _tU_, Runtime_ocaml_Runtime[12], _a0z_); + } + catch(_a1q_){ + var _a0w_ = caml_wrap_exception(_a1q_); + if(_a0w_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tR_], 1); + throw caml_maybe_attach_backtrace(_a0w_, 0); + } + try{ + var + _a0B_ = function(param){return agees_ou_handicap_adultes_hebe;}, + _a0C_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _tW_, 1); + }, + _a0D_ = caml_call4(Runtime_ocaml_Runtime[63], _tX_, [0], _a0C_, _a0B_), + calcul_apl_locatif_dot_agees_o = + caml_call3 + (Runtime_ocaml_Runtime[28], _tY_, Runtime_ocaml_Runtime[12], _a0D_); + } + catch(_a1p_){ + var _a0A_ = caml_wrap_exception(_a1p_); + if(_a0A_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tV_], 1); + throw caml_maybe_attach_backtrace(_a0A_, 0); + } + try{ + var + _a0F_ = function(param){return type_aide;}, + _a0G_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t0_, 1); + }, + _a0H_ = caml_call4(Runtime_ocaml_Runtime[63], _t1_, [0], _a0G_, _a0F_), + calcul_apl_locatif_dot_type_ai = + caml_call3 + (Runtime_ocaml_Runtime[28], + _t2_, + embed_type_aides_personnelle_l, + _a0H_); + } + catch(_a1o_){ + var _a0E_ = caml_wrap_exception(_a1o_); + if(_a0E_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _tZ_], 1); + throw caml_maybe_attach_backtrace(_a0E_, 0); + } + try{ + var + _a0J_ = function(param){return colocation;}, + _a0K_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t4_, 1); + }, + _a0L_ = caml_call4(Runtime_ocaml_Runtime[63], _t5_, [0], _a0K_, _a0J_), + calcul_apl_locatif_dot_colocat = + caml_call3 + (Runtime_ocaml_Runtime[28], _t6_, Runtime_ocaml_Runtime[12], _a0L_); + } + catch(_a1n_){ + var _a0I_ = caml_wrap_exception(_a1n_); + if(_a0I_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t3_], 1); + throw caml_maybe_attach_backtrace(_a0I_, 0); + } + try{ + var + _a0N_ = function(param){return reduction_loyer_solidarite;}, + _a0O_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _t8_, 1); + }, + _a0P_ = caml_call4(Runtime_ocaml_Runtime[63], _t9_, [0], _a0O_, _a0N_), + calcul_apl_locatif_dot_reducti = + caml_call3 + (Runtime_ocaml_Runtime[28], _t__, Runtime_ocaml_Runtime[13], _a0P_); + } + catch(_a1m_){ + var _a0M_ = caml_wrap_exception(_a1m_); + if(_a0M_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t7_], 1); + throw caml_maybe_attach_backtrace(_a0M_, 0); + } + try{ + var + _a0R_ = function(param){return logement_meuble_d842_2;}, + _a0S_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ua_, 1); + }, + _a0T_ = caml_call4(Runtime_ocaml_Runtime[63], _ub_, [0], _a0S_, _a0R_), + calcul_apl_locatif_dot_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _uc_, Runtime_ocaml_Runtime[12], _a0T_); + } + catch(_a1l_){ + var _a0Q_ = caml_wrap_exception(_a1l_); + if(_a0Q_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _t$_], 1); + throw caml_maybe_attach_backtrace(_a0Q_, 0); + } + try{ + var + _a0V_ = function(param){return residence;}, + _a0W_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ue_, 1); + }, + _a0X_ = caml_call4(Runtime_ocaml_Runtime[63], _uf_, [0], _a0W_, _a0V_), + calcul_apl_locatif_dot_residen = + caml_call3(Runtime_ocaml_Runtime[28], _ug_, embed_collectivite, _a0X_); + } + catch(_a1k_){ + var _a0U_ = caml_wrap_exception(_a1k_); + if(_a0U_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ud_], 1); + throw caml_maybe_attach_backtrace(_a0U_, 0); + } + var + _a0Y_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uh_, calcul_aide_personnalisee_loge), + [0, + calcul_apl_locatif_dot_loyer_p, + calcul_apl_locatif_dot_ressour, + calcul_apl_locatif_dot_benefic, + calcul_apl_locatif_dot_date_co, + calcul_apl_locatif_dot_nombre_, + calcul_apl_locatif_dot_situati, + calcul_apl_locatif_dot_zone, + calcul_apl_locatif_dot_logemen, + calcul_apl_locatif_dot_agees_o, + calcul_apl_locatif_dot_type_ai, + calcul_apl_locatif_dot_colocat, + calcul_apl_locatif_dot_reducti, + calcul_apl_locatif_dot_logemen$0, + calcul_apl_locatif_dot_residen]), + result = caml_call2(Runtime_ocaml_Runtime[27], _ui_, _a0Y_), + calcul_apl_locatif_dot_aide_fi = result[6], + calcul_apl_locatif_dot_traitem = result[7]; + function _a0Z_(aide_finale){ + try{ + var + _a0$_ = + function(param){ + var + _a1h_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _uk_, + Runtime_ocaml_Runtime[13], + aide_finale), + _a1i_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ul_, + calcul_apl_locatif_dot_traitem), + _a1h_), + _a1j_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _um_, + Runtime_ocaml_Runtime[13], + _a1i_); + return caml_call2(Runtime_ocaml_Runtime[27], _un_, _a1j_); + }, + _a1a_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uo_, 1); + }, + _a1b_ = + [0, + function(param){ + function _a1e_(param){return aide_finale;} + function _a1f_(param){ + if(0 === changement_logement_d842_4[0]) + var + infos = changement_logement_d842_4[1], + _a1g_ = + caml_call2 + (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); + else + var _a1g_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _up_, _a1g_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _uq_, [0], _a1f_, _a1e_); + }], + _a1c_ = + caml_call4(Runtime_ocaml_Runtime[63], _ur_, _a1b_, _a1a_, _a0$_); + return _a1c_; + } + catch(_a1d_){ + var _a0__ = caml_wrap_exception(_a1d_); + if(_a0__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uj_], 1); + throw caml_maybe_attach_backtrace(_a0__, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _us_, Runtime_ocaml_Runtime[10], _a0Z_); + try{ + var + _a01_ = function(param){return calcul_apl_locatif_dot_aide_fi;}, + _a02_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uu_, 1); + }, + _a03_ = + [0, + function(param){ + function _a06_(param){ + if(0 !== changement_logement_d842_4[0]) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$246); + var + infos = changement_logement_d842_4[1], + _a09_ = caml_call2(Runtime_ocaml_Runtime[98], infos[1], infos[2]); + return caml_call2 + (Runtime_ocaml_Runtime[98], loyer_principal, _a09_); + } + function _a07_(param){ + if(0 === changement_logement_d842_4[0]) + var + infos = changement_logement_d842_4[1], + _a08_ = + caml_call2 + (Runtime_ocaml_Runtime[128], loyer_principal, infos[1]); + else + var _a08_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _uv_, _a08_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _uw_, [0], _a07_, _a06_); + }], + _a04_ = caml_call4(Runtime_ocaml_Runtime[63], _ux_, _a03_, _a02_, _a01_); + } + catch(_a05_){ + var _a00_ = caml_wrap_exception(_a05_); + if(_a00_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ut_], 1); + throw caml_maybe_attach_backtrace(_a00_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _uy_, Runtime_ocaml_Runtime[13], _a04_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ + var + type_logement_foyer = calcul_allocation_logement_foy[1], + date_conventionnement = calcul_allocation_logement_foy[2], + residence = calcul_allocation_logement_foy[3], + redevance = calcul_allocation_logement_foy[4], + ressources_menage_arrondies = calcul_allocation_logement_foy[5], + nombre_personnes_a_charge = calcul_allocation_logement_foy[6], + situation_familiale_calcul_apl = calcul_allocation_logement_foy[7], + zone = calcul_allocation_logement_foy[8], + date_courante = calcul_allocation_logement_foy[9], + categorie_equivalence_loyer_d8 = calcul_allocation_logement_foy[10]; + try{ + var + _aRf_ = function(param){return 1;}, + _aRg_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uA_, 1); + }, + _aRh_ = caml_call4(Runtime_ocaml_Runtime[63], _uB_, [0], _aRg_, _aRf_), + calcul_nombre_parts_dot_condit = + caml_call3 + (Runtime_ocaml_Runtime[28], _uC_, Runtime_ocaml_Runtime[12], _aRh_); + } + catch(_aZ5_){ + var _aRe_ = caml_wrap_exception(_aZ5_); + if(_aRe_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uz_], 1); + throw caml_maybe_attach_backtrace(_aRe_, 0); + } + try{ + var + _aRj_ = function(param){return nombre_personnes_a_charge;}, + _aRk_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uE_, 1); + }, + _aRl_ = caml_call4(Runtime_ocaml_Runtime[63], _uF_, [0], _aRk_, _aRj_), + calcul_nombre_parts_dot_nombre = + caml_call3 + (Runtime_ocaml_Runtime[28], _uG_, Runtime_ocaml_Runtime[14], _aRl_); + } + catch(_aZ4_){ + var _aRi_ = caml_wrap_exception(_aZ4_); + if(_aRi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uD_], 1); + throw caml_maybe_attach_backtrace(_aRi_, 0); + } + try{ + var + _aRn_ = function(param){return situation_familiale_calcul_apl;}, + _aRo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uI_, 1); + }, + _aRp_ = caml_call4(Runtime_ocaml_Runtime[63], _uJ_, [0], _aRo_, _aRn_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _uK_, + embed_situation_familiale_calc, + _aRp_); + } + catch(_aZ3_){ + var _aRm_ = caml_wrap_exception(_aZ3_); + if(_aRm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uH_], 1); + throw caml_maybe_attach_backtrace(_aRm_, 0); + } + try{ + var + _aRr_ = function(param){return residence;}, + _aRs_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uM_, 1); + }, + _aRt_ = caml_call4(Runtime_ocaml_Runtime[63], _uN_, [0], _aRs_, _aRr_), + calcul_nombre_parts_dot_reside = + caml_call3(Runtime_ocaml_Runtime[28], _uO_, embed_collectivite, _aRt_); + } + catch(_aZ2_){ + var _aRq_ = caml_wrap_exception(_aZ2_); + if(_aRq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uL_], 1); + throw caml_maybe_attach_backtrace(_aRq_, 0); + } + function calcul_nombre_parts_dot_limita(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _aRu_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uP_, calcul_nombre_part_logement_fo), + [0, + calcul_nombre_parts_dot_condit, + calcul_nombre_parts_dot_nombre, + calcul_nombre_parts_dot_situat, + calcul_nombre_parts_dot_reside, + calcul_nombre_parts_dot_limita]), + result = caml_call2(Runtime_ocaml_Runtime[27], _uQ_, _aRu_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _aRw_ = function(param){return date_courante;}, + _aRx_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uS_, 1); + }, + _aRy_ = caml_call4(Runtime_ocaml_Runtime[63], _uT_, [0], _aRx_, _aRw_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _uU_, Runtime_ocaml_Runtime[16], _aRy_); + } + catch(_aZ1_){ + var _aRv_ = caml_wrap_exception(_aZ1_); + if(_aRv_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uR_], 1); + throw caml_maybe_attach_backtrace(_aRv_, 0); + } + var + _aRz_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _uV_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _uW_, _aRz_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _aRB_ = function(param){return type_logement_foyer;}, + _aRC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _uY_, 1); + }, + _aRD_ = caml_call4(Runtime_ocaml_Runtime[63], _uZ_, [0], _aRC_, _aRB_), + calcul_apl_logement_foyer_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _u0_, embed_type_logement_foyer, _aRD_); + } + catch(_aZ0_){ + var _aRA_ = caml_wrap_exception(_aZ0_); + if(_aRA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _uX_], 1); + throw caml_maybe_attach_backtrace(_aRA_, 0); + } + try{ + var + _aRF_ = function(param){return date_conventionnement;}, + _aRG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u2_, 1); + }, + _aRH_ = caml_call4(Runtime_ocaml_Runtime[63], _u3_, [0], _aRG_, _aRF_), + calcul_apl_logement_foyer_dot_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _u4_, Runtime_ocaml_Runtime[16], _aRH_); + } + catch(_aZZ_){ + var _aRE_ = caml_wrap_exception(_aZZ_); + if(_aRE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u1_], 1); + throw caml_maybe_attach_backtrace(_aRE_, 0); + } + try{ + var + _aRJ_ = function(param){return ressources_menage_arrondies;}, + _aRK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u6_, 1); + }, + _aRL_ = caml_call4(Runtime_ocaml_Runtime[63], _u7_, [0], _aRK_, _aRJ_), + calcul_apl_logement_foyer_dot_$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _u8_, Runtime_ocaml_Runtime[13], _aRL_); + } + catch(_aZY_){ + var _aRI_ = caml_wrap_exception(_aZY_); + if(_aRI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u5_], 1); + throw caml_maybe_attach_backtrace(_aRI_, 0); + } + try{ + var + _aRN_ = function(param){return nombre_personnes_a_charge;}, + _aRO_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _u__, 1); + }, + _aRP_ = caml_call4(Runtime_ocaml_Runtime[63], _u$_, [0], _aRO_, _aRN_), + calcul_apl_logement_foyer_dot_$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _va_, Runtime_ocaml_Runtime[14], _aRP_); + } + catch(_aZX_){ + var _aRM_ = caml_wrap_exception(_aZX_); + if(_aRM_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _u9_], 1); + throw caml_maybe_attach_backtrace(_aRM_, 0); + } + try{ + var + _aRR_ = function(param){return situation_familiale_calcul_apl;}, + _aRS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vc_, 1); + }, + _aRT_ = caml_call4(Runtime_ocaml_Runtime[63], _vd_, [0], _aRS_, _aRR_), + calcul_apl_logement_foyer_dot_$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _ve_, + embed_situation_familiale_calc, + _aRT_); + } + catch(_aZW_){ + var _aRQ_ = caml_wrap_exception(_aZW_); + if(_aRQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vb_], 1); + throw caml_maybe_attach_backtrace(_aRQ_, 0); + } + try{ + var + _aRV_ = function(param){return zone;}, + _aRW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vg_, 1); + }, + _aRX_ = caml_call4(Runtime_ocaml_Runtime[63], _vh_, [0], _aRW_, _aRV_), + calcul_apl_logement_foyer_dot_$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vi_, embed_zone_d_habitation, _aRX_); + } + catch(_aZV_){ + var _aRU_ = caml_wrap_exception(_aZV_); + if(_aRU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vf_], 1); + throw caml_maybe_attach_backtrace(_aRU_, 0); + } + try{ + var + _aRZ_ = function(param){return date_courante;}, + _aR0_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vk_, 1); + }, + _aR1_ = caml_call4(Runtime_ocaml_Runtime[63], _vl_, [0], _aR0_, _aRZ_), + calcul_apl_logement_foyer_dot_$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vm_, Runtime_ocaml_Runtime[16], _aR1_); + } + catch(_aZU_){ + var _aRY_ = caml_wrap_exception(_aZU_); + if(_aRY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vj_], 1); + throw caml_maybe_attach_backtrace(_aRY_, 0); + } + try{ + var + _aR3_ = function(param){return redevance;}, + _aR4_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vo_, 1); + }, + _aR5_ = caml_call4(Runtime_ocaml_Runtime[63], _vp_, [0], _aR4_, _aR3_), + calcul_apl_logement_foyer_dot_$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _vq_, Runtime_ocaml_Runtime[13], _aR5_); + } + catch(_aZT_){ + var _aR2_ = caml_wrap_exception(_aZT_); + if(_aR2_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vn_], 1); + throw caml_maybe_attach_backtrace(_aR2_, 0); + } + try{ + var + _aR7_ = function(param){return residence;}, + _aR8_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vs_, 1); + }, + _aR9_ = caml_call4(Runtime_ocaml_Runtime[63], _vt_, [0], _aR8_, _aR7_), + calcul_apl_logement_foyer_dot_$7 = + caml_call3(Runtime_ocaml_Runtime[28], _vu_, embed_collectivite, _aR9_); + } + catch(_aZS_){ + var _aR6_ = caml_wrap_exception(_aZS_); + if(_aR6_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vr_], 1); + throw caml_maybe_attach_backtrace(_aR6_, 0); + } + function calcul_apl_logement_foyer_dot_$8(param){ + function _aZP_(param){return 1;} + function _aZQ_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _vv_, 1); + } + var + _aZR_ = caml_call4(Runtime_ocaml_Runtime[63], _vw_, [0], _aZQ_, _aZP_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _vx_, + Runtime_ocaml_Runtime[12], + _aZR_); + } + function calcul_apl_logement_foyer_dot_$9(param){ + function _aZL_(param){return 1;} + function _aZM_(param){ + switch(residence[0]){ + case 0: + var _aZO_ = 1; break; + case 1: + var _aZO_ = 1; break; + case 2: + var _aZO_ = 1; break; + case 3: + var _aZO_ = 1; break; + case 4: + var _aZO_ = 0; break; + case 5: + var _aZO_ = 0; break; + case 6: + var _aZO_ = 0; break; + case 7: + var _aZO_ = 0; break; + default: var _aZO_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _vy_, _aZO_); + } + var + _aZN_ = caml_call4(Runtime_ocaml_Runtime[63], _vz_, [0], _aZM_, _aZL_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _vA_, + Runtime_ocaml_Runtime[12], + _aZN_); + } + function calcul_apl_logement_foyer_dot_$10(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _aR__ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _vB_, calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _vC_, _aR__), + calcul_apl_logement_foyer_dot_$11 = result$1[7]; + try{ + var + _aSa_ = + function(param){ + function _aZw_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aZx_(param){return 0;} + var + _aZy_ = + [0, + function(param){ + function _aZz_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aZA_(param){ + var + _aZJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aZK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _vE_, _aZK_); + } + var + _aZB_ = + [0, + function(param){ + function _aZC_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aZD_(param){ + var + _aZE_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aZF_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZE_), + _aZG_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aZH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZG_), + _aZI_ = caml_call2(Runtime_ocaml_Runtime[83], _aZH_, _aZF_); + return caml_call2(Runtime_ocaml_Runtime[29], _vF_, _aZI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _vG_, [0], _aZD_, _aZC_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_LT_,[0],_aRy_,_aRx_)} - function _aRc_(param) - {function _aRm_(param) - {var _aRt_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$393); - if - (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRt_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5422$5); + (Runtime_ocaml_Runtime[63], _vH_, _aZB_, _aZA_, _aZz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vI_, _aZy_, _aZx_, _aZw_); + }, + _aSb_ = function(param){return 1;}, + _aSc_ = + [0, + function(param){ + function _aYt_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aYu_(param){return 0;} + var + _aYv_ = + [0, + function(param){ + function _aYw_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$47); + } + function _aYx_(param){ var - _aRu_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$4), - _aRv_= + _aZm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$48), + _aZn_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZm_); + switch(residence[0]){ + case 0: + var _aZo_ = 1; break; + case 1: + var _aZo_ = 0; break; + case 2: + var _aZo_ = 1; break; + case 3: + var _aZo_ = 1; break; + case 4: + var _aZo_ = 1; break; + case 5: + var _aZo_ = 1; break; + case 6: + var _aZo_ = 0; break; + case 7: + var _aZo_ = 0; break; + default: var _aZo_ = 1; + } + var + _aZp_ = caml_call2(Runtime_ocaml_Runtime[83], _aZo_, _aZn_), + _aZq_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aZr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZq_), + _aZs_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aZt_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZs_), + _aZu_ = caml_call2(Runtime_ocaml_Runtime[83], _aZt_, _aZr_), + _aZv_ = caml_call2(Runtime_ocaml_Runtime[83], _aZu_, _aZp_); + return caml_call2(Runtime_ocaml_Runtime[29], _vJ_, _aZv_); + } + var + _aYy_ = + [0, + function(param){ + function _aYz_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$49); + } + function _aYA_(param){ + var + _aZc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$50), + _aZd_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aZc_); + switch(residence[0]){ + case 0: + var _aZe_ = 1; break; + case 1: + var _aZe_ = 0; break; + case 2: + var _aZe_ = 1; break; + case 3: + var _aZe_ = 1; break; + case 4: + var _aZe_ = 1; break; + case 5: + var _aZe_ = 1; break; + case 6: + var _aZe_ = 0; break; + case 7: + var _aZe_ = 0; break; + default: var _aZe_ = 1; + } + var + _aZf_ = caml_call2(Runtime_ocaml_Runtime[83], _aZe_, _aZd_), + _aZg_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aZh_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aZg_), + _aZi_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aZj_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aZi_), + _aZk_ = caml_call2(Runtime_ocaml_Runtime[83], _aZj_, _aZh_), + _aZl_ = caml_call2(Runtime_ocaml_Runtime[83], _aZk_, _aZf_); + return caml_call2(Runtime_ocaml_Runtime[29], _vK_, _aZl_); + } + var + _aYB_ = + [0, + function(param){ + function _aYC_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$51); + } + function _aYD_(param){ + var + _aY4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$52), + _aY5_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aY4_); + switch(residence[0]){ + case 0: + var _aY6_ = 1; break; + case 1: + var _aY6_ = 0; break; + case 2: + var _aY6_ = 1; break; + case 3: + var _aY6_ = 1; break; + case 4: + var _aY6_ = 1; break; + case 5: + var _aY6_ = 1; break; + case 6: + var _aY6_ = 0; break; + case 7: + var _aY6_ = 0; break; + default: var _aY6_ = 1; + } + var + _aY7_ = caml_call2(Runtime_ocaml_Runtime[83], _aY6_, _aY5_), + _aY8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aY9_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aY8_), + _aY__ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aY$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aY__), + _aZa_ = caml_call2(Runtime_ocaml_Runtime[83], _aY$_, _aY9_), + _aZb_ = caml_call2(Runtime_ocaml_Runtime[83], _aZa_, _aY7_); + return caml_call2(Runtime_ocaml_Runtime[29], _vL_, _aZb_); + } + var + _aYE_ = + [0, + function(param){ + function _aYF_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$53); + } + function _aYG_(param){ + var + _aYU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$54), + _aYV_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aYU_); + switch(residence[0]){ + case 0: + var _aYW_ = 1; break; + case 1: + var _aYW_ = 0; break; + case 2: + var _aYW_ = 1; break; + case 3: + var _aYW_ = 1; break; + case 4: + var _aYW_ = 1; break; + case 5: + var _aYW_ = 1; break; + case 6: + var _aYW_ = 0; break; + case 7: + var _aYW_ = 0; break; + default: var _aYW_ = 1; + } + var + _aYX_ = caml_call2(Runtime_ocaml_Runtime[83], _aYW_, _aYV_), + _aYY_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYZ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYY_), + _aY0_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aY1_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aY0_), + _aY2_ = caml_call2(Runtime_ocaml_Runtime[83], _aY1_, _aYZ_), + _aY3_ = caml_call2(Runtime_ocaml_Runtime[83], _aY2_, _aYX_); + return caml_call2(Runtime_ocaml_Runtime[29], _vM_, _aY3_); + } + var + _aYH_ = + [0, + function(param){ + function _aYI_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$55); + } + function _aYJ_(param){ + var + _aYK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$56), + _aYL_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aYK_); + switch(residence[0]){ + case 0: + var _aYM_ = 1; break; + case 1: + var _aYM_ = 0; break; + case 2: + var _aYM_ = 1; break; + case 3: + var _aYM_ = 1; break; + case 4: + var _aYM_ = 1; break; + case 5: + var _aYM_ = 1; break; + case 6: + var _aYM_ = 0; break; + case 7: + var _aYM_ = 0; break; + default: var _aYM_ = 1; + } + var + _aYN_ = caml_call2(Runtime_ocaml_Runtime[83], _aYM_, _aYL_), + _aYO_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aYP_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYO_), + _aYQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aYR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYQ_), + _aYS_ = caml_call2(Runtime_ocaml_Runtime[83], _aYR_, _aYP_), + _aYT_ = caml_call2(Runtime_ocaml_Runtime[83], _aYS_, _aYN_); + return caml_call2(Runtime_ocaml_Runtime[29], _vN_, _aYT_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _vO_, [0], _aYJ_, _aYI_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vP_, _aYH_, _aYG_, _aYF_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vQ_, _aYE_, _aYD_, _aYC_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vR_, _aYB_, _aYA_, _aYz_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vS_, _aYy_, _aYx_, _aYw_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _vT_, _aYv_, _aYu_, _aYt_); + }], + _aSd_ = caml_call4(Runtime_ocaml_Runtime[63], _vU_, _aSc_, _aSb_, _aSa_); + } + catch(_aYs_){ + var _aR$_ = caml_wrap_exception(_aYs_); + if(_aR$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vD_], 1); + throw caml_maybe_attach_backtrace(_aR$_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _vV_, Runtime_ocaml_Runtime[15], _aSd_); + try{ + var + _aSf_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$0); + }, + _aSg_ = + function(param){ + var + _aYq_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aYr_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYq_); + return caml_call2(Runtime_ocaml_Runtime[29], _vX_, _aYr_); + }, + _aSh_ = caml_call4(Runtime_ocaml_Runtime[63], _vY_, [0], _aSg_, _aSf_); + } + catch(_aYp_){ + var _aSe_ = caml_wrap_exception(_aYp_); + if(_aSe_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _vW_], 1); + throw caml_maybe_attach_backtrace(_aSe_, 0); + } + var + montant_minimal_depense_nette_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _vZ_, Runtime_ocaml_Runtime[13], _aSh_); + try{ + var + _aSj_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$2); + }, + _aSk_ = + function(param){ + var + _aYn_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aYo_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYn_); + return caml_call2(Runtime_ocaml_Runtime[29], _v1_, _aYo_); + }, + _aSl_ = caml_call4(Runtime_ocaml_Runtime[63], _v2_, [0], _aSk_, _aSj_); + } + catch(_aYm_){ + var _aSi_ = caml_wrap_exception(_aYm_); + if(_aSi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v0_], 1); + throw caml_maybe_attach_backtrace(_aSi_, 0); + } + var + montant_forfaitaire_d842_15 = + caml_call3 + (Runtime_ocaml_Runtime[28], _v3_, Runtime_ocaml_Runtime[13], _aSl_); + try{ + var + _aSn_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$3); + }, + _aSo_ = + function(param){ + var + _aYk_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aYl_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYk_); + return caml_call2(Runtime_ocaml_Runtime[29], _v5_, _aYl_); + }, + _aSp_ = caml_call4(Runtime_ocaml_Runtime[63], _v6_, [0], _aSo_, _aSn_); + } + catch(_aYj_){ + var _aSm_ = caml_wrap_exception(_aYj_); + if(_aSm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v4_], 1); + throw caml_maybe_attach_backtrace(_aSm_, 0); + } + var + montant_minimal_aide_d842_15 = + caml_call3 + (Runtime_ocaml_Runtime[28], _v7_, Runtime_ocaml_Runtime[13], _aSp_); + try{ + var + _aSr_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _aSs_ = function(param){return 0;}, + _aSt_ = + function(param){ + function _aX2_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26329); + } + function _aX3_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aYc_ = 0; break; + case 1: + var _aYc_ = 1; break; + case 2: + var _aYc_ = 0; break; + default: var _aYc_ = 0; + } + var + _aYd_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aYe_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aYd_), + _aYf_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aYg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aYf_), + _aYh_ = caml_call2(Runtime_ocaml_Runtime[83], _aYg_, _aYe_), + _aYi_ = caml_call2(Runtime_ocaml_Runtime[83], _aYh_, _aYc_); + return caml_call2(Runtime_ocaml_Runtime[29], _v9_, _aYi_); + } + var + _aX4_ = + [0, + function(param){ + function _aX5_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_16941$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26329$0); + } + function _aX6_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aX7_ = 0; break; + case 1: + var _aX7_ = 0; break; + case 2: + var _aX7_ = 0; break; + default: var _aX7_ = 1; + } + var + _aX8_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aX9_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aX8_), + _aX__ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aX$_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aX__), + _aYa_ = caml_call2(Runtime_ocaml_Runtime[83], _aX$_, _aX9_), + _aYb_ = caml_call2(Runtime_ocaml_Runtime[83], _aYa_, _aX7_); + return caml_call2(Runtime_ocaml_Runtime[29], _v__, _aYb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _v$_, [0], _aX6_, _aX5_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wa_, _aX4_, _aX3_, _aX2_); + }, + _aSu_ = + function(param){ + function _aXT_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20554) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31939); + } + function _aXU_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXV_ = 0; break; + case 1: + var _aXV_ = 0; break; + case 2: + var _aXV_ = 1; break; + default: var _aXV_ = 0; + } + var + _aXW_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXX_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXW_), + _aXY_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aXZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXY_), + _aX0_ = caml_call2(Runtime_ocaml_Runtime[83], _aXZ_, _aXX_), + _aX1_ = caml_call2(Runtime_ocaml_Runtime[83], _aX0_, _aXV_); + return caml_call2(Runtime_ocaml_Runtime[29], _wb_, _aX1_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wc_, [0], _aXU_, _aXT_); + }, + _aSv_ = + function(param){ + function _aXK_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8379) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13045); + } + function _aXL_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXM_ = 1; break; + case 1: + var _aXM_ = 0; break; + case 2: + var _aXM_ = 0; break; + default: var _aXM_ = 0; + } + var + _aXN_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXO_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXN_), + _aXP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aXQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXP_), + _aXR_ = caml_call2(Runtime_ocaml_Runtime[83], _aXQ_, _aXO_), + _aXS_ = caml_call2(Runtime_ocaml_Runtime[83], _aXR_, _aXM_); + return caml_call2(Runtime_ocaml_Runtime[29], _wd_, _aXS_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _we_, [0], _aXL_, _aXK_); + }, + _aSw_ = + function(param){ + function _aXr_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26440); + } + function _aXs_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXD_ = 0; break; + case 1: + var _aXD_ = 1; break; + case 2: + var _aXD_ = 0; break; + default: var _aXD_ = 0; + } + var + _aXE_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXF_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXE_), + _aXG_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXG_), + _aXI_ = caml_call2(Runtime_ocaml_Runtime[83], _aXH_, _aXF_), + _aXJ_ = caml_call2(Runtime_ocaml_Runtime[83], _aXI_, _aXD_); + return caml_call2(Runtime_ocaml_Runtime[29], _wf_, _aXJ_); + } + var + _aXt_ = + [0, + function(param){ + function _aXu_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17012$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26440$0); + } + function _aXv_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXw_ = 0; break; + case 1: + var _aXw_ = 0; break; + case 2: + var _aXw_ = 0; break; + default: var _aXw_ = 1; + } + var + _aXx_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXy_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXx_), + _aXz_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXz_), + _aXB_ = caml_call2(Runtime_ocaml_Runtime[83], _aXA_, _aXy_), + _aXC_ = caml_call2(Runtime_ocaml_Runtime[83], _aXB_, _aXw_); + return caml_call2(Runtime_ocaml_Runtime[29], _wg_, _aXC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wh_, [0], _aXv_, _aXu_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wi_, _aXt_, _aXs_, _aXr_); + }, + _aSx_ = + function(param){ + function _aXi_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_20640) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32073); + } + function _aXj_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXk_ = 0; break; + case 1: + var _aXk_ = 0; break; + case 2: + var _aXk_ = 1; break; + default: var _aXk_ = 0; + } + var + _aXl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXl_), + _aXn_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXn_), + _aXp_ = caml_call2(Runtime_ocaml_Runtime[83], _aXo_, _aXm_), + _aXq_ = caml_call2(Runtime_ocaml_Runtime[83], _aXp_, _aXk_); + return caml_call2(Runtime_ocaml_Runtime[29], _wj_, _aXq_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wk_, [0], _aXj_, _aXi_); + }, + _aSy_ = + function(param){ + function _aW$_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8414) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13100); + } + function _aXa_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aXb_ = 1; break; + case 1: + var _aXb_ = 0; break; + case 2: + var _aXb_ = 0; break; + default: var _aXb_ = 0; + } + var + _aXc_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aXd_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aXc_), + _aXe_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aXf_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aXe_), + _aXg_ = caml_call2(Runtime_ocaml_Runtime[83], _aXf_, _aXd_), + _aXh_ = caml_call2(Runtime_ocaml_Runtime[83], _aXg_, _aXb_); + return caml_call2(Runtime_ocaml_Runtime[29], _wl_, _aXh_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _wm_, [0], _aXa_, _aW$_); + }, + _aSz_ = + function(param){ + function _aWY_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27365); + } + function _aWZ_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aW7_ = 0; break; + case 1: + var _aW7_ = 1; break; + case 2: + var _aW7_ = 0; break; + default: var _aW7_ = 0; + } + var + _aW8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aW9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aW8_), + _aW__ = caml_call2(Runtime_ocaml_Runtime[83], _aW9_, _aW7_); + return caml_call2(Runtime_ocaml_Runtime[29], _wn_, _aW__); + } + var + _aW0_ = + [0, + function(param){ + function _aW1_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_17607$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27365$0); + } + function _aW2_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aW3_ = 0; break; + case 1: + var _aW3_ = 0; break; + case 2: + var _aW3_ = 0; break; + default: var _aW3_ = 1; + } + var + _aW4_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aW5_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aW4_), + _aW6_ = caml_call2(Runtime_ocaml_Runtime[83], _aW5_, _aW3_); + return caml_call2(Runtime_ocaml_Runtime[29], _wo_, _aW6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wp_, [0], _aW2_, _aW1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _wq_, _aW0_, _aWZ_, _aWY_); + }, + _aSA_ = + function(param){ + function _aWS_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21362) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33196); + } + function _aWT_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aWU_ = 0; break; + case 1: + var _aWU_ = 0; break; + case 2: + var _aWU_ = 1; break; + default: var _aWU_ = 0; + } + var + _aWV_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aWW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWV_), + _aWX_ = caml_call2(Runtime_ocaml_Runtime[83], _aWW_, _aWU_); + return caml_call2(Runtime_ocaml_Runtime[29], _wr_, _aWX_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _ws_, [0], _aWT_, _aWS_); + }, + _aSB_ = + [0, + function(param){ + function _aWM_(param){ + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_8708) + : caml_call1(Runtime_ocaml_Runtime[31], cst_13559); + } + function _aWN_(param){ + switch(categorie_equivalence_loyer_d8[0]){ + case 0: + var _aWO_ = 1; break; + case 1: + var _aWO_ = 0; break; + case 2: + var _aWO_ = 0; break; + default: var _aWO_ = 0; + } + var + _aWP_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aWQ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWP_), + _aWR_ = caml_call2(Runtime_ocaml_Runtime[83], _aWQ_, _aWO_); + return caml_call2(Runtime_ocaml_Runtime[29], _wt_, _aWR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wu_, [0], _aWN_, _aWM_); + }, + _aSA_, + _aSz_, + _aSy_, + _aSx_, + _aSw_, + _aSv_, + _aSu_, + _aSt_], + _aSC_ = caml_call4(Runtime_ocaml_Runtime[63], _wv_, _aSB_, _aSs_, _aSr_); + } + catch(_aWL_){ + var _aSq_ = caml_wrap_exception(_aWL_); + if(_aSq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _v8_], 1); + throw caml_maybe_attach_backtrace(_aSq_, 0); + } + var + equivalence_loyer = + caml_call3 + (Runtime_ocaml_Runtime[28], _ww_, Runtime_ocaml_Runtime[13], _aSC_); + try{ + var + _aSE_ = function(param){return date_courante;}, + _aSF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wy_, 1); + }, + _aSG_ = caml_call4(Runtime_ocaml_Runtime[63], _wz_, [0], _aSF_, _aSE_), + calcul_equivalence_loyer_minim$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _wA_, Runtime_ocaml_Runtime[16], _aSG_); + } + catch(_aWK_){ + var _aSD_ = caml_wrap_exception(_aWK_); + if(_aSD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wx_], 1); + throw caml_maybe_attach_backtrace(_aSD_, 0); + } + try{ + var + _aSI_ = function(param){return ressources_menage_arrondies;}, + _aSJ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wC_, 1); + }, + _aSK_ = caml_call4(Runtime_ocaml_Runtime[63], _wD_, [0], _aSJ_, _aSI_), + calcul_equivalence_loyer_minim$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _wE_, Runtime_ocaml_Runtime[13], _aSK_); + } + catch(_aWJ_){ + var _aSH_ = caml_wrap_exception(_aWJ_); + if(_aSH_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wB_], 1); + throw caml_maybe_attach_backtrace(_aSH_, 0); + } + try{ + var + _aSM_ = function(param){return 1;}, + _aSN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wG_, 1); + }, + _aSO_ = caml_call4(Runtime_ocaml_Runtime[63], _wH_, [0], _aSN_, _aSM_), + calcul_equivalence_loyer_minim$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _wI_, Runtime_ocaml_Runtime[12], _aSO_); + } + catch(_aWI_){ + var _aSL_ = caml_wrap_exception(_aWI_); + if(_aSL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wF_], 1); + throw caml_maybe_attach_backtrace(_aSL_, 0); + } + try{ + var + _aSQ_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _aSR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wK_, 1); + }, + _aSS_ = caml_call4(Runtime_ocaml_Runtime[63], _wL_, [0], _aSR_, _aSQ_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _wM_, Runtime_ocaml_Runtime[15], _aSS_); + } + catch(_aWH_){ + var _aSP_ = caml_wrap_exception(_aWH_); + if(_aSP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wJ_], 1); + throw caml_maybe_attach_backtrace(_aSP_, 0); + } + var + _aST_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _wN_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _wO_, _aST_), + calcul_equivalence_loyer_minim$4 = result$2[1]; + try{ + var + _aSV_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, + _aSW_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _wQ_, 1); + }, + _aSX_ = caml_call4(Runtime_ocaml_Runtime[63], _wR_, [0], _aSW_, _aSV_); + } + catch(_aWG_){ + var _aSU_ = caml_wrap_exception(_aWG_); + if(_aSU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wP_], 1); + throw caml_maybe_attach_backtrace(_aSU_, 0); + } + var + coefficient_prise_en_charge = + caml_call3 + (Runtime_ocaml_Runtime[28], _wS_, Runtime_ocaml_Runtime[15], _aSX_); + try{ + var + _aSZ_ = + function(param){ + function _aV8_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aV9_(param){return 0;} + function _aV__(param){ + function _aWu_(param){ + var _aWB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$247); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aWB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$3); + var + _aWC_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aWD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$3), + _aWE_ = caml_call2(Runtime_ocaml_Runtime[104], _aWD_, _aWC_), + _aWF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aWF_, _aWE_); + } + function _aWv_(param){ + var + _aWw_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aWx_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWw_), + _aWy_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aWz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWy_), + _aWA_ = caml_call2(Runtime_ocaml_Runtime[83], _aWz_, _aWx_); + return caml_call2(Runtime_ocaml_Runtime[29], _wU_, _aWA_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wV_, [0], _aWv_, _aWu_); + } + function _aV$_(param){ + function _aWj_(param){ + var _aWq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$248); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aWq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$3); + var + _aWr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$3), + _aWs_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _aWr_, + multiplicateur_majoration_char), + _aWt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aWt_, _aWs_); + } + function _aWk_(param){ + var + _aWl_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aWm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aWl_), + _aWn_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aWo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWn_), + _aWp_ = caml_call2(Runtime_ocaml_Runtime[83], _aWo_, _aWm_); + return caml_call2(Runtime_ocaml_Runtime[29], _wW_, _aWp_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _wX_, [0], _aWk_, _aWj_); + } + var + _aWa_ = + [0, + function(param){ + function _aWb_(param){ + var _aWf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$249); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aWf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$3); + var + _aWg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$3), + _aWh_ = caml_call2 (Runtime_ocaml_Runtime[104], - _aRu_, + _aWg_, multiplicateur_majoration_char), - _aRw_=caml_call1(Runtime_ocaml_Runtime[31],cst_5422$6); - return caml_call2(Runtime_ocaml_Runtime[93],_aRw_,_aRv_)} - function _aRn_(param) - {var - _aRo_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aRp_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aRo_), - _aRq_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aRr_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRq_), - _aRs_=caml_call2(Runtime_ocaml_Runtime[83],_aRr_,_aRp_); - return caml_call2(Runtime_ocaml_Runtime[29],_LU_,_aRs_)} + _aWi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$4); + return caml_call2(Runtime_ocaml_Runtime[93], _aWi_, _aWh_); + } + function _aWc_(param){ + var + _aWd_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aWe_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aWd_); + return caml_call2(Runtime_ocaml_Runtime[29], _wY_, _aWe_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_LV_,[0],_aRn_,_aRm_)} + (Runtime_ocaml_Runtime[63], _wZ_, [0], _aWc_, _aWb_); + }, + _aV$_, + _aV__]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _w0_, _aWa_, _aV9_, _aV8_); + }, + _aS0_ = function(param){return 1;}, + _aS1_ = + [0, + function(param){ + function _aUw_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aUx_(param){return 0;} + function _aUy_(param){ + function _aVR_(param){ var - _aRd_= + _aV0_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aV1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$3), + _aV2_ = caml_call2(Runtime_ocaml_Runtime[104], _aV1_, _aV0_), + _aV3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$3), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aV3_, _aV2_), + _aV4_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$57), + _aV5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$4), + _aV6_ = caml_call2(Runtime_ocaml_Runtime[104], _aV5_, _aV4_), + _aV7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$4), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aV7_, _aV6_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aVS_(param){ + switch(residence[0]){ + case 0: + var _aVT_ = 1; break; + case 1: + var _aVT_ = 0; break; + case 2: + var _aVT_ = 1; break; + case 3: + var _aVT_ = 1; break; + case 4: + var _aVT_ = 1; break; + case 5: + var _aVT_ = 1; break; + case 6: + var _aVT_ = 0; break; + case 7: + var _aVT_ = 0; break; + default: var _aVT_ = 1; + } + var + _aVU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aVV_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVU_), + _aVW_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aVX_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVW_), + _aVY_ = caml_call2(Runtime_ocaml_Runtime[83], _aVX_, _aVV_), + _aVZ_ = caml_call2(Runtime_ocaml_Runtime[83], _aVY_, _aVT_); + return caml_call2(Runtime_ocaml_Runtime[29], _w1_, _aVZ_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w2_, [0], _aVS_, _aVR_); + } + function _aUz_(param){ + function _aVA_(param){ + var + _aVJ_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aVK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$3), + _aVL_ = caml_call2(Runtime_ocaml_Runtime[104], _aVK_, _aVJ_), + _aVM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$3), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aVM_, _aVL_), + _aVN_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$58), + _aVO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$4), + _aVP_ = caml_call2(Runtime_ocaml_Runtime[104], _aVO_, _aVN_), + _aVQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$4), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aVQ_, _aVP_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aVB_(param){ + switch(residence[0]){ + case 0: + var _aVC_ = 1; break; + case 1: + var _aVC_ = 0; break; + case 2: + var _aVC_ = 1; break; + case 3: + var _aVC_ = 1; break; + case 4: + var _aVC_ = 1; break; + case 5: + var _aVC_ = 1; break; + case 6: + var _aVC_ = 0; break; + case 7: + var _aVC_ = 0; break; + default: var _aVC_ = 1; + } + var + _aVD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aVE_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVD_), + _aVF_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aVG_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVF_), + _aVH_ = caml_call2(Runtime_ocaml_Runtime[83], _aVG_, _aVE_), + _aVI_ = caml_call2(Runtime_ocaml_Runtime[83], _aVH_, _aVC_); + return caml_call2(Runtime_ocaml_Runtime[29], _w3_, _aVI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w4_, [0], _aVB_, _aVA_); + } + function _aUA_(param){ + function _aU3_(param){ + var + _aVs_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aVt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$7), + _aVu_ = caml_call2(Runtime_ocaml_Runtime[104], _aVt_, _aVs_), + _aVv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$7), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aVv_, _aVu_), + _aVw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$59), + _aVx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$8), + _aVy_ = caml_call2(Runtime_ocaml_Runtime[104], _aVx_, _aVw_), + _aVz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$8), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aVz_, _aVy_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aU4_(param){ + switch(residence[0]){ + case 0: + var _aVl_ = 1; break; + case 1: + var _aVl_ = 0; break; + case 2: + var _aVl_ = 1; break; + case 3: + var _aVl_ = 1; break; + case 4: + var _aVl_ = 1; break; + case 5: + var _aVl_ = 1; break; + case 6: + var _aVl_ = 0; break; + case 7: + var _aVl_ = 0; break; + default: var _aVl_ = 1; + } + var + _aVm_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aVn_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aVm_), + _aVo_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aVp_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aVo_), + _aVq_ = caml_call2(Runtime_ocaml_Runtime[83], _aVp_, _aVn_), + _aVr_ = caml_call2(Runtime_ocaml_Runtime[83], _aVq_, _aVl_); + return caml_call2(Runtime_ocaml_Runtime[29], _w5_, _aVr_); + } + var + _aU5_ = [0, - function(param) - {function _aRe_(param) - {var _aRi_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$394); + function(param){ + function _aU6_(param){ + var + _aVd_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aVe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$9), + _aVf_ = caml_call2(Runtime_ocaml_Runtime[104], _aVe_, _aVd_), + _aVg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$9), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _aVg_, _aVf_), + _aVh_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$60), + _aVi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$10), + _aVj_ = caml_call2(Runtime_ocaml_Runtime[104], _aVi_, _aVh_), + _aVk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$10), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aVk_, _aVj_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aU7_(param){ + switch(residence[0]){ + case 0: + var _aU8_ = 1; break; + case 1: + var _aU8_ = 0; break; + case 2: + var _aU8_ = 1; break; + case 3: + var _aU8_ = 1; break; + case 4: + var _aU8_ = 1; break; + case 5: + var _aU8_ = 1; break; + case 6: + var _aU8_ = 0; break; + case 7: + var _aU8_ = 0; break; + default: var _aU8_ = 1; + } + var + _aU9_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aU__ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aU9_), + _aU$_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aVa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aU$_), + _aVb_ = caml_call2(Runtime_ocaml_Runtime[83], _aVa_, _aU__), + _aVc_ = caml_call2(Runtime_ocaml_Runtime[83], _aVb_, _aU8_); + return caml_call2(Runtime_ocaml_Runtime[29], _w6_, _aVc_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w7_, [0], _aU7_, _aU6_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _w8_, _aU5_, _aU4_, _aU3_); + } + function _aUB_(param){ + function _aUM_(param){ + var + _aUV_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aUW_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$5), + _aUX_ = caml_call2(Runtime_ocaml_Runtime[104], _aUW_, _aUV_), + _aUY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$5), + montant = caml_call2(Runtime_ocaml_Runtime[93], _aUY_, _aUX_), + _aUZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$61), + _aU0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$6), + _aU1_ = caml_call2(Runtime_ocaml_Runtime[104], _aU0_, _aUZ_), + _aU2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _aU2_, _aU1_); + return caml_call2(Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _aUN_(param){ + switch(residence[0]){ + case 0: + var _aUO_ = 1; break; + case 1: + var _aUO_ = 0; break; + case 2: + var _aUO_ = 1; break; + case 3: + var _aUO_ = 1; break; + case 4: + var _aUO_ = 1; break; + case 5: + var _aUO_ = 1; break; + case 6: + var _aUO_ = 0; break; + case 7: + var _aUO_ = 0; break; + default: var _aUO_ = 1; + } + var + _aUP_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aUQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aUP_), + _aUR_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aUS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aUR_), + _aUT_ = caml_call2(Runtime_ocaml_Runtime[83], _aUS_, _aUQ_), + _aUU_ = caml_call2(Runtime_ocaml_Runtime[83], _aUT_, _aUO_); + return caml_call2(Runtime_ocaml_Runtime[29], _w9_, _aUU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _w__, [0], _aUN_, _aUM_); + } + var + _aUC_ = + [0, + function(param){ + function _aUD_(param){ + var + _aUJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$7), + _aUK_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _aUJ_, + multiplicateur_majoration_char), + _aUL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$7); + return caml_call2(Runtime_ocaml_Runtime[93], _aUL_, _aUK_); + } + function _aUE_(param){ + switch(residence[0]){ + case 0: + var _aUF_ = 1; break; + case 1: + var _aUF_ = 0; break; + case 2: + var _aUF_ = 1; break; + case 3: + var _aUF_ = 1; break; + case 4: + var _aUF_ = 1; break; + case 5: + var _aUF_ = 1; break; + case 6: + var _aUF_ = 0; break; + case 7: + var _aUF_ = 0; break; + default: var _aUF_ = 1; + } + var + _aUG_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aUH_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aUG_), + _aUI_ = caml_call2(Runtime_ocaml_Runtime[83], _aUH_, _aUF_); + return caml_call2(Runtime_ocaml_Runtime[29], _w$_, _aUI_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _xa_, [0], _aUE_, _aUD_); + }, + _aUB_, + _aUA_, + _aUz_, + _aUy_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _xb_, _aUC_, _aUx_, _aUw_); + }], + _aS2_ = caml_call4(Runtime_ocaml_Runtime[63], _xc_, _aS1_, _aS0_, _aSZ_); + } + catch(_aUv_){ + var _aSY_ = caml_wrap_exception(_aUv_); + if(_aSY_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _wT_], 1); + throw caml_maybe_attach_backtrace(_aSY_, 0); + } + var + montant_forfaitaire_charges = + caml_call3 + (Runtime_ocaml_Runtime[28], _xd_, Runtime_ocaml_Runtime[13], _aS2_); + function _aS3_(aide_finale){ + try{ + var + _aUp_ = + function(param){ + var + _aUt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$250), + _aUu_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15); + return caml_call2(Runtime_ocaml_Runtime[113], _aUu_, _aUt_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$251) + : caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_15); + }, + _aUq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xf_, 1); + }, + _aUr_ = caml_call4(Runtime_ocaml_Runtime[63], _xg_, [0], _aUq_, _aUp_); + return _aUr_; + } + catch(_aUs_){ + var _aUo_ = caml_wrap_exception(_aUs_); + if(_aUo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xe_], 1); + throw caml_maybe_attach_backtrace(_aUo_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _xh_, Runtime_ocaml_Runtime[10], _aS3_); + try{ + var + _aS5_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _aS6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xj_, 1); + }, + _aS7_ = caml_call4(Runtime_ocaml_Runtime[63], _xk_, [0], _aS6_, _aS5_); + } + catch(_aUn_){ + var _aS4_ = caml_wrap_exception(_aUn_); + if(_aS4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xi_], 1); + throw caml_maybe_attach_backtrace(_aS4_, 0); + } + var + loyer_minimal = + caml_call3 + (Runtime_ocaml_Runtime[28], _xl_, Runtime_ocaml_Runtime[13], _aS7_); + function _aS8_(allocation_mensuelle){ + try{ + var + _aUi_ = + function(param){ + var + _aUm_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98], _aUm_, allocation_mensuelle); + }, + _aUj_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xn_, 1); + }, + _aUk_ = caml_call4(Runtime_ocaml_Runtime[63], _xo_, [0], _aUj_, _aUi_); + return _aUk_; + } + catch(_aUl_){ + var _aUh_ = caml_wrap_exception(_aUl_); + if(_aUh_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xm_], 1); + throw caml_maybe_attach_backtrace(_aUh_, 0); + } + } + var + depense_nette_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _xp_, Runtime_ocaml_Runtime[10], _aS8_); + try{ + var + _aS__ = + function(param){ + var + _aUf_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + equivalence_loyer, + montant_forfaitaire_charges), + _aUg_ = caml_call2(Runtime_ocaml_Runtime[98], _aUf_, loyer_minimal); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _aUg_, + coefficient_prise_en_charge); + }, + _aS$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xr_, 1); + }, + _aTa_ = caml_call4(Runtime_ocaml_Runtime[63], _xs_, [0], _aS$_, _aS__); + } + catch(_aUe_){ + var _aS9_ = caml_wrap_exception(_aUe_); + if(_aS9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xq_], 1); + throw caml_maybe_attach_backtrace(_aS9_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _xt_, Runtime_ocaml_Runtime[13], _aTa_); + function _aTb_(allocation_mensuelle){ + try{ + var + _aT4_ = + function(param){ + var + _aT8_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xv_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aT9_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _xw_, depense_nette_minimale), + _aT8_), + _aT__ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xx_, + Runtime_ocaml_Runtime[13], + _aT9_), + _aT$_ = caml_call2(Runtime_ocaml_Runtime[27], _xy_, _aT__); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[113], + _aT$_, + montant_minimal_depense_nette_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$252); + var + _aUa_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xz_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aUb_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _xA_, depense_nette_minimale), + _aUa_), + _aUc_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xB_, + Runtime_ocaml_Runtime[13], + _aUb_), + _aUd_ = caml_call2(Runtime_ocaml_Runtime[27], _xC_, _aUc_); + return caml_call2 + (Runtime_ocaml_Runtime[98], + montant_minimal_depense_nette_, + _aUd_); + }, + _aT5_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xD_, 1); + }, + _aT6_ = caml_call4(Runtime_ocaml_Runtime[63], _xE_, [0], _aT5_, _aT4_); + return _aT6_; + } + catch(_aT7_){ + var _aT3_ = caml_wrap_exception(_aT7_); + if(_aT3_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xu_], 1); + throw caml_maybe_attach_backtrace(_aT3_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _xF_, Runtime_ocaml_Runtime[10], _aTb_); + function _aTc_(aide_finale){ + try{ + var + _aTR_ = + function(param){ + var + _aTV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xH_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aTW_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xI_, + traitement_aide_finale_minorat), + _aTV_), + _aTX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xJ_, + Runtime_ocaml_Runtime[13], + _aTW_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xK_, _aTX_), + _aTY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xL_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aTZ_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xM_, + abattement_depense_nette_minim), + _aTY_), + _aT0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xN_, + Runtime_ocaml_Runtime[13], + _aTZ_), + abattement = caml_call2(Runtime_ocaml_Runtime[27], _xO_, _aT0_), + _aT1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$253), + _aT2_ = + caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + return caml_call2(Runtime_ocaml_Runtime[113], _aT2_, _aT1_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$254) + : caml_call2 + (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + }, + _aTS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xP_, 1); + }, + _aTT_ = caml_call4(Runtime_ocaml_Runtime[63], _xQ_, [0], _aTS_, _aTR_); + return _aTT_; + } + catch(_aTU_){ + var _aTQ_ = caml_wrap_exception(_aTU_); + if(_aTQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xG_], 1); + throw caml_maybe_attach_backtrace(_aTQ_, 0); + } + } + var + traitement_aide_finale_depense = + caml_call3 + (Runtime_ocaml_Runtime[28], _xR_, Runtime_ocaml_Runtime[10], _aTc_); + function _aTd_(aide_finale){ + try{ + var + _aTJ_ = + function(param){ + var + _aTN_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xT_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aTO_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _xU_, + traitement_aide_finale_depense), + _aTN_), + _aTP_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _xV_, + Runtime_ocaml_Runtime[13], + _aTO_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _xW_, _aTP_); + return caml_call2 + (Runtime_ocaml_Runtime[123], aide_finale$0, redevance) + ? redevance + : aide_finale$0; + }, + _aTK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _xX_, 1); + }, + _aTL_ = caml_call4(Runtime_ocaml_Runtime[63], _xY_, [0], _aTK_, _aTJ_); + return _aTL_; + } + catch(_aTM_){ + var _aTI_ = caml_wrap_exception(_aTM_); + if(_aTI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _xS_], 1); + throw caml_maybe_attach_backtrace(_aTI_, 0); + } + } + var + traitement_aide_finale_redevan = + caml_call3 + (Runtime_ocaml_Runtime[28], _xZ_, Runtime_ocaml_Runtime[10], _aTd_); + function _aTe_(aide_finale){ + try{ + var + _aTt_ = + function(param){ + var + _aTx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x1_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aTy_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _x2_, + traitement_aide_finale_redevan), + _aTx_), + _aTz_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x3_, + Runtime_ocaml_Runtime[13], + _aTy_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _x4_, _aTz_), + _aTA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x5_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aTB_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _x6_, + contributions_sociales_dot_mon), + _aTA_), + _aTC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _x7_, + Runtime_ocaml_Runtime[13], + _aTB_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _x8_, _aTC_), + _aTD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$2), + _aTE_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _aTF_ = caml_call2(Runtime_ocaml_Runtime[98], _aTE_, _aTD_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _aTF_), + _aTG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$255), + _aTH_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _aTH_, _aTG_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$256); + }, + _aTu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _x9_, 1); + }, + _aTv_ = caml_call4(Runtime_ocaml_Runtime[63], _x__, [0], _aTu_, _aTt_); + return _aTv_; + } + catch(_aTw_){ + var _aTs_ = caml_wrap_exception(_aTw_); + if(_aTs_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _x0_], 1); + throw caml_maybe_attach_backtrace(_aTs_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _x$_, Runtime_ocaml_Runtime[10], _aTe_); + function _aTf_(aide_finale){ + try{ + var + _aTl_ = + function(param){ + var + _aTp_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yb_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aTq_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _yc_, + traitement_aide_finale_contrib), + _aTp_), + _aTr_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yd_, + Runtime_ocaml_Runtime[13], + _aTq_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _ye_, _aTr_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_15) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$257) + : aide_finale$0; + }, + _aTm_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yf_, 1); + }, + _aTn_ = caml_call4(Runtime_ocaml_Runtime[63], _yg_, [0], _aTm_, _aTl_); + return _aTn_; + } + catch(_aTo_){ + var _aTk_ = caml_wrap_exception(_aTo_); + if(_aTk_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ya_], 1); + throw caml_maybe_attach_backtrace(_aTk_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _yh_, Runtime_ocaml_Runtime[10], _aTf_); + try{ + var + _aTh_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aTi_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aTh_); + } + catch(_aTj_){ + var _aTg_ = caml_wrap_exception(_aTj_); + if(_aTg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yi_], 1); + throw caml_maybe_attach_backtrace(_aTg_, 0); + } + if(_aTi_) + return [0, + coefficient_prise_en_charge, + equivalence_loyer, + montant_forfaitaire_charges, + loyer_minimal, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _yj_], 1); + } + function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ + var + ressources_menage_arrondies_ba = calcul_allocation_logement_acc[1], + nombre_personnes_a_charge = calcul_allocation_logement_acc[2], + situation_familiale_calcul_apl = calcul_allocation_logement_acc[3], + zone = calcul_allocation_logement_acc[4], + residence = calcul_allocation_logement_acc[5], + date_courante = calcul_allocation_logement_acc[6], + mensualite_principale = calcul_allocation_logement_acc[7], + situation_r822_11_13_17 = calcul_allocation_logement_acc[8], + date_signature_pret = calcul_allocation_logement_acc[9], + type_travaux_logement = calcul_allocation_logement_acc[10], + local_habite_premiere_fois_ben = calcul_allocation_logement_acc[11], + date_entree_logement = calcul_allocation_logement_acc[12], + charges_mensuelles_pret = calcul_allocation_logement_acc[13], + copropriete = calcul_allocation_logement_acc[14], + operations_logement_evolutifs_ = calcul_allocation_logement_acc[15]; + try{ + var + _anp_ = + function(param){ + var + _aRc_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6_55957$0), + _aRd_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1$179); + return caml_call2(Runtime_ocaml_Runtime[107], _aRd_, _aRc_); + }, + _anq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yl_, 1); + }, + _anr_ = caml_call4(Runtime_ocaml_Runtime[63], _ym_, [0], _anq_, _anp_); + } + catch(_aRb_){ + var _ano_ = caml_wrap_exception(_aRb_); + if(_ano_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yk_], 1); + throw caml_maybe_attach_backtrace(_ano_, 0); + } + var + taux_francs_vers_euros = + caml_call3 + (Runtime_ocaml_Runtime[28], _yn_, Runtime_ocaml_Runtime[15], _anr_); + try{ + var + _ant_ = function(param){return nombre_personnes_a_charge;}, + _anu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yp_, 1); + }, + _anv_ = caml_call4(Runtime_ocaml_Runtime[63], _yq_, [0], _anu_, _ant_), + calcul_nombre_parts_dot_nombre = + caml_call3 + (Runtime_ocaml_Runtime[28], _yr_, Runtime_ocaml_Runtime[14], _anv_); + } + catch(_aRa_){ + var _ans_ = caml_wrap_exception(_aRa_); + if(_ans_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yo_], 1); + throw caml_maybe_attach_backtrace(_ans_, 0); + } + try{ + var + _anx_ = function(param){return situation_familiale_calcul_apl;}, + _any_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yt_, 1); + }, + _anz_ = caml_call4(Runtime_ocaml_Runtime[63], _yu_, [0], _any_, _anx_), + calcul_nombre_parts_dot_situat = + caml_call3 + (Runtime_ocaml_Runtime[28], + _yv_, + embed_situation_familiale_calc, + _anz_); + } + catch(_aQ$_){ + var _anw_ = caml_wrap_exception(_aQ$_); + if(_anw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ys_], 1); + throw caml_maybe_attach_backtrace(_anw_, 0); + } + var + _anA_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _yw_, calcul_nombre_parts_accession_), + [0, calcul_nombre_parts_dot_nombre, calcul_nombre_parts_dot_situat]), + result = caml_call2(Runtime_ocaml_Runtime[27], _yx_, _anA_), + calcul_nombre_parts_dot_n_nomb = result[1]; + try{ + var + _anC_ = function(param){return date_courante;}, + _anD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _yz_, 1); + }, + _anE_ = caml_call4(Runtime_ocaml_Runtime[63], _yA_, [0], _anD_, _anC_), + contributions_sociales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _yB_, Runtime_ocaml_Runtime[16], _anE_); + } + catch(_aQ__){ + var _anB_ = caml_wrap_exception(_aQ__); + if(_anB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yy_], 1); + throw caml_maybe_attach_backtrace(_anB_, 0); + } + var + _anF_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _yC_, contributions_sociales_aides_p), + [0, contributions_sociales_dot_dat]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _yD_, _anF_), + contributions_sociales_dot_mon = result$0[1]; + try{ + var + _anH_ = + function(param){ + function _aQV_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aQW_(param){return 0;} + var + _aQX_ = + [0, + function(param){ + function _aQY_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aQZ_(param){ + var + _aQ8_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aQ9_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQ8_); + return caml_call2(Runtime_ocaml_Runtime[29], _yF_, _aQ9_); + } + var + _aQ0_ = + [0, + function(param){ + function _aQ1_(param){ + return caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge); + } + function _aQ2_(param){ + var + _aQ3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aQ4_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQ3_), + _aQ5_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aQ6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQ5_), + _aQ7_ = caml_call2(Runtime_ocaml_Runtime[83], _aQ6_, _aQ4_); + return caml_call2(Runtime_ocaml_Runtime[29], _yG_, _aQ7_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _yH_, [0], _aQ2_, _aQ1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yI_, _aQ0_, _aQZ_, _aQY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yJ_, _aQX_, _aQW_, _aQV_); + }, + _anI_ = function(param){return 1;}, + _anJ_ = + [0, + function(param){ + function _aPS_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aPT_(param){return 0;} + var + _aPU_ = + [0, + function(param){ + function _aPV_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$62); + } + function _aPW_(param){ + var + _aQL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$63), + _aQM_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aQL_); + switch(residence[0]){ + case 0: + var _aQN_ = 1; break; + case 1: + var _aQN_ = 0; break; + case 2: + var _aQN_ = 1; break; + case 3: + var _aQN_ = 1; break; + case 4: + var _aQN_ = 1; break; + case 5: + var _aQN_ = 1; break; + case 6: + var _aQN_ = 0; break; + case 7: + var _aQN_ = 0; break; + default: var _aQN_ = 1; + } + var + _aQO_ = caml_call2(Runtime_ocaml_Runtime[83], _aQN_, _aQM_), + _aQP_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _aQQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQP_), + _aQR_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aQS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQR_), + _aQT_ = caml_call2(Runtime_ocaml_Runtime[83], _aQS_, _aQQ_), + _aQU_ = caml_call2(Runtime_ocaml_Runtime[83], _aQT_, _aQO_); + return caml_call2(Runtime_ocaml_Runtime[29], _yK_, _aQU_); + } + var + _aPX_ = + [0, + function(param){ + function _aPY_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$64); + } + function _aPZ_(param){ + var + _aQB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$65), + _aQC_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aQB_); + switch(residence[0]){ + case 0: + var _aQD_ = 1; break; + case 1: + var _aQD_ = 0; break; + case 2: + var _aQD_ = 1; break; + case 3: + var _aQD_ = 1; break; + case 4: + var _aQD_ = 1; break; + case 5: + var _aQD_ = 1; break; + case 6: + var _aQD_ = 0; break; + case 7: + var _aQD_ = 0; break; + default: var _aQD_ = 1; + } + var + _aQE_ = caml_call2(Runtime_ocaml_Runtime[83], _aQD_, _aQC_), + _aQF_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aQG_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQF_), + _aQH_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aQI_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQH_), + _aQJ_ = caml_call2(Runtime_ocaml_Runtime[83], _aQI_, _aQG_), + _aQK_ = caml_call2(Runtime_ocaml_Runtime[83], _aQJ_, _aQE_); + return caml_call2(Runtime_ocaml_Runtime[29], _yL_, _aQK_); + } + var + _aP0_ = + [0, + function(param){ + function _aP1_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$66); + } + function _aP2_(param){ + var + _aQr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$67), + _aQs_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aQr_); + switch(residence[0]){ + case 0: + var _aQt_ = 1; break; + case 1: + var _aQt_ = 0; break; + case 2: + var _aQt_ = 1; break; + case 3: + var _aQt_ = 1; break; + case 4: + var _aQt_ = 1; break; + case 5: + var _aQt_ = 1; break; + case 6: + var _aQt_ = 0; break; + case 7: + var _aQt_ = 0; break; + default: var _aQt_ = 1; + } + var + _aQu_ = caml_call2(Runtime_ocaml_Runtime[83], _aQt_, _aQs_), + _aQv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aQw_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQv_), + _aQx_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aQy_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQx_), + _aQz_ = caml_call2(Runtime_ocaml_Runtime[83], _aQy_, _aQw_), + _aQA_ = caml_call2(Runtime_ocaml_Runtime[83], _aQz_, _aQu_); + return caml_call2(Runtime_ocaml_Runtime[29], _yM_, _aQA_); + } + var + _aP3_ = + [0, + function(param){ + function _aP4_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$68); + } + function _aP5_(param){ + var + _aQh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$69), + _aQi_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aQh_); + switch(residence[0]){ + case 0: + var _aQj_ = 1; break; + case 1: + var _aQj_ = 0; break; + case 2: + var _aQj_ = 1; break; + case 3: + var _aQj_ = 1; break; + case 4: + var _aQj_ = 1; break; + case 5: + var _aQj_ = 1; break; + case 6: + var _aQj_ = 0; break; + case 7: + var _aQj_ = 0; break; + default: var _aQj_ = 1; + } + var + _aQk_ = caml_call2(Runtime_ocaml_Runtime[83], _aQj_, _aQi_), + _aQl_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _aQm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQl_), + _aQn_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aQo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQn_), + _aQp_ = caml_call2(Runtime_ocaml_Runtime[83], _aQo_, _aQm_), + _aQq_ = caml_call2(Runtime_ocaml_Runtime[83], _aQp_, _aQk_); + return caml_call2(Runtime_ocaml_Runtime[29], _yN_, _aQq_); + } + var + _aP6_ = + [0, + function(param){ + function _aP7_(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_6$70); + } + function _aP8_(param){ + var + _aP9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$71), + _aP__ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _aP9_); + switch(residence[0]){ + case 0: + var _aP$_ = 1; break; + case 1: + var _aP$_ = 0; break; + case 2: + var _aP$_ = 1; break; + case 3: + var _aP$_ = 1; break; + case 4: + var _aP$_ = 1; break; + case 5: + var _aP$_ = 1; break; + case 6: + var _aP$_ = 0; break; + case 7: + var _aP$_ = 0; break; + default: var _aP$_ = 1; + } + var + _aQa_ = caml_call2(Runtime_ocaml_Runtime[83], _aP$_, _aP__), + _aQb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _aQc_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aQb_), + _aQd_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aQe_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aQd_), + _aQf_ = caml_call2(Runtime_ocaml_Runtime[83], _aQe_, _aQc_), + _aQg_ = caml_call2(Runtime_ocaml_Runtime[83], _aQf_, _aQa_); + return caml_call2(Runtime_ocaml_Runtime[29], _yO_, _aQg_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _yP_, [0], _aP8_, _aP7_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yQ_, _aP6_, _aP5_, _aP4_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yR_, _aP3_, _aP2_, _aP1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yS_, _aP0_, _aPZ_, _aPY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yT_, _aPX_, _aPW_, _aPV_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _yU_, _aPU_, _aPT_, _aPS_); + }], + _anK_ = caml_call4(Runtime_ocaml_Runtime[63], _yV_, _anJ_, _anI_, _anH_); + } + catch(_aPR_){ + var _anG_ = caml_wrap_exception(_aPR_); + if(_anG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yE_], 1); + throw caml_maybe_attach_backtrace(_anG_, 0); + } + var + multiplicateur_majoration_char = + caml_call3 + (Runtime_ocaml_Runtime[28], _yW_, Runtime_ocaml_Runtime[15], _anK_); + try{ + var + _anM_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_16_25$0); + }, + _anN_ = + function(param){ + var + _aPP_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPQ_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPP_); + return caml_call2(Runtime_ocaml_Runtime[29], _yY_, _aPQ_); + }, + _anO_ = caml_call4(Runtime_ocaml_Runtime[63], _yZ_, [0], _anN_, _anM_); + } + catch(_aPO_){ + var _anL_ = caml_wrap_exception(_aPO_); + if(_anL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _yX_], 1); + throw caml_maybe_attach_backtrace(_anL_, 0); + } + var + coefficient_d842_12 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y0_, Runtime_ocaml_Runtime[15], _anO_); + try{ + var + _anQ_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_0234$1); + }, + _anR_ = + function(param){ + var + _aPM_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPN_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPM_); + return caml_call2(Runtime_ocaml_Runtime[29], _y2_, _aPN_); + }, + _anS_ = caml_call4(Runtime_ocaml_Runtime[63], _y3_, [0], _anR_, _anQ_); + } + catch(_aPL_){ + var _anP_ = caml_wrap_exception(_aPL_); + if(_anP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y1_], 1); + throw caml_maybe_attach_backtrace(_anP_, 0); + } + var + coefficient_d842_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y4_, Runtime_ocaml_Runtime[15], _anS_); + try{ + var + _anU_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_390000); + }, + _anV_ = + function(param){ + var + _aPJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPK_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _y6_, _aPK_); + }, + _anW_ = caml_call4(Runtime_ocaml_Runtime[63], _y7_, [0], _anV_, _anU_); + } + catch(_aPI_){ + var _anT_ = caml_wrap_exception(_aPI_); + if(_anT_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y5_], 1); + throw caml_maybe_attach_backtrace(_anT_, 0); + } + var + montant_forfaitaire_d842_12 = + caml_call3 + (Runtime_ocaml_Runtime[28], _y8_, Runtime_ocaml_Runtime[13], _anW_); + try{ + var + _anY_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1500$1); + }, + _anZ_ = + function(param){ + var + _aPG_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPH_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPG_); + return caml_call2(Runtime_ocaml_Runtime[29], _y__, _aPH_); + }, + _an0_ = caml_call4(Runtime_ocaml_Runtime[63], _y$_, [0], _anZ_, _anY_); + } + catch(_aPF_){ + var _anX_ = caml_wrap_exception(_aPF_); + if(_anX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _y9_], 1); + throw caml_maybe_attach_backtrace(_anX_, 0); + } + var + montant_forfaitaire_d842_11 = + caml_call3 + (Runtime_ocaml_Runtime[28], _za_, Runtime_ocaml_Runtime[13], _an0_); + try{ + var + _an2_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1000$4); + }, + _an3_ = + function(param){ + var + _aPD_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPE_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPD_); + return caml_call2(Runtime_ocaml_Runtime[29], _zc_, _aPE_); + }, + _an4_ = caml_call4(Runtime_ocaml_Runtime[63], _zd_, [0], _an3_, _an2_); + } + catch(_aPC_){ + var _an1_ = caml_wrap_exception(_aPC_); + if(_an1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zb_], 1); + throw caml_maybe_attach_backtrace(_an1_, 0); + } + var + montant_minimal_aide_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _ze_, Runtime_ocaml_Runtime[13], _an4_); + try{ + var + _an6_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_500$3); + }, + _an7_ = + function(param){ + var + _aPA_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aPB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aPA_); + return caml_call2(Runtime_ocaml_Runtime[29], _zg_, _aPB_); + }, + _an8_ = caml_call4(Runtime_ocaml_Runtime[63], _zh_, [0], _an7_, _an6_); + } + catch(_aPz_){ + var _an5_ = caml_wrap_exception(_aPz_); + if(_an5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zf_], 1); + throw caml_maybe_attach_backtrace(_an5_, 0); + } + var + montant_forfaitaire_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _zi_, Runtime_ocaml_Runtime[13], _an8_); + try{ + var + _an__ = function(param){return 0;}, + _an$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _zk_, 1); + }, + _aoa_ = + [0, + function(param){ + function _aPc_(param){return 1;} + function _aPd_(param){ + var + _aPr_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aPs_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _aPr_); + switch(type_travaux_logement[0]){ + case 0: + var _aPt_ = 0; break; + case 1: + var _aPt_ = 0; break; + case 2: + var _aPt_ = 1; break; + default: var _aPt_ = 0; + } + switch(type_travaux_logement[0]){ + case 0: + var _aPu_ = 1; break; + case 1: + var _aPu_ = 0; break; + case 2: + var _aPu_ = 0; break; + default: var _aPu_ = 0; + } + var _aPv_ = caml_call2(Runtime_ocaml_Runtime[84], _aPu_, _aPt_); + switch(type_travaux_logement[0]){ + case 0: + var _aPw_ = 0; break; + case 1: + var _aPw_ = 0; break; + case 2: + var _aPw_ = 0; break; + default: var _aPw_ = 1; + } + var + _aPx_ = caml_call2(Runtime_ocaml_Runtime[84], _aPw_, _aPv_), + _aPy_ = caml_call2(Runtime_ocaml_Runtime[83], _aPx_, _aPs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zl_, _aPy_); + } + var + _aPe_ = + [0, + function(param){ + function _aPf_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aPg_(param){return 0;} + var + _aPh_ = + [0, + function(param){ + function _aPi_(param){return 0;} + function _aPj_(param){ + switch(residence[0]){ + case 0: + var _aPp_ = 1; break; + case 1: + var _aPp_ = 1; break; + case 2: + var _aPp_ = 1; break; + case 3: + var _aPp_ = 1; break; + case 4: + var _aPp_ = 0; break; + case 5: + var _aPp_ = 0; break; + case 6: + var _aPp_ = 0; break; + case 7: + var _aPp_ = 0; break; + default: var _aPp_ = 1; + } + var + _aPq_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _aPp_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zm_, _aPq_); + } + var + _aPk_ = + [0, + function(param){ + function _aPl_(param){return 0;} + function _aPm_(param){ + switch(residence[0]){ + case 0: + var _aPn_ = 0; break; + case 1: + var _aPn_ = 0; break; + case 2: + var _aPn_ = 0; break; + case 3: + var _aPn_ = 0; break; + case 4: + var _aPn_ = 1; break; + case 5: + var _aPn_ = 1; break; + case 6: + var _aPn_ = 0; break; + case 7: + var _aPn_ = 0; break; + default: var _aPn_ = 0; + } + var + _aPo_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _aPn_, + operations_logement_evolutifs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zn_, _aPo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zo_, [0], _aPm_, _aPl_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zp_, _aPk_, _aPj_, _aPi_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zq_, _aPh_, _aPg_, _aPf_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _zr_, _aPe_, _aPd_, _aPc_); + }], + _aob_ = caml_call4(Runtime_ocaml_Runtime[63], _zs_, _aoa_, _an$_, _an__); + } + catch(_aPb_){ + var _an9_ = caml_wrap_exception(_aPb_); + if(_an9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zj_], 1); + throw caml_maybe_attach_backtrace(_an9_, 0); + } + var + condition_d842_11_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _zt_, Runtime_ocaml_Runtime[12], _aob_); + function _aoc_(date_calcul, nombre_personnes_a_charge){ + try{ + var + _ayV_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _ayW_ = function(param){return 0;}, + _ayX_ = + function(param){ + function _aOw_(param){ + switch(zone[0]){ + case 0: + var _aOD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$258); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOD_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31476) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37933); + var _aOE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$180); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40787); + var _aOF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41927); + var _aOG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43106); + var _aOH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44262); + var _aOI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$26); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_45200); + var + _aOJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$27), + _aOK_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOJ_), + _aOL_ = caml_call1(Runtime_ocaml_Runtime[69], _aOK_), + _aOM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3936), + _aON_ = caml_call2(Runtime_ocaml_Runtime[104], _aOM_, _aOL_), + _aOO_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45200$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOO_, _aON_); + case 1: + var _aOP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$259); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOP_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27614) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33853); + var _aOQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$181); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36646); + var _aOR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37915); + var _aOS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39222); + var _aOT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$33); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40510); + var _aOU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$28); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43378); + var + _aOV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$29), + _aOW_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOV_), + _aOX_ = caml_call1(Runtime_ocaml_Runtime[69], _aOW_), + _aOY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3771), + _aOZ_ = caml_call2(Runtime_ocaml_Runtime[104], _aOY_, _aOX_), + _aO0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43378$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aO0_, _aOZ_); + default: + var _aO1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$260); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO1_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25904) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31419); + var _aO2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$182); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34255); + var _aO3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35670); + var _aO4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37107); + var _aO5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38521); + var _aO6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$30); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aO6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41392); + var + _aO7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$31), + _aO8_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aO7_), + _aO9_ = caml_call1(Runtime_ocaml_Runtime[69], _aO8_), + _aO__ = caml_call1(Runtime_ocaml_Runtime[31], cst_3588), + _aO$_ = caml_call2(Runtime_ocaml_Runtime[104], _aO__, _aO9_), + _aPa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41392$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aPa_, _aO$_); + } + } + function _aOx_(param){ + var + _aOy_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aOz_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aOy_), + _aOA_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aOB_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aOA_), + _aOC_ = caml_call2(Runtime_ocaml_Runtime[83], _aOB_, _aOz_); + return caml_call2(Runtime_ocaml_Runtime[29], _zv_, _aOC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zw_, [0], _aOx_, _aOw_); + }, + _ayY_ = + function(param){ + function _aNO_(param){ + switch(zone[0]){ + case 0: + var _aNY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$261); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31382) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37820); + var _aNZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$183); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40665); + var _aN0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41801); + var _aN1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42977); + var _aN2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$35); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44130); + var _aN3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$32); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_45064); + var + _aN4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$33), + _aN5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aN4_), + _aN6_ = caml_call1(Runtime_ocaml_Runtime[69], _aN5_), + _aN7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3924), + _aN8_ = caml_call2(Runtime_ocaml_Runtime[104], _aN7_, _aN6_), + _aN9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_45064$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aN9_, _aN8_); + case 1: + var _aN__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$262); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27531) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33751); + var _aN$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$184); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aN$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36536); + var _aOa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37801); + var _aOb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39105); + var _aOc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40389); + var _aOd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$34); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43248); + var + _aOe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$35), + _aOf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOe_), + _aOg_ = caml_call1(Runtime_ocaml_Runtime[69], _aOf_), + _aOh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3760), + _aOi_ = caml_call2(Runtime_ocaml_Runtime[104], _aOh_, _aOg_), + _aOj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43248$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOj_, _aOi_); + default: + var _aOk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$263); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25826) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31325); + var _aOl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$185); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34152); + var _aOm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35564); + var _aOn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36996); + var _aOo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$37); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38406); + var _aOp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$36); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aOp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41268); + var + _aOq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$37), + _aOr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aOq_), + _aOs_ = caml_call1(Runtime_ocaml_Runtime[69], _aOr_), + _aOt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3578), + _aOu_ = caml_call2(Runtime_ocaml_Runtime[104], _aOt_, _aOs_), + _aOv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41268$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aOv_, _aOu_); + } + } + function _aNP_(param){ + var + _aNQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _aNR_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aNQ_), + _aNS_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), + _aNT_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aNS_), + _aNU_ = caml_call2(Runtime_ocaml_Runtime[83], _aNT_, _aNR_), + _aNV_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aNW_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aNV_), + _aNX_ = caml_call2(Runtime_ocaml_Runtime[83], _aNW_, _aNU_); + return caml_call2(Runtime_ocaml_Runtime[29], _zx_, _aNX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zy_, [0], _aNP_, _aNO_); + }, + _ayZ_ = + function(param){ + function _aM6_(param){ + switch(zone[0]){ + case 0: + var _aNe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$264); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNe_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31148) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37538); + var _aNf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$186); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40362); + var _aNg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41490); + var _aNh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42657); + var _aNi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43801); + var _aNj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$38); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44729); + var + _aNk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$39), + _aNl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNk_), + _aNm_ = caml_call1(Runtime_ocaml_Runtime[69], _aNl_), + _aNn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3895), + _aNo_ = caml_call2(Runtime_ocaml_Runtime[104], _aNn_, _aNm_), + _aNp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44729$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNp_, _aNo_); + case 1: + var _aNq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$265); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27326) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33500$0); + var _aNr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$187); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36264); + var _aNs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37520); + var _aNt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38814); + var _aNu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$39); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40088); + var _aNv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42926); + var + _aNw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$41), + _aNx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNw_), + _aNy_ = caml_call1(Runtime_ocaml_Runtime[69], _aNx_), + _aNz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3732), + _aNA_ = caml_call2(Runtime_ocaml_Runtime[104], _aNz_, _aNy_), + _aNB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42926$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNB_, _aNA_); + default: + var _aNC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$266); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNC_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25634) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31092); + var _aND_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$188); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aND_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33898); + var _aNE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35299); + var _aNF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36721); + var _aNG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$40); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38120); + var _aNH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aNH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40961); + var + _aNI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$43), + _aNJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aNI_), + _aNK_ = caml_call1(Runtime_ocaml_Runtime[69], _aNJ_), + _aNL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3551), + _aNM_ = caml_call2(Runtime_ocaml_Runtime[104], _aNL_, _aNK_), + _aNN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40961$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aNN_, _aNM_); + } + } + function _aM7_(param){ + var + _aM8_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 10, 1), + _aM9_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aM8_), + _aM__ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), + _aM$_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aM__), + _aNa_ = caml_call2(Runtime_ocaml_Runtime[83], _aM$_, _aM9_), + _aNb_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aNc_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aNb_), + _aNd_ = caml_call2(Runtime_ocaml_Runtime[83], _aNc_, _aNa_); + return caml_call2(Runtime_ocaml_Runtime[29], _zz_, _aNd_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zA_, [0], _aM7_, _aM6_); + }, + _ay0_ = + function(param){ + function _aMm_(param){ + switch(zone[0]){ + case 0: + var _aMw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$267); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_31123) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37508); + var _aMx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$189); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40330); + var _aMy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41457); + var _aMz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42623); + var _aMA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$41); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43766); + var _aMB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44693); + var + _aMC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$45), + _aMD_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMC_), + _aME_ = caml_call1(Runtime_ocaml_Runtime[69], _aMD_), + _aMF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3892), + _aMG_ = caml_call2(Runtime_ocaml_Runtime[104], _aMF_, _aME_), + _aMH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44693$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMH_, _aMG_); + case 1: + var _aMI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$268); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27304) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33473); + var _aMJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$190); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36235); + var _aMK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37490); + var _aML_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aML_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38783); + var _aMM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$42); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40056); + var _aMN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42892); + var + _aMO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$47), + _aMP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMO_), + _aMQ_ = caml_call1(Runtime_ocaml_Runtime[69], _aMP_), + _aMR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3729), + _aMS_ = caml_call2(Runtime_ocaml_Runtime[104], _aMR_, _aMQ_), + _aMT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42892$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMT_, _aMS_); + default: + var _aMU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$269); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMU_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25614) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31067); + var _aMV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$191); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33871); + var _aMW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35271); + var _aMX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36692); + var _aMY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$43); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38090); + var _aMZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40928); + var + _aM0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$49), + _aM1_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aM0_), + _aM2_ = caml_call1(Runtime_ocaml_Runtime[69], _aM1_), + _aM3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3548), + _aM4_ = caml_call2(Runtime_ocaml_Runtime[104], _aM3_, _aM2_), + _aM5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40928$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aM5_, _aM4_); + } + } + function _aMn_(param){ + var + _aMo_ = caml_call3(Runtime_ocaml_Runtime[57], 2015, 10, 1), + _aMp_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aMo_), + _aMq_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), + _aMr_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aMq_), + _aMs_ = caml_call2(Runtime_ocaml_Runtime[83], _aMr_, _aMp_), + _aMt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aMu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aMt_), + _aMv_ = caml_call2(Runtime_ocaml_Runtime[83], _aMu_, _aMs_); + return caml_call2(Runtime_ocaml_Runtime[29], _zB_, _aMv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zC_, [0], _aMn_, _aMm_); + }, + _ay1_ = + function(param){ + function _aLE_(param){ + switch(zone[0]){ + case 0: + var _aLO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$270); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLO_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30947) + : caml_call1(Runtime_ocaml_Runtime[31], cst_37295); + var _aLP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$192); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40101); + var _aLQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41222); + var _aLR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42381); + var _aLS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$44); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43518); + var _aLT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_44440); + var + _aLU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$51), + _aLV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLU_), + _aLW_ = caml_call1(Runtime_ocaml_Runtime[69], _aLV_), + _aLX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3870), + _aLY_ = caml_call2(Runtime_ocaml_Runtime[104], _aLX_, _aLW_), + _aLZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_44440$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLZ_, _aLY_); + case 1: + var _aL0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$271); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27149) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33283); + var _aL1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$193); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36030); + var _aL2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37278); + var _aL3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38563); + var _aL4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$45); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39829); + var _aL5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aL5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42649); + var + _aL6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$53), + _aL7_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aL6_), + _aL8_ = caml_call1(Runtime_ocaml_Runtime[69], _aL7_), + _aL9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3708), + _aL__ = caml_call2(Runtime_ocaml_Runtime[104], _aL9_, _aL8_), + _aL$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42659); + return caml_call2(Runtime_ocaml_Runtime[93], _aL$_, _aL__); + default: + var _aMa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$272); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMa_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25469) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30891); + var _aMb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$194); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33679); + var _aMc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35071); + var _aMd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36484); + var _aMe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$46); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37874); + var _aMf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aMf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40696); + var + _aMg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$55), + _aMh_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aMg_), + _aMi_ = caml_call1(Runtime_ocaml_Runtime[69], _aMh_), + _aMj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3528), + _aMk_ = caml_call2(Runtime_ocaml_Runtime[104], _aMj_, _aMi_), + _aMl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40696$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aMl_, _aMk_); + } + } + function _aLF_(param){ + var + _aLG_ = caml_call3(Runtime_ocaml_Runtime[57], 2014, 10, 1), + _aLH_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aLG_), + _aLI_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _aLJ_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aLI_), + _aLK_ = caml_call2(Runtime_ocaml_Runtime[83], _aLJ_, _aLH_), + _aLL_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aLM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aLL_), + _aLN_ = caml_call2(Runtime_ocaml_Runtime[83], _aLM_, _aLK_); + return caml_call2(Runtime_ocaml_Runtime[29], _zD_, _aLN_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zE_, [0], _aLF_, _aLE_); + }, + _ay2_ = + function(param){ + function _aKW_(param){ + switch(zone[0]){ + case 0: + var _aK6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$273); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK6_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_30296) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36510); + var _aK7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$195); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39257); + var _aK8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40354); + var _aK9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41489); + var _aK__ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$47); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42602); + var _aK$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aK$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43505); + var + _aLa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$57), + _aLb_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLa_), + _aLc_ = caml_call1(Runtime_ocaml_Runtime[69], _aLb_), + _aLd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3789), + _aLe_ = caml_call2(Runtime_ocaml_Runtime[104], _aLd_, _aLc_), + _aLf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43505$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLf_, _aLe_); + case 1: + var _aLg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$274); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLg_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26578) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32582); + var _aLh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$196); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35272); + var _aLi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36493); + var _aLj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37751); + var _aLk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$48); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38991); + var _aLl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41751); + var + _aLm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$59), + _aLn_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLm_), + _aLo_ = caml_call1(Runtime_ocaml_Runtime[69], _aLn_), + _aLp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3630), + _aLq_ = caml_call2(Runtime_ocaml_Runtime[104], _aLp_, _aLo_), + _aLr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41751$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLr_, _aLq_); + default: + var _aLs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$275); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLs_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24933) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30241); + var _aLt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$197); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32970); + var _aLu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34333); + var _aLv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35716); + var _aLw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$49); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37077); + var _aLx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aLx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39839); + var + _aLy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$61), + _aLz_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aLy_), + _aLA_ = caml_call1(Runtime_ocaml_Runtime[69], _aLz_), + _aLB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3454), + _aLC_ = caml_call2(Runtime_ocaml_Runtime[104], _aLB_, _aLA_), + _aLD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39839$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aLD_, _aLC_); + } + } + function _aKX_(param){ + var + _aKY_ = caml_call3(Runtime_ocaml_Runtime[57], 2013, 1, 1), + _aKZ_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aKY_), + _aK0_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _aK1_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aK0_), + _aK2_ = caml_call2(Runtime_ocaml_Runtime[83], _aK1_, _aKZ_), + _aK3_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aK4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aK3_), + _aK5_ = caml_call2(Runtime_ocaml_Runtime[83], _aK4_, _aK2_); + return caml_call2(Runtime_ocaml_Runtime[29], _zF_, _aK5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zG_, [0], _aKX_, _aKW_); + }, + _ay3_ = + function(param){ + function _aKc_(param){ + switch(zone[0]){ + case 0: + var _aKm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$276); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKm_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29996) + : caml_call1(Runtime_ocaml_Runtime[31], cst_36149); + var _aKn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$198); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38868); + var _aKo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39954); + var _aKp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41078); + var _aKq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$50); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42180); + var _aKr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_43074); + var + _aKs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$63), + _aKt_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKs_), + _aKu_ = caml_call1(Runtime_ocaml_Runtime[69], _aKt_), + _aKv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3751), + _aKw_ = caml_call2(Runtime_ocaml_Runtime[104], _aKv_, _aKu_), + _aKx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_43074$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKx_, _aKw_); + case 1: + var _aKy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$277); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKy_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26315) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32259); + var _aKz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$199); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34923); + var _aKA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36132); + var _aKB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37373); + var _aKC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$51); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38605); + var _aKD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKD_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41338); + var + _aKE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$65), + _aKF_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKE_), + _aKG_ = caml_call1(Runtime_ocaml_Runtime[69], _aKF_), + _aKH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3594), + _aKI_ = caml_call2(Runtime_ocaml_Runtime[104], _aKH_, _aKG_), + _aKJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41338$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKJ_, _aKI_); + default: + var _aKK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$278); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKK_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24686) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29942); + var _aKL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$200); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32644); + var _aKM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33993); + var _aKN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35362); + var _aKO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$52); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36710); + var _aKP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aKP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39445); + var + _aKQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$67), + _aKR_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aKQ_), + _aKS_ = caml_call1(Runtime_ocaml_Runtime[69], _aKR_), + _aKT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3420), + _aKU_ = caml_call2(Runtime_ocaml_Runtime[104], _aKT_, _aKS_), + _aKV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39445$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKV_, _aKU_); + } + } + function _aKd_(param){ + var + _aKe_ = caml_call3(Runtime_ocaml_Runtime[57], 2012, 1, 1), + _aKf_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aKe_), + _aKg_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _aKh_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aKg_), + _aKi_ = caml_call2(Runtime_ocaml_Runtime[83], _aKh_, _aKf_), + _aKj_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aKk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aKj_), + _aKl_ = caml_call2(Runtime_ocaml_Runtime[83], _aKk_, _aKi_); + return caml_call2(Runtime_ocaml_Runtime[29], _zH_, _aKl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zI_, [0], _aKd_, _aKc_); + }, + _ay4_ = + function(param){ + function _aJu_(param){ + switch(zone[0]){ + case 0: + var _aJE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$279); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJE_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29670) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35757); + var _aJF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$201); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38445); + var _aJG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39519); + var _aJH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40601); + var _aJI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$53); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41721); + var _aJJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42605); + var + _aJK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$69), + _aJL_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJK_), + _aJM_ = caml_call1(Runtime_ocaml_Runtime[69], _aJL_), + _aJN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3710), + _aJO_ = caml_call2(Runtime_ocaml_Runtime[104], _aJN_, _aJM_), + _aJP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42605$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJP_, _aJO_); + case 1: + var _aJQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$280); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJQ_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26029) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31908); + var _aJR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$202); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34643); + var _aJS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJS_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35739); + var _aJT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36970); + var _aJU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$54); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38185); + var _aJV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40888); + var + _aJW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$71), + _aJX_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJW_), + _aJY_ = caml_call1(Runtime_ocaml_Runtime[69], _aJX_), + _aJZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3555), + _aJ0_ = caml_call2(Runtime_ocaml_Runtime[104], _aJZ_, _aJY_), + _aJ1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40888$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJ1_, _aJ0_); + default: + var _aJ2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$281); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ2_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24417) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29616); + var _aJ3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$203); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32289); + var _aJ4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33623$0); + var _aJ5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34977); + var _aJ6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$55); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36311); + var _aJ7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJ7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39016); + var + _aJ8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$73), + _aJ9_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJ8_), + _aJ__ = caml_call1(Runtime_ocaml_Runtime[69], _aJ9_), + _aJ$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3383), + _aKa_ = caml_call2(Runtime_ocaml_Runtime[104], _aJ$_, _aJ__), + _aKb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39016$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aKb_, _aKa_); + } + } + function _aJv_(param){ + var + _aJw_ = caml_call3(Runtime_ocaml_Runtime[57], 2011, 1, 1), + _aJx_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aJw_), + _aJy_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), + _aJz_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aJy_), + _aJA_ = caml_call2(Runtime_ocaml_Runtime[83], _aJz_, _aJx_), + _aJB_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aJC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aJB_), + _aJD_ = caml_call2(Runtime_ocaml_Runtime[83], _aJC_, _aJA_); + return caml_call2(Runtime_ocaml_Runtime[29], _zJ_, _aJD_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zK_, [0], _aJv_, _aJu_); + }, + _ay5_ = + function(param){ + function _aIM_(param){ + switch(zone[0]){ + case 0: + var _aIW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$282); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIW_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_29575) + : caml_call1(Runtime_ocaml_Runtime[31], cst_35642); + var _aIX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$204); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38322); + var _aIY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIY_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39393); + var _aIZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40501); + var _aI0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$56); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41588); + var _aI1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_42469); + var + _aI2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$75), + _aI3_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aI2_), + _aI4_ = caml_call1(Runtime_ocaml_Runtime[69], _aI3_), + _aI5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3698), + _aI6_ = caml_call2(Runtime_ocaml_Runtime[104], _aI5_, _aI4_), + _aI7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_42469$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aI7_, _aI6_); + case 1: + var _aI8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$283); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI8_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25946) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31806); + var _aI9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$205); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34433); + var _aI__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI__)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35625); + var _aI$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aI$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36852); + var _aJa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$57); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38063); + var _aJb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40758); + var + _aJc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$77), + _aJd_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJc_), + _aJe_ = caml_call1(Runtime_ocaml_Runtime[69], _aJd_), + _aJf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3544), + _aJg_ = caml_call2(Runtime_ocaml_Runtime[104], _aJf_, _aJe_), + _aJh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40758$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJh_, _aJg_); + default: + var _aJi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$284); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJi_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24339) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29522); + var _aJj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$206); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32186); + var _aJk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJk_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33516); + var _aJl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34865); + var _aJm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$58); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36195); + var _aJn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aJn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38892); + var + _aJo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$79), + _aJp_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aJo_), + _aJq_ = caml_call1(Runtime_ocaml_Runtime[69], _aJp_), + _aJr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3372), + _aJs_ = caml_call2(Runtime_ocaml_Runtime[104], _aJr_, _aJq_), + _aJt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38892$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aJt_, _aJs_); + } + } + function _aIN_(param){ + var + _aIO_ = caml_call3(Runtime_ocaml_Runtime[57], 2010, 1, 1), + _aIP_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aIO_), + _aIQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), + _aIR_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aIQ_), + _aIS_ = caml_call2(Runtime_ocaml_Runtime[83], _aIR_, _aIP_), + _aIT_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aIU_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aIT_), + _aIV_ = caml_call2(Runtime_ocaml_Runtime[83], _aIU_, _aIS_); + return caml_call2(Runtime_ocaml_Runtime[29], _zL_, _aIV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zM_, [0], _aIN_, _aIM_); + }, + _ay6_ = + function(param){ + function _aH4_(param){ + switch(zone[0]){ + case 0: + var _aIc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$285); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIc_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_28728) + : caml_call1(Runtime_ocaml_Runtime[31], cst_34621); + var _aId_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$207); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aId_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37224); + var _aIe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIe_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38264); + var _aIf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39340$0); + var _aIg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$59); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40396); + var _aIh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_41252); + var + _aIi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$81), + _aIj_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIi_), + _aIk_ = caml_call1(Runtime_ocaml_Runtime[69], _aIj_), + _aIl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3592), + _aIm_ = caml_call2(Runtime_ocaml_Runtime[104], _aIl_, _aIk_), + _aIn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_41252$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIn_, _aIm_); + case 1: + var _aIo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$286); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIo_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_25203) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30895); + var _aIp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$208); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33446); + var _aIq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIq_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34604); + var _aIr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35796); + var _aIs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$60); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36972); + var _aIt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39590); + var + _aIu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$83), + _aIv_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIu_), + _aIw_ = caml_call1(Runtime_ocaml_Runtime[69], _aIv_), + _aIx_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3442), + _aIy_ = caml_call2(Runtime_ocaml_Runtime[104], _aIx_, _aIw_), + _aIz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39590$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIz_, _aIy_); + default: + var _aIA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$287); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIA_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23642) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28676); + var _aIB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$209); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31264$0); + var _aIC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIC_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32556); + var _aID_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aID_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33866); + var _aIE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$61); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35158); + var _aIF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aIF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37778); + var + _aIG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$85), + _aIH_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aIG_), + _aII_ = caml_call1(Runtime_ocaml_Runtime[69], _aIH_), + _aIJ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3275), + _aIK_ = caml_call2(Runtime_ocaml_Runtime[104], _aIJ_, _aII_), + _aIL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37778$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aIL_, _aIK_); + } + } + function _aH5_(param){ + var + _aH6_ = caml_call3(Runtime_ocaml_Runtime[57], 2009, 1, 1), + _aH7_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aH6_), + _aH8_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), + _aH9_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aH8_), + _aH__ = caml_call2(Runtime_ocaml_Runtime[83], _aH9_, _aH7_), + _aH$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aIa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aH$_), + _aIb_ = caml_call2(Runtime_ocaml_Runtime[83], _aIa_, _aH__); + return caml_call2(Runtime_ocaml_Runtime[29], _zN_, _aIb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zO_, [0], _aH5_, _aH4_); + }, + _ay7_ = + function(param){ + function _aHk_(param){ + switch(zone[0]){ + case 0: + var _aHu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$288); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHu_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27956) + : caml_call1(Runtime_ocaml_Runtime[31], cst_33691); + var _aHv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$210); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36224); + var _aHw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHw_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37236); + var _aHx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38283); + var _aHy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$62); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39311); + var _aHz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_40144); + var + _aHA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$87), + _aHB_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHA_), + _aHC_ = caml_call1(Runtime_ocaml_Runtime[69], _aHB_), + _aHD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3496), + _aHE_ = caml_call2(Runtime_ocaml_Runtime[104], _aHD_, _aHC_), + _aHF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_40144$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHF_, _aHE_); + case 1: + var _aHG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$289); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHG_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_24526) + : caml_call1(Runtime_ocaml_Runtime[31], cst_30065); + var _aHH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$211); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32548); + var _aHI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHI_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33675); + var _aHJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34865$0); + var _aHK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$63); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35979); + var _aHL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38527); + var + _aHM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$89), + _aHN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHM_), + _aHO_ = caml_call1(Runtime_ocaml_Runtime[69], _aHN_), + _aHP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3350), + _aHQ_ = caml_call2(Runtime_ocaml_Runtime[104], _aHP_, _aHO_), + _aHR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38527$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHR_, _aHQ_); + default: + var _aHS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$290); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHS_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23007) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27906); + var _aHT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$212); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHT_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30424); + var _aHU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHU_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31682); + var _aHV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHV_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32956$0); + var _aHW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$64); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHW_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34214); + var _aHX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHX_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36733); + var + _aHY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$91), + _aHZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHY_), + _aH0_ = caml_call1(Runtime_ocaml_Runtime[69], _aHZ_), + _aH1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3187), + _aH2_ = caml_call2(Runtime_ocaml_Runtime[104], _aH1_, _aH0_), + _aH3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36733$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aH3_, _aH2_); + } + } + function _aHl_(param){ + var + _aHm_ = caml_call3(Runtime_ocaml_Runtime[57], 2008, 1, 1), + _aHn_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aHm_), + _aHo_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), + _aHp_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aHo_), + _aHq_ = caml_call2(Runtime_ocaml_Runtime[83], _aHp_, _aHn_), + _aHr_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aHs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aHr_), + _aHt_ = caml_call2(Runtime_ocaml_Runtime[83], _aHs_, _aHq_); + return caml_call2(Runtime_ocaml_Runtime[29], _zP_, _aHt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zQ_, [0], _aHl_, _aHk_); + }, + _ay8_ = + function(param){ + function _aGC_(param){ + switch(zone[0]){ + case 0: + var _aGM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$291); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGM_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_27195) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32773); + var _aGN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$213); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35237); + var _aGO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGO_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36222); + var _aGP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37240); + var _aGQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$65); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38240); + var _aGR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGR_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_39051); + var + _aGS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$93), + _aGT_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGS_), + _aGU_ = caml_call1(Runtime_ocaml_Runtime[69], _aGT_), + _aGV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3401), + _aGW_ = caml_call2(Runtime_ocaml_Runtime[104], _aGV_, _aGU_), + _aGX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_39051$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGX_, _aGW_); + case 1: + var _aGY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$292); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGY_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23858) + : caml_call1(Runtime_ocaml_Runtime[31], cst_29246); + var _aGZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$214); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGZ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31661); + var _aG0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG0_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32758); + var _aG1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33886); + var _aG2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$66); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34999); + var _aG3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37478); + var + _aG4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$95), + _aG5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aG4_), + _aG6_ = caml_call1(Runtime_ocaml_Runtime[69], _aG5_), + _aG7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3259), + _aG8_ = caml_call2(Runtime_ocaml_Runtime[104], _aG7_, _aG6_), + _aG9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37478$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aG9_, _aG8_); + default: + var _aG__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$293); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG__)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22380) + : caml_call1(Runtime_ocaml_Runtime[31], cst_27146); + var _aG$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$215); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aG$_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29595); + var _aHa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHa_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30819); + var _aHb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHb_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32058); + var _aHc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$67); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHc_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33282); + var _aHd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aHd_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35762); + var + _aHe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$97), + _aHf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aHe_), + _aHg_ = caml_call1(Runtime_ocaml_Runtime[69], _aHf_), + _aHh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3100), + _aHi_ = caml_call2(Runtime_ocaml_Runtime[104], _aHh_, _aHg_), + _aHj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35762$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aHj_, _aHi_); + } + } + function _aGD_(param){ + var + _aGE_ = caml_call3(Runtime_ocaml_Runtime[57], 2007, 1, 1), + _aGF_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aGE_), + _aGG_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), + _aGH_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aGG_), + _aGI_ = caml_call2(Runtime_ocaml_Runtime[83], _aGH_, _aGF_), + _aGJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aGK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aGJ_), + _aGL_ = caml_call2(Runtime_ocaml_Runtime[83], _aGK_, _aGI_); + return caml_call2(Runtime_ocaml_Runtime[29], _zR_, _aGL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zS_, [0], _aGD_, _aGC_); + }, + _ay9_ = + function(param){ + function _aFU_(param){ + switch(zone[0]){ + case 0: + var _aF4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$294); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF4_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26714$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_32194); + var _aF5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$216); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34614); + var _aF6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF6_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35582); + var _aF7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF7_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36582); + var _aF8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$68); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF8_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37564); + var _aF9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aF9_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_38361); + var + _aF__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$99), + _aF$_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aF__), + _aGa_ = caml_call1(Runtime_ocaml_Runtime[69], _aF$_), + _aGb_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3341), + _aGc_ = caml_call2(Runtime_ocaml_Runtime[104], _aGb_, _aGa_), + _aGd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_38361$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGd_, _aGc_); + case 1: + var _aGe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$295); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGe_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23436) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28729); + var _aGf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$217); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGf_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31101); + var _aGg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGg_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32179); + var _aGh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGh_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33287); + var _aGi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$69); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGi_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34380); + var _aGj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$100); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGj_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36815); + var + _aGk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$101), + _aGl_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGk_), + _aGm_ = caml_call1(Runtime_ocaml_Runtime[69], _aGl_), + _aGn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3201), + _aGo_ = caml_call2(Runtime_ocaml_Runtime[104], _aGn_, _aGm_), + _aGp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36815$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGp_, _aGo_); + default: + var _aGq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$296); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGq_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21984) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26666); + var _aGr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$218); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGr_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29072); + var _aGs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGs_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30274); + var _aGt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31491); + var _aGu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$70); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGu_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32694); + var _aGv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$102); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aGv_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35130); + var + _aGw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$103), + _aGx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aGw_), + _aGy_ = caml_call1(Runtime_ocaml_Runtime[69], _aGx_), + _aGz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3045), + _aGA_ = caml_call2(Runtime_ocaml_Runtime[104], _aGz_, _aGy_), + _aGB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35130$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aGB_, _aGA_); + } + } + function _aFV_(param){ + var + _aFW_ = caml_call3(Runtime_ocaml_Runtime[57], 2005, 9, 1), + _aFX_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aFW_), + _aFY_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), + _aFZ_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aFY_), + _aF0_ = caml_call2(Runtime_ocaml_Runtime[83], _aFZ_, _aFX_), + _aF1_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aF2_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aF1_), + _aF3_ = caml_call2(Runtime_ocaml_Runtime[83], _aF2_, _aF0_); + return caml_call2(Runtime_ocaml_Runtime[29], _zT_, _aF3_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zU_, [0], _aFV_, _aFU_); + }, + _ay__ = + function(param){ + function _aFa_(param){ + switch(zone[0]){ + case 0: + var _aFk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$297); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFk_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26397) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31812); + var _aFl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$219); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFl_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34204); + var _aFm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFm_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35160); + var _aFn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFn_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36148); + var _aFo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$71); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFo_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37119); + var _aFp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$104); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFp_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37906); + var + _aFq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$105), + _aFr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFq_), + _aFs_ = caml_call1(Runtime_ocaml_Runtime[69], _aFr_), + _aFt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3301), + _aFu_ = caml_call2(Runtime_ocaml_Runtime[104], _aFt_, _aFs_), + _aFv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37906$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aFv_, _aFu_); + case 1: + var _aFw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$298); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFw_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_23158) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28388); + var _aFx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$220); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFx_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30732); + var _aFy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFy_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31797$1); + var _aFz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFz_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32892); + var _aFA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$72); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFA_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33972); + var _aFB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$106); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFB_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36378); + var + _aFC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$107), + _aFD_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFC_), + _aFE_ = caml_call1(Runtime_ocaml_Runtime[69], _aFD_), + _aFF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3163), + _aFG_ = caml_call2(Runtime_ocaml_Runtime[104], _aFF_, _aFE_), + _aFH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_36378$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aFH_, _aFG_); + default: + var _aFI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$299); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFI_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21723) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26350); + var _aFJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$221); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFJ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_28727); + var _aFK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFK_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29915); + var _aFL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFL_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31118); + var _aFM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$73); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFM_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32306); + var _aFN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$108); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aFN_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34713); + var + _aFO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$109), + _aFP_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aFO_), + _aFQ_ = caml_call1(Runtime_ocaml_Runtime[69], _aFP_), + _aFR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3009), + _aFS_ = caml_call2(Runtime_ocaml_Runtime[104], _aFR_, _aFQ_), + _aFT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34713$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aFT_, _aFS_); + } + } + function _aFb_(param){ + var + _aFc_ = caml_call3(Runtime_ocaml_Runtime[57], 2003, 7, 1), + _aFd_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aFc_), + _aFe_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), + _aFf_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aFe_), + _aFg_ = caml_call2(Runtime_ocaml_Runtime[83], _aFf_, _aFd_), + _aFh_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aFi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aFh_), + _aFj_ = caml_call2(Runtime_ocaml_Runtime[83], _aFi_, _aFg_); + return caml_call2(Runtime_ocaml_Runtime[29], _zV_, _aFj_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zW_, [0], _aFb_, _aFa_); + }, + _ay$_ = + function(param){ + function _aEs_(param){ + switch(zone[0]){ + case 0: + var _aEC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$300); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEC_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_26084) + : caml_call1(Runtime_ocaml_Runtime[31], cst_31435); + var _aED_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$222); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aED_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33798); + var _aEE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34743); + var _aEF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEF_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35719); + var _aEG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$74); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEG_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_36679); + var _aEH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$110); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEH_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_37457); + var + _aEI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$111), + _aEJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEI_), + _aEK_ = caml_call1(Runtime_ocaml_Runtime[69], _aEJ_), + _aEL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3262), + _aEM_ = caml_call2(Runtime_ocaml_Runtime[104], _aEL_, _aEK_), + _aEN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_37457$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aEN_, _aEM_); + case 1: + var _aEO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$301); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEO_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_22883) + : caml_call1(Runtime_ocaml_Runtime[31], cst_28051); + var _aEP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$223); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30368); + var _aEQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEQ_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31420); + var _aER_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aER_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_32502); + var _aES_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$75); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aES_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_33569); + var _aET_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$112); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aET_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_35947); + var + _aEU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$113), + _aEV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEU_), + _aEW_ = caml_call1(Runtime_ocaml_Runtime[69], _aEV_), + _aEX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3125), + _aEY_ = caml_call2(Runtime_ocaml_Runtime[104], _aEX_, _aEW_), + _aEZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_35947$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aEZ_, _aEY_); + default: + var _aE0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$302); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE0_)) + return 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_21465) + : caml_call1(Runtime_ocaml_Runtime[31], cst_26038); + var _aE1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$224); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE1_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_28386); + var _aE2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE2_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_29560); + var _aE3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE3_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_30749); + var _aE4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$76); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE4_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_31923); + var _aE5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$114); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aE5_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_34301); + var + _aE6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$115), + _aE7_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aE6_), + _aE8_ = caml_call1(Runtime_ocaml_Runtime[69], _aE7_), + _aE9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_2973), + _aE__ = caml_call2(Runtime_ocaml_Runtime[104], _aE9_, _aE8_), + _aE$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_34301$0); + return caml_call2(Runtime_ocaml_Runtime[93], _aE$_, _aE__); + } + } + function _aEt_(param){ + var + _aEu_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 7, 1), + _aEv_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aEu_), + _aEw_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _aEx_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aEw_), + _aEy_ = caml_call2(Runtime_ocaml_Runtime[83], _aEx_, _aEv_), + _aEz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aEA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aEz_), + _aEB_ = caml_call2(Runtime_ocaml_Runtime[83], _aEA_, _aEy_); + return caml_call2(Runtime_ocaml_Runtime[29], _zX_, _aEB_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _zY_, [0], _aEt_, _aEs_); + }, + _aza_ = + function(param){ + function _aDJ_(param){ + switch(zone[0]){ + case 0: + var _aDT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$303); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDT_)) + var + _aDU_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_171100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_206200); + else{ + var _aDV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$225); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDV_)) + var _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221700); + else{ + var _aDW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDW_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_227900); + else{ + var _aDX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDX_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234300); + else{ + var _aDY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$77); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDY_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240600); + else{ + var + _aDZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$116); if (caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_a_charge,_aRi_)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_5612$5); - var - _aRj_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$4), - _aRk_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _aRj_, - multiplicateur_majoration_char), - _aRl_=caml_call1(Runtime_ocaml_Runtime[31],cst_5612$6); - return caml_call2(Runtime_ocaml_Runtime[93],_aRl_,_aRk_)} - function _aRf_(param) - {var - _aRg_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aRh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aRg_); - return caml_call2(Runtime_ocaml_Runtime[29],_LW_,_aRh_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_LX_,[0],_aRf_,_aRe_)}, - _aRc_, - _aRb_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_LY_,_aRd_,_aRa_,_aQ$_)}, - _aHz_=function(param){return 1}, - _aHA_= - [0, - function(param) - {function _aNh_(param) - {function _aQA_(param){throw Runtime_ocaml_Runtime[2]} - function _aQB_(param){return 0} - function _aQC_(param) - {function _aQZ_(param) - {var - _aQ7_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aQ8_=caml_call1(Runtime_ocaml_Runtime[31],cst_1224$5), - _aQ9_=caml_call2(Runtime_ocaml_Runtime[104],_aQ8_,_aQ7_), - _aQ__= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2699$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5399$7); - return caml_call2(Runtime_ocaml_Runtime[93],_aQ__,_aQ9_)} - function _aQ0_(param) - {var - _aQ1_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aQ2_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQ1_), - _aQ3_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aQ4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQ3_), - _aQ5_=caml_call2(Runtime_ocaml_Runtime[83],_aQ4_,_aQ2_), - _aQ6_= - caml_call2(Runtime_ocaml_Runtime[83],_aQ5_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_LZ_,_aQ6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L0_,[0],_aQ0_,_aQZ_)} - function _aQD_(param) - {function _aQN_(param) - {var - _aQV_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aQW_=caml_call1(Runtime_ocaml_Runtime[31],cst_1229$5), - _aQX_=caml_call2(Runtime_ocaml_Runtime[104],_aQW_,_aQV_), - _aQY_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2710$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5422$7); - return caml_call2(Runtime_ocaml_Runtime[93],_aQY_,_aQX_)} - function _aQO_(param) - {var - _aQP_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aQQ_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQP_), - _aQR_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aQS_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQR_), - _aQT_=caml_call2(Runtime_ocaml_Runtime[83],_aQS_,_aQQ_), - _aQU_= - caml_call2(Runtime_ocaml_Runtime[83],_aQT_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_L1_,_aQU_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L2_,[0],_aQO_,_aQN_)} - var - _aQE_= - [0, - function(param) - {function _aQF_(param) - {var - _aQK_=caml_call1(Runtime_ocaml_Runtime[31],cst_1272$5), - _aQL_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _aQK_, - multiplicateur_majoration_char), - _aQM_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_2805$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_5612$7); - return caml_call2(Runtime_ocaml_Runtime[93],_aQM_,_aQL_)} - function _aQG_(param) - {var - _aQH_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aQI_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQH_), - _aQJ_= - caml_call2(Runtime_ocaml_Runtime[83],_aQI_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_L3_,_aQJ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L4_,[0],_aQG_,_aQF_)}, - _aQD_, - _aQC_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_L5_,_aQE_,_aQB_,_aQA_)} - function _aNi_(param){return 1} - var - _aNj_= - [0, - function(param) - {function _aNk_(param) - {function _aO0_(param){throw Runtime_ocaml_Runtime[2]} - function _aO1_(param){return 0} - function _aO2_(param) - {function _aQj_(param) - {var - _aQs_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aQt_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$5), - _aQu_=caml_call2(Runtime_ocaml_Runtime[104],_aQt_,_aQs_), - _aQv_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$5), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aQv_,_aQu_), - _aQw_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$72), - _aQx_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$6), - _aQy_=caml_call2(Runtime_ocaml_Runtime[104],_aQx_,_aQw_), - _aQz_=caml_call1(Runtime_ocaml_Runtime[31],cst_3614$6), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aQz_,_aQy_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aQk_(param) - {switch(residence[0]) - {case 0:var _aQl_=1;break; - case 1:var _aQl_=0;break; - case 2:var _aQl_=1;break; - case 3:var _aQl_=1;break; - case 4:var _aQl_=1;break; - case 5:var _aQl_=1;break; - case 6:var _aQl_=0;break; - case 7:var _aQl_=0;break; - default:var _aQl_=1} - var - _aQm_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aQn_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aQm_), - _aQo_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aQp_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aQo_), - _aQq_=caml_call2(Runtime_ocaml_Runtime[83],_aQp_,_aQn_), - _aQr_=caml_call2(Runtime_ocaml_Runtime[83],_aQq_,_aQl_); - return caml_call2(Runtime_ocaml_Runtime[29],_L6_,_aQr_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L7_,[0],_aQk_,_aQj_)} - function _aO3_(param) - {function _aP4_(param) - {var - _aQb_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aQc_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$5), - _aQd_=caml_call2(Runtime_ocaml_Runtime[104],_aQc_,_aQb_), - _aQe_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$5), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aQe_,_aQd_), - _aQf_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$73), - _aQg_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$6), - _aQh_=caml_call2(Runtime_ocaml_Runtime[104],_aQg_,_aQf_), - _aQi_=caml_call1(Runtime_ocaml_Runtime[31],cst_3625$6), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aQi_,_aQh_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aP5_(param) - {switch(residence[0]) - {case 0:var _aP6_=1;break; - case 1:var _aP6_=0;break; - case 2:var _aP6_=1;break; - case 3:var _aP6_=1;break; - case 4:var _aP6_=1;break; - case 5:var _aP6_=1;break; - case 6:var _aP6_=0;break; - case 7:var _aP6_=0;break; - default:var _aP6_=1} - var - _aP7_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aP8_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aP7_), - _aP9_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aP__= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aP9_), - _aP$_=caml_call2(Runtime_ocaml_Runtime[83],_aP__,_aP8_), - _aQa_=caml_call2(Runtime_ocaml_Runtime[83],_aP$_,_aP6_); - return caml_call2(Runtime_ocaml_Runtime[29],_L8_,_aQa_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_L9_,[0],_aP5_,_aP4_)} - function _aO4_(param) - {function _aPv_(param) - {var - _aPW_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aPX_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$11), - _aPY_=caml_call2(Runtime_ocaml_Runtime[104],_aPX_,_aPW_), - _aPZ_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$11), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aPZ_,_aPY_), - _aP0_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$74), - _aP1_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$12), - _aP2_=caml_call2(Runtime_ocaml_Runtime[104],_aP1_,_aP0_), - _aP3_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$12), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aP3_,_aP2_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aPw_(param) - {switch(residence[0]) - {case 0:var _aPP_=1;break; - case 1:var _aPP_=0;break; - case 2:var _aPP_=1;break; - case 3:var _aPP_=1;break; - case 4:var _aPP_=1;break; - case 5:var _aPP_=1;break; - case 6:var _aPP_=0;break; - case 7:var _aPP_=0;break; - default:var _aPP_=1} - var - _aPQ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aPR_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPQ_), - _aPS_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aPT_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPS_), - _aPU_=caml_call2(Runtime_ocaml_Runtime[83],_aPT_,_aPR_), - _aPV_=caml_call2(Runtime_ocaml_Runtime[83],_aPU_,_aPP_); - return caml_call2(Runtime_ocaml_Runtime[29],_L__,_aPV_)} - var - _aPx_= - [0, - function(param) - {function _aPy_(param) - {var - _aPH_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aPI_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$13), - _aPJ_=caml_call2(Runtime_ocaml_Runtime[104],_aPI_,_aPH_), - _aPK_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$13), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aPK_,_aPJ_), - _aPL_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$75), - _aPM_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$14), - _aPN_=caml_call2(Runtime_ocaml_Runtime[104],_aPM_,_aPL_), - _aPO_=caml_call1(Runtime_ocaml_Runtime[31],cst_3640$14), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aPO_,_aPN_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aPz_(param) - {switch(residence[0]) - {case 0:var _aPA_=1;break; - case 1:var _aPA_=0;break; - case 2:var _aPA_=1;break; - case 3:var _aPA_=1;break; - case 4:var _aPA_=1;break; - case 5:var _aPA_=1;break; - case 6:var _aPA_=0;break; - case 7:var _aPA_=0;break; - default:var _aPA_=1} - var - _aPB_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aPC_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPB_), - _aPD_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aPE_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPD_), - _aPF_=caml_call2(Runtime_ocaml_Runtime[83],_aPE_,_aPC_), - _aPG_=caml_call2(Runtime_ocaml_Runtime[83],_aPF_,_aPA_); - return caml_call2(Runtime_ocaml_Runtime[29],_L$_,_aPG_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ma_,[0],_aPz_,_aPy_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mb_,_aPx_,_aPw_,_aPv_)} - function _aO5_(param) - {function _aPe_(param) - {var - _aPn_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aPo_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$8), - _aPp_=caml_call2(Runtime_ocaml_Runtime[104],_aPo_,_aPn_), - _aPq_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$8), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aPq_,_aPp_), - _aPr_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$76), - _aPs_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$9), - _aPt_=caml_call2(Runtime_ocaml_Runtime[104],_aPs_,_aPr_), - _aPu_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$9), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aPu_,_aPt_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aPf_(param) - {switch(residence[0]) - {case 0:var _aPg_=1;break; - case 1:var _aPg_=0;break; - case 2:var _aPg_=1;break; - case 3:var _aPg_=1;break; - case 4:var _aPg_=1;break; - case 5:var _aPg_=1;break; - case 6:var _aPg_=0;break; - case 7:var _aPg_=0;break; - default:var _aPg_=1} - var - _aPh_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aPi_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aPh_), - _aPj_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aPk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aPj_), - _aPl_=caml_call2(Runtime_ocaml_Runtime[83],_aPk_,_aPi_), - _aPm_=caml_call2(Runtime_ocaml_Runtime[83],_aPl_,_aPg_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mc_,_aPm_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Md_,[0],_aPf_,_aPe_)} + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDZ_)) var - _aO6_= - [0, - function(param) - {function _aO7_(param) - {var - _aPb_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$10), - _aPc_= + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700); + else + var + _aD0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$117), + _aD1_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aD0_), + _aD2_ = caml_call1(Runtime_ocaml_Runtime[69], _aD1_), + _aD3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21400), + _aD4_ = caml_call2(Runtime_ocaml_Runtime[104], _aD3_, _aD2_), + _aD5_ = caml_call1(Runtime_ocaml_Runtime[31], cst_245700$0), + _aDU_ = caml_call2(Runtime_ocaml_Runtime[93], _aD5_, _aD4_); + } + } + } + } + } + break; + case 1: + var _aD6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$304); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aD6_)) + var + _aDU_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_150100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_184000$0); + else{ + var _aD7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$226); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD7_)) + var _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199200); + else{ + var _aD8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD8_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206100); + else{ + var _aD9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD9_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_213200); + else{ + var _aD__ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$78); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD__)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220200); + else{ + var + _aD$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$118); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aD$_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800); + else + var + _aEa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$119), + _aEb_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEa_), + _aEc_ = caml_call1(Runtime_ocaml_Runtime[69], _aEb_), + _aEd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20500), + _aEe_ = caml_call2(Runtime_ocaml_Runtime[104], _aEd_, _aEc_), + _aEf_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235800$0), + _aDU_ = caml_call2(Runtime_ocaml_Runtime[93], _aEf_, _aEe_); + } + } + } + } + } + break; + default: + var _aEg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$305); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aEg_)) + var + _aDU_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_170800); + else{ + var _aEh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$227); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEh_)) + var _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_186200); + else{ + var _aEi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEi_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_193900); + else{ + var _aEj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEj_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700); + else{ + var _aEk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$79); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEk_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_209400); + else{ + var + _aEl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$120); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aEl_)) + var + _aDU_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000); + else + var + _aEm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$121), + _aEn_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aEm_), + _aEo_ = caml_call1(Runtime_ocaml_Runtime[69], _aEn_), + _aEp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19500), + _aEq_ = caml_call2(Runtime_ocaml_Runtime[104], _aEp_, _aEo_), + _aEr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225000$0), + _aDU_ = caml_call2(Runtime_ocaml_Runtime[93], _aEr_, _aEq_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aDU_, taux_francs_vers_euros); + } + function _aDK_(param){ + var + _aDL_ = caml_call3(Runtime_ocaml_Runtime[57], 2002, 1, 1), + _aDM_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aDL_), + _aDN_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _aDO_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aDN_), + _aDP_ = caml_call2(Runtime_ocaml_Runtime[83], _aDO_, _aDM_), + _aDQ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aDR_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aDQ_), + _aDS_ = caml_call2(Runtime_ocaml_Runtime[83], _aDR_, _aDP_); + return caml_call2(Runtime_ocaml_Runtime[29], _zZ_, _aDS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z0_, [0], _aDK_, _aDJ_); + }, + _azb_ = + function(param){ + function _aC0_(param){ + switch(zone[0]){ + case 0: + var _aC__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$306); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aC__)) + var + _aC$_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_169100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_203800); + else{ + var _aDa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$228); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDa_)) + var _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219100); + else{ + var _aDb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDb_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225200); + else{ + var _aDc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDc_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_231500); + else{ + var _aDd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$80); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDd_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_237700); + else{ + var + _aDe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$122); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDe_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$1); + else + var + _aDf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$123), + _aDg_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDf_), + _aDh_ = caml_call1(Runtime_ocaml_Runtime[69], _aDg_), + _aDi_ = caml_call1(Runtime_ocaml_Runtime[31], cst_21100), + _aDj_ = caml_call2(Runtime_ocaml_Runtime[104], _aDi_, _aDh_), + _aDk_ = caml_call1(Runtime_ocaml_Runtime[31], cst_242800$2), + _aC$_ = caml_call2(Runtime_ocaml_Runtime[93], _aDk_, _aDj_); + } + } + } + } + } + break; + case 1: + var _aDl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$307); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDl_)) + var + _aC$_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_148300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_181800); + else{ + var _aDm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$229); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDm_)) + var _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196800); + else{ + var _aDn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDn_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203700); + else{ + var _aDo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDo_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210700); + else{ + var _aDp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$81); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDp_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600); + else{ + var + _aDq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$124); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDq_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000); + else + var + _aDr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$125), + _aDs_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDr_), + _aDt_ = caml_call1(Runtime_ocaml_Runtime[69], _aDs_), + _aDu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20300), + _aDv_ = caml_call2(Runtime_ocaml_Runtime[104], _aDu_, _aDt_), + _aDw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_233000$0), + _aC$_ = caml_call2(Runtime_ocaml_Runtime[93], _aDw_, _aDv_); + } + } + } + } + } + break; + default: + var _aDx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$308); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aDx_)) + var + _aC$_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139100) + : caml_call1(Runtime_ocaml_Runtime[31], cst_168800); + else{ + var _aDy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$230); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDy_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184000$1); + else{ + var _aDz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDz_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191600); + else{ + var _aDA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDA_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199300); + else{ + var _aDB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$82); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDB_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206900); + else{ + var + _aDC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$126); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aDC_)) + var + _aC$_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300); + else + var + _aDD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$127), + _aDE_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aDD_), + _aDF_ = caml_call1(Runtime_ocaml_Runtime[69], _aDE_), + _aDG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300), + _aDH_ = caml_call2(Runtime_ocaml_Runtime[104], _aDG_, _aDF_), + _aDI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222300$0), + _aC$_ = caml_call2(Runtime_ocaml_Runtime[93], _aDI_, _aDH_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aC$_, taux_francs_vers_euros); + } + function _aC1_(param){ + var + _aC2_ = caml_call3(Runtime_ocaml_Runtime[57], 2001, 7, 1), + _aC3_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aC2_), + _aC4_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), + _aC5_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aC4_), + _aC6_ = caml_call2(Runtime_ocaml_Runtime[83], _aC5_, _aC3_), + _aC7_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aC8_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aC7_), + _aC9_ = caml_call2(Runtime_ocaml_Runtime[83], _aC8_, _aC6_); + return caml_call2(Runtime_ocaml_Runtime[29], _z1_, _aC9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z2_, [0], _aC1_, _aC0_); + }, + _azc_ = + function(param){ + function _aCf_(param){ + switch(zone[0]){ + case 0: + var _aCp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$309); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCp_)) + var + _aCq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_201800); + else{ + var _aCr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$231); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCr_)) + var _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216900); + else{ + var _aCs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCs_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223000); + else{ + var _aCt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCt_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229200); + else{ + var _aCu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$83); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCu_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235300); + else{ + var + _aCv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$128); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCv_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400); + else + var + _aCw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$129), + _aCx_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCw_), + _aCy_ = caml_call1(Runtime_ocaml_Runtime[69], _aCx_), + _aCz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900), + _aCA_ = caml_call2(Runtime_ocaml_Runtime[104], _aCz_, _aCy_), + _aCB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240400$0), + _aCq_ = caml_call2(Runtime_ocaml_Runtime[93], _aCB_, _aCA_); + } + } + } + } + } + break; + case 1: + var _aCC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$310); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCC_)) + var + _aCq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_146800) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180000); + else{ + var _aCD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$232); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCD_)) + var _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194900); + else{ + var _aCE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCE_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201700$0); + else{ + var _aCF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCF_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600); + else{ + var _aCG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$84); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCG_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215400); + else{ + var + _aCH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$130); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCH_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700); + else + var + _aCI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$131), + _aCJ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCI_), + _aCK_ = caml_call1(Runtime_ocaml_Runtime[69], _aCJ_), + _aCL_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100), + _aCM_ = caml_call2(Runtime_ocaml_Runtime[104], _aCL_, _aCK_), + _aCN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230700$0), + _aCq_ = caml_call2(Runtime_ocaml_Runtime[93], _aCN_, _aCM_); + } + } + } + } + } + break; + default: + var _aCO_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$311); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aCO_)) + var + _aCq_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_137700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_167100); + else{ + var _aCP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$233); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCP_)) + var _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182200); + else{ + var _aCQ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCQ_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189700); + else{ + var _aCR_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCR_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197300); + else{ + var _aCS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$85); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCS_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204900); + else{ + var + _aCT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$132); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aCT_)) + var + _aCq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100); + else + var + _aCU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$133), + _aCV_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aCU_), + _aCW_ = caml_call1(Runtime_ocaml_Runtime[69], _aCV_), + _aCX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100), + _aCY_ = caml_call2(Runtime_ocaml_Runtime[104], _aCX_, _aCW_), + _aCZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_220100$0), + _aCq_ = caml_call2(Runtime_ocaml_Runtime[93], _aCZ_, _aCY_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aCq_, taux_francs_vers_euros); + } + function _aCg_(param){ + var + _aCh_ = caml_call3(Runtime_ocaml_Runtime[57], 2000, 7, 1), + _aCi_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aCh_), + _aCj_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aCk_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aCj_), + _aCl_ = caml_call2(Runtime_ocaml_Runtime[83], _aCk_, _aCi_), + _aCm_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aCn_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aCm_), + _aCo_ = caml_call2(Runtime_ocaml_Runtime[83], _aCn_, _aCl_); + return caml_call2(Runtime_ocaml_Runtime[29], _z3_, _aCo_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z4_, [0], _aCg_, _aCf_); + }, + _azd_ = + function(param){ + function _aBw_(param){ + switch(zone[0]){ + case 0: + var _aBG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$312); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBG_)) + var + _aBH_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_167200) + : caml_call1(Runtime_ocaml_Runtime[31], cst_201600); + else{ + var _aBI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$234); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBI_)) + var _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_216700); + else{ + var _aBJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBJ_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222800); + else{ + var _aBK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBK_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229000); + else{ + var _aBL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$86); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBL_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_235100); + else{ + var + _aBM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$134); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBM_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200); + else + var + _aBN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$135), + _aBO_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBN_), + _aBP_ = caml_call1(Runtime_ocaml_Runtime[69], _aBO_), + _aBQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20900$0), + _aBR_ = caml_call2(Runtime_ocaml_Runtime[104], _aBQ_, _aBP_), + _aBS_ = caml_call1(Runtime_ocaml_Runtime[31], cst_240200$0), + _aBH_ = caml_call2(Runtime_ocaml_Runtime[93], _aBS_, _aBR_); + } + } + } + } + } + break; + case 1: + var _aBT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$313); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBT_)) + var + _aBH_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_146700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_179800); + else{ + var _aBU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$235); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBU_)) + var _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194700); + else{ + var _aBV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBV_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_201500); + else{ + var _aBW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBW_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208400); + else{ + var _aBX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$87); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBX_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_215200); + else{ + var + _aBY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$136); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBY_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500); + else + var + _aBZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$137), + _aB0_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBZ_), + _aB1_ = caml_call1(Runtime_ocaml_Runtime[69], _aB0_), + _aB2_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20100$0), + _aB3_ = caml_call2(Runtime_ocaml_Runtime[104], _aB2_, _aB1_), + _aB4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$0), + _aBH_ = caml_call2(Runtime_ocaml_Runtime[93], _aB4_, _aB3_); + } + } + } + } + } + break; + default: + var _aB5_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$314); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aB5_)) + var + _aBH_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_137600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_166900); + else{ + var _aB6_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$236); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB6_)) + var _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_182000); + else{ + var _aB7_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB7_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189500); + else{ + var _aB8_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB8_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197100); + else{ + var _aB9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$88); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB9_)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204700$0); + else{ + var + _aB__ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$138); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aB__)) + var + _aBH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900); + else + var + _aB$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$139), + _aCa_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aB$_), + _aCb_ = caml_call1(Runtime_ocaml_Runtime[69], _aCa_), + _aCc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$0), + _aCd_ = caml_call2(Runtime_ocaml_Runtime[104], _aCc_, _aCb_), + _aCe_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219900$0), + _aBH_ = caml_call2(Runtime_ocaml_Runtime[93], _aCe_, _aCd_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aBH_, taux_francs_vers_euros); + } + function _aBx_(param){ + var + _aBy_ = caml_call3(Runtime_ocaml_Runtime[57], 1999, 7, 1), + _aBz_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aBy_), + _aBA_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), + _aBB_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aBA_), + _aBC_ = caml_call2(Runtime_ocaml_Runtime[83], _aBB_, _aBz_), + _aBD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aBE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aBD_), + _aBF_ = caml_call2(Runtime_ocaml_Runtime[83], _aBE_, _aBC_); + return caml_call2(Runtime_ocaml_Runtime[29], _z5_, _aBF_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z6_, [0], _aBx_, _aBw_); + }, + _aze_ = + function(param){ + function _aAN_(param){ + switch(zone[0]){ + case 0: + var _aAX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$315); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAX_)) + var + _aAY_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_163300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_196900); + else{ + var _aAZ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$237); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAZ_)) + var _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211600); + else{ + var _aA0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA0_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217600$0); + else{ + var _aA1_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA1_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_223600); + else{ + var _aA2_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$89); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA2_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_229600); + else{ + var + _aA3_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$140); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA3_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600); + else + var + _aA4_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$141), + _aA5_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aA4_), + _aA6_ = caml_call1(Runtime_ocaml_Runtime[69], _aA5_), + _aA7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20400), + _aA8_ = caml_call2(Runtime_ocaml_Runtime[104], _aA7_, _aA6_), + _aA9_ = caml_call1(Runtime_ocaml_Runtime[31], cst_234600$0), + _aAY_ = caml_call2(Runtime_ocaml_Runtime[93], _aA9_, _aA8_); + } + } + } + } + } + break; + case 1: + var _aA__ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$316); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aA__)) + var + _aAY_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_143300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_175600); + else{ + var _aA$_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$238); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aA$_)) + var _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_190100); + else{ + var _aBa_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBa_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196600); + else{ + var _aBb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBb_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_203500); + else{ + var _aBc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$90); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBc_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210200); + else{ + var + _aBd_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$142); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBd_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100); + else + var + _aBe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$143), + _aBf_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBe_), + _aBg_ = caml_call1(Runtime_ocaml_Runtime[69], _aBf_), + _aBh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19600), + _aBi_ = caml_call2(Runtime_ocaml_Runtime[104], _aBh_, _aBg_), + _aBj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225100$0), + _aAY_ = caml_call2(Runtime_ocaml_Runtime[93], _aBj_, _aBi_); + } + } + } + } + } + break; + default: + var _aBk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$317); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aBk_)) + var + _aAY_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_134400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_163000$0); + else{ + var _aBl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$239); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBl_)) + var _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_177700); + else{ + var _aBm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBm_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_185100); + else{ + var _aBn_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBn_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_192500$0); + else{ + var _aBo_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$91); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBo_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$0); + else{ + var + _aBp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$144); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aBp_)) + var + _aAY_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700); + else + var + _aBq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$145), + _aBr_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aBq_), + _aBs_ = caml_call1(Runtime_ocaml_Runtime[69], _aBr_), + _aBt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18700), + _aBu_ = caml_call2(Runtime_ocaml_Runtime[104], _aBt_, _aBs_), + _aBv_ = caml_call1(Runtime_ocaml_Runtime[31], cst_214700$0), + _aAY_ = caml_call2(Runtime_ocaml_Runtime[93], _aBv_, _aBu_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aAY_, taux_francs_vers_euros); + } + function _aAO_(param){ + var + _aAP_ = caml_call3(Runtime_ocaml_Runtime[57], 1998, 7, 1), + _aAQ_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _aAP_), + _aAR_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), + _aAS_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _aAR_), + _aAT_ = caml_call2(Runtime_ocaml_Runtime[83], _aAS_, _aAQ_), + _aAU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aAV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aAU_), + _aAW_ = caml_call2(Runtime_ocaml_Runtime[83], _aAV_, _aAT_); + return caml_call2(Runtime_ocaml_Runtime[29], _z7_, _aAW_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z8_, [0], _aAO_, _aAN_); + }, + _azf_ = + function(param){ + function _az4_(param){ + switch(zone[0]){ + case 0: + var _aAc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$318); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAc_)) + var + _aAd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_160400) + : caml_call1(Runtime_ocaml_Runtime[31], cst_193400); + else{ + var _aAe_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$240); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAe_)) + var _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_207800); + else{ + var _aAf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAf_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_213700); + else{ + var _aAg_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAg_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_219600); + else{ + var _aAh_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$92); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAh_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_225500$0); + else{ + var + _aAi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$146); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAi_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$1); + else + var + _aAj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$147), + _aAk_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAj_), + _aAl_ = caml_call1(Runtime_ocaml_Runtime[69], _aAk_), + _aAm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_20000), + _aAn_ = caml_call2(Runtime_ocaml_Runtime[104], _aAm_, _aAl_), + _aAo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_230500$2), + _aAd_ = caml_call2(Runtime_ocaml_Runtime[93], _aAo_, _aAn_); + } + } + } + } + } + break; + case 1: + var _aAp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$319); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAp_)) + var + _aAd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_140800$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_172500$0); + else{ + var _aAq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$241); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAq_)) + var _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_186700); + else{ + var _aAr_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAr_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_193300); + else{ + var _aAs_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAs_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_199900$1); + else{ + var _aAt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$93); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAt_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_206500); + else{ + var + _aAu_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$148); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAu_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100); + else + var + _aAv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$149), + _aAw_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAv_), + _aAx_ = caml_call1(Runtime_ocaml_Runtime[69], _aAw_), + _aAy_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19300$0), + _aAz_ = caml_call2(Runtime_ocaml_Runtime[104], _aAy_, _aAx_), + _aAA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_221100$0), + _aAd_ = caml_call2(Runtime_ocaml_Runtime[93], _aAA_, _aAz_); + } + } + } + } + } + break; + default: + var _aAB_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$320); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _aAB_)) + var + _aAd_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_132000$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_180100$1); + else{ + var _aAC_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$242); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAC_)) + var _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_174500); + else{ + var _aAD_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAD_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_181800$0); + else{ + var _aAE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAE_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_189100); + else{ + var _aAF_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$94); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAF_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_196400); + else{ + var + _aAG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$150); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _aAG_)) + var + _aAd_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900); + else + var + _aAH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$151), + _aAI_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _aAH_), + _aAJ_ = caml_call1(Runtime_ocaml_Runtime[69], _aAI_), + _aAK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18400), + _aAL_ = caml_call2(Runtime_ocaml_Runtime[104], _aAK_, _aAJ_), + _aAM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_210900$0), + _aAd_ = caml_call2(Runtime_ocaml_Runtime[93], _aAM_, _aAL_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _aAd_, taux_francs_vers_euros); + } + function _az5_(param){ + var + _az6_ = caml_call3(Runtime_ocaml_Runtime[57], 1997, 7, 1), + _az7_ = caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _az6_), + _az8_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), + _az9_ = caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _az8_), + _az__ = caml_call2(Runtime_ocaml_Runtime[83], _az9_, _az7_), + _az$_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _aAa_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _az$_), + _aAb_ = caml_call2(Runtime_ocaml_Runtime[83], _aAa_, _az__); + return caml_call2(Runtime_ocaml_Runtime[29], _z9_, _aAb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _z__, [0], _az5_, _az4_); + }, + _azg_ = + [0, + function(param){ + function _azj_(param){ + switch(zone[0]){ + case 0: + var _azt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$321); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azt_)) + var + _azu_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_158700) + : caml_call1(Runtime_ocaml_Runtime[31], cst_191300); + else{ + var _azv_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$243); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azv_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_205500); + else{ + var _azw_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azw_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_211300); + else{ + var _azx_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azx_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_217100); + else{ + var _azy_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$95); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azy_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_222900); + else{ + var + _azz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$152); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azz_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000); + else + var + _azA_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$153), + _azB_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _azA_), + _azC_ = caml_call1(Runtime_ocaml_Runtime[69], _azB_), + _azD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19800), + _azE_ = caml_call2(Runtime_ocaml_Runtime[104], _azD_, _azC_), + _azF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_228000$0), + _azu_ = caml_call2(Runtime_ocaml_Runtime[93], _azF_, _azE_); + } + } + } + } + } + break; + case 1: + var _azG_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$322); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azG_)) + var + _azu_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_139300) + : caml_call1(Runtime_ocaml_Runtime[31], cst_170600); + else{ + var _azH_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$244); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azH_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_184700); + else{ + var _azI_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$98); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azI_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_191200); + else{ + var _azJ_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azJ_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_197700$0); + else{ + var _azK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$96); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azK_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_204200); + else{ + var + _azL_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$154); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azL_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700); + else + var + _azM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$155), + _azN_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _azM_), + _azO_ = caml_call1(Runtime_ocaml_Runtime[69], _azN_), + _azP_ = caml_call1(Runtime_ocaml_Runtime[31], cst_19100$1), + _azQ_ = caml_call2(Runtime_ocaml_Runtime[104], _azP_, _azO_), + _azR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_218700$0), + _azu_ = caml_call2(Runtime_ocaml_Runtime[93], _azR_, _azQ_); + } + } + } + } + } + break; + default: + var _azS_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$323); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azS_)) + var + _azu_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_130600) + : caml_call1(Runtime_ocaml_Runtime[31], cst_158400); + else{ + var _azT_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$245); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azT_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_172600); + else{ + var _azU_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$99); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azU_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_179800$0); + else{ + var _azV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azV_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_187000); + else{ + var _azW_ = caml_call1(Runtime_ocaml_Runtime[46], cst_4$97); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azW_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_194200); + else{ + var + _azX_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$156); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _azX_)) + var + _azu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$0); + else + var + _azY_ = caml_call1(Runtime_ocaml_Runtime[46], cst_5$157), + _azZ_ = + caml_call2 + (Runtime_ocaml_Runtime[96], + nombre_personnes_a_charge, + _azY_), + _az0_ = caml_call1(Runtime_ocaml_Runtime[69], _azZ_), + _az1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_18200), + _az2_ = caml_call2(Runtime_ocaml_Runtime[104], _az1_, _az0_), + _az3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_208600$1), + _azu_ = caml_call2(Runtime_ocaml_Runtime[93], _az3_, _az2_); + } + } + } + } + } + } + return caml_call2 + (Runtime_ocaml_Runtime[104], _azu_, taux_francs_vers_euros); + } + function _azk_(param){ + var + _azl_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 7, 1), + _azm_ = + caml_call2(Runtime_ocaml_Runtime[115], date_calcul, _azl_), + _azn_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 7, 1), + _azo_ = + caml_call2(Runtime_ocaml_Runtime[130], date_calcul, _azn_), + _azp_ = caml_call2(Runtime_ocaml_Runtime[83], _azo_, _azm_), + _azq_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _azr_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _azq_), + _azs_ = caml_call2(Runtime_ocaml_Runtime[83], _azr_, _azp_); + return caml_call2(Runtime_ocaml_Runtime[29], _z$_, _azs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aa_, [0], _azk_, _azj_); + }, + _azf_, + _aze_, + _azd_, + _azc_, + _azb_, + _aza_, + _ay$_, + _ay__, + _ay9_, + _ay8_, + _ay7_, + _ay6_, + _ay5_, + _ay4_, + _ay3_, + _ay2_, + _ay1_, + _ay0_, + _ayZ_, + _ayY_, + _ayX_], + _azh_ = + caml_call4(Runtime_ocaml_Runtime[63], _Ab_, _azg_, _ayW_, _ayV_); + return _azh_; + } + catch(_azi_){ + var _ayU_ = caml_wrap_exception(_azi_); + if(_ayU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _zu_], 1); + throw caml_maybe_attach_backtrace(_ayU_, 0); + } + } + var + calcul_plafond_mensualite_d842 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ac_, Runtime_ocaml_Runtime[10], _aoc_); + try{ + var + _aoe_ = + function(param){ + function _ayk_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _ayl_(param){return 0;} + function _aym_(param){ + function _ayI_(param){ + var _ayP_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$324); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ayP_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5399$5); + var + _ayQ_ = + caml_call1(Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ayR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$4), + _ayS_ = caml_call2(Runtime_ocaml_Runtime[104], _ayR_, _ayQ_), + _ayT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5399$6); + return caml_call2(Runtime_ocaml_Runtime[93], _ayT_, _ayS_); + } + function _ayJ_(param){ + var + _ayK_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ayL_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayK_), + _ayM_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ayN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayM_), + _ayO_ = caml_call2(Runtime_ocaml_Runtime[83], _ayN_, _ayL_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ae_, _ayO_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Af_, [0], _ayJ_, _ayI_); + } + function _ayn_(param){ + function _ayx_(param){ + var _ayE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$325); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], nombre_personnes_a_charge, _ayE_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5422$5); + var + _ayF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$4), + _ayG_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _ayF_, + multiplicateur_majoration_char), + _ayH_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5422$6); + return caml_call2(Runtime_ocaml_Runtime[93], _ayH_, _ayG_); + } + function _ayy_(param){ + var + _ayz_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _ayA_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ayz_), + _ayB_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ayC_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayB_), + _ayD_ = caml_call2(Runtime_ocaml_Runtime[83], _ayC_, _ayA_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ag_, _ayD_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ah_, [0], _ayy_, _ayx_); + } + var + _ayo_ = + [0, + function(param){ + function _ayp_(param){ + var _ayt_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$326); + if + (caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_a_charge, + _ayt_)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_5612$5); + var + _ayu_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$4), + _ayv_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _ayu_, + multiplicateur_majoration_char), + _ayw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_5612$6); + return caml_call2(Runtime_ocaml_Runtime[93], _ayw_, _ayv_); + } + function _ayq_(param){ + var + _ayr_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _ays_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayr_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ai_, _ays_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aj_, [0], _ayq_, _ayp_); + }, + _ayn_, + _aym_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ak_, _ayo_, _ayl_, _ayk_); + }, + _aof_ = function(param){return 1;}, + _aog_ = + [0, + function(param){ + function _aus_(param){ + function _axL_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _axM_(param){return 0;} + function _axN_(param){ + function _ax__(param){ + var + _ayg_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ayh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1224$5), + _ayi_ = caml_call2(Runtime_ocaml_Runtime[104], _ayh_, _ayg_), + _ayj_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2699$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5399$7); + return caml_call2(Runtime_ocaml_Runtime[93], _ayj_, _ayi_); + } + function _ax$_(param){ + var + _aya_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ayb_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aya_), + _ayc_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ayd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ayc_), + _aye_ = caml_call2(Runtime_ocaml_Runtime[83], _ayd_, _ayb_), + _ayf_ = + caml_call2(Runtime_ocaml_Runtime[83], _aye_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Al_, _ayf_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Am_, [0], _ax$_, _ax__); + } + function _axO_(param){ + function _axY_(param){ + var + _ax6_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _ax7_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1229$5), + _ax8_ = caml_call2(Runtime_ocaml_Runtime[104], _ax7_, _ax6_), + _ax9_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2710$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5422$7); + return caml_call2(Runtime_ocaml_Runtime[93], _ax9_, _ax8_); + } + function _axZ_(param){ + var + _ax0_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _ax1_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ax0_), + _ax2_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ax3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ax2_), + _ax4_ = caml_call2(Runtime_ocaml_Runtime[83], _ax3_, _ax1_), + _ax5_ = + caml_call2(Runtime_ocaml_Runtime[83], _ax4_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _An_, _ax5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ao_, [0], _axZ_, _axY_); + } + var + _axP_ = + [0, + function(param){ + function _axQ_(param){ + var + _axV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_1272$5), + _axW_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _axV_, + multiplicateur_majoration_char), + _axX_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_2805$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_5612$7); + return caml_call2(Runtime_ocaml_Runtime[93], _axX_, _axW_); + } + function _axR_(param){ + var + _axS_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _axT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axS_), + _axU_ = + caml_call2(Runtime_ocaml_Runtime[83], _axT_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Ap_, _axU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Aq_, [0], _axR_, _axQ_); + }, + _axO_, + _axN_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ar_, _axP_, _axM_, _axL_); + } + function _aut_(param){return 1;} + var + _auu_ = + [0, + function(param){ + function _auv_(param){ + function _av$_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _awa_(param){return 0;} + function _awb_(param){ + function _axu_(param){ + var + _axD_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _axE_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$5), + _axF_ = caml_call2(Runtime_ocaml_Runtime[104], _axE_, _axD_), + _axG_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$5), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _axG_, _axF_), + _axH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$72), + _axI_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$6), + _axJ_ = caml_call2(Runtime_ocaml_Runtime[104], _axI_, _axH_), + _axK_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3614$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _axK_, _axJ_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _axv_(param){ + switch(residence[0]){ + case 0: + var _axw_ = 1; break; + case 1: + var _axw_ = 0; break; + case 2: + var _axw_ = 1; break; + case 3: + var _axw_ = 1; break; + case 4: + var _axw_ = 1; break; + case 5: + var _axw_ = 1; break; + case 6: + var _axw_ = 0; break; + case 7: + var _axw_ = 0; break; + default: var _axw_ = 1; + } + var + _axx_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _axy_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axx_), + _axz_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _axA_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axz_), + _axB_ = caml_call2(Runtime_ocaml_Runtime[83], _axA_, _axy_), + _axC_ = caml_call2(Runtime_ocaml_Runtime[83], _axB_, _axw_); + return caml_call2(Runtime_ocaml_Runtime[29], _As_, _axC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _At_, [0], _axv_, _axu_); + } + function _awc_(param){ + function _axd_(param){ + var + _axm_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _axn_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$5), + _axo_ = caml_call2(Runtime_ocaml_Runtime[104], _axn_, _axm_), + _axp_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$5), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _axp_, _axo_), + _axq_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$73), + _axr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$6), + _axs_ = caml_call2(Runtime_ocaml_Runtime[104], _axr_, _axq_), + _axt_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3625$6), + limite = caml_call2(Runtime_ocaml_Runtime[93], _axt_, _axs_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _axe_(param){ + switch(residence[0]){ + case 0: + var _axf_ = 1; break; + case 1: + var _axf_ = 0; break; + case 2: + var _axf_ = 1; break; + case 3: + var _axf_ = 1; break; + case 4: + var _axf_ = 1; break; + case 5: + var _axf_ = 1; break; + case 6: + var _axf_ = 0; break; + case 7: + var _axf_ = 0; break; + default: var _axf_ = 1; + } + var + _axg_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _axh_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _axg_), + _axi_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _axj_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _axi_), + _axk_ = caml_call2(Runtime_ocaml_Runtime[83], _axj_, _axh_), + _axl_ = caml_call2(Runtime_ocaml_Runtime[83], _axk_, _axf_); + return caml_call2(Runtime_ocaml_Runtime[29], _Au_, _axl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Av_, [0], _axe_, _axd_); + } + function _awd_(param){ + function _awG_(param){ + var + _aw7_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _aw8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$11), + _aw9_ = caml_call2(Runtime_ocaml_Runtime[104], _aw8_, _aw7_), + _aw__ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$11), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _aw__, _aw9_), + _aw$_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$74), + _axa_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$12), + _axb_ = caml_call2(Runtime_ocaml_Runtime[104], _axa_, _aw$_), + _axc_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$12), + limite = caml_call2(Runtime_ocaml_Runtime[93], _axc_, _axb_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _awH_(param){ + switch(residence[0]){ + case 0: + var _aw0_ = 1; break; + case 1: + var _aw0_ = 0; break; + case 2: + var _aw0_ = 1; break; + case 3: + var _aw0_ = 1; break; + case 4: + var _aw0_ = 1; break; + case 5: + var _aw0_ = 1; break; + case 6: + var _aw0_ = 0; break; + case 7: + var _aw0_ = 0; break; + default: var _aw0_ = 1; + } + var + _aw1_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _aw2_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aw1_), + _aw3_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aw4_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aw3_), + _aw5_ = caml_call2(Runtime_ocaml_Runtime[83], _aw4_, _aw2_), + _aw6_ = caml_call2(Runtime_ocaml_Runtime[83], _aw5_, _aw0_); + return caml_call2(Runtime_ocaml_Runtime[29], _Aw_, _aw6_); + } + var + _awI_ = + [0, + function(param){ + function _awJ_(param){ + var + _awS_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awT_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$13), + _awU_ = caml_call2(Runtime_ocaml_Runtime[104], _awT_, _awS_), + _awV_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$13), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awV_, _awU_), + _awW_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$75), + _awX_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$14), + _awY_ = caml_call2(Runtime_ocaml_Runtime[104], _awX_, _awW_), + _awZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3640$14), + limite = caml_call2(Runtime_ocaml_Runtime[93], _awZ_, _awY_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _awK_(param){ + switch(residence[0]){ + case 0: + var _awL_ = 1; break; + case 1: + var _awL_ = 0; break; + case 2: + var _awL_ = 1; break; + case 3: + var _awL_ = 1; break; + case 4: + var _awL_ = 1; break; + case 5: + var _awL_ = 1; break; + case 6: + var _awL_ = 0; break; + case 7: + var _awL_ = 0; break; + default: var _awL_ = 1; + } + var + _awM_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _awN_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _awM_), + _awO_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _awP_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awO_), + _awQ_ = caml_call2(Runtime_ocaml_Runtime[83], _awP_, _awN_), + _awR_ = caml_call2(Runtime_ocaml_Runtime[83], _awQ_, _awL_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ax_, _awR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ay_, [0], _awK_, _awJ_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Az_, _awI_, _awH_, _awG_); + } + function _awe_(param){ + function _awp_(param){ + var + _awy_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _awz_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$8), + _awA_ = caml_call2(Runtime_ocaml_Runtime[104], _awz_, _awy_), + _awB_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _awB_, _awA_), + _awC_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$76), + _awD_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$9), + _awE_ = caml_call2(Runtime_ocaml_Runtime[104], _awD_, _awC_), + _awF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$9), + limite = caml_call2(Runtime_ocaml_Runtime[93], _awF_, _awE_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _awq_(param){ + switch(residence[0]){ + case 0: + var _awr_ = 1; break; + case 1: + var _awr_ = 0; break; + case 2: + var _awr_ = 1; break; + case 3: + var _awr_ = 1; break; + case 4: + var _awr_ = 1; break; + case 5: + var _awr_ = 1; break; + case 6: + var _awr_ = 0; break; + case 7: + var _awr_ = 0; break; + default: var _awr_ = 1; + } + var + _aws_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _awt_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _aws_), + _awu_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _awv_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awu_), + _aww_ = caml_call2(Runtime_ocaml_Runtime[83], _awv_, _awt_), + _awx_ = caml_call2(Runtime_ocaml_Runtime[83], _aww_, _awr_); + return caml_call2(Runtime_ocaml_Runtime[29], _AA_, _awx_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AB_, [0], _awq_, _awp_); + } + var + _awf_ = + [0, + function(param){ + function _awg_(param){ + var + _awm_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$10), + _awn_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + _awm_, + multiplicateur_majoration_char), + _awo_ = caml_call1(Runtime_ocaml_Runtime[31], cst_3767$10); + return caml_call2(Runtime_ocaml_Runtime[93], _awo_, _awn_); + } + function _awh_(param){ + switch(residence[0]){ + case 0: + var _awi_ = 1; break; + case 1: + var _awi_ = 0; break; + case 2: + var _awi_ = 1; break; + case 3: + var _awi_ = 1; break; + case 4: + var _awi_ = 1; break; + case 5: + var _awi_ = 1; break; + case 6: + var _awi_ = 0; break; + case 7: + var _awi_ = 0; break; + default: var _awi_ = 1; + } + var + _awj_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _awk_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _awj_), + _awl_ = caml_call2(Runtime_ocaml_Runtime[83], _awk_, _awi_); + return caml_call2(Runtime_ocaml_Runtime[29], _AC_, _awl_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AD_, [0], _awh_, _awg_); + }, + _awe_, + _awd_, + _awc_, + _awb_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AE_, _awf_, _awa_, _av$_); + } + function _auw_(param){return 1;} + var + _aux_ = + [0, + function(param){ + function _auy_(param){ + throw caml_maybe_attach_backtrace + (Runtime_ocaml_Runtime[2], 1); + } + function _auz_(param){return 0;} + function _auA_(param){ + function _avU_(param){ + var + _av3_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _av4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$7), + _av5_ = caml_call2(Runtime_ocaml_Runtime[104], _av4_, _av3_), + _av6_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _av6_, _av5_), + _av7_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$77), + _av8_ = caml_call1(Runtime_ocaml_Runtime[31], cst_929$8), + _av9_ = caml_call2(Runtime_ocaml_Runtime[104], _av8_, _av7_), + _av__ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1858$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3614$7), + limite = caml_call2(Runtime_ocaml_Runtime[93], _av__, _av9_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _avV_(param){ + switch(residence[0]){ + case 0: + var _avW_ = 1; break; + case 1: + var _avW_ = 0; break; + case 2: + var _avW_ = 1; break; + case 3: + var _avW_ = 1; break; + case 4: + var _avW_ = 1; break; + case 5: + var _avW_ = 1; break; + case 6: + var _avW_ = 0; break; + case 7: + var _avW_ = 0; break; + default: var _avW_ = 1; + } + var + _avX_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _avY_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avX_), + _avZ_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _av0_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avZ_), + _av1_ = caml_call2(Runtime_ocaml_Runtime[83], _av0_, _avY_), + _av2_ = caml_call2(Runtime_ocaml_Runtime[83], _av1_, _avW_); + return caml_call2(Runtime_ocaml_Runtime[29], _AF_, _av2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AG_, [0], _avV_, _avU_); + } + function _auB_(param){ + function _avD_(param){ + var + _avM_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _avN_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$7), + _avO_ = caml_call2(Runtime_ocaml_Runtime[104], _avN_, _avM_), + _avP_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$1) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$8), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _avP_, _avO_), + _avQ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$78), + _avR_ = caml_call1(Runtime_ocaml_Runtime[31], cst_932$8), + _avS_ = caml_call2(Runtime_ocaml_Runtime[104], _avR_, _avQ_), + _avT_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1864$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3625$7), + limite = caml_call2(Runtime_ocaml_Runtime[93], _avT_, _avS_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _avE_(param){ + switch(residence[0]){ + case 0: + var _avF_ = 1; break; + case 1: + var _avF_ = 0; break; + case 2: + var _avF_ = 1; break; + case 3: + var _avF_ = 1; break; + case 4: + var _avF_ = 1; break; + case 5: + var _avF_ = 1; break; + case 6: + var _avF_ = 0; break; + case 7: + var _avF_ = 0; break; + default: var _avF_ = 1; + } + var + _avG_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _avH_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avG_), + _avI_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _avJ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avI_), + _avK_ = caml_call2(Runtime_ocaml_Runtime[83], _avJ_, _avH_), + _avL_ = caml_call2(Runtime_ocaml_Runtime[83], _avK_, _avF_); + return caml_call2(Runtime_ocaml_Runtime[29], _AH_, _avL_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AI_, [0], _avE_, _avD_); + } + function _auC_(param){ + function _au6_(param){ + var + _avv_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _avw_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$15), + _avx_ = caml_call2(Runtime_ocaml_Runtime[104], _avw_, _avv_), + _avy_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$3) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$16), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _avy_, _avx_), + _avz_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$79), + _avA_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$16), + _avB_ = caml_call2(Runtime_ocaml_Runtime[104], _avA_, _avz_), + _avC_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$4) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$15), + limite = caml_call2(Runtime_ocaml_Runtime[93], _avC_, _avB_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _au7_(param){ + switch(residence[0]){ + case 0: + var _avo_ = 1; break; + case 1: + var _avo_ = 0; break; + case 2: + var _avo_ = 1; break; + case 3: + var _avo_ = 1; break; + case 4: + var _avo_ = 1; break; + case 5: + var _avo_ = 1; break; + case 6: + var _avo_ = 0; break; + case 7: + var _avo_ = 0; break; + default: var _avo_ = 1; + } + var + _avp_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _avq_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _avp_), + _avr_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _avs_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avr_), + _avt_ = caml_call2(Runtime_ocaml_Runtime[83], _avs_, _avq_), + _avu_ = caml_call2(Runtime_ocaml_Runtime[83], _avt_, _avo_); + return caml_call2(Runtime_ocaml_Runtime[29], _AJ_, _avu_); + } + var + _au8_ = + [0, + function(param){ + function _au9_(param){ + var + _avg_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _avh_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$17), + _avi_ = caml_call2(Runtime_ocaml_Runtime[104], _avh_, _avg_), + _avj_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$5) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$18), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _avj_, _avi_), + _avk_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$80), + _avl_ = caml_call1(Runtime_ocaml_Runtime[31], cst_936$18), + _avm_ = caml_call2(Runtime_ocaml_Runtime[104], _avl_, _avk_), + _avn_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1872$6) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3640$17), + limite = caml_call2(Runtime_ocaml_Runtime[93], _avn_, _avm_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _au__(param){ + switch(residence[0]){ + case 0: + var _au$_ = 1; break; + case 1: + var _au$_ = 0; break; + case 2: + var _au$_ = 1; break; + case 3: + var _au$_ = 1; break; + case 4: + var _au$_ = 1; break; + case 5: + var _au$_ = 1; break; + case 6: + var _au$_ = 0; break; + case 7: + var _au$_ = 0; break; + default: var _au$_ = 1; + } + var + _ava_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _avb_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ava_), + _avc_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _avd_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _avc_), + _ave_ = caml_call2(Runtime_ocaml_Runtime[83], _avd_, _avb_), + _avf_ = caml_call2(Runtime_ocaml_Runtime[83], _ave_, _au$_); + return caml_call2(Runtime_ocaml_Runtime[29], _AK_, _avf_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AL_, [0], _au__, _au9_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AM_, _au8_, _au7_, _au6_); + } + function _auD_(param){ + function _auP_(param){ + var + _auY_ = + caml_call1 + (Runtime_ocaml_Runtime[69], nombre_personnes_a_charge), + _auZ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$11), + _au0_ = caml_call2(Runtime_ocaml_Runtime[104], _auZ_, _auY_), + _au1_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$2) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$12), + montant = + caml_call2(Runtime_ocaml_Runtime[93], _au1_, _au0_), + _au2_ = caml_call1(Runtime_ocaml_Runtime[39], cst_6$81), + _au3_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$12), + _au4_ = caml_call2(Runtime_ocaml_Runtime[104], _au3_, _au2_), + _au5_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$3) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$11), + limite = caml_call2(Runtime_ocaml_Runtime[93], _au5_, _au4_); + return caml_call2 + (Runtime_ocaml_Runtime[123], montant, limite) + ? limite + : montant; + } + function _auQ_(param){ + switch(residence[0]){ + case 0: + var _auR_ = 1; break; + case 1: + var _auR_ = 0; break; + case 2: + var _auR_ = 1; break; + case 3: + var _auR_ = 1; break; + case 4: + var _auR_ = 1; break; + case 5: + var _auR_ = 1; break; + case 6: + var _auR_ = 0; break; + case 7: + var _auR_ = 0; break; + default: var _auR_ = 1; + } + var + _auS_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _auT_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _auS_), + _auU_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _auV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auU_), + _auW_ = caml_call2(Runtime_ocaml_Runtime[83], _auV_, _auT_), + _auX_ = caml_call2(Runtime_ocaml_Runtime[83], _auW_, _auR_); + return caml_call2(Runtime_ocaml_Runtime[29], _AN_, _auX_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _AO_, [0], _auQ_, _auP_); + } + var + _auE_ = + [0, + function(param){ + function _auF_(param){ + var + _auM_ = caml_call1(Runtime_ocaml_Runtime[31], cst_969$13), + _auN_ = caml_call2 (Runtime_ocaml_Runtime[104], - _aPb_, + _auM_, multiplicateur_majoration_char), - _aPd_=caml_call1(Runtime_ocaml_Runtime[31],cst_3767$10); - return caml_call2(Runtime_ocaml_Runtime[93],_aPd_,_aPc_)} - function _aO8_(param) - {switch(residence[0]) - {case 0:var _aO9_=1;break; - case 1:var _aO9_=0;break; - case 2:var _aO9_=1;break; - case 3:var _aO9_=1;break; - case 4:var _aO9_=1;break; - case 5:var _aO9_=1;break; - case 6:var _aO9_=0;break; - case 7:var _aO9_=0;break; - default:var _aO9_=1} - var - _aO__=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aO$_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aO__), - _aPa_=caml_call2(Runtime_ocaml_Runtime[83],_aO$_,_aO9_); - return caml_call2(Runtime_ocaml_Runtime[29],_Me_,_aPa_)} + _auO_ = + 0 === situation_familiale_calcul_apl[0] + ? caml_call1(Runtime_ocaml_Runtime[31], cst_1938$4) + : caml_call1(Runtime_ocaml_Runtime[31], cst_3767$13); + return caml_call2(Runtime_ocaml_Runtime[93], _auO_, _auN_); + } + function _auG_(param){ + switch(residence[0]){ + case 0: + var _auH_ = 1; break; + case 1: + var _auH_ = 0; break; + case 2: + var _auH_ = 1; break; + case 3: + var _auH_ = 1; break; + case 4: + var _auH_ = 1; break; + case 5: + var _auH_ = 1; break; + case 6: + var _auH_ = 0; break; + case 7: + var _auH_ = 0; break; + default: var _auH_ = 1; + } + var + _auI_ = + caml_call2(Runtime_ocaml_Runtime[83], _auH_, copropriete), + _auJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _auK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _auJ_), + _auL_ = caml_call2(Runtime_ocaml_Runtime[83], _auK_, _auI_); + return caml_call2(Runtime_ocaml_Runtime[29], _AP_, _auL_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_Mf_,[0],_aO8_,_aO7_)}, - _aO5_, - _aO4_, - _aO3_, - _aO2_]; + (Runtime_ocaml_Runtime[63], _AQ_, [0], _auG_, _auF_); + }, + _auD_, + _auC_, + _auB_, + _auA_]; return caml_call4 - (Runtime_ocaml_Runtime[63],_Mg_,_aO6_,_aO1_,_aO0_)} - function _aNl_(param){return 1} - var - _aNm_= - [0, - function(param) - {function _aNn_(param){throw Runtime_ocaml_Runtime[2]} - function _aNo_(param){return 0} - function _aNp_(param) - {function _aOJ_(param) - {var - _aOS_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aOT_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$7), - _aOU_=caml_call2(Runtime_ocaml_Runtime[104],_aOT_,_aOS_), - _aOV_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$8), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aOV_,_aOU_), - _aOW_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$77), - _aOX_=caml_call1(Runtime_ocaml_Runtime[31],cst_929$8), - _aOY_=caml_call2(Runtime_ocaml_Runtime[104],_aOX_,_aOW_), - _aOZ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1858$2) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3614$7), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aOZ_,_aOY_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aOK_(param) - {switch(residence[0]) - {case 0:var _aOL_=1;break; - case 1:var _aOL_=0;break; - case 2:var _aOL_=1;break; - case 3:var _aOL_=1;break; - case 4:var _aOL_=1;break; - case 5:var _aOL_=1;break; - case 6:var _aOL_=0;break; - case 7:var _aOL_=0;break; - default:var _aOL_=1} - var - _aOM_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aON_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOM_), - _aOO_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aOP_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOO_), - _aOQ_=caml_call2(Runtime_ocaml_Runtime[83],_aOP_,_aON_), - _aOR_=caml_call2(Runtime_ocaml_Runtime[83],_aOQ_,_aOL_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mh_,_aOR_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mi_,[0],_aOK_,_aOJ_)} - function _aNq_(param) - {function _aOs_(param) - {var - _aOB_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aOC_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$7), - _aOD_=caml_call2(Runtime_ocaml_Runtime[104],_aOC_,_aOB_), - _aOE_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$1) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$8), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aOE_,_aOD_), - _aOF_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$78), - _aOG_=caml_call1(Runtime_ocaml_Runtime[31],cst_932$8), - _aOH_=caml_call2(Runtime_ocaml_Runtime[104],_aOG_,_aOF_), - _aOI_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1864$2) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3625$7), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aOI_,_aOH_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aOt_(param) - {switch(residence[0]) - {case 0:var _aOu_=1;break; - case 1:var _aOu_=0;break; - case 2:var _aOu_=1;break; - case 3:var _aOu_=1;break; - case 4:var _aOu_=1;break; - case 5:var _aOu_=1;break; - case 6:var _aOu_=0;break; - case 7:var _aOu_=0;break; - default:var _aOu_=1} - var - _aOv_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aOw_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOv_), - _aOx_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aOy_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOx_), - _aOz_=caml_call2(Runtime_ocaml_Runtime[83],_aOy_,_aOw_), - _aOA_=caml_call2(Runtime_ocaml_Runtime[83],_aOz_,_aOu_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mj_,_aOA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mk_,[0],_aOt_,_aOs_)} - function _aNr_(param) - {function _aNV_(param) - {var - _aOk_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aOl_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$15), - _aOm_=caml_call2(Runtime_ocaml_Runtime[104],_aOl_,_aOk_), - _aOn_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$3) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$16), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aOn_,_aOm_), - _aOo_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$79), - _aOp_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$16), - _aOq_=caml_call2(Runtime_ocaml_Runtime[104],_aOp_,_aOo_), - _aOr_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$4) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$15), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aOr_,_aOq_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aNW_(param) - {switch(residence[0]) - {case 0:var _aOd_=1;break; - case 1:var _aOd_=0;break; - case 2:var _aOd_=1;break; - case 3:var _aOd_=1;break; - case 4:var _aOd_=1;break; - case 5:var _aOd_=1;break; - case 6:var _aOd_=0;break; - case 7:var _aOd_=0;break; - default:var _aOd_=1} - var - _aOe_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aOf_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aOe_), - _aOg_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aOh_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aOg_), - _aOi_=caml_call2(Runtime_ocaml_Runtime[83],_aOh_,_aOf_), - _aOj_=caml_call2(Runtime_ocaml_Runtime[83],_aOi_,_aOd_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ml_,_aOj_)} - var - _aNX_= - [0, - function(param) - {function _aNY_(param) - {var - _aN7_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aN8_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$17), - _aN9_=caml_call2(Runtime_ocaml_Runtime[104],_aN8_,_aN7_), - _aN__= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$5) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$18), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aN__,_aN9_), - _aN$_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$80), - _aOa_=caml_call1(Runtime_ocaml_Runtime[31],cst_936$18), - _aOb_=caml_call2(Runtime_ocaml_Runtime[104],_aOa_,_aN$_), - _aOc_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1872$6) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3640$17), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aOc_,_aOb_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aNZ_(param) - {switch(residence[0]) - {case 0:var _aN0_=1;break; - case 1:var _aN0_=0;break; - case 2:var _aN0_=1;break; - case 3:var _aN0_=1;break; - case 4:var _aN0_=1;break; - case 5:var _aN0_=1;break; - case 6:var _aN0_=0;break; - case 7:var _aN0_=0;break; - default:var _aN0_=1} - var - _aN1_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aN2_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aN1_), - _aN3_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aN4_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aN3_), - _aN5_=caml_call2(Runtime_ocaml_Runtime[83],_aN4_,_aN2_), - _aN6_=caml_call2(Runtime_ocaml_Runtime[83],_aN5_,_aN0_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mm_,_aN6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mn_,[0],_aNZ_,_aNY_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mo_,_aNX_,_aNW_,_aNV_)} - function _aNs_(param) - {function _aNE_(param) - {var - _aNN_= - caml_call1 - (Runtime_ocaml_Runtime[69],nombre_personnes_a_charge), - _aNO_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$11), - _aNP_=caml_call2(Runtime_ocaml_Runtime[104],_aNO_,_aNN_), - _aNQ_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$2) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$12), - montant=caml_call2(Runtime_ocaml_Runtime[93],_aNQ_,_aNP_), - _aNR_=caml_call1(Runtime_ocaml_Runtime[39],cst_6$81), - _aNS_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$12), - _aNT_=caml_call2(Runtime_ocaml_Runtime[104],_aNS_,_aNR_), - _aNU_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$3) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$11), - limite=caml_call2(Runtime_ocaml_Runtime[93],_aNU_,_aNT_); - return caml_call2(Runtime_ocaml_Runtime[123],montant,limite) - ?limite - :montant} - function _aNF_(param) - {switch(residence[0]) - {case 0:var _aNG_=1;break; - case 1:var _aNG_=0;break; - case 2:var _aNG_=1;break; - case 3:var _aNG_=1;break; - case 4:var _aNG_=1;break; - case 5:var _aNG_=1;break; - case 6:var _aNG_=0;break; - case 7:var _aNG_=0;break; - default:var _aNG_=1} - var - _aNH_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aNI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aNH_), - _aNJ_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aNK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aNJ_), - _aNL_=caml_call2(Runtime_ocaml_Runtime[83],_aNK_,_aNI_), - _aNM_=caml_call2(Runtime_ocaml_Runtime[83],_aNL_,_aNG_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mp_,_aNM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mq_,[0],_aNF_,_aNE_)} - var - _aNt_= - [0, - function(param) - {function _aNu_(param) - {var - _aNB_=caml_call1(Runtime_ocaml_Runtime[31],cst_969$13), - _aNC_= - caml_call2 - (Runtime_ocaml_Runtime[104], - _aNB_, - multiplicateur_majoration_char), - _aND_= - 0 === situation_familiale_calcul_apl[0] - ?caml_call1(Runtime_ocaml_Runtime[31],cst_1938$4) - :caml_call1(Runtime_ocaml_Runtime[31],cst_3767$13); - return caml_call2(Runtime_ocaml_Runtime[93],_aND_,_aNC_)} - function _aNv_(param) - {switch(residence[0]) - {case 0:var _aNw_=1;break; - case 1:var _aNw_=0;break; - case 2:var _aNw_=1;break; - case 3:var _aNw_=1;break; - case 4:var _aNw_=1;break; - case 5:var _aNw_=1;break; - case 6:var _aNw_=0;break; - case 7:var _aNw_=0;break; - default:var _aNw_=1} - var - _aNx_= - caml_call2(Runtime_ocaml_Runtime[83],_aNw_,copropriete), - _aNy_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aNz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aNy_), - _aNA_=caml_call2(Runtime_ocaml_Runtime[83],_aNz_,_aNx_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mr_,_aNA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ms_,[0],_aNv_,_aNu_)}, - _aNs_, - _aNr_, - _aNq_, - _aNp_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mt_,_aNt_,_aNo_,_aNn_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mu_,_aNm_,_aNl_,_aNk_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Mv_,_aNj_,_aNi_,_aNh_)}], - _aHB_=caml_call4(Runtime_ocaml_Runtime[63],_Mw_,_aHA_,_aHz_,_aHy_)} - catch(_aNg_) - {_aNg_ = caml_wrap_exception(_aNg_); - if(_aNg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_LR_]; - throw _aNg_} - var - montant_forfaitaire_charges= - caml_call3 - (Runtime_ocaml_Runtime[28],_Mx_,Runtime_ocaml_Runtime[13],_aHB_); - try - {var - _aHC_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aHD_=function(param){return 0}, - _aHE_= - function(param) - {function _aNa_(param){return montant_forfaitaire_d842_12} - function _aNb_(param) - {switch(type_travaux_logement[0]) - {case 0:var _aNc_=0;break; - case 1:var _aNc_=1;break; - case 2:var _aNc_=0;break; - default:var _aNc_=0} - var - _aNd_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aNe_= - caml_call2 - (Runtime_ocaml_Runtime[125],date_signature_pret,_aNd_), - _aNf_=caml_call2(Runtime_ocaml_Runtime[83],_aNe_,_aNc_); - return caml_call2(Runtime_ocaml_Runtime[29],_Mz_,_aNf_)} - return caml_call4(Runtime_ocaml_Runtime[63],_MA_,[0],_aNb_,_aNa_)}, - _aHF_= - [0, - function(param) - {function _aMW_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - mensualite_principale, - coefficient_d842_12)} - function _aMX_(param) - {switch(type_travaux_logement[0]) - {case 0:var _aMY_=0;break; - case 1:var _aMY_=0;break; - case 2:var _aMY_=1;break; - default:var _aMY_=0} - switch(type_travaux_logement[0]) - {case 0:var _aMZ_=1;break; - case 1:var _aMZ_=0;break; - case 2:var _aMZ_=0;break; - default:var _aMZ_=0} - var _aM0_=caml_call2(Runtime_ocaml_Runtime[84],_aMZ_,_aMY_); - switch(type_travaux_logement[0]) - {case 0:var _aM1_=0;break; - case 1:var _aM1_=0;break; - case 2:var _aM1_=0;break; - default:var _aM1_=1} - var - _aM2_=caml_call2(Runtime_ocaml_Runtime[84],_aM1_,_aM0_), - _aM3_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aM4_= - caml_call2 - (Runtime_ocaml_Runtime[125],date_signature_pret,_aM3_), - _aM5_=caml_call2(Runtime_ocaml_Runtime[83],_aM4_,_aM2_), - _aM6_=caml_call3(Runtime_ocaml_Runtime[57],1994,9,30), - _aM7_= - caml_call2 - (Runtime_ocaml_Runtime[120],date_signature_pret,_aM6_), - _aM8_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), - _aM9_= - caml_call2 - (Runtime_ocaml_Runtime[130],date_signature_pret,_aM8_), - _aM__=caml_call2(Runtime_ocaml_Runtime[83],_aM9_,_aM7_), - _aM$_=caml_call2(Runtime_ocaml_Runtime[84],_aM__,_aM5_); - return caml_call2(Runtime_ocaml_Runtime[29],_MB_,_aM$_)} - return caml_call4(Runtime_ocaml_Runtime[63],_MC_,[0],_aMX_,_aMW_)}, - _aHE_], - _aHG_=caml_call4(Runtime_ocaml_Runtime[63],_MD_,_aHF_,_aHD_,_aHC_)} - catch(_aMV_) - {_aMV_ = caml_wrap_exception(_aMV_); - if(_aMV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_My_]; - throw _aMV_} - var - seuil_minimal_ressources_menag= - caml_call3 - (Runtime_ocaml_Runtime[28],_ME_,Runtime_ocaml_Runtime[13],_aHG_); - function _aHH_(aide_finale) - {try - {var - _aMP_= - function(param) - {var - _aMT_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$395), - _aMU_= - caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6); - return caml_call2(Runtime_ocaml_Runtime[113],_aMU_,_aMT_) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$396) - :caml_call2 - (Runtime_ocaml_Runtime[98], - aide_finale, - montant_forfaitaire_d842_6)}, - _aMQ_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_MG_,1)}, - _aMR_=caml_call4(Runtime_ocaml_Runtime[63],_MH_,[0],_aMQ_,_aMP_); - return _aMR_} - catch(_aMS_) - {_aMS_ = caml_wrap_exception(_aMS_); - if(_aMS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_MF_]; - throw _aMS_}} - var - traitement_aide_finale_minorat= - caml_call3 - (Runtime_ocaml_Runtime[28],_MI_,Runtime_ocaml_Runtime[10],_aHH_); - function _aHI_(date_calcul,nombre_personnes_a_charge) - {try - {var - _aL2_= - function(param) - {var - _aMM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MK_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aMN_= - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _ML_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aMM_), - _aMO_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MM_, - Runtime_ocaml_Runtime[13], - _aMN_); - return caml_call2(Runtime_ocaml_Runtime[27],_MN_,_aMO_)}, - _aL3_= - function(param) - {var - _aMK_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aML_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMK_); - return caml_call2(Runtime_ocaml_Runtime[29],_MO_,_aML_)}, - _aL4_= - [0, - function(param) - {function _aL7_(param){throw Runtime_ocaml_Runtime[2]} - function _aL8_(param){return 0} - var - _aL9_= - [0, - function(param) - {function _aL__(param) - {var - _aMF_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$11), - _aMG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MP_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aMH_= - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _MQ_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aMG_), - _aMI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MR_, - Runtime_ocaml_Runtime[13], - _aMH_), - _aMJ_=caml_call2(Runtime_ocaml_Runtime[27],_MS_,_aMI_); - return caml_call2(Runtime_ocaml_Runtime[104],_aMJ_,_aMF_)} - function _aL$_(param) - {var - _aMC_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aMD_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMC_), - _aME_= - caml_call2(Runtime_ocaml_Runtime[83],_aMD_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_MT_,_aME_)} - var - _aMa_= - [0, - function(param) - {function _aMb_(param) - {var - _aMx_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$12), - _aMy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MU_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aMz_= - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _MV_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aMy_), - _aMA_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MW_, - Runtime_ocaml_Runtime[13], - _aMz_), - _aMB_=caml_call2(Runtime_ocaml_Runtime[27],_MX_,_aMA_); - return caml_call2(Runtime_ocaml_Runtime[104],_aMB_,_aMx_)} - function _aMc_(param) - {var - _aMr_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aMs_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aMr_), - _aMt_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aMu_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMt_), - _aMv_=caml_call2(Runtime_ocaml_Runtime[83],_aMu_,_aMs_), - _aMw_= - caml_call2(Runtime_ocaml_Runtime[83],_aMv_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_MY_,_aMw_)} - var - _aMd_= - [0, - function(param) - {function _aMe_(param) - {var - _aMm_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_75$13), - _aMn_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _MZ_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aMo_= - caml_call2 - (calcul_plafond_mensualite_d842, - caml_call3 - (Runtime_ocaml_Runtime[28], - _M0_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aMn_), - _aMp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _M1_, - Runtime_ocaml_Runtime[13], - _aMo_), - _aMq_=caml_call2(Runtime_ocaml_Runtime[27],_M2_,_aMp_); - return caml_call2(Runtime_ocaml_Runtime[104],_aMq_,_aMm_)} - function _aMf_(param) - {var - _aMg_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aMh_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aMg_), - _aMi_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aMj_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aMi_), - _aMk_=caml_call2(Runtime_ocaml_Runtime[83],_aMj_,_aMh_), - _aMl_= - caml_call2(Runtime_ocaml_Runtime[83],_aMk_,copropriete); - return caml_call2(Runtime_ocaml_Runtime[29],_M3_,_aMl_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_M4_,[0],_aMf_,_aMe_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_M5_,_aMd_,_aMc_,_aMb_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_M6_,_aMa_,_aL$_,_aL__)}]; + (Runtime_ocaml_Runtime[63], _AR_, _auE_, _auz_, _auy_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_M7_,_aL9_,_aL8_,_aL7_)}], - _aL5_=caml_call4(Runtime_ocaml_Runtime[63],_M8_,_aL4_,_aL3_,_aL2_); - return _aL5_} - catch(_aL6_) - {_aL6_ = caml_wrap_exception(_aL6_); - if(_aL6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_MJ_]; - throw _aL6_}} - var - calcul_plafond_mensualite_d842$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_M9_,Runtime_ocaml_Runtime[10],_aHI_); - function _aHJ_(allocation_mensuelle) - {try - {var - _aLX_= - function(param) - {var - _aL1_= - caml_call2 - (Runtime_ocaml_Runtime[93], - charges_mensuelles_pret, - montant_forfaitaire_charges); - return caml_call2 - (Runtime_ocaml_Runtime[98],_aL1_,allocation_mensuelle)}, - _aLY_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_M$_,1)}, - _aLZ_=caml_call4(Runtime_ocaml_Runtime[63],_Na_,[0],_aLY_,_aLX_); - return _aLZ_} - catch(_aL0_) - {_aL0_ = caml_wrap_exception(_aL0_); - if(_aL0_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_M__]; - throw _aL0_}} - var - depense_nette_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Nb_,Runtime_ocaml_Runtime[10],_aHJ_); - try - {var - _aHK_= - function(param) - {if - (! + (Runtime_ocaml_Runtime[63], _AS_, _aux_, _auw_, _auv_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _AT_, _auu_, _aut_, _aus_); + }], + _aoh_ = caml_call4(Runtime_ocaml_Runtime[63], _AU_, _aog_, _aof_, _aoe_); + } + catch(_aur_){ + var _aod_ = caml_wrap_exception(_aur_); + if(_aod_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ad_], 1); + throw caml_maybe_attach_backtrace(_aod_, 0); + } + var + montant_forfaitaire_charges = + caml_call3 + (Runtime_ocaml_Runtime[28], _AV_, Runtime_ocaml_Runtime[13], _aoh_); + try{ + var + _aoj_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _aok_ = function(param){return 0;}, + _aol_ = + function(param){ + function _aul_(param){return montant_forfaitaire_d842_12;} + function _aum_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _aun_ = 0; break; + case 1: + var _aun_ = 1; break; + case 2: + var _aun_ = 0; break; + default: var _aun_ = 0; + } + var + _auo_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _aup_ = + caml_call2 + (Runtime_ocaml_Runtime[125], date_signature_pret, _auo_), + _auq_ = caml_call2(Runtime_ocaml_Runtime[83], _aup_, _aun_); + return caml_call2(Runtime_ocaml_Runtime[29], _AX_, _auq_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _AY_, [0], _aum_, _aul_); + }, + _aom_ = + [0, + function(param){ + function _at7_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + mensualite_principale, + coefficient_d842_12); + } + function _at8_(param){ + switch(type_travaux_logement[0]){ + case 0: + var _at9_ = 0; break; + case 1: + var _at9_ = 0; break; + case 2: + var _at9_ = 1; break; + default: var _at9_ = 0; + } + switch(type_travaux_logement[0]){ + case 0: + var _at__ = 1; break; + case 1: + var _at__ = 0; break; + case 2: + var _at__ = 0; break; + default: var _at__ = 0; + } + var _at$_ = caml_call2(Runtime_ocaml_Runtime[84], _at__, _at9_); + switch(type_travaux_logement[0]){ + case 0: + var _aua_ = 0; break; + case 1: + var _aua_ = 0; break; + case 2: + var _aua_ = 0; break; + default: var _aua_ = 1; + } + var + _aub_ = caml_call2(Runtime_ocaml_Runtime[84], _aua_, _at$_), + _auc_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _aud_ = caml_call2 - (Runtime_ocaml_Runtime[118], - ressources_menage_arrondies_ba, - seuil_minimal_ressources_menag)) - return ressources_menage_arrondies_ba; - var - _aLR_=caml_call1(Runtime_ocaml_Runtime[39],cst_100$12), - _aLS_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_01$0), - _aLT_=caml_call1(Runtime_ocaml_Runtime[31],cst_4999), - _aLU_= + (Runtime_ocaml_Runtime[125], date_signature_pret, _auc_), + _aue_ = caml_call2(Runtime_ocaml_Runtime[83], _aud_, _aub_), + _auf_ = caml_call3(Runtime_ocaml_Runtime[57], 1994, 9, 30), + _aug_ = caml_call2 - (Runtime_ocaml_Runtime[93], - seuil_minimal_ressources_menag, - _aLT_), - _aLV_=caml_call2(Runtime_ocaml_Runtime[104],_aLU_,_aLS_), - _aLW_=caml_call1(Runtime_ocaml_Runtime[77],_aLV_); - return caml_call2(Runtime_ocaml_Runtime[104],_aLW_,_aLR_)}, - _aHL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Nd_,1)}, - _aHM_= - [0, - function(param) - {function _aLP_(param){return ressources_menage_arrondies_ba} - function _aLQ_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_Ne_,situation_r822_11_13_17)} - return caml_call4(Runtime_ocaml_Runtime[63],_Nf_,[0],_aLQ_,_aLP_)}], - _aHN_=caml_call4(Runtime_ocaml_Runtime[63],_Ng_,_aHM_,_aHL_,_aHK_)} - catch(_aLO_) - {_aLO_ = caml_wrap_exception(_aLO_); - if(_aLO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Nc_]; - throw _aLO_} + (Runtime_ocaml_Runtime[120], date_signature_pret, _auf_), + _auh_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), + _aui_ = + caml_call2 + (Runtime_ocaml_Runtime[130], date_signature_pret, _auh_), + _auj_ = caml_call2(Runtime_ocaml_Runtime[83], _aui_, _aug_), + _auk_ = caml_call2(Runtime_ocaml_Runtime[84], _auj_, _aue_); + return caml_call2(Runtime_ocaml_Runtime[29], _AZ_, _auk_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _A0_, [0], _at8_, _at7_); + }, + _aol_], + _aon_ = caml_call4(Runtime_ocaml_Runtime[63], _A1_, _aom_, _aok_, _aoj_); + } + catch(_at6_){ + var _aoi_ = caml_wrap_exception(_at6_); + if(_aoi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _AW_], 1); + throw caml_maybe_attach_backtrace(_aoi_, 0); + } + var + seuil_minimal_ressources_menag = + caml_call3 + (Runtime_ocaml_Runtime[28], _A2_, Runtime_ocaml_Runtime[13], _aon_); + function _aoo_(aide_finale){ + try{ var - ressources_menage_arrondies_se= - caml_call3 - (Runtime_ocaml_Runtime[28],_Nh_,Runtime_ocaml_Runtime[13],_aHN_); - function _aHO_(date_calcul,nombre_personnes_a_charge) - {try - {var - _aKh_= - function(param) - {var - _aLL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nj_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aLM_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nk_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aLL_), - _aLN_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nl_, - Runtime_ocaml_Runtime[13], - _aLM_); - return caml_call2(Runtime_ocaml_Runtime[27],_Nm_,_aLN_)}, - _aKi_= - function(param) - {var - _aLJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aLK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLJ_); - return caml_call2(Runtime_ocaml_Runtime[29],_Nn_,_aLK_)}, - _aKj_= - [0, - function(param) - {function _aKm_(param){throw Runtime_ocaml_Runtime[2]} - function _aKn_(param){return 0} - var - _aKo_= - [0, - function(param) - {function _aKp_(param) - {var - _aLF_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$82), - _aLG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _No_, - Runtime_ocaml_Runtime[14], - _aLF_), - _aLH_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Np_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aLG_), - _aLI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nq_, - Runtime_ocaml_Runtime[13], - _aLH_); - return caml_call2(Runtime_ocaml_Runtime[27],_Nr_,_aLI_)} - function _aKq_(param) - {switch(residence[0]) - {case 0:var _aLv_=1;break; - case 1:var _aLv_=0;break; - case 2:var _aLv_=1;break; - case 3:var _aLv_=1;break; - case 4:var _aLv_=1;break; - case 5:var _aLv_=1;break; - case 6:var _aLv_=0;break; - case 7:var _aLv_=0;break; - default:var _aLv_=1} + _at0_ = + function(param){ + var + _at4_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$327), + _at5_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6); + return caml_call2(Runtime_ocaml_Runtime[113], _at5_, _at4_) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$328) + : caml_call2 + (Runtime_ocaml_Runtime[98], + aide_finale, + montant_forfaitaire_d842_6); + }, + _at1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _A4_, 1); + }, + _at2_ = caml_call4(Runtime_ocaml_Runtime[63], _A5_, [0], _at1_, _at0_); + return _at2_; + } + catch(_at3_){ + var _atZ_ = caml_wrap_exception(_at3_); + if(_atZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _A3_], 1); + throw caml_maybe_attach_backtrace(_atZ_, 0); + } + } + var + traitement_aide_finale_minorat = + caml_call3 + (Runtime_ocaml_Runtime[28], _A6_, Runtime_ocaml_Runtime[10], _aoo_); + function _aop_(date_calcul, nombre_personnes_a_charge){ + try{ + var + _ata_ = + function(param){ + var + _atW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _A8_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atX_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _A9_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atW_), + _atY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _A__, + Runtime_ocaml_Runtime[13], + _atX_); + return caml_call2(Runtime_ocaml_Runtime[27], _A$_, _atY_); + }, + _atb_ = + function(param){ + var + _atU_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _atV_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atU_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ba_, _atV_); + }, + _atc_ = + [0, + function(param){ + function _atf_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _atg_(param){return 0;} + var + _ath_ = + [0, + function(param){ + function _ati_(param){ + var + _atP_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$11), + _atQ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bb_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atR_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bc_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atQ_), + _atS_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bd_, + Runtime_ocaml_Runtime[13], + _atR_), + _atT_ = caml_call2(Runtime_ocaml_Runtime[27], _Be_, _atS_); + return caml_call2(Runtime_ocaml_Runtime[104], _atT_, _atP_); + } + function _atj_(param){ + var + _atM_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _atN_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atM_), + _atO_ = + caml_call2(Runtime_ocaml_Runtime[83], _atN_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Bf_, _atO_); + } + var + _atk_ = + [0, + function(param){ + function _atl_(param){ var - _aLw_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$83), - _aLx_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aLw_), - _aLy_=caml_call2(Runtime_ocaml_Runtime[83],_aLx_,_aLv_), - _aLz_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aLA_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aLz_), - _aLB_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aLC_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLB_), - _aLD_=caml_call2(Runtime_ocaml_Runtime[83],_aLC_,_aLA_), - _aLE_=caml_call2(Runtime_ocaml_Runtime[83],_aLD_,_aLy_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ns_,_aLE_)} - var - _aKr_= - [0, - function(param) - {function _aKs_(param) - {var - _aLr_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$84), - _aLs_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nt_, - Runtime_ocaml_Runtime[14], - _aLr_), - _aLt_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nu_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aLs_), - _aLu_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nv_, - Runtime_ocaml_Runtime[13], - _aLt_); - return caml_call2(Runtime_ocaml_Runtime[27],_Nw_,_aLu_)} - function _aKt_(param) - {switch(residence[0]) - {case 0:var _aLh_=1;break; - case 1:var _aLh_=0;break; - case 2:var _aLh_=1;break; - case 3:var _aLh_=1;break; - case 4:var _aLh_=1;break; - case 5:var _aLh_=1;break; - case 6:var _aLh_=0;break; - case 7:var _aLh_=0;break; - default:var _aLh_=1} + _atH_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$12), + _atI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bg_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _atJ_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bh_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atI_), + _atK_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bi_, + Runtime_ocaml_Runtime[13], + _atJ_), + _atL_ = caml_call2(Runtime_ocaml_Runtime[27], _Bj_, _atK_); + return caml_call2(Runtime_ocaml_Runtime[104], _atL_, _atH_); + } + function _atm_(param){ + var + _atB_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _atC_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atB_), + _atD_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _atE_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _atD_), + _atF_ = caml_call2(Runtime_ocaml_Runtime[83], _atE_, _atC_), + _atG_ = + caml_call2(Runtime_ocaml_Runtime[83], _atF_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Bk_, _atG_); + } + var + _atn_ = + [0, + function(param){ + function _ato_(param){ var - _aLi_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$85), - _aLj_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aLi_), - _aLk_=caml_call2(Runtime_ocaml_Runtime[83],_aLj_,_aLh_), - _aLl_=caml_call3(Runtime_ocaml_Runtime[57],2022,7,1), - _aLm_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aLl_), - _aLn_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aLo_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aLn_), - _aLp_=caml_call2(Runtime_ocaml_Runtime[83],_aLo_,_aLm_), - _aLq_=caml_call2(Runtime_ocaml_Runtime[83],_aLp_,_aLk_); - return caml_call2(Runtime_ocaml_Runtime[29],_Nx_,_aLq_)} - var - _aKu_= - [0, - function(param) - {function _aKv_(param) - {var - _aLd_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$86), - _aLe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ny_, - Runtime_ocaml_Runtime[14], - _aLd_), - _aLf_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Nz_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aLe_), - _aLg_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NA_, - Runtime_ocaml_Runtime[13], - _aLf_); - return caml_call2(Runtime_ocaml_Runtime[27],_NB_,_aLg_)} - function _aKw_(param) - {switch(residence[0]) - {case 0:var _aK5_=1;break; - case 1:var _aK5_=0;break; - case 2:var _aK5_=1;break; - case 3:var _aK5_=1;break; - case 4:var _aK5_=1;break; - case 5:var _aK5_=1;break; - case 6:var _aK5_=0;break; - case 7:var _aK5_=0;break; - default:var _aK5_=1} + _atw_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_75$13), + _atx_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bl_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aty_ = + caml_call2 + (calcul_plafond_mensualite_d842, + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bm_, + Runtime_ocaml_Runtime[16], + date_calcul), + _atx_), + _atz_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Bn_, + Runtime_ocaml_Runtime[13], + _aty_), + _atA_ = caml_call2(Runtime_ocaml_Runtime[27], _Bo_, _atz_); + return caml_call2(Runtime_ocaml_Runtime[104], _atA_, _atw_); + } + function _atp_(param){ + var + _atq_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _atr_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _atq_), + _ats_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _att_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ats_), + _atu_ = caml_call2(Runtime_ocaml_Runtime[83], _att_, _atr_), + _atv_ = + caml_call2(Runtime_ocaml_Runtime[83], _atu_, copropriete); + return caml_call2(Runtime_ocaml_Runtime[29], _Bp_, _atv_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Bq_, [0], _atp_, _ato_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Br_, _atn_, _atm_, _atl_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Bs_, _atk_, _atj_, _ati_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Bt_, _ath_, _atg_, _atf_); + }], + _atd_ = + caml_call4(Runtime_ocaml_Runtime[63], _Bu_, _atc_, _atb_, _ata_); + return _atd_; + } + catch(_ate_){ + var _as$_ = caml_wrap_exception(_ate_); + if(_as$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _A7_], 1); + throw caml_maybe_attach_backtrace(_as$_, 0); + } + } + var + calcul_plafond_mensualite_d842$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Bv_, Runtime_ocaml_Runtime[10], _aop_); + function _aoq_(allocation_mensuelle){ + try{ + var + _as6_ = + function(param){ + var + _as__ = + caml_call2 + (Runtime_ocaml_Runtime[93], + charges_mensuelles_pret, + montant_forfaitaire_charges); + return caml_call2 + (Runtime_ocaml_Runtime[98], _as__, allocation_mensuelle); + }, + _as7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Bx_, 1); + }, + _as8_ = caml_call4(Runtime_ocaml_Runtime[63], _By_, [0], _as7_, _as6_); + return _as8_; + } + catch(_as9_){ + var _as5_ = caml_wrap_exception(_as9_); + if(_as5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Bw_], 1); + throw caml_maybe_attach_backtrace(_as5_, 0); + } + } + var + depense_nette_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Bz_, Runtime_ocaml_Runtime[10], _aoq_); + try{ + var + _aos_ = + function(param){ + if + (! + caml_call2 + (Runtime_ocaml_Runtime[118], + ressources_menage_arrondies_ba, + seuil_minimal_ressources_menag)) + return ressources_menage_arrondies_ba; + var + _asZ_ = caml_call1(Runtime_ocaml_Runtime[39], cst_100$12), + _as0_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_01$0), + _as1_ = caml_call1(Runtime_ocaml_Runtime[31], cst_4999), + _as2_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + seuil_minimal_ressources_menag, + _as1_), + _as3_ = caml_call2(Runtime_ocaml_Runtime[104], _as2_, _as0_), + _as4_ = caml_call1(Runtime_ocaml_Runtime[77], _as3_); + return caml_call2(Runtime_ocaml_Runtime[104], _as4_, _asZ_); + }, + _aot_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _BB_, 1); + }, + _aou_ = + [0, + function(param){ + function _asX_(param){return ressources_menage_arrondies_ba;} + function _asY_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _BC_, situation_r822_11_13_17); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _BD_, [0], _asY_, _asX_); + }], + _aov_ = caml_call4(Runtime_ocaml_Runtime[63], _BE_, _aou_, _aot_, _aos_); + } + catch(_asW_){ + var _aor_ = caml_wrap_exception(_asW_); + if(_aor_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _BA_], 1); + throw caml_maybe_attach_backtrace(_aor_, 0); + } + var + ressources_menage_arrondies_se = + caml_call3 + (Runtime_ocaml_Runtime[28], _BF_, Runtime_ocaml_Runtime[13], _aov_); + function _aow_(date_calcul, nombre_personnes_a_charge){ + try{ + var + _arp_ = + function(param){ + var + _asT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BH_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _asU_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BI_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asT_), + _asV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BJ_, + Runtime_ocaml_Runtime[13], + _asU_); + return caml_call2(Runtime_ocaml_Runtime[27], _BK_, _asV_); + }, + _arq_ = + function(param){ + var + _asR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _asS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asR_); + return caml_call2(Runtime_ocaml_Runtime[29], _BL_, _asS_); + }, + _arr_ = + [0, + function(param){ + function _aru_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _arv_(param){return 0;} + var + _arw_ = + [0, + function(param){ + function _arx_(param){ + var + _asN_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$82), + _asO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BM_, + Runtime_ocaml_Runtime[14], + _asN_), + _asP_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BN_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asO_), + _asQ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BO_, + Runtime_ocaml_Runtime[13], + _asP_); + return caml_call2(Runtime_ocaml_Runtime[27], _BP_, _asQ_); + } + function _ary_(param){ + switch(residence[0]){ + case 0: + var _asD_ = 1; break; + case 1: + var _asD_ = 0; break; + case 2: + var _asD_ = 1; break; + case 3: + var _asD_ = 1; break; + case 4: + var _asD_ = 1; break; + case 5: + var _asD_ = 1; break; + case 6: + var _asD_ = 0; break; + case 7: + var _asD_ = 0; break; + default: var _asD_ = 1; + } + var + _asE_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$83), + _asF_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _asE_), + _asG_ = caml_call2(Runtime_ocaml_Runtime[83], _asF_, _asD_), + _asH_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _asI_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asH_), + _asJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _asK_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asJ_), + _asL_ = caml_call2(Runtime_ocaml_Runtime[83], _asK_, _asI_), + _asM_ = caml_call2(Runtime_ocaml_Runtime[83], _asL_, _asG_); + return caml_call2(Runtime_ocaml_Runtime[29], _BQ_, _asM_); + } + var + _arz_ = + [0, + function(param){ + function _arA_(param){ + var + _asz_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$84), + _asA_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BR_, + Runtime_ocaml_Runtime[14], + _asz_), + _asB_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BS_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asA_), + _asC_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BT_, + Runtime_ocaml_Runtime[13], + _asB_); + return caml_call2(Runtime_ocaml_Runtime[27], _BU_, _asC_); + } + function _arB_(param){ + switch(residence[0]){ + case 0: + var _asp_ = 1; break; + case 1: + var _asp_ = 0; break; + case 2: + var _asp_ = 1; break; + case 3: + var _asp_ = 1; break; + case 4: + var _asp_ = 1; break; + case 5: + var _asp_ = 1; break; + case 6: + var _asp_ = 0; break; + case 7: + var _asp_ = 0; break; + default: var _asp_ = 1; + } + var + _asq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$85), + _asr_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _asq_), + _ass_ = caml_call2(Runtime_ocaml_Runtime[83], _asr_, _asp_), + _ast_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 7, 1), + _asu_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ast_), + _asv_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _asw_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _asv_), + _asx_ = caml_call2(Runtime_ocaml_Runtime[83], _asw_, _asu_), + _asy_ = caml_call2(Runtime_ocaml_Runtime[83], _asx_, _ass_); + return caml_call2(Runtime_ocaml_Runtime[29], _BV_, _asy_); + } + var + _arC_ = + [0, + function(param){ + function _arD_(param){ + var + _asl_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$86), + _asm_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BW_, + Runtime_ocaml_Runtime[14], + _asl_), + _asn_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _BX_, + Runtime_ocaml_Runtime[16], + date_calcul), + _asm_), + _aso_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _BY_, + Runtime_ocaml_Runtime[13], + _asn_); + return caml_call2(Runtime_ocaml_Runtime[27], _BZ_, _aso_); + } + function _arE_(param){ + switch(residence[0]){ + case 0: + var _asb_ = 1; break; + case 1: + var _asb_ = 0; break; + case 2: + var _asb_ = 1; break; + case 3: + var _asb_ = 1; break; + case 4: + var _asb_ = 1; break; + case 5: + var _asb_ = 1; break; + case 6: + var _asb_ = 0; break; + case 7: + var _asb_ = 0; break; + default: var _asb_ = 1; + } + var + _asc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$87), + _asd_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _asc_), + _ase_ = caml_call2(Runtime_ocaml_Runtime[83], _asd_, _asb_), + _asf_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _asg_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _asf_), + _ash_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _asi_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ash_), + _asj_ = caml_call2(Runtime_ocaml_Runtime[83], _asi_, _asg_), + _ask_ = caml_call2(Runtime_ocaml_Runtime[83], _asj_, _ase_); + return caml_call2(Runtime_ocaml_Runtime[29], _B0_, _ask_); + } + var + _arF_ = + [0, + function(param){ + function _arG_(param){ var - _aK6_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$87), - _aK7_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aK6_), - _aK8_=caml_call2(Runtime_ocaml_Runtime[83],_aK7_,_aK5_), - _aK9_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aK__= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aK9_), - _aK$_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aLa_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aK$_), - _aLb_=caml_call2(Runtime_ocaml_Runtime[83],_aLa_,_aK__), - _aLc_=caml_call2(Runtime_ocaml_Runtime[83],_aLb_,_aK8_); - return caml_call2(Runtime_ocaml_Runtime[29],_NC_,_aLc_)} - var - _aKx_= - [0, - function(param) - {function _aKy_(param) - {var - _aK1_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$88), - _aK2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ND_, - Runtime_ocaml_Runtime[14], - _aK1_), - _aK3_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _NE_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aK2_), - _aK4_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NF_, - Runtime_ocaml_Runtime[13], - _aK3_); - return caml_call2(Runtime_ocaml_Runtime[27],_NG_,_aK4_)} - function _aKz_(param) - {switch(residence[0]) - {case 0:var _aKR_=1;break; - case 1:var _aKR_=0;break; - case 2:var _aKR_=1;break; - case 3:var _aKR_=1;break; - case 4:var _aKR_=1;break; - case 5:var _aKR_=1;break; - case 6:var _aKR_=0;break; - case 7:var _aKR_=0;break; - default:var _aKR_=1} + _ar9_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$88), + _ar__ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B1_, + Runtime_ocaml_Runtime[14], + _ar9_), + _ar$_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _B2_, + Runtime_ocaml_Runtime[16], + date_calcul), + _ar__), + _asa_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B3_, + Runtime_ocaml_Runtime[13], + _ar$_); + return caml_call2(Runtime_ocaml_Runtime[27], _B4_, _asa_); + } + function _arH_(param){ + switch(residence[0]){ + case 0: + var _arZ_ = 1; break; + case 1: + var _arZ_ = 0; break; + case 2: + var _arZ_ = 1; break; + case 3: + var _arZ_ = 1; break; + case 4: + var _arZ_ = 1; break; + case 5: + var _arZ_ = 1; break; + case 6: + var _arZ_ = 0; break; + case 7: + var _arZ_ = 0; break; + default: var _arZ_ = 1; + } + var + _ar0_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$89), + _ar1_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _ar0_), + _ar2_ = caml_call2(Runtime_ocaml_Runtime[83], _ar1_, _arZ_), + _ar3_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _ar4_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ar3_), + _ar5_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _ar6_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ar5_), + _ar7_ = caml_call2(Runtime_ocaml_Runtime[83], _ar6_, _ar4_), + _ar8_ = caml_call2(Runtime_ocaml_Runtime[83], _ar7_, _ar2_); + return caml_call2(Runtime_ocaml_Runtime[29], _B5_, _ar8_); + } + var + _arI_ = + [0, + function(param){ + function _arJ_(param){ var - _aKS_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$89), - _aKT_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aKS_), - _aKU_=caml_call2(Runtime_ocaml_Runtime[83],_aKT_,_aKR_), - _aKV_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aKW_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aKV_), - _aKX_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aKY_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aKX_), - _aKZ_=caml_call2(Runtime_ocaml_Runtime[83],_aKY_,_aKW_), - _aK0_=caml_call2(Runtime_ocaml_Runtime[83],_aKZ_,_aKU_); - return caml_call2(Runtime_ocaml_Runtime[29],_NH_,_aK0_)} - var - _aKA_= - [0, - function(param) - {function _aKB_(param) - {var - _aKN_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$90), - _aKO_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NI_, - Runtime_ocaml_Runtime[14], - _aKN_), - _aKP_= - caml_call2 - (calcul_plafond_mensualite_d842$0, - caml_call3 - (Runtime_ocaml_Runtime[28], - _NJ_, - Runtime_ocaml_Runtime[16], - date_calcul), - _aKO_), - _aKQ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _NK_, - Runtime_ocaml_Runtime[13], - _aKP_); - return caml_call2(Runtime_ocaml_Runtime[27],_NL_,_aKQ_)} - function _aKC_(param) - {switch(residence[0]) - {case 0:var _aKD_=1;break; - case 1:var _aKD_=0;break; - case 2:var _aKD_=1;break; - case 3:var _aKD_=1;break; - case 4:var _aKD_=1;break; - case 5:var _aKD_=1;break; - case 6:var _aKD_=0;break; - case 7:var _aKD_=0;break; - default:var _aKD_=1} - var - _aKE_=caml_call1(Runtime_ocaml_Runtime[46],cst_6$91), - _aKF_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_a_charge,_aKE_), - _aKG_=caml_call2(Runtime_ocaml_Runtime[83],_aKF_,_aKD_), - _aKH_=caml_call3(Runtime_ocaml_Runtime[57],2020,10,1), - _aKI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aKH_), - _aKJ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aKK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aKJ_), - _aKL_=caml_call2(Runtime_ocaml_Runtime[83],_aKK_,_aKI_), - _aKM_=caml_call2(Runtime_ocaml_Runtime[83],_aKL_,_aKG_); - return caml_call2(Runtime_ocaml_Runtime[29],_NM_,_aKM_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_NN_,[0],_aKC_,_aKB_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_NO_,_aKA_,_aKz_,_aKy_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_NP_,_aKx_,_aKw_,_aKv_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_NQ_,_aKu_,_aKt_,_aKs_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_NR_,_aKr_,_aKq_,_aKp_)}]; + _arV_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$90), + _arW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B6_, + Runtime_ocaml_Runtime[14], + _arV_), + _arX_ = + caml_call2 + (calcul_plafond_mensualite_d842$0, + caml_call3 + (Runtime_ocaml_Runtime[28], + _B7_, + Runtime_ocaml_Runtime[16], + date_calcul), + _arW_), + _arY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _B8_, + Runtime_ocaml_Runtime[13], + _arX_); + return caml_call2(Runtime_ocaml_Runtime[27], _B9_, _arY_); + } + function _arK_(param){ + switch(residence[0]){ + case 0: + var _arL_ = 1; break; + case 1: + var _arL_ = 0; break; + case 2: + var _arL_ = 1; break; + case 3: + var _arL_ = 1; break; + case 4: + var _arL_ = 1; break; + case 5: + var _arL_ = 1; break; + case 6: + var _arL_ = 0; break; + case 7: + var _arL_ = 0; break; + default: var _arL_ = 1; + } + var + _arM_ = caml_call1(Runtime_ocaml_Runtime[46], cst_6$91), + _arN_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_a_charge, + _arM_), + _arO_ = caml_call2(Runtime_ocaml_Runtime[83], _arN_, _arL_), + _arP_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 10, 1), + _arQ_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _arP_), + _arR_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _arS_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _arR_), + _arT_ = caml_call2(Runtime_ocaml_Runtime[83], _arS_, _arQ_), + _arU_ = caml_call2(Runtime_ocaml_Runtime[83], _arT_, _arO_); + return caml_call2(Runtime_ocaml_Runtime[29], _B__, _arU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _B$_, [0], _arK_, _arJ_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ca_, _arI_, _arH_, _arG_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Cb_, _arF_, _arE_, _arD_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Cc_, _arC_, _arB_, _arA_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Cd_, _arz_, _ary_, _arx_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ce_, _arw_, _arv_, _aru_); + }], + _ars_ = + caml_call4(Runtime_ocaml_Runtime[63], _Cf_, _arr_, _arq_, _arp_); + return _ars_; + } + catch(_art_){ + var _aro_ = caml_wrap_exception(_art_); + if(_aro_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _BG_], 1); + throw caml_maybe_attach_backtrace(_aro_, 0); + } + } + var + calcul_plafond_mensualite_d842$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Cg_, Runtime_ocaml_Runtime[10], _aow_); + try{ + var + _aoy_ = function(param){return date_courante;}, + _aoz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ci_, 1); + }, + _aoA_ = caml_call4(Runtime_ocaml_Runtime[63], _Cj_, [0], _aoz_, _aoy_), + calcul_equivalence_loyer_minim$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ck_, Runtime_ocaml_Runtime[16], _aoA_); + } + catch(_arn_){ + var _aox_ = caml_wrap_exception(_arn_); + if(_aox_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ch_], 1); + throw caml_maybe_attach_backtrace(_aox_, 0); + } + try{ + var + _aoC_ = function(param){return ressources_menage_arrondies_se;}, + _aoD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Cm_, 1); + }, + _aoE_ = caml_call4(Runtime_ocaml_Runtime[63], _Cn_, [0], _aoD_, _aoC_), + calcul_equivalence_loyer_minim$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Co_, Runtime_ocaml_Runtime[13], _aoE_); + } + catch(_arm_){ + var _aoB_ = caml_wrap_exception(_arm_); + if(_aoB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Cl_], 1); + throw caml_maybe_attach_backtrace(_aoB_, 0); + } + try{ + var + _aoG_ = function(param){return 1;}, + _aoH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Cq_, 1); + }, + _aoI_ = caml_call4(Runtime_ocaml_Runtime[63], _Cr_, [0], _aoH_, _aoG_), + calcul_equivalence_loyer_minim$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Cs_, Runtime_ocaml_Runtime[12], _aoI_); + } + catch(_arl_){ + var _aoF_ = caml_wrap_exception(_arl_); + if(_aoF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Cp_], 1); + throw caml_maybe_attach_backtrace(_aoF_, 0); + } + try{ + var + _aoK_ = function(param){return calcul_nombre_parts_dot_n_nomb;}, + _aoL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Cu_, 1); + }, + _aoM_ = caml_call4(Runtime_ocaml_Runtime[63], _Cv_, [0], _aoL_, _aoK_), + calcul_equivalence_loyer_minim$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Cw_, Runtime_ocaml_Runtime[15], _aoM_); + } + catch(_ark_){ + var _aoJ_ = caml_wrap_exception(_ark_); + if(_aoJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ct_], 1); + throw caml_maybe_attach_backtrace(_aoJ_, 0); + } + var + _aoN_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Cx_, calcul_equivalence_loyer_minim), + [0, + calcul_equivalence_loyer_minim$0, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_equivalence_loyer_minim$3]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _Cy_, _aoN_), + calcul_equivalence_loyer_minim$4 = result$1[1]; + try{ + var + _aoP_ = function(param){return _CA_;}, + _aoQ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CB_, 1); + }, + _aoR_ = caml_call4(Runtime_ocaml_Runtime[63], _CC_, [0], _aoQ_, _aoP_), + calcul_apl_logement_foyer_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _CD_, embed_type_logement_foyer, _aoR_); + } + catch(_arj_){ + var _aoO_ = caml_wrap_exception(_arj_); + if(_aoO_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Cz_], 1); + throw caml_maybe_attach_backtrace(_aoO_, 0); + } + try{ + var + _aoT_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 1970, 1, 1); + }, + _aoU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CF_, 1); + }, + _aoV_ = caml_call4(Runtime_ocaml_Runtime[63], _CG_, [0], _aoU_, _aoT_), + calcul_apl_logement_foyer_dot_$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CH_, Runtime_ocaml_Runtime[16], _aoV_); + } + catch(_ari_){ + var _aoS_ = caml_wrap_exception(_ari_); + if(_aoS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CE_], 1); + throw caml_maybe_attach_backtrace(_aoS_, 0); + } + try{ + var + _aoX_ = function(param){return ressources_menage_arrondies_se;}, + _aoY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CJ_, 1); + }, + _aoZ_ = caml_call4(Runtime_ocaml_Runtime[63], _CK_, [0], _aoY_, _aoX_), + calcul_apl_logement_foyer_dot_$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CL_, Runtime_ocaml_Runtime[13], _aoZ_); + } + catch(_arh_){ + var _aoW_ = caml_wrap_exception(_arh_); + if(_aoW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CI_], 1); + throw caml_maybe_attach_backtrace(_aoW_, 0); + } + try{ + var + _ao1_ = function(param){return nombre_personnes_a_charge;}, + _ao2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CN_, 1); + }, + _ao3_ = caml_call4(Runtime_ocaml_Runtime[63], _CO_, [0], _ao2_, _ao1_), + calcul_apl_logement_foyer_dot_$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CP_, Runtime_ocaml_Runtime[14], _ao3_); + } + catch(_arg_){ + var _ao0_ = caml_wrap_exception(_arg_); + if(_ao0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CM_], 1); + throw caml_maybe_attach_backtrace(_ao0_, 0); + } + try{ + var + _ao5_ = function(param){return situation_familiale_calcul_apl;}, + _ao6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CR_, 1); + }, + _ao7_ = caml_call4(Runtime_ocaml_Runtime[63], _CS_, [0], _ao6_, _ao5_), + calcul_apl_logement_foyer_dot_$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _CT_, + embed_situation_familiale_calc, + _ao7_); + } + catch(_arf_){ + var _ao4_ = caml_wrap_exception(_arf_); + if(_ao4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CQ_], 1); + throw caml_maybe_attach_backtrace(_ao4_, 0); + } + try{ + var + _ao9_ = function(param){return zone;}, + _ao__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CV_, 1); + }, + _ao$_ = caml_call4(Runtime_ocaml_Runtime[63], _CW_, [0], _ao__, _ao9_), + calcul_apl_logement_foyer_dot_$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _CX_, embed_zone_d_habitation, _ao$_); + } + catch(_are_){ + var _ao8_ = caml_wrap_exception(_are_); + if(_ao8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CU_], 1); + throw caml_maybe_attach_backtrace(_ao8_, 0); + } + try{ + var + _apb_ = function(param){return date_courante;}, + _apc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _CZ_, 1); + }, + _apd_ = caml_call4(Runtime_ocaml_Runtime[63], _C0_, [0], _apc_, _apb_), + calcul_apl_logement_foyer_dot_$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _C1_, Runtime_ocaml_Runtime[16], _apd_); + } + catch(_ard_){ + var _apa_ = caml_wrap_exception(_ard_); + if(_apa_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _CY_], 1); + throw caml_maybe_attach_backtrace(_apa_, 0); + } + try{ + var + _apf_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$329); + }, + _apg_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C3_, 1); + }, + _aph_ = caml_call4(Runtime_ocaml_Runtime[63], _C4_, [0], _apg_, _apf_), + calcul_apl_logement_foyer_dot_$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _C5_, Runtime_ocaml_Runtime[13], _aph_); + } + catch(_arc_){ + var _ape_ = caml_wrap_exception(_arc_); + if(_ape_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _C2_], 1); + throw caml_maybe_attach_backtrace(_ape_, 0); + } + try{ + var + _apj_ = function(param){return residence;}, + _apk_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C7_, 1); + }, + _apl_ = caml_call4(Runtime_ocaml_Runtime[63], _C8_, [0], _apk_, _apj_), + calcul_apl_logement_foyer_dot_$7 = + caml_call3(Runtime_ocaml_Runtime[28], _C9_, embed_collectivite, _apl_); + } + catch(_arb_){ + var _api_ = caml_wrap_exception(_arb_); + if(_api_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _C6_], 1); + throw caml_maybe_attach_backtrace(_api_, 0); + } + function calcul_apl_logement_foyer_dot_$8(param){ + function _aq__(param){return 1;} + function _aq$_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _C__, 1); + } + var + _ara_ = caml_call4(Runtime_ocaml_Runtime[63], _C$_, [0], _aq$_, _aq__); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Da_, + Runtime_ocaml_Runtime[12], + _ara_); + } + function calcul_apl_logement_foyer_dot_$9(param){ + function _aqZ_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aq0_(param){return 0;} + var + _aq1_ = + [0, + function(param){ + function _aq3_(param){return 1;} + function _aq4_(param){ + switch(residence[0]){ + case 0: + var _aq9_ = 1; break; + case 1: + var _aq9_ = 1; break; + case 2: + var _aq9_ = 1; break; + case 3: + var _aq9_ = 1; break; + case 4: + var _aq9_ = 0; break; + case 5: + var _aq9_ = 0; break; + case 6: + var _aq9_ = 0; break; + case 7: + var _aq9_ = 0; break; + default: var _aq9_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Db_, _aq9_); + } + var + _aq5_ = + [0, + function(param){ + function _aq6_(param){return 1;} + function _aq7_(param){ + switch(residence[0]){ + case 0: + var _aq8_ = 0; break; + case 1: + var _aq8_ = 0; break; + case 2: + var _aq8_ = 0; break; + case 3: + var _aq8_ = 0; break; + case 4: + var _aq8_ = 1; break; + case 5: + var _aq8_ = 1; break; + case 6: + var _aq8_ = 0; break; + case 7: + var _aq8_ = 0; break; + default: var _aq8_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Dc_, _aq8_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_NS_,_aKo_,_aKn_,_aKm_)}], - _aKk_=caml_call4(Runtime_ocaml_Runtime[63],_NT_,_aKj_,_aKi_,_aKh_); - return _aKk_} - catch(_aKl_) - {_aKl_ = caml_wrap_exception(_aKl_); - if(_aKl_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ni_]; - throw _aKl_}} - var - calcul_plafond_mensualite_d842$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_NU_,Runtime_ocaml_Runtime[10],_aHO_); - try - {var - _aHP_=function(param){return date_courante}, - _aHQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_NW_,1)}, - _aHR_=caml_call4(Runtime_ocaml_Runtime[63],_NX_,[0],_aHQ_,_aHP_), - calcul_equivalence_loyer_minim$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_NY_,Runtime_ocaml_Runtime[16],_aHR_)} - catch(_aKg_) - {_aKg_ = caml_wrap_exception(_aKg_); - if(_aKg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_NV_]; - throw _aKg_} - try - {var - _aHS_=function(param){return ressources_menage_arrondies_se}, - _aHT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N0_,1)}, - _aHU_=caml_call4(Runtime_ocaml_Runtime[63],_N1_,[0],_aHT_,_aHS_), - calcul_equivalence_loyer_minim$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_N2_,Runtime_ocaml_Runtime[13],_aHU_)} - catch(_aKf_) - {_aKf_ = caml_wrap_exception(_aKf_); - if(_aKf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_NZ_]; - throw _aKf_} - try - {var - _aHV_=function(param){return 1}, - _aHW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N4_,1)}, - _aHX_=caml_call4(Runtime_ocaml_Runtime[63],_N5_,[0],_aHW_,_aHV_), - calcul_equivalence_loyer_minim$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_N6_,Runtime_ocaml_Runtime[12],_aHX_)} - catch(_aKe_) - {_aKe_ = caml_wrap_exception(_aKe_); - if(_aKe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_N3_]; - throw _aKe_} - try - {var - _aHY_=function(param){return calcul_nombre_parts_dot_n_nomb}, - _aHZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_N8_,1)}, - _aH0_=caml_call4(Runtime_ocaml_Runtime[63],_N9_,[0],_aHZ_,_aHY_), - calcul_equivalence_loyer_minim$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_N__,Runtime_ocaml_Runtime[15],_aH0_)} - catch(_aKd_) - {_aKd_ = caml_wrap_exception(_aKd_); - if(_aKd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_N7_]; - throw _aKd_} - var - _aH1_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_N$_,calcul_equivalence_loyer_minim), - [0, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_Oa_,_aH1_), - calcul_equivalence_loyer_minim$4=result$1[1]; - try - {var - _aH2_=function(param){return _Oc_}, - _aH3_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Od_,1)}, - _aH4_=caml_call4(Runtime_ocaml_Runtime[63],_Oe_,[0],_aH3_,_aH2_), - calcul_apl_logement_foyer_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Of_,embed_type_logement_foyer,_aH4_)} - catch(_aKc_) - {_aKc_ = caml_wrap_exception(_aKc_); - if(_aKc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ob_]; - throw _aKc_} - try - {var - _aH5_= - function(param) - {return caml_call3(Runtime_ocaml_Runtime[57],1970,1,1)}, - _aH6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Oh_,1)}, - _aH7_=caml_call4(Runtime_ocaml_Runtime[63],_Oi_,[0],_aH6_,_aH5_), - calcul_apl_logement_foyer_dot_$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Oj_,Runtime_ocaml_Runtime[16],_aH7_)} - catch(_aKb_) - {_aKb_ = caml_wrap_exception(_aKb_); - if(_aKb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Og_]; - throw _aKb_} - try - {var - _aH8_=function(param){return ressources_menage_arrondies_se}, - _aH9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ol_,1)}, - _aH__=caml_call4(Runtime_ocaml_Runtime[63],_Om_,[0],_aH9_,_aH8_), - calcul_apl_logement_foyer_dot_$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_On_,Runtime_ocaml_Runtime[13],_aH__)} - catch(_aKa_) - {_aKa_ = caml_wrap_exception(_aKa_); - if(_aKa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ok_]; - throw _aKa_} - try - {var - _aH$_=function(param){return nombre_personnes_a_charge}, - _aIa_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Op_,1)}, - _aIb_=caml_call4(Runtime_ocaml_Runtime[63],_Oq_,[0],_aIa_,_aH$_), - calcul_apl_logement_foyer_dot_$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Or_,Runtime_ocaml_Runtime[14],_aIb_)} - catch(_aJ$_) - {_aJ$_ = caml_wrap_exception(_aJ$_); - if(_aJ$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Oo_]; - throw _aJ$_} - try - {var - _aIc_=function(param){return situation_familiale_calcul_apl}, - _aId_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ot_,1)}, - _aIe_=caml_call4(Runtime_ocaml_Runtime[63],_Ou_,[0],_aId_,_aIc_), - calcul_apl_logement_foyer_dot_$3= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ov_, - embed_situation_familiale_calc, - _aIe_)} - catch(_aJ__) - {_aJ__ = caml_wrap_exception(_aJ__); - if(_aJ__ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Os_]; - throw _aJ__} - try - {var - _aIf_=function(param){return zone}, - _aIg_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ox_,1)}, - _aIh_=caml_call4(Runtime_ocaml_Runtime[63],_Oy_,[0],_aIg_,_aIf_), - calcul_apl_logement_foyer_dot_$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_Oz_,embed_zone_d_habitation,_aIh_)} - catch(_aJ9_) - {_aJ9_ = caml_wrap_exception(_aJ9_); - if(_aJ9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ow_]; - throw _aJ9_} - try - {var - _aIi_=function(param){return date_courante}, - _aIj_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OB_,1)}, - _aIk_=caml_call4(Runtime_ocaml_Runtime[63],_OC_,[0],_aIj_,_aIi_), - calcul_apl_logement_foyer_dot_$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_OD_,Runtime_ocaml_Runtime[16],_aIk_)} - catch(_aJ8_) - {_aJ8_ = caml_wrap_exception(_aJ8_); - if(_aJ8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OA_]; - throw _aJ8_} - try - {var - _aIl_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$397)}, - _aIm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OF_,1)}, - _aIn_=caml_call4(Runtime_ocaml_Runtime[63],_OG_,[0],_aIm_,_aIl_), - calcul_apl_logement_foyer_dot_$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_OH_,Runtime_ocaml_Runtime[13],_aIn_)} - catch(_aJ7_) - {_aJ7_ = caml_wrap_exception(_aJ7_); - if(_aJ7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OE_]; - throw _aJ7_} - try - {var - _aIo_=function(param){return residence}, - _aIp_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OJ_,1)}, - _aIq_=caml_call4(Runtime_ocaml_Runtime[63],_OK_,[0],_aIp_,_aIo_), - calcul_apl_logement_foyer_dot_$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_OL_,embed_collectivite$0,_aIq_)} - catch(_aJ6_) - {_aJ6_ = caml_wrap_exception(_aJ6_); - if(_aJ6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OI_]; - throw _aJ6_} - function calcul_apl_logement_foyer_dot_$8(param) - {function _aJ3_(param){return 1} - function _aJ4_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_OM_,1)} - var _aJ5_=caml_call4(Runtime_ocaml_Runtime[63],_ON_,[0],_aJ4_,_aJ3_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _OO_, - Runtime_ocaml_Runtime[12], - _aJ5_)} - function calcul_apl_logement_foyer_dot_$9(param) - {function _aJS_(param){throw Runtime_ocaml_Runtime[2]} - function _aJT_(param){return 0} - var - _aJU_= - [0, - function(param) - {function _aJW_(param){return 1} - function _aJX_(param) - {switch(residence[0]) - {case 0:var _aJ2_=1;break; - case 1:var _aJ2_=1;break; - case 2:var _aJ2_=1;break; - case 3:var _aJ2_=1;break; - case 4:var _aJ2_=0;break; - case 5:var _aJ2_=0;break; - case 6:var _aJ2_=0;break; - case 7:var _aJ2_=0;break; - default:var _aJ2_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_OP_,_aJ2_)} - var - _aJY_= - [0, - function(param) - {function _aJZ_(param){return 1} - function _aJ0_(param) - {switch(residence[0]) - {case 0:var _aJ1_=0;break; - case 1:var _aJ1_=0;break; - case 2:var _aJ1_=0;break; - case 3:var _aJ1_=0;break; - case 4:var _aJ1_=1;break; - case 5:var _aJ1_=1;break; - case 6:var _aJ1_=0;break; - case 7:var _aJ1_=0;break; - default:var _aJ1_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_OQ_,_aJ1_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_OR_,[0],_aJ0_,_aJZ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_OS_,_aJY_,_aJX_,_aJW_)}], - _aJV_=caml_call4(Runtime_ocaml_Runtime[63],_OT_,_aJU_,_aJT_,_aJS_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _OU_, - Runtime_ocaml_Runtime[12], - _aJV_)} - function calcul_apl_logement_foyer_dot_$10(param) - {throw Runtime_ocaml_Runtime[2]} - var - _aIr_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_OV_,calcul_aide_personnalisee_loge$0), - [0, - calcul_apl_logement_foyer_dot_, - calcul_apl_logement_foyer_dot_$0, - calcul_apl_logement_foyer_dot_$1, - calcul_apl_logement_foyer_dot_$2, - calcul_apl_logement_foyer_dot_$3, - calcul_apl_logement_foyer_dot_$4, - calcul_apl_logement_foyer_dot_$5, - calcul_apl_logement_foyer_dot_$6, - calcul_apl_logement_foyer_dot_$7, - calcul_apl_logement_foyer_dot_$8, - calcul_apl_logement_foyer_dot_$9, - calcul_apl_logement_foyer_dot_$10]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_OW_,_aIr_), - calcul_apl_logement_foyer_dot_$11=result$2[7]; - try - {var - _aIs_=function(param){return montant_forfaitaire_d842_11}, - _aIt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_OY_,1)}, - _aIu_= - [0, - function(param) - {function _aJQ_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[104], - ressources_menage_arrondies_se, - coefficient_d842_11)} - function _aJR_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_OZ_,condition_d842_11_3)} - return caml_call4(Runtime_ocaml_Runtime[63],_O0_,[0],_aJR_,_aJQ_)}], - _aIv_=caml_call4(Runtime_ocaml_Runtime[63],_O1_,_aIu_,_aIt_,_aIs_)} - catch(_aJP_) - {_aJP_ = caml_wrap_exception(_aJP_); - if(_aJP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_OX_]; - throw _aJP_} - var - seuil_minimal_depense_nette_mi= - caml_call3 - (Runtime_ocaml_Runtime[28],_O2_,Runtime_ocaml_Runtime[13],_aIv_); - try - {var - _aIw_= - function(param) - {var - _aJM_= + (Runtime_ocaml_Runtime[63], _Dd_, [0], _aq7_, _aq6_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _De_, _aq5_, _aq4_, _aq3_); + }], + _aq2_ = caml_call4(Runtime_ocaml_Runtime[63], _Df_, _aq1_, _aq0_, _aqZ_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Dg_, + Runtime_ocaml_Runtime[12], + _aq2_); + } + function calcul_apl_logement_foyer_dot_$10(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _apm_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Dh_, calcul_aide_personnalisee_loge$0), + [0, + calcul_apl_logement_foyer_dot_, + calcul_apl_logement_foyer_dot_$0, + calcul_apl_logement_foyer_dot_$1, + calcul_apl_logement_foyer_dot_$2, + calcul_apl_logement_foyer_dot_$3, + calcul_apl_logement_foyer_dot_$4, + calcul_apl_logement_foyer_dot_$5, + calcul_apl_logement_foyer_dot_$6, + calcul_apl_logement_foyer_dot_$7, + calcul_apl_logement_foyer_dot_$8, + calcul_apl_logement_foyer_dot_$9, + calcul_apl_logement_foyer_dot_$10]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _Di_, _apm_), + calcul_apl_logement_foyer_dot_$11 = result$2[7]; + try{ + var + _apo_ = function(param){return montant_forfaitaire_d842_11;}, + _app_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Dk_, 1); + }, + _apq_ = + [0, + function(param){ + function _aqX_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[104], + ressources_menage_arrondies_se, + coefficient_d842_11); + } + function _aqY_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _Dl_, condition_d842_11_3); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Dm_, [0], _aqY_, _aqX_); + }], + _apr_ = caml_call4(Runtime_ocaml_Runtime[63], _Dn_, _apq_, _app_, _apo_); + } + catch(_aqW_){ + var _apn_ = caml_wrap_exception(_aqW_); + if(_apn_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dj_], 1); + throw caml_maybe_attach_backtrace(_apn_, 0); + } + var + seuil_minimal_depense_nette_mi = + caml_call3 + (Runtime_ocaml_Runtime[28], _Do_, Runtime_ocaml_Runtime[13], _apr_); + try{ + var + _apt_ = + function(param){ + var + _aqT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dq_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aqU_ = + caml_call2 + (calcul_plafond_mensualite_d842$1, caml_call3 (Runtime_ocaml_Runtime[28], - _O4_, + _Dr_, + Runtime_ocaml_Runtime[16], + date_signature_pret), + _aqT_), + _aqV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ds_, + Runtime_ocaml_Runtime[13], + _aqU_); + return caml_call2(Runtime_ocaml_Runtime[27], _Dt_, _aqV_); + }, + _apu_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Du_, 1); + }, + _apv_ = + [0, + function(param){ + function _aqL_(param){ + var + _aqN_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dv_, Runtime_ocaml_Runtime[14], nombre_personnes_a_charge), - _aJN_= + _aqO_ = caml_call2 (calcul_plafond_mensualite_d842$1, caml_call3 (Runtime_ocaml_Runtime[28], - _O5_, + _Dw_, Runtime_ocaml_Runtime[16], date_signature_pret), - _aJM_), - _aJO_= + _aqN_), + _aqP_ = caml_call3 (Runtime_ocaml_Runtime[28], - _O6_, + _Dx_, Runtime_ocaml_Runtime[13], - _aJN_); - return caml_call2(Runtime_ocaml_Runtime[27],_O7_,_aJO_)}, - _aIx_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_O8_,1)}, - _aIy_= - [0, - function(param) - {function _aJE_(param) - {var - _aJG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _O9_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aJH_= - caml_call2 - (calcul_plafond_mensualite_d842$1, - caml_call3 - (Runtime_ocaml_Runtime[28], - _O__, - Runtime_ocaml_Runtime[16], - date_signature_pret), - _aJG_), - _aJI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _O$_, - Runtime_ocaml_Runtime[13], - _aJH_), - plafond_signature= - caml_call2(Runtime_ocaml_Runtime[27],_Pa_,_aJI_), - _aJJ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Pb_, - Runtime_ocaml_Runtime[14], - nombre_personnes_a_charge), - _aJK_= - caml_call2 - (calcul_plafond_mensualite_d842$1, - caml_call3 - (Runtime_ocaml_Runtime[28], - _Pc_, - Runtime_ocaml_Runtime[16], - date_entree_logement), - _aJJ_), - _aJL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Pd_, - Runtime_ocaml_Runtime[13], - _aJK_), - plafond_entree= - caml_call2(Runtime_ocaml_Runtime[27],_Pe_,_aJL_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - plafond_signature, - plafond_entree) - ?plafond_entree - :plafond_signature} - function _aJF_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _Pf_, - local_habite_premiere_fois_ben)} - return caml_call4(Runtime_ocaml_Runtime[63],_Pg_,[0],_aJF_,_aJE_)}], - _aIz_=caml_call4(Runtime_ocaml_Runtime[63],_Ph_,_aIy_,_aIx_,_aIw_)} - catch(_aJD_) - {_aJD_ = caml_wrap_exception(_aJD_); - if(_aJD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_O3_]; - throw _aJD_} - var - plafond_mensualite_d842_6= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pi_,Runtime_ocaml_Runtime[13],_aIz_); - try - {var - _aIA_=function(param){return calcul_equivalence_loyer_minim$4}, - _aIB_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Pk_,1)}, - _aIC_=caml_call4(Runtime_ocaml_Runtime[63],_Pl_,[0],_aIB_,_aIA_)} - catch(_aJC_) - {_aJC_ = caml_wrap_exception(_aJC_); - if(_aJC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pj_]; - throw _aJC_} - var - mensualite_minimale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pm_,Runtime_ocaml_Runtime[13],_aIC_); - try - {var - _aID_=function(param){return calcul_apl_logement_foyer_dot_$11}, - _aIE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Po_,1)}, - _aIF_=caml_call4(Runtime_ocaml_Runtime[63],_Pp_,[0],_aIE_,_aID_)} - catch(_aJB_) - {_aJB_ = caml_wrap_exception(_aJB_); - if(_aJB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pn_]; - throw _aJB_} - var - coefficient_prise_en_charge= - caml_call3 - (Runtime_ocaml_Runtime[28],_Pq_,Runtime_ocaml_Runtime[15],_aIF_); - function _aIG_(allocation_mensuelle) - {try - {var - _aJu_= - function(param) - {var - _aJy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Ps_, - Runtime_ocaml_Runtime[13], - allocation_mensuelle), - _aJz_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Pt_,depense_nette_minimale), - _aJy_), - _aJA_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Pu_, - Runtime_ocaml_Runtime[13], - _aJz_), - depense_nette_minimale$0= - caml_call2(Runtime_ocaml_Runtime[27],_Pv_,_aJA_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - depense_nette_minimale$0, - seuil_minimal_depense_nette_mi) - ?caml_call2 - (Runtime_ocaml_Runtime[98], - seuil_minimal_depense_nette_mi, - depense_nette_minimale$0) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$398)}, - _aJv_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Pw_,1)}, - _aJw_=caml_call4(Runtime_ocaml_Runtime[63],_Px_,[0],_aJv_,_aJu_); - return _aJw_} - catch(_aJx_) - {_aJx_ = caml_wrap_exception(_aJx_); - if(_aJx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pr_]; - throw _aJx_}} - var - abattement_depense_nette_minim= - caml_call3 - (Runtime_ocaml_Runtime[28],_Py_,Runtime_ocaml_Runtime[10],_aIG_); - try - {var - _aIH_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - mensualite_principale, - plafond_mensualite_d842_6) - ?plafond_mensualite_d842_6 - :mensualite_principale}, - _aII_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_PA_,1)}, - _aIJ_=caml_call4(Runtime_ocaml_Runtime[63],_PB_,[0],_aII_,_aIH_)} - catch(_aJt_) - {_aJt_ = caml_wrap_exception(_aJt_); - if(_aJt_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Pz_]; - throw _aJt_} - var - mensualite_eligible= - caml_call3 - (Runtime_ocaml_Runtime[28],_PC_,Runtime_ocaml_Runtime[13],_aIJ_); - function _aIK_(aide_finale) - {try - {var - _aJj_= - function(param) - {var - _aJn_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PE_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aJo_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _PF_, - traitement_aide_finale_minorat), - _aJn_), - _aJp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PG_, - Runtime_ocaml_Runtime[13], - _aJo_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_PH_,_aJp_), - _aJq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PI_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aJr_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _PJ_, - abattement_depense_nette_minim), - _aJq_), - _aJs_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PK_, - Runtime_ocaml_Runtime[13], - _aJr_), - abattement=caml_call2(Runtime_ocaml_Runtime[27],_PL_,_aJs_); - return caml_call2 - (Runtime_ocaml_Runtime[113],aide_finale$0,abattement) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$399) - :caml_call2 - (Runtime_ocaml_Runtime[98],aide_finale$0,abattement)}, - _aJk_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_PM_,1)}, - _aJl_=caml_call4(Runtime_ocaml_Runtime[63],_PN_,[0],_aJk_,_aJj_); - return _aJl_} - catch(_aJm_) - {_aJm_ = caml_wrap_exception(_aJm_); - if(_aJm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_PD_]; - throw _aJm_}} - var - traitement_aide_finale_depense= - caml_call3 - (Runtime_ocaml_Runtime[28],_PO_,Runtime_ocaml_Runtime[10],_aIK_); - try - {var - _aIL_= - function(param) - {var - _aJh_= + _aqO_), + plafond_signature = + caml_call2(Runtime_ocaml_Runtime[27], _Dy_, _aqP_), + _aqQ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Dz_, + Runtime_ocaml_Runtime[14], + nombre_personnes_a_charge), + _aqR_ = caml_call2 - (Runtime_ocaml_Runtime[93], - mensualite_eligible, - montant_forfaitaire_charges), - _aJi_= - caml_call2(Runtime_ocaml_Runtime[98],_aJh_,mensualite_minimale); - return caml_call2 - (Runtime_ocaml_Runtime[104], - _aJi_, - coefficient_prise_en_charge)}, - _aIM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_PQ_,1)}, - _aIN_=caml_call4(Runtime_ocaml_Runtime[63],_PR_,[0],_aIM_,_aIL_)} - catch(_aJg_) - {_aJg_ = caml_wrap_exception(_aJg_); - if(_aJg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_PP_]; - throw _aJg_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_PS_,Runtime_ocaml_Runtime[13],_aIN_); - function _aIO_(aide_finale) - {try - {var - _aI3_= - function(param) - {var - _aI7_= + (calcul_plafond_mensualite_d842$1, caml_call3 (Runtime_ocaml_Runtime[28], - _PU_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aI8_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _PV_, - traitement_aide_finale_depense), - _aI7_), - _aI9_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PW_, - Runtime_ocaml_Runtime[13], - _aI8_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_PX_,_aI9_), - _aI__= - caml_call3 - (Runtime_ocaml_Runtime[28], - _PY_, - Runtime_ocaml_Runtime[13], - aide_finale$0), - _aI$_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _PZ_, - contributions_sociales_dot_mon), - _aI__), - _aJa_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _P0_, - Runtime_ocaml_Runtime[13], - _aI$_), - crds=caml_call2(Runtime_ocaml_Runtime[27],_P1_,_aJa_), - _aJb_=caml_call1(Runtime_ocaml_Runtime[31],cst_50$3), - _aJc_=caml_call2(Runtime_ocaml_Runtime[98],aide_finale$0,crds), - _aJd_=caml_call2(Runtime_ocaml_Runtime[98],_aJc_,_aJb_), - aide_finale_moins_crds_arrondi= - caml_call1(Runtime_ocaml_Runtime[77],_aJd_), - _aJe_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$400), - _aJf_= - caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds); - return caml_call2(Runtime_ocaml_Runtime[128],_aJf_,_aJe_) - ?caml_call2 - (Runtime_ocaml_Runtime[93], - aide_finale_moins_crds_arrondi, - crds) - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$401)}, - _aI4_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_P2_,1)}, - _aI5_=caml_call4(Runtime_ocaml_Runtime[63],_P3_,[0],_aI4_,_aI3_); - return _aI5_} - catch(_aI6_) - {_aI6_ = caml_wrap_exception(_aI6_); - if(_aI6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_PT_]; - throw _aI6_}} + _DA_, + Runtime_ocaml_Runtime[16], + date_entree_logement), + _aqQ_), + _aqS_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _DB_, + Runtime_ocaml_Runtime[13], + _aqR_), + plafond_entree = + caml_call2(Runtime_ocaml_Runtime[27], _DC_, _aqS_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + plafond_signature, + plafond_entree) + ? plafond_entree + : plafond_signature; + } + function _aqM_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _DD_, + local_habite_premiere_fois_ben); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _DE_, [0], _aqM_, _aqL_); + }], + _apw_ = caml_call4(Runtime_ocaml_Runtime[63], _DF_, _apv_, _apu_, _apt_); + } + catch(_aqK_){ + var _aps_ = caml_wrap_exception(_aqK_); + if(_aps_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Dp_], 1); + throw caml_maybe_attach_backtrace(_aps_, 0); + } + var + plafond_mensualite_d842_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _DG_, Runtime_ocaml_Runtime[13], _apw_); + try{ + var + _apy_ = function(param){return calcul_equivalence_loyer_minim$4;}, + _apz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DI_, 1); + }, + _apA_ = caml_call4(Runtime_ocaml_Runtime[63], _DJ_, [0], _apz_, _apy_); + } + catch(_aqJ_){ + var _apx_ = caml_wrap_exception(_aqJ_); + if(_apx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DH_], 1); + throw caml_maybe_attach_backtrace(_apx_, 0); + } + var + mensualite_minimale = + caml_call3 + (Runtime_ocaml_Runtime[28], _DK_, Runtime_ocaml_Runtime[13], _apA_); + try{ + var + _apC_ = function(param){return calcul_apl_logement_foyer_dot_$11;}, + _apD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DM_, 1); + }, + _apE_ = caml_call4(Runtime_ocaml_Runtime[63], _DN_, [0], _apD_, _apC_); + } + catch(_aqI_){ + var _apB_ = caml_wrap_exception(_aqI_); + if(_apB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DL_], 1); + throw caml_maybe_attach_backtrace(_apB_, 0); + } + var + coefficient_prise_en_charge = + caml_call3 + (Runtime_ocaml_Runtime[28], _DO_, Runtime_ocaml_Runtime[15], _apE_); + function _apF_(allocation_mensuelle){ + try{ var - traitement_aide_finale_contrib= - caml_call3 - (Runtime_ocaml_Runtime[28],_P4_,Runtime_ocaml_Runtime[10],_aIO_); - function _aIP_(aide_finale) - {try - {var - _aIW_= - function(param) - {var - _aI0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _P6_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aI1_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _P7_, - traitement_aide_finale_contrib), - _aI0_), - _aI2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _P8_, - Runtime_ocaml_Runtime[13], - _aI1_), - aide_finale$0=caml_call2(Runtime_ocaml_Runtime[27],_P9_,_aI2_); - return caml_call2 - (Runtime_ocaml_Runtime[113], - aide_finale$0, - montant_minimal_aide_d842_6) - ?caml_call1(Runtime_ocaml_Runtime[31],cst_0$402) - :aide_finale$0}, - _aIX_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_P__,1)}, - _aIY_=caml_call4(Runtime_ocaml_Runtime[63],_P$_,[0],_aIX_,_aIW_); - return _aIY_} - catch(_aIZ_) - {_aIZ_ = caml_wrap_exception(_aIZ_); - if(_aIZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_P5_]; - throw _aIZ_}} + _aqB_ = + function(param){ + var + _aqF_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _DQ_, + Runtime_ocaml_Runtime[13], + allocation_mensuelle), + _aqG_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _DR_, depense_nette_minimale), + _aqF_), + _aqH_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _DS_, + Runtime_ocaml_Runtime[13], + _aqG_), + depense_nette_minimale$0 = + caml_call2(Runtime_ocaml_Runtime[27], _DT_, _aqH_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + depense_nette_minimale$0, + seuil_minimal_depense_nette_mi) + ? caml_call2 + (Runtime_ocaml_Runtime[98], + seuil_minimal_depense_nette_mi, + depense_nette_minimale$0) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$330); + }, + _aqC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DU_, 1); + }, + _aqD_ = caml_call4(Runtime_ocaml_Runtime[63], _DV_, [0], _aqC_, _aqB_); + return _aqD_; + } + catch(_aqE_){ + var _aqA_ = caml_wrap_exception(_aqE_); + if(_aqA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DP_], 1); + throw caml_maybe_attach_backtrace(_aqA_, 0); + } + } + var + abattement_depense_nette_minim = + caml_call3 + (Runtime_ocaml_Runtime[28], _DW_, Runtime_ocaml_Runtime[10], _apF_); + try{ + var + _apH_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + mensualite_principale, + plafond_mensualite_d842_6) + ? plafond_mensualite_d842_6 + : mensualite_principale; + }, + _apI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _DY_, 1); + }, + _apJ_ = caml_call4(Runtime_ocaml_Runtime[63], _DZ_, [0], _apI_, _apH_); + } + catch(_aqz_){ + var _apG_ = caml_wrap_exception(_aqz_); + if(_apG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _DX_], 1); + throw caml_maybe_attach_backtrace(_apG_, 0); + } + var + mensualite_eligible = + caml_call3 + (Runtime_ocaml_Runtime[28], _D0_, Runtime_ocaml_Runtime[13], _apJ_); + function _apK_(aide_finale){ + try{ var - traitement_aide_finale_montant= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qa_,Runtime_ocaml_Runtime[10],_aIP_); - try - {var - _aIQ_=caml_call3(Runtime_ocaml_Runtime[57],1992,9,30), - _aIR_= - caml_call2(Runtime_ocaml_Runtime[130],date_signature_pret,_aIQ_)} - catch(_aIV_) - {_aIV_ = caml_wrap_exception(_aIV_); - if(_aIV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qb_]; - throw _aIV_} - if(! _aIR_)throw [0,Runtime_ocaml_Runtime[3],_Qe_]; - try - {var - _aIS_=caml_call3(Runtime_ocaml_Runtime[57],2021,10,1), - _aIT_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aIS_)} - catch(_aIU_) - {_aIU_ = caml_wrap_exception(_aIU_); - if(_aIU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qc_]; - throw _aIU_} - if(_aIT_) - return [0, - mensualite_eligible, - mensualite_minimale, - coefficient_prise_en_charge, - aide_finale_formule, - traitement_aide_finale_montant]; - throw [0,Runtime_ocaml_Runtime[3],_Qd_]} - function calcul_aide_personnalisee_loge$2 - (calcul_aide_personnalisee_loge$2) - {var - mode_occupation=calcul_aide_personnalisee_loge$2[1], - type_aide=calcul_aide_personnalisee_loge$2[2], - ressources_menage_sans_arrondi=calcul_aide_personnalisee_loge$2[3], - situation_familiale=calcul_aide_personnalisee_loge$2[4], - nombre_personnes_a_charge=calcul_aide_personnalisee_loge$2[5], - zone=calcul_aide_personnalisee_loge$2[6], - date_courante=calcul_aide_personnalisee_loge$2[7], - residence=calcul_aide_personnalisee_loge$2[8]; - try - {var - _aFU_= - function(param) - {switch(mode_occupation[0]) - {case 0:var location=mode_occupation[1];return [0,location]; - case 1: - var logementfoyer=mode_occupation[1];return [2,logementfoyer]; - case 2: - var proprietaire=mode_occupation[1];return [1,proprietaire]; - case 3:var location$0=mode_occupation[1];return [0,location$0]; - default: - var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, - _aFV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qg_,1)}, - _aFW_=caml_call4(Runtime_ocaml_Runtime[63],_Qh_,[0],_aFV_,_aFU_)} - catch(_aGU_) - {_aGU_ = caml_wrap_exception(_aGU_); - if(_aGU_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qf_]; - throw _aGU_} + _aqp_ = + function(param){ + var + _aqt_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D2_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aqu_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _D3_, + traitement_aide_finale_minorat), + _aqt_), + _aqv_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D4_, + Runtime_ocaml_Runtime[13], + _aqu_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _D5_, _aqv_), + _aqw_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D6_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aqx_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _D7_, + abattement_depense_nette_minim), + _aqw_), + _aqy_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _D8_, + Runtime_ocaml_Runtime[13], + _aqx_), + abattement = caml_call2(Runtime_ocaml_Runtime[27], _D9_, _aqy_); + return caml_call2 + (Runtime_ocaml_Runtime[113], aide_finale$0, abattement) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$331) + : caml_call2 + (Runtime_ocaml_Runtime[98], aide_finale$0, abattement); + }, + _aqq_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _D__, 1); + }, + _aqr_ = caml_call4(Runtime_ocaml_Runtime[63], _D$_, [0], _aqq_, _aqp_); + return _aqr_; + } + catch(_aqs_){ + var _aqo_ = caml_wrap_exception(_aqs_); + if(_aqo_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _D1_], 1); + throw caml_maybe_attach_backtrace(_aqo_, 0); + } + } + var + traitement_aide_finale_depense = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ea_, Runtime_ocaml_Runtime[10], _apK_); + try{ + var + _apM_ = + function(param){ + var + _aqm_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + mensualite_eligible, + montant_forfaitaire_charges), + _aqn_ = + caml_call2(Runtime_ocaml_Runtime[98], _aqm_, mensualite_minimale); + return caml_call2 + (Runtime_ocaml_Runtime[104], + _aqn_, + coefficient_prise_en_charge); + }, + _apN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ec_, 1); + }, + _apO_ = caml_call4(Runtime_ocaml_Runtime[63], _Ed_, [0], _apN_, _apM_); + } + catch(_aql_){ + var _apL_ = caml_wrap_exception(_aql_); + if(_apL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Eb_], 1); + throw caml_maybe_attach_backtrace(_apL_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ee_, Runtime_ocaml_Runtime[13], _apO_); + function _apP_(aide_finale){ + try{ var - categorie_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qi_,embed_categorie_calcul_a_p_l,_aFW_); - try - {var - _aFX_= - function(param) - {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, - _aFY_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qk_,1)}, - _aFZ_=caml_call4(Runtime_ocaml_Runtime[63],_Ql_,[0],_aFY_,_aFX_)} - catch(_aGT_) - {_aGT_ = caml_wrap_exception(_aGT_); - if(_aGT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qj_]; - throw _aGT_} + _ap8_ = + function(param){ + var + _aqa_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Eg_, + Runtime_ocaml_Runtime[13], + aide_finale), + _aqb_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Eh_, + traitement_aide_finale_depense), + _aqa_), + _aqc_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ei_, + Runtime_ocaml_Runtime[13], + _aqb_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ej_, _aqc_), + _aqd_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ek_, + Runtime_ocaml_Runtime[13], + aide_finale$0), + _aqe_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _El_, + contributions_sociales_dot_mon), + _aqd_), + _aqf_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Em_, + Runtime_ocaml_Runtime[13], + _aqe_), + crds = caml_call2(Runtime_ocaml_Runtime[27], _En_, _aqf_), + _aqg_ = caml_call1(Runtime_ocaml_Runtime[31], cst_50$3), + _aqh_ = caml_call2(Runtime_ocaml_Runtime[98], aide_finale$0, crds), + _aqi_ = caml_call2(Runtime_ocaml_Runtime[98], _aqh_, _aqg_), + aide_finale_moins_crds_arrondi = + caml_call1(Runtime_ocaml_Runtime[77], _aqi_), + _aqj_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$332), + _aqk_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds); + return caml_call2(Runtime_ocaml_Runtime[128], _aqk_, _aqj_) + ? caml_call2 + (Runtime_ocaml_Runtime[93], + aide_finale_moins_crds_arrondi, + crds) + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$333); + }, + _ap9_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Eo_, 1); + }, + _ap__ = caml_call4(Runtime_ocaml_Runtime[63], _Ep_, [0], _ap9_, _ap8_); + return _ap__; + } + catch(_ap$_){ + var _ap7_ = caml_wrap_exception(_ap$_); + if(_ap7_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ef_], 1); + throw caml_maybe_attach_backtrace(_ap7_, 0); + } + } + var + traitement_aide_finale_contrib = + caml_call3 + (Runtime_ocaml_Runtime[28], _Eq_, Runtime_ocaml_Runtime[10], _apP_); + function _apQ_(aide_finale){ + try{ var - ressources_menage_avec_arrondi= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qm_,Runtime_ocaml_Runtime[13],_aFZ_); - try - {var - _aF0_= - function(param) - {switch(situation_familiale[0]) - {case 0:return _Qo_; - case 1:return _Qp_; - case 2:return _Qq_; - case 3:return _Qr_; - case 4:return _Qs_; - default:return _Qt_}}, - _aF1_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Qu_,1)}, - _aF2_=caml_call4(Runtime_ocaml_Runtime[63],_Qv_,[0],_aF1_,_aF0_)} - catch(_aGS_) - {_aGS_ = caml_wrap_exception(_aGS_); - if(_aGS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qn_]; - throw _aGS_} - var - situation_familiale_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Qw_,embed_situation_familiale_calc,_aF2_); - try - {var - _aF3_= - function(param) - {switch(categorie_calcul_apl[0]) - {case 0: - var location=categorie_calcul_apl[1],_aGt_=location[7]; - try - {var _aGu_=location[1]; - switch(_aGu_[0]) - {case 0:var bailleur=_aGu_[1],_aGv_=bailleur[2];break; - case 1: - var _aGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$403); - break; - default: - var _aGv_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$404)}} - catch(_aGO_) - {_aGO_ = caml_wrap_exception(_aGO_); - if(_aGO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qy_]; - throw _aGO_} - var - _aGw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Qz_, - embed_calcul_aide_personnalise$3, - [0, - location[2], - ressources_menage_avec_arrondi, - location[3], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - location[4], - location[6], - type_aide, - location[5], - _aGv_, - _aGt_, - residence]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _QA_, - calcul_aide_personnalisee_loge), - _aGw_), - _aGx_= - function(param0) - {var - _aGL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QB_, - Runtime_ocaml_Runtime[13], - param0), - _aGM_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_QC_,result[7]),_aGL_), - _aGN_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QD_, - Runtime_ocaml_Runtime[13], - _aGM_); - return caml_call2(Runtime_ocaml_Runtime[27],_QE_,_aGN_)}, - result$0= + _ap0_ = + function(param){ + var + _ap4_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Es_, + Runtime_ocaml_Runtime[13], + aide_finale), + _ap5_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Et_, + traitement_aide_finale_contrib), + _ap4_), + _ap6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Eu_, + Runtime_ocaml_Runtime[13], + _ap5_), + aide_finale$0 = caml_call2(Runtime_ocaml_Runtime[27], _Ev_, _ap6_); + return caml_call2 + (Runtime_ocaml_Runtime[113], + aide_finale$0, + montant_minimal_aide_d842_6) + ? caml_call1(Runtime_ocaml_Runtime[31], cst_0$334) + : aide_finale$0; + }, + _ap1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ew_, 1); + }, + _ap2_ = caml_call4(Runtime_ocaml_Runtime[63], _Ex_, [0], _ap1_, _ap0_); + return _ap2_; + } + catch(_ap3_){ + var _apZ_ = caml_wrap_exception(_ap3_); + if(_apZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Er_], 1); + throw caml_maybe_attach_backtrace(_apZ_, 0); + } + } + var + traitement_aide_finale_montant = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ey_, Runtime_ocaml_Runtime[10], _apQ_); + try{ + var + _apS_ = caml_call3(Runtime_ocaml_Runtime[57], 1992, 9, 30), + _apT_ = + caml_call2(Runtime_ocaml_Runtime[130], date_signature_pret, _apS_); + } + catch(_apY_){ + var _apR_ = caml_wrap_exception(_apY_); + if(_apR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ez_], 1); + throw caml_maybe_attach_backtrace(_apR_, 0); + } + if(! _apT_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _EC_], 1); + try{ + var + _apV_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 10, 1), + _apW_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _apV_); + } + catch(_apX_){ + var _apU_ = caml_wrap_exception(_apX_); + if(_apU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EA_], 1); + throw caml_maybe_attach_backtrace(_apU_, 0); + } + if(_apW_) + return [0, + mensualite_eligible, + mensualite_minimale, + coefficient_prise_en_charge, + aide_finale_formule, + traitement_aide_finale_montant]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _EB_], 1); + } + function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge$2){ + var + mode_occupation = calcul_aide_personnalisee_loge$2[1], + type_aide = calcul_aide_personnalisee_loge$2[2], + ressources_menage_sans_arrondi = calcul_aide_personnalisee_loge$2[3], + situation_familiale = calcul_aide_personnalisee_loge$2[4], + nombre_personnes_a_charge = calcul_aide_personnalisee_loge$2[5], + zone = calcul_aide_personnalisee_loge$2[6], + date_courante = calcul_aide_personnalisee_loge$2[7], + residence = calcul_aide_personnalisee_loge$2[8]; + try{ + var + _amx_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + var location = mode_occupation[1]; return [0, location]; + case 1: + var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; + case 2: + var proprietaire = mode_occupation[1]; return [1, proprietaire]; + case 3: + var location$0 = mode_occupation[1]; return [0, location$0]; + default: + var proprietaire$0 = mode_occupation[1]; + return [1, proprietaire$0]; + } + }, + _amy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _EE_, 1); + }, + _amz_ = caml_call4(Runtime_ocaml_Runtime[63], _EF_, [0], _amy_, _amx_); + } + catch(_ann_){ + var _amw_ = caml_wrap_exception(_ann_); + if(_amw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _ED_], 1); + throw caml_maybe_attach_backtrace(_amw_, 0); + } + var + categorie_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], _EG_, embed_categorie_calcul_a_p_l, _amz_); + try{ + var + _amB_ = + function(param){ + return arrondi_centaine_superieure(ressources_menage_sans_arrondi); + }, + _amC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _EI_, 1); + }, + _amD_ = caml_call4(Runtime_ocaml_Runtime[63], _EJ_, [0], _amC_, _amB_); + } + catch(_anm_){ + var _amA_ = caml_wrap_exception(_anm_); + if(_amA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EH_], 1); + throw caml_maybe_attach_backtrace(_amA_, 0); + } + var + ressources_menage_avec_arrondi = + caml_call3 + (Runtime_ocaml_Runtime[28], _EK_, Runtime_ocaml_Runtime[13], _amD_); + try{ + var + _amF_ = + function(param){ + switch(situation_familiale[0]){ + case 0: + return _EM_; + case 1: + return _EN_; + case 2: + return _EO_; + case 3: + return _EP_; + case 4: + return _EQ_; + default: return _ER_; + } + }, + _amG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ES_, 1); + }, + _amH_ = caml_call4(Runtime_ocaml_Runtime[63], _ET_, [0], _amG_, _amF_); + } + catch(_anl_){ + var _amE_ = caml_wrap_exception(_anl_); + if(_amE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EL_], 1); + throw caml_maybe_attach_backtrace(_amE_, 0); + } + var + situation_familiale_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EU_, + embed_situation_familiale_calc, + _amH_); + try{ + var + _amJ_ = + function(param){ + switch(categorie_calcul_apl[0]){ + case 0: + var location = categorie_calcul_apl[1], _amY_ = location[7]; + try{ + var match = location[1]; + switch(match[0]){ + case 0: + var bailleur = match[1], _am0_ = bailleur[2]; break; + case 1: + var _am0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$335); + break; + default: + var _am0_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$336); + } + } + catch(_anh_){ + var _amZ_ = caml_wrap_exception(_anh_); + if(_amZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EW_], 1); + throw caml_maybe_attach_backtrace(_amZ_, 0); + } + var + _am1_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EX_, + embed_calcul_aide_personnalise$3, [0, - result[1], - result[2], - result[3], - result[4], - result[5], - result[6], - _aGx_]; - caml_call2(Runtime_ocaml_Runtime[29],_QF_,1); - var - _aGy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QG_, - embed_calcul_aide_personnalise, - result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_QH_,_aGy_); - return [0,traitement_formule[6],traitement_formule[7]]; - case 1: - var - proprietaire=categorie_calcul_apl[1], - _aGz_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QI_, - embed_calcul_aide_personnalise$5, - [0, - proprietaire[1], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - proprietaire[4], - proprietaire[10][2], - proprietaire[6], - proprietaire[3], - proprietaire[7], - proprietaire[8], - zone, - proprietaire[10][1], - proprietaire[9], - date_courante]), - result$1= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _QJ_, - calcul_aide_personnalisee_loge$1), - _aGz_), - _aGA_= - function(param0) - {var - _aGI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QK_, - Runtime_ocaml_Runtime[13], - param0), - _aGJ_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_QL_,result$1[5]), - _aGI_), - _aGK_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QM_, - Runtime_ocaml_Runtime[13], - _aGJ_); - return caml_call2(Runtime_ocaml_Runtime[27],_QN_,_aGK_)}, - result$2= - [0,result$1[1],result$1[2],result$1[3],result$1[4],_aGA_]; - caml_call2(Runtime_ocaml_Runtime[29],_QO_,1); - var - _aGB_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QP_, - embed_calcul_aide_personnalise$1, - result$2), - traitement_formule$0= - caml_call2(Runtime_ocaml_Runtime[27],_QQ_,_aGB_); - return [0,traitement_formule$0[4],traitement_formule$0[5]]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _aGC_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aGD_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aGE_=function(param){throw Runtime_ocaml_Runtime[2]}, - _aGF_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QR_, - embed_calcul_aide_personnalise$4, - [0, - logement_foyer[1], - logement_foyer[5], - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - date_courante, - logement_foyer[7], - residence, - _aGE_, - _aGD_, - _aGC_]), - result$3= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _QS_, - calcul_aide_personnalisee_loge$0), - _aGF_), - _aGG_= - function(param0) - {var - _aGP_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QT_, - Runtime_ocaml_Runtime[13], - param0), - _aGQ_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_QU_,result$3[9]), - _aGP_), - _aGR_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QV_, - Runtime_ocaml_Runtime[13], - _aGQ_); - return caml_call2(Runtime_ocaml_Runtime[27],_QW_,_aGR_)}, - result$4= + location[2], + ressources_menage_avec_arrondi, + location[3], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + location[4], + location[6], + type_aide, + location[5], + _am0_, + _amY_, + residence]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _EY_, + calcul_aide_personnalisee_loge), + _am1_), + _am2_ = + function(param0){ + var + _ane_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _EZ_, + Runtime_ocaml_Runtime[13], + param0), + _anf_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _E0_, result[7]), + _ane_), + _ang_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E1_, + Runtime_ocaml_Runtime[13], + _anf_); + return caml_call2(Runtime_ocaml_Runtime[27], _E2_, _ang_); + }, + result$0 = + [0, + result[1], + result[2], + result[3], + result[4], + result[5], + result[6], + _am2_]; + caml_call2(Runtime_ocaml_Runtime[29], _E3_, 1); + var + _am3_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E4_, + embed_calcul_aide_personnalise, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _E5_, _am3_); + return [0, traitement_formule[6], traitement_formule[7]]; + case 1: + var + proprietaire = categorie_calcul_apl[1], + _am4_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E6_, + embed_calcul_aide_personnalise$5, [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - result$3[6], - result$3[7], - result$3[8], - _aGG_]; - caml_call2(Runtime_ocaml_Runtime[29],_QX_,1); - var - _aGH_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _QY_, - embed_calcul_aide_personnalise$0, - result$4), - traitement_formule$1= - caml_call2(Runtime_ocaml_Runtime[27],_QZ_,_aGH_); - return [0,traitement_formule$1[8],traitement_formule$1[9]]}}, - _aF4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Q0_,1)}, - _aF5_= - [0, - function(param) - {function _aGf_(param) - {switch(categorie_calcul_apl[0]) - {case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$405), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$406), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _aGk_=logement_foyer[10]; - try - {var _aGl_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$407)} - catch(_aGs_) - {_aGs_ = caml_wrap_exception(_aGs_); - if(_aGs_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Q1_]; - throw _aGs_} - var - _aGm_= + proprietaire[1], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + proprietaire[4], + proprietaire[10][2], + proprietaire[6], + proprietaire[3], + proprietaire[7], + proprietaire[8], + zone, + proprietaire[10][1], + proprietaire[9], + date_courante]), + result$1 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _E7_, + calcul_aide_personnalisee_loge$1), + _am4_), + _am5_ = + function(param0){ + var + _anb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E8_, + Runtime_ocaml_Runtime[13], + param0), + _anc_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _E9_, result$1[5]), + _anb_), + _and_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _E__, + Runtime_ocaml_Runtime[13], + _anc_); + return caml_call2(Runtime_ocaml_Runtime[27], _E$_, _and_); + }, + result$2 = + [0, result$1[1], result$1[2], result$1[3], result$1[4], _am5_]; + caml_call2(Runtime_ocaml_Runtime[29], _Fa_, 1); + var + _am6_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fb_, + embed_calcul_aide_personnalise$1, + result$2), + traitement_formule$0 = + caml_call2(Runtime_ocaml_Runtime[27], _Fc_, _am6_); + return [0, traitement_formule$0[4], traitement_formule$0[5]]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _am7_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _am8_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _am9_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _am__ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fd_, + embed_calcul_aide_personnalise$4, + [0, + logement_foyer[1], + logement_foyer[5], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[7], + residence, + _am9_, + _am8_, + _am7_]), + result$3 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Fe_, + calcul_aide_personnalisee_loge$0), + _am__), + _am$_ = + function(param0){ + var + _ani_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ff_, + Runtime_ocaml_Runtime[13], + param0), + _anj_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _Fg_, result$3[9]), + _ani_), + _ank_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fh_, + Runtime_ocaml_Runtime[13], + _anj_); + return caml_call2(Runtime_ocaml_Runtime[27], _Fi_, _ank_); + }, + result$4 = + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + result$3[6], + result$3[7], + result$3[8], + _am$_]; + caml_call2(Runtime_ocaml_Runtime[29], _Fj_, 1); + var + _ana_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fk_, + embed_calcul_aide_personnalise$0, + result$4), + traitement_formule$1 = + caml_call2(Runtime_ocaml_Runtime[27], _Fl_, _ana_); + return [0, traitement_formule$1[8], traitement_formule$1[9]]; + } + }, + _amK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fm_, 1); + }, + _amL_ = caml_call4(Runtime_ocaml_Runtime[63], _Fn_, [0], _amK_, _amJ_); + } + catch(_amX_){ + var _amI_ = caml_wrap_exception(_amX_); + if(_amI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _EV_], 1); + throw caml_maybe_attach_backtrace(_amI_, 0); + } + var + sous_calcul_traitement = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Fo_, + embed_traitement_formule_aide_, + _amL_); + function _amM_(arg){ + try{ + var + _amT_ = + function(param){return caml_call1(sous_calcul_traitement[2], arg);}, + _amU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fq_, 1); + }, + _amV_ = caml_call4(Runtime_ocaml_Runtime[63], _Fr_, [0], _amU_, _amT_); + return _amV_; + } + catch(_amW_){ + var _amS_ = caml_wrap_exception(_amW_); + if(_amS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Fp_], 1); + throw caml_maybe_attach_backtrace(_amS_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Fs_, Runtime_ocaml_Runtime[10], _amM_); + try{ + var + _amO_ = function(param){return sous_calcul_traitement[1];}, + _amP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fu_, 1); + }, + _amQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Fv_, [0], _amP_, _amO_); + } + catch(_amR_){ + var _amN_ = caml_wrap_exception(_amR_); + if(_amN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ft_], 1); + throw caml_maybe_attach_backtrace(_amN_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _Fw_, Runtime_ocaml_Runtime[13], _amQ_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ + var + menage = eligibilite_aides_personnelle_[1], + demandeur = eligibilite_aides_personnelle_[2], + date_courante = eligibilite_aides_personnelle_[3], + condition_logement_residence_p = eligibilite_aides_personnelle_[4], + condition_logement_surface = eligibilite_aides_personnelle_[5], + date_entree_vigueur_differee_c = eligibilite_aides_personnelle_[6]; + function _afb_(pret){ + try{ + var + _ams_ = function(param){return 0;}, + _amt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Fy_, 1); + }, + _amu_ = caml_call4(Runtime_ocaml_Runtime[63], _Fz_, [0], _amt_, _ams_); + return _amu_; + } + catch(_amv_){ + var _amr_ = caml_wrap_exception(_amv_); + if(_amr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Fx_], 1); + throw caml_maybe_attach_backtrace(_amr_, 0); + } + } + caml_call3 + (Runtime_ocaml_Runtime[28], _FA_, Runtime_ocaml_Runtime[10], _afb_); + try{ + var + _afd_ = function(param){return 0;}, + _afe_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FC_, 1); + }, + _aff_ = caml_call4(Runtime_ocaml_Runtime[63], _FD_, [0], _afe_, _afd_); + } + catch(_amq_){ + var _afc_ = caml_wrap_exception(_amq_); + if(_afc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FB_], 1); + throw caml_maybe_attach_backtrace(_afc_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _FE_, Runtime_ocaml_Runtime[12], _aff_); + try{ + var + _afh_ = + function(param){ + function _amo_(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1); + } + function _amp_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FG_, 1); + } + return caml_call4(Runtime_ocaml_Runtime[63], _FH_, [0], _amp_, _amo_); + }, + _afi_ = function(param){return 1;}, + _afj_ = + [0, + function(param){ + return caml_call1(date_entree_vigueur_differee_c, 0); + }], + _afk_ = caml_call4(Runtime_ocaml_Runtime[63], _FI_, _afj_, _afi_, _afh_); + } + catch(_amn_){ + var _afg_ = caml_wrap_exception(_amn_); + if(_afg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FF_], 1); + throw caml_maybe_attach_backtrace(_afg_, 0); + } + var + date_entree_vigueur_differee_c$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _FJ_, Runtime_ocaml_Runtime[16], _afk_); + try{ + var + _afm_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1); + }, + _afn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FL_, 1); + }, + _afo_ = caml_call4(Runtime_ocaml_Runtime[63], _FM_, [0], _afn_, _afm_); + } + catch(_amm_){ + var _afl_ = caml_wrap_exception(_amm_); + if(_afl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FK_], 1); + throw caml_maybe_attach_backtrace(_afl_, 0); + } + var + seuil_l822_3_parts_propriete = + caml_call3 + (Runtime_ocaml_Runtime[28], _FN_, Runtime_ocaml_Runtime[15], _afo_); + try{ + var + _afq_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[39], cst_0_1$0); + }, + _afr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FP_, 1); + }, + _afs_ = caml_call4(Runtime_ocaml_Runtime[63], _FQ_, [0], _afr_, _afq_); + } + catch(_aml_){ + var _afp_ = caml_wrap_exception(_aml_); + if(_afp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FO_], 1); + throw caml_maybe_attach_backtrace(_afp_, 0); + } + var + seuil_l822_3_parts_usufruit = + caml_call3 + (Runtime_ocaml_Runtime[28], _FR_, Runtime_ocaml_Runtime[15], _afs_); + try{ + var + _afu_ = + function(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_3000000); + }, + _afv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FT_, 1); + }, + _afw_ = caml_call4(Runtime_ocaml_Runtime[63], _FU_, [0], _afv_, _afu_); + } + catch(_amk_){ + var _aft_ = caml_wrap_exception(_amk_); + if(_aft_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FS_], 1); + throw caml_maybe_attach_backtrace(_aft_, 0); + } + var + seuil_l822_5_patrimoine = + caml_call3 + (Runtime_ocaml_Runtime[28], _FV_, Runtime_ocaml_Runtime[13], _afw_); + try{ + var + _afy_ = + function(param){ + var + _ami_ = 0 === menage[2][6][0] ? 1 : 0, + _amj_ = 0 === menage[2][4][0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[84], _amj_, _ami_); + }, + _afz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _FX_, 1); + }, + _afA_ = caml_call4(Runtime_ocaml_Runtime[63], _FY_, [0], _afz_, _afy_); + } + catch(_amh_){ + var _afx_ = caml_wrap_exception(_amh_); + if(_afx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _FW_], 1); + throw caml_maybe_attach_backtrace(_afx_, 0); + } + var + usufruit_ou_propriete_famille = + caml_call3 + (Runtime_ocaml_Runtime[28], _FZ_, Runtime_ocaml_Runtime[12], _afA_); + try{ + var + _afC_ = + function(param){ + var + _amd_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _ame_ = menage[4]; + switch(menage[5][0]){ + case 0: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$246); + break; + case 1: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$100); + break; + case 2: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$101); + break; + case 3: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$102); + break; + case 4: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$247); + break; + default: + var _amf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$103); + } + var _amg_ = caml_call2(Runtime_ocaml_Runtime[91], _amf_, _ame_); + return caml_call2(Runtime_ocaml_Runtime[91], _amg_, _amd_); + }, + _afD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _F1_, 1); + }, + _afE_ = caml_call4(Runtime_ocaml_Runtime[63], _F2_, [0], _afD_, _afC_); + } + catch(_amc_){ + var _afB_ = caml_wrap_exception(_amc_); + if(_afB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _F0_], 1); + throw caml_maybe_attach_backtrace(_afB_, 0); + } + var + nombre_personnes_logement = + caml_call3 + (Runtime_ocaml_Runtime[28], _F3_, Runtime_ocaml_Runtime[14], _afE_); + try{ + var + _afG_ = function(param){return 0;}, + _afH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _F5_, 1); + }, + _afI_ = + [0, + function(param){ + function _al8_(param){return 1;} + function _al9_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _F6_, 1); + } + var + _al__ = + [0, + function(param){ + function _al$_(param){return 0;} + function _ama_(param){ + switch(menage[9][0]){ + case 0: + var _amb_ = 0; break; + case 1: + var _amb_ = 0; break; + case 2: + var _amb_ = 0; break; + case 3: + var _amb_ = 0; break; + case 4: + var _amb_ = 0; break; + case 5: + var _amb_ = 0; break; + case 6: + var _amb_ = 0; break; + case 7: + var _amb_ = 0; break; + default: var _amb_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _F7_, _amb_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _F8_, [0], _ama_, _al$_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _F9_, _al__, _al9_, _al8_); + }], + _afJ_ = caml_call4(Runtime_ocaml_Runtime[63], _F__, _afI_, _afH_, _afG_); + } + catch(_al7_){ + var _afF_ = caml_wrap_exception(_al7_); + if(_afF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _F4_], 1); + throw caml_maybe_attach_backtrace(_afF_, 0); + } + var + septieme_alinea_l823_1_applica = + caml_call3 + (Runtime_ocaml_Runtime[28], _F$_, Runtime_ocaml_Runtime[12], _afJ_); + try{ + var + _afL_ = function(param){return 0;}, + _afM_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gb_, 1); + }, + _afN_ = + [0, + function(param){ + function _al4_(param){return 1;} + function _al5_(param){ + var _al6_ = caml_call1(Runtime_ocaml_Runtime[67], menage[2][7]); + return caml_call2(Runtime_ocaml_Runtime[29], _Gc_, _al6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Gd_, [0], _al5_, _al4_); + }], + _afO_ = caml_call4(Runtime_ocaml_Runtime[63], _Ge_, _afN_, _afM_, _afL_); + } + catch(_al3_){ + var _afK_ = caml_wrap_exception(_al3_); + if(_afK_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ga_], 1); + throw caml_maybe_attach_backtrace(_afK_, 0); + } + var + condition_non_ouverture_l822_9 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gf_, Runtime_ocaml_Runtime[12], _afO_); + try{ + var + _afQ_ = function(param){return 0;}, + _afR_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gh_, 1); + }, + _afS_ = + [0, + function(param){ + function _al1_(param){return 1;} + function _al2_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gi_, menage[6]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Gj_, [0], _al2_, _al1_); + }], + _afT_ = caml_call4(Runtime_ocaml_Runtime[63], _Gk_, _afS_, _afR_, _afQ_); + } + catch(_al0_){ + var _afP_ = caml_wrap_exception(_al0_); + if(_afP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gg_], 1); + throw caml_maybe_attach_backtrace(_afP_, 0); + } + var + condition_non_ouverture_l822_8 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gl_, Runtime_ocaml_Runtime[12], _afT_); + try{ + var + _afV_ = + function(param){ + function _alV_(param){return 0;} + function _alW_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gn_, 1); + } + var + _alX_ = + [0, + function(param){ + function _alY_(param){return 1;} + function _alZ_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _Go_, menage[2][1]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Gp_, [0], _alZ_, _alY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Gq_, _alX_, _alW_, _alV_); + }, + _afW_ = function(param){return 1;}, + _afX_ = + [0, + function(param){ + return caml_call1(condition_logement_residence_p, 0); + }], + _afY_ = caml_call4(Runtime_ocaml_Runtime[63], _Gr_, _afX_, _afW_, _afV_); + } + catch(_alU_){ + var _afU_ = caml_wrap_exception(_alU_); + if(_afU_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gm_], 1); + throw caml_maybe_attach_backtrace(_afU_, 0); + } + var + condition_logement_residence_p$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gs_, Runtime_ocaml_Runtime[12], _afY_); + try{ + var + _af0_ = function(param){return demandeur[1];}, + _af1_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Gu_, 1); + }, + _af2_ = caml_call4(Runtime_ocaml_Runtime[63], _Gv_, [0], _af1_, _af0_), + ouverture_droits_retraite_dot_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _Gw_, Runtime_ocaml_Runtime[16], _af2_); + } + catch(_alT_){ + var _afZ_ = caml_wrap_exception(_alT_); + if(_afZ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gt_], 1); + throw caml_maybe_attach_backtrace(_afZ_, 0); + } + var + _af3_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Gx_, ouverture_droits_retraite), + [0, ouverture_droits_retraite_dot_]), + result = caml_call2(Runtime_ocaml_Runtime[27], _Gy_, _af3_), + ouverture_droits_retraite_dot_$0 = result[1]; + try{ + var + _af5_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[93], demandeur[3][1], demandeur[3][2]); + }, + _af6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GA_, 1); + }, + _af7_ = caml_call4(Runtime_ocaml_Runtime[63], _GB_, [0], _af6_, _af5_); + } + catch(_alS_){ + var _af4_ = caml_wrap_exception(_alS_); + if(_af4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Gz_], 1); + throw caml_maybe_attach_backtrace(_af4_, 0); + } + var + patrimoine_total_demandeur = + caml_call3 + (Runtime_ocaml_Runtime[28], _GC_, Runtime_ocaml_Runtime[13], _af7_); + try{ + var + _af9_ = + function(param){ + var match = demandeur[2]; + if(0 === match[0]) return 1; + var conditions = match[1]; + return conditions[1]; + }, + _af__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GE_, 1); + }, + _af$_ = + [0, + function(param){ + function _alP_(param){ + var match = demandeur[2]; + if(0 === match[0]) return 0; + var conditions = match[1]; + return conditions[2]; + } + function _alQ_(param){ + switch(menage[9][0]){ + case 0: + var _alR_ = 0; break; + case 1: + var _alR_ = 0; break; + case 2: + var _alR_ = 0; break; + case 3: + var _alR_ = 0; break; + case 4: + var _alR_ = 0; break; + case 5: + var _alR_ = 0; break; + case 6: + var _alR_ = 0; break; + case 7: + var _alR_ = 0; break; + default: var _alR_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _GF_, _alR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _GG_, [0], _alQ_, _alP_); + }], + _aga_ = caml_call4(Runtime_ocaml_Runtime[63], _GH_, _af$_, _af__, _af9_); + } + catch(_alO_){ + var _af8_ = caml_wrap_exception(_alO_); + if(_af8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GD_], 1); + throw caml_maybe_attach_backtrace(_af8_, 0); + } + var + condition_nationalite = + caml_call3 + (Runtime_ocaml_Runtime[28], _GI_, Runtime_ocaml_Runtime[12], _aga_); + try{ + var + _agc_ = + function(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + }, + _agd_ = function(param){return 0;}, + _age_ = + function(param){ + function _alH_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1088175); + } + function _alI_(param){ + var + _alJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _alK_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alJ_), + _alL_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _alM_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alL_), + _alN_ = caml_call2(Runtime_ocaml_Runtime[83], _alM_, _alK_); + return caml_call2(Runtime_ocaml_Runtime[29], _GK_, _alN_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _GL_, [0], _alI_, _alH_); + }, + _agf_ = + function(param){ + function _alA_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1100144); + } + function _alB_(param){ + var + _alC_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _alD_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alC_), + _alE_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _alF_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alE_), + _alG_ = caml_call2(Runtime_ocaml_Runtime[83], _alF_, _alD_); + return caml_call2(Runtime_ocaml_Runtime[29], _GM_, _alG_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _GN_, [0], _alB_, _alA_); + }, + _agg_ = + function(param){ + function _alw_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1153302); + } + function _alx_(param){ + var + _aly_ = caml_call3(Runtime_ocaml_Runtime[57], 2023, 1, 1), + _alz_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aly_); + return caml_call2(Runtime_ocaml_Runtime[29], _GO_, _alz_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _GP_, [0], _alx_, _alw_); + }, + _agh_ = + function(param){ + function _alp_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1083840); + } + function _alq_(param){ + var + _alr_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _als_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alr_), + _alt_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _alu_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alt_), + _alv_ = caml_call2(Runtime_ocaml_Runtime[83], _alu_, _als_); + return caml_call2(Runtime_ocaml_Runtime[29], _GQ_, _alv_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _GR_, [0], _alq_, _alp_); + }, + _agi_ = + function(param){ + function _ali_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_1041840); + } + function _alj_(param){ + var + _alk_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _all_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _alk_), + _alm_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _aln_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alm_), + _alo_ = caml_call2(Runtime_ocaml_Runtime[83], _aln_, _all_); + return caml_call2(Runtime_ocaml_Runtime[29], _GS_, _alo_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _GT_, [0], _alj_, _ali_); + }, + _agj_ = + [0, + function(param){ + function _alb_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_999840); + } + function _alc_(param){ + var + _ald_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 1, 1), + _ale_ = + caml_call2(Runtime_ocaml_Runtime[115], date_courante, _ald_), + _alf_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), + _alg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _alf_), + _alh_ = caml_call2(Runtime_ocaml_Runtime[83], _alg_, _ale_); + return caml_call2(Runtime_ocaml_Runtime[29], _GU_, _alh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _GV_, [0], _alc_, _alb_); + }, + _agi_, + _agh_, + _agg_, + _agf_, + _age_], + _agk_ = caml_call4(Runtime_ocaml_Runtime[63], _GW_, _agj_, _agd_, _agc_); + } + catch(_ala_){ + var _agb_ = caml_wrap_exception(_ala_); + if(_agb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GJ_], 1); + throw caml_maybe_attach_backtrace(_agb_, 0); + } + var + plafond_individuel_l815_9_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _GX_, Runtime_ocaml_Runtime[13], _agk_); + try{ + var + _agm_ = function(param){return 0;}, + _agn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _GZ_, 1); + }, + _ago_ = + [0, + function(param){ + function _akY_(param){return 0;} + function _akZ_(param){ + var _ak$_ = 0 === menage[2][5][0] ? 1 : 0; + return caml_call2(Runtime_ocaml_Runtime[29], _G0_, _ak$_); + } + var + _ak0_ = + [0, + function(param){ + function _ak1_(param){return 1;} + function _ak2_(param){ + var match = menage[2][5]; + if(0 === match[0]) + var _ak3_ = 1; + else{ + var personne = match[1], _ak4_ = personne[2]; + try{ + var _ak6_ = caml_call3(Runtime_ocaml_Runtime[60], 30, 0, 0); + } + catch(_ak__){ + var _ak5_ = caml_wrap_exception(_ak__); + if(_ak5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _G2_], 1); + throw caml_maybe_attach_backtrace(_ak5_, 0); + } + var + _ak7_ = caml_call3 (Runtime_ocaml_Runtime[28], - _Q2_, - embed_calcul_aide_personnalise$3, - [0, - logement_foyer[7], - ressources_menage_avec_arrondi, - logement_foyer[9], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - 1, - 0, - type_aide, - 0, - _aGl_, - _aGk_, - residence]), - result= + _G3_, + embed_verification_age_superie$0, + [0, personne[1], date_courante, _ak6_]), + result = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _Q3_, - calcul_aide_personnalisee_loge), - _aGm_), - _aGn_= - function(param0) - {var - _aGp_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Q4_, - Runtime_ocaml_Runtime[13], - param0), - _aGq_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_Q5_,result[7]),_aGp_), - _aGr_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Q6_, - Runtime_ocaml_Runtime[13], - _aGq_); - return caml_call2(Runtime_ocaml_Runtime[27],_Q7_,_aGr_)}, - result$0= - [0, - result[1], - result[2], - result[3], - result[4], - result[5], - result[6], - _aGn_]; - caml_call2(Runtime_ocaml_Runtime[29],_Q8_,1); - var - _aGo_= + _G4_, + verification_age_superieur_a), + _ak7_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _G5_, 1); + var + _ak8_ = caml_call3 (Runtime_ocaml_Runtime[28], - _Q9_, - embed_calcul_aide_personnalise, + _G6_, + embed_verification_age_superie, result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_Q__,_aGo_); - return [0,traitement_formule[6],traitement_formule[7]]}} - function _aGg_(param) - {switch(categorie_calcul_apl[0]) - {case 0:var _aGh_=0;break; - case 1:var _aGh_=0;break; - default:var _aGh_=1} - switch(residence[0]) - {case 0:var _aGi_=0;break; - case 1:var _aGi_=0;break; - case 2:var _aGi_=0;break; - case 3:var _aGi_=0;break; - case 4:var _aGi_=0;break; - case 5:var _aGi_=0;break; - case 6:var _aGi_=0;break; - case 7:var _aGi_=1;break; - default:var _aGi_=0} - var _aGj_=caml_call2(Runtime_ocaml_Runtime[83],_aGi_,_aGh_); - return caml_call2(Runtime_ocaml_Runtime[29],_Q$_,_aGj_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Ra_,[0],_aGg_,_aGf_)}], - _aF6_=caml_call4(Runtime_ocaml_Runtime[63],_Rb_,_aF5_,_aF4_,_aF3_)} - catch(_aGe_) - {_aGe_ = caml_wrap_exception(_aGe_); - if(_aGe_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Qx_]; - throw _aGe_} - var - sous_calcul_traitement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Rc_,embed_traitement_formule_aide_,_aF6_); - function _aF7_(arg) - {try - {var - _aGa_= - function(param){return caml_call1(sous_calcul_traitement[2],arg)}, - _aGb_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Re_,1)}, - _aGc_=caml_call4(Runtime_ocaml_Runtime[63],_Rf_,[0],_aGb_,_aGa_); - return _aGc_} - catch(_aGd_) - {_aGd_ = caml_wrap_exception(_aGd_); - if(_aGd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rd_]; - throw _aGd_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_Rg_,Runtime_ocaml_Runtime[10],_aF7_); - try - {var - _aF8_=function(param){return sous_calcul_traitement[1]}, - _aF9_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ri_,1)}, - _aF__=caml_call4(Runtime_ocaml_Runtime[63],_Rj_,[0],_aF9_,_aF8_)} - catch(_aF$_) - {_aF$_ = caml_wrap_exception(_aF$_); - if(_aF$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rh_]; - throw _aF$_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Rk_,Runtime_ocaml_Runtime[13],_aF__); - return [0,aide_finale_formule,traitement_aide_finale]} - function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_) - {var - menage=eligibilite_aides_personnelle_[1], - demandeur=eligibilite_aides_personnelle_[2], - date_courante=eligibilite_aides_personnelle_[3], - condition_logement_residence_p=eligibilite_aides_personnelle_[4], - condition_logement_surface=eligibilite_aides_personnelle_[5], - date_entree_vigueur_differee_c=eligibilite_aides_personnelle_[6]; - function _ay__(pret) - {try - {var - _aFQ_=function(param){return 0}, - _aFR_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Rm_,1)}, - _aFS_=caml_call4(Runtime_ocaml_Runtime[63],_Rn_,[0],_aFR_,_aFQ_); - return _aFS_} - catch(_aFT_) - {_aFT_ = caml_wrap_exception(_aFT_); - if(_aFT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rl_]; - throw _aFT_}} - caml_call3 - (Runtime_ocaml_Runtime[28],_Ro_,Runtime_ocaml_Runtime[10],_ay__); - try - {var - _ay$_=function(param){return 0}, - _aza_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Rq_,1)}, - _azb_=caml_call4(Runtime_ocaml_Runtime[63],_Rr_,[0],_aza_,_ay$_)} - catch(_aFP_) - {_aFP_ = caml_wrap_exception(_aFP_); - if(_aFP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rp_]; - throw _aFP_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Rs_,Runtime_ocaml_Runtime[12],_azb_); - try - {var - _azc_= - function(param) - {function _aFN_(param) - {return caml_call3(Runtime_ocaml_Runtime[57],2021,1,1)} - function _aFO_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Ru_,1)} - return caml_call4(Runtime_ocaml_Runtime[63],_Rv_,[0],_aFO_,_aFN_)}, - _azd_=function(param){return 1}, - _aze_= - [0, - function(param) - {return caml_call1(date_entree_vigueur_differee_c,0)}], - _azf_=caml_call4(Runtime_ocaml_Runtime[63],_Rw_,_aze_,_azd_,_azc_)} - catch(_aFM_) - {_aFM_ = caml_wrap_exception(_aFM_); - if(_aFM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Rt_]; - throw _aFM_} - var - date_entree_vigueur_differee_c$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Rx_,Runtime_ocaml_Runtime[16],_azf_); - try - {var - _azg_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1)}, - _azh_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Rz_,1)}, - _azi_=caml_call4(Runtime_ocaml_Runtime[63],_RA_,[0],_azh_,_azg_)} - catch(_aFL_) - {_aFL_ = caml_wrap_exception(_aFL_); - if(_aFL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ry_]; - throw _aFL_} - var - seuil_l822_3_parts_propriete= - caml_call3 - (Runtime_ocaml_Runtime[28],_RB_,Runtime_ocaml_Runtime[15],_azi_); - try - {var - _azj_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[39],cst_0_1$0)}, - _azk_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RD_,1)}, - _azl_=caml_call4(Runtime_ocaml_Runtime[63],_RE_,[0],_azk_,_azj_)} - catch(_aFK_) - {_aFK_ = caml_wrap_exception(_aFK_); - if(_aFK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RC_]; - throw _aFK_} - var - seuil_l822_3_parts_usufruit= - caml_call3 - (Runtime_ocaml_Runtime[28],_RF_,Runtime_ocaml_Runtime[15],_azl_); - try - {var - _azm_= - function(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_3000000)}, - _azn_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RH_,1)}, - _azo_=caml_call4(Runtime_ocaml_Runtime[63],_RI_,[0],_azn_,_azm_)} - catch(_aFJ_) - {_aFJ_ = caml_wrap_exception(_aFJ_); - if(_aFJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RG_]; - throw _aFJ_} - var - seuil_l822_5_patrimoine= - caml_call3 - (Runtime_ocaml_Runtime[28],_RJ_,Runtime_ocaml_Runtime[13],_azo_); - try - {var - _azp_= - function(param) - {var - _aFH_=0 === menage[2][6][0]?1:0, - _aFI_=0 === menage[2][4][0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[84],_aFI_,_aFH_)}, - _azq_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RL_,1)}, - _azr_=caml_call4(Runtime_ocaml_Runtime[63],_RM_,[0],_azq_,_azp_)} - catch(_aFG_) - {_aFG_ = caml_wrap_exception(_aFG_); - if(_aFG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RK_]; - throw _aFG_} - var - usufruit_ou_propriete_famille= - caml_call3 - (Runtime_ocaml_Runtime[28],_RN_,Runtime_ocaml_Runtime[12],_azr_); - try - {var - _azs_= - function(param) - {var - _aFC_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _aFD_=menage[4]; - switch(menage[5][0]) - {case 0: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$275); - break; - case 1: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$118); - break; - case 2: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$119); - break; - case 3: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$120); - break; - case 4: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$276); - break; - default: - var _aFE_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$121)} - var _aFF_=caml_call2(Runtime_ocaml_Runtime[91],_aFE_,_aFD_); - return caml_call2(Runtime_ocaml_Runtime[91],_aFF_,_aFC_)}, - _azt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RP_,1)}, - _azu_=caml_call4(Runtime_ocaml_Runtime[63],_RQ_,[0],_azt_,_azs_)} - catch(_aFB_) - {_aFB_ = caml_wrap_exception(_aFB_); - if(_aFB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RO_]; - throw _aFB_} - var - nombre_personnes_logement= - caml_call3 - (Runtime_ocaml_Runtime[28],_RR_,Runtime_ocaml_Runtime[14],_azu_); - try - {var - _azv_=function(param){return 0}, - _azw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_RT_,1)}, - _azx_= - [0, - function(param) - {function _aFv_(param){return 1} - function _aFw_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_RU_,1)} - var - _aFx_= - [0, - function(param) - {function _aFy_(param){return 0} - function _aFz_(param) - {switch(menage[9][0]) - {case 0:var _aFA_=0;break; - case 1:var _aFA_=0;break; - case 2:var _aFA_=0;break; - case 3:var _aFA_=0;break; - case 4:var _aFA_=0;break; - case 5:var _aFA_=0;break; - case 6:var _aFA_=0;break; - case 7:var _aFA_=0;break; - default:var _aFA_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_RV_,_aFA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_RW_,[0],_aFz_,_aFy_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_RX_,_aFx_,_aFw_,_aFv_)}], - _azy_=caml_call4(Runtime_ocaml_Runtime[63],_RY_,_azx_,_azw_,_azv_)} - catch(_aFu_) - {_aFu_ = caml_wrap_exception(_aFu_); - if(_aFu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_RS_]; - throw _aFu_} - var - septieme_alinea_l823_1_applica= - caml_call3 - (Runtime_ocaml_Runtime[28],_RZ_,Runtime_ocaml_Runtime[12],_azy_); - try - {var - _azz_=function(param){return 0}, - _azA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R1_,1)}, - _azB_= - [0, - function(param) - {function _aFr_(param){return 1} - function _aFs_(param) - {var _aFt_=caml_call1(Runtime_ocaml_Runtime[67],menage[2][7]); - return caml_call2(Runtime_ocaml_Runtime[29],_R2_,_aFt_)} - return caml_call4(Runtime_ocaml_Runtime[63],_R3_,[0],_aFs_,_aFr_)}], - _azC_=caml_call4(Runtime_ocaml_Runtime[63],_R4_,_azB_,_azA_,_azz_)} - catch(_aFq_) - {_aFq_ = caml_wrap_exception(_aFq_); - if(_aFq_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R0_]; - throw _aFq_} - var - condition_non_ouverture_l822_9= - caml_call3 - (Runtime_ocaml_Runtime[28],_R5_,Runtime_ocaml_Runtime[12],_azC_); - try - {var - _azD_=function(param){return 0}, - _azE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_R7_,1)}, - _azF_= - [0, - function(param) - {function _aFo_(param){return 1} - function _aFp_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_R8_,menage[6])} - return caml_call4(Runtime_ocaml_Runtime[63],_R9_,[0],_aFp_,_aFo_)}], - _azG_=caml_call4(Runtime_ocaml_Runtime[63],_R__,_azF_,_azE_,_azD_)} - catch(_aFn_) - {_aFn_ = caml_wrap_exception(_aFn_); - if(_aFn_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_R6_]; - throw _aFn_} - var - condition_non_ouverture_l822_8= - caml_call3 - (Runtime_ocaml_Runtime[28],_R$_,Runtime_ocaml_Runtime[12],_azG_); - try - {var - _azH_= - function(param) - {function _aFi_(param){return 0} - function _aFj_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Sb_,1)} - var - _aFk_= - [0, - function(param) - {function _aFl_(param){return 1} - function _aFm_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_Sc_,menage[2][1])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Sd_,[0],_aFm_,_aFl_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Se_,_aFk_,_aFj_,_aFi_)}, - _azI_=function(param){return 1}, - _azJ_= - [0, - function(param) - {return caml_call1(condition_logement_residence_p,0)}], - _azK_=caml_call4(Runtime_ocaml_Runtime[63],_Sf_,_azJ_,_azI_,_azH_)} - catch(_aFh_) - {_aFh_ = caml_wrap_exception(_aFh_); - if(_aFh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sa_]; - throw _aFh_} - var - condition_logement_residence_p$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sg_,Runtime_ocaml_Runtime[12],_azK_); - try - {var - _azL_=function(param){return demandeur[1]}, - _azM_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Si_,1)}, - _azN_=caml_call4(Runtime_ocaml_Runtime[63],_Sj_,[0],_azM_,_azL_), - ouverture_droits_retraite_dot_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sk_,Runtime_ocaml_Runtime[16],_azN_)} - catch(_aFg_) - {_aFg_ = caml_wrap_exception(_aFg_); - if(_aFg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sh_]; - throw _aFg_} - var - _azO_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_Sl_,ouverture_droits_retraite), - [0,ouverture_droits_retraite_dot_]), - result=caml_call2(Runtime_ocaml_Runtime[27],_Sm_,_azO_), - ouverture_droits_retraite_dot_$0=result[1]; - try - {var - _azP_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[93],demandeur[3][1],demandeur[3][2])}, - _azQ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_So_,1)}, - _azR_=caml_call4(Runtime_ocaml_Runtime[63],_Sp_,[0],_azQ_,_azP_)} - catch(_aFf_) - {_aFf_ = caml_wrap_exception(_aFf_); - if(_aFf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sn_]; - throw _aFf_} - var - patrimoine_total_demandeur= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sq_,Runtime_ocaml_Runtime[13],_azR_); - try - {var - _azS_= - function(param) - {var _aFe_=demandeur[2]; - if(0 === _aFe_[0])return 1; - var conditions=_aFe_[1]; - return conditions[1]}, - _azT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ss_,1)}, - _azU_= - [0, - function(param) - {function _aFa_(param) - {var _aFd_=demandeur[2]; - if(0 === _aFd_[0])return 0; - var conditions=_aFd_[1]; - return conditions[2]} - function _aFb_(param) - {switch(menage[9][0]) - {case 0:var _aFc_=0;break; - case 1:var _aFc_=0;break; - case 2:var _aFc_=0;break; - case 3:var _aFc_=0;break; - case 4:var _aFc_=0;break; - case 5:var _aFc_=0;break; - case 6:var _aFc_=0;break; - case 7:var _aFc_=0;break; - default:var _aFc_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_St_,_aFc_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Su_,[0],_aFb_,_aFa_)}], - _azV_=caml_call4(Runtime_ocaml_Runtime[63],_Sv_,_azU_,_azT_,_azS_)} - catch(_aE$_) - {_aE$_ = caml_wrap_exception(_aE$_); - if(_aE$_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sr_]; - throw _aE$_} - var - condition_nationalite= - caml_call3 - (Runtime_ocaml_Runtime[28],_Sw_,Runtime_ocaml_Runtime[12],_azV_); - try - {var - _azW_=function(param){throw Runtime_ocaml_Runtime[2]}, - _azX_=function(param){return 0}, - _azY_= - function(param) - {function _aE4_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1088175)} - function _aE5_(param) - {var - _aE6_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aE7_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aE6_), - _aE8_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _aE9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aE8_), - _aE__=caml_call2(Runtime_ocaml_Runtime[83],_aE9_,_aE7_); - return caml_call2(Runtime_ocaml_Runtime[29],_Sy_,_aE__)} - return caml_call4(Runtime_ocaml_Runtime[63],_Sz_,[0],_aE5_,_aE4_)}, - _azZ_= - function(param) - {function _aEX_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1100144)} - function _aEY_(param) - {var - _aEZ_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aE0_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEZ_), - _aE1_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aE2_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aE1_), - _aE3_=caml_call2(Runtime_ocaml_Runtime[83],_aE2_,_aE0_); - return caml_call2(Runtime_ocaml_Runtime[29],_SA_,_aE3_)} - return caml_call4(Runtime_ocaml_Runtime[63],_SB_,[0],_aEY_,_aEX_)}, - _az0_= - function(param) - {function _aET_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1153302)} - function _aEU_(param) - {var - _aEV_=caml_call3(Runtime_ocaml_Runtime[57],2023,1,1), - _aEW_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEV_); - return caml_call2(Runtime_ocaml_Runtime[29],_SC_,_aEW_)} - return caml_call4(Runtime_ocaml_Runtime[63],_SD_,[0],_aEU_,_aET_)}, - _az1_= - function(param) - {function _aEM_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1083840)} - function _aEN_(param) - {var - _aEO_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _aEP_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEO_), - _aEQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aER_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEQ_), - _aES_=caml_call2(Runtime_ocaml_Runtime[83],_aER_,_aEP_); - return caml_call2(Runtime_ocaml_Runtime[29],_SE_,_aES_)} - return caml_call4(Runtime_ocaml_Runtime[63],_SF_,[0],_aEN_,_aEM_)}, - _az2_= - function(param) - {function _aEF_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_1041840)} - function _aEG_(param) - {var - _aEH_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _aEI_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEH_), - _aEJ_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _aEK_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEJ_), - _aEL_=caml_call2(Runtime_ocaml_Runtime[83],_aEK_,_aEI_); - return caml_call2(Runtime_ocaml_Runtime[29],_SG_,_aEL_)} - return caml_call4(Runtime_ocaml_Runtime[63],_SH_,[0],_aEG_,_aEF_)}, - _az3_= - [0, - function(param) - {function _aEy_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_999840)} - function _aEz_(param) - {var - _aEA_=caml_call3(Runtime_ocaml_Runtime[57],2019,1,1), - _aEB_= - caml_call2(Runtime_ocaml_Runtime[115],date_courante,_aEA_), - _aEC_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), - _aED_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aEC_), - _aEE_=caml_call2(Runtime_ocaml_Runtime[83],_aED_,_aEB_); - return caml_call2(Runtime_ocaml_Runtime[29],_SI_,_aEE_)} - return caml_call4(Runtime_ocaml_Runtime[63],_SJ_,[0],_aEz_,_aEy_)}, - _az2_, - _az1_, - _az0_, - _azZ_, - _azY_], - _az4_=caml_call4(Runtime_ocaml_Runtime[63],_SK_,_az3_,_azX_,_azW_)} - catch(_aEx_) - {_aEx_ = caml_wrap_exception(_aEx_); - if(_aEx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Sx_]; - throw _aEx_} - var - plafond_individuel_l815_9_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_SL_,Runtime_ocaml_Runtime[13],_az4_); - try - {var - _az5_=function(param){return 0}, - _az6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_SN_,1)}, - _az7_= - [0, - function(param) - {function _aEj_(param){return 0} - function _aEk_(param) - {var _aEw_=0 === menage[2][5][0]?1:0; - return caml_call2(Runtime_ocaml_Runtime[29],_SO_,_aEw_)} - var - _aEl_= - [0, - function(param) - {function _aEm_(param){return 1} - function _aEn_(param) - {var _aEo_=menage[2][5]; - if(0 === _aEo_[0]) - var _aEp_=1; - else - {var personne=_aEo_[1],_aEq_=personne[2]; - try - {var _aEr_=caml_call3(Runtime_ocaml_Runtime[60],30,0,0)} - catch(_aEv_) - {_aEv_ = caml_wrap_exception(_aEv_); - if(_aEv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_SQ_]; - throw _aEv_} - var - _aEs_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SR_, - embed_verification_age_superie$2, - [0,personne[1],date_courante,_aEr_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _SS_, - verification_age_superieur_a$1), - _aEs_), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_ST_,1); - var - _aEt_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _SU_, - embed_verification_age_superie$1, - result$0), - _aEu_=caml_call2(Runtime_ocaml_Runtime[27],_SV_,_aEt_)[1], - _aEp_=caml_call2(Runtime_ocaml_Runtime[84],_aEu_,_aEq_)} - return caml_call2(Runtime_ocaml_Runtime[29],_SP_,_aEp_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_SW_,[0],_aEn_,_aEm_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_SX_,_aEl_,_aEk_,_aEj_)}], - _az8_=caml_call4(Runtime_ocaml_Runtime[63],_SY_,_az7_,_az6_,_az5_)} - catch(_aEi_) - {_aEi_ = caml_wrap_exception(_aEi_); - if(_aEi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_SM_]; - throw _aEi_} - var - condition_logement_location_ti= - caml_call3 - (Runtime_ocaml_Runtime[28],_SZ_,Runtime_ocaml_Runtime[12],_az8_); - try - {var - _az9_=function(param){return date_courante}, - _az__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S1_,1)}, - _az$_=caml_call4(Runtime_ocaml_Runtime[63],_S2_,[0],_az__,_az9_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_S3_,Runtime_ocaml_Runtime[16],_az$_)} - catch(_aEh_) - {_aEh_ = caml_wrap_exception(_aEh_); - if(_aEh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_S0_]; - throw _aEh_} - try - {var - _aAa_=function(param){return _S5_}, - _aAb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S6_,1)}, - _aAc_=caml_call4(Runtime_ocaml_Runtime[63],_S7_,[0],_aAb_,_aAa_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _S8_, - embed_element_prestations_fami$0, - _aAc_)} - catch(_aEg_) - {_aEg_ = caml_wrap_exception(_aEg_); - if(_aEg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_S4_]; - throw _aEg_} - try - {var - _aAd_=function(param){return menage[9]}, - _aAe_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_S__,1)}, - _aAf_=caml_call4(Runtime_ocaml_Runtime[63],_S$_,[0],_aAe_,_aAd_), - prestations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_Ta_,embed_collectivite$0,_aAf_)} - catch(_aEf_) - {_aEf_ = caml_wrap_exception(_aEf_); - if(_aEf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_S9_]; - throw _aEf_} - function prestations_familiales_dot_age(param) - {function _aD1_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],21,0,0)} - function _aD2_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Tb_,1)} - var - _aD3_= - [0, - function(param) - {function _aD5_(param){throw Runtime_ocaml_Runtime[2]} - function _aD6_(param){return 0} - var - _aD7_= - [0, - function(param) - {function _aD8_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} - function _aD9_(param) - {switch(menage[9][0]) - {case 0:var _aEe_=1;break; - case 1:var _aEe_=1;break; - case 2:var _aEe_=1;break; - case 3:var _aEe_=1;break; - case 4:var _aEe_=0;break; - case 5:var _aEe_=0;break; - case 6:var _aEe_=0;break; - case 7:var _aEe_=0;break; - default:var _aEe_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Tc_,_aEe_)} - var - _aD__= - [0, - function(param) - {function _aD$_(param) - {return caml_call3(Runtime_ocaml_Runtime[60],22,0,0)} - function _aEa_(param) - {switch(menage[9][0]) - {case 0:var _aEb_=0;break; - case 1:var _aEb_=0;break; - case 2:var _aEb_=0;break; - case 3:var _aEb_=0;break; - case 4:var _aEb_=1;break; - case 5:var _aEb_=1;break; - case 6:var _aEb_=0;break; - case 7:var _aEb_=0;break; - default:var _aEb_=0} - var - _aEc_= - caml_call2 - (Runtime_ocaml_Runtime[130], - date_courante, - date_entree_vigueur_differee_c$0), - _aEd_=caml_call2(Runtime_ocaml_Runtime[83],_aEc_,_aEb_); - return caml_call2(Runtime_ocaml_Runtime[29],_Td_,_aEd_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Te_,[0],_aEa_,_aD$_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Tf_,_aD__,_aD9_,_aD8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Tg_,_aD7_,_aD6_,_aD5_)}], - _aD4_=caml_call4(Runtime_ocaml_Runtime[63],_Th_,_aD3_,_aD2_,_aD1_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Ti_, - Runtime_ocaml_Runtime[17], - _aD4_)} - var - _aAg_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_Tj_,eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_Tk_,_aAg_), - prestations_familiales_dot_age$0=result$0[1], - prestations_familiales_dot_dro=result$0[2]; - try - {var - _aAh_=function(param){return 0}, - _aAi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Tm_,1)}, - _aAj_= - [0, - function(param) - {function _aDM_(param){return 1} - function _aDN_(param) - {switch(menage[2][3][0]) - {case 0:var _aD0_=1;break; - case 1:var _aD0_=1;break; - case 2:var _aD0_=menage[2][1];break; - case 3:var _aD0_=1;break; - default:var _aD0_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_Tn_,_aD0_)} - var - _aDO_= - [0, - function(param) - {function _aDP_(param){return 0} - function _aDQ_(param) - {switch(menage[2][3][0]) - {case 0: - var - usufruit_ou_propriete_famille$0= - usufruit_ou_propriete_famille; - break; - case 1:var usufruit_ou_propriete_famille$0=0;break; - case 2:var usufruit_ou_propriete_famille$0=0;break; - case 3:var usufruit_ou_propriete_famille$0=0;break; - default:var usufruit_ou_propriete_famille$0=0} - return caml_call2 - (Runtime_ocaml_Runtime[29], - _To_, - usufruit_ou_propriete_famille$0)} - var - _aDR_= - [0, - function(param) - {function _aDS_(param){return 1} - function _aDT_(param) - {var _aDU_=menage[2][6]; - if(0 === _aDU_[0]) - var parts=_aDU_[1],parts$0=parts; - else - var parts$0=caml_call1(Runtime_ocaml_Runtime[39],cst_0$409); - var - _aDV_= - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$0, - seuil_l822_3_parts_usufruit), - _aDW_=menage[2][4]; - if(0 === _aDW_[0]) - var parts$1=_aDW_[1],parts$2=parts$1; - else - var parts$2=caml_call1(Runtime_ocaml_Runtime[39],cst_0$408); - var - _aDX_= - caml_call2 - (Runtime_ocaml_Runtime[112], - parts$2, - seuil_l822_3_parts_propriete), - _aDY_=caml_call2(Runtime_ocaml_Runtime[83],_aDX_,_aDV_), - _aDZ_= - caml_call2 - (Runtime_ocaml_Runtime[83], - usufruit_ou_propriete_famille, - _aDY_); - return caml_call2(Runtime_ocaml_Runtime[29],_Tp_,_aDZ_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Tq_,[0],_aDT_,_aDS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Tr_,_aDR_,_aDQ_,_aDP_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ts_,_aDO_,_aDN_,_aDM_)}], - _aAk_=caml_call4(Runtime_ocaml_Runtime[63],_Tt_,_aAj_,_aAi_,_aAh_)} - catch(_aDL_) - {_aDL_ = caml_wrap_exception(_aDL_); - if(_aDL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Tl_]; - throw _aDL_} - var - condition_logement_mode_occupa= - caml_call3 - (Runtime_ocaml_Runtime[28],_Tu_,Runtime_ocaml_Runtime[12],_aAk_); - try - {var - _aAl_= - function(param) - {function _aDi_(param){return 0} - function _aDj_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Tw_,1)} - var - _aDk_= - [0, - function(param) - {function _aDl_(param){return 1} - function _aDm_(param) - {var - _aDA_=caml_call1(Runtime_ocaml_Runtime[46],cst_9), - _aDB_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _aDC_=caml_call2(Runtime_ocaml_Runtime[91],menage[4],_aDB_), - _aDD_=caml_call2(Runtime_ocaml_Runtime[102],_aDC_,_aDA_); - switch(menage[5][0]) - {case 0: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$0); - break; - case 1: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16); - break; - case 2: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$0); - break; - case 3: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$1); - break; - case 4: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_9$1); - break; - default: - var _aDE_=caml_call1(Runtime_ocaml_Runtime[46],cst_16$2)} - var - condition_logement_surface_min= - caml_call2(Runtime_ocaml_Runtime[91],_aDE_,_aDD_), - _aDF_=caml_call1(Runtime_ocaml_Runtime[46],cst_8), - _aDG_= - caml_call2 - (Runtime_ocaml_Runtime[126],nombre_personnes_logement,_aDF_), - _aDH_=caml_call1(Runtime_ocaml_Runtime[46],cst_70), - _aDI_= - caml_call2 - (Runtime_ocaml_Runtime[126], - condition_logement_surface_min, - _aDH_); - if(caml_call2(Runtime_ocaml_Runtime[83],_aDI_,_aDG_)) - var - _aDJ_=caml_call1(Runtime_ocaml_Runtime[46],cst_70$0), - _aDK_= - caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aDJ_); - else - var - _aDK_= - caml_call2 - (Runtime_ocaml_Runtime[126], - menage[2][8], - condition_logement_surface_min); - return caml_call2(Runtime_ocaml_Runtime[29],_Tx_,_aDK_)} - var - _aDn_= - [0, - function(param) - {function _aDo_(param){return 1} - function _aDp_(param) - {var - _aDw_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$277), - _aDx_= - caml_call2 - (Runtime_ocaml_Runtime[86],nombre_personnes_logement,_aDw_) - ?caml_call1(Runtime_ocaml_Runtime[46],cst_9$2) - :caml_call1(Runtime_ocaml_Runtime[46],cst_16$3), - _aDy_= - caml_call2(Runtime_ocaml_Runtime[126],menage[2][8],_aDx_), - _aDz_=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_aDy_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ty_,_aDz_)} - var - _aDq_= - [0, - function(param) - {function _aDr_(param){return 0} - function _aDs_(param) - {var - _aDt_=caml_call1(Runtime_ocaml_Runtime[46],cst_2$122), - _aDu_= - caml_call2 - (Runtime_ocaml_Runtime[121],nombre_personnes_logement,_aDt_), - _aDv_=caml_call2(Runtime_ocaml_Runtime[83],menage[8],_aDu_); - return caml_call2(Runtime_ocaml_Runtime[29],_Tz_,_aDv_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_TA_,[0],_aDs_,_aDr_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TB_,_aDq_,_aDp_,_aDo_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TC_,_aDn_,_aDm_,_aDl_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TD_,_aDk_,_aDj_,_aDi_)}, - _aAm_=function(param){return 1}, - _aAn_= - [0,function(param){return caml_call1(condition_logement_surface,0)}], - _aAo_=caml_call4(Runtime_ocaml_Runtime[63],_TE_,_aAn_,_aAm_,_aAl_)} - catch(_aDh_) - {_aDh_ = caml_wrap_exception(_aDh_); - if(_aDh_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Tv_]; - throw _aDh_} - var - condition_logement_surface$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_TF_,Runtime_ocaml_Runtime[12],_aAo_); - try - {var - _aAp_=function(param){return ouverture_droits_retraite_dot_$0}, - _aAq_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TH_,1)}, - _aAr_=caml_call4(Runtime_ocaml_Runtime[63],_TI_,[0],_aAq_,_aAp_)} - catch(_aDg_) - {_aDg_ = caml_wrap_exception(_aDg_); - if(_aDg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TG_]; - throw _aDg_} - var - age_l161_17_2_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_TJ_,Runtime_ocaml_Runtime[17],_aAr_); - try - {var - _aAs_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[123], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine) - ?patrimoine_total_demandeur - :caml_call1(Runtime_ocaml_Runtime[31],cst_0$410)}, - _aAt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TL_,1)}, - _aAu_= - [0, - function(param) - {function _aCZ_(param){return demandeur[3][2]} - function _aC0_(param) - {var - _aDf_= - caml_call2 - (Runtime_ocaml_Runtime[128], - patrimoine_total_demandeur, - seuil_l822_5_patrimoine); - return caml_call2(Runtime_ocaml_Runtime[29],_TM_,_aDf_)} - var - _aC1_= - [0, - function(param) - {function _aC2_(param){throw Runtime_ocaml_Runtime[2]} - function _aC3_(param){return 0} - var - _aC4_= - [0, - function(param) - {function _aC5_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$411)} - function _aC6_(param) - {var _aC__=menage[1],_aC$_=0; - function _aDa_(acc,prestation) - {var - _aDc_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_TN_), - _aDd_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_TO_), - _aDe_=caml_call2(Runtime_ocaml_Runtime[84],_aDd_,_aDc_); - return caml_call2(Runtime_ocaml_Runtime[84],acc,_aDe_)} - var - _aDb_= - caml_call3(Runtime_ocaml_Runtime[136],_aDa_,_aC$_,_aC__); - return caml_call2(Runtime_ocaml_Runtime[29],_TP_,_aDb_)} - var - _aC7_= - [0, - function(param) - {function _aC8_(param) - {return caml_call1(Runtime_ocaml_Runtime[31],cst_0$412)} - function _aC9_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_TQ_,menage[2][2])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_TR_,[0],_aC9_,_aC8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TS_,_aC7_,_aC6_,_aC5_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TT_,_aC4_,_aC3_,_aC2_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_TU_,_aC1_,_aC0_,_aCZ_)}], - _aAv_=caml_call4(Runtime_ocaml_Runtime[63],_TV_,_aAu_,_aAt_,_aAs_)} - catch(_aCY_) - {_aCY_ = caml_wrap_exception(_aCY_); - if(_aCY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TK_]; - throw _aCY_} - caml_call3 - (Runtime_ocaml_Runtime[28],_TW_,Runtime_ocaml_Runtime[13],_aAv_); - try - {var - _aAw_=function(param){return 0}, - _aAx_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_TY_,1)}, - _aAy_= - [0, - function(param) - {function _aCW_(param){return 1} - function _aCX_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29], - _TZ_, - condition_logement_surface$0)} - return caml_call4(Runtime_ocaml_Runtime[63],_T0_,[0],_aCX_,_aCW_)}], - _aAz_=caml_call4(Runtime_ocaml_Runtime[63],_T1_,_aAy_,_aAx_,_aAw_)} - catch(_aCV_) - {_aCV_ = caml_wrap_exception(_aCV_); - if(_aCV_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_TX_]; - throw _aCV_} - var - condition_ouverture_l822_10_pe= - caml_call3 - (Runtime_ocaml_Runtime[28],_T2_,Runtime_ocaml_Runtime[12],_aAz_); - try - {var - _aAA_= - function(param) - {var _aCU_=caml_call3(Runtime_ocaml_Runtime[60],5,0,0); - return caml_call2 - (Runtime_ocaml_Runtime[95],age_l161_17_2_secu,_aCU_)}, - _aAB_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T4_,1)}, - _aAC_=caml_call4(Runtime_ocaml_Runtime[63],_T5_,[0],_aAB_,_aAA_)} - catch(_aCT_) - {_aCT_ = caml_wrap_exception(_aCT_); - if(_aCT_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_T3_]; - throw _aCT_} - var - age_l351_8_1_secu= - caml_call3 - (Runtime_ocaml_Runtime[28],_T6_,Runtime_ocaml_Runtime[17],_aAC_); - try - {var - _aAD_=function(param){return 0}, - _aAE_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_T8_,1)}, - _aAF_= - [0, - function(param) - {function _aCK_(param){return 1} - function _aCL_(param) - {var - _aCQ_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_location_ti, - condition_ouverture_l822_10_pe), - _aCR_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - _aCQ_), - _aCS_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_residence_p$0, - _aCR_); - return caml_call2(Runtime_ocaml_Runtime[29],_T9_,_aCS_)} - var - _aCM_= - [0, - function(param) - {function _aCN_(param){return 0} - function _aCO_(param) - {var - _aCP_= - caml_call2 - (Runtime_ocaml_Runtime[84], - condition_non_ouverture_l822_8, - condition_non_ouverture_l822_9); - return caml_call2(Runtime_ocaml_Runtime[29],_T__,_aCP_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_T$_,[0],_aCO_,_aCN_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ua_,_aCM_,_aCL_,_aCK_)}], - _aAG_=caml_call4(Runtime_ocaml_Runtime[63],_Ub_,_aAF_,_aAE_,_aAD_)} - catch(_aCJ_) - {_aCJ_ = caml_wrap_exception(_aCJ_); - if(_aCJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_T7_]; - throw _aCJ_} - var - eligibilite_logement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Uc_,Runtime_ocaml_Runtime[12],_aAG_); - function _aAH_(personne_a_charge) - {try - {var - _aCi_=function(param){return 0}, - _aCj_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Ue_,1)}, - _aCk_= - [0, - function(param) - {function _aCn_(param){return 1} - function _aCo_(param) - {if(0 === personne_a_charge[0]) - var _aCp_=0; - else - {var - parent=personne_a_charge[1], - _aCq_=parent[6], - _aCr_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,parent[1],age_l161_17_2_secu), - _aCs_= - caml_call2(Runtime_ocaml_Runtime[120],_aCr_,date_courante), - _aCt_=caml_call2(Runtime_ocaml_Runtime[83],_aCs_,_aCq_); - try - {var _aCu_=caml_call3(Runtime_ocaml_Runtime[60],65,0,0)} - catch(_aCI_) - {_aCI_ = caml_wrap_exception(_aCI_); - if(_aCI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ug_]; - throw _aCI_} - var - _aCv_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Uh_, - embed_verification_age_inferie$2, - [0,parent[1],date_courante,_aCu_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Ui_, - verification_age_inferieur_ou_$5), - _aCv_), - result$0=[0,result[1]]; - caml_call2(Runtime_ocaml_Runtime[29],_Uj_,1); - var - _aCw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Uk_, - embed_verification_age_inferie$1, - result$0), - _aCx_=caml_call2(Runtime_ocaml_Runtime[27],_Ul_,_aCw_)[1], - _aCy_=caml_call2(Runtime_ocaml_Runtime[83],parent[7],_aCx_), - _aCz_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,parent[1],age_l351_8_1_secu), - _aCA_= - caml_call2(Runtime_ocaml_Runtime[120],_aCz_,date_courante), - _aCB_=caml_call2(Runtime_ocaml_Runtime[84],_aCA_,_aCy_), - _aCC_=caml_call2(Runtime_ocaml_Runtime[84],_aCB_,_aCt_), - _aCD_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25), - _aCE_= - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _aCD_), - _aCF_=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_aCE_), - _aCG_=caml_call2(Runtime_ocaml_Runtime[83],_aCF_,_aCC_), - _aCH_=caml_call2(Runtime_ocaml_Runtime[86],parent[4],_Um_), - _aCp_=caml_call2(Runtime_ocaml_Runtime[83],_aCH_,_aCG_)} - return caml_call2(Runtime_ocaml_Runtime[29],_Uf_,_aCp_)} + _ak9_ = + caml_call2(Runtime_ocaml_Runtime[27], _G7_, _ak8_)[1], + _ak3_ = caml_call2(Runtime_ocaml_Runtime[84], _ak9_, _ak4_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _G1_, _ak3_); + } return caml_call4 - (Runtime_ocaml_Runtime[63],_Un_,[0],_aCo_,_aCn_)}], - _aCl_=caml_call4(Runtime_ocaml_Runtime[63],_Uo_,_aCk_,_aCj_,_aCi_); - return _aCl_} - catch(_aCm_) - {_aCm_ = caml_wrap_exception(_aCm_); - if(_aCm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ud_]; - throw _aCm_}} - var - condition_2_r823_4= + (Runtime_ocaml_Runtime[63], _G8_, [0], _ak2_, _ak1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _G9_, _ak0_, _akZ_, _akY_); + }], + _agp_ = caml_call4(Runtime_ocaml_Runtime[63], _G__, _ago_, _agn_, _agm_); + } + catch(_akX_){ + var _agl_ = caml_wrap_exception(_akX_); + if(_agl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _GY_], 1); + throw caml_maybe_attach_backtrace(_agl_, 0); + } + var + condition_logement_location_ti = + caml_call3 + (Runtime_ocaml_Runtime[28], _G$_, Runtime_ocaml_Runtime[12], _agp_); + try{ + var + _agr_ = function(param){return date_courante;}, + _ags_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hb_, 1); + }, + _agt_ = caml_call4(Runtime_ocaml_Runtime[63], _Hc_, [0], _ags_, _agr_), + prestations_familiales_dot_dat = caml_call3 - (Runtime_ocaml_Runtime[28],_Up_,Runtime_ocaml_Runtime[10],_aAH_); - try - {var - _aAI_=function(param){return 0}, - _aAJ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Ur_,1)}, - _aAK_= - [0, - function(param) - {function _aCe_(param){return 1} - function _aCf_(param) - {var - _aCg_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_mode_occupa, - eligibilite_logement), - _aCh_= - caml_call2 - (Runtime_ocaml_Runtime[83],condition_nationalite,_aCg_); - return caml_call2(Runtime_ocaml_Runtime[29],_Us_,_aCh_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Ut_,[0],_aCf_,_aCe_)}], - _aAL_=caml_call4(Runtime_ocaml_Runtime[63],_Uu_,_aAK_,_aAJ_,_aAI_)} - catch(_aCd_) - {_aCd_ = caml_wrap_exception(_aCd_); - if(_aCd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Uq_]; - throw _aCd_} - var - eligibilite= + (Runtime_ocaml_Runtime[28], _Hd_, Runtime_ocaml_Runtime[16], _agt_); + } + catch(_akW_){ + var _agq_ = caml_wrap_exception(_akW_); + if(_agq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ha_], 1); + throw caml_maybe_attach_backtrace(_agq_, 0); + } + try{ + var + _agv_ = function(param){return _Hf_;}, + _agw_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hg_, 1); + }, + _agx_ = caml_call4(Runtime_ocaml_Runtime[63], _Hh_, [0], _agw_, _agv_), + prestations_familiales_dot_pre = caml_call3 - (Runtime_ocaml_Runtime[28],_Uv_,Runtime_ocaml_Runtime[12],_aAL_); - function _aAM_(personne_a_charge) - {try - {var - _aBh_=function(param){return 0}, - _aBi_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Ux_,1)}, - _aBj_= - function(param) - {function _aBA_(param){return 1} - function _aBB_(param) - {if(0 === personne_a_charge[0]) - var - enfant=personne_a_charge[1], - _aB8_=enfant[3], - _aB9_=enfant[4], - _aB__=0 === enfant[8][0]?_Uy_:_UE_, - _aB$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Uz_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aB__, - _aB9_, - _aB8_]), - _aCa_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _UA_, - prestations_familiales_dot_dro), - _aB$_), - _aCb_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _UB_, - Runtime_ocaml_Runtime[12], - _aCa_), - _aCc_=caml_call2(Runtime_ocaml_Runtime[27],_UC_,_aCb_); - else - var _aCc_=0; - return caml_call2(Runtime_ocaml_Runtime[29],_UD_,_aCc_)} - var - _aBC_= - [0, - function(param) - {function _aBD_(param){throw Runtime_ocaml_Runtime[2]} - function _aBE_(param){return 0} + (Runtime_ocaml_Runtime[28], + _Hi_, + embed_element_prestations_fami, + _agx_); + } + catch(_akV_){ + var _agu_ = caml_wrap_exception(_akV_); + if(_agu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _He_], 1); + throw caml_maybe_attach_backtrace(_agu_, 0); + } + try{ + var + _agz_ = function(param){return menage[9];}, + _agA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hk_, 1); + }, + _agB_ = caml_call4(Runtime_ocaml_Runtime[63], _Hl_, [0], _agA_, _agz_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _Hm_, embed_collectivite, _agB_); + } + catch(_akU_){ + var _agy_ = caml_wrap_exception(_akU_); + if(_agy_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Hj_], 1); + throw caml_maybe_attach_backtrace(_agy_, 0); + } + function prestations_familiales_dot_age(param){ + function _akE_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 21, 0, 0); + } + function _akF_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hn_, 1); + } + var + _akG_ = + [0, + function(param){ + function _akI_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _akJ_(param){return 0;} + var + _akK_ = + [0, + function(param){ + function _akL_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); + } + function _akM_(param){ + switch(menage[9][0]){ + case 0: + var _akT_ = 1; break; + case 1: + var _akT_ = 1; break; + case 2: + var _akT_ = 1; break; + case 3: + var _akT_ = 1; break; + case 4: + var _akT_ = 0; break; + case 5: + var _akT_ = 0; break; + case 6: + var _akT_ = 0; break; + case 7: + var _akT_ = 0; break; + default: var _akT_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Ho_, _akT_); + } + var + _akN_ = + [0, + function(param){ + function _akO_(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 22, 0, 0); + } + function _akP_(param){ + switch(menage[9][0]){ + case 0: + var _akQ_ = 0; break; + case 1: + var _akQ_ = 0; break; + case 2: + var _akQ_ = 0; break; + case 3: + var _akQ_ = 0; break; + case 4: + var _akQ_ = 1; break; + case 5: + var _akQ_ = 1; break; + case 6: + var _akQ_ = 0; break; + case 7: + var _akQ_ = 0; break; + default: var _akQ_ = 0; + } + var + _akR_ = + caml_call2 + (Runtime_ocaml_Runtime[130], + date_courante, + date_entree_vigueur_differee_c$0), + _akS_ = caml_call2(Runtime_ocaml_Runtime[83], _akR_, _akQ_); + return caml_call2(Runtime_ocaml_Runtime[29], _Hp_, _akS_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Hq_, [0], _akP_, _akO_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Hr_, _akN_, _akM_, _akL_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Hs_, _akK_, _akJ_, _akI_); + }], + _akH_ = caml_call4(Runtime_ocaml_Runtime[63], _Ht_, _akG_, _akF_, _akE_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _Hu_, + Runtime_ocaml_Runtime[17], + _akH_); + } + var + _agC_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Hv_, eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Hw_, _agC_), + prestations_familiales_dot_age$0 = result$0[1], + prestations_familiales_dot_dro = result$0[2]; + try{ + var + _agE_ = function(param){return 0;}, + _agF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Hy_, 1); + }, + _agG_ = + [0, + function(param){ + function _akr_(param){return 1;} + function _aks_(param){ + switch(menage[2][3][0]){ + case 0: + var _akD_ = 1; break; + case 1: + var _akD_ = 1; break; + case 2: + var _akD_ = menage[2][1]; break; + case 3: + var _akD_ = 1; break; + default: var _akD_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Hz_, _akD_); + } + var + _akt_ = + [0, + function(param){ + function _aku_(param){return 0;} + function _akv_(param){ + switch(menage[2][3][0]){ + case 0: var - _aBF_= - [0, - function(param) - {function _aBG_(param){return 0} - function _aBH_(param) - {if(0 === personne_a_charge[0]) - {var enfant=personne_a_charge[1],_aB4_=enfant[2]; - if(0 === _aB4_[0]) - var _aB5_=0; - else - var - conditions=_aB4_[1], - _aB5_=caml_call1(Runtime_ocaml_Runtime[67],conditions[1]); - var _aB6_=_aB5_} - else - var _aB6_=0; - var - _aB7_= + usufruit_ou_propriete_famille$0 = usufruit_ou_propriete_famille; + break; + case 1: + var usufruit_ou_propriete_famille$0 = 0; break; + case 2: + var usufruit_ou_propriete_famille$0 = 0; break; + case 3: + var usufruit_ou_propriete_famille$0 = 0; break; + default: var usufruit_ou_propriete_famille$0 = 0; + } + return caml_call2 + (Runtime_ocaml_Runtime[29], + _HA_, + usufruit_ou_propriete_famille$0); + } + var + _akw_ = + [0, + function(param){ + function _akx_(param){return 1;} + function _aky_(param){ + var match = menage[2][6]; + if(0 === match[0]) + var parts = match[1], parts$0 = parts; + else + var + parts$0 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$338); + var + _akz_ = + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$0, + seuil_l822_3_parts_usufruit), + match$0 = menage[2][4]; + if(0 === match$0[0]) + var parts$1 = match$0[1], parts$2 = parts$1; + else + var + parts$2 = caml_call1(Runtime_ocaml_Runtime[39], cst_0$337); + var + _akA_ = + caml_call2 + (Runtime_ocaml_Runtime[112], + parts$2, + seuil_l822_3_parts_propriete), + _akB_ = caml_call2(Runtime_ocaml_Runtime[83], _akA_, _akz_), + _akC_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + usufruit_ou_propriete_famille, + _akB_); + return caml_call2(Runtime_ocaml_Runtime[29], _HB_, _akC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _HC_, [0], _aky_, _akx_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HD_, _akw_, _akv_, _aku_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HE_, _akt_, _aks_, _akr_); + }], + _agH_ = caml_call4(Runtime_ocaml_Runtime[63], _HF_, _agG_, _agF_, _agE_); + } + catch(_akq_){ + var _agD_ = caml_wrap_exception(_akq_); + if(_agD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Hx_], 1); + throw caml_maybe_attach_backtrace(_agD_, 0); + } + var + condition_logement_mode_occupa = + caml_call3 + (Runtime_ocaml_Runtime[28], _HG_, Runtime_ocaml_Runtime[12], _agH_); + try{ + var + _agJ_ = + function(param){ + function _ajZ_(param){return 0;} + function _aj0_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HI_, 1); + } + var + _aj1_ = + [0, + function(param){ + function _aj2_(param){return 1;} + function _aj3_(param){ + var + _akf_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9), + _akg_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _akh_ = + caml_call2(Runtime_ocaml_Runtime[91], menage[4], _akg_), + _aki_ = caml_call2(Runtime_ocaml_Runtime[102], _akh_, _akf_); + switch(menage[5][0]){ + case 0: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$0); + break; + case 1: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16); + break; + case 2: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$0); + break; + case 3: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$1); + break; + case 4: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_9$1); + break; + default: + var _akj_ = caml_call1(Runtime_ocaml_Runtime[46], cst_16$2); + } + var + condition_logement_surface_min = + caml_call2(Runtime_ocaml_Runtime[91], _akj_, _aki_), + _akk_ = caml_call1(Runtime_ocaml_Runtime[46], cst_8), + _akl_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + nombre_personnes_logement, + _akk_), + _akm_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70), + _akn_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + condition_logement_surface_min, + _akm_); + if(caml_call2(Runtime_ocaml_Runtime[83], _akn_, _akl_)) + var + _ako_ = caml_call1(Runtime_ocaml_Runtime[46], cst_70$0), + _akp_ = + caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _ako_); + else + var + _akp_ = + caml_call2 + (Runtime_ocaml_Runtime[126], + menage[2][8], + condition_logement_surface_min); + return caml_call2(Runtime_ocaml_Runtime[29], _HJ_, _akp_); + } + var + _aj4_ = + [0, + function(param){ + function _aj5_(param){return 1;} + function _aj6_(param){ + var + _akb_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$248), + _akc_ = + caml_call2 + (Runtime_ocaml_Runtime[86], + nombre_personnes_logement, + _akb_) + ? caml_call1(Runtime_ocaml_Runtime[46], cst_9$2) + : caml_call1(Runtime_ocaml_Runtime[46], cst_16$3), + _akd_ = + caml_call2(Runtime_ocaml_Runtime[126], menage[2][8], _akc_), + _ake_ = + caml_call2(Runtime_ocaml_Runtime[83], menage[8], _akd_); + return caml_call2(Runtime_ocaml_Runtime[29], _HK_, _ake_); + } + var + _aj7_ = + [0, + function(param){ + function _aj8_(param){return 0;} + function _aj9_(param){ + var + _aj__ = caml_call1(Runtime_ocaml_Runtime[46], cst_2$104), + _aj$_ = caml_call2 - (Runtime_ocaml_Runtime[83], - septieme_alinea_l823_1_applica, - _aB6_); - return caml_call2(Runtime_ocaml_Runtime[29],_UF_,_aB7_)} - var - _aBI_= - [0, - function(param) - {function _aBJ_(param){return 0} - function _aBK_(param) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _aBW_=enfant[9], - _aBX_= + (Runtime_ocaml_Runtime[121], + nombre_personnes_logement, + _aj__), + _aka_ = + caml_call2(Runtime_ocaml_Runtime[83], menage[8], _aj$_); + return caml_call2(Runtime_ocaml_Runtime[29], _HL_, _aka_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _HM_, [0], _aj9_, _aj8_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HN_, _aj7_, _aj6_, _aj5_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HO_, _aj4_, _aj3_, _aj2_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _HP_, _aj1_, _aj0_, _ajZ_); + }, + _agK_ = function(param){return 1;}, + _agL_ = + [0, + function(param){return caml_call1(condition_logement_surface, 0);}], + _agM_ = caml_call4(Runtime_ocaml_Runtime[63], _HQ_, _agL_, _agK_, _agJ_); + } + catch(_ajY_){ + var _agI_ = caml_wrap_exception(_ajY_); + if(_agI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HH_], 1); + throw caml_maybe_attach_backtrace(_agI_, 0); + } + var + condition_logement_surface$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _HR_, Runtime_ocaml_Runtime[12], _agM_); + try{ + var + _agO_ = function(param){return ouverture_droits_retraite_dot_$0;}, + _agP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HT_, 1); + }, + _agQ_ = caml_call4(Runtime_ocaml_Runtime[63], _HU_, [0], _agP_, _agO_); + } + catch(_ajX_){ + var _agN_ = caml_wrap_exception(_ajX_); + if(_agN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HS_], 1); + throw caml_maybe_attach_backtrace(_agN_, 0); + } + var + age_l161_17_2_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _HV_, Runtime_ocaml_Runtime[17], _agQ_); + try{ + var + _agS_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[123], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine) + ? patrimoine_total_demandeur + : caml_call1(Runtime_ocaml_Runtime[31], cst_0$339); + }, + _agT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _HX_, 1); + }, + _agU_ = + [0, + function(param){ + function _ajE_(param){return demandeur[3][2];} + function _ajF_(param){ + var + _ajW_ = + caml_call2 + (Runtime_ocaml_Runtime[128], + patrimoine_total_demandeur, + seuil_l822_5_patrimoine); + return caml_call2(Runtime_ocaml_Runtime[29], _HY_, _ajW_); + } + var + _ajG_ = + [0, + function(param){ + function _ajH_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _ajI_(param){return 0;} + var + _ajJ_ = + [0, + function(param){ + function _ajK_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$340); + } + function _ajL_(param){ + var _ajP_ = menage[1], _ajQ_ = 0; + function _ajR_(acc, prestation){ + var + _ajT_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _HZ_), + _ajU_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _H0_), + _ajV_ = caml_call2(Runtime_ocaml_Runtime[84], _ajU_, _ajT_); + return caml_call2(Runtime_ocaml_Runtime[84], acc, _ajV_); + } + var + _ajS_ = + caml_call3(Runtime_ocaml_Runtime[136], _ajR_, _ajQ_, _ajP_); + return caml_call2(Runtime_ocaml_Runtime[29], _H1_, _ajS_); + } + var + _ajM_ = + [0, + function(param){ + function _ajN_(param){ + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$341); + } + function _ajO_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], _H2_, menage[2][2]); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _H3_, [0], _ajO_, _ajN_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _H4_, _ajM_, _ajL_, _ajK_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _H5_, _ajJ_, _ajI_, _ajH_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _H6_, _ajG_, _ajF_, _ajE_); + }], + _agV_ = caml_call4(Runtime_ocaml_Runtime[63], _H7_, _agU_, _agT_, _agS_); + } + catch(_ajD_){ + var _agR_ = caml_wrap_exception(_ajD_); + if(_agR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _HW_], 1); + throw caml_maybe_attach_backtrace(_agR_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _H8_, Runtime_ocaml_Runtime[13], _agV_); + try{ + var + _agX_ = function(param){return 0;}, + _agY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _H__, 1); + }, + _agZ_ = + [0, + function(param){ + function _ajB_(param){return 1;} + function _ajC_(param){ + return caml_call2 + (Runtime_ocaml_Runtime[29], + _H$_, + condition_logement_surface$0); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ia_, [0], _ajC_, _ajB_); + }], + _ag0_ = caml_call4(Runtime_ocaml_Runtime[63], _Ib_, _agZ_, _agY_, _agX_); + } + catch(_ajA_){ + var _agW_ = caml_wrap_exception(_ajA_); + if(_agW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _H9_], 1); + throw caml_maybe_attach_backtrace(_agW_, 0); + } + var + condition_ouverture_l822_10_pe = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ic_, Runtime_ocaml_Runtime[12], _ag0_); + try{ + var + _ag2_ = + function(param){ + var _ajz_ = caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); + return caml_call2 + (Runtime_ocaml_Runtime[95], age_l161_17_2_secu, _ajz_); + }, + _ag3_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ie_, 1); + }, + _ag4_ = caml_call4(Runtime_ocaml_Runtime[63], _If_, [0], _ag3_, _ag2_); + } + catch(_ajy_){ + var _ag1_ = caml_wrap_exception(_ajy_); + if(_ag1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Id_], 1); + throw caml_maybe_attach_backtrace(_ag1_, 0); + } + var + age_l351_8_1_secu = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ig_, Runtime_ocaml_Runtime[17], _ag4_); + try{ + var + _ag6_ = function(param){return 0;}, + _ag7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ii_, 1); + }, + _ag8_ = + [0, + function(param){ + function _ajp_(param){return 1;} + function _ajq_(param){ + var + _ajv_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_location_ti, + condition_ouverture_l822_10_pe), + _ajw_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + _ajv_), + _ajx_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_residence_p$0, + _ajw_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ij_, _ajx_); + } + var + _ajr_ = + [0, + function(param){ + function _ajs_(param){return 0;} + function _ajt_(param){ + var + _aju_ = + caml_call2 + (Runtime_ocaml_Runtime[84], + condition_non_ouverture_l822_8, + condition_non_ouverture_l822_9); + return caml_call2(Runtime_ocaml_Runtime[29], _Ik_, _aju_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Il_, [0], _ajt_, _ajs_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Im_, _ajr_, _ajq_, _ajp_); + }], + _ag9_ = caml_call4(Runtime_ocaml_Runtime[63], _In_, _ag8_, _ag7_, _ag6_); + } + catch(_ajo_){ + var _ag5_ = caml_wrap_exception(_ajo_); + if(_ag5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ih_], 1); + throw caml_maybe_attach_backtrace(_ag5_, 0); + } + var + eligibilite_logement = + caml_call3 + (Runtime_ocaml_Runtime[28], _Io_, Runtime_ocaml_Runtime[12], _ag9_); + function _ag__(personne_a_charge){ + try{ + var + _aiY_ = function(param){return 0;}, + _aiZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Iq_, 1); + }, + _ai0_ = + [0, + function(param){ + function _ai3_(param){return 1;} + function _ai4_(param){ + if(0 === personne_a_charge[0]) + var _ai5_ = 0; + else{ + var + parent = personne_a_charge[1], + _ai6_ = parent[6], + _ai7_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, parent[1], age_l161_17_2_secu), + _ai8_ = + caml_call2(Runtime_ocaml_Runtime[120], _ai7_, date_courante), + _ai9_ = caml_call2(Runtime_ocaml_Runtime[83], _ai8_, _ai6_); + try{var _ai$_ = caml_call3(Runtime_ocaml_Runtime[60], 65, 0, 0);} + catch(_ajn_){ + var _ai__ = caml_wrap_exception(_ajn_); + if(_ai__ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Is_], 1); + throw caml_maybe_attach_backtrace(_ai__, 0); + } + var + _aja_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _It_, + embed_verification_age_inferie$0, + [0, parent[1], date_courante, _ai$_]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Iu_, + verification_age_inferieur_ou_), + _aja_), + result$0 = [0, result[1]]; + caml_call2(Runtime_ocaml_Runtime[29], _Iv_, 1); + var + _ajb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Iw_, + embed_verification_age_inferie, + result$0), + _ajc_ = caml_call2(Runtime_ocaml_Runtime[27], _Ix_, _ajb_)[1], + _ajd_ = caml_call2(Runtime_ocaml_Runtime[83], parent[7], _ajc_), + _aje_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, parent[1], age_l351_8_1_secu), + _ajf_ = + caml_call2(Runtime_ocaml_Runtime[120], _aje_, date_courante), + _ajg_ = caml_call2(Runtime_ocaml_Runtime[84], _ajf_, _ajd_), + _ajh_ = caml_call2(Runtime_ocaml_Runtime[84], _ajg_, _ai9_), + _aji_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25), + _ajj_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _aji_), + _ajk_ = caml_call2(Runtime_ocaml_Runtime[118], parent[2], _ajj_), + _ajl_ = caml_call2(Runtime_ocaml_Runtime[83], _ajk_, _ajh_); + switch(parent[4][0]){ + case 0: + var _ajm_ = 1; break; + case 1: + var _ajm_ = 0; break; + default: var _ajm_ = 0; + } + var _ai5_ = caml_call2(Runtime_ocaml_Runtime[83], _ajm_, _ajl_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _Ir_, _ai5_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Iy_, [0], _ai4_, _ai3_); + }], + _ai1_ = + caml_call4(Runtime_ocaml_Runtime[63], _Iz_, _ai0_, _aiZ_, _aiY_); + return _ai1_; + } + catch(_ai2_){ + var _aiX_ = caml_wrap_exception(_ai2_); + if(_aiX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ip_], 1); + throw caml_maybe_attach_backtrace(_aiX_, 0); + } + } + var + condition_2_r823_4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _IA_, Runtime_ocaml_Runtime[10], _ag__); + try{ + var + _aha_ = function(param){return 0;}, + _ahb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _IC_, 1); + }, + _ahc_ = + [0, + function(param){ + function _aiT_(param){return 1;} + function _aiU_(param){ + var + _aiV_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_mode_occupa, + eligibilite_logement), + _aiW_ = + caml_call2 + (Runtime_ocaml_Runtime[83], condition_nationalite, _aiV_); + return caml_call2(Runtime_ocaml_Runtime[29], _ID_, _aiW_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _IE_, [0], _aiU_, _aiT_); + }], + _ahd_ = caml_call4(Runtime_ocaml_Runtime[63], _IF_, _ahc_, _ahb_, _aha_); + } + catch(_aiS_){ + var _ag$_ = caml_wrap_exception(_aiS_); + if(_ag$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IB_], 1); + throw caml_maybe_attach_backtrace(_ag$_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _IG_, Runtime_ocaml_Runtime[12], _ahd_); + function _ahe_(personne_a_charge){ + try{ + var + _ahR_ = function(param){return 0;}, + _ahS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _II_, 1); + }, + _ahT_ = + function(param){ + function _aie_(param){return 1;} + function _aif_(param){ + if(0 === personne_a_charge[0]) + var + enfant = personne_a_charge[1], + _aiL_ = enfant[3], + _aiM_ = enfant[4], + _aiN_ = 0 === enfant[8][0] ? _IJ_ : _IP_, + _aiO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _IK_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aiN_, + _aiM_, + _aiL_]), + _aiP_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _IL_, + prestations_familiales_dot_dro), + _aiO_), + _aiQ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _IM_, + Runtime_ocaml_Runtime[12], + _aiP_), + _aiR_ = caml_call2(Runtime_ocaml_Runtime[27], _IN_, _aiQ_); + else + var _aiR_ = 0; + return caml_call2(Runtime_ocaml_Runtime[29], _IO_, _aiR_); + } + var + _aig_ = + [0, + function(param){ + function _aih_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aii_(param){return 0;} + var + _aij_ = + [0, + function(param){ + function _aik_(param){return 0;} + function _ail_(param){ + if(0 === personne_a_charge[0]){ + var enfant = personne_a_charge[1], match = enfant[2]; + if(0 === match[0]) + var _aiI_ = 0; + else + var + conditions = match[1], + _aiI_ = caml_call1(Runtime_ocaml_Runtime[67], conditions[1]); + var _aiJ_ = _aiI_; + } + else + var _aiJ_ = 0; + var + _aiK_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + septieme_alinea_l823_1_applica, + _aiJ_); + return caml_call2(Runtime_ocaml_Runtime[29], _IQ_, _aiK_); + } + var + _aim_ = + [0, + function(param){ + function _ain_(param){return 0;} + function _aio_(param){ + if(0 === personne_a_charge[0]){ + var + enfant = personne_a_charge[1], + _aiA_ = enfant[9], + _aiB_ = + caml_call3 + (Runtime_ocaml_Runtime[94], + 2, + enfant[5], + prestations_familiales_dot_age$0), + _aiC_ = + caml_call2(Runtime_ocaml_Runtime[125], _aiB_, date_courante), + _aiD_ = caml_call2(Runtime_ocaml_Runtime[83], _aiC_, _aiA_); + switch(enfant[7][0]){ + case 0: + var _aiE_ = 0; break; + case 1: + var _aiE_ = 0; break; + default: var _aiE_ = 1; + } + var + _aiF_ = caml_call2(Runtime_ocaml_Runtime[83], _aiE_, _aiD_); + } + else + var _aiF_ = 0; + switch(menage[9][0]){ + case 0: + var _aiG_ = 1; break; + case 1: + var _aiG_ = 1; break; + case 2: + var _aiG_ = 1; break; + case 3: + var _aiG_ = 1; break; + case 4: + var _aiG_ = 0; break; + case 5: + var _aiG_ = 0; break; + case 6: + var _aiG_ = 0; break; + case 7: + var _aiG_ = 0; break; + default: var _aiG_ = 1; + } + var + _aiH_ = caml_call2(Runtime_ocaml_Runtime[83], _aiG_, _aiF_); + return caml_call2(Runtime_ocaml_Runtime[29], _IR_, _aiH_); + } + var + _aip_ = + [0, + function(param){ + function _aiq_(param){return 0;} + function _air_(param){ + if(0 === personne_a_charge[0]){ + var + enfant = personne_a_charge[1], + _ais_ = enfant[9], + _ait_ = caml_call3 (Runtime_ocaml_Runtime[94], 2, enfant[5], prestations_familiales_dot_age$0), - _aBY_= - caml_call2(Runtime_ocaml_Runtime[125],_aBX_,date_courante), - _aBZ_=caml_call2(Runtime_ocaml_Runtime[83],_aBY_,_aBW_); - switch(enfant[7][0]) - {case 0:var _aB0_=0;break; - case 1:var _aB0_=0;break; - default:var _aB0_=1} - var _aB1_=caml_call2(Runtime_ocaml_Runtime[83],_aB0_,_aBZ_)} + _aiu_ = + caml_call2(Runtime_ocaml_Runtime[125], _ait_, date_courante), + _aiv_ = caml_call2(Runtime_ocaml_Runtime[83], _aiu_, _ais_); + switch(enfant[7][0]){ + case 0: + var _aiw_ = 0; break; + case 1: + var _aiw_ = 0; break; + default: var _aiw_ = 1; + } + var + _aix_ = caml_call2(Runtime_ocaml_Runtime[83], _aiw_, _aiv_); + } else - var _aB1_=0; - switch(menage[9][0]) - {case 0:var _aB2_=1;break; - case 1:var _aB2_=1;break; - case 2:var _aB2_=1;break; - case 3:var _aB2_=1;break; - case 4:var _aB2_=0;break; - case 5:var _aB2_=0;break; - case 6:var _aB2_=0;break; - case 7:var _aB2_=0;break; - default:var _aB2_=1} - var _aB3_=caml_call2(Runtime_ocaml_Runtime[83],_aB2_,_aB1_); - return caml_call2(Runtime_ocaml_Runtime[29],_UG_,_aB3_)} - var - _aBL_= - [0, - function(param) - {function _aBM_(param){return 0} - function _aBN_(param) - {if(0 === personne_a_charge[0]) - {var - enfant=personne_a_charge[1], - _aBO_=enfant[9], - _aBP_= - caml_call3 - (Runtime_ocaml_Runtime[94], - 2, - enfant[5], - prestations_familiales_dot_age$0), - _aBQ_= - caml_call2(Runtime_ocaml_Runtime[125],_aBP_,date_courante), - _aBR_=caml_call2(Runtime_ocaml_Runtime[83],_aBQ_,_aBO_); - switch(enfant[7][0]) - {case 0:var _aBS_=0;break; - case 1:var _aBS_=0;break; - default:var _aBS_=1} - var _aBT_=caml_call2(Runtime_ocaml_Runtime[83],_aBS_,_aBR_)} - else - var _aBT_=0; - switch(menage[9][0]) - {case 0:var _aBU_=0;break; - case 1:var _aBU_=0;break; - case 2:var _aBU_=0;break; - case 3:var _aBU_=0;break; - case 4:var _aBU_=1;break; - case 5:var _aBU_=1;break; - case 6:var _aBU_=0;break; - case 7:var _aBU_=0;break; - default:var _aBU_=0} - var _aBV_=caml_call2(Runtime_ocaml_Runtime[83],_aBU_,_aBT_); - return caml_call2(Runtime_ocaml_Runtime[29],_UH_,_aBV_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_UI_,[0],_aBN_,_aBM_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UJ_,_aBL_,_aBK_,_aBJ_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UK_,_aBI_,_aBH_,_aBG_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UL_,_aBF_,_aBE_,_aBD_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_UM_,_aBC_,_aBB_,_aBA_)}, - _aBk_= - [0, - function(param) - {function _aBn_(param){return 1} - function _aBo_(param) - {var - _aBw_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _UN_, - embed_personne_a_charge, - personne_a_charge), - _aBx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_UO_,condition_2_r823_4), - _aBw_), - _aBy_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _UP_, - Runtime_ocaml_Runtime[12], - _aBx_), - _aBz_=caml_call2(Runtime_ocaml_Runtime[27],_UQ_,_aBy_); - return caml_call2(Runtime_ocaml_Runtime[29],_UR_,_aBz_)} - var - _aBp_= - [0, - function(param) - {function _aBq_(param){return 1} - function _aBr_(param) - {if(0 === personne_a_charge[0]) - var _aBs_=0; - else - var - parent=personne_a_charge[1], - _aBt_=caml_call1(Runtime_ocaml_Runtime[39],cst_1_25$0), - _aBu_= - caml_call2 - (Runtime_ocaml_Runtime[104], - plafond_individuel_l815_9_secu, - _aBt_), - _aBv_=caml_call2(Runtime_ocaml_Runtime[118],parent[2],_aBu_), - _aBs_=caml_call2(Runtime_ocaml_Runtime[83],parent[5],_aBv_); - return caml_call2(Runtime_ocaml_Runtime[29],_US_,_aBs_)} + var _aix_ = 0; + switch(menage[9][0]){ + case 0: + var _aiy_ = 0; break; + case 1: + var _aiy_ = 0; break; + case 2: + var _aiy_ = 0; break; + case 3: + var _aiy_ = 0; break; + case 4: + var _aiy_ = 1; break; + case 5: + var _aiy_ = 1; break; + case 6: + var _aiy_ = 0; break; + case 7: + var _aiy_ = 0; break; + default: var _aiy_ = 0; + } + var + _aiz_ = caml_call2(Runtime_ocaml_Runtime[83], _aiy_, _aix_); + return caml_call2(Runtime_ocaml_Runtime[29], _IS_, _aiz_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _IT_, [0], _air_, _aiq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _IU_, _aip_, _aio_, _ain_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_UT_,[0],_aBr_,_aBq_)}]; + (Runtime_ocaml_Runtime[63], _IV_, _aim_, _ail_, _aik_); + }]; return caml_call4 - (Runtime_ocaml_Runtime[63],_UU_,_aBp_,_aBo_,_aBn_)}, - _aBj_], - _aBl_=caml_call4(Runtime_ocaml_Runtime[63],_UV_,_aBk_,_aBi_,_aBh_); - return _aBl_} - catch(_aBm_) - {_aBm_ = caml_wrap_exception(_aBm_); - if(_aBm_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Uw_]; - throw _aBm_}} - var - prise_en_compte_personne_a_cha= - caml_call3 - (Runtime_ocaml_Runtime[28],_UW_,Runtime_ocaml_Runtime[10],_aAM_); - try - {var - _aAN_= - function(param) - {var _aBc_=menage[3]; - function _aBd_(personne_a_charge) - {var - _aBe_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _UY_, - embed_personne_a_charge, - personne_a_charge), - _aBf_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _UZ_, - prise_en_compte_personne_a_cha), - _aBe_), - _aBg_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _U0_, - Runtime_ocaml_Runtime[12], - _aBf_); - return caml_call2(Runtime_ocaml_Runtime[27],_U1_,_aBg_)} - return caml_call2(Runtime_ocaml_Runtime[90],_aBd_,_aBc_)}, - _aAO_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U2_,1)}, - _aAP_=caml_call4(Runtime_ocaml_Runtime[63],_U3_,[0],_aAO_,_aAN_)} - catch(_aBb_) - {_aBb_ = caml_wrap_exception(_aBb_); - if(_aBb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_UX_]; - throw _aBb_} - var - _aAQ_=caml_call1(Runtime_ocaml_Runtime[18],embed_personne_a_charge), - personnes_a_charge_prises_en_c= - caml_call3(Runtime_ocaml_Runtime[28],_U4_,_aAQ_,_aAP_); - try - {var - _aAR_= - function(param) - {function _aA9_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 0; - var enfant=personne_a_charge[1]; - return 0 === enfant[8][0]?0:1} + (Runtime_ocaml_Runtime[63], _IW_, _aij_, _aii_, _aih_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _IX_, _aig_, _aif_, _aie_); + }, + _ahU_ = + [0, + function(param){ + function _ahX_(param){return 1;} + function _ahY_(param){ var - _aA__= - caml_call2 - (Runtime_ocaml_Runtime[90], - _aA9_, - personnes_a_charge_prises_en_c); - function _aA$_(personne_a_charge) - {if(0 !== personne_a_charge[0]) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$414); - var enfant=personne_a_charge[1],_aBa_=enfant[8]; - if(0 === _aBa_[0]) - return caml_call1(Runtime_ocaml_Runtime[39],cst_0$413); - var coeff=_aBa_[1]; - return coeff} - return caml_call2(Runtime_ocaml_Runtime[87],_aA$_,_aA__)}, - _aAS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U6_,1)}, - _aAT_=caml_call4(Runtime_ocaml_Runtime[63],_U7_,[0],_aAS_,_aAR_)} - catch(_aA8_) - {_aA8_ = caml_wrap_exception(_aA8_); - if(_aA8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_U5_]; - throw _aA8_} - var - _aAU_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_U8_,_aAU_,_aAT_); - try - {var - _aAV_= - function(param) - {return caml_call1 - (Runtime_ocaml_Runtime[68],personnes_a_charge_prises_en_c)}, - _aAW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_U__,1)}, - _aAX_=caml_call4(Runtime_ocaml_Runtime[63],_U$_,[0],_aAW_,_aAV_)} - catch(_aA7_) - {_aA7_ = caml_wrap_exception(_aA7_); - if(_aA7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_U9_]; - throw _aA7_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],_Va_,Runtime_ocaml_Runtime[14],_aAX_); - try - {var - _aAY_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2), - _aAZ_= - caml_call2 - (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_usufruit,_aAY_)} - catch(_aA6_) - {_aA6_ = caml_wrap_exception(_aA6_); - if(_aA6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vb_]; - throw _aA6_} - if(! _aAZ_)throw [0,Runtime_ocaml_Runtime[3],_Vg_]; - try - {var - _aA0_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$0), - _aA1_= - caml_call2 - (Runtime_ocaml_Runtime[112],seuil_l822_3_parts_propriete,_aA0_)} - catch(_aA5_) - {_aA5_ = caml_wrap_exception(_aA5_); - if(_aA5_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vc_]; - throw _aA5_} - if(! _aA1_)throw [0,Runtime_ocaml_Runtime[3],_Vf_]; - try - {var - _aA2_=caml_call3(Runtime_ocaml_Runtime[57],2018,4,1), - _aA3_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aA2_)} - catch(_aA4_) - {_aA4_ = caml_wrap_exception(_aA4_); - if(_aA4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vd_]; - throw _aA4_} - if(_aA3_) - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte, - condition_2_r823_4]; - throw [0,Runtime_ocaml_Runtime[3],_Ve_]} - function calcul_allocation_logement(calcul_allocation_logement_in) - {var - mode_occupation=calcul_allocation_logement_in[1], - ressources_menage_sans_arrondi=calcul_allocation_logement_in[2], - situation_familiale=calcul_allocation_logement_in[3], - nombre_personnes_a_charge=calcul_allocation_logement_in[4], - zone=calcul_allocation_logement_in[5], - date_courante=calcul_allocation_logement_in[6], - type_aide=calcul_allocation_logement_in[7], - residence=calcul_allocation_logement_in[8]; - try - {var - _ax0_= - function(param) - {switch(mode_occupation[0]) - {case 0:var location=mode_occupation[1];return [0,location]; - case 1: - var logementfoyer=mode_occupation[1];return [2,logementfoyer]; - case 2: - var proprietaire=mode_occupation[1];return [1,proprietaire]; - case 3:var location$0=mode_occupation[1];return [0,location$0]; - default: - var proprietaire$0=mode_occupation[1];return [1,proprietaire$0]}}, - _ax1_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vi_,1)}, - _ax2_=caml_call4(Runtime_ocaml_Runtime[63],_Vj_,[0],_ax1_,_ax0_)} - catch(_ay9_) - {_ay9_ = caml_wrap_exception(_ay9_); - if(_ay9_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vh_]; - throw _ay9_} - var - categorie_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Vk_,embed_categorie_calcul_a_p_l,_ax2_); - try - {var - _ax3_= - function(param) - {return arrondi_centaine_superieure(ressources_menage_sans_arrondi)}, - _ax4_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vm_,1)}, - _ax5_=caml_call4(Runtime_ocaml_Runtime[63],_Vn_,[0],_ax4_,_ax3_)} - catch(_ay8_) - {_ay8_ = caml_wrap_exception(_ay8_); - if(_ay8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vl_]; - throw _ay8_} - var - ressources_menage_avec_arrondi= - caml_call3 - (Runtime_ocaml_Runtime[28],_Vo_,Runtime_ocaml_Runtime[13],_ax5_); - try - {var - _ax6_= - function(param) - {switch(situation_familiale[0]) - {case 0:return _Vq_; - case 1:return _Vr_; - case 2:return _Vs_; - case 3:return _Vt_; - case 4:return _Vu_; - default:return _Vv_}}, - _ax7_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Vw_,1)}, - _ax8_=caml_call4(Runtime_ocaml_Runtime[63],_Vx_,[0],_ax7_,_ax6_)} - catch(_ay7_) - {_ay7_ = caml_wrap_exception(_ay7_); - if(_ay7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vp_]; - throw _ay7_} - var - situation_familiale_calcul_apl= - caml_call3 - (Runtime_ocaml_Runtime[28],_Vy_,embed_situation_familiale_calc,_ax8_); - try - {var - _ax9_= - function(param) - {switch(categorie_calcul_apl[0]) - {case 0: - var - location=categorie_calcul_apl[1], - _ayK_=location[8], - _ayL_=location[7]; - try - {var _ayM_=location[1]; - switch(_ayM_[0]) - {case 0:var bailleur=_ayM_[1],_ayN_=bailleur[2];break; - case 1: - var _ayN_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$415); - break; - default: - var _ayN_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$416)}} - catch(_ay3_) - {_ay3_ = caml_wrap_exception(_ay3_); - if(_ay3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_VA_]; - throw _ay3_} - var - _ayO_= + _aia_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _IY_, + embed_personne_a_charge, + personne_a_charge), + _aib_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _IZ_, condition_2_r823_4), + _aia_), + _aic_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _I0_, + Runtime_ocaml_Runtime[12], + _aib_), + _aid_ = caml_call2(Runtime_ocaml_Runtime[27], _I1_, _aic_); + return caml_call2(Runtime_ocaml_Runtime[29], _I2_, _aid_); + } + var + _ahZ_ = + [0, + function(param){ + function _ah0_(param){return 1;} + function _ah1_(param){ + if(0 === personne_a_charge[0]) + var _ah2_ = 0; + else{ + var + parent = personne_a_charge[1], + _ah3_ = caml_call1(Runtime_ocaml_Runtime[39], cst_1_25$0), + _ah4_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + plafond_individuel_l815_9_secu, + _ah3_), + _ah5_ = + caml_call2(Runtime_ocaml_Runtime[118], parent[2], _ah4_), + _ah6_ = + caml_call2(Runtime_ocaml_Runtime[83], parent[5], _ah5_); + switch(parent[4][0]){ + case 0: + var _ah7_ = 0; break; + case 1: + var _ah7_ = 0; break; + default: var _ah7_ = 1; + } + switch(parent[4][0]){ + case 0: + var _ah8_ = 0; break; + case 1: + var _ah8_ = 1; break; + default: var _ah8_ = 0; + } + var + _ah9_ = caml_call2(Runtime_ocaml_Runtime[84], _ah8_, _ah7_); + switch(parent[4][0]){ + case 0: + var _ah__ = 1; break; + case 1: + var _ah__ = 0; break; + default: var _ah__ = 0; + } + var + _ah$_ = caml_call2(Runtime_ocaml_Runtime[84], _ah__, _ah9_), + _ah2_ = caml_call2(Runtime_ocaml_Runtime[83], _ah$_, _ah6_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _I3_, _ah2_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _I4_, [0], _ah1_, _ah0_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _I5_, _ahZ_, _ahY_, _ahX_); + }, + _ahT_], + _ahV_ = + caml_call4(Runtime_ocaml_Runtime[63], _I6_, _ahU_, _ahS_, _ahR_); + return _ahV_; + } + catch(_ahW_){ + var _ahQ_ = caml_wrap_exception(_ahW_); + if(_ahQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _IH_], 1); + throw caml_maybe_attach_backtrace(_ahQ_, 0); + } + } + var + prise_en_compte_personne_a_cha = + caml_call3 + (Runtime_ocaml_Runtime[28], _I7_, Runtime_ocaml_Runtime[10], _ahe_); + try{ + var + _ahg_ = + function(param){ + var _ahL_ = menage[3]; + function _ahM_(personne_a_charge){ + var + _ahN_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _I9_, + embed_personne_a_charge, + personne_a_charge), + _ahO_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _I__, + prise_en_compte_personne_a_cha), + _ahN_), + _ahP_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _I$_, + Runtime_ocaml_Runtime[12], + _ahO_); + return caml_call2(Runtime_ocaml_Runtime[27], _Ja_, _ahP_); + } + return caml_call2(Runtime_ocaml_Runtime[90], _ahM_, _ahL_); + }, + _ahh_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jb_, 1); + }, + _ahi_ = caml_call4(Runtime_ocaml_Runtime[63], _Jc_, [0], _ahh_, _ahg_); + } + catch(_ahK_){ + var _ahf_ = caml_wrap_exception(_ahK_); + if(_ahf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _I8_], 1); + throw caml_maybe_attach_backtrace(_ahf_, 0); + } + var + _ahj_ = caml_call1(Runtime_ocaml_Runtime[18], embed_personne_a_charge), + personnes_a_charge_prises_en_c = + caml_call3(Runtime_ocaml_Runtime[28], _Jd_, _ahj_, _ahi_); + try{ + var + _ahl_ = + function(param){ + function _ahH_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var enfant = personne_a_charge[1]; + return 0 === enfant[8][0] ? 0 : 1; + } + var + _ahI_ = + caml_call2 + (Runtime_ocaml_Runtime[90], + _ahH_, + personnes_a_charge_prises_en_c); + function _ahJ_(personne_a_charge){ + if(0 !== personne_a_charge[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$343); + var enfant = personne_a_charge[1], match = enfant[8]; + if(0 === match[0]) + return caml_call1(Runtime_ocaml_Runtime[39], cst_0$342); + var coeff = match[1]; + return coeff; + } + return caml_call2(Runtime_ocaml_Runtime[87], _ahJ_, _ahI_); + }, + _ahm_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jf_, 1); + }, + _ahn_ = caml_call4(Runtime_ocaml_Runtime[63], _Jg_, [0], _ahm_, _ahl_); + } + catch(_ahG_){ + var _ahk_ = caml_wrap_exception(_ahG_); + if(_ahk_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Je_], 1); + throw caml_maybe_attach_backtrace(_ahk_, 0); + } + var + _aho_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Jh_, _aho_, _ahn_); + try{ + var + _ahq_ = + function(param){ + return caml_call1 + (Runtime_ocaml_Runtime[68], personnes_a_charge_prises_en_c); + }, + _ahr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jj_, 1); + }, + _ahs_ = caml_call4(Runtime_ocaml_Runtime[63], _Jk_, [0], _ahr_, _ahq_); + } + catch(_ahF_){ + var _ahp_ = caml_wrap_exception(_ahF_); + if(_ahp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ji_], 1); + throw caml_maybe_attach_backtrace(_ahp_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _Jl_, Runtime_ocaml_Runtime[14], _ahs_); + try{ + var + _ahu_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2), + _ahv_ = + caml_call2 + (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_usufruit, _ahu_); + } + catch(_ahE_){ + var _aht_ = caml_wrap_exception(_ahE_); + if(_aht_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Jm_], 1); + throw caml_maybe_attach_backtrace(_aht_, 0); + } + if(! _ahv_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _Jr_], 1); + try{ + var + _ahx_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$0), + _ahy_ = + caml_call2 + (Runtime_ocaml_Runtime[112], seuil_l822_3_parts_propriete, _ahx_); + } + catch(_ahD_){ + var _ahw_ = caml_wrap_exception(_ahD_); + if(_ahw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Jn_], 1); + throw caml_maybe_attach_backtrace(_ahw_, 0); + } + if(! _ahy_) + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _Jq_], 1); + try{ + var + _ahA_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 4, 1), + _ahB_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ahA_); + } + catch(_ahC_){ + var _ahz_ = caml_wrap_exception(_ahC_); + if(_ahz_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Jo_], 1); + throw caml_maybe_attach_backtrace(_ahz_, 0); + } + if(_ahB_) + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte, + condition_2_r823_4]; + throw caml_maybe_attach_backtrace([0, Runtime_ocaml_Runtime[3], _Jp_], 1); + } + function calcul_allocation_logement(calcul_allocation_logement_in){ + var + mode_occupation = calcul_allocation_logement_in[1], + ressources_menage_sans_arrondi = calcul_allocation_logement_in[2], + situation_familiale = calcul_allocation_logement_in[3], + nombre_personnes_a_charge = calcul_allocation_logement_in[4], + zone = calcul_allocation_logement_in[5], + date_courante = calcul_allocation_logement_in[6], + type_aide = calcul_allocation_logement_in[7], + residence = calcul_allocation_logement_in[8]; + try{ + var + _adU_ = + function(param){ + switch(mode_occupation[0]){ + case 0: + var location = mode_occupation[1]; return [0, location]; + case 1: + var logementfoyer = mode_occupation[1]; return [2, logementfoyer]; + case 2: + var proprietaire = mode_occupation[1]; return [1, proprietaire]; + case 3: + var location$0 = mode_occupation[1]; return [0, location$0]; + default: + var proprietaire$0 = mode_occupation[1]; + return [1, proprietaire$0]; + } + }, + _adV_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jt_, 1); + }, + _adW_ = caml_call4(Runtime_ocaml_Runtime[63], _Ju_, [0], _adV_, _adU_); + } + catch(_afa_){ + var _adT_ = caml_wrap_exception(_afa_); + if(_adT_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Js_], 1); + throw caml_maybe_attach_backtrace(_adT_, 0); + } + var + categorie_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], _Jv_, embed_categorie_calcul_a_p_l, _adW_); + try{ + var + _adY_ = + function(param){ + return arrondi_centaine_superieure(ressources_menage_sans_arrondi); + }, + _adZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Jx_, 1); + }, + _ad0_ = caml_call4(Runtime_ocaml_Runtime[63], _Jy_, [0], _adZ_, _adY_); + } + catch(_ae$_){ + var _adX_ = caml_wrap_exception(_ae$_); + if(_adX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Jw_], 1); + throw caml_maybe_attach_backtrace(_adX_, 0); + } + var + ressources_menage_avec_arrondi = + caml_call3 + (Runtime_ocaml_Runtime[28], _Jz_, Runtime_ocaml_Runtime[13], _ad0_); + try{ + var + _ad2_ = + function(param){ + switch(situation_familiale[0]){ + case 0: + return _JB_; + case 1: + return _JC_; + case 2: + return _JD_; + case 3: + return _JE_; + case 4: + return _JF_; + default: return _JG_; + } + }, + _ad3_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _JH_, 1); + }, + _ad4_ = caml_call4(Runtime_ocaml_Runtime[63], _JI_, [0], _ad3_, _ad2_); + } + catch(_ae__){ + var _ad1_ = caml_wrap_exception(_ae__); + if(_ad1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _JA_], 1); + throw caml_maybe_attach_backtrace(_ad1_, 0); + } + var + situation_familiale_calcul_apl = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JJ_, + embed_situation_familiale_calc, + _ad4_); + try{ + var + _ad6_ = + function(param){ + switch(categorie_calcul_apl[0]){ + case 0: + var + location = categorie_calcul_apl[1], + _aeN_ = location[8], + _aeO_ = location[7]; + try{ + var match = location[1]; + switch(match[0]){ + case 0: + var bailleur = match[1], _aeQ_ = bailleur[2]; break; + case 1: + var _aeQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$344); + break; + default: + var _aeQ_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$345); + } + } + catch(_ae6_){ + var _aeP_ = caml_wrap_exception(_ae6_); + if(_aeP_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _JL_], 1); + throw caml_maybe_attach_backtrace(_aeP_, 0); + } + var + _aeR_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JM_, + embed_calcul_allocation_logeme$3, + [0, + location[2], + ressources_menage_avec_arrondi, + location[3], + date_courante, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + location[4], + location[6], + type_aide, + location[5], + _aeQ_, + _aeO_, + residence, + _aeN_]), + result = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JN_, + calcul_allocation_logement_loc), + _aeR_), + _aeS_ = + function(param0){ + var + _ae3_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JO_, + Runtime_ocaml_Runtime[13], + param0), + _ae4_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _JP_, result[2]), + _ae3_), + _ae5_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JQ_, + Runtime_ocaml_Runtime[13], + _ae4_); + return caml_call2(Runtime_ocaml_Runtime[27], _JR_, _ae5_); + }, + result$0 = [0, result[1], _aeS_]; + caml_call2(Runtime_ocaml_Runtime[29], _JS_, 1); + var + _aeT_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JT_, + embed_calcul_allocation_logeme, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _JU_, _aeT_); + return [0, traitement_formule[1], traitement_formule[2]]; + case 1: + var + proprietaire = categorie_calcul_apl[1], + _aeU_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JV_, + embed_calcul_allocation_logeme$4, + [0, + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + residence, + date_courante, + proprietaire[1], + proprietaire[8], + proprietaire[10][2], + proprietaire[5], + proprietaire[6], + proprietaire[3], + proprietaire[2], + proprietaire[7], + proprietaire[11]]), + result$1 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _JW_, + calcul_allocation_logement_acc), + _aeU_), + _aeV_ = + function(param0){ + var + _ae0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JX_, + Runtime_ocaml_Runtime[13], + param0), + _ae1_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _JY_, result$1[5]), + _ae0_), + _ae2_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _JZ_, + Runtime_ocaml_Runtime[13], + _ae1_); + return caml_call2(Runtime_ocaml_Runtime[27], _J0_, _ae2_); + }, + result$2 = + [0, result$1[1], result$1[2], result$1[3], result$1[4], _aeV_]; + caml_call2(Runtime_ocaml_Runtime[29], _J1_, 1); + var + _aeW_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _J2_, + embed_calcul_allocation_logeme$0, + result$2), + traitement_formule$0 = + caml_call2(Runtime_ocaml_Runtime[27], _J3_, _aeW_); + return [0, traitement_formule$0[4], traitement_formule$0[5]]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _aeX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _J4_, + embed_calcul_allocation_logeme$5, + [0, + logement_foyer[1], + logement_foyer[5], + residence, + logement_foyer[7], + ressources_menage_avec_arrondi, + nombre_personnes_a_charge, + situation_familiale_calcul_apl, + zone, + date_courante, + logement_foyer[8]]), + result$3 = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _J5_, + calcul_allocation_logement_foy), + _aeX_), + _aeY_ = + function(param0){ + var + _ae7_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _J6_, + Runtime_ocaml_Runtime[13], + param0), + _ae8_ = + caml_call1 + (caml_call2(Runtime_ocaml_Runtime[26], _J7_, result$3[6]), + _ae7_), + _ae9_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _J8_, + Runtime_ocaml_Runtime[13], + _ae8_); + return caml_call2(Runtime_ocaml_Runtime[27], _J9_, _ae9_); + }, + result$4 = + [0, + result$3[1], + result$3[2], + result$3[3], + result$3[4], + result$3[5], + _aeY_]; + caml_call2(Runtime_ocaml_Runtime[29], _J__, 1); + var + _aeZ_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _J$_, + embed_calcul_allocation_logeme$1, + result$4), + traitement_formule$1 = + caml_call2(Runtime_ocaml_Runtime[27], _Ka_, _aeZ_); + return [0, traitement_formule$1[5], traitement_formule$1[6]]; + } + }, + _ad7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Kb_, 1); + }, + _ad8_ = + [0, + function(param){ + function _aeA_(param){ + switch(categorie_calcul_apl[0]){ + case 0: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$346), + traitement_nul_tout_le_temps]; + case 1: + return [0, + caml_call1(Runtime_ocaml_Runtime[31], cst_0$347), + traitement_nul_tout_le_temps]; + default: + var + logement_foyer = categorie_calcul_apl[1], + _aeD_ = logement_foyer[10]; + try{ + var _aeF_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$348); + } + catch(_aeM_){ + var _aeE_ = caml_wrap_exception(_aeM_); + if(_aeE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kd_], 1); + throw caml_maybe_attach_backtrace(_aeE_, 0); + } + var + _aeG_ = caml_call3 (Runtime_ocaml_Runtime[28], - _VB_, + _Ke_, embed_calcul_allocation_logeme$3, [0, - location[2], - ressources_menage_avec_arrondi, - location[3], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - location[4], - location[6], - type_aide, - location[5], - _ayN_, - _ayL_, - residence, - _ayK_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _VC_, - calcul_allocation_logement_loc), - _ayO_), - _ayP_= - function(param0) - {var - _ay0_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VD_, - Runtime_ocaml_Runtime[13], - param0), - _ay1_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_VE_,result[2]),_ay0_), - _ay2_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VF_, - Runtime_ocaml_Runtime[13], - _ay1_); - return caml_call2(Runtime_ocaml_Runtime[27],_VG_,_ay2_)}, - result$0=[0,result[1],_ayP_]; - caml_call2(Runtime_ocaml_Runtime[29],_VH_,1); - var - _ayQ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VI_, - embed_calcul_allocation_logeme, - result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_VJ_,_ayQ_); - return [0,traitement_formule[1],traitement_formule[2]]; - case 1: - var - proprietaire=categorie_calcul_apl[1], - _ayR_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VK_, - embed_calcul_allocation_logeme$4, - [0, - ressources_menage_avec_arrondi, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - residence, - date_courante, - proprietaire[1], - proprietaire[8], - proprietaire[10][2], - proprietaire[5], - proprietaire[6], - proprietaire[3], - proprietaire[2], - proprietaire[7], - proprietaire[11]]), - result$1= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _VL_, - calcul_allocation_logement_acc), - _ayR_), - _ayS_= - function(param0) - {var - _ayX_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VM_, - Runtime_ocaml_Runtime[13], - param0), - _ayY_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_VN_,result$1[5]), - _ayX_), - _ayZ_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VO_, - Runtime_ocaml_Runtime[13], - _ayY_); - return caml_call2(Runtime_ocaml_Runtime[27],_VP_,_ayZ_)}, - result$2= - [0,result$1[1],result$1[2],result$1[3],result$1[4],_ayS_]; - caml_call2(Runtime_ocaml_Runtime[29],_VQ_,1); - var - _ayT_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VR_, - embed_calcul_allocation_logeme$0, - result$2), - traitement_formule$0= - caml_call2(Runtime_ocaml_Runtime[27],_VS_,_ayT_); - return [0,traitement_formule$0[4],traitement_formule$0[5]]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _ayU_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _VT_, - embed_calcul_allocation_logeme$5, - [0, - logement_foyer[1], - logement_foyer[5], - residence, logement_foyer[7], ressources_menage_avec_arrondi, + logement_foyer[9], + date_courante, nombre_personnes_a_charge, situation_familiale_calcul_apl, zone, - date_courante, - logement_foyer[8]]), - result$3= + 1, + 0, + type_aide, + 0, + _aeF_, + _aeD_, + residence, + _Kc_]), + result = caml_call1 (caml_call2 (Runtime_ocaml_Runtime[26], - _VU_, - calcul_allocation_logement_foy), - _ayU_), - _ayV_= - function(param0) - {var - _ay4_= + _Kf_, + calcul_allocation_logement_loc), + _aeG_), + _aeH_ = + function(param0){ + var + _aeJ_ = caml_call3 (Runtime_ocaml_Runtime[28], - _VV_, + _Kg_, Runtime_ocaml_Runtime[13], param0), - _ay5_= + _aeK_ = caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_VW_,result$3[6]), - _ay4_), - _ay6_= + (caml_call2(Runtime_ocaml_Runtime[26], _Kh_, result[2]), + _aeJ_), + _aeL_ = caml_call3 (Runtime_ocaml_Runtime[28], - _VX_, + _Ki_, Runtime_ocaml_Runtime[13], - _ay5_); - return caml_call2(Runtime_ocaml_Runtime[27],_VY_,_ay6_)}, - result$4= - [0, - result$3[1], - result$3[2], - result$3[3], - result$3[4], - result$3[5], - _ayV_]; - caml_call2(Runtime_ocaml_Runtime[29],_VZ_,1); - var - _ayW_= + _aeK_); + return caml_call2(Runtime_ocaml_Runtime[27], _Kj_, _aeL_); + }, + result$0 = [0, result[1], _aeH_]; + caml_call2(Runtime_ocaml_Runtime[29], _Kk_, 1); + var + _aeI_ = caml_call3 (Runtime_ocaml_Runtime[28], - _V0_, - embed_calcul_allocation_logeme$1, - result$4), - traitement_formule$1= - caml_call2(Runtime_ocaml_Runtime[27],_V1_,_ayW_); - return [0,traitement_formule$1[5],traitement_formule$1[6]]}}, - _ax__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_V2_,1)}, - _ax$_= - [0, - function(param) - {function _ayy_(param) - {switch(categorie_calcul_apl[0]) - {case 0: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$417), - traitement_nul_tout_le_temps]; - case 1: - return [0, - caml_call1(Runtime_ocaml_Runtime[31],cst_0$418), - traitement_nul_tout_le_temps]; - default: - var - logement_foyer=categorie_calcul_apl[1], - _ayB_=logement_foyer[10]; - try - {var _ayC_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$419)} - catch(_ayJ_) - {_ayJ_ = caml_wrap_exception(_ayJ_); - if(_ayJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_V4_]; - throw _ayJ_} - var - _ayD_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V5_, - embed_calcul_allocation_logeme$3, - [0, - logement_foyer[7], - ressources_menage_avec_arrondi, - logement_foyer[9], - date_courante, - nombre_personnes_a_charge, - situation_familiale_calcul_apl, - zone, - 1, - 0, - type_aide, - 0, - _ayC_, - _ayB_, - residence, - _V3_]), - result= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _V6_, - calcul_allocation_logement_loc), - _ayD_), - _ayE_= - function(param0) - {var - _ayG_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V7_, - Runtime_ocaml_Runtime[13], - param0), - _ayH_= - caml_call1 - (caml_call2(Runtime_ocaml_Runtime[26],_V8_,result[2]),_ayG_), - _ayI_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _V9_, - Runtime_ocaml_Runtime[13], - _ayH_); - return caml_call2(Runtime_ocaml_Runtime[27],_V__,_ayI_)}, - result$0=[0,result[1],_ayE_]; - caml_call2(Runtime_ocaml_Runtime[29],_V$_,1); - var - _ayF_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Wa_, - embed_calcul_allocation_logeme, - result$0), - traitement_formule= - caml_call2(Runtime_ocaml_Runtime[27],_Wb_,_ayF_); - return [0,traitement_formule[1],traitement_formule[2]]}} - function _ayz_(param) - {switch(residence[0]) - {case 0:var _ayA_=0;break; - case 1:var _ayA_=0;break; - case 2:var _ayA_=0;break; - case 3:var _ayA_=0;break; - case 4:var _ayA_=0;break; - case 5:var _ayA_=0;break; - case 6:var _ayA_=0;break; - case 7:var _ayA_=1;break; - default:var _ayA_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Wc_,_ayA_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Wd_,[0],_ayz_,_ayy_)}], - _aya_=caml_call4(Runtime_ocaml_Runtime[63],_We_,_ax$_,_ax__,_ax9_)} - catch(_ayx_) - {_ayx_ = caml_wrap_exception(_ayx_); - if(_ayx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Vz_]; - throw _ayx_} + _Kl_, + embed_calcul_allocation_logeme, + result$0), + traitement_formule = + caml_call2(Runtime_ocaml_Runtime[27], _Km_, _aeI_); + return [0, traitement_formule[1], traitement_formule[2]]; + } + } + function _aeB_(param){ + switch(residence[0]){ + case 0: + var _aeC_ = 0; break; + case 1: + var _aeC_ = 0; break; + case 2: + var _aeC_ = 0; break; + case 3: + var _aeC_ = 0; break; + case 4: + var _aeC_ = 0; break; + case 5: + var _aeC_ = 0; break; + case 6: + var _aeC_ = 0; break; + case 7: + var _aeC_ = 1; break; + default: var _aeC_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Kn_, _aeC_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ko_, [0], _aeB_, _aeA_); + }], + _ad9_ = caml_call4(Runtime_ocaml_Runtime[63], _Kp_, _ad8_, _ad7_, _ad6_); + } + catch(_aez_){ + var _ad5_ = caml_wrap_exception(_aez_); + if(_ad5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _JK_], 1); + throw caml_maybe_attach_backtrace(_ad5_, 0); + } + var + sous_calcul_traitement = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Kq_, + embed_traitement_formule_aide_, + _ad9_); + function _ad__(arg){ + try{ var - sous_calcul_traitement= + _aev_ = + function(param){return caml_call1(sous_calcul_traitement[2], arg);}, + _aew_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ks_, 1); + }, + _aex_ = caml_call4(Runtime_ocaml_Runtime[63], _Kt_, [0], _aew_, _aev_); + return _aex_; + } + catch(_aey_){ + var _aeu_ = caml_wrap_exception(_aey_); + if(_aeu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kr_], 1); + throw caml_maybe_attach_backtrace(_aeu_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ku_, Runtime_ocaml_Runtime[10], _ad__); + try{ + var + _aea_ = function(param){return sous_calcul_traitement[1];}, + _aeb_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Kw_, 1); + }, + _aec_ = + [0, + function(param){ + function _aef_(param){ + var + _aeo_ = caml_call1(Runtime_ocaml_Runtime[39], cst_8$0), + _aep_ = caml_call1(Runtime_ocaml_Runtime[74], date_courante), + _aeq_ = caml_call1(Runtime_ocaml_Runtime[46], cst_2026), + _aer_ = caml_call2(Runtime_ocaml_Runtime[96], _aeq_, _aep_), + _aes_ = caml_call1(Runtime_ocaml_Runtime[69], _aer_), + _aet_ = caml_call2(Runtime_ocaml_Runtime[107], _aes_, _aeo_); + return caml_call2 + (Runtime_ocaml_Runtime[104], + sous_calcul_traitement[1], + _aet_); + } + function _aeg_(param){ + var + _aeh_ = caml_call3(Runtime_ocaml_Runtime[57], 2025, 12, 31), + _aei_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _aeh_), + _aej_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _aek_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _aej_), + _ael_ = caml_call2(Runtime_ocaml_Runtime[83], _aek_, _aei_); + switch(residence[0]){ + case 0: + var _aem_ = 0; break; + case 1: + var _aem_ = 0; break; + case 2: + var _aem_ = 0; break; + case 3: + var _aem_ = 0; break; + case 4: + var _aem_ = 0; break; + case 5: + var _aem_ = 0; break; + case 6: + var _aem_ = 0; break; + case 7: + var _aem_ = 1; break; + default: var _aem_ = 0; + } + var _aen_ = caml_call2(Runtime_ocaml_Runtime[83], _aem_, _ael_); + return caml_call2(Runtime_ocaml_Runtime[29], _Kx_, _aen_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ky_, [0], _aeg_, _aef_); + }], + _aed_ = caml_call4(Runtime_ocaml_Runtime[63], _Kz_, _aec_, _aeb_, _aea_); + } + catch(_aee_){ + var _ad$_ = caml_wrap_exception(_aee_); + if(_ad$_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Kv_], 1); + throw caml_maybe_attach_backtrace(_ad$_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _KA_, Runtime_ocaml_Runtime[13], _aed_); + return [0, aide_finale_formule, traitement_aide_finale]; + } + function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ + var + informations = eligibilite_prime_de_demenagem[1], + date_emmenagement = eligibilite_prime_de_demenagem[2], + menage = eligibilite_prime_de_demenagem[3], + demandeur = eligibilite_prime_de_demenagem[4], + date_courante = eligibilite_prime_de_demenagem[5], + depenses_justifiees_reellement = eligibilite_prime_de_demenagem[6]; + try{ + var + _ab1_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 0, 6, 0); + }, + _ab2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KC_, 1); + }, + _ab3_ = caml_call4(Runtime_ocaml_Runtime[63], _KD_, [0], _ab2_, _ab1_); + } + catch(_adS_){ + var _ab0_ = caml_wrap_exception(_adS_); + if(_ab0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KB_], 1); + throw caml_maybe_attach_backtrace(_ab0_, 0); + } + var + delai_apres_emmenagement_l823_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _KE_, Runtime_ocaml_Runtime[17], _ab3_); + try{ + var + _ab5_ = function(param){return 0;}, + _ab6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KG_, 1); + }, + _ab7_ = + [0, + function(param){ + function _adI_(param){return 1;} + function _adJ_(param){ + var + _adK_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$98), + _adL_ = informations[1], + _adM_ = menage[3]; + function _adN_(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + } + var + _adO_ = caml_call2(Runtime_ocaml_Runtime[90], _adN_, _adM_), + _adP_ = caml_call1(Runtime_ocaml_Runtime[68], _adO_), + _adQ_ = caml_call2(Runtime_ocaml_Runtime[91], _adP_, _adL_), + _adR_ = caml_call2(Runtime_ocaml_Runtime[126], _adQ_, _adK_); + return caml_call2(Runtime_ocaml_Runtime[29], _KH_, _adR_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _KI_, [0], _adJ_, _adI_); + }], + _ab8_ = caml_call4(Runtime_ocaml_Runtime[63], _KJ_, _ab7_, _ab6_, _ab5_); + } + catch(_adH_){ + var _ab4_ = caml_wrap_exception(_adH_); + if(_ab4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KF_], 1); + throw caml_maybe_attach_backtrace(_ab4_, 0); + } + var + condition_rang_enfant = + caml_call3 + (Runtime_ocaml_Runtime[28], _KK_, Runtime_ocaml_Runtime[12], _ab8_); + try{ + var + _ab__ = function(param){return date_courante;}, + _ab$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KM_, 1); + }, + _aca_ = caml_call4(Runtime_ocaml_Runtime[63], _KN_, [0], _ab$_, _ab__), + base_mensuelle_allocations_fam$0 = caml_call3 - (Runtime_ocaml_Runtime[28],_Wf_,embed_traitement_formule_aide_,_aya_); - function _ayb_(arg) - {try - {var - _ayt_= - function(param){return caml_call1(sous_calcul_traitement[2],arg)}, - _ayu_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Wh_,1)}, - _ayv_=caml_call4(Runtime_ocaml_Runtime[63],_Wi_,[0],_ayu_,_ayt_); - return _ayv_} - catch(_ayw_) - {_ayw_ = caml_wrap_exception(_ayw_); - if(_ayw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Wg_]; - throw _ayw_}} - var - traitement_aide_finale= + (Runtime_ocaml_Runtime[28], _KO_, Runtime_ocaml_Runtime[16], _aca_); + } + catch(_adG_){ + var _ab9_ = caml_wrap_exception(_adG_); + if(_ab9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KL_], 1); + throw caml_maybe_attach_backtrace(_ab9_, 0); + } + var + _acb_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _KP_, base_mensuelle_allocations_fam), + [0, base_mensuelle_allocations_fam$0]), + result = caml_call2(Runtime_ocaml_Runtime[27], _KQ_, _acb_), + base_mensuelle_allocations_fam$1 = result[1]; + try{ + var + _acd_ = function(param){return menage;}, + _ace_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KS_, 1); + }, + _acf_ = caml_call4(Runtime_ocaml_Runtime[63], _KT_, [0], _ace_, _acd_), + eligibilite_apl_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _KU_, embed_menage, _acf_); + } + catch(_adF_){ + var _acc_ = caml_wrap_exception(_adF_); + if(_acc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KR_], 1); + throw caml_maybe_attach_backtrace(_acc_, 0); + } + try{ + var + _ach_ = function(param){return demandeur;}, + _aci_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _KW_, 1); + }, + _acj_ = caml_call4(Runtime_ocaml_Runtime[63], _KX_, [0], _aci_, _ach_), + eligibilite_apl_dot_demandeur = + caml_call3(Runtime_ocaml_Runtime[28], _KY_, embed_demandeur, _acj_); + } + catch(_adE_){ + var _acg_ = caml_wrap_exception(_adE_); + if(_acg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KV_], 1); + throw caml_maybe_attach_backtrace(_acg_, 0); + } + try{ + var + _acl_ = function(param){return date_courante;}, + _acm_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _K0_, 1); + }, + _acn_ = caml_call4(Runtime_ocaml_Runtime[63], _K1_, [0], _acm_, _acl_), + eligibilite_apl_dot_date_coura = caml_call3 - (Runtime_ocaml_Runtime[28],_Wj_,Runtime_ocaml_Runtime[10],_ayb_); - try - {var - _ayc_=function(param){return sous_calcul_traitement[1]}, - _ayd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wl_,1)}, - _aye_= - [0, - function(param) - {function _ayh_(param) - {var - _ayn_=caml_call1(Runtime_ocaml_Runtime[39],cst_8$0), - _ayo_=caml_call1(Runtime_ocaml_Runtime[74],date_courante), - _ayp_=caml_call1(Runtime_ocaml_Runtime[46],cst_2026), - _ayq_=caml_call2(Runtime_ocaml_Runtime[96],_ayp_,_ayo_), - _ayr_=caml_call1(Runtime_ocaml_Runtime[69],_ayq_), - _ays_=caml_call2(Runtime_ocaml_Runtime[107],_ayr_,_ayn_); - return caml_call2 - (Runtime_ocaml_Runtime[104],sous_calcul_traitement[1],_ays_)} - function _ayi_(param) - {var - _ayj_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _ayk_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_ayj_); - switch(residence[0]) - {case 0:var _ayl_=0;break; - case 1:var _ayl_=0;break; - case 2:var _ayl_=0;break; - case 3:var _ayl_=0;break; - case 4:var _ayl_=0;break; - case 5:var _ayl_=0;break; - case 6:var _ayl_=0;break; - case 7:var _ayl_=1;break; - default:var _ayl_=0} - var _aym_=caml_call2(Runtime_ocaml_Runtime[83],_ayl_,_ayk_); - return caml_call2(Runtime_ocaml_Runtime[29],_Wm_,_aym_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Wn_,[0],_ayi_,_ayh_)}], - _ayf_=caml_call4(Runtime_ocaml_Runtime[63],_Wo_,_aye_,_ayd_,_ayc_)} - catch(_ayg_) - {_ayg_ = caml_wrap_exception(_ayg_); - if(_ayg_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Wk_]; - throw _ayg_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_Wp_,Runtime_ocaml_Runtime[13],_ayf_); - return [0,aide_finale_formule,traitement_aide_finale]} - function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem) - {var - informations=eligibilite_prime_de_demenagem[1], - date_emmenagement=eligibilite_prime_de_demenagem[2], - menage=eligibilite_prime_de_demenagem[3], - demandeur=eligibilite_prime_de_demenagem[4], - date_courante=eligibilite_prime_de_demenagem[5], - depenses_justifiees_reellement=eligibilite_prime_de_demenagem[6]; - try - {var - _awe_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],0,6,0)}, - _awf_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wr_,1)}, - _awg_=caml_call4(Runtime_ocaml_Runtime[63],_Ws_,[0],_awf_,_awe_)} - catch(_axZ_) - {_axZ_ = caml_wrap_exception(_axZ_); - if(_axZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Wq_]; - throw _axZ_} - var - delai_apres_emmenagement_l823_= - caml_call3 - (Runtime_ocaml_Runtime[28],_Wt_,Runtime_ocaml_Runtime[17],_awg_); - try - {var - _awh_=function(param){return 0}, - _awi_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Wv_,1)}, - _awj_= - [0, - function(param) - {function _axP_(param){return 1} - function _axQ_(param) - {var - _axR_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$102), - _axS_=informations[1], - _axT_=menage[3]; - function _axU_(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0} + (Runtime_ocaml_Runtime[28], _K2_, Runtime_ocaml_Runtime[16], _acn_); + } + catch(_adD_){ + var _ack_ = caml_wrap_exception(_adD_); + if(_ack_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _KZ_], 1); + throw caml_maybe_attach_backtrace(_ack_, 0); + } + function eligibilite_apl_dot_condition_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_apl_dot_condition_$0(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_apl_dot_date_entre(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _aco_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _K3_, eligibilite_aides_personnelle_), + [0, + eligibilite_apl_dot_menage, + eligibilite_apl_dot_demandeur, + eligibilite_apl_dot_date_coura, + eligibilite_apl_dot_condition_, + eligibilite_apl_dot_condition_$0, + eligibilite_apl_dot_date_entre]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _K4_, _aco_), + eligibilite_apl_dot_date_coura$0 = result$0[1], + eligibilite_apl_dot_eligibilit = result$0[2]; + try{ + var + _acq_ = function(param){return 0;}, + _acr_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _K6_, 1); + }, + _acs_ = + [0, + function(param){ + function _adu_(param){return 1;} + function _adv_(param){ + var match = informations[2]; + if(0 === match[0]) + var _adw_ = 0; + else{ + var date_naissance_ou_grossesse = match[1]; + switch(date_naissance_ou_grossesse[0]){ + case 0: var - _axV_=caml_call2(Runtime_ocaml_Runtime[90],_axU_,_axT_), - _axW_=caml_call1(Runtime_ocaml_Runtime[68],_axV_), - _axX_=caml_call2(Runtime_ocaml_Runtime[91],_axW_,_axS_), - _axY_=caml_call2(Runtime_ocaml_Runtime[126],_axX_,_axR_); - return caml_call2(Runtime_ocaml_Runtime[29],_Ww_,_axY_)} - return caml_call4(Runtime_ocaml_Runtime[63],_Wx_,[0],_axQ_,_axP_)}], - _awk_=caml_call4(Runtime_ocaml_Runtime[63],_Wy_,_awj_,_awi_,_awh_)} - catch(_axO_) - {_axO_ = caml_wrap_exception(_axO_); - if(_axO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Wu_]; - throw _axO_} - var - condition_rang_enfant= - caml_call3 - (Runtime_ocaml_Runtime[28],_Wz_,Runtime_ocaml_Runtime[12],_awk_); - try - {var - _awl_=function(param){return date_courante}, - _awm_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WB_,1)}, - _awn_=caml_call4(Runtime_ocaml_Runtime[63],_WC_,[0],_awm_,_awl_), - base_mensuelle_allocations_fam= - caml_call3 - (Runtime_ocaml_Runtime[28],_WD_,Runtime_ocaml_Runtime[16],_awn_)} - catch(_axN_) - {_axN_ = caml_wrap_exception(_axN_); - if(_axN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WA_]; - throw _axN_} - var - _awo_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_WE_,base_mensuelle_allocations_fam$5), - [0,base_mensuelle_allocations_fam]), - result=caml_call2(Runtime_ocaml_Runtime[27],_WF_,_awo_), - base_mensuelle_allocations_fam$0=result[1]; - try - {var - _awp_=function(param){return menage}, - _awq_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WH_,1)}, - _awr_=caml_call4(Runtime_ocaml_Runtime[63],_WI_,[0],_awq_,_awp_), - eligibilite_apl_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_WJ_,embed_menage,_awr_)} - catch(_axM_) - {_axM_ = caml_wrap_exception(_axM_); - if(_axM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WG_]; - throw _axM_} - try - {var - _aws_=function(param){return demandeur}, - _awt_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WL_,1)}, - _awu_=caml_call4(Runtime_ocaml_Runtime[63],_WM_,[0],_awt_,_aws_), - eligibilite_apl_dot_demandeur= - caml_call3(Runtime_ocaml_Runtime[28],_WN_,embed_demandeur,_awu_)} - catch(_axL_) - {_axL_ = caml_wrap_exception(_axL_); - if(_axL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WK_]; - throw _axL_} - try - {var - _awv_=function(param){return date_courante}, - _aww_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WP_,1)}, - _awx_=caml_call4(Runtime_ocaml_Runtime[63],_WQ_,[0],_aww_,_awv_), - eligibilite_apl_dot_date_coura= - caml_call3 - (Runtime_ocaml_Runtime[28],_WR_,Runtime_ocaml_Runtime[16],_awx_)} - catch(_axK_) - {_axK_ = caml_wrap_exception(_axK_); - if(_axK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WO_]; - throw _axK_} - function eligibilite_apl_dot_condition_(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_apl_dot_condition_$0(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_apl_dot_date_entre(param) - {throw Runtime_ocaml_Runtime[2]} - var - _awy_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_WS_,eligibilite_aides_personnelle_), - [0, - eligibilite_apl_dot_menage, - eligibilite_apl_dot_demandeur, - eligibilite_apl_dot_date_coura, - eligibilite_apl_dot_condition_, - eligibilite_apl_dot_condition_$0, - eligibilite_apl_dot_date_entre]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_WT_,_awy_), - eligibilite_apl_dot_date_coura$0=result$0[1], - eligibilite_apl_dot_eligibilit=result$0[2]; - try - {var - _awz_=function(param){return 0}, - _awA_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_WV_,1)}, - _awB_= - [0, - function(param) - {function _axA_(param){return 1} - function _axB_(param) - {var _axC_=informations[2]; - if(0 === _axC_[0]) - var _axD_=0; - else - {var date_naissance_ou_grossesse=_axC_[1]; - switch(date_naissance_ou_grossesse[0]) - {case 0: - var - date_naissance=date_naissance_ou_grossesse[1], - _axE_=caml_call3(Runtime_ocaml_Runtime[60],0,0,-1), - _axF_=caml_call3(Runtime_ocaml_Runtime[60],2,0,0), - _axG_= - caml_call3(Runtime_ocaml_Runtime[94],2,date_naissance,_axF_), - _axH_=caml_call1(Runtime_ocaml_Runtime[75],_axG_), - _axI_=caml_call3(Runtime_ocaml_Runtime[94],2,_axH_,_axE_), - _axJ_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_axI_); - break; - case 1:var _axJ_=0;break; - default:var _axJ_=1} - var _axD_=_axJ_} - return caml_call2(Runtime_ocaml_Runtime[29],_WW_,_axD_)} - return caml_call4(Runtime_ocaml_Runtime[63],_WX_,[0],_axB_,_axA_)}], - _awC_=caml_call4(Runtime_ocaml_Runtime[63],_WY_,_awB_,_awA_,_awz_)} - catch(_axz_) - {_axz_ = caml_wrap_exception(_axz_); - if(_axz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_WU_]; - throw _axz_} - var - condition_periode_demenagement= - caml_call3 - (Runtime_ocaml_Runtime[28],_WZ_,Runtime_ocaml_Runtime[12],_awC_); - try - {var - _awD_= - function(param) - {var - _axi_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$103), - _axj_=menage[3]; - function _axk_(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0} - var - _axl_=caml_call2(Runtime_ocaml_Runtime[90],_axk_,_axj_), - _axm_=caml_call1(Runtime_ocaml_Runtime[68],_axl_); - if(caml_call2(Runtime_ocaml_Runtime[121],_axm_,_axi_)) - var - _axn_=caml_call1(Runtime_ocaml_Runtime[39],cst_0_2$1), - _axo_=caml_call1(Runtime_ocaml_Runtime[46],cst_3$104), - _axp_=menage[3], - _axq_= - function(personne_a_charge) - {return 0 === personne_a_charge[0]?1:0}, - _axr_=caml_call2(Runtime_ocaml_Runtime[90],_axq_,_axp_), - _axs_=caml_call1(Runtime_ocaml_Runtime[68],_axr_), - _axt_=caml_call2(Runtime_ocaml_Runtime[96],_axs_,_axo_), - _axu_=caml_call1(Runtime_ocaml_Runtime[69],_axt_), - _axv_=caml_call2(Runtime_ocaml_Runtime[103],_axu_,_axn_), - _axw_= - caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _axv_); - else - var _axw_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$420); - var - _axx_=caml_call1(Runtime_ocaml_Runtime[39],cst_2_4), - _axy_= + date_naissance = date_naissance_ou_grossesse[1], + _adx_ = caml_call3(Runtime_ocaml_Runtime[60], 0, 0, -1), + _ady_ = caml_call3(Runtime_ocaml_Runtime[60], 2, 0, 0), + _adz_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, date_naissance, _ady_), + _adA_ = caml_call1(Runtime_ocaml_Runtime[75], _adz_), + _adB_ = caml_call3(Runtime_ocaml_Runtime[94], 2, _adA_, _adx_), + _adC_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _adB_); + break; + case 1: + var _adC_ = 0; break; + default: var _adC_ = 1; + } + var _adw_ = _adC_; + } + return caml_call2(Runtime_ocaml_Runtime[29], _K7_, _adw_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _K8_, [0], _adv_, _adu_); + }], + _act_ = caml_call4(Runtime_ocaml_Runtime[63], _K9_, _acs_, _acr_, _acq_); + } + catch(_adt_){ + var _acp_ = caml_wrap_exception(_adt_); + if(_acp_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _K5_], 1); + throw caml_maybe_attach_backtrace(_acp_, 0); + } + var + condition_periode_demenagement = + caml_call3 + (Runtime_ocaml_Runtime[28], _K__, Runtime_ocaml_Runtime[12], _act_); + try{ + var + _acv_ = + function(param){ + var + _adc_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$99), + _add_ = menage[3]; + function _ade_(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + } + var + _adf_ = caml_call2(Runtime_ocaml_Runtime[90], _ade_, _add_), + _adg_ = caml_call1(Runtime_ocaml_Runtime[68], _adf_); + if(caml_call2(Runtime_ocaml_Runtime[121], _adg_, _adc_)) + var + _adh_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0_2$1), + _adi_ = caml_call1(Runtime_ocaml_Runtime[46], cst_3$100), + _adj_ = menage[3], + _adk_ = + function(personne_a_charge){ + return 0 === personne_a_charge[0] ? 1 : 0; + }, + _adl_ = caml_call2(Runtime_ocaml_Runtime[90], _adk_, _adj_), + _adm_ = caml_call1(Runtime_ocaml_Runtime[68], _adl_), + _adn_ = caml_call2(Runtime_ocaml_Runtime[96], _adm_, _adi_), + _ado_ = caml_call1(Runtime_ocaml_Runtime[69], _adn_), + _adp_ = caml_call2(Runtime_ocaml_Runtime[103], _ado_, _adh_), + _adq_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _adp_); + else + var _adq_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$349); + var + _adr_ = caml_call1(Runtime_ocaml_Runtime[39], cst_2_4), + _ads_ = + caml_call2 + (Runtime_ocaml_Runtime[104], + base_mensuelle_allocations_fam$1, + _adr_); + return caml_call2(Runtime_ocaml_Runtime[93], _ads_, _adq_); + }, + _acw_ = + function(param){ + var + _ada_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _adb_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ada_); + return caml_call2(Runtime_ocaml_Runtime[29], _La_, _adb_); + }, + _acx_ = caml_call4(Runtime_ocaml_Runtime[63], _Lb_, [0], _acw_, _acv_); + } + catch(_ac$_){ + var _acu_ = caml_wrap_exception(_ac$_); + if(_acu_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _K$_], 1); + throw caml_maybe_attach_backtrace(_acu_, 0); + } + var + plafond_d823_22 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lc_, Runtime_ocaml_Runtime[13], _acx_); + try{ + var + _acz_ = function(param){return 0;}, + _acA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Le_, 1); + }, + _acB_ = + [0, + function(param){ + function _acJ_(param){return 1;} + function _acK_(param){ + var + _ac6_ = caml_call2 - (Runtime_ocaml_Runtime[104], - base_mensuelle_allocations_fam$0, - _axx_); - return caml_call2(Runtime_ocaml_Runtime[93],_axy_,_axw_)}, - _awE_= - function(param) - {var - _axg_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _axh_=caml_call2(Runtime_ocaml_Runtime[130],date_courante,_axg_); - return caml_call2(Runtime_ocaml_Runtime[29],_W1_,_axh_)}, - _awF_=caml_call4(Runtime_ocaml_Runtime[63],_W2_,[0],_awE_,_awD_)} - catch(_axf_) - {_axf_ = caml_wrap_exception(_axf_); - if(_axf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_W0_]; - throw _axf_} - var - plafond_d823_22= - caml_call3 - (Runtime_ocaml_Runtime[28],_W3_,Runtime_ocaml_Runtime[13],_awF_); - try - {var - _awG_=function(param){return 0}, - _awH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_W5_,1)}, - _awI_= - [0, - function(param) - {function _awP_(param){return 1} - function _awQ_(param) - {var - _axa_= - caml_call2 - (Runtime_ocaml_Runtime[99], - eligibilite_apl_dot_date_coura$0, - date_emmenagement), - _axb_= - caml_call2 - (Runtime_ocaml_Runtime[119], - _axa_, - delai_apres_emmenagement_l823_), - _axc_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_periode_demenagement, - _axb_), - _axd_= - caml_call2 - (Runtime_ocaml_Runtime[83],condition_rang_enfant,_axc_), - _axe_= - caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_apl_dot_eligibilit, - _axd_); - return caml_call2(Runtime_ocaml_Runtime[29],_W6_,_axe_)} - var - _awR_= - [0, - function(param) - {function _awS_(param){throw Runtime_ocaml_Runtime[2]} - function _awT_(param){return 0} - var - _awU_= - [0, - function(param) - {function _awV_(param){return 0} - function _awW_(param) - {switch(menage[9][0]) - {case 0:var _aw$_=0;break; - case 1:var _aw$_=0;break; - case 2:var _aw$_=0;break; - case 3:var _aw$_=0;break; - case 4:var _aw$_=0;break; - case 5:var _aw$_=0;break; - case 6:var _aw$_=0;break; - case 7:var _aw$_=0;break; - default:var _aw$_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_W7_,_aw$_)} - var - _awX_= - [0, - function(param) - {function _awY_(param){return 0} - function _awZ_(param) - {switch(menage[9][0]) - {case 0:var _aw7_=0;break; - case 1:var _aw7_=0;break; - case 2:var _aw7_=0;break; - case 3:var _aw7_=0;break; - case 4:var _aw7_=0;break; - case 5:var _aw7_=0;break; - case 6:var _aw7_=0;break; - case 7:var _aw7_=1;break; - default:var _aw7_=0} - var - _aw8_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aw9_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aw8_), - _aw__=caml_call2(Runtime_ocaml_Runtime[83],_aw9_,_aw7_); - return caml_call2(Runtime_ocaml_Runtime[29],_W8_,_aw__)} - var - _aw0_= - [0, - function(param) - {function _aw1_(param){return 0} - function _aw2_(param) - {switch(menage[9][0]) - {case 0:var _aw3_=0;break; - case 1:var _aw3_=0;break; - case 2:var _aw3_=0;break; - case 3:var _aw3_=0;break; - case 4:var _aw3_=0;break; - case 5:var _aw3_=0;break; - case 6:var _aw3_=0;break; - case 7:var _aw3_=0;break; - default:var _aw3_=1} - var - _aw4_=caml_call3(Runtime_ocaml_Runtime[57],2022,1,1), - _aw5_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aw4_), - _aw6_=caml_call2(Runtime_ocaml_Runtime[83],_aw5_,_aw3_); - return caml_call2(Runtime_ocaml_Runtime[29],_W9_,_aw6_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_W__,[0],_aw2_,_aw1_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_W$_,_aw0_,_awZ_,_awY_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Xa_,_awX_,_awW_,_awV_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Xb_,_awU_,_awT_,_awS_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Xc_,_awR_,_awQ_,_awP_)}], - _awJ_=caml_call4(Runtime_ocaml_Runtime[63],_Xd_,_awI_,_awH_,_awG_)} - catch(_awO_) - {_awO_ = caml_wrap_exception(_awO_); - if(_awO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_W4_]; - throw _awO_} - caml_call3 - (Runtime_ocaml_Runtime[28],_Xe_,Runtime_ocaml_Runtime[12],_awJ_); - try - {var - _awK_= - function(param) - {return caml_call2 - (Runtime_ocaml_Runtime[118], - depenses_justifiees_reellement, - plafond_d823_22) - ?depenses_justifiees_reellement - :plafond_d823_22}, - _awL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xg_,1)}, - _awM_=caml_call4(Runtime_ocaml_Runtime[63],_Xh_,[0],_awL_,_awK_)} - catch(_awN_) - {_awN_ = caml_wrap_exception(_awN_); - if(_awN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xf_]; - throw _awN_} - var - montant_prime_demenagement= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xi_,Runtime_ocaml_Runtime[13],_awM_); - return [0,montant_prime_demenagement]} - function eligibilite_allocation_logemen(eligibilite_allocation_logemen) - {var - date_courante=eligibilite_allocation_logemen[1], - menage=eligibilite_allocation_logemen[2], - demandeur=eligibilite_allocation_logemen[3], - beneficie_aide_personnalisee_l=eligibilite_allocation_logemen[4]; - try - {var - _arp_= - function(param){return caml_call3(Runtime_ocaml_Runtime[60],5,0,0)}, - _arq_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xk_,1)}, - _arr_=caml_call4(Runtime_ocaml_Runtime[63],_Xl_,[0],_arq_,_arp_)} - catch(_awd_) - {_awd_ = caml_wrap_exception(_awd_); - if(_awd_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xj_]; - throw _awd_} - var - duree_l841_1_3= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xm_,Runtime_ocaml_Runtime[17],_arr_); - try - {var - _ars_=function(param){return date_courante}, - _art_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xo_,1)}, - _aru_=caml_call4(Runtime_ocaml_Runtime[63],_Xp_,[0],_art_,_ars_), - prestations_familiales_dot_dat= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xq_,Runtime_ocaml_Runtime[16],_aru_)} - catch(_awc_) - {_awc_ = caml_wrap_exception(_awc_); - if(_awc_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xn_]; - throw _awc_} - try - {var - _arv_=function(param){return _Xs_}, - _arw_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xt_,1)}, - _arx_=caml_call4(Runtime_ocaml_Runtime[63],_Xu_,[0],_arw_,_arv_), - prestations_familiales_dot_pre= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Xv_, - embed_element_prestations_fami$0, - _arx_)} - catch(_awb_) - {_awb_ = caml_wrap_exception(_awb_); - if(_awb_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xr_]; - throw _awb_} - try - {var - _ary_=function(param){return menage[9]}, - _arz_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Xx_,1)}, - _arA_=caml_call4(Runtime_ocaml_Runtime[63],_Xy_,[0],_arz_,_ary_), - prestations_familiales_dot_res= - caml_call3 - (Runtime_ocaml_Runtime[28],_Xz_,embed_collectivite$0,_arA_)} - catch(_awa_) - {_awa_ = caml_wrap_exception(_awa_); - if(_awa_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Xw_]; - throw _awa_} - function prestations_familiales_dot_age(param) - {throw Runtime_ocaml_Runtime[2]} - var - _arB_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_XA_,eligibilite_prestations_famili), - [0, - prestations_familiales_dot_dat, - prestations_familiales_dot_pre, - prestations_familiales_dot_res, - prestations_familiales_dot_age]), - result=caml_call2(Runtime_ocaml_Runtime[27],_XB_,_arB_), - prestations_familiales_dot_dro=result[2]; - try - {var - _arC_=function(param){return 0}, - _arD_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XD_,1)}, - _arE_= - [0, - function(param) - {function _avZ_(param){throw Runtime_ocaml_Runtime[2]} - function _av0_(param){return 0} - function _av1_(param) - {function _av5_(param){return 0} - function _av6_(param) - {switch(menage[9][0]) - {case 0:var _av$_=1;break; - case 1:var _av$_=1;break; - case 2:var _av$_=1;break; - case 3:var _av$_=1;break; - case 4:var _av$_=0;break; - case 5:var _av$_=0;break; - case 6:var _av$_=0;break; - case 7:var _av$_=0;break; - default:var _av$_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_XE_,_av$_)} - var - _av7_= - [0, - function(param) - {function _av8_(param){return 0} - function _av9_(param) - {switch(menage[9][0]) - {case 0:var _av__=0;break; - case 1:var _av__=0;break; - case 2:var _av__=0;break; - case 3:var _av__=0;break; - case 4:var _av__=1;break; - case 5:var _av__=1;break; - case 6:var _av__=0;break; - case 7:var _av__=0;break; - default:var _av__=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XF_,_av__)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XG_,[0],_av9_,_av8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XH_,_av7_,_av6_,_av5_)} - var - _av2_= - [0, - function(param) - {function _av3_(param){return 1} - function _av4_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_XI_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XJ_,[0],_av4_,_av3_)}, - _av1_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XK_,_av2_,_av0_,_avZ_)}], - _arF_=caml_call4(Runtime_ocaml_Runtime[63],_XL_,_arE_,_arD_,_arC_)} - catch(_avY_) - {_avY_ = caml_wrap_exception(_avY_); - if(_avY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_XC_]; - throw _avY_} - var - l_841_1_6_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_XM_,Runtime_ocaml_Runtime[12],_arF_); - try - {var - _arG_=function(param){return 0}, - _arH_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XO_,1)}, - _arI_= - [0, - function(param) - {function _avL_(param){throw Runtime_ocaml_Runtime[2]} - function _avM_(param){return 0} - function _avN_(param) - {function _avR_(param){return 0} - function _avS_(param) - {switch(menage[9][0]) - {case 0:var _avX_=1;break; - case 1:var _avX_=1;break; - case 2:var _avX_=1;break; - case 3:var _avX_=1;break; - case 4:var _avX_=0;break; - case 5:var _avX_=0;break; - case 6:var _avX_=0;break; - case 7:var _avX_=0;break; - default:var _avX_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_XP_,_avX_)} - var - _avT_= - [0, - function(param) - {function _avU_(param){return 0} - function _avV_(param) - {switch(menage[9][0]) - {case 0:var _avW_=0;break; - case 1:var _avW_=0;break; - case 2:var _avW_=0;break; - case 3:var _avW_=0;break; - case 4:var _avW_=1;break; - case 5:var _avW_=1;break; - case 6:var _avW_=0;break; - case 7:var _avW_=0;break; - default:var _avW_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_XQ_,_avW_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XR_,[0],_avV_,_avU_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XS_,_avT_,_avS_,_avR_)} - var - _avO_= - [0, - function(param) - {function _avP_(param){return 1} - function _avQ_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_XT_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_XU_,[0],_avQ_,_avP_)}, - _avN_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_XV_,_avO_,_avM_,_avL_)}], - _arJ_=caml_call4(Runtime_ocaml_Runtime[63],_XW_,_arI_,_arH_,_arG_)} - catch(_avK_) - {_avK_ = caml_wrap_exception(_avK_); - if(_avK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_XN_]; - throw _avK_} - var - l_841_1_2_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_XX_,Runtime_ocaml_Runtime[12],_arJ_); - try - {var - _arK_=function(param){return 0}, - _arL_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_XZ_,1)}, - _arM_= - [0, - function(param) - {function _avx_(param){throw Runtime_ocaml_Runtime[2]} - function _avy_(param){return 0} - function _avz_(param) - {function _avD_(param){return 0} - function _avE_(param) - {switch(menage[9][0]) - {case 0:var _avJ_=1;break; - case 1:var _avJ_=1;break; - case 2:var _avJ_=1;break; - case 3:var _avJ_=1;break; - case 4:var _avJ_=0;break; - case 5:var _avJ_=0;break; - case 6:var _avJ_=0;break; - case 7:var _avJ_=0;break; - default:var _avJ_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_X0_,_avJ_)} - var - _avF_= - [0, - function(param) - {function _avG_(param){return 0} - function _avH_(param) - {switch(menage[9][0]) - {case 0:var _avI_=0;break; - case 1:var _avI_=0;break; - case 2:var _avI_=0;break; - case 3:var _avI_=0;break; - case 4:var _avI_=1;break; - case 5:var _avI_=1;break; - case 6:var _avI_=0;break; - case 7:var _avI_=0;break; - default:var _avI_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_X1_,_avI_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_X2_,[0],_avH_,_avG_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_X3_,_avF_,_avE_,_avD_)} - var - _avA_= - [0, - function(param) - {function _avB_(param){return 1} - function _avC_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_X4_,1)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_X5_,[0],_avC_,_avB_)}, - _avz_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_X6_,_avA_,_avy_,_avx_)}], - _arN_=caml_call4(Runtime_ocaml_Runtime[63],_X7_,_arM_,_arL_,_arK_)} - catch(_avw_) - {_avw_ = caml_wrap_exception(_avw_); - if(_avw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_XY_]; - throw _avw_} - var - l_841_1_1_applicable= - caml_call3 - (Runtime_ocaml_Runtime[28],_X8_,Runtime_ocaml_Runtime[12],_arN_); - try - {var - _arO_=function(param){return 0}, - _arP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_X__,1)}, - _arQ_= - [0, - function(param) - {function _au5_(param){return 1} - function _au6_(param) - {switch(menage[2][3][0]) - {case 0:var _avv_=1;break; - case 1:var _avv_=1;break; - case 2:var _avv_=0;break; - case 3:var _avv_=1;break; - default:var _avv_=1} - return caml_call2(Runtime_ocaml_Runtime[29],_X$_,_avv_)} - var - _au7_= - [0, - function(param) - {function _au8_(param){throw Runtime_ocaml_Runtime[2]} - function _au9_(param){return 0} - var - _au__= - [0, - function(param) - {function _au$_(param){return 1} - function _ava_(param) - {var _avp_=menage[2][3]; - switch(_avp_[0]) - {case 0:var _avq_=0;break; - case 1:var _avq_=0;break; - case 2: - var proprietaire=_avp_[1]; - switch(proprietaire[5][0]) - {case 0:var _avr_=1;break; - case 1:var _avr_=0;break; - case 2:var _avr_=0;break; - default:var _avr_=0} - switch(proprietaire[5][0]) - {case 0:var _avs_=0;break; - case 1:var _avs_=0;break; - case 2:var _avs_=0;break; - default:var _avs_=1} - var - _avt_=caml_call2(Runtime_ocaml_Runtime[84],_avs_,_avr_), - _avu_=0 === proprietaire[10][3][0]?1:0, - _avq_=caml_call2(Runtime_ocaml_Runtime[83],_avu_,_avt_); - break; - case 3:var _avq_=0;break; - default:var _avq_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Ya_,_avq_)} - var - _avb_= - [0, - function(param) - {function _avc_(param){return 1} - function _avd_(param) - {var _avl_=menage[2][3]; - switch(_avl_[0]) - {case 0:var _avm_=0;break; - case 1:var _avm_=0;break; - case 2: - var proprietaire=_avl_[1]; - switch(proprietaire[5][0]) - {case 0:var _avn_=0;break; - case 1:var _avn_=1;break; - case 2:var _avn_=0;break; - default:var _avn_=0} - var - _avo_=0 === proprietaire[10][3][0]?1:0, - _avm_=caml_call2(Runtime_ocaml_Runtime[83],_avo_,_avn_); - break; - case 3:var _avm_=0;break; - default:var _avm_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Yb_,_avm_)} - var - _ave_= - [0, - function(param) - {function _avf_(param){return 1} - function _avg_(param) - {var _avh_=menage[2][3]; - switch(_avh_[0]) - {case 0:var _avi_=0;break; - case 1:var _avi_=0;break; - case 2: - var proprietaire=_avh_[1]; - switch(proprietaire[5][0]) - {case 0:var _avj_=0;break; - case 1:var _avj_=0;break; - case 2:var _avj_=1;break; - default:var _avj_=0} - var - _avk_=0 === proprietaire[10][3][0]?1:0, - _avi_=caml_call2(Runtime_ocaml_Runtime[83],_avk_,_avj_); - break; - case 3:var _avi_=0;break; - default:var _avi_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Yc_,_avi_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yd_,[0],_avg_,_avf_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Ye_,_ave_,_avd_,_avc_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yf_,_avb_,_ava_,_au$_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yg_,_au__,_au9_,_au8_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Yh_,_au7_,_au6_,_au5_)}], - _arR_=caml_call4(Runtime_ocaml_Runtime[63],_Yi_,_arQ_,_arP_,_arO_)} - catch(_au4_) - {_au4_ = caml_wrap_exception(_au4_); - if(_au4_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_X9_]; - throw _au4_} - var - condition_accession_propriete= - caml_call3 - (Runtime_ocaml_Runtime[28],_Yj_,Runtime_ocaml_Runtime[12],_arR_); - try - {var - _arS_=function(param){return menage}, - _arT_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yl_,1)}, - _arU_=caml_call4(Runtime_ocaml_Runtime[63],_Ym_,[0],_arT_,_arS_), - eligibilite_commune_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_Yn_,embed_menage,_arU_)} - catch(_au3_) - {_au3_ = caml_wrap_exception(_au3_); - if(_au3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yk_]; - throw _au3_} - try - {var - _arV_=function(param){return demandeur}, - _arW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yp_,1)}, - _arX_=caml_call4(Runtime_ocaml_Runtime[63],_Yq_,[0],_arW_,_arV_), - eligibilite_commune_dot_demand= - caml_call3(Runtime_ocaml_Runtime[28],_Yr_,embed_demandeur,_arX_)} - catch(_au2_) - {_au2_ = caml_wrap_exception(_au2_); - if(_au2_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Yo_]; - throw _au2_} - try - {var - _arY_=function(param){return date_courante}, - _arZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_Yt_,1)}, - _ar0_=caml_call4(Runtime_ocaml_Runtime[63],_Yu_,[0],_arZ_,_arY_), - eligibilite_commune_dot_date_c= - caml_call3 - (Runtime_ocaml_Runtime[28],_Yv_,Runtime_ocaml_Runtime[16],_ar0_)} - catch(_au1_) - {_au1_ = caml_wrap_exception(_au1_); - if(_au1_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Ys_]; - throw _au1_} - function eligibilite_commune_dot_condit(param) - {function _auW_(param){return 1} - function _auX_(param) - {var _auZ_=menage[2][3]; - switch(_auZ_[0]) - {case 0:var _au0_=0;break; - case 1:var logement_foyer=_auZ_[1],_au0_=logement_foyer[6];break; - case 2:var _au0_=0;break; - case 3:var _au0_=0;break; - default:var _au0_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Yw_,_au0_)} - var _auY_=caml_call4(Runtime_ocaml_Runtime[63],_Yx_,[0],_auX_,_auW_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _Yy_, - Runtime_ocaml_Runtime[12], - _auY_)} - function eligibilite_commune_dot_condit$0(param) - {function _auR_(param){return 1} - function _auS_(param) - {var _auU_=menage[2][3]; - switch(_auU_[0]) - {case 0:var _auV_=0;break; - case 1:var logement_foyer=_auU_[1],_auV_=logement_foyer[6];break; - case 2:var _auV_=0;break; - case 3:var _auV_=0;break; - default:var _auV_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_Yz_,_auV_)} - var _auT_=caml_call4(Runtime_ocaml_Runtime[63],_YA_,[0],_auS_,_auR_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - _YB_, - Runtime_ocaml_Runtime[12], - _auT_)} - function eligibilite_commune_dot_date_e(param) - {throw Runtime_ocaml_Runtime[2]} - var - _ar1_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_YC_,eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_YD_,_ar1_), - eligibilite_commune_dot_eligib=result$0[2], - eligibilite_commune_dot_nombre=result$0[3], - eligibilite_commune_dot_coeffi=result$0[4], - eligibilite_commune_dot_condit$1=result$0[5]; - try - {var - _ar2_=function(param){return eligibilite_commune_dot_coeffi}, - _ar3_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YF_,1)}, - _ar4_=caml_call4(Runtime_ocaml_Runtime[63],_YG_,[0],_ar3_,_ar2_)} - catch(_auQ_) - {_auQ_ = caml_wrap_exception(_auQ_); - if(_auQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YE_]; - throw _auQ_} - var - _ar5_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_YH_,_ar5_,_ar4_); - try - {var - _ar6_=function(param){return eligibilite_commune_dot_nombre}, - _ar7_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YJ_,1)}, - _ar8_=caml_call4(Runtime_ocaml_Runtime[63],_YK_,[0],_ar7_,_ar6_)} - catch(_auP_) - {_auP_ = caml_wrap_exception(_auP_); - if(_auP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YI_]; - throw _auP_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],_YL_,Runtime_ocaml_Runtime[14],_ar8_); - try - {var - _ar9_= - function(param) - {var - _auN_= - caml_call1 - (Runtime_ocaml_Runtime[67],condition_accession_propriete), - _auO_= - caml_call1 - (Runtime_ocaml_Runtime[67],eligibilite_commune_dot_eligib); - return caml_call2(Runtime_ocaml_Runtime[84],_auO_,_auN_)?_YN_:_YO_}, - _ar__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YP_,1)}, - _ar$_=caml_call4(Runtime_ocaml_Runtime[63],_YQ_,[0],_ar__,_ar9_)} - catch(_auM_) - {_auM_ = caml_wrap_exception(_auM_); - if(_auM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YM_]; - throw _auM_} - var - eligibilite_dispositions_commu= - caml_call3 - (Runtime_ocaml_Runtime[28],_YR_,embed_type_eligibilite_allocat,_ar$_); - try - {var - _asa_=function(param){return 0}, - _asb_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_YT_,1)}, - _asc_= - [0, - function(param) - {function _asO_(param){return 1} - function _asP_(param) - {var _auA_=menage[1],_auB_=0; - function _auC_(acc,prestation) - {var - _auF_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YU_), - _auG_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YV_), - _auH_=caml_call2(Runtime_ocaml_Runtime[84],_auG_,_auF_), - _auI_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YW_), - _auJ_=caml_call2(Runtime_ocaml_Runtime[84],_auI_,_auH_), - _auK_=caml_call2(Runtime_ocaml_Runtime[86],prestation,_YX_), - _auL_=caml_call2(Runtime_ocaml_Runtime[84],_auK_,_auJ_); - return caml_call2(Runtime_ocaml_Runtime[84],acc,_auL_)} - var - _auD_=caml_call3(Runtime_ocaml_Runtime[136],_auC_,_auB_,_auA_), - _auE_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_1_applicable,_auD_); - return caml_call2(Runtime_ocaml_Runtime[29],_YY_,_auE_)} - var - _asQ_= - [0, - function(param) - {function _asR_(param){return 1} - function _asS_(param) - {var - _aun_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$278), - _auo_=menage[3]; - function _aup_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 0; - var - enfant=personne_a_charge[1], - _auu_=enfant[3], - _auv_=enfant[4], - _auw_=0 === enfant[8][0]?_YZ_:_Y4_, - _aux_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Y0_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _auw_, - _auv_, - _auu_]), - _auy_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Y1_, - prestations_familiales_dot_dro), - _aux_), - _auz_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Y2_, - Runtime_ocaml_Runtime[12], - _auy_); - return caml_call2(Runtime_ocaml_Runtime[27],_Y3_,_auz_)} - var - _auq_=caml_call2(Runtime_ocaml_Runtime[90],_aup_,_auo_), - _aur_=caml_call1(Runtime_ocaml_Runtime[68],_auq_), - _aus_=caml_call2(Runtime_ocaml_Runtime[86],_aur_,_aun_), - _aut_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_2_applicable,_aus_); - return caml_call2(Runtime_ocaml_Runtime[29],_Y5_,_aut_)} - var - _asT_= - [0, - function(param) - {function _asU_(param){return 1} - function _asV_(param) - {var _at8_=menage[5]; - switch(_at8_[0]) - {case 0:var _at9_=0;break; - case 1: - var - date_mariage=_at8_[1], - _auf_= - caml_call3 - (Runtime_ocaml_Runtime[94],2,date_mariage,duree_l841_1_3), - _at9_= - caml_call2(Runtime_ocaml_Runtime[120],date_courante,_auf_); - break; - case 2:var _at9_=0;break; - case 3:var _at9_=0;break; - case 4:var _at9_=0;break; - default:var _at9_=0} - var - _at__=caml_call1(Runtime_ocaml_Runtime[46],cst_0$421), - _at$_=menage[3]; - function _aua_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 0; - var - enfant=personne_a_charge[1], - _aug_=enfant[3], - _auh_=enfant[4], - _aui_=0 === enfant[8][0]?_Y6_:_Y$_, - _auj_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Y7_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _aui_, - _auh_, - _aug_]), - _auk_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Y8_, - prestations_familiales_dot_dro), - _auj_), - _aul_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Y9_, - Runtime_ocaml_Runtime[12], - _auk_), - _aum_=caml_call2(Runtime_ocaml_Runtime[27],_Y__,_aul_); - return caml_call1(Runtime_ocaml_Runtime[67],_aum_)} - var - _aub_=caml_call2(Runtime_ocaml_Runtime[90],_aua_,_at$_), - _auc_=caml_call1(Runtime_ocaml_Runtime[68],_aub_), - _aud_=caml_call2(Runtime_ocaml_Runtime[86],_auc_,_at__), - _aue_=caml_call2(Runtime_ocaml_Runtime[83],_aud_,_at9_); - return caml_call2(Runtime_ocaml_Runtime[29],_Za_,_aue_)} - var - _asW_= - [0, - function(param) - {function _asX_(param){return 1} - function _asY_(param) - {var - _atZ_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$279), - _at0_=menage[3]; - function _at1_(personne_a_charge) - {var - _at5_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zb_, - embed_personne_a_charge, - personne_a_charge), - _at6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Zc_, - eligibilite_commune_dot_condit$1), - _at5_), - _at7_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zd_, - Runtime_ocaml_Runtime[12], - _at6_); - return caml_call2(Runtime_ocaml_Runtime[27],_Ze_,_at7_)} - var - _at2_=caml_call2(Runtime_ocaml_Runtime[90],_at1_,_at0_), - _at3_=caml_call1(Runtime_ocaml_Runtime[68],_at2_), - _at4_=caml_call2(Runtime_ocaml_Runtime[126],_at3_,_atZ_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zf_,_at4_)} - var - _asZ_= - [0, - function(param) - {function _as0_(param){return 1} - function _as1_(param) - {var - _atT_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$280), - _atU_=menage[3]; - function _atV_(personne_a_charge) - {if(0 === personne_a_charge[0])return 0; - var parent=personne_a_charge[1]; - return caml_call2 - (Runtime_ocaml_Runtime[83],parent[3],parent[5])} - var - _atW_=caml_call2(Runtime_ocaml_Runtime[90],_atV_,_atU_), - _atX_=caml_call1(Runtime_ocaml_Runtime[68],_atW_), - _atY_=caml_call2(Runtime_ocaml_Runtime[126],_atX_,_atT_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zg_,_atY_)} - var - _as2_= - [0, - function(param) - {function _as3_(param){return 1} - function _as4_(param) - {switch(menage[5][0]) - {case 0: - var - _atN_=menage[7], - _atO_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$422), - _atP_=caml_call1(Runtime_ocaml_Runtime[68],menage[3]), - _atQ_=caml_call2(Runtime_ocaml_Runtime[86],_atP_,_atO_), - _atR_=caml_call2(Runtime_ocaml_Runtime[83],_atQ_,_atN_); - break; - case 1:var _atR_=0;break; - case 2:var _atR_=0;break; - case 3:var _atR_=0;break; - case 4:var _atR_=0;break; - default:var _atR_=0} - var - _atS_= - caml_call2 - (Runtime_ocaml_Runtime[83],l_841_1_6_applicable,_atR_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zh_,_atS_)} - function _as5_(param) - {function _atr_(param){return 1} - function _ats_(param) - {var - _atz_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$281), - _atA_=menage[3]; - function _atB_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 0; - var - enfant=personne_a_charge[1], - _atH_=enfant[3], - _atI_=enfant[4], - _atJ_=0 === enfant[8][0]?_Zi_:_Zn_, - _atK_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zj_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _atJ_, - _atI_, - _atH_]), - _atL_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Zk_, - prestations_familiales_dot_dro), - _atK_), - _atM_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zl_, - Runtime_ocaml_Runtime[12], - _atL_); - return caml_call2(Runtime_ocaml_Runtime[27],_Zm_,_atM_)} - var - _atC_=caml_call2(Runtime_ocaml_Runtime[90],_atB_,_atA_), - _atD_=caml_call1(Runtime_ocaml_Runtime[68],_atC_), - _atE_=caml_call2(Runtime_ocaml_Runtime[126],_atD_,_atz_); - switch(menage[9][0]) - {case 0:var _atF_=1;break; - case 1:var _atF_=1;break; - case 2:var _atF_=1;break; - case 3:var _atF_=1;break; - case 4:var _atF_=0;break; - case 5:var _atF_=0;break; - case 6:var _atF_=0;break; - case 7:var _atF_=0;break; - default:var _atF_=1} - var _atG_=caml_call2(Runtime_ocaml_Runtime[83],_atF_,_atE_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zo_,_atG_)} - var - _att_= - [0, - function(param) - {function _atu_(param){return 1} - function _atv_(param) - {var _atw_=demandeur[5]; - switch(menage[9][0]) - {case 0:var _atx_=1;break; - case 1:var _atx_=1;break; - case 2:var _atx_=1;break; - case 3:var _atx_=1;break; - case 4:var _atx_=0;break; - case 5:var _atx_=0;break; - case 6:var _atx_=0;break; - case 7:var _atx_=0;break; - default:var _atx_=1} - var _aty_=caml_call2(Runtime_ocaml_Runtime[83],_atx_,_atw_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zp_,_aty_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Zq_,[0],_atv_,_atu_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Zr_,_att_,_ats_,_atr_)} - var - _as6_= - [0, - function(param) - {function _as7_(param){return 1} - function _as8_(param) - {var - _atd_=caml_call1(Runtime_ocaml_Runtime[46],cst_1$282), - _ate_=menage[3]; - function _atf_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 0; - var - enfant=personne_a_charge[1], - _atl_=enfant[3], - _atm_=enfant[4], - _atn_=0 === enfant[8][0]?_Zs_:_Zx_, - _ato_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zt_, - embed_enfant_prestations_famil, - [0, - enfant[1], - enfant[7], - enfant[6], - enfant[5], - _atn_, - _atm_, - _atl_]), - _atp_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _Zu_, - prestations_familiales_dot_dro), - _ato_), - _atq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _Zv_, - Runtime_ocaml_Runtime[12], - _atp_); - return caml_call2(Runtime_ocaml_Runtime[27],_Zw_,_atq_)} - var - _atg_=caml_call2(Runtime_ocaml_Runtime[90],_atf_,_ate_), - _ath_=caml_call1(Runtime_ocaml_Runtime[68],_atg_), - _ati_=caml_call2(Runtime_ocaml_Runtime[126],_ath_,_atd_); - switch(menage[9][0]) - {case 0:var _atj_=0;break; - case 1:var _atj_=0;break; - case 2:var _atj_=0;break; - case 3:var _atj_=0;break; - case 4:var _atj_=1;break; - case 5:var _atj_=1;break; - case 6:var _atj_=0;break; - case 7:var _atj_=0;break; - default:var _atj_=0} - var _atk_=caml_call2(Runtime_ocaml_Runtime[83],_atj_,_ati_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zy_,_atk_)} - var - _as9_= - [0, - function(param) - {function _as__(param){return 1} - function _as$_(param) - {var _ata_=demandeur[5]; - switch(menage[9][0]) - {case 0:var _atb_=0;break; - case 1:var _atb_=0;break; - case 2:var _atb_=0;break; - case 3:var _atb_=0;break; - case 4:var _atb_=1;break; - case 5:var _atb_=1;break; - case 6:var _atb_=0;break; - case 7:var _atb_=0;break; - default:var _atb_=0} - var _atc_=caml_call2(Runtime_ocaml_Runtime[83],_atb_,_ata_); - return caml_call2(Runtime_ocaml_Runtime[29],_Zz_,_atc_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZA_,[0],_as$_,_as__)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZB_,_as9_,_as8_,_as7_)}, - _as5_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZC_,_as6_,_as4_,_as3_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZD_,_as2_,_as1_,_as0_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZE_,_asZ_,_asY_,_asX_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZF_,_asW_,_asV_,_asU_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZG_,_asT_,_asS_,_asR_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZH_,_asQ_,_asP_,_asO_)}], - _asd_=caml_call4(Runtime_ocaml_Runtime[63],_ZI_,_asc_,_asb_,_asa_)} - catch(_asN_) - {_asN_ = caml_wrap_exception(_asN_); - if(_asN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_YS_]; - throw _asN_} - var - eligibilite_allocation_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_ZJ_,Runtime_ocaml_Runtime[12],_asd_); - try - {var - _ase_= - function(param) - {var - _asM_= + (Runtime_ocaml_Runtime[99], + eligibilite_apl_dot_date_coura$0, + date_emmenagement), + _ac7_ = caml_call2 - (Runtime_ocaml_Runtime[86],eligibilite_dispositions_commu,_ZL_); - return caml_call2 - (Runtime_ocaml_Runtime[84], - _asM_, - beneficie_aide_personnalisee_l) - ?_ZM_ - :eligibilite_allocation_logemen$0?_ZN_:_ZO_}, - _asf_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_ZP_,1)}, - _asg_= - [0, - function(param) - {function _asj_(param){return _ZQ_} - function _ask_(param) - {var _asJ_=menage[2][3]; - switch(_asJ_[0]) - {case 0:var _asK_=0;break; - case 1:var _asK_=0;break; - case 2: - var - proprietaire=_asJ_[1], - _asL_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _asK_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asL_); - break; - case 3:var _asK_=0;break; - default:var _asK_=0} - return caml_call2(Runtime_ocaml_Runtime[29],_ZR_,_asK_)} - function _asl_(param) - {function _asH_(param){return _ZS_} - function _asI_(param) - {return caml_call2 - (Runtime_ocaml_Runtime[29],_ZT_,demandeur[4])} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZU_,[0],_asI_,_asH_)} - var - _asm_= - [0, - function(param) - {function _asn_(param){return _ZV_} - function _aso_(param) - {var _asv_=menage[2][3]; - switch(_asv_[0]) - {case 0:var _asw_=0;break; - case 1:var _asw_=0;break; - case 2: - var proprietaire=_asv_[1],_asz_=proprietaire[10][4]; - if(0 === _asz_[0]) - var - date_accord=_asz_[1], - _asA_=caml_call3(Runtime_ocaml_Runtime[57],2018,12,31), - _asB_= - caml_call2(Runtime_ocaml_Runtime[120],date_accord,_asA_); - else - var _asB_=0; - var - _asC_=caml_call3(Runtime_ocaml_Runtime[57],2019,12,31), - _asD_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asC_), - _asE_=caml_call2(Runtime_ocaml_Runtime[83],_asD_,_asB_), - _asF_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _asG_= - caml_call2 - (Runtime_ocaml_Runtime[125],proprietaire[10][2],_asF_), - _asw_=caml_call2(Runtime_ocaml_Runtime[84],_asG_,_asE_); - break; - case 3:var _asw_=0;break; - default:var _asw_=0} - switch(menage[9][0]) - {case 0:var _asx_=1;break; - case 1:var _asx_=1;break; - case 2:var _asx_=1;break; - case 3:var _asx_=1;break; - case 4:var _asx_=0;break; - case 5:var _asx_=0;break; - case 6:var _asx_=0;break; - case 7:var _asx_=0;break; - default:var _asx_=1} - var _asy_=caml_call2(Runtime_ocaml_Runtime[83],_asx_,_asw_); - return caml_call2(Runtime_ocaml_Runtime[29],_ZW_,_asy_)} - var - _asp_= - [0, - function(param) - {function _asq_(param){return _ZX_} - function _asr_(param) - {var _ass_=demandeur[6]; - switch(menage[9][0]) - {case 0:var _ast_=0;break; - case 1:var _ast_=0;break; - case 2:var _ast_=0;break; - case 3:var _ast_=0;break; - case 4:var _ast_=0;break; - case 5:var _ast_=0;break; - case 6:var _ast_=0;break; - case 7:var _ast_=0;break; - default:var _ast_=1} - var _asu_=caml_call2(Runtime_ocaml_Runtime[83],_ast_,_ass_); - return caml_call2(Runtime_ocaml_Runtime[29],_ZY_,_asu_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_ZZ_,[0],_asr_,_asq_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Z0_,_asp_,_aso_,_asn_)}, - _asl_]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Z1_,_asm_,_ask_,_asj_)}], - _ash_=caml_call4(Runtime_ocaml_Runtime[63],_Z2_,_asg_,_asf_,_ase_)} - catch(_asi_) - {_asi_ = caml_wrap_exception(_asi_); - if(_asi_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ZK_]; - throw _asi_} - var - eligibilite_l841_2= - caml_call3 - (Runtime_ocaml_Runtime[28],_Z3_,embed_type_eligibilite_allocat,_ash_); - return [0, - eligibilite_l841_2, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]} - function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee) - {var - menage=eligibilite_aide_personnalisee[1], - demandeur=eligibilite_aide_personnalisee[2], - date_courante=eligibilite_aide_personnalisee[3]; - function _aoT_(pret) - {try - {var - _aq4_=function(param){return 0}, - _aq5_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_Z5_,1)}, - _aq6_= - [0, - function(param) - {function _aq9_(param){throw Runtime_ocaml_Runtime[2]} - function _aq__(param){return 0} - var - _aq$_= - [0, - function(param) - {function _ara_(param){return 1} - function _arb_(param) - {switch(pret[1][0]) - {case 0:var _ark_=0;break; - case 1:var _ark_=1;break; - case 2:var _ark_=0;break; - case 3:var _ark_=0;break; - default:var _ark_=0} - switch(pret[1][0]) - {case 0:var _arl_=1;break; - case 1:var _arl_=0;break; - case 2:var _arl_=0;break; - case 3:var _arl_=0;break; - default:var _arl_=0} - var - _arm_=caml_call2(Runtime_ocaml_Runtime[84],_arl_,_ark_), - _arn_=0 === pret[3][0]?1:0, - _aro_=caml_call2(Runtime_ocaml_Runtime[83],_arn_,_arm_); - return caml_call2(Runtime_ocaml_Runtime[29],_Z6_,_aro_)} - var - _arc_= - [0, - function(param) - {function _ard_(param){return 1} - function _are_(param) - {switch(pret[1][0]) - {case 0:var _arf_=0;break; - case 1:var _arf_=0;break; - case 2:var _arf_=0;break; - case 3:var _arf_=1;break; - default:var _arf_=0} - switch(pret[1][0]) - {case 0:var _arg_=0;break; - case 1:var _arg_=0;break; - case 2:var _arg_=1;break; - case 3:var _arg_=0;break; - default:var _arg_=0} - var - _arh_=caml_call2(Runtime_ocaml_Runtime[84],_arg_,_arf_), - _ari_=0 === pret[3][0]?0:1, - _arj_=caml_call2(Runtime_ocaml_Runtime[83],_ari_,_arh_); - return caml_call2(Runtime_ocaml_Runtime[29],_Z7_,_arj_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_Z8_,[0],_are_,_ard_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Z9_,_arc_,_arb_,_ara_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_Z__,_aq$_,_aq__,_aq9_)}], - _aq7_=caml_call4(Runtime_ocaml_Runtime[63],_Z$_,_aq6_,_aq5_,_aq4_); - return _aq7_} - catch(_aq8_) - {_aq8_ = caml_wrap_exception(_aq8_); - if(_aq8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_Z4_]; - throw _aq8_}} - var - caracteristiques_pret_l831_1_1= - caml_call3 - (Runtime_ocaml_Runtime[28],__a_,Runtime_ocaml_Runtime[10],_aoT_); - function _aoU_(pret) - {try - {var - _aq0_=function(param){return 0}, - _aq1_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],__c_,1)}, - _aq2_=caml_call4(Runtime_ocaml_Runtime[63],__d_,[0],_aq1_,_aq0_); - return _aq2_} - catch(_aq3_) - {_aq3_ = caml_wrap_exception(_aq3_); - if(_aq3_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__b_]; - throw _aq3_}} - var - caracteristiques_pret_l831_1_6= - caml_call3 - (Runtime_ocaml_Runtime[28],__e_,Runtime_ocaml_Runtime[10],_aoU_); - try - {var - _aoV_=function(param){return menage}, - _aoW_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__g_,1)}, - _aoX_=caml_call4(Runtime_ocaml_Runtime[63],__h_,[0],_aoW_,_aoV_), - eligibilite_commune_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],__i_,embed_menage,_aoX_)} - catch(_aqZ_) - {_aqZ_ = caml_wrap_exception(_aqZ_); - if(_aqZ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__f_]; - throw _aqZ_} - try - {var - _aoY_=function(param){return demandeur}, - _aoZ_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__k_,1)}, - _ao0_=caml_call4(Runtime_ocaml_Runtime[63],__l_,[0],_aoZ_,_aoY_), - eligibilite_commune_dot_demand= - caml_call3(Runtime_ocaml_Runtime[28],__m_,embed_demandeur,_ao0_)} - catch(_aqY_) - {_aqY_ = caml_wrap_exception(_aqY_); - if(_aqY_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__j_]; - throw _aqY_} - try - {var - _ao1_=function(param){return date_courante}, - _ao2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__o_,1)}, - _ao3_=caml_call4(Runtime_ocaml_Runtime[63],__p_,[0],_ao2_,_ao1_), - eligibilite_commune_dot_date_c= - caml_call3 - (Runtime_ocaml_Runtime[28],__q_,Runtime_ocaml_Runtime[16],_ao3_)} - catch(_aqX_) - {_aqX_ = caml_wrap_exception(_aqX_); - if(_aqX_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__n_]; - throw _aqX_} - function eligibilite_commune_dot_condit(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_commune_dot_condit$0(param) - {throw Runtime_ocaml_Runtime[2]} - function eligibilite_commune_dot_date_e(param) - {function _aqT_(param) - {return caml_call3(Runtime_ocaml_Runtime[57],2021,5,1)} - function _aqU_(param) - {switch(menage[2][3][0]) - {case 0:var _aqW_=0;break; - case 1:var _aqW_=0;break; - case 2:var _aqW_=1;break; - case 3:var _aqW_=0;break; - default:var _aqW_=0} - return caml_call2(Runtime_ocaml_Runtime[29],__r_,_aqW_)} - var _aqV_=caml_call4(Runtime_ocaml_Runtime[63],__s_,[0],_aqU_,_aqT_); - return caml_call3 - (Runtime_ocaml_Runtime[28], - __t_, - Runtime_ocaml_Runtime[16], - _aqV_)} - var - _ao4_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],__u_,eligibilite_aides_personnelle_), - [0, - eligibilite_commune_dot_menage, - eligibilite_commune_dot_demand, - eligibilite_commune_dot_date_c, - eligibilite_commune_dot_condit, - eligibilite_commune_dot_condit$0, - eligibilite_commune_dot_date_e]), - result=caml_call2(Runtime_ocaml_Runtime[27],__v_,_ao4_), - eligibilite_commune_dot_eligib=result[2], - eligibilite_commune_dot_nombre=result[3], - eligibilite_commune_dot_coeffi=result[4]; - try - {var - _ao5_=function(param){return 0}, - _ao6_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__x_,1)}, - _ao7_= - [0, - function(param) - {function _aqN_(param){return 1} - function _aqO_(param) - {switch(menage[2][9][0]) - {case 0:var _aqP_=0;break; - case 1:var _aqP_=0;break; - default:var _aqP_=1} - var - _aqQ_=caml_call3(Runtime_ocaml_Runtime[57],2019,10,1), - _aqR_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_aqQ_), - _aqS_=caml_call2(Runtime_ocaml_Runtime[83],_aqR_,_aqP_); - return caml_call2(Runtime_ocaml_Runtime[29],__y_,_aqS_)} - return caml_call4(Runtime_ocaml_Runtime[63],__z_,[0],_aqO_,_aqN_)}], - _ao8_=caml_call4(Runtime_ocaml_Runtime[63],__A_,_ao7_,_ao6_,_ao5_)} - catch(_aqM_) - {_aqM_ = caml_wrap_exception(_aqM_); - if(_aqM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__w_]; - throw _aqM_} - var - logement_situe_commune_desequi= - caml_call3 - (Runtime_ocaml_Runtime[28],__B_,Runtime_ocaml_Runtime[12],_ao8_); - try - {var - _ao9_=function(param){return 0}, - _ao__= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__D_,1)}, - _ao$_= - function(param) - {function _aqi_(param){throw Runtime_ocaml_Runtime[2]} - function _aqj_(param){return 0} - var - _aqk_= - [0, - function(param) - {function _aql_(param){return 1} - function _aqm_(param) - {var _aqH_=menage[2][3]; - switch(_aqH_[0]) - {case 0:var _aqI_=0;break; - case 1:var _aqI_=0;break; - case 2: - var - propriete=_aqH_[1], - _aqJ_= - caml_call3 - (Runtime_ocaml_Runtime[28],__F_,embed_pret,propriete[10]), - _aqK_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __G_, - caracteristiques_pret_l831_1_1), - _aqJ_), - _aqL_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __H_, - Runtime_ocaml_Runtime[12], - _aqK_), - _aqI_=caml_call2(Runtime_ocaml_Runtime[27],__I_,_aqL_); - break; - case 3:var _aqI_=0;break; - default:var _aqI_=0} - return caml_call2(Runtime_ocaml_Runtime[29],__E_,_aqI_)} - var - _aqn_= - [0, - function(param) - {function _aqo_(param){return 1} - function _aqp_(param) - {var _aqD_=menage[2][3]; - switch(_aqD_[0]) - {case 0: - var location=_aqD_[1],_aqE_=location[1]; - switch(_aqE_[0]) - {case 0:var convention=_aqE_[1],_aqF_=convention[1];break; - case 1: - var convention$0=_aqE_[1],_aqF_=convention$0[1];break; - default:var _aqF_=0} - var _aqG_=_aqF_; - break; - case 1:var _aqG_=0;break; - case 2:var _aqG_=0;break; - case 3:var _aqG_=0;break; - default:var _aqG_=0} - return caml_call2(Runtime_ocaml_Runtime[29],__J_,_aqG_)} - var - _aqq_= - [0, - function(param) - {function _aqr_(param){return 1} - function _aqs_(param) - {var _aqy_=menage[2][3]; - switch(_aqy_[0]) - {case 0:var _aqz_=0;break; - case 1:var _aqz_=0;break; - case 2:var _aqz_=0;break; - case 3:var _aqz_=0;break; - default: - var - propriete=_aqy_[1], - _aqA_= - caml_call3 - (Runtime_ocaml_Runtime[28],__L_,embed_pret,propriete[10]), - _aqB_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - __M_, - caracteristiques_pret_l831_1_6), - _aqA_), - _aqC_= - caml_call3 - (Runtime_ocaml_Runtime[28], - __N_, - Runtime_ocaml_Runtime[12], - _aqB_), - _aqz_=caml_call2(Runtime_ocaml_Runtime[27],__O_,_aqC_)} - return caml_call2(Runtime_ocaml_Runtime[29],__K_,_aqz_)} - var - _aqt_= - [0, - function(param) - {function _aqu_(param){return 1} - function _aqv_(param) - {var _aqw_=menage[2][3]; - switch(_aqw_[0]) - {case 0:var _aqx_=0;break; - case 1: - var logement_foyer=_aqw_[1],_aqx_=logement_foyer[2];break; - case 2:var _aqx_=0;break; - case 3:var _aqx_=0;break; - default:var _aqx_=0} - return caml_call2(Runtime_ocaml_Runtime[29],__P_,_aqx_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],__Q_,[0],_aqv_,_aqu_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],__R_,_aqt_,_aqs_,_aqr_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],__S_,_aqq_,_aqp_,_aqo_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],__T_,_aqn_,_aqm_,_aql_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],__U_,_aqk_,_aqj_,_aqi_)}, - _apa_= - [0, - function(param) - {function _ap9_(param){return 1} - function _ap__(param) - {var _aqg_=menage[2][3]; - switch(_aqg_[0]) - {case 0:var _aqh_=0;break; - case 1:var location=_aqg_[1],_aqh_=location[3];break; - case 2:var _aqh_=0;break; - case 3:var _aqh_=0;break; - default:var _aqh_=0} - return caml_call2(Runtime_ocaml_Runtime[29],__V_,_aqh_)} - var - _ap$_= - [0, - function(param) - {function _aqa_(param){return 1} - function _aqb_(param) - {var _aqc_=menage[2][3]; - switch(_aqc_[0]) - {case 0:var _aqd_=0;break; - case 1:var location=_aqc_[1],_aqd_=location[4];break; - case 2:var _aqd_=0;break; - case 3:var _aqd_=0;break; - default:var _aqd_=0} - switch(menage[9][0]) - {case 0:var _aqe_=1;break; - case 1:var _aqe_=1;break; - case 2:var _aqe_=1;break; - case 3:var _aqe_=1;break; - case 4:var _aqe_=0;break; - case 5:var _aqe_=0;break; - case 6:var _aqe_=0;break; - case 7:var _aqe_=0;break; - default:var _aqe_=1} - var _aqf_=caml_call2(Runtime_ocaml_Runtime[83],_aqe_,_aqd_); - return caml_call2(Runtime_ocaml_Runtime[29],__W_,_aqf_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],__X_,[0],_aqb_,_aqa_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],__Y_,_ap$_,_ap__,_ap9_)}, - _ao$_], - _apb_=caml_call4(Runtime_ocaml_Runtime[63],__Z_,_apa_,_ao__,_ao9_)} - catch(_ap8_) - {_ap8_ = caml_wrap_exception(_ap8_); - if(_ap8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__C_]; - throw _ap8_} - var - condition_logement_bailleur= - caml_call3 - (Runtime_ocaml_Runtime[28],__0_,Runtime_ocaml_Runtime[12],_apb_); - try - {var - _apc_=function(param){return eligibilite_commune_dot_coeffi}, - _apd_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__2_,1)}, - _ape_=caml_call4(Runtime_ocaml_Runtime[63],__3_,[0],_apd_,_apc_)} - catch(_ap7_) - {_ap7_ = caml_wrap_exception(_ap7_); - if(_ap7_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__1_]; - throw _ap7_} - var - _apf_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],__4_,_apf_,_ape_); - try - {var - _apg_=function(param){return eligibilite_commune_dot_nombre}, - _aph_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],__6_,1)}, - _api_=caml_call4(Runtime_ocaml_Runtime[63],__7_,[0],_aph_,_apg_)} - catch(_ap6_) - {_ap6_ = caml_wrap_exception(_ap6_); - if(_ap6_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__5_]; - throw _ap6_} - var - nombre_personnes_a_charge_pris= - caml_call3 - (Runtime_ocaml_Runtime[28],__8_,Runtime_ocaml_Runtime[14],_api_); - try - {var - _apj_=function(param){return 0}, - _apk_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],____,1)}, - _apl_= - [0, - function(param) - {function _apE_(param){return 1} - function _apF_(param) - {return caml_call2(Runtime_ocaml_Runtime[29],__$_,1)} - var - _apG_= - [0, - function(param) - {function _apH_(param){return 0} - function _apI_(param) - {var _ap2_=menage[2][3]; - switch(_ap2_[0]) - {case 0:var _ap3_=0;break; - case 1:var _ap3_=0;break; - case 2: - var - propriete=_ap2_[1], - _ap4_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _ap3_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete[10][2],_ap4_); - break; - case 3:var _ap3_=0;break; - default: - var - propriete$0=_ap2_[1], - _ap5_=caml_call3(Runtime_ocaml_Runtime[57],2017,12,31), - _ap3_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete$0[10][2],_ap5_)} - return caml_call2(Runtime_ocaml_Runtime[29],_$a_,_ap3_)} - var - _apJ_= - [0, - function(param) - {function _apK_(param){return 1} - function _apL_(param) - {var _apM_=menage[2][3]; - switch(_apM_[0]) - {case 0:var _apN_=0;break; - case 1:var _apN_=0;break; - case 2: - var - propriete=_apM_[1], - _apO_=0 === propriete[9][0]?0:1, - _apP_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _apO_, - logement_situe_commune_desequi), - _apQ_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _apR_= - caml_call2 - (Runtime_ocaml_Runtime[115],propriete[10][2],_apQ_), - _apS_=caml_call2(Runtime_ocaml_Runtime[83],_apR_,_apP_), - _apT_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _apU_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete[10][2],_apT_), - _apN_=caml_call2(Runtime_ocaml_Runtime[83],_apU_,_apS_); - break; - case 3:var _apN_=0;break; - default: - var - propriete$0=_apM_[1], - _apV_=0 === propriete$0[9][0]?0:1, - _apW_= - caml_call2 - (Runtime_ocaml_Runtime[83], - _apV_, - logement_situe_commune_desequi), - _apX_=caml_call3(Runtime_ocaml_Runtime[57],2020,1,1), - _apY_= - caml_call2 - (Runtime_ocaml_Runtime[115],propriete$0[10][2],_apX_), - _apZ_=caml_call2(Runtime_ocaml_Runtime[83],_apY_,_apW_), - _ap0_=caml_call3(Runtime_ocaml_Runtime[57],2018,1,1), - _ap1_= - caml_call2 - (Runtime_ocaml_Runtime[130],propriete$0[10][2],_ap0_), - _apN_=caml_call2(Runtime_ocaml_Runtime[83],_ap1_,_apZ_)} - return caml_call2(Runtime_ocaml_Runtime[29],_$b_,_apN_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_$c_,[0],_apL_,_apK_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_$d_,_apJ_,_apI_,_apH_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_$e_,_apG_,_apF_,_apE_)}], - _apm_=caml_call4(Runtime_ocaml_Runtime[63],_$f_,_apl_,_apk_,_apj_)} - catch(_apD_) - {_apD_ = caml_wrap_exception(_apD_); - if(_apD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],__9_]; - throw _apD_} - var - condition_logement_pret= - caml_call3 - (Runtime_ocaml_Runtime[28],_$g_,Runtime_ocaml_Runtime[12],_apm_); - try - {var - _apn_=function(param){return 0}, - _apo_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$i_,1)}, - _app_= - [0, - function(param) - {function _aps_(param){return 1} - function _apt_(param) - {var - _apB_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_pret, - eligibilite_commune_dot_eligib), - _apC_= - caml_call2 - (Runtime_ocaml_Runtime[83], - condition_logement_bailleur, - _apB_); - return caml_call2(Runtime_ocaml_Runtime[29],_$j_,_apC_)} - var - _apu_= - [0, - function(param) - {function _apv_(param){return 0} - function _apw_(param) - {switch(menage[9][0]) - {case 0:var _apx_=0;break; - case 1:var _apx_=0;break; - case 2:var _apx_=0;break; - case 3:var _apx_=0;break; - case 4:var _apx_=0;break; - case 5:var _apx_=0;break; - case 6:var _apx_=0;break; - case 7:var _apx_=1;break; - default:var _apx_=0} - var - _apy_=caml_call3(Runtime_ocaml_Runtime[57],2021,1,1), - _apz_= - caml_call2(Runtime_ocaml_Runtime[130],date_courante,_apy_), - _apA_=caml_call2(Runtime_ocaml_Runtime[83],_apz_,_apx_); - return caml_call2(Runtime_ocaml_Runtime[29],_$k_,_apA_)} - return caml_call4 - (Runtime_ocaml_Runtime[63],_$l_,[0],_apw_,_apv_)}]; - return caml_call4 - (Runtime_ocaml_Runtime[63],_$m_,_apu_,_apt_,_aps_)}], - _apq_=caml_call4(Runtime_ocaml_Runtime[63],_$n_,_app_,_apo_,_apn_)} - catch(_apr_) - {_apr_ = caml_wrap_exception(_apr_); - if(_apr_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$h_]; - throw _apr_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_$o_,Runtime_ocaml_Runtime[12],_apq_); - return [0, - date_courante, - eligibilite, - nombre_personnes_a_charge_pris, - coefficents_enfants_garde_alte]} - function calculette_aides_au_logement(calculette_aides_au_logement_i) - {var - menage=calculette_aides_au_logement_i[1], - demandeur=calculette_aides_au_logement_i[2], - date_courante=calculette_aides_au_logement_i[3], - ressources_menage_prises_en_co=calculette_aides_au_logement_i[4]; - try - {var - _amO_=function(param){return date_courante}, - _amP_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$q_,1)}, - _amQ_=caml_call4(Runtime_ocaml_Runtime[63],_$r_,[0],_amP_,_amO_), - eligibilite_allocation_logemen$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_$s_,Runtime_ocaml_Runtime[16],_amQ_)} - catch(_aoS_) - {_aoS_ = caml_wrap_exception(_aoS_); - if(_aoS_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$p_]; - throw _aoS_} - try - {var - _amR_=function(param){return menage}, - _amS_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$u_,1)}, - _amT_=caml_call4(Runtime_ocaml_Runtime[63],_$v_,[0],_amS_,_amR_), - eligibilite_allocation_logemen$1= - caml_call3(Runtime_ocaml_Runtime[28],_$w_,embed_menage,_amT_)} - catch(_aoR_) - {_aoR_ = caml_wrap_exception(_aoR_); - if(_aoR_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$t_]; - throw _aoR_} - try - {var - _amU_=function(param){return demandeur}, - _amV_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$y_,1)}, - _amW_=caml_call4(Runtime_ocaml_Runtime[63],_$z_,[0],_amV_,_amU_), - eligibilite_allocation_logemen$2= - caml_call3(Runtime_ocaml_Runtime[28],_$A_,embed_demandeur,_amW_)} - catch(_aoQ_) - {_aoQ_ = caml_wrap_exception(_aoQ_); - if(_aoQ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$x_]; - throw _aoQ_} - try - {var - _amX_=function(param){return 0}, - _amY_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$C_,1)}, - _amZ_=caml_call4(Runtime_ocaml_Runtime[63],_$D_,[0],_amY_,_amX_), - eligibilite_allocation_logemen$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_$E_,Runtime_ocaml_Runtime[12],_amZ_)} - catch(_aoP_) - {_aoP_ = caml_wrap_exception(_aoP_); - if(_aoP_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$B_]; - throw _aoP_} - var - _am0_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_$F_,eligibilite_allocation_logemen), - [0, - eligibilite_allocation_logemen$0, - eligibilite_allocation_logemen$1, - eligibilite_allocation_logemen$2, - eligibilite_allocation_logemen$3]), - result=caml_call2(Runtime_ocaml_Runtime[27],_$G_,_am0_), - eligibilite_allocation_logemen$4=result[1], - eligibilite_allocation_logemen$5=result[2]; - try - {var - _am1_=function(param){return menage}, - _am2_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$I_,1)}, - _am3_=caml_call4(Runtime_ocaml_Runtime[63],_$J_,[0],_am2_,_am1_), - eligibilite_aide_personnalisee$0= - caml_call3(Runtime_ocaml_Runtime[28],_$K_,embed_menage,_am3_)} - catch(_aoO_) - {_aoO_ = caml_wrap_exception(_aoO_); - if(_aoO_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$H_]; - throw _aoO_} - try - {var - _am4_=function(param){return demandeur}, - _am5_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$M_,1)}, - _am6_=caml_call4(Runtime_ocaml_Runtime[63],_$N_,[0],_am5_,_am4_), - eligibilite_aide_personnalisee$1= - caml_call3(Runtime_ocaml_Runtime[28],_$O_,embed_demandeur,_am6_)} - catch(_aoN_) - {_aoN_ = caml_wrap_exception(_aoN_); - if(_aoN_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$L_]; - throw _aoN_} - try - {var - _am7_=function(param){return date_courante}, - _am8_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$Q_,1)}, - _am9_=caml_call4(Runtime_ocaml_Runtime[63],_$R_,[0],_am8_,_am7_), - eligibilite_aide_personnalisee$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_$S_,Runtime_ocaml_Runtime[16],_am9_)} - catch(_aoM_) - {_aoM_ = caml_wrap_exception(_aoM_); - if(_aoM_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$P_]; - throw _aoM_} - var - _am__= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_$T_,eligibilite_aide_personnalisee), - [0, - eligibilite_aide_personnalisee$0, - eligibilite_aide_personnalisee$1, - eligibilite_aide_personnalisee$2]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_$U_,_am__), - eligibilite_aide_personnalisee$3=result$0[2], - eligibilite_aide_personnalisee$4=result$0[3], - eligibilite_aide_personnalisee$5=result$0[4]; - try - {var - _am$_=function(param){return menage[2][3]}, - _ana_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$W_,1)}, - _anb_=caml_call4(Runtime_ocaml_Runtime[63],_$X_,[0],_ana_,_am$_), - calcul_allocation_logement_dot= - caml_call3 - (Runtime_ocaml_Runtime[28],_$Y_,embed_mode_occupation,_anb_)} - catch(_aoL_) - {_aoL_ = caml_wrap_exception(_aoL_); - if(_aoL_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$V_]; - throw _aoL_} - try - {var - _anc_=function(param){return ressources_menage_prises_en_co}, - _and_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$0_,1)}, - _ane_=caml_call4(Runtime_ocaml_Runtime[63],_$1_,[0],_and_,_anc_), - calcul_allocation_logement_dot$0= - caml_call3 - (Runtime_ocaml_Runtime[28],_$2_,Runtime_ocaml_Runtime[13],_ane_)} - catch(_aoK_) - {_aoK_ = caml_wrap_exception(_aoK_); - if(_aoK_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$Z_]; - throw _aoK_} - try - {var - _anf_=function(param){return menage[5]}, - _ang_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$4_,1)}, - _anh_=caml_call4(Runtime_ocaml_Runtime[63],_$5_,[0],_ang_,_anf_), - calcul_allocation_logement_dot$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_$6_,embed_situation_familiale,_anh_)} - catch(_aoJ_) - {_aoJ_ = caml_wrap_exception(_aoJ_); - if(_aoJ_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$3_]; - throw _aoJ_} - try - {var - _ani_=function(param){return eligibilite_allocation_logemen$5}, - _anj_= - function(param){return caml_call2(Runtime_ocaml_Runtime[29],_$8_,1)}, - _ank_=caml_call4(Runtime_ocaml_Runtime[63],_$9_,[0],_anj_,_ani_), - calcul_allocation_logement_dot$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_$__,Runtime_ocaml_Runtime[14],_ank_)} - catch(_aoI_) - {_aoI_ = caml_wrap_exception(_aoI_); - if(_aoI_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$7_]; - throw _aoI_} - try - {var - _anl_=function(param){return menage[2][9]}, - _anm_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaa_,1)}, - _ann_=caml_call4(Runtime_ocaml_Runtime[63],_aab_,[0],_anm_,_anl_), - calcul_allocation_logement_dot$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_aac_,embed_zone_d_habitation,_ann_)} - catch(_aoH_) - {_aoH_ = caml_wrap_exception(_aoH_); - if(_aoH_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_$$_]; - throw _aoH_} - try - {var - _ano_=function(param){return date_courante}, - _anp_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aae_,1)}, - _anq_=caml_call4(Runtime_ocaml_Runtime[63],_aaf_,[0],_anp_,_ano_), - calcul_allocation_logement_dot$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_aag_,Runtime_ocaml_Runtime[16],_anq_)} - catch(_aoG_) - {_aoG_ = caml_wrap_exception(_aoG_); - if(_aoG_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aad_]; - throw _aoG_} - try - {var - _anr_= - function(param) - {switch(eligibilite_allocation_logemen$4[0]) - {case 0:return _aai_;case 1:return _aaj_;default:return _aak_}}, - _ans_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aal_,1)}, - _ant_=caml_call4(Runtime_ocaml_Runtime[63],_aam_,[0],_ans_,_anr_), - calcul_allocation_logement_dot$5= - caml_call3 - (Runtime_ocaml_Runtime[28], - _aan_, - embed_type_aides_personnelle_l, - _ant_)} - catch(_aoF_) - {_aoF_ = caml_wrap_exception(_aoF_); - if(_aoF_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aah_]; - throw _aoF_} - try - {var - _anu_=function(param){return menage[9]}, - _anv_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aap_,1)}, - _anw_=caml_call4(Runtime_ocaml_Runtime[63],_aaq_,[0],_anv_,_anu_), - calcul_allocation_logement_dot$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_aar_,embed_collectivite$0,_anw_)} - catch(_aoE_) - {_aoE_ = caml_wrap_exception(_aoE_); - if(_aoE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aao_]; - throw _aoE_} - var - _anx_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_aas_,calcul_allocation_logement), - [0, - calcul_allocation_logement_dot, - calcul_allocation_logement_dot$0, - calcul_allocation_logement_dot$1, - calcul_allocation_logement_dot$2, - calcul_allocation_logement_dot$3, - calcul_allocation_logement_dot$4, - calcul_allocation_logement_dot$5, - calcul_allocation_logement_dot$6]), - result$1=caml_call2(Runtime_ocaml_Runtime[27],_aat_,_anx_), - calcul_allocation_logement_dot$7=result$1[1], - calcul_allocation_logement_dot$8=result$1[2]; - try - {var - _any_=function(param){return menage[2][3]}, - _anz_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aav_,1)}, - _anA_=caml_call4(Runtime_ocaml_Runtime[63],_aaw_,[0],_anz_,_any_), - calcul_aide_personnalisee_loge= - caml_call3 - (Runtime_ocaml_Runtime[28],_aax_,embed_mode_occupation,_anA_)} - catch(_aoD_) - {_aoD_ = caml_wrap_exception(_aoD_); - if(_aoD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aau_]; - throw _aoD_} - try - {var - _anB_=function(param){return _aaz_}, - _anC_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaA_,1)}, - _anD_=caml_call4(Runtime_ocaml_Runtime[63],_aaB_,[0],_anC_,_anB_), - calcul_aide_personnalisee_loge$0= - caml_call3 - (Runtime_ocaml_Runtime[28], - _aaC_, - embed_type_aides_personnelle_l, - _anD_)} - catch(_aoC_) - {_aoC_ = caml_wrap_exception(_aoC_); - if(_aoC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aay_]; - throw _aoC_} - try - {var - _anE_=function(param){return ressources_menage_prises_en_co}, - _anF_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaE_,1)}, - _anG_=caml_call4(Runtime_ocaml_Runtime[63],_aaF_,[0],_anF_,_anE_), - calcul_aide_personnalisee_loge$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_aaG_,Runtime_ocaml_Runtime[13],_anG_)} - catch(_aoB_) - {_aoB_ = caml_wrap_exception(_aoB_); - if(_aoB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaD_]; - throw _aoB_} - try - {var - _anH_=function(param){return menage[5]}, - _anI_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaI_,1)}, - _anJ_=caml_call4(Runtime_ocaml_Runtime[63],_aaJ_,[0],_anI_,_anH_), - calcul_aide_personnalisee_loge$3= - caml_call3 - (Runtime_ocaml_Runtime[28],_aaK_,embed_situation_familiale,_anJ_)} - catch(_aoA_) - {_aoA_ = caml_wrap_exception(_aoA_); - if(_aoA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaH_]; - throw _aoA_} - try - {var - _anK_=function(param){return eligibilite_aide_personnalisee$4}, - _anL_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaM_,1)}, - _anM_=caml_call4(Runtime_ocaml_Runtime[63],_aaN_,[0],_anL_,_anK_), - calcul_aide_personnalisee_loge$4= - caml_call3 - (Runtime_ocaml_Runtime[28],_aaO_,Runtime_ocaml_Runtime[14],_anM_)} - catch(_aoz_) - {_aoz_ = caml_wrap_exception(_aoz_); - if(_aoz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaL_]; - throw _aoz_} - try - {var - _anN_=function(param){return menage[2][9]}, - _anO_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaQ_,1)}, - _anP_=caml_call4(Runtime_ocaml_Runtime[63],_aaR_,[0],_anO_,_anN_), - calcul_aide_personnalisee_loge$5= - caml_call3 - (Runtime_ocaml_Runtime[28],_aaS_,embed_zone_d_habitation,_anP_)} - catch(_aoy_) - {_aoy_ = caml_wrap_exception(_aoy_); - if(_aoy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaP_]; - throw _aoy_} - try - {var - _anQ_=function(param){return date_courante}, - _anR_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaU_,1)}, - _anS_=caml_call4(Runtime_ocaml_Runtime[63],_aaV_,[0],_anR_,_anQ_), - calcul_aide_personnalisee_loge$6= - caml_call3 - (Runtime_ocaml_Runtime[28],_aaW_,Runtime_ocaml_Runtime[16],_anS_)} - catch(_aox_) - {_aox_ = caml_wrap_exception(_aox_); - if(_aox_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaT_]; - throw _aox_} - try - {var - _anT_=function(param){return menage[9]}, - _anU_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aaY_,1)}, - _anV_=caml_call4(Runtime_ocaml_Runtime[63],_aaZ_,[0],_anU_,_anT_), - calcul_aide_personnalisee_loge$7= - caml_call3 - (Runtime_ocaml_Runtime[28],_aa0_,embed_collectivite$0,_anV_)} - catch(_aow_) - {_aow_ = caml_wrap_exception(_aow_); - if(_aow_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aaX_]; - throw _aow_} - var - _anW_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_aa1_,calcul_aide_personnalisee_loge$2), - [0, - calcul_aide_personnalisee_loge, - calcul_aide_personnalisee_loge$0, - calcul_aide_personnalisee_loge$1, - calcul_aide_personnalisee_loge$3, - calcul_aide_personnalisee_loge$4, - calcul_aide_personnalisee_loge$5, - calcul_aide_personnalisee_loge$6, - calcul_aide_personnalisee_loge$7]), - result$2=caml_call2(Runtime_ocaml_Runtime[27],_aa2_,_anW_), - calcul_aide_personnalisee_loge$8=result$2[1], - calcul_aide_personnalisee_loge$9=result$2[2]; - try - {var - _anX_=function(param){return eligibilite_aide_personnalisee$5}, - _anY_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aa4_,1)}, - _anZ_=caml_call4(Runtime_ocaml_Runtime[63],_aa5_,[0],_anY_,_anX_)} - catch(_aov_) - {_aov_ = caml_wrap_exception(_aov_); - if(_aov_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aa3_]; - throw _aov_} - var - _an0_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_aa6_,_an0_,_anZ_); - try - {var - _an1_= - function(param) - {switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _aou_=0;break; - case 1:var _aou_=1;break; - default:var _aou_=1} - return caml_call2 - (Runtime_ocaml_Runtime[84], - eligibilite_aide_personnalisee$3, - _aou_)}, - _an2_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aa8_,1)}, - _an3_=caml_call4(Runtime_ocaml_Runtime[63],_aa9_,[0],_an2_,_an1_)} - catch(_aot_) - {_aot_ = caml_wrap_exception(_aot_); - if(_aot_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aa7_]; - throw _aot_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_aa__,Runtime_ocaml_Runtime[12],_an3_); - function _an4_(aide_finale) - {try - {var - _aoh_= - function(param) - {var - _aol_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _aba_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aom_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _abb_, - calcul_aide_personnalisee_loge$9), - _aol_), - _aon_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abc_, - Runtime_ocaml_Runtime[13], - _aom_), - aide_finale_apl= - caml_call2(Runtime_ocaml_Runtime[27],_abd_,_aon_), - _aoo_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abe_, - Runtime_ocaml_Runtime[13], - aide_finale), - _aop_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _abf_, - calcul_allocation_logement_dot$8), - _aoo_), - _aoq_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abg_, - Runtime_ocaml_Runtime[13], - _aop_), - aide_finale_al= - caml_call2(Runtime_ocaml_Runtime[27],_abh_,_aoq_); - if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) - return aide_finale; - switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _aor_=1;break; - case 1:var _aor_=0;break; - default:var _aor_=0} - var _aos_=caml_call1(Runtime_ocaml_Runtime[67],_aor_); - return caml_call2 - (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _aos_) - ?caml_call2 - (Runtime_ocaml_Runtime[123],aide_finale_apl,aide_finale_al) - ?aide_finale_apl - :aide_finale_al - :eligibilite_aide_personnalisee$3 - ?aide_finale_apl - :aide_finale_al}, - _aoi_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abi_,1)}, - _aoj_=caml_call4(Runtime_ocaml_Runtime[63],_abj_,[0],_aoi_,_aoh_); - return _aoj_} - catch(_aok_) - {_aok_ = caml_wrap_exception(_aok_); - if(_aok_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_aa$_]; - throw _aok_}} - var - traitement_aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_abk_,Runtime_ocaml_Runtime[10],_an4_); - try - {var - _an5_= - function(param) - {if(caml_call1(Runtime_ocaml_Runtime[67],eligibilite)) - return caml_call1(Runtime_ocaml_Runtime[31],cst_0$423); - switch(eligibilite_allocation_logemen$4[0]) - {case 0:var _an9_=1;break; - case 1:var _an9_=0;break; - default:var _an9_=0} - var _an__=caml_call1(Runtime_ocaml_Runtime[67],_an9_); - if - (! + (Runtime_ocaml_Runtime[119], + _ac6_, + delai_apres_emmenagement_l823_), + _ac8_ = caml_call2 (Runtime_ocaml_Runtime[83], - eligibilite_aide_personnalisee$3, - _an__)) - return eligibilite_aide_personnalisee$3 - ?calcul_aide_personnalisee_loge$8 - :calcul_allocation_logement_dot$7; - var - _an$_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abm_, - Runtime_ocaml_Runtime[13], - calcul_allocation_logement_dot$7), - _aoa_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _abn_, - calcul_allocation_logement_dot$8), - _an$_), - _aob_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abo_, - Runtime_ocaml_Runtime[13], - _aoa_), - _aoc_=caml_call2(Runtime_ocaml_Runtime[27],_abp_,_aob_), - _aod_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abq_, - Runtime_ocaml_Runtime[13], - calcul_aide_personnalisee_loge$8), - _aoe_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _abr_, - calcul_aide_personnalisee_loge$9), - _aod_), - _aof_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _abs_, - Runtime_ocaml_Runtime[13], - _aoe_), - _aog_=caml_call2(Runtime_ocaml_Runtime[27],_abt_,_aof_); - return caml_call2(Runtime_ocaml_Runtime[123],_aog_,_aoc_) - ?calcul_aide_personnalisee_loge$8 - :calcul_allocation_logement_dot$7}, - _an6_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abu_,1)}, - _an7_=caml_call4(Runtime_ocaml_Runtime[63],_abv_,[0],_an6_,_an5_)} - catch(_an8_) - {_an8_ = caml_wrap_exception(_an8_); - if(_an8_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abl_]; - throw _an8_} - var - aide_finale_formule= - caml_call3 - (Runtime_ocaml_Runtime[28],_abw_,Runtime_ocaml_Runtime[13],_an7_); - return [0, - eligibilite, - aide_finale_formule, - traitement_aide_finale, - coefficents_enfants_garde_alte]} - function calculette_aides_au_logement_g(calculette_aides_au_logement_g) - {var - menage=calculette_aides_au_logement_g[1], - demandeur=calculette_aides_au_logement_g[2], - date_courante=calculette_aides_au_logement_g[3], - ressources_menage_prises_en_co=calculette_aides_au_logement_g[4]; - try - {var - _alE_= - function(param) - {var - _amF_=menage[9], - _amG_=menage[8], - _amH_=menage[7], - _amI_=menage[6], - _amJ_=menage[5], - _amK_=menage[4], - _amL_=menage[3]; - function _amM_(personne_a_charge) - {if(0 !== personne_a_charge[0])return 1; - var enfant=personne_a_charge[1]; - return 0 === enfant[8][0]?1:0} - var _amN_=caml_call2(Runtime_ocaml_Runtime[90],_amM_,_amL_); - return [0, - menage[1], - menage[2], - _amN_, - _amK_, - _amJ_, - _amI_, - _amH_, - _amG_, - _amF_]}, - _alF_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aby_,1)}, - _alG_=caml_call4(Runtime_ocaml_Runtime[63],_abz_,[0],_alF_,_alE_)} - catch(_amE_) - {_amE_ = caml_wrap_exception(_amE_); - if(_amE_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abx_]; - throw _amE_} - var - menage_sans_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_abA_,embed_menage,_alG_); - try - {var - _alH_=function(param){return menage}, - _alI_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abC_,1)}, - _alJ_=caml_call4(Runtime_ocaml_Runtime[63],_abD_,[0],_alI_,_alH_), - calculette_dot_menage= - caml_call3(Runtime_ocaml_Runtime[28],_abE_,embed_menage,_alJ_)} - catch(_amD_) - {_amD_ = caml_wrap_exception(_amD_); - if(_amD_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abB_]; - throw _amD_} - try - {var - _alK_=function(param){return demandeur}, - _alL_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abG_,1)}, - _alM_=caml_call4(Runtime_ocaml_Runtime[63],_abH_,[0],_alL_,_alK_), - calculette_dot_demandeur= - caml_call3(Runtime_ocaml_Runtime[28],_abI_,embed_demandeur,_alM_)} - catch(_amC_) - {_amC_ = caml_wrap_exception(_amC_); - if(_amC_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abF_]; - throw _amC_} - try - {var - _alN_=function(param){return date_courante}, - _alO_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abK_,1)}, - _alP_=caml_call4(Runtime_ocaml_Runtime[63],_abL_,[0],_alO_,_alN_), - calculette_dot_date_courante= - caml_call3 - (Runtime_ocaml_Runtime[28],_abM_,Runtime_ocaml_Runtime[16],_alP_)} - catch(_amB_) - {_amB_ = caml_wrap_exception(_amB_); - if(_amB_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abJ_]; - throw _amB_} - try - {var - _alQ_=function(param){return ressources_menage_prises_en_co}, - _alR_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abO_,1)}, - _alS_=caml_call4(Runtime_ocaml_Runtime[63],_abP_,[0],_alR_,_alQ_), - calculette_dot_ressources_mena= - caml_call3 - (Runtime_ocaml_Runtime[28],_abQ_,Runtime_ocaml_Runtime[13],_alS_)} - catch(_amA_) - {_amA_ = caml_wrap_exception(_amA_); - if(_amA_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abN_]; - throw _amA_} - var - _alT_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_abR_,calculette_aides_au_logement), - [0, - calculette_dot_menage, - calculette_dot_demandeur, - calculette_dot_date_courante, - calculette_dot_ressources_mena]), - result=caml_call2(Runtime_ocaml_Runtime[27],_abS_,_alT_), - calculette_dot_eligibilite=result[1], - calculette_dot_aide_finale_for=result[2], - calculette_dot_traitement_aide=result[3], - calculette_dot_coefficents_enf=result[4]; - try - {var - _alU_=function(param){return menage_sans_enfants_garde_alte}, - _alV_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abU_,1)}, - _alW_=caml_call4(Runtime_ocaml_Runtime[63],_abV_,[0],_alV_,_alU_), - calculette_sans_garde_alternee= - caml_call3(Runtime_ocaml_Runtime[28],_abW_,embed_menage,_alW_)} - catch(_amz_) - {_amz_ = caml_wrap_exception(_amz_); - if(_amz_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abT_]; - throw _amz_} - try - {var - _alX_=function(param){return demandeur}, - _alY_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_abY_,1)}, - _alZ_=caml_call4(Runtime_ocaml_Runtime[63],_abZ_,[0],_alY_,_alX_), - calculette_sans_garde_alternee$0= - caml_call3(Runtime_ocaml_Runtime[28],_ab0_,embed_demandeur,_alZ_)} - catch(_amy_) - {_amy_ = caml_wrap_exception(_amy_); - if(_amy_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_abX_]; - throw _amy_} - try - {var - _al0_=function(param){return date_courante}, - _al1_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ab2_,1)}, - _al2_=caml_call4(Runtime_ocaml_Runtime[63],_ab3_,[0],_al1_,_al0_), - calculette_sans_garde_alternee$1= - caml_call3 - (Runtime_ocaml_Runtime[28],_ab4_,Runtime_ocaml_Runtime[16],_al2_)} - catch(_amx_) - {_amx_ = caml_wrap_exception(_amx_); - if(_amx_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ab1_]; - throw _amx_} - try - {var - _al3_=function(param){return ressources_menage_prises_en_co}, - _al4_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ab6_,1)}, - _al5_=caml_call4(Runtime_ocaml_Runtime[63],_ab7_,[0],_al4_,_al3_), - calculette_sans_garde_alternee$2= - caml_call3 - (Runtime_ocaml_Runtime[28],_ab8_,Runtime_ocaml_Runtime[13],_al5_)} - catch(_amw_) - {_amw_ = caml_wrap_exception(_amw_); - if(_amw_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ab5_]; - throw _amw_} - var - _al6_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26],_ab9_,calculette_aides_au_logement), - [0, - calculette_sans_garde_alternee, - calculette_sans_garde_alternee$0, - calculette_sans_garde_alternee$1, - calculette_sans_garde_alternee$2]), - result$0=caml_call2(Runtime_ocaml_Runtime[27],_ab__,_al6_), - calculette_sans_garde_alternee$3=result$0[2]; - try - {var - _al7_=function(param){return calculette_dot_eligibilite}, - _al8_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_aca_,1)}, - _al9_=caml_call4(Runtime_ocaml_Runtime[63],_acb_,[0],_al8_,_al7_)} - catch(_amv_) - {_amv_ = caml_wrap_exception(_amv_); - if(_amv_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ab$_]; - throw _amv_} - var - eligibilite= - caml_call3 - (Runtime_ocaml_Runtime[28],_acc_,Runtime_ocaml_Runtime[12],_al9_); - try - {var - _al__=function(param){return calculette_dot_coefficents_enf}, - _al$_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_ace_,1)}, - _ama_=caml_call4(Runtime_ocaml_Runtime[63],_acf_,[0],_al$_,_al__)} - catch(_amu_) - {_amu_ = caml_wrap_exception(_amu_); - if(_amu_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_acd_]; - throw _amu_} - var - _amb_=caml_call1(Runtime_ocaml_Runtime[18],Runtime_ocaml_Runtime[15]), - coefficents_enfants_garde_alte= - caml_call3(Runtime_ocaml_Runtime[28],_acg_,_amb_,_ama_); - try - {var - _amc_= - function(param) - {var - _amg_=caml_call1(Runtime_ocaml_Runtime[46],cst_0$424), - _amh_= - caml_call1 - (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte); - if(caml_call2(Runtime_ocaml_Runtime[86],_amh_,_amg_)) - var _ami_=caml_call1(Runtime_ocaml_Runtime[31],cst_0$425); - else - var - _amn_= - caml_call1 - (Runtime_ocaml_Runtime[68],coefficents_enfants_garde_alte), - _amo_=caml_call1(Runtime_ocaml_Runtime[69],_amn_), - _amp_=caml_call1(Runtime_ocaml_Runtime[39],cst_0$426), - _amq_= - function(sum1,sum2) - {return caml_call2(Runtime_ocaml_Runtime[92],sum1,sum2)}, - _amr_= - caml_call3 - (Runtime_ocaml_Runtime[88], - _amq_, - _amp_, - coefficents_enfants_garde_alte), - _ams_=caml_call2(Runtime_ocaml_Runtime[107],_amr_,_amo_), - _amt_= - caml_call2 - (Runtime_ocaml_Runtime[98], - calculette_dot_aide_finale_for, - calculette_sans_garde_alternee$3), - _ami_=caml_call2(Runtime_ocaml_Runtime[104],_amt_,_ams_); - var - _amj_= + condition_periode_demenagement, + _ac7_), + _ac9_ = caml_call2 - (Runtime_ocaml_Runtime[93], - calculette_sans_garde_alternee$3, - _ami_), - _amk_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _aci_, - Runtime_ocaml_Runtime[13], - _amj_), - _aml_= - caml_call1 - (caml_call2 - (Runtime_ocaml_Runtime[26], - _acj_, - calculette_dot_traitement_aide), - _amk_), - _amm_= - caml_call3 - (Runtime_ocaml_Runtime[28], - _ack_, - Runtime_ocaml_Runtime[13], - _aml_); - return caml_call2(Runtime_ocaml_Runtime[27],_acl_,_amm_)}, - _amd_= - function(param) - {return caml_call2(Runtime_ocaml_Runtime[29],_acm_,1)}, - _ame_=caml_call4(Runtime_ocaml_Runtime[63],_acn_,[0],_amd_,_amc_)} - catch(_amf_) - {_amf_ = caml_wrap_exception(_amf_); - if(_amf_ === Runtime_ocaml_Runtime[2]) - throw [0,Runtime_ocaml_Runtime[8],_ach_]; - throw _amf_} - var - aide_finale= - caml_call3 - (Runtime_ocaml_Runtime[28],_aco_,Runtime_ocaml_Runtime[13],_ame_); - return [0,eligibilite,aide_finale]} + (Runtime_ocaml_Runtime[83], condition_rang_enfant, _ac8_), + _ac__ = + caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_apl_dot_eligibilit, + _ac9_); + return caml_call2(Runtime_ocaml_Runtime[29], _Lf_, _ac__); + } + var + _acL_ = + [0, + function(param){ + function _acM_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _acN_(param){return 0;} + var + _acO_ = + [0, + function(param){ + function _acP_(param){return 0;} + function _acQ_(param){ + switch(menage[9][0]){ + case 0: + var _ac5_ = 0; break; + case 1: + var _ac5_ = 0; break; + case 2: + var _ac5_ = 0; break; + case 3: + var _ac5_ = 0; break; + case 4: + var _ac5_ = 0; break; + case 5: + var _ac5_ = 0; break; + case 6: + var _ac5_ = 0; break; + case 7: + var _ac5_ = 0; break; + default: var _ac5_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Lg_, _ac5_); + } + var + _acR_ = + [0, + function(param){ + function _acS_(param){return 0;} + function _acT_(param){ + switch(menage[9][0]){ + case 0: + var _ac1_ = 0; break; + case 1: + var _ac1_ = 0; break; + case 2: + var _ac1_ = 0; break; + case 3: + var _ac1_ = 0; break; + case 4: + var _ac1_ = 0; break; + case 5: + var _ac1_ = 0; break; + case 6: + var _ac1_ = 0; break; + case 7: + var _ac1_ = 1; break; + default: var _ac1_ = 0; + } + var + _ac2_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _ac3_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _ac2_), + _ac4_ = caml_call2(Runtime_ocaml_Runtime[83], _ac3_, _ac1_); + return caml_call2(Runtime_ocaml_Runtime[29], _Lh_, _ac4_); + } + var + _acU_ = + [0, + function(param){ + function _acV_(param){return 0;} + function _acW_(param){ + switch(menage[9][0]){ + case 0: + var _acX_ = 0; break; + case 1: + var _acX_ = 0; break; + case 2: + var _acX_ = 0; break; + case 3: + var _acX_ = 0; break; + case 4: + var _acX_ = 0; break; + case 5: + var _acX_ = 0; break; + case 6: + var _acX_ = 0; break; + case 7: + var _acX_ = 0; break; + default: var _acX_ = 1; + } + var + _acY_ = caml_call3(Runtime_ocaml_Runtime[57], 2022, 1, 1), + _acZ_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _acY_), + _ac0_ = caml_call2(Runtime_ocaml_Runtime[83], _acZ_, _acX_); + return caml_call2(Runtime_ocaml_Runtime[29], _Li_, _ac0_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Lj_, [0], _acW_, _acV_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Lk_, _acU_, _acT_, _acS_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ll_, _acR_, _acQ_, _acP_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Lm_, _acO_, _acN_, _acM_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ln_, _acL_, _acK_, _acJ_); + }], + _acC_ = caml_call4(Runtime_ocaml_Runtime[63], _Lo_, _acB_, _acA_, _acz_); + } + catch(_acI_){ + var _acy_ = caml_wrap_exception(_acI_); + if(_acy_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ld_], 1); + throw caml_maybe_attach_backtrace(_acy_, 0); + } + caml_call3 + (Runtime_ocaml_Runtime[28], _Lp_, Runtime_ocaml_Runtime[12], _acC_); + try{ + var + _acE_ = + function(param){ + return caml_call2 + (Runtime_ocaml_Runtime[118], + depenses_justifiees_reellement, + plafond_d823_22) + ? depenses_justifiees_reellement + : plafond_d823_22; + }, + _acF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lr_, 1); + }, + _acG_ = caml_call4(Runtime_ocaml_Runtime[63], _Ls_, [0], _acF_, _acE_); + } + catch(_acH_){ + var _acD_ = caml_wrap_exception(_acH_); + if(_acD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Lq_], 1); + throw caml_maybe_attach_backtrace(_acD_, 0); + } var - Law_source_Aides_logement= + montant_prime_demenagement = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lt_, Runtime_ocaml_Runtime[13], _acG_); + return [0, montant_prime_demenagement]; + } + function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ + var + date_courante = eligibilite_allocation_logemen[1], + menage = eligibilite_allocation_logemen[2], + demandeur = eligibilite_allocation_logemen[3], + beneficie_aide_personnalisee_l = eligibilite_allocation_logemen[4]; + try{ + var + _Y2_ = + function(param){ + return caml_call3(Runtime_ocaml_Runtime[60], 5, 0, 0); + }, + _Y3_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lv_, 1); + }, + _Y4_ = caml_call4(Runtime_ocaml_Runtime[63], _Lw_, [0], _Y3_, _Y2_); + } + catch(_abZ_){ + var _Y1_ = caml_wrap_exception(_abZ_); + if(_Y1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Lu_], 1); + throw caml_maybe_attach_backtrace(_Y1_, 0); + } + var + duree_l841_1_3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Lx_, Runtime_ocaml_Runtime[17], _Y4_); + try{ + var + _Y6_ = function(param){return date_courante;}, + _Y7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Lz_, 1); + }, + _Y8_ = caml_call4(Runtime_ocaml_Runtime[63], _LA_, [0], _Y7_, _Y6_), + prestations_familiales_dot_dat = + caml_call3 + (Runtime_ocaml_Runtime[28], _LB_, Runtime_ocaml_Runtime[16], _Y8_); + } + catch(_abY_){ + var _Y5_ = caml_wrap_exception(_abY_); + if(_Y5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ly_], 1); + throw caml_maybe_attach_backtrace(_Y5_, 0); + } + try{ + var + _Y__ = function(param){return _LD_;}, + _Y$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LE_, 1); + }, + _Za_ = caml_call4(Runtime_ocaml_Runtime[63], _LF_, [0], _Y$_, _Y__), + prestations_familiales_dot_pre = + caml_call3 + (Runtime_ocaml_Runtime[28], + _LG_, + embed_element_prestations_fami, + _Za_); + } + catch(_abX_){ + var _Y9_ = caml_wrap_exception(_abX_); + if(_Y9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LC_], 1); + throw caml_maybe_attach_backtrace(_Y9_, 0); + } + try{ + var + _Zc_ = function(param){return menage[9];}, + _Zd_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LI_, 1); + }, + _Ze_ = caml_call4(Runtime_ocaml_Runtime[63], _LJ_, [0], _Zd_, _Zc_), + prestations_familiales_dot_res = + caml_call3(Runtime_ocaml_Runtime[28], _LK_, embed_collectivite, _Ze_); + } + catch(_abW_){ + var _Zb_ = caml_wrap_exception(_abW_); + if(_Zb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LH_], 1); + throw caml_maybe_attach_backtrace(_Zb_, 0); + } + function prestations_familiales_dot_age(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _Zf_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _LL_, eligibilite_prestations_famili), + [0, + prestations_familiales_dot_dat, + prestations_familiales_dot_pre, + prestations_familiales_dot_res, + prestations_familiales_dot_age]), + result = caml_call2(Runtime_ocaml_Runtime[27], _LM_, _Zf_), + prestations_familiales_dot_dro = result[2]; + try{ + var + _Zh_ = function(param){return 0;}, + _Zi_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LO_, 1); + }, + _Zj_ = + [0, + function(param){ + function _abJ_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _abK_(param){return 0;} + function _abL_(param){ + function _abP_(param){return 0;} + function _abQ_(param){ + switch(menage[9][0]){ + case 0: + var _abV_ = 1; break; + case 1: + var _abV_ = 1; break; + case 2: + var _abV_ = 1; break; + case 3: + var _abV_ = 1; break; + case 4: + var _abV_ = 0; break; + case 5: + var _abV_ = 0; break; + case 6: + var _abV_ = 0; break; + case 7: + var _abV_ = 0; break; + default: var _abV_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _LP_, _abV_); + } + var + _abR_ = + [0, + function(param){ + function _abS_(param){return 0;} + function _abT_(param){ + switch(menage[9][0]){ + case 0: + var _abU_ = 0; break; + case 1: + var _abU_ = 0; break; + case 2: + var _abU_ = 0; break; + case 3: + var _abU_ = 0; break; + case 4: + var _abU_ = 1; break; + case 5: + var _abU_ = 1; break; + case 6: + var _abU_ = 0; break; + case 7: + var _abU_ = 0; break; + default: var _abU_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _LQ_, _abU_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _LR_, [0], _abT_, _abS_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _LS_, _abR_, _abQ_, _abP_); + } + var + _abM_ = + [0, + function(param){ + function _abN_(param){return 1;} + function _abO_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LT_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _LU_, [0], _abO_, _abN_); + }, + _abL_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _LV_, _abM_, _abK_, _abJ_); + }], + _Zk_ = caml_call4(Runtime_ocaml_Runtime[63], _LW_, _Zj_, _Zi_, _Zh_); + } + catch(_abI_){ + var _Zg_ = caml_wrap_exception(_abI_); + if(_Zg_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LN_], 1); + throw caml_maybe_attach_backtrace(_Zg_, 0); + } + var + l_841_1_6_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _LX_, Runtime_ocaml_Runtime[12], _Zk_); + try{ + var + _Zm_ = function(param){return 0;}, + _Zn_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _LZ_, 1); + }, + _Zo_ = + [0, + function(param){ + function _abv_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _abw_(param){return 0;} + function _abx_(param){ + function _abB_(param){return 0;} + function _abC_(param){ + switch(menage[9][0]){ + case 0: + var _abH_ = 1; break; + case 1: + var _abH_ = 1; break; + case 2: + var _abH_ = 1; break; + case 3: + var _abH_ = 1; break; + case 4: + var _abH_ = 0; break; + case 5: + var _abH_ = 0; break; + case 6: + var _abH_ = 0; break; + case 7: + var _abH_ = 0; break; + default: var _abH_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _L0_, _abH_); + } + var + _abD_ = + [0, + function(param){ + function _abE_(param){return 0;} + function _abF_(param){ + switch(menage[9][0]){ + case 0: + var _abG_ = 0; break; + case 1: + var _abG_ = 0; break; + case 2: + var _abG_ = 0; break; + case 3: + var _abG_ = 0; break; + case 4: + var _abG_ = 1; break; + case 5: + var _abG_ = 1; break; + case 6: + var _abG_ = 0; break; + case 7: + var _abG_ = 0; break; + default: var _abG_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _L1_, _abG_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _L2_, [0], _abF_, _abE_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L3_, _abD_, _abC_, _abB_); + } + var + _aby_ = + [0, + function(param){ + function _abz_(param){return 1;} + function _abA_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _L4_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _L5_, [0], _abA_, _abz_); + }, + _abx_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _L6_, _aby_, _abw_, _abv_); + }], + _Zp_ = caml_call4(Runtime_ocaml_Runtime[63], _L7_, _Zo_, _Zn_, _Zm_); + } + catch(_abu_){ + var _Zl_ = caml_wrap_exception(_abu_); + if(_Zl_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _LY_], 1); + throw caml_maybe_attach_backtrace(_Zl_, 0); + } + var + l_841_1_2_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _L8_, Runtime_ocaml_Runtime[12], _Zp_); + try{ + var + _Zr_ = function(param){return 0;}, + _Zs_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _L__, 1); + }, + _Zt_ = + [0, + function(param){ + function _abh_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _abi_(param){return 0;} + function _abj_(param){ + function _abn_(param){return 0;} + function _abo_(param){ + switch(menage[9][0]){ + case 0: + var _abt_ = 1; break; + case 1: + var _abt_ = 1; break; + case 2: + var _abt_ = 1; break; + case 3: + var _abt_ = 1; break; + case 4: + var _abt_ = 0; break; + case 5: + var _abt_ = 0; break; + case 6: + var _abt_ = 0; break; + case 7: + var _abt_ = 0; break; + default: var _abt_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _L$_, _abt_); + } + var + _abp_ = + [0, + function(param){ + function _abq_(param){return 0;} + function _abr_(param){ + switch(menage[9][0]){ + case 0: + var _abs_ = 0; break; + case 1: + var _abs_ = 0; break; + case 2: + var _abs_ = 0; break; + case 3: + var _abs_ = 0; break; + case 4: + var _abs_ = 1; break; + case 5: + var _abs_ = 1; break; + case 6: + var _abs_ = 0; break; + case 7: + var _abs_ = 0; break; + default: var _abs_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Ma_, _abs_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mb_, [0], _abr_, _abq_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mc_, _abp_, _abo_, _abn_); + } + var + _abk_ = + [0, + function(param){ + function _abl_(param){return 1;} + function _abm_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Md_, 1); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Me_, [0], _abm_, _abl_); + }, + _abj_]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mf_, _abk_, _abi_, _abh_); + }], + _Zu_ = caml_call4(Runtime_ocaml_Runtime[63], _Mg_, _Zt_, _Zs_, _Zr_); + } + catch(_abg_){ + var _Zq_ = caml_wrap_exception(_abg_); + if(_Zq_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _L9_], 1); + throw caml_maybe_attach_backtrace(_Zq_, 0); + } + var + l_841_1_1_applicable = + caml_call3 + (Runtime_ocaml_Runtime[28], _Mh_, Runtime_ocaml_Runtime[12], _Zu_); + try{ + var + _Zw_ = function(param){return 0;}, + _Zx_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mj_, 1); + }, + _Zy_ = + [0, + function(param){ + function _aaS_(param){return 1;} + function _aaT_(param){ + switch(menage[2][3][0]){ + case 0: + var _abf_ = 1; break; + case 1: + var _abf_ = 1; break; + case 2: + var _abf_ = 0; break; + case 3: + var _abf_ = 1; break; + default: var _abf_ = 1; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Mk_, _abf_); + } + var + _aaU_ = + [0, + function(param){ + function _aaV_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _aaW_(param){return 0;} + var + _aaX_ = + [0, + function(param){ + function _aaY_(param){return 1;} + function _aaZ_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _aba_ = 0; break; + case 1: + var _aba_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _abb_ = 1; break; + case 1: + var _abb_ = 0; break; + case 2: + var _abb_ = 0; break; + default: var _abb_ = 0; + } + switch(proprietaire[5][0]){ + case 0: + var _abc_ = 0; break; + case 1: + var _abc_ = 0; break; + case 2: + var _abc_ = 0; break; + default: var _abc_ = 1; + } + var + _abd_ = caml_call2(Runtime_ocaml_Runtime[84], _abc_, _abb_), + _abe_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _aba_ = caml_call2(Runtime_ocaml_Runtime[83], _abe_, _abd_); + break; + case 3: + var _aba_ = 0; break; + default: var _aba_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Ml_, _aba_); + } + var + _aa0_ = + [0, + function(param){ + function _aa1_(param){return 1;} + function _aa2_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _aa9_ = 0; break; + case 1: + var _aa9_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _aa__ = 0; break; + case 1: + var _aa__ = 1; break; + case 2: + var _aa__ = 0; break; + default: var _aa__ = 0; + } + var + _aa$_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _aa9_ = caml_call2(Runtime_ocaml_Runtime[83], _aa$_, _aa__); + break; + case 3: + var _aa9_ = 0; break; + default: var _aa9_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Mm_, _aa9_); + } + var + _aa3_ = + [0, + function(param){ + function _aa4_(param){return 1;} + function _aa5_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _aa6_ = 0; break; + case 1: + var _aa6_ = 0; break; + case 2: + var proprietaire = match[1]; + switch(proprietaire[5][0]){ + case 0: + var _aa7_ = 0; break; + case 1: + var _aa7_ = 0; break; + case 2: + var _aa7_ = 1; break; + default: var _aa7_ = 0; + } + var + _aa8_ = 0 === proprietaire[10][3][0] ? 1 : 0, + _aa6_ = caml_call2(Runtime_ocaml_Runtime[83], _aa8_, _aa7_); + break; + case 3: + var _aa6_ = 0; break; + default: var _aa6_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _Mn_, _aa6_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mo_, [0], _aa5_, _aa4_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mp_, _aa3_, _aa2_, _aa1_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mq_, _aa0_, _aaZ_, _aaY_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Mr_, _aaX_, _aaW_, _aaV_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ms_, _aaU_, _aaT_, _aaS_); + }], + _Zz_ = caml_call4(Runtime_ocaml_Runtime[63], _Mt_, _Zy_, _Zx_, _Zw_); + } + catch(_aaR_){ + var _Zv_ = caml_wrap_exception(_aaR_); + if(_Zv_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mi_], 1); + throw caml_maybe_attach_backtrace(_Zv_, 0); + } + var + condition_accession_propriete = + caml_call3 + (Runtime_ocaml_Runtime[28], _Mu_, Runtime_ocaml_Runtime[12], _Zz_); + try{ + var + _ZB_ = function(param){return menage;}, + _ZC_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Mw_, 1); + }, + _ZD_ = caml_call4(Runtime_ocaml_Runtime[63], _Mx_, [0], _ZC_, _ZB_), + eligibilite_commune_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _My_, embed_menage, _ZD_); + } + catch(_aaQ_){ + var _ZA_ = caml_wrap_exception(_aaQ_); + if(_ZA_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mv_], 1); + throw caml_maybe_attach_backtrace(_ZA_, 0); + } + try{ + var + _ZF_ = function(param){return demandeur;}, + _ZG_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MA_, 1); + }, + _ZH_ = caml_call4(Runtime_ocaml_Runtime[63], _MB_, [0], _ZG_, _ZF_), + eligibilite_commune_dot_demand = + caml_call3(Runtime_ocaml_Runtime[28], _MC_, embed_demandeur, _ZH_); + } + catch(_aaP_){ + var _ZE_ = caml_wrap_exception(_aaP_); + if(_ZE_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Mz_], 1); + throw caml_maybe_attach_backtrace(_ZE_, 0); + } + try{ + var + _ZJ_ = function(param){return date_courante;}, + _ZK_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _ME_, 1); + }, + _ZL_ = caml_call4(Runtime_ocaml_Runtime[63], _MF_, [0], _ZK_, _ZJ_), + eligibilite_commune_dot_date_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _MG_, Runtime_ocaml_Runtime[16], _ZL_); + } + catch(_aaO_){ + var _ZI_ = caml_wrap_exception(_aaO_); + if(_ZI_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MD_], 1); + throw caml_maybe_attach_backtrace(_ZI_, 0); + } + function eligibilite_commune_dot_condit(param){ + function _aaK_(param){return 1;} + function _aaL_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _aaN_ = 0; break; + case 1: + var logement_foyer = match[1], _aaN_ = logement_foyer[6]; break; + case 2: + var _aaN_ = 0; break; + case 3: + var _aaN_ = 0; break; + default: var _aaN_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MH_, _aaN_); + } + var + _aaM_ = caml_call4(Runtime_ocaml_Runtime[63], _MI_, [0], _aaL_, _aaK_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _MJ_, + Runtime_ocaml_Runtime[12], + _aaM_); + } + function eligibilite_commune_dot_condit$0(param){ + function _aaG_(param){return 1;} + function _aaH_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _aaJ_ = 0; break; + case 1: + var logement_foyer = match[1], _aaJ_ = logement_foyer[6]; break; + case 2: + var _aaJ_ = 0; break; + case 3: + var _aaJ_ = 0; break; + default: var _aaJ_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _MK_, _aaJ_); + } + var + _aaI_ = caml_call4(Runtime_ocaml_Runtime[63], _ML_, [0], _aaH_, _aaG_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _MM_, + Runtime_ocaml_Runtime[12], + _aaI_); + } + function eligibilite_commune_dot_date_e(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + var + _ZM_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _MN_, eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _MO_, _ZM_), + eligibilite_commune_dot_eligib = result$0[2], + eligibilite_commune_dot_nombre = result$0[3], + eligibilite_commune_dot_coeffi = result$0[4], + eligibilite_commune_dot_condit$1 = result$0[5]; + try{ + var + _ZO_ = function(param){return eligibilite_commune_dot_coeffi;}, + _ZP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MQ_, 1); + }, + _ZQ_ = caml_call4(Runtime_ocaml_Runtime[63], _MR_, [0], _ZP_, _ZO_); + } + catch(_aaF_){ + var _ZN_ = caml_wrap_exception(_aaF_); + if(_ZN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MP_], 1); + throw caml_maybe_attach_backtrace(_ZN_, 0); + } + var + _ZR_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _MS_, _ZR_, _ZQ_); + try{ + var + _ZT_ = function(param){return eligibilite_commune_dot_nombre;}, + _ZU_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _MU_, 1); + }, + _ZV_ = caml_call4(Runtime_ocaml_Runtime[63], _MV_, [0], _ZU_, _ZT_); + } + catch(_aaE_){ + var _ZS_ = caml_wrap_exception(_aaE_); + if(_ZS_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MT_], 1); + throw caml_maybe_attach_backtrace(_ZS_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _MW_, Runtime_ocaml_Runtime[14], _ZV_); + try{ + var + _ZX_ = + function(param){ + var + _aaC_ = + caml_call1 + (Runtime_ocaml_Runtime[67], condition_accession_propriete), + _aaD_ = + caml_call1 + (Runtime_ocaml_Runtime[67], eligibilite_commune_dot_eligib); + return caml_call2(Runtime_ocaml_Runtime[84], _aaD_, _aaC_) + ? _MY_ + : _MZ_; + }, + _ZY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _M0_, 1); + }, + _ZZ_ = caml_call4(Runtime_ocaml_Runtime[63], _M1_, [0], _ZY_, _ZX_); + } + catch(_aaB_){ + var _ZW_ = caml_wrap_exception(_aaB_); + if(_ZW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _MX_], 1); + throw caml_maybe_attach_backtrace(_ZW_, 0); + } + var + eligibilite_dispositions_commu = + caml_call3 + (Runtime_ocaml_Runtime[28], + _M2_, + embed_type_eligibilite_allocat, + _ZZ_); + try{ + var + _Z1_ = function(param){return 0;}, + _Z2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _M4_, 1); + }, + _Z3_ = + [0, + function(param){ + function __B_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function __C_(param){return 0;} + var + __D_ = + [0, + function(param){ + function __E_(param){return 1;} + function __F_(param){ + var _aap_ = menage[1], _aaq_ = 0; + function _aar_(acc, prestation){ + var + _aau_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _M5_), + _aav_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _M6_), + _aaw_ = caml_call2(Runtime_ocaml_Runtime[84], _aav_, _aau_), + _aax_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _M7_), + _aay_ = caml_call2(Runtime_ocaml_Runtime[84], _aax_, _aaw_), + _aaz_ = + caml_call2(Runtime_ocaml_Runtime[86], prestation, _M8_), + _aaA_ = caml_call2(Runtime_ocaml_Runtime[84], _aaz_, _aay_); + return caml_call2(Runtime_ocaml_Runtime[84], acc, _aaA_); + } + var + _aas_ = + caml_call3(Runtime_ocaml_Runtime[136], _aar_, _aaq_, _aap_), + _aat_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_1_applicable, _aas_); + return caml_call2(Runtime_ocaml_Runtime[29], _M9_, _aat_); + } + var + __G_ = + [0, + function(param){ + function __H_(param){return 1;} + function __I_(param){ + var + _aac_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$249), + _aad_ = menage[3]; + function _aae_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _aaj_ = enfant[3], + _aak_ = enfant[4], + _aal_ = 0 === enfant[8][0] ? _M__ : _Nd_, + _aam_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _M$_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _aal_, + _aak_, + _aaj_]), + _aan_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Na_, + prestations_familiales_dot_dro), + _aam_), + _aao_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nb_, + Runtime_ocaml_Runtime[12], + _aan_); + return caml_call2(Runtime_ocaml_Runtime[27], _Nc_, _aao_); + } + var + _aaf_ = caml_call2(Runtime_ocaml_Runtime[90], _aae_, _aad_), + _aag_ = caml_call1(Runtime_ocaml_Runtime[68], _aaf_), + _aah_ = caml_call2(Runtime_ocaml_Runtime[86], _aag_, _aac_), + _aai_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_2_applicable, _aah_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ne_, _aai_); + } + var + __J_ = + [0, + function(param){ + function __K_(param){return 1;} + function __L_(param){ + var match = menage[5]; + switch(match[0]){ + case 0: + var _$Y_ = 0; break; + case 1: + var + date_mariage = match[1], + _$6_ = + caml_call3 + (Runtime_ocaml_Runtime[94], 2, date_mariage, duree_l841_1_3), + _$Y_ = + caml_call2(Runtime_ocaml_Runtime[120], date_courante, _$6_); + break; + case 2: + var _$Y_ = 0; break; + case 3: + var _$Y_ = 0; break; + case 4: + var _$Y_ = 0; break; + default: var _$Y_ = 0; + } + var + _$Z_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$350), + _$0_ = menage[3]; + function _$1_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _$7_ = enfant[3], + _$8_ = enfant[4], + _$9_ = 0 === enfant[8][0] ? _Nf_ : _Nk_, + _$__ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ng_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _$9_, + _$8_, + _$7_]), + _$$_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Nh_, + prestations_familiales_dot_dro), + _$__), + _aaa_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ni_, + Runtime_ocaml_Runtime[12], + _$$_), + _aab_ = caml_call2(Runtime_ocaml_Runtime[27], _Nj_, _aaa_); + return caml_call1(Runtime_ocaml_Runtime[67], _aab_); + } + var + _$2_ = caml_call2(Runtime_ocaml_Runtime[90], _$1_, _$0_), + _$3_ = caml_call1(Runtime_ocaml_Runtime[68], _$2_), + _$4_ = caml_call2(Runtime_ocaml_Runtime[86], _$3_, _$Z_), + _$5_ = caml_call2(Runtime_ocaml_Runtime[83], _$4_, _$Y_); + return caml_call2(Runtime_ocaml_Runtime[29], _Nl_, _$5_); + } + var + __M_ = + [0, + function(param){ + function __N_(param){return 1;} + function __O_(param){ + var + _$P_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$250), + _$Q_ = menage[3]; + function _$R_(personne_a_charge){ + var + _$V_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nm_, + embed_personne_a_charge, + personne_a_charge), + _$W_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Nn_, + eligibilite_commune_dot_condit$1), + _$V_), + _$X_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _No_, + Runtime_ocaml_Runtime[12], + _$W_); + return caml_call2(Runtime_ocaml_Runtime[27], _Np_, _$X_); + } + var + _$S_ = caml_call2(Runtime_ocaml_Runtime[90], _$R_, _$Q_), + _$T_ = caml_call1(Runtime_ocaml_Runtime[68], _$S_), + _$U_ = caml_call2(Runtime_ocaml_Runtime[126], _$T_, _$P_); + return caml_call2(Runtime_ocaml_Runtime[29], _Nq_, _$U_); + } + var + __P_ = + [0, + function(param){ + function __Q_(param){return 1;} + function __R_(param){ + var + _$J_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$251), + _$K_ = menage[3]; + function _$L_(personne_a_charge){ + if(0 === personne_a_charge[0]) return 0; + var parent = personne_a_charge[1]; + return caml_call2 + (Runtime_ocaml_Runtime[83], parent[3], parent[5]); + } + var + _$M_ = caml_call2(Runtime_ocaml_Runtime[90], _$L_, _$K_), + _$N_ = caml_call1(Runtime_ocaml_Runtime[68], _$M_), + _$O_ = caml_call2(Runtime_ocaml_Runtime[126], _$N_, _$J_); + return caml_call2(Runtime_ocaml_Runtime[29], _Nr_, _$O_); + } + var + __S_ = + [0, + function(param){ + function __T_(param){return 1;} + function __U_(param){ + switch(menage[5][0]){ + case 0: + var + _$D_ = menage[7], + _$E_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$351), + _$F_ = caml_call1(Runtime_ocaml_Runtime[68], menage[3]), + _$G_ = caml_call2(Runtime_ocaml_Runtime[86], _$F_, _$E_), + _$H_ = caml_call2(Runtime_ocaml_Runtime[83], _$G_, _$D_); + break; + case 1: + var _$H_ = 0; break; + case 2: + var _$H_ = 0; break; + case 3: + var _$H_ = 0; break; + case 4: + var _$H_ = 0; break; + default: var _$H_ = 0; + } + var + _$I_ = + caml_call2 + (Runtime_ocaml_Runtime[83], l_841_1_6_applicable, _$H_); + return caml_call2(Runtime_ocaml_Runtime[29], _Ns_, _$I_); + } + var + __V_ = + [0, + function(param){ + function __W_(param){return 1;} + function __X_(param){ + var + _$p_ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$252), + _$q_ = menage[3]; + function _$r_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _$x_ = enfant[3], + _$y_ = enfant[4], + _$z_ = 0 === enfant[8][0] ? _Nt_ : _Ny_, + _$A_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nu_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _$z_, + _$y_, + _$x_]), + _$B_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Nv_, + prestations_familiales_dot_dro), + _$A_), + _$C_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Nw_, + Runtime_ocaml_Runtime[12], + _$B_); + return caml_call2(Runtime_ocaml_Runtime[27], _Nx_, _$C_); + } + var + _$s_ = caml_call2(Runtime_ocaml_Runtime[90], _$r_, _$q_), + _$t_ = caml_call1(Runtime_ocaml_Runtime[68], _$s_), + _$u_ = caml_call2(Runtime_ocaml_Runtime[126], _$t_, _$p_); + switch(menage[9][0]){ + case 0: + var _$v_ = 1; break; + case 1: + var _$v_ = 1; break; + case 2: + var _$v_ = 1; break; + case 3: + var _$v_ = 1; break; + case 4: + var _$v_ = 0; break; + case 5: + var _$v_ = 0; break; + case 6: + var _$v_ = 0; break; + case 7: + var _$v_ = 0; break; + default: var _$v_ = 1; + } + var + _$w_ = caml_call2(Runtime_ocaml_Runtime[83], _$v_, _$u_); + return caml_call2(Runtime_ocaml_Runtime[29], _Nz_, _$w_); + } + var + __Y_ = + [0, + function(param){ + function __Z_(param){return 1;} + function __0_(param){ + var _$m_ = demandeur[5]; + switch(menage[9][0]){ + case 0: + var _$n_ = 1; break; + case 1: + var _$n_ = 1; break; + case 2: + var _$n_ = 1; break; + case 3: + var _$n_ = 1; break; + case 4: + var _$n_ = 0; break; + case 5: + var _$n_ = 0; break; + case 6: + var _$n_ = 0; break; + case 7: + var _$n_ = 0; break; + default: var _$n_ = 1; + } + var + _$o_ = caml_call2(Runtime_ocaml_Runtime[83], _$n_, _$m_); + return caml_call2(Runtime_ocaml_Runtime[29], _NA_, _$o_); + } + var + __1_ = + [0, + function(param){ + function __2_(param){return 1;} + function __3_(param){ + var + ____ = caml_call1(Runtime_ocaml_Runtime[46], cst_1$253), + __$_ = menage[3]; + function _$a_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 0; + var + enfant = personne_a_charge[1], + _$g_ = enfant[3], + _$h_ = enfant[4], + _$i_ = 0 === enfant[8][0] ? _NB_ : _NG_, + _$j_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _NC_, + embed_enfant_prestations_famil, + [0, + enfant[1], + enfant[7], + enfant[6], + enfant[5], + _$i_, + _$h_, + _$g_]), + _$k_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _ND_, + prestations_familiales_dot_dro), + _$j_), + _$l_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _NE_, + Runtime_ocaml_Runtime[12], + _$k_); + return caml_call2(Runtime_ocaml_Runtime[27], _NF_, _$l_); + } + var + _$b_ = caml_call2(Runtime_ocaml_Runtime[90], _$a_, __$_), + _$c_ = caml_call1(Runtime_ocaml_Runtime[68], _$b_), + _$d_ = caml_call2(Runtime_ocaml_Runtime[126], _$c_, ____); + switch(menage[9][0]){ + case 0: + var _$e_ = 0; break; + case 1: + var _$e_ = 0; break; + case 2: + var _$e_ = 0; break; + case 3: + var _$e_ = 0; break; + case 4: + var _$e_ = 1; break; + case 5: + var _$e_ = 1; break; + case 6: + var _$e_ = 0; break; + case 7: + var _$e_ = 0; break; + default: var _$e_ = 0; + } + var + _$f_ = caml_call2(Runtime_ocaml_Runtime[83], _$e_, _$d_); + return caml_call2(Runtime_ocaml_Runtime[29], _NH_, _$f_); + } + var + __4_ = + [0, + function(param){ + function __5_(param){return 1;} + function __6_(param){ + var __7_ = demandeur[5]; + switch(menage[9][0]){ + case 0: + var __8_ = 0; break; + case 1: + var __8_ = 0; break; + case 2: + var __8_ = 0; break; + case 3: + var __8_ = 0; break; + case 4: + var __8_ = 1; break; + case 5: + var __8_ = 1; break; + case 6: + var __8_ = 0; break; + case 7: + var __8_ = 0; break; + default: var __8_ = 0; + } + var + __9_ = caml_call2(Runtime_ocaml_Runtime[83], __8_, __7_); + return caml_call2(Runtime_ocaml_Runtime[29], _NI_, __9_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _NJ_, [0], __6_, __5_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NK_, __4_, __3_, __2_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NL_, __1_, __0_, __Z_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NM_, __Y_, __X_, __W_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NN_, __V_, __U_, __T_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NO_, __S_, __R_, __Q_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NP_, __P_, __O_, __N_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NQ_, __M_, __L_, __K_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NR_, __J_, __I_, __H_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _NS_, __G_, __F_, __E_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _NT_, __D_, __C_, __B_); + }], + _Z4_ = caml_call4(Runtime_ocaml_Runtime[63], _NU_, _Z3_, _Z2_, _Z1_); + } + catch(__A_){ + var _Z0_ = caml_wrap_exception(__A_); + if(_Z0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _M3_], 1); + throw caml_maybe_attach_backtrace(_Z0_, 0); + } + var + eligibilite_allocation_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _NV_, Runtime_ocaml_Runtime[12], _Z4_); + try{ + var + _Z6_ = + function(param){ + var + __z_ = + caml_call2 + (Runtime_ocaml_Runtime[86], eligibilite_dispositions_commu, _NX_); + return caml_call2 + (Runtime_ocaml_Runtime[84], + __z_, + beneficie_aide_personnalisee_l) + ? _NY_ + : eligibilite_allocation_logemen$0 ? _NZ_ : _N0_; + }, + _Z7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _N1_, 1); + }, + _Z8_ = + [0, + function(param){ + function _Z$_(param){return _N2_;} + function __a_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var __x_ = 0; break; + case 1: + var __x_ = 0; break; + case 2: + var + proprietaire = match[1], + __y_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + __x_ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], __y_); + break; + case 3: + var __x_ = 0; break; + default: var __x_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _N3_, __x_); + } + function __b_(param){ + function __v_(param){return _N4_;} + function __w_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _N5_, demandeur[4]); + } + return caml_call4(Runtime_ocaml_Runtime[63], _N6_, [0], __w_, __v_); + } + var + __c_ = + [0, + function(param){ + function __d_(param){return _N7_;} + function __e_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var __l_ = 0; break; + case 1: + var __l_ = 0; break; + case 2: + var proprietaire = match[1], match$0 = proprietaire[10][4]; + if(0 === match$0[0]) + var + date_accord = match$0[1], + __o_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 12, 31), + __p_ = + caml_call2(Runtime_ocaml_Runtime[120], date_accord, __o_); + else + var __p_ = 0; + var + __q_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 12, 31), + __r_ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], __q_), + __s_ = caml_call2(Runtime_ocaml_Runtime[83], __r_, __p_), + __t_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + __u_ = + caml_call2 + (Runtime_ocaml_Runtime[125], proprietaire[10][2], __t_), + __l_ = caml_call2(Runtime_ocaml_Runtime[84], __u_, __s_); + break; + case 3: + var __l_ = 0; break; + default: var __l_ = 0; + } + switch(menage[9][0]){ + case 0: + var __m_ = 1; break; + case 1: + var __m_ = 1; break; + case 2: + var __m_ = 1; break; + case 3: + var __m_ = 1; break; + case 4: + var __m_ = 0; break; + case 5: + var __m_ = 0; break; + case 6: + var __m_ = 0; break; + case 7: + var __m_ = 0; break; + default: var __m_ = 1; + } + var __n_ = caml_call2(Runtime_ocaml_Runtime[83], __m_, __l_); + return caml_call2(Runtime_ocaml_Runtime[29], _N8_, __n_); + } + var + __f_ = + [0, + function(param){ + function __g_(param){return _N9_;} + function __h_(param){ + var __i_ = demandeur[6]; + switch(menage[9][0]){ + case 0: + var __j_ = 0; break; + case 1: + var __j_ = 0; break; + case 2: + var __j_ = 0; break; + case 3: + var __j_ = 0; break; + case 4: + var __j_ = 0; break; + case 5: + var __j_ = 0; break; + case 6: + var __j_ = 0; break; + case 7: + var __j_ = 0; break; + default: var __j_ = 1; + } + var + __k_ = caml_call2(Runtime_ocaml_Runtime[83], __j_, __i_); + return caml_call2(Runtime_ocaml_Runtime[29], _N__, __k_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _N$_, [0], __h_, __g_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oa_, __f_, __e_, __d_); + }, + __b_]; + return caml_call4(Runtime_ocaml_Runtime[63], _Ob_, __c_, __a_, _Z$_); + }], + _Z9_ = caml_call4(Runtime_ocaml_Runtime[63], _Oc_, _Z8_, _Z7_, _Z6_); + } + catch(_Z__){ + var _Z5_ = caml_wrap_exception(_Z__); + if(_Z5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _NW_], 1); + throw caml_maybe_attach_backtrace(_Z5_, 0); + } + var + eligibilite_l841_2 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Od_, + embed_type_eligibilite_allocat, + _Z9_); + return [0, + eligibilite_l841_2, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]; + } + function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ + var + menage = eligibilite_aide_personnalisee[1], + demandeur = eligibilite_aide_personnalisee[2], + date_courante = eligibilite_aide_personnalisee[3]; + function _Wr_(pret){ + try{ + var + _YE_ = function(param){return 0;}, + _YF_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Of_, 1); + }, + _YG_ = + [0, + function(param){ + function _YJ_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _YK_(param){return 0;} + var + _YL_ = + [0, + function(param){ + function _YM_(param){return 1;} + function _YN_(param){ + switch(pret[1][0]){ + case 0: + var _YW_ = 0; break; + case 1: + var _YW_ = 1; break; + case 2: + var _YW_ = 0; break; + case 3: + var _YW_ = 0; break; + default: var _YW_ = 0; + } + switch(pret[1][0]){ + case 0: + var _YX_ = 1; break; + case 1: + var _YX_ = 0; break; + case 2: + var _YX_ = 0; break; + case 3: + var _YX_ = 0; break; + default: var _YX_ = 0; + } + var + _YY_ = caml_call2(Runtime_ocaml_Runtime[84], _YX_, _YW_), + _YZ_ = 0 === pret[3][0] ? 1 : 0, + _Y0_ = caml_call2(Runtime_ocaml_Runtime[83], _YZ_, _YY_); + return caml_call2(Runtime_ocaml_Runtime[29], _Og_, _Y0_); + } + var + _YO_ = + [0, + function(param){ + function _YP_(param){return 1;} + function _YQ_(param){ + switch(pret[1][0]){ + case 0: + var _YR_ = 0; break; + case 1: + var _YR_ = 0; break; + case 2: + var _YR_ = 0; break; + case 3: + var _YR_ = 1; break; + default: var _YR_ = 0; + } + switch(pret[1][0]){ + case 0: + var _YS_ = 0; break; + case 1: + var _YS_ = 0; break; + case 2: + var _YS_ = 1; break; + case 3: + var _YS_ = 0; break; + default: var _YS_ = 0; + } + var + _YT_ = caml_call2(Runtime_ocaml_Runtime[84], _YS_, _YR_), + _YU_ = 0 === pret[3][0] ? 0 : 1, + _YV_ = caml_call2(Runtime_ocaml_Runtime[83], _YU_, _YT_); + return caml_call2(Runtime_ocaml_Runtime[29], _Oh_, _YV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oi_, [0], _YQ_, _YP_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Oj_, _YO_, _YN_, _YM_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Ok_, _YL_, _YK_, _YJ_); + }], + _YH_ = caml_call4(Runtime_ocaml_Runtime[63], _Ol_, _YG_, _YF_, _YE_); + return _YH_; + } + catch(_YI_){ + var _YD_ = caml_wrap_exception(_YI_); + if(_YD_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Oe_], 1); + throw caml_maybe_attach_backtrace(_YD_, 0); + } + } + var + caracteristiques_pret_l831_1_1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Om_, Runtime_ocaml_Runtime[10], _Wr_); + function _Ws_(pret){ + try{ + var + _Yz_ = function(param){return 0;}, + _YA_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Oo_, 1); + }, + _YB_ = caml_call4(Runtime_ocaml_Runtime[63], _Op_, [0], _YA_, _Yz_); + return _YB_; + } + catch(_YC_){ + var _Yy_ = caml_wrap_exception(_YC_); + if(_Yy_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _On_], 1); + throw caml_maybe_attach_backtrace(_Yy_, 0); + } + } + var + caracteristiques_pret_l831_1_6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Oq_, Runtime_ocaml_Runtime[10], _Ws_); + try{ + var + _Wu_ = function(param){return menage;}, + _Wv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Os_, 1); + }, + _Ww_ = caml_call4(Runtime_ocaml_Runtime[63], _Ot_, [0], _Wv_, _Wu_), + eligibilite_commune_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _Ou_, embed_menage, _Ww_); + } + catch(_Yx_){ + var _Wt_ = caml_wrap_exception(_Yx_); + if(_Wt_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Or_], 1); + throw caml_maybe_attach_backtrace(_Wt_, 0); + } + try{ + var + _Wy_ = function(param){return demandeur;}, + _Wz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ow_, 1); + }, + _WA_ = caml_call4(Runtime_ocaml_Runtime[63], _Ox_, [0], _Wz_, _Wy_), + eligibilite_commune_dot_demand = + caml_call3(Runtime_ocaml_Runtime[28], _Oy_, embed_demandeur, _WA_); + } + catch(_Yw_){ + var _Wx_ = caml_wrap_exception(_Yw_); + if(_Wx_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ov_], 1); + throw caml_maybe_attach_backtrace(_Wx_, 0); + } + try{ + var + _WC_ = function(param){return date_courante;}, + _WD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OA_, 1); + }, + _WE_ = caml_call4(Runtime_ocaml_Runtime[63], _OB_, [0], _WD_, _WC_), + eligibilite_commune_dot_date_c = + caml_call3 + (Runtime_ocaml_Runtime[28], _OC_, Runtime_ocaml_Runtime[16], _WE_); + } + catch(_Yv_){ + var _WB_ = caml_wrap_exception(_Yv_); + if(_WB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Oz_], 1); + throw caml_maybe_attach_backtrace(_WB_, 0); + } + function eligibilite_commune_dot_condit(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_commune_dot_condit$0(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function eligibilite_commune_dot_date_e(param){ + function _Yr_(param){ + return caml_call3(Runtime_ocaml_Runtime[57], 2021, 5, 1); + } + function _Ys_(param){ + switch(menage[2][3][0]){ + case 0: + var _Yu_ = 0; break; + case 1: + var _Yu_ = 0; break; + case 2: + var _Yu_ = 1; break; + case 3: + var _Yu_ = 0; break; + default: var _Yu_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _OD_, _Yu_); + } + var _Yt_ = caml_call4(Runtime_ocaml_Runtime[63], _OE_, [0], _Ys_, _Yr_); + return caml_call3 + (Runtime_ocaml_Runtime[28], + _OF_, + Runtime_ocaml_Runtime[16], + _Yt_); + } + var + _WF_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _OG_, eligibilite_aides_personnelle_), + [0, + eligibilite_commune_dot_menage, + eligibilite_commune_dot_demand, + eligibilite_commune_dot_date_c, + eligibilite_commune_dot_condit, + eligibilite_commune_dot_condit$0, + eligibilite_commune_dot_date_e]), + result = caml_call2(Runtime_ocaml_Runtime[27], _OH_, _WF_), + eligibilite_commune_dot_eligib = result[2], + eligibilite_commune_dot_nombre = result[3], + eligibilite_commune_dot_coeffi = result[4]; + try{ + var + _WH_ = function(param){return 0;}, + _WI_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OJ_, 1); + }, + _WJ_ = + [0, + function(param){ + function _Yl_(param){return 1;} + function _Ym_(param){ + switch(menage[2][9][0]){ + case 0: + var _Yn_ = 0; break; + case 1: + var _Yn_ = 0; break; + default: var _Yn_ = 1; + } + var + _Yo_ = caml_call3(Runtime_ocaml_Runtime[57], 2019, 10, 1), + _Yp_ = caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Yo_), + _Yq_ = caml_call2(Runtime_ocaml_Runtime[83], _Yp_, _Yn_); + return caml_call2(Runtime_ocaml_Runtime[29], _OK_, _Yq_); + } + return caml_call4(Runtime_ocaml_Runtime[63], _OL_, [0], _Ym_, _Yl_); + }], + _WK_ = caml_call4(Runtime_ocaml_Runtime[63], _OM_, _WJ_, _WI_, _WH_); + } + catch(_Yk_){ + var _WG_ = caml_wrap_exception(_Yk_); + if(_WG_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _OI_], 1); + throw caml_maybe_attach_backtrace(_WG_, 0); + } + var + logement_situe_commune_desequi = + caml_call3 + (Runtime_ocaml_Runtime[28], _ON_, Runtime_ocaml_Runtime[12], _WK_); + try{ + var + _WM_ = function(param){return 0;}, + _WN_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _OP_, 1); + }, + _WO_ = + function(param){ + function _XX_(param){ + throw caml_maybe_attach_backtrace(Runtime_ocaml_Runtime[2], 1); + } + function _XY_(param){return 0;} + var + _XZ_ = + [0, + function(param){ + function _X0_(param){return 1;} + function _X1_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _Yg_ = 0; break; + case 1: + var _Yg_ = 0; break; + case 2: + var + propriete = match[1], + _Yh_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _OR_, embed_pret, propriete[10]), + _Yi_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _OS_, + caracteristiques_pret_l831_1_1), + _Yh_), + _Yj_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _OT_, + Runtime_ocaml_Runtime[12], + _Yi_), + _Yg_ = caml_call2(Runtime_ocaml_Runtime[27], _OU_, _Yj_); + break; + case 3: + var _Yg_ = 0; break; + default: var _Yg_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _OQ_, _Yg_); + } + var + _X2_ = + [0, + function(param){ + function _X3_(param){return 1;} + function _X4_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var location = match[1], match$0 = location[1]; + switch(match$0[0]){ + case 0: + var convention = match$0[1], _Ye_ = convention[1]; break; + case 1: + var convention$0 = match$0[1], _Ye_ = convention$0[1]; + break; + default: var _Ye_ = 0; + } + var _Yf_ = _Ye_; + break; + case 1: + var _Yf_ = 0; break; + case 2: + var _Yf_ = 0; break; + case 3: + var _Yf_ = 0; break; + default: var _Yf_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _OV_, _Yf_); + } + var + _X5_ = + [0, + function(param){ + function _X6_(param){return 1;} + function _X7_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _Ya_ = 0; break; + case 1: + var _Ya_ = 0; break; + case 2: + var _Ya_ = 0; break; + case 3: + var _Ya_ = 0; break; + default: + var + propriete = match[1], + _Yb_ = + caml_call3 + (Runtime_ocaml_Runtime[28], _OX_, embed_pret, propriete[10]), + _Yc_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _OY_, + caracteristiques_pret_l831_1_6), + _Yb_), + _Yd_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _OZ_, + Runtime_ocaml_Runtime[12], + _Yc_), + _Ya_ = caml_call2(Runtime_ocaml_Runtime[27], _O0_, _Yd_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _OW_, _Ya_); + } + var + _X8_ = + [0, + function(param){ + function _X9_(param){return 1;} + function _X__(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _X$_ = 0; break; + case 1: + var logement_foyer = match[1], _X$_ = logement_foyer[2]; + break; + case 2: + var _X$_ = 0; break; + case 3: + var _X$_ = 0; break; + default: var _X$_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _O1_, _X$_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _O2_, [0], _X__, _X9_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _O3_, _X8_, _X7_, _X6_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _O4_, _X5_, _X4_, _X3_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _O5_, _X2_, _X1_, _X0_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _O6_, _XZ_, _XY_, _XX_); + }, + _WP_ = + [0, + function(param){ + function _XO_(param){return 1;} + function _XP_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _XW_ = 0; break; + case 1: + var location = match[1], _XW_ = location[3]; break; + case 2: + var _XW_ = 0; break; + case 3: + var _XW_ = 0; break; + default: var _XW_ = 0; + } + return caml_call2(Runtime_ocaml_Runtime[29], _O7_, _XW_); + } + var + _XQ_ = + [0, + function(param){ + function _XR_(param){return 1;} + function _XS_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _XT_ = 0; break; + case 1: + var location = match[1], _XT_ = location[4]; break; + case 2: + var _XT_ = 0; break; + case 3: + var _XT_ = 0; break; + default: var _XT_ = 0; + } + switch(menage[9][0]){ + case 0: + var _XU_ = 1; break; + case 1: + var _XU_ = 1; break; + case 2: + var _XU_ = 1; break; + case 3: + var _XU_ = 1; break; + case 4: + var _XU_ = 0; break; + case 5: + var _XU_ = 0; break; + case 6: + var _XU_ = 0; break; + case 7: + var _XU_ = 0; break; + default: var _XU_ = 1; + } + var _XV_ = caml_call2(Runtime_ocaml_Runtime[83], _XU_, _XT_); + return caml_call2(Runtime_ocaml_Runtime[29], _O8_, _XV_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _O9_, [0], _XS_, _XR_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _O__, _XQ_, _XP_, _XO_); + }, + _WO_], + _WQ_ = caml_call4(Runtime_ocaml_Runtime[63], _O$_, _WP_, _WN_, _WM_); + } + catch(_XN_){ + var _WL_ = caml_wrap_exception(_XN_); + if(_WL_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _OO_], 1); + throw caml_maybe_attach_backtrace(_WL_, 0); + } + var + condition_logement_bailleur = + caml_call3 + (Runtime_ocaml_Runtime[28], _Pa_, Runtime_ocaml_Runtime[12], _WQ_); + try{ + var + _WS_ = function(param){return eligibilite_commune_dot_coeffi;}, + _WT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pc_, 1); + }, + _WU_ = caml_call4(Runtime_ocaml_Runtime[63], _Pd_, [0], _WT_, _WS_); + } + catch(_XM_){ + var _WR_ = caml_wrap_exception(_XM_); + if(_WR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pb_], 1); + throw caml_maybe_attach_backtrace(_WR_, 0); + } + var + _WV_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Pe_, _WV_, _WU_); + try{ + var + _WX_ = function(param){return eligibilite_commune_dot_nombre;}, + _WY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pg_, 1); + }, + _WZ_ = caml_call4(Runtime_ocaml_Runtime[63], _Ph_, [0], _WY_, _WX_); + } + catch(_XL_){ + var _WW_ = caml_wrap_exception(_XL_); + if(_WW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pf_], 1); + throw caml_maybe_attach_backtrace(_WW_, 0); + } + var + nombre_personnes_a_charge_pris = + caml_call3 + (Runtime_ocaml_Runtime[28], _Pi_, Runtime_ocaml_Runtime[14], _WZ_); + try{ + var + _W1_ = function(param){return 0;}, + _W2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pk_, 1); + }, + _W3_ = + [0, + function(param){ + function _Xl_(param){return 1;} + function _Xm_(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pl_, 1); + } + var + _Xn_ = + [0, + function(param){ + function _Xo_(param){return 0;} + function _Xp_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _XI_ = 0; break; + case 1: + var _XI_ = 0; break; + case 2: + var + propriete = match[1], + _XJ_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _XI_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete[10][2], _XJ_); + break; + case 3: + var _XI_ = 0; break; + default: + var + propriete$0 = match[1], + _XK_ = caml_call3(Runtime_ocaml_Runtime[57], 2017, 12, 31), + _XI_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete$0[10][2], _XK_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _Pm_, _XI_); + } + var + _Xq_ = + [0, + function(param){ + function _Xr_(param){return 1;} + function _Xs_(param){ + var match = menage[2][3]; + switch(match[0]){ + case 0: + var _Xt_ = 0; break; + case 1: + var _Xt_ = 0; break; + case 2: + var + propriete = match[1], + _Xu_ = 0 === propriete[9][0] ? 0 : 1, + _Xv_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _Xu_, + logement_situe_commune_desequi), + _Xw_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _Xx_ = + caml_call2 + (Runtime_ocaml_Runtime[115], propriete[10][2], _Xw_), + _Xy_ = caml_call2(Runtime_ocaml_Runtime[83], _Xx_, _Xv_), + _Xz_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _XA_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete[10][2], _Xz_), + _Xt_ = caml_call2(Runtime_ocaml_Runtime[83], _XA_, _Xy_); + break; + case 3: + var _Xt_ = 0; break; + default: + var + propriete$0 = match[1], + _XB_ = 0 === propriete$0[9][0] ? 0 : 1, + _XC_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + _XB_, + logement_situe_commune_desequi), + _XD_ = caml_call3(Runtime_ocaml_Runtime[57], 2020, 1, 1), + _XE_ = + caml_call2 + (Runtime_ocaml_Runtime[115], propriete$0[10][2], _XD_), + _XF_ = caml_call2(Runtime_ocaml_Runtime[83], _XE_, _XC_), + _XG_ = caml_call3(Runtime_ocaml_Runtime[57], 2018, 1, 1), + _XH_ = + caml_call2 + (Runtime_ocaml_Runtime[130], propriete$0[10][2], _XG_), + _Xt_ = caml_call2(Runtime_ocaml_Runtime[83], _XH_, _XF_); + } + return caml_call2(Runtime_ocaml_Runtime[29], _Pn_, _Xt_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Po_, [0], _Xs_, _Xr_); + }]; + return caml_call4 + (Runtime_ocaml_Runtime[63], _Pp_, _Xq_, _Xp_, _Xo_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _Pq_, _Xn_, _Xm_, _Xl_); + }], + _W4_ = caml_call4(Runtime_ocaml_Runtime[63], _Pr_, _W3_, _W2_, _W1_); + } + catch(_Xk_){ + var _W0_ = caml_wrap_exception(_Xk_); + if(_W0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pj_], 1); + throw caml_maybe_attach_backtrace(_W0_, 0); + } + var + condition_logement_pret = + caml_call3 + (Runtime_ocaml_Runtime[28], _Ps_, Runtime_ocaml_Runtime[12], _W4_); + try{ + var + _W6_ = function(param){return 0;}, + _W7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Pu_, 1); + }, + _W8_ = + [0, + function(param){ + function _W$_(param){return 1;} + function _Xa_(param){ + var + _Xi_ = + caml_call2 + (Runtime_ocaml_Runtime[83], + condition_logement_pret, + eligibilite_commune_dot_eligib), + _Xj_ = + caml_call2 + (Runtime_ocaml_Runtime[83], condition_logement_bailleur, _Xi_); + return caml_call2(Runtime_ocaml_Runtime[29], _Pv_, _Xj_); + } + var + _Xb_ = + [0, + function(param){ + function _Xc_(param){return 0;} + function _Xd_(param){ + switch(menage[9][0]){ + case 0: + var _Xe_ = 0; break; + case 1: + var _Xe_ = 0; break; + case 2: + var _Xe_ = 0; break; + case 3: + var _Xe_ = 0; break; + case 4: + var _Xe_ = 0; break; + case 5: + var _Xe_ = 0; break; + case 6: + var _Xe_ = 0; break; + case 7: + var _Xe_ = 1; break; + default: var _Xe_ = 0; + } + var + _Xf_ = caml_call3(Runtime_ocaml_Runtime[57], 2021, 1, 1), + _Xg_ = + caml_call2(Runtime_ocaml_Runtime[130], date_courante, _Xf_), + _Xh_ = caml_call2(Runtime_ocaml_Runtime[83], _Xg_, _Xe_); + return caml_call2(Runtime_ocaml_Runtime[29], _Pw_, _Xh_); + } + return caml_call4 + (Runtime_ocaml_Runtime[63], _Px_, [0], _Xd_, _Xc_); + }]; + return caml_call4(Runtime_ocaml_Runtime[63], _Py_, _Xb_, _Xa_, _W$_); + }], + _W9_ = caml_call4(Runtime_ocaml_Runtime[63], _Pz_, _W8_, _W7_, _W6_); + } + catch(_W__){ + var _W5_ = caml_wrap_exception(_W__); + if(_W5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Pt_], 1); + throw caml_maybe_attach_backtrace(_W5_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _PA_, Runtime_ocaml_Runtime[12], _W9_); + return [0, + date_courante, + eligibilite, + nombre_personnes_a_charge_pris, + coefficents_enfants_garde_alte]; + } + function calculette_aides_au_logement(calculette_aides_au_logement_i){ + var + menage = calculette_aides_au_logement_i[1], + demandeur = calculette_aides_au_logement_i[2], + date_courante = calculette_aides_au_logement_i[3], + ressources_menage_prises_en_co = calculette_aides_au_logement_i[4]; + try{ + var + _TY_ = function(param){return date_courante;}, + _TZ_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PC_, 1); + }, + _T0_ = caml_call4(Runtime_ocaml_Runtime[63], _PD_, [0], _TZ_, _TY_), + eligibilite_allocation_logemen$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _PE_, Runtime_ocaml_Runtime[16], _T0_); + } + catch(_Wq_){ + var _TX_ = caml_wrap_exception(_Wq_); + if(_TX_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PB_], 1); + throw caml_maybe_attach_backtrace(_TX_, 0); + } + try{ + var + _T2_ = function(param){return menage;}, + _T3_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PG_, 1); + }, + _T4_ = caml_call4(Runtime_ocaml_Runtime[63], _PH_, [0], _T3_, _T2_), + eligibilite_allocation_logemen$1 = + caml_call3(Runtime_ocaml_Runtime[28], _PI_, embed_menage, _T4_); + } + catch(_Wp_){ + var _T1_ = caml_wrap_exception(_Wp_); + if(_T1_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PF_], 1); + throw caml_maybe_attach_backtrace(_T1_, 0); + } + try{ + var + _T6_ = function(param){return demandeur;}, + _T7_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PK_, 1); + }, + _T8_ = caml_call4(Runtime_ocaml_Runtime[63], _PL_, [0], _T7_, _T6_), + eligibilite_allocation_logemen$2 = + caml_call3(Runtime_ocaml_Runtime[28], _PM_, embed_demandeur, _T8_); + } + catch(_Wo_){ + var _T5_ = caml_wrap_exception(_Wo_); + if(_T5_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PJ_], 1); + throw caml_maybe_attach_backtrace(_T5_, 0); + } + try{ + var + _T__ = function(param){return 0;}, + _T$_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PO_, 1); + }, + _Ua_ = caml_call4(Runtime_ocaml_Runtime[63], _PP_, [0], _T$_, _T__), + eligibilite_allocation_logemen$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _PQ_, Runtime_ocaml_Runtime[12], _Ua_); + } + catch(_Wn_){ + var _T9_ = caml_wrap_exception(_Wn_); + if(_T9_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PN_], 1); + throw caml_maybe_attach_backtrace(_T9_, 0); + } + var + _Ub_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _PR_, eligibilite_allocation_logemen), + [0, + eligibilite_allocation_logemen$0, + eligibilite_allocation_logemen$1, + eligibilite_allocation_logemen$2, + eligibilite_allocation_logemen$3]), + result = caml_call2(Runtime_ocaml_Runtime[27], _PS_, _Ub_), + eligibilite_allocation_logemen$4 = result[1], + eligibilite_allocation_logemen$5 = result[2]; + try{ + var + _Ud_ = function(param){return menage;}, + _Ue_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PU_, 1); + }, + _Uf_ = caml_call4(Runtime_ocaml_Runtime[63], _PV_, [0], _Ue_, _Ud_), + eligibilite_aide_personnalisee$0 = + caml_call3(Runtime_ocaml_Runtime[28], _PW_, embed_menage, _Uf_); + } + catch(_Wm_){ + var _Uc_ = caml_wrap_exception(_Wm_); + if(_Uc_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PT_], 1); + throw caml_maybe_attach_backtrace(_Uc_, 0); + } + try{ + var + _Uh_ = function(param){return demandeur;}, + _Ui_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _PY_, 1); + }, + _Uj_ = caml_call4(Runtime_ocaml_Runtime[63], _PZ_, [0], _Ui_, _Uh_), + eligibilite_aide_personnalisee$1 = + caml_call3(Runtime_ocaml_Runtime[28], _P0_, embed_demandeur, _Uj_); + } + catch(_Wl_){ + var _Ug_ = caml_wrap_exception(_Wl_); + if(_Ug_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _PX_], 1); + throw caml_maybe_attach_backtrace(_Ug_, 0); + } + try{ + var + _Ul_ = function(param){return date_courante;}, + _Um_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _P2_, 1); + }, + _Un_ = caml_call4(Runtime_ocaml_Runtime[63], _P3_, [0], _Um_, _Ul_), + eligibilite_aide_personnalisee$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _P4_, Runtime_ocaml_Runtime[16], _Un_); + } + catch(_Wk_){ + var _Uk_ = caml_wrap_exception(_Wk_); + if(_Uk_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _P1_], 1); + throw caml_maybe_attach_backtrace(_Uk_, 0); + } + var + _Uo_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _P5_, eligibilite_aide_personnalisee), + [0, + eligibilite_aide_personnalisee$0, + eligibilite_aide_personnalisee$1, + eligibilite_aide_personnalisee$2]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _P6_, _Uo_), + eligibilite_aide_personnalisee$3 = result$0[2], + eligibilite_aide_personnalisee$4 = result$0[3], + eligibilite_aide_personnalisee$5 = result$0[4]; + try{ + var + _Uq_ = function(param){return menage[2][3];}, + _Ur_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _P8_, 1); + }, + _Us_ = caml_call4(Runtime_ocaml_Runtime[63], _P9_, [0], _Ur_, _Uq_), + calcul_allocation_logement_dot = + caml_call3 + (Runtime_ocaml_Runtime[28], _P__, embed_mode_occupation, _Us_); + } + catch(_Wj_){ + var _Up_ = caml_wrap_exception(_Wj_); + if(_Up_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _P7_], 1); + throw caml_maybe_attach_backtrace(_Up_, 0); + } + try{ + var + _Uu_ = function(param){return ressources_menage_prises_en_co;}, + _Uv_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qa_, 1); + }, + _Uw_ = caml_call4(Runtime_ocaml_Runtime[63], _Qb_, [0], _Uv_, _Uu_), + calcul_allocation_logement_dot$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qc_, Runtime_ocaml_Runtime[13], _Uw_); + } + catch(_Wi_){ + var _Ut_ = caml_wrap_exception(_Wi_); + if(_Ut_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _P$_], 1); + throw caml_maybe_attach_backtrace(_Ut_, 0); + } + try{ + var + _Uy_ = function(param){return menage[5];}, + _Uz_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qe_, 1); + }, + _UA_ = caml_call4(Runtime_ocaml_Runtime[63], _Qf_, [0], _Uz_, _Uy_), + calcul_allocation_logement_dot$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qg_, embed_situation_familiale, _UA_); + } + catch(_Wh_){ + var _Ux_ = caml_wrap_exception(_Wh_); + if(_Ux_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qd_], 1); + throw caml_maybe_attach_backtrace(_Ux_, 0); + } + try{ + var + _UC_ = function(param){return eligibilite_allocation_logemen$5;}, + _UD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qi_, 1); + }, + _UE_ = caml_call4(Runtime_ocaml_Runtime[63], _Qj_, [0], _UD_, _UC_), + calcul_allocation_logement_dot$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qk_, Runtime_ocaml_Runtime[14], _UE_); + } + catch(_Wg_){ + var _UB_ = caml_wrap_exception(_Wg_); + if(_UB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qh_], 1); + throw caml_maybe_attach_backtrace(_UB_, 0); + } + try{ + var + _UG_ = function(param){return menage[2][9];}, + _UH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qm_, 1); + }, + _UI_ = caml_call4(Runtime_ocaml_Runtime[63], _Qn_, [0], _UH_, _UG_), + calcul_allocation_logement_dot$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qo_, embed_zone_d_habitation, _UI_); + } + catch(_Wf_){ + var _UF_ = caml_wrap_exception(_Wf_); + if(_UF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Ql_], 1); + throw caml_maybe_attach_backtrace(_UF_, 0); + } + try{ + var + _UK_ = function(param){return date_courante;}, + _UL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qq_, 1); + }, + _UM_ = caml_call4(Runtime_ocaml_Runtime[63], _Qr_, [0], _UL_, _UK_), + calcul_allocation_logement_dot$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Qs_, Runtime_ocaml_Runtime[16], _UM_); + } + catch(_We_){ + var _UJ_ = caml_wrap_exception(_We_); + if(_UJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qp_], 1); + throw caml_maybe_attach_backtrace(_UJ_, 0); + } + try{ + var + _UO_ = + function(param){ + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + return _Qu_; + case 1: + return _Qv_; + default: return _Qw_; + } + }, + _UP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Qx_, 1); + }, + _UQ_ = caml_call4(Runtime_ocaml_Runtime[63], _Qy_, [0], _UP_, _UO_), + calcul_allocation_logement_dot$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Qz_, + embed_type_aides_personnelle_l, + _UQ_); + } + catch(_Wd_){ + var _UN_ = caml_wrap_exception(_Wd_); + if(_UN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Qt_], 1); + throw caml_maybe_attach_backtrace(_UN_, 0); + } + try{ + var + _US_ = function(param){return menage[9];}, + _UT_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QB_, 1); + }, + _UU_ = caml_call4(Runtime_ocaml_Runtime[63], _QC_, [0], _UT_, _US_), + calcul_allocation_logement_dot$6 = + caml_call3(Runtime_ocaml_Runtime[28], _QD_, embed_collectivite, _UU_); + } + catch(_Wc_){ + var _UR_ = caml_wrap_exception(_Wc_); + if(_UR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QA_], 1); + throw caml_maybe_attach_backtrace(_UR_, 0); + } + var + _UV_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _QE_, calcul_allocation_logement), + [0, + calcul_allocation_logement_dot, + calcul_allocation_logement_dot$0, + calcul_allocation_logement_dot$1, + calcul_allocation_logement_dot$2, + calcul_allocation_logement_dot$3, + calcul_allocation_logement_dot$4, + calcul_allocation_logement_dot$5, + calcul_allocation_logement_dot$6]), + result$1 = caml_call2(Runtime_ocaml_Runtime[27], _QF_, _UV_), + calcul_allocation_logement_dot$7 = result$1[1], + calcul_allocation_logement_dot$8 = result$1[2]; + try{ + var + _UX_ = function(param){return menage[2][3];}, + _UY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QH_, 1); + }, + _UZ_ = caml_call4(Runtime_ocaml_Runtime[63], _QI_, [0], _UY_, _UX_), + calcul_aide_personnalisee_loge = + caml_call3 + (Runtime_ocaml_Runtime[28], _QJ_, embed_mode_occupation, _UZ_); + } + catch(_Wb_){ + var _UW_ = caml_wrap_exception(_Wb_); + if(_UW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QG_], 1); + throw caml_maybe_attach_backtrace(_UW_, 0); + } + try{ + var + _U1_ = function(param){return _QL_;}, + _U2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QM_, 1); + }, + _U3_ = caml_call4(Runtime_ocaml_Runtime[63], _QN_, [0], _U2_, _U1_), + calcul_aide_personnalisee_loge$0 = + caml_call3 + (Runtime_ocaml_Runtime[28], + _QO_, + embed_type_aides_personnelle_l, + _U3_); + } + catch(_Wa_){ + var _U0_ = caml_wrap_exception(_Wa_); + if(_U0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QK_], 1); + throw caml_maybe_attach_backtrace(_U0_, 0); + } + try{ + var + _U5_ = function(param){return ressources_menage_prises_en_co;}, + _U6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QQ_, 1); + }, + _U7_ = caml_call4(Runtime_ocaml_Runtime[63], _QR_, [0], _U6_, _U5_), + calcul_aide_personnalisee_loge$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _QS_, Runtime_ocaml_Runtime[13], _U7_); + } + catch(_V$_){ + var _U4_ = caml_wrap_exception(_V$_); + if(_U4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QP_], 1); + throw caml_maybe_attach_backtrace(_U4_, 0); + } + try{ + var + _U9_ = function(param){return menage[5];}, + _U__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QU_, 1); + }, + _U$_ = caml_call4(Runtime_ocaml_Runtime[63], _QV_, [0], _U__, _U9_), + calcul_aide_personnalisee_loge$3 = + caml_call3 + (Runtime_ocaml_Runtime[28], _QW_, embed_situation_familiale, _U$_); + } + catch(_V__){ + var _U8_ = caml_wrap_exception(_V__); + if(_U8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QT_], 1); + throw caml_maybe_attach_backtrace(_U8_, 0); + } + try{ + var + _Vb_ = function(param){return eligibilite_aide_personnalisee$4;}, + _Vc_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _QY_, 1); + }, + _Vd_ = caml_call4(Runtime_ocaml_Runtime[63], _QZ_, [0], _Vc_, _Vb_), + calcul_aide_personnalisee_loge$4 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q0_, Runtime_ocaml_Runtime[14], _Vd_); + } + catch(_V9_){ + var _Va_ = caml_wrap_exception(_V9_); + if(_Va_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _QX_], 1); + throw caml_maybe_attach_backtrace(_Va_, 0); + } + try{ + var + _Vf_ = function(param){return menage[2][9];}, + _Vg_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q2_, 1); + }, + _Vh_ = caml_call4(Runtime_ocaml_Runtime[63], _Q3_, [0], _Vg_, _Vf_), + calcul_aide_personnalisee_loge$5 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q4_, embed_zone_d_habitation, _Vh_); + } + catch(_V8_){ + var _Ve_ = caml_wrap_exception(_V8_); + if(_Ve_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q1_], 1); + throw caml_maybe_attach_backtrace(_Ve_, 0); + } + try{ + var + _Vj_ = function(param){return date_courante;}, + _Vk_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q6_, 1); + }, + _Vl_ = caml_call4(Runtime_ocaml_Runtime[63], _Q7_, [0], _Vk_, _Vj_), + calcul_aide_personnalisee_loge$6 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Q8_, Runtime_ocaml_Runtime[16], _Vl_); + } + catch(_V7_){ + var _Vi_ = caml_wrap_exception(_V7_); + if(_Vi_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q5_], 1); + throw caml_maybe_attach_backtrace(_Vi_, 0); + } + try{ + var + _Vn_ = function(param){return menage[9];}, + _Vo_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Q__, 1); + }, + _Vp_ = caml_call4(Runtime_ocaml_Runtime[63], _Q$_, [0], _Vo_, _Vn_), + calcul_aide_personnalisee_loge$7 = + caml_call3(Runtime_ocaml_Runtime[28], _Ra_, embed_collectivite, _Vp_); + } + catch(_V6_){ + var _Vm_ = caml_wrap_exception(_V6_); + if(_Vm_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Q9_], 1); + throw caml_maybe_attach_backtrace(_Vm_, 0); + } + var + _Vq_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Rb_, calcul_aide_personnalisee_loge$2), + [0, + calcul_aide_personnalisee_loge, + calcul_aide_personnalisee_loge$0, + calcul_aide_personnalisee_loge$1, + calcul_aide_personnalisee_loge$3, + calcul_aide_personnalisee_loge$4, + calcul_aide_personnalisee_loge$5, + calcul_aide_personnalisee_loge$6, + calcul_aide_personnalisee_loge$7]), + result$2 = caml_call2(Runtime_ocaml_Runtime[27], _Rc_, _Vq_), + calcul_aide_personnalisee_loge$8 = result$2[1], + calcul_aide_personnalisee_loge$9 = result$2[2]; + try{ + var + _Vs_ = function(param){return eligibilite_aide_personnalisee$5;}, + _Vt_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Re_, 1); + }, + _Vu_ = caml_call4(Runtime_ocaml_Runtime[63], _Rf_, [0], _Vt_, _Vs_); + } + catch(_V5_){ + var _Vr_ = caml_wrap_exception(_V5_); + if(_Vr_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rd_], 1); + throw caml_maybe_attach_backtrace(_Vr_, 0); + } + var + _Vv_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Rg_, _Vv_, _Vu_); + try{ + var + _Vx_ = + function(param){ + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _V4_ = 0; break; + case 1: + var _V4_ = 1; break; + default: var _V4_ = 1; + } + return caml_call2 + (Runtime_ocaml_Runtime[84], + eligibilite_aide_personnalisee$3, + _V4_); + }, + _Vy_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ri_, 1); + }, + _Vz_ = caml_call4(Runtime_ocaml_Runtime[63], _Rj_, [0], _Vy_, _Vx_); + } + catch(_V3_){ + var _Vw_ = caml_wrap_exception(_V3_); + if(_Vw_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rh_], 1); + throw caml_maybe_attach_backtrace(_Vw_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _Rk_, Runtime_ocaml_Runtime[12], _Vz_); + function _VA_(aide_finale){ + try{ + var + _VR_ = + function(param){ + var + _VV_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Rm_, + Runtime_ocaml_Runtime[13], + aide_finale), + _VW_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Rn_, + calcul_aide_personnalisee_loge$9), + _VV_), + _VX_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ro_, + Runtime_ocaml_Runtime[13], + _VW_), + aide_finale_apl = caml_call2(Runtime_ocaml_Runtime[27], _Rp_, _VX_), + _VY_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Rq_, + Runtime_ocaml_Runtime[13], + aide_finale), + _VZ_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Rr_, + calcul_allocation_logement_dot$8), + _VY_), + _V0_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Rs_, + Runtime_ocaml_Runtime[13], + _VZ_), + aide_finale_al = caml_call2(Runtime_ocaml_Runtime[27], _Rt_, _V0_); + if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) + return aide_finale; + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _V1_ = 1; break; + case 1: + var _V1_ = 0; break; + default: var _V1_ = 0; + } + var _V2_ = caml_call1(Runtime_ocaml_Runtime[67], _V1_); + return caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_aide_personnalisee$3, + _V2_) + ? caml_call2 + (Runtime_ocaml_Runtime[123], + aide_finale_apl, + aide_finale_al) + ? aide_finale_apl + : aide_finale_al + : eligibilite_aide_personnalisee$3 + ? aide_finale_apl + : aide_finale_al; + }, + _VS_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Ru_, 1); + }, + _VT_ = caml_call4(Runtime_ocaml_Runtime[63], _Rv_, [0], _VS_, _VR_); + return _VT_; + } + catch(_VU_){ + var _VQ_ = caml_wrap_exception(_VU_); + if(_VQ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rl_], 1); + throw caml_maybe_attach_backtrace(_VQ_, 0); + } + } + var + traitement_aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _Rw_, Runtime_ocaml_Runtime[10], _VA_); + try{ + var + _VC_ = + function(param){ + if(caml_call1(Runtime_ocaml_Runtime[67], eligibilite)) + return caml_call1(Runtime_ocaml_Runtime[31], cst_0$352); + switch(eligibilite_allocation_logemen$4[0]){ + case 0: + var _VG_ = 1; break; + case 1: + var _VG_ = 0; break; + default: var _VG_ = 0; + } + var _VH_ = caml_call1(Runtime_ocaml_Runtime[67], _VG_); + if + (! + caml_call2 + (Runtime_ocaml_Runtime[83], + eligibilite_aide_personnalisee$3, + _VH_)) + return eligibilite_aide_personnalisee$3 + ? calcul_aide_personnalisee_loge$8 + : calcul_allocation_logement_dot$7; + var + _VI_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Ry_, + Runtime_ocaml_Runtime[13], + calcul_allocation_logement_dot$7), + _VJ_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Rz_, + calcul_allocation_logement_dot$8), + _VI_), + _VK_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _RA_, + Runtime_ocaml_Runtime[13], + _VJ_), + _VL_ = caml_call2(Runtime_ocaml_Runtime[27], _RB_, _VK_), + _VM_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _RC_, + Runtime_ocaml_Runtime[13], + calcul_aide_personnalisee_loge$8), + _VN_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _RD_, + calcul_aide_personnalisee_loge$9), + _VM_), + _VO_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _RE_, + Runtime_ocaml_Runtime[13], + _VN_), + _VP_ = caml_call2(Runtime_ocaml_Runtime[27], _RF_, _VO_); + return caml_call2(Runtime_ocaml_Runtime[123], _VP_, _VL_) + ? calcul_aide_personnalisee_loge$8 + : calcul_allocation_logement_dot$7; + }, + _VD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RG_, 1); + }, + _VE_ = caml_call4(Runtime_ocaml_Runtime[63], _RH_, [0], _VD_, _VC_); + } + catch(_VF_){ + var _VB_ = caml_wrap_exception(_VF_); + if(_VB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Rx_], 1); + throw caml_maybe_attach_backtrace(_VB_, 0); + } + var + aide_finale_formule = + caml_call3 + (Runtime_ocaml_Runtime[28], _RI_, Runtime_ocaml_Runtime[13], _VE_); + return [0, + eligibilite, + aide_finale_formule, + traitement_aide_finale, + coefficents_enfants_garde_alte]; + } + function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ + var + menage = calculette_aides_au_logement_g[1], + demandeur = calculette_aides_au_logement_g[2], + date_courante = calculette_aides_au_logement_g[3], + ressources_menage_prises_en_co = calculette_aides_au_logement_g[4]; + try{ + var + _SC_ = + function(param){ + var + _TO_ = menage[9], + _TP_ = menage[8], + _TQ_ = menage[7], + _TR_ = menage[6], + _TS_ = menage[5], + _TT_ = menage[4], + _TU_ = menage[3]; + function _TV_(personne_a_charge){ + if(0 !== personne_a_charge[0]) return 1; + var enfant = personne_a_charge[1]; + return 0 === enfant[8][0] ? 1 : 0; + } + var _TW_ = caml_call2(Runtime_ocaml_Runtime[90], _TV_, _TU_); + return [0, + menage[1], + menage[2], + _TW_, + _TT_, + _TS_, + _TR_, + _TQ_, + _TP_, + _TO_]; + }, + _SD_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RK_, 1); + }, + _SE_ = caml_call4(Runtime_ocaml_Runtime[63], _RL_, [0], _SD_, _SC_); + } + catch(_TN_){ + var _SB_ = caml_wrap_exception(_TN_); + if(_SB_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RJ_], 1); + throw caml_maybe_attach_backtrace(_SB_, 0); + } + var + menage_sans_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _RM_, embed_menage, _SE_); + try{ + var + _SG_ = function(param){return menage;}, + _SH_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RO_, 1); + }, + _SI_ = caml_call4(Runtime_ocaml_Runtime[63], _RP_, [0], _SH_, _SG_), + calculette_dot_menage = + caml_call3(Runtime_ocaml_Runtime[28], _RQ_, embed_menage, _SI_); + } + catch(_TM_){ + var _SF_ = caml_wrap_exception(_TM_); + if(_SF_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RN_], 1); + throw caml_maybe_attach_backtrace(_SF_, 0); + } + try{ + var + _SK_ = function(param){return demandeur;}, + _SL_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RS_, 1); + }, + _SM_ = caml_call4(Runtime_ocaml_Runtime[63], _RT_, [0], _SL_, _SK_), + calculette_dot_demandeur = + caml_call3(Runtime_ocaml_Runtime[28], _RU_, embed_demandeur, _SM_); + } + catch(_TL_){ + var _SJ_ = caml_wrap_exception(_TL_); + if(_SJ_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RR_], 1); + throw caml_maybe_attach_backtrace(_SJ_, 0); + } + try{ + var + _SO_ = function(param){return date_courante;}, + _SP_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _RW_, 1); + }, + _SQ_ = caml_call4(Runtime_ocaml_Runtime[63], _RX_, [0], _SP_, _SO_), + calculette_dot_date_courante = + caml_call3 + (Runtime_ocaml_Runtime[28], _RY_, Runtime_ocaml_Runtime[16], _SQ_); + } + catch(_TK_){ + var _SN_ = caml_wrap_exception(_TK_); + if(_SN_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RV_], 1); + throw caml_maybe_attach_backtrace(_SN_, 0); + } + try{ + var + _SS_ = function(param){return ressources_menage_prises_en_co;}, + _ST_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _R0_, 1); + }, + _SU_ = caml_call4(Runtime_ocaml_Runtime[63], _R1_, [0], _ST_, _SS_), + calculette_dot_ressources_mena = + caml_call3 + (Runtime_ocaml_Runtime[28], _R2_, Runtime_ocaml_Runtime[13], _SU_); + } + catch(_TJ_){ + var _SR_ = caml_wrap_exception(_TJ_); + if(_SR_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _RZ_], 1); + throw caml_maybe_attach_backtrace(_SR_, 0); + } + var + _SV_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _R3_, calculette_aides_au_logement), + [0, + calculette_dot_menage, + calculette_dot_demandeur, + calculette_dot_date_courante, + calculette_dot_ressources_mena]), + result = caml_call2(Runtime_ocaml_Runtime[27], _R4_, _SV_), + calculette_dot_eligibilite = result[1], + calculette_dot_aide_finale_for = result[2], + calculette_dot_traitement_aide = result[3], + calculette_dot_coefficents_enf = result[4]; + try{ + var + _SX_ = function(param){return menage_sans_enfants_garde_alte;}, + _SY_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _R6_, 1); + }, + _SZ_ = caml_call4(Runtime_ocaml_Runtime[63], _R7_, [0], _SY_, _SX_), + calculette_sans_garde_alternee = + caml_call3(Runtime_ocaml_Runtime[28], _R8_, embed_menage, _SZ_); + } + catch(_TI_){ + var _SW_ = caml_wrap_exception(_TI_); + if(_SW_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _R5_], 1); + throw caml_maybe_attach_backtrace(_SW_, 0); + } + try{ + var + _S1_ = function(param){return demandeur;}, + _S2_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _R__, 1); + }, + _S3_ = caml_call4(Runtime_ocaml_Runtime[63], _R$_, [0], _S2_, _S1_), + calculette_sans_garde_alternee$0 = + caml_call3(Runtime_ocaml_Runtime[28], _Sa_, embed_demandeur, _S3_); + } + catch(_TH_){ + var _S0_ = caml_wrap_exception(_TH_); + if(_S0_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _R9_], 1); + throw caml_maybe_attach_backtrace(_S0_, 0); + } + try{ + var + _S5_ = function(param){return date_courante;}, + _S6_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sc_, 1); + }, + _S7_ = caml_call4(Runtime_ocaml_Runtime[63], _Sd_, [0], _S6_, _S5_), + calculette_sans_garde_alternee$1 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Se_, Runtime_ocaml_Runtime[16], _S7_); + } + catch(_TG_){ + var _S4_ = caml_wrap_exception(_TG_); + if(_S4_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sb_], 1); + throw caml_maybe_attach_backtrace(_S4_, 0); + } + try{ + var + _S9_ = function(param){return ressources_menage_prises_en_co;}, + _S__ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sg_, 1); + }, + _S$_ = caml_call4(Runtime_ocaml_Runtime[63], _Sh_, [0], _S__, _S9_), + calculette_sans_garde_alternee$2 = + caml_call3 + (Runtime_ocaml_Runtime[28], _Si_, Runtime_ocaml_Runtime[13], _S$_); + } + catch(_TF_){ + var _S8_ = caml_wrap_exception(_TF_); + if(_S8_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sf_], 1); + throw caml_maybe_attach_backtrace(_S8_, 0); + } + var + _Ta_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], _Sj_, calculette_aides_au_logement), + [0, + calculette_sans_garde_alternee, + calculette_sans_garde_alternee$0, + calculette_sans_garde_alternee$1, + calculette_sans_garde_alternee$2]), + result$0 = caml_call2(Runtime_ocaml_Runtime[27], _Sk_, _Ta_), + calculette_sans_garde_alternee$3 = result$0[2]; + try{ + var + _Tc_ = function(param){return calculette_dot_eligibilite;}, + _Td_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sm_, 1); + }, + _Te_ = caml_call4(Runtime_ocaml_Runtime[63], _Sn_, [0], _Td_, _Tc_); + } + catch(_TE_){ + var _Tb_ = caml_wrap_exception(_TE_); + if(_Tb_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sl_], 1); + throw caml_maybe_attach_backtrace(_Tb_, 0); + } + var + eligibilite = + caml_call3 + (Runtime_ocaml_Runtime[28], _So_, Runtime_ocaml_Runtime[12], _Te_); + try{ + var + _Tg_ = function(param){return calculette_dot_coefficents_enf;}, + _Th_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sq_, 1); + }, + _Ti_ = caml_call4(Runtime_ocaml_Runtime[63], _Sr_, [0], _Th_, _Tg_); + } + catch(_TD_){ + var _Tf_ = caml_wrap_exception(_TD_); + if(_Tf_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _Sp_], 1); + throw caml_maybe_attach_backtrace(_Tf_, 0); + } + var + _Tj_ = caml_call1(Runtime_ocaml_Runtime[18], Runtime_ocaml_Runtime[15]), + coefficents_enfants_garde_alte = + caml_call3(Runtime_ocaml_Runtime[28], _Ss_, _Tj_, _Ti_); + try{ + var + _Tl_ = + function(param){ + var + _Tp_ = caml_call1(Runtime_ocaml_Runtime[46], cst_0$353), + _Tq_ = + caml_call1 + (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte); + if(caml_call2(Runtime_ocaml_Runtime[86], _Tq_, _Tp_)) + var _Tr_ = caml_call1(Runtime_ocaml_Runtime[31], cst_0$354); + else + var + _Tw_ = + caml_call1 + (Runtime_ocaml_Runtime[68], coefficents_enfants_garde_alte), + _Tx_ = caml_call1(Runtime_ocaml_Runtime[69], _Tw_), + _Ty_ = caml_call1(Runtime_ocaml_Runtime[39], cst_0$355), + _Tz_ = + function(sum1, sum2){ + return caml_call2(Runtime_ocaml_Runtime[92], sum1, sum2); + }, + _TA_ = + caml_call3 + (Runtime_ocaml_Runtime[88], + _Tz_, + _Ty_, + coefficents_enfants_garde_alte), + _TB_ = caml_call2(Runtime_ocaml_Runtime[107], _TA_, _Tx_), + _TC_ = + caml_call2 + (Runtime_ocaml_Runtime[98], + calculette_dot_aide_finale_for, + calculette_sans_garde_alternee$3), + _Tr_ = caml_call2(Runtime_ocaml_Runtime[104], _TC_, _TB_); + var + _Ts_ = + caml_call2 + (Runtime_ocaml_Runtime[93], + calculette_sans_garde_alternee$3, + _Tr_), + _Tt_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Su_, + Runtime_ocaml_Runtime[13], + _Ts_), + _Tu_ = + caml_call1 + (caml_call2 + (Runtime_ocaml_Runtime[26], + _Sv_, + calculette_dot_traitement_aide), + _Tt_), + _Tv_ = + caml_call3 + (Runtime_ocaml_Runtime[28], + _Sw_, + Runtime_ocaml_Runtime[13], + _Tu_); + return caml_call2(Runtime_ocaml_Runtime[27], _Sx_, _Tv_); + }, + _Tm_ = + function(param){ + return caml_call2(Runtime_ocaml_Runtime[29], _Sy_, 1); + }, + _Tn_ = caml_call4(Runtime_ocaml_Runtime[63], _Sz_, [0], _Tm_, _Tl_); + } + catch(_To_){ + var _Tk_ = caml_wrap_exception(_To_); + if(_Tk_ === Runtime_ocaml_Runtime[2]) + throw caml_maybe_attach_backtrace + ([0, Runtime_ocaml_Runtime[8], _St_], 1); + throw caml_maybe_attach_backtrace(_Tk_, 0); + } + var + aide_finale = + caml_call3 + (Runtime_ocaml_Runtime[28], _SA_, Runtime_ocaml_Runtime[13], _Tn_); + return [0, eligibilite, aide_finale]; + } + var + Law_source_Aides_logement = [0, TypePret, embed_type_pret, @@ -135837,22 +128246,22 @@ embed_type_aides_personnelle_l, SituationFamiliale, embed_situation_familiale, - PriseEnCharge$0, - embed_prise_en_charge$0, + PriseEnCharge, + embed_prise_en_charge, TypeLogementFoyer, embed_type_logement_foyer, CategorieEquivalenceLoyerAlloc, embed_categorie_equivalence_lo, SituationFamilialeCalculAPL, embed_situation_familiale_calc, - Collectivite$0, - embed_collectivite$0, + Collectivite, + embed_collectivite, PriseEnChargeEnfant, embed_prise_en_charge_enfant, - SituationObligationScolaire$0, - embed_situation_obligation_sco$0, - ElementPrestationsFamiliales$0, - embed_element_prestations_fami$0, + SituationObligationScolaire, + embed_situation_obligation_sco, + ElementPrestationsFamiliales, + embed_element_prestations_fami, ConventionBailleurSocial, embed_convention_bailleur_soci, ConventionANHA, @@ -135907,14 +128316,14 @@ embed_calculette_aides_au_loge, CalculetteAidesAuLogementGarde, embed_calculette_aides_au_loge$0, - BaseMensuelleAllocationsFamili$1, - embed_base_mensuelle_allocatio$1, - VerificationAgeInferieurOuEgal$1, - embed_verification_age_inferie$1, - VerificationAgeSuperieurA$0, - embed_verification_age_superie$1, - Smic$0, - embed_smic$0, + BaseMensuelleAllocationsFamili, + embed_base_mensuelle_allocatio, + VerificationAgeInferieurOuEgal, + embed_verification_age_inferie, + VerificationAgeSuperieurA, + embed_verification_age_superie, + Smic, + embed_smic, NeufOuAncien, embed_neuf_ou_ancien, TrancheRevenu, @@ -136007,14 +128416,14 @@ embed_calculette_aides_au_loge$1, CalculetteAidesAuLogementGarde$0, embed_calculette_aides_au_loge$2, - BaseMensuelleAllocationsFamili$2, - embed_base_mensuelle_allocatio$2, - VerificationAgeInferieurOuEgal$2, - embed_verification_age_inferie$2, - VerificationAgeSuperieurAIn$0, - embed_verification_age_superie$2, - SmicIn$0, - embed_smic_in$0, + BaseMensuelleAllocationsFamili$0, + embed_base_mensuelle_allocatio$0, + VerificationAgeInferieurOuEgal$0, + embed_verification_age_inferie$0, + VerificationAgeSuperieurAIn, + embed_verification_age_superie$0, + SmicIn, + embed_smic_in, EligibilitePrestationsFamilial$0, embed_eligibilite_prestations_$0, contributions_sociales_aides_p, @@ -136023,10 +128432,10 @@ calcul_nombre_parts_accession_, ouverture_droits_retraite, impaye_depense_logement, - base_mensuelle_allocations_fam$5, - verification_age_inferieur_ou_$5, - verification_age_superieur_a$1, - smic$1, + base_mensuelle_allocations_fam, + verification_age_inferieur_ou_, + verification_age_superieur_a, + smic, arrondi_centaine_superieure, traitement_nul_tout_le_temps, calcul_aide_personnalisee_loge, @@ -136045,3584 +128454,4432 @@ eligibilite_aide_personnalisee, calculette_aides_au_logement, calculette_aides_au_logement_g]; - caml_register_global - (9736,Law_source_Aides_logement,"Law_source__Aides_logement"); - function type_pret_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"D331_32","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"D331_63_64","payload":arg$0}; - case 2:var arg$1=param[1];return {"kind":"D331_59_8","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"D331_76_1","payload":arg$2}; - default:var arg$3=param[1];return {"kind":"Autre","payload":arg$3}}} - function type_pret_of_jsoo(type_pret) - {var cons=caml_string_of_jsstring(type_pret.kind); - if(! caml_string_notequal(cons,cst_Autre$2))return _acu_; - if(! caml_string_notequal(cons,cst_D331_32$0))return _act_; - if(! caml_string_notequal(cons,cst_D331_59_8$0))return _acs_; - if(! caml_string_notequal(cons,cst_D331_63_64$0))return _acr_; - if(! caml_string_notequal(cons,cst_D331_76_1$0))return _acq_; - var _alD_=caml_call2(Stdlib_Printf[4],_acp_,cons); - return caml_call1(Stdlib[2],_alD_)} - function titulaire_pret_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Demandeur","payload":arg}} - var arg$0=param[1]; - return {"kind":"VendeurQuandDemandeurAContratLocationAccession", - "payload":arg$0}} - function titulaire_pret_of_jsoo(titulaire_pret) - {var cons=caml_string_of_jsstring(titulaire_pret.kind); - if(! caml_string_notequal(cons,cst_Demandeur$0))return _acx_; - if(! caml_string_notequal(cons,cst_VendeurQuandDemandeurACont$0)) - return _acw_; - var _alC_=caml_call2(Stdlib_Printf[4],_acv_,cons); - return caml_call1(Stdlib[2],_alC_)} - function type_travaux_logement_d832_15_(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"TravauxPourAcquisitionD832_15_1","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"TravauxSurLogementDejaAcquisD832_15_2", - "payload":arg$0}; - default: - var arg$1=param[1];return {"kind":"PasDeTravaux","payload":arg$1}}} - function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15) - {var cons=caml_string_of_jsstring(type_travaux_logement_d832_15.kind); - if(! caml_string_notequal(cons,cst_PasDeTravaux$1))return _acB_; - if(! caml_string_notequal(cons,cst_TravauxPourAcquisitionD832$0)) - return _acA_; - if(! caml_string_notequal(cons,cst_TravauxSurLogementDejaAcqu)) - return _acz_; - var _alB_=caml_call2(Stdlib_Printf[4],_acy_,cons); - return caml_call1(Stdlib[2],_alB_)} - function type_travaux_logement_r842_5_t(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"ObjectifDecenceLogement","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"PrevuDansListeR321_15","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"AgrandirOuRendreHabitableD331_63","payload":arg$1}; - default: - var arg$2=param[1];return {"kind":"PasDeTravaux","payload":arg$2}}} - function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5) - {var cons=caml_string_of_jsstring(type_travaux_logement_r842_5.kind); - if(! caml_string_notequal(cons,cst_AgrandirOuRendreHabitableD$0)) - return _acG_; - if(! caml_string_notequal(cons,cst_ObjectifDecenceLogement)) - return _acF_; - if(! caml_string_notequal(cons,cst_PasDeTravaux$2))return _acE_; - if(! caml_string_notequal(cons,cst_PrevuDansListeR321_15))return _acD_; - var _alA_=caml_call2(Stdlib_Printf[4],_acC_,cons); - return caml_call1(Stdlib[2],_alA_)} - function ameliore_par_occupant_to_jsoo(param) - {if(0 === param[0]){var arg=param[1];return {"kind":"Oui","payload":arg}} - var arg$0=param[1]; - return {"kind":"Non","payload":arg$0}} - function ameliore_par_occupant_of_jsoo(ameliore_par_occupant) - {var cons=caml_string_of_jsstring(ameliore_par_occupant.kind); - if(! caml_string_notequal(cons,cst_Non$2))return _acJ_; - if(! caml_string_notequal(cons,cst_Oui$1))return _acI_; - var _alz_=caml_call2(Stdlib_Printf[4],_acH_,cons); - return caml_call1(Stdlib[2],_alz_)} - function limite_tranche_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t38=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"Revenu","payload":t38}} - var arg$0=param[1]; - return {"kind":"Infini","payload":arg$0}} - function limite_tranche_of_jsoo(limite_tranche) - {var cons=caml_string_of_jsstring(limite_tranche.kind); - if(! caml_string_notequal(cons,cst_Infini$1))return _acL_; - if(caml_string_notequal(cons,cst_Revenu$1)) - {var _alx_=caml_call2(Stdlib_Printf[4],_acK_,cons); - return caml_call1(Stdlib[2],_alx_)} - var _aly_=caml_call1(Runtime_ocaml_Runtime[42],limite_tranche.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aly_)]} - function limite_tranche_decimal_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t44=caml_call1(Runtime_ocaml_Runtime[43],arg); - return {"kind":"Revenu","payload":t44}} - var arg$0=param[1]; - return {"kind":"Infini","payload":arg$0}} - function limite_tranche_decimal_of_jsoo(limite_tranche_decimal) - {var cons=caml_string_of_jsstring(limite_tranche_decimal.kind); - if(! caml_string_notequal(cons,cst_Infini$2))return _acN_; - if(! caml_string_notequal(cons,cst_Revenu$2)) - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42],limite_tranche_decimal.payload)]; - var _alw_=caml_call2(Stdlib_Printf[4],_acM_,cons); - return caml_call1(Stdlib[2],_alw_)} - function prestation_recue_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ComplementFamilial","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"AllocationJeuneEnfant","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationSoutienEnfantHandicape","payload":arg$3}; - default: - var arg$4=param[1]; - return {"kind":"AllocationAdulteHandicape","payload":arg$4}}} - function prestation_recue_of_jsoo(prestation_recue) - {var cons=caml_string_of_jsstring(prestation_recue.kind); - if(! caml_string_notequal(cons,cst_AllocationAdulteHandicape)) - return _acU_; - if(! caml_string_notequal(cons,cst_AllocationJeuneEnfant$0)) - return _acT_; - if(! caml_string_notequal(cons,cst_AllocationSoutienEnfantHan$0)) - return _acS_; - if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$3)) - return _acR_; - if(! caml_string_notequal(cons,cst_AllocationsFamiliales$3)) - return _acQ_; - if(! caml_string_notequal(cons,cst_ComplementFamilial$0))return _acP_; - var _alv_=caml_call2(Stdlib_Printf[4],_acO_,cons); - return caml_call1(Stdlib[2],_alv_)} - function parent_ou_autre_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t63=caml_call1(Runtime_ocaml_Runtime[43],arg); - return {"kind":"DemandeurOuConjointOuParentOuViaPartsSocietes", - "payload":t63}} - var arg$0=param[1]; - return {"kind":"Autre","payload":arg$0}} - function parent_ou_autre_of_jsoo(parent_ou_autre) - {var cons=caml_string_of_jsstring(parent_ou_autre.kind); - if(! caml_string_notequal(cons,cst_Autre$3))return _acW_; - if(! caml_string_notequal(cons,cst_DemandeurOuConjointOuParen$0)) - return [0, - caml_call1(Runtime_ocaml_Runtime[42],parent_ou_autre.payload)]; - var _alu_=caml_call2(Stdlib_Printf[4],_acV_,cons); - return caml_call1(Stdlib[2],_alu_)} - function situation_garde_alternee_to_js(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"PasDeGardeAlternee","payload":arg}} - var arg$0=param[1],t71=caml_call1(Runtime_ocaml_Runtime[43],arg$0); - return {"kind":"GardeAlterneeCoefficientPriseEnCharge","payload":t71}} - function situation_garde_alternee_of_js(situation_garde_alternee) - {var cons=caml_string_of_jsstring(situation_garde_alternee.kind); - if(! caml_string_notequal(cons,cst_GardeAlterneeCoefficientPr)) - return [1, - caml_call1 - (Runtime_ocaml_Runtime[42],situation_garde_alternee.payload)]; - if(! caml_string_notequal(cons,cst_PasDeGardeAlternee))return _acY_; - var _alt_=caml_call2(Stdlib_Printf[4],_acX_,cons); - return caml_call1(Stdlib[2],_alt_)} - function parente_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Ascendant","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"Descendant","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"CollateralDeuxiemeTroisiemeDegre","payload":arg$1}}} - function parente_of_jsoo(parente) - {var cons=caml_string_of_jsstring(parente.kind); - if(! caml_string_notequal(cons,cst_Ascendant$0))return _ac2_; - if(! caml_string_notequal(cons,cst_CollateralDeuxiemeTroisiem)) - return _ac1_; - if(! caml_string_notequal(cons,cst_Descendant$0))return _ac0_; - var _als_=caml_call2(Stdlib_Printf[4],_acZ_,cons); - return caml_call1(Stdlib[2],_als_)} - function date_de_naissance_ou_mois_de_g(param) - {switch(param[0]) - {case 0: - var arg=param[1],t82=caml_call1(Runtime_jsoo_Runtime[5],arg); - return {"kind":"DateDeNaissance","payload":t82}; - case 1: - var arg$0=param[1]; - return {"kind":"AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", - "payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", - "payload":arg$1}}} - function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g) - {var cons=caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); - if(! caml_string_notequal(cons,cst_ApresPremierJourMoisCivilT)) - return _ac5_; - if(! caml_string_notequal(cons,cst_AvantPremierJourMoisCivilT$0)) - return _ac4_; - if(! caml_string_notequal(cons,cst_DateDeNaissance$0)) - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - date_de_naissance_ou_mois_de_g.payload)]; - var _alr_=caml_call2(Stdlib_Printf[4],_ac3_,cons); - return caml_call1(Stdlib[2],_alr_)} - function zone_d_habitation_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Zone1","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Zone2","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Zone3","payload":arg$1}}} - function zone_d_habitation_of_jsoo(zone_d_habitation) - {var cons=caml_string_of_jsstring(zone_d_habitation.kind); - if(! caml_string_notequal(cons,cst_Zone1$0))return _ac9_; - if(! caml_string_notequal(cons,cst_Zone2$0))return _ac8_; - if(! caml_string_notequal(cons,cst_Zone3$0))return _ac7_; - var _alq_=caml_call2(Stdlib_Printf[4],_ac6_,cons); - return caml_call1(Stdlib[2],_alq_)} - function paiement_logement_distinct_pro(param) - {if(0 === param[0]) - {var arg=param[1],t97=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"OuiAvecLoyerOuCharges","payload":t97}} - var arg$0=param[1]; - return {"kind":"Non","payload":arg$0}} - function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro) - {var cons=caml_string_of_jsstring(paiement_logement_distinct_pro.kind); - if(! caml_string_notequal(cons,cst_Non$3))return _ac$_; - if(caml_string_notequal(cons,cst_OuiAvecLoyerOuCharges$0)) - {var _alo_=caml_call2(Stdlib_Printf[4],_ac__,cons); - return caml_call1(Stdlib[2],_alo_)} - var - _alp_= - caml_call1 - (Runtime_ocaml_Runtime[42],paiement_logement_distinct_pro.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_alp_)]} - function versement_a_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Bailleur","payload":arg}; - case 1: - var arg$0=param[1];return {"kind":"Beneficiaire","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"EtablissementHabilite","payload":arg$1}}} - function versement_a_of_jsoo(versement_a) - {var cons=caml_string_of_jsstring(versement_a.kind); - if(! caml_string_notequal(cons,cst_Bailleur$0))return _add_; - if(! caml_string_notequal(cons,cst_Beneficiaire))return _adc_; - if(! caml_string_notequal(cons,cst_EtablissementHabilite))return _adb_; - var _aln_=caml_call2(Stdlib_Printf[4],_ada_,cons); - return caml_call1(Stdlib[2],_aln_)} - function depense_logement_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t110=caml_call1(Runtime_ocaml_Runtime[35],arg); - return {"kind":"TotalAnnuelEcheances","payload":t110}; - case 1: - var arg$0=param[1],t112=caml_call1(Runtime_ocaml_Runtime[35],arg$0); - return {"kind":"Mensualite","payload":t112}; - default: - var arg$1=param[1],t114=caml_call1(Runtime_ocaml_Runtime[35],arg$1); - return {"kind":"Loyer","payload":t114}}} - function depense_logement_of_jsoo(depense_logement) - {var cons=caml_string_of_jsstring(depense_logement.kind); - if(! caml_string_notequal(cons,cst_Loyer$0)) - {var - _alm_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [2,caml_call1(Runtime_ocaml_Runtime[33],_alm_)]} - if(! caml_string_notequal(cons,cst_Mensualite)) - {var - _all_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [1,caml_call1(Runtime_ocaml_Runtime[33],_all_)]} - if(caml_string_notequal(cons,cst_TotalAnnuelEcheances)) - {var _alj_=caml_call2(Stdlib_Printf[4],_ade_,cons); - return caml_call1(Stdlib[2],_alj_)} - var - _alk_= - caml_call1(Runtime_ocaml_Runtime[42],depense_logement.payload); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_alk_)]} - function mode_occupation_impaye_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"ImpayeLoyer","payload":arg}} - var arg$0=param[1]; - return {"kind":"ImpayePret","payload":arg$0}} - function mode_occupation_impaye_of_jsoo(mode_occupation_impaye) - {var cons=caml_string_of_jsstring(mode_occupation_impaye.kind); - if(! caml_string_notequal(cons,cst_ImpayeLoyer))return _adh_; - if(! caml_string_notequal(cons,cst_ImpayePret))return _adg_; - var _ali_=caml_call2(Stdlib_Printf[4],_adf_,cons); - return caml_call1(Stdlib[2],_ali_)} - function type_eligibilite_allocation_lo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"PasEligible","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationLogementFamiliale","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"AllocationLogementSociale","payload":arg$1}}} - function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo) - {var cons=caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); - if(! caml_string_notequal(cons,cst_AllocationLogementFamilial$1)) - return _adl_; - if(! caml_string_notequal(cons,cst_AllocationLogementSociale$1)) - return _adk_; - if(! caml_string_notequal(cons,cst_PasEligible))return _adj_; - var _alh_=caml_call2(Stdlib_Printf[4],_adi_,cons); - return caml_call1(Stdlib[2],_alh_)} - function accord_financement_representan(param) - {if(0 === param[0]) - {var arg=param[1],t132=caml_call1(Runtime_jsoo_Runtime[5],arg); - return {"kind":"Accord","payload":t132}} - var arg$0=param[1]; - return {"kind":"PasdAccord","payload":arg$0}} - function accord_financement_representan$0(accord_financement_representan) - {var cons=caml_string_of_jsstring(accord_financement_representan.kind); - if(! caml_string_notequal(cons,cst_Accord$0)) - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - accord_financement_representan.payload)]; - if(! caml_string_notequal(cons,cst_PasdAccord$0))return _adn_; - var _alg_=caml_call2(Stdlib_Printf[4],_adm_,cons); - return caml_call1(Stdlib[2],_alg_)} - function type_aides_personnelle_logemen(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"AidePersonnaliseeLogement","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationLogementFamiliale","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"AllocationLogementSociale","payload":arg$1}}} - function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen) - {var cons=caml_string_of_jsstring(type_aides_personnelle_logemen.kind); - if(! caml_string_notequal(cons,cst_AidePersonnaliseeLogement)) - return _adr_; - if(! caml_string_notequal(cons,cst_AllocationLogementFamilial$2)) - return _adq_; - if(! caml_string_notequal(cons,cst_AllocationLogementSociale$2)) - return _adp_; - var _alf_=caml_call2(Stdlib_Printf[4],_ado_,cons); - return caml_call1(Stdlib[2],_alf_)} - function situation_familiale_to_jsoo(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Celibataire","payload":arg}; - case 1: - var arg$0=param[1],t147=caml_call1(Runtime_jsoo_Runtime[5],arg$0); - return {"kind":"Maries","payload":t147}; - case 2:var arg$1=param[1];return {"kind":"Pacses","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"Concubins","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"CelibataireSepareDeFait","payload":arg$3}; - default: - var arg$4=param[1]; - return {"kind":"ConcubinageDontSepareDeFait","payload":arg$4}}} - function situation_familiale_of_jsoo(situation_familiale) - {var cons=caml_string_of_jsstring(situation_familiale.kind); - if(! caml_string_notequal(cons,cst_Celibataire))return _adx_; - if(! caml_string_notequal(cons,cst_CelibataireSepareDeFait)) - return _adw_; - if(! caml_string_notequal(cons,cst_ConcubinageDontSepareDeFai)) - return _adv_; - if(! caml_string_notequal(cons,cst_Concubins$0))return _adu_; - if(! caml_string_notequal(cons,cst_Maries)) - return [1, - caml_call1(Runtime_jsoo_Runtime[4],situation_familiale.payload)]; - if(! caml_string_notequal(cons,cst_Pacses))return _adt_; - var _ale_=caml_call2(Stdlib_Printf[4],_ads_,cons); - return caml_call1(Stdlib[2],_ale_)} - function prise_en_charge_to_jsoo$0(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ResidenceAlterneeAllocataireUnique","payload":arg$0}; - default: - var arg$1=param[1]; - return {"kind":"ResidenceAlterneeAllocationsPartagee", - "payload":arg$1}}} - function prise_en_charge_of_jsoo$0(prise_en_charge) - {var cons=caml_string_of_jsstring(prise_en_charge.kind); - if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$3)) - return _adB_; - if(! caml_string_notequal(cons,cst_ResidenceAlterneeAllocatai)) - return _adA_; - if(! caml_string_notequal(cons,cst_ResidenceAlterneeAllocatio)) - return _adz_; - var _ald_=caml_call2(Stdlib_Printf[4],_ady_,cons); - return caml_call1(Stdlib[2],_ald_)} - function type_logement_foyer_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"LogementPersonnesAgeesOuHandicapees","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"ResidenceSociale","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind": - "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", - "payload":arg$1}; - default:var arg$2=param[1];return {"kind":"Autre","payload":arg$2}}} - function type_logement_foyer_of_jsoo(type_logement_foyer) - {var cons=caml_string_of_jsstring(type_logement_foyer.kind); - if(! caml_string_notequal(cons,cst_Autre$4))return _adG_; - if(! caml_string_notequal(cons,cst_FoyerJeunesTrvailleursOuMi$0)) - return _adF_; - if(! caml_string_notequal(cons,cst_LogementPersonnesAgeesOuHa)) - return _adE_; - if(! caml_string_notequal(cons,cst_ResidenceSociale))return _adD_; - var _alc_=caml_call2(Stdlib_Printf[4],_adC_,cons); - return caml_call1(Stdlib[2],_alc_)} - function categorie_equivalence_loyer_al(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"EtudiantLogeEnChambreCROUS","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"EtudiantLogeEnChambreCROUSRehabilitee", - "payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"PersonnesAgeesSelon3DeD842_16","payload":arg$1}; - default: - var arg$2=param[1];return {"kind":"AutresPersonnes","payload":arg$2}}} - function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al) - {var cons=caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); - if(! caml_string_notequal(cons,cst_AutresPersonnes$0))return _adL_; - if(! caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS)) - return _adK_; - if(! caml_string_notequal(cons,cst_EtudiantLogeEnChambreCROUS$0)) - return _adJ_; - if(! caml_string_notequal(cons,cst_PersonnesAgeesSelon3DeD842)) - return _adI_; - var _alb_=caml_call2(Stdlib_Printf[4],_adH_,cons); - return caml_call1(Stdlib[2],_alb_)} - function situation_familiale_calcul_a_p(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"PersonneSeule","payload":arg}} - var arg$0=param[1]; - return {"kind":"Couple","payload":arg$0}} - function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p) - {var cons=caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); - if(! caml_string_notequal(cons,cst_Couple$0))return _adO_; - if(! caml_string_notequal(cons,cst_PersonneSeule$0))return _adN_; - var _ala_=caml_call2(Stdlib_Printf[4],_adM_,cons); - return caml_call1(Stdlib[2],_ala_)} - function collectivite_to_jsoo$0(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Guadeloupe","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Guyane","payload":arg$0}; - case 2: - var arg$1=param[1];return {"kind":"Martinique","payload":arg$1}; - case 3:var arg$2=param[1];return {"kind":"LaReunion","payload":arg$2}; - case 4: - var arg$3=param[1];return {"kind":"SaintBarthelemy","payload":arg$3}; - case 5: - var arg$4=param[1];return {"kind":"SaintMartin","payload":arg$4}; - case 6:var arg$5=param[1];return {"kind":"Metropole","payload":arg$5}; - case 7: - var arg$6=param[1]; - return {"kind":"SaintPierreEtMiquelon","payload":arg$6}; - default:var arg$7=param[1];return {"kind":"Mayotte","payload":arg$7}}} - function collectivite_of_jsoo$0(collectivite) - {var cons=caml_string_of_jsstring(collectivite.kind); - if(! caml_string_notequal(cons,cst_Guadeloupe$2))return _adY_; - if(! caml_string_notequal(cons,cst_Guyane$2))return _adX_; - if(! caml_string_notequal(cons,cst_LaReunion$0))return _adW_; - if(! caml_string_notequal(cons,cst_Martinique$2))return _adV_; - if(! caml_string_notequal(cons,cst_Mayotte$2))return _adU_; - if(! caml_string_notequal(cons,cst_Metropole$0))return _adT_; - if(! caml_string_notequal(cons,cst_SaintBarthelemy$0))return _adS_; - if(! caml_string_notequal(cons,cst_SaintMartin$2))return _adR_; - if(! caml_string_notequal(cons,cst_SaintPierreEtMiquelon$2)) - return _adQ_; - var _ak$_=caml_call2(Stdlib_Printf[4],_adP_,cons); - return caml_call1(Stdlib[2],_ak$_)} - function prise_en_charge_enfant_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"GardeAlterneePartageAllocations","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"GardeAlterneeAllocataireUnique","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"EffectiveEtPermanente","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeALaFamille", - "payload":arg$2}; - default: - var arg$3=param[1]; - return {"kind":"ServicesSociauxAllocationVerseeAuxServicesSociaux", - "payload":arg$3}}} - function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant) - {var cons=caml_string_of_jsstring(prise_en_charge_enfant.kind); - if(! caml_string_notequal(cons,cst_EffectiveEtPermanente$4)) - return _ad4_; - if(! caml_string_notequal(cons,cst_GardeAlterneeAllocataireUn$0)) - return _ad3_; - if(! caml_string_notequal(cons,cst_GardeAlterneePartageAlloca$0)) - return _ad2_; - if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$5)) - return _ad1_; - if(! caml_string_notequal(cons,cst_ServicesSociauxAllocationV$6)) - return _ad0_; - var _ak__=caml_call2(Stdlib_Printf[4],_adZ_,cons); - return caml_call1(Stdlib[2],_ak__)} - function situation_obligation_scolaire_$1(param) - {switch(param[0]) - {case 0:var arg=param[1];return {"kind":"Avant","payload":arg}; - case 1:var arg$0=param[1];return {"kind":"Pendant","payload":arg$0}; - default:var arg$1=param[1];return {"kind":"Apres","payload":arg$1}}} - function situation_obligation_scolaire_$2(situation_obligation_scolaire) - {var cons=caml_string_of_jsstring(situation_obligation_scolaire.kind); - if(! caml_string_notequal(cons,cst_Apres$0))return _ad8_; - if(! caml_string_notequal(cons,cst_Avant$2))return _ad7_; - if(! caml_string_notequal(cons,cst_Pendant$2))return _ad6_; - var _ak9_=caml_call2(Stdlib_Printf[4],_ad5_,cons); - return caml_call1(Stdlib[2],_ak9_)} - function element_prestations_familiales$1(param) - {switch(param[0]) - {case 0: - var arg=param[1]; - return {"kind":"PrestationAccueilJeuneEnfant","payload":arg}; - case 1: - var arg$0=param[1]; - return {"kind":"AllocationsFamiliales","payload":arg$0}; - case 2: - var arg$1=param[1]; - return {"kind":"ComplementFamilial","payload":arg$1}; - case 3: - var arg$2=param[1]; - return {"kind":"AllocationLogement","payload":arg$2}; - case 4: - var arg$3=param[1]; - return {"kind":"AllocationEducationEnfantHandicape","payload":arg$3}; - case 5: - var arg$4=param[1]; - return {"kind":"AllocationSoutienFamilial","payload":arg$4}; - case 6: - var arg$5=param[1]; - return {"kind":"AllocationRentreeScolaire","payload":arg$5}; - default: - var arg$6=param[1]; - return {"kind":"AllocationJournalierePresenceParentale", - "payload":arg$6}}} - function element_prestations_familiales$2(element_prestations_familiales) - {var cons=caml_string_of_jsstring(element_prestations_familiales.kind); - if(! caml_string_notequal(cons,cst_AllocationEducationEnfantH$0)) - return _aef_; - if(! caml_string_notequal(cons,cst_AllocationJournalierePrese$0)) - return _aee_; - if(! caml_string_notequal(cons,cst_AllocationLogement$2))return _aed_; - if(! caml_string_notequal(cons,cst_AllocationRentreeScolaire$0)) - return _aec_; - if(! caml_string_notequal(cons,cst_AllocationSoutienFamilial$4)) - return _aeb_; - if(! caml_string_notequal(cons,cst_AllocationsFamiliales$4)) - return _aea_; - if(! caml_string_notequal(cons,cst_ComplementFamilial$1))return _ad$_; - if(! caml_string_notequal(cons,cst_PrestationAccueilJeuneEnfa$2)) - return _ad__; - var _ak8_=caml_call2(Stdlib_Printf[4],_ad9_,cons); - return caml_call1(Stdlib[2],_ak8_)} - function convention_bailleur_social_to_(convention_bailleur_social) - {var - t243= - caml_call1(Runtime_ocaml_Runtime[35],convention_bailleur_social[2]), - t242=! ! convention_bailleur_social[1]; - return {"conventionneLivreIIITitreVChapIII":t242, - "reductionLoyerSolidaritePercue":t243}} - function convention_bailleur_social_of_(convention_bailleur_social) - {var - _ak6_= - caml_call1 - (Runtime_ocaml_Runtime[42], - convention_bailleur_social.reductionLoyerSolidaritePercue), - _ak7_=caml_call1(Runtime_ocaml_Runtime[33],_ak6_); - return [0, - convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, - _ak7_]} - function convention_a_n_h_a_to_jsoo(convention_a_n_h_a) - {var t246=! ! convention_a_n_h_a[1]; - return {"conventionneLivreIIITitreIIChapISec3":t246}} - function convention_a_n_h_a_of_jsoo(convention_a_n_h_a) - {return [0,convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]} - function personne_sous_location_to_jsoo(personne_sous_location) - {var - t249=! ! personne_sous_location[2], - t248=caml_call1(Runtime_jsoo_Runtime[5],personne_sous_location[1]); - return {"dateNaissancePersonneSousLocation":t248, - "conformeArticleL4421":t249}} - function personne_sous_location_of_jsoo(personne_sous_location) - {var _ak5_=personne_sous_location.conformeArticleL4421 | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - personne_sous_location.dateNaissancePersonneSousLocation), - _ak5_]} - function patrimoine_to_jsoo(patrimoine) - {var - t253=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[2]), - t252=caml_call1(Runtime_ocaml_Runtime[35],patrimoine[1]); - return {"produisantRevenuPeriodeR82233R8224":t252, - "neProduisantPasRevenuPeriodeR82233R8224":t253}} - function patrimoine_of_jsoo(patrimoine) - {var - _ak2_= - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.neProduisantPasRevenuPeriodeR82233R8224), - _ak3_=caml_call1(Runtime_ocaml_Runtime[33],_ak2_), - _ak4_= - caml_call1 - (Runtime_ocaml_Runtime[42], - patrimoine.produisantRevenuPeriodeR82233R8224); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ak4_),_ak3_]} - function conditions_etrangers_to_jsoo(conditions_etrangers) - {var t257=! ! conditions_etrangers[2],t256=! ! conditions_etrangers[1]; - return {"satisfaitConditionsL5122CodeSecuriteSociale":t256, - "satisfaitArt4Ordonnance2002Mayotte":t257}} - function conditions_etrangers_of_jsoo(conditions_etrangers) - {return [0, - conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale - | - 0, - conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]} - function personne_vivant_habituellement(personne_vivant_habituellement) - {var - t261= - caml_call1 - (Runtime_ocaml_Runtime[35],personne_vivant_habituellement[2]), - t260=! ! personne_vivant_habituellement[1]; - return {"dureeResidenceDurantPeriodeR82231SuperieureA6Mois":t260, - "ressources":t261}} - function personne_vivant_habituellement$0(personne_vivant_habituellement) - {var - _ak0_= - caml_call1 - (Runtime_ocaml_Runtime[42],personne_vivant_habituellement.ressources), - _ak1_=caml_call1(Runtime_ocaml_Runtime[33],_ak0_); - return [0, - personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois - | - 0, - _ak1_]} - function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee) - {var _akY_=eligibilite_aide_personnalisee[4]; - function _akZ_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t267=caml_js_from_array(caml_call2(Stdlib_Array[15],_akZ_,_akY_)), - t266= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_aide_personnalisee[3]), - t265=! ! eligibilite_aide_personnalisee[2], - t264= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[1]); - return {"dateCourante":t264, - "eligibilite":t265, - "nombrePersonnesAChargePrisesEnCompte":t266, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t267}} - function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee) - {var - _akT_= - caml_js_to_array - (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _akU_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _akV_=caml_call1(caml_call1(Stdlib_Array[15],_akU_),_akT_), - _akW_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), - _akX_=eligibilite_aide_personnalisee.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCourante), - _akX_, - _akW_, - _akV_]} - function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem) - {var - t272= - caml_call1 - (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[1]); - return {"montantPrimeDemenagement":t272}} - function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem) - {var - _akS_= - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.montantPrimeDemenagement); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_akS_)]} - function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l) - {var - t274= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); - return {"ressourcesPrisesEnCompte":t274}} - function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l) - {var - _akR_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesPrisesEnCompte); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_akR_)]} - function contributions_sociales_aides_p$0(contributions_sociales_aides_p) - {function t276(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _akO_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _akP_=caml_call1(Runtime_ocaml_Runtime[33],_akO_), - _akQ_=caml_call1(contributions_sociales_aides_p[1],_akP_); - return caml_call1(Runtime_ocaml_Runtime[35],_akQ_)})} - return {"montant":caml_js_wrap_meth_callback(t276)}} - function contributions_sociales_aides_p$1(contributions_sociales_aides_p) - {return [0,caml_call1(Stdlib[2],cst_The_function_montant_trans)]} - function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge) - {function t283(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _akL_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _akM_=caml_call1(Runtime_ocaml_Runtime[33],_akL_), - _akN_=caml_call1(calcul_aide_personnalisee_loge[7],_akM_); - return caml_call1(Runtime_ocaml_Runtime[35],_akN_)})} - var - t282= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), - t281= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), - t280= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[4]), - t279= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t278= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t277= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"montantForfaitaireChargesD82316":t277, - "plafondLoyerD823162":t278, - "participationMinimale":t279, - "tauxCompositionFamiliale":t280, - "participationPersonnelle":t281, - "aideFinaleFormule":t282, - "traitementAideFinale":caml_js_wrap_meth_callback(t283)}} - function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge) - {var - _akA_=caml_call1(Stdlib[2],cst_The_function_traitement_ai), - _akB_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _akC_=caml_call1(Runtime_ocaml_Runtime[33],_akB_), - _akD_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationPersonnelle), - _akE_=caml_call1(Runtime_ocaml_Runtime[33],_akD_), - _akF_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.tauxCompositionFamiliale), - _akG_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.participationMinimale), - _akH_=caml_call1(Runtime_ocaml_Runtime[33],_akG_), - _akI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondLoyerD823162), - _akJ_=caml_call1(Runtime_ocaml_Runtime[33],_akI_), - _akK_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_akK_), - _akJ_, - _akH_, - _akF_, - _akE_, - _akC_, - _akA_]} - function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim) - {var - t290= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[1]); - return {"montant":t290}} - function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim) - {var - _akz_= - caml_call1 - (Runtime_ocaml_Runtime[42],calcul_equivalence_loyer_minim.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_akz_)]} - function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo) - {var - t292= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_nombre_part_logement_fo[1]); - return {"nNombrePartsD83225":t292}} - function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo) - {return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_part_logement_fo.nNombrePartsD83225)]} - function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge) - {function t302(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _akw_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _akx_=caml_call1(Runtime_ocaml_Runtime[33],_akw_), - _aky_=caml_call1(calcul_aide_personnalisee_loge[9],_akx_); - return caml_call1(Runtime_ocaml_Runtime[35],_aky_)})} - var - t301= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), - t300= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[7]), - t299= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[6]), - t298= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[5]), - t297= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), - t296= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), - t295= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t294= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"coefficientMultiplicateurD83225":t294, - "coefficientRD83225":t295, - "nNombrePartsD83225":t296, - "equivalenceLoyerEligible":t297, - "plafondEquivalenceLoyerEligible":t298, - "equivalenceLoyerMinimale":t299, - "coefficientPriseEnChargeD83225":t300, - "aideFinaleFormule":t301, - "traitementAideFinale":caml_js_wrap_meth_callback(t302)}} - function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge) - {var - _aki_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$0), - _akj_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _akk_=caml_call1(Runtime_ocaml_Runtime[33],_akj_), - _akl_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), - _akm_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), - _akn_=caml_call1(Runtime_ocaml_Runtime[33],_akm_), - _ako_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), - _akp_=caml_call1(Runtime_ocaml_Runtime[33],_ako_), - _akq_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.equivalenceLoyerEligible), - _akr_=caml_call1(Runtime_ocaml_Runtime[33],_akq_), - _aks_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.nNombrePartsD83225), - _akt_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientRD83225), - _aku_=caml_call1(Runtime_ocaml_Runtime[33],_akt_), - _akv_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_akv_), - _aku_, - _aks_, - _akr_, - _akp_, - _akn_, - _akl_, - _akk_, - _aki_]} - function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_) - {var - t311= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_nombre_parts_accession_[1]); - return {"nNombrePartsD83211":t311}} - function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_) - {return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_nombre_parts_accession_.nNombrePartsD83211)]} - function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge) - {function t317(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _akf_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _akg_=caml_call1(Runtime_ocaml_Runtime[33],_akf_), - _akh_=caml_call1(calcul_aide_personnalisee_loge[5],_akg_); - return caml_call1(Runtime_ocaml_Runtime[35],_akh_)})} - var - t316= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[4]), - t315= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_aide_personnalisee_loge[3]), - t314= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t313= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"mensualiteEligible":t313, - "mensualiteMinimale":t314, - "coefficientPriseEnChargeD83210":t315, - "aideFinaleFormule":t316, - "traitementAideFinale":caml_js_wrap_meth_callback(t317)}} - function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge) - {var - _aj__=caml_call1(Stdlib[2],cst_The_function_traitement_ai$1), - _aj$_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule), - _aka_=caml_call1(Runtime_ocaml_Runtime[33],_aj$_), - _akb_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), - _akc_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteMinimale), - _akd_=caml_call1(Runtime_ocaml_Runtime[33],_akc_), - _ake_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualiteEligible); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ake_), - _akd_, - _akb_, - _aka_, - _aj__]} - function traitement_formule_aide_finale(traitement_formule_aide_finale) - {function t323(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aj7_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _aj8_=caml_call1(Runtime_ocaml_Runtime[33],_aj7_), - _aj9_=caml_call1(traitement_formule_aide_finale[2],_aj8_); - return caml_call1(Runtime_ocaml_Runtime[35],_aj9_)})} - var - t322= - caml_call1 - (Runtime_ocaml_Runtime[35],traitement_formule_aide_finale[1]); - return {"aideFinaleFormule":t322, - "traitementAideFinale":caml_js_wrap_meth_callback(t323)}} - function traitement_formule_aide_finale$0(traitement_formule_aide_finale) - {var - _aj5_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$2), - _aj6_= - caml_call1 - (Runtime_ocaml_Runtime[42], - traitement_formule_aide_finale.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aj6_),_aj5_]} - function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge) - {function t326(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aj2_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _aj3_=caml_call1(Runtime_ocaml_Runtime[33],_aj2_), - _aj4_=caml_call1(calcul_aide_personnalisee_loge[2],_aj3_); - return caml_call1(Runtime_ocaml_Runtime[35],_aj4_)})} - var - t325= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"aideFinaleFormule":t325, - "traitementAideFinale":caml_js_wrap_meth_callback(t326)}} - function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge) - {var - _aj0_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$3), - _aj1_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_aj1_),_aj0_]} - function infos_changement_logement_d842(infos_changement_logement_d842) - {var - t329= - caml_call1 - (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[2]), - t328= - caml_call1 - (Runtime_ocaml_Runtime[35],infos_changement_logement_d842[1]); - return {"ancienLoyerPrincipal":t328,"ancienneAllocationLogement":t329}} - function infos_changement_logement_d842$0(infos_changement_logement_d842) - {var - _ajX_= - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienneAllocationLogement), - _ajY_=caml_call1(Runtime_ocaml_Runtime[33],_ajX_), - _ajZ_= - caml_call1 - (Runtime_ocaml_Runtime[42], - infos_changement_logement_d842.ancienLoyerPrincipal); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajZ_),_ajY_]} - function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc) - {function t333(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ajU_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ajV_=caml_call1(Runtime_ocaml_Runtime[33],_ajU_), - _ajW_=caml_call1(calcul_allocation_logement_loc[2],_ajV_); - return caml_call1(Runtime_ocaml_Runtime[35],_ajW_)})} - var - t332= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); - return {"aideFinaleFormule":t332, - "traitementAideFinale":caml_js_wrap_meth_callback(t333)}} - function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc) - {var - _ajS_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$4), - _ajT_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajT_),_ajS_]} - function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc) - {function t339(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ajP_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ajQ_=caml_call1(Runtime_ocaml_Runtime[33],_ajP_), - _ajR_=caml_call1(calcul_allocation_logement_acc[5],_ajQ_); - return caml_call1(Runtime_ocaml_Runtime[35],_ajR_)})} - var - t338= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[4]), - t337= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_allocation_logement_acc[3]), - t336= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[2]), - t335= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); - return {"mensualiteEligible":t335, - "mensualiteMinimale":t336, - "coefficientPriseEnCharge":t337, - "aideFinaleFormule":t338, - "traitementAideFinale":caml_js_wrap_meth_callback(t339)}} - function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc) - {var - _ajI_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$5), - _ajJ_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.aideFinaleFormule), - _ajK_=caml_call1(Runtime_ocaml_Runtime[33],_ajJ_), - _ajL_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.coefficientPriseEnCharge), - _ajM_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualiteMinimale), - _ajN_=caml_call1(Runtime_ocaml_Runtime[33],_ajM_), - _ajO_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualiteEligible); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ajO_), - _ajN_, - _ajL_, - _ajK_, - _ajI_]} - function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy) - {function t349(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ajF_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ajG_=caml_call1(Runtime_ocaml_Runtime[33],_ajF_), - _ajH_=caml_call1(calcul_allocation_logement_foy[6],_ajG_); - return caml_call1(Runtime_ocaml_Runtime[35],_ajH_)})} - var - t348= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), - t347= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), - t346= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[3]), - t345= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[2]), - t344= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_allocation_logement_foy[1]); - return {"coefficientPriseEnCharge":t344, - "equivalenceLoyer":t345, - "montantForfaitaireCharges":t346, - "loyerMinimal":t347, - "aideFinaleFormule":t348, - "traitementAideFinale":caml_js_wrap_meth_callback(t349)}} - function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy) - {var - _ajw_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$6), - _ajx_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.aideFinaleFormule), - _ajy_=caml_call1(Runtime_ocaml_Runtime[33],_ajx_), - _ajz_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.loyerMinimal), - _ajA_=caml_call1(Runtime_ocaml_Runtime[33],_ajz_), - _ajB_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.montantForfaitaireCharges), - _ajC_=caml_call1(Runtime_ocaml_Runtime[33],_ajB_), - _ajD_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.equivalenceLoyer), - _ajE_=caml_call1(Runtime_ocaml_Runtime[33],_ajD_); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.coefficientPriseEnCharge), - _ajE_, - _ajC_, - _ajA_, - _ajy_, - _ajw_]} - function calcul_allocation_logement_to_(calcul_allocation_logement) - {function t356(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ajt_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _aju_=caml_call1(Runtime_ocaml_Runtime[33],_ajt_), - _ajv_=caml_call1(calcul_allocation_logement[2],_aju_); - return caml_call1(Runtime_ocaml_Runtime[35],_ajv_)})} - var - t355= - caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement[1]); - return {"aideFinaleFormule":t355, - "traitementAideFinale":caml_js_wrap_meth_callback(t356)}} - function calcul_allocation_logement_of_(calcul_allocation_logement) - {var - _ajr_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$7), - _ajs_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement.aideFinaleFormule); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajs_),_ajr_]} - function ouverture_droits_retraite_to_j(ouverture_droits_retraite) - {var - t358= - caml_call1(Runtime_jsoo_Runtime[3],ouverture_droits_retraite[1]); - return {"ageOuvertureDroit":t358}} - function ouverture_droits_retraite_of_j(ouverture_droits_retraite) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - ouverture_droits_retraite.ageOuvertureDroit)]} - function impaye_depense_logement_to_jso(impaye_depense_logement) - {var - t360= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement[1]); - return {"montantImpaye":t360}} - function impaye_depense_logement_of_jso(impaye_depense_logement) - {var - _ajq_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement.montantImpaye); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajq_)]} - function calculette_aides_au_logement_t(calculette_aides_au_logement) - {var _ajl_=calculette_aides_au_logement[4]; - function _ajm_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var t365=caml_js_from_array(caml_call2(Stdlib_Array[15],_ajm_,_ajl_)); - function t364(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ajn_=caml_call1(Runtime_ocaml_Runtime[42],function_input0), - _ajo_=caml_call1(Runtime_ocaml_Runtime[33],_ajn_), - _ajp_=caml_call1(calculette_aides_au_logement[3],_ajo_); - return caml_call1(Runtime_ocaml_Runtime[35],_ajp_)})} - var - t363= - caml_call1(Runtime_ocaml_Runtime[35],calculette_aides_au_logement[2]), - t362=! ! calculette_aides_au_logement[1]; - return {"eligibilite":t362, - "aideFinaleFormule":t363, - "traitementAideFinale":caml_js_wrap_meth_callback(t364), - "coefficentsEnfantsGardeAlterneePrisEnCompte":t365}} - function calculette_aides_au_logement_o(calculette_aides_au_logement) - {var - _ajf_= - caml_js_to_array - (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _ajg_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _ajh_=caml_call1(caml_call1(Stdlib_Array[15],_ajg_),_ajf_), - _aji_=caml_call1(Stdlib[2],cst_The_function_traitement_ai$8), - _ajj_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement.aideFinaleFormule), - _ajk_=caml_call1(Runtime_ocaml_Runtime[33],_ajj_); - return [0, - calculette_aides_au_logement.eligibilite | 0, - _ajk_, - _aji_, - _ajh_]} - function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g) - {var - t370= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[2]), - t369=! ! calculette_aides_au_logement_g[1]; - return {"eligibilite":t369,"aideFinale":t370}} - function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g) - {var - _ajd_= - caml_call1 - (Runtime_ocaml_Runtime[42],calculette_aides_au_logement_g.aideFinale), - _aje_=caml_call1(Runtime_ocaml_Runtime[33],_ajd_); - return [0,calculette_aides_au_logement_g.eligibilite | 0,_aje_]} - function base_mensuelle_allocations_fam$6(base_mensuelle_allocations_fam) - {var - t373= - caml_call1 - (Runtime_ocaml_Runtime[35],base_mensuelle_allocations_fam[1]); - return {"montant":t373}} - function base_mensuelle_allocations_fam$7(base_mensuelle_allocations_fam) - {var - _ajc_= - caml_call1 - (Runtime_ocaml_Runtime[42],base_mensuelle_allocations_fam.montant); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajc_)]} - function verification_age_inferieur_ou_$6(verification_age_inferieur_ou_) - {var t375=! ! verification_age_inferieur_ou_[1]; - return {"estInferieurOuEgal":t375}} - function verification_age_inferieur_ou_$7(verification_age_inferieur_ou_) - {return [0,verification_age_inferieur_ou_.estInferieurOuEgal | 0]} - function verification_age_superieur_a_t$0(verification_age_superieur_a) - {var t377=! ! verification_age_superieur_a[1]; - return {"estSuperieur":t377}} - function verification_age_superieur_a_o$0(verification_age_superieur_a) - {return [0,verification_age_superieur_a.estSuperieur | 0]} - function smic_to_jsoo$0(smic) - {var t379=caml_call1(Runtime_ocaml_Runtime[35],smic[1]); - return {"brutHoraire":t379}} - function smic_of_jsoo$0(smic) - {var _ajb_=caml_call1(Runtime_ocaml_Runtime[42],smic.brutHoraire); - return [0,caml_call1(Runtime_ocaml_Runtime[33],_ajb_)]} - function neuf_ou_ancien_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Neuf","payload":arg}} - var arg$0=param[1],t384=ameliore_par_occupant_to_jsoo(arg$0); - return {"kind":"Ancien","payload":t384}} - function neuf_ou_ancien_of_jsoo(neuf_ou_ancien) - {var cons=caml_string_of_jsstring(neuf_ou_ancien.kind); - if(! caml_string_notequal(cons,cst_Ancien$0)) - return [1,ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]; - if(! caml_string_notequal(cons,cst_Neuf$0))return _aeh_; - var _aja_=caml_call2(Stdlib_Printf[4],_aeg_,cons); - return caml_call1(Stdlib[2],_aja_)} - function tranche_revenu_to_jsoo(tranche_revenu) - {var - t389=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu[3]), - t388=caml_call1(Runtime_ocaml_Runtime[35],tranche_revenu[2]), - t387=limite_tranche_to_jsoo(tranche_revenu[1]); - return {"haut":t387,"bas":t388,"taux":t389}} - function tranche_revenu_of_jsoo(tranche_revenu) - {var - _ai9_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.taux), - _ai__=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu.bas), - _ai$_=caml_call1(Runtime_ocaml_Runtime[33],_ai__); - return [0,limite_tranche_of_jsoo(tranche_revenu.haut),_ai$_,_ai9_]} - function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal) - {var - t395=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[3]), - t394=caml_call1(Runtime_ocaml_Runtime[43],tranche_revenu_decimal[2]), - t393=limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]); - return {"haut":t393,"bas":t394,"taux":t395}} - function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal) - {var - _ai7_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.taux), - _ai8_=caml_call1(Runtime_ocaml_Runtime[42],tranche_revenu_decimal.bas); - return [0, - limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), - _ai8_, - _ai7_]} - function autre_personne_a_charge_to_jso(autre_personne_a_charge) - {var - t405=! ! autre_personne_a_charge[7], - t404=! ! autre_personne_a_charge[6], - t403=! ! autre_personne_a_charge[5], - t402=parente_to_jsoo(autre_personne_a_charge[4]), - t401=! ! autre_personne_a_charge[3], - t400=caml_call1(Runtime_ocaml_Runtime[35],autre_personne_a_charge[2]), - t399=caml_call1(Runtime_jsoo_Runtime[5],autre_personne_a_charge[1]); - return {"dateNaissance":t399, - "ressources":t400, - "ascendantDescendantCollateralDeuxiemeTroisiemeDegre":t401, - "parente":t402, - "incapacite80PourcentOuRestrictionEmploi":t403, - "beneficiaireL16119L3518L6433Secu":t404, - "titulaireAllocationPersonneAgee":t405}} - function autre_personne_a_charge_of_jso(autre_personne_a_charge) - {var - _ai0_=autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, - _ai1_=autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, - _ai2_= - autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi - | - 0, - _ai3_=parente_of_jsoo(autre_personne_a_charge.parente), - _ai4_= - autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre - | - 0, - _ai5_= - caml_call1 - (Runtime_ocaml_Runtime[42],autre_personne_a_charge.ressources), - _ai6_=caml_call1(Runtime_ocaml_Runtime[33],_ai5_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4],autre_personne_a_charge.dateNaissance), - _ai6_, - _ai4_, - _ai3_, - _ai2_, - _ai1_, - _ai0_]} - function date_naissance_troisieme_ou_de(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"MoinsDeTroisEnfants","payload":arg}} - var arg$0=param[1],t416=date_de_naissance_ou_mois_de_g(arg$0); - return {"kind":"PlusDeTroisEnfants","payload":t416}} - function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de) - {var cons=caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); - if(! caml_string_notequal(cons,cst_MoinsDeTroisEnfants$0))return _aej_; - if(! caml_string_notequal(cons,cst_PlusDeTroisEnfants$0)) - return [1, - date_de_naissance_ou_mois_de_g$0 - (date_naissance_troisieme_ou_de.payload)]; - var _aiZ_=caml_call2(Stdlib_Printf[4],_aei_,cons); - return caml_call1(Stdlib[2],_aiZ_)} - function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen) - {var _aiX_=eligibilite_allocation_logemen[3]; - function _aiY_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t421=caml_js_from_array(caml_call2(Stdlib_Array[15],_aiY_,_aiX_)), - t420= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_allocation_logemen[2]), - t419=type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]); - return {"eligibilite":t419, - "nombrePersonnesAChargePrisesEnCompte":t420, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t421}} - function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen) - {var - _aiT_= - caml_js_to_array - (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _aiU_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _aiV_=caml_call1(caml_call1(Stdlib_Array[15],_aiU_),_aiT_), - _aiW_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); - return [0, - type_eligibilite_allocation_lo$0 - (eligibilite_allocation_logemen.eligibilite), - _aiW_, - _aiV_]} - function pret_to_jsoo(pret) - {var - t428=accord_financement_representan(pret[4]), - t427=titulaire_pret_to_jsoo(pret[3]), - t426=caml_call1(Runtime_jsoo_Runtime[5],pret[2]), - t425=type_pret_to_jsoo(pret[1]); - return {"typePret":t425, - "dateSignature":t426, - "titulairePret":t427, - "accordFinancementRepresentantEtatOutreMer":t428}} - function pret_of_jsoo(pret) - {var - _aiQ_= - accord_financement_representan$0 - (pret.accordFinancementRepresentantEtatOutreMer), - _aiR_=titulaire_pret_of_jsoo(pret.titulairePret), - _aiS_=caml_call1(Runtime_jsoo_Runtime[4],pret.dateSignature); - return [0,type_pret_of_jsoo(pret.typePret),_aiS_,_aiR_,_aiQ_]} - function logement_foyer_to_jsoo(logement_foyer) - {var - t442=! ! logement_foyer[10], - t441=! ! logement_foyer[9], - t440=categorie_equivalence_loyer_al(logement_foyer[8]), - t439=caml_call1(Runtime_ocaml_Runtime[35],logement_foyer[7]), - t438=! ! logement_foyer[6], - t437=caml_call1(Runtime_jsoo_Runtime[5],logement_foyer[5]), - t436=! ! logement_foyer[4], - t435=! ! logement_foyer[3], - t434=! ! logement_foyer[2], - t433=type_logement_foyer_to_jsoo(logement_foyer[1]); - return {"typeUser":t433, - "remplitConditionsR83221":t434, - "conventionneLivreIIITitreVChapIII":t435, - "conventionneSelonReglesDrom":t436, - "dateConventionnement":t437, - "construitApplicationLoi195712III":t438, - "redevance":t439, - "categorieEquivalenceLoyerD84216":t440, - "beneficiaireAideAdulteOuEnfantHandicapes":t441, - "logementMeubleD8422":t442}} - function logement_foyer_of_jsoo(logement_foyer) - {var - _aiG_=logement_foyer.logementMeubleD8422 | 0, - _aiH_=logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _aiI_= - categorie_equivalence_loyer_al$0 - (logement_foyer.categorieEquivalenceLoyerD84216), - _aiJ_=caml_call1(Runtime_ocaml_Runtime[42],logement_foyer.redevance), - _aiK_=caml_call1(Runtime_ocaml_Runtime[33],_aiJ_), - _aiL_=logement_foyer.construitApplicationLoi195712III | 0, - _aiM_= - caml_call1 - (Runtime_jsoo_Runtime[4],logement_foyer.dateConventionnement), - _aiN_=logement_foyer.conventionneSelonReglesDrom | 0, - _aiO_=logement_foyer.conventionneLivreIIITitreVChapIII | 0, - _aiP_=logement_foyer.remplitConditionsR83221 | 0; - return [0, - type_logement_foyer_of_jsoo(logement_foyer.typeUser), - _aiP_, - _aiO_, - _aiN_, - _aiM_, - _aiL_, - _aiK_, - _aiI_, - _aiH_, - _aiG_]} - function enfant_prestations_familiales_(enfant_prestations_familiales) - {var - t459=! ! enfant_prestations_familiales[7], - t458=! ! enfant_prestations_familiales[6], - t457=prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), - t456= - caml_call1(Runtime_jsoo_Runtime[5],enfant_prestations_familiales[4]), - t455= - caml_call1(Runtime_ocaml_Runtime[35],enfant_prestations_familiales[3]), - t454=situation_obligation_scolaire_$1(enfant_prestations_familiales[2]), - t453= - caml_call1(Runtime_ocaml_Runtime[48],enfant_prestations_familiales[1]); - return {"identifiant":t453, - "obligationScolaire":t454, - "remunerationMensuelle":t455, - "dateDeNaissance":t456, - "priseEnCharge":t457, - "aDejaOuvertDroitAuxAllocationsFamiliales":t458, - "beneficieTitrePersonnelAidePersonnelleLogement":t459}} - function enfant_prestations_familiales_$0(enfant_prestations_familiales) - {var - _aiz_= - enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement - | - 0, - _aiA_= - enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales - | - 0, - _aiB_= - prise_en_charge_enfant_of_jsoo - (enfant_prestations_familiales.priseEnCharge), - _aiC_= - caml_call1 - (Runtime_jsoo_Runtime[4], - enfant_prestations_familiales.dateDeNaissance), - _aiD_= - caml_call1 - (Runtime_ocaml_Runtime[42], - enfant_prestations_familiales.remunerationMensuelle), - _aiE_=caml_call1(Runtime_ocaml_Runtime[33],_aiD_), - _aiF_= - situation_obligation_scolaire_$2 - (enfant_prestations_familiales.obligationScolaire); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - enfant_prestations_familiales.identifiant), - _aiF_, - _aiE_, - _aiC_, - _aiB_, - _aiA_, - _aiz_]} - function type_bailleur_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t468=convention_bailleur_social_to_(arg); - return {"kind":"BailleurSocial","payload":t468}; - case 1: - var arg$0=param[1],t470=convention_a_n_h_a_to_jsoo(arg$0); - return {"kind":"BailleurPriveAvecConventionnementSocial", - "payload":t470}; - default: - var arg$1=param[1];return {"kind":"BailleurPrive","payload":arg$1}}} - function type_bailleur_of_jsoo(type_bailleur) - {var cons=caml_string_of_jsstring(type_bailleur.kind); - if(! caml_string_notequal(cons,cst_BailleurPrive))return _ael_; - if(! caml_string_notequal(cons,cst_BailleurPriveAvecConventio)) - return [1,convention_a_n_h_a_of_jsoo(type_bailleur.payload)]; - if(! caml_string_notequal(cons,cst_BailleurSocial$0)) - return [0,convention_bailleur_social_of_(type_bailleur.payload)]; - var _aiy_=caml_call2(Stdlib_Printf[4],_aek_,cons); - return caml_call1(Stdlib[2],_aiy_)} - function loue_ou_sous_loue_a_des_tiers_(param) - {if(0 === param[0]){var arg=param[1];return {"kind":"Non","payload":arg}} - var arg$0=param[1],t479=personne_sous_location_to_jsoo(arg$0); - return {"kind":"Oui","payload":t479}} - function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers) - {var cons=caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); - if(! caml_string_notequal(cons,cst_Non$4))return _aen_; - if(! caml_string_notequal(cons,cst_Oui$2)) - return [1, - personne_sous_location_of_jsoo - (loue_ou_sous_loue_a_des_tiers.payload)]; - var _aix_=caml_call2(Stdlib_Printf[4],_aem_,cons); - return caml_call1(Stdlib[2],_aix_)} - function nationalite_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1];return {"kind":"Francaise","payload":arg}} - var arg$0=param[1],t485=conditions_etrangers_to_jsoo(arg$0); - return {"kind":"Etrangere","payload":t485}} - function nationalite_of_jsoo(nationalite) - {var cons=caml_string_of_jsstring(nationalite.kind); - if(! caml_string_notequal(cons,cst_Etrangere)) - return [1,conditions_etrangers_of_jsoo(nationalite.payload)]; - if(! caml_string_notequal(cons,cst_Francaise))return _aep_; - var _aiw_=caml_call2(Stdlib_Printf[4],_aeo_,cons); - return caml_call1(Stdlib[2],_aiw_)} - function changement_logement_d842_4_to_(param) - {if(0 === param[0]) - {var arg=param[1],t489=infos_changement_logement_d842(arg); - return {"kind":"Changement","payload":t489}} - var arg$0=param[1]; - return {"kind":"PasDeChangement","payload":arg$0}} - function changement_logement_d842_4_of_(changement_logement_d842_4) - {var cons=caml_string_of_jsstring(changement_logement_d842_4.kind); - if(! caml_string_notequal(cons,cst_Changement$0)) - return [0, - infos_changement_logement_d842$0 - (changement_logement_d842_4.payload)]; - if(! caml_string_notequal(cons,cst_PasDeChangement$0))return _aer_; - var _aiv_=caml_call2(Stdlib_Printf[4],_aeq_,cons); - return caml_call1(Stdlib[2],_aiv_)} - function informations_prime_de_demenage(informations_prime_de_demenage) - {var - t495=date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]), - t494= - caml_call1 - (Runtime_ocaml_Runtime[48],informations_prime_de_demenage[1]); - return {"nombreEnfantsANaitreApresTroisiemeMoisGrossesse":t494, - "dateNaissanceTroisiemeEnfantOuDernierSiPlus":t495}} - function informations_prime_de_demenage$0(informations_prime_de_demenage) - {var - _aiu_= - date_naissance_troisieme_ou_de$0 - (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), - _aiu_]} - function proprietaire_to_jsoo(proprietaire) - {var - t508=! ! proprietaire[11], - t507=pret_to_jsoo(proprietaire[10]), - t506=neuf_ou_ancien_to_jsoo(proprietaire[9]), - t505=! ! proprietaire[8], - t504=! ! proprietaire[7], - t503=! ! proprietaire[6], - t502=type_travaux_logement_r842_5_t(proprietaire[5]), - t501=type_travaux_logement_d832_15_(proprietaire[4]), - t500=caml_call1(Runtime_jsoo_Runtime[5],proprietaire[3]), - t499=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[2]), - t498=caml_call1(Runtime_ocaml_Runtime[35],proprietaire[1]); - return {"mensualitePrincipale":t498, - "chargesMensuellesPret":t499, - "dateEntreeLogement":t500, - "typeTravauxLogementD83215":t501, - "typeTravauxLogementR8425":t502, - "localHabitePremiereFoisBeneficiaire":t503, - "copropriete":t504, - "situationR822111317":t505, - "ancienneteLogement":t506, - "pret":t507, - "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat": - t508}} - function proprietaire_of_jsoo(proprietaire) - {var - _aii_= - proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat - | - 0, - _aij_=pret_of_jsoo(proprietaire.pret), - _aik_=neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), - _ail_=proprietaire.situationR822111317 | 0, - _aim_=proprietaire.copropriete | 0, - _ain_=proprietaire.localHabitePremiereFoisBeneficiaire | 0, - _aio_= - type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), - _aip_= - type_travaux_logement_d832_15_$0 - (proprietaire.typeTravauxLogementD83215), - _aiq_= - caml_call1(Runtime_jsoo_Runtime[4],proprietaire.dateEntreeLogement), - _air_= - caml_call1 - (Runtime_ocaml_Runtime[42],proprietaire.chargesMensuellesPret), - _ais_=caml_call1(Runtime_ocaml_Runtime[33],_air_), - _ait_= - caml_call1 - (Runtime_ocaml_Runtime[42],proprietaire.mensualitePrincipale); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ait_), - _ais_, - _aiq_, - _aip_, - _aio_, - _ain_, - _aim_, - _ail_, - _aik_, - _aij_, - _aii_]} - function eligibilite_prestations_famili$0(eligibilite_prestations_famili) - {var t523=! ! eligibilite_prestations_famili[4]; - function t522(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aih_= - enfant_prestations_familiales_$0(function_input0); - return ! - ! - caml_call1(eligibilite_prestations_famili[3],_aih_)})} - function t521(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aig_= - enfant_prestations_familiales_$0(function_input0); - return ! - ! - caml_call1(eligibilite_prestations_famili[2],_aig_)})} - var - t520= - caml_call1(Runtime_jsoo_Runtime[3],eligibilite_prestations_famili[1]); - return {"ageL51232":t520, - "droitOuvert":caml_js_wrap_meth_callback(t521), - "conditionsHorsAge":caml_js_wrap_meth_callback(t522), - "regimeOutreMerL7511":t523}} - function eligibilite_prestations_famili$1(eligibilite_prestations_famili) - {var - _aid_=eligibilite_prestations_famili.regimeOutreMerL7511 | 0, - _aie_=caml_call1(Stdlib[2],cst_The_function_conditions_ho$0), - _aif_=caml_call1(Stdlib[2],cst_The_function_droit_ouvert_$0); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[2], - eligibilite_prestations_famili.ageL51232), - _aif_, - _aie_, - _aid_]} - function demandeur_to_jsoo(demandeur) - {var - t531=! ! demandeur[6], - t530=! ! demandeur[5], - t529=! ! demandeur[4], - t528=patrimoine_to_jsoo(demandeur[3]), - t527=nationalite_to_jsoo(demandeur[2]), - t526=caml_call1(Runtime_jsoo_Runtime[5],demandeur[1]); - return {"dateNaissance":t526, - "nationalite":t527, - "patrimoine":t528, - "personneHebergeeCentreSoinLL162223SecuriteSociale":t529, - "estNonSalarieAgricoleL7818L78146CodeRural":t530, - "magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte": - t531}} - function demandeur_of_jsoo(demandeur) - {var - _ah__= - demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte - | - 0, - _ah$_=demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, - _aia_=demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, - _aib_=patrimoine_of_jsoo(demandeur.patrimoine), - _aic_=nationalite_of_jsoo(demandeur.nationalite); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],demandeur.dateNaissance), - _aic_, - _aib_, - _aia_, - _ah$_, - _ah__]} - function enfant_a_charge_to_jsoo(enfant_a_charge) - {var - t546=! ! enfant_a_charge[9], - t545=situation_garde_alternee_to_js(enfant_a_charge[8]), - t544=situation_obligation_scolaire_$1(enfant_a_charge[7]), - t543=caml_call1(Runtime_ocaml_Runtime[35],enfant_a_charge[6]), - t542=caml_call1(Runtime_jsoo_Runtime[5],enfant_a_charge[5]), - t541=! ! enfant_a_charge[4], - t540=! ! enfant_a_charge[3], - t539=nationalite_to_jsoo(enfant_a_charge[2]), - t538=caml_call1(Runtime_ocaml_Runtime[48],enfant_a_charge[1]); - return {"identifiant":t538, - "nationalite":t539, - "beneficieTitrePersonnelAidePersonnelleLogement":t540, - "aDejaOuvertDroitAuxAllocationsFamiliales":t541, - "dateDeNaissance":t542, - "remunerationMensuelle":t543, - "obligationScolaire":t544, - "situationGardeAlternee":t545, - "etudesApprentissageStageFormationProImpossibiliteTravail":t546}} - function enfant_a_charge_of_jsoo(enfant_a_charge) - {var - _ah1_= - enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail - | - 0, - _ah2_= - situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), - _ah3_= - situation_obligation_scolaire_$2(enfant_a_charge.obligationScolaire), - _ah4_= - caml_call1 - (Runtime_ocaml_Runtime[42],enfant_a_charge.remunerationMensuelle), - _ah5_=caml_call1(Runtime_ocaml_Runtime[33],_ah4_), - _ah6_= - caml_call1(Runtime_jsoo_Runtime[4],enfant_a_charge.dateDeNaissance), - _ah7_=enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, - _ah8_= - enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement - | - 0, - _ah9_=nationalite_of_jsoo(enfant_a_charge.nationalite); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49],enfant_a_charge.identifiant), - _ah9_, - _ah8_, - _ah7_, - _ah6_, - _ah5_, - _ah3_, - _ah2_, - _ah1_]} - function location_to_jsoo(location) - {var - t563=changement_logement_d842_4_to_(location[8]), - t562=! ! location[7], - t561=! ! location[6], - t560=! ! location[5], - t559=! ! location[4], - t558=! ! location[3], - t557=caml_call1(Runtime_ocaml_Runtime[35],location[2]), - t556=type_bailleur_to_jsoo(location[1]); - return {"bailleur":t556, - "loyerPrincipal":t557, - "beneficiaireAideAdulteOuEnfantHandicapes":t558, - "logementEstChambre":t559, - "colocation":t560, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliers":t561, - "logementMeubleD8422":t562, - "changementLogementD8424":t563}} - function location_of_jsoo(location) - {var - _ahT_=changement_logement_d842_4_of_(location.changementLogementD8424), - _ahU_=location.logementMeubleD8422 | 0, - _ahV_=location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, - _ahW_=location.colocation | 0, - _ahX_=location.logementEstChambre | 0, - _ahY_=location.beneficiaireAideAdulteOuEnfantHandicapes | 0, - _ahZ_=caml_call1(Runtime_ocaml_Runtime[42],location.loyerPrincipal), - _ah0_=caml_call1(Runtime_ocaml_Runtime[33],_ahZ_); - return [0, - type_bailleur_of_jsoo(location.bailleur), - _ah0_, - _ahY_, - _ahX_, - _ahW_, - _ahV_, - _ahU_, - _ahT_]} - function personne_a_charge_to_jsoo(param) - {if(0 === param[0]) - {var arg=param[1],t573=enfant_a_charge_to_jsoo(arg); - return {"kind":"EnfantACharge","payload":t573}} - var arg$0=param[1],t575=autre_personne_a_charge_to_jso(arg$0); - return {"kind":"AutrePersonneACharge","payload":t575}} - function personne_a_charge_of_jsoo(personne_a_charge) - {var cons=caml_string_of_jsstring(personne_a_charge.kind); - if(! caml_string_notequal(cons,cst_AutrePersonneACharge)) - return [1,autre_personne_a_charge_of_jso(personne_a_charge.payload)]; - if(! caml_string_notequal(cons,cst_EnfantACharge)) - return [0,enfant_a_charge_of_jsoo(personne_a_charge.payload)]; - var _ahS_=caml_call2(Stdlib_Printf[4],_aes_,cons); - return caml_call1(Stdlib[2],_ahS_)} - function categorie_calcul_a_p_l_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t580=location_to_jsoo(arg); - return {"kind":"Location","payload":t580}; - case 1: - var arg$0=param[1],t582=proprietaire_to_jsoo(arg$0); - return {"kind":"AccessionPropriete","payload":t582}; - default: - var arg$1=param[1],t584=logement_foyer_to_jsoo(arg$1); - return {"kind":"LogementFoyer","payload":t584}}} - function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l) - {var cons=caml_string_of_jsstring(categorie_calcul_a_p_l.kind); - if(! caml_string_notequal(cons,cst_AccessionPropriete)) - return [1,proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]; - if(! caml_string_notequal(cons,cst_Location$0)) - return [0,location_of_jsoo(categorie_calcul_a_p_l.payload)]; - if(! caml_string_notequal(cons,cst_LogementFoyer$0)) - return [2,logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]; - var _ahR_=caml_call2(Stdlib_Printf[4],_aet_,cons); - return caml_call1(Stdlib[2],_ahR_)} - function mode_occupation_to_jsoo(param) - {switch(param[0]) - {case 0: - var arg=param[1],t590=location_to_jsoo(arg); - return {"kind":"Locataire","payload":t590}; - case 1: - var arg$0=param[1],t592=logement_foyer_to_jsoo(arg$0); - return {"kind":"ResidentLogementFoyer","payload":t592}; - case 2: - var arg$1=param[1],t594=proprietaire_to_jsoo(arg$1); - return {"kind":"AccessionProprieteLocalUsageExclusifHabitation", - "payload":t594}; - case 3: - var arg$2=param[1],t596=location_to_jsoo(arg$2); - return {"kind":"SousLocataire","payload":t596}; - default: - var arg$3=param[1],t598=proprietaire_to_jsoo(arg$3); - return {"kind":"LocationAccession","payload":t598}}} - function mode_occupation_of_jsoo(mode_occupation) - {var cons=caml_string_of_jsstring(mode_occupation.kind); - if(! caml_string_notequal(cons,cst_AccessionProprieteLocalUsa)) - return [2,proprietaire_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons,cst_Locataire$0)) - return [0,location_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons,cst_LocationAccession$0)) - return [4,proprietaire_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons,cst_ResidentLogementFoyer)) - return [1,logement_foyer_of_jsoo(mode_occupation.payload)]; - if(! caml_string_notequal(cons,cst_SousLocataire$0)) - return [3,location_of_jsoo(mode_occupation.payload)]; - var _ahQ_=caml_call2(Stdlib_Printf[4],_aeu_,cons); - return caml_call1(Stdlib[2],_ahQ_)} - function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_) - {function t609(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var _ahP_=personne_a_charge_of_jsoo(function_input0); - return ! - ! - caml_call1(eligibilite_aides_personnelle_[5],_ahP_)})} - var _ahN_=eligibilite_aides_personnelle_[4]; - function _ahO_(x){return caml_call1(Runtime_ocaml_Runtime[43],x)} - var - t608=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahO_,_ahN_)), - t607= - caml_call1 - (Runtime_ocaml_Runtime[48],eligibilite_aides_personnelle_[3]), - t606=! ! eligibilite_aides_personnelle_[2], - t605= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[1]); - return {"dateCourante":t605, - "eligibilite":t606, - "nombrePersonnesAChargePrisesEnCompte":t607, - "coefficentsEnfantsGardeAlterneePrisEnCompte":t608, - "condition2R8234":caml_js_wrap_meth_callback(t609)}} - function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_) - {var - _ahH_=caml_call1(Stdlib[2],cst_The_function_condition_2_r), - _ahI_= - caml_js_to_array - (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); - function _ahJ_(x){return caml_call1(Runtime_ocaml_Runtime[42],x)} - var - _ahK_=caml_call1(caml_call1(Stdlib_Array[15],_ahJ_),_ahI_), - _ahL_= - caml_call1 - (Runtime_ocaml_Runtime[49], - eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), - _ahM_=eligibilite_aides_personnelle_.eligibilite | 0; - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCourante), - _ahM_, - _ahL_, - _ahK_, - _ahH_]} - function logement_to_jsoo(logement) - {var - t622=zone_d_habitation_to_jsoo(logement[9]), - t621=caml_call1(Runtime_ocaml_Runtime[48],logement[8]), - t620=! ! logement[7], - t619=parent_ou_autre_to_jsoo(logement[6]), - t618=loue_ou_sous_loue_a_des_tiers_(logement[5]), - t617=parent_ou_autre_to_jsoo(logement[4]), - t616=mode_occupation_to_jsoo(logement[3]), - t615=! ! logement[2], - t614=! ! logement[1]; - return {"residencePrincipale":t614, - "estEhpadOuMaisonAutonomieL31312Asf":t615, - "modeOccupation":t616, - "proprietaire":t617, - "loueOuSousLoueADesTiers":t618, - "usufruit":t619, - "logementDecentL89462":t620, - "surfaceMCarres":t621, - "zone":t622}} - function logement_of_jsoo(logement) - {var - _ahA_=zone_d_habitation_of_jsoo(logement.zone), - _ahB_=caml_call1(Runtime_ocaml_Runtime[49],logement.surfaceMCarres), - _ahC_=logement.logementDecentL89462 | 0, - _ahD_=parent_ou_autre_of_jsoo(logement.usufruit), - _ahE_= - loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), - _ahF_=parent_ou_autre_of_jsoo(logement.proprietaire), - _ahG_=mode_occupation_of_jsoo(logement.modeOccupation); - return [0, - logement.residencePrincipale | 0, - logement.estEhpadOuMaisonAutonomieL31312Asf | 0, - _ahG_, - _ahF_, - _ahE_, - _ahD_, - _ahC_, - _ahB_, - _ahA_]} - function menage_to_jsoo(menage) - {var - t640=collectivite_to_jsoo$0(menage[9]), - t639=! ! menage[8], - t638=! ! menage[7], - t637=! ! menage[6], - t636=situation_familiale_to_jsoo(menage[5]), - t635=caml_call1(Runtime_ocaml_Runtime[48],menage[4]), - _ahw_=menage[3]; - function _ahx_(x){return personne_a_charge_to_jsoo(x)} - var - t634=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahx_,_ahw_)), - t633=logement_to_jsoo(menage[2]), - _ahy_=menage[1]; - function _ahz_(x){return prestation_recue_to_jsoo(x)} - var t632=caml_js_from_array(caml_call2(Stdlib_Array[15],_ahz_,_ahy_)); - return {"prestationsRecues":t632, - "logement":t633, - "personnesACharge":t634, - "nombreAutresOccupantsLogement":t635, - "situationFamiliale":t636, - "conditionRattacheFoyerFiscalParentIfi":t637, - "enfantANaitreApresQuatriemeMoisGrossesse":t638, - "personnesAgeesHandicapeesFoyerR8444":t639, - "residence":t640}} - function menage_of_jsoo(menage) - {var - _ahk_=collectivite_of_jsoo$0(menage.residence), - _ahl_=menage.personnesAgeesHandicapeesFoyerR8444 | 0, - _ahm_=menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, - _ahn_=menage.conditionRattacheFoyerFiscalParentIfi | 0, - _aho_=situation_familiale_of_jsoo(menage.situationFamiliale), - _ahp_= - caml_call1 - (Runtime_ocaml_Runtime[49],menage.nombreAutresOccupantsLogement), - _ahq_=caml_js_to_array(menage.personnesACharge); - function _ahr_(x){return personne_a_charge_of_jsoo(x)} - var - _ahs_=caml_call1(caml_call1(Stdlib_Array[15],_ahr_),_ahq_), - _aht_=logement_of_jsoo(menage.logement), - _ahu_=caml_js_to_array(menage.prestationsRecues); - function _ahv_(x){return prestation_recue_of_jsoo(x)} - return [0, - caml_call1(caml_call1(Stdlib_Array[15],_ahv_),_ahu_), - _aht_, - _ahs_, - _ahp_, - _aho_, - _ahn_, - _ahm_, - _ahl_, - _ahk_]} - function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_) - {function t655(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _ahj_= - caml_call1 - (eligibilite_aides_personnelle_[6],function_input0); - return caml_call1(Runtime_jsoo_Runtime[5],_ahj_)})} - function t654(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[5],function_input0)})} - function t653(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (eligibilite_aides_personnelle_[4],function_input0)})} - var - t652= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aides_personnelle_[3]), - t651=demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), - t650=menage_to_jsoo(eligibilite_aides_personnelle_[1]); - return {"menageIn":t650, - "demandeurIn":t651, - "dateCouranteIn":t652, - "conditionLogementResidencePrincipaleIn": - caml_js_wrap_meth_callback(t653), - "conditionLogementSurfaceIn":caml_js_wrap_meth_callback(t654), - "dateEntreeVigueurDiffereeCchIn": - caml_js_wrap_meth_callback(t655)}} - function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_) - {var - _ahe_=caml_call1(Stdlib[2],cst_The_function_date_entree_v), - _ahf_=caml_call1(Stdlib[2],cst_The_function_condition_log), - _ahg_=caml_call1(Stdlib[2],cst_The_function_condition_log$0), - _ahh_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aides_personnelle_.dateCouranteIn), - _ahi_=demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), - _ahi_, - _ahh_, - _ahg_, - _ahf_, - _ahe_]} - function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee) - {var - t661= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_aide_personnalisee[3]), - t660=demandeur_to_jsoo(eligibilite_aide_personnalisee[2]), - t659=menage_to_jsoo(eligibilite_aide_personnalisee[1]); - return {"menageIn":t659,"demandeurIn":t660,"dateCouranteIn":t661}} - function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee) - {var - _ahc_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_aide_personnalisee.dateCouranteIn), - _ahd_=demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); - return [0, - menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), - _ahd_, - _ahc_]} - function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen) - {var - t668=! ! eligibilite_allocation_logemen[4], - t667=demandeur_to_jsoo(eligibilite_allocation_logemen[3]), - t666=menage_to_jsoo(eligibilite_allocation_logemen[2]), - t665= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_allocation_logemen[1]); - return {"dateCouranteIn":t665, - "menageIn":t666, - "demandeurIn":t667, - "beneficieAidePersonnaliseeLogementIn":t668}} - function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen) - {var - _ag$_= - eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn - | - 0, - _aha_=demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), - _ahb_=menage_of_jsoo(eligibilite_allocation_logemen.menageIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_allocation_logemen.dateCouranteIn), - _ahb_, - _aha_, - _ag$_]} - function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem) - {var - t678= - caml_call1 - (Runtime_ocaml_Runtime[35],eligibilite_prime_de_demenagem[6]), - t677= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[5]), - t676=demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), - t675=menage_to_jsoo(eligibilite_prime_de_demenagem[3]), - t674= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prime_de_demenagem[2]), - t673=informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]); - return {"informationsIn":t673, - "dateEmmenagementIn":t674, - "menageIn":t675, - "demandeurIn":t676, - "dateCouranteIn":t677, - "depensesJustifieesReellementEngageesIn":t678}} - function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem) - {var - _ag5_= - caml_call1 - (Runtime_ocaml_Runtime[42], - eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), - _ag6_=caml_call1(Runtime_ocaml_Runtime[33],_ag5_), - _ag7_= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateCouranteIn), - _ag8_=demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), - _ag9_=menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), - _ag__= - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prime_de_demenagem.dateEmmenagementIn); - return [0, - informations_prime_de_demenage$0 - (eligibilite_prime_de_demenagem.informationsIn), - _ag__, - _ag9_, - _ag8_, - _ag7_, - _ag6_]} - function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l) - {var - t698= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[14]), - t697=paiement_logement_distinct_pro(ressources_aides_personnelle_l[13]), - t696= - caml_call1(Runtime_jsoo_Runtime[5],ressources_aides_personnelle_l[12]), - t695=! ! ressources_aides_personnelle_l[11], - t694=! ! ressources_aides_personnelle_l[10], - t693= - caml_call1(Runtime_jsoo_Runtime[5],ressources_aides_personnelle_l[9]), - t692=mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), - t691=situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), - _ag1_=ressources_aides_personnelle_l[6]; - function _ag2_(x){return personne_a_charge_to_jsoo(x)} - var - t690=caml_js_from_array(caml_call2(Stdlib_Array[15],_ag2_,_ag1_)), - t689=! ! ressources_aides_personnelle_l[5], - t688=! ! ressources_aides_personnelle_l[4], - _ag3_=ressources_aides_personnelle_l[3]; - function _ag4_(x){return personne_vivant_habituellement(x)} - var - t687=caml_js_from_array(caml_call2(Stdlib_Array[15],_ag4_,_ag3_)), - t686= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[2]), - t685= - caml_call1 - (Runtime_ocaml_Runtime[35],ressources_aides_personnelle_l[1]); - return {"ressourcesDemandeurIn":t685, - "ressourcesConjointIn":t686, - "personnesVivantHabituellementFoyerIn":t687, - "demandeurExerceActiviteRemunereeIn":t688, - "conjointExerceActiviteRemunereeIn":t689, - "personnesAChargeIn":t690, - "situationFamilialeIn":t691, - "modeOccupationIn":t692, - "dateCouranteIn":t693, - "conditionAgeBourseEnseignementSuperieurIn":t694, - "demandeurPoursuitDesEtudesIn":t695, - "dateDemandeOuReexamenDroitIn":t696, - "paiementLogementDistinctProfessionnelIn":t697, - "ressourcesMenageArrondiesBaseIn":t698}} - function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l) - {var - _agH_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), - _agI_=caml_call1(Runtime_ocaml_Runtime[33],_agH_), - _agJ_= - paiement_logement_distinct_pro$0 - (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), - _agK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), - _agL_=ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, - _agM_= - ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn - | - 0, - _agN_= - caml_call1 - (Runtime_jsoo_Runtime[4], - ressources_aides_personnelle_l.dateCouranteIn), - _agO_= - mode_occupation_of_jsoo - (ressources_aides_personnelle_l.modeOccupationIn), - _agP_= - situation_familiale_of_jsoo - (ressources_aides_personnelle_l.situationFamilialeIn), - _agQ_= - caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); - function _agR_(x){return personne_a_charge_of_jsoo(x)} - var - _agS_=caml_call1(caml_call1(Stdlib_Array[15],_agR_),_agQ_), - _agT_= - ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn - | - 0, - _agU_= - ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn - | - 0, - _agV_= - caml_js_to_array - (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); - function _agW_(x){return personne_vivant_habituellement$0(x)} - var - _agX_=caml_call1(caml_call1(Stdlib_Array[15],_agW_),_agV_), - _agY_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesConjointIn), - _agZ_=caml_call1(Runtime_ocaml_Runtime[33],_agY_), - _ag0_= - caml_call1 - (Runtime_ocaml_Runtime[42], - ressources_aides_personnelle_l.ressourcesDemandeurIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_ag0_), - _agZ_, - _agX_, - _agU_, - _agT_, - _agS_, - _agP_, - _agO_, - _agN_, - _agM_, - _agL_, - _agK_, - _agJ_, - _agI_]} - function contributions_sociales_aides_p$2(contributions_sociales_aides_p) - {var - t713= - caml_call1(Runtime_jsoo_Runtime[5],contributions_sociales_aides_p[1]); - return {"dateCouranteIn":t713}} - function contributions_sociales_aides_p$3(contributions_sociales_aides_p) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - contributions_sociales_aides_p.dateCouranteIn)]} - function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge) - {var - t728=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[14]), - t727=! ! calcul_aide_personnalisee_loge[13], - t726= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[12]), - t725=! ! calcul_aide_personnalisee_loge[11], - t724=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), - t723=! ! calcul_aide_personnalisee_loge[9], - t722=! ! calcul_aide_personnalisee_loge[8], - t721=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), - t720=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), - t719= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), - t718= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[4]), - t717=! ! calcul_aide_personnalisee_loge[3], - t716= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t715= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"loyerPrincipalBaseIn":t715, - "ressourcesMenageArrondiesIn":t716, - "beneficiaireAideAdulteOuEnfantHandicapesIn":t717, - "dateCouranteIn":t718, - "nombrePersonnesAChargeIn":t719, - "situationFamilialeCalculAplIn":t720, - "zoneIn":t721, - "logementEstChambreIn":t722, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t723, - "typeAideIn":t724, - "colocationIn":t725, - "reductionLoyerSolidariteIn":t726, - "logementMeubleD8422In":t727, - "residenceIn":t728}} - function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge) - {var - _agr_= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _ags_=calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, - _agt_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), - _agu_=caml_call1(Runtime_ocaml_Runtime[33],_agt_), - _agv_=calcul_aide_personnalisee_loge.colocationIn | 0, - _agw_= - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn), - _agx_= - calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | - 0, - _agy_=calcul_aide_personnalisee_loge.logementEstChambreIn | 0, - _agz_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _agA_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _agB_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _agC_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _agD_= - calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn - | - 0, - _agE_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _agF_=caml_call1(Runtime_ocaml_Runtime[33],_agE_), - _agG_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_agG_), - _agF_, - _agD_, - _agC_, - _agB_, - _agA_, - _agz_, - _agy_, - _agx_, - _agw_, - _agv_, - _agu_, - _ags_, - _agr_]} - function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim) - {var - t746= - caml_call1 - (Runtime_ocaml_Runtime[43],calcul_equivalence_loyer_minim[4]), - t745=! ! calcul_equivalence_loyer_minim[3], - t744= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_equivalence_loyer_minim[2]), - t743= - caml_call1(Runtime_jsoo_Runtime[5],calcul_equivalence_loyer_minim[1]); - return {"dateCouranteIn":t743, - "ressourcesMenageArrondiesIn":t744, - "condition2Du83225In":t745, - "nNombrePartsD83225In":t746}} - function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim) - {var - _agn_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.nNombrePartsD83225In), - _ago_=calcul_equivalence_loyer_minim.condition2Du83225In | 0, - _agp_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), - _agq_=caml_call1(Runtime_ocaml_Runtime[33],_agp_); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_equivalence_loyer_minim.dateCouranteIn), - _agq_, - _ago_, - _agn_]} - function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo) - {function t755(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_nombre_part_logement_fo[5],function_input0)})} - var - t754=collectivite_to_jsoo$0(calcul_nombre_part_logement_fo[4]), - t753=situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), - t752= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_nombre_part_logement_fo[2]), - t751=! ! calcul_nombre_part_logement_fo[1]; - return {"condition2Du83225In":t751, - "nombrePersonnesAChargeIn":t752, - "situationFamilialeCalculAplIn":t753, - "residenceIn":t754, - "limitationMajorationPersonnesAChargeIn": - caml_js_wrap_meth_callback(t755)}} - function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo) - {var - _agj_=caml_call1(Stdlib[2],cst_The_function_limitation_ma), - _agk_= - collectivite_of_jsoo$0(calcul_nombre_part_logement_fo.residenceIn), - _agl_= - situation_familiale_calcul_a_p$0 - (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), - _agm_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); - return [0, - calcul_nombre_part_logement_fo.condition2Du83225In | 0, - _agm_, - _agl_, - _agk_, - _agj_]} - function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge) - {function t771(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _agi_= - caml_call1 - (calcul_aide_personnalisee_loge[12],function_input0); - return caml_call1(Runtime_ocaml_Runtime[43],_agi_)})} - function t770(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[11],function_input0)})} - function t769(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {return ! - ! - caml_call1 - (calcul_aide_personnalisee_loge[10],function_input0)})} - var - t768=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[9]), - t767= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[8]), - t766= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), - t765=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - t764=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), - t763= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[4]), - t762= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t761= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[2]), - t760=type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); - return {"typeLogementFoyerIn":t760, - "dateConventionnementIn":t761, - "ressourcesMenageArrondiesIn":t762, - "nombrePersonnesAChargeIn":t763, - "situationFamilialeCalculAplIn":t764, - "zoneIn":t765, - "dateCouranteIn":t766, - "redevanceIn":t767, - "residenceIn":t768, - "condition2Du83225In":caml_js_wrap_meth_callback(t769), - "limitationMajorationPersonnesAChargeIn": - caml_js_wrap_meth_callback(t770), - "nNombrePartsD83225In":caml_js_wrap_meth_callback(t771)}} - function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge) - {var - _af7_=caml_call1(Stdlib[2],cst_The_function_n_nombre_part), - _af8_=caml_call1(Stdlib[2],cst_The_function_limitation_ma$0), - _af9_=caml_call1(Stdlib[2],cst_The_function_condition_2_d), - _af__= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _af$_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.redevanceIn), - _aga_=caml_call1(Runtime_ocaml_Runtime[33],_af$_), - _agb_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _agc_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _agd_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _age_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _agf_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _agg_=caml_call1(Runtime_ocaml_Runtime[33],_agf_), - _agh_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_aide_personnalisee_loge.typeLogementFoyerIn), - _agh_, - _agg_, - _age_, - _agd_, - _agc_, - _agb_, - _aga_, - _af__, - _af9_, - _af8_, - _af7_]} - function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_) - {var - t782=situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]), - t781= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_nombre_parts_accession_[1]); - return {"nombrePersonnesAChargeIn":t781, - "situationFamilialeCalculAplIn":t782}} - function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_) - {var - _af6_= - situation_familiale_calcul_a_p$0 - (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); - return [0, - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), - _af6_]} - function calcul_aide_personnalisee_loge$15(calcul_aide_personnalisee_loge) - {var - t798= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[14]), - t797=neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), - t796=type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), - t795=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), - t794=! ! calcul_aide_personnalisee_loge[10], - t793=! ! calcul_aide_personnalisee_loge[9], - t792= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[8]), - t791=! ! calcul_aide_personnalisee_loge[7], - t790= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[6]), - t789=type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), - t788=situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), - t787= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[3]), - t786= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[2]), - t785= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[1]); - return {"mensualitePrincipaleIn":t785, - "ressourcesMenageArrondiesIn":t786, - "nombrePersonnesAChargeIn":t787, - "situationFamilialeCalculAplIn":t788, - "typeTravauxLogementIn":t789, - "dateSignaturePretIn":t790, - "localHabitePremiereFoisBeneficiaireIn":t791, - "dateEntreeLogementIn":t792, - "coproprieteIn":t793, - "situationR822111317In":t794, - "zoneIn":t795, - "typePretIn":t796, - "ancienneteLogementIn":t797, - "dateCouranteIn":t798}} - function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge) - {var - _afR_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _afS_= - neuf_ou_ancien_of_jsoo - (calcul_aide_personnalisee_loge.ancienneteLogementIn), - _afT_=type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), - _afU_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _afV_=calcul_aide_personnalisee_loge.situationR822111317In | 0, - _afW_=calcul_aide_personnalisee_loge.coproprieteIn | 0, - _afX_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateEntreeLogementIn), - _afY_= - calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn - | - 0, - _afZ_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateSignaturePretIn), - _af0_= - type_travaux_logement_d832_15_$0 - (calcul_aide_personnalisee_loge.typeTravauxLogementIn), - _af1_= - situation_familiale_calcul_a_p$0 - (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), - _af2_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _af3_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), - _af4_=caml_call1(Runtime_ocaml_Runtime[33],_af3_), - _af5_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.mensualitePrincipaleIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_af5_), - _af4_, - _af2_, - _af1_, - _af0_, - _afZ_, - _afY_, - _afX_, - _afW_, - _afV_, - _afU_, - _afT_, - _afS_, - _afR_]} - function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge) - {var - t820=collectivite_to_jsoo$0(calcul_aide_personnalisee_loge[8]), - t819= - caml_call1(Runtime_jsoo_Runtime[5],calcul_aide_personnalisee_loge[7]), - t818=zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), - t817= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_aide_personnalisee_loge[5]), - t816=situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), - t815= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_aide_personnalisee_loge[3]), - t814=type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]), - t813=mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]); - return {"modeOccupationIn":t813, - "typeAideIn":t814, - "ressourcesMenageSansArrondiIn":t815, - "situationFamilialeIn":t816, - "nombrePersonnesAChargeIn":t817, - "zoneIn":t818, - "dateCouranteIn":t819, - "residenceIn":t820}} - function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge) - {var - _afJ_= - collectivite_of_jsoo$0(calcul_aide_personnalisee_loge.residenceIn), - _afK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_aide_personnalisee_loge.dateCouranteIn), - _afL_=zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), - _afM_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), - _afN_= - situation_familiale_of_jsoo - (calcul_aide_personnalisee_loge.situationFamilialeIn), - _afO_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), - _afP_=caml_call1(Runtime_ocaml_Runtime[33],_afO_), - _afQ_= - type_aides_personnelle_logemen$0 - (calcul_aide_personnalisee_loge.typeAideIn); - return [0, - mode_occupation_of_jsoo - (calcul_aide_personnalisee_loge.modeOccupationIn), - _afQ_, - _afP_, - _afN_, - _afM_, - _afL_, - _afK_, - _afJ_]} - function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc) - {var - t843=changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), - t842=collectivite_to_jsoo$0(calcul_allocation_logement_loc[14]), - t841=! ! calcul_allocation_logement_loc[13], - t840= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[12]), - t839=! ! calcul_allocation_logement_loc[11], - t838=type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), - t837=! ! calcul_allocation_logement_loc[9], - t836=! ! calcul_allocation_logement_loc[8], - t835=zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), - t834=situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), - t833= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_loc[5]), - t832= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_loc[4]), - t831=! ! calcul_allocation_logement_loc[3], - t830= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[2]), - t829= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_loc[1]); - return {"loyerPrincipalIn":t829, - "ressourcesMenageArrondiesIn":t830, - "beneficiaireAideAdulteOuEnfantHandicapesIn":t831, - "dateCouranteIn":t832, - "nombrePersonnesAChargeIn":t833, - "situationFamilialeCalculAplIn":t834, - "zoneIn":t835, - "logementEstChambreIn":t836, - "ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn":t837, - "typeAideIn":t838, - "colocationIn":t839, - "reductionLoyerSolidariteIn":t840, - "logementMeubleD8422In":t841, - "residenceIn":t842, - "changementLogementD8424In":t843}} - function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc) - {var - _afs_= - changement_logement_d842_4_of_ - (calcul_allocation_logement_loc.changementLogementD8424In), - _aft_= - collectivite_of_jsoo$0(calcul_allocation_logement_loc.residenceIn), - _afu_=calcul_allocation_logement_loc.logementMeubleD8422In | 0, - _afv_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.reductionLoyerSolidariteIn), - _afw_=caml_call1(Runtime_ocaml_Runtime[33],_afv_), - _afx_=calcul_allocation_logement_loc.colocationIn | 0, - _afy_= - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_loc.typeAideIn), - _afz_= - calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn - | - 0, - _afA_=calcul_allocation_logement_loc.logementEstChambreIn | 0, - _afB_=zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), - _afC_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), - _afD_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_loc.nombrePersonnesAChargeIn), - _afE_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_loc.dateCouranteIn), - _afF_= - calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn - | - 0, - _afG_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), - _afH_=caml_call1(Runtime_ocaml_Runtime[33],_afG_), - _afI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_loc.loyerPrincipalIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_afI_), - _afH_, - _afF_, - _afE_, - _afD_, - _afC_, - _afB_, - _afA_, - _afz_, - _afy_, - _afx_, - _afw_, - _afu_, - _aft_, - _afs_]} - function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc) - {var - t873=! ! calcul_allocation_logement_acc[15], - t872=! ! calcul_allocation_logement_acc[14], - t871= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[13]), - t870= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[12]), - t869=! ! calcul_allocation_logement_acc[11], - t868=type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), - t867= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[9]), - t866=! ! calcul_allocation_logement_acc[8], - t865= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[7]), - t864= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_acc[6]), - t863=collectivite_to_jsoo$0(calcul_allocation_logement_acc[5]), - t862=zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), - t861=situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), - t860= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_acc[2]), - t859= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_acc[1]); - return {"ressourcesMenageArrondiesBaseIn":t859, - "nombrePersonnesAChargeIn":t860, - "situationFamilialeCalculAplIn":t861, - "zoneIn":t862, - "residenceIn":t863, - "dateCouranteIn":t864, - "mensualitePrincipaleIn":t865, - "situationR822111317In":t866, - "dateSignaturePretIn":t867, - "typeTravauxLogementIn":t868, - "localHabitePremiereFoisBeneficiaireIn":t869, - "dateEntreeLogementIn":t870, - "chargesMensuellesPretIn":t871, - "coproprieteIn":t872, - "operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn": - t873}} - function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc) - {var - _afb_= - calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn - | - 0, - _afc_=calcul_allocation_logement_acc.coproprieteIn | 0, - _afd_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.chargesMensuellesPretIn), - _afe_=caml_call1(Runtime_ocaml_Runtime[33],_afd_), - _aff_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateEntreeLogementIn), - _afg_= - calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn - | - 0, - _afh_= - type_travaux_logement_r842_5_o - (calcul_allocation_logement_acc.typeTravauxLogementIn), - _afi_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateSignaturePretIn), - _afj_=calcul_allocation_logement_acc.situationR822111317In | 0, - _afk_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.mensualitePrincipaleIn), - _afl_=caml_call1(Runtime_ocaml_Runtime[33],_afk_), - _afm_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_acc.dateCouranteIn), - _afn_= - collectivite_of_jsoo$0(calcul_allocation_logement_acc.residenceIn), - _afo_=zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), - _afp_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), - _afq_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_acc.nombrePersonnesAChargeIn), - _afr_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); - return [0, - caml_call1(Runtime_ocaml_Runtime[33],_afr_), - _afq_, - _afp_, - _afo_, - _afn_, - _afm_, - _afl_, - _afj_, - _afi_, - _afh_, - _afg_, - _aff_, - _afe_, - _afc_, - _afb_]} - function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy) - {var - t898=categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), - t897= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[9]), - t896=zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), - t895=situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), - t894= - caml_call1 - (Runtime_ocaml_Runtime[48],calcul_allocation_logement_foy[6]), - t893= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[5]), - t892= - caml_call1 - (Runtime_ocaml_Runtime[35],calcul_allocation_logement_foy[4]), - t891=collectivite_to_jsoo$0(calcul_allocation_logement_foy[3]), - t890= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_foy[2]), - t889=type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]); - return {"typeLogementFoyerIn":t889, - "dateConventionnementIn":t890, - "residenceIn":t891, - "redevanceIn":t892, - "ressourcesMenageArrondiesIn":t893, - "nombrePersonnesAChargeIn":t894, - "situationFamilialeCalculAplIn":t895, - "zoneIn":t896, - "dateCouranteIn":t897, - "categorieEquivalenceLoyerD84216In":t898}} - function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy) - {var - _ae2_= - categorie_equivalence_loyer_al$0 - (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), - _ae3_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateCouranteIn), - _ae4_=zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), - _ae5_= - situation_familiale_calcul_a_p$0 - (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), - _ae6_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_foy.nombrePersonnesAChargeIn), - _ae7_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), - _ae8_=caml_call1(Runtime_ocaml_Runtime[33],_ae7_), - _ae9_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_foy.redevanceIn), - _ae__=caml_call1(Runtime_ocaml_Runtime[33],_ae9_), - _ae$_= - collectivite_of_jsoo$0(calcul_allocation_logement_foy.residenceIn), - _afa_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_foy.dateConventionnementIn); - return [0, - type_logement_foyer_of_jsoo - (calcul_allocation_logement_foy.typeLogementFoyerIn), - _afa_, - _ae$_, - _ae__, - _ae8_, - _ae6_, - _ae5_, - _ae4_, - _ae3_, - _ae2_]} - function calcul_allocation_logement_in_(calcul_allocation_logement_in) - {var - t916=collectivite_to_jsoo$0(calcul_allocation_logement_in[8]), - t915=type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), - t914= - caml_call1(Runtime_jsoo_Runtime[5],calcul_allocation_logement_in[6]), - t913=zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), - t912= - caml_call1(Runtime_ocaml_Runtime[48],calcul_allocation_logement_in[4]), - t911=situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), - t910= - caml_call1(Runtime_ocaml_Runtime[35],calcul_allocation_logement_in[2]), - t909=mode_occupation_to_jsoo(calcul_allocation_logement_in[1]); - return {"modeOccupationIn":t909, - "ressourcesMenageSansArrondiIn":t910, - "situationFamilialeIn":t911, - "nombrePersonnesAChargeIn":t912, - "zoneIn":t913, - "dateCouranteIn":t914, - "typeAideIn":t915, - "residenceIn":t916}} - function calcul_allocation_logement_in_$0(calcul_allocation_logement_in) - {var - _aeU_=collectivite_of_jsoo$0(calcul_allocation_logement_in.residenceIn), - _aeV_= - type_aides_personnelle_logemen$0 - (calcul_allocation_logement_in.typeAideIn), - _aeW_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calcul_allocation_logement_in.dateCouranteIn), - _aeX_=zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), - _aeY_= - caml_call1 - (Runtime_ocaml_Runtime[49], - calcul_allocation_logement_in.nombrePersonnesAChargeIn), - _aeZ_= - situation_familiale_of_jsoo - (calcul_allocation_logement_in.situationFamilialeIn), - _ae0_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), - _ae1_=caml_call1(Runtime_ocaml_Runtime[33],_ae0_); - return [0, - mode_occupation_of_jsoo - (calcul_allocation_logement_in.modeOccupationIn), - _ae1_, - _aeZ_, - _aeY_, - _aeX_, - _aeW_, - _aeV_, - _aeU_]} - function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in) - {var - t925= - caml_call1(Runtime_jsoo_Runtime[5],ouverture_droits_retraite_in[1]); - return {"dateNaissanceAssureIn":t925}} - function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - ouverture_droits_retraite_in.dateNaissanceAssureIn)]} - function impaye_depense_logement_in_to_(impaye_depense_logement_in) - {var - t932= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[6]), - t931=depense_logement_to_jsoo(impaye_depense_logement_in[5]), - t930= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[4]), - t929= - caml_call1(Runtime_ocaml_Runtime[35],impaye_depense_logement_in[3]), - t928=versement_a_to_jsoo(impaye_depense_logement_in[2]), - t927=mode_occupation_to_jsoo(impaye_depense_logement_in[1]); - return {"modeOccupationIn":t927, - "aideVerseeIn":t928, - "montantAplIn":t929, - "montantChargesIn":t930, - "depenseLogementIn":t931, - "montantDetteIn":t932}} - function impaye_depense_logement_in_of_(impaye_depense_logement_in) - {var - _aeM_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantDetteIn), - _aeN_=caml_call1(Runtime_ocaml_Runtime[33],_aeM_), - _aeO_= - depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), - _aeP_= - caml_call1 - (Runtime_ocaml_Runtime[42], - impaye_depense_logement_in.montantChargesIn), - _aeQ_=caml_call1(Runtime_ocaml_Runtime[33],_aeP_), - _aeR_= - caml_call1 - (Runtime_ocaml_Runtime[42],impaye_depense_logement_in.montantAplIn), - _aeS_=caml_call1(Runtime_ocaml_Runtime[33],_aeR_), - _aeT_=versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); - return [0, - mode_occupation_of_jsoo - (impaye_depense_logement_in.modeOccupationIn), - _aeT_, - _aeS_, - _aeQ_, - _aeO_, - _aeN_]} - function calculette_aides_au_logement_i(calculette_aides_au_logement_i) - {var - t942= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_i[4]), - t941= - caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_i[3]), - t940=demandeur_to_jsoo(calculette_aides_au_logement_i[2]), - t939=menage_to_jsoo(calculette_aides_au_logement_i[1]); - return {"menageIn":t939, - "demandeurIn":t940, - "dateCouranteIn":t941, - "ressourcesMenagePrisesEnCompteIn":t942}} - function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i) - {var - _aeI_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), - _aeJ_=caml_call1(Runtime_ocaml_Runtime[33],_aeI_), - _aeK_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_i.dateCouranteIn), - _aeL_=demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_i.menageIn), - _aeL_, - _aeK_, - _aeJ_]} - function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g) - {var - t950= - caml_call1 - (Runtime_ocaml_Runtime[35],calculette_aides_au_logement_g[4]), - t949= - caml_call1(Runtime_jsoo_Runtime[5],calculette_aides_au_logement_g[3]), - t948=demandeur_to_jsoo(calculette_aides_au_logement_g[2]), - t947=menage_to_jsoo(calculette_aides_au_logement_g[1]); - return {"menageIn":t947, - "demandeurIn":t948, - "dateCouranteIn":t949, - "ressourcesMenagePrisesEnCompteIn":t950}} - function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g) - {var - _aeE_= - caml_call1 - (Runtime_ocaml_Runtime[42], - calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), - _aeF_=caml_call1(Runtime_ocaml_Runtime[33],_aeE_), - _aeG_= - caml_call1 - (Runtime_jsoo_Runtime[4], - calculette_aides_au_logement_g.dateCouranteIn), - _aeH_=demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); - return [0, - menage_of_jsoo(calculette_aides_au_logement_g.menageIn), - _aeH_, - _aeG_, - _aeF_]} - function base_mensuelle_allocations_fam$8(base_mensuelle_allocations_fam) - {var - t955= - caml_call1(Runtime_jsoo_Runtime[5],base_mensuelle_allocations_fam[1]); - return {"dateCouranteIn":t955}} - function base_mensuelle_allocations_fam$9(base_mensuelle_allocations_fam) - {return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - base_mensuelle_allocations_fam.dateCouranteIn)]} - function verification_age_inferieur_ou_$8(verification_age_inferieur_ou_) - {var - t959= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_inferieur_ou_[3]), - t958= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[2]), - t957= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_inferieur_ou_[1]); - return {"dateNaissanceIn":t957,"dateCouranteIn":t958,"anneesIn":t959}} - function verification_age_inferieur_ou_$9(verification_age_inferieur_ou_) - {var - _aeC_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_inferieur_ou_.anneesIn), - _aeD_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_inferieur_ou_.dateNaissanceIn), - _aeD_, - _aeC_]} - function verification_age_superieur_a_i$1(verification_age_superieur_a_i) - {var - t965= - caml_call1(Runtime_jsoo_Runtime[3],verification_age_superieur_a_i[3]), - t964= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[2]), - t963= - caml_call1(Runtime_jsoo_Runtime[5],verification_age_superieur_a_i[1]); - return {"dateNaissanceIn":t963,"dateCouranteIn":t964,"anneesIn":t965}} - function verification_age_superieur_a_i$2(verification_age_superieur_a_i) - {var - _aeA_= - caml_call1 - (Runtime_jsoo_Runtime[2],verification_age_superieur_a_i.anneesIn), - _aeB_= - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - verification_age_superieur_a_i.dateNaissanceIn), - _aeB_, - _aeA_]} - function smic_in_to_jsoo$0(smic_in) - {var - t970=collectivite_to_jsoo$0(smic_in[2]), - t969=caml_call1(Runtime_jsoo_Runtime[5],smic_in[1]); - return {"dateCouranteIn":t969,"residenceIn":t970}} - function smic_in_of_jsoo$0(smic_in) - {var _aez_=collectivite_of_jsoo$0(smic_in.residenceIn); - return [0, - caml_call1(Runtime_jsoo_Runtime[4],smic_in.dateCouranteIn), - _aez_]} - function eligibilite_prestations_famili$2(eligibilite_prestations_famili) - {function t976(param) - {return caml_js_wrap_meth_callback - (function(param,function_input0) - {var - _aey_= - caml_call1 - (eligibilite_prestations_famili[4],function_input0); - return caml_call1(Runtime_jsoo_Runtime[3],_aey_)})} - var - t975=collectivite_to_jsoo$0(eligibilite_prestations_famili[3]), - t974= - element_prestations_familiales$1(eligibilite_prestations_famili[2]), - t973= - caml_call1(Runtime_jsoo_Runtime[5],eligibilite_prestations_famili[1]); - return {"dateCouranteIn":t973, - "prestationCouranteIn":t974, - "residenceIn":t975, - "ageL51232In":caml_js_wrap_meth_callback(t976)}} - function eligibilite_prestations_famili$3(eligibilite_prestations_famili) - {var - _aev_=caml_call1(Stdlib[2],cst_The_function_age_l512_3_2_), - _aew_= - collectivite_of_jsoo$0(eligibilite_prestations_famili.residenceIn), - _aex_= - element_prestations_familiales$2 - (eligibilite_prestations_famili.prestationCouranteIn); - return [0, - caml_call1 - (Runtime_jsoo_Runtime[4], - eligibilite_prestations_famili.dateCouranteIn), - _aex_, - _aew_, - _aev_]} - function contributions_sociales_aides_p$4 - (contributions_sociales_aides_p$1) - {return contributions_sociales_aides_p$0 - (contributions_sociales_aides_p - (contributions_sociales_aides_p$3 - (contributions_sociales_aides_p$1)))} - function calcul_equivalence_loyer_minim$4 - (calcul_equivalence_loyer_minim$1) - {return calcul_equivalence_loyer_minim$0 - (calcul_equivalence_loyer_minim - (calcul_equivalence_loyer_minim$3 - (calcul_equivalence_loyer_minim$1)))} - function calcul_nombre_part_logement_fo$4 - (calcul_nombre_part_logement_fo$1) - {return calcul_nombre_part_logement_fo$0 - (calcul_nombre_part_logement_fo - (calcul_nombre_part_logement_fo$3 - (calcul_nombre_part_logement_fo$1)))} - function calcul_nombre_parts_accession_$4 - (calcul_nombre_parts_accession_$1) - {return calcul_nombre_parts_accession_$0 - (calcul_nombre_parts_accession_ - (calcul_nombre_parts_accession_$3 - (calcul_nombre_parts_accession_$1)))} - function ouverture_droits_retraite$0(ouverture_droits_retraite_in) - {return ouverture_droits_retraite_to_j - (ouverture_droits_retraite - (ouverture_droits_retraite_in_o(ouverture_droits_retraite_in)))} - function impaye_depense_logement$0(impaye_depense_logement_in) - {return impaye_depense_logement_to_jso - (impaye_depense_logement - (impaye_depense_logement_in_of_(impaye_depense_logement_in)))} - function base_mensuelle_allocations_fam$10(base_mensuelle_allocations_fam) - {return base_mensuelle_allocations_fam$6 - (base_mensuelle_allocations_fam$5 - (base_mensuelle_allocations_fam$9 - (base_mensuelle_allocations_fam)))} - function verification_age_inferieur_ou_$10(verification_age_inferieur_ou_) - {return verification_age_inferieur_ou_$6 - (verification_age_inferieur_ou_$5 - (verification_age_inferieur_ou_$9 - (verification_age_inferieur_ou_)))} - function verification_age_superieur_a$2(verification_age_superieur_a_i) - {return verification_age_superieur_a_t$0 - (verification_age_superieur_a$1 - (verification_age_superieur_a_i$2 - (verification_age_superieur_a_i)))} - function smic$2(smic_in) - {return smic_to_jsoo$0(smic$1(smic_in_of_jsoo$0(smic_in)))} - function calcul_aide_personnalisee_loge$19 - (calcul_aide_personnalisee_loge$0) - {return calcul_aide_personnalisee_loge$3 - (calcul_aide_personnalisee_loge - (calcul_aide_personnalisee_loge$12 - (calcul_aide_personnalisee_loge$0)))} - function calcul_aide_personnalisee_loge$20(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$5 - (calcul_aide_personnalisee_loge$0 - (calcul_aide_personnalisee_loge$14 - (calcul_aide_personnalisee_loge)))} - function calcul_aide_personnalisee_loge$21(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$7 - (calcul_aide_personnalisee_loge$1 - (calcul_aide_personnalisee_loge$16 - (calcul_aide_personnalisee_loge)))} - function ressources_aides_personnelle_l$4 - (ressources_aides_personnelle_l$1) - {return ressources_aides_personnelle_l$0 - (ressources_aides_personnelle_l - (ressources_aides_personnelle_l$3 - (ressources_aides_personnelle_l$1)))} - function eligibilite_prestations_famili$4 - (eligibilite_prestations_famili$1) - {return eligibilite_prestations_famili$0 - (eligibilite_prestations_famili - (eligibilite_prestations_famili$3 - (eligibilite_prestations_famili$1)))} - function calcul_allocation_logement_loc$4 - (calcul_allocation_logement_loc$1) - {return calcul_allocation_logement_loc$0 - (calcul_allocation_logement_loc - (calcul_allocation_logement_loc$3 - (calcul_allocation_logement_loc$1)))} - function calcul_allocation_logement_foy$4 - (calcul_allocation_logement_foy$1) - {return calcul_allocation_logement_foy$0 - (calcul_allocation_logement_foy - (calcul_allocation_logement_foy$3 - (calcul_allocation_logement_foy$1)))} - function calcul_allocation_logement_acc$4 - (calcul_allocation_logement_acc$1) - {return calcul_allocation_logement_acc$0 - (calcul_allocation_logement_acc - (calcul_allocation_logement_acc$3 - (calcul_allocation_logement_acc$1)))} - function calcul_aide_personnalisee_loge$22(calcul_aide_personnalisee_loge) - {return calcul_aide_personnalisee_loge$9 - (calcul_aide_personnalisee_loge$2 - (calcul_aide_personnalisee_loge$18 - (calcul_aide_personnalisee_loge)))} - function eligibilite_aides_personnelle_$4 - (eligibilite_aides_personnelle_$1) - {return eligibilite_aides_personnelle_$0 - (eligibilite_aides_personnelle_ - (eligibilite_aides_personnelle_$3 - (eligibilite_aides_personnelle_$1)))} - function calcul_allocation_logement$0(calcul_allocation_logement_in) - {return calcul_allocation_logement_to_ - (calcul_allocation_logement - (calcul_allocation_logement_in_$0 - (calcul_allocation_logement_in)))} - function eligibilite_prime_de_demenagem$4 - (eligibilite_prime_de_demenagem$1) - {return eligibilite_prime_de_demenagem$0 - (eligibilite_prime_de_demenagem - (eligibilite_prime_de_demenagem$3 - (eligibilite_prime_de_demenagem$1)))} - function eligibilite_allocation_logemen$4 - (eligibilite_allocation_logemen$1) - {return eligibilite_allocation_logemen$0 - (eligibilite_allocation_logemen - (eligibilite_allocation_logemen$3 - (eligibilite_allocation_logemen$1)))} - function eligibilite_aide_personnalisee$4 - (eligibilite_aide_personnalisee$1) - {return eligibilite_aide_personnalisee$0 - (eligibilite_aide_personnalisee - (eligibilite_aide_personnalisee$3 - (eligibilite_aide_personnalisee$1)))} - function calculette_aides_au_logement$0(calculette_aides_au_logement_i) - {return calculette_aides_au_logement_t - (calculette_aides_au_logement - (calculette_aides_au_logement_i$0 - (calculette_aides_au_logement_i)))} - function calculette_aides_au_logement_g$4 - (calculette_aides_au_logement_g$1) - {return calculette_aides_au_logement_g$0 - (calculette_aides_au_logement_g - (calculette_aides_au_logement_g$3 - (calculette_aides_au_logement_g$1)))} - function t1005(param) - {return caml_js_wrap_callback(calculette_aides_au_logement_g$4)} - function t1004(param) - {return caml_js_wrap_callback(calculette_aides_au_logement$0)} - function t1003(param) - {return caml_js_wrap_callback(eligibilite_aide_personnalisee$4)} - function t1002(param) - {return caml_js_wrap_callback(eligibilite_allocation_logemen$4)} - function t1001(param) - {return caml_js_wrap_callback(eligibilite_prime_de_demenagem$4)} - function t1000(param) - {return caml_js_wrap_callback(calcul_allocation_logement$0)} - function t999(param) - {return caml_js_wrap_callback(eligibilite_aides_personnelle_$4)} - function t998(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$22)} - function t997(param) - {return caml_js_wrap_callback(calcul_allocation_logement_acc$4)} - function t996(param) - {return caml_js_wrap_callback(calcul_allocation_logement_foy$4)} - function t995(param) - {return caml_js_wrap_callback(calcul_allocation_logement_loc$4)} - function t994(param) - {return caml_js_wrap_callback(eligibilite_prestations_famili$4)} - function t993(param) - {return caml_js_wrap_callback(ressources_aides_personnelle_l$4)} - function t992(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$21)} - function t991(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$20)} - function t990(param) - {return caml_js_wrap_callback(calcul_aide_personnalisee_loge$19)} - function t989(param){return caml_js_wrap_callback(smic$2)} - function t988(param) - {return caml_js_wrap_callback(verification_age_superieur_a$2)} - function t987(param) - {return caml_js_wrap_callback(verification_age_inferieur_ou_$10)} - function t986(param) - {return caml_js_wrap_callback(base_mensuelle_allocations_fam$10)} - function t985(param) - {return caml_js_wrap_callback(impaye_depense_logement$0)} - function t984(param) - {return caml_js_wrap_callback(ouverture_droits_retraite$0)} - function t983(param) - {return caml_js_wrap_callback(calcul_nombre_parts_accession_$4)} - function t982(param) - {return caml_js_wrap_callback(calcul_nombre_part_logement_fo$4)} - function t981(param) - {return caml_js_wrap_callback(calcul_equivalence_loyer_minim$4)} - function t980(param) - {return caml_js_wrap_callback(contributions_sociales_aides_p$4)} - caml_call2 - (Js_of_ocaml_Js[50], - cst_AidesLogementLib, - {"contributionsSocialesAidesPersonnelleLogement": - caml_js_wrap_meth_callback(t980), - "calculEquivalenceLoyerMinimale":caml_js_wrap_meth_callback(t981), - "calculNombrePartLogementFoyer":caml_js_wrap_meth_callback(t982), - "calculNombrePartsAccessionPropriete":caml_js_wrap_meth_callback(t983), - "ouvertureDroitsRetraite":caml_js_wrap_meth_callback(t984), - "impayeDepenseLogement":caml_js_wrap_meth_callback(t985), - "baseMensuelleAllocationsFamiliales":caml_js_wrap_meth_callback(t986), - "verificationAgeInferieurOuEgalA":caml_js_wrap_meth_callback(t987), - "verificationAgeSuperieurA":caml_js_wrap_meth_callback(t988), - "smic":caml_js_wrap_meth_callback(t989), - "calculAidePersonnaliseeLogementLocatif": - caml_js_wrap_meth_callback(t990), - "calculAidePersonnaliseeLogementFoyer":caml_js_wrap_meth_callback(t991), - "calculAidePersonnaliseeLogementAccessionPropriete": - caml_js_wrap_meth_callback(t992), - "ressourcesAidesPersonnelleLogement":caml_js_wrap_meth_callback(t993), - "eligibilitePrestationsFamiliales":caml_js_wrap_meth_callback(t994), - "calculAllocationLogementLocatif":caml_js_wrap_meth_callback(t995), - "calculAllocationLogementFoyer":caml_js_wrap_meth_callback(t996), - "calculAllocationLogementAccessionPropriete": - caml_js_wrap_meth_callback(t997), - "calculAidePersonnaliseeLogement":caml_js_wrap_meth_callback(t998), - "eligibiliteAidesPersonnelleLogement":caml_js_wrap_meth_callback(t999), - "calculAllocationLogement":caml_js_wrap_meth_callback(t1000), - "eligibilitePrimeDeDemenagement":caml_js_wrap_meth_callback(t1001), - "eligibiliteAllocationLogement":caml_js_wrap_meth_callback(t1002), - "eligibiliteAidePersonnaliseeLogement": - caml_js_wrap_meth_callback(t1003), - "calculetteAidesAuLogement":caml_js_wrap_meth_callback(t1004), - "calculetteAidesAuLogementGardeAlternee": - caml_js_wrap_meth_callback(t1005)}); + runtime.caml_register_global + (6569, Law_source_Aides_logement, "Law_source__Aides_logement"); + return; + } + (globalThis)); + +//# 82930 "law_source/.law_source.objs/jsoo/default/law_source.cma.js" +(function + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + cst_AccessionPropriete = "AccessionPropriete", + cst_AccessionProprieteLocalUsa = + "AccessionProprieteLocalUsageExclusifHabitation", + cst_Accord = "Accord", + cst_AgrandirOuRendreHabitableD = "AgrandirOuRendreHabitableD331_63", + cst_AidePersonnaliseeLogement = "AidePersonnaliseeLogement", + cst_AllocationAdulteHandicape = "AllocationAdulteHandicape", + cst_AllocationEducationEnfantH = "AllocationEducationEnfantHandicape", + cst_AllocationJeuneEnfant = "AllocationJeuneEnfant", + cst_AllocationJournalierePrese = "AllocationJournalierePresenceParentale", + cst_AllocationLogement = "AllocationLogement", + cst_AllocationLogementFamilial = "AllocationLogementFamiliale", + cst_AllocationLogementSociale = "AllocationLogementSociale", + cst_AllocationRentreeScolaire = "AllocationRentreeScolaire", + cst_AllocationSoutienEnfantHan = "AllocationSoutienEnfantHandicape", + cst_AllocationSoutienFamilial = "AllocationSoutienFamilial", + cst_AllocationsFamiliales = "AllocationsFamiliales", + cst_Ancien = "Ancien", + cst_Apres = "Apres", + cst_ApresPremierJourMoisCivilT = + "ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse", + cst_Ascendant = "Ascendant", + cst_Autre = "Autre", + cst_AutrePersonneACharge = "AutrePersonneACharge", + cst_AutresPersonnes = "AutresPersonnes", + cst_Avant = "Avant", + cst_AvantPremierJourMoisCivilT = + "AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse", + cst_Bailleur = "Bailleur", + cst_BailleurPrive = "BailleurPrive", + cst_BailleurPriveAvecConventio = "BailleurPriveAvecConventionnementSocial", + cst_BailleurSocial = "BailleurSocial", + cst_Beneficiaire = "Beneficiaire", + cst_Celibataire = "Celibataire", + cst_CelibataireSepareDeFait = "CelibataireSepareDeFait", + cst_Changement = "Changement", + cst_CollateralDeuxiemeTroisiem = "CollateralDeuxiemeTroisiemeDegre", + cst_ComplementFamilial = "ComplementFamilial", + cst_ConcubinageDontSepareDeFai = "ConcubinageDontSepareDeFait", + cst_Concubins = "Concubins", + cst_Couple = "Couple", + cst_D331_32 = "D331_32", + cst_D331_59_8 = "D331_59_8", + cst_D331_63_64 = "D331_63_64", + cst_D331_76_1 = "D331_76_1", + cst_DateDeNaissance = "DateDeNaissance", + cst_Demandeur = "Demandeur", + cst_DemandeurOuConjointOuParen = + "DemandeurOuConjointOuParentOuViaPartsSocietes", + cst_Descendant = "Descendant", + cst_EffectiveEtPermanente = "EffectiveEtPermanente", + cst_EnfantACharge = "EnfantACharge", + cst_EtablissementHabilite = "EtablissementHabilite", + cst_Etrangere = "Etrangere", + cst_EtudiantLogeEnChambreCROUS = "EtudiantLogeEnChambreCROUS", + cst_EtudiantLogeEnChambreCROUS$0 = "EtudiantLogeEnChambreCROUSRehabilitee", + cst_FoyerJeunesTrvailleursOuMi = + "FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995", + cst_Francaise = "Francaise", + cst_GardeAlterneeAllocataireUn = "GardeAlterneeAllocataireUnique", + cst_GardeAlterneeCoefficientPr = "GardeAlterneeCoefficientPriseEnCharge", + cst_GardeAlterneePartageAlloca = "GardeAlterneePartageAllocations", + cst_Guadeloupe = "Guadeloupe", + cst_Guyane = "Guyane", + cst_ImpayeLoyer = "ImpayeLoyer", + cst_ImpayePret = "ImpayePret", + cst_Infini = "Infini", + cst_LaReunion = "LaReunion", + cst_Locataire = "Locataire", + cst_Location = "Location", + cst_LocationAccession = "LocationAccession", + cst_LogementFoyer = "LogementFoyer", + cst_LogementPersonnesAgeesOuHa = "LogementPersonnesAgeesOuHandicapees", + cst_Loyer = "Loyer", + cst_Maries = "Maries", + cst_Martinique = "Martinique", + cst_Mayotte = "Mayotte", + cst_Mensualite = "Mensualite", + cst_Metropole = "Metropole", + cst_MoinsDeTroisEnfants = "MoinsDeTroisEnfants", + cst_Neuf = "Neuf", + cst_Non = "Non", + cst_ObjectifDecenceLogement = "ObjectifDecenceLogement", + cst_Oui = "Oui", + cst_OuiAvecLoyerOuCharges = "OuiAvecLoyerOuCharges", + cst_Pacses = "Pacses", + cst_PasDeChangement = "PasDeChangement", + cst_PasDeGardeAlternee = "PasDeGardeAlternee", + cst_PasDeTravaux = "PasDeTravaux", + cst_PasEligible = "PasEligible", + cst_PasdAccord = "PasdAccord", + cst_Pendant = "Pendant", + cst_PersonneSeule = "PersonneSeule", + cst_PersonnesAgeesSelon3DeD842 = "PersonnesAgeesSelon3DeD842_16", + cst_PlusDeTroisEnfants = "PlusDeTroisEnfants", + cst_PrestationAccueilJeuneEnfa = "PrestationAccueilJeuneEnfant", + cst_PrevuDansListeR321_15 = "PrevuDansListeR321_15", + cst_ResidenceAlterneeAllocatai = "ResidenceAlterneeAllocataireUnique", + cst_ResidenceAlterneeAllocatio = "ResidenceAlterneeAllocationsPartagee", + cst_ResidenceSociale = "ResidenceSociale", + cst_ResidentLogementFoyer = "ResidentLogementFoyer", + cst_Revenu = "Revenu", + cst_SaintBarthelemy = "SaintBarthelemy", + cst_SaintMartin = "SaintMartin", + cst_SaintPierreEtMiquelon = "SaintPierreEtMiquelon", + cst_ServicesSociauxAllocationV = + "ServicesSociauxAllocationVerseeALaFamille", + cst_ServicesSociauxAllocationV$0 = + "ServicesSociauxAllocationVerseeAuxServicesSociaux", + cst_SousLocataire = "SousLocataire", + cst_The_function_limitation_ma$1 = + "The function 'limitation_majoration_personnes_a_charge_in' translation isn't yet supported...", + cst_The_function_traitement_ai$9 = + "The function 'traitement_aide_finale' translation isn't yet supported...", + cst_TotalAnnuelEcheances = "TotalAnnuelEcheances", + cst_TravauxPourAcquisitionD832 = "TravauxPourAcquisitionD832_15_1", + cst_TravauxSurLogementDejaAcqu = "TravauxSurLogementDejaAcquisD832_15_2", + cst_Unexpected = "Unexpected '", + cst_VendeurQuandDemandeurACont = + "VendeurQuandDemandeurAContratLocationAccession", + cst_Zone1 = "Zone1", + cst_Zone2 = "Zone2", + cst_Zone3 = "Zone3", + caml_js_from_array = runtime.caml_js_from_array, + caml_js_to_array = runtime.caml_js_to_array, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback, + caml_string_notequal = runtime.caml_string_notequal, + caml_string_of_jsstring = runtime.caml_string_of_jsstring; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + function caml_call2(f, a0, a1){ + return (f.l >= 0 ? f.l : f.l = f.length) == 2 + ? f(a0, a1) + : runtime.caml_call_gen(f, [a0, a1]); + } + var global_data = runtime.caml_get_global_data(); + global_data.CamlinternalOO; + var + Law_source_Aides_logement = global_data.Law_source__Aides_logement, + Stdlib = global_data.Stdlib, + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Runtime_ocaml_Runtime = global_data.Runtime_ocaml__Runtime, + Stdlib_Array = global_data.Stdlib__Array, + Stdlib_Printf = global_data.Stdlib__Printf, + Js_of_ocaml_Js = global_data.Js_of_ocaml__Js, + cst_The_function_age_l512_3_2_ = + "The function 'age_l512_3_2_in' translation isn't yet supported...", + cst_The_function_n_nombre_part = + "The function 'n_nombre_parts_d832_25_in' translation isn't yet supported...", + cst_The_function_limitation_ma$0 = cst_The_function_limitation_ma$1, + cst_The_function_condition_2_d = + "The function 'condition_2_du_832_25_in' translation isn't yet supported...", + cst_The_function_limitation_ma = cst_The_function_limitation_ma$1, + cst_The_function_date_entree_v = + "The function 'date_entree_vigueur_differee_cch_in' translation isn't yet supported...", + cst_The_function_condition_log = + "The function 'condition_logement_surface_in' translation isn't yet supported...", + cst_The_function_condition_log$0 = + "The function 'condition_logement_residence_principale_in' translation isn't yet supported...", + cst_The_function_condition_2_r = + "The function 'condition_2_r823_4' translation isn't yet supported...", + _bp_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ModeOccupation.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ModeOccupation.t'"], + _bo_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'CategorieCalculAPL.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'CategorieCalculAPL.t'"], + _bn_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PersonneACharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PersonneACharge.t'"], + cst_The_function_conditions_ho = + "The function 'conditions_hors_age' translation isn't yet supported...", + cst_The_function_droit_ouvert_ = + "The function 'droit_ouvert' translation isn't yet supported...", + _bm_ = [1, 0], + _bl_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'ChangementLogementD8424.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'"], + _bk_ = [0, 0], + _bj_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Nationalite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Nationalite.t'"], + _bi_ = [0, 0], + _bh_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'LoueOuSousLoueADesTiers.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"], + _bg_ = [2, 0], + _bf_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypeBailleur.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeBailleur.t'"], + _be_ = [0, 0], + _bd_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"], + _bc_ = [0, 0], + _bb_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'NeufOuAncien.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'"], + cst_The_function_traitement_ai$8 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$7 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$6 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$5 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$4 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$3 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$2 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$1 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai$0 = cst_The_function_traitement_ai$9, + cst_The_function_traitement_ai = cst_The_function_traitement_ai$9, + cst_The_function_montant_trans = + "The function 'montant' translation isn't yet supported...", + _a5_ = [0, 0], + _a6_ = [2, 0], + _a7_ = [1, 0], + _a8_ = [5, 0], + _a9_ = [6, 0], + _a__ = [3, 0], + _a$_ = [7, 0], + _ba_ = [4, 0], + _a4_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'ElementPrestationsFamiliales.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'"], + _a1_ = [1, 0], + _a2_ = [0, 0], + _a3_ = [2, 0], + _a0_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationObligationScolaire.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'"], + _aV_ = [4, 0], + _aW_ = [3, 0], + _aX_ = [0, 0], + _aY_ = [1, 0], + _aZ_ = [2, 0], + _aU_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnChargeEnfant.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'"], + _aL_ = [7, 0], + _aM_ = [5, 0], + _aN_ = [4, 0], + _aO_ = [6, 0], + _aP_ = [8, 0], + _aQ_ = [2, 0], + _aR_ = [3, 0], + _aS_ = [1, 0], + _aT_ = [0, 0], + _aK_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Collectivite.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Collectivite.t'"], + _aI_ = [0, 0], + _aJ_ = [1, 0], + _aH_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationFamilialeCalculAPL.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'"], + _aD_ = [2, 0], + _aE_ = [1, 0], + _aF_ = [0, 0], + _aG_ = [3, 0], + _aC_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"], + _ay_ = [1, 0], + _az_ = [0, 0], + _aA_ = [2, 0], + _aB_ = [3, 0], + _ax_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypeLogementFoyer.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'"], + _au_ = [2, 0], + _av_ = [1, 0], + _aw_ = [0, 0], + _at_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PriseEnCharge.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'"], + _ao_ = [2, 0], + _ap_ = [3, 0], + _aq_ = [5, 0], + _ar_ = [4, 0], + _as_ = [0, 0], + _an_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'SituationFamiliale.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'"], + _ak_ = [2, 0], + _al_ = [1, 0], + _am_ = [0, 0], + _aj_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'TypeAidesPersonnelleLogement.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"], + _ai_ = [1, 0], + _ah_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'AccordFinancementRepresentantEtatOutreMer.t'"], + _ae_ = [0, 0], + _af_ = [2, 0], + _ag_ = [1, 0], + _ad_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'TypeEligibiliteAllocationLogement.t'"], + _ab_ = [1, 0], + _ac_ = [0, 0], + _aa_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ModeOccupationImpaye.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ModeOccupationImpaye.t'"], + _$_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'DepenseLogement.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'DepenseLogement.t'"], + _Y_ = [2, 0], + _Z_ = [1, 0], + ___ = [0, 0], + _X_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'VersementA.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'VersementA.t'"], + _W_ = [1, 0], + _V_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"], + _S_ = [2, 0], + _T_ = [1, 0], + _U_ = [0, 0], + _R_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ZoneDHabitation.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'"], + _P_ = [1, 0], + _Q_ = [2, 0], + _O_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, + "' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'", + 0]]], + "Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"], + _L_ = [1, 0], + _M_ = [2, 0], + _N_ = [0, 0], + _K_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'Parente.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'Parente.t'"], + _J_ = [0, 0], + _I_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'SituationGardeAlternee.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'"], + _H_ = [1, 0], + _G_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'ParentOuAutre.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'"], + _A_ = [1, 0], + _B_ = [0, 0], + _C_ = [3, 0], + _D_ = [4, 0], + _E_ = [2, 0], + _F_ = [5, 0], + _z_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'PrestationRecue.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'PrestationRecue.t'"], + _y_ = [1, 0], + _x_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'LimiteTrancheDecimal.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LimiteTrancheDecimal.t'"], + _w_ = [1, 0], + _v_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'LimiteTranche.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'LimiteTranche.t'"], + _t_ = [0, 0], + _u_ = [1, 0], + _s_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'AmelioreParOccupant.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'"], + _o_ = [1, 0], + _p_ = [3, 0], + _q_ = [0, 0], + _r_ = [2, 0], + _n_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'TypeTravauxLogementR8425.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'"], + _k_ = [1, 0], + _l_ = [0, 0], + _m_ = [2, 0], + _j_ = + [0, + [11, + cst_Unexpected, + [2, + 0, + [11, "' kind for the enumeration 'TypeTravauxLogementD83215.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'"], + _h_ = [1, 0], + _i_ = [0, 0], + _g_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TitulairePret.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TitulairePret.t'"], + _b_ = [3, 0], + _c_ = [1, 0], + _d_ = [2, 0], + _e_ = [0, 0], + _f_ = [4, 0], + _a_ = + [0, + [11, + cst_Unexpected, + [2, 0, [11, "' kind for the enumeration 'TypePret.t'", 0]]], + "Unexpected '%s' kind for the enumeration 'TypePret.t'"], + cst_AidesLogementLib = "AidesLogementLib"; + function type_pret_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_D331_32, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_D331_63_64, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_D331_59_8, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_D331_76_1, payload: arg$2}; + default: var arg$3 = param[1]; return {kind: cst_Autre, payload: arg$3}; + } + } + function type_pret_of_jsoo(type_pret){ + var cons = caml_string_of_jsstring(type_pret.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _f_; + if(! caml_string_notequal(cons, cst_D331_32)) return _e_; + if(! caml_string_notequal(cons, cst_D331_59_8)) return _d_; + if(! caml_string_notequal(cons, cst_D331_63_64)) return _c_; + if(! caml_string_notequal(cons, cst_D331_76_1)) return _b_; + var _l$_ = caml_call2(Stdlib_Printf[4], _a_, cons); + return caml_call1(Stdlib[2], _l$_); + } + function titulaire_pret_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Demandeur, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_VendeurQuandDemandeurACont, payload: arg$0}; + } + function titulaire_pret_of_jsoo(titulaire_pret){ + var cons = caml_string_of_jsstring(titulaire_pret.kind); + if(! caml_string_notequal(cons, cst_Demandeur)) return _i_; + if(! caml_string_notequal(cons, cst_VendeurQuandDemandeurACont)) + return _h_; + var _l__ = caml_call2(Stdlib_Printf[4], _g_, cons); + return caml_call1(Stdlib[2], _l__); + } + function type_travaux_logement_d832_15_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_TravauxPourAcquisitionD832, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_TravauxSurLogementDejaAcqu, payload: arg$0}; + default: + var arg$1 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$1}; + } + } + function type_travaux_logement_d832_15_$0(type_travaux_logement_d832_15){ + var cons = caml_string_of_jsstring(type_travaux_logement_d832_15.kind); + if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _m_; + if(! caml_string_notequal(cons, cst_TravauxPourAcquisitionD832)) + return _l_; + if(! caml_string_notequal(cons, cst_TravauxSurLogementDejaAcqu)) + return _k_; + var _l9_ = caml_call2(Stdlib_Printf[4], _j_, cons); + return caml_call1(Stdlib[2], _l9_); + } + function type_travaux_logement_r842_5_t(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_ObjectifDecenceLogement, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_PrevuDansListeR321_15, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AgrandirOuRendreHabitableD, payload: arg$1}; + default: + var arg$2 = param[1]; return {kind: cst_PasDeTravaux, payload: arg$2}; + } + } + function type_travaux_logement_r842_5_o(type_travaux_logement_r842_5){ + var cons = caml_string_of_jsstring(type_travaux_logement_r842_5.kind); + if(! caml_string_notequal(cons, cst_AgrandirOuRendreHabitableD)) + return _r_; + if(! caml_string_notequal(cons, cst_ObjectifDecenceLogement)) return _q_; + if(! caml_string_notequal(cons, cst_PasDeTravaux)) return _p_; + if(! caml_string_notequal(cons, cst_PrevuDansListeR321_15)) return _o_; + var _l8_ = caml_call2(Stdlib_Printf[4], _n_, cons); + return caml_call1(Stdlib[2], _l8_); + } + function ameliore_par_occupant_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Oui, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Non, payload: arg$0}; + } + function ameliore_par_occupant_of_jsoo(ameliore_par_occupant){ + var cons = caml_string_of_jsstring(ameliore_par_occupant.kind); + if(! caml_string_notequal(cons, cst_Non)) return _u_; + if(! caml_string_notequal(cons, cst_Oui)) return _t_; + var _l7_ = caml_call2(Stdlib_Printf[4], _s_, cons); + return caml_call1(Stdlib[2], _l7_); + } + function limite_tranche_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Revenu, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Infini, payload: arg$0}; + } + function limite_tranche_of_jsoo(limite_tranche){ + var cons = caml_string_of_jsstring(limite_tranche.kind); + if(! caml_string_notequal(cons, cst_Infini)) return _w_; + if(caml_string_notequal(cons, cst_Revenu)){ + var _l5_ = caml_call2(Stdlib_Printf[4], _v_, cons); + return caml_call1(Stdlib[2], _l5_); + } + var _l6_ = caml_call1(Runtime_ocaml_Runtime[42], limite_tranche.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _l6_)]; + } + function limite_tranche_decimal_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Revenu, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Infini, payload: arg$0}; + } + function limite_tranche_decimal_of_jsoo(limite_tranche_decimal){ + var cons = caml_string_of_jsstring(limite_tranche_decimal.kind); + if(! caml_string_notequal(cons, cst_Infini)) return _y_; + if(! caml_string_notequal(cons, cst_Revenu)) + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], limite_tranche_decimal.payload)]; + var _l4_ = caml_call2(Stdlib_Printf[4], _x_, cons); + return caml_call1(Stdlib[2], _l4_); + } + function prestation_recue_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AllocationJeuneEnfant, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationSoutienEnfantHan, payload: arg$3}; + default: + var arg$4 = param[1]; + return {kind: cst_AllocationAdulteHandicape, payload: arg$4}; + } + } + function prestation_recue_of_jsoo(prestation_recue){ + var cons = caml_string_of_jsstring(prestation_recue.kind); + if(! caml_string_notequal(cons, cst_AllocationAdulteHandicape)) + return _F_; + if(! caml_string_notequal(cons, cst_AllocationJeuneEnfant)) return _E_; + if(! caml_string_notequal(cons, cst_AllocationSoutienEnfantHan)) + return _D_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _C_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _B_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _A_; + var _l3_ = caml_call2(Stdlib_Printf[4], _z_, cons); + return caml_call1(Stdlib[2], _l3_); + } + function parent_ou_autre_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_DemandeurOuConjointOuParen, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Autre, payload: arg$0}; + } + function parent_ou_autre_of_jsoo(parent_ou_autre){ + var cons = caml_string_of_jsstring(parent_ou_autre.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _H_; + if(! caml_string_notequal(cons, cst_DemandeurOuConjointOuParen)) + return [0, + caml_call1(Runtime_ocaml_Runtime[42], parent_ou_autre.payload)]; + var _l2_ = caml_call2(Stdlib_Printf[4], _G_, cons); + return caml_call1(Stdlib[2], _l2_); + } + function situation_garde_alternee_to_js(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_PasDeGardeAlternee, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeCoefficientPr, + payload: caml_call1(Runtime_ocaml_Runtime[43], arg$0)}; + } + function situation_garde_alternee_of_js(situation_garde_alternee){ + var cons = caml_string_of_jsstring(situation_garde_alternee.kind); + if(! caml_string_notequal(cons, cst_GardeAlterneeCoefficientPr)) + return [1, + caml_call1 + (Runtime_ocaml_Runtime[42], situation_garde_alternee.payload)]; + if(! caml_string_notequal(cons, cst_PasDeGardeAlternee)) return _J_; + var _l1_ = caml_call2(Stdlib_Printf[4], _I_, cons); + return caml_call1(Stdlib[2], _l1_); + } + function parente_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Ascendant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Descendant, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_CollateralDeuxiemeTroisiem, payload: arg$1}; + } + } + function parente_of_jsoo(parente){ + var cons = caml_string_of_jsstring(parente.kind); + if(! caml_string_notequal(cons, cst_Ascendant)) return _N_; + if(! caml_string_notequal(cons, cst_CollateralDeuxiemeTroisiem)) + return _M_; + if(! caml_string_notequal(cons, cst_Descendant)) return _L_; + var _l0_ = caml_call2(Stdlib_Printf[4], _K_, cons); + return caml_call1(Stdlib[2], _l0_); + } + function date_de_naissance_ou_mois_de_g(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_DateDeNaissance, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AvantPremierJourMoisCivilT, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_ApresPremierJourMoisCivilT, payload: arg$1}; + } + } + function date_de_naissance_ou_mois_de_g$0(date_de_naissance_ou_mois_de_g){ + var cons = caml_string_of_jsstring(date_de_naissance_ou_mois_de_g.kind); + if(! caml_string_notequal(cons, cst_ApresPremierJourMoisCivilT)) + return _Q_; + if(! caml_string_notequal(cons, cst_AvantPremierJourMoisCivilT)) + return _P_; + if(! caml_string_notequal(cons, cst_DateDeNaissance)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + date_de_naissance_ou_mois_de_g.payload)]; + var _lZ_ = caml_call2(Stdlib_Printf[4], _O_, cons); + return caml_call1(Stdlib[2], _lZ_); + } + function zone_d_habitation_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Zone1, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Zone2, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Zone3, payload: arg$1}; + } + } + function zone_d_habitation_of_jsoo(zone_d_habitation){ + var cons = caml_string_of_jsstring(zone_d_habitation.kind); + if(! caml_string_notequal(cons, cst_Zone1)) return _U_; + if(! caml_string_notequal(cons, cst_Zone2)) return _T_; + if(! caml_string_notequal(cons, cst_Zone3)) return _S_; + var _lY_ = caml_call2(Stdlib_Printf[4], _R_, cons); + return caml_call1(Stdlib[2], _lY_); + } + function paiement_logement_distinct_pro(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_OuiAvecLoyerOuCharges, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_Non, payload: arg$0}; + } + function paiement_logement_distinct_pro$0(paiement_logement_distinct_pro){ + var cons = caml_string_of_jsstring(paiement_logement_distinct_pro.kind); + if(! caml_string_notequal(cons, cst_Non)) return _W_; + if(caml_string_notequal(cons, cst_OuiAvecLoyerOuCharges)){ + var _lW_ = caml_call2(Stdlib_Printf[4], _V_, cons); + return caml_call1(Stdlib[2], _lW_); + } var - Law_source_Aides_logement_api_= + _lX_ = + caml_call1 + (Runtime_ocaml_Runtime[42], paiement_logement_distinct_pro.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lX_)]; + } + function versement_a_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Bailleur, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Beneficiaire, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_EtablissementHabilite, payload: arg$1}; + } + } + function versement_a_of_jsoo(versement_a){ + var cons = caml_string_of_jsstring(versement_a.kind); + if(! caml_string_notequal(cons, cst_Bailleur)) return ___; + if(! caml_string_notequal(cons, cst_Beneficiaire)) return _Z_; + if(! caml_string_notequal(cons, cst_EtablissementHabilite)) return _Y_; + var _lV_ = caml_call2(Stdlib_Printf[4], _X_, cons); + return caml_call1(Stdlib[2], _lV_); + } + function depense_logement_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_TotalAnnuelEcheances, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_Mensualite, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg$0)}; + default: + var arg$1 = param[1]; + return {kind: cst_Loyer, + payload: caml_call1(Runtime_ocaml_Runtime[35], arg$1)}; + } + } + function depense_logement_of_jsoo(depense_logement){ + var cons = caml_string_of_jsstring(depense_logement.kind); + if(! caml_string_notequal(cons, cst_Loyer)){ + var + _lU_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [2, caml_call1(Runtime_ocaml_Runtime[33], _lU_)]; + } + if(! caml_string_notequal(cons, cst_Mensualite)){ + var + _lT_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [1, caml_call1(Runtime_ocaml_Runtime[33], _lT_)]; + } + if(caml_string_notequal(cons, cst_TotalAnnuelEcheances)){ + var _lR_ = caml_call2(Stdlib_Printf[4], _$_, cons); + return caml_call1(Stdlib[2], _lR_); + } + var + _lS_ = caml_call1(Runtime_ocaml_Runtime[42], depense_logement.payload); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lS_)]; + } + function mode_occupation_impaye_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_ImpayeLoyer, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_ImpayePret, payload: arg$0}; + } + function mode_occupation_impaye_of_jsoo(mode_occupation_impaye){ + var cons = caml_string_of_jsstring(mode_occupation_impaye.kind); + if(! caml_string_notequal(cons, cst_ImpayeLoyer)) return _ac_; + if(! caml_string_notequal(cons, cst_ImpayePret)) return _ab_; + var _lQ_ = caml_call2(Stdlib_Printf[4], _aa_, cons); + return caml_call1(Stdlib[2], _lQ_); + } + function type_eligibilite_allocation_lo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_PasEligible, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationLogementFamilial, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_AllocationLogementSociale, payload: arg$1}; + } + } + function type_eligibilite_allocation_lo$0(type_eligibilite_allocation_lo){ + var cons = caml_string_of_jsstring(type_eligibilite_allocation_lo.kind); + if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) + return _ag_; + if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) + return _af_; + if(! caml_string_notequal(cons, cst_PasEligible)) return _ae_; + var _lP_ = caml_call2(Stdlib_Printf[4], _ad_, cons); + return caml_call1(Stdlib[2], _lP_); + } + function accord_financement_representan(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Accord, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg)}; + } + var arg$0 = param[1]; + return {kind: cst_PasdAccord, payload: arg$0}; + } + function accord_financement_representan$0(accord_financement_representan){ + var cons = caml_string_of_jsstring(accord_financement_representan.kind); + if(! caml_string_notequal(cons, cst_Accord)) + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + accord_financement_representan.payload)]; + if(! caml_string_notequal(cons, cst_PasdAccord)) return _ai_; + var _lO_ = caml_call2(Stdlib_Printf[4], _ah_, cons); + return caml_call1(Stdlib[2], _lO_); + } + function type_aides_personnelle_logemen(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_AidePersonnaliseeLogement, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationLogementFamilial, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_AllocationLogementSociale, payload: arg$1}; + } + } + function type_aides_personnelle_logemen$0(type_aides_personnelle_logemen){ + var cons = caml_string_of_jsstring(type_aides_personnelle_logemen.kind); + if(! caml_string_notequal(cons, cst_AidePersonnaliseeLogement)) + return _am_; + if(! caml_string_notequal(cons, cst_AllocationLogementFamilial)) + return _al_; + if(! caml_string_notequal(cons, cst_AllocationLogementSociale)) + return _ak_; + var _lN_ = caml_call2(Stdlib_Printf[4], _aj_, cons); + return caml_call1(Stdlib[2], _lN_); + } + function situation_familiale_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Celibataire, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_Maries, + payload: caml_call1(Runtime_jsoo_Runtime[5], arg$0)}; + case 2: + var arg$1 = param[1]; return {kind: cst_Pacses, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_Concubins, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_CelibataireSepareDeFait, payload: arg$3}; + default: + var arg$4 = param[1]; + return {kind: cst_ConcubinageDontSepareDeFai, payload: arg$4}; + } + } + function situation_familiale_of_jsoo(situation_familiale){ + var cons = caml_string_of_jsstring(situation_familiale.kind); + if(! caml_string_notequal(cons, cst_Celibataire)) return _as_; + if(! caml_string_notequal(cons, cst_CelibataireSepareDeFait)) return _ar_; + if(! caml_string_notequal(cons, cst_ConcubinageDontSepareDeFai)) + return _aq_; + if(! caml_string_notequal(cons, cst_Concubins)) return _ap_; + if(! caml_string_notequal(cons, cst_Maries)) + return [1, + caml_call1(Runtime_jsoo_Runtime[4], situation_familiale.payload)]; + if(! caml_string_notequal(cons, cst_Pacses)) return _ao_; + var _lM_ = caml_call2(Stdlib_Printf[4], _an_, cons); + return caml_call1(Stdlib[2], _lM_); + } + function prise_en_charge_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidenceAlterneeAllocatai, payload: arg$0}; + default: + var arg$1 = param[1]; + return {kind: cst_ResidenceAlterneeAllocatio, payload: arg$1}; + } + } + function prise_en_charge_of_jsoo(prise_en_charge){ + var cons = caml_string_of_jsstring(prise_en_charge.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aw_; + if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatai)) + return _av_; + if(! caml_string_notequal(cons, cst_ResidenceAlterneeAllocatio)) + return _au_; + var _lL_ = caml_call2(Stdlib_Printf[4], _at_, cons); + return caml_call1(Stdlib[2], _lL_); + } + function type_logement_foyer_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_LogementPersonnesAgeesOuHa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidenceSociale, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_FoyerJeunesTrvailleursOuMi, payload: arg$1}; + default: var arg$2 = param[1]; return {kind: cst_Autre, payload: arg$2}; + } + } + function type_logement_foyer_of_jsoo(type_logement_foyer){ + var cons = caml_string_of_jsstring(type_logement_foyer.kind); + if(! caml_string_notequal(cons, cst_Autre)) return _aB_; + if(! caml_string_notequal(cons, cst_FoyerJeunesTrvailleursOuMi)) + return _aA_; + if(! caml_string_notequal(cons, cst_LogementPersonnesAgeesOuHa)) + return _az_; + if(! caml_string_notequal(cons, cst_ResidenceSociale)) return _ay_; + var _lK_ = caml_call2(Stdlib_Printf[4], _ax_, cons); + return caml_call1(Stdlib[2], _lK_); + } + function categorie_equivalence_loyer_al(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_EtudiantLogeEnChambreCROUS, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_EtudiantLogeEnChambreCROUS$0, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_PersonnesAgeesSelon3DeD842, payload: arg$1}; + default: + var arg$2 = param[1]; + return {kind: cst_AutresPersonnes, payload: arg$2}; + } + } + function categorie_equivalence_loyer_al$0(categorie_equivalence_loyer_al){ + var cons = caml_string_of_jsstring(categorie_equivalence_loyer_al.kind); + if(! caml_string_notequal(cons, cst_AutresPersonnes)) return _aG_; + if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS)) + return _aF_; + if(! caml_string_notequal(cons, cst_EtudiantLogeEnChambreCROUS$0)) + return _aE_; + if(! caml_string_notequal(cons, cst_PersonnesAgeesSelon3DeD842)) + return _aD_; + var _lJ_ = caml_call2(Stdlib_Printf[4], _aC_, cons); + return caml_call1(Stdlib[2], _lJ_); + } + function situation_familiale_calcul_a_p(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_PersonneSeule, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Couple, payload: arg$0}; + } + function situation_familiale_calcul_a_p$0(situation_familiale_calcul_a_p){ + var cons = caml_string_of_jsstring(situation_familiale_calcul_a_p.kind); + if(! caml_string_notequal(cons, cst_Couple)) return _aJ_; + if(! caml_string_notequal(cons, cst_PersonneSeule)) return _aI_; + var _lI_ = caml_call2(Stdlib_Printf[4], _aH_, cons); + return caml_call1(Stdlib[2], _lI_); + } + function collectivite_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Guadeloupe, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Guyane, payload: arg$0}; + case 2: + var arg$1 = param[1]; return {kind: cst_Martinique, payload: arg$1}; + case 3: + var arg$2 = param[1]; return {kind: cst_LaReunion, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_SaintBarthelemy, payload: arg$3}; + case 5: + var arg$4 = param[1]; return {kind: cst_SaintMartin, payload: arg$4}; + case 6: + var arg$5 = param[1]; return {kind: cst_Metropole, payload: arg$5}; + case 7: + var arg$6 = param[1]; + return {kind: cst_SaintPierreEtMiquelon, payload: arg$6}; + default: + var arg$7 = param[1]; return {kind: cst_Mayotte, payload: arg$7}; + } + } + function collectivite_of_jsoo(collectivite){ + var cons = caml_string_of_jsstring(collectivite.kind); + if(! caml_string_notequal(cons, cst_Guadeloupe)) return _aT_; + if(! caml_string_notequal(cons, cst_Guyane)) return _aS_; + if(! caml_string_notequal(cons, cst_LaReunion)) return _aR_; + if(! caml_string_notequal(cons, cst_Martinique)) return _aQ_; + if(! caml_string_notequal(cons, cst_Mayotte)) return _aP_; + if(! caml_string_notequal(cons, cst_Metropole)) return _aO_; + if(! caml_string_notequal(cons, cst_SaintBarthelemy)) return _aN_; + if(! caml_string_notequal(cons, cst_SaintMartin)) return _aM_; + if(! caml_string_notequal(cons, cst_SaintPierreEtMiquelon)) return _aL_; + var _lH_ = caml_call2(Stdlib_Printf[4], _aK_, cons); + return caml_call1(Stdlib[2], _lH_); + } + function prise_en_charge_enfant_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_GardeAlterneePartageAlloca, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_GardeAlterneeAllocataireUn, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_EffectiveEtPermanente, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_ServicesSociauxAllocationV, payload: arg$2}; + default: + var arg$3 = param[1]; + return {kind: cst_ServicesSociauxAllocationV$0, payload: arg$3}; + } + } + function prise_en_charge_enfant_of_jsoo(prise_en_charge_enfant){ + var cons = caml_string_of_jsstring(prise_en_charge_enfant.kind); + if(! caml_string_notequal(cons, cst_EffectiveEtPermanente)) return _aZ_; + if(! caml_string_notequal(cons, cst_GardeAlterneeAllocataireUn)) + return _aY_; + if(! caml_string_notequal(cons, cst_GardeAlterneePartageAlloca)) + return _aX_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV)) + return _aW_; + if(! caml_string_notequal(cons, cst_ServicesSociauxAllocationV$0)) + return _aV_; + var _lG_ = caml_call2(Stdlib_Printf[4], _aU_, cons); + return caml_call1(Stdlib[2], _lG_); + } + function situation_obligation_scolaire_(param){ + switch(param[0]){ + case 0: + var arg = param[1]; return {kind: cst_Avant, payload: arg}; + case 1: + var arg$0 = param[1]; return {kind: cst_Pendant, payload: arg$0}; + default: var arg$1 = param[1]; return {kind: cst_Apres, payload: arg$1}; + } + } + function situation_obligation_scolaire_$0(situation_obligation_scolaire){ + var cons = caml_string_of_jsstring(situation_obligation_scolaire.kind); + if(! caml_string_notequal(cons, cst_Apres)) return _a3_; + if(! caml_string_notequal(cons, cst_Avant)) return _a2_; + if(! caml_string_notequal(cons, cst_Pendant)) return _a1_; + var _lF_ = caml_call2(Stdlib_Printf[4], _a0_, cons); + return caml_call1(Stdlib[2], _lF_); + } + function element_prestations_familiales(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_PrestationAccueilJeuneEnfa, payload: arg}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AllocationsFamiliales, payload: arg$0}; + case 2: + var arg$1 = param[1]; + return {kind: cst_ComplementFamilial, payload: arg$1}; + case 3: + var arg$2 = param[1]; + return {kind: cst_AllocationLogement, payload: arg$2}; + case 4: + var arg$3 = param[1]; + return {kind: cst_AllocationEducationEnfantH, payload: arg$3}; + case 5: + var arg$4 = param[1]; + return {kind: cst_AllocationSoutienFamilial, payload: arg$4}; + case 6: + var arg$5 = param[1]; + return {kind: cst_AllocationRentreeScolaire, payload: arg$5}; + default: + var arg$6 = param[1]; + return {kind: cst_AllocationJournalierePrese, payload: arg$6}; + } + } + function element_prestations_familiales$0(element_prestations_familiales){ + var cons = caml_string_of_jsstring(element_prestations_familiales.kind); + if(! caml_string_notequal(cons, cst_AllocationEducationEnfantH)) + return _ba_; + if(! caml_string_notequal(cons, cst_AllocationJournalierePrese)) + return _a$_; + if(! caml_string_notequal(cons, cst_AllocationLogement)) return _a__; + if(! caml_string_notequal(cons, cst_AllocationRentreeScolaire)) + return _a9_; + if(! caml_string_notequal(cons, cst_AllocationSoutienFamilial)) + return _a8_; + if(! caml_string_notequal(cons, cst_AllocationsFamiliales)) return _a7_; + if(! caml_string_notequal(cons, cst_ComplementFamilial)) return _a6_; + if(! caml_string_notequal(cons, cst_PrestationAccueilJeuneEnfa)) + return _a5_; + var _lE_ = caml_call2(Stdlib_Printf[4], _a4_, cons); + return caml_call1(Stdlib[2], _lE_); + } + function convention_bailleur_social_to_(convention_bailleur_social){ + var + _lD_ = + caml_call1(Runtime_ocaml_Runtime[35], convention_bailleur_social[2]); + return {conventionneLivreIIITitreVChapIII: + ! + ! + convention_bailleur_social[1], + reductionLoyerSolidaritePercue: _lD_}; + } + function convention_bailleur_social_of_(convention_bailleur_social){ + var + _lB_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + convention_bailleur_social.reductionLoyerSolidaritePercue), + _lC_ = caml_call1(Runtime_ocaml_Runtime[33], _lB_); + return [0, + convention_bailleur_social.conventionneLivreIIITitreVChapIII | 0, + _lC_]; + } + function convention_a_n_h_a_to_jsoo(convention_a_n_h_a){ + return {conventionneLivreIIITitreIIChapISec3: ! ! convention_a_n_h_a[1]}; + } + function convention_a_n_h_a_of_jsoo(convention_a_n_h_a){ + return [0, convention_a_n_h_a.conventionneLivreIIITitreIIChapISec3 | 0]; + } + function personne_sous_location_to_jsoo(personne_sous_location){ + var _lA_ = ! ! personne_sous_location[2]; + return {dateNaissancePersonneSousLocation: + caml_call1(Runtime_jsoo_Runtime[5], personne_sous_location[1]), + conformeArticleL4421: _lA_}; + } + function personne_sous_location_of_jsoo(personne_sous_location){ + var _lz_ = personne_sous_location.conformeArticleL4421 | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + personne_sous_location.dateNaissancePersonneSousLocation), + _lz_]; + } + function patrimoine_to_jsoo(patrimoine){ + var _ly_ = caml_call1(Runtime_ocaml_Runtime[35], patrimoine[2]); + return {produisantRevenuPeriodeR82233R8224: + caml_call1(Runtime_ocaml_Runtime[35], patrimoine[1]), + neProduisantPasRevenuPeriodeR82233R8224: _ly_}; + } + function patrimoine_of_jsoo(patrimoine){ + var + _lv_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.neProduisantPasRevenuPeriodeR82233R8224), + _lw_ = caml_call1(Runtime_ocaml_Runtime[33], _lv_), + _lx_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + patrimoine.produisantRevenuPeriodeR82233R8224); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lx_), _lw_]; + } + function conditions_etrangers_to_jsoo(conditions_etrangers){ + return {satisfaitConditionsL5122CodeSecuriteSociale: + ! + ! + conditions_etrangers[1], + satisfaitArt4Ordonnance2002Mayotte: ! ! conditions_etrangers[2]}; + } + function conditions_etrangers_of_jsoo(conditions_etrangers){ + return [0, + conditions_etrangers.satisfaitConditionsL5122CodeSecuriteSociale + | 0, + conditions_etrangers.satisfaitArt4Ordonnance2002Mayotte | 0]; + } + function personne_vivant_habituellement(personne_vivant_habituellement){ + var + _lu_ = + caml_call1 + (Runtime_ocaml_Runtime[35], personne_vivant_habituellement[2]); + return {dureeResidenceDurantPeriodeR82231SuperieureA6Mois: + ! + ! + personne_vivant_habituellement[1], + ressources: _lu_}; + } + function personne_vivant_habituellement$0(personne_vivant_habituellement){ + var + _ls_ = + caml_call1 + (Runtime_ocaml_Runtime[42], personne_vivant_habituellement.ressources), + _lt_ = caml_call1(Runtime_ocaml_Runtime[33], _ls_); + return [0, + personne_vivant_habituellement.dureeResidenceDurantPeriodeR82231SuperieureA6Mois + | 0, + _lt_]; + } + function eligibilite_aide_personnalisee(eligibilite_aide_personnalisee){ + var _ln_ = eligibilite_aide_personnalisee[4]; + function _lo_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + _lp_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _lo_, _ln_)), + _lq_ = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_aide_personnalisee[3]), + _lr_ = ! ! eligibilite_aide_personnalisee[2]; + return {dateCourante: + caml_call1 + (Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[1]), + eligibilite: _lr_, + nombrePersonnesAChargePrisesEnCompte: _lq_, + coefficentsEnfantsGardeAlterneePrisEnCompte: _lp_}; + } + function eligibilite_aide_personnalisee$0(eligibilite_aide_personnalisee){ + var + _li_ = + caml_js_to_array + (eligibilite_aide_personnalisee.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _lj_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _lk_ = caml_call1(caml_call1(Stdlib_Array[15], _lj_), _li_), + _ll_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aide_personnalisee.nombrePersonnesAChargePrisesEnCompte), + _lm_ = eligibilite_aide_personnalisee.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCourante), + _lm_, + _ll_, + _lk_]; + } + function eligibilite_prime_de_demenagem(eligibilite_prime_de_demenagem){ + return {montantPrimeDemenagement: + caml_call1 + (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[1])}; + } + function eligibilite_prime_de_demenagem$0(eligibilite_prime_de_demenagem){ + var + _lh_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.montantPrimeDemenagement); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lh_)]; + } + function ressources_aides_personnelle_l(ressources_aides_personnelle_l){ + return {ressourcesPrisesEnCompte: + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1])}; + } + function ressources_aides_personnelle_l$0(ressources_aides_personnelle_l){ + var + _lg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesPrisesEnCompte); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _lg_)]; + } + function contributions_sociales_aides_p(contributions_sociales_aides_p){ + function t276(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _ld_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _le_ = caml_call1(Runtime_ocaml_Runtime[33], _ld_), + _lf_ = caml_call1(contributions_sociales_aides_p[1], _le_); + return caml_call1(Runtime_ocaml_Runtime[35], _lf_); + }); + } + return {montant: caml_js_wrap_meth_callback(t276)}; + } + function contributions_sociales_aides_p$0(contributions_sociales_aides_p){return [0, caml_call1(Stdlib[2], cst_The_function_montant_trans)]; + } + function calcul_aide_personnalisee_loge(calcul_aide_personnalisee_loge){ + function t283(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _la_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _lb_ = caml_call1(Runtime_ocaml_Runtime[33], _la_), + _lc_ = caml_call1(calcul_aide_personnalisee_loge[7], _lb_); + return caml_call1(Runtime_ocaml_Runtime[35], _lc_); + }); + } + var + t282 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), + t281 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), + t280 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[4]), + t279 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + t278 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t277 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {montantForfaitaireChargesD82316: t277, + plafondLoyerD823162: t278, + participationMinimale: t279, + tauxCompositionFamiliale: t280, + participationPersonnelle: t281, + aideFinaleFormule: t282, + traitementAideFinale: caml_js_wrap_meth_callback(t283)}; + } + function calcul_aide_personnalisee_loge$0(calcul_aide_personnalisee_loge){ + var + _k1_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai), + _k2_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _k3_ = caml_call1(Runtime_ocaml_Runtime[33], _k2_), + _k4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationPersonnelle), + _k5_ = caml_call1(Runtime_ocaml_Runtime[33], _k4_), + _k6_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.tauxCompositionFamiliale), + _k7_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.participationMinimale), + _k8_ = caml_call1(Runtime_ocaml_Runtime[33], _k7_), + _k9_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondLoyerD823162), + _k__ = caml_call1(Runtime_ocaml_Runtime[33], _k9_), + _k$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.montantForfaitaireChargesD82316); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _k$_), + _k__, + _k8_, + _k6_, + _k5_, + _k3_, + _k1_]; + } + function calcul_equivalence_loyer_minim(calcul_equivalence_loyer_minim){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[1])}; + } + function calcul_equivalence_loyer_minim$0(calcul_equivalence_loyer_minim){ + var + _k0_ = + caml_call1 + (Runtime_ocaml_Runtime[42], calcul_equivalence_loyer_minim.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _k0_)]; + } + function calcul_nombre_part_logement_fo(calcul_nombre_part_logement_fo){ + return {nNombrePartsD83225: + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_nombre_part_logement_fo[1])}; + } + function calcul_nombre_part_logement_fo$0(calcul_nombre_part_logement_fo){ + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_part_logement_fo.nNombrePartsD83225)]; + } + function calcul_aide_personnalisee_loge$1(calcul_aide_personnalisee_loge){ + function t302(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kX_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kY_ = caml_call1(Runtime_ocaml_Runtime[33], _kX_), + _kZ_ = caml_call1(calcul_aide_personnalisee_loge[9], _kY_); + return caml_call1(Runtime_ocaml_Runtime[35], _kZ_); + }); + } + var + t301 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), + t300 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[7]), + t299 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[6]), + t298 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[5]), + t297 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), + t296 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), + t295 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t294 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {coefficientMultiplicateurD83225: t294, + coefficientRD83225: t295, + nNombrePartsD83225: t296, + equivalenceLoyerEligible: t297, + plafondEquivalenceLoyerEligible: t298, + equivalenceLoyerMinimale: t299, + coefficientPriseEnChargeD83225: t300, + aideFinaleFormule: t301, + traitementAideFinale: caml_js_wrap_meth_callback(t302)}; + } + function calcul_aide_personnalisee_loge$2(calcul_aide_personnalisee_loge){ + var + _kJ_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$0), + _kK_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _kL_ = caml_call1(Runtime_ocaml_Runtime[33], _kK_), + _kM_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83225), + _kN_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerMinimale), + _kO_ = caml_call1(Runtime_ocaml_Runtime[33], _kN_), + _kP_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.plafondEquivalenceLoyerEligible), + _kQ_ = caml_call1(Runtime_ocaml_Runtime[33], _kP_), + _kR_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.equivalenceLoyerEligible), + _kS_ = caml_call1(Runtime_ocaml_Runtime[33], _kR_), + _kT_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.nNombrePartsD83225), + _kU_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientRD83225), + _kV_ = caml_call1(Runtime_ocaml_Runtime[33], _kU_), + _kW_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientMultiplicateurD83225); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _kW_), + _kV_, + _kT_, + _kS_, + _kQ_, + _kO_, + _kM_, + _kL_, + _kJ_]; + } + function calcul_nombre_parts_accession_(calcul_nombre_parts_accession_){ + return {nNombrePartsD83211: + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_nombre_parts_accession_[1])}; + } + function calcul_nombre_parts_accession_$0(calcul_nombre_parts_accession_){ + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_nombre_parts_accession_.nNombrePartsD83211)]; + } + function calcul_aide_personnalisee_loge$3(calcul_aide_personnalisee_loge){ + function t317(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kG_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kH_ = caml_call1(Runtime_ocaml_Runtime[33], _kG_), + _kI_ = caml_call1(calcul_aide_personnalisee_loge[5], _kH_); + return caml_call1(Runtime_ocaml_Runtime[35], _kI_); + }); + } + var + t316 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[4]), + t315 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_aide_personnalisee_loge[3]), + t314 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]), + t313 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {mensualiteEligible: t313, + mensualiteMinimale: t314, + coefficientPriseEnChargeD83210: t315, + aideFinaleFormule: t316, + traitementAideFinale: caml_js_wrap_meth_callback(t317)}; + } + function calcul_aide_personnalisee_loge$4(calcul_aide_personnalisee_loge){ + var + _kz_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$1), + _kA_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule), + _kB_ = caml_call1(Runtime_ocaml_Runtime[33], _kA_), + _kC_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.coefficientPriseEnChargeD83210), + _kD_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteMinimale), + _kE_ = caml_call1(Runtime_ocaml_Runtime[33], _kD_), + _kF_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualiteEligible); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _kF_), + _kE_, + _kC_, + _kB_, + _kz_]; + } + function traitement_formule_aide_finale(traitement_formule_aide_finale){ + function t323(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kw_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kx_ = caml_call1(Runtime_ocaml_Runtime[33], _kw_), + _ky_ = caml_call1(traitement_formule_aide_finale[2], _kx_); + return caml_call1(Runtime_ocaml_Runtime[35], _ky_); + }); + } + var + t322 = + caml_call1 + (Runtime_ocaml_Runtime[35], traitement_formule_aide_finale[1]); + return {aideFinaleFormule: t322, + traitementAideFinale: caml_js_wrap_meth_callback(t323)}; + } + function traitement_formule_aide_finale$0(traitement_formule_aide_finale){ + var + _ku_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$2), + _kv_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + traitement_formule_aide_finale.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kv_), _ku_]; + } + function calcul_aide_personnalisee_loge$5(calcul_aide_personnalisee_loge){ + function t326(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kr_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _ks_ = caml_call1(Runtime_ocaml_Runtime[33], _kr_), + _kt_ = caml_call1(calcul_aide_personnalisee_loge[2], _ks_); + return caml_call1(Runtime_ocaml_Runtime[35], _kt_); + }); + } + var + t325 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]); + return {aideFinaleFormule: t325, + traitementAideFinale: caml_js_wrap_meth_callback(t326)}; + } + function calcul_aide_personnalisee_loge$6(calcul_aide_personnalisee_loge){ + var + _kp_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$3), + _kq_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kq_), _kp_]; + } + function infos_changement_logement_d842(infos_changement_logement_d842){ + var + _ko_ = + caml_call1 + (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[2]); + return {ancienLoyerPrincipal: + caml_call1 + (Runtime_ocaml_Runtime[35], infos_changement_logement_d842[1]), + ancienneAllocationLogement: _ko_}; + } + function infos_changement_logement_d842$0(infos_changement_logement_d842){ + var + _kl_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienneAllocationLogement), + _km_ = caml_call1(Runtime_ocaml_Runtime[33], _kl_), + _kn_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + infos_changement_logement_d842.ancienLoyerPrincipal); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kn_), _km_]; + } + function calcul_allocation_logement_loc(calcul_allocation_logement_loc){ + function t333(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _ki_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _kj_ = caml_call1(Runtime_ocaml_Runtime[33], _ki_), + _kk_ = caml_call1(calcul_allocation_logement_loc[2], _kj_); + return caml_call1(Runtime_ocaml_Runtime[35], _kk_); + }); + } + var + t332 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]); + return {aideFinaleFormule: t332, + traitementAideFinale: caml_js_wrap_meth_callback(t333)}; + } + function calcul_allocation_logement_loc$0(calcul_allocation_logement_loc){ + var + _kg_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$4), + _kh_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _kh_), _kg_]; + } + function calcul_allocation_logement_acc(calcul_allocation_logement_acc){ + function t339(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _kd_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _ke_ = caml_call1(Runtime_ocaml_Runtime[33], _kd_), + _kf_ = caml_call1(calcul_allocation_logement_acc[5], _ke_); + return caml_call1(Runtime_ocaml_Runtime[35], _kf_); + }); + } + var + t338 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[4]), + t337 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_allocation_logement_acc[3]), + t336 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[2]), + t335 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]); + return {mensualiteEligible: t335, + mensualiteMinimale: t336, + coefficientPriseEnCharge: t337, + aideFinaleFormule: t338, + traitementAideFinale: caml_js_wrap_meth_callback(t339)}; + } + function calcul_allocation_logement_acc$0(calcul_allocation_logement_acc){ + var + _j8_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$5), + _j9_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.aideFinaleFormule), + _j__ = caml_call1(Runtime_ocaml_Runtime[33], _j9_), + _j$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.coefficientPriseEnCharge), + _ka_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualiteMinimale), + _kb_ = caml_call1(Runtime_ocaml_Runtime[33], _ka_), + _kc_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualiteEligible); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _kc_), + _kb_, + _j$_, + _j__, + _j8_]; + } + function calcul_allocation_logement_foy(calcul_allocation_logement_foy){ + function t349(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _j5_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _j6_ = caml_call1(Runtime_ocaml_Runtime[33], _j5_), + _j7_ = caml_call1(calcul_allocation_logement_foy[6], _j6_); + return caml_call1(Runtime_ocaml_Runtime[35], _j7_); + }); + } + var + t348 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), + t347 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), + t346 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[3]), + t345 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[2]), + t344 = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_allocation_logement_foy[1]); + return {coefficientPriseEnCharge: t344, + equivalenceLoyer: t345, + montantForfaitaireCharges: t346, + loyerMinimal: t347, + aideFinaleFormule: t348, + traitementAideFinale: caml_js_wrap_meth_callback(t349)}; + } + function calcul_allocation_logement_foy$0(calcul_allocation_logement_foy){ + var + _jW_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$6), + _jX_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.aideFinaleFormule), + _jY_ = caml_call1(Runtime_ocaml_Runtime[33], _jX_), + _jZ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.loyerMinimal), + _j0_ = caml_call1(Runtime_ocaml_Runtime[33], _jZ_), + _j1_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.montantForfaitaireCharges), + _j2_ = caml_call1(Runtime_ocaml_Runtime[33], _j1_), + _j3_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.equivalenceLoyer), + _j4_ = caml_call1(Runtime_ocaml_Runtime[33], _j3_); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.coefficientPriseEnCharge), + _j4_, + _j2_, + _j0_, + _jY_, + _jW_]; + } + function calcul_allocation_logement_to_(calcul_allocation_logement){ + function t356(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _jT_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _jU_ = caml_call1(Runtime_ocaml_Runtime[33], _jT_), + _jV_ = caml_call1(calcul_allocation_logement[2], _jU_); + return caml_call1(Runtime_ocaml_Runtime[35], _jV_); + }); + } + var + t355 = + caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement[1]); + return {aideFinaleFormule: t355, + traitementAideFinale: caml_js_wrap_meth_callback(t356)}; + } + function calcul_allocation_logement_of_(calcul_allocation_logement){ + var + _jR_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$7), + _jS_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement.aideFinaleFormule); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jS_), _jR_]; + } + function ouverture_droits_retraite_to_j(ouverture_droits_retraite){ + return {ageOuvertureDroit: + caml_call1(Runtime_jsoo_Runtime[3], ouverture_droits_retraite[1])}; + } + function ouverture_droits_retraite_of_j(ouverture_droits_retraite){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + ouverture_droits_retraite.ageOuvertureDroit)]; + } + function impaye_depense_logement_to_jso(impaye_depense_logement){ + return {montantImpaye: + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement[1])}; + } + function impaye_depense_logement_of_jso(impaye_depense_logement){ + var + _jQ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement.montantImpaye); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jQ_)]; + } + function calculette_aides_au_logement_t(calculette_aides_au_logement){ + var _jL_ = calculette_aides_au_logement[4]; + function _jM_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var t365 = caml_js_from_array(caml_call2(Stdlib_Array[15], _jM_, _jL_)); + function t364(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _jN_ = caml_call1(Runtime_ocaml_Runtime[42], function_input0), + _jO_ = caml_call1(Runtime_ocaml_Runtime[33], _jN_), + _jP_ = caml_call1(calculette_aides_au_logement[3], _jO_); + return caml_call1(Runtime_ocaml_Runtime[35], _jP_); + }); + } + var + t363 = + caml_call1(Runtime_ocaml_Runtime[35], calculette_aides_au_logement[2]), + t362 = ! ! calculette_aides_au_logement[1]; + return {eligibilite: t362, + aideFinaleFormule: t363, + traitementAideFinale: caml_js_wrap_meth_callback(t364), + coefficentsEnfantsGardeAlterneePrisEnCompte: t365}; + } + function calculette_aides_au_logement_o(calculette_aides_au_logement){ + var + _jF_ = + caml_js_to_array + (calculette_aides_au_logement.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _jG_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _jH_ = caml_call1(caml_call1(Stdlib_Array[15], _jG_), _jF_), + _jI_ = caml_call1(Stdlib[2], cst_The_function_traitement_ai$8), + _jJ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement.aideFinaleFormule), + _jK_ = caml_call1(Runtime_ocaml_Runtime[33], _jJ_); + return [0, calculette_aides_au_logement.eligibilite | 0, _jK_, _jI_, _jH_]; + } + function calculette_aides_au_logement_g(calculette_aides_au_logement_g){ + var + _jE_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[2]); + return {eligibilite: ! ! calculette_aides_au_logement_g[1], + aideFinale: _jE_}; + } + function calculette_aides_au_logement_g$0(calculette_aides_au_logement_g){ + var + _jC_ = + caml_call1 + (Runtime_ocaml_Runtime[42], calculette_aides_au_logement_g.aideFinale), + _jD_ = caml_call1(Runtime_ocaml_Runtime[33], _jC_); + return [0, calculette_aides_au_logement_g.eligibilite | 0, _jD_]; + } + function base_mensuelle_allocations_fam(base_mensuelle_allocations_fam){ + return {montant: + caml_call1 + (Runtime_ocaml_Runtime[35], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$0(base_mensuelle_allocations_fam){ + var + _jB_ = + caml_call1 + (Runtime_ocaml_Runtime[42], base_mensuelle_allocations_fam.montant); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jB_)]; + } + function verification_age_inferieur_ou_(verification_age_inferieur_ou_){return {estInferieurOuEgal: ! ! verification_age_inferieur_ou_[1]}; + } + function verification_age_inferieur_ou_$0(verification_age_inferieur_ou_){return [0, verification_age_inferieur_ou_.estInferieurOuEgal | 0]; + } + function verification_age_superieur_a_t(verification_age_superieur_a){return {estSuperieur: ! ! verification_age_superieur_a[1]}; + } + function verification_age_superieur_a_o(verification_age_superieur_a){return [0, verification_age_superieur_a.estSuperieur | 0]; + } + function smic_to_jsoo(smic){ + return {brutHoraire: caml_call1(Runtime_ocaml_Runtime[35], smic[1])}; + } + function smic_of_jsoo(smic){ + var _jA_ = caml_call1(Runtime_ocaml_Runtime[42], smic.brutHoraire); + return [0, caml_call1(Runtime_ocaml_Runtime[33], _jA_)]; + } + function neuf_ou_ancien_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Neuf, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Ancien, payload: ameliore_par_occupant_to_jsoo(arg$0)}; + } + function neuf_ou_ancien_of_jsoo(neuf_ou_ancien){ + var cons = caml_string_of_jsstring(neuf_ou_ancien.kind); + if(! caml_string_notequal(cons, cst_Ancien)) + return [1, ameliore_par_occupant_of_jsoo(neuf_ou_ancien.payload)]; + if(! caml_string_notequal(cons, cst_Neuf)) return _bc_; + var _jz_ = caml_call2(Stdlib_Printf[4], _bb_, cons); + return caml_call1(Stdlib[2], _jz_); + } + function tranche_revenu_to_jsoo(tranche_revenu){ + var + _jx_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu[3]), + _jy_ = caml_call1(Runtime_ocaml_Runtime[35], tranche_revenu[2]); + return {haut: limite_tranche_to_jsoo(tranche_revenu[1]), + bas: _jy_, + taux: _jx_}; + } + function tranche_revenu_of_jsoo(tranche_revenu){ + var + _ju_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.taux), + _jv_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu.bas), + _jw_ = caml_call1(Runtime_ocaml_Runtime[33], _jv_); + return [0, limite_tranche_of_jsoo(tranche_revenu.haut), _jw_, _ju_]; + } + function tranche_revenu_decimal_to_jsoo(tranche_revenu_decimal){ + var + _js_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[3]), + _jt_ = caml_call1(Runtime_ocaml_Runtime[43], tranche_revenu_decimal[2]); + return {haut: limite_tranche_decimal_to_jsoo(tranche_revenu_decimal[1]), + bas: _jt_, + taux: _js_}; + } + function tranche_revenu_decimal_of_jsoo(tranche_revenu_decimal){ + var + _jq_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.taux), + _jr_ = caml_call1(Runtime_ocaml_Runtime[42], tranche_revenu_decimal.bas); + return [0, + limite_tranche_decimal_of_jsoo(tranche_revenu_decimal.haut), + _jr_, + _jq_]; + } + function autre_personne_a_charge_to_jso(autre_personne_a_charge){ + var + _jk_ = ! ! autre_personne_a_charge[7], + _jl_ = ! ! autre_personne_a_charge[6], + _jm_ = ! ! autre_personne_a_charge[5], + _jn_ = parente_to_jsoo(autre_personne_a_charge[4]), + _jo_ = ! ! autre_personne_a_charge[3], + _jp_ = caml_call1(Runtime_ocaml_Runtime[35], autre_personne_a_charge[2]); + return {dateNaissance: + caml_call1(Runtime_jsoo_Runtime[5], autre_personne_a_charge[1]), + ressources: _jp_, + ascendantDescendantCollateralDeuxiemeTroisiemeDegre: _jo_, + parente: _jn_, + incapacite80PourcentOuRestrictionEmploi: _jm_, + beneficiaireL16119L3518L6433Secu: _jl_, + titulaireAllocationPersonneAgee: _jk_}; + } + function autre_personne_a_charge_of_jso(autre_personne_a_charge){ + var + _jd_ = autre_personne_a_charge.titulaireAllocationPersonneAgee | 0, + _je_ = autre_personne_a_charge.beneficiaireL16119L3518L6433Secu | 0, + _jf_ = + autre_personne_a_charge.incapacite80PourcentOuRestrictionEmploi | 0, + _jg_ = parente_of_jsoo(autre_personne_a_charge.parente), + _jh_ = + autre_personne_a_charge.ascendantDescendantCollateralDeuxiemeTroisiemeDegre + | 0, + _ji_ = + caml_call1 + (Runtime_ocaml_Runtime[42], autre_personne_a_charge.ressources), + _jj_ = caml_call1(Runtime_ocaml_Runtime[33], _ji_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], autre_personne_a_charge.dateNaissance), + _jj_, + _jh_, + _jg_, + _jf_, + _je_, + _jd_]; + } + function date_naissance_troisieme_ou_de(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_MoinsDeTroisEnfants, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_PlusDeTroisEnfants, + payload: date_de_naissance_ou_mois_de_g(arg$0)}; + } + function date_naissance_troisieme_ou_de$0(date_naissance_troisieme_ou_de){ + var cons = caml_string_of_jsstring(date_naissance_troisieme_ou_de.kind); + if(! caml_string_notequal(cons, cst_MoinsDeTroisEnfants)) return _be_; + if(! caml_string_notequal(cons, cst_PlusDeTroisEnfants)) + return [1, + date_de_naissance_ou_mois_de_g$0 + (date_naissance_troisieme_ou_de.payload)]; + var _jc_ = caml_call2(Stdlib_Printf[4], _bd_, cons); + return caml_call1(Stdlib[2], _jc_); + } + function eligibilite_allocation_logemen(eligibilite_allocation_logemen){ + var _i__ = eligibilite_allocation_logemen[3]; + function _i$_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + _ja_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _i$_, _i__)), + _jb_ = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_allocation_logemen[2]); + return {eligibilite: + type_eligibilite_allocation_lo(eligibilite_allocation_logemen[1]), + nombrePersonnesAChargePrisesEnCompte: _jb_, + coefficentsEnfantsGardeAlterneePrisEnCompte: _ja_}; + } + function eligibilite_allocation_logemen$0(eligibilite_allocation_logemen){ + var + _i6_ = + caml_js_to_array + (eligibilite_allocation_logemen.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _i7_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _i8_ = caml_call1(caml_call1(Stdlib_Array[15], _i7_), _i6_), + _i9_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_allocation_logemen.nombrePersonnesAChargePrisesEnCompte); + return [0, + type_eligibilite_allocation_lo$0 + (eligibilite_allocation_logemen.eligibilite), + _i9_, + _i8_]; + } + function pret_to_jsoo(pret){ + var + _i3_ = accord_financement_representan(pret[4]), + _i4_ = titulaire_pret_to_jsoo(pret[3]), + _i5_ = caml_call1(Runtime_jsoo_Runtime[5], pret[2]); + return {typePret: type_pret_to_jsoo(pret[1]), + dateSignature: _i5_, + titulairePret: _i4_, + accordFinancementRepresentantEtatOutreMer: _i3_}; + } + function pret_of_jsoo(pret){ + var + _i0_ = + accord_financement_representan$0 + (pret.accordFinancementRepresentantEtatOutreMer), + _i1_ = titulaire_pret_of_jsoo(pret.titulairePret), + _i2_ = caml_call1(Runtime_jsoo_Runtime[4], pret.dateSignature); + return [0, type_pret_of_jsoo(pret.typePret), _i2_, _i1_, _i0_]; + } + function logement_foyer_to_jsoo(logement_foyer){ + var + _iR_ = ! ! logement_foyer[10], + _iS_ = ! ! logement_foyer[9], + _iT_ = categorie_equivalence_loyer_al(logement_foyer[8]), + _iU_ = caml_call1(Runtime_ocaml_Runtime[35], logement_foyer[7]), + _iV_ = ! ! logement_foyer[6], + _iW_ = caml_call1(Runtime_jsoo_Runtime[5], logement_foyer[5]), + _iX_ = ! ! logement_foyer[4], + _iY_ = ! ! logement_foyer[3], + _iZ_ = ! ! logement_foyer[2]; + return {typeUser: type_logement_foyer_to_jsoo(logement_foyer[1]), + remplitConditionsR83221: _iZ_, + conventionneLivreIIITitreVChapIII: _iY_, + conventionneSelonReglesDrom: _iX_, + dateConventionnement: _iW_, + construitApplicationLoi195712III: _iV_, + redevance: _iU_, + categorieEquivalenceLoyerD84216: _iT_, + beneficiaireAideAdulteOuEnfantHandicapes: _iS_, + logementMeubleD8422: _iR_}; + } + function logement_foyer_of_jsoo(logement_foyer){ + var + _iH_ = logement_foyer.logementMeubleD8422 | 0, + _iI_ = logement_foyer.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _iJ_ = + categorie_equivalence_loyer_al$0 + (logement_foyer.categorieEquivalenceLoyerD84216), + _iK_ = caml_call1(Runtime_ocaml_Runtime[42], logement_foyer.redevance), + _iL_ = caml_call1(Runtime_ocaml_Runtime[33], _iK_), + _iM_ = logement_foyer.construitApplicationLoi195712III | 0, + _iN_ = + caml_call1 + (Runtime_jsoo_Runtime[4], logement_foyer.dateConventionnement), + _iO_ = logement_foyer.conventionneSelonReglesDrom | 0, + _iP_ = logement_foyer.conventionneLivreIIITitreVChapIII | 0, + _iQ_ = logement_foyer.remplitConditionsR83221 | 0; + return [0, + type_logement_foyer_of_jsoo(logement_foyer.typeUser), + _iQ_, + _iP_, + _iO_, + _iN_, + _iM_, + _iL_, + _iJ_, + _iI_, + _iH_]; + } + function enfant_prestations_familiales_(enfant_prestations_familiales){ + var + _iB_ = ! ! enfant_prestations_familiales[7], + _iC_ = ! ! enfant_prestations_familiales[6], + _iD_ = prise_en_charge_enfant_to_jsoo(enfant_prestations_familiales[5]), + _iE_ = + caml_call1(Runtime_jsoo_Runtime[5], enfant_prestations_familiales[4]), + _iF_ = + caml_call1(Runtime_ocaml_Runtime[35], enfant_prestations_familiales[3]), + _iG_ = situation_obligation_scolaire_(enfant_prestations_familiales[2]); + return {identifiant: + caml_call1 + (Runtime_ocaml_Runtime[48], enfant_prestations_familiales[1]), + obligationScolaire: _iG_, + remunerationMensuelle: _iF_, + dateDeNaissance: _iE_, + priseEnCharge: _iD_, + aDejaOuvertDroitAuxAllocationsFamiliales: _iC_, + beneficieTitrePersonnelAidePersonnelleLogement: _iB_}; + } + function enfant_prestations_familiales_$0(enfant_prestations_familiales){ + var + _iu_ = + enfant_prestations_familiales.beneficieTitrePersonnelAidePersonnelleLogement + | 0, + _iv_ = + enfant_prestations_familiales.aDejaOuvertDroitAuxAllocationsFamiliales + | 0, + _iw_ = + prise_en_charge_enfant_of_jsoo + (enfant_prestations_familiales.priseEnCharge), + _ix_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + enfant_prestations_familiales.dateDeNaissance), + _iy_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + enfant_prestations_familiales.remunerationMensuelle), + _iz_ = caml_call1(Runtime_ocaml_Runtime[33], _iy_), + _iA_ = + situation_obligation_scolaire_$0 + (enfant_prestations_familiales.obligationScolaire); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + enfant_prestations_familiales.identifiant), + _iA_, + _iz_, + _ix_, + _iw_, + _iv_, + _iu_]; + } + function type_bailleur_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_BailleurSocial, + payload: convention_bailleur_social_to_(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_BailleurPriveAvecConventio, + payload: convention_a_n_h_a_to_jsoo(arg$0)}; + default: + var arg$1 = param[1]; return {kind: cst_BailleurPrive, payload: arg$1}; + } + } + function type_bailleur_of_jsoo(type_bailleur){ + var cons = caml_string_of_jsstring(type_bailleur.kind); + if(! caml_string_notequal(cons, cst_BailleurPrive)) return _bg_; + if(! caml_string_notequal(cons, cst_BailleurPriveAvecConventio)) + return [1, convention_a_n_h_a_of_jsoo(type_bailleur.payload)]; + if(! caml_string_notequal(cons, cst_BailleurSocial)) + return [0, convention_bailleur_social_of_(type_bailleur.payload)]; + var _it_ = caml_call2(Stdlib_Printf[4], _bf_, cons); + return caml_call1(Stdlib[2], _it_); + } + function loue_ou_sous_loue_a_des_tiers_(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Non, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Oui, payload: personne_sous_location_to_jsoo(arg$0)}; + } + function loue_ou_sous_loue_a_des_tiers_$0(loue_ou_sous_loue_a_des_tiers){ + var cons = caml_string_of_jsstring(loue_ou_sous_loue_a_des_tiers.kind); + if(! caml_string_notequal(cons, cst_Non)) return _bi_; + if(! caml_string_notequal(cons, cst_Oui)) + return [1, + personne_sous_location_of_jsoo + (loue_ou_sous_loue_a_des_tiers.payload)]; + var _is_ = caml_call2(Stdlib_Printf[4], _bh_, cons); + return caml_call1(Stdlib[2], _is_); + } + function nationalite_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Francaise, payload: arg}; + } + var arg$0 = param[1]; + return {kind: cst_Etrangere, payload: conditions_etrangers_to_jsoo(arg$0)}; + } + function nationalite_of_jsoo(nationalite){ + var cons = caml_string_of_jsstring(nationalite.kind); + if(! caml_string_notequal(cons, cst_Etrangere)) + return [1, conditions_etrangers_of_jsoo(nationalite.payload)]; + if(! caml_string_notequal(cons, cst_Francaise)) return _bk_; + var _ir_ = caml_call2(Stdlib_Printf[4], _bj_, cons); + return caml_call1(Stdlib[2], _ir_); + } + function changement_logement_d842_4_to_(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_Changement, + payload: infos_changement_logement_d842(arg)}; + } + var arg$0 = param[1]; + return {kind: cst_PasDeChangement, payload: arg$0}; + } + function changement_logement_d842_4_of_(changement_logement_d842_4){ + var cons = caml_string_of_jsstring(changement_logement_d842_4.kind); + if(! caml_string_notequal(cons, cst_Changement)) + return [0, + infos_changement_logement_d842$0 + (changement_logement_d842_4.payload)]; + if(! caml_string_notequal(cons, cst_PasDeChangement)) return _bm_; + var _iq_ = caml_call2(Stdlib_Printf[4], _bl_, cons); + return caml_call1(Stdlib[2], _iq_); + } + function informations_prime_de_demenage(informations_prime_de_demenage){ + var + _ip_ = date_naissance_troisieme_ou_de(informations_prime_de_demenage[2]); + return {nombreEnfantsANaitreApresTroisiemeMoisGrossesse: + caml_call1 + (Runtime_ocaml_Runtime[48], informations_prime_de_demenage[1]), + dateNaissanceTroisiemeEnfantOuDernierSiPlus: _ip_}; + } + function informations_prime_de_demenage$0(informations_prime_de_demenage){ + var + _io_ = + date_naissance_troisieme_ou_de$0 + (informations_prime_de_demenage.dateNaissanceTroisiemeEnfantOuDernierSiPlus); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + informations_prime_de_demenage.nombreEnfantsANaitreApresTroisiemeMoisGrossesse), + _io_]; + } + function proprietaire_to_jsoo(proprietaire){ + var + _ie_ = ! ! proprietaire[11], + _if_ = pret_to_jsoo(proprietaire[10]), + _ig_ = neuf_ou_ancien_to_jsoo(proprietaire[9]), + _ih_ = ! ! proprietaire[8], + _ii_ = ! ! proprietaire[7], + _ij_ = ! ! proprietaire[6], + _ik_ = type_travaux_logement_r842_5_t(proprietaire[5]), + _il_ = type_travaux_logement_d832_15_(proprietaire[4]), + _im_ = caml_call1(Runtime_jsoo_Runtime[5], proprietaire[3]), + _in_ = caml_call1(Runtime_ocaml_Runtime[35], proprietaire[2]); + return {mensualitePrincipale: + caml_call1(Runtime_ocaml_Runtime[35], proprietaire[1]), + chargesMensuellesPret: _in_, + dateEntreeLogement: _im_, + typeTravauxLogementD83215: _il_, + typeTravauxLogementR8425: _ik_, + localHabitePremiereFoisBeneficiaire: _ij_, + copropriete: _ii_, + situationR822111317: _ih_, + ancienneteLogement: _ig_, + pret: _if_, + operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat: + _ie_}; + } + function proprietaire_of_jsoo(proprietaire){ + var + _h4_ = + proprietaire.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtat + | 0, + _h5_ = pret_of_jsoo(proprietaire.pret), + _h6_ = neuf_ou_ancien_of_jsoo(proprietaire.ancienneteLogement), + _h7_ = proprietaire.situationR822111317 | 0, + _h8_ = proprietaire.copropriete | 0, + _h9_ = proprietaire.localHabitePremiereFoisBeneficiaire | 0, + _h__ = + type_travaux_logement_r842_5_o(proprietaire.typeTravauxLogementR8425), + _h$_ = + type_travaux_logement_d832_15_$0 + (proprietaire.typeTravauxLogementD83215), + _ia_ = + caml_call1(Runtime_jsoo_Runtime[4], proprietaire.dateEntreeLogement), + _ib_ = + caml_call1 + (Runtime_ocaml_Runtime[42], proprietaire.chargesMensuellesPret), + _ic_ = caml_call1(Runtime_ocaml_Runtime[33], _ib_), + _id_ = + caml_call1 + (Runtime_ocaml_Runtime[42], proprietaire.mensualitePrincipale); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _id_), + _ic_, + _ia_, + _h$_, + _h__, + _h9_, + _h8_, + _h7_, + _h6_, + _h5_, + _h4_]; + } + function eligibilite_prestations_famili(eligibilite_prestations_famili){ + var t523 = ! ! eligibilite_prestations_famili[4]; + function t522(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _h3_ = enfant_prestations_familiales_$0(function_input0); + return ! ! caml_call1(eligibilite_prestations_famili[3], _h3_); + }); + } + function t521(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _h2_ = enfant_prestations_familiales_$0(function_input0); + return ! ! caml_call1(eligibilite_prestations_famili[2], _h2_); + }); + } + var + t520 = + caml_call1(Runtime_jsoo_Runtime[3], eligibilite_prestations_famili[1]); + return {ageL51232: t520, + droitOuvert: caml_js_wrap_meth_callback(t521), + conditionsHorsAge: caml_js_wrap_meth_callback(t522), + regimeOutreMerL7511: t523}; + } + function eligibilite_prestations_famili$0(eligibilite_prestations_famili){ + var + _hZ_ = eligibilite_prestations_famili.regimeOutreMerL7511 | 0, + _h0_ = caml_call1(Stdlib[2], cst_The_function_conditions_ho), + _h1_ = caml_call1(Stdlib[2], cst_The_function_droit_ouvert_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[2], + eligibilite_prestations_famili.ageL51232), + _h1_, + _h0_, + _hZ_]; + } + function demandeur_to_jsoo(demandeur){ + var + _hU_ = ! ! demandeur[6], + _hV_ = ! ! demandeur[5], + _hW_ = ! ! demandeur[4], + _hX_ = patrimoine_to_jsoo(demandeur[3]), + _hY_ = nationalite_to_jsoo(demandeur[2]); + return {dateNaissance: caml_call1(Runtime_jsoo_Runtime[5], demandeur[1]), + nationalite: _hY_, + patrimoine: _hX_, + personneHebergeeCentreSoinLL162223SecuriteSociale: _hW_, + estNonSalarieAgricoleL7818L78146CodeRural: _hV_, + magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte: + _hU_}; + } + function demandeur_of_jsoo(demandeur){ + var + _hP_ = + demandeur.magistratFonctionnaireCentreInteretsMaterielsFamiliauxHorsMayotte + | 0, + _hQ_ = demandeur.estNonSalarieAgricoleL7818L78146CodeRural | 0, + _hR_ = demandeur.personneHebergeeCentreSoinLL162223SecuriteSociale | 0, + _hS_ = patrimoine_of_jsoo(demandeur.patrimoine), + _hT_ = nationalite_of_jsoo(demandeur.nationalite); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], demandeur.dateNaissance), + _hT_, + _hS_, + _hR_, + _hQ_, + _hP_]; + } + function enfant_a_charge_to_jsoo(enfant_a_charge){ + var + _hH_ = ! ! enfant_a_charge[9], + _hI_ = situation_garde_alternee_to_js(enfant_a_charge[8]), + _hJ_ = situation_obligation_scolaire_(enfant_a_charge[7]), + _hK_ = caml_call1(Runtime_ocaml_Runtime[35], enfant_a_charge[6]), + _hL_ = caml_call1(Runtime_jsoo_Runtime[5], enfant_a_charge[5]), + _hM_ = ! ! enfant_a_charge[4], + _hN_ = ! ! enfant_a_charge[3], + _hO_ = nationalite_to_jsoo(enfant_a_charge[2]); + return {identifiant: + caml_call1(Runtime_ocaml_Runtime[48], enfant_a_charge[1]), + nationalite: _hO_, + beneficieTitrePersonnelAidePersonnelleLogement: _hN_, + aDejaOuvertDroitAuxAllocationsFamiliales: _hM_, + dateDeNaissance: _hL_, + remunerationMensuelle: _hK_, + obligationScolaire: _hJ_, + situationGardeAlternee: _hI_, + etudesApprentissageStageFormationProImpossibiliteTravail: _hH_}; + } + function enfant_a_charge_of_jsoo(enfant_a_charge){ + var + _hy_ = + enfant_a_charge.etudesApprentissageStageFormationProImpossibiliteTravail + | 0, + _hz_ = + situation_garde_alternee_of_js(enfant_a_charge.situationGardeAlternee), + _hA_ = + situation_obligation_scolaire_$0(enfant_a_charge.obligationScolaire), + _hB_ = + caml_call1 + (Runtime_ocaml_Runtime[42], enfant_a_charge.remunerationMensuelle), + _hC_ = caml_call1(Runtime_ocaml_Runtime[33], _hB_), + _hD_ = + caml_call1(Runtime_jsoo_Runtime[4], enfant_a_charge.dateDeNaissance), + _hE_ = enfant_a_charge.aDejaOuvertDroitAuxAllocationsFamiliales | 0, + _hF_ = enfant_a_charge.beneficieTitrePersonnelAidePersonnelleLogement | 0, + _hG_ = nationalite_of_jsoo(enfant_a_charge.nationalite); + return [0, + caml_call1(Runtime_ocaml_Runtime[49], enfant_a_charge.identifiant), + _hG_, + _hF_, + _hE_, + _hD_, + _hC_, + _hA_, + _hz_, + _hy_]; + } + function location_to_jsoo(location){ + var + _hr_ = changement_logement_d842_4_to_(location[8]), + _hs_ = ! ! location[7], + _ht_ = ! ! location[6], + _hu_ = ! ! location[5], + _hv_ = ! ! location[4], + _hw_ = ! ! location[3], + _hx_ = caml_call1(Runtime_ocaml_Runtime[35], location[2]); + return {bailleur: type_bailleur_to_jsoo(location[1]), + loyerPrincipal: _hx_, + beneficiaireAideAdulteOuEnfantHandicapes: _hw_, + logementEstChambre: _hv_, + colocation: _hu_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliers: _ht_, + logementMeubleD8422: _hs_, + changementLogementD8424: _hr_}; + } + function location_of_jsoo(location){ + var + _hj_ = changement_logement_d842_4_of_(location.changementLogementD8424), + _hk_ = location.logementMeubleD8422 | 0, + _hl_ = location.ageesOuHandicapAdultesHebergeesOnereuxParticuliers | 0, + _hm_ = location.colocation | 0, + _hn_ = location.logementEstChambre | 0, + _ho_ = location.beneficiaireAideAdulteOuEnfantHandicapes | 0, + _hp_ = caml_call1(Runtime_ocaml_Runtime[42], location.loyerPrincipal), + _hq_ = caml_call1(Runtime_ocaml_Runtime[33], _hp_); + return [0, + type_bailleur_of_jsoo(location.bailleur), + _hq_, + _ho_, + _hn_, + _hm_, + _hl_, + _hk_, + _hj_]; + } + function personne_a_charge_to_jsoo(param){ + if(0 === param[0]){ + var arg = param[1]; + return {kind: cst_EnfantACharge, payload: enfant_a_charge_to_jsoo(arg)}; + } + var arg$0 = param[1]; + return {kind: cst_AutrePersonneACharge, + payload: autre_personne_a_charge_to_jso(arg$0)}; + } + function personne_a_charge_of_jsoo(personne_a_charge){ + var cons = caml_string_of_jsstring(personne_a_charge.kind); + if(! caml_string_notequal(cons, cst_AutrePersonneACharge)) + return [1, autre_personne_a_charge_of_jso(personne_a_charge.payload)]; + if(! caml_string_notequal(cons, cst_EnfantACharge)) + return [0, enfant_a_charge_of_jsoo(personne_a_charge.payload)]; + var _hi_ = caml_call2(Stdlib_Printf[4], _bn_, cons); + return caml_call1(Stdlib[2], _hi_); + } + function categorie_calcul_a_p_l_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_Location, payload: location_to_jsoo(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_AccessionPropriete, + payload: proprietaire_to_jsoo(arg$0)}; + default: + var arg$1 = param[1]; + return {kind: cst_LogementFoyer, + payload: logement_foyer_to_jsoo(arg$1)}; + } + } + function categorie_calcul_a_p_l_of_jsoo(categorie_calcul_a_p_l){ + var cons = caml_string_of_jsstring(categorie_calcul_a_p_l.kind); + if(! caml_string_notequal(cons, cst_AccessionPropriete)) + return [1, proprietaire_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons, cst_Location)) + return [0, location_of_jsoo(categorie_calcul_a_p_l.payload)]; + if(! caml_string_notequal(cons, cst_LogementFoyer)) + return [2, logement_foyer_of_jsoo(categorie_calcul_a_p_l.payload)]; + var _hh_ = caml_call2(Stdlib_Printf[4], _bo_, cons); + return caml_call1(Stdlib[2], _hh_); + } + function mode_occupation_to_jsoo(param){ + switch(param[0]){ + case 0: + var arg = param[1]; + return {kind: cst_Locataire, payload: location_to_jsoo(arg)}; + case 1: + var arg$0 = param[1]; + return {kind: cst_ResidentLogementFoyer, + payload: logement_foyer_to_jsoo(arg$0)}; + case 2: + var arg$1 = param[1]; + return {kind: cst_AccessionProprieteLocalUsa, + payload: proprietaire_to_jsoo(arg$1)}; + case 3: + var arg$2 = param[1]; + return {kind: cst_SousLocataire, payload: location_to_jsoo(arg$2)}; + default: + var arg$3 = param[1]; + return {kind: cst_LocationAccession, + payload: proprietaire_to_jsoo(arg$3)}; + } + } + function mode_occupation_of_jsoo(mode_occupation){ + var cons = caml_string_of_jsstring(mode_occupation.kind); + if(! caml_string_notequal(cons, cst_AccessionProprieteLocalUsa)) + return [2, proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_Locataire)) + return [0, location_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_LocationAccession)) + return [4, proprietaire_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_ResidentLogementFoyer)) + return [1, logement_foyer_of_jsoo(mode_occupation.payload)]; + if(! caml_string_notequal(cons, cst_SousLocataire)) + return [3, location_of_jsoo(mode_occupation.payload)]; + var _hg_ = caml_call2(Stdlib_Printf[4], _bp_, cons); + return caml_call1(Stdlib[2], _hg_); + } + function eligibilite_aides_personnelle_(eligibilite_aides_personnelle_){ + function t609(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var _hf_ = personne_a_charge_of_jsoo(function_input0); + return ! ! caml_call1(eligibilite_aides_personnelle_[5], _hf_); + }); + } + var _hd_ = eligibilite_aides_personnelle_[4]; + function _he_(x){return caml_call1(Runtime_ocaml_Runtime[43], x);} + var + t608 = caml_js_from_array(caml_call2(Stdlib_Array[15], _he_, _hd_)), + t607 = + caml_call1 + (Runtime_ocaml_Runtime[48], eligibilite_aides_personnelle_[3]), + t606 = ! ! eligibilite_aides_personnelle_[2], + t605 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[1]); + return {dateCourante: t605, + eligibilite: t606, + nombrePersonnesAChargePrisesEnCompte: t607, + coefficentsEnfantsGardeAlterneePrisEnCompte: t608, + condition2R8234: caml_js_wrap_meth_callback(t609)}; + } + function eligibilite_aides_personnelle_$0(eligibilite_aides_personnelle_){ + var + _g9_ = caml_call1(Stdlib[2], cst_The_function_condition_2_r), + _g__ = + caml_js_to_array + (eligibilite_aides_personnelle_.coefficentsEnfantsGardeAlterneePrisEnCompte); + function _g$_(x){return caml_call1(Runtime_ocaml_Runtime[42], x);} + var + _ha_ = caml_call1(caml_call1(Stdlib_Array[15], _g$_), _g__), + _hb_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + eligibilite_aides_personnelle_.nombrePersonnesAChargePrisesEnCompte), + _hc_ = eligibilite_aides_personnelle_.eligibilite | 0; + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCourante), + _hc_, + _hb_, + _ha_, + _g9_]; + } + function logement_to_jsoo(logement){ + var + _g2_ = zone_d_habitation_to_jsoo(logement[9]), + _g3_ = caml_call1(Runtime_ocaml_Runtime[48], logement[8]), + _g4_ = ! ! logement[7], + _g5_ = parent_ou_autre_to_jsoo(logement[6]), + _g6_ = loue_ou_sous_loue_a_des_tiers_(logement[5]), + _g7_ = parent_ou_autre_to_jsoo(logement[4]), + _g8_ = mode_occupation_to_jsoo(logement[3]); + return {residencePrincipale: ! ! logement[1], + estEhpadOuMaisonAutonomieL31312Asf: ! ! logement[2], + modeOccupation: _g8_, + proprietaire: _g7_, + loueOuSousLoueADesTiers: _g6_, + usufruit: _g5_, + logementDecentL89462: _g4_, + surfaceMCarres: _g3_, + zone: _g2_}; + } + function logement_of_jsoo(logement){ + var + _gV_ = zone_d_habitation_of_jsoo(logement.zone), + _gW_ = caml_call1(Runtime_ocaml_Runtime[49], logement.surfaceMCarres), + _gX_ = logement.logementDecentL89462 | 0, + _gY_ = parent_ou_autre_of_jsoo(logement.usufruit), + _gZ_ = loue_ou_sous_loue_a_des_tiers_$0(logement.loueOuSousLoueADesTiers), + _g0_ = parent_ou_autre_of_jsoo(logement.proprietaire), + _g1_ = mode_occupation_of_jsoo(logement.modeOccupation); + return [0, + logement.residencePrincipale | 0, + logement.estEhpadOuMaisonAutonomieL31312Asf | 0, + _g1_, + _g0_, + _gZ_, + _gY_, + _gX_, + _gW_, + _gV_]; + } + function menage_to_jsoo(menage){ + var + _gJ_ = collectivite_to_jsoo(menage[9]), + _gK_ = ! ! menage[8], + _gL_ = ! ! menage[7], + _gM_ = ! ! menage[6], + _gN_ = situation_familiale_to_jsoo(menage[5]), + _gO_ = caml_call1(Runtime_ocaml_Runtime[48], menage[4]), + _gP_ = menage[3]; + function _gQ_(x){return personne_a_charge_to_jsoo(x);} + var + _gR_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _gQ_, _gP_)), + _gS_ = logement_to_jsoo(menage[2]), + _gT_ = menage[1]; + function _gU_(x){return prestation_recue_to_jsoo(x);} + return {prestationsRecues: + caml_js_from_array(caml_call2(Stdlib_Array[15], _gU_, _gT_)), + logement: _gS_, + personnesACharge: _gR_, + nombreAutresOccupantsLogement: _gO_, + situationFamiliale: _gN_, + conditionRattacheFoyerFiscalParentIfi: _gM_, + enfantANaitreApresQuatriemeMoisGrossesse: _gL_, + personnesAgeesHandicapeesFoyerR8444: _gK_, + residence: _gJ_}; + } + function menage_of_jsoo(menage){ + var + _gx_ = collectivite_of_jsoo(menage.residence), + _gy_ = menage.personnesAgeesHandicapeesFoyerR8444 | 0, + _gz_ = menage.enfantANaitreApresQuatriemeMoisGrossesse | 0, + _gA_ = menage.conditionRattacheFoyerFiscalParentIfi | 0, + _gB_ = situation_familiale_of_jsoo(menage.situationFamiliale), + _gC_ = + caml_call1 + (Runtime_ocaml_Runtime[49], menage.nombreAutresOccupantsLogement), + _gD_ = caml_js_to_array(menage.personnesACharge); + function _gE_(x){return personne_a_charge_of_jsoo(x);} + var + _gF_ = caml_call1(caml_call1(Stdlib_Array[15], _gE_), _gD_), + _gG_ = logement_of_jsoo(menage.logement), + _gH_ = caml_js_to_array(menage.prestationsRecues); + function _gI_(x){return prestation_recue_of_jsoo(x);} + return [0, + caml_call1(caml_call1(Stdlib_Array[15], _gI_), _gH_), + _gG_, + _gF_, + _gC_, + _gB_, + _gA_, + _gz_, + _gy_, + _gx_]; + } + function eligibilite_aides_personnelle_$1(eligibilite_aides_personnelle_){ + function t655(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _gw_ = + caml_call1 + (eligibilite_aides_personnelle_[6], function_input0); + return caml_call1(Runtime_jsoo_Runtime[5], _gw_); + }); + } + function t654(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[5], function_input0); + }); + } + function t653(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (eligibilite_aides_personnelle_[4], function_input0); + }); + } + var + t652 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aides_personnelle_[3]), + t651 = demandeur_to_jsoo(eligibilite_aides_personnelle_[2]), + t650 = menage_to_jsoo(eligibilite_aides_personnelle_[1]); + return {menageIn: t650, + demandeurIn: t651, + dateCouranteIn: t652, + conditionLogementResidencePrincipaleIn: + caml_js_wrap_meth_callback(t653), + conditionLogementSurfaceIn: caml_js_wrap_meth_callback(t654), + dateEntreeVigueurDiffereeCchIn: caml_js_wrap_meth_callback(t655)}; + } + function eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_){ + var + _gr_ = caml_call1(Stdlib[2], cst_The_function_date_entree_v), + _gs_ = caml_call1(Stdlib[2], cst_The_function_condition_log), + _gt_ = caml_call1(Stdlib[2], cst_The_function_condition_log$0), + _gu_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aides_personnelle_.dateCouranteIn), + _gv_ = demandeur_of_jsoo(eligibilite_aides_personnelle_.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aides_personnelle_.menageIn), + _gv_, + _gu_, + _gt_, + _gs_, + _gr_]; + } + function eligibilite_aide_personnalisee$1(eligibilite_aide_personnalisee){ + var + _gp_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_aide_personnalisee[3]), + _gq_ = demandeur_to_jsoo(eligibilite_aide_personnalisee[2]); + return {menageIn: menage_to_jsoo(eligibilite_aide_personnalisee[1]), + demandeurIn: _gq_, + dateCouranteIn: _gp_}; + } + function eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee){ + var + _gn_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_aide_personnalisee.dateCouranteIn), + _go_ = demandeur_of_jsoo(eligibilite_aide_personnalisee.demandeurIn); + return [0, + menage_of_jsoo(eligibilite_aide_personnalisee.menageIn), + _go_, + _gn_]; + } + function eligibilite_allocation_logemen$1(eligibilite_allocation_logemen){ + var + _gk_ = ! ! eligibilite_allocation_logemen[4], + _gl_ = demandeur_to_jsoo(eligibilite_allocation_logemen[3]), + _gm_ = menage_to_jsoo(eligibilite_allocation_logemen[2]); + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], eligibilite_allocation_logemen[1]), + menageIn: _gm_, + demandeurIn: _gl_, + beneficieAidePersonnaliseeLogementIn: _gk_}; + } + function eligibilite_allocation_logemen$2(eligibilite_allocation_logemen){ + var + _gh_ = + eligibilite_allocation_logemen.beneficieAidePersonnaliseeLogementIn | 0, + _gi_ = demandeur_of_jsoo(eligibilite_allocation_logemen.demandeurIn), + _gj_ = menage_of_jsoo(eligibilite_allocation_logemen.menageIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_allocation_logemen.dateCouranteIn), + _gj_, + _gi_, + _gh_]; + } + function eligibilite_prime_de_demenagem$1(eligibilite_prime_de_demenagem){ + var + _gc_ = + caml_call1 + (Runtime_ocaml_Runtime[35], eligibilite_prime_de_demenagem[6]), + _gd_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[5]), + _ge_ = demandeur_to_jsoo(eligibilite_prime_de_demenagem[4]), + _gf_ = menage_to_jsoo(eligibilite_prime_de_demenagem[3]), + _gg_ = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prime_de_demenagem[2]); + return {informationsIn: + informations_prime_de_demenage(eligibilite_prime_de_demenagem[1]), + dateEmmenagementIn: _gg_, + menageIn: _gf_, + demandeurIn: _ge_, + dateCouranteIn: _gd_, + depensesJustifieesReellementEngageesIn: _gc_}; + } + function eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem){ + var + _f8_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + eligibilite_prime_de_demenagem.depensesJustifieesReellementEngageesIn), + _f9_ = caml_call1(Runtime_ocaml_Runtime[33], _f8_), + _f__ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateCouranteIn), + _f$_ = demandeur_of_jsoo(eligibilite_prime_de_demenagem.demandeurIn), + _ga_ = menage_of_jsoo(eligibilite_prime_de_demenagem.menageIn), + _gb_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prime_de_demenagem.dateEmmenagementIn); + return [0, + informations_prime_de_demenage$0 + (eligibilite_prime_de_demenagem.informationsIn), + _gb_, + _ga_, + _f$_, + _f__, + _f9_]; + } + function ressources_aides_personnelle_l$1(ressources_aides_personnelle_l){ + var + _fR_ = + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[14]), + _fS_ = paiement_logement_distinct_pro(ressources_aides_personnelle_l[13]), + _fT_ = + caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[12]), + _fU_ = ! ! ressources_aides_personnelle_l[11], + _fV_ = ! ! ressources_aides_personnelle_l[10], + _fW_ = + caml_call1(Runtime_jsoo_Runtime[5], ressources_aides_personnelle_l[9]), + _fX_ = mode_occupation_to_jsoo(ressources_aides_personnelle_l[8]), + _fY_ = situation_familiale_to_jsoo(ressources_aides_personnelle_l[7]), + _fZ_ = ressources_aides_personnelle_l[6]; + function _f0_(x){return personne_a_charge_to_jsoo(x);} + var + _f1_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f0_, _fZ_)), + _f2_ = ! ! ressources_aides_personnelle_l[5], + _f3_ = ! ! ressources_aides_personnelle_l[4], + _f4_ = ressources_aides_personnelle_l[3]; + function _f5_(x){return personne_vivant_habituellement(x);} + var + _f6_ = caml_js_from_array(caml_call2(Stdlib_Array[15], _f5_, _f4_)), + _f7_ = + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[2]); + return {ressourcesDemandeurIn: + caml_call1 + (Runtime_ocaml_Runtime[35], ressources_aides_personnelle_l[1]), + ressourcesConjointIn: _f7_, + personnesVivantHabituellementFoyerIn: _f6_, + demandeurExerceActiviteRemunereeIn: _f3_, + conjointExerceActiviteRemunereeIn: _f2_, + personnesAChargeIn: _f1_, + situationFamilialeIn: _fY_, + modeOccupationIn: _fX_, + dateCouranteIn: _fW_, + conditionAgeBourseEnseignementSuperieurIn: _fV_, + demandeurPoursuitDesEtudesIn: _fU_, + dateDemandeOuReexamenDroitIn: _fT_, + paiementLogementDistinctProfessionnelIn: _fS_, + ressourcesMenageArrondiesBaseIn: _fR_}; + } + function ressources_aides_personnelle_l$2(ressources_aides_personnelle_l){ + var + _fx_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesMenageArrondiesBaseIn), + _fy_ = caml_call1(Runtime_ocaml_Runtime[33], _fx_), + _fz_ = + paiement_logement_distinct_pro$0 + (ressources_aides_personnelle_l.paiementLogementDistinctProfessionnelIn), + _fA_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateDemandeOuReexamenDroitIn), + _fB_ = ressources_aides_personnelle_l.demandeurPoursuitDesEtudesIn | 0, + _fC_ = + ressources_aides_personnelle_l.conditionAgeBourseEnseignementSuperieurIn + | 0, + _fD_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + ressources_aides_personnelle_l.dateCouranteIn), + _fE_ = + mode_occupation_of_jsoo + (ressources_aides_personnelle_l.modeOccupationIn), + _fF_ = + situation_familiale_of_jsoo + (ressources_aides_personnelle_l.situationFamilialeIn), + _fG_ = + caml_js_to_array(ressources_aides_personnelle_l.personnesAChargeIn); + function _fH_(x){return personne_a_charge_of_jsoo(x);} + var + _fI_ = caml_call1(caml_call1(Stdlib_Array[15], _fH_), _fG_), + _fJ_ = + ressources_aides_personnelle_l.conjointExerceActiviteRemunereeIn | 0, + _fK_ = + ressources_aides_personnelle_l.demandeurExerceActiviteRemunereeIn | 0, + _fL_ = + caml_js_to_array + (ressources_aides_personnelle_l.personnesVivantHabituellementFoyerIn); + function _fM_(x){return personne_vivant_habituellement$0(x);} + var + _fN_ = caml_call1(caml_call1(Stdlib_Array[15], _fM_), _fL_), + _fO_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesConjointIn), + _fP_ = caml_call1(Runtime_ocaml_Runtime[33], _fO_), + _fQ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + ressources_aides_personnelle_l.ressourcesDemandeurIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _fQ_), + _fP_, + _fN_, + _fK_, + _fJ_, + _fI_, + _fF_, + _fE_, + _fD_, + _fC_, + _fB_, + _fA_, + _fz_, + _fy_]; + } + function contributions_sociales_aides_p$1(contributions_sociales_aides_p){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], contributions_sociales_aides_p[1])}; + } + function contributions_sociales_aides_p$2(contributions_sociales_aides_p){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + contributions_sociales_aides_p.dateCouranteIn)]; + } + function calcul_aide_personnalisee_loge$7(calcul_aide_personnalisee_loge){ + var + _fk_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[14]), + _fl_ = ! ! calcul_aide_personnalisee_loge[13], + _fm_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[12]), + _fn_ = ! ! calcul_aide_personnalisee_loge[11], + _fo_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[10]), + _fp_ = ! ! calcul_aide_personnalisee_loge[9], + _fq_ = ! ! calcul_aide_personnalisee_loge[8], + _fr_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[7]), + _fs_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[6]), + _ft_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), + _fu_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[4]), + _fv_ = ! ! calcul_aide_personnalisee_loge[3], + _fw_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); + return {loyerPrincipalBaseIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), + ressourcesMenageArrondiesIn: _fw_, + beneficiaireAideAdulteOuEnfantHandicapesIn: _fv_, + dateCouranteIn: _fu_, + nombrePersonnesAChargeIn: _ft_, + situationFamilialeCalculAplIn: _fs_, + zoneIn: _fr_, + logementEstChambreIn: _fq_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _fp_, + typeAideIn: _fo_, + colocationIn: _fn_, + reductionLoyerSolidariteIn: _fm_, + logementMeubleD8422In: _fl_, + residenceIn: _fk_}; + } + function calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge){ + var + _e6_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _e7_ = calcul_aide_personnalisee_loge.logementMeubleD8422In | 0, + _e8_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.reductionLoyerSolidariteIn), + _e9_ = caml_call1(Runtime_ocaml_Runtime[33], _e8_), + _e__ = calcul_aide_personnalisee_loge.colocationIn | 0, + _e$_ = + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn), + _fa_ = + calcul_aide_personnalisee_loge.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | 0, + _fb_ = calcul_aide_personnalisee_loge.logementEstChambreIn | 0, + _fc_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _fd_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _fe_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _ff_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _fg_ = + calcul_aide_personnalisee_loge.beneficiaireAideAdulteOuEnfantHandicapesIn + | 0, + _fh_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _fi_ = caml_call1(Runtime_ocaml_Runtime[33], _fh_), + _fj_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.loyerPrincipalBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _fj_), + _fi_, + _fg_, + _ff_, + _fe_, + _fd_, + _fc_, + _fb_, + _fa_, + _e$_, + _e__, + _e9_, + _e7_, + _e6_]; + } + function calcul_equivalence_loyer_minim$1(calcul_equivalence_loyer_minim){ + var + _e3_ = + caml_call1 + (Runtime_ocaml_Runtime[43], calcul_equivalence_loyer_minim[4]), + _e4_ = ! ! calcul_equivalence_loyer_minim[3], + _e5_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_equivalence_loyer_minim[2]); + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], calcul_equivalence_loyer_minim[1]), + ressourcesMenageArrondiesIn: _e5_, + condition2Du83225In: _e4_, + nNombrePartsD83225In: _e3_}; + } + function calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim){ + var + _eZ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.nNombrePartsD83225In), + _e0_ = calcul_equivalence_loyer_minim.condition2Du83225In | 0, + _e1_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_equivalence_loyer_minim.ressourcesMenageArrondiesIn), + _e2_ = caml_call1(Runtime_ocaml_Runtime[33], _e1_); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_equivalence_loyer_minim.dateCouranteIn), + _e2_, + _e0_, + _eZ_]; + } + function calcul_nombre_part_logement_fo$1(calcul_nombre_part_logement_fo){ + function t755(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_nombre_part_logement_fo[5], function_input0); + }); + } + var + t754 = collectivite_to_jsoo(calcul_nombre_part_logement_fo[4]), + t753 = situation_familiale_calcul_a_p(calcul_nombre_part_logement_fo[3]), + t752 = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_nombre_part_logement_fo[2]), + t751 = ! ! calcul_nombre_part_logement_fo[1]; + return {condition2Du83225In: t751, + nombrePersonnesAChargeIn: t752, + situationFamilialeCalculAplIn: t753, + residenceIn: t754, + limitationMajorationPersonnesAChargeIn: + caml_js_wrap_meth_callback(t755)}; + } + function calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo){ + var + _eV_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma), + _eW_ = collectivite_of_jsoo(calcul_nombre_part_logement_fo.residenceIn), + _eX_ = + situation_familiale_calcul_a_p$0 + (calcul_nombre_part_logement_fo.situationFamilialeCalculAplIn), + _eY_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_part_logement_fo.nombrePersonnesAChargeIn); + return [0, + calcul_nombre_part_logement_fo.condition2Du83225In | 0, + _eY_, + _eX_, + _eW_, + _eV_]; + } + function calcul_aide_personnalisee_loge$9(calcul_aide_personnalisee_loge){ + function t771(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _eU_ = + caml_call1 + (calcul_aide_personnalisee_loge[12], function_input0); + return caml_call1(Runtime_ocaml_Runtime[43], _eU_); + }); + } + function t770(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[11], function_input0); + }); + } + function t769(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + return ! + ! + caml_call1 + (calcul_aide_personnalisee_loge[10], function_input0); + }); + } + var + t768 = collectivite_to_jsoo(calcul_aide_personnalisee_loge[9]), + t767 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[8]), + t766 = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), + t765 = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + t764 = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[5]), + t763 = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[4]), + t762 = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + t761 = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[2]), + t760 = type_logement_foyer_to_jsoo(calcul_aide_personnalisee_loge[1]); + return {typeLogementFoyerIn: t760, + dateConventionnementIn: t761, + ressourcesMenageArrondiesIn: t762, + nombrePersonnesAChargeIn: t763, + situationFamilialeCalculAplIn: t764, + zoneIn: t765, + dateCouranteIn: t766, + redevanceIn: t767, + residenceIn: t768, + condition2Du83225In: caml_js_wrap_meth_callback(t769), + limitationMajorationPersonnesAChargeIn: + caml_js_wrap_meth_callback(t770), + nNombrePartsD83225In: caml_js_wrap_meth_callback(t771)}; + } + function calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge){ + var + _eH_ = caml_call1(Stdlib[2], cst_The_function_n_nombre_part), + _eI_ = caml_call1(Stdlib[2], cst_The_function_limitation_ma$0), + _eJ_ = caml_call1(Stdlib[2], cst_The_function_condition_2_d), + _eK_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _eL_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.redevanceIn), + _eM_ = caml_call1(Runtime_ocaml_Runtime[33], _eL_), + _eN_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _eO_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _eP_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _eQ_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _eR_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _eS_ = caml_call1(Runtime_ocaml_Runtime[33], _eR_), + _eT_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_aide_personnalisee_loge.typeLogementFoyerIn), + _eT_, + _eS_, + _eQ_, + _eP_, + _eO_, + _eN_, + _eM_, + _eK_, + _eJ_, + _eI_, + _eH_]; + } + function calcul_nombre_parts_accession_$1(calcul_nombre_parts_accession_){ + var + _eG_ = situation_familiale_calcul_a_p(calcul_nombre_parts_accession_[2]); + return {nombrePersonnesAChargeIn: + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_nombre_parts_accession_[1]), + situationFamilialeCalculAplIn: _eG_}; + } + function calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_){ + var + _eF_ = + situation_familiale_calcul_a_p$0 + (calcul_nombre_parts_accession_.situationFamilialeCalculAplIn); + return [0, + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_nombre_parts_accession_.nombrePersonnesAChargeIn), + _eF_]; + } + function calcul_aide_personnalisee_loge$11(calcul_aide_personnalisee_loge){ + var + _es_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[14]), + _et_ = neuf_ou_ancien_to_jsoo(calcul_aide_personnalisee_loge[13]), + _eu_ = type_pret_to_jsoo(calcul_aide_personnalisee_loge[12]), + _ev_ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[11]), + _ew_ = ! ! calcul_aide_personnalisee_loge[10], + _ex_ = ! ! calcul_aide_personnalisee_loge[9], + _ey_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[8]), + _ez_ = ! ! calcul_aide_personnalisee_loge[7], + _eA_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[6]), + _eB_ = type_travaux_logement_d832_15_(calcul_aide_personnalisee_loge[5]), + _eC_ = situation_familiale_calcul_a_p(calcul_aide_personnalisee_loge[4]), + _eD_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[3]), + _eE_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[2]); + return {mensualitePrincipaleIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[1]), + ressourcesMenageArrondiesIn: _eE_, + nombrePersonnesAChargeIn: _eD_, + situationFamilialeCalculAplIn: _eC_, + typeTravauxLogementIn: _eB_, + dateSignaturePretIn: _eA_, + localHabitePremiereFoisBeneficiaireIn: _ez_, + dateEntreeLogementIn: _ey_, + coproprieteIn: _ex_, + situationR822111317In: _ew_, + zoneIn: _ev_, + typePretIn: _eu_, + ancienneteLogementIn: _et_, + dateCouranteIn: _es_}; + } + function calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge){ + var + _ed_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _ee_ = + neuf_ou_ancien_of_jsoo + (calcul_aide_personnalisee_loge.ancienneteLogementIn), + _ef_ = type_pret_of_jsoo(calcul_aide_personnalisee_loge.typePretIn), + _eg_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _eh_ = calcul_aide_personnalisee_loge.situationR822111317In | 0, + _ei_ = calcul_aide_personnalisee_loge.coproprieteIn | 0, + _ej_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateEntreeLogementIn), + _ek_ = + calcul_aide_personnalisee_loge.localHabitePremiereFoisBeneficiaireIn + | 0, + _el_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateSignaturePretIn), + _em_ = + type_travaux_logement_d832_15_$0 + (calcul_aide_personnalisee_loge.typeTravauxLogementIn), + _en_ = + situation_familiale_calcul_a_p$0 + (calcul_aide_personnalisee_loge.situationFamilialeCalculAplIn), + _eo_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _ep_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageArrondiesIn), + _eq_ = caml_call1(Runtime_ocaml_Runtime[33], _ep_), + _er_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.mensualitePrincipaleIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _er_), + _eq_, + _eo_, + _en_, + _em_, + _el_, + _ek_, + _ej_, + _ei_, + _eh_, + _eg_, + _ef_, + _ee_, + _ed_]; + } + function calcul_aide_personnalisee_loge$13(calcul_aide_personnalisee_loge){ + var + _d8_ = collectivite_to_jsoo(calcul_aide_personnalisee_loge[8]), + _d9_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_aide_personnalisee_loge[7]), + _d__ = zone_d_habitation_to_jsoo(calcul_aide_personnalisee_loge[6]), + _d$_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_aide_personnalisee_loge[5]), + _ea_ = situation_familiale_to_jsoo(calcul_aide_personnalisee_loge[4]), + _eb_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_aide_personnalisee_loge[3]), + _ec_ = type_aides_personnelle_logemen(calcul_aide_personnalisee_loge[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(calcul_aide_personnalisee_loge[1]), + typeAideIn: _ec_, + ressourcesMenageSansArrondiIn: _eb_, + situationFamilialeIn: _ea_, + nombrePersonnesAChargeIn: _d$_, + zoneIn: _d__, + dateCouranteIn: _d9_, + residenceIn: _d8_}; + } + function calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge){ + var + _d0_ = collectivite_of_jsoo(calcul_aide_personnalisee_loge.residenceIn), + _d1_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_aide_personnalisee_loge.dateCouranteIn), + _d2_ = zone_d_habitation_of_jsoo(calcul_aide_personnalisee_loge.zoneIn), + _d3_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_aide_personnalisee_loge.nombrePersonnesAChargeIn), + _d4_ = + situation_familiale_of_jsoo + (calcul_aide_personnalisee_loge.situationFamilialeIn), + _d5_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_aide_personnalisee_loge.ressourcesMenageSansArrondiIn), + _d6_ = caml_call1(Runtime_ocaml_Runtime[33], _d5_), + _d7_ = + type_aides_personnelle_logemen$0 + (calcul_aide_personnalisee_loge.typeAideIn); + return [0, + mode_occupation_of_jsoo + (calcul_aide_personnalisee_loge.modeOccupationIn), + _d7_, + _d6_, + _d4_, + _d3_, + _d2_, + _d1_, + _d0_]; + } + function calcul_allocation_logement_loc$1(calcul_allocation_logement_loc){ + var + _dM_ = changement_logement_d842_4_to_(calcul_allocation_logement_loc[15]), + _dN_ = collectivite_to_jsoo(calcul_allocation_logement_loc[14]), + _dO_ = ! ! calcul_allocation_logement_loc[13], + _dP_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[12]), + _dQ_ = ! ! calcul_allocation_logement_loc[11], + _dR_ = type_aides_personnelle_logemen(calcul_allocation_logement_loc[10]), + _dS_ = ! ! calcul_allocation_logement_loc[9], + _dT_ = ! ! calcul_allocation_logement_loc[8], + _dU_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_loc[7]), + _dV_ = situation_familiale_calcul_a_p(calcul_allocation_logement_loc[6]), + _dW_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_loc[5]), + _dX_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_loc[4]), + _dY_ = ! ! calcul_allocation_logement_loc[3], + _dZ_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[2]); + return {loyerPrincipalIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_loc[1]), + ressourcesMenageArrondiesIn: _dZ_, + beneficiaireAideAdulteOuEnfantHandicapesIn: _dY_, + dateCouranteIn: _dX_, + nombrePersonnesAChargeIn: _dW_, + situationFamilialeCalculAplIn: _dV_, + zoneIn: _dU_, + logementEstChambreIn: _dT_, + ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn: _dS_, + typeAideIn: _dR_, + colocationIn: _dQ_, + reductionLoyerSolidariteIn: _dP_, + logementMeubleD8422In: _dO_, + residenceIn: _dN_, + changementLogementD8424In: _dM_}; + } + function calcul_allocation_logement_loc$2(calcul_allocation_logement_loc){ + var + _dv_ = + changement_logement_d842_4_of_ + (calcul_allocation_logement_loc.changementLogementD8424In), + _dw_ = collectivite_of_jsoo(calcul_allocation_logement_loc.residenceIn), + _dx_ = calcul_allocation_logement_loc.logementMeubleD8422In | 0, + _dy_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.reductionLoyerSolidariteIn), + _dz_ = caml_call1(Runtime_ocaml_Runtime[33], _dy_), + _dA_ = calcul_allocation_logement_loc.colocationIn | 0, + _dB_ = + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_loc.typeAideIn), + _dC_ = + calcul_allocation_logement_loc.ageesOuHandicapAdultesHebergeesOnereuxParticuliersIn + | 0, + _dD_ = calcul_allocation_logement_loc.logementEstChambreIn | 0, + _dE_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_loc.zoneIn), + _dF_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_loc.situationFamilialeCalculAplIn), + _dG_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_loc.nombrePersonnesAChargeIn), + _dH_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_loc.dateCouranteIn), + _dI_ = + calcul_allocation_logement_loc.beneficiaireAideAdulteOuEnfantHandicapesIn + | 0, + _dJ_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.ressourcesMenageArrondiesIn), + _dK_ = caml_call1(Runtime_ocaml_Runtime[33], _dJ_), + _dL_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_loc.loyerPrincipalIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _dL_), + _dK_, + _dI_, + _dH_, + _dG_, + _dF_, + _dE_, + _dD_, + _dC_, + _dB_, + _dA_, + _dz_, + _dx_, + _dw_, + _dv_]; + } + function calcul_allocation_logement_acc$1(calcul_allocation_logement_acc){ + var + _dh_ = ! ! calcul_allocation_logement_acc[15], + _di_ = ! ! calcul_allocation_logement_acc[14], + _dj_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[13]), + _dk_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[12]), + _dl_ = ! ! calcul_allocation_logement_acc[11], + _dm_ = type_travaux_logement_r842_5_t(calcul_allocation_logement_acc[10]), + _dn_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[9]), + _do_ = ! ! calcul_allocation_logement_acc[8], + _dp_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[7]), + _dq_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_acc[6]), + _dr_ = collectivite_to_jsoo(calcul_allocation_logement_acc[5]), + _ds_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_acc[4]), + _dt_ = situation_familiale_calcul_a_p(calcul_allocation_logement_acc[3]), + _du_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_acc[2]); + return {ressourcesMenageArrondiesBaseIn: + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_acc[1]), + nombrePersonnesAChargeIn: _du_, + situationFamilialeCalculAplIn: _dt_, + zoneIn: _ds_, + residenceIn: _dr_, + dateCouranteIn: _dq_, + mensualitePrincipaleIn: _dp_, + situationR822111317In: _do_, + dateSignaturePretIn: _dn_, + typeTravauxLogementIn: _dm_, + localHabitePremiereFoisBeneficiaireIn: _dl_, + dateEntreeLogementIn: _dk_, + chargesMensuellesPretIn: _dj_, + coproprieteIn: _di_, + operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn: + _dh_}; + } + function calcul_allocation_logement_acc$2(calcul_allocation_logement_acc){ + var + _c2_ = + calcul_allocation_logement_acc.operationsLogementEvolutifsSociauxAccessionProprieteAideeEtatIn + | 0, + _c3_ = calcul_allocation_logement_acc.coproprieteIn | 0, + _c4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.chargesMensuellesPretIn), + _c5_ = caml_call1(Runtime_ocaml_Runtime[33], _c4_), + _c6_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateEntreeLogementIn), + _c7_ = + calcul_allocation_logement_acc.localHabitePremiereFoisBeneficiaireIn + | 0, + _c8_ = + type_travaux_logement_r842_5_o + (calcul_allocation_logement_acc.typeTravauxLogementIn), + _c9_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateSignaturePretIn), + _c__ = calcul_allocation_logement_acc.situationR822111317In | 0, + _c$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.mensualitePrincipaleIn), + _da_ = caml_call1(Runtime_ocaml_Runtime[33], _c$_), + _db_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_acc.dateCouranteIn), + _dc_ = collectivite_of_jsoo(calcul_allocation_logement_acc.residenceIn), + _dd_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_acc.zoneIn), + _de_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_acc.situationFamilialeCalculAplIn), + _df_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_acc.nombrePersonnesAChargeIn), + _dg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_acc.ressourcesMenageArrondiesBaseIn); + return [0, + caml_call1(Runtime_ocaml_Runtime[33], _dg_), + _df_, + _de_, + _dd_, + _dc_, + _db_, + _da_, + _c__, + _c9_, + _c8_, + _c7_, + _c6_, + _c5_, + _c3_, + _c2_]; + } + function calcul_allocation_logement_foy$1(calcul_allocation_logement_foy){ + var + _cT_ = categorie_equivalence_loyer_al(calcul_allocation_logement_foy[10]), + _cU_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[9]), + _cV_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_foy[8]), + _cW_ = situation_familiale_calcul_a_p(calcul_allocation_logement_foy[7]), + _cX_ = + caml_call1 + (Runtime_ocaml_Runtime[48], calcul_allocation_logement_foy[6]), + _cY_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[5]), + _cZ_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calcul_allocation_logement_foy[4]), + _c0_ = collectivite_to_jsoo(calcul_allocation_logement_foy[3]), + _c1_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_foy[2]); + return {typeLogementFoyerIn: + type_logement_foyer_to_jsoo(calcul_allocation_logement_foy[1]), + dateConventionnementIn: _c1_, + residenceIn: _c0_, + redevanceIn: _cZ_, + ressourcesMenageArrondiesIn: _cY_, + nombrePersonnesAChargeIn: _cX_, + situationFamilialeCalculAplIn: _cW_, + zoneIn: _cV_, + dateCouranteIn: _cU_, + categorieEquivalenceLoyerD84216In: _cT_}; + } + function calcul_allocation_logement_foy$2(calcul_allocation_logement_foy){ + var + _cI_ = + categorie_equivalence_loyer_al$0 + (calcul_allocation_logement_foy.categorieEquivalenceLoyerD84216In), + _cJ_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateCouranteIn), + _cK_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_foy.zoneIn), + _cL_ = + situation_familiale_calcul_a_p$0 + (calcul_allocation_logement_foy.situationFamilialeCalculAplIn), + _cM_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_foy.nombrePersonnesAChargeIn), + _cN_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.ressourcesMenageArrondiesIn), + _cO_ = caml_call1(Runtime_ocaml_Runtime[33], _cN_), + _cP_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_foy.redevanceIn), + _cQ_ = caml_call1(Runtime_ocaml_Runtime[33], _cP_), + _cR_ = collectivite_of_jsoo(calcul_allocation_logement_foy.residenceIn), + _cS_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_foy.dateConventionnementIn); + return [0, + type_logement_foyer_of_jsoo + (calcul_allocation_logement_foy.typeLogementFoyerIn), + _cS_, + _cR_, + _cQ_, + _cO_, + _cM_, + _cL_, + _cK_, + _cJ_, + _cI_]; + } + function calcul_allocation_logement_in_(calcul_allocation_logement_in){ + var + _cB_ = collectivite_to_jsoo(calcul_allocation_logement_in[8]), + _cC_ = type_aides_personnelle_logemen(calcul_allocation_logement_in[7]), + _cD_ = + caml_call1(Runtime_jsoo_Runtime[5], calcul_allocation_logement_in[6]), + _cE_ = zone_d_habitation_to_jsoo(calcul_allocation_logement_in[5]), + _cF_ = + caml_call1(Runtime_ocaml_Runtime[48], calcul_allocation_logement_in[4]), + _cG_ = situation_familiale_to_jsoo(calcul_allocation_logement_in[3]), + _cH_ = + caml_call1(Runtime_ocaml_Runtime[35], calcul_allocation_logement_in[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(calcul_allocation_logement_in[1]), + ressourcesMenageSansArrondiIn: _cH_, + situationFamilialeIn: _cG_, + nombrePersonnesAChargeIn: _cF_, + zoneIn: _cE_, + dateCouranteIn: _cD_, + typeAideIn: _cC_, + residenceIn: _cB_}; + } + function calcul_allocation_logement_in_$0(calcul_allocation_logement_in){ + var + _ct_ = collectivite_of_jsoo(calcul_allocation_logement_in.residenceIn), + _cu_ = + type_aides_personnelle_logemen$0 + (calcul_allocation_logement_in.typeAideIn), + _cv_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calcul_allocation_logement_in.dateCouranteIn), + _cw_ = zone_d_habitation_of_jsoo(calcul_allocation_logement_in.zoneIn), + _cx_ = + caml_call1 + (Runtime_ocaml_Runtime[49], + calcul_allocation_logement_in.nombrePersonnesAChargeIn), + _cy_ = + situation_familiale_of_jsoo + (calcul_allocation_logement_in.situationFamilialeIn), + _cz_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calcul_allocation_logement_in.ressourcesMenageSansArrondiIn), + _cA_ = caml_call1(Runtime_ocaml_Runtime[33], _cz_); + return [0, + mode_occupation_of_jsoo + (calcul_allocation_logement_in.modeOccupationIn), + _cA_, + _cy_, + _cx_, + _cw_, + _cv_, + _cu_, + _ct_]; + } + function ouverture_droits_retraite_in_t(ouverture_droits_retraite_in){ + return {dateNaissanceAssureIn: + caml_call1 + (Runtime_jsoo_Runtime[5], ouverture_droits_retraite_in[1])}; + } + function ouverture_droits_retraite_in_o(ouverture_droits_retraite_in){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + ouverture_droits_retraite_in.dateNaissanceAssureIn)]; + } + function impaye_depense_logement_in_to_(impaye_depense_logement_in){ + var + _co_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[6]), + _cp_ = depense_logement_to_jsoo(impaye_depense_logement_in[5]), + _cq_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[4]), + _cr_ = + caml_call1(Runtime_ocaml_Runtime[35], impaye_depense_logement_in[3]), + _cs_ = versement_a_to_jsoo(impaye_depense_logement_in[2]); + return {modeOccupationIn: + mode_occupation_to_jsoo(impaye_depense_logement_in[1]), + aideVerseeIn: _cs_, + montantAplIn: _cr_, + montantChargesIn: _cq_, + depenseLogementIn: _cp_, + montantDetteIn: _co_}; + } + function impaye_depense_logement_in_of_(impaye_depense_logement_in){ + var + _cg_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantDetteIn), + _ch_ = caml_call1(Runtime_ocaml_Runtime[33], _cg_), + _ci_ = + depense_logement_of_jsoo(impaye_depense_logement_in.depenseLogementIn), + _cj_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + impaye_depense_logement_in.montantChargesIn), + _ck_ = caml_call1(Runtime_ocaml_Runtime[33], _cj_), + _cl_ = + caml_call1 + (Runtime_ocaml_Runtime[42], impaye_depense_logement_in.montantAplIn), + _cm_ = caml_call1(Runtime_ocaml_Runtime[33], _cl_), + _cn_ = versement_a_of_jsoo(impaye_depense_logement_in.aideVerseeIn); + return [0, + mode_occupation_of_jsoo + (impaye_depense_logement_in.modeOccupationIn), + _cn_, + _cm_, + _ck_, + _ci_, + _ch_]; + } + function calculette_aides_au_logement_i(calculette_aides_au_logement_i){ + var + _cd_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_i[4]), + _ce_ = + caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_i[3]), + _cf_ = demandeur_to_jsoo(calculette_aides_au_logement_i[2]); + return {menageIn: menage_to_jsoo(calculette_aides_au_logement_i[1]), + demandeurIn: _cf_, + dateCouranteIn: _ce_, + ressourcesMenagePrisesEnCompteIn: _cd_}; + } + function calculette_aides_au_logement_i$0(calculette_aides_au_logement_i){ + var + _b$_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_i.ressourcesMenagePrisesEnCompteIn), + _ca_ = caml_call1(Runtime_ocaml_Runtime[33], _b$_), + _cb_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_i.dateCouranteIn), + _cc_ = demandeur_of_jsoo(calculette_aides_au_logement_i.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_i.menageIn), + _cc_, + _cb_, + _ca_]; + } + function calculette_aides_au_logement_g$1(calculette_aides_au_logement_g){ + var + _b8_ = + caml_call1 + (Runtime_ocaml_Runtime[35], calculette_aides_au_logement_g[4]), + _b9_ = + caml_call1(Runtime_jsoo_Runtime[5], calculette_aides_au_logement_g[3]), + _b__ = demandeur_to_jsoo(calculette_aides_au_logement_g[2]); + return {menageIn: menage_to_jsoo(calculette_aides_au_logement_g[1]), + demandeurIn: _b__, + dateCouranteIn: _b9_, + ressourcesMenagePrisesEnCompteIn: _b8_}; + } + function calculette_aides_au_logement_g$2(calculette_aides_au_logement_g){ + var + _b4_ = + caml_call1 + (Runtime_ocaml_Runtime[42], + calculette_aides_au_logement_g.ressourcesMenagePrisesEnCompteIn), + _b5_ = caml_call1(Runtime_ocaml_Runtime[33], _b4_), + _b6_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + calculette_aides_au_logement_g.dateCouranteIn), + _b7_ = demandeur_of_jsoo(calculette_aides_au_logement_g.demandeurIn); + return [0, + menage_of_jsoo(calculette_aides_au_logement_g.menageIn), + _b7_, + _b6_, + _b5_]; + } + function base_mensuelle_allocations_fam$1(base_mensuelle_allocations_fam){ + return {dateCouranteIn: + caml_call1 + (Runtime_jsoo_Runtime[5], base_mensuelle_allocations_fam[1])}; + } + function base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam){ + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + base_mensuelle_allocations_fam.dateCouranteIn)]; + } + function verification_age_inferieur_ou_$1(verification_age_inferieur_ou_){ + var + _b2_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_inferieur_ou_[3]), + _b3_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_inferieur_ou_[1]), + dateCouranteIn: _b3_, + anneesIn: _b2_}; + } + function verification_age_inferieur_ou_$2(verification_age_inferieur_ou_){ + var + _b0_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_inferieur_ou_.anneesIn), + _b1_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_inferieur_ou_.dateNaissanceIn), + _b1_, + _b0_]; + } + function verification_age_superieur_a_i(verification_age_superieur_a_i){ + var + _bY_ = + caml_call1(Runtime_jsoo_Runtime[3], verification_age_superieur_a_i[3]), + _bZ_ = + caml_call1(Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[2]); + return {dateNaissanceIn: + caml_call1 + (Runtime_jsoo_Runtime[5], verification_age_superieur_a_i[1]), + dateCouranteIn: _bZ_, + anneesIn: _bY_}; + } + function verification_age_superieur_a_i$0(verification_age_superieur_a_i){ + var + _bW_ = + caml_call1 + (Runtime_jsoo_Runtime[2], verification_age_superieur_a_i.anneesIn), + _bX_ = + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + verification_age_superieur_a_i.dateNaissanceIn), + _bX_, + _bW_]; + } + function smic_in_to_jsoo(smic_in){ + var _bV_ = collectivite_to_jsoo(smic_in[2]); + return {dateCouranteIn: caml_call1(Runtime_jsoo_Runtime[5], smic_in[1]), + residenceIn: _bV_}; + } + function smic_in_of_jsoo(smic_in){ + var _bU_ = collectivite_of_jsoo(smic_in.residenceIn); + return [0, + caml_call1(Runtime_jsoo_Runtime[4], smic_in.dateCouranteIn), + _bU_]; + } + function eligibilite_prestations_famili$1(eligibilite_prestations_famili){ + function t976(param){ + return caml_js_wrap_meth_callback + (function(param, function_input0){ + var + _bT_ = + caml_call1 + (eligibilite_prestations_famili[4], function_input0); + return caml_call1(Runtime_jsoo_Runtime[3], _bT_); + }); + } + var + t975 = collectivite_to_jsoo(eligibilite_prestations_famili[3]), + t974 = element_prestations_familiales(eligibilite_prestations_famili[2]), + t973 = + caml_call1(Runtime_jsoo_Runtime[5], eligibilite_prestations_famili[1]); + return {dateCouranteIn: t973, + prestationCouranteIn: t974, + residenceIn: t975, + ageL51232In: caml_js_wrap_meth_callback(t976)}; + } + function eligibilite_prestations_famili$2(eligibilite_prestations_famili){ + var + _bQ_ = caml_call1(Stdlib[2], cst_The_function_age_l512_3_2_), + _bR_ = collectivite_of_jsoo(eligibilite_prestations_famili.residenceIn), + _bS_ = + element_prestations_familiales$0 + (eligibilite_prestations_famili.prestationCouranteIn); + return [0, + caml_call1 + (Runtime_jsoo_Runtime[4], + eligibilite_prestations_famili.dateCouranteIn), + _bS_, + _bR_, + _bQ_]; + } + function contributions_sociales_aides_p$3(contributions_sociales_aides_p$0){ + var + _bP_ = contributions_sociales_aides_p$2(contributions_sociales_aides_p$0); + return contributions_sociales_aides_p + (caml_call1(Law_source_Aides_logement[223], _bP_)); + } + function calcul_equivalence_loyer_minim$3(calcul_equivalence_loyer_minim$0){ + var + _bO_ = calcul_equivalence_loyer_minim$2(calcul_equivalence_loyer_minim$0); + return calcul_equivalence_loyer_minim + (caml_call1(Law_source_Aides_logement[224], _bO_)); + } + function calcul_nombre_part_logement_fo$3(calcul_nombre_part_logement_fo$0){ + var + _bN_ = calcul_nombre_part_logement_fo$2(calcul_nombre_part_logement_fo$0); + return calcul_nombre_part_logement_fo + (caml_call1(Law_source_Aides_logement[225], _bN_)); + } + function calcul_nombre_parts_accession_$3(calcul_nombre_parts_accession_$0){ + var + _bM_ = calcul_nombre_parts_accession_$2(calcul_nombre_parts_accession_$0); + return calcul_nombre_parts_accession_ + (caml_call1(Law_source_Aides_logement[226], _bM_)); + } + function ouverture_droits_retraite(ouverture_droits_retraite_in){ + var _bL_ = ouverture_droits_retraite_in_o(ouverture_droits_retraite_in); + return ouverture_droits_retraite_to_j + (caml_call1(Law_source_Aides_logement[227], _bL_)); + } + function impaye_depense_logement(impaye_depense_logement_in){ + var _bK_ = impaye_depense_logement_in_of_(impaye_depense_logement_in); + return impaye_depense_logement_to_jso + (caml_call1(Law_source_Aides_logement[228], _bK_)); + } + function base_mensuelle_allocations_fam$3(base_mensuelle_allocations_fam$0){ + var + _bJ_ = base_mensuelle_allocations_fam$2(base_mensuelle_allocations_fam$0); + return base_mensuelle_allocations_fam + (caml_call1(Law_source_Aides_logement[229], _bJ_)); + } + function verification_age_inferieur_ou_$3(verification_age_inferieur_ou_$0){ + var + _bI_ = verification_age_inferieur_ou_$2(verification_age_inferieur_ou_$0); + return verification_age_inferieur_ou_ + (caml_call1(Law_source_Aides_logement[230], _bI_)); + } + function verification_age_superieur_a(verification_age_superieur_a_i){ + var + _bH_ = verification_age_superieur_a_i$0(verification_age_superieur_a_i); + return verification_age_superieur_a_t + (caml_call1(Law_source_Aides_logement[231], _bH_)); + } + function smic(smic_in){ + var _bG_ = smic_in_of_jsoo(smic_in); + return smic_to_jsoo(caml_call1(Law_source_Aides_logement[232], _bG_)); + } + function calcul_aide_personnalisee_loge$15 + (calcul_aide_personnalisee_loge$0){ + var + _bF_ = calcul_aide_personnalisee_loge$8(calcul_aide_personnalisee_loge$0); + return calcul_aide_personnalisee_loge + (caml_call1(Law_source_Aides_logement[235], _bF_)); + } + function calcul_aide_personnalisee_loge$16(calcul_aide_personnalisee_loge){ + var + _bE_ = calcul_aide_personnalisee_loge$10(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$1 + (caml_call1(Law_source_Aides_logement[236], _bE_)); + } + function calcul_aide_personnalisee_loge$17(calcul_aide_personnalisee_loge){ + var + _bD_ = calcul_aide_personnalisee_loge$12(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$3 + (caml_call1(Law_source_Aides_logement[237], _bD_)); + } + function ressources_aides_personnelle_l$3(ressources_aides_personnelle_l$0){ + var + _bC_ = ressources_aides_personnelle_l$2(ressources_aides_personnelle_l$0); + return ressources_aides_personnelle_l + (caml_call1(Law_source_Aides_logement[238], _bC_)); + } + function eligibilite_prestations_famili$3(eligibilite_prestations_famili$0){ + var + _bB_ = eligibilite_prestations_famili$2(eligibilite_prestations_famili$0); + return eligibilite_prestations_famili + (caml_call1(Law_source_Aides_logement[239], _bB_)); + } + function calcul_allocation_logement_loc$3(calcul_allocation_logement_loc$0){ + var + _bA_ = calcul_allocation_logement_loc$2(calcul_allocation_logement_loc$0); + return calcul_allocation_logement_loc + (caml_call1(Law_source_Aides_logement[240], _bA_)); + } + function calcul_allocation_logement_foy$3(calcul_allocation_logement_foy$0){ + var + _bz_ = calcul_allocation_logement_foy$2(calcul_allocation_logement_foy$0); + return calcul_allocation_logement_foy + (caml_call1(Law_source_Aides_logement[241], _bz_)); + } + function calcul_allocation_logement_acc$3(calcul_allocation_logement_acc$0){ + var + _by_ = calcul_allocation_logement_acc$2(calcul_allocation_logement_acc$0); + return calcul_allocation_logement_acc + (caml_call1(Law_source_Aides_logement[242], _by_)); + } + function calcul_aide_personnalisee_loge$18(calcul_aide_personnalisee_loge){ + var + _bx_ = calcul_aide_personnalisee_loge$14(calcul_aide_personnalisee_loge); + return calcul_aide_personnalisee_loge$5 + (caml_call1(Law_source_Aides_logement[243], _bx_)); + } + function eligibilite_aides_personnelle_$3(eligibilite_aides_personnelle_$0){ + var + _bw_ = eligibilite_aides_personnelle_$2(eligibilite_aides_personnelle_$0); + return eligibilite_aides_personnelle_ + (caml_call1(Law_source_Aides_logement[244], _bw_)); + } + function calcul_allocation_logement(calcul_allocation_logement_in){ + var + _bv_ = calcul_allocation_logement_in_$0(calcul_allocation_logement_in); + return calcul_allocation_logement_to_ + (caml_call1(Law_source_Aides_logement[245], _bv_)); + } + function eligibilite_prime_de_demenagem$3(eligibilite_prime_de_demenagem$0){ + var + _bu_ = eligibilite_prime_de_demenagem$2(eligibilite_prime_de_demenagem$0); + return eligibilite_prime_de_demenagem + (caml_call1(Law_source_Aides_logement[246], _bu_)); + } + function eligibilite_allocation_logemen$3(eligibilite_allocation_logemen$0){ + var + _bt_ = eligibilite_allocation_logemen$2(eligibilite_allocation_logemen$0); + return eligibilite_allocation_logemen + (caml_call1(Law_source_Aides_logement[247], _bt_)); + } + function eligibilite_aide_personnalisee$3(eligibilite_aide_personnalisee$0){ + var + _bs_ = eligibilite_aide_personnalisee$2(eligibilite_aide_personnalisee$0); + return eligibilite_aide_personnalisee + (caml_call1(Law_source_Aides_logement[248], _bs_)); + } + function calculette_aides_au_logement(calculette_aides_au_logement_i){ + var + _br_ = calculette_aides_au_logement_i$0(calculette_aides_au_logement_i); + return calculette_aides_au_logement_t + (caml_call1(Law_source_Aides_logement[249], _br_)); + } + function calculette_aides_au_logement_g$3(calculette_aides_au_logement_g$0){ + var + _bq_ = calculette_aides_au_logement_g$2(calculette_aides_au_logement_g$0); + return calculette_aides_au_logement_g + (caml_call1(Law_source_Aides_logement[250], _bq_)); + } + function t1005(param){ + return caml_js_wrap_callback(calculette_aides_au_logement_g$3); + } + function t1004(param){ + return caml_js_wrap_callback(calculette_aides_au_logement); + } + function t1003(param){ + return caml_js_wrap_callback(eligibilite_aide_personnalisee$3); + } + function t1002(param){ + return caml_js_wrap_callback(eligibilite_allocation_logemen$3); + } + function t1001(param){ + return caml_js_wrap_callback(eligibilite_prime_de_demenagem$3); + } + function t1000(param){ + return caml_js_wrap_callback(calcul_allocation_logement); + } + function t999(param){ + return caml_js_wrap_callback(eligibilite_aides_personnelle_$3); + } + function t998(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$18); + } + function t997(param){ + return caml_js_wrap_callback(calcul_allocation_logement_acc$3); + } + function t996(param){ + return caml_js_wrap_callback(calcul_allocation_logement_foy$3); + } + function t995(param){ + return caml_js_wrap_callback(calcul_allocation_logement_loc$3); + } + function t994(param){ + return caml_js_wrap_callback(eligibilite_prestations_famili$3); + } + function t993(param){ + return caml_js_wrap_callback(ressources_aides_personnelle_l$3); + } + function t992(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$17); + } + function t991(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$16); + } + function t990(param){ + return caml_js_wrap_callback(calcul_aide_personnalisee_loge$15); + } + function t989(param){return caml_js_wrap_callback(smic);} + function t988(param){ + return caml_js_wrap_callback(verification_age_superieur_a); + } + function t987(param){ + return caml_js_wrap_callback(verification_age_inferieur_ou_$3); + } + function t986(param){ + return caml_js_wrap_callback(base_mensuelle_allocations_fam$3); + } + function t985(param){ + return caml_js_wrap_callback(impaye_depense_logement); + } + function t984(param){ + return caml_js_wrap_callback(ouverture_droits_retraite); + } + function t983(param){ + return caml_js_wrap_callback(calcul_nombre_parts_accession_$3); + } + function t982(param){ + return caml_js_wrap_callback(calcul_nombre_part_logement_fo$3); + } + function t981(param){ + return caml_js_wrap_callback(calcul_equivalence_loyer_minim$3); + } + function t980(param){ + return caml_js_wrap_callback(contributions_sociales_aides_p$3); + } + caml_call2 + (Js_of_ocaml_Js[50], + cst_AidesLogementLib, + {contributionsSocialesAidesPersonnelleLogement: + caml_js_wrap_meth_callback(t980), + calculEquivalenceLoyerMinimale: caml_js_wrap_meth_callback(t981), + calculNombrePartLogementFoyer: caml_js_wrap_meth_callback(t982), + calculNombrePartsAccessionPropriete: caml_js_wrap_meth_callback(t983), + ouvertureDroitsRetraite: caml_js_wrap_meth_callback(t984), + impayeDepenseLogement: caml_js_wrap_meth_callback(t985), + baseMensuelleAllocationsFamiliales: caml_js_wrap_meth_callback(t986), + verificationAgeInferieurOuEgalA: caml_js_wrap_meth_callback(t987), + verificationAgeSuperieurA: caml_js_wrap_meth_callback(t988), + smic: caml_js_wrap_meth_callback(t989), + calculAidePersonnaliseeLogementLocatif: caml_js_wrap_meth_callback(t990), + calculAidePersonnaliseeLogementFoyer: caml_js_wrap_meth_callback(t991), + calculAidePersonnaliseeLogementAccessionPropriete: + caml_js_wrap_meth_callback(t992), + ressourcesAidesPersonnelleLogement: caml_js_wrap_meth_callback(t993), + eligibilitePrestationsFamiliales: caml_js_wrap_meth_callback(t994), + calculAllocationLogementLocatif: caml_js_wrap_meth_callback(t995), + calculAllocationLogementFoyer: caml_js_wrap_meth_callback(t996), + calculAllocationLogementAccessionPropriete: + caml_js_wrap_meth_callback(t997), + calculAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t998), + eligibiliteAidesPersonnelleLogement: caml_js_wrap_meth_callback(t999), + calculAllocationLogement: caml_js_wrap_meth_callback(t1000), + eligibilitePrimeDeDemenagement: caml_js_wrap_meth_callback(t1001), + eligibiliteAllocationLogement: caml_js_wrap_meth_callback(t1002), + eligibiliteAidePersonnaliseeLogement: caml_js_wrap_meth_callback(t1003), + calculetteAidesAuLogement: caml_js_wrap_meth_callback(t1004), + calculetteAidesAuLogementGardeAlternee: + caml_js_wrap_meth_callback(t1005)}); + var + Law_source_Aides_logement_api_ = [0, type_pret_to_jsoo, type_pret_of_jsoo, @@ -139666,22 +132923,22 @@ type_aides_personnelle_logemen$0, situation_familiale_to_jsoo, situation_familiale_of_jsoo, - prise_en_charge_to_jsoo$0, - prise_en_charge_of_jsoo$0, + prise_en_charge_to_jsoo, + prise_en_charge_of_jsoo, type_logement_foyer_to_jsoo, type_logement_foyer_of_jsoo, categorie_equivalence_loyer_al, categorie_equivalence_loyer_al$0, situation_familiale_calcul_a_p, situation_familiale_calcul_a_p$0, - collectivite_to_jsoo$0, - collectivite_of_jsoo$0, + collectivite_to_jsoo, + collectivite_of_jsoo, prise_en_charge_enfant_to_jsoo, prise_en_charge_enfant_of_jsoo, - situation_obligation_scolaire_$1, - situation_obligation_scolaire_$2, - element_prestations_familiales$1, - element_prestations_familiales$2, + situation_obligation_scolaire_, + situation_obligation_scolaire_$0, + element_prestations_familiales, + element_prestations_familiales$0, convention_bailleur_social_to_, convention_bailleur_social_of_, convention_a_n_h_a_to_jsoo, @@ -139694,38 +132951,38 @@ conditions_etrangers_of_jsoo, personne_vivant_habituellement, personne_vivant_habituellement$0, + eligibilite_aide_personnalisee, eligibilite_aide_personnalisee$0, - eligibilite_aide_personnalisee$1, + eligibilite_prime_de_demenagem, eligibilite_prime_de_demenagem$0, - eligibilite_prime_de_demenagem$1, + ressources_aides_personnelle_l, ressources_aides_personnelle_l$0, - ressources_aides_personnelle_l$1, + contributions_sociales_aides_p, contributions_sociales_aides_p$0, - contributions_sociales_aides_p$1, + calcul_aide_personnalisee_loge, + calcul_aide_personnalisee_loge$0, + calcul_equivalence_loyer_minim, + calcul_equivalence_loyer_minim$0, + calcul_nombre_part_logement_fo, + calcul_nombre_part_logement_fo$0, + calcul_aide_personnalisee_loge$1, + calcul_aide_personnalisee_loge$2, + calcul_nombre_parts_accession_, + calcul_nombre_parts_accession_$0, calcul_aide_personnalisee_loge$3, calcul_aide_personnalisee_loge$4, - calcul_equivalence_loyer_minim$0, - calcul_equivalence_loyer_minim$1, - calcul_nombre_part_logement_fo$0, - calcul_nombre_part_logement_fo$1, - calcul_aide_personnalisee_loge$5, - calcul_aide_personnalisee_loge$6, - calcul_nombre_parts_accession_$0, - calcul_nombre_parts_accession_$1, - calcul_aide_personnalisee_loge$7, - calcul_aide_personnalisee_loge$8, traitement_formule_aide_finale, traitement_formule_aide_finale$0, - calcul_aide_personnalisee_loge$9, - calcul_aide_personnalisee_loge$10, + calcul_aide_personnalisee_loge$5, + calcul_aide_personnalisee_loge$6, infos_changement_logement_d842, infos_changement_logement_d842$0, + calcul_allocation_logement_loc, calcul_allocation_logement_loc$0, - calcul_allocation_logement_loc$1, + calcul_allocation_logement_acc, calcul_allocation_logement_acc$0, - calcul_allocation_logement_acc$1, + calcul_allocation_logement_foy, calcul_allocation_logement_foy$0, - calcul_allocation_logement_foy$1, calcul_allocation_logement_to_, calcul_allocation_logement_of_, ouverture_droits_retraite_to_j, @@ -139734,16 +132991,16 @@ impaye_depense_logement_of_jso, calculette_aides_au_logement_t, calculette_aides_au_logement_o, + calculette_aides_au_logement_g, calculette_aides_au_logement_g$0, - calculette_aides_au_logement_g$1, - base_mensuelle_allocations_fam$6, - base_mensuelle_allocations_fam$7, - verification_age_inferieur_ou_$6, - verification_age_inferieur_ou_$7, - verification_age_superieur_a_t$0, - verification_age_superieur_a_o$0, - smic_to_jsoo$0, - smic_of_jsoo$0, + base_mensuelle_allocations_fam, + base_mensuelle_allocations_fam$0, + verification_age_inferieur_ou_, + verification_age_inferieur_ou_$0, + verification_age_superieur_a_t, + verification_age_superieur_a_o, + smic_to_jsoo, + smic_of_jsoo, neuf_ou_ancien_to_jsoo, neuf_ou_ancien_of_jsoo, tranche_revenu_to_jsoo, @@ -139754,8 +133011,8 @@ autre_personne_a_charge_of_jso, date_naissance_troisieme_ou_de, date_naissance_troisieme_ou_de$0, + eligibilite_allocation_logemen, eligibilite_allocation_logemen$0, - eligibilite_allocation_logemen$1, pret_to_jsoo, pret_of_jsoo, logement_foyer_to_jsoo, @@ -139774,8 +133031,8 @@ informations_prime_de_demenage$0, proprietaire_to_jsoo, proprietaire_of_jsoo, + eligibilite_prestations_famili, eligibilite_prestations_famili$0, - eligibilite_prestations_famili$1, demandeur_to_jsoo, demandeur_of_jsoo, enfant_a_charge_to_jsoo, @@ -139788,44 +133045,44 @@ categorie_calcul_a_p_l_of_jsoo, mode_occupation_to_jsoo, mode_occupation_of_jsoo, + eligibilite_aides_personnelle_, eligibilite_aides_personnelle_$0, - eligibilite_aides_personnelle_$1, logement_to_jsoo, logement_of_jsoo, menage_to_jsoo, menage_of_jsoo, + eligibilite_aides_personnelle_$1, eligibilite_aides_personnelle_$2, - eligibilite_aides_personnelle_$3, + eligibilite_aide_personnalisee$1, eligibilite_aide_personnalisee$2, - eligibilite_aide_personnalisee$3, + eligibilite_allocation_logemen$1, eligibilite_allocation_logemen$2, - eligibilite_allocation_logemen$3, + eligibilite_prime_de_demenagem$1, eligibilite_prime_de_demenagem$2, - eligibilite_prime_de_demenagem$3, + ressources_aides_personnelle_l$1, ressources_aides_personnelle_l$2, - ressources_aides_personnelle_l$3, + contributions_sociales_aides_p$1, contributions_sociales_aides_p$2, - contributions_sociales_aides_p$3, + calcul_aide_personnalisee_loge$7, + calcul_aide_personnalisee_loge$8, + calcul_equivalence_loyer_minim$1, + calcul_equivalence_loyer_minim$2, + calcul_nombre_part_logement_fo$1, + calcul_nombre_part_logement_fo$2, + calcul_aide_personnalisee_loge$9, + calcul_aide_personnalisee_loge$10, + calcul_nombre_parts_accession_$1, + calcul_nombre_parts_accession_$2, calcul_aide_personnalisee_loge$11, calcul_aide_personnalisee_loge$12, - calcul_equivalence_loyer_minim$2, - calcul_equivalence_loyer_minim$3, - calcul_nombre_part_logement_fo$2, - calcul_nombre_part_logement_fo$3, calcul_aide_personnalisee_loge$13, calcul_aide_personnalisee_loge$14, - calcul_nombre_parts_accession_$2, - calcul_nombre_parts_accession_$3, - calcul_aide_personnalisee_loge$15, - calcul_aide_personnalisee_loge$16, - calcul_aide_personnalisee_loge$17, - calcul_aide_personnalisee_loge$18, + calcul_allocation_logement_loc$1, calcul_allocation_logement_loc$2, - calcul_allocation_logement_loc$3, + calcul_allocation_logement_acc$1, calcul_allocation_logement_acc$2, - calcul_allocation_logement_acc$3, + calcul_allocation_logement_foy$1, calcul_allocation_logement_foy$2, - calcul_allocation_logement_foy$3, calcul_allocation_logement_in_, calcul_allocation_logement_in_$0, ouverture_droits_retraite_in_t, @@ -139834,119 +133091,143 @@ impaye_depense_logement_in_of_, calculette_aides_au_logement_i, calculette_aides_au_logement_i$0, + calculette_aides_au_logement_g$1, calculette_aides_au_logement_g$2, - calculette_aides_au_logement_g$3, - base_mensuelle_allocations_fam$8, - base_mensuelle_allocations_fam$9, - verification_age_inferieur_ou_$8, - verification_age_inferieur_ou_$9, - verification_age_superieur_a_i$1, - verification_age_superieur_a_i$2, - smic_in_to_jsoo$0, - smic_in_of_jsoo$0, + base_mensuelle_allocations_fam$1, + base_mensuelle_allocations_fam$2, + verification_age_inferieur_ou_$1, + verification_age_inferieur_ou_$2, + verification_age_superieur_a_i, + verification_age_superieur_a_i$0, + smic_in_to_jsoo, + smic_in_of_jsoo, + eligibilite_prestations_famili$1, eligibilite_prestations_famili$2, + contributions_sociales_aides_p$3, + calcul_equivalence_loyer_minim$3, + calcul_nombre_part_logement_fo$3, + calcul_nombre_parts_accession_$3, + ouverture_droits_retraite, + impaye_depense_logement, + base_mensuelle_allocations_fam$3, + verification_age_inferieur_ou_$3, + verification_age_superieur_a, + smic, + calcul_aide_personnalisee_loge$15, + calcul_aide_personnalisee_loge$16, + calcul_aide_personnalisee_loge$17, + ressources_aides_personnelle_l$3, eligibilite_prestations_famili$3, - contributions_sociales_aides_p$4, - calcul_equivalence_loyer_minim$4, - calcul_nombre_part_logement_fo$4, - calcul_nombre_parts_accession_$4, - ouverture_droits_retraite$0, - impaye_depense_logement$0, - base_mensuelle_allocations_fam$10, - verification_age_inferieur_ou_$10, - verification_age_superieur_a$2, - smic$2, - calcul_aide_personnalisee_loge$19, - calcul_aide_personnalisee_loge$20, - calcul_aide_personnalisee_loge$21, - ressources_aides_personnelle_l$4, - eligibilite_prestations_famili$4, - calcul_allocation_logement_loc$4, - calcul_allocation_logement_foy$4, - calcul_allocation_logement_acc$4, - calcul_aide_personnalisee_loge$22, - eligibilite_aides_personnelle_$4, - calcul_allocation_logement$0, - eligibilite_prime_de_demenagem$4, - eligibilite_allocation_logemen$4, - eligibilite_aide_personnalisee$4, - calculette_aides_au_logement$0, - calculette_aides_au_logement_g$4]; - caml_register_global - (9737, - Law_source_Aides_logement_api_, - "Law_source__Aides_logement_api_web"); - return} + calcul_allocation_logement_loc$3, + calcul_allocation_logement_foy$3, + calcul_allocation_logement_acc$3, + calcul_aide_personnalisee_loge$18, + eligibilite_aides_personnelle_$3, + calcul_allocation_logement, + eligibilite_prime_de_demenagem$3, + eligibilite_allocation_logemen$3, + eligibilite_aide_personnalisee$3, + calculette_aides_au_logement, + calculette_aides_au_logement_g$3]; + runtime.caml_register_global + (1745, + Law_source_Aides_logement_api_, + "Law_source__Aides_logement_api_web"); + return; + } (globalThis)); -//# 1 ".api_web.eobjs/byte/dune__exe__Api_web.cmo.js" +//# 1 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 + +//# 6 ".api_web.eobjs/jsoo/dune__exe__Api_web.cmo.js" (function - (globalThis) - {"use strict"; - var - runtime=globalThis.jsoo_runtime, - caml_js_wrap_callback=runtime.caml_js_wrap_callback, - caml_js_wrap_meth_callback=runtime.caml_js_wrap_meth_callback; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - var - global_data=runtime.caml_get_global_data(), - Law_source_Allocations_familia= + (globalThis){ + "use strict"; + var + runtime = globalThis.jsoo_runtime, + caml_js_wrap_callback = runtime.caml_js_wrap_callback, + caml_js_wrap_meth_callback = runtime.caml_js_wrap_meth_callback; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Law_source_Allocations_familia = global_data.Law_source__Allocations_familiales_api_web, - Runtime_jsoo_Runtime=global_data.Runtime_jsoo__Runtime, - Law_source_Aides_logement_api_= + Runtime_jsoo_Runtime = global_data.Runtime_jsoo__Runtime, + Law_source_Aides_logement_api_ = global_data.Law_source__Aides_logement_api_web; - global_data.CamlinternalOO; - var Js_of_ocaml_Js=global_data.Js_of_ocaml__Js; - function t4(param) - {return caml_js_wrap_callback - (function(calculette_aides_au_logement_g) - {function _b_(param) - {var - t1= - caml_call1 - (Law_source_Aides_logement_api_[248], - calculette_aides_au_logement_g); - return t1.aideFinale} - return caml_call1(Runtime_jsoo_Runtime[6],_b_)})} - function t3(param) - {return caml_js_wrap_callback - (function(interface_allocations_familial) - {function _a_(param) - {var - t0= - caml_call1 - (Law_source_Allocations_familia[61], - interface_allocations_familial); - return t0.iMontantVerse} - return caml_call1(Runtime_jsoo_Runtime[6],_a_)})} - caml_call1 - (Js_of_ocaml_Js[51], - {"eventsManager":Runtime_jsoo_Runtime[1], - "computeAllocationsFamiliales":caml_js_wrap_meth_callback(t3), - "computeAidesAuLogement":caml_js_wrap_meth_callback(t4)}); - var Dune_exe_Api_web=[0]; - runtime.caml_register_global(12,Dune_exe_Api_web,"Dune__exe__Api_web"); - return} + global_data.CamlinternalOO; + var Js_of_ocaml_Js = global_data.Js_of_ocaml__Js; + function t4(param){ + return caml_js_wrap_callback + (function(calculette_aides_au_logement_g){ + function _b_(param){ + var + result = + caml_call1 + (Law_source_Aides_logement_api_[248], + calculette_aides_au_logement_g); + return result.aideFinale; + } + return caml_call1(Runtime_jsoo_Runtime[6], _b_); + }); + } + function t3(param){ + return caml_js_wrap_callback + (function(interface_allocations_familial){ + function _a_(param){ + var + result = + caml_call1 + (Law_source_Allocations_familia[61], + interface_allocations_familial); + return result.iMontantVerse; + } + return caml_call1(Runtime_jsoo_Runtime[6], _a_); + }); + } + var t2 = Runtime_jsoo_Runtime[1]; + caml_call1 + (Js_of_ocaml_Js[51], + {eventsManager: t2, + computeAllocationsFamiliales: caml_js_wrap_meth_callback(t3), + computeAidesAuLogement: caml_js_wrap_meth_callback(t4)}); + var Dune_exe_Api_web = [0]; + runtime.caml_register_global(12, Dune_exe_Api_web, "Dune__exe__Api_web"); + return; + } (globalThis)); -//# 1 "../../.js/stdlib/std_exit.cmo.js" +//# 1 "../../.js/default/stdlib/std_exit.cmo.js" // Generated by js_of_ocaml +//# buildInfo:effects=false, kind=cmo, use-js-string=true, version=5.1.1 + +//# 6 "../../.js/default/stdlib/std_exit.cmo.js" (function - (globalThis) - {"use strict"; - var runtime=globalThis.jsoo_runtime; - function caml_call1(f,a0) - {return f.length == 1?f(a0):runtime.caml_call_gen(f,[a0])} - var global_data=runtime.caml_get_global_data(),Stdlib=global_data.Stdlib; - caml_call1(Stdlib[103],0); - var Std_exit=[0]; - runtime.caml_register_global(1,Std_exit,"Std_exit"); - return} + (globalThis){ + "use strict"; + var runtime = globalThis.jsoo_runtime; + function caml_call1(f, a0){ + return (f.l >= 0 ? f.l : f.l = f.length) == 1 + ? f(a0) + : runtime.caml_call_gen(f, [a0]); + } + var + global_data = runtime.caml_get_global_data(), + Stdlib = global_data.Stdlib; + caml_call1(Stdlib[103], 0); + var Std_exit = [0]; + runtime.caml_register_global(1, Std_exit, "Std_exit"); + return; + } (globalThis)); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbIk9iamVjdCIsImdsb2JhbFRoaXMiLCJ0aGlzIiwiZ2V0IiwiX1RfIiwiZ2xvYmFsIiwic2VsZiIsImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInhoaSIsImgiLCJzaWduIiwib2Zmc2V0IiwibW9kdWx1cyIsImRpdmlzb3IiLCJxdW90aWVudCIsInkiLCJxIiwiY2FtbF9pbnQ2NF9vZl9pbnQzMiIsImNhbWxfaW50NjRfdG9faW50MzIiLCJjYW1sX2ludDY0X2lzX25lZ2F0aXZlIiwiY2FtbF9pbnQ2NF9uZWciLCJjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMiLCJhIiwiaSIsImxlbiIsImYiLCJTdHJpbmciLCJudWxsIiwiY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyIsImNhbWxfanNieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3dpdGhfYXJnIiwiYXJnIiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJ0IiwiYyIsImMxIiwiYzIiLCJ2IiwiaiIsIk1sQnl0ZXMiLCJjb250ZW50cyIsImxlbmd0aCIsImNvbnRlbnQiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwiY2FtbF9maW5pc2hfZm9ybWF0dGluZyIsInJhd2J1ZmZlciIsImJ1ZmZlciIsImNhbWxfaW50NjRfZm9ybWF0Iiwid2Jhc2UiLCJjdnRibCIsInAiLCJjYW1sX2V4cG0xX2Zsb2F0IiwiY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0IiwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmciLCJmc19ub2RlX3N1cHBvcnRlZCIsIm1ha2VfcGF0aF9pc19hYnNvbHV0ZSIsInBvc2l4IiwicGF0aCIsIndpbjMyIiwic3BsaXREZXZpY2VSZSIsInJlc3VsdCIsImRldmljZSIsImlzVW5jIiwiQm9vbGVhbiIsInJvb3QiLCJzZXAiLCJwYXRoX2lzX2Fic29sdXRlIiwiY2FtbF90cmFpbGluZ19zbGFzaCIsIm5hbWUiLCJjYW1sX2N1cnJlbnRfZGlyIiwiY2FtbF9tYWtlX3BhdGgiLCJjb21wMCIsImNvbXAiLCJuY29tcCIsImNhbWxfdXRmOF9vZl91dGYxNiIsImQiLCJjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nIiwiY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmciLCJ1bml4X2Vycm9yIiwibWFrZV91bml4X2Vycl9hcmdzIiwiY29kZSIsInN5c2NhbGwiLCJlcnJubyIsInZhcmlhbnQiLCJhcmdzIiwiY2FtbF9uYW1lZF92YWx1ZXMiLCJjYW1sX25hbWVkX3ZhbHVlIiwibm0iLCJjYW1sX3JhaXNlX3dpdGhfYXJncyIsImNhbWxfaXNfbWxfYnl0ZXMiLCJjYW1sX2lzX21sX3N0cmluZyIsImNhbWxfYnl0ZXNfb2ZfYXJyYXkiLCJVaW50OEFycmF5IiwiY2FtbF9ieXRlc19vZl9zdHJpbmciLCJjYW1sX3JhaXNlX3N5c19lcnJvciIsImNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlIiwiY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IiwiY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyIsImNhbWxfY3JlYXRlX2J5dGVzIiwiY2FtbF9tbF9ieXRlc19sZW5ndGgiLCJjYW1sX2JsaXRfYnl0ZXMiLCJzMSIsImkxIiwiczIiLCJpMiIsIk1sRmlsZSIsIk1sRmFrZUZpbGUiLCJvbGQiLCJidWYiLCJwb3MiLCJjbGVuIiwibmV3X3N0ciIsIm9sZF9kYXRhIiwiZGF0YSIsIk1sRmFrZUZkIiwiZmlsZSIsImZsYWdzIiwidW5kZWZpbmVkIiwiTWxGYWtlRGV2aWNlIiwicmVzIiwiU3ltYm9sIiwibmFtZV9zbGFzaCIsIm1vZGUiLCJyYWlzZV91bml4IiwicGFyZW50IiwiUmVnRXhwIiwic2VlbiIsIm0iLCJlbnRyeSIsIm9rIiwiQXJyYXkiLCJieXRlcyIsImNhbWxfbWxfc3RyaW5nX2xlbmd0aCIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQiLCJjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyIsImNhbWxfYnl0ZXNfYm91bmRfZXJyb3IiLCJjYW1sX2J5dGVzX3Vuc2FmZV9zZXQiLCJjYW1sX2J5dGVzX3NldCIsIk1sTm9kZUZkIiwiZmQiLCJyZXF1aXJlIiwiZXJyIiwiYnVmX29mZnNldCIsInJlYWQiLCJNbE5vZGVEZXZpY2UiLCJjb25zdHMiLCJrZXkiLCJpc0NoYXJhY3RlckRldmljZSIsIm8iLCJqc19zdGF0cyIsInRvX2RpciIsInRhcmdldCIsImxpbmsiLCJmaWxlX2tpbmQiLCJjYW1sX2dldF9yb290IiwiY2FtbF9mYWlsd2l0aCIsImNhbWxfcm9vdCIsImpzb29fbW91bnRfcG9pbnQiLCJyZXNvbHZlX2ZzX2RldmljZSIsImNhbWxfc3lzX2lzX2RpcmVjdG9yeSIsImNhbWxfcmFpc2Vfbm90X2ZvdW5kIiwiY2FtbF9zeXNfZ2V0ZW52IiwicHJvY2VzcyIsInNoaWZ0X3JpZ2h0X25hdCIsIm5hdDEiLCJvZnMxIiwibGVuMSIsIm5hdDIiLCJvZnMyIiwibmJpdHMiLCJ3cmFwIiwiY2FtbF9ncl9zdGF0ZSIsImNhbWxfZ3Jfc3RhdGVfZ2V0IiwiY2FtbF9ncl9wb2ludF9jb2xvciIsImltIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsIkVycm9yIiwiY29tcGFyaXNvbiIsInFTaWduIiwibW9kIiwibVNpZ24iLCJfMCIsIl8xIiwiXzIiLCJleHAiLCJJbmZpbml0eSIsImlzQmFzaWNQcmltZSIsIm1pbGxlclJhYmluVGVzdCIsIm5QcmV2Iiwic3RyaWN0IiwiaXNQcmltZSIsImJpdHMiLCJsb2dOIiwiaXRlcmF0aW9ucyIsIm5ld1QiLCJuZXdSIiwibGFzdFQiLCJsYXN0UiIsInBvd2Vyc09mVHdvIiwicG93ZXJzMkxlbmd0aCIsImhpZ2hlc3RQb3dlcjIiLCJzaGlmdF9pc1NtYWxsIiwicmVtUXVvIiwiYml0d2lzZSIsImZuIiwieFNpZ24iLCJ5U2lnbiIsInhSZW0iLCJ5UmVtIiwieERpZ2l0IiwieURpZ2l0IiwieERpdk1vZCIsInlEaXZNb2QiLCJMT0JNQVNLX0kiLCJMT0JNQVNLX0JJIiwicm91Z2hMT0IiLCJpbnRlZ2VyTG9nYXJpdGhtIiwidG1wIiwiZSIsIm1heCIsIm1pbiIsImdjZCIsImxjbSIsInJhbmRCZXR3ZWVuIiwibG93IiwiaGlnaCIsInJhbmdlIiwiZGlnaXRzIiwidG9CYXNlIiwicmVzdHJpY3RlZCIsInRvcCIsImRpZ2l0IiwidGV4dCIsImFic0Jhc2UiLCJhbHBoYWJldFZhbHVlcyIsImlzTmVnYXRpdmUiLCJzdGFydCIsInBhcnNlQmFzZUZyb21BcnJheSIsInZhbCIsInBvdyIsInN0cmluZ2lmeSIsIm5lZyIsIk51bWJlciIsIm91dCIsImxlZnQiLCJkaXZtb2QiLCJ0b0Jhc2VTdHJpbmciLCJ6ZXJvcyIsInBhcnNlSW50IiwicGFyc2VTdHJpbmdWYWx1ZSIsInNwbGl0IiwiZGVjaW1hbFBsYWNlIiwiaXNWYWxpZCIsInBhcnNlTnVtYmVyVmFsdWUiLCJtbF96X25vcm1hbGl6ZSIsIm1sX3pfcG93IiwiejEiLCJtbF96X3Jvb3QiLCJ6IiwiemVybyIsIm9uZSIsImVuZCIsImFucyIsInR3byIsIm1pZCIsInBvIiwibWxfel9yb290cmVtIiwiY2FtbF9tbF9jb25kaXRpb25fbmV3IiwiY2FtbF9pbnQ2NF9vZl9ieXRlcyIsImNhbWxfYmFfdWludDhfZ2V0NjQiLCJiYSIsImkwIiwib2ZzIiwiYjEiLCJiMiIsImIzIiwiYjQiLCJiNSIsImI2IiwiYjciLCJiOCIsImNhbWxfaW50NjRfdG9fYnl0ZXMiLCJjYW1sX2ludDY0X21hcnNoYWwiLCJ3cml0ZXIiLCJzaXplcyIsImNhbWxfYmFfbnVtX2RpbXMiLCJjYW1sX3JldHVybl9leG5fY29uc3RhbnQiLCJjYW1sX3dyYXBfZXhjZXB0aW9uIiwiY2FtbF9jcmVhdGVfZmlsZSIsImpzb29fY3JlYXRlX2ZpbGUiLCJjYW1sX2ZzX2luaXQiLCJjYW1sX2dldF9jb250aW51YXRpb25fY2FsbHN0YWNrIiwiY2FtbF9wYXJzZXJfdHJhY2UiLCJjYW1sX3NldF9wYXJzZXJfdHJhY2UiLCJvbGRmbGFnIiwiY2FtbF9saXN0X29mX2pzX2FycmF5IiwiY2FtbF9tdWwiLCJjYW1sX2hhc2hfbWl4X2ludCIsIm51bV9kaWdpdHNfbmF0IiwibmF0IiwiY2FtbF9oYXNoX25hdCIsImNhbWxfY2FsbF9nZW4iLCJhcmdzTGVuIiwiZXh0cmFfYXJncyIsImFyZ3VtZW50cyIsIm5hcmdzIiwiY2FtbF9jYWxsYmFjayIsImNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3N5c19jaGRpciIsImRpciIsImNhbWxfb2JqX3RhZyIsIkZ1bmN0aW9uIiwiY2FtbF9vYmpfdXBkYXRlX3RhZyIsImNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbl8iLCJjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW4iLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcmNpbmciLCJmaWVsZDAiLCJjYW1sX2djX2NvdW50ZXJzIiwibWxfel9kaXYiLCJ6MiIsIm1sX3pfc2lnbiIsIm1sX3pfYWRkIiwibWxfel9jZGl2IiwiejFfcG9zIiwiejJfcG9zIiwiY2FtbF9ncl9zeW5jaHJvbml6ZSIsImNhbWxfdW5peF9jbG9zZWRpciIsImRpcl9oYW5kbGUiLCJjYW1sX3VuaXhfb3BlbmRpciIsImNhbWxfdW5peF9yZXdpbmRkaXIiLCJuZXdfZGlyX2hhbmRsZSIsImNhbWxfcmFpc2VfZW5kX29mX2ZpbGUiLCJjYW1sX3VuaXhfcmVhZGRpciIsImNhbWxfdW5peF9maW5kZmlyc3QiLCJwYXRoX2pzIiwiZmlyc3RfZW50cnkiLCJjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWciLCJsb2cyX29rIiwianNvb19mbG9vcl9sb2cyIiwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0IiwiZmxvYXQzMmEiLCJGbG9hdDMyQXJyYXkiLCJpbnQzMmEiLCJJbnQzMkFycmF5IiwiY2FtbF9pbnQ2NF9jcmVhdGVfbG9fbWlfaGkiLCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQiLCJrIiwicjMiLCJyMiIsInIxIiwiY2FtbF9iYV9zZXJpYWxpemUiLCJzeiIsImNvbXBsZXgiLCJjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50Iiwia2luZCIsImNhbWxfYmFfY3JlYXRlX2J1ZmZlciIsInNpemUiLCJ2aWV3IiwiRmxvYXQ2NEFycmF5IiwiSW50OEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzIiwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzIiwiTmFOIiwiY2FtbF9iYV9nZXRfc2l6ZSIsImRpbXMiLCJuX2RpbXMiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSIsImNhbWxfaW50NjRfaGkzMiIsImNhbWxfaW50NjRfbG8zMiIsImNhbWxfYmFfY3VzdG9tX25hbWUiLCJNbF9CaWdhcnJheSIsImxheW91dCIsInJlIiwidG90YWwiLCJrMSIsImsyIiwiTWxfQmlnYXJyYXlfY18xXzEiLCJjYW1sX2JhX2NyZWF0ZV91bnNhZmUiLCJzaXplX3Blcl9lbGVtZW50IiwiY2FtbF9iYV9kZXNlcmlhbGl6ZSIsInJlYWRlciIsIm51bV9kaW1zIiwic2l6ZV9kaW0iLCJzaXplX2RpbV9oaSIsInNpemVfZGltX2xvIiwic2l4dHkiLCJpbnQ2NCIsImNhbWxfYmFfY29tcGFyZSIsImNhbWxfaGFzaF9taXhfaW50NjQiLCJjYW1sX2hhc2hfbWl4X2Zsb2F0IiwidjAiLCJjYW1sX2JhX2hhc2giLCJudW1fZWx0cyIsInciLCJjYW1sX2ludDMyX3VubWFyc2hhbCIsImNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCIsImNhbWxfaW50NjRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF9jb21wYXJlIiwiY2FtbF9pbnQ2NF9oYXNoIiwiY2FtbF9jdXN0b21fb3BzIiwiY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tIiwiY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tIiwibnVtIiwiY3VzdG9tIiwic3dhcCIsImNhbWxfY29tcGFyZV92YWxfdGFnIiwiY2FtbF9pbnRfY29tcGFyZSIsImNhbWxfYnl0ZXNfY29tcGFyZSIsImNhbWxfc3RyaW5nX2NvbXBhcmUiLCJjYW1sX2NvbXBhcmVfdmFsIiwic3RhY2siLCJ0YWdfYSIsInRhZ19iIiwiY2FtbF9ncmVhdGVydGhhbiIsImRpdl9oZWxwZXIiLCJkaXZfZGlnaXRfbmF0IiwibmF0cSIsIm9mc3EiLCJuYXRyIiwib2ZzciIsInJlbSIsIm51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdCIsInNoaWZ0X2xlZnRfbmF0IiwiTWxOYXQiLCJjcmVhdGVfbmF0Iiwic2V0X3RvX3plcm9fbmF0IiwiaW5jcl9uYXQiLCJjYXJyeV9pbiIsImFkZF9uYXQiLCJsZW4yIiwibmF0X29mX2FycmF5IiwibXVsdF9kaWdpdF9uYXQiLCJuYXQzIiwib2ZzMyIsIngxIiwieDIiLCJ4MyIsImRlY3JfbmF0Iiwic3ViX25hdCIsImNvbXBhcmVfbmF0IiwiZGl2X25hdCIsInF1byIsImNhbWxfYmFfYmxpdCIsInNyYyIsImRzdCIsImlzX2RpZ2l0X2ludCIsImNhbWxfaW50NjRfZGl2IiwiY2FtbF9qc19odG1sX2VudGl0aWVzIiwiZW50aXR5IiwidGVtcCIsImRvY3VtZW50IiwiY2FtbF9zdHJpbmdfdW5zYWZlX3NldCIsImNhbWxfaW50NjRfb2ZfZmxvYXQiLCJjYW1sX21sX2NoYW5uZWxfc2l6ZV82NCIsImNhbWxfYmFfc2V0XzIiLCJtbF96X29mX2ludDY0IiwiaTY0IiwibWxfel9rcm9uZWNrZXIiLCJjYW1sX2FyZ3YiLCJtYWluIiwiYXJndiIsImFyZ3MyIiwiY2FtbF9leGVjdXRhYmxlX25hbWUiLCJjYW1sX2pzX2V2YWxfc3RyaW5nIiwiZXZhbCIsInNlcmlhbGl6ZV9uYXQiLCJjYW1sX21lbXByb2Zfc2V0IiwiX2NvbnRyb2wiLCJtbF96X25lZyIsImNhbWxfc3lzX2V4aXQiLCJjYW1sX2NoYW5uZWxfZGVzY3JpcHRvciIsImNhbWxfanNfZnJvbV9hcnJheSIsImNhbWxfYmFfcmVzaGFwZSIsInZpbmQiLCJuZXdfZGltIiwiY2FtbF9vb19sYXN0X2lkIiwiY2FtbF9zZXRfb29faWQiLCJjYW1sX2dyX2ZpbGxfcmVjdCIsImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhIiwic3RyMSIsInBvczEiLCJiYTIiLCJwb3MyIiwic2xpY2UiLCJjYW1sX2dyX3NldF93aW5kb3dfdGl0bGUiLCJqc25hbWUiLCJjYW1sX2dldF9nbG9iYWxfZGF0YSIsImNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQiLCJjYW1sX2JhX3VpbnQ4X2dldDE2IiwibWxfel9vZl9pbnQzMiIsImNhbWxfY29tcGFyZSIsImNhbWxfTUQ1VHJhbnNmb3JtIiwieHgiLCJmZiIsImdnIiwiaGgiLCJpaSIsImNhbWxfTUQ1VXBkYXRlIiwiY3R4IiwiaW5wdXQiLCJpbnB1dF9sZW4iLCJpbl9idWYiLCJpbnB1dF9wb3MiLCJtaXNzaW5nIiwiY2FtbF9mcmVzaF9vb19pZCIsImNhbWxfaW50NjRfdG9fZmxvYXQiLCJjYW1sX2JhX2dldF8xIiwiY2FtbF9iaWdzdHJpbmdfbWVtY21wIiwiY2FtbF9uZXdfc3RyaW5nIiwiY2FtbF9lcmZfZmxvYXQiLCJhMSIsImEyIiwiYTMiLCJhNCIsImE1IiwiY2FtbF9iYV91aW50OF9nZXQzMiIsImNhbWxfcmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJtbF96X3NoaWZ0X3JpZ2h0IiwiYW10IiwiY2FtbF9zdHJfaW5pdGlhbGl6ZSIsImNhbWxfb2JqX2Jsb2NrIiwiY2FtbF9ncl9jbGVhcl9ncmFwaCIsImJpZ3N0cmluZ190b19hcnJheV9idWZmZXIiLCJicyIsImNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQiLCJfdW5pdCIsImx4b3JfZGlnaXRfbmF0IiwiY2FtbF9vYmpfYWRkX29mZnNldCIsImNhbWxfZmluYWxfcmVsZWFzZSIsImNhbWxfanNfdG9fYXJyYXkiLCJtbF96X2xvZ29yIiwiY2FtbF9ncl9wbG90IiwiY29sb3IiLCJjYW1sX2J5dGVzX3NldDE2IiwiaTE2IiwiY2FtbF9zdHJpbmdfc2V0MTYiLCJjYW1sX2J5dGVzX3NldDY0IiwiY2FtbF9pbnQ2NF9ic3dhcCIsIm1sX3pfZml0c19pbnQiLCJtbF96X2ZpdHNfaW50MzIiLCJjYW1sX2djX21ham9yIiwibWxfel9zaGlmdF9sZWZ0IiwiY2FtbF9sZXhfYXJyYXkiLCJjYW1sX2xleF9lbmdpbmUiLCJ0YmwiLCJzdGFydF9zdGF0ZSIsImxleGJ1ZiIsImxleF9idWZmZXIiLCJsZXhfYnVmZmVyX2xlbiIsImxleF9zdGFydF9wb3MiLCJsZXhfY3Vycl9wb3MiLCJsZXhfbGFzdF9wb3MiLCJsZXhfbGFzdF9hY3Rpb24iLCJsZXhfZW9mX3JlYWNoZWQiLCJsZXhfYmFzZSIsImxleF9iYWNrdHJrIiwibGV4X2RlZmF1bHQiLCJsZXhfdHJhbnMiLCJsZXhfY2hlY2siLCJzdGF0ZSIsImJhY2t0cmsiLCJjYW1sX3N5c19maWxlX2V4aXN0cyIsImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2FycmF5X3N1YiIsImNhbWxfYnl0ZXNfZXF1YWwiLCJjYW1sX2dyX3NpemVfeCIsImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMiLCJjYW1sX2F0b21pY19mZXRjaF9hZGQiLCJyZWYiLCJvc190eXBlIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiIsImNhbWxfY29zaF9mbG9hdCIsIk1sTXV0ZXgiLCJjYW1sX21sX211dGV4X25ldyIsImNhbWxfZXBoZV9rZXlfb2Zmc2V0IiwiY2FtbF9lcGhlX2NoZWNrX2tleSIsIndlYWsiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwibWxfel9wb3Bjb3VudCIsImNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfbGVzc2VxdWFsIiwiY2FtbF9hY29zaF9mbG9hdCIsImNhbWxfTUQ1SW5pdCIsIkFycmF5QnVmZmVyIiwiYjMyIiwiVWludDMyQXJyYXkiLCJjYW1sX21sX2ZsdXNoIiwiY2FtbF9zZWVrX291dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfdW5peF9pc2F0dHkiLCJmaWxlRGVzY3JpcHRvciIsInR0eSIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF9lcGhlX2dldF9rZXkiLCJjYW1sX3VuaXhfbG9jYWx0aW1lIiwiRGF0ZSIsImRfbnVtIiwiamFudWFyeWZpcnN0IiwiZG95IiwiamFuIiwianVsIiwic3RkVGltZXpvbmVPZmZzZXQiLCJjYW1sX3VuaXhfbWt0aW1lIiwidG0iLCJ0bTIiLCJqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UiLCJiYyIsIm1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhIiwiY2FtbF9zeXNfZmRzIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZSIsImV4biIsImZvcmNlIiwiY2FtbF9hdG9taWNfZXhjaGFuZ2UiLCJjYW1sX3N5c19pc2F0dHkiLCJfY2hhbiIsImlzX2RpZ2l0X3plcm8iLCJjYW1sX3VuaXhfbHN0YXQiLCJjYW1sX3VuaXhfbHN0YXRfNjQiLCJjYW1sX2pzX3NldCIsIm1sX3pfZ2NkZXh0X2ludGVybiIsImxhc3R4IiwibGFzdHkiLCJtbF96X3Rlc3RiaXQiLCJjYW1sX2FycmF5X2dldCIsImFycmF5IiwiaW5kZXgiLCJjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGMiLCJjb250IiwiY2FtbF91bml4X3JtZGlyIiwiY2FtbF9sb2cyX2Zsb2F0IiwiY2FtbF9nY19odWdlX2ZhbGxiYWNrX2NvdW50IiwibWxfel9jb25ncnVlbnQiLCJjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSIsImNhbWxfaW50NjRfc3ViIiwiY2FtbF9zZWVrX2luIiwiY2FtbF9tbF9zZWVrX2luXzY0IiwiY2FtbF9kb21haW5faWQiLCJjYW1sX21sX211dGV4X3VubG9jayIsImNhbWxfZG9tYWluX2xhdGVzdF9pZHgiLCJjYW1sX2RvbWFpbl9zcGF3biIsIm11dGV4IiwiaWQiLCJjYW1sX3VuaXhfbWtkaXIiLCJwZXJtIiwiY2FtbF9pbnQ2NF9zaGlmdF9sZWZ0IiwiY2FtbF9ub3RlcXVhbCIsIm1sX3pfYWJzIiwiY2FtbF9zeXNfY29uc3RfaW50X3NpemUiLCJjYW1sX2pzX3dyYXBfY2FsbGJhY2siLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFjayIsImNhbWxfaXNfanMiLCJjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmQiLCJjYW1sX2JhX2RpbSIsImNhbWxfYmFfZGltXzEiLCJtbF96X3NxcnQiLCJjYW1sX2pzX21ldGhfY2FsbCIsIm1sX3pfbHVjbnVtIiwiY2FtbF9lcGhlX2RhdGFfb2Zmc2V0IiwiY2FtbF93ZWFrX2NyZWF0ZSIsImNhbWxfZXBoZV9jcmVhdGUiLCJjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIiwibWxfel9wcm9iYWJfcHJpbWUiLCJjYW1sX3RyYW1wb2xpbmUiLCJjYW1sX21heWJlX3ByaW50X3N0YXRzIiwiY2FtbF9ieXRlc19nZXQ2NCIsImNhbWxfdW5peF9oYXNfc3ltbGluayIsIm1sX3pfcmVtIiwiY2FtbF9lcGhlX3NldF9rZXkiLCJjYW1sX2VwaGVfdW5zZXRfa2V5IiwiY291bnQiLCJjYW1sX3dlYWtfc2V0IiwiY2FtbF9zeXNfcmVtb3ZlIiwiY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IiLCJjYW1sX3N0cmluZ19nZXQzMiIsImNhbWxfYnl0ZXNfZ2V0IiwiY2FtbF9oeXBvdF9mbG9hdCIsIm1sX3pfZmFjTSIsImN1cnJlbnQiLCJjYW1sX2pzX2NhbGwiLCJjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIiwiY2FtbF91bml4X2luZXRfYWRkcl9vZl9zdHJpbmciLCJtbF96X211bF9vdmVyZmxvd3MiLCJtbF96X3RvX2ludCIsImNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyIiwiY2FtbF9oYXNoX21peF9qc2J5dGVzIiwiY2FtbF9tbF9ieXRlc19jb250ZW50IiwiY2FtbF9oYXNoX21peF9ieXRlcyIsImNhbWxfYnl0ZXNfbGVzc3RoYW4iLCJjYW1sX2VyZmNfZmxvYXQiLCJjYW1sX2dyX2ZpbGxfcG9seSIsImFyIiwiY2FtbF9nY19xdWlja19zdGF0IiwibWxfel9mYWMiLCJjYW1sX21sX2lucHV0X2NoYXIiLCJjYW1sX21sX2lucHV0X2ludCIsImNhbWxfZ3JfZGlzcGxheV9tb2RlIiwibWxfel9kaXZpc2libGUiLCJjYW1sX29ial9yZWFjaGFibGVfd29yZHMiLCJudGhfZGlnaXRfbmF0IiwiY2FtbF9hcnJheV9ibGl0IiwiY2FtbF9mbG9hdF9vZl9zdHJpbmciLCJtMyIsIm1hbnRpc3NhIiwiZXhwb25lbnQiLCJjYW1sX3N5c19nZXRjd2QiLCJjYW1sX2ludDY0X2FkZCIsImNhbWxfaW50NjRfbXVsIiwiY2FtbF9pbnQ2NF91bHQiLCJjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UiLCJjYW1sX3BhcnNlX2RpZ2l0IiwiY2FtbF9pbnQ2NF9vZl9zdHJpbmciLCJiYXNlNjQiLCJ0aHJlc2hvbGQiLCJjYW1sX2JhX3NldF8xIiwiY2FtbF9pbnQ2NF94b3IiLCJjYW1sX2ludDY0X29yIiwiY2FtbF9seG1fbmV4dCIsInNoaWZ0X2wiLCJzaGlmdF9yIiwib3IiLCJ4b3IiLCJtdWwiLCJyb3RsIiwic2V0IiwiTSIsImRhYmEiLCJxMCIsInExIiwic3QiLCJ4MCIsImNhbWxfc3lzX2NvbnN0X2JpZ19lbmRpYW4iLCJjYW1sX2xpc3RfdG9fanNfYXJyYXkiLCJjYW1sX2xlZ2FjeV9jdXN0b21fY29kZSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ncl9vcGVuX3N1YndpbmRvdyIsImNhbWxfbWFyc2hhbF9kYXRhX3NpemUiLCJnZXQzMiIsIk1sU3RyaW5nUmVhZGVyIiwiY2FtbF9mbG9hdF9vZl9ieXRlcyIsImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIiLCJfbWFnaWMiLCJfYmxvY2tfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9ieXRlc19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19sZXNzZXF1YWwiLCJjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWwiLCJjYW1sX25leHRhZnRlcl9mbG9hdCIsImNhbWxfZ3Jfc2l6ZV95IiwibWxfel9mYWMyIiwiY2FtbF9wb3NfaW4iLCJjYW1sX21sX3Bvc19pbiIsImNhbWxfaW50NjRfYW5kIiwiY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplIiwibWxfel9iaW4iLCJjb2VmZiIsImNhbWxfdW5peF91bmxpbmsiLCJjYW1sX3N5c19vcGVuX2Zvcl9ub2RlIiwiZnMiLCJmZDIiLCJNbEZha2VGZF9vdXQiLCJjYW1sX3N5c19vcGVuX2ludGVybmFsIiwiaWR4IiwiY2FtbF9zeXNfb3BlbiIsIl9wZXJtcyIsIm1sX3pfZ2NkIiwibWxfel9tdWwiLCJtbF96X2hhbWRpc3QiLCJjYW1sX3N0cmluZ19nZXQiLCJyZV9tYXRjaCIsInJlX3dvcmRfbGV0dGVycyIsIm9wY29kZXMiLCJpc193b3JkX2xldHRlciIsImluX2JpdHNldCIsInJlX21hdGNoX2ltcGwiLCJwYXJ0aWFsIiwicHJvZyIsImNwb29sIiwibm9ybXRhYmxlIiwibnVtZ3JvdXBzIiwibnVtcmVnaXN0ZXJzIiwic3RhcnRjaGFycyIsInBjIiwicXVpdCIsImdyb3VwcyIsInJlX3JlZ2lzdGVyIiwiYmFja3RyYWNrIiwiaXRlbSIsInB1c2giLCJhY2NlcHQiLCJnIiwicHJlZml4X21hdGNoIiwib3AiLCJzYXJnIiwidWFyZyIsImdyb3VwIiwicmVfc2VhcmNoX2JhY2t3YXJkIiwibWxfel9sb2dhbmQiLCJjYW1sX2pzX2Zyb21fc3RyaW5nIiwiY2FtbF9iYV9zdWIiLCJjaGFuZ2VkX2RpbSIsIm5ld19kaW1zIiwibmV3X2RhdGEiLCJjYW1sX2djX2Z1bGxfbWFqb3IiLCJjYW1sX21sX211dGV4X3RyeV9sb2NrIiwiY2FtbF9ieXRlc19zZXQzMiIsImkzMiIsImNhbWxfZ3Jfc2lnaW9fc2lnbmFsIiwiY2FtbF9iYV91aW50OF9zZXQzMiIsIm1sX3pfZGl2X3JlbSIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4IiwiY2FtbF91bml4X2dtdGltZSIsImNhbWxfc2lnbmJpdF9mbG9hdCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfZ3JfY3VycmVudF94IiwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5IiwidGEiLCJjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkiLCJjYW1sX21sX3NlZWtfb3V0IiwiY2FtbF9qc190eXBlb2YiLCJjYW1sX2hhc2hfbWl4X3N0cmluZyIsImNhbWxfc3RyaW5nX2hhc2giLCJjYW1sX3Jlc3RvcmVfcmF3X2JhY2t0cmFjZSIsImJ0IiwiY2FtbF9ncl9saW5ldG8iLCJjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5IiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlIiwiY2FtbF9iYV9kaW1fMyIsImNhbWxfaXNfc3BlY2lhbF9leGNlcHRpb24iLCJjYW1sX2Zvcm1hdF9leGNlcHRpb24iLCJidWNrZXQiLCJjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbiIsImhhbmRsZXIiLCJhdF9leGl0IiwiY2FtbF9lcGhlX2NoZWNrX2RhdGEiLCJjYW1sX2J5dGVzX2dldDE2IiwiY2FtbF9vYmpfbWFrZV9mb3J3YXJkIiwiY2FtbF9qc19mcm9tX2Jvb2wiLCJjYW1sX21sX3NldF9jaGFubmVsX25hbWUiLCJjYW1sX2V4cDJfZmxvYXQiLCJjYW1sX2dyX2Nsb3NlX2dyYXBoIiwiY2FtbF9tbF9kb21haW5fY3B1X3JlbGF4IiwiY2FtbF9jcmVhdGVfc3RyaW5nIiwiY2FtbF9tbF9pbnB1dF9ibG9jayIsImF2YWlsIiwiY2FtbF9tZDVfY2hhbiIsInRvcmVhZCIsImNhbWxfYXRhbmhfZmxvYXQiLCJjYW1sX21sX2NvbmRpdGlvbl9zaWduYWwiLCJjYW1sX3VuaXhfZmluZG5leHQiLCJjYW1sX21sX291dHB1dF9ieXRlcyIsImNhbWxfbWxfb3V0cHV0IiwiY2FtbF9tbF9kb21haW5faWQiLCJjYW1sX2VwaGVfZ2V0X2RhdGEiLCJjYW1sX3htbGh0dHByZXF1ZXN0X2NyZWF0ZSIsImNhbWxfdHJhbXBvbGluZV9yZXR1cm4iLCJjYW1sX21sX2lzX2J1ZmZlcmVkIiwiY2FtbF9hcnJheV9hcHBlbmQiLCJjYW1sX3VuaXhfZ2V0dGltZW9mZGF5IiwiY2FtbF91bml4X3RpbWUiLCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbCIsIm1sX3pfbmV4dHByaW1lIiwiY2FtbF9maWxsX2J5dGVzIiwiY2FtbF9qc19leHByIiwiY2FtbF9tbF9ydW50aW1lX3dhcm5pbmdzX2VuYWJsZWQiLCJtbF96X3N1YiIsIm1sX3pfZmRpdiIsIm1sX3pfdG9fYml0cyIsImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzIiwiY2FtbF9ldmVudGxvZ19yZXN1bWUiLCJjYW1sX21kNV9zdHJpbmciLCJjYW1sX3N0cmluZ19lcXVhbCIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmciLCJtbF96X2RpdmV4YWN0IiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnVmZmVyIiwicmVfcmVwbGFjZW1lbnRfdGV4dCIsInJlcGwiLCJvcmlnIiwiY3VyIiwiY2FtbF9wdXJlX2pzX2V4cHIiLCJjYW1sX2JsaXRfc3RyaW5nIiwiYmxpdF9uYXQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzIiwiYmExIiwiYnl0ZXMyIiwiY2FtbF91bml4X3N0YXQiLCJjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlIiwianNvb19jcmVhdGVfZmlsZV9leHRlcm4iLCJjYW1sX3VuaXhfc3RhdF82NCIsImNhbWxfdG9fanNfc3RyaW5nIiwiY2FtbF9tbF9tdXRleF9sb2NrIiwicmVfc2VhcmNoX2ZvcndhcmQiLCJjYW1sX2JsaXRfc3RyaW5nX3RvX2JpZ3N0cmluZyIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfemFyaXRoX21hcnNoYWwiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfZXBoZV9zZXRfZGF0YSIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfYXJyYXlfb2ZfYnl0ZXMiLCJjYW1sX2VxdWFsIiwicmVfcGFydGlhbF9tYXRjaCIsImNhbWxfc3lzX3JhbmRvbV9zZWVkIiwiYnVmZiIsIm5vdyIsImFsbF9maW5hbGl6ZXJzIiwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSIsImNiIiwiY2FtbF9iYV9nZXRfMiIsImNhbWxfYmFfdWludDhfc2V0MTYiLCJjYW1sX2xhenlfcmVzZXRfdG9fbGF6eSIsImNhbWxfanNfZGVsZXRlIiwiY2FtbF9pbnRfb2Zfc3RyaW5nIiwiY2FtbF9saXN0X21vdW50X3BvaW50IiwicHJldiIsImNhbWxfbWFyc2hhbF9jb25zdGFudHMiLCJjYW1sX29ial9yYXdfZmllbGQiLCJjYW1sX2pzX2VxdWFscyIsImNhbWxfb2JqX2NvbXBhcmVfYW5kX3N3YXAiLCJiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkiLCJtbF96X2ZpdHNfbmF0aXZlaW50IiwiY2FtbF9ncl9hcmNfYXV4IiwiY3giLCJjeSIsInJ5IiwicngiLCJyb3QiLCJ4UG9zIiwieVBvcyIsInhQb3NfcHJldiIsInlQb3NfcHJldiIsInNwYWNlIiwiZGVsdGEiLCJjYW1sX2dyX2ZpbGxfYXJjIiwiY2FtbF9iYV9zbGljZSIsIm51bV9pbmRzIiwic3ViX2RpbXMiLCJtbF96X29mX25hdGl2ZWludCIsImNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2tpbmQiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfY29uc3RfYmFja2VuZF90eXBlIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImFiIiwiY2FtbF9tb2QiLCJjYW1sX2JhX2luaXQiLCJjYW1sX3VuaXhfZmlsZWRlc2NyX29mX2ZkIiwicmVfc3RyaW5nX21hdGNoIiwiQmlnU3RyaW5nUmVhZGVyIiwiY2FtbF9ncl9kdW1wX2ltYWdlIiwiY2FtbF9iYV9nZXRfZ2VuZXJpYyIsImNhbWxfdW5peF9zdGFydHVwIiwiY2FtbF9nZXRfZXhjZXB0aW9uX2JhY2t0cmFjZSIsImNhbWxfZm9ybWF0X2Zsb2F0IiwidG9GaXhlZCIsImRwIiwicHJlYyIsImNhbWxfbW91bnRfYXV0b2xvYWQiLCJtbF96X2VxdWFsIiwibWxfel9maXRzX2ludDY0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9iYV90b19iYSIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fYmlnc3RyaW5nIiwibWxfel9zcXJ0X3JlbSIsImRpZmYiLCJjYW1sX3N0cmluZ19sZXNzdGhhbiIsImNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuIiwiY2FtbF9kaXYiLCJjYW1sX29ial9kdXAiLCJjYW1sX2VwaGVfZ2V0X2RhdGFfY29weSIsImNhbWxfbWVtcHJvZl9zdGFydCIsInJhdGUiLCJzdGFja19zaXplIiwidHJhY2tlciIsIm1sX3pfcGVyZmVjdF9zcXVhcmUiLCJjYW1sX3N5c19nZXRfYXJndiIsImNhbWxfbWxfZG9tYWluX3NldF9uYW1lIiwiX25hbWUiLCJjYW1sX2pzX3RvX2Jvb2wiLCJjYW1sX2dyX2NyZWF0ZV9pbWFnZSIsImNhbWxfZXBoZV9nZXRfa2V5X2NvcHkiLCJjYW1sX2xlc3N0aGFuIiwiY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCIsIm1sX3pfdG9fbmF0aXZlaW50IiwiY2FtbF9yZWdpc3Rlcl9nbG9iYWwiLCJuYW1lX29wdCIsIm11bHRfbmF0IiwibGVuMyIsInNxdWFyZV9uYXQiLCJjYW1sX2pzX2Zyb21fZmxvYXQiLCJjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlIiwiY2FtbF9nY19zdGF0IiwiY2FtbF9nZXRfbWFqb3JfY3JlZGl0IiwiY2FtbF9zeXNfbW9kaWZ5X2FyZ3YiLCJjYW1sX21ldGhvZF9jYWNoZSIsImNhbWxfZ2V0X3B1YmxpY19tZXRob2QiLCJvYmoiLCJjYWNoZWlkIiwibWV0aHMiLCJsaSIsImNhbWxfanNfZ2V0X2NvbnNvbGUiLCJjYW1sX3N5c191bnNhZmVfZ2V0ZW52IiwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW4iLCJyZWZpbGwiLCJjaGFubmVsIiwiYmlnc3RyaW5nX29mX3R5cGVkX2FycmF5IiwiY2FtbF9yb3VuZF9mbG9hdCIsIm1sX3pfb2ZfYml0cyIsImJhc2UxIiwiY2FtbF9vanNfbmV3X2FyciIsIkYiLCJjb21wbGVtZW50X25hdCIsIm1sX3pfbG9neG9yIiwiY2FtbF9kb21haW5fZGxzIiwiY2FtbF9kb21haW5fZGxzX3NldCIsImNhbWxfbGF6eV9yZWFkX3Jlc3VsdCIsImNhbWxfanNfcmVnZXhwcyIsImNhbWxfanNfaHRtbF9lc2NhcGUiLCJjYW1sX2JhX2RpbV8yIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIiwiY2FtbF9zaW5oX2Zsb2F0IiwiY2FtbF9sZGV4cF9mbG9hdCIsImNhbWxfZ3Jfc3RhdGVfc2V0IiwiY2FtbF96YXJpdGhfdW5tYXJzaGFsIiwibmVnYXRlIiwibWxfel90cmFpbGluZ196ZXJvcyIsImNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QiLCJhcml0eSIsImNhbWxfZ2NfbWlub3Jfd29yZHMiLCJjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFjayIsImxhbmRfZGlnaXRfbmF0IiwiY2FtbF9pbnQ2NF9tb2QiLCJjYW1sX29ial9zZXRfdGFnIiwiY2FtbF9pbnQzMl9ic3dhcCIsImNhbWxfYmFfc2V0XzMiLCJtbF96X2phY29iaSIsIm4xIiwibWxfel9sZWdlbmRyZSIsImNhbWxfanNfaW5zdGFuY2VvZiIsImNhbWxfZ2V0X21ham9yX2J1Y2tldCIsImNhbWxfYmxpdF9iaWdzdHJpbmdfdG9fc3RyaW5nIiwic2V0X2RpZ2l0X25hdF9uYXRpdmUiLCJudGhfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX2dyX2RyYXdfc3RyIiwiZHgiLCJjYW1sX2dyX2RyYXdfc3RyaW5nIiwibWxfel9wcmltb3JpYWwiLCJjYW1sX2dyX2RyYXdfY2hhciIsImNhbWxfdW5tb3VudCIsIm1sX3pfZmliIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyIsImNhbWxfbWxfcG9zX2luXzY0IiwiY2FtbF9ncl9kcmF3X2ltYWdlIiwiaW1hZ2UiLCJjYW1sX3JlZ2lzdGVyX2NoYW5uZWxfZm9yX3NwYWNldGltZSIsIl9jaGFubmVsIiwiY2FtbF9zdHJpbmdfc2V0IiwiY2FtbF9zeXNfcm1kaXIiLCJjYW1sX3VuaXhfc3ltbGluayIsInNyY19yb290IiwiZHN0X3Jvb3QiLCJjYW1sX21sX3Bvc19vdXQiLCJjYW1sX3NwYWNldGltZV9lbmFibGVkIiwiY2FtbF9ieXRlc19ub3RlcXVhbCIsImNhbWxfcnVudGltZV9wYXJhbWV0ZXJzIiwiY2FtbF9qc19vYmplY3QiLCJjYW1sX2JhX2NyZWF0ZSIsImRpbXNfbWwiLCJjYW1sX2dyX3JlbWVtYmVyX21vZGUiLCJjYW1sX2ZtYV9mbG9hdCIsIlNQTElUIiwiTUlOX1ZBTFVFIiwiRVBTSUxPTiIsIkMiLCJBIiwiQiIsIm11bHRpcGx5IiwiYXQiLCJhaGkiLCJhbG8iLCJiaGkiLCJibG8iLCJhZGp1c3QiLCJzY2FsZSIsInhzIiwieXMiLCJ6cyIsInh5IiwidSIsImNhbWxfcmVjb21tZW5kZWRfZG9tYWluX2NvdW50IiwiY2FtbF9ic3dhcDE2IiwiY2FtbF9tbF9zZXRfYmluYXJ5X21vZGUiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyIiwiY2FtbF9ncl9kcmF3X3JlY3QiLCJjYW1sX3N0cmluZ19nZXQxNiIsImNhbWxfb3V0cHV0X3ZhbHVlIiwiY2FtbF9iYV9nZXRfMyIsImNhbWxfZXBoZV9ibGl0X2tleSIsIm1sX3pfdG9faW50MzIiLCJjYW1sX2luaXRpYWxfdGltZSIsImNhbWxfc3lzX3RpbWUiLCJjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW4iLCJjYW1sX2NoZWNrX2JvdW5kIiwiY2FtbF91bml4X2dldHB3dWlkIiwibWxfel9jb21wYXJlIiwiY2FtbF9oYXNoIiwibGltaXQiLCJzZWVkIiwicXVldWUiLCJyZCIsIndyIiwiY2FtbF9iYV90b190eXBlZF9hcnJheSIsImNhbWxfZG9tYWluX2Rsc19nZXQiLCJjYW1sX2J5dGVzX2dldDMyIiwiY2FtbF9mcmV4cF9mbG9hdCIsIm1sX3pfcHJlZCIsImNhbWxfc3RyaW5nX2dldDY0IiwiY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uIiwiY2FtbF9tbF9wb3Nfb3V0XzY0IiwibWxfel9leHRyYWN0IiwibWxfel9yZW1vdmUiLCJtbF96X29mX2Zsb2F0IiwiZjEiLCJtbF96X2xvZ25vdCIsImNhbWxfdW5peF9maW5kY2xvc2UiLCJjYW1sX2dyX2Nsb3NlX3N1YndpbmRvdyIsImNhbWxfZmxvYXRhcnJheV9ibGl0IiwiY2FtbF9nZXRfbWlub3JfZnJlZSIsImNhbWxfc2V0X3N0YXRpY19lbnYiLCJjYW1sX2JhX2NoYW5nZV9sYXlvdXQiLCJjYW1sX2pzX25ldyIsImNhbWxfZ3JfY3VycmVudF95IiwiY2FtbF9mb3JtYXRfaW50IiwianNvb19lZmZlY3Rfbm90X3N1cHBvcnRlZCIsImNhbWxfY29udGludWF0aW9uX3VzZV9hbmRfdXBkYXRlX2hhbmRsZXJfbm9leGMiLCJodmFsIiwiaGV4biIsImhlZmYiLCJjYW1sX29ial90cnVuY2F0ZSIsImNhbWxfanNfdG9fc3RyaW5nIiwiaXNfZGlnaXRfb2RkIiwiY2FtbF9ydW50aW1lX3ZhcmlhbnQiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9vdXQiLCJidWZmZXJlZCIsImNhbWxfYXJyYXlfY29uY2F0IiwiY2FtbF9ncl9vcGVuX2dyYXBoIiwiaW5mbyIsInNwZWNzIiwic3RhdHVzIiwid2luIiwiZG9jIiwidGl0bGUiLCJib2R5IiwiY2FtbF9tYWtlX2Zsb2F0X3ZlY3QiLCJjYW1sX2NicnRfZmxvYXQiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX2dyZWF0ZXJlcXVhbCIsIm1sX3pfbnVtYml0cyIsInVwcGVyQm91bmQiLCJjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSIsImNhbWxfbG9nMXBfZmxvYXQiLCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkIiwibG9yX2RpZ2l0X25hdCIsImNhbWxfZ3JfYmxpdF9pbWFnZSIsImltMiIsImNhbWxfZ3Jfd2luZG93X2lkIiwiY2FtbF9qc19vbl9pZSIsInVhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCIsImNhbWxfYmFfbGF5b3V0IiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJjYW1sX2FycmF5X3NldCIsIm5ld3ZhbCIsImNhbWxfYWxsb2Nfc3RhY2siLCJodiIsImh4IiwiaGYiLCJjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbCIsIm1sX3pfcGVyZmVjdF9wb3dlciIsImxvZzJ6IiwienAiLCJzZXRfZGlnaXRfbmF0IiwibWxfel9pbml0IiwiY2FtbF9ncl9kb2Nfb2Zfc3RhdGUiLCJjYW1sX21sX291dHB1dF9pbnQiLCJjYW1sX29ial93aXRoX3RhZyIsImNhbWxfbWxfY2hhbm5lbF9zaXplIiwiY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2hleHN0cmluZ19vZl9mbG9hdCIsInN0eWxlIiwiZXhwX3NpZ24iLCJzaWduX3N0ciIsImNzdCIsInhfc3RyIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0IiwibWxfel9mb3JtYXQiLCJjYXMiLCJ3aWR0aCIsImFsdCIsInBhZCIsInByZWZpeCIsInByZSIsIm1sX3pfdG9faW50NjQiLCJtYXNrIiwibWxfel9zaXplIiwiY2FtbF91bml4X3JlYWRsaW5rIiwiY2FtbF9iYWNrdHJhY2Vfc3RhdHVzIiwiY2FtbF9zeXNfYXJndiIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfYmFfZmlsbCIsImNhbWxfbW9kZl9mbG9hdCIsImNhbWxfZ2NfZ2V0IiwiY2FtbF9mbG9hdF9jb21wYXJlIiwibWxfel9zaGlmdF9yaWdodF90cnVuYyIsImNhbWxfc3RyaW5nX3NldDMyIiwiY2FtbF9wYXJzZV9lbmdpbmUiLCJ0YWJsZXMiLCJlbnYiLCJFUlJDT0RFIiwibG9vcCIsInRlc3RzaGlmdCIsInNoaWZ0X3JlY292ZXIiLCJyZWR1Y2UiLCJSRUFEX1RPS0VOIiwiUkFJU0VfUEFSU0VfRVJST1IiLCJHUk9XX1NUQUNLU18xIiwiR1JPV19TVEFDS1NfMiIsIkNPTVBVVEVfU0VNQU5USUNfQUNUSU9OIiwiQ0FMTF9FUlJPUl9GVU5DVElPTiIsImVudl9zX3N0YWNrIiwiZW52X3Zfc3RhY2siLCJlbnZfc3ltYl9zdGFydF9zdGFjayIsImVudl9zeW1iX2VuZF9zdGFjayIsImVudl9zdGFja3NpemUiLCJlbnZfc3RhY2tiYXNlIiwiZW52X2N1cnJfY2hhciIsImVudl9sdmFsIiwiZW52X3N5bWJfc3RhcnQiLCJlbnZfc3ltYl9lbmQiLCJlbnZfYXNwIiwiZW52X3J1bGVfbGVuIiwiZW52X3J1bGVfbnVtYmVyIiwiZW52X3NwIiwiZW52X3N0YXRlIiwiZW52X2VycmZsYWciLCJ0YmxfdHJhbnNsX2NvbnN0IiwidGJsX3RyYW5zbF9ibG9jayIsInRibF9saHMiLCJ0YmxfbGVuIiwidGJsX2RlZnJlZCIsInRibF9kZ290byIsInRibF9zaW5kZXgiLCJ0YmxfcmluZGV4IiwidGJsX2dpbmRleCIsInRibF90YWJsZXNpemUiLCJ0YmxfdGFibGUiLCJ0YmxfY2hlY2siLCJ0YmxfbmFtZXNfY29uc3QiLCJ0YmxfbmFtZXNfYmxvY2siLCJsb2ciLCJ0b2tlbl9uYW1lIiwibmFtZXMiLCJwcmludF90b2tlbiIsInRvayIsInRva2VuIiwibjIiLCJzdGF0ZTEiLCJzcCIsImVycmZsYWciLCJhc3AiLCJjYW1sX2pzb29fZmxhZ3NfZWZmZWN0cyIsImNhbWxfdXBkYXRlX2R1bW15IiwiY2FtbF9hcnJheV9maWxsIiwiY2FtbF9zeXNfbWtkaXIiLCJjYW1sX3N0cmluZ19ub3RlcXVhbCIsImNhbWxfYnl0ZXNfZ3JlYXRlcnRoYW4iLCJjYW1sX2dyX21ha2VfaW1hZ2UiLCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dCIsImNhbWxfcmVhZF9maWxlX2NvbnRlbnQiLCJjYW1sX2pzX3RvX2Zsb2F0IiwiY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsIm9yaWdpbiIsImV2ZW50IiwiZXJyX25vX3ByZWQiLCJlcnJfbm9fc3VjYyIsInplcm8kMiIsIm9uZSQyIiwibWludXNfb25lJDIiLCJtaW5faW50JDIiLCJtYXhfaW50JDIiLCJkdW1teV9wb3MiLCJ6ZXJvX3BvcyIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImxvY2ZtdCIsIm51bGwkMCIsImN1cnJlbnRfZGlyX25hbWUiLCJwYXJlbnRfZGlyX25hbWUiLCJkaXJfc2VwIiwicXVvdGVxdW90ZSIsIm51bGwkMSIsImN1cnJlbnRfZGlyX25hbWUkMCIsInBhcmVudF9kaXJfbmFtZSQwIiwiZGlyX3NlcCQwIiwibnVsbCQyIiwiY3VycmVudF9kaXJfbmFtZSQxIiwicGFyZW50X2Rpcl9uYW1lJDEiLCJkaXJfc2VwJDEiLCJ6ZXJvJDQiLCJvbmUkNCIsImkiLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJ2IiwiciIsImN1ciIsInNlZW4iLCJuIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb24iLCJtYXhfaW50IiwibWluX2ludCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkkMCIsInRvX3N0cmluZyIsIm9mX3N0cmluZ19vcHQiLCJhcHBlbmQiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX2dlbiIsIm1vZGUiLCJwZXJtIiwibmFtZSIsImMiLCJvcGVuX3RleHQiLCJvcGVuX2JpbiIsImZsdXNoX2FsbCIsIml0ZXIiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZSIsImNsb3NlX25vZXJyIiwib3Blbl9nZW4kMCIsIm9wZW5fdGV4dCQwIiwib3Blbl9iaW4kMCIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsImFjY3UiLCJiZWciLCJhY2N1JDAiLCJyZXMiLCJjbG9zZV9ub2VyciQwIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wiLCJzdHIyIiwic3RyMSIsImV4aXRfZnVuY3Rpb24iLCJhdF9leGl0IiwiZl95ZXRfdG9fcnVuIiwib2xkX2V4aXQiLCJuZXdfZXhpdCQwIiwibmV3X2V4aXQiLCJzdWNjZXNzIiwiZG9fYXRfZXhpdCIsImV4aXQiLCJyZXRjb2RlIiwic2V0X2JpbmFyeV9tb2RlIiwiY2xvc2UkMCIsImluX2NoYW5uZWxfbGVuZ3RoIiwicG9zX2luIiwic2Vla19pbiIsImlucHV0X3ZhbHVlIiwiaW5wdXRfYmluYXJ5X2ludCIsImlucHV0X2J5dGUiLCJpbnB1dF9jaGFyIiwic2V0X2JpbmFyeV9tb2RlJDAiLCJvdXRfY2hhbm5lbF9sZW5ndGgiLCJwb3Nfb3V0Iiwic2Vla19vdXQiLCJvdXRwdXRfYmluYXJ5X2ludCIsIm91dHB1dF9ieXRlIiwib3V0cHV0X2NoYXIiLCJmbHVzaCIsImxlZnQiLCJyaWdodCIsImlzX2xlZnQiLCJpc19yaWdodCIsImZpbmRfbGVmdCIsImZpbmRfcmlnaHQiLCJtYXBfbGVmdCIsImUiLCJtYXBfcmlnaHQiLCJtYXAiLCJ2JDAiLCJmb2xkIiwiZXF1YWwiLCJlMSIsImUyIiwidjIiLCJ2MiQwIiwiY29tcGFyZSIsIm1hdGNoJDEiLCJpc19ibG9jayIsImRvdWJsZV9maWVsZCIsInNldF9kb3VibGVfZmllbGQiLCJmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3IiLCJsYXN0X25vbl9jb25zdGFudF9jb25zdHJ1Y3Rvcl8iLCJsYXp5X3RhZyIsImNsb3N1cmVfdGFnIiwib2JqZWN0X3RhZyIsImluZml4X3RhZyIsImZvcndhcmRfdGFnIiwibm9fc2Nhbl90YWciLCJhYnN0cmFjdF90YWciLCJzdHJpbmdfdGFnIiwiZG91YmxlX3RhZyIsImRvdWJsZV9hcnJheV90YWciLCJjdXN0b21fdGFnIiwiaW50X3RhZyIsIm91dF9vZl9oZWFwX3RhZyIsInVuYWxpZ25lZF90YWciLCJpbmZvIiwib2JqIiwic3RhcnRfZW52Iiwib2ZfdmFsIiwic2xvdCIsImlkIiwiZXh0ZW5zaW9uX2NvbnN0cnVjdG9yIiwiZXh0ZW5zaW9uX25hbWUiLCJleHRlbnNpb25faWQiLCJtYXhfZXBoZV9sZW5ndGgiLCJjcmVhdGUiLCJsZW5ndGgiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCIsIm8iLCJtc2ciLCJnZXRfa2V5IiwiZ2V0X2tleV9jb3B5Iiwic2V0X2tleSIsInVuc2V0X2tleSIsImNoZWNrX2tleSIsImJsaXRfa2V5IiwibzEiLCJvMiIsInJhaXNlX3VuZGVmaW5lZCIsImZvcmNlX2xhenlfYmxvY2siLCJibGsiLCJjbG9zdXJlIiwicmVzdWx0IiwiZm9yY2VfdmFsX2xhenlfYmxvY2siLCJmb3JjZSIsImx6diIsInQiLCJmb3JjZV92YWwiLCJ0b19sYXp5IiwiZnJvbV92YWwiLCJpc192YWwiLCJtYXAkMCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQkMCIsInNlcTEiLCJzZXEyIiwibWFwJDEiLCJzZXEiLCJmaWx0ZXJfbWFwIiwic2VxJDAiLCJmaWx0ZXIiLCJjb25jYXQiLCJmbGF0X21hcCIsImZvbGRfbGVmdCIsImFjYyIsImFjYyQwIiwiYWNjJDEiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJsZW5ndGgkMCIsInhzJDEiLCJpdGVyaSIsImZvbGRfbGVmdGkiLCJhY2N1JDEiLCJmb3JfYWxsIiwicCIsImV4aXN0cyIsImZpbmQiLCJmaW5kX21hcCIsIml0ZXIyIiwieXMiLCJ5cyQwIiwieXMkMSIsImZvbGRfbGVmdDIiLCJmb3JfYWxsMiIsImV4aXN0czIiLCJlcXVhbCQwIiwiZXEiLCJjb21wYXJlJDAiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwiZmFpbHVyZSIsIm1lbW9pemUiLCJvbmNlIiwiYWN0aW9uIiwiemlwIiwibWFwMiIsImludGVybGVhdmUiLCJzb3J0ZWRfbWVyZ2UxIiwic29ydGVkX21lcmdlIiwibWFwX2ZzdCIsInh5cyIsInh5cyQwIiwibWFwX3NuZCIsInVuemlwIiwiZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIiwiZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCIsInoiLCJwYXJ0aXRpb25fbWFwIiwicGFydGl0aW9uIiwicGVlbCIsInhzcyIsInRyYW5zcG9zZSIsInRhaWxzIiwiaGVhZHMiLCJyZW1haW5kZXJzIiwieHNzJDAiLCJ0YWlscyQwIiwiaGVhZHMkMCIsIm1hcF9wcm9kdWN0IiwicHJvZHVjdCIsIm9mX2Rpc3BlbnNlciIsIml0IiwidG9fZGlzcGVuc2VyIiwiaW50cyIsIm5vbmUiLCJzb21lIiwidmFsdWUiLCJkZWZhdWx0JDAiLCJnZXQkMCIsImJpbmQiLCJqb2luIiwibWFwJDIiLCJmb2xkJDAiLCJpdGVyJDAiLCJpc19ub25lIiwiaXNfc29tZSIsImVxdWFsJDEiLCJvMCIsInYxIiwidjAiLCJjb21wYXJlJDEiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsInZhbHVlJDAiLCJnZXRfb2siLCJnZXRfZXJyb3IiLCJiaW5kJDAiLCJqb2luJDAiLCJtYXAkMyIsIm1hcF9lcnJvciIsImZvbGQkMSIsIml0ZXIkMSIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwiZXF1YWwkMiIsInIwIiwicjEiLCJjb21wYXJlJDIiLCJ0b19vcHRpb24iLCJ0b19saXN0JDAiLCJ0b19zZXEkMCIsImVxdWFsJDMiLCJjb21wYXJlJDMiLCJ0b19mbG9hdCIsInRvX3N0cmluZyQwIiwiZXNjYXBlZCIsImxvd2VyY2FzZSIsInVwcGVyY2FzZSIsImxvd2VyY2FzZV9hc2NpaSIsInVwcGVyY2FzZV9hc2NpaSIsImNvbXBhcmUkNCIsImMxIiwiYzIiLCJlcXVhbCQ0IiwibWluJDAiLCJtYXgkMCIsImxvX2JvdW5kIiwiaGlfYm91bmQiLCJib20iLCJyZXAiLCJzdWNjIiwicHJlZCIsImlzX3ZhbGlkIiwib2ZfaW50IiwiaXNfY2hhciIsIm9mX2NoYXIiLCJ0b19jaGFyIiwidW5zYWZlX3RvX2NoYXIiLCJlcXVhbCQ1IiwiY29tcGFyZSQ1IiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsImRlY19pbnZhbGlkIiwidXRmXzhfYnl0ZV9sZW5ndGgiLCJ1dGZfMTZfYnl0ZV9sZW5ndGgiLCJsZW5ndGgkMSIsInBhcmFtJDAiLCJjb25zJDAiLCJudGgiLCJsJDAiLCJsJDEiLCJudGhfb3B0IiwicmV2X2FwcGVuZCIsImwxJDAiLCJsMiQwIiwibDEkMSIsImwyJDEiLCJyZXYiLCJpbml0X2F1eCQwIiwicGFyYW0iLCJhMiIsImExIiwicGFpciIsIngkMCIsInJ5IiwicngiLCJ0MiIsImgyIiwidDEiLCJoMSIsInNvcnQiLCJ4MiIsIngxIiwidGwkMSIsIngzIiwieDIkMCIsIngxJDAiLCJuMSIsIm4yIiwicmV2X3NvcnQiLCJ0bCQwIiwiYyQwIiwiYyQxIiwiYyQyIiwiYyQzIiwiYyQ0IiwiYyQ1IiwiYyQ2IiwiYWNjdSQyIiwiYXV4IiwidGFpbCIsImRpcmVjdCIsImRlcHRoIiwiemVybyIsIm9uZSIsIm1pbnVzX29uZSIsImFicyQwIiwibWF4X2ludCQwIiwibWluX2ludCQwIiwibG9nbm90IiwiZXF1YWwkNyIsImNvbXBhcmUkNyIsIm1pbiQxIiwibWF4JDEiLCJ0b19zdHJpbmckMSIsInN5bWJvbCQwIiwiZHN0b2ZmIiwic3Jjb2ZmIiwiY3B5bGVuIiwib2ZzMSIsIm9mczIiLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJpc19zcGFjZSIsImFwcGx5MSIsInByZWZpeCIsImxlbl9zIiwibGVuX3ByZSIsInN1ZmZpeCIsImxlbl9zdWYiLCJkaWZmIiwiaW5kZXhfcmVjIiwibGltIiwiaSQxIiwiaW5kZXhfcmVjX29wdCIsInJpbmRleF9yZWMiLCJyaW5kZXhfcmVjX29wdCIsIm5ld19sZW4iLCJuZXdfYnVmIiwiZ2V0JDEiLCJzZXQkMCIsImRlY19yZXQiLCJub3RfaW5feDgwX3RvX3hCRiIsIm5vdF9pbl94QTBfdG9feEJGIiwibm90X2luX3g4MF90b194OUYiLCJub3RfaW5feDkwX3RvX3hCRiIsIm5vdF9pbl94ODBfdG9feDhGIiwidXRmXzhfdWNoYXJfMyIsImIwIiwiYjEiLCJiMiIsInV0Zl84X3VjaGFyXzQiLCJiMyIsImkkNCIsImIxJDEiLCJpJDUiLCJiMiQxIiwiaSQ2IiwiaSQxMCIsImIxJDMiLCJpJDExIiwiYjIkMyIsImkkMTIiLCJiMyQxIiwiaSQ3IiwiYjEkMiIsImkkOCIsImIyJDIiLCJpJDkiLCJiMyQwIiwiaSQxMyIsImIxJDQiLCJpJDE0IiwiYjIkNCIsImkkMiIsImIxJDAiLCJpJDMiLCJiMiQwIiwiaSQxNSIsImIxJDUiLCJzZXQiLCJsYXN0JDEiLCJsYXN0JDAiLCJsYXN0IiwibGFzdCQzIiwibGFzdCQyIiwibGFzdCQ0IiwibGFzdCQ1IiwiaGkiLCJsbyIsImlzX3NwYWNlJDAiLCJpbmRleF9yZWMkMCIsImluZGV4X3JlY19vcHQkMCIsInJpbmRleF9yZWMkMCIsInJpbmRleF9yZWNfb3B0JDAiLCJnIiwiZXF1YWwkMTAiLCJjb21wYXJlJDEwIiwidG9fc3RyaW5nJDIiLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJwYXJhbSQxIiwiaGQkMCIsImlucHV0X2FycmF5IiwiZWx0Iiwib3V0cHV0X2FycmF5IiwiZWx0JDAiLCJhY2MkMiIsImEwIiwiYmkiLCJhaSIsIm5hIiwibmIiLCJtYXhzb24iLCJpMzEiLCJ0cmlja2xlZG93biIsInRyaWNrbGUiLCJidWJibGVkb3duIiwiYnViYmxlIiwiZSQwIiwiZmF0aGVyIiwibWVyZ2UiLCJzcmMxb2ZzIiwic3JjMWxlbiIsInNyYzIiLCJzcmMyb2ZzIiwic3JjMmxlbiIsImRzdG9mcyIsInNyYzFyIiwic3JjMnIiLCJzMiQxIiwiczEkMSIsImkxIiwiaTIiLCJpMiQwIiwiZCQwIiwiczIkMCIsImkxJDAiLCJkJDEiLCJzMSQwIiwiaXNvcnR0byIsInNyY29mcyIsInNvcnR0byIsInplcm8kMCIsIm9uZSQwIiwibWludXNfb25lJDAiLCJpc19maW5pdGUiLCJpc19pbmZpbml0ZSIsImlzX25hbiIsInBpIiwiaXNfaW50ZWdlciIsInN1Y2MkMCIsInByZWQkMCIsImVxdWFsJDExIiwibWluJDIiLCJtYXgkMiIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwiaGFzaCQwIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsIm1ha2UkMiIsImluaXQkNCIsImFwcGVuZCQyIiwiY29uY2F0JDMiLCJobGVuIiwic3ViJDIiLCJjb3B5JDIiLCJmaWxsJDEiLCJibGl0JDIiLCJzcmMiLCJzb2ZzIiwiZG9mcyIsInRvX2xpc3QkMiIsIm9mX2xpc3QkMCIsImgiLCJpdGVyJDYiLCJpdGVyMiQyIiwibWFwJDgiLCJtYXAyJDIiLCJpdGVyaSQ0IiwibWFwaSQ0IiwiZm9sZF9sZWZ0JDQiLCJmb2xkX3JpZ2h0JDMiLCJleGlzdHMkNCIsImZvcl9hbGwkNCIsIm1lbSQxIiwibWVtX2llZWUiLCJzb3J0JDAiLCJzdGFibGVfc29ydCIsInRvX3NlcSQ1IiwidG9fc2VxaSQyIiwib2Zfc2VxJDMiLCJtYXBfdG9fYXJyYXkiLCJtYXBfZnJvbV9hcnJheSIsInplcm8kMSIsIm9uZSQxIiwibWludXNfb25lJDEiLCJzdWNjJDEiLCJwcmVkJDEiLCJhYnMkMSIsIm1pbl9pbnQkMSIsIm1heF9pbnQkMSIsImxvZ25vdCQwIiwidW5zaWduZWRfdG9faW50IiwidG9fc3RyaW5nJDMiLCJvZl9zdHJpbmdfb3B0JDAiLCJjb21wYXJlJDExIiwiZXF1YWwkMTIiLCJ1bnNpZ25lZF9jb21wYXJlIiwibSIsIm1pbiQzIiwibWF4JDMiLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic3VjYyQyIiwicHJlZCQyIiwiYWJzJDIiLCJsb2dub3QkMSIsIm1heF9pbnQkMyIsInVuc2lnbmVkX3RvX2ludCQwIiwidG9fc3RyaW5nJDQiLCJvZl9zdHJpbmdfb3B0JDEiLCJjb21wYXJlJDEyIiwiZXF1YWwkMTMiLCJ1bnNpZ25lZF9jb21wYXJlJDAiLCJtaW4kNCIsIm1heCQ0IiwidW5zaWduZWRfZGl2JDAiLCJ1bnNpZ25lZF9yZW0kMCIsInplcm8kMyIsIm9uZSQzIiwibWludXNfb25lJDMiLCJzdWNjJDMiLCJwcmVkJDMiLCJhYnMkMyIsIm1pbl9pbnQkMyIsIm1heF9pbnQkNCIsImxvZ25vdCQyIiwidW5zaWduZWRfdG9faW50JDEiLCJ0b19zdHJpbmckNSIsIm9mX3N0cmluZ19vcHQkMiIsImNvbXBhcmUkMTMiLCJlcXVhbCQxNCIsInVuc2lnbmVkX2NvbXBhcmUkMSIsIm1pbiQ1IiwibWF4JDUiLCJ1bnNpZ25lZF9kaXYkMSIsInVuc2lnbmVkX3JlbSQxIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInN0aCIsIndpdGhfcG9zaXRpb25zIiwiYXV4X2J1ZmZlciIsImxleGJ1ZiIsInJlYWQiLCJuZXdsZW4iLCJuZXdidWYiLCJmcm9tX2NoYW5uZWwiLCJmcm9tX3N0cmluZyQwIiwic2V0X3Bvc2l0aW9uIiwicG9zaXRpb24iLCJzZXRfZmlsZW5hbWUiLCJmbmFtZSIsImxleGVtZSIsInN1Yl9sZXhlbWUiLCJzdWJfbGV4ZW1lX29wdCIsInN1Yl9sZXhlbWVfY2hhciIsInN1Yl9sZXhlbWVfY2hhcl9vcHQiLCJsZXhlbWVfY2hhciIsImxleGVtZV9zdGFydCIsImxleGVtZV9lbmQiLCJsZXhlbWVfc3RhcnRfcCIsImxleGVtZV9lbmRfcCIsIm5ld19saW5lIiwibGNwIiwiZmx1c2hfaW5wdXQiLCJlbnYiLCJncm93X3N0YWNrcyIsIm9sZHNpemUiLCJuZXdzaXplIiwibmV3X3MiLCJuZXdfdiIsIm5ld19zdGFydCIsIm5ld19lbmQiLCJjbGVhcl9wYXJzZXIiLCJjdXJyZW50X2xvb2thaGVhZF9mdW4iLCJ5eXBhcnNlIiwidGFibGVzIiwic3RhcnQiLCJsZXhlciIsImluaXRfYXNwIiwiaW5pdF9zcCIsImluaXRfc3RhY2tiYXNlIiwiaW5pdF9zdGF0ZSIsImluaXRfY3Vycl9jaGFyIiwiaW5pdF9sdmFsIiwiaW5pdF9lcnJmbGFnIiwiY21kIiwiYXJnIiwiYXJnJDAiLCJhcmckMSIsImNtZCQwIiwiZXhuIiwiY3Vycl9jaGFyIiwidG9rIiwicGVla192YWwiLCJzeW1ib2xfc3RhcnRfcG9zIiwic3QiLCJlbiIsInN5bWJvbF9lbmRfcG9zIiwicmhzX3N0YXJ0X3BvcyIsInJoc19lbmRfcG9zIiwic3ltYm9sX3N0YXJ0Iiwic3ltYm9sX2VuZCIsInJoc19zdGFydCIsInJoc19lbmQiLCJpc19jdXJyZW50X2xvb2thaGVhZCIsInBhcnNlX2Vycm9yIiwiaGVpZ2h0IiwiaGwiLCJoJDAiLCJociIsImJhbCIsImxyIiwibHYiLCJsbCIsImxyciIsImxydiIsImxybCIsInJyIiwicnYiLCJybCIsInJsciIsInJsdiIsInJsbCIsImFkZCIsInNpbmdsZXRvbiIsImFkZF9taW5fZWxlbWVudCIsImFkZF9tYXhfZWxlbWVudCIsInJoIiwibGgiLCJtaW5fZWx0IiwibWluX2VsdF9vcHQiLCJtYXhfZWx0IiwibWF4X2VsdF9vcHQiLCJyZW1vdmVfbWluX2VsdCIsInIkMCIsInNwbGl0IiwicHJlcyIsInByZXMkMCIsIm1lbSIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJzJDEiLCJlJDEiLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJmaW5kX2ZpcnN0X29wdCIsImZpbmRfbGFzdCIsImZpbmRfbGFzdF9vcHQiLCJmaW5kX29wdCIsInRyeV9qb2luIiwidiQxIiwib2ZfbGlzdCIsInN1YiIsImwkMyIsIngwIiwibCQ0IiwieDAkMCIsImwkNSIsIngwJDEiLCJubCIsIm1pZCIsImwkMiIsIng0IiwiYWRkX3NlcSIsIm9mX3NlcSIsInNlcV9vZl9lbnVtIiwic25vY19lbnVtIiwicmV2X3NlcV9vZl9lbnVtIiwidG9fcmV2X3NlcSIsInRvX3NlcV9mcm9tIiwibG93IiwibGQiLCJscmQiLCJyZCIsInJsZCIsImRhdGEiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtJDEiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjcmVhdGUkMCIsImNsZWFyIiwiY29weSQzIiwicHVzaCIsInBvcCIsInBvcF9vcHQiLCJ0b3AiLCJ0b3Bfb3B0IiwiaXNfZW1wdHkkMCIsImxlbmd0aCQyIiwiaXRlciQ3IiwiZm9sZCQyIiwidG9fc2VxJDYiLCJvZl9zZXEkNCIsImNyZWF0ZSQxIiwiY2xlYXIkMCIsImNlbGwiLCJwZWVrIiwiY29udGVudCIsInBlZWtfb3B0IiwidGFrZSQwIiwidGFrZV9vcHQiLCJjb3B5JDQiLCJxX3JlcyIsInByZXYiLCJpc19lbXB0eSQxIiwibGVuZ3RoJDMiLCJpdGVyJDgiLCJmb2xkJDMiLCJ0cmFuc2ZlciIsInExIiwicTIiLCJ0b19zZXEkNyIsImFkZF9zZXEkMCIsIm9mX3NlcSQ1IiwiY291bnQiLCJmaWxsX2J1ZmYiLCJnZXRfZGF0YSIsImQxMSIsImEkMCIsImEkMSIsInBlZWtfZGF0YSIsInBlZWskMCIsImp1bmtfZGF0YSIsImp1bmsiLCJuZ2V0X2RhdGEiLCJhbCIsIm5wZWVrIiwiZW1wdHkkMiIsIml0ZXIkOSIsInN0cm0iLCJmcm9tIiwib2ZfbGlzdCQxIiwib2Zfc3RyaW5nIiwib2ZfYnl0ZXMkMCIsIm9mX2NoYW5uZWwiLCJpYXBwIiwiaWNvbnMiLCJpc2luZyIsImxhcHAiLCJsY29ucyIsImxzaW5nIiwic2VtcHR5Iiwic2xhenkiLCJkdW1wIiwiZHVtcF9kYXRhIiwiY3JlYXRlJDIiLCJjb250ZW50cyIsInRvX2J5dGVzJDAiLCJzdWIkMyIsImJsaXQkMyIsIm50aCQwIiwibGVuZ3RoJDQiLCJjbGVhciQxIiwicmVzZXQiLCJyZXNpemUiLCJtb3JlIiwib2xkX3BvcyIsIm9sZF9sZW4iLCJuZXdfYnVmZmVyIiwiYWRkX2NoYXIiLCJwb3MiLCJ1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXgiLCJ1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4IiwiYWRkX3V0Zl84X3VjaGFyIiwiYWRkX3V0Zl8xNmJlX3VjaGFyIiwiYWRkX3V0Zl8xNmxlX3VjaGFyIiwiYWRkX3N1YnN0cmluZyIsIm9mZnNldCIsIm5ld19wb3NpdGlvbiIsImFkZF9zdWJieXRlcyIsImFkZF9zdHJpbmciLCJhZGRfYnl0ZXMiLCJhZGRfYnVmZmVyIiwiYnMiLCJhZGRfY2hhbm5lbCIsImFscmVhZHlfcmVhZCIsInRvX3JlYWQiLCJhbHJlYWR5X3JlYWQkMCIsInRvX3JlYWQkMCIsIm91dHB1dF9idWZmZXIiLCJhZGRfc3Vic3RpdHV0ZSIsImxpbSQxIiwicHJldmlvdXMiLCJjdXJyZW50Iiwib3BlbmluZyIsImxpbSQwIiwic3RvcCIsImskMiIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJ0b19zZXEkOCIsInRvX3NlcWkkMyIsImFkZF9zZXEkMSIsIm9mX3NlcSQ2IiwiYWRkX2ludDgiLCJhZGRfaW50MTZfbmUiLCJhZGRfaW50MzJfbmUiLCJhZGRfaW50NjRfbmUiLCJhZGRfaW50MTZfbGUiLCJhZGRfaW50MTZfYmUiLCJhZGRfaW50MzJfbGUiLCJhZGRfaW50MzJfYmUiLCJhZGRfaW50NjRfbGUiLCJhZGRfaW50NjRfYmUiLCJjcmVhdGVfY2hhcl9zZXQiLCJhZGRfaW5fY2hhcl9zZXQiLCJzdHJfaW5kIiwibWFzayIsImZyZWV6ZV9jaGFyX3NldCIsInJldl9jaGFyX3NldCIsImNoYXJfc2V0JDAiLCJpc19pbl9jaGFyX3NldCIsInBhZF9vZl9wYWRfb3B0IiwicGFkX29wdCIsIndpZHRoIiwicGFyYW1fZm9ybWF0X29mX2lnbm9yZWRfZm9ybWF0IiwiZm10IiwicGFkX29wdCQwIiwicGFkX29wdCQxIiwicGFkX29wdCQyIiwicGFkX29wdCQzIiwicGFkX29wdCQ0IiwicHJlY19vcHQiLCJwYWRfb3B0JDUiLCJuZGVjIiwicGFkX29wdCQ2IiwicGFkX29wdCQ3IiwicGFkX29wdCQ4IiwiZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24iLCJidWZmZXJfY3JlYXRlIiwiaW5pdF9zaXplIiwiYnVmZmVyX2NoZWNrX3NpemUiLCJvdmVyaGVhZCIsIm1pbl9sZW4iLCJuZXdfc3RyIiwiYnVmZmVyX2FkZF9jaGFyIiwiYnVmZmVyX2FkZF9zdHJpbmciLCJzdHJfbGVuIiwiYnVmZmVyX2NvbnRlbnRzIiwiY2hhcl9vZl9pY29udiIsImNoYXJfb2ZfZmNvbnYiLCJjRiIsImJwcmludF9wYWR0eSIsInBhZHR5IiwiYnByaW50X2lnbm9yZWRfZmxhZyIsImlnbl9mbGFnIiwiYnByaW50X3BhZF9vcHQiLCJicHJpbnRfcGFkZGluZyIsInBhZHR5JDAiLCJicHJpbnRfcHJlY2lzaW9uIiwiYnByaW50X2ljb252X2ZsYWciLCJicHJpbnRfYWx0aW50X2ZtdCIsImJwcmludF9mY29udl9mbGFnIiwic3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0Iiwic3RyJDAiLCJicHJpbnRfY2hhcl9saXRlcmFsIiwiYnByaW50X3N0cmluZ19saXRlcmFsIiwiYnByaW50X2ZtdHR5Iiwic3ViX2ZtdHR5Iiwic3ViX2ZtdHR5JDAiLCJpbnRfb2ZfY3VzdG9tX2FyaXR5Iiwic3RyaW5nX29mX2ZtdCIsImZtdGl0ZXIiLCJmbXQkMCIsImlnbl9mbGFnJDAiLCJjaHIkMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDAiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDIiLCJyZXN0MiQwIiwicmVzdDIkMSIsInJlc3QyJDIiLCJyZXN0MiQzIiwicmVzdDIkNCIsInJlc3QyJDUiLCJyZXN0MiQ2IiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QyJDkiLCJyZXN0MiQxMCIsInJlc3QyJDExIiwicmVzdDIkMTIiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJ0eSQwIiwiZm10dHkkNCIsImZtdHR5JDUiLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXR0eSQ2IiwiZm10JDYiLCJmbXRfcmVzdCQ2IiwicHJlYyQ1IiwiZm10dHlfcmVzdCQ2IiwicHJlYyQ2IiwiZm10dHkkNyIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdHR5JDgiLCJmbXQkOCIsImZtdF9yZXN0JDgiLCJmbXR0eV9yZXN0JDgiLCJmbXR0eSQ5IiwiZm10JDkiLCJmbXRfcmVzdCQ5IiwiZm10dHkkMTAiLCJmbXQkMTAiLCJmbXRfcmVzdCQxMCIsImZtdHR5JDExIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXR0eSQxMiIsImZtdCQxMiIsImZtdHR5X3Jlc3QkOSIsImZtdF9yZXN0JDEyIiwiZm10dHkkMTMiLCJmbXQkMTMiLCJmbXR0eV9yZXN0JDEwIiwic3ViX2ZtdHR5MSIsImZtdF9yZXN0JDEzIiwic3ViX2ZtdHR5JDEiLCJmbXR0eSQxNCIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdHR5JDE1IiwiZm10JDE1IiwiZm10dHlfcmVzdCQxMiIsImZtdF9yZXN0JDE1IiwiZm10dHkkMTYiLCJmbXQkMTYiLCJmbXRfcmVzdCQxNiIsImZtdHR5JDE3IiwiZm10JDE3IiwiZm10X3Jlc3QkMTciLCJmb3JtYXR0aW5nX2dlbiIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTgiLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOSIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDIwIiwiZm10JDIwIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIyIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJmbXR0eV9yZXN0JDE2IiwiZm10dHkkMjEiLCJmbXQkMjEiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsImZuX29mX2N1c3RvbV9hcml0eSQwIiwiZm5fb2ZfY3VzdG9tX2FyaXR5Iiwib3V0cHV0X2FjYyIsInAkMiIsInAkMyIsInAkNCIsImJ1ZnB1dF9hY2MiLCJzdHJwdXRfYWNjIiwiZmFpbHdpdGhfbWVzc2FnZSIsIm9wZW5fYm94X29mX3N0cmluZyIsImludmFsaWRfYm94IiwicGFyc2Vfc3BhY2VzIiwicGFyc2VfbHdvcmQiLCJwYXJzZV9pbnQiLCJ3c3RhcnQiLCJ3ZW5kIiwiYm94X25hbWUiLCJuc3RhcnQiLCJuZW5kIiwiaW5kZW50IiwiZXhwX2VuZCIsImJveF90eXBlIiwibWFrZV9wYWRkaW5nX2ZtdF9lYmIiLCJtYWtlX3BhZHByZWNfZm10X2ViYiIsImZtdF9lYmJfb2Zfc3RyaW5nIiwibGVnYWN5X2JlaGF2aW9yIiwiZmxhZyIsImxlZ2FjeV9iZWhhdmlvciQwIiwiaW52YWxpZF9mb3JtYXRfbWVzc2FnZSIsInVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCIsImVuZF9pbmQiLCJpbnZhbGlkX2Zvcm1hdF93aXRob3V0IiwiZXhwZWN0ZWRfY2hhcmFjdGVyIiwiZXhwZWN0ZWQiLCJhZGRfbGl0ZXJhbCIsImxpdF9zdGFydCIsInNpemUiLCJwYXJzZSIsInN0cl9pbmQkMiIsInBhcnNlX2ZsYWdzIiwic3RyX2luZCQxIiwic3RyX2luZCQwIiwicGFyc2VfdGFnIiwicGFyc2VfZ29vZF9icmVhayIsInBhcnNlX21hZ2ljX3NpemUiLCJwYXJzZV9jb252ZXJzaW9uIiwicGN0X2luZCIsInBsdXMiLCJzcGFjZSIsInBhZHByZWMiLCJwbHVzX3VzZWQiLCJoYXNoX3VzZWQiLCJzcGFjZV91c2VkIiwiaWduX3VzZWQiLCJwYWRfdXNlZCIsInByZWNfdXNlZCIsImdldF9wbHVzIiwiZ2V0X2hhc2giLCJnZXRfc3BhY2UiLCJnZXRfaWduIiwiZ2V0X3BhZCIsImdldF9wcmVjIiwiZ2V0X3BhZHByZWMiLCJnZXRfaW50X3BhZCIsImluY29tcGF0aWJsZV9mbGFnIiwiY2hlY2tfbm9fMCIsIm9wdF9vZl9wYWQiLCJ3aWR0aCQxIiwiZ2V0X3BhZF9vcHQiLCJnZXRfcGFkcHJlY19vcHQiLCJmbXRfcmVzdWx0Iiwic3ViX2VuZCIsInNlYXJjaF9zdWJmb3JtYXRfZW5kIiwic3ViX2ZtdCIsImlnbm9yZWQkMiIsImNvdW50ZXIkMCIsImlnbm9yZWQkNiIsImlnbm9yZWQkNyIsImFkZF9yYW5nZSIsImZhaWxfc2luZ2xlX3BlcmNlbnQiLCJwYXJzZV9jaGFyX3NldF9jb250ZW50IiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciQwIiwicGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciIsInJldmVyc2UiLCJuZXh0X2luZCIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJwYWQkOSIsImZtdF9yZXN0JDIzIiwiaWdub3JlZCQxMCIsImZtdF9yZXN0JDI0IiwicGFkJDEwIiwiZm10X3Jlc3QkMjUiLCJzdWJfZW5kJDAiLCJzdWJfZm10JDAiLCJmbXRfcmVzdCQyNiIsImlnbm9yZWQkMTEiLCJpZ25vcmVkJDMiLCJzeW1iJDAiLCJpZ25vcmVkJDUiLCJjb21wdXRlX2ludF9jb252IiwiaWdub3JlZCQ4Iiwic3BhY2UkMSIsImhhc2gkMSIsInBsdXMkMiIsImtpbmQiLCJpZ25vcmVkJDQiLCJpZ25vcmVkIiwiaWdub3JlZCQwIiwiaWdub3JlZCQxIiwicGx1cyQwIiwic3BhY2UkMCIsInBsdXMkMSIsImlnbiQwIiwicGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIiwibWludXMiLCJwYXJzZV9jb252IiwicGFyc2VfYWZ0ZXJfcGFkZGluZyIsInBhcnNlX2xpdGVyYWwiLCJwYXJzZV9wb3NpdGl2ZSIsIm5ld19pbmQiLCJtaW51cyQwIiwic2V0X2ZsYWciLCJzdHJfaW5kJDMiLCJzdHJfaW5kJDQiLCJzdHJfaW5kJDUiLCJpc19vcGVuX3RhZyIsImluZCIsInN1Yl9zdHIiLCJzdWJfZm9ybWF0JDAiLCJmb3JtYXR0aW5nJDAiLCJmb3JtYXR0aW5nIiwic3RyX2luZF8xIiwicGFyc2VfaW50ZWdlciIsInN0cl9pbmRfMiIsInN0cl9pbmRfMyIsImZvcm1hdHRpbmdfbGl0JDAiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdHJfaW5kJDciLCJzdWJfZW5kJDEiLCJzdWJfZW5kJDIiLCJzdHJfaW5kJDYiLCJvcHRpb24iLCJzdWJmbXQiLCJmb3JtYXRfb2Zfc3RyaW5nX2ZtdHR5IiwiZm9ybWF0X29mX3N0cmluZ19mb3JtYXQiLCJrZnByaW50ZiIsImticHJpbnRmIiwiaWtmcHJpbnRmIiwiZnByaW50ZiIsImJwcmludGYiLCJpZnByaW50ZiIsImlicHJpbnRmIiwicHJpbnRmIiwiZXByaW50ZiIsImtzcHJpbnRmIiwic3ByaW50ZiIsImFzc29jMyIsInkyIiwieTEiLCJzcGxpdCQxIiwibWFrZV9zeW1saXN0IiwiaGVscF9hY3Rpb24iLCJhZGRfaGVscCIsInNwZWNsaXN0IiwiYWRkMiIsInVzYWdlX2IiLCJlcnJtc2ciLCJkb2MiLCJzcGVjIiwia2V5IiwidXNhZ2Vfc3RyaW5nIiwidXNhZ2UiLCJib29sX29mX3N0cmluZ19vcHQkMCIsImludF9vZl9zdHJpbmdfb3B0JDAiLCJmbG9hdF9vZl9zdHJpbmdfb3B0IiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfIiwiYWxsb3dfZXhwYW5kIiwiYXJndiIsImFub25mdW4iLCJpbml0cG9zIiwiY29udmVydF9lcnJvciIsInByb2duYW1lIiwiZm9sbG93JDAiLCJrZXl3b3JkIiwibm9fYXJnJDAiLCJmb2xsb3ciLCJub19hcmciLCJnZXRfYXJnJDAiLCJnZXRfYXJnIiwiY29uc3VtZV9hcmckMCIsImNvbnN1bWVfYXJnIiwidHJlYXRfYWN0aW9uJDAiLCJ0cmVhdF9hY3Rpb24iLCJmJDAiLCJmJDEiLCJyJDEiLCJmJDIiLCJyJDIiLCJhcmckMiIsImYkMyIsImFyZyQzIiwieCQxIiwiciQzIiwiYXJnJDQiLCJ4JDIiLCJzcGVjcyIsImYkNCIsImFyZyQ1IiwiZiQ1IiwiZiQ2IiwiZiQ3IiwiYXJnJDYiLCJuZXdhcmciLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pYyIsInBhcnNlX2FyZ3ZfZHluYW1pYyIsImN1cnJlbnQkMCIsInBhcnNlX2FyZ3YiLCJtc2ckMCIsIm1zZyQxIiwicGFyc2VfZHluYW1pYyIsInBhcnNlX2V4cGFuZCIsInNlY29uZF93b3JkIiwibG9vcCIsIm1heF9hcmdfbGVuIiwia3dkIiwicmVwbGFjZV9sZWFkaW5nX3RhYiIsImFsaWduIiwibGltaXQiLCJjb21wbGV0ZWQiLCJrc2QiLCJjdXRjb2wkMCIsInNwYWNlcyQwIiwiY3V0Y29sIiwia3dkX2xlbiIsInNwYWNlcyIsInJlYWRfYXV4IiwidHJpbSIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwiY29udiIsInRvX3N0cmluZ19kZWZhdWx0IiwiY2hhciQwIiwibGluZSIsImNoYXIkMSIsImxpbmUkMCIsImZpbGUkMCIsImNoYXIkMiIsImxpbmUkMSIsImZpbGUkMSIsImNvbnN0cnVjdG9yIiwidG9fc3RyaW5nJDYiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsImJhY2t0cmFjZV9zbG90X2lzX2lubGluZSIsImJhY2t0cmFjZV9zbG90X2xvY2F0aW9uIiwiYmFja3RyYWNlX3Nsb3RfZGVmbmFtZSIsImJhY2t0cmFjZV9zbG90cyIsImJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkiLCJlbnRyeSIsInJhd19iYWNrdHJhY2VfbGVuZ3RoIiwiZ2V0X2JhY2t0cmFjZSIsInJlZ2lzdGVyX3ByaW50ZXIiLCJmbiIsIm9sZF9wcmludGVycyIsIm5ld19wcmludGVycyIsImV4bl9zbG90IiwiZXhuX3Nsb3RfaWQiLCJleG5fc2xvdF9uYW1lIiwiZXJyb3JzIiwiZGVmYXVsdF91bmNhdWdodF9leGNlcHRpb25faGFuIiwic3RhdHVzIiwidW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJzZXRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJlbXB0eV9iYWNrdHJhY2UiLCJoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIiwiZGVidWdnZXJfaW5fdXNlIiwiZXhuJDAiLCJyYXdfYmFja3RyYWNlJDAiLCJjb25zdCQwIiwiZmxpcCIsIm5lZ2F0ZSIsInByb3RlY3QiLCJmaW5hbGx5JDAiLCJ3b3JrIiwiZmluYWxseV9ub19leG4iLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJvdXRwdXQkMCIsImRpZ2VzdCIsImlucHV0JDAiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZSQzIiwibWFrZV9zZWxmX2luaXQiLCJjb3B5JDUiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJicG9zIiwiaW50MzIiLCJpbnQ2NCIsIm5hdGl2ZWludCIsImZsb2F0JDAiLCJib29sIiwiYml0czMyIiwiYml0czY0IiwibmF0aXZlYml0cyIsImJpdHMkMCIsImludCQxIiwiZnVsbF9pbnQkMCIsImludDMyJDAiLCJuYXRpdmVpbnQkMCIsImludDY0JDAiLCJmbG9hdCQxIiwic2NhbGUiLCJib29sJDAiLCJiaXRzMzIkMCIsImJpdHM2NCQwIiwibmF0aXZlYml0cyQwIiwiZnVsbF9pbml0JDAiLCJpbml0JDUiLCJzZWxmX2luaXQiLCJnZXRfc3RhdGUiLCJzZXRfc3RhdGUiLCJvbmdvaW5nX3RyYXZlcnNhbCIsImZsaXBfb25nb2luZ190cmF2ZXJzYWwiLCJwYXJhbXMiLCJyYW5kb21pemVkX2RlZmF1bHQiLCJyYW5kb21pemVkIiwicmFuZG9taXplIiwiaXNfcmFuZG9taXplZCIsInBybmciLCJwb3dlcl8yX2Fib3ZlIiwiY3JlYXRlJDMiLCJpbml0aWFsX3NpemUiLCJyYW5kb20iLCJjbGVhciQyIiwicmVzZXQkMCIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiY29weSQ2IiwibGVuZ3RoJDUiLCJpbnNlcnRfYWxsX2J1Y2tldHMiLCJpbmRleGZ1biIsImlucGxhY2UiLCJvZGF0YSIsIm5kYXRhIiwibnNpemUiLCJuZGF0YV90YWlsIiwiY2VsbCQwIiwibmlkeCIsIm1hdGNoIiwibWF0Y2gkMCIsInJlc2l6ZSQwIiwib3NpemUiLCJpdGVyJDEwIiwiZG9fYnVja2V0Iiwib2xkX3RyYXYiLCJmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IiwiZmlsdGVyX21hcF9pbnBsYWNlIiwiZm9sZCQ0IiwiYiQwIiwiYnVja2V0X2xlbmd0aCIsInN0YXRzIiwibWJsIiwiaGlzdG8iLCJ0b19zZXEkOSIsInRibF9kYXRhIiwiYnVjayIsImJ1Y2skMCIsImJ1Y2skMSIsInRvX3NlcV9rZXlzIiwidG9fc2VxX3ZhbHVlcyIsImtleV9pbmRleCIsImJ1Y2tldCIsImsxIiwibmV4dDEiLCJrMiIsIm5leHQyIiwiazMiLCJkMyIsIm5leHQzIiwiZmluZF9hbGwiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsImNvcHkiLCJzeiIsImhhc2hfcGFyYW0iLCJzZWVkZWRfaGFzaCIsImFkZCQwIiwiZmluZCQxIiwiZmluZF9vcHQkMSIsImZpbmRfYWxsJDAiLCJtZW0kMiIsImFkZF9zZXEkMiIsIm9mX3NlcSQ3IiwicmVidWlsZCIsIndlYWtfY3JlYXRlIiwibGVuZ3RoJDYiLCJyYWlzZV9pZl9pbnZhbGlkX29mZnNldCQwIiwic2V0JDEiLCJnZXQkMiIsImdldF9jb3B5IiwiY2hlY2skMCIsImJsaXQkNCIsImZpbGwkMiIsImFyIiwiZW1wdHlidWNrZXQiLCJnZXRfaW5kZXgiLCJzeiQwIiwic3okMSIsImNvdW50X2J1Y2tldCIsImFkZF9hdXgiLCJzZXR0ZXIiLCJpbmRleCIsImJ1Y2tldCQwIiwiaGFzaGVzIiwibmV3c3oiLCJuZXdidWNrZXQkMCIsIm5ld2hhc2hlcyIsImhidWNrZXQiLCJwcmV2X2xlbiIsImxpdmUiLCJqJDIiLCJuZXdidWNrZXQiLCJuZXd0Iiwib2IiLCJvaCIsInNldHRlciQwIiwibmkiLCJmaW5kX29yIiwiaWZub3Rmb3VuZCIsImZpbmRfc2hhZG93IiwiaWZmb3VuZCIsImxlbnMiLCJ0b3RsZW4iLCJpZCQwIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2luZGVudCIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfc3RyaW5nJDAiLCJwcmludF9ieXRlcyQwIiwicHJpbnRfaW50JDAiLCJwcmludF9mbG9hdCQwIiwicHJpbnRfY2hhciQwIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9uZXdsaW5lJDAiLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwidnMiLCJvcHQkMSIsInBwX3ByaW50X3NlcSIsInNlcSQxIiwic2VxJDIiLCJwcF9wcmludF90ZXh0IiwicHBfcHJpbnRfb3B0aW9uIiwicHBfcHJpbnRfcmVzdWx0IiwicHBfcHJpbnRfZWl0aGVyIiwiY29tcHV0ZV90YWciLCJ0YWdfYWNjIiwib3V0cHV0X2Zvcm1hdHRpbmdfbGl0Iiwib3V0cHV0X2FjYyQwIiwiYnR5IiwicCQ1IiwicCQ2Iiwic3RycHV0X2FjYyQwIiwic2l6ZSQxIiwia2ZwcmludGYkMCIsImlrZnByaW50ZiQwIiwiaWZwcmludGYkMCIsImZwcmludGYkMCIsInByaW50ZiQwIiwiZXByaW50ZiQwIiwia2RwcmludGYiLCJkcHJpbnRmIiwia3ByaW50ZiIsInNwcmludGYkMCIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImJwcmludGYkMCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsInJlc2V0X3Rva2VuIiwiaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIiLCJ0b2tlbl9zdHJpbmciLCJ0b2tlbl9idWZmZXIiLCJza2lwX2NoYXIiLCJpZ25vcmVfY2hhciIsInN0b3JlX2NoYXIiLCJkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplIiwiY3JlYXRlJDQiLCJpbmFtZSIsImZyb21fc3RyaW5nJDEiLCJmcm9tX2Z1bmN0aW9uJDAiLCJzY2FuX2Nsb3NlX2F0X2VuZCIsInNjYW5fcmFpc2VfYXRfZW5kIiwiZnJvbV9pYyIsInNjYW5fY2xvc2VfaWMiLCJlb2YiLCJzdGRpYiIsIm9wZW5faW5fZmlsZSIsIm9wZW5faW4iLCJmcm9tX2ZpbGUiLCJmcm9tX2ZpbGVfYmluIiwiZnJvbV9jaGFubmVsJDAiLCJjbG9zZV9pbiIsImljJDAiLCJtZW1vIiwibWVtb19mcm9tX2ljIiwibWVtb19mcm9tX2NoYW5uZWwiLCJiYWRfaW5wdXQiLCJiYWRfaW5wdXRfZXNjYXBlIiwiYmFkX3Rva2VuX2xlbmd0aCIsIm1lc3NhZ2UiLCJiYWRfZmxvYXQiLCJiYWRfaGV4X2Zsb2F0IiwiY2hhcmFjdGVyX21pc21hdGNoIiwiY2kiLCJjaGVja190aGlzX2NoYXIiLCJjaGVja19jaGFyIiwidG9rZW5fY2hhciIsInRva2VuX2Jvb2wiLCJpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciIsInRva2VuX2ludF9saXRlcmFsIiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQiLCJzY2FuX2RpZ2l0X3BsdXMiLCJiYXNpcyIsImRpZ2l0cCIsIndpZHRoJDMiLCJpc19iaW5hcnlfZGlnaXQiLCJzY2FuX2JpbmFyeV9pbnQiLCJpc19vY3RhbF9kaWdpdCIsInNjYW5fb2N0YWxfaW50IiwiaXNfaGV4YV9kaWdpdCIsInNjYW5faGV4YWRlY2ltYWxfaW50Iiwic2Nhbl9zaWduIiwic2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsIiwic2Nhbl9pbnRfY29udmVyc2lvbiIsInNjYW5fZnJhY3Rpb25hbF9wYXJ0Iiwic2Nhbl9leHBvbmVudF9wYXJ0Iiwic2Nhbl9mbG9hdCIsInByZWNpc2lvbiIsInByZWNpc2lvbiQwIiwiY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmciLCJzY2FuX2hleF9mbG9hdCIsIndpZHRoJDQiLCJ3aWR0aCQ1Iiwid2lkdGgkNiIsIndpZHRoJDEwIiwid2lkdGgkNyIsIndpZHRoJDgiLCJ3aWR0aCQ5Iiwic2Nhbl9jYW1sX2Zsb2F0X3Jlc3QiLCJ3aWR0aF9wcmVjaXNpb24iLCJmcmFjX3dpZHRoIiwic2Nhbl9jYW1sX2Zsb2F0Iiwic2Nhbl9zdHJpbmciLCJzdHAiLCJzY2FuX2NoYXIiLCJoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIiwiY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmciLCJzY2FuX2JhY2tzbGFzaF9jaGFyIiwiYzAiLCJnZXRfZGlnaXQiLCJnZXRfZGlnaXQkMCIsImMxJDAiLCJjMiQwIiwic2Nhbl9jYW1sX2NoYXIiLCJmaW5kX3N0b3AiLCJzY2FuX2NhbWxfc3RyaW5nIiwiZmluZF9zdG9wJDAiLCJza2lwX3NwYWNlcyIsInNjYW5fY2hhcnNfaW5fY2hhcl9zZXQiLCJzY2FuX2luZGljIiwic2Nhbl9jaGFycyIsInNjYW5mX2JhZF9pbnB1dCIsImdldF9jb3VudGVyIiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJmbXQkMjMiLCJmbXQkMjQiLCJmbXQkMjUiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwicmVzdCQyNiIsImFyZ19yZXN0Iiwia3NjYW5mIiwiZWYiLCJhcHBseSIsImFyZ3MkMCIsImV4YyIsImJzY2FuZiIsImtzc2NhbmYiLCJzc2NhbmYiLCJzY2FuZiIsImJzY2FuZl9mb3JtYXQiLCJmb3JtYXQiLCJzc2NhbmZfZm9ybWF0IiwiZm9ybWF0X2Zyb21fc3RyaW5nIiwidW5lc2NhcGVkIiwia2ZzY2FuZiIsImZzY2FuZiIsInJlZ2lzdGVyIiwicmVnaXN0ZXJfZXhjZXB0aW9uIiwibyQwIiwicGFyYW1zJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInRhZyIsImNvbXBhcmUkMTQiLCJjb21wYXJlJDE1IiwiY29tcGFyZSQxNiIsImR1bW15X3RhYmxlIiwidGFibGVfY291bnQiLCJkdW1teV9tZXQiLCJmaXRfc2l6ZSIsIm5ld190YWJsZSIsInB1Yl9sYWJlbHMiLCJtZXRob2RzIiwicmVzaXplJDEiLCJhcnJheSIsIm5ld19zaXplIiwib2xkX3NpemUiLCJuZXdfYnVjayIsIm1ldGhvZF9jb3VudCIsImluc3RfdmFyX2NvdW50IiwibmV3X21ldGhvZCIsInRhYmxlIiwiZ2V0X21ldGhvZF9sYWJlbCIsImxhYmVsIiwiZ2V0X21ldGhvZF9sYWJlbHMiLCJuYW1lcyIsInNldF9tZXRob2QiLCJlbGVtZW50IiwiZ2V0X21ldGhvZCIsInRvX2xpc3QkMyIsImFyciIsIm5hcnJvdyIsInZhcnMiLCJ2aXJ0X21ldGhzIiwiY29uY3JfbWV0aHMiLCJ2YXJzJDAiLCJ2aXJ0X21ldGhzJDAiLCJjb25jcl9tZXRocyQwIiwidmlydF9tZXRoX2xhYnMiLCJjb25jcl9tZXRoX2xhYnMiLCJsYWIiLCJ0dmFycyIsImJ5X25hbWUiLCJieV9sYWJlbCIsIm1ldCIsImhtIiwid2lkZW4iLCJzYXZlZF92YXJzIiwic2F2ZWRfaGlkZGVuX21ldGhzIiwibmV3X3Nsb3QiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImdldF9kYXRhJDAiLCJidWlsZF9wYXRoIiwia2V5cyIsImxvb2t1cF90YWJsZXMiLCJyb290IiwidGFibGVzJDIiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwibmV3X2NhY2hlIiwic2V0X21ldGhvZHMiLCJjbG8iLCJjbG8kMCIsIm4kMiIsIm4kMyIsIm4kNCIsIm4kNSIsIm4kNiIsIngkMyIsIm4kNyIsIngkNCIsIm4kOCIsIm4kOSIsIngkNSIsImYkOCIsImUkMiIsIm4kMTAiLCJ4JDYiLCJmJDkiLCJuJDExIiwieCQ3IiwibiQxMiIsIngkOCIsIm4kMTMiLCJuJDE0IiwiZSQzIiwibiQxNSIsIm0kMiIsIngkOSIsIm0kMyIsIm4kMTYiLCJtJDQiLCJlJDQiLCJuJDE3IiwibSQ1IiwibiQxOCIsInN0YXRzJDAiLCJpbml0X21vZF9ibG9jayIsImNvbXBzJDAiLCJtb2R1Iiwic2hhcGUiLCJmbiQwIiwiY29tcHMiLCJpbml0X21vZCIsInVwZGF0ZV9tb2RfYmxvY2siLCJjbCIsInVwZGF0ZV9tb2QiLCJpbml0aWFsX2J1ZmZlciIsImJ1ZmZlciIsImJ1ZnBvcyIsInJlc2V0X2J1ZmZlciIsInN0b3JlIiwibmV3YnVmZmVyIiwiZ2V0X3N0cmluZyIsIm1ha2VfbGV4ZXIiLCJrZXl3b3JkcyIsImt3ZF90YWJsZSIsImlkZW50X29yX2tleXdvcmQiLCJrZXl3b3JkX29yX2Vycm9yIiwiZW5kX2V4cG9uZW50X3BhcnQiLCJleHBvbmVudF9wYXJ0IiwibnVtYmVyIiwiaWRlbnQyIiwibmVnX251bWJlciIsIm5leHRfdG9rZW4kMCIsImVzY2FwZSIsIm1heWJlX2NvbW1lbnQiLCJjb21tZW50IiwibmV4dF90b2tlbiIsImhrZXkiLCJjbGVhbiIsImluc2VydF9idWNrZXQiLCJjb250YWluZXIiLCJyZW1vdmVfYnVja2V0IiwiaGsiLCJyZXBsYWNlX2J1Y2tldCIsIm5ld19kIiwiYnVja2V0X2xlbmd0aF9hbGl2ZSIsInN0YXRzX2FsaXZlIiwiY3JlYXRlJDUiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkiLCJzZXRfZGF0YSIsInVuc2V0X2RhdGEiLCJjaGVja19kYXRhIiwiYmxpdF9kYXRhIiwibWFrZSQ0IiwiZXBoIiwicXVlcnkiLCJzZXRfa2V5X2RhdGEiLCJtYWtlJDUiLCJhZGQkMSIsInRlc3Rfa2V5IiwicmVtb3ZlJDAiLCJmaW5kJDIiLCJsZW5ndGgkNyIsImNsZWFyJDMiLCJjcmVhdGUkNiIsImdldF9rZXkxIiwiZ2V0X2tleTFfY29weSIsInNldF9rZXkxIiwidW5zZXRfa2V5MSIsImNoZWNrX2tleTEiLCJnZXRfa2V5MiIsImdldF9rZXkyX2NvcHkiLCJzZXRfa2V5MiIsInVuc2V0X2tleTIiLCJjaGVja19rZXkyIiwiYmxpdF9rZXkxIiwiYmxpdF9rZXkyIiwiYmxpdF9rZXkxMiIsImdldF9kYXRhJDIiLCJnZXRfZGF0YV9jb3B5JDAiLCJzZXRfZGF0YSQwIiwidW5zZXRfZGF0YSQwIiwiY2hlY2tfZGF0YSQwIiwiYmxpdF9kYXRhJDAiLCJtYWtlJDYiLCJrZXkxIiwia2V5MiIsInF1ZXJ5JDAiLCJrMiQwIiwiazEkMCIsIm1ha2UkNyIsImFkZCQyIiwidGVzdF9rZXlzIiwicmVtb3ZlJDEiLCJmaW5kJDMiLCJsZW5ndGgkOCIsImNsZWFyJDQiLCJjcmVhdGUkNyIsImxlbmd0aCQ5IiwiZ2V0X2tleSQxIiwiZ2V0X2tleV9jb3B5JDEiLCJzZXRfa2V5JDEiLCJ1bnNldF9rZXkkMSIsImNoZWNrX2tleSQxIiwiYmxpdF9rZXkkMSIsImdldF9kYXRhJDMiLCJnZXRfZGF0YV9jb3B5JDEiLCJzZXRfZGF0YSQxIiwidW5zZXRfZGF0YSQxIiwiY2hlY2tfZGF0YSQxIiwiYmxpdF9kYXRhJDEiLCJtYWtlJDgiLCJxdWVyeSQxIiwia2kiLCJrMCIsIm1ha2UkOSIsImFkZCQzIiwidGVzdF9rZXlzJDAiLCJyZW1vdmUkMiIsImZpbmQkNCIsImxlbmd0aCQxMCIsImNsZWFyJDUiLCJnZW5lcmljX2Jhc2VuYW1lIiwiaXNfZGlyX3NlcCIsImdlbmVyaWNfZGlybmFtZSIsImlzX3JlbGF0aXZlIiwiaXNfaW1wbGljaXQiLCJjaGVja19zdWZmaXgiLCJzdWZmIiwiY2hvcF9zdWZmaXhfb3B0IiwibGVuX2YiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lIiwicXVvdGUkMCIsImFkZF9icyIsImxvb3AkMCIsImxvb3BfYnMiLCJxdW90ZV9jbWRfZmlsZW5hbWUiLCJxdW90ZV9jb21tYW5kJDAiLCJkcml2ZV9hbmRfcGF0aCIsImRpcm5hbWUkMCIsInBhdGgiLCJkcml2ZSIsImRpciIsImJhc2VuYW1lJDAiLCJiYXNlbmFtZSQxIiwiZGlybmFtZSQxIiwibnVsbCQzIiwiY3VycmVudF9kaXJfbmFtZSQyIiwicGFyZW50X2Rpcl9uYW1lJDIiLCJkaXJfc2VwJDIiLCJpc19kaXJfc2VwJDEiLCJpc19yZWxhdGl2ZSQxIiwiaXNfaW1wbGljaXQkMSIsImNoZWNrX3N1ZmZpeCQxIiwiY2hvcF9zdWZmaXhfb3B0JDEiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQxIiwicXVvdGVfY29tbWFuZCQxIiwiYmFzZW5hbWUkMiIsImRpcm5hbWUkMiIsImNvbmNhdCQ0IiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiZXh0ZW5zaW9uIiwiY2hvcF9leHRlbnNpb24iLCJyZW1vdmVfZXh0ZW5zaW9uIiwicHJuZyQwIiwidGVtcF9maWxlX25hbWUiLCJ0ZW1wX2RpciIsInJuZCIsImN1cnJlbnRfdGVtcF9kaXJfbmFtZSIsInNldF90ZW1wX2Rpcl9uYW1lIiwiZ2V0X3RlbXBfZGlyX25hbWUiLCJ0ZW1wX2ZpbGUiLCJ0cnlfbmFtZSIsImNvdW50ZXIkMSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwiYWRkJDQiLCJzdWIkNCIsIm5lZyIsImNvbmoiLCJtdWwiLCJkaXYiLCJpbnYiLCJub3JtMiIsIm5vcm0iLCJxJDAiLCJwb2xhciIsInNxcnQiLCJ3JDAiLCJleHAiLCJsb2ciLCJwb3ciLCJmbG9hdDMyIiwiZmxvYXQ2NCIsImludDhfc2lnbmVkIiwiaW50OF91bnNpZ25lZCIsImludDE2X3NpZ25lZCIsImludDE2X3Vuc2lnbmVkIiwiaW50MzIkMSIsImludDY0JDEiLCJpbnQkMiIsIm5hdGl2ZWludCQxIiwiY29tcGxleDMyIiwiY29tcGxleDY0Iiwia2luZF9zaXplX2luX2J5dGVzIiwiY19sYXlvdXQiLCJmb3J0cmFuX2xheW91dCIsImNsb29wIiwiaWR4IiwiY29sIiwiZmxvb3AiLCJpbml0JDYiLCJsYXlvdXQiLCJkaW1zIiwiZGxlbiIsInNpemVfaW5fYnl0ZXMiLCJjcmVhdGUkOCIsImdldCQzIiwic2V0JDIiLCJzaXplX2luX2J5dGVzJDAiLCJvZl92YWx1ZSIsImNyZWF0ZSQ5IiwiZGltIiwic2l6ZV9pbl9ieXRlcyQxIiwic2xpY2UiLCJpbml0JDciLCJvZl9hcnJheSIsImJhIiwiY3JlYXRlJDEwIiwiZGltMSIsImRpbTIiLCJzaXplX2luX2J5dGVzJDIiLCJzbGljZV9sZWZ0Iiwic2xpY2VfcmlnaHQiLCJpbml0JDgiLCJvZl9hcnJheSQwIiwicm93IiwiY3JlYXRlJDExIiwiZGltMyIsInNpemVfaW5fYnl0ZXMkMyIsInNsaWNlX2xlZnRfMSIsInNsaWNlX3JpZ2h0XzEiLCJzbGljZV9sZWZ0XzIiLCJzbGljZV9yaWdodF8yIiwiaW5pdCQ5Iiwib2ZfYXJyYXkkMSIsImFycmF5MF9vZl9nZW5hcnJheSIsImFycmF5MV9vZl9nZW5hcnJheSIsImFycmF5Ml9vZl9nZW5hcnJheSIsImFycmF5M19vZl9nZW5hcnJheSIsInJlc2hhcGVfMCIsInJlc2hhcGVfMSIsInJlc2hhcGVfMiIsInJlc2hhcGVfMyIsIndpdGhfb3BlbiIsIm9wZW5mdW4iLCJ3aXRoX29wZW5fYmluIiwid2l0aF9vcGVuX3RleHQiLCJ3aXRoX29wZW5fZ2VuIiwic2VlayIsImxlbmd0aCQxMSIsImlucHV0X2NoYXIkMCIsImlucHV0X2J5dGUkMCIsImlucHV0X2xpbmUkMCIsInJlYWxseV9pbnB1dCQwIiwicmVhbGx5X2lucHV0X3N0cmluZyQwIiwicmVhZF91cHRvIiwiZW5zdXJlIiwibmV3X2xlbiQwIiwibmV3X2xlbiQxIiwiaW5wdXRfYWxsIiwiY2h1bmtfc2l6ZSIsImluaXRpYWxfc2l6ZSQwIiwiaW5pdGlhbF9zaXplJDEiLCJucmVhZCIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJ3aXRoX29wZW4kMCIsIndpdGhfb3Blbl9iaW4kMCIsIndpdGhfb3Blbl90ZXh0JDAiLCJ3aXRoX29wZW5fZ2VuJDAiLCJzZWVrJDAiLCJwb3MkMCIsImxlbmd0aCQxMiIsImZvcm1hdF9wZXJpb2QiLCJmbXQiLCJwIiwibWFrZV9wZXJpb2QiLCJ5ZWFycyIsIm1vbnRocyIsImRheXMiLCJhZGRfcGVyaW9kcyIsImQxIiwiZDIiLCJzdWJfcGVyaW9kcyIsIm11bF9wZXJpb2QiLCJtIiwicGVyaW9kX3RvX2RheXMiLCJpc19sZWFwX3llYXIiLCJ5ZWFyIiwiZGF5c19pbl9tb250aCIsIm1vbnRoIiwiaXNfdmFsaWRfZGF0ZSIsImQiLCJtYWtlX2RhdGUiLCJkYXkiLCJhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2QiLCJ5ZWFyJDAiLCJtb250aHMkMCIsIm5ld19tb250aCIsIm1vbnRocyQxIiwieWVhciQxIiwibW9udGhzJDIiLCJ5ZWFyJDIiLCJhZGRfZGF0ZXMiLCJvcHQiLCJzdGgiLCJyb3VuZCIsIm5ld19tb250aCQwIiwibmV3X3llYXIkMCIsIm5ld19kYXRlIiwibmV3X3llYXIiLCJkJDAiLCJkYXlzX2luX2RfbW9udGgiLCJuZXdfZGF5IiwibmV3X21vbnRoJDEiLCJuZXdfeWVhciQxIiwiZGF5cyQwIiwiZCQxIiwibmV3X21vbnRoJDIiLCJuZXdfeWVhciQyIiwiZGF5cyQxIiwiZCQyIiwiY29tcGFyZV9kYXRlcyIsImZvcm1hdF9kYXRlIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkYXlzX21vbnRoIiwibmVnX3BlcmlvZCIsInN1Yl9kYXRlcyIsImNtcCIsIm5ld19kMl9tb250aCIsIm5ld19kMl95ZWFyIiwibmV3X2QyIiwiZGF0ZV90b195bWQiLCJwZXJpb2RfdG9feW1kcyIsInN0cmVhbSQxIiwic3RyZWFtJDAiLCJzdHJlYW0iLCJ2ZXJzaW9uIiwib2NhbWxfbGV4X3RhYmxlcyIsIm9jYW1sX2xleF90YWJsZXMkMCIsIm9jYW1sX2xleF90YWJsZXMkMSIsImpzb25fZXJyb3IiLCJzIiwidXRmOF9vZl9jb2RlIiwiYnVmIiwieCIsImFkZCIsIm1heGJpdHMiLCJuIiwidXRmOF9vZl9zdXJyb2dhdGVfcGFpciIsImkiLCJqIiwiaGlnaDEwIiwibG93MTAiLCJpbml0X2xleGVyIiwiZm5hbWUiLCJvcHQiLCJzdGgiLCJsbnVtIiwiYnVmJDAiLCJidWYkMSIsImhleCIsIndyaXRlX3NwZWNpYWwiLCJzcmMiLCJzdGFydCIsInN0b3AiLCJvYiIsInN0ciIsImZpbmlzaF9zdHJpbmciLCJleGMiLCJ3cml0ZV9zdHJpbmciLCJjIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nIiwid3JpdGVfbnVsbCIsIndyaXRlX2Jvb2wiLCJ3cml0ZV9kaWdpdHMiLCJkIiwid3JpdGVfaW50IiwiZmxvYXRfbmVlZHNfcGVyaW9kIiwid3JpdGVfZmxvYXQiLCJzMSIsIndyaXRlX25vcm1hbF9mbG9hdF9wcmVjIiwic2lnbmlmaWNhbnRfZmlndXJlcyIsIndyaXRlX2Zsb2F0X3ByZWMiLCJ3cml0ZV9zdGRfZmxvYXQiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyIsIndyaXRlX2ludGxpdCIsIndyaXRlX2Zsb2F0bGl0Iiwid3JpdGVfc3RyaW5nbGl0IiwiaXRlcjIiLCJmX2VsdCIsImZfc2VwIiwibCQwIiwieSQwIiwibCIsInkiLCJ3cml0ZV92YXJpYW50IiwibyIsIndyaXRlX3QiLCJ3cml0ZV90dXBsZSIsIndyaXRlX2xpc3QiLCJ3cml0ZV9hc3NvYyIsImwkMSIsInMkMCIsImIiLCJzJDEiLCJmIiwicyQyIiwicyQzIiwid3JpdGVfc3RkX3ZhcmlhbnQiLCJ3cml0ZV9zdGRfanNvbiIsIndyaXRlX3N0ZF90dXBsZSIsInRvX2J1ZmZlciIsInN1ZiIsInN0aCQwIiwic3RkIiwidG9fc3RyaW5nIiwibGVuIiwib2IkMCIsInRvX2NoYW5uZWwiLCJvYyIsInRvX291dHB1dCIsIm91dCIsInRvX2ZpbGUiLCJmaWxlIiwiZSIsInNlcV90b19idWZmZXIiLCJzdCIsInNlcV90b19zdHJpbmciLCJzZXFfdG9fY2hhbm5lbCIsInNlcSIsImpzb24iLCJzZXFfdG9fZmlsZSIsInNvcnQiLCJ2IiwiayIsImEiLCJ2JDAiLCJsJDIiLCJwcCIsImZtdCIsInR1cCIsInNlcCIsInZhbHVlIiwibmFtZSIsIngkMSIsInhzIiwia2V5IiwieHMkMCIsIngkMCIsIngkMiIsIngkMyIsIngkNCIsIngkNSIsIngkNiIsInNob3ciLCJlcXVhbCIsImEkMCIsImIkMCIsImIkMSIsImEkMSIsInlzIiwiY29tcGFyZV9rZXlzIiwia2V5JDAiLCJ5cyQwIiwidmFsdWUkMCIsInJlc3VsdCIsInlzJDEiLCJ4cyQxIiwiYiQyIiwiYSQyIiwibmFtZSQwIiwiYiQzIiwiYSQzIiwicmVzdWx0JDAiLCJiJDQiLCJhJDQiLCJiJDUiLCJhJDUiLCJiJDYiLCJhJDYiLCJiJDciLCJhJDciLCJiJDgiLCJhJDgiLCJwcF9saXN0IiwicHB4IiwicHBfc2VwIiwiaXNfYXRvbSIsImZvcm1hdCIsImluc2lkZV9ib3giLCJ4JDciLCJyZXByZXNlbnRhdGlvbiIsIm9wIiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwiZmluaXNoX3N0cmluZyQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV90JDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24kMiIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjIiwib2NhbWxfbGV4X3N0YXRlIiwib2NhbWxfbGV4X3N0YXRlJDAiLCJvY2FtbF9sZXhfc3RhdGUkMSIsImZpbmlzaF9zdHJpbmckMSIsImFjYyIsInJlYWRfc3BhY2UiLCJyZWFkX29iamVjdF9lbmQiLCJmaWVsZF9uYW1lIiwicmVhZF9pZGVudCIsInJlYWRfY29sb24iLCJyZWFkX2pzb24iLCJyZWFkX29iamVjdF9zZXAiLCJmaWVsZF9uYW1lJDAiLCJhY2MkMCIsInJlYWRfYXJyYXlfZW5kIiwicmVhZF9hcnJheV9zZXAiLCJmaW5pc2hfY29tbWVudCIsImZpbmlzaF9lc2NhcGVkX2NoYXIiLCJtYXBfc3RyaW5nIiwiYyQwIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwib2NhbWxfbGV4X3JlYWRfaW50X3JlYyIsInJlYWRfaW50Iiwib2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIiwicmVhZF9pbnQzMiIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyIsInJlYWRfaW50NjQiLCJvY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIiwicmVhZF9udW1iZXIiLCJyZWFkX3N0cmluZyIsIm1hcF9pZGVudCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyIsInJlYWRfY2VsbCIsImluaXRfYWNjIiwicmVhZF9zZXF1ZW5jZSIsIm9jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyIsInJlYWRfbGlzdF9yZXYiLCJyZWFkX3R1cGxlIiwicmVhZF90dXBsZV9lbmQiLCJyZWFkX3R1cGxlX2VuZDIiLCJyZWFkX3R1cGxlX3NlcCIsInJlYWRfdHVwbGVfc2VwMiIsIm9jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfYWJzdHJhY3RfZmllbGRzIiwicmVhZF9sY3VybCIsInN0YXJ0X2FueV90dXBsZSIsInJlYWRfbHBhciIsInJlYWRfcnBhciIsInJlYWRfbGJyIiwicmVhZF9yYnIiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQiLCJza2lwX2pzb24kMiIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjIiwic2tpcF9pZGVudCIsInNraXBfanNvbiIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uJDIiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX29iamVjdF9lbmQiLCJidWZmZXJfaWRlbnQiLCJidWZmZXJfY29sb24iLCJidWZmZXJfanNvbiIsImJ1ZmZlcl9vYmplY3Rfc2VwIiwiYnVmZmVyX2FycmF5X2VuZCIsImJ1ZmZlcl9hcnJheV9zZXAiLCJmaW5pc2hfYnVmZmVyX2NvbW1lbnQiLCJyZWFkX2ludDgiLCJyZWFkX2xpc3QiLCJyZWFkX2FycmF5IiwidGwiLCJyIiwicmVhZF9maWVsZHMiLCJmcm9tX2xleGJ1ZiIsImZyb21fc3RyaW5nJDAiLCJmcm9tX2NoYW5uZWwkMCIsImljIiwiZnJvbV9maWxlIiwic2VxX2Zyb21fbGV4YnVmIiwiZmluIiwiZmluX2UiLCJzZXFfZnJvbV9zdHJpbmciLCJzZXFfZnJvbV9jaGFubmVsIiwic2VxX2Zyb21fZmlsZSIsImZuYW1lJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCIsImxudW0wIiwibGluZSIsImxpbmVzZXFfZnJvbV9maWxlIiwicHJldHRpZnkiLCJjb21wYWN0IiwidHlwZXJyIiwianMiLCJhc3NvYyIsIm9iaiIsIm1lbWJlciIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsImZpbmlzaF9zdHJpbmckMiIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV90JDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMyIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDAiLCJmaW5pc2hfc3RyaW5nJDMiLCJyZWFkX3NwYWNlJDAiLCJyZWFkX29iamVjdF9lbmQkMCIsInJlYWRfaWRlbnQkMCIsInJlYWRfY29sb24kMCIsInJlYWRfanNvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMCIsInJlYWRfaW50JDAiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMCIsInJlYWRfaW50MzIkMCIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQwIiwicmVhZF9pbnQ2NCQwIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQwIiwicmVhZF9udW1iZXIkMCIsInJlYWRfc3RyaW5nJDAiLCJtYXBfaWRlbnQkMCIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQwIiwicmVhZF9zZXF1ZW5jZSQwIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDAiLCJyZWFkX2xpc3RfcmV2JDAiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMiLCJwb3MiLCJyZWFkX3R1cGxlJDAiLCJyZWFkX3R1cGxlX2VuZDIkMCIsInJlYWRfdHVwbGVfc2VwMiQwIiwib2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyQwIiwicmVhZF9sY3VybCQwIiwic3RhcnRfYW55X3R1cGxlJDAiLCJyZWFkX2xwYXIkMCIsInJlYWRfcnBhciQwIiwicmVhZF9sYnIkMCIsInJlYWRfcmJyJDAiLCJmaW5pc2hfc2tpcF92YXJpYW50JDAiLCJza2lwX2pzb24kMCIsImZpbmlzaF9za2lwX3N0cmluZ2xpdCQwIiwic2tpcF9qc29uJDMiLCJvY2FtbF9sZXhfc2tpcF9qc29uX3JlYyQwIiwic2tpcF9pZGVudCQwIiwiZmluaXNoX2J1ZmZlcl92YXJpYW50IiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQkMCIsImJ1ZmZlcl9qc29uJDMiLCJvY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjJDAiLCJidWZmZXJfb2JqZWN0X2VuZCQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsImJ1ZmZlcl9vYmplY3Rfc2VwJDAiLCJidWZmZXJfYXJyYXlfZW5kJDAiLCJidWZmZXJfYXJyYXlfc2VwJDAiLCJidWZmZXJfdHVwbGVfZW5kIiwiYnVmZmVyX3R1cGxlX3NlcCIsImZpbmlzaF9idWZmZXJfY29tbWVudCQwIiwianVuayQwIiwicmVhZF9pbnQ4JDAiLCJyZWFkX2xpc3QkMCIsInJlYWRfYXJyYXkkMCIsInJlYWRfZmllbGRzJDAiLCJmcm9tX2xleGJ1ZiQwIiwiZnJvbV9zdHJpbmckMiIsImZyb21fY2hhbm5lbCQyIiwiZnJvbV9maWxlJDAiLCJzZXFfZnJvbV9sZXhidWYkMCIsInNlcV9mcm9tX3N0cmluZyQwIiwic2VxX2Zyb21fY2hhbm5lbCQwIiwic2VxX2Zyb21fZmlsZSQwIiwibGluZXNlcV9mcm9tX2NoYW5uZWwkMCIsImxpbmVzZXFfZnJvbV9maWxlJDAiLCJwcmV0dGlmeSQwIiwiY29tcGFjdCQwIiwidHlwZXJyJDAiLCJhc3NvYyQwIiwibWVtYmVyJDAiLCJpbmRleCQwIiwibWFwJDAiLCJ0b19hc3NvYyQwIiwidG9fb3B0aW9uJDAiLCJ0b19ib29sJDAiLCJ0b19ib29sX29wdGlvbiQwIiwidG9fbnVtYmVyJDAiLCJ0b19udW1iZXJfb3B0aW9uJDAiLCJ0b19mbG9hdCQwIiwidG9fZmxvYXRfb3B0aW9uJDAiLCJ0b19pbnQkMCIsInRvX2ludF9vcHRpb24kMCIsInRvX2xpc3QkMCIsInRvX3N0cmluZyQzIiwidG9fc3RyaW5nX29wdGlvbiQwIiwiY29udmVydF9lYWNoJDAiLCJmaWx0ZXJfbWFwJDAiLCJmbGF0dGVuJDAiLCJmaWx0ZXJfaW5kZXgkMCIsImZpbHRlcl9saXN0JDAiLCJmaWx0ZXJfbWVtYmVyJDAiLCJmaWx0ZXJfYXNzb2MkMCIsImZpbHRlcl9ib29sJDAiLCJmaWx0ZXJfaW50JDAiLCJmaWx0ZXJfZmxvYXQkMCIsImZpbHRlcl9udW1iZXIkMCIsImZpbHRlcl9zdHJpbmckMCIsImtleXMkMCIsInZhbHVlcyQwIiwiY29tYmluZSQwIiwiaGV4JDQiLCJ3cml0ZV9zcGVjaWFsJDIiLCJmaW5pc2hfc3RyaW5nJDQiLCJ3cml0ZV9zdHJpbmckMiIsImpzb25fc3RyaW5nX29mX3N0cmluZyQyIiwid3JpdGVfbnVsbCQyIiwid3JpdGVfYm9vbCQyIiwid3JpdGVfaW50bGl0JDEiLCJ3cml0ZV9mbG9hdGxpdCQwIiwid3JpdGVfc3RyaW5nbGl0JDAiLCJpdGVyMiQyIiwiZl9zZXAkMiIsIndyaXRlX3ZhcmlhbnQkMSIsIndyaXRlX3QkMiIsIndyaXRlX3R1cGxlJDEiLCJ3cml0ZV9saXN0JDIiLCJ3cml0ZV9hc3NvYyQyIiwid3JpdGVfc3RkX3ZhcmlhbnQkMSIsIndyaXRlX3N0ZF9qc29uJDIiLCJ3cml0ZV9zdGRfdHVwbGUkMSIsInRvX2J1ZmZlciQyIiwidG9fc3RyaW5nJDQiLCJ0b19jaGFubmVsJDIiLCJ0b19vdXRwdXQkMiIsInRvX2ZpbGUkMiIsInNlcV90b19idWZmZXIkMiIsInNlcV90b19zdHJpbmckMiIsInNlcV90b19jaGFubmVsJDIiLCJzZXFfdG9fZmlsZSQyIiwic29ydCQyIiwicHBfbGlzdCQyIiwiaXNfYXRvbSQyIiwiZm9ybWF0JDIiLCJwcCQ1IiwicHAkNiIsInNob3ckMiIsImVxdWFsJDIiLCJwcmV0dHlfcHJpbnQkMiIsInByZXR0eV90b19zdHJpbmckMiIsInByZXR0eV90b19jaGFubmVsJDIiLCJoZXgkNSIsImN1c3RvbV9lcnJvciQxIiwibGV4ZXJfZXJyb3IkMSIsInJlYWRfanVuayQxIiwibG9uZ19lcnJvciQxIiwibWluMTAkMSIsIm1heDEwJDEiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCQxIiwibWFrZV9wb3NpdGl2ZV9pbnQiLCJleHRyYWN0X25lZ2F0aXZlX2ludCQxIiwibWFrZV9uZWdhdGl2ZV9pbnQiLCJuZXdsaW5lJDEiLCJhZGRfbGV4ZW1lJDEiLCJyZWFkX2pzb24kNCIsIm9jYW1sX2xleF9yZWFkX2pzb25fcmVjJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfanNvbiQxIiwicmVhZF9vYmplY3Rfc2VwJDEiLCJyZWFkX2FycmF5X2VuZCQxIiwicmVhZF9hcnJheV9zZXAkMSIsInJlYWRfdHVwbGVfZW5kJDEiLCJyZWFkX3R1cGxlX3NlcCQxIiwiZmluaXNoX3ZhcmlhbnQkMSIsImZpbmlzaF9jb21tZW50JDEiLCJmaW5pc2hfc3RyaW5nJDUiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDEiLCJtYXBfc3RyaW5nJDEiLCJyZWFkX2d0JDEiLCJyZWFkX2x0JDEiLCJyZWFkX2NvbW1hJDEiLCJzdGFydF9hbnlfdmFyaWFudCQxIiwicmVhZF9lb2YkMSIsInJlYWRfbnVsbCQxIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDEiLCJyZWFkX2Jvb2wkMSIsIm9jYW1sX2xleF9yZWFkX2ludF9yZWMkMSIsInJlYWRfaW50JDEiLCJvY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMkMSIsInJlYWRfaW50MzIkMSIsIm9jYW1sX2xleF9yZWFkX2ludDY0X3JlYyQxIiwicmVhZF9pbnQ2NCQxIiwib2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyQxIiwicmVhZF9udW1iZXIkMSIsInJlYWRfc3RyaW5nJDEiLCJtYXBfaWRlbnQkMSIsIm9jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyQxIiwicmVhZF9zZXF1ZW5jZSQxIiwib2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJvY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMkMCIsInJlYWRfdHVwbGUkMSIsInJlYWRfdHVwbGVfZW5kMiQxIiwicmVhZF90dXBsZV9zZXAyJDEiLCJvY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDEiLCJyZWFkX2xjdXJsJDEiLCJzdGFydF9hbnlfdHVwbGUkMSIsInJlYWRfbHBhciQxIiwicmVhZF9ycGFyJDEiLCJyZWFkX2xiciQxIiwicmVhZF9yYnIkMSIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMSIsInNraXBfanNvbiQxIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDEiLCJza2lwX2pzb24kNCIsIm9jYW1sX2xleF9za2lwX2pzb25fcmVjJDEiLCJza2lwX2lkZW50JDEiLCJmaW5pc2hfYnVmZmVyX3ZhcmlhbnQkMCIsImJ1ZmZlcl9qc29uJDEiLCJidWZmZXJfc3BhY2UkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQ0Iiwib2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyQxIiwiYnVmZmVyX29iamVjdF9lbmQkMSIsImJ1ZmZlcl9pZGVudCQxIiwiYnVmZmVyX2NvbG9uJDEiLCJidWZmZXJfb2JqZWN0X3NlcCQxIiwiYnVmZmVyX2FycmF5X2VuZCQxIiwiYnVmZmVyX2FycmF5X3NlcCQxIiwiYnVmZmVyX3R1cGxlX2VuZCQwIiwiYnVmZmVyX3R1cGxlX3NlcCQwIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsInBhcmFtJDEiLCJmaWVsZCIsInBhcmFtJDIiLCJyZWNvcmRfdW5kZWZpbmVkX2VsZW1lbnRzIiwidW5kZWZpbmVkJDAiLCJyZWNvcmRfbGlzdF9pbnN0ZWFkX2F0b20iLCJyZWNvcmRfcG9seV9maWVsZF92YWx1ZSIsIm5vX3ZhcmlhbnRfbWF0Y2giLCJub19tYXRjaGluZ192YXJpYW50X2ZvdW5kIiwicHRhZ19ub19hcmdzIiwicHRhZ19pbmNvcnJlY3Rfbl9hcmdzIiwiY25zdHIiLCJwdGFnX3Rha2VzX2FyZ3MiLCJuZXN0ZWRfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIiwiZW1wdHlfdHlwZSIsInN5bWJvbCIsInlvanNvbl9vZl9zb3VyY2VfcG9zaXRpb24iLCJ2X2xhd19oZWFkaW5ncyIsInZfZW5kX2NvbHVtbiIsInZfZW5kX2xpbmUiLCJ2X3N0YXJ0X2NvbHVtbiIsInZfc3RhcnRfbGluZSIsInZfZmlsZW5hbWUiLCJhcmciLCJibmRzIiwiYXJnJDAiLCJibmRzJDAiLCJhcmckMSIsImJuZHMkMSIsImFyZyQyIiwiYm5kcyQyIiwiYXJnJDMiLCJibmRzJDMiLCJhcmckNCIsImJuZHMkNCIsIm1vbmV5X29mX2NlbnRzX3N0cmluZyIsImNlbnRzIiwibW9uZXlfb2ZfdW5pdHNfaW50IiwidW5pdHMiLCJtb25leV9vZl9jZW50c19pbnRlZ2VyIiwibW9uZXlfdG9fZmxvYXQiLCJtIiwibW9uZXlfb2ZfZGVjaW1hbCIsImQiLCJtb25leV90b19zdHJpbmciLCJtb25leV90b19jZW50cyIsIm1vbmV5X3JvdW5kIiwiZGVjaW1hbF9vZl9zdHJpbmciLCJkZWNpbWFsX3RvX2Zsb2F0IiwiZGVjaW1hbF9vZl9mbG9hdCIsImRlY2ltYWxfb2ZfaW50ZWdlciIsImRlY2ltYWxfdG9fc3RyaW5nIiwibWF4X3ByZWNfZGlnaXRzIiwiaSIsInNpZ24iLCJuIiwiaW50X3BhcnQiLCJuJDAiLCJkaWdpdHMiLCJsZWFkaW5nX3plcm9lcyIsImRpZ2l0IiwibnVtX2xlYWRpbmdfemVyb2VzIiwiaSQwIiwiZm10IiwiZGVjaW1hbF9yb3VuZCIsInEiLCJkZWNpbWFsX29mX21vbmV5IiwiaW50ZWdlcl9vZl9zdHJpbmciLCJzIiwiaW50ZWdlcl90b19zdHJpbmciLCJpbnRlZ2VyX3RvX2ludCIsImludGVnZXJfb2ZfaW50IiwiaW50ZWdlcl9leHBvbmVudGlhdGlvbiIsImUiLCJpbnRlZ2VyX2xvZzIiLCJ5ZWFyX29mX2RhdGUiLCJ5IiwibW9udGhfbnVtYmVyX29mX2RhdGUiLCJpc19sZWFwX3llYXIiLCJ5JDAiLCJkYXlfb2ZfbW9udGhfb2ZfZGF0ZSIsImQkMCIsImRhdGVfb2ZfbnVtYmVycyIsInllYXIiLCJtb250aCIsImRheSIsImRhdGVfdG9fc3RyaW5nIiwiZmlyc3RfZGF5X29mX21vbnRoIiwibGFzdF9kYXlfb2ZfbW9udGgiLCJkdXJhdGlvbl9vZl9udW1iZXJzIiwiZHVyYXRpb25fdG9fc3RyaW5nIiwiZHVyYXRpb25fdG9feWVhcnNfbW9udGhzX2RheXMiLCJ5b2pzb25fb2ZfcnVudGltZV92YWx1ZSIsInYwJDQiLCJ2MCQ1IiwidjAkNiIsInYwIiwidjAkNyIsInYwJDAiLCJ2MCQ4IiwidjAkMSIsInYwJDkiLCJ2MCQyIiwidjAkMTAiLCJ2MCQzIiwidjEiLCJ2MCQxMSIsInYwJDEyIiwidjEkMCIsInYwJDEzIiwidjAkMTQiLCJ2MSQxIiwidjEkMiIsInYxJDMiLCJ2MCQxNSIsInYwJDE2IiwidjEkNCIsInYwJDE3IiwidjAkMTgiLCJ1bmVtYmVkZGFibGUiLCJlbWJlZF91bml0IiwiZW1iZWRfYm9vbCIsIngiLCJlbWJlZF9tb25leSIsImVtYmVkX2ludGVnZXIiLCJlbWJlZF9kZWNpbWFsIiwiZW1iZWRfZGF0ZSIsImVtYmVkX2R1cmF0aW9uIiwiZW1iZWRfYXJyYXkiLCJmIiwieW9qc29uX29mX2luZm9ybWF0aW9uIiwidiIsInlvanNvbl9vZl9ldmVudCIsInlvanNvbl9vZl92YXJfZGVmIiwieW9qc29uX29mX2Z1bl9jYWxsIiwidl9ib2R5Iiwidl9pbnB1dHMiLCJ2X25hbWUiLCJ2X2Z1bl9jYWxscyIsInZfdmFsdWUiLCJ2X3BvcyIsInZfb3V0cHV0Iiwidl9mdW5faW5wdXRzIiwidl9mdW5fbmFtZSIsImxvZ19yZWYiLCJyZXNldF9sb2ciLCJyZXRyaWV2ZV9sb2ciLCJsb2dfYmVnaW5fY2FsbCIsImluZm8iLCJsb2dfZW5kX2NhbGwiLCJsb2dfdmFyaWFibGVfZGVmaW5pdGlvbiIsImVtYmVkIiwibG9nX2RlY2lzaW9uX3Rha2VuIiwicG9zIiwicHBfZXZlbnRzIiwib3B0IiwicHBmIiwiZXZlbnRzIiwic3RoIiwiaXNfZmlyc3RfY2FsbCIsImZvcm1hdF92YXJfZGVmIiwidmFyJDAiLCJmb3JtYXRfcG9zX29wdCIsImZvcm1hdF92YWx1ZSIsImZvcm1hdF92YXJfZGVmcyIsImZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIiwidmFyX3dpdGhfZnVuIiwiZnVuX2NhbGwiLCJmb3JtYXRfZXZlbnQiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJuYW1lIiwiYXR0cnMiLCJuYW1lJDAiLCJ2YWx1ZSIsImVsdHMiLCJ2YXJfZGVmX3dpdGhfZnVuIiwib3V0cHV0IiwiYm9keSIsImZ1bl9pbnB1dHMiLCJmdW5fbmFtZSIsImJvZHkkMCIsImlucHV0cyIsImVtcHR5IiwiZW1wdHlfY3R4IiwicmF3X2V2ZW50X3RvX3N0cmluZyIsIm5hbWUkMSIsInRha2Vfd2hpbGUiLCJwIiwibCIsInQiLCJoIiwicmVzdCIsInQkMCIsInBhcnNlX3Jhd19ldmVudHMiLCJyYXdfZXZlbnRzIiwibmJfcmF3X2V2ZW50cyIsImlzX2Z1bmN0aW9uX2NhbGwiLCJpbmZvcyIsImlzX3Zhcl9kZWYiLCJwYXJzZV9ldmVudHMiLCJjdHgiLCJjdHgkMCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQwIiwiZnVuX2NhbGxzIiwicmVzdCQ0IiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwicmVzdCQ2IiwidmFsdWUkMCIsIm5hbWUkMiIsInZhcl9jb21wIiwicmVzdCQ1IiwidmFyX2NvbXAkMCIsInJlc3QkNyIsImN0eCQ2IiwiY3R4JDUiLCJib2R5X3JldiIsInZhcl9kZWYiLCJvdXRwdXQkMCIsIm1zZyIsImhhbmRsZV9kZWZhdWx0IiwiZXhjZXB0aW9ucyIsImp1c3QiLCJjb25zIiwiYWNjIiwiZXhjZXB0IiwibmV3X3ZhbCIsImhhbmRsZV9kZWZhdWx0X29wdCIsImIiLCJub19pbnB1dCIsImNvbXBhcmVfcGVyaW9kcyIsInAxIiwicDIiLCJwMV9kYXlzIiwicDJfZGF5cyIsImVxdWFsX3BlcmlvZHMiLCJvX25vdCIsIm9fbGVuZ3RoIiwiYSIsIm9fbWludXNfaW50IiwiaTEiLCJvX21pbnVzX3JhdCIsIm9fbWludXNfbW9uIiwibTEiLCJvX21pbnVzX2R1ciIsIm9fYW5kIiwib19vciIsIm9feG9yIiwib19lcSIsIm9fbWFwIiwib19yZWR1Y2UiLCJkZnQiLCJsZW4iLCJyIiwib19jb25jYXQiLCJvX2ZpbHRlciIsIm9fYWRkX2ludF9pbnQiLCJpMiIsIm9fYWRkX3JhdF9yYXQiLCJvX2FkZF9tb25fbW9uIiwibTIiLCJvX2FkZF9kYXRfZHVyIiwiZGEiLCJkdSIsIm9fYWRkX2R1cl9kdXIiLCJvX3N1Yl9pbnRfaW50Iiwib19zdWJfcmF0X3JhdCIsIm9fc3ViX21vbl9tb24iLCJvX3N1Yl9kYXRfZGF0Iiwib19zdWJfZGF0X2R1ciIsImRhdCIsImR1ciIsIm9fc3ViX2R1cl9kdXIiLCJvX211bHRfaW50X2ludCIsIm9fbXVsdF9yYXRfcmF0Iiwib19tdWx0X21vbl9yYXQiLCJpMV9hYnMiLCJpMl9hYnMiLCJzaWduX2ludCIsInJhdF9yZXN1bHQiLCJyZW1haW5kZXIiLCJyZXMiLCJvX211bHRfZHVyX2ludCIsIm9fZGl2X2ludF9pbnQiLCJvX2Rpdl9yYXRfcmF0Iiwib19kaXZfbW9uX21vbiIsIm9fZGl2X21vbl9yYXQiLCJyMSIsIm9fZGl2X2R1cl9kdXIiLCJkMSIsImQyIiwib19sdF9pbnRfaW50Iiwib19sdF9yYXRfcmF0Iiwib19sdF9tb25fbW9uIiwib19sdF9kdXJfZHVyIiwib19sdF9kYXRfZGF0Iiwib19sdGVfaW50X2ludCIsIm9fbHRlX3JhdF9yYXQiLCJvX2x0ZV9tb25fbW9uIiwib19sdGVfZHVyX2R1ciIsIm9fbHRlX2RhdF9kYXQiLCJvX2d0X2ludF9pbnQiLCJvX2d0X3JhdF9yYXQiLCJvX2d0X21vbl9tb24iLCJvX2d0X2R1cl9kdXIiLCJvX2d0X2RhdF9kYXQiLCJvX2d0ZV9pbnRfaW50Iiwib19ndGVfcmF0X3JhdCIsIm9fZ3RlX21vbl9tb24iLCJvX2d0ZV9kdXJfZHVyIiwib19ndGVfZGF0X2RhdCIsIm9fZXFfaW50X2ludCIsIm9fZXFfcmF0X3JhdCIsIm9fZXFfbW9uX21vbiIsIm9fZXFfZHVyX2R1ciIsIm9fZXFfZGF0X2RhdCIsIm9fZm9sZCIsIm9fbm90JDAiLCJvX2xlbmd0aCQwIiwib190b3JhdF9pbnQiLCJvX3RvcmF0X21vbiIsIm9fdG9tb25leV9yYXQiLCJvX2dldERheSIsIm9fZ2V0TW9udGgiLCJvX2dldFllYXIiLCJvX2ZpcnN0RGF5T2ZNb250aCIsIm9fbGFzdERheU9mTW9udGgiLCJvX3JvdW5kX21vbiIsIm9fcm91bmRfcmF0Iiwib19taW51c19pbnQkMCIsIm9fbWludXNfcmF0JDAiLCJvX21pbnVzX21vbiQwIiwib19taW51c19kdXIkMCIsIm9fYW5kJDAiLCJvX29yJDAiLCJvX3hvciQwIiwib19lcSQwIiwib19tYXAkMCIsIm9fcmVkdWNlJDAiLCJvX2NvbmNhdCQwIiwib19maWx0ZXIkMCIsIm9fYWRkX2ludF9pbnQkMCIsIm9fYWRkX3JhdF9yYXQkMCIsIm9fYWRkX21vbl9tb24kMCIsIm9fYWRkX2RhdF9kdXIkMCIsIm9fYWRkX2R1cl9kdXIkMCIsIm9fc3ViX2ludF9pbnQkMCIsIm9fc3ViX3JhdF9yYXQkMCIsIm9fc3ViX21vbl9tb24kMCIsIm9fc3ViX2RhdF9kYXQkMCIsIm9fc3ViX2RhdF9kdXIkMCIsIm9fc3ViX2R1cl9kdXIkMCIsIm9fbXVsdF9pbnRfaW50JDAiLCJvX211bHRfcmF0X3JhdCQwIiwib19tdWx0X21vbl9yYXQkMCIsIm9fbXVsdF9kdXJfaW50JDAiLCJvX2Rpdl9pbnRfaW50JDAiLCJvX2Rpdl9yYXRfcmF0JDAiLCJvX2Rpdl9tb25fbW9uJDAiLCJvX2Rpdl9tb25fcmF0JDAiLCJvX2Rpdl9kdXJfZHVyJDAiLCJvX2x0X2ludF9pbnQkMCIsIm9fbHRfcmF0X3JhdCQwIiwib19sdF9tb25fbW9uJDAiLCJvX2x0X2R1cl9kdXIkMCIsIm9fbHRfZGF0X2RhdCQwIiwib19sdGVfaW50X2ludCQwIiwib19sdGVfcmF0X3JhdCQwIiwib19sdGVfbW9uX21vbiQwIiwib19sdGVfZHVyX2R1ciQwIiwib19sdGVfZGF0X2RhdCQwIiwib19ndF9pbnRfaW50JDAiLCJvX2d0X3JhdF9yYXQkMCIsIm9fZ3RfbW9uX21vbiQwIiwib19ndF9kdXJfZHVyJDAiLCJvX2d0X2RhdF9kYXQkMCIsIm9fZ3RlX2ludF9pbnQkMCIsIm9fZ3RlX3JhdF9yYXQkMCIsIm9fZ3RlX21vbl9tb24kMCIsIm9fZ3RlX2R1cl9kdXIkMCIsIm9fZ3RlX2RhdF9kYXQkMCIsIm9fZXFfaW50X2ludCQwIiwib19lcV9yYXRfcmF0JDAiLCJvX2VxX21vbl9tb24kMCIsIm9fZXFfZHVyX2R1ciQwIiwib19lcV9kYXRfZGF0JDAiLCJvX2ZvbGQkMCIsInZlcnNpb24iLCJnaXRfdmVyc2lvbiIsInJhaXNlIiwiZXhuIiwibW9kdWxlIiwiZ2xvYmFsVGhpcyIsInN5bWJvbCIsIngiLCJ5Iiwic3ltYm9sJDAiLCJzeW1ib2wkMSIsInN5bWJvbCQyIiwic3ltYm9sJDMiLCJzeW1ib2wkNCIsImNvbXBhcmUiLCJlcXVhbCIsIm1heCIsIm1pbiIsImVxdWFsJDAiLCJlcXVhbCQxIiwic3ltYm9sJDUiLCJzeW1ib2wkNiIsInN5bWJvbCQ3Iiwic3ltYm9sJDgiLCJzeW1ib2wkOSIsInN5bWJvbCQxMCIsImNvbXBhcmUkMiIsImVxdWFsJDIiLCJtYXgkMCIsIm1pbiQwIiwiZ2xvYmFsIiwibm9faGFuZGxlciIsIm51bGwiLCJ1bmRlZmluZWQiLCJyZXR1cm4kMCIsIm1hcCQwIiwiZiIsImJpbmQiLCJ0ZXN0IiwiaXRlciQwIiwiY2FzZSQwIiwiZyIsImdldCIsIm9wdGlvbiIsIngkMCIsInRvX29wdGlvbiIsInJldHVybiQxIiwibWFwJDEiLCJiaW5kJDAiLCJ0ZXN0JDAiLCJpdGVyJDEiLCJjYXNlJDEiLCJnZXQkMCIsIm9wdGlvbiQwIiwidG9fb3B0aW9uJDAiLCJjb2VyY2UiLCJjb2VyY2Vfb3B0IiwibmZjIiwibmZkIiwibmZrYyIsIm5ma2QiLCJzdHJpbmdfY29uc3RyIiwib2JqZWN0X2tleXMiLCJhcnJheV9sZW5ndGgiLCJhcnJheV9nZXQiLCJhcnJheV9zZXQiLCJhcnJheV9tYXAiLCJhIiwiaWR4IiwiYXJyYXlfbWFwaSIsInN0cl9hcnJheSIsIm1hdGNoX3Jlc3VsdCIsIm1hdGgiLCJlcnJvcl9jb25zdHIiLCJuYW1lIiwiZSIsIm1lc3NhZ2UiLCJzdGFjayIsInRvX3N0cmluZyIsInJhaXNlX2pzX2Vycm9yIiwic3RyaW5nX29mX2Vycm9yIiwiSlNPTiIsImRlY29kZVVSSSIsInMiLCJkZWNvZGVVUklDb21wb25lbnQiLCJlbmNvZGVVUkkiLCJlbmNvZGVVUklDb21wb25lbnQiLCJlc2NhcGUiLCJ1bmVzY2FwZSIsImlzTmFOIiwiaSIsInBhcnNlSW50IiwicyQwIiwicGFyc2VGbG9hdCIsImV4cG9ydF9qcyIsImZpZWxkIiwianNvb19leHBvcnRzIiwiZXhwb3J0JDAiLCJleHBvcnRfYWxsIiwib2JqIiwia2V5IiwibGlzdF9vZl9ub2RlTGlzdCIsIm5vZGVMaXN0IiwibGVuZ3RoIiwiYWNjIiwiaSQwIiwiYWNjJDAiLCJpJDEiLCJkaXNjb25uZWN0ZWQiLCJwcmVjZWRpbmciLCJmb2xsb3dpbmciLCJjb250YWlucyQwIiwiY29udGFpbmVkX2J5IiwiaW1wbGVtZW50YXRpb25fc3BlY2lmaWMiLCJoYXMiLCJ0IiwibWFzayIsImFkZCIsImFwcGVuZENoaWxkIiwicCIsIm4iLCJyZW1vdmVDaGlsZCIsInJlcGxhY2VDaGlsZCIsIm8iLCJpbnNlcnRCZWZvcmUiLCJub2RlVHlwZSIsImNhc3QiLCJlbGVtZW50IiwidGV4dCIsImF0dHIiLCJoYW5kbGVyIiwicmVzIiwiZXZlbnQiLCJmdWxsX2hhbmRsZXIiLCJ0aGlzJDAiLCJpbnZva2VfaGFuZGxlciIsImV2ZW50VGFyZ2V0IiwibWFrZSQwIiwiYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIiwiY2FwdHVyZSIsIm9uY2UiLCJwYXNzaXZlIiwiaXRlciIsImIiLCJhZGRFdmVudExpc3RlbmVyIiwidHlwIiwiaCIsImNhcHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaWQiLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZUN1c3RvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJvcHRfaXRlciIsImFycmF5QnVmZmVyIiwiaW50OEFycmF5X2luQnVmZmVyIiwiaW50MTZBcnJheV9pbkJ1ZmZlciIsInVpbnQxNkFycmF5X2luQnVmZmVyIiwiaW50MzJBcnJheV9pbkJ1ZmZlciIsInVpbnQzMkFycmF5X2luQnVmZmVyIiwiZmxvYXQzMkFycmF5X2luQnVmZmVyIiwiZmxvYXQ2NEFycmF5X2luQnVmZmVyIiwic2V0IiwiZ2V0JDEiLCJ1bnNhZmVfZ2V0IiwiZGF0YVZpZXciLCJvZl9hcnJheUJ1ZmZlciIsImFiIiwidWludDgiLCJmaWx0ZXJfbWFwIiwicSIsInYiLCJ2JDAiLCJibG9iX3JhdyIsImNvbnRlbnRUeXBlIiwiZW5kaW5ncyIsIm9wdGlvbnMiLCJvcHRpb25zJDAiLCJibG9iX2Zyb21fc3RyaW5nIiwiYmxvYl9mcm9tX2FueSIsImwiLCJhJDAiLCJsJDAiLCJmaWxlbmFtZSIsImZpbGUiLCJuYW1lJDAiLCJkb2NfY29uc3RyIiwiZG9jdW1lbnQiLCJibG9iIiwic3RyaW5nIiwiYXJyYXlCdWZmZXIkMCIsImxvYWRzdGFydCIsInByb2dyZXNzIiwiYWJvcnQiLCJlcnJvciIsImxvYWQiLCJsb2FkZW5kIiwiZmlsZVJlYWRlciIsIm9uSUUiLCJjbGljayIsImNvcHkkMCIsImN1dCIsInBhc3RlIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJrZXlwcmVzcyIsImtleWRvd24iLCJrZXl1cCIsIm1vdXNld2hlZWwiLCJ3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcmFnIiwiZHJvcCIsImhhc2hjaGFuZ2UiLCJjaGFuZ2UiLCJpbnB1dCIsInRpbWV1cGRhdGUiLCJzdWJtaXQiLCJzY3JvbGwiLCJmb2N1cyIsImJsdXIiLCJsb2FkJDAiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBvcHN0YXRlIiwiZXJyb3IkMCIsImFib3J0JDAiLCJzZWxlY3QiLCJvbmxpbmUiLCJvZmZsaW5lIiwiY2hlY2tpbmciLCJub3VwZGF0ZSIsImRvd25sb2FkaW5nIiwicHJvZ3Jlc3MkMCIsInVwZGF0ZXJlYWR5IiwiY2FjaGVkIiwib2Jzb2xldGUiLCJkb21Db250ZW50TG9hZGVkIiwiYW5pbWF0aW9uc3RhcnQiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbmVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJjYW5wbGF5IiwiY2FucGxheXRocm91Z2giLCJkdXJhdGlvbmNoYW5nZSIsImVtcHRpZWQiLCJlbmRlZCIsImdvdHBvaW50ZXJjYXB0dXJlIiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9hZHN0YXJ0JDAiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtZXNzYWdlJDAiLCJwYXVzZSIsInBsYXkiLCJwbGF5aW5nIiwicG9pbnRlcmVudGVyIiwicG9pbnRlcmNhbmNlbCIsInBvaW50ZXJkb3duIiwicG9pbnRlcmxlYXZlIiwicG9pbnRlcm1vdmUiLCJwb2ludGVyb3V0IiwicG9pbnRlcm92ZXIiLCJwb2ludGVydXAiLCJyYXRlY2hhbmdlIiwic2Vla2VkIiwic2Vla2luZyIsInN0YWxsZWQiLCJzdXNwZW5kIiwidm9sdW1lY2hhbmdlIiwid2FpdGluZyIsIm1ha2UkMSIsImQiLCJsb2NhdGlvbl9vcmlnaW4iLCJsb2MiLCJnZXRFbGVtZW50QnlJZCIsInBub2RlIiwiZ2V0RWxlbWVudEJ5SWRfZXhuIiwiZ2V0RWxlbWVudEJ5SWRfb3B0IiwiZ2V0RWxlbWVudEJ5SWRfY29lcmNlIiwiY3JlYXRlRWxlbWVudCIsInVuc2FmZUNyZWF0ZUVsZW1lbnQiLCJkb2MiLCJjcmVhdGVFbGVtZW50U3ludGF4IiwidW5zYWZlQ3JlYXRlRWxlbWVudEV4IiwidHlwZSIsImVsdCIsImVsIiwiY3JlYXRlSHRtbCIsImNyZWF0ZUhlYWQiLCJjcmVhdGVMaW5rIiwiY3JlYXRlVGl0bGUiLCJjcmVhdGVNZXRhIiwiY3JlYXRlQmFzZSIsImNyZWF0ZVN0eWxlIiwiY3JlYXRlQm9keSIsImNyZWF0ZUZvcm0iLCJjcmVhdGVPcHRncm91cCIsImNyZWF0ZU9wdGlvbiIsImNyZWF0ZVNlbGVjdCIsImNyZWF0ZUlucHV0IiwiY3JlYXRlVGV4dGFyZWEiLCJjcmVhdGVCdXR0b24iLCJjcmVhdGVMYWJlbCIsImNyZWF0ZUZpZWxkc2V0IiwiY3JlYXRlTGVnZW5kIiwiY3JlYXRlVWwiLCJjcmVhdGVPbCIsImNyZWF0ZURsIiwiY3JlYXRlTGkiLCJjcmVhdGVEaXYiLCJjcmVhdGVFbWJlZCIsImNyZWF0ZVAiLCJjcmVhdGVIMSIsImNyZWF0ZUgyIiwiY3JlYXRlSDMiLCJjcmVhdGVINCIsImNyZWF0ZUg1IiwiY3JlYXRlSDYiLCJjcmVhdGVRIiwiY3JlYXRlQmxvY2txdW90ZSIsImNyZWF0ZVByZSIsImNyZWF0ZUJyIiwiY3JlYXRlSHIiLCJjcmVhdGVJbnMiLCJjcmVhdGVEZWwiLCJjcmVhdGVBIiwiY3JlYXRlSW1nIiwiY3JlYXRlT2JqZWN0IiwiY3JlYXRlUGFyYW0iLCJjcmVhdGVNYXAiLCJjcmVhdGVBcmVhIiwiY3JlYXRlU2NyaXB0IiwiY3JlYXRlVGFibGUiLCJjcmVhdGVDYXB0aW9uIiwiY3JlYXRlQ29sIiwiY3JlYXRlQ29sZ3JvdXAiLCJjcmVhdGVUaGVhZCIsImNyZWF0ZVRmb290IiwiY3JlYXRlVGJvZHkiLCJjcmVhdGVUciIsImNyZWF0ZVRoIiwiY3JlYXRlVGQiLCJjcmVhdGVTdWIiLCJjcmVhdGVTdXAiLCJjcmVhdGVTcGFuIiwiY3JlYXRlVHQiLCJjcmVhdGVJIiwiY3JlYXRlQiIsImNyZWF0ZUJpZyIsImNyZWF0ZVNtYWxsIiwiY3JlYXRlRW0iLCJjcmVhdGVTdHJvbmciLCJjcmVhdGVDaXRlIiwiY3JlYXRlRGZuIiwiY3JlYXRlQ29kZSIsImNyZWF0ZVNhbXAiLCJjcmVhdGVLYmQiLCJjcmVhdGVWYXIiLCJjcmVhdGVBYmJyIiwiY3JlYXRlRGQiLCJjcmVhdGVEdCIsImNyZWF0ZU5vc2NyaXB0IiwiY3JlYXRlQWRkcmVzcyIsImNyZWF0ZUZyYW1lc2V0IiwiY3JlYXRlRnJhbWUiLCJjcmVhdGVJZnJhbWUiLCJjcmVhdGVBdWRpbyIsImNyZWF0ZVZpZGVvIiwiY3JlYXRlQ2FudmFzIiwiaHRtbF9lbGVtZW50IiwiZWxlbWVudCQwIiwidW5zYWZlQ29lcmNlIiwidGFnIiwiYXJlYSIsImJhc2UiLCJibG9ja3F1b3RlIiwiYm9keSIsImJyIiwiYnV0dG9uIiwiY2FudmFzIiwiY2FwdGlvbiIsImNvbCIsImNvbGdyb3VwIiwiZGVsIiwiZGl2IiwiZGwiLCJmaWVsZHNldCIsImVtYmVkIiwiZm9ybSIsImZyYW1lc2V0IiwiZnJhbWUiLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaHIiLCJodG1sIiwiaWZyYW1lIiwiaW1nIiwiaW5wdXQkMCIsImlucyIsImxhYmVsIiwibGVnZW5kIiwibGkiLCJsaW5rIiwibWFwJDIiLCJtZXRhIiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsIm9wdGlvbiQxIiwicGFyYW0iLCJwcmUiLCJzY3JpcHQiLCJzZWxlY3QkMCIsInN0eWxlIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGV4dGFyZWEiLCJ0Zm9vdCIsInRoIiwidGhlYWQiLCJ0aXRsZSIsInRyIiwidWwiLCJhdWRpbyIsInZpZGVvIiwidW5zYWZlQ29lcmNlRXZlbnQiLCJjb25zdHIiLCJldiIsIm1vdXNlRXZlbnQiLCJrZXlib2FyZEV2ZW50Iiwid2hlZWxFdmVudCIsIm1vdXNlU2Nyb2xsRXZlbnQiLCJwb3BTdGF0ZUV2ZW50IiwibWVzc2FnZUV2ZW50IiwiZXZlbnRSZWxhdGVkVGFyZ2V0IiwiZXZlbnRBYnNvbHV0ZVBvc2l0aW9uIiwiZXZlbnRBYnNvbHV0ZVBvc2l0aW9uJDAiLCJlbGVtZW50Q2xpZW50UG9zaXRpb24iLCJnZXREb2N1bWVudFNjcm9sbCIsImJ1dHRvblByZXNzZWQiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lcldpdGgiLCJkeCIsImR5IiwiYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXIiLCJ0cnlfa2V5X2NvZGVfbGVmdCIsInRyeV9rZXlfY29kZV9yaWdodCIsInRyeV9rZXlfY29kZV9udW1wYWQiLCJ0cnlfa2V5X2NvZGVfbm9ybWFsIiwibWFrZV91bmlkZW50aWZpZWQiLCJydW5fbmV4dCIsInZhbHVlIiwic3ltYm9sJDExIiwib2ZfZXZlbnQiLCJldnQiLCJjaGFyX29mX2ludCIsImVtcHR5X3N0cmluZyIsIm5vbmUiLCJvZl9ldmVudCQwIiwiZWxlbWVudCQxIiwidGFnZ2VkIiwib3B0X3RhZ2dlZCIsInRhZ2dlZEV2ZW50Iiwib3B0X3RhZ2dlZEV2ZW50Iiwic3RvcFByb3BhZ2F0aW9uIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiYyIsInJlcSIsImNhbGxiYWNrIiwibm93IiwibGFzdCIsImR0IiwiZHQkMCIsImhhc1B1c2hTdGF0ZSIsImhhc1BsYWNlaG9sZGVyIiwiaGFzUmVxdWlyZWQiLCJvdmVyZmxvd19saW1pdCIsInNldFRpbWVvdXQiLCJsb29wIiwicmVtYWluIiwic3RlcCIsImNiIiwiY2xlYXJUaW1lb3V0IiwianNfYXJyYXlfb2ZfY29sbGVjdGlvbiIsImZvcm1EYXRhIiwiZm9ybURhdGFfZm9ybSIsImZpbHRlcl9tYXAkMCIsImhhdmVfY29udGVudCIsImZvcm1fZWxlbWVudHMiLCJpJDIiLCJ2JDIiLCJzdGgiLCJuYW1lJDEiLCJsaXN0IiwidiQxIiwiYXBwZW5kIiwiZm9ybV9jb250ZW50cyIsImZvcm1fZWx0IiwiZW1wdHlfZm9ybV9jb250ZW50cyIsInBvc3RfZm9ybV9jb250ZW50cyIsImNvbnRlbnRzIiwiZ2V0X2Zvcm1fY29udGVudHMiLCJyZWFkeXN0YXRlY2hhbmdlIiwibG9hZHN0YXJ0JDEiLCJwcm9ncmVzcyQxIiwiYWJvcnQkMSIsImVycm9yJDEiLCJsb2FkJDEiLCJ0aW1lb3V0IiwibG9hZGVuZCQwIiwiY3JlYXRlIiwiaW1wb3J0X3NjcmlwdHMiLCJzY3JpcHRzIiwic2V0X29ubWVzc2FnZSIsImpzX2hhbmRsZXIiLCJwb3N0X21lc3NhZ2UiLCJ3ZWJTb2NrZXQiLCJpc19zdXBwb3J0ZWQiLCJkZWZhdWx0Q29udGV4dEF0dHJpYnV0ZXMiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yIiwiZ2V0Q29udGV4dCIsImN0eCIsImdldENvbnRleHRXaXRoQXR0cmlidXRlcyIsInJlZ2V4cCIsInJlZ2V4cF9jYXNlX2ZvbGQiLCJyZWdleHBfd2l0aF9mbGFnIiwiYmx1bnRfc3RyX2FycmF5X2dldCIsInN0cmluZ19tYXRjaCIsInIiLCJzZWFyY2hfZm9yd2FyZCIsIm1hdGNoZWRfc3RyaW5nIiwibWF0Y2hlZF9ncm91cCIsInF1b3RlX3JlcGwiLCJnbG9iYWxfcmVwbGFjZSIsInNfYnkiLCJyZXBsYWNlX2ZpcnN0IiwiZmxhZ3MiLCJsaXN0X29mX2pzX2FycmF5IiwiaWR4JDEiLCJhY2N1IiwiaWR4JDAiLCJhY2N1JDAiLCJzcGxpdCIsImJvdW5kZWRfc3BsaXQiLCJxdW90ZSIsInJlZ2V4cF9zdHJpbmciLCJyZWdleHBfc3RyaW5nX2Nhc2VfZm9sZCIsImludGVycnVwdCIsInBsdXNfcmUiLCJ1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyIsInVybGRlY29kZSIsInVybGVuY29kZSIsIm9wdCIsIndpdGhfcGx1cyIsImRlZmF1bHRfaHR0cF9wb3J0IiwiZGVmYXVsdF9odHRwc19wb3J0IiwicGF0aF9vZl9wYXRoX3N0cmluZyIsImF1eCIsImoiLCJ3b3JkIiwiZW5jb2RlX2FyZ3VtZW50cyIsImRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nIiwibGVuIiwiZGVjb2RlX2FyZ3VtZW50cyIsInVybF9vZl9qc19zdHJpbmciLCJwcm90X3N0cmluZyIsInNzbCIsInBhdGhfc3RyIiwidXJsIiwidXJsX29mX3N0cmluZyIsInN0cmluZ19vZl91cmwiLCJmcmFnIiwiYXJncyIsInBhdGgiLCJwb3J0IiwiaG9zdCIsImZyYWckMCIsImFyZ3MkMCIsInBhdGgkMCIsInBvcnQkMCIsImhvc3QkMCIsImZyYWckMSIsImFyZ3MkMSIsInBhdGgkMSIsInByb3RvY29sIiwicGF0aF9zdHJpbmciLCJhcmd1bWVudHMkMCIsImdldF9mcmFnbWVudCIsInNldF9mcmFnbWVudCIsImdldCQyIiwic2V0JDAiLCJ1IiwiYXNfc3RyaW5nIiwidXBkYXRlX2ZpbGUiLCJjb250ZW50Iiwib2MiLCJzZXRfY2hhbm5lbF9mbHVzaGVyIiwib3V0X2NoYW5uZWwiLCJmJDAiLCJzZXRfY2hhbm5lbF9maWxsZXIiLCJpbl9jaGFubmVsIiwibW91bnQiLCJwcmVmaXgiLCJ1bm1vdW50IiwianNfb2Zfb2NhbWxfdmVyc2lvbiIsImVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zIiwiaXNfc3VwcG9ydGVkJDAiLCJvYnNlcnZlIiwibm9kZSIsImJveCIsImJveCQwIiwiaXNfc3VwcG9ydGVkJDEiLCJvYnNlcnZlJDAiLCJlbnRyeV90eXBlcyIsImVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQiLCJpc19zdXBwb3J0ZWQkMiIsIm9ic2VydmUkMSIsImNoaWxkX2xpc3QiLCJhdHRyaWJ1dGVzIiwiY2hhcmFjdGVyX2RhdGEiLCJzdWJ0cmVlIiwiYXR0cmlidXRlX29sZF92YWx1ZSIsImNoYXJhY3Rlcl9kYXRhX29sZF92YWx1ZSIsImF0dHJpYnV0ZV9maWx0ZXIiLCJjcmVhdGUkMCIsImFkZCQwIiwiayIsInJlbW92ZSIsImZpbmQiLCJrZXlzIiwicmV2aXZlciIsInVuc2FmZV9pbnB1dCIsIm1sSW50NjRfY29uc3RyIiwib3V0cHV0X3Jldml2ZXIiLCJvdXRwdXQiLCJzdHJpbmdfb2ZfbmFtZSIsIm5hbWVfb2Zfc3RyaW5nIiwicmdiX29mX25hbWUiLCJyZ2IiLCJoc2wiLCJzdHJpbmdfb2ZfdCIsImIkMCIsImckMCIsInIkMCIsImIkMSIsImckMSIsInIkMSIsImIkMiIsImckMiIsInIkMiIsImEkMSIsImgkMCIsImhleF9vZl9yZ2IiLCJibHVlIiwiZ3JlZW4iLCJyZWQiLCJpbl9yYW5nZSIsImpzX3Rfb2ZfanNfc3RyaW5nIiwianMiLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJjcmVhdGVFbGVtZW50JDAiLCJ1bnNhZmVDcmVhdGVFbGVtZW50JDAiLCJjcmVhdGVBJDAiLCJjcmVhdGVBbHRHbHlwaCIsImNyZWF0ZUFsdEdseXBoRGVmIiwiY3JlYXRlQWx0R2x5cGhJdGVtIiwiY3JlYXRlQW5pbWF0ZSIsImNyZWF0ZUFuaW1hdGVDb2xvciIsImNyZWF0ZUFuaW1hdGVNb3Rpb24iLCJjcmVhdGVBbmltYXRlVHJhbnNmb3JtIiwiY3JlYXRlQ2lyY2xlIiwiY3JlYXRlQ2xpcFBhdGgiLCJjcmVhdGVDdXJzb3IiLCJjcmVhdGVEZWZzIiwiY3JlYXRlRGVzYyIsImNyZWF0ZUVsbGlwc2UiLCJjcmVhdGVGaWx0ZXIiLCJjcmVhdGVGb250IiwiY3JlYXRlRm9udEZhY2UiLCJjcmVhdGVGb250RmFjZUZvcm1hdCIsImNyZWF0ZUZvbnRGYWNlTmFtZSIsImNyZWF0ZUZvbnRGYWNlU3JjIiwiY3JlYXRlRm9udEZhY2VVcmkiLCJjcmVhdGVGb3JlaWduT2JqZWN0IiwiY3JlYXRlRyIsImNyZWF0ZUdseXBoIiwiY3JlYXRlR2x5cGhSZWYiLCJjcmVhdGVoa2VybiIsImNyZWF0ZUltYWdlIiwiY3JlYXRlTGluZUVsZW1lbnQiLCJjcmVhdGVMaW5lYXJFbGVtZW50IiwiY3JlYXRlTWFzayIsImNyZWF0ZU1ldGFEYXRhIiwiY3JlYXRlTWlzc2luZ0dseXBoIiwiY3JlYXRlTVBhdGgiLCJjcmVhdGVQYXRoIiwiY3JlYXRlUGF0dGVybiIsImNyZWF0ZVBvbHlnb24iLCJjcmVhdGVQb2x5bGluZSIsImNyZWF0ZVJhZGlhbGdyYWRpZW50IiwiY3JlYXRlUmVjdCIsImNyZWF0ZVNjcmlwdCQwIiwiY3JlYXRlU2V0IiwiY3JlYXRlU3RvcCIsImNyZWF0ZVN0eWxlJDAiLCJjcmVhdGVTdmciLCJjcmVhdGVTd2l0Y2giLCJjcmVhdGVTeW1ib2wiLCJjcmVhdGVUZXh0RWxlbWVudCIsImNyZWF0ZVRleHRwYXRoIiwiY3JlYXRlVGl0bGUkMCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwiZG9jdW1lbnQkMCIsImdldEVsZW1lbnRCeUlkJDAiLCJlbGVtZW50JDIiLCJ1bnNhZmVDb2VyY2UkMCIsImFsdEdseXBoIiwiYWx0R2x5cGhEZWYiLCJhbHRHbHlwaEl0ZW0iLCJhbmltYXRlIiwiYW5pbWF0ZUNvbG9yIiwiYW5pbWF0ZU1vdGlvbiIsImFuaW1hdGVUcmFuc2Zvcm0iLCJjaXJjbGUiLCJjbGlwUGF0aCIsImN1cnNvciIsImRlZnMiLCJkZXNjIiwiZWxsaXBzZSIsImZpbHRlciIsImZvbnQiLCJmb250RmFjZSIsImZvbnRGYWNlRm9ybWF0IiwiZm9udEZhY2VOYW1lIiwiZm9udEZhY2VTcmMiLCJmb250RmFjZVVyaSIsImZvcmVpZ25PYmplY3QiLCJnbHlwaCIsImdseXBoUmVmIiwiaGtlcm4iLCJpbWFnZSIsImxpbmVFbGVtZW50IiwibGluZWFyRWxlbWVudCIsIm1ldGFEYXRhIiwibWlzc2luZ0dseXBoIiwibVBhdGgiLCJwYXR0ZXJuIiwicG9seWdvbiIsInBvbHlsaW5lIiwicmFkaWFsZ3JhZGllbnQiLCJyZWN0Iiwic2NyaXB0JDAiLCJzZXQkMSIsInN0b3AiLCJzdHlsZSQwIiwic3ZnIiwic3dpdGNoJDAiLCJzeW1ib2wkMTIiLCJ0ZXh0RWxlbWVudCIsInRleHRwYXRoIiwidGl0bGUkMCIsInRyZWYiLCJ0c3BhbiIsInVzZSIsInZpZXciLCJ2a2VybiIsIndpdGhDcmVkZW50aWFscyIsImV2ZW50U291cmNlIiwiZXZlbnRTb3VyY2Vfb3B0aW9ucyIsImNvbnNvbGUiLCJlbXB0eV9wb3NpdGlvbl9vcHRpb25zIiwiZ2VvbG9jYXRpb24iLCJpc19zdXBwb3J0ZWQkMyIsImVtcHR5X2ludGVyc2VjdGlvbl9vYnNlcnZlcl9vcCIsImludGVyc2VjdGlvbk9ic2VydmVyX3Vuc2FmZSIsImlzX3N1cHBvcnRlZCQ0Iiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImlzX3N1cHBvcnRlZCQ1IiwiZHVyYXRpb25fb2ZfanNvbyIsImQiLCJkdXJhdGlvbl90b19qc29vIiwiZGF5cyIsIm1vbnRocyIsInllYXJzIiwiZGF0ZV9vZl9qc29vIiwiZCQwIiwiZCQxIiwiZGF5IiwibW9udGgiLCJ5ZWFyIiwiZGF0ZV90b19qc29vIiwiZXZ0IiwicG9zIiwidiIsImluZm8iLCJldmVudCIsImV2ZW50X21hbmFnZXIiLCJleGVjdXRlX29yX3Rocm93X2Vycm9yIiwiZiIsInRocm93X2Vycm9yIiwiZGVzY3IiLCJwb3MkMCIsInBvcyQxIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlIiwieCIsIngkMCIsIngkMSIsIngkMiIsIngkMyIsIngkNCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyIsImVtYmVkX3ByaXNlX2VuX2NvbXB0ZSIsImVtYmVkX3ZlcnNlbWVudF9hbGxvY2F0aW9ucyIsImVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaSIsIngkNSIsIngkNiIsIngkNyIsImVtYmVkX2NvbGxlY3Rpdml0ZSIsIngkOCIsImVtYmVkX2FsbG9jYXRpb25fZmFtaWxpYWxlc19hdiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUiLCJlbWJlZF9zbWljIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhIiwiZW1iZWRfZW5mYW50X2VudHJlZSIsImVtYmVkX2VuZmFudCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZSIsImVtYmVkX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYkMCIsImVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaSIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZSQwIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllJDAiLCJlbWJlZF9zbWljX2luIiwiZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvJDAiLCJlbWJlZF9pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmEkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCIsImFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyIsImVuZmFudF9sZV9wbHVzX2FnZSIsImVuZmFudF9sZV9wbHVzX2FnZV9pbiIsImVuZmFudHMiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMSIsInBvdGVudGllbF9wbHVzX2FnZV8yIiwibGVfcGx1c19hZ2UiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8iLCJkYXRlX25haXNzYW5jZSIsImRhdGVfY291cmFudGUiLCJhbm5lZXMiLCJlc3RfaW5mZXJpZXVyX291X2VnYWwiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pIiwiZXN0X3N1cGVyaWV1ciIsInNtaWMiLCJzbWljX2luIiwicmVzaWRlbmNlIiwiYnJ1dF9ob3JhaXJlIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtIiwibW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIiwiYWdlX2w1MTJfM18yIiwic21pY19kb3RfZGF0ZV9jb3VyYW50ZSIsInNtaWNfZG90X3Jlc2lkZW5jZSIsInJlc3VsdCIsInNtaWNfZG90X2JydXRfaG9yYWlyZSIsInJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIiwicGxhZm9uZF9sNTEyXzNfMiIsImVuZmFudCIsImNvbmRpdGlvbnNfaG9yc19hZ2UiLCJkcm9pdF9vdXZlcnQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSIsInBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybSQwIiwicmVzc291cmNlc19tZW5hZ2UiLCJlbmZhbnRzX2FfY2hhcmdlIiwiYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlIiwicHJpc2VfZW5fY29tcHRlIiwibm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zIiwidmVyc2lvbl9hdnJpbF8yMDA4X2RvdF9hZ2VfbWluIiwiYm1hZl9kb3RfZGF0ZV9jb3VyYW50ZSIsInJlc3VsdCQwIiwiYm1hZl9kb3RfbW9udGFudCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdCIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsInJlc3VsdCQxIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9lbmZhbnRzIiwicmVzdWx0JDIiLCJlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2xlX3BsdXMiLCJlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF8iLCJlc3RfZW5mYW50X2xlX3BsdXNfYWdlIiwicGxhZm9uZF9pX2lfZDUyMV8zIiwicGxhZm9uZF9pX2Q1MjFfMyIsImRyb2l0X291dmVydF9jb21wbGVtZW50IiwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpZW1lIiwibW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lIiwibm9tYnJlX3RvdGFsX2VuZmFudHMiLCJzdW0xIiwic3VtMiIsIm5vbWJyZV9tb3llbl9lbmZhbnRzIiwibW9udGFudF9pbml0aWFsX2Jhc2VfcHJlbWllcl9lIiwiZHJvaXRfb3V2ZXJ0X2Jhc2UiLCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbiIsImFsbG9jYXRpb24iLCJjb21wbGVtZW50X2RlZ3Jlc3NpZiIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfcGFyXyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSQwIiwibW9udGFudF9pbml0aWFsX2Jhc2VfZGV1eGllbWVfIiwicmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuIiwibW9udGFudF9pbml0aWFsX21ldHJvcG9sZV9tYWpvIiwibW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlIiwibW9udGFudF9pbml0aWFsX21ham9yYXRpb24iLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8iLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfYmEiLCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuZWVfbWEiLCJtb250YW50X3ZlcnNlX2Jhc2UiLCJtb250YW50X3ZlcnNlX21ham9yYXRpb24iLCJtb250YW50X2Jhc2VfY29tcGxlbWVudF9wb3VyX2IiLCJtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl8kMCIsIm1vbnRhbnRfdmVyc2UiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwiLCJpX2RhdGVfY291cmFudGUiLCJpX2VuZmFudHMiLCJpX3Jlc3NvdXJjZXNfbWVuYWdlIiwiaV9yZXNpZGVuY2UiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUiLCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGUkMCIsImlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlciQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzJDAiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9lbmYiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9hdmEiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb24iLCJpX21vbnRhbnRfdmVyc2UiLCJwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyIsImFyZyIsImFyZyQwIiwiYXJnJDEiLCJhcmckMiIsImFyZyQzIiwicHJpc2VfZW5fY2hhcmdlX29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2UiLCJjb25zIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfIiwic2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfJDAiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSIsInByaXNlX2VuX2NvbXB0ZV90b19qc29vIiwicHJpc2VfZW5fY29tcHRlX29mX2pzb28iLCJ2ZXJzZW1lbnRfYWxsb2NhdGlvbnNfdG9fanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc19vZl9qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiYXJnJDQiLCJhcmckNSIsImFyZyQ2IiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDAiLCJjb2xsZWN0aXZpdGVfdG9fanNvbyIsImFyZyQ3IiwiY29sbGVjdGl2aXRlX29mX2pzb28iLCJjb2xsZWN0aXZpdGUiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMCIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQxIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfbyIsInNtaWNfdG9fanNvbyIsInNtaWNfb2ZfanNvbyIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQwIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQxIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDIiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMyIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMiIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQzIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMiIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQzIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDIiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQ0IiwiZW5mYW50X2xlX3BsdXNfYWdlJDAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNCIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMCIsInNtaWMkMCIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ0IiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyQwIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDQiLCJlbWJlZF90eXBlX3ByZXQiLCJlbWJlZF90aXR1bGFpcmVfcHJldCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kOCIsImVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yOCIsImVtYmVkX2FtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImVtYmVkX2xpbWl0ZV90cmFuY2hlIiwiZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCIsImVtYmVkX3ByZXN0YXRpb25fcmVjdWUiLCJlbWJlZF9wYXJlbnRfb3VfYXV0cmUiLCJlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUiLCJlbWJlZF9wYXJlbnRlIiwiZW1iZWRfZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pIiwiZW1iZWRfem9uZV9kX2hhYml0YXRpb24iLCJlbWJlZF9wYWllbWVudF9sb2dlbWVudF9kaXN0aW4iLCJlbWJlZF92ZXJzZW1lbnRfYSIsImVtYmVkX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllIiwiZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0IiwiZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlIiwiZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSQwIiwiZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llciIsImVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sbyIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsYyIsImVtYmVkX2NvbGxlY3Rpdml0ZSQwIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3NjbyQwIiwiZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pJDAiLCJlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2kiLCJlbWJlZF9jb252ZW50aW9uX2Ffbl9oX2EiLCJlbWJlZF9wZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwiZW1iZWRfcGF0cmltb2luZSIsImVtYmVkX2NvbmRpdGlvbnNfZXRyYW5nZXJzIiwiZW1iZWRfcGVyc29ubmVfdml2YW50X2hhYml0dWVsIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtIiwiZW1iZWRfcmVzc291cmNlc19haWRlc19wZXJzb25uIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlIiwiZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDAiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMSIsImVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlXyIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQyIiwiZW1iZWRfaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVuIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDAiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQyIiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0IiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMCIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQxIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDEiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMSIsImVtYmVkX3NtaWMkMCIsImVtYmVkX25ldWZfb3VfYW5jaWVuIiwiZW1iZWRfdHJhbmNoZV9yZXZlbnUiLCJlbWJlZF90cmFuY2hlX3JldmVudV9kZWNpbWFsIiwiZW1iZWRfYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9kYXRlX25haXNzYW5jZV90cm9pc2llbWUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2wiLCJlbWJlZF9wcmV0IiwiZW1iZWRfbG9nZW1lbnRfZm95ZXIiLCJlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWwiLCJlbWJlZF90eXBlX2JhaWxsZXVyIiwiZW1iZWRfbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfIiwiZW1iZWRfbmF0aW9uYWxpdGUiLCJlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDIiLCJlbWJlZF9pbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGUiLCJlbWJlZF9wcm9wcmlldGFpcmUiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc18iLCJlbWJlZF9kZW1hbmRldXIiLCJlbWJlZF9lbmZhbnRfYV9jaGFyZ2UiLCJlbWJlZF9sb2NhdGlvbiIsImVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlIiwiZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCIsImVtYmVkX21vZGVfb2NjdXBhdGlvbiIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbiIsImVtYmVkX2xvZ2VtZW50IiwiZW1iZWRfbWVuYWdlIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtJDAiLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4kMCIsImVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDMiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydF9sb2dlbSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDQiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2UkMCIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQ1IiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDYiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMyIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ0IiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNiIsImVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdCQwIiwiZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfIiwiZW1iZWRfY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlJDEiLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQyIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllJDIiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWUkMiIsImVtYmVkX3NtaWNfaW4kMCIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyQwIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wIiwiZXhvbmVyZV9jc2ciLCJ0YXV4X2NyZHMiLCJhaWRlX2ZpbmFsZSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllcyIsImNvbmRpdGlvbl8yX2R1XzgzMl8yNSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjYiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjYiLCJ0cmFuY2hlIiwidHJhbmNoZV9oYXV0IiwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2X211bHRpIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzJDAiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8iLCJub21icmVfcGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlIiwibl9ub21icmVfcGFydHNfZDgzMl8yNV9tYWpvcmF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fIiwibl9ub21icmVfcGFydHNfZDgzMl8xMSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIiwiZGF0ZV9uYWlzc2FuY2VfYXNzdXJlIiwiYWdlX291dmVydHVyZV9kcm9pdCIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4iLCJtb2RlX29jY3VwYXRpb24iLCJhaWRlX3ZlcnNlZSIsIm1vbnRhbnRfYXBsIiwibW9udGFudF9jaGFyZ2VzIiwiZGVwZW5zZV9sb2dlbWVudCIsIm1vbnRhbnRfZGV0dGUiLCJtb2RlX29jY3VwYXRpb25faW1wYXllIiwiZGVwZW5zZV9sb2dlbWVudF9icnV0ZSIsInRvdGFsX2VjaGVhbmNlcyIsIm1lbnN1YWxpdGUiLCJsb3llciIsInRvdGFsIiwibW9udGFudF9sb3llciIsImRlcGVuc2VfbG9nZW1lbnRfbmV0dGUiLCJlY2hlYW5jZV9wcmV0X25ldHRlIiwibWVuc3VhbGl0ZV9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfYnJ1dGUiLCJtZW5zdWFsaXRlX2JydXRlIiwibG95ZXJfbmV0IiwibG95ZXJfYnJ1dCIsInNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZSIsIm1vbnRhbnRfaW1wYXllIiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDUiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EkMSIsInNtaWMkMSIsImFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZSIsInRyYWl0ZW1lbnRfbnVsX3RvdXRfbGVfdGVtcHMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UiLCJsb3llcl9wcmluY2lwYWxfYmFzZSIsImJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbiIsInpvbmUiLCJsb2dlbWVudF9lc3RfY2hhbWJyZSIsImFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZSIsInR5cGVfYWlkZSIsImNvbG9jYXRpb24iLCJyZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZSIsImxvZ2VtZW50X21ldWJsZV9kODQyXzIiLCJmcmFjdGlvbl9sODMyXzMiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXQiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb24iLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTYiLCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXIiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2IiwibG95ZXJfcHJpbmNpcGFsX2F2ZWNfcmVkdWN0aW9uIiwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUiLCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmIiwibGltaXRlIiwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4IiwiYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3IiwibG95ZXJfcmVmZXJlbmNlIiwicGxhZm9uZF9sb3llcl9kODIzXzE2XzIiLCJwbGFmb25kX3N1cHByZXNzaW9uX2Q4MjNfMTYiLCJwbGFmb25kX2RlZ3Jlc3Npdml0ZV9kODIzXzE2IiwibG95ZXJfZWxpZ2libGUiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWUiLCJwYXJ0aWNpcGF0aW9uX21pbmltYWxlIiwicmFwcG9ydF9sb3llcnMiLCJhaWRlX2ZpbmFsZSQwIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0IiwidGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlIiwiY3JkcyIsImFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYiIsInRhdXhfbG95ZXJfZWxpZ2libGVfdGF1eF9hcnJvbiIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkdWN0aSIsInRhdXhfcHJpc2VfY29tcHRlX3Jlc3NvdXJjZXMiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnQiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMiLCJwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXMkMCIsInBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUiLCJhaWRlX2ZpbmFsZV9mb3JtdWxlIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDAiLCJ0eXBlX2xvZ2VtZW50X2ZveWVyIiwiZGF0ZV9jb252ZW50aW9ubmVtZW50IiwicmVkZXZhbmNlIiwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lJDAiLCJjb25kaXRpb25fMl9kdV84MzJfMjUkMCIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MjNfMjQiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjQiLCJwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWciLCJjb2VmZmljaWVudF9yX2Q4MzJfMjUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGUiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGEiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWIiLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjciLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMiLCJlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSIsIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUkMCIsImFsbG9jYXRpb25fbWVuc3VlbGxlIiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3IiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDAiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMSIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQyIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDMiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kNCIsImRlbm9taW5hdGV1ciIsImRlbm9taW5hdGV1ciQwIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4IiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZSIsImFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbSIsImVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDAiLCJhaWRlX2ZpbmFsZSQxIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtIiwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4JDEiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMSIsIm1lbnN1YWxpdGVfcHJpbmNpcGFsZSIsInR5cGVfdHJhdmF1eF9sb2dlbWVudCIsImRhdGVfc2lnbmF0dXJlX3ByZXQiLCJsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW4iLCJkYXRlX2VudHJlZV9sb2dlbWVudCIsImNvcHJvcHJpZXRlIiwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTciLCJ0eXBlX3ByZXQiLCJhbmNpZW5uZXRlX2xvZ2VtZW50IiwidGF1eF9mcmFuY3NfdmVyc19ldXJvcyIsInRhdXhfdHJhbmNoZV9zdXBlcmlldXJlX2Q4MzJfMSIsInRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMSIsIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMSIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQwIiwiYW1lbGlvcmVfcGFyX29jY3VwYW50IiwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzJDEiLCJtb250YW50X21pbmltYWxfYWlkZV9kODMyXzEwIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzEwIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4IiwiZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwIiwicGxhZm9uZF9zaWduYXR1cmUiLCJwbGFmb25kX2VudHJlZSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYiIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYyIsIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMSQwIiwibWVuc3VhbGl0ZV9taW5pbWFsZSIsIm1lbnN1YWxpdGVfZWxpZ2libGUiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wiLCJyZXNzb3VyY2VzX2RlbWFuZGV1ciIsInJlc3NvdXJjZXNfY29uam9pbnQiLCJwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW4iLCJkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXUiLCJjb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW4iLCJwZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlIiwiY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtIiwiZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXMiLCJkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXQiLCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm8iLCJwZXJzb25uZSIsInJlc3NvdXJjZXNfcGVyc29ubmVzX3ZpdmFudF9oYSIsImFiYXR0ZW1lbnQiLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzciLCJtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzgiLCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUiLCJhY2MiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkiLCJhZ2VfbDUxMl8zXzIkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyIsImxveWVyX3ByaW5jaXBhbCIsImNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb3llcl9wIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNzb3VyIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9iZW5lZmljIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9ub21icmVfIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9zaXR1YXRpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9hZ2Vlc19vIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9jb2xvY2F0IiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZWR1Y3RpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVuJDAiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW4iLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2FpZGVfZmkiLCJjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3RyYWl0ZW0iLCJpbmZvcyIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kiLCJjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDgiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8iLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDIiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ0IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDUiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNiIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ3IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDgiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kOSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxMCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQxMSIsIm1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlXyIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNSIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfMTUiLCJlcXVpdmFsZW5jZV9sb3llciIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyIsImxveWVyX21pbmltYWwiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2UiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW4iLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmEiLCJjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldCIsIm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzXyIsImNvZWZmaWNpZW50X2Q4NDJfMTIiLCJjb2VmZmljaWVudF9kODQyXzExIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzExIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzYiLCJjb25kaXRpb25fZDg0Ml8xMV8zIiwiZGF0ZV9jYWxjdWwiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIiLCJzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWciLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMCIsInJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZSIsImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0MiQxIiwic2V1aWxfbWluaW1hbF9kZXBlbnNlX25ldHRlX21pIiwicGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNiIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGUkMCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQyIiwicmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpIiwibG9jYXRpb24iLCJsb2dlbWVudGZveWVyIiwicHJvcHJpZXRhaXJlIiwibG9jYXRpb24kMCIsInByb3ByaWV0YWlyZSQwIiwiY2F0ZWdvcmllX2NhbGN1bF9hcGwiLCJyZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGkiLCJiYWlsbGV1ciIsInBhcmFtMCIsInRyYWl0ZW1lbnRfZm9ybXVsZSIsInRyYWl0ZW1lbnRfZm9ybXVsZSQwIiwibG9nZW1lbnRfZm95ZXIiLCJyZXN1bHQkMyIsInJlc3VsdCQ0IiwidHJhaXRlbWVudF9mb3JtdWxlJDEiLCJzb3VzX2NhbGN1bF90cmFpdGVtZW50IiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfIiwibWVuYWdlIiwiZGVtYW5kZXVyIiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UiLCJkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2MiLCJwcmV0IiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jJDAiLCJzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpZXRlIiwic2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0Iiwic2V1aWxfbDgyMl81X3BhdHJpbW9pbmUiLCJ1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZSIsIm5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnQiLCJzZXB0aWVtZV9hbGluZWFfbDgyM18xX2FwcGxpY2EiLCJjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzkiLCJjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzgiLCJjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3AkMCIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90XyIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90XyQwIiwicGF0cmltb2luZV90b3RhbF9kZW1hbmRldXIiLCJjb25kaXRpb25zIiwiY29uZGl0aW9uX25hdGlvbmFsaXRlIiwicGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1IiwiY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlJDAiLCJ1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZSQwIiwicGFydHMiLCJwYXJ0cyQwIiwicGFydHMkMSIsInBhcnRzJDIiLCJjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGEiLCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9taW4iLCJjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZSQwIiwiYWdlX2wxNjFfMTdfMl9zZWN1IiwicHJlc3RhdGlvbiIsImNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZSIsImFnZV9sMzUxXzhfMV9zZWN1IiwiZWxpZ2liaWxpdGVfbG9nZW1lbnQiLCJwZXJzb25uZV9hX2NoYXJnZSIsInBhcmVudCIsImNvbmRpdGlvbl8yX3I4MjNfNCIsImVsaWdpYmlsaXRlIiwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX2FfY2hhIiwicGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jIiwiY29lZmYiLCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGUiLCJub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtIiwiaW5mb3JtYXRpb25zIiwiZGF0ZV9lbW1lbmFnZW1lbnQiLCJkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnQiLCJkZWxhaV9hcHJlc19lbW1lbmFnZW1lbnRfbDgyM18iLCJjb25kaXRpb25fcmFuZ19lbmZhbnQiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X21lbmFnZSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGVtYW5kZXVyIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfZW50cmUiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmEkMCIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZWxpZ2liaWxpdCIsImRhdGVfbmFpc3NhbmNlX291X2dyb3NzZXNzZSIsImNvbmRpdGlvbl9wZXJpb2RlX2RlbWVuYWdlbWVudCIsInBsYWZvbmRfZDgyM18yMiIsIm1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuIiwiYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sIiwiZHVyZWVfbDg0MV8xXzMiLCJsXzg0MV8xXzZfYXBwbGljYWJsZSIsImxfODQxXzFfMl9hcHBsaWNhYmxlIiwibF84NDFfMV8xX2FwcGxpY2FibGUiLCJjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByaWV0ZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X21lbmFnZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfYyIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQwIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZWxpZ2liIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpIiwiZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0JDEiLCJlbGlnaWJpbGl0ZV9kaXNwb3NpdGlvbnNfY29tbXUiLCJkYXRlX21hcmlhZ2UiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMCIsImRhdGVfYWNjb3JkIiwiZWxpZ2liaWxpdGVfbDg0MV8yIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlIiwiY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV8xIiwiY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV82IiwibG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpIiwicHJvcHJpZXRlIiwiY29udmVudGlvbiIsImNvbnZlbnRpb24kMCIsImNvbmRpdGlvbl9sb2dlbWVudF9iYWlsbGV1ciIsInByb3ByaWV0ZSQwIiwiY29uZGl0aW9uX2xvZ2VtZW50X3ByZXQiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pIiwicmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDEiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMiIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQzIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDQiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kNSIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQwIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDEiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQzIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDQiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkNSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ2IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDciLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkOCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDQiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDciLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ5IiwiYWlkZV9maW5hbGVfYXBsIiwiYWlkZV9maW5hbGVfYWwiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ciLCJtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGUiLCJjYWxjdWxldHRlX2RvdF9tZW5hZ2UiLCJjYWxjdWxldHRlX2RvdF9kZW1hbmRldXIiLCJjYWxjdWxldHRlX2RvdF9kYXRlX2NvdXJhbnRlIiwiY2FsY3VsZXR0ZV9kb3RfcmVzc291cmNlc19tZW5hIiwiY2FsY3VsZXR0ZV9kb3RfZWxpZ2liaWxpdGUiLCJjYWxjdWxldHRlX2RvdF9haWRlX2ZpbmFsZV9mb3IiLCJjYWxjdWxldHRlX2RvdF90cmFpdGVtZW50X2FpZGUiLCJjYWxjdWxldHRlX2RvdF9jb2VmZmljZW50c19lbmYiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMCIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQxIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDIiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMyIsInR5cGVfcHJldF90b19qc29vIiwidHlwZV9wcmV0X29mX2pzb28iLCJ0aXR1bGFpcmVfcHJldF90b19qc29vIiwidGl0dWxhaXJlX3ByZXRfb2ZfanNvbyIsInRpdHVsYWlyZV9wcmV0IiwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfIiwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTVfJDAiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfbyIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUiLCJhbWVsaW9yZV9wYXJfb2NjdXBhbnRfdG9fanNvbyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudF9vZl9qc29vIiwibGltaXRlX3RyYW5jaGVfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZSIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWwiLCJwcmVzdGF0aW9uX3JlY3VlX3RvX2pzb28iLCJwcmVzdGF0aW9uX3JlY3VlX29mX2pzb28iLCJwcmVzdGF0aW9uX3JlY3VlIiwicGFyZW50X291X2F1dHJlX3RvX2pzb28iLCJwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyIsInBhcmVudF9vdV9hdXRyZSIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV90b19qcyIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV9vZl9qcyIsInNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSIsInBhcmVudGVfdG9fanNvbyIsInBhcmVudGVfb2ZfanNvbyIsInBhcmVudGUiLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ciLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ckMCIsInpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28iLCJ6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIiwiem9uZV9kX2hhYml0YXRpb24iLCJwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm8kMCIsInZlcnNlbWVudF9hX3RvX2pzb28iLCJ2ZXJzZW1lbnRfYV9vZl9qc29vIiwidmVyc2VtZW50X2EiLCJkZXBlbnNlX2xvZ2VtZW50X3RvX2pzb28iLCJkZXBlbnNlX2xvZ2VtZW50X29mX2pzb28iLCJtb2RlX29jY3VwYXRpb25faW1wYXllX3RvX2pzb28iLCJtb2RlX29jY3VwYXRpb25faW1wYXllX29mX2pzb28iLCJ0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG8iLCJ0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG8kMCIsImFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbiIsImFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbiQwIiwidHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVuIiwidHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVuJDAiLCJzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb28iLCJzaXR1YXRpb25fZmFtaWxpYWxlX29mX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyQwIiwicHJpc2VfZW5fY2hhcmdlX29mX2pzb28kMCIsInR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wJDAiLCJjb2xsZWN0aXZpdGVfdG9fanNvbyQwIiwiY29sbGVjdGl2aXRlX29mX2pzb28kMCIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnRfdG9fanNvbyIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnRfb2ZfanNvbyIsInByaXNlX2VuX2NoYXJnZV9lbmZhbnQiLCJzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV8kMSIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyQyIiwiZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzJDEiLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMkMiIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX3RvXyIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsIiwiY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWxfb2ZfIiwiY29udmVudGlvbl9hX25faF9hX3RvX2pzb28iLCJjb252ZW50aW9uX2Ffbl9oX2EiLCJjb252ZW50aW9uX2Ffbl9oX2Ffb2ZfanNvbyIsInBlcnNvbm5lX3NvdXNfbG9jYXRpb25fdG9fanNvbyIsInBlcnNvbm5lX3NvdXNfbG9jYXRpb24iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX29mX2pzb28iLCJwYXRyaW1vaW5lX3RvX2pzb28iLCJwYXRyaW1vaW5lIiwicGF0cmltb2luZV9vZl9qc29vIiwiY29uZGl0aW9uc19ldHJhbmdlcnNfdG9fanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzIiwiY29uZGl0aW9uc19ldHJhbmdlcnNfb2ZfanNvbyIsInBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudCIsInBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudCQwIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDAiLCJlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW0kMSIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQwIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDEiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMCIsImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcCQxIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDAiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMSIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDEiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUkMCIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMCIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV90b19qIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDAiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ2IiwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtJDciLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kNiIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQ3IiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90JDAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX28kMCIsInNtaWNfdG9fanNvbyQwIiwic21pY19vZl9qc29vJDAiLCJuZXVmX291X2FuY2llbl90b19qc29vIiwibmV1Zl9vdV9hbmNpZW5fb2ZfanNvbyIsIm5ldWZfb3VfYW5jaWVuIiwidHJhbmNoZV9yZXZlbnVfdG9fanNvbyIsInRyYW5jaGVfcmV2ZW51IiwidHJhbmNoZV9yZXZlbnVfb2ZfanNvbyIsInRyYW5jaGVfcmV2ZW51X2RlY2ltYWxfdG9fanNvbyIsInRyYW5jaGVfcmV2ZW51X2RlY2ltYWwiLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX29mX2pzb28iLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV90b19qc28iLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSIsImF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX29mX2pzbyIsImRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZSIsImRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZSQwIiwicHJldF90b19qc29vIiwicHJldF9vZl9qc29vIiwibG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsImxvZ2VtZW50X2ZveWVyX29mX2pzb28iLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18iLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyIsImVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXyQwIiwidHlwZV9iYWlsbGV1cl90b19qc29vIiwidHlwZV9iYWlsbGV1cl9vZl9qc29vIiwidHlwZV9iYWlsbGV1ciIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyQwIiwibG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMiLCJuYXRpb25hbGl0ZV90b19qc29vIiwibmF0aW9uYWxpdGVfb2ZfanNvbyIsIm5hdGlvbmFsaXRlIiwiY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fIiwiY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfb2ZfIiwiaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlIiwiaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlJDAiLCJwcm9wcmlldGFpcmVfdG9fanNvbyIsInByb3ByaWV0YWlyZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDAiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMSIsImRlbWFuZGV1cl90b19qc29vIiwiZGVtYW5kZXVyX29mX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyIsImVuZmFudF9hX2NoYXJnZSIsImVuZmFudF9hX2NoYXJnZV9vZl9qc29vIiwibG9jYXRpb25fdG9fanNvbyIsImxvY2F0aW9uX29mX2pzb28iLCJwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIiwicGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2wiLCJtb2RlX29jY3VwYXRpb25fdG9fanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDAiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMSIsImxvZ2VtZW50X3RvX2pzb28iLCJsb2dlbWVudCIsImxvZ2VtZW50X29mX2pzb28iLCJtZW5hZ2VfdG9fanNvbyIsIm1lbmFnZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDIiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMyIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQyIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDMiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMiIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQzIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDIiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQyIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTMiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMiIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE1IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE4IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3QiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX28iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b18iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl8iLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2kkMCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQyIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDMiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kOCIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQ5IiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDgiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kOSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSQxIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDIiLCJzbWljX2luX3RvX2pzb28kMCIsInNtaWNfaW5fb2ZfanNvbyQwIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpJDIiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMyIsImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcCQ0IiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kNCIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUkMCIsImltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50JDAiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMTAiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMTAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hJDIiLCJzbWljJDIiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTkiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMjAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMjEiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkNCIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkNCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDIyIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCQwIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDQiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50JDAiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckNCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCJdLCJzb3VyY2VzIjpbIiIsIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK2Zvcm1hdC5qcyIsIi9idWlsdGluLytpZWVlXzc1NC5qcyIsIi9idWlsdGluLytlZmZlY3QuanMiLCIvYnVpbHRpbi8rZnNfbm9kZS5qcyIsIi9idWlsdGluLytmcy5qcyIsIi9idWlsdGluLyt1bml4LmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytmc19mYWtlLmpzIiwiL2J1aWx0aW4vK25hdC5qcyIsIi9idWlsdGluLytncmFwaGljcy5qcyIsIi9idWlsdGluLyttYXJzaGFsLmpzIiwiL2J1aWx0aW4vK2lvLmpzIiwiL2J1aWx0aW4vK2djLmpzIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi96YXJpdGhfc3R1YnNfanMvYmlnaW50ZWdlci5qcyIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL3J1bnRpbWUuanMiLCIvYnVpbHRpbi8rYmlnYXJyYXkuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rcGFyc2luZy5qcyIsIi9idWlsdGluLytpbnRzLmpzIiwiL2J1aWx0aW4vK2hhc2guanMiLCIvYnVpbHRpbi8rb2JqLmpzIiwiL2J1aWx0aW4vK2RvbWFpbi5qcyIsIi9idWlsdGluLytjb21wYXJlLmpzIiwiL2J1aWx0aW4vK2pzbGliX2pzX29mX29jYW1sLmpzIiwiL2J1aWx0aW4vK2JpZ3N0cmluZy5qcyIsIi9idWlsdGluLyttZDUuanMiLCIvYnVpbHRpbi8rYmFja3RyYWNlLmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rc3luYy5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK3BybmcuanMiLCIvYnVpbHRpbi8rYmlnc3RyaW5nLWNzdHJ1Y3QuanMiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvdWNoYXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDY0Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9sZXhpbmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRleGMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ZpbGVuYW1lLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jb21wbGV4Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZmxvYXQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3JhbmRvbS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbGlzdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW5fY2hhbm5lbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3V0X2NoYW5uZWwubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2VpdGhlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbmF0aXZlaW50Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9vYmoubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xhenkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3NlcS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Jvb2wubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J5dGVzLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0cmluZy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvdW5pdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvbWFyc2hhbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYXJyYXkubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDMyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9wYXJzaW5nLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zZXQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RhY2subWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3F1ZXVlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJlYW0ubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J1ZmZlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9hcmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Z1bi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZ2MubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2RpZ2VzdC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9iaWdhcnJheS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvZGF0ZXNfY2FsYy9kYXRlcy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIveW9qc29uL3lvanNvbi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi95b2pzb25fY29udi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi95b2pzb25fY29udl9lcnJvci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvcHB4X3lvanNvbl9jb252X2xpYi9wcHhfeW9qc29uX2NvbnZfbGliLm1sIiwiL3dvcmtzcGFjZV9yb290L3J1bnRpbWVzL29jYW1sL3J1bnRpbWUubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sLWNvbXBpbGVyL3J1bnRpbWUvanNvb19ydW50aW1lLm1sIiwiIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbXBvcnQubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9kb21faHRtbC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC90eXBlZF9hcnJheS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZmlsZS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZm9ybS5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwveG1sSHR0cFJlcXVlc3QubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3dvcmtlci5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd2ViU29ja2V0cy5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd2ViR0wubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3JlZ2V4cC5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdXJsLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9zeXNfanMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3Jlc2l6ZU9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9wZXJmb3JtYW5jZU9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9tdXRhdGlvbk9ic2VydmVyLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9qc3RhYmxlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9qc29uLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9jU1MubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9ldmVudHMubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9zdmcubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2V2ZW50U291cmNlLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9maXJlYnVnLm1sIiwiL2hvbWUvZGVuaXMvLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9nZW9sb2NhdGlvbi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW50ZXJzZWN0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW5pcy8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ludGwubWwiLCIvd29ya3NwYWNlX3Jvb3QvcnVudGltZXMvanNvby9ydW50aW1lLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2FwaV93ZWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FpZGVzX2xvZ2VtZW50Lm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvbGF3X3NvdXJjZS9haWRlc19sb2dlbWVudF9hcGlfd2ViLm1sIiwiL3dvcmtzcGFjZV9yb290L2ZyZW5jaF9sYXcvb2NhbWwvYXBpX3dlYi5tbCIsIi9ob21lL2RlbmlzLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RkX2V4aXQubWwiXSwibWFwcGluZ3MiOiI7OztBQUNBLENBQUM7SUFBVUE7SUFDVCxPQUFPQzs7OztLQUNMQztPQUNFO1FBQ0M7VUFBc0JGLDhDQUVoQkc7UUFDSEM7SUFFUixTQUFTRDtNQUNQLElBQUlFLE9BQVNILFFBQVFJO01BQ3JCLG9C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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztVOzs7Ozs7Ozs7STJCdldEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNnaEJTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O1FVZ2U4QiwrQkFBVkEsSUFBZ0M7MkJBQUc7SUFwS3pDLFNDN0pUZ0IsV0R1VVdyQyxHQUFJLDJCTXpjZk4sT055Y1dNLEVBQXdCO0lBMUsxQixTQzVKVHNDLGFEdVVhaEYsR0FBSSxPTTdhakJrRCxjQTdCQWQsT04wY2FwQyxFQUEwQjtJQTNLOUIsU0MzSlRpRixZRHVVWWpGLEdBQUksT003YWhCZ0QsYUE5QkFaLE9OMmNZcEMsRUFBeUI7SUE1SzVCLFNDMUpUa0YsVUR1VVU1SjtNQUF5QixPTS9hbkM0SCxjQTdCQWQsT040Y21DLDRCQUF6QjlHLEdBQTBDO0lBN0szQyxTQ3pKVDZKLFlEdVVZM0YsR0FBeUIsT01oYnJDMEQsY0E3QkFkLE9KaUJBTixVRjRiWXRDLEdBQTRDO0lBOUsvQyxTQ3hKVDRGLGNEdVVjcEY7TUFDaEIsY00vY0VvQyxPTjhjY3BDO01BQ1Esb0JNL2N0Qm9DO01OK2MrQyxxQk0vYy9DQSxPTitjMkQ7SUFoTGxELFNDdkpUaUQ7TUR3VW1CLG9CTWhkbkJqRCxXTmdkNEMscUJNaGQ1Q0EsT05nZHdEO0lBakwvQyxTQ3RKVGtELFdEMlVXNUMsR0FBSSwyQk1uZGZMLE9ObWRXSyxFQUF3QjtJQXJMMUIsU0NySlQ2QyxhRDJVYXZGLEdBQUksT014YmpCa0QsY0E1QkFiLE9Ob2RhckMsRUFBMEI7SUF0TDlCLFNDcEpUd0YsWUQyVVl4RixHQUFJLE9NeGJoQmdELGFBN0JBWCxPTnFkWXJDLEVBQXlCO0lBdkw1QixTQ25KVHlGLFVEMlVVbks7TUFBeUIsT00xYm5DNEgsY0E1QkFiLE9Oc2RtQyw0QkFBekIvRyxHQUEwQztJQXhMM0MsU0NsSlRvSyxZRDJVWWxHLEdBQXlCLE9NM2JyQzBELGNBNUJBYixPSmdCQVAsVUZ1Y1l0QyxHQUE0QztJQXpML0MsU0NqSlRtRyxjRDJVYzNGO01BQ2hCLGNNemRFcUMsT053ZGNyQztNQUNRLG9CTXpkdEJxQztNTnlkK0MscUJNemQvQ0EsT055ZDJEO0lBM0xsRCxTQ2hKVHVEO01ENFVtQixvQk0xZG5CdkQsV04wZDRDLHFCTTFkNUNBLE9OMGR3RDtJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQzJuQ1NDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBMW5DSkc7Ozs7Ozs7O0tBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QUFtQjs7Ozs7O1VEckoxQjs7Ozs7Ozs7O0lDQUE7eUJDQ1VFLHVCQUF1QkEsa0JBQW1CQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJRERwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDT3dCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLjAsImZpbGUiOiJhcGlfd2ViLmJjLmpzIiwic291cmNlUm9vdCI6IiIsIm5hbWVzIjpbImNhbWxfaW50NjRfaXNfemVybyIsIngiLCJjYW1sX3N0cl9yZXBlYXQiLCJuIiwicyIsInIiLCJsIiwiY2FtbF9pbnQ2NF9vZmZzZXQiLCJNYXRoIiwiY2FtbF9yYWlzZV9jb25zdGFudCIsInRhZyIsImNhbWxfZ2xvYmFsX2RhdGEiLCJjYW1sX3JhaXNlX3plcm9fZGl2aWRlIiwiTWxJbnQ2NCIsImxvIiwibWkiLCJoaSIsInRoaXMiLCJ4aGkiLCJoIiwic2lnbiIsIm9mZnNldCIsIm1vZHVsdXMiLCJkaXZpc29yIiwicXVvdGllbnQiLCJ5IiwicSIsImNhbWxfaW50NjRfb2ZfaW50MzIiLCJjYW1sX2ludDY0X3RvX2ludDMyIiwiY2FtbF9pbnQ2NF9pc19uZWdhdGl2ZSIsImNhbWxfaW50NjRfbmVnIiwiY2FtbF9qc2J5dGVzX29mX3N0cmluZyIsImpzb29fc3lzX2dldGVudiIsInByb2Nlc3MiLCJnbG9iYWxUaGlzIiwidW5kZWZpbmVkIiwiY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWciLCJpIiwiY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UiLCJleG4iLCJmb3JjZSIsImNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZSIsImNhbWxfcmFpc2Vfd2l0aF9hcmciLCJhcmciLCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzIiwiY2FtbF9yYWlzZV93aXRoX3N0cmluZyIsIm1zZyIsImNhbWxfaW52YWxpZF9hcmd1bWVudCIsImNhbWxfcGFyc2VfZm9ybWF0IiwiZm10IiwibGVuIiwiZiIsImMiLCJjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nIiwicmF3YnVmZmVyIiwiYnVmZmVyIiwiY2FtbF9pbnQ2NF9mb3JtYXQiLCJ3YmFzZSIsImN2dGJsIiwicCIsImNhbWxfZXhwbTFfZmxvYXQiLCJjYW1sX21sX2NvbmRpdGlvbl9icm9hZGNhc3QiLCJ0IiwianNvb19pc19hc2NpaSIsImNhbWxfdXRmMTZfb2ZfdXRmOCIsImIiLCJjMSIsImMyIiwidiIsImoiLCJTdHJpbmciLCJjYW1sX2pzc3RyaW5nX29mX3N0cmluZyIsImZzX25vZGVfc3VwcG9ydGVkIiwibWFrZV9wYXRoX2lzX2Fic29sdXRlIiwicG9zaXgiLCJwYXRoIiwid2luMzIiLCJzcGxpdERldmljZVJlIiwicmVzdWx0IiwiZGV2aWNlIiwiaXNVbmMiLCJCb29sZWFuIiwicm9vdCIsInNlcCIsInBhdGhfaXNfYWJzb2x1dGUiLCJjYW1sX3RyYWlsaW5nX3NsYXNoIiwibmFtZSIsImNhbWxfY3VycmVudF9kaXIiLCJjYW1sX21ha2VfcGF0aCIsImNvbXAwIiwiY29tcCIsIm5jb21wIiwiY2FtbF91dGY4X29mX3V0ZjE2IiwiZCIsImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIiwidW5peF9lcnJvciIsIm1ha2VfdW5peF9lcnJfYXJncyIsImNvZGUiLCJzeXNjYWxsIiwiZXJybm8iLCJ2YXJpYW50IiwibnVsbCIsImFyZ3MiLCJjYW1sX25hbWVkX3ZhbHVlcyIsImNhbWxfbmFtZWRfdmFsdWUiLCJubSIsImNhbWxfcmFpc2Vfd2l0aF9hcmdzIiwiY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIiwiYSIsImNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMiLCJNbEJ5dGVzIiwiY29udGVudHMiLCJsZW5ndGgiLCJjb250ZW50IiwiY2FtbF9pc19tbF9ieXRlcyIsImNhbWxfaXNfbWxfc3RyaW5nIiwiY2FtbF9ieXRlc19vZl9hcnJheSIsIlVpbnQ4QXJyYXkiLCJjYW1sX2J5dGVzX29mX2pzYnl0ZXMiLCJjYW1sX2J5dGVzX29mX3N0cmluZyIsImNhbWxfcmFpc2Vfc3lzX2Vycm9yIiwiY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUiLCJjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkiLCJjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzIiwiY2FtbF9jcmVhdGVfYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2xlbmd0aCIsImNhbWxfYmxpdF9ieXRlcyIsInMxIiwiaTEiLCJzMiIsImkyIiwiTWxGaWxlIiwiTWxGYWtlRmlsZSIsIm9sZCIsImJ1ZiIsInBvcyIsImNsZW4iLCJuZXdfc3RyIiwib2xkX2RhdGEiLCJkYXRhIiwiTWxGYWtlRmQiLCJmaWxlIiwiZmxhZ3MiLCJNbEZha2VEZXZpY2UiLCJyZXMiLCJTeW1ib2wiLCJuYW1lX3NsYXNoIiwibW9kZSIsInJhaXNlX3VuaXgiLCJwYXJlbnQiLCJSZWdFeHAiLCJzZWVuIiwibSIsImVudHJ5Iiwib2siLCJBcnJheSIsImJ5dGVzIiwiY2FtbF9tbF9zdHJpbmdfbGVuZ3RoIiwiY2FtbF9zdHJpbmdfdW5zYWZlX2dldCIsImNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9ieXRlc19ib3VuZF9lcnJvciIsImNhbWxfYnl0ZXNfdW5zYWZlX3NldCIsImNhbWxfYnl0ZXNfc2V0IiwiTWxOb2RlRmQiLCJmZCIsInJlcXVpcmUiLCJlcnIiLCJidWZfb2Zmc2V0IiwicmVhZCIsIk1sTm9kZURldmljZSIsImNvbnN0cyIsImtleSIsImlzQ2hhcmFjdGVyRGV2aWNlIiwibyIsImpzX3N0YXRzIiwidG9fZGlyIiwidGFyZ2V0IiwibGluayIsImZpbGVfa2luZCIsImNhbWxfZ2V0X3Jvb3QiLCJjYW1sX2ZhaWx3aXRoIiwiY2FtbF9yb290IiwianNvb19tb3VudF9wb2ludCIsInJlc29sdmVfZnNfZGV2aWNlIiwiY2FtbF9zeXNfaXNfZGlyZWN0b3J5IiwiY2FtbF9yYWlzZV9ub3RfZm91bmQiLCJjYW1sX3N5c19nZXRlbnYiLCJzaGlmdF9yaWdodF9uYXQiLCJuYXQxIiwib2ZzMSIsImxlbjEiLCJuYXQyIiwib2ZzMiIsIm5iaXRzIiwid3JhcCIsImNhbWxfZ3Jfc3RhdGUiLCJjYW1sX2dyX3N0YXRlX2dldCIsImNhbWxfZ3JfcG9pbnRfY29sb3IiLCJpbSIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlIiwiTWxPYmplY3RUYWJsZSIsIk5haXZlTG9va3VwIiwib2JqcyIsImNhbWxfc3lzX3JlbmFtZSIsIm9fcm9vdCIsIm5fcm9vdCIsImNhbWxfbG9nMTBfZmxvYXQiLCJjYW1sX3J1bnRpbWVfd2FybmluZ3MiLCJjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIiwiYm9vbCIsImNhbWxfY2xhc3NpZnlfZmxvYXQiLCJpc0Zpbml0ZSIsImlzTmFOIiwiY2FtbF9tbF9jaGFubmVscyIsImNhbWxfcmVmaWxsIiwiY2hhbiIsInN0ciIsInN0cl9hIiwibnJlYWQiLCJjYW1sX2FycmF5X2JvdW5kX2Vycm9yIiwiY2FtbF9tbF9pbnB1dF9zY2FuX2xpbmUiLCJjaGFuaWQiLCJwcmV2X21heCIsImNhbWxfZ2NfbWlub3IiLCJ1bml0IiwiYmlnSW50IiwiQkFTRSIsIkxPR19CQVNFIiwiTUFYX0lOVCIsIk1BWF9JTlRfQVJSIiwic21hbGxUb0FycmF5IiwiREVGQVVMVF9BTFBIQUJFVCIsIkJpZ0ludCIsImpvb19nbG9iYWxfb2JqZWN0Iiwic3VwcG9ydHNOYXRpdmVCaWdJbnQiLCJJbnRlZ2VyIiwicmFkaXgiLCJhbHBoYWJldCIsImNhc2VTZW5zaXRpdmUiLCJwYXJzZVZhbHVlIiwicGFyc2VCYXNlIiwiQmlnSW50ZWdlciIsInZhbHVlIiwiT2JqZWN0IiwiU21hbGxJbnRlZ2VyIiwiTmF0aXZlQmlnSW50IiwiaXNQcmVjaXNlIiwiYXJyYXlUb1NtYWxsIiwiYXJyIiwidHJpbSIsImNvbXBhcmVBYnMiLCJjcmVhdGVBcnJheSIsInRydW5jYXRlIiwiYWRkIiwibF9hIiwibF9iIiwiY2FycnkiLCJiYXNlIiwic3VtIiwiYWRkQW55IiwiYWRkU21hbGwiLCJzdWJ0cmFjdCIsImFfbCIsImJfbCIsImJvcnJvdyIsImRpZmZlcmVuY2UiLCJzdWJ0cmFjdEFueSIsInN1YnRyYWN0U21hbGwiLCJzbWFsbCIsIm11bHRpcGx5TG9uZyIsInByb2R1Y3QiLCJhX2kiLCJiX2oiLCJtdWx0aXBseVNtYWxsIiwic2hpZnRMZWZ0IiwibXVsdGlwbHlLYXJhdHN1YmEiLCJhYyIsImJkIiwiYWJjZCIsInVzZUthcmF0c3ViYSIsImwxIiwibDIiLCJhYnMiLCJtdWx0aXBseVNtYWxsQW5kQXJyYXkiLCJzcXVhcmUiLCJhX2oiLCJkaXZNb2QxIiwiZGl2aXNvck1vc3RTaWduaWZpY2FudERpZ2l0IiwibGFtYmRhIiwicmVtYWluZGVyIiwicXVvdGllbnREaWdpdCIsInNoaWZ0IiwiZGl2TW9kU21hbGwiLCJkaXZNb2QyIiwicGFydCIsImd1ZXNzIiwieGxlbiIsImhpZ2h4IiwiaGlnaHkiLCJjaGVjayIsImRpdk1vZEFueSIsInNlbGYiLCJFcnJvciIsImNvbXBhcmlzb24iLCJxU2lnbiIsIm1vZCIsIm1TaWduIiwiXzAiLCJfMSIsIl8yIiwiZXhwIiwiSW5maW5pdHkiLCJpc0Jhc2ljUHJpbWUiLCJtaWxsZXJSYWJpblRlc3QiLCJuUHJldiIsInN0cmljdCIsImlzUHJpbWUiLCJiaXRzIiwibG9nTiIsIml0ZXJhdGlvbnMiLCJuZXdUIiwibmV3UiIsImxhc3RUIiwibGFzdFIiLCJwb3dlcnNPZlR3byIsInBvd2VyczJMZW5ndGgiLCJoaWdoZXN0UG93ZXIyIiwic2hpZnRfaXNTbWFsbCIsInJlbVF1byIsImJpdHdpc2UiLCJmbiIsInhTaWduIiwieVNpZ24iLCJ4UmVtIiwieVJlbSIsInhEaWdpdCIsInlEaWdpdCIsInhEaXZNb2QiLCJ5RGl2TW9kIiwiTE9CTUFTS19JIiwiTE9CTUFTS19CSSIsInJvdWdoTE9CIiwiaW50ZWdlckxvZ2FyaXRobSIsInRtcCIsImUiLCJtYXgiLCJtaW4iLCJnY2QiLCJsY20iLCJyYW5kQmV0d2VlbiIsImxvdyIsImhpZ2giLCJyYW5nZSIsImRpZ2l0cyIsInRvQmFzZSIsInJlc3RyaWN0ZWQiLCJ0b3AiLCJkaWdpdCIsInRleHQiLCJhYnNCYXNlIiwiYWxwaGFiZXRWYWx1ZXMiLCJpc05lZ2F0aXZlIiwic3RhcnQiLCJwYXJzZUJhc2VGcm9tQXJyYXkiLCJ2YWwiLCJwb3ciLCJzdHJpbmdpZnkiLCJuZWciLCJOdW1iZXIiLCJvdXQiLCJsZWZ0IiwiZGl2bW9kIiwidG9CYXNlU3RyaW5nIiwiemVyb3MiLCJwYXJzZUludCIsInBhcnNlU3RyaW5nVmFsdWUiLCJzcGxpdCIsImRlY2ltYWxQbGFjZSIsImlzVmFsaWQiLCJwYXJzZU51bWJlclZhbHVlIiwibWxfel9ub3JtYWxpemUiLCJtbF96X3BvdyIsInoxIiwibWxfel9yb290IiwieiIsInplcm8iLCJvbmUiLCJlbmQiLCJhbnMiLCJ0d28iLCJtaWQiLCJwbyIsIm1sX3pfcm9vdHJlbSIsImNhbWxfbWxfY29uZGl0aW9uX25ldyIsImNhbWxfaW50NjRfb2ZfYnl0ZXMiLCJjYW1sX2JhX3VpbnQ4X2dldDY0IiwiYmEiLCJpMCIsIm9mcyIsImIxIiwiYjIiLCJiMyIsImI0IiwiYjUiLCJiNiIsImI3IiwiYjgiLCJjYW1sX2ludDY0X3RvX2J5dGVzIiwiY2FtbF9pbnQ2NF9tYXJzaGFsIiwid3JpdGVyIiwic2l6ZXMiLCJjYW1sX2JhX251bV9kaW1zIiwiY2FtbF93cmFwX2V4Y2VwdGlvbiIsImNhbWxfY3JlYXRlX2ZpbGUiLCJqc29vX2NyZWF0ZV9maWxlIiwiY2FtbF9mc19pbml0IiwiY2FtbF9nZXRfY29udGludWF0aW9uX2NhbGxzdGFjayIsImNhbWxfcGFyc2VyX3RyYWNlIiwiY2FtbF9zZXRfcGFyc2VyX3RyYWNlIiwib2xkZmxhZyIsImNhbWxfbGlzdF9vZl9qc19hcnJheSIsImNhbWxfbXVsIiwiY2FtbF9oYXNoX21peF9pbnQiLCJudW1fZGlnaXRzX25hdCIsIm5hdCIsImNhbWxfaGFzaF9uYXQiLCJjYW1sX2NhbGxfZ2VuIiwiYXJnc0xlbiIsImciLCJuYXJncyIsImV4dHJhX2FyZ3MiLCJhcmd1bWVudHMiLCJjYW1sX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50cyIsImNhbWxfc3lzX2NoZGlyIiwiZGlyIiwiY2FtbF9vYmpfdGFnIiwiRnVuY3Rpb24iLCJjYW1sX29ial91cGRhdGVfdGFnIiwiY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuXyIsImNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbiIsImNhbWxfbGF6eV91cGRhdGVfdG9fZm9yY2luZyIsImZpZWxkMCIsImNhbWxfZ2NfY291bnRlcnMiLCJtbF96X2RpdiIsInoyIiwibWxfel9zaWduIiwibWxfel9hZGQiLCJtbF96X2NkaXYiLCJ6MV9wb3MiLCJ6Ml9wb3MiLCJjYW1sX2dyX3N5bmNocm9uaXplIiwiY2FtbF91bml4X2Nsb3NlZGlyIiwiZGlyX2hhbmRsZSIsImNhbWxfdW5peF9vcGVuZGlyIiwiY2FtbF91bml4X3Jld2luZGRpciIsIm5ld19kaXJfaGFuZGxlIiwiY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSIsImNhbWxfdW5peF9yZWFkZGlyIiwiY2FtbF91bml4X2ZpbmRmaXJzdCIsInBhdGhfanMiLCJmaXJzdF9lbnRyeSIsImNhbWxfaXNfY29udGludWF0aW9uX3RhZyIsImxvZzJfb2siLCJqc29vX2Zsb29yX2xvZzIiLCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQiLCJmbG9hdDMyYSIsIkZsb2F0MzJBcnJheSIsImludDMyYSIsIkludDMyQXJyYXkiLCJjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSIsImNhbWxfaW50NjRfYml0c19vZl9mbG9hdCIsImsiLCJyMyIsInIyIiwicjEiLCJjYW1sX2JhX3NlcmlhbGl6ZSIsInN6IiwiY29tcGxleCIsImNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQiLCJraW5kIiwiY2FtbF9iYV9jcmVhdGVfYnVmZmVyIiwic2l6ZSIsInZpZXciLCJGbG9hdDY0QXJyYXkiLCJJbnQ4QXJyYXkiLCJJbnQxNkFycmF5IiwiVWludDE2QXJyYXkiLCJjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMiLCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMiLCJOYU4iLCJjYW1sX2JhX2dldF9zaXplIiwiZGltcyIsIm5fZGltcyIsImNhbWxfaW50NjRfY3JlYXRlX2xvX2hpIiwiY2FtbF9pbnQ2NF9oaTMyIiwiY2FtbF9pbnQ2NF9sbzMyIiwiY2FtbF9iYV9jdXN0b21fbmFtZSIsIk1sX0JpZ2FycmF5IiwibGF5b3V0IiwicmUiLCJ0b3RhbCIsImsxIiwiazIiLCJNbF9CaWdhcnJheV9jXzFfMSIsImNhbWxfYmFfY3JlYXRlX3Vuc2FmZSIsInNpemVfcGVyX2VsZW1lbnQiLCJjYW1sX2JhX2Rlc2VyaWFsaXplIiwicmVhZGVyIiwibnVtX2RpbXMiLCJzaXplX2RpbSIsInNpemVfZGltX2hpIiwic2l6ZV9kaW1fbG8iLCJzaXh0eSIsImludDY0IiwiY2FtbF9iYV9jb21wYXJlIiwiY2FtbF9oYXNoX21peF9pbnQ2NCIsImNhbWxfaGFzaF9taXhfZmxvYXQiLCJ2MCIsImNhbWxfYmFfaGFzaCIsIm51bV9lbHRzIiwidyIsImNhbWxfaW50MzJfdW5tYXJzaGFsIiwiY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsIiwiY2FtbF9pbnQ2NF91bm1hcnNoYWwiLCJjYW1sX2ludDY0X2NvbXBhcmUiLCJjYW1sX2ludDY0X2hhc2giLCJjYW1sX2N1c3RvbV9vcHMiLCJjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20iLCJjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20iLCJudW0iLCJjdXN0b20iLCJzd2FwIiwiY2FtbF9jb21wYXJlX3ZhbF90YWciLCJjYW1sX2ludF9jb21wYXJlIiwiY2FtbF9zdHJpbmdfY29tcGFyZSIsImNhbWxfYnl0ZXNfY29tcGFyZSIsImNhbWxfY29tcGFyZV92YWwiLCJzdGFjayIsInRhZ19hIiwidGFnX2IiLCJjYW1sX2dyZWF0ZXJ0aGFuIiwiZGl2X2hlbHBlciIsImRpdl9kaWdpdF9uYXQiLCJuYXRxIiwib2ZzcSIsIm5hdHIiLCJvZnNyIiwicmVtIiwibnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0Iiwic2hpZnRfbGVmdF9uYXQiLCJNbE5hdCIsImNyZWF0ZV9uYXQiLCJzZXRfdG9femVyb19uYXQiLCJpbmNyX25hdCIsImNhcnJ5X2luIiwiYWRkX25hdCIsImxlbjIiLCJuYXRfb2ZfYXJyYXkiLCJtdWx0X2RpZ2l0X25hdCIsIm5hdDMiLCJvZnMzIiwieDEiLCJ4MiIsIngzIiwiZGVjcl9uYXQiLCJzdWJfbmF0IiwiY29tcGFyZV9uYXQiLCJkaXZfbmF0IiwicXVvIiwiY2FtbF9iYV9ibGl0Iiwic3JjIiwiZHN0IiwiaXNfZGlnaXRfaW50IiwiY2FtbF9pbnQ2NF9kaXYiLCJjYW1sX2pzX2h0bWxfZW50aXRpZXMiLCJlbnRpdHkiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjYW1sX3N0cmluZ191bnNhZmVfc2V0IiwiY2FtbF9pbnQ2NF9vZl9mbG9hdCIsImNhbWxfbWxfY2hhbm5lbF9zaXplXzY0IiwiY2FtbF9iYV9zZXRfMiIsIm1sX3pfa3JvbmVja2VyIiwibWxfel9vZl9pbnQ2NCIsImk2NCIsImNhbWxfYXJndiIsIm1haW4iLCJhcmd2IiwiYXJnczIiLCJjYW1sX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfanNfZXZhbF9zdHJpbmciLCJldmFsIiwic2VyaWFsaXplX25hdCIsImNhbWxfbWVtcHJvZl9zZXQiLCJfY29udHJvbCIsIm1sX3pfbmVnIiwiY2FtbF9zeXNfZXhpdCIsImNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yIiwiY2FtbF9qc19mcm9tX2FycmF5IiwiY2FtbF9iYV9yZXNoYXBlIiwidmluZCIsIm5ld19kaW0iLCJjYW1sX29vX2xhc3RfaWQiLCJjYW1sX3NldF9vb19pZCIsImNhbWxfZ3JfZmlsbF9yZWN0IiwiY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEiLCJzdHIxIiwicG9zMSIsImJhMiIsInBvczIiLCJzbGljZSIsImNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZSIsImpzbmFtZSIsImNhbWxfZ2V0X2dsb2JhbF9kYXRhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCIsImNhbWxfYmFfdWludDhfZ2V0MTYiLCJtbF96X29mX2ludDMyIiwiY2FtbF9jb21wYXJlIiwiY2FtbF9NRDVUcmFuc2Zvcm0iLCJ4eCIsImZmIiwiZ2ciLCJoaCIsImlpIiwiY2FtbF9NRDVVcGRhdGUiLCJjdHgiLCJpbnB1dCIsImlucHV0X2xlbiIsImluX2J1ZiIsImlucHV0X3BvcyIsIm1pc3NpbmciLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3JlYWRfcG9sbCIsImN1cnNvciIsImNhbGxiYWNrcyIsImNhbWxfZnJlc2hfb29faWQiLCJjYW1sX2ludDY0X3RvX2Zsb2F0IiwiY2FtbF9iYV9nZXRfMSIsImNhbWxfYmlnc3RyaW5nX21lbWNtcCIsImNhbWxfbmV3X3N0cmluZyIsImNhbWxfZXJmX2Zsb2F0IiwiYTEiLCJhMiIsImEzIiwiYTQiLCJhNSIsImNhbWxfYmFfdWludDhfZ2V0MzIiLCJjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoIiwibWxfel9zaGlmdF9yaWdodCIsImFtdCIsImNhbWxfc3RyX2luaXRpYWxpemUiLCJjYW1sX29ial9ibG9jayIsImNhbWxfZ3JfY2xlYXJfZ3JhcGgiLCJiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIiwiYnMiLCJjYW1sX3N5c19jb25zdF9uYWtlZF9wb2ludGVyc19jaGVja2VkIiwiX3VuaXQiLCJseG9yX2RpZ2l0X25hdCIsImNhbWxfb2JqX2FkZF9vZmZzZXQiLCJjYW1sX2ZpbmFsX3JlbGVhc2UiLCJjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUiLCJjYW1sX2pzX3RvX2FycmF5IiwibWxfel9sb2dvciIsImNhbWxfc3lzX2lzX3JlZ3VsYXJfZmlsZSIsImNhbWxfZ3JfcGxvdCIsImNvbG9yIiwiY2FtbF9ieXRlc19zZXQ2NCIsImNhbWxfc3RyaW5nX3NldDE2IiwiaTE2IiwiY2FtbF9pbnQ2NF9ic3dhcCIsIm1sX3pfZml0c19pbnQiLCJtbF96X2ZpdHNfaW50MzIiLCJjYW1sX2djX21ham9yIiwibWxfel9zaGlmdF9sZWZ0IiwiY2FtbF9sZXhfYXJyYXkiLCJjYW1sX2xleF9lbmdpbmUiLCJ0YmwiLCJzdGFydF9zdGF0ZSIsImxleGJ1ZiIsImxleF9idWZmZXIiLCJsZXhfYnVmZmVyX2xlbiIsImxleF9zdGFydF9wb3MiLCJsZXhfY3Vycl9wb3MiLCJsZXhfbGFzdF9wb3MiLCJsZXhfbGFzdF9hY3Rpb24iLCJsZXhfZW9mX3JlYWNoZWQiLCJsZXhfYmFzZSIsImxleF9iYWNrdHJrIiwibGV4X2RlZmF1bHQiLCJsZXhfdHJhbnMiLCJsZXhfY2hlY2siLCJzdGF0ZSIsImJhY2t0cmsiLCJjYW1sX3N5c19maWxlX2V4aXN0cyIsImNhbWxfY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3QiLCJjYW1sX2FycmF5X3N1YiIsImNhbWxfYnl0ZXNfZXF1YWwiLCJjYW1sX2dyX3NpemVfeCIsImNhbWxfbWxfZGVidWdfaW5mb19zdGF0dXMiLCJjYW1sX2F0b21pY19mZXRjaF9hZGQiLCJyZWYiLCJvc190eXBlIiwiY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiIsImNhbWxfY29zaF9mbG9hdCIsIk1sTXV0ZXgiLCJjYW1sX21sX211dGV4X25ldyIsImNhbWxfZXBoZV9rZXlfb2Zmc2V0IiwiY2FtbF9lcGhlX2NoZWNrX2tleSIsIndlYWsiLCJjYW1sX2hhc2hfbWl4X2ZpbmFsIiwiY2FtbF9ncl90ZXh0X3NpemUiLCJ0eHQiLCJjYW1sX2xleF9ydW5fbWVtIiwibWVtIiwiY3Vycl9wb3MiLCJjYW1sX2xleF9ydW5fdGFnIiwiY2FtbF9uZXdfbGV4X2VuZ2luZSIsImxleF9tZW0iLCJsZXhfYmFzZV9jb2RlIiwibGV4X2JhY2t0cmtfY29kZSIsImxleF9kZWZhdWx0X2NvZGUiLCJsZXhfdHJhbnNfY29kZSIsImxleF9jaGVja19jb2RlIiwibGV4X2NvZGUiLCJwY19vZmYiLCJwc3RhdGUiLCJiYXNlX2NvZGUiLCJjYW1sX2JhX3VpbnQ4X3NldDY0IiwibWxfel9wb3Bjb3VudCIsImNhbWxfc3lzX2V4ZWN1dGFibGVfbmFtZSIsImNhbWxfbGVzc2VxdWFsIiwiY2FtbF9hY29zaF9mbG9hdCIsImNhbWxfTUQ1SW5pdCIsIkFycmF5QnVmZmVyIiwiYjMyIiwiVWludDMyQXJyYXkiLCJjYW1sX21sX2ZsdXNoIiwiY2FtbF9zZWVrX291dCIsImNhbWxfbWxfc2Vla19vdXRfNjQiLCJjb21wYXJlX25hdF9yZWFsIiwiY2FtbF9nY19zZXQiLCJjYW1sX2pzX2dldCIsImNhbWxfdW5peF9pc2F0dHkiLCJmaWxlRGVzY3JpcHRvciIsInR0eSIsImNhbWxfbWxfc2V0X2J1ZmZlcmVkIiwiY2FtbF9nY19jb21wYWN0aW9uIiwiY2FtbF9lcGhlX2dldF9rZXkiLCJjYW1sX3VuaXhfbG9jYWx0aW1lIiwiRGF0ZSIsImRfbnVtIiwiamFudWFyeWZpcnN0IiwiZG95IiwiamFuIiwianVsIiwic3RkVGltZXpvbmVPZmZzZXQiLCJjYW1sX3VuaXhfbWt0aW1lIiwidG0iLCJ0bTIiLCJqc29vX3pfb2ZfanNfc3RyaW5nX2Jhc2UiLCJiYyIsIm1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2J5dGVzX3RvX2JhIiwiY2FtbF9zeXNfZmRzIiwiY2FtbF9zeXNfY2xvc2UiLCJjYW1sX21sX2Nsb3NlX2NoYW5uZWwiLCJjYW1sX2F0b21pY19leGNoYW5nZSIsImNhbWxfc3lzX2lzYXR0eSIsIl9jaGFuIiwiaXNfZGlnaXRfemVybyIsImNhbWxfdW5peF9sc3RhdCIsImNhbWxfdW5peF9sc3RhdF82NCIsImNhbWxfanNfc2V0IiwibWxfel9nY2RleHRfaW50ZXJuIiwibGFzdHgiLCJsYXN0eSIsIm1sX3pfdGVzdGJpdCIsImNhbWxfYXJyYXlfZ2V0IiwiYXJyYXkiLCJpbmRleCIsImNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4YyIsImNvbnQiLCJjYW1sX3VuaXhfcm1kaXIiLCJjYW1sX2xvZzJfZmxvYXQiLCJjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3Jlc3VtZSIsIm1sX3pfY29uZ3J1ZW50IiwiY2FtbF9zcGFjZXRpbWVfb25seV93b3Jrc19mb3JfbmF0aXZlX2NvZGUiLCJjYW1sX2ludDY0X3N1YiIsImNhbWxfc2Vla19pbiIsImNhbWxfbWxfc2Vla19pbl82NCIsImNhbWxfZG9tYWluX2lkIiwiY2FtbF9tbF9tdXRleF91bmxvY2siLCJjYW1sX2RvbWFpbl9sYXRlc3RfaWR4IiwiY2FtbF9kb21haW5fc3Bhd24iLCJtdXRleCIsImlkIiwiY2FtbF91bml4X21rZGlyIiwicGVybSIsImNhbWxfaW50NjRfc2hpZnRfbGVmdCIsImNhbWxfbm90ZXF1YWwiLCJtbF96X2FicyIsImNhbWxfc3lzX2NvbnN0X2ludF9zaXplIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrIiwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2siLCJjYW1sX2lzX2pzIiwiY2FtbF9sYXp5X3VwZGF0ZV90b19mb3J3YXJkIiwiY2FtbF9iYV9kaW0iLCJjYW1sX2JhX2RpbV8xIiwibWxfel9zcXJ0IiwiY2FtbF9qc19tZXRoX2NhbGwiLCJtbF96X2x1Y251bSIsImNhbWxfZXBoZV9kYXRhX29mZnNldCIsImNhbWxfd2Vha19jcmVhdGUiLCJjYW1sX2VwaGVfY3JlYXRlIiwiY2FtbF9qc190b19ieXRlX3N0cmluZyIsIm1sX3pfcHJvYmFiX3ByaW1lIiwiY2FtbF90cmFtcG9saW5lIiwiY2FtbF9tYXliZV9wcmludF9zdGF0cyIsImNhbWxfYnl0ZXNfdW5zYWZlX2dldCIsImNhbWxfYnl0ZXNfZ2V0NjQiLCJjYW1sX2N1c3RvbV9ldmVudF9pbmRleCIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZWdpc3RlciIsImV2ZW50X25hbWUiLCJldmVudF90YWciLCJldmVudF90eXBlIiwiY2FtbF91bml4X2hhc19zeW1saW5rIiwibWxfel9yZW0iLCJjYW1sX2VwaGVfc2V0X2tleSIsImNhbWxfZXBoZV91bnNldF9rZXkiLCJjb3VudCIsImNhbWxfd2Vha19zZXQiLCJjYW1sX3N5c19yZW1vdmUiLCJjYW1sX3N0cmluZ19ib3VuZF9lcnJvciIsImNhbWxfc3RyaW5nX2dldDMyIiwiY2FtbF9ieXRlc19nZXQiLCJjYW1sX2h5cG90X2Zsb2F0IiwibWxfel9mYWNNIiwiY3VycmVudCIsImNhbWxfanNfY2FsbCIsImNhbWxfc3lzX2NvbnN0X21heF93b3NpemUiLCJjYW1sX3VuaXhfaW5ldF9hZGRyX29mX3N0cmluZyIsIm1sX3pfdG9faW50IiwibWxfel9tdWxfb3ZlcmZsb3dzIiwiY2FtbF9oYXNoX21peF9ieXRlc19hcnIiLCJjYW1sX2hhc2hfbWl4X2pzYnl0ZXMiLCJjYW1sX21sX2J5dGVzX2NvbnRlbnQiLCJjYW1sX2hhc2hfbWl4X2J5dGVzIiwiY2FtbF9ieXRlc19sZXNzdGhhbiIsImNhbWxfZXJmY19mbG9hdCIsImNhbWxfZ3JfZmlsbF9wb2x5IiwiYXIiLCJjYW1sX2djX3F1aWNrX3N0YXQiLCJtbF96X2ZhYyIsImNhbWxfbWxfaW5wdXRfY2hhciIsImNhbWxfbWxfaW5wdXRfaW50IiwiY2FtbF9ncl9kaXNwbGF5X21vZGUiLCJtbF96X2RpdmlzaWJsZSIsImNhbWxfb2JqX3JlYWNoYWJsZV93b3JkcyIsIm50aF9kaWdpdF9uYXQiLCJjYW1sX2FycmF5X2JsaXQiLCJjYW1sX2Zsb2F0X29mX3N0cmluZyIsIm0zIiwibWFudGlzc2EiLCJleHBvbmVudCIsImNhbWxfc3lzX2dldGN3ZCIsImNhbWxfaW50NjRfYWRkIiwiY2FtbF9pbnQ2NF9tdWwiLCJjYW1sX2ludDY0X3VsdCIsImNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSIsImNhbWxfcGFyc2VfZGlnaXQiLCJjYW1sX2ludDY0X29mX3N0cmluZyIsImJhc2U2NCIsInRocmVzaG9sZCIsImNhbWxfYmFfc2V0XzEiLCJjYW1sX2ludDY0X3hvciIsImNhbWxfaW50NjRfb3IiLCJjYW1sX2x4bV9uZXh0Iiwic2hpZnRfbCIsInNoaWZ0X3IiLCJvciIsInhvciIsIm11bCIsInJvdGwiLCJnZXQiLCJzZXQiLCJNIiwiZGFiYSIsInEwIiwicTEiLCJzdCIsIngwIiwiY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiIsImNhbWxfbGlzdF90b19qc19hcnJheSIsImNhbWxfb3V0cHV0X3ZhbCIsIldyaXRlciIsIm5vX3NoYXJpbmciLCJjbG9zdXJlcyIsImNvbnNvbGUiLCJpbnRlcm5fb2JqX3RhYmxlIiwibWVtbyIsImV4aXN0aW5nX29mZnNldCIsImV4dGVybl9yZWMiLCJvcHMiLCJzel8zMl82NCIsImhlYWRlcl9wb3MiLCJvbGRfcG9zIiwidHlwZV9vZl92IiwiY2FtbF9zdHJpbmdfb2ZfYXJyYXkiLCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmciLCJjYW1sX3JhaXNlX25vdF9hX2RpciIsImNhbWxfc3lzX3N5c3RlbV9jb21tYW5kIiwiY21kIiwiY2hpbGRfcHJvY2VzcyIsImNhbWxfanNfZXJyb3Jfb2ZfZXhjZXB0aW9uIiwiY2FtbF91bml4X2dldHVpZCIsImRlc2VyaWFsaXplX25hdCIsImluaXRpYWxpemVfbmF0IiwibWxfel9zdWNjIiwiY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyIsImNhbWxfZ3Jfb3Blbl9zdWJ3aW5kb3ciLCJVSW50OEFycmF5UmVhZGVyIiwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZSIsInJlYWR2bHEiLCJvdmVyZmxvdyIsIm43IiwiaGVhZGVyX2xlbiIsImRhdGFfbGVuIiwiTWxTdHJpbmdSZWFkZXIiLCJ6c3RkX2RlY29tcHJlc3MiLCJhYiIsInU4IiwidTE2IiwidTMyIiwiaTMyIiwic2xjIiwiZmlsbCIsImNwdyIsImVjIiwiaW5kIiwibnQiLCJyYiIsInJ6ZmgiLCJkYXQiLCJuMyIsImZsZyIsInNzIiwiY2MiLCJkZiIsImZjZiIsImJ0IiwiZGIiLCJkaSIsImZzYiIsImZzcyIsIndzIiwid2IiLCJtc2IiLCJyZnNlIiwibWFsIiwidHBvcyIsImFsIiwicHJvYnMiLCJzeW0iLCJodCIsImZyZXEiLCJkc3RhdGUiLCJuc3RhdGUiLCJiYjEiLCJzeW1zIiwiY2J0IiwibXNrIiwibXNrMWZiIiwibXN2Iiwic3ZhbCIsInJidCIsInN5bXBvcyIsInNzdGVwIiwic21hc2siLCJzZiIsIm5zIiwibmIiLCJyaHUiLCJ3YyIsImhiIiwiaHciLCJyYyIsInJpIiwiX2EiLCJlYnQiLCJmZHQiLCJlcG9zIiwibGIiLCJzdDEiLCJzdDIiLCJidHIxIiwiYnRyMiIsImZwb3MiLCJieXRlIiwid2VzIiwid3QiLCJtYiIsInRzIiwiaGJ1ZiIsInB2IiwiZGxsdCIsImRtbHQiLCJkb2N0IiwiYjJibCIsImJsIiwibGxiIiwibGxibCIsIm1sYiIsIm1sYmwiLCJkaHUiLCJodSIsImViIiwiYnRyIiwiZGh1NCIsInN6MSIsInN6MiIsInN6MyIsInJ6YiIsImIwIiwiYnR5cGUiLCJsYnQiLCJsc3MiLCJsY3MiLCJzNCIsInNwbCIsImh1ZCIsInNjbSIsImR0cyIsIm1kIiwicmJ1ZiIsIl9iIiwibWx0Iiwib2N0IiwibGx0Iiwic3BvcyIsIm91YnQiLCJsc3QiLCJvc3QiLCJtc3QiLCJsbGMiLCJsYnRyIiwibWxjIiwibWJ0ciIsIm9mYyIsIm9idHIiLCJvZnAiLCJvZmYiLCJtbCIsImxsIiwiaWR4Iiwic3RpbiIsImNjdCIsImJ1ZnMiLCJvbCIsImNoayIsImJsayIsImNhbWxfZmxvYXRfb2ZfYnl0ZXMiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyIiwibWFnaWMiLCJjb21wcmVzc2VkIiwidW5jb21wcmVzc2VkX2RhdGFfbGVuIiwibnVtX29iamVjdHMiLCJfc2l6ZV8zMiIsIl9zaXplXzY0Iiwib2JqX2NvdW50ZXIiLCJpbnRlcm5fcmVjIiwiaGVhZGVyIiwiZXhwZWN0ZWRfc2l6ZSIsImNhbWxfc3RyaW5nX29mX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIiwiY2FtbF9pbnB1dF92YWx1ZSIsImJsb2NrIiwiY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXAiLCJjYW1sX2F0b21pY19jYXMiLCJjYW1sX2NvcHlzaWduX2Zsb2F0IiwiY2FtbF9ncl9zZXRfdGV4dF9zaXplIiwiY2FtbF9hdG9taWNfbG9hZCIsImNhbWxfTUQ1RmluYWwiLCJjYW1sX21kNV9ieXRlcyIsImNhbWxfYmFfc2V0X2dlbmVyaWMiLCJjYW1sX21sX2NvbmRpdGlvbl93YWl0IiwibXV0ZXh0IiwiY2FtbF9zdHJpbmdfbGVzc2VxdWFsIiwiY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsIiwiY2FtbF9uZXh0YWZ0ZXJfZmxvYXQiLCJjYW1sX2dyX3NpemVfeSIsIm1sX3pfZmFjMiIsImNhbWxfcG9zX2luIiwiY2FtbF9tbF9wb3NfaW4iLCJjYW1sX2ludDY0X2FuZCIsImNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSIsIm1sX3pfYmluIiwiY29lZmYiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3BhdXNlIiwiY2FtbF91bml4X3VubGluayIsImNhbWxfc3lzX29wZW5fZm9yX25vZGUiLCJmcyIsImZkMiIsIk1sRmFrZUZkX291dCIsImNhbWxfc3lzX29wZW5faW50ZXJuYWwiLCJjYW1sX3N5c19vcGVuIiwiX3Blcm1zIiwibWxfel9nY2QiLCJtbF96X2hhbWRpc3QiLCJtbF96X211bCIsImNhbWxfc3RyaW5nX2dldCIsInJlX21hdGNoIiwicmVfd29yZF9sZXR0ZXJzIiwib3Bjb2RlcyIsImlzX3dvcmRfbGV0dGVyIiwiaW5fYml0c2V0IiwicmVfbWF0Y2hfaW1wbCIsInBhcnRpYWwiLCJwcm9nIiwiY3Bvb2wiLCJub3JtdGFibGUiLCJudW1ncm91cHMiLCJudW1yZWdpc3RlcnMiLCJzdGFydGNoYXJzIiwicGMiLCJxdWl0IiwiZ3JvdXBzIiwicmVfcmVnaXN0ZXIiLCJiYWNrdHJhY2siLCJpdGVtIiwicHVzaCIsImFjY2VwdCIsInByZWZpeF9tYXRjaCIsIm9wIiwic2FyZyIsInVhcmciLCJncm91cCIsInJlX3NlYXJjaF9iYWNrd2FyZCIsIm1sX3pfbG9nYW5kIiwiY2FtbF9qc19mcm9tX3N0cmluZyIsImNhbWxfYmFfc3ViIiwiY2hhbmdlZF9kaW0iLCJuZXdfZGltcyIsIm5ld19kYXRhIiwiY2FtbF9nY19mdWxsX21ham9yIiwiY2FtbF9tbF9tdXRleF90cnlfbG9jayIsImNhbWxfYnl0ZXNfc2V0MzIiLCJjYW1sX2dyX3NpZ2lvX3NpZ25hbCIsImNhbWxfYmFfdWludDhfc2V0MzIiLCJtbF96X2Rpdl9yZW0iLCJjYW1sX3N5c19jb25zdF9vc3R5cGVfdW5peCIsImNhbWxfdW5peF9nbXRpbWUiLCJjYW1sX3NpZ25iaXRfZmxvYXQiLCJjYW1sX2dyX2N1cnJlbnRfeCIsImNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgiLCJjYW1sX2dyX3NldF9mb250IiwiY2FtbF9ncl9zZXRfY29sb3IiLCJjb252ZXJ0IiwibnVtYmVyIiwiY19zdHIiLCJjYW1sX2dyX21vdmV0byIsImNhbWxfZ3JfcmVzaXplX3dpbmRvdyIsImNhbWxfZ3Jfc3RhdGVfaW5pdCIsImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSIsInRhIiwiY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5IiwiY2FtbF9tbF9zZWVrX291dCIsImNhbWxfanNfdHlwZW9mIiwiY2FtbF9oYXNoX21peF9zdHJpbmciLCJjYW1sX3N0cmluZ19oYXNoIiwiY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2UiLCJjYW1sX2dyX2xpbmV0byIsImNhbWxfanNfZnVuY3Rpb25fYXJpdHkiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUiLCJjYW1sX2JhX2RpbV8zIiwiY2FtbF9pc19zcGVjaWFsX2V4Y2VwdGlvbiIsImNhbWxfZm9ybWF0X2V4Y2VwdGlvbiIsImJ1Y2tldCIsImNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uIiwiaGFuZGxlciIsImF0X2V4aXQiLCJjYW1sX2VwaGVfY2hlY2tfZGF0YSIsImNhbWxfYnl0ZXNfZ2V0MTYiLCJjYW1sX29ial9tYWtlX2ZvcndhcmQiLCJjYW1sX2pzX2Zyb21fYm9vbCIsImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZSIsImNhbWxfZXhwMl9mbG9hdCIsImNhbWxfZ3JfY2xvc2VfZ3JhcGgiLCJjYW1sX21sX2RvbWFpbl9jcHVfcmVsYXgiLCJjYW1sX2NyZWF0ZV9zdHJpbmciLCJjYW1sX21sX2lucHV0X2Jsb2NrIiwiYXZhaWwiLCJjYW1sX21kNV9jaGFuIiwidG9yZWFkIiwiY2FtbF9hdGFuaF9mbG9hdCIsImNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCIsImNhbWxfdW5peF9maW5kbmV4dCIsImNhbWxfbWxfb3V0cHV0X2J5dGVzIiwiY2FtbF9tbF9vdXRwdXQiLCJjYW1sX21sX2RvbWFpbl9pZCIsImNhbWxfZXBoZV9nZXRfZGF0YSIsImNhbWxfeG1saHR0cHJlcXVlc3RfY3JlYXRlIiwiY2FtbF90cmFtcG9saW5lX3JldHVybiIsImNhbWxfbWxfaXNfYnVmZmVyZWQiLCJjYW1sX2FycmF5X2FwcGVuZCIsImNhbWxfdW5peF9nZXR0aW1lb2ZkYXkiLCJjYW1sX3VuaXhfdGltZSIsImNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsIiwibWxfel9uZXh0cHJpbWUiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3IiLCJjYW1sX2ZpbGxfYnl0ZXMiLCJjYW1sX2pzX2V4cHIiLCJjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCIsIm1sX3pfc3ViIiwibWxfel9mZGl2IiwibWxfel90b19iaXRzIiwiY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMiLCJjYW1sX2V2ZW50bG9nX3Jlc3VtZSIsImNhbWxfbWQ1X3N0cmluZyIsImNhbWxfYXJyYXlfb2Zfc3RyaW5nIiwiY2FtbF9zdHJpbmdfZXF1YWwiLCJjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZyIsIm1sX3pfZGl2ZXhhY3QiLCJjYW1sX291dHB1dF92YWx1ZV90b19idWZmZXIiLCJyZV9yZXBsYWNlbWVudF90ZXh0IiwicmVwbCIsIm9yaWciLCJjdXIiLCJjYW1sX3B1cmVfanNfZXhwciIsImNhbWxfYmxpdF9zdHJpbmciLCJibGl0X25hdCIsImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMiLCJiYTEiLCJieXRlczIiLCJjYW1sX3VuaXhfc3RhdCIsImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWUiLCJqc29vX2NyZWF0ZV9maWxlX2V4dGVybiIsImNhbWxfdW5peF9zdGF0XzY0IiwiY2FtbF90b19qc19zdHJpbmciLCJjYW1sX21sX211dGV4X2xvY2siLCJyZV9zZWFyY2hfZm9yd2FyZCIsImNhbWxfbWFrZV92ZWN0IiwiaW5pdCIsImNhbWxfbWxfc2Vla19pbiIsImNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5IiwiY2FtbF9tbF9vdXRwdXRfY2hhciIsImNhbWxfc3lzX2NvbnN0X29zdHlwZV93aW4zMiIsImNhbWxfb2JqX2lzX2Jsb2NrIiwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZCIsImNhbWxfanNfdmFyIiwiY2FtbF90cnVuY19mbG9hdCIsImNhbWxfemFyaXRoX21hcnNoYWwiLCJjYW1sX2VwaGVfdW5zZXRfZGF0YSIsImNhbWxfZXBoZV9zZXRfZGF0YSIsImNhbWxfZXBoZV9ibGl0X2RhdGEiLCJjYW1sX2lzX3ByaW50YWJsZSIsImNhbWxfYnl0ZXNfbGVzc2VxdWFsIiwiY2FtbF9hcnJheV9vZl9ieXRlcyIsImNhbWxfZXF1YWwiLCJyZV9wYXJ0aWFsX21hdGNoIiwiY2FtbF9zeXNfcmFuZG9tX3NlZWQiLCJidWZmIiwibm93IiwiYWxsX2ZpbmFsaXplcnMiLCJjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlIiwiY2IiLCJjYW1sX2JhX2dldF8yIiwiY2FtbF9iYV91aW50OF9zZXQxNiIsImNhbWxfbGF6eV9yZXNldF90b19sYXp5IiwiY2FtbF9qc19kZWxldGUiLCJjYW1sX2ludF9vZl9zdHJpbmciLCJjYW1sX2xpc3RfbW91bnRfcG9pbnQiLCJwcmV2IiwiY2FtbF9tYXJzaGFsX2NvbnN0YW50cyIsImNhbWxfb2JqX3Jhd19maWVsZCIsImNhbWxfanNfZXF1YWxzIiwiY2FtbF9vYmpfY29tcGFyZV9hbmRfc3dhcCIsImJpZ3N0cmluZ190b190eXBlZF9hcnJheSIsIm1sX3pfZml0c19uYXRpdmVpbnQiLCJjYW1sX2dyX2FyY19hdXgiLCJjeCIsImN5IiwicnkiLCJyeCIsInJvdCIsInhQb3MiLCJ5UG9zIiwieFBvc19wcmV2IiwieVBvc19wcmV2Iiwic3BhY2UiLCJkZWx0YSIsImNhbWxfZ3JfZmlsbF9hcmMiLCJjYW1sX2JhX3NsaWNlIiwibnVtX2luZHMiLCJzdWJfZGltcyIsIm1sX3pfb2ZfbmF0aXZlaW50IiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZSIsImNhbWxfYmFfa2luZCIsImNhbWxfYWxsb2NfZHVtbXlfaW5maXgiLCJjYW1sX2pzX2Z1bl9jYWxsIiwiY2FtbF9nY19tYWpvcl9zbGljZSIsIndvcmsiLCJtbF96X2ludmVydCIsIm1sX3pfcG93bSIsInozIiwiaW52IiwibWxfel9wb3dtX3NlYyIsImNhbWxfanNfcHVyZV9leHByIiwiY29tcGFyZV9kaWdpdHNfbmF0IiwiY2FtbF9tbF9pbnB1dCIsImNhbWxfZ3Jfd2FpdF9ldmVudCIsIl9ldmwiLCJjYW1sX2dyX3NpZ2lvX2hhbmRsZXIiLCJjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZyIsImNhbWxfcmVjb3JkX2JhY2t0cmFjZSIsImNhbWxfdW5peF9jbGVhbnVwIiwiY2FtbF9zeXNfZ2V0X2NvbmZpZyIsImNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSIsImNhbWxfb2JqX2lzX3NoYXJlZCIsImNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QiLCJjYW1sX2FzaW5oX2Zsb2F0IiwibWxfel9oYXNoIiwiYWNjIiwiY2FtbF9wb3Nfb3V0IiwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciIsImNhbWxfbW9kIiwiY2FtbF9iYV9pbml0IiwiY2FtbF91bml4X2ZpbGVkZXNjcl9vZl9mZCIsInJlX3N0cmluZ19tYXRjaCIsIkJpZ1N0cmluZ1JlYWRlciIsImNhbWxfZ3JfZHVtcF9pbWFnZSIsImNhbWxfYmFfZ2V0X2dlbmVyaWMiLCJjYW1sX3VuaXhfc3RhcnR1cCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9iYWNrdHJhY2UiLCJjYW1sX2Zvcm1hdF9mbG9hdCIsInRvRml4ZWQiLCJkcCIsInByZWMiLCJjYW1sX21vdW50X2F1dG9sb2FkIiwibWxfel9maXRzX2ludDY0IiwibWxfel9lcXVhbCIsIm1sX3pfc3FydF9yZW0iLCJkaWZmIiwiY2FtbF9zdHJpbmdfbGVzc3RoYW4iLCJjYW1sX3N0cmluZ19ncmVhdGVydGhhbiIsImNhbWxfZGl2IiwiY2FtbF9vYmpfZHVwIiwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkiLCJjYW1sX21lbXByb2Zfc3RhcnQiLCJyYXRlIiwic3RhY2tfc2l6ZSIsInRyYWNrZXIiLCJtbF96X3BlcmZlY3Rfc3F1YXJlIiwiY2FtbF9zeXNfZ2V0X2FyZ3YiLCJjYW1sX21sX2RvbWFpbl9zZXRfbmFtZSIsIl9uYW1lIiwiY2FtbF9qc190b19ib29sIiwiY2FtbF9ncl9jcmVhdGVfaW1hZ2UiLCJjYW1sX2VwaGVfZ2V0X2tleV9jb3B5IiwiY2FtbF9sZXNzdGhhbiIsImNhbWxfcmF3X2JhY2t0cmFjZV9uZXh0X3Nsb3QiLCJtbF96X3RvX25hdGl2ZWludCIsImNhbWxfYnVpbGRfc3ltYm9scyIsInRvYyIsInN5bWIiLCJjYW1sX3JlZ2lzdGVyX2dsb2JhbCIsIm5hbWVfb3B0IiwibmlkIiwibXVsdF9uYXQiLCJsZW4zIiwic3F1YXJlX25hdCIsImNhbWxfanNfZnJvbV9mbG9hdCIsImNhbWxfZmxvYXRhcnJheV9jcmVhdGUiLCJjYW1sX2djX3N0YXQiLCJjYW1sX2dldF9tYWpvcl9jcmVkaXQiLCJjYW1sX3N5c19tb2RpZnlfYXJndiIsImNhbWxfbWV0aG9kX2NhY2hlIiwiY2FtbF9nZXRfcHVibGljX21ldGhvZCIsIm9iaiIsImNhY2hlaWQiLCJtZXRocyIsImxpIiwiY2FtbF9qc19nZXRfY29uc29sZSIsImNhbWxfc3lzX3Vuc2FmZV9nZXRlbnYiLCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pbiIsInJlZmlsbCIsImNoYW5uZWwiLCJiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkiLCJjYW1sX3JvdW5kX2Zsb2F0IiwibWxfel9vZl9iaXRzIiwiYmFzZTEiLCJjYW1sX29qc19uZXdfYXJyIiwiRiIsImNvbXBsZW1lbnRfbmF0IiwibWxfel9sb2d4b3IiLCJjYW1sX2RvbWFpbl9kbHMiLCJjYW1sX2RvbWFpbl9kbHNfc2V0IiwiY2FtbF9sYXp5X3JlYWRfcmVzdWx0IiwiY2FtbF9qc19yZWdleHBzIiwiY2FtbF9qc19odG1sX2VzY2FwZSIsImNhbWxfYmFfZGltXzIiLCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19hcmd1bWVudHMiLCJjYW1sX3NpbmhfZmxvYXQiLCJjYW1sX2xkZXhwX2Zsb2F0IiwiY2FtbF9ncl9zdGF0ZV9zZXQiLCJjYW1sX3phcml0aF91bm1hcnNoYWwiLCJuZWdhdGUiLCJtbF96X3RyYWlsaW5nX3plcm9zIiwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdCIsImFyaXR5IiwiY2FtbF9nY19taW5vcl93b3JkcyIsImNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrIiwibGFuZF9kaWdpdF9uYXQiLCJjYW1sX2ludDY0X21vZCIsImNhbWxfb2JqX3NldF90YWciLCJjYW1sX2ludDMyX2Jzd2FwIiwiY2FtbF9iYV9zZXRfMyIsIm1sX3pfamFjb2JpIiwibjEiLCJtbF96X2xlZ2VuZHJlIiwiY2FtbF9qc19pbnN0YW5jZW9mIiwiY2FtbF9nZXRfbWFqb3JfYnVja2V0IiwibnRoX2RpZ2l0X25hdF9uYXRpdmUiLCJzZXRfZGlnaXRfbmF0X25hdGl2ZSIsImNhbWxfc3RyaW5nX3NldDY0IiwiY2FtbF9ncl9zdGF0ZV9jcmVhdGUiLCJjYW52YXMiLCJjb250ZXh0IiwiY2FtbF9ncl9kcmF3X2FyYyIsImNhbWxfYmFfbWFwX2ZpbGUiLCJ2ZmQiLCJzaGFyZWQiLCJjYW1sX2JhX21hcF9maWxlX2J5dGVjb2RlIiwiYXJnbiIsImNhbWxfYmFfY3JlYXRlX2Zyb20iLCJkYXRhMSIsImRhdGEyIiwianN0eXAiLCJjYW1sX3RhbmhfZmxvYXQiLCJjYW1sX3J1bnRpbWVfZXZlbnRzX3N0YXJ0IiwiY2FtbF9ncl9kcmF3X3N0ciIsImR4IiwiY2FtbF9ncl9kcmF3X3N0cmluZyIsIm1sX3pfcHJpbW9yaWFsIiwiY2FtbF9ncl9kcmF3X2NoYXIiLCJjYW1sX3VubW91bnQiLCJjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhIiwibWxfel9maWIiLCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fc3RyaW5nIiwiY2FtbF9tbF9wb3NfaW5fNjQiLCJjYW1sX2dyX2RyYXdfaW1hZ2UiLCJpbWFnZSIsImNhbWxfcmVnaXN0ZXJfY2hhbm5lbF9mb3Jfc3BhY2V0aW1lIiwiX2NoYW5uZWwiLCJjYW1sX3N0cmluZ19zZXQiLCJjYW1sX3N5c19ybWRpciIsImNhbWxfdW5peF9zeW1saW5rIiwic3JjX3Jvb3QiLCJkc3Rfcm9vdCIsImNhbWxfbWxfcG9zX291dCIsImNhbWxfc3BhY2V0aW1lX2VuYWJsZWQiLCJjYW1sX2J5dGVzX25vdGVxdWFsIiwiY2FtbF9ydW50aW1lX3BhcmFtZXRlcnMiLCJjYW1sX2pzX29iamVjdCIsImNhbWxfYmFfY3JlYXRlIiwiZGltc19tbCIsImNhbWxfZ3JfcmVtZW1iZXJfbW9kZSIsImNhbWxfZm1hX2Zsb2F0IiwiU1BMSVQiLCJNSU5fVkFMVUUiLCJFUFNJTE9OIiwiQyIsIkEiLCJCIiwibXVsdGlwbHkiLCJhdCIsImFoaSIsImFsbyIsImJoaSIsImJsbyIsImFkanVzdCIsInNjYWxlIiwieHMiLCJ5cyIsInpzIiwieHkiLCJ1IiwiY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnQiLCJjYW1sX2Jzd2FwMTYiLCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZSIsImNhbWxfZmluYWxfcmVnaXN0ZXIiLCJjYW1sX2dyX2RyYXdfcmVjdCIsImNhbWxfc3RyaW5nX2dldDE2IiwiY2FtbF9vdXRwdXRfdmFsdWUiLCJjYW1sX2JhX2dldF8zIiwiY2FtbF9lcGhlX2JsaXRfa2V5IiwibWxfel90b19pbnQzMiIsImNhbWxfaW5pdGlhbF90aW1lIiwiY2FtbF9zeXNfdGltZSIsImNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbiIsImNhbWxfY2hlY2tfYm91bmQiLCJjYW1sX3VuaXhfZ2V0cHd1aWQiLCJtbF96X2NvbXBhcmUiLCJjYW1sX2hhc2giLCJsaW1pdCIsInNlZWQiLCJxdWV1ZSIsInJkIiwid3IiLCJjYW1sX2JhX3RvX3R5cGVkX2FycmF5IiwiY2FtbF9kb21haW5fZGxzX2dldCIsImNhbWxfYnl0ZXNfZ2V0MzIiLCJjYW1sX2ZyZXhwX2Zsb2F0IiwibWxfel9wcmVkIiwiY2FtbF9zdHJpbmdfZ2V0NjQiLCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24iLCJjYW1sX21sX3Bvc19vdXRfNjQiLCJtbF96X3JlbW92ZSIsIm1sX3pfZXh0cmFjdCIsIm1sX3pfb2ZfZmxvYXQiLCJmMSIsIm1sX3pfbG9nbm90IiwiY2FtbF91bml4X2ZpbmRjbG9zZSIsImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IiwiY2FtbF9mbG9hdGFycmF5X2JsaXQiLCJjYW1sX2dldF9taW5vcl9mcmVlIiwiY2FtbF9zZXRfc3RhdGljX2VudiIsImNhbWxfYmFfY2hhbmdlX2xheW91dCIsImNhbWxfanNfbmV3IiwiY2FtbF9ncl9jdXJyZW50X3kiLCJjYW1sX2Zvcm1hdF9pbnQiLCJqc29vX2VmZmVjdF9ub3Rfc3VwcG9ydGVkIiwiY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4YyIsImh2YWwiLCJoZXhuIiwiaGVmZiIsImNhbWxfb2JqX3RydW5jYXRlIiwiY2FtbF9qc190b19zdHJpbmciLCJpc19kaWdpdF9vZGQiLCJjYW1sX3J1bnRpbWVfdmFyaWFudCIsImNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dCIsImJ1ZmZlcmVkIiwiY2FtbF9hcnJheV9jb25jYXQiLCJjYW1sX2dyX29wZW5fZ3JhcGgiLCJpbmZvIiwic3BlY3MiLCJzdGF0dXMiLCJ3aW4iLCJkb2MiLCJ0aXRsZSIsImJvZHkiLCJjYW1sX21ha2VfZmxvYXRfdmVjdCIsImNhbWxfY2JydF9mbG9hdCIsImNhbWxfZXZlbnRsb2dfcGF1c2UiLCJjYW1sX21lbXByb2Zfc3RvcCIsImNhbWxfZ3JlYXRlcmVxdWFsIiwibWxfel9udW1iaXRzIiwidXBwZXJCb3VuZCIsImNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIiwiY2FtbF9sb2cxcF9mbG9hdCIsImNhbWxfcnVudGltZV9ldmVudHNfZnJlZV9jdXJzb3IiLCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkIiwibG9yX2RpZ2l0X25hdCIsImNhbWxfZ3JfYmxpdF9pbWFnZSIsImltMiIsImNhbWxfZ3Jfd2luZG93X2lkIiwiY2FtbF9qc19vbl9pZSIsInVhIiwiY2FtbF9pbnQ2NF9zaGlmdF9yaWdodCIsImNhbWxfYmFfbGF5b3V0IiwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UiLCJjYW1sX2FycmF5X3NldCIsIm5ld3ZhbCIsImNhbWxfYWxsb2Nfc3RhY2siLCJodiIsImh4IiwiaGYiLCJjYW1sX2J5dGVzX2dyZWF0ZXJlcXVhbCIsIm1sX3pfcGVyZmVjdF9wb3dlciIsImxvZzJ6IiwienAiLCJzZXRfZGlnaXRfbmF0IiwibWxfel9pbml0IiwiY2FtbF9ieXRlc19zZXQxNiIsImNhbWxfZ3JfZG9jX29mX3N0YXRlIiwiY2FtbF9tbF9vdXRwdXRfaW50IiwiY2FtbF9vYmpfd2l0aF90YWciLCJjYW1sX21sX2NoYW5uZWxfc2l6ZSIsImNhbWxfcmF3X2JhY2t0cmFjZV9zbG90IiwiY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXQiLCJzdHlsZSIsImV4cF9zaWduIiwic2lnbl9zdHIiLCJjc3QiLCJ4X3N0ciIsImNhbWxfcnVudGltZV9ldmVudHNfdXNlcl93cml0ZSIsImV2ZW50IiwiZXZlbnRfY29udGVudCIsImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdCIsIm1sX3pfZm9ybWF0IiwiY2FzIiwid2lkdGgiLCJhbHQiLCJwYWQiLCJwcmVmaXgiLCJwcmUiLCJtbF96X3NpemUiLCJtbF96X3RvX2ludDY0IiwibWFzayIsImNhbWxfdW5peF9yZWFkbGluayIsImNhbWxfYmFja3RyYWNlX3N0YXR1cyIsImNhbWxfaW5zdGFsbF9zaWduYWxfaGFuZGxlciIsImNhbWxfc3lzX2FyZ3YiLCJjYW1sX2JhX2ZpbGwiLCJjYW1sX21vZGZfZmxvYXQiLCJjYW1sX2djX2dldCIsImNhbWxfZmxvYXRfY29tcGFyZSIsIm1sX3pfc2hpZnRfcmlnaHRfdHJ1bmMiLCJjYW1sX3N0cmluZ19zZXQzMiIsImNhbWxfcGFyc2VfZW5naW5lIiwidGFibGVzIiwiZW52IiwiRVJSQ09ERSIsImxvb3AiLCJ0ZXN0c2hpZnQiLCJzaGlmdF9yZWNvdmVyIiwicmVkdWNlIiwiUkVBRF9UT0tFTiIsIlJBSVNFX1BBUlNFX0VSUk9SIiwiR1JPV19TVEFDS1NfMSIsIkdST1dfU1RBQ0tTXzIiLCJDT01QVVRFX1NFTUFOVElDX0FDVElPTiIsIkNBTExfRVJST1JfRlVOQ1RJT04iLCJlbnZfc19zdGFjayIsImVudl92X3N0YWNrIiwiZW52X3N5bWJfc3RhcnRfc3RhY2siLCJlbnZfc3ltYl9lbmRfc3RhY2siLCJlbnZfc3RhY2tzaXplIiwiZW52X3N0YWNrYmFzZSIsImVudl9jdXJyX2NoYXIiLCJlbnZfbHZhbCIsImVudl9zeW1iX3N0YXJ0IiwiZW52X3N5bWJfZW5kIiwiZW52X2FzcCIsImVudl9ydWxlX2xlbiIsImVudl9ydWxlX251bWJlciIsImVudl9zcCIsImVudl9zdGF0ZSIsImVudl9lcnJmbGFnIiwidGJsX3RyYW5zbF9jb25zdCIsInRibF90cmFuc2xfYmxvY2siLCJ0YmxfbGhzIiwidGJsX2xlbiIsInRibF9kZWZyZWQiLCJ0YmxfZGdvdG8iLCJ0Ymxfc2luZGV4IiwidGJsX3JpbmRleCIsInRibF9naW5kZXgiLCJ0YmxfdGFibGVzaXplIiwidGJsX3RhYmxlIiwidGJsX2NoZWNrIiwidGJsX25hbWVzX2NvbnN0IiwidGJsX25hbWVzX2Jsb2NrIiwibG9nIiwidG9rZW5fbmFtZSIsIm5hbWVzIiwicHJpbnRfdG9rZW4iLCJ0b2siLCJ0b2tlbiIsIm4yIiwic3RhdGUxIiwic3AiLCJlcnJmbGFnIiwiYXNwIiwiY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHMiLCJjYW1sX3VwZGF0ZV9kdW1teSIsImNhbWxfYXJyYXlfZmlsbCIsImNhbWxfc3lzX21rZGlyIiwiY2FtbF9zdHJpbmdfbm90ZXF1YWwiLCJjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuIiwiY2FtbF9ncl9tYWtlX2ltYWdlIiwiY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXQiLCJjYW1sX3JlYWRfZmlsZV9jb250ZW50IiwiY2FtbF9qc190b19mbG9hdCIsImNhbWxfc2V0dXBfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIiLCJvcmlnaW4iLCJlcmFzZV9yZWwiLCJyZXN0IiwicmVzdCQwIiwicmVzdCQxIiwicmVzdCQyIiwicmVzdCQzIiwicmVzdCQ0IiwicmVzdCQ1IiwicmVzdCQ2IiwicmVzdCQ3IiwidHkiLCJyZXN0JDgiLCJ0eTEiLCJyZXN0JDkiLCJyZXN0JDEwIiwicmVzdCQxMSIsInJlc3QkMTIiLCJyZXN0JDEzIiwiY29uY2F0X2ZtdHR5IiwiZm10dHkxIiwiZm10dHkyIiwidHkyIiwiY29uY2F0X2ZtdCIsImZtdDEiLCJmbXQyIiwicGFkIiwicGFkJDAiLCJwcmVjIiwicGFkJDEiLCJpY29udiIsInByZWMkMCIsInBhZCQyIiwiaWNvbnYkMCIsInByZWMkMSIsInBhZCQzIiwiaWNvbnYkMSIsInByZWMkMiIsInBhZCQ0IiwiaWNvbnYkMiIsInByZWMkMyIsInBhZCQ1IiwiZmNvbnYiLCJwYWQkNiIsInN0ciIsImNociIsImZtdHR5IiwicGFkJDciLCJmbXR0eSQwIiwicGFkJDgiLCJyZXN0JDE0IiwicmVzdCQxNSIsInJlc3QkMTYiLCJmbXRpbmdfbGl0IiwicmVzdCQxNyIsImZtdGluZ19nZW4iLCJyZXN0JDE4IiwicmVzdCQxOSIsImNoYXJfc2V0Iiwid2lkdGhfb3B0IiwicmVzdCQyMCIsImNvdW50ZXIiLCJyZXN0JDIxIiwicmVzdCQyMiIsImlnbiIsInJlc3QkMjMiLCJmIiwiYXJpdHkiLCJtYWtlIiwidiIsImdldCIsInIiLCJzZXQiLCJleGNoYW5nZSIsImN1ciIsImNvbXBhcmVfYW5kX3NldCIsInNlZW4iLCJmZXRjaF9hbmRfYWRkIiwibiIsImluY3IiLCJkZWNyIiwiZmFpbHdpdGgiLCJzIiwiaW52YWxpZF9hcmciLCJtaW4iLCJ4IiwieSIsIm1heCIsImFicyIsImxub3QiLCJpbmZpbml0eSIsIm5lZ19pbmZpbml0eSIsIm5hbiIsIm1heF9mbG9hdCIsIm1pbl9mbG9hdCIsImVwc2lsb25fZmxvYXQiLCJtYXhfaW50IiwibWluX2ludCIsInN5bWJvbCIsInMxIiwiczIiLCJsMSIsImwyIiwiY2hhcl9vZl9pbnQiLCJzdHJpbmdfb2ZfYm9vbCIsImIiLCJib29sX29mX3N0cmluZyIsImJvb2xfb2Zfc3RyaW5nX29wdCIsInN0cmluZ19vZl9pbnQiLCJpbnRfb2Zfc3RyaW5nX29wdCIsInZhbGlkX2Zsb2F0X2xleGVtIiwibCIsImkiLCJpJDAiLCJzdHJpbmdfb2ZfZmxvYXQiLCJmbG9hdF9vZl9zdHJpbmdfb3B0Iiwic3ltYm9sJDAiLCJ0bCIsImhkIiwic3RkaW4iLCJzdGRvdXQiLCJzdGRlcnIiLCJvcGVuX291dF9nZW4iLCJtb2RlIiwicGVybSIsIm5hbWUiLCJjIiwib3Blbl9vdXQiLCJvcGVuX291dF9iaW4iLCJmbHVzaF9hbGwiLCJhIiwib3V0cHV0X2J5dGVzIiwib2MiLCJvdXRwdXRfc3RyaW5nIiwib3V0cHV0Iiwib2ZzIiwibGVuIiwib3V0cHV0X3N1YnN0cmluZyIsIm91dHB1dF92YWx1ZSIsImNoYW4iLCJjbG9zZV9vdXQiLCJjbG9zZV9vdXRfbm9lcnIiLCJvcGVuX2luX2dlbiIsIm9wZW5faW4iLCJvcGVuX2luX2JpbiIsImlucHV0IiwiaWMiLCJ1bnNhZmVfcmVhbGx5X2lucHV0Iiwib2ZzJDAiLCJsZW4kMCIsImxlbiQxIiwib2ZzJDEiLCJyZWFsbHlfaW5wdXQiLCJyZWFsbHlfaW5wdXRfc3RyaW5nIiwiaW5wdXRfbGluZSIsImJ1aWxkX3Jlc3VsdCIsImJ1ZiIsInBvcyQwIiwiYWNjdSIsImJlZyIsImFjY3UkMCIsInJlcyIsImNsb3NlX2luX25vZXJyIiwicHJpbnRfY2hhciIsInByaW50X3N0cmluZyIsInByaW50X2J5dGVzIiwicHJpbnRfaW50IiwicHJpbnRfZmxvYXQiLCJwcmludF9lbmRsaW5lIiwicHJpbnRfbmV3bGluZSIsInByZXJyX2NoYXIiLCJwcmVycl9zdHJpbmciLCJwcmVycl9ieXRlcyIsInByZXJyX2ludCIsInByZXJyX2Zsb2F0IiwicHJlcnJfZW5kbGluZSIsInByZXJyX25ld2xpbmUiLCJyZWFkX2xpbmUiLCJyZWFkX2ludCIsInJlYWRfaW50X29wdCIsInJlYWRfZmxvYXQiLCJyZWFkX2Zsb2F0X29wdCIsInN0cmluZ19vZl9mb3JtYXQiLCJzeW1ib2wkMSIsInN0cjIiLCJzdHIxIiwiZXhpdF9mdW5jdGlvbiIsImF0X2V4aXQiLCJmX3lldF90b19ydW4iLCJvbGRfZXhpdCIsIm5ld19leGl0JDAiLCJuZXdfZXhpdCIsInN1Y2Nlc3MiLCJkb19hdF9leGl0IiwiZXhpdCIsInJldGNvZGUiLCJmbHVzaCIsIm91dHB1dF9jaGFyIiwib3V0cHV0X2J5dGUiLCJvdXRwdXRfYmluYXJ5X2ludCIsInNlZWtfb3V0IiwicG9zX291dCIsIm91dF9jaGFubmVsX2xlbmd0aCIsInNldF9iaW5hcnlfbW9kZV9vdXQiLCJpbnB1dF9jaGFyIiwiaW5wdXRfYnl0ZSIsImlucHV0X2JpbmFyeV9pbnQiLCJpbnB1dF92YWx1ZSIsInNlZWtfaW4iLCJwb3NfaW4iLCJpbl9jaGFubmVsX2xlbmd0aCIsImNsb3NlX2luIiwic2V0X2JpbmFyeV9tb2RlX2luIiwibGVmdCIsInJpZ2h0IiwiaXNfbGVmdCIsImlzX3JpZ2h0IiwiZmluZF9sZWZ0IiwiZmluZF9yaWdodCIsIm1hcF9sZWZ0IiwiZSIsIm1hcF9yaWdodCIsIm1hcCIsInYkMCIsImZvbGQiLCJlcXVhbCIsImUxIiwiZTIiLCJ2MSIsInYyIiwidjEkMCIsInYyJDAiLCJjb21wYXJlIiwiaXNfYmxvY2siLCJkb3VibGVfZmllbGQiLCJzZXRfZG91YmxlX2ZpZWxkIiwiZmlyc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yIiwibGFzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfIiwibGF6eV90YWciLCJjbG9zdXJlX3RhZyIsIm9iamVjdF90YWciLCJpbmZpeF90YWciLCJmb3J3YXJkX3RhZyIsIm5vX3NjYW5fdGFnIiwiYWJzdHJhY3RfdGFnIiwic3RyaW5nX3RhZyIsImRvdWJsZV90YWciLCJkb3VibGVfYXJyYXlfdGFnIiwiY3VzdG9tX3RhZyIsImludF90YWciLCJvdXRfb2ZfaGVhcF90YWciLCJ1bmFsaWduZWRfdGFnIiwiaW5mbyIsIm9iaiIsInN0YXJ0X2VudiIsIm9mX3ZhbCIsInNsb3QiLCJpZCIsImV4dGVuc2lvbl9jb25zdHJ1Y3RvciIsImV4dGVuc2lvbl9uYW1lIiwiZXh0ZW5zaW9uX2lkIiwibWF4X2VwaGVfbGVuZ3RoIiwiY3JlYXRlIiwibGVuZ3RoIiwicmFpc2VfaWZfaW52YWxpZF9vZmZzZXQiLCJvIiwibXNnIiwiZ2V0X2tleSIsImdldF9rZXlfY29weSIsInNldF9rZXkiLCJ1bnNldF9rZXkiLCJjaGVja19rZXkiLCJibGl0X2tleSIsIm8xIiwibzIiLCJyYWlzZV91bmRlZmluZWQiLCJmb3JjZV9sYXp5X2Jsb2NrIiwiYmxrIiwiY2xvc3VyZSIsInJlc3VsdCIsImUkMCIsImZvcmNlX3ZhbF9sYXp5X2Jsb2NrIiwiZm9yY2UiLCJsenYiLCJ0IiwiZm9yY2VfdmFsIiwiZnJvbV9mdW4iLCJmcm9tX3ZhbCIsImlzX3ZhbCIsIm1hcF92YWwiLCJlbXB0eSIsInJldHVybiQwIiwiY29ucyIsIm5leHQiLCJhcHBlbmQiLCJzZXExIiwic2VxMiIsInNlcSIsImZpbHRlcl9tYXAiLCJzZXEkMCIsImZpbHRlciIsImNvbmNhdCIsImZsYXRfbWFwIiwiZm9sZF9sZWZ0IiwiYWNjIiwiYWNjJDAiLCJhY2MkMSIsIml0ZXIiLCJ1bmZvbGQiLCJ1IiwidSQwIiwiaXNfZW1wdHkiLCJ4cyIsInVuY29ucyIsInhzJDAiLCJ4cyQxIiwiaXRlcmkiLCJmb2xkX2xlZnRpIiwiYWNjdSQxIiwiZm9yX2FsbCIsInAiLCJleGlzdHMiLCJmaW5kIiwiZmluZF9tYXAiLCJpdGVyMiIsInlzIiwieXMkMCIsInlzJDEiLCJmb2xkX2xlZnQyIiwiZm9yX2FsbDIiLCJleGlzdHMyIiwiZXEiLCJjbXAiLCJpbml0X2F1eCIsImoiLCJpbml0IiwicmVwZWF0IiwiZm9yZXZlciIsImN5Y2xlX25vbmVtcHR5IiwiY3ljbGUiLCJpdGVyYXRlMSIsIml0ZXJhdGUiLCJtYXBpX2F1eCIsIm1hcGkiLCJ0YWlsX3NjYW4iLCJzJDAiLCJzY2FuIiwidGFrZV9hdXgiLCJ0YWtlIiwiZHJvcCIsIm4kMCIsIm4kMSIsInRha2Vfd2hpbGUiLCJkcm9wX3doaWxlIiwibm9kZSIsImdyb3VwIiwidG9fbGF6eSIsImZhaWx1cmUiLCJtZW1vaXplIiwib25jZSIsImFjdGlvbiIsInppcCIsIm1hcDIiLCJpbnRlcmxlYXZlIiwic29ydGVkX21lcmdlMSIsInNvcnRlZF9tZXJnZSIsIm1hcF9mc3QiLCJ4eXMiLCJ4eXMkMCIsIm1hcF9zbmQiLCJ1bnppcCIsImZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCIsImZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAiLCJ6IiwicGFydGl0aW9uX21hcCIsInBhcnRpdGlvbiIsInBlZWwiLCJ4c3MiLCJ0cmFuc3Bvc2UiLCJ0YWlscyIsImhlYWRzIiwicmVtYWluZGVycyIsInhzcyQwIiwidGFpbHMkMCIsImhlYWRzJDAiLCJtYXBfcHJvZHVjdCIsInByb2R1Y3QiLCJvZl9kaXNwZW5zZXIiLCJpdCIsInRvX2Rpc3BlbnNlciIsImludHMiLCJub25lIiwic29tZSIsInZhbHVlIiwiZGVmYXVsdCQwIiwiYmluZCIsImpvaW4iLCJpc19ub25lIiwiaXNfc29tZSIsIm8wIiwidjAiLCJ0b19yZXN1bHQiLCJ0b19saXN0IiwidG9fc2VxIiwib2siLCJlcnJvciIsImdldF9vayIsImdldF9lcnJvciIsIm1hcF9lcnJvciIsIml0ZXJfZXJyb3IiLCJpc19vayIsImlzX2Vycm9yIiwicjAiLCJyMSIsImUwIiwidG9fb3B0aW9uIiwidG9fZmxvYXQiLCJ0b19zdHJpbmciLCJlc2NhcGVkIiwibG93ZXJjYXNlIiwidXBwZXJjYXNlIiwibG93ZXJjYXNlX2FzY2lpIiwidXBwZXJjYXNlX2FzY2lpIiwiYzEiLCJjMiIsImVycl9ub19wcmVkIiwiZXJyX25vX3N1Y2MiLCJsb19ib3VuZCIsImhpX2JvdW5kIiwiYm9tIiwicmVwIiwic3VjYyIsInByZWQiLCJpc192YWxpZCIsIm9mX2ludCIsImlzX2NoYXIiLCJvZl9jaGFyIiwidG9fY2hhciIsInVuc2FmZV90b19jaGFyIiwiaGFzaCIsInV0Zl9kZWNvZGVfaXNfdmFsaWQiLCJkIiwidXRmX2RlY29kZV9sZW5ndGgiLCJ1dGZfZGVjb2RlX3VjaGFyIiwidXRmX2RlY29kZSIsInV0Zl9kZWNvZGVfaW52YWxpZCIsInV0Zl84X2J5dGVfbGVuZ3RoIiwidXRmXzE2X2J5dGVfbGVuZ3RoIiwibCQwIiwibnRoIiwibCQxIiwibnRoX29wdCIsInJldl9hcHBlbmQiLCJsMSQwIiwibDIkMCIsImwxJDEiLCJsMiQxIiwicmV2IiwicmV2X2luaXRfdGhyZXNob2xkIiwiZmxhdHRlbiIsInJldl9tYXAiLCJmb2xkX3JpZ2h0IiwiYTIiLCJhMSIsInJldl9tYXAyIiwiZm9sZF9yaWdodDIiLCJtZW0iLCJtZW1xIiwiYXNzb2MiLCJhc3NvY19vcHQiLCJhc3NxIiwiYXNzcV9vcHQiLCJtZW1fYXNzb2MiLCJtZW1fYXNzcSIsInJlbW92ZV9hc3NvYyIsInBhaXIiLCJyZW1vdmVfYXNzcSIsImZpbmRfb3B0IiwiZmluZF9hbGwiLCJmaWx0ZXJpIiwiY29uY2F0X21hcCIsImZvbGRfbGVmdF9tYXAiLCJsX2FjY3UiLCJ4JDAiLCJ5ZXMiLCJubyIsInNwbGl0IiwicnkiLCJyeCIsImNvbWJpbmUiLCJtZXJnZSIsInQyIiwiaDIiLCJ0MSIsImgxIiwic3RhYmxlX3NvcnQiLCJzb3J0IiwieDIiLCJ4MSIsInRsJDEiLCJ4MyIsIngyJDAiLCJ4MSQwIiwibjEiLCJuMiIsInJldl9zb3J0IiwidGwkMCIsInNvcnRfdW5pcSIsImMkMCIsImMkMSIsImMkMiIsImMkMyIsImMkNCIsImMkNSIsImMkNiIsImFjY3UkMiIsImNvbXBhcmVfbGVuZ3RocyIsImNvbXBhcmVfbGVuZ3RoX3dpdGgiLCJhdXgiLCJ0YWlsIiwib2Zfc2VxIiwiZGlyZWN0IiwiZGVwdGgiLCJ6ZXJvIiwib25lIiwibWludXNfb25lIiwibG9nbm90IiwiY29weSIsIm9mX3N0cmluZyIsInN1YiIsInN1Yl9zdHJpbmciLCJleHRlbmQiLCJkc3RvZmYiLCJzcmNvZmYiLCJjcHlsZW4iLCJmaWxsIiwiYmxpdCIsIm9mczEiLCJvZnMyIiwiYmxpdF9zdHJpbmciLCJzZXAiLCJzZXBsZW4iLCJkc3QiLCJwb3MiLCJoZCQwIiwiY2F0IiwiaXNfc3BhY2UiLCJ0cmltIiwiYXBwbHkxIiwiY2FwaXRhbGl6ZV9hc2NpaSIsInVuY2FwaXRhbGl6ZV9hc2NpaSIsInN0YXJ0c193aXRoIiwicHJlZml4IiwibGVuX3MiLCJsZW5fcHJlIiwiZW5kc193aXRoIiwic3VmZml4IiwibGVuX3N1ZiIsImRpZmYiLCJpbmRleF9yZWMiLCJsaW0iLCJpJDEiLCJpbmRleCIsImluZGV4X3JlY19vcHQiLCJpbmRleF9vcHQiLCJpbmRleF9mcm9tIiwiaW5kZXhfZnJvbV9vcHQiLCJyaW5kZXhfcmVjIiwicmluZGV4IiwicmluZGV4X2Zyb20iLCJyaW5kZXhfcmVjX29wdCIsInJpbmRleF9vcHQiLCJyaW5kZXhfZnJvbV9vcHQiLCJjb250YWluc19mcm9tIiwiY29udGFpbnMiLCJyY29udGFpbnNfZnJvbSIsInNwbGl0X29uX2NoYXIiLCJjYXBpdGFsaXplIiwidW5jYXBpdGFsaXplIiwidG9fc2VxaSIsIm5ld19sZW4iLCJuZXdfYnVmIiwidW5zYWZlX2dldF91aW50MTZfbGUiLCJ1bnNhZmVfZ2V0X3VpbnQxNl9iZSIsImdldF9pbnQ4IiwiZ2V0X3VpbnQxNl9sZSIsImdldF91aW50MTZfYmUiLCJnZXRfaW50MTZfbmUiLCJnZXRfaW50MTZfbGUiLCJnZXRfaW50MTZfYmUiLCJnZXRfaW50MzJfbGUiLCJnZXRfaW50MzJfYmUiLCJnZXRfaW50NjRfbGUiLCJnZXRfaW50NjRfYmUiLCJ1bnNhZmVfc2V0X3VpbnQxNl9sZSIsInVuc2FmZV9zZXRfdWludDE2X2JlIiwic2V0X2ludDE2X2xlIiwic2V0X2ludDE2X2JlIiwic2V0X2ludDMyX2xlIiwic2V0X2ludDMyX2JlIiwic2V0X2ludDY0X2xlIiwic2V0X2ludDY0X2JlIiwic2V0X3VpbnQ4Iiwic2V0X3VpbnQxNl9uZSIsImRlY19pbnZhbGlkIiwiZGVjX3JldCIsIm5vdF9pbl94ODBfdG9feEJGIiwibm90X2luX3hBMF90b194QkYiLCJub3RfaW5feDgwX3RvX3g5RiIsIm5vdF9pbl94OTBfdG9feEJGIiwibm90X2luX3g4MF90b194OEYiLCJ1dGZfOF91Y2hhcl8zIiwiYjAiLCJiMSIsImIyIiwidXRmXzhfdWNoYXJfNCIsImIzIiwiZ2V0X3V0Zl84X3VjaGFyIiwiaSQ0IiwiYjEkMSIsImkkNSIsImIyJDEiLCJpJDYiLCJpJDEwIiwiYjEkMyIsImkkMTEiLCJiMiQzIiwiaSQxMiIsImIzJDEiLCJpJDciLCJiMSQyIiwiaSQ4IiwiYjIkMiIsImkkOSIsImIzJDAiLCJpJDEzIiwiYjEkNCIsImkkMTQiLCJiMiQ0IiwiaSQyIiwiYjEkMCIsImkkMyIsImIyJDAiLCJpJDE1IiwiYjEkNSIsInNldF91dGZfOF91Y2hhciIsImxhc3QkMSIsImxhc3QkMCIsImxhc3QiLCJpc192YWxpZF91dGZfOCIsImxhc3QkMyIsImxhc3QkMiIsImxhc3QkNCIsImxhc3QkNSIsImdldF91dGZfMTZiZV91Y2hhciIsImhpIiwibG8iLCJzZXRfdXRmXzE2YmVfdWNoYXIiLCJ1JDEiLCJpc192YWxpZF91dGZfMTZiZSIsImdldF91dGZfMTZsZV91Y2hhciIsInNldF91dGZfMTZsZV91Y2hhciIsImlzX3ZhbGlkX3V0Zl8xNmxlIiwiYnRzIiwiYm9zIiwib2ZfYnl0ZXMiLCJ0b19ieXRlcyIsImciLCJ0b19idWZmZXIiLCJidWZmIiwiZmxhZ3MiLCJoZWFkZXJfc2l6ZSIsImRhdGFfc2l6ZSIsInRvdGFsX3NpemUiLCJmcm9tX2J5dGVzIiwiZnJvbV9zdHJpbmciLCJtYWtlX2Zsb2F0IiwibWFrZV9tYXRyaXgiLCJzeCIsInN5IiwibGEiLCJsYiIsInJlcyQwIiwibGlzdF9sZW5ndGgiLCJvZl9saXN0IiwiaW5wdXRfYXJyYXkiLCJlbHQiLCJvdXRwdXRfYXJyYXkiLCJlbHQkMCIsImFjYyQyIiwiYTAiLCJiaSIsImFpIiwibmEiLCJuYiIsIm1heHNvbiIsImkzMSIsImUkMSIsImokMCIsImZhdGhlciIsInNyYzFvZnMiLCJzcmMxbGVuIiwic3JjMiIsInNyYzJvZnMiLCJzcmMybGVuIiwiZHN0b2ZzIiwic3JjMXIiLCJzcmMyciIsInMyJDEiLCJzMSQxIiwiaTEiLCJpMiIsImkyJDAiLCJkJDAiLCJzMiQwIiwiaTEkMCIsImQkMSIsInMxJDAiLCJpc29ydHRvIiwic3Jjb2ZzIiwic29ydHRvIiwiaXNfZmluaXRlIiwiaXNfaW5maW5pdGUiLCJpc19uYW4iLCJlcHNpbG9uIiwib2Zfc3RyaW5nX29wdCIsInBpIiwiaXNfaW50ZWdlciIsIm1pbl9tYXgiLCJtaW5fbnVtIiwibWF4X251bSIsIm1pbl9tYXhfbnVtIiwidW5zYWZlX2ZpbGwiLCJjaGVjayIsImhsZW4iLCJzcmMiLCJzb2ZzIiwiZG9mcyIsImgiLCJtZW1faWVlZSIsIm1hcF90b19hcnJheSIsIm1hcF9mcm9tX2FycmF5IiwibWF4X2ludCQwIiwidW5zaWduZWRfdG9faW50IiwidW5zaWduZWRfY29tcGFyZSIsIm0iLCJ1bnNpZ25lZF9kaXYiLCJxIiwidW5zaWduZWRfcmVtIiwic2l6ZSIsImR1bW15X3BvcyIsInplcm9fcG9zIiwiZW5naW5lIiwidGJsIiwic3RhdGUiLCJuZXdfZW5naW5lIiwiZnJvbV9mdW5jdGlvbiIsIm9wdCIsInJlYWRfZnVuIiwic3RoIiwid2l0aF9wb3NpdGlvbnMiLCJhdXhfYnVmZmVyIiwibGV4YnVmIiwicmVhZCIsIm5ld2xlbiIsIm5ld2J1ZiIsImZyb21fY2hhbm5lbCIsInNldF9wb3NpdGlvbiIsInBvc2l0aW9uIiwic2V0X2ZpbGVuYW1lIiwiZm5hbWUiLCJsZXhlbWUiLCJzdWJfbGV4ZW1lIiwic3ViX2xleGVtZV9vcHQiLCJzdWJfbGV4ZW1lX2NoYXIiLCJzdWJfbGV4ZW1lX2NoYXJfb3B0IiwibGV4ZW1lX2NoYXIiLCJsZXhlbWVfc3RhcnQiLCJsZXhlbWVfZW5kIiwibGV4ZW1lX3N0YXJ0X3AiLCJsZXhlbWVfZW5kX3AiLCJuZXdfbGluZSIsImxjcCIsImZsdXNoX2lucHV0IiwiZW52IiwiZ3Jvd19zdGFja3MiLCJvbGRzaXplIiwibmV3c2l6ZSIsIm5ld19zIiwibmV3X3YiLCJuZXdfc3RhcnQiLCJuZXdfZW5kIiwiY2xlYXJfcGFyc2VyIiwiY3VycmVudF9sb29rYWhlYWRfZnVuIiwieXlwYXJzZSIsInRhYmxlcyIsInN0YXJ0IiwibGV4ZXIiLCJpbml0X2FzcCIsImluaXRfc3AiLCJpbml0X3N0YWNrYmFzZSIsImluaXRfc3RhdGUiLCJpbml0X2N1cnJfY2hhciIsImluaXRfbHZhbCIsImluaXRfZXJyZmxhZyIsImNtZCIsImFyZyIsImFyZyQwIiwiZXhuJDAiLCJleG4iLCJjdXJyX2NoYXIiLCJ0b2siLCJwZWVrX3ZhbCIsInN5bWJvbF9zdGFydF9wb3MiLCJzdCIsImVuIiwic3ltYm9sX2VuZF9wb3MiLCJyaHNfc3RhcnRfcG9zIiwicmhzX2VuZF9wb3MiLCJzeW1ib2xfc3RhcnQiLCJzeW1ib2xfZW5kIiwicmhzX3N0YXJ0IiwicmhzX2VuZCIsImlzX2N1cnJlbnRfbG9va2FoZWFkIiwicGFyc2VfZXJyb3IiLCJoZWlnaHQiLCJobCIsImgkMCIsImhyIiwiYmFsIiwibHIiLCJsdiIsImxsIiwibHJyIiwibHJ2IiwibHJsIiwicnIiLCJydiIsInJsIiwicmxyIiwicmx2IiwicmxsIiwiYWRkIiwic2luZ2xldG9uIiwiYWRkX21pbl9lbGVtZW50IiwiYWRkX21heF9lbGVtZW50IiwicmgiLCJsaCIsIm1pbl9lbHQiLCJtaW5fZWx0X29wdCIsIm1heF9lbHQiLCJtYXhfZWx0X29wdCIsInJlbW92ZV9taW5fZWx0IiwiciQwIiwicHJlcyIsInByZXMkMCIsInJlbW92ZSIsInVuaW9uIiwicjIiLCJyMiQwIiwicjEkMCIsImludGVyIiwic3BsaXRfYmlzIiwiZGlzam9pbnQiLCJjb25zX2VudW0iLCJlMiQyIiwiZTEkMiIsImUyJDAiLCJlMSQwIiwiZTIkMSIsImUxJDEiLCJzdWJzZXQiLCJwdiIsImxmIiwibHQiLCJyZiIsInJ0IiwiY2FyZGluYWwiLCJlbGVtZW50c19hdXgiLCJlbGVtZW50cyIsImZpbmRfZmlyc3QiLCJ2MCQxIiwidjAkMCIsImZpbmRfZmlyc3Rfb3B0IiwiZmluZF9sYXN0IiwiZmluZF9sYXN0X29wdCIsInRyeV9qb2luIiwidiQxIiwieDAiLCJsJDMiLCJsJDQiLCJ4MCQwIiwibCQ1IiwieDAkMSIsIm5sIiwibWlkIiwibCQyIiwieDQiLCJhZGRfc2VxIiwic2VxX29mX2VudW0iLCJzbm9jX2VudW0iLCJyZXZfc2VxX29mX2VudW0iLCJ0b19yZXZfc2VxIiwidG9fc2VxX2Zyb20iLCJsb3ciLCJsZCIsImxyZCIsInJkIiwicmxkIiwiZGF0YSIsImQwJDEiLCJkMCIsImQwJDAiLCJtaW5fYmluZGluZyIsIm1pbl9iaW5kaW5nX29wdCIsIm1heF9iaW5kaW5nIiwibWF4X2JpbmRpbmdfb3B0IiwicmVtb3ZlX21pbl9iaW5kaW5nIiwidXBkYXRlIiwiZGF0YSQwIiwibSQwIiwiYWRkX21pbl9iaW5kaW5nIiwiayIsImFkZF9tYXhfYmluZGluZyIsImNvbmNhdF9vcl9qb2luIiwiZDEiLCJkMiIsImQyJDAiLCJkMSQwIiwiZDIkMSIsImQxJDEiLCJwdmQiLCJmdmQiLCJtMSIsIm0yIiwiYmluZGluZ3NfYXV4IiwiYmluZGluZ3MiLCJjbGVhciIsInB1c2giLCJwb3AiLCJwb3Bfb3B0IiwidG9wIiwidG9wX29wdCIsImNlbGwiLCJtYXRjaCIsInBlZWsiLCJjb250ZW50IiwicGVla19vcHQiLCJ0YWtlX29wdCIsImNlbGwkMCIsInFfcmVzIiwicHJldiIsInByZXYkMCIsInRyYW5zZmVyIiwicTEiLCJxMiIsImNvdW50IiwiZmlsbF9idWZmIiwiZ2V0X2RhdGEiLCJkMTEiLCJhJDAiLCJhJDEiLCJwZWVrX2RhdGEiLCJqdW5rX2RhdGEiLCJqdW5rIiwibmdldF9kYXRhIiwiYWwiLCJucGVlayIsInN0cm0iLCJmcm9tIiwib2ZfY2hhbm5lbCIsImlhcHAiLCJpY29ucyIsImlzaW5nIiwibGFwcCIsImxjb25zIiwibHNpbmciLCJzZW1wdHkiLCJzbGF6eSIsImR1bXAiLCJkdW1wX2RhdGEiLCJjb250ZW50cyIsInJlc2V0IiwicmVzaXplIiwibW9yZSIsIm9sZF9wb3MiLCJvbGRfbGVuIiwibmV3X2J1ZmZlciIsImFkZF9jaGFyIiwidWNoYXJfdXRmXzhfYnl0ZV9sZW5ndGhfbWF4IiwidWNoYXJfdXRmXzE2X2J5dGVfbGVuZ3RoX21heCIsImFkZF91dGZfOF91Y2hhciIsImFkZF91dGZfMTZiZV91Y2hhciIsImFkZF91dGZfMTZsZV91Y2hhciIsImFkZF9zdWJzdHJpbmciLCJvZmZzZXQiLCJuZXdfcG9zaXRpb24iLCJhZGRfc3ViYnl0ZXMiLCJhZGRfc3RyaW5nIiwiYWRkX2J5dGVzIiwiYWRkX2J1ZmZlciIsImJzIiwiYWRkX2NoYW5uZWwiLCJ0b19yZWFkJDEiLCJhbHJlYWR5X3JlYWQiLCJ0b19yZWFkIiwiYWxyZWFkeV9yZWFkJDAiLCJ0b19yZWFkJDAiLCJvdXRwdXRfYnVmZmVyIiwiYWRkX3N1YnN0aXR1dGUiLCJsaW0kMSIsInByZXZpb3VzIiwicHJldmlvdXMkMCIsInN0YXJ0JDAiLCJvcGVuaW5nIiwibGltJDAiLCJzdG9wJDAiLCJrJDIiLCJjbG9zaW5nIiwic3RvcCIsImskMCIsImskMSIsIm5leHRfaSIsImlkZW50IiwidHJ1bmNhdGUiLCJhZGRfaW50OCIsImFkZF9pbnQxNl9uZSIsImFkZF9pbnQzMl9uZSIsImFkZF9pbnQ2NF9uZSIsImFkZF9pbnQxNl9sZSIsImFkZF9pbnQxNl9iZSIsImFkZF9pbnQzMl9sZSIsImFkZF9pbnQzMl9iZSIsImFkZF9pbnQ2NF9sZSIsImFkZF9pbnQ2NF9iZSIsInN1Yl9mb3JtYXQiLCJmb3JtYXR0aW5nX2xpdCIsImNyZWF0ZV9jaGFyX3NldCIsImFkZF9pbl9jaGFyX3NldCIsInN0cl9pbmQiLCJtYXNrIiwiZnJlZXplX2NoYXJfc2V0IiwicmV2X2NoYXJfc2V0IiwiY2hhcl9zZXQkMCIsImlzX2luX2NoYXJfc2V0IiwicGFkX29mX3BhZF9vcHQiLCJwYWRfb3B0Iiwid2lkdGgiLCJwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQiLCJmbXQiLCJwYWRfb3B0JDAiLCJwYWRfb3B0JDEiLCJwYWRfb3B0JDIiLCJwYWRfb3B0JDMiLCJwYWRfb3B0JDQiLCJwcmVjX29wdCIsInBhZF9vcHQkNSIsIm5kZWMiLCJwYWRfb3B0JDYiLCJwYWRfb3B0JDciLCJwYWRfb3B0JDgiLCJkZWZhdWx0X2Zsb2F0X3ByZWNpc2lvbiIsImJ1ZmZlcl9jcmVhdGUiLCJpbml0X3NpemUiLCJidWZmZXJfY2hlY2tfc2l6ZSIsIm92ZXJoZWFkIiwibWluX2xlbiIsIm5ld19zdHIiLCJidWZmZXJfYWRkX2NoYXIiLCJidWZmZXJfYWRkX3N0cmluZyIsInN0cl9sZW4iLCJidWZmZXJfY29udGVudHMiLCJjaGFyX29mX2ljb252IiwiY2hhcl9vZl9mY29udiIsImNGIiwiYnByaW50X3BhZHR5IiwicGFkdHkiLCJicHJpbnRfaWdub3JlZF9mbGFnIiwiaWduX2ZsYWciLCJicHJpbnRfcGFkX29wdCIsImJwcmludF9wYWRkaW5nIiwicGFkdHkkMCIsImJwcmludF9wcmVjaXNpb24iLCJicHJpbnRfaWNvbnZfZmxhZyIsImJwcmludF9hbHRpbnRfZm10IiwiYnByaW50X2Zjb252X2ZsYWciLCJzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQiLCJzdHIkMCIsImJwcmludF9jaGFyX2xpdGVyYWwiLCJicHJpbnRfc3RyaW5nX2xpdGVyYWwiLCJicHJpbnRfZm10dHkiLCJmbXR0eSQxIiwiZm10dHkkMiIsImZtdHR5JDMiLCJmbXR0eSQ0IiwiZm10dHkkNSIsImZtdHR5JDYiLCJmbXR0eSQ3IiwiZm10dHkkOCIsImZtdHR5JDkiLCJzdWJfZm10dHkiLCJmbXR0eSQxMCIsInN1Yl9mbXR0eSQwIiwiZm10dHkkMTEiLCJmbXR0eSQxMiIsImZtdHR5JDEzIiwiZm10dHkkMTQiLCJmbXR0eSQxNSIsImludF9vZl9jdXN0b21fYXJpdHkiLCJzdHJpbmdfb2ZfZm10IiwiZm10aXRlciIsImZtdCQwIiwiaWduX2ZsYWckMCIsInN0ciQxIiwiaXNfYWxvbmUkMCIsImlzX2Fsb25lIiwiYWZ0ZXIiLCJiZWZvcmUiLCJqJDEiLCJmbXQkMSIsInN5bW0iLCJmbXR0eV9yZWxfZGV0IiwiZGUiLCJlZCIsImFmIiwiZmEiLCJkZSQwIiwiZWQkMCIsImFmJDAiLCJmYSQwIiwiZGUkMSIsImVkJDEiLCJhZiQxIiwiZmEkMSIsImRlJDIiLCJlZCQyIiwiYWYkMiIsImZhJDIiLCJkZSQzIiwiZWQkMyIsImFmJDMiLCJmYSQzIiwiZGUkNCIsImVkJDQiLCJhZiQ0IiwiZmEkNCIsImRlJDUiLCJlZCQ1IiwiYWYkNSIsImZhJDUiLCJkZSQ2IiwiZWQkNiIsImFmJDYiLCJmYSQ2IiwiZGUkNyIsImVkJDciLCJhZiQ3IiwiZmEkNyIsImRlJDgiLCJlZCQ4IiwiYWYkOCIsImZhJDgiLCJ0cmFucyIsImpkIiwiZGoiLCJnYSIsImFnIiwiZGUkOSIsImVkJDkiLCJhZiQ5IiwiZmEkOSIsImRlJDEwIiwiZWQkMTAiLCJhZiQxMCIsImZhJDEwIiwiZGUkMTEiLCJlZCQxMSIsImFmJDExIiwiZmEkMTEiLCJkZSQxMiIsImVkJDEyIiwiYWYkMTIiLCJmYSQxMiIsImRlJDEzIiwiZWQkMTMiLCJhZiQxMyIsImZhJDEzIiwicmVzdDEiLCJyZXN0MiIsInJlc3QxJDAiLCJyZXN0MiQwIiwicmVzdDEkMSIsInJlc3QyJDEiLCJyZXN0MSQyIiwicmVzdDIkMiIsInJlc3QxJDMiLCJyZXN0MiQzIiwicmVzdDEkNCIsInJlc3QyJDQiLCJyZXN0MSQ1IiwicmVzdDIkNSIsInJlc3QxJDYiLCJyZXN0MiQ2IiwicmVzdDEkNyIsInR5MSQwIiwicmVzdDIkNyIsInR5MiQwIiwicmVzdDEkOCIsInR5MTIiLCJ0eTExIiwicmVzdDIkOCIsInR5MjIiLCJ0eTIxIiwiZjQiLCJmMiIsInJlc3QxJDkiLCJyZXN0MiQ5IiwicmVzdDEkMTAiLCJyZXN0MiQxMCIsInJlc3QxJDExIiwicmVzdDIkMTEiLCJyZXN0MSQxMiIsInJlc3QyJDEyIiwicmVzdDEkMTMiLCJyZXN0MiQxMyIsImZtdHR5X29mX3BhZGRpbmdfZm10dHkiLCJmbXR0eV9vZl9jdXN0b20iLCJhcml0eSQwIiwiZm10dHlfb2ZfZm10IiwidHlfcmVzdCIsInByZWNfdHkiLCJmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkiLCJ0eV9yZXN0JDAiLCJwcmVjX3R5JDAiLCJ0eV9yZXN0JDEiLCJwcmVjX3R5JDEiLCJ0eV9yZXN0JDIiLCJwcmVjX3R5JDIiLCJ0eV9yZXN0JDMiLCJwcmVjX3R5JDMiLCJ0eSQwIiwiZm9ybWF0dGluZ19nZW4iLCJ0eXBlX3BhZGRpbmciLCJ3IiwidHlwZV9wYWRwcmVjIiwidHlwZV9mb3JtYXQiLCJ0eXBlX2Zvcm1hdF9nZW4iLCJ0eXBlX2lnbm9yZWRfcGFyYW1fb25lIiwiZm10dHkwIiwiZm10dHlfcmVzdCIsImZtdF9yZXN0IiwiZm10dHlfcmVzdCQwIiwiZm10X3Jlc3QkMCIsImZtdF9yZXN0JDEiLCJmbXR0eV9yZXN0JDEiLCJmbXQkMiIsImZtdF9yZXN0JDIiLCJmbXR0eV9yZXN0JDIiLCJmbXQkMyIsImZtdF9yZXN0JDMiLCJmbXR0eV9yZXN0JDMiLCJmbXQkNCIsImZtdF9yZXN0JDQiLCJmbXR0eV9yZXN0JDQiLCJmbXQkNSIsImZtdF9yZXN0JDUiLCJmbXR0eV9yZXN0JDUiLCJwcmVjJDQiLCJmbXQkNiIsImZtdF9yZXN0JDYiLCJwcmVjJDUiLCJwYWQkOSIsInBhZCQxMCIsImZtdHR5X3Jlc3QkNiIsInByZWMkNiIsImZtdCQ3IiwiZm10X3Jlc3QkNyIsInByZWMkNyIsInBhZCQxMSIsInBhZCQxMiIsImZtdHR5X3Jlc3QkNyIsInByZWMkOCIsImZtdCQ4IiwiZm10X3Jlc3QkOCIsInBhZCQxMyIsInBhZCQxNCIsImZtdHR5X3Jlc3QkOCIsImZtdCQ5IiwiZm10X3Jlc3QkOSIsImZtdCQxMCIsImZtdF9yZXN0JDEwIiwiZm10JDExIiwiZm10X3Jlc3QkMTEiLCJmbXQkMTIiLCJmbXR0eV9yZXN0JDkiLCJmbXRfcmVzdCQxMiIsImZtdCQxMyIsImZtdHR5X3Jlc3QkMTAiLCJzdWJfZm10dHkxIiwiZm10X3Jlc3QkMTMiLCJzdWJfZm10dHkkMSIsImZtdCQxNCIsImZtdHR5X3Jlc3QkMTEiLCJmbXRfcmVzdCQxNCIsImZtdCQxNSIsImZtdHR5X3Jlc3QkMTIiLCJmbXRfcmVzdCQxNSIsImZtdCQxNiIsImZtdF9yZXN0JDE2IiwiZm10dHkkMTYiLCJmbXQkMTciLCJmbXRfcmVzdCQxNyIsImZtdHR5MyIsImZtdDMiLCJmbXQxJDAiLCJmbXR0eTIkMCIsImZtdDIkMCIsImZtdHR5MyQwIiwiZm10MyQwIiwiZm10dHlfcmVzdCQxMyIsImZtdF9yZXN0JDE4IiwiZm10dHkkMTciLCJmbXQkMTgiLCJmbXR0eV9yZXN0JDE0IiwiZm10X3Jlc3QkMTkiLCJmbXR0eSQxOCIsImZtdCQxOSIsImZtdHR5X3Jlc3QkMTUiLCJmbXRfcmVzdCQyMCIsImZtdHR5JDE5IiwiZm10JDIwIiwic3ViX2ZtdHR5JDIiLCJzdWJfZm10dHkkMyIsInR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aSIsImZtdHR5JDIxIiwiZm10JDIyIiwic3ViX2ZtdHR5JDQiLCJmbXR0eV9yZXN0JDE2IiwiZm10dHkkMjAiLCJmbXQkMjEiLCJzdWJfZm10dHlfcmVzdCIsInN1Yl9mbXR0eV9yZXN0JDAiLCJzdWJfZm10dHlfcmVzdCQxIiwic3ViX2ZtdHR5X3Jlc3QkMiIsInN1Yl9mbXR0eV9yZXN0JDMiLCJzdWJfZm10dHlfcmVzdCQ0Iiwic3ViX2ZtdHR5X3Jlc3QkNSIsInN1Yl9mbXR0eV9yZXN0JDYiLCJzdWJfZm10dHlfcmVzdCQ3Iiwic3ViX2ZtdHR5X3Jlc3QkOCIsInN1Yl9mbXR0eV9yZXN0JDkiLCJzdWJfZm10dHlfcmVzdCQxMCIsInN1Yl9mbXR0eV9yZXN0JDExIiwic3ViX2ZtdHR5X3Jlc3QkMTIiLCJzdWJfZm10dHlfcmVzdCQxMyIsInN1Yl9mbXR0eV9yZXN0JDE0Iiwic3ViMl9mbXR0eSIsInN1Yl9mbXR0eV9yZXN0JDE1Iiwic3ViMl9mbXR0eSQwIiwic3ViX2ZtdHR5X3Jlc3QkMTYiLCJzdWIyX2ZtdHR5JDEiLCJzdWIxX2ZtdHR5Iiwic3ViX2ZtdHR5X3Jlc3QkMTciLCJzdWIyX2ZtdHR5JDIiLCJzdWIxX2ZtdHR5JDAiLCJzdWJfZm10dHlfcmVzdCQxOCIsInN1Yl9mbXR0eV9yZXN0JDE5Iiwic3ViX2ZtdHR5X3Jlc3QkMjAiLCJzdWJfZm10dHlfcmVzdCQyMSIsInN1Yl9mbXR0eV9yZXN0JDIyIiwic3ViX2ZtdHR5X3Jlc3QkMjMiLCJzdWJfZm10dHlfcmVzdCQyNCIsInN1Yl9mbXR0eV9yZXN0JDI1Iiwic3ViX2ZtdHR5X3Jlc3QkMjYiLCJyZWNhc3QiLCJmaXhfcGFkZGluZyIsIndpZHRoJDAiLCJmaXhfaW50X3ByZWNpc2lvbiIsInJlcyQxIiwic3RyaW5nX3RvX2NhbWxfc3RyaW5nIiwiZm9ybWF0X29mX2Zjb252Iiwic3ltYiIsInRyYW5zZm9ybV9pbnRfYWx0IiwiZGlnaXRzIiwicHV0IiwiY29udmVydF9pbnQiLCJjb252ZXJ0X2ludDMyIiwiY29udmVydF9uYXRpdmVpbnQiLCJjb252ZXJ0X2ludDY0IiwiY29udmVydF9mbG9hdCIsImhleCIsInNpZ24iLCJjYW1sX3NwZWNpYWxfdmFsIiwic3RyaW5nX29mX2ZtdHR5IiwibWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24iLCJtYWtlX3ByaW50ZiIsInAkMCIsInAkMSIsIm1ha2VfcGFkZGluZyIsIm5ld19hY2MiLCJtYWtlX3ByaW50ZiQwIiwiYWNjJDMiLCJhY2MkNCIsImskMyIsImthY2MiLCJrJDQiLCJtYWtlX2lnbm9yZWRfcGFyYW0kMCIsIm1ha2VfY3VzdG9tJDAiLCJtYWtlX2ludmFsaWRfYXJnIiwibWFrZV9mcm9tX2ZtdHR5JDAiLCJtYWtlX2Zyb21fZm10dHkiLCJtYWtlX2N1c3RvbSIsIm1ha2VfaWdub3JlZF9wYXJhbSIsImZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIiwibWFrZV9pcHJpbnRmIiwibWFrZV9pcHJpbnRmJDAiLCJrb2MiLCJyZXN0JDI0IiwicmVzdCQyNSIsInJlc3QkMjYiLCJyZXN0JDI3IiwicmVzdCQyOCIsInJlc3QkMjkiLCJmbl9vZl9jdXN0b21fYXJpdHkkMCIsImZuX29mX2N1c3RvbV9hcml0eSIsIm91dHB1dF9hY2MiLCJwJDMiLCJwJDQiLCJwJDUiLCJwJDIiLCJidWZwdXRfYWNjIiwic3RycHV0X2FjYyIsImZhaWx3aXRoX21lc3NhZ2UiLCJvcGVuX2JveF9vZl9zdHJpbmciLCJpbnZhbGlkX2JveCIsInBhcnNlX3NwYWNlcyIsIndzdGFydCIsIndlbmQiLCJib3hfbmFtZSIsIm5zdGFydCIsIm5lbmQiLCJpbmRlbnQiLCJleHBfZW5kIiwiYm94X3R5cGUiLCJtYWtlX3BhZGRpbmdfZm10X2ViYiIsIm1ha2VfcGFkcHJlY19mbXRfZWJiIiwiZm10X2ViYl9vZl9zdHJpbmciLCJsZWdhY3lfYmVoYXZpb3IiLCJmbGFnIiwibGVnYWN5X2JlaGF2aW9yJDAiLCJpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIiwidW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IiwiZW5kX2luZCIsImludmFsaWRfZm9ybWF0X3dpdGhvdXQiLCJleHBlY3RlZF9jaGFyYWN0ZXIiLCJleHBlY3RlZCIsImFkZF9saXRlcmFsIiwibGl0X3N0YXJ0IiwicGFyc2UiLCJzdHJfaW5kJDIiLCJwYXJzZV9mbGFncyIsInN0cl9pbmQkMSIsInN0cl9pbmQkMCIsInBhcnNlX3RhZyIsInN0cl9pbmQkMyIsInN0cl9pbmRfMSIsInBhcnNlX2ludGVnZXIiLCJzdHJfaW5kXzIiLCJzdHJfaW5kXzMiLCJmb3JtYXR0aW5nX2xpdCQwIiwibmV4dF9pbmQiLCJzdHJfaW5kXzQiLCJzdHJfaW5kXzUiLCJzdHJfaW5kJDQiLCJzdHJfaW5kXzEkMCIsInN0cl9pbmRfMiQwIiwic3RyX2luZF8zJDAiLCJzJDEiLCJmb3JtYXR0aW5nX2xpdCQxIiwibmV4dF9pbmQkMCIsInBhcnNlX2NvbnZlcnNpb24iLCJwY3RfaW5kIiwicGx1cyIsInNwYWNlIiwicGFkcHJlYyIsInBsdXNfdXNlZCIsImhhc2hfdXNlZCIsInNwYWNlX3VzZWQiLCJpZ25fdXNlZCIsInBhZF91c2VkIiwicHJlY191c2VkIiwiZ2V0X3BsdXMiLCJnZXRfaGFzaCIsImdldF9zcGFjZSIsImdldF9pZ24iLCJnZXRfcGFkIiwiZ2V0X3ByZWMiLCJnZXRfcGFkcHJlYyIsImdldF9pbnRfcGFkIiwiaW5jb21wYXRpYmxlX2ZsYWciLCJjaGVja19ub18wIiwib3B0X29mX3BhZCIsIndpZHRoJDEiLCJnZXRfcGFkX29wdCIsImdldF9wYWRwcmVjX29wdCIsImZtdF9yZXN1bHQiLCJzdWJfZW5kIiwic2VhcmNoX3N1YmZvcm1hdF9lbmQiLCJzdWJfZm10IiwiaWdub3JlZCQyIiwiY291bnRlciQwIiwiaWdub3JlZCQ2IiwiaWdub3JlZCQ3IiwiYWRkX3JhbmdlIiwiZmFpbF9zaW5nbGVfcGVyY2VudCIsInBhcnNlX2NoYXJfc2V0X2NvbnRlbnQiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyJDAiLCJwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIiwicmV2ZXJzZSIsImNoYXJfc2V0JDEiLCJpZ25vcmVkJDkiLCJjaGFyX2Zvcm1hdCIsImZtdF9yZXN0JDIxIiwiZm10X3Jlc3QkMjIiLCJmbXRfcmVzdCQyMyIsImlnbm9yZWQkMTAiLCJmbXRfcmVzdCQyNCIsImZtdF9yZXN0JDI1Iiwic3ViX2VuZCQwIiwic3ViX2ZtdCQwIiwiZm10X3Jlc3QkMjYiLCJpZ25vcmVkJDExIiwiaWdub3JlZCQzIiwic3ltYiQwIiwiaWdub3JlZCQ1IiwiY29tcHV0ZV9pbnRfY29udiIsImlnbm9yZWQkOCIsInNwYWNlJDEiLCJoYXNoJDEiLCJwbHVzJDIiLCJraW5kIiwiaWdub3JlZCQ0IiwiaWdub3JlZCIsImlnbm9yZWQkMCIsImlnbm9yZWQkMSIsInBsdXMkMCIsImhhc2gkMCIsInNwYWNlJDAiLCJwbHVzJDEiLCJpZ24kMCIsInBhcnNlX2FmdGVyX3ByZWNpc2lvbiIsIm1pbnVzIiwicGFyc2VfY29udiIsInBhcnNlX2FmdGVyX3BhZGRpbmciLCJwYXJzZV9saXRlcmFsIiwicGFyc2VfcG9zaXRpdmUiLCJuZXdfaW5kIiwibWludXMkMCIsInNldF9mbGFnIiwic3RyX2luZCQ1IiwiemVybyQwIiwiaXNfb3Blbl90YWciLCJpbmQiLCJzdWJfc3RyIiwic3ViX2Zvcm1hdCQwIiwiZm9ybWF0dGluZyQwIiwiZm9ybWF0dGluZyIsInN0cl9pbmQkNyIsInN1Yl9lbmQkMSIsInN1Yl9lbmQkMiIsInN0cl9pbmQkNiIsIm9wdGlvbiIsInN1YmZtdCIsImZvcm1hdF9vZl9zdHJpbmdfZm10dHkiLCJmb3JtYXRfb2Zfc3RyaW5nX2Zvcm1hdCIsImtmcHJpbnRmIiwia2JwcmludGYiLCJpa2ZwcmludGYiLCJmcHJpbnRmIiwiYnByaW50ZiIsImlmcHJpbnRmIiwiaWJwcmludGYiLCJwcmludGYiLCJlcHJpbnRmIiwia3NwcmludGYiLCJzcHJpbnRmIiwiYXNzb2MzIiwieTIiLCJ5MSIsIm1ha2Vfc3ltbGlzdCIsImhlbHBfYWN0aW9uIiwiYWRkX2hlbHAiLCJzcGVjbGlzdCIsImFkZDEiLCJhZGQyIiwidXNhZ2VfYiIsImVycm1zZyIsImRvYyIsInNwZWMiLCJrZXkiLCJ1c2FnZV9zdHJpbmciLCJ1c2FnZSIsImN1cnJlbnQiLCJwYXJzZV9hbmRfZXhwYW5kX2FyZ3ZfZHluYW1pY18iLCJhbGxvd19leHBhbmQiLCJhcmd2IiwiYW5vbmZ1biIsImluaXRwb3MiLCJjb252ZXJ0X2Vycm9yIiwicHJvZ25hbWUiLCJmb2xsb3ckMCIsImtleXdvcmQiLCJub19hcmckMCIsImZvbGxvdyIsIm5vX2FyZyIsImdldF9hcmckMCIsImdldF9hcmciLCJjb25zdW1lX2FyZyQwIiwiY29uc3VtZV9hcmciLCJ0cmVhdF9hY3Rpb24kMCIsInRyZWF0X2FjdGlvbiIsImYkMCIsImYkMSIsInIkMSIsImYkMiIsImFyZyQxIiwiciQyIiwiYXJnJDIiLCJmJDMiLCJhcmckMyIsIngkMSIsInIkMyIsImFyZyQ0IiwieCQyIiwic3BlY3MiLCJmJDQiLCJhcmckNSIsImYkNSIsImYkNiIsImYkNyIsImFyZyQ2IiwibmV3YXJnIiwicGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMiLCJwYXJzZV9hcmd2X2R5bmFtaWMiLCJjdXJyZW50JDAiLCJwYXJzZV9hcmd2IiwibXNnJDAiLCJtc2ckMSIsInBhcnNlX2R5bmFtaWMiLCJwYXJzZV9leHBhbmQiLCJzZWNvbmRfd29yZCIsImxvb3AiLCJtYXhfYXJnX2xlbiIsImt3ZCIsInJlcGxhY2VfbGVhZGluZ190YWIiLCJhbGlnbiIsImxpbWl0IiwiY29tcGxldGVkIiwia3NkIiwiY3V0Y29sJDAiLCJzcGFjZXMkMCIsInNwZWMkMCIsImN1dGNvbCIsImt3ZF9sZW4iLCJzcGFjZXMiLCJyZWFkX2F1eCIsImZpbGUiLCJ3b3JkcyIsInN0YXNoIiwid29yZCIsIndvcmQkMCIsInJlYWRfYXJnIiwicmVhZF9hcmcwIiwid3JpdGVfYXV4IiwiYXJncyIsIndyaXRlX2FyZyIsIndyaXRlX2FyZzAiLCJsb2NmbXQiLCJwcmludGVycyIsImZpZWxkIiwib3RoZXJfZmllbGRzIiwidXNlX3ByaW50ZXJzIiwidG9fc3RyaW5nX2RlZmF1bHQiLCJjaGFyJDAiLCJsaW5lIiwiY2hhciQxIiwibGluZSQwIiwiZmlsZSQwIiwiY2hhciQyIiwibGluZSQxIiwiZmlsZSQxIiwiY29uc3RydWN0b3IiLCJwcmludCIsImZjdCIsImNhdGNoJDAiLCJyYXdfYmFja3RyYWNlX2VudHJpZXMiLCJidCIsImNvbnZlcnRfcmF3X2JhY2t0cmFjZSIsImZvcm1hdF9iYWNrdHJhY2Vfc2xvdCIsImlzX3JhaXNlIiwicHJpbnRfcmF3X2JhY2t0cmFjZSIsIm91dGNoYW4iLCJyYXdfYmFja3RyYWNlIiwiYmFja3RyYWNlIiwicHJpbnRfYmFja3RyYWNlIiwicmF3X2JhY2t0cmFjZV90b19zdHJpbmciLCJiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZSIsInBhcmFtIiwiYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lIiwiYmFja3RyYWNlX3Nsb3RfbG9jYXRpb24iLCJiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lIiwiYmFja3RyYWNlX3Nsb3RzIiwiYmFja3RyYWNlX3Nsb3RzX29mX3Jhd19lbnRyeSIsImVudHJ5IiwicmF3X2JhY2t0cmFjZV9sZW5ndGgiLCJnZXRfYmFja3RyYWNlIiwicmVnaXN0ZXJfcHJpbnRlciIsImZuIiwib2xkX3ByaW50ZXJzIiwibmV3X3ByaW50ZXJzIiwiZXhuX3Nsb3QiLCJleG5fc2xvdF9pZCIsImV4bl9zbG90X25hbWUiLCJlcnJvcnMiLCJkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW4iLCJzdGF0dXMiLCJ1bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsInNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciIsImVtcHR5X2JhY2t0cmFjZSIsImhhbmRsZV91bmNhdWdodF9leGNlcHRpb24iLCJkZWJ1Z2dlcl9pbl91c2UiLCJleG4kMSIsInJhd19iYWNrdHJhY2UkMCIsImNvbnN0JDAiLCJmbGlwIiwibmVnYXRlIiwicHJvdGVjdCIsImZpbmFsbHkkMCIsIndvcmsiLCJmaW5hbGx5X25vX2V4biIsIndvcmtfZXhuJDAiLCJ3b3JrX2V4biIsIndvcmtfYnQiLCJwcmludF9zdGF0IiwiYWxsb2NhdGVkX2J5dGVzIiwibWEiLCJwcm8iLCJtaSIsImNyZWF0ZV9hbGFybSIsImRlbGV0ZV9hbGFybSIsIm51bGxfdHJhY2tlciIsInNhbXBsaW5nX3JhdGUiLCJ0cmFja2VyIiwiY2FsbHN0YWNrX3NpemUiLCJzdHJpbmciLCJieXRlcyIsInN1YnN0cmluZyIsInN1YmJ5dGVzIiwiZmlsZW5hbWUiLCJkaWdlc3QiLCJjaGFyX2hleCIsInRvX2hleCIsImZyb21faGV4IiwiZGlnaXQiLCJuZXdfc3RhdGUiLCJhc3NpZ24iLCJzdDEiLCJzdDIiLCJmdWxsX2luaXQiLCJzZWVkIiwic2VlZCQwIiwibWFrZV9zZWxmX2luaXQiLCJiaXRzIiwiY3VydmFsIiwibmV3dmFsIiwibmV3dmFsMzAiLCJpbnRhdXgiLCJpbnQkMCIsImJvdW5kIiwiZnVsbF9pbnQiLCJtYXhfaW50XzMyIiwiYnBvcyIsImludDMyIiwiaW50NjQiLCJuYXRpdmVpbnQiLCJmbG9hdCQwIiwiYm9vbCIsImJpdHMzMiIsImJpdHM2NCIsIm5hdGl2ZWJpdHMiLCJiaXRzJDAiLCJpbnQkMSIsImZ1bGxfaW50JDAiLCJpbnQzMiQwIiwibmF0aXZlaW50JDAiLCJpbnQ2NCQwIiwiZmxvYXQkMSIsInNjYWxlIiwiYm9vbCQwIiwiYml0czMyJDAiLCJiaXRzNjQkMCIsIm5hdGl2ZWJpdHMkMCIsImZ1bGxfaW5pdCQwIiwic2VsZl9pbml0IiwiZ2V0X3N0YXRlIiwic2V0X3N0YXRlIiwib25nb2luZ190cmF2ZXJzYWwiLCJmbGlwX29uZ29pbmdfdHJhdmVyc2FsIiwicGFyYW1zIiwicmFuZG9taXplZF9kZWZhdWx0IiwicmFuZG9taXplZCIsInJhbmRvbWl6ZSIsImlzX3JhbmRvbWl6ZWQiLCJwcm5nIiwicG93ZXJfMl9hYm92ZSIsImluaXRpYWxfc2l6ZSIsInJhbmRvbSIsImNvcHlfYnVja2V0bGlzdCIsImtleSQwIiwibmV4dCQwIiwiaW5zZXJ0X2FsbF9idWNrZXRzIiwiaW5kZXhmdW4iLCJpbnBsYWNlIiwib2RhdGEiLCJuZGF0YSIsIm5zaXplIiwibmRhdGFfdGFpbCIsIm5pZHgiLCJtYXRjaCQwIiwib3NpemUiLCJvbGRfdHJhdiIsImZpbHRlcl9tYXBfaW5wbGFjZSIsImIkMCIsImJ1Y2tldF9sZW5ndGgiLCJzdGF0cyIsIm1ibCIsImhpc3RvIiwidGJsX2RhdGEiLCJidWNrIiwiYnVjayQwIiwiYnVjayQxIiwidG9fc2VxX2tleXMiLCJ0b19zZXFfdmFsdWVzIiwia2V5X2luZGV4IiwiYnVja2V0IiwiazEiLCJuZXh0MSIsImsyIiwibmV4dDIiLCJrMyIsImQzIiwibmV4dDMiLCJmaW5kX2luX2J1Y2tldCIsInJlcGxhY2UiLCJyZXBsYWNlX3NlcSIsInN6IiwiaGFzaF9wYXJhbSIsInNlZWRlZF9oYXNoIiwicmVidWlsZCIsImdldF9jb3B5IiwiYXIiLCJlbXB0eWJ1Y2tldCIsImdldF9pbmRleCIsImNyZWF0ZSQwIiwic3okMCIsInN6JDEiLCJjb3VudF9idWNrZXQiLCJhZGRfYXV4Iiwic2V0dGVyIiwiYnVja2V0JDAiLCJoYXNoZXMiLCJuZXdzeiIsIm5ld2J1Y2tldCQwIiwibmV3aGFzaGVzIiwiaGJ1Y2tldCIsInByZXZfbGVuIiwibGl2ZSIsImokMiIsIm5ld2J1Y2tldCIsIm9sZGxlbiIsIm5ld3QiLCJvYiIsIm9pIiwib2giLCJzZXR0ZXIkMCIsIm5pIiwiZmluZF9vciIsImlmbm90Zm91bmQiLCJmaW5kX3NoYWRvdyIsImlmZm91bmQiLCJsZW5zIiwidG90bGVuIiwidW5rbm93biIsInBwX2VucXVldWUiLCJ0b2tlbiIsInBwX2luZmluaXR5IiwicHBfb3V0cHV0X3N0cmluZyIsInBwX291dHB1dF9uZXdsaW5lIiwiZm9ybWF0X3BwX3RleHQiLCJ0ZXh0IiwiZm9ybWF0X3N0cmluZyIsImJyZWFrX25ld19saW5lIiwicmVhbF9pbmRlbnQiLCJicmVha19saW5lIiwiYnJlYWtfc2FtZV9saW5lIiwiZm9ybWF0X3BwX3Rva2VuIiwic2l6ZSQwIiwidGFicyIsImFkZF90YWIiLCJscyIsInRhZ19uYW1lIiwibWFya2VyIiwiYnJlYWtzIiwiZml0cyIsIm9mZiIsImJveF90eXBlJDAiLCJvZmYkMCIsImluc2VydGlvbl9wb2ludCIsInRhYnMkMCIsImZpcnN0IiwiaGVhZCIsInRhYiIsIm9mZiQxIiwiaW5zZXJ0aW9uX3BvaW50JDAiLCJ3aWR0aCQyIiwiYm94X3R5cGUkMSIsInRib3giLCJ0YWdfbmFtZSQwIiwibWFya2VyJDAiLCJhZHZhbmNlX2xlZnQiLCJwZW5kaW5nX2NvdW50IiwiZW5xdWV1ZV9hZHZhbmNlIiwiZW5xdWV1ZV9zdHJpbmdfYXMiLCJpbml0aWFsaXplX3NjYW5fc3RhY2siLCJzdGFjayIsInF1ZXVlX2VsZW0iLCJzZXRfc2l6ZSIsImxlZnRfdG90YWwiLCJzY2FuX3B1c2giLCJlbGVtIiwicHBfb3Blbl9ib3hfZ2VuIiwiYnJfdHkiLCJwcF9jbG9zZV9ib3giLCJwcF9vcGVuX3N0YWciLCJwcF9jbG9zZV9zdGFnIiwicHBfb3Blbl90YWciLCJwcF9jbG9zZV90YWciLCJwcF9zZXRfcHJpbnRfdGFncyIsInBwX3NldF9tYXJrX3RhZ3MiLCJwcF9nZXRfcHJpbnRfdGFncyIsInBwX2dldF9tYXJrX3RhZ3MiLCJwcF9zZXRfdGFncyIsInBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbiIsInBjdCIsInBvdCIsIm1jdCIsIm1vdCIsInBwX3Jpbml0IiwicHBfZmx1c2hfcXVldWUiLCJwcF9wcmludF9hc19zaXplIiwicHBfcHJpbnRfYXMiLCJpc2l6ZSIsInBwX3ByaW50X3N0cmluZyIsInBwX3ByaW50X2J5dGVzIiwicHBfcHJpbnRfaW50IiwicHBfcHJpbnRfZmxvYXQiLCJwcF9wcmludF9ib29sIiwicHBfcHJpbnRfY2hhciIsInBwX29wZW5faGJveCIsInBwX29wZW5fdmJveCIsInBwX29wZW5faHZib3giLCJwcF9vcGVuX2hvdmJveCIsInBwX29wZW5fYm94IiwicHBfcHJpbnRfbmV3bGluZSIsInBwX3ByaW50X2ZsdXNoIiwicHBfZm9yY2VfbmV3bGluZSIsInBwX3ByaW50X2lmX25ld2xpbmUiLCJwcF9wcmludF9jdXN0b21fYnJlYWsiLCJwcF9wcmludF9icmVhayIsInBwX3ByaW50X3NwYWNlIiwicHBfcHJpbnRfY3V0IiwicHBfb3Blbl90Ym94IiwicHBfY2xvc2VfdGJveCIsInBwX3ByaW50X3RicmVhayIsInBwX3ByaW50X3RhYiIsInBwX3NldF90YWIiLCJwcF9zZXRfbWF4X2JveGVzIiwicHBfZ2V0X21heF9ib3hlcyIsInBwX292ZXJfbWF4X2JveGVzIiwicHBfc2V0X2VsbGlwc2lzX3RleHQiLCJwcF9nZXRfZWxsaXBzaXNfdGV4dCIsInBwX2xpbWl0IiwicHBfc2V0X21heF9pbmRlbnQiLCJwcF9nZXRfbWF4X2luZGVudCIsInBwX3NldF9tYXJnaW4iLCJuZXdfbWF4X2luZGVudCIsInZhbGlkYXRlX2dlb21ldHJ5IiwibWFyZ2luIiwibWF4X2luZGVudCIsImNoZWNrX2dlb21ldHJ5IiwiZ2VvbWV0cnkiLCJwcF9nZXRfbWFyZ2luIiwicHBfc2V0X2Z1bGxfZ2VvbWV0cnkiLCJwcF9zZXRfZ2VvbWV0cnkiLCJwcF9zYWZlX3NldF9nZW9tZXRyeSIsInBwX2dldF9nZW9tZXRyeSIsInBwX3VwZGF0ZV9nZW9tZXRyeSIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsInBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aSIsImRpc3BsYXlfbmV3bGluZSIsImJsYW5rX2xpbmUiLCJkaXNwbGF5X2JsYW5rcyIsInBwX3NldF9mb3JtYXR0ZXJfb3V0X2NoYW5uZWwiLCJkZWZhdWx0X3BwX21hcmtfb3Blbl90YWciLCJkZWZhdWx0X3BwX21hcmtfY2xvc2VfdGFnIiwiZGVmYXVsdF9wcF9wcmludF9vcGVuX3RhZyIsImRlZmF1bHRfcHBfcHJpbnRfY2xvc2VfdGFnIiwicHBfbWFrZV9mb3JtYXR0ZXIiLCJwcF9xdWV1ZSIsInN5c190b2siLCJzY2FuX3N0YWNrIiwiZm9ybWF0dGVyX29mX291dF9mdW5jdGlvbnMiLCJvdXRfZnVucyIsIm1ha2VfZm9ybWF0dGVyIiwicHBmIiwiZm9ybWF0dGVyX29mX291dF9jaGFubmVsIiwiZm9ybWF0dGVyX29mX2J1ZmZlciIsInBwX2J1ZmZlcl9zaXplIiwicHBfbWFrZV9idWZmZXIiLCJzdGRidWYiLCJzdGRfZm9ybWF0dGVyIiwiZXJyX2Zvcm1hdHRlciIsInN0cl9mb3JtYXR0ZXIiLCJmbHVzaF9idWZmZXJfZm9ybWF0dGVyIiwiZmx1c2hfc3RyX2Zvcm1hdHRlciIsIm1ha2Vfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJzb2IiLCJnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciIsImZsdXNoX3N5bWJvbGljX291dHB1dF9idWZmZXIiLCJpdGVtcyIsImFkZF9zeW1ib2xpY19vdXRwdXRfaXRlbSIsIml0ZW0iLCJmb3JtYXR0ZXJfb2Zfc3ltYm9saWNfb3V0cHV0X2IiLCJvcGVuX2hib3giLCJvcGVuX3Zib3giLCJvcGVuX2h2Ym94Iiwib3Blbl9ob3Zib3giLCJvcGVuX2JveCIsImNsb3NlX2JveCIsIm9wZW5fdGFnIiwiY2xvc2VfdGFnIiwib3Blbl9zdGFnIiwiY2xvc2Vfc3RhZyIsInByaW50X2FzIiwicHJpbnRfYm9vbCIsInByaW50X2JyZWFrIiwicHJpbnRfY3V0IiwicHJpbnRfc3BhY2UiLCJmb3JjZV9uZXdsaW5lIiwicHJpbnRfZmx1c2giLCJwcmludF9pZl9uZXdsaW5lIiwib3Blbl90Ym94IiwiY2xvc2VfdGJveCIsInByaW50X3RicmVhayIsInNldF90YWIiLCJwcmludF90YWIiLCJzZXRfbWFyZ2luIiwiZ2V0X21hcmdpbiIsInNldF9tYXhfaW5kZW50IiwiZ2V0X21heF9pbmRlbnQiLCJzZXRfZ2VvbWV0cnkiLCJzYWZlX3NldF9nZW9tZXRyeSIsImdldF9nZW9tZXRyeSIsInVwZGF0ZV9nZW9tZXRyeSIsInNldF9tYXhfYm94ZXMiLCJnZXRfbWF4X2JveGVzIiwib3Zlcl9tYXhfYm94ZXMiLCJzZXRfZWxsaXBzaXNfdGV4dCIsImdldF9lbGxpcHNpc190ZXh0Iiwic2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCIsInNldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyIsInNldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMiLCJnZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIiwic2V0X3ByaW50X3RhZ3MiLCJnZXRfcHJpbnRfdGFncyIsInNldF9tYXJrX3RhZ3MiLCJnZXRfbWFya190YWdzIiwic2V0X3RhZ3MiLCJwcF9wcmludF9saXN0IiwicHBfdiIsIm9wdCQwIiwicHBfc2VwIiwib3B0JDEiLCJwcF9wcmludF9zZXEiLCJzZXEkMSIsInNlcSQyIiwicHBfcHJpbnRfdGV4dCIsInBwX3ByaW50X29wdGlvbiIsInBwX3ByaW50X3Jlc3VsdCIsInBwX3ByaW50X2VpdGhlciIsImNvbXB1dGVfdGFnIiwidGFnX2FjYyIsIm91dHB1dF9mb3JtYXR0aW5nX2xpdCIsImJ0eSIsInAkNiIsInAkNyIsInNpemUkMSIsInAkOCIsImtkcHJpbnRmIiwiZHByaW50ZiIsImthc3ByaW50ZiIsImFzcHJpbnRmIiwiZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVycyIsInBwX3NldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInBwX2dldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdSIsInNldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsImdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdCIsInBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsInN0cmluZ2lmeSIsInBwX2dldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImZ1bnMiLCJtYXJrX29wZW5fdGFnIiwibWFya19jbG9zZV90YWciLCJwcmludF9vcGVuX3RhZyIsInByaW50X2Nsb3NlX3RhZyIsInNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsImdldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyIsIm51bGxfY2hhciIsIm5leHRfY2hhciIsImliIiwicGVla19jaGFyIiwiY2hlY2tlZF9wZWVrX2NoYXIiLCJlbmRfb2ZfaW5wdXQiLCJiZWdpbm5pbmdfb2ZfaW5wdXQiLCJuYW1lX29mX2lucHV0IiwiY2hhcl9jb3VudCIsImludmFsaWRhdGVfY3VycmVudF9jaGFyIiwidG9rZW5fc3RyaW5nIiwidG9rZW5fYnVmZmVyIiwic2tpcF9jaGFyIiwiaWdub3JlX2NoYXIiLCJzdG9yZV9jaGFyIiwiZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZSIsImluYW1lIiwic2Nhbl9jbG9zZV9hdF9lbmQiLCJzY2FuX3JhaXNlX2F0X2VuZCIsImZyb21faWMiLCJzY2FuX2Nsb3NlX2ljIiwiZW9mIiwib3Blbl9pbl9maWxlIiwiaWMkMCIsIm1lbW8iLCJtZW1vX2Zyb21fY2hhbm5lbCIsImJhZF9pbnB1dCIsImJhZF9pbnB1dF9lc2NhcGUiLCJiYWRfdG9rZW5fbGVuZ3RoIiwibWVzc2FnZSIsImJhZF9mbG9hdCIsImJhZF9oZXhfZmxvYXQiLCJjaGFyYWN0ZXJfbWlzbWF0Y2giLCJjaSIsImNoZWNrX3RoaXNfY2hhciIsImNoZWNrX2NoYXIiLCJ0b2tlbl9jaGFyIiwidG9rZW5fYm9vbCIsImludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIiwidG9rZW5faW50X2xpdGVyYWwiLCJjb252IiwidG9rZW5fZmxvYXQiLCJzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciIsInNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzIiwic2Nhbl9kaWdpdF9wbHVzIiwiYmFzaXMiLCJkaWdpdHAiLCJ3aWR0aCQzIiwiaXNfYmluYXJ5X2RpZ2l0Iiwic2Nhbl9iaW5hcnlfaW50IiwiaXNfb2N0YWxfZGlnaXQiLCJzY2FuX29jdGFsX2ludCIsImlzX2hleGFfZGlnaXQiLCJzY2FuX2hleGFkZWNpbWFsX2ludCIsInNjYW5fc2lnbiIsInNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbCIsInNjYW5faW50X2NvbnZlcnNpb24iLCJzY2FuX2ZyYWN0aW9uYWxfcGFydCIsInNjYW5fZXhwb25lbnRfcGFydCIsInNjYW5fZmxvYXQiLCJwcmVjaXNpb24iLCJwcmVjaXNpb24kMCIsImNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIiwic2Nhbl9oZXhfZmxvYXQiLCJ3aWR0aCQ0Iiwid2lkdGgkNSIsIndpZHRoJDYiLCJ3aWR0aCQxMCIsIndpZHRoJDciLCJ3aWR0aCQ4Iiwid2lkdGgkOSIsInNjYW5fY2FtbF9mbG9hdF9yZXN0Iiwid2lkdGhfcHJlY2lzaW9uIiwiZnJhY193aWR0aCIsInNjYW5fY2FtbF9mbG9hdCIsInNjYW5fc3RyaW5nIiwic3RwIiwiaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciIsImNoZWNrX25leHRfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3JfY2hhciIsImNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIiwic2Nhbl9iYWNrc2xhc2hfY2hhciIsImMwIiwiZ2V0X2RpZ2l0IiwiZ2V0X2RpZ2l0JDAiLCJjMSQwIiwiYzIkMCIsInNjYW5fY2FtbF9zdHJpbmciLCJmaW5kX3N0b3AkMCIsInNraXBfc3BhY2VzIiwiZmluZF9zdG9wIiwic2Nhbl9jaGFyc19pbl9jaGFyX3NldCIsInNjYW5faW5kaWMiLCJzY2FuX2NoYXJzIiwic2NhbmZfYmFkX2lucHV0Iiwid2lkdGhfb2ZfcGFkX29wdCIsInN0b3BwZXJfb2ZfZm9ybWF0dGluZ19saXQiLCJmbXRpbmciLCJ0YWtlX2Zvcm1hdF9yZWFkZXJzJDAiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzJDAiLCJyZWFkZXIiLCJuZXdfayIsInJlYWRlcnNfcmVzdCIsInRha2VfZm9ybWF0X3JlYWRlcnMiLCJ0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIiwicGFkX3ByZWNfc2NhbmYiLCJyZWFkZXJzIiwibWFrZV9zY2FuZiIsInNjYW4kMCIsInN0cl9yZXN0Iiwic2NhbiQxIiwic2NhbiQyIiwic2NhbiQzIiwic2NhbiQ0IiwiY29udiQwIiwic2NhbiQ1IiwiY29udiQxIiwic2NhbiQ2IiwiY29udiQyIiwic2NhbiQ3Iiwic2NhbiQ4IiwiZm10aW5nX2xpdCQwIiwic3RwJDAiLCJzJDIiLCJzdHJfcmVzdCQwIiwiYXJnX3Jlc3QiLCJrc2NhbmYiLCJlZiIsImV4YyQwIiwiZXhjIiwiYXJncyQxIiwiYXJncyQwIiwiYnNjYW5mIiwia3NzY2FuZiIsInNzY2FuZiIsInNjYW5mIiwiYnNjYW5mX2Zvcm1hdCIsImZvcm1hdCIsInNzY2FuZl9mb3JtYXQiLCJmb3JtYXRfZnJvbV9zdHJpbmciLCJ1bmVzY2FwZWQiLCJrZnNjYW5mIiwiZnNjYW5mIiwicmVnaXN0ZXIiLCJyZWdpc3Rlcl9leGNlcHRpb24iLCJvJDAiLCJpbml0aWFsX29iamVjdF9zaXplIiwiZHVtbXlfaXRlbSIsInB1YmxpY19tZXRob2RfbGFiZWwiLCJ0YWciLCJjb21wYXJlJDAiLCJjb21wYXJlJDEiLCJkdW1teV90YWJsZSIsInRhYmxlX2NvdW50IiwiZHVtbXlfbWV0IiwiZml0X3NpemUiLCJuZXdfdGFibGUiLCJwdWJfbGFiZWxzIiwibWV0aG9kcyIsImFycmF5IiwibmV3X3NpemUiLCJvbGRfc2l6ZSIsIm5ld19idWNrIiwibWV0aG9kX2NvdW50IiwiaW5zdF92YXJfY291bnQiLCJuZXdfbWV0aG9kIiwidGFibGUiLCJnZXRfbWV0aG9kX2xhYmVsIiwibGFiZWwiLCJnZXRfbWV0aG9kX2xhYmVscyIsIm5hbWVzIiwic2V0X21ldGhvZCIsImVsZW1lbnQiLCJnZXRfbWV0aG9kIiwiYXJyIiwibmFycm93IiwidmFycyIsInZpcnRfbWV0aHMiLCJjb25jcl9tZXRocyIsInZhcnMkMCIsInZpcnRfbWV0aHMkMCIsImNvbmNyX21ldGhzJDAiLCJ2aXJ0X21ldGhfbGFicyIsImNvbmNyX21ldGhfbGFicyIsImxhYiIsInR2YXJzIiwiYnlfbmFtZSIsImJ5X2xhYmVsIiwibWV0IiwiaG0iLCJ3aWRlbiIsInNhdmVkX3ZhcnMiLCJzYXZlZF9oaWRkZW5fbWV0aHMiLCJuZXdfdmFyaWFibGUiLCJ0b19hcnJheSIsIm5ld19tZXRob2RzX3ZhcmlhYmxlcyIsIm1ldGhzIiwidmFscyIsIm1ldGhzJDAiLCJubWV0aHMiLCJudmFscyIsImdldF92YXJpYWJsZSIsImdldF92YXJpYWJsZXMiLCJhZGRfaW5pdGlhbGl6ZXIiLCJjcmVhdGVfdGFibGUiLCJwdWJsaWNfbWV0aG9kcyIsInRhZ3MiLCJpbml0X2NsYXNzIiwiaW5oZXJpdHMiLCJjbGEiLCJzdXBlciQwIiwibm0iLCJtYWtlX2NsYXNzIiwicHViX21ldGhzIiwiY2xhc3NfaW5pdCIsImVudl9pbml0IiwibWFrZV9jbGFzc19zdG9yZSIsImluaXRfdGFibGUiLCJkdW1teV9jbGFzcyIsImxvYyIsInVuZGVmIiwiY3JlYXRlX29iamVjdCIsImNyZWF0ZV9vYmplY3Rfb3B0Iiwib2JqXzAiLCJpdGVyX2YiLCJydW5faW5pdGlhbGl6ZXJzIiwiaW5pdHMiLCJydW5faW5pdGlhbGl6ZXJzX29wdCIsImNyZWF0ZV9vYmplY3RfYW5kX3J1bl9pbml0aWFsaSIsImJ1aWxkX3BhdGgiLCJrZXlzIiwibG9va3VwX3RhYmxlcyIsInJvb3QiLCJyb290X2RhdGEiLCJ0YWJsZXMkMCIsInRhYmxlcyQxIiwidGFibGVzX2RhdGEiLCJuZXdfY2FjaGUiLCJzZXRfbWV0aG9kcyIsImNsbyIsImNsbyQwIiwibiQyIiwibiQzIiwibiQ0IiwibiQ1IiwibiQ2IiwieCQzIiwibiQ3IiwieCQ0IiwibiQ4IiwibiQ5IiwieCQ1IiwiZiQ4IiwiZSQyIiwibiQxMCIsIngkNiIsImYkOSIsIm4kMTEiLCJ4JDciLCJuJDEyIiwieCQ4IiwibiQxMyIsIm4kMTQiLCJlJDMiLCJuJDE1IiwibSQxIiwibSQyIiwieCQ5IiwibSQzIiwibiQxNiIsIm0kNCIsImUkNCIsIm4kMTciLCJtJDUiLCJuJDE4IiwiaW5pdF9tb2RfYmxvY2siLCJjb21wcyQwIiwibW9kdSIsInNoYXBlIiwiZm4kMCIsImNvbXBzIiwiaW5pdF9tb2QiLCJ1cGRhdGVfbW9kX2Jsb2NrIiwiY2wiLCJ1cGRhdGVfbW9kIiwiaW5pdGlhbF9idWZmZXIiLCJidWZmZXIiLCJidWZwb3MiLCJyZXNldF9idWZmZXIiLCJzdG9yZSIsIm5ld2J1ZmZlciIsImdldF9zdHJpbmciLCJtYWtlX2xleGVyIiwia2V5d29yZHMiLCJrd2RfdGFibGUiLCJpZGVudF9vcl9rZXl3b3JkIiwia2V5d29yZF9vcl9lcnJvciIsImVuZF9leHBvbmVudF9wYXJ0IiwiZXhwb25lbnRfcGFydCIsIm51bWJlciIsImlkZW50MiIsIm5leHRfdG9rZW4iLCJlc2NhcGUiLCJjb21tZW50IiwiYzMiLCJoa2V5IiwiY2xlYW4iLCJkb19idWNrZXQiLCJpbnNlcnRfYnVja2V0IiwiY29udGFpbmVyIiwicmVtb3ZlX2J1Y2tldCIsImhrIiwibmV3X2QiLCJidWNrZXRfbGVuZ3RoX2FsaXZlIiwic3RhdHNfYWxpdmUiLCJnZXRfZGF0YV9jb3B5Iiwic2V0X2RhdGEiLCJ1bnNldF9kYXRhIiwiY2hlY2tfZGF0YSIsImJsaXRfZGF0YSIsImVwaCIsInF1ZXJ5Iiwic2V0X2tleV9kYXRhIiwibWFrZSQwIiwidGVzdF9rZXkiLCJ0JDAiLCJnZXRfa2V5MSIsImdldF9rZXkxX2NvcHkiLCJzZXRfa2V5MSIsInVuc2V0X2tleTEiLCJjaGVja19rZXkxIiwiZ2V0X2tleTIiLCJnZXRfa2V5Ml9jb3B5Iiwic2V0X2tleTIiLCJ1bnNldF9rZXkyIiwiY2hlY2tfa2V5MiIsImJsaXRfa2V5MSIsImJsaXRfa2V5MiIsImJsaXRfa2V5MTIiLCJnZXRfZGF0YSQwIiwiZ2V0X2RhdGFfY29weSQwIiwic2V0X2RhdGEkMCIsInVuc2V0X2RhdGEkMCIsImNoZWNrX2RhdGEkMCIsImJsaXRfZGF0YSQwIiwibWFrZSQxIiwia2V5MSIsImtleTIiLCJxdWVyeSQwIiwiazIkMCIsImsxJDAiLCJlcXVhbCQwIiwibWFrZSQyIiwiYWRkJDAiLCJ0ZXN0X2tleXMiLCJyZW1vdmUkMCIsImZpbmQkMCIsImxlbmd0aCQwIiwiY2xlYXIkMCIsImNyZWF0ZSQxIiwibGVuZ3RoJDEiLCJnZXRfa2V5JDAiLCJnZXRfa2V5X2NvcHkkMCIsInNldF9rZXkkMCIsInVuc2V0X2tleSQwIiwiY2hlY2tfa2V5JDAiLCJibGl0X2tleSQwIiwiZ2V0X2RhdGEkMSIsImdldF9kYXRhX2NvcHkkMSIsInNldF9kYXRhJDEiLCJ1bnNldF9kYXRhJDEiLCJjaGVja19kYXRhJDEiLCJibGl0X2RhdGEkMSIsIm1ha2UkMyIsInF1ZXJ5JDEiLCJraSIsImswIiwibWFrZSQ0IiwiYWRkJDEiLCJ0ZXN0X2tleXMkMCIsInJlbW92ZSQxIiwiZmluZCQxIiwibGVuZ3RoJDIiLCJjbGVhciQxIiwibnVsbCQwIiwiY3VycmVudF9kaXJfbmFtZSIsInBhcmVudF9kaXJfbmFtZSIsImRpcl9zZXAiLCJxdW90ZXF1b3RlIiwibnVsbCQxIiwiY3VycmVudF9kaXJfbmFtZSQwIiwicGFyZW50X2Rpcl9uYW1lJDAiLCJkaXJfc2VwJDAiLCJudWxsJDIiLCJjdXJyZW50X2Rpcl9uYW1lJDEiLCJwYXJlbnRfZGlyX25hbWUkMSIsImRpcl9zZXAkMSIsImdlbmVyaWNfYmFzZW5hbWUiLCJpc19kaXJfc2VwIiwiZ2VuZXJpY19kaXJuYW1lIiwiaXNfcmVsYXRpdmUiLCJpc19pbXBsaWNpdCIsImNoZWNrX3N1ZmZpeCIsInN1ZmYiLCJjaG9wX3N1ZmZpeF9vcHQiLCJsZW5fZiIsInRlbXBfZGlyX25hbWUiLCJxdW90ZSIsInF1b3RlX2NvbW1hbmQiLCJiYXNlbmFtZSIsImRpcm5hbWUiLCJpc19kaXJfc2VwJDAiLCJpc19yZWxhdGl2ZSQwIiwiaXNfaW1wbGljaXQkMCIsImNoZWNrX3N1ZmZpeCQwIiwiY2hvcF9zdWZmaXhfb3B0JDAiLCJ0ZW1wX2Rpcl9uYW1lJDAiLCJxdW90ZSQwIiwiYWRkX2JzIiwibG9vcCQwIiwibG9vcF9icyIsInF1b3RlX2NtZF9maWxlbmFtZSIsInF1b3RlX2NvbW1hbmQkMCIsImRyaXZlX2FuZF9wYXRoIiwiZGlybmFtZSQwIiwicGF0aCIsImRyaXZlIiwiZGlyIiwiYmFzZW5hbWUkMCIsImJhc2VuYW1lJDEiLCJkaXJuYW1lJDEiLCJudWxsJDMiLCJjdXJyZW50X2Rpcl9uYW1lJDIiLCJwYXJlbnRfZGlyX25hbWUkMiIsImRpcl9zZXAkMiIsImlzX2Rpcl9zZXAkMSIsImlzX3JlbGF0aXZlJDEiLCJpc19pbXBsaWNpdCQxIiwiY2hlY2tfc3VmZml4JDEiLCJjaG9wX3N1ZmZpeF9vcHQkMSIsInRlbXBfZGlyX25hbWUkMSIsInF1b3RlJDEiLCJxdW90ZV9jb21tYW5kJDEiLCJiYXNlbmFtZSQyIiwiZGlybmFtZSQyIiwiY2hvcF9zdWZmaXgiLCJleHRlbnNpb25fbGVuIiwiaTAiLCJleHRlbnNpb24iLCJjaG9wX2V4dGVuc2lvbiIsInJlbW92ZV9leHRlbnNpb24iLCJ0ZW1wX2ZpbGVfbmFtZSIsInRlbXBfZGlyIiwicm5kIiwiY3VycmVudF90ZW1wX2Rpcl9uYW1lIiwic2V0X3RlbXBfZGlyX25hbWUiLCJnZXRfdGVtcF9kaXJfbmFtZSIsInRlbXBfZmlsZSIsIm9wZW5fdGVtcF9maWxlIiwic3RoJDAiLCJwZXJtcyIsInN0aCQxIiwibmVnIiwiY29uaiIsIm11bCIsImRpdiIsImludiIsIm5vcm0yIiwibm9ybSIsInEkMCIsInBvbGFyIiwic3FydCIsInckMCIsImV4cCIsImxvZyIsInBvdyIsImZsb2F0MzIiLCJmbG9hdDY0IiwiaW50OF9zaWduZWQiLCJpbnQ4X3Vuc2lnbmVkIiwiaW50MTZfc2lnbmVkIiwiaW50MTZfdW5zaWduZWQiLCJjb21wbGV4MzIiLCJjb21wbGV4NjQiLCJraW5kX3NpemVfaW5fYnl0ZXMiLCJjX2xheW91dCIsImZvcnRyYW5fbGF5b3V0IiwiY2xvb3AiLCJpZHgiLCJjb2wiLCJmbG9vcCIsImxheW91dCIsImRpbXMiLCJzaXplX2luX2J5dGVzIiwic2l6ZV9pbl9ieXRlcyQwIiwib2ZfdmFsdWUiLCJkaW0iLCJzaXplX2luX2J5dGVzJDEiLCJzbGljZSIsImluaXQkMCIsIm9mX2FycmF5IiwiYmEiLCJkaW0xIiwiZGltMiIsInNpemVfaW5fYnl0ZXMkMiIsInNsaWNlX2xlZnQiLCJzbGljZV9yaWdodCIsImluaXQkMSIsIm9mX2FycmF5JDAiLCJyb3ciLCJjcmVhdGUkMiIsImRpbTMiLCJzaXplX2luX2J5dGVzJDMiLCJzbGljZV9sZWZ0XzEiLCJzbGljZV9yaWdodF8xIiwic2xpY2VfbGVmdF8yIiwic2xpY2VfcmlnaHRfMiIsImluaXQkMiIsIm9mX2FycmF5JDEiLCJhcnJheTBfb2ZfZ2VuYXJyYXkiLCJhcnJheTFfb2ZfZ2VuYXJyYXkiLCJhcnJheTJfb2ZfZ2VuYXJyYXkiLCJhcnJheTNfb2ZfZ2VuYXJyYXkiLCJyZXNoYXBlXzAiLCJyZXNoYXBlXzEiLCJyZXNoYXBlXzIiLCJyZXNoYXBlXzMiLCJvcGVuX2JpbiIsIm9wZW5fdGV4dCIsIm9wZW5fZ2VuIiwid2l0aF9vcGVuIiwib3BlbmZ1biIsIndpdGhfb3Blbl9iaW4iLCJ3aXRoX29wZW5fdGV4dCIsIndpdGhfb3Blbl9nZW4iLCJzZWVrIiwiY2xvc2UiLCJjbG9zZV9ub2VyciIsInJlYWRfdXB0byIsImVuc3VyZSIsIm5ld19sZW4kMCIsIm5ld19sZW4kMSIsImlucHV0X2FsbCIsImNodW5rX3NpemUiLCJpbml0aWFsX3NpemUkMCIsImluaXRpYWxfc2l6ZSQxIiwibnJlYWQiLCJidWYkMiIsImJ1ZiQwIiwiYnVmJDEiLCJyZW0iLCJzZXRfYmluYXJ5X21vZGUiLCJmb3JtYXRfcGVyaW9kIiwiZm10IiwicCIsIm1ha2VfcGVyaW9kIiwieWVhcnMiLCJtb250aHMiLCJkYXlzIiwiYWRkX3BlcmlvZHMiLCJkMSIsImQyIiwic3ViX3BlcmlvZHMiLCJtdWxfcGVyaW9kIiwibSIsInBlcmlvZF90b19kYXlzIiwiaXNfbGVhcF95ZWFyIiwieWVhciIsImRheXNfaW5fbW9udGgiLCJtb250aCIsImlzX3ZhbGlkX2RhdGUiLCJkIiwibWFrZV9kYXRlIiwiZGF5IiwiYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kIiwieWVhciQwIiwibW9udGhzJDAiLCJuZXdfbW9udGgiLCJtb250aHMkMSIsInllYXIkMSIsIm1vbnRocyQyIiwieWVhciQyIiwiYWRkX2RhdGVzIiwib3B0Iiwic3RoIiwicm91bmQiLCJuZXdfbW9udGgkMCIsIm5ld195ZWFyJDAiLCJuZXdfZGF0ZSIsImQkMCIsIm5ld195ZWFyIiwiZGF5cyQyIiwiZCQxIiwiZGF5c19pbl9kX21vbnRoIiwibmV3X2RheSIsIm5ld19tb250aCQxIiwibmV3X3llYXIkMSIsImRheXMkMCIsImQkMiIsIm5ld19tb250aCQyIiwibmV3X3llYXIkMiIsImRheXMkMSIsImQkMyIsImNvbXBhcmVfZGF0ZXMiLCJmb3JtYXRfZGF0ZSIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZGF5c19tb250aCIsIm5lZ19wZXJpb2QiLCJzdWJfZGF0ZXMiLCJjbXAiLCJuZXdfZDJfbW9udGgiLCJuZXdfZDJfeWVhciIsIm5ld19kMiIsImRhdGVfdG9feW1kIiwicGVyaW9kX3RvX3ltZHMiLCJzdHJlYW0kMSIsInN0cmVhbSQwIiwic3RyZWFtIiwidmVyc2lvbiIsIm9jYW1sX2xleF90YWJsZXMiLCJvY2FtbF9sZXhfdGFibGVzJDAiLCJvY2FtbF9sZXhfdGFibGVzJDEiLCJqc29uX2Vycm9yIiwicyIsInV0Zjhfb2ZfY29kZSIsImJ1ZiIsIngiLCJhZGQiLCJtYXhiaXRzIiwibiIsInV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIiLCJpIiwiaiIsImhpZ2gxMCIsImxvdzEwIiwiaW5pdF9sZXhlciIsImZuYW1lIiwib3B0Iiwic3RoIiwibG51bSIsImJ1ZiQwIiwiYnVmJDEiLCJoZXgiLCJ3cml0ZV9zcGVjaWFsIiwic3JjIiwic3RhcnQiLCJzdG9wIiwib2IiLCJzdHIiLCJ3cml0ZV9zdHJpbmciLCJjIiwiZXhjJDAiLCJleGMiLCJqc29uX3N0cmluZ19vZl9zdHJpbmciLCJ3cml0ZV9udWxsIiwid3JpdGVfYm9vbCIsIndyaXRlX2RpZ2l0cyIsImQiLCJ3cml0ZV9pbnQiLCJmbG9hdF9uZWVkc19wZXJpb2QiLCJ3cml0ZV9mbG9hdCIsInMxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMiLCJzaWduaWZpY2FudF9maWd1cmVzIiwid3JpdGVfZmxvYXRfcHJlYyIsIndyaXRlX3N0ZF9mbG9hdCIsIndyaXRlX3N0ZF9mbG9hdF9wcmVjIiwid3JpdGVfaW50bGl0Iiwid3JpdGVfZmxvYXRsaXQiLCJ3cml0ZV9zdHJpbmdsaXQiLCJpdGVyMiIsImZfZWx0IiwiZl9zZXAiLCJsJDAiLCJ5JDAiLCJsIiwieSIsIndyaXRlX3ZhcmlhbnQiLCJvIiwid3JpdGVfanNvbiIsIndyaXRlX3R1cGxlIiwid3JpdGVfbGlzdCIsIndyaXRlX2Fzc29jIiwibCQxIiwicyQwIiwiYiIsInMkMSIsImYiLCJzJDIiLCJzJDMiLCJ3cml0ZV9zdGRfdmFyaWFudCIsIndyaXRlX3N0ZF9qc29uIiwid3JpdGVfc3RkX3R1cGxlIiwidG9fYnVmZmVyIiwic3VmIiwic3RoJDAiLCJzdGQiLCJ0b19zdHJpbmciLCJsZW4iLCJvYiQwIiwidG9fY2hhbm5lbCIsIm9jIiwidG9fb3V0cHV0Iiwib3V0IiwidG9fZmlsZSIsImZpbGUiLCJlJDAiLCJlIiwic2VxX3RvX2J1ZmZlciIsInN0Iiwic2VxX3RvX3N0cmluZyIsInNlcV90b19jaGFubmVsIiwic2VxIiwianNvbiIsInNlcV90b19maWxlIiwic29ydCIsInYiLCJrIiwiYSIsInYkMCIsImwkMiIsInBwIiwiZm10IiwidHVwIiwic2VwIiwidmFsdWUiLCJuYW1lIiwieCQxIiwieHMiLCJrZXkiLCJ4cyQwIiwieCQwIiwieCQyIiwieCQzIiwieCQ0IiwieCQ1IiwieCQ2Iiwic2hvdyIsImVxdWFsIiwiYSQwIiwiYiQwIiwiYiQxIiwiYSQxIiwieXMiLCJjb21wYXJlX2tleXMiLCJrZXkkMCIsInlzJDAiLCJ2YWx1ZSQwIiwicmVzdWx0IiwieXMkMSIsInhzJDEiLCJiJDIiLCJhJDIiLCJuYW1lJDAiLCJyZXN1bHQkMCIsImIkMyIsImEkMyIsImIkNCIsImEkNCIsImIkNSIsImEkNSIsImIkNiIsImEkNiIsImIkNyIsImEkNyIsInBwX2xpc3QiLCJwcHgiLCJwcF9zZXAiLCJpc19hdG9tIiwiZm9ybWF0IiwiaW5zaWRlX2JveCIsInMkNCIsInJlcHJlc2VudGF0aW9uIiwib3AiLCJyZXByZXNlbnRhdGlvbiQwIiwicHAkMCIsInByZXR0eV9wcmludCIsInByZXR0eV90b19zdHJpbmciLCJwcmV0dHlfdG9fY2hhbm5lbCIsImhleCQwIiwid3JpdGVfc3BlY2lhbCQwIiwid3JpdGVfc3RyaW5nJDAiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMCIsIndyaXRlX251bGwkMCIsIndyaXRlX2Jvb2wkMCIsIndyaXRlX2RpZ2l0cyQwIiwid3JpdGVfaW50JDAiLCJmbG9hdF9uZWVkc19wZXJpb2QkMCIsIndyaXRlX2Zsb2F0JDAiLCJ3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyQwIiwid3JpdGVfZmxvYXRfcHJlYyQwIiwid3JpdGVfc3RkX2Zsb2F0JDAiLCJ3cml0ZV9zdGRfZmxvYXRfcHJlYyQwIiwiaXRlcjIkMCIsImZfc2VwJDAiLCJ3cml0ZV9saXN0JDAiLCJ3cml0ZV9qc29uJDAiLCJ3cml0ZV9hc3NvYyQwIiwid3JpdGVfc3RkX2pzb24kMCIsInRvX2J1ZmZlciQwIiwidG9fc3RyaW5nJDAiLCJ0b19jaGFubmVsJDAiLCJ0b19vdXRwdXQkMCIsInRvX2ZpbGUkMCIsInNlcV90b19idWZmZXIkMCIsInNlcV90b19zdHJpbmckMCIsInNlcV90b19jaGFubmVsJDAiLCJzZXFfdG9fZmlsZSQwIiwic29ydCQwIiwicHBfbGlzdCQwIiwiaXNfYXRvbSQwIiwiZm9ybWF0JDAiLCJwcCQxIiwicHAkMiIsInNob3ckMCIsImVxdWFsJDAiLCJwcmV0dHlfcHJpbnQkMCIsInByZXR0eV90b19zdHJpbmckMCIsInByZXR0eV90b19jaGFubmVsJDAiLCJoZXgkMSIsImN1c3RvbV9lcnJvciIsImRlc2NyIiwibGV4YnVmIiwib2ZmcyIsImJvbCIsInBvczEiLCJwb3MyIiwiZmlsZV9saW5lIiwiYnl0ZXMiLCJtc2ciLCJsZXhlcl9lcnJvciIsInJlYWRfanVuayIsImxvbmdfZXJyb3IiLCJqdW5rIiwiZXh0cmFfanVuayIsIm1pbjEwIiwibWF4MTAiLCJleHRyYWN0X3Bvc2l0aXZlX2ludCIsImV4dHJhY3RfbmVnYXRpdmVfaW50IiwibmV3bGluZSIsImFkZF9sZXhlbWUiLCJyZWFkX2pzb24iLCJvY2FtbF9sZXhfc3RhdGUiLCJvY2FtbF9sZXhfc3RhdGUkMCIsImZpbmlzaF9zdHJpbmciLCJhY2MiLCJyZWFkX3NwYWNlIiwicmVhZF9vYmplY3RfZW5kIiwiZmllbGRfbmFtZSIsInJlYWRfaWRlbnQiLCJyZWFkX2NvbG9uIiwicmVhZF9vYmplY3Rfc2VwIiwiZmllbGRfbmFtZSQwIiwiYWNjJDAiLCJyZWFkX2FycmF5X2VuZCIsInJlYWRfYXJyYXlfc2VwIiwiZmluaXNoX2NvbW1lbnQiLCJmaW5pc2hfZXNjYXBlZF9jaGFyIiwibWFwX3N0cmluZyIsImMkMCIsIm9jYW1sX2xleF9zdGF0ZSQxIiwib2NhbWxfbGV4X3N0YXRlJDIiLCJjJDEiLCJkJDAiLCJmaW5pc2hfc3RyaW5nbGl0IiwiZmluaXNoX3ZhcmlhbnQiLCJyZWFkX2d0IiwicmVhZF9sdCIsInJlYWRfY29tbWEiLCJzdGFydF9hbnlfdmFyaWFudCIsInJlYWRfZW9mIiwicmVhZF9udWxsIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlIiwicmVhZF9ib29sIiwicmVhZF9pbnQiLCJyZWFkX2ludDMyIiwicmVhZF9pbnQ2NCIsInJlYWRfbnVtYmVyIiwicmVhZF9zdHJpbmciLCJtYXBfaWRlbnQiLCJyZWFkX3NlcXVlbmNlIiwicmVhZF9jZWxsIiwiaW5pdF9hY2MiLCJyZWFkX2xpc3RfcmV2IiwicmVhZF90dXBsZSIsInJlYWRfdHVwbGVfZW5kIiwicmVhZF90dXBsZV9lbmQyIiwicmVhZF90dXBsZV9zZXAiLCJyZWFkX3R1cGxlX3NlcDIiLCJyZWFkX2Fic3RyYWN0X2ZpZWxkcyIsInJlYWRfa2V5IiwicmVhZF9maWVsZCIsInJlYWRfbGN1cmwiLCJzdGFydF9hbnlfdHVwbGUiLCJyZWFkX2xwYXIiLCJyZWFkX3JwYXIiLCJyZWFkX2xiciIsInJlYWRfcmJyIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0Iiwic2tpcF9qc29uIiwic2tpcF9pZGVudCIsImZpbmlzaF9za2lwX3ZhcmlhbnQiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCIsImJ1ZmZlcl9qc29uIiwiYnVmZmVyX3NwYWNlIiwiYnVmZmVyX2lkZW50IiwiYnVmZmVyX2NvbG9uIiwib2NhbWxfbGV4X3N0YXRlJDMiLCJvY2FtbF9sZXhfc3RhdGUkNCIsIm9jYW1sX2xleF9zdGF0ZSQ1Iiwib2NhbWxfbGV4X3N0YXRlJDYiLCJvY2FtbF9sZXhfc3RhdGUkNyIsIm9jYW1sX2xleF9zdGF0ZSQ4IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50IiwicmVhZF9pbnQ4IiwicmVhZF9saXN0IiwicmVhZF9hcnJheSIsInRsIiwiciIsInJlYWRfZmllbGRzIiwiZnJvbV9sZXhidWYiLCJmcm9tX3N0cmluZyQwIiwiZnJvbV9jaGFubmVsJDAiLCJpYyIsImZyb21fZmlsZSIsInNlcV9mcm9tX2xleGJ1ZiIsImZpbiIsImZpbl9lJDAiLCJmaW5fZSIsInNlcV9mcm9tX3N0cmluZyIsInNlcV9mcm9tX2NoYW5uZWwiLCJzZXFfZnJvbV9maWxlIiwiZm5hbWUkMCIsImxpbmVzZXFfZnJvbV9jaGFubmVsIiwibG51bTAiLCJsaW5lIiwibGluZXNlcV9mcm9tX2ZpbGUiLCJwcmV0dGlmeSIsImNvbXBhY3QiLCJ0eXBlcnIiLCJqcyIsIm1lbWJlciIsIm9iaiIsImluZGV4Iiwid3JhcHBlZF9pbmRleCIsIm1hcCIsInRvX2Fzc29jIiwidG9fb3B0aW9uIiwidG9fYm9vbCIsInRvX2Jvb2xfb3B0aW9uIiwidG9fbnVtYmVyIiwidG9fbnVtYmVyX29wdGlvbiIsInRvX2Zsb2F0IiwidG9fZmxvYXRfb3B0aW9uIiwidG9faW50IiwidG9faW50X29wdGlvbiIsInRvX2xpc3QiLCJ0b19zdHJpbmckMSIsInRvX3N0cmluZ19vcHRpb24iLCJjb252ZXJ0X2VhY2giLCJmaWx0ZXJfbWFwIiwiZmxhdHRlbiIsImwyIiwiZmlsdGVyX2luZGV4IiwiZmlsdGVyX2xpc3QiLCJmaWx0ZXJfbWVtYmVyIiwiZmlsdGVyX2Fzc29jIiwiZmlsdGVyX2Jvb2wiLCJmaWx0ZXJfaW50IiwiZmlsdGVyX2Zsb2F0IiwiZmlsdGVyX251bWJlciIsImZpbHRlcl9zdHJpbmciLCJrZXlzIiwidmFsdWVzIiwiY29tYmluZSIsImZpcnN0Iiwic2Vjb25kIiwidG9fYmFzaWMiLCJoZXgkMiIsIndyaXRlX3NwZWNpYWwkMSIsIndyaXRlX3N0cmluZyQxIiwianNvbl9zdHJpbmdfb2Zfc3RyaW5nJDEiLCJ3cml0ZV9udWxsJDEiLCJ3cml0ZV9ib29sJDEiLCJ3cml0ZV9kaWdpdHMkMSIsIndyaXRlX2ludCQxIiwiZmxvYXRfbmVlZHNfcGVyaW9kJDEiLCJ3cml0ZV9mbG9hdCQxIiwid3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2Zsb2F0X3ByZWMkMSIsIndyaXRlX3N0ZF9mbG9hdCQxIiwid3JpdGVfc3RkX2Zsb2F0X3ByZWMkMSIsIndyaXRlX2ludGxpdCQwIiwiaXRlcjIkMSIsImZfc2VwJDEiLCJ3cml0ZV92YXJpYW50JDAiLCJ3cml0ZV9qc29uJDEiLCJ3cml0ZV90dXBsZSQwIiwid3JpdGVfbGlzdCQxIiwid3JpdGVfYXNzb2MkMSIsIndyaXRlX3N0ZF92YXJpYW50JDAiLCJ3cml0ZV9zdGRfanNvbiQxIiwid3JpdGVfc3RkX3R1cGxlJDAiLCJ0b19idWZmZXIkMSIsInRvX3N0cmluZyQyIiwidG9fY2hhbm5lbCQxIiwidG9fb3V0cHV0JDEiLCJ0b19maWxlJDEiLCJzZXFfdG9fYnVmZmVyJDEiLCJzZXFfdG9fc3RyaW5nJDEiLCJzZXFfdG9fY2hhbm5lbCQxIiwic2VxX3RvX2ZpbGUkMSIsInNvcnQkMSIsInBwX2xpc3QkMSIsImlzX2F0b20kMSIsImZvcm1hdCQxIiwicHAkMyIsInBwJDQiLCJzaG93JDEiLCJlcXVhbCQxIiwicHJldHR5X3ByaW50JDEiLCJwcmV0dHlfdG9fc3RyaW5nJDEiLCJwcmV0dHlfdG9fY2hhbm5lbCQxIiwiaGV4JDMiLCJjdXN0b21fZXJyb3IkMCIsImxleGVyX2Vycm9yJDAiLCJyZWFkX2p1bmskMCIsImxvbmdfZXJyb3IkMCIsIm1pbjEwJDAiLCJtYXgxMCQwIiwiZXh0cmFjdF9wb3NpdGl2ZV9pbnQkMCIsImV4dHJhY3RfbmVnYXRpdmVfaW50JDAiLCJuZXdsaW5lJDAiLCJhZGRfbGV4ZW1lJDAiLCJyZWFkX2pzb24kMCIsImZpbmlzaF9zdHJpbmckMCIsInJlYWRfc3BhY2UkMCIsInJlYWRfb2JqZWN0X2VuZCQwIiwicmVhZF9pZGVudCQwIiwicmVhZF9jb2xvbiQwIiwicmVhZF9vYmplY3Rfc2VwJDAiLCJyZWFkX2FycmF5X2VuZCQwIiwicmVhZF9hcnJheV9zZXAkMCIsImFjYyQxIiwicmVhZF90dXBsZV9lbmQkMCIsInJlYWRfdHVwbGVfc2VwJDAiLCJjb25zIiwiZmluaXNoX3ZhcmlhbnQkMCIsImZpbmlzaF9jb21tZW50JDAiLCJmaW5pc2hfZXNjYXBlZF9jaGFyJDAiLCJtYXBfc3RyaW5nJDAiLCJmaW5pc2hfc3RyaW5nbGl0JDAiLCJyZWFkX2d0JDAiLCJyZWFkX2x0JDAiLCJyZWFkX2NvbW1hJDAiLCJzdGFydF9hbnlfdmFyaWFudCQwIiwicmVhZF9lb2YkMCIsInJlYWRfbnVsbCQwIiwicmVhZF9udWxsX2lmX3Bvc3NpYmxlJDAiLCJyZWFkX2Jvb2wkMCIsInJlYWRfaW50JDAiLCJyZWFkX2ludDMyJDAiLCJyZWFkX2ludDY0JDAiLCJyZWFkX251bWJlciQwIiwicmVhZF9zdHJpbmckMCIsIm1hcF9pZGVudCQwIiwicmVhZF9zZXF1ZW5jZSQwIiwicmVhZF9saXN0X3JldiQwIiwicmVhZF90dXBsZSQwIiwicG9zIiwicmVhZF90dXBsZV9lbmQyJDAiLCJyZWFkX3R1cGxlX3NlcDIkMCIsInJlYWRfYWJzdHJhY3RfZmllbGRzJDAiLCJyZWFkX2xjdXJsJDAiLCJzdGFydF9hbnlfdHVwbGUkMCIsInJlYWRfbHBhciQwIiwicmVhZF9ycGFyJDAiLCJyZWFkX2xiciQwIiwicmVhZF9yYnIkMCIsImZpbmlzaF9za2lwX3ZhcmlhbnQkMCIsInNraXBfanNvbiQwIiwiZmluaXNoX3NraXBfc3RyaW5nbGl0JDAiLCJza2lwX2lkZW50JDAiLCJmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCQwIiwiYnVmZmVyX2pzb24kMCIsImJ1ZmZlcl9zcGFjZSQwIiwiYnVmZmVyX2lkZW50JDAiLCJidWZmZXJfY29sb24kMCIsIm9jYW1sX2xleF9zdGF0ZSQ5Iiwib2NhbWxfbGV4X3N0YXRlJDEwIiwib2NhbWxfbGV4X3N0YXRlJDExIiwib2NhbWxfbGV4X3N0YXRlJDEyIiwib2NhbWxfbGV4X3N0YXRlJDEzIiwib2NhbWxfbGV4X3N0YXRlJDE0Iiwib2NhbWxfbGV4X3N0YXRlJDE1Iiwib2NhbWxfbGV4X3N0YXRlJDE2IiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDAiLCJqdW5rJDAiLCJyZWFkX2ludDgkMCIsInJlYWRfbGlzdCQwIiwicmVhZF9hcnJheSQwIiwicmVhZF9maWVsZHMkMCIsImZyb21fbGV4YnVmJDAiLCJmcm9tX3N0cmluZyQyIiwiZnJvbV9jaGFubmVsJDIiLCJmcm9tX2ZpbGUkMCIsInNlcV9mcm9tX2xleGJ1ZiQwIiwic2VxX2Zyb21fc3RyaW5nJDAiLCJzZXFfZnJvbV9jaGFubmVsJDAiLCJzZXFfZnJvbV9maWxlJDAiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQwIiwibGluZXNlcV9mcm9tX2ZpbGUkMCIsInByZXR0aWZ5JDAiLCJjb21wYWN0JDAiLCJ0eXBlcnIkMCIsIm1lbWJlciQwIiwiaW5kZXgkMCIsIm1hcCQwIiwidG9fYXNzb2MkMCIsInRvX29wdGlvbiQwIiwidG9fYm9vbCQwIiwidG9fYm9vbF9vcHRpb24kMCIsInRvX251bWJlciQwIiwidG9fbnVtYmVyX29wdGlvbiQwIiwidG9fZmxvYXQkMCIsInRvX2Zsb2F0X29wdGlvbiQwIiwidG9faW50JDAiLCJ0b19pbnRfb3B0aW9uJDAiLCJ0b19saXN0JDAiLCJ0b19zdHJpbmckMyIsInRvX3N0cmluZ19vcHRpb24kMCIsImNvbnZlcnRfZWFjaCQwIiwiZmlsdGVyX21hcCQwIiwiZmxhdHRlbiQwIiwiZmlsdGVyX2luZGV4JDAiLCJmaWx0ZXJfbGlzdCQwIiwiZmlsdGVyX21lbWJlciQwIiwiZmlsdGVyX2Fzc29jJDAiLCJmaWx0ZXJfYm9vbCQwIiwiZmlsdGVyX2ludCQwIiwiZmlsdGVyX2Zsb2F0JDAiLCJmaWx0ZXJfbnVtYmVyJDAiLCJmaWx0ZXJfc3RyaW5nJDAiLCJrZXlzJDAiLCJ2YWx1ZXMkMCIsImNvbWJpbmUkMCIsImhleCQ0Iiwid3JpdGVfc3BlY2lhbCQyIiwid3JpdGVfc3RyaW5nJDIiLCJqc29uX3N0cmluZ19vZl9zdHJpbmckMiIsIndyaXRlX251bGwkMiIsIndyaXRlX2Jvb2wkMiIsIndyaXRlX2ludGxpdCQxIiwid3JpdGVfZmxvYXRsaXQkMCIsIndyaXRlX3N0cmluZ2xpdCQwIiwiaXRlcjIkMiIsImZfc2VwJDIiLCJ3cml0ZV92YXJpYW50JDEiLCJ3cml0ZV9qc29uJDIiLCJ3cml0ZV90dXBsZSQxIiwid3JpdGVfbGlzdCQyIiwid3JpdGVfYXNzb2MkMiIsIndyaXRlX3N0ZF92YXJpYW50JDEiLCJ3cml0ZV9zdGRfanNvbiQyIiwid3JpdGVfc3RkX3R1cGxlJDEiLCJ0b19idWZmZXIkMiIsInRvX3N0cmluZyQ0IiwidG9fY2hhbm5lbCQyIiwidG9fb3V0cHV0JDIiLCJ0b19maWxlJDIiLCJzZXFfdG9fYnVmZmVyJDIiLCJzZXFfdG9fc3RyaW5nJDIiLCJzZXFfdG9fY2hhbm5lbCQyIiwic2VxX3RvX2ZpbGUkMiIsInNvcnQkMiIsInBwX2xpc3QkMiIsImlzX2F0b20kMiIsImZvcm1hdCQyIiwicHAkNSIsInBwJDYiLCJzaG93JDIiLCJlcXVhbCQyIiwicHJldHR5X3ByaW50JDIiLCJwcmV0dHlfdG9fc3RyaW5nJDIiLCJwcmV0dHlfdG9fY2hhbm5lbCQyIiwiaGV4JDUiLCJjdXN0b21fZXJyb3IkMSIsImxleGVyX2Vycm9yJDEiLCJyZWFkX2p1bmskMSIsImxvbmdfZXJyb3IkMSIsIm1pbjEwJDEiLCJtYXgxMCQxIiwibmV3bGluZSQxIiwiYWRkX2xleGVtZSQxIiwicmVhZF9qc29uJDEiLCJmaW5pc2hfc3RyaW5nbGl0JDEiLCJyZWFkX3NwYWNlJDEiLCJyZWFkX29iamVjdF9lbmQkMSIsInJlYWRfaWRlbnQkMSIsInJlYWRfY29sb24kMSIsInJlYWRfb2JqZWN0X3NlcCQxIiwicmVhZF9hcnJheV9lbmQkMSIsInJlYWRfYXJyYXlfc2VwJDEiLCJyZWFkX3R1cGxlX2VuZCQxIiwicmVhZF90dXBsZV9zZXAkMSIsImZpbmlzaF92YXJpYW50JDEiLCJmaW5pc2hfY29tbWVudCQxIiwiZmluaXNoX3N0cmluZyQxIiwiZmluaXNoX2VzY2FwZWRfY2hhciQxIiwibWFwX3N0cmluZyQxIiwicmVhZF9ndCQxIiwicmVhZF9sdCQxIiwicmVhZF9jb21tYSQxIiwic3RhcnRfYW55X3ZhcmlhbnQkMSIsInJlYWRfZW9mJDEiLCJyZWFkX251bGwkMSIsInJlYWRfbnVsbF9pZl9wb3NzaWJsZSQxIiwicmVhZF9ib29sJDEiLCJyZWFkX2ludCQxIiwic3RhcnQkMCIsInN0b3AkMCIsIm4kMCIsImkkMCIsInJlYWRfaW50MzIkMSIsInJlYWRfaW50NjQkMSIsInJlYWRfbnVtYmVyJDEiLCJyZWFkX3N0cmluZyQxIiwibWFwX2lkZW50JDEiLCJyZWFkX3NlcXVlbmNlJDEiLCJyZWFkX2xpc3RfcmV2JDEiLCJyZWFkX3R1cGxlJDEiLCJyZWFkX3R1cGxlX2VuZDIkMSIsInJlYWRfdHVwbGVfc2VwMiQxIiwicmVhZF9hYnN0cmFjdF9maWVsZHMkMSIsInJlYWRfbGN1cmwkMSIsInN0YXJ0X2FueV90dXBsZSQxIiwicmVhZF9scGFyJDEiLCJyZWFkX3JwYXIkMSIsInJlYWRfbGJyJDEiLCJyZWFkX3JiciQxIiwiZmluaXNoX3NraXBfdmFyaWFudCQxIiwic2tpcF9qc29uJDEiLCJmaW5pc2hfc2tpcF9zdHJpbmdsaXQkMSIsInNraXBfaWRlbnQkMSIsImZpbmlzaF9idWZmZXJfc3RyaW5nbGl0JDEiLCJidWZmZXJfanNvbiQxIiwiYnVmZmVyX3NwYWNlJDEiLCJidWZmZXJfaWRlbnQkMSIsImJ1ZmZlcl9jb2xvbiQxIiwiZmluaXNoX2J1ZmZlcl9jb21tZW50JDEiLCJqdW5rJDEiLCJyZWFkX2ludDgkMSIsInJlYWRfbGlzdCQxIiwicmVhZF9hcnJheSQxIiwicmVhZF9maWVsZHMkMSIsImZyb21fbGV4YnVmJDEiLCJmcm9tX3N0cmluZyQ0IiwiZnJvbV9jaGFubmVsJDQiLCJmcm9tX2ZpbGUkMSIsInNlcV9mcm9tX2xleGJ1ZiQxIiwic2VxX2Zyb21fc3RyaW5nJDEiLCJzZXFfZnJvbV9jaGFubmVsJDEiLCJzZXFfZnJvbV9maWxlJDEiLCJsaW5lc2VxX2Zyb21fY2hhbm5lbCQxIiwibGluZXNlcV9mcm9tX2ZpbGUkMSIsInByZXR0aWZ5JDEiLCJjb21wYWN0JDEiLCJ5b2pzb25fb2ZfdW5pdCIsInlvanNvbl9vZl9ib29sIiwiYiIsInlvanNvbl9vZl9zdHJpbmciLCJzdHIiLCJ5b2pzb25fb2ZfYnl0ZXMiLCJieXRlcyIsInlvanNvbl9vZl9jaGFyIiwiYyIsInlvanNvbl9vZl9pbnQiLCJuIiwieW9qc29uX29mX2Zsb2F0IiwieW9qc29uX29mX2ludDMyIiwieW9qc29uX29mX2ludDY0IiwieW9qc29uX29mX25hdGl2ZWludCIsInlvanNvbl9vZl9yZWYiLCJ5b2pzb25fb2ZfYSIsInJmIiwieW9qc29uX29mX2xhenlfdCIsImx2IiwieW9qc29uX29mX29wdGlvbiIsIngiLCJ5b2pzb25fb2ZfcGFpciIsInlvanNvbl9vZl9iIiwiYSIsInlvanNvbl9vZl90cmlwbGUiLCJ5b2pzb25fb2ZfYyIsInlvanNvbl9vZl9saXN0IiwibHN0IiwieW9qc29uX29mX2FycmF5IiwiYXIiLCJsc3RfcmVmIiwiaSIsInlvanNvbl9vZl9oYXNodGJsIiwieW9qc29uX29mX2tleSIsInlvanNvbl9vZl92YWwiLCJodGJsIiwiY29sbCIsImsiLCJ2IiwiYWNjIiwieW9qc29uX29mX29wYXF1ZSIsInlvanNvbl9vZl9mdW4iLCJyZWNvcmRfY2hlY2tfZXh0cmFfZmllbGRzIiwib2ZfeW9qc29uX2Vycm9yX2V4biIsImV4YyIsInlvanNvbiIsIm9mX3lvanNvbl9lcnJvciIsIndoYXQiLCJ1bml0X29mX3lvanNvbiIsImJvb2xfb2ZfeW9qc29uIiwic3RyaW5nX29mX3lvanNvbiIsImJ5dGVzX29mX3lvanNvbiIsImNoYXJfb2ZfeW9qc29uIiwiaW50X29mX3lvanNvbiIsImZsb2F0X29mX3lvanNvbiIsImludDMyX29mX3lvanNvbiIsImludDY0X29mX3lvanNvbiIsIm5hdGl2ZWludF9vZl95b2pzb24iLCJyZWZfb2ZfeW9qc29uIiwiYV9vZl95b2pzb24iLCJsYXp5X3Rfb2ZfeW9qc29uIiwib3B0aW9uX29mX3lvanNvbiIsInBhaXJfb2ZfeW9qc29uIiwiYl9vZl95b2pzb24iLCJiX3lvanNvbiIsImFfeW9qc29uIiwidHJpcGxlX29mX3lvanNvbiIsImNfb2ZfeW9qc29uIiwiY195b2pzb24iLCJsaXN0X29mX3lvanNvbiIsInJldl9sc3QiLCJhcnJheV9vZl95b2pzb24iLCJ0IiwiaCIsImxlbiIsInJlcyIsInQkMCIsImgkMCIsImhhc2h0Ymxfb2ZfeW9qc29uIiwia2V5X29mX3lvanNvbiIsInZhbF9vZl95b2pzb24iLCJhY3QiLCJ2X3lvanNvbiIsImtfeW9qc29uIiwib3BhcXVlX29mX3lvanNvbiIsImZ1bl9vZl95b2pzb24iLCJzcHJpbnRmIiwidHVwbGVfb2Zfc2l6ZV9uX2V4cGVjdGVkIiwibG9jIiwic3RhZ19ub19hcmdzIiwic3RhZ19pbmNvcnJlY3Rfbl9hcmdzIiwidGFnIiwibXNnIiwic3RhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9zdW0iLCJlbXB0eV9saXN0X2ludmFsaWRfc3VtIiwidW5leHBlY3RlZF9zdGFnIiwicmVjb3JkX3N1cGVyZmx1b3VzX2ZpZWxkcyIsInJldl9mbGRfbmFtZXMiLCJmbGRfbmFtZXNfc3RyIiwicmVjb3JkX2R1cGxpY2F0ZV9maWVsZHMiLCJyZWNvcmRfZXh0cmFfZmllbGRzIiwicmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCIsImZpZWxkcyQwIiwicmVzdCIsImZpZWxkIiwicmVzdCQwIiwicmVjb3JkX3VuZGVmaW5lZF9lbGVtZW50cyIsInVuZGVmaW5lZCQwIiwicmVjb3JkX2xpc3RfaW5zdGVhZF9hdG9tIiwicmVjb3JkX3BvbHlfZmllbGRfdmFsdWUiLCJub192YXJpYW50X21hdGNoIiwibm9fbWF0Y2hpbmdfdmFyaWFudF9mb3VuZCIsInB0YWdfbm9fYXJncyIsInB0YWdfaW5jb3JyZWN0X25fYXJncyIsImNuc3RyIiwicHRhZ190YWtlc19hcmdzIiwibmVzdGVkX2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X2xpc3RfaW52YWxpZF9wb2x5X3ZhciIsImVtcHR5X3R5cGUiLCJzeW1ib2wiLCJ5b2pzb25fb2Zfc291cmNlX3Bvc2l0aW9uIiwidl9sYXdfaGVhZGluZ3MiLCJ2X2VuZF9jb2x1bW4iLCJ2X2VuZF9saW5lIiwidl9zdGFydF9jb2x1bW4iLCJ2X3N0YXJ0X2xpbmUiLCJ2X2ZpbGVuYW1lIiwiYXJnIiwiYm5kcyIsImFyZyQwIiwiYm5kcyQwIiwiYXJnJDEiLCJibmRzJDEiLCJhcmckMiIsImJuZHMkMiIsImFyZyQzIiwiYm5kcyQzIiwiYXJnJDQiLCJibmRzJDQiLCJtb25leV9vZl9jZW50c19zdHJpbmciLCJjZW50cyIsIm1vbmV5X29mX3VuaXRzX2ludCIsInVuaXRzIiwibW9uZXlfb2ZfY2VudHNfaW50ZWdlciIsIm1vbmV5X3RvX2Zsb2F0IiwibSIsIm1vbmV5X29mX2RlY2ltYWwiLCJkIiwibW9uZXlfdG9fc3RyaW5nIiwibW9uZXlfdG9fY2VudHMiLCJtb25leV9yb3VuZCIsImRlY2ltYWxfb2Zfc3RyaW5nIiwiZGVjaW1hbF90b19mbG9hdCIsImRlY2ltYWxfb2ZfZmxvYXQiLCJkZWNpbWFsX29mX2ludGVnZXIiLCJkZWNpbWFsX3RvX3N0cmluZyIsIm1heF9wcmVjX2RpZ2l0cyIsImkiLCJzaWduIiwibiIsImludF9wYXJ0IiwibiQwIiwiZGlnaXRzIiwibGVhZGluZ196ZXJvZXMiLCJkaWdpdCIsIm51bV9sZWFkaW5nX3plcm9lcyIsImkkMCIsImZtdCIsImRlY2ltYWxfcm91bmQiLCJxIiwiZGVjaW1hbF9vZl9tb25leSIsImludGVnZXJfb2Zfc3RyaW5nIiwicyIsImludGVnZXJfdG9fc3RyaW5nIiwiaW50ZWdlcl90b19pbnQiLCJpbnRlZ2VyX29mX2ludCIsImludGVnZXJfZXhwb25lbnRpYXRpb24iLCJlIiwiaW50ZWdlcl9sb2cyIiwieWVhcl9vZl9kYXRlIiwieSIsIm1vbnRoX251bWJlcl9vZl9kYXRlIiwiaXNfbGVhcF95ZWFyIiwieSQwIiwiZGF5X29mX21vbnRoX29mX2RhdGUiLCJkJDAiLCJkYXRlX29mX251bWJlcnMiLCJ5ZWFyIiwibW9udGgiLCJkYXkiLCJkYXRlX3RvX3N0cmluZyIsImZpcnN0X2RheV9vZl9tb250aCIsImxhc3RfZGF5X29mX21vbnRoIiwiZHVyYXRpb25fb2ZfbnVtYmVycyIsImR1cmF0aW9uX3RvX3N0cmluZyIsImR1cmF0aW9uX3RvX3llYXJzX21vbnRoc19kYXlzIiwieW9qc29uX29mX3J1bnRpbWVfdmFsdWUiLCJ2MCQ0IiwidjAkNSIsInYwJDYiLCJ2MCIsInYwJDciLCJ2MCQwIiwidjAkOCIsInYwJDEiLCJ2MCQ5IiwidjAkMiIsInYwJDEwIiwidjAkMyIsInYxIiwidjAkMTEiLCJ2MCQxMiIsInYxJDAiLCJ2MCQxMyIsInYwJDE0IiwidjEkMSIsInYxJDIiLCJ2MSQzIiwidjAkMTUiLCJ2MCQxNiIsInYxJDQiLCJ2MCQxNyIsInYwJDE4IiwidW5lbWJlZGRhYmxlIiwiZW1iZWRfdW5pdCIsImVtYmVkX2Jvb2wiLCJ4IiwiZW1iZWRfbW9uZXkiLCJlbWJlZF9pbnRlZ2VyIiwiZW1iZWRfZGVjaW1hbCIsImVtYmVkX2RhdGUiLCJlbWJlZF9kdXJhdGlvbiIsImVtYmVkX2FycmF5IiwiZiIsInlvanNvbl9vZl9pbmZvcm1hdGlvbiIsInYiLCJ5b2pzb25fb2ZfZXZlbnQiLCJ5b2pzb25fb2ZfdmFyX2RlZiIsInlvanNvbl9vZl9mdW5fY2FsbCIsInZfYm9keSIsInZfaW5wdXRzIiwidl9uYW1lIiwidl9mdW5fY2FsbHMiLCJ2X3ZhbHVlIiwidl9wb3MiLCJ2X291dHB1dCIsInZfZnVuX2lucHV0cyIsInZfZnVuX25hbWUiLCJsb2dfcmVmIiwicmVzZXRfbG9nIiwicmV0cmlldmVfbG9nIiwibG9nX2JlZ2luX2NhbGwiLCJpbmZvIiwibG9nX2VuZF9jYWxsIiwibG9nX3ZhcmlhYmxlX2RlZmluaXRpb24iLCJlbWJlZCIsImxvZ19kZWNpc2lvbl90YWtlbiIsInBvcyIsInBwX2V2ZW50cyIsIm9wdCIsInBwZiIsImV2ZW50cyIsInN0aCIsImlzX2ZpcnN0X2NhbGwiLCJmb3JtYXRfdmFyX2RlZiIsInZhciQwIiwiZm9ybWF0X3Bvc19vcHQiLCJmb3JtYXRfdmFsdWUiLCJmb3JtYXRfdmFyX2RlZnMiLCJmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyIsInZhcl93aXRoX2Z1biIsImZ1bl9jYWxscyIsImZ1bl9jYWxsIiwiZm9ybWF0X2V2ZW50IiwieCQwIiwieCQxIiwieCQyIiwieCQzIiwieCQ0IiwibmFtZSIsImF0dHJzIiwibmFtZSQwIiwidmFsdWUiLCJlbHRzIiwidmFyX2RlZl93aXRoX2Z1biIsIm91dHB1dCIsImJvZHkiLCJmdW5faW5wdXRzIiwiZnVuX25hbWUiLCJib2R5JDAiLCJpbnB1dHMiLCJlbXB0eSIsImVtcHR5X2N0eCIsInJhd19ldmVudF90b19zdHJpbmciLCJuYW1lJDEiLCJ0YWtlX3doaWxlIiwicCIsImwiLCJ0IiwiaCIsInJlc3QiLCJ0JDAiLCJwYXJzZV9yYXdfZXZlbnRzIiwicmF3X2V2ZW50cyIsIm5iX3Jhd19ldmVudHMiLCJpc19mdW5jdGlvbl9jYWxsIiwiaW5mb3MiLCJpc192YXJfZGVmIiwicGFyc2VfZXZlbnRzIiwiY3R4IiwiY3R4JDAiLCJldmVudCIsInZhcl9uYW1lIiwiYm9keV9jdHgiLCJtYXAiLCJscyQwIiwiY3R4JDEiLCJyZXN0JDAiLCJyZXN0JDEiLCJjdHgkMiIsImluZm9zJDAiLCJwYXJzZV9mdW5fY2FsbCIsInJlc3QkMiIsImN0eCQzIiwicmVzdCQzIiwidmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSIsInZhcl9uYW1lJDAiLCJtYXAkMCIsImxzIiwiY3R4JDQiLCJpbmZvcyQxIiwicmF3X2V2ZW50cyQxIiwiaW5mb3MkMiIsImZ1bl9jYWxsJDAiLCJyYXdfZXZlbnRzJDAiLCJmdW5fY2FsbHMkMCIsImZ1bl9jYWxscyQxIiwiZXZlbnQkMCIsInJlc3QkNSIsInZhbHVlJDAiLCJ2YXJfY29tcCIsInJlc3QkNCIsInZhcl9jb21wJDAiLCJyZXN0JDYiLCJjdHgkNiIsImN0eCQ1IiwiYm9keV9yZXYiLCJ2YXJfZGVmIiwib3V0cHV0JDAiLCJtc2ciLCJoYW5kbGVfZGVmYXVsdCIsImV4Y2VwdGlvbnMiLCJqdXN0IiwiY29ucyIsImFjYyIsImV4Y2VwdCIsIm5ld192YWwiLCJoYW5kbGVfZGVmYXVsdF9vcHQiLCJiIiwibm9faW5wdXQiLCJjb21wYXJlX3BlcmlvZHMiLCJwMSIsInAyIiwicDFfZGF5cyIsInAyX2RheXMiLCJvX25vdCIsIm9fbGVuZ3RoIiwiYSIsIm9fbWludXNfaW50IiwiaTEiLCJvX21pbnVzX3JhdCIsIm9fbWludXNfbW9uIiwibTEiLCJvX21pbnVzX2R1ciIsIm9fYW5kIiwib19vciIsIm9feG9yIiwib19lcSIsIm9fbWFwIiwib19yZWR1Y2UiLCJkZnQiLCJsZW4iLCJyIiwib19jb25jYXQiLCJvX2ZpbHRlciIsIm9fYWRkX2ludF9pbnQiLCJpMiIsIm9fYWRkX3JhdF9yYXQiLCJvX2FkZF9tb25fbW9uIiwibTIiLCJvX2FkZF9kYXRfZHVyIiwiZGEiLCJkdSIsIm9fYWRkX2R1cl9kdXIiLCJvX3N1Yl9pbnRfaW50Iiwib19zdWJfcmF0X3JhdCIsIm9fc3ViX21vbl9tb24iLCJvX3N1Yl9kYXRfZGF0Iiwib19zdWJfZGF0X2R1ciIsImRhdCIsImR1ciIsIm9fc3ViX2R1cl9kdXIiLCJvX211bHRfaW50X2ludCIsIm9fbXVsdF9yYXRfcmF0Iiwib19tdWx0X21vbl9yYXQiLCJpMV9hYnMiLCJpMl9hYnMiLCJzaWduX2ludCIsInJhdF9yZXN1bHQiLCJyZW1haW5kZXIiLCJyZXMiLCJvX211bHRfZHVyX2ludCIsIm9fZGl2X2ludF9pbnQiLCJvX2Rpdl9yYXRfcmF0Iiwib19kaXZfbW9uX21vbiIsIm9fZGl2X21vbl9yYXQiLCJyMSIsIm9fZGl2X2R1cl9kdXIiLCJkMSIsImQyIiwib19sdF9pbnRfaW50Iiwib19sdF9yYXRfcmF0Iiwib19sdF9tb25fbW9uIiwib19sdF9kdXJfZHVyIiwib19sdF9kYXRfZGF0Iiwib19sdGVfaW50X2ludCIsIm9fbHRlX3JhdF9yYXQiLCJvX2x0ZV9tb25fbW9uIiwib19sdGVfZHVyX2R1ciIsIm9fbHRlX2RhdF9kYXQiLCJvX2d0X2ludF9pbnQiLCJvX2d0X3JhdF9yYXQiLCJvX2d0X21vbl9tb24iLCJvX2d0X2R1cl9kdXIiLCJvX2d0X2RhdF9kYXQiLCJvX2d0ZV9pbnRfaW50Iiwib19ndGVfcmF0X3JhdCIsIm9fZ3RlX21vbl9tb24iLCJvX2d0ZV9kdXJfZHVyIiwib19ndGVfZGF0X2RhdCIsIm9fZXFfaW50X2ludCIsIm9fZXFfcmF0X3JhdCIsIm9fZXFfbW9uX21vbiIsIm9fZXFfZHVyX2R1ciIsIm9fZXFfZGF0X2RhdCIsIm9fZm9sZCIsIm9fbm90JDAiLCJvX2xlbmd0aCQwIiwib190b3JhdF9pbnQiLCJvX3RvcmF0X21vbiIsIm9fdG9tb25leV9yYXQiLCJvX2dldERheSIsIm9fZ2V0TW9udGgiLCJvX2dldFllYXIiLCJvX2ZpcnN0RGF5T2ZNb250aCIsIm9fbGFzdERheU9mTW9udGgiLCJvX3JvdW5kX21vbiIsIm9fcm91bmRfcmF0Iiwib19taW51c19pbnQkMCIsIm9fbWludXNfcmF0JDAiLCJvX21pbnVzX21vbiQwIiwib19taW51c19kdXIkMCIsIm9fYW5kJDAiLCJvX29yJDAiLCJvX3hvciQwIiwib19lcSQwIiwib19tYXAkMCIsIm9fcmVkdWNlJDAiLCJvX2NvbmNhdCQwIiwib19maWx0ZXIkMCIsIm9fYWRkX2ludF9pbnQkMCIsIm9fYWRkX3JhdF9yYXQkMCIsIm9fYWRkX21vbl9tb24kMCIsIm9fYWRkX2RhdF9kdXIkMCIsIm9fYWRkX2R1cl9kdXIkMCIsIm9fc3ViX2ludF9pbnQkMCIsIm9fc3ViX3JhdF9yYXQkMCIsIm9fc3ViX21vbl9tb24kMCIsIm9fc3ViX2RhdF9kYXQkMCIsIm9fc3ViX2RhdF9kdXIkMCIsIm9fc3ViX2R1cl9kdXIkMCIsIm9fbXVsdF9pbnRfaW50JDAiLCJvX211bHRfcmF0X3JhdCQwIiwib19tdWx0X21vbl9yYXQkMCIsIm9fbXVsdF9kdXJfaW50JDAiLCJvX2Rpdl9pbnRfaW50JDAiLCJvX2Rpdl9yYXRfcmF0JDAiLCJvX2Rpdl9tb25fbW9uJDAiLCJvX2Rpdl9tb25fcmF0JDAiLCJvX2Rpdl9kdXJfZHVyJDAiLCJvX2x0X2ludF9pbnQkMCIsIm9fbHRfcmF0X3JhdCQwIiwib19sdF9tb25fbW9uJDAiLCJvX2x0X2R1cl9kdXIkMCIsIm9fbHRfZGF0X2RhdCQwIiwib19sdGVfaW50X2ludCQwIiwib19sdGVfcmF0X3JhdCQwIiwib19sdGVfbW9uX21vbiQwIiwib19sdGVfZHVyX2R1ciQwIiwib19sdGVfZGF0X2RhdCQwIiwib19ndF9pbnRfaW50JDAiLCJvX2d0X3JhdF9yYXQkMCIsIm9fZ3RfbW9uX21vbiQwIiwib19ndF9kdXJfZHVyJDAiLCJvX2d0X2RhdF9kYXQkMCIsIm9fZ3RlX2ludF9pbnQkMCIsIm9fZ3RlX3JhdF9yYXQkMCIsIm9fZ3RlX21vbl9tb24kMCIsIm9fZ3RlX2R1cl9kdXIkMCIsIm9fZ3RlX2RhdF9kYXQkMCIsIm9fZXFfaW50X2ludCQwIiwib19lcV9yYXRfcmF0JDAiLCJvX2VxX21vbl9tb24kMCIsIm9fZXFfZHVyX2R1ciQwIiwib19lcV9kYXRfZGF0JDAiLCJvX2ZvbGQkMCIsInZlcnNpb24iLCJnaXRfdmVyc2lvbiIsInJhaXNlIiwibWF4IiwieCIsInkiLCJtaW4iLCJlcXVhbCIsImVxdWFsJDAiLCJtYXgkMCIsIm1pbiQwIiwiZ2xvYmFsIiwibnVsbCQwIiwidW5kZWZpbmVkJDAiLCJyZXR1cm4kMCIsIm1hcCIsImYiLCJiaW5kIiwidGVzdCIsIml0ZXIiLCJjYXNlJDAiLCJnIiwiZ2V0Iiwib3B0aW9uIiwieCQwIiwidG9fb3B0aW9uIiwicmV0dXJuJDEiLCJtYXAkMCIsImJpbmQkMCIsInRlc3QkMCIsIml0ZXIkMCIsImNhc2UkMSIsImdldCQwIiwib3B0aW9uJDAiLCJ0b19vcHRpb24kMCIsImNvZXJjZSIsImNvZXJjZV9vcHQiLCJ0cnVlJDAiLCJmYWxzZSQwIiwibmZjIiwibmZkIiwibmZrYyIsIm5ma2QiLCJzdHJpbmdfY29uc3RyIiwicmVnRXhwIiwib2JqZWN0X2NvbnN0cnVjdG9yIiwib2JqZWN0X2tleXMiLCJvIiwiYXJyYXlfY29uc3RydWN0b3IiLCJhcnJheV9nZXQiLCJhcnJheV9zZXQiLCJhcnJheV9tYXAiLCJhIiwiaWR4IiwiYXJyYXlfbWFwaSIsInN0cl9hcnJheSIsIm1hdGNoX3Jlc3VsdCIsImRhdGVfY29uc3RyIiwibWF0aCIsImVycm9yX2NvbnN0ciIsImV4bl93aXRoX2pzX2JhY2t0cmFjZSIsIm5hbWUiLCJtZXNzYWdlIiwic3RhY2siLCJ0b19zdHJpbmciLCJlIiwicmFpc2VfanNfZXJyb3IiLCJzdHJpbmdfb2ZfZXJyb3IiLCJKU09OIiwiZGVjb2RlVVJJIiwicyIsImRlY29kZVVSSUNvbXBvbmVudCIsImVuY29kZVVSSSIsImVuY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsInVuZXNjYXBlIiwiaXNOYU4iLCJpIiwicGFyc2VJbnQiLCJzJDAiLCJwYXJzZUZsb2F0IiwiZXhwb3J0X2pzIiwiZmllbGQiLCJleHBvcnQkMCIsImV4cG9ydF9hbGwiLCJvYmoiLCJrZXlzIiwia2V5IiwibGlzdF9vZl9ub2RlTGlzdCIsImxlbmd0aCIsImFjYyIsImkkMCIsImFjYyQwIiwiaSQxIiwiZGlzY29ubmVjdGVkIiwicHJlY2VkaW5nIiwiZm9sbG93aW5nIiwiY29udGFpbnMiLCJjb250YWluZWRfYnkiLCJpbXBsZW1lbnRhdGlvbl9zcGVjaWZpYyIsImhhcyIsInQiLCJtYXNrIiwiYWRkIiwiYXBwZW5kQ2hpbGQiLCJwIiwibiIsInJlbW92ZUNoaWxkIiwicmVwbGFjZUNoaWxkIiwiaW5zZXJ0QmVmb3JlIiwibm9kZVR5cGUiLCJ0MTMiLCJjYXN0IiwidDE0IiwiZWxlbWVudCIsInRleHQiLCJhdHRyIiwibm9faGFuZGxlciIsImhhbmRsZXIiLCJyZXMiLCJmdWxsX2hhbmRsZXIiLCJ0aGlzJDAiLCJpbnZva2VfaGFuZGxlciIsImV2ZW50IiwiZXZlbnRUYXJnZXQiLCJtYWtlIiwiYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zIiwidDI4IiwidHlwIiwiY2FwdHVyZSIsIm9uY2UiLCJwYXNzaXZlIiwiaCIsImV2IiwiY2FsbGJhY2siLCJiIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNhcHQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiaWQiLCJwcmV2ZW50RGVmYXVsdCIsImNyZWF0ZUN1c3RvbUV2ZW50IiwiYnViYmxlcyIsImNhbmNlbGFibGUiLCJkZXRhaWwiLCJvcHRfaXRlciIsImNvbnN0ciIsImFycmF5QnVmZmVyIiwiaW50OEFycmF5IiwidWludDhBcnJheSIsImludDE2QXJyYXkiLCJ1aW50MTZBcnJheSIsImludDMyQXJyYXkiLCJ1aW50MzJBcnJheSIsImZsb2F0MzJBcnJheSIsImZsb2F0NjRBcnJheSIsInNldCIsInYiLCJ1bnNhZmVfZ2V0IiwiZGF0YVZpZXciLCJvZl9hcnJheUJ1ZmZlciIsImFiIiwidWludDgiLCJibG9iX2NvbnN0ciIsImZpbHRlcl9tYXAiLCJxIiwidiQwIiwiYmxvYl9yYXciLCJjb250ZW50VHlwZSIsImVuZGluZ3MiLCJvcHRpb25zIiwib3B0aW9ucyQwIiwiYmxvYl9mcm9tX3N0cmluZyIsImJsb2JfZnJvbV9hbnkiLCJsIiwiYSQwIiwibCQwIiwiZmlsZW5hbWUiLCJuYW1lJDAiLCJkb2NfY29uc3RyIiwiZG9jdW1lbnQiLCJibG9iIiwic3RyaW5nIiwibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsImxvYWRlbmQiLCJmaWxlUmVhZGVyIiwib25JRSIsImNsaWNrIiwiY29weSIsImN1dCIsInBhc3RlIiwiZGJsY2xpY2siLCJtb3VzZWRvd24iLCJtb3VzZXVwIiwibW91c2VvdmVyIiwibW91c2Vtb3ZlIiwibW91c2VvdXQiLCJrZXlwcmVzcyIsImtleWRvd24iLCJrZXl1cCIsIm1vdXNld2hlZWwiLCJ3aGVlbCIsIkRPTU1vdXNlU2Nyb2xsIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwidG91Y2hjYW5jZWwiLCJkcmFnc3RhcnQiLCJkcmFnZW5kIiwiZHJhZ2VudGVyIiwiZHJhZ292ZXIiLCJkcmFnbGVhdmUiLCJkcmFnIiwiZHJvcCIsImhhc2hjaGFuZ2UiLCJjaGFuZ2UiLCJpbnB1dCIsInRpbWV1cGRhdGUiLCJzdWJtaXQiLCJzY3JvbGwiLCJmb2N1cyIsImJsdXIiLCJ1bmxvYWQiLCJiZWZvcmV1bmxvYWQiLCJyZXNpemUiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBvcHN0YXRlIiwic2VsZWN0Iiwib25saW5lIiwib2ZmbGluZSIsImNoZWNraW5nIiwibm91cGRhdGUiLCJkb3dubG9hZGluZyIsInVwZGF0ZXJlYWR5IiwiY2FjaGVkIiwib2Jzb2xldGUiLCJkb21Db250ZW50TG9hZGVkIiwiYW5pbWF0aW9uc3RhcnQiLCJhbmltYXRpb25lbmQiLCJhbmltYXRpb25pdGVyYXRpb24iLCJhbmltYXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0IiwidHJhbnNpdGlvbmVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJjYW5wbGF5IiwiY2FucGxheXRocm91Z2giLCJkdXJhdGlvbmNoYW5nZSIsImVtcHRpZWQiLCJlbmRlZCIsImdvdHBvaW50ZXJjYXB0dXJlIiwibG9hZGVkZGF0YSIsImxvYWRlZG1ldGFkYXRhIiwibG9zdHBvaW50ZXJjYXB0dXJlIiwicGF1c2UiLCJwbGF5IiwicGxheWluZyIsInBvaW50ZXJlbnRlciIsInBvaW50ZXJjYW5jZWwiLCJwb2ludGVyZG93biIsInBvaW50ZXJsZWF2ZSIsInBvaW50ZXJtb3ZlIiwicG9pbnRlcm91dCIsInBvaW50ZXJvdmVyIiwicG9pbnRlcnVwIiwicmF0ZWNoYW5nZSIsInNlZWtlZCIsInNlZWtpbmciLCJzdGFsbGVkIiwic3VzcGVuZCIsInZvbHVtZWNoYW5nZSIsIndhaXRpbmciLCJkIiwibG9jYXRpb25fb3JpZ2luIiwib3JpZ2luIiwid2luZG93IiwiZ2V0RWxlbWVudEJ5SWQiLCJwbm9kZSIsImdldEVsZW1lbnRCeUlkX2V4biIsImdldEVsZW1lbnRCeUlkX29wdCIsImdldEVsZW1lbnRCeUlkX2NvZXJjZSIsImNyZWF0ZUVsZW1lbnQiLCJkb2MiLCJ1bnNhZmVDcmVhdGVFbGVtZW50IiwiY3JlYXRlRWxlbWVudFN5bnRheCIsInVuc2FmZUNyZWF0ZUVsZW1lbnRFeCIsInR5cGUiLCJlbHQiLCJjcmVhdGVIdG1sIiwiY3JlYXRlSGVhZCIsImNyZWF0ZUxpbmsiLCJjcmVhdGVUaXRsZSIsImNyZWF0ZU1ldGEiLCJjcmVhdGVCYXNlIiwiY3JlYXRlU3R5bGUiLCJjcmVhdGVCb2R5IiwiY3JlYXRlRm9ybSIsImNyZWF0ZU9wdGdyb3VwIiwiY3JlYXRlT3B0aW9uIiwiY3JlYXRlU2VsZWN0IiwiY3JlYXRlSW5wdXQiLCJjcmVhdGVUZXh0YXJlYSIsImNyZWF0ZUJ1dHRvbiIsImNyZWF0ZUxhYmVsIiwiY3JlYXRlRmllbGRzZXQiLCJjcmVhdGVMZWdlbmQiLCJjcmVhdGVVbCIsImNyZWF0ZU9sIiwiY3JlYXRlRGwiLCJjcmVhdGVMaSIsImNyZWF0ZURpdiIsImNyZWF0ZUVtYmVkIiwiY3JlYXRlUCIsImNyZWF0ZUgxIiwiY3JlYXRlSDIiLCJjcmVhdGVIMyIsImNyZWF0ZUg0IiwiY3JlYXRlSDUiLCJjcmVhdGVINiIsImNyZWF0ZVEiLCJjcmVhdGVCbG9ja3F1b3RlIiwiY3JlYXRlUHJlIiwiY3JlYXRlQnIiLCJjcmVhdGVIciIsImNyZWF0ZUlucyIsImNyZWF0ZURlbCIsImNyZWF0ZUEiLCJjcmVhdGVJbWciLCJjcmVhdGVPYmplY3QiLCJjcmVhdGVQYXJhbSIsImNyZWF0ZU1hcCIsImNyZWF0ZUFyZWEiLCJjcmVhdGVTY3JpcHQiLCJjcmVhdGVUYWJsZSIsImNyZWF0ZUNhcHRpb24iLCJjcmVhdGVDb2wiLCJjcmVhdGVDb2xncm91cCIsImNyZWF0ZVRoZWFkIiwiY3JlYXRlVGZvb3QiLCJjcmVhdGVUYm9keSIsImNyZWF0ZVRyIiwiY3JlYXRlVGgiLCJjcmVhdGVUZCIsImNyZWF0ZVN1YiIsImNyZWF0ZVN1cCIsImNyZWF0ZVNwYW4iLCJjcmVhdGVUdCIsImNyZWF0ZUkiLCJjcmVhdGVCIiwiY3JlYXRlQmlnIiwiY3JlYXRlU21hbGwiLCJjcmVhdGVFbSIsImNyZWF0ZVN0cm9uZyIsImNyZWF0ZUNpdGUiLCJjcmVhdGVEZm4iLCJjcmVhdGVDb2RlIiwiY3JlYXRlU2FtcCIsImNyZWF0ZUtiZCIsImNyZWF0ZVZhciIsImNyZWF0ZUFiYnIiLCJjcmVhdGVEZCIsImNyZWF0ZUR0IiwiY3JlYXRlTm9zY3JpcHQiLCJjcmVhdGVBZGRyZXNzIiwiY3JlYXRlRnJhbWVzZXQiLCJjcmVhdGVGcmFtZSIsImNyZWF0ZUlmcmFtZSIsImNyZWF0ZUF1ZGlvIiwiY3JlYXRlVmlkZW8iLCJjcmVhdGVDYW52YXMiLCJodG1sX2VsZW1lbnQiLCJ0NTQiLCJ1bnNhZmVDb2VyY2UiLCJ0YWciLCJ0NTUiLCJhcmVhIiwiYmFzZSIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0aW9uIiwiY29sIiwiY29sZ3JvdXAiLCJkZWwiLCJkaXYiLCJkbCIsImZpZWxkc2V0IiwiZW1iZWQiLCJmb3JtIiwiZnJhbWVzZXQiLCJmcmFtZSIsImgxIiwiaDIiLCJoMyIsImg0IiwiaDUiLCJoNiIsImhlYWQiLCJociIsImh0bWwiLCJpZnJhbWUiLCJpbWciLCJpbnB1dCQwIiwiaW5zIiwibGFiZWwiLCJsZWdlbmQiLCJsaSIsImxpbmsiLCJtZXRhIiwib2JqZWN0Iiwib2wiLCJvcHRncm91cCIsInBhcmFtIiwicHJlIiwic2NyaXB0Iiwic2VsZWN0JDAiLCJzdHlsZSIsInRhYmxlIiwidGJvZHkiLCJ0ZCIsInRleHRhcmVhIiwidGZvb3QiLCJ0aCIsInRoZWFkIiwidGl0bGUiLCJ0ciIsInVsIiwiYXVkaW8iLCJ2aWRlbyIsInVuc2FmZUNvZXJjZUV2ZW50IiwibW91c2VFdmVudCIsImtleWJvYXJkRXZlbnQiLCJ3aGVlbEV2ZW50IiwibW91c2VTY3JvbGxFdmVudCIsInBvcFN0YXRlRXZlbnQiLCJtZXNzYWdlRXZlbnQiLCJldmVudFJlbGF0ZWRUYXJnZXQiLCJldmVudEFic29sdXRlUG9zaXRpb24iLCJldmVudEFic29sdXRlUG9zaXRpb24kMCIsImVsZW1lbnRDbGllbnRQb3NpdGlvbiIsImdldERvY3VtZW50U2Nyb2xsIiwiYnV0dG9uUHJlc3NlZCIsImFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aCIsImR4IiwiZHkiLCJhZGRNb3VzZXdoZWVsRXZlbnRMaXN0ZW5lciIsInRyeV9jb2RlIiwidHJ5X2tleV9jb2RlX2xlZnQiLCJ0cnlfa2V5X2NvZGVfcmlnaHQiLCJ0cnlfa2V5X2NvZGVfbnVtcGFkIiwidHJ5X2tleV9jb2RlX25vcm1hbCIsIm1ha2VfdW5pZGVudGlmaWVkIiwicnVuX25leHQiLCJ2YWx1ZSIsInN5bWJvbCIsIm9mX2V2ZW50IiwiY2hhcl9vZl9pbnQiLCJlbXB0eV9zdHJpbmciLCJub25lIiwib2ZfZXZlbnQkMCIsImVsZW1lbnQkMCIsInRhZ2dlZCIsInQxMDUiLCJvcHRfdGFnZ2VkIiwidGFnZ2VkRXZlbnQiLCJvcHRfdGFnZ2VkRXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJjIiwicmVxIiwibm93IiwibGFzdCIsImR0IiwiZHQkMCIsImhhc1B1c2hTdGF0ZSIsImhhc1BsYWNlaG9sZGVyIiwiaGFzUmVxdWlyZWQiLCJvdmVyZmxvd19saW1pdCIsInNldFRpbWVvdXQiLCJsb29wIiwicmVtYWluIiwic3RlcCIsImNiIiwiY2xlYXJUaW1lb3V0IiwianNfYXJyYXlfb2ZfY29sbGVjdGlvbiIsImZvcm1EYXRhIiwiZm9ybURhdGFfZm9ybSIsImhhdmVfY29udGVudCIsImZvcm1fZWxlbWVudHMiLCJpJDIiLCJzdGgiLCJuYW1lJDEiLCJsaXN0IiwiZmlsZSIsImFwcGVuZCIsImZvcm1fY29udGVudHMiLCJmb3JtX2VsdCIsImVtcHR5X2Zvcm1fY29udGVudHMiLCJwb3N0X2Zvcm1fY29udGVudHMiLCJjb250ZW50cyIsImdldF9mb3JtX2NvbnRlbnRzIiwicmVhZHlzdGF0ZWNoYW5nZSIsInRpbWVvdXQiLCJ3b3JrZXIiLCJjcmVhdGUiLCJpbXBvcnRfc2NyaXB0cyIsInNjcmlwdHMiLCJzZXRfb25tZXNzYWdlIiwianNfaGFuZGxlciIsInBvc3RfbWVzc2FnZSIsIm1zZyIsIndlYlNvY2tldCIsImlzX3N1cHBvcnRlZCIsImRlZmF1bHRDb250ZXh0QXR0cmlidXRlcyIsIndlYmdsY29udGV4dGxvc3QiLCJ3ZWJnbGNvbnRleHRyZXN0b3JlZCIsIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3IiLCJnZXRDb250ZXh0IiwiY3R4IiwiZ2V0Q29udGV4dFdpdGhBdHRyaWJ1dGVzIiwiYXR0cmlicyIsInJlZ2V4cCIsInJlZ2V4cF9jYXNlX2ZvbGQiLCJyZWdleHBfd2l0aF9mbGFnIiwiYmx1bnRfc3RyX2FycmF5X2dldCIsInN0cmluZ19tYXRjaCIsInNlYXJjaCIsInJlc19wcmUiLCJtYXRjaGVkX3N0cmluZyIsInIiLCJtYXRjaGVkX2dyb3VwIiwicXVvdGVfcmVwbF9yZSIsInF1b3RlX3JlcGwiLCJnbG9iYWxfcmVwbGFjZSIsInNfYnkiLCJyZXBsYWNlX2ZpcnN0IiwidDI5IiwiZmxhZ3MiLCJsaXN0X29mX2pzX2FycmF5IiwiaWR4JDEiLCJhY2N1IiwiaWR4JDAiLCJhY2N1JDAiLCJzcGxpdCIsImJvdW5kZWRfc3BsaXQiLCJxdW90ZV9yZSIsInF1b3RlIiwicmVnZXhwX3N0cmluZyIsInJlZ2V4cF9zdHJpbmdfY2FzZV9mb2xkIiwiaW50ZXJydXB0IiwicGx1c19yZSIsInVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIiwidXJsZGVjb2RlIiwidXJsZW5jb2RlIiwib3B0Iiwid2l0aF9wbHVzIiwiZGVmYXVsdF9odHRwX3BvcnQiLCJkZWZhdWx0X2h0dHBzX3BvcnQiLCJwYXRoX29mX3BhdGhfc3RyaW5nIiwiYXV4IiwiaiIsIndvcmQiLCJlbmNvZGVfYXJndW1lbnRzIiwiZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmciLCJsZW4iLCJpbmRleCIsImRlY29kZV9hcmd1bWVudHMiLCJ1cmxfcmUiLCJmaWxlX3JlIiwidXJsX29mX2pzX3N0cmluZyIsImhhbmRsZSIsInByb3Rfc3RyaW5nIiwic3NsIiwicGF0aF9zdHIiLCJ1cmwiLCJ1cmxfb2Zfc3RyaW5nIiwic3RyaW5nX29mX3VybCIsImZyYWciLCJhcmdzIiwicGF0aCIsInBvcnQiLCJob3N0IiwiZnJhZyQwIiwiYXJncyQwIiwicGF0aCQwIiwicG9ydCQwIiwiaG9zdCQwIiwiZnJhZyQxIiwiYXJncyQxIiwicGF0aCQxIiwicHJvdG9jb2wiLCJwYXRoX3N0cmluZyIsImFyZ3VtZW50cyQwIiwiZ2V0X2ZyYWdtZW50IiwicmVzJDAiLCJzZXRfZnJhZ21lbnQiLCJ1IiwiYXNfc3RyaW5nIiwidXBkYXRlX2ZpbGUiLCJjb250ZW50Iiwib2MiLCJzZXRfY2hhbm5lbF9mbHVzaGVyIiwib3V0X2NoYW5uZWwiLCJmJDAiLCJzZXRfY2hhbm5lbF9maWxsZXIiLCJpbl9jaGFubmVsIiwibW91bnQiLCJwcmVmaXgiLCJ1bm1vdW50IiwianNfb2Zfb2NhbWxfdmVyc2lvbiIsImVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zIiwicmVzaXplT2JzZXJ2ZXIiLCJvYnNlcnZlIiwibm9kZSIsImJveCIsIm9icyIsInBlcmZvcm1hbmNlT2JzZXJ2ZXIiLCJlbnRyeV90eXBlcyIsImVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQiLCJtdXRhdGlvbk9ic2VydmVyIiwiY2hpbGRfbGlzdCIsImF0dHJpYnV0ZXMiLCJjaGFyYWN0ZXJfZGF0YSIsInN1YnRyZWUiLCJhdHRyaWJ1dGVfb2xkX3ZhbHVlIiwiY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIiwiYXR0cmlidXRlX2ZpbHRlciIsImsiLCJyZW1vdmUiLCJmaW5kIiwianNvbiIsInJldml2ZXIiLCJpbnB1dF9yZXZpdmVyIiwidW5zYWZlX2lucHV0IiwibWxJbnQ2NF9jb25zdHIiLCJvdXRwdXRfcmV2aXZlciIsIm91dHB1dCIsInN0cmluZ19vZl9uYW1lIiwibmFtZV9vZl9zdHJpbmciLCJyZ2Jfb2ZfbmFtZSIsInJnYiIsImhzbCIsInN0cmluZ19vZl90IiwiYiQwIiwiZyQwIiwiciQwIiwiYiQxIiwiZyQxIiwiciQxIiwiYiQyIiwiZyQyIiwiciQyIiwiYSQxIiwiaCQwIiwiaGV4X29mX3JnYiIsImJsdWUiLCJncmVlbiIsInJlZCIsImluX3JhbmdlIiwianNfdF9vZl9qc19zdHJpbmciLCJyZ2JfcmUiLCJyZ2JfcGN0X3JlIiwicmdiYV9yZSIsInJnYmFfcGN0X3JlIiwiaHNsX3JlIiwiaHNsYV9yZSIsImpzIiwiY24iLCJtbCIsImZhaWwiLCJyZV9yZ2IiLCJyZV9yZ2JfcGN0IiwicmVfaHNsIiwiaV9vZl9zX28iLCJmX29mX3MiLCJhbHBoYSIsInJlZCQwIiwiZ3JlZW4kMCIsImJsdWUkMCIsImFscGhhJDAiLCJyZWQkMSIsImdyZWVuJDEiLCJibHVlJDEiLCJhbHBoYSQxIiwic3RyaW5nX29mX3QkMCIsImYkMSIsImYkMiIsImYkMyIsImYkNCIsImYkNSIsImYkNiIsImYkNyIsImYkOCIsImYkOSIsImYkMTAiLCJmJDExIiwiZiQxMiIsImpzJDAiLCJtbCQwIiwicmUiLCJzdHJpbmdfb2ZfdCQxIiwianMkMSIsIm1sJDEiLCJsaXN0ZW4iLCJ0YXJnZXQiLCJzdG9wX2xpc3RlbiIsInhtbG5zIiwiY3JlYXRlQWx0R2x5cGgiLCJjcmVhdGVBbHRHbHlwaERlZiIsImNyZWF0ZUFsdEdseXBoSXRlbSIsImNyZWF0ZUFuaW1hdGUiLCJjcmVhdGVBbmltYXRlQ29sb3IiLCJjcmVhdGVBbmltYXRlTW90aW9uIiwiY3JlYXRlQW5pbWF0ZVRyYW5zZm9ybSIsImNyZWF0ZUNpcmNsZSIsImNyZWF0ZUNsaXBQYXRoIiwiY3JlYXRlQ3Vyc29yIiwiY3JlYXRlRGVmcyIsImNyZWF0ZURlc2MiLCJjcmVhdGVFbGxpcHNlIiwiY3JlYXRlRmlsdGVyIiwiY3JlYXRlRm9udCIsImNyZWF0ZUZvbnRGYWNlIiwiY3JlYXRlRm9udEZhY2VGb3JtYXQiLCJjcmVhdGVGb250RmFjZU5hbWUiLCJjcmVhdGVGb250RmFjZVNyYyIsImNyZWF0ZUZvbnRGYWNlVXJpIiwiY3JlYXRlRm9yZWlnbk9iamVjdCIsImNyZWF0ZUciLCJjcmVhdGVHbHlwaCIsImNyZWF0ZUdseXBoUmVmIiwiY3JlYXRlaGtlcm4iLCJjcmVhdGVJbWFnZSIsImNyZWF0ZUxpbmVFbGVtZW50IiwiY3JlYXRlTGluZWFyRWxlbWVudCIsImNyZWF0ZU1hc2siLCJjcmVhdGVNZXRhRGF0YSIsImNyZWF0ZU1pc3NpbmdHbHlwaCIsImNyZWF0ZU1QYXRoIiwiY3JlYXRlUGF0aCIsImNyZWF0ZVBhdHRlcm4iLCJjcmVhdGVQb2x5Z29uIiwiY3JlYXRlUG9seWxpbmUiLCJjcmVhdGVSYWRpYWxncmFkaWVudCIsImNyZWF0ZVJlY3QiLCJjcmVhdGVTZXQiLCJjcmVhdGVTdG9wIiwiY3JlYXRlU3ZnIiwiY3JlYXRlU3dpdGNoIiwiY3JlYXRlU3ltYm9sIiwiY3JlYXRlVGV4dEVsZW1lbnQiLCJjcmVhdGVUZXh0cGF0aCIsImNyZWF0ZVRyZWYiLCJjcmVhdGVUc3BhbiIsImNyZWF0ZVVzZSIsImNyZWF0ZVZpZXciLCJjcmVhdGV2a2VybiIsInN2Z19lbGVtZW50IiwidDgiLCJhbHRHbHlwaCIsImFsdEdseXBoRGVmIiwiYWx0R2x5cGhJdGVtIiwiYW5pbWF0ZSIsImFuaW1hdGVDb2xvciIsImFuaW1hdGVNb3Rpb24iLCJhbmltYXRlVHJhbnNmb3JtIiwiY2lyY2xlIiwiY2xpcFBhdGgiLCJjdXJzb3IiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZm9udEZhY2UiLCJmb250RmFjZUZvcm1hdCIsImZvbnRGYWNlTmFtZSIsImZvbnRGYWNlU3JjIiwiZm9udEZhY2VVcmkiLCJmb3JlaWduT2JqZWN0IiwiZ2x5cGgiLCJnbHlwaFJlZiIsImhrZXJuIiwiaW1hZ2UiLCJsaW5lRWxlbWVudCIsImxpbmVhckVsZW1lbnQiLCJtZXRhRGF0YSIsIm1pc3NpbmdHbHlwaCIsIm1QYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdmciLCJzd2l0Y2gkMCIsInRleHRFbGVtZW50IiwidGV4dHBhdGgiLCJ0cmVmIiwidHNwYW4iLCJ1c2UiLCJ2aWV3Iiwidmtlcm4iLCJ3aXRoQ3JlZGVudGlhbHMiLCJldmVudFNvdXJjZSIsImV2ZW50U291cmNlX29wdGlvbnMiLCJjb25zb2xlIiwiZW1wdHlfcG9zaXRpb25fb3B0aW9ucyIsImdlb2xvY2F0aW9uIiwiZW1wdHlfaW50ZXJzZWN0aW9uX29ic2VydmVyX29wIiwiaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlIiwib2JqZWN0X29wdGlvbnMiLCJvcHRpb25zJDEiLCJvcHRpb25zJDIiLCJpbnRsIiwiY29sbGF0b3JfY29uc3RyIiwiZGF0ZVRpbWVGb3JtYXRfY29uc3RyIiwibnVtYmVyRm9ybWF0X2NvbnN0ciIsInBsdXJhbFJ1bGVzX2NvbnN0ciIsImR1cmF0aW9uX29mX2pzb28iLCJkdXJhdGlvbl90b19qc29vIiwiZCIsImRheXMiLCJtb250aHMiLCJ5ZWFycyIsImRhdGVfb2ZfanNvbyIsImQkMCIsImQkMSIsImRheSIsIm1vbnRoIiwieWVhciIsImRhdGVfdG9fanNvbyIsImV2dCIsInBvcyIsInYiLCJpbmZvIiwiZXZlbnQiLCJldmVudF9tYW5hZ2VyIiwiZXhlY3V0ZV9vcl90aHJvd19lcnJvciIsImYiLCJ0aHJvd19lcnJvciIsImRlc2NyIiwicG9zJDAiLCJwb3MkMSIsImVtYmVkX3ByaXNlX2VuX2NoYXJnZSIsIngiLCJ4JDAiLCJ4JDEiLCJ4JDIiLCJ4JDMiLCJ4JDQiLCJlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY28iLCJlbWJlZF9wcmlzZV9lbl9jb21wdGUiLCJlbWJlZF92ZXJzZW1lbnRfYWxsb2NhdGlvbnMiLCJlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWkiLCJ4JDUiLCJ4JDYiLCJ4JDciLCJlbWJlZF9jb2xsZWN0aXZpdGUiLCJ4JDgiLCJlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXYiLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmllIiwiZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmllIiwiZW1iZWRfc21pYyIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyIsImVtYmVkX2ludGVyZmFjZV9hbGxvY2F0aW9uc19mYSIsImVtYmVkX2VuZmFudF9lbnRyZWUiLCJlbWJlZF9lbmZhbnQiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2UiLCJlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwiZW1iZWRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pIiwiZW1iZWRfYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2JDAiLCJlbWJlZF9lbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbWJlZF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2kiLCJlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWUkMCIsImVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZSQwIiwiZW1iZWRfc21pY19pbiIsImVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpbyQwIiwiZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhJDAiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAiLCJhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMiLCJlbmZhbnRfbGVfcGx1c19hZ2UiLCJlbmZhbnRfbGVfcGx1c19hZ2VfaW4iLCJlbmZhbnRzIiwicG90ZW50aWVsX3BsdXNfYWdlXzEiLCJwb3RlbnRpZWxfcGx1c19hZ2VfMiIsImxlX3BsdXNfYWdlIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfIiwiZGF0ZV9uYWlzc2FuY2UiLCJkYXRlX2NvdXJhbnRlIiwiYW5uZWVzIiwiZXN0X2luZmVyaWV1cl9vdV9lZ2FsIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSIsInZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaSIsImVzdF9zdXBlcmlldXIiLCJzbWljIiwic21pY19pbiIsInJlc2lkZW5jZSIsImJydXRfaG9yYWlyZSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSIsIm1vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiIsImFnZV9sNTEyXzNfMiIsInNtaWNfZG90X2RhdGVfY291cmFudGUiLCJzbWljX2RvdF9yZXNpZGVuY2UiLCJyZXN1bHQiLCJzbWljX2RvdF9icnV0X2hvcmFpcmUiLCJyZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSIsInBsYWZvbmRfbDUxMl8zXzIiLCJlbmZhbnQiLCJjb25kaXRpb25zX2hvcnNfYWdlIiwiZHJvaXRfb3V2ZXJ0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0iLCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm0kMCIsInJlc3NvdXJjZXNfbWVuYWdlIiwiZW5mYW50c19hX2NoYXJnZSIsImF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZSIsInByaXNlX2VuX2NvbXB0ZSIsIm5vbWJyZV9lbmZhbnRzX2FsaW5lYV8yX2w1MjFfMyIsInZlcnNpb25fYXZyaWxfMjAwOF9kb3RfYWdlX21pbiIsImJtYWZfZG90X2RhdGVfY291cmFudGUiLCJyZXN1bHQkMCIsImJtYWZfZG90X21vbnRhbnQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXQiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmUiLCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXMiLCJyZXN1bHQkMSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RybyIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbiIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZyIsImVuZmFudF9sZV9wbHVzX2FnZV9kb3RfZW5mYW50cyIsInJlc3VsdCQyIiwiZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9sZV9wbHVzIiwiZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfIiwiZXN0X2VuZmFudF9sZV9wbHVzX2FnZSIsInBsYWZvbmRfaV9pX2Q1MjFfMyIsInBsYWZvbmRfaV9kNTIxXzMiLCJkcm9pdF9vdXZlcnRfY29tcGxlbWVudCIsImRyb2l0X291dmVydF9mb3JmYWl0YWlyZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyaWVtZSIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3Ryb2lzaWVtZSIsIm5vbWJyZV90b3RhbF9lbmZhbnRzIiwic3VtMSIsInN1bTIiLCJub21icmVfbW95ZW5fZW5mYW50cyIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZSIsImRyb2l0X291dmVydF9iYXNlIiwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb24iLCJhbGxvY2F0aW9uIiwiY29tcGxlbWVudF9kZWdyZXNzaWYiLCJtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX3Bhcl8iLCJtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWUkMCIsIm1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lXyIsInJhcHBvcnRfZW5mYW50c190b3RhbF9tb3llbiIsIm1vbnRhbnRfaW5pdGlhbF9tZXRyb3BvbGVfbWFqbyIsIm1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmUiLCJtb250YW50X2luaXRpYWxfYmFzZSIsIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX2JhIiwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX21hIiwibW9udGFudF92ZXJzZV9iYXNlIiwibW9udGFudF92ZXJzZV9tYWpvcmF0aW9uIiwibW9udGFudF9iYXNlX2NvbXBsZW1lbnRfcG91cl9iIiwibW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfJDAiLCJtb250YW50X3ZlcnNlIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsIiwiaV9kYXRlX2NvdXJhbnRlIiwiaV9lbmZhbnRzIiwiaV9yZXNzb3VyY2VzX21lbmFnZSIsImlfcmVzaWRlbmNlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlIiwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3BlJDAiLCJpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXIkMCIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyIsImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlcyQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0IiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZW5mIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfYXZhIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9uIiwiaV9tb250YW50X3ZlcnNlIiwicHJpc2VfZW5fY2hhcmdlX3RvX2pzb28iLCJhcmciLCJhcmckMCIsImFyZyQxIiwiYXJnJDIiLCJhcmckMyIsInByaXNlX2VuX2NoYXJnZV9vZl9qc29vIiwiY29ucyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyIsInNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXyQwIiwicHJpc2VfZW5fY29tcHRlX3RvX2pzb28iLCJwcmlzZV9lbl9jb21wdGVfb2ZfanNvbyIsInZlcnNlbWVudF9hbGxvY2F0aW9uc190b19qc29vIiwidmVyc2VtZW50X2FsbG9jYXRpb25zX29mX2pzb28iLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJhcmckNCIsImFyZyQ1IiwiYXJnJDYiLCJlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMkMCIsImNvbGxlY3Rpdml0ZV90b19qc29vIiwiYXJnJDciLCJjb2xsZWN0aXZpdGVfb2ZfanNvbyIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQwIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDAiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3QiLCJ2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX28iLCJzbWljX3RvX2pzb28iLCJzbWljX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMCIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQwIiwiZW5mYW50X2VudHJlZV90b19qc29vIiwiZW5mYW50X2VudHJlZSIsImVuZmFudF9lbnRyZWVfb2ZfanNvbyIsImVuZmFudF90b19qc29vIiwiZW5mYW50X29mX2pzb28iLCJlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvbyIsImVuZmFudF9sZV9wbHVzX2FnZV9vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vIiwiZnVuY3Rpb25faW5wdXQwIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qIiwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qIiwiYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwJDEiLCJhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDAkMiIsImVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIiwiZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb28iLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2oiLCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2oiLCJ2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV8kMSIsInZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291XyQyIiwidmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pJDAiLCJzbWljX2luX3RvX2pzb28iLCJzbWljX2luX29mX2pzb28iLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMSIsImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbSQyIiwiaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsJDEiLCJpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWwkMiIsImFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMCQzIiwidmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfJDMiLCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW0kMyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCQzIiwiZW1iZWRfdHlwZV9wcmV0IiwiZW1iZWRfdGl0dWxhaXJlX3ByZXQiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgiLCJlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjgiLCJlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQiLCJlbWJlZF9saW1pdGVfdHJhbmNoZSIsImVtYmVkX2xpbWl0ZV90cmFuY2hlX2RlY2ltYWwiLCJlbWJlZF9wcmVzdGF0aW9uX3JlY3VlIiwiZW1iZWRfcGFyZW50X291X2F1dHJlIiwiZW1iZWRfc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIiwiZW1iZWRfcGFyZW50ZSIsImVtYmVkX2RhdGVfZGVfbmFpc3NhbmNlX291X21vaSIsImVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uIiwiZW1iZWRfcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluIiwiZW1iZWRfdmVyc2VtZW50X2EiLCJlbWJlZF9kZXBlbnNlX2xvZ2VtZW50IiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSIsImVtYmVkX3R5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdCIsImVtYmVkX2FjY29yZF9maW5hbmNlbWVudF9yZXByZSIsImVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbCIsImVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGUiLCJlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyIiwiZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xvIiwiZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjIiwiZW1iZWRfcHJpc2VfZW5fY2hhcmdlX2VuZmFudCIsImVtYmVkX2NvbnZlbnRpb25fYmFpbGxldXJfc29jaSIsImVtYmVkX2NvbnZlbnRpb25fYV9uX2hfYSIsImVtYmVkX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24iLCJlbWJlZF9wYXRyaW1vaW5lIiwiZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMiLCJlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWwiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm4iLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0iLCJlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm4iLCJlbWJlZF9jb250cmlidXRpb25zX3NvY2lhbGVzX2EiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UiLCJlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXIiLCJlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW0iLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSIsImVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZSQxIiwiZW1iZWRfdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDIiLCJlbWJlZF9pbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW4iLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkMCIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQxIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDIiLCJlbWJlZF9vdXZlcnR1cmVfZHJvaXRzX3JldHJhaXQiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudCIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQwIiwiZW1iZWRfbmV1Zl9vdV9hbmNpZW4iLCJlbWJlZF90cmFuY2hlX3JldmVudSIsImVtYmVkX3RyYW5jaGVfcmV2ZW51X2RlY2ltYWwiLCJlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSIsImVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZSIsImVtYmVkX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbCIsImVtYmVkX3ByZXQiLCJlbWJlZF9sb2dlbWVudF9mb3llciIsImVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbCIsImVtYmVkX3R5cGVfYmFpbGxldXIiLCJlbWJlZF9sb3VlX291X3NvdXNfbG91ZV9hX2Rlc18iLCJlbWJlZF9uYXRpb25hbGl0ZSIsImVtYmVkX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZSIsImVtYmVkX3Byb3ByaWV0YWlyZSIsImVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zXyIsImVtYmVkX2RlbWFuZGV1ciIsImVtYmVkX2VuZmFudF9hX2NoYXJnZSIsImVtYmVkX2xvY2F0aW9uIiwiZW1iZWRfcGVyc29ubmVfYV9jaGFyZ2UiLCJlbWJlZF9jYXRlZ29yaWVfY2FsY3VsX2FfcF9sIiwiZW1iZWRfbW9kZV9vY2N1cGF0aW9uIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29uIiwiZW1iZWRfbG9nZW1lbnQiLCJlbWJlZF9tZW5hZ2UiLCJlbWJlZF9lbGlnaWJpbGl0ZV9haWRlc19wZXJzb24kMCIsImVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubiQwIiwiZW1iZWRfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sJDAiLCJlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW0kMCIsImVtYmVkX3Jlc3NvdXJjZXNfYWlkZXNfcGVyc29ubiQwIiwiZW1iZWRfY29udHJpYnV0aW9uc19zb2NpYWxlc19hJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkMyIsImVtYmVkX2NhbGN1bF9lcXVpdmFsZW5jZV9sb3llciQwIiwiZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtJDAiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNCIsImVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZSQwIiwiZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlJDUiLCJlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2UkNiIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQzIiwiZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lJDQiLCJlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWUkNSIsImVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZSQ2IiwiZW1iZWRfb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0JDAiLCJlbWJlZF9pbXBheWVfZGVwZW5zZV9sb2dlbWVudF8iLCJlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2UkMSIsImVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZSQyIiwiZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AiLCJleG9uZXJlX2NzZyIsInRhdXhfY3JkcyIsImFpZGVfZmluYWxlIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1Iiwibl9ub21icmVfcGFydHNfZDgzMl8yNSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNiIsInRyYW5jaGVzX3JldmVudXNfZDgzMl8yNiIsInRyYW5jaGUiLCJ0cmFuY2hlX2hhdXQiLCJ0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGkiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXMkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyIsIm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2UiLCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGwiLCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2Jhc2UiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXQiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8iLCJuX25vbWJyZV9wYXJ0c19kODMyXzExIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSIsIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4iLCJkYXRlX25haXNzYW5jZV9hc3N1cmUiLCJhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0IiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQiLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiIsIm1vZGVfb2NjdXBhdGlvbiIsImFpZGVfdmVyc2VlIiwibW9udGFudF9hcGwiLCJtb250YW50X2NoYXJnZXMiLCJkZXBlbnNlX2xvZ2VtZW50IiwibW9udGFudF9kZXR0ZSIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWUiLCJkZXBlbnNlX2xvZ2VtZW50X2JydXRlIiwidG90YWxfZWNoZWFuY2VzIiwibWVuc3VhbGl0ZSIsImxveWVyIiwidG90YWwiLCJtb250YW50X2xveWVyIiwiZGVwZW5zZV9sb2dlbWVudF9uZXR0ZSIsImVjaGVhbmNlX3ByZXRfbmV0dGUiLCJtZW5zdWFsaXRlX25ldHRlIiwiZWNoZWFuY2VfcHJldF9icnV0ZSIsIm1lbnN1YWxpdGVfYnJ1dGUiLCJsb3llcl9uZXQiLCJsb3llcl9icnV0Iiwic2V1aWxfaW1wYXllX2RlcGVuc2VfZGVfbG9nZW1lIiwibW9udGFudF9pbXBheWUiLCJhcnJvbmRpX2NlbnRhaW5lX3N1cGVyaWV1cmUiLCJ0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlIiwibG95ZXJfcHJpbmNpcGFsX2Jhc2UiLCJiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW4iLCJ6b25lIiwibG9nZW1lbnRfZXN0X2NoYW1icmUiLCJhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmUiLCJ0eXBlX2FpZGUiLCJjb2xvY2F0aW9uIiwicmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGUiLCJsb2dlbWVudF9tZXVibGVfZDg0Ml8yIiwiZnJhY3Rpb25fbDgzMl8zIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0IiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9uIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODIzXzE2IiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18xNiIsImxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbiIsInRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIiwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMCIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZSIsIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZiIsImxpbWl0ZSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kOCIsImFiYXR0ZW1lbnRfZm9yZmFpdGFpcmVfZDgyM18xNyIsImxveWVyX3JlZmVyZW5jZSIsInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIiwicGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2IiwicGxhZm9uZF9kZWdyZXNzaXZpdGVfZDgyM18xNiIsImxveWVyX2VsaWdpYmxlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnVlIiwicGFydGljaXBhdGlvbl9taW5pbWFsZSIsInJhcHBvcnRfbG95ZXJzIiwiYWlkZV9maW5hbGUkMCIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdCIsInRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZSIsImNyZHMiLCJhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGkiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWIiLCJ0YXV4X2xveWVyX2VsaWdpYmxlX3RhdXhfYXJyb24iLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZHVjdGkiLCJ0YXV4X3ByaXNlX2NvbXB0ZV9yZXNzb3VyY2VzIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50IiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzIiwicGFydGljaXBhdGlvbl9yZXNzb3VyY2VzJDAiLCJwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlIiwiYWlkZV9maW5hbGVfZm9ybXVsZSIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQwIiwidHlwZV9sb2dlbWVudF9mb3llciIsImRhdGVfY29udmVudGlvbm5lbWVudCIsInJlZGV2YW5jZSIsImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZSQwIiwiY29uZGl0aW9uXzJfZHVfODMyXzI1JDAiLCJtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0IiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0IiwicGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnIiwiY29lZmZpY2llbnRfcl9kODMyXzI1IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0IiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21iIiwibW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI3IiwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzIiwiZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUiLCJuX25vbWJyZV9wYXJ0c19kODMyXzI1JDAiLCJhbGxvY2F0aW9uX21lbnN1ZWxsZSIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yNyIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQwIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDEiLCJjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW0kMiIsImNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbSQzIiwiY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltJDQiLCJkZW5vbWluYXRldXIiLCJkZW5vbWluYXRldXIkMCIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGUiLCJhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW0iLCJlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQwIiwiYWlkZV9maW5hbGUkMSIsInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbSIsImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kOCQxIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEiLCJtZW5zdWFsaXRlX3ByaW5jaXBhbGUiLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnQiLCJkYXRlX3NpZ25hdHVyZV9wcmV0IiwibG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuIiwiZGF0ZV9lbnRyZWVfbG9nZW1lbnQiLCJjb3Byb3ByaWV0ZSIsInNpdHVhdGlvbl9yODIyXzExXzEzXzE3IiwidHlwZV9wcmV0IiwiYW5jaWVubmV0ZV9sb2dlbWVudCIsInRhdXhfZnJhbmNzX3ZlcnNfZXVyb3MiLCJ0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzEiLCJ0YXV4X3RyYW5jaGVfaW5mZXJpZXVyZV9kODMyXzEiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEiLCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMkMCIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudCIsImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MyQxIiwibW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMCIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMCIsImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDgzMiIsInJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfZDgzMl8xOCIsImRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMCIsInBsYWZvbmRfc2lnbmF0dXJlIiwicGxhZm9uZF9lbnRyZWUiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2IiLCJwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2MiLCJtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzEkMCIsIm1lbnN1YWxpdGVfbWluaW1hbGUiLCJtZW5zdWFsaXRlX2VsaWdpYmxlIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sIiwicmVzc291cmNlc19kZW1hbmRldXIiLCJyZXNzb3VyY2VzX2NvbmpvaW50IiwicGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVuIiwiZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11IiwiY29uam9pbnRfZXhlcmNlX2FjdGl2aXRlX3JlbXVuIiwicGVyc29ubmVzX2FfY2hhcmdlIiwic2l0dWF0aW9uX2ZhbWlsaWFsZSIsImNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbSIsImRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzIiwiZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0IiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvIiwicGVyc29ubmUiLCJyZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGEiLCJhYmF0dGVtZW50IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl83IiwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84IiwicmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlIiwiYWNjIiwiZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpIiwiYWdlX2w1MTJfM18yJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MiLCJsb3llcl9wcmluY2lwYWwiLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG95ZXJfcCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291ciIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpYyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfZGF0ZV9jbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlXyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfc2l0dWF0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfem9uZSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfbyIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHlwZV9haSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdCIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aSIsImNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbiQwIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9yZXNpZGVuIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpIiwiY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90cmFpdGVtIiwiaW5mb3MiLCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95IiwiY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMSIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQyIiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDMiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNCIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ1IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDYiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kNyIsImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90XyQ4IiwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfJDkiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTAiLCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF8kMTEiLCJtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV8iLCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTUiLCJtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1IiwiZXF1aXZhbGVuY2VfbG95ZXIiLCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UiLCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXMiLCJsb3llcl9taW5pbWFsIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kZXBlbnNlIiwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjIiwicmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2JhIiwiY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQiLCJvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc18iLCJjb2VmZmljaWVudF9kODQyXzEyIiwiY29lZmZpY2llbnRfZDg0Ml8xMSIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMSIsIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfNiIsIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82IiwiY29uZGl0aW9uX2Q4NDJfMTFfMyIsImRhdGVfY2FsY3VsIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyIiwic2V1aWxfbWluaW1hbF9yZXNzb3VyY2VzX21lbmFnIiwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyJDAiLCJyZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2UiLCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDIkMSIsInNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taSIsInBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzYiLCJkZXBlbnNlX25ldHRlX21pbmltYWxlJDAiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMiIsInJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaSIsImxvY2F0aW9uIiwibG9nZW1lbnRmb3llciIsInByb3ByaWV0YWlyZSIsImxvY2F0aW9uJDAiLCJwcm9wcmlldGFpcmUkMCIsImNhdGVnb3JpZV9jYWxjdWxfYXBsIiwicmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpIiwiYmFpbGxldXIiLCJwYXJhbTAiLCJ0cmFpdGVtZW50X2Zvcm11bGUiLCJ0cmFpdGVtZW50X2Zvcm11bGUkMCIsImxvZ2VtZW50X2ZveWVyIiwicmVzdWx0JDMiLCJyZXN1bHQkNCIsInRyYWl0ZW1lbnRfZm9ybXVsZSQxIiwic291c19jYWxjdWxfdHJhaXRlbWVudCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyIsIm1lbmFnZSIsImRlbWFuZGV1ciIsImNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcCIsImNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlIiwiZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jIiwicHJldCIsImRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfYyQwIiwic2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZSIsInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdCIsInNldWlsX2w4MjJfNV9wYXRyaW1vaW5lIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUiLCJub21icmVfcGVyc29ubmVzX2xvZ2VtZW50Iiwic2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhIiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl85IiwiY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84IiwiY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8iLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF8kMCIsInBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyIiwiY29uZGl0aW9ucyIsImNvbmRpdGlvbl9uYXRpb25hbGl0ZSIsInBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdSIsImNvbmRpdGlvbl9sb2dlbWVudF9sb2NhdGlvbl90aSIsInByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZSQwIiwidXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGUkMCIsInBhcnRzIiwicGFydHMkMCIsInBhcnRzJDEiLCJwYXJ0cyQyIiwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluIiwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2UkMCIsImFnZV9sMTYxXzE3XzJfc2VjdSIsInByZXN0YXRpb24iLCJjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGUiLCJhZ2VfbDM1MV84XzFfc2VjdSIsImVsaWdpYmlsaXRlX2xvZ2VtZW50IiwicGVyc29ubmVfYV9jaGFyZ2UiLCJwYXJlbnQiLCJjb25kaXRpb25fMl9yODIzXzQiLCJlbGlnaWJpbGl0ZSIsInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV9hX2NoYSIsInBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fYyIsImNvZWZmIiwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlIiwibm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSIsImluZm9ybWF0aW9ucyIsImRhdGVfZW1tZW5hZ2VtZW50IiwiZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50IiwiZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfIiwiY29uZGl0aW9uX3JhbmdfZW5mYW50IiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1ciIsImVsaWdpYmlsaXRlX2FwbF9kb3RfZGF0ZV9jb3VyYSIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyIsImVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uXyQwIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlIiwiZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2NvdXJhJDAiLCJlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXQiLCJkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2UiLCJjb25kaXRpb25fcGVyaW9kZV9kZW1lbmFnZW1lbnQiLCJwbGFmb25kX2Q4MjNfMjIiLCJtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudCIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiIsImJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbCIsImR1cmVlX2w4NDFfMV8zIiwibF84NDFfMV82X2FwcGxpY2FibGUiLCJsXzg0MV8xXzJfYXBwbGljYWJsZSIsImxfODQxXzFfMV9hcHBsaWNhYmxlIiwiY29uZGl0aW9uX2FjY2Vzc2lvbl9wcm9wcmlldGUiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9tZW5hZ2UiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kZW1hbmQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9kYXRlX2MiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQiLCJlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXQkMCIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYiIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaSIsImVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdCQxIiwiZWxpZ2liaWxpdGVfZGlzcG9zaXRpb25zX2NvbW11IiwiZGF0ZV9tYXJpYWdlIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDAiLCJkYXRlX2FjY29yZCIsImVsaWdpYmlsaXRlX2w4NDFfMiIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMSIsImNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNiIsImxvZ2VtZW50X3NpdHVlX2NvbW11bmVfZGVzZXF1aSIsInByb3ByaWV0ZSIsImNvbnZlbnRpb24iLCJjb252ZW50aW9uJDAiLCJjb25kaXRpb25fbG9nZW1lbnRfYmFpbGxldXIiLCJwcm9wcmlldGUkMCIsImNvbmRpdGlvbl9sb2dlbWVudF9wcmV0IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaSIsInJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jbyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQxIiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDIiLCJlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW4kMyIsImVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbiQ0IiwiZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVuJDUiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMCIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQxIiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDIiLCJlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWUkMyIsImVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZSQ0IiwiZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlJDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDUiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3QkNiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdCQ3IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90JDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ0IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDUiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkNiIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQ3IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDgiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkOSIsImFpZGVfZmluYWxlX2FwbCIsImFpZGVfZmluYWxlX2FsIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nIiwibWVuYWdlX3NhbnNfZW5mYW50c19nYXJkZV9hbHRlIiwiY2FsY3VsZXR0ZV9kb3RfbWVuYWdlIiwiY2FsY3VsZXR0ZV9kb3RfZGVtYW5kZXVyIiwiY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZSIsImNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYSIsImNhbGN1bGV0dGVfZG90X2VsaWdpYmlsaXRlIiwiY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9yIiwiY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlIiwiY2FsY3VsZXR0ZV9kb3RfY29lZmZpY2VudHNfZW5mIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDAiLCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWUkMSIsImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZSQyIiwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlJDMiLCJ0eXBlX3ByZXRfdG9fanNvbyIsInR5cGVfcHJldF9vZl9qc29vIiwidGl0dWxhaXJlX3ByZXRfdG9fanNvbyIsInRpdHVsYWlyZV9wcmV0X29mX2pzb28iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8iLCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV8kMCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdCIsInR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfbyIsImFtZWxpb3JlX3Bhcl9vY2N1cGFudF90b19qc29vIiwiYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb28iLCJsaW1pdGVfdHJhbmNoZV90b19qc29vIiwibGltaXRlX3RyYW5jaGVfb2ZfanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfdG9fanNvbyIsImxpbWl0ZV90cmFuY2hlX2RlY2ltYWxfb2ZfanNvbyIsInByZXN0YXRpb25fcmVjdWVfdG9fanNvbyIsInByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyIsInBhcmVudF9vdV9hdXRyZV90b19qc29vIiwicGFyZW50X291X2F1dHJlX29mX2pzb28iLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanMiLCJzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfb2ZfanMiLCJwYXJlbnRlX3RvX2pzb28iLCJwYXJlbnRlX29mX2pzb28iLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ciLCJkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2ckMCIsInpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28iLCJ6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIiwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvJDAiLCJ2ZXJzZW1lbnRfYV90b19qc29vIiwidmVyc2VtZW50X2Ffb2ZfanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyIsImRlcGVuc2VfbG9nZW1lbnRfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfdG9fanNvbyIsIm1vZGVfb2NjdXBhdGlvbl9pbXBheWVfb2ZfanNvbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyIsInR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sbyQwIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuIiwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFuJDAiLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4iLCJ0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW4kMCIsInNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyIsInNpdHVhdGlvbl9mYW1pbGlhbGVfb2ZfanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyIsInR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCIsImNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbCQwIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wIiwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wJDAiLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X3RvX2pzb28iLCJwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb28iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b18iLCJjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCIsImNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mXyIsImNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIiwiY29udmVudGlvbl9hX25faF9hIiwiY29udmVudGlvbl9hX25faF9hX29mX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uX3RvX2pzb28iLCJwZXJzb25uZV9zb3VzX2xvY2F0aW9uIiwicGVyc29ubmVfc291c19sb2NhdGlvbl9vZl9qc29vIiwicGF0cmltb2luZV90b19qc29vIiwicGF0cmltb2luZSIsInBhdHJpbW9pbmVfb2ZfanNvbyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28iLCJjb25kaXRpb25zX2V0cmFuZ2VycyIsImNvbmRpdGlvbnNfZXRyYW5nZXJzX29mX2pzb28iLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQiLCJwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnQkMCIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQwIiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDAiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMCIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQwIiwiY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fJDAiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUiLCJ0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUkMCIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiIsImluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0MiQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDAiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMCIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQwIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfdG9fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV90b19qIiwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9vZl9qIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvIiwiaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF90IiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDAiLCJuZXVmX291X2FuY2llbl90b19qc29vIiwibmV1Zl9vdV9hbmNpZW5fb2ZfanNvbyIsInRyYW5jaGVfcmV2ZW51X3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudSIsInRyYW5jaGVfcmV2ZW51X29mX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsX3RvX2pzb28iLCJ0cmFuY2hlX3JldmVudV9kZWNpbWFsIiwidHJhbmNoZV9yZXZlbnVfZGVjaW1hbF9vZl9qc29vIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvIiwiYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UiLCJhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV9vZl9qc28iLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUiLCJkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGUkMCIsInByZXRfdG9fanNvbyIsInByZXRfb2ZfanNvbyIsImxvZ2VtZW50X2ZveWVyX3RvX2pzb28iLCJsb2dlbWVudF9mb3llcl9vZl9qc29vIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfIiwiZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMiLCJlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc18kMCIsInR5cGVfYmFpbGxldXJfdG9fanNvbyIsInR5cGVfYmFpbGxldXJfb2ZfanNvbyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyIsImxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXyQwIiwibmF0aW9uYWxpdGVfdG9fanNvbyIsIm5hdGlvbmFsaXRlX29mX2pzb28iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF90b18iLCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl8iLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UiLCJpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2UkMCIsInByb3ByaWV0YWlyZV90b19qc29vIiwicHJvcHJpZXRhaXJlX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMCIsImRlbWFuZGV1cl90b19qc29vIiwiZGVtYW5kZXVyX29mX2pzb28iLCJlbmZhbnRfYV9jaGFyZ2VfdG9fanNvbyIsImVuZmFudF9hX2NoYXJnZSIsImVuZmFudF9hX2NoYXJnZV9vZl9qc29vIiwibG9jYXRpb25fdG9fanNvbyIsImxvY2F0aW9uX29mX2pzb28iLCJwZXJzb25uZV9hX2NoYXJnZV90b19qc29vIiwicGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfdG9fanNvbyIsImNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvbyIsIm1vZGVfb2NjdXBhdGlvbl90b19qc29vIiwibW9kZV9vY2N1cGF0aW9uX29mX2pzb28iLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMCIsImxvZ2VtZW50X3RvX2pzb28iLCJsb2dlbWVudCIsImxvZ2VtZW50X29mX2pzb28iLCJtZW5hZ2VfdG9fanNvbyIsIm1lbmFnZV9vZl9qc29vIiwiZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfJDEiLCJlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV8kMiIsImVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbSQxIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDIiLCJyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2wkMSIsInJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbCQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDEiLCJjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3AkMiIsImNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mbyQxIiwiY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZvJDIiLCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2UkMTAiLCJjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl8kMSIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDExIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEyIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDEzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE0IiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jJDEiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2MkMiIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjYyQxIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjJDIiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3kkMSIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveSQyIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fJDAiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3QiLCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX28iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b18iLCJpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl9vZl8iLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2kkMCIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyQxIiwiY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nJDIiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMSIsImVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaSQyIiwiY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wJDMiLCJjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm8kMyIsImNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uXyQzIiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE1IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE2IiwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlJDE3IiwicmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sJDMiLCJlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGkkMyIsImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvYyQzIiwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95JDMiLCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2MkMyIsImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZSQxOCIsImVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlXyQzIiwiZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtJDMiLCJjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2ckMyIsImNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZyIsImludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbCJdLCJzb3VyY2VzIjpbIi9idWlsdGluLytpbnQ2NC5qcyIsIi9idWlsdGluLyttbEJ5dGVzLmpzIiwiL2J1aWx0aW4vK2ZhaWwuanMiLCIvYnVpbHRpbi8rc3RkbGliLmpzIiwiL2J1aWx0aW4vK3N5cy5qcyIsIi9idWlsdGluLytiYWNrdHJhY2UuanMiLCIvYnVpbHRpbi8ranNsaWIuanMiLCIvYnVpbHRpbi8rZm9ybWF0LmpzIiwiL2J1aWx0aW4vK2llZWVfNzU0LmpzIiwiL2J1aWx0aW4vK2VmZmVjdC5qcyIsIi9idWlsdGluLytmc19ub2RlLmpzIiwiL2J1aWx0aW4vK2ZzLmpzIiwiL2J1aWx0aW4vK3VuaXguanMiLCIvYnVpbHRpbi8rZnNfZmFrZS5qcyIsIi9idWlsdGluLytuYXQuanMiLCIvYnVpbHRpbi8rZ3JhcGhpY3MuanMiLCIvYnVpbHRpbi8rcnVudGltZV9ldmVudHMuanMiLCIvYnVpbHRpbi8rbWFyc2hhbC5qcyIsIi9idWlsdGluLytpby5qcyIsIi9idWlsdGluLytnYy5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvemFyaXRoX3N0dWJzX2pzL2JpZ2ludGVnZXIuanMiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL3phcml0aF9zdHVic19qcy9ydW50aW1lLmpzIiwiL2J1aWx0aW4vK2JpZ2FycmF5LmpzIiwiL2J1aWx0aW4vK3BhcnNpbmcuanMiLCIvYnVpbHRpbi8raW50cy5qcyIsIi9idWlsdGluLytoYXNoLmpzIiwiL2J1aWx0aW4vK29iai5qcyIsIi9idWlsdGluLytkb21haW4uanMiLCIvYnVpbHRpbi8rY29tcGFyZS5qcyIsIi9idWlsdGluLytqc2xpYl9qc19vZl9vY2FtbC5qcyIsIi9idWlsdGluLytiaWdzdHJpbmcuanMiLCIvYnVpbHRpbi8rbWQ1LmpzIiwiL2J1aWx0aW4vK3N0ci5qcyIsIi9idWlsdGluLytsZXhpbmcuanMiLCIvYnVpbHRpbi8rYXJyYXkuanMiLCIvYnVpbHRpbi8rc3luYy5qcyIsIi9idWlsdGluLyt3ZWFrLmpzIiwiL2J1aWx0aW4vK3BybmcuanMiLCIvYnVpbHRpbi8renN0ZC5qcyIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FtbGludGVybmFsRm9ybWF0QmFzaWNzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxBdG9taWMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0ZGxpYi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGVydmFzaXZlcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZWl0aGVyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9vYmoubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbExhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xhenkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3NlcS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvb3B0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9yZXN1bHQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2Jvb2wubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NoYXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VjaGFyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9saXN0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9pbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2J5dGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdHJpbmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3VuaXQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL21hcnNoYWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2FycmF5Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mbG9hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaW50MzIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2ludDY0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9uYXRpdmVpbnQubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2xleGluZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcGFyc2luZy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc2V0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9tYXAubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3N0YWNrLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9xdWV1ZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvc3RyZWFtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9idWZmZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbEZvcm1hdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvcHJpbnRmLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9hcmcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3ByaW50ZXhjLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9mdW4ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2djLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9kaWdlc3QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL3JhbmRvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvaGFzaHRibC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvd2Vhay5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZm9ybWF0Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zY2FuZi5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY2FsbGJhY2subWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2NhbWxpbnRlcm5hbE9PLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9jYW1saW50ZXJuYWxNb2QubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2dlbmxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvZXBoZW1lcm9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9maWxlbmFtZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvY29tcGxleC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvb2NhbWwvYmlnYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL2luX2NoYW5uZWwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL29jYW1sL291dF9jaGFubmVsLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9kYXRlc19jYWxjL2RhdGVzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi95b2pzb24veW9qc29uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252Lm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3lvanNvbl9jb252X2Vycm9yLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9wcHhfeW9qc29uX2NvbnZfbGliL3BweF95b2pzb25fY29udl9saWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvcnVudGltZXMvb2NhbWwvcnVudGltZS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWVfXy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwtY29tcGlsZXIvcnVudGltZS9qc29vX3J1bnRpbWUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzX29mX29jYW1sX18ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ltcG9ydC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvanMubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbS5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvdHlwZWRfYXJyYXkubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpbGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2RvbV9odG1sLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9mb3JtLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC94bWxIdHRwUmVxdWVzdC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvd29ya2VyLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJTb2NrZXRzLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC93ZWJHTC5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVnZXhwLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC91cmwubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3N5c19qcy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvcmVzaXplT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL3BlcmZvcm1hbmNlT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL211dGF0aW9uT2JzZXJ2ZXIubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzdGFibGUubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2pzb24ubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2NTUy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX2V2ZW50cy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZG9tX3N2Zy5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvZXZlbnRTb3VyY2UubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2ZpcmVidWcubWwiLCIvaG9tZS9kZW1lcmlnby8ub3BhbS9jYXRhbGEvbGliL2pzX29mX29jYW1sL2dlb2xvY2F0aW9uLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9qc19vZl9vY2FtbC9pbnRlcnNlY3Rpb25PYnNlcnZlci5tbCIsIi9ob21lL2RlbWVyaWdvLy5vcGFtL2NhdGFsYS9saWIvanNfb2Zfb2NhbWwvaW50bC5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9ydW50aW1lcy9qc29vL3J1bnRpbWUubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfYXBpX3dlYi5tbCIsIi93b3Jrc3BhY2Vfcm9vdC9mcmVuY2hfbGF3L29jYW1sL2xhd19zb3VyY2UvYWlkZXNfbG9nZW1lbnQubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9sYXdfc291cmNlL2FpZGVzX2xvZ2VtZW50X2FwaV93ZWIubWwiLCIvd29ya3NwYWNlX3Jvb3QvZnJlbmNoX2xhdy9vY2FtbC9hcGlfd2ViLm1sIiwiL2hvbWUvZGVtZXJpZ28vLm9wYW0vY2F0YWxhL2xpYi9vY2FtbC9zdGRfZXhpdC5tbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBPQSxTQUFTQSxtQkFBbUJDLEdBQUssU0FBUUEsV0FBWTtHQ3pMckQsU0FBU0MsZ0JBQWdCQyxHQUFHQztJQUMxQixHQUFHRCxRQUFRO0lBQ1gsR0FBSUMsVUFBVSxPQUFRQSxTQUFTRDtJQUMvQixJQUFJRSxRQUFRQztJQUNaLE9BQVE7S0FDTixHQUFJSCxPQUFPRSxLQUFLRDtLQUNoQkQ7S0FDQSxHQUFJQSxRQUFRLE9BQU9FO0tBQ25CRCxLQUFLQTtLQUNMRTtLQUNBLEdBQUlBLFFBQ0ZGOztHQUtOO0dEN0NzQixJQUFsQkcsb0JBQW9CQztHRUF4QixTQUFTQyxvQkFBcUJDLEtBQU8sTUFBTUEsSUFBSztHQzRIM0IsSUFBakJDO0dEckZKLFNBQVNDO0lBQ1BILG9CQUFvQkU7R0FDdEI7R0ZyQ0EsU0FBU0UsUUFBU0MsSUFBR0MsSUFBR0M7SUFDdEJDLFVBQVVIO0lBQ1ZHLFVBQVVGO0lBQ1ZFLFVBQVVEO0dBQ1o7R0FDQUg7R0FDQUE7ZUFDRSxXQUFXQSxRQUFRSSxTQUFRQSxTQUFRQSxTQURaO0dBSXpCSjthQUF1Q1o7S0FDckMsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEIsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEI7SUFQMkI7R0FTN0JZO2FBQXNDWjtLQUNwQyxJQUFJZSxLQUFLQyxlQUNMQyxNQUFNakI7S0FDVixHQUFJZSxLQUFLRSxLQUFLO0tBQ2QsR0FBSUYsS0FBS0UsS0FBSztLQUNkLEdBQUlELFVBQVVoQixNQUFNO0tBQ3BCLEdBQUlnQixVQUFVaEIsTUFBTTtLQUNwQixHQUFJZ0IsVUFBVWhCLE1BQU07S0FDcEIsR0FBSWdCLFVBQVVoQixNQUFNO0tBQ3BCO0lBVDBCO0dBVzVCWTs7S0FDRTtNQUFJQyxPQUFPRztNQUNQRixPQUFPRSxXQUFXSDtNQUNsQkUsT0FBT0MsV0FBV0Y7S0FDdEIsV0FBV0YsUUFBUUMsSUFBSUMsSUFBSUM7SUFKTDtHQU14Qkg7YUFBa0NaO0tBQ2hDO01BQUlhLEtBQUtHLFVBQVVoQjtNQUNmYyxLQUFLRSxVQUFVaEIsUUFBUWE7TUFDdkJFLEtBQUtDLFVBQVVoQixRQUFRYztLQUMzQixXQUFXRixRQUFRQyxJQUFJQyxJQUFJQztJQUpMO0dBTXhCSDthQUFrQ1o7S0FDaEM7TUFBSWEsS0FBS0csVUFBVWhCO01BQ2ZjLEtBQUtFLFVBQVVoQixRQUFRYTtNQUN2QkUsS0FBS0MsVUFBVWhCLFFBQVFjO0tBQzNCLFdBQVdGLFFBQVFDLElBQUlDLElBQUlDO0lBSkw7R0FNeEJIO2FBQWtDWjtLQUNoQztNQUFJYSxLQUFLRyxVQUFVaEI7TUFDZmMsTUFBT0QsS0FBS1AseUJBQTBCVSxVQUFVaEIsT0FBT2dCLFVBQVVoQjtNQUNqRWU7U0FBT0QsS0FBS1IseUJBQTBCVSxVQUFVaEIsT0FBT2dCLFVBQVVoQjtVQUFPZ0IsVUFBVWhCO0tBQ3RGLFdBQVdZLFFBQVFDLElBQUlDLElBQUlDO0lBSkw7R0FNeEJIO2VBQ0UsUUFBUUksVUFBUUEsVUFBUUEsY0FEQztHQUczQkoscUNBQ0UsT0FBUUksa0JBRGdCO0dBRzFCSjthQUFrQ1o7S0FDaEMsV0FBV1ksUUFBUUksVUFBVWhCLE1BQU1nQixVQUFVaEIsTUFBTWdCLFVBQVVoQjtJQUR2QztHQUd4Qlk7YUFBaUNaO0tBQy9CLFdBQVdZLFFBQVFJLFVBQVFoQixNQUFNZ0IsVUFBUWhCLE1BQU1nQixVQUFRaEI7SUFEbEM7R0FHdkJZO2FBQWtDWjtLQUNoQyxXQUFXWSxRQUFRSSxVQUFRaEIsTUFBTWdCLFVBQVFoQixNQUFNZ0IsVUFBUWhCO0lBRGpDO0dBR3hCWTthQUF5Q1Q7S0FDdkNBLElBQUlBO0tBQ0osR0FBSUEsUUFBUSxPQUFPYTtLQUNuQixHQUFJYjtNQUFRO2NBQ0NTO2VBQVNJLFdBQVdiO2VBQ1ZhLFdBQVdiLElBQU1hLGdCQUFpQmI7ZUFDbENhLFdBQVdiLElBQU1hLGdCQUFpQmI7S0FFekQsR0FBSUE7TUFDRjtjQUFXUztrQkFDU0ksV0FBWWIsUUFDWGEsV0FBWWIsU0FBWWEsZ0JBQWlCYjtLQUNoRSxXQUFXUyxjQUFjSSxXQUFZYjtJQVpSO0dBYy9CUzthQUFtRFQ7S0FDakRBLElBQUlBO0tBQ0osR0FBSUEsUUFBUSxPQUFPYTtLQUNuQixHQUFJYjtNQUNGO2NBQVdTO2VBQ1JJLFdBQVdiLElBQU1hLGdCQUFpQmI7ZUFDbENhLFdBQVdiLElBQU1hLGdCQUFpQmI7ZUFDbENhLFdBQVdiO0tBQ2hCLEdBQUlBO01BQ0Y7Y0FBV1M7ZUFDUkksV0FBWWIsU0FBWWEsZ0JBQWlCYixHQUN6Q2EsV0FBWWI7S0FFakIsV0FBV1MsUUFBU0ksV0FBWWI7SUFiTztHQWV6Q1M7YUFBMENUO0tBQ3hDQSxJQUFJQTtLQUNKLEdBQUlBLFFBQVEsT0FBT2E7S0FDYixJQUFGRSxJQUFLRjtLQUNULEdBQUliO01BQ0Y7Y0FBV1M7ZUFDUkksV0FBV2IsSUFBTWEsZ0JBQWlCYjtlQUNsQ2EsV0FBV2IsSUFBTWUsVUFBV2Y7ZUFDM0JhLGlCQUFrQmI7S0FDZixJQUFMZ0IsT0FBUUg7S0FDWixHQUFJYjtNQUNGO2NBQVdTO2VBQ1JJLFdBQVliLFNBQVlhLGdCQUFpQmI7ZUFDekNhLGlCQUFtQmI7ZUFDcEJnQjtLQUNKLFdBQVdQLFFBQVVJLGlCQUFtQmIsUUFBU2dCLE1BQU1BO0lBZnpCO0dBaUJoQ1A7O0tBQ0VJLFVBQVdBLGVBQWlCQTtLQUM1QkEsV0FBWUEsZUFBaUJBO0tBQzdCQSxVQUFXQTtJQUhZO0dBS3pCSjs7S0FDRUksV0FBWUEsZ0JBQWtCQTtLQUM5QkEsV0FBWUEsZ0JBQWtCQTtLQUM5QkEsVUFBVUE7SUFIYTtHQUt6Qko7YUFBc0NaO0tBQ3BDO01BQUlvQjtNQUNBQyxVQUFVTDtNQUNWTSxVQUFVdEI7TUFDVnVCLGVBQWVYO0tBQ25CLE1BQU9TLGlCQUFpQkMsYUFBYyxDQUNwQ0YsVUFDQUU7S0FFRixNQUFPRixZQUFhO01BQ2xCQTtNQUNBRztNQUNBLEdBQUlGLGlCQUFpQkMsY0FBZTtPQUNsQ0M7T0FDQUYsVUFBVUEsWUFBWUM7O01BRXhCQTs7S0FFRixrQkFBb0JDLG1CQUFvQkY7SUFsQmQ7R0FvQjVCVDthQUFrQ1k7S0FFMUIsSUFBRnhCLElBQUlnQjtLQUNSLEdBQUlRLFlBQVliO0tBQ1AsSUFBTFEsT0FBT25CLE9BQU93QjtLQUNsQixHQUFJeEIsZUFBZUEsSUFBSUE7S0FDdkIsR0FBSXdCLGVBQWVBLElBQUlBO0tBQ2pCLElBQUZDLElBQUl6QixVQUFVd0I7S0FDbEIsR0FBSUwsZUFBZU0sSUFBSUE7S0FDdkIsT0FBT0E7SUFUZTtHQVd4QmI7YUFBa0NZO0tBRTFCLElBQUZ4QixJQUFJZ0I7S0FDUixHQUFJUSxZQUFZYjtLQUNQLElBQUxRLE9BQU9uQjtLQUNYLEdBQUlBLGVBQWVBLElBQUlBO0tBQ3ZCLEdBQUl3QixlQUFlQSxJQUFJQTtLQUNqQixJQUFGcEIsSUFBSUosVUFBVXdCO0tBQ2xCLEdBQUlMLGVBQWVmLElBQUlBO0tBQ3ZCLE9BQU9BO0lBVGU7R0FXeEJRLHFDQUNFLE9BQU9JLFVBQVdBLGNBRE07R0FHMUJKOztLQUNFLFFBQVNJLGlCQUFpQlQsa0JBQWtCUyxVQUFVVDtjQUFtQlM7SUFEL0M7R0FHNUJKOztLQUNFLFFBQVFJO2FBQ0FBO2FBQ0FBO2FBQ0NBO2FBQ0RBO2FBQ0FBO2FBQ0NBO2FBQ0RBO0lBUmtCO0dBVTVCSjtlQUNFLE9BQU9JLFdBQVlBLHNCQURJO0dBR3pCSjtlQUNFLE9BQVNJLHlCQUE0QkEsY0FEZDtHQXVEekIsU0FBU1Usb0JBQXFCMUI7SUFDNUIsV0FBV1ksUUFBUVosY0FBZUEsb0JBQXNCQTtHQUMxRDtHQUdBLFNBQVMyQixvQkFBcUIzQixHQUFLLE9BQU9BLFVBQVU7R0FqQ3BELFNBQVM0Qix1QkFBdUI1QixHQUFLLFNBQVFBLFVBQVc7R0FoQnhELFNBQVM2QixlQUFnQjdCLEdBQUssT0FBT0EsUUFBUTtHQzJlN0MsU0FBUzhCLHVCQUF1QjlCLEdBQUssT0FBT0EsRUFBRTtHRzFsQjlDLFNBQVMrQixnQkFBZ0I3QjtJQUNYLElBQVI4QixVQUFVQztJQUVkLEdBQUdELFdBQ0dBLGVBQ0FBLFlBQVk5QixNQUFNZ0M7S0FDdEIsT0FBT0YsWUFBWTlCO0lBQ3JCLEdBQUcrQiw4QkFDR0EsMkJBQTJCL0I7S0FDL0IsT0FBTytCLDJCQUEyQi9CO0dBQ3RDO0dDcEcrQixJQUEzQmlDO0dBRUo7TUFDUSxJQUFGL0IsSUFBSTJCO01BQ1IsR0FBRzNCLE1BQU04QixVQUFVO09BQ1gsSUFBRjdCLElBQUlEO09BQ1IsSUFBVSxJQUFGZ0MsT0FBT0EsSUFBSS9CLFVBQVUrQjtRQUFJLEdBQzVCL0IsRUFBRStCLFVBQVc7U0FBRUQ7U0FBZ0M7O2dCQUN6QzlCLEVBQUUrQjtTQUNURCwrQkFBK0I5QixFQUFFK0I7O1NBQzlCOztLQVJWOztHQ3VKRCxTQUFTQywyQkFBMkJDLEtBQUtDO0lBRXZDLEtBQUlELGdCQUFnQkMsU0FBU0Q7S0FBZUEsbUJBQW1CTDtJQUMvRCxPQUFPSztHQUNUO0dBYkEsU0FBU0UsNEJBQTRCRixLQUFLQztJQUN4QyxPQUFHSjtjQUNNRSwyQkFBMkJDLEtBQUtDO2NBQzdCRDtHQUNkO0dKaEpBLFNBQVNHLG9CQUFxQmhDLEtBQUtpQztJQUFPLE1BQU1GLGdDQUFnQy9CLEtBQUtpQztHQUFPO0dENHFCNUYsU0FBU0MsdUJBQXVCM0MsR0FBSyxPQUFPQSxFQUFFO0dDcHFCOUMsU0FBUzRDLHVCQUF3Qm5DLEtBQUtvQztJQUNwQ0osb0JBQXFCaEMsS0FBS2tDLHVCQUF1QkU7R0FDbkQ7R0FhQSxTQUFTQyxzQkFBdUJEO0lBQzlCRCx1QkFBdUJsQyxtQ0FBbUNtQztHQUM1RDtHSzVCQSxTQUFTRSxrQkFBbUJDO0lBQzFCQSxNQUFNbEIsdUJBQXVCa0I7SUFDckIsSUFBSkMsTUFBTUQ7SUFDVixHQUFJQyxVQUFVSDtJQUNSO0tBQUZJOzs7Ozs7Ozs7Ozs7SUFJSixJQUFXLElBQUZkLE9BQU9BLElBQUlhLEtBQUtiLElBQUs7S0FDdEIsSUFBRmUsSUFBSUgsV0FBV1o7S0FDbkIsT0FBUWU7O1FBRU5ELGlCQUFpQjs7O1FBRWpCQSxjQUFjQyxHQUFHOztRQUVqQkQsZ0JBQWdCOztRQUVoQkEsb0JBQW9COzs7Ozs7Ozs7O1FBR3BCQTtRQUNBLE1BQU9DLElBQUVILGVBQWVaLFNBQVNlLFVBQVVBLE9BQVEsQ0FDakRELFVBQVVBLGVBQWVDLEdBQUdmO1FBRTlCQTtRQUNBOztRQUVBYztRQUNBZDtRQUNBLE1BQU9lLElBQUVILGVBQWVaLFNBQVNlLFVBQVVBLE9BQVEsQ0FDakRELFNBQVNBLGNBQWNDLEdBQUdmO1FBRTVCQTs7O1FBRUFjOztRQUVBQSxhQUFhOztRQUViQSxhQUFhOztRQUViQSxhQUFhQSxvQkFBb0I7O1FBRWpDQSxZQUFZOzs7O1FBRVpBLHFCQUFxQkEsU0FBU0MsR0FBRzs7OztRQUVqQ0Q7UUFBcUJBO1FBQ3JCQSxTQUFTQztRQUFrQjs7O0lBRy9CLE9BQU9EO0dBQ1Q7R0FJQSxTQUFTRSx1QkFBdUJGLEdBQUdHO0lBQ2pDLEdBQUlILGFBQWFHLFlBQVlBO0lBQ3JCLElBQUpKLE1BQU1JO0lBRVYsR0FBSUgsaUJBQWlCQSxjQUFjQSxxQkFBcUJEO0lBQ3hELEdBQUlDLFlBQWEsQ0FDZixHQUFJQSxhQUFhRCxVQUNqQixHQUFJQyxjQUFjRDtJQUdULElBQVBLO0lBQ0osR0FBSUosb0JBQW9CQTtLQUN0QixJQUFXLElBQUZkLElBQUlhLEtBQUtiLElBQUljLFNBQVNkLEtBQUtrQjtJQUN0QyxHQUFJSjtLQUFjLEdBQ1pBO01BQVlJO2FBQ1BKLG9CQUFvQkksVUFBVUo7SUFFekMsR0FBSUEsZUFBZUEsYUFBYUk7SUFDaEMsR0FBSUosZUFBZUEsY0FBY0ksVUFBVUo7SUFDM0MsR0FBSUEsb0JBQW9CQTtLQUN0QixJQUFXLElBQUZkLElBQUlhLEtBQUtiLElBQUljLFNBQVNkLEtBQUtrQjtJQUN0Q0EsVUFBVUQ7SUFDVixHQUFJSCxrQkFDRixJQUFXLElBQUZkLElBQUlhLEtBQUtiLElBQUljLFNBQVNkLEtBQUtrQjtJQUN0QyxPQUFPWCx1QkFBdUJXO0dBQ2hDO0dQNExBLFNBQVNDLGtCQUFtQlAsS0FBS2hEO0lBQ3pCLElBQUZrRCxJQUFJSCxrQkFBa0JDO0lBQzFCLEdBQUlFLGdCQUFnQnRCLHVCQUF1QjVCLEdBQUksQ0FDN0NrRCxjQUFhbEQsSUFBSTZCLGVBQWU3QjtJQUVsQztLQUFJc0Q7S0FDQUUsUUFBUTlCLG9CQUFvQndCO0tBQzVCTztJQUNKLEVBQUc7S0FDSyxJQUFGQyxJQUFJMUQsVUFBVXdEO0tBQ2xCeEQsSUFBSTBEO0tBQ0pKLFNBQVNHLGFBQWE5QixvQkFBb0IrQixjQUFjSjs7O1FBQy9DdkQsbUJBQW1CQztJQUM5QixHQUFJa0QsWUFBYTtLQUNmQTtLQUNNLElBQUZoRCxJQUFJZ0QsU0FBU0k7S0FDakIsR0FBSXBELE9BQU9vRCxTQUFTckQsZ0JBQWlCQyxVQUFVb0Q7O0lBRWpELE9BQU9GLHVCQUF1QkYsR0FBR0k7R0FDbkM7R1EzQ0EsU0FBU0ssaUJBQWtCM0QsR0FBSyxPQUFPTyxXQUFXUCxHQUFJO0dDekZ0RCxTQUFTNEQsNEJBQTRCQyxHQUNqQyxTQUNKO0dSZkEsU0FBU0MsY0FBZTNEO0lBRXRCLEdBQUlBLGNBQWU7S0FFakIsSUFBVyxJQUFGaUMsT0FBT0EsSUFBSWpDLFVBQVVpQyxLQUFLLEdBQUlqQyxhQUFhaUMsVUFBVTtLQUM5RDs7O0tBRUEsU0FBUSxvQkFBb0JqQztHQUNoQztHQXZEQSxTQUFTNEQsbUJBQW1CNUQ7SUFDMUIsUUFBUzZELFFBQVFILFFBQVFWLEdBQUdjLElBQUlDLElBQUlDLEdBQUcvQixPQUFPL0IsSUFBSUYsVUFBVWlDLElBQUkvQixHQUFHK0IsSUFBSztLQUN0RTZCLEtBQUs5RCxhQUFhaUM7S0FDbEIsR0FBSTZCLFVBQVc7TUFDYixJQUFXLElBQUZHLElBQUloQyxPQUFRZ0MsSUFBSS9ELE1BQU80RCxLQUFLOUQsYUFBYWlFLFlBQVlBLEtBQUk7TUFDbEUsR0FBSUEsSUFBSWhDLFFBQVM7T0FBRXlCO09BQWdCRyxLQUFLSDtPQUFHQTtPQUFRRyxLQUFLN0QsUUFBUWlDLEdBQUdnQzs7O09BQzlEUCxLQUFLMUQsUUFBUWlDLEdBQUdnQztNQUNyQixHQUFJQSxLQUFLL0QsR0FBRztNQUNaK0IsSUFBSWdDOztLQUVORDtLQUNBLEtBQU8vQixJQUFJL0IsT0FBUzZELEtBQUsvRCxhQUFhaUMsbUJBQW9CO01BQ3hEZSxJQUFJZSxNQUFNRDtNQUNWLEdBQUlBLFVBQVc7T0FDYkUsSUFBSWhCO09BQ0osR0FBSWdCLFVBQVVBOztVQUNUO09BQ0xBO09BQ0EsS0FBTy9CLElBQUkvQixPQUFTNkQsS0FBSy9ELGFBQWFpQyxtQkFBb0I7UUFDeERlLElBQUllLE1BQU1mO1FBQ1YsR0FBSWMsVUFBVztTQUNiRSxJQUFJaEI7U0FDSixHQUFLZ0IsYUFBZ0JBLGVBQWlCQSxZQUFjQTs7WUFDL0M7U0FDTEE7U0FDQSxLQUFPL0IsSUFBSS9CLE9BQVM2RCxLQUFLL0QsYUFBYWlDLHNCQUNqQzZCLFVBQVk7VUFDZkUsSUFBSUQsa0JBQWtCZjtVQUN0QixHQUFJZ0IsZUFBZUEsY0FBY0E7Ozs7OztLQU0zQyxHQUFJQSxNQUFPO01BQ1QvQixLQUFLK0I7TUFDTE47O2FBQ1NNO01BQ1ROLEtBQUtRLDhCQUE4QkYsb0JBQW9CQTs7TUFFdkROLEtBQUtRLG9CQUFvQkY7S0FDM0IsR0FBSU4sZ0JBQWlCLENBQUNBLGdCQUFnQkcsS0FBS0gsR0FBR0E7O0lBRWhELE9BQU9HLElBQUVIO0dBQ1g7R0E0aUJBLFNBQVNTLHdCQUF3Qm5FO0lBQy9CLEdBQUcyRCxjQUFjM0QsSUFDZixPQUFPQTtJQUNULE9BQU80RCxtQkFBbUI1RDtHQUFJO0dTNXJCaEMsU0FBU29FO0lBQ1AsY0FDU3RDO3FCQUNLQTtxQkFDQUE7R0FDaEI7R0MwQkEsU0FBU3VDO0lBQ1AsU0FBU0MsTUFBTUM7S0FDYixHQUFJQSx3QkFBd0IsWUFBWUE7S0FDeEM7SUFDRjtJQUVBLFNBQVNDLE1BQU1EO0tBRWI7TUFBSUU7O01BQ0FDLFNBQVNELG1CQUFtQkY7TUFDNUJJLFNBQVNEO01BQ1RFLFFBQVFDLFFBQVFGLFVBQVVBO0tBRzlCLEdBQUlFLFFBQVFILGFBQWFFLE9BQVE7TUFDL0IsSUFBSUUsT0FBUUosaUJBQ1JLLE1BQU9MO01BQ1gsUUFBUUksTUFBTVAsZUFBZU8sY0FBY0M7O0tBRTdDO0lBQ0Y7SUFDQSxPQUFHWCx1QkFBd0J0QztlQUFzQkE7Y0FDeENBLDBDQUEwQzBDLFFBQVFGO2NBRS9DQTtHQUNkO0dBQ3FCLElBQWpCVSxtQkFBbUJYO0dBdkR2QixTQUFTWSxvQkFBb0JDO0lBQzNCLE9BQVFBLDBCQUEyQkEsYUFBY0E7R0FDbkQ7R0FJQSxHQUFHZCx1QkFBd0J0QyxzQkFBc0JBO0lBQzFCLElBQWpCcUQsbUJBQW1CckQ7O0lBRUYsSUFBakJxRDtHQUNOQSxtQkFBbUJGLG9CQUFvQkU7R0FrRHZDLFNBQVNDLGVBQWdCRjtJQUN2QkEsT0FBS2Ysd0JBQXdCZTtJQUM3QixLQUFLRixpQkFBaUJFLE9BQ3BCQSxPQUFPQyxtQkFBbUJEO0lBQzVCO0tBQUlHLFFBQVFMLGlCQUFpQkU7S0FDekJJLE9BQU9EO0tBQ1BFO0lBQ0osSUFBVSxJQUFGdEQsT0FBT0EsSUFBRXFELGFBQWFyRDtLQUFJLE9BQ3pCcUQsS0FBS3JEOztRQUNELEdBQUdzRCxrQkFBZ0JBLGFBQWE7aUJBQ2pDO2dCQUNEO2dCQUNBQSxXQUFXRCxLQUFLckQsS0FBSTs7SUFHL0JzRCxjQUFjRjtJQUNkRSxhQUFhTDtJQUNiLE9BQU9LO0dBQ1Q7R1ZsQkEsU0FBU0MsbUJBQW1CeEY7SUFDMUIsUUFBUzZELFFBQVFILElBQUlHLEdBQUdiLEdBQUd5QyxHQUFHeEQsT0FBTy9CLElBQUlGLFVBQVVpQyxJQUFJL0IsR0FBRytCLElBQUs7S0FDN0RlLElBQUloRCxhQUFhaUM7S0FDakIsR0FBSWUsU0FBVTtNQUNaLElBQVcsSUFBRmlCLElBQUloQyxPQUFRZ0MsSUFBSS9ELE1BQU84QyxJQUFJaEQsYUFBYWlFLFlBQVlBLEtBQUk7TUFDakUsR0FBSUEsSUFBSWhDLFFBQVM7T0FBRXlCO09BQWdCRyxLQUFLSDtPQUFHQTtPQUFRRyxLQUFLN0QsUUFBUWlDLEdBQUdnQzs7O09BQzlEUCxLQUFLMUQsUUFBUWlDLEdBQUdnQztNQUNyQixHQUFJQSxLQUFLL0QsR0FBRztNQUNaK0IsSUFBSWdDOztLQUVOLEdBQUlqQixVQUFXO01BQ2JVLEtBQUtRLDJCQUE0QmxCO01BQ2pDVSxLQUFLUSwyQkFBNEJsQjs7YUFDeEJBLGNBQWNBO01BQ3ZCVTtPQUFLUTtnQkFBNEJsQixnQkFDQ0Esc0JBQ0RBOztPQUN4QkEsZUFBZWYsU0FBUy9CLE1BQ3ZCdUYsSUFBSXpGLGFBQWFpQztVQUFvQndEO01BRS9DL0I7U0FDSztNQUNMekI7TUFDQWUsS0FBS0EsV0FBV3lDO01BQ2hCL0I7T0FBS1E7Z0JBQTRCbEI7Z0JBQ0NBO2dCQUNBQTtnQkFDREE7O0tBRW5DLEdBQUlVLGdCQUFpQixDQUFDQSxnQkFBZ0JHLEtBQUtILEdBQUdBOztJQUVoRCxPQUFPRyxJQUFFSDtHQUNYO0dBbW1CQSxTQUFTZ0Msd0JBQXlCMUY7SUFDaEMsT0FBSTJELGNBQWMzRDtjQUNUd0MsdUJBQXVCeEM7Y0FDcEJ3Qyx1QkFBdUJnRCxtQkFBbUJ4RjtHQUN4RDtHV3BvQmU7SUFBWDJGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkosU0FBU0MsbUJBQW1CQyxNQUFNQyxTQUFTdkIsTUFBTXdCO0lBQ25DLElBQVJDLFVBQVVMLG1CQUFtQkU7SUFDakMsR0FBSUcsWUFBYSxDQUVmLEdBQUlELFNBQVNFLE1BQ1hGLGdCQUdGQyxjQUFtQkQ7SUFFWjtLQUFMRztRQUNGRjtRQUNBTix3QkFBd0JJO1FBQ3hCSix3QkFBd0JuQjtJQUUxQixPQUFPMkI7R0FDVDtHVFVzQixJQUFsQkM7R0FXSixTQUFTQyxpQkFBaUJDLElBQ3hCLE9BQU9GLGtCQUFrQkUsSUFDM0I7R0RqSEEsU0FBU0MscUJBQXNCaEcsS0FBSzRGO0lBQVEsTUFBTTdELDRCQUE0QixJQUFJL0IsWUFBWTRGO0dBQVE7R0Q0Q3RHLFNBQVNLLHlCQUEwQkMsR0FBR3ZFLEdBQUdhO0lBQ2pDLElBQUZDLElBQUltQjtJQUNSLEdBQUlqQyxVQUFVYSxlQUFlQSxPQUFPMEQsVUFBVSxPQUFPekQsUUFBU2tELE1BQU1PO0lBQzlELElBQUZ4RztJQUNKLFVBQVc4QyxLQUFLYixXQUFVYTtLQUN4QjlDLEtBQUsrQyxRQUFTa0QsTUFBTU8sUUFBUXZFLEdBQUVBLElBQUk3QixTQUFTMEM7SUFDN0MsT0FBTzlDO0dBQ1Q7R0EyV0EsU0FBU3lHLDZCQUE4QnpHO0lBRXJDLEdBQUlBO0tBQ0ZBLE9BQU9GLGdCQUFnQkUsTUFBTUE7O0tBRTdCQSxNQUFNdUcseUJBQTBCdkcsUUFBUUE7SUFDMUNBO0dBQ0Y7R0F0Q0EsU0FBUzBHLFFBQVNwRyxLQUFLcUcsVUFBVUM7SUFDL0IvRixTQUFPUDtJQUFLTyxTQUFPOEY7SUFBVTlGLFNBQU8rRjtHQUN0QztHQUNBRjs7S0FDRSxPQUFRN0Y7O1FBRU4sT0FBT0E7Z0JBRVA0Riw2QkFBNkI1Rjs7UUFFN0IsR0FBSThDLGNBQWM5QyxRQUFTLENBQ3pCQSxZQUNBLE9BQU9BLFNBRVRBOztRQUVBLE9BQU9BOztJQWJrQjtHQWdCN0I2Rjs7S0FDUSxJQUFGekcsSUFBSVk7S0FDUixHQUFHQSxhQUFhLE9BQU9aO0tBQ3ZCLE9BQU8yRCxtQkFBbUIzRDtJQUhBO0dBSzVCeUc7O0tBQ2MsSUFBUkcsVUFBVWhHLGNBQWNBLGlCQUFpQkE7S0FDN0MsV0FBVzZGLFFBQVE3RixRQUFPZ0csU0FBUWhHO0lBRlY7R0FtWTFCLFNBQVNpRyxpQkFBaUI5RyxHQUN4QixPQUFRQSxhQUFhMEcsUUFDdkI7R0FrQkEsU0FBU0ssa0JBQWtCL0c7SUFDekIsY0FBZUEsb0JBQW1CLG9CQUFvQkE7R0FDeEQ7R0E3VUEsU0FBU2dILG9CQUFxQlI7SUFDNUIsTUFBTUEsYUFBYVMsYUFDakJULFFBQVFTLFdBQVdUO0lBRXJCLFdBQVdFLFdBQVVGLEdBQUVBO0dBQ3pCO0dBeU5BLFNBQVNVLHNCQUFzQmxILEdBQUssV0FBVzBHLFdBQVUxRyxHQUFFQSxVQUFXO0dBL0J0RSxTQUFTbUgscUJBQXFCbkg7SUFDNUIsT0FBT2tILHNCQUFzQnZGLHVCQUF1QjNCO0dBQ3REO0dHM3FCQSxTQUFTb0gscUJBQXNCMUU7SUFDN0JELHVCQUF1QmxDLDRCQUE0Qm1DO0dBQ3JEO0dPd0tBLFNBQVMyRSx3QkFBd0JuQztJQUMvQmtDLHFCQUFzQmxDO0dBQ3hCO0dWbVFBLFNBQVNvQyw0QkFBNkJ0SDtJQUVwQyxJQUFJd0csUUFBUVMsV0FBV2pILE1BQ25CNkQsSUFBSTdELEtBQUtFLElBQUkyRCxVQUFVNUI7SUFDM0IsTUFBT0EsSUFBSS9CLEdBQUcrQixLQUFLdUUsRUFBRXZFLEtBQUs0QixhQUFhNUI7SUFDdkMsSUFBSy9CLElBQUlGLEtBQUtpQyxJQUFJL0IsR0FBRytCLEtBQUt1RSxFQUFFdkU7SUFDNUJqQyxNQUFNd0c7SUFDTnhHO0lBQ0EsT0FBT3dHO0dBQ1Q7R0FJQSxTQUFTZSwwQkFBMkJ2SDtJQUNsQyxHQUFJQSxVQUFzQnNILDRCQUE0QnRIO0lBQ3RELE9BQU9BO0dBQ1Q7R0E4QkEsU0FBU3dILGtCQUFrQjFFO0lBQ3pCLEdBQUlBLFNBQVNIO0lBQ2IsV0FBVytELFFBQVE1RCxpQkFBV0E7R0FDaEM7R0FnSkEsU0FBUzJFLHFCQUFxQnpILEdBQUssT0FBT0EsSUFBSTtHQXZDOUMsU0FBUzBILGdCQUFnQkMsSUFBSUMsSUFBSUMsSUFBSUMsSUFBSWhGO0lBQ3ZDLEdBQUlBLFVBQVU7SUFDZCxHQUFLZ0YsWUFDQWhGLE9BQU8rRSxRQUFTQSxhQUEyQi9FLE9BQU8rRSxhQUFlO0tBQ3BFQTtNQUFRRjtTQUNOcEIseUJBQXlCb0IsTUFBTUMsSUFBSTlFO1NBQ2xDOEUsV0FBV0QsZUFBZTdFLE1BQUs2RSxPQUFLQSxZQUFZQyxJQUFJOUU7S0FDdkQrRSxPQUFRQSxlQUFlQTs7WUFDZEEsYUFBMkJDLE1BQU1ELFlBQWE7S0FDdkRBO01BQVNGO1NBQ1BwQix5QkFBeUJvQixNQUFNQyxJQUFJOUU7U0FDbEM4RSxXQUFXRCxlQUFlN0UsTUFBSzZFLE9BQUtBLFlBQVlDLElBQUk5RTtLQUN2RCtFLE9BQVFBLGVBQWVBOztRQUNsQjtLQUNMLEdBQUlBLFdBQXVCUCw0QkFBNEJPO0tBQ3ZELElBQUkvRCxLQUFLNkQsTUFBTTVELEtBQUs4RDtLQUNwQixHQUFJRjtNQUF1QixHQUNyQkcsTUFBTUY7T0FBSSxJQUNELElBQUYzRixPQUFPQSxJQUFJYSxLQUFLYixLQUFLOEIsR0FBSStELEtBQUs3RixLQUFLNkIsR0FBSThELEtBQUszRjs7T0FDaEQsSUFDTSxJQUFGQSxJQUFJYSxTQUFTYixRQUFRQSxLQUFLOEIsR0FBSStELEtBQUs3RixLQUFLNkIsR0FBSThELEtBQUszRjtTQUV2RDtNQUNDLElBQUYvQixJQUFJRSxTQUFVMEMsS0FBS2dCLFlBQVk4RDtNQUNuQyxJQUFXLElBQUYzRixPQUFPQSxJQUFJL0IsR0FBRytCLEtBQUs4QixHQUFJK0QsS0FBSzdGLEtBQUs2QixjQUFjOEQsS0FBSzNGO01BQzdELE1BQU9BLElBQUlhLEtBQUtiLEtBQUs4QixHQUFJK0QsS0FBSzdGOzs7SUFHbEM7R0FDRjtHVTVrQkEsU0FBUzhGLFNBQVc7R0U2TnBCLFNBQVNDLFdBQVduQixTQUNsQmhHLFlBQVlnRyxRQUNkO0dBQ0FtQiwyQkFBMkJEO0dBQzNCQyxtQ0FBbUNBO0dBQ25DQTthQUF5Q2xGO0tBQy9CLElBQUptRixNQUFNcEg7S0FDVkEsWUFBWTJHLGtCQUFrQjFFO0tBQzlCNEUsZ0JBQWdCTyxRQUFRcEgsY0FBY2lDO0lBSFI7R0FLaENrRjtlQUNFLE9BQU9QLHFCQUFxQjVHLFdBREE7R0FHOUJtSDthQUFzQy9HLFFBQU9pSCxLQUFJQyxLQUFJckY7S0FDMUMsSUFBTHNGLE9BQU92SDtLQUNYLEdBQUdJLFNBQVM2QixPQUFPc0YsS0FBTTtNQUN2QixJQUFJQyxVQUFVYixrQkFBa0J2RyxTQUFTNkIsTUFDckN3RixXQUFXekg7TUFDZkEsWUFBWXdIO01BQ1pYLGdCQUFnQlksYUFBYXpILGNBQWN1SDs7S0FFN0NWLGdCQUFnQlYsb0JBQW9Ca0IsTUFBTUMsS0FBS3RILFdBQVdJLFFBQVE2QjtLQUNsRTtJQVQyQjtHQVc3QmtGO2FBQXFDL0csUUFBT2lILEtBQUlDLEtBQUlyRjtLQUN6QyxJQUFMc0YsT0FBT3ZIO0tBQ1gsR0FBR0ksU0FBUzZCLE9BQU9zRixNQUNqQnRGLE1BQU1zRixPQUFPbkg7S0FFZixHQUFHNkIsSUFBSztNQUNHLElBQUx5RixPQUFPZixrQkFBa0IxRTtNQUM3QjRFLGdCQUFnQjdHLFdBQVdJLFFBQVFzSCxTQUFTekY7TUFDNUNvRixRQUFRWCwwQkFBMEJnQixPQUFPSjs7S0FFM0MsT0FBT3JGO0lBVm1CO0dBd0Q1QixTQUFTMEYsU0FBU3RELE1BQU11RCxNQUFLQztJQUMzQjdILFlBQVk0SDtJQUNaNUgsWUFBWXFFO0lBQ1pyRSxhQUFhNkg7R0FDZjtHQUVBRjs7S0FDRXBCLHFCQUFxQnZHO0lBRFM7R0FHaEMySDtlQUNFLEdBQUczSCxXQUFXLE9BQU9BLG9CQUNyQkEsa0JBRjBCO0dBSTVCMkg7YUFBcUN2SCxRQUFPaUgsS0FBSUMsS0FBSXJGO0tBQ2xELEdBQUdqQyxXQUFXLE9BQU9BLGdCQUFnQkksUUFBT2lILEtBQUlDLEtBQUlyRjtLQUNwRGpDO0lBRnlCO0dBSTNCMkg7YUFBb0N2SCxRQUFRaUgsS0FBS0MsS0FBS3JGO0tBQ3BELEdBQUdqQyxXQUFXLE9BQU9BLGVBQWVJLFFBQVFpSCxLQUFLQyxLQUFLckY7S0FDdERqQztJQUZ3QjtHQUkxQjJILHNDQUNFM0gsWUFBWWtCLFVBRGE7R0F0VjNCLFNBQVM0RyxhQUFjN0QsTUFBTS9CO0lBQzNCbEM7SUFDQUEsWUFBWWlFO0lBQ1pqRSxpQkFBaUJrQztHQUNuQjtHQUNBNEYscUNBQXFDekQsTUFDbkMsT0FBUXJFLFlBQVlxRSxLQURNO0dBRzVCeUQ7YUFBdUR6RDtLQUNyRCxJQUFJSSxPQUFPSixpQkFDUDBEO0tBQ0osSUFBVSxJQUFGM0csT0FBT0EsSUFBSXFELGlCQUFpQnJELElBQUk7TUFDdEMyRyxPQUFPdEQsS0FBS3JEO01BQ1osR0FBR3BCLGFBQWErSCxNQUFNO01BQ3RCL0gsYUFBYStILE9BQU9DOztJQU5zQjtHQVM5Q0Y7YUFBd0N6RCxNQUN0QyxPQUFPLFdBQVdBLFFBQU1BLE9BQU1BLFdBREQ7R0FHL0J5RDthQUF5Q3pEO0tBQ3ZDLEtBQUlyRSxhQUFhcUUsU0FBU3JFLGVBQWdCO01BQ2hDO09BQUorSDtTQUFNL0g7V0FBZTJCLHVCQUF1QjNCLFlBQVkyQix1QkFBdUIwQztNQUNuRixHQUFHMEQsVUFBVztPQUNaL0gsMEJBQTBCcUU7T0FDMUJyRSxhQUFhcUUsWUFBVThDLFdBQVdiLHFCQUFxQnlCOzs7SUFMN0I7R0FTaENEO2FBQXlDekQ7S0FFdkMsR0FBR0EsWUFBWTtLQUVBLElBQVg0RCxhQUFhakksV0FBV3FFO0tBQzVCLEdBQUdyRSxhQUFhaUksYUFBYTtLQUU3QmpJLFlBQVlxRTtLQUNaLE9BQU9yRSxhQUFhcUU7SUFSVTtHQVVoQ3lEO2FBQXlDekQsTUFDdkMsT0FBR3JFLFlBQVlxRSxXQUFVckUsWUFBWXFFLGNBRFA7R0FRaEN5RDthQUF3Q3pELE1BQUs2RCxNQUFNQztLQUNsQyxJQUFYckQsYUFBYXFELGNBQWM1QztLQUMvQixHQUFHdkYsWUFBWXFFO01BQU8sR0FDaEJTO09BQ0ZXO1NBQXFCWCxZQUFZQyxzQ0FBc0MvRSxRQUFRcUU7O09BRy9Fa0MscUJBQXFCbEM7S0FHZCxJQUFQK0QsU0FBUyxvQkFBb0IvRDtLQUNqQytELFNBQVVBLFVBQVVBO0tBQ3BCLEtBQUlwSSxZQUFZb0k7TUFBUSxHQUNsQnREO09BQ0ZXO1NBQXFCWCxZQUFZQyxzQ0FBc0MvRSxRQUFRb0k7O09BRy9FN0IscUJBQXFCNkI7S0FHekIsS0FBSXBJLFlBQVlvSTtNQUFRLEdBQ2xCdEQ7T0FDRlc7U0FBcUJYLFlBQVlDLHVDQUF1Qy9FLFFBQVFvSTs7T0FHaEY3QixxQkFBcUI2QjtLQUd6QnBJLDBCQUEwQkEsV0FBV3FFO0lBNUJSO0dBOEIvQnlEO2FBQXdDekQsTUFBTThEO0tBQzVDO01BQUlyRCxhQUFhcUQsY0FBYzVDO01BQzNCMEMsYUFBYzVELGtCQUFnQnJFLFdBQVdxRTtNQUN6Q2pGLFFBQVFpSixhQUFhSjtLQUN6QixLQUFJakksWUFBWXFFO01BQU8sR0FDakJTO09BQ0ZXO1NBQXFCWCxZQUFZQyxzQ0FBc0MvRSxRQUFRcUU7O09BRy9Fa0MscUJBQXFCbEM7S0FHekIsS0FBSXJFLFlBQVlxRTtNQUFPLEdBQ2pCUztPQUNGVztTQUFxQlgsWUFBWUMsdUNBQXVDL0UsUUFBUXFFOztPQUdoRmtDLHFCQUFxQmxDO0tBR3pCLFFBQVFuRixLQUFLYztNQUFjLEdBQ3RCZCxRQUFRRTtPQUFJLEdBQ1QwRjtRQUNGVztVQUFxQlgsWUFBWUMseUNBQXlDL0UsUUFBUXFFOztRQUVsRmtDLHFCQUFxQnZHLFFBQVFxRTtLQUluQyxPQUFPckUsYUFBYWlJO0lBN0JTO0dBK0IvQkg7YUFBMEN6RDtLQUN6QixJQUFYNEQsYUFBYzVELGtCQUFnQnJFLFdBQVdxRTtLQUM3QyxLQUFJckUsWUFBWXFFO01BQ2RrQyxxQkFBcUJsQztLQUV2QixLQUFJckUsWUFBWXFFLE9BQ2RrQyxxQkFBcUJsQztLQUV2QixJQUFJakYsUUFBUWlKLGFBQWFKLHlCQUNyQkssV0FDQTNDO0tBQ0osUUFBUXpHLEtBQUtjLGFBQWM7TUFDbkIsSUFBRnVJLElBQUlySixRQUFRRTtNQUNoQixHQUFHbUosT0FBTUQsS0FBS0MsTUFBTyxDQUFDRCxLQUFLQyxjQUFjNUMsT0FBTzRDOztLQUVsRCxPQUFPNUM7SUFmd0I7R0FpQmpDbUM7YUFBMEN6RCxNQUFNOEQ7S0FDOUM7TUFBSXJELGFBQWFxRCxjQUFjNUM7TUFFM0JJLElBQUkzRixhQUFhcUU7TUFDakJsQztNQUNBZjtLQUNKOztjQUNFLEdBQUllO2VBQUcsR0FDRDJDO2dCQUNGVztrQkFBcUJYO2tCQUFZQyx3Q0FBd0MvRSxRQUFRcUU7O2dCQUdqRmtDLHFCQUFxQmxDO2NBR3pCLEdBQUdqRCxLQUFLdUUsVUFBVSxPQUFPUDtjQUNmLElBQU5vRCxRQUFRN0MsRUFBRXZFO2NBQ2RBO2NBQ0EsY0FBZW9IO2FBWkk7OztjQWVqQixHQUFJckc7ZUFBRyxHQUNEMkM7Z0JBQ0ZXO2tCQUFxQlg7a0JBQVlDLHdDQUF3Qy9FLFFBQVFxRTs7Z0JBR2pGa0MscUJBQXFCbEM7Y0FHekJsQztjQUNBd0Q7YUFWWTtJQXBCZTtHQWtDakNtQzthQUF5Q3pEO0tBQ3ZDLEdBQUdBLFlBQWE7S0FDRCxJQUFYNEQsYUFBYWpJLFdBQVdxRTtLQUM1QixPQUFPckUsYUFBYWlJO0lBSFU7R0FLaENIO2FBQXlDekQ7S0FDaEMsSUFBSG9FLEtBQUt6SSxhQUFhcUU7S0FDdEIsT0FBT3JFLGFBQWFxRTtLQUNwQixPQUFPb0U7SUFIdUI7R0FLaENYO2FBQXVDekQsTUFBTW5DO0tBQzNDLElBQUkwRjtLQUNKLEdBQUcxRixZQUFZQTtNQUNicUU7UUFBcUJ2RyxRQUFRcUU7O0tBQy9CLEdBQUduQyxVQUFVQTtNQUNYcUU7UUFBcUJ2RyxRQUFRcUU7O0tBQy9CckUsWUFBWXFFO0tBQ1osR0FBSXJFLGFBQWFxRSxNQUFPO01BQ3RCLEdBQUlyRSxZQUFZcUU7T0FBT2tDLHFCQUFxQnZHLFFBQVFxRTtNQUNwRCxHQUFJbkMsWUFBWUE7T0FBUXFFLHFCQUFxQnZHLFFBQVFxRTtNQUNyRHVELE9BQU81SCxhQUFhcUU7TUFDcEIsR0FBR25DLFlBQVkwRjs7YUFDTjFGLFNBQVU7TUFDbkJsQywwQkFBMEJxRTtNQUMxQnJFLGFBQWFxRSxZQUFZOEMsV0FBV1I7TUFDcENpQixPQUFPNUgsYUFBYXFFOzs7TUFFcEJtQyx3QkFBeUJ4RyxRQUFRcUU7S0FFbkMsV0FBV3NELFNBQVMzSCxRQUFRcUUsT0FBT3VELE1BQU0xRjtJQW5CYjtHQXNCOUI0RjthQUF1Q3pELE1BQU1uQztLQUMzQyxJQUFJMEY7S0FDSixHQUFHMUYsWUFBWUE7TUFDYnFFO1FBQXFCdkcsUUFBUXFFOztLQUMvQixHQUFHbkMsVUFBVUE7TUFDWHFFO1FBQXFCdkcsUUFBUXFFOztLQUMvQnJFLFlBQVlxRTtLQUNaLEdBQUlyRSxhQUFhcUUsTUFBTztNQUN0QixHQUFJckUsWUFBWXFFO09BQU9rQyxxQkFBcUJ2RyxRQUFRcUU7TUFDcEQsR0FBSW5DLFlBQVlBO09BQVFxRSxxQkFBcUJ2RyxRQUFRcUU7TUFDckR1RCxPQUFPNUgsYUFBYXFFO01BQ3BCLEdBQUduQyxZQUFZMEY7O2FBQ04xRixTQUFVO01BQ25CbEMsMEJBQTBCcUU7TUFDMUJyRSxhQUFhcUUsWUFBWThDLFdBQVdSO01BQ3BDaUIsT0FBTzVILGFBQWFxRTs7O01BRXBCbUMsd0JBQXlCeEcsUUFBUXFFO0tBRW5DLFdBQVdzRCxTQUFTM0gsUUFBUXFFLE9BQU91RCxNQUFNMUY7SUFuQmI7R0FzQjlCNEY7YUFBMkN6RCxNQUFLMkI7S0FDOUMsSUFBSTRCO0tBQ0osR0FBRzVILGFBQWFxRTtNQUFPa0MscUJBQXFCdkcsUUFBUXFFO0tBQ3BELEdBQUc0QixpQkFBaUJELFVBQ2xCNEIsV0FBV1QsV0FBV25CO0tBQ3hCLEdBQUdFLGtCQUFrQkY7TUFDbkI0QixXQUFXVCxXQUFXYixxQkFBcUJOO2FBQ3JDQSxtQkFBbUIwQztNQUN6QmQsV0FBV1QsV0FBV2hCLG9CQUFvQkg7b0JBQzdCQTtNQUNiNEIsV0FBV1QsV0FBV2Qsc0JBQXNCTDthQUN0Q0EsaUJBQWtCO01BQ2Q7T0FBTjJDO1NBQVFyQyxxQkFBcUJ6Qix3QkFBd0JtQjtNQUN6RDRCLFdBQVdULFdBQVd3Qjs7S0FFeEIsR0FBR2YsS0FBSztNQUNONUgsMEJBQTBCcUU7TUFDMUJyRSxhQUFhcUUsUUFBUXVEOzs7TUFFbEJyQjtRQUFxQnZHLFFBQVFxRTtJQW5CSDtHQXNCakN5RCxxQ0FBcUNBO0daZ1pyQyxTQUFTYyxzQkFBc0J6SixHQUM3QixPQUFPQSxTQUNUO0dBZkEsU0FBUzBKLHVCQUF3QjFKLEdBQUdpQyxHQUNsQyxPQUFPakMsYUFBYWlDLEdBQ3RCO0dBbExBLFNBQVMwSCwyQkFBNEIzSjtJQUNuQyxJQUFJRSxJQUFJdUosc0JBQXNCekosSUFDMUJ3RyxRQUFRK0MsTUFBTXJKLElBQ2QrQjtJQUNKLE1BQU9BLElBQUkvQixHQUFHK0IsS0FBS3VFLEVBQUV2RSxLQUFLeUgsdUJBQXVCMUosR0FBRWlDO0lBQ25ELE9BQU91RTtHQUNUO0dBNVFBLFNBQVNvRDtJQUNQakg7R0FDRjtHQXpCQSxTQUFTa0gsc0JBQXVCN0osR0FBR2lDLEdBQUdlO0lBRXBDQTtJQUNBLEdBQUloRCxTQUFzQjtLQUN4QixHQUFJaUMsS0FBS2pDLFdBQVk7TUFDbkJBLE9BQU9rRSxvQkFBcUJsQjtNQUM1QixHQUFJZixTQUFTakMsS0FBS0E7TUFDbEI7O0tBRUZzSCw0QkFBNkJ0SDs7SUFFL0JBLElBQUlpQyxLQUFLZTtJQUNUO0dBQ0Y7R0FpTUEsU0FBUzhHLGVBQWdCOUosR0FBR2lDLEdBQUdlO0lBQzdCLEdBQUlmLFdBQVdqQyxLQUFLNEo7SUFDcEIsT0FBT0Msc0JBQXVCN0osR0FBR2lDLEdBQUdlO0dBQ3RDO0dTckpBLFNBQVMrRyxTQUFTQyxJQUFJdEI7SUFDcEI3SCxVQUFVb0o7SUFDVnBKLFVBQVVtSjtJQUNWbkosYUFBYTZIO0dBQ2Y7R0FDQXFCLHlCQUF5QmhDO0dBQ3pCZ0MsaUNBQWlDQTtHQUVqQ0E7YUFBdUNqSDtLQUNyQyxJQUNFakMsc0JBQXNCQSxTQUFRaUM7V0FDdkJvSCxLQUNQOUMscUJBQXFCOEM7SUFKSztHQU85Qkg7O0tBQ0UsSUFDRSxPQUFPbEosa0JBQWtCQTtXQUNsQnFKLEtBQ1A5QyxxQkFBcUI4QztJQUpHO0dBTzVCSDthQUFvQzlJLFFBQU9pSCxLQUFJaUMsWUFBV3JIO0tBQ3hEO01BQ0UsR0FBR2pDO09BQ0RBLGtCQUFrQkEsU0FBU3FILEtBQUtpQyxZQUFZckg7O09BRTVDakMsa0JBQWtCQSxTQUFTcUgsS0FBS2lDLFlBQVlySCxLQUFLN0I7O1dBQzVDaUosS0FDUDlDLHFCQUFxQjhDO0tBRXZCO0lBVHlCO0dBVzNCSDthQUFtQzlJLFFBQU91RixHQUFFMkQsWUFBV3JIO0tBQ3JEO01BQ0UsR0FBR2pDO09BQ1EsSUFBTHVKLE9BQU92SixpQkFBaUJBLFNBQVMyRixHQUFHMkQsWUFBWXJIOztPQUUzQyxJQUFMc0gsT0FBT3ZKLGlCQUFpQkEsU0FBUzJGLEdBQUcyRCxZQUFZckgsS0FBSzdCO01BQzNELE9BQU9tSjs7V0FDQUYsS0FDUDlDLHFCQUFxQjhDO0lBUkM7R0FXMUJIOztLQUNFLElBQ0VsSixrQkFBa0JBLFVBQ2xCO1dBQ09xSixLQUNQOUMscUJBQXFCOEM7SUFMRTtHQWhRM0IsU0FBU0csYUFBYXZGLE1BQ3BCakUsVUFBVW9KLGVBQ1ZwSixZQUFZaUUsS0FDZDtHQUNBdUYscUNBQXFDbkYsTUFDbkMsT0FBUXJFLFlBQVlxRSxLQURNO0dBRzVCbUY7YUFBeUNuRjtLQUN2QyxJQUNFLE9BQU9yRSxtQkFBbUJBLFFBQVFxRTtXQUMzQmdGLEtBQ1A7SUFKNEI7R0FPaENHO2FBQXlDbkY7S0FDdkMsSUFDRSxPQUFPckUsaUJBQWlCQSxRQUFRcUU7V0FDekJnRixLQUNQOUMscUJBQXFCOEM7SUFKTztHQU9oQ0c7YUFBd0NuRixNQUFNNkQsTUFBTUM7S0FDbEQsSUFDRW5JLGtCQUFrQkEsUUFBUXFFLGNBQVk2RCxRQUN0QztXQUNPbUIsS0FDUHJKLHdCQUF3QnFKLEtBQUtsQjtJQUxGO0dBUS9CcUI7YUFBd0NuRixNQUFNOEQ7S0FDNUMsSUFDRW5JLGtCQUFrQkEsUUFBUXFFLFFBQzFCO1dBQ09nRixLQUNQckosd0JBQXdCcUosS0FBS2xCO0lBTEY7R0FRL0JxQjthQUEwQ25GLE1BQU04RDtLQUM5QyxJQUNFLE9BQU9uSSxvQkFBb0JBLFFBQVFxRTtXQUM1QmdGLEtBQ1BySix3QkFBd0JxSixLQUFLbEI7SUFKQTtHQU9qQ3FCO2FBQXlDbkY7S0FDdkMsSUFDRSxPQUFPckUsaUJBQWlCQSxRQUFRcUU7V0FDekJnRixLQUNQOUMscUJBQXFCOEM7SUFKTztHQU9oQ0c7YUFBeUNuRixNQUFNOEQ7S0FDN0M7TUFDUSxJQUFGbkYsSUFBSWhELG1CQUFtQkEsUUFBUXFFO01BQ25DckUsbUJBQW1CQSxRQUFRcUU7TUFDM0IsT0FBT3JCOztXQUNBcUcsS0FDUHJKLHdCQUF3QnFKLEtBQUtsQjtJQU5EO0dBU2hDcUI7YUFBdUNuRixNQUFNbkMsR0FBR2lHO0tBQzlDLElBQUlzQixTQUFTTCxzQkFDVHJCO0tBQ0osUUFBUTJCLE9BQU94SDtNQUFFLE9BQ1J3SDs7U0FDVTNCLE9BQU8wQixpQkFBaUI7O1NBQ3hCMUIsT0FBTzBCLGlCQUFpQjs7U0FFdkMxQixPQUFPMEIsa0JBQWtCQSxpQkFDekI7O1NBQ2dCMUIsT0FBTzBCLGdCQUFtQjs7U0FDMUIxQixPQUFPMEIsZ0JBQW1COztTQUMxQjFCLE9BQU8wQixlQUFtQjs7U0FDMUIxQixPQUFPMEIsaUJBQW1COztTQUMxQjFCLE9BQU8wQixlQUFtQjs7U0FDMUIxQixPQUFPMEIsbUJBQW1COztLQUc5QztNQUNFO09BQUlOLEtBQUtuSixpQkFBaUJBLFFBQVFxRSxPQUFPMEQ7T0FDckM0QjtTQUFvQjNKLGtCQUFrQkEsUUFBUXFFO01BQ2xEbkMsc0JBQXNCeUg7TUFDdEIsV0FBV1QsU0FBU0MsSUFBSWpIOztXQUNqQm1ILEtBQ1BySix3QkFBd0JxSixLQUFLbEI7SUF4Qkg7R0E0QjlCcUI7YUFBeUNJLEdBQUcxSyxHQUFHaUo7S0FDN0MsSUFDRW5JLG1CQUFtQkEsUUFBUTRKLElBQUk1SixRQUFRZDtXQUNoQ21LLEtBQ1BySix3QkFBd0JxSixLQUFLbEI7SUFKRDtHQU9oQ3FCO2FBQXVDbkYsTUFBTThEO0tBQzNDO01BQ2UsSUFBVDBCLFdBQVc3SixpQkFBaUJBLFFBQVFxRTtNQUN4QyxPQUFPckUsbUJBQW1CNko7O1dBQ25CUixLQUNQckosd0JBQXdCcUosS0FBS2xCO0lBTEg7R0FROUJxQjthQUF3Q25GLE1BQU04RDtLQUM1QztNQUNlLElBQVQwQixXQUFXN0osa0JBQWtCQSxRQUFRcUU7TUFDekMsT0FBT3JFLG1CQUFtQjZKOztXQUNuQlIsS0FDUHJKLHdCQUF3QnFKLEtBQUtsQjtJQUxGO0dBUS9CcUI7YUFBMENNLFFBQVFDLFFBQVFyRyxNQUFNeUU7S0FDOUQ7TUFDRW5JO1FBQW9CQSxRQUFRK0osU0FBUy9KLFFBQVEwRCxPQUFPb0c7TUFDcEQ7O1dBQ09ULEtBQ1BySix3QkFBd0JxSixLQUFLbEI7SUFMQTtHQVFqQ3FCO2FBQTJDbkYsTUFBTThEO0tBQy9DO01BQ1csSUFBTDZCLE9BQU9oSyxxQkFBcUJBLFFBQVFxRTtNQUN4QyxPQUFPUSx3QkFBd0JtRjs7V0FDeEJYLEtBQ1BySix3QkFBd0JxSixLQUFLbEI7SUFMQztHQVFsQ3FCO2FBQTBDbkYsTUFBTThEO0tBQzlDLElBQ0UsT0FBT25JLG9CQUFvQkEsUUFBUXFFO1dBQzVCZ0YsS0FDUHJKLHdCQUF3QnFKLEtBQUtsQjtJQUpBO0dBT2pDcUI7YUFBcURILEtBQUtsQjtLQUN6QyxJQUFYckQsYUFBYVM7S0FDakIsR0FBSTRDLGNBQWNyRCxXQUFZO01BQ25CO09BQUxPLE9BQU9OLG1CQUFtQnNFLFVBQVVBLGFBQWFBLFVBQVVBO01BQy9ENUQscUJBQXFCWCxZQUFZTzs7O01BRWpDa0IscUJBQXFCOEM7SUFObUI7R0FTNUNHO2FBQWdESztLQVc5QyxJQUFJSTtLQUNKLEdBQUlKO01BQ0ZJO2FBQ1NKO01BQ1RJO2FBQ1NKO01BQ1RJO2FBQ1NKO01BQ1RJO2FBQ1NKO01BQ1RJO2FBQ1NKO01BQ1RJO2FBQ1NKLHFCQUNUSTtLQWtCRjthQUVFSjthQUNBQTthQUNBSTthQUNBSjthQUNBQTthQUNBQTthQUNBQTthQUNBQTthQUNBQTthQUNBQTthQUNBQTthQUNBQTtJQXhEbUM7R0E0RHZDTCxxQ0FBcUNBO0dDM01yQyxTQUFTVSxjQUFjeEc7SUFDZixJQUFGMUUsSUFBSW1GLGlCQUFpQlQ7SUFDekIsS0FBSzFFLEdBQUc7SUFDUixPQUFPQTtHQUFVO0dURG5CLFNBQVNtTCxjQUFldEk7SUFDdEIsS0FBSW5DO0tBQ0ZBLGlDQUE4QmlDO0lBQ2hDQyx1QkFBdUJsQywwQkFBMEJtQztHQUNuRDtHU0NBO0lBQUl1STtNQUFZRixjQUFjNUY7U0FBcUI2RjtJQTZEL0NFO0dBQ0osR0FBSTlHO0lBQ0Y4RzthQUE0QkQsdUJBQXFCWixhQUFhWTs7SUFFOURDO2FBQTRCRCx1QkFBcUJ0QyxhQUFhc0M7R0FFaEVDO29DQUFtRHZDO0dBZW5ELFNBQVN3QyxrQkFBa0JqRztJQUN6QjtLQUFJWCxPQUFPYSxlQUFlRjtLQUN0QkEsT0FBT1g7S0FDUHVFLGFBQWE3RCxvQkFBb0JDO0tBQ2pDMEQ7SUFDSixJQUFVLElBQUYzRyxPQUFPQSxJQUFJaUoseUJBQXlCakosSUFBSztLQUN6QyxJQUFGbUgsSUFBSThCLGlCQUFpQmpKO0tBQ3pCO09BQUc2RyxrQkFBa0JNO2FBQ2JSLE9BQU9BLGtCQUFrQlE7TUFDL0JSO2NBQVlRO2dCQUFjQTtjQUFjbEUsZUFBZWtFLGVBQWNsRTs7SUFFekUsS0FBSzBELE9BQU94RSxvQkFBcUI7S0FDdEIsSUFBTFUsT0FBT2lHLGNBQWM3RjtLQUN6QixHQUFJSixRQUFRQSw0QkFBNEI7TUFDaEMsSUFBRnNFLFdBQVV0RSxrQkFBZ0J1RixhQUFhdkY7TUFDM0NvRyxzQkFBc0I5QjtNQUN0QlI7Y0FBWVE7Z0JBQWNBO2NBQWNsRSxlQUFla0UsZUFBY2xFOzs7SUFHekUsR0FBSTBELEtBQU0sT0FBT0E7SUFDakJ4Qiw4Q0FBOEMwQjtHQUNoRDtHQXNGQSxTQUFTc0Msc0JBQXNCbEc7SUFDN0IsSUFBSUosT0FBT3FHLGtCQUFrQmpHLE9BQ3pCc0IsSUFBSTFCLG1CQUFtQkE7SUFDM0IsT0FBTzBCO0dBQ1Q7R1QzS0EsU0FBUzZFO0lBQ1BoTCxvQkFBb0JFO0dBQTZCO0dFNkRuRCxTQUFTK0ssZ0JBQWlCcEc7SUFDbEIsSUFBRmpGLElBQUkyQixnQkFBZ0J1Qyx3QkFBd0JlO0lBQ2hELEdBQUdqRixNQUFNOEIsV0FDUHNKO0lBQ0YsT0FBTzNGLHdCQUF3QnpGO0dBQ2pDO0dVdU1BLFNBQVNzTCxnQkFBZ0JDLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DO0lBQ3JELEdBQUdBLFdBQVksQ0FDYkYsVUFBVUMsV0FDVjtJQUVPLElBQUxFO0lBQ0osSUFBVSxJQUFGN0osSUFBSXlKLFVBQVF6SixRQUFRQSxJQUFLO0tBQ3pCLElBQUZ1RSxJQUFJZ0YsVUFBVUMsT0FBS3hKO0tBQ3ZCdUosVUFBVUMsT0FBS3hKLEtBQU11RSxNQUFNcUYsUUFBU0M7S0FDcENBLE9BQU90RixVQUFXcUY7O0lBRXBCRixVQUFVQyxRQUFRRTtJQUNsQjtHQUNGO0dDclVBLElBQUlDO0dBTUosU0FBU0M7SUFDUCxHQUFHRCxlQUFlLE9BQ1RBO0lBRVQsTUFBTTFKOzthQUErQitEO2FBQThDNUQ7R0FDckY7R0EyTEEsU0FBU3lKLG9CQUFvQnBNLEdBQUV3QjtJQUM3QjtLQUFJckIsSUFBSWdNO0tBQ0pFLEtBQUdsTSx1QkFBdUJILEdBQUVHLFdBQVdxQjtLQUN2Q29FLElBQUl5RztJQUNSLFFBQVF6RyxlQUFlQSxhQUFhQTtHQUN0QztHQzdNQSxTQUFTMEcsbUNBQ1AsU0FDRjtHQ3NoQkEsSUFBSUM7R0FDSixVQUFXdEs7SUFDVHNLO0tBQWdCO09BRWQsU0FBU0MsWUFBWUMsTUFBUXpMLFlBQVl5TCxLQUFNO09BQy9DRDtpQkFBcUNySTtTQUNuQyxJQUFXLElBQUYvQixPQUFPQSxJQUFJcEIsa0JBQWtCb0I7VUFBSyxHQUNyQ3BCLFVBQVVvQixPQUFPK0IsR0FBRyxPQUFPL0I7UUFGUDtPQUs1Qm9LLHVDQUE0QjtPQUk1QjtRQUNFeEw7UUFBZ0JBLGtCQUFrQndMLFlBQVl4TCxXQUR6QztNQVpPOzs7SUFrQmhCdUw7Z0JBQ0V2TCxnQkFBZ0JBLGtCQUFrQmlCLHFCQURwQjtHQUtsQnNLO2FBQXlDcEksR0FDdkNuRCxnQkFBZ0JtRCxHQUFHbkQsbUJBQ25CQSxlQUFlbUQsR0FGZTtHQUtoQ29JO2FBQTBDcEk7S0FDbEMsSUFBRi9CLElBQUlwQixnQkFBZ0JtRDtLQUN4QixPQUFRL0IsTUFBTUYsWUFDVkEsWUFBWWxCLG1CQUFtQm9CO0lBSEo7R052VmpDLFNBQVNzSyxnQkFBZ0I5QixHQUFFMUs7SUFDekIsSUFBSXlNLFNBQVNyQixrQkFBa0JWLElBQzNCZ0MsU0FBU3RCLGtCQUFrQnBMO0lBQy9CLEdBQUd5TSxpQkFBaUJDO0tBQ2xCekI7SUFDRixLQUFJd0I7S0FDRnhCO0lBQ0Z3QixxQkFBcUJBLGFBQWFDO0dBQ3BDO0dINEJBLFNBQVNDLGlCQUFrQjdNLEdBQUssT0FBT08sV0FBV1AsR0FBSTtHSm9DNUIsSUFBdEI4TTtHQUlKLFNBQVNDLGdDQUFpQ0MsTUFDeENGLHdCQUF3QkUsTUFDeEI7R0FDRjtHSXhJQSxTQUFTQyxvQkFBcUJqTjtJQUM1QixHQUFJa04sU0FBVWxOLEdBQUk7S0FDaEIsR0FBSU8sU0FBU1AsK0JBQStCO0tBQzVDLEdBQUlBLFFBQVE7S0FDWjs7SUFFRixPQUFPbU4sTUFBTW5OO0dBQ2Y7R1U1RnFCLElBQWpCb04sdUJBQXVCMUQ7R0F3SDNCLFNBQVMyRCxZQUFhQztJQUNwQixHQUFHQSxlQUFlbEgsS0FBSztLQUNyQixJQUFJbUgsTUFBTUQsZUFDTkUsUUFBUTFELDJCQUEyQnlEO0tBQ3ZDLEdBQUlDO01BQ0ZGLGNBQWNsSDtTQUVYO01BQ0gsR0FBR2tILHFCQUFxQkEsa0JBQWtCRSxhQUFhO09BQy9DLElBQUZ4SixRQUFRb0QsV0FBV2tHLGtCQUFrQkU7T0FDekN4SixNQUFNc0o7T0FDTkEsY0FBY3RKOztNQUVoQnNKLGdCQUFnQkUsT0FBTUY7TUFDdEJBLGVBQWVFO01BQ2ZGLG1CQUFtQkU7OztRQUVoQjtLQUNLO01BQU5DO1FBQVFIO1VBQWVBO1VBQWFBO1VBQWFBO1VBQWlCQSxxQkFBcUJBO0tBQzNGQSxlQUFlRztLQUNmSCxtQkFBbUJHOztHQUV2QjtHaEJ6S0EsU0FBU0M7SUFDUDVLO0dBQ0Y7R2dCMFVBLFNBQVM2Syx3QkFBd0JDO0lBQy9CLElBQUlOLE9BQU9GLGlCQUFpQlEsU0FDeEJsSyxJQUFJNEo7SUFDUjtLQUFHLEdBQ0U1SixLQUFLNEosZ0JBQWlCO01BQ3ZCLEdBQUdBLHFCQUFzQjtPQUN2QkEsZ0JBQWdCQSxxQkFBcUJBO09BQ3JDNUosS0FBSzRKO09BQ0xBLG1CQUFtQkE7T0FDbkJBOztNQUVGLEdBQUdBLG1CQUFtQkEsb0JBQW9CLFNBQy9CQTtNQUVFLElBQVRPLFdBQVdQO01BQ2ZELFlBQWFDO01BQ2IsR0FBR08sWUFBWVAsaUJBQWlCLFNBQ3JCQTs7O01BR05BLFlBQVk1SjtJQUNyQixPQUFRQSxJQUFJNEo7R0FDZDtHQ3RhQSxTQUFTUSxjQUFjQztJQUVyQixVQUFVOUwsNkJBQTZCQTtJQUN2QztHQUNGO0dDSlc7SUFBUCtMO01BQVMsU0FBVzlMO1FBQ3BCO1FBRUE7U0FBSStMO1NBQ0FDO1NBQ0FDO1NBQ0FDLGNBQWNDLGFBQWFGO1NBQzNCRztTQUVBQyxTQUFTQztTQUVUQyw4QkFBOEJGO1FBRWxDLFNBQVNHLFFBQVF2SyxHQUFHd0ssT0FBT0MsVUFBVUM7U0FDakMsVUFBVzFLLG1CQUFtQixPQUFPdUs7U0FDckMsVUFBV0M7VUFBdUIsU0FBUUEsa0JBQWlCQztvQkFBV0UsV0FBVzNLO29CQUFLNEssVUFBVTVLLEdBQUd3SyxPQUFPQyxVQUFVQztTQUNwSCxPQUFPQyxXQUFXM0s7UUFDdEI7UUFFQSxTQUFTNkssV0FBV0MsT0FBTzlOO1NBQ3ZCSCxhQUFhaU87U0FDYmpPLFlBQVlHO1NBQ1pIO1NBQ0FBO1FBQ0o7UUFDQWdPLHVCQUF1QkUsY0FBY1I7UUFFckMsU0FBU1MsYUFBYUY7U0FDbEJqTyxhQUFhaU87U0FDYmpPLFlBQVlpTztTQUNaak87U0FDQUE7UUFDSjtRQUNBbU8seUJBQXlCRCxjQUFjUjtRQUV2QyxTQUFTVSxhQUFhSDtTQUNsQmpPLGFBQWFpTztTQUNiak87UUFDSjtRQUNBb08seUJBQXlCRixjQUFjUjtRQUV2QyxTQUFTVyxVQUFVblAsR0FDZixTQUFRaU8sVUFBVWpPLEtBQUtBLElBQUlpTyxRQUMvQjtRQUVBLFNBQVNFLGFBQWFuTztTQUNsQixHQUFJQSxTQUNBLFFBQVFBO1NBQ1osR0FBSUEsVUFDQSxRQUFRQSxTQUFTSyxXQUFXTDtTQUNoQyxRQUFRQSxTQUFTSyxXQUFXTCxnQkFBZ0JLLFdBQVdMO1FBQzNEO1FBRUEsU0FBU29QLGFBQWFDO1NBQ2xCQyxLQUFLRDtTQUNNLElBQVB4SSxTQUFTd0k7U0FDYixHQUFJeEksY0FBYzBJLFdBQVdGLEtBQUtuQjtVQUFrQixPQUN4Q3JIOzthQUNJOzthQUNBLE9BQU93STs7YUFDUCxPQUFPQSxTQUFTQSxTQUFTdEI7cUJBQ3hCLE9BQU9zQixVQUFVQSxTQUFTQSxTQUFTdEIsUUFBUUE7O1NBRzVELE9BQU9zQjtRQUNYO1FBRUEsU0FBU0MsS0FBS3JMO1NBQ0osSUFBRi9CLElBQUkrQjtTQUNSLE1BQU9BLElBQUkvQixVQUFTO1NBQ3BCK0IsV0FBVy9CO1FBQ2Y7UUFFQSxTQUFTc04sWUFBWTNJO1NBQ2pCLElBQUkvRyxRQUFRMEosTUFBTTNDLFNBQ2QzRTtTQUNKLFFBQVNBLElBQUkyRSxRQUNUL0csRUFBRW9DO1NBRU4sT0FBT3BDO1FBQ1g7UUFFQSxTQUFTMlAsU0FBU3pQO1NBQ2QsR0FBSUEsT0FBTyxPQUFPSyxXQUFXTDtTQUM3QixPQUFPSyxVQUFVTDtRQUNyQjtRQUVBLFNBQVMwUCxJQUFJakosR0FBRzNDO1NBQ1o7VUFBSTZMLE1BQU1sSjtVQUNObUosTUFBTTlMO1VBQ041RCxRQUFRc0osTUFBTW1HO1VBQ2RFO1VBQ0FDLE9BQU8vQjtVQUNQZ0M7VUFBSzdOO1NBQ1QsSUFBS0EsT0FBT0EsSUFBSTBOLEtBQUsxTixJQUFLO1VBQ3RCNk4sTUFBTXRKLEVBQUV2RSxLQUFLNEIsRUFBRTVCLEtBQUsyTjtVQUNwQkEsUUFBUUUsT0FBT0Q7VUFDZjVQLEVBQUVnQyxLQUFLNk4sTUFBTUYsUUFBUUM7O1NBRXpCLE1BQU81TixJQUFJeU4sSUFBSztVQUNaSSxNQUFNdEosRUFBRXZFLEtBQUsyTjtVQUNiQSxRQUFRRSxRQUFRRDtVQUNoQjVQLEVBQUVnQyxPQUFPNk4sTUFBTUYsUUFBUUM7O1NBRTNCLEdBQUlELFdBQVczUCxPQUFPMlA7U0FDdEIsT0FBTzNQO1FBQ1g7UUFFQSxTQUFTOFAsT0FBT3ZKLEdBQUczQztTQUNmLEdBQUkyQyxZQUFZM0MsVUFBVSxPQUFPNEwsSUFBSWpKLEdBQUczQztTQUN4QyxPQUFPNEwsSUFBSTVMLEdBQUcyQztRQUNsQjtRQUVBLFNBQVN3SixTQUFTeEosR0FBR29KO1NBQ2pCLElBQUkxUCxJQUFJc0csVUFDSnZHLFFBQVFzSixNQUFNckosSUFDZDJQLE9BQU8vQixNQUNQZ0MsS0FBSzdOO1NBQ1QsSUFBS0EsT0FBT0EsSUFBSS9CLEdBQUcrQixJQUFLO1VBQ3BCNk4sTUFBTXRKLEVBQUV2RSxLQUFLNE4sT0FBT0Q7VUFDcEJBLFFBQVF4UCxXQUFXMFAsTUFBTUQ7VUFDekI1UCxFQUFFZ0MsS0FBSzZOLE1BQU1GLFFBQVFDO1VBQ3JCRDs7U0FFSixNQUFPQSxVQUFXO1VBQ2QzUCxFQUFFZ0MsT0FBTzJOLFFBQVFDO1VBQ2pCRCxRQUFReFAsV0FBV3dQLFFBQVFDOztTQUUvQixPQUFPNVA7UUFDWDtRQUVBNE87a0JBQXFDN0s7VUFDM0IsSUFBRmpFLElBQUk0TyxXQUFXM0s7VUFDbkIsR0FBSW5ELGNBQWNkLFFBQVEsT0FDZmMsY0FBY2Q7VUFFekIsSUFBSXlHLElBQUkzRixZQUFZZ0QsSUFBSTlEO1VBQ3hCLEdBQUlBO1dBQVcsV0FDQThPLFdBQVdtQixTQUFTeEosR0FBR3BHLFNBQVN5RCxLQUFLaEQ7VUFFcEQsV0FBV2dPLFdBQVdrQixPQUFPdkosR0FBRzNDLElBQUloRDtTQVRiO1FBVzNCZ08sNEJBQTRCQTtRQUU1Qkc7a0JBQXVDaEw7VUFDbkMsSUFBSWpFLElBQUk0TyxXQUFXM0ssSUFDZndDLElBQUkzRjtVQUNSLEdBQUkyRixVQUFVekcsUUFBUSxPQUNYYyxjQUFjZDtVQUVuQixJQUFGOEQsSUFBSTlEO1VBQ1IsR0FBSUEsVUFBVztXQUNYLEdBQUltUCxVQUFVMUksSUFBSTNDLElBQUksV0FBV21MLGFBQWF4SSxJQUFJM0M7V0FDbERBLElBQUlxSyxhQUFhOU4sU0FBU3lEOztVQUU5QixXQUFXZ0wsV0FBV21CLFNBQVNuTSxHQUFHekQsU0FBU29HLEtBQUtBO1NBWHZCO1FBYTdCd0ksOEJBQThCQTtRQUU5QkM7a0JBQXVDakw7VUFDbkMsV0FBV2lMLGFBQWFwTyxhQUFhOE4sV0FBVzNLO1NBRHZCO1FBRzdCaUwsOEJBQThCQTtRQUU5QixTQUFTZ0IsU0FBU3pKLEdBQUczQztTQUNqQjtVQUFJcU0sTUFBTTFKO1VBQ04ySixNQUFNdE07VUFDTjVELFFBQVFzSixNQUFNMkc7VUFDZEU7VUFDQVAsT0FBTy9CO1VBQ1A3TDtVQUFHb087U0FDUCxJQUFLcE8sT0FBT0EsSUFBSWtPLEtBQUtsTyxJQUFLO1VBQ3RCb08sYUFBYTdKLEVBQUV2RSxLQUFLbU8sU0FBU3ZNLEVBQUU1QjtVQUMvQixHQUFJb08sZUFBZ0IsQ0FDaEJBLGNBQWNSLE1BQ2RPLGtCQUNHQTtVQUNQblEsRUFBRWdDLEtBQUtvTzs7U0FFWCxJQUFLcE8sSUFBSWtPLEtBQUtsTyxJQUFJaU8sS0FBS2pPLElBQUs7VUFDeEJvTyxhQUFhN0osRUFBRXZFLEtBQUttTztVQUNwQixHQUFJQztXQUFnQkEsY0FBY1I7Y0FDN0IsQ0FDRDVQLEVBQUVnQyxPQUFPb08sWUFDVDtVQUVKcFEsRUFBRWdDLEtBQUtvTzs7U0FFWCxNQUFPcE8sSUFBSWlPLEtBQUtqTyxLQUNaaEMsRUFBRWdDLEtBQUt1RSxFQUFFdkU7U0FFYm9OLEtBQUtwUDtTQUNMLE9BQU9BO1FBQ1g7UUFFQSxTQUFTcVEsWUFBWTlKLEdBQUczQyxHQUFHN0M7U0FDdkIsSUFBSThOO1NBQ0osR0FBSVEsV0FBVzlJLEdBQUczQztVQUNkaUwsUUFBUW1CLFNBQVN6SixHQUFHM0M7YUFDakIsQ0FDSGlMLFFBQVFtQixTQUFTcE0sR0FBRzJDLElBQ3BCeEYsU0FBUUE7U0FFWjhOLFFBQVFLLGFBQWFMO1NBQ3JCLFVBQVdBLG1CQUFvQjtVQUMzQixHQUFJOU4sTUFBTThOLFVBQVNBO1VBQ25CLFdBQVdFLGFBQWFGOztTQUU1QixXQUFXRCxXQUFXQyxPQUFPOU47UUFDakM7UUFFQSxTQUFTdVAsY0FBYy9KLEdBQUczQyxHQUFHN0M7U0FDekI7VUFBSWQsSUFBSXNHO1VBQ0p2RyxRQUFRc0osTUFBTXJKO1VBQ2QwUCxVQUFTL0w7VUFDVGdNLE9BQU8vQjtVQUNQN0w7VUFBR29PO1NBQ1AsSUFBS3BPLE9BQU9BLElBQUkvQixHQUFHK0IsSUFBSztVQUNwQm9PLGFBQWE3SixFQUFFdkUsS0FBSzJOO1VBQ3BCQSxRQUFReFAsV0FBV2lRLGFBQWFSO1VBQ2hDUSxjQUFjUjtVQUNkNVAsRUFBRWdDLEtBQUtvTyxpQkFBaUJBLGFBQWFSLE9BQU9ROztTQUVoRHBRLElBQUlrUCxhQUFhbFA7U0FDakIsVUFBV0EsZUFBZ0I7VUFDdkIsR0FBSWUsTUFBTWYsTUFBS0E7VUFDZixXQUFXK08sYUFBYS9POztTQUMxQixXQUFXNE8sV0FBVzVPLEdBQUdlO1FBQy9CO1FBRUE2TjtrQkFBMEM3SztVQUNoQyxJQUFGakUsSUFBSTRPLFdBQVczSztVQUNuQixHQUFJbkQsY0FBY2QsUUFBUSxPQUNmYyxTQUFTZDtVQUVwQixJQUFJeUcsSUFBSTNGLFlBQVlnRCxJQUFJOUQ7VUFDeEIsR0FBSUEsV0FDQSxPQUFPd1EsY0FBYy9KLEdBQUdwRyxTQUFTeUQsSUFBSWhEO1VBQ3pDLE9BQU95UCxZQUFZOUosR0FBRzNDLEdBQUdoRDtTQVJHO1FBVWhDZ08sNkJBQTZCQTtRQUU3Qkc7a0JBQTRDaEw7VUFDeEMsSUFBSWpFLElBQUk0TyxXQUFXM0ssSUFDZndDLElBQUkzRjtVQUNSLEdBQUkyRixVQUFVekcsUUFBUSxPQUNYYyxTQUFTZDtVQUVkLElBQUY4RCxJQUFJOUQ7VUFDUixHQUFJQSxXQUFXLFdBQ0FpUCxhQUFheEksSUFBSTNDO1VBRWhDLE9BQU8wTSxjQUFjMU0sR0FBR3pELFNBQVNvRyxJQUFJQTtTQVZQO1FBWWxDd0ksK0JBQStCQTtRQUUvQkM7a0JBQTRDakw7VUFDeEMsV0FBV2lMLGFBQWFwTyxhQUFhOE4sV0FBVzNLO1NBRGxCO1FBR2xDaUwsK0JBQStCQTtRQUUvQko7b0JBQ0ksV0FBV0EsV0FBV2hPLGNBQWFBLFdBRFQ7UUFHOUJtTzs7VUFDSSxJQUFJaE8sT0FBT0gsV0FDUDJQLFlBQVl4QixlQUFjbk87VUFDOUIyUCxlQUFjeFA7VUFDZCxPQUFPd1A7U0FKcUI7UUFNaEN2QjtvQkFDSSxXQUFXQSxlQUFjcE8sWUFERztRQUloQ2dPO29CQUNJLFdBQVdBLFdBQVdoTyxtQkFEQztRQUczQm1PO29CQUNJLFdBQVdBLGFBQWE1TyxTQUFTUyxhQURSO1FBRzdCb087O1VBQ0ksV0FBV0EsYUFBYXBPLGtCQUFrQkEsZUFBY0E7U0FEL0I7UUFLN0IsU0FBUzRQLGFBQWFqSyxHQUFHM0M7U0FDckI7VUFBSXFNLE1BQU0xSjtVQUNOMkosTUFBTXRNO1VBQ04zRCxJQUFJZ1EsTUFBTUM7VUFDVmxRLElBQUlzUCxZQUFZclA7VUFDaEIyUCxPQUFPL0I7VUFDUDRDO1VBQVNkO1VBQU8zTjtVQUFHME87VUFBS0M7U0FDNUIsSUFBSzNPLE9BQU9BLElBQUlpTyxPQUFPak8sRUFBRztVQUN0QjBPLE1BQU1uSyxFQUFFdkU7VUFDUixJQUFXLElBQUZnQyxPQUFPQSxJQUFJa00sT0FBT2xNLEVBQUc7V0FDMUIyTSxNQUFNL00sRUFBRUk7V0FDUnlNLFVBQVVDLE1BQU1DLE1BQU0zUSxFQUFFZ0MsSUFBSWdDO1dBQzVCMkwsUUFBUXhQLFdBQVdzUSxVQUFVYjtXQUM3QjVQLEVBQUVnQyxJQUFJZ0MsS0FBS3lNLFVBQVVkLFFBQVFDO1dBQzdCNVAsRUFBRWdDLElBQUlnQyxVQUFVMkw7OztTQUd4QlAsS0FBS3BQO1NBQ0wsT0FBT0E7UUFDWDtRQUVBLFNBQVM0USxjQUFjckssR0FBRzNDO1NBQ3RCO1VBQUkzRCxJQUFJc0c7VUFDSnZHLFFBQVFzSixNQUFNcko7VUFDZDJQLE9BQU8vQjtVQUNQOEI7VUFDQWM7VUFBU3pPO1NBQ2IsSUFBS0EsT0FBT0EsSUFBSS9CLEdBQUcrQixJQUFLO1VBQ3BCeU8sVUFBVWxLLEVBQUV2RSxLQUFLNEIsSUFBSStMO1VBQ3JCQSxRQUFReFAsV0FBV3NRLFVBQVViO1VBQzdCNVAsRUFBRWdDLEtBQUt5TyxVQUFVZCxRQUFRQzs7U0FFN0IsTUFBT0QsVUFBVztVQUNkM1AsRUFBRWdDLE9BQU8yTixRQUFRQztVQUNqQkQsUUFBUXhQLFdBQVd3UCxRQUFRQzs7U0FFL0IsT0FBTzVQO1FBQ1g7UUFFQSxTQUFTNlEsVUFBVWpSLEdBQUdFO1NBQ1osSUFBRkU7U0FDSixNQUFPRixTQUFTRTtTQUNoQixPQUFPQSxTQUFTSjtRQUNwQjtRQUVBLFNBQVNrUixrQkFBa0JsUixHQUFHd0I7U0FDcEIsSUFBRnRCLElBQUlLLFNBQVNQLFVBQVV3QjtTQUUzQixHQUFJdEIsU0FBUyxPQUFPMFEsYUFBYTVRLEdBQUd3QjtTQUNwQ3RCLElBQUlLLFVBQVVMO1NBRWQ7VUFBSThELElBQUloRSxRQUFRRTtVQUNaeUcsSUFBSTNHLFdBQVdFO1VBQ2YwRixJQUFJcEUsUUFBUXRCO1VBQ1ppRCxJQUFJM0IsV0FBV3RCO1VBRWZpUixLQUFLRCxrQkFBa0J2SyxHQUFHeEQ7VUFDMUJpTyxLQUFLRixrQkFBa0JsTixHQUFHNEI7VUFDMUJ5TCxPQUFPSCxrQkFBa0JoQixPQUFPdkosR0FBRzNDLElBQUlrTSxPQUFPL00sR0FBR3lDO1VBRWpEaUw7WUFBVVg7Y0FBT0EsT0FBT2lCLElBQUlGLFVBQVViLFNBQVNBLFNBQVNpQixNQUFNRixLQUFLQyxLQUFLbFI7Y0FBSytRLFVBQVVHLFFBQVFsUjtTQUNuR3NQLEtBQUtxQjtTQUNMLE9BQU9BO1FBQ1g7UUFJQSxTQUFTUyxhQUFhQyxJQUFJQztTQUN0QixrQkFBZ0JELGNBQWFDLGdCQUFnQkQsS0FBS0M7UUFDdEQ7UUFFQXhDO2tCQUEwQzdLO1VBQ3RDO1dBQUlqRSxJQUFJNE8sV0FBVzNLO1dBQ2Z3QyxJQUFJM0Y7V0FBWWdELElBQUk5RDtXQUNwQmlCLE9BQU9ILGNBQWNkO1dBQ3JCdVI7VUFDSixHQUFJdlIsVUFBVztXQUNYLEdBQUk4RCxTQUFTLE9BQU8wSztXQUNwQixHQUFJMUssU0FBUyxPQUFPaEQ7V0FDcEIsR0FBSWdELFdBQVUsT0FBT2hEO1dBQ3JCeVEsTUFBTWxSLFNBQVN5RDtXQUNmLEdBQUl5TixNQUFNeEQsTUFBTSxXQUNEZSxXQUFXZ0MsY0FBY3JLLEdBQUc4SyxNQUFNdFE7V0FFakQ2QyxJQUFJcUssYUFBYW9EOztVQUVyQixHQUFJSCxhQUFhM0ssVUFBVTNDO1dBQ3ZCLFdBQVdnTCxXQUFXa0Msa0JBQWtCdkssR0FBRzNDLElBQUk3QztVQUNuRCxXQUFXNk4sV0FBVzRCLGFBQWFqSyxHQUFHM0MsSUFBSTdDO1NBakJkO1FBb0JoQzZOLDZCQUE2QkE7UUFFN0IsU0FBUzBDLHNCQUFzQi9LLEdBQUczQyxHQUFHN0M7U0FDakMsR0FBSXdGLElBQUlzSCxNQUFNLFdBQ0NlLFdBQVdnQyxjQUFjaE4sR0FBRzJDLElBQUl4RjtTQUUvQyxXQUFXNk4sV0FBVzRCLGFBQWE1TSxHQUFHcUssYUFBYTFILEtBQUt4RjtRQUM1RDtRQUNBZ087a0JBQW9EeEk7VUFDaEQsR0FBSTBJLFVBQVUxSSxVQUFVM0Y7V0FBYSxXQUN0Qm1PLGFBQWF4SSxVQUFVM0Y7VUFFdEMsT0FBTzBRO21CQUFzQm5SLFNBQVNvRzttQkFBVTBILGFBQWE5TixTQUFTUzttQkFBY0EsY0FBYzJGO1NBSjVEO1FBTTFDcUk7a0JBQWtEckk7VUFDOUMsR0FBSUEsZUFBZSxPQUFPK0g7VUFDMUIsR0FBSS9ILGVBQWUsT0FBTzNGO1VBQzFCLEdBQUkyRixpQkFBZ0IsT0FBTzNGO1VBQzNCLE9BQU8wUTttQkFBc0JuUixTQUFTb0csVUFBVTNGLFlBQVlBLGNBQWMyRjtTQUp0QztRQU14Q3dJO2tCQUE0Q2hMLEdBQ3hDLE9BQU8ySyxXQUFXM0ssb0JBQW9CbkQsTUFEUjtRQUdsQ21PLCtCQUErQkE7UUFFL0JDO2tCQUE0Q2pMO1VBQ3hDLFdBQVdpTCxhQUFhcE8sYUFBYThOLFdBQVczSztTQURsQjtRQUdsQ2lMLCtCQUErQkE7UUFFL0IsU0FBU3VDLE9BQU9oTDtTQUVaO1VBQUl0RyxJQUFJc0c7VUFDSnZHLElBQUlzUCxZQUFZclAsSUFBSUE7VUFDcEIyUCxPQUFPL0I7VUFDUDRDO1VBQVNkO1VBQU8zTjtVQUFHME87VUFBS2M7U0FDNUIsSUFBS3hQLE9BQU9BLElBQUkvQixHQUFHK0IsSUFBSztVQUNwQjBPLE1BQU1uSyxFQUFFdkU7VUFDUjJOLFlBQVllLE1BQU1BO1VBQ2xCLElBQVcsSUFBRjFNLElBQUloQyxHQUFHZ0MsSUFBSS9ELEdBQUcrRCxJQUFLO1dBQ3hCd04sTUFBTWpMLEVBQUV2QztXQUNSeU0sZUFBZUMsTUFBTWMsT0FBT3hSLEVBQUVnQyxJQUFJZ0MsS0FBSzJMO1dBQ3ZDQSxRQUFReFAsV0FBV3NRLFVBQVViO1dBQzdCNVAsRUFBRWdDLElBQUlnQyxLQUFLeU0sVUFBVWQsUUFBUUM7O1VBRWpDNVAsRUFBRWdDLElBQUkvQixLQUFLMFA7O1NBRWZQLEtBQUtwUDtTQUNMLE9BQU9BO1FBQ1g7UUFFQTRPO29CQUNJLFdBQVdBLFdBQVcyQyxPQUFPM1Esb0JBREg7UUFJOUJtTzs7VUFDYyxJQUFORixRQUFRak8sYUFBYUE7VUFDekIsR0FBSXFPLFVBQVVKLFFBQVEsV0FBV0UsYUFBYUY7VUFDOUM7a0JBQVdEO21CQUFXMkMsT0FBT3RELGFBQWE5TixTQUFTUztTQUh2QjtRQU1oQ29PO2tCQUEwQ2pMLEdBQ3RDLFdBQVdpTCxhQUFhcE8sYUFBYUEsWUFEVDtRQUloQyxTQUFTNlEsUUFBUWxMLEdBQUczQztTQUNoQjtVQUFJcU0sTUFBTTFKO1VBQ04ySixNQUFNdE07VUFDTmdNLE9BQU8vQjtVQUNQcEosU0FBUzZLLFlBQVkxTDtVQUNyQjhOLDhCQUE4QjlOLEVBQUVzTTtVQUVoQ3lCLFNBQVN4UixVQUFVeVAsWUFBWThCO1VBQy9CRSxZQUFZaEIsY0FBY3JLLEdBQUdvTDtVQUM3QnpRLFVBQVUwUCxjQUFjaE4sR0FBRytOO1VBQzNCRTtVQUFlQztVQUFPbkM7VUFBT1E7VUFBUW5PO1VBQUcvQjtVQUFHb0I7U0FDL0MsR0FBSXVRLG9CQUFvQjNCLEtBQUsyQjtTQUM3QjFRO1NBQ0F3USw4QkFBOEJ4USxRQUFRZ1A7U0FDdEMsSUFBSzRCLFFBQVE3QixNQUFNQyxLQUFLNEIsWUFBWUEsUUFBUztVQUN6Q0QsZ0JBQWdCakM7VUFDaEIsR0FBSWdDLFVBQVVFLFFBQVE1QixTQUFTd0I7V0FDM0JHO1lBQWdCMVI7ZUFBWXlSLFVBQVVFLFFBQVE1QixPQUFPTixPQUFPZ0MsVUFBVUUsUUFBUTVCO2dCQUFZd0I7VUFHOUYvQjtVQUNBUTtVQUNBbFEsSUFBSWlCO1VBQ0osSUFBS2MsT0FBT0EsSUFBSS9CLEdBQUcrQixJQUFLO1dBQ3BCMk4sU0FBU2tDLGdCQUFnQjNRLFFBQVFjO1dBQ2pDWCxJQUFJbEIsV0FBV3dQLFFBQVFDO1dBQ3ZCTyxVQUFVeUIsVUFBVUUsUUFBUTlQLE1BQU0yTixRQUFRdE8sSUFBSXVPO1dBQzlDRCxRQUFRdE87V0FDUixHQUFJOE8sV0FBWTtZQUNaeUIsVUFBVUUsUUFBUTlQLEtBQUttTyxTQUFTUDtZQUNoQ087O2VBQ0csQ0FDSHlCLFVBQVVFLFFBQVE5UCxLQUFLbU8sUUFDdkJBOztVQUdSLE1BQU9BLGFBQWM7V0FDakIwQjtXQUNBbEM7V0FDQSxJQUFLM04sT0FBT0EsSUFBSS9CLEdBQUcrQixJQUFLO1lBQ3BCMk4sU0FBU2lDLFVBQVVFLFFBQVE5UCxLQUFLNE4sT0FBTzFPLFFBQVFjO1lBQy9DLEdBQUkyTixVQUFXO2FBQ1hpQyxVQUFVRSxRQUFROVAsS0FBSzJOLFFBQVFDO2FBQy9CRDs7Z0JBQ0csQ0FDSGlDLFVBQVVFLFFBQVE5UCxLQUFLMk4sT0FDdkJBOztXQUdSUSxVQUFVUjs7VUFFZGxMLE9BQU9xTixTQUFTRDs7U0FHcEJELFlBQVlHLFlBQVlILFdBQVdEO1NBQ25DLFFBQVF6QyxhQUFhekssU0FBU3lLLGFBQWEwQztRQUMvQztRQUVBLFNBQVNJLFFBQVF6TCxHQUFHM0M7U0FFaEI7VUFBSXFNLE1BQU0xSjtVQUNOMkosTUFBTXRNO1VBQ05hO1VBQ0F3TjtVQUNBckMsT0FBTy9CO1VBQ1BxRTtVQUFPQztVQUFNQztVQUFPQztVQUFPQztTQUMvQixNQUFPckMsSUFBSztVQUNSZ0MsYUFBYTFMLElBQUkwSjtVQUNqQmIsS0FBSzZDO1VBQ0wsR0FBSTVDLFdBQVc0QyxNQUFNck8sT0FBUSxDQUN6QmEsZ0JBQ0E7VUFFSjBOLE9BQU9GO1VBQ1BHLFFBQVFILEtBQUtFLFlBQVl2QyxPQUFPcUMsS0FBS0U7VUFDckNFLFFBQVF6TyxFQUFFc00sV0FBV04sT0FBT2hNLEVBQUVzTTtVQUM5QixHQUFJaUMsT0FBT2pDLEtBQ1BrQyxTQUFTQSxhQUFheEM7VUFFMUJzQyxRQUFRL1IsVUFBVWlTLFFBQVFDO1VBQzFCLEVBQUc7V0FDQ0MsUUFBUTFCLGNBQWNoTixHQUFHc087V0FDekIsR0FBSTdDLFdBQVdpRCxPQUFPTCxZQUFZO1dBQ2xDQzs7O1lBQ0tBO1VBQ1R6TixZQUFZeU47VUFDWkQsT0FBT2pDLFNBQVNpQyxNQUFNSzs7U0FFMUI3TjtTQUNBLFFBQVF5SyxhQUFhekssU0FBU3lLLGFBQWErQztRQUMvQztRQUVBLFNBQVNGLFlBQVlsRCxPQUFPOEM7U0FDeEI7VUFBSWhMLFNBQVNrSTtVQUNUMU4sV0FBV21PLFlBQVkzSTtVQUN2QmlKLE9BQU8vQjtVQUNQN0w7VUFBR1g7VUFBR3VRO1VBQVcxUTtTQUNyQjBRO1NBQ0EsSUFBSzVQLElBQUkyRSxZQUFZM0UsVUFBVUEsRUFBRztVQUM5QmQsVUFBVTBRLFlBQVloQyxPQUFPZixNQUFNN007VUFDbkNYLElBQUlrTyxTQUFTck8sVUFBVXlRO1VBQ3ZCQyxZQUFZMVEsVUFBVUcsSUFBSXNRO1VBQzFCeFEsU0FBU2EsS0FBS1g7O1NBRWxCLFFBQVFGLFVBQVV5UTtRQUN0QjtRQUVBLFNBQVNXLFVBQVVDLE1BQU16TztTQUNyQixJQUFJOEssT0FBTy9PLElBQUk0TyxXQUFXM0s7U0FDMUIsR0FBSXNLO1VBQXNCLFlBQ1ZXLGFBQWF3RCxhQUFhMVM7c0JBQWNrUCxhQUFhd0QsYUFBYTFTO1NBRWxGLElBQUl5RyxJQUFJaU0sWUFBWTVPLElBQUk5RCxTQUNwQnFCO1NBQ0osR0FBSXlDLFNBQVMsVUFBVTZPO1NBQ3ZCLEdBQUlELGFBQWM7VUFDZCxHQUFJMVM7V0FBVyxZQUNDaVAsYUFBYVEsU0FBU2hKLElBQUkzQyxTQUFTbUwsYUFBYXhJLElBQUkzQztVQUVwRSxRQUFRMEssWUFBWWtFOztTQUV4QixHQUFJMVMsVUFBVztVQUNYLEdBQUk4RCxTQUFTLFFBQVE0TyxNQUFNbEU7VUFDM0IsR0FBSTFLLFVBQVMsUUFBUTRPLGVBQWVsRTtVQUM1QixJQUFKK0MsTUFBTWxSLFNBQVN5RDtVQUNuQixHQUFJeU4sTUFBTXhELEtBQU07V0FDWmdCLFFBQVFrRCxZQUFZeEwsR0FBRzhLO1dBQ3ZCbFEsV0FBVytOLGFBQWFMO1dBQ1YsSUFBVitDLFlBQVkvQztXQUNoQixHQUFJMkQsV0FBV1osY0FBYUE7V0FDNUIsVUFBV3pRLHNCQUF1QjtZQUM5QixHQUFJcVIsY0FBYzFTLFFBQVFxQixhQUFZQTtZQUN0QyxZQUFZNE4sYUFBYTVOLGVBQWU0TixhQUFhNkM7O1dBRXpELFlBQVloRCxXQUFXek4sVUFBVXFSLGNBQWMxUzt1QkFBYWlQLGFBQWE2Qzs7VUFFN0VoTyxJQUFJcUssYUFBYW9EOztTQUVOLElBQVhxQixhQUFhckQsV0FBVzlJLEdBQUczQztTQUMvQixHQUFJOE8sb0JBQW1CLFFBQVFwRSxZQUFZa0U7U0FDM0MsR0FBSUU7VUFBa0IsUUFBUXBFLFFBQVFrRSxjQUFjMVMsbUJBQWtCd087U0FHdEUsR0FBSS9ILFdBQVczQztVQUNYaUwsUUFBUTRDLFFBQVFsTCxHQUFHM0M7O1VBQ2xCaUwsUUFBUW1ELFFBQVF6TCxHQUFHM0M7U0FFeEJ6QyxXQUFXME47U0FDWCxJQUFJOEQsUUFBUUgsY0FBYzFTLFFBQ3RCOFMsTUFBTS9ELFVBQ05nRSxRQUFRTDtTQUNaLFVBQVdyUixzQkFBdUI7VUFDOUIsR0FBSXdSLE9BQU94UixhQUFZQTtVQUN2QkEsZUFBZTROLGFBQWE1Tjs7O1VBQ3pCQSxlQUFleU4sV0FBV3pOLFVBQVV3UjtTQUMzQyxVQUFXQyxpQkFBa0I7VUFDekIsR0FBSUMsT0FBT0QsUUFBT0E7VUFDbEJBLFVBQVU3RCxhQUFhNkQ7OztVQUNwQkEsVUFBVWhFLFdBQVdnRSxLQUFLQztTQUNqQyxRQUFRMVIsVUFBVXlSO1FBQ3RCO1FBRUFoRTtrQkFBd0M3SztVQUN6QixJQUFQVSxTQUFTOE4sVUFBVTNSLE1BQU1tRDtVQUM3QixrQkFDY1Usc0JBQ0NBO1NBSlc7UUFPOUJ1SztTQUFnQ0QsZ0NBQWdDSDtRQUdoRUE7a0JBQXdDN0ssR0FDcEMsT0FBT3dPLFVBQVUzUixNQUFNbUQsTUFERztRQUc5QmlMO1NBQThCQTttQkFBMENqTDtXQUNwRSxXQUFXaUwsYUFBYXBPLGFBQWE4TixXQUFXM0s7VUFEVTtRQUc5RGdMO1NBQThCQTtVQUFnQ0gsNEJBQTRCQTtRQUUxRkEsb0NBQXFDN0ssR0FDakMsT0FBT3dPLFVBQVUzUixNQUFNbUQsTUFEQTtRQUczQmlMO1NBQTZCQTttQkFBNkNqTDtXQUN0RSxXQUFXaUwsYUFBYXBPLGFBQWE4TixXQUFXM0s7VUFEWTtRQUdoRWdMO1NBQW1DQTtVQUE2QkgsaUNBQWlDQTtRQUVqR0E7a0JBQXFDN0s7VUFDakMsSUFBSWpFLElBQUk0TyxXQUFXM0ssSUFDZndDLElBQUkzRixZQUNKZ0QsSUFBSTlELFNBQ0orTyxPQUFPalAsR0FBR3dCO1VBQ2QsR0FBSXdDLFNBQVMsT0FBTzBLO1VBQ3BCLEdBQUkvSCxTQUFTLE9BQU8rSDtVQUNwQixHQUFJL0gsU0FBUyxPQUFPK0g7VUFDcEIsR0FBSS9ILFdBQVUsT0FBT3pHLGFBQWF3TyxhQUFhQTtVQUMvQyxHQUFJeE8sUUFBUSxPQUNEd087VUFFWCxLQUFLeE87V0FBVyxVQUFVMlMsd0JBQXdCM1M7VUFDbEQsR0FBSWM7V0FBYyxHQUNWcU8sVUFBVUosUUFBUTFPLFNBQVNvRyxHQUFHM0M7WUFDOUIsV0FBV21MLGFBQWFRLFNBQVNWO1VBRXpDalAsSUFBSWdCO1VBQ0pRLElBQUlrTjtVQUNKLFdBQWE7V0FDVCxHQUFJMUssWUFBYSxDQUNieEMsSUFBSUEsUUFBUXhCLElBQ1osRUFBRWdFO1dBRU4sR0FBSUEsU0FBUztXQUNiQTtXQUNBaEUsSUFBSUE7O1VBRVIsT0FBT3dCO1NBNUJnQjtRQThCM0IyTiw2QkFBNkJIO1FBRTdCSTtrQkFBdUNqTDtVQUNuQztXQUFJakUsSUFBSTRPLFdBQVczSztXQUNmd0MsSUFBSTNGO1dBQVlnRCxJQUFJOUQ7V0FDcEJnVCxLQUFLM0U7V0FBVzRFLEtBQUs1RTtXQUFXNkUsS0FBSzdFO1VBQ3pDLEdBQUl2SyxNQUFNa1AsSUFBSSxPQUFPeEU7VUFDckIsR0FBSS9ILE1BQU11TSxJQUFJLE9BQU94RTtVQUNyQixHQUFJL0gsTUFBTXdNLElBQUksT0FBT3pFO1VBQ3JCLEdBQUkvSCxNQUFNNEgsYUFBWSxPQUFPck8sYUFBYXdPLGFBQWFBO1VBQ3ZELEdBQUl4TyxnQkFBZ0IsV0FBV2tQLGFBQWE4RDtVQUM1QyxJQUFJbFQsSUFBSWdCLE1BQ0pRLElBQUlrTjtVQUNSLFdBQWE7V0FDVCxJQUFLMUssSUFBSW1QLFFBQVFBLEdBQUksQ0FDakIzUixJQUFJQSxRQUFReEIsSUFDWixFQUFFZ0U7V0FFTixHQUFJQSxNQUFNa1AsSUFBSTtXQUNkbFAsS0FBS29QO1dBQ0xwVCxJQUFJQTs7VUFFUixPQUFPd0I7U0FwQmtCO1FBdUI3QndOO2tCQUF3Q3FFLEtBQUtMO1VBQ3pDSyxNQUFNdkUsV0FBV3VFO1VBQ2pCTCxNQUFNbEUsV0FBV2tFO1VBQ2pCLEdBQUlBO1dBQWMsVUFBVUg7VUFDNUIsSUFBSXpTLElBQUlzTyxZQUNKc0IsT0FBT2hQLFNBQVNnUztVQUNwQixHQUFJSyxpQkFBa0I7V0FDbEJBLE1BQU1BLGFBQWEzRTtXQUNuQnNCLE9BQU9BLFlBQVlnRDs7VUFFdkIsTUFBT0ssaUJBQWtCO1dBQ3JCLEdBQUlyRCxlQUFlLE9BQU90QjtXQUMxQixHQUFJMkUsYUFBYWpULElBQUlBLFdBQVc0UCxVQUFVZ0Q7V0FDMUNLLE1BQU1BO1dBQ05yRCxPQUFPQSxrQkFBa0JnRDs7VUFFN0IsT0FBTzVTO1NBaEJtQjtRQWtCOUJnUDtTQUFnQ0QsZ0NBQWdDSDtRQUVoRSxTQUFTUyxXQUFXOUksR0FBRzNDO1NBQ25CLEdBQUkyQyxhQUFhM0MsVUFBVSxPQUNoQjJDLFdBQVczQztTQUV0QixJQUFXLElBQUY1QixJQUFJdUUsY0FBY3ZFLFFBQVFBO1VBQUssR0FDaEN1RSxFQUFFdkUsT0FBTzRCLEVBQUU1QixJQUFJLE9BQU91RSxFQUFFdkUsS0FBSzRCLEVBQUU1QjtTQUV2QztRQUNKO1FBRUE0TTtrQkFBNEM3SztVQUN4QyxJQUFJakUsSUFBSTRPLFdBQVczSyxJQUNmd0MsSUFBSTNGLFlBQ0pnRCxJQUFJOUQ7VUFDUixHQUFJQSxXQUFXO1VBQ2YsT0FBT3VQLFdBQVc5SSxHQUFHM0M7U0FMUztRQU9sQ21MO2tCQUE4Q2hMO1VBQzFDLElBQUlqRSxJQUFJNE8sV0FBVzNLLElBQ2Z3QyxJQUFJcEcsU0FBU1MsYUFDYmdELElBQUk5RDtVQUNSLEdBQUlBLFVBQVc7V0FDWDhELElBQUl6RCxTQUFTeUQ7V0FDYixPQUFPMkMsTUFBTTNDLFFBQVEyQyxJQUFJM0M7O1VBRTdCO1NBUmdDO1FBVXBDb0w7a0JBQThDakw7VUFDMUMsSUFBSXdDLElBQUkzRixZQUNKZ0QsSUFBSThLLFdBQVczSztVQUNuQndDLElBQUlBLFNBQVNBLE1BQUtBO1VBQ2xCM0MsSUFBSUEsU0FBU0EsTUFBS0E7VUFDbEIsT0FBTzJDLE1BQU0zQyxRQUFRMkMsSUFBSTNDO1NBTE87UUFRcENnTDtrQkFBeUM3SztVQUdyQyxHQUFJQSxNQUFNbVAsVUFBVTtVQUdwQixHQUFJblAsUUFBT21QLFVBQVU7VUFJckIsSUFBSXBULElBQUk0TyxXQUFXM0ssSUFDZndDLElBQUkzRixZQUNKZ0QsSUFBSTlEO1VBQ1IsR0FBSWMsY0FBY2QsUUFBUSxPQUNmQTtVQUVYLEdBQUlBLFdBQVcsT0FDSmM7VUFFWCxPQUFPeU8sV0FBVzlJLEdBQUczQyxNQUFNaEQ7U0FuQkE7UUFxQi9CZ08saUNBQWlDQTtRQUVqQ0c7a0JBQTJDaEw7VUFDdkMsR0FBSUEsTUFBTW1QLFVBQVU7VUFHcEIsR0FBSW5QLFFBQU9tUCxVQUFVO1VBSXJCLElBQUlwVCxJQUFJNE8sV0FBVzNLLElBQ2Z3QyxJQUFJM0YsWUFDSmdELElBQUk5RDtVQUNSLEdBQUlBLFdBQVcsT0FDSnlHLEtBQUszQyxRQUFRMkMsSUFBSTNDO1VBRTVCLEdBQUkyQyxVQUFVekcsUUFBUSxPQUNYeUc7VUFFWCxPQUFPQTtTQWpCc0I7UUFtQmpDd0ksbUNBQW1DQTtRQUVuQ0M7a0JBQTJDakw7VUFDdkMsR0FBSUEsTUFBTW1QLFVBQVU7VUFHcEIsR0FBSW5QLFFBQU9tUCxVQUFVO1VBR3JCLElBQUkzTSxJQUFJM0YsWUFDSmdELElBQUk4SyxXQUFXM0s7VUFDbkIsT0FBT3dDLE1BQU0zQyxRQUFRMkMsSUFBSTNDO1NBVEk7UUFXakNvTCxtQ0FBbUNBO1FBRW5DSjtrQkFBd0M3SyxHQUNwQyxPQUFPbkQsYUFBYW1ELFNBRE07UUFHOUJpTDtTQUE0QkE7VUFBZ0NEO1dBQTRCQTtZQUFnQ0gsMEJBQTBCQTtRQUVsSkE7a0JBQTJDN0ssR0FDdkMsT0FBT25ELGFBQWFtRCxTQURTO1FBR2pDaUw7U0FBNkJBO1VBQW1DRDtXQUE2QkE7WUFBbUNILDJCQUEyQkE7UUFFM0pBO2tCQUF5QzdLLEdBQ3JDLE9BQU9uRCxhQUFhbUQsT0FETztRQUcvQmlMO1NBQTRCQTtVQUFpQ0Q7V0FBNEJBO1lBQWlDSCwwQkFBMEJBO1FBRXBKQSx1Q0FBd0M3SyxHQUNwQyxPQUFPbkQsYUFBYW1ELE9BRE07UUFHOUJpTDtTQUE0QkE7VUFBZ0NEO1dBQTRCQTtZQUFnQ0gsMEJBQTBCQTtRQUVsSkE7a0JBQWlEN0ssR0FDN0MsT0FBT25ELGFBQWFtRCxRQURlO1FBR3ZDaUw7U0FBNkJBO1VBQXlDRDtXQUE2QkE7WUFBeUNILDJCQUEyQkE7UUFFdktBO2tCQUFnRDdLLEdBQzVDLE9BQU9uRCxhQUFhbUQsUUFEYztRQUd0Q2lMO1NBQTZCQTtVQUF3Q0Q7V0FBNkJBO1lBQXdDSCwyQkFBMkJBO1FBRXJLQTtvQkFDSSxRQUFRaE8seUJBRGtCO1FBRzlCbU87b0JBQ0ksUUFBUW5PLHNCQURvQjtRQUdoQ29PO29CQUNJLFFBQVFwTyxhQUFhdU4sZUFBZUEsVUFEUjtRQUloQ1M7b0JBQ0ksUUFBUWhPLHlCQURpQjtRQUc3Qm1PO29CQUNJLFFBQVFuTyxzQkFEbUI7UUFHL0JvTztvQkFDSSxRQUFRcE8sYUFBYXVOLGVBQWVBLFVBRFQ7UUFJL0JTLDZDQUNJLFNBQVFoTyxVQURzQjtRQUdsQ21PLCtDQUNJLE9BQU9uTyxlQUR5QjtRQUdwQ29PLG9DQUFvQ0Q7UUFFcENILDZDQUNJLE9BQU9oTyxVQUR1QjtRQUdsQ21PLCtDQUNJLE9BQU9uTyxlQUR5QjtRQUdwQ29PLG9DQUFvQ0Q7UUFFcENILHlDQUNJLGFBRDBCO1FBRzlCRztvQkFDSSxPQUFPNU8sU0FBU1Msa0JBRFk7UUFHaENvTztvQkFDSSxPQUFPcE8scUJBQXFCdU4sVUFEQTtRQUloQ1MseUNBQ0ksYUFEMEI7UUFHOUJHLDJDQUNJLE9BQU9uTyxpQkFEcUI7UUFHaENvTztvQkFDSSxPQUFPcE8sZUFBZXVOLFVBRE07UUFJaENTO2tCQUErQzdLO1VBQ3JDLElBQUZqRSxJQUFJNE8sV0FBVzNLO1VBQ25CLEdBQUlqRSxZQUFZO1VBQ2hCLEdBQUlBLFlBQVk7VUFDaEIsR0FBSUEsdUJBQXVCLE9BQU9jO1VBQ2xDLE9BQU9BLFNBQVNkO1NBTGlCO1FBT3JDa1A7U0FBdUNELHVDQUF1Q0g7UUFFOUUsU0FBU3VFLGFBQWFwUDtTQUNaLElBQUZqRSxJQUFJaUU7U0FDUixHQUFJakUsWUFBWTtTQUNoQixHQUFJQSxlQUFlQSxlQUFlQSxhQUFhO1NBQy9DLEdBQUlBLGNBQWNBLHNCQUFzQkE7VUFBb0I7U0FDNUQsR0FBSUEsY0FBYztRQUV0QjtRQUVBLFNBQVNzVCxnQkFBZ0J0VCxHQUFHeUc7U0FDeEIsSUFBSThNLFFBQVF2VCxVQUNSOEQsSUFBSXlQLE9BQ0pyVCxPQUNBd0YsR0FBRy9CLEdBQUd6QixHQUFHcEM7U0FDYixNQUFPZ0UsWUFBWUEsSUFBSUEsYUFBYTVEO1NBQ3BDO1NBQU0sSUFBS2dDLE9BQU9BLElBQUl1RSxVQUFVdkUsSUFBSztVQUNqQyxHQUFJbEMsU0FBU3lHLEVBQUV2RSxLQUFLO1VBQ3BCcEMsSUFBSWdPLE9BQU9ySCxFQUFFdkUsV0FBVzRCLEdBQUc5RDtVQUMzQixHQUFJRixjQUFjQSxTQUFTeVQsUUFBUTtVQUNuQyxJQUFLN04sSUFBSXhGLE9BQU93RixRQUFRQSxJQUFLO1dBQ3pCNUYsSUFBSUEsZUFBZUU7V0FDbkIsR0FBSUYsWUFBWTtXQUNoQixHQUFJQSxTQUFTeVQsUUFBUTs7VUFFekI7O1NBRUo7UUFDSjtRQUdBekU7a0JBQXlDMEU7VUFDekIsSUFBUkMsVUFBVUosYUFBYXZTO1VBQzNCLEdBQUkyUyxZQUFZelIsV0FBVyxPQUFPeVI7VUFDbEMsSUFBSXpULElBQUljLFlBQ0o0UyxPQUFPMVQ7VUFDWCxHQUFJMFQ7V0FDQSxPQUFPSjtvQkFBZ0J0VDtVQUMzQjtXQUFJMlQsT0FBT3RULGNBQWNxVDtXQUNyQi9QLElBQUl0RCxVQUFXbVQsc0JBQXdCblQsU0FBU3NULFdBQVlBO1VBQ2hFLFFBQVNsTixRQUFRdkUsT0FBT0EsSUFBSXlCLEdBQUd6QixLQUMzQnVFLE9BQU9xSCxPQUFPNUw7VUFFbEIsT0FBT29SLGdCQUFnQnRULEdBQUd5RztTQVpDO1FBYy9CeUk7U0FBaUNELGlDQUFpQ0g7UUFFbEVBO2tCQUFpRDhFO1VBQ2pDLElBQVJILFVBQVVKLGFBQWF2UztVQUMzQixHQUFJMlMsWUFBWXpSLFdBQVcsT0FBT3lSO1VBQ2xDLElBQUl6VCxJQUFJYyxZQUNKNkMsSUFBSWlRLGVBQWU1UixnQkFBZ0I0UjtVQUN2QyxRQUFTbk4sUUFBUXZFLE9BQU9BLElBQUl5QixHQUFHekI7V0FDM0J1RSxPQUFPcUgsc0JBQXNCOU47VUFFakMsT0FBT3NULGdCQUFnQnRULEdBQUd5RztTQVJTO1FBVXZDeUk7U0FBeUNELHlDQUF5Q0g7UUFFbEZBO2tCQUF3QzlPO1VBQ3BDO1dBQUkyRCxJQUFJbUs7V0FBYStGLE9BQU8vRjtXQUFZNU4sSUFBSTBPLFdBQVc1TztXQUFJOFQsT0FBT2hUO1dBQVlTO1dBQUd3UztXQUFPQztVQUN4RixRQUFRRixjQUFlO1dBQ25CdlMsSUFBSXJCLFNBQVM0VDtXQUNiQyxRQUFRcFE7V0FDUnFRLFFBQVE5VDtXQUNSeUQsSUFBSWtRO1dBQ0ozVCxJQUFJNFQ7V0FDSkQsT0FBT0UsZUFBZXhTLFdBQVdzUztXQUNqQ0MsT0FBT0UsZUFBZXpTLFdBQVd1Uzs7VUFFckMsS0FBSzVUO1dBQVk7a0JBQVV5UzttQkFBTTdSLDRCQUE0QmQ7O1VBQzdELEdBQUkyRCxzQkFDQUEsSUFBSUEsTUFBTTNEO1VBRWQsR0FBSWMsbUJBQW1CLE9BQ1o2QztVQUVYLE9BQU9BO1NBbEJtQjtRQXFCOUJ1TDtTQUFnQ0QsZ0NBQWdDSDtRQUVoRUE7O1VBQ2MsSUFBTkMsUUFBUWpPO1VBQ1osR0FBSUEsV0FBVyxPQUNKMFAsY0FBY3pCLFVBQVVqTztVQUVuQyxXQUFXZ08sV0FBV21CLFNBQVNsQixXQUFXak87U0FMbEI7UUFPNUJtTzs7VUFDYyxJQUFORixRQUFRak87VUFDWixHQUFJaU8sWUFBWWQsU0FBUyxXQUFXZ0IsYUFBYUY7VUFDakQsV0FBV0QsV0FBV1o7U0FISTtRQUs5QmdCO29CQUNJLFdBQVdBLGFBQWFwTyxhQUFhdU4sV0FEWDtRQUk5QlM7O1VBQ2MsSUFBTkMsUUFBUWpPO1VBQ1osR0FBSUEsV0FBVyxXQUNBZ08sV0FBV21CLFNBQVNsQjtVQUVuQyxPQUFPeUIsY0FBY3pCLFVBQVVqTztTQUxQO1FBTzVCbU87O1VBQ2MsSUFBTkYsUUFBUWpPO1VBQ1osR0FBSWlPLGNBQWFkLFNBQVMsV0FBV2dCLGFBQWFGO1VBQ2xELFdBQVdELFdBQVdaO1NBSEk7UUFLOUJnQjtvQkFDSSxXQUFXQSxhQUFhcE8sYUFBYXVOLFdBRFg7UUFJZCxJQUFaNEY7UUFDSixVQUFXQSxZQUFZQSwyQkFBMkJsRztTQUFNa0cscUJBQXFCQSxZQUFZQTtRQUN6RjtTQUFJQyxnQkFBZ0JEO1NBQW9CRSxnQkFBZ0JGLFlBQVlDO1FBRXBFLFNBQVNFLGNBQWNwVSxHQUNuQixPQUFPSyxTQUFTTCxNQUFNK04sS0FDMUI7UUFFQWU7a0JBQTJDN0s7VUFDakMsSUFBRmpFLElBQUk0TyxXQUFXM0s7VUFDbkIsS0FBS21RLGNBQWNwVTtXQUFJLFVBQ1QyUyxNQUFNeE8sT0FBT25FO1VBRTNCLEdBQUlBLE9BQU8sT0FBT2Msa0JBQWlCZDtVQUN4QixJQUFQMkUsU0FBUzdEO1VBQ2IsR0FBSTZELGlCQUFpQixPQUFPQTtVQUM1QixNQUFPM0UsS0FBS2tVLGNBQWU7V0FDdkJ2UCxTQUFTQSxnQkFBZ0J3UDtXQUN6Qm5VLEtBQUtrVTs7VUFFVCxPQUFPdlAsZ0JBQWdCc1AsWUFBWWpVO1NBWk47UUFjakNrUDtTQUFtQ0QsbUNBQW1DSDtRQUV0RUE7a0JBQTRDN0s7VUFDeEMsSUFBSW9RLFFBQ0FyVSxJQUFJNE8sV0FBVzNLO1VBQ25CLEtBQUttUSxjQUFjcFU7V0FBSSxVQUNUMlMsTUFBTXhPLE9BQU9uRTtVQUUzQixHQUFJQSxPQUFPLE9BQU9jLGlCQUFnQmQ7VUFDdkIsSUFBUDJFLFNBQVM3RDtVQUNiLE1BQU9kLEtBQUtrVSxjQUFlO1dBQ3ZCLEdBQUl2UCxtQkFBb0JBLHVCQUF1QkE7WUFBa0IsT0FBT0E7V0FDeEUwUCxTQUFTNUIsVUFBVTlOLFFBQVF3UDtXQUMzQnhQLFNBQVMwUCx5QkFBeUJBLG1CQUFtQkE7V0FDckRyVSxLQUFLa1U7O1VBRVRHLFNBQVM1QixVQUFVOU4sUUFBUXNQLFlBQVlqVTtVQUN2QyxPQUFPcVUseUJBQXlCQSxtQkFBbUJBO1NBZnJCO1FBaUJsQ25GO1NBQW9DRCxvQ0FBb0NIO1FBRXhFLFNBQVN3RixRQUFReFUsR0FBR3dCLEdBQUdpVDtTQUNuQmpULElBQUlzTixXQUFXdE47U0FDZjtVQUFJa1QsUUFBUTFVO1VBQWdCMlUsUUFBUW5UO1VBQ2hDb1QsT0FBT0YsUUFBUTFVLFVBQVVBO1VBQ3pCNlUsT0FBT0YsUUFBUW5ULFVBQVVBO1VBQ3pCc1Q7VUFBWUM7VUFDWkMsVUFBVTVPO1VBQU02TyxVQUFVN087VUFDMUJ2QjtTQUNKLFFBQVErUCxtQkFBa0JDLGNBQWU7VUFDckNHLFVBQVVyQyxVQUFVaUMsTUFBTVA7VUFDMUJTLFNBQVNFO1VBQ1QsR0FBSU4sT0FDQUksU0FBU1Qsb0JBQW9CUztVQUdqQ0csVUFBVXRDLFVBQVVrQyxNQUFNUjtVQUMxQlUsU0FBU0U7VUFDVCxHQUFJTixPQUNBSSxTQUFTVixvQkFBb0JVO1VBR2pDSCxPQUFPSTtVQUNQSCxPQUFPSTtVQUNQcFEsWUFBWTRQLEdBQUdLLFFBQVFDOztTQUVuQjtVQUFKOUU7WUFBTXdFLEdBQUdDLGVBQWVDLHVCQUF1QjNHLGNBQWFBO1NBQ2hFLElBQVcsSUFBRjVMLElBQUl5QyxtQkFBbUJ6QyxRQUFRQTtVQUNwQzZOLE1BQU1BLGFBQWFvRSxtQkFBbUJyRyxPQUFPbkosT0FBT3pDO1NBRXhELE9BQU82TjtRQUNYO1FBRUFqQixzQ0FDSSxPQUFPaE8scUJBRGdCO1FBRzNCb087U0FBNkJELDZCQUE2Qkg7UUFFMURBO2tCQUFxQzlPLEdBQ2pDLE9BQU9zVSxRQUFReFQsTUFBTWQsWUFBYXlHLEdBQUczQyxHQUFLLE9BQU8yQyxJQUFJM0MsRUFBN0IsR0FERDtRQUczQm9MO1NBQTZCRCw2QkFBNkJIO1FBRTFEQTtrQkFBb0M5TyxHQUNoQyxPQUFPc1UsUUFBUXhULE1BQU1kLFlBQWF5RyxHQUFHM0MsR0FBSyxPQUFPMkMsSUFBSTNDLEVBQTdCLEdBREY7UUFHMUJvTDtTQUE0QkQsNEJBQTRCSDtRQUV4REE7a0JBQXFDOU8sR0FDakMsT0FBT3NVLFFBQVF4VCxNQUFNZCxZQUFheUcsR0FBRzNDLEdBQUssT0FBTzJDLElBQUkzQyxFQUE3QixHQUREO1FBRzNCb0w7U0FBNkJELDZCQUE2Qkg7UUFFMUQ7U0FBSWtHO1NBQXFCQyxjQUFjbEgsU0FBUUEsU0FBU0EsU0FBUUEsUUFBUWlIO1FBQ3hFLFNBQVNFLFNBQVNsVjtTQUdkO1VBQUlpRSxJQUFJakU7VUFDSkY7bUJBQVdtRTtlQUFpQkEsSUFBSStROztlQUNyQi9ROztpQkFBaUJBLElBQUlvSyxPQUFPMkc7aUJBQy9CL1EsT0FBT0EsT0FBTzhKLE9BQU9rSDtTQUNqQyxPQUFPblYsTUFBS0E7UUFDaEI7UUFFQSxTQUFTcVYsaUJBQWlCcEcsT0FBT2U7U0FDN0IsR0FBSUEsZUFBZWYsWUFBYTtVQUM1QjtXQUFJcUcsTUFBTUQsaUJBQWlCcEcsT0FBT2UsWUFBWUE7V0FDMUN0TSxJQUFJNFI7V0FDSkMsSUFBSUQ7V0FDSnpSLElBQUlILFdBQVdzTTtVQUNuQixPQUFPbk0sWUFBWW9MO3dCQUFtQnBMLE1BQU0wUjt3QkFBbUI3UixNQUFNNlI7O1NBRXpFLFdBQVl2SDtRQUNoQjtRQUVBZ0I7O1VBQ1UsSUFBRjlPLElBQUljO1VBQ1IsR0FBSWQsWUFBWThOLGdCQUNaOU4sSUFBSUEsb0JBQW9COE47VUFFNUIsR0FBSTlOLFlBQVk4TixrQkFBa0IsT0FDdkJBO1VBRVgsT0FBT0EsT0FBT3FILGlCQUFpQm5WLEdBQUc4TixrQkFBa0JBO1NBUnZCO1FBVWpDb0I7U0FBbUNELG1DQUFtQ0g7UUFFdEUsU0FBU3dHLElBQUk3TyxHQUFHM0M7U0FDWjJDLElBQUltSSxXQUFXbkk7U0FDZjNDLElBQUk4SyxXQUFXOUs7U0FDZixPQUFPMkMsVUFBVTNDLEtBQUsyQyxJQUFJM0M7UUFDOUI7UUFDQSxTQUFTeVIsSUFBSTlPLEdBQUczQztTQUNaMkMsSUFBSW1JLFdBQVduSTtTQUNmM0MsSUFBSThLLFdBQVc5SztTQUNmLE9BQU8yQyxTQUFTM0MsS0FBSzJDLElBQUkzQztRQUM3QjtRQUNBLFNBQVMwUixJQUFJL08sR0FBRzNDO1NBQ1oyQyxJQUFJbUksV0FBV25JO1NBQ2YzQyxJQUFJOEssV0FBVzlLO1NBQ2YsR0FBSTJDLFNBQVMzQyxJQUFJLE9BQU8yQztTQUN4QixHQUFJQSxZQUFZLE9BQU8zQztTQUN2QixHQUFJQSxZQUFZLE9BQU8yQztTQUN2QixJQUFJeEQsSUFBSXVMLFlBQVk5SSxHQUFHL0I7U0FDdkIsTUFBTzhDLGNBQWMzQyxXQUFZO1VBQzdCNEIsSUFBSTZQLElBQUlMLFNBQVN6TyxJQUFJeU8sU0FBU3BSO1VBQzlCMkMsSUFBSUEsU0FBU2Y7VUFDYjVCLElBQUlBLFNBQVM0QjtVQUNiekMsSUFBSUEsV0FBV3lDOztTQUVuQixNQUFPZSxZQUNIQSxJQUFJQSxTQUFTeU8sU0FBU3pPO1NBRTFCLEVBQUc7VUFDQyxNQUFPM0MsWUFDSEEsSUFBSUEsU0FBU29SLFNBQVNwUjtVQUUxQixHQUFJMkMsVUFBVTNDLEdBQUksQ0FDZEgsSUFBSUcsR0FBR0EsSUFBSTJDLEdBQUdBLElBQUk5QztVQUV0QkcsSUFBSUEsV0FBVzJDOzs7YUFDVDNDO1NBQ1YsT0FBT2IsYUFBYXdELElBQUlBLFdBQVd4RDtRQUN2QztRQUNBLFNBQVN3UyxJQUFJaFAsR0FBRzNDO1NBQ1oyQyxJQUFJbUksV0FBV25JO1NBQ2YzQyxJQUFJOEssV0FBVzlLO1NBQ2YsT0FBTzJDLFNBQVMrTyxJQUFJL08sR0FBRzNDLGFBQWFBO1FBQ3hDO1FBQ0EsU0FBUzRSLFlBQVlqUCxHQUFHM0M7U0FDcEIyQyxJQUFJbUksV0FBV25JO1NBQ2YzQyxJQUFJOEssV0FBVzlLO1NBQ2Y7VUFBSTZSLE1BQU1KLElBQUk5TyxHQUFHM0M7VUFBSThSLE9BQU9OLElBQUk3TyxHQUFHM0M7VUFDL0IrUixRQUFRRCxjQUFjRDtTQUMxQixHQUFJRSxlQUFlLE9BQU9GLFFBQVF0VixXQUFXQSxnQkFBZ0J3VjtTQUM3RDtVQUFJQyxTQUFTQyxPQUFPRixPQUFPOUg7VUFDdkJwSjtVQUFhcVI7U0FDakIsSUFBVyxJQUFGOVQsT0FBT0EsSUFBSTRULGVBQWU1VCxJQUFLO1VBQ3BDO1dBQUkrVCxNQUFNRCxhQUFhRixPQUFPNVQsS0FBSzZMO1dBQy9CbUksUUFBUXpHLFNBQVNwUCxnQkFBZ0I0VjtVQUNyQ3RSLFlBQVl1UjtVQUNaLEdBQUlBLFFBQVFELEtBQUtEOztTQUVyQixPQUFPTCxRQUFRbkgsa0JBQWtCN0osUUFBUW9KO1FBQzdDO1FBRWMsU0FBVmMsVUFBc0JzSCxNQUFNckcsTUFBTXBCLFVBQVVDO1NBQzVDRCxXQUFXQSxZQUFZTjtTQUN2QitILE9BQU9oUyxPQUFPZ1M7U0FDZCxLQUFLeEgsY0FBZTtVQUNoQndILE9BQU9BO1VBQ1B6SCxXQUFXQTs7U0FFZjtVQUFJN0gsU0FBU3NQO1VBQ1RqVTtVQUNBa1UsVUFBVS9WLFNBQVN5UDtVQUNuQnVHO1NBQ0osSUFBS25VLE9BQU9BLElBQUl3TSxpQkFBaUJ4TSxLQUM3Qm1VLGVBQWUzSCxTQUFTeE0sTUFBTUE7U0FFbEMsSUFBS0EsT0FBT0EsSUFBSTJFLFFBQVEzRSxJQUFLO1VBQ25CLElBQUZlLElBQUlrVCxLQUFLalU7VUFDYixHQUFJZSxXQUFXO1VBQ2YsR0FBSUEsS0FBS29UO1dBQWdCLEdBQ2pCQSxlQUFlcFQsTUFBTW1ULFFBQVM7WUFDOUIsR0FBSW5ULGFBQWFtVCxlQUFlO1lBQ2hDLFVBQVV6RCxNQUFNMVAsdUNBQXVDNk07OztTQUluRUEsT0FBT2xCLFdBQVdrQjtTQUNsQixJQUFJZ0csYUFDQVEsYUFBYUg7U0FDakIsSUFBS2pVLElBQUlvVSxvQkFBb0JwVSxJQUFJaVUsYUFBYWpVLElBQUs7VUFDekMsSUFBRmUsSUFBSWtULEtBQUtqVTtVQUNiLEdBQUllLEtBQUtvVDtXQUFnQlAsWUFBWWxILFdBQVd5SCxlQUFlcFQ7a0JBQ3REQSxVQUFXO1dBQ04sSUFBTnNULFFBQVFyVTtXQUNaLEdBQUtBLFVBQWNpVSxLQUFLalUsY0FBY0EsSUFBSWlVO1dBQzFDTCxZQUFZbEgsV0FBV3VILFdBQVdJLFdBQVdyVTs7O1dBRTVDLFVBQVV5USxNQUFNMVA7O1NBRXpCLE9BQU91VCxtQkFBbUJWLFFBQVFoRyxNQUFNd0c7UUFyQzVCO1FBd0NoQixTQUFTRSxtQkFBbUJWLFFBQVFoRyxNQUFNd0c7U0FDdEMsSUFBSUcsTUFBTWpJLFlBQVlrSSxNQUFNbEksWUFBWXRNO1NBQ3hDLElBQUtBLElBQUk0VCxtQkFBbUI1VCxRQUFRQSxJQUFLO1VBQ3JDdVUsTUFBTUEsUUFBUVgsT0FBTzVULFNBQVN3VTtVQUM5QkEsTUFBTUEsVUFBVTVHOztTQUVwQixPQUFPd0csYUFBYUcsZUFBZUE7UUFDdkM7UUFFQSxTQUFTRSxVQUFVVCxPQUFPeEg7U0FDdEJBLFdBQVdBLFlBQVlOO1NBQ3ZCLEdBQUk4SCxRQUFReEgsaUJBQWlCLE9BQ2xCQSxTQUFTd0g7U0FFcEIsYUFBYUE7UUFDakI7UUFFQSxTQUFTSCxPQUFPL1YsR0FBRzhQO1NBQ2ZBLE9BQU9oQyxPQUFPZ0M7U0FDZCxHQUFJQSxjQUFlO1VBQ2YsR0FBSTlQLFlBQVk7VUFDaEIsVUFBVTJTOztTQUVkLEdBQUk3QyxpQkFBaUI7VUFDakIsR0FBSTlQLFlBQVk7VUFDaEIsR0FBSUE7V0FDQTttQkFDVzs7cUJBQW9Cd0osWUFBWXRELE1BQU1zRCxRQUFPeEo7dUJBQzNDd0o7O1VBS1Q7V0FBSjZGO2FBQU03RixZQUFZdEQsTUFBTXNELE1BQU14SjtlQUN6QndKO1VBQ1Q2RjtVQUNBLGVBQ1csb0JBQW9CQTs7U0FLM0IsSUFBSnVIO1NBQ0osR0FBSTVXLGtCQUFrQjhQLGtCQUFtQixDQUNyQzhHLFlBQ0E1VyxJQUFJQTtTQUVSLEdBQUk4UCxjQUFlO1VBQ2YsR0FBSTlQLFlBQVk7VUFFaEI7a0JBQ1d3SixZQUFZdEQsTUFBTXNELE1BQU14SjtvQkFDdEI2Vzs4QkFDR0Q7O1NBR3BCLElBQUlFLFVBQ0FDLE9BQU8vVyxHQUFHZ1g7U0FDZCxNQUFPRCxxQkFBcUJBLGdCQUFnQmpILFdBQVk7VUFDcERrSCxTQUFTRCxZQUFZakg7VUFDckJpSCxPQUFPQztVQUNHLElBQU5kLFFBQVFjO1VBQ1osR0FBSWQsbUJBQW9CO1dBQ3BCQSxRQUFRcEcsV0FBV29HO1dBQ25CYSxPQUFPQTs7VUFFWEQsU0FBU1o7O1NBRWJZLFNBQVNDO1NBQ1QsZUFBZ0JELDJCQUEyQkY7UUFDL0M7UUFFQSxTQUFTSyxhQUFhalgsR0FBRzhQLE1BQU1wQjtTQUNuQixJQUFKVyxNQUFNMEcsT0FBTy9WLEdBQUc4UDtTQUNwQixRQUFRVDs7aUJBQTZCQSx1QkFBd0J2UCxHQUN6RCxPQUFPNlcsVUFBVTdXLEdBQUc0TyxVQUQyQjs7UUFHdkQ7UUFFQUk7a0JBQXlDTCxPQUNyQyxPQUFPc0gsT0FBT2pWLE1BQU0yTixPQURPO1FBSS9CUTtrQkFBMkNSLE9BQ3ZDLE9BQU9zSCxPQUFPalYsTUFBTTJOLE9BRFM7UUFJakNTO2tCQUEyQ1QsT0FDdkMsT0FBT3NILE9BQU9qVixNQUFNMk4sT0FEUztRQUlqQ0s7a0JBQTBDTCxPQUFPQztVQUM3QyxHQUFJRCxVQUFVek0sV0FBV3lNO1VBQ3pCLEdBQUlBLGNBQWMsT0FBT3dJLGFBQWFuVyxNQUFNMk4sT0FBT0M7VUFDbkQ7V0FBSXpLLElBQUluRDtXQUFZWCxJQUFJOEQ7V0FBVW9KLE1BQU1sSixPQUFPRixJQUFJOUQ7V0FBSytXO1dBQW1CaEI7VUFDM0UsUUFBUy9WLE9BQVE7V0FDYitWLFFBQVEvUixPQUFPRixFQUFFOUQ7V0FDakJrTixPQUFPNkosWUFBWWhCLGdCQUFnQkE7O1VBRTlCLElBQUxqVixPQUFPSDtVQUNYLE9BQU9HLE9BQU9vTTtTQVRjO1FBWWhDNEI7a0JBQTRDUixPQUFPQztVQUMvQyxHQUFJRCxVQUFVek0sV0FBV3lNO1VBQ3pCLEdBQUlBLGFBQWEsT0FBT3dJLGFBQWFuVyxNQUFNMk4sT0FBT0M7VUFDbEQsT0FBT3ZLLE9BQU9yRDtTQUhnQjtRQU1sQ29PLGtDQUFrQ0Q7UUFFbENDO1NBQWdDSjtVQUE4QkcsMkNBQThDLE9BQU9uTyxnQkFBckI7UUFFOUZnTztvQkFDSSxPQUFPcUksU0FBU3JXLHFCQURXO1FBRy9CZ08sa0NBQWtDQTtRQUVsQ0csNENBQ0ksT0FBT25PLFdBRHNCO1FBR2pDbU8sb0NBQW9DQTtRQUNwQ0M7U0FBaUNBO3FCQUM3QixPQUFPaUksU0FBU3JXLHFCQURpRDtRQUlyRSxTQUFTc1csaUJBQWlCblQ7U0FDdEIsR0FBSWtMLFlBQVdsTCxHQUFJO1VBQ1QsSUFBRm5FLE1BQUttRTtVQUNULEdBQUluRSxNQUFNMlAsU0FBUzNQO1dBQ2YsT0FBT3lPO3lCQUEyQlcsYUFBYWIsT0FBT3ZPO3lCQUFVbVAsYUFBYW5QO1VBQ2pGLFVBQVU2Uyw0QkFBNEIxTzs7U0FFakMsSUFBTGhELE9BQU9nRDtTQUNYLEdBQUloRCxNQUFNZ0QsSUFBSUE7U0FDSixJQUFOb1QsUUFBUXBUO1NBQ1osR0FBSW9UO1VBQWtCLFVBQVUxRSw0QkFBNEIwRTtTQUM1RCxHQUFJQSxtQkFBb0I7VUFDWixJQUFKbEUsTUFBTWtFO1VBQ1YsR0FBSWxFLGdCQUFnQkEsTUFBTUE7VUFDMUJBLFFBQU9BO1VBQ1AsR0FBSUEsUUFBUTFELFNBQVMwRCxVQUFTaEUsVUFBVWdFO1dBQU07a0JBQVVSO3lDQUE0QlE7VUFDcEYsSUFBSWdELE9BQU9rQixVQUNQQyxlQUFlbkI7VUFDbkIsR0FBSW1CLGtCQUFtQjtXQUNuQm5FLE9BQU9nRCxjQUFjbUI7V0FDckJuQixPQUFPQSxjQUFjbUIsZ0JBQWdCbkIsV0FBV21COztVQUVwRCxHQUFJbkU7V0FBUztrQkFBVVI7O1VBQ3ZCd0QsUUFBUSxJQUFLM00sTUFBTTJKO1VBQ25CbFAsSUFBSWtTOztTQUVJLElBQVJvQixVQUFVLHVCQUF1QnRUO1NBQ3JDLEtBQUtzVCxTQUFTLFVBQVU1RSw0QkFBNEIxTztTQUNwRCxHQUFJc0s7VUFBc0IsV0FDWFcsYUFBYWIsT0FBT3BOLGFBQWFnRCxJQUFJQTtTQUVwRCxJQUFJL0QsUUFBUW9WLE1BQU1yUixVQUFVOUQsSUFBSTZOLFVBQVV1SCxNQUFNRCxNQUFNblY7U0FDdEQsTUFBT21WLFFBQVM7VUFDWnBWLFNBQVErRCxRQUFRc1IsS0FBS0Q7VUFDckJDLE9BQU9wVjtVQUNQLEdBQUlvVixTQUFTQTtVQUNiRCxPQUFPblY7O1NBRVhtUCxLQUFLcFA7U0FDTCxXQUFXNE8sV0FBVzVPLEdBQUdlO1FBQzdCO1FBRUEsU0FBU3VXLGlCQUFpQnZUO1NBQ3RCLEdBQUlzSyxzQkFBc0IsV0FDWFcsYUFBYWIsT0FBT3BLO1NBRW5DLEdBQUlrTCxVQUFVbEwsR0FBSTtVQUNkLEdBQUlBLE1BQU13TCxTQUFTeEwsSUFBSSxVQUFVME8sTUFBTTFPO1VBQ3ZDLFdBQVdnTCxhQUFhaEw7O1NBRTVCLE9BQU9tVCxpQkFBaUJuVDtRQUM1QjtRQUVBLFNBQVMySyxXQUFXM0s7U0FDaEIsVUFBV0EsZ0JBQWdCLE9BQ2hCdVQsaUJBQWlCdlQ7U0FFNUIsVUFBV0EsZ0JBQWdCLE9BQ2hCbVQsaUJBQWlCblQ7U0FFNUIsVUFBV0EsZ0JBQWdCLFdBQ1ppTCxhQUFhakw7U0FFNUIsT0FBT0E7UUFDWDtRQUVBLElBQVcsSUFBRi9CLE9BQU9BLFVBQVVBLElBQUs7U0FDM0JzTSxRQUFRdE0sS0FBSzBNLFdBQVcxTTtTQUN4QixHQUFJQSxPQUFPc00sVUFBU3RNLEtBQUswTSxhQUFZMU07O1FBR3pDc00sY0FBY0E7UUFDZEEsZUFBZUE7UUFDZkEsbUJBQW1CQTtRQUNuQkEsY0FBYzhHO1FBQ2Q5RyxjQUFjK0c7UUFDZC9HLGNBQWNnSDtRQUNkaEgsY0FBY2lIO1FBQ2RqSDtrQkFBK0IxTztVQUFLLE9BQU9BLGFBQWFnUCxjQUFjaFAsYUFBYW1QO29CQUFnQm5QLGFBQWFvUDtTQUEzRjtRQUNyQlYsc0JBQXNCa0g7UUFFdEJsSDtrQkFBOEJzSCxRQUFRaEcsTUFBTXdHO1VBQ3hDLE9BQU9FO21CQUFtQlYsV0FBV2xILGFBQWFBLFdBQVdrQixhQUFhd0c7U0FEMUQ7UUFJcEIsT0FBTzlIO09BbjZDRzs7R0NJZCxTQUFTaUosZUFBZTNYO0lBQ2hCLElBQUZ3QixJQUFJeEI7SUFDUixHQUFHQSxTQUFTZ08sT0FBT3hNLEtBQUssT0FBT0E7SUFDL0IsT0FBT3hCO0dBQ1Q7R0FpZUEsU0FBUzRYLFNBQVNDLElBQUk5UDtJQUNwQkEsS0FBS2lHLE9BQU9qRztJQUNaLEdBQUlBLE1BQU1pRztLQUNSbEw7SUFFRixPQUFPNlUsZUFBZTNKLE9BQU82SixRQUFROVA7R0FDdkM7R0FzRUEsU0FBUytQLFVBQVVDLEdBQUczVjtJQUNwQixJQUFJNFYsT0FBT2hLLFdBQ1BpSyxNQUFNaks7SUFDVitKLElBQUkvSixPQUFPK0o7SUFFWCxHQUFJM1YsZUFBZTJWLEtBQUtDO0tBQ3RCbFY7SUFHRixHQUFJaVYsU0FBU0MsU0FBU0QsU0FBU0UsTUFBTSxPQUM1Qk4sZUFBZUk7SUFHeEIsSUFBSXRCLFFBQVF1QixNQUNSRSxNQUFNSCxHQUNOSSxNQUFNL1IsTUFFTmdTLE1BQU1wSztJQUVWLE1BQU95SSxVQUFVeUIsS0FDakI7S0FDRSxJQUFJRyxNQUFNNUIsVUFBVXlCLFlBQVlFLE1BQzVCRSxLQUFLRCxRQUFRalc7S0FDakIsR0FBSWtXLFVBQVVQO01BQUksT0FDVEosZUFBZVU7YUFDYkMsTUFBTVAsR0FBSSxDQUNuQnRCLFFBQVE0QixZQUNSRixNQUFNRSxXQUVOSCxNQUFNRzs7SUFHVixPQUFPVixlQUFlUTtHQUN4QjtHQUtBLFNBQVNJLGFBQWFSLEdBQUczVjtJQUN2QixJQUFJNFYsT0FBT2hLLFdBQ1BpSyxNQUFNaks7SUFDVitKLElBQUkvSixPQUFPK0o7SUFFWCxHQUFJM1YsZUFBZTJWLEtBQUtDO0tBQ3RCbFY7SUFHRixHQUFJaVYsU0FBU0MsU0FBU0QsU0FBU0UsTUFBTSxXQUN4Qk4sZUFBZUksSUFBSUM7SUFHaEMsSUFBSXZCLFFBQVF1QixNQUNSRSxNQUFNSCxHQUNOSSxNQUFNL1IsTUFFTmdTLE1BQU1wSztJQUVWLE1BQU95SSxVQUFVeUIsS0FDakI7S0FDRSxJQUFJRyxNQUFNNUIsVUFBVXlCLFlBQVlFLE1BQzVCRSxLQUFLRCxRQUFRalc7S0FDakIsR0FBSWtXLFVBQVVQO01BQUksV0FDTEosZUFBZVUsTUFBTUw7YUFDdkJNLE1BQU1QLEdBQUksQ0FDbkJ0QixRQUFRNEIsWUFDUkYsTUFBTUUsV0FFTkgsTUFBTUc7O0lBR1YsV0FBV1YsZUFBZVEsTUFBTVIsZUFBZUksUUFBUUksUUFBUS9WO0dBQ2pFO0daeGRBLFNBQVNvVyxzQkFBc0J6SyxNQUMzQixzQkFDSjtHVHNNQSxTQUFTMEssb0JBQW9COVI7SUFDM0I7WUFBVy9GO2FBQVErRixZQUFhQSxZQUFjQTthQUMzQkEsWUFBYUEsWUFBY0E7YUFDM0JBLFlBQWFBO0dBQ2xDO0dzQnVDQSxTQUFTK1Isb0JBQW9CQyxJQUFJQztJQUN2QixJQUFKQyxNQUFNRixVQUFVQztJQUNwQixHQUFHQyxXQUFXRixnQkFBZ0JqTDtJQUM5QjtLQUFJb0wsS0FBS0gsT0FBT0U7S0FDWkUsS0FBS0osT0FBT0U7S0FDWkcsS0FBS0wsT0FBT0U7S0FDWkksS0FBS04sT0FBT0U7S0FDWkssS0FBS1AsT0FBT0U7S0FDWk0sS0FBS1IsT0FBT0U7S0FDWk8sS0FBS1QsT0FBT0U7S0FDWlEsS0FBS1YsT0FBT0U7SUFDaEIsT0FBT0oscUJBQXFCWSxJQUFHRCxJQUFHRCxJQUFHRCxJQUFHRCxJQUFHRCxJQUFHRCxJQUFHRDtHQUNuRDtHdEJqREEsU0FBU1Esb0JBQW9CdFosR0FBSyxPQUFPQSxZQUFZO0dpQmhLckQsU0FBU3VaLG1CQUFtQkMsUUFBUXJWLEdBQUdzVjtJQUMvQixJQUFGelYsSUFBSXNWLG9CQUFxQm5WO0lBQzdCLElBQVcsSUFBRi9CLE9BQU9BLE9BQU9BLEtBQUtvWCxnQkFBaUJ4VixFQUFFNUI7SUFDL0NxWDtJQUFjQTtHQUNoQjtHS2lJQSxTQUFTQyxpQkFBaUJmLElBQ3hCLE9BQU9BLGVBQ1Q7R2hCek5BLFNBQVNnQixvQkFBb0JwRTtJQUNOO0tBQ25CLEdBQUdBLGFBQWE3TCxPQUFPLE9BQU82TDtLQUM5QixJQUFJalQ7S0FFSjtPQUFHTCx5QkFDR3NULGFBQWF0VDtVQUNic1Q7VUFDQUE7TUFDSmpULE1BQU01Qjs7T0FFQXVCLDRCQUNGc1QsYUFBYXRUO1VBQ2JzVDtVQUNBQTtNQUNKalQsTUFBTTVCO2FBRUE2VSxhQUFhdFQsb0JBQW9Cc0U7TUFDdkNqRSxVQUFTaUUsNkJBQTRCZ1A7O01BR3JDalQsVUFBUzVCLDBCQUF5Qm1GLHdCQUF5QnhCLE9BQU9rUjtLQUVwRSxHQUFJQSxhQUFhdFQsa0JBQ2ZLLGVBQWVpVDtLQUNqQixPQUFPalQ7O0dBR1g7R0ttSkEsU0FBU3NYLGlCQUFpQnZVLE1BQUsyQjtJQUNwQixJQUFML0IsT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEtBQUtKLHNCQUFzQmtHO0lBQzNCbEcscUJBQXFCQSxXQUFVK0I7SUFDL0I7R0FDRjtHQUtBLFNBQVM2UyxpQkFBaUJ4VSxNQUFLMkI7SUFDN0I7S0FBSTNCLE9BQU8xQyx1QkFBdUIwQztLQUM5QjJCLFVBQVVyRSx1QkFBdUJxRTtJQUNyQyxPQUFPNFMsaUJBQWlCdlUsTUFBTTJCO0dBQ2hDO0dBNUJBLFNBQVM4UztJQUNBLElBQUh4RSxNQUFJclQ7SUFDUixHQUFHcVQ7S0FBSSxJQUNLLElBQUZsVCxPQUFPQSxJQUFJa1QsWUFBWWxUO01BQzdCeVgsaUJBQWlCdkUsSUFBSWxULFNBQVFrVCxJQUFJbFQ7SUFHckNILDhCQUE4QjRYO0lBQzlCNVg7SUFDQTtHQUNGO0dGMUlBLFNBQVM4WCxrQ0FBcUMsV0FBWTtHY2hKcEMsSUFBbEJDO0dBNlFKLFNBQVNDLHNCQUFzQmpOO0lBQ2pCLElBQVJrTixVQUFVRjtJQUNkQSxvQkFBb0JoTjtJQUNwQixPQUFPa047R0FDVDtHakJsRkEsU0FBU0Msc0JBQXNCeFQ7SUFDdkIsSUFBRnRHO0lBQ0osSUFBUyxJQUFEK0IsSUFBRXVFLGNBQWN2RSxRQUFNQSxJQUFJLENBQzFCLElBQUZtVCxJQUFJNU8sRUFBRXZFLElBQ1YvQixRQUFPa1YsR0FBRWxWO0lBRVgsT0FBT0E7R0FDVDtHa0I3SEEsU0FBUytaLFNBQVN6VCxHQUFFM0MsR0FDbEIsT0FBT3pELFVBQVVvRyxHQUFFM0MsR0FDckI7R0NUQSxTQUFTcVcsa0JBQWtCblosR0FBRTBFO0lBQzNCQSxJQUFJd1UsU0FBU3hVO0lBQ2JBLElBQU1BLFVBQVlBO0lBQ2xCQSxJQUFJd1UsU0FBU3hVO0lBQ2IxRSxLQUFLMEU7SUFDTDFFLElBQU1BLFVBQVlBO0lBQ2xCLFFBQVVBLEtBQUtBO0dBQ2pCO0dYTEEsU0FBU29aLGVBQWVDLEtBQUsxQixLQUFLNVY7SUFDaEMsSUFBVSxJQUFGYixJQUFJYSxTQUFTYixRQUFRQSxLQUFLLEdBQzdCbVksU0FBUzFCLE1BQUl6VyxTQUFTLE9BQU9BO0lBRWxDO0dBQ0Y7R0F0RUEsU0FBU29ZLGNBQWN4YTtJQUNyQixJQUFJaUQsTUFBTXFYLGVBQWV0YSxNQUFNQSxnQkFDM0JrQjtJQUNKLElBQVcsSUFBRmtCLE9BQU9BLElBQUlhLEtBQUtiLEtBQ3ZCbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUdsQixPQUFPb0M7SUFFbEMsT0FBT2xCO0dBQ1Q7R1hSQSxTQUFTdVosY0FBY3ZYLEdBQUdtRDtJQUN4QjtLQUFJbkcsSUFBS2dELFdBQVVBLE1BQUtBLE1BQU1BO0tBQzFCd1gsVUFBVXJVO0tBQ1ZULElBQUkxRixJQUFJd2E7SUFDWixHQUFJOVU7S0FDRixPQUFPMUMsUUFBUWtELE1BQU1DO1lBQ2RULE1BQU87S0FDUixJQUFGK1UsSUFBSXpYLFFBQVFrRCxNQUFLQyxjQUFhbkc7S0FDbEMsVUFBVXlhLGtCQUFrQixPQUFPQTtLQUNuQyxPQUFPRixjQUFjRSxHQUFFdFUsV0FBV25HOztRQUUvQjtLQUNILE9BQVEwRjs7UUFDQTtTQUNBO1VBQUYrVTtxQkFBYzNhO2FBQ04sSUFBTjRhLFlBQVlsUixNQUFNZ1I7YUFDdEIsSUFBVSxJQUFGdFksT0FBT0EsSUFBSXNZLFNBQVN0WSxLQUFNd1ksTUFBTXhZLEtBQUtpRSxLQUFLakU7YUFDbER3WSxNQUFNRixXQUFXMWE7YUFDakIsT0FBT2tELFFBQVFrRCxNQUFNd1U7WUFKZjtTQU1SOzs7UUFFTTtTQUNBO1VBQUZEO3FCQUFjM2EsR0FBR3dCO2FBQ1QsSUFBTm9aLFlBQVlsUixNQUFNZ1I7YUFDdEIsSUFBVSxJQUFGdFksT0FBT0EsSUFBSXNZLFNBQVN0WSxLQUFNd1ksTUFBTXhZLEtBQUtpRSxLQUFLakU7YUFDbER3WSxNQUFNRixXQUFXMWE7YUFDakI0YSxNQUFNRixlQUFlbFo7YUFDckIsT0FBTzBCLFFBQVFrRCxNQUFNd1U7WUFMZjtTQU9SOzs7UUFHTTtTQUFGRDs7WUFDRjthQUFJRSxhQUFjQyw0QkFBeUJBO2FBQ3ZDRixZQUFZbFIsTUFBTXJELGNBQVl3VTtZQUNsQyxJQUFVLElBQUZ6WSxPQUFPQSxJQUFJaUUsYUFBYWpFLEtBQU13WSxNQUFNeFksS0FBS2lFLEtBQUtqRTtZQUN0RCxJQUFVLElBQUZBLE9BQU9BLElBQUkwWSxrQkFBa0IxWTthQUFNd1ksTUFBTXZVLGNBQVlqRSxLQUFLMFksVUFBVTFZO1lBQzVFLE9BQU9xWSxjQUFjdlgsR0FBRzBYO1dBTGxCOztLQVFWRCxNQUFNL1U7S0FDTixPQUFPK1U7O0dBRVg7R0dDa0IsSUFBZEksZ0JBQWdCTjtHQXlQcEIsU0FBU08sZ0NBQWdDOVg7SUFDdkM7S0FDRSxJQUFJRCxNQUFNNlgsa0JBQ056VSxXQUFXcUQsTUFBTXpHO0tBQ3JCLElBQVcsSUFBRmIsT0FBT0EsSUFBSWEsS0FBS2IsS0FBS2lFLEtBQUtqRSxLQUFLMFksVUFBVTFZO0tBQ2xELE9BQU8yWSxjQUFjN1gsSUFBSW1ELE9BSnBCO0dBTVQ7R0tsSkEsU0FBUzRVLGVBQWVDO0lBQ2IsSUFBTGpXLE9BQU9xRyxrQkFBa0I0UDtJQUM3QixHQUFHalcsbUJBQW1CQSxXQUFZO0tBQ2hDLEdBQUdBO01BQVdLLG1CQUFtQkYsb0JBQW9CSCxZQUFZQTs7TUFDNURLLG1CQUFtQkw7S0FDeEI7OztLQUdBdUMsd0JBQXdCMUYsdUJBQXVCb1o7R0FFbkQ7R2V2SkEsU0FBU0MsYUFBY25iO0lBQ3JCLEdBQUtBLGFBQWEwSixTQUFVMUosUUFBU0E7S0FDbkMsT0FBT0E7WUFDQWlILGlCQUFpQmpIO0tBQ3hCO1lBQ09rSCxrQkFBa0JsSDtLQUN6QjtZQUNRQSxhQUFhb2IsbUJBQW9CcGI7S0FDekM7WUFDT0EsS0FBS0EsZUFDWixpQkFFQTtHQUNKO0dBc0hBLFNBQVNxYixvQkFBb0JyWCxHQUFFNEcsR0FBRTFLO0lBQzdCLEdBQUc4RCxRQUFNNEcsRUFBRyxDQUFFNUcsT0FBTzlELEdBQUc7SUFDeEI7R0FDSjtHQzdIaUMsSUFBN0JvYjtHQUNKLFNBQVNDLDRCQUE0QnhOLE1BQ25DLE9BQU91TjtHQUNUO0dEOEhBLFNBQVNFLDRCQUE0QjVRO0lBQzdCLElBQUYvRyxJQUFJc1gsYUFBYXZRO0lBQ3JCLEdBQUcvRyxZQUFZQSxZQUFZQSxVQUN6QjtJQUNGLEdBQUd3WCxvQkFBb0J6UTtLQUFjO1FBRTlCO0tBQ00sSUFBUDZRLFNBQVM3UTtLQUNiL0csSUFBSStHO0tBQ0osR0FBRy9HO01BQVUsT0FDUjRYLFVBQVVGO2FBSUoxWCxVQUFVLGVBRWQ7O0dBS1g7R1A1S0EsU0FBUzZYLG1CQUFxQixzQkFBbUI7R0V1Q2pELFNBQVNDLFNBQVM5RCxJQUFJK0Q7SUFDcEJBLEtBQUs1TixPQUFPNE47SUFDWixHQUFHQSxVQUFVNU4sWUFBWXJOO0lBQ3pCLE9BQU9nWCxlQUFlM0osT0FBTzZKLFdBQVc3SixPQUFPNE47R0FDakQ7R0FxVkEsU0FBU0MsVUFBVWhFLElBQ2pCLE9BQU83SixPQUFPNkosWUFBWTdKLGFBQzVCO0dBaFhBLFNBQVM4TixTQUFTakUsSUFBSStEO0lBQ3BCLE9BQU9qRSxlQUFlM0osT0FBTzZKLFFBQVE3SixPQUFPNE47R0FDOUM7R0E0QkEsU0FBU0csVUFBVWxFLElBQUkrRDtJQUNyQixJQUFJSSxTQUFTSCxVQUFVaEUsS0FDbkJvRSxTQUFTSixVQUFVRDtJQUN2QixHQUFJSSxTQUFTQztLQUF3RCxLQUM5RGpPLE9BQU82SixRQUFRN0osT0FBTzROLFlBQVk1TjtNQUFZLE9BQzFDOE4sU0FBU0gsU0FBUzlELElBQUkrRCxLQUFLNU47SUFHdEMsT0FBTzJOLFNBQVM5RCxJQUFJK0Q7R0FDdEI7R04wWkEsU0FBU007SUFDUC9RO0dBQ0Y7R0h6TkEsU0FBU2dSLG1CQUFtQkM7SUFDMUIsSUFDSUE7VUFDSzdHO0tBQ1UsSUFBWHpQLGFBQWFTO0tBQ2pCRTtPQUFxQlgsWUFBWUMsd0NBQXdDcVc7O0dBRS9FO0dBdkNBLFNBQVNDLGtCQUFrQjNYO0lBQ2hCLElBQUxPLE9BQU9xRyxrQkFBa0I1RztJQUM3QixLQUFLTztLQUNIa0c7SUFFYSxJQUFYaVIsYUFBYW5YLG9CQUFvQkE7SUFDckMsaUJBQW1CbVgsa0JBQWtCMVg7R0FDdkM7R0FxQ0EsU0FBUzRYLG9CQUFvQkY7SUFDM0JELG1CQUFtQkM7SUFDQSxJQUFmRyxpQkFBaUJGLGtCQUFrQkQ7SUFDdkNBLHFCQUFxQkc7SUFDckI7R0FDRjtHVi9PQSxTQUFTQztJQUNQaGMsb0JBQW9CRTtHQUN0QjtHVTBNQSxTQUFTK2Isa0JBQWtCTDtJQUN6QixJQUFJNVM7SUFDSixJQUNJQSxRQUFRNFM7VUFDSDdHO0tBQ1UsSUFBWHpQLGFBQWFTO0tBQ2pCRTtPQUFxQlgsWUFBWUMsdUNBQXVDcVc7O0lBRTVFLEdBQUk1UyxVQUFVcEQ7S0FDVm9XOztLQUNHLE9BQ0kzVyx3QkFBd0IyRDtHQUVyQztHQTRCQSxTQUFTa1Qsb0JBQW9CaFk7SUFFZixJQUFSaVksVUFBVXJZLHdCQUF3Qkk7SUFDdENpWSxVQUFVQTtJQUNWalksT0FBT21CLHdCQUF3QjhXO0lBRS9CO0tBQUlQLGFBQWFDLGtCQUFrQjNYO0tBQy9Ca1ksY0FBY0gsa0JBQWtCTDtJQUVwQyxXQUFXUSxhQUFhUjtHQUMxQjtHY3ZGQSxTQUFTUyx5QkFBeUJoWixHQUNoQyxTQUNGO0dsQjNNWSxJQUFSaVosVUFBVXZjLGFBQWFBO0dBQzNCLFNBQVN3YyxnQkFBZ0IvYztJQUN2QixHQUFHOGMsU0FBUyxPQUFPdmMsV0FBV0EsVUFBVVA7SUFDbEMsSUFBRm9DO0lBQ0osR0FBSXBDLFFBQVEsU0FBUXNUO0lBQ3BCLEdBQUd0VCxRQUFNLE1BQVFBLE9BQU0sQ0FBQ0EsUUFBTW9DLFdBQ3pCLE1BQVFwQyxNQUFPLENBQUNBLFFBQU1vQztJQUMzQixPQUFPQTtHQUNUO0dBd0NBLFNBQVM0YSx5QkFBMEJoZDtJQUNwQixJQUFUaWQsZUFBZUM7SUFDbkJELGNBQWNqZDtJQUNILElBQVBtZCxhQUFhQyxXQUFXSDtJQUM1QixPQUFPRTtHQUNUO0dSbVJBLFNBQVNFLDJCQUEyQnhjLElBQUlDLElBQUlDLElBQzFDLFdBQVdILFFBQVFDLElBQUlDLElBQUlDO0dBQzdCO0dROVRBLFNBQVN1Yyx5QkFBMEJ0ZDtJQUNqQyxLQUFLa04sU0FBU2xOLEdBQUk7S0FDaEIsR0FBSW1OLE1BQU1uTixJQUNSLE9BQU9xZDtLQUNULE9BQUlyZDtlQUNLcWQ7ZUFFQUE7O0lBRUYsSUFBTGxjLE9BQVFuQixjQUFVQSxPQUFNc1Qsb0JBQWtCdFQ7SUFDOUMsR0FBSW1CLE1BQU1uQixNQUFLQTtJQUdQLElBQUpxVCxNQUFNMEosZ0JBQWdCL2M7SUFDMUIsR0FBSXFULFNBQVU7S0FDWkE7S0FDQXJULEtBQUtPOztRQUNBO0tBQ0xQLEtBQUtPLFlBQVc4UztLQUNoQixHQUFJclQsT0FBUSxDQUNWQSxRQUFRcVQ7S0FDVixHQUFJQSxVQUNGclQ7O0lBRUosSUFBSXVkLElBQUloZCxpQkFDSmlkLEtBQUt4ZDtJQUNUQSxLQUFLQSxJQUFJd2QsTUFBTUQ7SUFDUixJQUFIRSxLQUFLemQ7SUFDVEEsS0FBS0EsSUFBSXlkLE1BQU1GO0lBQ1IsSUFBSEcsS0FBSzFkO0lBQ1R3ZCxLQUFNQSxXQUFXcmMsT0FBT2tTO0lBQ3hCLE9BQU9nSywyQkFBMkJLLElBQUlELElBQUlEO0dBQzVDO0djNGhCQSxTQUFTRyxrQkFBa0JuRSxRQUFRYixJQUFJaUY7SUFDckNwRSxpQkFBaUJiO0lBQ2pCYSxpQkFBa0JiLFVBQVdBO0lBQzdCLEdBQUdBO0tBQ0QsSUFBVSxJQUFGdlcsT0FBT0EsSUFBSXVXLGdCQUFnQnZXO01BQUssR0FDbkN1VyxRQUFRdlc7T0FDVG9YLGlCQUFpQmIsUUFBUXZXO1VBQ3RCO09BQ0hvWDtPQUNBQTtPQUNBQSxpQkFBaUJiLFFBQVF2Vzs7O0tBSTdCLElBQVUsSUFBRkEsT0FBT0EsSUFBSXVXLGdCQUFnQnZXLEtBQUtvWCxpQkFBZ0JiLFFBQVF2VztJQUNsRSxPQUFPdVc7Ozs7T0FJTCxJQUFVLElBQUZ2VyxPQUFPQSxJQUFJdVcsZ0JBQWdCdlcsS0FDakNvWCxnQkFBZ0JiLFFBQVF2VztPQUUxQjs7O09BR0EsSUFBVSxJQUFGQSxPQUFPQSxJQUFJdVcsZ0JBQWdCdlcsS0FDakNvWCxpQkFBaUJiLFFBQVF2VztPQUUzQjs7T0FFQSxJQUFVLElBQUZBLE9BQU9BLElBQUl1VyxnQkFBZ0J2VyxLQUNqQ29YLGlCQUFpQmIsUUFBUXZXO09BRTNCOzs7T0FHQW9YO09BQ0EsSUFBVSxJQUFGcFgsT0FBT0EsSUFBSXVXLGdCQUFnQnZXLEtBQ2pDb1gsaUJBQWlCYixRQUFRdlc7T0FFM0I7O09BRUEsSUFBVSxJQUFGQSxPQUFPQSxJQUFJdVcsb0JBQW9CdlcsSUFBSTtRQUNuQyxJQUFGNEIsSUFBSXNWLG9CQUFvQlgsT0FBT3ZXO1FBQ25DLElBQVcsSUFBRmdDLE9BQU9BLE9BQU9BLEtBQUtvVixnQkFBaUJ4VixFQUFFSTs7T0FFakQ7O09BRUEsSUFBVSxJQUFGaEMsT0FBT0EsSUFBSXVXLGdCQUFnQnZXLElBQUk7UUFDL0IsSUFBRjRCLElBQUlzVixvQkFBb0JnRSx5QkFBeUIzRSxPQUFPdlc7UUFDNUQsSUFBVyxJQUFGZ0MsT0FBT0EsT0FBT0EsS0FBS29WLGdCQUFpQnhWLEVBQUVJOztPQUVqRDs7T0FFQSxJQUFVLElBQUZoQyxPQUFPQSxJQUFJdVcsZ0JBQWdCdlcsSUFBSTtRQUMvQixJQUFGNEIsSUFBSWdaLHlCQUF5QnJFLE9BQU92VztRQUN4Q29YLGlCQUFpQnhWOztPQUVuQjs7T0FFQSxJQUFVLElBQUY1QixPQUFPQSxJQUFJdVcsb0JBQW9CdlcsSUFBSTtRQUNuQyxJQUFGZ0MsSUFBSXVVLE9BQU92VztRQUNmb1gsaUJBQWlCd0QseUJBQXlCNVk7UUFDMUNvVixpQkFBaUJ3RCx5QkFBeUI1WTs7T0FFNUM7O09BRUEsSUFBVSxJQUFGaEMsT0FBT0EsSUFBSXVXLG9CQUFvQnZXLElBQUk7UUFDekM7U0FBSXliLFVBQVVsRixPQUFPdlc7U0FDakI0QixJQUFJc1Ysb0JBQW9CZ0UseUJBQXlCTztRQUNyRCxJQUFXLElBQUZ6WixPQUFPQSxPQUFPQSxLQUFLb1YsZ0JBQWlCeFYsRUFBRUk7UUFDekMsSUFBRkosSUFBSXNWLG9CQUFvQmdFLHlCQUF5Qk87UUFDckQsSUFBVyxJQUFGelosT0FBT0EsT0FBT0EsS0FBS29WLGdCQUFpQnhWLEVBQUVJOztPQUVqRDs7SUFFRndaLGFBQWFqRjtJQUNiaUYsYUFBYWpGO0dBQ2Y7R0E3bkJBLFNBQVNtRiw2QkFBNkJDO0lBQ3BDLE9BQU9BLDhCQUNtQixrQkFDakI7O0dBRVg7R0FLQSxTQUFTQyxzQkFBc0JELE1BQU1FO0lBQ25DLElBQUlDO0lBQ0osT0FBT0g7O09BQ0VHLE9BQU9oQixjQUFjOztPQUNyQmdCLE9BQU9DLGNBQWM7O09BQ3JCRCxPQUFPRSxXQUFXOztPQUNsQkYsT0FBTzlXLFlBQVk7O09BQ25COFcsT0FBT0csWUFBWTs7T0FDbkJILE9BQU9JLGFBQWE7O09BQ3BCSixPQUFPZCxZQUFZOztPQUNuQmMsT0FBT2QsWUFBWTs7T0FDbkJjLE9BQU9kLFlBQVk7O09BQ25CYyxPQUFPZCxZQUFZOztPQUNuQmMsT0FBT2hCLGNBQWM7O09BQ3JCZ0IsT0FBT0MsY0FBYzs7T0FDckJELE9BQU85VyxZQUFZOztJQUU1QixLQUFLOFcsTUFBTXBiO0lBQ0YsSUFBTDRGLFdBQVd3VixLQUFLRCxPQUFPSCw2QkFBNkJDO0lBQ3hELE9BQU9yVjtHQUNUO0dkb0dBLFNBQVM2Vix5QkFBMEJ2ZTtJQUN0QixJQUFQbWQsYUFBYUM7SUFDakJELFlBQVluZDtJQUNDLElBQVRpZCxlQUFlQyxhQUFhQztJQUNoQyxPQUFPRjtHQUNUO0dBckRBLFNBQVN1Qix5QkFBMEJ4ZTtJQUNqQyxJQUFJYSxLQUFLYixNQUNMYyxLQUFLZCxNQUNMZSxLQUFLZixNQUNMcVQsT0FBT3RTO0lBQ1gsR0FBSXNTO0tBQWEsUUFDVnhTLEtBQUdDLEtBQUlDO2VBQ0ZBLGdCQUFldVMsV0FBVUE7ZUFFMUJtTDtJQUVYLElBQUlsQixJQUFJaGQsbUJBQ0p3SSxPQUFPbEksS0FBRzBjLElBQUV6YyxNQUFJeWMsS0FBR3hjO0lBQ3ZCLEdBQUlzUyxRQUFTO0tBQ1h0SztLQUNBQSxPQUFPeEksWUFBVzhTOzs7S0FFbEJ0SyxPQUFPeEk7SUFDVCxHQUFJUSxhQUFhZ0ksUUFBUUE7SUFDekIsT0FBT0E7R0FDVDtHY2xIQSxTQUFTMlYsaUJBQWlCQztJQUN4QixJQUFJQyxTQUFTRCxhQUNUVjtJQUNKLElBQVcsSUFBRjdiLE9BQU9BLElBQUl3YyxRQUFReGMsSUFBSztLQUMvQixHQUFJdWMsS0FBS3ZjO01BQ1BVO0tBQ0ZtYixPQUFPQSxPQUFPVSxLQUFLdmM7O0lBRXJCLE9BQU82YjtHQUNUO0d0QnVUQSxTQUFTWSx3QkFBd0JoZSxJQUFJRTtJQUNuQztZQUFXSDthQUNUQzthQUNFQSxvQkFBdUJFO2FBQ3hCQTtHQUNMO0dBS0EsU0FBUytkLGdCQUFnQjNhLEdBQUksT0FBT0EsU0FBUztHQUg3QyxTQUFTNGEsZ0JBQWdCNWEsR0FBSSxPQUFPQSxTQUFTO0dzQnJSckIsSUFBcEI2YTtHQUtKLFNBQVNDLFlBQWFsQixNQUFNbUIsUUFBUVAsTUFBTXJiO0lBRXhDdEMsWUFBYytjO0lBQ2QvYyxjQUFja2U7SUFDZGxlLFlBQWMyZDtJQUNkM2QsWUFBWXNDO0dBQ2Q7R0FFQTJiLG9DQUFvQ0Q7R0FFcENDO2FBQXlDdmM7S0FDL0IsSUFBSm1XO0tBQ0osVUFBVW5XLGtCQUFrQkEsT0FBT0E7S0FDbkMsTUFBT0EsZUFBZWdIO01BQVE1RztLQUM5QixHQUFJOUIsb0JBQW9CMEI7TUFDdEJJO0tBQ0YsR0FBRzlCO01BQWlDLElBQ3ZCLElBQUZvQixPQUFPQSxJQUFJcEIsa0JBQWtCb0IsSUFBSztPQUN6QyxHQUFJTSxJQUFJTixVQUFVTSxJQUFJTixNQUFNcEIsVUFBVW9CLElBQ3BDc0w7T0FDRm1MLE1BQU9BLE1BQU03WCxVQUFVb0IsS0FBTU0sSUFBSU47OztNQUU5QixJQUNNLElBQUZBLElBQUlwQixzQkFBc0JvQixRQUFRQSxJQUFLO09BQzlDLEdBQUlNLElBQUlOLFVBQVVNLElBQUlOLEtBQUtwQixVQUFVb0IsSUFDbkNzTDtPQUVGbUwsTUFBT0EsTUFBTTdYLFVBQVVvQixNQUFPTSxJQUFJTjs7S0FHdEMsT0FBT3lXO0lBcEJzQjtHQXVCL0JvRzthQUFzQ3BHO0tBQ3BDLE9BQU83WDs7UUFHTCxJQUFJWCxJQUFJVyxVQUFVNlgsY0FDZDNYLElBQUlGLFVBQVU2WDtRQUNsQixPQUFPZ0csd0JBQXdCeGUsR0FBRWE7OztRQUdqQyxJQUFJZCxJQUFJWSxVQUFVNlgsY0FDZHpXLElBQUlwQixVQUFVNlg7UUFDbEIsYUFBYXpZLEdBQUdnQztnQkFFaEIsT0FBT3BCLFVBQVU2WDs7SUFiTztHQWlCNUJvRzthQUFzQ3BHLEtBQUkxVTtLQUN4QyxPQUFPbkQ7O1FBR0xBLFVBQVU2WCxlQUFla0csZ0JBQWdCNWE7UUFDekNuRCxVQUFVNlgsZUFBZWlHLGdCQUFnQjNhO1FBQ3pDOzs7UUFHQW5ELFVBQVU2WCxlQUFlMVUsTUFDekJuRCxVQUFVNlgsZUFBZTFVLE1BQ3pCO2dCQUVBbkQsVUFBVTZYLE9BQU8xVSxHQUNqQjs7S0FFRjtJQWhCMEI7R0FvQjVCOGE7YUFBdUM5YTtLQUNyQyxPQUFPbkQ7O1FBR0wsSUFBSTJGLElBQUlvWSxnQkFBZ0I1YSxJQUNwQkgsSUFBSThhLGdCQUFnQjNhO1FBQ3hCLEdBQUd3QyxLQUFLM0M7U0FDTmhELGVBQWUyRjs7U0FFWixJQUNPLElBQUZ2RSxPQUFPQSxJQUFFcEIsa0JBQWtCb0I7VUFDakNwQixVQUFVb0IsS0FBTUEsYUFBWXVFLElBQUkzQztRQUdwQzs7O1FBR0EsSUFBSXFJLEtBQUtsSSxNQUNMZ2IsS0FBS2hiO1FBQ1QsR0FBR2tJLE1BQU04UztTQUNQbmUsZUFBZXFMOztTQUVaLElBQ08sSUFBRmpLLE9BQU9BLElBQUVwQixrQkFBa0JvQjtVQUNqQ3BCLFVBQVVvQixLQUFNQSxhQUFZaUssS0FBSzhTO1FBR3JDO2dCQUVBbmUsZUFBZW1ELElBQ2Y7O0lBOUJ5QjtHQW1DN0I4YTthQUEwQ2piLEdBQUdvYjtLQUMzQyxHQUFJcGUsZUFBZWdELFlBQVloRCxhQUFhZ0QsT0FBUTtNQUNsRCxJQUFJcWIsS0FBS3JlLFlBQWFBLGtCQUNsQnNlLEtBQVF0YixTQUFVQTtNQUN0QixPQUFPc2IsS0FBS0Q7O0tBRWQsR0FBSXJlLG9CQUFvQmdEO01BQWUsT0FDOUJBLGdCQUFnQmhEO0tBRXpCLElBQVcsSUFBRm9CLE9BQU9BLElBQUlwQixrQkFBa0JvQjtNQUNwQyxHQUFJcEIsVUFBVW9CLE1BQU00QixPQUFPNUIsSUFDekIsT0FBUXBCLFVBQVVvQixLQUFLNEIsT0FBTzVCO0tBQ2xDLE9BQVFwQjs7Ozs7UUFNTixJQUFJaEIsR0FBR3dCO1FBQ1AsSUFBVyxJQUFGWSxPQUFPQSxJQUFJcEIsa0JBQWtCb0IsSUFBSztTQUN6Q3BDLElBQUlnQixVQUFVb0I7U0FDZFosSUFBSXdDLE9BQU81QjtTQUNYLEdBQUlwQyxJQUFJd0IsR0FDTjtTQUNGLEdBQUl4QixJQUFJd0IsR0FDTjtTQUNGLEdBQUl4QixLQUFLd0IsRUFBRztVQUNWLEtBQUs0ZCxPQUFPLE9BQU9YO1VBQ25CLEdBQUl6ZSxLQUFLQSxHQUFHO1VBQ1osR0FBSXdCLEtBQUtBLEdBQUc7OztRQUdoQjs7UUFHQSxJQUFXLElBQUZZLE9BQU9BLElBQUlwQixrQkFBa0JvQixPQUFNO1NBRTFDLEdBQUlwQixVQUFVb0IsU0FBTzRCLE9BQU81QixRQUMxQjtTQUNGLEdBQUlwQixVQUFVb0IsU0FBTzRCLE9BQU81QixRQUMxQjtTQUNGLEdBQUtwQixVQUFVb0IsV0FBYTRCLE9BQU81QixVQUNqQztTQUNGLEdBQUtwQixVQUFVb0IsV0FBYTRCLE9BQU81QixVQUNqQzs7UUFFSjs7Ozs7Ozs7O1FBU0EsSUFBVyxJQUFGQSxPQUFPQSxJQUFJcEIsa0JBQWtCb0IsSUFBSztTQUN6QyxHQUFJcEIsVUFBVW9CLEtBQUs0QixPQUFPNUIsSUFDeEI7U0FDRixHQUFJcEIsVUFBVW9CLEtBQUs0QixPQUFPNUIsSUFDeEI7O1FBRUo7O0tBRUY7SUEvRDhCO0dBb0VoQyxTQUFTbWQsa0JBQWtCeEIsTUFBTW1CLFFBQVFQLE1BQU1yYjtJQUM3Q3RDLFlBQWMrYztJQUNkL2MsY0FBY2tlO0lBQ2RsZSxZQUFjMmQ7SUFDZDNkLFlBQWNzQztHQUNoQjtHQUVBaWMsa0NBQWtDTjtHQUNsQ007YUFBK0M3YztLQUM3QyxVQUFVQTtNQUFpQixHQUNyQkEsZUFBZWdILFNBQVVoSDtPQUMzQkEsTUFBTUE7O09BQ0hJO0tBRVAsR0FBSUosV0FBV0EsT0FBTzFCLGNBQ3BCME07S0FDRixPQUFPaEw7SUFSNEI7R0FXckM2YywyQ0FBNEMxRyxLQUMxQyxPQUFPN1gsVUFBVTZYLEtBRGU7R0FJbEMwRzthQUE0QzFHLEtBQUkxVSxHQUM5Q25ELFVBQVU2WCxPQUFPMVUsR0FDakIsU0FGZ0M7R0FLbENvYjthQUE2Q3BiLEdBQzNDbkQsZUFBZW1ELElBQ2YsU0FGaUM7R0FhbkMsU0FBU3FiLHNCQUFzQnpCLE1BQU1tQixRQUFRUCxNQUFNalc7SUFDNUIsSUFBakIrVyxtQkFBbUIzQiw2QkFBNkJDO0lBQ3BELEdBQUdXLGlCQUFpQkMsUUFBUWMsb0JBQW9CL1c7S0FDOUM1RjtJQUVGLEdBQUdvYyxlQUNBUCxvQkFDQWM7S0FDRCxXQUFXRixrQkFBa0J4QixNQUFNbUIsUUFBUVAsTUFBTWpXO0lBQ25ELFdBQVd1VyxZQUFZbEIsTUFBTW1CLFFBQVFQLE1BQU1qVztHQUU3QztHQXlYQSxTQUFTZ1gsb0JBQW9CQyxRQUFRL0IsSUFBSXZZO0lBQzFCLElBQVR1YSxXQUFXRDtJQUNmLEdBQUlDLGdCQUFnQkE7S0FDbEJ6VTtJQUNGO0tBQUkxSyxNQUFNa2Y7S0FDTjVCLE9BQU90ZDtLQUNQeWUsU0FBVXplO0tBQ1ZrZTtJQUNKLEdBQUd0WjtLQUNELElBQVcsSUFBRmpELE9BQU9BLElBQUl3ZCxVQUFVeGQsSUFBSztNQUNwQixJQUFUeWQsV0FBV0Y7TUFDZixHQUFHRSxtQkFBbUI7T0FDcEIsSUFBSUMsY0FBY0gsa0JBQ2RJLGNBQWNKO09BQ2xCLEdBQUdHO1FBQ0QzVTtPQUNGMFUsV0FBV0U7O01BRWJwQixVQUFVa0I7OztLQUdaLElBQVcsSUFBRnpkLE9BQU9BLElBQUl3ZCxVQUFVeGQsS0FBS3VjLFVBQVVnQjtJQUMvQztLQUFJMUIsT0FBT1MsaUJBQWlCQztLQUN4QmpXLE9BQU9zVixzQkFBc0JELE1BQU1FO0tBQ25DdEYsS0FBSzZHLHNCQUFzQnpCLE1BQU1tQixRQUFRUCxNQUFNalc7SUFDbkQsT0FBT3FWOztPQUVMLElBQVUsSUFBRjNiLE9BQU9BLElBQUk2YixNQUFNN2IsS0FDdkJzRyxLQUFLdEcsS0FBS3VkLGlCQUVaOzs7T0FHQSxJQUFVLElBQUZ2ZCxPQUFPQSxJQUFJNmIsTUFBTTdiLEtBQ3ZCc0csS0FBS3RHLEtBQUt1ZCxpQkFFWjs7T0FFQSxJQUFVLElBQUZ2ZCxPQUFPQSxJQUFJNmIsTUFBTTdiLEtBQ3ZCc0csS0FBS3RHLEtBQUt1ZCxrQkFFWjs7T0FFQSxJQUFVLElBQUZ2ZCxPQUFPQSxJQUFJNmIsTUFBTTdiLEtBQ3ZCc0csS0FBS3RHLEtBQUt1ZCxrQkFFWjs7T0FFQSxJQUFVLElBQUZ2ZCxPQUFPQSxJQUFJNmIsTUFBTTdiLEtBQ3ZCc0csS0FBS3RHLEtBQUt1ZCxrQkFFWjs7O09BR1UsSUFBTkssUUFBUUw7T0FDWixHQUFHSztRQUFPN1U7O09BQ1YsSUFBVSxJQUFGL0ksT0FBT0EsSUFBSTZiLE1BQU03YixLQUN2QnNHLEtBQUt0RyxLQUFLdWQ7T0FFWjs7T0FFTSxJQUFGOWIsUUFBUTZGO09BQ1osSUFBVSxJQUFGdEgsT0FBT0EsSUFBSTZiLE1BQU03YixJQUFJO1FBQzNCLElBQVcsSUFBRmdDLE9BQU1BLE9BQU1BLEtBQUtQLEVBQUVPLEtBQUt1YjtRQUN2QixJQUFOTSxRQUFReEgsb0JBQW9CNVU7UUFDaEM4VSxPQUFPdlcsR0FBRTZkOztPQUVYOztPQUVNLElBQUZwYyxRQUFRNkY7T0FDWixJQUFVLElBQUZ0SCxPQUFPQSxJQUFJNmIsTUFBTTdiLElBQUk7UUFDM0IsSUFBVyxJQUFGZ0MsT0FBTUEsT0FBTUEsS0FBS1AsRUFBRU8sS0FBS3ViO1FBQzNCLElBQUZ6YyxJQUFJc2IseUJBQXlCL0Ysb0JBQW9CNVU7UUFDckQ4VSxPQUFPdlcsR0FBRWM7O09BRVg7O09BRUEsSUFBVSxJQUFGZCxPQUFPQSxJQUFJNmIsTUFBTTdiLElBQUk7UUFDckIsSUFBRmMsSUFBSXFiLHlCQUF5Qm9CO1FBQ2pDaEgsT0FBT3ZXLEdBQUVjOztPQUVYOztPQUVBLElBQVUsSUFBRmQsT0FBT0EsSUFBSTZiLE1BQU03YixJQUFJO1FBQzNCO1NBQUkrYyxLQUFLWix5QkFBeUJvQjtTQUM5QnRULEtBQUtrUyx5QkFBeUJvQjtRQUNsQ2hILE9BQU92VyxTQUFPK2MsSUFBRzlTOztPQUVuQjs7T0FFTSxJQUFGeEksUUFBUTZGO09BQ1osSUFBVSxJQUFGdEgsT0FBT0EsSUFBSTZiLE1BQU03YixJQUFJO1FBQzNCLElBQVcsSUFBRmdDLE9BQU1BLE9BQU1BLEtBQUtQLEVBQUVPLEtBQUt1YjtRQUMxQixJQUFIUixLQUFLWCx5QkFBeUIvRixvQkFBb0I1VTtRQUN0RCxJQUFXLElBQUZPLE9BQU1BLE9BQU1BLEtBQUtQLEVBQUVPLEtBQUt1YjtRQUMxQixJQUFIdFQsS0FBS21TLHlCQUF5Qi9GLG9CQUFvQjVVO1FBQ3REOFUsT0FBT3ZXLFNBQU8rYyxJQUFHOVM7O09BRW5COztJQUVGdVIsYUFBYWdDO0lBQ2IsT0FBT0osc0JBQXNCekIsTUFBTW1CLFFBQVFQLE1BQU1qVztHQUNuRDtHQWpmQSxTQUFTd1gsZ0JBQWdCdlosR0FBRTNDLEdBQUVvYixPQUMzQixPQUFPelksVUFBVTNDLEdBQUVvYixPQUNyQjtHR3ZMQSxTQUFTZSxvQkFBcUJqZixHQUFHaUQ7SUFDL0JqRCxJQUFJbVosa0JBQWtCblosR0FBRzZkLGdCQUFnQjVhO0lBQ3pDakQsSUFBSW1aLGtCQUFrQm5aLEdBQUc0ZCxnQkFBZ0IzYTtJQUN6QyxPQUFPakQ7R0FDVDtHQVZBLFNBQVNrZixvQkFBcUJsZixHQUFHbWY7SUFDL0IsT0FBT0Ysb0JBQW9CamYsR0FBR29jLHlCQUEwQitDO0dBQzFEO0dId3JCQSxTQUFTQyxhQUFhM0g7SUFDcEIsSUFBSTRILFdBQVc3QixpQkFBaUIvRixVQUM1QnpYO0lBQ0osT0FBT3lYOzs7O09BSUwsR0FBRzRILGdCQUFnQkE7T0FDbkIsSUFBSUMsT0FBT3BlO09BQ1gsSUFBSUEsT0FBT0EsU0FBU3VXLGdCQUFnQnZXLE9BQUs7UUFDdkNvZTtTQUFJN0gsUUFBUXZXLFNBQVF1VyxRQUFRdlcsY0FBY3VXLFFBQVF2VztXQUFldVcsUUFBUXZXO1FBQ3pFbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUVzZjs7T0FFMUJBO09BQ0EsT0FBUUQ7O1VBQ0FDLElBQUs3SCxRQUFRdlc7O1VBQ2JvZSxLQUFLN0gsUUFBUXZXOztVQUNib2UsS0FBSzdILFFBQVF2VyxRQUNuQmxCLElBQUltWixrQkFBa0JuWixHQUFHc2Y7O09BRTNCOzs7T0FHQSxHQUFHRCxnQkFBZ0JBO09BQ25CLElBQUlDLE9BQU9wZTtPQUNYLElBQUlBLE9BQU9BLFNBQVN1VyxnQkFBZ0J2VyxPQUFLO1FBQ3ZDb2UsSUFBSTdILFFBQVF2VyxTQUFRdVcsUUFBUXZXO1FBQzVCbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUVzZjs7T0FFMUIsSUFBS0Qsb0JBQ0hyZixJQUFJbVosa0JBQWtCblosR0FBR3lYLFFBQVF2VztPQUNuQzs7T0FFQSxHQUFJbWUsZUFBZUE7T0FDbkIsSUFBVyxJQUFGbmUsT0FBT0EsSUFBSW1lLFVBQVVuZSxLQUFLbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUd5WCxRQUFRdlc7T0FDcEU7OztPQUdBLEdBQUltZSxlQUFlQTtPQUNuQixJQUFXLElBQUZuZSxPQUFPQSxJQUFJbWUsVUFBVW5lLEtBQUtsQixJQUFJbVosa0JBQWtCblosR0FBR3lYLFFBQVF2VztPQUNwRTs7T0FFQSxHQUFJbWUsZUFBZUE7T0FDbkJBO09BQ0EsSUFBVyxJQUFGbmUsT0FBT0EsSUFBSW1lLFVBQVVuZSxLQUM1QmxCLElBQUltWixrQkFBa0JuWixHQUFHeVgsUUFBUXZXO09BRW5DOztPQUVBbWU7O09BRUEsR0FBSUEsZUFBZUE7T0FDbkIsSUFBVyxJQUFGbmUsT0FBT0EsSUFBSW1lLFVBQVVuZTtRQUFLbEIsSUFBSWtmLG9CQUFvQmxmLEdBQUd5WCxRQUFRdlc7T0FDdEU7O09BRUFtZTs7T0FFQSxHQUFJQSxlQUFlQTtPQUNuQixJQUFXLElBQUZuZSxPQUFPQSxJQUFJbWUsVUFBVW5lO1FBQUtsQixJQUFJa2Ysb0JBQW9CbGYsR0FBR3lYLFFBQVF2VztPQUN0RTs7SUFFRixPQUFPbEI7R0FDVDtHTHhvQkEsU0FBU3VmLHFCQUFxQmQsUUFBUTFCLE1BQ3BDQSxhQUNBLE9BQU8wQjtHQUNUO0dBSUEsU0FBU2UseUJBQXlCZixRQUFRMUI7SUFDeEMsT0FBUTBCOztPQUVOMUIsYUFDQSxPQUFPMEI7O09BRVB4VTtlQUNPQTs7R0FFWDtHQWhDQSxTQUFTd1YscUJBQXFCaEIsUUFBUTFCO0lBQzlCLElBQUZwYSxRQUFRNkY7SUFDWixJQUFXLElBQUZ0RixPQUFNQSxPQUFNQSxLQUFLUCxFQUFFTyxLQUFLdWI7SUFDakMxQjtJQUNBLE9BQU94RixvQkFBcUI1VTtHQUM5QjtHakJTQSxTQUFTK2MsbUJBQW1CNWdCLEdBQUV3QixHQUFHNGQsT0FBUyxPQUFPcGYsVUFBVXdCLEdBQUc7R0E4SjlELFNBQVNxZixnQkFBZ0IxYyxHQUN2QixPQUFRQSxXQUFhQSxTQUN2QjtHaUJ4SW9CO0lBQWhCMmM7O3FCQUVnQkg7bUJBQ0RwSDs7aUJBRUhxSDtjQUNIQzsyQkFHUUo7MkJBSUFDOzs7aUJBSVdmLFFBQVEvQjtTQUFLLE9BQU84QixvQkFBcUJDLFFBQU8vQjtRQUExRDttQkFDSEQ7aUJBQ0Z1QztjQUNKSTs7O2lCQUdtQlgsUUFBUS9CO1NBQUssT0FBTzhCLG9CQUFxQkMsUUFBTy9CO1FBQTFEO21CQUNIRDtpQkFDRnVDO2NBQ0pJO0dXbE9iLFNBQVNTLDRCQUE0QnBhO0lBQ25DLE9BQU9tYSxnQkFBZ0JuYTtjQUFrQm1hLGdCQUFnQm5hO0dBQzNEO0dBSUEsU0FBU3FhLCtCQUErQkMsS0FBS0MsUUFBUUMsTUFBTS9CO0lBQ2hELElBQUwzWixPQUFPc2IsNEJBQTRCRztJQUN2QyxHQUFHemIsS0FBTTtLQUNELElBQUZ6RixJQUFLbWhCLFdBQVUxYixLQUFLeWIsUUFBT0QsS0FBSTdCLFNBQU8zWixLQUFLd2IsS0FBSUMsUUFBTzlCO0tBQzFELEdBQUdBLFNBQVNwZixLQUFLQSxHQUFHLE9BQU9taEI7S0FDM0IsS0FBSW5oQixPQUFNQSxHQUFHLFNBQVFBO0tBQ3JCLElBQUlBLGFBQWEsT0FBUUE7O0lBRTNCLE9BQU9taEI7R0FDVDtHQXRDQSxTQUFTQyxxQkFBcUJ6YTtJQUM1QixVQUFXQTtLQUFnQjtZQUNsQk0saUJBQWlCTjtLQUFJO1lBQ3JCTyxrQkFBa0JQO0tBQUk7WUFDdEJBLGFBQWErQyxTQUFTL0MsU0FBVUEsY0FBYUEsWUFBYSxDQUV6RCxJQUFKbEcsTUFBTWtHLFVBR1YsT0FBUWxHLGlCQUFjQTtZQUVma0csYUFBYXRDO0tBQVE7bUJBQ2RzQztLQUFlO1lBQ3RCQSxhQUFhb1E7S0FBUTtZQUNyQnBRLEtBQUtBO0tBQWU7WUFDcEJBLEtBQUtBO0tBQVc7bUJBQ1RBO0tBQWlCO21CQUNqQkEsZUFBZTtJQUMvQjtHQUNGO0dBME1BLFNBQVMwYSxpQkFBa0IxYSxHQUFHM0M7SUFDNUIsR0FBSTJDLElBQUkzQyxHQUFHO0lBQWEsR0FBSTJDLEtBQUszQyxHQUFHO0lBQVU7R0FDaEQ7RzNCMGFBLFNBQVNzZCxvQkFBb0J4WixJQUFJRTtJQUMvQixPQUFRRixLQUFLRSxXQUFRRixLQUFLRTtHQUM1QjtHQXRKQSxTQUFTdVosbUJBQW1CelosSUFBSUU7SUFDN0JGLFlBQWFsQiw2QkFBNkJrQjtJQUMxQ0UsWUFBYXBCLDZCQUE2Qm9CO0lBQzNDLE9BQVFGLE9BQU9FLGFBQVVGLE9BQU9FO0dBQ2xDO0cyQjNjQSxTQUFTd1osaUJBQWtCN2EsR0FBRzNDLEdBQUdvYjtJQUNyQixJQUFOcUM7SUFDSixPQUFRO0tBQ04sTUFBTXJDLFNBQVN6WSxNQUFNM0MsR0FBSTtNQUNiLElBQU4wZCxRQUFRTixxQkFBcUJ6YTtNQUVqQyxHQUFHK2EsYUFBYyxDQUFFL2EsSUFBSUEsTUFBTTtNQUVuQixJQUFOZ2IsUUFBUVAscUJBQXFCcGQ7TUFFakMsR0FBRzJkLGFBQWMsQ0FBRTNkLElBQUlBLE1BQU07TUFHN0IsR0FBRzBkLFVBQVVDLE1BQU87T0FDbEIsR0FBR0QsY0FBZTtRQUNoQixHQUFHQztTQUFlLE9BQ1RYLCtCQUErQnJhLEdBQUczQyxRQUFPb2I7UUFFbEQ7O09BRUYsR0FBR3VDLGNBQWU7UUFDaEIsR0FBR0Q7U0FBZSxPQUNUViwrQkFBK0JoZCxHQUFHMkMsTUFBTXlZO1FBRWpEOztPQUVGLE9BQVFzQyxRQUFRQzs7TUFFbEIsT0FBT0Q7O1NBSUw1ZSxvREFDQTs7U0FFTSxJQUFGOUMsSUFBSXFoQixpQkFBaUIxYSxNQUFNM0MsT0FDL0IsR0FBSWhFLFFBQVEsT0FBUUEsT0FDcEI7O1NBR0E4QyxvREFDQTs7U0FHQUE7U0FDQTs7U0FFQUEsZ0RBQ0E7O1NBRUEsR0FBSTZELE1BQU0zQyxFQUFHO1VBQ0wsSUFBRmhFLElBQUl1aEIsbUJBQW1CNWEsR0FBRzNDO1VBQzlCLEdBQUloRSxRQUFRLE9BQVFBOztTQUV0Qjs7U0FHQThDO1NBQ0E7O1NBR0FBOztTQUNBOztTQUVBQTtTQUNBOztTQUVBQSxvREFDQTs7U0FFUyxJQUFMMkMsT0FBT3NiLDRCQUE0QnBhO1NBQ3ZDLEdBQUdsQixRQUFRc2IsNEJBQTRCL2M7VUFBRyxPQUNoQzJDLGdCQUFjM0M7U0FFeEIsS0FBSXlCLE1BQ0YzQztTQUNJLElBQUY5QyxJQUFJeUYsS0FBS2tCLEdBQUUzQyxHQUFFb2I7U0FDakIsR0FBR3BmLEtBQUtBLEdBQUUsT0FDRG9mLGNBQVNwZjtTQUVsQixHQUFHQSxPQUFPQSxRQUFLO1NBR2YsR0FBSUEsUUFBUSxPQUFRQTtTQUNwQjs7U0FFTSxJQUFGQSxJQUFJMkcsVUFBVTNDLEdBQUVvYjtTQUNwQixHQUFHcGYsS0FBS0EsR0FBRyxPQUNGb2YsY0FBU3BmO1NBRWxCLEdBQUdBLE9BQU9BLFFBQUs7U0FHZixHQUFJQSxRQUFRLE9BQVFBO1NBQ3BCOztTQUVBMkcsTUFBS0E7U0FDTDNDLE1BQUtBO1NBQ0wsR0FBSTJDLElBQUkzQyxHQUFHO1NBQ1gsR0FBSTJDLElBQUkzQyxHQUFHO1NBQ1gsR0FBSTJDLEtBQUszQyxFQUFHO1VBQ1YsS0FBS29iLE9BQU8sT0FBT1g7VUFDbkIsR0FBSTlYLEtBQUtBLEdBQUc7VUFDWixHQUFJM0MsS0FBS0EsR0FBRzs7U0FFZDs7U0FlQSxHQUFJMkMsSUFBSTNDLEdBQUc7U0FDWCxHQUFJMkMsSUFBSTNDLEdBQUc7U0FDWCxHQUFJMkMsS0FBSzNDLEVBQUc7VUFDVixLQUFLb2IsT0FBTyxPQUFPWDtVQUNuQixHQUFJOVgsS0FBS0EsR0FBRztVQUNaLEdBQUkzQyxLQUFLQSxHQUFHOztTQUVkOztTQUVBLEdBQUcyQyxNQUFNM0MsRUFBRyxDQUNWLEtBQUtvYixPQUFPLE9BQU9YLEtBQ25CLFdBRUY7O1NBRUEsSUFBSTlYLElBQUk3RSx1QkFBdUI2RSxJQUMzQjNDLElBQUlsQyx1QkFBdUJrQztTQUMvQixHQUFHMkMsTUFBTTNDLEVBQUcsQ0FDVixHQUFHMkMsSUFBSTNDLEdBQUcsWUFDVixHQUFHMkMsSUFBSTNDLEdBQUc7U0FFWjs7U0FFQSxJQUFJMkMsSUFBSUEsY0FDSjNDLElBQUlBO1NBQ1IsR0FBRzJDLE1BQU0zQyxFQUFHLENBQ1YsR0FBRzJDLElBQUkzQyxHQUFHLFlBQ1YsR0FBRzJDLElBQUkzQyxHQUFHO1NBRVo7Ozs7U0FJQSxHQUFHNlkseUJBQXlCNkUsT0FBUTtVQUNsQzVlO1VBQ0E7O1NBRUYsR0FBSTZELFlBQVkzQyxVQUFVLE9BQVEyQyxXQUFXM0M7U0FDN0MsR0FBSTJDLGNBQWM4YSxXQUFXOWEsR0FBRzNDO1NBQ2hDOzs7S0FHSixHQUFJeWQsbUJBQW1CO0tBQ2pCLElBQUZyZixJQUFJcWY7S0FDUnpkLElBQUl5ZDtLQUNKOWEsSUFBSThhO0tBQ0osR0FBSXJmLFFBQVF1RSxVQUFVOGEsV0FBVzlhLEdBQUczQyxHQUFHNUI7S0FDdkN1RSxJQUFJQSxFQUFFdkU7S0FDTjRCLElBQUlBLEVBQUU1Qjs7R0FFVjtHQW1CQSxTQUFTd2YsaUJBQWtCNWhCLEdBQUd3QjtJQUFLLFVBQVNnZ0IsaUJBQWlCeGhCLEdBQUV3QjtHQUFlO0dkYTlFLFNBQVNxZ0IsV0FBV2xiLEdBQUczQyxHQUFHYjtJQUN4QjtLQUFJbkQsSUFBSTJHLGFBQWEzQztLQUNqQnhDLElBQUlqQixXQUFXUCxJQUFFbUQ7S0FDakI0VSxJQUFLL1gsSUFBSW1EO0tBQ1RxZCxJQUFJekksS0FBSy9UO0lBQ2IsUUFBUXhDLElBQUlqQixXQUFXaWdCLElBQUVyZCxJQUFJcWQsSUFBSXJkO0dBQ25DO0dBS0EsU0FBUzJlLGNBQWNDLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU12VyxNQUFNQyxNQUFNM0ksS0FBSzZJLE1BQU1DO0lBQzVELElBQUpvVyxNQUFPeFcsVUFBVUMsT0FBSzNJO0lBRzFCLElBQVUsSUFBRmIsSUFBSWEsU0FBT2IsUUFBUUEsSUFBSztLQUN4QjtNQUFGcEMsSUFBSTZoQixXQUFXTSxLQUFNeFcsVUFBVUMsT0FBS3hKLFVBQVkwSixVQUFVQztLQUM5RGdXLFVBQVVDLE9BQUs1ZixLQUFLcEM7S0FDcEJtaUIsTUFBTW5pQjs7SUFFUmlpQixVQUFVQyxRQUFRQztJQUNsQjtHQUNGO0dBak1BLFNBQVNDLCtCQUErQjdILEtBQUsxQjtJQUMzQyxJQUFJbFMsSUFBSTRULFNBQVMxQixNQUNiN1U7SUFDSixHQUFHMkMsZUFBZ0IsQ0FBRTNDLFNBQVEyQztJQUM3QixHQUFHQSxXQUFnQixDQUFFM0MsUUFBUTJDO0lBQzdCLEdBQUdBLFNBQWdCLENBQUUzQyxRQUFRMkM7SUFDN0IsR0FBR0EsT0FBZ0IsQ0FBRTNDLFFBQVEyQztJQUM3QixHQUFHQSxNQUFnQixDQUFFM0MsUUFBUTJDO0lBQzdCLEdBQUdBLE9BQWtCM0M7SUFDckIsWUFBWUE7R0FDZDtHQWdKQSxTQUFTcWUsZUFBZTFXLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DO0lBQ3BELEdBQUdBLFdBQVksQ0FDYkYsVUFBVUMsV0FDVjtJQUVPLElBQUxFO0lBQ0osSUFBVSxJQUFGN0osT0FBT0EsSUFBSXlKLE1BQU16SixJQUFLO0tBQ3RCLElBQUZ1RSxJQUFLZ0YsVUFBVUMsT0FBS3hKO0tBQ3hCdUosVUFBVUMsT0FBS3hKLEtBQU11RSxLQUFLcUYsUUFBU0M7S0FDbkNBLE9BQU90RixXQUFZcUY7O0lBRXJCRixVQUFVQyxRQUFRRTtJQUNsQjtHQUNGO0dBM1BBLFNBQVNxVyxNQUFNdGlCO0lBQ2JnQixnQkFBZ0JvYyxXQUFXcGQ7SUFHM0JnQixjQUFjQTtHQUNoQjtHQUVBc2hCO0dBc0JBLFNBQVNDLFdBQVd0RTtJQUNWLElBQUoxTyxVQUFVK1MsTUFBTXJFO0lBQ3BCLElBQVUsSUFBRjdiLE9BQU9BLElBQUk2YixNQUFNN2IsS0FDdkJtTixTQUFTbk47SUFFWCxPQUFPbU47R0FDVDtHQUdBLFNBQVNpVCxnQkFBZ0JqSSxLQUFLMUIsS0FBSzVWO0lBQ2pDLElBQVUsSUFBRmIsT0FBT0EsSUFBSWEsS0FBS2IsS0FDdEJtWSxTQUFTMUIsTUFBSXpXO0lBRWY7R0FDRjtHQXdFQSxTQUFTcWdCLFNBQVNsSSxLQUFLMUIsS0FBSzVWLEtBQUt5ZjtJQUNyQixJQUFOM1MsUUFBUTJTO0lBQ1osSUFBVSxJQUFGdGdCLE9BQU9BLElBQUlhLEtBQUtiLElBQUs7S0FDckIsSUFBRnBDLEtBQUt1YSxTQUFTMUIsTUFBSXpXLFlBQVkyTjtLQUNsQ3dLLFNBQVMxQixNQUFJelcsS0FBTXBDO0tBQ25CLEdBQUdBLEtBQU1BLFFBQVUsQ0FDakIrUCxXQUNBLGFBRUFBOztJQUdKLE9BQU9BO0dBQ1Q7R0FLQSxTQUFTNFMsUUFBUWhYLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU02VyxNQUFNRjtJQUN6QyxJQUFOM1MsUUFBUTJTO0lBQ1osSUFBVSxJQUFGdGdCLE9BQU9BLElBQUl3Z0IsTUFBTXhnQixJQUFLO0tBQ3RCO01BQUZwQyxLQUFLMkwsVUFBVUMsT0FBS3hKLGFBQWEwSixVQUFVQyxPQUFLM0osWUFBWTJOO0tBQ2hFcEUsVUFBVUMsT0FBS3hKLEtBQUtwQztLQUNwQixHQUFHQSxLQUFNQSxTQUNQK1AsZ0JBRUFBOztJQUdKLE9BQU8wUyxTQUFTOVcsTUFBTUMsT0FBS2dYLE1BQU0vVyxPQUFLK1csTUFBTTdTO0dBQzlDO0dBMUhBLFNBQVM4UyxhQUFheGlCLEdBQ3BCLFdBQVdpaUIsTUFBTWppQixHQUNuQjtHQXdLQSxTQUFTeWlCLGVBQWVuWCxNQUFNQyxNQUFNQyxNQUFNQyxNQUFNQyxNQUFNNlcsTUFBTUcsTUFBTUM7SUFDaEUsSUFBSWpULFdBQ0FwSixJQUFLb2MsVUFBVUM7SUFDbkIsSUFBVSxJQUFGNWdCLE9BQU9BLElBQUl3Z0IsTUFBTXhnQixJQUFLO0tBQzVCO01BQUk2Z0I7U0FBTXRYLFVBQVVDLE9BQUt4SjtXQUFhMEosVUFBVUMsT0FBSzNKLGFBQWF1RTtVQUFrQm9KO01BQ2hGbVQsTUFBTXBYLFVBQVVDLE9BQUszSixhQUFhdUU7S0FDdENvSixRQUFReFAsV0FBVzJpQjtLQUNaLElBQUhDLEtBQUtGLEtBQU1DO0tBQ2Z2WCxVQUFVQyxPQUFLeEosS0FBSytnQjtLQUNwQnBULFNBQVN4UCxXQUFXNGlCOztJQUd0QixPQUFHUCxPQUFPL1csUUFBUWtFO2NBQ1Q0UztlQUFRaFgsTUFBTUMsT0FBS2dYLE1BQU0vVyxPQUFLK1csTUFBTUMsY0FBYzlTO2NBRWxEQTtHQUVYO0dBdERBLFNBQVNxVCxTQUFTN0ksS0FBSzFCLEtBQUs1VixLQUFLeWY7SUFDcEIsSUFBUG5TLFNBQVVtUztJQUNkLElBQVUsSUFBRnRnQixPQUFPQSxJQUFJYSxLQUFLYixJQUFLO0tBQ3JCLElBQUZwQyxLQUFLdWEsU0FBUzFCLE1BQUl6VyxZQUFXbU87S0FDakNnSyxTQUFTMUIsTUFBSXpXLEtBQUtwQztLQUNsQixHQUFJQSxPQUFRLENBQ1Z1USxZQUNBLGFBRUFBOztJQUdKLE9BQVFBO0dBQ1Y7R0FNQSxTQUFTOFMsUUFBUTFYLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU02VyxNQUFNRjtJQUN4QyxJQUFQblMsU0FBVW1TO0lBQ2QsSUFBVSxJQUFGdGdCLE9BQU9BLElBQUl3Z0IsTUFBTXhnQixJQUFLO0tBQ3RCO01BQUZwQyxLQUFLMkwsVUFBVUMsT0FBS3hKLGFBQWEwSixVQUFVQyxPQUFLM0osWUFBWW1PO0tBQ2hFNUUsVUFBVUMsT0FBS3hKLEtBQUtwQztLQUNwQixHQUFJQSxRQUNGdVEsaUJBRUFBOztJQUdKLE9BQU82UyxTQUFTelgsTUFBTUMsT0FBS2dYLE1BQU0vVyxPQUFLK1csTUFBT3JTO0dBQy9DO0dBNEpBLFNBQVMrUyxZQUFZM1gsTUFBTUMsTUFBTUMsTUFBTUMsTUFBTUMsTUFBTTZXO0lBQ2pEO0tBQUlqYyxJQUFJMlQsZUFBZTNPLE1BQU1DLE1BQU1DO0tBQy9CN0gsSUFBSXNXLGVBQWV4TyxNQUFNQyxNQUFNNlc7SUFDbkMsR0FBR2pjLElBQUkzQyxHQUFHO0lBQ1YsR0FBRzJDLElBQUkzQyxHQUFHO0lBQ1YsSUFBVSxJQUFGNUIsSUFBSXlKLFVBQVV6SixRQUFRQSxJQUFLO0tBQ2pDLEdBQUt1SixVQUFVQyxPQUFLeEosV0FBYTBKLFVBQVVDLE9BQUszSixVQUFXO0tBQzNELEdBQUt1SixVQUFVQyxPQUFLeEosV0FBYTBKLFVBQVVDLE9BQUszSixVQUFXOztJQUU3RDtHQUNGO0dBckVBLFNBQVNtaEIsUUFBUTVYLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU02VztJQUM3QyxHQUFHQSxVQUFXO0tBQ1pkLGNBQWNuVyxNQUFNQyxVQUFRRCxNQUFNQyxNQUFNRCxNQUFNQyxNQUFNQyxNQUFNQyxNQUFNQztLQUNoRTs7SUFHSSxJQUFGNUwsSUFBSWlpQiwrQkFBK0J0VyxNQUFNQyxPQUFLNlc7SUFDbERQLGVBQWV2VyxNQUFNQyxNQUFNNlcsTUFBTUMsc0JBQXNCMWlCO0lBQ3ZEa2lCLGVBQWUxVyxNQUFNQyxNQUFNQyxNQUFNZ1gsc0JBQXNCMWlCO0lBRXZELElBQUl5RixLQUFLa0csVUFBVUMsT0FBSzZXLHNCQUNwQmpjLElBQUk0YixXQUFXSztJQUNuQixJQUFXLElBQUZ4Z0IsSUFBSXlKLFVBQVV6SixLQUFLd2dCLE1BQU14Z0IsSUFBSztLQUU3QjtNQUFKb2hCO1FBQU01ZDtXQUFtQitGLFVBQVVDLE9BQUt4SjtXQUFZeWY7YUFBWWxXLFVBQVVDLE9BQUt4SixVQUFZdUosVUFBVUMsT0FBS3hKLGNBQVl3RDs7S0FDMUg0YyxnQkFBZ0I3YixNQUFNaWM7S0FDdEJFLGVBQWVuYyxNQUFNaWMsVUFBUTlXLE1BQU1DLE1BQU02VyxNQUFNQyxjQUFjVztLQUM3REgsUUFBUTFYLE1BQU1DLE9BQUt4SixJQUFFd2dCLE1BQU1BLFVBQVFqYyxNQUFNaWM7S0FFekM7TUFBT2pYLFVBQVVDLE9BQUt4SjtTQUFXa2hCLFlBQVkzWCxNQUFNQyxPQUFLeEosSUFBRXdnQixNQUFNQSxNQUFNOVcsTUFBTUMsTUFBTTZXLFdBQVk7TUFDNUZZLE1BQU1BO01BQ05ILFFBQVExWCxNQUFNQyxPQUFLeEosSUFBRXdnQixNQUFNQSxVQUFROVcsTUFBTUMsTUFBTTZXOztLQUdqRGpYLFVBQVVDLE9BQUt4SixLQUFLb2hCOztJQUd0QjlYLGdCQUFnQkMsTUFBTUMsTUFBTWdYLE1BQU1DLHNCQUFzQjFpQjtJQUN4RHVMLGdCQUFnQkksTUFBTUMsTUFBTTZXLE1BQU1DLHNCQUFzQjFpQjtJQUN4RDtHQUNGO0dRa0xBLFNBQVNzakIsYUFBYUMsS0FBS0M7SUFDekIsR0FBSUEsbUJBQW1CRDtLQUNyQjVnQjtJQUNGLElBQVcsSUFBRlYsT0FBT0EsSUFBSXVoQixpQkFBaUJ2aEI7S0FDbkMsR0FBSXVoQixTQUFTdmhCLE1BQU1zaEIsU0FBU3RoQjtNQUMxQlU7SUFDSjZnQixhQUFhRDtJQUNiO0dBQ0Y7R1JuWkEsU0FBU0UsYUFBYXJKLEtBQUsxQixLQUN6QixHQUFJMEIsU0FBUzFCLFdBQVcsVUFDeEIsU0FDRjtHZGtKQSxTQUFTZ0wsZUFBZ0I3akIsR0FBR3dCLEdBQUssT0FBT3hCLE1BQU13QixHQUFHO0c2QjNOakQsU0FBU3NpQixzQkFBc0IzakI7SUFDbEIsSUFBUDRqQjtJQUNKLEdBQUc1akIsUUFBUTRqQixRQUNYO0tBQ0UsSUFBSXhXLEtBQUt5VyxPQUFPQztLQUNoQkQsaUJBQWdCN2pCO0tBQ2hCb04sTUFBS3lXLG9CQUFvQkE7S0FDekJBLE9BQUs1ZDtLQUNMLE9BQU9tSDs7O0tBR1BwQyxrQ0FBa0NoTDtHQUV0QztHNUI0bEJBLFNBQVMrakIsdUJBQXdCL2pCLEdBQUdpQyxHQUFHZTtJQUNyQ2dJO0dBQ0Y7R0Q3WEEsU0FBU2daLG9CQUFxQm5rQjtJQUM1QixHQUFJQSxPQUFPQSxJQUFJTyxVQUFVUDtJQUN6QjtZQUFXWTthQUNUWjthQUNBTyxXQUFXUCxJQUFJTTthQUNmQyxXQUFXUCxJQUFJTSxvQkFBb0JBO0dBQ3ZDO0drQnZGQSxTQUFTOGpCLHdCQUF3QnhXO0lBQ3RCLElBQUxOLE9BQU9GLGlCQUFpQlE7SUFDNUIsT0FBT3VXLG9CQUFvQjdXO0dBQzdCO0dJOFJBLFNBQVMrVyxjQUFjMUwsSUFBSUMsSUFBSTdRLElBQUk1RDtJQUNqQ3dVLE9BQU9BLFdBQVdDLElBQUc3USxNQUFNNUQ7SUFDM0I7R0FDRjtHRHdrQkEsU0FBU21nQixlQUFlcGtCLEdBQUVxZDtJQUN4QnBTO0dBQ0Y7R0EzMkJBLFNBQVNvWixjQUFjQztJQUNiLElBQUoxTjtJQUNKLEdBQUc4SixtQkFBbUI0RCxLQUFLM0YsbUNBQW1DLENBQzVEL0gsWUFDQTBOLE1BQU0zaUIsZUFBZTJpQjtJQUV2QjtLQUFJM2pCLEtBQUtrZSxnQkFBZ0J5RjtLQUNyQnpqQixLQUFLK2QsZ0JBQWdCMEY7S0FDckJ4a0IsSUFBSWdPLE9BQU9uTixRQUFRbU4sT0FBT2pOO0lBQzlCLEdBQUcrVixLQUFPOVcsSUFBSUE7SUFDZCxPQUFPMlgsZUFBZTNYO0dBQ3hCO0dqQnBFQTtJQUFJeWtCO01BQWE7UUFDZixJQUFJemlCLFVBQVVDLG9CQUNWeWlCLGdCQUNBcmU7UUFFSixHQUFHckUsV0FDR0EsZ0JBQ0FBLHdCQUF5QjtTQUNwQixJQUFMMmlCLE9BQU8zaUI7U0FFWDBpQixPQUFPQztTQUNQdGUsT0FBT3NlOztRQUdULElBQUlqaEIsSUFBSW1DLHdCQUF3QjZlLE9BQzVCRSxZQUFZbGhCO1FBQ2hCLElBQVUsSUFBRnRCLE9BQU9BLElBQUlpRSxhQUFhakU7U0FDOUJ3aUIsV0FBVy9lLHdCQUF3QlEsS0FBS2pFO1FBQzFDLE9BQU93aUI7T0FsQlM7O0lBdUJkQyx1QkFBdUJKO0dFa1AzQixTQUFTSyxvQkFBcUIza0IsR0FBSSxPQUFPNGtCLEtBQUt6Z0Isd0JBQXdCbkUsSUFBSTtHUWQxRSxTQUFTNmtCLGNBQWN4TCxRQUFRZSxLQUFLcUQ7SUFDMUIsSUFBSjNhLE1BQU1zWDtJQUNWZixpQkFBaUJ2VztJQUNqQixJQUFVLElBQUZiLE9BQU9BLElBQUlhLEtBQUtiLEtBQ3RCb1gsaUJBQWlCZSxTQUFTblk7SUFFNUJ3YixRQUFRM2E7SUFDUjJhLFFBQVEzYTtHQUNWO0dLcldBLFNBQVNnaUIsaUJBQWlCQyxVQUN4QixTQUNGO0dFWkEsU0FBU0MsU0FBU3ROLElBQ2hCLE9BQU9GLGVBQWUzSixPQUFPNkosY0FDL0I7R2pCVEEsU0FBU3VOLGNBQWVwZjtJQUN0QixHQUFHL0QsaUJBQWlCQSxnQkFBZ0IrRDtJQUVwQyxHQUFHL0Qsc0JBQXNCQTtLQUN2QkEsd0JBQXdCK0Q7SUFDMUJsRDtHQUNGO0djZ0lBLFNBQVN1aUIsd0JBQXdCelg7SUFDdEIsSUFBTE4sT0FBT0YsaUJBQWlCUTtJQUM1QixPQUFPTjtHQUNUO0daa0NBLFNBQVNnWSxtQkFBbUIzZSxHQUMxQixPQUFPQSxXQUNUO0dnQjBYQSxTQUFTNGUsZ0JBQWdCNU0sSUFBSTZNO0lBQzNCQSxPQUFPRixtQkFBbUJFO0lBQzFCLElBQUlDLGNBQ0E3RixXQUFXNEY7SUFFZixHQUFJNUYsZ0JBQWdCQTtLQUNsQjljO0lBRVcsSUFBVHlkO0lBQ0osSUFBVyxJQUFGbmUsT0FBT0EsSUFBSXdkLFVBQVV4ZCxJQUFLO0tBQ2pDcWpCLFFBQVFyakIsS0FBS29qQixLQUFLcGpCO0tBQ2xCLEdBQUlxakIsUUFBUXJqQjtNQUNWVTtLQUNGeWQsV0FBV0EsV0FBV2tGLFFBQVFyakI7O0lBR3ZCLElBQUw2YixPQUFPUyxpQkFBaUIvRjtJQUU1QixHQUFJNEgsWUFBWXRDO0tBQ2RuYjtJQUNGLE9BQU8wYyxzQkFBc0I3RyxTQUFTQSxXQUFXOE0sU0FBUzlNO0dBQzVEO0dJL2NvQixJQUFoQitNO0dBSUosU0FBU0MsZUFBZ0IzaEIsR0FDdkJBLE9BQUswaEIsbUJBQ0wsT0FBTzFoQixFQUNUO0dYMEtBLFNBQVM0aEIsa0JBQWtCNWxCLEdBQUV3QixHQUFFZ2YsR0FBRXRmO0lBQ3pCLElBQUZmLElBQUlnTTtJQUNSaE0sbUJBQW1CSCxHQUFFRyxXQUFXcUIsR0FBRWdmLEtBQUd0ZjtJQUNyQztHQUNGO0dlelBBLFNBQVMya0IsaUNBQWlDQyxNQUFNQyxNQUFNQyxLQUFLQyxNQUFNaGpCO0lBQy9ELFNBQVMraUI7S0FDUGxqQjtJQUNGLEdBQUdHLFVBQVU7SUFDSixJQUFMOEksT0FBT2lhLFdBQVdDO0lBQ3RCLEdBQUdGLE9BQU85aUIsTUFBTTJHLHNCQUFzQmtjLE9BQ3BDcFk7SUFFRixHQUFHM0IsT0FBTzlJLE1BQU0raUIsaUJBQ2R0WTtJQUVRLElBQU53WSxRQUFRcGMsMkJBQTJCZ2MsWUFBWUMsTUFBS0EsT0FBTzlpQjtJQUMvRCtpQixhQUFhRSxPQUFNbmE7SUFDbkI7R0FDRjtHZnNEQSxTQUFTb2EseUJBQXlCOWdCO0lBQzFCLElBQUZsRixJQUFJZ007SUFDUmhNLFVBQVVrRjtJQUNDLElBQVArZ0IsU0FBUzloQix3QkFBd0JlO0lBQ3JDLEdBQUdsRixhQUFhQSxZQUFZaW1CO0lBQzVCO0dBQ0Y7R1ptREEsU0FBU0MsdUJBQTBCLE9BQU8zbEIsaUJBQWtCO0dIMkQ1RCxTQUFTNGxCLGdDQUFpQ3RtQixHQUFHRyxHQUFLLE9BQU9ILHVCQUF1Qkc7R0FBRztHc0JxSW5GLFNBQVNvbUIsb0JBQW9CNU4sSUFBSUM7SUFDdkIsSUFBSkMsTUFBTUYsVUFBVUM7SUFDcEIsR0FBR0MsV0FBV0YsZ0JBQWdCakw7SUFDOUIsSUFBSW9MLEtBQUtILE9BQU9FLE1BQ1pFLEtBQUtKLE9BQU9FO0lBQ2hCLE9BQVFDLEtBQU1DO0dBQ2hCO0dEOU1BLFNBQVN5TixjQUFjcGtCLEdBQ3JCLE9BQU9BLE1BQ1Q7R09tREEsU0FBU3FrQixhQUFjOWYsR0FBRzNDLEdBQUssT0FBT3dkLGlCQUFrQjdhLEdBQUczQyxTQUFVO0dHNUwvQztJQUFsQjBpQjtNQUFvQjtRQUN0QixTQUFTOVcsSUFBSzVQLEdBQUd3QixHQUFLLE9BQVF4QixJQUFJd0IsTUFBUTtRQUMxQyxTQUFTbWxCLEdBQUdsbEIsR0FBRWtGLEdBQUUzQyxHQUFFaEUsR0FBRUcsR0FBRTBEO1NBQ3BCOEMsSUFBSWlKLElBQUlBLElBQUlqSixHQUFHbEYsSUFBSW1PLElBQUk1UCxHQUFHNkQ7U0FDMUIsT0FBTytMLElBQUtqSixLQUFLeEcsSUFBTXdHLFdBQVl4RyxHQUFLNkQ7UUFDMUM7UUFDQSxTQUFTNGlCLEdBQUdqZ0IsR0FBRTNDLEdBQUViLEdBQUV5QyxHQUFFNUYsR0FBRUcsR0FBRTBEO1NBQ3RCLE9BQU84aUIsR0FBSTNpQixJQUFJYixNQUFRYSxJQUFLNEIsR0FBSWUsR0FBRzNDLEdBQUdoRSxHQUFHRyxHQUFHMEQ7UUFDOUM7UUFDQSxTQUFTZ2pCLEdBQUdsZ0IsR0FBRTNDLEdBQUViLEdBQUV5QyxHQUFFNUYsR0FBRUcsR0FBRTBEO1NBQ3RCLE9BQU84aUIsR0FBSTNpQixJQUFJNEIsSUFBTXpDLE1BQU15QyxHQUFLZSxHQUFHM0MsR0FBR2hFLEdBQUdHLEdBQUcwRDtRQUM5QztRQUNBLFNBQVNpakIsR0FBR25nQixHQUFFM0MsR0FBRWIsR0FBRXlDLEdBQUU1RixHQUFFRyxHQUFFMEQsR0FBSyxPQUFPOGlCLEdBQUczaUIsSUFBSWIsSUFBSXlDLEdBQUdlLEdBQUczQyxHQUFHaEUsR0FBR0csR0FBRzBELEdBQUk7UUFDbEUsU0FBU2tqQixHQUFHcGdCLEdBQUUzQyxHQUFFYixHQUFFeUMsR0FBRTVGLEdBQUVHLEdBQUUwRDtTQUFLLE9BQU84aUIsR0FBR3hqQixLQUFLYSxNQUFNNEIsSUFBS2UsR0FBRzNDLEdBQUdoRSxHQUFHRyxHQUFHMEQ7UUFBSTtRQUV2RSxnQkFBaUIyYyxHQUFHbGQ7U0FDbEIsSUFBSXFELElBQUk2WixNQUFNeGMsSUFBSXdjLE1BQU1yZCxJQUFJcWQsTUFBTTVhLElBQUk0YTtTQUV0QzdaLElBQUlpZ0IsR0FBR2pnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlnaEIsR0FBR2hoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUl5akIsR0FBR3pqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNGlCLEdBQUc1aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlpZ0IsR0FBR2pnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlnaEIsR0FBR2hoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUl5akIsR0FBR3pqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNGlCLEdBQUc1aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlpZ0IsR0FBR2pnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlnaEIsR0FBR2hoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUl5akIsR0FBR3pqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNGlCLEdBQUc1aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlpZ0IsR0FBR2pnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlnaEIsR0FBR2hoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUl5akIsR0FBR3pqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNGlCLEdBQUc1aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUVuQnFELElBQUlrZ0IsR0FBR2xnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlpaEIsR0FBR2poQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkwakIsR0FBRzFqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNmlCLEdBQUc3aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlrZ0IsR0FBR2xnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlpaEIsR0FBR2poQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkwakIsR0FBRzFqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNmlCLEdBQUc3aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlrZ0IsR0FBR2xnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlpaEIsR0FBR2poQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkwakIsR0FBRzFqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNmlCLEdBQUc3aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlrZ0IsR0FBR2xnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlpaEIsR0FBR2poQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkwakIsR0FBRzFqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJNmlCLEdBQUc3aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUVuQnFELElBQUltZ0IsR0FBR25nQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlraEIsR0FBR2xoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkyakIsR0FBRzNqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJOGlCLEdBQUc5aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUltZ0IsR0FBR25nQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlraEIsR0FBR2xoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkyakIsR0FBRzNqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJOGlCLEdBQUc5aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUltZ0IsR0FBR25nQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlraEIsR0FBR2xoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkyakIsR0FBRzNqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJOGlCLEdBQUc5aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUltZ0IsR0FBR25nQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUlraEIsR0FBR2xoQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUkyakIsR0FBRzNqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJOGlCLEdBQUc5aUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUVuQnFELElBQUlvZ0IsR0FBR3BnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUltaEIsR0FBR25oQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUk0akIsR0FBRzVqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJK2lCLEdBQUcvaUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlvZ0IsR0FBR3BnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUltaEIsR0FBR25oQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUk0akIsR0FBRzVqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJK2lCLEdBQUcvaUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlvZ0IsR0FBR3BnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUltaEIsR0FBR25oQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUk0akIsR0FBRzVqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJK2lCLEdBQUcvaUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUNuQnFELElBQUlvZ0IsR0FBR3BnQixHQUFHM0MsR0FBR2IsR0FBR3lDLEdBQUd0QztTQUNuQnNDLElBQUltaEIsR0FBR25oQixHQUFHZSxHQUFHM0MsR0FBR2IsR0FBR0c7U0FDbkJILElBQUk0akIsR0FBRzVqQixHQUFHeUMsR0FBR2UsR0FBRzNDLEdBQUdWO1NBQ25CVSxJQUFJK2lCLEdBQUcvaUIsR0FBR2IsR0FBR3lDLEdBQUdlLEdBQUdyRDtTQUVuQmtkLE9BQU81USxJQUFJakosR0FBRzZaO1NBQ2RBLE9BQU81USxJQUFJNUwsR0FBR3djO1NBQ2RBLE9BQU81USxJQUFJek0sR0FBR3FkO1NBQ2RBLE9BQU81USxJQUFJaEssR0FBRzRhLE1BMUVUO09BZmdCOztHQXlHekIsU0FBU3dHLGVBQWVDLEtBQUtDLE9BQU9DO0lBQ2xDLElBQUlDLFNBQVNILGdCQUNUSTtJQUNKSixXQUFXRTtJQUNYLEdBQUdDLE9BQU87S0FDSSxJQUFSRSxlQUFlRjtLQUNuQixHQUFHRCxZQUFZRyxRQUFTO01BQ3RCTCxXQUFXQyxrQkFBaUJDLFlBQVdDO01BQ3ZDOztLQUVGSCxXQUFXQyxrQkFBaUJJLFVBQVNGO0tBQ3JDVixrQkFBa0JPLE9BQU9BO0tBQ3pCRSxhQUFhRztLQUNiRCxhQUFhQzs7SUFFZixNQUFNSCxnQkFBZ0I7S0FDcEJGLFdBQVdDLGVBQWVHLFdBQVVBO0tBQ3BDWCxrQkFBa0JPLE9BQU9BO0tBQ3pCRTtLQUNBRTs7SUFFRixHQUFHRjtLQUNERixXQUFXQyxlQUFlRyxXQUFVQSxZQUFZRjtHQUNwRDtHZm5JQSxTQUFTSSw4QkFBOEJDLFFBQVFDLFdBQVd4RyxLQUN4RCxTQUNGO0dVa0dBLFNBQVN5RyxtQkFDUCxPQUFPaEMsa0JBQ1Q7RzFCNEhBLFNBQVNpQyxvQkFBcUIzbkIsR0FBSyxPQUFPQSxZQUFhO0dzQndKdkQsU0FBUzRuQixjQUFjalAsSUFBSUMsSUFDekIsT0FBT0QsT0FBT0EsVUFBVUMsS0FDMUI7R1F6WUEsU0FBU2lQLHNCQUFzQi9mLElBQUlpZSxNQUFNL2QsSUFBSWllLE1BQU1oakI7SUFDakQsSUFBVyxJQUFGYixPQUFPQSxJQUFJYSxLQUFLYixJQUFLO0tBQzVCLElBQUl1RSxJQUFJaWhCLGNBQWM5ZixJQUFHaWUsT0FBTzNqQixJQUM1QjRCLElBQUk0akIsY0FBYzVmLElBQUdpZSxPQUFPN2pCO0tBQ2hDLEdBQUl1RSxJQUFJM0MsR0FBRztLQUNYLEdBQUkyQyxJQUFJM0MsR0FBRzs7SUFFYjtHQUNGO0c3Qm16QkEsU0FBUzhqQixnQkFBaUIzbkIsR0FBSyxPQUFPd0MsdUJBQXVCeEMsR0FBRztHT3RqQmhFLFNBQVM0bkIsZUFBZS9uQjtJQUN0QjtLQUFJZ29CO0tBQ0FDO0tBQ0FDO0tBQ0FDO0tBQ0FDO0tBQ0Exa0I7S0FFQXZDO0lBQ0osR0FBSW5CLE9BQ0ZtQjtJQUVGbkIsSUFBSU8sU0FBU1A7SUFDYjtLQUFJNkQsaUJBQWlCSCxJQUFJMUQ7S0FDckJ3Qjs7O1lBQWM0bUIsS0FBS3ZrQixJQUFJc2tCLE1BQU10a0IsSUFBSXFrQixNQUFNcmtCLElBQUlva0IsTUFBTXBrQixJQUFJbWtCLE1BQU1ua0I7VUFBSXRELFlBQVVQLElBQUlBO0lBRWpGLE9BQU9tQixPQUFPSztHQUNoQjtHY21GQSxTQUFTNm1CLG9CQUFvQjFQLElBQUlDO0lBQ3ZCLElBQUpDLE1BQU1GLFVBQVVDO0lBQ3BCLEdBQUdDLFdBQVdGLGdCQUFnQmpMO0lBQzlCO0tBQUlvTCxLQUFLSCxPQUFPRTtLQUNaRSxLQUFLSixPQUFPRTtLQUNaRyxLQUFLTCxPQUFPRTtLQUNaSSxLQUFLTixPQUFPRTtJQUNoQixPQUFVQyxVQUNBQyxVQUNBQyxXQUNBQztHQUNaO0dqQm5XQSxTQUFTcVAsNEJBQThCLFNBQVU7R2dCeUhqRCxTQUFTQyxpQkFBaUIxUSxJQUFJMlE7SUFDNUIsT0FBTzdRLGVBQWUzSixPQUFPNkosZUFBZTJRO0dBQzlDO0dXb0tBLFNBQVNDLG9CQUFvQjFhLE1BQzNCLFNBQ0Y7R045UkEsU0FBUzJhLGVBQWdCam9CLEtBQUt3ZDtJQUN0QixJQUFGclQsUUFBUWxCLE1BQU11VTtJQUNsQnJULE9BQUtuSztJQUNMLElBQVcsSUFBRjJCLE9BQU9BLEtBQUs2YixNQUFNN2IsS0FBS3dJLEVBQUV4STtJQUNsQyxPQUFPd0k7R0FDVDtHWGtHQSxTQUFTK2Q7SUFDRCxJQUFGeG9CLElBQUlnTTtJQUNSaE0saUJBQWlCQTtJQUNqQkEsa0JBQWtCQTtJQUVsQjtHQUNGO0dlMUpBLFNBQVN5b0IsMEJBQTBCQyxJQUNqQyxPQUFPQSxlQUNUO0cxQm1VQSxTQUFTQyxzQ0FBc0NDLE9BQzdDLFNBQ0Y7R1VrREEsU0FBU0MsZUFBZXJkLE1BQU1DLE1BQU1FLE1BQU1DLE1BQ3hDSixVQUFVQyxTQUFTRSxVQUFVQyxPQUM3QjtHQUNGO0dZbk9BLFNBQVNrZCxvQkFBb0I5a0IsR0FBRS9DO0lBQzdCK0o7R0FDRjtHUHJHQSxTQUFTK2QscUJBQXdCLFNBQVU7R0Z5YmQsSUFBekJDO0dYOVNKLFNBQVNDLGlCQUFpQnppQjtJQUN4QixJQUFJMUQsTUFBTTBELFVBQ04zQyxRQUFRMEYsTUFBTXpHO0lBQ2xCZTtJQUNBLElBQVMsSUFBRDVCLE9BQUlBLElBQUVhLEtBQUliLEtBQUs0QixFQUFFNUIsU0FBT3VFLEVBQUV2RTtJQUNsQyxPQUFPNEI7R0FDVDtHZWhFQSxTQUFTcWxCLFdBQVd4UixJQUFJK0Q7SUFDdEIsT0FBT2pFLGVBQWUzSixPQUFPNkosT0FBTzdKLE9BQU80TjtHQUM3QztHakI4TUEsU0FBUzBOLHlCQUF5QmprQjtJQUN2QixJQUFMSixPQUFPcUcsa0JBQWtCakc7SUFDN0IsT0FBT0osbUJBQW1CQTtHQUM1QjtHVzNKQSxTQUFTc2tCLGFBQWF2cEIsR0FBRXdCO0lBQ3RCO0tBQUlyQixJQUFJZ007S0FDSkUsS0FBR2xNO0tBQ0h5RixJQUFJeUc7S0FDSm1kLFFBQVFycEI7SUFDWnlGLE9BQVE0akI7SUFDUjVqQixPQUFRNGpCLG1CQUNSNWpCLE9BQVE0akI7SUFDUjVqQjtJQUNBekYsTUFBSUg7SUFDSkcsTUFBSXFCO0lBQ0pyQix1QkFBdUJrTSxJQUFHck0sR0FBRUcsV0FBV3FCO0lBQ3ZDO0dBQ0Y7R2Q0SkEsU0FBU2lvQixpQkFBaUJ0cEIsR0FBRWlDLEdBQUVvaUI7SUFDNUIsR0FBSXBpQixXQUFXakMsU0FBUzRKO0lBQ2xCLElBQUZwRCxJQUFJMlMsb0JBQW9Ca0w7SUFDNUIsSUFBVSxJQUFGcGdCLE9BQU9BLE9BQU9BLEtBQ3BCNEYsc0JBQXVCN0osR0FBR2lDLFFBQVFnQyxHQUFHdUMsRUFBRXZDO0lBRXpDO0dBQ0Y7R0FsREEsU0FBU3NsQixrQkFBa0J2cEIsR0FBRWlDLEdBQUV1bkIsS0FDN0J4ZSxtQ0FDRjtHdUIzTUEsU0FBU3llLGlCQUFpQjVwQjtJQUNsQixJQUFGd0IsSUFBSThYLG9CQUFvQnRaO0lBQzVCLE9BQU95WTtjQUFxQmpYLE1BQU1BLE1BQU1BLE1BQU1BLE1BQU1BLE1BQU1BLE1BQU1BLE1BQU1BO0dBQ3hFO0dIbVRBLFNBQVNxb0IsY0FBY2hTLElBQ3JCLE9BQUdBLE9BQU9BLGdCQUVaO0dBS0EsU0FBU2lTLGdCQUFnQmpTLElBQ3ZCLE9BQU9nUyxjQUFjaFMsSUFDdkI7R0ZwYkEsU0FBU2tTLGNBQWNoYztJQUVyQixVQUFVOUwsNkJBQTZCQTtJQUN2QztHQUNGO0dFd0pBLFNBQVMrbkIsZ0JBQWdCblMsSUFBSTJRO0lBQzNCLE9BQU83USxlQUFlM0osT0FBTzZKLGNBQWMyUTtHQUM3QztHWXBKQSxTQUFTeUIsZUFBZTlwQjtJQUN0QkEsSUFBSTJCLHVCQUF1QjNCO0lBQzNCLElBQUlFLElBQUlGLGNBQ0p3RyxRQUFRK0MsTUFBTXJKO0lBQ2xCLElBQVcsSUFBRitCLE9BQU9BLElBQUkvQixHQUFHK0I7S0FDckJ1RSxFQUFFdkUsTUFBTWpDLGlCQUFpQmlDLEtBQU1qQyxpQkFBaUJpQztJQUNsRCxPQUFPdUU7R0FDVDtHQUlBLFNBQVN1akIsZ0JBQWdCQyxLQUFLQyxhQUFhQztJQUN6QztLQUFJQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBQztJQUVKLEtBQUtkLGdCQUFpQjtLQUNwQkEsZUFBa0JGLGVBQWdCRSxJQUFJVTtLQUN0Q1Ysa0JBQWtCRixlQUFnQkUsSUFBSVc7S0FDdENYLGdCQUFrQkYsZUFBZ0JFLElBQUljO0tBQ3RDZCxnQkFBa0JGLGVBQWdCRSxJQUFJYTtLQUN0Q2Isa0JBQWtCRixlQUFnQkUsSUFBSVk7O0lBR3hDO0tBQUk1bkI7S0FBRytuQixRQUFRZDtLQUVYOW1CLFNBQVNvRSwwQkFBMEIyaUIsT0FBT0M7SUFFOUMsR0FBSVksV0FBWTtLQUVkYixPQUFPSyxnQkFBZ0JMLE9BQU9HLGlCQUFpQkgsT0FBT0k7S0FDdERKLE9BQU9NOzs7S0FHUE8sVUFBU0E7SUFFWCxPQUFRO0tBRUcsSUFBTGxiLE9BQU9tYSxhQUFhZTtLQUN4QixHQUFJbGIsVUFBVSxTQUFRQTtLQUVWLElBQVJtYixVQUFVaEIsZ0JBQWdCZTtLQUM5QixHQUFJQyxhQUFjO01BQ2hCZCxPQUFPSyxnQkFBZ0JMLE9BQU9JO01BQzlCSixPQUFPTSxtQkFBbUJROztLQUc1QixHQUFJZCxPQUFPSSxpQkFBaUJKLE9BQU9FO01BQWdCLEdBQzdDRixPQUFPTyx1QkFDVCxTQUFRTSxnQkFFUi9uQjtTQUNDLENBRUhBLElBQUlHLE9BQU8rbUIsT0FBT0ksZ0JBQ2xCSixPQUFPSTtLQUdULEdBQUlOLGNBQWNuYSxPQUFPN00sTUFBTStuQjtNQUM3QkEsUUFBUWYsY0FBY25hLE9BQU83TTs7TUFFN0IrbkIsUUFBUWYsZ0JBQWdCZTtLQUUxQixHQUFJQSxVQUFXO01BQ2JiLE9BQU9JLGdCQUFnQkosT0FBT0s7TUFDOUIsR0FBSUwsT0FBT007T0FDVHhmOztPQUVBLE9BQU9rZixPQUFPTTs7YUFLWnhuQixVQUFVa25CLE9BQU9POztHQUczQjtHdEJtR0EsU0FBU1EscUJBQXNCL2xCO0lBQ3BCLElBQUxKLE9BQU9xRyxrQkFBa0JqRztJQUM3QixPQUFPSixtQkFBbUJBO0dBQzVCO0dONUlBLFNBQVNvbUI7SUFDUGxnQjtHQUNGO0c2QmhEQSxTQUFTbWdCLGVBQWdCM2tCLEdBQUd2RSxHQUFHYTtJQUN0QixJQUFIZ2xCLFNBQVN2ZSxNQUFNekc7SUFDbkJnbEI7SUFDQSxRQUFRaGdCLFFBQVFGLEtBQUkzRixPQUFLNkYsTUFBTWhGLEtBQUtnRixNQUFLRixNQUN2Q2tnQixHQUFHaGdCLE1BQUl0QixFQUFFb0I7SUFFWCxPQUFPa2dCO0dBQ1Q7R2pDc2ZBLFNBQVNzRCxpQkFBaUJ6akIsSUFBSUU7SUFDNUIsR0FBR0YsT0FBT0UsSUFBSTtJQUNiRixZQUFhbEIsNkJBQTZCa0I7SUFDMUNFLFlBQWFwQiw2QkFBNkJvQjtJQUMzQyxPQUFRRixRQUFRRTtHQUNsQjtHYy9XQSxTQUFTd2pCLGlCQUNELElBQUZyckIsSUFBSWdNLHFCQUNSLE9BQU9oTSxRQUNUO0dWcklBLFNBQVNzckIsNEJBQStCLFNBQVU7R3NCTmxELFNBQVNDLHNCQUFzQkMsS0FBS3ZwQjtJQUMxQixJQUFKZ0csTUFBTXVqQjtJQUNWQSxVQUFVdnBCO0lBQ1YsT0FBT2dHO0dBQ1Q7R3ZCc1BZO0lBQVJ3akI7TUFBVzNwQixzQkFDQUE7VUFDQUE7OztHQVhmLFNBQVM0cEIsK0JBQWtDLE9BQU9EO0dBQTZCO0dJTS9FLFNBQVNFLGdCQUFpQjlyQixHQUFLLE9BQU9PLFVBQVVQLEdBQUk7RzJCcFJwRCxTQUFTK3JCLFVBQ1AvcUIsb0JBQ0Y7R0FJQSxTQUFTZ3JCLGtCQUFrQmplLE1BQ3pCLFdBQVdnZSxVQUNiO0dDWXlCLElBQXJCRTtHQTZGSixTQUFTQyxvQkFBb0Jsc0IsR0FBR29DO0lBQ3JCLElBQUwrcEIsT0FBT25zQixFQUFFaXNCLHVCQUF1QjdwQjtJQUNwQyxHQUFHSCxzQkFBc0JrcUIsZ0JBQWdCbHFCO0tBQW9Ca3FCLE9BQU9BO0lBQ3BFLE9BQUdBLFNBQU9qcUI7R0FJWjtHWHpCQSxTQUFTa3FCLG9CQUFvQmxyQjtJQUMzQkEsS0FBS0E7SUFDTEEsSUFBSWtaLFNBQVVsWjtJQUNkQSxLQUFLQTtJQUNMQSxJQUFJa1osU0FBVWxaO0lBQ2RBLEtBQUtBO0lBQ0wsT0FBT0E7R0FDVDtHVjhSQSxTQUFTbXJCLGtCQUFrQkM7SUFDekI7S0FBSW5zQixJQUFJZ007S0FDSnFVLElBQUlyZ0Isc0JBQXNCbUUsd0JBQXdCZ29CO0lBQ3RELFdBQVU5TCxHQUFFcmdCO0dBQ2Q7R2tCelJBLFNBQVNvc0IsaUJBQWlCcHNCLEdBQUdpQyxHQUFHb3FCLEtBQUtDO0lBQ25DLE9BQVM7S0FDQyxJQUFKOUksTUFBTXhqQixhQUFhaUM7S0FBSUE7S0FDM0IsR0FBSXVoQixhQUFhO0tBQ1QsSUFBSkQsTUFBTXZqQixhQUFhaUM7S0FBSUE7S0FDM0IsR0FBSXNoQjtNQUNGOEksSUFBSzdJLFdBQVc4STs7TUFFaEJELElBQUs3SSxXQUFXNkksSUFBSzlJOztHQUUzQjtHQUVBLFNBQVNnSixpQkFBaUJ2c0IsR0FBR2lDLEdBQUdvcUI7SUFDOUIsT0FBUztLQUNDLElBQUo3SSxNQUFNeGpCLGFBQWFpQztLQUFJQTtLQUMzQixHQUFJdWhCLGFBQWE7S0FDVCxJQUFKRCxNQUFNdmpCLGFBQWFpQztLQUFJQTtLQUMzQixHQUFJc2hCLGFBQ0Y4SSxJQUFLN0kscUJBRUw2SSxJQUFLN0ksV0FBVzZJLElBQUs5STs7R0FFM0I7R0FFQSxTQUFTaUosb0JBQW9CeEMsS0FBS0MsYUFBYUM7SUFDN0M7S0FBSUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQWdDO0tBQ0EvQjtLQUNBQztLQUNBQztLQUNBQztLQUNBQztLQUNBNEI7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7SUFFSixLQUFLL0MsZ0JBQWlCO0tBQ3BCQSxlQUFrQkYsZUFBZ0JFLElBQUlVO0tBQ3RDVixrQkFBa0JGLGVBQWdCRSxJQUFJVztLQUN0Q1gsZ0JBQWtCRixlQUFnQkUsSUFBSWM7S0FDdENkLGdCQUFrQkYsZUFBZ0JFLElBQUlhO0tBQ3RDYixrQkFBa0JGLGVBQWdCRSxJQUFJWTs7SUFFeEMsS0FBS1oscUJBQXNCO0tBQ3pCQSxvQkFBdUJGLGVBQWdCRSxJQUFJMEM7S0FDM0MxQyx1QkFBdUJGLGVBQWdCRSxJQUFJMkM7S0FDM0MzQyxxQkFBdUJGLGVBQWdCRSxJQUFJOEM7S0FDM0M5QyxxQkFBdUJGLGVBQWdCRSxJQUFJNkM7S0FDM0M3Qyx1QkFBdUJGLGVBQWdCRSxJQUFJNEM7O0lBRTdDLEdBQUk1QyxnQkFBZ0IvakI7S0FBTStqQixlQUFlcm9CLHVCQUF1QnFvQixJQUFJK0M7SUFFcEU7S0FBSS9wQjtLQUFHK25CLFFBQVFkO0tBRVg5bUIsU0FBU29FLDBCQUEwQjJpQixPQUFPQztJQUU5QyxHQUFJWSxXQUFZO0tBRWRiLE9BQU9LLGdCQUFnQkwsT0FBT0csaUJBQWlCSCxPQUFPSTtLQUN0REosT0FBT007OztLQUdQTyxVQUFTQTtJQUVYLE9BQVE7S0FFRyxJQUFMbGIsT0FBT21hLGFBQWFlO0tBQ3hCLEdBQUlsYixTQUFVO01BQ0QsSUFBUG1kLFNBQVNoRCxrQkFBa0JlO01BQy9Cd0IsaUJBQWlCdkMsY0FBY2dELFFBQVE5QyxPQUFPdUM7TUFDOUMsU0FBUTVjOztLQUdFLElBQVJtYixVQUFVaEIsZ0JBQWdCZTtLQUM5QixHQUFJQyxhQUFjO01BQ0wsSUFBUGdDLFNBQVNoRCxxQkFBcUJlO01BQ2xDd0IsaUJBQWlCdkMsY0FBY2dELFFBQVE5QyxPQUFPdUM7TUFDOUN2QyxPQUFPSyxnQkFBZ0JMLE9BQU9JO01BQzlCSixPQUFPTSxtQkFBbUJROztLQUc1QixHQUFJZCxPQUFPSSxpQkFBaUJKLE9BQU9FO01BQWdCLEdBQzdDRixPQUFPTyx1QkFDVCxTQUFRTSxnQkFFUi9uQjtTQUNDLENBRUhBLElBQUlHLE9BQU8rbUIsT0FBT0ksZ0JBQ2xCSixPQUFPSTtLQUdFLElBQVAyQyxTQUFTbEM7S0FDYixHQUFJZixjQUFjbmEsT0FBTzdNLE1BQU0rbkI7TUFDN0JBLFFBQVFmLGNBQWNuYSxPQUFPN007O01BRTdCK25CLFFBQVFmLGdCQUFnQmU7S0FFMUIsR0FBSUEsVUFBVztNQUNiYixPQUFPSSxnQkFBZ0JKLE9BQU9LO01BQzlCLEdBQUlMLE9BQU9NO09BQ1R4Zjs7T0FFQSxPQUFPa2YsT0FBT007O1NBQ2I7TUFFSCxJQUFJMEMsWUFBWWxELGtCQUFrQmlELFNBQVNEO01BQzNDLEdBQUloRCxtQkFBbUJrRCxZQUFZbHFCLE1BQU1pcUI7T0FDdkNELFNBQVNoRCxtQkFBbUJrRCxZQUFZbHFCOztPQUV4Q2dxQixTQUFTaEQscUJBQXFCaUQ7TUFDaEMsR0FBSUQ7T0FDRlo7U0FDRHBDLGNBQWNnRCxRQUFROUMsT0FBT3VDLFVBQVV2QyxPQUFPSTtNQUkvQyxHQUFJdG5CLFVBQVVrbkIsT0FBT087OztHQUczQjtHWG9PQSxTQUFTMEMsb0JBQW9CM1UsSUFBSUMsSUFBSXpVO0lBQzNCLElBQUowVSxNQUFNRixVQUFVQztJQUNwQixHQUFHQyxXQUFXRixnQkFBZ0JqTDtJQUN4QixJQUFGdkosSUFBSW1WLG9CQUFvQm5WO0lBQzVCLElBQVUsSUFBRi9CLE9BQU9BLE9BQU9BLEtBQUt1VyxPQUFPRSxNQUFJelcsR0FBRytCLE1BQUkvQjtJQUM3QztHQUNGO0dEc1hBLFNBQVNtckIsY0FBY3hWO0lBQ3JCQSxJQUFJL0osT0FBTytKO0lBQ1gsSUFBSUMsT0FBT2hLLFdBQ1BpSyxNQUFNaks7SUFDVixHQUFJK0osS0FBS0MsT0FDUHhYLG9CQUFvQitGO0lBRXRCLElBQUluRTtJQUNKLElBQUtBLFNBQVEyVixTQUFTQyxPQUFPNVYsS0FDM0IyVixJQUFJQSxNQUFNQTtJQUVaLEdBQUczVixNQUFNQSxRQUFNNUIsb0JBQW9CK0Y7SUFDbkMsT0FBT25FO0dBQ1Q7R2pCbnFCQSxTQUFTb3JCLHlCQUF5QjdtQixHQUNoQyxPQUFPa2UscUJBQ1Q7R3dCbUVBLFNBQVM0SSxlQUFnQnp0QixHQUFHd0I7SUFBSyxVQUFTZ2dCLGlCQUFpQnhoQixHQUFFd0I7R0FBZ0I7R3BCdUI3RSxTQUFTa3NCLGlCQUFrQjF0QixHQUFLLE9BQU9PLFdBQVdQLEdBQUk7R3VCekl0RCxTQUFTMnRCO0lBQ1A7S0FBSXJxQixhQUFhc3FCO0tBQ2JDLFVBQVVDLFlBQVl4cUI7S0FDdEIrVixTQUFTalMsV0FBVzlEO0lBQ3hCOztnQkFDY3dxQjtpQkFDRkQ7Z0JBQ0R4VTtHQUNiO0didVJBLFNBQVMwVSxjQUFlbmdCO0lBQ2IsSUFBTE4sT0FBT0YsaUJBQWlCUTtJQUM1QixLQUFLTixhQUFhL0Y7SUFDbEIsS0FBSStGLGVBQWVBLHVCQUF1QjtJQUMxQyxHQUFHQTtLQUNEQSxZQUFZNUcseUJBQXlCNEcsZ0JBQWdCQTs7S0FFckRBLGdCQUFnQkEsYUFBYUEsZ0JBQWdCQTtJQUUvQ0EsZUFBZUE7SUFDZkE7SUFDQTtHQUNGO0dBNEVBLFNBQVMwZ0IsY0FBY3BnQixRQUFRdEY7SUFDN0J5bEIsY0FBY25nQjtJQUNMLElBQUxOLE9BQU9GLGlCQUFpQlE7SUFDNUJOLGNBQWNoRjtJQUNkO0dBQ0Y7R0FTQSxTQUFTMmxCLG9CQUFvQnJnQixRQUFPdEY7SUFDMUIsSUFBSkEsTUFBTXFmLG9CQUFvQnJmO0lBQzlCLE9BQU8wbEIsY0FBY3BnQixRQUFRdEY7R0FDL0I7R0p0S0EsU0FBUzRsQixpQkFBaUJ2aUIsTUFBS0c7SUFDN0IsT0FBT3dYLFlBQVkzWCxTQUFPQSxrQkFBaUJHLFNBQU9BO0dBQ3BEO0dLalZBLFNBQVNxaUIsWUFBWWpKLFVBQ25CLFNBQ0Y7R2JSQSxTQUFTa0osWUFBWXhqQixHQUFFMUgsR0FBSyxPQUFPMEgsRUFBRTFILEdBQUk7R01zQ3pDLFNBQVNtckIsaUJBQWlCQztJQUN4QixHQUFHL3BCLG9CQUFxQjtLQUNkLElBQUpncUIsTUFBTW5rQjtLQUNWLE9BQU9ta0IsV0FBV0Q7OztLQUNiO0dBR1Q7R01xZkEsU0FBU0UscUJBQXFCNWdCLFFBQU96SjtJQUNuQ2lKLGlCQUFpQlEsbUJBQW1Ceko7SUFDcEMsS0FBSUEsR0FBRzRwQixjQUFjbmdCO0lBQ3JCO0dBQ0Y7R0M3aUJBLFNBQVM2Z0IscUJBQXNCLFNBQVE7R2lCc0V2QyxTQUFTQyxrQkFBa0IxdUIsR0FBR29DO0lBQzVCLEdBQUdBLFNBQVM2cEIsdUJBQXVCN3BCLEtBQUtwQztLQUN0QzhDO0lBQ08sSUFBTHFwQixPQUFPbnNCLEVBQUVpc0IsdUJBQXVCN3BCO0lBQ3BDLEdBQUdILHNCQUFzQmtxQixnQkFBZ0JscUI7S0FBb0JrcUIsT0FBT0E7SUFDcEUsT0FBUUEsU0FBT2pxQixvQkFBaUJpcUI7R0FDbEM7R3hCckVBLFNBQVN3QyxvQkFBcUI5cUI7SUFDNUI7S0FBSStCLFFBQVFncEIsS0FBTS9xQjtLQUNkZ3JCLFFBQVFqcEI7S0FDUmtwQixlQUFlLElBQUtGLEtBQUtocEI7S0FDekJtcEIsTUFBTXh1QixZQUFZc3VCLFFBQVFDO0tBQzFCRSxVQUFVSixLQUFLaHBCO0tBQ2ZxcEIsVUFBVUwsS0FBS2hwQjtLQUNmc3BCO09BQW9CM3VCLFNBQVN5dUIseUJBQXlCQztJQUMxRDtZQUFnQnJwQjtZQUFnQkE7WUFBZ0JBO1lBQ25DQTtZQUFhQTtZQUFjQTtZQUMzQkE7WUFBWW1wQjtZQUNYbnBCLHdCQUF3QnNwQjtHQUN4QztHQUtBLFNBQVNDLGlCQUFpQkM7SUFDeEI7S0FBSXhwQixJQUFJLElBQUtncEIsS0FBS1EsY0FBV0EsT0FBTUEsT0FBTUEsT0FBTUEsT0FBTUE7S0FDakR2ckIsSUFBSXRELFdBQVdxRjtLQUNmeXBCLE1BQU1WLG9CQUFvQjlxQjtJQUM5QixXQUFlQSxHQUFFd3JCO0dBQ25CO0dTa1JBLFNBQVNDLHlCQUF5QnRmLE1BQU03UDtJQUN0QyxHQUFJNlAsVUFBVztLQUNiQTtLQUNBLElBQUl0TSxPQUNBdkM7S0FDSixHQUFHaEIsRUFBRXVELFVBQVcsQ0FBRXZDLFlBQVd1QyxjQUNwQnZELEVBQUV1RCxXQUFhQTtLQUN4QixHQUFJdkQsRUFBRXVELFVBQVc7TUFDZkE7TUFDQSxHQUFJdkQsWUFBWXVEO09BQUc7VUFFWjtPQUNFLElBQUg2ckIsS0FBS3B2QixFQUFFdUQ7T0FDWCxHQUFJNnJCLGFBQWFBO1FBQ2Z2ZjtlQUNTdWYsYUFBYUE7UUFDdEJ2ZjtlQUNTdWYsYUFBYUEsV0FDdEJ2ZjtPQUVGLEdBQUdBLFdBQVksQ0FDYjdQLElBQUlBLFlBQVl1RCxRQUNoQixHQUFHdkMsYUFBWWhCLFVBQVVBOzs7O0lBTWpDLFNBQVNpVyxNQUFNcFE7S0FDYixHQUFHQSxjQUFjQSxZQUFZLE9BQU9BO0tBQ3BDLEdBQUdBLGNBQWNBLGFBQWEsT0FBT0E7S0FDckMsR0FBR0EsY0FBY0EsWUFBWSxPQUFPQTtJQUN0QztJQUNNLElBQUY1RDtJQUNKLEdBQUlqQyxFQUFFaUMsV0FFSmpDLElBQUlBLHdCQUVFQSxFQUFFaUMsV0FBV0E7SUFDckIsR0FBR2pDLEVBQUVpQztLQUFXVTtJQUNoQjNDLElBQUlBO0lBRUosR0FBR0EsWUFBWUEsU0FBU0E7SUFDeEIsTUFBT2lDLElBQUlqQyxVQUFXaUMsSUFBSTtLQUNsQixJQUFGZSxJQUFJaVQsTUFBTWpXLGFBQWFpQztLQUMzQixHQUFHZSxLQUFLakIsYUFBYWlCLEtBQUs2TTtNQUN4QmxOOztJQUVKLE9BQU82VSxlQUFlM0osT0FBTzdOLEdBQUc2UDtHQUVsQztHQUtBLFNBQVN3Zix1QkFBdUJ4ZixNQUFNN1AsR0FBR21JLEtBQUtyRjtJQUM1QzlDLElBQUkyQix1QkFBdUIzQjtJQUMzQixHQUFHbUksWUFBWXJGLE9BQU85QyxTQUFVO0tBQzlCLEdBQUlBLFdBQVdtSSxNQUFNckY7TUFDbkJIO0tBRUYzQyxJQUFJQSxRQUFRbUksS0FBSUEsTUFBSXJGOztJQUV0QixPQUFPcXNCLHlCQUF5QnRmLE1BQU03UDtHQUN4QztHUzdTQSxTQUFTc3ZCLGdDQUFnQzNKLE1BQU1DLE1BQU1DLEtBQUtDLE1BQU1oakI7SUFDOUQsU0FBUytpQjtLQUNQbGpCO0lBQ0YsR0FBR0csVUFBVTtJQUNKLElBQUw4SSxPQUFPaWEsV0FBV0M7SUFDdEIsR0FBR0YsT0FBTzlpQixNQUFNMkUscUJBQXFCa2UsT0FDbkNwWTtJQUVGLEdBQUczQixPQUFPOUksTUFBTStpQixpQkFDZHRZO0lBRVEsSUFBTndZLFFBQVF4ZSwwQkFBMEJvZSxZQUFZQyxNQUFLQSxPQUFPOWlCO0lBQzlEK2lCLGFBQWFFLE9BQU1uYTtJQUNuQjtHQUNGO0daL0VpQixJQUFiMmpCLG1CQUFtQmhtQjtHQUl2QixTQUFTaW1CLGVBQWV4bEI7SUFDYixJQUFMdkIsT0FBTzhtQixhQUFhdmxCO0lBQ3hCLEdBQUd2QixNQUFNQTtJQUNULE9BQU84bUIsYUFBYXZsQjtJQUNwQjtHQUNGO0dBcUpBLFNBQVN5bEIsc0JBQXVCaGlCO0lBQ3JCLElBQUxOLE9BQU9GLGlCQUFpQlE7SUFDNUJOO0lBQ0FxaUIsZUFBZXJpQjtJQUNmO0dBQ0Y7R1NuSkEsU0FBU3VpQixxQkFBcUJsRSxLQUFLeG5CO0lBQzNCLElBQUYvRCxJQUFJdXJCO0lBQ1JBLFNBQVN4bkI7SUFDVCxPQUFPL0Q7R0FDVDtHdkIyUEEsU0FBUzB2QixnQkFBZ0JDLE9BQ3ZCLFNBQ0Y7R1VwTEEsU0FBU0MsY0FBY3pWLEtBQUsxQjtJQUMxQixHQUFHMEIsU0FBUzFCLFdBQVc7SUFDdkI7R0FDRjtHRndCQSxTQUFTb1gsZ0JBQWdCNXFCO0lBQ2QsSUFBTEosT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEtBQUtKLG1CQUNIa0c7SUFFRixPQUFPbEcsa0JBQWtCQTtHQUMzQjtHQUtBLFNBQVNpckIsbUJBQW1CN3FCO0lBQ3BCLElBQUZqRixJQUFJNnZCLGdCQUFnQjVxQjtJQUN4QmpGLE9BQU9zQixvQkFBb0J0QjtHQUM3QjtHTmxJQSxTQUFTK3ZCLFlBQVl2bEIsR0FBRTFILEdBQUVpQixHQUFLeUcsRUFBRTFILEtBQUdpQixHQUFFLFNBQVE7R2V1dUI3QyxTQUFTaXNCLG1CQUFtQnZZLElBQUkrRDtJQUM5Qi9ELEtBQUs3SixPQUFPNko7SUFDWitELEtBQUs1TixPQUFPNE47SUFDWjtLQUFJbEcsTUFBTTFILFdBQVc2SixJQUFHK0Q7S0FDcEJqVixJQUFJa1I7S0FDSjdULElBQUk0WDtLQUNKNWIsSUFBSWdPO0tBQ0pxaUIsUUFBUXJpQjtLQUNSeE0sSUFBSXdNO0tBQ0pzaUIsUUFBUXRpQjtLQUNSdk07S0FBR29DO0tBQUd6RDtJQUNWLEdBQUd5WCxVQUFVN0osWUFDWHJOO0lBRUYsUUFBT3FELFNBQVNnSyxXQUFZO0tBQzFCdk0sSUFBSWtGLFNBQVMzQztLQUNiNUQsSUFBSXVHLFdBQVdsRixXQUFXdUM7S0FDMUJILElBQUk3RDtLQUNKQSxJQUFJcXdCLGVBQWU1dUIsV0FBV3pCO0tBQzlCcXdCLFFBQVF4c0I7S0FDUkEsSUFBSXJDO0tBQ0pBLElBQUk4dUIsZUFBZTd1QixXQUFXRDtLQUM5Qjh1QixRQUFRenNCO0tBQ1I4QyxJQUFJM0M7S0FDSkEsSUFBSTVEOztJQUVOLE9BQUd1RyxLQUFLcUg7O2NBQ0kySixlQUFlaFI7Y0FBWWdSLGVBQWUwWTs7a0JBRTFDMVksZUFBZWhSLElBQUdnUixlQUFlMFk7R0FDL0M7R0FsaUJBLFNBQVNFLGFBQWF4WSxHQUFFelA7SUFDdEJ5UCxJQUFJL0osT0FBTytKO0lBQ1gsT0FBUUEsYUFBYXpQLFNBQVMwRjtHQUNoQztHYTlLQSxTQUFTd2lCLGVBQWdCQyxPQUFPQztJQUM5QixHQUFLQSxhQUFlQSxTQUFTRCxrQkFBbUIvaUI7SUFDaEQsT0FBTytpQixNQUFNQztHQUNmO0d6QmdFQSxTQUFTQyw0QkFBNEJDO0lBQzFCLElBQUxuUCxRQUFNbVA7SUFDVkE7SUFDQSxPQUFPblA7R0FDVDtHR21CQSxTQUFTb1AsZ0JBQWdCeHJCO0lBQ2QsSUFBTEosT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEtBQUtKLG1CQUNIa0c7SUFFRixPQUFPbEcsa0JBQWtCQTtHQUMzQjtHSjhGQSxTQUFTNnJCLGdCQUFnQjl3QixHQUFLLE9BQU9PLFVBQVVQLEdBQUk7R1c5TG5ELFNBQVMrd0IsNEJBQTRCaGpCLE1BQVEsU0FBVTtHSGxEdkQsU0FBU2lqQiw2QkFDUCxTQUNGO0dLazVCQSxTQUFTQyxlQUFldHFCLEdBQUUzQyxHQUFFYjtJQUNqQixJQUFMNlUsT0FBT2hLO0lBQ1hySCxJQUFJcUgsT0FBT3JIO0lBQ1gzQyxJQUFJZ0ssT0FBT2hLO0lBQ1hiLElBQUk2SyxPQUFPN0s7SUFDWCxHQUFHQSxTQUFTNlUsU0FBU3JSLFNBQVMzQyxJQUFJO0lBQ2xDLE9BQU8yQyxRQUFRM0MsaUJBQWlCYjtHQUNsQztHakJsbUJBLFNBQVMrdEI7SUFDUC9sQjtHQUNGO0dKeEhBLFNBQVNnbUIsZUFBZ0JueEIsR0FBR3dCLEdBQUssT0FBT3hCLE1BQU13QixHQUFHO0drQjhIakQsU0FBUzR2QixhQUFheGpCLFFBQVF0RjtJQUNuQixJQUFMZ0YsT0FBT0YsaUJBQWlCUTtJQUM1QixHQUFJTixlQUFlbEgsTUFBTW1CO0lBQ3pCO01BQUdlLE9BQU9nRixjQUFjQSxtQkFDbEJoRixPQUFPZ0Y7U0FDUEE7S0FDSkEsbUJBQW1CQSxtQkFBbUJBLGNBQWNoRjtRQUMvQyxDQUNMZ0YsY0FBY2hGLEtBQ2RnRixzQkFDQUE7SUFFRjtHQUNGO0dBVUEsU0FBUytqQixtQkFBbUJ6akIsUUFBT3RGO0lBQ3pCLElBQUpBLE1BQU1xZixvQkFBb0JyZjtJQUM5QixPQUFPOG9CLGFBQWF4akIsUUFBUXRGO0dBQzlCO0dTOVRtQixJQUFmZ3BCO0dROUJKLFNBQVNDLHFCQUFxQjF0QixHQUM1QkEsa0JBQ0EsU0FDRjtHUmlDMkIsSUFBdkIydEI7R0FDSixTQUFTQyxrQkFBa0J2dUIsR0FBRXd1QjtJQUN6QixJQUFJQyxLQUFLSCwwQkFDTHBwQixNQUFNa3BCO0lBQ1ZBLGlCQUFpQks7SUFDakI1VyxjQUFjN1g7SUFDZG91QixpQkFBaUJscEI7SUFDakJtcEIscUJBQXFCRztJQUNyQixPQUFPQztHQUNYO0dmcUZBLFNBQVNDLGdCQUFnQnZzQixNQUFNd3NCO0lBQ3BCLElBQUw1c0IsT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEtBQUtKLG1CQUNIa0c7SUFFRixPQUFPbEcsa0JBQWtCQSxXQUFXNHNCO0dBQ3RDO0daa0ZBLFNBQVNDLHNCQUF1Qjl4QixHQUFHRyxHQUFLLE9BQU9ILGFBQWFHLEdBQUc7RzRCRC9ELFNBQVM0eEIsY0FBZS94QixHQUFHd0I7SUFBSyxVQUFTZ2dCLGlCQUFpQnhoQixHQUFFd0I7R0FBZ0I7R1B0SDVFLFNBQVN3d0IsU0FBU25hLElBQ2hCLE9BQU9GLGVBQWUzSixPQUFPNkosV0FDL0I7R2pCNkhBLFNBQVNvYSwwQkFBNkIsVUFBVztHRTJDakQsU0FBU0Msc0JBQXNCaHZCO0lBQzdCO0tBQ1UsSUFBSkQsTUFBTTZYO0tBQ1YsR0FBRzdYLFFBQVE7TUFDQSxJQUFMb0QsV0FBV3FELE1BQU16RztNQUNyQixJQUFXLElBQUZiLE9BQU9BLElBQUlhLEtBQUtiLEtBQUtpRSxLQUFLakUsS0FBSzBZLFVBQVUxWTs7O01BRWxEaUUsUUFBUW5FO0tBRUYsSUFBSjZHLE1BQU1nUyxjQUFjN1gsR0FBR21EO0tBQzNCLE9BQVEwQyxlQUFlcVMsV0FBVThXLHNCQUFzQm5wQixPQUFLQSxJQVR2RDtHQVdUO0dBa0NBLFNBQVNvcEIsMkJBQTJCanZCO0lBQ2xDO0tBQ0UsSUFBSUQsTUFBTTZYLGtCQUNOelUsV0FBV3FELE1BQU16RztLQUNyQm9ELFVBQVVyRjtLQUNWLElBQVcsSUFBRm9CLE9BQU9BLElBQUlhLEtBQUtiLEtBQUtpRSxLQUFLakUsU0FBTzBZLFVBQVUxWTtLQUM1QyxJQUFKMkcsTUFBTWdTLGNBQWM3WCxHQUFFbUQ7S0FDMUIsT0FBUTBDLGVBQWVxUyxXQUFVOFcsc0JBQXNCbnBCLE9BQUtBLElBTnZEO0dBUVQ7R0FoUEEsU0FBU3FwQixhQUNQLFNBQ0Y7R29Ca0ZFLFNBQVNDLDRCQUE0QnpuQjtJQUNyQ3lRLG9CQUFvQnpRO0lBQ3BCO0dBQ0Y7R0pzSkEsU0FBUzBuQixZQUFZM1osSUFBSXZXO0lBQ3ZCLEdBQUlBLFNBQVNBLEtBQUt1VyxnQkFDaEI3VjtJQUNGLE9BQU82VixRQUFRdlc7R0FDakI7R0FJQSxTQUFTbXdCLGNBQWM1WixJQUNyQixPQUFPMlosWUFBWTNaLE9BQ3JCO0dEMGJBLFNBQVM2WixVQUFVM2E7SUFDakIsSUFBSUUsSUFBSS9KLE9BQU82SixLQUNYRyxPQUFPaEs7SUFDWCxHQUFJK0osS0FBS0M7S0FDUGxWO0lBRUYsT0FBT2dWLFVBQVVDO0dBQ25CO0dmdGlCQSxTQUFTMGEsa0JBQWtCN25CLEdBQUcxSCxHQUFHbUQ7SUFDL0IsT0FBT3VFLEVBQUV0Ryx3QkFBd0JwQixVQUFVMEgsR0FBRzBhLG1CQUFtQmpmO0dBQ25FO0dlbXZCQSxTQUFTcXNCLFlBQVl0d0I7SUFDbkIsR0FBR0EsT0FBT1U7SUFDVixHQUFHVixRQUFRO0lBQ1gsR0FBR0EsUUFBUTtJQUNYLElBQUl1RSxJQUFJcUgsV0FBV2hLLElBQUlnSztJQUN2QixJQUFVLElBQUZ1UCxPQUFPQSxJQUFJbmIsR0FBR21iLElBQUksQ0FDakIsSUFBSHhFLEtBQUsvVSxHQUNUQSxJQUFJMkMsTUFBTTNDLElBQ1YyQyxJQUFJb1M7SUFFTixPQUFPcEIsZUFBZTNUO0dBQ3hCO0dlNStCMEIsSUFBdEIydUI7R0FnREosU0FBU0MsaUJBQWtCMXlCO0lBQ3pCLEdBQUlBLE9BQU80QztJQUNMLElBQUY5QztJQUNKQSxXQUFXaXNCLHVCQUF1Qi9yQjtJQUNsQyxPQUFPRjtHQUNUO0dBWkEsU0FBUzZ5QixpQkFBa0IzeUIsR0FDbkIsSUFBRkYsSUFBSTR5QixpQkFBaUIxeUIsSUFDekIsT0FBT0YsRUFDVDtHbkNveEJBLFNBQVM4eUIsdUJBQXVCM3lCLEdBQUssT0FBT3dDLHVCQUF1QnhDLEdBQUc7R29CM0l0RSxTQUFTNHlCLGtCQUFrQmhiLEdBQUczVjtJQUM1QixPQUFJNEwsT0FBTytKLG1CQUFtQjNWO0dBS2hDO0dmN3FCQSxTQUFTNHdCLGdCQUFnQmpxQjtJQUNqQixJQUFGNUY7SUFDSixNQUFNNEYsT0FBT0EsY0FBYztLQUN6QkEsTUFBTUEsb0JBQW9CM0MsTUFBTTJDO0tBQ2hDNUY7O0lBRUYsT0FBTzRGO0dBQ1Q7R0h5SkEsU0FBU2txQix1QkFBdUJsbEIsTUFBUSxTQUFTO0dGeEJqRCxTQUFTbWxCLHNCQUF1Qi95QixHQUFHaUM7SUFDakMsT0FBUWpDO2VBRU4sR0FBSWlDLEtBQUtqQyxZQUFZOztPQUVyQixPQUFPQSxlQUFlaUM7O09BRXRCLE9BQU9qQyxJQUFJaUM7O0dBRWY7R0FpR0EsU0FBUyt3QixpQkFBaUJoekIsR0FBRWlDO0lBQzFCLEdBQUlBLFdBQVdqQyxTQUFTNEo7SUFDbEIsSUFBRnBELFFBQVErQztJQUNaLElBQVUsSUFBRnRGLE9BQU9BLE9BQU9BLEtBQ3BCdUMsTUFBTXZDLEtBQUs4dUIsc0JBQXVCL3lCLEdBQUdpQyxJQUFJZ0M7SUFFM0MsT0FBT3FVLG9CQUFvQjlSO0dBQzdCO0dlOVI0QixJQUF4QnlzQjtHQUlKLFNBQVNDO0lBQWtDQyxZQUFZQyxXQUFXQztJQUNoRUo7SUFDQSxXQUFXQSx5QkFBeUJFLFlBQVlFLFlBQVlEO0dBQzlEO0dKbU9BLFNBQVNFLHNCQUFzQjFsQixNQUM3QixPQUFPeEosNEJBQ1Q7R1MzSUEsU0FBU212QixTQUFTN2IsSUFBSStEO0lBQ3BCQSxLQUFLNU4sT0FBTzROO0lBQ1osR0FBSUEsVUFBVTVOLFlBQ1pyTjtJQUVGLE9BQU9nWCxlQUFlM0osT0FBTzZKLFFBQVErRDtHQUN2QztHZTVFQSxTQUFTK1gsa0JBQWtCM3pCLEdBQUdvQyxHQUFHK0I7SUFDL0IsR0FBRy9CLFNBQVM2cEIsdUJBQXVCN3BCLEtBQUtwQztLQUN0QzhDO0lBQ0YsR0FBSXFCLGFBQWErSyxVQUFVak4sbUJBQW9CO0tBQzdDLEdBQUdqQyxlQUFlQSxjQUFjbUUsR0FBR2pDLFdBQVdpQztLQUM5Q25FLEVBQUVpc0IsdUJBQXVCN3BCLFNBQVNILG1CQUFtQmtDOzs7S0FFbERuRSxFQUFFaXNCLHVCQUF1QjdwQixLQUFLK0I7SUFDbkM7R0FDRjtHQUlBLFNBQVN5dkIsb0JBQW9CNXpCLEdBQUdvQztJQUM5QixHQUFHQSxTQUFTNnBCLHVCQUF1QjdwQixLQUFLcEM7S0FDdEM4QztJQUNGO01BQUdiO1NBQXNCakMsRUFBRWlzQix1QkFBdUI3cEIsY0FBY0g7U0FBc0JqQyxnQkFBaUI7S0FDN0YsSUFBSm9JLE1BQU1wSSxFQUFFaXNCLHVCQUF1QjdwQjtLQUNuQyxHQUFHZ0csUUFBUWxHLFVBQVc7TUFDVixJQUFOMnhCO01BQ0osSUFBVSxJQUFGenZCLElBQUk2bkIsc0JBQXNCN25CLElBQUlwRSxVQUFVb0UsSUFBSTtPQUMxQyxJQUFKc0csTUFBTTFLLEVBQUVvRTtPQUNaLEdBQUdzRyxlQUFlekksbUJBQW1CO1FBQ25DeUksTUFBTUE7UUFDTixHQUFHQSxRQUFRdEMsS0FBS3lyQjs7O01BR3BCLEdBQUdBLFlBQVk3ekIsZ0JBQWdCb0k7OztJQUduQ3BJLEVBQUVpc0IsdUJBQXVCN3BCLEtBQUtGO0lBQzlCO0dBQ0Y7R0FzQkEsU0FBUzR4QixjQUFjOXpCLEdBQUdvQyxHQUFHK0I7SUFDM0IsR0FBR0EsUUFBUXl2QixvQkFBb0I1ekIsR0FBRW9DLFNBQzVCdXhCLGtCQUFrQjN6QixHQUFFb0MsR0FBRStCO0lBQzNCO0dBQ0Y7R3pCd0lBLFNBQVM0dkIsZ0JBQWdCMXVCO0lBQ3ZCLElBQUlKLE9BQU9xRyxrQkFBa0JqRyxPQUN6Qm9FLEtBQUt4RSxtQkFBbUJBO0lBQzVCLEdBQUd3RSxTQUFTakMsd0JBQXdCMUYsdUJBQXVCdUQ7SUFDM0Q7R0FDRjtHVnZCQSxTQUFTMnVCO0lBQ1BseEI7R0FDRjtHQXNDQSxTQUFTbXhCLGtCQUFrQjl6QixHQUFFaUM7SUFDM0IsR0FBSUEsV0FBV3dILHNCQUFzQnpKLFFBQVE2ekI7SUFDN0M7S0FBSWxiLEtBQUtqUCx1QkFBd0IxSixHQUFHaUM7S0FDaEMyVyxLQUFLbFAsdUJBQXdCMUosR0FBR2lDO0tBQ2hDNFcsS0FBS25QLHVCQUF3QjFKLEdBQUdpQztLQUNoQzZXLEtBQUtwUCx1QkFBd0IxSixHQUFHaUM7SUFDcEMsT0FBUTZXLFdBQVdELFdBQVdELFVBQVVEO0dBQzFDO0dBd0NBLFNBQVNvYixlQUFnQi96QixHQUFHaUM7SUFDMUIsR0FBSUEsV0FBV2pDLEtBQUs0SjtJQUNwQixPQUFPbXBCLHNCQUF1Qi95QixHQUFHaUM7R0FDbkM7R09yQkEsU0FBUyt4QixpQkFBa0JuMEIsR0FBR3dCLEdBQUssT0FBT2pCLFdBQVdQLEdBQUd3QixHQUFJO0dhNHNCNUQsU0FBUzR5QixVQUFVaHlCLEdBQUdtSDtJQUNwQixHQUFHbkgsVUFBTW1ILFFBQU16RztJQUNmeUcsSUFBSXlFLE9BQU96RTtJQUNYLElBQUk4cUIsVUFBVXJtQixPQUFPNUwsSUFDakIyRyxNQUFNaUY7SUFDVixNQUFNcW1CLHFCQUFxQjtLQUN6QnRyQixNQUFNQSxhQUFhc3JCO0tBQ25CQSxVQUFVQSxjQUFjOXFCOztJQUUxQixPQUFPb08sZUFBZTVPO0dBQ3hCO0dmdHZCQSxTQUFTdXJCLGFBQWFweEIsR0FBRzBILEdBQUd2RTtJQUFRLE9BQU9uRCxRQUFRMEgsR0FBRzBhLG1CQUFtQmpmO0dBQVE7R0ZvQmpGLFNBQVNrdUIsNEJBQStCLDBCQUEwQjtHUWlFbEUsU0FBU0MsZ0NBQWtDLFNBQVM7R1N2R3BELFNBQVNDLFlBQVk1YztJQUNuQixHQUFJQSxPQUFPQSxTQUFTLE9BQU9BO0lBQzNCclgsb0JBQW9CK0Y7R0FDdEI7R0FyTkEsU0FBU211QixtQkFBbUIxMEIsR0FBRXdCLEdBQ3RCLElBQUZ1VyxJQUFJL1gsSUFBRXdCLEdBQ1YsT0FBT3VXLE1BQU1BLE9BQ2Y7R0lpSUEsU0FBUzRjLHdCQUF3Qnp6QixHQUFHZjtJQUNsQyxJQUFJOEMsTUFBTTlDLFVBQVVpQyxHQUFHb2U7SUFDdkIsSUFBS3BlLE9BQU9BLFNBQVNhLEtBQUtiLE9BQVE7S0FDaENvZSxJQUFJcmdCLEVBQUVpQyxLQUNEakMsRUFBRWlDLGNBQ0ZqQyxFQUFFaUMsZUFDRmpDLEVBQUVpQztLQUNQbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUdzZjs7SUFFM0JBO0lBQ0EsT0FBUXZkOztPQUNBdWQsSUFBS3JnQixFQUFFaUM7O09BQ1BvZSxLQUFLcmdCLEVBQUVpQzs7T0FDUG9lLEtBQUtyZ0IsRUFBRWlDLElBQ2JsQixJQUFJbVosa0JBQWtCblosR0FBR3NmOztJQUczQnRmLEtBQUsrQjtJQUNMLE9BQU8vQjtHQUNUO0dBM0NBLFNBQVMwekIsc0JBQXNCMXpCLEdBQUdmO0lBQ2hDLElBQUk4QyxNQUFNOUMsVUFBVWlDLEdBQUdvZTtJQUN2QixJQUFLcGUsT0FBT0EsU0FBU2EsS0FBS2IsT0FBUTtLQUNoQ29lO01BQUlyZ0IsYUFBYWlDLEtBQ1pqQyxhQUFhaUMsY0FDYmpDLGFBQWFpQztRQUNiakMsYUFBYWlDO0tBQ2xCbEIsSUFBSW1aLGtCQUFrQm5aLEdBQUdzZjs7SUFFM0JBO0lBQ0EsT0FBUXZkOztPQUNBdWQsSUFBS3JnQixhQUFhaUM7O09BQ2xCb2UsS0FBS3JnQixhQUFhaUM7O09BRXhCb2UsS0FBS3JnQixhQUFhaUMsSUFDbEJsQixJQUFJbVosa0JBQWtCblosR0FBR3NmOztJQUczQnRmLEtBQUsrQjtJQUNMLE9BQU8vQjtHQUNUO0d4QjhxQkEsU0FBUzJ6QixzQkFBc0IxMEI7SUFDN0IsT0FBUUE7ZUFFTnlHLDZCQUE2QnpHOztPQUU3QixPQUFPQTs7T0FFUCxPQUFPQTs7R0FFWDtHd0IxcEJBLFNBQVMyMEIsb0JBQW9CNXpCLEdBQUdpRDtJQUNsQixJQUFSNkMsVUFBVTZ0QixzQkFBc0Ixd0I7SUFDcEMsY0FBVTZDO2NBQ0Q0dEIsc0JBQXNCMXpCLEdBQUc4RjtjQUV6QjJ0Qix3QkFBd0J6ekIsR0FBRzhGO0dBQ3RDO0d4QnlYQSxTQUFTK3RCLG9CQUFvQmp0QixJQUFJRTtJQUM5QkYsWUFBYWxCLDZCQUE2QmtCO0lBQzFDRSxZQUFhcEIsNkJBQTZCb0I7SUFDM0MsT0FBUUYsT0FBT0U7R0FDakI7R09sUEEsU0FBU2d0QixnQkFBZ0JoMUIsR0FDdkIsV0FBVytuQixlQUFlL25CLEdBQzVCO0dPRUEsU0FBU2kxQixrQkFBa0JDO0lBQ25CLElBQUYvMEIsSUFBSWdNO0lBQ1JoTTtJQUNBQSxpQkFBaUIrMEIsVUFBUy8wQixXQUFXKzBCO0lBQ3JDLElBQVUsSUFBRjl5QixPQUFPQSxJQUFJOHlCLFdBQVc5eUI7S0FDNUJqQyxpQkFBaUIrMEIsR0FBRzl5QixPQUFNakMsV0FBVyswQixHQUFHOXlCO0lBQzFDakMsaUJBQWlCKzBCLFVBQVMvMEIsV0FBVyswQjtJQUNyQy8wQjtJQUNBO0dBQ0Y7R0loVEEsU0FBU2cxQjtJQUNQO0dBQ0Y7R0VxN0JBLFNBQVNDLFNBQVNoekI7SUFDaEIsR0FBR0EsUUFBTVU7SUFDVCxPQUFPc3hCLFVBQVVoeUI7R0FDbkI7R0g5b0JBLFNBQVNpekIsbUJBQW9Cem5CO0lBQ2xCLElBQUxOLE9BQU9GLGlCQUFpQlE7SUFDNUIsR0FBR04sb0JBQW9CQSxnQkFBZ0I7S0FDckNBO0tBQ0FBO0tBQ0FELFlBQVlDOztJQUVkLEdBQUlBLG9CQUFvQkEsaUJBQ3RCa1A7SUFDTSxJQUFKelQsTUFBTXVFLFlBQVlBO0lBQ3RCQTtJQUNBLE9BQU92RTtHQUNUO0dBS0EsU0FBU3VzQixrQkFBbUIxbkI7SUFDMUIsSUFBSU4sT0FBT0YsaUJBQWlCUSxTQUN4QjdFO0lBQ0osSUFBVSxJQUFGM0csT0FBT0EsT0FBT0E7S0FDcEIyRyxPQUFPQSxZQUFZc3NCLG1CQUFtQnpuQjtJQUV4QyxPQUFPN0U7R0FDVDtHSHVKQSxTQUFTd3NCO0lBQ1BwcUI7R0FDRjtHTW9iQSxTQUFTcXFCLGVBQWU3dUIsR0FBRzNDO0lBQ2hCLElBQUxnVSxPQUFPaEs7SUFDWHJILElBQUlxSCxPQUFPckg7SUFDWDNDLElBQUlnSyxPQUFPaEs7SUFDWCxHQUFHMkMsU0FBU3FSLFNBQVNoVSxTQUFTZ1UsT0FBTztJQUNyQyxPQUFPclIsZ0JBQWdCM0M7R0FDekI7R0tseEJBLFNBQVN5eEIseUJBQXlCN3FCLEdBQUssU0FBVTtHWnRGakQsU0FBUzhxQixjQUFjbmIsS0FBSzFCLEtBQzFCLE9BQU8wQixTQUFTMUIsS0FDbEI7R29CckJBLFNBQVM4YyxnQkFBZ0IzTixJQUFJamdCLElBQUlrZ0IsSUFBSWhnQixJQUFJaEY7SUFDdkMsR0FBSWdGLE1BQU1GO0tBQUksSUFDRCxJQUFGM0QsT0FBT0EsS0FBS25CLEtBQUttQixLQUFLNmpCLEdBQUdoZ0IsS0FBSzdELEtBQUs0akIsR0FBR2pnQixLQUFLM0Q7O0tBQy9DLElBQ00sSUFBRkEsSUFBSW5CLEtBQUttQixRQUFRQSxLQUFLNmpCLEdBQUdoZ0IsS0FBSzdELEtBQUs0akIsR0FBR2pnQixLQUFLM0Q7SUFFdEQ7R0FDRjtHMUJnYkEsU0FBU3d4QixxQkFBcUJ6MUI7SUFDNUIsSUFBSTRJO0lBQ0o1SSxJQUFJMkIsdUJBQXVCM0I7SUFDM0I0SSxRQUFPNUk7SUFDUCxHQUFLQSxnQkFBa0I0SSxRQUFRQSxLQUFNLE9BQU9BO0lBQzVDNUksSUFBSUE7SUFDSjRJLFFBQU81STtJQUNQLEdBQU1BLGdCQUFrQjRJLFFBQVFBLE9BQVMsbUJBQW1CNUksSUFBSSxPQUFPNEk7SUFDakUsSUFBRlEsSUFBSSwrREFBK0RwSjtJQUV2RSxHQUFHb0osRUFBRTtLQUNIO01BQUlzc0IsS0FBS3RzQjtNQUNMdXNCLFdBQVd6ZSxTQUFTOU4sT0FBT0EsT0FBT3NzQjtNQUNsQ0UsWUFBWXhzQixnQkFBWXNzQjtLQUM1QjlzQixNQUFNK3NCLFdBQVd2MUIsWUFBWXcxQjtLQUM3QixPQUFPaHRCOztJQUVULEdBQUcseUJBQXlCNUksSUFBSSxPQUFPbVQ7SUFDdkMsR0FBRyx1QkFBdUJuVCxJQUFJLFNBQVFtVDtJQUN0Q25JO0dBQ0Y7R0dyVkEsU0FBUzZxQjtJQUNQLE9BQU9yekIsdUJBQXVCMkM7R0FDaEM7R1htREEsU0FBUzJ3QixlQUFnQmoyQixHQUFHd0IsR0FBSyxPQUFPeEIsTUFBTXdCLEdBQUc7R0FPakQsU0FBUzAwQixlQUFlbDJCLEdBQUV3QixHQUFLLE9BQU94QixNQUFNd0IsR0FBRztHQWhCL0MsU0FBUzIwQixlQUFlbjJCLEdBQUV3QixHQUFLLE9BQU94QixXQUFXd0IsT0FBUTtHd0JwTHpELFNBQVM0MEIseUJBQTBCajJCO0lBQ2pDLElBQUlpQyxPQUFPYSxNQUFNMkcsc0JBQXNCekosSUFBSTZQLFdBQVc3TztJQUN0RCxHQUFJOEI7S0FBUyxPQUNINEcsdUJBQXVCMUosR0FBRWlDOztRQUN4QkEsS0FBS2pCLFlBQVc7O1FBQ2hCaUIsS0FBS2pCLFVBQVU7O0lBRzFCLEdBQUlpQixRQUFRYSxPQUFPNEcsdUJBQXVCMUosR0FBR2lDO0tBQzNDLE9BQVF5SCx1QkFBdUIxSixHQUFHaUM7OztRQUNmNE4sV0FBVzVOLFFBQVE7OztRQUNuQjROLFVBQVc1TixRQUFROzs7UUFDbkI0TixVQUFXNU4sUUFBUTs7O1FBQ25CQSxRQUFROztJQUU3QixRQUFRQSxHQUFHakIsTUFBTTZPO0dBQ25CO0dBR0EsU0FBU3FtQixpQkFBaUJsekI7SUFDeEIsR0FBSUEsV0FBV0EsU0FBVSxPQUFPQTtJQUNoQyxHQUFJQSxXQUFXQSxTQUFVLE9BQU9BO0lBQ2hDLEdBQUlBLFdBQVdBLFVBQVUsT0FBT0E7SUFDaEM7R0FDRjtHeEJpUUEsU0FBU216QixxQkFBcUJuMkI7SUFDNUI7S0FBSUMsSUFBSWcyQix5QkFBMEJqMkI7S0FDOUJpQyxJQUFJaEM7S0FBTWUsT0FBT2Y7S0FBTTRQLE9BQU81UDtLQUM5Qm0yQixTQUFTNzBCLG9CQUFvQnNPO0tBQzdCd21CO09BQ0EsSUFBSTUxQiw2Q0FBNkMyMUI7S0FDakRwekIsSUFBSTBHLHVCQUF1QjFKLEdBQUdpQztLQUM5QndELElBQUl5d0IsaUJBQWlCbHpCO0lBQ3pCLEdBQUl5QyxTQUFTQSxLQUFLb0ssTUFBTTdFO0lBQ2hCLElBQUpwQyxNQUFNckgsb0JBQW9Ca0U7SUFDOUIsT0FBUztLQUNQeEQ7S0FDQWUsSUFBSTBHLHVCQUF1QjFKLEdBQUdpQztLQUM5QixHQUFJZSxTQUFTO0tBQ2J5QyxJQUFJeXdCLGlCQUFpQmx6QjtLQUNyQixHQUFJeUMsU0FBU0EsS0FBS29LLE1BQU07S0FFeEIsR0FBSW1tQixlQUFlSyxXQUFXenRCLE1BQU1vQztLQUNwQ3ZGLElBQUlsRSxvQkFBb0JrRTtLQUN4Qm1ELE1BQU1rdEIsZUFBZUMsZUFBZUssUUFBUXh0QixNQUFNbkQ7S0FFbEQsR0FBSXV3QixlQUFlcHRCLEtBQUtuRCxJQUFJdUY7O0lBRTlCLEdBQUkvSSxLQUFLd0gsc0JBQXNCekosSUFBSWdMO0lBQ25DLEdBQUk2RSxjQUFjbW1CLG1CQUFtQnYxQix1QkFBdUJtSTtLQUMxRG9DO0lBQ0YsR0FBSWhLLFVBQVU0SCxNQUFNbEgsZUFBZWtIO0lBQ25DLE9BQU9BO0dBQ1Q7R3NCdUlBLFNBQVMwdEIsY0FBYzlkLElBQUlDLElBQUl6VSxHQUM3QndVLE9BQU9BLFVBQVVDLEtBQUt6VSxJQUN0QixTQUNGO0d0QjVPQSxTQUFTdXlCLGVBQWdCMTJCLEdBQUd3QixHQUFLLE9BQU94QixNQUFNd0IsR0FBRztHQUhqRCxTQUFTbTFCLGNBQWUzMkIsR0FBR3dCLEdBQUssT0FBT3hCLEtBQUt3QixHQUFJO0dxQ3ZPaEQsU0FBU28xQixjQUFjenlCO0lBQ3JCLFNBQVMweUIsUUFBUTcyQixHQUFHdWQsR0FDbEIsT0FBT3VVLHNCQUFzQjl4QixHQUFFdWQsR0FDakM7SUFDQSxTQUFTdVosUUFBUTkyQixHQUFHdWQsR0FDbEIsT0FBTytJLGdDQUFnQ3RtQixHQUFFdWQsR0FDM0M7SUFDQSxTQUFTd1osR0FBR3B3QixHQUFHM0MsR0FDYixPQUFPMnlCLGNBQWNod0IsR0FBRTNDLEdBQ3pCO0lBQ0EsU0FBU2d6QixJQUFJcndCLEdBQUczQyxHQUNkLE9BQU8weUIsZUFBZS92QixHQUFFM0MsR0FDMUI7SUFDQSxTQUFTNEwsSUFBSWpKLEdBQUczQyxHQUNkLE9BQU9peUIsZUFBZXR2QixHQUFFM0MsR0FDMUI7SUFDQSxTQUFTaXpCLElBQUl0d0IsR0FBRzNDLEdBQ2QsT0FBT2t5QixlQUFldnZCLEdBQUUzQyxHQUMxQjtJQUNBLFNBQVNrekIsS0FBS2wzQixHQUFHdWQsR0FDZixPQUFPd1osR0FBR0YsUUFBUTcyQixHQUFFdWQsSUFBR3VaLFFBQVM5MkIsUUFBUXVkLElBQzFDO0lBQ0EsU0FBUzRaLElBQUl4d0IsR0FBR3ZFLEdBQ2QsT0FBT3dsQixjQUFjamhCLEdBQUd2RSxHQUMxQjtJQUNBLFNBQVNnMUIsSUFBSXp3QixHQUFHdkUsR0FBR3BDLEdBQ2pCLE9BQU95MkIsY0FBYzl2QixHQUFHdkUsR0FBR3BDLEdBQzdCO0lBQ0E7S0FBSXEzQixJQUFJZixxQkFBcUJ4TztLQUN6QndQLE9BQU9oQixxQkFBcUJ4TztLQUM1Qi9QO0tBQUd3ZjtLQUFJQztLQUNQQyxLQUFLdHpCO0tBQ0x3QyxJQUFJd3dCLElBQUlNO0tBQ1J0M0IsSUFBSWczQixJQUFJTTtLQUNSQyxLQUFLUCxJQUFJTTtLQUNUeFUsS0FBS2tVLElBQUlNO0lBRWIxZixJQUFJbkksSUFBSXpQLEdBQUd1M0I7SUFFWDNmLElBQUlrZixJQUFJRCxJQUFJamYsR0FBRStlLFFBQVEvZSxTQUFRdWY7SUFDOUJ2ZixJQUFJa2YsSUFBSUQsSUFBSWpmLEdBQUUrZSxRQUFRL2UsU0FBUXVmO0lBQzlCdmYsSUFBSWlmLElBQUlqZixHQUFFK2UsUUFBUS9lO0lBRWxCcWYsSUFBSUssT0FBTzduQixJQUFLcW5CLElBQUk5MkIsR0FBRWszQixJQUFJMXdCO0lBRTFCLElBQUk0d0IsS0FBS0csSUFDTEYsS0FBS3ZVO0lBQ1R1VSxLQUFLUixJQUFJUSxJQUFHRDtJQUNaQSxLQUFLTCxLQUFLSztJQUNWQSxLQUFLUCxJQUFJQSxJQUFJTyxJQUFJQyxLQUFNWCxRQUFRVztJQUMvQkEsS0FBS04sS0FBS007SUFDVkosSUFBSUssT0FBT0Y7SUFDWEgsSUFBSUssT0FBT0Q7SUFFWCxPQUFPemY7R0FDVDtHakN3TEEsU0FBUzRmLDRCQUErQixTQUFVO0dFOUJsRCxTQUFTQyxzQkFBc0J2M0I7SUFDdkIsSUFBRnNHO0lBQ0osTUFBTXRHLFNBQVNBLElBQUlBLE1BQ2pCc0csT0FBT3RHO0lBRVQsT0FBT3NHO0dBQ1Q7R1dpWG9CO0lBQWhCa3hCO01BQWtCO1FBQ3BCLFNBQVNDLFNBQVk5MkIsZ0JBQWlCO1FBQ3RDODJCOzs7Ozs7O21CQUVrQjdaLE1BQU1oUDtXQUNwQixJQUFXLElBQUY3TSxJQUFJNmIsVUFBUzdiLFFBQU9BO1lBQzNCcEIsV0FBV0Esb0JBQXFCaU8sU0FBUzdNO1VBRnZDOzttQkFJYWtHLEtBQUsyVixNQUFNaFA7V0FDcEIsSUFBSjNHLE1BQU1BO1dBQ1YsSUFBVyxJQUFGbEcsSUFBSTZiLFVBQVM3YixRQUFPQTtZQUMzQnBCLFdBQVdzSCxTQUFVMkcsU0FBUzdNO1VBSHpCOzttQkFLWTZiLE1BQU1qWSxNQUFNaUo7V0FDL0JqTyxXQUFXQSxvQkFBb0JnRjtXQUMvQixJQUFXLElBQUY1RCxJQUFJNmIsVUFBUzdiLFFBQU9BO1lBQzNCcEIsV0FBV0Esb0JBQXFCaU8sU0FBUzdNO1VBSGxDOzttQkFLWWhCO1dBQ3JCLEdBQUlBO1lBQW1CSix5QkFBOENJO21CQUM1REE7WUFBb0JKLDBCQUFnREk7O1lBQ3hFSiwwQkFBZ0RJO1VBSDFDOzBCQUtLLE9BQU9KLGVBQXJCOzs7V0FFRkEsaUJBQWlCQTtXQUNqQkE7V0FDQUE7V0FDQUEsZUFBZ0JBO1dBQ2hCQSxlQUFnQkE7V0FDaEJBLGVBQWdCQTtXQUNoQkEsZUFBZ0JBO1dBQ2hCLE9BQU9BO1VBUkE7UUFXWCxnQkFBaUJtRCxHQUFHMEU7U0FDbEJBLFFBQVErdUIsc0JBQXNCL3VCO1NBRTlCO1VBQUlrdkIsYUFBY2x2QjtVQUNkbXZCLFdBQWFudkI7U0FHakIsR0FBSW12QjtVQUNGQzs7U0FFRjtVQUFJemUsYUFBYXNlO1VBQ2JyVztVQUNBeVcsbUJBQW1CSCxhQUFhM3hCLFdBQVdtRztTQUUvQyxTQUFTNHJCLEtBQUtoMEI7VUFDWixHQUFJNHpCLFlBQVk7VUFDSSxJQUFoQkssa0JBQWtCRix3QkFBd0IvekI7VUFDOUMsR0FBSWkwQixnQkFBaUI7V0FBRTVlLG9CQUFvQjRlO1dBQWtCOztjQUN4RCxDQUFFRix1QkFBdUIvekIsSUFBSTtTQUNwQztTQUVBLFNBQVNrMEIsV0FBWWwwQjtVQUNuQixHQUFJQSxjQUFlO1dBQ2pCLEdBQUlnMEIsS0FBS2gwQixJQUFJO1dBQ2I7WUFBSWtCLE9BQU9sQjtZQUNQbTBCLE1BQU14WCxnQkFBZ0J6YjtZQUN0Qmt6QjtXQUNKLEtBQUlEO1lBQ0Z4MUI7V0FDRixHQUFHdzFCLG9CQUFvQnAyQixVQUFVO1lBQy9Cc1g7WUFDQSxJQUFXLElBQUZwWCxPQUFPQSxJQUFJaUQsYUFBYWpEO2FBQy9Cb1gsZ0JBQWlCblUsZ0JBQWdCakQ7WUFDbkNvWDtZQUNlLElBQVhnZixhQUFhaGY7WUFDakIsSUFBVSxJQUFGcFgsT0FBT0EsUUFBUUEsS0FDckJvWDtZQUVGOGUsY0FBYzllLFFBQVFyVixHQUFHbzBCO1lBQ3pCL2UsZ0JBQWdCZ2YsZ0JBQWdCRDtZQUNoQy9lLGdCQUFnQmdmO1lBQ2hCaGYsZ0JBQWdCZ2Ysb0JBQW9CRDs7ZUFDL0I7WUFDTC9lO1lBQ0EsSUFBVyxJQUFGcFgsT0FBT0EsSUFBSWlELGFBQWFqRDthQUMvQm9YLGdCQUFpQm5VLGdCQUFnQmpEO1lBQ25Db1g7WUFDWSxJQUFSaWYsVUFBVWpmO1lBQ2Q4ZSxjQUFjOWUsUUFBUXJWLEdBQUdvMEI7WUFDekIsR0FBSUQsb0JBQW9COWUsZUFBZWlmO2FBQ3JDdHRCO3FFQUFvRTlGOztXQUV4RW1VLHVCQUF3QitlO1dBQ3hCL2UsdUJBQXdCK2U7O2tCQUVqQnAwQixhQUFhdUYsU0FBU3ZGLFVBQVVBLFVBQVM7V0FDaEQsR0FBSUE7WUFDRmdIO1dBRUYsR0FBSTBSLHlCQUF5QjFZO1lBQzNCckI7V0FDRixHQUFJcUIsZ0JBQWdCZzBCLEtBQUtoMEIsSUFBSTtXQUM3QixHQUFJQSxhQUFhQTtZQUNmcVYsdUJBQW1EclYsUUFBU0E7O1lBRTVEcVYsNEJBQW1EclYscUJBQXFCQTtXQUMxRXFWLGtCQUFrQnJWO1dBQ2xCcVYsa0JBQWtCclY7V0FDbEIsR0FBSUEsY0FBY3NkLFdBQVl0ZDs7a0JBQ3JCOEMsaUJBQWlCOUMsR0FBSTtXQUM5QixLQUFLOEMsaUJBQWlCdEU7WUFDcEJ3STs7V0FFRixHQUFJZ3RCLEtBQUtoMEIsSUFBSTtXQUNMLElBQUpsQixNQUFNMkUscUJBQXFCekQ7V0FDL0IsR0FBSWxCO1lBQ0Z1Vyx1QkFBb0R2VzttQkFDN0NBO1lBQ1B1VywyQkFBZ0R2Vzs7WUFFaER1Vyw0QkFBbUR2VztXQUNyRCxJQUFXLElBQUZiLE9BQU1BLElBQUlhLEtBQUliO1lBQ3JCb1gsZ0JBQWlCMFosc0JBQXNCL3VCLEdBQUUvQjtXQUMzQ29YLHdCQUF5QnZXO1dBQ3pCdVcsd0JBQXlCdlc7O2tCQUNoQmlFLGtCQUFrQi9DLEdBQUk7V0FDdkIsSUFBSmxCLE1BQU0yRyxzQkFBc0J6RjtXQUNoQyxHQUFJbEI7WUFDRnVXLHVCQUFvRHZXO21CQUM3Q0E7WUFDUHVXLDJCQUFnRHZXOztZQUVoRHVXLDRCQUFtRHZXO1dBQ3JELElBQVcsSUFBRmIsT0FBTUEsSUFBSWEsS0FBSWI7WUFDckJvWCxnQkFBaUIzUCx1QkFBdUIxRixHQUFFL0I7V0FDNUNvWCx3QkFBeUJ2VztXQUN6QnVXLHdCQUF5QnZXOztrQkFFckJrQixNQUFNQSxPQUFLO1dBQ0MsSUFBVnUwQixtQkFBbUJ2MEI7V0FTdkJnSCxpREFBK0N1dEI7O2tCQUt4Q3YwQixVQUFVQTtXQUNqQnFWLHVCQUFpRHJWO2tCQUU3Q0EsbUJBQWtCQTtXQUNwQnFWLDJCQUE2Q3JWO2tCQUN0Q0Esb0JBQW1CQTtXQUMxQnFWLDRCQUErQ3JWOztXQUUvQ3FWLDRCQUErQ3JWO1NBR3ZEO1NBQ0FrMEIsV0FBWWwwQjtTQUNaLE1BQU9zZCxpQkFBa0I7VUFDdkIsSUFBSXJmLElBQUlxZixhQUNKdGQsSUFBSXNkO1VBQ1IsR0FBSXJmLFFBQVErQixVQUFVc2QsV0FBWXRkLEdBQUcvQjtVQUNyQ2kyQixXQUFZbDBCLEVBQUUvQjs7U0FFaEIsR0FBSTgxQjtVQUFrQjFlLHFCQUFxQjBlO1NBQzNDMWU7U0FDQSxPQUFPQSxhQXRJRjtPQW5DYTs7R2hCM0Z0QixTQUFTbWYscUJBQXNCaHlCO0lBQzdCLE9BQU9oRSx1QkFBdUIrRCx5QkFBeUJDLE1BQUlBO0dBQzdEO0dnQndRQSxTQUFTaXlCLDRCQUE2QnowQixHQUFHMEU7SUFDdkMsT0FBTzh2QixxQkFBc0JkLGdCQUFpQjF6QixHQUFHMEU7R0FDbkQ7R05oa0JBLFNBQVNnd0IscUJBQXFCeHpCO0lBQzVCa0MscUJBQXNCbEM7R0FDeEI7R1BMQSxTQUFTeXpCLHdCQUF3QkM7SUFDdkIsSUFBSkEsTUFBTXowQix3QkFBd0J5MEI7SUFDbEMsVUFBVzN1Qix1QkFBdUI7S0FDZCxJQUFkNHVCLGdCQUFnQjV1QjtLQUNwQixHQUFHNHVCLGlCQUFpQkE7TUFDbEIsSUFDRUEsdUJBQXVCRCwwQkFDdkI7WUFDT3hqQixHQUNQOzs7S0FHRDtHQUNQO0d5Qi9IQSxTQUFTMGpCLDJCQUEyQjMyQjtJQUNsQyxHQUFHQSxjQUFjLE9BQVNBO0lBQzFCLE9BQU84RDtHQUNUO0dqQndJQSxTQUFTOHlCLGlCQUFpQm5yQjtJQUN4QixHQUFHOUwsc0JBQXNCQTtLQUEwQixPQUMxQ0E7SUFFVHVKO0dBQ0Y7R0VxTEEsU0FBUzJ0QixnQkFBZ0J4WixRQUFRL0I7SUFDL0IsSUFBSTNhLE1BQU0wYyxrQkFDTnBGLFVBQVUrSCxNQUFNcmY7SUFDcEIsSUFBVSxJQUFGYixPQUFPQSxJQUFJYSxLQUFLYixLQUN0Qm1ZLFNBQVNuWSxLQUFLdWQ7SUFFaEIvQixRQUFRM2E7SUFDUixPQUFPc1g7R0FDVDtHQTFaQSxTQUFTNmU7SUFDUHRZO21CQUNrQnFZO2lCQUNGblU7WUFDTHhLO0dBRWI7R08yR0EsU0FBUzZlLFVBQVV4aEIsSUFDakIsT0FBT0YsZUFBZTNKLE9BQU82SixZQUMvQjtHcEIyUkEsU0FBU3loQiw2QkFBOEJuNUI7SUFDN0IsSUFBSk07SUFDSixLQUFLcUQsY0FBYzNELElBQ2pCTSxTQUFpQ04sSUFBSXdGLG1CQUFtQnhGO0lBQzFELFdBQVcwRyxRQUFRcEcsS0FBS04sR0FBR0E7R0FDN0I7R2MwR0EsU0FBU281Qix1QkFBdUI1eUIsR0FBRTNDLEdBQUViLEdBQUV5QztJQUNwQ3VGO0dBQ0Y7R0UvY0EsU0FBU3F1QixpQkFBa0JyNUIsR0FBR2lDLEdBQUtwQixTQUFTYixHQUFHYSxTQUFTb0IsRUFBRztHQUMzRG8zQjt3QkFDdUIsT0FBT3g0QixPQUFPQSxVQUE1Qjt3QkFDYyxPQUFPQSxPQUFPQSxzQkFBNUI7OztNQUVMLElBQUliLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULE9BQVFqQyxFQUFFaUMsVUFBV2pDLEVBQUVpQztLQUhqQjs7O01BTU4sSUFBSWpDLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULE9BQVFqQyxFQUFFaUMsaUJBQWtCakMsRUFBRWlDO0tBSHhCOzs7TUFNTixJQUFJakMsSUFBSWEsUUFBUW9CLElBQUlwQjtNQUNwQkEsU0FBU29CO01BQ1QsUUFBU2pDLEVBQUVpQyxXQUFhakMsRUFBRWlDLGVBQ2pCakMsRUFBRWlDLGNBQWFqQyxFQUFFaUM7S0FKcEI7OztNQU9OLElBQUlqQyxJQUFJYSxRQUFRb0IsSUFBSXBCO01BQ3BCQSxTQUFTb0I7TUFDVCxPQUFRakMsRUFBRWlDLFdBQWFqQyxFQUFFaUMsZUFDdEJqQyxFQUFFaUMsY0FBYWpDLEVBQUVpQztLQUpkOztjQU1VYTtNQUNWLElBQUZiLElBQUlwQjtNQUNSQSxTQUFTb0IsSUFBSWE7TUFDYixPQUFPMDFCLHFCQUFxQjMzQixnQkFBZ0JvQixHQUFHQSxJQUFJYTtLQUg3Qzs7Y0FLaUJBO01BQ2pCLElBQUZiLElBQUlwQjtNQUNSQSxTQUFTb0IsSUFBSWE7TUFDYixPQUFPakMsZ0JBQWdCb0IsR0FBR0EsSUFBSWE7S0FIakI7R0FtYmpCLFNBQVN3MkIsdUJBQXdCdDVCLEdBQUcwWTtJQUM1QixJQUFGelksUUFBUW81QixpQkFBaUI5eEIsMEJBQTBCdkgsSUFBSTBZO0lBQzNELFNBQVM2Z0IsUUFBUUM7S0FDZixJQUFJeDJCLElBQUkvQyxZQUNKRixJQUFJaUQ7S0FDUixPQUFRQSxlQUFnQjtNQUN0QkEsSUFBSS9DO01BQ0csSUFBSHc1QixLQUFLMTVCO01BQ1QsR0FBSUEsS0FBSzA1QixTQUFTRDtNQUNsQno1QixJQUFJMDVCLEtBQU16MkI7O0tBRVosT0FBT2pEO0lBQ1Q7SUFFQSxPQUFPRTs7T0FFTCxJQUFJeTVCLGlCQUNBQyxXQUFXMTVCLGFBQ2Y7O09BRUE7UUFBSXk1QixhQUFhejVCO1FBQ2J1NUI7UUFDQUcsV0FBV0osUUFBUUM7T0FDdkIsR0FBR0E7UUFDRHh1Qjs7T0FFRjs7ZUFHQUEsZ0RBQ0E7O0lBRUYsT0FBTzB1QixhQUFhMVEsMkJBQTJCMlE7R0FDakQ7R0ExY0EsU0FBU0MsZUFBZ0I1NUIsR0FBR2lDO0lBQUtwQixTQUFTYyx1QkFBdUIzQjtJQUFJYSxTQUFTb0I7R0FBRztHQUNqRjIzQjt3QkFDdUIsT0FBTy80QixrQkFBa0JBLFVBQXZDO3dCQUNjLE9BQU9BLGtCQUFrQkEsc0JBQXZDOzs7TUFFTCxJQUFJYixJQUFJYSxRQUFRb0IsSUFBSXBCO01BQ3BCQSxTQUFTb0I7TUFDVCxPQUFRakMsYUFBYWlDLFVBQVdqQyxhQUFhaUM7S0FIdkM7OztNQU1OLElBQUlqQyxJQUFJYSxRQUFRb0IsSUFBSXBCO01BQ3BCQSxTQUFTb0I7TUFDVCxPQUFRakMsYUFBYWlDLGlCQUFrQmpDLGFBQWFpQztLQUg5Qzs7O01BTU4sSUFBSWpDLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULFFBQVNqQyxhQUFhaUMsV0FBYWpDLGFBQWFpQztlQUN2Q2pDLGFBQWFpQztlQUFhakMsYUFBYWlDOztLQUoxQzs7O01BT04sSUFBSWpDLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULE9BQVFqQyxhQUFhaUMsV0FBYWpDLGFBQWFpQztlQUM1Q2pDLGFBQWFpQztlQUFhakMsYUFBYWlDO0tBSnBDOztjQU1VYTtNQUNWLElBQUZiLElBQUlwQjtNQUNSQSxTQUFTb0IsSUFBSWE7TUFDYixPQUFPTix1QkFBdUIzQixpQkFBaUJvQixHQUFHQSxJQUFJYTtLQUhoRDs7Y0FLaUJBO01BQ3ZCLElBQUllLFFBQVFvRCxXQUFXbkUsTUFDbkI5QyxJQUFJYSxRQUNKb0IsSUFBSXBCO01BQ1IsSUFBVSxJQUFGb0QsT0FBT0EsSUFBSW5CLEtBQUttQixLQUN0QkosRUFBRUksS0FBS2pFLGFBQWFpQyxJQUFJZ0M7TUFFMUJwRCxTQUFTb0IsSUFBSWE7TUFDYixPQUFPZTtLQVJNO0dxQnpIRztJQUFoQmcyQjtNQUFrQjtRQUN0QjtRQUVBO1NBQUlDLEtBQUtyTTtTQUFhc00sS0FBSzl5QjtTQUFZK3lCLE1BQU03YjtTQUFhcUwsTUFBTXRMO1NBQVkrYixNQUFNdE07U0FBYXVNLE1BQU1qZDtRQUM3RixTQUFKa2QsSUFBZ0JuMkIsR0FBR2hFLEdBQUdvVjtTQUN0QixHQUFJMmtCLG9CQUNBLE9BQU9BLHdCQUF3Qi8xQixHQUFHaEUsR0FBR29WO1NBQ3pDLEdBQUlwVixLQUFLaUcsUUFBUWpHLE9BQ2JBO1NBQ0osR0FBSW9WLEtBQUtuUCxRQUFRbVAsSUFBSXBSLFVBQ2pCb1IsSUFBSXBSO1NBQ0YsSUFBRmpFLFFBQVFnNkIsR0FBRzNrQixJQUFJcFY7U0FDbkJELE1BQU1pRSxXQUFXaEUsR0FBR29WO1NBQ3BCLE9BQU9yVjtRQVREO1FBV0QsU0FBTHE2QixLQUFpQnAyQixHQUFHakUsR0FBR0MsR0FBR29WO1NBQzFCLEdBQUkya0IsbUJBQ0EsT0FBT0EsdUJBQXVCLzFCLEdBQUdqRSxHQUFHQyxHQUFHb1Y7U0FDM0MsR0FBSXBWLEtBQUtpRyxRQUFRakcsT0FDYkE7U0FDSixHQUFJb1YsS0FBS25QLFFBQVFtUCxJQUFJcFIsVUFDakJvUixJQUFJcFI7U0FDUixNQUFPaEUsSUFBSW9WLEtBQUtwVixHQUNaZ0UsRUFBRWhFLEtBQUtEO1NBQ1gsT0FBT2lFO1FBVEE7UUFXSCxTQUFKcTJCLElBQWdCcjJCLEdBQUdOLEdBQUcxRCxHQUFHb1Y7U0FDekIsR0FBSTJrQjtVQUNBLE9BQU9BLDZCQUE2Qi8xQixHQUFHTixHQUFHMUQsR0FBR29WO1NBQ2pELEdBQUlwVixLQUFLaUcsUUFBUWpHLE9BQ2JBO1NBQ0osR0FBSW9WLEtBQUtuUCxRQUFRbVAsSUFBSXBSLFVBQ2pCb1IsSUFBSXBSO1NBQ1IsTUFBT2hFLElBQUlvVixHQUNQcFIsRUFBRU4sT0FBT00sRUFBRWhFO1FBUlQ7UUFlSDtTQUFIczZCOzs7Ozs7O1FBU0ksU0FBSnB3QixJQUFnQnF3QixLQUFLNzNCLEtBQUs4M0I7U0FDcEIsSUFBRnBsQixRQUFRMUMsTUFBTWhRLE9BQU80M0IsR0FBR0M7U0FDNUJubEIsU0FBU21sQjtTQUNULEtBQUtDLElBQ0QsTUFBTXBsQjtTQUNWLE9BQU9BO1FBTEQ7UUFPSCxTQUFIcWxCLEdBQWVoMUIsR0FBRzVCLEdBQUc5RDtTQUNyQixJQUFJa0MsT0FBT3dJO1NBQ1gsTUFBT3hJLElBQUlsQyxLQUFLa0MsR0FDWndJLEtBQUtoRixFQUFFNUIsU0FBUzVCO1NBQ3BCLE9BQU93STtRQUpGO1FBTUYsU0FBSHFPLEdBQWVyVCxHQUFHNUI7U0FBSyxRQUFRNEIsRUFBRTVCLEtBQU00QixFQUFFNUIsY0FBZ0I0QixFQUFFNUIsZUFBaUI0QixFQUFFNUI7UUFBekU7UUFFQSxTQUFMNjJCLEtBQWlCQyxLQUFLdGE7U0FDZixJQUFIdWEsS0FBS0QsU0FBVUEsY0FBZ0JBO1NBQ25DLEdBQUlDLGtCQUFrQkQsY0FBZTtVQUVqQztXQUFJRSxNQUFNRjtXQUVORyxLQUFNRDtXQUFlRSxLQUFNRjtXQUFlRyxLQUFLSDtXQUFTSSxNQUFNSjtVQUNsRSxHQUFJQSxTQUNBM3dCO1VBRUosSUFBSWd4QixTQUFTSixJQUVUSyxLQUFLSCxjQUFjQSxJQUVuQkksS0FBS1gsR0FBR0UsS0FBS08sSUFBSUM7VUFDckJELE1BQU1DO1VBRU47V0FBSUUsTUFBTUosV0FBWUEsTUFBT0g7V0FFekJRLE1BQU1iLEdBQUdFLEtBQUtPLElBQUlHLFFBQVNKO1dBRTNCTSxLQUFLRDtVQUNULEtBQUtSLEdBQUk7V0FFRSxJQUFIVSxnQkFBaUJiO1dBQ3JCWSxLQUFLQyxNQUFNQSxZQUFZYjs7VUFFM0IsR0FBSVksaUJBQ0FyeEI7VUFDSSxJQUFKaEMsVUFBVTZ4QixJQUFJMVosU0FBVWliLE9BQU9DLEtBQU1sYixRQUFRa2I7VUFDakRyekIsWUFBWUEsWUFBWUE7VUFDeEIsV0FDT2d6QixLQUFLRzs7O3FCQUdMRDtxQkFDQy9hLEtBQUtBLFNBQVVBLElBQUluWTtxQkFDcEJxekI7eUJBQ0lyQixJQUFJaHlCO3FCQUNSb3pCO3FCQUNBUDtxQkFDQTM2QixpQkFBaUJtN0I7O2tCQUdqQlgsVUFBWUQsNEJBQTZCLE9BRXpDN2hCLEdBQUc2aEI7U0FFZHp3QjtRQWhETztRQW1ESCxTQUFKdXhCLElBQWdCamxCO1NBQ1AsSUFBTC9DO1NBQ0osV0FBYUEsUUFBUytDLE9BQU8vQyxNQUN6QjtTQUNKLE9BQU9BO1FBSkQ7UUFPRCxTQUFMaW9CLEtBQWlCZixLQUFLTyxJQUFJUztTQUUxQixJQUFJQyxRQUFRVixjQUVSVyxNQUFNbEIsSUFBSU87U0FDZCxHQUFJVyxLQUFLRixLQUNMenhCO1NBRUo7VUFBSXVULFVBQVVvZTtVQUVWQyxRQUFRcmU7VUFBSXNlO1VBQVUvYztVQUFTL2M7VUFBUSs1QixLQUFLdmU7VUFFNUN2VixVQUFVNHhCLFVBQVVyYztVQUNwQndlLFdBQVd6UyxJQUFJdGhCO1VBRWZnMEIsYUFBYWxDLElBQUk5eEI7VUFDakJpMEIsYUFBYW5DLElBQUk5eEIsVUFBVXVWO1VBQzNCMmUsYUFBYTNlO1VBQ2I0ZSxXQUFXdEMsR0FBRzd4QixLQUFLazBCLEtBQUszZTtVQUN4QjVSLFlBQVlrdUIsR0FBRzd4QixLQUFLazBCLE1BQU0zZTtTQUM5QixNQUFPc2UsYUFBYUQsVUFBVztVQUMzQjtXQUFJcm9CLE9BQU9nb0IsSUFBSUs7V0FDWFEsTUFBTVY7V0FFTlcsWUFBYTlvQjtXQUNiK0M7Y0FBUW1rQixJQUFJMkIsT0FBUTNCLElBQUkyQixnQkFBa0IzQixJQUFJMkIsb0JBQXFCVjtlQUFhVztXQUVoRkMsZUFBZS9vQjtXQUVmZ3BCLE1BQU1GLE1BQU1UO1dBRVpZLE9BQU9sbUIsTUFBTWdtQjtVQUNqQixHQUFJRSxPQUFPRDtXQUNQYixRQUFRbm9CLE1BQU0rQyxNQUFNa21CO2NBQ25CLENBQ0RkLFFBQVFub0IsVUFDUixHQUFJK0MsTUFBTWdtQixRQUNOaG1CLE9BQU9pbUI7VUFFZlIsT0FBT0YsU0FBU3ZsQjtVQUNoQixHQUFJQSxXQUFXLENBQ1hzbEIsU0FBU3RsQixLQUNUNmxCLE9BQU9MLE1BQU1ELFdBR2JELFNBQVN0bEI7VUFDYixLQUFLQTtXQUFLLEVBQ0g7WUFFUyxJQUFKbW1CLE1BQU1mO1lBQ1Y1YyxNQUFPMmIsSUFBSWdDLE9BQVFoQyxJQUFJZ0MsbUJBQW9CZjtZQUMzQ0E7WUFDQUcsT0FBTy9jOzs7YUFDRkE7O1NBR2pCLEdBQUkrYyxhQUFhRCxPQUNiNXhCO1NBQ0osSUFBSTB5QixZQUVBQyxTQUFTcGYsWUFBWUEsY0FFckJxZixRQUFRcmY7U0FDWixJQUFXLElBQUZ6ZCxPQUFPQSxLQUFLKzdCLE9BQU8vN0IsRUFBRztVQUNwQixJQUFIKzhCLEtBQUtkLEtBQUtqOEI7VUFDZCxHQUFJKzhCLE9BQVEsQ0FDUmIsT0FBT2w4QixPQUFNKzhCLElBQ2I7VUFHSixJQUFLOTZCLE9BQU9BLElBQUk4NkIsTUFBTTk2QixFQUFHO1dBQ3JCbzZCLEtBQUtPLFVBQVU1OEI7V0FDZixHQUNJNDhCLFNBQVVBLFNBQVNDLFFBQVNDLFlBQ3ZCRixVQUFVWjs7O1NBSTNCLEdBQUlZLFFBQ0ExeUI7U0FDSixJQUFLakksT0FBT0EsSUFBSXdiLE1BQU14YixFQUFHO1VBRXJCLElBQUkrNkIsS0FBS2QsT0FBT0csS0FBS3A2QixPQUVqQmc3QixLQUFLcHhCLE1BQU01SixLQUFLNDVCLEtBQUtKLElBQUl1QjtVQUM3QmIsT0FBT2w2QixNQUFNKzZCLE1BQU1DLE1BQU14Zjs7U0FFN0IsUUFBU21lLG1CQUNFQyxPQUNBUSxTQUNBeHdCLFVBQ0Fzd0I7UUEzRko7UUErRkgsU0FBSmUsSUFBZ0J2QyxLQUFLTztTQUVyQjtVQUFJajVCO1VBQU9rN0I7VUFFUGoxQixVQUFVNnhCO1VBQVNxRCxLQUFLekMsSUFBSU87VUFFNUJtQyxLQUFLbjFCO1VBRUxvMUIsS0FBS3AxQjtVQUVMcTFCLFNBQVN2RCxJQUFJOXhCO1NBRWpCLEdBQUlrMUIsU0FBVTtVQUVWLElBQUlJLEtBQUs5QixLQUFLZixLQUFLTyxZQUFZdUMsTUFBTUQsT0FBT0UsTUFBTUY7VUFDbER0QyxNQUFNa0M7VUFDTixJQUFJTyxPQUFPRixVQUVQRyxLQUFLakQsSUFBSU87VUFDYixLQUFLMEMsSUFDRDF6QjtVQUVKO1dBQUkyekI7V0FBU0M7V0FBU0MsT0FBT0w7V0FBT00sT0FBT0Q7V0FHdkNFLFVBQVUvQyxlQUFlTyxJQUFJbUM7VUFDakMsT0FBUztXQUNMSyxRQUFRRjtXQUNSLEdBQUlFLE9BQU9OLE1BQ1A7V0FDSSxJQUFKckIsTUFBTTJCO1dBQ1ZKO2FBQVNsRCxJQUFJMkIsT0FBUTNCLElBQUkyQixtQkFBb0IyQixrQkFBb0JGO1dBQ2pFVixLQUFLRixNQUFNTyxNQUFNRztXQUNqQkksUUFBUUQ7V0FDUixHQUFJQyxPQUFPTixNQUNQO1dBQ0pyQixNQUFNMkI7V0FDTkg7YUFBU25ELElBQUkyQixPQUFRM0IsSUFBSTJCLG1CQUFvQjJCLGtCQUFvQkQ7V0FDakVYLEtBQUtGLE1BQU1PLE1BQU1JO1dBQ2pCQyxPQUFPTCxNQUFNRztXQUNiQSxNQUFNSCxNQUFNRztXQUNaRyxPQUFPTixNQUFNSTtXQUNiQSxNQUFNSixNQUFNSTs7VUFFaEIsS0FBTVgsVUFDRmp6Qjs7YUFFSDtVQUNEaXpCLEtBQUtDO1VBQ0wsTUFBT243QixJQUFJazdCLElBQUlsN0IsT0FBUTtXQUNWLElBQUxpOEIsT0FBT3ZELE1BQU1PO1dBQ2pCbUMsR0FBR3A3QixLQUFLaThCO1dBQ1JiLEdBQUdwN0IsU0FBU2k4Qjs7VUFFaEIsRUFBRWhEOztTQUdFLElBQUppRDtTQUNKLElBQUtsOEIsT0FBT0EsSUFBSWs3QixNQUFNbDdCLEVBQUc7VUFDZCxJQUFIbThCLEtBQUtmLEdBQUdwN0I7VUFFWixHQUFJbThCLFNBQ0FsMEI7VUFDSmkwQixPQUFPQyxXQUFhQTs7U0FHeEIsSUFBSUMsS0FBSzVDLElBQUkwQyxVQUVURyxVQUFVRCxJQUVWcmMsTUFBTXNjLEtBQUtIO1NBRWYsR0FBSW5jLE1BQU9BLFNBQ1A5WDtTQUNKbXpCLEdBQUdGLFFBQVExQixJQUFJelo7U0FDZixJQUFLL2YsT0FBT0EsSUFBSWs3QixNQUFNbDdCLEVBQUc7VUFDZCxJQUFIbThCLEtBQUtmLEdBQUdwN0I7VUFDWixFQUFFcTdCLEdBQUdELEdBQUdwN0IsS0FBS204QixNQUFPQyxTQUFTRDs7U0FHakM7VUFBSUcsV0FBV3hFLEdBQUd1RTtVQUVkakMsT0FBT2tDLGlCQUFpQkQ7VUFBS3JCLEtBQUtzQixjQUFjRDtTQUNwRGYsR0FBR2M7U0FDSCxJQUFLcDhCLElBQUlvOEIsSUFBSXA4QixTQUFTQSxFQUFHO1VBQ2QsSUFBSHU4QixLQUFLakIsR0FBR3Q3QjtVQUNabTRCLEtBQUs2QyxJQUFJaDdCLEdBQUd1OEIsSUFBSWpCLEdBQUd0N0IsU0FBU3U4QixLQUFLbEIsR0FBR3I3QixXQUFZbzhCLEtBQUtwOEI7O1NBRXpELEdBQUlzN0IsU0FBU2UsSUFDVHAwQjtTQUNKLElBQUtqSSxPQUFPQSxJQUFJazdCLE1BQU1sN0IsRUFBRztVQUNaLElBQUx3UixPQUFPNHBCLEdBQUdwN0I7VUFDZCxHQUFJd1IsS0FBTTtXQUNHLElBQUw1TixPQUFPMDNCLEdBQUc5cEI7V0FDZDJtQixLQUFLaUMsTUFBTXA2QixHQUFHNEQsTUFBTTAzQixHQUFHOXBCLFFBQVE1TixhQUFjdzRCLEtBQUs1cUI7OztTQUcxRCxRQUFReW5CLFFBQ0crQixPQUNBb0IsT0FDQWhDO1FBcEdMO1FBMEdWO1NBQUlvQztXQUFxQi9DOztlQUF1QjNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQUk1QzJFO1dBQXFCaEQ7O2VBQXVCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FJNUM0RTtXQUFzQmpEO2tCQUF1QjNCOzs7O1FBSXhDLFNBQUw2RSxLQUFpQi82QixHQUFHN0Q7U0FDcEIsSUFBSThDLE1BQU1lLFVBQVVnN0IsU0FBUzNFLElBQUlwM0I7U0FDakMsSUFBVyxJQUFGYixPQUFPQSxJQUFJYSxPQUFPYixFQUFHLENBQzFCNDhCLEdBQUc1OEIsS0FBS2pDLEdBQ1JBLFVBQVU2RCxFQUFFNUI7U0FFaEIsT0FBTzQ4QjtRQU5BO1FBU1g7U0FBSUM7O1lBQXlCL0U7O2NBQXVCRzs7Ozs7Ozs7Ozs7O1NBSWhENkUsT0FBc0JILEtBQUtFO1NBRTNCRTs7WUFBeUJqRjs7Y0FBdUJHOzs7Ozs7Ozs7Ozs7Ozs7OztTQUloRCtFLE9BQXNCTCxLQUFLSTtRQUV2QixTQUFKRSxJQUFnQnZFLEtBQUs5akIsS0FBS3NvQjtTQUMxQjtVQUFJcjhCLE1BQU02M0I7VUFBWUcsS0FBS2prQjtVQUFZK21CLEtBQUtqRCxJQUFJNzNCO1VBQVV5NUIsWUFBWTRDO1VBQVdDLE9BQU1EO1NBQ3ZGLEtBQUt2QixJQUNEMXpCO1NBQ0o7VUFBSW90QjtVQUFRK0gsTUFBTUY7VUFBTWgzQixPQUFPckYsZ0JBQWdCMjRCLElBQUltQyxNQUFNeUI7VUFBS3A5QjtTQUM5RCxNQUFPa0csTUFBTWkzQixNQUFNbjlCLElBQUk2NEIsSUFBSztVQUN4QjtXQUFJd0IsTUFBTW4wQjtXQUNOcU87Y0FBT21rQixJQUFJMkIsT0FBUTNCLElBQUkyQixnQkFBa0IzQixJQUFJMkIsb0JBQXFCbjBCO1VBQ3RFbXZCLE1BQU9BLE1BQU0rSCxNQUFPN29CLE9BQU8rbEI7VUFDM0IxbEIsTUFBTTVVLEtBQUtrOUIsS0FBSzdIO1VBQ2hCbnZCLE9BQVFrM0IsTUFBTUYsS0FBSzdIOztTQUV2QixHQUFJbnZCLE9BQU9pM0IsTUFBTW45QixTQUFTNjRCLElBQ3RCNXdCO1FBYkU7UUFpQkQsU0FBTG8xQixLQUFpQjNFLEtBQUs5akIsS0FBS3NvQjtTQUMzQjtVQUFJakU7VUFDQUosS0FBS2prQjtVQUFZMG9CLE1BQU96RTtVQUFjMEUsTUFBTUQ7VUFBVUUsTUFBTUYsTUFBTUM7U0FDdEVOO1dBQUl2RSxhQUFhTyxJQUFJQSxNQUFNUCxTQUFVQTtXQUFlOWpCLGdCQUFnQjBvQjtXQUFNSjtTQUMxRUQ7V0FBSXZFLGFBQWFPLElBQUlBLE1BQU1QLFNBQVVBO1dBQWU5akIsYUFBYTBvQixLQUFLQztXQUFNTDtTQUM1RUQ7V0FBSXZFLGFBQWFPLElBQUlBLE1BQU1QLFNBQVVBO1dBQWU5akIsYUFBYTJvQixLQUFLQztXQUFNTjtTQUM1RUQsSUFBSXZFLGFBQWFPLEtBQUtya0IsYUFBYTRvQixNQUFNTjtRQU5sQztRQVNILFNBQUpPLElBQWdCL0UsS0FBS3JELElBQUl6Z0I7U0FDekIsSUFBSTJtQixJQUNBdEMsS0FBSzVELE1BRUxxSSxLQUFLaEYsSUFBSU8sS0FBSzBFLFFBQVNEO1NBQzNCckksT0FBT3FJO1NBQ1A7VUFBSWxpQixLQUFNa2lCLFVBQVloRixJQUFJTyxlQUFpQlAsSUFBSU87VUFFM0N1QyxPQUFPdkMsV0FBV3pkO1NBQ3RCLEdBQUltaUIsV0FBWTtVQUNaLEdBQUkxRSxNQUFNUCxZQUNOO1VBQ0pyRCxPQUFPNEQ7VUFDUCxHQUFJcmtCLElBQUssQ0FDTHVqQixLQUFLdmpCLEtBQUs4akIsSUFBSU8sS0FBSzVELE1BQU1BLFFBQVE3WixLQUNqQyxPQUFPNUc7VUFFWCxPQUFPdWpCLFNBQVNMLEdBQUd0YyxLQUFLa2QsSUFBSU87O1NBRWhDLEdBQUl1QyxNQUFNOUMsWUFDTjtTQUNKLEdBQUlpRixXQUFZO1VBQ1p0SSxPQUFPbUc7VUFDUCxHQUFJNW1CLElBQUs7V0FDTEEsUUFBUThqQixhQUFhTyxJQUFJdUMsTUFBTW5HO1dBQy9CQSxRQUFRN1o7V0FDUixPQUFPNUc7O1VBRVgsT0FBT3NqQixJQUFJUSxLQUFLTyxJQUFJdUM7O1NBRXhCLEdBQUltQyxXQUFZO1VBRVo7V0FBSS9tQixLQUFLOGhCLElBQUlPO1dBQUsyRSxNQUFNaG5CO1dBQVFra0IsS0FBTWxrQjtXQUVsQ2luQixNQUFNam5CO1dBQVNrbkI7V0FBU0M7VUFDNUIsR0FBSUg7V0FBUyxHQUNMOUM7WUFDQStDLE9BQVFuRixNQUFNTyxZQUFjNkIsVUFBWXBDLE1BQU1POztZQUU5QzRFLE1BQU1qbkI7Y0FFVDtXQUNEbW5CLEtBQUtqRDtXQUNMLEdBQUlBO1lBQ0ErQyxRQUFTbkYsTUFBTU8sZ0JBQWlCNkUsTUFBT3BGLElBQUlPLFdBQWFQLE1BQU1PO21CQUN6RDZCO1lBQ0wrQyxPQUFRbkYsTUFBTU8sWUFBY1AsTUFBTU87WUFBaUI2RSxNQUFPcEYsSUFBSU8sV0FBYVAsTUFBTU87O1lBRWpGNEUsT0FBUW5GLE1BQU1PLFlBQWNQLE1BQU1PO1lBQWtCNkUsTUFBT3BGLElBQUlPLFdBQWFQLE1BQU1PLFdBQWFQLE1BQU1POztVQUU3RyxFQUFFQTtVQUVGO1dBQUloekIsTUFBTTJPLE1BQU1BLGFBQWF5Z0IsTUFBTUEsT0FBT0EsWUFBWXlDLEdBQUd6QztXQUVyRDJJLE1BQU0vM0IsYUFBYTQzQjtVQUN2QixHQUFJRDtXQUNBMzNCLFFBQVF5eUIsYUFBYU8sSUFBSUEsTUFBTTRFLE1BQU1HO2tCQUNoQ0o7V0FDTHpGLEtBQUtseUIsS0FBS3l5QixJQUFJTyxPQUFPK0U7Y0FDcEI7V0FFTSxJQUFIZCxLQUFLN0g7V0FDVCxHQUFJdUksU0FBVTtZQUNGLElBQUpLLE1BQU1oRCxJQUFJdkMsS0FBS087WUFFbkI2RSxPQUFPN0UsTUFBTUEsS0FBS2dGO1lBQ2xCNUksT0FBTzZILEtBQUtlOztxQkFFTmYsSUFDTmoxQjtXQUNKLENBQUM4MUIsS0FBS1YsT0FBT0o7YUFBS3ZFLGFBQWFPLElBQUlBLE1BQU02RSxNQUFNNzNCLGFBQWErM0IsTUFBTWQ7O1VBRy9ELElBQUhuQyxLQUFLckMsSUFBSU87VUFDYixHQUFJOEIsR0FBSTtXQUNKLEdBQUlBO1lBQ0FBLE1BQU1yQyxJQUFJTyxRQUFTUCxJQUFJTzttQkFDbEI4QixVQUNMQSxLQUFPQSxnQkFBa0JyQyxJQUFJTztXQUV6QixJQUFKaUYsTUFBTXhGLElBQUlPO1dBQ2QsR0FBSWlGLFNBQ0FqMkI7V0FDSSxJQUFKazJCLE9BQU8xQixNQUFNQyxNQUFNRjtXQUN2QixJQUFXLElBQUZ4OEIsT0FBT0EsV0FBVUEsRUFBRztZQUNsQixJQUFIbytCLEtBQU1GLFFBQVNsK0I7WUFDbkIsR0FBSW8rQixRQUFTO2FBRUEsSUFBTEMsV0FBV3ZHLFVBQVVZLElBQUlPO2FBQzdCa0YsSUFBSW4rQjtrQkFDR3ErQjtrQkFDQUE7c0JBQ0l0RyxJQUFJc0c7OztvQkFJVkQ7YUFFTDdDLEtBQUs5QixLQUFLZixLQUFLTyxTQUFTajVCLFNBQVNpNUIsS0FBS3NDLE9BQU80QyxJQUFJbitCLEtBQUt1N0I7b0JBRWpENkMsUUFBUyxDQUNkLEtBQUsvSSxNQUNEcHRCLFFBQ0prMkIsSUFBSW4rQixLQUFLcTFCLEtBQUtyMUI7O1dBR3RCO1lBQUlzK0IsS0FBS2pKLE9BQU84STtZQUFLSSxNQUFNRDtZQUFPRSxNQUFNRjtZQUFPRyxNQUFNSDtZQUNqRDNDLEtBQUtqRCxJQUFJOEM7V0FDYixLQUFLRyxJQUNEMXpCO1dBQ0o7WUFBSXkyQixRQUFRbEQsZ0JBQWdCaEMsSUFBSW1DLE1BQU04QztZQUFPcEUsTUFBTXFFO1lBQVdDO1lBQzFEQztlQUFRbEcsSUFBSTJCLE9BQVEzQixJQUFJMkIsbUJBQW9CcUUsa0JBQW9CRDtXQUNwRXBFLE9BQU9xRSxRQUFRRjtXQUNQO1lBQUpLO2VBQVFuRyxJQUFJMkIsT0FBUTNCLElBQUkyQixtQkFBb0JxRSxrQkFBb0JGO1dBQ3BFbkUsT0FBT3FFLFFBQVFIO1dBQ1A7WUFBSk87ZUFBUXBHLElBQUkyQixPQUFRM0IsSUFBSTJCLG1CQUFvQnFFLGtCQUFvQkg7V0FDcEUsTUFBT3hELE1BQU1BLElBQUs7WUFDZDthQUFJZ0UsTUFBTU4sTUFBTUc7YUFDWkksT0FBT1AsTUFBTUc7YUFDYkssTUFBTVYsTUFBTU87YUFDWkksT0FBT1gsTUFBTU87YUFDYkssTUFBTVgsTUFBTUs7YUFDWk8sT0FBT1osTUFBTUs7WUFDakJ4RSxPQUFPcUUsUUFBUVM7WUFDZjthQUFJRSxXQUFXRjthQUNYRztlQUFNRDs7a0JBQVMzRyxJQUFJMkIsT0FBUTNCLElBQUkyQixnQkFBa0IzQixJQUFJMkI7a0JBQW1CM0IsSUFBSTJCO3FCQUFzQnFFO2tCQUFjVztZQUNwSGhGLE9BQU9xRSxRQUFRM0IsSUFBSWtDO1lBQ1o7YUFBSE07ZUFBS3ZDLEtBQUtpQzs7a0JBQVV2RyxJQUFJMkIsT0FBUTNCLElBQUkyQixnQkFBa0IzQixJQUFJMkI7b0JBQXFCcUU7d0JBQW9CM0IsSUFBSWtDO1lBQzNHNUUsT0FBT3FFLFFBQVE3QixJQUFJa0M7WUFDWjthQUFIUztlQUFLMUMsS0FBS2lDOztrQkFBVXJHLElBQUkyQixPQUFRM0IsSUFBSTJCLGdCQUFrQjNCLElBQUkyQjtvQkFBcUJxRTt3QkFBb0I3QixJQUFJa0M7WUFDM0cxRSxPQUFPcUUsUUFBUU07WUFDZko7YUFBTUgsTUFBTUc7O2dCQUFVbEcsSUFBSTJCLE9BQVEzQixJQUFJMkIsbUJBQW9CcUUsa0JBQW9CTTtZQUM5RTNFLE9BQU9xRSxRQUFRUTtZQUNmSjthQUFNUCxNQUFNTzs7Z0JBQVVwRyxJQUFJMkIsT0FBUTNCLElBQUkyQixtQkFBb0JxRSxrQkFBb0JRO1lBQzlFN0UsT0FBT3FFLFFBQVFVO1lBQ2ZQO2FBQU1MLE1BQU1LOztnQkFBVW5HLElBQUkyQixPQUFRM0IsSUFBSTJCLG1CQUFvQnFFLGtCQUFvQlU7WUFDOUUsR0FBSUUsUUFBUzthQUNUakssVUFBVUE7YUFDVkEsVUFBVUE7YUFDVkEsVUFBVWlLOztnQkFFVDthQUNPLElBQUpHLE1BQU1ILE9BQU9FO2FBQ2pCLEdBQUlDLElBQUs7Y0FDTEgsTUFBTUcsV0FBV3BLLGNBQWNBLEtBQUtvSztjQUNwQyxHQUFJQSxTQUNBcEssVUFBVUE7Y0FDZEEsVUFBVUE7Y0FDVkEsVUFBVWlLOzs7Y0FHVkEsTUFBTWpLOztZQUVkLElBQVcsSUFBRnIxQixPQUFPQSxJQUFJdy9CLE1BQU14L0IsR0FDdEJpRyxJQUFJMDRCLE9BQU8zK0IsS0FBS2lHLElBQUkrM0IsTUFBTWgrQjtZQUU5QjIrQixRQUFRYSxJQUFJeEIsT0FBT3dCO1lBQ1YsSUFBTEUsT0FBT2YsT0FBT1c7WUFDbEIsR0FBSUksU0FBVTthQUNWLElBQUk3K0IsUUFBTzYrQixNQUNQalosS0FBSzRPLE9BQU9xSzthQUNoQixHQUFJNytCLE1BQU0wK0IsSUFDTjErQixNQUFNMCtCO2FBQ1YsSUFBVyxJQUFGdi9CLE9BQU9BLElBQUlhLE9BQU9iLEdBQ3ZCaUcsSUFBSTA0QixPQUFPMytCLEtBQUtxMUIsS0FBSzVPLEtBQUt6bUI7YUFFOUIyK0IsUUFBUTk5QixLQUFLMCtCLE1BQU0xK0IsS0FBSzYrQjs7WUFFNUIsSUFBVyxJQUFGMS9CLE9BQU9BLElBQUl1L0IsTUFBTXYvQixHQUN0QmlHLElBQUkwNEIsT0FBTzMrQixLQUFLaUcsSUFBSXk1QixPQUFPMS9CO1lBRS9CMitCLFFBQVFZOztXQUVaLEdBQUlaLFFBQVFYO1lBQUssTUFDTkEsTUFBTS8zQixZQUNUQSxJQUFJMDRCLFVBQVUxNEIsSUFBSSszQjs7WUFJdEJXLE9BQU8xNEI7V0FDWCxHQUFJMk8sS0FDQXlnQixRQUFRc0osV0FFUjE0QixNQUFNaXlCLElBQUlqeUIsUUFBUTA0Qjs7a0JBR2xCL3BCLElBQUs7V0FDTHlnQixRQUFRd0k7V0FDUixHQUFJRyxLQUFLLElBQ00sSUFBRmgrQixPQUFPQSxJQUFJNjlCLE9BQU83OUIsR0FDdkJpRyxJQUFJakcsS0FBS2lHLElBQUkrM0IsTUFBTWgrQjs7a0JBSXRCZytCLEtBQ0wvM0IsTUFBTWl5QixJQUFJanlCLEtBQUsrM0I7VUFFdkIzSSxPQUFPbUc7VUFDUCxPQUFPdjFCOztTQUVYZ0M7UUF4TU07UUEyTUYsU0FBSjAzQixJQUFnQkMsTUFBTUM7U0FDdEIsR0FBSUQsa0JBQ0EsT0FBT0E7U0FDSCxJQUFKMzVCLFVBQVU2eEIsR0FBRytIO1NBQ2pCLFFBQVM3L0IsT0FBTzRCLE9BQU81QixJQUFJNC9CLGVBQWU1L0IsRUFBRztVQUNqQyxJQUFKOC9CLE1BQU1GLEtBQUs1L0I7VUFDZmlHLFFBQVE2NUIsS0FBS2wrQjtVQUNiQSxLQUFLaytCOztTQUVULE9BQU83NUI7UUFURDtRQW9CVixnQkFBMkJ5eUIsS0FBS3p5QjtTQUM1QixJQUFJZ3pCLFFBQVEyRyxXQUFXNUUsU0FBTy8wQixLQUFLNDVCO1NBQ25DLE1BQU9uSCxZQUFhO1VBQ1QsSUFBSHJELEtBQUtvRCxLQUFLQyxLQUFLc0MsTUFBTS8wQjtVQUN6QixVQUFXb3ZCLGVBQWdCO1dBQ3ZCLEdBQUkyRixHQUFJO1lBQ0ovMEIsTUFBTWpDO1lBQ04sR0FBSXF4QixlQUFlQSxLQUFNLENBQ3JCdUssVUFBVTM1QixNQUFNb3ZCLE9BQ2hCd0ssTUFBTXhLOztlQUdULENBQ0R1SyxVQUFVMzVCLE1BQ1ZvdkI7V0FFSixRQUFRQSxNQUFPO1lBQ0gsSUFBSjBLLE1BQU10QyxJQUFJL0UsS0FBS3JELElBQUlwdkI7WUFDdkIsS0FBSzg1QixLQUNEOTNCO1lBQ0osR0FBSWhDO2FBQ0FvdkIsT0FBT0E7Z0JBQ047YUFDRHVLLFVBQVVHO2FBQ1ZGLE1BQU1FO2FBQ04zSCxJQUFJL0MsU0FBUzBLO2FBQ2IxSyxTQUFTMEssS0FBSzFLLGNBQWMwSzs7O1dBR3BDOUcsS0FBSzVELE9BQVFBOzs7V0FHYjRELEtBQUs1RDtVQUNUcUQsTUFBTUEsYUFBYU87O1NBRXZCLE9BQU8wRyxJQUFJQyxNQUFNQyxJQW5DZDtPQTlsQmdCOztHckJzTHZCLFNBQVNHLG9CQUFxQno3QjtJQUM1QixPQUFPNlgseUJBQTBCL0Ysb0JBQXFCOVI7R0FDeEQ7R0EyRkEsU0FBUzA3Qiw2QkFBNkIxaUIsUUFBUTlHO0lBQzVDLFNBQVM2Z0IsUUFBUUM7S0FDZixJQUFJeDJCLElBQUl3YyxpQkFDSnpmLElBQUlpRDtLQUNSLE9BQVFBLGVBQWdCO01BQ3RCQSxJQUFJd2M7TUFDRyxJQUFIaWEsS0FBSzE1QjtNQUNULEdBQUlBLEtBQUswNUIsU0FBU0Q7TUFDbEJ6NUIsSUFBSTA1QixLQUFNejJCOztLQUVaLE9BQU9qRDtJQUNUO0lBQ1UsSUFBTm9pQyxRQUFRM2lCO0lBQ1osT0FBTzJpQjs7T0FFTDtRQUFJekk7UUFDQTBJO1FBQ0F6SSxXQUFXbmE7UUFDWDZpQix3QkFBd0IxSTtRQUN4QjJJLGNBQWM5aUI7UUFDZCtpQixXQUFXL2lCO1FBQ1hnakIsV0FBV2hqQjtPQUNmOztPQUVBO1FBQUlrYSxhQUFhbGE7UUFDYjRpQjtRQUNBNUk7UUFDQUcsV0FBV0osUUFBUUM7UUFDbkI2SSx3QkFBd0I5SSxRQUFRQztRQUNoQzhJLGNBQWMvSSxRQUFRQztRQUN0QitJLFdBQVdoSixRQUFTQztRQUNwQmdKLFdBQVdqSixRQUFTQztPQUN4QixHQUFHQTtRQUNDeHVCOztPQUVKOztPQUVBQTs7T0FDQTs7T0FFQUEsMkRBQ0E7O0lBRUY7S0FBSXNXO0tBQ0F5VyxtQkFBb0J1Syx1QkFBb0JyOEI7S0FDeEN3OEI7SUFDSixTQUFTQyxXQUFZbGpCO0tBQ1YsSUFBTDNaLE9BQU8yWjtLQUNYLEdBQUkzWjtNQUF1QyxHQUNyQ0EsYUFBeUM7T0FDM0MsSUFBSXZGLE1BQU11RixZQUNOaVksT0FBUWpZLGlCQUNSN0IsS0FBSzFEO09BQ1QsR0FBSXdkLFdBQVcsT0FBTzlaO09BQ3RCLEdBQUkrekIsa0JBQWtCQSxpQkFBaUIwSyxpQkFBaUJ6K0I7T0FDeERzZCxXQUFXdGQsR0FBRzhaO09BQ2QsT0FBTzlaOzs7T0FFUCxPQUFRNkI7YUFFTkEsYUFBMEM7TUFDNUMsSUFBSS9DLE1BQU0rQyxhQUNON0IsSUFBSXdiLGVBQWdCMWM7TUFDeEIsR0FBSWkxQixrQkFBa0JBLGlCQUFpQjBLLGlCQUFpQnorQjtNQUN4RCxPQUFPQTs7O01BQ0YsT0FDRTZCOztTQUVMLE9BQU8yWjs7U0FFUCxPQUFPQTs7U0FFUCxPQUFPQTs7U0FFUHhVLGlEQUNBOztTQUVXLElBQVAvSixTQUFTdWU7U0FDYixHQUFHNGlCLGlCQUFpQm5oQyxTQUFTd2hDLGNBQWN4aEM7U0FDM0MsT0FBTzgyQixpQkFBaUI5MkI7O1NBRWIsSUFBUEEsU0FBU3VlO1NBQ2IsR0FBRzRpQixpQkFBaUJuaEMsU0FBU3doQyxjQUFjeGhDO1NBQzNDLE9BQU84MkIsaUJBQWlCOTJCOztTQUViLElBQVBBLFNBQVN1ZTtTQUNiLEdBQUc0aUIsaUJBQWlCbmhDLFNBQVN3aEMsY0FBY3hoQztTQUMzQyxPQUFPODJCLGlCQUFpQjkyQjs7U0FFeEI7VUFBSTBoQyxTQUFTbmpCO1VBQ1RsZixNQUFNcWlDO1VBQ043a0IsT0FBTzZrQjtVQUNQMytCLEtBQUsxRDtTQUNULEdBQUl3ZCxXQUFXLE9BQU85WjtTQUN0QixHQUFJK3pCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hEc2QsV0FBV3RkLEdBQUc4WjtTQUNkLE9BQU85Wjs7U0FFUGdILG9EQUNBOztTQUVBLElBQUlsSSxNQUFNMGMsaUJBQ054YixJQUFJd2IsZUFBZ0IxYztTQUN4QixHQUFJaTFCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELE9BQU9BOztTQUVQLElBQUlsQixNQUFNMGMsa0JBQ054YixJQUFJd2IsZUFBZ0IxYztTQUN4QixHQUFJaTFCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELE9BQU9BOztTQUVELElBQUZOLFFBQVE2RjtTQUNaLElBQVcsSUFBRnRILE9BQU1BLE9BQU1BLEtBQUt5QixNQUFNekIsS0FBS3VkO1NBQy9CLElBQUZ4YixJQUFJaStCLG9CQUFxQnYrQjtTQUM3QixHQUFJcTBCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELE9BQU9BOztTQUVELElBQUZOLFFBQVE2RjtTQUNaLElBQVcsSUFBRnRILE9BQU1BLE9BQU1BLEtBQUt5QixFQUFFekIsS0FBS3VkO1NBQzNCLElBQUZ4YixJQUFJaStCLG9CQUFxQnYrQjtTQUM3QixHQUFJcTBCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELE9BQU9BOztTQUVQLElBQUlsQixNQUFNMGMsaUJBQ054YixRQUFRdUYsTUFBTXpHO1NBQ2xCa0I7U0FDTSxJQUFGTixRQUFRNkY7U0FDWixHQUFJd3VCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELElBQVcsSUFBRi9CLE9BQU1BLEtBQUthLEtBQUliLElBQUs7VUFDM0IsSUFBVyxJQUFGZ0MsT0FBTUEsT0FBTUEsS0FBS1AsTUFBTU8sS0FBS3ViO1VBQ3JDeGIsRUFBRS9CLEtBQUtnZ0Msb0JBQXFCditCOztTQUU5QixPQUFPTTs7U0FFUCxJQUFJbEIsTUFBTTBjLGlCQUNOeGIsUUFBUXVGLE1BQU16RztTQUNsQmtCO1NBQ00sSUFBRk4sUUFBUTZGO1NBQ1osR0FBSXd1QixrQkFBa0JBLGlCQUFpQjBLLGlCQUFpQnorQjtTQUN4RCxJQUFXLElBQUYvQixPQUFNQSxLQUFLYSxLQUFJYixJQUFLO1VBQzNCLElBQVcsSUFBRmdDLE9BQU1BLE9BQU1BLEtBQUtQLEVBQUVPLEtBQUt1YjtVQUNqQ3hiLEVBQUcvQixLQUFLZ2dDLG9CQUFxQnYrQjs7U0FFL0IsT0FBT007O1NBRVAsSUFBSWxCLE1BQU0wYyxrQkFDTnhiLFFBQVF1RixNQUFNekc7U0FDbEJrQjtTQUNBLEdBQUkrekIsa0JBQWtCQSxpQkFBaUIwSyxpQkFBaUJ6K0I7U0FDbEQsSUFBRk4sUUFBUTZGO1NBQ1osSUFBVyxJQUFGdEgsT0FBTUEsS0FBS2EsS0FBSWIsSUFBSztVQUMzQixJQUFXLElBQUZnQyxPQUFNQSxPQUFNQSxLQUFLUCxNQUFNTyxLQUFLdWI7VUFDckN4YixFQUFFL0IsS0FBS2dnQyxvQkFBcUJ2K0I7O1NBRTlCLE9BQU9NOztTQUVQLElBQUlsQixNQUFNMGMsa0JBQ054YixRQUFRdUYsTUFBTXpHO1NBQ2xCa0I7U0FDTSxJQUFGTixRQUFRNkY7U0FDWixJQUFXLElBQUZ0SCxPQUFNQSxLQUFLYSxLQUFJYixJQUFLO1VBQzNCLElBQVcsSUFBRmdDLE9BQU1BLE9BQU1BLEtBQUtQLEVBQUVPLEtBQUt1YjtVQUNqQ3hiLEVBQUcvQixLQUFLZ2dDLG9CQUFxQnYrQjs7U0FFL0IsT0FBT007OztTQUdQZ0gsNENBQ0E7Ozs7U0FJQSxJQUFJaEksR0FBR2hEO1NBQ1AsT0FBUWdELElBQUl3Yyx1QkFBd0J4ZixLQUFLa0Usb0JBQXFCbEI7U0FDOUQsSUFBSW0xQixNQUFNeFgsZ0JBQWdCM2dCLElBQ3RCNGlDO1NBQ0osS0FBSXpLO1VBQ0ZudEI7U0FDRixPQUFPbkY7c0JBRUw7O1lBRUEsS0FBSXN5QjthQUNGbnRCO1lBQ0Y0M0IsZ0JBQWdCeks7WUFDaEI7O1lBRUF5SyxnQkFBZ0JwakI7WUFFaEJBO1lBQWtCQTtZQUNsQjs7U0FFRjtVQUFJOFksVUFBVTlZO1VBQ1YxQjtVQUNBOVosSUFBSW0wQixnQkFBZ0IzWSxRQUFRMUI7U0FDaEMsR0FBRzhrQixpQkFBaUI3Z0M7VUFBVSxHQUN6QjZnQyxpQkFBaUI5a0I7V0FDbEI5Uzs7U0FFSixHQUFJK3NCLGtCQUFrQkEsaUJBQWlCMEssaUJBQWlCeitCO1NBQ3hELE9BQU9BO2lCQUVQZ0g7O0lBSVI7SUFDQSxHQUFHbzNCO0tBQ0Q7TUFBSTc1QixPQUFPaVgsc0JBQXNCbWE7TUFDN0Ivd0IsVUFBVTNCLFdBQVdvN0I7TUFDckJ6NUIsTUFBTWl4QixnQkFBZ0J0eEIsTUFBTUs7TUFDNUI0VyxhQUFhNlosaUJBQWlCendCO0lBRTVCLElBQUpBLE1BQU04NUIsV0FBWWxqQjtJQUN0QixNQUFPOEIsaUJBQWtCO0tBQ3ZCLElBQUl4RCxPQUFPd0QsYUFDUHRkLElBQUlzZCxhQUNKN2IsSUFBSXpCO0tBQ1IsR0FBSXlCLElBQUlxWSxNQUFNd0QsV0FBV3RkLEdBQUc4WjtLQUM1QjlaLEVBQUV5QixLQUFLaTlCLFdBQVlsakI7O0lBRXJCLFVBQVc5RyxpQkFBZUEsU0FBUzhHO0lBQ25DLE9BQU81VztHQUNUO0doQmtNQSxTQUFTaTZCLHFCQUFxQjdpQztJQUMzQkEsV0FBWXlHLDZCQUE2QnpHO0lBQzFDLE9BQU93Qyx1QkFBdUJ4QztHQUNoQztHZ0JwZkEsU0FBUzhpQyw0QkFBNEI5aUMsR0FBRTBZO0lBQzFCO0tBQVA4Rzs7UUFBYW9hO1NBQWdCaUoscUJBQXFCN2lDLFdBQVcwWSxrQkFBY0EsTUFBSUE7SUFDbkYsT0FBT3dwQiw2QkFBNkIxaUIsUUFBUTlHO0dBQzlDO0dDZ0ZBLFNBQVNxcUIsaUJBQWtCdDFCO0lBQ3pCO0tBQUlOLE9BQU9GLGlCQUFpQlE7S0FDeEJrMUIsYUFBYTE3QixXQUFXK2hCO0lBQzVCLFNBQVNnYSxNQUFNNy9CLFFBQVFsQyxRQUFRbEI7S0FDdkIsSUFBRkU7S0FDSixNQUFNQSxJQUFJRixFQUFFO01BQ1YsR0FBR29OLG9CQUFvQkEsZ0JBQWdCO09BQ3JDQTtPQUNBQTtPQUNBRCxZQUFZQzs7TUFFZCxHQUFJQSxvQkFBb0JBLGlCQUN0QjtNQUNGaEssT0FBT2xDLFNBQU9oQixLQUFLa04sWUFBWUE7TUFDL0JBO01BQ0FsTjs7S0FFRixPQUFPQTtJQUNUO0lBQ00sSUFBRkEsSUFBSStpQyxNQUFNTCxXQUFXM1o7SUFDekIsR0FBRy9vQjtLQUNEb2M7WUFDT3BjLElBQUkrb0I7S0FDWGhlO0lBQ0Y7S0FBSWxJLE1BQU13MkIsdUJBQXdCdHlCLG9CQUFvQjI3QjtLQUNsRHo2QixVQUFVakIsV0FBV25FLE1BQU1rbUI7SUFDL0I5Z0IsUUFBUXk2QjtJQUNGLElBQUYxaUMsSUFBSStpQyxNQUFNOTZCLEtBQUs4Z0IsMEJBQTBCbG1CO0lBQzdDLEdBQUc3QyxJQUFJNkM7S0FDTGtJLGlEQUFpRC9LLFdBQVc2QztJQUM5RDtLQUFJN0I7S0FDQTJILE1BQU1rNkIsNEJBQTRCOTdCLG9CQUFvQmtCLE1BQU1qSDtJQUNoRWtNLGNBQWNBLGNBQWNsTTtJQUM1QixPQUFPMkg7R0FDVDtHQUlBLFNBQVNxNkIsaUNBQWlDamdDLEdBQ3hDLE9BQU8rL0IsaUJBQWlCLy9CLEdBQzFCO0dTMVNBLFNBQVNrZ0MsZ0JBQWdCMVgsS0FBSS9nQixHQUFFMUs7SUFDN0IsR0FBR3lyQixXQUFXL2dCLEVBQUUsQ0FDZCtnQixTQUFTenJCLEdBQ1Q7SUFFRjtHQUNGO0duQmlPQSxTQUFTb2pDLG9CQUFxQnRqQyxHQUFHd0I7SUFDL0IsR0FBSUEsUUFBUUEsUUFBUUE7SUFDcEJ4QixJQUFJTyxTQUFTUDtJQUNiLE9BQVF3QixVQUFTeEIsSUFBR0E7R0FDdEI7R08ySEEsU0FBU3VqQyxzQkFBc0J0bEI7SUFDdkIsSUFBRjlkLElBQUlnTTtJQUNSaE0sY0FBYzhkO0lBQ2Q5ZCxpQkFBaUJBLHNCQUFzQm1FLHdCQUF3Qm5FO0lBQy9EO0dBQ0Y7R1loWEEsU0FBU3FqQyxpQkFBaUI3WCxLQUN4QixPQUFPQSxPQUNUO0dJbUtBLFNBQVM4WCxjQUFjeGM7SUFDVixJQUFQRyxTQUFTSDtJQUNiQSxPQUFPRztJQUNQQTtJQUNBLEdBQUdBLFlBQWE7S0FDZCxJQUFVLElBQUZoakIsSUFBSWdqQixRQUFRaGpCLFFBQVFBLEtBQzFCNmlCLE9BQU83aUI7S0FFVHNpQixrQkFBa0JPLE9BQU9BO0tBQ3pCLElBQVUsSUFBRjdpQixPQUFPQSxRQUFRQSxLQUNyQjZpQixPQUFPN2lCOzs7S0FFSixJQUNLLElBQUZBLElBQUlnakIsUUFBUWhqQixRQUFRQSxLQUMxQjZpQixPQUFPN2lCO0lBR1g2aUIsY0FBY0E7SUFDZEEsY0FBZUE7SUFDZlAsa0JBQWtCTyxPQUFPQTtJQUNuQixJQUFGcGpCLFFBQVF1RDtJQUNaLElBQVcsSUFBRmhGLE9BQU9BLE9BQU9BO0tBQ3JCLElBQVcsSUFBRmdDLE9BQU9BLE9BQU9BLEtBQ3JCUCxFQUFFekIsUUFBUWdDLEtBQU02aUIsTUFBTTdrQixVQUFXZ0M7SUFDckMsT0FBT1A7R0FDVDtHQU1BLFNBQVM2L0IsZUFBZXZqQyxHQUFHMFksS0FBSzVWO0lBQzlCLElBQUlna0IsTUFBTTBHLGdCQUNOaG5CLElBQUllLDBCQUEwQnZIO0lBQ2xDNm1CLGVBQWVDLEtBQUl0Z0IsV0FBV2tTLEtBQUtBLE1BQU01VixNQUFNQTtJQUMvQyxPQUFPMDFCLHFCQUFxQjhLLGNBQWN4YztHQUM1QztHVCtOQSxTQUFTMGMsb0JBQW9CaHJCLElBQUl2VyxHQUFHK0I7SUFDbEN3VSxPQUFPQSxVQUFVMk0sbUJBQW1CbGpCLEtBQUsrQjtJQUN6QztHQUNGO0diaFJBLFNBQVN5L0IsdUJBQXVCLy9CLEdBQUVnZ0MsUUFDOUIsU0FDSjtHUjJmQSxTQUFTQyxzQkFBc0JoOEIsSUFBSUUsSUFDakMsT0FBUUYsTUFBTUUsV0FDaEI7R0F6SEEsU0FBUys3Qix5QkFBeUJqOEIsSUFBSUUsSUFDcEMsT0FBTzg3QixzQkFBc0I5N0IsSUFBR0Y7R0FDbEM7R083WkEsU0FBU2s4QixxQkFBc0Joa0MsR0FBRXdCO0lBQy9CLEdBQUcyTCxNQUFNbk4sTUFBTW1OLE1BQU0zTCxJQUFJLE9BQU9pZDtJQUNoQyxHQUFHemUsS0FBR3dCLEdBQUcsT0FBT0E7SUFDaEIsR0FBR3hCLFFBQUssT0FDSHdCLFVBQ09qQixzQkFFREE7SUFFWCxJQUFJcVQsT0FBTzBKLHlCQUF5QnRkLElBQ2hDaVksTUFBTXZXO0lBQ1YsR0FBSzFCLElBQUV3QixLQUFPeEI7S0FDWjRULE9BQU9xaUIsZUFBZXJpQixNQUFNcUU7O0tBRTVCckUsT0FBT3VkLGVBQWV2ZCxNQUFNcUU7SUFDOUIsT0FBT3VHLHlCQUF5QjVLO0dBQ2xDO0dPTUEsU0FBU3F3QixpQkFDRCxJQUFGOWpDLElBQUlnTSxxQkFDUixPQUFPaE0sU0FDVDtHTXV5QkEsU0FBUytqQyxVQUFVOWhDO0lBQ2pCLEdBQUdBLFFBQU1VO0lBQ1QsT0FBT3N4QixVQUFVaHlCO0dBQ25CO0dIM2xCQSxTQUFTK2hDLFlBQVl2MkI7SUFDVixJQUFMTixPQUFPRixpQkFBaUJRO0lBQzVCLE9BQU9OLGVBQWVBLGtCQUFrQkE7R0FDMUM7R0FJQSxTQUFTODJCLGVBQWV4MkIsUUFDdEIsT0FBT3UyQixZQUFZdjJCLFFBQ3JCO0dsQnhKQSxTQUFTeTJCLGVBQWdCcmtDLEdBQUd3QixHQUFLLE9BQU94QixNQUFNd0IsR0FBSTtHSWNsRCxTQUFTOGlDLDJCQUE4QixVQUFXO0dpQjAwQmxELFNBQVNDLFNBQVNya0MsR0FBR3FkO0lBQ25CLElBQUlyZCxJQUFJOE4sT0FBTzlOLElBQ1hxZCxJQUFJdlAsT0FBT3VQLElBQ1hpbkIsUUFBUXgyQjtJQUNaLElBQVcsSUFBRmhPLElBQUlFLFFBQVFxZCxPQUFPdlAsWUFBWWhPLE1BQU1FLElBQUlGLElBQUlBLE1BQU1nTztLQUFZdzJCLFFBQVFBLGVBQWV4a0M7SUFDL0YsSUFBS0EsSUFBSWdPLFdBQVdoTyxNQUFNdWQsSUFBSXZkLElBQUlBLE1BQU1nTztLQUFZdzJCLFFBQVFBLGFBQWF4a0M7SUFDekUsT0FBTzJYLGVBQWU2c0I7R0FFeEI7R0xyakNBLFNBQVNDLDRCQUNQLFNBQ0Y7R0ptTEEsU0FBU0MsaUJBQWlCci9CO0lBQ2YsSUFBTEosT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEtBQUtKO0tBQ0hrRztJQUVGLE9BQU9sRyxtQkFBbUJBO0dBQzVCO0dGZ0dBLFNBQVMwL0IsdUJBQXVCeDZCLElBQUl0QjtJQUNsQyxHQUFHQTtLQUFZO01BRVgsSUFBSSs3QixLQUFLeDZCLGVBQ0x5NkIsTUFBTUQsWUFBWS83QjtNQUN0QixXQUFXcUIsU0FBUzI2QixLQUFLaDhCOztXQUNuQjBNO0lBRVYsV0FBV3JMLFNBQVNDLElBQUl0QjtHQUMxQjtHR1ZBLFNBQVNpOEIsYUFBYTM2QixJQUFHdEI7SUFDdkJWLGdCQUFnQm5ILE1BQU0yRztJQUN0QjNHLG9CQUFzQmIsR0FBSyxTQUFmO0lBQ1osR0FBR2dLLGtCQUFrQjh0QjtLQUNuQmozQixXQUFXaTNCO1lBQ0w5dEIsa0JBQWtCOHRCO0tBQ3hCajNCLFdBQVdpM0I7bUJBQ0VBLDJCQUNiajNCLFdBQVdpM0I7SUFDYmozQixhQUFhNkg7R0FDZjtHQUNBaThCLDJDQUE2QyxTQUFiO0dBQ2hDQTthQUF5QzFqQyxRQUFPaUgsS0FBSUMsS0FBSXJGO0tBQ3RELEdBQUdqQyxTQUFVO01BQ1g7UUFBR2lDLFdBQ0dxRixZQUNBQSxNQUFJckYsT0FBT29GO1dBQ1hBLElBQUlDLE1BQUlyRjtPQUNaQTtNQUdNLElBQUp5Z0IsTUFBTS9iLGtCQUFrQjFFO01BQzVCNEUsZ0JBQWdCVixvQkFBb0JrQixNQUFNQyxLQUFLb2IsUUFBUXpnQjtNQUN2RGpDLFNBQVMwaUI7TUFDVDs7S0FFRm5jLHFCQUFxQnZHO0lBZFE7R0FnQi9COGpDO2FBQXdDMWpDLFFBQVFpSCxLQUFLQyxLQUFLckY7S0FDeERzRSxxQkFBcUJ2RztJQURPO0dBRzlCOGpDLDBDQUNFOWpDLFdBQVdrQixVQURrQjtHSzFTL0IsU0FBUzZpQyx1QkFBdUJuOEIsTUFBS2k1QjtJQUNuQyxHQUFHQSxPQUFPMy9CLFdBQ1IyL0IsTUFBTW5TO0lBRVJBLGFBQWFtUyxPQUFPajVCO0lBQ3BCLE9BQU9pNUI7R0FDVDtHQUNBLFNBQVNtRCxjQUFlMy9CLE1BQU13RCxPQUFPbzhCO0lBQzdCLElBQUYvaEM7SUFDSixNQUFNMkYsTUFBTTtLQUNWLE9BQU9BOztRQUNDM0YsY0FBYTs7UUFDYkEsY0FBYTs7UUFDYkEsY0FBYTs7UUFDYkEsY0FBYTs7UUFDYkEsZ0JBQWU7O1FBQ2ZBLFlBQVk7O1FBQ1pBLGNBQWE7O1FBQ2JBLFlBQVc7O1FBQ1hBLGdCQUFlOztLQUV2QjJGLFFBQU1BOztJQUVSLEdBQUczRixZQUFZQTtLQUNicUU7T0FBcUJ6Rix1QkFBdUJ1RDs7SUFDOUMsR0FBR25DLFVBQVVBO0tBQ1hxRTtPQUFxQnpGLHVCQUF1QnVEOztJQUM5QyxJQUFJSixPQUFPcUcsa0JBQWtCakcsT0FDekJ1RCxPQUFPM0QsaUJBQWlCQSxXQUFVL0I7SUFDdEMsT0FBTzZoQyx1QkFBd0JuOEIsTUFBTTFHO0dBQ3ZDO0dBQ0E7TUFDRSxTQUFTMEcsS0FBS3VCLElBQUl0QjtPQUNoQixPQUFHdEU7aUJBQ01vZ0MsdUJBQXVCeDZCLElBQUl0QjtxQkFHdkJpOEIsYUFBYTM2QixJQUFJdEI7TUFDaEM7TUFDQWs4QjtRQUF1Qm44Qjs7TUFDdkJtOEI7UUFBdUJuOEI7TUFDdkJtOEI7UUFBdUJuOEI7S0FWeEI7O0dHcVZELFNBQVNzOEIsU0FBU3J0QixJQUFJK0Q7SUFDcEIsT0FBT2pFLGVBQWUzSixXQUFXQSxPQUFPNkosS0FBSzdKLE9BQU80TjtHQUN0RDtHQW9jQSxTQUFTdXBCLGFBQWF0dEIsSUFBSStEO0lBQ3hCLEdBQUc1TixPQUFPNkosb0JBQW9CN0osT0FBTzROO0tBQ25DcGIsb0JBQW9CK0Y7SUFFdEI7T0FBSXNSLE9BQU9BLFdBQVcrRCxPQUFPQTtVQUFhNU4sT0FBTzZKLG9CQUFvQjdKLE9BQU80TjtLQUMxRTlZO0lBRUYsT0FBT3lxQixjQUFjdmYsT0FBTzZKLFFBQVE3SixPQUFPNE47R0FDN0M7R0FyekJBLFNBQVN3cEIsU0FBU3Z0QixJQUFJK0Q7SUFDcEIsT0FBT2pFLGVBQWUzSixPQUFPNkosYUFBYTdKLE9BQU80TjtHQUNuRDtHcEJpS0EsU0FBU3lwQixnQkFBaUJsbEMsR0FBR2lDO0lBQzNCLEdBQUlBLFdBQVd3SCxzQkFBc0J6SixJQUFJNnpCO0lBQ3pDLE9BQU9ucUIsdUJBQXdCMUosR0FBR2lDO0dBQ3BDO0crQm5NYTtJQUFUa2pDO01BQVc7UUFDYjtTQUFJQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBV0FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQVVKLFNBQVNDLGVBQWV0aUM7U0FDdEIsT0FBUW9pQyxnQkFBbUJwaUMsWUFBYUE7UUFDMUM7UUFFQSxTQUFTdWlDLFVBQVV2bEMsR0FBRWlDO1NBQ25CLE9BQVFpakMsZ0JBQWdCbGxDLEdBQUdpQyxZQUFhQTtRQUMxQztRQUVBLFNBQVN1akMsY0FBY3htQixJQUFJaGYsR0FBR21JLEtBQUtzOUI7U0FFakM7VUFBSUMsT0FBZ0J2Z0IsbUJBQW1Cbkc7VUFDbkMybUIsUUFBZ0J4Z0IsbUJBQW1Cbkc7VUFDbkM0bUIsWUFBZ0Jqa0MsdUJBQXVCcWQ7VUFDdkM2bUIsWUFBZ0I3bUI7VUFDaEI4bUIsZUFBZ0I5bUI7VUFDaEIrbUIsYUFBZ0IvbUI7VUFFaEJoZixJQUFJMkosMkJBQTJCM0o7VUFFL0JnbUM7VUFDQUM7VUFDQTNrQjtVQUNBNGtCLGFBQWEzOEIsTUFBTXM4QjtVQUNuQk0sa0JBQWtCNThCLE1BQU11OEI7U0FFNUIsSUFBVSxJQUFGN2pDLE9BQU9BLElBQUlpa0MsZUFBZWprQztVQUNoQ2lrQyxPQUFPamtDO1NBRVRpa0Msa0JBQWtCLzlCO1NBRUosU0FBVmkrQjtVQUNGLE1BQU85a0IsYUFBYztXQUNWLElBQUwra0IsT0FBTy9rQjtXQUNYLEdBQUkra0I7WUFDRkEsY0FBY0Esa0JBQWtCQTttQkFFMUJBLFNBQVUsQ0FDaEJMLEtBQUtLLGFBQ0xsK0IsTUFBTWsrQixjQUNOOztVQUdKSjtTQVpjO1NBZVAsU0FBTEssS0FBZ0JELE1BQVEva0IsV0FBVytrQixNQUE1QjtTQUVBLFNBQVBFO1VBQ0ZMLGdCQUFnQi85QjtVQUNMLElBQVB6RCxhQUFhNkUsVUFBVTI4QjtVQUMzQnhoQztVQUNBLElBQVUsSUFBRnpDLE9BQU9BLElBQUlpa0MsZUFBZWprQyxJQUFJO1dBQzlCLElBQUZ1WSxJQUFJMHJCLE9BQU9qa0M7V0FDZixHQUFHdVksZUFBZUEsV0FDaEJBLFVBQVVBO1dBRVo5VixXQUFTekMsU0FBVXVZO1dBQ25COVYsV0FBU3pDLGFBQWN1WTs7VUFFekIsT0FBTzlWO1NBWkk7U0FlSSxTQUFiOGhDO1VBQ0YsR0FBR2YsU0FBUyxPQUFPYyxlQUNkSDtTQUZZO1NBTW5CLFFBQVFILEtBQU07VUFDWjtXQUFJUSxLQUFLZixLQUFLTTtXQUNWVSxPQUFPaEIsS0FBS007V0FDWlcsT0FBT0Q7V0FDUDFqQyxJQUFJaEQsRUFBRW1JO1dBQ055K0I7VUFFSlo7VUFFQSxPQUFRUztpQkFDSHBCO2FBQ0gsR0FBR2w5QixRQUFRbkksU0FBVSxDQUFDd21DLGdCQUFpQjthQUN2QyxHQUFJeGpDLE1BQU0yakMsTUFBTXgrQixZQUNYaStCO2FBQ0w7aUJBQ0dmO2FBQ0gsR0FBR2w5QixRQUFRbkksU0FBVSxDQUFDd21DLGdCQUFpQjthQUN2QyxHQUFJWixxQkFBcUI1aUMsT0FBTzJqQyxNQUFNeCtCLFlBQ2pDaStCO2FBQ0w7aUJBQ0dmO2FBQ0g7a0JBQVM5aUMsTUFBTVosdUJBQXVCZ2tDLE1BQU1nQixRQUFRMWtDO2NBQU9BLElBQUlNO2NBQVlOLElBQUs7Y0FDOUUsR0FBR2tHLFFBQVFuSSxTQUFVLENBQUN3bUMsZ0JBQWlCO2NBQ3ZDLEdBQUl4akMsTUFBTVQsZUFBZU47ZUFDdkJlLElBQUloRCxJQUFJbUk7a0JBQ0wsQ0FBRWkrQixhQUFhOzthQUV0QjtpQkFDR2Y7YUFDSDtrQkFBUzlpQyxNQUFNWix1QkFBdUJna0MsTUFBTWdCLFFBQVExa0M7Y0FBT0EsSUFBSU07Y0FBWU4sSUFBSztjQUM5RSxHQUFHa0csUUFBUW5JLFNBQVUsQ0FBQ3dtQyxnQkFBaUI7Y0FDdkMsR0FBSVoscUJBQXFCNWlDLE9BQU9ULGVBQWVOO2VBQzdDZSxJQUFJaEQsSUFBSW1JO2tCQUNMLENBQUVpK0IsYUFBYTs7YUFFdEI7aUJBQ0dmO2FBQ0gsR0FBR2w5QixRQUFRbkksU0FBVSxDQUFDd21DLGdCQUFpQjthQUN2QyxHQUFJakIsVUFBVUksTUFBTWdCLE9BQU8zakMsSUFBSW1GLFlBQzFCaStCO2FBQ0w7aUJBQ0dmO2FBQ0gsR0FBR2w5QixXQUFXbkksRUFBRW1JLGdCQUEwQmkrQixhQUMxQztpQkFDR2Y7YUFDSCxHQUFHbDlCLE1BQU1uSSxZQUFZQSxFQUFFbUksWUFBc0JpK0IsYUFDN0M7aUJBQ0dmO2FBQ0gsR0FBR2w5QixTQUFVO2NBQ1gsR0FBR0EsUUFBUW5JLFNBQVUsQ0FBQ3dtQyxnQkFBaUI7Y0FDdkMsR0FBR2xCLGVBQWV0bEMsT0FBTztjQUN6Qm9tQzs7cUJBRU9qK0IsUUFBUW5JLFNBQVU7Y0FDekIsR0FBR3NsQyxlQUFldGxDLEVBQUVtSSxXQUFXO2NBQy9CaStCOztpQkFFRztjQUNILEdBQUdkLGVBQWV0bEMsRUFBRW1JLGFBQWFtOUIsZUFBZXRsQyxFQUFFbUksT0FBTztjQUN6RGkrQjs7YUFFRjtpQkFDR2Y7YUFDSHVCLFFBQVFWLE9BQU9TO2FBQ2ZMLGtCQUFpQk0sNkJBRUdBO2FBQ3BCQSxjQUFjeitCO2FBQ2Q7aUJBQ0drOUI7YUFDSHVCLFFBQVFWLE9BQU9TO2FBQ2ZMLGtCQUFrQk0sMkJBRUVBO2FBQ3BCQSxZQUFZeitCO2FBQ1o7aUJBQ0drOUI7YUFDSHVCLFFBQVFWLE9BQU9TO2FBQ2YsR0FBR0MsbUJBQW1CQSxjQUFlLENBQUNSLGFBQWM7YUFDcEQsSUFBVyxJQUFGbmtDLElBQUkya0MsYUFBYTNrQyxJQUFJMmtDLFdBQVcza0MsSUFBSTtjQUMzQyxHQUFHa0csUUFBUW5JLFNBQVUsQ0FBQ3dtQyxnQkFBaUI7Y0FDdkMsR0FBR3htQyxFQUFFaUMsTUFBTWpDLEVBQUVtSSxLQUFNLENBQUNpK0IsYUFBYztjQUNsQ2orQjs7YUFFRjtpQkFDR2s5QjthQUNILEdBQUlFLFVBQVVJLE1BQU1nQixPQUFPM2pDLElBQUltRixPQUMvQjtpQkFDR2s5QjthQUNILE1BQU9FLFVBQVVJLE1BQU1nQixPQUFPM2pDLElBQzVCQSxJQUFJaEQsSUFBSW1JLE1BQ1Y7aUJBQ0drOUI7YUFDSCxHQUFHbDlCLFFBQVFuSSxTQUFVLENBQUN3bUMsZ0JBQWlCO2FBQ3ZDLEdBQUlqQixVQUFVSSxNQUFNZ0IsT0FBTzNqQztjQUFJLEdBRTNCQSxJQUFJaEQsSUFBSW1JLFdBQ0RvOUIsVUFBVUksTUFBTWdCLE9BQU8zakM7O2NBRTdCb2pDO2FBQ0w7aUJBQ0dmLGdCQUNILE9BQU9rQjtpQkFDSmxCO2FBQ0hXLEtBQUtBLEtBQUtVLE1BQ1Y7aUJBQ0dyQjthQUNIaUIsZ0JBQWdCTixLQUFLVSxXQUFXditCLFFBQ2hDO2lCQUNHazlCO2FBQ0hpQjs0QkFBaUJILG1CQUNFUSxhQUNDUixZQUFZUTthQUNoQ1IsWUFBWVEsUUFBUXgrQjthQUNwQjtpQkFDR2s5QjthQUNILEdBQUljLFlBQVlRLFVBQVV4K0IsS0FBS2krQixhQUMvQjtxQkFDTyxVQUFVMXpCOzs7U0FHckI7UUFDRjtRQUVBLE9BQU84eUI7T0F0Tk07O0dBME9mLFNBQVNxQixtQkFBbUI3bkIsSUFBSWhmLEdBQUdtSTtJQUNqQyxHQUFHQSxXQUFXQSxNQUFNc0Isc0JBQXNCeko7S0FDeEMyQztJQUNGLE1BQU93RixTQUFVO0tBQ1AsSUFBSlMsTUFBTXU4QixTQUFTbm1CLElBQUloZixHQUFHbUk7S0FDMUIsR0FBSVMsS0FBSyxPQUFPQTtLQUNoQlQ7O0lBR0Y7R0FDRjtHWHJJQSxTQUFTMitCLFlBQVlwdkIsSUFBSStEO0lBQ3ZCLE9BQU9qRSxlQUFlM0osT0FBTzZKLFFBQVE3SixPQUFPNE47R0FDOUM7R3BCc3RCQSxTQUFTc3JCLG9CQUFvQi9tQyxHQUMzQixPQUFPbUUsd0JBQXdCbkUsR0FDakM7R3FCOVZBLFNBQVNnbkMsWUFBWXh1QixJQUFJRSxLQUFLNVY7SUFDNUIsSUFBSW1rQyxhQUNBblE7SUFDSixHQUFJdGUsZUFBZ0I7S0FDbEIsSUFBVyxJQUFGdlcsT0FBT0EsSUFBSXVXLGdCQUFnQnZXLEtBQ2xDNjBCLE1BQU1BLE1BQU10ZSxRQUFRdlc7S0FDdEJnbEM7O1FBQ0s7S0FDTCxJQUFXLElBQUZobEMsT0FBT0EsSUFBS3VXLG9CQUFxQnZXLEtBQ3hDNjBCLE1BQU1BLE1BQU10ZSxRQUFRdlc7S0FDdEJnbEMsY0FBY3p1QjtLQUNkRSxNQUFNQTs7SUFFUixHQUFJQSxXQUFXNVYsV0FBWTRWLE1BQU01VixNQUFPMFYsUUFBUXl1QjtLQUM5Q3RrQztJQUVXLElBQVR1a0M7SUFDSixJQUFXLElBQUZqbEMsT0FBT0EsSUFBSXVXLGdCQUFnQnZXLEtBQ2xDaWxDLFNBQVNqbEMsS0FBS3VXLFFBQVF2VztJQUN4QmlsQyxTQUFTRCxlQUFlbmtDO0lBQ3hCZzBCLE9BQU9uWiw2QkFBNkJuRjtJQUN2QixJQUFUMnVCLFdBQVczdUIsaUJBQWlCRSxNQUFNb2UsTUFBTXBlLE1BQU01VixPQUFPZzBCO0lBQ3pELE9BQU96WCxzQkFBc0I3RyxTQUFTQSxXQUFXMHVCLFVBQVVDO0dBQzdEO0dIN2dCQSxTQUFTQyxtQkFBbUJ4NUI7SUFFMUIsVUFBVTlMLDZCQUE2QkE7SUFDdkM7R0FDRjtHZ0JHQSxTQUFTdWxDLHVCQUF1QjNqQztJQUM5QixLQUFJQSxTQUFVLENBQ1pBLGlCQUNBO0lBRUY7R0FDRjtHbEN1VEEsU0FBUzRqQyxpQkFBaUJ0bkMsR0FBRWlDLEdBQUVpNEI7SUFDNUIsR0FBSWo0QixXQUFXakMsU0FBUzRKO0lBQ3hCO0tBQUlrUCxZQUFZb2hCO0tBQ1pyaEIsWUFBWXFoQjtLQUNadGhCLFlBQVlzaEI7S0FDWnZoQixZQUFZdWhCO0lBQ2hCcndCLHNCQUF1QjdKLEdBQUdpQyxPQUFPMFc7SUFDakM5TyxzQkFBdUI3SixHQUFHaUMsT0FBTzJXO0lBQ2pDL08sc0JBQXVCN0osR0FBR2lDLE9BQU80VztJQUNqQ2hQLHNCQUF1QjdKLEdBQUdpQyxPQUFPNlc7SUFDakM7R0FDRjtHY21JQSxTQUFTeXVCLHVCQUF1QixTQUFRO0dPdkJ4QyxTQUFTQyxvQkFBb0JodkIsSUFBSUMsSUFBSXpVO0lBQzNCLElBQUowVSxNQUFNRixVQUFVQztJQUNwQixHQUFHQyxXQUFXRixnQkFBZ0JqTDtJQUM5QmlMLE9BQU9FLFNBQVExVTtJQUNmd1UsT0FBT0UsU0FBUTFVO0lBQ2Z3VSxPQUFPRSxTQUFRMVU7SUFDZndVLE9BQU9FLFNBQVExVTtJQUNmO0dBQ0Y7R0RwV0EsU0FBU3lqQyxhQUFhL3ZCLElBQUkrRDtJQUN4QixXQUFXRCxTQUFTOUQsSUFBRytELEtBQUs4WCxTQUFTN2IsSUFBSStEO0dBQzNDO0dqQjBKQSxTQUFTaXNCLDZCQUFnQyxPQUFPamMsMEJBQTJCO0dRM1AzRSxTQUFTa2MsaUJBQWtCamtDO0lBQ3pCO0tBQUkrQixRQUFRZ3BCLEtBQU0vcUI7S0FDZGdyQixRQUFRanBCO0tBQ1JrcEIsZUFBZSxJQUFLRixLQUFLQSxTQUFTaHBCO0tBQ2xDbXBCLE1BQU14dUIsWUFBWXN1QixRQUFRQztJQUM5QjtZQUFnQmxwQjtZQUFtQkE7WUFBbUJBO1lBQ3pDQTtZQUFnQkE7WUFBaUJBO1lBQ2pDQTtZQUFlbXBCOztHQUU5QjtHSjRPQSxTQUFTZ1osbUJBQW1CL25DLEdBQzFCLEdBQUlBLFFBQVFBLFFBQVFBLEdBQ3BCLE9BQVFBLGNBQ1Y7R083QkEsU0FBU2dvQyxvQkFDRCxJQUFGN25DLElBQUlnTSxxQkFDUixPQUFPaE0sSUFDVDtHQW1FQSxTQUFTOG5DLHVCQUF1QnpuQjtJQUN4QixJQUFGcmdCLElBQUlnTTtJQUNSaE0sZUFBZXFnQjtJQUNmcmdCLHNCQUFzQnFnQjtJQUN0QjtHQUNGO0dBNkRBLFNBQVMwbkIsaUJBQWlCaGxDO0lBQ2xCLElBQUYvQyxJQUFJZ007SUFDUmhNLFNBQVMrQztJQUNUL0MsaUJBQWlCQSxzQkFBc0JtRSx3QkFBd0JuRTtJQUMvRDtHQUNGO0dBbE1BLFNBQVNnb0Msa0JBQWtCM2U7SUFDbkIsSUFBRnJwQixJQUFJZ007SUFDUixTQUFTaThCLFFBQVFDO0tBQ1AsSUFBSjk2QixXQUFXODZCO0tBQ2YsTUFBTzk2QixnQkFBZ0JBLFlBQVlBO0tBQ25DLE9BQU9BO0lBQ1Q7SUFDQSxJQUNBbk4sSUFBS29wQixvQkFDTDdPLElBQUs2TyxtQkFDTHhsQixJQUFLd2xCO0lBQ0xycEIsVUFBUXFwQjtJQUNFLElBQU44ZSxjQUFjRixRQUFRaG9DLEtBQUtnb0MsUUFBUXp0QixLQUFLeXRCLFFBQVFwa0M7SUFDcEQ3RCxzQkFBd0Jtb0M7SUFDeEJub0Msd0JBQXdCbW9DO0lBQ3hCO0dBQ0Y7R0E0QkEsU0FBU0MsZUFBZXZvQyxHQUFFd0I7SUFDbEIsSUFBRnJCLElBQUlnTTtJQUNSaE0sTUFBSUg7SUFDSkcsTUFBSXFCO0lBQ0o7R0FDRjtHQXBGQSxTQUFTZ25DLHNCQUFzQmhvQixHQUFFdGY7SUFDekIsSUFBRmYsSUFBSWdNO0lBQ1JoTSxVQUFVcWdCO0lBQ1ZyZ0IsV0FBV2U7SUFDWGYsaUJBQWlCcWdCO0lBQ2pCcmdCLGtCQUFrQmU7SUFDbEI7R0FDRjtHQWxFQSxTQUFTdW5DO0lBQ1BGLGVBQWVyOEIsaUJBQWdCQTtJQUMvQnM4QixzQkFBc0J0OEIscUJBQW9CQTtJQUMxQys3Qix1QkFBdUIvN0I7SUFDdkJxM0Isc0JBQXNCcjNCO0lBQ3RCZzhCLGlCQUFpQmg4QjtJQUNqQmk4QixrQkFBa0JqOEI7SUFDbEJpYSx5QkFBeUJqYTtJQUV6QkE7R0FDRjtHTzR3QkEsU0FBU3c4Qiw0QkFBNEJDO0lBQ25DLElBQUk1cUI7SUFDSixHQUFTNHFCLGNBQWN6ckI7S0FBY2E7WUFDNUI0cUIsY0FBY3hxQjtLQUFjSjtZQUM1QjRxQixjQUFjdnFCO0tBQVdMO1lBQ3pCNHFCLGNBQWN2aEM7S0FBWTJXO1lBQzFCNHFCLGNBQWN0cUI7S0FBWU47WUFDMUI0cUIsY0FBY3JxQjtLQUFhUDtZQUMzQjRxQixjQUFjdnJCO0tBQVlXO1lBQzFCNHFCLGNBQWM3YTtLQUFhL1A7O0tBQy9CamI7SUFDTCxPQUFPaWI7R0FDVDtHQUtBLFNBQVM2cUIseUJBQXlCRDtJQUN2QixJQUFMNXFCLE9BQU8ycUIsNEJBQTRCQztJQUN2QyxPQUFPbnBCLHNCQUFzQnpCLFVBQVU0cUIsWUFBWUE7R0FDckQ7R0psWEEsU0FBU0UsaUJBQWlCajdCLFFBQU90RixLQUMvQixPQUFPMGxCLGNBQWNwZ0IsUUFBUXRGLEtBQy9CO0daN2VBLFNBQVN3Z0MsZUFBZWwrQixHQUFLLGNBQWNBLEVBQUc7R21CaUo5QyxTQUFTbStCLHFCQUFxQjduQyxHQUFHaUQ7SUFDL0IsT0FBT3l3QixzQkFBc0IxekIsR0FBR1ksdUJBQXVCcUM7R0FDekQ7R0EyRUEsU0FBUzZrQyxpQkFBaUI5bkMsR0FBR2lEO0lBQzNCLElBQUlqRCxJQUFJNm5DLHFCQUFxQjduQyxHQUFFaUQsSUFDM0JqRCxJQUFJa3JCLG9CQUFvQmxyQjtJQUM1QixPQUFPQTtHQUNUO0dwQjFNQSxTQUFTK25DLDJCQUEyQjNtQyxLQUFLKzRCLElBQU0sU0FBUztHVTBMeEQsU0FBUzZOLGVBQWVscEMsR0FBRXdCO0lBQ2xCLElBQUZyQixJQUFJZ007SUFDUmhNO0lBQ0FBLGlCQUFpQkEsS0FBSUEsV0FBV0E7SUFDaENBLGlCQUFpQkgsR0FBRUcsV0FBV3FCO0lBQzlCckI7SUFDQUEsTUFBSUg7SUFDSkcsTUFBSXFCO0lBQ0o7R0FDRjtHVHVJQSxTQUFTMm5DLHVCQUF1QmptQyxHQUM5QixPQUFRQSxXQUFVQSxNQUFLQSxNQUFNQSxTQUMvQjtHQWJBLFNBQVNrbUMsa0NBQWtDbG1DO0lBQ3pDO0tBQ0UsSUFBSUQsTUFBTWttQyx1QkFBdUJqbUMsUUFDN0JtRCxXQUFXcUQsTUFBTXpHO0tBQ3JCb0QsVUFBVXJGO0tBQ1YsSUFBVyxJQUFGb0IsT0FBT0EsSUFBSWEsS0FBS2IsS0FBS2lFLEtBQUtqRSxTQUFPMFksVUFBVTFZO0tBQ3BELE9BQU8yWSxjQUFjN1gsR0FBR21ELE1BTG5CO0dBTVQ7R2dCZEEsU0FBU2dqQyxjQUFjMXdCLElBQ3JCLE9BQU8yWixZQUFZM1osT0FDckI7R2xCbFZBLFNBQVMyd0IsMEJBQTBCaG5DO0lBQ2pDLE9BQU9BLHNDQUlMLGtCQUVBOztHQUVKO0dBSUEsU0FBU2luQyxzQkFBc0JqbkM7SUFDdkIsSUFBRmxDO0lBQ0osR0FBR2tDLFlBQWE7S0FDZGxDLEtBQUtrQztLQUNMO09BQUdBLG1CQUFtQkEsa0JBQWtCZ25DLDBCQUEwQmhuQztNQUVoRSxJQUFJa25DLFNBQVNsbkMsUUFDVG1VOztNQUVKLElBQUlBLFdBQ0EreUIsU0FBU2xuQztLQUVmbEM7S0FDQSxJQUFVLElBQUZnQyxJQUFJcVUsT0FBT3JVLElBQUlvbkMsZUFBZXBuQyxJQUFLO01BQ3pDLEdBQUdBLElBQUlxVSxPQUFPclc7TUFDUixJQUFGK0QsSUFBSXFsQyxPQUFPcG5DO01BQ2YsVUFBVStCO09BQ1IvRCxLQUFJK0Q7Y0FDRUEsYUFBYTBDO09BQ25CekcsV0FBVStEO3FCQUVHQTtPQUNiL0QsV0FBVStEOztPQUVQL0Q7O0tBRVBBOztZQUNTa0MsZUFDVGxDLEtBQUtrQztJQUVQLE9BQU9sQztHQUNUO0dBSUEsU0FBU3FwQyw4QkFBOEJwL0I7SUFDckMsR0FBR0EsZUFBZVgsVUFBVVcsZUFBZUEsZUFBZ0I7S0FDN0MsSUFBUnEvQixVQUFVbmpDO0tBQ2QsR0FBR21qQztNQUFTM3VCLGNBQWMydUIsVUFBVXIvQjtTQUMvQjtNQUNIO09BQUl4SCxNQUFNMG1DLHNCQUFzQmwvQjtPQUM1QnMvQixVQUFVcGpDO01BQ2QsR0FBR29qQyxTQUFTNXVCLGNBQWM0dUI7TUFDMUIxUiwwQ0FBMENwMUI7TUFDMUMsR0FBR3dILGNBQWMsTUFBTUE7Ozs7S0FHdEIsTUFDR0E7R0FFVjtHZ0MwR0EsU0FBU3UvQixxQkFBcUI1cEM7SUFDNUIsT0FBR0EsRUFBRTJ5QiwyQkFBMkJ6d0I7R0FJbEM7R25DeUJBLFNBQVMybkMsaUJBQWlCMXBDLEdBQUVpQztJQUMxQixHQUFJQSxXQUFXakMsU0FBUzRKO0lBQ3hCO0tBQUkrTyxLQUFLb2Esc0JBQXVCL3lCLEdBQUdpQztLQUMvQjJXLEtBQUttYSxzQkFBdUIveUIsR0FBR2lDO0lBQ25DLE9BQVEyVyxVQUFVRDtHQUNwQjtHeUJ4SkEsU0FBU2d4QixzQkFBdUI5bEMsR0FBRUcsR0FDaENILFlBQ0FBLE9BQUtHLEdBQ0wsU0FDRjtHcEJpR0EsU0FBUzRsQyxrQkFBa0IvcEMsR0FBSyxXQUFTQSxFQUFHO0dZbEc1QyxTQUFTZ3FDLHlCQUF5QnA4QixRQUFRdkk7SUFDL0IsSUFBTGlJLE9BQU9GLGlCQUFpQlE7SUFDNUJOLFlBQVlqSTtJQUNaO0dBQ0Y7R1Y2S0EsU0FBUzRrQyxnQkFBZ0JqcUMsR0FBSyxPQUFPTyxZQUFZUCxHQUFJO0dPOUlyRCxTQUFTa3FDO0lBQ0QsSUFBRi9wQyxJQUFJZ007SUFDUmhNO0lBQ0FBO0lBQ0E7R0FDRjtHWTVDQSxTQUFTZ3FDLHlCQUF5QnA4QixNQUM5QixTQUNKO0cxQm1aQSxTQUFTcThCLG1CQUFtQm5uQyxLQUMxQkgsdUNBQ0Y7R2lCbFBBLFNBQVN1bkMsb0JBQXFCejhCLFFBQVErSyxJQUFJdlcsR0FBRy9CO0lBQzNDO0tBQUlpTixPQUFPRixpQkFBaUJRO0tBQ3hCMU4sSUFBSUc7S0FDSmlxQyxRQUFRaDlCLGtCQUFrQkE7SUFDOUIsR0FBR2pOLEtBQUtpcUMsTUFBTztLQUNiM3hCLE9BQU9yTCxxQkFBcUJBLGtCQUFpQkEsbUJBQW1Cak4sSUFBSStCO0tBQ3BFa0wsb0JBQW9Cak47O1lBRWRpcUMsVUFBVztLQUNqQjN4QjtPQUFPckwscUJBQXFCQSxrQkFBaUJBLG1CQUFtQmc5QixRQUFRbG9DO0tBQ3hFa0wsb0JBQW9CZzlCO0tBQ3BCcHFDLElBQUlvcUM7O1FBQ0M7S0FDTGg5QjtLQUNBQTtLQUNBRCxZQUFZQztLQUNGLElBQU5nOUIsUUFBUWg5QixrQkFBa0JBO0tBQzlCLEdBQUdwTixJQUFJb3FDLE9BQU9wcUMsSUFBSW9xQztLQUNsQjN4QixPQUFPckwscUJBQXFCQSxrQkFBaUJBLG1CQUFtQnBOLElBQUlrQztLQUNwRWtMLG9CQUFvQnBOOztJQUV0QixPQUFPQTtHQUNUO0dhM1BBLFNBQVNxcUMsY0FBYzM4QixRQUFPNDhCO0lBQzVCLElBQUl2akIsTUFBTTBHLGdCQUNOcnFCLGFBQWE4RDtJQUNqQixHQUFHb2pDO0tBQVcsV0FDRDtNQUNBLElBQUxqZ0MsT0FBTzgvQixvQkFBb0J6OEIsUUFBT3RLLFdBQVNBO01BQy9DLEdBQUdpSCxXQUFXO01BQ2R5YyxlQUFlQyxLQUFJM2pCLG1CQUFtQmlILE9BQU9BOzs7S0FFMUMsTUFDQ2lnQyxXQUFZO01BQ1A7T0FBTGpnQztTQUFPOC9CO1dBQW9CejhCLFFBQU90SyxXQUFXa25DLFNBQVNsbkMsZ0JBQWdCQSxnQkFBZ0JrbkM7TUFDMUYsR0FBR2pnQyxXQUFXaVM7TUFDZHdLLGVBQWVDLEtBQUkzakIsbUJBQW1CaUgsT0FBT0E7TUFDN0NpZ0MsVUFBVWpnQzs7SUFHZCxPQUFPb3VCLHFCQUFxQjhLLGNBQWN4YztHQUM1QztHdkJ1UEEsU0FBU3dqQixpQkFBa0J6cUMsR0FBSyxPQUFPTyxXQUFXUCxHQUFJO0dDMUd0RCxTQUFTMHFDLHlCQUF5QjdtQyxHQUM5QixTQUNKO0dHaUlBLFNBQVM4bUMsbUJBQW1CdnVCLFlBQzFCLE9BQU9LLGtCQUFrQkw7R0FDM0I7R011SUEsU0FBU3d1QixxQkFBcUJoOUIsUUFBT3RLLFFBQU9sQyxRQUFPNkI7SUFDeEMsSUFBTHFLLE9BQU9GLGlCQUFpQlE7SUFDNUIsS0FBS047S0FBYS9GO0lBQ1AsSUFBUGpFLFNBQVNvRSwwQkFBMEJwRTtJQUN2Q0EsU0FBU0EsZ0JBQWdCbEMsUUFBUUEsU0FBUzZCO0lBQzFDLEdBQUdxSyxtQkFBbUJoSyxnQkFBZ0JnSyxtQkFBb0I7S0FDbEQsSUFBRnRKLFFBQVFvRCxXQUFXa0csbUJBQW1CaEs7S0FDMUNVLE1BQU1zSjtLQUNOQSxjQUFjdEo7O0lBRWhCLE9BQU9zSjs7T0FFTEEsZ0JBQWdCaEssUUFBUWdLO09BQ3hCQSxvQkFBb0JoSztPQUNwQnlxQixjQUFlbmdCO09BQ2Y7O09BRUFOLGdCQUFnQmhLLFFBQVFnSztPQUN4QkEsb0JBQW9CaEs7T0FDcEIsR0FBR2dLLG9CQUFvQkEsb0JBQ3JCeWdCLGNBQWVuZ0I7T0FDakI7O09BRU8sSUFBSCtqQixLQUFLcnVCO09BQ1QsR0FBR3F1QixPQUFRO1FBQ1Rya0IsZ0JBQWdCaEssUUFBUWdLO1FBQ3hCQSxvQkFBb0JoSztRQUNwQixHQUFHZ0ssb0JBQW9CQSxvQkFDckJ5Z0IsY0FBZW5nQjs7V0FFZDtRQUNITixnQkFBZ0JoSyxtQkFBbUJxdUIsU0FBU3JrQjtRQUM1Q0Esb0JBQW9CcWtCO1FBQ3BCNUQsY0FBZW5nQjtRQUNmTixnQkFBZ0JoSyxnQkFBZ0JxdUIsU0FBU3JrQjtRQUN6Q0Esb0JBQW9CaEssZ0JBQWdCcXVCOztPQUV0Qzs7SUFFRjtHQUNGO0dBSUEsU0FBU2taLGVBQWVqOUIsUUFBT3RLLFFBQU9sQyxRQUFPNkI7SUFDM0MsT0FBTzJuQzthQUFxQmg5QixRQUFPdEcscUJBQXFCaEUsU0FBUWxDLFFBQU82QjtHQUN6RTtHUy9aQSxTQUFTNm5DLGtCQUFrQi84QixNQUN2QixPQUFPdWpCLGVBQ1g7R1NnRUEsU0FBU3laLG1CQUFtQi9xQztJQUMxQixPQUFHQSxFQUFFMnlCLDJCQUEyQnp3Qjs7a0JBR25CbEMsRUFBRTJ5QjtHQUNqQjtHUHJGQSxTQUFTcVksMkJBQTJCajlCO0lBQ2xDLFVBQVU5TDtLQUNSLElBQU0sV0FBV0EsbUNBQW1Dc1Q7SUFFdEQsVUFBVXRULHlDQUEwQztLQUNsRCxJQUFNLFdBQVdBLGtEQUFtRHNUO0tBQ3BFLElBQU0sV0FBV3RULGtEQUFtRHNUO0tBQ3BFLElBQU0sV0FBV3RULHFEQUFzRHNUOztJQUV6RXBLO0dBQ0Y7R3ZCNUJBLFNBQVM4L0IsdUJBQXVCL25DLEdBQUVtRCxNQUNoQyxtQkFBa0JuRCxhQUFXbUQ7R0FDL0I7R1lxZ0JBLFNBQVM2a0Msb0JBQW9CdDlCO0lBQzNCLE9BQU9SLGlCQUFpQlE7R0FDMUI7R2dCNWhCQSxTQUFTdTlCLGtCQUFrQm5qQixJQUFJQztJQUM3QixJQUFJMVcsS0FBS3lXLFdBQVd4VyxLQUFLeVcsV0FDckI1bkIsSUFBSWtSLEtBQUdDLFFBQ1A3SyxRQUFRK0MsTUFBTXJKO0lBQ2xCc0c7SUFDQSxJQUFJdkUsT0FBTWdDO0lBQ1YsTUFBS2hDLElBQUVtUCxJQUFHblAsS0FBS3VFLEVBQUV2RSxLQUFHNGxCLEdBQUc1bEI7SUFDdkIsTUFBS0EsSUFBRS9CLEdBQUUrQixLQUFJZ0MsS0FBS3VDLEVBQUV2RSxLQUFHNmxCLEdBQUc3akI7SUFDMUIsT0FBT3VDO0dBQ1Q7R3RCckNBLFNBQVN5a0MseUJBQ1AsT0FBTyxJQUFLeGMsd0JBQ2Q7R0FLQSxTQUFTeWMsaUJBQ1AsT0FBTzlxQyxXQUFXNnFDLDBCQUNwQjtHTXdNQSxTQUFTRSwyQkFBMkIxOUIsUUFBTzFLO0lBQ3pDa0ssaUJBQWlCUSxpQkFBaUIxSztJQUNsQztHQUNGO0dHbWdCQSxTQUFTcW9DLGVBQWUxekI7SUFNdEJBLEtBQUs3SixPQUFPNko7SUFDWixJQUFJSSxNQUFNakssV0FDTm9LLE1BQU1wSztJQUVWLEdBQUk2SixNQUFNSSxRQUFRSixVQUFVSSxNQUFNO0lBSWxDLEdBQUlKLE9BQU9JLFlBQVlBLE1BQ3JCSixLQUFLQSxPQUFPTyxXQUVaUCxLQUFLQSxPQUFPSTtJQUdkO0tBQWEsR0FDUEo7TUFBd0IsT0FDbkJGLGVBQWVFOztNQUV0QkEsS0FBS0EsT0FBT087R0FHbEI7R0wvc0JBLFNBQVNvekIsa0NBQWtDemdDLFFBQ3pDLFVBQ0Y7R2ZtaUJBLFNBQVMwZ0MsZ0JBQWdCdHJDLEdBQUdpQyxHQUFHL0IsR0FBRzhDO0lBQ2hDLEdBQUk5QztLQUFPLEdBQ0wrQixXQUFXL0IsS0FBS0YsT0FBUUEsWUFBMEJFLEtBQUtGO01BQWMsR0FDbkVnRCxPQUFRO09BQ1ZoRDtPQUNBQTs7VUFDSztPQUNMQSxNQUFNRixnQkFBaUJJLEdBQUdnRSxvQkFBb0JsQjtPQUM5Q2hELE1BQU9FLEtBQUtGOztTQUVUO01BQ0wsR0FBSUEsVUFBc0JzSCw0QkFBNEJ0SDtNQUN0RCxJQUFLRSxLQUFLK0IsR0FBR0EsSUFBSS9CLEdBQUcrQixLQUFLakMsSUFBSWlDLEtBQUtlOztJQUd0QztHQUNGO0dLL0xBLFNBQVN1b0MsYUFBYXZyQztJQUNwQjgzQjtJQUNBLE9BQU9sVCxLQUFLemdCLHdCQUF3Qm5FO0dBQUk7R0YxRjFDLFNBQVN3ckMsaUNBQWtDNWlCLE9BQ3pDLE9BQU9qYztHQUNUO0dpQnJSQSxTQUFTOCtCLFNBQVMvekIsSUFBSStEO0lBQ3BCLE9BQU9qRSxlQUFlM0osT0FBTzZKLGFBQWE3SixPQUFPNE47R0FDbkQ7R0FtQ0EsU0FBU2l3QixVQUFVaDBCLElBQUkrRDtJQUNyQixJQUFJSSxTQUFTSCxVQUFVaEUsS0FDbkJvRSxTQUFTSixVQUFVRDtJQUN2QixHQUFJSSxTQUFTQztLQUF3RCxLQUM5RGpPLE9BQU82SixRQUFRN0osT0FBTzROLFlBQVk1TjtNQUFZLE9BQzFDNDlCLFNBQVNqd0IsU0FBUzlELElBQUkrRCxLQUFLNU47SUFHdEMsT0FBTzJOLFNBQVM5RCxJQUFJK0Q7R0FDdEI7R0EyYUEsU0FBU2t3QixhQUFhajBCO0lBQ3BCQSxLQUFLN0osT0FBTzZKO0lBQ0osSUFBSjlPO0lBQ0osUUFBTzhPLFVBQVU3SixXQUFXO0tBQzFCakYsT0FBTzFFLG9CQUFvQndULE9BQU83SjtLQUNsQzZKLEtBQUtBLFVBQVU3Sjs7SUFFakIsTUFBTWpGLHFCQUNKQSxPQUFPMUU7SUFFVCxPQUFPMUIsdUJBQXVCb0c7R0FDaEM7R0pxUEEsU0FBU2dqQywyQkFBNEI1bkMsR0FBRzBFO0lBQ3RDLE9BQU8xQixvQkFBcUIwd0IsZ0JBQWlCMXpCLEdBQUcwRTtHQUNsRDtHRS9yQkEsU0FBU21qQyxxQkFBcUJqK0IsTUFBUSxTQUFVO0dZL0JoRCxTQUFTaytCLGdCQUFnQjlyQyxHQUFHMFksS0FBSzVWO0lBQy9CLE9BQU95Z0MsZUFBZXA4QixxQkFBcUJuSCxJQUFHMFksS0FBSTVWO0dBQ3BEO0c5QnEwQkEsU0FBU2lwQyxxQkFBcUJsc0MsR0FBSyxPQUFPOEosMkJBQTJCOUosR0FBRztHQWxOeEUsU0FBU21zQyxrQkFBa0Jya0MsSUFBSUUsSUFDN0IsR0FBR0YsT0FBT0UsSUFBSSxVQUNkLFNBQ0Y7R0s3aUJBLFNBQVNva0MsOEJBQThCcitCLE1BQ3JDLFNBQ0Y7R2UrdkJBLFNBQVNzK0IsY0FBY3gwQixJQUFJK0QsSUFDekIsT0FBT0QsU0FBUzlELElBQUkrRCxJQUN0QjtHSjVHQSxTQUFTMHdCLDRCQUE2Qm5zQyxHQUFHMFksS0FBSzVWLEtBQUtrQixHQUFHMEU7SUFDOUMsSUFBRmhGLElBQUlnMEIsZ0JBQWlCMXpCLEdBQUcwRTtJQUM1QixHQUFJaEYsV0FBV1osS0FBS2tJO0lBQ3BCdEQsZ0JBQWdCaEUsTUFBTTFELEdBQUcwWSxLQUFLaFY7SUFDOUI7R0FDRjtHZTFlQSxTQUFTMG9DLG9CQUFvQkMsTUFBS25HLFFBQU9vRztJQUN2QztLQUFJRCxPQUFPMXFDLHVCQUF1QjBxQztLQUM5QnZwQyxNQUFNdXBDO0tBQ05DLE9BQU8zcUMsdUJBQXVCMnFDO0tBQzlCMWpDO0tBQ0E3STtLQUNBd3NDO0tBQ0FqMkI7S0FBT3lCO0tBQUsvVTtJQUNoQixNQUFNakQsSUFBSStDLElBQUk7S0FDWnlwQyxNQUFNRixZQUFZdHNDO0tBQ2xCLEdBQUd3c0M7TUFDRDNqQyxPQUFPMmpDO1NBRUo7TUFDSCxHQUFHeHNDLEtBQUsrQyxLQUFLa0k7TUFDYnVoQyxNQUFNRixZQUFZdHNDO01BQ2xCLE9BQU93c0M7O1NBRUwzakMsT0FBTzJqQyxLQUNQOzs7Ozs7Ozs7OztTQUdBdnBDLE1BQUt1cEM7U0FDTCxHQUFJdnBDLFNBQU9rakM7VUFDVGw3QjtTQUNGc0wsUUFBUStaLGVBQWU2VixRQUFPbGpDO1NBQzlCK1UsTUFBTXNZLGVBQWU2VixRQUFRbGpDO1NBQzdCLEdBQUlzVDtVQUNGdEw7U0FDRnBDLE9BQUswakMsV0FBV2gyQixPQUFNeUI7U0FDdEI7aUJBRUFuUCxjQUFnQjJqQzs7OztJQUl0QixPQUFPL3BDLHVCQUF1Qm9HO0dBQU07RzFCbUZ0QyxTQUFTNGpDLGtCQUFtQnhzQztJQUMxQjgzQjtJQUNBLE9BQU9sVCxLQUFLemdCLHdCQUF3Qm5FO0dBQUk7R0w0TjFDLFNBQVN5c0MsaUJBQWlCam1DLEdBQUUzQyxHQUFFYixHQUFFeUMsR0FBRTJQO0lBQ2hDMU4sZ0JBQWdCUCxxQkFBcUJYLElBQUczQyxHQUFFYixHQUFFeUMsR0FBRTJQO0lBQzlDO0dBQ0Y7R2F4a0JBLFNBQVNzM0IsU0FBU2xoQyxNQUFNQyxNQUFNRSxNQUFNQyxNQUFNOUk7SUFDeEMsSUFBVSxJQUFGYixPQUFPQSxJQUFJYSxLQUFLYixLQUN0QnVKLFVBQVVDLE9BQUt4SixLQUFLMEosVUFBVUMsT0FBSzNKO0lBRXJDO0dBQ0Y7R2dCNENBLFNBQVMwcUMsZ0NBQWdDQyxLQUFLaG5CLE1BQU1pbkIsUUFBUS9tQixNQUFNaGpCO0lBQ2hFLFNBQVM4cEM7S0FDUGpxQztJQUNGLEdBQUdHLFVBQVU7SUFDSixJQUFMMkksT0FBT21oQyxXQUFXaG5CO0lBQ3RCLEdBQUduYSxPQUFPM0ksTUFBTThwQyxpQkFDZHIvQjtJQUVGLEdBQUd1WSxPQUFPaGpCLE1BQU0yRSxxQkFBcUJvbEMsU0FDbkN0L0I7SUFFUSxJQUFOd1ksUUFBUTZtQixlQUFlbmhDLE1BQU1BLE9BQUszSTtJQUN0QzRFLGdCQUFnQlYsb0JBQW9CK2UsV0FBVzhtQixRQUFRL21CLE1BQU1oakI7SUFDN0Q7R0FDRjtHbEJFQSxTQUFTZ3FDLGVBQWU1bkM7SUFDYixJQUFMSixPQUFPcUcsa0JBQWtCakc7SUFDN0IsS0FBS0osa0JBQ0hrRztJQUVGLE9BQU9sRyxpQkFBaUJBO0dBQzFCO0dUR0EsU0FBU2lvQywwQkFBMEIxbUMsSUFBR3JDO0lBQ3BDbUMsa0JBQWtCeEUsdUJBQXVCMEUsT0FBT3JDO0lBQ2hEO0dBQ0Y7R1FpSkEsU0FBU2dwQyx3QkFBd0I5bkMsTUFBSzJCO0lBQ3BDLEdBQUcvRTtLQUNEQSw0QkFBNEJvRCxNQUFLMkI7UUFDOUI7S0FDSCxLQUFJL0Usd0JBQXdCQTtLQUM1QkEsbUNBQWtDb0QsZUFBYTJCOztJQUVqRDtHQUNGO0dDMUpBLFNBQVNvbUMsa0JBQWtCL25DO0lBQ25CLElBQUZqRixJQUFJNnNDLGVBQWU1bkM7SUFDdkJqRixPQUFPc0Isb0JBQW9CdEI7R0FDN0I7R1g4dEJBLFNBQVNpdEMsa0JBQWtCbHRDLEdBQ3pCLE9BQU9tRSx3QkFBd0JuRSxHQUNqQztHa0MzMUJBLFNBQVNtdEMsbUJBQW1CenBDO0lBQzFCLEdBQUdBO0tBQ0RzSDs7S0FDR3RIO0lBQ0w7R0FDRjtHSG1PQSxTQUFTMHBDLGtCQUFrQnB1QixJQUFJaGYsR0FBR21JO0lBQ2hDLEdBQUdBLFdBQVdBLE1BQU1zQixzQkFBc0J6SjtLQUN4QzJDO0lBQ0YsTUFBT3dGLE9BQU9zQixzQkFBc0J6SixHQUFJO0tBQzlCLElBQUo0SSxNQUFNdThCLFNBQVNubUIsSUFBSWhmLEdBQUdtSTtLQUMxQixHQUFJUyxLQUFLLE9BQU9BO0tBQ2hCVDs7SUFHRjtHQUNGO0dFeEpBLFNBQVNrbEMsZUFBZ0J2cUMsS0FBS3dxQztJQUM1QixHQUFJeHFDLFNBQVN5SztJQUNiLElBQUl6SyxNQUFNQSxhQUNOZSxRQUFRMEYsTUFBTXpHO0lBQ2xCZTtJQUNBLElBQVcsSUFBRjVCLE9BQU9BLElBQUlhLEtBQUtiLEtBQUs0QixFQUFFNUIsS0FBS3FyQztJQUNyQyxPQUFPenBDO0dBQ1Q7R2hCbVFBLFNBQVMwcEMsZ0JBQWdCOS9CLFFBQU90RixLQUM5QixPQUFPOG9CLGFBQWF4akIsUUFBT3RGLEtBQzdCO0dQaktBLFNBQVNxbEMsd0JBQXdCdG9DO0lBQy9CO0tBQUlKLE9BQU9xRyxrQkFBa0JqRztLQUN6QnNCLElBQUkxQixvQkFBb0JBO0tBQ3hCNUUsUUFBUXFKLE1BQU0vQztJQUNsQnRHO0lBQ0EsSUFBUyxJQUFEK0IsT0FBSUEsSUFBRXVFLFVBQVN2RSxLQUNyQi9CLEVBQUUrQixTQUFPTyx1QkFBdUJnRSxFQUFFdkU7SUFDcEMsT0FBTy9CO0dBQ1Q7R08wUkEsU0FBU3V0QyxvQkFBcUJoZ0MsUUFBT3pLO0lBQzdCLElBQUZoRCxJQUFJd0MsdUJBQXVCMEIsb0JBQW9CbEI7SUFDbkQwbkMsZUFBZWo5QixRQUFPek47SUFDdEI7R0FDRjtHZDVPQSxTQUFTMHRDLDhCQUFpQyxPQUFPamlCLDJCQUE0QjtHc0I5TzdFLFNBQVNraUIsa0JBQW1COXRDLEdBQUssVUFBU0EsYUFBYTBKLE9BQVE7R0E0SC9ELFNBQVNxa0MsdUJBQXVCbmpDLEdBQUV4SSxHQUFFK0IsR0FBSyxPQUFPeUcsRUFBRXhJLFNBQU8rQixFQUFFO0dwQjRFM0QsU0FBUzZwQyxZQUFZaHVDO0lBQ2IsSUFBRkEsSUFBSXNFLHdCQUF3QnRFO0lBRWhDLEtBQUlBO0tBQ0ZpNEI7MEJBQWtDajRCOztJQUdwQyxPQUFPK2tCLEtBQUsva0I7R0FDZDtHRXJFQSxTQUFTaXVDLGlCQUFpQmp1QyxHQUN4QixPQUFPTyxXQUFXUCxHQUNwQjtHYW90QkEsU0FBU2t1QyxvQkFBb0IxMEIsUUFBUXJWLEdBQUd5WjtJQUN0Q3paLElBQUk2SixPQUFPN0o7SUFDRixJQUFMeVAsT0FBT3pQLFVBQVU1RDtJQUNyQmlaLGdCQUFnQjVGO0lBQ2hCLElBQUl1dkIsUUFBUXZ2QixtQkFDUjNRLE1BQU1rZ0M7SUFDVjNwQixpQkFBaUJ2VztJQUNqQixJQUFVLElBQUZiLElBQUkrZ0MsV0FBVy9nQyxRQUFRQSxJQUFLO0tBQ2xDb1gsZ0JBQWlCNUYsV0FBV3hSO0tBQzVCb1gsZ0JBQWlCNUYsV0FBV3hSO0tBQzVCb1gsZ0JBQWlCNUYsV0FBV3hSO0tBQzVCb1gsZ0JBQWlCNUYsV0FBV3hSOztJQUU5QndiLG1CQUFvQjNhO0lBQ3BCMmEsbUJBQW9CM2E7R0FDdEI7R2VydEJBLFNBQVNrckMscUJBQXFCbnVDO0lBQzVCLEdBQUdpQyxtQ0FBbUNBO0tBQW9CLEdBQ3JEakMsZ0JBQWdCaUM7TUFBZ0MsSUFFdkMsSUFBRm1DLElBQUk2bkIsc0JBQXNCN25CLElBQUlwRSxVQUFVb0UsSUFBSTtPQUMxQyxJQUFKc0csTUFBTTFLLEVBQUVvRTtPQUNaLEdBQUdzRyxlQUFlekksbUJBQW9CO1FBQ3BDeUksTUFBTUE7UUFDTixHQUFHQSxLQUFLMUssZ0JBQWdCMEs7OztJQUtoQzFLLEVBQUUyeUIseUJBQXlCendCO0lBQzNCO0dBQ0Y7R0FuQ0EsU0FBU2tzQyxtQkFBbUJwdUMsR0FBRzBJO0lBQzdCLEdBQUd6RyxtQ0FBbUNBO0tBQW9CLE1BQ2xEakMsZ0JBQWdCaUMsaUNBQWtDO01BQ3REakM7O1FBQVdpQztvQkFBOENrc0MscUJBQXFCbnVDLEdBQW5DO01BRTNDLElBQVUsSUFBRm9FLElBQUk2bkIsc0JBQXNCN25CLElBQUlwRSxVQUFVb0UsSUFBSTtPQUMxQyxJQUFKc0csTUFBTTFLLEVBQUVvRTtPQUNaLEdBQUdzRyxlQUFlekksbUJBQW9CO1FBQ3BDeUksTUFBTUE7UUFDTixHQUFHQSxLQUFLMUssY0FBYzBLLEtBQUt4SSxXQUFXd0k7Ozs7SUFLOUMxSyxFQUFFMnlCLHlCQUF5QmpxQjtJQUMzQjtHQUNGO0dBNUNBLFNBQVMybEMsb0JBQW9CM3FCLEtBQUtDO0lBQzFCLElBQUZ6akIsSUFBSXdqQixJQUFJaVA7SUFDWixHQUFHenlCLE1BQU1nQztLQUFXaXNDLHFCQUFxQnhxQjs7S0FDcEN5cUIsbUJBQW1CenFCLEtBQUt6akI7SUFDN0I7R0FDRjtHakNxREEsU0FBU291QyxrQkFBa0JuckMsR0FBSyxVQUFTQSxVQUFVQSxTQUFVO0dGOFY3RCxTQUFTb3JDLHFCQUFxQnptQyxJQUFJRTtJQUMvQkYsWUFBYWxCLDZCQUE2QmtCO0lBQzFDRSxZQUFhcEIsNkJBQTZCb0I7SUFDM0MsT0FBUUYsUUFBUUU7R0FDbEI7R0FrVkEsU0FBU3dtQyxvQkFBb0J4dUMsR0FBSyxPQUFPMEgsMEJBQTBCMUgsR0FBRztHMkJub0J0RSxTQUFTeXVDLFdBQVl6dUMsR0FBR3dCLEdBQUssVUFBU2dnQixpQkFBaUJ4aEIsR0FBRXdCLGdCQUFnQjtHSXdDekUsU0FBU2t0QyxpQkFBaUJ2dkIsSUFBR2hmLEdBQUVtSTtJQUM3QixHQUFHQSxXQUFXQSxNQUFNc0Isc0JBQXNCeko7S0FDeEMyQztJQUNNLElBQUppRyxNQUFNdThCLFNBQVNubUIsSUFBSWhmLEdBQUdtSTtJQUMxQixPQUFJUyxNQUFZQTtHQUVsQjtHNUI1REEsU0FBUzRsQztJQUNQLEdBQUcxc0M7S0FBbUIsVUFDVkEsaURBQWlEO01BRW5ELElBQUYwRSxRQUFRbW5CO01BQ1o3ckIsa0NBQWtDMEU7TUFDbEMsV0FBVUE7O2FBQ0YxRSw2Q0FBNkM7TUFFckQsSUFBSTJzQyxPQUFPM3NDLGtDQUNQMEUsUUFBUW1uQixZQUFZOGdCO01BQ3hCLFdBQVVqb0M7O0lBR2QsSUFBSWtvQyxNQUFNLElBQUtqZ0Isa0JBQ1g1dUIsSUFBSTZ1QyxtQkFBZXR1QztJQUN2QixXQUFVUDtHQUNaO0dlcE1tQixJQUFmOHVDLHFCQUFxQjdzQztHQUN6QixTQUFTOHNDLHlDQUEwQ0MsSUFBSXJvQztJQUNyRCxHQUFHMUUsbUNBQW1DMEUsYUFBYXVJLE9BQVE7S0FDbkQ7TUFBRmxQOztTQUFRaUM7bUJBQTBDakMsR0FBRzh1QyxzQkFBc0I5dUMsSUFBSWd2QyxPQUFPLE9BQTlDO0tBQzVDaHZDLFdBQVcyRyxHQUFFM0c7S0FDYjh1QyxtQkFBbUI5dUM7O0lBRXJCO0dBQ0Y7R0drWEEsU0FBU2l2QyxjQUFjdDJCLElBQUlDLElBQUk3USxJQUM3QixPQUFPNFEsT0FBT0EsV0FBV0MsSUFBRzdRLE1BQzlCO0dBZ0JBLFNBQVNtbkMsb0JBQW9CdjJCLElBQUlDLElBQUl6VTtJQUMzQixJQUFKMFUsTUFBTUYsVUFBVUM7SUFDcEIsR0FBR0MsV0FBV0YsZ0JBQWdCakw7SUFDOUJpTCxPQUFPRSxTQUFRMVU7SUFDZndVLE9BQU9FLFNBQVExVTtJQUNmO0dBQ0Y7R0l2UEEsU0FBU2dyQyx3QkFBd0J2a0M7SUFDL0J5USxvQkFBb0J6UTtJQUNwQjtHQUNGO0dwQnBMQSxTQUFTd2tDLGVBQWV4a0MsR0FBRTFILEdBQUssT0FBTzBILEVBQUUxSCxJQUFJLFNBQVE7R2tCa0NwRCxTQUFTbXNDLG1CQUFvQmx2QztJQUMzQjtLQUFJQyxJQUFJZzJCLHlCQUEwQmoyQjtLQUM5QmlDLElBQUloQztLQUFNZSxPQUFPZjtLQUFNNFAsT0FBTzVQO0tBQzlCNkMsTUFBTTJHLHNCQUFzQnpKO0tBQzVCcTJCO0tBQ0FyekIsSUFBS2YsSUFBSWEsTUFBSzRHLHVCQUF1QjFKLEdBQUdpQztLQUN4Q3dELElBQUl5d0IsaUJBQWlCbHpCO0lBQ3pCLEdBQUl5QyxTQUFTQSxLQUFLb0ssTUFBTTdFO0lBQ2hCLElBQUpwQyxNQUFNbkQ7SUFDVixJQUFLeEQsS0FBSUEsSUFBRWEsS0FBSWIsSUFBSztLQUNsQmUsSUFBSTBHLHVCQUF1QjFKLEdBQUdpQztLQUM5QixHQUFJZSxTQUFTO0tBQ2J5QyxJQUFJeXdCLGlCQUFpQmx6QjtLQUNyQixHQUFJeUMsU0FBU0EsS0FBS29LLE1BQU07S0FDeEJqSCxNQUFNaUgsT0FBT2pILE1BQU1uRDtLQUNuQixHQUFJbUQsTUFBTXl0QixXQUFXcnJCOztJQUV2QixHQUFJL0ksS0FBS2EsS0FBS2tJO0lBSWRwQyxNQUFNNUgsT0FBTzRIO0lBQ2IsR0FBS2lILGVBQWlCakgsWUFBWUEsS0FFaENvQztJQUNGLE9BQU9wQztHQUNUO0did0JBLFNBQVN1bUM7SUFDRSxJQUFMQztJQUNKLElBQVUsSUFBRm50QyxPQUFPQSxJQUFJaUoseUJBQXlCakosSUFBSTtLQUN0QyxJQUFKZ0csTUFBTW1uQztLQUNWQSxXQUFXNXNDLHVCQUF1QjBJLGlCQUFpQmpKLFVBQVVnRzs7SUFFL0QsT0FBT21uQztHQUNUO0dNckcyQjtJQUF2QkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dTb0lKLFNBQVNDLG1CQUFtQjdrQyxHQUFFeEksR0FBSyxPQUFPd0ksRUFBRXhJLE9BQUs7R3BCMlBqRCxTQUFTc3RDLGVBQWdCMXZDLEdBQUd3QixHQUFLLFVBQVN4QixLQUFLd0IsR0FBSTtHb0JwVG5ELFNBQVNtdUMsMEJBQTBCM3ZDLEdBQUVvQyxHQUFFZ0csS0FBSWxJO0lBQ3pDLEdBQUdGLEVBQUVvQyxVQUFRZ0csSUFBSyxDQUNoQnBJLEVBQUVvQyxTQUFPbEMsR0FDVDtJQUVGO0dBQ0Y7R0l2RkEsU0FBUzB2Qyx5QkFBeUIvbUIsSUFDaEMsT0FBT0EsUUFDVDtHVDZiQSxTQUFTZ25CLG9CQUFvQmg0QixJQUMzQixPQUFPZ1MsY0FBY2hTLElBQ3ZCO0dOdE1BLFNBQVNpNEIsZ0JBQWdCN29CLEtBQUk4b0IsSUFBR0MsSUFBR0MsSUFBR0MsSUFBR2xvQixJQUFHQztJQUMxQyxNQUFNRCxLQUFHQyxJQUFJQTtJQUNiRDtJQUNBQztJQUNBO0tBQUlrb0I7S0FBUUM7S0FBS0M7S0FBS0M7S0FBVUM7S0FDNUJDO0tBQ0F2dkIsT0FBU2dILEtBQUtELE1BQU16bkIsWUFBWTJ2QyxLQUFHRCxXQUFVTztLQUM3Q0MsU0FBU3hvQixLQUFLRCxNQUFNem5CLFVBQVUwZ0I7S0FDOUI3ZSxJQUFJNGxCLEtBQUt6bkI7SUFDYixJQUFVLElBQUQ2RCxPQUFJQSxLQUFHNmMsS0FBSTdjLElBQUk7S0FDdEJnc0M7TUFBT0wsS0FBTUcsS0FBSzN2QyxTQUFTNkIsS0FBTTdCLFNBQVM0dkMsTUFBTTV2QztRQUFZMHZDLEtBQUsxdkMsU0FBUzZCLEtBQU03QixTQUFTNHZDLE1BQU01dkM7S0FDL0Y2dkMsT0FBT0E7S0FDUEM7TUFBT0wsS0FBTUMsS0FBSzF2QyxTQUFTNkIsS0FBTTdCLFNBQVM0dkMsTUFBTTV2QztRQUFZMnZDLEtBQUszdkMsU0FBUzZCLEtBQU03QixTQUFTNHZDLE1BQU01dkM7S0FDL0Y4dkMsT0FBT0E7S0FDUCxHQUFJanNDO01BQ0Y2aUIsV0FBV21wQixNQUFNQzthQUNSQyxhQUFXRixRQUFRRyxhQUFXRixNQUN2Q3BwQixXQUFXbXBCLE1BQU1DO0tBRW5CQyxZQUFVRjtLQUNWRyxZQUFVRjtLQUNWanVDLEtBQUlxdUM7O0lBRU47R0FDRjtHQTRDQSxTQUFTQyxpQkFBaUIxd0MsR0FBRXdCLEdBQUUwdUMsSUFBR0QsSUFBR2pvQixJQUFHQztJQUMvQixJQUFGOW5CLElBQUlnTTtJQUNSaE07SUFDQTJ2QyxnQkFBZ0IzdkMsV0FBVUgsR0FBRUcsV0FBV3FCLEdBQUUwdUMsSUFBR0QsSUFBR2pvQixJQUFHQztJQUNsRDluQjtJQUNBO0dBQ0Y7R084TUEsU0FBU3d3QyxjQUFjaDRCLElBQUk2TTtJQUN6QkEsT0FBT0YsbUJBQW1CRTtJQUMxQixJQUFJb3JCLFdBQVdwckIsYUFDWGtMLFlBQ0FtZ0IsZUFDQWg0QjtJQUVKLEdBQUkrM0IsV0FBV2o0QjtLQUNiN1Y7SUFHRixHQUFJNlYsZUFBZ0I7S0FDbEIsSUFBVyxJQUFGdlcsT0FBT0EsSUFBSXd1QyxVQUFVeHVDLEtBQzVCc3VCLE1BQU10dUIsS0FBS29qQixLQUFLcGpCO0tBQ2xCLE1BQU9BLElBQUl1VyxnQkFBZ0J2VyxLQUN6QnN1QixNQUFNdHVCO0tBQ1J5dUMsV0FBV2w0QixjQUFjaTRCOztRQUNwQjtLQUNMLElBQVcsSUFBRnh1QyxPQUFPQSxJQUFJd3VDLFVBQVV4dUM7TUFDNUJzdUIsTUFBTS9YLGlCQUFpQmk0QixXQUFXeHVDLEtBQUtvakIsS0FBS3BqQjtLQUM5QyxJQUFXLElBQUZBLE9BQU9BLElBQUl1VyxpQkFBaUJpNEIsVUFBVXh1QyxLQUM3Q3N1QixNQUFNdHVCO0tBQ1J5dUMsV0FBV2w0QixpQkFBaUJBLGlCQUFpQmk0Qjs7SUFFL0MvM0IsTUFBTUYsVUFBVStYO0lBQ2hCO0tBQUl6UyxPQUFPUyxpQkFBaUJteUI7S0FDeEJweEIsbUJBQW1CM0IsNkJBQTZCbkY7S0FDaEQydUI7T0FBVzN1QjtTQUFpQkUsTUFBTTRHLG1CQUFtQjVHLE1BQU1vRixRQUFRd0I7SUFDdkUsT0FBT0Qsc0JBQXNCN0csU0FBU0EsV0FBV2s0QixVQUFVdko7R0FDN0Q7R0QvWEEsU0FBU3dKLGtCQUFrQjF1QyxHQUN6QixPQUFPQSxNQUNUO0dmZ0pBLFNBQVMydUMsNkJBQTZCN3RDO0lBQ3BDO0tBQ0UsSUFBSUQsTUFBTWttQyx1QkFBdUJqbUMsSUFDN0JtRCxXQUFXcUQsTUFBTXpHO0tBQ3JCLElBQVcsSUFBRmIsT0FBT0EsSUFBSWEsS0FBS2IsS0FBS2lFLEtBQUtqRSxLQUFLMFksVUFBVTFZO0tBQ2xELE9BQU8yWSxjQUFjN1gsR0FBR21ELE1BSm5CO0dBS1Q7R2dCUEEsU0FBUzJxQyxhQUFhcjRCLElBQ3BCLE9BQU9BLFFBQ1Q7R0l4VEEsU0FBU3M0QjtJQUNQLGdCQUFnQi90QyxFQUFHbEQsR0FBSyxPQUFPeWEsY0FBY3ZYLFFBQVFsRCxJQUE5QztHQUNUO0dwQnlOQSxTQUFTa3hDLGlCQUFpQmh1QyxHQUFHeUQ7SUFDM0IsT0FBUUE7O09BQ0EsT0FBT3pEOztPQUNQLE9BQU9BLEVBQUd5RDs7T0FDVixPQUFPekQsRUFBR3lELE1BQUtBOztPQUNmLE9BQU96RCxFQUFHeUQsTUFBS0EsTUFBS0E7O09BQ3BCLE9BQU96RCxFQUFHeUQsTUFBS0EsTUFBS0EsTUFBS0E7O09BQ3pCLE9BQU96RCxFQUFHeUQsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O09BQzlCLE9BQU96RCxFQUFHeUQsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O09BQ25DLE9BQU96RCxFQUFHeUQsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O0lBRWhELE9BQU96RCxRQUFRa0QsTUFBTWtmLG1CQUFtQjNlO0dBQzFDO0dhNUtBLFNBQVN3cUMsb0JBQW9CQyxNQUFRLFNBQVU7R0UraUIvQyxTQUFTQyxZQUFZMXFDLEdBQUd6RztJQUd0QnlHLElBQUlxSCxPQUFPckg7SUFDWHpHLElBQUk4TixPQUFPOU47SUFDWCxJQUFJOFgsT0FBT2hLLFdBQ1BpSyxNQUFNaks7SUFDVixHQUFHOU4sZUFBZStYLE1BQ2hCO0lBQ0YsR0FBSS9YLFNBQVM4WCxTQUFTclIsZUFBZXNSLE1BQU0sT0FDbEN0UjtJQUVULEdBQUl6RyxTQUFTOFgsU0FBU3JSLFNBQVNxUixPQUM3QnJYO0lBRUY7S0FBSVgsSUFBSW93QixtQkFBbUJ6cEIsR0FBR3pHO0tBQzFCRSxJQUFJNE4sT0FBT2hPO0tBQ1hzVixNQUFNdEgsT0FBT3JILFlBQVl2RyxPQUFPRjtJQUNwQyxHQUFHb1YsT0FBTzBDLE9BQU8xQyxNQUFNQSxRQUFRcFY7SUFDL0IsR0FBR0UsS0FBSzRYLE9BQU81WCxJQUFJQSxNQUFNRjtJQUN6QixHQUFHb1YsV0FBVzJDLE1BQU0sT0FDWE4sZUFBZXZYO0lBRXhCTztHQUNGO0dBeE1BLFNBQVMyd0MsVUFBVXo1QixJQUFJK0QsSUFBSTIxQjtJQUN6QixJQUFJdjVCLE9BQU9oSyxXQUNQaUssTUFBTWpLO0lBQ1Y2SixLQUFLN0osT0FBTzZKO0lBQ1orRCxLQUFLNU4sT0FBTzROO0lBQ1oyMUIsS0FBS3ZqQyxPQUFPdWpDO0lBQ1osR0FBR0EsVUFBVXY1QixPQUFPclg7SUFDcEIsR0FBRzR3QyxnQkFBZ0J0NUIsTUFBTTtJQUN6QixHQUFHMkQsVUFBVTVELE9BQU87SUFDcEIsR0FBRzRELFNBQVU7S0FDWCxJQUFJNDFCLE1BQU14akMsT0FBT3FqQyxZQUFZeDVCLElBQUkwNUIsTUFDN0JueEMsSUFBSW94QyxXQUFXNTFCLGFBQWEyMUI7S0FDaEMsR0FBR254QyxLQUFLNFgsT0FBTzVYLElBQUlBLE1BQU1teEM7S0FDekIsT0FBTzU1QixlQUFldlg7O1FBQ2pCO0tBQ0MsSUFBRkEsSUFBSTROLE9BQU82SixXQUFXK0QsSUFBSTIxQjtLQUM5QixHQUFHbnhDLEtBQUs0WCxPQUFPNVgsSUFBSUEsTUFBTW14QztLQUN6QixPQUFPNTVCLGVBQWV2WDs7R0FFMUI7R0FpRUEsU0FBU3F4QyxjQUFjNTVCLElBQUkrRCxJQUFJMjFCO0lBQzdCQSxLQUFLdmpDLE9BQU91akM7SUFFSixJQUFKdDVCLE1BQU1qSztJQUNWLEdBQUlBLE9BQU80TixPQUFPM0Q7S0FDaEJuVjtJQUVGLEtBQUtrTCxPQUFPdWpDLFFBQVF0NUIsWUFBWUE7S0FDOUJuVjtJQUVGLE9BQU93dUMsVUFBVXo1QixJQUFJK0QsSUFBSTIxQjtHQUMzQjtHZjVoQkEsU0FBU0csa0JBQW1CeHVDLEdBQUssT0FBTzZYLGNBQWM3WCxRQUFTO0dRb1UvRCxTQUFTeXVDLG1CQUFtQmhtQyxNQUFNQyxNQUFNRSxNQUFNQztJQUM1QyxHQUFHSixVQUFVQyxRQUFRRSxVQUFVQyxPQUFPO0lBQ3RDLEdBQUdKLFVBQVVDLFFBQVFFLFVBQVVDLE9BQU87SUFDdEM7R0FDRjtHSTFHQSxTQUFTNmxDLGNBQWVoa0MsUUFBUTVKLEdBQUc1QixHQUFHL0I7SUFDN0IsSUFBSHNZLEtBQUtqUiwwQkFBMEIxRDtJQUNuQyxPQUFPcW1DLG9CQUFvQno4QixRQUFRK0ssSUFBSXZXLEdBQUcvQjtHQUM1QztHSDRPQSxTQUFTd3hDLG1CQUFtQkM7SUFDMUIzbUM7O0dBQ0Y7R0FQQSxTQUFTNG1DLHdCQUF3QixTQUFRO0dlM2R6QyxTQUFTQyx3QkFBd0I5d0MsR0FBRzJuQjtJQUNsQyxPQUFPOEwsd0JBQXdCenpCLEdBQUUybkI7R0FDbkM7R3pCeUNBLFNBQVNvcEIsc0JBQXVCanVDO0lBQUs3Qiw2QkFBNkI2QjtJQUFHO0dBQVU7R09VL0UsU0FBU2t1QyxvQkFBcUI7R1J1TzlCLFNBQVNDO0lBQ1AsV0FBV3h2Qyx1QkFBdUJpcEI7R0FDcEM7R0FkQSxTQUFTd21CO0lBQ1AsV0FBV3p2QztHQUNiO0dzQjlLQSxTQUFTMHZDLG1CQUFtQnJ5QyxHQUMxQixTQUNGO0dSSkEsU0FBU3N5QztJQUNELElBQUZqeUM7SUFDSixJQUFVLElBQUY4QyxPQUFPQSxJQUFJaUsseUJBQXlCaks7S0FBSTtPQUMzQ2lLLGlCQUFpQmpLLE1BQU1pSyxpQkFBaUJqSztVQUFhaUssaUJBQWlCaks7TUFDdkU5QyxRQUFLK00saUJBQWlCakssT0FBTTlDO0lBRWhDLE9BQU9BO0dBQ1Q7R1YrS0EsU0FBU2t5QyxpQkFBa0J2eUMsR0FBSyxPQUFPTyxXQUFXUCxHQUFJO0dhMk50RCxTQUFTd3lDLFVBQVUzNkI7SUFDakIsSUFBSWxSLElBQUlxSCxPQUFPNkosWUFBWXRYLGtCQUN2Qmt5QztJQUNKLElBQVcsSUFBRnJ3QyxPQUFPQSxJQUFJdUUsZ0JBQWdCdkU7S0FDbENxd0MsTUFBTXA0QixrQkFBa0JvNEIsS0FBSzlyQyxRQUFRdkU7SUFFdkMsR0FBR3VFLHlCQUNEOHJDLE1BQU1wNEIsa0JBQWtCbzRCO0lBRTFCLEdBQUc5ckMsY0FDRDhyQyxNQUFNQTtJQUVSLE9BQU9BO0dBQ1Q7R0h1QkEsU0FBU0MsYUFBYTlrQztJQUNYLElBQUxOLE9BQU9GLGlCQUFpQlE7SUFDNUIsT0FBT04sY0FBY0E7R0FDdkI7R1kxZ0JBLFNBQVNxbEMsMEJBQTBCMVk7SUFDMUIsSUFBSDBPLFNBQVN2aEMsV0FBVzZ5QjtJQUN4QixPQUFPemEsOEJBQThCbXBCLFlBQVlBO0dBQ25EO0dObUZBLFNBQVNpSyxTQUFTNXlDLEdBQUV3QixHQUNsQixHQUFJQSxRQUFRYiwwQkFDWixPQUFPWCxJQUFFd0IsRUFDWDtHRmxGQSxTQUFTcXhDLGVBQ1AsU0FDRjtHVmdDQSxTQUFTQywwQkFBMEI5eUMsR0FBSSxPQUFPQSxFQUFFO0dvQnNOaEQsU0FBUyt5QyxnQkFBZ0I1ekIsSUFBR2hmLEdBQUVtSTtJQUM1QixHQUFHQSxXQUFXQSxNQUFNc0Isc0JBQXNCeko7S0FDeEMyQztJQUNNLElBQUppRyxNQUFNdThCLFNBQVNubUIsSUFBSWhmLEdBQUdtSTtJQUMxQixPQUFJUyxNQUFZQTtHQUVsQjtHZmhKQSxTQUFTaXFDLGdCQUFpQm5xQixJQUFJem1CLEdBQUtwQixTQUFTNm5CLElBQUk3bkIsU0FBU29CLEVBQUc7R0FDNUQ0d0M7d0JBQ3VCLE9BQU9wckIsY0FBYzVtQixRQUFPQSxVQUExQzt3QkFDYyxPQUFPNG1CLGNBQWM1bUIsUUFBT0Esc0JBQTFDOzs7TUFFTCxJQUFJYixJQUFJYSxRQUFRb0IsSUFBSXBCO01BQ3BCQSxTQUFTb0I7TUFDVCxPQUFRd2xCLGNBQWN6bkIsR0FBRWlDLFVBQVd3bEIsY0FBY3puQixHQUFFaUM7S0FIN0M7OztNQU1OLElBQUlqQyxJQUFJYSxRQUFRb0IsSUFBSXBCO01BQ3BCQSxTQUFTb0I7TUFDVCxPQUFRd2xCLGNBQWN6bkIsR0FBRWlDLGlCQUFrQndsQixjQUFjem5CLEdBQUVpQztLQUhwRDs7O01BTU4sSUFBSWpDLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULFFBQVN3bEIsY0FBY3puQixHQUFFaUMsV0FBZXdsQixjQUFjem5CLEdBQUVpQztlQUMvQ3dsQixjQUFjem5CLEdBQUVpQztlQUFjd2xCLGNBQWN6bkIsR0FBRWlDOztLQUpqRDs7O01BT04sSUFBSWpDLElBQUlhLFFBQVFvQixJQUFJcEI7TUFDcEJBLFNBQVNvQjtNQUNULE9BQVF3bEIsY0FBY3puQixHQUFFaUMsV0FBZXdsQixjQUFjem5CLEdBQUVpQztlQUNwRHdsQixjQUFjem5CLEdBQUVpQztlQUFjd2xCLGNBQWN6bkIsR0FBRWlDO0tBSjNDOztjQU1VYTtNQUNoQixJQUFJYixJQUFJcEIsUUFDSnVPLFVBQVU3RixNQUFNekc7TUFDcEIsSUFBVSxJQUFGbUIsT0FBT0EsSUFBSW5CLEtBQUttQixLQUN0Qm1MLElBQUluTCxLQUFLd2pCLGNBQWM1bUIsUUFBUW9CLElBQUVnQztNQUVuQ3BELFNBQVNvQixJQUFJYTtNQUNiLE9BQU8wMUIscUJBQXFCcHBCO0tBUHRCOztjQVNpQnRNO01BQ3ZCLElBQUliLElBQUlwQixRQUNKSSxTQUFTSixZQUFZb0I7TUFDekJwQixTQUFTb0IsSUFBSWE7TUFDYixPQUFPakMscUJBQXFCSSxRQUFRQSxTQUFTNkI7S0FKaEM7R0Y2UGpCLFNBQVNnd0MsbUJBQW1CNW1DO0lBQ2pCLElBQUwzRDtJQUNKLElBQVMsSUFBRHRHLE9BQUtBLElBQUVpSyxXQUFVakssSUFBSTtLQUMzQnNHLEtBQUt0RztLQUNMLElBQVMsSUFBRGdDLE9BQUtBLElBQUVpSSxVQUFTakksSUFBSTtNQUMxQjtPQUFJd0csSUFBSXhJLEtBQUdpSyxnQkFBZWpJO09BQ3RCaEUsSUFBSWlNLFFBQVF6QjtPQUNaK1AsSUFBSXRPLFFBQVF6QjtPQUNaNUcsSUFBSXFJLFFBQVF6QjtNQUNoQmxDLEtBQUt0RyxPQUFLZ0MsVUFBUWhFLFlBQVl1YSxVQUFVM1c7OztJQUc1QyxPQUFPMEU7R0FDVDtHTzVEQSxTQUFTd3FDLG9CQUFvQnY2QixJQUFJdlc7SUFDdkIsSUFBSnlXLE1BQU1GLFVBQVUyTSxtQkFBbUJsakI7SUFDdkMsT0FBT3VXLE9BQU9FO0dBQ2hCO0dWeFVBLFNBQVNzNkIsb0JBQXFCO0dQWDlCLFNBQVNDLCtCQUFrQyxTQUFVO0dHZ1lyRCxTQUFTQyxrQkFBbUJyd0MsS0FBS2hEO0lBQy9CLFNBQVNzekMsUUFBUXR6QyxHQUFFdXpDO0tBQ2pCLEdBQUloekMsU0FBU1A7TUFBVSxPQUNkQSxVQUFVdXpDO1NBQ1o7TUFDQyxJQUFGaCtCLElBQUk4QixTQUFTclg7TUFDakIsR0FBSXVWLE9BQVE7T0FDVkE7T0FDQXZWLEtBQUtPLGFBQVlnVjtPQUNqQnZWLEtBQUssSUFBSzBKLE1BQU02TDtPQUNoQixHQUFHZytCLFFBQ0R2ekMsSUFBSUEsVUFBVSxJQUFLMEosTUFBTTZwQztPQUUzQixPQUFPdnpDOzs7T0FFSixPQUFPQSxVQUFVdXpDOztJQUUxQjtJQUNBLElBQUlwekMsR0FBRytDLElBQUlILGtCQUFrQkMsTUFDekJ3d0MsT0FBUXR3QyxpQkFBY0E7SUFDMUIsR0FBSWxELFNBQVVBLGNBQVlBLE9BQU1zVCxTQUFXLENBQUVwUSxjQUFhbEQsTUFBS0E7SUFDL0QsR0FBSW1OLE1BQU1uTixHQUFJO0tBQUVHO0tBQVcrQzs7Y0FDakJnSyxTQUFTbE4sR0FBSTtLQUFFRztLQUFXK0M7OztLQUVsQyxPQUFRQTs7UUFFTixJQUFJL0MsSUFBSUgsZ0JBQWdCd3pDLE9BRXBCcHhDLElBQUlqQztRQUNSLEdBQUlBLFNBQVNpQztTQUNYakMsSUFBSUEsV0FBWWlDLGVBQWVqQyxRQUFTaUM7UUFDMUM7O1FBRUFqQyxJQUFJbXpDLFFBQVF0ekMsR0FBR3d6QyxPQUFPOztRQUV0QkEsT0FBT0EsT0FBS0E7UUFDWnJ6QyxJQUFJSCxnQkFBZ0J3ekM7UUFDcEIsSUFBSXB2QyxJQUFJakUsZ0JBQ0prVCxRQUFPbFQsUUFBUWlFO1FBQ25CLEdBQUlpUCxhQUFZclQsYUFBYUEsc0JBQXNCd3pDLEtBQU07U0FFakQsSUFBRnB4QyxJQUFJZ0M7U0FBTyxNQUFPakUsU0FBU2lDLFdBQVdBO1NBQzFDLEdBQUlqQyxTQUFTaUMsV0FBV0E7U0FDeEJqQyxJQUFJQSxXQUFXaUMsU0FBU2pDLFFBQVFpRTtTQUNoQ2hDLElBQUlqQztTQUNKLEdBQUlBLFNBQVNpQztVQUNYakMsSUFBSUEsV0FBWWlDLGVBQWVqQyxRQUFTaUM7U0FDMUM7O1lBQ0s7U0FDQyxJQUFGc0IsSUFBSTh2QztTQUNSLEdBQUluZ0MsUUFBUztVQUFFM1AsS0FBSzJQO1VBQVNsVCxJQUFJSCxVQUFVMEQ7OztVQUN0QyxNQUFPdkQsSUFBSUgsVUFBVTBELElBQUl2RCxXQUFXcXpDLFVBQVU5dkM7U0FDbkQsR0FBSUEsRUFBRztVQUVDLElBQUZ0QixJQUFJakM7VUFBYyxNQUFPQSxTQUFTaUMsV0FBV0E7VUFDakQsR0FBSWpDLFNBQVNpQyxXQUFXQTtVQUN4QmpDLElBQUlBLFdBQVdpQzs7O1FBR25COztJQUVKLE9BQU9nQix1QkFBdUJGLEdBQUcvQztHQUNuQztHR2xWQSxTQUFTc3pDLG9CQUFvQnB1QyxNQUFLbkM7SUFDaEM7S0FBSXdCLE9BQU9hLGVBQWVGO0tBQ3RCQSxPQUFPRCxvQkFBb0JWO0lBQy9CMkcsNkJBQTRCaEcsa0JBQWdCeUQsYUFBYXpELE1BQUtuQztJQUM5RDtHQUNGO0dVdVNBLFNBQVN3d0MsZ0JBQWdCNzdCO0lBQ3ZCQSxLQUFLN0osT0FBTzZKO0lBQ1osT0FBSUEsV0FBVzdKO2VBQXVDNkosV0FBVzdKOzs7R0FJbkU7R0F4REEsU0FBUzJsQyxXQUFXOTdCLElBQUkrRCxJQUN0QixPQUFPNU4sT0FBTzZKLFdBQVc3SixPQUFPNE4sYUFDbEM7R0E4WkEsU0FBU2c0QixjQUFjNzdCO0lBQ3JCQSxJQUFJL0osT0FBTytKO0lBQ0YsSUFBTEMsT0FBT2hLO0lBQ1gsR0FBSStKLEtBQUtDO0tBQ1BsVjtJQUVGO0tBQUltQyxPQUFPK0ksT0FBTzhKLFVBQVVDO0tBQ3hCa2YsTUFBTWh5QixjQUFjQTtLQUNwQjR1QyxPQUFPOTdCLFdBQVdrZjtJQUN0QixXQUFXdGYsZUFBZTFTLE9BQU8wUyxlQUFlazhCO0dBQ2xEO0dwQjNJQSxTQUFTQyxxQkFBcUJoc0MsSUFBSUUsSUFDaEMsT0FBUUYsS0FBS0UsV0FDZjtHQXBIQSxTQUFTK3JDLHdCQUF3QmpzQyxJQUFJRSxJQUNuQyxPQUFPOHJDLHFCQUFxQjlyQyxJQUFJRjtHQUNsQztHdUI1ZEEsU0FBU2tzQyxTQUFTaDBDLEdBQUV3QjtJQUNsQixHQUFJQSxRQUFRYjtJQUNaLE9BQVFYLElBQUV3QjtHQUNaO0dFL0JBLFNBQVN5eUMsYUFBY2owQztJQUNyQixJQUFJSyxJQUFJTCxVQUNKMkcsUUFBUStDLE1BQU1ySjtJQUNsQixJQUFVLElBQUYrQixPQUFPQSxJQUFJL0IsR0FBRytCLEtBQU11RSxFQUFFdkUsS0FBS3BDLEVBQUVvQztJQUNyQyxPQUFPdUU7R0FDVDtHVWlGQSxTQUFTdXRDLHdCQUF3QmwwQztJQUMvQixPQUFHQSxFQUFFMnlCLDJCQUEyQnp3Qjs7a0JBR25CK3hDLGFBQWFqMEMsRUFBRTJ5QjtHQUM5QjtHakJoR0EsU0FBU3doQixtQkFBbUJDLE1BQUtDLFlBQVdDLFNBQzFDLFNBQ0Y7R0V5bkJBLFNBQVNDLG9CQUFvQng4QjtJQUMzQkEsSUFBSS9KLE9BQU8rSjtJQUNYLEdBQUlBLEtBQUsvSixZQUFZO0lBR1osSUFBTC9JLE9BQU8rSSxPQUFPOEosVUFBVUM7SUFDNUIsT0FBSTlTLGNBQWNBLFNBQVM4UztHQU03QjtHakJoaUJBLFNBQVN5OEIsa0JBQW1CN3RDLEdBQzFCLFdBQVc4ZCxjQUFjQSxXQUMzQjtHdUJ2SEEsU0FBU2d3Qix3QkFBd0JDLE9BQy9CLFNBQ0Y7R3JCeUlBLFNBQVNDLGdCQUFnQjMwQyxHQUFLLFNBQVFBLEVBQUc7R1M4UXpDLFNBQVM0MEMscUJBQXFCNTBDLEdBQUV3QjtJQUN4QixJQUFGckIsSUFBSWdNO0lBQ1IsT0FBT2hNLDBCQUEwQkgsR0FBRXdCO0dBQ3JDO0dxQjFXQSxTQUFTcXpDLHVCQUF1QjcwQyxHQUFHb0M7SUFDakMsR0FBR0EsU0FBUzZwQix1QkFBdUI3cEIsS0FBS3BDO0tBQ3RDOEM7SUFDSSxJQUFGdEIsSUFBSWt0QixrQkFBa0IxdUIsR0FBR29DO0lBQzdCLEdBQUlaLFNBQVMsT0FBT0E7SUFDZCxJQUFGdVcsSUFBSXZXO0lBQ1IsR0FBSXVXLGFBQWFyTyxPQUFPLFdBQVd1cUMsYUFBYWw4QjtJQUNoRCxPQUFPdlc7R0FDVDtHUnNKQSxTQUFTc3pDLGNBQWU5MEMsR0FBR3dCLEdBQUssVUFBU2dnQixpQkFBaUJ4aEIsR0FBRXdCLGVBQWU7R3ZCL00zRSxTQUFTdXpDLCtCQUFpQyxTQUFTO0dnQmdObkQsU0FBU0Msa0JBQWtCbjlCLElBQU0sT0FBTzRjLFlBQVk1YyxJQUFJO0dsQmpIeEQsU0FBU285QixtQkFBbUJDO0lBQzFCLElBQUlDO0lBQ0osTUFBTUQ7S0FBSyxHQUNONXdDLHdCQUF3QjR3QyxxQkFBc0IsQ0FDL0NDLE9BQU9ELFdBQ1A7O01BRUdBLE1BQU1BO0lBRVAsSUFBRjkwQztJQUNKLEdBQUcrMEM7S0FBTSxJQUNHLElBQUYveUMsT0FBT0EsSUFBSSt5QyxhQUFhL3lDO01BQzlCaEMsRUFBRWtFLHdCQUF3QjZ3QyxLQUFLL3lDLFVBQVUreUMsS0FBSy95QztJQUdsRCxPQUFPaEM7R0FDVDtHQUtBLFNBQVNnMUMscUJBQXNCbDFDLEdBQUdpRSxHQUFHa3hDO0lBQ25DLEdBQUlBLFNBQVU7S0FDSCxJQUFMaHdDLE9BQU9nd0M7S0FDWCxHQUFHcHpDO01BQ0QvQixJQUFJNmEsY0FBYzlZLDJCQUEyQm9EO2FBRXRDM0UscUJBQXNCO01BQzdCLEtBQUlBO09BQ0ZBLDJCQUEyQnUwQyxtQkFBbUJ2MEM7TUFFeEMsSUFBSjQwQyxNQUFNNTBDLHlCQUF5QjJFO01BQ25DLEdBQUdpd0M7T0FDRHAxQyxJQUFJbzFDOztPQUVKbnFDLHVEQUF1RDlGOzs7SUFJN0QzRSxpQkFBaUJSLFNBQVNpRTtJQUMxQixHQUFHa3hDLFVBQVUzMEMsaUJBQWlCMjBDLFlBQVlseEM7R0FDNUM7R1d1Q0EsU0FBU294QyxTQUFTNXBDLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU1DLE1BQU02VyxNQUFNRyxNQUFNQyxNQUFNd3lCO0lBQ3RELElBQU56bEM7SUFDSixJQUFVLElBQUYzTixPQUFPQSxJQUFJb3pDLE1BQU1wekM7S0FDdkIyTjtNQUFTK1M7UUFBZW5YLE1BQU1DLE9BQUt4SixHQUFHeUosT0FBS3pKLEdBQUcwSixNQUFNQyxNQUFNNlcsTUFBTUcsTUFBTUMsT0FBSzVnQjtJQUU3RSxPQUFPMk47R0FDVDtHQU1BLFNBQVMwbEMsV0FBVzlwQyxNQUFNQyxNQUFNQyxNQUFNQyxNQUFNQyxNQUFNNlc7SUFDdEMsSUFBTjdTO0lBQ0pBLFNBQVM0UyxRQUFRaFgsTUFBTUMsTUFBTUMsTUFBTUYsTUFBTUMsTUFBTUM7SUFDL0NrRSxTQUFTd2xDLFNBQVM1cEMsTUFBTUMsTUFBTUMsTUFBTUMsTUFBTUMsTUFBTTZXLE1BQU05VyxNQUFNQyxNQUFNNlc7SUFDbEUsT0FBTzdTO0dBQ1Q7R1JwREEsU0FBUzJsQyxtQkFBbUIxMUMsR0FBSyxPQUFPQSxFQUFHO0c0QnBFM0MsU0FBUzIxQyx1QkFBdUIxeUM7SUFDOUIsR0FBSUEsU0FBU3lLO0lBQ2IsSUFBSXpLLE1BQU1BLGFBQ05lLFFBQVEwRixNQUFNekc7SUFDbEJlO0lBQ0EsSUFBVyxJQUFGNUIsT0FBT0EsSUFBSWEsS0FBS2IsS0FBSzRCLEVBQUU1QjtJQUNoQyxPQUFPNEI7R0FDVDtHZnZHQSxTQUFTNHhDO0lBQ1A7R0FDRjtHQWtFQSxTQUFTQyxzQkFBc0IzMUMsR0FBSyxTQUFVO0dmb0Y5QyxTQUFTNDFDLHFCQUFxQnB6QyxLQUM1QitoQixZQUFZL2hCLEtBQ1osU0FDRjtHc0J2RXNCLElBQWxCcXpDO0dBQ0osU0FBU0MsdUJBQXdCQyxLQUFLeDFDLEtBQUt5MUM7SUFDekMsSUFBSUMsUUFBUUYsUUFDUnA5QixNQUFNazlCLGtCQUFrQkc7SUFDNUIsR0FBSXI5QixRQUFRM1c7S0FBVyxJQUVWLElBQUZFLElBQUkyekMsMEJBQTBCM3pDLElBQUk4ekMsU0FBUzl6QztNQUNsRDJ6QyxrQkFBa0IzekM7WUFDWCt6QyxNQUFNdDlCLFNBQVNwWSxLQUFLLE9BQ3RCMDFDLE1BQU10OUI7SUFFZixJQUFJdTlCLFFBQVFyMUMsS0FBS28xQyxrQkFBa0JyMUM7SUFDbkMsTUFBT3MxQyxLQUFLcjFDLEdBQUk7S0FDZEQsS0FBT3MxQyxLQUFHcjFDO0tBQ1YsR0FBSU4sTUFBTTAxQyxNQUFNcjFDLFNBQU9DLEtBQUtELGFBQ3ZCczFDLEtBQUt0MUM7O0lBRVppMUMsa0JBQWtCRyxXQUFXRTtJQUU3QixPQUFRMzFDLE9BQU8wMUMsTUFBTUMsVUFBUUQsTUFBTUM7R0FDckM7R0c5RUEsU0FBU0M7SUFDUDtLQUFJbHpDLElBQUk4MEI7S0FDSjF1Qjs7Ozs7Ozs7Ozs7Ozs7O0lBRUosU0FBU3JHLElBQU07SUFDZixJQUFXLElBQUZkLE9BQU9BLElBQUltSCxVQUFVbkgsS0FBSyxLQUFLZSxFQUFFb0csRUFBRW5ILEtBQUtlLEVBQUVvRyxFQUFFbkgsTUFBSWM7SUFDekQsT0FBT0M7R0FDVDtHekIwRUEsU0FBU216Qyx1QkFBdUJqeEMsTUFDOUIsT0FBT29HLGdCQUFpQnBHLE1BQzFCO0djQUEsU0FBU2t4QywyQkFBNEJwc0M7SUFDMUIsSUFBTHZCLE9BQU84bUIsYUFBYXZsQjtJQUN4QixHQUFHdkIsbUJBQW1CckIsNkJBQTRCNEM7SUFDbEQ7S0FBSXFzQyxTQUFTcHdDO0tBQ1Rxd0M7Y0FDRzd0QztnQkFDRUEsb0JBQWtCQTtZQUN0QnVCOzs7OztvQkFLUS9DO2dCQUNKb3ZDO0lBRVRwcEMsaUJBQWlCcXBDLGNBQVlBO0lBQzdCLE9BQU9BO0dBQ1Q7R1loSUEsU0FBU0MseUJBQXlCLzlCO0lBQ3pCO0tBQUhnd0I7O1FBQVN2aEM7U0FBV3VSLFdBQVdBLGVBQWVBLFlBQVlBO0lBQzlELE9BQU82Ryw4QkFBOEJtcEIsWUFBWUE7R0FDbkQ7R3RCb1FBLFNBQVNnTyxpQkFBa0IzMkMsR0FBSyxPQUFPTyxXQUFXUCxHQUFJO0dhdVB0RCxTQUFTNDJDLGFBQWEvK0I7SUFDcEIsSUFBSXpYLElBQUk0TixhQUNKNm9DLFFBQVE3b0MsYUFDUmdDLE9BQU9oQztJQUNYLElBQVUsSUFBRjVMLE9BQU9BLElBQUl3SCxzQkFBc0JpTyxLQUFLelYsSUFBSTtLQUMxQyxJQUFGd0QsSUFBSWlFLHVCQUF1QmdPLElBQUd6VjtLQUNsQ2hDLElBQUk0TixPQUFPZ0MsZUFBZXBLLE9BQU94RjtLQUNqQzRQLE9BQU9oQyxPQUFPZ0MsZUFBZTZtQzs7SUFFL0IsT0FBT2wvQixlQUFldlg7R0FDeEI7R2Z4UUEsU0FBUzAyQyxpQkFBaUIzekMsR0FBR3dEO0lBQzNCLE9BQVFBOztPQUNBLFdBQVd4RDs7T0FDWCxXQUFXQSxFQUFHd0Q7O09BQ2QsV0FBV3hELEVBQUd3RCxNQUFLQTs7T0FDbkIsV0FBV3hELEVBQUd3RCxNQUFLQSxNQUFLQTs7T0FDeEIsV0FBV3hELEVBQUd3RCxNQUFLQSxNQUFLQSxNQUFLQTs7T0FDN0IsV0FBV3hELEVBQUd3RCxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQTs7T0FDbEMsV0FBV3hELEVBQUd3RCxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQTs7T0FDdkMsV0FBV3hELEVBQUd3RCxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQSxNQUFLQTs7SUFFcEQsU0FBU293QyxJQUFNLE9BQU81ekMsUUFBUW5DLE1BQU0yRixHQUFJO0lBQ3hDb3dDLGNBQWM1ekM7SUFDZCxXQUFXNHpDO0dBQ2I7R1F6SUEsU0FBU0MsZUFBZXo4QixLQUFLMUIsS0FBSzVWO0lBQ2hDLElBQVUsSUFBRmIsT0FBT0EsSUFBSWEsS0FBS2I7S0FDdEJtWSxTQUFTMUIsTUFBSXpXLG9CQUFtQm1ZLFNBQVMxQixNQUFJelc7R0FFakQ7R09iQSxTQUFTNjBDLFlBQVlwL0IsSUFBSStEO0lBQ3ZCLE9BQU9qRSxlQUFlM0osT0FBTzZKLFFBQVE3SixPQUFPNE47R0FDOUM7R014Sm9CLElBQWhCczdCO0dBSUosU0FBU0Msb0JBQW9CeHdDLEdBQzNCdXdDLGtCQUFrQnZ3QyxFQUNwQjtHRCtNQSxTQUFTeXdDLHNCQUFzQnhzQztJQUM3QixPQUFRdVEsYUFBYXZRLFlBQVdBLE9BQUtBO0dBQ3ZDO0dHM0xvQixJQUFoQnlzQztHQUNKLFNBQVNDLG9CQUFxQm4zQztJQUM1QixLQUFLazNDLHlCQUF5QmwzQyxJQUFJLE9BQU9BO0lBQ3pDLE9BQU9BLFVBQVVrM0M7Y0FDTkE7YUFDQUE7R0FDYjtHUDJVQSxTQUFTRSxjQUFjNStCLElBQ3JCLE9BQU8yWixZQUFZM1osT0FDckI7R2hCVkEsU0FBUzYrQixxQ0FBcUN0MEM7SUFDNUM7S0FDRSxJQUFJRCxNQUFNNlgsa0JBQ056VSxXQUFXcUQsTUFBTXpHO0tBQ3JCLElBQVcsSUFBRmIsT0FBT0EsSUFBSWEsS0FBS2IsS0FBS2lFLEtBQUtqRSxLQUFLMFksVUFBVTFZO0tBQ2xELE9BQU8yWSxjQUFjN1gsSUFBR2xDLE1BQUtxRixPQUp4QjtHQU1UO0dFbkZBLFNBQVNveEMsZ0JBQWlCejNDLEdBQUssT0FBT08sVUFBVVAsR0FBSTtHQTdFcEQsU0FBUzAzQyxpQkFBa0IxM0MsR0FBRXFUO0lBQzNCQTtJQUNBLEdBQUlBLFdBQVk7S0FDZEE7S0FDQXJULEtBQUtPO0tBQ0wsR0FBSThTLFdBQVksQ0FDZEEsYUFDQXJULEtBQUtPOztJQUdULEdBQUk4UyxhQUFhLENBQ2ZBLGFBQ0FyVCxLQUFLTztJQUVQUCxLQUFLTyxZQUFZOFM7SUFDakIsT0FBT3JUO0dBQ1Q7R081TEEsU0FBUzIzQyxrQkFBa0Ixd0I7SUFDekIvYSxnQkFBYythO0lBQ2R3aEI7SUFDQTtHQUNGO0dNODJCQSxTQUFTbVAsc0JBQXNCajRCLFFBQVEvQjtJQUNyQyxJQUFJaTZCO0lBQ0osT0FBT2w0Qjs7T0FDQ2s0QixlQUFlOztPQUNmQSxnQkFBZ0I7ZUFDZjFzQzs7SUFFVCxJQUFJbEksTUFBTTBjLGtCQUNOM2YsSUFBSWdPO0lBQ1IsSUFBVSxJQUFGNUwsT0FBT0EsSUFBSWEsU0FBU2IsSUFBSTtLQUN4QixJQUFGWixJQUFJd00sT0FBTzJSO0tBQ2ZuZSxJQUFJQSxNQUFPbWU7S0FDWG5lLElBQUlBLE1BQU9tZTtLQUNYbmUsSUFBSUEsTUFBUW1lO0tBQ1ozZixJQUFJd0IsWUFBWVksWUFBWXBDOztJQUU5QixHQUFHNjNDLFFBQVE3M0MsSUFBSUE7SUFDZjRkLFFBQVEzYTtJQUNSLE9BQU8wVSxlQUFlM1g7R0FDeEI7R0F2R0EsU0FBUzgzQyxvQkFBb0IvL0I7SUFDM0JBLElBQUkvSixPQUFPK0o7SUFDWCxJQUFJQyxPQUFPaEssV0FDUGlLLE1BQU1qSztJQUNWLEdBQUkrSixTQUFTQyxPQUFPO0lBSWQsSUFBRjVWO0lBQ0oyVixJQUFJQSxNQUFNQTtJQUNWLElBQUszVixTQUFRMlYsU0FBUy9KLGNBQWM1TCxLQUNsQzJWLElBQUlBO0lBRU4sT0FBTzNWO0dBQ1Q7R2Z2Z0JBLFNBQVMyMUMsNkJBQTZCQyxPQUFPOTBDO0lBQzNDO0tBQ0U7TUFBSWhELElBQUk0YTtNQUNKelUsV0FBV3FELE1BQU1zdUM7TUFDakIvMEMsTUFBTTFDLFNBQVN1YSxrQkFBa0JrOUI7S0FDckMsSUFBVyxJQUFGNTFDLE9BQU9BLElBQUlhLEtBQUtiLEtBQUtpRSxLQUFLakUsS0FBSzBZLFVBQVUxWTtLQUNsRCxPQUFPMlksY0FBYzdYLEdBQUdtRCxNQUxuQjtHQU9UO0dhdFBBLFNBQVM0eEMsb0JBQW9CbHFDLE1BQVEsU0FBVTtHZDFCL0MsU0FBU21xQyw2QkFBZ0MsV0FBWTtHU3dUckQsU0FBU0MsZUFBZXhzQyxNQUFNQyxNQUFNRSxNQUFNQyxNQUN4Q0osVUFBVUMsU0FBU0UsVUFBVUMsT0FDN0I7R0FDRjtHZHBIQSxTQUFTcXNDLGVBQWdCcDRDLEdBQUd3QixHQUFLLE9BQU94QixNQUFNd0IsR0FBRztHMEJqTmpELFNBQVM2MkMsaUJBQWtCcjRDLEdBQUdTLEtBQU9ULE9BQU9TLEtBQUssU0FBVTtHRmlFM0QsU0FBUzYzQyxpQkFBaUJ0NEM7SUFDeEIsUUFBVUEseUJBQ0FBO2NBQ0FBO2NBQ0FBO0dBQ1o7R0ZpWEEsU0FBU3U0QyxjQUFjNS9CLElBQUlDLElBQUk3USxJQUFJRSxJQUFJOUQ7SUFDckN3VSxPQUFPQSxXQUFXQyxJQUFHN1EsSUFBR0UsTUFBTTlEO0lBQzlCO0dBQ0Y7R0QyaEJBLFNBQVNxMEMsWUFBWXQ0QyxHQUFHcWQ7SUFDdEJyZCxJQUFJOE4sT0FBTzlOO0lBQ1hxZCxJQUFJdlAsT0FBT3VQO0lBRVgsR0FBR0EsTUFBTXZQLGNBQWN1UCxNQUFNdlAsZUFBZUE7S0FDMUNsTDtJQUNGNUMsSUFBSUEsTUFBTXFkO0lBQ1YsR0FBR3JkLEtBQUs4TixZQUFZOU4sSUFBSUEsTUFBTXFkO0lBQ3hCLElBQUYxWjtJQUNKLFFBQVMzRCxTQUFTOE4sV0FBVztLQUMzQixNQUFPOU4sZ0JBQWdCOE4sV0FBWTtNQUNqQzlOLElBQUlBLFNBQVM4TjtNQUNQLElBQUY1TixJQUFJbWQsTUFBTXZQO01BQ2QsR0FBSTVOLFNBQVM0TixjQUFjNU4sU0FBUzROLFlBQ2xDbkssTUFBS0E7O0tBR1QsSUFBSTQwQyxLQUFLdjRDLEdBQUdtZixLQUFLOUI7S0FDakJyZCxJQUFJbWY7S0FDSjlCLElBQUlrN0I7S0FDSjtPQUFJdjRDLE1BQU04TixrQkFBa0JBO1VBQWV1UCxNQUFNdlAsa0JBQWtCQTtNQUNqRW5LLE1BQUtBO0tBRVAzRCxJQUFJQSxNQUFNcWQ7O0lBRVosT0FBR0EsU0FBU3ZQLGFBQ0huSztHQUdYO0dBSUEsU0FBUzYwQyxjQUFjL3hDLEdBQUUzQyxHQUN2QixPQUFPdzBDLFlBQVk3eEMsR0FBRTNDLEdBQ3ZCO0dmM2dDQSxTQUFTMjBDLG1CQUFtQi90QyxHQUFFekgsR0FBSyxPQUFReUgsYUFBYXpILFVBQVk7R2E2RHBFLFNBQVN5MUMsc0JBQXNCMTRDLEdBQUssU0FBVTtHTFg5QyxTQUFTMjRDLHFCQUFxQnQrQixLQUFLMUIsS0FDakMsT0FBTzBCLFNBQVMxQixLQUNsQjtHQVJBLFNBQVNpZ0MscUJBQXFCditCLEtBQUsxQixLQUFLekMsT0FDdENtRSxTQUFTMUIsT0FBT3pDLE9BQ2hCO0dBQ0Y7R2I2U0EsU0FBUzJpQyxrQkFBa0I1NEMsR0FBRWlDLEdBQUVvaUIsS0FDN0JyWixtQ0FDRjtHYzFSQSxTQUFTNnRDLHFCQUFxQkMsUUFBT3o0QixHQUFFdGY7SUFDekIsSUFBUmc0QyxVQUFVRDtJQUNkLGlCQUNXQztvQkFDQUQ7OzttQkFHRHo0QjtvQkFDQ3RmOztrQkFFRnlCOzs7bUJBR0NBO0dBRVo7R0FrTEEsU0FBU3cyQyxpQkFBaUJuNUMsR0FBRXdCLEdBQUUwdUMsSUFBR0QsSUFBR2pvQixJQUFHQztJQUMvQixJQUFGOW5CLElBQUlnTTtJQUNSaE07SUFDQTJ2QyxnQkFBZ0IzdkMsV0FBVUgsR0FBRUcsV0FBV3FCLEdBQUUwdUMsSUFBR0QsSUFBR2pvQixJQUFHQztJQUNsRDluQjtJQUNBO0dBQ0Y7R0poQ0EsU0FBU2k1QyxpQkFBaUJDLEtBQUt0N0IsTUFBTW1CLFFBQVFvNkIsUUFBUTM2QixNQUFNclcsS0FFekQ2QztHQUNGO0dBSUEsU0FBU291QywwQkFBMEI1MEIsTUFBSzYwQjtJQUN0QyxPQUFPSjthQUFpQnowQixTQUFRQSxTQUFRQSxTQUFRQSxTQUFRQSxTQUFRQTtHQUNsRTtHV3dnQkEsU0FBUzgwQixvQkFBb0JDLE9BQU9DLE9BQU9DLE9BQU83N0IsTUFBTW1CLFFBQVFQO0lBQzlELEdBQUdnN0IsU0FBUzc3Qiw2QkFBNkJDO0tBQ3ZDamI7O0lBRUYsT0FBTzBjLHNCQUFzQnpCLE1BQU1tQixRQUFRUCxNQUFNKzZCO0dBQ25EO0dkcGdCQSxTQUFTRyxnQkFBaUI3NUMsR0FBSyxPQUFPTyxVQUFVUCxHQUFJO0dReFFwRCxTQUFTODVDLDRCQUNQLFNBQ0Y7R0QrVEEsU0FBU0MsaUJBQWlCeHNDO0lBQ3hCLElBQUlwTixJQUFJZ00scUJBQ0o1QyxJQUFJcEosc0JBQXNCb04sTUFDMUJ5c0MsS0FBS3p3QztJQUNUcEosbUJBQW1Cb04sS0FBSXBOLEtBQUlBLFdBQVdBO0lBQ3RDQSxPQUFPNjVDO0lBQ1A7R0FDRjtHQVlBLFNBQVNDLG9CQUFvQjFzQztJQUMzQndzQyxpQkFBaUJ6MUMsd0JBQXdCaUo7SUFDekM7R0FDRjtHTXlzQkEsU0FBUzJzQyxlQUFldnpDO0lBQ3RCLElBQUlzUixNQUFNakssV0FDTm9LLE1BQU1wSyxXQUNONkosS0FBS0ksS0FDTGxQLE1BQU1rUDtJQUNWdFIsSUFBSXFILE9BQU9ySDtJQUNYLE1BQU9rUixPQUFPbFIsR0FBSTtLQUNoQixHQUFJa1Isd0JBQ0Y5TyxNQUFNQSxhQUFhOE87S0FFckIsR0FBR0EsVUFBVUksUUFBUUosVUFBVU87TUFBTVAsS0FBS0EsT0FBT0k7O01BQzVDSixLQUFLQSxPQUFPTzs7SUFFbkIsT0FBT1QsZUFBZTVPO0dBQ3hCO0dObHVCQSxTQUFTb3hDLGtCQUFrQmgzQztJQUN6QjQyQyxpQkFBaUIxMUMsb0JBQW9CbEI7SUFDckM7R0FDRjtHSnRNQSxTQUFTaTNDLGFBQWEvMEM7SUFDcEI7S0FBSVgsT0FBT2EsZUFBZUY7S0FDdEJBLE9BQU9ELG9CQUFvQlY7S0FDM0JtOUI7SUFDSixJQUFVLElBQUZ6L0IsT0FBT0EsSUFBSWlKLHlCQUF5QmpKO0tBQzFDLEdBQUdpSixpQkFBaUJqSixXQUFXaUQsTUFBTXc4QixNQUFNei9CO0lBQzdDLEdBQUd5L0IsV0FBVXgyQix3QkFBd0J3MkI7SUFDckM7R0FDRjtHbUJ6SEEsU0FBU3dZLDZCQUE2QnROLEtBQUtobkIsTUFBTUMsS0FBS0MsTUFBTWhqQjtJQUMxRCxTQUFTOHBDO0tBQ1BqcUM7SUFDRixTQUFTa2pCO0tBQ1BsakI7SUFDRixHQUFHRyxVQUFVO0lBQ2IsSUFBSTJJLE9BQU9taEMsV0FBV2huQixPQUNsQmhhLE9BQU9pYSxXQUFXQztJQUN0QixHQUFHcmEsT0FBTzNJLE1BQU04cEMsaUJBQ2RyL0I7SUFFRixHQUFHM0IsT0FBTzlJLE1BQU0raUIsaUJBQ2R0WTtJQUVRLElBQU53WSxRQUFRNm1CLGtCQUFrQm5oQyxNQUFLQSxPQUFLM0k7SUFDeEMraUIsYUFBYUUsT0FBTUQ7SUFDbkI7R0FDRjtHVDY2QkEsU0FBU3EwQixTQUFTbDRDO0lBQ2hCLEdBQUdBLE9BQU9VO0lBQ1YsR0FBR1YsVUFBVUEsUUFBUSxPQUFPQTtJQUM1QixJQUFJdUUsSUFBSXFILFdBQVdoSyxJQUFJZ0s7SUFDdkIsSUFBVSxJQUFGdVAsT0FBT0EsSUFBSW5iLEdBQUdtYixJQUFJLENBQ2pCLElBQUh4RSxLQUFLL1UsR0FDVEEsSUFBSTJDLE1BQU0zQyxJQUNWMkMsSUFBSW9TO0lBRU4sT0FBT3BCLGVBQWUzVDtHQUN4QjtHSnh6QkEsU0FBU3UyQyw2QkFBNkJwNkMsR0FBRTBZO0lBQzNCLElBQVA4RyxhQUFhb2EsZUFBZ0I1NUIsVUFBVTBZLGtCQUFjQSxNQUFJQTtJQUM3RCxPQUFPd3BCLDZCQUE2QjFpQixRQUFROUc7R0FDOUM7R0MyTUEsU0FBUzJoQyxrQkFBa0I1c0M7SUFDekIsT0FBT3VXLG9CQUFvQmdnQixZQUFZdjJCO0dBQ3pDO0dIMkNBLFNBQVM2c0MsbUJBQW1CcHVDLElBQUdyTSxHQUFFd0I7SUFDekIsSUFBRnJCLElBQUlnTTtJQUNSLEtBQUlFLFNBQVU7S0FDRCxJQUFQNHNDLFNBQVNoMUI7S0FDYmcxQixlQUFlOTRDO0tBQ2Y4NEMsZ0JBQWdCOTRDO0tBQ2hCODRDLHFDQUFxQzVzQztLQUMzQixJQUFOcXVDLFlBQVl6NEM7S0FDaEJ5NEM7O09BQ0V2NkMsb0JBQW9CdTZDLE9BQU0xNkMsR0FBRUcsV0FBV2tNLFlBQVk3SztPQUNuRDZLLFdBQVdxdUM7TUFGRTtLQUlmQSxZQUFZekI7OztLQUVaOTRDLG9CQUFvQmtNLFVBQVNyTSxHQUFFRyxXQUFXa00sWUFBWTdLO0lBRXhEO0dBQ0Y7R1h2SEEsU0FBU201QyxvQ0FBb0NDLFVBQzNDLFNBQ0Y7R0h6Q0EsU0FBU0MsZ0JBQWlCMTZDLEdBQUdpQyxHQUFHZSxHQUM5QmdJLGlDQUNGO0dVMUNBLFNBQVMydkMsZUFBZXoxQztJQUNiLElBQUxKLE9BQU9xRyxrQkFBa0JqRztJQUM3Qkosa0JBQWtCQTtJQUNsQjtHQUNGO0dDakZBLFNBQVM4MUMsa0JBQWtCandDLFFBQVE0WSxLQUFLQztJQUN0QyxJQUFJcTNCLFdBQVcxdkMsa0JBQWtCb1ksTUFDN0J1M0IsV0FBVzN2QyxrQkFBa0JxWTtJQUNqQyxHQUFHcTNCLG1CQUFtQkM7S0FDcEI5dkM7O0lBQ0YsS0FBSzZ2QztLQUNIN3ZDO0lBRUYsT0FBTzZ2Qyx3QkFBd0Jsd0MsUUFBUWt3QyxlQUFlQztHQUN4RDtHTWtXQSxTQUFTQyxnQkFBZ0J0dEMsUUFDdkIsT0FBTzhrQyxhQUFhOWtDLFFBQ3RCO0dkM05BLFNBQVN1dEMsdUJBQXVCcHlCLE9BQzlCLFNBQ0Y7R0htTkEsU0FBU3F5QixvQkFBb0J0ekMsSUFBSUUsSUFBTSxXQUFTdWpCLGlCQUFpQnpqQixJQUFJRSxJQUFLO0dHOU8xRSxTQUFTcXpDLHdCQUF3QnR5QixPQUMvQixPQUFPcG1CLDJCQUNUO0dFcUhBLFNBQVMyNEMsZUFBZ0IzMEM7SUFDakIsSUFBRmlFO0lBQ0osSUFBVyxJQUFGeEksT0FBT0EsSUFBSXVFLFVBQVV2RSxJQUFLO0tBQzNCLElBQUZzQixJQUFJaUQsRUFBRXZFO0tBQ1Z3SSxFQUFFdEcsd0JBQXdCWixTQUFTQTs7SUFFckMsT0FBT2tIO0dBQ1Q7R2dCOUdBLFNBQVMyd0MsZUFBZXg5QixNQUFNbUIsUUFBUXM4QjtJQUNwQztLQUFJNzhCLE9BQU8yRyxtQkFBbUJrMkI7S0FDMUI5eUMsT0FBT3NWLHNCQUFzQkQsTUFBTVcsaUJBQWlCQztJQUN4RCxPQUFPYSxzQkFBc0J6QixNQUFNbUIsUUFBUVAsTUFBTWpXO0dBQ25EO0dQMktBLFNBQVMreUM7SUFDUHR3QztHQUNGO0dQL0tBLFNBQVN1d0MsZUFBZTE3QyxHQUFHd0IsR0FBR3VXO0lBQzVCO0tBQUk0akMsUUFBUXA3QztLQUNScTdDLFlBQVlyN0M7S0FDWnM3QyxVQUFVdDdDO0tBQ1Z1N0M7S0FDQUMsSUFBSXg3QyxjQUFhdTdDO0tBQ2pCRSxJQUFJejdDLGNBQWF1N0M7SUFFckIsU0FBU0csU0FBVXQxQyxHQUFHM0M7S0FDcEI7TUFBSWs0QyxLQUFLUCxRQUFRaDFDO01BQ2J3MUMsTUFBTUQsTUFBTUEsS0FBS3YxQztNQUNqQnkxQyxNQUFNejFDLElBQUl3MUM7TUFDVjlnQixLQUFLc2dCLFFBQVEzM0M7TUFDYnE0QyxNQUFNaGhCLE1BQU1BLEtBQUtyM0I7TUFDakJzNEMsTUFBTXQ0QyxJQUFJcTRDO01BQ1YzNEMsSUFBSWlELElBQUkzQztNQUNSdVIsSUFBTTRtQyxNQUFNRSxNQUFNMzRDLElBQUt5NEMsTUFBTUcsTUFBTUYsTUFBTUMsTUFBT0QsTUFBTUU7S0FDMUQsV0FDSzU0QyxNQUNBNlI7SUFFUDtJQUVBLFNBQVMzRixJQUFLakosR0FBRzNDO0tBQ2YsSUFBSTdELElBQUl3RyxJQUFJM0MsR0FDUkcsSUFBSWhFLElBQUl3RyxHQUNSNE8sSUFBSzVPLEtBQUt4RyxJQUFJZ0UsTUFBT0gsSUFBSUc7S0FDN0IsV0FDS2hFLE1BQ0FvVjtJQUVQO0lBRUEsU0FBU2duQyxPQUFRdjhDLEdBQUd3QjtLQUNsQixPQUFPeEIsV0FBV3dCLFdBQVdtNkMsUUFBUTM3QyxLQUFLMjdDLFFBQVEzN0MsSUFBSUEsT0FBT0E7ZUFBSUEsVUFBVUEsc0JBQW9Cd0IscUJBQW1CcTZDO2VBQVc3N0M7SUFDL0g7SUFFQTtNQUFJQSxXQUFXQSxNQUFNQSxLQUFLQSxtQkFBZ0JBLG1CQUN0Q3dCO1NBQVdBLE1BQU1BO1NBQUtBO1NBQWdCQTtLQUFjLE9BQy9DeEIsSUFBSXdCLElBQUl1VztJQUVqQixHQUFJQSxTQUFTLE9BQ0ovWCxJQUFJd0I7SUFFYixHQUFJdVcsTUFBTUEsS0FBS0EsbUJBQWdCQSxpQkFBYyxPQUNwQ0E7SUFHQyxJQUFOeWtDO0lBQ0osTUFBT2o4QyxTQUFTUCxLQUFLKzdDLEVBQUcsQ0FDdEJTLFNBQVNULEdBQ1QvN0MsS0FBS2c4QztJQUVQLE1BQU96N0MsU0FBU2lCLEtBQUt1NkMsRUFBRyxDQUN0QlMsU0FBU1QsR0FDVHY2QyxLQUFLdzZDO0lBRVAsR0FBSVEsaUJBQWlCLE9BQ1p4OEMsSUFBSXdCLElBQUlnN0M7SUFFakIsTUFBT2o4QyxTQUFTUCxLQUFLZzhDLEVBQUcsQ0FDdEJRLFNBQVNSLEdBQ1RoOEMsS0FBSys3QztJQUVQLE1BQU94N0MsU0FBU2lCLEtBQUt3NkMsRUFBRyxDQUN0QlEsU0FBU1IsR0FDVHg2QyxLQUFLdTZDO0lBRVAsR0FBSVMsYUFBYSxPQUNSemtDO0lBR1QsSUFBSTBrQyxLQUFLejhDLEdBQ0wwOEMsS0FBS2w3QyxHQUNMbTdDLEtBQUs1a0MsSUFBSXlrQztJQUViLEdBQUlqOEMsU0FBU284QyxNQUFNcDhDLFNBQVNrOEMsS0FBS0MsVUFBVWIsU0FBUyxPQUMzQzlqQztJQUVULEdBQUl4WCxTQUFTbzhDLE1BQU1wOEMsU0FBU2s4QyxLQUFLQyxNQUFNYixjQUFjQTtLQUNuRGMsTUFBTTVrQyxxQkFBbUI2akM7SUFHM0I7S0FBSWdCLEtBQUtYLFNBQVNRLElBQUlDO0tBQ2xCdjhDLElBQUl5UCxJQUFJZ3RDLE1BQU1EO0tBQ2RFLElBQUlqdEMsSUFBSWd0QyxNQUFNejhDO0tBQ2RpQyxJQUFJd04sSUFBSXpQLEtBQUswOEM7S0FFYjM1QyxJQUFJZCxNQUFNbTZDLE9BQU9uNkMsS0FBS3k2QztJQUMxQixHQUFJMzVDLFNBQVMsT0FDSkE7SUFHRixJQUFIMGhDLEtBQUsxaEMsSUFBSXM1QztJQUNiLEdBQUlqOEMsU0FBU3FrQyxNQUFNZ1gsV0FBVyxPQUNyQmhYO0lBSVQsT0FBT0EsS0FBSzJYLE9BQU9yNUMsSUFBSTBoQyxLQUFLNFgsT0FBT3A2QyxPQUFPbzZDO0dBQzVDO0dtQjdXQSxTQUFTTSw4QkFBOEIvdUMsTUFBUSxTQUFTO0dIdUR4RCxTQUFTZ3ZDLGFBQWEvOEMsR0FDcEIsUUFBV0Esb0JBQ0FBLGlCQUNiO0dOcURBLFNBQVNnOUMsd0JBQXdCcHZDLFFBQU8xRTtJQUM3QixJQUFMb0UsT0FBT0YsaUJBQWlCUTtJQUM1Qk4seUJBQXdCcEU7SUFDeEJvRSx5QkFBeUJwRTtJQUN6QjtHQUNGO0dDNUhBLFNBQVMrekMsc0JBQXlCLFNBQVU7R0ppTjVDLFNBQVNDLGtCQUFrQmw5QyxHQUFFd0IsR0FBRWdmLEdBQUV0ZjtJQUN6QixJQUFGZixJQUFJZ007SUFDUmhNLHFCQUFxQkgsR0FBRUcsV0FBV3FCLEdBQUVnZixLQUFHdGY7SUFDdkM7R0FDRjtHZHBDQSxTQUFTaThDLGtCQUFrQmg5QyxHQUFFaUM7SUFDM0IsR0FBSUEsV0FBV3dILHNCQUFzQnpKLFFBQVE2ekI7SUFDN0M7S0FBSWxiLEtBQUtqUCx1QkFBd0IxSixHQUFHaUM7S0FDaEMyVyxLQUFLbFAsdUJBQXdCMUosR0FBR2lDO0lBQ3BDLE9BQVEyVyxVQUFVRDtHQUNwQjtHaUJzUkEsU0FBU3NrQyxrQkFBbUJ4dkMsUUFBT3pKLEdBQUUwRTtJQUM3QixJQUFGMUksSUFBSXk0Qiw0QkFBNEJ6MEIsR0FBRzBFO0lBQ3ZDZ2lDLGVBQWVqOUIsUUFBT3pOLE1BQUl5SixzQkFBc0J6SjtJQUNoRDtHQUNGO0dJOUVBLFNBQVNrOUMsY0FBYzFrQyxJQUFJQyxJQUFJN1EsSUFBSUU7SUFDakMsT0FBTzBRLE9BQU9BLFdBQVdDLElBQUc3USxJQUFHRTtHQUNqQztHY3JUQSxTQUFTcTFDLG1CQUFtQnQxQixJQUFJamdCLElBQUlrZ0IsSUFBSWhnQixJQUFJaEY7SUFFMUMweUI7TUFBZ0IzTjtNQUFJaUUsdUJBQXVCbGtCO01BQzNCa2dCO01BQUlnRSx1QkFBdUJoa0I7TUFDM0JoRjtJQUNoQjtHQUNGO0dma0dBLFNBQVNzNkMsY0FBYzFsQyxJQUFNLE9BQU80YyxZQUFZNWMsSUFBSTtHakJmOUIsSUFBbEIybEMsb0JBQW9CLElBQUs1dUI7R0FDN0IsU0FBUzZ1QjtJQUNDLElBQUo1TyxNQUFNLElBQUtqZ0I7SUFDZixPQUFPaWdCLGNBQWMyTztHQUN2QjtHQUlBLFNBQVNFLCtCQUErQjE1QyxHQUN0QyxPQUFPeTVDLGdCQUNUO0c4QmxJQSxTQUFTRSxpQkFBa0JsdEIsT0FBT0M7SUFDaEMsR0FBSUEsZUFBZUQsa0JBQWtCL2lCO0lBQ3JDLE9BQU8raUI7R0FDVDtHdEJpSUEsU0FBU210QixtQkFBbUI3dkMsTUFDMUJ2Qyx1QkFDRjtHU2tLQSxTQUFTcXlDLGFBQWFobUMsSUFBSStELElBQ3hCLE9BQU81TixPQUFPNkosWUFBWTdKLE9BQU80TixLQUNuQztHSTNNQSxTQUFTa2lDLFVBQVdqcUIsT0FBT2txQixPQUFPQyxNQUFNL0g7SUFDdEMsSUFBSWdJLE9BQU9DLElBQUlDLElBQUl2Z0MsSUFBSXFELEtBQUsvZixHQUFHaUQsR0FBRy9CLEdBQUdhO0lBQ3JDMmEsS0FBS21nQztJQUNMLEdBQUluZ0MsVUFBVUEsVUFBVUE7SUFDeEJxRCxNQUFNNFM7SUFDTjN5QixJQUFJODhDO0lBQ0pDLFNBQVNoSTtJQUFNaUk7SUFBUUM7SUFDdkIsTUFBT0QsS0FBS0MsTUFBTWw5QixRQUFTO0tBQ3pCOWMsSUFBSTg1QyxNQUFNQztLQUNWLEdBQUkvNUMsS0FBS0E7TUFBYztRQUNsQjJjLGdCQUFnQjNjLGtCQUFrQjJjLGdCQUFnQjNjLG9CQUFxQjtPQUNqRSxJQUFIMmlCLEtBQUtoRyxnQkFBZ0IzYyxvQkFBb0JBO09BQzdDakQsSUFBSW1aLGtCQUFtQm5aLEdBQUc0bEI7T0FDMUI3Rjs7O2FBR0s5YyxhQUFhdUYsU0FBU3ZGLFVBQVVBO01BQVMsT0FDeENBOztTQUdOakQsSUFBSW1aLGtCQUFrQm5aLEdBQUdpRCxPQUN6QjhjLE9BQ0E7O1NBR0FnOUIsUUFBUUMsTUFBTS81QyxNQUNkOztTQUVBLEdBQUcwWSx5QkFBeUIxWSxPQUFPO1NBSzNCLElBQUoxRCxNQUFRMEQscUJBQXVCQTtTQUNuQ2pELElBQUltWixrQkFBa0JuWixHQUFHVDtTQUN6QixJQUFLMkIsT0FBT2EsTUFBTWtCLFVBQVUvQixJQUFJYSxLQUFLYixJQUFLLENBQ3hDLEdBQUkrN0MsTUFBTXZnQyxJQUFJLE9BQ2RxZ0MsTUFBTUUsUUFBUWg2QyxFQUFFL0I7O1NBRWxCOzthQUVPNkUsaUJBQWlCOUMsR0FBSTtNQUM5QmpELElBQUk0ekIsb0JBQW9CNXpCLEdBQUVpRDtNQUMxQjhjOzthQUNTL1osa0JBQWtCL0MsR0FBSTtNQUMvQmpELElBQUk2bkMscUJBQXFCN25DLEdBQUVpRDtNQUMzQjhjOztvQkFDZ0I5YyxlQUFnQjtNQUNoQ2pELElBQUkwekIsc0JBQXNCMXpCLEdBQUVpRDtNQUM1QjhjOzthQUNTOWMsT0FBT0EsT0FBTTtNQUV0QmpELElBQUltWixrQkFBa0JuWixHQUFHaUQsSUFBRUE7TUFDM0I4Yzs7YUFDUzljLFFBQU9BLEVBQUcsQ0FFbkJqRCxJQUFJa2Ysb0JBQW9CbGYsR0FBRWlELElBQzFCOGM7O0lBR0ovZixJQUFJa3JCLG9CQUFvQmxyQjtJQUN4QixPQUFPQTtHQUNUO0dIeW1CQSxTQUFTazlDLHVCQUF1QnpsQyxJQUM5QixPQUFPQSxRQUNUO0dLOTFCQSxTQUFTMGxDLG9CQUFvQnR3QyxNQUMzQixPQUFPbXBDLGdCQUNUO0cxQm1QQSxTQUFTb0gsaUJBQWlCbitDLEdBQUVpQztJQUMxQixHQUFJQSxXQUFXakMsU0FBUzRKO0lBQ3hCO0tBQUkrTyxLQUFLb2Esc0JBQXVCL3lCLEdBQUdpQztLQUMvQjJXLEtBQUttYSxzQkFBdUIveUIsR0FBR2lDO0tBQy9CNFcsS0FBS2thLHNCQUF1Qi95QixHQUFHaUM7S0FDL0I2VyxLQUFLaWEsc0JBQXVCL3lCLEdBQUdpQztJQUNuQyxPQUFRNlcsV0FBV0QsV0FBV0QsVUFBVUQ7R0FDMUM7R092Q0EsU0FBU3lsQyxpQkFBa0J2K0M7SUFDekIsR0FBS0EsWUFBWWtOLFNBQVNsTixJQUFJLFdBQVdBO0lBQ2pDLElBQUo4VyxNQUFNOVc7SUFDVixHQUFJOFcsS0FBSzlXLE1BQU1BO0lBQ1AsSUFBSnFULE1BQU05UyxpQkFBZ0J3YyxnQkFBZ0IvYztJQUMxQ0EsS0FBS08sY0FBWThTO0lBQ2pCLE1BQU9yVCxRQUFTLENBQ2RBLFFBQ0FxVDtJQUVGLE1BQU9yVCxPQUFRLENBQ2JBLFVBQ0FxVDtJQUVGLEdBQUl5RCxLQUFLOVcsTUFBTUE7SUFDZixXQUFXQSxHQUFHcVQ7R0FDaEI7R2FySEEsU0FBU21yQyxVQUFVM21DLElBQ2pCLE9BQU9GLGVBQWUzSixPQUFPNkosWUFDL0I7R3BCZ0pBLFNBQVM0bUMsa0JBQWtCdCtDLEdBQUVpQztJQUMzQixHQUFJQSxXQUFXd0gsc0JBQXNCekosUUFBUTZ6QjtJQUN2QyxJQUFGcnRCLFFBQVErQztJQUNaLElBQVUsSUFBRnRGLE9BQU9BLE9BQU9BLEtBQ3BCdUMsTUFBTXZDLEtBQUt5Rix1QkFBd0IxSixHQUFHaUMsSUFBSWdDO0lBRTVDLE9BQU9xVSxvQkFBb0I5UjtHQUM3QjtHSy9GQSxTQUFTKzNDLGtDQUFrQ3A4QztJQUN6QyxHQUFHQSxjQUFjLFdBQWFBO0lBQzlCO0dBQ0Y7R1lnWEEsU0FBU3E4QyxtQkFBbUIvd0M7SUFDMUIsT0FBT3VXLG9CQUFxQnV1QixhQUFhOWtDO0dBQzNDO0dHcVpBLFNBQVNneEMsWUFBWWo0QyxHQUFFM0M7SUFDckIsSUFBSWdVLE9BQU9oSyxXQUNQaUssTUFBTWpLO0lBQ1ZySCxJQUFJcUgsT0FBT3JIO0lBQ1gzQyxJQUFJZ0ssT0FBT2hLO0lBQ1gsR0FBR0EsU0FBU2dVLE9BQU9yWDtJQUNuQixHQUFHZ0csU0FBU3FSLFNBQVNoVSxlQUFlaVUsTUFBTSxXQUFXdFI7SUFDL0MsSUFBRnZFO0lBQ0osTUFBTXVFLGdCQUFnQjNDLEdBQUcsQ0FDdkIyQyxJQUFJQSxTQUFTM0MsSUFDYjVCO0lBRUYsV0FBV3VWLGVBQWVoUixJQUFJdkU7R0FDaEM7R0FuTkEsU0FBU3k4QyxhQUFhaG5DLElBQUl2UCxLQUFLckY7SUFDN0I0VSxLQUFLN0osT0FBTzZKO0lBQ1osT0FBT0Y7YUFBZUUsY0FBY3ZQLFNBQVMwRixjQUFjL0s7R0FDN0Q7R0FyaUJBLFNBQVM2N0MsY0FBY0M7SUFDckIsR0FBR0EsTUFBTXpyQyxZQUFZeXJDLFFBQU96ckMsWUFBWXlyQyxNQUFNQTtLQUM1Q3YrQyxvQkFBb0IrRjtJQUN0QixPQUFPb1IsZUFBZTNKLE9BQU8rd0MsU0FBS3grQyxVQUFVdytDLE1BQUl4K0MsV0FBV3crQztHQUM3RDtHQTdEQSxTQUFTQyxZQUFZbm5DLElBQ25CLE9BQU9GLGVBQWUzSixPQUFPNkosV0FDL0I7R1RnS0EsU0FBU29uQyxvQkFBb0I3aUMsWUFDM0IsT0FBT0QsbUJBQW1CQztHQUM1QjtHR29NQSxTQUFTOGlDLHdCQUF3QnY0QztJQUMvQndFO0dBQ0Y7R21CemNBLFNBQVNnMEMscUJBQXFCbjNCLElBQUlqZ0IsSUFBSWtnQixJQUFJaGdCLElBQUloRjtJQUM1QyxHQUFJZ0YsTUFBTUY7S0FBSSxJQUNELElBQUYzRCxPQUFPQSxLQUFLbkIsS0FBS21CLEtBQUs2akIsR0FBR2hnQixLQUFLN0QsS0FBSzRqQixHQUFHamdCLEtBQUszRDs7S0FDL0MsSUFDTSxJQUFGQSxJQUFJbkIsS0FBS21CLFFBQVFBLEtBQUs2akIsR0FBR2hnQixLQUFLN0QsS0FBSzRqQixHQUFHamdCLEtBQUszRDtJQUV0RDtHQUNGO0dmcUJBLFNBQVNnN0Msb0JBQW9CcnhDLE1BQVEsU0FBVTtHZlcvQyxTQUFTc3hDLG9CQUFvQjloQyxHQUFFcFo7SUFDN0IsS0FBSWxDLDRCQUNGQTtJQUNGQSwyQkFBMkJzYixLQUFLcFo7SUFDaEM7R0FDRjtHa0I2TkEsU0FBU203QyxzQkFBc0IzbUMsSUFBSXVHO0lBQ2pDLEdBQUd2RyxhQUFhdUcsUUFBUSxPQUFPdkc7SUFDbEIsSUFBVDB1QjtJQUNKLElBQVUsSUFBRmpsQyxPQUFPQSxJQUFJdVcsZ0JBQWdCdlc7S0FBS2lsQyxTQUFTamxDLEtBQUt1VyxRQUFRQSxpQkFBaUJ2VztJQUMvRSxPQUFPb2Qsc0JBQXNCN0csU0FBU3VHLFFBQVFtb0IsVUFBVTF1QjtHQUMxRDtHaEJuRUEsU0FBUzRtQyxZQUFZcDhDLEdBQUd3RDtJQUN0QixPQUFRQTs7T0FDQSxXQUFXeEQ7O09BQ1gsV0FBV0EsRUFBR3dEOztPQUNkLFdBQVd4RCxFQUFHd0QsTUFBS0E7O09BQ25CLFdBQVd4RCxFQUFHd0QsTUFBS0EsTUFBS0E7O09BQ3hCLFdBQVd4RCxFQUFHd0QsTUFBS0EsTUFBS0EsTUFBS0E7O09BQzdCLFdBQVd4RCxFQUFHd0QsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O09BQ2xDLFdBQVd4RCxFQUFHd0QsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O09BQ3ZDLFdBQVd4RCxFQUFHd0QsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0EsTUFBS0E7O0lBRXBELFNBQVNvd0MsSUFBTSxPQUFPNXpDLFFBQVFuQyxNQUFNc2tCLG1CQUFtQjNlLElBQUs7SUFDNURvd0MsY0FBYzV6QztJQUNkLFdBQVc0ekM7R0FDYjtHU3hDQSxTQUFTeUksb0JBQ0QsSUFBRnIvQyxJQUFJZ00scUJBQ1IsT0FBT2hNLElBQ1Q7R1MvTkEsU0FBU3MvQyxnQkFBZ0J6OEMsS0FBS1o7SUFDNUIsR0FBSU4sdUJBQXVCa0I7S0FBYyxPQUFPTCw0QkFBMEJQO0lBQ3BFLElBQUZjLElBQUlILGtCQUFrQkM7SUFDMUIsR0FBSVosT0FBTyxHQUFNYyxhQUFjLENBQUVBLGNBQWFkLE1BQUtBLFNBQVVBO0lBQ3ZELElBQUZqQyxJQUFJaUMsV0FBV2M7SUFDbkIsR0FBSUEsWUFBYTtLQUNmQTtLQUNNLElBQUZoRCxJQUFJZ0QsU0FBUy9DO0tBQ2pCLEdBQUlELE9BQU9DLElBQUlGLGdCQUFpQkMsVUFBVUM7O0lBRTVDLE9BQU9pRCx1QkFBdUJGLEdBQUcvQztHQUNuQztHZjhKQSxTQUFTdS9DO0lBQ1B2MEM7R0FDRjtHQWxDQSxTQUFTdzBDO0lBQStDL3VCLE1BQU1ndkIsTUFBTUMsTUFBTUM7SUFDOUQsSUFBTnIrQixRQUFRa1AsNEJBQTRCQztJQUN4Q25QLGVBQWVtK0IsTUFBTUMsTUFBTUM7SUFDM0IsT0FBT3IrQjtHQUNUO0dpQmpGQSxTQUFTcytCLGtCQUFtQi8vQyxHQUFHRztJQUM3QixHQUFJQSxVQUFRQSxRQUFRSCxVQUNsQjhDO0lBQ0YsR0FBSTlDLFlBQVlHLE9BQU9ILFdBQVdHO0lBQ2xDO0dBQ0Y7R3pCd3hCQSxTQUFTNi9DLGtCQUFtQjcvQyxHQUMxQixPQUFPMEYsd0JBQXdCMUYsR0FDakM7R2F0dkJBLFNBQVM4L0MsYUFBYTFsQyxLQUFLMUIsS0FDekIsR0FBRzBCLFNBQVMxQixVQUFVLFVBQ3RCLFNBQ0Y7R1YrS0EsU0FBU3FuQyxxQkFBcUJuM0IsT0FDNUIsT0FBT3BtQiwyQkFDVDtHY3pMQSxTQUFTdzlDLDRCQUE2QmgyQztJQUMzQixJQUFMdkIsT0FBTzhtQixhQUFhdmxCO0lBQ3hCLEdBQUd2QixtQkFBbUJyQiw2QkFBNEI0QztJQUNsRDtLQUFJaTJDLFdBQVl4M0Msd0JBQXdCMUcsWUFBYTBHO0tBQ2pENnRDO2NBQ0c3dEM7Z0JBQ0VBLG9CQUFrQkE7WUFDdEJ1Qjs7OztvQkFJUS9DO2tCQUNGZzVDO0lBRVhoekMsaUJBQWlCcXBDLGNBQVlBO0lBQzdCLE9BQU9BO0dBQ1Q7R2dCMUZBLFNBQVM0SixrQkFBa0JoZ0Q7SUFDbkIsSUFBRnNHO0lBQ0osTUFBT3RHLFFBQVM7S0FDUixJQUFGMkQsSUFBSTNEO0tBQ1IsSUFBVyxJQUFGK0IsT0FBT0EsSUFBSTRCLFVBQVU1QixLQUFLdUUsT0FBTzNDLEVBQUU1QjtLQUM1Qy9CLElBQUlBOztJQUVOLE9BQU9zRztHQUNUO0duQk5BLFNBQVMyNUMsbUJBQW1CQztJQUNqQixJQUFMQSxPQUFPajhDLHdCQUF3Qmk4QztJQUNuQyxTQUFTcHBCLElBQUk5eEI7S0FDSCxJQUFKMEQsTUFBTXczQyx1QkFBcUJsN0M7S0FDL0IsR0FBRzBELEtBQUssT0FBT0E7SUFDakI7SUFDVSxJQUFOeTNDO0lBQ0osTUFBS0QsYUFBV0MsV0FBV0Q7SUFDaEIsSUFBUHgxQyxTQUFTb3NCO0lBQ2IsS0FBSXBzQixRQUFRQTtJQUNELElBQVAwMUMsU0FBU3RwQjtJQUNiLEtBQUlzcEIsUUFBUUQ7SUFFTixJQUFGaGdDLElBQUkyVztJQUNSM1csSUFBSUEsSUFBRW5KLFNBQVNtSjtJQUNmZ2dDLHNCQUFvQmhnQztJQUVkLElBQUZ0ZixJQUFJaTJCO0lBQ1JqMkIsSUFBSUEsSUFBRW1XLFNBQVNuVztJQUNmcy9DLHVCQUFxQnQvQztJQUViLElBQUp3L0MsTUFBTXorQywrQkFBOEI4SSxRQUFPeTFDO0lBQy9DLEtBQUlFLEtBQU12MUM7SUFDVixJQUFJdzFDLE1BQU1ELGNBQ056SCxTQUFTMEg7SUFDYjFILGVBQWV6NEI7SUFDZnk0QixnQkFBZ0IvM0M7SUFDUixJQUFKK2xCLE1BQU0reEIscUJBQXFCQyxRQUFPejRCLEdBQUV0ZjtJQUN4QytsQix5QkFBMEIyNUIsT0FDeEJELFlBQVlDLE1BREU7SUFHaEJqSixrQkFBa0Ixd0I7SUFDVCxJQUFMNDVCLE9BQU9GO0lBQ1hFO0lBQ0FBLGlCQUFpQjVIO0lBQ2pCO0dBQ0Y7R21CbUNBLFNBQVM2SCxxQkFBcUI3OUM7SUFDNUIsR0FBSUEsU0FBU3lLO0lBQ2IsSUFBSXpLLE1BQU1BLGFBQ05lLFFBQVEwRixNQUFNekc7SUFDbEJlO0lBQ0EsSUFBVyxJQUFGNUIsT0FBT0EsSUFBSWEsS0FBS2IsS0FBSzRCLEVBQUU1QjtJQUNoQyxPQUFPNEI7R0FDVDtHMUIwS0EsU0FBUys4QyxnQkFBaUIvZ0QsR0FBSyxPQUFPTyxVQUFVUCxHQUFJO0dXck5wRCxTQUFTZ2hELG9CQUFvQmp6QyxNQUFRLFNBQVU7R0FSL0MsU0FBU2t6QyxrQkFBa0JsekMsTUFDekIsU0FDRjtHU2tMQSxTQUFTbXpDLGtCQUFtQmxoRCxHQUFHd0I7SUFBSyxVQUFTZ2dCLGlCQUFpQnhoQixHQUFFd0I7R0FBZ0I7R1AwS2hGLFNBQVMyL0MsYUFBYXRwQztJQUNwQkEsS0FBSzdKLE9BQU82SjtJQUNaLElBQUkzWCxPQUNBa2hELGFBQWFwekM7SUFDakIsTUFBT296QyxlQUFldnBDLElBQUssQ0FDekIzWCxRQUNBa2hELGFBQWFBO0lBRWYsT0FBT2xoRDtHQUNUO0doQmxZQSxTQUFTbWhELG1DQUFzQyxXQUFZO0dHa08zRCxTQUFTQyxpQkFBaUJ0aEQsR0FBSyxPQUFPTyxXQUFXUCxHQUFJO0dRcE9yRCxTQUFTdWhELGdDQUFnQy81QixRQUN2QyxTQUNGO0dVaUVBLFNBQVNnNkIsdUJBQXdCcjlDLEdBQUssYUFBYUEsR0FBSTtHWitRdkQsU0FBU3M5QyxjQUFjOTFDLE1BQU1DLE1BQU1FLE1BQU1DLE1BQ3ZDSixVQUFVQyxTQUFTRSxVQUFVQyxPQUM3QjtHQUNGO0dDb0ZBLFNBQVMyMUMsbUJBQW1CcjFDLElBQUdyTSxHQUFFd0I7SUFDL0I7S0FBSXJCLElBQUlnTTtLQUNKdzFDO09BQU14aEQ7U0FBdUJILEdBQUVHLFdBQVdrTSxZQUFZN0ssR0FBRTZLLFVBQVNBO0lBQ3JFLElBQVcsSUFBRmpLLE9BQU9BLElBQUl1L0MsaUJBQWlCdi9DLE9BQUs7S0FDeENpSyxRQUFRakssS0FBS3UvQyxTQUFTdi9DO0tBQ3RCaUssUUFBUWpLLFNBQU91L0MsU0FBU3YvQztLQUN4QmlLLFFBQVFqSyxTQUFPdS9DLFNBQVN2L0M7S0FDeEJpSyxRQUFRakssU0FBT3UvQyxTQUFTdi9DOztJQUUxQjtHQUNGO0dBNkJBLFNBQVN3L0Msa0JBQWtCajdDO0lBQ3pCd0U7R0FDRjtHY3RlQSxTQUFTMDJDO0lBQ0EsSUFBSEMsS0FDQTcvQyx1QkFBcUJBO0lBQ3pCLE9BQU82L0MsNkJBQTRCQTtHQUNyQztHN0JxT0EsU0FBU0MsdUJBQXdCL2hELEdBQUdHLEdBQUssT0FBT0gsY0FBY0csR0FBRztHc0JzRmpFLFNBQVM2aEQsZUFBZXJwQyxJQUN0QixPQUFPQSxVQUNUO0dqQnRTQSxTQUFTc3BDLDZCQUFnQyxXQUFZO0c2QjBCckQsU0FBU0MsZUFBZ0J6eEIsT0FBT0MsT0FBT3l4QjtJQUNyQyxHQUFLenhCLGFBQWVBLFNBQVNELGtCQUFtQi9pQjtJQUNoRCtpQixNQUFNQyxhQUFTeXhCO0lBQVE7R0FDekI7R3pCa0VBLFNBQVNDLGlCQUFpQkMsSUFBSUMsSUFBSUMsSUFDaEMsU0FDRjtHUnFhQSxTQUFTQyx3QkFBd0IxNkMsSUFBSUUsSUFDbkMsT0FBT3VtQyxxQkFBcUJ2bUMsSUFBR0Y7R0FDakM7R29Cd0dBLFNBQVMyNkMsbUJBQW1CMXFDO0lBSTFCQSxJQUFJL0osT0FBTytKO0lBQ1gsSUFBSUMsT0FBT2hLLFdBQ1BpSyxNQUFNaks7SUFFVixHQUFJK0osU0FBU0MsU0FBU0QsU0FBU0UsUUFBUUYsU0FBU0UsZUFBZTtJQUdyRCxJQUFOeXFDLFFBQVF2QixhQUFhcHBDO0lBQ3pCLElBQVcsSUFBRi9ULE9BQU9BLEtBQUswK0MsT0FBTzErQyxJQUFLO0tBQy9CLEdBQUcrVCxLQUFLQyxTQUFTaFUsWUFBWTtLQUM3QixJQUFJMitDLEtBQUs1cUMsU0FDTHJVLElBQUlzSyxPQUFPOEosVUFBVTZxQyxJQUFJMytDO0tBQzdCLEdBQUcrVCxLQUFLQyxPQUFPdFUsSUFBSUE7S0FDYixJQUFGdEQsSUFBSTROLE9BQU80SixTQUFTbFUsR0FBR007S0FDM0IsR0FBSStULFNBQVMzWCxJQUFJOztJQUluQjtHQUNGO0dQdG5CQSxTQUFTd2lELGNBQWNyb0MsS0FBSzFCLEtBQUt6QyxPQUMvQm1FLFNBQVMxQixPQUFPekMsT0FDaEIsU0FDRjtHTy9DQSxTQUFTeXNDLFVBQVU5MEM7SUFDakIrUztpQkFDZ0JvdEI7bUJBQ0UwSjtZQUNQcEY7ZUFDR3FMO0lBRWQ7R0FBUztHcEI2UlgsU0FBU2lGLGlCQUFpQjNpRCxHQUFFaUMsR0FBRXVuQjtJQUM1QixHQUFJdm5CLFdBQVdqQyxTQUFTNEo7SUFDeEIsSUFBSWdQLFlBQVk0USxVQUNaN1EsWUFBWTZRO0lBQ2hCM2Ysc0JBQXVCN0osR0FBR2lDLE9BQU8wVztJQUNqQzlPLHNCQUF1QjdKLEdBQUdpQyxPQUFPMlc7SUFDakM7R0FDRjtHYzFNQSxTQUFTZ3FDLHFCQUFxQjczQjtJQUM1QixHQUFHQSw0QkFDRCxPQUFPQTtHQUNYO0dHcWJBLFNBQVM4M0IsbUJBQW9CcDFDLFFBQU94TDtJQUNsQztLQUFJbU4sT0FBUW5OLGdCQUFlQSxnQkFBZUEsZUFBYUE7S0FDbkRqQyxJQUFJdzRCLHFCQUFxQnBwQjtJQUM3QnM3QixlQUFlajlCLFFBQU96TjtJQUN0QjtHQUNGO0dRdGZBLFNBQVM4aUQsa0JBQWtCeGlELEtBQUlUO0lBQzdCLElBQUlLLElBQUlMLFVBQ0oyRyxRQUFRK0MsTUFBTXJKO0lBQ2xCc0csT0FBT2xHO0lBQ1AsSUFBVSxJQUFGMkIsT0FBT0EsSUFBSS9CLEdBQUcrQixLQUFNdUUsRUFBRXZFLEtBQUtwQyxFQUFFb0M7SUFDckMsT0FBT3VFO0dBQ1Q7R1J5SEEsU0FBU3U4QyxxQkFBcUJ0MUM7SUFDbkIsSUFBTE4sT0FBT0YsaUJBQWlCUTtJQUM1QixPQUFPTjtHQUNUO0dieElBLFNBQVM2MUM7SUFDUHJnRDs7R0FDRjtHR3NCQSxTQUFTc2dELHdCQUF5QnBqRCxHQUFHd3pDLE1BQU02UDtJQUN6QyxLQUFLbjJDLFNBQVNsTixHQUFJO0tBQ2hCLEdBQUltTixNQUFNbk4sSUFBSSxPQUFPNkY7S0FDckIsT0FBT0Esd0JBQTBCN0Y7O0lBRTFCLElBQUxtQixPQUFRbkIsY0FBVUEsT0FBTXNULGVBQWF0VDtJQUN6QyxHQUFHbUIsTUFBTW5CLE1BQUtBO0lBQ04sSUFBSnFUO0lBQ0osR0FBSXJUO0tBQVE7WUFDSEE7S0FBTyxNQUNQQSxTQUFTcVQsYUFBYyxDQUFFclQsUUFBUXFUOztLQUNuQyxNQUNFclQsT0FBUSxDQUFFQSxRQUFRcVQ7SUFFM0IsSUFBSWl3QyxXQUFXandDLG9CQUNYa3dDO0lBQ0osR0FBSXBpRDtLQUFNb2lEOztLQUNMLE9BQ0lGOztRQUNZRSxnQkFBZ0I7O1FBQ2hCQSxnQkFBZ0I7Z0JBQzFCOztJQUdYLEdBQUkvUCxhQUFhQSxVQUFXO0tBRWxCLElBQUpnUSxNQUFNampELFlBQVdpekM7S0FDckJ4ekMsSUFBSU8sV0FBV1AsSUFBSXdqRCxPQUFPQTs7SUFFbEIsSUFBTkMsUUFBUXpqRDtJQUNaLEdBQUd3ekMsVUFBVTtLQUNILElBQUozUixNQUFNNGhCO0tBQ1YsR0FBRzVoQjtNQUNENGhCLGVBQWV4akQsZ0JBQWdCdXpDO1NBRTVCO01BQ00sSUFBTHYxQixPQUFPNGpCLFVBQU0yUjtNQUNqQixHQUFHaVEsZUFBZXhsQztPQUNoQndsQyxTQUFTeGpELGdCQUFnQmdlLE9BQU93bEM7O09BRWhDQSxRQUFRQSxnQkFBZXhsQzs7O0lBRzdCLE9BQU9wWTthQUF5QjA5QyxrQkFBa0JFLGNBQWNILFdBQVdqd0M7R0FDN0U7R1FoSEEsU0FBU3F3QywrQkFBK0JDLE9BQU9DLGVBQzdDLFNBQ0Y7R1ZrV0EsU0FBU0Msa0NBQWtDN0wsT0FBTzkwQztJQUNoRDtLQUNFLElBQUltRCxXQUFXcUQsTUFBTXN1QyxZQUNqQi8wQyxNQUFNMUMsU0FBU3VhLGtCQUFrQms5QjtLQUNyQzN4QyxVQUFVckY7S0FDVixJQUFXLElBQUZvQixPQUFPQSxJQUFJYSxLQUFLYixLQUFLaUUsS0FBS2pFLFNBQU8wWSxVQUFVMVk7S0FDcEQsT0FBTzJZLGNBQWM3WCxHQUFHbUQsTUFMbkI7R0FPVDtHZTdHQSxTQUFTeTlDLFlBQVk5Z0QsS0FBSzZVO0lBQ3hCQSxLQUFLN0osT0FBTzZKO0lBQ1o7S0FBSTdVLE1BQU1sQix1QkFBdUJrQjtLQUU3QmdOO0tBQ0ErekM7S0FDQUM7S0FDQUM7S0FDQS9vQztLQUNBL1o7S0FDQStpRDtLQUNBcmlCO0tBQ0FzaUI7SUFDSixNQUFNbmhELElBQUk2K0IsYUFBYUE7SUFDdkIsT0FBT0E7S0FBTyxHQUNUNytCLElBQUk2K0I7TUFBYW9pQjthQUNYamhELElBQUk2K0I7TUFBYXFpQjthQUNqQmxoRCxJQUFJNitCO01BQWEzbUI7YUFDakJsWSxJQUFJNitCLGVBQWU3K0IsSUFBSTYrQixhQUFhMWdDLE9BQU82QixJQUFJNitCLFdBQ25EO0lBRVAsR0FBR2hxQixNQUFNN0osV0FBVyxDQUFDN00sWUFBVzBXLEtBQUtBO0lBQ3JDLE1BQUs3VSxJQUFJNitCLGVBQWE3K0IsSUFBSTYrQixhQUFXQTtLQUNuQ21pQixhQUFTQSxVQUFVaGhELElBQUk2K0I7SUFDekIsT0FBTzcrQixJQUFJNitCOzs7Z0JBQ21COztPQUNwQjd4QixVQUFVLEdBQUdpMEMsS0FBS0UsZUFBZTs7T0FDakNuMEMsVUFBVSxHQUFHaTBDLEtBQUtFLGVBQWU7O09BQ2pDbjBDLFdBQVcsR0FBR2kwQyxLQUFLRSxlQUFlOztPQUNsQ24wQyxXQUFXLEdBQUdpMEMsS0FBS0UsZUFBZUosU0FBUztlQUVuRDU0Qyx1Q0FBdUNuSTs7SUFFekMsR0FBSWtZLEtBQUtncEM7SUFDRCxJQUFKbjdDLE1BQU04TyxZQUFZN0g7SUFDdEIsR0FBSSt6QyxXQUNGaDdDLE1BQU1BO0lBRUMsSUFBTGtWLE9BQU9sVjtJQUNYLEdBQUltN0M7S0FBWSxHQUNYaHBDLElBQUs7TUFDTm5TLE1BQU01SCxPQUFPZ2pELFNBQVNwN0M7TUFDdEIsTUFBS0EsYUFBV2k3QyxRQUFRajdDLE1BQU1BLE1BQU1tN0M7O1NBQy9CO01BQ0xuN0MsTUFBTTVILE9BQU9nakQsU0FBU3A3QztNQUN0QixNQUFLQSxhQUFXaTdDLFFBQVFqN0MsTUFBTW03QyxNQUFNbjdDOztRQUVqQztLQUNHLElBQUpxN0MsTUFBTWpqRCxPQUFPZ2pEO0tBQ2pCLE1BQUtwN0MsYUFBV3E3QyxhQUFXSixRQUFRajdDLE1BQU1tN0MsTUFBTW43QztLQUMvQ0EsTUFBTXE3QyxNQUFNcjdDOztJQUVkLE9BQU9wRyx1QkFBdUJvRztHQUNoQztHQWlqQkEsU0FBU3M3QyxVQUFVeHNDO0lBRWpCLE9BQU83SixPQUFPNkosWUFBWXRYO0dBQzVCO0dBdG9CQSxTQUFTK2pELGNBQWN6c0M7SUFDckJBLEtBQUs3SixPQUFPNko7SUFDWixLQUFJNjdCLGdCQUFnQjc3QjtLQUNsQnJYLG9CQUFvQitGO0lBRXRCO0tBQUlnK0MsT0FBT3YyQztLQUNQbk4sS0FBS2dYLE9BQU8wc0M7S0FDWnhqRCxLQUFLOFcsc0JBQXNCMHNDO0tBQzNCdmtELElBQUk2ZSx3QkFBd0JoZSxJQUFJRTtJQUNwQyxPQUFPZjtHQUNUO0dUbkRBLFNBQVN3a0QsbUJBQW1Cbi9DO0lBQ2pCLElBQUxKLE9BQU9xRyxrQkFBa0JqRztJQUM3QixLQUFLSjtLQUNIa0c7SUFFRixPQUFPbEcscUJBQXFCQTtHQUM5QjtHUG5LQSxTQUFTdy9DLHNCQUF1QjE3QjtJQUFTLE9BQU81bUI7R0FBb0M7R0Q2UXBGLFNBQVN1aUQsOEJBQThCLFNBQVE7R0F0SS9DLFNBQVNDLGNBQWVoK0MsR0FDdEIsT0FBTzhkLFVBQ1Q7R2tCZ1VBLFNBQVNtZ0MsYUFBYWpzQyxJQUFJeFUsR0FDeEJ3VSxRQUFReFUsSUFDUixTQUNGO0dkcFRBLFNBQVMwZ0QsZ0JBQWlCN2tEO0lBQ3hCLEdBQUlrTixTQUFVbE4sR0FBSTtLQUNSLElBQUo4VyxVQUFTOVc7S0FDYkEsSUFBSU8sU0FBU1A7S0FDYixJQUFJb0MsSUFBSTdCLFdBQVlQLElBQ2hCa0QsSUFBSWxELElBQUlvQztLQUNaLEdBQUkwVSxJQUFLLENBQUUxVSxNQUFLQSxHQUFHYyxNQUFLQTtLQUN4QixXQUFXQSxHQUFHZDs7SUFFaEIsR0FBSStLLE1BQU9uTixJQUFJLFdBQVd5ZSxLQUFLQTtJQUMvQixlQUFhemUsR0FBR0E7R0FDbEI7R1dwS0EsU0FBUzhrRCxjQUNQLG1DQUNGO0dYME1BLFNBQVNDLG1CQUFvQi9rRCxHQUFHd0I7SUFDOUIsR0FBSXhCLE1BQU13QixHQUFHO0lBQ2IsR0FBSXhCLElBQUl3QixHQUFHO0lBQ1gsR0FBSXhCLElBQUl3QixHQUFHO0lBQ1gsR0FBSXhCLE1BQU1BLEdBQUc7SUFDYixHQUFJd0IsTUFBTUEsR0FBRztJQUNiO0dBQ0Y7R2F2RUEsU0FBU3dqRCx1QkFBdUJudEMsSUFBSStEO0lBQ2xDLE9BQU9ELFNBQVMzTixPQUFPNkosS0FBSzdKLGNBQWM0TjtHQUM1QztHcEI4S0EsU0FBU3FwQyxrQkFBa0I5a0QsR0FBRWlDLEdBQUVpNEIsS0FDN0JsdkIsbUNBQ0Y7R3NCM1VBLFNBQVMrNUMsa0JBQWtCQyxRQUFRQyxLQUFLcnNCLEtBQUtyMkI7SUFFM0M7S0FBSTJpRDtLQVFBQztLQUNBQztLQUNBcnpDO0tBQ0FzekM7S0FDQUM7S0FFQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FFQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FHQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FDQUM7S0FFQUM7S0FDQUM7SUFHSixTQUFTQyxJQUFJOW5EO0tBQ0wsSUFBRkcsSUFBSXdDLHVCQUF1QjNDO0tBQy9CNnFDLGtCQUFrQjFxQyxNQUFNeUosc0JBQXNCeko7SUFDaEQ7SUFFQSxTQUFTNG5ELFdBQVdDLE9BQU8zZjtLQUVqQixJQUFKOTZCLE1BQU1qSix3QkFBd0IwakQ7S0FDbEMsR0FBSXo2QyxrQkFDRjtLQUNGLE9BQU9BLGtCQUFrQjg2QjtJQUMzQjtJQUVBLFNBQVM0ZixZQUFZLzhCLE9BQU9nOUI7S0FFMUIsSUFBSUMsT0FBT3BxQztLQUNYLEdBQUltcUMsZUFBZXgrQyxNQUFPO01BQ3hCeStDLFFBQVFKLFdBQVc1QyxPQUFPMEMsa0JBQWtCSztNQUM1QyxVQUFXQTtPQUNUbnFDLFlBQVltcUM7cUJBQ0VBO09BQ2RucUMsT0FBT21xQztjQUNBQSxrQkFBa0JyaEQ7T0FDekJrWCxPQUFPamMsdUJBQXVCb21EOztPQUU5Qm5xQztNQUNGK3BDLGVBQWU1OEIsMEJBQTBCaTlCLGNBQWNwcUM7O1NBQ2xEO01BQ0xvcUMsUUFBUUosV0FBVzVDLE9BQU95QyxrQkFBa0JNO01BQzVDSixlQUFlNThCLDBCQUEwQmk5Qjs7SUFFN0M7SUFFQSxLQUFLaEQsYUFBYztLQUNqQkEsZ0JBQWdCbDdCLGVBQWdCazdCLE9BQU9pQztLQUN2Q2pDLGdCQUFnQmw3QixlQUFnQms3QixPQUFPbUM7S0FDdkNuQyxlQUFnQmw3QixlQUFnQms3QixPQUFPd0M7S0FDdkN4QyxnQkFBZ0JsN0IsZUFBZ0JrN0IsT0FBT29DO0tBQ3ZDcEMsZUFBZ0JsN0IsZUFBZ0JrN0IsT0FBT3VDO0tBQ3ZDdkMsYUFBZ0JsN0IsZUFBZ0JrN0IsT0FBT2dDO0tBQ3ZDaEMsYUFBZ0JsN0IsZUFBZ0JrN0IsT0FBTytCO0tBQ3ZDL0IsZ0JBQWdCbDdCLGVBQWdCazdCLE9BQU9xQztLQUN2Q3JDLGVBQWdCbDdCLGVBQWdCazdCLE9BQU9rQzs7SUFHekM7S0FBSXQrQztLQUFTN0k7S0FBR3U0QztLQUFJMlA7S0FBSUM7S0FHcEJDLEtBQUtsRCxJQUFJeUI7S0FDVDM3QixRQUFRazZCLElBQUkwQjtLQUNaeUIsVUFBVW5ELElBQUkyQjtJQUVsQjtJQUFLO0tBQVM7S0FDUCxPQUFPaHVCOztRQUVWN04sV0FDQXE5Qjs7UUFJQXJvRCxJQUFJaWxELGNBQWNqNkI7UUFDbEIsR0FBSWhyQixPQUFRLENBQUU2NEIsTUFBTTBzQixRQUFRO1FBQzVCLEdBQUlMLElBQUlrQixvQkFBcUIsQ0FBRXZ0QixNQUFNd3NCLFdBQVc7UUFDaER4OEMsTUFBTTI4QztRQUNOOztRQUlBLEdBQUloakQsZUFBZWdILE1BQU87U0FDeEIwN0MsSUFBSWtCLGlCQUFpQm5CLE9BQU84QixrQkFBa0J2a0Q7U0FDOUMwaUQsSUFBSW1CLFlBQVk3akQ7O1lBQ1g7U0FDTDBpRCxJQUFJa0IsaUJBQWlCbkIsT0FBTzZCLGtCQUFrQnRrRDtTQUM5QzBpRCxJQUFJbUI7O1FBRU4sR0FBSXZzQyxtQkFBbUJpdUMsWUFBYS84QixPQUFPeG9COztRQUkzQysxQyxLQUFLME0sY0FBY2o2QjtRQUNuQms5QixLQUFLM1AsS0FBSzJNLElBQUlrQjtRQUNkO1VBQUk3TixXQUFXMlAsV0FBV0EsTUFBTWpELE9BQU9zQzthQUNuQ3RDLGFBQWFpRCxPQUFPaEQsSUFBSWtCLGVBQWdCLENBQzFDdnRCLE1BQU03bUIsT0FBTztRQUVmdW1DLEtBQUswTSxjQUFjajZCO1FBQ25CazlCLEtBQUszUCxLQUFLMk0sSUFBSWtCO1FBQ2Q7VUFBSTdOLFdBQVcyUCxXQUFXQSxNQUFNakQsT0FBT3NDO2FBQ25DdEMsYUFBYWlELE9BQU9oRCxJQUFJa0IsZUFBZ0I7U0FDMUNwbUQsSUFBSWlsRCxhQUFhaUQ7U0FDakJydkIsTUFBTTBzQjtTQUFROztRQUVoQixHQUFJOEMsYUFBYyxDQUNoQngvQyxNQUFNZzlDLHFCQUNOOztRQUtGLEdBQUl3QyxZQUFhO1NBQ2ZBO1NBQ0EsT0FBUztVQUNQRixTQUFTakQsSUFBSVksYUFBYXNDO1VBQzFCN1AsS0FBSzBNLGNBQWNrRDtVQUNuQkQsS0FBSzNQLEtBQUs0TTtVQUNWO1lBQUk1TSxXQUFXMlAsV0FBV0EsTUFBTWpELE9BQU9zQztlQUNuQ3RDLGFBQWFpRCxPQUFPL0MsUUFBUztXQUMvQixHQUFJcnJDLG1CQUNGOHRDLDZCQUE2Qk87V0FDL0J0dkIsTUFBTXlzQjtXQUFlOztjQUNoQjtXQUNMLEdBQUl4ckMsbUJBQ0Y4dEMsMEJBQTBCTztXQUM1QixHQUFJQyxNQUFNbEQsSUFBSWlCLGVBQWdCO1lBQzVCLEdBQUlyc0MsbUJBQ0Y4dEM7WUFDRixPQUFPbkM7O1dBR1QyQzs7OztZQUdDO1NBQ0wsR0FBSWxELElBQUlrQixxQkFDTixPQUFPWDtTQUNULEdBQUkzckMsbUJBQ0Y4dEM7U0FDRjFDLElBQUlrQjtTQUNKdnRCLE1BQU11c0I7U0FBTTs7O1FBSWRGLElBQUlrQixzQkFDSixHQUFJaUMsYUFBYUE7O1FBR2pCLEdBQUl2dUM7U0FDRjh0QyxlQUFlNThCLDhCQUE4Qmk2QixhQUFhaUQ7UUFDNURsOUIsUUFBUWk2QixhQUFhaUQ7UUFDckJFO1FBQ0EsR0FBSUEsTUFBTWxELElBQUlnQixlQUFnQixDQUM1QnI5QyxNQUFNNjhDLGVBQ047O1FBS0ZSLElBQUlZLGFBQWFzQyxVQUFVcDlCO1FBQzNCazZCLElBQUlhLGFBQWFxQyxVQUFVbEQsSUFBSW1CO1FBQy9CbkIsSUFBSWMsc0JBQXNCb0MsVUFBVWxELElBQUlvQjtRQUN4Q3BCLElBQUllLG9CQUFvQm1DLFVBQVVsRCxJQUFJcUI7UUFDdEMxdEIsTUFBTXVzQjtRQUNOOztRQUdBLEdBQUl0ckMsbUJBQ0Y4dEMsZUFBZTU4Qiw4QkFBOEJockI7UUFDekMsSUFBRnFKLElBQUk0N0MsV0FBV2psRDtRQUNuQmtsRCxJQUFJc0IsV0FBVzRCO1FBQ2ZsRCxJQUFJd0IsbUJBQW1CMW1EO1FBQ3ZCa2xELElBQUl1QixnQkFBZ0JwOUM7UUFDcEIrK0MsS0FBS0EsS0FBSy8rQztRQUNWQSxJQUFJNDdDLFdBQVdqbEQ7UUFDZm1vRCxTQUFTakQsSUFBSVksYUFBYXNDO1FBQzFCN1AsS0FBSzBNLGNBQWM1N0M7UUFDbkI2K0MsS0FBSzNQLEtBQUs0UDtRQUNWO1VBQUk1UCxXQUFXMlAsV0FBV0EsTUFBTWpELE9BQU9zQzthQUNuQ3RDLGFBQWFpRCxPQUFPQztTQUN0Qm45QixRQUFRaTZCLGFBQWFpRDs7U0FFckJsOUIsUUFBUWk2QixhQUFhNTdDO1FBQ3ZCLEdBQUkrK0MsTUFBTWxELElBQUlnQixlQUFnQixDQUM1QnI5QyxNQUFNODhDLGVBQ047O1FBS0Y5OEMsTUFBTSs4Qyx5QkFDTjs7UUFHQVYsSUFBSVksYUFBYXNDLFVBQVVwOUI7UUFDM0JrNkIsSUFBSWEsYUFBYXFDLFVBQVU1bEQ7UUFDbkIsSUFBSjhsRCxNQUFNcEQsSUFBSXNCO1FBQ2R0QixJQUFJZSxvQkFBb0JtQyxVQUFVbEQsSUFBSWUsb0JBQW9CcUM7UUFDMUQsR0FBSUYsS0FBS0U7U0FFUHBELElBQUljLHNCQUFzQm9DLFVBQVVsRCxJQUFJZSxvQkFBb0JxQztRQUU5RHp2QixNQUFNdXNCO1FBQU07Z0JBR1osT0FBT0s7O0lBSVhQLElBQUl5QixVQUFVeUI7SUFDZGxELElBQUkwQixhQUFhNTdCO0lBQ2pCazZCLElBQUkyQixlQUFld0I7SUFDbkIsT0FBT3gvQztHQUNUO0dqQmhLQSxTQUFTMC9DLHdCQUF3QjE2QyxNQUMvQixTQUNGO0dvQjdHQSxTQUFTMjZDLGtCQUFtQjFvRCxHQUFHd0I7SUFDN0IsVUFBV0EsaUJBQWlCLENBQUV4QixRQUFRd0IsR0FBRztJQUN6QyxHQUFJQSxNQUFRLENBQUV4QixRQUFRd0IsT0FBTztJQUN2QixJQUFGWSxJQUFJWjtJQUFVLE1BQU9ZLEtBQUtwQyxFQUFFb0MsS0FBS1osRUFBRVk7SUFBSTtHQUM3QztHUWtFQSxTQUFTdW1ELGdCQUFnQmw0QixPQUFPNVgsS0FBSzVWLEtBQUtrQjtJQUN4QyxJQUFVLElBQUYvQixPQUFPQSxJQUFJYSxLQUFLYixLQUN0QnF1QixNQUFNNVgsTUFBSXpXLFNBQU8rQjtJQUVuQjtHQUNGO0d2QitKQSxTQUFTeWtELGVBQWV2akQsTUFBTXdzQjtJQUNuQixJQUFMNXNCLE9BQU9xRyxrQkFBa0JqRztJQUM3Qkosa0JBQWtCQSxXQUFVNHNCO0lBQzVCO0dBQ0Y7R1YwUkEsU0FBU2czQixxQkFBcUIvZ0QsSUFBSUU7SUFBTSxXQUFTbWtDLGtCQUFrQnJrQyxJQUFJRTtHQUFLO0dBeUM1RSxTQUFTOGdELHVCQUF1QmhoRCxJQUFJRSxJQUNsQyxPQUFPK3NCLG9CQUFvQi9zQixJQUFJRjtHQUNqQztHY3RMQSxTQUFTaWhELG1CQUFtQng1QztJQUMxQjtLQUFJcFAsSUFBSWdNO0tBQ0pqTCxJQUFJcU87S0FDSmlSLElBQUlqUjtLQUNKbEQsS0FBS2xNLDBCQUEwQnFnQixHQUFFdGY7SUFDckMsSUFBUyxJQUFEa0IsT0FBSUEsSUFBRWxCLEdBQUVrQjtLQUFJLElBQ1QsSUFBRGdDLE9BQUlBLElBQUVvYyxHQUFFcGMsSUFBSTtNQUNsQixJQUFJakIsSUFBSW9NLElBQUluTixPQUFLZ0MsUUFDYndHLElBQUl4SSxLQUFHb2UsU0FBUXBjO01BQ25CLEdBQUdqQixTQUFTO09BQ1ZrSixRQUFRekI7T0FDUnlCLFFBQVF6QjtPQUNSeUIsUUFBUXpCO09BQ1J5QixRQUFRekI7O1VBQ0g7T0FDTHlCLFFBQVF6QixTQUFTekg7T0FDakJrSixRQUFRekIsU0FBU3pIO09BQ2pCa0osUUFBUXpCLFNBQVN6SDtPQUNqQmtKLFFBQVF6Qjs7O0lBSWQsT0FBT3lCO0dBQ1Q7R0czTkEsU0FBUzI4QywyQkFBMkJwN0MsUUFBTzFLO0lBQ2hDLElBQUxvSyxPQUFPRixpQkFBaUJRO0lBQzVCTix1QkFBeUJuTixHQUFJK0MsRUFBRS9DLEdBQWhCO0lBQ2Y7R0FDRjtHUHVIQSxTQUFTOG9ELHVCQUF3QjVqRDtJQUMvQjtLQUFJQSxjQUFlQSxtQkFBa0IxQyx1QkFBdUIwQyxRQUFNQTtLQUM5REosT0FBT3FHLGtCQUFrQmpHO0lBQzdCLEdBQUdKLG1CQUFtQkEsV0FBWTtLQUNoQztNQUFJMkQsT0FBTzNELGlCQUFpQkE7TUFDeEJoQyxNQUFPMkY7TUFDUFAsVUFBVWpCLFdBQVduRTtLQUN6QjJGLGFBQVlQLFFBQU1wRjtLQUNsQixPQUFPMDFCLHFCQUFxQnR3Qjs7SUFFOUJiLHdCQUF3QjFGLHVCQUF1QnVEO0dBQ2pEO0dMOUlBLFNBQVM2akQsaUJBQWlCbHBELEdBQUssT0FBT0EsRUFBRztHRm1LekMsU0FBU21wRDtJQUNLLElBQVJubkQsVUFBVUM7SUFDZCxHQUFHRCxXQUFXQTtLQUNaQTs7Z0JBQTBDcUksS0FBSysrQztRQUM3QzNmLDhCQUE4QnAvQjtRQUM5QnJJO09BRjhCO1lBSzFCQztLQUNOQTs7Z0JBQThDMGhEO1FBQzVDLEdBQUdBLGFBQ0RsYSw4QkFBOEJrYTtPQUZHO0dBTXpDO0dBQ0F3Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0U7Ozs7Ozs7Ozs7Ozs7Ozs7O1ltQ3lKUUU7a0NBa0NZOzs7V0E5QlJDLGlCQUNSLFdBTElELFVBSUlDOztXQUVFQyxtQkFDVixXQVBJRixVQU1NRTs7V0FFSEMsbUJBQ1AsV0FUSUgsVUFRR0c7O1dBRUVDLG1CQUNULFdBWElKLFVBVUtJOztXQUlJQyxtQkFDYixXQWZJTCxVQWNTSzs7V0FGSkMsbUJBQ1QsV0FiSU4sVUFZS007O1dBSUFDLG1CQUNULFdBakJJUCxVQWdCS087O1dBRURDLG1CQUNSLFdBbkJJUixVQWtCSVE7O1dBRVdDLG1CQUFKQztPQUNmLFdBRGVBLElBcEJYVixVQW9CZVM7O1dBRVNFLG1CQUFYQztPQUNqQixXQURpQkEsVUF0QmJaLFVBc0J3Qlc7O1dBRW5CRSxtQkFDVCxZQXpCSWIsVUF3QkthOztXQUVBQyxvQkFDVCxZQTNCSWQsVUEwQktjOztXQUVGQyxvQkFDUCxZQTdCSWYsVUE0QkdlOztXQUVHQyxvQkFDVixZQS9CSWhCLFVBOEJNZ0I7bUJBRVFDLG9CQUNsQixZQWpDSWpCLFVBZ0NjaUI7O0dBRVU7WUFpQnhCQyxhQVdKQyxRQUFPQztJQUFVLFVBQWpCRCxxQkErQmdCLE9BL0JUQztXQUFQRDs7V0FDUWxCLE9BRFJrQixXQUVBLFdBYklELGFBWUlqQixNQUREbUI7O1dBR0dsQixTQUhWaUIsV0FJQSxXQWZJRCxhQWNNaEIsUUFISGtCOztXQUtBakIsU0FMUGdCLFdBTUEsV0FqQklELGFBZ0JHZixRQUxBaUI7O1dBT0VoQixTQVBUZSxXQVFBLFdBbkJJRCxhQWtCS2QsUUFQRmdCOztXQVNNZixTQVRiYyxXQVVBLFdBckJJRCxhQW9CU2IsUUFUTmU7O1dBV0VkLFNBWFRhLFdBWUEsV0F2QklELGFBc0JLWixRQVhGYzs7V0FhRWIsU0FiVFksV0FjQSxXQXpCSUQsYUF3QktYLFFBYkZhOztXQWVDWixTQWZSVyxXQWdCQSxXQTNCSUQsYUEwQklWLFFBZkRZOztXQTJCWVgsU0EzQm5CVSxXQTJCZVQsS0EzQmZTO09BNEJBLFdBRGVULElBdENYUSxhQXNDZVQsUUEzQlpXOztXQTZCb0JULFNBN0IzQlEsV0E2QnNCRSxNQTdCdEJGLFdBNkJpQlAsTUE3QmpCTztPQThCQSxXQURpQlAsS0FBS1MsS0F4Q2xCSCxhQXdDdUJQLFFBN0JwQlM7O1dBaUJFUCxTQWpCVE0sV0FrQkEsWUE3QklELGFBNEJLTCxRQWpCRk87O1dBbUJFTixVQW5CVEssV0FvQkEsWUEvQklELGFBOEJLSixTQW5CRk07O1dBcUJBTCxVQXJCUEksV0FzQkEsWUFqQ0lELGFBZ0NHSCxTQXJCQUs7O1dBdUJHSixVQXZCVkcsV0F3QkEsWUFuQ0lELGFBa0NNRixTQXZCSEk7O1dBeUJXSCxVQXpCbEJFLFdBMEJBLFlBckNJRCxhQW9DY0QsU0F6QlhHOztHQStCZTtZQU1sQkUsV0FJSkMsTUFBS0M7SUFBUSxVQUFiRCxtQkEyREEsT0EzREtDO1dBQUxEOztXQWlCS3RCLE9BakJMc0IsU0FrQkEsV0F0QklELFdBcUJDckIsTUFqQkF1Qjs7V0FtQkt0QixTQW5CVnFCLFNBb0JBLFdBeEJJRCxXQXVCTXBCLFFBbkJMc0I7O1dBQ1FyQixTQURib0IsU0FDUUUsTUFEUkY7T0FFQSxXQURRRSxLQUxKSCxXQUtTbkIsUUFEUnFCOztXQUdhcEIsU0FIbEJtQixTQUdhRyxRQUhiSDtPQUlBLFdBRGFHLE9BUFRKLFdBT2NsQixRQUhib0I7O1dBTWtCbkIsU0FOdkJrQixTQU1pQkksT0FOakJKLFNBTVlLLFFBTlpMLFNBTUtNLFFBTkxOO09BT0EsV0FES00sT0FBT0QsT0FBS0QsTUFWYkwsV0FVbUJqQixRQU5sQm1COzs7UUFRb0JsQixTQVJ6QmlCO1FBUW1CTyxTQVJuQlA7UUFRY1EsUUFSZFI7UUFRT1MsVUFSUFQ7T0FTQSxXQURPUyxTQUFPRCxPQUFLRCxRQVpmUixXQVlxQmhCLFFBUnBCa0I7OztRQVV3QmpCLFNBVjdCZ0I7UUFVdUJVLFNBVnZCVjtRQVVrQlcsUUFWbEJYO1FBVVdZLFVBVlhaO09BV0EsV0FEV1ksU0FBT0QsT0FBS0QsUUFkbkJYLFdBY3lCZixRQVZ4QmlCOzs7UUFZb0JoQixTQVp6QmU7UUFZbUJhLFNBWm5CYjtRQVljYyxRQVpkZDtRQVlPZSxVQVpQZjtPQWFBLFdBRE9lLFNBQU9ELE9BQUtELFFBaEJmZCxXQWdCcUJkLFFBWnBCZ0I7OztRQWNvQmYsU0FkekJjO1FBY21CZ0IsU0FkbkJoQjtRQWNjaUIsUUFkZGpCO1FBY09rQixRQWRQbEI7T0FlQSxXQURPa0IsT0FBT0QsT0FBS0QsUUFsQmZqQixXQWtCcUJiLFFBZHBCZTs7V0FxQk1iLFNBckJYWSxTQXFCTW1CLFFBckJObkI7T0FzQkEsV0FETW1CLE9BekJGcEIsV0F5Qk9YLFFBckJOYTs7V0ErQkNYLFNBL0JOVSxTQWdDQSxZQXBDSUQsV0FtQ0VULFFBL0JEVzs7V0FrQ2dCVixVQWxDckJTLFNBa0NnQm9CLE1BbENoQnBCO09BbUNBLFlBRGdCb0IsS0F0Q1pyQixXQXNDaUJSLFNBbENoQlU7O1dBb0NjVCxVQXBDbkJRLFNBb0NjcUIsTUFwQ2RyQjtPQXFDQSxZQURjcUIsS0F4Q1Z0QixXQXdDZVAsU0FwQ2RTOztXQXVDbUJSLFVBdkN4Qk8sU0F1Q2lCc0IsUUF2Q2pCdEIsU0F1Q1l1QixRQXZDWnZCO09Bd0NBLFlBRFl1QixPQUFLRCxPQTNDYnZCLFdBMkNvQk4sU0F2Q25CUTs7V0F5Q3FCUCxVQXpDMUJNLFNBeUNtQndCLFVBekNuQnhCLFNBeUNjeUIsUUF6Q2R6QjtPQTBDQSxZQURjeUIsT0FBS0QsU0E3Q2Z6QixXQTZDc0JMLFNBekNyQk87O1dBdUJDeUIsVUF2Qk4xQixTQXdCQSxZQTVCSUQsV0EyQkUyQixTQXZCRHpCOztXQXlCQzBCLFVBekJOM0IsU0EwQkEsWUE5QklELFdBNkJFNEIsU0F6QkQxQjs7V0FxRHVCMkIsVUFyRDVCNUIsU0FxRGdCNkIsYUFyRGhCN0I7T0FzREEsWUFEZ0I2QixZQXpEWjlCLFdBeUR3QjZCLFNBckR2QjNCOztXQXVEdUI2QixVQXZENUI5QixTQXVEZ0IrQixhQXZEaEIvQjtPQXdEQSxZQURnQitCLFlBM0RaaEMsV0EyRHdCK0IsU0F2RHZCN0I7O1dBNkJFK0IsVUE3QlBoQyxTQThCQSxZQWxDSUQsV0FpQ0dpQyxTQTdCRi9COztXQTRDK0JnQyxVQTVDcENqQyxTQTRDMEJrQyxXQTVDMUJsQyxTQTRDZW1DLFlBNUNmbkM7T0E2Q0EsWUFEZW1DLFdBQVdELFVBaER0Qm5DLFdBZ0RnQ2tDLFNBNUMvQmhDOztXQThDc0JtQyxVQTlDM0JwQyxTQThDa0JxQyxVQTlDbEJyQztPQStDQSxZQURrQnFDLFNBbERkdEMsV0FrRHVCcUMsU0E5Q3RCbkM7O1dBZ0RVcUMsVUFoRGZ0QyxTQWlEQSxZQXJESUQsV0FvRFd1QyxTQWhEVnJDOztXQWtEZXNDLFVBbERwQnZDLFNBa0Rld0MsTUFsRGZ4QztPQW1EQSxZQURld0MsS0F0RFh6QyxXQXNEZ0J3QyxTQWxEZnRDOztXQTJCYXdDLFVBM0JsQnpDLFNBMkJlMEMsSUEzQmYxQyxTQTJCUTJDLFFBM0JSM0M7T0E0QkEsWUFEUTJDLE9BQU9ELEdBL0JYM0MsV0ErQmMwQyxTQTNCYnhDOztHQTJERDtzQ0EvR0FOLGNBbkRBbEIsV0FtR0FzQjs7OztFRG5uQlQ7Ozs7Ozs7WUUyQks2QyxLQUFLQyxHQUFJLFdBQUpBLEdBQU87WUFDWkMsSUFBSUMsR0FBSSxPQUFKQSxLQUFPO1lBQ1hDLElBQUlELEdBQUVGLEdBQUZFLE9BQUVGLFlBQVk7WUFNSEksU0FBU0YsR0FBRUYsR0FFNUIsSUFBSUssTUFGc0JILGFBQUVGLEdBSzVCLE9BSElLLElBR0Q7WUFFY0MsZ0JBQWdCSixHQUFFSyxNQUFLUDtJQUV4QyxJQUFJSyxNQUY2Qkg7V0FFN0JHLFFBRitCRSxRQUFGTCxPQUFPRjtHQVFqQztZQUVVUSxjQUFjTixHQUFFTztJQUVqQyxJQUFJSixNQUYyQkg7V0FFM0JHLE1BRjZCSTtJQUtqQyxPQUhJSjtHQUdEO1lBRURLLEtBQUtSLEdBUFVNLGNBT1ZOLE9BQVcsU0FBbUI7WUFDbkNTLEtBQUtULEdBUlVNLGNBUVZOLFFBQVcsU0FBc0I7Ozs7T0FqQ3RDSDtPQUNBRTtPQUNBRTtPQU1lQztPQU9BRTtPQVVBRTtPQU9mRTtPQUNBQzs7O0VGNURMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUc2QktDLFNBQVNDO0lBQUksK0NBQUpBO0dBQW9CO1lBQzdCQyxZQUFZRDtJQUFJLHdEQUFKQTtHQUE2QjtHQUU3QztZQTBDSUUsSUFBSUMsR0FBRUMsR0FBSSxPQUFHLHVCQUFURCxHQUFFQyxLQUFGRCxJQUFFQyxFQUEyQjtZQUNqQ0MsSUFBSUYsR0FBRUMsR0FBSSxPQUFHLDBCQUFURCxHQUFFQyxLQUFGRCxJQUFFQyxFQUEyQjtZQXlCakNFLElBQUlILEdBQUksWUFBSkEsZ0JBQTRCO1lBTWhDSSxLQUFLSixHQUFJLE9BQUpBLE9BQWU7R0E0RXRCO0lBREVLLFdBQ0Y7SUFDRUMsZUFDRjtJQUNFQyxNQUNGO0lBQ0VDLFlBQ0Y7SUFDRUMsWUFDRjtJQUNFQyxnQkFDRjtJQWhGRUM7SUFDQUM7WUFxR0FDLE9BQU1DLElBQUdDO0lBQ1g7S0FBSUMsMkJBRElGO0tBQ3NCRywyQkFEbkJGO0tBRVBsQixJQUFJLGtCQURKbUIsS0FBMEJDO0lBRTlCLGlCQUhRSCxPQUVKakIsTUFEQW1CO0lBR0osaUJBSldELE9BRVBsQixHQURBbUIsSUFBMEJDO2dDQUMxQnBCO0dBR29CO1lBTXRCcUIsWUFBWXpCO0lBQ2QsUUFEY0EsZUFDMEMsT0FEMUNBO0lBQ1csT0FwTXZCSztHQW9NMEU7WUE2QjFFcUIsZUFBZUMsR0FDakIsT0FEaUJBLHlCQUNZO1lBQzNCQztJQUFpQjs7O2dCQW5PakJ2Qjs7O0dBc09pQztZQUVqQ3dCO0lBQXFCOzs7R0FHWjtZQUVUQyxjQUFjOUIsR0FDaEIsWUFEZ0JBLEVBQ0M7WUFJZitCLGtCQUFrQjNCO0lBRXBCLElBQUksY0FBSyxtQkFGV0EsS0FFaEI7Ozs0QkFDYzs7O0dBQUk7WUFJcEI0QixrQkFBa0I1QjtJQUNwQixJQUFJNkIsMEJBRGdCN0IsSUFFUDhCO0lBQ1g7UUFGRUQsS0FDU0MsR0FDSSxPQXBFZmQsT0FpRWtCaEI7S0FJWixvQ0FKWUEsR0FFUDhCOzs7OztvQkFBYixPQUZvQjlCO0tBS0ksSUFIWCtCOztHQU1QO1lBRUpDLGdCQUFnQmhEO0lBQUksT0FWcEI0QyxrQkFVc0MsbUNBQXRCNUM7R0FBOEM7WUFJOURpRCxvQkFBb0JqQztJQUV0QixJQUFJLGNBQUsscUJBRmFBLEtBRWxCOzs7NEJBQ2M7OztHQUFJO1lBSWhCa0MsU0FBTWYsSUFBR0M7SUFDZixLQURZRCxJQUVKLE9BRk9DO1FBR1BlLEtBSEloQixPQUdWaUIsS0FIVWpCO0lBR0UsV0FBWmlCLElBSElGLFNBR0VDLElBSE9mO0dBR2M7R0FXbkI7SUFBUmlCLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxTQUFTO1lBY1RDLGFBQWFDLE1BQUtDLE1BQUtDO0lBQ2pCLElBQUpDLElBQUksNEJBQW1CLGNBREZELE1BQVZGLE1BQUtDO0lBRXBCLHlCQURJRSxHQURxQkQ7SUFFekIsT0FESUM7R0FFSDtZQUVDQyxTQUFTRixNQUNYLE9BTkVILHVCQUtTRyxNQUM2RDtZQUV0RUcsYUFBYUgsTUFDZixPQVRFSCx1QkFRYUcsTUFDMkQ7WUFPeEVJO0lBQ0YsY0FTUTtJQVRPO21CQUNMO1NBQ0hsQixnQkFBSG1CO0tBQ0UsSUFDSSxjQUZOQTs7Ozs7bUJBQUduQjs7R0FPdUI7WUFTNUJvQixhQUFhQyxJQUFHbEQ7SUFDbEIsNEJBRGVrRCxJQUFHbEQ7R0FDbUI7WUFFbkNtRCxjQUFjRCxJQUFHbEQ7SUFDbkIsc0JBRGdCa0QsSUFBR2xEO0dBQzBCO1lBRTNDb0QsT0FBT0YsSUFBR2xELEdBQUVxRCxLQUFJQztJQUNsQixRQURjRCxZQUFJQyw2QkFBTnRELEtBQU1zRCxZQUFKRDtLQUdULDRCQUhJSCxJQUFHbEQsR0FBRXFELEtBQUlDO0lBRWIsT0F2VkhyRDtHQXdWNkI7WUFFN0JzRCxpQkFBaUJMLElBQUdsRCxHQUFFcUQsS0FBSUM7SUFDNUIsUUFEd0JELFlBQUlDLDhCQUFOdEQsS0FBTXNELFlBQUpEO0tBR25CLHNCQUhjSCxJQUFHbEQsR0FBRXFELEtBQUlDO0lBRXZCLE9BNVZIckQ7R0E2Vm9DO1lBT3BDdUQsYUFBYUMsTUFBS3RFO0lBQUksaUNBQVRzRSxNQUFLdEU7R0FBZ0M7WUFNbER1RSxVQUFVUjtJQUFLLGNBQUxBO0lBQWUsNkJBQWZBO0dBQW1DO1lBQzdDUyxnQkFBZ0JUO0lBQ2xCLElBQUssY0FEYUE7SUFFbEIsSUFBSyxnQ0FGYUEsS0FFYix1QkFBK0I7R0FBRztZQVNyQ1UsWUFBWW5CLE1BQUtDLE1BQUtDO0lBQ2hCLElBQUpDLElBQUksMkJBQWtCLGNBREZELE1BQVZGLE1BQUtDO0lBRW5CLHlCQURJRSxHQURvQkQ7SUFFeEIsT0FESUM7R0FFSDtZQUVDaUIsUUFBUWxCLE1BQ1YsT0FORWlCLG9CQUtRakIsTUFDaUM7WUFFekNtQixZQUFZbkIsTUFDZCxPQVRFaUIsb0JBUVlqQixNQUMrQjtZQU8zQ29CLE1BQU1DLElBQUdoRSxHQUFFcUQsS0FBSUM7SUFDakIsUUFEYUQsWUFBSUMsNkJBQU50RCxLQUFNc0QsWUFBSkQ7S0FHUixxQkFIR1csSUFBR2hFLEdBQUVxRCxLQUFJQztJQUVaLE9BeFlIckQ7R0F5WTRCO1lBRXhCZ0Usb0JBQW9CRCxJQUFHaEUsR0FBRXFELEtBQUlDO0lBQ25DLElBRCtCWSxhQUFJQztJQUNuQzthQURtQ0EsT0FDbEI7S0FDUCxJQUFKOUUsSUFBSSxjQUZnQjJFLElBQUdoRSxHQUFFa0UsT0FBSUM7S0FHakMsU0FESTlFLEdBRUM7O01BSjRCK0UsZ0JBRTdCL0U7TUFGeUJnRixnQkFFekJoRjtNQUZ5QjZFO01BQUlDOztHQU1oQztZQUVERyxhQUFhTixJQUFHaEUsR0FBRXFELEtBQUlDO0lBQ3hCLFFBRG9CRCxZQUFJQyw2QkFBTnRELEtBQU1zRCxZQUFKRDtLQUdmLE9BWENZLG9CQVFTRCxJQUFHaEUsR0FBRXFELEtBQUlDO0lBRW5CLE9BclpIckQ7R0FzWm1DO1lBRW5Dc0Usb0JBQW9CUCxJQUFHVjtJQUNqQixJQUFKdEQsSUFBSSxrQkFEaUJzRDtJQUx2QmdCLGFBS29CTixJQUNsQmhFLE1BRHFCc0Q7Z0NBQ3JCdEQ7R0FFb0I7WUFJdEJ3RSxXQUFXZjtJQUNiLFNBQVFnQixhQUFhQztTQUFJQzs7b0JBQ2pCLE9BRGFEO01BR2pCLElBREl2QyxpQkFBTkMsaUJBQ01rQixNQUFKLHFCQURGbEI7TUFFRSx3QkFGRkEsT0FGbUJzQyxLQUFJQyxRQUdqQnJCO2tCQUhpQnFCLFFBR2pCckIsU0FIaUJxQix5QkFFakJ4Qzs7O1FBSUt5QyxVQUFLdEI7SUFDaEI7S0FBUSxJQUFKMUQsSUFBSSxnQ0FSRzZEO0tBU1gsU0FESTdEO1dBRE9nRixNQUlEO2dCQVZKSCxhQVdpQixrQkFMUG5CLFdBQUxzQjs7O2NBQ1BoRjtPQWNRLElBQU5pRixNQUFNLG9CQWRSakY7T0FlSSxjQXZCRzZELE1Bc0JMb0IsVUFkRmpGO09BZ0JHO1FBakJTd0UsY0FDWnhFO1FBRE9rRixhQWVMRCxLQWZLRDs7UUFBS3RCOzs7TUFPSixJQUFOeUIsTUFBTSxrQkFOUm5GO01BT0ssY0FmRTZELE1BY0xzQixRQU5GbkY7TUFRSyxtQkFoQkU2RDtTQU9BbUI7O1FBWUdULFNBWkViLE1BQ1oxRDtjQVBFNkUsYUFtQmlCLGtCQURUTixtQkFMUlksS0FQS0g7O2lCQU9MRzs7S0FZa0I7O0dBQVc7WUFTbkNDLGVBQWVoQjtJQUFLLElBQUssZ0NBQVZBLEtBQVUsdUJBQXNCO0dBQUc7WUFNbERpQixXQUFXckMsR0FBSSwyQkEzS2ZOLFFBMktXTSxHQUF3QjtZQUNuQ3NDLGFBQWFsRixHQUFJLE9BdkhqQm1ELGNBckRBYixRQTRLYXRDLEdBQTBCO1lBQ3ZDbUYsWUFBWW5GLEdBQUksT0EzSGhCaUQsYUFsREFYLFFBNktZdEMsR0FBeUI7WUFDckNvRixVQUFVdEQsR0FBSSxPQXpIZHFCLGNBckRBYixhQThLVVIsR0FBMEM7WUFDcER1RCxZQUFZckcsR0FBSSxPQTFIaEJtRSxjQXJEQWIsUUExQkFOLGdCQXlNWWhELElBQTRDO1lBQ3hEc0csY0FBY3RGO0lBM0hkbUQsY0FyREFiLFFBZ0xjdEM7SUFDUSxvQkFqTHRCc0M7SUFpTCtDLHFCQWpML0NBO0dBaUwyRDtZQUMzRGlEO0lBQW1CLG9CQWxMbkJqRDtJQWtMNEMscUJBbEw1Q0E7R0FrTHdEO1lBSXhEa0QsV0FBVzVDLEdBQUksMkJBckxmTCxRQXFMV0ssR0FBd0I7WUFDbkM2QyxhQUFhekYsR0FBSSxPQWxJakJtRCxjQXBEQVosUUFzTGF2QyxHQUEwQjtZQUN2QzBGLFlBQVkxRixHQUFJLE9BdEloQmlELGFBakRBVixRQXVMWXZDLEdBQXlCO1lBQ3JDMkYsVUFBVTdELEdBQUksT0FwSWRxQixjQXBEQVosYUF3TFVULEdBQTBDO1lBQ3BEOEQsWUFBWTVHLEdBQUksT0FySWhCbUUsY0FwREFaLFFBM0JBUCxnQkFvTlloRCxJQUE0QztZQUN4RDZHLGNBQWM3RjtJQXRJZG1ELGNBcERBWixRQTBMY3ZDO0lBQ1Esb0JBM0x0QnVDO0lBMkwrQyxxQkEzTC9DQTtHQTJMMkQ7WUFDM0R1RDtJQUFtQixvQkE1TG5CdkQ7SUE0TDRDLHFCQTVMNUNBO0dBNEx3RDtZQUl4RHdELGlCQUFlLGNBak1mekQsU0FEUSxPQW1JUmtDLFdBbklBbkMsT0FrTTZDO1lBQzdDMkQsZ0JBQWMsMEJBRGRELGNBQ3dDO1lBQ3hDRSxvQkFBa0IsT0E5T2xCdEUsa0JBNE9Bb0UsY0FFZ0Q7WUFDaERHLGtCQUFnQiw0QkFIaEJILGNBRzRDO1lBQzVDSSxzQkFBb0IsT0EzTnBCbEUsb0JBdU5BOEQsY0FJb0Q7WUEwQnBESyw0QkFBZ0MxSSxnQkFBUSxPQUFSQTtZQU1oQzJJO0lBRU07S0FGc0NDO0tBQU4vSjtLQUFoQmdLO0tBQU5qSztLQUVWLE1BNVVOMEUsT0EwVXNCdUYsTUExVXRCdkYsY0EwVTRDc0Y7SUFDOUMsV0FBUSx3Q0FEVWhLLE1BQXNCQzs7R0FRdEIsSUFBaEJpSyxnQkFBZ0Isa0NBOU1oQnpEO1lBZ05JMEQsUUFBUXpIO0lBQ2Q7S0FFbUI7TUFBZjBILGVBQWU7TUFDZkMsV0FBVyxrQ0FOYkg7TUFPRUk7aUJBRkFGLGNBQ0FDO2tCQUNBRTtVQUNGLEdBQUcsa0NBSERIO1dBR3FELFdBTjNDMUg7VUFNMkMsa0JBRnJEMkg7U0FHUztnQkFGVEU7OzRCQUZBSCxjQUNBQztNQUtBRztRQUFVLGtDQVhaTixlQU1FRyxVQUNBRTtNQUtKLFVBRElDOztLQUNKOztHQUE2QjtZQUUzQkM7SUFBZ0Isb0RBZGhCUDtHQWN5RDtZQUV6RFEsS0FBS0M7SUFGTEY7SUFJRiw2QkFGT0U7R0FFUztHQUVWLDJEQU5KRjs7OztPQXhoQkE5RztPQURBRjs7Ozs7Ozs7Ozs7Ozs7T0E2Q0FHO09BQ0FHO09BeUJBQztPQVlBUTtPQUNBQztPQVBBUjtPQTJFQUM7T0FFQUM7T0FFQUM7T0FFQUM7T0FFQUM7T0FFQUM7T0F1QkFHO09BV0FLO09BOEJBQztPQU9BRztPQUxBRDtPQVVBRTtPQUtBQztPQWlCQUs7T0FJQUM7T0FPSUM7T0FjSkc7T0FDQUM7T0FDQUM7T0EwS0EwQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUVBQztPQUlBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUVBQztPQUlBQztPQUVBRTtPQURBRDtPQUdBRztPQURBRDtPQWhMQXJEO09BR0FDO09BUkFOOztPQWdCQU87O09Bc0JBSTtPQUhBRjtPQU1BRztPQUtBRzs7O09BVUFDOzs7O09BTUFFO09BQ0FDOztPQWdCQUU7T0FHQUM7T0FSQUY7O09BeUNBWTtPQXpCQVQ7T0FhQU87T0FLQUM7Ozs7Ozs7O09BMENBUzs7Ozs7Ozs7O09BMERBb0I7T0FNQUM7T0F3QkFXO09BZElQO09BblJKN0U7T0FrSklxQztPQTZJSjhDOzs7RUh0akJMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lNMEJzQndDLFNBQVN2RyxHQUFJLG1CQUFKQSx3QkFBa0I7O0lBVTNCd0c7SUFDQUM7SUFZakJDO0lBQ0FDO0lBRUFDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBRUFDO0lBRUFDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBQ0FDO0lBSUFDO0lBQ0FDO0lBQ0FDO1lBd0JFQyxLQUFNQztJQUNSLEdBQVEsYUFEQUE7S0FDUjtJQUNZO0tBbEJHRCxPQWtCSCwyQkFGSkM7S0FkSjFMLCtCQUZXeUw7S0FTWEUsWUFUV0Y7SUFhZixXQVhJekwsT0FPQTJMO0dBU3lCO1lBTTNCQyxPQUNFMUs7SUFBSjtPQTdFaUJvSixTQTZFYnBKLE1BRWlCLGFBRmpCQSxxQ0FDQTJLLE9BREEzSzt1QkFDQTJLLE9BREEzSzs7T0E3RWFvSixTQThFYnVCLFNBS29CLGFBTHBCQSxtQkFJQW5JLE9BSkFtSTs7U0FJQW5JLE9BRUc7V0FFRixhQUpEQTtjQUpBbUk7Y0FTRztHQUF1QztZQUUzQm5JLEtBQU1tSSxNQUN4QixPQUR3QkEsUUFDQztZQUVQQyxHQUFJRCxNQUN0QixPQURzQkEsUUFDRztHQW5COUI7Z0NBRU1ELFFBYWlCbEksTUFHQW9JO0lBSW5CQztJQUNBQztJQUNBQztJQVNFQztZQUdBQyxPQUFPdko7SUFDVCxlQURTQSw0QkFIUHNKO2dCQUtBO0lBQ0YsZ0NBSFN0SjtHQUdEO1lBRU53SixPQUFPbEwsR0FBSSxPQUFKQSxxQkFBb0M7WUFFM0NtTCx3QkFBd0I1QyxHQUFFNkMsR0FBRUM7SUFDOUI7Z0JBRDRCRDtxQkFGMUJGLE9BRXdCM0M7O2lCQUV4QixzQkFGNEI4QztHQUViO1lBR2ZDLFFBQVEvQyxHQUFFNkM7SUFMVkQsd0JBS1E1QyxHQUFFNkM7SUFFWixpQ0FGVTdDLEdBQUU2QztHQUVEO1lBR1RHLGFBQWFoRCxHQUFFNkM7SUFWZkQsd0JBVWE1QyxHQUFFNkM7SUFFakIsc0NBRmU3QyxHQUFFNkM7R0FFRDtZQUdkSSxRQUFRakQsR0FBRTZDLEdBQUVwTDtJQWZabUwsd0JBZVE1QyxHQUFFNkM7SUFFWixpQ0FGVTdDLEdBQUU2QyxHQUFFcEw7R0FFRDtZQUdYeUwsVUFBVWxELEdBQUU2QztJQXBCWkQsd0JBb0JVNUMsR0FBRTZDO0lBRWQsbUNBRlk3QyxHQUFFNkM7R0FFRDtZQUdYTSxVQUFVbkQsR0FBRTZDO0lBekJaRCx3QkF5QlU1QyxHQUFFNkM7SUFFZCxtQ0FGWTdDLEdBQUU2QztHQUVEO1lBS1hPLFNBQVM5QyxJQUFHK0MsSUFBRzlDLElBQUcrQyxJQUFHbks7SUFDdkI7V0FEdUJBOztZQUFUa0s7V0FsQ1pWLE9Ba0NTckMsTUFBWW5ILFVBQVRrSyxXQUFNQyxPQWxDbEJYLE9Ba0NlcEMsTUFBTXBILFVBQUhtSzs7a0JBQUduSztrQkFJSCwyQkFKVG1ILElBQUcrQyxJQUFHOUMsSUFBRytDLElBQUduSztLQUlIOztJQURmO0dBQ3FDOzs7O09Bekp6QjBIO09BVUFDO09BQ0FDO09BWWpCQztPQUNBQztPQUVBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUVBQztPQUVBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQzs7T0FJQUM7T0FDQUM7T0FDQUM7V0F3QkVDOztPQTRCRk07T0FDQUM7T0FDQUM7O1FBWUVFO1FBS0FDO1FBT0FJO1FBS0FDO1FBS0FDO1FBS0FDO1FBS0FDO1FBT0FDOzs7Ozs7O1FBMUNBWDs7O0VOcklQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R09vQkM7Ozs7O1lBRUljO0lBQXNDO0dBQWU7WUFLckRDLGlCQUFrQkM7SUFDRyxJQUFuQkMsVUFEZ0JEO2FBTGxCRjtJQU9GO0tBRWUsSUFBVEksU0FBUyxXQUhYRDtLQUlGLHNCQUxrQkQsS0FJZEU7S0FDSixPQURJQTs7VUFHREM7O0tBUGVILHlCQVFrQyxrQ0FEakR6RCxNQUN3RDtLQUMzRCxrQ0FGR0E7O0dBRUk7WUFJUDZELHFCQUFzQko7SUFDRCxJQUFuQkMsVUFEb0JEO2FBbEJ0QkY7SUFxQlcsSUFBVEksU0FBUyxXQUZURDtJQUdKLHNCQUp3QkQsS0FHcEJFO0lBQ0osT0FESUE7R0FFRTtZQU9KRyxNQVFFQztJQUVJLElBQUpDLElBQUksYUFGSkQ7V0FFQUM7Y0FGQUQ7Y0FFQUMsc0JBRkFELE1BakNGUCxpQkFpQ0VPO0dBS3FCO1lBR3ZCRSxVQUFXRjtJQUVMLElBQUpDLElBQUksYUFGS0Q7V0FFVEM7Y0FGU0Q7Y0FFVEMsc0JBRlNELE1BNUJYRixxQkE0QldFO0dBS2dCOzs7cUJBOUMzQlAsa0JBYUFLLHNCQVlBQyxPQWdCQUc7OztFUHBFTDs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lRMkRLQTtZQUVBQyxTQUFVNU47SUFDSixJQUFKbUIsSUFBSTtJQUFKQSxPQURRbkI7SUFFWixPQURJbUI7R0FFZ0I7WUFFbEIwTSxTQUFVMU47SUFDSixJQUFKdU4sSUFBSSxhQURJdk47T0FDUnVOO0tBSUQsT0FMU3ZOO0lBRTBELHNDQUYxREE7R0FNVDtZQUdEMk4sT0FBUWpMO0lBQWM7d0JBQWRBO0dBQWtEO1lBUzFEK0csSUFBSTVKLEdBQUVtQjtJQUNSOzs7aUNBRFFBOzs7OzthQUNBLGtCQURGbkI7O0dBQ1k7WUFFaEIrTixRQUFRL04sR0FBRW1CO0lBQ1osS0FiRTJNLE9BWVUzTTtLQUdGOzs7a0NBSEVBOzs7OztjQUdDLGtCQUhIbkI7Ozt3QkFBRW1COzs7OztJQUVPLE9BdkJqQjBNLFNBdUJpQixXQUZUN047R0FHYTs7Ozs7T0FOckI0SjtPQVRBa0U7T0FUQUQ7T0FxQkFFO09BMUJBSDtPQUZBRDtPQUVBQztPQUtBQztPQVNBQzs7O0VSM0VMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lTd0JLRSxhQUFXLFNBQUc7WUFFZEMsU0FBTzlNLFVBQU8sV0FBUEEsR0FGUDZNLE9BRTZCO1lBRTdCRSxLQUFLL00sR0FBRWdOLGFBQVUsV0FBWmhOLEdBQUVnTixNQUF3QjtZQUUzQkMsT0FBT0MsTUFBS0M7SUFDWix1QkFET0Q7Z0JBRUosa0JBRlNDO1FBR1BILGlCQUFIaE47SUFBWSxXQUFaQSxrQlRqQ1gsT1M4QlNpTixPQUdLRCxNQUhPRztHQUc0QjtZQUV4QzFFLElBQUk1SixHQUFFdU87SUFBZSx1QkFBZkE7Z0JBQ0g7UUFDRUosaUJBQUhoTjtJQUF1QixvQlRyQ2xDLE9TbUNTeUksSUFBSTVKLEdBRUNtTztJQUFTLFdBQU0sV0FGaEJuTyxHQUVGbUI7R0FBa0M7WUFFcENxTixXQUFXeE8sR0FBRXVPO0lBQVMsSUFBVEU7SUFBUztLQUFNLHVCQUFmQTtpQkFDVjtLQUVDLElBSFNOLGlCQUVYaE4sY0FDRSxxQkFIT25CLEdBRVRtQjs7VUFHS0M7TUFBSyxXQUFMQSxrQlQ1Q2hCLE9TdUNTb04sV0FBV3hPLEdBQUVtTzs7OztHQUswQjtZQUV2Q08sT0FBTzFPLEdBQUV1TztJQUFTLElBQVRFO0lBQVM7S0FBTSx1QkFBZkE7aUJBQ047U0FETU4saUJBRVBoTjtLQUNELGNBSE1uQixHQUVMbUI7TUFFQyxXQUZEQSxrQlRoRFgsT1M4Q1N1TixPQUFPMU8sR0FBRW1POzs7R0FLVTtZQUVuQlEsT0FBT0o7SUFBZSx1QkFBZkE7Z0JBQ0o7UUFDRUosaUJBQUhoTjtJQUNMLE9BMUJHaU4sT0F5QkVqTixrQlR2RFgsT1NxRFN3TixPQUVLUjtHQUNpQjtZQUV0QlMsU0FBUzVPLEdBQUV1TztJQUFlLHVCQUFmQTtnQkFDUjtRQUNFSixpQkFBSGhOO0lBQ08sb0JUN0RsQixPUzBEU3lOLFNBQVM1TyxHQUVKbU87SUFDVCxPQS9CSUMsT0ErQkcsV0FITXBPLEdBRVBtQjtHQUMyQjtZQUk3QjBOLFVBQVU3TyxHQUFFOE8sS0FBSVA7SUFDdEIsSUFEa0JRLGFBQUlOO0lBQ3RCO0tBQU0sdUJBRGdCQTtpQkFFWCxPQUZPTTtLQUlGO01BSk1aO01BR1poTjtNQUhRNk4sUUFJRixXQUpBaFAsR0FBRStPLE9BR1I1TjtNQUhRNE47TUFBSU47O0dBS0k7WUFFcEJRLEtBQUtqUCxHQUFFdU87SUFDYixJQURhRTtJQUNiO0tBQU0sdUJBRE9BO2lCQUVGO1NBRkVOLGlCQUdIaE47S0FDSixXQUpLbkIsR0FHRG1CO1NBSEdzTjs7R0FLSTtZQUVYUyxPQUFPbFAsR0FBRW1QO0lBQ1QsdUJBRE9uUCxHQUFFbVA7Z0JBRUw7NEJBQ0NDLGtCQUFIak87SUFBVSxXQUFWQSxrQlRsRlgsT1MrRVMrTixPQUFPbFAsR0FHRm9QO0dBQTRCO1lBRXJDQyxTQUFTQyxJQUNYLE9BQU0sV0FES0EsZUFLRjtZQUVQQyxPQUFPRDtJQUNILHVCQURHQTtnQkFLTDtRQUhPRSxpQkFBSHJPO0lBQ0osZUFESUEsR0FBR3FPO0dBR0g7WUFXR25ELE9BQU9vRDtJQUNsQixJQVJpQjdKLFVBQUswSixLQU9KRztJQU5sQjtLQUFNLHVCQURnQkg7aUJBR2xCLE9BSGExSjtLQUtiLElBTGtCNEosaUJBQUwxSixzQ0FBS3dKOztHQVFQO1lBVUpJLE1BQU0xUCxHQUFFeVA7SUFDbkIsSUFUa0IzTSxPQUFFd00sS0FRREc7SUFQbkI7S0FBTSx1QkFEY0g7aUJBR2hCO1NBSGdCRSxpQkFJWnJPO0tBQ0osV0FHYW5CLEdBUkM4QyxHQUlWM0I7U0FKVTRCLDBCQUFFdU07O0dBU0o7WUFVTEssV0FBVzNQLEdBQUU0UCxRQUFLSDtJQUM3QixJQVR1QjdKLE9BUUNnSyxRQVJJOU0sT0FBRXdNLEtBUURHO0lBUDdCO0tBQU0sdUJBRHdCSDtpQkFHMUIsT0FIbUIxSjtLQUtSO01BTGU0SjtNQUl0QnJPO01BSmUyRSxTQUtSLFdBR085RixHQVJDNEYsTUFBSzlDLEdBSXBCM0I7TUFKb0I0QjtNQUFMNkM7TUFBSzlDO01BQUV3TTs7R0FTSjtZQUVwQk8sUUFBUUMsR0FBRVI7SUFDaEIsSUFEZ0JFO0lBQ2hCO0tBQU0sdUJBRFVBO2lCQUdaO0tBRUEsSUFMWUMsaUJBSVJ0TyxjQUNKLGtCQUxVMk8sR0FJTjNPO0tBQ0o7U0FMWXFPOztHQUtPO1lBRWpCTyxPQUFPRCxHQUFFUjtJQUNmLElBRGVFO0lBQ2Y7S0FBTSx1QkFEU0E7aUJBR1g7S0FFQSxJQUxXQyxpQkFJUHRPLGNBQ0osa0JBTFMyTyxHQUlMM087S0FDSjtTQUxXcU87O0dBS087WUFFaEJRLEtBQUtGLEdBQUVSO0lBQ2IsSUFEYUU7SUFDYjtLQUFNLHVCQURPQTtpQkFHVDtTQUhTQyxpQkFJTHRPO0tBQ0QsY0FMSTJPLEdBSUgzTyxJQUNRLFdBRFJBO1NBSktxTzs7R0FLd0I7WUFFL0JTLFNBQVNqUSxHQUFFc1A7SUFDakIsSUFEaUJFO0lBQ2pCO0tBQU0sdUJBRFdBO2lCQUdiO0tBRU0sSUFMT0MsaUJBSVR0TyxjQUlGa00sU0FISSxXQUxLck4sR0FJUG1CO1FBSUZrTSxRQUNFLE9BREZBO1NBUldtQzs7R0FTSDtZQVNSVSxNQUFNbFEsR0FBRXNQLElBQUdhO0lBQ2pCLElBRGNYLFdBQUdZO0lBQ2pCO0tBQU0sdUJBRFFaO2lCQUdWO0tBRU0sSUFMSUMsaUJBSU50TyxjQUNFLHFCQUxPaVA7bUJBT1Q7U0FQU0MsbUJBUUxqUDtLQUNKLFdBVElwQixHQUlKbUIsR0FJSUM7U0FSRW9PLGFBQUdZOztHQVVJO1lBRWZFLFdBQVd0USxHQUFFNEYsTUFBSzBKLElBQUdhO0lBQzNCLElBRG1CckssZUFBSzBKLFdBQUdZO0lBQzNCO0tBQU0sdUJBRGtCWjtpQkFHcEIsT0FIZTFKO0tBS1QsSUFMYzJKLGlCQUloQnRPLGNBQ0UscUJBTGlCaVA7bUJBT25CLE9BUFd0SztLQVNBO01BVFF1SztNQVFmalA7TUFST3dPLFNBU0EsV0FURjVQLEdBQUU4RixRQUlYM0UsR0FJSUM7TUFSTzBFO01BQUswSjtNQUFHWTs7R0FVSTtZQUV6QkcsU0FBU3ZRLEdBQUVzUCxJQUFHYTtJQUNwQixJQURpQlgsV0FBR1k7SUFDcEI7S0FBTSx1QkFEV1o7aUJBR2I7S0FFTSxJQUxPQyxpQkFJVHRPLGNBQ0UscUJBTFVpUDttQkFPWjtLQUVBLElBVFlDLG1CQVFSalAsZ0JBQ0osa0JBVE9wQixHQUlQbUIsR0FJSUM7S0FDSjtTQVRTb08sYUFBR1k7O0dBU2E7WUFFM0JJLFFBQVF4USxHQUFFc1AsSUFBR2E7SUFDbkIsSUFEZ0JYLFdBQUdZO0lBQ25CO0tBQU0sdUJBRFVaO2lCQUdaO0tBRU0sSUFMTUMsaUJBSVJ0TyxjQUNFLHFCQUxTaVA7bUJBT1g7S0FFQSxJQVRXQyxtQkFRUGpQLGdCQUNKLGtCQVRNcEIsR0FJTm1CLEdBSUlDO0tBQ0o7U0FUUW9PLGFBQUdZOztHQVNhO1lBRTFCckcsTUFBTTBHLElBQUduQixJQUFHYTtJQUNsQixJQURlWCxXQUFHWTtJQUNsQjtLQUFNLHVCQURTWixVQUNILHFCQURNWTs7O09BS2Q7UUFMY0M7UUFJSWpQO1FBSlBxTztRQUlQdE87UUFDSixrQkFMUXNQLElBSUp0UCxHQUFjQztPQUNsQjtXQUxXb08sYUFBR1k7Ozs7d0JBR2Q7S0FLQTs7R0FBSztZQUVIOUYsUUFBUW9HLEtBQUlwQixJQUFHYTtJQUNyQixJQURrQlgsV0FBR1k7SUFDckI7S0FBTSx1QkFEWVosVUFDTixxQkFEU1k7O1NBQUhYLGlCQUlWdE87bUJBTUo7S0FMUSxJQUxTa1AsbUJBSUNqUCxnQkFDZHdDLElBQUksV0FMRThNLEtBSU52UCxHQUFjQztLQUVsQixTQURJd0MsR0FDVyxPQURYQTtTQUxVNEwsYUFBR1k7O0dBVWY7WUFNQU8sU0FBUzNRLEdBQUU4QyxHQUFFOE47SUFDbkIsR0FEaUI5TixLQUFFOE4sR0FLakI7ZUFMZTlOO0lBRUosb0JUclBoQixPU21QUzZOLFNBQVMzUSxTQUFJNFE7SUFDTCxXQUNOLFdBRk81USxHQUFFOEM7R0FLWjtZQUVIK04sS0FBS2pRLEdBQUVaO0lBQ1QsT0FET1ksR0FFTDs7SUFFQSxzQlQ5UEwsT1NtUFMrUCxTQU9HM1EsU0FBRlk7R0FJUztZQUVWa1EsT0FBTzNQO0lBQ2IsV0FEYUEsa0JUaFFoQixPU2dRUzJQLE9BQU8zUDtHQUNLO1lBRVo0UCxRQUFRL1E7SUFDSCxvQlRwUWQsT1NtUVMrUSxRQUFRL1E7SUFDZCxXQUFNLFdBRFFBO0dBQ087WUFNZmdSLGVBQWUxQjtJQUNyQjtXQTdPTWxCLE9BNE9la0IsbUJUMVF4QixPUzBRUzBCLGVBQWUxQjtHQUNXO1lBTzlCMkIsTUFBTTNCO0lBQ0YsdUJBREVBO2dCQUdKO1FBQ09FLGlCQUFIck87SUFDZ0Isb0JUdlIzQixPUzBRUzZQLGVBUUUxQjtJQUtKLFdBREluTyxrQlR0UlgsT1M4QlNpTixPQXdQS29CO0dBQ2lDO1lBTXRDMEIsU0FBU2xSLEdBQUVtQjtJQUNULElBQUpDLElBQUksV0FET3BCLEdBQUVtQjtJQUVqQixXQURJQyxrQlQ5UlAsT1M2UlM4UCxTQUFTbFIsR0FDWG9CO0dBQ2tCO1lBV3BCK1AsUUFBUW5SLEdBQUVtQjtJQUNMLG9CVDNTVixPUzZSUytQLFNBYUlsUixHQUFFbUI7SUFDTCxzQlQzU1YsV1MwU2VBO0dBQ1M7WUFJZmlRLFNBQVNwUixHQUFFOEMsR0FBRXdNO0lBQ2IsdUJBRGFBO2dCQUdmO0lBRUEsSUFET0UsaUJBQUhyTyxjQUNKLE9BTGEyQjtJQUtBLG9CVHBUcEIsT1MrU1NzTyxTQUFTcFIsU0FJSndQO0lBQ1AsV0FBTSxXQUxLeFAsR0FBRThDLEdBSVQzQjtHQUM2QjtZQUUxQmtRLEtBQUtyUixHQUFFc1A7SUFDbEI7MEJUdlRILE9TK1NTOEIsU0FPVXBSLFNBQUVzUDtHQUNIO1lBUVRnQyxVQUFVdFIsR0FBRWdCLEdBQUVzTztJQUNkLHVCQURjQTtnQkFHaEI7SUFFUSxJQURERSxpQkFBSHJPLGNBQ0FvUSxNQUFJLFdBTEl2UixHQUFFZ0IsR0FJVkc7SUFFSixXQURJb1Esb0JUcFVYLE9TK1RTRCxVQUFVdFIsR0FLUnVSLEtBREcvQjtHQUVtQjtZQUU1QmdDLEtBQUt4UixHQUFFZ0IsR0FBRXNPO0lBQ0osa0JUeFVWLE9TK1RTZ0MsVUFRQ3RSLEdBQUVnQixHQUFFc087SUFDSixxQlR4VVYsV1N1VVl0TztHQUNnQjtZQUtuQnlRLFNBQVM3USxHQUFFME87SUFDakIsYUFEZTFPO2NBclRib047OztjQTBUUSx1QkFMT3NCOzBCQU9UO2tCQUNPRSxpQkFBSHJPO2NBQ0osV0FESUEsR0FSTnNRLFNBQVM3USxXQVFBNE87YUFDb0I7O1lBRWpDa0MsS0FBSzlRLEdBQUUwTztJQUNULEdBRE8xTyxPQUNPO1dBWlI2USxTQVdDN1EsR0FBRTBPO0dBRUk7WUFvQlhxQyxLQUFLL1EsR0FBRTBPO0lBQ1QsWUFETzFPOzs7Z0JBQUUwTzs7O2dCQU1MLElBcEJhc0MsTUFjVmhSLEdBZFk0TyxPQWNWRjtnQkFiVDtpQkFBTSx1QkFEYUU7NkJBR2Y7aUJBRUEsSUFMZUMsaUJBS1hvQyxNQUxTRDtpQkFNYixTQURJQyxLQUVGLGtCQVBhcEM7cUJBQUZtQyxNQUtUQyxLQUxXckM7O2VBb0JBO2NBTEw7R0FLSztZQUVic0MsV0FBV2hDLEdBQUVSO0lBQ2IsdUJBRGFBO2dCQUdmO1FBQ09FLGlCQUFIck87SUFDRCxrQkFMVTJPLEdBSVQzTzttQ1QxWFgsT1NzWFMyUSxXQUFXaEMsR0FJTk47O0dBQ3VDO1lBRTVDdUMsV0FBV2pDLEdBQUVSO0lBQ25CLElBRG1CRTtJQUNuQjtLQUFNLElBR0p3QyxPQUhJLFdBRGF4QztVQUlqQndDLE1BREU7U0FIZXZDLE9BSWpCdUMsU0FBTTdRLElBQU42UTtLQUNLLGdCQUxVbEMsR0FJVDNPLElBQ2dDLE9BRHRDNlE7U0FKaUJ4Qzs7R0FLeUI7WUFFdEN5QyxNQUFNeEIsSUFBR25CO0lBQ1QsdUJBRFNBO2dCQUdYO0lBRTBELElBRG5ERSxpQkFBSHJPLGNBQ3NELGlCQUxsRHNQLElBSUp0UDtJQUMwQyxrQlR6WXJELE9TNlhTNFEsZ0JBV0t2QztJQUM4QixrQlR6WTVDLE9Tb1lTeUMsTUFBTXhCO0lBS2lCLHFCQUxqQkEsSUFJSnRQO0lBQ1Msa0JUellwQixPU3NYUzJRLGdCQWtCS3RDO0lBQ1AseUJUellQLFdTd1lXck87R0FDaUU7R0FFM0U7OztJQVNNK1E7WUFjQUM7SUFHQTtHQUFrQjtZQWlCaEJDLFFBQVE5QzthQXpCRGlDO0tBMkJMLHVCQUZNakM7aUJBSVI7U0FDT0UsaUJBQUhyTztLQUNKLFdBRElBLEdBTEppUixRQUtPNUM7SUFDYTtJQTlCZCxJQU5HeE8sSUFNSCxXQVZSa1IsU0FTU1g7SUFDRDtvQ0FOR3ZROzs7NkJBQ0gsZ0NBREdBO0dBcUNkO1lBRUtxUixLQUFLL0M7YUFwQkR0UDtLQXNCRix1QkFGR3NQO2lCQUlMO1NBQ09FLGlCQUFIck87S0FDSixXQURJQSxHQUxKa1IsS0FLTzdDO0lBQ1U7SUF6QlIsSUFBVDhDLFNBQVMsa0NBREx0UztJQUVSO0tBSVUsSUFBSkEsSUFBSSxrQ0FMTnNTLFFBVkZIO0tBZ0JBLGtCQURJblMsTUFDRDtHQW9CTjtZQUdLdVMsSUFBSWpELElBQUdhO0lBQ1AsdUJBREliO2dCQUdOO0lBRU0sSUFEQ0UsaUJBQUhyTyxjQUNFLHFCQUxHZ1A7a0JBT0w7UUFDT0MsbUJBQUhoUDtJQUNKLGVBTEFELEdBSUlDLGtCVGpkZixPU3ljU21SLElBSUsvQyxNQUlJWTtHQUNpQjtZQUUxQm9DLEtBQUt4UyxHQUFFc1AsSUFBR2E7SUFDVix1QkFET2I7Z0JBR1Q7SUFFTSxJQURDRSxpQkFBSHJPLGNBQ0UscUJBTE1nUDtrQkFPUjtRQUNPQyxtQkFBSGhQO0lBQ1Msa0JUN2R4QixPU29kU29SLEtBQUt4UyxHQUlBd1AsTUFJSVk7SUFDUCxXQUFNLFdBVEhwUSxHQUlIbUIsR0FJSUM7R0FDc0I7WUFFNUJxUixXQUFXbkQsSUFBR2E7SUFDZCx1QkFEV2I7Z0JBR2Isa0JBSGdCYTtRQUlUWCxpQkFBSHJPO0lBQ0osV0FESUEsaUJUbmVYLE9TK2RTc1IsV0FBY3RDLElBSVRYO0dBQ21CO1lBNEI1QmtELGNBQWNoQyxLQUFJdlAsR0FBRW1PLElBQUdsTyxHQUFFK087SUFDM0IsV0FBRyxXQURhTyxLQUFJdlAsR0FBS0M7Ozs7ZUFibkIsdUJBYXFCK087MkJBWHZCLFdBV2dCaFAsR0FBRW1PO21CQVZYYyxpQkFBSGhQO2VBQ0osT0FTRnNSLGNBQWNoQyxLQUFJdlAsR0FBRW1PLElBVmRsTyxHQUFHZ1A7OztjQVVTalA7O2VBTmQsdUJBTWdCbU87MkJBSmxCLFdBSXFCbE8sR0FBRStPO21CQUhoQlgsaUJBQUhyTztlQUNKLE9BRUZ1UixjQUFjaEMsS0FIUnZQLEdBQUdxTyxNQUdjcE8sR0FBRStPOztHQUlXO1lBRXBDd0MsYUFBYWpDLEtBQUlwQixJQUFHYTtJQUN0QixJQUFNLG1CQURhYixRQUNQLHFCQURVYTs7O1VBT0tDLG1CQUFIaFAsZ0JBQVhvTyxpQkFBSHJPO01BQ0osT0FkSnVSLGNBTWFoQyxLQU9MdlAsR0FBR3FPLE1BQVdwTyxHQUFHZ1A7O1NBSGxCeE07O3VCQURILGNBQ0dBO0lBRUgsT0FGR0E7R0FJd0I7WUFHM0JnUCxRQUFRQztJQUNSLHVCQURRQTtnQkFHVjtRQUNZQyxrQkFBUDNSO0lBQ0wsV0FES0EsaUJUcmhCWixPU2loQlN5UixRQUlVRTtHQUNTO1lBRW5CQyxRQUFRRjtJQUNSLHVCQURRQTtnQkFHVjtRQUNZQyxrQkFBSjFSO0lBQ1IsV0FEUUEsaUJUNWhCZixPU3doQlMyUixRQUlVRDtHQUNTO1lBRXZCRSxNQUFNSDtJQUNLLGtCVGhpQmhCLE9Td2hCU0UsUUFPRUY7SUFDUix5QlRoaUJILE9TaWhCU0QsUUFjRUM7R0FDZ0I7WUFRbEJJLHlCQUF5QmpULEdBQUVzUDtJQUNqQyxJQURpQ0U7SUFDakM7S0FBTSx1QkFEMkJBO2lCQUc3QjtLQUVNLElBTHVCQyxpQkFJekJ0TyxjQUNFLHFCQUxxQm5CLEdBSXZCbUI7O1VBRVVDO01BQ1Y7Y0FEVUE7NEJUOWlCckIsT1N3aUJTNlIseUJBQXlCalQsR0FBRXlQOzs7O0dBU087WUFFbEN5RCwwQkFBMEJsVCxHQUFFc1A7SUFDbEMsSUFEa0NFO0lBQ2xDO0tBQU0sdUJBRDRCQTtpQkFHOUI7S0FFTSxJQURDQyxpQkFBSHRPLGNBQ0UscUJBTHNCbkIsR0FJeEJtQjs4QkFKMEJxTyxPQUl2QkM7U0FJUTBEO0tBQ1g7YUFEV0E7MkJUM2pCdEIsT1NtakJTRCwwQkFBMEJsVCxHQUlyQnlQOztHQUtxQztZQUU5QzJELGNBQWNwVCxHQUFFc1A7SUFFbEIsa0JUaGtCSCxPU21qQlM0RCwwQkFXVWxULEdBQUVzUDtJQUNsQjswQlQvakJILE9Td2lCUzJELHlCQXNCVWpULEdBQUVzUDs7R0FFWTtZQUU1QitELFVBQVV2RCxHQUFFUjtpQkFDV25PLEdBQUssV0FBSSxXQUR0QjJPLEdBQ2EzTyxHQUFjO0lBQTFCLGtCVG5rQmhCLE9TOENTdU4sWUFvaEJRWTtJQUNkLHlCVG5rQkgsT1M4Q1NaLE9Bb2hCTW9CLEdBQUVSO0dBQzZCO1lBV3pDZ0UsS0FBS0M7SUFDUCxPQWhERVAsb0JUL2hCTCxPU3VDU3hFLFdBb0RKZSxRQW1mS2dFO0dBQ3NCO1lBRXZCQyxVQUFVRDtJQUNoQixJQUFtQixRQUpqQkQsS0FHY0MsTUFDTEUsa0JBQVBDO0lBQ0QsS0EvZkRyRSxTQThmRXFFO0tBTUYsV0FORUEscUJUbGxCUCxPU2lsQlNGLFVBQ0tDO0lBRUYsR0FoZ0JQcEUsU0E4ZlNvRSxRQUdUO0lBREE7R0FJNkI7Z0JBTWZFLFlBQVdKO0lBQ3JCLHVCQURxQkE7Z0JBdUJ2QixPQXBDRUMsVUFhVUc7SUFHQSxJQURKQyxrQkFBSnRFLGVBQ1EscUJBRFJBOztLQVNtQjtNQVBaRTtNQUFIck87TUFPZSxVQTNCekJtUyxLQWdCY0s7TUFXR0Y7TUFBUEM7TUFDMEIsb0JUMW1CekMsV1NrbUJrQmxFLE1BT0lpRTtNQUNTLG9CVDFtQi9CLGdCU2dtQmVHO0tBVUoseUJUMW1CWCxXU2ttQmV6UyxHQU9BdVM7O0lBTWU7ZUFqQ3pCSixLQWdCY0s7S0FpQkdFO0tBQVBDO0lBQ0osV0FESUEsdUJUL21CZixXUyttQnNCRCxTQWZQRDtHQXFCZTtZQWtCekJHLFlBQVkvVCxHQUFFc1AsSUFBR2E7aUJBRVJoUDtrQkFDRUMsR0FDUCxrQkFKUXBCLEdBRUhtQixHQUNFQyxHQUNGO0tBREgscUJUMW9CWCxPU21DU3dJLFNBb21CYXVHO0lBS1g7SUFKVSxTQUpOb0QsU1Rwb0JmLE9TbUNTM0osU0FvbUJVMEY7SUFGaEIsa0JUcm9CSCxXU3dCS3RCLE9BNG1CVXVGO0lBSUwscUJUeG9CVixPU3FEUzVFO0dBeWxCSjtZQUVBcUYsUUFBUTFFLElBQUdhO0lBQ2IsT0FWRTRELHFCQVVlNVMsR0FBRUMsR0FBSyxXQUFQRCxHQUFFQyxHQUFXLEdBRHBCa08sSUFBR2E7R0FDd0I7WUFFbkM4RCxhQUFhQzthQUNQdFE7S0FDQSx1QkFGT3NRO2lCQUlUO1NBQ0cvUztLQUNILFdBREdBLEdBSkR5QztJQUtTO0lBRWpCLE9BUFFBO0dBT1A7WUFFQ3VRLGFBQWE3RTtJQUNQLElBQUp0TyxRQURXc087SUFFZjtLQUNRLHVCQUZKdE87aUJBSUU7U0FDT3NPLGVBQUhuTztLQUxOSCxPQUtTc087S0FFUCxXQUZJbk8sR0FFRTs7WUFJTmlULEtBQUt0UjtJQUNYLFVBRFdBO0lBQ1gsV0FEV0EsaUJUenFCZCxPU3lxQlNzUjtHQUNnQjs7OztPQXRsQnBCL0U7T0FPQUU7T0FnQlNsRDtPQW5DTDRDO09BUEFKO09BcURLYTtPQVdBQztPQUdMRTtPQU9BRTtPQU9BQztPQU9BQztPQWtCQUM7T0FZQUk7T0FZQUM7T0FXQUM7T0FXQXpHO09BVUFPO09BM01KMEQ7T0FFQUM7T0FFQUM7T0E4TkEyQztPQTNLSTNCO09BaUxBNEI7T0FHQUM7T0FlSkU7T0F3QkFFO09BdlFJdkg7T0FtUkt5SDtPQXhRTDNDO09BUEFGO09BZ1NKZ0Q7T0FpQkFFO09Bc0JBQztPQVFJRztPQU9BQztPQU9BRTtPQWtEQUc7O09BU0FDO09Ba0pBbUI7T0FuakJBcEY7T0F1QkFPO09BS0FDOztPQStZQTJEO09BV0FDO09BV0FDO09BdUNKRTtPQTBJQXFCO09BVEFEO09BeEdBZjs7T0ErQkFJO09BSUFDO09BaUZBWTtPQVVBRTtPQVlJQzs7O0VUenFCVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SVVrQktDO1lBQ0FDLEtBQUtuVSxHQUFJLFdBQUpBLEdBQVU7WUFDZm9VLE1BQU1oSSxHQUFHaUk7SUFBVSxLQUFiakksR0FBZ0QsT0FBN0NpSTtRQUE0QnJVLElBQS9Cb007SUFBb0MsT0FBTHBNO0dBQXdCO1lBQzdEQztJQUFNLFlBQStCO1FBQWpCRDtJQUFLLE9BQUxBO0dBQTZDO1lBQ2pFc1UsS0FBS2xJLEdBQUV2TTtJQUFJLEtBQU51TSxHQUEyQjtRQUFZcE0sSUFBdkNvTTtJQUE0QyxrQkFBMUN2TSxHQUFxQ0c7R0FBUTtZQUNwRHVVLFlBQU8sWUFBK0IsY0FBakJuSSxjQUFLLE9BQUxBLEVBQXFCO1lBQzFDM0MsSUFBSTVKLEdBQUV1TTtJQUFJLEtBQUpBLEdBQXlCO1FBQVlwTSxJQUFyQ29NO0lBQTBDLFdBQUssV0FBakR2TSxHQUF1Q0c7R0FBZTtZQUMxRDJKLEtBQU11SyxNQUFNQztJVnpCakIsWVV5QjRELE9BQWpERDtRQUEyQmxVO0lBQUssa0JBQTFCbVUsTUFBcUJuVTs7WUFDakM4TyxLQUFLalA7SVYxQlYsWVUwQitDO1FBQW5CRztJQUFLLGtCQUF2QkgsR0FBa0JHOztZQUN2QndVLGVBQVUscUJBQXVDO1lBQ2pEQyxlQUFVLHFCQUF1QztZQUVqRDdLLE1BQU0wRyxJQUFHb0UsSUFBRzlIO0lBQUssR0FBUjhIO1FBQUc5SCxRQUNBN0MsS0FEQTZDLE9BQ1QrSCxLQURNRCxPQUNTLGtCQURacEUsSUFDSHFFLElBQVM1Szs7Y0FEQTZDLElBRUE7SUFDVDtHQUFLO1lBRVJ6QyxRQUFRb0csS0FBSW1FLElBQUc5SDtJQUFLLEtBQVI4SCxXQUFHOUg7UUFDWitILEtBRFNEO1NBQUc5SCxJQUlEO1FBSEY3QyxLQURHNkM7SUFDRyxrQkFEVjJELEtBQ0xvRSxJQUFTNUs7R0FHRztZQUVmNkssVUFBV1Y7SVZ6Q2hCLFlVeUN3QyxXQUF4QkE7UUFBMENsVTtJQUFLLFdBQUxBOztZQUNyRDZVO0lBQVUsWUFBaUI7UUFBVTdVO0lBQUssV0FBTEE7R0FBUTtZQUM3QzhVO0lBQVMsWUFBaUI7UUFBaUI5VTtJQUFLLGtDQUFMQTtHQUFpQjs7OztPQXpCNURrVTtPQUNBQztPQUNBQztPQUNBblU7T0FDQXFVO09BQ0FDO09BQ0E5SztPQUNBRTtPQUNBbUY7T0FDQTBGO09BQ0FDO09BRUE3SztPQUtBTztPQU1BeUs7T0FDQUM7T0FDQUM7OztFVjNDTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lhcUJLdFcsSUFBSWlDO0lBQ04sUUFETUEsZUFDK0MsT0FEL0NBO0lBQ21CO0dBQXdDO1lBTy9Eb1YsUUFPQXBTO0lBUFU7YUFPVkE7a0JBTFE7Y0FLUkE7OztpQkFOUTs7O2lCQU1SQTs7O1FBRFE7O1FBRkE7O1FBREE7O1FBRUE7OztLQUdFLElBQUoyTixNQUFJOzJCQUFKQSxRQUROM047aUNBQ00yTjs7SUFLSSxJQUFKdlEsSUFBSTswQkFBSkE7c0NBTk40QzswQkFNTTVDLGFBTk40QzswQkFNTTVDLFlBTk40QztnQ0FNTTVDO0dBS2M7WUFFcEJpVixVQUNBclM7SUFEWSxVQUNaQTs7Ozs7O0dBSU07WUFFTnNTLFVBQ0F0UztJQURZLFVBQ1pBOzs7Ozs7R0FJTTtZQUVOdVMsZ0JBQ0F2UyxHQURrQixZQUNsQkEsOEJBQ007WUFFTndTLGdCQUNBeFMsR0FEa0IsWUFDbEJBLDhCQUNNO1lBSU4wRyxRQUFRK0wsSUFBR0MsSUFBSyxPQUFSRCxLQUFHQyxPQUFzQjtZQUNqQ3ZNLE1BQU9zTSxJQUFRQyxJQUFTLGNBQWpCRCxLQUFRQyxnQkFBMEI7Ozs7T0FyRHpDM1g7T0FRQXFYO09Bb0JBQztPQU9BQztPQU9BQztPQUlBQztPQU1BOUw7T0FDQVA7OztFYjFFTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lja0JLd007SUFDQUM7Ozs7Ozs7Ozs7SUFNQXRWO0lBQ0FHO0lBQ0FvVjtJQUNBQztJQUVBQztJQUNBQztZQUVBQyxLQUFLMUg7SUFDUCxPQURPQTtjQUxMdUg7Y0FLS3ZILHNDQWRMcUgsZUFjS3JIO0dBR0Y7WUFFSDJILEtBQUszSDtJQUNQLE9BRE9BO2NBWExzSDtjQVdLdEgsZ0NBcEJMb0gsZUFvQktwSDtHQUdGO1lBRUg0SCxTQUFTalU7SUFBSSxlQUFKQTs7Ozs7O0dBQThEO1lBQ3ZFa1UsT0FBT2xVO0lBQUksR0FEWGlVLFNBQ09qVSxJQUF1QixPQUF2QkE7SUF4QlE7OzsyQ0F3QlJBO0lBQTBDO0dBQWM7WUFJL0RtVSxRQUFROUgsR0FBSSxPQUFKQSxnQkFBVztZQUNuQitILFFBQVF0VCxHQUFJLE9BQUpBLEVBQWU7WUFDdkJ1VCxRQUFRaEk7SUFDVixVQURVQSxHQUVWLE9BRlVBO0lBN0JrQjs7OztpQ0E2QmxCQTs7S0E3QmtCO0lBOEJBO0dBQ1g7WUFFZmlJLG9CZHRETDtZY3dES3JOLGdCZHhETDtPY3lES087WUFDQStNLFVkMURMO1ljeUVjQyxvQkFBb0JDLEdBQUksY0FBSkEsc0JBQXlCO1lBQzdDQyxrQkFBa0JELEdBQUksUUFBSkEsa0JBQWtDO1lBQ3BERSxpQkFBaUJGLEdBQUksT0FBSkEsYUFBbUM7WUFDcERHLFdBQVc5VyxHQUFFdU8sR0FBSSxZQUFOdk8sV0FBRXVPLEVBQThDO1lBQzNEd0ksbUJBQW1CL1csR0FBSSxPQUFKQSxnQkFBK0I7WUFFM0RnWCxrQkFLRnpJO0lBTHdCLE9BS3hCQSxHQUpnQjtJQUNULFVBR1BBLEdBSHNCO0lBQ2YsV0FFUEEsR0FGc0I7SUFDZixZQUNQQSxHQURzQjtJQUNmLGFBQVBBO0tBQ0s7SUFEbUI7R0FDUDtZQUVmMEksbUJBR0YxSTtJQUh5QixPQUd6QkEsR0FGZ0I7SUFDVCxZQUNQQSxHQURzQjtJQUNmLGFBQVBBO0tBQ0s7SUFEbUI7R0FDUDtxQmQzRnBCOzs7O09jeUJLak87T0FDQUc7T0FJQXNWO09BQ0FDO09BRUFDO09BS0FDO09BS0FDO09BQ0FDO3FCZDVDTDs7T2NnREtDO09BQ0FDO09BQ0FDO09BSUFDO09BRUFyTjtPQUNBTztPQUNBK007T0FlU0M7T0FFQUc7T0FEQUQ7T0FFQUU7T0FDQUM7T0FFVEM7T0FRQUM7OztFZHZGTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WWV5Qkt4TCxPQUFPeUw7SUFBSSxJQUpJeFQsaUJBSVJ3VDs7aUJBSEQsT0FEU3hUO0tBRVAsSUFBTHpCLGNBQUssUUFGT3lCLGtDQUVaekI7O0dBRXNCO1lBRXpCcUwsS0FBS2xLLEdBQUVuQixHQUFJLFdBQU5tQixHQUFFbkIsR0FBUTtZQUVmTztJQUFLLFlBQ0M7UUFDTlk7SUFBUSxPQUFSQTtHQUFTO1lBRVRiO0lBQUssWUFDQztRQUNITjtJQUFLLE9BQUxBO0dBQU07WUFFVGtWLElBRWNsVixHQUFFakM7SUFEbEIsT0FDa0JBLEdBREo7UUFDRWtYLFNBQUVsRztJQUNoQjtVQURja0csS0FFTjtTQUZNRSxjQUdaaFUsSUFIWThUO0tBR0osU0FITWxHLEtBR1EsT0FBdEI1TjtLQUE2QixJQUhmNk4sbUJBQUZpRyxXQUFFbEc7O0dBSUo7WUFFWnFHLFFBRWNwVixHQUFFakM7SUFEbEIsT0FDa0JBLEdBREo7UUFDRWtYLFNBQUVsRztJQUNoQjtVQURja0csS0FFTjtTQUZNRSxjQUdaaFUsSUFIWThUO0tBR0osU0FITWxHLEtBR1EsV0FBdEI1TjtLQUFrQyxJQUhwQjZOLG1CQUFGaUcsV0FBRWxHOztHQUlKO09BRVp4RDtZQUVJOEosV0FBVy9WLElBQUdDO0lBQ3BCLElBRGlCK1YsV0FBR0M7SUFDcEI7VUFEaUJELE1BRVQsT0FGWUM7S0FHSztNQUhSQztNQUdmclUsSUFIZW1VO01BQUdHLFdBR2xCdFUsR0FIa0JvVTtNQUFIRDtNQUFHQzs7R0FHYztZQUVoQ0csSUFBSTFWLEdBQUksT0FMSnFWLFdBS0FyVixNQUFtQjtZQU1uQjhOLFNBQVM3TixHQUFFbEMsR0FBRVo7SUFDbkIsR0FEaUJZLEtBQUZrQyxHQUNBO0lBRUwsSUFBSnpDLElBQUksV0FIU0wsR0FBSjhDO0lBSWIsV0FESXpDLEdBSEFzUSxTQUFTN04sV0FBRWxDLEdBQUVaO0dBSU07T0FFdkJ3WTtZQU9BM0gsS0FBS3ZNLEtBQUl0RTtJQUNYLE9BRE9zRSxLQUNTO09BUmRrVSxzQkFPS2xVLEtBR0YsT0FoQkNxTSxZQWFDck0sS0FBSXRFO1FBakJZOE8sU0FBSWhNO0lBQzNCO1FBZ0JPd0IsT0FqQm9CeEIsR0FtQlUsT0FyQm5DeVYsSUFFcUJ6SjtLQUVEO01BRksvTDtNQUFKZ00sWUFFQSxXQWVaL08sR0FqQmdCOEMsSUFBSmdNOztNQUFJaE07O0dBb0JOO1lBRWYyVjtJQUFVLFlBQ1I7SUFDTSxJQUFUcFksY0FBSHdDLGNBQVksTUFGUjRWLFFBRURwWTtJQUFTLDhCQUFad0M7R0FBcUI7WUFJakIrRyxJQUFJNUo7SWYxRmIsWWUyRlc7SUFDVSxJQUFiNkMsY0FBSG1CLGNBQVkzRCxJQUFJLFdBRlJMLEdBRVJnRTtJQUF1QixXQUFYM0QsR0FGUnVKLElBQUk1SixHQUVMNkM7O2dCQUVNQyxHQUFFOUM7SWY5RmhCLFllK0ZXO0lBQ1UsSUFBYjZDLGNBQUhtQixjQUFZM0QsSUFBSSxXQUZMTCxHQUFGOEMsR0FFVGtCO0lBQXlCLFdBQWIzRCxPQUZIeUMsV0FBRTlDLEdBRVI2Qzs7WUFFSHdPLEtBQUtyUixHQUFFNkMsR0FBSSxjQUFON0MsR0FBRTZDLEdBQWM7WUFFckI2VixRQUFRMVksR0FBRTZDO0lBQ1osSUFBZStDLGtCQURIL0M7O2lCQUVGLE9BREsrQztLQUVJO01BQVprUztNQUFIOVQ7TUFBZSxhQUFDLFdBSFZoRSxHQUdOZ0UsSUFGVzRCOztjQUVSa1M7O0dBRUk7WUFHTDdJLEtBQUtqUDs7O21CQUNIO1NBQ0g2QyxnQkFBSG1CO0tBQVEsV0FGQ2hFLEdBRVRnRTttQkFBR25COzs7WUFNSDZNLE1BQU0xUCxHQUFFOFg7SUFBSSxJQUpGaFYsZUFJRmdWOztpQkFIRjtTQUNIalYsY0FBSG1CO0tBQVEsV0FFRmhFLEdBSkk4QyxHQUVWa0I7ZUFGVWxCLDRCQUVQRDs7R0FFb0I7WUFFbkJnTSxVQUFVN08sR0FBRTRGLE1BQUsvQztJQUN2QixJQURrQmlELGVBQUtnUztJQUN2QjtVQUR1QkEsS0FFZixPQUZVaFM7S0FHSTtNQUhDa1M7TUFHckJoVSxJQUhxQjhUO01BQUxsSSxTQUdJLFdBSE41UCxHQUFFOEYsUUFHaEI5QjtNQUhnQjhCO01BQUtnUzs7R0FHVztZQUU1QmEsV0FBVzNZLEdBQUU2QyxHQUFFK0M7SUFDckIsS0FEbUIvQyxHQUVYLE9BRmErQztRQUdoQmtTLE1BSGNqVixNQUdqQm1CLElBSGlCbkI7SUFHTCxrQkFIRzdDLEdBR2ZnRSxHQUhJMlUsV0FBVzNZLEdBR1o4WCxLQUhnQmxTO0dBR2M7WUFFN0I0TSxLQUFLeFMsR0FBRW1DLElBQUdDO0lBQ2hCLEdBRGFEO1FBQUdDO01BR2M7T0FBZmdXLE9BSENoVztPQUdMd1csS0FIS3hXO09BR1QrVixPQUhNaFc7T0FHVjBXLEtBSFUxVztPQUdhOUIsSUFBSSxXQUhuQkwsR0FHUjZZLElBQVFEO01BQThCLFdBQWZ2WSxHQUhwQm1TLEtBQUt4UyxHQUdKbVksTUFBUUM7OztjQUhDaFcsSUFFRjtJQUVGO0dBQXVCO1lBRWpDMFcsU0FBUzlZLEdBQ1VtQyxJQUFHQztJQUF4QixJQUFnQndELFVBQUt1UyxXQUFHQztJQUN0QjtRQURtQkQ7U0FBR0M7T0FHUTtRQUhSRTtRQUdYTSxLQUhXUjtRQUFIQztRQUdoQlEsS0FIZ0JWO1FBQUxyUyxhQUdpQixXQUp0QjlGLEdBSU42WSxJQUFRRCxLQUhHaFQ7O1FBQUt1UztRQUFHQzs7OztxQkFFUixPQUZBeFM7S0FJRjs7R0FFRTtZQUdWc0ssTUFBTWxRLEdBQUVtQyxJQUFHQztJQUNqQixJQURjK1YsV0FBR0M7SUFDakI7UUFEY0Q7U0FBR0M7MkJBR05RLEtBSE1SLFNBQUhDLGdCQUdYUSxLQUhXVjtPQUdRLFdBSFZuWSxHQUdUNlksSUFBUUQ7V0FIR1QsYUFBR0M7Ozs7cUJBRUg7S0FFRjs7R0FBd0I7WUFFOUI5SCxXQUFXdFEsR0FBRTRGLE1BQUt6RCxJQUFHQztJQUMzQixJQURtQjBELGVBQUtxUyxXQUFHQztJQUMzQjtRQUR3QkQ7U0FBR0M7T0FHUTtRQUhSRTtRQUdoQk0sS0FIZ0JSO1FBQUhDO1FBR3JCUSxLQUhxQlY7UUFBTHZJLFNBR2dCLFdBSGxCNVAsR0FBRThGLFFBR2hCK1MsSUFBUUQ7UUFIUTlTO1FBQUtxUztRQUFHQzs7OztxQkFFYixPQUZLdFM7S0FJUDs7R0FBNkI7WUFFbkNpVCxZQUFZL1ksR0FBRW1DLElBQUdDLElBQUd3RDtJQUMxQixHQURvQnpEO1FBQUdDO1VBR1JnVyxPQUhRaFcsT0FHWndXLEtBSFl4VyxPQUdoQitWLE9BSGFoVyxPQUdqQjBXLEtBSGlCMVc7TUFHVSxrQkFIWm5DLEdBR2Y2WSxJQUFRRCxJQUhMRyxZQUFZL1ksR0FHWG1ZLE1BQVFDLE1BSFd4Uzs7O2NBQUh4RCxJQUVULE9BRll3RDtJQUlkO0dBQThCO1lBRXBDaUssUUFBUUM7OzttQkFDTjtLQUNFLElBQUxqTixnQkFBSG1CLGdCQUFRLGlCQUZJOEwsR0FFWjlMO0tBQVE7bUJBQUxuQjs7O1lBRUNrTixPQUFPRDs7O21CQUNMO0tBQ0UsSUFBTGpOLGdCQUFIbUIsZ0JBQVEsaUJBRkc4TCxHQUVYOUw7S0FBUTttQkFBTG5COzs7WUFFQzBOLFNBQVNULEdBQUUzTixJQUFHQztJQUNwQixJQURpQitWLFdBQUdDO0lBQ3BCO1FBRGlCRDtTQUFHQztPQUdFO1FBSEZFO1FBR1RNLEtBSFNSO1FBQUhDO1FBR2RRLEtBSGNWO1FBR0ssaUJBSFBySSxHQUdaK0ksSUFBUUQ7T0FBVztXQUhMVCxhQUFHQzs7OztxQkFFTjtLQUVGOztHQUEyQjtZQUVqQzVILFFBQVFWLEdBQUUzTixJQUFHQztJQUNuQixJQURnQitWLFdBQUdDO0lBQ25CO1FBRGdCRDtTQUFHQztPQUdHO1FBSEhFO1FBR1JNLEtBSFFSO1FBQUhDO1FBR2JRLEtBSGFWO1FBR00saUJBSFJySSxHQUdYK0ksSUFBUUQ7T0FBVztXQUhOVCxhQUFHQzs7OztxQkFFTDtLQUVGOztHQUEwQjtZQUVoQ1ksSUFBSTdYOzs7bUJBQ0Y7O01BQ0gwQjtNQUFIbUI7a0JBQVEsYUFBUkEsR0FGUTdDOzttQkFFTDBCOzs7WUFFQ29XLEtBQUs5WDs7O21CQUNIO1NBQ0gwQixnQkFBSG1CLDRCQUZTN0M7O21CQUVOMEI7OztZQUVDcVcsTUFBTS9YOzs7bUJBQ0o7U0FDQzBCLG9DQUFKTixjQUFGeUI7S0FBYyxzQkFBZEEsR0FGUzdDLElBRTBCLE9BQWpDb0I7bUJBQUlNOzs7WUFFSHNXLFVBQVVoWTs7O21CQUNSO1NBQ0MwQixvQ0FBSk4sY0FBRnlCO0tBQWMsc0JBQWRBLEdBRmE3QyxJQUVzQixXQUFqQ29CO21CQUFJTTs7O1lBRUh1VyxLQUFLalk7OzttQkFDSDtTQUNDMEIsb0NBQUpOLGNBQUZ5QjtjQUZRN0MsR0FFa0IsT0FBeEJvQjttQkFBSU07OztZQUVId1csU0FBU2xZOzs7bUJBQ1A7U0FDQzBCLG9DQUFKTixjQUFGeUI7Y0FGWTdDLEdBRWMsV0FBeEJvQjttQkFBSU07OztZQUVIeVcsVUFBVW5ZOzs7bUJBQ1I7O01BQ0kwQjtNQUFUbUI7a0JBQWMsYUFBZEEsR0FGYTdDOzttQkFFSjBCOzs7WUFFTjBXLFNBQVNwWTs7O21CQUNQO1NBQ0kwQixnQkFBVG1CLCtCQUZZN0M7O21CQUVIMEI7OztZQUVOMlcsYUFBYXJZO0lmdE50QixZZXVOVztRQUNZMEIsY0FBbEI0VyxpQkFBQ3pWLElBQUR5VjtJQUNLLDBCQURKelYsR0FGZ0I3QyxLQUVDMEIsUUFBbEI0VyxNQUZJRCxhQUFhclksR0FFQzBCOztZQUdkNlcsWUFBWXZZO0lmM05yQixZZTROVztRQUNZMEIsY0FBbEI0VyxpQkFBQ3pWLElBQUR5VjtXQUFDelYsTUFGZTdDLElBRUUwQixRQUFsQjRXLE1BRklDLFlBQVl2WSxHQUVFMEI7O1lBRWRtTixLQUFLRjs7O21CQUNIO1NBQ0RqTixnQkFBTDFCO0tBQWEsY0FGSjJPLEdBRVQzTyxJQUFzQixPQUF0QkE7bUJBQUswQjs7O1lBRUQ4VyxTQUFTN0o7OzttQkFDUDtTQUNEak4sZ0JBQUwxQjtLQUFhLGNBRkEyTyxHQUViM08sSUFBc0IsV0FBdEJBO21CQUFLMEI7OztZQUVEb04sU0FBU2pROzs7bUJBQ1A7S0FFTyxJQURSNkMsZ0JBQUwxQixnQkFFS2tNLFNBRFEsV0FIQXJOLEdBRWJtQjtRQUVLa00sUUFBb0IsT0FBcEJBO21CQUZBeEs7OztZQU1MK1csU0FBUzlKO0lBSVg7O1NBSGFoSzs7a0JBQ0wsT0FyTE55UyxJQW9MV3pTO1VBRU5qRCxjQUFMMUI7TUFBYSxjQUhKMk8sR0FHVDNPO09BQTJCLGlCQUEzQkEsR0FGVzJFLGtDQUVOakQ7Ozs7O0dBQ0E7WUFJTGdYLFFBQVEvSixHQUFFak47SUFDWixJQUFZQyxPQUFFZ00saUJBREZqTTs7aUJBRUosT0E3TE4wVixJQTRMWXpKO0tBRVk7TUFBckJnSjtNQUFIM1c7TUFBd0IsbUJBSGhCMk8sR0FDRWhOLEdBRVYzQixZQUZZMk47WUFBRmhNOztNQUFFZ007Y0FFVGdKOztHQUVLO1lBRVJ0SixXQUFXeE87SUFRYjs7U0FQWThGOztrQkFDRixPQXBNUnlTLElBbU1VelM7TUFHQSxJQURIakQsY0FBTDFCLGNBQ1EsbUJBSkNuQixHQUdUbUI7O09BR2tCLElBQVRoQixjQUFTLGFBQVRBLEdBTEQyRixrQ0FFSGpEOzs7OztHQUtIO1lBRUppWCxXQUNVOVosR0FERzZDO0lBQ2YsSUFBY2lNLGlCQURDak07O2lCQUVMLE9BOU1SMFYsSUE2TVl6SjtLQUdBO01BRExnSjtNQUFMM1c7TUFDS21PLEtBQUssV0FIRnRQLEdBRVJtQjtNQUVPLFFBdE5MK1csV0FxTkc1SSxJQUhLUjs7Y0FFTGdKOztHQUdJO1lBRVhpQyxjQUFjL1osR0FBRTRGLE1BQUsvQztJQUN2QixJQUFZaUQsU0FETUYsTUFDRG9VLG9CQURNblg7O2lCQUViLFdBREVpRCxRQXJOVnlTLElBcU5leUI7S0FHRztNQURYbEM7TUFBTDNXO01BQ2dCLG1CQUpKbkIsR0FDSjhGLFFBRVIzRTtNQUNZOFk7TUFBTnJLO01BQ0ssZUFEQ3FLLEtBSENEO01BQUxsVSxTQUdGOEo7TUFIT29LO2NBRVJsQzs7R0FHSTtZQUVYekUsVUFBVXZELEdBQUVqTjtJQUNkLElBQWFxWCxTQUFJQyxnQkFESHRYOztpQkFFSSxVQTlOaEIwVixJQTZOZTRCLEtBQ1QsV0E5Tk41QixJQTZOVzJCO1NBRU5wQyxnQkFBTDNXO0tBQWEsY0FISDJPLEdBR1YzTztNQUEyQixnQkFBM0JBLEdBRlcrWSwyQkFFTnBDOzs7S0FBb0QsZUFBekQzVyxHQUZlZ1osd0JBRVZyQzs7R0FDSztZQUVWMUUsY0FBY3RELEdBQUVqTjtJQUNsQixJQUFhc0csVUFBS0MsbUJBREF2Rzs7aUJBRUMsVUFwT2pCMFYsSUFtT2dCblAsUUFDVixXQXBPTm1QLElBbU9XcFA7S0FHRSxJQURSMk8sZ0JBQUwzVyxjQUNhLG1CQUpDMk8sR0FHZDNPOztNQUUyQixJQUFWaEIsY0FBVSxhQUFWQSxHQUpOZ0osOEJBRU4yTzs7O0tBRzRCO01BQWZqTztNQUFlLGNBQWZBLEtBTEZUOztjQUVYME87O0dBTUs7WUFFTnNDO0lBQVEsWUFDTjtJQUVXO0tBRFZ2WDs7S0FBSnpCO0tBQUZEO0tBQ2dCLFVBSGJpWixNQUVHdlg7S0FDSXdYO0tBQUpDO0lBQXFCLGVBRDNCblosR0FDTW1aLFNBREpsWixHQUNRaVo7R0FBK0I7WUFFdENFLFFBQVFwWSxJQUFHQztJQUNqQixHQURjRDtRQUFHQztVQUdGZ1csT0FIRWhXLE9BR053VyxLQUhNeFcsT0FHVitWLE9BSE9oVyxPQUdYMFcsS0FIVzFXO01BR1EsZUFBbkIwVyxJQUFRRCxLQUhMMkIsUUFHQ3BDLE1BQVFDOzs7Y0FIRWhXLElBRUg7SUFFRjtHQUEwQjtZQUloQ29ZLE1BQU05SixLQUdWdk8sSUFESUM7SUFETixLQUVFRCxJQURVLE9BQU5DO2FBQ00sT0FBVkQ7UUFDZ0JzWSxLQUZaclksT0FFTXNZLEtBRk50WSxPQUVFdVksS0FETnhZLE9BQ0F5WSxLQURBelk7SUFFSyxzQkFMS3VPLEtBSVZrSyxJQUFVRjtzQkFKTkYsTUFBTTlKLEtBR1Z2TyxJQUNnQnNZO2tCQUFoQkcsSUFKSUosTUFBTTlKLEtBSUppSyxJQUZGdlk7R0FLd0I7WUFHNUJ5WSxZQUFZbkssS0FBSTdOO2FBbUJWaVksS0FBS2xhLEdBQUVpQztLQUNiLFNBRFdqQztTQUFFaUM7OztRQUdFO1NBREVNO1NBQU40WDtTQUFOQyxLQUZRblk7U0FHTDdCO2VBQU8sV0F0QkgwUCxLQXFCUHNLLElBQU1EOzBCQUFOQzswQkFBTUQ7UUFFUCxXQURJL1osR0FEU21DOzs7O21CQUZOdkMsS0FBRWlDOzs7OztRQU9KO1NBRmNvWTtTQUFOQztTQUFOQztTQUFOQyxPQUxRdlk7U0FNTDBPO2VBQ0MsV0ExQkdiLEtBd0JQMEssTUFBTUQ7O2dCQU1HLFdBOUJGekssS0F3QlAwSyxNQUFZRjs7a0JBT0gsV0EvQkZ4SyxLQXdCRHlLLE1BQU1EOzhCQUFOQyxVQUFOQztzQkFBTUQsVUFBTUQsUUFBWkU7b0JBQU1ELFVBQU5DLFVBQVlGOztnQkFHTixXQTNCQ3hLLEtBd0JEeUssTUFBTUQ7O2tCQUlELFdBNUJKeEssS0F3QlAwSyxNQUFZRjs4QkFBWkUsVUFBTUQ7c0JBQU5DLFVBQVlGLFFBQU5DO29CQUFOQyxVQUFNRCxVQUFNRDtRQVViLFdBVEkzSixLQURlMEo7Ozs7S0FjTjtNQUZUSSxLQWpCR3phO01Ba0JIMGEsS0FsQkcxYSxJQWlCSHlhO01BRVMsVUFHZkUsU0FMTUYsSUFqQkt4WTtNQW1CRHVWO01BNUJRblc7TUE2QkgsVUFFZnNaLFNBSk1ELElBQ0lsRDtNQUNBb0Q7TUE3Qld0WjtNQUdyQkMsS0FIa0JGO01BRWRHLEtBRmlCRjtNQUFHMEQ7S0FDMUI7U0FFRXpEO1VBRElDO1lBRmlCcVksS0FFakJyWSxPQUVJc1ksS0FGSnRZLE9BRmN1WSxLQUdsQnhZLE9BQ0F5WSxLQURBelk7UUFFSyxrQkFmS3VPLEtBY1ZrSyxJQUFRRjtTQUVtQixJQU5INVUsYUFJeEI4VSxJQUp3QmhWLE9BR3hCekQsS0FIa0J3WSxJQUFNL1U7OztRQU9HLElBUEhnSyxhQUloQjhLLElBSmdCOVUsT0FFcEJ4RCxLQUZpQnFZLElBQUc3VTs7O2lCQW5SdEJzUyxXQXNSRi9WLElBSHdCeUQ7OztpQkFuUnRCc1MsV0FxUkU5VixJQUZvQndEO01BOEJ0QixnQkFEUTRWOztJQUNvQjthQUM5QkQsU0FBUzNhLEdBQUVpQztLQUNiLFNBRFdqQztTQUFFaUM7OztRQUdFO1NBREVNO1NBQU40WDtTQUFOQyxLQUZRblk7U0FHTDdCO2VBQU8sV0E1Q0gwUCxLQTJDUHNLLElBQU1EO2tCQUFOQyxRQUFNRDswQkFBTkM7UUFFRCxXQURJaGEsR0FEU21DOzs7O21CQUZOdkMsS0FBRWlDOzs7OztRQU9KO1NBRmNvWTtTQUFOQztTQUFOQztTQUFOQyxPQUxRdlk7U0FNTDBPO2VBQ0MsV0FoREdiLEtBOENQMEssTUFBTUQ7O2dCQUdBLFdBakRDekssS0E4Q0R5SyxNQUFNRDtvQkFBWkUsVUFBTUQsVUFBTUQ7O2tCQUlELFdBbERKeEssS0E4Q1AwSyxNQUFZRjtzQkFBWkUsVUFBWUYsUUFBTkM7c0JBQU1ELFFBQVpFLFVBQU1EOztnQkFNRyxXQXBERnpLLEtBOENQMEssTUFBWUY7b0JBQU5DLFVBQU5DLFVBQVlGOztrQkFPSCxXQXJERnhLLEtBOENEeUssTUFBTUQ7c0JBQU5DLFVBQU1ELFFBQVpFO3NCQUFZRixRQUFOQyxVQUFOQztRQVVELFdBVEk3SixLQURlMEo7Ozs7S0FjTjtNQUZUSSxLQWpCR3phO01Ba0JIMGEsS0FsQkcxYSxJQWlCSHlhO01BRVMsVUF6Q1hQLEtBdUNFTyxJQWpCS3hZO01BbUJEdVY7TUEzREluVztNQTREQyxVQTFDWDZZLEtBd0NFUSxJQUNJbEQ7TUFDQW9EO01BNURPdFo7TUFHakJDLEtBSGNGO01BRVZHLEtBRmFGO01BQUcwRDtLQUN0QjtTQUVFekQ7VUFESUM7WUFGYXFZLEtBRWJyWSxPQUVJc1ksS0FGSnRZLE9BRlV1WSxLQUdkeFksT0FDQXlZLEtBREF6WTtRQUVLLGtCQU5LdU8sS0FLVmtLLElBQVFGO1NBR2UsSUFQSDVVLGFBSVo0VSxJQUpZOVUsT0FFaEJ4RCxLQUZhcVksSUFBRzdVOzs7UUFNRyxJQU5IZ0ssYUFJcEJnTCxJQUpvQmhWLE9BR3BCekQsS0FIY3dZLElBQU0vVTs7O2lCQTFRbEJzUyxXQTZRRi9WLElBSG9CeUQ7OztpQkExUWxCc1MsV0E0UUU5VixJQUZnQndEO01BNkRsQixnQkFEUTRWOztJQUNnQjtJQUVwQixJQUFObFgsTUF2V0YrSCxPQXVTZ0J4SjtJQWlFbEIsWUFESXlCLE1BN0NJd1csS0E2Q0p4VyxLQWhFY3pCO0dBaUVxQjtZQXlDckM0WSxVQUFVL0ssS0FBSTdOO2FBdUJSaVksS0FBS2xhLEdBQUVpQztLQUNiLFNBRFdqQztTQUFFaUM7OztRQUlDO1NBRkdNO1NBQU40WDtTQUFOQyxLQUZRblk7U0FJSDZZLE1BQUksV0EzQkpoTCxLQXlCTHNLLElBQU1EO1NBQ0gvWjtpQkFDRTBhO2tCQUZMVjttQkFFS1UsVUFGQ1gsUUFBTkMsc0JBQU1EO1FBS1AsV0FKSS9aLEdBRFNtQzs7OzttQkFGTnZDLEtBQUVpQzs7Ozs7UUFVQztTQUZTb1k7U0FBTkM7U0FBTkM7U0FBTkMsT0FSUXZZO1NBVUg4WSxNQUFJLFdBakNKakwsS0ErQkwwSyxNQUFNRDtRQUdMLFNBRElRO1NBRU07VUFBSkMsTUFBSSxXQW5DTmxMLEtBK0JDeUssTUFBTUQ7VUFLVDtrQkFESVU7bUJBSkRUO29CQUlDUyxVQUpLVixRQUFOQywwQkFBTUQ7VUFDVDNKO3FCQUNFb0s7U0FjTSxJQUFKRSxNQUFJLFdBL0NObkwsS0ErQkwwSyxNQUFZRjtTQWlCVCxTQURJVzt3QkFoQkRWLFVBQU5DO3NCQWdCT1M7VUFJTTtXQUFKQyxNQUFJLFdBbkRScEwsS0ErQkN5SyxNQUFNRDtXQXFCUDttQkFESVk7b0JBcEJIWCxVQUFOQzs7bUJBb0JTVTtzQkFwQkdaLFFBQU5DLFVBQU5DO3NCQUFNRCxVQUFNRCxRQUFaRTs7O3dCQUFNRCxVQUFOQyxVQUFZRjthQUNUM0o7OztTQU1RLElBQUp3SyxNQUFJLFdBdENOckwsS0ErQkN5SyxNQUFNRDtTQVFULFNBRElhO3dCQVBQWCxVQUFNRDtzQkFPQ1k7VUFJTTtXQUFKQyxNQUFJLFdBMUNSdEwsS0ErQkwwSyxNQUFZRjtXQVlQO21CQURJYztvQkFYVFosVUFBTUQ7O21CQVdHYTtzQkFYR2QsUUFBWkUsVUFBTUQ7c0JBQU5DLFVBQVlGLFFBQU5DOzs7d0JBQU5DLFVBQU1ELFVBQU1EO2FBQ1QzSjs7UUF3QkosV0F4QklBLEtBRGUwSjs7OztLQTZCTjtNQUZUSSxLQW5DR3phO01Bb0NIMGEsS0FwQ0cxYSxJQW1DSHlhO01BRVMsVUFHZkUsU0FMTUYsSUFuQ0t4WTtNQXFDRHVWO01BaERRblc7TUFpREgsVUFFZnNaLFNBSk1ELElBQ0lsRDtNQUNBb0Q7TUFqRFd0WjtNQUdyQkMsS0FIa0JGO01BRWRHLEtBRmlCRjtNQUFHMEQ7S0FDMUI7U0FFRXpEO1VBRElDO1FBR007U0FMV3FZLEtBRWpCclk7U0FFSXNZLEtBRkp0WTtTQUZjdVksS0FHbEJ4WTtTQUNBeVksS0FEQXpZO1NBRU15QixJQUFJLFdBakJGOE0sS0FnQlJrSyxJQUFRRjtRQUVOLFNBREk5VztTQUM4QixJQU5aa0MsYUFJeEI4VSxJQUp3QmhWLE9BR3hCekQsS0FIa0J3WSxJQUVkdlksS0FGaUJxWSxJQUFHN1U7OztlQUtsQmhDO1NBR3FCLElBUkhnTSxhQUl4QmdMLElBSndCaFYsT0FHeEJ6RCxLQUhrQndZLElBQU0vVTs7O1FBU0csSUFUSHFXLGFBSWhCdkIsSUFKZ0I5VSxPQUVwQnhELEtBRmlCcVksSUFBRzdVOzs7aUJBL1h0QnNTLFdBa1lGL1YsSUFId0J5RDs7O2lCQS9YdEJzUyxXQWlZRTlWLElBRm9Cd0Q7TUFrRHRCLGdCQURRNFY7O0lBQ29CO2FBQzlCRCxTQUFTM2EsR0FBRWlDO0tBQ2IsU0FEV2pDO1NBQUVpQzs7O1FBSUM7U0FGR007U0FBTjRYO1NBQU5DLEtBRlFuWTtTQUlINlksTUFBSSxXQW5FSmhMLEtBaUVMc0ssSUFBTUQ7U0FDSC9aO2lCQUNFMGE7a0JBRkxWO2tCQUVLVSxVQUZMVixRQUFNRCxzQkFBTkM7UUFLRCxXQUpJaGEsR0FEU21DOzs7O21CQUZOdkMsS0FBRWlDOzs7OztRQVVDO1NBRlNvWTtTQUFOQztTQUFOQztTQUFOQyxPQVJRdlk7U0FVSDhZLE1BQUksV0F6RUpqTCxLQXVFTDBLLE1BQU1EO1FBR0wsU0FESVE7U0FFTTtVQUFKQyxNQUFJLFdBM0VObEwsS0F1RUN5SyxNQUFNRDtVQUtUO2tCQURJVTttQkFKRFQ7bUJBSUNTLFVBSkRULFVBQU1ELHNCQUFOQztVQUNINUo7b0JBQ0VvSztTQUtNLElBQUpFLE1BQUksV0E5RU5uTCxLQXVFQ3lLLE1BQU1EO1NBUVQsU0FESVc7d0JBUFBULFVBQU1EO3FCQU9DVTt3QkFQUFQsVUFBTUQsVUFBTUQ7O1VBV0M7V0FBSlksTUFBSSxXQWxGUnBMLEtBdUVMMEssTUFBWUY7V0FZUDttQkFESVk7b0JBWFRWLFVBQU1EOztrQkFXR1c7c0JBWFRWLFVBQVlGLFFBQU5DO3NCQUFNRCxRQUFaRSxVQUFNRDs7YUFDSDVKOzs7U0FlUSxJQUFKd0ssTUFBSSxXQXZGTnJMLEtBdUVMMEssTUFBWUY7U0FpQlQsU0FESWE7d0JBaEJEWixVQUFOQztxQkFnQk9XO3dCQWhCRFosVUFBTkMsVUFBWUY7O1VBb0JDO1dBQUpjLE1BQUksV0EzRlJ0TCxLQXVFQ3lLLE1BQU1EO1dBcUJQO21CQURJYztvQkFwQkhiLFVBQU5DOztrQkFvQlNZO3NCQXBCSGIsVUFBTUQsUUFBWkU7c0JBQVlGLFFBQU5DLFVBQU5DOzthQUNHN0o7O1FBd0JKLFdBeEJJQSxLQURlMEo7Ozs7S0E2Qk47TUFGVEksS0FuQ0d6YTtNQW9DSDBhLEtBcENHMWEsSUFtQ0h5YTtNQUVTLFVBN0VYUCxLQTJFRU8sSUFuQ0t4WTtNQXFDRHVWO01BbkdJblc7TUFvR0MsVUE5RVg2WSxLQTRFRVEsSUFDSWxEO01BQ0FvRDtNQXBHT3RaO01BR2pCQyxLQUhjRjtNQUVWRyxLQUZhRjtNQUFHMEQ7S0FDdEI7U0FFRXpEO1VBRElDO1FBR007U0FMT3FZLEtBRWJyWTtTQUVJc1ksS0FGSnRZO1NBRlV1WSxLQUdkeFk7U0FDQXlZLEtBREF6WTtTQUVNeUIsSUFBSSxXQU5GOE0sS0FLUmtLLElBQVFGO1FBRU4sU0FESTlXO1NBQzBCLElBTlprQyxhQUlwQjhVLElBSm9CaFYsT0FHcEJ6RCxLQUhjd1ksSUFFVnZZLEtBRmFxWSxJQUFHN1U7OztnQkFLZGhDO1NBSWlCLElBVEhnTSxhQUlaOEssSUFKWTlVLE9BRWhCeEQsS0FGYXFZLElBQUc3VTs7O1FBUUcsSUFSSHFXLGFBSXBCckIsSUFKb0JoVixPQUdwQnpELEtBSGN3WSxJQUFNL1U7OztpQkFwWGxCc1MsV0F1WEYvVixJQUhvQnlEOzs7aUJBcFhsQnNTLFdBc1hFOVYsSUFGZ0J3RDtNQXFHbEIsZ0JBRFE0Vjs7SUFDZ0I7SUFFcEIsSUFBTmxYLE1BemZGK0gsT0FpWmN4SjtJQXlHaEIsWUFESXlCLE1BakZJd1csS0FpRkp4VyxLQXhHWXpCO0dBeUd1QjtZQUdqQ3FaLGdCQUFnQi9aLElBQUdDO0lBQ3pCLElBRHNCK1YsV0FBR0M7SUFDekI7VUFEc0JELGFBQUdDO2dCQUlkO1NBSmNFLGdCQUFIRCw2QkFBR0Q7O0dBS2tCO1lBR3JDK0Qsb0JBQW9CdFosR0FBRWpDO0lBQzVCLElBRDBCa1gsU0FBRWxHO0lBQzVCO1VBRDBCa0csa0JBQUVsRztTQUFGb0c7S0FNeEIsUUFOMEJwRyxLQU1YO0tBQ2IsSUFQd0JDLG1CQUFGaUcsV0FBRWxHOztHQU9HO1lBVXpCN0gsTUFBTTBHLElBQUd0TyxJQUFHQztJQUNsQixJQURlK1YsV0FBR0M7SUFDbEI7UUFEZUQ7U0FBR0M7T0FJRTtRQUpGRTtRQUlSTSxLQUpRUjtRQUFIQztRQUliUSxLQUphVjtRQUlLLGlCQUpSMUgsSUFJVm9JLElBQVFEO09BQVU7V0FKTFQsYUFBR0M7Ozs7cUJBRU47S0FDYTs7R0FDcUI7WUFFeEM5TixRQUFRb0csS0FBSXZPLElBQUdDO0lBQ3JCLElBRGtCK1YsV0FBR0M7SUFDckI7VUFEa0JELGFBQUdDO1NBQUhDLGdCQUtoQlEsS0FMZ0JWO1VBQUdDLE1BSVA7S0FFSixJQU5XRSxnQkFLWE0sS0FMV1IsU0FNZnhVLElBQUksV0FOSThNLEtBS1ptSSxJQUFRRDtLQUVSLFNBREloVixHQUNXLE9BRFhBO1NBTll1VSxhQUFHQzs7R0FRRztZQUl0Qm5ELE9BQU9wUztJQUNULFNBQVF1WixJQUFJdlo7S0FBTyxLQUFQQSxHQUNGO1NBQ0R3WixPQUZHeFosTUFFUjFCLElBRlEwQjtLQUVLLFdBQWIxQixpQmZwa0JQLE9la2tCV2liLElBRUNDO0lBQThCO0lBRXZDLHFCZnRrQkgsT2Vra0JXRCxJQURDdlo7R0FLSjtZQUVIeVosT0FBTy9OO2FBQ0RnTyxPQUFPQyxPQUFNak87S0FDbkIsU0FEYWlPO2tDQUdRMU4sS0FBSTNOLEdBQUssV0FBTEEsR0FBSjJOLEtBQWU7TUFBbEMsT0FoaEJGeUosSUFnaEJFLG9DQUhpQmhLOztLQUtSLHVCQUxRQTtpQkFNSjtTQUNFSixpQkFBSGhOO0tBQVksV0FBWkEsR0FQUm9iLE9BQU9DLGVBT0lyTztJQUFtQztJQUV0RCxPQVRRb08sWUFEQ2hPO0dBVUs7Ozs7T0F6akJabEM7T0E2Zkk2UDtPQVFBQztPQW5nQkpqTztPQUVBOUs7T0FJQUQ7T0FJQTRVO09BUUFFO09BZUFNO09BbUJBMUg7T0ExQkF6QztPQUVJOEo7T0E2QkFPOztPQTJkQTFPO09BTUFPO09BemNBMkU7T0FRSlM7T0ExQkk5RjtPQVFKeUg7T0FFQXFIO09BMEpBbEs7T0FVQXNMO09BUUFDO09BMUpJbEw7T0FLQThKO09BcUJBekk7T0FoQkFzQztPQU1Kc0c7T0FnQkl4STtPQU1BeUk7T0FNQWxKO09BSUFFO09BSUFRO09BTUFDO09BTUF3STtPQUlBQztPQXFDQWpKO09BSUEySjtPQUlBMUo7T0FRSjJKOztPQVFBQztPQWlDQXhHO09BTUFEO09BaEdJOEY7T0FJQUM7T0FJQUM7T0FJQUM7T0FJQUM7T0FJQUM7T0FJQUM7T0FLQUU7T0E4RUFVO09BS0FHO09Ba0JKTTs7O09BMEdBWTtPQXBISWpCO09BMlFKdkY7T0FPQXFIOzs7RWZ4a0JMOzs7Ozs7MENnQmtCS0csVUFDQUMsU0FDQUM7WUFTQXJiLElBQUlILEdBQUksWUFBSkEsZ0JBQTRCO09BQ2hDVyxzQkFDQUM7WUFJQTZhLE9BQU96YixHQUFJLE9BQUpBLE9BQWlCO1lBSXhCNEksZ0JoQnZDTDtPZ0J3Q0tPO1lBQ0FwSixJQUFJQyxHQUFFQyxHQUFRLE9BQVZELEtBQUVDLElBQUZELElBQUVDLEVBQStCO1lBQ3JDQyxJQUFJRixHQUFFQyxHQUFRLE9BQVJBLEtBQUZELFFBQUVDLEVBQStCO1lBVXJDMlUsVUFBVTVVLEdBQUksWUFBSkEsRUFBcUI7Ozs7T0FsQy9Cc2I7T0FDQUM7T0FDQUM7T0FTQXJiO09BQ0FRO09BQ0FDO09BSUE2YTtPQUlBN1M7T0FDQU87T0FDQXBKO09BQ0FHO09BVUEwVTs7O0VoQnBETDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lpQnlDSzdWLEtBQUtVLEdBQUVnRDtJQUNELElBQUo1QyxJQUFJLGtCQURESjtJQUVQLGdCQURJSSxNQURHSixHQUFFZ0Q7SUFFVCxPQURJNUM7R0FFSDtZQUVDNlAsS0FBS2pRLEdBQUVaO0lBQ1QsSUFBSWdCLElBQUksa0JBRERKLElBRVAsT0FGT0EsV0FDQzs7U0FDUmtDOzs0QkFESTlCLEdBQ0o4QixHQUNpQixXQUhSOUMsR0FFVDhDOzs7Ozs7SUFHQSxPQUpJOUI7R0FJSDtHQUVTLElBQVJnTixRQUFRO1lBRVI2TyxLQUFLN2I7SUFDUCxJQUFJc0QsMkJBREd0RCxJQUVIWCxJQUFJLGtCQURKaUU7SUFFSixnQkFIT3RELE1BRUhYLE1BREFpRTtJQUVKLE9BRElqRTtHQUVIO1lBRUMwVixVQUFVeFQsR0FBSSxPQUFpQixxQkFOL0JzYSxLQU1VdGEsSUFBNkI7WUFDdkN1YSxVQUFVOWIsR0FBSSxPQVBkNmIsMEJBT1U3YixJQUE2QjtZQUV2QytiLElBQUkvYixHQUFFcUQsS0FBSUM7SUFDWixRQURRRCxZQUFJQyw2QkFBTnRELEtBQU1zRCxZQUFKRDtLQUlFLElBQUpoRSxJQUFJLGtCQUpFaUU7S0FLVixnQkFMSXRELEdBQUVxRCxLQUlGaEUsTUFKTWlFO0tBS1YsT0FESWpFOztJQUZEO0dBS0Y7WUFFRDJjLFdBQVd6YSxHQUFFOEIsS0FBSUM7SUFBTSxPQUFpQixxQkFUeEN5WSxJQVNXeGEsR0FBRThCLEtBQUlDO0dBQXNDO1lBR3ZEdEMsT0FBS2dDLEdBQUV6QjtJQUNUO0tBQUlxQixJQURHSSxJQUFFekI7O2FBQ0xxQjs7T0FER0k7Ozs7c0JBSWtCLDBDQUhyQko7R0FJSTtZQUVOcVosT0FBT2pjLEdBQUVtSSxNQUFLQztJQUNoQjtLQUFJOUUsTUFSRnRDLG1DQU9PaEIsSUFBRW1JLE9BQUtDO0tBRVovSSxJQUFJLGtCQURKaUU7WUFETzZFO1NBR0UrVCxTQUhGL1QsTUFHTmdVOztTQUFRRCxZQUFSQyxXQUhNaFU7SUFJRTtLQUFUaVU7T0FBUzs7OEJBSkpwYyxLQUdKbWM7U0FGRDdZLE1BRVM0WTtXQUNURSxRQUNlLGdCQUxWcGMsR0FHSm1jLFFBREQ5YyxHQUNTNmMsUUFDVEU7SUFDZSxPQUhmL2M7R0FJSDtZQUVDZ2QsS0FBS3JjLEdBQUVxRCxLQUFJQyxLQUFJVjtJQUNqQixRQURTUyxZQUFJQyw2QkFBTnRELEtBQU1zRCxZQUFKRDtLQUdKLHVCQUhFckQsR0FBRXFELEtBQUlDLEtBQUlWO0lBRVo7R0FDdUI7WUFFMUIwWixLQUFLcmIsSUFBR3NiLE1BQUtyYixJQUFHc2IsTUFBS2xaO0lBQ3ZCO1dBRHVCQTs7WUFBYmlaOzs4QkFBSHRiLE1BQWdCcUMsWUFBYmlaO2dCQUFRQyw4QkFBSHRiLE1BQVFvQyxZQUFMa1o7S0FJYix1QkFKRXZiLElBQUdzYixNQUFLcmIsSUFBR3NiLE1BQUtsWjtJQUdsQjtHQUMrQjtZQUVsQ21aLFlBQVl4YixJQUFHc2IsTUFBS3JiLElBQUdzYixNQUFLbFo7SUFDOUI7V0FEOEJBOztZQUFiaVo7O3VDQUFIdGIsTUFBZ0JxQyxZQUFiaVo7Z0JBQVFDLDhCQUFIdGIsTUFBUW9DLFlBQUxrWjtLQUlwQixnQ0FKU3ZiLElBQUdzYixNQUFLcmIsSUFBR3NiLE1BQUtsWjtJQUd6QjtHQUNzQztZQUd6QzJLLEtBQUtqUCxHQUFFZ0U7SUFDVCxnQ0FEU0EsWUFDVDs7OztNQUE2QixXQUR0QmhFLHlCQUFFZ0UsR0FDVGxCO01BQTZCLFdBQTdCQTs7Ozs7O0dBQW1EO1lBR2pENE0sTUFBTTFQLEdBQUVnRTtJQUNWLGdDQURVQSxZQUNWOzs7O01BQTZCLFdBRHJCaEUsR0FDUjhDLHlCQURVa0IsR0FDVmxCO01BQTZCLFdBQTdCQTs7Ozs7O0dBQXNEO1lBa0JwRDZMLE9BQU8rTyxLQUVQN2E7SWpCdElMLEtpQnNJS0EsR0FqRlEsT0FBUm1MO1FBc0U2QjJQLDhCQVN0QkQsTUFkUzVPLGlCQWdCaEJqTTs7O1VBZEFPOzs7UUFDTUQ7UUFMS2hDLDBCQUlYaUMsTUFHNkJ1YSxjQUxiN087dUJBRkwzTixRQUFpQztRQUU1QjJOO2dCQUdWM0w7OztzQ0FETkMsTUFGZ0IwTDs7OztLQWtCUixJQWJTOE8sTUFhVCx5QkFiYUMsdUJBV3JCaGI7O29CQVZNLE9BRFcrYTtVQUVqQkU7O1dBRU10QztPQUNOLGdCQUhBc0MsU0FGaUJGLEtBQUlDLEtBS3JCLHFCQUhBQztPQUlBO1NBR09KLFFBVFVFLEtBQUlDLDJCQUVyQkMsV0FGNkJIOztpQkFBUkUsMkJBRXJCQyxhQUY2Qkg7UUFBUkU7a0JBSWZyQzs7O01BRE4sZ0JBREFzQyxTQUZpQkYsS0FBSUMsMEJBRXJCQztNQUNBLE9BSGlCRjs7OztZQWdCakJHLElBQUk5YixJQUFHQztJQUNUO0tBQUlDLDBCQURFRjtLQUVGRyxLQUFKLHFCQUZTRjtLQUdMN0IsSUFBSSxrQkFGSjhCLEtBQ0FDO0lBRUosZ0JBSk1ILE9BR0Y1QixNQUZBOEI7SUFJSixnQkFMU0QsT0FHTDdCLEdBRkE4QixJQUNBQztJQUdKLE9BRkkvQjtHQUdIO1lBTUMyZDtJQUFXOzs7Ozs7R0FFRDtZQUVWQyxLQUFLamQ7SUFDUCxJQUFJc0QsMkJBREd0RCxJQUVIOEI7O0tBQ2MsR0FEZEEsT0FEQXdCLE9BTEYwWiwrQkFJS2hkLEdBRUg4QjtLQUlJLElBQUo4TixRQUxBdE07O01BTWMsR0FMZHhCLFFBSUE4TixRQVZGb04sK0JBSUtoZCxHQU1INFA7YUFKQTlOLFFBSUE4TixPQWpHRm1NLElBMkZLL2IsR0FFSDhCLE9BSUE4TixPQUpBOU4scUJBeEdGa0w7OztHQW1ISztZQUVMZ0ksUUFBUWhWO0lBQ1YsSUFBSUosdUNBRE1JLFlBQ0Y7O1NBQ1IrQjs7d0NBRlUvQixHQUVWK0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BREluQztNQUNKOzs7OztPQURJQSw4QkFETUksSUFTWSxPQTVIcEI2YixLQW1IUTdiO0lBVUMsSUFBTHVRLE1BQUssa0JBVFAzUTs7SUFXRixnQ0FaUUksWUFZUjs7OztVQVlJNEMsMEJBeEJJNUMsR0FZUjhCO2VBWUljOzs7Ozs7Ozs7OztnQ0FkQTJOLEtBVEYzUTs7Z0NBU0UyUSxLQVRGM1E7OztnQ0FTRTJRLEtBVEYzUTs7Z0NBU0UyUSxLQVRGM1E7OztnQ0FTRTJRLEtBVEYzUTs7Z0NBU0UyUSxLQVRGM1E7OztnQ0FTRTJRLEtBVEYzUTs7Z0NBU0UyUSxLQVRGM1E7Ozs7OzsrQkFTRTJRLEtBVEYzUTs7K0JBU0UyUSxLQVRGM1EsWUF1QkVnRDtTQXZCRmhEOytCQVNFMlEsS0FURjNRLGFBdUJFZ0Q7U0F2QkZoRDsrQkFTRTJRLEtBVEYzUSxZQXVCRWdEOzs7K0JBZEEyTixLQVRGM1E7OytCQVNFMlEsS0FURjNRLE1BdUJFZ0Q7OzsrQkFkQTJOLEtBVEYzUSxNQXVCRWdEOztNQXZCRmhEO01BV0Y7Ozs7O0lBeUJBLE9BM0JJMlE7R0E0Qkg7WUFFRDNILElBQUk1SixHQUFFZ0I7SUFDUixJQUFJNkIseUJBREk3QjtJQUVSLFNBREk2QixHQUNVLE9BRk43QjtJQUdFLElBQUpYLElBQUksa0JBRk53QyxJQUdGLE1BSEVBLFdBRU07O1NBQ1JDOzs0QkFESXpDLEdBQ0p5QyxHQUFxQyxXQUpqQzlDLHlCQUFFZ0IsR0FJTjhCOzs7Ozs7SUFDQSxPQUZJekM7R0FHSDtZQUVEZ1IsS0FBS3JSLEdBQUVnQjtJQUNULElBQUk2Qix5QkFESzdCO0lBRVQsU0FESTZCLEdBQ1UsT0FGTDdCO0lBR0MsSUFBSlgsSUFBSSxrQkFGTndDLElBR0YsTUFIRUEsV0FFTTs7U0FDUkM7OztRQURJekMsR0FDSnlDLEdBQXFDLFdBSmhDOUMsR0FJTDhDLHlCQUpPOUIsR0FJUDhCOzs7Ozs7SUFDQSxPQUZJekM7R0FHSDtZQUVEd08sVUFBVTdPLEdBQUVtQixHQUFFNkM7SUFDaEIsSUFBSTNELFFBRFVjLCtCQUFFNkMsWUFDUjs7U0FDUmxCOztNQURJekMsT0FFRyxXQUhLTCxHQUNSSyw0QkFEWTJELEdBRWhCbEI7Ozs7OztXQURJekM7R0FJRjtZQUVBc1ksV0FBVzNZLEdBQUVnRSxHQUFFN0M7SUFDakIsSUFBSWQsUUFEYWMsSUFFakIsMkJBRmU2Qzs7U0FFZmxCOztNQURJekMsT0FFRyxXQUhNTCx5QkFBRWdFLEdBRWZsQixJQURJekM7TUFDSjs7Ozs7V0FESUE7R0FJRjtZQUVBMFAsT0FBT0QsR0FBRTlPO0lBQ1gsSUFBSUoseUJBRE9JLElBRUU4QjtJQUNYO1FBRFdBLE1BRFRsQyxHQUVZO0tBQ04sY0FKRGtQLHlCQUFFOU8sR0FFRThCLEtBRXFCO0tBQzNCLElBSE1DOztHQUlQO1lBRUo4TSxRQUFRQyxHQUFFOU87SUFDWixJQUFJSix5QkFEUUksSUFFQzhCO0lBQ1g7UUFEV0EsTUFEVGxDLEdBRVk7S0FDTixnQkFKQWtQLHlCQUFFOU8sR0FFQzhCLEtBR047S0FEMkIsSUFGckJDOztHQUlQO1lBRUpxVCxnQkFBZ0JwVixHQUFJLE9BOUNwQjRJLG9CQThDZ0I1SSxHQUE4QjtZQUM5Q21WLGdCQUFnQm5WLEdBQUksT0EvQ3BCNEksb0JBK0NnQjVJLEdBQThCO1lBRTlDa2QsT0FBT2xlLEdBQUVnQjtJQUNYLDhCQURXQSxJQUNVLE9BRFZBO0lBRUQsSUFBSlgsSUE5TUp3YyxLQTRNUzdiOzBCQUVMWCxNQUNXLFdBSFJMLHlCQUFFZ0I7SUFJVCxPQUZJWDtHQUdIO1lBRUQ4ZCxpQkFBaUJuZCxHQUFJLE9BUHJCa2QsdUJBT2lCbGQsR0FBaUM7WUFDbERvZCxtQkFBbUJwZCxHQUFJLE9BUnZCa2QsdUJBUW1CbGQsR0FBaUM7WUFHcERxZCxZQUFhQyxRQUFPdGQ7SUFDdEI7S0FBSXVkLDZCQURrQnZkO0tBRWxCd2QsK0JBRldGO1dBRVhFLFdBREFEOztRQUVRemI7SUFDVjtRQURVQSxNQURSMGIsU0FFa0I7OEJBSkF4ZCxHQUdWOEIsNkJBSEd3YixRQUdIeGI7TUFFeUM7S0FDOUMsSUFIS0M7O0dBSWdCO1lBRzFCMGIsVUFBV0MsUUFBTzFkO0lBQ3BCO0tBQUl1ZCw2QkFEZ0J2ZDtLQUVoQjJkLCtCQUZTRDtLQUdURSxPQUZBTCxRQUNBSTtnQkFDQUM7O1FBQ1E5YjtJQUNWO1FBRFVBLE1BRlI2YixTQUdrQjs7NkJBTEYzZCxHQUdoQjRkLE9BQ1E5YjtpQ0FKQzRiLFFBSUQ1YjtNQUVrRDtLQUN2RCxJQUhLQzs7R0FJUztZQUdmOGIsVUFBVTdkLEdBQUU4ZCxLQUFJaGMsR0FBRWM7SUFDeEIsSUFEc0JiO0lBQ3RCO1FBRGtCK2IsT0FBSS9iLEtBQ0w7OEJBREQvQixHQUFNK0IsU0FBRWEsR0FFRyxPQUZMYjs7O0dBRXFDO1lBR3pEaWMsTUFBTWhlLEdBQUU0QyxHQUFJLE9BTFJpYixVQUtFN2QsK0JBQUU0QyxHQUE4QjtZQUdsQ3FiLGNBQWNqZSxHQUFFOGQsS0FBSWhjLEdBQUVjO0lBQzVCLElBRDBCYjtJQUMxQjtRQURzQitiLE9BQUkvYixLQUNUOzhCQURHL0IsR0FBTStCLFNBQUVhLEdBRUQsV0FGRGI7OztHQUUwQztZQUdsRW1jLFVBQVVsZSxHQUFFNEM7SUFBSSxPQUxacWIsY0FLTWplLCtCQUFFNEM7R0FBa0M7WUFHOUN1YixXQUFXbmUsR0FBRThCLEdBQUVjO0lBQ2pCLElBQUlmLHlCQURTN0I7WUFBRThCLEtBQ1hELEtBRFdDLEdBR2YsT0FuQk0rYixVQWdCTzdkLEdBQ1Q2QixHQURXQyxHQUFFYztJQUVNO0dBQ047WUFHZndiLGVBQWVwZSxHQUFFOEIsR0FBRWM7SUFDckIsSUFBSWYseUJBRGE3QjtZQUFFOEIsS0FDZkQsS0FEZUMsR0FLakIsT0FuQkltYyxjQWNXamUsR0FDYjZCLEdBRGVDLEdBQUVjO0lBR25CO0dBRXFCO1lBR2pCeWIsV0FBV3JlLEdBQUU4QixHQUFFYztJQUNyQixJQURtQmI7SUFDbkI7WUFEbUJBLEtBQ0w7OEJBREcvQixHQUFFK0IsU0FBRWEsR0FFTSxPQUZSYjs7O0dBRXFDO1lBR3REdWMsT0FBT3RlLEdBQUU0QztJQUFJLE9BTFR5YixXQUtHcmUsb0NBQUU0QztHQUFpQztZQUcxQzJiLFlBQVl2ZSxHQUFFOEIsR0FBRWM7SUFDbEIsU0FEZ0JkLDBCQUFGOUIsS0FBRThCLEdBSWQsT0FaSXVjLFdBUVFyZSxHQUFFOEIsR0FBRWM7SUFFaEI7R0FFZ0I7WUFHWjRiLGVBQWV4ZSxHQUFFOEIsR0FBRWM7SUFDekIsSUFEdUJiO0lBQ3ZCO1lBRHVCQSxLQUNUOzhCQURPL0IsR0FBRStCLFNBQUVhLEdBRUUsV0FGSmI7OztHQUUwQztZQUcvRDBjLFdBQVd6ZSxHQUFFNEM7SUFBSSxPQUxiNGIsZUFLT3hlLG9DQUFFNEM7R0FBcUM7WUFHbEQ4YixnQkFBZ0IxZSxHQUFFOEIsR0FBRWM7SUFDdEIsU0FEb0JkLDBCQUFGOUIsS0FBRThCLEdBSWxCLE9BWkkwYyxlQVFZeGUsR0FBRThCLEdBQUVjO0lBRXBCO0dBRW9CO1lBSXBCK2IsY0FBYzNlLEdBQUU4QixHQUFFYztJQUNwQixJQUFJZix5QkFEWTdCO1lBQUU4QixLQUNkRCxLQURjQztLQUtoQixJQWxFSStiLFVBNkRVN2QsR0FDWjZCLEdBRGNDLEdBQUVjLElBS2M7Ozs0QkFBdUI7OztJQUZ2RDtHQUU0RDtZQUk1RGdjLFNBQVM1ZSxHQUFFNEMsR0FBSSxPQVRmK2IsY0FTUzNlLE1BQUU0QyxHQUF1QjtZQUdsQ2ljLGVBQWU3ZSxHQUFFOEIsR0FBRWM7SUFDckIsUUFEbUJkLDBCQUFGOUIsS0FBRThCO0tBSWpCLElBL0NJdWMsV0EyQ1dyZSxHQUFFOEIsR0FBRWMsSUFJWTs7OzRCQUF1Qjs7O0lBRnREO0dBRTJEO09BSzNEMEc7WUFJQXdWLGNBQWNwQyxLQUFJMWM7SUFDcEI7S0FBSVg7S0FDQXVRLFFBQUoscUJBRm9CNVA7S0FHcEIsMkJBSG9CQTs7U0FHcEI4Qjs7K0JBSG9COUIsR0FHcEI4QixPQUhnQjRhO2lCQUNacmQ7a0JBMVRGMGMsSUF5VGtCL2IsR0FHcEI4QixZQURJOE4sT0FDSjlOO09BREk4TixPQUNKOU47Ozs7Ozs7Y0FGSXpDO0lBUUosV0FsVUUwYyxJQXlUa0IvYixNQUVoQjRQO0dBT1k7WUFJZHNGLFVBQVVsVixHQUFJLE9BcExkNEksb0JBb0xVNUksR0FBd0I7WUFDbENpVixVQUFValYsR0FBSSxPQXJMZDRJLG9CQXFMVTVJLEdBQXdCO1lBRWxDK2UsV0FBVy9lLEdBQUksT0F0SWZrZCx1QkFzSVdsZCxHQUEyQjtZQUN0Q2dmLGFBQWFoZixHQUFJLE9BdklqQmtkLHVCQXVJYWxkLEdBQTJCO1lBSXhDaVUsT0FBT2pVO2FBQ0RvYixJQUFJdFo7S0FDVixHQURVQSwyQkFESDlCLElBRWM7S0FFWCxJQUFKRyxJQUFJLGVBSkhILEdBQ0c4QixJQUdBLE1BSEFBO0tBSVIsV0FESTNCLGlCakJsWlgsT2lCK1lXaWI7SUFJbUI7SUFFM0I7eUJqQnJaSCxPaUIrWVdBO0dBTUg7WUFFSDZELFFBQVFqZjthQUNGb2IsSUFBSXRaO0tBQ1YsR0FEVUEsMkJBREY5QixJQUVhO0tBRVgsSUFBSkcsSUFBSSxlQUpGSCxHQUNFOEIsSUFHQSxNQUhBQTtLQUlSLGVBSlFBLEdBR0ozQixrQmpCM1pYLE9pQndaV2liO0lBSXVCO0lBRS9CO3lCakI5WkgsT2lCd1pXQTtHQU1IO1lBRUhFLE9BQU94WjtJQUNULElBQUlsQyxZQUNBOEUsVUF6WEZ4RjtpQkFtWUswRDtLQUNGLEdBWkRoRCw4QkFDQThFO01BR1k7T0FBVndhO1NBQVU7O29DQUhaeGE7OzBDQUdFd2E7T0FDMEI7TUFDaEIsSUFBVkMsVUE5WEpqZ0IsS0E0WElnZ0I7TUFyVUo1QyxLQWtVRTVYLFdBS0V5YSxZQU5GdmY7TUFDQThFLFNBS0V5YTs7S0FPRCxlQVpEemEsUUFEQTlFLE1BV0dnRDtLQVhIaEQ7O0lBY087SUFKWCwrQkFYU2tDO1dBaFdQaWEsSUFrV0VyWCxXQURBOUU7R0FnQlM7WUFzWVB3ZixxQkE5V2lCN2QsR0FBRU87SUFDekI7Y0FDWSw4QkFGV1AsR0FBRU87Y0FHcEIsaUJBSGtCUCxHQUFFTztHQUdJO1lBcVR2QnVkLHFCQW5UaUI5ZCxHQUFFTztJQUN6QjtjQUNLLGlCQUZrQlAsR0FBRU87Y0FHYiw4QkFIV1AsR0FBRU87R0FHYTtZQUVwQ3dkLFNBQVMvZCxHQUFFTztJQUNiO1dBQUMsZUFEVVAsR0FBRU87R0FDa0Q7WUFFN0R5ZCxjQUFjaGUsR0FBRU87SUFDbEI7Y0FBOEIsOEJBRGRQLEdBQUVPO2NBRWIsaUJBRldQLEdBQUVPO0dBRUk7WUFFcEIwZCxjQUFjamUsR0FBRU87SUFDbEI7Y0FDSyxpQkFGV1AsR0FBRU87Y0FDZ0IsOEJBRGxCUCxHQUFFTztHQUVJO1lBRXBCMmQsYUFBYWxlLEdBQUVPO0lBQ2pCO1dBQUMsaUJBRGNQLEdBQUVPO0dBQ29EO1lBRW5FNGQsYUFBYW5lLEdBQUVPO0lBQ2pCO1dBWkV5ZCxjQVdhaGUsR0FBRU87R0FDb0Q7WUFFbkU2ZCxhQUFhcGUsR0FBRU87SUFDakI7V0FYRTBkLGNBVWFqZSxHQUFFTztHQUNvRDtZQUVuRThkLGFBQWFyZSxHQUFFTztJQUNqQjtjQUF1QixpQkFBTyxpQkFEZlAsR0FBRU87Y0FFWixpQkFGVVAsR0FBRU87R0FFSTtZQUVuQitkLGFBQWF0ZSxHQUFFTztJQUNqQjtjQUNLLGlCQUZVUCxHQUFFTztjQUNVLGlCQUFPLGlCQURuQlAsR0FBRU87R0FFSTtZQUVuQmdlLGFBQWF2ZSxHQUFFTztJQUNqQjtjQUF1QixpQkFBTyxpQkFEZlAsR0FBRU87Y0FFWixpQkFGVVAsR0FBRU87R0FFSTtZQUVuQmllLGFBQWF4ZSxHQUFFTztJQUNqQjtjQUNLLGlCQUZVUCxHQUFFTztjQUNVLGlCQUFPLGlCQURuQlAsR0FBRU87R0FFSTtZQStTakJrZSxxQkE3U21CemUsR0FBRU8sR0FBRTNCO0lBQzNCO2NBQ0ssaUJBRmtCb0IsR0FBRU8sZ0JBQUUzQjtjQUd0QixpQkFIa0JvQixHQUFFTyxHQUFFM0I7R0FHSTtZQW9QM0I4ZixxQkFsUG1CMWUsR0FBRU8sR0FBRTNCO0lBQzNCO2NBQ0ssaUJBRmtCb0IsR0FBRU8sR0FBRTNCO2NBRzNCLGlCQUh1Qm9CLEdBQUVPLGdCQUFFM0I7R0FHUTtZQUVqQytmLGFBQWEzZSxHQUFFTyxHQUFFM0I7SUFDbkI7Y0FBdUIsaUJBRFJvQixHQUFFTyxnQkFBRTNCO2NBRWQsaUJBRlVvQixHQUFFTyxHQUFFM0I7R0FFSTtZQUVyQmdnQixhQUFhNWUsR0FBRU8sR0FBRTNCO0lBQ25CO2NBQ0ssaUJBRlVvQixHQUFFTyxHQUFFM0I7Y0FDUSxpQkFEWm9CLEdBQUVPLGdCQUFFM0I7R0FFSTtZQUVyQmlnQixhQUFhN2UsR0FBRU8sR0FBRTNCO0lBQ25CO2NBQXVCLGlCQURSb0IsR0FBRU8sR0FDdUIsaUJBRHJCM0I7Y0FFZCxpQkFGVW9CLEdBQUVPLEdBQUUzQjtHQUVJO1lBRXJCa2dCLGFBQWE5ZSxHQUFFTyxHQUFFM0I7SUFDbkI7Y0FDSyxpQkFGVW9CLEdBQUVPLEdBQUUzQjtjQUNRLGlCQURab0IsR0FBRU8sR0FDMkIsaUJBRHpCM0I7R0FFSTtZQUVyQm1nQixhQUFhL2UsR0FBRU8sR0FBRTNCO0lBQ25CO2NBQXVCLGlCQURSb0IsR0FBRU8sR0FDdUIsaUJBRHJCM0I7Y0FFZCxpQkFGVW9CLEdBQUVPLEdBQUUzQjtHQUVJO1lBRXJCb2dCLGFBQWFoZixHQUFFTyxHQUFFM0I7SUFDbkI7Y0FDSyxpQkFGVW9CLEdBQUVPLEdBQUUzQjtjQUNRLGlCQURab0IsR0FBRU8sR0FDMkIsaUJBRHpCM0I7R0FFSTs7SUFFckJxZ0I7SUFDQUM7SUFNQUM7WUFDU0MsUUFBUS9nQixHQUFFdU87SUFBdUIsc0NBQXZCQTtJQUF1QixvQ0FBekJ2TztHQUFnRDtZQWtCeERnaEIsa0JBQWtCcmYsR0FBSSxjQUFKQSxxQkFBbUI7WUFDckNzZixrQkFBa0J0ZixHQUFJLGNBQUpBLHFCQUFvQjtZQUN0Q3VmLGtCQUFrQnZmLEdBQUksY0FBSkEscUJBQW9CO1lBQ3RDd2Ysa0JBQWtCeGY7SUFBSSxVQUFKQTs7R0FBd0I7WUFDMUN5ZixrQkFBa0J6ZixHQUFJLGNBQUpBLHFCQUFrQjtZQU1wQzBmLGNBQWNDLElBQUdDLElBQUdDO0lBQy9CLFFBRHlCRixrQkFBR0MsZ0JBQUdDO0dBR2Y7WUFFTEMsY0FBY0gsSUFBR0MsSUFBR0MsSUFBR0U7SUFDbEMsUUFEeUJKLGlCQUFHQyxrQkFBR0MsZ0JBQUdFO0dBSWxCO1lBRWRDLGdCQUFnQmhnQixHQUFFTztJQUNwQixJQWhCeUJvZixLQWdCaEIsZUFEUzNmLEdBQUVPLElBR2hCekIsTUFBSixxQkFIa0JrQjtJQUlsQixVQW5CeUIyZjs7Ozs7O1VBc0NyQixJQUFJbmYsTUF2QllEO2FBR2hCekIsTUFvQkkwQixLQUE2QixrQkEvRG5DMmU7VUFnRVcsSUFBTFMsS0FBSyxzQkF4Qks1ZixHQXVCVlE7VUFDbUIsR0EzQ2hCK2Usa0JBMkNISyxLQUE2QyxrQkFoRW5EVDtVQWlFRSxJQUFJM0MsTUFGQWhjO2FBcEJKMUIsTUFzQkkwZCxLQUE2QixrQkFqRW5DMkM7VUFrRVcsSUFBTFUsS0FBSyxzQkExQks3ZixHQXlCVndjO1VBQ21CLE9BL0NoQjZDLGtCQStDSFE7b0JBQTZDLFdBbEVuRFY7b0JBQ1NDLFdBNEJBTSxjQUpjQyxJQXVDakJDLElBRUFDOztVQUdKLElBQUlJLE1BN0JZMWY7YUFHaEJ6QixNQTBCSW1oQixLQUE2QixrQkFyRW5DZDtVQXNFVyxJQUFMZSxPQUFLLHNCQTlCS2xnQixHQTZCVmlnQjtVQUNtQixHQWhEaEJULGtCQWdESFUsT0FBNkMsa0JBdEVuRGY7VUF1RUUsSUFBSWdCLE1BRkFGO2FBMUJKbmhCLE1BNEJJcWhCLEtBQTZCLGtCQXZFbkNoQjtVQXdFVyxJQUFMaUIsT0FBSyxzQkFoQ0twZ0IsR0ErQlZtZ0I7VUFDbUIsR0FyRGhCZCxrQkFxREhlLE9BQTZDLGtCQXhFbkRqQjtVQXlFRSxJQUFJa0IsTUFGQUY7YUE1QkpyaEIsTUE4Qkl1aEIsS0FBNkIsa0JBekVuQ2xCO1VBMEVXLElBQUxZLEtBQUssc0JBbENLL2YsR0FpQ1ZxZ0I7VUFDbUIsT0F2RGhCaEIsa0JBdURIVTtvQkFBNkMsV0ExRW5EWjtvQkFDU0MsV0FpQ0FVLGNBVGNILElBNkNqQk8sTUFFQUUsTUFFQUw7O1VBV0osSUFBSU8sT0E3Q1kvZjthQUdoQnpCLE1BMENJd2hCLE1BQTZCLGtCQXJGbkNuQjtVQXNGVyxJQUFMb0IsT0FBSyxzQkE5Q0t2Z0IsR0E2Q1ZzZ0I7VUFDbUIsR0EvRGhCYixrQkErREhjLE9BQTZDLGtCQXRGbkRwQjtVQXVGRSxJQUFJcUIsT0FGQUY7YUExQ0p4aEIsTUE0Q0kwaEIsTUFBNkIsa0JBdkZuQ3JCO1VBd0ZXLElBQUxzQixPQUFLLHNCQWhES3pnQixHQStDVndnQjtVQUNtQixHQXJFaEJuQixrQkFxRUhvQixPQUE2QyxrQkF4Rm5EdEI7VUF5RkUsSUFBSXVCLE9BRkFGO2FBNUNKMWhCLE1BOENJNGhCLE1BQTZCLGtCQXpGbkN2QjtVQTBGVyxJQUFMd0IsT0FBSyxzQkFsREszZ0IsR0FpRFYwZ0I7VUFDbUIsT0F2RWhCckIsa0JBdUVIc0I7b0JBQTZDLFdBMUZuRHhCO29CQUNTQyxXQWlDQVUsY0FUY0gsSUE2RGpCWSxNQUVBRSxNQUVBRTs7Ozs7VUFiSixJQUFJQyxNQXJDWXJnQjthQUdoQnpCLE1Ba0NJOGhCLEtBQTZCLGtCQTdFbkN6QjtVQThFVyxJQUFMMEIsT0FBSyxzQkF0Q0s3Z0IsR0FxQ1Y0Z0I7VUFDbUIsR0EzRGhCdkIsa0JBMkRId0IsT0FBNkMsa0JBOUVuRDFCO1VBK0VFLElBQUkyQixNQUZBRjthQWxDSjloQixNQW9DSWdpQixLQUE2QixrQkEvRW5DM0I7VUFnRlcsSUFBTDRCLE9BQUssc0JBeENLL2dCLEdBdUNWOGdCO1VBQ21CLEdBN0RoQnpCLGtCQTZESDBCLE9BQTZDLGtCQWhGbkQ1QjtVQWlGRSxJQUFJNkIsTUFGQUY7YUFwQ0poaUIsTUFzQ0lraUIsS0FBNkIsa0JBakZuQzdCO1VBa0ZXLElBQUw4QixPQUFLLHNCQTFDS2poQixHQXlDVmdoQjtVQUNtQixPQS9EaEIzQixrQkErREg0QjtvQkFBNkMsV0FsRm5EOUI7b0JBQ1NDLFdBaUNBVSxjQVRjSCxJQXFEakJrQixNQUVBRSxNQUVBRTs7OztlQXpEaUJ0QjtPQTBCckIsSUFBSXVCLE9BWFkzZ0I7VUFHaEJ6QixNQVFJb2lCLE1BQTZCLGtCQW5EbkMvQjtPQW9EVyxJQUFMZ0MsT0FBSyxzQkFaS25oQixHQVdWa2hCO09BQ21CLEdBaENoQjVCLGtCQWdDSDZCLE9BQTZDLGtCQXBEbkRoQztPQXFERSxJQUFJaUMsT0FGQUY7VUFSSnBpQixNQVVJc2lCLE1BQTZCLGtCQXJEbkNqQztPQXNEVyxJQUFMa0MsT0FBSyxzQkFkS3JoQixHQWFWb2hCO09BQ21CLE9BbkNoQi9CLGtCQW1DSGdDO2lCQUE2QyxXQXREbkRsQztpQkFDU0MsV0E0QkFNLGNBSmNDLElBMkJqQndCLE1BRUFFOzs7OztNQUdKLElBQUlDLE1BakJZL2dCO1NBR2hCekIsTUFjSXdpQixLQUE2QixrQkF6RG5DbkM7TUEwRFcsSUFBTG9DLE9BQUssc0JBbEJLdmhCLEdBaUJWc2hCO01BQ21CLEdBdkNoQmpDLGtCQXVDSGtDLE9BQTZDLGtCQTFEbkRwQztNQTJERSxJQUFJcUMsTUFGQUY7U0FkSnhpQixNQWdCSTBpQixLQUE2QixrQkEzRG5DckM7TUE0RFcsSUFBTHNDLE9BQUssc0JBcEJLemhCLEdBbUJWd2hCO01BQ21CLE9BekNoQm5DLGtCQXlDSG9DO2dCQUE2QyxXQTVEbkR0QztnQkFDU0MsV0E0QkFNLGNBSmNDLElBaUNqQjRCLE1BRUFFOzs7O2NBbkNpQjlCLElBb0JILE9BNUNYUCxXQXdCY087O01Bc0JyQixJQUFJK0IsT0FQWW5oQjtTQUdoQnpCLE1BSUk0aUIsTUFBNkIsa0JBL0NuQ3ZDO01BZ0RXLElBdkJld0MsT0F1QmYsc0JBUkszaEIsR0FPVjBoQjtNQUNtQixPQTdCaEJyQyxrQkFNaUJzQztnQkF1QnlCLFdBaERuRHhDO2dCQUNTQyxZQXdCY08sZ0JBQUdnQzs7O0lBbUVyQixrQkE1Rkx4QztHQTRGa0I7WUFFbEJ5QyxnQkFBZ0I1aEIsR0FBRU8sR0FBRXFNO0lBQ3RCLFNBQUk3TztLakIvbkJQOzs7SWlCZ29CRztLQUFJZSxNQUFKLHFCQUZrQmtCO0tBSWhCNk0sTUFESSw2QkFIZ0JEO0lBSWIsT0FBUEM7S0FBZ0I7SUFDVCxVQURQQSxLQUVFLGVBTmM3TSxHQUFFTyxHQUlsQnNNLE1BRUU7SUFFSyxXQUpQQTtLQUtFLElBQUlnVixTQVRZdGhCO1lBRWhCekIsTUFPSStpQjs7Z0JBRUg7aUJBWGE3aEIsR0FBRU8sU0FJbEJzTTtlQUhFOU8sSUFEY2lDLEdBU1Y2aEIsY0FMTmhWOzs7SUFVTyxZQVZQQTtLQVdFLElBQUlpVixTQWZZdmhCO1lBRWhCekIsTUFhSWdqQjs7Z0JBRUg7aUJBakJhOWhCLEdBQUVPLFNBSWxCc007ZUFIRTlPLElBRGNpQyxHQUFFTyxrQkFJbEJzTTtlQUhFOU8sSUFEY2lDLEdBZVY4aEIsY0FYTmpWOzs7SUFpQk8sYUFqQlBBO0tBeUJLO0lBUEgsSUFBSWtWLE9BdEJZeGhCO1dBRWhCekIsTUFvQklpakI7O2VBRUg7Z0JBeEJhL2hCLEdBQUVPLFNBSWxCc007Y0FIRTlPLElBRGNpQyxHQUFFTyxrQkFJbEJzTTtjQUhFOU8sSUFEY2lDLEdBQUVPLGtCQUlsQnNNO2NBSEU5TyxJQURjaUMsR0FzQlYraEIsWUFsQk5sVjs7R0F5QmlCO1lBRWpCbVYsZUFDZWhpQjtJQUFqQixJQUFhbEIsMkJBQUlrQixZQUFFTztJQUNqQjtRQURXekIsTUFBTXlCLEdBQ0Q7S0FFTSxrQ0FIUFAsR0FBRU87Ozs7Ozs7V0EwQmIsSUFBSXdoQixPQTFCU3hoQjtXQTZCVjthQTdCSXpCLE9BMEJIaWpCOzs7Y0FuSUN4QyxrQkFxSWdCLHNCQTVCVnZmLEdBQUVPO21CQTNHUjhlLGtCQXdJZ0Isc0JBN0JWcmYsR0EwQlAraEIsUUFLQyxJQS9CUXZoQixNQTBCVHVoQixjQTFCU3hoQjtXQThCUjs7V0FHTCxJQUFJc2hCLFNBakNTdGhCO1dBcUNWO2FBckNJekIsT0FpQ0graUI7OztjQXpJQ3JDLGtCQTJJZ0Isc0JBbkNWeGYsR0FBRU87OztlQTNHUjhlLGtCQStJZ0Isc0JBcENWcmYsR0FBRU87b0JBM0dSOGUsa0JBZ0pnQixzQkFyQ1ZyZixHQWlDUDZoQixVQU1DLElBdkNRUCxNQWlDVE8sZ0JBakNTdGhCO1dBc0NSOztXQVdMLElBQUkwaEIsU0FqRFMxaEI7V0FxRFY7YUFyREl6QixPQWlESG1qQjs7O2NBeEpDeEMsa0JBMEpnQixzQkFuRFZ6ZixHQUFFTzs7O2VBM0dSOGUsa0JBK0pnQixzQkFwRFZyZixHQUFFTztvQkEzR1I4ZSxrQkFnS2dCLHNCQXJEVnJmLEdBaURQaWlCLFVBTUMsSUF2RFFoQyxNQWlEVGdDLGdCQWpEUzFoQjtXQXNEUjs7Ozs7V0FiTCxJQUFJMmhCLFNBekNTM2hCO1dBNkNWO2FBN0NJekIsT0F5Q0hvakI7OztjQXBKQzdDLGtCQXNKZ0Isc0JBM0NWcmYsR0FBRU87OztlQTNHUjhlLGtCQXVKZ0Isc0JBNUNWcmYsR0FBRU87b0JBM0dSOGUsa0JBd0pnQixzQkE3Q1ZyZixHQXlDUGtpQixVQU1DLElBL0NRVixNQXlDVFUsZ0JBekNTM2hCO1dBOENSOzs7OztRQWxDTCxJQUFJNGhCLFNBWlM1aEI7UUFlVjtVQWZJekIsT0FZSHFqQjs7O1dBdEhDN0Msa0JBd0hnQixzQkFkVnRmLEdBQUVPO2dCQTNHUjhlLGtCQTBIZ0Isc0JBZlZyZixHQVlQbWlCLFVBS0MsSUFqQlFoQyxNQVlUZ0MsZ0JBWlM1aEI7UUFnQlI7Ozs7O09BR0wsSUFBSXVoQixTQW5CU3ZoQjtPQXNCVjtTQXRCSXpCLE9BbUJIZ2pCOzs7VUE5SEN6QyxrQkFnSWdCLHNCQXJCVnJmLEdBQUVPO2VBM0dSOGUsa0JBaUlnQixzQkF0QlZyZixHQW1CUDhoQixVQUtDLElBeEJRdEYsTUFtQlRzRixnQkFuQlN2aEI7T0F1QlI7Ozs7c0JBbkJhLElBSkxxZ0I7O09BTWIsSUFBSXdCLFNBTlM3aEI7T0FRVjtTQVJJekIsT0FNSHNqQjtjQWpIQy9DLGtCQW1IZ0Isc0JBUlZyZixHQU1Qb2lCLFVBSUMsSUFWUS9CLE1BTVQrQixnQkFOUzdoQjtPQVNSOzs7S0ErQ0Y7O0dBRWM7WUFJckI4aEIsbUJBQW1CcmlCLEdBQUVPO0lBRXZCLElBQUl6QixNQUFKLHFCQUZxQmtCO1lBQUVPLEtBRW5CekIsT0FGbUJ5QjtjQUVuQnpCLEtBRVksa0JBaE1kcWdCO0tBaU1JLElBR0ptRCxLQTZCSXhFLHFCQXJDZTlkLEdBQUVPO2lCQVFyQitoQjtNQURPLFdBQ1BBLElBRHFCLGtCQW5NckJuRDtNQXFNRSxJQUFJNEMsT0FUZXhoQjtTQUVuQnpCLE1BT0lpakIsd0JBck1ONUMsY0E4TEVyZ0IsTUFGbUJ5QjtNQVdiLElBQ0pnaUIsS0F5QkF6RSxxQkFyQ2U5ZCxHQUFFTztrQkFZakJnaUI7V0FFTTNWLE1BTlYwVixtQkFJSUM7T0FHRSxPQTFNR25ELFdBeU1DeFM7O01BRjZCLGtCQXhNdkN1Uzs7S0FrTW1DLE9Bak0xQkMsV0FtTVRrRDs7SUFMdUI7R0FZTjtZQUVqQkUsbUJBQW1CeGlCLEdBQUVPLEdBQUVxTTtJQUV6QixJQUFJOU4sTUFBSixxQkFGcUJrQjtZQUFFTyxLQUVuQnpCLE9BRm1CeUI7S0FJakIsSUFDSnNNLE1BREksNkJBSm1CRDtLQUtoQixPQUFQQztNQUFnQjtLQUNULFlBRFBBO01BRUUsSUFBSWlWLFNBUGV2aEI7YUFFbkJ6QixNQUtJZ2pCLGNBTkpwRCxxQkFEaUIxZSxHQUFFTyxHQUtyQnNNOztLQUlPLGFBSlBBO01BV0s7S0FOSCxJQUFJa1YsT0FWZXhoQjtRQUVuQnpCLE1BUUlpakIsTUFDZTtLQUNuQjtNQUFJVSxNQVBONVY7TUFRTXlWLGFBREFHO01BRUFGLGFBRkFFO0tBWEovRCxxQkFEaUIxZSxHQUFFTyxHQWFmK2hCO0tBWko1RCxxQkFEaUIxZSxHQUFFTyxXQWNmZ2lCO0tBQ1E7O0lBWlM7R0FhTjtZQUVqQkcsa0JBQ2UxaUI7SUFBakIsSUFBYWxCLDJCQUFJa0IsWUFBRU87SUFDakI7UUFEV3pCLE1BQU15QixHQUVEO1FBRkNBLE1BQU56QixLQUdLO0tBQ1YsSUFFSjhOLElBTEVrUixxQkFEVzlkLEdBQUVPO2lCQU1mcU07TUFBTyxXQUFQQSxHQUFxQjtNQUVuQixJQUFJbVYsT0FSU3hoQjtTQUFOekIsTUFRSGlqQixNQUNlO01BQ2IsSUFDSmxWLE1BVkZpUixxQkFEVzlkLEdBQUVPO2tCQVdYc007T0FDTyxJQVpJMlA7OztNQVd3Qjs7S0FOSixJQUxwQmhjOztHQWNJO1lBSXJCbWlCLG1CQUFtQjNpQixHQUFFTztJQUV2QixJQUFJekIsTUFBSixxQkFGcUJrQjtZQUFFTyxLQUVuQnpCLE9BRm1CeUI7Y0FFbkJ6QixLQUVZLGtCQXRQZHFnQjtLQXVQSSxJQUdKbUQsS0E2Qkl6RSxxQkFyQ2U3ZCxHQUFFTztpQkFRckIraEI7TUFETyxXQUNQQSxJQURxQixrQkF6UHJCbkQ7TUEyUEUsSUFBSTRDLE9BVGV4aEI7U0FFbkJ6QixNQU9JaWpCLHdCQTNQTjVDLGNBb1BFcmdCLE1BRm1CeUI7TUFXYixJQUNKZ2lCLEtBeUJBMUUscUJBckNlN2QsR0FBRU87a0JBWWpCZ2lCO1dBRU0zVixNQU5WMFYsbUJBSUlDO09BR0UsT0FoUUduRCxXQStQQ3hTOztNQUY2QixrQkE5UHZDdVM7O0tBd1BtQyxPQXZQMUJDLFdBeVBUa0Q7O0lBTHVCO0dBWU47WUFFakJNLG1CQUFtQjVpQixHQUFFTyxHQUFFcU07SUFFekIsSUFBSTlOLE1BQUoscUJBRnFCa0I7WUFBRU8sS0FFbkJ6QixPQUZtQnlCO0tBSWpCLElBQ0pzTSxNQURJLDZCQUptQkQ7S0FLaEIsT0FBUEM7TUFBZ0I7S0FDVCxZQURQQTtNQUVFLElBQUlpVixTQVBldmhCO2FBRW5CekIsTUFLSWdqQixjQU5KckQscUJBRGlCemUsR0FBRU8sR0FLckJzTTs7S0FJTyxhQUpQQTtNQVdLO0tBTkgsSUFBSWtWLE9BVmV4aEI7UUFFbkJ6QixNQVFJaWpCLE1BQ2U7S0FDbkI7TUFBSVUsTUFQTjVWO01BUU15VixhQURBRztNQUVBRixhQUZBRTtLQVhKaEUscUJBRGlCemUsR0FBRU8sR0FhZitoQjtLQVpKN0QscUJBRGlCemUsR0FBRU8sV0FjZmdpQjtLQUNROztJQVpTO0dBYU47WUFFakJNLGtCQUNlN2lCO0lBQWpCLElBQWFsQiwyQkFBSWtCLFlBQUVPO0lBQ2pCO1FBRFd6QixNQUFNeUIsR0FFRDtRQUZDQSxNQUFOekIsS0FHSztLQUNWLElBRUo4TixJQUxFaVIscUJBRFc3ZCxHQUFFTztpQkFNZnFNO01BQU8sV0FBUEEsR0FBcUI7TUFFbkIsSUFBSW1WLE9BUlN4aEI7U0FBTnpCLE1BUUhpakIsTUFDZTtNQUNiLElBQ0psVixNQVZGZ1IscUJBRFc3ZCxHQUFFTztrQkFXWHNNO09BQ08sSUFaSTJQOzs7TUFXd0I7O0tBTkosSUFMcEJoYzs7R0FjSTs7OztPQTN4QnJCN0M7T0FLQTJRO09BT0E3QztPQUVBNk87T0FPQUM7T0FEQS9HO09BR0FnSDtPQVNBQztPQVVBQztPQVFBSTtPQUtBQztPQU1BRztPQThCQTlPO09BT0FvUDtPQTlCQTlPO09BSUFTO09BaUdBOUY7T0FRQXlIO09BUUF4QztPQU9BOEo7T0FlQTlJO09BUkFFO09BckZBa087T0FlQWpJO09BOEhBZ0o7T0FRQUU7T0FzQkFJO09BZUFHO09BbENBTjtPQU1BQztPQWdCQUc7T0FlQUc7T0FpQkFFO09BVEFEO09BWUFFO09BMEJBM0o7T0FDQUQ7T0FFQThKO09BQ0FDO09BMUlBNUo7T0FDQUQ7T0FTQWdJO09BQ0FDO09BMEdBOVQ7O09BdkdBK1Q7T0FVQUk7OztPQWlHQXFCO09BcUJBN0s7T0FTQWdMO09BU0EzRDtPQXdLQWlHO09Bc0RBNEI7T0ErQkFJO09BK0RBSztPQWlCQUc7T0FrQkFFO09BbUJBQztPQWlCQUM7T0FrQkFDOztPQWxXQTlFOztPQU9BRTtPQUpBRDtPQVFBRTtPQU1BRTtPQUhBRDs7T0FVQUc7T0FKQUQ7O09BWUFHO09BSkFEO09BMENBVTs7T0FDQUM7T0FyQkFOO09BSkFEOztPQUlBQztPQUpBRDs7T0FZQUc7T0FKQUQ7O09BWUFHO09BSkFEOzs7RWpCamhCTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJa0I0Q0t0VDs7O0lBUEFxWDtJQUNBQzs7Ozs7Ozs7Ozs7O1lBRUFwbEIsS0FBS1UsR0FBRWdEO0lBQ1Qsa0JBSkV5aEIsS0FJRiw0QkFET3prQixHQUFFZ0Q7R0FDUTtZQUNmaU4sS0FBS2pRLEdBQUVaO0lBQ1Qsa0JBTkVxbEIsS0FNRiw0QkFET3prQixHQUFFWjtHQUNRO1lBRWY2YyxLQUFLN2I7SUFDQSxzQkFSTHNrQixLQU9LdGtCO0lBQ1Asa0JBVEVxa0IsS0FTRjtHQUFxQjtPQUNuQkUsNEJBQ0FDO1lBQ0F6SSxJQUFJL2IsR0FBRXFELEtBQUlDO0lBQ04sc0JBWkpnaEIsS0FXSXRrQjtJQUNOLGtCQWJFcWtCLEtBYUYsa0NBRFFoaEIsS0FBSUM7R0FDZ0I7T0FDMUIrWSx5QkFFQUM7WUFtQkEzTyxPQUFPK08sS0FFUDdhO0lsQjFFTCxLa0IwRUtBLEdBRE07UUFWdUI4YSwrQkFTdEJELE1BZFM1TyxpQkFnQmhCak07OztVQWRBTzs7O1FBQ01EO1FBTEtoQywyQkFJWGlDLE1BRzZCdWEsY0FMYjdPO3VCQUZMM04sUUFBaUM7UUFFNUIyTjtnQkFHVjNMOzs7dUNBRE5DLE1BRmdCMEw7Ozs7S0FrQlIsSUFiUzhPLE1BYVQsaUNBYmFDLHVCQVdyQmhiOzs7V0FUQWliOztZQUVNdEM7UUFDTixpQkFIQXNDLFNBRmlCRixLQUFJQyxLQUtyQixzQkFIQUM7UUFJQTtVQUdPSixRQVRVRSxLQUFJQyw0QkFFckJDLFdBRjZCSDs7a0JBQVJFLDRCQUVyQkMsYUFGNkJIO1NBQVJFO21CQUlmckM7OztPQUROLGlCQURBc0MsU0FGaUJGLEtBQUlDLDJCQUVyQkM7O01BVU0sa0JBdENOdUgsS0EwQmlCekg7Ozs7T0FnQmpCRztZQUdBOU8sS0FBS2pQLEdBQUVnQjtJQUNULGdDQURTQSxZQUNUOzs7O01BQTZCLFdBRHRCaEIsMEJBQUVnQixHQUNUOEI7TUFBNkIsVUFBN0JBOzs7Ozs7R0FBb0Q7WUFHbEQ0TSxNQUFNMVAsR0FBRWdCO0lBQ1YsZ0NBRFVBLFlBQ1Y7Ozs7TUFBNkIsV0FEckJoQixHQUNSOEMsMEJBRFU5QixHQUNWOEI7TUFBNkIsVUFBN0JBOzs7Ozs7R0FBc0Q7WUFFcEQ4RyxJQUFJNUosR0FBRWdCO0lBQ0EscUJBcEROc2tCLEtBbURNdGtCO0lBQ1Isa0JBckRFcWtCLEtBcURGLDZCQURNcmxCO0dBQ2dCO1lBQ3BCcVIsS0FBS3JSLEdBQUVnQjtJQUNBLHFCQXREUHNrQixLQXFET3RrQjtJQUNULGtCQXZERXFrQixLQXVERiw2QkFET3JsQjtHQUNnQjtZQUNyQjJZLFdBQVczWSxHQUFFbUIsR0FBRTZDO0lBQ0YscUJBeERic2hCLEtBdURhbmtCO0lBQ2Ysb0NBRGFuQixRQUFJZ0U7R0FDTztZQUN0QjZLLFVBQVU3TyxHQUFFZ0UsR0FBRTdDO0lBQ0EscUJBMURkbWtCLEtBeURjbmtCO0lBQ0Esb0NBREpuQixHQUFFZ0U7R0FDUztZQUNyQitMLE9BQU8vUCxHQUFFZ0I7SUFDQSxxQkE1RFRza0IsS0EyRFN0a0I7SUFDQSxvQ0FERmhCO0dBQ1M7WUFDaEI2UCxRQUFRN1AsR0FBRWdCO0lBQ0EscUJBOURWc2tCLEtBNkRVdGtCO0lBQ0Esb0NBREZoQjtHQUNTO1lBTWpCZ2U7SUFBVzs7Ozs7O0dBRUQ7WUFFVkMsS0FBS2pkO0lBQ1AsR0FBRyxrQkFESUEsV0FDUSxPQURSQTtJQUU4Qjs7TUFObkNnZCxnQ0FJS2hkOzs7T0FKTGdkLGdDQUlLaGQ7S0FJRixPQUpFQTtJQUdZLHFCQTNFakJza0IsS0F3RUt0a0I7SUFHSSxrQkE1RVRxa0IsS0E0RVM7R0FDTDtZQUVKclAsUUFDdUJoVjtJQUF6QixJQUEyQkosMEJBQUZJLElBQUk4QjtJQUMzQjtRQUR5QmxDLEtBQUVrQyxHQUNaLE9BRFE5Qjt5Q0FBSThCOzs7Ozs7TUFJTixxQkFuRnJCd2lCLEtBK0V1QnRrQjtNQUliLGtCQXBGVnFrQixLQW9GVTs7S0FDRCxJQUxrQnRpQjs7R0FPRTtZQUd6QjhiLFVBQVU3ZCxHQUFFOGQsS0FBSWhjLEdBQUVjO0lBQ3hCLElBRHNCYjtJQUN0QjtRQURrQitiLE9BQUkvYixLQUNMOytCQUREL0IsR0FBTStCLFNBQUVhLEdBRUcsT0FGTGI7OztHQUVxQztZQUd6RGljLE1BQU1oZSxHQUFFNEMsR0FBSSxPQUxSaWIsVUFLRTdkLGdDQUFFNEMsR0FBOEI7WUFHbENxYixjQUFjamUsR0FBRThkLEtBQUloYyxHQUFFYztJQUM1QixJQUQwQmI7SUFDMUI7UUFEc0IrYixPQUFJL2IsS0FDVDsrQkFERy9CLEdBQU0rQixTQUFFYSxHQUVELFdBRkRiOzs7R0FFMEM7WUFHbEVtYyxVQUFVbGUsR0FBRTRDO0lBQUksT0FMWnFiLGNBS01qZSxnQ0FBRTRDO0dBQWtDO1lBRzlDdWIsV0FBV25lLEdBQUU4QixHQUFFYztJQUNqQixJQUFJZiwwQkFEUzdCO1lBQUU4QixLQUNYRCxLQURXQyxHQUdiLE9BbkJJK2IsVUFnQk83ZCxHQUNUNkIsR0FEV0MsR0FBRWM7SUFFTTtHQUNKO1lBR2pCd2IsZUFBZXBlLEdBQUU4QixHQUFFYztJQUNyQixJQUFJZiwwQkFEYTdCO1lBQUU4QixLQUNmRCxLQURlQyxHQUtqQixPQW5CSW1jLGNBY1dqZSxHQUNiNkIsR0FEZUMsR0FBRWM7SUFHbkI7R0FFcUI7WUFHakJ5YixXQUFXcmUsR0FBRThCLEdBQUVjO0lBQ3JCLElBRG1CYjtJQUNuQjtZQURtQkEsS0FDTDsrQkFERy9CLEdBQUUrQixTQUFFYSxHQUVNLE9BRlJiOzs7R0FFcUM7WUFHdER1YyxPQUFPdGUsR0FBRTRDO0lBQUksT0FMVHliLFdBS0dyZSxxQ0FBRTRDO0dBQWlDO1lBRzFDMmIsWUFBWXZlLEdBQUU4QixHQUFFYztJQUNsQixTQURnQmQsMkJBQUY5QixLQUFFOEIsR0FJZCxPQVpJdWMsV0FRUXJlLEdBQUU4QixHQUFFYztJQUVoQjtHQUVnQjtZQUdaNGIsZUFBZXhlLEdBQUU4QixHQUFFYztJQUN6QixJQUR1QmI7SUFDdkI7WUFEdUJBLEtBQ1Q7K0JBRE8vQixHQUFFK0IsU0FBRWEsR0FFRSxXQUZKYjs7O0dBRTBDO1lBRy9EMGMsV0FBV3plLEdBQUU0QztJQUFJLE9BTGI0YixlQUtPeGUscUNBQUU0QztHQUFxQztZQUdsRDhiLGdCQUFnQjFlLEdBQUU4QixHQUFFYztJQUN0QixTQURvQmQsMkJBQUY5QixLQUFFOEI7S0FJbEIsT0FaSTBjLGVBUVl4ZSxHQUFFOEIsR0FBRWM7SUFFcEI7R0FFb0I7WUFHcEIrYixjQUFjM2UsR0FBRThCLEdBQUVjO0lBQ3BCLElBQUlmLDBCQURZN0I7WUFBRThCLEtBQ2RELEtBRGNDO0tBS2hCLElBakVJK2IsVUE0RFU3ZCxHQUNaNkIsR0FEY0MsR0FBRWMsSUFLYzs7OzRCQUF1Qjs7O0lBRnZEO0dBRTREO1lBRzVEZ2MsU0FBUzVlLEdBQUU0QyxHQUFJLE9BUmYrYixjQVFTM2UsTUFBRTRDLEdBQXVCO1lBR2xDaWMsZUFBZTdlLEdBQUU4QixHQUFFYztJQUNyQixRQURtQmQsMkJBQUY5QixLQUFFOEI7S0FJakIsSUE3Q0l1YyxXQXlDV3JlLEdBQUU4QixHQUFFYyxJQUlZOzs7NEJBQXVCOzs7SUFGdEQ7R0FFMkQ7WUFFM0R3UyxnQkFBZ0JwVjtJQUNBLHFCQXZLaEJza0IsS0FzS2dCdGtCO0lBQ2xCLGtCQXhLRXFrQixLQXdLRjtHQUFnQztZQUM5QmxQLGdCQUFnQm5WO0lBQ0EscUJBektoQnNrQixLQXdLZ0J0a0I7SUFDbEIsa0JBMUtFcWtCLEtBMEtGO0dBQWdDO1lBQzlCbEgsaUJBQWlCbmQ7SUFDQSxxQkEzS2pCc2tCLEtBMEtpQnRrQjtJQUNuQixrQkE1S0Vxa0IsS0E0S0Y7R0FBaUM7WUFDL0JqSCxtQkFBbUJwZDtJQUNBLHFCQTdLbkJza0IsS0E0S21CdGtCO0lBQ3JCLGtCQTlLRXFrQixLQThLRjtHQUFtQztZQUdqQ2hILFlBQWFDLFFBQU90ZDtJQUN0QjtLQUFJdWQsOEJBRGtCdmQ7S0FFbEJ3ZCxnQ0FGV0Y7V0FFWEUsV0FEQUQ7O1FBRVF6YjtJQUNWO1FBRFVBLE1BRFIwYixTQUVrQjsrQkFKQXhkLEdBR1Y4Qiw4QkFIR3diLFFBR0h4YjtNQUV5QztLQUM5QyxJQUhLQzs7R0FJZ0I7WUFHMUIwYixVQUFXQyxRQUFPMWQ7SUFDcEI7S0FBSXVkLDhCQURnQnZkO0tBRWhCMmQsZ0NBRlNEO0tBR1RFLE9BRkFMLFFBQ0FJO2dCQUNBQzs7UUFDUTliO0lBQ1Y7UUFEVUEsTUFGUjZiLFNBR2tCOzs4QkFMRjNkLEdBR2hCNGQsT0FDUTliO2tDQUpDNGIsUUFJRDViO01BRWtEO0tBQ3ZELElBSEtDOztHQUlTO1lBR25CK2MsY0FBY3BDLEtBQUkxYztJQUNwQjtLQUFJWDtLQUNBdVEsUUFBSixzQkFGb0I1UDtLQUdwQiw0QkFIb0JBOztTQUdwQjhCOztnQ0FIb0I5QixHQUdwQjhCLE9BSGdCNGE7aUJBQ1pyZDtrQkEzTEYwYyxJQTBMa0IvYixHQUdwQjhCLFlBREk4TixPQUNKOU47T0FESThOLE9BQ0o5Tjs7Ozs7OztjQUZJekM7SUFRSixXQW5NRTBjLElBMExrQi9iLE1BRWhCNFA7R0FPWTtZQUlkc0YsVUFBVWxWO0lBQ0EscUJBbk5Wc2tCLEtBa05VdGtCO0lBQ1osa0JBcE5FcWtCLEtBb05GO0dBQTBCO1lBQ3hCcFAsVUFBVWpWO0lBQ0EscUJBck5Wc2tCLEtBb05VdGtCO0lBQ1osa0JBdE5FcWtCLEtBc05GO0dBQTBCO1lBQ3hCdEYsV0FBVy9lO0lBQ0EscUJBdk5Yc2tCLEtBc05XdGtCO0lBQ2Isa0JBeE5FcWtCLEtBd05GO0dBQTJCO1lBQ3pCckYsYUFBYWhmO0lBQ0EscUJBek5ic2tCLEtBd05hdGtCO0lBQ2Ysa0JBMU5FcWtCLEtBME5GO0dBQTZCO09BSTNCL2E7WUFLQTJLLE9BQU9qVTtJQUFJLHFCQWxPWHNrQixLQWtPT3RrQjtJQUFJO0dBQWlCO1lBRTVCaWYsUUFBUWpmO0lBQUkscUJBcE9ac2tCLEtBb09RdGtCO0lBQUk7R0FBa0I7WUFFOUJzYixPQUFPbUo7SUFBSSxrQkF2T1hKLEtBdU9XLDZCQUFKSTtHQUFxQjtZQUk1QmxELGdCQUFnQnZoQixHQUFFOEI7SUFBc0IscUJBMU94Q3dpQixLQTBPZ0J0a0I7SUFBTSx5Q0FBSjhCO0dBQStCO1lBQ2pEeWhCLGVBQWV2akI7SUFBcUIscUJBM09wQ3NrQixLQTJPZXRrQjtJQUFxQjtHQUFPO1lBRTNDNGpCLG1CQUFtQjVqQixHQUFFOEI7SUFBeUIscUJBN085Q3dpQixLQTZPbUJ0a0I7SUFBTSx5Q0FBSjhCO0dBQWtDO1lBQ3ZEbWlCLGtCQUFrQmprQjtJQUF3QixxQkE5TzFDc2tCLEtBOE9rQnRrQjtJQUF3QjtHQUFPO1lBRWpEa2tCLG1CQUFtQmxrQixHQUFFOEI7SUFBeUIscUJBaFA5Q3dpQixLQWdQbUJ0a0I7SUFBTSx5Q0FBSjhCO0dBQWtDO1lBQ3ZEc2lCLGtCQUFrQnBrQjtJQUF3QixxQkFqUDFDc2tCLEtBaVBrQnRrQjtJQUF3QjtHQUFPO1lBU2pEc2YsU0FBU3RmLEdBQUU4QjtJQUFlLHFCQTFQMUJ3aUIsS0EwUFN0a0I7SUFBTSx5Q0FBSjhCO0dBQXdCO1lBQ25DeWQsY0FBY3ZmLEdBQUU4QjtJQUFvQixxQkEzUHBDd2lCLEtBMlBjdGtCO0lBQU0seUNBQUo4QjtHQUE2QjtZQUM3QzBkLGNBQWN4ZixHQUFFOEI7SUFBb0IscUJBNVBwQ3dpQixLQTRQY3RrQjtJQUFNLHlDQUFKOEI7R0FBNkI7WUFDN0MyZCxhQUFhemYsR0FBRThCO0lBQW1CLHFCQTdQbEN3aUIsS0E2UGF0a0I7SUFBTSx5Q0FBSjhCO0dBQTRCO1lBQzNDNGQsYUFBYTFmLEdBQUU4QjtJQUFtQixxQkE5UGxDd2lCLEtBOFBhdGtCO0lBQU0seUNBQUo4QjtHQUE0QjtZQUMzQzZkLGFBQWEzZixHQUFFOEI7SUFBbUIscUJBL1BsQ3dpQixLQStQYXRrQjtJQUFNLHlDQUFKOEI7R0FBNEI7WUFDM0M4ZCxhQUFhNWYsR0FBRThCO0lBQW1CLHFCQWhRbEN3aUIsS0FnUWF0a0I7SUFBTSx5Q0FBSjhCO0dBQTRCO1lBQzNDK2QsYUFBYTdmLEdBQUU4QjtJQUFtQixxQkFqUWxDd2lCLEtBaVFhdGtCO0lBQU0seUNBQUo4QjtHQUE0QjtZQUMzQ2dlLGFBQWE5ZixHQUFFOEI7SUFBbUIscUJBbFFsQ3dpQixLQWtRYXRrQjtJQUFNLHlDQUFKOEI7R0FBNEI7WUFDM0NpZSxhQUFhL2YsR0FBRThCO0lBQW1CLHFCQW5RbEN3aUIsS0FtUWF0a0I7SUFBTSx5Q0FBSjhCO0dBQTRCOzs7O09BalEzQzVDO09BRUEyUTtPQUVBN0M7T0FHQXVYO09BQ0FDO09Bd0JBN1c7T0FPQW9QOztPQW9MQXpUO09BN0NBK1Q7T0FVQUk7T0FyQ0FrQjtPQVdBRTtPQUhBRDtPQWxKQTdDO09BMExBK0M7T0FsSkFsVztPQUVBeUg7T0FJQXhDO09BRkE4SjtPQU1BOUk7T0FGQUU7T0FhQWtPO09BTUFqSTtPQXdGQUk7T0FFQUQ7T0FFQWdJO09BRUFDO09BaElBblA7T0FJQVM7T0F5REF5UDtPQU1BQztPQWdCQUc7T0FlQUc7T0FoREFWO09BUUFFO09Bc0JBSTtPQWVBRztPQXVGQXhLO09BRUFnTDtPQUVBM0Q7T0FJQWlHO09BQ0FnQztPQUVBSztPQUNBSztPQUVBQztPQUNBRTtPQWxPQTlIO09BUkFUO09BTUFRO09BcU1Bbkg7T0FFQUQ7T0FFQThKO09BRUFDOztPQWtDQU07O09BRUFFO09BREFEO09BRUFFO09BRUFFO09BREFEOztPQUdBRztPQURBRDs7T0FHQUc7T0FEQUQ7OztFbEJ4U0w7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dxQnNDcUI7Ozs7O0lBRmhCb0Y7SUFFZ0I7Ozs7Ozs7Ozs7Ozs7O1lBVWhCclYsS0FBS2hPLEdBQUU3QztJQUNULFNBRE82QyxHQUNPO1dBRFBBLEdBRU87SUFJSCxJQUFOa0QsTUFBTSxlQU5KbEQsR0FNYSxXQU5YN0MsUUFPUixPQVBNNkMsV0FNSTs7U0FDVkM7O01BRElpRCxRQUNKakQsS0FDbUIsV0FSWDlDLEdBT1I4QztNQUNFLFdBREZBOzs7OztJQUdBLE9BSklpRDtHQUlEO1lBRUZvZ0IsWUFBWUMsSUFBR0MsSUFBR3hWO0lBQ3BCLElBQUk5SyxNQUFNLGVBRElxZ0IsVUFFZCxPQUZjQSxZQUNKOztTQUNWamxCOztNQURJNEUsUUFDSjVFLEtBQ21CLGVBSEZrbEIsSUFBR3hWO01BRXBCOzs7OztJQUdBLE9BSkk5SztHQUlEO1lBSUQ4VyxLQUFLN1k7SUFDUCxJQUFJbkIsSUFER21CO0lBQ2EsYUFBaEJuQixVQUF3QyxlQURyQ21CLE1BQ0huQjtHQUF3RDtZQUUxRHVMLE9BQU95SyxJQUFHRDtJQUNaLElBQUl6VyxLQURLMFc7SUFFVCxhQURJMVc7Y0FKRjBhLEtBR1VqRTs7O2dCQUdlLGVBSGxCQyxPQUNMMVc7Z0JBR0MsMEJBSkkwVyxJQUFHRDtHQUlVO1lBRXBCbUUsSUFBSS9ZLEdBQUVLLEtBQUlDO0lBQ1osUUFEUUQsWUFBSUMsUUFBTk4sZUFBTU0sWUFBSkQ7S0FHSCxzQkFIQ0wsR0FBRUssS0FBSUM7SUFFUDtHQUNvQjtZQUV2QitZLEtBQUtyWixHQUFFSyxLQUFJQyxLQUFJbkU7SUFDakIsUUFEU2tFLFlBQUlDLFFBQU5OLGVBQU1NLFlBQUpEO0tBR0osK0JBSEVMLEdBQUVLLEtBQUlDLEtBQUluRTtJQUVaO0dBQ3VCO1lBRTFCbWQsS0FBS3pFLElBQUcwRSxNQUFLM0UsSUFBRzRFLE1BQUtsWjtJQUN2QjtXQUR1QkE7O1lBQWJpWjs7U0FBSDFFLGdCQUFnQnZVLFlBQWJpWjtnQkFBUUMsU0FBSDVFLGdCQUFRdFUsWUFBTGtaO0tBSWIsK0JBSkUzRSxJQUFHMEUsTUFBSzNFLElBQUc0RSxNQUFLbFo7SUFHbEI7R0FDK0I7WUFFbEMySyxLQUFLalAsR0FBRWdFO0lBQ1QsV0FEU0Esc0JBQ1Q7Ozs7TUFBNkIsV0FEdEJoRSxHQUFFZ0UsTUFDVGxCO01BQTZCLFdBQTdCQTs7Ozs7O0dBQW1EO1lBRWpEb04sTUFBTWxRLEdBQUVnRSxHQUFFekI7SUFDWixHQURVeUIsaUJBQUV6QjtLQUVWO0lBRUEsV0FKUXlCLHNCQUlSOzs7O01BQTZCLFdBSnZCaEUsR0FBRWdFLE1BSVJsQixJQUpVUCxNQUlWTztNQUE2QixXQUE3QkE7Ozs7OztHQUFxRTtZQUVyRThHLElBQUk1SixHQUFFZ0U7SUFDUixJQUFJbkIsSUFESW1CO0lBRVIsU0FESW5CLEdBQ1U7SUFDSjtLQUFKeEMsSUFBSSxlQUZOd0MsR0FFZSxXQUhiN0MsR0FBRWdFO0tBSU4sT0FIRW5CO0tBRU07O1NBQ1JDOztNQURJekMsTUFDSnlDLEtBQ2lCLFdBTGI5QyxHQUFFZ0UsTUFJTmxCO01BQ0UsV0FERkE7Ozs7O0lBR0EsT0FKSXpDO0dBS0g7WUFFRG1TLEtBQUt4UyxHQUFFZ0UsR0FBRXpCO0lBQ1gsSUFBSStqQixLQURLdGlCLGNBRUx1aUIsS0FGT2hrQjtPQUNQK2pCLE9BQ0FDO0tBRUY7YUFIRUQsSUFLYTtJQUNMO0tBQUpqbUIsSUFBSSxlQU5SaW1CLElBTWtCLFdBUGZ0bUIsR0FBRWdFLE1BQUV6QjtLQVFQLE9BUEErakI7S0FNUTs7U0FDUnhqQjs7TUFESXpDLE1BQ0p5QyxLQUNpQixXQVRkOUMsR0FBRWdFLE1BUUxsQixJQVJPUCxNQVFQTztNQUNFLFdBREZBOzs7OztJQUdBLE9BSkl6QztHQU1MO1lBRURxUCxNQUFNMVAsR0FBRWdFO0lBQ1YsV0FEVUEsc0JBQ1Y7Ozs7TUFBNkIsV0FEckJoRSxHQUNSOEMsR0FEVWtCLE1BQ1ZsQjtNQUE2QixXQUE3QkE7Ozs7OztHQUFzRDtZQUVwRHVPLEtBQUtyUixHQUFFZ0U7SUFDVCxJQUFJbkIsSUFES21CO0lBRVQsU0FESW5CLEdBQ1U7SUFDSjtLQUFKeEMsSUFBSSxlQUZOd0MsR0FFZSxXQUhaN0MsTUFBRWdFO0tBSVAsTUFIRW5CO0tBRU07O1NBQ1JDOztNQURJekMsTUFDSnlDLEtBQ2lCLFdBTFo5QyxHQUlMOEMsR0FKT2tCLE1BSVBsQjtNQUNFLFVBREZBOzs7OztJQUdBLE9BSkl6QztHQUtIO1lBRUQyVSxRQUFRaFI7SUFDVixJQUFlK2EsTUFETC9hLHNCQUNLbEIsU0FBRWlEO0lBQ2Y7WUFEYWpELEdBQ0MsT0FEQ2lEO0tBQ3VCLElBRHZCeWdCLFlBRFB4aUIsTUFDS2xCLElBQUVpRCxNQUFGaEQsMEJBQUVnRDs7R0FFTztZQUdsQjBnQjtRQUFZM2dCOzttQkFDVixPQURVQTtLQUVSO01BQUw0SDtNQUFLLFNBRlE1SDs7Z0JBRWI0SDs7O1lBRUhnWixRQUVBN2pCO0lBRlUsS0FFVkEsR0FETTtJQUVJO0tBRE5NLEtBQUpOOztLQUNNbUIsSUFBSSxlQVBOeWlCLGVBTUo1akI7S0FFZUM7YUFGWEs7O2lCQUVGLE9BRElhO1NBR0l3WCxpQkFBSnNDO0tBSEE5WixNQUNTbEIsS0FFVGdiO0tBRkosVUFBYWhiLDRCQUVMMFk7O0dBQ0M7WUFFWDNNLFVBQVU3TyxHQUFFbUIsR0FBRTZDO0lBQ2hCLElBQUkzRCxRQURVYyxVQUFFNkMsc0JBQ1I7O1NBQ1JsQjs7TUFESXpDLE9BRUcsV0FIS0wsR0FDUkssTUFEWTJELE1BRWhCbEI7Ozs7OztXQURJekM7R0FJRjtZQUVBMFosY0FBYy9aLEdBQUU4TyxLQUFJNlg7SUFDdEIsSUFBSXJpQixNQURrQnFpQjtJQUV0QixTQURJcmlCLEtBQ1ksV0FGRXdLO0lBR0Q7d0JBSEQ5TyxHQUFFOE8sS0FBSTZYO0tBR1hDO0tBQUw3WDtLQUNBOFgsZUFBZSxlQUhqQnZpQixLQUVPc2lCO0tBRUw1WCxZQUZBRDtLQUdKLE1BTEV6SztLQUlROztTQUNWeEI7O01BQ2tCOzRCQVBKOUMsR0FLVmdQLFVBTGdCMlgsZ0JBTXBCN2pCO09BQ1lna0I7T0FBTkM7TUFGRi9YLFdBRUUrWDtNQUhGRixpQkFFSi9qQixLQUNZZ2tCO01BRFo7Ozs7O0lBS0EsV0FOSTlYLFVBREE2WDtHQVFIO1lBRURsTyxXQUFXM1ksR0FBRWdFLEdBQUU3QztJQUNqQixJQUFJZCxRQURhYyxJQUVqQixNQUZlNkM7O1NBRWZsQjs7TUFESXpDLE9BRUcsV0FITUwsR0FBRWdFLE1BRWZsQixJQURJekM7TUFDSjs7Ozs7V0FESUE7R0FJRjtZQUVBMFAsT0FBT0QsR0FBRTlMO0lBQ1gsSUFBSXBELElBRE9vRCxjQUVFbEI7SUFDWDtRQURXQSxNQURUbEMsR0FFWTtLQUNOLGNBSkRrUCxHQUFFOUwsTUFFRWxCLEtBRXFCO0tBQzNCLElBSE1DOztHQUlQO1lBRUo4TSxRQUFRQyxHQUFFOUw7SUFDWixJQUFJcEQsSUFEUW9ELGNBRUNsQjtJQUNYO1FBRFdBLE1BRFRsQyxHQUVZO0tBQ04sZ0JBSkFrUCxHQUFFOUwsTUFFQ2xCLEtBR047S0FEMkIsSUFGckJDOztHQUlQO1lBRUp3TixTQUFTVCxHQUFFM04sSUFBR0M7SUFDaEIsSUFBSWlaLEtBRFNsWixlQUVUbVosS0FGWWxaO09BQ1ppWixPQUNBQyxJQUNhO1FBQ0N4WTtJQUNoQjtRQURnQkEsTUFIZHVZLElBSWE7S0FDUCxnQkFOQ3ZMLEdBQUUzTixPQUlLVyxJQUpGVixPQUlFVSxLQUdYO0tBRDhDLElBRm5DQzs7R0FJWjtZQUVKeU4sUUFBUVYsR0FBRTNOLElBQUdDO0lBQ2YsSUFBSWlaLEtBRFFsWixlQUVSbVosS0FGV2xaO09BQ1hpWixPQUNBQyxJQUNhO1FBQ0N4WTtJQUNoQjtRQURnQkEsTUFIZHVZLElBSWE7S0FDUCxjQU5BdkwsR0FBRTNOLE9BSU1XLElBSkhWLE9BSUdVLEtBRW1DO0tBQzlDLElBSFdDOztHQUlaO1lBRUppVyxJQUFJN1gsR0FBRTZDO0lBQ1IsSUFBSXBELElBRElvRCxjQUVLbEI7SUFDWDtRQURXQSxNQURUbEMsR0FFWTtLQUNOLDhCQUpGb0QsTUFFS2xCLElBRlAzQixJQUl3QztLQUN2QyxJQUhNNEI7O0dBSVA7WUFFSmtXLEtBQUs5WCxHQUFFNkM7SUFDVCxJQUFJcEQsSUFES29ELGNBRUlsQjtJQUNYO1FBRFdBLE1BRFRsQyxHQUVZO1FBSFRPLE1BQUU2QyxNQUVJbEIsSUFFd0I7S0FDOUIsSUFITUM7O0dBSVA7WUFFSjRXLFNBQVM3SixHQUFFOUw7SUFDYixJQUFJcEQsSUFEU29ELGNBRUFsQjtJQUNYO1FBRFdBLE1BRFRsQyxHQUVZO0tBRUosSUFBSk8sSUFMSzZDLE1BRUFsQjtLQUlOLGNBTklnTixHQUtIM08sSUFDUSxXQURSQTtLQUVDLElBTEk0Qjs7R0FPUDtZQUVKa04sU0FBU2pRLEdBQUVnRTtJQUNiLElBQUlwRCxJQURTb0QsY0FFQWxCO0lBQ1g7UUFEV0EsTUFEVGxDLEdBRVk7S0FFTixJQUVKUCxJQUZJLFdBTENMLEdBQUVnRSxNQUVBbEI7UUFLUHpDLEdBQWUsT0FBZkE7S0FEUSxJQUpEMEM7O0dBT1A7WUFFSnFYLE1BQU1qWjtJQUNSLEdBQUcsbUJBREtBLFNBQ1M7SUFHZjthQUpNQTtLQUdFK2dCO0tBQUo4RTtLQUNBcG1CLElBSkVPO0tBS0Y2QyxJQUFJLGVBREpwRCxHQURBb21CO0tBR0F6a0IsSUFBSSxlQUZKM0IsR0FESXNoQjtLQUlSLE1BSEl0aEI7S0FFSTs7U0FDUmtDOztvQkFQTTNCLE1BT04yQixJQUNVbWtCLGlCQUFKQztNQUhGbGpCLE1BRUpsQixLQUNNb2tCO01BRkYza0IsTUFDSk8sS0FDVW1rQjtNQURWOzs7OztJQUtBLFdBUElqakIsR0FDQXpCO0dBT0g7WUFFRGdZLFFBQVF2VyxHQUFFekI7SUFDWixJQUFJNGtCLEtBRE1uakIsY0FFTm9qQixLQUZRN2tCO09BQ1I0a0IsT0FDQUMsSUFDYTthQUZiRCxJQUdXO0lBRUwsSUFBSmhtQixJQUFJLGVBTE5nbUIsUUFETW5qQixNQUFFekIsUUFPVixNQU5FNGtCLFlBS007O1NBQ1Jya0I7O01BREkzQixNQUNKMkIsU0FQUWtCLE1BT1JsQixJQVBVUCxNQU9WTzs7Ozs7O0lBR0EsT0FKSTNCO0dBS0g7R0FFTDtZQUNJMlosS0FBS3BLLEtBQUkxTTthQUNQcWpCLE9BQU94a0IsR0FBRUM7S0FDWCxJQUFJd2tCLFFBRE94a0IsNkJBRVAzQixRQURBbW1CO3dCQURLemtCO01BR1MsVUFGZHlrQixhQUdpQix1QkFMWnRqQjtTQUtKLFdBTEEwTSxzQkFBSTFNLEdBRUxzakI7T0FDQW5tQixPQURBbW1CO01BSUY7YUFKRUE7T0FJZ0IsdUJBTlh0akI7YUFHTDdDO1NBR0MsV0FOQXVQLHNCQUFJMU07T0FHTDdDLE9BREFtbUI7YUFDQW5tQjs7U0FEQW1tQixlQURLemtCO01BUXlCLFVBUDlCeWtCLGFBTzhCLHVCQVR6QnRqQjtNQVNTLGtCQVRiME0sc0JBQUkxTSxHQUVMc2pCO09BUUcsT0FSSEE7O2NBREt6a0IsR0FVYyxPQVRuQnlrQjtLQVM0Qiw4Q0FWckJ4a0I7SUFVcUM7UUFXdENELElBdEJEbUIsc0JBc0JDbkI7O1NBQUUrZjs7TUFrQmtDLElBbEJoQzJFLHVCQXRCTHZqQixHQXNCRzRlO01BQU07V0FURTlmLElBU1I4ZjtPQVJaO1FBQVEsSUFBSmhTLElBYkZ5VyxPQXFCUXhrQixHQVRVQztRQUVqQixrQkFmRTROLHNCQUFJMU0sR0FjTDRNLFdBUVUyVztTQU5KLDJCQWhCRHZqQixHQWNMNE07U0FFRixpQkFoQk81TSxHQWFXbEI7aUJBQ2hCOE47OztRQUlLLGlCQWxCQTVNLEdBYVdsQixZQVNOeWtCOzs7Ozs7O1dBQXNDeGtCO09BQUssaUJBdEJoRGlCLEdBc0IyQ2pCLGdCQUF0Q3drQjs7TUFrQm9CLFVBbEJ0QjNFOzs7OztJQW1CZCxVQW5CWS9mOztTQU1EMmY7OztNQWNELElBYlVsVix1QkE3QlR0SixHQTRCQXdlO01BNUJBeGUsTUE0QkF3ZSx3QkE1QkF4ZTtVQTRCRTBlO01BQUk7V0FMSTNELE1BS1IyRDtPQUpYO1FBQVEsSUFEVzhFLE1BdEJqQkgsT0EyQk83RSxLQUxVekQsTUFFWCx1QkF6QkMvYSxHQXVCVXdqQjtRQUVuQixpQkF6QlN4akIsR0F1QlUrYTs7Ozs7OztXQU1IOEU7T0FDaEI7WUFBSTRELFVBRFkxRDttQkFDWjBEO1NBQ0o7UUFDRyxtQkFoQ0UvVyxzQkFBSTFNLEdBOEJMeWpCLHFCQURjbmE7U0FNVCxpQkFuQ0F0SixHQTZCTytmLGdCQUFFelc7O1NBSVIsMkJBakNEdEosR0E4Qkx5akI7U0FHRixpQkFqQ096akIsR0E2Qk8rZjtnQkFDWjBELFlBRFkxRCxNQUNaMEQ7U0FJeUMsaUJBbENwQ3pqQixXQTZCU3NKOztRQVlwQixVQWJXa1Y7Ozs7Ozs7O2tCQU5DM2Y7O0tBd0JXLElBQUo2RyxxQkE5Q1IxRjs7WUE4Q1EwRjs7Ozs7SUFBb0M7R0FBVTtZQUkvRG1SLFlBQVluSyxLQUFJMU07YUFDZHdXLE1BRVdrTixTQUZHQyxTQUFRQyxNQUVMQyxTQUZrQkMsU0FBUWxLLEtBRXBCbUs7S0FEekI7TUFBSUMsUUFDU04sVUFGR0M7TUFDa0JNLFFBQ2ZKLFVBRmtCQztNQUVmSSx3QkFGRU4sTUFFTEM7TUFBSE0sd0JBSEFua0IsR0FHSDBqQjs7TUFBR3psQjtNQUFHb21CO01BQUdubUI7TUFBR3FWO0tBQ3ZCO01BQUcsa0JBSk83RyxLQUdJek8sSUFBTUM7T0FTbEIsaUJBWHlDMGIsS0FFcEJyRyxZQUFIclY7T0FTbEIsSUFDSW9tQixPQVZXRDtVQVVYQyxRQVgwQkwsY0EvUGxDM0ssS0E2UGdCdFosR0FHSG9rQixJQUZnQ3hLLEtBRXBCckcsV0FEckJ5USxRQUNTSTtPQVlQO1FBWm1CRztRQUFIQyx3QkFGRVosTUFZaEJVO1FBVldELEtBVVhDO1FBVmNwbUI7UUFBR3FWOzs7TUFFckIsaUJBSnlDcUcsS0FFcEJyRyxZQUFUdFY7TUFFWixJQUNJd21CLE9BSEtMO1NBR0xLLFFBSkpULGNBL1BKMUssS0E4UHdCc0ssTUFFTFMsSUFGMEJ6SyxLQUVwQnJHLFdBRFMwUSxRQUNmSTtNQUtiO09BTG1CSztPQUFUQyx3QkFIQTNrQixHQU1SeWtCO09BSEtMLEtBR0xLO09BSFF4bUI7T0FBU3NWOztJQWdCeUM7YUFFaEVxUixRQUFRQyxRQUFPakwsS0FBSW1LLFFBQU96akI7S0FDNUIsVUFENEJBLGFBQzVCOzs7OztPQUNVO2NBRkF1a0IsU0FDVi9sQjtRQUNNNEcscUJBdkJVMUY7UUF3QlY0TSxTQUhlbVgsU0FDckJqbEI7O1dBRHFCaWxCLFVBR2ZuWDs7U0FDbUIsa0JBekJiRixzQkFxQktrTixvQkFFWGxVO1VBR2U7aUJBRmZrSDtXQUVlLHVCQUxKZ047aUJBR1hoTjtVQUVGLGlCQUxhZ047VUFHWGhOOzs7OztRQUtKLGlCQVJlZ04scUJBRVhsVTtRQUROOzs7Ozs7OztJQVFJO2FBRUVvZixPQUFPRCxRQUFPakwsS0FBSW1LLFFBQU96akI7S0FDL0IsR0FEK0JBLFVBQ1QsT0FacEJza0IsUUFXV0MsUUFBT2pMLEtBQUltSyxRQUFPempCO1NBRXpCbkMsS0FGeUJtQyxhQUd6QmxDLEtBSHlCa0MsTUFFekJuQztLQUZBMm1CLE9BQU9ELFNBRVAxbUIsUUFGY3liLEtBQUltSyxTQUVsQjVsQixRQUNBQztLQUhBMG1CLE9BQU9ELFFBaENHN2tCLEdBZ0NINmtCLFNBR1B6bUIsUUFEQUQ7S0FHSixPQXBDQXFZLE1BK0JXcU8sU0FHUHptQixRQURBRCxJQUZjeWIsS0FBSW1LLFNBRWxCNWxCLFFBQ0FDLElBSGN3YixLQUFJbUs7SUFPckI7UUFFRGxsQixJQXpDY21CO09BeUNkbkIsUUFDZ0IsT0FyQmhCK2xCLFdBckJjNWtCLE1BeUNkbkI7SUFJTTtLQUZKVixLQUZGVTtLQUdFVCxLQUhGUyxJQUVFVjtLQUVBdUwsSUFBSSxlQURKdEwscUJBNUNZNEI7SUFnQ1Y4a0IsT0FXRjNtQixJQUVBdUwsTUFEQXRMO0lBWkUwbUIsVUFoQ1U5a0IsR0E0Q1o1QixJQURBRDtJQUlKLE9BOUNFcVksTUEyQ0VwWSxJQURBRCxJQUVBdUwsTUFEQXRMLElBNUNZNEI7R0FpRGY7WUFPRGlSLE9BQU9qUjthQUNEb1ksSUFBSXRaO0tBQ1YsR0FEVUEsS0FESGtCLGNBTUY7S0FGSyxJQUFKN0MsSUFKQzZDLE1BQ0dsQixJQUdBLE1BSEFBO0tBSVIsV0FESTNCLGlCckJqWlgsT3FCOFlXaWI7SUFLTTtJQUVkO3lCckJyWkgsT3FCOFlXQTtHQU9IO1lBRUg2RCxRQUFRamM7YUFDRm9ZLElBQUl0WjtLQUNWLEdBRFVBLEtBREZrQixjQU1IO0tBRkssSUFBSjdDLElBSkU2QyxNQUNFbEIsSUFHQSxNQUhBQTtLQUlSLGVBSlFBLEdBR0ozQixrQnJCM1pYLE9xQndaV2liO0lBS007SUFFZDt5QnJCL1pILE9xQndaV0E7R0FPSDtZQWFIRSxPQUFPdUg7SUFDVDtpQkFBMkIvVSxLQUFJM04sR0FBSyxXQUFMQSxHQUFKMk4sS0FBZTtJQUFsQyxJQVZOak0sSUFVTSxvQ0FEQ2doQjtTQVRQaGhCLEdBRE07SUFFTTtLQURSTSxLQUFKTjs7S0FDTXlCLE1BalJGbWlCLGVBZ1JKNWpCO0tBRU1tQixJQUFJLGVBREpNLEtBRE5sQjtLQUNZLE1BQU5rQjtLQUVTeEI7YUFIWEs7O2lCQUdGLE9BRElhO1NBR0l3WCxpQkFBSnNDO0tBSEE5WixNQUNTbEIsS0FFVGdiO0tBRkosVUFBYWhiLDRCQUVMMFk7O0dBTUM7Ozs7T0ExWVgwSztPQVlBclY7T0FZQXNWOztPQVlBL1g7O09BTUEyTztPQVRBRjtPQWNBUTtPQUtBQztPQXFEQXRJO09BVUEwUjtPQXpEQXpYO09Ba0NBUztPQXpCQTlGO09BNEJBeUg7T0E2QkF4QztPQU9Ba0w7T0FjQXBCO09BcEZBekk7T0FnQkFzQztPQW1GQTNDO09BUkFFO09BZ0JBUTtPQVVBQztPQVVBd0k7T0FRQUM7T0FRQVU7T0FXQTFKO09BV0FtSztPQWVBRztPQWNBTztPQWtEQUQ7O09Bd0RBNUY7T0FVQWdMO09BcUJBM0Q7Ozs7RXJCNWFMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0l1QjZDS0c7SUFDQUM7SUFDQUM7WUFDQTlGLEtBQUtqVyxHQUFJLE9BQUpBLFVBQVk7WUFDakJrVyxLQUFLbFcsR0FBSSxPQUFKQSxVQUFZO1lBQ2pCVSxJQUFJVixHQUFJLE9BQUcsa0JBQVBBLG9CQUFnQztPQUNwQ21CLHVCQUNBRDtZQUNBOGEsT0FBT2hjLEdBQUksT0FBSkEsT0FBa0I7OztJQUt2QjtLQUFJd3BCO0tBSE5DO2dCQUlNenBCO1FBQ0YsUUFBRyxvQkFEREEsV0FDd0IsaUJBRHhCQSxHQURBd3BCO1NBR0EsV0FGQXhwQjtRQUlBO09BQUk7OztLQU1SO1FBZEZ5cEIsMkJBWU16cEIsR0FBSyxXQUFMQSxRQUE4Qjs7WUFLcENtVixVQUFVblYsR0FBSSxxQ0FBSkEsR0FBaUI7WUFJM0J1b0IsY0FBY25vQjtJQUVoQixJQUFJLGNBQUssMkJBRk9BLEtBRVo7Ozs4QkFDYzs7O0dBQUk7T0FJcEJzSjtZQUNBUCxNQUFPNUksR0FBT0MsR0FBUSw4QkFBZkQsR0FBT0MsV0FBdUI7WUFFckNrcEIsaUJBQWlCMXBCLEdBQUUycEI7SUFDckIsT0FBd0IsaUJBREwzcEIsb0JBQUUycEI7R0FDa0I7WUFFckNycEIsSUFBSUMsR0FBRUMsR0FBUSxPQUFHLHVCQUFiRCxHQUFFQyxLQUFGRCxJQUFFQyxFQUErQjtZQUNyQ0MsSUFBSUYsR0FBRUMsR0FBUSxPQUFHLGtCQUFiRCxHQUFFQyxLQUFGRCxJQUFFQyxFQUErQjtZQUtyQ29wQixhQUFhNXBCLEdBQUUyVztJQUNqQixHQUFHLHNCQURjQTtLQUVaLFlBWEgrUyxpQkFTYTFwQixHQUFFMlcsS0FqRGZtRixNQURBRDtJQXNEUSxJQUFKZ08sSUFBZSxpQkFKTjdwQixhQUFFMlcsU0FLWGxYLElBTFNPLElBS0MsU0FEVjZwQixHQUpXbFQ7SUFNWixZQWZIK1MsaUJBY0lqcUIsR0FMV2tYLEtBSVhrVDtHQUUyQztZQUUvQ0MsYUFBYTlwQixHQUFFMlc7SUFDakIsT0FEZTNXLElBQ1QsU0FUSjRwQixhQVFhNXBCLEdBQUUyVztHQUNlOzs7O09BM0Q5QmtGO09BQ0FDO09BQ0FDO09BZ0RBNk47T0FRQUU7T0F2REE3VDtPQUNBQztPQUNBeFY7T0FFQVE7T0FEQUM7T0FFQTZhO09BRUF5TjtPQXFCQWxCO09BSkFwVDtPQVdBekw7T0FHQWdnQjtPQUZBdmdCO09BS0E3STtPQUNBRzs7O0V2QjFGTDs7Ozs7Ozs7Ozs7Ozs7OztJd0IyQ0tvYjtJQUNBQztJQUNBQztJQUlBNWE7SUFDQUQ7Ozs7OztZQUpBK1UsS0FBS2pXLEdBQUksOEJBQUpBLFFBQVk7WUFDakJrVyxLQUFLbFcsR0FBSSxzQkFBSkEsUUFBWTtZQUNqQlUsSUFBSVY7SUFBSSxPQUFHLGtCQUFQQSxjQUEyQix1QkFBM0JBO0dBQWdDO1lBR3BDZ2MsT0FBT2hjLEdBQUksOEJBQUpBLFFBQWtCO0dBR2IsSUFBVndwQixZQUFVO1lBRFpDLGdCQUVFenBCO0lBQ0Y7V0FBRyxtQkFiSDZiLE1BWUU3YjtjQUN3QixtQkFEeEJBLEdBREF3cEI7S0FHQSx1Q0FGQXhwQjtJQUlBO0dBQUk7WUFHTm1WLFVBQVVuVixHQUFJLHVDQUFKQSxHQUFpQjtZQUkzQnVvQixjQUFjbm9CO0lBRWhCLElBQUksY0FBSyw2QkFGT0EsS0FFWjs7OzhCQUNjOzs7R0FBSTtZQWFwQnNKLFFBQVNuSixHQUFPQyxHQUFRLDBCQUFmRCxHQUFPQyxHQUEwQjtZQUMxQzJJLE1BQU81SSxHQUFPQyxHQUFRLGdDQUFmRCxHQUFPQyxXQUF1QjtZQUVyQ2twQixpQkFBaUIxcEIsR0FBRTJwQjtJQUNyQixPQUF3QjthQUFoQixlQURXM3BCLEdBcENqQm1CLFVBcUNzQixlQURId29CLEdBcENuQnhvQjtHQXFDcUM7WUFFckNiLElBQUlDLEdBQUVDLEdBQVEsT0FBRyx1QkFBYkQsR0FBRUMsS0FBRkQsSUFBRUMsRUFBK0I7WUFDckNDLElBQUlGLEdBQUVDLEdBQVEsT0FBRyxrQkFBYkQsR0FBRUMsS0FBRkQsSUFBRUMsRUFBK0I7WUFLckNvcEIsYUFBYTVwQixHQUFFMlc7SUFDakIsR0FBRyxzQkFEY0EsR0FuRGZrRjtLQXFERyxZQVhINk4saUJBU2ExcEIsR0FBRTJXLEtBbERmbUYsTUFEQUQ7SUF1RFE7S0FBSmdPO09BQUk7U0FBVztXQUFLLHdDQUpYN3BCLE9BQUUyVzs7S0FLWGxYLElBQUksZUFMS08sR0FLQyxlQURWNnBCLEdBSldsVDtJQU1aLFlBZkgrUyxpQkFjSWpxQixHQUxXa1gsS0FoRGZWLEtBb0RJNFQ7R0FFMkM7WUFFL0NDLGFBQWE5cEIsR0FBRTJXO0lBQ2pCLHNCQURlM1csR0FDVCxlQVRKNHBCLGFBUWE1cEIsR0FBRTJXO0dBQ2U7Ozs7T0E1RDlCa0Y7T0FDQUM7T0FDQUM7T0FpREE2TjtPQVFBRTtPQXhEQTdUO09BQ0FDO09BQ0F4VjtPQUVBUTtPQURBQztPQUVBNmE7T0FFQXlOO09BYUFsQjtPQUpBcFQ7T0FvQkF6TDtPQUdBZ2dCO09BRkF2Z0I7T0FLQTdJO09BQ0FHOzs7RXhCekZMOzs7Ozs7Ozs7Ozs7Ozs7OztJeUJ5Q0tvYjtJQUNBQztJQUNBQztZQUNBOUYsS0FBS2pXLEdBQUksT0FBSkEsVUFBWTtZQUNqQmtXLEtBQUtsVyxHQUFJLE9BQUpBLFVBQVk7WUFDakJVLElBQUlWLEdBQUksT0FBRyxrQkFBUEEsb0JBQWdDO0dBRTFCO0lBRFYrcEI7SUFDQTVvQixnQkFEQTRvQjtJQUVBN29CLFVBREFDO1lBRUE2YSxPQUFPaGMsR0FBSSxPQUFKQSxPQUFrQjtPQUd2QndwQjtZQURGQyxnQkFFRXpwQjtJQUNGLFFBQUcsb0JBRERBLFdBQ3dCLGlCQUR4QkEsR0FEQXdwQjtLQUdBLFdBRkF4cEI7SUFJQTtHQUFJO1lBR05tVixVQUFVblYsR0FBSSxxQ0FBSkEsR0FBaUI7WUFJM0J1b0IsY0FBY25vQjtJQUVoQixJQUFJLGNBQUssMkJBRk9BLEtBRVo7Ozs4QkFDYzs7O0dBQUk7T0FJcEJzSjtZQUNBUCxNQUFPNUksR0FBT0MsR0FBUSw4QkFBZkQsR0FBT0MsV0FBdUI7WUFFckNrcEIsaUJBQWlCMXBCLEdBQUUycEI7SUFDckIsT0FBd0IsaUJBREwzcEIsSUEzQmpCbUIsYUEyQm1Cd29CLElBM0JuQnhvQjtHQTRCcUM7WUFFckNiLElBQUlDLEdBQUVDLEdBQVEsT0FBRyx1QkFBYkQsR0FBRUMsS0FBRkQsSUFBRUMsRUFBK0I7WUFDckNDLElBQUlGLEdBQUVDLEdBQVEsT0FBRyxrQkFBYkQsR0FBRUMsS0FBRkQsSUFBRUMsRUFBK0I7WUFLckNvcEIsYUFBYTVwQixHQUFFMlc7SUFDakIsR0FBRyxzQkFEY0E7S0FFWixZQVhIK1MsaUJBU2ExcEIsR0FBRTJXLEtBMUNmbUYsTUFEQUQ7SUErQ1EsSUFBSmdPLElBQWUsaUJBSk43cEIsYUFBRTJXLFNBS1hsWCxJQUxTTyxJQUtDLFNBRFY2cEIsR0FKV2xUO0lBTVosWUFmSCtTLGlCQWNJanFCLEdBTFdrWCxLQUlYa1Q7R0FFMkM7WUFFL0NDLGFBQWE5cEIsR0FBRTJXO0lBQ2pCLE9BRGUzVyxJQUNULFNBVEo0cEIsYUFRYTVwQixHQUFFMlc7R0FDZTs7OztPQXBEOUJrRjtPQUNBQztPQUNBQztPQXlDQTZOO09BUUFFO09BaERBN1Q7T0FDQUM7T0FDQXhWO09BQ0FxcEI7T0FFQTdvQjtPQURBQztPQUVBNmE7T0FFQXlOO09BYUFsQjtPQUpBcFQ7T0FXQXpMO09BR0FnZ0I7T0FGQXZnQjtPQUtBN0k7T0FDQUc7OztFekIvRUw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0kwQnlCS3VwQjtJQW1IQUM7Ozs7OztZQTVFQUMsT0FBT0MsS0FBSUMsT0FBTXRsQjtJQUNuQjtLQUFJMkgsU0FBUyx3QkFESjBkLEtBQUlDLE9BQU10bEI7Z0JBQ2YySDtpQkFEZTNILFlBdkNqQmtsQjs7S0F1Q2lCbGxCOzs7O0lBT25CLE9BTkkySDtHQU1FO1lBR0o0ZCxXQUFXRixLQUFJQyxPQUFNdGxCO0lBQ3ZCO0tBQUkySCxTQUFTLDRCQURBMGQsS0FBSUMsT0FBTXRsQjtnQkFDbkIySDtpQkFEbUIzSCxZQWpEckJrbEI7O0tBaURxQmxsQjs7OztJQU92QixPQU5JMkg7R0FNRTtZQWtFSjZkLGNBQWdCQyxLQUF1QkM7SUFDekMsR0FEa0JEO1NBQWlCRSxNQUFqQkYseUJBQWlCRTs7U0FBakJDO0lBQ2xCO1dBRGtCQSxpQkFQaEJULFdBbkhBRDtXQTBIZ0JVLGlCQVBoQlQsV0FuSEFEO0tBMERvQlcsYUFpRU87O0tBUWpCOzs7Ozs7O0tBUEc7SUFEZjtxQkFqRWlDQzthQUUvQjtjQURFQztnQkFDRjtrQkE4RHVDTCxVQWhFbkJHO2NBR2xCM3FCLFFBRkE2cUIsZUFENkJEOytEQUc3QjVxQjs7a0JBSDZCNHFCLDZCQUc3QjVxQjt3Q0FINkI0cUI7ZUFpQjFCOztpQkFqQjBCQTs7Ozs7O2VBNEIzQjtnQkFERUU7a0JBQ0Y7OzZDQTVCMkJGOztrQkEyQnpCRSxXQTNCeUJGLDZCQUc3QjVxQjtnQkEyQks7ZUFDUSxJQUFUK3FCLFNBQVMsa0JBSlREO2VBTUo7O2lCQWpDNkJGOztpQkErQnpCRzs7aUJBL0J5Qkg7MkJBK0J6Qkc7O2tCQVNGM3FCLElBeEMyQndxQjtzQ0F3QzNCeHFCO2NBeEMyQndxQix3QkF3QzNCeHFCO2NBeEMyQndxQjtzQ0F3QzNCeHFCO2NBeEMyQndxQix3QkF3QzNCeHFCO2tCQU1BME0sSUE5QzJCOGQsa0JBOEMzQjlkOzttQkFDSjVLOztnQkFDVSxJQUFKM0MscUJBRkZ1TixHQUNKNUs7d0JBQ00zQyxHQUVGLGlCQUpBdU4sR0FDSjVLLFlBQ00zQyxJQVJGYTtnQkFPSjs7Ozs7O2FBT0Y7aUNBdERzQnVxQixlQUFXQyxzQkFHN0I1cUI7YUFINkI0cUIsd0JBRzdCNXFCOzs7Ozs7Ozs7Ozs7OztHQTBFSDtZQUVDZ3JCLGFBQWNOLGdCQUFldG1CO0lBQy9CLE9BaEJFa21CO2FBZWNJO3NCQUNtQjVsQixLQUFJOUUsR0FBSyw4QkFEYm9FLElBQ0lVLFFBQUk5RSxHQUFxQjtHQUFDO1lBRTNEcWxCLFlBQWNrRixLQUF1Qm5xQjtJQUN2QyxHQURnQm1xQjtTQUFpQkUsTUFBakJGLHlCQUFpQkU7O1NBQWpCQztJQUNoQjtXQURnQkEsaUJBekJkVCxXQW5IQUQ7V0E0SWNVLGlCQXpCZFQsV0FuSEFEOztLQXNKVTs7Ozs7O3lDQVYyQjVwQjtLQUV4QixrQ0FGd0JBO0lBQ3ZDO3FCQUFxQndxQixnQ0FBd0M7Ozs7Ozs7Ozs7OztHQWE1RDtZQUVDSyxhQUFhTCxRQUFPTTtJQUFQTixnQ0FBT007SUFBUE4sWUFBT007O0dBRWlCO1lBRXJDQyxhQUFhUCxRQUFPUTtJQUN0QixVQURlUjtxQkFBT1E7O0dBQ3lDO1lBRTdEVixlQUFlRSxRQUFTLE9BQVRBLGVBbktmWixrQkFtS3NEO1lBRXREcUIsT0FBT1Q7SUFDVCxJQUFJbG5CLE1BREtrbkI7SUFFVCxtQ0FGU0Esc0JBQ0xsbkI7R0FDdUQ7WUFFekQ0bkIsV0FBV1YsUUFBT3BELElBQUdDO0lBQ3ZCLElBQUkvakIsTUFEbUIrakIsS0FBSEQ7SUFFcEIsbUNBRmFvRCxXQUFPcEQsSUFDaEI5akI7R0FDcUM7WUFFdkM2bkIsZUFBZVgsUUFBT3BELElBQUdDO0lBQzNCLE9BRHdCRCxJQUlmO1FBRkg5akIsTUFGcUIrakIsS0FBSEQ7SUFHdEIsV0FBSyw0QkFIVW9ELFdBQU9wRCxJQUVsQjlqQjtHQUlIO1lBRUQ4bkIsZ0JBQWdCWixRQUFPMW9CLEdBQUksc0JBQVgwb0IsV0FBTzFvQixHQUFpQztZQUV4RHVwQixvQkFBb0JiLFFBQU8xb0I7SUFDN0IsWUFENkJBLFFBRXRCLGVBRmUwb0IsV0FBTzFvQjtHQUl2QjtZQUdKd3BCLFlBQVlkLFFBQU8xb0I7SUFDckIsc0JBRGMwb0IsdUJBQU8xb0I7R0FDaUM7WUFFcER5cEIsYUFBYWYsUUFBUyxPQUFUQSxjQUFvQztZQUNqRGdCLFdBQVdoQixRQUFTLE9BQVRBLGNBQW1DO1lBRTlDaUIsZUFBZWpCLFFBQVMsT0FBVEEsV0FBMkI7WUFDMUNrQixhQUFhbEIsUUFBUyxPQUFUQSxXQUEwQjtZQUV2Q21CLFNBQVNuQjtJQUNYO0tBQUlvQixNQURPcEI7V0FDUG9CLFFBeE1GaEM7OztXQXVNU1ksaUJBQ1BvQjs7O0dBTUM7WUFNSEMsWUFBWXRHOzs7UUFHVnFHLE1BSFVyRztPQUdWcUcsUUF2TkZoQztLQW9OWXJFLGFBR1ZxRyxRQXBHRi9CO0lBaUdZdEU7O0dBTVM7Ozs7T0ExTnJCcUU7T0F5SUFnQjtPQUdBM0Y7T0FsQkFpRjtPQWtDQVc7T0FJQUU7T0FHQVQ7T0FFQVc7T0F5QkFLO09BR0FDO09BQ0FDO09BRUFDO09BQ0FDO09BRUFDO09BYUFFO09BM0NBWDtPQUlBQztPQVFBQztPQUVBQztPQWhKQXZCO09BVUFHOzs7RTFCMUVMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCNEJnRlNzRTtTQUFTLFlBQ0E7YUFDSHZGO1NBQU0sT0FBTkE7UUFBTztpQkFPYjVkLE9BQU92SixHQUFFMUMsR0FBRUU7U0FDYixHQURTd0MsT0FDZ0NtbkIsSUFEaENubkIsTUFDTDJzQixLQUFxQ3hGLFlBQXJDd0Y7U0FDSixHQUZhbnZCLE9BRTRCb3ZCLE1BRjVCcHZCLE1BRVRxdkIsS0FBcUNELGNBQXJDQzt5QkFEQUYsa0JBQ0FFO1NBQ0EsV0FISzdzQixHQUFFMUMsR0FBRUU7UUFHeUM7aUJBT3BEc3ZCLElBQUk5c0IsR0FBRTFDLEdBQUVFO1NBQ1YsR0FETXdDLE9BQ21DbW5CLElBRG5Dbm5CLE1BQ0Yyc0IsS0FBcUN4RixZQUFyQ3dGO1NBQ0osR0FGVW52QixPQUUrQm92QixNQUYvQnB2QixNQUVOcXZCLEtBQXFDRCxjQUFyQ0M7MkJBREFGO2VBREUzc0IsR0FLTztVQUVTLElBREMrc0IsS0FOakIvc0IsTUFNV2d0QixLQU5YaHRCLE1BTUtpdEIsS0FOTGp0QixNQU9nQixNQTFCcEIwc0IsT0F5QnFCSztvQkF6QnJCTCxPQXlCU08sS0FFVSxPQWxCbkIxakIsT0FnQlMwakIsSUFBTUQsSUFoQmZ6akIsT0FnQnFCd2pCLElBTmZ6dkIsR0FBRUU7ZUFNYXV2QixJQUtKO1VBRXVCLElBRFhHLE1BTlJILE9BTUNJLE1BTkRKLE9BTU5LLE1BTk1MLE9BT21CLE1BdkJ4Q3hqQixPQXNCNkIyakIsS0FadkI1dkIsR0FBRUU7VUFhZ0MsT0F2QnhDK0wsY0FnQlMwakIsSUFBTUQsSUFNQUksTUFBT0Q7O2FBWHBCUixlQUNBRTswQkFEQUYsa0JBQ0FFO1VBMEJFLFdBNUJBN3NCLEdBQUUxQyxHQUFFRTs7aUJBaUJHO1NBRVMsSUFEQzZ2QixLQWxCYjd2QixNQWtCTzh2QixLQWxCUDl2QixNQWtCQyt2QixLQWxCRC92QixNQW1CWSxNQXRDcEJrdkIsT0FxQ1NhO21CQXJDVGIsT0FxQ3FCVyxLQUVmLE9BOUJOOWpCLGNBVUl2SixHQUFFMUMsR0FrQkdpd0IsS0FBTUQsSUFBTUQ7Y0FBWkUsSUFLUTtTQUVxQixJQURUQyxNQU5wQkQsT0FNYUUsTUFOYkYsT0FNTUcsTUFOTkgsT0FPNkIsTUFuQ3RDaGtCLE9Ba0M2QmlrQixLQU5kRixJQUFNRDtTQU9pQixPQW5DdEM5akIsY0FVSXZKLEdBQUUxQyxHQXdCU293QixNQUFPRDtRQUlnQztpQkFJbERFLElBQUlydkIsR0FFUnVNO1M1QnJJVCxLNEJxSVNBLEdBRGEsY0FETHZNO1NBR0UsSUFEQ2QsSUFBWHFOLE1BQVF2TixJQUFSdU4sTUFBSzdLLElBQUw2SyxNQUNNOUosSUFBSSxtQkFIRnpDLEdBRUFoQjtTQUVOLFNBREl5RCxHQUNVLE9BRmhCOEo7aUJBQ005SixHQU1PLElBQUxzc0IsS0FUSk0sSUFBSXJ2QixHQUVHZCxpQkFPSDZ2QixLQVBSeGlCLElBbENBaWlCLElBa0NLOXNCLEdBQUcxQyxHQU9BK3ZCO1NBSEssSUFBTEosS0FOSlUsSUFBSXJ2QixHQUVIMEI7c0JBSUdpdEIsS0FKUnBpQixJQWxDQWlpQixJQXNDUUcsSUFKQTN2QixHQUFHRTs7aUJBVVhvd0IsVUFBVXR2QixHQUFJLGNBQUpBLFNBQW9DO2lCQVMxQ3V2QixnQkFBZ0J2dkI7UzVCeEo3QixZNEJ5SmtCLE9BVlRzdkIsVUFTb0J0dkI7YUFFUmQsY0FBSEYsY0FBSDBDO1NBQ04sT0F4REE4c0IsSUFxREllLGdCQUFnQnZ2QixHQUVkMEIsSUFBRzFDLEdBQUdFOztpQkFHUnN3QixnQkFBZ0J4dkI7UzVCN0o3QixZNEI4SmtCLE9BZlRzdkIsVUFjb0J0dkI7YUFFUmQsY0FBSEYsY0FBSDBDO1NBQ0UsT0E3RFI4c0IsSUE0RE05c0IsR0FBRzFDLEdBRkx3d0IsZ0JBQWdCeHZCLEdBRVJkOztpQkFNUnFVLEtBQUs3UixHQUFFMUMsR0FBRUU7U0FDZixLQURXd0MsR0FFSyxPQWZWNnRCLGdCQWFPdndCLEdBQUVFO2lCQUdDLE9BWFZzd0IsZ0JBUU94d0IsR0FBRjBDOztVQUkrQyt0QixLQUozQ3Z3QjtVQUlxQzZ2QixLQUpyQzd2QjtVQUkrQjh2QixLQUovQjl2QjtVQUl5Qit2QixLQUp6Qi92QjtVQUlhd3dCLEtBSmpCaHVCO1VBSVcrc0IsS0FKWC9zQjtVQUlLZ3RCLEtBSkxodEI7VUFJRGl0QixLQUpDanRCO2lCQUkrQyt0QixjQUE5QkM7bUJBdEUxQmxCLElBc0VRRyxJQUFNRCxJQUpWbmIsS0FJZ0JrYixJQUpUenZCLEdBQUVFO29CQUlhd3dCOzs7cUJBQThCRDtxQkF0RXhEakIsSUFrRUlqYixLQUFLN1IsR0FBRTFDLEdBSTJCaXdCLEtBQU1ELElBQU1EO3FCQWhGbEQ5akIsT0E0RVN2SixHQUFFMUMsR0FBRUU7UUFPQztpQkFJVnl3QjtTQUFVOzt3QkFDTDtjQUVKanVCOztjQURTMUM7VUFBTSxPQUFOQTs7UUFDTTtpQkFFaEI0d0I7U0FBYzs7d0JBQ1Q7Y0FFSmx1Qjs7Y0FEUzFDO1VBQU0sV0FBTkE7O1FBQ1U7aUJBRXBCNndCO1NBQVU7O3dCQUNMOzZCQUVKM3dCO2NBREFGO1VBQWUsT0FBZkE7O1FBQ2U7aUJBRWhCOHdCO1NBQWM7O3dCQUNUOzZCQUVKNXdCO2NBREFGO1VBQWUsV0FBZkE7O1FBQ21CO2lCQUlwQit3QjtTQUFpQixZQUNaO2FBRUpydUI7O2NBQU14QyxjQUFIRjtVQUFTLE9BdEdqQnd2QixJQW1HSXVCLGVBR0NydUIsSUFBRzFDLEdBQUdFOzthQURHOHdCO1NBQU0sT0FBTkE7UUFDNkI7aUJBZ0IzQ3hpQixPQUFPZ00sSUFBR0Y7U0FDWixLQURTRSxJQUVPLE9BRkpGO2tCQUdJLE9BSFBFO1NBSXdCLFVBdkIzQnVXLGVBbUJNelc7U0FJcUIsT0F4RDNCL0YsS0FvREdpRyxJQXpDSG1XLFFBeUNNclc7UUFJd0M7aUJBUTlDTCxNQUFNalo7UzVCck9uQixZNEJ1T1c7U0FFUTtVQURDZDtVQUFIRjtVQUFIMEM7VUFDQ2UsSUFBSSxtQkFKQXpDLEdBR0ZoQjtTQUVOLFNBREl5RCxHQUNVLFdBRlhmLE1BQU14QztpQkFDTHVEO1VBS21CO21CQVRyQndXLE1BQU1qWixHQUdDZDtXQU1RNnZCO1dBQU5rQjtXQUFKeEI7VUFBNkIsV0F6RWxDbGIsS0FtRUM3UixHQUFHMUMsR0FNQ3l2QixLQUFJd0IsTUFBTWxCOztTQUZNO29CQVByQjlWLE1BQU1qWixHQUdMMEI7VUFJY3V0QjtVQUFOaUI7VUFBSnZCO1NBQTZCLFdBQTdCQSxJQUFJdUIsUUF2RVQzYyxLQXVFZTBiLElBSlhqd0IsR0FBR0U7O1lBVVgyTjtpQkFFQXFCLGdCQUFXLHFCQUFtQztpQkFFMUMySixJQUFJN1g7Ozt3QkFDQztVQUVDO1dBRENkO1dBQUhGO1dBQUgwQztXQUNDZSxJQUFJLG1CQUhGekMsR0FFQWhCO3VCQUNGeUQ7O2NBREt1dEIsV0FDTHZ0QixJQURLdkQsSUFBTndDLGFBQU1zdUI7OztpQkFJUEcsT0FBT253QixHQUVYdU07UzVCOVBULEs0QjhQU0EsR0FEUztTQUVDLElBaEREK00sS0ErQ1QvTSxNQUFTdk4sSUFBVHVOLE1BL0NNaU4sS0ErQ05qTixNQUNNOUosSUFBSSxtQkFIQ3pDLEdBRUZoQjtTQUVQLFNBREl5RDtlQWhEQStXLElBRVEsT0FGTEY7bUJBR0ssT0FIUkU7VUFJd0IsVUFiMUJ1VyxlQVNLelc7VUFJcUIsT0FoSDlCa1YsSUE0R01oVixJQS9CRm1XLFFBK0JLclc7O2lCQWdESDdXO1VBUVMsSUFBTHNzQixLQVhOb0IsT0FBT253QixHQTdDRnNaO3dCQXdEQ3lWLEtBVFZ4aUIsSUEzSkFpaUIsSUE0R01oVixJQStDR3hhLEdBU0MrdkI7O1NBSkssSUFBTEosS0FQTndCLE9BQU9ud0IsR0E3Q0x3Wjt1QkFvREltVixLQUxWcGlCLElBM0pBaWlCLElBZ0tVRyxJQUxEM3ZCLEdBL0NBc2E7O2lCQTRETDhXLE1BQU10dkIsSUFBR0M7U0FDZixLQURZRCxJQUVLLE9BRkZDO2tCQUdFLE9BSExEOztVQUk4Q3lZLEtBSjNDeFk7VUFJcUNzdkIsS0FKckN0dkI7VUFJK0JpSSxLQUovQmpJO1VBSXlCRSxLQUp6QkY7VUFJYTBZLEtBSmhCM1k7VUFJVTBULEtBSlYxVDtVQUlJaUksS0FKSmpJO1VBSUZFLEtBSkVGO1lBSThDeVksTUFBOUJFO21CQUE4QkYsSUFFckMsT0E5SWY4VixJQTRJd0NybUIsSUFKbENsSTtVQU9jO21CQTdDcEJtWSxNQTBDVWxRLElBSkRoSTtXQU9LdXZCO1dBQVByWjtXQUNpQixNQVJ4Qm1aLE1BSWdCNWIsSUFHRjhiO1VBQ1UsT0E5R3hCL2MsS0FzR0E2YyxNQUlJcHZCLElBR0dpVyxPQUhHbE87O2tCQUFZMFEsSUFPUCxPQW5KZjRWLElBNElVdG1CLElBSkRoSTtTQVlXO29CQWxEcEJrWSxNQTBDd0NqUSxJQUpsQ2xJO1VBWVF5dkI7VUFBUHZaO1VBQ2lCLE1BYnhCb1osTUFZY0csTUFSZ0NGO1NBU3RCLE9Bbkh4QjljLEtBc0dBNmMsTUFZT3BaLE1BUjJCL1YsS0FBTStIO1FBVXJDO2lCQUVId25CLE1BQU0xdkIsSUFBR0M7U0FDZixLQURZRCxJQUVJO2NBRkRDLElBR0M7U0FFTjtVQURZeVQsS0FKVjFUO1VBSUlpSSxLQUpKakk7VUFJRkUsS0FKRUY7VUFLRixNQTNESm1ZLE1BMERVbFEsSUFKRGhJO1VBTVJFOztVQUd1QixJQURib3ZCLGFBQ2EsTUFUeEJHLE1BSWdCaGMsSUFJTDZiO1VBQ2EsT0EvSHhCOWMsS0FzSEFpZCxNQUlJeHZCLElBRUhDLEtBRlM4SDs7U0FHYSxJQURYdW5CLGVBQ1csTUFQdkJFLE1BSWdCaGMsSUFFSjhiO1NBQ1csT0F6RTNCOWlCLE9Ba0VJZ2pCLE1BSUl4dkIsSUFFSEM7UUFHb0M7aUJBVXJDd3ZCLFVBQVV6d0I7UzVCOVN2QixZNEJnVFcsOEJBQTRCLFNBQUs7U0FFekI7VUFEQ2Q7VUFBSEY7VUFBSDBDO1VBQ0NlLElBQUksbUJBSkl6QyxHQUdOaEI7U0FFTixTQURJeUQsR0FDVTtpQkFEVkE7VUFPSSxZQVhOZ3VCLFVBQVV6d0IsR0FHSGQ7c0JBU0k7Y0FDSzZ2QixlQUFKTjtVQUFXLFdBdEp2QmxiLEtBNElDN1IsR0FBRzFDLEdBVVF5dkIsS0FBSU07O1NBTlYsY0FQTjBCLFVBQVV6d0IsR0FHVDBCO3VCQUtVO2FBQ0t1dEIsaUJBQUpOO1NBQVc7aUJBQVhBO2lDQUFvQyxPQWxKaERwYixLQWtKcUQsV0FBckMwYixRQU5aandCLEdBQUdFLEdBTXlEOztpQkFNaEV3eEIsU0FBUzV2QixJQUFHQztTQUNsQixJQURleW1CLFdBR1lILE9BSFR0bUI7U0FDbEI7YUFEZXltQixRQUdZSDtlQUhaN1MsY0FHQ3pMLEtBSER5ZSxTQUdMeG1CLEtBSEt3bUI7dUJBR1lILE1BQ047V0FDTixZQXBCVG9KLFVBa0JVMW5CLElBQVdzZTt1QkFJVjtXQURXLElBQVBnSixlQUFKcHZCLGVBQVcsTUFOdEJ5dkIsU0FHSTF2QixJQUdPQztXQUFXO1dBQThCLElBTnhDOGxCLE9BTXdDLFdBQXJDc0osUUFOTjdJLFdBR1lILE9BSFROOzs7VUFFVzs7UUFLUDtpQkFFaEJ0SixLQUFLM2MsSUFBR0M7U0FDZCxLQURXRCxJQUVLO2NBRkZDLElBR0csT0FITkQ7U0FLRDtVQURZMFQsS0FKWDFUO1VBSUtpSSxLQUpMakk7VUFJREUsS0FKQ0Y7VUFLRCxNQXRHSm1ZLE1BcUdVbFEsSUFKRmhJO1VBTVBFOztVQUdxQixJQURYb3ZCLGFBQ1csTUFUdEI1UyxLQUlnQmpKLElBSUw2YjtVQUNXLE9BdEgxQjdpQixPQTZHSWlRLEtBSUl6YyxJQUVIQzs7U0FDc0IsSUFEWHF2QixlQUNXLE1BUHZCN1MsS0FJZ0JqSixJQUVKOGI7U0FDVyxPQXhLdkIvYyxLQWlLQWtLLEtBSUl6YyxJQUVIQyxLQUZTOEg7UUFLd0I7aUJBSWxDNG5CLFVBQVU5d0IsR0FBRTBJO1NBQ2xCLElBRGdCNkgsU0FBRWpFO1NBQ2xCO2VBRGdCaUUsS0FFTCxPQUZPakU7VUFHYTtXQUFsQmpOLElBSEdrUjtXQUdOcFIsSUFITW9SOztXQUFFZ1csVUFHUnBuQixHQUFHRSxHQUhLaU47V0FBRmlFO1dBQUVqRTs7UUFHNEI7aUJBYTVDaEQsUUFBUXJJLElBQUdDO1NBQ2I7VUFacUI2dkIsT0FMZkQsVUFnQk81dkI7VUFYSzh2QixPQUxaRixVQWdCSTd2QjtVQVhRK0g7VUFBR0M7U0FDbkI7ZUFEZ0JELFdBQUdDO21CQUlQO1VBRUY7V0FEc0Jnb0IsT0FMYmhvQjtXQUtTdW5CLEtBTFR2bkI7V0FLS0UsS0FMTEY7V0FLTGlvQixPQUxFbG9CO1dBS04yTCxLQUxNM0w7V0FLVkUsS0FMVUY7V0FNVnBHLElBQUksbUJBREpzRyxJQUFrQkM7VUFFdEIsU0FESXZHLEdBRUMsT0FGREE7VUFHK0I7V0FUbEJ1dUIsT0FMZkwsVUFVd0JOLElBQUlTO1dBTGhCRyxPQUxaTixVQVVNbmMsSUFBSXVjO1dBTEVsb0I7V0FBR0M7O1FBWTRCO2lCQUUvQ0YsTUFBTTlILElBQUdDLElBQ1gsYUFKRW9JLFFBR01ySSxJQUFHQyxZQUNNO2lCQUVYbXdCLE9BQU9wd0IsSUFBR0M7U0FDaEIsSUFEYXltQixXQUFHSDtTQUNoQjtlQURhRyxNQUdUO2VBSFlILE1BS1o7VUFFUTtXQURvQ2dKLEtBTmhDaEo7V0FNMEJyZSxLQU4xQnFlO1dBTW9CcG1CLEtBTnBCb21CO1dBQUg3UztXQU1HekwsS0FOSHllO1dBTUh4bUIsS0FOR3dtQjtXQU9ML2tCLElBQUksbUJBRElzRyxJQUEwQkM7VUFFdEMsU0FESXZHO1dBRUYsVUFUQXl1QixPQU1JbHdCLElBQTBCQztXQUc5QjtlQVRPdW1CLFdBQUdILE9BTWdDZ0o7OztrQkFDeEM1dEI7V0FNRixVQWJBeXVCLGNBTVVub0IsSUFOSHlMLFFBTW1DNmI7V0FPMUM7ZUFiTzdJLE9BTUh4bUI7OztVQUtKLFVBWEFrd0IsV0FNSWx3QixJQUFNK0gsV0FBb0I5SDtVQUs5QjtjQVhPdW1COztRQWFvRDtpQkFFM0QxWixLQUFLalA7Ozt3QkFDQTtjQUNFSyxnQkFBSEYsZ0JBQUgwQztVQUZEb00sS0FBS2pQLEdBRUo2QztVQUFzQixXQUZsQjdDLEdBRURHO3dCQUFHRTs7O2lCQUVQeUosS0FBSzlKLEdBQUVnQixHQUFFNEU7U0FDZixJQURhMkwsU0FBRXpMO1NBQ2Y7ZUFEYXlMLEtBRUYsT0FGSXpMO1VBR2E7V0FIZnpGO1dBR0hGLElBSEdvUjtXQUdOMU8sSUFITTBPO1dBQUUzQixTQUdhLFdBSGpCNVAsR0FHREcsR0FISjJKLEtBQUs5SixHQUdKNkMsR0FIUWlEO1dBQUZ5TDtXQUFFekw7O1FBR2tDO2lCQUUzQytKLFFBQVFDOzs7d0JBQ0g7VUFDUTtXQUFOelA7V0FBSEY7V0FBSDBDO1dBQVksaUJBRkxpTixHQUVKM1A7VUFBUztXQUFPLFVBRnBCMFAsUUFBUUMsR0FFUGpOO1dBQW1CLHNCQUFieEM7Ozs7O1VBQWE7OztpQkFFcEIwUCxPQUFPRDs7O3dCQUNGO1VBQ1E7V0FBTnpQO1dBQUhGO1dBQUgwQztXQUFZLGlCQUZOaU4sR0FFSDNQO1VBQVM7OztXQUFPLFVBRnBCNFAsT0FBT0QsR0FFTmpOO1dBQW1CLHdCQUFieEM7OztVQUFNOzs7aUJBRWJxTyxPQUFPb0IsR0FFWHBDO1M1QjNZVCxLNEIyWVNBLEdBRFM7U0FHRTtVQUZDck4sSUFBWnFOO1VBQVN2TixJQUFUdU47VUFBTTdLLElBQU42SztVQUVNb0ssTUFKRnBKLE9BQU9vQixHQUVMak47VUFHQXl2QixLQUFLLFdBTEF4aUIsR0FFRjNQO1VBSUhneEIsTUFORnppQixPQUFPb0IsR0FFQ3pQO1NBS1YsS0FGSWl5QixJQUlDLE9BekxQM2pCLE9Bb0xNbUosS0FFQXFaO1lBSkF0dUIsTUFFQWlWLE9BRk16WCxNQUlOOHdCLEtBRXFCLE9BTjNCempCO1NBTWtDLE9BNU85QmdILEtBd09Fb0QsS0FGRzNYLEdBSUhneEI7O2lCQUtGOWQsVUFBVXZEO1M1QnBadkIsWTRCcVprQjtTQUdRO1VBRk56UDtVQUFIRjtVQUFIMEM7VUFFWSxRQUpid1EsVUFBVXZELEdBRVRqTjtVQUVNMHZCO1VBQUpDO1VBQ0RGLEtBQUssV0FMR3hpQixHQUVOM1A7VUFJUyxVQU5ia1QsVUFBVXZELEdBRUh6UDtVQUlBb3lCO1VBQUpDO1NBQ0wsR0FGSUosSUFHZ0IsVUFuTXRCM2pCLE9BK0xXNGpCLElBRUFFLEtBRUosV0F2UEgvZCxLQW1QRzhkLElBRkNyeUIsR0FJRHV5QjtTQUdlLFVBeFBsQmhlLEtBbVBPNmQsSUFGSHB5QixHQUlHc3lCO1NBR0osV0FwTVA5akIsT0ErTE82akIsSUFFQUU7O2lCQUtIQztTQUFXLFlBQ047U0FDc0IsSUFBdkJ0eUIsY0FBSHdDLGNBQTBCLE1BRjNCOHZCLFNBRUl0eUI7aUJBRkpzeUIsU0FFQzl2QjtRQUFvQztpQkFFckMrdkI7YUFBYTlzQjs7d0JBQ1IsT0FEUUE7VUFFYTtXQUFuQnpGO1dBQUhGO1dBQUgwQztXQUF5QixhQUF0QjFDLEdBRkp5eUIsYUFBYTlzQixRQUVOekY7V0FGTXlGO3FCQUVaakQ7OztpQkFFTGd3QixTQUFTN3hCLEdBQ1gsT0FMTTR4QixnQkFJSzV4QixHQUNNO2lCQU1YZ1AsS0FBSzdPOzs7d0JBQ0E7VUFFQztXQURDZDtXQUFIRjtXQUFIMEM7V0FDQ2UsSUFBSSxtQkFIRHpDLEdBRURoQjtVQUVOLFNBREl5RCxHQUNVLE9BRlJ6RDtjQUFHZ3hCLFdBQ0x2dEIsSUFES3ZELElBQU53QyxhQUFNc3VCOzs7aUJBY1AyQixXQVRrQjl5Qjs7O3dCQVdwQjtjQUNTbXhCLGtCQUFINEIsbUJBQUhqYjtVQUNBLGdCQWJpQjlYLEdBWWQreUIscUJBQUc1QjtjQVpRcmMsS0FZWGllLGNBQUhqYjs7dUJBVkgsT0FGaUJoRDtlQUdSelUsY0FBSDJ5QixpQkFBSG53QjtXQUNBLGNBSmlCN0MsR0FHZGd6QixXQUhXbGUsS0FHWGtlLGNBQUhud0I7dUJBQU14Qzs7OztpQkF3QlA0eUIsZUFUc0JqekI7Ozt3QkFXeEI7Y0FDU214QixrQkFBSDRCLG1CQUFIamI7VUFDQSxnQkFicUI5WCxHQVlsQit5QixxQkFBRzVCO2NBWllyYyxLQVlmaWUsY0FBSGpiOzt1QkFWSCxXQUZxQmhEO2VBR1p6VSxjQUFIMnlCLGlCQUFIbndCO1dBQ0EsY0FKcUI3QyxHQUdsQmd6QixXQUhlbGUsS0FHZmtlLGNBQUhud0I7dUJBQU14Qzs7OztpQkF3QlA2eUIsVUFUaUJsekI7Ozt3QkFXbkI7Y0FDU214QixrQkFBSDRCLG1CQUFIamI7VUFDQSxnQkFiZ0I5WCxHQVliK3lCLHFCQUFIamI7Y0FaYWhELEtBWVZpZSxjQUFHNUI7O3VCQVZULE9BRmdCcmM7ZUFHUHpVLGNBQUgyeUIsaUJBQUhud0I7V0FDQSxjQUpnQjdDLEdBR2JnekIsV0FIVWxlLEtBR1ZrZSxjQUFHM3lCO3VCQUFOd0M7Ozs7aUJBd0JEc3dCLGNBVHFCbnpCOzs7d0JBV3ZCO2NBQ1NteEIsa0JBQUg0QixtQkFBSGpiO1VBQ0EsZ0JBYm9COVgsR0FZakIreUIscUJBQUhqYjtjQVppQmhELEtBWWRpZSxjQUFHNUI7O3VCQVZULFdBRm9CcmM7ZUFHWHpVLGNBQUgyeUIsaUJBQUhud0I7V0FDQSxjQUpvQjdDLEdBR2pCZ3pCLFdBSGNsZSxLQUdka2UsY0FBRzN5Qjt1QkFBTndDOzs7O2lCQWVEOFcsU0FBU3hZOzs7d0JBQ0o7VUFFQztXQURDZDtXQUFIRjtXQUFIMEM7V0FDQ2UsSUFBSSxtQkFIR3pDLEdBRUxoQjtVQUVOLFNBREl5RCxHQUNVLFdBRlJ6RDtjQUFHZ3hCLFdBQ0x2dEIsSUFES3ZELElBQU53QyxhQUFNc3VCOzs7aUJBS1hpQyxTQUFTdndCLEdBQUUxQyxHQUFFRTtTQUlmO2tCQUpXd0M7VUFJa0IsVUE5VXZCbXVCLFFBMFVLbnVCO1VBSU0sZ0NBSkoxQzs7OzttQkFBRUU7V0FLZ0IsVUF6VnpCeXdCLFFBb1ZTendCO1dBS0UsMkJBTEpGOzt5QkFNUixPQXJXQ3VVLEtBK1ZLN1IsR0FBRTFDLEdBQUVFOztTQU9GLE9BaFFQa3hCLE1BeVBLMXVCLEdBallMMnRCLElBaVlPcndCLEdBQUVFO1FBT087aUJBRWhCdUosSUFBSTVKLEdBRVIwTjtTNUIvZ0JULEs0QitnQlNBLEdBRFM7U0FHQztVQUZDck4sSUFBWHFOO1VBQVF2TixJQUFSdU47VUFBSzdLLElBQUw2SztVQUVLb0ssTUFKRGxPLElBQUk1SixHQUVINkM7VUFHQWdILE1BQUssV0FMRjdKLEdBRUFHO1VBSUhneEIsTUFORHZuQixJQUFJNUosR0FFR0s7WUFBTndDLE1BRUFpVixPQUZHM1gsTUFHSDBKLE9BSE14SixNQUlOOHdCLEtBQ2tDLE9BTHZDempCO1NBTU0sT0FqQk4wbEIsU0FhS3RiLEtBQ0FqTyxLQUNBc25COztpQkFVRDNpQixXQUFXeE8sR0FFZjBOO1M1Qi9oQlQsSzRCK2hCU0EsR0FEUztTQUdDO1VBRkNyTixJQUFYcU47VUFBUXZOLElBQVJ1TjtVQUFLN0ssSUFBTDZLO1VBUldpTixLQU1Qbk0sV0FBV3hPLEdBRVY2QztVQUdBZ0gsTUFBSyxXQUxLN0osR0FFUEc7VUFSTXNhLEtBTVZqTSxXQUFXeE8sR0FFSks7U0FLVixHQUZJd0o7Y0FHS3dwQixNQUhMeHBCO2FBSEFoSCxNQVJNOFgsTUFRSHhhLE1BTUVrekIsT0FOQ2h6QixNQVJHb2EsSUFlOEIsT0FQNUMvTTtVQVFXLE9BbkNYMGxCLFNBbUJXelksSUFjRDBZLEtBZEk1WTs7Y0FBSEUsSUFFRyxPQUZBRjtrQkFHQSxPQUhIRTtTQUl3QixVQXJWL0J1VyxlQWlWVXpXO1NBSXFCLE9BdkJuQzJZLFNBbUJXelksSUF2V1BtVyxRQXVXVXJXOztpQkEwQ2RpTSxRQUFRN2pCO1NBQ1YsS0FEVUEsVUEvVVJtTDttQkErVVFuTCxNQUdQeXdCLEtBSE96d0I7bUJBR0EsT0FyYlI0dEIsVUFxYkM2QzsyQkFDSXRZO21CQUFjLE9BbGNmd1YsSUFrY0N4VixJQXRiTHlWLFVBcWJDNkM7MkJBRVF2WTttQkFBYyxPQW5jbkJ5VixJQW1jS3pWLElBbmNMeVYsSUFrY0N4VixJQXRiTHlWLFVBcWJDNkM7MkJBR1lwWTttQkFBYyxPQXBjdkJzVixJQW9jU3RWLElBcGNUc1YsSUFtY0t6VixJQW5jTHlWLElBa2NDeFYsSUF0Ykx5VixVQXFiQzZDOztVQUttQjtXQTdCTHhiLE1BNkJLLG9DQVJaalY7V0FwQkZrYTtzQkFBSW5jLEdBQUVpQztjQUNaLFFBRFVqQzs7O2tCQUVBLGNBRkVpQzs7O3VCQUdEMHdCLE1BSEMxd0IsTUFHUHl3QixLQUhPendCO21CQUdJLGtCQUFYeXdCLFdBQU1DOzs7O3FCQUhDMXdCOzs7d0JBSUsyd0Isa0JBQU54WSxpQkFBTnlZLE9BSk81d0I7b0JBS1Isc0JBREM0d0IsYUFBTXpZLFdBQU13WTs7Ozs7cUJBSkwzd0I7Ozs7OztzQkFNVzZ3QjtzQkFBTjNZO3NCQUFOSztzQkFBTnVZLE9BTk85d0I7cUJBT1I7d0NBREM4d0IsYUFBTXZZLGFBQU1MOzZCQUFNMlk7Ozs7O2NBS1A7ZUFEVkUsS0FWSWh6QjtlQVdNLFFBWFZtYyxJQVVBNlcsSUFWTS93QjtlQVdBaVY7ZUFBTjNPO2NBQ0osS0FEVTJPO2VBRUY7Y0FFUztlQURSRSxNQUhDRjtlQUdSK2IsTUFIUS9iO2VBSU8sVUFmYmlGLEtBQUluYyxJQVVKZ3pCLGlCQUlLNWI7ZUFDSThiO2VBQVAxcUI7Y0FDSixXQXBlSmdELE9BK2RNakQsTUFHRjBxQixLQUNJenFCLFFBQU8wcUI7YUFDYTtVQUUxQixPQWxCSS9XLElBa0JDLDJCQW5CUWpGOzthQTRCRWljO1NBQWMsT0FyYzNCdkQsSUFxY2F1RCxJQXJjYnZELElBb2NTdFYsSUFwY1RzVixJQW1jS3pWLElBbmNMeVYsSUFrY0N4VixJQXRiTHlWLFVBcWJDNkM7UUFLaUQ7aUJBRWxEVSxRQUFRbHhCLEdBQUV5bkI7c0JBQ092cEIsR0FBRUcsR0FBSyxPQXpjcEJxdkIsSUF5Y2VydkIsR0FBRkgsR0FBYztTQUFqQyxzQ0FEWXVwQixHQUFGem5CO1FBQzRCO2lCQUVwQ3daLE9BQU94WixHQUFJLE9BSFhreEIsUUFHT2x4QixHQTVWUGtMLE9BNFYwQjtpQkFFdEJpbUIsWUFBYXJ3QjtTQUFPLEtBQVBBLEdBQ1Y7U0FDd0MsSUFBbkM1SCxPQUZLNEgsTUFFUjhKLElBRlE5SixNQUVYekMsSUFGV3lDLE1BRThCLE1BL1AzQ2t1QixVQStQS3BrQixHQUFHMVI7U0FBUyxXQUFmbUYsaUI1QmxsQmYsTzRCZ2xCYTh5QjtRQUU4RDtpQkFFbEVoZixPQUFPclI7U0FBaUIsVUFqUXBCa3VCLFVBaVFHbHVCO1NBQWlCLHFCNUJwbEJqQyxPNEJnbEJhcXdCO1FBSXFDO2lCQUVyQ0MsVUFBVWx6QixHQUFFMEk7U0FDbEIsSUFEZ0I2SCxTQUFFakU7U0FDbEI7ZUFEZ0JpRSxLQUVMLE9BRk9qRTtVQUdhO1dBSGZqTjtXQUdORixJQUhNb1I7V0FHVDFPLElBSFMwTztXQUFFZ1csVUFHUnBuQixHQUFIMEMsR0FIV3lLO1dBQUZpRTtXQUFFakU7O1FBRzRCO2lCQUV4QzZtQixnQkFBaUJ2d0I7U0FBTyxLQUFQQSxHQUNkO1NBQzRDLElBQXZDNUgsT0FGUzRILE1BRVo4SixJQUZZOUosTUFFZnpDLElBRmV5QyxNQUU4QixNQVAvQ3N3QixVQU9LeG1CLEdBQUcxUjtTQUFTLFdBQWZtRixpQjVCN2xCZixPNEIybEJhZ3pCO1FBRWtFO2lCQUV0RUMsV0FBV3h3QjtTQUFxQixVQVQ1QnN3QixVQVNPdHdCO1NBQXFCLHFCNUIvbEJ6QyxPNEIybEJhdXdCO1FBSTZDO2lCQUVqREUsWUFDVUMsS0FBSXR6QjtTQUFoQixJQUFnQnVRLFNBQUUzTjtTQUFJO2FBQU4yTjtXQUdFO1lBSEZsUjtZQUVBRixJQUZBb1I7O1lBS04zUSxJQUZRLG1CQURGVCxHQUZKbTBCO29CQUtGMXpCO3VCQUNlLElBTlA4YSxVQUVGdmIsR0FGQUUsR0FBRXVELElBQUYyTixTQUFFM047Z0JBQUYyTjs7O3lCQUVBcFIsR0FGQUUsR0FBRXVEOzs7O1VBU0wscUI1QjNtQnBCLE80QmdsQmFxd0I7O1FBMkJzQjs7Z0JBelgxQmptQjtnQkFFQXFCO2dCQUVJMko7Z0JBbkhBd1g7Z0JBWUpDO2dCQTZHSWE7Z0JBZUFDO2dCQWdCQUk7Z0JBa0NBRTtnQkFTQWpUO2dCQTZCSnRVO2dCQUdBUDtnQkFHSXNvQjtnQkFlQXBqQjtnQkFxSkFyRjtnQkFqSkFFO2dCQUtBK0Y7Z0JBSUFFO2dCQUlBckI7Z0JBb0pBRjtnQkF6SUE2RTtnQkFXQXNmO2dCQVFKRTtnQkF2UEkvQjtnQkFLQUM7Z0JBS0FDO2dCQUtBQztnQkFmQUg7Z0JBS0FDO2dCQWdEQTNXO2dCQXlNQXBLO2dCQStFQTJKO2dCQS9EQW1aO2dCQWtCQUc7Z0JBa0JBQztnQkFrQkFDO2dCQTZFSnpNO2dCQWdDQTJOO2dCQWJBcGY7Z0JBV0FtZjtnQkFwQkFKO2dCQUdBMVg7Ozs7RTVCOWtCVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCNkI2RVNpVDtTQUFTLFlBQ0E7YUFDSHZGO1NBQU0sT0FBTkE7UUFBTztpQkFFYjVkLE9BQU92SixHQUFFMUIsR0FBRW9XLEdBQUVsWDtTQUNmO1VBQUltdkIsS0FMRkQsT0FJTzFzQjtVQUNhNnNCLEtBTHBCSCxPQUlhbHZCO2dCQUNPcXZCLE1BQWxCRixrQkFBa0JFO1NBQ2xCLFdBRks3c0IsR0FBRTFCLEdBQUVvVyxHQUFFbFg7UUFFNEM7aUJBRXpEb3dCLFVBQVV0dkIsR0FBRW9XLEdBQUksY0FBTnBXLEdBQUVvVyxTQUF1QztpQkFFbkRvWSxJQUFJOXNCLEdBQUUxQixHQUFFb1csR0FBRWxYO1NBQ1osR0FETXdDLE9BQ21DbW5CLElBRG5Dbm5CLE1BQ0Yyc0IsS0FBcUN4RixZQUFyQ3dGO1NBQ0osR0FGWW52QixPQUU2Qm92QixNQUY3QnB2QixNQUVScXZCLEtBQXFDRCxjQUFyQ0M7MkJBREFGO2VBREUzc0IsR0FLTztVQUVTLElBRE8rc0IsS0FOdkIvc0IsTUFNaUIweEIsS0FOakIxeEIsTUFNV2d0QixLQU5YaHRCLE1BTUtpdEIsS0FOTGp0QixNQU9nQixNQWpCcEIwc0IsT0FnQjJCSztvQkFoQjNCTCxPQWdCU087V0FFYSxPQWR0QjFqQixPQVlTMGpCLElBQU1ELElBQU0wRSxJQVpyQm5vQixPQVkyQndqQixJQU5yQnp1QixHQUFFb1csR0FBRWxYO2VBTWlCdXZCLElBS1Y7VUFFOEI7V0FEWEcsTUFOVEg7V0FNRTRFLE1BTkY1RTtXQU1MSSxNQU5LSjtXQU1aSyxNQU5ZTDtXQU9vQixNQW5CL0N4akIsT0FrQm9DMmpCLEtBWjlCNXVCLEdBQUVvVyxHQUFFbFg7VUFhcUMsT0FuQi9DK0wsY0FZUzBqQixJQUFNRCxJQUFNMEUsSUFNTnRFLE1BQU9ELEtBQU93RTs7YUFYM0JoRixlQUNBRTswQkFEQUYsa0JBQ0FFO1VBMEJFLFdBNUJBN3NCLEdBQUUxQixHQUFFb1csR0FBRWxYOztpQkFpQkM7U0FFUyxJQURPNnZCLEtBbEJqQjd2QixNQWtCV28wQixLQWxCWHAwQixNQWtCSzh2QixLQWxCTDl2QixNQWtCRCt2QixLQWxCQy92QixNQW1CVSxNQTdCcEJrdkIsT0E0QlNhO21CQTVCVGIsT0E0QjJCVyxLQUVyQixPQTFCTjlqQixjQU1JdkosR0FBRTFCLEdBQUVvVyxHQWtCQzZZLEtBQU1ELElBQU1zRSxJQUFNdkU7Y0FBbEJFLElBS1E7U0FFMkI7VUFEUkMsTUFOM0JEO1VBTW9Cc0UsTUFOcEJ0RTtVQU1hRSxNQU5iRjtVQU1NRyxNQU5OSDtVQU9tQyxNQS9CNUNoa0IsT0E4Qm9DaWtCLEtBTnJCRixJQUFNc0UsSUFBTXZFO1NBT2lCLE9BL0I1QzlqQixjQU1JdkosR0FBRTFCLEdBQUVvVyxHQXdCT2daLE1BQU9ELEtBQU9vRTtRQUk4QjtZQUUzRDFtQjtpQkFFQXFCLGdCQUFXLHFCQUFtQztpQkFFMUNtaEIsSUFBSXJ2QixHQUFFd3pCLE1BR1ZwSztTN0I1SFQsSzZCNEhTQSxHQURNLGNBRkVwcEIsR0FBRXd6QjtTQUlBO1VBRFEzSyxJQUFsQk87VUFBZWxxQixJQUFma3FCO1VBQVloVCxJQUFaZ1Q7VUFBU3BxQixJQUFUb3FCO1VBQU0xbkIsSUFBTjBuQjtVQUNNM21CLElBQUksbUJBSkZ6QyxHQUdDaEI7U0FFUCxTQURJeUQsVUFETTJULE1BSEZvZCxPQUdWcEssUUFBTTFuQixHQUhFMUIsR0FBRXd6QixNQUdLdDBCLEdBQUcycEI7aUJBQ1pwbUI7VUFPTyxJQUFMc3NCLEtBWEpNLElBQUlydkIsR0FBRXd6QixNQUdLdDBCO3VCQVFQNnZCLEtBUlIzRixJQXJDQW9GLElBcUNNOXNCLEdBQUcxQyxHQUFHb1gsR0FRSjJZOztTQUhLLElBQUxKLEtBUkpVLElBQUlydkIsR0FBRXd6QixNQUdKOXhCO3NCQUtFaXRCLEtBTFJ2RixJQXJDQW9GLElBMENRRyxJQUxDM3ZCLEdBQUdvWCxHQUFHbFg7O2lCQVdYMlAsS0FBSzdPOzs7d0JBRVA7VUFFUTtXQURLZDtXQUFIa1g7V0FBSHBYO1dBQUgwQztXQUNBZSxJQUFJLG1CQUpEekMsR0FHQWhCO1VBRVAsU0FESXlELEdBQ1UsT0FGSjJUO2NBQUc0WixXQUNUdnRCLElBRFN2RCxJQUFUd0MsYUFBU3N1Qjs7O2lCQWNYMkIsV0FUcUI5eUI7Ozt3QkFXdkI7O1dBQ2FteEI7V0FBSHlEO1dBQUg3QjtXQUFIamI7VUFDRCxnQkFib0I5WCxHQVloQit5QixxQkFBTTVCO2NBWklyYyxLQVlWaWUsTUFaYThCLEtBWVZELGNBQU45Yzs7dUJBVkosV0FGaUJoRCxJQUFHK2Y7ZUFHUHgwQixjQUFIeTBCLGlCQUFIOUIsaUJBQUhud0I7V0FDRCxjQUpvQjdDLEdBR2hCZ3pCO2dCQUhVbGUsS0FHVmtlLE1BSGE2QixLQUdWQyxjQUFOanlCOzs7dUJBQVN4Qzs7OztpQkF3Qlg0eUIsZUFUeUJqekI7Ozt3QkFXM0I7O1dBQ2FteEI7V0FBSHlEO1dBQUg3QjtXQUFIamI7VUFDRCxnQkFid0I5WCxHQVlwQit5QixxQkFBTTVCO2NBWlFyYyxLQVlkaWUsTUFaaUI4QixLQVlkRCxjQUFOOWM7O3VCQVZKLGVBRnFCaEQsSUFBRytmO2VBR1h4MEIsY0FBSHkwQixpQkFBSDlCLGlCQUFIbndCO1dBQ0QsY0FKd0I3QyxHQUdwQmd6QjtnQkFIY2xlLEtBR2RrZSxNQUhpQjZCLEtBR2RDLGNBQU5qeUI7Ozt1QkFBU3hDOzs7O2lCQXdCWDZ5QixVQVRvQmx6Qjs7O3dCQVd0Qjs7V0FDYW14QjtXQUFIeUQ7V0FBSDdCO1dBQUhqYjtVQUNELGdCQWJtQjlYLEdBWWYreUIscUJBQUhqYjtjQVpZaEQsS0FZVGllLE1BWlk4QixLQVlURCxjQUFHekQ7O3VCQVZiLFdBRmdCcmMsSUFBRytmO2VBR054MEIsY0FBSHkwQixpQkFBSDlCLGlCQUFIbndCO1dBQ0QsY0FKbUI3QyxHQUdmZ3pCO2dCQUhTbGUsS0FHVGtlLE1BSFk2QixLQUdUQyxjQUFHejBCOzs7dUJBQVR3Qzs7OztpQkF3QkZzd0IsY0FUd0JuekI7Ozt3QkFXMUI7O1dBQ2FteEI7V0FBSHlEO1dBQUg3QjtXQUFIamI7VUFDRCxnQkFidUI5WCxHQVluQit5QixxQkFBSGpiO2NBWmdCaEQsS0FZYmllLE1BWmdCOEIsS0FZYkQsY0FBR3pEOzt1QkFWYixlQUZvQnJjLElBQUcrZjtlQUdWeDBCLGNBQUh5MEIsaUJBQUg5QixpQkFBSG53QjtXQUNELGNBSnVCN0MsR0FHbkJnekI7Z0JBSGFsZSxLQUdia2UsTUFIZ0I2QixLQUdiQyxjQUFHejBCOzs7dUJBQVR3Qzs7OztpQkFlRjhXLFNBQVN4WTs7O3dCQUVYO1VBRVE7V0FES2Q7V0FBSGtYO1dBQUhwWDtXQUFIMEM7V0FDQWUsSUFBSSxtQkFKR3pDLEdBR0poQjtVQUVQLFNBREl5RCxHQUNVLFdBRkoyVDtjQUFHNFosV0FDVHZ0QixJQURTdkQsSUFBVHdDLGFBQVNzdUI7OztpQkFLWG5ZLElBQUk3WDs7O3dCQUVOO1VBRVE7V0FERWQ7V0FBSEY7V0FBSDBDO1dBQ0FlLElBQUksbUJBSkZ6QyxHQUdDaEI7dUJBQ0h5RDs7Y0FETXV0QixXQUNOdnRCLElBRE12RCxJQUFOd0MsYUFBTXN1Qjs7O2lCQUlSNEQ7U0FBYzs7d0JBQ1Q7Y0FFSGx5Qjs7Y0FEWTBVLGdCQUFIcFg7VUFBUyxXQUFUQSxHQUFHb1g7O1FBQ087aUJBRXJCeWQ7U0FBa0I7O3dCQUNiO2NBRUhueUI7O2NBRFkwVSxnQkFBSHBYO1VBQVMsZUFBVEEsR0FBR29YOztRQUNVO2lCQUV4QjBkO1NBQWM7O3dCQUNUOzZCQUVINTBCO2NBREdrWCxnQkFBSHBYO1VBQWtCLFdBQWxCQSxHQUFHb1g7O1FBQ2dCO2lCQUVyQjJkO1NBQWtCOzt3QkFDYjs2QkFFSDcwQjtjQURHa1gsZ0JBQUhwWDtVQUFrQixlQUFsQkEsR0FBR29YOztRQUNvQjtpQkFFekI0ZDtTQUFxQixZQUNoQjthQUVIdHlCOztjQUFTeEMsY0FBSGtYLGNBQUhwWDtVQUFZLE9BdEtyQnd2QixJQW1LSXdGLG1CQUdFdHlCLElBQUcxQyxHQUFHb1gsR0FBR2xYOzthQURBOHdCO1NBQU0sT0FBTkE7UUFDc0M7cUJBRS9DeFcsSUFBR0Y7U0FDWCxLQURRRSxJQUVRLE9BRkxGO2tCQUdLLE9BSFJFO1NBS1MsWUE5QlhvYSxZQXlCS3RhLEtBS0NsRCxjQUFIcFc7U0FDTSxPQTlLYnd1QixJQXdLTWhWLElBS0N4WixHQUFHb1csR0FWTjRkLG1CQUtLMWE7UUFNMkI7aUJBRWhDNlcsT0FBT253QixHQUdYb3BCO1M3QjFRVCxLNkIwUVNBLEdBREU7U0FFUTtVQURNbHFCLElBQWhCa3FCO1VBQWFoVCxJQUFiZ1Q7VUFBVXBxQixJQUFWb3FCO1VBQU8xbkIsSUFBUDBuQjtVQUNNM21CLElBQUksbUJBSkN6QyxHQUdEaEI7U0FFUixTQURJeUQsR0FDVSxXQUZUZixHQUFTeEM7aUJBQ1Z1RDtVQUtPLElBQUxzc0IsS0FUSm9CLE9BQU9ud0IsR0FHS2Q7dUJBTVI2dkIsS0FOUjNGLElBbkxBb0YsSUFtTE85c0IsR0FBRzFDLEdBQUdvWCxHQU1MMlk7O1NBRkssSUFBTEosS0FQSndCLE9BQU9ud0IsR0FHSjBCO3NCQUlDaXRCLEtBSlJ2RixJQW5MQW9GLElBdUxRRyxJQUpFM3ZCLEdBQUdvWCxHQUFHbFg7O2lCQVFaKzBCLE9BQU9qMEIsR0FBRW5CLEdBTWJ1cUI7UzdCeFJULEs2QndSU0E7VUFKYyx5QkFGRHZxQjt3QkFHRDtjQUNIcTFCO1VBQVksY0FKVmwwQixHQUlGazBCOztTQUdDO1VBRFFyTCxJQUFsQk87VUFBZWxxQixJQUFma3FCO1VBQVloVCxJQUFaZ1Q7VUFBU3BxQixJQUFUb3FCO1VBQU0xbkIsSUFBTjBuQjtVQUNNM21CLElBQUksbUJBUEN6QyxHQU1GaEI7U0FFUCxTQURJeUQ7VUFFSSx1QkFURzVELE9BTUR1WDtzQkFJRSxXQUpSMVUsR0FBU3hDO2NBS0pzMEI7aUJBTENwZCxNQUtEb2QsT0FMWHBLLFFBQU0xbkIsR0FOSzFCLEdBV0F3ekIsTUFMSXQwQixHQUFHMnBCOztpQkFDWnBtQjtVQVVPLElBQUxzc0IsS0FqQkprRixPQUFPajBCLEdBQUVuQixHQU1FSzt1QkFXUDZ2QixLQVhSM0YsSUFqTUFvRixJQWlNTTlzQixHQUFHMUMsR0FBR29YLEdBV0oyWTs7U0FISyxJQUFMSixLQWRKc0YsT0FBT2owQixHQUFFbkIsR0FNUDZDO3NCQVFFaXRCLEtBUlJ2RixJQWpNQW9GLElBeU1RRyxJQVJDM3ZCLEdBQUdvWCxHQUFHbFg7O2lCQWNYNE8sS0FBS2pQOzs7d0JBQ0E7Y0FDTUssZ0JBQUhrWCxnQkFBSHBYLGdCQUFIMEM7VUFGRm9NLEtBQUtqUCxHQUVINkM7VUFDTSxXQUhIN0MsR0FFQUcsR0FBR29YO3dCQUFHbFg7OztpQkFHWHVKLElBQUk1SjtTN0IzU2pCLFk2QjZTVztTQUVTO1VBRE9ncUI7VUFBSDNwQjtVQUFIa1g7VUFBSHBYO1VBQUgwQztVQUNBaVYsTUFKRmxPLElBQUk1SixHQUdGNkM7VUFFQTBsQixNQUFLLFdBTEh2b0IsR0FHSXVYO1VBR040WixNQU5Gdm5CLElBQUk1SixHQUdPSztTQUlULFdBSEF5WCxLQURHM1gsR0FFSG9vQixLQUNBNEksS0FIWW5IOztpQkFNZDNZLEtBQUtyUjtTN0JwVGxCLFk2QnNUVztTQUVTO1VBRE9ncUI7VUFBSDNwQjtVQUFIa1g7VUFBSHBYO1VBQUgwQztVQUNBaVYsTUFKRnpHLEtBQUtyUixHQUdINkM7VUFFQTBsQixNQUFLLFdBTEZ2b0IsR0FHQUcsR0FBR29YO1VBR040WixNQU5GOWYsS0FBS3JSLEdBR01LO1NBSVQsV0FIQXlYLEtBREczWCxHQUVIb29CLEtBQ0E0SSxLQUhZbkg7O2lCQU1kbGdCLEtBQUs5SixHQUFFdXFCLEdBQUUza0I7U0FDZixJQURhMHZCLFNBQUV4dkI7U0FDZjtlQURhd3ZCLEtBRUYsT0FGSXh2QjtVQUlGO1dBSkF6RjtXQUdDa1gsSUFIRCtkO1dBR0ZuMUIsSUFIRW0xQjtXQUdMenlCLElBSEt5eUI7V0FBRTFsQixTQUlGLFdBSkY1UCxHQUdBRyxHQUFHb1gsR0FIUnpOLEtBQUs5SixHQUdINkMsR0FIT2lEO1dBQUZ3dkI7V0FBRXh2Qjs7UUFJcUI7aUJBRTlCK0osUUFBUUM7Ozt3QkFDSDtVQUNZO1dBQU56UDtXQUFIa1g7V0FBSHBYO1dBQUgwQztXQUFlLGlCQUZUaU4sR0FFSDNQLEdBQUdvWDtVQUFTO1dBQVMsVUFGMUIxSCxRQUFRQyxHQUVOak47V0FBd0Isc0JBQWZ4Qzs7Ozs7VUFBZTs7O2lCQUUxQjBQLE9BQU9EOzs7d0JBQ0Y7VUFDWTtXQUFOelA7V0FBSGtYO1dBQUhwWDtXQUFIMEM7V0FBZSxpQkFGVmlOLEdBRUYzUCxHQUFHb1g7VUFBUzs7O1dBQVMsVUFGMUJ4SCxPQUFPRCxHQUVMak47V0FBd0Isd0JBQWZ4Qzs7O1VBQU07OztpQkFVakJrMUIsZ0JBQWdCQyxHQUFFcjBCO1M3Qm5WL0IsWTZCb1ZrQixPQS9QVHN2QixVQThQb0IrRSxHQUFFcjBCO2FBRVBkLGNBQUhrWCxjQUFIcFgsY0FBSDBDO1NBQ04sT0EvUEE4c0IsSUE0UEk0RixnQkFBZ0JDLEdBQUVyMEIsR0FFaEIwQixJQUFHMUMsR0FBR29YLEdBQUdsWDs7aUJBR1hvMUIsZ0JBQWdCRCxHQUFFcjBCO1M3QnhWL0IsWTZCeVZrQixPQXBRVHN2QixVQW1Rb0IrRSxHQUFFcjBCO2FBRVBkLGNBQUhrWCxjQUFIcFgsY0FBSDBDO1NBQ0ksT0FwUVY4c0IsSUFtUU05c0IsR0FBRzFDLEdBQUdvWCxHQUZSa2UsZ0JBQWdCRCxHQUFFcjBCLEdBRVBkOztpQkFNWHFVLEtBQUs3UixHQUFFMUMsR0FBRW9YLEdBQUVsWDtTQUNqQixLQURXd0MsR0FFSyxPQWZWMHlCLGdCQWFPcDFCLEdBQUVvWCxHQUFFbFg7aUJBR0QsT0FYVm8xQixnQkFRT3QxQixHQUFFb1gsR0FBSjFVOztVQUt1Qit0QixLQUxqQnZ3QjtVQUtXNnZCLEtBTFg3dkI7VUFLS28wQixLQUxMcDBCO1VBS0Q4dkIsS0FMQzl2QjtVQUtQK3ZCLEtBTE8vdkI7VUFJaUJ3d0IsS0FKdkJodUI7VUFJaUIrc0IsS0FKakIvc0I7VUFJVzB4QixLQUpYMXhCO1VBSUtndEIsS0FKTGh0QjtVQUlEaXRCLEtBSkNqdEI7aUJBS3VCK3RCLGNBREFDO21CQTdRaENsQixJQTZRUUcsSUFBTUQsSUFBTTBFLElBSmhCN2YsS0FJc0JrYixJQUpmenZCLEdBQUVvWCxHQUFFbFg7b0JBSWlCd3dCOzs7cUJBQ0FEO3FCQTlRaENqQixJQXlRSWpiLEtBQUs3UixHQUFFMUMsR0FBRW9YLEdBS0w2WSxLQUFNRCxJQUFNc0UsSUFBTXZFO3FCQXBSMUI5akIsT0ErUVN2SixHQUFFMUMsR0FBRW9YLEdBQUVsWDtRQVFDO2lCQU1oQnNPLE9BQU9nTSxJQUFHRjtTQUNaLEtBRFNFLElBRU8sT0FGSkY7a0JBR0ksT0FIUEU7U0FLUSxZQTdJWG9hLFlBd0lNdGEsS0FLQWxELGNBQUhwVztTQUNPLE9BcEJWdVQsS0FjR2lHLElBS0F4WixHQUFHb1csR0F6SE40ZCxtQkFvSE0xYTtRQU0yQjtpQkFFckNpYixlQUFlL2EsSUFBR3hhLEdBQUVvWCxHQUFFa0Q7U0FDeEIsS0FEc0JsRCxHQUdaLE9BWFI1SSxPQVFlZ00sSUFBT0Y7YUFFakI4TixNQUZlaFI7U0FFVixPQXhCTjdDLEtBc0JXaUcsSUFBR3hhLEdBRWJvb0IsS0FGaUI5TjtRQUdGO2lCQUVoQkwsTUFBTWpaO1M3QjNYbkIsWTZCNlhXO1NBRVE7VUFES2Q7VUFBSGtYO1VBQUhwWDtVQUFIMEM7VUFDQWUsSUFBSSxtQkFKQXpDLEdBR0RoQjtTQUVQLFNBREl5RCxHQUNVLFdBRlZmLE9BQU0wVSxJQUFHbFg7aUJBQ1R1RDtVQUttQjttQkFUckJ3VyxNQUFNalosR0FHS2Q7V0FNSTZ2QjtXQUFOa0I7V0FBSnhCO1VBQTZCLFdBcENsQ2xiLEtBOEJFN1IsR0FBRzFDLEdBQUdvWCxHQU1IcVksS0FBSXdCLE1BQU1sQjs7U0FGTTtvQkFQckI5VixNQUFNalosR0FHSjBCO1VBSWF1dEI7VUFBTmlCO1VBQUp2QjtTQUE2QixXQUE3QkEsSUFBSXVCLFFBbENUM2MsS0FrQ2UwYixJQUpWandCLEdBQUdvWCxHQUFHbFg7O2lCQVFYbWEsTUFBTXhhLEdBQUVpQyxJQUFHQztTQUNqQixHQURjRDtjQUdxQjJZLEtBSHJCM1ksT0FHZTBULEtBSGYxVCxPQUdTMHpCLEtBSFQxekIsT0FHR2lJLEtBSEhqSSxPQUdIRSxLQUhHRjthQXpUWnN0QixPQXlUZXJ0QixPQUdrQjBZO1dBQ1o7b0JBZmpCUixNQWNXbFEsSUFIQWhJO1lBSUFzdkI7WUFBSm9FO1lBQUp4ekI7WUFDaUQsTUFMcERvWSxNQUFNeGEsR0FHaUIyVixJQUNaNmI7WUFDcUIsaUJBTDFCeHhCLEdBR0trSyxRQUFNeXJCLEtBQ1ZDO1dBQzZDLE9BckJ4REYsZUFnQklsYixNQUFNeGEsR0FHRG1DLElBQ0ZDLEtBRFE4SDs7O21CQUhBaEksSUFFRztjQUZIQTtVQVViO1NBSG1CO1VBRFN1dkIsT0FOZnZ2QjtVQU1TMnpCLE9BTlQzekI7VUFNR2lJLEtBTkhqSTtVQU1Ia1csT0FOR2xXO1VBT00sVUFsQmpCa1ksTUFpQmNqUSxJQU5ObEk7VUFPR3l2QjtVQUFKb0U7VUFBSjNkO1VBQ2lELE1BUnBEcUMsTUFBTXhhLEdBT0sweEIsTUFEZUQ7VUFFTSxpQkFSMUJ6eEIsR0FNUW1LLElBQ1AyckIsVUFEYUQ7U0FFZ0MsT0F4QnhESCxlQWdCSWxiLE1BQU14YSxHQU9IbVksTUFES0MsT0FBTWpPO1FBSUo7aUJBRVZvbkIsTUFBTXZ4QixHQUFFaUMsSUFBR0M7U0FDakIsR0FEY0Q7YUFBR0M7O1lBSWtCd1ksS0FKbEJ4WTtZQUlZc3ZCLEtBSlp0dkI7WUFJTTB6QixLQUpOMXpCO1lBSUFpSSxLQUpBakk7WUFJTkUsS0FKTUY7WUFHa0IwWSxLQUhyQjNZO1lBR2UwVCxLQUhmMVQ7WUFHUzB6QixLQUhUMXpCO1lBR0dpSSxLQUhIakk7WUFHSEUsS0FIR0Y7Y0FJcUJ5WSxNQURBRTtZQUdWO3FCQTdCbkJSLE1BMEJXbFEsSUFIQWhJO2FBTUV1dkI7YUFBSm9FO2FBQUp6ZDthQUNEdlYsSUFQSjB1QixNQUFNdnhCLEdBR0RtQyxJQUdBaVc7YUFDcUIvWCxJQVAxQmt4QixNQUFNdnhCLEdBR2lCMlYsSUFHVjhiO1lBRWIsS0FGU29FLE1BR0MsT0EzRFZuaEIsS0F5REk3UixHQUpPcUgsSUFBTXlyQixJQUlTdDFCO2dCQUduQjAxQixPQUpFRjtZQUlJLE9BdENqQkgsZUFtQ1E3eUIsR0FKT3FILElBT3NCLFdBVjNCbEssR0FHS2tLLElBQU15ckIsSUFPVkksT0FIbUIxMUI7O1dBS1A7c0JBbkNuQitaLE1BMkJXalEsSUFKSGxJO1lBWUt5dkI7WUFBSm9FO1lBQUozZDtZQUNETCxNQWJKeVosTUFBTXZ4QixHQVlEbVksTUFSQS9WO1lBU3FCK3VCLE1BYjFCSSxNQUFNdnhCLEdBWU8weEIsTUFSVUY7V0FVdkIsS0FGU3NFLE1BR0MsT0FqRVZwaEIsS0ErRElvRCxLQVRPM04sSUFBTXlyQixJQVNTekU7ZUFHbkI2RSxPQUpFRjtXQUlJLE9BNUNqQkosZUF5Q1E1ZCxLQVRPM04sSUFZc0IsV0FoQjNCbkssR0FJS21LLElBWUo2ckIsTUFaVUosS0FTU3pFOztjQVh0Qm53QixJQUZJaUI7OztjQUVKakIsSUFGT2tCO1NBRVksT0FBbkJsQjtRQWMyQztpQkFFL0MwTixPQUFPb0IsR0FFWHlhO1M3QnRhVCxLNkJzYVNBLEdBRFM7U0FHRTtVQUZJbHFCLElBQWZrcUI7VUFBWWhULElBQVpnVDtVQUFTcHFCLElBQVRvcUI7VUFBTTFuQixJQUFOMG5CO1VBRU16UyxNQUpGcEosT0FBT29CLEdBRUxqTjtVQUdBb3pCLE1BQU0sV0FMRG5tQixHQUVGM1AsR0FBR29YO1VBSU40WixNQU5GemlCLE9BQU9vQixHQUVJelA7U0FLYixLQUZJNDFCLEtBR0MsT0E5RFB0bkIsT0EwRE1tSixLQUVBcVo7WUFKQXR1QixNQUVBaVYsT0FGU3pYLE1BSVQ4d0IsS0FDK0IsT0FMckM1RztTQUs0QyxPQTNFeEM3VixLQXdFRW9ELEtBRkczWCxHQUFHb1gsR0FJTjRaOztpQkFJRjNpQixXQUFXeE87UzdCOWF4QixZNkIrYWtCO1NBR0U7VUFGSUs7VUFBSGtYO1VBQUhwWDtVQUFIMEM7VUFFQWlWLE1BSkZ0SixXQUFXeE8sR0FFVDZDO1VBR0FxekIsTUFBTSxXQUxHbDJCLEdBRU5HLEdBQUdvWDtVQUlONFosTUFORjNpQixXQUFXeE8sR0FFQUs7U0FLYixLQUZJNjFCLEtBSVEsT0F6RWR2bkIsT0FvRU1tSixLQUVBcVo7YUFFSzVJLE1BSEwyTjtTQUdXLE9BdEZieGhCLEtBa0ZFb0QsS0FGRzNYLEdBTUVvb0IsS0FGTDRJOztpQkFNRjlkLFVBQVV2RDtTN0IxYnZCLFk2QjJia0I7U0FHUTtVQUZGelA7VUFBSGtYO1VBQUhwWDtVQUFIMEM7VUFFVyxRQUpid1EsVUFBVXZELEdBRVJqTjtVQUVLMHZCO1VBQUpDO1VBQ0R5RCxNQUFNLFdBTEVubUIsR0FFTDNQLEdBQUdvWDtVQUlLLFVBTmJsRSxVQUFVdkQsR0FFQ3pQO1VBSUpveUI7VUFBSkM7U0FDTCxHQUZJdUQ7VUFHa0IsVUFwRnhCdG5CLE9BZ0ZXNGpCLElBRUFFO1VBRUosV0FsR0gvZCxLQThGRzhkLElBRkVyeUIsR0FBR29YLEdBSUxtYjs7U0FHZSxVQW5HbEJoZSxLQThGTzZkLElBRkZweUIsR0FBR29YLEdBSURrYjtTQUdKLFdBckZQOWpCLE9BZ0ZPNmpCLElBRUFFOztpQkFPSFosVUFBVXZILEdBQUU3Z0I7U0FDbEIsSUFEZ0I0ckIsU0FBRWhvQjtTQUNsQjtlQURnQmdvQixLQUVMLE9BRk9ob0I7VUFHaUI7V0FBbEJqTixJQUhEaTFCO1dBR0YvZCxJQUhFK2Q7V0FHTG4xQixJQUhLbTFCOztXQUFFL04sVUFHUHBuQixHQUFHb1gsR0FBR2xYLEdBSENpTjtXQUFGZ29CO1dBQUVob0I7O1FBR21DO2lCQUVuRGhELFFBQVFvRyxLQUFJeWxCLElBQUdDO1NBQ2pCO1VBQXVCckUsT0FOakJELFVBS1dzRTtVQUNHcEUsT0FOZEYsVUFLUXFFO1VBQ01uc0I7VUFBR0M7U0FDbkI7ZUFEZ0JELFdBQUdDO21CQUlQO1VBRUY7V0FEOEJnb0IsT0FMckJob0I7V0FLaUJ1bkIsS0FMakJ2bkI7V0FLYTJyQixLQUxiM3JCO1dBS1NFLEtBTFRGO1dBS0Rpb0IsT0FMRmxvQjtXQUtGMkwsS0FMRTNMO1dBS04yckIsS0FMTTNyQjtXQUtWRSxLQUxVRjtXQU1WcEcsSUFBSSxtQkFESnNHLElBQXNCQztVQUUxQixTQURJdkcsR0FDVyxPQURYQTtVQUVJLElBQUo4WCxNQUFJLFdBVEpoTCxLQU1JaWxCLElBQXNCQztVQUk5QixTQURJbGEsS0FDVyxPQURYQTtVQUUwQjtXQVZieVcsT0FOakJMLFVBV2tDTixJQUFJUztXQUx4QkcsT0FOZE4sVUFXWW5jLElBQUl1YztXQUxGbG9CO1dBQUdDOztRQVc2QjtpQkFFbERGLE1BQU0yRyxLQUFJeWxCLElBQUdDO1NBQ2Y7VUFBcUJyRSxPQXBCZkQsVUFtQlNzRTtVQUNHcEUsT0FwQlpGLFVBbUJNcUU7VUFDTW5zQjtVQUFHQztTQUNqQjtlQURjRCxXQUFHQzttQkFJTDs7V0FDNEJnb0IsT0FMdkJob0I7V0FLbUJ1bkIsS0FMbkJ2bkI7V0FLZTJyQixLQUxmM3JCO1dBS1dFLEtBTFhGO1dBS0Npb0IsT0FMSmxvQjtXQUtBMkwsS0FMQTNMO1dBS0oyckIsS0FMSTNyQjtXQUtSRSxLQUxRRjt1QkFNWixtQkFESUUsSUFBc0JDOztXQUNELHFCQVB2QnVHLEtBTU1pbEIsSUFBc0JDO1dBQ0w7WUFDRzthQVBiekQsT0FwQmZMLFVBeUJrQ04sSUFBSVM7YUFMMUJHLE9BcEJaTixVQXlCWW5jLElBQUl1YzthQUxKbG9CO2FBQUdDOzs7Ozs7O1VBTVU7O1FBRW1CO2lCQUU1QzBvQjtTQUFXLFlBQ047U0FDdUIsSUFBdkJ0eUIsY0FBSHdDLGNBQTBCLE1BRjVCOHZCLFNBRUt0eUI7aUJBRkxzeUIsU0FFRTl2QjtRQUFvQztpQkFFdEN3ekI7YUFBYXZ3Qjs7d0JBQ1IsT0FEUUE7VUFFaUI7V0FBbkJ6RjtXQUFIa1g7V0FBSHBYO1dBQUgwQztXQUE0QixpQkFBekIxQyxHQUFHb1gsSUFGUjhlLGFBQWF2d0IsUUFFRnpGO1dBRkV5RjtxQkFFWGpEOzs7aUJBRU55ekIsU0FBU3QxQixHQUNYLE9BTE1xMUIsZ0JBSUtyMUIsR0FDTTtpQkFNZmd6QixRQUFRbHhCLEdBQUV5bkI7c0JBQ09BO1VBQUwsSUFBVXBxQixjQUFGcTFCO1VBQVEsT0E1WHhCaEYsSUE0WGdCZ0YsR0FBRXIxQixHQUFMb3FCO1NBQXFCO1NBQXhDLHNDQURZQSxHQUFGem5CO1FBQ2tDO2lCQUUxQ3daLE9BQU94WixHQUFJLE9BSFhreEIsUUFHT2x4QixHQWxZUGtMLE9Ba1kwQjtpQkFFdEJpbUIsWUFBYXJ3QjtTQUFPLEtBQVBBLEdBQ1Y7U0FDNEM7VUFBdkM1SCxPQUZLNEg7VUFFUDhKLElBRk85SjtVQUVUekQsSUFGU3lEO1VBRVg0eEIsSUFGVzV4QjtVQUVrQyxNQXBEL0NrdUIsVUFvRE1wa0IsR0FBRTFSO1NBQVMsZUFBZnc1QixHQUFFcjFCLGtCN0IzZmpCLE82QnlmYTh6QjtRQUVrRTtpQkFFdEVoZixPQUFPc1Y7U0FDSSxVQXZEUHVILFVBc0RHdkg7U0FDSSxxQjdCOWZwQixPNkJ5ZmEwSjtRQUt3QjtpQkFFeEJDLFVBQVVsekIsR0FBRTBJO1NBQ2xCLElBRGdCNkgsU0FBRWpFO1NBQ2xCO2VBRGdCaUUsS0FFTCxPQUZPakU7VUFHZ0I7V0FIbEJqTjtXQUdIa1gsSUFIR2hHO1dBR05wUixJQUhNb1I7V0FHVDFPLElBSFMwTztXQUFFZ1csVUFHUnBuQixHQUFHb1gsR0FBTjFVLEdBSFd5SztXQUFGaUU7V0FBRWpFOztRQUdrQztpQkFFOUM2bUIsZ0JBQWlCdndCO1NBQU8sS0FBUEEsR0FDZDtTQUU2QjtVQUR4QjVILE9BRlM0SDtVQUVYOEosSUFGVzlKO1VBRWJ6RCxJQUZheUQ7VUFFZjR4QixJQUZlNXhCO1VBR2UsTUFSaENzd0IsVUFPTXhtQixHQUFFMVI7U0FDVjtxQkFESXc1QixHQUFFcjFCOytCN0J2Z0JqQixPNkJxZ0JhZzBCO1FBR21EO2lCQUV2REMsV0FBV3h3QjtTQUNJLFVBWFhzd0IsVUFVT3R3QjtTQUNJLHFCN0IzZ0J4QixPNkJxZ0JhdXdCO1FBTTRCO2lCQUVoQ0UsWUFDVUMsS0FBSS9KO1NBQWhCLElBQWdCK0ssU0FBRTF4QjtTQUFJO2FBQU4weEI7V0FHRTtZQUhGajFCO1lBRUFrWCxJQUZBK2Q7WUFFSG4xQixJQUZHbTFCOztZQUtOMTBCLElBRlEsbUJBRExULEdBRkRtMEI7b0JBS0YxekI7dUJBQ2UsSUFOUDhhLFVBRUx2YixHQUFHb1gsR0FGQWxYLEdBQUV1RCxJQUFGMHhCLFNBQUUxeEI7Z0JBQUYweEI7Ozt5QkFFSG4xQixHQUFHb1gsR0FGQWxYLEdBQUV1RDs7OztVQVNMLHFCN0J2aEJwQixPNkJ5ZmFxd0I7O1FBOEJzQjs7Z0JBbGExQmptQjtnQkFFQXFCO2dCQXdHSTJKO2dCQXRHQXdYO2dCQXlKQTRFO2dCQTdMSjNFO2dCQWtMSWE7Z0JBK0hBOVc7Z0JBWUErVztnQkEwREpqbkI7Z0JBY0FQO2dCQXBMSWtGO2dCQXVCQW5GO2dCQU1BK0Y7Z0JBSUFFO2dCQTZGQXJCO2dCQVVBRjtnQkFZQTZFO2dCQTJDQXNmO2dCQVFKMkQ7Z0JBdlFJdkI7Z0JBS0FDO2dCQUtBQztnQkFLQUM7Z0JBZkFIO2dCQUtBQztnQkFnSkE1YTtnQkFwUEFwSztnQkFnRkEySjtnQkEvREFtWjtnQkFrQkFHO2dCQWtCQUM7Z0JBa0JBQztnQkE2RkF2cEI7Z0JBU0F5SDtnQkF5TUo0RDtnQkFhQW1mO2dCQUdBQztnQkF6QkFMO2dCQUdBMVg7Ozs7RTdCdmZUOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0c4QmtCQzs7Ozs7WUFFSWxRLGNBQVksaUJBQW9CO1lBRWhDbXFCLE1BQU12MUIsZ0NBQXlCO1lBRS9CNmIsS0FBSzdiLEdBQUksV0FBSkEsWUFBNkI7WUFFbEN3MUIsS0FBS3IxQixHQUFFSCxjQUFGRyxHQUFFSCxxQ0FBdUM7WUFFOUN5MUIsSUFBSXoxQjtJQUNOLFlBRE1BO2dCQUdNO1FBRE5tQyxlQUFKQztJQUZJcEMsT0FFQW1DO0lBRkFuQztJQUVxQyxPQUF6Q29DO0dBQ3FCO1lBRXJCc3pCLFFBQVExMUI7SUFDVixZQURVQTtnQkFHRTtRQURObUMsZUFBSkM7SUFGUXBDLE9BRUptQztJQUZJbkM7SUFFaUMsV0FBekNvQztHQUNjO1lBRWR1ekIsSUFBSTMxQjtJQUNOLFlBRE1BO2dCQUdLO1FBRFRvQztJQUFTLE9BQVRBO0dBQ29CO1lBRXBCd3pCLFFBQVE1MUI7SUFDVixZQURVQTtnQkFHQztRQURUb0M7SUFBUyxXQUFUQTtHQUNhO1lBRWJpTSxTQUFTck8sR0FBSSxhQUFKQSxhQUFjO1lBRXZCcUwsT0FBT3JMLEdBQUksT0FBSkEsS0FBUztZQUVoQmlPLEtBQUtqUCxHQUFFZ0IsR0FBSSxtQ0FBTmhCLEdBQUVnQixNQUFtQjtZQUUxQjhJLEtBQUs5SixHQUFFOE8sS0FBSTlOLEdBQUksbUNBQVZoQixHQUFFOE8sS0FBSTlOLE1BQTRCO1lBSXZDaVUsT0FBT2pVLEdBQUksbUNBQUpBLE1BQW1CO1lBRTFCZ3pCLFFBQVF2SixHQUFFM25CO2lCQUFrQjNCLEdBQUssT0FsQ2pDcTFCLEtBa0M0QnIxQixHQUFwQnNwQixHQUFpQztJQUEzQixzQ0FBSjNuQjtHQUFrQztZQUU1Q3daLE9BQU9tSixHQUNELElBQUp6a0IsSUEzQ0ZvTCxXQXdDQTRuQixRQUdFaHpCLEdBREt5a0IsSUFFVCxPQURJemtCLEVBRUg7Ozs7O09BN0NDb0w7T0FNQW9xQjtPQUVBQztPQUtBQztPQUtBQztPQUtBQztPQXJCQUw7T0FFQTFaO09Bd0JBeE47T0FFQWhEO09BRUE0QztPQUVBbkY7T0FJQW1MO09BRUErZTtPQUVBMVg7OztFOUI5REw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0crQmlCQzs7OztZQVlJbFEsY0FBWSxvQkFJZjtZQUVHbXFCLE1BQU05TCwwQ0FHSztZQUVYK0YsSUFBSXJ2QixHQUFFc3BCO0lBQ1IsSUFBSW9NLFdBREUxMUIsT0FVQzIxQixRQVZDck07V0FVRHFNO2VBVkNyTSxxQkFVRHFNLFdBVEhELE1BRElwTSxPQUNKb007ZUFESXBNLGlCQUNKb00sTUFESXBNLE9BQ0pvTTtHQVlZO1lBS2RFLEtBQUt0TTtJQUNQLFlBRE9BO2dCQUVFO1FBQ0F1TTtJQUFhLE9BQWJBO0dBQW9CO1lBRTNCQyxTQUFTeE07SUFDWCxZQURXQTtnQkFFRjtRQUNBdU07SUFBYSxXQUFiQTtHQUF5QjtZQUtoQ3RsQixLQUFLK1k7SUFDUCxVQURPQTtjQUVFO1FBQ0F1TTs7U0FHUzdvQjtLQU5Yc2M7WUFNV3RjO0tBR2hCLE9BTk82b0I7O0lBdkNQVCxNQW9DSzlMO0lBSUwsT0FET3VNO0dBTUE7WUFFUEUsU0FBU3pNO0lBQ1gsVUFEV0E7Y0FFRjtRQUNBdU07O1NBR1M3b0I7S0FOUHNjO1lBTU90YztLQUdoQixXQU5PNm9COztJQWxEUFQsTUErQ1M5TDtJQUtULFdBRk91TTtHQU1LO1lBS1puYSxLQVlFNE47SUFBSyxJQVhlME0sU0FXcEIxTSxNQVhTMk0sWUFXVDNNLGFBWGU0TSxVQUFLUjtJQUN0QjtVQURzQkEsTUFBWE8sV0FBTUMsTUFFWSxPQUZsQkQ7S0FJTSxJQURSSixVQUhhSCxTQUdKMW9CLE9BSEkwb0IsU0FJaEJTLGFBREdOO0tBRVAsR0FMZUssZ0JBSVhDLGFBSktGLFdBSUxFO1NBSldELE9BSVhDLFFBSmdCVCxPQUdKMW9COztHQVFvRDtZQUV0RWtCLFNBQVNvYixHQUNYLGFBRFdBLGFBQ0M7WUFFVnBlLE9BQU9vZSxHQUNULE9BRFNBLEtBQ0Q7WUFFTnhiLEtBUUVqUCxHQUFFeXFCO0lBQUssSUFQSTBNLFNBT1QxTSxNQVBTb007SUFDYjtVQURhQSxNQUVKO1NBQ0FHLFVBSElIO0tBSVgsV0FHQTcyQixHQUpPZzNCO1NBSElIOztHQU9VO1lBRXZCL3NCLEtBUUU5SixHQUFFNFAsUUFBSzZhO0lBQUssSUFQSTBNLFNBT1QxTSxNQVBJN2tCLE9BT1RnSyxRQVBjaW5CO0lBQ2xCO1VBRGtCQSxNQUVULE9BRklqeEI7S0FJQTtNQURKb3hCLFVBSFNIOztNQUFML3dCLFNBSUEsV0FHWDlGLEdBUFc0RixNQUdKb3hCO01BSElweEI7TUFBS2l4Qjs7R0FPZTtZQUVqQ1UsU0FBU0MsSUFBR0M7SUFDZCxjQURXRDs7UUFRRlYsUUFSS1c7V0FRTFg7ZUFSS1c7O3dCQUFIRDtjQVFGVixXQVJFVTtjQUFHQyxRQUFIRDtjQXJHVGpCLE1BcUdTaUI7ZUFBR0MsUUFBSEQsT0FBR0MsUUFBSEQsT0FBR0MsUUFBSEQsT0FyR1RqQixNQXFHU2lCO0dBWUM7WUFJVnZpQixPQUFPd1Y7SUFDVCxTQUFRck8sSUFBSXhZO0tBQU8sS0FBUEEsR0FDRDtTQUNRekMsSUFGUHlDLE1BRVV1SyxPQUZWdks7S0FFcUIsV0FBZHpDLGlCL0IzSnRCLE8rQnlKV2liLElBRWNqTztJQUFpQztjQUg5Q3NjO0lBQ1QscUIvQnpKSCxPK0J5SldyTztHQUlHO1lBRVQ0WCxRQUFRdkosR0FBRTNuQjtpQkFBa0IzQixHQUFLLE9BdkhqQ3F2QixJQXVINEJydkIsR0FBcEJzcEIsR0FBaUM7SUFBM0Isc0NBQUozbkI7R0FBa0M7WUFFNUN3WixPQUFPbUosR0FDRCxJQUFKZ0YsSUFySUZyZSxXQWtJQTRuQixRQUdFdkosR0FES2hGLElBRVQsT0FESWdGLEVBRUg7Ozs7O09BdklDcmU7T0FXQW9rQjs7T0ErQkE5ZTtPQVdBd2xCO09BWEF4bEI7T0FiQXFsQjtPQUtBRTtPQUxBRjtPQXZCQVI7T0E2REExWjtPQWNBeE47T0FHQWhEO09BR0E0QztPQVVBbkY7T0FVQXl0QjtPQWdCQXRpQjtPQU9BK2U7T0FFQTFYOzs7RS9CaktMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZaUMrQktsUSxPQUFPeEw7SUFDVjtLQUFJZ1IsV0FETWhSO0tBRU5pUix1QkFEQUQ7S0FFQTVRLElBQUksa0JBREo2UTtJQUVKLFdBREk3USxNQURBNlEsS0FDQTdRO0dBQ3NEO1lBRXZEbTRCLFNBQVM1MkIsR0FBSSxtQ0FBSkEsZUFBMEM7WUFDbkRpakIsU0FBU2pqQixHQUFJLG1DQUFKQSxlQUFtQztZQUU1Q3dhLElBQUl4YSxHQUFFOEIsS0FBSUM7SUFDWixRQURRRCxZQUFJQyxRQUFOL0IsT0FBTStCLFlBQUpEO0tBR0gsbUNBSEM5QixNQUFFOEIsS0FBSUM7SUFFUDtHQUNpQztZQUdwQ2daLEtBQUt1TSxLQUFJMU0sUUFBT1MsS0FBSVYsUUFBTzVZO0lBQzdCO1dBRDZCQTs7WUFBbEI2WTs7U0FBSjBNLFNBQXNCdmxCLFlBQWxCNlk7Z0JBQVdELGdDQUFKVSxPQUFXdFosWUFBUDRZO0tBS3BCLCtCQUxLMk0sUUFBSTFNLFFBQU9TLEtBQUlWLFFBQU81WTtJQUd4QjtHQUUrQztZQUdsRHlULElBQUl4VixHQUFFOEI7SUFDUixRQURRQSxPQUFGOUIsT0FBRThCLGtDQUFGOUIsTUFBRThCO0lBRVA7R0FDaUM7WUFHaENnSSxPQUFPOUosR0FBSSxPQUFKQSxLQUFjO1lBRXJCZzBCLE1BQU1oMEIsc0JBQW1CO1lBRXpCNjJCLE1BQU03MkI7Ozs7O0dBR3lCO1lBVS9CODJCLE9BQU85MkIsR0FBRSsyQjtJQUNYLElBQUlDLFVBREtoM0IsTUFFTGkzQixVQUZLajNCLE1BR0wyZCxjQURBc1o7O1FBQ0F0WixjQUZBcVosVUFET0Q7TUFHUHBaOzs7O1VBRkFxWixVQURPRDtPQUdQcFo7O09BS0c7S0FFVSxJQUFidVosYUFBYSxrQkFQYnZaO0tBVUosNkJBYlMzZCxTQVVMazNCLGVBVktsM0I7WUFVTGszQjtLQVZLbDNCLE9BR0wyZDtTQUhLM2QsT0FBRSsyQixZQUFGLzJCO01BZ0JUO1NBZklnM0IsVUFET0QsYUFBRi8yQixNQWtCVDtLQURBOztHQUNFO1lBb0NBbTNCLFNBQVNuM0IsR0FBRXFCO0lBQ2IsSUFBSWlhLE1BRE90YjtlQUNQc2IsS0F2REZ3YixPQXNEUzkyQjtnQ0FDUHNiLEtBRFNqYTtJQUFGckIsT0FDUHNiOztHQUdpQjtPQUVuQjhiLGlDQUNBQztZQUVJQyxnQkFBZ0J0M0IsR0FBRTRNO0lBQ3hCO1NBQUkwTyxNQURrQnRiO2dCQUNsQnNiLEtBaEVGd2IsT0ErRG9COTJCLEdBSHBCbzNCO0tBTU0sSUFBSi80QixJQUFJLDZCQUhjMkIsTUFDbEJzYixLQURvQjFPO0tBSXhCLFNBREl2TyxHQWxFRnk0QixPQStEb0I5MkIsR0FIcEJvM0I7S0FHb0JwM0IsT0FDbEJzYixNQUVBamQ7OztHQUd3QjtZQUV0Qms1QixtQkFBbUJ2M0IsR0FBRTRNO0lBQzNCO1NBQUkwTyxNQURxQnRiO2dCQUNyQnNiLEtBeEVGd2IsT0F1RXVCOTJCLEdBVnZCcTNCO0tBYU0sSUFBSmg1QixJQUFJLDZCQUhpQjJCLE1BQ3JCc2IsS0FEdUIxTztLQUkzQixTQURJdk8sR0ExRUZ5NEIsT0F1RXVCOTJCLEdBVnZCcTNCO0tBVXVCcjNCLE9BQ3JCc2IsTUFFQWpkOzs7R0FHd0I7WUFFdEJtNUIsbUJBQW1CeDNCLEdBQUU0TTtJQUMzQjtTQUFJME8sTUFEcUJ0YjtnQkFDckJzYixLQWhGRndiLE9BK0V1QjkyQixHQWxCdkJxM0I7S0FxQk0sSUFBSmg1QixJQUFJLDZCQUhpQjJCLE1BQ3JCc2IsS0FEdUIxTztLQUkzQixTQURJdk8sR0FsRkZ5NEIsT0ErRXVCOTJCLEdBbEJ2QnEzQjtLQWtCdUJyM0IsT0FDckJzYixNQUVBamQ7OztHQUd3QjtZQUUxQm81QixjQUFjejNCLEdBQUV2QixHQUFFaTVCLFFBQU8zMUI7SUFDM0IsVUFEb0IyMUI7Ozs7O1lBQU8zMUI7MkNBQVR0RCxLQUFTc0QsV0FBUDIxQjtZQUVmO1FBQ0RDLGVBSFkzM0IsT0FBVytCO09BQVgvQixPQUdaMjNCLGNBMUZGYixPQXVGYzkyQixHQUFXK0I7SUFLM0IsaUJBTGtCdEQsR0FBRWk1QixRQUFKMTNCLFlBQVcrQjtJQUFYL0IsT0FHWjIzQjs7R0FHc0I7WUFFeEJDLGFBQWE1M0IsR0FBRXZCLEdBQUVpNUIsUUFBTzMxQjtJQUMxQixPQVRFMDFCLGNBUWF6M0IsR0FDQyw2QkFEQ3ZCLElBQUVpNUIsUUFBTzMxQjtHQUMyQjtZQUVuRDgxQixXQUFXNzNCLEdBQUV2QjtJQUNmLElBQUlzRCw0QkFEV3RELElBRVhrNUIsZUFGUzMzQixPQUNUK0I7T0FEUy9CLE9BRVQyM0IsY0FwR0ZiLE9Ba0dXOTJCLEdBQ1QrQjtJQUdKLGlCQUpldEQsTUFBRnVCLFlBQ1QrQjtJQURTL0IsT0FFVDIzQjs7R0FHc0I7WUFFeEJHLFVBQVU5M0IsR0FBRXZCO0lBQUksT0FQaEJvNUIsV0FPVTczQixHQUFtQiw2QkFBakJ2QjtHQUEyQztZQUV2RHM1QixXQUFXLzNCLEdBQUVnNEIsSUFDZixPQWJFSixhQVlXNTNCLEdBQUVnNEIsaUJBQ3VCO1lBK0JwQ0MsWUFBWWo0QixHQUFFeUMsSUFBR3kxQjtJQUNuQjtXQURtQkE7O1lBRWpCO09BRllsNEIsZUFBS2s0QixnQkEzSWpCcEIsT0EySVk5MkIsR0FBS2s0Qjs7S0EzQmdCcDFCLFFBMkJyQjlDO0tBM0JFbUQsTUEyQkZuRDtLQUdWbTRCO0tBOUIrQnIyQjtLQUFLczJCLFVBMkJyQkY7SUExQmpCO2NBRHNDRTtNQUc1QixJQUFKdDZCLElBQUksdUJBd0JJMkUsSUEzQkFVLEtBQW1CckIsS0FBS3MyQjtNQUlwQyxTQURJdDZCOztRQUhhdTZCLGlCQThCakJGLGVBM0JJcjZCO1FBSDJCNkUsY0FHM0I3RTtRQUhnQ3c2QixzQkFHaEN4NkI7UUEyQkpxNkIsZUE5QmlCRTtRQUFjdjJCO1FBQUtzMkI7Ozs7U0EyQjFCcDRCLE9BR1ZtNEIsb0JBSFVuNEI7TUFKZDtLQUljQSxjQUdWbTRCO3VCQUhlRDtNQU1IO0tBQ2hCOztHQUFFO1lBRUFLLGNBQWM1MkIsSUFBRzNCO0lBQ25CLDhCQURnQjJCLElBQUczQjtHQUNZO1lBNEM3Qnc0QixlQUFleDRCLEdBQUV2QyxHQUFFZ0I7SUFDckIsSUFoQnFCZzZCLDhCQWVBaDZCLElBRVBpNkIsZUFBU3pZO0lBQ3JCO1FBRHFCQSxPQWpCRndZO3VCQWlCUEM7bUJBN0ladkIsU0EySWVuM0IsR0FFSDA0Qjs7S0FFSixJQVNKQyxhQVRJLGdCQUpXbDZCLEdBRUV3aEI7ZUFXakIwWTtNQUFhLFVBWExEO09BN0ladkIsU0EySWVuM0I7T0EzSWZtM0IsU0EySWVuM0IsR0FhWDI0QjtPQUVDLElBYmdCdFksbUJBQVRxWSxlQUFTelk7OztnQkFXakIwWTtPQUtDLElBaEJnQi9YLG1CQUFUOFgsV0FXUkMsWUFYaUIxWTs7O01BN0lyQmtYLFNBMkllbjNCLEdBYVgyNEI7TUFPQyxJQWxCZ0I3WCxtQkFBVDRYLFdBV1JDLFlBWGlCMVk7OztlQUFUeVk7TUE3SVp2QixTQTJJZW4zQixHQWFYMjRCO01BUEMsSUFKZ0J4WSxtQkFBVHVZLGVBQVN6WTs7O0tBT2hCLElBeEJRMlksVUFpQlEzWTtRQWpCRndZLFNBQU5HLFNBQ007S0FDZixJQXBCZUMsVUFvQmYsZ0JBYWVwNkIsR0FmTm02QjtlQWxCTUM7TUE0QmxCO09BbEJhMU4sUUFRRHlOO09BUkdFLDhCQXVCR3I2QjtPQXZCTDZpQjtNQUNkO1VBRGdCd1gsU0FBRnhYO1lBa0JUeVgsU0FsQldEOztRQUVWLDRCQXFCYXI2QixHQXZCTDZpQjs7Ozs7Ozs7Ozs7OztZQWtCVHlYLFNBbEJTelg7Ozs7O1dBbUJiLDhCQUlrQjdpQixHQWZObTZCLFNBVVJHLFNBVlFIO1dBVVJHOzs7Ozs7TUFMSixJQXRCZWxPLFlBaUJIK04saUJBakJDSTtnQkFES0g7V0FBUUk7O2tCQUFSSjtRQU5kO1dBTXNCSTs7VUFDVDFjLDRCQWdDQzlkLElBaENMdzBCLFNBdUJUaUcsT0F2QldyTztNQUNoQjtVQURrQnRPLE9BdUJiMmMsTUF0Qlk7VUFDZCxnQkE4QmdCejZCLEdBVGR5NkIsVUF4QmNMO1lBQ0h0NEIsSUF1QlgyNEIsY0F2QlNDLDBCQXVCVEQsT0F2QlczNEI7OztVQUdiLGdCQTZCZ0I5QixHQVRkeTZCLFVBeEJzQkQ7WUFDWHpjLE1BdUJYMGMscUJBdkJXMWM7OztnQkFBRnlXO1lBQUV6eUIsTUF1QlgwNEIsY0F2QlNFLDBCQXVCVEYsT0F2QlcxNEI7Ozs7OztXQXdCZjtnQ0FRa0IvQixHQWhDSG9zQixZQXVCWHFPLE9BTlFOO1dBTVJNOzs7O1NBV2dCRyxxQkFRWkM7S0F6R1R6QixXQStGZTczQixHQVdHLFdBWER2QyxHQVVSNjdCO1NBUkdaLGVBQVN6WTs7R0FzQlo7WUFFVHNaLFNBQVN2NUIsR0FBRStCO0lBQ1gsUUFEV0EsT0FBRi9CLFFBQUUrQixLQUFGL0IsT0FBRStCO0lBRVQ7R0FFaUI7WUFJbkIyUSxPQUFPMVM7YUFDRDZaLElBQUl0WjtLQUVWLEdBSE9QLFFBQ0dPLEdBRWM7S0FHdEIsSUFESTNCLDBCQUxDb0IsTUFDR08sSUFLUixNQUxRQTtLQUtSLFdBREkzQixpQmpDclRYLE9pQ2lUV2liO0lBS21CO0lBRTNCO3lCakN4VEgsT2lDaVRXQTtHQU9IO1lBRUg2RCxRQUFRMWQ7YUFDRjZaLElBQUl0WjtLQUVWLEdBSFFQLFFBQ0VPLEdBRWM7S0FHdEIsSUFESTNCLDBCQUxFb0IsTUFDRU8sSUFLUixNQUxRQTtLQUtSLGVBTFFBLEdBSUozQixrQmpDL1RYLE9pQzJUV2liO0lBS3VCO0lBRS9CO3lCakNsVUgsT2lDMlRXQTtHQU9IO1lBRUg0WCxRQUFRenhCLEdBQUVnTTtJQUFlLGtCakNwVTlCLE9pQ21JS21yQixTQWlNUW4zQjtJQUFRLHNDQUFOZ007R0FBK0I7WUFFekMrTixPQUFPeFosR0FDRCxJQUFKUCxJQXhTRjZKLFlBcVNBNG5CLFFBR0V6eEIsR0FES08sSUFFVCxPQURJUCxFQUVIO1lBYUN3NUIsU0FBU3g1QixHQUFFcEI7SUFDYixJQUFJKzRCLGVBRE8zM0I7Y0FDUDIzQixjQTFRRmIsT0F5UVM5MkI7c0NBQUVwQjtJQUFGb0IsT0FDUDIzQjs7R0FHc0I7WUFFeEI4QixhQUFhejVCLEdBQUVwQjtJQUNqQixJQUFJKzRCLGVBRFczM0I7Y0FDWDIzQixjQWhSRmIsT0ErUWE5MkI7SUFHZix5QkFIZUEsWUFBRXBCO0lBQUZvQixPQUNYMjNCOztHQUdzQjtZQUV4QitCLGFBQWExNUIsR0FBRXBCO0lBQ2pCLElBQUkrNEIsZUFEVzMzQjtjQUNYMjNCLGNBdFJGYixPQXFSYTkyQjtJQUdmLHlCQUhlQSxZQUFFcEI7SUFBRm9CLE9BQ1gyM0I7O0dBR3NCO1lBRXhCZ0MsYUFBYTM1QixHQUFFcEI7SUFDakIsSUFBSSs0QixlQURXMzNCO2NBQ1gyM0IsY0E1UkZiLE9BMlJhOTJCO0lBR2YseUJBSGVBLFlBQUVwQjtJQUFGb0IsT0FDWDIzQjs7R0FHc0I7WUFFeEJpQyxhQUFhNTVCLEdBQUVwQjtJQUNqQix3Q0FEaUJBO1dBbEJmNjZCLGFBa0JhejVCO0dBQ3dDO1lBRXJENjVCLGFBQWE3NUIsR0FBRXBCO0lBQ2pCLElBRGlCOFk7SUFDc0IsT0F0QnJDK2hCLGFBcUJhejVCLEdBQUUwWDtHQUNzQztZQUVyRG9pQixhQUFhOTVCLEdBQUVwQjtJQUNqQiwyQkFBdUMsaUJBRHRCQTtJQUNzQixPQW5CckM4NkIsYUFrQmExNUI7R0FDd0M7WUFFckQrNUIsYUFBYS81QixHQUFFcEI7SUFDakIsSUFEaUI4WSwyQkFDNkIsaUJBRDdCOVk7SUFDNkIsT0F0QjVDODZCLGFBcUJhMTVCLEdBQUUwWDtHQUNzQztZQUVyRHNpQixhQUFhaDZCLEdBQUVwQjtJQUNqQiwyQkFBdUMsaUJBRHRCQTtJQUNzQixPQW5CckMrNkIsYUFrQmEzNUI7R0FDd0M7WUFFckRpNkIsYUFBYWo2QixHQUFFcEI7SUFDakIsSUFEaUI4WSwyQkFDNkIsaUJBRDdCOVk7SUFDNkIsT0F0QjVDKzZCLGFBcUJhMzVCLEdBQUUwWDtHQUNzQzs7OztPQS9WckQ3TjtPQU1BK3NCO09BQ0EzVDtPQUVBekk7T0FNQU87T0FRQXZGO09BTUExTDtPQUVBa3FCO09BRUE2QztPQWlLQTBCO09BdUVBZ0I7T0FyS0FwQztPQVNJRztPQWdCQUU7T0FSQUQ7T0EyQkpNO09BT0FDO09BbEJBTDtPQVFBRztPQWtHQVk7T0F0RkFUO09BZ0NBRTtPQXdGQXZsQjtPQVVBZ0w7T0FVQStUO09BRUExWDtPQWdCQXlmOztPQU1BQztPQXFCQUk7T0FIQUQ7T0FsQkFIO09BcUJBSTtPQUhBRDtPQVpBRjtPQXFCQUs7T0FIQUQ7T0FaQUg7T0FxQkFNO09BSEFEOzs7RWpDMVhMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJa0NnbUZXRTtJQVFRQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBaGxGZEMsdUJBQXFCLDBDQUFvQjtZQUd6Q0MsZ0JBQWdCcDlCLFVBQVNvRTtJQUMzQjtLQUNJaTVCLFVBRnVCajVCO0tBRUNrNUIsYUFGRGw1QjtLQUlDLDhCQUpWcEUsVUFFZHE5QixXQUF3QkM7SUFDNUIsc0JBSGtCdDlCLFVBRWRxOUIsU0FFRjtHQUFpRTtZQUVqRUUsZ0JBQWdCdjlCO0lBQ2xCLG1DQURrQkE7R0FDTTtZQUd0Qnc5QixhQUFheDlCO0lBQ2YsSUFBSXk5QixhQWRGTixvQkFlRjc1Qjs7S0FFOEIsMkJBSmZ0RCxVQUVmc0Q7S0FDRSxlQUZFbTZCLFlBQ0puNkIsR0FFSTtLQURGLFdBREZBO2tCQUlBLG9DQUxJbTZCO1NBQ0puNkI7O0dBSWdDO1lBRzlCbzZCLGVBQWUxOUIsVUFBU29FO0lBQzFCLElBQ0lpNUIsVUFGc0JqNUIsYUFFRWs1QixhQUZGbDVCO2tCQUdiLGdCQUhJcEUsVUFFYnE5QixXQUF3QkM7R0FDOEI7WUFheERLLGVBQWVDO0lBQVUsS0FBVkEsU0FDUDtRQUNIQyxRQUZVRDtJQUVELGNBQVRDO0dBQW1DO1lBU3hDQywrQkFHQXg5QixLQUFJeTlCO0lBQU8sVUFBWHo5Qjs7O1FBRUEsZUFGSXk5Qjs7UUFJSixlQUpJQTs7UUFnQ0osZ0JBaENJQTtnQkFzQ0osZ0JBdENJQTs7V0FBSno5Qjs7V0FLZXM5QixVQUxmdDlCLFFBTUEsZUFwQkFxOUIsZUFtQmVDLFVBTFhHOztXQU9nQkMsWUFQcEIxOUI7T0FRQSxlQXRCQXE5QixlQXFCb0JLLFlBUGhCRDs7V0FTZ0JFLFlBVHBCMzlCLFFBU2FsQyxRQVRia0M7T0FVQSxlQURhbEMsT0F2QmJ1L0IsZUF1Qm9CTSxlQVRoQkY7O1dBV2tCRyxZQVh0QjU5QixRQVdlL0IsVUFYZitCO09BWUEsZUFEZS9CLFNBekJmby9CLGVBeUJzQk8sZUFYbEJIOztXQWNzQkksWUFkMUI3OUIsUUFjbUI1QixVQWRuQjRCO09BZUEsZUFEbUI1QixTQTVCbkJpL0IsZUE0QjBCUSxlQWR0Qko7O1dBaUJrQkssWUFqQnRCOTlCLFFBaUJlekIsVUFqQmZ5QjtPQWtCQSxlQURlekIsU0EvQmY4K0IsZUErQnNCUyxlQWpCbEJMOztXQVRhTSxXQVNqQi85QixRQW9CZWcrQixZQXBCZmgrQjtVQVRpQis5QjtZQUVaRSxPQUZZRix3QkFFWkU7OztPQTRCTCxvQkFuQ0FaLGVBa0NlVyxrQkFwQlhQOztXQXdCU1MsWUF4QmJsK0I7T0F5QkEsZUF2Q0FxOUIsZUFzQ2FhLFlBeEJUVDs7V0EwQnlCMytCLFFBMUI3QmtCLFFBMEJvQm0rQixZQTFCcEJuK0I7T0EyQkEsZ0JBRG9CbStCLFdBQVNyL0IsT0ExQnpCMitCOztXQTRCMkJ6K0IsVUE1Qi9CZ0IsUUE0QnNCbytCLFlBNUJ0QnArQjtPQTZCQSxnQkFEc0JvK0IsV0FBU3AvQixTQTVCM0J5K0I7O1dBaUM4Qi85QixXQWpDbENNLFFBaUN1QkwsWUFqQ3ZCSztPQWtDQSxnQkFEdUJMLFdBQVdELFVBakM5Qis5QjttQkFtQ3FCNTlCLFVBbkN6QkcsUUFvQ0EsZ0JBRHlCSCxTQW5DckI0OUI7O0dBc0NpQztZQTBHckNZLHdCQUF3QjMvQixPQUMxQixhQUQwQkEsbUJBT1g7WUE2QmI0L0IsY0FBY0M7SUFBWSxjQUFtQixrQkFBL0JBO0dBQXVEO1lBR3JFQyxrQkFBa0I1NEIsS0FBSTY0QjtJQUN4QjtLQUFJajZCLG1DQURnQm9CO0tBRWhCODRCLFVBRmdCOTRCLFNBQUk2NEI7WUFDcEJqNkIsTUFDQWs2Qjs7S0FFWTtNQUFWdGUsVUFBVSwyQkFIWjViLGFBQ0FrNkI7TUFHRUMsVUFBVSxrQkFEVnZlO0tBRUosNkJBTmtCeGEsV0FLZCs0QixZQUpGbjZCO0tBRGdCb0IsU0FLZCs0Qjs7Ozs7O0dBR0w7WUFHQ0MsZ0JBQWdCaDVCLEtBQUk5QjtJQVhwQjA2QixrQkFXZ0I1NEI7SUFFbEIsZUFGa0JBLGdCQUFJOUI7SUFBSjhCOztHQUdJO1lBR3BCaTVCLGtCQUFrQmo1QixLQUFJMUU7SUFDeEIsSUFBSTQ5QixnQ0FEb0I1OUI7SUFqQnRCczlCLGtCQWlCa0I1NEIsS0FDaEJrNUI7SUFFSiw4QkFId0I1OUIsTUFBSjBFLGdCQUNoQms1QjtJQURnQmw1QixrQkFDaEJrNUI7O0dBR3dCO1lBRzFCQyxnQkFBZ0JuNUI7SUFDbEIsbUNBRGtCQTtHQUNrQjtZQUtsQ281QixjQUFjbGhDO0lBQVEsT0FBUkE7OztPQUVvQjs7O09BQXdCOzs7T0FDaEQ7OztPQUF3Qjs7Ozs7T0FGRTtlQUMxQjs7R0FDMkI7WUFJckNtaEMsY0FBZ0I1VCxLQUFRM3NCO0lBQVEsR0FBaEIyc0IsU0FBR0UsTUFBSEYsYUFBR0UsY0FBSDJUO1dBQVF4Z0M7O09BQ2I7O09BQWlCOztPQUNqQjs7T0FBaUI7O09BQ2pCOztPQUFpQixPQUhad2dDOztPQUlMOztPQUFpQjtlQUNoQjs7R0FBRztZQXlFZkMsYUFBYXY1QixLQUFJdzVCO0lBQVEsT0FBUkE7O09BQ1IsT0F6R1RSLGdCQXdHYWg1Qjs7T0FFSjtlQUNBLE9BM0dUZzVCLGdCQXdHYWg1Qjs7R0FHbUI7WUFHaEN5NUIsb0JBQW9CejVCLEtBQUkwNUI7SUFDMUIsT0FEMEJBLFdBOUd4QlYsZ0JBOEdvQmg1QixXQUFJMDVCO0dBQ2M7WUFJdENDLGVBQWUzNUIsS0FBSTAzQjtJQUFVLEtBQVZBLFNBQ1g7UUFDSEMsUUFGY0Q7SUFFaUIsT0EvR3BDdUIsa0JBNkdlajVCLEtBRXFCLDJCQUEvQjIzQjtHQUFvRDtZQUt6RGlDLGVBQ0E1NUIsS0FBSWxJO0lBQU8sVUFBUEEsa0JBQ1U7YUFEVkE7U0FFZ0JvRCxJQUZoQnBELFFBRVMwaEMsUUFGVDFoQztLQW5CSnloQyxhQW1CQXY1QixLQUVhdzVCO0tBRVMsT0F6SHRCUCxrQkFxSEFqNUIsS0FJc0IsMkJBRkY5RTs7UUFHUjIrQixVQUxSL2hDO0lBbkJKeWhDLGFBbUJBdjVCLEtBS1k2NUI7SUFDWixPQWpJQWIsZ0JBMkhBaDVCO0dBT3VCO1lBR3ZCODVCLGlCQUNFOTVCLEtBQUloSTtJQUFRLFVBQVJBO21CQWhJTmloQyxrQkFnSUVqNUI7UUFFWTlFLElBRlJsRDtJQXRJTmdoQyxnQkFzSUVoNUI7SUFJb0IsT0FwSXRCaTVCLGtCQWdJRWo1QixLQUlvQiwyQkFGUjlFO0dBSVk7WUFLMUI2K0Isa0JBQWtCLzVCLEtBQUk5SDtJQUFRLE9BQVJBOzs7T0FDSCxPQWxKbkI4Z0MsZ0JBaUprQmg1Qjs7O09BRUMsT0FuSm5CZzVCLGdCQWlKa0JoNUI7Ozs7Ozs7T0FJaEIsT0FySkZnNUIsZ0JBaUprQmg1QjtlQUsrQjs7R0FBRTtZQVluRGc2QixrQkFBa0JoNkIsS0FBSTA1QixVQUFTeGhDLE9BQU1KLEtBQUlFLE1BQUtrRztJQWxLOUM4NkIsZ0JBa0trQmg1QjtJQXBEbEJ5NUIsb0JBb0RrQno1QixLQUFJMDVCO0lBakJ0Qkssa0JBaUJrQi81QixLQUFhOUg7SUF4Qy9CMGhDLGVBd0NrQjU1QixLQUFtQmxJO0lBN0JyQ2dpQyxpQkE2QmtCOTVCLEtBQXVCaEk7SUFsS3pDZ2hDLGdCQWtLa0JoNUIsS0FBNEI5QjtJQU81QixPQXpLbEI4NkIsZ0JBa0trQmg1QixLQS9JbEJvNUIsY0ErSStCbGhDO0dBT1E7WUFLdkMraEMsa0JBQWtCajZCLEtBQUlsSDtJQUN4QixPQUR3QkE7OztPQTlLdEJrZ0MsZ0JBOEtrQmg1QjtlQTlLbEJnNUIsZ0JBOEtrQmg1Qjs7Z0JBQUlsSCxXQTlLdEJrZ0MsZ0JBOEtrQmg1QjtHQVFlO1lBYWpDazZCLHlCQUF5QmxEO0lBQWlCLFVBQWpCQTs7O1FBQ0Q7O1FBQ0E7O1FBRUE7O1FBQ0E7O1FBQ0E7O1FBRUE7Z0JBQ0E7O1dBVENBOztXQUdsQmgrQixNQUhrQmcrQixtQkFHRCxPQUFqQmgrQjs7V0FJS21oQyxRQVBhbkQsbUJBT0QsT0FBWm1EOztPQUdVLElBQVhqOEIsSUFWYzg0QixtQkFVSCx1Q0FBWDk0QjtPQUFXOztHQUFpQjtZQUt2Q2s4QixvQkFBb0JwNkIsS0FBSS9HO0lBQU0sY0FBTkE7Y0E1TXhCZ2dDLGtCQTRNb0JqNUI7Y0FsTnBCZzVCLGdCQWtOb0JoNUIsS0FBSS9HO0dBRUk7WUFHNUJvaEMsc0JBQXNCcjZCLEtBQUloSDtJQUM1QixpQ0FENEJBLGNBQzVCOzs7O01BTkVvaEMsb0JBS3NCcDZCLEtBRUUsZ0JBRkVoSCxLQUM1Qm9FO01BQ0UsV0FERkE7Ozs7OztHQUVJO1lBTUVrOUIsYUFFSnQ2QixLQUFJOUc7SUFBUyxJQUFURTtJQUFTO2VBQVRBLHNCQXlCWTtZQXpCWkE7OztRQTVOSjYvQixrQkE0TkFqNUI7WUFBSTVHOzs7O1FBNU5KNi9CLGtCQTROQWo1QjtZQUFJNUc7Ozs7UUE1Tko2L0Isa0JBNE5BajVCO1lBQUk1Rzs7OztRQTVOSjYvQixrQkE0TkFqNUI7WUFBSTVHOzs7O1FBNU5KNi9CLGtCQTROQWo1QjtZQUFJNUc7Ozs7UUE1Tko2L0Isa0JBNE5BajVCO1lBQUk1Rzs7OztRQTVOSjYvQixrQkE0TkFqNUI7WUFBSTVHOzs7O1FBNU5KNi9CLGtCQTROQWo1QjtZQUFJNUc7OztrQ0FrQlc0aEMsWUFsQlg1aEM7UUE1Tko2L0Isa0JBNE5BajVCO1FBRklzNkIsYUFFSnQ2QixLQWtCZWc3QjtRQTlPZi9CLGtCQTROQWo1QjtZQUFJNUc7OzttQ0FxQmE4aEMsY0FyQmI5aEM7UUE1Tko2L0Isa0JBNE5BajVCO1FBRklzNkIsYUFFSnQ2QixLQXFCaUJrN0I7UUFqUGpCakMsa0JBNE5BajVCO1lBQUk1Rzs7OztRQTVOSjYvQixrQkE0TkFqNUI7WUFBSTVHOzs7O1FBNU5KNi9CLGtCQTROQWo1QjtZQUFJNUc7Ozs7UUE1Tko2L0Isa0JBNE5BajVCO1lBQUk1Rzs7OztRQTVOSjYvQixrQkE0TkFqNUI7WUFBSTVHOzs7O1FBNU5KNi9CLGtCQTROQWo1QjtZQUFJNUc7Ozs7R0F5QmM7WUFJZG9pQztnQkFHVztRQUNILy9CO2VBSlIrL0Isb0JBSVEvL0I7R0FBOEI7WUFrSDFDZ2dDLGNBQWM1RDtJQUNOLElBaEhHNzNCLE1BcFJYMDRCO2FBcVJNZ0QsUUFFSjdELEtBQUk2QjtLQUFZLElBQWhCaUMsYUFBSUM7O0tBQVk7Z0JBQWhCRCxvQkFxR2lCO2FBckdqQkE7OztTQXpRRjNDLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQXpRTjVDLGdCQXNRV2g1QjthQUdUMjdCLGNBQUlDOzs7YUFBSnJsQztTQXpRRnlpQyxnQkFzUVdoNUI7U0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7U0F6UU41QyxnQkFzUVdoNUI7YUFHVDI3QixnQkFBSUM7OzthQUFKcGxDLG1CQUNRc0IsTUFEUjZqQztTQXpRRjNDLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQS9JTmhDLGVBNElXNTVCLEtBSURsSTtTQTFRVmtoQyxnQkFzUVdoNUI7YUFHVDI3QixnQkFBSUM7OzthQUFKbmxDLG1CQUthc0IsUUFMYjRqQztTQXpRRjNDLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQS9JTmhDLGVBNElXNTVCLEtBUUlqSTtTQTlRZmloQyxnQkFzUVdoNUI7YUFHVDI3QixnQkFBSUM7Ozs7VUFBSmxsQztVQWhIb0NzQixPQWdIcEMyakM7VUFoSGdDMWpDLFFBZ0hoQzBqQztVQWhIMEJ6akMsUUFnSDFCeWpDO1NBelFGM0MsZ0JBc1FXaDVCO1NBeEpYeTVCLG9CQXdKV3o1QixLQUdMNDdCO1NBeEhON0Isa0JBcUhXLzVCLEtBN0dpQjlIO1NBL0I1QjBoQyxlQTRJVzU1QixLQTdHdUIvSDtTQXBCbEM2aEMsaUJBaUlXOTVCLEtBN0cyQmhJO1NBekp0Q2doQyxnQkFzUVdoNUIsS0FuUFhvNUIsY0FzSTRCbGhDO2FBZ0gxQnlqQyxnQkFBSUM7Ozs7VUFBSmpsQztVQWFtQndCLFNBYm5Cd2pDO1VBYWN2akMsUUFiZHVqQztVQWFPdGpDLFVBYlBzakM7U0F2R0YzQixrQkFvR1doNkIsS0FHTDQ3QixZQWFHdmpDLFNBQU9ELE9BQUtEO2FBYm5Cd2pDLGdCQUFJQzs7OztVQUFKaGxDO1VBZ0J1QjBCLFNBaEJ2QnFqQztVQWdCa0JwakMsUUFoQmxCb2pDO1VBZ0JXbmpDLFVBaEJYbWpDO1NBdkdGM0Isa0JBb0dXaDZCLEtBR0w0N0IsWUFnQk9wakMsU0FBT0QsT0FBS0Q7YUFoQnZCcWpDLGdCQUFJQzs7OztVQUFKL2tDO1VBbUJtQjRCLFNBbkJuQmtqQztVQW1CY2pqQyxRQW5CZGlqQztVQW1CT2hqQyxVQW5CUGdqQztTQXZHRjNCLGtCQW9HV2g2QixLQUdMNDdCLFlBbUJHampDLFNBQU9ELE9BQUtEO2FBbkJuQmtqQyxnQkFBSUM7Ozs7VUFBSjlrQztVQWhGc0M4QixTQWdGdEMraUM7VUFoRmtDOWlDLFFBZ0ZsQzhpQztVQWhGNEI3aUMsUUFnRjVCNmlDO1NBelFGM0MsZ0JBc1FXaDVCO1NBeEpYeTVCLG9CQXdKV3o1QixLQUdMNDdCO1NBM0ZOM0Isa0JBd0ZXajZCLEtBN0VtQmxIO1NBL0Q5QjhnQyxlQTRJVzU1QixLQTdFeUJuSDtTQXBEcENpaEMsaUJBaUlXOTVCLEtBN0U2QnBIO1NBekx4Q29nQyxnQkFzUVdoNUIsS0E1T1hxNUIsaUJBK0o4QnZnQzthQWdGNUI2aUMsZ0JBQUlDOzs7YUFBSjVrQyxtQkFnQ00rQixRQWhDTjRpQztTQXpRRjNDLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQS9JTmhDLGVBNElXNTVCLEtBbUNIakg7U0F6U1JpZ0MsZ0JBc1FXaDVCO2FBR1QyN0IsZ0JBQUlDOzs7YUFBSjFrQztTQW5RRitoQyxrQkFnUVdqNUI7YUFHVDI3Qjs7O2lDQXVEZ0IzaUMsTUF2RGhCMmlDO1NBbERGdEIsc0JBK0NXcjZCLEtBMERPaEg7YUF2RGhCMmlDOzs7aUNBMERjMWlDLE1BMURkMGlDO1NBdkRGdkIsb0JBb0RXcDZCLEtBNkRLL0c7YUExRGQwaUM7OztpQ0E4RHFCemlDLFFBOURyQnlpQyxVQThEWWpFLFVBOURaaUU7U0F6UUYzQyxnQkFzUVdoNUI7U0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7U0F0Sk5qQyxlQW1KVzM1QixLQWlFRzAzQjtTQXZVZHNCLGdCQXNRV2g1QjtTQXRDUHM2QixhQXNDT3Q2QixLQWlFWTlHO1NBdlV2QjgvQixnQkFzUVdoNUI7U0F0UVhnNUIsZ0JBc1FXaDVCO2FBR1QyN0IsaUJBQUlDOzs7YUFBSnRrQyxvQkFtRXVCOEIsVUFuRXZCdWlDLFVBbUVjN0QsWUFuRWQ2RDtTQXpRRjNDLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQXRKTmpDLGVBbUpXMzVCLEtBc0VLODNCO1NBNVVoQmtCLGdCQXNRV2g1QjtTQXRDUHM2QixhQXNDT3Q2QixLQXNFYzVHO1NBNVV6QjQvQixnQkFzUVdoNUI7U0F0UVhnNUIsZ0JBc1FXaDVCO2FBR1QyN0IsaUJBQUlDOzs7YUFBSnRpQztTQXpRRjAvQixnQkFzUVdoNUI7U0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7U0F6UU41QyxnQkFzUVdoNUI7YUFHVDI3QixpQkFBSUM7OzthQUFKcmlDO1NBelFGeS9CLGdCQXNRV2g1QjtTQXhKWHk1QixvQkF3Sld6NUIsS0FHTDQ3QjtTQXpRTjVDLGdCQXNRV2g1QjthQUdUMjdCLGlCQUFJQzs7O2FBQUpwaUMsb0JBeUZnQkMsYUF6RmhCa2lDO1NBbERGdEIsc0JBK0NXcjZCLEtBbkVYazZCLHlCQStKa0J6Z0M7YUF6RmhCa2lDOzs7YUE0RjRCamlDLFVBNUY1QmlpQyxVQTRGZ0JoaUMsYUE1RmhCZ2lDO1NBNkZBLFNBRGdCaGlDO2NBRU93Z0MsUUFGUHhnQztVQS9WbEJzL0Isa0JBZ1FXajVCO1VBaFFYaTVCLGtCQWdRV2o1QixLQWlHY202Qjs7O2NBRUEwQixRQUpQbGlDO1VBL1ZsQnMvQixrQkFnUVdqNUI7VUFoUVhpNUIsa0JBZ1FXajVCLEtBbUdjNjdCOzthQWhHdkJGLFFBNEY0QmppQzs7O2FBNUY1QkU7U0F6UUZvL0IsZ0JBc1FXaDVCO1NBeEpYeTVCLG9CQXdKV3o1QixLQUdMNDdCO1NBelFONUMsZ0JBc1FXaDVCO2FBR1QyN0IsaUJBQUlDOzs7YUFBSi9oQyxvQkE5TmtCQyxXQThObEI2aEMsVUF5RWU1aEMsWUF6RWY0aEM7U0F6UUYzQyxnQkFzUVdoNUI7U0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7U0F0Sk5qQyxlQW1KVzM1QixLQTRFTWpHOztVQTFQZndHO3FCQUFXUCxLQUFJNUM7YUFBVSxJQUd6QmMsSUFIeUIsdUJBQVZkOzJCQUdmYzt3QkEzRkY4NkIsZ0JBd0ZhaDVCLFVBeEZiZzVCLGdCQXdGYWg1Qjs7MkJBR1g5QjswQkEzRkY4NkIsZ0JBd0ZhaDVCLFVBeEZiZzVCLGdCQXdGYWg1Qjt5QkF4RmJnNUIsZ0JBd0ZhaDVCLEtBR1g5QjtZQUE2QjtTQTNGL0I4NkIsZ0JBc1FXaDVCO1NBdktSO1VBZlFwRjtZQWhUWDQ4QixlQTJRb0IxOUI7Z0JBM0NwQmsvQixnQkFzUVdoNUIsVUEvZVhzM0IsYUFvUm9CeDlCOztVQUVoQmdpQztxQkFtQ09saEM7c0JBbkNQbWhDLFNBQVM3OUI7Y0FDWDtlQUFZODlCLFFBQWdDLDJCQURqQzk5QjtlQUNQKzlCLFNBQXNCLDJCQURmLzlCO2VBRVgsT0EvUUZzNUIsZUFnVFc1OEIsS0FuQ0VzRDtjQUVYO2VBQ1E7dUJBaFJWczVCLGVBZ1RXNThCLEtBbENMcWhDO2dCQUVJLGNBaFJWekUsZUFnVFc1OEIsS0FsQ0dvaEM7Ozs7Y0FFeUI7YUFBeUI7b0JBSDVERDs7Z0NBbUNPbmhDO1NBL0JSLEdBSkNtaEMsY0E3Q0ovQyxnQkFzUVdoNUI7YUE5TU81Qzs7U0FIbEI7YUFHa0JBO1dBRmIsS0F0UkxvNkIsZUFnVFc1OEIsS0ExQmEsdUJBRU53QyxLQURYLElBSFNDLE1BSUVELGVBSkZDO1dBS1Ysc0NBRFlEOztnQ0FnQ2hCbUQsV0E4S1NQOzs7YUEzTUksSUFQQ21lLE1BSUUvZ0IsZUFKRitnQjs7Ozs7O1lBUVQsSUFDWTlFLE1BTERqYztZQU1mLEtBOVJIbzZCLGVBZ1RXNThCLEtBbEJXLHVCQURIeWU7YUEyQmpCOVksV0E4S1NQLEtBek1RcVo7YUFnQmpCLElBekJjNkQsTUFTRzdELGFBTERqYyxJQUpGOGY7OztZQVdSO2lEQUZXN0Q7Ozs7Y0EyQmpCOVksV0E4S1NQO2NBOUtUTyxXQThLU1A7Ozs7OzttQkF0ZVh3M0IsZUFnVFc1OEIsS0FiZ0MsdUJBTnhCeWU7YUEyQmpCOVksV0E4S1NQLEtBek1RcVo7YUFPZixJQWhCWTJELE1BU0czRCxhQUxEamMsSUFKRjRmOzs7O2FBa0JELEtBdFNmd2EsZUFnVFc1OEIsS0FWd0IsdUJBVGhCeWU7Y0EyQmpCOVksV0E4S1NQLEtBek1RcVo7Y0EyQmpCOVksV0E4S1NQLEtBek1RcVo7Y0FXZixJQXBCWXlELE1BU0d6RCxhQUxEamMsSUFKRjBmOzs7YUF1QlosSUFLYTVSLElBbkJFbU8sYUFtQkpnRixNQW5CSWhGLGFBbUJGeUk7YUFDakI7Y0FBa0I7d0JBRERBO21CQWhUakIwVixlQWdUVzU4QixLQUMyQix1QkFEckJrbkIsT0FPZixJQVBlb2E7Y0FRZjM3QixXQThLU1AsS0F0TElxZTtjQVFiOWQsV0E4S1NQO2NBOUtUTyxXQThLU1AsS0F0TE04aEI7NEJBS0MsSUFqQ0ZyRSxNQTRCQ3FFLGFBeEJDMWtCLElBSkZxZ0I7Ozs7OztVQURiLEdBTkNzZSxjQTdDSi9DLGdCQXNRV2g1QjtVQXRRWGc1QixnQkFzUVdoNUI7Y0FHVDI3QixpQkFBSUM7Ozs7YUFBSjVoQyxvQkF0T2NDLFVBc09kMGhDO1NBelFGM0MsZ0JBc1FXaDVCO1NBeEpYeTVCLG9CQXdKV3o1QixLQUdMNDdCO2dCQXRPVTNoQzs7Ozs7OztTQW5DaEIrK0IsZ0JBc1FXaDVCO2FBR1QyN0IsaUJBQUlDOzs7YUFBSjFoQztTQXpRRjgrQixnQkFzUVdoNUI7U0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7U0FsRE52QixzQkErQ1dyNkI7YUFHVDI3QixpQkFBSUM7Ozs7VUFxRmdCemhDLFVBckZwQndoQztVQXFGZXZoQyxNQXJGZnVoQztrQkE5Y0YvRCwrQkFtaUJpQng5QixLQUFLRDtVQXJGcEJ3aEM7VUFBSUM7OztTQTJDVTtVQURJdmhDLFVBMUNsQnNoQztVQTBDUXBoQyxRQTFDUm9oQztVQTJDYyxPQXJEWkgsb0JBb0RNamhDOzs7Y0FDUm9qQjs7V0FwVEZxYixnQkFzUVdoNUI7V0F4Slh5NUIsb0JBd0pXejVCLEtBR0w0N0I7V0F6UU41QyxnQkFzUVdoNUI7V0FnRFAsV0FGRjJkOzs7OzthQTNDQWdlLFFBMENrQnRoQyxTQTFDZHVoQzs7OztJQXFHZTtJQXZHZkYsUUE4R1E3RDtJQUVoQixPQTFXRXNCLGdCQXlQV241QjtHQWtITTtZQVdibzhCO2tDQXVCWTs7O1dBakJSOWxDLGlCQUFRLFdBTlo4bEMsS0FNSTlsQzs7V0FPRUMsbUJBQVEsV0FiZDZsQyxLQWFNN2xDOztXQU5IQyxtQkFBUSxXQVBYNGxDLEtBT0c1bEM7O1dBQ0VDLG1CQUFRLFdBUmIybEMsS0FRSzNsQzs7V0FFSUMsbUJBQVEsV0FWakIwbEMsS0FVUzFsQzs7V0FESkMsbUJBQVEsV0FUYnlsQyxLQVNLemxDOztXQUVBQyxtQkFBUSxXQVhid2xDLEtBV0t4bEM7O1dBQ0RDLG1CQUFRLFdBWlp1bEMsS0FZSXZsQzs7V0FPV0MsbUJBQUpDLGVBQ2YsV0FEZUEsSUFuQlhxbEMsS0FtQmV0bEM7O1dBRVFFLG1CQUFMVSxnQkFBTFQ7T0FDakIsV0FEc0JTLEtBQUxULEtBckJibWxDLEtBcUJ1QnBsQzs7V0FObEJFLG1CQUFRLFlBZmJrbEMsS0FlS2xsQzs7V0FEQUMsb0JBQVEsWUFkYmlsQyxLQWNLamxDOztXQUVGQyxvQkFBUSxZQWhCWGdsQyxLQWdCR2hsQzs7V0FDR0Msb0JBQVEsWUFqQmQra0MsS0FpQk0va0M7bUJBQ1FDLG9CQUFRLFlBbEJ0QjhrQyxLQWtCYzlrQzs7R0FLVTtZQUV4QitrQzs7OztRQWNpQjtTQURiL2xDO1NBQ2EsUUFkakIrbEMsY0FhSS9sQztTQUNRZ21DO1NBQUpDO1NBQUpDO1NBQUpDO2dDQUVvQixXQUZoQkQsUUFFMkIsU0FBSTtRQUR2QztnQ0FBd0IsV0FEcEJDLFFBQytCLFNBQUk7O2dCQUQzQkY7Z0JBQUlEOztRQUtLO1NBRFgvbEM7U0FDVyxVQW5CakI4bEMsY0FrQk05bEM7U0FDTW1tQztTQUFKQztTQUFKQztTQUFKQztnQ0FFb0IsV0FGaEJELFVBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxVQUMrQixTQUFJOztnQkFEM0JGO2dCQUFJRDs7UUFLSztTQURkbG1DO1NBQ2MsVUF4QmpCNmxDLGNBdUJHN2xDO1NBQ1NzbUM7U0FBSkM7U0FBSkM7U0FBSkM7Z0NBRW9CLFdBRmhCRCxVQUUyQixTQUFJO1FBRHZDO2dDQUF3QixXQURwQkMsVUFDK0IsU0FBSTs7Z0JBRDNCRjtnQkFBSUQ7O1FBS0s7U0FEWnJtQztTQUNZLFVBN0JqQjRsQyxjQTRCSzVsQztTQUNPeW1DO1NBQUpDO1NBQUpDO1NBQUpDO2dDQUVvQixXQUZoQkQsVUFFMkIsU0FBSTtRQUR2QztnQ0FBd0IsV0FEcEJDLFVBQytCLFNBQUk7O2dCQUQzQkY7Z0JBQUlEOztRQVVLO1NBRFJ4bUM7U0FDUSxVQXZDakIybEMsY0FzQ1MzbEM7U0FDRzRtQztTQUFKQztTQUFKQztTQUFKQztnQ0FFb0IsV0FGaEJELFVBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxVQUMrQixTQUFJOztnQkFEM0JGO2dCQUFJRDs7UUFMSztTQURaM21DO1NBQ1ksVUFsQ2pCMGxDLGNBaUNLMWxDO1NBQ08rbUM7U0FBSkM7U0FBSkM7U0FBSkM7Z0NBRW9CLFdBRmhCRCxVQUUyQixTQUFJO1FBRHZDO2dDQUF3QixXQURwQkMsVUFDK0IsU0FBSTs7Z0JBRDNCRjtnQkFBSUQ7O1FBVUs7U0FEWjltQztTQUNZLFVBNUNqQnlsQyxjQTJDS3psQztTQUNPa25DO1NBQUpDO1NBQUpDO1NBQUpDO2dDQUVvQixXQUZoQkQsVUFFMkIsU0FBSTtRQUR2QztnQ0FBd0IsV0FEcEJDLFVBQytCLFNBQUk7O2dCQUQzQkY7Z0JBQUlEOztRQUtLO1NBRGJqbkM7U0FDYSxVQWpEakJ3bEMsY0FnREl4bEM7U0FDUXFuQztTQUFKQztTQUFKQztTQUFKQztnQ0FFb0IsV0FGaEJELFVBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxVQUMrQixTQUFJOztnQkFEM0JGO2dCQUFJRDs7UUFpQ0s7U0FERHBuQztTQUNDLFVBbEZqQnVsQyxjQWlGZ0J2bEM7U0FDSnduQztTQUFKQztTQUFKQztTQUFKQztnQ0FFb0IsV0FGaEJELFVBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxVQUMrQixTQUFJOztnQkFEM0JGO2dCQUFJRDs7UUFLSztTQURNdG5DO1NBQUxVO1NBQUxUO1NBQ0ksVUF2RmpCb2xDLGNBc0Z1QnJsQztTQUNYMG5DO1NBQUpDO1NBQUpDO1NBQUpDO1NBQ0E5bkMsS0FzQkorbkMsTUF2SUkxQyxLQStHYW5sQyxNQUFLUztTQUdELFVBekZqQjJrQyxjQXdGQXRsQztTQUNZZ29DO1NBQUpDO1NBQUpDO1NBQUpDOzsyQkFJb0IsV0FKUkgsUUFJOEIsV0FOOUJMLFVBTXlDLFNBQUk7OzJCQURyQyxXQUxaQyxVQUtrQyxXQUhsQ0ssUUFHNkMsU0FBSTs7MkJBRHJDLFdBRmhCQyxRQUVzQyxXQUp0Q0wsVUFJaUQsU0FBSTtRQUQ3RDs7aUJBQXdCLFdBSHBCQztpQkFHMEMsV0FEMUNLO2lCQUNxRDtnQkFBSTs7Ozs7UUE5QnhDO1NBRFpob0M7U0FDWSxXQTVEakJtbEMsY0EyREtubEM7U0FDT2lvQztTQUFKQztTQUFKQztTQUFKQztnQ0FFb0IsV0FGaEJELFVBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxVQUMrQixTQUFJOztnQkFEM0JGO2dCQUFJRDs7UUFMSztTQURaaG9DO1NBQ1ksV0F2RGpCa2xDLGNBc0RLbGxDO1NBQ09vb0M7U0FBSkM7U0FBSkM7U0FBSkM7Z0NBRW9CLFdBRmhCRCxXQUUyQixTQUFJO1FBRHZDO2dDQUF3QixXQURwQkMsV0FDK0IsU0FBSTs7Z0JBRDNCRjtnQkFBSUQ7O1FBVUs7U0FEZG5vQztTQUNjLFdBakVqQmlsQyxjQWdFR2psQztTQUNTdW9DO1NBQUpDO1NBQUpDO1NBQUpDO2dDQUVvQixXQUZoQkQsV0FFMkIsU0FBSTtRQUR2QztnQ0FBd0IsV0FEcEJDLFdBQytCLFNBQUk7O2dCQUQzQkY7Z0JBQUlEOztRQUtLO1NBRFh0b0M7U0FDVyxXQXRFakJnbEMsY0FxRU1obEM7U0FDTTBvQztTQUFKQztTQUFKQztTQUFKQztTQUNKLHVCQUd3QixXQUpSSCxXQUltQixTQUFJO2dDQURmLFdBSFpDLFdBR3VCLFNBQUk7Z0NBRGYsV0FGaEJDLFdBRTJCLFNBQUk7UUFEdkM7Z0NBQXdCLFdBRHBCQyxXQUMrQixTQUFJOzs7OztRQUtsQjtTQURINW9DO1NBQ0csV0E1RWpCK2tDLGNBMkVjL2tDO1NBQ0Y2b0M7U0FBSkM7U0FBSkM7U0FBSkM7U0FDSix1QkFHd0IsV0FKUkgsV0FJbUIsU0FBSTtnQ0FEZixXQUhaQyxXQUd1QixTQUFJO2dDQURmLFdBRmhCQyxXQUUyQixTQUFJO1FBRHZDO2dDQUF3QixXQURwQkMsV0FDK0IsU0FBSTs7Ozs7SUFwRXZDLHFCQUdhLFNBQUk7eUJBREosU0FBSTt5QkFESixTQUFJO0lBRGpCLDJCQUFhLFNBQUk7R0FvRjZDO1lBaUI5RHhCLE1BV0U3bkMsS0FBSVM7SUFBTztjQUFYVDtlQUFJUyxrQkE4Q3dCO1lBOUN4QkE7Ozs7Ozs7Ozs7Ozs7OztRQStDYTs7OztZQS9DakJUOztZQUNNc3BDLFFBRE50cEM7a0JBQUlTOzs7OztnQkFDaUI4b0MsUUFEakI5b0MsUUFDMEIsV0FaaENvbkMsTUFZUXlCLE9BQWVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBQ2JDLFVBRlJ4cEM7a0JBQUlTOzs7OztnQkFFcUJncEMsVUFGckJocEMsUUFFOEIsV0FicENvbkMsTUFhVTJCLFNBQWlCQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQUVwQkMsVUFKTDFwQztrQkFBSVM7Ozs7O2dCQUlla3BDLFVBSmZscEMsUUFJd0IsV0FmOUJvbkMsTUFlTzZCLFNBQWNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBQ1pDLFVBTFA1cEM7a0JBQUlTOzs7OztnQkFLbUJvcEMsVUFMbkJwcEMsUUFLNEIsV0FoQmxDb25DLE1BZ0JTK0IsU0FBZ0JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBRVpDLFVBUFg5cEM7a0JBQUlTOzs7OztnQkFPMkJzcEMsVUFQM0J0cEMsUUFPb0MsV0FsQjFDb25DLE1Ba0JhaUMsU0FBb0JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBRHhCQyxVQU5QaHFDO2tCQUFJUzs7Ozs7Z0JBTW1Cd3BDLFVBTm5CeHBDLFFBTTRCLFdBakJsQ29uQyxNQWlCU21DLFNBQWdCQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQUVoQkMsVUFSUGxxQztrQkFBSVM7Ozs7O2dCQVFtQjBwQyxVQVJuQjFwQyxRQVE0QixXQW5CbENvbkMsTUFtQlNxQyxTQUFnQkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WUFMakJDLFVBSE5wcUM7a0JBQUlTOzs7OztnQkFHaUI0cEMsVUFIakI1cEMsUUFHMEIsV0FkaENvbkMsTUFjUXVDLFNBQWVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBNEJIQyxVQS9CbEJ0cUMsUUErQmF1cUMsUUEvQmJ2cUM7a0JBQUlTOzs7OztZQWdDd0I7YUFEa0IrcEMsVUEvQjFDL3BDO2FBK0JxQ2dxQyxRQS9CckNocUM7YUFnQ3dCLE9BM0M5Qm9uQyxNQTBDb0J5QyxTQUE0QkU7WUFDaEQsV0EzQ0EzQyxNQTBDZTBDLE9BQTRCRTs7Ozs7Ozs7Ozs7OztTQUVyQjs7O1lBR09DLFVBcEMzQjFxQyxRQW9DcUIycUMsT0FwQ3JCM3FDLFFBb0NlNHFDLE9BcENmNXFDO2tCQUFJUzs7Ozs7OztZQXNDRzthQURvQm9xQyxVQXJDdkJwcUM7YUFxQ2lCcXFDLE9BckNqQnJxQzthQXFDV3NxQyxPQXJDWHRxQzthQXNDRlgsS0FqREorbkMsTUF2SUkxQyxLQXNMbUJ3RixPQUNOSTthQUVFLFFBaEtmM0YsY0ErSkF0bEM7YUFDVWtyQzthQUFQQztZQUNJLFdBREpBO1lBRUksV0FGR0Q7WUFHZCxXQU5pQkosTUFDTUUsTUFoRHZCakQsTUErQzZCNkMsU0FDQUc7Ozs7Ozs7Ozs7Ozs7U0FNTDs7O1lBakNmSyxVQVZQbHJDO2tCQUFJUzthQVVtQjBxQyxVQVZuQjFxQztTQVU0QixZQXJCbENvbkMsTUFxQlNxRCxTQUFnQkM7O1FBQ1I7O1lBR1JDLFdBZFBwckM7a0JBQUlTOzs7Ozs7Z0JBY21CNHFDLFdBZG5CNXFDLFFBYzRCLFlBekJsQ29uQyxNQXlCU3VELFVBQWdCQzs7OztTQUNSOzs7WUFHVkMsV0FsQkx0ckM7a0JBQUlTOzs7Ozs7OztnQkFrQmU4cUMsV0FsQmY5cUMsUUFrQndCLFlBN0I5Qm9uQyxNQTZCT3lELFVBQWNDOzs7O1NBQ047OztZQUdMQyxXQXRCUnhyQztrQkFBSVM7Ozs7Ozs7Ozs7Z0JBc0JxQmdyQyxXQXRCckJockMsUUFzQjhCLFlBakNwQ29uQyxNQWlDVTJELFVBQWlCQzs7OztTQUNUOzs7WUFHQUMsV0ExQmhCMXJDO2tCQUFJUzs7Ozs7Ozs7Ozs7O2dCQTBCcUNrckMsV0ExQnJDbHJDLFFBMkJOLFlBdENBb25DLE1BcUNrQjZELFVBQXlCQzs7OztTQUVqQjs7OztPQWhCVDs7T0FJQTs7T0FJRjs7T0FJRzs7T0FLUTs7T0FLSjs7T0FVRTtlQUlMOztHQUFZO1lBbUcvQkMsdUJBRUUvcUMsS0FBSW9CO0lBQVMsY0FBYnBCLG1CQUFJb0IsY0FBSnBCLFNBQUlvQjtHQUd5QjtZQXJDL0I0cEMsZ0JBR0F2b0MsT0FBTXJCO0lBQVMsS0FBZnFCLE9BQ2UsT0FEVHJCO1FBRU02cEMsVUFGWnhvQztJQUVxQixZQUxyQnVvQyxnQkFLWUMsU0FGTjdwQztHQUVtRDtZQTlEekQ4cEMsYUFFQTlwQztJQUFTLElBQVRFO0lBQVM7ZUFBVEEsc0JBcUQ4QjtZQXJEOUJBOztZQTJCSzlDLE9BM0JMOEMsWUEyQjhCLFdBN0I5QjRwQyxhQTZCSzFzQzs7WUFDS0MsU0E1QlY2QyxZQTRCOEIsV0E5QjlCNHBDLGFBOEJVenNDOztZQTNCR0MsU0FEYjRDLFlBQ1F0QixNQURSc0I7UUFFMkIsT0FxRjNCeXBDLHVCQXRGUS9xQyxTQUhSa3JDLGFBR2F4c0M7O1lBRUtDLFNBSGxCMkMsWUFHYXJCLFFBSGJxQjtRQUkyQixPQW1GM0J5cEMsdUJBcEZhOXFDLFdBTGJpckMsYUFLa0J2c0M7O1FBSUo7U0FES0MsU0FObkIwQztTQU1hcEIsT0FOYm9CO1NBTVFuQixRQU5SbUI7U0FPSTZwQyxVQVRKRCxhQVFtQnRzQztTQUVmd3NDLFVBdUZKQyx5QkF6RmFuckMsVUFDVGlyQztRQUVKLE9BOEVBSix1QkFqRlE1cUMsT0FFSmlyQzs7UUFHVTtTQURPdnNDLFNBVnJCeUM7U0FVZWpCLFNBVmZpQjtTQVVVaEIsUUFWVmdCO1NBV0lncUMsWUFiSkosYUFZcUJyc0M7U0FFakIwc0MsWUFtRkpGLHlCQXJGZWhyQyxZQUNYaXJDO1FBRUosT0EwRUFQLHVCQTdFVXpxQyxPQUVOaXJDOztRQUdVO1NBRFd6c0MsU0FkekJ3QztTQWNtQmQsU0FkbkJjO1NBY2NiLFFBZGRhO1NBZUlrcUMsWUFqQkpOLGFBZ0J5QnBzQztTQUVyQjJzQyxZQStFSkoseUJBakZtQjdxQyxZQUNmZ3JDO1FBRUosT0FzRUFULHVCQXpFY3RxQyxPQUVWZ3JDOztRQUdVO1NBRE8xc0MsU0FsQnJCdUM7U0FrQmVYLFNBbEJmVztTQWtCVVYsUUFsQlZVO1NBbUJJb3FDLFlBckJKUixhQW9CcUJuc0M7U0FFakI0c0MsWUEyRUpOLHlCQTdFZTFxQyxZQUNYK3FDO1FBRUosT0FrRUFYLHVCQXJFVW5xQyxPQUVOK3FDOztRQUdVO1NBRE8zc0MsU0F0QnJCc0M7U0FzQmVSLFNBdEJmUTtTQXNCVVAsUUF0QlZPO1NBdUJJc3FDLFlBekJKVixhQXdCcUJsc0M7U0FFakI2c0MsWUF1RUpSLHlCQXpFZXZxQyxZQUNYOHFDO1FBRUosT0E4REFiLHVCQWpFVWhxQyxPQUVOOHFDOztZQUtPM3NDLFNBN0JYb0MsWUE2Qk1MLFFBN0JOSztRQThCNkIsT0F5RDdCeXBDLHVCQTFETTlwQyxXQS9CTmlxQyxhQStCV2hzQzs7WUE3Qlh1akM7Ozs7OztZQW9DbUJyakMsU0FwQ25Ca0MsWUFvQ2VyQyxLQXBDZnFDO1FBcUNBLFdBRGVyQyxJQXRDZmlzQyxhQXNDbUI5ckM7O1lBRUVDLFVBdENyQmlDLFlBc0NpQndxQyxPQXRDakJ4cUM7UUF1Q0EsV0FEaUJ3cUMsWUF4Q2pCWixhQXdDcUI3ckM7O1lBUGZDLFVBL0JOZ0MsWUErQjhCLFlBakM5QjRwQyxhQWlDTTVyQzs7WUFDQUMsVUFoQ04rQixZQWdDOEIsWUFsQzlCNHBDLGFBa0NNM3JDOztZQWhDTnFqQzs7UUFtRGtEO1NBRHRCcGpDLFVBbEQ1QjhCO1NBUEF5cUMsaUJBT0F6cUM7U0FtRGtELE9BckRsRDRwQyxhQW9ENEIxckM7aUJBekQ1QnVzQzthQUNrQmhNLE1BRGxCZ00sNkJBS0FiLGFBSmtCbkw7O2FBQ0E4RCxRQUZsQmtJLDZCQUtBYixhQUhrQnJIO1FBd0RnQzs7WUFqQjNDcmlDLFVBbENQRixZQWtDOEIsWUFwQzlCNHBDLGFBb0NPMXBDOztZQVdjQyxVQTdDckJILFlBNkM4QixXQS9DOUI0cEMsYUErQ3FCenBDOztZQUNBQyxVQTlDckJKLFlBOEM4QixXQWhEOUI0cEMsYUFnRHFCeHBDOztZQUNORSxVQS9DZk4sWUErQzhCLFdBakQ5QjRwQyxhQWlEZXRwQzs7WUEvQ2ZpaEMsc0JBb0VBdmdDLE1BcEVBaEI7a0JBb0VBZ0I7OztnQkFwRUFoQjs7OztZQWlGbUMsWUFuRm5DNHBDLGFBRUFySTs7O2VBb0VBdmdDOztlQXBFQWhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FnRnNELElBQTdCd2hDLFVBWnpCeGdDLFFBWXNELE9BbEZ0RDRvQyxhQUVBckk7V0FnRnNELCtDQUE3QkM7O2VBaEZ6QnhoQzs7OztZQWlDa0JRLFVBakNsQlIsWUFpQ1FtQixRQWpDUm5CO1FBaUNvRCxPQXNCcEQwcEMsZ0JBdEJRdm9DLE9BbkNSeW9DLGFBbUNrQnBwQzs7O0dBb0J3QjtZQTBDMUN1cEMseUJBRUVuckMsTUFBS2tCO0lBQVMsY0FBZGxCLCtCQUFLa0I7R0FHMEI7R0FNckM7OztZQUtJNHFDLGFBR0Foc0MsS0FBSW9CO0lBQVMsVUFBYnBCLGtCQUNpQixjQURib0I7YUFBSnBCO1NBRW9CaXNDLElBRnBCanNDLFFBRWEwaEMsUUFGYjFoQztLQUU2QixlQUFoQjBoQyxPQUFPdUssSUFGaEI3cUM7OztTQUdzQjVDLE9BSHRCNEMsVUFHUTJnQyxVQUhaL2hDO0tBR2tDLGVBQXRCK2hDLFVBQWN2akM7O0lBQ3JCO0dBQW1CO1lBS3hCMHRDLGFBR0Fsc0MsS0FBSUUsTUFBS2tCO0lBQXFCLFlBZjlCNHFDLGFBZUFoc0MsS0FBU29CO2NBQUxsQjtTQUdxQ3hCLG1CQUFMNEIsa0JBQXRCZ1MsSUFIVnBTO0tBSUosV0FEb0NJLFdBQXRCZ1MsSUFBMkI1VDs7U0FIckN3QjtTQUNrQ3pCLG1CQUFMMEI7S0FDakMsV0FEaUNBLFVBQUsxQjs7OztTQUlRRCxtQkFBWnlCO0tBQ2xDLFdBRGtDQSxVQUFZekI7O0lBRWY7R0FBbUI7WUFNOUMydEMsWUFNRnBNLEtBQUkzK0I7SUFBZSxXQUlyQmdyQyxnQkFKRXJNLEtBQUkzK0I7O0tBRUQ7UUFEVXlpQztJQUF1QixPQUF2QkE7R0FDUztZQWtMeEJ3SSx1QkFLRS9wQyxLQUFJeTlCLEtBQUkzK0I7SUFDWjtLQUFtQyxRQXRMakNnckMsZ0JBcUxNck0sS0FBSTMrQjtLQUNhRTtLQUFOdWlDO0lBQ25CLGdCQUZJdmhDLEtBQ2V1aEMsUUFBTXZpQztHQUN3QjtZQXZML0M4cUMsZ0JBTUVyTSxLQTRJTXVNO0lBNUlPLFVBQWJ2TSxrQkFtSDJCLGNBeUJyQnVNO1dBNUlOdk07O2lCQTRJTXVNO1FBMUkyQjtTQURaQyxhQTJJZkQ7U0EzSUhFLFdBREh6TTtTQUVpQyxRQVJuQ3FNLGdCQU9LSSxVQUFrQkQ7U0FDRW5yQztTQUFOeWlDO1FBQ25CLGVBRG1CQSxRQUFNemlDOzs7O2lCQTBJakJrckM7UUF2STJCO1NBRFBHLGVBd0lwQkg7U0F4SUVJLGFBSlIzTTtTQUtpQyxVQVhuQ3FNLGdCQVVVTSxZQUFrQkQ7U0FDSG5yQztTQUFOK2lDO1FBQ25CLGVBRG1CQSxRQUFNL2lDOzs7O09BR25CO1FBRE9xckMsYUFQWDVNO1FBT00vL0IsTUFQTisvQjtRQVFJLFVBcEROaU0sYUFtRFFoc0MsS0FxSUFzc0M7UUFuSWFyc0M7OztRQUNnQjtTQUREMnNDO1NBQ0MsVUFoQnJDUixnQkFhYU8sWUFFdUJDO1NBQ1RuSztTQUFOb0s7UUFDbkIsZUFGbUI1c0MsT0FDQTRzQyxRQUFNcEs7O09BRUc7O09BR3hCO1FBRFlxSyxhQWRoQi9NO1FBY1c1L0IsUUFkWDQvQjtRQWVJLFVBM0ROaU0sYUEwRGE3ckMsT0E4SExtc0M7UUE1SGFoc0M7OztRQUNnQjtTQUREeXNDO1NBQ0MsVUF2QnJDWCxnQkFvQmtCVSxZQUVrQkM7U0FDVHJLO1NBQU5zSztRQUNuQixlQUZtQjFzQyxPQUNBMHNDLFFBQU10Szs7T0FFRzs7T0FHeEI7UUFEaUJ1SyxhQXJCckJsTjtRQXFCZTcvQixPQXJCZjYvQjtRQXFCVXQvQixRQXJCVnMvQjtRQXFCRzMvQixRQXJCSDIvQjtRQXNCSSxVQXRETm1NLGFBcURZenJDLE9BQUtQLE1BdUhUb3NDO1FBckhhMXJDOzs7UUFDZ0I7U0FERXNzQztTQUFiN3NDO1NBQ1csVUE5QnJDK3JDLGdCQTJCdUJhLFlBRWdCQztTQUNadks7U0FBTndLO1FBQ25CLGVBSkcvc0MsT0FFZ0JRLE9BQUtQLFFBQ0w4c0MsUUFBTXhLOztPQUVNOztPQUczQjtRQURtQnlLLGFBNUJ2QnJOO1FBNEJpQnYvQixTQTVCakJ1L0I7UUE0QlloL0IsUUE1QlpnL0I7UUE0Qkt4L0IsVUE1Qkx3L0I7UUE2QkksV0E3RE5tTSxhQTREY25yQyxPQUFLUCxRQWdIWDhyQztRQTlHYXJyQzs7O1FBQ2dCO1NBRElvc0M7U0FBZjFzQztTQUNXLFdBckNyQ3lyQyxnQkFrQ3lCZ0IsWUFFZ0JDO1NBQ2R6SztTQUFOMEs7UUFDbkIsZUFKSy9zQyxTQUVjVSxPQUFLTixRQUNMMnNDLFFBQU0xSzs7T0FFTTs7T0FHM0I7UUFEdUIySyxhQW5DM0J4TjtRQW1DcUJqL0IsU0FuQ3JCaS9CO1FBbUNnQjErQixRQW5DaEIwK0I7UUFtQ1NyL0IsVUFuQ1RxL0I7UUFvQ0ksV0FwRU5tTSxhQW1Fa0I3cUMsT0FBS1AsUUF5R2Z3ckM7UUF2R2EvcUM7OztRQUNnQjtTQURRaXNDO1NBQW5CQztTQUNXLFdBNUNyQ3JCLGdCQXlDNkJtQixZQUVnQkM7U0FDbEIzSztTQUFONks7UUFDbkIsZUFKU2h0QyxTQUVVYSxPQUFLa3NDLFFBQ0xDLFFBQU03Szs7T0FFTTs7T0FHM0I7UUFEbUI4SyxhQTFDdkI1TjtRQTBDaUI2TixTQTFDakI3TjtRQTBDWThOLFFBMUNaOU47UUEwQ0tsL0IsVUExQ0xrL0I7UUEyQ0ksV0EzRU5tTSxhQTBFYzJCLE9BQUtELFFBa0dYdEI7UUFoR2F3Qjs7O1FBQ2dCO1NBRElDO1NBQWZDO1NBQ1csV0FuRHJDNUIsZ0JBZ0R5QnVCLFlBRWdCSTtTQUNkakw7U0FBTm1MO1FBQ25CLGVBSktwdEMsU0FFY2l0QyxRQUFLRSxRQUNMQyxRQUFNbkw7O09BRU07O09BRzNCO1FBRG1Cb0wsYUFqRHZCbk87UUFpRGlCb08sU0FqRGpCcE87UUFpRFlxTyxTQWpEWnJPO1FBaURLLytCLFFBakRMKytCO1FBa0RJLFdBbEZObU0sYUFpRmNrQyxRQUFLRCxRQTJGWDdCO1FBekZhK0I7OztRQUNnQjtTQURJQztTQUFmQztTQUNXLFdBMURyQ25DLGdCQXVEeUI4QixZQUVnQkk7U0FDZHZMO1NBQU55TDtRQUNuQixlQUpLeHRDLE9BRWNxdEMsUUFBS0UsUUFDTEMsUUFBTXpMOztPQUVNOztPQUczQjtRQURLMEwsYUF4RFQxTztRQXdESTJPLFNBeERKM087UUF5REksV0FyR05pTSxhQW9HTTBDLFFBb0ZFcEM7UUFsRmFxQzs7O1FBQ2dCO1NBREhDO1NBQ0csV0FqRXJDeEMsZ0JBOERXcUMsWUFFdUJHO1NBQ1A1TDtTQUFONkw7UUFDbkIsZUFGbUJGLFFBQ0FFLFFBQU03TDs7T0FFRzs7T0FHSztRQUQ3QjhMLGFBL0RKL087UUFnRWlDLFdBdEVuQ3FNLGdCQXFFTTBDLFlBNkVFeEM7UUE1RWlCcko7UUFBTjhMO09BQ25CLGdCQURtQkEsU0FBTTlMOztPQUlVO1FBRGQrTCxjQW5FbkJqUDtRQW1FYzcrQixNQW5FZDYrQjtRQW9FaUMsV0ExRW5DcU0sZ0JBeUVxQjRDLGFBeUViMUM7UUF4RWlCbko7UUFBTjhMO09BQ25CLGdCQUZnQi90QyxLQUNHK3RDLFNBQU05TDs7T0FHVTtRQURoQitMLGNBdEVqQm5QO1FBc0VZNStCLE1BdEVaNCtCO1FBdUVpQyxXQTdFbkNxTSxnQkE0RW1COEMsYUFzRVg1QztRQXJFaUJqSjtRQUFOOEw7T0FDbkIsZ0JBRmNodUMsS0FDS2d1QyxTQUFNOUw7O2lCQXFFakJpSjs7U0FqRW1COEMsZUFpRW5COUM7U0FqRU9wSixZQWlFUG9KO1NBbEV3QitDLGNBMUU5QnRQO1NBMEVtQnFELGNBMUVuQnJEO1NBMEVVSCxVQTFFVkc7UUE0RUMscUJBRmtCcUQsa0JBQ05GO1NBQ3FDO1FBQ2pCO29CQW5GbkNrSixnQkFnRmdDaUQsYUFDTEQ7U0FFRjlMO1NBQU5nTTtRQUNuQixnQkFKWTFQLFNBQ0dzRCxXQUVJb00sU0FBTWhNOzs7O2lCQStEakJnSjtRQTNEOEI7U0FESWlELGdCQTREbENqRDtTQTVEU2tELGFBNERUbEQ7U0E3RDBCbUQsY0EvRWhDMVA7U0ErRXFCMlAsY0EvRXJCM1A7U0ErRVlDLFlBL0VaRDtTQWlGb0MsV0FBVSx3Q0FEL0J5UDtRQUNkOztnQkFBVSx3Q0FGVUU7U0FHckI7UUFFQTs7V0ExRkZ0RDthQXFGa0NxRDthQUtQLHdDQUplRjtTQUdqQmhNO1NBQU5vTTtRQUduQixnQkFQYzNQLFdBQ0d3UCxZQUdFRyxTQUFNcE07Ozs7aUJBeURqQitJO1FBbkQyQjtTQURWc0QsZ0JBb0RqQnREO1NBcERGdUQsY0F4Rko5UDtTQXlGaUMsV0EvRm5DcU0sZ0JBOEZNeUQsYUFBbUJEO1NBQ0FwTTtTQUFOc007UUFDbkIsZ0JBRG1CQSxTQUFNdE07Ozs7aUJBbURqQjhJO1FBaEQyQjtTQURWeUQsZ0JBaURqQnpEO1NBakRGMEQsY0EzRkpqUTtTQTRGaUMsV0FsR25DcU0sZ0JBaUdNNEQsYUFBbUJEO1NBQ0F0TTtTQUFOd007UUFDbkIsZ0JBRG1CQSxTQUFNeE07Ozs7T0FLVTtRQURIeU0sY0FoRzlCblE7UUFnR2NiLGlCQWhHZGE7UUFpR2lDLFdBdkduQ3FNLGdCQXNHZ0M4RCxhQTRDeEI1RDtRQTNDaUI2RDtRQUFOQztPQUNuQixnQkFGZ0JsUixnQkFDR2tSLFNBQU1EOztXQTJCVkUsY0E1SGJ0USxRQTRIRmdNLGlCQTVIRWhNO2dCQTRIRmdNO1FBRW1DO29CQUZuQ0E7U0FDd0IxSjtTQUFOdmlDO1NBQ2lCLFdBcEluQ3NzQyxnQkFtSWtCdHNDLE1BZVZ3c0M7U0FkaUIzc0M7U0FBTkk7U0FDZ0IsV0FySW5DcXNDLGdCQWtJZWlFLGFBRVUxd0M7U0FDQTJ3QztTQUFOQztRQUNuQix3QkFGbUJ4d0MsTUFES3NpQyxTQUVMa08sT0FBTUQ7O09BR1U7bUJBTm5DdkU7UUFLd0JoSTtRQUFOeU07UUFDaUIsV0F4SW5DcEUsZ0JBdUlrQm9FLFFBV1ZsRTtRQVZpQm1FO1FBQU5DO1FBQ2dCLFdBekluQ3RFLGdCQWtJZWlFLGFBTVVJO1FBQ0FFO1FBQU5DO09BQ25CLHdCQUZtQkYsUUFESzNNLFNBRUw2TSxTQUFNRDs7aUJBU2pCckU7UUFwQzJCO1NBRFJ1RSxnQkFxQ25CdkU7U0FyQ0R3RSxjQXZHTC9RO1NBd0dpQyxXQTlHbkNxTSxnQkE2R08wRSxhQUFvQkQ7U0FDRkU7U0FBTkM7UUFDbkIsZ0JBRG1CQSxTQUFNRDs7OztpQkFvQ2pCekU7UUFqQzJCO1NBRHNCMkUsZ0JBa0NqRDNFO1NBbEM0QjRFLGNBMUdsQ25SO1NBMEd3Qi85QixXQTFHeEIrOUI7U0EwR2E5OUIsWUExR2I4OUI7U0EyR2lDLFdBakhuQ3FNLGdCQWdIb0M4RSxhQUFxQkQ7U0FDaENFO1NBQU5DO1FBQ25CLGdCQUZlbnZDLFdBQVdELFVBQ1BvdkMsU0FBTUQ7Ozs7aUJBaUNqQjdFO1FBOUIyQjtTQURVK0UsZ0JBK0JyQy9FO1NBL0JtQmdGLGNBN0d6QnZSO1NBNkdnQjU5QixVQTdHaEI0OUI7U0E4R2lDLFdBcEhuQ3FNLGdCQW1IMkJrRixhQUFrQkQ7U0FDcEJFO1NBQU5DO1FBQ25CLGdCQUZrQnJ2QyxTQUNDcXZDLFNBQU1EOzs7O1dBOEJyQi95QyxPQTVJRnVoQyxRQTRJRno5QixNQTVJRXk5QjtpQkE0SUZ6OUI7OztXQUdzQyxPQTJCdEMrcEMsdUJBOUJBL3BDLEtBQUk5RCxNQUFJOHRDOztXQUk4QixPQTBCdENELHVCQTlCQS9wQyxLQUFJOUQsTUFBSTh0Qzs7V0FLOEIsT0F5QnRDRCx1QkE5QkEvcEMsS0FBSTlELE1BQUk4dEM7O1dBTThCLE9Bd0J0Q0QsdUJBOUJBL3BDLEtBQUk5RCxNQUFJOHRDOztXQU84QixPQXVCdENELHVCQTlCQS9wQyxLQUFJOUQsTUFBSTh0Qzs7V0FROEIsT0FzQnRDRCx1QkE5QkEvcEMsS0FBSTlELE1BQUk4dEM7O1dBUzhCLE9BcUJ0Q0QsdUJBOUJBL3BDLEtBQUk5RCxNQUFJOHRDOztXQVU4QixPQW9CdENELHVCQTlCQS9wQyxLQUFJOUQsTUFBSTh0Qzs7ZUFjcUJtRixjQWQ3Qm52QyxRQWNvQjI5QixZQWRwQjM5QjtXQWVBLE9BZUErcEM7d0JBaEJvQnBNLFdBQVN3UixjQWR6Qmp6QyxNQUFJOHRDOztXQWtCTjtZQUY2Qm9GLGNBaEIvQnB2QztZQWdCc0I0OUIsWUFoQnRCNTlCO1lBa0JFLE9Bc0JGcXZDLCtCQXhCK0JELGFBaEIzQmx6QyxNQUFJOHRDOztZQWlCNENzRjtZQUFOQztZQUEzQkM7V0FFbkIsb0JBSHNCNVIsV0FDSDRSLGNBQTJCRCxTQUFNRDs7V0FOZCxPQW1CdEN2Rix1QkE5QkEvcEMsS0FBSTlELE1BQUk4dEM7bUJBWThCLE9Ba0J0Q0QsdUJBOUJBL3BDLEtBQUk5RCxNQUFJOHRDOztjQUFSaHFDOztVQUNzQyxPQTZCdEMrcEMsdUJBOUJBL3BDLEtBQUk5RCxNQUFJOHRDOztVQUU4QixPQTRCdENELHVCQTlCQS9wQyxLQUFJOUQsTUFBSTh0Qzs7O1dBeUI2QjtZQURqQnlGLGdCQXhCWnpGO1lBeUI2QixXQTNLckNGLGdCQWtKSTV0QyxNQXdCZ0J1ekM7WUFDT0M7WUFBTkM7V0FDbkIsbUJBRG1CQSxTQUFNRDs7VUFFcEI7a0JBZCtCLE9BaUJ0QzNGLHVCQTlCQS9wQyxLQUFJOUQsTUFBSTh0Qzs7O0lBdkJIO0dBQW1CO1lBK0R4QnFGLCtCQUlBek8sV0FBVW5ELEtBQUkzK0I7SUFBUyxVQUF2QjhoQztLQTBFQSxjQXhRQWtKLGdCQThMVXJNLEtBQUkzK0I7V0FBZDhoQzs7aUJBQWM5aEM7UUFHWjtTQUY4Qm1yQyxhQURsQm5yQztTQUNOOHdDLGlCQURSaFA7U0FHRTtXQVBGeU8sK0JBS1FPLGdCQURFblMsS0FDc0J3TTtTQUNJMUk7U0FBakJzTztRQUVuQixlQUZtQkEsbUJBQWlCdE87Ozs7aUJBRnRCemlDO1FBT1o7U0FGa0NxckMsZUFMdEJyckM7U0FLSmd4QyxtQkFMVmxQO1NBT0U7V0FYRnlPLCtCQVNVUyxrQkFMQXJTLEtBSzBCME07U0FDQXBJO1NBQWpCZ087UUFFbkIsZUFGbUJBLG1CQUFpQmhPOzs7O2lCQU50QmpqQztRQVdaO1NBRjRCd3JDLGVBVGhCeHJDO1NBU1BreEMsbUJBVFBwUDtTQVdFO1dBZkZ5TywrQkFhT1csa0JBVEd2UyxLQVNvQjZNO1NBQ01DO1NBQWpCMEY7UUFFbkIsZUFGbUJBLG1CQUFpQjFGOzs7O2lCQVZ0QnpyQztRQWVaO1NBRmdDMnJDLGVBYnBCM3JDO1NBYUxveEMsbUJBYlR0UDtTQWVFO1dBbkJGeU8sK0JBaUJTYSxrQkFiQ3pTLEtBYXdCZ047U0FDRUM7U0FBakJ5RjtRQUVuQixlQUZtQkEsbUJBQWlCekY7Ozs7aUJBZHRCNXJDO1FBbUJaO1NBRndDOHJDLGVBakI1QjlyQztTQWlCRHN4QyxtQkFqQmJ4UDtTQW1CRTtXQXZCRnlPLCtCQXFCYWUsa0JBakJIM1MsS0FpQmdDbU47U0FDTkM7U0FBakJ3RjtRQUVuQixlQUZtQkEsbUJBQWlCeEY7Ozs7aUJBbEJ0Qi9yQztRQXVCWjtTQUZnQ2lzQyxlQXJCcEJqc0M7U0FxQkx3eEMsbUJBckJUMVA7U0F1QkU7V0EzQkZ5TywrQkF5QlNpQixrQkFyQkM3UyxLQXFCd0JzTjtTQUNFQztTQUFqQnVGO1FBRW5CLGVBRm1CQSxvQkFBaUJ2Rjs7OztpQkF0QnRCbHNDO1FBMkJaO1NBRmdDb3NDLGVBekJwQnBzQztTQXlCTDB4QyxvQkF6QlQ1UDtTQTJCRTtXQS9CRnlPO2FBNkJTbUIsbUJBekJDL1MsS0F5QndCeU47U0FDRUU7U0FBakJxRjtRQUVuQixlQUZtQkEsb0JBQWlCckY7Ozs7aUJBMUJ0QnRzQztRQStCWjtTQUY4QjJzQyxlQTdCbEIzc0M7U0E2Qk40eEMsb0JBN0JSOVA7U0ErQkU7V0FuQ0Z5TzthQWlDUXFCLG1CQTdCRWpULEtBNkJzQmdPO1NBQ0lFO1NBQWpCZ0Y7UUFFbkIsZUFGbUJBLG9CQUFpQmhGOzs7O2lCQTlCdEI3c0M7O1NBbURja3RDLGVBbkRkbHRDO1NBbURDOHhDLGFBbkREOXhDO1NBa0RhK3hDLG9CQWxEM0JqUTtTQWtEZWtRLGVBbERmbFE7UUFvREcscUJBRllrUSxtQkFDQUY7U0FDdUM7UUFFcEQ7O1dBMURGdkI7YUFzRDJCd0IsbUJBbERqQnBULEtBbURrQnVPO1NBRVFFO1NBQWpCNkU7UUFFbkIsZUFKZUgsWUFFSUcsb0JBQWlCN0U7Ozs7aUJBckR0QnB0QztRQTJEeUI7U0FGSXd0QyxlQXpEN0J4dEM7U0F5RGdCa3lDLGVBekRoQmx5QztTQXlER215QyxhQXpESG55QztTQXdENkJveUMsb0JBeEQzQ3RRO1NBd0Q4QnVRLGVBeEQ5QnZRO1NBd0RpQndRLGVBeERqQnhRO1NBMkR1QyxXQUFVLHdDQUZoQ3FRO1FBRWQ7O2dCQUFVLHdDQUhJRztTQUlaO1FBQ2tDLGVBQVUsd0NBSm5CSjtRQUkzQjs7Z0JBQVUsd0NBTGlCRztTQU16QjtRQUNZO1NBQWJyUSxjQXpkSjRELE1BdklJMUMsS0EwbEJhaVAsYUFBYUQ7U0FPWCxVQXhrQmYvTyxjQXVrQkFuQjtTQUNVK0c7U0FBUEM7UUFDSSxXQURKQTtRQUVJLFdBRkdEO1FBSVo7O1dBeEVGd0g7YUF3RW1DLHdDQVpRNkI7YUF4RGpDelQ7YUF5RGlDNk87U0FVUEM7U0FBakI4RTtRQUduQjtvQkFiaUJKLFlBQWFELGNBMWxCMUJoUCxLQW9tQmVxUDtnQkFBaUI5RTs7OztpQkFuRXRCenRDO1FBbUNaO1NBRmdDZ3VDLGVBakNwQmh1QztTQWlDTHd5QyxvQkFqQ1QxUTtTQW1DRTtXQXZDRnlPO2FBcUNTaUMsbUJBakNDN1QsS0FpQ3dCcVA7U0FDRUw7U0FBakI4RTtRQUVuQixnQkFGbUJBLG9CQUFpQjlFOzs7O2lCQWxDdEIzdEM7UUF1Q1o7U0FGZ0NtdUMsZ0JBckNwQm51QztTQXFDTDB5QyxvQkFyQ1Q1UTtTQXVDRTtXQTNDRnlPO2FBeUNTbUMsbUJBckNDL1QsS0FxQ3dCd1A7U0FDRU47U0FBakI4RTtRQUVuQixnQkFGbUJBLG9CQUFpQjlFOzs7O2lCQXRDdEI3dEM7UUEyQ1o7U0FGa0N3dUMsZ0JBekN0Qnh1QztTQXlDSjR5QyxvQkF6Q1Y5UTtTQTJDRTtXQS9DRnlPO2FBNkNVcUMsbUJBekNBalUsS0F5QzBCNlA7U0FDQVQ7U0FBakI4RTtRQUVuQixnQkFGbUJBLG9CQUFpQjlFOzs7O2lCQTFDdEIvdEM7UUErQ1o7U0FGa0QydUMsZ0JBN0N0QzN1QztTQTZDSTh5QyxvQkE3Q2xCaFI7U0ErQ0U7V0FuREZ5TzthQWlEa0J1QyxtQkE3Q1JuVSxLQTZDMENnUTtTQUNoQlQ7U0FBakI2RTtRQUVuQixnQkFGbUJBLG9CQUFpQjdFOzs7O0lBNkIvQjtHQUFtQjtZQTBCeEI4RSxPQVFFclUsS0FBSTMrQjtJQUNtQixXQS9vQnJCa2pDLEtBOG9CRWxqQztJQUNRLE9BdFRWK3FDLFlBcVRGcE0sS0FDWTtHQUF3QjtZQU10Q3NVLFlBQVkzUyxPQUFNN0IsT0FBTTMrQjtJQUMxQjtLQUFJNEYsNEJBRHNCNUY7S0FFZjZnQyxlQUZTbEMsUUFBTjZCO0tBRVY0UyxVQUNGLHVCQUhrQnpVO09BRWhCeVUsV0FEQXh0QyxLQWFpQixPQWRLNUY7SUFlZDtrQkFiRDZnQztLQWFMeDVCLE1BQU0sNEJBYlIrckM7SUFjRixPQWRTdlM7O09BZUUsOEJBakJhN2dDLFFBZXBCcUgsUUFkRnpCOztPQWlCUyw4QkFsQmE1RixRQWVwQnFILEtBYkYrckMsVUFEQXh0Qzs7Ozs7O1FBa0J5RDtpQkFBbEMsZ0JBbkJENUY7b0JBbUJrQixnQkFuQmxCQSxrQkFtQm1DLGdCQW5CbkNBOztTQW9CdEIsZUFMRXFILFFBS2MsZ0JBcEJNckg7U0FxQnRCOztXQXJCc0JBOztXQWVwQnFIO1lBYkYrckMsVUFEQXh0Qzs7Ozs7Ozs7UUFxQnNCLE9BckJ0QkEsY0FxQnNCLGdCQXRCQTVGOztTQXNCbUMsV0FBakIsZ0JBdEJsQkEsa0JBc0JtQyxnQkF0Qm5DQTs7O1VBdUJ0QixlQVJFcUgsUUFRYyxnQkF2Qk1ySDtVQXdCdEI7O1lBeEJzQkE7O1lBZXBCcUg7YUFiRityQyxVQURBeHRDOzs7Ozs7U0F5QkEsOEJBMUJzQjVGLFFBZXBCcUgsS0FiRityQyxVQURBeHRDOzs7SUEyQkYsb0NBYkl5QjtHQWFzQjtZQUcxQmdzQyxrQkFBa0JyMEMsTUFBS2dCO0lBQ3pCO0tBQUliLFNBQU8sdUJBRFNIO0tBRWhCNEcsTUFBSixzQkFGeUI1RjtLQUl2QmtGLElBREksZ0JBSG1CbEY7O2FBSXZCa0Y7Ozs7Ozs7Ozs7Ozs7WUFGRVUsT0FEQXpHLHVCQUNBeUc7O1VBT3NEO29CQUFqQixnQkFUaEI1RixrQkFTaUMsZ0JBVGpDQTs7O1dBVWIsSUFBTnN6QyxRQUFNLDRCQVRSbjBDO1dBVUYsZUFESW0wQyxVQUNZLGdCQVhPdHpDO1dBWXZCOzthQVp1QkE7O2FBVW5Cc3pDO2NBVEZuMEMsU0FDQXlHOztXQVVGLG9DQUZJMHRDOzs7Ozs7Ozs7Ozs7O29CQVJGMXRDLE9BREF6RztNQUlRLElBQU4yb0IsUUFBTSw0QkFKUjNvQjtNQUtGLGVBREkyb0IsVUFESjVpQjtNQUdBOztRQVB1QmxGOztRQUtuQjhuQjtTQUpGM29CLFNBQ0F5Rzs7TUFLRixvQ0FGSWtpQjs7O21CQUhGbGlCLE1BREF6RztLQWNRLElBQU5rSSxNQUFNLDRCQWRSbEk7S0FlRiw4QkFoQnVCYSxRQWVuQnFILEtBZEZsSSxTQUNBeUc7S0FjRixvQ0FESXlCOztJQUlKLE9BbkJ1QnJIO0dBbUJwQjtZQUdIdXpDLHNCQUFzQnZ6QztJQUN4QjtLQUFJbWhDLFFBQU0sOEJBRGNuaEM7S0FFcEJtRSxJQUFKLHNCQURJZzlCO0tBRUE5NUIsTUFBTSw0QkFETmxEO0lBRUosaUJBSElnOUIsVUFFQTk1QixRQURBbEQ7SUFFSixvQ0FESWtEO0dBRXNCO1lBcUN4Qm1zQyxnQkFBZ0IxekMsT0FBTWQ7SUFDdEI7S0FBSUcsU0FBTyx1QkFEV0g7S0FFbEJ5MEMsT0EvbENKcFQsbUJBNmxDZ0J2Z0M7S0FHWmtILE1BeG9DSjA0QjtJQWNBTSxnQkEwbkNJaDVCO0lBNThCSmk2QixrQkE0OEJJajZCLEtBSFlsSDtJQXZuQ2hCa2dDLGdCQTBuQ0loNUI7SUFwbkNKaTVCLGtCQW9uQ0lqNUIsS0FJa0IsMkJBTmxCN0g7SUF4bkNKNmdDLGdCQTBuQ0loNUIsS0FEQXlzQztJQU1KLE9BbG5DQXRULGdCQTZtQ0luNUI7R0FNZTtZQUVuQjBzQyxrQkFBa0J4MEMsT0FBTW9EO0lBQzFCLFFBRG9CcEQsT0F1QmIsT0F2Qm1Cb0Q7SUFJZCxJQUFKSix5Q0FKa0JJLFlBSWQ7O1NBQ1IrQjs7cUNBTHNCL0IsR0FLdEIrQixpQkFESW5DO01BQ0o7Ozs7O0lBT1E7S0FUTnl4QyxTQUNFenhDO0tBUUY4RTtPQUFNOytCQVpjMUUsT0FHcEJxeEM7S0FVQXgwQjthQUNBeTBCLElBQUkxdUMsR0FBSSxlQUZSOEIsS0FDQW1ZLFFBQ0lqYSxJQURKaWEsbUJBQ3NDO0lBQy9CO0tBQVAxVSxhQVpBa3BDO2tDQUhvQnJ4QztLQWViOztTQUNYOEI7O1VBRUljLDJCQWxCb0I1QyxHQWdCeEI4QjthQUVJYztPQUpBMHVDLElBSUExdUM7b0JBSEF1RixTQURBbXBDLFNBQ0FucEMsNkJBREFtcEMsSUFJQTF1QztNQUZKOzs7OztJQU1BLG9DQVZJOEI7R0FXRTtZQUdONnNDLFlBQVkzMEMsT0FBTWdEO0lBQ3BCLE9BRGNoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFDVSxPQTNCdEJ3MEMsa0JBMEJZeDBDLE9BQ1Usc0JBREpnRDtHQUMwQztZQUM1RDR4QyxjQUFjNTBDLE9BQU1nRDtJQUN0QixPQURnQmhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUNRLE9BN0J0QncwQyxrQkE0QmN4MEMsT0FDUSxzQkFERmdEO0dBQzJDO1lBQy9ENnhDLGtCQUFrQjcwQyxPQUFNZ0Q7SUFDMUIsT0FEb0JoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFDSSxPQS9CdEJ3MEMsa0JBOEJrQngwQyxPQUNJLHNCQURFZ0Q7R0FDMkM7WUFDbkU4eEMsY0FBYzkwQyxPQUFNZ0Q7SUFDdEIsT0FEZ0JoRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFDUSxPQWpDdEJ3MEMsa0JBZ0NjeDBDLE9BQ1EsZ0NBREZnRDtHQUMyQztZQUkvRCt4QyxjQUFjbjBDLE9BQU1kLE1BQUt5RDthQUN2Qnl4QztLQUNGLE9BRmNwMEM7O1lBRVZxMEM7Ozs7O0tBS0osdUNBUHlCMXhDLEdBQUx6RCxNQUVoQm0xQztJQUswQjtJQVNoQyxTQUFJQyxpQkFBaUJwMEM7S0FBWSx3Q0FoQk55Qzs7O3NDQWdCTnpDO0lBR0Y7V0FuQkhGOztPQXlCSjtRQWpCVUUsTUFpQlYsa0JBekVWd3pDLGdCQWdEYzF6QyxPQUFNZCxPQUFLeUQ7UUFTckJtRCw0QkFEZ0I1RjtRQUVIb0U7T0FDZjtXQURlQSxNQURid0I7OztTQUdNLDJCQUpVNUYsS0FFSG9FOzs7Ozt3QkFJTixJQUpNQzs7O1FBS2Qsa0JBUGlCckUsTUFPUSx1QkFQUkE7UUFrQkgsT0FWZm8wQzs7O09BS1MsT0FwQlRGOztPQXFCZ0MsV0FyQmhDQSxRQXFCZ0M7O09BQ0wsT0FQM0JFLGlCQWZBRjtlQTJCRix5QkE1RUFWLGdCQWdEYzF6QyxPQUFNZCxPQUFLeUQ7O0dBNEJrQjtZQVczQzR4QyxnQkFBZ0JuMEM7SUFDUixJQUFOOEcsTUE3dENGMDRCO0lBOE9JNEIsYUErK0JGdDZCLEtBRGM5RztJQUVsQixPQW5zQ0VpZ0MsZ0JBa3NDRW41QjtHQUVlO1lBdUxqQnN0QywyQkFLRXhkLEdBQUUxbUIsS0FBSXl1QixLQUFJLy9CLEtBQUlFLE1BQUs4bUMsT0FBTTVtQztJQUFTLFVBQXhCSjtlQUFJRTs7O2dCQVVab1MsR0FBRTNPO2dCQUNNLElBQU56QyxNQWpXTnF6QyxrQkFnV0lqaUMsR0FDNEIsV0FYWDAwQixPQUFNNW1DLE9BVXJCdUQ7Z0JBRUosT0E1TEU4eEMsWUFnTEZ6ZCxPQUFFMW1CLEtBV0VwUSxNQVhFNitCO2VBWXdDOztnQkFWNUNwOEI7Z0JBQ1EsSUFBTnpDLE1BQU0sV0FIUzhsQyxPQUFNNW1DLE9BRXZCdUQ7Z0JBRUYsT0FwTEU4eEMsWUFnTEZ6ZCxPQUFFMW1CLEtBR0VwUSxNQUhFNitCO2VBSXdDO1NBQ3RCenRCLElBTFZwUztLQU1oQixnQkFBSXlEO01BQ1EsSUFBTnpDLE1BN1ZOcXpDLGtCQTJWMEJqaUMsR0FFTSxXQVBYMDBCLE9BQU01bUMsT0FNdkJ1RDtNQUVGLE9BeExFOHhDLFlBZ0xGemQsT0FBRTFtQixLQU9FcFEsTUFQRTYrQixLQVF3Qzs7YUFScEMvL0I7U0FpQlFpc0MsSUFqQlJqc0MsUUFpQkMwaEMsUUFqQkQxaEM7ZUFBSUU7OztnQkFzQlpvUyxHQUFFM087Z0JBQ007aUJBQU56QzttQkE1WU5tekM7cUJBc1lhM1M7cUJBQU91SztxQkF2V3BCc0ksa0JBNFdJamlDLEdBQ2lELFdBdkJoQzAwQixPQUFNNW1DLE9Bc0JyQnVEO2dCQUVKLE9BeE1FOHhDLFlBZ0xGemQsT0FBRTFtQixLQXVCRXBRLE1BdkJFNitCO2VBd0J3Qzs7Z0JBVjVDcDhCO2dCQUNRLElBQU56QyxNQXBZTm16QyxZQXNZYTNTLE9BQU91SyxHQUZZLFdBZlhqRixPQUFNNW1DLE9BY3ZCdUQ7Z0JBRUYsT0FoTUU4eEMsWUFnTEZ6ZCxPQUFFMW1CLEtBZUVwUSxNQWZFNitCO2VBZ0J3QztTQUNWMlYsTUFqQnRCeDFDO0tBa0JoQixnQkFBSXlEO01BQ1E7T0FBTnpDO1NBeFlObXpDO1dBc1lhM1MsT0FBT3VLLEdBdldwQnNJLGtCQXVXc0NtQixLQUVlLFdBbkJoQzFPLE9BQU01bUMsT0FrQnZCdUQ7TUFFRixPQXBNRTh4QyxZQWdMRnpkLE9BQUUxbUIsS0FtQkVwUSxNQW5CRTYrQixLQW9Cd0M7O1FBU3BDZ0MsVUE3QkEvaEM7Y0FBSUU7OztlQWtDWityQyxHQUFFMzVCLEdBQUUzTztlQUNJO2dCQUFOekM7a0JBeFpObXpDO29CQWtaWXRTO29CQUtSa0s7b0JBeFhKc0ksa0JBd1hNamlDLEdBQytDLFdBbkNoQzAwQixPQUFNNW1DLE9Ba0NuQnVEO2VBRU4sT0FwTkU4eEMsWUFnTEZ6ZCxPQUFFMW1CLEtBbUNFcFEsTUFuQ0U2K0I7Y0FvQ3dDOztlQVY1Q2tNLEdBQUV0b0M7ZUFDTSxJQUFOekMsTUFoWk5tekMsWUFrWll0UyxTQUhSa0ssR0FDNEIsV0EzQlhqRixPQUFNNW1DLE9BMEJyQnVEO2VBRUosT0E1TUU4eEMsWUFnTEZ6ZCxPQUFFMW1CLEtBMkJFcFEsTUEzQkU2K0I7Y0E0QndDO1FBQ2Y0VixNQTdCakJ6MUM7SUE4QmhCLGdCQUFJK3JDLEdBQUV0b0M7S0FDTTtNQUFOekM7UUFwWk5tekM7VUFrWll0UyxTQUNSa0ssR0FwWEpzSSxrQkFtWGlDb0IsS0FFb0IsV0EvQmhDM08sT0FBTTVtQyxPQThCckJ1RDtLQUVKLE9BaE5FOHhDLFlBZ0xGemQsT0FBRTFtQixLQStCRXBRLE1BL0JFNitCLEtBZ0N3QztHQUlBO1lBN0RoRDZWLGFBSUU1ZCxHQUFFMW1CLEtBQUl5dUIsS0FBSS8vQixLQUFJZ25DO0lBQVMsVUFBYmhuQztLQUVaLGdCQUFJMkQ7TUFDWSxJQUFWa3lDLGNBSEZ2a0MsS0FHa0MsV0FIdEIwMUIsT0FFWnJqQztNQUVGLE9BL0pFOHhDLFlBMkpGemQsR0FHSTZkLFNBSEU5VixLQUltQjthQUpmLy9CO1NBS1E2L0IsUUFMUjcvQixRQUtDMGhDLFFBTEQxaEM7S0FNWixnQkFBSTJEO01BQ1ksSUFBVmt5QyxjQVBGdmtDLEtBaFdKK2lDLFlBcVdhM1MsT0FBTzdCLE9BRTBDLFdBUDlDbUgsT0FNWnJqQztNQUVGLE9BbktFOHhDLFlBMkpGemQsR0FPSTZkLFNBUEU5VixLQVFtQjs7UUFDZmdDLFVBVEEvaEM7SUFVWixnQkFBSWlzQyxHQUFFdG9DO0tBQ1UsSUFBVmt5QyxjQVhGdmtDLEtBaFdKK2lDLFlBeVdZdFMsU0FDUmtLLEdBQ3NELFdBWDFDakYsT0FVVnJqQztLQUVKLE9BdktFOHhDLFlBMkpGemQsR0FXSTZkLFNBWEU5VixLQVltQjs7WUF2S3ZCK1YsdUJBR0o5ZCxHQUFFMW1CLEtBQUl5dUI7SUFBTyxJQXlOWDdCLE1Bek5GbEcsR0F5Tkl6bUIsUUF6TkZELEtBQUl1eUI7SUFBTztlQUFQQSxvQkF1Rk4sa0JBa0lFM0YsS0FBRTNzQjtZQXpORXN5Qjs7WUFDRHJsQyxPQURDcWxDO1FBRU4sZ0JBQUl6OUI7U0FDWSxJQUFWeXZDLGNBc05GdGtDLE9Bdk5Bbkw7U0FFRixPQVBFcXZDLFlBNE5GdlgsS0F0TkkyWCxTQUZEcjNDLE1BR3VCOztZQUNsQkMsU0FMSm9sQztRQU1OLGdCQUFJejlCO1NBQ0Y7VUFoQ0FsRixNQUFNLDJCQStCSmtGO1VBOUJGZixJQUFKLHNCQURJbkU7VUFFQXFILE1BQU0sNEJBRE5sRDtTQUVKLGlCQUhJbkUsUUFFQXFILFFBREFsRDtTQStCYyxJQUFWd3dDLGNBa05GdGtDLE9BL09OLDZCQURJaEo7U0ErQkEsT0FYRWt0QyxZQTRORnZYLEtBbE5JMlgsU0FGSXAzQyxRQUdrQjs7WUFDZkMsU0FUUG1sQyxVQVNFN2pDLE1BVEY2akM7UUFVc0IsT0EwSTVCK1I7aUJBcUVFMVgsS0FBRTNzQixPQWhOUzdTLFFBQUxzQixjQUN5QmtCLEtBQU8sT0FBUEEsSUFBVTs7WUFDekJ2QyxTQVhaa2xDLFVBV081akMsUUFYUDRqQztRQVlOLE9Bd0lBK1IsYUFxRUUxWCxLQUFFM3NCLE9BOU1jNVMsUUFBTHNCLE9BOUpidzBDOzs7U0FnS3VCNzFDLFNBYmpCaWxDO1NBYVczakMsT0FiWDJqQztTQWFNMWpDLFFBYk4wakM7U0FhRHpqQyxRQWJDeWpDO1FBY04sT0EwSkEyUjtpQkFpREV0WCxLQUFFM3NCLE9BNU1tQjNTLFFBQVh1QixPQUFLRCxNQWpGakI2MEMsYUFpRkszMEM7OztTQUVvQnZCLFNBZm5CZ2xDO1NBZWF4akMsU0FmYndqQztTQWVRdmpDLFFBZlJ1akM7U0FlQ3RqQyxVQWZEc2pDO1FBZ0JOLE9Bd0pBMlI7aUJBaURFdFgsS0FBRTNzQixPQTFNcUIxUyxRQUFYeUIsT0FBS0QsUUFqRm5CMjBDLGVBaUZPejBDOzs7U0FFc0J6QixTQWpCdkIra0M7U0FpQmlCcmpDLFNBakJqQnFqQztTQWlCWXBqQyxRQWpCWm9qQztTQWlCS25qQyxVQWpCTG1qQztRQWtCTixPQXNKQTJSO2lCQWlERXRYO2lCQUFFM3NCO2lCQXhNeUJ6UztpQkFBWDJCO2lCQUFLRDtpQkFqRnZCeTBDO2lCQWlGV3YwQzs7O1NBRWMzQixTQW5CbkI4a0M7U0FtQmFsakMsU0FuQmJrakM7U0FtQlFqakMsUUFuQlJpakM7U0FtQkNoakMsVUFuQkRnakM7UUFvQk4sT0FvSkEyUjtpQkFpREV0WCxLQUFFM3NCLE9BdE1xQnhTLFFBQVg2QixPQUFLRCxRQWpGbkJ1MEMsZUFpRk9yMEM7OztTQXNNQzdCLFNBek5GNmtDO1NBeU5VL2lDLFNBek5WK2lDO1NBeU5NOWlDLFFBek5OOGlDO1NBeU5lN2lDLFFBek5mNmlDO2tCQXlOTTlpQzttQkFBSUQ7OztvQkFVWndSLEdBQUUzTztvQkFDTSxJQUFOekMsTUE3Uk5pMEMsY0FrUnFCbjBDLE9BVWpCc1IsR0FBRTNPO29CQUVKLE9BeE9FOHhDLFlBNE5GdlgsU0FBRTNzQixPQVdFclEsTUFYRWxDO21CQVl3Qzs7b0JBVjVDMkU7b0JBQ1E7cUJBQU56Qzt1QkFyUk5pMEMsY0FrUnFCbjBDLE9BMytDckIyL0Isd0JBMitDcUIzL0IsUUFFakIyQztvQkFFRixPQWhPRTh4QyxZQTRORnZYLFNBQUUzc0IsT0FHRXJRLE1BSEVsQzttQkFJd0M7YUFDdEJzVCxJQUxWeFI7U0FNaEIsZ0JBQUk2QztVQUNRLElBQU56QyxNQXpSTmkwQyxjQWtScUJuMEMsT0FLS3NSLEdBQ3RCM087VUFFRixPQXBPRTh4QyxZQTRORnZYLFNBQUUzc0IsT0FPRXJRLE1BUEVsQyxRQVF3Qzs7aUJBUnBDK0I7YUFrQlFrckMsSUFsQlJsckMsVUFrQkMyZ0MsUUFsQkQzZ0M7bUJBQUlEOzs7b0JBdUJad1IsR0FBRTNPO29CQUNNLElBQU56QyxNQXpiTm16QyxZQW1iYTNTLE9BQU91SyxHQXBTcEJrSixjQWtScUJuMEMsT0F1QmpCc1IsR0FBRTNPO29CQUVKLE9BclBFOHhDLFlBNE5GdlgsU0FBRTNzQixPQXdCRXJRLE1BeEJFbEM7bUJBeUJ3Qzs7b0JBWDVDMkU7b0JBQ0Y7cUJBQUl6Qzt1QkFqU05pMEMsY0FrUnFCbjBDLE9BMytDckIyL0Isd0JBMitDcUIzL0IsUUFjakIyQztxQkFFRTArQixRQWpiTmdTLFlBbWJhM1MsT0FBT3VLLEdBSGQvcUM7b0JBRUosT0E3T0V1MEMsWUE0TkZ2WCxTQUFFM3NCLE9BZ0JFOHdCLFFBaEJFcmpDO21CQWlCeUM7YUFDWDAyQyxNQWxCdEI1MEM7U0FtQmhCLGdCQUFJNkM7VUFDUSxJQUFOekMsTUFyYk5tekMsWUFtYmEzUyxPQUFPdUssR0FwU3BCa0osY0FrUnFCbjBDLE9Ba0JpQjAwQyxLQUNsQy94QztVQUVGLE9BalBFOHhDLFlBNE5GdlgsU0FBRTNzQixPQW9CRXJRLE1BcEJFbEMsUUFxQndDOztZQVVwQytpQyxVQS9CQWhoQztrQkFBSUQ7OzttQkFvQ1ptckMsR0FBRTM1QixHQUFFM087bUJBQ0k7b0JBQU56QyxNQXRjTm16QyxZQWdjWXRTLFNBS1JrSyxHQXRUSmtKLGNBa1JxQm4wQyxPQW9DZnNSLEdBQUUzTzttQkFFTixPQWxRRTh4QyxZQTRORnZYLFNBQUUzc0IsT0FxQ0VyUSxNQXJDRWxDO2tCQXNDd0M7O21CQVg1Q2l0QyxHQUFFdG9DO21CQUNKO29CQUFJekM7c0JBOVNOaTBDLGNBa1JxQm4wQyxPQTMrQ3JCMi9CLHdCQTIrQ3FCMy9CLFFBMkJmMkM7b0JBRUEwK0IsUUE5Yk5nUyxZQWdjWXRTLFNBSlJrSyxHQUNFL3FDO21CQUVKLE9BMVBFdTBDLFlBNE5GdlgsU0FBRTNzQixPQTZCRTh3QixRQTdCRXJqQztrQkE4QnlDO1lBQ2hCMjJDLE1BL0JqQjcwQztRQWdDaEIsZ0JBQUltckMsR0FBRXRvQztTQUNNLElBQU56QyxNQWxjTm16QyxZQWdjWXRTLFNBQ1JrSyxHQWxUSmtKLGNBa1JxQm4wQyxPQStCWTIwQyxLQUMzQmh5QztTQUVKLE9BOVBFOHhDLFlBNE5GdlgsU0FBRTNzQixPQWlDRXJRLE1BakNFbEMsUUFrQ3dDOztZQXBPckNFLFNBdkJMMmtDLFVBdUJBNWlDLFFBdkJBNGlDO1FBd0JOLE9BNEhBK1IsYUFxRUUxWCxLQUFFM3NCLE9BbE1PclMsUUFBTCtCOztRQW1CUTtTQTFDUjdCO1NBQUpvUyxZQXlORUQ7aUJBek5GQztTQUFJcXlCOzs7UUE2Q1E7U0E3Q1J4a0M7U0E0Q1U2QixNQTVDVjJpQztTQUFKdGEsWUF5TkVoWSxPQTdLWXJRO1NBNktacVEsUUF6TkZnWTtTQUFJc2E7OztRQStDUTtTQS9DUnZrQztTQThDUTZCLE1BOUNSMGlDO1NBQUprUyxZQXlORXhrQyxPQTNLVXBRO1NBMktWb1EsUUF6TkZ3a0M7U0FBSWxTOzs7UUFrREc7U0FEaUJ0a0MsVUFqRHBCc2tDO1NBaURTWCxZQWpEVFc7U0FrREY1a0MsS0FwRUpzMkMsZ0JBbUVlclM7UUFFZixnQkFBS2hpQztTQUNILE9BdkRFdTBDLFlBNE5GdlgsU0FBRTNzQixPQXZLQXRTLEtBRHNCTSxTQUlzQjs7WUFDeEJDLFVBdERsQnFrQyxVQXNEV3ppQyxRQXREWHlpQztRQXVETjthQUFhOUQsZ0JBQ0MsT0EvUWRxVSxPQThRYXJVLEtBREkzK0I7U0FFZixPQTNERXEwQztrQkE0TkZ2WDtrQkFBRTNzQjtrQkFqS0YsOENBRnNCL1IsVUFFYzs7WUEvQmhDZ0MsVUF6QkFxaUM7UUEwQk4sZ0JBQUlyaEMsR0FBRW1CO1NBQUssT0E3QlA4eEM7a0JBNE5Gdlg7c0JBQUUzc0IsZ0JBL0wwQ3hDLEdBQUssa0JBQS9Ddk0sR0FBMEN1TSxHQUF4Q3BMLEdBQWtEO2tCQURsRG5DLFNBQ3lEOztZQUN6REMsVUEzQkFvaUM7UUE0Qk4sZ0JBQUlyaEMsR0FBSyxPQS9CTGl6QyxZQTRORnZYLFNBQUUzc0IsT0E3TEEvTyxJQURFZixTQUMwQzs7UUFnRGxDO1NBNUVSQztTQTJFVUMsYUEzRVZraUM7U0FBSm1TLFlBeU5FemtDLE9BOUlZNVA7U0E4SVo0UCxRQXpORnlrQztTQUFJblM7Ozs7OztVQTZFdUNqaUMsVUE3RXZDaWlDOztVQUFOb1M7cUJBeU5JM2tDLEtBQUYwbUIsR0E1STJDeDVCO3NCQTdFN0MwL0IsSUE4RU9nWTtjQUNMLE9BbEZFVCxZQTRORnpkLE9BQUUxbUIsU0EzSUc0a0MsUUFEc0MxM0M7YUFFcUI7b0JBL0VsRTAvQjs7b0JBeU5JM3NCLE9BQUYyc0IsS0E1STJDdDhCO1VBNEkzQ3M4QixNQXpORkM7VUF5Tkk1c0I7VUF6TkVzeUI7Ozs7U0FpRnVDL2hDLFVBakZ2QytoQzs7U0FBTnNTO29CQXlOSTdrQyxLQUFGMG1CLEdBeEkyQ3g1QjtxQkFqRjdDMC9CLElBa0ZPZ1k7YUFDTCxPQXRGRVQsWUE0TkZ6ZCxPQUFFMW1CLFNBdklHNGtDLFFBRHNDMTNDO1lBRXFCO21CQW5GbEUwL0I7O21CQXlOSTNzQixPQUFGMnNCLEtBeEkyQ3A4QjtTQXdJM0NvOEIsTUF6TkZIO1NBeU5JeHNCO1NBek5Fc3lCOzs7UUF3Q047O1FBbUJjO1NBRE85aEMsVUExRGY4aEM7U0EyREZnUyxjQThKQXRrQztRQTdKSix1QkFBUyxPQS9ETGtrQyxZQTRORnZYLEtBOUpFMlgsU0FEaUI5ekMsU0FFYzs7WUFDZEcsVUE3RGYyaEM7UUFpRU4sZ0JBQUl6Z0M7U0FDWSxJQUFWeXlDLGNBdUpGdGtDLE9BdkprQyx5QkFEbENuTztTQUVGLE9BdEVFcXlDLFlBNE5GdlgsS0F2SkkyWCxTQUxlM3pDLFNBTU87O1lBQ2JFLFVBcEVUeWhDO1FBcUVOLGdCQUFJejlCO1NBQ1ksSUFBVnl2QyxjQW1KRnRrQyxPQXBKQW5MO1NBRUYsT0ExRUVxdkMsWUE0TkZ2WCxLQW5KSTJYLFNBRlN6ekMsU0FHYTs7WUFDUkMsVUF4RWR3aEMsVUF3RVN2aEMsTUF4RVR1aEM7UUF5RU47O2tCQWtCQXVTLDBCQThIRWxZLEtBQUUzc0IsT0FqSldqUCxLQUFLRDs7UUFDcEIsT0FrQkErekMsZ0NBOEhFbFksS0FBRTNzQixPQWpKV2pQLEtBQUtEOztRQTFDUztTQURYRSxVQTdCWnNoQztTQTZCU3JoQyxJQTdCVHFoQztTQTZCRXBoQyxRQTdCRm9oQztTQThCdUIsa0JBRGRyaEM7UUFDYzs7a0JBa083QjZ6QyxtQkF2Q0VuWSxLQUFFM3NCLE9BNUxjaFAsU0FBVkU7O1FBQ3FCLE9Ba083QjR6Qyx5QkF2Q0VuWSxLQUFFM3NCLE9BNUxjaFAsU0FBVkU7OztHQTBESDtZQUlMMnpDLDhCQUlBcGUsR0FBRTFtQixLQUFJaFAsS0FBSXk5QjtJQUFPLFVBQVh6OUI7OztRQUM2Qjt1Q0E2Q25DZzBDLHNCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7UUFDeUIsT0E2Q25DdVcsNEJBOUNBdGUsR0FBRTFtQixLQUFReXVCOztRQUV5Qjt1Q0E0Q25DdVcsc0JBOUNBdGUsR0FBRTFtQixLQUFReXVCOztRQUV5QixPQTRDbkN1Vyw0QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O1FBYXlCOztRQUdBO3VDQThCbkN1VyxzQkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O1FBZ0J5QixPQThCbkN1Vyw0QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O1dBQUp6OUI7O09BRzZCO3NDQTJDbkNnMEMsc0JBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQUd5QixPQTJDbkN1Vyw0QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BSXlCO3NDQTBDbkN1VyxzQkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BSXlCLE9BMENuQ3VXLDRCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FLeUI7c0NBeUNuQ3VXLHNCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FLeUIsT0F5Q25DdVcsNEJBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQU15QjtzQ0F3Q25DdVcsc0JBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQU15QixPQXdDbkN1Vyw0QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BT3lCO3NDQXVDbkN1VyxzQkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BT3lCLE9BdUNuQ3VXLDRCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FReUI7c0NBc0NuQ3VXLHNCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FReUIsT0FzQ25DdVcsNEJBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQVN5QjtzQ0FxQ25DdVcsc0JBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQVN5QixPQXFDbkN1Vyw0QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BVXlCO3NDQW9DbkN1VyxzQkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O09BVXlCLE9Bb0NuQ3VXLDZCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FXeUI7c0NBbUNuQ3VXLHNCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FXeUIsT0FtQ25DdVcsNkJBOUNBdGUsR0FBRTFtQixLQUFReXVCOztXQVllMytCLFFBWm5Ca0I7T0FZNkI7O2lCQVFuQ2kwQyx1QkFwQkF2ZSxHQUFFMW1CLEtBWXVCbFEsT0FaZjIrQjs7T0FZeUIsT0FRbkN3Vyw4QkFwQkF2ZSxHQUFFMW1CLEtBWXVCbFEsT0FaZjIrQjs7T0FjeUI7c0NBZ0NuQ3VXLHNCQTlDQXRlLEdBQUUxbUIsS0FBUXl1Qjs7T0FjeUIsT0FnQ25DdVcsNkJBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQWV5QjtzQ0ErQm5DdVcsc0JBOUNBdGUsR0FBRTFtQixLQUFReXVCOztPQWV5QixPQStCbkN1Vyw2QkE5Q0F0ZSxHQUFFMW1CLEtBQVF5dUI7O0dBZ0JtRDtZQUk3RHdXLDJCQUlBdmUsR0FBRTFtQixLQUFJbFEsT0FBTTIrQjtJQUFPLFVBQWIzK0I7OztZQUNFNUMsT0FERjRDO1FBQ3FCLHVCQUFTLE9BTHBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQUNNOVMsTUFESXVoQyxLQUNzRDs7WUFDeER0aEMsU0FGSjJDO1FBRXFCLHVCQUFTLE9BTnBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQUVRN1MsUUFGRXNoQyxLQUVzRDs7WUFDM0RyaEMsU0FIRDBDO1FBR3FCLHVCQUFTLE9BUHBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQUdLNVMsUUFIS3FoQyxLQUdzRDs7WUFDekRwaEMsU0FKSHlDO1FBSXFCLHVCQUFTLE9BUnBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQUlPM1MsUUFKR29oQyxLQUlzRDs7WUFDckRuaEMsU0FMUHdDO1FBS3FCLHVCQUFTLE9BVHBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQUtXMVMsUUFMRG1oQyxLQUtzRDs7WUFDekRsaEMsU0FOSHVDO1FBTXFCLHVCQUFTLE9BVnBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQU1PelMsUUFOR2toQyxLQU1zRDs7WUFDekRqaEMsU0FQSHNDO1FBT3FCLHVCQUFTLE9BWHBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQU9PeFMsUUFQR2loQyxLQU9zRDs7WUFDMURoaEMsU0FSRnFDO1FBUXFCLHVCQUFTLE9BWnBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQVFNdlMsUUFSSWdoQyxLQVFzRDs7WUFNaEQvZ0MsU0FkWm9DO1FBY3FCLHVCQUFTLE9BbEJwQ28xQyxnQkFJQXhlLEdBQUUxbUIsS0FjZ0J0UyxRQWROK2dDLEtBY3NEOztRQUd6RDtTQURrQjdnQyxTQWhCckJrQztTQWdCZ0J4QixNQWhCaEJ3QjtTQWdCV2pDLE1BaEJYaUM7U0FpQkZuQyxLQTkxQkorbkMsTUF2SUkxQyxLQW8rQmFubEMsTUFBS1M7UUFFdEI7U0FBUyxPQXRCVDQyQztrQkFJQXhlO2tCQUFFMW1CO2tCQWtCNkIsd0NBRDNCclMsSUFEdUJDO2tCQWhCZjZnQyxLQWtCNkM7O1lBVGhEM2dDLFNBVEhnQztRQVNxQjtTQUFXLE9BYnRDbzFDLGdCQUlBeGUsR0FBRTFtQixLQVNPbFMsUUFURzJnQyxLQVN3RDs7WUFDM0QxZ0MsVUFWSCtCO1FBVXFCLHVCQUFTLE9BZHBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQVVPalMsU0FWRzBnQyxLQVVzRDs7WUFDM0R6Z0MsVUFYRDhCO1FBV3FCLHVCQUFTLE9BZnBDbzFDLGdCQUlBeGUsR0FBRTFtQixLQVdLaFMsU0FYS3lnQyxLQVdzRDs7UUFDdkM7O1FBQ0E7O0lBRUE7bUNBTzNCdVcsc0JBdEJBdGUsR0FBRTFtQixLQUFVeXVCOztJQWVlLE9BTzNCdVcsNEJBdEJBdGUsR0FBRTFtQixLQUFVeXVCO0dBa0I2QztZQUl6RHVXLDBCQUdBdGUsR0FBRTFtQixLQUFJeXVCO0lBQ00sZUFEVnp1QjtJQUNKO21DQXBKTXdrQyxtQkFtSko5ZCxTQUFNK0g7O0lBQ1IsT0FwSk0rVix5QkFtSko5ZCxTQUFNK0g7R0FDOEQ7WUErR3BFc1csdUJBSUVyZSxHQUFFMW1CLEtBQUk5UyxNQUFLaUUsT0FBTUQ7SUFBSyxHQUFYQztTQUVEd29DLFVBRkN4b0M7S0FHYixnQkFBSWtCO01BQ0YsT0FSRjh5QyxZQUlFemUsR0FBRTFtQixLQUFJOVMsTUFFSXlzQyxTQUVtQixXQUpaem9DLEdBR2ZtQixJQUNnQzs7SUFIUCxlQUR6QjJOLEtBQWU5TztJQUNKO21DQXhRWHN6QyxtQkF1UUY5ZCxTQUFNeDVCOztJQUNPLE9BeFFYczNDLHlCQXVRRjlkLFNBQU14NUI7R0FJNEI7WUEzUWhDaTNDLFlBR0p6ZCxHQUFFMW1CLEtBQUl5dUI7SWxDOStDWCx1QmtDMitDUytWLGlCQUdKOWQsR0FBRTFtQixLQUFJeXVCOztZQTJGTjJXLG1CQUlBMWUsR0FBRTFtQixLQUFJaFAsS0FBSXk5QjtJbEM3a0RmLHVCa0N5a0RLcVcsd0JBSUFwZSxHQUFFMW1CLEtBQUloUCxLQUFJeTlCOztZQW9CVnlXLGdCQUlBeGUsR0FBRTFtQixLQUFJbFEsT0FBTTIrQjtJbENybURqQix1QmtDaW1ES3dXLHFCQUlBdmUsR0FBRTFtQixLQUFJbFEsT0FBTTIrQjs7WUF5SVowVyxZQUlFemUsR0FBRTFtQixLQUFJOVMsTUFBS2lFLE9BQU1EO0lsQ2x2RHhCLHVCa0M4dURLNnpDLGlCQUlFcmUsR0FBRTFtQixLQUFJOVMsTUFBS2lFLE9BQU1EOztZQWlGbkJtMEMsd0JBSUUzZSxHQUFFanBCLEdBQUVneEIsS0FBSS8vQixLQUFJRTtJQUFRLFVBQVpGO2VBQUlFO01BSUosV0FqRk4wMkMsYUE2RUY1ZSxHQUFFanBCLEdBQUVneEI7TUFJSSxzQmxDMzBEZjs7UWtDdTBEbUI3L0I7TUFNRyxXQW5GYjAyQyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QixNQU1JLHNCbEM3MERmO01rQzYwRGUsc0JsQzcwRGY7O0trQ3kwRGUsV0EvRU42VyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QjtLQUVJLHNCbEN6MERmOztha0N1MERlLy9CO2VBQUlFO01BVUosV0F2Rk4wMkMsYUE2RUY1ZSxHQUFFanBCLEdBQUVneEI7TUFVSSxzQmxDajFEZjs7UWtDdTBEbUI3L0I7TUFZRyxXQXpGYjAyQyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QixNQVlJLHNCbENuMURmO01rQ20xRGUsc0JsQ24xRGY7O0trQyswRGUsV0FyRk42VyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QjtLQVFJLHNCbEMvMERmOztja0N1MERtQjcvQjtLQWdCRyxXQTdGYjAyQyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QixNQWdCSSxzQmxDdjFEZjtLa0N1MURlLHNCbEN2MURmOztPa0N1MERtQjcvQjtLQWtCVTthQS9GcEIwMkMsYUE2RUY1ZSxHQUFFanBCLEdBQUVneEI7TUFrQlcsc0JsQ3oxRHRCO01rQ3kxRGUsc0JsQ3oxRGY7S2tDeTFEZSxzQmxDejFEZjs7SWtDcTFEc0IsV0EzRmI2VyxhQTZFRjVlLEdBQUVqcEIsR0FBRWd4QjtJQWNJLG9CbENyMURmO0lrQ3ExRGUsc0JsQ3IxRGY7R2tDeTFEcUQ7WUEvRjVDOFcsd0JBRUY3ZSxHQUFFanBCLEdBQUVneEI7SUFBTyxJQUFYN0IsU0FBSTJGO0lBQU87ZUFBUEEsb0JBc0VGLGtCQXRFRjNGLEtBQUVudkI7WUFBRTgwQjs7UUFFSSxJQURIcmxDLE9BRERxbEMsVUFFSSxPQUpOK1MsYUFFRjFZLEtBQUVudkIsR0FDR3ZRO1FBQ0csc0JsQzl2RGY7O1FrQ2d3RGUsSUFERUMsU0FITm9sQyxVQUlJLE9BTk4rUyxhQUVGMVksS0FBRW52QixHQUdRdFE7UUFDRixzQmxDaHdEZjs7bUJrQzR2RFdvbEM7O1NBTUksSUFEWW5sQyxTQUxoQm1sQyxVQU1JLE9BUk4rUyxhQUVGMVksS0FBRW52QixHQUtrQnJRO1NBQ1osc0JsQ2x3RGY7OztTa0Nvd0RlLElBRGVDLFNBUG5Ca2xDLFVBUUksT0FWTitTLGFBRUYxWSxLQUFFbnZCLEdBT3FCcFE7U0FDZixzQmxDcHdEZjs7UWtDc3dEc0I7U0FEUUMsU0FUbkJpbEM7U0FVVyxPQVpiK1MsYUFFRjFZLEtBQUVudkIsR0FTcUJuUTtTQUNmLHNCbEN0d0RmO1FrQ3N3RGUsc0JsQ3R3RGY7O21Ca0M0dkRXaWxDOztTQVlJLElBRGlCaGxDLFNBWHJCZ2xDLFVBWUksT0FkTitTLGFBRUYxWSxLQUFFbnZCLEdBV3VCbFE7U0FDakIsc0JsQ3h3RGY7OztTa0Mwd0RlLElBRG9CQyxTQWJ4QitrQyxVQWNJLE9BaEJOK1MsYUFFRjFZLEtBQUVudkIsR0FhMEJqUTtTQUNwQixzQmxDMXdEZjs7UWtDNHdEc0I7U0FEYUMsU0FmeEI4a0M7U0FnQlcsT0FsQmIrUyxhQUVGMVksS0FBRW52QixHQWUwQmhRO1NBQ3BCLHNCbEM1d0RmO1FrQzR3RGUsc0JsQzV3RGY7O1lrQzZ3RDBCQyxTQWpCZjZrQyxVQWlCUzNqQyxPQWpCVDJqQyxVQWlCSTdqQyxNQWpCSjZqQztRQWtCRixPQXFESjhTLHdCQXZFRXpZLEtBQUVudkIsR0FpQmlCL1AsUUFBWGdCLEtBQUtFOztZQUVRaEIsU0FuQmpCMmtDLFVBbUJXeGpDLFNBbkJYd2pDLFVBbUJNNWpDLFFBbkJONGpDO1FBb0JGLE9BbURKOFMsd0JBdkVFelksS0FBRW52QixHQW1CbUI3UCxRQUFYZSxPQUFLSTs7WUFFVWpCLFNBckJyQnlrQyxVQXFCZXJqQyxTQXJCZnFqQyxVQXFCVTFqQyxRQXJCVjBqQztRQXNCRixPQWlESjhTLHdCQXZFRXpZLEtBQUVudkIsR0FxQnVCM1AsUUFBWGUsT0FBS0s7O1lBRUVuQixVQXZCakJ3a0MsVUF1QldsakMsU0F2QlhrakMsVUF1Qk12akMsUUF2Qk51akM7UUF3QkYsT0ErQ0o4Uyx3QkF2RUV6WSxLQUFFbnZCLEdBdUJtQjFQLFNBQVhpQixPQUFLSzs7WUFFTXJCLFVBekJqQnVrQyxVQXlCVy9pQyxTQXpCWCtpQyxVQXlCTXBqQyxRQXpCTm9qQztRQTBCRixPQTZDSjhTLHdCQXZFRXpZLEtBQUVudkIsR0F5Qm1CelAsU0FBWG1CLE9BQUtLOzttQkF6QlgraUM7O1NBNEJJLElBRFV0a0MsVUEzQmRza0MsVUE0QkksT0E5Qk4rUyxhQUVGMVksS0FBRW52QixHQTJCZ0J4UDtTQUNWLHNCbEN4eERmOzs7U2tDMHhEZSxJQURhQyxVQTdCakJxa0MsVUE4QkksT0FoQ04rUyxhQUVGMVksS0FBRW52QixHQTZCbUJ2UDtTQUNiLHNCbEMxeERmOztRa0M0eERzQjtTQURNZ0MsVUEvQmpCcWlDO1NBZ0NXLE9BbENiK1MsYUFFRjFZLEtBQUVudkIsR0ErQm1Cdk47U0FDYixzQmxDNXhEZjtRa0M0eERlLHNCbEM1eERmOztZa0M0dkRXQzs7Ozs7O1FBa0RJLElBRFVLLFVBakRkK2hDLFVBa0RJLE9BcEROK1MsYUFFRjFZLEtBQUVudkIsR0FpRGdCak47UUFDVixzQmxDOXlEZjs7WWtDK3lEK0JDLFVBbkRwQjhoQyxVQW1EYXppQyxRQW5EYnlpQztRQW9ERjthQUFhOUQsZ0JBRUcsT0EzaEJwQnFVLE9BeWhCaUJyVSxLQURFMytCO1NBR1gsT0F4REp3MUM7a0JBRUYxWTtrQkFBRW52QjtrQkFzREksOENBSGtCaE4sVUFHa0I7O1FBcEIzQjtTQURURyxVQWpDRjJoQztTQWtDVyxPQXBDYitTLGFBRUYxWSxLQUFFbnZCLEdBaUNJN007U0FDRSxzQmxDOXhEZjtRa0M4eERlLHNCbEM5eERmOztRa0NneURlLElBREZFLFVBbkNGeWhDLFVBb0NJLE9BdENOK1MsYUFFRjFZLEtBQUVudkIsR0FtQ0kzTTtRQUNFLHNCbENoeURmOztZa0M0dkRXQzs7Ozs7VUFpRXlDRSxVQWpFekNzaEM7O1VBQUpvUzt3QkFpRTZDejNDO3NCQWpFN0MwL0IsSUFrRW9CNFksS0FBTyxPQXBFekJGLGFBRUY1ZSxHQWtFb0I4ZSxLQUR5QnQ0QyxNQUNLO29CQWxFbEQwL0I7O3lCQWlFNkMzN0I7VUFqRTdDMjdCO1VBQUkyRjs7OztTQW1FeUNrVCxVQW5FekNsVDs7U0FBSnNTO3VCQW1FNkMzM0M7cUJBbkU3QzAvQixJQW9Fb0I0WSxLQUFPLE9BdEV6QkYsYUFFRjVlLEdBb0VvQjhlLEtBRHlCdDRDLE1BQ0s7bUJBcEVsRDAvQjs7d0JBbUU2QzZZO1NBbkU3QzdZO1NBQUkyRjs7O1FBMENGOztRQWNNLElBRGFtVCxVQXZEakJuVCxVQXdESSxPQTFETitTLGFBRUYxWSxLQUFFbnZCLEdBdURtQmlvQztRQUNiLHNCbENwekRmOztRa0NzekRlLElBRGFDLFVBekRqQnBULFVBMERJLE9BNUROK1MsYUFFRjFZLEtBQUVudkIsR0F5RG1Ca29DO1FBQ2Isc0JsQ3R6RGY7O1FrQ3d6RGUsSUFET0MsVUEzRFhyVCxVQTRESSxPQTlETitTLGFBRUYxWSxLQUFFbnZCLEdBMkRhbW9DO1FBQ1Asc0JsQ3h6RGY7O1lrQ3l6RDJCQyxVQTdEaEJ0VCxVQTZEV3ZoQyxNQTdEWHVoQztRQThERixPQWpQSjZTO2lDQWlQaUMsa0JBOUQvQnhZLEtBQUVudkIsR0E4RGdDOztpQkFEbkJ6TTtpQkFBSzYwQzs7WUF4QkZDLFVBckNkdlQsVUFxQ0lwaEMsUUFyQ0pvaEM7UUFzQ0Y7O2tCQXdESndULDBCQTlGRW5aLEtBQUVudkIsR0FxQ2dCcW9DLFNBQVYzMEM7O1FBQ04sT0F3REo0MEMsZ0NBOUZFblosS0FBRW52QixHQXFDZ0Jxb0MsU0FBVjMwQzs7O0dBaUNIO1lBd0JQNDBDLDhCQUdFcmYsR0FBRWpwQixHQUFFZ3hCO0lBSE47S0FPVSxJQURJdDlCLGtCQUNKLE9BUFY2MEMsbUJBR0V0ZixHQUFFanBCLEdBQUVneEIsS0FHUXQ5QjtLQUNKLHNCbENqMkRmOztJa0MrMURTO21DQXJHQW8wQyxvQkFtR0Y3ZSxHQUFFanBCLEdBQUVneEI7O0lBRUYsT0FyR0E4VywwQkFtR0Y3ZSxHQUFFanBCLEdBQUVneEI7R0FJc0M7WUF2R3hDNlcsYUFFRjVlLEdBQUVqcEIsR0FBRWd4QjtJbEM1dkRYLHVCa0MwdkRTOFcsa0JBRUY3ZSxHQUFFanBCLEdBQUVneEI7O1lBOEZOdVgsbUJBR0V0ZixHQUFFanBCLEdBQUVneEI7SWxDNzFEWCx1QmtDMDFES3NYLHdCQUdFcmYsR0FBRWpwQixHQUFFZ3hCOztZQVlGd1gsV0FBV3hvQyxHQUFFdUM7SUFBTSxJQUFOQztJQUFNO2VBQU5BLG9CQWVXO1lBZlhBOztRQUVUO1NBRGU1UCxhQURONFA7U0FDR2UsSUFESGY7U0FFYi9OLElBMTVDSjQrQix5QkF5NUN1QnpnQztRQURuQjQxQyxXQUFXeG9DLEdBQ0t1RDtRQUVwQiw4QkFIZXZELEdBRVh2TDs7b0JBRmErTixVQU1HbWtDLE1BTkhua0M7OztTQUFiZ21DLFdBQVd4b0MsR0FNSzJtQztTQURKLHVCQUxEM21DO2FBQUV3Qzs7OztRQUFiZ21DLFdBQVd4b0MsR0FNSzJtQztRQUNKLHVCQVBEM21DO1lBQUV3Qzs7O1lBWUgvTyxJQVpHK08sVUFZTmltQyxNQVpNam1DO1FBQWJnbUMsV0FBV3hvQyxHQVlKeW9DO1FBQWlCLGtCQUFkaDFDLEdBWkN1TTs7WUFhTDBvQyxNQWJPbG1DO1FBQWJnbUMsV0FBV3hvQyxHQWFMMG9DO1FBQWtCLDhCQWJiMW9DOztZQWNLQyxNQWRIdUMsVUFjQW1tQyxNQWRBbm1DO1FBQWJnbUMsV0FBV3hvQyxHQWNFMm9DO1FBQVcsNkJBQVIxb0M7OztZQU5HK0UsTUFSTnhDLFVBUUdva0MsTUFSSHBrQztRQUFiZ21DLFdBQVd4b0MsR0FRSzRtQztRQUNRLDhCQVRiNW1DLEdBUVFnRjs7WUFFRjNOLElBVkptTCxVQVVDb21DLE1BVkRwbUM7UUFBYmdtQyxXQUFXeG9DLEdBVUc0b0M7UUFDVSw4QkFYYjVvQyxHQVVNM0k7OztHQUtTO1lBSzFCd3hDLFdBQVc3eUMsR0FBRXVNO0lBQU0sSUFBTkM7SUFBTTtlQUFOQSxvQkFlVztZQWZYQTs7UUFFVDtTQURlNVAsYUFETjRQO1NBQ0dlLElBREhmO1NBRWIvTixJQTk2Q0o0K0IseUJBNjZDdUJ6Z0M7UUFEbkJpMkMsV0FBVzd5QyxHQUNLdU47UUFFcEIscUNBSGV2TixHQUVYdkI7O29CQUZhK04sVUFNR21rQyxNQU5IbmtDOzs7U0FBYnFtQyxXQUFXN3lDLEdBTUsyd0M7U0FESiw4QkFMRDN3QzthQUFFd007Ozs7UUFBYnFtQyxXQUFXN3lDLEdBTUsyd0M7UUFDSiw4QkFQRDN3QztZQUFFd007OztZQVlIL08sSUFaRytPLFVBWU5pbUMsTUFaTWptQztRQUFicW1DLFdBQVc3eUMsR0FZSnl5QztRQUFpQixrQkFBZGgxQyxHQVpDdUM7O1lBQUVneEM7O1lBY0cvbUMsTUFkSHVDLFVBY0FrbUMsTUFkQWxtQztRQUFicW1DLFdBQVc3eUMsR0FjRTB5QztRQUFXLDZCQUFSem9DOzs7WUFORytFLE1BUk54QyxVQVFHb2tDLE1BUkhwa0M7UUFBYnFtQyxXQUFXN3lDLEdBUUs0d0M7UUFDUSxxQ0FUYjV3QyxHQVFRZ1A7O1lBRUYzTixJQVZKbUwsVUFVQ29tQyxNQVZEcG1DO1FBQWJxbUMsV0FBVzd5QyxHQVVHNHlDO1FBQ1UscUNBWGI1eUMsR0FVTXFCOzs7R0FLUztZQU0xQnl4QyxXQUFXOXlDLEdBQUV1TTtJQUFNLElBQU5DO0lBQU07ZUFBTkEsb0JBZVc7WUFmWEE7O1FBRVQ7U0FEZTVQLGFBRE40UDtTQUNHZSxJQURIZjtTQUViL04sSUFuOENKNCtCLHlCQWs4Q3VCemdDO1FBRG5CazJDLFdBQVc5eUMsR0FDS3VOO1FBRXBCLHFDQUhldk4sR0FFWHZCOztvQkFGYStOLFVBTUdta0MsTUFOSG5rQzs7O1NBQWJzbUMsV0FBVzl5QyxHQU1LMndDO1NBREosOEJBTEQzd0M7YUFBRXdNOzs7O1FBQWJzbUMsV0FBVzl5QyxHQU1LMndDO1FBQ0osOEJBUEQzd0M7WUFBRXdNOzs7WUFZSC9PLElBWkcrTyxVQVlOaW1DLE1BWk1qbUM7UUFBYnNtQyxXQUFXOXlDLEdBWUp5eUM7UUFBcUQsc0JBQWxEaDFDO1FBQWtELHFDQVpqRHVDOztZQUFFZ3hDOztZQWNHL21DLE1BZEh1QyxVQWNBa21DLE1BZEFsbUM7UUFBYnNtQyxXQUFXOXlDLEdBY0UweUM7UUFBVyw2QkFBUnpvQzs7O1lBTkcrRSxNQVJOeEMsVUFRR29rQyxNQVJIcGtDO1FBQWJzbUMsV0FBVzl5QyxHQVFLNHdDO1FBQ1EscUNBVGI1d0MsR0FRUWdQOztZQUVGM04sSUFWSm1MLFVBVUNvbUMsTUFWRHBtQztRQUFic21DLFdBQVc5eUMsR0FVRzR5QztRQUNVLHFDQVhiNXlDLEdBVU1xQjs7O0dBS1M7WUFNOUIweEM7SUFDUSxJQURrQi9YLGdCQUN4QjczQixNQUFNO2FBQ044dkIsRUFBRTFtQjtLQXZCQXVtQyxXQXNCRjN2QyxLQUNFb0o7S0FBbUMsd0NBRHJDcEo7S0FDcUM7SUFBcUI7SUFDOUQsT0EvYk11dEMsWUE4YkZ6ZCxNQUZ3QitIOztZQVMxQmdZLG1CQUFtQjcyQztJQUNyQixHQUFHLDBCQURrQkEsY0FDSjtRQUNYNEYsNEJBRmU1RjthQUdmODJDO0tBQWlCLE9BQXJCLFdBWkFGLHVCQVNtQjUyQztJQUdtRDthQUM5RCsyQyxhQUFhM3lDO0tBQ25CLElBRG1CQztLQUNuQjtTQURtQkEsUUFGakJ1QixLQUdjLE9BREd2QjtNQUVYLDRCQU5TckUsS0FJRXFFO3NDQUlWLE9BSlVBO01BR0QsSUFIQ2djOztJQUlUO0lBV0MsSUFWSzIyQixTQUxWRCxpQkFnQkpFLE9BWGNEO0lBQ2hCO1FBVUVDLFNBbEJBcnhDLGFBU00sZ0JBWFM1RixLQW9CZmkzQyxrQkFSZ0IsSUFIRi9rQyxJQVdkK2tDLHFCQVhjL2tDO0tBWUg7TUFBWGdsQyxXQUFXLDhCQXJCSWwzQyxLQVNEZzNDLFFBV2RDLE9BWGNEO01BS0ZHLFNBVlJKLGFBZ0JKRTtNQUdBRyxPQVRZRDtLQUNkO1NBUUVDLFNBckJBeHhDO09BY00sNEJBaEJTNUYsS0F1QmZvM0M7Ozs7O29CQU5zQixJQUhWdHVCLE1BU1pzdUIscUJBVFl0dUI7O29CQVNac3VCO1dBQ0FDOztPQUVBO1FBQUk7OzthQUFjLDhCQTFCSHIzQyxLQWNIbTNDLFFBU1pDLE9BVFlEO1NBVVpFOzs7OztxQkFyQkFQOztNQXlCVSxJQUFWUSxVQXhCSVAsYUFtQkpLO1NBS0FFLFlBMUJBMXhDLEtBQ0FreEM7Ozs2QkFrQkFJOzs7UUFTQUs7K0JBVEFMOzs7Ozt1REFsQkFKOzs7Ozs7dUJBMkJBUztNQU9KLFdBYklGLFFBTUFFOzs7R0FPYztZQU9sQkMscUJBR0ExNEMsS0FBSSsvQjtJQUFPLFVBQVgvL0Isa0JBQ3NCLGNBRGxCKy9CO2FBQUovL0IsWUFFZ0Jpc0MsSUFGaEJqc0MsUUFFYXdELElBRmJ4RCxRQUVzQixlQUFUd0QsR0FBR3lvQyxJQUZabE07UUFHUWhzQixNQUhaL1Q7SUFHc0IsZUFBVitULE1BSFJnc0I7R0FHc0Q7WUFlMUQ0WSxxQkFJQTM0QyxLQUFJRSxNQUN1QjYvQjtJQUE3QixVQURNNy9COytCQUN1QjYvQjs7U0FYYnp0QixJQVVWcFMseUJBVlVvUyxJQVdheXRCO1FBQU4xL0I7SUFDdkIsVUFGRUwsa0JBR3NCLGNBRkRLLFFBQU0wL0I7SUFDN0IsU0FGRS8vQjtTQUlnQmlzQyxJQUpoQmpzQyxRQUlhd0QsSUFKYnhEO0tBSXNCLGVBQVR3RCxHQUFHeW9DLElBSEs1ckMsUUFBTTAvQjs7UUFJZmhzQixNQUxaL1Q7SUFLc0IsZUFBVitULE1BSlMxVCxRQUFNMC9CO0dBSXNDO1lBT2pFNlksa0JBQW1CQyxpQkFBZ0IzM0M7SUFpQnJDLEdBakJxQjIzQztTQWtCWkMsT0FsQllELG9CQWlCakJFLG9CQUNLRDs7U0FETEM7YUFpQkFDLHVCQUF1QjNaLFNBQVFyd0I7S0FDakMsa0JBN0hBOG9DLHVCQTBGbUM1MkMsS0FrQ1ZtK0IsU0FBUXJ3QjtJQUdoQjtJQUtuQixTQUFJaXFDLHlCQUF5QkM7S0FDM0IsT0FURUYsdUJBUXlCRTtJQUVDO2FBVTFCQyx1QkFBdUI5WixTQUFRajVCLEdBQUU1QztLQUNuQyxrQkFqSkFzMEMsdUJBMEZtQzUyQyxLQXNEVm0rQixTQUFRajVCLEdBQUU1QztJQUdsQjthQUtmNDFDLG1CQUFtQi9aLFNBQVFnYSxVQUFTcHJCO0tBQ3RDLGtCQXpKQTZwQix1QkEwRm1DNTJDLEtBOERkbStCLFNBQVFnYSxVQUFTcHJCO0lBR1g7YUFzdEJ6QnFyQixZQUdBQyxXQUFVbGEsU0FBUVU7S0FBTyxJQUd6QjVTLE9BSFVrUyxVQUFWa2E7a0JBR0Fwc0I7bUJBSGtCNFM7O21CQUdsQjVTOzBCQUQrQixnQkE1eEJFanNCLEtBMHhCakNxNEMsWUFBa0J4Wjs7O2tCQUdlLDhCQTd4QkE3K0IsS0EweEJqQ3E0QyxXQUdBcHNCO2tCQUhrQjRTO0lBR21EO2FBeHRCakV5WixNQUtKRCxXQTBqQlFMO0tBOWpCVyxJQXFCbkI3WixVQWpCQWthO0tBQ0Y7U0FnQkVsYSxZQXlpQlE2WixTQXpqQmdCLE9BNHNCeEJJLFlBN3NCQUMsV0FpQkFsYTtNQWZNLDRCQTVFMkJuK0IsS0EyRmpDbStCOztXQUFRb2EsWUFBUnBhO1VBQVFvYSxjQXlpQkFQLFNBMWxCUkQseUJBMGxCUUM7OztpQkF2aUJKLGdCQTdGNkJoNEMsS0EyRnpCdTRDO2FBTVJDLFlBTkFyYSxTQUFRb2EsbUJBeWlCQVA7YUFuaUJSUSxZQU5BcmEsU0FBUW9hLFdBeWlCQVA7UUF0akJNMU07T0FDWixPQXdzQkY4TSxZQTdzQkFDLFdBaUJBbGEsU0FiY21OOzs7V0FKSm1OLFlBaUJWdGEsMkJBakJVc2E7OztVQW1kVkMsWUFsY0F2YTtTQWtjQXVhLGNBdUdRVjs7O09BcEdGLElBdUNKOXlDLElBdkNJLGdCQWhpQjJCbEYsS0E2aEJqQzA0QztnQkEwQ0V4ekM7O1NBdkNJLGVBdUNKQTs7Ozs7OzJCQUtGeXpDLGFBL0NBRCxtQkF1R1FWOzs7OztjQTNGTXBNLGFBcGVWME0sTUF3ZEpJLG1CQXVHUVY7b0NBM0ZNcE07OztzQkE4QloxbUM7OzswQkFLRnl6QyxhQS9DQUQsbUJBdUdRVjs7Ozs7YUFoR01qTSxhQS9kVnVNLE1Bd2RKSSxtQkF1R1FWO21DQWhHTWpNOzs7O3NCQW1DWjdtQzs7U0FoQllnbkMsYUFsZlZvTSxNQXdkSkksbUJBdUdRVjsrQkE3RU05TDtxQkFnQlpobkM7Ozs7WUF4QlltbkMsYUExZVZpTSxNQXdkSkksbUJBdUdRVjtvQ0FyRk0zTDs7OztXQWtCc0I7Y0FwQ3BDcU0scUJBdUdRVjt1QkFuRTRCLGdCQWprQkhoNEMsS0E2aEJqQzA0Qzs7YUFxQ2NqTSxhQTdmVjZMLE1Bd2RKSSxtQkF1R1FWO21DQWxFTXZMOzs7OzthQUdBTyxhQWhnQlZzTCxNQXdkSkksV0F1R1FWO29DQS9ETWhMOzs7O1lBekJBTyxhQXZlVitLLE1Bd2RKSSxtQkF1R1FWO29DQXhGTXpLOzs7O1lBY0FLLGFBcmZWMEssTUF3ZEpJLG1CQXVHUVY7a0NBMUVNcEs7OztlQTRDZGdMLFlBekVBRjs7O29CQXlFQUUsY0E4QlFaO29DQTNCa0IsZ0JBem1CT2g0QyxLQXNtQmpDNDRDO3FCQUdvRDtZQUNsQzthQUFaQyxZQXdJTjlCLGFBNUlBNkIsbUJBOEJRWjthQXpCQSwwQkEzbUJ5Qmg0QyxLQTBtQjNCNjRDOzs7Ozs7MkJBaUJHO1lBZGtCO3VCQTBKM0JDLGNBN0pNRCxXQTBCRWI7YUF2QldyWjthQUFYb2E7YUFDRUMsWUFvSVZqQyxhQXJJUWdDLFdBdUJBZjthQXJCSSw2QkEvbUJxQmg0QyxLQThtQnZCZzVDOzs7O2NBR1E7ZUFBSjEyQztpQkFBSTs7bUJBam5CZXRDO21CQXNtQmpDNDRDO29CQVFVSSxZQVJWSjtlQVl5QixXQURYdDJDLEdBSktxOEI7ZUFLTSxPQUpmcWE7ZUFQRUM7ZUFBVkM7Ozs7YUFhZ0M7d0JBbUpsQ0osY0F6SlVFLFdBc0JGaEI7Y0FoQmlCemM7Y0FBWDRkO2NBQ0FDLFlBNkhkckMsYUE5SGNvQyxXQWdCTm5CO3VCQWRLLGdCQXRuQm9CaDRDLEtBcW5CbkJvNUM7Y0FDMkI7YUFDdkI7Y0FBSnZtQztnQkFBSTs7a0JBdm5CZTdTO2tCQXNtQmpDNDRDO21CQWVjUSxZQWZkUjtjQWtCeUIsV0FEWC9sQyxLQVZLOHJCLE9BT01wRDtjQUlBLE9BSFg2ZDtjQWRGSDtjQUFWQzs7Ozt5QkFrQmE7Ozs7OztnQkFsQkhELG1DQUFWQyxXQURGTjs7O1lBeUJVekssY0ExakJObUssTUFraUJGWSxVQTZCTWxCOytCQTdCSWlCLGtCQXdCRjlLOzs7ZUFLVmtMLFlBdkdBWDtXQXdHRjtZQUVvQjthQUFaWSxjQTJHTnZDLGFBOUdBc0MsV0FBUXJCO2FBSUEsMEJBeG9CeUJoNEMsS0F1b0IzQnM1Qzs7Ozs7OzthQUdvQjt3QkE2SDFCUixjQWhJTVEsYUFIRXRCO2NBTVcvckI7Y0FBWHN0QjtjQUNBQyxjQXVHUnpDLGFBeEdRd0MsYUFOQXZCO3VCQVFELGdCQTVvQjBCaDRDLEtBMm9CekJ3NUM7Y0FDMkI7YUFDdkI7Y0FBSkM7Z0JBQUk7O2tCQTdvQnFCejVDO2tCQW9vQmpDcTVDO21CQU9RRyxjQVBSSDs2QkFPUUcseUJBRUFDLEtBSFd4dEI7Ozs7Ozs7Ozs7Ozs7OzthQVNIeXRCO2FBQVZDO2FBQ01wTCxjQS9rQlIrSixNQThrQkVxQixZQWZFM0I7NkJBZVEwQixrQkFDSm5MOzs7YUFHQUksY0FsbEJSMkosTUErakJKZSxXQUFRckI7a0NBbUJJcko7Ozs7O1lBbkdFYixjQS9lVndLLE1Bd2RKSSxtQkF1R1FWO2tDQWhGTWxLOzs7O1lBV0FFLGNBMWZWc0ssTUF3ZEpJLG1CQXVHUVY7a0NBckVNaEs7Ozs7Ozs7O1NBU0F2QyxhQW5nQlY2TSxNQXdkSkksbUJBdUdRVjtnQ0E3RE45eUMsSUFDWXVtQzs7VUF2ZkFEO01BQ1osT0Fxc0JGNE0sWUE3c0JBQyxXQWlCQWxhLFNBVmNxTjs7SUFYMEM7YUEyS3hEb087S0F3b0JtQkM7S0FBUTFiO0tBOU5KNlo7S0F2YUM4QjtLQUFLbmhDO0tBQUtvaEM7S0FBTTM0QztLQUFJdEM7S0FBSUU7S0FBS2c3QztLQXFvQkZ2RztLQW5vQnJEO01BQUl3RztNQUEyQkM7TUFDM0JDO01BQTJCQztNQUMzQkM7TUFBMkJDO2NBRzNCQyxnQkFMQU4sa0JBS0osT0FQMEJILEtBT21CO2NBQ3pDVSxnQkFOMkJOLHlCQUZBdmhDLEtBUVk7Y0FDdkM4aEMsaUJBTkFOLDBCQUhnQ0osTUFTVTtjQUMxQ1csZUFQMkJOLHdCQUhXaDVDLElBVUU7Y0FDeEN1NUMsZUFQQU4sd0JBSjBDdjdDLElBV0Y7Y0FDeEM4N0MsZ0JBUjJCTix5QkFKbUJ0N0MsS0FZTDtjQUN6QzY3QyxtQkFUQVIsd0JBSm1ETCxRQWFQO2NBRTVDYztNQVlELElBQ0loOEMsTUFqQkg2N0MsWUFnQmlCLFFBZmpCQztNQWVpQix5Q0FDTyxPQUFyQjk3QztrQ0FDcUI7ZUFEckJBOztpQkEvUEwrNEM7O21CQSszQkFrRCxrQkF2Qm1CbEIsU0FBUTFiO2lCQXptQnRCci9CO3FCQVEyQixPQVIzQkE7VUFFb0JvRCxJQUZwQnBEO01BR0EsT0FsUUwrNEM7dUJBaVF5QjMxQztnQkE4bkJ6QjY0QyxrQkF2Qm1CbEIsU0FBUTFiO0tBaG1CUTtjQUdqQzZjLFdBQVd2SCxNQUFpQjMwQztNQUM5QixVQUQ4QkEsa0JBRWQsT0FGY0E7OztpQkEzUTlCKzRDOzttQkErM0JBa0Qsa0JBdkJtQmxCLFNBQVExYixTQTdsQmRzVjtpQkFBaUIzMEM7cUJBR08sT0FIUEE7VUFLUjYvQixRQUxRNy9CO01BTTVCLE9BalJGKzRDO3VCQWdSc0JsWjtnQkErbUJ0Qm9jLGtCQXZCbUJsQixTQUFRMWIsU0E3bEJkc1Y7S0FVb0M7Y0FNL0N3SCxXQUFXLzFDLEdBQXFCcEc7TUFBd0IsVUFBeEJBLGtCQUNsQjtlQURrQkE7OztjQU1iNi9CLFFBTmE3L0I7VUFPaEMsT0FsU0YrNEM7d0JBaVNxQmxaO29CQThsQnJCb2Msa0JBdkJtQmxCLFNBQVExYixTQTdrQmRqNUI7O2NBRVNrdUMsVUFGWXQwQyxRQUVGLFdBQVZzMEM7O2NBQ0E4SCxVQUhZcDhDO1VBSWhDLE9BL1JGKzRDO3dCQThSc0JxRDtvQkFpbUJ0Qkgsa0JBdkJtQmxCLFNBQVExYixTQTdrQmRqNUI7O01BU00sT0EybEJuQjYxQyxrQkF2Qm1CbEIsU0FBUTFiLFNBN2tCZGo1QjtLQVMrQztjQUUxRGkyQyxZQUFZajJDLEdBQUksT0FYaEIrMUMsV0FXWS8xQyxHQXhEWnkxQyxZQXdEeUM7Y0FDekNTLGdCQUFnQmwyQyxHQUFJLE9BWnBCKzFDLFdBWWdCLzFDLEdBdkRoQjIxQyxnQkF1RGlEOztLQVdyRCxVQXNqQnFEcEg7Ozs7OztVQXZhdkNwSCxhQTdZUmlNLE1Bb3pCdUJuYSxTQTlOSjZaO1VBeFZyQnFELHNCQStJVWhQOzs7U0FnQkU7VUFBVmlQLFVBK1RKQyxxQkF3RjJCcGQsU0E5Tko2WjtVQXhMWGhMLGFBOVpSc0wsTUE2WkFnRCxpQkF5TG1CdEQ7VUF2TFh3RCxVQS9aUmxELE1Bb3pCdUJuYSxTQXZadkJtZDtVQUdBdFosWUF6b0ROZ0ksYUF3b0Rjd1I7U0FFVCxHQXhPRGQ7VUF5T2M7V0FBVmUsZ0JBaExKTixpQkE4S0VuWjsyQkFFRXlaLFdBSk16Tzs7OEJBNUtWbU8saUJBOEtFblosV0FGUWdMO2FBaEtWcU87OzswQkE5UEUvQyxNQW96QnVCbmEsU0E5Tko2Wjs7U0EvVHBCO1VBRFNsSyxjQXRSUndLLE1Bb3pCdUJuYSxTQTlOSjZaO1VBL1RwQjtZQTlGRDBDLHlCQTZGVTVNO1VBeEJWdU47OzthQTJEVTFNLGNBelRSMkosTUFvekJ1Qm5hLFNBOU5KNlosYUE1Um5CMEQ7U0FDRCxHQWxJRGhCO1VBbUljO1dBQVZpQixpQkFGRkQ7MkJBRUVDLFdBSE1oTjs7OEJBQ1IrTSxXQURRL007YUEzRFYwTTs7O1NBc0NRO1VBQU50N0MsUUE3RUZpN0MsV0E2bEJpRHZILE1BeG5CakRvSDtVQXlHVS9MLGNBclNSd0osTUFvekJ1Qm5hLFNBOU5KNlo7U0FoVHBCLEdBN0dEMEM7VUE4R2M7V0FBVmtCLGdCQXBESlI7MkJBb0RJUSxXQUZNOU07O1VBTVI7cUJBclpOMEkscUJBOFlNejNDLE9BQ1ErdUM7V0FLaUJFO1dBQU43dUM7aUNBQU02dUM7YUE1QzNCcU07OztZQXNqQnlCbGQsWUE5Tko2WixTQWpuQnZCRCx5QkFpbkJ1QkM7U0FHVjtVQUFYbDNDLFdBdm9GSm05QjtVQXdvRklqRCxvQkFBUzkxQixHQUNYLE9BdG9GRmc1QixnQkFvb0ZJcDlCLFVBQ1NvRSxHQUNlO1VBRXhCMjJDO3FCQUFVNytCLEtBQUU5WDthQUNkLEdBRGNBLEtBQUY4WDtrQkFDWjVZLElBRFk0WTs7ZUF4b0Zka2hCLGdCQW9vRklwOUIsVUFNeUIsdUJBRDNCc0Q7ZUFDRSxXQURGQTtrQkFEY2MsTUFDZGQ7Ozs7O1lBRUk7VUFHRjAzQztxQkFBb0IzZDthQUN0QixrQkFud0JGeVksdUJBMEZtQzUyQyxLQXdxQlhtK0I7WUFHMEI7VUFVOUM0ZDs4QkFBdUI1ZCxTQUFRNlo7YUFDakMsSUFEeUJVO2FBQ3pCO2lCQUR5QkEsY0FBUVYsU0Ezb0JqQ0QseUJBMm9CaUNDO2NBRTNCLElBTUo5eUMsSUFOSSxnQkF2ckIyQmxGLEtBcXJCUjA0Qzt3QkFRdkJ4ekM7ZUE5QkE4MUI7bUJBc0J1QnlkOzs7d0JBUXZCdnpDLEdBSkEsT0FKdUJ3ekM7O2NBU3ZCOzt3QkFHQXNELHVDQVorQmhFLFNBUS9COXlDOztjQUNBLE9BR0E4MkMsNkNBWitCaEUsU0FRL0I5eUM7O1lBQ2lEO1VBR2pEODJDOzhCQUEwQjdkLFNBb0JTNlosU0FwQk85eUM7YUFDNUMsSUFENEJ3ekMscUJBb0JpQjE3QixNQXBCRDlYO2FBQzVDO2lCQUQ0Qnd6QyxjQW9CU1YsU0EzcUJyQ0QseUJBMnFCcUNDO2NBbEIvQixJQUZzQy82QixNQUV0QyxnQkFuc0IyQmpkLEtBaXNCTDA0Qzt1QkFBZ0J6N0I7OzttQ0FsQzFDK2QsU0FzRDJDaGUsTUFoQjNDLE9BSjBCMDdCOzs2QkFBZ0J6N0I7OzttQkFvQmZzN0IsWUFwQkRHO2tCQW9CQ0gsY0FBUVAsU0EzcUJyQ0QseUJBMnFCcUNDO2VBRS9CLElBYUo5NkIsTUFiSSxnQkF2dEIyQmxkLEtBcXRCSnU0Qzt5QkFlM0JyN0I7b0JBZjJCcTdCLHVCQUFRUDtpQkEzcUJyQ0QseUJBMnFCcUNDO2dCQVN2QixJQUNSNzZCLE1BRFEsZ0JBOXRCbUJuZCxLQXF0Qkp1NEM7MEJBVXZCcDdCO2lCQUdLLE9BMURUMitCLG9CQTZDMkJ2RDtnQkFuRDNCc0QsVUFtRDJDNytCLEtBVXZDRzsyQkFWdUJvN0I7Z0JBV3ZCOzswQkEzQ0p3RCxrQ0FnQ21DL0Q7O2dCQVcvQixPQTNDSitELHdDQWdDbUMvRDs7eUJBZW5DOTZCO2dCQXJFQThkLFNBc0QyQ2hlO2dCQXREM0NnZTtnQkEyREEsT0FMMkJ1ZDs7ZUFuRDNCc0QsVUFtRDJDNytCLEtBZTNDRTswQkFmMkJxN0I7ZUFnQjNCOzt5QkFoREF3RCxrQ0FnQ21DL0Q7O2VBZ0JuQyxPQWhEQStELHdDQWdDbUMvRDs7b0NBQVFoN0I7ZUF0RDNDZ2UsU0FrQzBDL2Q7MEJBQWhCeTdCO2VBUzFCOzt5QkFyQkFxRCxrQ0FnQ21DL0Q7O2VBWG5DLE9BckJBK0Qsd0NBZ0NtQy9EOzt3QkFBUWg3QixLQTdDM0M4K0Isb0JBeUIwQnBEO2NBbEMxQjFkLFNBc0QyQ2hlOztlQXBCakJ5N0I7O2VBb0JpQno3QixNQXBCREM7O1lBaUJRO1VBakJsRGcvQjtxQkFBMEI5ZCxTQW9CUzZaLFNBcEJPOXlDO2FsQ2xzRm5EO3NCa0Nrc0ZTODJDLCtCQUEwQjdkLFNBb0JTNlosU0FwQk85eUM7O1lBd0xqQmk1QixZQTlOSjZaLFNBam5CdkJELHlCQWluQnVCQzttQkErRWpCLGdCQTF1QjJCaDRDLEtBeTNCTm0rQjtjQWpKekJ1YSxZQWlKeUJ2YSxpQkFqSmhCK2QsYUF6RGdCekQsWUF5RHpCQzs7Y0FBU3dELGFBekRnQnpELFlBME1BdGE7WUExTUFzYSxjQXBCSlQsU0FqbkJ2QkQseUJBaW5CdUJDO1NBc0JmO1VBQUo5eUMsSUFBSSxnQkFqckJ5QmxGLEtBK3FCTnk0QztVQThEekJTLFdBNUNBK0MsMEJBbEJ5QnhELG1CQXBCSlQsU0FzQm5COXlDO1VBNkRGcTVCLGFBOXNGSkYsZ0JBOG5GSXY5QjtVQWxMWXE3QyxhQTRQSEQsVUFwc0ZiNWQsYUEwc0ZJQztVQWpRVXlSLGNBeGFSc0ksTUF3cUJGWSxVQWxGcUJsQjtTQTdLcEIsR0FoUEQwQztVQWlQYztXQUFWMEIsaUJBeExKakIsaUJBcUxZZ0I7MkJBR1JDLFdBRk1wTTs7OEJBdExWbUwsaUJBcUxZZ0IsWUFDRm5NO2FBMUtWcUw7Ozs7VUFxSVVqTCxjQW5ZUmtJLE1Bb3pCdUJuYSxTQTlOSjZaO1VBeFZyQnFELHNCQXFJVWpMOzs7U0F0SEE7VUFYUmlNO3FCQUFZL1E7YUFDZCxPQTFFQW9QLHlCQXlFY3BQO1lBR2M7VUFPbEJnUixjQTVRUmhFLE1Bb3pCdUJuYSxTQTlOSjZaO1VBelVYLFVBM0JWbUQ7OztXQXNCRzs7Y0EvRUhULHlCQW1GVTRCOzs7OztjQWhVWnpFO2lCQXNUSXdFLFlBVVFDO2lCQS9TWnhFO2tCQXUxQjJCM1o7Ozs7cUJBbGpCdkJrZSxZQVVRQzthQWRWakI7OztTQTRJQztVQURTa0IsY0F6WVJqRSxNQW96QnVCbmEsU0E5Tko2WjtVQTVNcEI7WUFqTkQwQyx5QkFnTlU2QjtVQTNJVmxCOzs7U0E0QlE7VUFBTjFPLFFBbkVGcU8sV0E2bEJpRHZILE1BeG5CakRvSDtVQStGVTJCLGNBM1JSbEUsTUFvekJ1Qm5hLFNBOU5KNlo7U0ExVHBCLEdBbkdEMEM7VUFvR2M7V0FBVitCLGlCQTFDSnJCOzJCQTBDSXFCLFlBRk1EOztVQU1SO3FCQTNZTmhGLHFCQW9ZTTdLLE9BQ1E2UDtXQUtpQkU7V0FBTjlQO2tDQUFNOFA7YUFsQzNCckI7Ozs7VUF3SVVzQixjQXRZUnJFLE1Bb3pCdUJuYSxTQTlOSjZaO1VBeFZyQnFELHNCQXdJVXNCOzs7U0FhRTtVQUFWQyxZQXlVSnJCLHFCQXdGMkJwZCxTQTlOSjZaO1VBbE1YNkUsWUFwWlJ2RSxNQW96QnVCbmEsU0FqYXZCeWU7VUFFUUUsY0FyWlJ4RSxNQW1aQXNFLG1CQW1NbUI1RTtVQWhNbkI5VixjQS9uRE44SCxhQTZuRGM2UztTQUdULEdBOU5EbkM7VUErTmM7V0FBVnFDLGlCQXRLSjVCLGlCQW9LRWpaOzJCQUVFNmEsWUFITUQ7OzhCQW5LVjNCLGtCQW9LRWpaLGFBRFE0YTthQXZKVnpCOzs7O1NBMkhRO1VBQU45N0MsUUFsS0Z5N0MsV0E2bEJpRHZILE1BeG5CakRvSDtVQThMVXROLGFBMVhSK0ssTUFvekJ1Qm5hLFNBOU5KNlo7U0EzTnBCLEdBbE1EMEM7VUFtTWM7V0FBVnNDLGdCQXpJSjVCOzJCQXlJSTRCLFdBRk16UDs7VUFNUjtxQkExZU5pSyxxQkFtZU1qNEMsT0FDUWd1QztXQUtpQks7V0FBTmx1QztpQ0FBTWt1QzthQWpJM0J5Tjs7Ozs7VUFrSlU1TyxhQWhaUjZMLE1Bb3pCdUJuYSxTQTlOSjZaO1VBeFZyQnFELHNCQXNqQmlENUgsTUFwYXZDaEg7Ozs7OztZQW9hZXRPLFlBOU5KNlo7OztVQXRSa0M7V0FzYzdDaUYsU0F0YzZDLGdCQXJZeEJqOUMsS0F5M0JObStCO1dBOUNSLE9BQVA4ZTs7Ozs7Ozs7Ozs7OztVQXRjZ0M7OztjQUNoQzFPLGNBalVSK0osTUFvekJ1Qm5hLFNBOU5KNlo7b0JBOE40QnZFOzs7O21CQWxmL0N4eUM7Ozs7O3lCQWtmK0N3eUMsVUFsZi9DeHlDOztXQTJjd0I7VUExY3pCLEdBMUlEeTVDO1dBMkljO1lBQVZ3QyxpQkFGRmo4Qzs0QkFFRWk4QyxXQUhNM087OytCQUNSdHRDLFNBRFFzdEM7Y0FuRVY4TTs7Ozs7Ozs7O3VCQWlMRixXQTlrQkZ6RSx1QkEwRm1DNTJDLEtBeTNCZDY1QyxTQUFnQ3BHOzs7Ozs7OztTQXJnQmpEO2lCQXZIQWdIO1VBc0h5RCxPQXZIekREO1VBdUhFNzZDO1lBa2VKdzlDLGlCQW9DbUJ0RCxTQUFRMWIsU0E5bkJ6Qm9jLHlCQThuQmlEOUc7VUFwZ0J2Q3RFLGNBaFRSbUosTUFvekJ1Qm5hLFNBOU5KNlo7U0FyU3BCLEdBeEhEMEM7VUF5SGM7V0FBVjBDLGdCQUpGejlDLFNBNURGdzdDOzJCQWdFSWlDLFdBRk1qTzs7VUFNOEI7a0JBM0h4Q3lMO1dBMkhFLFVBM1lObkQscUJBbVJJcUQsc0JBa0hVM0w7V0FLd0JTO1dBQVByRDtXQUFObHNDOzBCQVBuQlYsU0FPbUJVLE9BQU1rc0MsUUFBT3FEO2FBdkRsQ3lMOzs7Ozs7Ozs7O1NBaUg4QjtVQXFjYWdDLFVBNW5CM0M1QztVQTRuQnNDNkMsU0E3bkJ0QzlDO1VBNm5CaUMrQyxTQTluQmpDaEQ7VUErbkJBM0M7WUFEaUMyRjtlQUFVRjtpQkF4MkI3Q3hGOzttQkErM0JBa0Qsa0JBdkJtQmxCLFNBQVExYjs7ZUFBa0JrZjs7U0FTL0MsU0FUcUQ1Sjs7Ozs7Ozs7Ozs7Ozs7ZUFTakQrSjs7O3VCQVRpRC9KOzs7Ozs7Ozs7Ozs2QkFTakQrSjs7Ozs7O2FBVHNDRjtxQkFBVzdKLFVBU2pEK0o7O3lCQVRpRC9KLFVBU2pEK0o7O1dBVUc7O1NBQ1A7VUEzZE0xOUMsWUF3Y0Y4M0MsTUFRQTRGO1VBN2NVeFAsY0FoWFJzSyxNQW96QnVCbmEsU0E5Tko2WjtTQXJPcEIsR0F4TEQwQztVQStEd0IsWUE3RHhCRTs7OzJCQWdwQkZHLGtCQXZCbUJsQixTQUFRMWI7O2VBMWpCWGtCO1VBd0hBO1dBQVZvZSxnQkFoSUp0QzsyQkFnSUlzQyxXQUZNelA7OztVQU0wQjtrQkEzTHBDNE07V0EyTEUsVUEzY05uRCxxQkErUUlrRCxrQkFzTFUzTTtXQUt3Qkc7V0FBUHZ1QztXQUFOQzswQkFSbkJDLE9BUW1CRCxPQUFNRCxRQUFPdXVDO2FBdkhsQ2tOOzs7Ozs7Z0JBc2pCaUQ1SDs7Ozs7V0F6ZWhDO21DQWhaY3p6QyxLQXkzQk5tK0I7WUF6ZXZCLE9BbkpGc2M7WUFrSnFELE9BbkpyREQ7WUFrSkV0N0M7Y0F1Y0ppK0M7Z0JBb0NtQnRELFNBQVExYixpQkE5bkJ6Qm9jO1lBc0pValAsV0E1VVJnTixNQW96QnVCbmEsaUJBOU5KNlo7V0F6UXBCLEdBcEpEMEM7WUFxSmM7YUFBVmdELGNBTEZ4K0MsT0F2RkZpOEM7NkJBNEZJdUMsU0FGTXBTOztZQU04QjtvQkF2SnhDc1A7YUF1SkUsVUF2YU5uRCxxQkFtUklxRCxzQkE4SVV4UDthQUt3QkU7YUFBUHJzQzthQUFOSjs0QkFSbkJHLE9BUW1CSCxPQUFNSSxRQUFPcXNDOzs7Ozs7V0FNSDttQ0E1WkF4ckMsS0F5M0JObStCO1lBN2RULE9BL0poQnNjO1lBK0pFLE9BaEtGRDtZQThKRW43QztjQTJiSjg5QztnQkFvQ21CdEQsU0FBUTFiLGlCQTluQnpCb2M7WUFrS1U5TyxhQXhWUjZNLE1Bb3pCdUJuYSxpQkE5Tko2WjtXQTdQcEIsR0FoS0QwQztZQWlLYzthQUFWaUQsZ0JBTEZ0K0MsU0FuR0Y4N0M7NkJBd0dJd0MsV0FGTWxTOztZQU04QjtvQkFuS3hDbVA7YUFtS0UsVUFuYk5uRCxxQkFtUklxRCxzQkEwSlVyUDthQUt3Qkc7YUFBUHRzQzthQUFOTDs0QkFSbkJJLFNBUW1CSixPQUFNSyxRQUFPc3NDOzs7O3lCQS9GbEN5UDs7O3FCQXNqQmlENUg7T0FqZGhDOytCQXhhY3p6QyxLQXkzQk5tK0I7UUFqZHZCLE9BM0tGc2M7UUEwS3FELE9BM0tyREQ7UUEwS0VoN0M7VUErYUoyOUM7WUFvQ21CdEQsU0FBUTFiLGlCQTluQnpCb2M7UUE4S1V4TyxhQXBXUnVNLE1Bb3pCdUJuYSxpQkE5Tko2WjtPQWpQcEIsR0E1S0QwQztRQTZLYztTQUFWa0QsZ0JBTEZwK0MsU0EvR0YyN0M7eUJBb0hJeUMsV0FGTTdSOztRQU04QjtnQkEvS3hDNk87U0ErS0UsVUEvYk5uRCxxQkFtUklxRCxzQkFzS1UvTztTQUt3Qkc7U0FBUHpzQztTQUFOTDt3QkFSbkJJLFNBUW1CSixPQUFNSyxRQUFPeXNDO1dBM0dsQ21QOzs7Ozs7VUFzTEYsV0FubEJGekUsdUJBMEZtQzUyQyxLQXkzQk5tK0IsaUJBQXdCc1Y7O1lBeDJCbkRvRTtxQkFxT0VvQyxjQUZzQjREO2lCQTRwQnhCOUMsa0JBdkJtQmxCLFNBQVExYixTQUF3QnNWO3FCQW5vQnRCeUcsY0FGQTREO2lCQTRwQjdCL0Msa0JBdkJtQmxCLFNBQVExYixTQUF3QnNWO3FCQWxvQmpEMEcsZUFIZ0M0RDtrQkE0cEJsQ2hELGtCQXZCbUJsQixTQUFRMWIsU0FBd0JzVjs7a0JBam9CakQ0RztxQkFnUmlCLGtCQXBSeUJ2N0M7TUFvUnpCLFNBd1luQmk4QyxrQkF2Qm1CbEIsU0FBUTFiLFNBQXdCc1Y7O2tCQWpvQnRCNkc7cUJBa1JWLGtCQXRSNkJ0N0M7TUFzUjdCO2tCQXRScUJvQyxXQXFvQldxeUM7T0F1Qm5Ec0gsa0JBdkJtQmxCLFNBQVExYjs7VUFyb0JINmYsU0FBZ0I1OEMsTUFBaEIwNEMsT0FBZ0IxNEM7U0FBaEI0OEMsUUE0cEJ4QmpELGtCQXZCbUJsQixTQUFRMWI7O29CQWxvQkVpYyxhQUhXNkQ7OztlQXFvQld4Szs7Ozs7dUJBeDJCbkRvRTtvQkErM0JBa0Qsa0JBdkJtQmxCLFNBQVExYixTQUF3QnNWOztLQWxXL0MsT0FwTkY0SDtJQXNOTTthQWxVUjZDO0tBR0FyRSxTQUFRMWIsU0FBUTZaLFNBQVFtRyxPQUFNckUsTUFBS25oQyxNQUFLb2hDLE9BQU0zNEMsS0FvQjlDdEMsS0FwQnNERTtLQUN4RCxHQURVbS9CLFlBQVE2WixTQWhMaEJELHlCQWdMZ0JDO2NBRWRvRyxXQUE4QnBFO01BQ2hDLE9Bb0JBSjtlQXZCQUM7ZUFBUTFiO2VBQVE2WjtlQUFjOEI7ZUFBS25oQztlQUFLb2hDO2VBQU0zNEM7ZUFvQjlDdEM7ZUFwQnNERTtlQUV0Qmc3QztlQUVqQixnQkE5TmtCaDZDLEtBME56Qm0rQjtLQUlvQjtlQWdCNUJyL0Isa0JBQU8sT0FsQkxzL0MsV0FrQkZ0L0M7ZUFwQnNERSw2QkFjL0IsT0FackJvL0M7UUFGc0JEO2dCQUE4Qm4vQyxtQkFrQjNCLE9BaEJ6Qm8vQztVQWNzQmw4QyxJQWhCOEJsRDtNQWdCZCxPQWR0Q28vQyxrQkFjc0JsOEM7O2VBaEI4QmxELG1CQWlCMUIsT0FmMUJvL0M7U0FhdUJsckMsTUFmNkJsVTtLQWViLE9BYnZDby9DLGtCQWF1QmxyQztJQUtKO2FBeEVyQm1yQztLQWlCQXhFLFNBZFExYixTQWNRNlosU0FBUW1HLE9BQU1yRSxNQUFLbmhDLE1BQUtvaEMsT0FBTTM0QyxLQUFJdEM7S0FicEQsR0FEVXEvQixZQWNRNlosU0E3SWhCRCx5QkE2SWdCQztLQVpaLElBSUp2RSxPQUpJLGdCQTNLNkJ6ekMsS0F5S3pCbStCO2VBTVJzVjtNQUNBLE9BaUVBbUc7ZUExREFDO2VBZFExYjtlQWNRNlo7ZUFBYzhCO2VBQUtuaEM7ZUFBS29oQztlQUFNMzRDO2VBQUl0Qzs7O2VBUmxEMjBDO1NBUVFpRixZQWRBdmE7UUFjQXVhLGNBQVFWLFNBN0loQkQseUJBNklnQkM7Y0FFZHNHLGNBQWNILE9BQU1oZ0I7TUFDdEI7T0FBb0IsUUE4akJwQm9nQixlQS9qQnNCcGdCLFNBRk42WjtPQUdIaDVDO09BQVR3L0M7TUFFRSxPQTJCTk47ZUFoQ0FyRTtlQUdJMkU7ZUFIWXhHO2VBRUFtRztlQUZjckU7ZUFBS25oQztlQUFLb2hDO2VBQU0zNEM7ZUFBSXRDO21CQUdyQ0U7S0FFYTtLQUN0QixJQUVKaStDLFNBRkksZ0JBN0w2Qmo5QyxLQXVMekIwNEM7Y0FRUnVFO3NCQURjLE9BTFpxQixjQUZzQkgsT0FBaEJ6Rjs7bUJBUVJ1RTs7O1NBV0EsT0FhQWlCO2tCQWhDQXJFO2tCQUFRbkI7a0JBQVFWO2tCQUFRbUc7a0JBQU1yRTtrQkFBS25oQztrQkFBS29oQztrQkFBTTM0QztrQkFBSXRDOzs7O1lBdEtsRCs0QztVQXVMQTtrQkFqQlFhO1dBQWdCK0YsMkJBUXhCeEI7VUFTQSxPQWZFcUIsY0FGc0JHOzs7O1lBdEt4QjVHO2VBc01BcUc7Z0JBaENBckU7Z0JBQVFuQjtnQkFBUVY7Z0JBQVFtRztnQkFBTXJFO2dCQUFLbmhDO2dCQUFLb2hDO2dCQUFNMzRDO2dCQUFJdEM7O2VBaklsRG01Qyx1QkFpSVFTO0lBTmU7YUFoRnZCRixZQWlDQXFCLFNBbkJpQjFiLFNBbUJENlosU0FBbUM1MkM7S0E5QnJEO01BQUkyYztNQUFxQm9nQztNQUNyQnJFO01BQXFCQztNQUNyQnBoQztjQUNBK2xDLFNBQVN2Z0IsU0FBUXlaO01BRW5CLFdBRm1CQSwyQkF0Rm5CQzs7T0EyRmdCLDJCQTVHaUI3M0MsS0F1R3RCbStCO09BR1QsV0FwTUp5WSx1QkEwRm1DNTJDLEtBdUd0Qm0rQjs7TUFBUXlaOztLQU1OO1NBcUJMYyxZQW5CU3ZhO0tBQ2pCO1NBa0JRdWEsY0FBUVYsU0F4RmhCRCx5QkF3RmdCQztNQWpCSiwrQkFqSHFCaDRDLEtBa0l6QjA0Qzs7OztVQTNCTmdHLFNBMkJNaEcsV0E3QmVxQjtVQWlCZCxJQVBRdEIsWUFtQlRDLCtCQW5CU0Q7OztVQVJmaUcsU0EyQk1oRyxXQTVCTi8vQjtVQWVPLElBTlE0L0IsWUFtQlRHLCtCQW5CU0g7OztVQVJmbUcsU0EyQk1oRyxXQTdCTm9CO1VBZU8sSUFMUWxCLFlBbUJURiwrQkFuQlNFOzs7VUFSZjhGLFNBMkJNaEcsV0E5QmV5RjtVQWVkLElBSlE5RSxZQW1CVFgsK0JBbkJTVzs7O1VBUmZxRixTQTJCTWhHLFdBOUJOMzZCO1VBY08sSUFIUTRnQyxZQW1CVGpHLCtCQW5CU2lHOzs7O09BbUI0QlosVUE3QnRCaEU7T0E2QmlCK0QsU0E1QnRDbmxDO09BNEJpQ2tsQyxTQTdCakMvRDtPQTZCMkIyRSxVQTlCTk47T0E4QkNTLFNBOUJ0QjdnQztTQThCTTI2QixjQUFRVixTQXhGaEJELHlCQXdGZ0JDO01BU1o7T0FQRnhYO1NBRnNCb2U7WUFBS0g7Y0FqSDdCNUc7O2dCQSszQkFrRCxrQkE5d0JBbEIsU0FBUW5COztZQUFxQitGO09BU3pCLHdCQTNJNkJ6K0MsS0FrSXpCMDRDOzs7UUFXYTttQkEybUJyQjZGLGVBdG5CUTdGLFdBQVFWO1NBV0hyWjtTQUFUNmY7UUFFRixPQXVCRkg7aUJBcENBeEU7aUJBV0kyRTtpQkFYWXhHO2lCQUFheUc7aUJBQU1aO2lCQUFLQztpQkFBS0M7aUJBQU0zOEM7cUJBRWpEby9CLE9BU1c3Qjs7OztPQUtQLE9Bb0JOMGY7Z0JBcENBeEU7Z0JBQVFuQjtnQkFBUVY7Z0JBQWF5RztnQkFBTVo7Z0JBQUtDO2dCQUFLQztnQkFBTTM4QztvQkFFakRvL0I7OztnQkFuSEZxWDtVQXFDQUksdUJBNEVRUztTQXFCSixPQWVKMkY7a0JBcENBeEU7a0JBQVFuQjtrQkFBUVY7a0JBQWF5RztrQkFBTVo7a0JBQUtDO2tCQUFLQztrQkFBTTM4Qzs7O1NBK0JqRCxPQUtGaTlDO2tCQXBDQXhFO2tCQUFRbkI7a0JBQVFWO2tCQUFheUc7a0JBQU1aO2tCQUFLQztrQkFBS0M7a0JBQU0zOEM7OztTQTRCakQsT0FRRmk5QztrQkFwQ0F4RTtrQkFBUW5CO2tCQUFRVjtrQkFBYXlHO2tCQUFNWjtrQkFBS0M7a0JBQUtDO2tCQUFNMzhDOzs7O0lBTm5DO2FBZ2RoQnUzQyxVQUNBa0csYUFBWTFnQixTQUFRNlo7S0FDdEI7U0FEYzdaLFlBQVE2WixTQUVNO2dCQUNwQixnQkFobEIyQmg0QyxLQTZrQnJCbStCO09BZVY7TUFWVSxJQUFOMmdCLE1BQU0sOEJBbGxCcUI5K0MsS0E2a0JyQm0rQjtTQUFRNlosV0FLZDhHLEtBQ21CO01BQ1Q7T0FBVkM7U0FBVTs4QkFwbEJpQi8rQyxLQTZrQnJCbStCLFVBS04yZ0IsTUFMTTNnQjtPQVFFcU4sYUFoaEJWOE0sTUE2Z0JFd0csYUFMYzlHO09BU053RCxVQWpoQlZsRCxNQXdnQlFuYSxTQUtOMmdCO09BS0FFLG1CQURReEQsU0FGUnVEO09BSUFFLGVBWE5KLGtCQVVNRztPQUdKLGdCQUZJQyxjQUhRelQ7TUFLWjs7Ozs7TUFNRjtPQUZZRixXQXpoQlJnTixNQXdnQlFuYSxTQUFRNlo7T0FtQmhCa0gsYUFuQkpMLGtCQWtCSTlnQjtNQUdKLGdCQUZJbWhCLFlBRlE1VDs7SUFJbUM7YUFnSi9DeUwsYUFBYTVZLFNBQVE2WjtLQUN2QixJQURlVTtLQUNmO1NBRGVBLGNBQVFWLFNBeHNCckJELHlCQXdzQnFCQztNQUVwQiwwQkFwdkJnQ2g0QyxLQWt2QnBCMDRDLFlBRXFELE9BRnJEQTs7O0lBRTREO2FBSXpFNkYsZUFBZXBnQixTQUFRNlosU0FBUTVuQztLQUNqQyxJQURpQnNvQyxxQkFBZ0Jyb0M7S0FDakM7U0FEaUJxb0MsY0FBUVYsU0E5c0J2QkQseUJBOHNCdUJDO01BRW5CLElBQ0o5eUMsSUFESSxnQkExdkI2QmxGLEtBd3ZCbEIwNEM7YUFHZnh6QyxjQVFLLFdBWFV3ekMsV0FBZ0Jyb0M7d0NBRy9Cbkw7MEJBSCtCeXZDO09BTTdCO3lCQXgxQkppQyx1QkEwRm1DNTJDLEtBd3ZCRjIwQzs7O09BQWhCOEQ7O09BQWdCcG9DOztJQVdkO2FBSWpCeW9DLGNBQWMzYSxTQUFRNlo7S0FDeEIsR0FEZ0I3WixZQUFRNlosU0E3dEJ0QkQseUJBNnRCc0JDO0tBRWxCLDRCQXp3QjZCaDRDLEtBdXdCbkJtK0I7O3FCQUdBLE9BbEJkb2dCLGVBZWNwZ0IsU0FBUTZaOzs7VUFBUjdaLHFCQUFRNlosU0E3dEJ0QkQseUJBNnRCc0JDO01BTWhCLElBSUo5eUMsSUFKSSxnQkE3d0IyQmxGLEtBdXdCbkJtK0I7YUFVWmo1QjtPQUNBLE9BcHRCRmd6QyxtQkF5c0JjL1osNEJBVVpqNUI7TUFGa0I7aUJBdkJwQnE1QyxlQWVjcGdCLGlCQUFRNlo7T0FRTjkxQztPQUFWZzNDO01BQ0osV0FESUEsWUFBVWgzQzs7S0FLWDtJQUFZO2FBYWpCcTVDLHFCQUFxQnBkLFNBQVE2WixTQUFROXlDO0tBQ3ZDLElBRHVCd3pDO0tBQ3ZCO1NBRHVCQSxjQUFRVjtPQUU3QixXQTczQkZwQix1QkEwRm1DNTJDLEtBaXlCSWtGLEdBQVI4eUM7Z0JBS3pCLGdCQXR5QjZCaDRDLEtBaXlCWjA0Qzs7OztpQ0FBUVYsU0F2dkI3QkQseUJBdXZCNkJDO1NBUTFCLGdCQXp5QjhCaDRDLEtBaXlCWjA0Qyx1QkFBZ0J4ekMsR0FRbUIsT0FSbkN3ekM7TUFTUCw0QkExeUJtQjE0QyxLQWl5QlowNEM7Ozs7OztZQXdCSDthQUFWNEMsVUF4QlJDLHFCQUFxQjdDLG1CQUFRVjthQUFSTyxZQXdCYitDO2FBeEJhNUM7Ozs7WUFnQ2pCLE9BbndCSlIsbUJBbXVCcUJROzs7O21DQUFRVixTQXZ2QjdCRCx5QkF1dkI2QkM7UUFhYiw4QkE5eUJpQmg0QyxLQWl5QlowNEM7O1NBa0JEO1VBQVZrRSxZQWxCVnJCLHFCQUFxQjdDLG1CQUFRVjtVQUFSWSxZQWtCWGdFO1VBbEJXbEU7Ozs7U0FlRDtVQUFWMEcsWUFmVjdELHFCQUFxQjdDLG1CQUFRVjtVQUFScUIsWUFlWCtGO1VBZlcxRzs7Ozs7Ozs7O1FBNEJIO1NBQVYyRyxZQTVCUjlELHFCQUFxQjdDLG1CQUFRVjtTQUFSc0gsWUE0QmJEO1NBNUJhM0c7Ozs7UUFtQ2pCLE9BdHdCSlIsbUJBbXVCcUJROzs7O0lBdUM0QjthQXdFakRxQyxrQkFDRWxCLFNBQVExYixTQUFRc1YsTUFBSzhMO0tBQ1Y7TUFBVEM7UUFBUyw4QkFsNUJvQngvQyxLQWk1Qi9CNjVDLFNBQVExYixVQUFSMGI7S0FFRjtjQTcrQkZqRCx1QkEwRm1DNTJDLEtBaTVCL0I2NUMsU0FBcUIwRixRQUFMOUwsTUFDZCtMO0lBSTRCO2FBakVoQ3JDLGlCQUFpQnRELFNBQVExYixTQUFRMmIsTUFBS25oQyxNQUFLb2hDLE9BQU10RztLQUNuRCxJQURtQ29LLGVBQUtDLGVBQUtDO0tBQzdDOztTQURtQ0Y7VUFBS0M7O2lCQUFLQzttQkFBTXRLLE1BSXJCO21CQUpxQkEsTUFJZ0I7OztjQUozQnFLO1VBQUtDOzs7eUJBQU10Szs7Ozs7O1lBTWdCOztZQUlyQzs7WUFDQTs7WUFIQTs7WUFJQTs7WUFOQTs7OztjQU5lc0s7a0JBQU10SyxNQUdyQjtrQkFIcUJBLE1BR2dCOzs7d0JBSGhCQTs7OztXQUtnQjs7V0FIckM7O1dBQXFDOztXQUtyQzs7V0FFQTs7V0FKQTs7OztzQkFMcUJBOzs7O2NBcDBCakRvRSxtQkFrMUJ3Qzs7Y0FsMUJ4Q0EsbUJBbTFCd0M7O2NBbjFCeENBLG1CQWkxQndDOzs7O2dCQWoxQnhDQTtZQXUxQkssT0F3Q0xrRCxrQkEzRGlCbEIsU0FBUTFiLFNBQXdCc1Y7ZUFBWHFLOzs7O1dBQUxEO1lBQVVFO1FBaUNyQjtZQXIyQnRCbEc7UUFnMkJLLE9BK0JMa0Qsa0JBM0RpQmxCLFNBQVExYixTQUF3QnNWO1dBQU5zSzs7OztZQXAwQjNDbEc7UUE0MUJLLE9BbUNMa0Qsa0JBM0RpQmxCLFNBQVExYjtXQUFrQjRmOzs7V0FwMEIzQ2xHO09BbzJCSyxPQTJCTGtELGtCQTNEaUJsQixTQUFRMWIsU0FBd0JzVjtVQUFoQm9LOztJQWlDQztXQWp6QjlCdkYsK0JBckU2QnQ0QztHQXc1QlA7WUFPNUJ5L0MsdUJBQXVCei9DLEtBQUlFO0lBQzdCLElBQVkyK0IsTUFoNkJWNlkscUJBKzVCdUIxM0M7SUFFekIsSUFBSSxlQXg3REVpckMsWUF1N0RNcE0sS0FEaUIzK0IsUUFBSkYsTUFFckI7Ozs7S0FJSSxXQTE4Q05xMEMsZ0JBbzhDMkJuMEM7S0FNckIsa0JBLy9CTjAyQyx1QkF5L0J1QjUyQzs7R0FNTTtZQUk3QjAvQyx3QkFBd0IxL0M7O0tBQW1CbWhDO0tBQU50QztLQUMzQjhELFFBMTZCVitVLHFCQXk2QndCMTNDO0lBRTFCO0tBQUksZUFsOERFaXJDLFlBaThETXRJLE9BOWtFVnFILGFBNmtFcUNuTCxPQUFiNytCO0tBRXRCOzs7OztNQUVGLGtCQXZnQ0E0MkMsdUJBbWdDd0I1MkMsS0FBbUJtaEM7Ozs7Ozs7T0E1M0YzQzNDO09BVEFGO09BYkFMO09BR0FDO09BTUFHO09Bd0NBTztPQWs2Q0kyVjtPQStRQW1CO09BK0dBVztPQW9CQUs7T0FxQkFDO09BeDZCQTFMO09BdWhDSnlNO09BKzVCQStIO09BVUFDO09Bem9GQXRmO09BZ0xBYztPQTJnQ0FtVDtPQXoxQkE1UjtPQTZ5Q0FvVTtPQS94Q0l6VDtPQXVJSjBDO09BK2ZBb047OztFbEN2eENMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1ltQ21CS3lNLFNBQVM3b0IsR0FBRWpwQjtJQUNiLElBRHdCZ3hCLGdCQUN4QjtpQkFBaUJ6dUI7S0FBTyxrQ0FEWHZDLEdBQ0l1Qzt1QkFETjBtQixHQUFFanBCO0lBQ2dDO0lBQTdDLG1EQUR3Qmd4Qjs7WUFFdEIrZ0IsU0FBUzlvQixHQUFFanpCO0lBQ2IsSUFEd0JnN0IsZ0JBQ3hCO2lCQUFpQnp1QjtLQUFPLG1DQURYdk0sR0FDSXVNO3VCQUROMG1CLEdBQUVqekI7SUFDZ0M7SUFBN0MsbURBRHdCZzdCOztZQUV0QmdoQixVQUFVL29CLEdBQUV0eEI7UUFBWXE1QjtJQUMxQix5Q0FEWS9ILEdBQUV0eEIsSUFBWXE1Qjs7WUFJeEJpaEIsUUFBUXQ2QyxJQUFHcTVCO0lBQU0sT0FSakI4Z0IsdUJuQ25CTCxZbUMyQmFuNkMsSUFBR3E1QjtHQUE0QjtZQUN2Q2toQixRQUFRbDhDLEdBQUVnN0I7SUFBTSxPQVBoQitnQix1Qm5DckJMLFltQzRCYS83QyxHQUFFZzdCO0dBQTJCO1lBQ3JDbWhCLFNBQVN4NkMsSUFBR3E1QjtJQUFNLE9BTmxCZ2hCLHdCbkN2QkwsWW1DNkJjcjZDLElBQUdxNUI7R0FBNkI7WUFDekNvaEIsU0FBU3A4QyxHQUFFZzdCO0lBQU0sT0FQakJnaEIsd0JuQ3ZCTCxZbUM4QmNoOEMsR0FBRWc3QjtHQUE0QjtZQUN2Q3FoQixPQUFPcmhCLEtBQU0sT0FKYmloQixvQkFJT2poQixLQUF3QjtZQUMvQnNoQixRQUFRdGhCLEtBQU0sT0FMZGloQixvQkFLUWpoQixLQUF3QjtZQUVoQ3VoQixTQUFTdHBCO1FBQVcrSDtJQUN0QixTQUFJN0IsSUFBRzVzQjtLQUNLLElBQU5wSixNQUFNO0tBQ1YsbUNBRElBLEtBRENvSjtLQUdILGtCQUpPMG1CLEdBSVAsNkJBRkU5dkI7SUFFbUI7SUFDekIseUNBSklnMkIsUUFEa0I2Qjs7WUFPcEJ3aEIsUUFBUXhoQixLQUFNLE9BUGR1aEIsa0JBTzRCOTlDLEdBQUssT0FBTEEsRUFBTSxHQUExQnU4QixLQUErQjs7OztPQWR2Q2loQjtPQUlBSTtPQUNBQztPQVNBRTtPQWJBTjtPQUNBQztPQUNBQztPQVhBTjtPQUlBRTtPQVdBTztPQWJBUjtPQUVBQztPQVdBTzs7O0VuQ2xDTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHcUNvQmdCOzs7Ozs7OztJQUVYNkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUZBQyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBSVhDLE1BQU0xakQsR0FBRTJCO0lBQ0YsSUFBSjlDLElBREltQixNQUFFMkI7SUFFSCwrQkFESDlDO0tBRUYseUNBRkVBO0lBR0M7T0FBRyxhQUhKQSxhQUlGLHlDQUpFQTtJQUtDO1dBQUcsYUFMSkEsY0FNRix1QkFORUE7R0FRQztZQUVDOGtELGFBQWEzakQsR0FBRTJCO0lBQ3JCLEdBRG1CM0IsZ0JBQUUyQixHQUNHO0lBQ1UsV0FGNUJnaUQsYUFBYTNqRCxHQUFFMkIsWUFFQyxPQWJwQitoRCxNQVdpQjFqRCxHQUFFMkI7SUFFYTtHQUFzQjtZQVN0RGlpRCxhQUFhNWpEO0lBQ2YsWUFNSyw2QkFqQ0h5akQ7SUEyQmE7aUJBS0w7U0FKQXpoRCxlQUFOQztLQUNFLElBQU8scUJBRFRBLElBRldqQzsrQkFLREgsWUFBSyxXQUFMQTtpQkFISm1DOztHQUtnQjtZQUV4QjZoRCxrQkFVTTdqRDtJQVZjLEdBVWRBLGlCQVRXO09BU1hBLGtCQVJZO09BUVpBOzs7TUFQb0I4akQ7TUFBTkM7TUFBTmxCO0tBQ1o7O2NBckNGVztjQW9DY1g7Y0FBTWtCO2NBQU1EOzs7O09BT3BCOWpEOzs7TUFMcUJna0Q7TUFBTkM7TUFBTkM7S0FDYjs7Y0F2Q0ZWO2NBc0NlVTtjQUFNRDtjQUFNRDs7OztPQUtyQmhrRDs7O01BSGlDbWtEO01BQU5DO01BQU5DO0tBQ3pCOztjQXpDRmI7Y0F3QzJCYTtjQUFNRDtjQUFNRDs7OztJQUlsQyxzQkFEQ25rRCxJQUVTLE9BRlRBO0lBS1csSUFEVHNrRCxjQUpGdGtEOztLQXJCNEI7YUFUOUIyakQsYUE4QkUzakQ7TUFyQmdCLE9BcEJ0QjBqRCxNQXlDTTFqRDthQXJCNEI7Ozs7Ozs7O1FBRGQ7Z0JBbkJwQjBqRCxNQXlDTTFqRDtnQkF0QmM7O0lBNEJGLDhCQUZWc2tEO0dBRW9CO1lBRTVCMXZDLFVBQVVyTTtJQUNOLFlBNUJKcTdDLGFBMkJVcjdDO2dCQUdGLE9BckJSczdDLGtCQWtCVXQ3QztRQUVMMUk7SUFBSyxPQUFMQTtHQUNzQjtZQUUzQjBrRCxNQUFNQyxLQUFJdjNCO0lBQ1osSUFDRSxzQkFGTXUzQixLQUFJdjNCLE1BRVY7VUFDR25VO0tBQ2dDLElBRGhDOVksOEJBQ2dDLE9BVG5DNFUsVUFRRzVVO0tBQ0g7S0FDQTtLQUNBLGtDQUhHQTs7R0FHSTtZQUVQeWtELFFBQU1ELEtBQUl2M0I7SUFDWixJQUNFLHNCQUZNdTNCLEtBQUl2M0IsTUFFVjtVQUNHblU7O0tBQ0g7S0FDbUMsV0FsQm5DbEUsVUFnQkc1VTtLQUVIOzs7R0FDTTtZQU1OMGtELHNCQUFzQkMsSUFBSyxPQUFMQSxHQUFPO1lBa0M3QkMsc0JBQXNCRDtJQUN4QixXQUFTLG1DQURlQTtHQUVGO1lBRXBCRSxzQkFBc0Jub0MsS0FBSS9SO2FBQ3hCSixLQUFLdTZDO0tBQ1AsT0FET0E7cUJBRGVwb0M7O0lBS2lEO0lBRXpFLFNBUDRCL1I7S0FlaEI7WUFmZ0JBOzs7Ozs7TUFlaEIsTUFkUkosS0FEd0JJO0tBY3hCO2FBQUs7OztPQWRtQkEsU0FVb0I7SUFFTixVQVh0Q0o7SUFXRSxXQUFLO0dBS3VDO1lBY2hEdzZDLG9CQUFvQkMsU0FBUUM7SUFDSSxJQWJFQyxZQXZCbENOLHNCQW1DNEJLO1NBWk1DLFdBR2hDLG9DQVNrQkY7UUFQZm5pRCxJQUw2QnFpRCxvQkFLN0JyaUQ7O1NBQ0hsQjs7TUFDUSxZQTFCVmtqRCxzQkF5QkVsakQsb0JBREdrQixHQUNIbEI7O1dBR1dwRTtPQUFPLDZCQUdBeW5ELGNBSFB6bkQ7O01BSFg7Ozs7OztHQU9tRTtZQUdyRTRuRCxnQkFBZ0JIO0lBQ2xCLE9BTEVELG9CQUlnQkMsU0FDVTtHQUFzQjtZQWVoREksd0JBQXdCSDtJQUNOLElBZEVDLFlBMUNwQk4sc0JBdUR3Qks7U0FiSkMsV0FHbkI7SUFFUztLQURMcmlELElBSmVxaUQ7S0FLZDlqRCxJQUFJO1dBREx5QjtLQUNLOztTQUNSbEI7O01BQ1EsWUE3Q1ZrakQsc0JBNENFbGpELG9CQUZHa0IsR0FFSGxCOztXQUdXcEU7T0FBTyw2QkFKZDZELFFBSU83RDs7TUFIWDs7Ozs7SUFLQSxvQ0FOSTZEO0dBU2lEO1lBRXZEaWtELHdCQUVpQkM7SUFGUyxhQUVUQTtHQUFlO1lBRWhDQyx5QkFDZUQsT0FEWSxhQUNaQTtHQUNZO1lBUzNCRSx3QkFFZUY7SUFGVyxhQUVYQTs7O0dBTWQ7WUFFREcsdUJBR2VIO0lBSFUsU0FHVkE7S0FBSyxXQUFMQTtJQURvQjtHQUNEO1lBRWxDSSxnQkFBZ0JUO0lBT1osWUEvRkpMLHNCQXdGZ0JLO2dCQVFOO1FBQ0hDLDBEQU1EdmpEO0lBRm9CO2VBRXBCQTs7O3VDQU5DdWpELFdBTUR2akQ7TUFBSyxvQkFBTEE7OztLQUNELGlCQVBFdWpEOztHQVNJO1lBRVhTLDZCQUE2QkMsT0FDL0IsT0FyQkVGLG9CQW9CNkJFO0dBQ0o7WUFXekJDLHFCQUFxQmxCLElBQUssT0FBTEEsY0FBb0I7WUFXekNtQjtJQUFtQixPQTVFbkJWLHdCQTRFMkM7R0FBc0I7WUFLN0RXLGlCQUFpQkM7SUFDdkI7S0FBbUI7TUFBZkMsZUFBZSw2QkF6UGpCeEM7TUEwUEV5QyxtQkFGbUJGLElBQ25CQztNQUVBdC9DO1FBQVUsNkJBM1BaODhDLFVBeVBFd0MsY0FDQUM7TUFFSixVQURJdi9DOztLQUNKOztHQUF1QztZQUlyQ3cvQyxTQUNFbm1ELEdBQUosYUFDRyxhQURDQSxjQUNzQztZQUV4Q29tRCxZQUFZcG1ELEdBQ0gsSUFBUDJLLE9BTEZ3N0MsU0FJWW5tRCxJQUVMLE9BREwySyxRQUM4QjtZQUVoQzA3QyxjQUFjcm1ELEdBQ0wsSUFBUDJLLE9BVEZ3N0MsU0FRY25tRCxJQUVQLE9BREwySyxRQUNpQztPQUtuQzI3QztZQWdCQUMsK0JBQW1DbjVCLEtBQUk2M0I7SUFDSCxVQTNPcENyd0MsVUEwT21Dd1k7SUFDckM7SUE3SUUyM0IsZ0NBNEl1Q0U7SUFHNUIsSUFBVHVCLFNBQVM7T0FBVEE7S0FFb0I7bUNBRnBCQTtNQUVZLHVCQXJCZEY7S0FxQkE7OztHQUNVO0dBRW1CLElBQTdCRyxpQ0FSQUY7WUFVQUcsK0JBQStCVjtJQUYvQlMsZ0NBRStCVDs7R0FBcUM7T0FFcEVXO1lBb0NBQywwQkFBMEJ6NUIsT0FBSTA1QjtJQUNoQztLQTVCQTs7T0FHTTVCO1NBd0IwQjRCLGtCQXBDOUJGLGtCQWdCSTtNQUVKLElBQUs7TUFDTDtPQUNFO3lCQXhCRkYsK0JBd0MwQnQ1QixPQXhCdEI4M0I7OztZQVNDNkI7T0FDa0I7UUFEbEIxNUI7UUFDQzI1QixrQkFBaUI7UUFDaUIsTUE3UXhDbnlDLFVBMFIwQnVZO09BYnhCO09BL0tGNDNCLGdDQW9LSUU7T0FjQSxVQWhSSnJ3QyxVQTJRS3dZO09BSUg7T0FqTEYyM0IsZ0NBOEtNZ0M7aUJBTUo7Ozs7Ozs7Z0JBR0U7O0tBT0o7O2VBR0E7R0FBRTtHQU1KOzJDQVhFSDtxQnJDbldMOzs7Ozs7T3FDOExLdkI7T0FJQUU7T0FXQUM7T0FVQUM7T0EvRUFaOzs7T0EvREFqd0M7T0FsQkFpdkM7T0F1QkFVO09BUUFFO09BcUZBVTtPQTRGQVc7OztPQUtJQztPQTlOSm5DO09Bb0RBYztxQnJDbEdMO09xQ3VLS0s7T0FvQkFLO09Bd0hBbUI7T0FVQUc7T0FqR0FoQjtPQW9CQUM7O09BWUFFOzs7O09BNEJBTztPQUlBQzs7O0VyQzVSTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0l3Q29CS2w5QztJQUNBUDs7Ozs7WUFLQXkvQyxPQUFPOXFEO0lBQ1QsdUJBRFNBO0dBQzhCO1lBRXJDK3FELE1BQU1sbkQsR0FBSSxPQUhWaW5ELE9BR2lCLDZCQUFYam5ELElBQXFDO1lBRTNDbW5ELFVBQVVockQsS0FBSTJGLEtBQUlDO0lBQ3BCLFFBRGdCRCxZQUFJQyw4QkFBUjVGLE9BQVE0RixZQUFKRDtLQUdYLHVCQUhPM0YsS0FBSTJGLEtBQUlDO0lBRWY7R0FDeUI7WUFFNUJxbEQsU0FBU3BuRCxHQUFFOEIsS0FBSUM7SUFBTSxPQUxyQm9sRCxVQUsrQiw2QkFBdEJubkQsSUFBRThCLEtBQUlDO0dBQWtEO1lBRWpFMC9DLEtBQUs0RjtJQUNFLElBQUw1a0QsS0FBSyx1QkFERjRrRDtJQUVQLElBQU0sSUFDRnJ5QyxJQURFLHNCQURGdlM7VUFHVXNJOztLQUFLLHVCQUhmdEk7S0FHNEIsa0NBQWxCMEU7O0lBREwsdUJBRkwxRTtJQUVLLE9BQUx1UztHQUNtQztZQUVyQ25ULE9BQU9LLE1BQUtvbEQsUUFDZCw4QkFEU3BsRCxNQUFLb2xELFFBQ1c7WUFFdkI5a0QsTUFBTU4sTUFBTyw4QkFBUEEsVUFBa0M7WUFFeENxbEQsU0FBU2xwRCxHQUNYLGdCQURXQSxnQ0FDaUU7WUFFMUVtcEQsT0FBT3h5QztJQUNULGdDQURTQTtLQUNxQjtJQUNqQixJQUFUbEssU0FBUyx1QkFDYnZLOztLQUNvQixJQUFkM0IsSUFBYyxnQkFKWG9XLEdBR1R6VTsyQkFESXVLLFFBQ0p2SyxXQU5FZ25ELFNBT0kzb0Q7MkJBRkZrTSxTQUNKdkssb0JBTkVnbkQsU0FPSTNvRDtLQUROO2tCQUtBLG9DQU5Ja007U0FDSnZLOztHQUs2QjtZQUUzQmtuRCxTQUFTaHBEO0lBQ1gsZ0NBRFdBO0tBQ21CO2FBQzFCaXBELE1BQU1ybUQ7S0FDUixTQURRQTs7Ozs7OztLQUtEOztJQUEwQztJQUd0QyxJQUFUeUosU0FBUyx1QkFDYnZLOztLQUZpQztNQUF4QkMsVUFFVEQ7TUFGaUMsTUFQN0JtbkQsTUFPbUMsZ0JBVDVCanBELEdBU0YrQjthQVBMa25ELE1BT2UsZ0JBVFJqcEQsR0FTRitCO0tBR1AsdUJBRkVzSyxRQUNKdkssR0FDcUI7S0FBbkIsVUFERkE7a0JBR0Esb0NBSkl1SztTQUNKdks7O0dBRzZCOzs7O09BeEQzQndIO09BQ0FQO09BS0F5L0M7T0FHQUM7T0FFQUM7T0FLQUM7T0FFQTNGO09BTUE1L0M7T0FHQVc7T0FLQWdsRDtPQVVBQzs7O0V4QzlETDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZeUNrQ09FLGlCQUFlLFdBQU8sa0NBQTBCO1lBQ2hEQyxPQUFPQyxLQUFJQztJQUNiLDZCQURhQSxXQUFKRDthQUFJQzs7R0FFSztZQUdoQkMsVUFBVXRwRCxHQUFFdXBEO0lBQ2Q7S0FLSUMsZUFOVUQ7S0FPVjFuRCxJQURBMm5EO0tBRUp6bkQ7O0tBQ0UsaUJBVFUvQixNQVFaK0I7S0FDRSxVQURGQTs7S0FHVztNQUFQNkM7aUJBQ2MsK0JBTGQvQztNQUlPOztVQUNYQzs7T0FHd0I7UUFGbEI4TixJQUROOU47UUFFTTB5QixhQUZOMXlCLEdBTElEO1FBTmExQixxQkFLYnFwRCxRQVFFaDFCO1FBYk0xdkIsU0FVUkY7UUFWdUMsaUNBQTFCekU7UUFBa0IsNkJBQXZCMkU7T0FVUkYsVUFWK0I7T0FHcEI7UUFGSDJSLElBU1IzUjtRQVBXLHNCQUZIMlI7UUFDNkMsc0JBRDdDQTtRQUNtQixzQkFEbkJBO2dCQUNBLGdCQURBQTtnQ0FGQXZXLE1BYU40UDtPQUdKLGlCQWhCVTVQLE1BYU40UDtPQUROOzs7OztLQVpZNVA7OztHQWtCRjtZQUdSZCxLQUFLcXFEO0lBQ00sSUFBVGw5QyxTQTVCRjY4QztJQU1BSSxVQXNCRWo5QyxRQURHazlDO0lBRVAsT0FESWw5QztHQUVFO1lBR0pvOUMsc0JBQW9CLE9BTnBCdnFELEtBTXlCLHlCQUFnQjtZQUV6QzJjLEtBQUs3YjtJQUNNLElBQVRxTSxTQXBDRjY4QztJQUNBQyxPQW1DRTk4QyxRQURHck07SUFFUCxPQURJcU07R0FFRTtZQUlKcTlDLEtBQUsxcEQ7O0lBRU07V0FGTkE7S0FFSDJwRCwwQkFGRzNwRDs7S0FHSDRwRDt3QkFIRzVwRDtVQUVIMnBEOztLQUdBRSxXQUZBRDtXQUhHNXBEO0lBTVAsaUJBTk9BLHNCQUtINnBEO0lBQ0osT0FESUE7R0FFSTtZQUdGQyxPQUFPOXBELEdBQUVKO0lBQ2Y7S0FBUSxJQUFKUCxJQVhGcXFELEtBVVcxcEQsSUFFVGIsYUFEQUUsR0FEV087MENBQ1hQLElBQ0FGO0tBQytDLE9BRC9DQTs7R0FDZ0Q7WUFFbEQ0cUQsTUFBSS9wRCxHQUFFZ3FEO0lBQ1IsaUJBRFFBLG9CQUdILE9BUkNGLE9BS0E5cEQsR0FBRWdxRDtJQUVIO0dBQ2M7WUEyQmpCQyxTQUFTanFELEdBQUVncUQ7SUFDYixRQURhQSxPQUVYO3FCQUZXQSxPQU1YLE9BekNJRixPQW1DSzlwRCxHQUFFZ3FEO0lBeEJiO0tBQ1MsSUFBTDdvQyxLQXRCRnVvQyxLQTZDUzFwRCxJQXRCUG9oQixLQXZCRnNvQyxLQTZDUzFwRCxJQXhCUGtxRDtRQXdCU0Y7O09BakJMRyxRQUxKL29DLHdCQURBRDtPQUVJcmdCLFVBSEpvcEQ7T0FHQzdxRCxJQUlHOHFEOztNQUtLO09BQUw3b0MsS0FqQ05vb0MsS0E2Q1MxcEQ7T0FyQk5td0IsUUFTRzdPLHlCQVZKRixzQkFEQUQ7T0FFSWlJOztPQUFIL3BCO1NBa0JERixhQWxCQ0UsR0FxQlEycUQ7VUFyQkxscEQsVUFxQktrcEQsdUJBckJSM3FELElBa0JERjtLQUM4QyxPQUQ5Q0E7O0dBU1k7WUFZZGlyRCxNQUFNcHFELEdBQUVncUQ7SUFDVixHQUFHLGVBRE9BO0tBRUw7SUFWTDtLQUFzQjtNQUFsQjdvQyxLQXZERnVvQyxLQStETTFwRDtNQVBKb2hCLE1BeERGc29DLEtBK0RNMXBEO01BTkpYLElBRkE4aEIsS0FDQUM7TUFFQWppQixJQUFJLFNBREpFLEdBTU0ycUQ7S0FKUCxvQkFGQzNxRCxJQUNBRiwwQkFLTTZxRDs7S0FGTCxPQUhEN3FEOztHQVFpQjtZQWFuQmtyRCxNQUFNcnFELEdBQUVncUQ7SUFDVixHQUFHLGVBRE9BO0tBRUw7SUFYTDtLQUFTO01BQUw3b0MsS0FBSyxvQkF0RVB1b0MsS0ErRU0xcEQ7TUFSSm9oQixLQUFLLHNCQUFpQixvQkF2RXhCc29DLEtBK0VNMXBEO01BUEpzaEIsS0FBSyxzQkFBaUIsb0JBeEV4Qm9vQyxLQStFTTFwRDtNQU5KWCxJQUFJLGNBSEo4aEIsSUFHbUIsY0FGbkJDLElBQ0FFO01BRUFuaUIsSUFBSSx1QkFESkUsR0FNTTJxRDtLQUpQOzt3QkFGQzNxRCxHQUNBRjtTQUNlLHVCQUFVLGdDQUluQjZxRDs7S0FGTCxPQUhEN3FEOztHQVFpQjs7SUFHbkJtckQ7O2tCQUVPdHFELEdBQUVncUQsT0FBUyxPQXhCbEJJLE1Bd0JPcHFELEdBQUVncUQsT0FBZ0U7O1NBQ2xFaHFELEdBQUVncUQ7U0FBUywyQkFUbEJLLE1BU09ycUQsR0FBdUMsb0JBQXJDZ3FEO1FBQWdFO1lBV3pFTyxRQUFNdnFELEdBQUVncUQ7SUFBUSxJQUxkcjFDLEtBOUZGKzBDLEtBbUdNMXBELElBSkp3d0IsS0EvRkZrNUIsS0FtR00xcEQ7SUFBVSxRQUxkMlUsbUJBQ0E2YixvQkFJTXc1QjtHQUEyQjtZQUVuQ1EsS0FBS3hxRCxHQUFJLGNBckdUMHBELEtBcUdLMXBELGdCQUF1QjtZQUU1QnlxRCxPQUFPenFEO0lBQ1QsSUFBSW1oQixLQXhHRnVvQyxLQXVHTzFwRCxlQUVMb2hCLEtBekdGc29DLEtBdUdPMXBEO0lBR0YsT0FGSG1oQixLQUNBQztHQUMrQjtZQUVqQ3NwQyxPQUFPMXFEO0lBQ1Q7S0FBSW1oQixLQUFZLCtCQUFvQixvQkE3R2xDdW9DLEtBNEdPMXBEO0tBRUxvaEIsS0FBWSwrQkFBb0Isb0JBOUdsQ3NvQyxLQTRHTzFwRDtLQUdMc2hCLEtBQVksK0JBQW9CLG9CQS9HbENvb0MsS0E0R08xcEQ7SUFJRjthQUhIbWhCO2FBR1k7ZUFBTyxzQkFGbkJDLFNBRXNDLHNCQUR0Q0U7R0FDMEQ7R0FXcEQ7SUFUUnFwQzs7a0JBRU8zcUQsR0FBSyxPQWJaeXFELE9BYU96cUQsR0FBa0M7a0JBQ2xDQSxHQUFLLDJCQVRaMHFELE9BU08xcUQsSUFBa0M7SUFNM0N3VDtZQWdCQW8zQyxjQUFVLE9BM0lSbEIsS0EySEZsMkMsV0FnQjRCO1lBQzVCcTNDLE1BQUliLE9BQVEsT0E3SFZELE1BNEdGdjJDLFdBaUJJdzJDLE9BQStCO1lBQ25DYyxXQUFTZCxPQUFRLE9BaEdmQyxTQThFRnoyQyxXQWtCU3cyQyxPQUFvQztZQUM3Q2UsUUFBTWYsT0FBUSxPQS9FWkksTUE0REY1MkMsV0FtQk13MkMsT0FBaUM7WUFDdkNnQixZQUFVaEIsT0FBUSxPQTFEaEJNLFVBc0NGOTJDLFdBb0JVdzJDLE9BQXFDO1lBQy9DaUIsUUFBTWpCLE9BQVEsT0FqRVpLLE1BNENGNzJDLFdBcUJNdzJDLE9BQWlDO1lBQ3ZDa0IsUUFBTUMsT0FBUSxPQTlDWlosUUF3QkYvMkMsV0FzQk0yM0MsT0FBaUM7WUFDdkNDLGNBQVUsT0E3Q1JaLEtBc0JGaDNDLFdBdUI0QjtZQUM1QjYzQyxnQkFBWSxPQTVDVlosT0FvQkZqM0MsV0F3QmdDO1lBQ2hDODNDLGdCQUFZLE9BeENWWixPQWVGbDNDLFdBeUJnQztZQUNoQyszQyxvQkFBZ0IsT0FuQ2RaLFdBU0ZuM0MsV0EwQndDO1lBRXhDZzRDLFlBQVVqQyxNQUFPLE9BM0xmRCxVQStKRjkxQyxXQTRCVSsxQyxNQUFtQztZQUM3QzE1QyxLQUFLMDVDLE1BQU8sT0E1TFZELFVBK0pGOTFDLGVBNkJLKzFDLE9BQXlDO1lBQzlDa0MsaUJBQWUsT0FGZkQsWUFFeUIseUJBQWU7WUFJeENFLGlCQUFlLE9BcEtiN3ZDLEtBa0lGckksV0FrQ2lDO1lBQ2pDbTRDLFVBQVUzckQsR0FBSSxPQXZNWm1wRCxPQW9LRjMxQyxXQW1DVXhULEdBQTBCOzs7O09BTnBDNlA7T0FEQTI3QztPQUVBQztPQWRBYjtPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBQztPQUNBRTtPQUNBQztPQUNBQztPQUNBQzs7UUFwS0Vyc0Q7UUFNQXVxRDtRQUVBNXRDO1FBT0E2dEM7UUFlQUs7UUE4QkFFO1FBa0JBRztRQXNCQUU7UUFOQUQ7UUFvQkFFO1FBRUFDO1FBRUFDO1FBS0FDO1FBTUFDO09BMkNGZTtPQUNBQzs7O0V6QzFPTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztZMEN3Q0tDLGtCQUFrQjVpQztJQUNwQixXQURvQkE7O0dBRUM7WUFFbkI2aUMsdUJBQXVCN2lDLCtCQUNTO09BTTVCLDRDQURGOGlDOzs7O0lBRUYsSUFBSTs7Ozs7O1FBRkZBOztHQUdKO0lBSkVDLHFCQUlGLDhCQUhJRDtJQUtGRSxpQkFOQUQ7WUFRQUUsaUJBRkFELDRCQUVpQztZQUNqQ0UscUJBQW1CLE9BSG5CRixjQUc4QjtHQUVsQjtJQUFaRyw0QjFDNURMO1kwQ29FU0MsY0FBY2pzRCxHQUFFUDtJQUN0QixJQURvQnFaO0lBQ3BCO1FBRHNCclosS0FBRnFaLEtBQ0wsT0FES0E7d0NBRXNCLE9BRnRCQTs7O0dBR1E7WUFFMUI3TixPQUFTK2UsS0FBc0JraUM7SUFDakMsR0FEV2xpQyxTQUFTRSxNQUFURixpQkFBU0UsY0FBVGlpQyxTQWxCVE47SUFtQk0sSUFBSmhzRCxJQU5Fb3NELGtCQUsyQkM7SUFFakMsR0FGV0M7OzBCQWJUSDs7Ozs7TUFlRTVDLE9BQXNCOztTQUF0QkE7SUFDSixjQUFrRCxlQUY5Q3ZwRCxPQUNBdXBELE1BREF2cEQ7R0FFa0U7WUFFcEV1MUIsTUFBTXZNO0lBQ1IsZUFEUUE7Ozs7O2NBR04sNEJBSE1BOztHQUlMO1lBRURvUCxNQUFNcFA7SUFDUixJQUFJMWxCLE1BREkwbEI7NEJBQ0oxbEIsUUFFTyx1QkFISDBsQjs7WUFPSSxlQUFXLHVCQVBmQTs7O0lBSU4sT0FWQXVNLE1BTU12TTtHQVFMO1lBRUR1akM7SUFBa0IsWUFDVDtJQVlNO0tBWFQxTjtLQUFLbHJCO0tBQU14bUI7S0FXWG5RLGFBWEE2aEQsS0FBS2xyQixNQUFNeG1CO0tBT0Z6USxPQUlUTTtlQVhXbVE7O21CQVlmLE9BREluUTtLQVBlO01BRFR3dkQ7TUFBS240QjtNQUFNbzRCO01BQ1g1dkQsYUFEQTJ2RCxPQUFLbjRCLFFBQU1vNEI7S0FJUi92RCxVQUhIRztTQUdHSCxPQUhIRyxrQkFEVzR2RDs7R0FVcEI7WUFFSDV3QyxLQUFLbU47SUFBSTtZQUFKQTs7S0FBb0Isb0NBakJ6QnVqQyxpQkFpQkt2akM7SUFBSSxXQUFKQTtHQUFzRDtZQUUzRDNkLE9BQU8yZCxHQUFJLE9BQUpBLEtBQVU7WUFFakIwakMsbUJBQW1CQyxVQUFTQyxTQUFRQyxPQUFNQztJQUM1QztLQUFJQyxRQUR3Q0Q7S0FFeENFLGFBQWEsZUFEYkQ7WUFEa0NGO0tBa0J0Qzs7Ozs7TUFDZ0IsOEJBbkJzQkEsT0FrQnRDOXFELGVBYkk4ekI7TUFGb0I7VUFFcEJBO1FBQ0U7U0FESWdwQixNQUFOaHBCO1NBQVdsQyxPQUFYa0M7U0FBaUIxb0IsT0FBakIwb0I7U0FDTU0sU0FOb0J5MkIsVUFLMUIvMkIsV0FBTWdwQixLQUFLbHJCO1NBS0xzNUIsT0FBTyxXQVZJTixVQUtYOU47U0FRRy9vQix5QkFYVGszQixZQVFNQztXQUdHbjNCO29CQVBISzs7U0FNTyxpQkFaMkIyMkIsT0FVbENHLGtCQUpBOTJCO1FBU0osaUJBYkY2MkIsWUFRTUMsa0JBSkE5MkI7WUFETk4sT0FBaUIxb0I7OztPQWNuQixXQURGcEw7Ozs7Ozs7T0FsQjhCNnFEO0tBc0I1QixXQXJCRUcsZUFxQkY7Ozs7T0FDUSxJQUVDRywyQkF2QlBGLFlBb0JGbHJEO1VBR1NvckQ7T0FIVDs7Ozs7Ozs7Z0JBdEI0Qk47O0dBMEJ4QjtZQUVKdjBCLE9BQU9zMEIsVUFBUzNqQztJQUNsQjtLQUFJNmpDLFFBRGM3akM7S0FFZG1rQyxRQURBTjtLQUVBRSxRQURBSTtZQUNBSjs7SUFFVSxJQUFSRCxRQUFRLGVBRlZDLFdBR0VILGNBN0dKaEIsa0JBdUdnQjVpQztXQUtaOGpDO0lBR0osT0FwQ0FKLG1CQW9DbUIsV0FSWkMsVUFBUzNqQyxJQU1aNGpDLFNBTEZDLE9BSUVDO0dBSUg7WUFFRDcrQyxLQUFLalAsR0FBRWdxQjtJQU1NLElBQVhva0MsV0F4SEZ4QixrQkFrSE81aUM7V0FNTG9rQyxVQXBIRnZCLHVCQThHTzdpQztJQU9ZO1NBRWZ6UyxJQVRHeVMsYUFTSHpTOztVQUNKelU7OztvQ0FESXlVLEdBQ0p6VTtPQVRrQjs7YUFHWCs4QyxnQkFBS2xyQixpQkFBTXhtQjtTQUNkLFdBTENuTyxHQUlFNi9DLEtBQUtsckI7cUJBQU14bUI7OztRQU9oQixXQURGckw7Ozs7Ozs7b0JBSkVzckQsd0JBcEhGdkIsdUJBOEdPN2lDO0tBYWM7O1VBQ2xCc0U7O0tBQVMsR0FSVjgvQiw0Q0FRQzcvQjtLQTVISHMrQix1QkE4R083aUM7S0FnQlAsa0NBRkd1RTs7R0FFTTtZQXNCVDgvQixtQkFBbUJydUQsR0FBRWdxQjtJQUN2QixJQUFJelMsSUFEbUJ5UyxNQUVuQm9rQyxXQTFKRnhCLGtCQXdKcUI1aUM7V0FFbkJva0MsVUF0SkZ2Qix1QkFvSnFCN2lDO0lBR0Y7Z0JBRmpCelM7O1VBckJnQ3pVOzs7T0EwQk0sOEJBTm5Ca25CLE1BcEJhbG5CLFdBQUVwRixVQU05Qm9POzs7U0FDUTtVQUROK3pDLE1BQUYvekM7VUFBTzZvQixPQUFQN29CO1VBQWFxQyxPQUFickM7VUFDUSxtQkFhSzlMLEdBZFg2L0MsS0FBS2xyQjtxQkFjUTNLLHlCQWRmbGUsT0FBYXFDO2FBS1ZrbkI7U0FDSCxHQVo4QjMzQjtvQkFNOUJvTzs7VUFPVyxpQkFPSWtlLE1BcEJhbG5CLFlBTTVCZ0o7bUJBS0d1cEI7YUFYMkIzM0IsT0FNOUJvTyxhQUFhcUM7OztXQU5pQnpRLHdCQUd2QixpQkFpQlFzc0IsTUFwQmFsbkI7UUEwQmhDLFdBMUJnQ0E7Ozs7Ozs7b0JBc0JoQ3NyRCx3QkF0SkZ2Qix1QkFvSnFCN2lDO0tBUUE7O1VBQ2xCc0U7O0tBQVMsR0FQVjgvQiw0Q0FPQzcvQjtLQTdKSHMrQix1QkFvSnFCN2lDO0tBV3JCLGtDQUZHdUU7O0dBRU07WUFFVHprQixLQUFLOUosR0FBRWdxQixHQUFFblo7SUFPSSxJQUFYdTlDLFdBNUtGeEIsa0JBcUtPNWlDO1dBT0xva0MsVUF4S0Z2Qix1QkFpS083aUM7SUFRWTtLQUdSLElBRFB6UyxJQVZHeVMsTUFXSHBhLGFBWEtpQixjQVVMMEcsc0JBQ087O1VBQ1h6VTs7O09BQ29CO1FBWkZtWixTQVVkck07UUFWWTArQyx1QkFTWi8yQyxHQUVKelU7UUFYZ0JQO1FBQUVxRDtPQUNsQjtXQURnQnJEO1NBS0c7VUFEWnM5QyxNQUpTdDlDO1VBSUpveUIsT0FKSXB5Qjs7VUFBRXVELFNBS0MsV0FOZDlGLEdBS0U2L0MsS0FBS2xyQixNQUpNL3VCO1VBQUZyRDtVQUFFcUQ7OztRQVVkZ0ssWUFWY2hLO1FBV2xCOzs7Ozs7O1lBTEV3b0QsVUF4S0Z2Qix1QkFpS083aUM7Z0JBV0hwYTs7O1VBTUQwZTs7S0FBUyxHQVZWOC9CLDRDQVVDNy9CO0tBbExIcytCLHVCQWlLTzdpQztLQW1CUCxrQ0FGR3VFOztHQUVNO1lBU0xnZ0M7UUFBY3pvRDs7bUJBQ1QsT0FEU0E7S0FFSjtNQUFUcUk7TUFBUyxTQUZJckk7O2dCQUVicUk7OztZQUVMcWdELE1BQU14a0M7SUFDUixVQURRQTtpQkFFZU8sR0FBRWhvQjtLQUFlLFVBTmxDZ3NELGlCQU1tQmhzRDtLQUFlLGtDQUFqQmdvQjtJQUFvQztJQUF6RDtLQURFa2tDLE1BQ0Y7S0FDRUMsUUFBUSxlQUZSRDtLQUdKLE1BSlF6a0M7aUJBS0R6bkI7S0FDSyxJQUFKTSxJQVZGMHJELGlCQVNDaHNEO0tBRkhtc0QsVUFHSTdyRCxzQkFISjZyRCxPQUdJN3JEO0tBQ0o7SUFBMEI7SUFIOUI7SUFLQSxXQVRRbW5CLHVCQUNKeWtDLEtBRUFDO0dBU3dCO1lBSTFCejVDLE9BQU84VjtJQUdULElBQUk0akMsV0FISzVqQztJQUtULFNBQVEzTyxJQUFJdFosR0FBRThyRDtLQUFVLElBQVo3ckQsU0FBRThyRDtLQUFVO1NBQVZBO1dBS0poUCxNQUxJZ1AsV0FLQ2w2QixPQUxEazZCLFdBS08xZ0QsT0FMUDBnRDtPQU1SLGVBREloUCxLQUFLbHJCLHFCMUN2UWxCLE8wQ2tRV3ZZLElBQUlyWixLQUtTb0w7O1NBTFRwTCxRQUZSNHJELHFCQUtPO01BQ1M7T0FKTkcsMEJBRlZILFVBRVE1ckQ7OztPQUFFOHJEOztJQU0wQjtJQUV4Qzt5QjFDMVFILE8wQ2tRV3p5QztHQVFHO1lBRVQyeUMsWUFBWXhrQztJQUFnQixVQWY1QnRWLE9BZVlzVjtzQjFDNVFqQjtJMEM0UWlDO0dBQVU7WUFFdEN5a0MsY0FBY3prQztJQUFnQixVQWpCOUJ0VixPQWlCY3NWO3NCMUM5UW5CO0kwQzhRbUM7R0FBVTs7YUFvRnBDMGtDLFVBQVVqbEMsR0FBRTYxQjtLQUNkLFVBRFk3MUI7S0FDWix3QkFEWUEsTUFBRTYxQjtJQUNvQzthQUVoRHJ2QixJQUFJeEcsR0FBRTYxQixLQUFJbHJCO0tBQ1o7TUFBSTd4QixJQUpGbXNELFVBR0lqbEMsR0FBRTYxQjtNQUVKcVAsYUFGSXJQLEtBQUlsckIsdUJBQU4zSyxNQUNGbG5CO0tBRUosaUJBSE1rbkIsTUFDRmxuQixZQUNBb3NEO0tBRkVsbEM7O2tCQXROUnFQLE9BbU5JNDFCLFdBR0lqbEM7SUFLdUQ7YUFlM0RzSCxPQUFPdEgsR0FBRTYxQjtLQUNYO01BZHNCLzhDLElBVnBCbXNELFVBdUJPamxDLEdBQUU2MUI7TUFFaUIscUJBRm5CNzFCLE1BYmFsbkI7TUFBTWpGO01BRzFCSDs7aUJBREU7VUFDUzgzQixJQUFYOTNCLFNBQWN5USxPQUFkelE7TUFDSyxvQkFETTgzQixHQVVGcXFCO09BQUY3MUI7Y0FibUJuc0I7OEJBR1pzUTttQ0FVUDZiLE1BYmFsbkIsWUFHTnFMOztVQUhZdFEsU0FHMUJILGFBQWN5UTs7SUFZc0I7YUFRcEM2QixLQUFLZ2EsR0FBRTYxQjtLQUNUO01BQWMsTUFsQ1pvUCxVQWlDS2psQyxHQUFFNjFCO01BQ0gseUJBREM3MUI7aUJBRUk7U0FDQW1sQyxlQUFTeDVCLGVBQVN5NUI7S0FDdEIsb0JBSkV2UCxLQUdFc1AsS0FDZ0IsT0FEUHg1QjtVQUFTeTVCLE9BR2Q7U0FDQUMsS0FKY0QsVUFJTHg1QixLQUpLdzVCLFVBSUlFLFFBSkpGO0tBS2xCLG9CQVJGdlAsS0FPTXdQLEtBQ2dCLE9BRFB6NUI7VUFBUzA1QixPQUdkO1NBQ0FDLEtBSmNELFVBSUxFLEtBSktGLFVBSUlHLFFBSkpIO0tBS2xCLG9CQVpOelAsS0FXVTBQLEtBQ2dCLE9BRFBDO2lCQUFTQzs7a0JBZmpDO1VBQ09qNkIsY0FBR2IsaUJBQU14bUI7TUFDYixvQkFFRTB4QyxLQUhFcnFCLElBQ2UsT0FEWmI7a0JBQU14bUI7O0lBZXlDO2FBUTNEd0wsU0FBU3FRLEdBQUU2MUI7S0FDYjtNQUFjLE1BdERab1AsVUFxRFNqbEMsR0FBRTYxQjtNQUNQLHlCQURLNzFCO2lCQUVBO1NBQ0FtbEMsZUFBU3g1QixlQUFTeTVCO0tBQ3RCLG9CQUpNdlAsS0FHRnNQLEtBQ2dCLFdBRFB4NUI7VUFBU3k1QixPQUdkO1NBQ0FDLEtBSmNELFVBSUx4NUIsS0FKS3c1QixVQUlJRSxRQUpKRjtLQUtsQixvQkFSRXZQLEtBT0V3UCxLQUNnQixXQURQejVCO1VBQVMwNUIsT0FHZDtTQUNBQyxLQUpjRCxVQUlMRSxLQUpLRixVQUlJRyxRQUpKSDtLQUtsQixvQkFaRnpQLEtBV00wUCxLQUNnQixXQURQQztpQkFBU0M7O2tCQWZqQztVQUNPajZCLGNBQUdiLGlCQUFNeG1CO01BQ2Isb0JBRU0weEMsS0FIRnJxQixJQUNlLFdBRFpiO2tCQUFNeG1COztJQWVrRDthQUVwRXlMLFNBQVNvUSxHQUFFNjFCO2NBQ0w2UDtNQUFpQjs7cUJBRXJCO1dBQ09sNkIsZ0JBQVFqZSxnQkFBR3BKO09BQ2Ysb0JBRElxbkIsR0FKRXFxQixNQU1KLFdBRlV0b0MsR0FIWG00QyxlQUdjdmhEOzs7S0FHTTtLQUNMLFVBM0VyQjhnRCxVQW1FU2psQyxHQUFFNjFCO0tBUUUsT0FQUDZQLGdDQURHMWxDO0lBUTRCO2FBVXJDMmxDLFFBQVEzbEMsR0FBRTYxQixLQUFJbHJCO0tBQ2hCO01BQUk3eEIsSUF0RkZtc0QsVUFxRlFqbEMsR0FBRTYxQjtNQUVSaDlDLHFCQUZNbW5CLE1BQ05sbkI7TUFOR2dKLE9BT0hqSjs7U0FQR2lKO1dBQU0wcEIsSUFBTjFwQixTQUFTcUMsT0FBVHJDO09BQ0Esc0JBRE0wcEIsR0FLRHFxQixVQUxML3pDLE9BQVNxQztPQUFUckMsVUFLSyt6QztPQUxML3pDLFVBS1M2b0I7Ozs7O01BR2I7T0FDRCxpQkFKUTNLLE1BQ05sbkIsZ0JBRFErOEMsS0FBSWxyQixNQUVaOXhCO09BRk1tbkI7O2VBTW1DLE9BOVMvQ3FQLE9BbU5JNDFCLFdBcUZRamxDOzs7Ozs7O0lBT1A7YUFFRGhSLElBQUlnUixHQUFFNjFCO0tBQ1I7TUFLc0IsTUFwR3BCb1AsVUE4RklqbEMsR0FBRTYxQjsrQkFBRjcxQjtLQUNrQjtrQkFFcEI7TUFFQSxJQURPd0wsY0FBR3JuQixpQkFDVix1QkFET3FuQixHQUpIcXFCO01BS0o7a0JBRFUxeEM7O0lBRXdCO2FBRXBDNmxCLFFBQVFqSixLQUFJam9COztNQUNMLElBQVEzQyxjQUFGcTFCO01BQVEsT0FwR3JCaEYsSUFtR1F6RixLQUNLeUssR0FBRXIxQjtLQUFrQjtLQUFuQyxzQ0FEYzJDO0lBQ3VCO2FBRW5DOHNELFlBQVk3a0MsS0FBSWpvQjs7TUFDVCxJQUFRM0MsY0FBRnExQjtNQUFRLE9BckJyQm02QixRQW9CWTVrQyxLQUNDeUssR0FBRXIxQjtLQUFzQjtLQUF2QyxzQ0FEa0IyQztJQUN1QjthQUV2Q3daLE9BQU94WjtLQUNDLElBQU5pb0IsTUF0WU4zZTtLQWtZSXdqRCxZQUlFN2tDLEtBREtqb0I7S0FFVCxPQURJaW9CO0lBRUQ7SUF4SFA7WUFoUkUzZTtZQUtBbXFCO1lBTUE2QztZQTJCQXZjO1lBc1BJMlQ7WUFvQkFjO1lBVUF0aEI7WUFvQkEySjtZQWNBQztZQWtCQSsxQztZQVNBMzJDO1lBdFNKL0o7WUFzQ0FvL0M7WUFhQXZrRDtZQTVGQXVDO1lBNEhBbWlEO1lBZ0JBdjVDO1lBZUE4NUM7WUFFQUM7WUEwTEloN0I7WUFHQTQ3QjtZQUdBdHpDOzs7UUFtQkl2UzthQUNBc04sS0FBTWt6QyxNQUFZcHBELEdBQUksd0JBQUpBLEdBQVk7OzhCQUQ5QjRJLE9BQ0FzTjtLQWpLUmtmO0tBQ0E2QztLQUNBdmM7S0FDQTJUO0tBQ0FjO0tBQ0F0aEI7S0FDQTJKO0tBQ0FDO0tBQ0ErMUM7S0FDQTMyQztLQUNBL0o7S0FDQW8vQztLQUNBdmtEO0tBQ0F1QztLQUNBbWlEO0tBQ0F2NUM7S0FDQTg1QztLQUNBQztLQUNBaDdCO0tBQ0E0N0I7O2FBZ0pJeGpELE9BQU95akQsSUFBSyw0QkFBTEEsSUFBNEI7YUFDbkN2ekMsT0FBT3haO0tBQ0MsSUFBTmlvQixNQUZGM2U7S0FHRixXQW5KRndqRCxhQWtKTTdrQyxLQURLam9CO0tBRVQsT0FESWlvQjtJQUVEO0lBVlA7WUFNTTNlO1lBbktKbXFCO1lBQ0E2QztZQUNBdmM7WUFDQTJUO1lBQ0FjO1lBQ0F0aEI7WUFDQTJKO1lBQ0FDO1lBQ0ErMUM7WUFDQTMyQztZQUNBL0o7WUFDQW8vQztZQUNBdmtEO1lBQ0F1QztZQUNBbWlEO1lBQ0F2NUM7WUFDQTg1QztZQUNBQztZQUNBaDdCO1lBQ0E0N0I7WUFpSkl0ekM7O1lBYUpqRixLQUFLbFcsR0FBSSw2QkFBSkEsR0FBZ0M7WUFDckMydUQsV0FBV3owQyxJQUFHQyxJQUFHbmEsR0FBSSxpQkFBVmthLElBQUdDLE9BQUduYSxHQUErQjtZQUNoRDR1RCxZQUFZeEYsTUFBS3BwRCxHQUFJLDBCQUFUb3BELE1BQUtwcEQsR0FBbUM7WUFFcEQ4dEQsVUFBVWpsQyxHQUFFNjFCO0lBQ2QsWUFEWTcxQjtjQUVQLG1CQUZPQSxNQUFFNjFCLFFBQUY3MUI7Y0FHUDtHQUFvRDtZQUV2RHdHLElBQUl4RyxHQUFFNjFCLEtBQUlsckI7SUFDWjtLQUFJN3hCLElBTkZtc0QsVUFLSWpsQyxHQUFFNjFCO0tBRUpxUCxhQUZJclAsS0FBSWxyQix1QkFBTjNLLE1BQ0ZsbkI7SUFFSixpQkFITWtuQixNQUNGbG5CLFlBQ0Fvc0Q7SUFGRWxsQzs7aUJBNVdKcVAsT0F1V0E0MUIsV0FLSWpsQztHQUt1RDtZQWUzRHNILE9BQU90SCxHQUFFNjFCO0lBQ1g7S0Fkc0IvOEMsSUFacEJtc0QsVUF5Qk9qbEMsR0FBRTYxQjtLQUVpQixxQkFGbkI3MUIsTUFiYWxuQjtLQUFNakY7S0FHMUJIOztnQkFERTtTQUNTODNCLElBQVg5M0IsU0FBY3lRLE9BQWR6UTtLQUNLLHNCQURNODNCLEdBVUZxcUI7TUFBRjcxQjthQWJtQm5zQjs2QkFHWnNRO2tDQVVQNmIsTUFiYWxuQixZQUdOcUw7O1NBSFl0USxTQUcxQkgsYUFBY3lROztHQVlzQjtZQVFwQzZCLEtBQUtnYSxHQUFFNjFCO0lBQ1QsSUFBYyxNQXBDWm9QLFVBbUNLamxDLEdBQUU2MUIsTUFDSCx5QkFEQzcxQjtnQkFFSTtRQUNBbWxDLGVBQVN4NUIsZUFBU3k1QjtJQUN0QixzQkFKRXZQLEtBR0VzUCxLQUNvQixPQURYeDVCO1NBQVN5NUIsT0FHZDtRQUNBQyxLQUpjRCxVQUlMeDVCLEtBSkt3NUIsVUFJSUUsUUFKSkY7SUFLbEIsc0JBUkZ2UCxLQU9Nd1AsS0FDb0IsT0FEWHo1QjtTQUFTMDVCLE9BR2Q7UUFDQUMsS0FKY0QsVUFJTEUsS0FKS0YsVUFJSUcsUUFKSkg7SUFLbEIsc0JBWk56UCxLQVdVMFAsS0FDb0IsT0FEWEM7Z0JBQVNDOztpQkFmakM7U0FDT2o2QixjQUFHYixpQkFBTXhtQjtLQUNiLHNCQUVFMHhDLEtBSEVycUIsSUFDbUIsT0FEaEJiO2lCQUFNeG1COztHQWU2QztZQVEvRHdMLFNBQVNxUSxHQUFFNjFCO0lBQ2IsSUFBYyxNQXhEWm9QLFVBdURTamxDLEdBQUU2MUIsTUFDUCx5QkFESzcxQjtnQkFFQTtRQUNBbWxDLGVBQVN4NUIsZUFBU3k1QjtJQUN0QixzQkFKTXZQLEtBR0ZzUCxLQUNvQixXQURYeDVCO1NBQVN5NUIsT0FHZDtRQUNBQyxLQUpjRCxVQUlMeDVCLEtBSkt3NUIsVUFJSUUsUUFKSkY7SUFLbEIsc0JBUkV2UCxLQU9Fd1AsS0FDb0IsV0FEWHo1QjtTQUFTMDVCLE9BR2Q7UUFDQUMsS0FKY0QsVUFJTEUsS0FKS0YsVUFJSUcsUUFKSkg7SUFLbEIsc0JBWkZ6UCxLQVdNMFAsS0FDb0IsV0FEWEM7Z0JBQVNDOztpQkFmakM7U0FDT2o2QixjQUFHYixpQkFBTXhtQjtLQUNiLHNCQUVNMHhDLEtBSEZycUIsSUFDbUIsV0FEaEJiO2lCQUFNeG1COztHQWVzRDtZQUV4RXlMLFNBQVNvUSxHQUFFNjFCO2FBQ0w2UDtLQUFpQjs7b0JBRXJCO1VBQ09sNkIsZ0JBQUdiLG1CQUFNeG1CO01BQ2Isc0JBRElxbkIsR0FKRXFxQixNQU1KLFdBRktsckIsTUFITis2QixlQUdZdmhEOzs7SUFHUTtJQUNMLFVBN0VyQjhnRCxVQXFFU2psQyxHQUFFNjFCO0lBUUUsT0FQUDZQLGdDQURHMWxDO0dBUTRCO1lBVXJDMmxDLFFBQVEzbEMsR0FBRTYxQixLQUFJbHJCO0lBQ2hCLElBQUk3eEIsSUF4RkZtc0QsVUF1RlFqbEMsR0FBRTYxQixNQUVSaDlDLHFCQUZNbW5CLE1BQ05sbkIsV0FOR2dKLE9BT0hqSjs7UUFQR2lKO1VBQU0wcEIsSUFBTjFwQixTQUFTcUMsT0FBVHJDO01BQ0Esc0JBRE0wcEIsR0FLRHFxQixVQUxML3pDLE9BQVNxQztNQUFUckMsVUFLSyt6QztNQUxML3pDLFVBS1M2b0I7Ozs7O0tBR2I7TUFDRCxpQkFKUTNLLE1BQ05sbkIsZ0JBRFErOEMsS0FBSWxyQixNQUVaOXhCO01BRk1tbkI7O2NBTW1DLE9BcGMzQ3FQLE9BdVdBNDFCLFdBdUZRamxDOzs7Ozs7O0dBT1A7WUFFRGhSLElBQUlnUixHQUFFNjFCO0lBQ1IsSUFLc0IsTUF0R3BCb1AsVUFnR0lqbEMsR0FBRTYxQiwrQkFBRjcxQjtJQUNrQjtpQkFFcEI7O01BQ093TDtNQUFHcm5CO2tCQUNWLGFBRE9xbkIsR0FKSHFxQjs7aUJBSU0xeEM7O0dBRXdCO1lBRXBDNmxCLFFBQVFqSixLQUFJam9COztLQUNMLElBQVEzQyxjQUFGcTFCO0tBQVEsT0FwR3JCaEYsSUFtR1F6RixLQUNLeUssR0FBRXIxQjtJQUFrQjtJQUFuQyxzQ0FEYzJDO0dBQ3VCO1lBRW5DOHNELFlBQVk3a0MsS0FBSWpvQjs7S0FDVCxJQUFRM0MsY0FBRnExQjtLQUFRLE9BckJyQm02QixRQW9CWTVrQyxLQUNDeUssR0FBRXIxQjtJQUFzQjtJQUF2QyxzQ0FEa0IyQztHQUN1QjtZQUV2Q3daLE9BQU94WjtJQUNDLElBQU5pb0IsTUE1aEJGM2U7SUF3aEJBd2pELFlBSUU3a0MsS0FES2pvQjtJQUVULE9BRElpb0I7R0FFRDtZQUVEaWxDLFFBQVU3a0MsS0FBc0JuQjtJQUNsQyxHQURZbUIsU0FBU0UsTUFBVEYsaUJBQVNFLGNBQVRpaUMsU0FsakJWTjtJQW1qQk0sSUFBSmhzRCxJQXRpQkVvc0Qsa0JBcWlCNEJwakM7SUFFbEMsR0FGWXNqQzs7eUJBN2lCVkg7Ozs7O01BK2lCRTVDLE9BQ2E7O1NBRGJBLFlBRjhCdmdDO0lBTXpCO2dCQU55QkEsc0JBQzlCaHBCO0tBS0F5dUIsVUFOOEJ6RixNQVF6QixlQVBMaHBCLE9BQ0F1cEQ7V0FJQTk2QjtXQU44QnpGOztJQXRmaEMwakM7b0IxQ25ITCxPMENzZkt1QixVQXlIRXgvQjtJQU1KLE9BTklBO0dBT0Y7Ozs7T0E3aUJBcmpCO09BS0FtcUI7T0FNQTZDO09BMkJBdmM7T0E0WUEyVDtPQThCQXhnQjtPQW9CQTJKO09BY0FDO09BMkJBWjtPQXZFQXNZO09BOERBcStCO09BbmJBMWdEO09Bc0NBby9DO09BYUF2a0Q7T0E1RkF1QztPQXhEQTRnRDtPQUNBQztPQStpQkE4QztPQTVYQXhCO09BZ0JBdjVDO09BZUE4NUM7T0FFQUM7T0FnVkFoN0I7T0FHQTQ3QjtPQUdBdHpDOzs7T0FsSEFqRjtPQUVBMDRDO09BREFEOzs7O0UxQ25mTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WTRDdUJLL2pELEdBQUc1SyxHQUFJLE9BQUpBLEVBQUs7R0FvRUM7OztJQTBuQkxzYjtJQTVxQkZ5MUM7WUFpTEZDLFdBQVdubkMsT0FBTW9uQztJQUFOcG5DLHdCQUFNb25DOzhDQUFOcG5DO0dBRWlCO09BNEI1QnFuQztZQUdBQyxpQkFBaUJ0bkMsT0FBTWhxQjtJQUFJLGtCQUFWZ3FCLFdBQU1ocUI7R0FBNkM7WUFDcEV1eEQsa0JBQWtCdm5DLE9BQVEsa0JBQVJBLGNBQStCO1lBS2pEd25DLGVBQWV4bkMsT0FBTUwsTUFBSzhuQztJQUFYem5DLHNCQUFNTDtJQU5yQjJuQyxpQkFNZXRuQyxPQUFXeW5DO0lBQVh6bkM7O0dBR1k7WUFHM0IwbkMsY0FBYzFuQyxPQUFNaHFCO0lBQ25CLHdDQURtQkE7SUFDbkIsY0FQRHd4RCxlQU1jeG5DLDZCQUFNaHFCO0dBQ2tDO1lBR3REMnhELGVBQWUzbkMsY0FBOEJxUztRQUFQcUUsa0JBQVJ6SCxtQkFBUjBIO0lBSnRCK3dCLGNBSWUxbkMsT0FBTzJXO0lBZnRCNHdCLGtCQWVldm5DOztJQU1DO0tBRmQrcUIsVUFKYS9xQixXQUE4QnFTLGFBQWZwRDtLQU01QjI0QixjQUFjLDJCQU5ENW5DLFVBSWIrcUI7SUFKYS9xQixZQU1iNG5DO0lBTmE1bkM7UUFiUXBxQixJQWFSb3FCO0lBYlksV0FhWkEsV0FiUXBxQjtJQXNCekIsT0FiRTh4RCxjQUllMW5DLE9BQXVCMFc7O1lBY3RDbXhCLFdBQVc3bkMsT0FBTXFTO0lBQVEsT0FkekJzMUIsZUFjVzNuQyxZQUFNcVM7R0FBOEM7WUFHL0R5MUIsZ0JBQWdCOW5DO1FBQXNCMFcsa0JBL0JmckUsa0JBK0JBc0U7SUFyQnZCK3dCLGNBcUJnQjFuQyxPQUFPMlc7SUFBUDNXLHNCQS9CT3FTO0lBQUksV0ErQlhyUyxXQS9CT3FTO0lBa0N6QixPQXhCRXExQixjQXFCZ0IxbkMsT0FBc0IwVzs7WUFvQ3RDcXhCLGdCQUFnQi9uQyxPQUFNZ29DO0k1Q2hVM0I7OztRNEM0VmlCLDBDQTVCSWhvQztzQkE2Qk47UUFFUjtTQURjaW9DO1NBQ05DO29CQUFRdHlELEdBRVp1eUQ7WTVDaldYLEs0Q2lXV0EsSUFETSxXQURNdnlEO2dCQUVQaUMsSUFBTHN3RDtZQUFtQiw2QkFGUHZ5RCxHQUVaTzswQkFGWVAsR0FFWnV5RDs2QkFGSUQsUUFBUXR5RCxHQUVQaUM7O1FBSEtvd0QsVUFDTkMsUUEvQk1sb0MseUJBOEJBaW9DOzs7UUFYaEIsNEJBbkJnQmpvQyxXQW1CaEI7O1FBTUEsNEJBekJnQkEsV0F5QmhCOztRQWlDWSwwQ0ExRElBO3NCQTJETixPQS9IVnVuQyxrQkFvRWdCdm5DO1lBNERQOG1CO1FBQWEsT0FuR3RCK2dCLFdBdUNnQjduQyxPQTREUDhtQjs7bUJBNURPOW1COztRQWRaLDBDQWNZQTtzQkFiUjtrQ0FDREwsbUJBQU10ZTtRQVlHMmUsd0JBWkgzZTtRQVlHMmUsc0JBWlRMOzs7UUErR00sMENBbkdHSztzQkFvR0w7UUFFSyxJQURSb29DLHVCQUNEQyxTQUFTLFdBdEdBcm9DLFdBcUdSb29DO1FBRUwsT0E1S0hkLGlCQXFFZ0J0bkMsT0FzR1Rxb0M7Ozs7V0FwR0NyeUQsY0FDUixPQWxFQXd4RCxlQStEZ0J4bkMsT0FBTWdvQyxRQUVkaHlEOztPQWtFUjtRQURpQnN5RDtRQUFOQztRQUNDQyxNQURLRjtRQUNiM3hCLFNBRGEyeEI7UUFFTCxzQ0FyRUl0b0M7cUJBc0VOOzs7UUFDUzR1QjtRQUFWNlo7T0FDUCxPQURPQTs7VUFrQk0sT0E3SGZYLGdCQW9DZ0I5bkMsT0FtRUx1b0M7O1VBcUJJLE9BN0lmWixlQXFEZ0IzbkMsT0FtRUNzb0MsUUFJRTFaOztVQWVILE9BM0loQitZLGVBcURnQjNuQyxPQW1FQ3NvQyxRQUlFMVo7O2lCQXZFSDV1QixZQUFNZ29DLCtCQW9FbEJyeEI7b0JBekhKZ3hCLGVBcURnQjNuQyxPQW1FQ3NvQyxRQUlFMVo7b0JBM0duQmtaLGdCQW9DZ0I5bkMsT0FtRUx1b0M7O2lCQW5FS3ZvQztvQkFwQ2hCOG5DLGdCQW9DZ0I5bkMsT0FtRUx1b0M7b0JBbkVLdm9DOzt1QkFBTWdvQywrQkFvRWxCcnhCO3NCQXpISmd4QixlQXFEZ0IzbkMsT0FtRUNzb0MsUUFJRTFaO3dCQXZFSDV1Qjs7d0JBdUVHNHVCOzt3QkFIUDRaOzt3QkFwRUl4b0M7d0JBckRoQjJuQyxlQXFEZ0IzbkMsT0FtRUNzb0MsUUFJRTFaO3dCQTNHbkJrWixnQkFvQ2dCOW5DLE9BbUVMdW9DO2tCQW9CSSxPQTNIZlQsZ0JBb0NnQjluQyxPQW1FTHVvQzs7O09BNUJDO1FBRkVHO1FBQUg5eUQ7UUFDUCt5RCxrQkF0Q1kzb0M7UUF1Q0osc0NBdkNJQTtxQkF3Q047T0FFUixJQURjNG9DLHdCQUNkLFVBRGNBOztZQUlWQyw4QkFKVUQ7UUFLSzs7Y0FDSHYzQyxtQkFBUnkzQzthQVROSCxrQkFTTUcsb0JBQVF6M0M7cUJBQVJ5M0M7OztxQkFGSkQ7YUFIQUU7Ozs7O2tCQUpGSjtXQWFFMTVCLFNBVEE4NUIsTUFKRko7T0FjRixZQURJMTVCO2lCQXZGTjY0QixnQkFvQ2dCOW5DLGtCQW1EVmlQLFNBZEtyNUI7aUJBMUZYK3hEO2tCQXFEZ0IzbkMsa0JBMENWK29DLE1BTFFMLG1CQXJDRTFvQzs7O1FBS0R2dUI7UUFBTHUzRDtRQUNOQyxvQkFOWWpwQztxQkFNWmlwQztRQS9CQSx3Q0F5QllqcEM7O2lDQXZCQ3FTLG9CQUFWNFk7WUF1QlNqckIsV0F2QkNxUyxjQUFWNFk7VUFoQlA0YyxXQXVDZ0I3bkMsT0F2QkNxUzs7O1NBN0NqQmsxQixrQkFvRWdCdm5DOztPQVdoQjtRQURJa3BDLFVBVllscEMsV0FLTmdwQztRQU1ORyxtQkFOVzEzRCxTQUxDdXVCLFdBQU1nb0MsU0FLUHYyRDtPQVdmLHVDQUxJMDNELFlBREFELFVBVllscEM7O1dBcUJOb3BDO09BQ1YsbUNBRFVBLE1BckJNcHBDOztPQThGRjtRQUREcXBDO1FBQ1JDLFdBQVMsV0E5RkV0cEMsV0E2RkhxcEM7T0FsS2IvQixpQkFxRWdCdG5DLE9BOEZYc3BDOzBDQURRRCxZQTdGR3JwQzs7O1lBOEdadXBDLGFBQWF2cEM7SUFDbkI7S0FBTSx3Q0FEYUE7aUJBRVQ7S0FHTDs7TUFGSUw7TUFBYXRlO01BQVArbEQ7TUFDVG9DLGdCQUpheHBDO01BS2QsWUFGSUw7TUFFSixnQkFMY0ssWUFJYndwQztnQkFDRDtLQUNELDRCQU5leHBDO0tBT0QsSUFBVmdvQyxjQUpDcm9DLGNBekxQMG5DO0tBd0VBVSxnQkE4R2lCL25DLE9BT1hnb0MsUUFKT1o7S0FISXBuQyxZQUdHM2UsU0FISDJlOztHQVdkO1lBSUh5cEMsZ0JBQWdCenBDLE9BQU15RDtJQW5PdEIwakMsV0FtT2dCbm5DLE9BQU15RDtJQUFNLE9BZnhCOGxDLGFBZVl2cEM7R0FBb0Q7WUFJcEUwcEMsa0JBQWtCMXBDLE9BQU1MLE1BQUszcEI7SUFDL0IsT0FMRXl6RCxnQkFJa0J6cEMsV0FBTUwsVUFBSzNwQixJQUFMMnBCO0dBQ2tEO1lBVzFFZ3FDLHNCQUFzQkM7SUFDeEIsNEJBRHdCQTtJQUVQLElBQWJDLGlCQXRhQTNDO0lBdWFKLDJDQURJMkMsYUFGb0JEO0dBR3dCO1lBVzlDRSxTQUFTOXBDLE9BQU12dUI7SUFDWCx3Q0FES3V1QjtnQkFFRDtJQUVSOztLQURtQjZwQztLQUFaRTtLQUNIcHFDLE9BRGVrcUM7T0FBWkUsYUFIRS9wQyxrQkFkVDJwQyxzQkFjUzNwQztlQUdVNnBDOzs7OztvQkFISnA0RDs7O2VBR0lvNEQ7O2dCQUhWN3BDLFlBSUxMO2NBY0UsNEJBbEJHSzs7O1FBa0JIOzs7OztXQWxCU3Z1QjtlQUdJbzREOztnQkFIVjdwQyxZQUlMTDtjQVNFLDRCQWJHSzs7Y0FBTXZ1QjtRQWFUOztJQVNGO0dBQUU7WUFLTnU0RCxVQUFVaHFDLE9BQU16b0IsR0FBRTZ2RDtJQTVSbEJELFdBNFJVbm5DLE9BQVFvbkM7T0FBRjd2RCxHQTNCaEJ1eUQsU0EyQlU5cEM7SUFHRCxJQUFQaXFDLFdBSFFqcUMsV0FBUW9uQztJQUlwQixtQ0FESTZDLE1BSFFqcUM7R0FJdUI7WUFNakNrcUMsZ0JBQWdCbHFDLE9BQU0rcUIsUUFBT29mO0lBQWJucUM7O0tBSUwsSUFEUEwsU0FIWUssZUFJWmlxQyxXQURBdHFDLFVBSGtCb3JCLFFBQU9vZjtLQUs3QixPQWZBSCxVQVVnQmhxQyxVQUlaaXFDOztlQUpZanFDOztRQTNES2hxQixJQTJETGdxQjtJQTFEbEIsT0FMRTBwQyxrQkErRGdCMXBDLDZCQTNES2hxQjtHQWtFb0I7WUFPekNvMEQsYUFBYXBxQztJQUNmLGVBRGVBOzs7TUFwVGJtbkMsV0FvVGFubkMsV0F1TVR2TztNQTFQSnE0QyxTQW1EYTlwQztNQW5EYjhwQyxTQW1EYTlwQzs7Ozs7Ozs7R0FTWjtZQUlEcXFDLGFBQWFycUMsT0FBTW9vQztJQUNyQixHQURlcG9DO0tBR2IsNEJBSG1Cb29DLFVBQU5wb0M7S0FJYixXQUphQSxXQUFNb29DOztlQUFOcG9DOztJQU9ELElBQVJvbkMsWUFQZWdCO0lBUUYsT0F6VWpCakIsV0FpVWFubkMsV0EwTFR2TyxNQW5MQTIxQztHQUNvRDtZQUl4RGtELGNBQWN0cUM7SUFDaEIsR0FEZ0JBLFdBN1VkbW5DLFdBNlVjbm5DLFdBOEtWdk87ZUE5S1V1Tzs7S0FJUix3Q0FKUUE7O1VBTVBvb0M7TUFDTCxrQkFQWXBvQyxXQU1Qb29DOzs7Ozs7SUFERztHQUV5QjtZQUVuQ21DLFlBQVl2cUMsT0FBTWhxQjtJQUFJLE9BckJ0QnEwRCxhQXFCWXJxQyx1QkFBTWhxQjtHQUFxQztZQUN2RHcwRCxhQUFheHFDLGNBQVcsT0FWeEJzcUMsY0FVYXRxQyxVQUFpQztZQUU5Q3lxQyxrQkFBa0J6cUMsT0FBTXpvQixHQUFOeW9CLFlBQU16b0IsWUFBNEI7WUFDcERtekQsaUJBQWlCMXFDLE9BQU16b0IsR0FBTnlvQixZQUFNem9CLFlBQTJCO1lBQ2xEb3pELGtCQUFrQjNxQyxjQUFXLE9BQVhBLFVBQThCO1lBQ2hENHFDLGlCQUFpQjVxQyxjQUFXLE9BQVhBLFVBQTZCO1lBQzlDNnFDLFlBQVk3cUMsT0FBTXpvQjtJQUpsQmt6RCxrQkFJWXpxQyxPQUFNem9CO0lBQ3BCLE9BSkVtekQsaUJBR1kxcUMsT0FBTXpvQjtHQUMrQjtZQUlqRHV6RCwrQkFBZ0M5cUM7SUFBVyxXQUFYQTtHQUtuQztZQUdHK3FDLCtCQUFnQy9xQztRQUlaZ3JDLGdCQUREQyxnQkFEQUMsZ0JBRERDO0lBRGNuckMsWUFDZG1yQztJQURjbnJDLFlBRWJrckM7SUFGYWxyQyxZQUdiaXJDO0lBSGFqckMsWUFJWmdyQzs7O1lBU3BCSSxTQUFTcHJDOzs7O0lBcElUMnBDLHNCQW9JUzNwQztJQUdYLDRCQUhXQTtJQUlYLDRCQUpXQTtJQUtYLDRCQUxXQTtJQU1YLDRCQU5XQTs7OztJQXRFZSxPQVh4QmtxQyxnQkFpRlNscUM7R0FVVTtZQU9uQnFyQyxlQUFlcnJDLE9BQU16b0I7SUFDdkIsV0FEaUJ5b0I7eUJBSkksT0E3Q25Cd3FDLGFBaURleHFDLFVBSnlCO0lBQS9CO0lBT1Q7WUFIZUEsV0FwRmZvcUMsYUFvRmVwcUM7aUJBMVdmcW5DO0tBc0xJa0MsYUFvTFd2cEM7UUFBTXpvQixHQXRXckJnd0Qsa0JBc1dldm5DO0tBT1AsT0F4QlJvckMsU0FpQmVwckM7O0dBUUg7WUFTWnNyQyxpQkFBaUJ0ckMsT0FBTUwsTUFBSzNwQjtJQUM5QixXQURtQmdxQjtrQkFsTGpCMHBDLGtCQWtMaUIxcEMsT0FBTUwsTUFBSzNwQjtHQUVLO1lBR2pDdTFELFlBQVl2ckMsT0FBTXdyQyxPQUFNeDFEO0lBQzFCLE9BTkVzMUQsaUJBS1l0ckMsT0FBTXdyQyxPQUFNeDFEO0dBQ2tCO1lBRzFDeTFELGdCQUFnQnpyQyxPQUFNaHFCO0lBQ3hCLE9BTEV1MUQsWUFJZ0J2ckMsNkJBQU1ocUI7R0FDYTtZQUVuQzAxRCxlQUFlMXJDLE9BQU1ocUI7SUFDdkIsT0FSRXUxRDthQU9ldnJDOzBDQUFNaHFCO2FBQ1ksNEJBRFpBO0dBQytCO1lBR3BEMjFELGFBQWEzckMsT0FBTWxvQjtJQUFJLE9BUHZCMnpELGdCQU9henJDLE9BQWdDLDJCQUExQmxvQjtHQUEyQztZQUc5RDh6RCxlQUFlNXJDLE9BQU1ockI7SUFBSSxPQVZ6QnkyRCxnQkFVZXpyQyxPQUFnQyx1QkFBMUJockI7R0FBNkM7WUFHbEU2MkQsY0FBYzdyQyxPQUFNem9CO0lBQUksT0FieEJrMEQsZ0JBYWN6ckMsT0FBZ0MsdUJBQTFCem9CO0dBQTRDO1lBR2hFdTBELGNBQWM5ckMsT0FBTXBuQjtJQUN0QixPQXJCRTJ5RCxZQW9CY3ZyQyxVQUNJLGdDQURFcG5CO0dBQ2U7WUFJbkNtekQsYUFBYS9yQyxjQUFXLE9Bakp4QmtxQyxnQkFpSmFscUMsYUFBMEM7WUFDdkRnc0MsYUFBYWhzQyxPQUFNK3FCO0lBQVMsT0FsSjVCbWYsZ0JBa0phbHFDLE9BQU0rcUI7R0FBNkM7WUFFaEVraEIsY0FBY2pzQyxPQUFNK3FCO0lBQVMsT0FwSjdCbWYsZ0JBb0pjbHFDLE9BQU0rcUI7R0FBOEM7WUFDbEVtaEIsZUFBZWxzQyxPQUFNK3FCO0lBQVMsT0FySjlCbWYsZ0JBcUplbHFDLE9BQU0rcUI7R0FBK0M7WUFDcEVvaEIsWUFBWW5zQyxPQUFNK3FCO0lBQVMsT0F0SjNCbWYsZ0JBc0pZbHFDLE9BQU0rcUI7R0FBNEM7WUFXOURxaEIsaUJBQWlCcHNDO0lBL0RqQnFyQyxlQStEaUJyckM7SUFDbkIsa0JBRG1CQTtHQUM2QjtZQUM5Q3FzQyxlQUFlcnNDO0lBakVmcXJDLGVBaUVlcnJDO0lBQ2pCLGtCQURpQkE7R0FDZ0M7WUFJL0Nzc0MsaUJBQWlCdHNDO0lBQ25CLFdBRG1CQTtrQkEzT2pCeXBDLGdCQTJPaUJ6cEMsV0E2Q2J2TztHQTNDc0U7WUFJMUU4NkMsb0JBQW9CdnNDO0lBQ3RCLFdBRHNCQTtrQkFqUHBCeXBDLGdCQWlQb0J6cEMsV0F1Q2hCdk87R0FwQ3FEO1lBS3pEKzZDLHNCQUFzQnhzQyxPQUFPdW9DLE1BQU1EO0lBQ3JDO0tBQW1CNXhCLFFBRFk2eEI7S0FDbkJsMkIsUUFEbUJrMkI7S0FDM0I1eEIsU0FEMkI0eEI7WUFBUHZvQzs7SUFJRDtLQURqQkwsU0FIa0JLO0tBSWxCb25DLFlBSnlCbUIsTUFBTUQ7S0FLL0JqbkQ7OEJBSkZzMUIsVUFBUXRFO1NBSVYsc0JBSmlCcUU7O0tBS2J1ekIsV0FIQXRxQyxNQUNBeW5DLE9BQ0EvbEQ7SUFFSixPQXZNQTJvRCxVQWdNc0JocUMsVUFNbEJpcUM7R0FDcUI7WUFNekJ3QyxlQUFlenNDLE9BQU1xUyxPQUFNcEQ7SUFDN0IsT0FkRXU5QjthQWFleHNDLGtCQUFNcVMsMEJBQU1wRDtHQUVtQjtZQVE5Q3k5QixlQUFlMXNDLGNBQVcsT0FWMUJ5c0MsZUFVZXpzQyxhQUFtQztZQUNsRDJzQyxhQUFhM3NDLGNBQVcsT0FYeEJ5c0MsZUFXYXpzQyxhQUFtQztZQUloRDRzQyxhQUFhNXNDOzs7O0lBSUYsSUFBUGlxQyxXQURBeDRDO0lBRUosT0ExUkFnNEMsZ0JBcVJhenBDLE9BSVRpcUM7R0FDc0I7WUFJMUI0QyxjQUFjN3NDO0lBQ2hCLGVBRGdCQTs7OztNQUlGLElBQVBpcUMsV0FWRHg0QztNQXhSSmc0QyxnQkE4UmN6cEMsT0FJVGlxQztNQUpTanFDOzs7Ozs7Ozs7R0FPYjtZQUlEOHNDLGdCQUFnQjlzQyxPQUFNcVMsT0FBTXBEO0lBQzlCLFdBRGtCalA7O0lBR0wsSUFEUEwsU0FGWUssZUFHWmlxQyxXQURBdHFDLFVBRmtCMFMsT0FBTXBELFNBQU5vRDtJQUl0QixPQXBQQTIzQixVQWdQZ0JocUMsVUFHWmlxQztHQUNxQjtZQUd6QjhDLGFBQWEvc0MsY0FBVyxPQVB4QjhzQyxnQkFPYTlzQyxhQUFvQztZQUVqRGd0QyxXQUFXaHRDO0lBQ2IsV0FEYUE7O0lBRUEsSUFBUGlxQyxXQTVCQXg0QztJQTZCSixPQXJUQWc0QyxnQkFrVFd6cEMsT0FFUGlxQztHQUNzQjtZQVUxQmdELGlCQUFpQmp0QyxPQUFNcHFCO0lBQUksZUFBSkEsMEJBQU5vcUIsWUFBTXBxQjs7R0FBeUM7WUFHaEVzM0QsaUJBQWlCbHRDLGNBQVcsT0FBWEEsVUFBNkI7WUFFOUNtdEMsa0JBQWtCbnRDLGNBQVcsT0FBWEE7R0FBbUQ7WUFHckVvdEMscUJBQXFCcHRDLE9BQU1ocUIsR0FBTmdxQixZQUFNaHFCLFlBQTBCO1lBQ3JEcTNELHFCQUFxQnJ0QyxjQUFXLE9BQVhBLFVBQTRCO1lBSWpEc3RDLFNBQVMxM0QsR0FDWCxPQURXQSxnQ0FDb0M7WUFlN0MyM0Qsa0JBQWtCdnRDLE9BQU1wWjtJQUMxQixlQUQwQkE7O1FBWElDLE1BV1ZtWixXQUFNcFoscUJBWElDOztJQUVwQixJQUFKalIsSUFQSjAzRCxTQUs0QnptRDtJQVdWbVosV0FUZHBxQjtJQVNjb3FCO0lBTmxCLE9BbE1Bb3JDLFNBd01rQnByQztHQUUrQjtZQUdqRHd0QyxrQkFBa0J4dEMsY0FBVyxPQUFYQSxTQUE4QjtZQUVoRHl0QyxjQUFjenRDLE9BQU1wcUI7SUFDdEIsZ0JBRHNCQTs7SUFFWixJQUFKZ1IsTUF6QkowbUQsU0F1Qm9CMTNEO0lBQU5vcUIsV0FFVnBaO09BRlVvWjtTQUlWMHRDLGlCQUpVMXRDOztLQVdIOzttQ0FYR0E7TUFJVjB0QyxpQkFPRDtJQUdILE9BckJBSCxrQkFPY3Z0QyxPQUlWMHRDO0dBVWtDO1lBTXRDQztRQUFtQkMsbUJBQVFDO0lBQzdCLFlBRDZCQSxhQUFSRCxVQUFRQzs7WUFPM0JDLGVBQWVDO0lBQ2pCLGFBUkVKLGtCQU9lSTtHQUdDO1lBRWhCQyxjQUFjaHVDLGNBQVcsT0FBWEEsU0FBMEI7WUFFeENpdUMscUJBQXFCanVDO1FBQU80dEMsbUJBQVFDO0lBbENwQ0osY0FrQ3FCenRDLE9BQU80dEM7SUF6QzVCTCxrQkF5Q3FCdnRDLE9BQWU2dEM7SUFFdEM7O1lBR0VLLGdCQUFnQmx1QyxPQUFPNnRDLFlBQVlEO0lBQ3JDO0tBQUlHLGVBRHFCRixZQUFZRDtLQUUvQixRQXJCSkQsa0JBb0JFSTt1QkFLRixPQVhBRSxxQkFLZ0JqdUMsT0FDZCt0QztJQUdzQjtLQURsQnZzRDtLQUNrQiwwREFEbEJBO0lBQ047R0FFbUM7WUFFbkMyc0QscUJBQXFCbnVDLE9BQU82dEMsWUFBWUQ7SUFDM0IsSUFBWEcsZUFEMEJGLFlBQVlEO2lCQTNCeENELGtCQTRCRUk7Y0FkRkUscUJBYXFCanVDLE9BQ25CK3RDOztHQUtpQztZQUVuQ0ssZ0JBQWdCcHVDLGNBQ2xCLFdBRGtCQSxvQkFDMEQ7WUFFMUVxdUMsbUJBQW1CcnVDLE9BQU1vSztJQUNaLElBQVgyakMsV0FKRkssZ0JBR21CcHVDO0lBRU0sT0ExQnpCaXVDLHFCQXdCbUJqdUMsT0FFTSxXQUZBb0ssUUFDdkIyakM7R0FDd0M7WUFHMUNPLCtCQUErQnR1QztRQUtoQnBhLGNBREE5TixjQURDa25CLGNBREZ2RSxjQURDemxCO0lBRGdCZ3JCLFlBQ2hCaHJCO0lBRGdCZ3JCLFlBRWpCdkY7SUFGaUJ1RixZQUdmaEI7SUFIZWdCLFlBSWhCbG9CO0lBSmdCa29CLFlBS2hCcGE7OztZQVFmMm9ELCtCQUErQnZ1QztJQUFXLFdBQVhBO0dBTWxDO1lBSUd3dUMsK0JBQWtDeHVDLE9BQU1ockIsR0FBRXlsQixHQUFSdUYsWUFBTWhyQixHQUFOZ3JCLFlBQVF2RjtHQUNLO1lBRS9DZzBDLCtCQUFrQ3p1QyxjQUNwQyxXQURvQ0E7R0FDSztZQUl2QzB1QyxnQkFBZ0IxdUM7SUFBVyxrQkFBWEE7R0FBd0M7R0FHM0MsSUFBYjJ1QyxhQUFhO1lBQ1RDLGVBQWU1dUMsT0FBTXBxQjtJQUMzQixJQUQyQmdSO0lBQzNCO29CQUQyQkE7O21CQUVYLGtCQUZLb1osV0FEbkIydUMsZUFDeUIvbkQ7S0FJekIsV0FKbUJvWixXQURuQjJ1QztLQUtBLElBSnlCOW5EOztHQU14QjtZQVFEZ29ELDZCQUE2Qjd1QyxPQUFNOW1CO0lBQU44bUIsWUFDUix1QkFEYzltQjtJQUFOOG1CLDRCQUVFLE9BQWpDLHVCQUZxQzltQixJQUVJO0lBRlY4bUIsMkI1Q2g1QmxDLE80QzgzQkswdUMsZ0JBa0I2QjF1QzsrQjVDaDVCbEMsTzRDazRCUzR1QyxlQWN5QjV1QzsrQjVDaDVCbEMsTzRDazRCUzR1QyxlQWN5QjV1Qzs7R0FLWTtZQVF6Qzh1QztJQUEyQiw0QkFFdEI7SUFEaUIsSUFBWDk0RCxjQUFXLDhCQUFYQTtJQUFXO0dBQ2Y7WUFDUCs0RDtJQUE0Qiw0QkFFdkI7SUFEa0IsSUFBWi80RCxjQUFZLDhCQUFaQTtJQUFZO0dBQ2hCO1lBRVBnNUQsZ0M1Q3A2Qkw7WTRDcTZCS0MsaUM1Q3I2Qkw7WTRDeTZCS0Msa0JBQWtCbDZELEdBQUV5bEIsR0FBRXVFLEdBQUVsbkIsR0FBRThOO0lBRTVCO0tBQUl1cEQsV0FBVztLQUNYQyxjQW40QkFsSTtJQXE0QkosNEJBRklrSSxTQURBRDtJQUlhLElBQWJFLGFBQWE7SUFsZWYxRixzQkFrZUUwRjtJQUVKLG1DQUxJRCxVQUdBQztJQVVjOzs7S0FERDtLQURDO0lBSGxCO1lBTElBO1lBT2dCOzs7Ozs7Ozs7Ozs7Ozs7WUFiQXI2RDtZQUFFeWxCO1lBQUV1RTtZQUFFbG5CO1lBQUU4Tjs7O1lBWjFCa3BEO1lBR0FDO1lBSUFDO1lBQ0FDO1lBTUVFO0dBc0NIO1lBSUNHLDJCQUEyQkM7SUFDN0IsT0E3Q0VMO2FBNEMyQks7R0FNUjtZQUtuQkMsZUFBZXAyRCxRQUFPOEQ7d0I1Q2grQjNCOztJNENpK0JhO0tBQU51eUQ7T0F4REZQLGtCQXVEZTkxRCxRQUFPOEQsc0I1Q2grQjNCO0k0Q2krQk91eUQseUI1Q2orQlAsTzRDODNCS2YsZ0JBbUdFZTs2QjVDaitCUCxPNENrNEJTYixlQStGRmE7NkI1Q2orQlAsTzRDazRCU2IsZUErRkZhO0lBSUosT0FKSUE7R0FJRDtZQUlEQyx5QkFBeUJ4MkQ7eUJBQ3FCLE9BQWhELHVCQUQyQkEsSUFDNkI7SUFBbkIsT0FWbkNzMkQsZUFVYSx1QkFEWXQyRDtHQUM4QjtZQUl2RHkyRCxvQkFBb0JwNEQ7SUFDdEIsb0I1Qy8rQkg7STRDKytCMkMsT0FmdENpNEQsZUFlYSw4QkFET2o0RDtHQUN3QjtPQU01Q3E0RDtZQUNBQztJQUFvQixvQ0FEcEJEO0dBQ2dEO0dBR3ZDO0lBQVRFLFNBSEFEO0lBT0FFLGdCQXBCQUw7SUFxQkFNLGdCQXJCQU47SUFzQkFPLGdCQWpCQU4sb0JBV0FHO1lBYUFJLHVCQUF1QngxRCxLQUFJKzBEO0lBcGEzQnBFLGVBb2EyQm9FO0lBRXJCLElBQUp6NUQsSUFBSSw2QkFGaUIwRTtJQUd6Qiw2QkFIeUJBO0lBR3pCLE9BREkxRTtHQUVIO1lBSUNtNkQ7SUFBeUIsT0FSekJELHVCQWJBSixRQU1BRztHQWVvRTtZQTBCcEVHLG1DQUNGLGNBQWlDO1lBRS9CQyw2QkFBNkJDLDBCQUNHO1lBRWhDQywyQkFBMkJEO0lBQzdCLGtDQUQ2QkE7R0FDUTtZQUVuQ0UsNkJBQTZCRjtJQUNuQixJQUFSRyxRQUpGRiwyQkFHNkJEO0lBTjdCRCw2QkFNNkJDO0lBRS9CLE9BRElHO0dBRUM7WUFFSEMseUJBQXlCSixLQUFJSyxNQUFKTCxhQUFJSyxNQUFKTDtHQUN5QztZQUVsRU0sK0JBU2tCTjtJQUdaLFNBQUp0N0QsRUFQb0JnQixHQUFFOEIsR0FBRWxDO0tBQ0csT0FUN0I4NkQ7Y0FZa0JKLFNBSDBCLDhCQUR0QnQ2RCxHQUFFOEIsR0FBRWxDOztJQVFwQixTQUFKNmtCLFFBWEYsT0FMQWkyQyx5QkFZa0JKO0lBS1osU0FBSnR4QyxRQVZGLE9BUEEweEMseUJBWWtCSjtJQU1aLFNBQUp4NEQsRUFSb0JsQyxHQUNPLE9BWDdCODZELHlCQVlrQkosU0FGSTE2RDtJQVNoQixTQUFKZ1EsRUFQb0JoUSxHQUNPLE9BYjdCODZELHlCQVlrQkosU0FBSTE2RDtJQVF4QixPQWpLRXM1RCxrQkE0SkVsNkQsR0FDQXlsQixHQUNBdUUsR0FDQWxuQixHQUNBOE47R0FDdUI7R0FTYixTQUFaaXJELGdCNUNubENMLE80Q2lwQks5RSxhQTRXQWdFO0dBdUZZLFNBQVplLGdCNUNwbENMLE80Q2twQks5RSxhQTJXQStEO0dBd0ZhLFNBQWJnQixpQjVDcmxDTCxPNENvcEJLOUUsY0F5V0E4RDtHQXlGYyxTQUFkaUIsa0I1Q3RsQ0wsTzRDcXBCSzlFLGVBd1dBNkQ7R0EwRlcsU0FBWGtCLGU1Q3ZsQ0wsTzRDc3BCSzlFLFlBdVdBNEQ7R0EyRlksU0FBWm1CLGdCNUN4bENMLE80QzhnQks5RyxhQStlQTJGO0dBNEZXLFNBQVhvQixlNUN6bENMLE80Q2dqQks1RyxZQTZjQXdGO0dBNkZZLFNBQVpxQixnQjVDMWxDTCxPNENpakJLNUcsYUE0Y0F1RjtHQThGWSxTQUFac0IsZ0I1QzNsQ0wsTzRDMmhCS2hILGFBa2VBMEY7R0ErRmEsU0FBYnVCLGlCNUM1bENMLE80Q3VpQktoSCxjQXNkQXlGO0dBZ0dXLFNBQVh3QjtJNUM3bENMLE80Q3duQktoRyxZQXFZQXdFOztHQWlHZSxTQUFmNzBELG1CNUM5bENMLE80QzRuQkt1d0QsZ0JBaVlBc0U7R0FrR2MsU0FBZDUwRCxrQjVDL2xDTCxPNEMrbkJLdXdELGVBOFhBcUU7R0FtR1ksU0FBWjMwRCxnQjVDaG1DTCxPNENtb0JLdXdELGFBMFhBb0U7R0FvR2MsU0FBZDEwRCxrQjVDam1DTCxPNENzb0JLdXdELGVBdVhBbUU7R0FxR2EsU0FBYjkwRCxpQjVDbG1DTCxPNEM0b0JLNndELGNBaVhBaUU7R0FzR2EsU0FBYnlCLGlCNUNubUNMLE80Q3lvQkszRixjQW9YQWtFO0dBdUdjLFNBQWQwQjtJNUNwbUNMLE80Q21zQktoRixlQTBUQXNEOztHQXdHWSxTQUFaMkIsZ0I1Q3JtQ0wsTzRDOHNCSy9FLGFBK1NBb0Q7R0F5R2MsU0FBZDRCLGtCNUN0bUNMLE80QzZzQktqRixlQWdUQXFEO0dBMEdnQixTQUFoQjZCLG9CNUN2bUNMLE80Q3dxQkt0RixpQkFxVkF5RDtHQTJHYyxTQUFkOEIsa0I1Q3htQ0wsTzRDbXFCS3hGLGVBMFZBMEQ7R0E0R2dCLFNBQWhCeDBELG9CNUN6bUNMLE80Q2lxQks2d0QsaUJBNFZBMkQ7R0E2R21CLFNBQW5CK0I7STVDMW1DTCxPNEM4cUJLdkYsb0JBK1VBd0Q7O0dBK0dZLFNBQVpnQyxnQjVDNW1DTCxPNENrdEJLbkYsYUEyU0FtRDtHQWdIYSxTQUFiaUMsaUI1QzdtQ0wsTzRDMnRCS25GLGNBa1NBa0Q7R0FpSGUsU0FBZmtDO0k1QzltQ0wsTzRDc3VCS25GLGdCQXVSQWlEOztHQW1IVSxTQUFWbUMsYzVDaG5DTCxPNEMrdUJLbEYsV0E4UUErQztHQW9IWSxTQUFab0MsZ0I1Q2puQ0wsTzRDNnVCS3BGLGFBZ1JBZ0Q7R0FzSGEsU0FBYnFDLGlCNUNubkNMLE80Q2d5QkszRSxjQTZOQXNDO0dBdUhhLFNBQWJzQyxpQjVDcG5DTCxPNEM2L0JLdEM7R0F5SGlCLFNBQWpCdUM7STVDdG5DTCxPNEN5eEJLL0Usa0JBb09Bd0M7O0dBMEhpQixTQUFqQndDLHFCNUN2bkNMLE80QzYvQkt4QztHQTRIZSxTQUFmeUM7STVDem5DTCxPNEN1MEJLdEUsZ0JBc0xBNkI7O0dBNkhvQixTQUFwQjBDO0k1QzFuQ0wsTzRDKzBCS3RFLHFCQThLQTRCOztHQThIZSxTQUFmMkMsbUI1QzNuQ0wsTzRDdTFCS3RFLGdCQXNLQTJCO0dBK0hrQixTQUFsQjRDO0k1QzVuQ0wsTzRDMDFCS3RFLG1CQW1LQTBCOztHQWlJZ0IsU0FBaEI2QyxvQjVDOW5DTCxPNEM0dkJLM0YsaUJBaVFBOEM7R0FrSWdCLFNBQWhCOEMsb0I1Qy9uQ0wsTzRDNi9CSzlDO0dBbUlpQixTQUFqQitDO0k1Q2hvQ0wsTzRDaXdCSzNGLGtCQTRQQTRDOztHQXFJb0IsU0FBcEJnRDtJNUNsb0NMLE80Q293QkszRixxQkF5UEEyQzs7R0FzSW9CLFNBQXBCaUQsd0I1Q25vQ0wsTzRDNi9CS2pEO0dBeUlGLFNBREVrRDtJNUNyb0NMLE80Q2c1QktwRSw2QkE2R0FrQjs7R0E0SUYsU0FERW1EO0k1Q3hvQ0wsTzRDKzFCSzVFLCtCQThKQXlCOztHQThJRixTQURFb0Q7STVDMW9DTCxPNEM0MkJLNUUsK0JBaUpBd0I7O0dBaUpGLFNBREVxRDtJNUM3b0NMLE80Q3MzQks1RSwrQkF1SUF1Qjs7R0FtSkYsU0FERXNEO0k1Qy9vQ0wsTzRDeTNCSzVFLCtCQW9JQXNCOztHQXNKRixTQURFdUQ7STVDbHBDTCxPNENva0JLdkksK0JBeWJBZ0Y7O0dBd0pGLFNBREV3RDtJNUNwcENMLE80QzRqQkt6SSwrQkFpY0FpRjs7R0EwSkYsU0FERXlELG9CNUN0cENMLE80Q21qQksvSSxrQkEwY0FzRjtHQTRKRixTQURFMEQsb0I1Q3hwQ0wsTzRDNi9CSzFEO0dBOEpGLFNBREUyRCxtQjVDMXBDTCxPNENvakJLaEosaUJBeWNBcUY7R0FnS0YsU0FERTRELG1CNUM1cENMLE80QzYvQks1RDtHQWtLRixTQURFNkQsYzVDOXBDTCxPNEN1akJLL0ksWUFzY0FrRjtZQXdLSThELGNBQWdCMXpDLEtBQXVCMnpDLE1BQUtyRTtRQUE1QnNFOztLQUFrQyxHQUFsQ0E7VUFBUzF6QyxNQUFUMHpDLG1CQUFTMXpDOztVQUFUMnpDLFNBdmRwQnJIO0tBdWRzRCxjQUNoRDtTQUNMeDNEO3NCQUFNLGtCQUZvQzIrRCxNQUFLckUsS0FFL0N0NkQ7O0tBRUQsV0FKMkMyK0QsTUFBS3JFLEtBRS9DdDZEO0tBR0QsV0FMb0I2K0QsUUFBNEJ2RTtLQU1qQyxJQU5Ld0U7OztZQWlCcEJDLGFBQWUvekMsS0FBdUIyekMsTUFBS3JFLEtBQUkwRTtJQUNqRCxHQURpQmgwQyxTQUFTRSxNQUFURixpQkFBU0UsY0FBVDJ6QyxTQXhlZnJIO0lBeWVJLHlCQUQyQ3dIO2tCQUVwQztRQVYwQkMsb0JBVzNCdjFEO0lBQ1YsV0FKc0NpMUQsTUFBS3JFLEtBR2pDNXdEO1FBWDJCMEU7SUFDdkM7S0FBTSx1QkFEaUNBO2lCQUUxQjtTQUYwQkUsa0JBRzNCdE87S0FDVixXQUllNitELFFBQTRCdkU7S0FIM0MsV0FHc0NxRSxNQUFLckUsS0FMakN0NkQ7U0FIMkJvTzs7R0FhRDtZQUdwQzh3RCxjQUFjNUUsS0FBSXo1RDtJQUNwQixJQUFJc0QsNEJBRGdCdEQsSUFFaEJtSSxlQUNBQzthQUNBbEI7S0F0a0JGdXVEO09Ba2tCY2dFLEtBS00sOEJBTEZ6NUQsR0FFaEJtSSxTQUNBQyxXQURBRDtLQUNBQztLQURBRCxVQUNBQzs7SUFHeUI7O1FBSHpCQSxhQUZBOUU7Z0JBQ0E2RSxZQURBN0U7bUJBR0E0RDs7S0FLSSxvQ0FUWWxILEdBR2hCb0k7O01BQ0FsQjtNQTFoQkZvdkQsaUJBc2hCY21EOzsyQkFJWnZ5RCxVQXJmRnd2RCxlQWlmYytDLGVBR1pyeEQ7O0dBZ0J5QjtZQUUzQmsyRCxnQkFBa0JuMEMsS0FBdUIyekMsTUFBS3JFO0lBQU0sR0FBbEN0dkM7U0FBT0UsTUFBUEYsZUFBT0U7O1NBQVBoWCw0QkFBbUIsU0FBRTtJQUFhLFlBQzlDLGtCQURZQSxNQUE0Qm9tRDtRQUUzQ3Q2RDtJQUFLLGtCQUZpQzIrRCxNQUFLckUsS0FFM0N0NkQ7O1lBRUhvL0QsZ0JBQWlCcnFELElBQUlDLE9BQU1zbEQ7STVDdnRDaEMsdUI0Q3d0Q010NkQsY0FBSyxrQkFEVytVLElBQVV1bEQsS0FDMUJ0NkQ7UUFDR3VKO0lBQUssa0JBRll5TCxPQUFNc2xELEtBRXZCL3dEOztZQUVKODFELGdCQUFpQnIyRCxNQUFNQyxPQUFNcXhEO0k1QzN0Q2xDLHVCNEM0dENlNTNELGNBQUssa0JBREVzRyxNQUFZc3hELEtBQ25CNTNEO1FBQ0N4QztJQUFLLGtCQUZPK0ksT0FBTXF4RCxLQUVsQnA2RDs7WUFJWG8vRCxZQUFZcjdELFFBQU9zN0Q7SUFDckI7S0FBSWg2RCxNQUFNO0tBQ04rMEQsTUFyUEZFLG9CQW9QRWoxRDtJQUVKLFdBSGN0QixRQUVWcTJELEtBRmlCaUY7SUE5akJuQnJJLGVBZ2tCRW9EO0lBR00sSUFBTm4yRCxNQUFNLDZCQUpOb0I7SUFLSixZQURJcEI7Y0FFQyw2QkFORG9CLFFBSUFwQjtjQUNZLDZCQUxab0I7R0FNMkI7WUFhN0JpNkQsc0JBQXNCbEYsS0FBSXQ3RDtJQUFhLFVBQWJBOzs7UUFDRyxPQXh1QjdCaTJELGFBdXVCc0JxRjs7UUFFTyxPQXRzQjdCakYsYUFvc0JzQmlGOztRQUlPLE9BdGxCN0JwRCxlQWtsQnNCb0Q7O1FBS08sT0FsbEI3Qm5ELGlCQTZrQnNCbUQ7O1FBTU8sT0ExbEI3QnJELGlCQW9sQnNCcUQ7O1FBUU8sT0FqbkI3QjNELGNBeW1Cc0IyRDtnQkFTTyxPQWxuQjdCM0QsY0F5bUJzQjJEOztXQUFJdDdEOztXQUdUODZCLFNBSFM5NkIsZUFHaEJrK0IsUUFIZ0JsK0I7T0FHRyxPQXJqQjdCczRELGVBa2pCc0JnRCxLQUdacDlCLE9BQU9wRDs7T0FJWTs7V0FHbEJyMkIsSUFWZXpFO09Bem1CMUIyM0QsY0F5bUJzQjJEO09BVU8sT0FubkI3QjNELGNBeW1Cc0IyRCxLQVVYNzJEOztHQUE0RDtZQU1uRW14QyxXQUFXMGxCLEtBQUkzckQ7SUFBTTtjQUFOQSxrQkEwQlM7V0ExQlRBOztXQVNJOU8sSUFUSjhPLFFBU0NnQixJQVREaEI7T0FBZmltQyxXQUFXMGxCLEtBU0szcUQ7T0FDcEIsT0ExQkE2dkQsc0JBZ0JlbEYsS0FTUXo2RDs7bUJBVEo4TyxRQWVDb2tDLE1BZkRwa0M7O1lBWWlCQztRQVpoQ2dtQyxXQUFXMGxCLEtBZUt2bkI7UUFESCxPQXh2QmpCbWlCO2lCQTB1QmVvRixxQkFwQ2ZnRixZQW9DSTFxQixZQVlnQ2htQzs7V0FHQUM7T0FmaEMrbEMsV0FBVzBsQixLQWVLdm5CO09BRW1CO2NBckR2Q3VzQixZQW9DSTFxQixZQWVnQy9sQztRQUVoQjtRQUFQNHdEO1FBQVI3cEI7T0FDTCxPQXZ4QkFtZixnQkFxd0JldUYsS0FpQlYxa0IsUUFBUTZwQjs7aUJBakJNOXdEOzs7Ozs7OzthQUMrQ3lDLE1BRC9DekMsUUFDdUM2YixlQUFsQndxQjs7O3dCQWtCakJuMEMsSUFuQko4TixRQW1CQ3FrQzs7O2lCQW5CRHJrQzs7Ozs7OztpQkFLNkM0TSxNQUw3QzVNLFFBS3FDa2tELGlCQUFsQi9kOzs7d0JBZ0JqQnJ4QyxJQXJCRmtMLFFBcUJEa21DOzs7aUJBckJDbG1DOzs7Ozs7OzthQUMrQ3lDLE1BRC9DekMsUUFDdUM2YixlQUFsQndxQjs7O3dCQWtCakJuMEMsSUFuQko4TixRQW1CQ3FrQzs7O2lCQW5CRHJrQzs7Ozs7OztpQkFLNkM0TSxNQUw3QzVNLFFBS3FDa2tELGlCQUFsQi9kOzs7d0JBZ0JqQnJ4QyxJQXJCRmtMLFFBcUJEa21DOzs7V0FFSm1NLE1BdkJLcnlDLFFBdUJSb21DLE1BdkJRcG1DO09BQWZpbUMsV0FBVzBsQixLQXVCSnZsQjtPQUFpQixrQkFBZGlNLEtBdkJDc1o7O1dBd0JMb0YsTUF4QlMvd0QsUUFBZmltQyxXQUFXMGxCLEtBd0JMb0YsTUFBa0IsT0ExbkI1QnhJLGVBa21CZW9EOztXQXlCS2p1RCxNQXpCRHNDLFFBeUJGZ3hELE1BekJFaHhEO09BQWZpbUMsV0FBVzBsQixLQXlCRXFGO09BQVcsNkJBQVJ0ekQ7Ozs7T0F6QmhCdW9DLFdBQVcwbEIsS0FDeUJ0bEIsTUFFeEMsT0FycEJBbWhCLGlCQWtwQmVtRSxLQUMyQzl2QyxNQUFRcFo7O09BRDlEd2pDLFdBQVcwbEIsS0FLdUJ4bEI7T0FHRSxPQTFwQnhDcWhCO2dCQWtwQmVtRSxLQUt5Q3pILFFBR2hCLGdDQUh3QnQzQzs7T0FMNURxNUIsV0FBVzBsQixLQW1CS3RuQixNQUNRLE9BN3BCNUJzakIsZ0JBeW9CZWdFLEtBbUJRejVEO2VBbkJuQit6QyxXQUFXMGxCLEtBcUJHemxCLE1BQ1UsT0Evb0I1QjhoQixjQXluQmUyRCxLQXFCTTcyRDs7R0FLUztZQU0xQnl4QyxXQUFXb2xCLEtBQUkzckQ7SUFBTTtjQUFOQSxrQkE2QlM7V0E3QlRBOztXQVlJOU8sSUFaSjhPLFFBWUNnQixJQVpEaEI7T0FBZnVtQyxXQUFXb2xCLEtBWUszcUQ7T0FDcEIsT0E3REE2dkQsc0JBZ0RlbEYsS0FZUXo2RDs7bUJBWko4TyxRQWtCQ29rQyxNQWxCRHBrQzs7WUFlaUJDO1FBZmhDc21DLFdBQVdvbEIsS0FrQkt2bkI7UUFESCxPQTN4QmpCbWlCO2lCQTB3QmVvRixxQkFwRWZnRixZQW9FSXBxQixZQWVnQ3RtQzs7V0FHQUM7T0FsQmhDcW1DLFdBQVdvbEIsS0FrQkt2bkI7T0FFbUI7Y0F4RnZDdXNCLFlBb0VJcHFCLFlBa0JnQ3JtQztRQUVoQjtRQUFQNHdEO1FBQVI3cEI7T0FDTCxPQTF6QkFtZixnQkFxeUJldUYsS0FvQlYxa0IsUUFBUTZwQjs7aUJBcEJNOXdEOzs7Ozs7OzthQUMrQ3lDLE1BRC9DekMsUUFDdUM2YixlQUFsQndxQjs7O3dCQXFCakJuMEMsSUF0Qko4TixRQXNCQ3FrQzs7O2lCQXRCRHJrQzs7Ozs7OztpQkFLNkM0TSxNQUw3QzVNLFFBS3FDa2tELGlCQUFsQi9kOzs7d0JBbUJqQnJ4QyxJQXhCRmtMLFFBd0JEa21DOzs7aUJBeEJDbG1DOzs7Ozs7OzthQUMrQ3lDLE1BRC9DekMsUUFDdUM2YixlQUFsQndxQjs7O3dCQXFCakJuMEMsSUF0Qko4TixRQXNCQ3FrQzs7O2lCQXRCRHJrQzs7Ozs7OztpQkFLNkM0TSxNQUw3QzVNLFFBS3FDa2tELGlCQUFsQi9kOzs7d0JBbUJqQnJ4QyxJQXhCRmtMLFFBd0JEa21DOzs7V0FFUEUsTUExQlFwbUM7aUJBMEJSb21DOzs7YUFqQjhDa00sTUFUdEN0eUMsUUFTOEJpeEQscUJBQWxCRixNQWlCcEIzcUI7U0ExQlBHLFdBQVdvbEIsS0FTZ0JvRjtTQUVTLE9BN3JCeEN2SixpQkFrckJlbUUsS0FTa0NzRixRQUVULFdBRmlCM2U7OztXQWlCM0NELE1BMUJLcnlDO09BQWZ1bUMsV0FBV29sQixLQTBCSnZsQjtPQUF1RCxPQW5zQmxFdWhCLGdCQXlxQmVnRSxLQTBCbUQsV0FBcER0Wjs7V0FDSjJlLE1BM0JTaHhELFFBQWZ1bUMsV0FBV29sQixLQTJCTHFGLE1BQWtCLE9BN3BCNUJ6SSxlQWtvQmVvRDs7V0E0QktqdUQsTUE1QkRzQyxRQTRCRmt4RCxNQTVCRWx4RDtPQUFmdW1DLFdBQVdvbEIsS0E0QkV1RjtPQUFXLDZCQUFSeHpEOzs7O09BNUJoQjZvQyxXQUFXb2xCLEtBQ3lCdGxCLE1BRXhDLE9BcnJCQW1oQixpQkFrckJlbUUsS0FDMkM5dkMsTUFBUXBaOztPQUQ5RDhqQyxXQUFXb2xCLEtBS3VCeGxCO09BR0UsT0ExckJ4Q3FoQjtnQkFrckJlbUUsS0FLeUN6SCxRQUdoQixnQ0FId0J0M0M7O09BTDVEMjVCLFdBQVdvbEIsS0FzQkt0bkIsTUFDUSxPQWhzQjVCc2pCLGdCQXlxQmVnRSxLQXNCUXo1RDtlQXRCbkJxMEMsV0FBV29sQixLQXdCR3psQixNQUNVLE9BbHJCNUI4aEIsY0F5cEJlMkQsS0F3Qk03MkQ7O0dBS1M7WUFROUJ5NkMsU0FBUzdvQixHQUFFaWxDO0lBQ2IsSUFEMEJsOUIsZ0JBQzFCO2lCQUNPenVCLEtBdkVEaW1DLFdBcUVPMGxCLEtBRU4zckQsd0JBRkkwbUIsR0FBRWlsQyxLQUUwQjtJQUR2QyxtREFEMEJsOUI7O1lBS3hCZ2hCLFVBQVUvb0IsR0FBRWlsQztRQUFhbDlCO0lBQzNCLHlDQURZL0gsR0FBRWlsQyxLQUFhbDlCOztZQUd6Qm1oQixTQUFTK2I7SUFDWCxJQUR5Qmw5QixnQkFDekI7c0I1Q24xQ0g7STRDbTFDRyxtREFEeUJBOztZQUd2QmloQixRQUFRaWM7c0I1Q3IxQ2I7STRDcTFDbUIscUI1Q3IxQ25CLE80QzAwQ0twYyxjQVdRb2M7R0FBeUI7WUFDakM3YixPQUFPcmhCLEtBQU0sa0JBRGJpaEIsUUF4VkF1YyxnQkF5Vk94OUIsS0FBK0I7WUFDdENzaEIsUUFBUXRoQixLQUFNLGtCQUZkaWhCLFFBdlZBd2MsZ0JBeVZRejlCLEtBQStCO1lBRXZDMGlDLFNBQVN6cUM7SUFDWCxJQURzQitILGdCQUN0QjtpQkFDT3p1QjtLQUFPLE9BQUUsV0FGTDBtQixZQUVVaWxDLEtBQU8sT0F0RnRCMWxCLFdBc0ZlMGxCLEtBQWQzckQsS0FBdUM7SUFBQztJQUQvQyxtREFEc0J5dUI7O1lBS3BCMmlDLFFBQVEzaUMsS0FBTSxPQUxkMGlDLGtCQUs0Qm45RCxHQUFLLE9BQUxBLEVBQU0sR0FBMUJ5NkIsS0FBK0I7WUFFdkN1aEIsU0FBU3RwQjtJQUNILElBRGMrSCxnQkFDbEJoN0IsSUEzV0ZzNEQsbUJBNFdFSixNQXBYRkUsb0JBbVhFcDREO2FBRUFtNUIsSUFBRTVzQjtLQTlEQXVtQyxXQTZERm9sQixLQUNFM3JEO0tBRUYsa0JBTE8wbUIsR0ExVlQwbEMsdUJBMlZFMzRELEdBQ0FrNEQ7SUFHOEI7SUFDbEMseUNBSEkvK0IsUUFIa0I2Qjs7WUFTcEJ3aEIsUUFBUXhoQixLQUFNLE9BVGR1aEIsU0F6MENBL3lDLElBazFDUXd4QixLQUFxQjtZQUU3QjRpQyxVQUFVM3FDO0lBQ0osSUFEZStILGdCQUNuQmg3QixJQXRYRnM0RCxtQkF1WEVKLE1BL1hGRSxvQkE4WEVwNEQ7YUFFQW01QixJQUFFNXNCO0tBekdBaW1DLFdBd0dGMGxCLEtBQ0UzckQ7S0FFRixrQkFMUTBtQixHQXJXVjBsQyx1QkFzV0UzNEQsR0FDQWs0RDtJQUc4QjtJQUNsQyx5Q0FISS8rQixRQUhtQjZCOztZQVNyQjZpQyxTQUFTN2lDLEtBQU0sT0FUZjRpQyxVQXAxQ0FwMEQsSUE2MUNTd3hCLEtBQXNCO1lBSS9COGlDO0lBcnRCQWhKLGVBMFZBMEQ7SUE0WEYsT0F0dEJFMUQsZUEyVkEyRDtHQTRYNkI7R0FFeEIsd0JBSkxxRjtZQWFBQywrQkFBc0N0MUMsT0FDakNockIsR0FBU3lsQixHQUFXdUUsR0FBVWxuQjtJQWhoQm5DMDJELCtCQStnQnNDeHVDLE9BQ2pDaHJCLEdBQVN5bEI7SUFEd0J1RixZQUNiaEI7SUFEYWdCLFlBQ0hsb0I7O0dBR2I7WUFHdEJ5OUQsK0JBQXNDdjFDO0lBQ3hDLFdBRHdDQTtHQUVHO0dBSzNDLFNBREV3MUM7STVDbDVDTCxPNENxNENLRiwrQkF4WUF2Rjs7R0EyWkYsU0FERTBGO0k1Q3Y1Q0wsTzRDNDRDS0YsK0JBL1lBeEY7O1lBcWFBdGMsUUFBUWw4QztJQUNBLElBRFdnN0IsZ0JBQ2pCazlCLE1BcmJGRSxvQkFvYlFwNEQ7YUFFTml6QixFQUFFMW1CLEtBL0pBaW1DLFdBOEpGMGxCLEtBQ0UzckQsTUFBTSxPQWwwQlZ1bkQsZUFpMEJFb0UsUUFDb0Q7SUFDeEQseUNBRElqbEMsTUFGaUIrSDs7WUFxQm5CbWpDLCtCQUErQjExQztRQUlaZ3JDLGdCQUREQyxnQkFEQUMsZ0JBRERDO0lBS25CLFNBQUl3SyxVQUFVM2dFLEdBQUUwSjtLNUM3N0NuQiw0QjRDNjdDMkQsT0FBeENBO1NBQXdCMUk7S0FBSyxrQkFBL0JoQixHQUEwQmdCOztJQU5QZ3FCLDBCNUN2N0NwQyxPNEM2N0NPMjFDLFVBTGV4SztJQURjbnJDLDBCNUN2N0NwQyxPNEM2N0NPMjFDLFVBSmdCeks7SUFPcEI7SUFUaUNsckMsMEI1Q3Y3Q3BDLE80QzY3Q08yMUMsVUFIZ0IxSztJQU9wQjtJQVZpQ2pyQywwQjVDdjdDcEMsTzRDNjdDTzIxQyxVQUZpQjNLOzs7WUFRbkI0SywrQkFBK0JyakM7SUFDdEIsSUFBUHNqQyxPQXg0QkYvSywrQkF1NEIrQnY0QjthQUU3QnVqQyxjQUFjOS9ELEdBQUksT0FBb0IsV0FEdEM2L0QseUJBQ2M3L0QsSUFBc0M7YUFDcEQrL0QsZUFBZS8vRDtLQUFJLE9BQXFCLFdBRnhDNi9ELHlCQUVlNy9EO0lBQXVDO2FBQ3REZ2dFLGVBQWVoZ0U7S0FBSSxPQUFxQixXQUh4QzYvRCx5QkFHZTcvRDtJQUF1QzthQUN0RGlnRSxnQkFBZ0JqZ0U7S0FBSSxPQUFzQixXQUoxQzYvRCx5QkFJZ0I3L0Q7SUFBd0M7SUFDNUQsV0FKSTgvRCxlQUNBQyxnQkFDQUMsZ0JBQ0FDO0dBQzREO0dBR2hFLFNBREVDO0k1QzM4Q0wsTzRDdTdDS1IsK0JBMWJBM0Y7O0dBaWRGLFNBREVvRztJNUM3OENMLE80Q204Q0tQLCtCQXRjQTdGOzs7OztPQXZXQTVEO09BaWNBOEU7T0F6a0JBN0c7T0Ewa0JBOEc7T0F2Y0FuRjtPQWtjQThFO09BamNBN0U7T0FrY0E4RTtPQWhjQTdFO09BaWNBOEU7T0FoY0E3RTtPQWljQThFO09BMWRBdkY7T0FrZUF2d0Q7T0EvZEF3d0Q7T0FnZUF2d0Q7T0F2ZUFvd0Q7T0FxZUFnRztPQTFkQTVGO09BNmRBdndEO09BMWRBd3dEO09BMmRBdndEO09BcmRBeXdEO09Bc2RBN3dEO09BemRBNHdEO09BMGRBMkY7T0F0WkE5RTtPQXlaQWlGO09BeFpBaEY7T0F1WkErRTtPQWxhQWpGO09BaWFBZ0Y7T0E5YUFqRjtPQWRBRjtPQStiQXNGO09BemJBckY7T0E0YkF1RjtPQXZjQXpGO09BcWNBd0Y7T0F2Y0F6RjtPQXdjQTd3RDtPQXpVQWt5RDtPQW1WQTJFO09BblRBcEU7T0FvVEFxRTtPQTNWQTlFO09BNlZBK0U7T0F4VkE5RTtPQXlWQStFO09BNVRBekU7T0FZQUk7T0FrVEFzRTtPQTFTQXJFO09BMlNBc0U7T0FoU0FwRTtPQWtTQXNFO09BclNBdkU7T0FvU0FzRTtPQS9YQXpGO09Ba1lBMkY7T0EvWEExRjtPQWdZQTJGO09BOVhBMUY7T0ErWEEyRjtPQTlhQWxHO09BMFpBbUY7T0FqWkFsRjtPQWtaQW1GO09BOVhBaEY7T0FpWUFrRjtPQW5ZQW5GO09Bb1lBb0Y7T0EzWUFyRjtPQXdZQW1GO09BMVdBN0U7T0E4WEEyRjtPQTdYQTFGO09BOFhBMkY7O09BeG1CQTNJO09BZ2tCQWdIO09BcGpCQS9HO09BcWpCQWdIO09BcmlCQXpHO09BdW1CQStJO09BM21CQW5KO09BbW1CQStJO09BbG1CQTlJO09Bc21CQWdKO09Bcm1CQS9JO09BbW1CQThJO09BbG1CQTdJO09Bc21CQStJO09BNVFBOUU7T0FxUEFvRTtPQS9RQXpFO09BdVJBNEU7T0FwUkEzRTtPQXNSQTRFO09BaFRBL0U7T0F5U0E0RTtPQTVSQTNFO09BOFJBNEU7T0F0a0JBcEk7T0E4a0JBdUk7T0F0bEJBeEk7T0F3bEJBeUk7T0EzS0E3RDtPQW9CQUs7T0FDQUM7T0FoQkFMO09BV0FHO09BTUFHO09BZUFFO09BOUNBWDtPQVhBRjtPQW1GQWM7T0FHQUM7T0FHQUU7T0FHQUM7T0FLQUU7T0FHQUU7T0E0R0lpRDtPQWlCSks7T0FRQUc7T0FxQkFDO09BSUFDO09BSUFDO09BMEhBaGhCO09BQ0FJO09BQ0FDO09Ba0JBRTtPQVdBcWhCO09BdEJBRjtPQVpBeGhCO09BUkFMO09BZUE0aEI7T0FWQTFoQjtPQWlCQU87T0FXQXFoQjtPQXVEQTFoQjtPQWxFQUs7T0FrREEwaEI7T0FLQUM7T0FsQkFIO09BT0FDO09BNTFCQWhMO09BeWlCQTRHO09BeGlCQTNHO09BeWlCQTRHO09BNlZBc0U7T0FvQkFRO09BUkFOO09BVUFPOzs7RTVDNzhDTDs7Ozs7Ozs7Ozs7O0k4Q3FCS2dKO1lBR0FDLG1CQUFtQnptRSxNQUNqQjRxQjtJQUFKOztLQUNJemlCLE9BQVUscUJBRFZ5aUI7SUFFSixpQ0FIcUI1cUIsTUFFakJtSTtHQUMwQjs2QkFONUJxK0QsVUFHQUM7OztFOUN4Qkw7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7WStDd0JLdnRELEtBQUt0USxHQUNVLElBQWI4OUQsTUFERzk5RCxXQUVQLHNCQURJODlELEtBQ0k7R0FZRyxJQUFUdmQsOEJBVUF3ZCx5QkFPQUM7WUFlQUMsb0JBQW9CeHBFO0lBQ3RCO0tBQUk0RTswQ0FEa0I1RTtLQUNYOztTQUNYOEI7O01BQ2tDLG1DQUhaOUIsR0FFdEI4QjtNQURJOEM7TUFDSjs7Ozs7SUFESUE7UUFPQTZrRSxtQkFQQTdrRTtJQVNKLE9BRkk2a0U7R0FFSztHQTZCVDtJQXhCb0NuZ0U7O0lBSUFvZ0U7O0lBR0RDOztJQWdCakNDLHlCQXJEQUw7SUErREFNO0lBR0FDLFlBQXVCO1lBSW5CQyxTQUFTbnFFO0lBQ2YsV0FEZUEsSUFBVG1xRSxVQUFTbnFFO0dBRU87WUFFcEJvcUUsVUFBVUM7SUFYVko7SUFjWTtLQURWdm1FLE1BRlEybUU7S0FHUkMsVUFBVSxnQkFEVjVtRSxzQkFWRndtRTtJQVlGLGlCQURJSSxpQkFEQTVtRTs7O2FBR2tCLGlCQVRoQnltRSxTQU1Gem1FO0lBR0osaUJBRkk0bUU7SUFFSixXQUhJNW1FLGFBR0o7O1NBQ0F4Qjs7TUFBaUQ7ZUFBakRBO09BQWlELHdCQU5yQ21vRSxZQU1abm9FO01BQXdCLGlCQUhwQm9vRTtNQUdvQixXQUF4QnBvRTs7Ozs7SUFDQTtZQXhGRXduRTtZQW9GRVk7Ozs7Ozs7R0FXMEI7WUFFNUI3eEMsT0FBTzh4QyxPQUFNQztJQUNmLElBQUlDLFdBREtGLDRCQUNMRSxXQURXRDs7S0FHRSxJQUFYRSxXQUFXLGVBSEZGLFVBeEJiTjtLQTRCQSw2QkFKT0ssYUFHSEcsYUFGRkQ7S0FES0YsV0FHSEc7Ozs7OztHQUdKO0dBUWUsSUFBZkMsdUJBQ0FDO1lBS0FDLFdBQVdDO0lBQ2IsSUFBSTFzRCxRQURTMHNEO0lBcEJYcnlDLE9Bb0JXcXlDLE9BQ1Qxc0Q7SUFDSixPQURJQTtHQUVDO1lBRUgyc0QsaUJBQWlCRCxPQUFNL25FO0lBQ3pCLElBQ0UsaUNBRnVCQSxNQUFOK25FLFdBRWpCOzs7O0tBRVksSUFBUkUsUUFUSkgsV0FLaUJDO2dCQUtRLHFCQUxGL25FLE1BSW5CaW9FLE9BSmFGO2dCQU1TLG9CQUZ0QkUsVUFKYUY7S0FPakIsT0FISUU7O0dBR0M7WUFFTEMsa0JBQWtCSCxPQUFNSTtJQUNoQixvQi9DcExiLE8rQzBLS0gsaUJBU2tCRDtJQUNwQiwwQ0FEMEJJO0dBQ2M7WUFFdENDLFdBQVdMLE9BQU1FLE9BQU1JO0lBdkJ2QlQ7SUF5QkMsNEJBRmdCSyxPQUFORjtlQXJDWHJ5QztnQkFxQ1dxeUMsT0FBTUU7K0JBQU5GLFVBQU1FLG9CQUFNSTs7ZUFBWk4sbUJBQU1FLE9BQU1JLFVBQVpOO0dBS2lEO1lBRTVETyxXQUFXUCxPQUFNRTtJQUNuQixJQUFJLHVDQURlQSxPQUFORixXQUNUOzs7O01BQ2Msd0JBRkxBLFVBQU1FOzs7R0FFb0I7WUFFckM1MkQsUUFBUWszRDtJQUNWLGFBRFVBLFVBQ3FCLDZCQURyQkE7R0FDc0M7WUFFOUNDLE9BQU9ULE9BQU1VLE1BQUtDLFlBQVdDO0lBQy9CO0tBQUlDLFNBSkZ2M0QsUUFHYW8zRDtLQUVYSSxlQUxGeDNELFFBR2tCcTNEO0tBR2hCSSxnQkFORnozRCxRQUc2QnMzRDtJQUlELG1CL0N4TWpDLE8rQzBLS1gsaUJBMEJPRDtJQUlZLElBQWpCZ0IsaUJBQWlCLGlDQUZqQkY7SUFHMkIsbUIvQ3pNbEMsTytDMEtLYixpQkEwQk9EO0lBS2EsSUFBbEJpQixrQkFBa0IsaUNBRmxCRjtJQUhLZjs7a0RBSUxnQixnQkFIQUg7TUFES2I7O2lCQVlBa0IsS0FBSWxoRSxNQUFLbWhFO0tBQ1osT0FBRyw0QkFEQUQsS0FYTEw7ZUFZNEIsb0JBRHZCSyxLQUFJbGhFLE1BQUttaEU7O0lBQ2dEO0lBYnpEbkIsV0FXUDtJQUlZLElBQVZvQix5QkFDQUM7a0JBRUdDLEtBQUlwQjtLQUhQa0IsYUFJWSxxQkFEVEUsS0FBSXBCLE9BSFBrQjtnQkFDQUM7U0FNVyxnQ0FKSm5CLE9BbEJGRjs7Ozs7O0tBZ0JMcUIsY0FLSSxvQkFIR25COztJQUtRO0lBTm5CLGtDQWRJYSxlQUVBRTtrQkFxQkdLLEtBQUlwQjtLQVhQa0IsYUFZWSxxQkFEVEUsS0FBSXBCLE9BWFBrQjtLQUNBQyxjQVlhLG9CQUZObkIsVUFWUG1COztJQVkyQztJQUgvQyxrQ0F2QklQLGNBRUFFO0lBSktoQixXQWVMb0I7SUFmS3BCLFdBZ0JMcUI7SUFnQkoscUJBaENTckI7a0JBa0NDc0IsS0FBa0JDO0tBQXZCLElBQU9MLE1BQUZJO0tBQ0MsbUNBRENKLEtBOUJSRjtlQThCd0JPO21CQUFsQkQsS0FBa0JDO0lBQ2dDO0lBbkNuRHZCLFdBaUNOOztHQUlJO1lBRUx3QixNQUFNeEI7SUFDUjtLQUNFLG1DQUZNQTtLQUM0RFU7S0FBWkM7S0FBWmM7S0FBcEJDO0tBQVZMO0tBQVREO0lBREdwQixXQUlpQiwyQkFKakJBO2lCQU9FMXFFLEdBQUViO0tBQWdCLCtCQUFoQkEsR0FQSnVyRTtLQU9TLDJCQUFMdnJFLFFBQUZhO0lBQTRDO0lBUDlDMHFFLFdBTUwsaUNBTHlDeUIsWUFBd0JmO0lBRDVEVixXQUNIb0I7SUFER3BCLFdBQ01xQjtjQUROckI7aUJBYUVzQixLQUFrQkM7S0FBdkIsSUFBT0wsTUFBRkk7S0FDQyxtQ0FEQ0osS0FaNENQLGNBWTVCWSxTQUFsQkQsS0FBa0JDO0lBQzRCO0lBZGhEdkIsV0FZTCxzQ0FYcUIwQjs7R0FlRDtZQU9yQkMsYUFBYTNCLE9BQU0vbkU7SUFDckIsSUFBSSwrQkFEaUJBLE1BQU4rbkUsV0FDWDs7OztTQUVFMXNELFFBSFMwc0Q7Z0JBR1Qxc0Q7S0FDRCxnQ0FKZ0JyYjtNQUFOK25FLFdBSW9CLG9CQUpkL25FLE1BR2ZxYixPQUhTMHNEO0tBS2IsT0FGSTFzRDs7R0FFQztZQUVMc3VELFNBQVNwQixLQUNYLE9BQUcsbUJBRFFBLG9CQUM0QjtZQUVyQ3FCLHNCQUFzQjdCLE9BQU04QixPQUFNQztJQUNwQztLQUFJQyxVQUpGSixTQUc0QkU7S0FFMUJHLFNBREFEO0tBQ2dDRSxRQUZBSDtLQUdoQzFuRSxNQUFNLGVBRE40bkUsU0FBZ0NDO0tBRXBDLE1BRklEO0tBQ007O1NBQ1Y1cUU7O01BQ2E7YUF2R1g0b0UsaUJBa0dzQkQsd0JBQ3BCZ0MsU0FHSjNxRTtNQUNFLGlCQUZFZ0QsS0FDSmhEO01BQ0UsVUFERkE7Ozs7O0lBR0EsVUFMb0M2cUUsZUFLcEM7Ozs7TUFDb0I7YUFEcEI5cUUsSUFMSTZxRTtPQU1nQixNQWxCbEJOLGFBVXNCM0Isd0JBQVkrQixNQU9wQzNxRTtNQUNFLGlCQUxFaUQ7TUFLRixVQURGakQ7Ozs7O0lBR0EsT0FQSWlEO0dBT0Q7WUFFRDhuRSxhQUFhbkMsT0FBTS9uRTtJQUNyQixJQUFJLCtCQURpQkEsTUFBTituRSxXQUNYOzs7O01BQTRDOzs7R0FBWTtZQUUxRG9DLGNBQWNwQyxPQUFNSTtJQUNaLGtCL0M1UmIsTytDd1JLK0IsYUFHY25DO0lBQ2hCLHlDQURzQkk7R0FDYztZQUVsQ2lDLGdCQUFnQnJDLE9BQU0xckUsR0FBTjByRSxlQUFNMXJFLEdBQU4wckUsb0JBQ3lCO1lBYXpDc0MsYUFBYUM7SUFDZixTQURlQSxnQkFDNkIsT0E1SzFDakQ7SUE4S1M7S0FBUGtELE9BQU8sNkJBek9UMUQscUJBc09heUQ7S0FJWHZDLFFBL0tGVixVQThLRWtEO2lCQUdHcHJFLEdBQUVrcUU7S0FDTCxJQUFJSixPQUREOXBFO0tBRkg0b0UsV0FJMEIscUJBRnJCc0IsS0FDREosS0FISmxCO2dCQUswQixvQkFGdEJrQixRQUhKbEI7O0lBS2tFO0lBSnRFLGtDQUxldUM7SUFLZixPQURJdkM7R0FPQztZQUVIeUMsV0FBV3pDO0lBekpYRix5Q0F5SldFO2VBRVMsMkJBRlRBO0lBR2I7V0EzS0VyeUM7YUF3S1dxeUM7O0dBR2tEO1lBRTdEMEMsU0FBU0MsS0FBSVosTUFBS3BCLFlBQVdDLG9CQUErQjMxQztRQUFMN0osZ0JBQVZ3aEQ7SUExSDdDbkMsT0EwSFNrQyxLQUFJWixNQUFLcEIsWUFBV0M7UUFFM0J6N0QsT0FGMEQ4bEIsTUFHaEQsV0FIaUMyM0MsU0FBcENELEtBQThDdmhELE9BR2YsV0FIS3doRCxTQUFwQ0Q7SUFuRlRuQixNQW1GU21CO0lBSVgsYUFNSyxNQS9ESGYsU0FxRDZCaEI7aUJBU3JCaUMsSUFBTSxPQTFJZHRDLFdBaUlTb0MsS0FwSlQxQyxpQkFvSlMwQyxLQVNERSxLQUErRDtJQUZsQztlQUNwQztLQURvQyxNQTVEckNqQixTQXFEYUc7SUFPSyxrQi9DclV2QixPK0N3UktJLGFBc0NTUTtJQU1UO21CQUpFeDlELFdBS007SUFEUjs7WUFNQTI5RCxXQUFXQyxXQUFVQztJQUN2QjtLQUFJaEQsUUEvQkZzQyxhQThCV1M7S0FFVEUsV0FBVyxXQUZRRCxZQUNuQmhEO0lBbEJGeUMsV0FrQkV6QztJQUdKLFdBQUMsV0FGR2lELGNBRm1CRCxZQUVuQkM7R0FFcUQ7WUFLdkRDLGlCQUFpQkgsV0FBVUMsWUFBV0c7SUFDeEM7S0FBSW5ELFFBeENGc0MsYUF1Q2lCUztLQUVmRSxXQUFXLFdBRmNELFlBQ3pCaEQ7SUEzQkZ5QyxXQTJCRXpDO0lBRG9DbUQsZ0JBQVhIO0lBQVdHLGdCQUVwQ0Y7O0dBRzJCO1lBRTdCRyxZQUFZQzthQUNWQztLQUFpQixrREFEUEQ7SUFDNkM7SUFDM0QsV0FESUM7R0FDdUM7WUFJekNDLGNBQWN2RDtJQUVOLElBQU4vL0QsTUFBTSw4QkFGTSsvRDtJQUVaLy9ELFNBRlkrL0Q7SUFLUixzQkFISi8vRDtHQUdnQjtZQUVsQnVqRSxrQkFBa0JDLE9BQU16RDtJQUMxQixHQURvQnlELE9BQ2EsT0FEYkE7SUFHUixJQUFOeGpFLE1BQU0sOEJBSGMrL0Q7SUFHcEIvL0QsU0FIb0IrL0Q7SUFNaEIsc0JBSEovL0Q7R0FJSDtZQUVHeWpFLE9BQU96akU7OzttQkFFSDtTQUNMOUksZ0JBQUg3QztLQUFRLFdBQVJBLEdBSFcyTDttQkFHUjlJOzs7WUFFSHdzRSxpQkFBaUIxakUsS0FBSSsvRDtJQUN2QixJQUFJNEQsUUFEbUI1RCxzQkFDbkI0RDtpQkFORUYsT0FLYXpqRSxLQUNmMmpFO0dBRWM7WUFFaEJDLHFCQUFxQkosT0FBTXhqRSxLQUFJKy9EO0lBQ2pDLEdBRHVCeUQsT0FDVSxPQURKeGpFO1FBRXZCMmpFLFFBRjJCNUQ7YUFFM0I0RCxPQVpBRixPQVV1QnpqRSxLQUV2QjJqRTtJQUNnQixPQUhPM2pFO0dBSzFCO1lBRUQ2akUsK0JBQW1DTCxPQUFNekQ7SUFDM0MsR0FEcUN5RCxPQUNKLE9BRElBO0lBRXpCLElBQU54akUsTUFuQ0pzakUsY0FpQ3lDdkQ7SUFaekMyRCxpQkFjSTFqRSxLQUZxQysvRDtJQUd6QyxPQURJLy9EO0dBR0g7WUEyQkRpc0IsU0FFSzZ1QjtJQUZNLEdBRU5BLE9BQVUsT0FBVkE7SUFESTtHQUNpQjtZQUsxQmdwQixXQUFXN3VFLEdBQUU4dUUsTUFBS2ppRDtJQUNwQixJQUFJMW5CLG9CQUNBMUYsUUFEQTBGLE1BQ0k7T0FGS25GO1NBR2JrQzs7Z0JBREl6QztrQ0FGV3F2RSxNQUdmNXNFOztTQUhhbEMsTUFHYmtDOzs7O1FBbkJrQjNDLElBa0JkRTtTQUZnQm90QjtLQWZUO0lBZVNBLFlBaEJGdHRCO0lBc0JsQixPQUxJNEY7R0FNRDtZQXFCRDRwRSxjQUFjQyxNQW5CSUY7SUFvQmQsSUFwQm1CRyxZQWhCdkJqNEMsU0FtQ2NnNEM7U0FuQlNDLFdBd0J2QixPQWpDQUosV0FTa0JDLCtCQW1CSkU7UUFuQkU3d0QsTUFBRTJ3RCx5QkFBRjVzRSxTQUFPZ3RFOztJQUN6QjtZQURrQmh0RSxHQUNKLE9BRFdndEU7S0FFZixJQUFOandCLHVCQUZnQjZ2QixNQUFGNXNFLFdBR0VpdEUsV0FIS0Q7S0FJdkI7V0FEa0JDO09BckJUO1NBcUJTQSxnQkFEaEJsd0I7T0FHTSxJQUxlbXdCLGNBaEJ2QnA0QyxTQW1Ca0JtNEM7WUFIS0M7UUFNVjtXQU5HanRFLDBCQUFPK3NFOzs7V0FHTEM7T0FmVDtNQUNNLElBY0d0aUQ7O01BVWEsSUFuQ2Z0ZixXQXdCZDB4QztXQUNnQmt3QjtPQXhCVDtNQXdCU0EsY0F6QkY1aEU7TUFvQ1YsT0F2Qk5zaEUsV0FTZ0Izc0UsV0FBRTRzRSxNQXRCRnZoRTs7O0dBOEM0QjtZQW1ENUM4aEUsVUFBVXZFO0lBQ1osSUFBSTlxRSxJQXhWRjZxRSxXQXVWVUM7Y0FDUjlxRTs7O3NDQURROHFFLHVDQUNSOXFFLE9BQ0FnUixNQXpWRjY1RCxXQXVWVUM7O3VCQUVSOTVELE1BREFoUjtJQUtKLGlCQU5ZOHFFLFVBRVI5NUQ7SUFJSixPQUpJQTtHQUtIO1lBb0ZDcytELFlBQVl4RSxPQUFNUjtJQUNwQixJQUFJNW1FLE1BRGdCNG1FLG9CQXZEQXBvRTs7Z0JBd0RoQndCO0tBRVU7WUExRE14QjtNQTBEZDhvRSx5QkFIY1Y7TUF0RGhCLzhEOztTQURnQnJMOztTQUNRLHdCQXNEUm9vRTtRQXREZ0I7TUFvRGxDaUYsTUFwREVoaUU7ZUFvREZnaUU7OztTQWxEd0I7VUF0RmRodkUsSUFvRlJnTjtVQXlEOEJpaUUsaUJBN0l0Qmp2RSxHL0M3Y2YsZ0IrQzZjNEJ3SyxLQUFRLE9BQXJCeEssRUFBc0IsSUFBdEJBOzs7U0F1RlU7VUF0RlpQLElBbUZOdU47VUF5RDhCaWlFLGlCQTVJeEJ4dkUsRy9DOWNiLGdCK0M4YzRCK0ssS0FBTyxPQUFQQSxRQUFmL0ssR0FBNEMsSUFBNUNBOzs7U0F1Rlk7VUF0Rlo4SSxJQWtGTnlFO1VBbEZReUQsTUFrRlJ6RDtVQXlEOEJpaUU7cUJBM0l4QjFtRSxHQUFFOUksRy9DL2NmLGdCK0NnZFkrSyxLQUNQLE9BRE9BLFFBRENqQyxPQUFFOUksR0FFbUQ7Y0FGckQ4SSxHQUFFa0k7OztTQXVGVTtVQXBGWEMsTUErRVAxRDtVQXlEOEJpaUU7cUJBeEl2Qnh2RTtjL0NsZGQsZ0IrQ2tkNEIrSyxLQUFPLGtCQUFQQSxXQUFkL0ssSUFBYytLLEtBQXFCOztjQUFuQ2tHOzs7U0FxRlc7VUFwRlp3K0QsTUE4RU5saUU7VUF5RDhCaWlFO3FCQXZJeEJ4dkUsRy9DbmRiLGdCK0NtZDRCK0ssS0FBSXhLLEdBQUp3SyxRQUFmL0ssS0FBbUJPLFlBQTZCO2NBQWhEa3ZFOzs7U0FxRlk7VUFwRlZyd0UsSUE2RVJtTztVQTdFVThMLE1BNkVWOUw7VUF5RDhCaWlFO3FCQXRJdEJwd0UsR0FBRW1CLEcvQ3BkakIsZ0IrQ29kOEJ3SyxLQUFRLE9BQWpCLFdBQU4zTCxHQUFFbUIsR0FBd0I7Y0FBMUJuQixHQUFFaWE7OztTQXFGUTtVQXBGWmtuQyxNQTRFTmh6QztVQTVFUW1pRSxNQTRFUm5pRTtVQXlEOEJpaUU7cUJBckl4QnB3RSxHQUFFWTtjL0NyZGYsZ0IrQ3FkOEIrSyxLQUFPLGtCQUF4QjNMLEdBQWlCMkwsUUFBZi9LLElBQWdEOztjQUFsRHVnRCxLQUFFbXZCOzs7U0FzRkE7VUFyRkZsdkIsTUEyRU5qekM7VUEzRVFiLE1BMkVSYTtVQTNFVW9pRSxNQTJFVnBpRTtVQXlEOEJpaUU7cUJBcEl4QnB3RSxHQUFFMEosR0FBRTlJO2MvQ3RkakIsZ0IrQ3VkWStLLEtBQ1Asa0JBRlEzTCxHQUNEMkwsUUFER2pDLE9BQUU5SSxJQUVxRDs7Y0FGekR3Z0QsS0FBRTl6QyxLQUFFaWpFOzs7U0F1RlE7VUFwRlhqdkIsTUF3RVBuekM7VUF4RVNxaUUsTUF3RVRyaUU7VUF5RDhCaWlFO3FCQWpJdkJwd0UsR0FBRVk7Yy9DemRoQixnQitDeWQ4QitLO2VBQU8sT0FBRSxXQUF6QjNMLEdBQXlCLFdBQVQyTCxXQUFkL0ssSUFBYytLLE1BQXlCOztjQUF6QzIxQyxLQUFFa3ZCOzs7U0FzRkQ7VUFyRk05dUIsTUF1RWR2ekM7VUF2RWdCeXpDLE1BdUVoQnp6QztVQXZFa0IvTSxJQXVFbEIrTTtVQXlEOEJpaUU7cUJBaEloQnB3RSxHQUFFbUIsR0FBRUM7Yy9DMWR6QixnQitDMGRzQ3VLLEtBQVEsT0FBakIsV0FBUjNMLEdBQUVtQixHQUFFQyxHQUEwQjs7Y0FBOUJzZ0QsS0FBRUUsS0FBRXhnRDs7O1NBd0ZWO1VBdkZJNmdELE1Bc0VaOXpDO1VBdEVjNHpDLE1Bc0VkNXpDO1VBdEVnQnNpRSxNQXNFaEJ0aUU7VUF5RDhCaWlFO3FCQS9IbEJwd0UsR0FBRW1CLEdBQUVQO2MvQzNkdkIsZ0IrQzJkc0MrSyxLQUFPLGtCQUExQjNMLEdBQUVtQixHQUFpQndLLFFBQWYvSyxJQUFrRDs7Y0FBdERxaEQsS0FBRUYsS0FBRTB1Qjs7O1NBMEZSO1VBdEZJdHVCLE1Ba0VaaDBDO1VBbEVjdWlFLE1Ba0VkdmlFO1VBbEVnQm9aLE1Ba0VoQnBaO1VBbEVrQndpRSxNQWtFbEJ4aUU7VUF5RDhCaWlFO3FCQTNIbEJwd0UsR0FBRW1CLEdBQUV1SSxHQUFFOUk7Yy9DL2R6QixnQitDZ2VZK0s7ZUFDUCxrQkFGYzNMLEdBQUVtQixHQUNUd0ssUUFEV2pDLE9BQUU5SSxJQUUrQzs7Y0FGckR1aEQsS0FBRXV1QixLQUFFbnBELEtBQUVvcEQ7OztTQXlGVjtVQTVGS3Z1QixNQXFFYmowQztVQXJFZXlpRSxNQXFFZnppRTtVQXJFaUIwaUUsTUFxRWpCMWlFO1VBeUQ4QmlpRTtxQkE5SGpCcHdFLEdBQUVtQixHQUFFUDtjL0M1ZHhCLGdCK0M0ZHFDK0s7ZUFBTyxPQUFJLFdBQTVCM0wsR0FBRW1CLEdBQTBCLFdBQVh3SyxXQUFiL0ssSUFBYStLLE1BQTJCOztjQUE1Q3kyQyxLQUFFd3VCLEtBQUVDOzs7U0ErRlQ7VUE5Rkl4dUIsTUFvRVpsMEM7VUFwRWMyaUUsTUFvRWQzaUU7VUFwRWdCNGlFLE1Bb0VoQjVpRTtVQXlEOEJpaUU7cUJBN0hsQnB3RSxHQUFFWSxHQUFFTztjL0M3ZHZCLGdCK0M2ZG9Dd0ssS0FBTyxPQUFoQixXQUFSM0wsR0FBaUIyTCxRQUFmL0ssSUFBRU8sR0FBZ0Q7O2NBQXBEa2hELEtBQUV5dUIsS0FBRUM7OztTQWlHUjtVQTVGSUMsTUErRFo3aUU7VUEvRGM4aUUsTUErRGQ5aUU7VUEvRGdCK2lFLE9BK0RoQi9pRTtVQS9Ea0JnakUsTUErRGxCaGpFO1VBeUQ4QmlpRTtxQkF4SGxCcHdFLEdBQUUwSixHQUFFOUksR0FBRU87Yy9DbGV6QixnQitDbWVZd0s7ZUFDUCxPQURGLFdBRGdCM0wsR0FDUDJMLFFBRFNqQyxPQUFFOUksSUFBRU8sR0FFK0M7O2NBRnJENnZFLEtBQUVDLEtBQUVDLE1BQUVDOzs7U0ErRlY7VUFuR0tDLE1BbUViampFO1VBbkVla2pFLE9BbUVmbGpFO1VBbkVpQm1qRSxNQW1FakJuakU7VUF5RDhCaWlFO3FCQTVIakJwd0UsR0FBRVksR0FBRU87Yy9DOWR4QixnQitDOGRxQ3dLO2VBQU8sT0FBaEIsV0FBUjNMLEdBQTBCLFdBQVQyTCxXQUFmL0ssSUFBZStLLE1BQWJ4SyxHQUF3Qzs7Y0FBNUNpd0UsS0FBRUMsTUFBRUM7OztTQXNHVDtVQS9GS0MsT0E0RGJwakU7VUE1RGVxakUsTUE0RGZyakU7VUF5RDhCaWlFO3FCQXJIakJ4dkUsR0FBRU87Yy9DcmV0QixnQitDcWVtQ3dLLEtBQU8sT0FBaEIsV0FBU0EsV0FBZi9LLElBQWUrSyxLQUFieEssR0FBK0M7O2NBQWpEb3dFLE1BQUVDOzs7U0FpR1A7VUFoR0dDLE9BMkRYdGpFO1VBM0Rhb2MsSUEyRGJwYztVQXlEOEJpaUU7cUJBcEhuQnh2RSxHQUFFMnBCO2MvQ3RlcEIsZ0IrQ3VlWTVlO2VBQU8sa0JBQVBBLFdBRE0vSyxJQUNOK0ssYUFEUTRlLElBQ2lEOztjQURuRGtuRCxNQUFFbG5EOzs7U0FrR0w7VUFoR0dtbkQsT0F5RFh2akU7VUF6RGF3akUsTUF5RGJ4akU7VUF6RGVtbkIsTUF5RGZubkI7VUF5RDhCaWlFO3FCQWxIbkJ4dkUsR0FBRThJLEdBQUU2Z0I7Yy9DeGV0QixnQitDeWVZNWU7ZUFBTyxrQkFBUEEsV0FETS9LLElBQ04rSyxhQURRakMsT0FBRTZnQixJQUVnRDs7Y0FGcERtbkQsTUFBRUMsS0FBRXI4Qzs7O1NBbUdQO1VBaEdJczhDLE9Bc0RaempFO1VBdERjMGpFLE1Bc0RkMWpFO1VBeUQ4QmlpRTtxQkEvR2xCeHZFLEdBQUUycEI7Yy9DM2VyQixnQitDNGVZNWU7ZUFBaUMscUJBQWpDQSxXQURTNGUsSUFDVDVlO2VBQWlDLGtCQUFqQ0EsV0FETy9LLElBQ1ArSyxVQUFpRDs7Y0FEMUNpbUUsTUFBRUM7OztTQWtHTixJQWhHQ0MsTUFvRFQzakUsU0FwRFc0akUsTUFvRFg1akU7U0FyQ0Y4aEUsVUEyRll2RTs7VUFHb0IwRTtxQkE3R3JCN2xELEdBQUVwcEI7Yy9DN2VsQixnQitDOGVZd0s7ZUFBTyxPQUFoQixrQ0FEZXhLLEdBQUZvcEIsT0FBRXBwQixHQUN5Qzs7Y0FEM0Myd0UsS0FBRUM7OztTQWtHSCxJQWhHREMsTUFrRFA3akUsU0FsRFM4akUsT0FrRFQ5akU7U0FyQ0Y4aEUsVUEyRll2RTs7VUFHb0IwRTtxQkEzR3ZCN2xELEdBQUUzcEI7Yy9DL2VoQixnQitDZ2ZZK0s7ZUFDUCxVQURPQSxRQURJL0s7NkRBQUYycEIsWUFHbUI7O2NBSG5CeW5ELEtBQUVDOzs7U0FrR0QsSUE5RkRDLE1BOENQL2pFLFNBOUNTZ2tFLE1BOENUaGtFLFNBOUNXaWtFLE9BOENYamtFO1NBckNGOGhFLFVBMkZZdkU7O1VBR29CMEU7cUJBdkd2QjdsRCxHQUFFN2dCLEdBQUU5STtjL0NuZmxCLGdCK0NvZlkrSztlQUNQLFVBRE9BLFFBRElqQyxPQUFFOUk7NkRBQUoycEIsWUFLcUI7O2NBTHJCMm5ELEtBQUVDLEtBQUVDOzs7U0FpR0gsSUEzRkFDLE1Bd0NSbGtFLFNBeENVbWtFLE9Bd0NWbmtFO1NBckNGOGhFLFVBMkZZdkU7O1VBR29CMEU7cUJBakd0QjdsRCxHQUFFM3BCO2MvQ3pmakIsZ0IrQzBmWStLO2VBQ0cscUJBREhBLFdBREsvSyxJQUNMK0s7ZUFDRyw4Q0FGQTRlLFlBRTZDOztjQUY3QzhuRCxLQUFFQzs7O1VBaUdvQmxDLFFBTGhDRDtLQS9aQXBFLFdBaWFZTCxPQUdSRSxPQUE0QndFO0tBMURkdHRFOztHQTZEaEI7WUFPRjByRDtJQUNGLFdBL2VFcWMsZ0JBeUNBVSxpQkFDQUM7R0FzY3VEOzs7O09BaGlCdkRoQjtPQStGQWlCO09BNkZBNEI7T0FVQUU7T0FZQU07T0FHQUM7T0FqSEFuQztPQVNBRTtPQVVBSTtPQVBBRjtPQWlhQW1FO09BblpBL0Q7T0F1Q0FlO09BbURBYTtPQWxMQW5EO09BZ01Bb0Q7T0FhQUc7T0FLQUM7T0FZQUk7T0FTQUk7T0FPQUU7T0FsVUFqeUQ7T0F3VUFveUQ7T0FPQUM7T0FjQUc7T0FLQUU7T0FPQUM7T0FtRUFHO09BOVpBN2lCO09BOGpCQTBCOzs7RS9DcG1CTDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHd0QwQkM7Ozs7OztJQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1lBVUlvMUIsY0FBZUMsS0FBeUJDO0lBQzFDLHNDQURpQkQsVUFBeUJDO0dBQ2lDO1lBRXpFQyxZQUFjQyxPQUFlQyxRQUFnQkMsTUFDL0MsV0FEZ0JGLE9BQWVDLFFBQWdCQyxNQUN4QjtZQUVyQkMsWUFBYUMsSUFBY0M7SUFDN0IsV0FEZUQsUUFBY0MsV0FBZEQsUUFBY0MsV0FBZEQsUUFBY0M7R0FLNUI7WUFFQ0MsWUFBYUYsSUFBY0M7SUFDN0IsV0FEZUQsUUFBY0MsV0FBZEQsUUFBY0MsV0FBZEQsUUFBY0M7R0FLNUI7WUFFQ0UsV0FBWUgsSUFBY0k7SUFDNUIsb0JBRGNKLE9BQWNJLGFBQWRKLE9BQWNJLGFBQWRKLE9BQWNJO0dBQ3dDO1lBSWxFQyxlQUFnQlg7SUFDbEIsU0FEa0JBO0lBQ29CO0dBQXNDO1lBSTFFWSxhQUFjQztJQUNoQixpQkFEZ0JBOzs7Ozs7OztHQUN5QztZQUd2REMsY0FBZ0JDLE9BQWVIO0lBQ2pDLGVBRGtCRzs0QkFLWDs7O2NBTDBCSDs7Ozs7T0FHYjtlQURhOztHQUdUO1lBRXRCSSxjQUFlQztJQUNqQjtvQkFEaUJBOztNQUd3QzthQWR2REwsYUFXZUs7T0FHSCxNQVZaSCxjQU9lRzs7Ozs7Ozs7NkJBSUc7OztHQUFLO1lBR3ZCQyxVQUFZTCxNQUFjRSxPQUFlSTtJQUNuQyxJQUFKRixRQURVSixNQUFjRSxPQUFlSTtJQUV4QyxHQVRESCxjQVFFQyxJQUNvQixPQURwQkE7SUFDMkI7R0FBaUI7WUFHMUNHLCtCQUNGUCxNQUNBRSxPQUNBWjtJQUNKLElBSElrQixlQUVBQztJQUNKO1NBQUlDLFlBRkFSLFFBQ0FPO2FBQ0FDLDhCQUNzQyxXQUp0Q0YsUUFHQUU7O01BR0Y7T0FKRUM7T0FGQUM7O09BRUFIOzs7S0FRRjtNQVJFSTtNQUZBQzs7TUFFQUw7O0dBU3FCO1lBMEd2Qk0sVUFBWUM7SURoTmpCLEdDZ05pQkEsU0FBd0JDLE1BQXhCRCxRQTNETUUsUUEyRGtCRCxjQTNEbEJDO29CQTJENEMvQjtLQUVoRTtNQWhFdURFLFFBOERTRjtNQTNEVEcsU0EyRFNIOztNQXpEOUQsVUE3RElvQixzQ0F3RGlEbEIsaUJBR0FDO01BQ3pDNkI7TUFBVkM7TUFsQm1DQyxlQWtCbkNELFlBQVVEO0tBakJYLEdBdkREaEIsY0FzRHFDa0I7VUErRW5DQyxNQS9FbUNEOzthQWlCbkJIOzs7aUJBakJtQkc7OztXQVBwQyxHQS9DRGxCLGNBc0RxQ2tCO2dCQStFbkNDLE1BL0VtQ0Q7O1lBSm5DOztlQXRDRWQsK0JBMENpQ2M7YUFMdkJYO2FBQVZhO2FBb0ZGRCxVQXBGRUMsVUFBVWI7Ozs7V0FIaEI7Ozs7O1VBREE7Ozs7aUJBU3VDVzs7O1dBckJwQyxHQWpDRGxCLGNBc0RxQ2tCO2dCQStFbkNDLE1BL0VtQ0Q7Ozs7WUFqQmM7bUJBaERuRHRCLGFBaUVxQ3NCO2FBakI3QixNQTVDUnBCLGNBNkRxQ29CO2FBK0VuQ0MsVUEvRW1DRDs7Ozs7O1dBdEJ2Qzs7O1VBREE7O2lCQTJCb0I7O0tBNEVwQixJQXhEaUNHLFNBb0QrQnJDLE1BcEQxQ3NDLE1BdURsQkgsS0F2RDZCL0I7S0FJakM7TUFDNkM7YUE5RjNDUSxhQXlGb0IwQjtPQUlsQkMsa0JBekZGekIsY0FxRm9Cd0I7T0FVbEJFLFVBVmtCRixTQUFXbEM7Y0FVN0JvQyxzQkFOQUQ7T0FXRixXQWZvQkQsZ0JBVWxCRTtTQU5BRCxtQkFNQUM7T0FZQTtrQkF4RkVwQiwrQkFrRWdCa0I7UUFxQk5HO1FBQVZDO1FBckIyQkMsa0JBSTdCSixrQkFKa0JEO2tCQXFCaEJJLFlBQVVEO1FBckJNSDtRQUFXbEM7OztNQXFDN0I7aUJBdkdFZ0IsK0JBa0VnQmtCO09Bb0NOTztPQUFWQztPQXBDMkJDLGdCQUFYVDs7O1VBb0NoQlE7VUFBVUQ7VUF6SGQvQixjQXlIYytCLGFBN0hkakMsYUE2SElrQztPQXBDZ0JSO09BQVdsQztNQXlEaEM7O1lBRUM2QyxjQUFlM0MsSUFBWUM7SUFDN0IsYUFBRywwQkFEY0QsT0FBWUM7O2tCQUV4QiwwQkFGWUQsT0FBWUM7MENBQVpELE9BQVlDOzBDQUFaRCxPQUFZQzt3Q0FBWkQsT0FBWUM7R0FJRztZQUc5QjJDLFlBQWFuRCxLQUF5QmtCO0lBQ3hDLHNDQURlbEIsVUFBeUJrQjtHQUNnQjtZQUV0RGtDLG1CQUFvQmxDO0lBQ3RCLEdBcEpFRCxjQW1Kb0JDLElBRXRCLE9BOUlFQyxVQTRJb0JEO0lBQ3RCO0dBQzRDO1lBRTFDbUMsa0JBQW1CbkM7SUFDckIsS0F4SkVELGNBdUptQkM7S0FDckI7SUFDNEQsVUFwSzFETCxhQWtLbUJLLE9BRWpCb0MsYUFoS0Z2QyxjQThKbUJHO0lBR3JCLE9BbkpFQyxVQWdKbUJELFlBRWpCb0M7R0FDaUQ7WUFFbkRDLFdBQVl0RCxHQUNkLGFBRGNBLGtDQUMwQztZQUdsRHVELFVBQVdqRCxJQUFZQztJQUM3QixHQURpQkQsVUFBWUMsU0FBWkQsVUFBWUM7c0JBQVpELFFBQVlDO0lBTWpCLElBQU5pRCxNQTdCSlAsY0F1QmUzQyxJQUFZQztJQU8zQixPQURJaUQsS0FJUyxPQWRiRixXQUlJQyxVQUF1QmhELElBQVpEO0lBZVg7YUFuS0FjLCtCQW9KdUJiO0tBY1JrRDtLQUFiQztLQUlBQyxhQUpBRCxhQUFhRDtLQWdCZixNQTlCQUYsVUFBV2pELElBa0JUcUQ7V0FsQnFCcEQ7S0E0QjJCLE1Bdk10REssYUEySzJCTDtJQThCdkIsT0FqT0pGO3dCQTRCQVMsY0F1SzJCUDtHQThCRjtZQUV6QnFELFlBQWEzQyxHQUE4QixXQUE5QkEsa0JBQW9EO1lBRWpFNEMsZUFBZ0I3RCxHQUFnQyxXQUFoQ0Esa0JBQXlEOzs7Ozs7T0EzTHpFa0I7T0EySEFVO09BOEJJMkI7T0F2QkpOO09BdURBVztPQWhEQVY7T0FHQUM7T0FJQUM7T0FsS0F4QztPQTNCQVg7T0FrTUFxRDtPQS9MQWpEO09BT0FHO09BT0FDO09BcEJBWDtPQXlCQWE7T0FrTkFrRDs7O0VEaFJMOzs7Ozs7Ozs7Ozs7Ozs7RUNBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0NHQzs7Ozs7OztJQXduQ1FDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTFuQ0pHO0lBZ0tBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE5Sko7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHR09tQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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O09BdUNBdEs7T0EwQ0F1SztPQStDQUM7T0FVQUM7T0FrQ0FDO09Ba0NBQztPQXlFQUM7T0FzQkFDO09BcURBQztPQW9DQUM7T0EwRUFDO09Bb0NBQztPQThFQUM7T0F5QkFDO09BZ0RBQztPQW9CQUM7T0E4QkFDO09BTUFDO09BaUJBQztPQWdCQUM7T0E2QkF0TjtPQVlBdU47T0FxQkFDO09BY0FDO09BdUJBcHJCO09BUUFDO09BZ0JBTjtPQVlBQztPQW9CQWpKO09BV0FrSjtPQWdCQUM7T0FLQUM7T0FlQXNyQjtPQWtCQUM7T0FtQkZDO09BU0FqZDtPQVNBa2Q7T0FTQUM7T0FTQXhqQjtPQVNBSTtPQVNBL0g7T0FTQUQ7T0FTQTNKO09BU0FHO09BS0E2MEI7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQUM7T0FTQTdSO09BU0E4UjtPQVNBck87T0FTQU07T0FTQVg7T0FTQTJPOzs7Ozs7RUoxNkpMOzs7Ozs7Ozs7Ozs7Ozs7O0dJQUE7Ozs7Ozs7Ozs7Ozs7OztJQzRDVTtzQkFBc0JDOztlQUdaOzs7O29CQUhZQTs7Y0FNSztjQUxBO2FBS0M7R0FBQzs7SUFqQjdCO3NCQUFzQkM7O2VBR1o7Ozs7b0JBSFlBOztjQU1RO2NBTEg7YUFLSTtHQUFDOztHQVp2Qzs7Ozs7Ozs7RUQzQkg7Ozs7Ozs7Ozs7Ozs7R0NBQTs7Ozs7Ozs7R0NrQlM7Ozs7RURsQlQiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZmZzZXRcbnZhciBjYW1sX2ludDY0X29mZnNldCA9IE1hdGgucG93KDIsIC0yNCk7XG5cbi8vUHJvdmlkZXM6IE1sSW50NjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2Zmc2V0LCBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG5mdW5jdGlvbiBNbEludDY0IChsbyxtaSxoaSkge1xuICB0aGlzLmxvID0gbG8gJiAweGZmZmZmZjtcbiAgdGhpcy5taSA9IG1pICYgMHhmZmZmZmY7XG4gIHRoaXMuaGkgPSBoaSAmIDB4ZmZmZjtcbn1cbk1sSW50NjQucHJvdG90eXBlLmNhbWxfY3VzdG9tID0gXCJfalwiXG5NbEludDY0LnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sbyx0aGlzLm1pLHRoaXMuaGkpO1xufVxuXG5NbEludDY0LnByb3RvdHlwZS51Y29tcGFyZSA9IGZ1bmN0aW9uICh4KSB7XG4gIGlmICh0aGlzLmhpID4geC5oaSkgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmhpIDwgeC5oaSkgcmV0dXJuIC0xO1xuICBpZiAodGhpcy5taSA+IHgubWkpIHJldHVybiAxO1xuICBpZiAodGhpcy5taSA8IHgubWkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubG8gPiB4LmxvKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubG8gPCB4LmxvKSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBoaSA9IHRoaXMuaGkgPDwgMTY7XG4gIHZhciB4aGkgPSB4LmhpIDw8IDE2O1xuICBpZiAoaGkgPiB4aGkpIHJldHVybiAxO1xuICBpZiAoaGkgPCB4aGkpIHJldHVybiAtMTtcbiAgaWYgKHRoaXMubWkgPiB4Lm1pKSByZXR1cm4gMTtcbiAgaWYgKHRoaXMubWkgPCB4Lm1pKSByZXR1cm4gLTE7XG4gIGlmICh0aGlzLmxvID4geC5sbykgcmV0dXJuIDE7XG4gIGlmICh0aGlzLmxvIDwgeC5sbykgcmV0dXJuIC0xO1xuICByZXR1cm4gMDtcbn1cbk1sSW50NjQucHJvdG90eXBlLm5lZyA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGxvID0gLSB0aGlzLmxvO1xuICB2YXIgbWkgPSAtIHRoaXMubWkgKyAobG8gPj4gMjQpO1xuICB2YXIgaGkgPSAtIHRoaXMuaGkgKyAobWkgPj4gMjQpO1xuICByZXR1cm4gbmV3IE1sSW50NjQobG8sIG1pLCBoaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgbG8gPSB0aGlzLmxvICsgeC5sbztcbiAgdmFyIG1pID0gdGhpcy5taSArIHgubWkgKyAobG8gPj4gMjQpO1xuICB2YXIgaGkgPSB0aGlzLmhpICsgeC5oaSArIChtaSA+PiAyNCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NChsbywgbWksIGhpKTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnN1YiA9IGZ1bmN0aW9uICh4KSB7XG4gIHZhciBsbyA9IHRoaXMubG8gLSB4LmxvO1xuICB2YXIgbWkgPSB0aGlzLm1pIC0geC5taSArIChsbyA+PiAyNCk7XG4gIHZhciBoaSA9IHRoaXMuaGkgLSB4LmhpICsgKG1pID4+IDI0KTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubXVsID0gZnVuY3Rpb24gKHgpIHtcbiAgdmFyIGxvID0gdGhpcy5sbyAqIHgubG87XG4gIHZhciBtaSA9ICgobG8gKiBjYW1sX2ludDY0X29mZnNldCkgfCAwKSArIHRoaXMubWkgKiB4LmxvICsgdGhpcy5sbyAqIHgubWk7XG4gIHZhciBoaSA9ICgobWkgKiBjYW1sX2ludDY0X29mZnNldCkgfCAwKSArIHRoaXMuaGkgKiB4LmxvICsgdGhpcy5taSAqIHgubWkgKyB0aGlzLmxvICogeC5oaTtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuaXNaZXJvID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gKHRoaXMubG98dGhpcy5taXx0aGlzLmhpKSA9PSAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuaXNOZWcgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAodGhpcy5oaSA8PCAxNikgPCAwO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuYW5kID0gZnVuY3Rpb24gKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHRoaXMubG8gJiB4LmxvLCB0aGlzLm1pICYgeC5taSwgdGhpcy5oaSAmIHguaGkpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUub3IgPSBmdW5jdGlvbiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sb3x4LmxvLCB0aGlzLm1pfHgubWksIHRoaXMuaGl8eC5oaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS54b3IgPSBmdW5jdGlvbiAoeCkge1xuICByZXR1cm4gbmV3IE1sSW50NjQodGhpcy5sb154LmxvLCB0aGlzLm1pXngubWksIHRoaXMuaGleeC5oaSk7XG59XG5NbEludDY0LnByb3RvdHlwZS5zaGlmdF9sZWZ0ID0gZnVuY3Rpb24gKHMpIHtcbiAgcyA9IHMgJiA2MztcbiAgaWYgKHMgPT0gMCkgcmV0dXJuIHRoaXM7XG4gIGlmIChzIDwgMjQpIHtcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKHRoaXMubG8gPDwgcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm1pIDw8IHMpIHwgKHRoaXMubG8gPj4gKDI0IC0gcykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGkgPDwgcykgfCAodGhpcy5taSA+PiAoMjQgLSBzKSkpO1xuICB9XG4gIGlmIChzIDwgNDgpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0ICgwLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sbyA8PCAocyAtIDI0KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm1pIDw8IChzIC0gMjQpKSB8ICh0aGlzLmxvID4+ICg0OCAtIHMpKSk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCgwLCAwLCB0aGlzLmxvIDw8IChzIC0gNDgpKVxufVxuTWxJbnQ2NC5wcm90b3R5cGUuc2hpZnRfcmlnaHRfdW5zaWduZWQgPSBmdW5jdGlvbiAocykge1xuICBzID0gcyAmIDYzO1xuICBpZiAocyA9PSAwKSByZXR1cm4gdGhpcztcbiAgaWYgKHMgPCAyNClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubG8gPj4gcykgfCAodGhpcy5taSA8PCAoMjQgLSBzKSksXG4gICAgICAodGhpcy5taSA+PiBzKSB8ICh0aGlzLmhpIDw8ICgyNCAtIHMpKSxcbiAgICAgICh0aGlzLmhpID4+IHMpKTtcbiAgaWYgKHMgPCA0OClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubWkgPj4gKHMgLSAyNCkpIHwgKHRoaXMuaGkgPDwgKDQ4IC0gcykpLFxuICAgICAgKHRoaXMuaGkgPj4gKHMgLSAyNCkpLFxuICAgICAgMCk7XG4gIHJldHVybiBuZXcgTWxJbnQ2NCAodGhpcy5oaSA+PiAocyAtIDQ4KSwgMCwgMCk7XG59XG5NbEludDY0LnByb3RvdHlwZS5zaGlmdF9yaWdodCA9IGZ1bmN0aW9uIChzKSB7XG4gIHMgPSBzICYgNjM7XG4gIGlmIChzID09IDApIHJldHVybiB0aGlzO1xuICB2YXIgaCA9ICh0aGlzLmhpIDw8IDE2KSA+PiAxNjtcbiAgaWYgKHMgPCAyNClcbiAgICByZXR1cm4gbmV3IE1sSW50NjQgKFxuICAgICAgKHRoaXMubG8gPj4gcykgfCAodGhpcy5taSA8PCAoMjQgLSBzKSksXG4gICAgICAodGhpcy5taSA+PiBzKSB8IChoIDw8ICgyNCAtIHMpKSxcbiAgICAgICgodGhpcy5oaSA8PCAxNikgPj4gcykgPj4+IDE2KTtcbiAgdmFyIHNpZ24gPSAodGhpcy5oaSA8PCAxNikgPj4gMzE7XG4gIGlmIChzIDwgNDgpXG4gICAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICAgICh0aGlzLm1pID4+IChzIC0gMjQpKSB8ICh0aGlzLmhpIDw8ICg0OCAtIHMpKSxcbiAgICAgICh0aGlzLmhpIDw8IDE2KSA+PiAocyAtIDI0KSA+PiAxNixcbiAgICAgIHNpZ24gJiAweGZmZmYpO1xuICByZXR1cm4gbmV3IE1sSW50NjQgKCh0aGlzLmhpIDw8IDE2KSA+PiAocyAtIDMyKSwgc2lnbiwgc2lnbik7XG59XG5NbEludDY0LnByb3RvdHlwZS5sc2wxID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmhpID0gKHRoaXMuaGkgPDwgMSkgfCAodGhpcy5taSA+PiAyMyk7XG4gIHRoaXMubWkgPSAoKHRoaXMubWkgPDwgMSkgfCAodGhpcy5sbyA+PiAyMykpICYgMHhmZmZmZmY7XG4gIHRoaXMubG8gPSAodGhpcy5sbyA8PCAxKSAmIDB4ZmZmZmZmO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUubHNyMSA9IGZ1bmN0aW9uICgpIHtcbiAgdGhpcy5sbyA9ICgodGhpcy5sbyA+Pj4gMSkgfCAodGhpcy5taSA8PCAyMykpICYgMHhmZmZmZmY7XG4gIHRoaXMubWkgPSAoKHRoaXMubWkgPj4+IDEpIHwgKHRoaXMuaGkgPDwgMjMpKSAmIDB4ZmZmZmZmO1xuICB0aGlzLmhpID0gdGhpcy5oaSA+Pj4gMTtcbn1cbk1sSW50NjQucHJvdG90eXBlLnVkaXZtb2QgPSBmdW5jdGlvbiAoeCkge1xuICB2YXIgb2Zmc2V0ID0gMDtcbiAgdmFyIG1vZHVsdXMgPSB0aGlzLmNvcHkoKTtcbiAgdmFyIGRpdmlzb3IgPSB4LmNvcHkoKTtcbiAgdmFyIHF1b3RpZW50ID0gbmV3IE1sSW50NjQoMCwwLDApO1xuICB3aGlsZSAobW9kdWx1cy51Y29tcGFyZShkaXZpc29yKSA+IDApIHtcbiAgICBvZmZzZXQrKztcbiAgICBkaXZpc29yLmxzbDEoKTtcbiAgfVxuICB3aGlsZSAob2Zmc2V0ID49IDApIHtcbiAgICBvZmZzZXQgLS07XG4gICAgcXVvdGllbnQubHNsMSgpO1xuICAgIGlmIChtb2R1bHVzLnVjb21wYXJlKGRpdmlzb3IpID49IDApIHtcbiAgICAgIHF1b3RpZW50LmxvICsrO1xuICAgICAgbW9kdWx1cyA9IG1vZHVsdXMuc3ViKGRpdmlzb3IpO1xuICAgIH1cbiAgICBkaXZpc29yLmxzcjEoKTtcbiAgfVxuICByZXR1cm4geyBxdW90aWVudCA6IHF1b3RpZW50LCBtb2R1bHVzIDogbW9kdWx1cyB9O1xufVxuTWxJbnQ2NC5wcm90b3R5cGUuZGl2ID0gZnVuY3Rpb24gKHkpXG57XG4gIHZhciB4ID0gdGhpcztcbiAgaWYgKHkuaXNaZXJvKCkpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHZhciBzaWduID0geC5oaSBeIHkuaGk7XG4gIGlmICh4LmhpICYgMHg4MDAwKSB4ID0geC5uZWcoKTtcbiAgaWYgKHkuaGkgJiAweDgwMDApIHkgPSB5Lm5lZygpO1xuICB2YXIgcSA9IHgudWRpdm1vZCh5KS5xdW90aWVudDtcbiAgaWYgKHNpZ24gJiAweDgwMDApIHEgPSBxLm5lZygpO1xuICByZXR1cm4gcTtcbn1cbk1sSW50NjQucHJvdG90eXBlLm1vZCA9IGZ1bmN0aW9uICh5KVxue1xuICB2YXIgeCA9IHRoaXM7XG4gIGlmICh5LmlzWmVybygpKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpO1xuICB2YXIgc2lnbiA9IHguaGk7XG4gIGlmICh4LmhpICYgMHg4MDAwKSB4ID0geC5uZWcoKTtcbiAgaWYgKHkuaGkgJiAweDgwMDApIHkgPSB5Lm5lZygpO1xuICB2YXIgciA9IHgudWRpdm1vZCh5KS5tb2R1bHVzO1xuICBpZiAoc2lnbiAmIDB4ODAwMCkgciA9IHIubmVnKCk7XG4gIHJldHVybiByO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudG9JbnQgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiB0aGlzLmxvIHwgKHRoaXMubWkgPDwgMjQpO1xufVxuTWxJbnQ2NC5wcm90b3R5cGUudG9GbG9hdCA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuICgodGhpcy5oaSA8PCAxNikgKiBNYXRoLnBvdygyLCAzMikgKyB0aGlzLm1pICogTWF0aC5wb3coMiwgMjQpKSArIHRoaXMubG87XG59XG5NbEludDY0LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gW3RoaXMuaGkgPj4gOCxcbiAgICAgICAgICB0aGlzLmhpICYgMHhmZixcbiAgICAgICAgICB0aGlzLm1pID4+IDE2LFxuICAgICAgICAgICh0aGlzLm1pID4+IDgpICYgMHhmZixcbiAgICAgICAgICB0aGlzLm1pICYgMHhmZixcbiAgICAgICAgICB0aGlzLmxvID4+IDE2LFxuICAgICAgICAgICh0aGlzLmxvID4+IDgpICYgMHhmZixcbiAgICAgICAgICB0aGlzLmxvICYgMHhmZl07XG59XG5NbEludDY0LnByb3RvdHlwZS5sbzMyID0gZnVuY3Rpb24gKCkge1xuICByZXR1cm4gdGhpcy5sbyB8ICgodGhpcy5taSAmIDB4ZmYpIDw8IDI0KTtcbn1cbk1sSW50NjQucHJvdG90eXBlLmhpMzIgPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiAoKHRoaXMubWkgPj4+IDgpICYgMHhmZmZmKSB8ICh0aGlzLmhpIDw8IDE2KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF91bHQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdWx0KHgseSkgeyByZXR1cm4geC51Y29tcGFyZSh5KSA8IDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9jb21wYXJlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2NvbXBhcmUoeCx5LCB0b3RhbCkgeyByZXR1cm4geC5jb21wYXJlKHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9uZWcgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbmVnICh4KSB7IHJldHVybiB4Lm5lZygpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9hZGQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYWRkICh4LCB5KSB7IHJldHVybiB4LmFkZCh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc3ViIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3N1YiAoeCwgeSkgeyByZXR1cm4geC5zdWIoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X211bCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbXVsKHgseSkgeyByZXR1cm4geC5tdWwoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2lzX3plcm8gY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfaXNfemVybyh4KSB7IHJldHVybiAreC5pc1plcm8oKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2lzX25lZ2F0aXZlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2lzX25lZ2F0aXZlKHgpIHsgcmV0dXJuICt4LmlzTmVnKCk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9hbmQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfYW5kICh4LCB5KSB7IHJldHVybiB4LmFuZCh5KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29yIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29yICh4LCB5KSB7IHJldHVybiB4Lm9yKHkpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfeG9yIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3hvciAoeCwgeSkgeyByZXR1cm4geC54b3IoeSkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3NoaWZ0X2xlZnQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc2hpZnRfbGVmdCAoeCwgcykgeyByZXR1cm4geC5zaGlmdF9sZWZ0KHMpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZCAoeCwgcykgeyByZXR1cm4geC5zaGlmdF9yaWdodF91bnNpZ25lZChzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfc2hpZnRfcmlnaHQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfc2hpZnRfcmlnaHQgKHgsIHMpIHsgcmV0dXJuIHguc2hpZnRfcmlnaHQocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2RpdiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9kaXYgKHgsIHkpIHsgcmV0dXJuIHguZGl2KHkpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9tb2QgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbW9kICh4LCB5KSB7IHJldHVybiB4Lm1vZCh5KSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfb2ZfaW50MzIgY29uc3Rcbi8vUmVxdWlyZXM6IE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2ZfaW50MzIgKHgpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KHggJiAweGZmZmZmZiwgKHggPj4gMjQpICYgMHhmZmZmZmYsICh4ID4+IDMxKSAmIDB4ZmZmZilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF90b19pbnQzMiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF90b19pbnQzMiAoeCkgeyByZXR1cm4geC50b0ludCgpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF90b19mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF90b19mbG9hdCAoeCkgeyByZXR1cm4geC50b0Zsb2F0ICgpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9vZl9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZmZzZXQsIE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2ZfZmxvYXQgKHgpIHtcbiAgaWYgKHggPCAwKSB4ID0gTWF0aC5jZWlsKHgpO1xuICByZXR1cm4gbmV3IE1sSW50NjQoXG4gICAgeCAmIDB4ZmZmZmZmLFxuICAgIE1hdGguZmxvb3IoeCAqIGNhbWxfaW50NjRfb2Zmc2V0KSAmIDB4ZmZmZmZmLFxuICAgIE1hdGguZmxvb3IoeCAqIGNhbWxfaW50NjRfb2Zmc2V0ICogY2FtbF9pbnQ2NF9vZmZzZXQpICYgMHhmZmZmKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9mb3JtYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VfZm9ybWF0LCBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2lzX25lZ2F0aXZlLCBjYW1sX2ludDY0X25lZ1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9pbnQzMiwgY2FtbF9pbnQ2NF90b19pbnQzMlxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9pc196ZXJvLCBjYW1sX3N0cl9yZXBlYXRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfZm9ybWF0IChmbXQsIHgpIHtcbiAgdmFyIGYgPSBjYW1sX3BhcnNlX2Zvcm1hdChmbXQpO1xuICBpZiAoZi5zaWduZWRjb252ICYmIGNhbWxfaW50NjRfaXNfbmVnYXRpdmUoeCkpIHtcbiAgICBmLnNpZ24gPSAtMTsgeCA9IGNhbWxfaW50NjRfbmVnKHgpO1xuICB9XG4gIHZhciBidWZmZXIgPSBcIlwiO1xuICB2YXIgd2Jhc2UgPSBjYW1sX2ludDY0X29mX2ludDMyKGYuYmFzZSk7XG4gIHZhciBjdnRibCA9IFwiMDEyMzQ1Njc4OWFiY2RlZlwiO1xuICBkbyB7XG4gICAgdmFyIHAgPSB4LnVkaXZtb2Qod2Jhc2UpO1xuICAgIHggPSBwLnF1b3RpZW50O1xuICAgIGJ1ZmZlciA9IGN2dGJsLmNoYXJBdChjYW1sX2ludDY0X3RvX2ludDMyKHAubW9kdWx1cykpICsgYnVmZmVyO1xuICB9IHdoaWxlICghIGNhbWxfaW50NjRfaXNfemVybyh4KSk7XG4gIGlmIChmLnByZWMgPj0gMCkge1xuICAgIGYuZmlsbGVyID0gJyAnO1xuICAgIHZhciBuID0gZi5wcmVjIC0gYnVmZmVyLmxlbmd0aDtcbiAgICBpZiAobiA+IDApIGJ1ZmZlciA9IGNhbWxfc3RyX3JlcGVhdCAobiwgJzAnKSArIGJ1ZmZlcjtcbiAgfVxuICByZXR1cm4gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCBidWZmZXIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX3BhcnNlX2RpZ2l0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2ludDMyLCBjYW1sX2ludDY0X3VsdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9hZGQsIGNhbWxfaW50NjRfbXVsLCBjYW1sX2ludDY0X25lZ1xuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIE1sSW50NjRcbmZ1bmN0aW9uIGNhbWxfaW50NjRfb2Zfc3RyaW5nKHMpIHtcbiAgdmFyIHIgPSBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UgKHMpO1xuICB2YXIgaSA9IHJbMF0sIHNpZ24gPSByWzFdLCBiYXNlID0gclsyXTtcbiAgdmFyIGJhc2U2NCA9IGNhbWxfaW50NjRfb2ZfaW50MzIoYmFzZSk7XG4gIHZhciB0aHJlc2hvbGQgPVxuICAgICAgbmV3IE1sSW50NjQoMHhmZmZmZmYsIDB4ZmZmZmZmZiwgMHhmZmZmKS51ZGl2bW9kKGJhc2U2NCkucXVvdGllbnQ7XG4gIHZhciBjID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKTtcbiAgdmFyIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgdmFyIHJlcyA9IGNhbWxfaW50NjRfb2ZfaW50MzIoZCk7XG4gIGZvciAoOzspIHtcbiAgICBpKys7XG4gICAgYyA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk7XG4gICAgaWYgKGMgPT0gOTUpIGNvbnRpbnVlO1xuICAgIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICAgIGlmIChkIDwgMCB8fCBkID49IGJhc2UpIGJyZWFrO1xuICAgIC8qIERldGVjdCBvdmVyZmxvdyBpbiBtdWx0aXBsaWNhdGlvbiBiYXNlICogcmVzICovXG4gICAgaWYgKGNhbWxfaW50NjRfdWx0KHRocmVzaG9sZCwgcmVzKSkgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gICAgZCA9IGNhbWxfaW50NjRfb2ZfaW50MzIoZCk7XG4gICAgcmVzID0gY2FtbF9pbnQ2NF9hZGQoY2FtbF9pbnQ2NF9tdWwoYmFzZTY0LCByZXMpLCBkKTtcbiAgICAvKiBEZXRlY3Qgb3ZlcmZsb3cgaW4gYWRkaXRpb24gKGJhc2UgKiByZXMpICsgZCAqL1xuICAgIGlmIChjYW1sX2ludDY0X3VsdChyZXMsIGQpKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgfVxuICBpZiAoaSAhPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocykpIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICBpZiAoYmFzZSA9PSAxMCAmJiBjYW1sX2ludDY0X3VsdChuZXcgTWxJbnQ2NCgwLCAwLCAweDgwMDApLCByZXMpKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICBpZiAoc2lnbiA8IDApIHJlcyA9IGNhbWxfaW50NjRfbmVnKHJlcyk7XG4gIHJldHVybiByZXM7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaShsbywgbWksIGhpKXtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGxvLCBtaSwgaGkpXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSBjb25zdFxuLy9SZXF1aXJlczogTWxJbnQ2NFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkobG8sIGhpKXtcbiAgcmV0dXJuIG5ldyBNbEludDY0IChcbiAgICBsbyAmIDB4ZmZmZmZmLFxuICAgICgobG8gPj4+IDI0KSAmIDB4ZmYpIHwgKChoaSAmIDB4ZmZmZikgPDwgOCksXG4gICAgKGhpID4+PiAxNikgJiAweGZmZmYpO1xufVxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9sbzMyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2xvMzIodil7IHJldHVybiB2LmxvMzIoKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW50NjRfaGkzMiBjb25zdFxuZnVuY3Rpb24gY2FtbF9pbnQ2NF9oaTMyKHYpeyByZXR1cm4gdi5oaTMyKCkgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X29mX2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEludDY0XG5mdW5jdGlvbiBjYW1sX2ludDY0X29mX2J5dGVzKGEpIHtcbiAgcmV0dXJuIG5ldyBNbEludDY0KGFbN10gPDwgMCB8IChhWzZdIDw8IDgpIHwgKGFbNV0gPDwgMTYpLFxuICAgICAgICAgICAgICAgICAgICAgYVs0XSA8PCAwIHwgKGFbM10gPDwgOCkgfCAoYVsyXSA8PCAxNiksXG4gICAgICAgICAgICAgICAgICAgICBhWzFdIDw8IDAgfCAoYVswXSA8PCA4KSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X3RvX2J5dGVzIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X3RvX2J5dGVzKHgpIHsgcmV0dXJuIHgudG9BcnJheSgpIH1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9oYXNoIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2ludDY0X2hhc2godil7XG4gIHJldHVybiAodi5sbzMyKCkpIF4gKHYuaGkzMigpKVxufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwLTIwMTQgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8gQW4gT0NhbWwgc3RyaW5nIGlzIGFuIG9iamVjdCB3aXRoIHRocmVlIGZpZWxkczpcbi8vIC0gdGFnICd0J1xuLy8gLSBsZW5ndGggJ2wnXG4vLyAtIGNvbnRlbnRzICdjJ1xuLy9cbi8vIFRoZSBjb250ZW50cyBvZiB0aGUgc3RyaW5nIGNhbiBiZSBlaXRoZXIgYSBKYXZhU2NyaXB0IGFycmF5IG9yXG4vLyBhIEphdmFTY3JpcHQgc3RyaW5nLiBUaGUgbGVuZ3RoIG9mIHRoaXMgc3RyaW5nIGNhbiBiZSBsZXNzIHRoYW4gdGhlXG4vLyBsZW5ndGggb2YgdGhlIE9DYW1sIHN0cmluZy4gSW4gdGhpcyBjYXNlLCByZW1haW5pbmcgYnl0ZXMgYXJlXG4vLyBhc3N1bWVkIHRvIGJlIHplcm9lcy4gQXJyYXlzIGFyZSBtdXRhYmxlIGJ1dCBjb25zdW1lcyBtb3JlIG1lbW9yeVxuLy8gdGhhbiBzdHJpbmdzLiBBIGNvbW1vbiBwYXR0ZXJuIGlzIHRvIHN0YXJ0IGZyb20gYW4gZW1wdHkgc3RyaW5nIGFuZFxuLy8gcHJvZ3Jlc3NpdmVseSBmaWxsIGl0IGZyb20gdGhlIHN0YXJ0LiBQYXJ0aWFsIHN0cmluZ3MgbWFrZXMgaXRcbi8vIHBvc3NpYmxlIHRvIGltcGxlbWVudCB0aGlzIGVmZmljaWVudGx5LlxuLy9cbi8vIFdoZW4gY29udmVydGluZyB0byBhbmQgZnJvbSBVVEYtMTYsIHdlIGtlZXAgdHJhY2sgb2Ygd2hldGhlciB0aGVcbi8vIHN0cmluZyBpcyBjb21wb3NlZCBvbmx5IG9mIEFTQ0lJIGNoYXJhY3RlcnMgKGluIHdoaWNoIGNhc2UsIG5vXG4vLyBjb252ZXJzaW9uIG5lZWRzIHRvIGJlIHBlcmZvcm1lZCkgb3Igbm90LlxuLy9cbi8vIFRoZSBzdHJpbmcgdGFnIGNhbiB0aHVzIHRha2UgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4vLyAgIGZ1bGwgc3RyaW5nICAgICBCWVRFIHwgVU5LTk9XTjogICAgICAwXG4vLyAgICAgICAgICAgICAgICAgICBCWVRFIHwgQVNDSUk6ICAgICAgICA5XG4vLyAgICAgICAgICAgICAgICAgICBCWVRFIHwgTk9UX0FTQ0lJOiAgICA4XG4vLyAgIHN0cmluZyBwcmVmaXggICBQQVJUSUFMOiAgICAgICAgICAgICAyXG4vLyAgIGFycmF5ICAgICAgICAgICBBUlJBWTogICAgICAgICAgICAgICA0XG4vL1xuLy8gT25lIGNhbiB1c2UgYml0IG1hc2tpbmcgdG8gZGlzY3JpbWluYXRlIHRoZXNlIGRpZmZlcmVudCBjYXNlczpcbi8vICAga25vd25fZW5jb2RpbmcoeCkgPSB4Jjhcbi8vICAgaXNfYXNjaWkoeCkgPSAgICAgICB4JjFcbi8vICAga2luZCh4KSA9ICAgICAgICAgICB4JjZcblxuLy9Qcm92aWRlczogY2FtbF9zdHJfcmVwZWF0XG5mdW5jdGlvbiBjYW1sX3N0cl9yZXBlYXQobiwgcykge1xuICBpZihuID09IDApIHJldHVybiBcIlwiO1xuICBpZiAocy5yZXBlYXQpIHtyZXR1cm4gcy5yZXBlYXQobik7fSAvLyBFQ01Bc2NyaXB0IDYgYW5kIEZpcmVmb3ggMjQrXG4gIHZhciByID0gXCJcIiwgbCA9IDA7XG4gIGZvcig7Oykge1xuICAgIGlmIChuICYgMSkgciArPSBzO1xuICAgIG4gPj49IDE7XG4gICAgaWYgKG4gPT0gMCkgcmV0dXJuIHI7XG4gICAgcyArPSBzO1xuICAgIGwrKztcbiAgICBpZiAobCA9PSA5KSB7XG4gICAgICBzLnNsaWNlKDAsMSk7IC8vIGZsYXR0ZW4gdGhlIHN0cmluZ1xuICAgICAgLy8gdGhlbiwgdGhlIGZsYXR0ZW5pbmcgb2YgdGhlIHdob2xlIHN0cmluZyB3aWxsIGJlIGZhc3RlcixcbiAgICAgIC8vIGFzIGl0IHdpbGwgYmUgY29tcG9zZWQgb2YgbGFyZ2VyIHBpZWNlc1xuICAgIH1cbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXNcbi8vV2Vha2RlZlxuLy8gUHJlIEVDTUFTY3JpcHQgNSwgW2FwcGx5XSB3b3VsZCBub3Qgc3VwcG9ydCBhcnJheS1saWtlIG9iamVjdC5cbi8vIEluIHN1Y2ggc2V0dXAsIFR5cGVkX2FycmF5IHdvdWxkIGJlIGltcGxlbWVudGVkIGFzIHBvbHlmaWxsLCBhbmQgW2YuYXBwbHldIHdvdWxkXG4vLyBmYWlsIGhlcmUuIE1hcmsgdGhlIHByaW1pdGl2ZSBhcyBXZWFrZGVmLCBzbyB0aGF0IHBlb3BsZSBjYW4gb3ZlcnJpZGUgaXQgZWFzaWx5LlxuZnVuY3Rpb24gY2FtbF9zdWJhcnJheV90b19qc2J5dGVzIChhLCBpLCBsZW4pIHtcbiAgdmFyIGYgPSBTdHJpbmcuZnJvbUNoYXJDb2RlO1xuICBpZiAoaSA9PSAwICYmIGxlbiA8PSA0MDk2ICYmIGxlbiA9PSBhLmxlbmd0aCkgcmV0dXJuIGYuYXBwbHkgKG51bGwsIGEpO1xuICB2YXIgcyA9IFwiXCI7XG4gIGZvciAoOyAwIDwgbGVuOyBpICs9IDEwMjQsbGVuLT0xMDI0KVxuICAgIHMgKz0gZi5hcHBseSAobnVsbCwgYS5zbGljZShpLGkgKyBNYXRoLm1pbihsZW4sIDEwMjQpKSk7XG4gIHJldHVybiBzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3V0Zjhfb2ZfdXRmMTZcbmZ1bmN0aW9uIGNhbWxfdXRmOF9vZl91dGYxNihzKSB7XG4gIGZvciAodmFyIGIgPSBcIlwiLCB0ID0gYiwgYywgZCwgaSA9IDAsIGwgPSBzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgIGMgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgaWYgKGMgPCAweDgwKSB7XG4gICAgICBmb3IgKHZhciBqID0gaSArIDE7IChqIDwgbCkgJiYgKGMgPSBzLmNoYXJDb2RlQXQoaikpIDwgMHg4MDsgaisrKTtcbiAgICAgIGlmIChqIC0gaSA+IDUxMikgeyB0LnN1YnN0cigwLCAxKTsgYiArPSB0OyB0ID0gXCJcIjsgYiArPSBzLnNsaWNlKGksIGopIH1cbiAgICAgIGVsc2UgdCArPSBzLnNsaWNlKGksIGopO1xuICAgICAgaWYgKGogPT0gbCkgYnJlYWs7XG4gICAgICBpID0gajtcbiAgICB9XG4gICAgaWYgKGMgPCAweDgwMCkge1xuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4YzAgfCAoYyA+PiA2KSk7XG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHg4MCB8IChjICYgMHgzZikpO1xuICAgIH0gZWxzZSBpZiAoYyA8IDB4ZDgwMCB8fCBjID49IDB4ZGZmZikge1xuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZTAgfCAoYyA+PiAxMiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8ICgoYyA+PiA2KSAmIDB4M2YpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAgfCAoYyAmIDB4M2YpKTtcbiAgICB9IGVsc2UgaWYgKGMgPj0gMHhkYmZmIHx8IGkgKyAxID09IGwgfHxcbiAgICAgICAgICAgICAgIChkID0gcy5jaGFyQ29kZUF0KGkgKyAxKSkgPCAweGRjMDAgfHwgZCA+IDB4ZGZmZikge1xuICAgICAgLy8gVW5tYXRjaGVkIHN1cnJvZ2F0ZSBwYWlyLCByZXBsYWNlZCBieSBcXHVmZmZkIChyZXBsYWNlbWVudCBjaGFyYWN0ZXIpXG4gICAgICB0ICs9IFwiXFx4ZWZcXHhiZlxceGJkXCI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGkrKztcbiAgICAgIGMgPSAoYyA8PCAxMCkgKyBkIC0gMHgzNWZkYzAwO1xuICAgICAgdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4ZjAgfCAoYyA+PiAxOCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8ICgoYyA+PiAxMikgJiAweDNmKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwIHwgKChjID4+IDYpICYgMHgzZiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4MCB8IChjICYgMHgzZikpO1xuICAgIH1cbiAgICBpZiAodC5sZW5ndGggPiAxMDI0KSB7dC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7fVxuICB9XG4gIHJldHVybiBiK3Q7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdXRmMTZfb2ZfdXRmOFxuZnVuY3Rpb24gY2FtbF91dGYxNl9vZl91dGY4KHMpIHtcbiAgZm9yICh2YXIgYiA9IFwiXCIsIHQgPSBcIlwiLCBjLCBjMSwgYzIsIHYsIGkgPSAwLCBsID0gcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBjMSA9IHMuY2hhckNvZGVBdChpKTtcbiAgICBpZiAoYzEgPCAweDgwKSB7XG4gICAgICBmb3IgKHZhciBqID0gaSArIDE7IChqIDwgbCkgJiYgKGMxID0gcy5jaGFyQ29kZUF0KGopKSA8IDB4ODA7IGorKyk7XG4gICAgICBpZiAoaiAtIGkgPiA1MTIpIHsgdC5zdWJzdHIoMCwgMSk7IGIgKz0gdDsgdCA9IFwiXCI7IGIgKz0gcy5zbGljZShpLCBqKSB9XG4gICAgICBlbHNlIHQgKz0gcy5zbGljZShpLCBqKTtcbiAgICAgIGlmIChqID09IGwpIGJyZWFrO1xuICAgICAgaSA9IGo7XG4gICAgfVxuICAgIHYgPSAxO1xuICAgIGlmICgoKytpIDwgbCkgJiYgKCgoYzIgPSBzLmNoYXJDb2RlQXQoaSkpICYgLTY0KSA9PSAxMjgpKSB7XG4gICAgICBjID0gYzIgKyAoYzEgPDwgNik7XG4gICAgICBpZiAoYzEgPCAweGUwKSB7XG4gICAgICAgIHYgPSBjIC0gMHgzMDgwO1xuICAgICAgICBpZiAodiA8IDB4ODApIHYgPSAxO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdiA9IDI7XG4gICAgICAgIGlmICgoKytpIDwgbCkgJiYgKCgoYzIgPSBzLmNoYXJDb2RlQXQoaSkpICYgLTY0KSA9PSAxMjgpKSB7XG4gICAgICAgICAgYyA9IGMyICsgKGMgPDwgNik7XG4gICAgICAgICAgaWYgKGMxIDwgMHhmMCkge1xuICAgICAgICAgICAgdiA9IGMgLSAweGUyMDgwO1xuICAgICAgICAgICAgaWYgKCh2IDwgMHg4MDApIHx8ICgodiA+PSAweGQ3ZmYpICYmICh2IDwgMHhlMDAwKSkpIHYgPSAyO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ID0gMztcbiAgICAgICAgICAgIGlmICgoKytpIDwgbCkgJiYgKCgoYzIgPSBzLmNoYXJDb2RlQXQoaSkpICYgLTY0KSA9PSAxMjgpICYmXG4gICAgICAgICAgICAgICAgKGMxIDwgMHhmNSkpIHtcbiAgICAgICAgICAgICAgdiA9IGMyIC0gMHgzYzgyMDgwICsgKGMgPDwgNik7XG4gICAgICAgICAgICAgIGlmICh2IDwgMHgxMDAwMCB8fCB2ID4gMHgxMGZmZmYpIHYgPSAzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodiA8IDQpIHsgLy8gSW52YWxpZCBzZXF1ZW5jZVxuICAgICAgaSAtPSB2O1xuICAgICAgdCArPSBcIlxcdWZmZmRcIjtcbiAgICB9IGVsc2UgaWYgKHYgPiAweGZmZmYpXG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoMHhkN2MwICsgKHYgPj4gMTApLCAweGRjMDAgKyAodiAmIDB4M0ZGKSlcbiAgICBlbHNlXG4gICAgICB0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUodik7XG4gICAgaWYgKHQubGVuZ3RoID4gMTAyNCkge3Quc3Vic3RyKDAsIDEpOyBiICs9IHQ7IHQgPSBcIlwiO31cbiAgfVxuICByZXR1cm4gYit0O1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX2lzX2FzY2lpXG5mdW5jdGlvbiBqc29vX2lzX2FzY2lpIChzKSB7XG4gIC8vIFRoZSByZWd1bGFyIGV4cHJlc3Npb24gZ2V0cyBiZXR0ZXIgYXQgYXJvdW5kIHRoaXMgcG9pbnQgZm9yIGFsbCBicm93c2Vyc1xuICBpZiAocy5sZW5ndGggPCAyNCkge1xuICAgIC8vIFNwaWRlcm1vbmtleSBnZXRzIG11Y2ggc2xvd2VyIHdoZW4gcy5sZW5ndGggPj0gMjQgKG9uIDY0IGJpdCBhcmNocylcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHMubGVuZ3RoOyBpKyspIGlmIChzLmNoYXJDb2RlQXQoaSkgPiAxMjcpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBlbHNlXG4gICAgcmV0dXJuICEvW15cXHgwMC1cXHg3Zl0vLnRlc3Qocyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpIHtcbiAgc3dpdGNoIChzLnQgJiA2KSB7XG4gIGRlZmF1bHQ6IC8qIFBBUlRJQUwgKi9cbiAgICBpZiAoaSA+PSBzLmMubGVuZ3RoKSByZXR1cm4gMDtcbiAgY2FzZSAwOiAvKiBCWVRFUyAqL1xuICAgIHJldHVybiBzLmMuY2hhckNvZGVBdChpKTtcbiAgY2FzZSA0OiAvKiBBUlJBWSAqL1xuICAgIHJldHVybiBzLmNbaV1cbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9ieXRlc190b19hcnJheVxuZnVuY3Rpb24gY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpLCBjKSB7XG4gIC8vIFRoZSBPQ2FtbCBjb21waWxlciB1c2VzIENoYXIudW5zYWZlX2NociBvbiBpbnRlZ2VycyBsYXJnZXIgdGhhbiAyNTUhXG4gIGMgJj0gMHhmZjtcbiAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSB7XG4gICAgaWYgKGkgPT0gcy5jLmxlbmd0aCkge1xuICAgICAgcy5jICs9IFN0cmluZy5mcm9tQ2hhckNvZGUgKGMpO1xuICAgICAgaWYgKGkgKyAxID09IHMubCkgcy50ID0gMDsgLypCWVRFUyB8IFVOS09XTiovXG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5IChzKTtcbiAgfVxuICBzLmNbaV0gPSBjO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiaW5kZXggb3V0IG9mIGJvdW5kc1wiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yICgpIHtcbiAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcImluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ2V0IChzLCBpKSB7XG4gIGlmIChpID4+PiAwID49IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXQxNlxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ2V0MTYocyxpKSB7XG4gIGlmIChpID4+PiAwID49IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSAtIDEpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMSk7XG4gIHJldHVybiAoYjIgPDwgOCB8IGIxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXQxNlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0LCBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldDE2KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAxKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiMSA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDEpO1xuICByZXR1cm4gKGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dldDMyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19nZXQzMihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpIC0gMykgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSksXG4gICAgICBiMiA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKSxcbiAgICAgIGIzID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSArIDIpLFxuICAgICAgYjQgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpICsgMyk7XG4gIHJldHVybiAoYjQgPDwgMjQgfCBiMyA8PCAxNiB8IGIyIDw8IDggfCBiMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ2V0MzJcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCwgY2FtbF9ieXRlc19ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9ieXRlc19nZXQzMihzLGkpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sIC0gMykgY2FtbF9ieXRlc19ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkpLFxuICAgICAgYjIgPSBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQgKHMsIGkgKyAxKSxcbiAgICAgIGIzID0gY2FtbF9ieXRlc191bnNhZmVfZ2V0IChzLCBpICsgMiksXG4gICAgICBiNCA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIDMpO1xuICByZXR1cm4gKGI0IDw8IDI0IHwgYjMgPDwgMTYgfCBiMiA8PCA4IHwgYjEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19nZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCwgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ2V0NjQocyxpKSB7XG4gIGlmIChpID4+PiAwID49IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSAtIDcpIGNhbWxfc3RyaW5nX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBhID0gbmV3IEFycmF5KDgpO1xuICBmb3IodmFyIGogPSAwOyBqIDwgODsgaisrKXtcbiAgICBhWzcgLSBqXSA9IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgKHMsIGkgKyBqKTtcbiAgfVxuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19nZXQ2NFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0LCBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldDY0KHMsaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSA3KSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBhID0gbmV3IEFycmF5KDgpO1xuICBmb3IodmFyIGogPSAwOyBqIDwgODsgaisrKXtcbiAgICBhWzcgLSBqXSA9IGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSArIGopO1xuICB9XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2J5dGVzKGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfZ2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dldCAocywgaSkge1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfYnl0ZXNfdW5zYWZlX2dldCAocywgaSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3NldFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQgKHMsIGksIGMpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0LCBjYW1sX3N0cmluZ19ib3VuZF9lcnJvclxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0IChzLCBpLCBjKSB7XG4gIGlmIChpID4+PiAwID49IHMubCkgY2FtbF9zdHJpbmdfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0MTYocyxpLGkxNil7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDEpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIyID0gMHhGRiAmIGkxNiA+PiA4LFxuICAgICAgYjEgPSAweEZGICYgaTE2O1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAwLCBiMSk7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDEsIGIyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MTYocyxpLGkxNil7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXQxNlwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0MTZcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfc2V0MTZcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDE2KHMsaSxpMTYpe1xuICByZXR1cm4gY2FtbF9ieXRlc19zZXQxNihzLGksaTE2KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXQzMlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19ib3VuZF9lcnJvciwgY2FtbF9ieXRlc191bnNhZmVfc2V0XG5mdW5jdGlvbiBjYW1sX2J5dGVzX3NldDMyKHMsaSxpMzIpe1xuICBpZiAoaSA+Pj4gMCA+PSBzLmwgLSAzKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHZhciBiNCA9IDB4RkYgJiBpMzIgPj4gMjQsXG4gICAgICBiMyA9IDB4RkYgJiBpMzIgPj4gMTYsXG4gICAgICBiMiA9IDB4RkYgJiBpMzIgPj4gOCxcbiAgICAgIGIxID0gMHhGRiAmIGkzMjtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMCwgYjEpO1xuICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyAxLCBiMik7XG4gIGNhbWxfYnl0ZXNfdW5zYWZlX3NldCAocywgaSArIDIsIGIzKTtcbiAgY2FtbF9ieXRlc191bnNhZmVfc2V0IChzLCBpICsgMywgYjQpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQzMlxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19zZXQzMihzLGksaTMyKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3NldDMyXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19zZXQzMlxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19zZXQzMlxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0MzIocyxpLGkzMil7XG4gIHJldHVybiBjYW1sX2J5dGVzX3NldDMyKHMsaSxpMzIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yLCBjYW1sX2J5dGVzX3Vuc2FmZV9zZXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfc2V0NjQocyxpLGk2NCl7XG4gIGlmIChpID4+PiAwID49IHMubCAtIDcpIGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGEgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGk2NCk7XG4gIGZvcih2YXIgaiA9IDA7IGogPCA4OyBqKyspIHtcbiAgICBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGkgKyA3IC0gaiwgYVtqXSk7XG4gIH1cbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfc2V0NjQocyxpLGk2NCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3N0cmluZ19zZXQ2NFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfc2V0NjRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfc2V0NjRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3NldDY0KHMsaSxpNjQpe1xuICByZXR1cm4gY2FtbF9ieXRlc19zZXQ2NChzLGksaTY0KTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfYm91bmRfZXJyb3IsIGNhbWxfYnl0ZXNfdW5zYWZlX3NldFxuZnVuY3Rpb24gY2FtbF9ieXRlc19zZXQgKHMsIGksIGMpIHtcbiAgaWYgKGkgPj4+IDAgPj0gcy5sKSBjYW1sX2J5dGVzX2JvdW5kX2Vycm9yKCk7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQgKHMsIGksIGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBqc29vX2lzX2FzY2lpLCBjYW1sX3V0Zjhfb2ZfdXRmMTYsIE1sQnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfb2ZfdXRmMTZfanNzdHJpbmcgKHMpIHtcbiAgdmFyIHRhZyA9IDkgLyogQllURVMgfCBBU0NJSSAqLztcbiAgaWYgKCFqc29vX2lzX2FzY2lpKHMpKVxuICAgIHRhZyA9IDggLyogQllURVMgfCBOT1RfQVNDSUkgKi8sIHMgPSBjYW1sX3V0Zjhfb2ZfdXRmMTYocyk7XG4gIHJldHVybiBuZXcgTWxCeXRlcyh0YWcsIHMsIHMubGVuZ3RoKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbEJ5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzLCBqc29vX2lzX2FzY2lpLCBjYW1sX3V0ZjE2X29mX3V0ZjhcbmZ1bmN0aW9uIE1sQnl0ZXMgKHRhZywgY29udGVudHMsIGxlbmd0aCkge1xuICB0aGlzLnQ9dGFnOyB0aGlzLmM9Y29udGVudHM7IHRoaXMubD1sZW5ndGg7XG59XG5NbEJ5dGVzLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCl7XG4gIHN3aXRjaCAodGhpcy50KSB7XG4gIGNhc2UgOTogLypCWVRFUyB8IEFTQ0lJKi9cbiAgICByZXR1cm4gdGhpcy5jO1xuICBkZWZhdWx0OlxuICAgIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXModGhpcyk7XG4gIGNhc2UgMDogLypCWVRFUyB8IFVOS09XTiovXG4gICAgaWYgKGpzb29faXNfYXNjaWkodGhpcy5jKSkge1xuICAgICAgdGhpcy50ID0gOTsgLypCWVRFUyB8IEFTQ0lJKi9cbiAgICAgIHJldHVybiB0aGlzLmM7XG4gICAgfVxuICAgIHRoaXMudCA9IDg7IC8qQllURVMgfCBOT1RfQVNDSUkqL1xuICBjYXNlIDg6IC8qQllURVMgfCBOT1RfQVNDSUkqL1xuICAgIHJldHVybiB0aGlzLmM7XG4gIH1cbn07XG5NbEJ5dGVzLnByb3RvdHlwZS50b1V0ZjE2ID0gZnVuY3Rpb24gKCl7XG4gIHZhciByID0gdGhpcy50b1N0cmluZygpO1xuICBpZih0aGlzLnQgPT0gOSkgcmV0dXJuIHJcbiAgcmV0dXJuIGNhbWxfdXRmMTZfb2ZfdXRmOChyKTtcbn1cbk1sQnl0ZXMucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gKCl7XG4gIHZhciBjb250ZW50ID0gdGhpcy50ID09IDQgPyB0aGlzLmMuc2xpY2UoKSA6IHRoaXMuYztcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKHRoaXMudCxjb250ZW50LHRoaXMubCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyX3JlcGVhdCwgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzIChzKSB7XG4gIC8qIEFzc3VtZXMgbm90IEJZVEVTICovXG4gIGlmIChzLnQgPT0gMiAvKiBQQVJUSUFMICovKVxuICAgIHMuYyArPSBjYW1sX3N0cl9yZXBlYXQocy5sIC0gcy5jLmxlbmd0aCwgJ1xcMCcpXG4gIGVsc2VcbiAgICBzLmMgPSBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMgKHMuYywgMCwgcy5jLmxlbmd0aCk7XG4gIHMudCA9IDA7IC8qQllURVMgfCBVTktPV04qL1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheSAocykge1xuICAvKiBBc3N1bWVzIG5vdCBBUlJBWSAqL1xuICB2YXIgYSA9IG5ldyBVaW50OEFycmF5KHMubCk7XG4gIHZhciBiID0gcy5jLCBsID0gYi5sZW5ndGgsIGkgPSAwO1xuICBmb3IgKDsgaSA8IGw7IGkrKykgYVtpXSA9IGIuY2hhckNvZGVBdChpKTtcbiAgZm9yIChsID0gcy5sOyBpIDwgbDsgaSsrKSBhW2ldID0gMDtcbiAgcy5jID0gYTtcbiAgcy50ID0gNDsgLyogQVJSQVkgKi9cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG5mdW5jdGlvbiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzIChzKSB7XG4gIGlmIChzLnQgIT0gNCAvKiBBUlJBWSAqLykgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5KHMpO1xuICByZXR1cm4gcy5jO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9zdHJpbmdfdW5zYWZlX2dldFxuZnVuY3Rpb24gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcgKHMpIHtcbiAgdmFyIGwgPSBjYW1sX21sX3N0cmluZ19sZW5ndGgocyk7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICB2YXIgaSA9IDA7XG4gIGZvciAoOyBpIDwgbDsgaSsrKSBhW2ldID0gY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLGkpO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX3N0cmluZyhsZW4pIHtcbiAgaWYobGVuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiU3RyaW5nLmNyZWF0ZVwiKTtcbiAgcmV0dXJuIG5ldyBNbEJ5dGVzKGxlbj8yOjksXCJcIixsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NyZWF0ZV9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2NyZWF0ZV9zdHJpbmcobGVuKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0cmluZy5jcmVhdGVcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3JlYXRlX2J5dGVzIGNvbnN0XG4vL1JlcXVpcmVzOiBNbEJ5dGVzLGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9jcmVhdGVfYnl0ZXMobGVuKSB7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCeXRlcy5jcmVhdGVcIik7XG4gIHJldHVybiBuZXcgTWxCeXRlcyhsZW4/Mjo5LFwiXCIsbGVuKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfYXJyYXkgKGEpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKGEsMCxhLmxlbmd0aCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX29mX2FycmF5IChhKSB7XG4gIGlmKCEgKGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSkge1xuICAgIGEgPSBuZXcgVWludDhBcnJheShhKTtcbiAgfVxuICByZXR1cm4gbmV3IE1sQnl0ZXMoNCxhLGEubGVuZ3RoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19jb21wYXJlIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfYnl0ZXNfY29tcGFyZShzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDwgczIuYyk/LTE6KHMxLmMgPiBzMi5jKT8xOjA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19lcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2VxdWFsKHMxLCBzMikge1xuICBpZihzMSA9PT0gczIpIHJldHVybiAxO1xuICAoczEudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczEpO1xuICAoczIudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMoczIpO1xuICByZXR1cm4gKHMxLmMgPT0gczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19lcXVhbFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfbm90ZXF1YWwoczEsIHMyKSB7IHJldHVybiAxLWNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMik7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2VxdWFsXG5mdW5jdGlvbiBjYW1sX2J5dGVzX25vdGVxdWFsKHMxLCBzMikgeyByZXR1cm4gMS1jYW1sX2J5dGVzX2VxdWFsKHMxLCBzMik7IH1cblxuLy9Qcm92aWRlczogY2FtbF9ieXRlc19sZXNzZXF1YWwgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIChzMS50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMSk7XG4gIChzMi50ICYgNikgJiYgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzMik7XG4gIHJldHVybiAoczEuYyA8PSBzMi5jKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW4gbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19sZXNzdGhhbihzMSwgczIpIHtcbiAgKHMxLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMxKTtcbiAgKHMyLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMyKTtcbiAgcmV0dXJuIChzMS5jIDwgczIuYyk/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19ncmVhdGVyZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2xlc3NlcXVhbFxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ3JlYXRlcmVxdWFsKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfbGVzc2VxdWFsKHMyLHMxKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfZ3JlYXRlcmVxdWFsXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3NlcXVhbFxuZnVuY3Rpb24gY2FtbF9ieXRlc19ncmVhdGVyZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMixzMSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2dyZWF0ZXJ0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19sZXNzdGhhblxuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZ3JlYXRlcnRoYW4oczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMiwgczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX2xlc3N0aGFuXG5mdW5jdGlvbiBjYW1sX2J5dGVzX2dyZWF0ZXJ0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzdGhhbihzMiwgczEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbGxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfc3RyX3JlcGVhdCwgY2FtbF9jb252ZXJ0X2J5dGVzX3RvX2FycmF5XG4vL0FsaWFzOiBjYW1sX2ZpbGxfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2ZpbGxfYnl0ZXMocywgaSwgbCwgYykge1xuICBpZiAobCA+IDApIHtcbiAgICBpZiAoaSA9PSAwICYmIChsID49IHMubCB8fCAocy50ID09IDIgLyogUEFSVElBTCAqLyAmJiBsID49IHMuYy5sZW5ndGgpKSkge1xuICAgICAgaWYgKGMgPT0gMCkge1xuICAgICAgICBzLmMgPSBcIlwiO1xuICAgICAgICBzLnQgPSAyOyAvKiBQQVJUSUFMICovXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzLmMgPSBjYW1sX3N0cl9yZXBlYXQgKGwsIFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICAgICAgICBzLnQgPSAobCA9PSBzLmwpPzAgLyogQllURVMgfCBVTktPV04gKi8gOjI7IC8qIFBBUlRJQUwgKi9cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHMudCAhPSA0IC8qIEFSUkFZICovKSBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXkocyk7XG4gICAgICBmb3IgKGwgKz0gaTsgaSA8IGw7IGkrKykgcy5jW2ldID0gYztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzLCBjYW1sX2NvbnZlcnRfYnl0ZXNfdG9fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfYmxpdF9ieXRlcyhzMSwgaTEsIHMyLCBpMiwgbGVuKSB7XG4gIGlmIChsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIGlmICgoaTIgPT0gMCkgJiZcbiAgICAgIChsZW4gPj0gczIubCB8fCAoczIudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgbGVuID49IHMyLmMubGVuZ3RoKSkpIHtcbiAgICBzMi5jID0gKHMxLnQgPT0gNCAvKiBBUlJBWSAqLyk/XG4gICAgICBjYW1sX3N1YmFycmF5X3RvX2pzYnl0ZXMoczEuYywgaTEsIGxlbik6XG4gICAgICAoaTEgPT0gMCAmJiBzMS5jLmxlbmd0aCA9PSBsZW4pP3MxLmM6czEuYy5zdWJzdHIoaTEsIGxlbik7XG4gICAgczIudCA9IChzMi5jLmxlbmd0aCA9PSBzMi5sKT8wIC8qIEJZVEVTIHwgVU5LT1dOICovIDoyOyAvKiBQQVJUSUFMICovXG4gIH0gZWxzZSBpZiAoczIudCA9PSAyIC8qIFBBUlRJQUwgKi8gJiYgaTIgPT0gczIuYy5sZW5ndGgpIHtcbiAgICBzMi5jICs9IChzMS50ID09IDQgLyogQVJSQVkgKi8pP1xuICAgICAgY2FtbF9zdWJhcnJheV90b19qc2J5dGVzKHMxLmMsIGkxLCBsZW4pOlxuICAgICAgKGkxID09IDAgJiYgczEuYy5sZW5ndGggPT0gbGVuKT9zMS5jOnMxLmMuc3Vic3RyKGkxLCBsZW4pO1xuICAgIHMyLnQgPSAoczIuYy5sZW5ndGggPT0gczIubCk/MCAvKiBCWVRFUyB8IFVOS09XTiAqLyA6MjsgLyogUEFSVElBTCAqL1xuICB9IGVsc2Uge1xuICAgIGlmIChzMi50ICE9IDQgLyogQVJSQVkgKi8pIGNhbWxfY29udmVydF9ieXRlc190b19hcnJheShzMik7XG4gICAgdmFyIGMxID0gczEuYywgYzIgPSBzMi5jO1xuICAgIGlmIChzMS50ID09IDQgLyogQVJSQVkgKi8pIHtcbiAgICAgIGlmIChpMiA8PSBpMSkge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBjMiBbaTIgKyBpXSA9IGMxIFtpMSArIGldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IGxlbiAtIDE7IGkgPj0gMDsgaS0tKSBjMiBbaTIgKyBpXSA9IGMxIFtpMSArIGldO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgbCA9IE1hdGgubWluIChsZW4sIGMxLmxlbmd0aCAtIGkxKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKSBjMiBbaTIgKyBpXSA9IGMxLmNoYXJDb2RlQXQoaTEgKyBpKTtcbiAgICAgIGZvciAoOyBpIDwgbGVuOyBpKyspIGMyIFtpMiArIGldID0gMDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmxpdF9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYmxpdF9zdHJpbmcoYSxiLGMsZCxlKSB7XG4gIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX3N0cmluZyhhKSxiLGMsZCxlKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9ieXRlc19sZW5ndGggY29uc3RcbmZ1bmN0aW9uIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoKHMpIHsgcmV0dXJuIHMubCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfdW5zYWZlX2dldCAocywgaSkge1xuICByZXR1cm4gcy5jaGFyQ29kZUF0KGkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ191bnNhZmVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX3Vuc2FmZV9zZXQgKHMsIGksIGMpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3RyaW5nX3Vuc2FmZV9zZXRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykge1xuICByZXR1cm4gcy5sZW5ndGhcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfY29tcGFyZSBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19jb21wYXJlKHMxLCBzMikge1xuICByZXR1cm4gKHMxIDwgczIpPy0xOihzMSA+IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2VxdWFsIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2VxdWFsKHMxLCBzMikge1xuICBpZihzMSA9PT0gczIpIHJldHVybiAxO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc2VxdWFsIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3NlcXVhbChzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8PSBzMik/MTowO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzdGhhbiBjb25zdFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzdGhhbihzMSwgczIpIHtcbiAgcmV0dXJuIChzMSA8IHMyKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpIHtcbiAgKHMudCAmIDYpICYmIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXMocyk7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHMuYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl9qc2J5dGVzKGNhbWxfanNieXRlc19vZl9zdHJpbmcocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzIGNvbnN0XG4vL0lmOiBqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoeCkgeyByZXR1cm4geCB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcgY29uc3Rcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc2J5dGVzX29mX3N0cmluZyh4KSB7IHJldHVybiB4IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmMTZfb2ZfdXRmOFxuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSB7XG4gIGlmKGpzb29faXNfYXNjaWkocykpXG4gICAgcmV0dXJuIHM7XG4gIHJldHVybiBjYW1sX3V0ZjE2X29mX3V0Zjgocyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWksIGNhbWxfdXRmOF9vZl91dGYxNiwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9JZjoganMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAocykge1xuICBpZiAoanNvb19pc19hc2NpaShzKSlcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKVxuICBlbHNlIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGNhbWxfdXRmOF9vZl91dGYxNihzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlcyBjb25zdFxuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9qc2J5dGVzKHMpIHsgcmV0dXJuIG5ldyBNbEJ5dGVzKDAscyxzLmxlbmd0aCk7IH1cblxuXG4vLyBUaGUgc2VjdGlvbiBiZWxvdyBzaG91bGQgYmUgdXNlZCB3aGVuIHVzZS1qcy1zdHJpbmc9ZmFsc2VcblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX2dldCBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfZ2V0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfZ2V0IChzLCBpKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQocyxpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfdW5zYWZlX3NldFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc191bnNhZmVfc2V0XG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ191bnNhZmVfc2V0IChzLCBpLCBjKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX3Vuc2FmZV9zZXQocyxpLGMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGggY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX21sX3N0cmluZ19sZW5ndGgocykge1xuICByZXR1cm4gY2FtbF9tbF9ieXRlc19sZW5ndGgocylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfY29tcGFyZVxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19jb21wYXJlXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19jb21wYXJlKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19jb21wYXJlKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19lcXVhbFxuLy9SZXF1aXJlczogY2FtbF9ieXRlc19lcXVhbFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2VxdWFsKHMxLHMyKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N0cmluZ19sZXNzZXF1YWxcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc2VxdWFsXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19sZXNzZXF1YWwoczEsIHMyKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX2xlc3NlcXVhbChzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfbGVzc3RoYW5cbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfbGVzc3RoYW5cbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX2xlc3N0aGFuKHMxLCBzMikge1xuICByZXR1cm4gY2FtbF9ieXRlc19sZXNzdGhhbihzMSxzMilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zdHJpbmdfb2ZfYnl0ZXNcbi8vSWY6ICFqcy1zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpIHsgcmV0dXJuIHMgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9ieXRlc19vZl9zdHJpbmcocykgeyByZXR1cm4gcyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfanNieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB7IHJldHVybiBjYW1sX2J5dGVzX29mX2pzYnl0ZXMocyk7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKSB7XG4gIChzLnQgJiA2KSAmJiBjYW1sX2NvbnZlcnRfc3RyaW5nX3RvX2J5dGVzKHMpO1xuICByZXR1cm4gcy5jIH1cblxuLy9Qcm92aWRlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKXtcbiAgcmV0dXJuIHMudG9VdGYxNigpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2J5dGVzX29mX3V0ZjE2X2pzc3RyaW5nXG4vL0lmOiAhanMtc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAocykge1xuICByZXR1cm4gY2FtbF9ieXRlc19vZl91dGYxNl9qc3N0cmluZyhzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9ieXRlc1xuLy9SZXF1aXJlczogTWxCeXRlc1xuZnVuY3Rpb24gY2FtbF9pc19tbF9ieXRlcyhzKSB7XG4gIHJldHVybiAocyBpbnN0YW5jZW9mIE1sQnl0ZXMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2J5dGVzX2NvbnRlbnRcbi8vUmVxdWlyZXM6IE1sQnl0ZXMsIGNhbWxfY29udmVydF9zdHJpbmdfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfYnl0ZXNfY29udGVudChzKSB7XG4gIHN3aXRjaCAocy50ICYgNikge1xuICBkZWZhdWx0OiAvKiBQQVJUSUFMICovXG4gICAgY2FtbF9jb252ZXJ0X3N0cmluZ190b19ieXRlcyhzKTtcbiAgY2FzZSAwOiAvKiBCWVRFUyAqL1xuICAgIHJldHVybiBzLmM7XG4gIGNhc2UgNDpcbiAgICByZXR1cm4gcy5jXG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9pc19tbF9zdHJpbmdcbi8vUmVxdWlyZXM6IGpzb29faXNfYXNjaWlcbi8vSWY6IGpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9pc19tbF9zdHJpbmcocykge1xuICByZXR1cm4gKHR5cGVvZiBzID09PSBcInN0cmluZ1wiICYmICEvW15cXHgwMC1cXHhmZl0vLnRlc3QocykpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX21sX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlc1xuLy9JZjogIWpzLXN0cmluZ1xuZnVuY3Rpb24gY2FtbF9pc19tbF9zdHJpbmcocykge1xuICByZXR1cm4gY2FtbF9pc19tbF9ieXRlcyhzKTtcbn1cblxuLy8gVGhlIGZ1bmN0aW9ucyBiZWxvdyBhcmUgZGVwcmVjYXRlZFxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX2J5dGVfc3RyaW5nIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2J5dGVfc3RyaW5nKHMpIHsgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocykgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX25ld19zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbmV3X3N0cmluZyAocykgeyByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhzKSB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9zdHJpbmcgbXV0YWJsZSAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19mcm9tX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RvX2pzX3N0cmluZyBtdXRhYmxlIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3RvX2pzX3N0cmluZyhzKSB7XG4gIHJldHVybiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3RvX3N0cmluZyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNfdG9fc3RyaW5nIChzKSB7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhzKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfb2Zfc3RyaW5nKHgpIHsgcmV0dXJuIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nKHgpIH1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9hcnJheV9vZl9ieXRlcyh4KSB7IHJldHVybiBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKHgpIH1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUmFpc2UgZXhjZXB0aW9uXG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9jb25zdGFudCAodGFnKSB7IHRocm93IHRhZzsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfYXJnIChjb25zdCwgbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX2FyZyAodGFnLCBhcmcpIHsgdGhyb3cgY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlKFswLCB0YWcsIGFyZ10pOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfd2l0aF9hcmdzIChjb25zdCwgbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZVxuZnVuY3Rpb24gY2FtbF9yYWlzZV93aXRoX2FyZ3MgKHRhZywgYXJncykgeyB0aHJvdyBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2UoWzAsIHRhZ10uY29uY2F0KGFyZ3MpKTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfYXJnLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nICh0YWcsIG1zZykge1xuICBjYW1sX3JhaXNlX3dpdGhfYXJnICh0YWcsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobXNnKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmFpbHdpdGggKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9mYWlsd2l0aCAobXNnKSB7XG4gIGlmKCFjYW1sX2dsb2JhbF9kYXRhLkZhaWx1cmUpXG4gICAgY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlPVsyNDgsY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIkZhaWx1cmVcIiksLTNdO1xuICBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nKGNhbWxfZ2xvYmFsX2RhdGEuRmFpbHVyZSwgbXNnKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV93aXRoX3N0cmluZywgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChtc2cpIHtcbiAgY2FtbF9yYWlzZV93aXRoX3N0cmluZyhjYW1sX2dsb2JhbF9kYXRhLkludmFsaWRfYXJndW1lbnQsIG1zZyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfZ2xvYmFsX2RhdGFcbmZ1bmN0aW9uIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuRW5kX29mX2ZpbGUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3plcm9fZGl2aWRlICgpIHtcbiAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX2dsb2JhbF9kYXRhLkRpdmlzaW9uX2J5X3plcm8pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9nbG9iYWxfZGF0YVxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub3RfZm91bmQgKCkge1xuICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfZ2xvYmFsX2RhdGEuTm90X2ZvdW5kKTsgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9hcnJheV9ib3VuZF9lcnJvciAoKSB7XG4gIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImluZGV4IG91dCBvZiBib3VuZHNcIik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9jYWxsX2dlbiAoY29uc3QsIHNoYWxsb3cpXG4vL0lmOiAhZWZmZWN0c1xuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpIHtcbiAgdmFyIG4gPSAoZi5sID49IDApP2YubDooZi5sID0gZi5sZW5ndGgpO1xuICB2YXIgYXJnc0xlbiA9IGFyZ3MubGVuZ3RoO1xuICB2YXIgZCA9IG4gLSBhcmdzTGVuO1xuICBpZiAoZCA9PSAwKVxuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICBlbHNlIGlmIChkIDwgMCkge1xuICAgIHZhciBnID0gZi5hcHBseShudWxsLGFyZ3Muc2xpY2UoMCxuKSk7XG4gICAgaWYodHlwZW9mIGcgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIGc7XG4gICAgcmV0dXJuIGNhbWxfY2FsbF9nZW4oZyxhcmdzLnNsaWNlKG4pKTtcbiAgfVxuICBlbHNlIHtcbiAgICBzd2l0Y2ggKGQpIHtcbiAgICBjYXNlIDE6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKHgpe1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJnc0xlbiArIDEpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJnc0xlbjsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBuYXJnc1thcmdzTGVuXSA9IHg7XG4gICAgICAgIHJldHVybiBmLmFwcGx5KG51bGwsIG5hcmdzKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIDI6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKHgsIHkpe1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJnc0xlbiArIDIpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJnc0xlbjsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBuYXJnc1thcmdzTGVuXSA9IHg7XG4gICAgICAgIG5hcmdzW2FyZ3NMZW4gKyAxXSA9IHk7XG4gICAgICAgIHJldHVybiBmLmFwcGx5KG51bGwsIG5hcmdzKVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICB2YXIgZyA9IGZ1bmN0aW9uICgpe1xuICAgICAgICB2YXIgZXh0cmFfYXJncyA9IChhcmd1bWVudHMubGVuZ3RoID09IDApPzE6YXJndW1lbnRzLmxlbmd0aDtcbiAgICAgICAgdmFyIG5hcmdzID0gbmV3IEFycmF5KGFyZ3MubGVuZ3RoK2V4dHJhX2FyZ3MpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKyApIG5hcmdzW2ldID0gYXJnc1tpXTtcbiAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApIG5hcmdzW2FyZ3MubGVuZ3RoK2ldID0gYXJndW1lbnRzW2ldO1xuICAgICAgICByZXR1cm4gY2FtbF9jYWxsX2dlbihmLCBuYXJncylcbiAgICAgIH07XG4gICAgfX1cbiAgICBnLmwgPSBkO1xuICAgIHJldHVybiBnO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY2FsbF9nZW4gKGNvbnN0LCBzaGFsbG93KVxuLy9JZjogZWZmZWN0c1xuLy9XZWFrZGVmXG5mdW5jdGlvbiBjYW1sX2NhbGxfZ2VuKGYsIGFyZ3MpIHtcbiAgdmFyIG4gPSAoZi5sID49IDApP2YubDooZi5sID0gZi5sZW5ndGgpO1xuICB2YXIgYXJnc0xlbiA9IGFyZ3MubGVuZ3RoO1xuICB2YXIgZCA9IG4gLSBhcmdzTGVuO1xuICBpZiAoZCA9PSAwKSB7XG4gICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgYXJncyk7XG4gIH0gZWxzZSBpZiAoZCA8IDApIHtcbiAgICB2YXIgcmVzdCA9IGFyZ3Muc2xpY2UobiAtIDEpO1xuICAgIHZhciBrID0gYXJncyBbYXJnc0xlbiAtIDFdO1xuICAgIGFyZ3MgPSBhcmdzLnNsaWNlKDAsIG4pO1xuICAgIGFyZ3NbbiAtIDFdID0gZnVuY3Rpb24gKGcpIHtcbiAgICAgIGlmICh0eXBlb2YgZyAhPT0gXCJmdW5jdGlvblwiKSByZXR1cm4gayhnKTtcbiAgICAgIHZhciBhcmdzID0gcmVzdC5zbGljZSgpO1xuICAgICAgYXJnc1thcmdzLmxlbmd0aCAtIDFdID0gaztcbiAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGcsIGFyZ3MpOyB9O1xuICAgIHJldHVybiBmLmFwcGx5KG51bGwsIGFyZ3MpO1xuICB9IGVsc2Uge1xuICAgIGFyZ3NMZW4tLTtcbiAgICB2YXIgayA9IGFyZ3MgW2FyZ3NMZW5dO1xuICAgIHN3aXRjaCAoZCkge1xuICAgIGNhc2UgMToge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCwgeSl7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMik7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbiArIDFdID0geTtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGNhc2UgMjoge1xuICAgICAgdmFyIGcgPSBmdW5jdGlvbiAoeCwgeSwgeil7XG4gICAgICAgIHZhciBuYXJncyA9IG5ldyBBcnJheShhcmdzTGVuICsgMyk7XG4gICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzTGVuOyBpKysgKSBuYXJnc1tpXSA9IGFyZ3NbaV07XG4gICAgICAgIG5hcmdzW2FyZ3NMZW5dID0geDtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbiArIDFdID0geTtcbiAgICAgICAgbmFyZ3NbYXJnc0xlbiArIDJdID0gejtcbiAgICAgICAgcmV0dXJuIGYuYXBwbHkobnVsbCwgbmFyZ3MpXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHZhciBnID0gZnVuY3Rpb24gKCl7XG4gICAgICAgIHZhciBleHRyYV9hcmdzID0gKGFyZ3VtZW50cy5sZW5ndGggPT0gMCk/MTphcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICB2YXIgbmFyZ3MgPSBuZXcgQXJyYXkoYXJnc0xlbiArIGV4dHJhX2FyZ3MpO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJnc0xlbjsgaSsrICkgbmFyZ3NbaV0gPSBhcmdzW2ldO1xuICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrIClcbiAgICAgICAgICBuYXJnc1thcmdzTGVuICsgaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIHJldHVybiBjYW1sX2NhbGxfZ2VuKGYsIG5hcmdzKVxuICAgICAgfTtcbiAgICB9fVxuICAgIGcubCA9IGQgKyAxO1xuICAgIHJldHVybiBrKGcpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmFtZWRfdmFsdWVzXG52YXIgY2FtbF9uYW1lZF92YWx1ZXMgPSB7fTtcblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZSAoY29uc3QsbXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX25hbWVkX3ZhbHVlKG5tLHYpIHtcbiAgY2FtbF9uYW1lZF92YWx1ZXNbY2FtbF9qc2J5dGVzX29mX3N0cmluZyhubSldID0gdjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmFtZWRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfbmFtZWRfdmFsdWVzXG5mdW5jdGlvbiBjYW1sX25hbWVkX3ZhbHVlKG5tKSB7XG4gIHJldHVybiBjYW1sX25hbWVkX3ZhbHVlc1tubV1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9nbG9iYWxfZGF0YVxudmFyIGNhbWxfZ2xvYmFsX2RhdGEgPSBbMF07XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnVpbGRfc3ltYm9sc1xuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfYnVpbGRfc3ltYm9scyh0b2MpIHtcbiAgdmFyIHN5bWI7XG4gIHdoaWxlKHRvYykge1xuICAgIGlmKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHRvY1sxXVsxXSkgPT0gXCJTWUpTXCIpIHtcbiAgICAgIHN5bWIgPSB0b2NbMV1bMl07XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgZWxzZSB0b2MgPSB0b2NbMl1cbiAgfVxuICB2YXIgciA9IHt9O1xuICBpZihzeW1iKSB7XG4gICAgZm9yKHZhciBpID0gMTsgaSA8IHN5bWIubGVuZ3RoOyBpKyspe1xuICAgICAgcltjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzeW1iW2ldWzFdKV0gPSBzeW1iW2ldWzJdXG4gICAgfVxuICB9XG4gIHJldHVybiByO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlZ2lzdGVyX2dsb2JhbCAoY29uc3QsIHNoYWxsb3csIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9nbG9iYWxfZGF0YSwgY2FtbF9jYWxsYmFjaywgY2FtbF9idWlsZF9zeW1ib2xzXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX3JlZ2lzdGVyX2dsb2JhbCAobiwgdiwgbmFtZV9vcHQpIHtcbiAgaWYgKG5hbWVfb3B0KSB7XG4gICAgdmFyIG5hbWUgPSBuYW1lX29wdDtcbiAgICBpZihnbG9iYWxUaGlzLnRvcGxldmVsUmVsb2MpIHtcbiAgICAgIG4gPSBjYW1sX2NhbGxiYWNrKGdsb2JhbFRoaXMudG9wbGV2ZWxSZWxvYywgW25hbWVdKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoY2FtbF9nbG9iYWxfZGF0YS50b2MpIHtcbiAgICAgIGlmKCFjYW1sX2dsb2JhbF9kYXRhLnN5bWJvbHMpIHtcbiAgICAgICAgY2FtbF9nbG9iYWxfZGF0YS5zeW1ib2xzID0gY2FtbF9idWlsZF9zeW1ib2xzKGNhbWxfZ2xvYmFsX2RhdGEudG9jKVxuICAgICAgfVxuICAgICAgdmFyIG5pZCA9IGNhbWxfZ2xvYmFsX2RhdGEuc3ltYm9sc1tuYW1lXVxuICAgICAgaWYobmlkID49IDApXG4gICAgICAgIG4gPSBuaWRcbiAgICAgIGVsc2Uge1xuICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9yZWdpc3Rlcl9nbG9iYWw6IGNhbm5vdCBsb2NhdGUgXCIgKyBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgY2FtbF9nbG9iYWxfZGF0YVtuICsgMV0gPSB2O1xuICBpZihuYW1lX29wdCkgY2FtbF9nbG9iYWxfZGF0YVtuYW1lX29wdF0gPSB2O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9nbG9iYWxfZGF0YSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2dldF9nbG9iYWxfZGF0YSAoKSB7IHJldHVybiBjYW1sX2dsb2JhbF9kYXRhOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfcHJpbnRhYmxlIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfaXNfcHJpbnRhYmxlKGMpIHsgcmV0dXJuICsoYyA+IDMxICYmIGMgPCAxMjcpOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWF5YmVfcHJpbnRfc3RhdHNcbmZ1bmN0aW9uIGNhbWxfbWF5YmVfcHJpbnRfc3RhdHModW5pdCkgeyByZXR1cm4gMCB9XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIFN5c1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3dpdGhfc3RyaW5nLCBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX3JhaXNlX3N5c19lcnJvciAobXNnKSB7XG4gIGNhbWxfcmFpc2Vfd2l0aF9zdHJpbmcoY2FtbF9nbG9iYWxfZGF0YS5TeXNfZXJyb3IsIG1zZyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2V4aXRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9zeXNfZXhpdCAoY29kZSkge1xuICBpZihnbG9iYWxUaGlzLnF1aXQpIGdsb2JhbFRoaXMucXVpdChjb2RlKTtcbiAgLy9ub2RlanNcbiAgaWYoZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5leGl0KVxuICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5leGl0KGNvZGUpO1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJGdW5jdGlvbiAnZXhpdCcgbm90IGltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uKGV4bil7XG4gIHN3aXRjaChleG5bMl0pIHtcbiAgY2FzZSAtODogLy8gTWF0Y2hfZmFpbHVyZVxuICBjYXNlIC0xMTogLy8gQXNzZXJ0X2ZhaWx1cmVcbiAgY2FzZSAtMTI6IC8vIFVuZGVmaW5lZF9yZWN1cnNpdmVfbW9kdWxlXG4gICAgcmV0dXJuIDE7XG4gIGRlZmF1bHQ6XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfZXhjZXB0aW9uXG4vL1JlcXVpcmVzOiBNbEJ5dGVzLCBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9leGNlcHRpb24oZXhuKXtcbiAgdmFyIHIgPSBcIlwiO1xuICBpZihleG5bMF0gPT0gMCkge1xuICAgIHIgKz0gZXhuWzFdWzFdO1xuICAgIGlmKGV4bi5sZW5ndGggPT0gMyAmJiBleG5bMl1bMF0gPT0gMCAmJiBjYW1sX2lzX3NwZWNpYWxfZXhjZXB0aW9uKGV4blsxXSkpIHtcblxuICAgICAgdmFyIGJ1Y2tldCA9IGV4blsyXTtcbiAgICAgIHZhciBzdGFydCA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBzdGFydCA9IDJcbiAgICAgIHZhciBidWNrZXQgPSBleG47XG4gICAgfVxuICAgIHIgKz0gXCIoXCI7XG4gICAgZm9yKHZhciBpID0gc3RhcnQ7IGkgPCBidWNrZXQubGVuZ3RoOyBpICsrKXtcbiAgICAgIGlmKGkgPiBzdGFydCkgcis9XCIsIFwiO1xuICAgICAgdmFyIHYgPSBidWNrZXRbaV1cbiAgICAgIGlmKHR5cGVvZiB2ID09IFwibnVtYmVyXCIpXG4gICAgICAgIHIrPSB2LnRvU3RyaW5nKCk7XG4gICAgICBlbHNlIGlmKHYgaW5zdGFuY2VvZiBNbEJ5dGVzKXtcbiAgICAgICAgcis9ICdcIicgKyB2LnRvU3RyaW5nKCkgKyAnXCInO1xuICAgICAgfVxuICAgICAgZWxzZSBpZih0eXBlb2YgdiA9PSBcInN0cmluZ1wiKXtcbiAgICAgICAgcis9ICdcIicgKyB2LnRvU3RyaW5nKCkgKyAnXCInO1xuICAgICAgfVxuICAgICAgZWxzZSByICs9IFwiX1wiO1xuICAgIH1cbiAgICByICs9IFwiKVwiXG4gIH0gZWxzZSBpZiAoZXhuWzBdID09IDI0OCl7XG4gICAgciArPSBleG5bMV1cbiAgfVxuICByZXR1cm4gclxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvblxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9mb3JtYXRfZXhjZXB0aW9uLCBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbihlcnIpe1xuICBpZihlcnIgaW5zdGFuY2VvZiBBcnJheSAmJiAoZXJyWzBdID09IDAgfHwgZXJyWzBdID09IDI0OCkpIHtcbiAgICB2YXIgaGFuZGxlciA9IGNhbWxfbmFtZWRfdmFsdWUoXCJQcmludGV4Yy5oYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uXCIpO1xuICAgIGlmKGhhbmRsZXIpIGNhbWxfY2FsbGJhY2soaGFuZGxlciwgW2VycixmYWxzZV0pO1xuICAgIGVsc2Uge1xuICAgICAgdmFyIG1zZyA9IGNhbWxfZm9ybWF0X2V4Y2VwdGlvbihlcnIpO1xuICAgICAgdmFyIGF0X2V4aXQgPSBjYW1sX25hbWVkX3ZhbHVlKFwiUGVydmFzaXZlcy5kb19hdF9leGl0XCIpO1xuICAgICAgaWYoYXRfZXhpdCkgY2FtbF9jYWxsYmFjayhhdF9leGl0LCBbMF0pO1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gXCIgKyBtc2cgKyBcIlxcblwiKTtcbiAgICAgIGlmKGVyci5qc19lcnJvcikgdGhyb3cgZXJyLmpzX2Vycm9yO1xuICAgIH1cbiAgfVxuICBlbHNlIHtcbiAgICB0aHJvdyBlcnJcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9zdGF0aWNfZW52XG5mdW5jdGlvbiBjYW1sX3NldF9zdGF0aWNfZW52KGssdil7XG4gIGlmKCFnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudilcbiAgICBnbG9iYWxUaGlzLmpzb29fc3RhdGljX2VudiA9IHt9XG4gIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W2tdID0gdjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGpzb29fc3lzX2dldGVudiAoY29uc3QpXG5mdW5jdGlvbiBqc29vX3N5c19nZXRlbnYobikge1xuICB2YXIgcHJvY2VzcyA9IGdsb2JhbFRoaXMucHJvY2VzcztcbiAgLy9ub2RlanMgZW52XG4gIGlmKHByb2Nlc3NcbiAgICAgJiYgcHJvY2Vzcy5lbnZcbiAgICAgJiYgcHJvY2Vzcy5lbnZbbl0gIT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiBwcm9jZXNzLmVudltuXTtcbiAgaWYoZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZcbiAgICAgJiYgZ2xvYmFsVGhpcy5qc29vX3N0YXRpY19lbnZbbl0pXG4gICAgcmV0dXJuIGdsb2JhbFRoaXMuanNvb19zdGF0aWNfZW52W25dXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldGVudiAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBqc29vX3N5c19nZXRlbnZcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldGVudiAobmFtZSkge1xuICB2YXIgciA9IGpzb29fc3lzX2dldGVudihjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lKSk7XG4gIGlmKHIgPT09IHVuZGVmaW5lZClcbiAgICBjYW1sX3JhaXNlX25vdF9mb3VuZCAoKTtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKHIpXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3Vuc2FmZV9nZXRlbnZcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX2dldGVudlxuZnVuY3Rpb24gY2FtbF9zeXNfdW5zYWZlX2dldGVudihuYW1lKXtcbiAgcmV0dXJuIGNhbWxfc3lzX2dldGVudiAobmFtZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJndlxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbnZhciBjYW1sX2FyZ3YgPSAoKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHByb2Nlc3MgPSBnbG9iYWxUaGlzLnByb2Nlc3M7XG4gIHZhciBtYWluID0gXCJhLm91dFwiO1xuICB2YXIgYXJncyA9IFtdXG5cbiAgaWYocHJvY2Vzc1xuICAgICAmJiBwcm9jZXNzLmFyZ3ZcbiAgICAgJiYgcHJvY2Vzcy5hcmd2Lmxlbmd0aCA+IDEpIHtcbiAgICB2YXIgYXJndiA9IHByb2Nlc3MuYXJndlxuICAgIC8vbm9kZWpzXG4gICAgbWFpbiA9IGFyZ3ZbMV07XG4gICAgYXJncyA9IGFyZ3Yuc2xpY2UoMik7XG4gIH1cblxuICB2YXIgcCA9IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKG1haW4pO1xuICB2YXIgYXJnczIgPSBbMCwgcF07XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKVxuICAgIGFyZ3MyLnB1c2goY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoYXJnc1tpXSkpO1xuICByZXR1cm4gYXJnczI7XG59KSgpKVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG52YXIgY2FtbF9leGVjdXRhYmxlX25hbWUgPSBjYW1sX2FyZ3ZbMV1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZ2V0X2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfZ2V0X2FyZ3YgKGEpIHtcbiAgcmV0dXJuIFswLCBjYW1sX2FyZ3ZbMV0sIGNhbWxfYXJndl07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2FyZ3Zcbi8vUmVxdWlyZXM6IGNhbWxfYXJndlxuZnVuY3Rpb24gY2FtbF9zeXNfYXJndiAoYSkge1xuICByZXR1cm4gY2FtbF9hcmd2O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19tb2RpZnlfYXJndlxuLy9SZXF1aXJlczogY2FtbF9hcmd2XG5mdW5jdGlvbiBjYW1sX3N5c19tb2RpZnlfYXJndihhcmcpe1xuICBjYW1sX2FyZ3YgPSBhcmc7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19leGVjdXRhYmxlX25hbWUgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfZXhlY3V0YWJsZV9uYW1lXG5mdW5jdGlvbiBjYW1sX3N5c19leGVjdXRhYmxlX25hbWUoYSl7XG4gIHJldHVybiBjYW1sX2V4ZWN1dGFibGVfbmFtZVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19zeXN0ZW1fY29tbWFuZFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kKGNtZCl7XG4gIHZhciBjbWQgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhjbWQpO1xuICBpZiAodHlwZW9mIHJlcXVpcmUgIT0gXCJ1bmRlZmluZWRcIil7XG4gICAgdmFyIGNoaWxkX3Byb2Nlc3MgPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7XG4gICAgaWYoY2hpbGRfcHJvY2VzcyAmJiBjaGlsZF9wcm9jZXNzLmV4ZWNTeW5jKVxuICAgICAgdHJ5IHtcbiAgICAgICAgY2hpbGRfcHJvY2Vzcy5leGVjU3luYyhjbWQse3N0ZGlvOiAnaW5oZXJpdCd9KTtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIDFcbiAgICAgIH1cbiAgfVxuICBlbHNlIHJldHVybiAxMjc7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3N5c3RlbV9jb21tYW5kXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gY2FtbF9zeXNfc3lzdGVtX2NvbW1hbmQoY21kKXtcbiAgcmV0dXJuIDEyNztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfdGltZSBtdXRhYmxlXG52YXIgY2FtbF9pbml0aWFsX3RpbWUgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpICogMC4wMDE7XG5mdW5jdGlvbiBjYW1sX3N5c190aW1lICgpIHtcbiAgdmFyIG5vdyA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7XG4gIHJldHVybiBub3cgKiAwLjAwMSAtIGNhbWxfaW5pdGlhbF90aW1lO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c190aW1lX2luY2x1ZGVfY2hpbGRyZW5cbi8vUmVxdWlyZXM6IGNhbWxfc3lzX3RpbWVcbmZ1bmN0aW9uIGNhbWxfc3lzX3RpbWVfaW5jbHVkZV9jaGlsZHJlbihiKSB7XG4gIHJldHVybiBjYW1sX3N5c190aW1lKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JhbmRvbV9zZWVkIG11dGFibGVcbi8vVGhlIGZ1bmN0aW9uIG5lZWRzIHRvIHJldHVybiBhbiBhcnJheSBzaW5jZSBPQ2FtbCA0LjAuLi5cbmZ1bmN0aW9uIGNhbWxfc3lzX3JhbmRvbV9zZWVkICgpIHtcbiAgaWYoZ2xvYmFsVGhpcy5jcnlwdG8pIHtcbiAgICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzID09PSAnZnVuY3Rpb24nKXtcbiAgICAgIC8vIFdlYmJyb3dzZXJzXG4gICAgICB2YXIgYSA9IG5ldyBVaW50MzJBcnJheSgxKTtcbiAgICAgIGdsb2JhbFRoaXMuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhKTtcbiAgICAgIHJldHVybiBbMCxhWzBdXTtcbiAgICB9IGVsc2UgaWYoZ2xvYmFsVGhpcy5jcnlwdG8ucmFuZG9tQnl0ZXMgPT09ICdmdW5jdGlvbicpe1xuICAgICAgLy8gTm9kZWpzXG4gICAgICB2YXIgYnVmZiA9IGdsb2JhbFRoaXMuY3J5cHRvLnJhbmRvbUJ5dGVzKDQpO1xuICAgICAgdmFyIGEgPSBuZXcgVWludDMyQXJyYXkoYnVmZik7XG4gICAgICByZXR1cm4gWzAsYVswXV07XG4gICAgfVxuICB9XG4gIHZhciBub3cgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xuICB2YXIgeCA9IG5vd14weGZmZmZmZmZmKk1hdGgucmFuZG9tKCk7XG4gIHJldHVybiBbMCx4XTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfYmlnX2VuZGlhbiAoKSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X3dvcmRfc2l6ZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfd29yZF9zaXplICgpIHsgcmV0dXJuIDMyOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X2ludF9zaXplIGNvbnN0XG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9pbnRfc2l6ZSAoKSB7IHJldHVybiAzMjsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9tYXhfd29zaXplIGNvbnN0XG4vLyBtYXhfaW50IC8gNCBzbyB0aGF0IHRoZSBmb2xsb3dpbmcgZG9lcyBub3Qgb3ZlcmZsb3dcbi8vbGV0IG1heF9zdHJpbmdfbGVuZ3RoID0gd29yZF9zaXplIC8gOCAqIG1heF9hcnJheV9sZW5ndGggLSAxOztcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X21heF93b3NpemUgKCkgeyByZXR1cm4gKDB4N0ZGRkZGRkYvNCkgfCAwO31cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3VuaXggY29uc3Rcbi8vUmVxdWlyZXM6IG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X29zdHlwZV91bml4ICgpIHsgcmV0dXJuIG9zX3R5cGUgPT0gXCJVbml4XCIgPyAxIDogMDsgfVxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX3dpbjMyIGNvbnN0XG4vL1JlcXVpcmVzOiBvc190eXBlXG5mdW5jdGlvbiBjYW1sX3N5c19jb25zdF9vc3R5cGVfd2luMzIgKCkgeyByZXR1cm4gb3NfdHlwZSA9PSBcIldpbjMyXCIgPyAxIDogMDsgfVxuLy9Qcm92aWRlczogY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiBjb25zdFxuLy9SZXF1aXJlczogb3NfdHlwZVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3Rfb3N0eXBlX2N5Z3dpbiAoKSB7IHJldHVybiBvc190eXBlID09IFwiQ3lnd2luXCIgPyAxIDogMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19jb25zdF9iYWNrZW5kX3R5cGUgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3lzX2NvbnN0X2JhY2tlbmRfdHlwZSAoKSB7XG4gIHJldHVybiBbMCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcImpzX29mX29jYW1sXCIpXTtcbn1cblxuLy9Qcm92aWRlczogb3NfdHlwZVxudmFyIG9zX3R5cGUgPSAoZ2xvYmFsVGhpcy5wcm9jZXNzICYmXG4gICAgICAgICAgICAgICBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gJiZcbiAgICAgICAgICAgICAgIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSA9PSBcIndpbjMyXCIpID8gXCJDeWd3aW5cIiA6IFwiVW5peFwiO1xuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2dldF9jb25maWcgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIG9zX3R5cGVcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldF9jb25maWcgKCkge1xuICByZXR1cm4gWzAsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMob3NfdHlwZSksIDMyLCAwXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfaXNhdHR5XG5mdW5jdGlvbiBjYW1sX3N5c19pc2F0dHkoX2NoYW4pIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV92YXJpYW50XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfdmFyaWFudChfdW5pdCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9wYXJhbWV0ZXJzXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfcGFyYW1ldGVycyhfdW5pdCkge1xuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnN0YWxsX3NpZ25hbF9oYW5kbGVyIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2luc3RhbGxfc2lnbmFsX2hhbmRsZXIoKXtyZXR1cm4gMH1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG52YXIgY2FtbF9ydW50aW1lX3dhcm5pbmdzID0gMDtcblxuLy9Qcm92aWRlczogY2FtbF9tbF9lbmFibGVfcnVudGltZV93YXJuaW5nc1xuLy9SZXF1aXJlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG5mdW5jdGlvbiBjYW1sX21sX2VuYWJsZV9ydW50aW1lX3dhcm5pbmdzIChib29sKSB7XG4gIGNhbWxfcnVudGltZV93YXJuaW5ncyA9IGJvb2w7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZFxuLy9SZXF1aXJlczogY2FtbF9ydW50aW1lX3dhcm5pbmdzXG5mdW5jdGlvbiBjYW1sX21sX3J1bnRpbWVfd2FybmluZ3NfZW5hYmxlZCAoX3VuaXQpIHtcbiAgcmV0dXJuIGNhbWxfcnVudGltZV93YXJuaW5ncztcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NwYWNldGltZV9lbmFibGVkIGNvbnN0IChjb25zdClcbmZ1bmN0aW9uIGNhbWxfc3BhY2V0aW1lX2VuYWJsZWQoX3VuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NvbnN0X25ha2VkX3BvaW50ZXJzX2NoZWNrZWQgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZChfdW5pdCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9yZWdpc3Rlcl9jaGFubmVsX2Zvcl9zcGFjZXRpbWUoX2NoYW5uZWwpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3BhY2V0aW1lX29ubHlfd29ya3NfZm9yX25hdGl2ZV9jb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX3NwYWNldGltZV9vbmx5X3dvcmtzX2Zvcl9uYXRpdmVfY29kZSgpIHtcbiAgY2FtbF9mYWlsd2l0aChcIlNwYWNldGltZSBwcm9maWxpbmcgb25seSB3b3JrcyBmb3IgbmF0aXZlIGNvZGVcIik7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfaXNfcmVndWxhcl9maWxlXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfaXNfcmVndWxhcl9maWxlKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgcmV0dXJuIHJvb3QuZGV2aWNlLmlzRmlsZShyb290LnJlc3QpO1xufVxuLy9BbHdheXNcbi8vUmVxdWlyZXM6IGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX3NldHVwX3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyKCkge1xuICB2YXIgcHJvY2VzcyA9IGdsb2JhbFRoaXMucHJvY2VzcztcbiAgaWYocHJvY2VzcyAmJiBwcm9jZXNzLm9uKSB7XG4gICAgcHJvY2Vzcy5vbigndW5jYXVnaHRFeGNlcHRpb24nLCBmdW5jdGlvbiAoZXJyLCBvcmlnaW4pIHtcbiAgICAgIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGVycik7XG4gICAgICBwcm9jZXNzLmV4aXQgKDIpO1xuICAgIH0pXG4gIH1cbiAgZWxzZSBpZihnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIpe1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBmdW5jdGlvbihldmVudCl7XG4gICAgICBpZihldmVudC5lcnJvcil7XG4gICAgICAgIGNhbWxfZmF0YWxfdW5jYXVnaHRfZXhjZXB0aW9uKGV2ZW50LmVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuY2FtbF9zZXR1cF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlcigpO1xuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZ1xuLy9SZXF1aXJlczoganNvb19zeXNfZ2V0ZW52XG52YXIgY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPSBGTEFHKFwid2l0aC1qcy1lcnJvclwiKTtcblxuKGZ1bmN0aW9uICgpIHtcbiAgdmFyIHIgPSBqc29vX3N5c19nZXRlbnYoXCJPQ0FNTFJVTlBBUkFNXCIpXG4gIGlmKHIgIT09IHVuZGVmaW5lZCl7XG4gICAgdmFyIGwgPSByLnNwbGl0KFwiLFwiKTtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgbC5sZW5ndGg7IGkrKyl7XG4gICAgICBpZihsW2ldID09IFwiYlwiKSB7IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnID0gMTsgYnJlYWsgfVxuICAgICAgZWxzZSBpZiAobFtpXS5zdGFydHNXaXRoKFwiYj1cIikpIHtcbiAgICAgICAgY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWcgPSArKGxbaV0uc2xpY2UoMikpfVxuICAgICAgZWxzZSBjb250aW51ZTtcbiAgICB9XG4gIH1cbn0pICgpXG5cblxuLy9Qcm92aWRlczogY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1cyBjb25zdFxuZnVuY3Rpb24gY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1cyAoKSB7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2JhY2t0cmFjZV9zdGF0dXNcbi8vUmVxdWlyZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnXG5mdW5jdGlvbiBjYW1sX2JhY2t0cmFjZV9zdGF0dXMgKF91bml0KSB7IHJldHVybiBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA/IDEgOiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9leGNlcHRpb25fYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9leGNlcHRpb25fYmFja3RyYWNlICgpIHsgcmV0dXJuIDA7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X2V4Y2VwdGlvbl9yYXdfYmFja3RyYWNlIGNvbnN0XG5mdW5jdGlvbiBjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZSAoKSB7IHJldHVybiBbMF07IH1cbi8vUHJvdmlkZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9yZWNvcmRfYmFja3RyYWNlX2ZsYWdcbmZ1bmN0aW9uIGNhbWxfcmVjb3JkX2JhY2t0cmFjZSAoYikgeyBjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZyA9IGI7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2UgKCkgeyByZXR1cm4gWzBdOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX3Jhd19iYWNrdHJhY2VfbGVuZ3RoKCkgeyByZXR1cm4gMDsgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCgpIHsgcmV0dXJuIDAgfVxuLy9Qcm92aWRlczogY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9yYXdfYmFja3RyYWNlX3Nsb3QgKCkge1xuICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZV9zbG90OiBpbmRleCBvdXQgb2YgYm91bmRzXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9yZXN0b3JlX3Jhd19iYWNrdHJhY2VcbmZ1bmN0aW9uIGNhbWxfcmVzdG9yZV9yYXdfYmFja3RyYWNlKGV4biwgYnQpIHsgcmV0dXJuIDAgfVxuLy9Qcm92aWRlczogY2FtbF9nZXRfY3VycmVudF9jYWxsc3RhY2sgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZ2V0X2N1cnJlbnRfY2FsbHN0YWNrICgpIHsgcmV0dXJuIFswXTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90KCl7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2NvbnZlcnRfcmF3X2JhY2t0cmFjZV9zbG90XCIpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgbGlicmFyeVxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vLy8vLy8vLy8vLy8vIEpzbGliXG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfcHVyZV9leHByIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3B1cmVfZXhwciAoZikgeyByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBbMF0pOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfc2V0IChtdXRhYmxlLCBjb25zdCwgbXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfanNfc2V0KG8sZix2KSB7IG9bZl09djtyZXR1cm4gMH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZ2V0IChtdXRhYmxlLCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfanNfZ2V0KG8sZikgeyByZXR1cm4gb1tmXTsgfVxuLy9Qcm92aWRlczogY2FtbF9qc19kZWxldGUgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19kZWxldGUobyxmKSB7IGRlbGV0ZSBvW2ZdOyByZXR1cm4gMH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19pbnN0YW5jZW9mIChjb25zdCwgY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2luc3RhbmNlb2YobyxjKSB7IHJldHVybiAobyBpbnN0YW5jZW9mIGMpID8gMSA6IDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc190eXBlb2YgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc190eXBlb2YobykgeyByZXR1cm4gdHlwZW9mIG87IH1cblxuLy9Qcm92aWRlczpjYW1sX3RyYW1wb2xpbmVcbmZ1bmN0aW9uIGNhbWxfdHJhbXBvbGluZShyZXMpIHtcbiAgdmFyIGMgPSAxO1xuICB3aGlsZShyZXMgJiYgcmVzLmpvb190cmFtcCl7XG4gICAgcmVzID0gcmVzLmpvb190cmFtcC5hcHBseShudWxsLCByZXMuam9vX2FyZ3MpO1xuICAgIGMrKztcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOmNhbWxfdHJhbXBvbGluZV9yZXR1cm5cbmZ1bmN0aW9uIGNhbWxfdHJhbXBvbGluZV9yZXR1cm4oZixhcmdzKSB7XG4gIHJldHVybiB7am9vX3RyYW1wOmYsam9vX2FyZ3M6YXJnc307XG59XG5cbi8vUHJvdmlkZXM6Y2FtbF9zdGFja19kZXB0aFxuLy9JZjogZWZmZWN0c1xudmFyIGNhbWxfc3RhY2tfZGVwdGggPSAwO1xuXG4vL1Byb3ZpZGVzOmNhbWxfc3RhY2tfY2hlY2tfZGVwdGhcbi8vSWY6IGVmZmVjdHNcbi8vUmVxdWlyZXM6Y2FtbF9zdGFja19kZXB0aFxuZnVuY3Rpb24gY2FtbF9zdGFja19jaGVja19kZXB0aCgpIHtcbiAgICByZXR1cm4gLS1jYW1sX3N0YWNrX2RlcHRoID4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jYWxsYmFja1xuLy9JZjogIWVmZmVjdHNcbi8vUmVxdWlyZXM6Y2FtbF9jYWxsX2dlblxudmFyIGNhbWxfY2FsbGJhY2sgPSBjYW1sX2NhbGxfZ2VuO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2NhbGxiYWNrXG4vL0lmOiBlZmZlY3RzXG4vL1JlcXVpcmVzOmNhbWxfc3RhY2tfZGVwdGgsIGNhbWxfY2FsbF9nZW4sIGNhbWxfZXhuX3N0YWNrLCBjYW1sX2ZpYmVyX3N0YWNrLCBjYW1sX3dyYXBfZXhjZXB0aW9uLCBjYW1sX3Jlc3VtZV9zdGFjaywgY2FtbF9mcmVzaF9vb19pZCwgY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9yYWlzZV93aXRoX2FyZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9jb25zdGFudFxuZnVuY3Rpb24gY2FtbF9jYWxsYmFjayhmLGFyZ3MpIHtcbiAgZnVuY3Rpb24gdW5jYXVnaHRfZWZmZWN0X2hhbmRsZXIoZWZmLGssbXMpIHtcbiAgICAvLyBSZXN1bWVzIHRoZSBjb250aW51YXRpb24gayBieSByYWlzaW5nIGV4Y2VwdGlvbiBVbmhhbmRsZWQuXG4gICAgY2FtbF9yZXN1bWVfc3RhY2soa1sxXSxtcyk7XG4gICAgdmFyIGV4biA9IGNhbWxfbmFtZWRfdmFsdWUoXCJFZmZlY3QuVW5oYW5kbGVkXCIpO1xuICAgIGlmKGV4bikgY2FtbF9yYWlzZV93aXRoX2FyZyhleG4sIGVmZik7XG4gICAgZWxzZSB7XG4gICAgICBleG4gPSBbMjQ4LGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJFZmZlY3QuVW5oYW5kbGVkXCIpLCBjYW1sX2ZyZXNoX29vX2lkKDApXTtcbiAgICAgIGNhbWxfcmFpc2VfY29uc3RhbnQoZXhuKTtcbiAgICB9XG4gIH1cbiAgdmFyIHNhdmVkX3N0YWNrX2RlcHRoID0gY2FtbF9zdGFja19kZXB0aDtcbiAgdmFyIHNhdmVkX2V4bl9zdGFjayA9IGNhbWxfZXhuX3N0YWNrO1xuICB2YXIgc2F2ZWRfZmliZXJfc3RhY2sgPSBjYW1sX2ZpYmVyX3N0YWNrO1xuICB0cnkge1xuICAgIGNhbWxfZXhuX3N0YWNrID0gMDtcbiAgICBjYW1sX2ZpYmVyX3N0YWNrID1cbiAgICAgIHtoOlswLCAwLCAwLCB1bmNhdWdodF9lZmZlY3RfaGFuZGxlcl0sIHI6e2s6MCwgeDowLCBlOjB9fTtcbiAgICB2YXIgcmVzID0ge2pvb190cmFtcDogZixcbiAgICAgICAgICAgICAgIGpvb19hcmdzOiBhcmdzLmNvbmNhdChmdW5jdGlvbiAoeCl7cmV0dXJuIHg7fSl9O1xuICAgIGRvIHtcbiAgICAgIGNhbWxfc3RhY2tfZGVwdGggPSA0MDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJlcyA9IGNhbWxfY2FsbF9nZW4ocmVzLmpvb190cmFtcCwgcmVzLmpvb19hcmdzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLyogSGFuZGxlIGV4Y2VwdGlvbiBjb21pbmcgZnJvbSBKYXZhU2NyaXB0IG9yIGZyb20gdGhlIHJ1bnRpbWUuICovXG4gICAgICAgIGlmICghY2FtbF9leG5fc3RhY2spIHRocm93IGU7XG4gICAgICAgIHZhciBoYW5kbGVyID0gY2FtbF9leG5fc3RhY2tbMV07XG4gICAgICAgIGNhbWxfZXhuX3N0YWNrID0gY2FtbF9leG5fc3RhY2tbMl07XG4gICAgICAgIHJlcyA9IHtqb29fdHJhbXA6IGhhbmRsZXIsXG4gICAgICAgICAgICAgICBqb29fYXJnczogW2NhbWxfd3JhcF9leGNlcHRpb24oZSldfTtcbiAgICAgIH1cbiAgICB9IHdoaWxlKHJlcyAmJiByZXMuam9vX2FyZ3MpXG4gIH0gZmluYWxseSB7XG4gICAgY2FtbF9zdGFja19kZXB0aCA9IHNhdmVkX3N0YWNrX2RlcHRoO1xuICAgIGNhbWxfZXhuX3N0YWNrID0gc2F2ZWRfZXhuX3N0YWNrO1xuICAgIGNhbWxfZmliZXJfc3RhY2sgPSBzYXZlZF9maWJlcl9zdGFjaztcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX2pzXG5mdW5jdGlvbiBjYW1sX2lzX2pzKCkge1xuICByZXR1cm4gMTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc29vX2ZsYWdzX3VzZV9qc19zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfanNvb19mbGFnc191c2VfanNfc3RyaW5nKHVuaXQpe1xuICByZXR1cm4gRkxBRyhcInVzZS1qcy1zdHJpbmdcIilcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc29vX2ZsYWdzX2VmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfanNvb19mbGFnc19lZmZlY3RzKHVuaXQpe1xuICByZXR1cm4gRkxBRyhcImVmZmVjdHNcIilcbn1cblxuLy9Qcm92aWRlczogY2FtbF93cmFwX2V4Y2VwdGlvbiBjb25zdCAobXV0YWJsZSlcbi8vUmVxdWlyZXM6IGNhbWxfZ2xvYmFsX2RhdGEsY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcsY2FtbF9uYW1lZF92YWx1ZVxuZnVuY3Rpb24gY2FtbF93cmFwX2V4Y2VwdGlvbihlKSB7XG4gIGlmIChGTEFHKFwiZXhjd3JhcFwiKSkge1xuICAgIGlmKGUgaW5zdGFuY2VvZiBBcnJheSkgcmV0dXJuIGU7XG4gICAgdmFyIGV4bjtcbiAgICAvL1N0YWNrX292ZXJmbG93OiBjaHJvbWUsIHNhZmFyaVxuICAgIGlmKGdsb2JhbFRoaXMuUmFuZ2VFcnJvclxuICAgICAgICYmIGUgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLlJhbmdlRXJyb3JcbiAgICAgICAmJiBlLm1lc3NhZ2VcbiAgICAgICAmJiBlLm1lc3NhZ2UubWF0Y2goL21heGltdW0gY2FsbCBzdGFjay9pKSlcbiAgICAgIGV4biA9IGNhbWxfZ2xvYmFsX2RhdGEuU3RhY2tfb3ZlcmZsb3c7XG4gICAgLy9TdGFja19vdmVyZmxvdzogZmlyZWZveFxuICAgIGVsc2UgaWYoZ2xvYmFsVGhpcy5JbnRlcm5hbEVycm9yXG4gICAgICAgJiYgZSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuSW50ZXJuYWxFcnJvclxuICAgICAgICYmIGUubWVzc2FnZVxuICAgICAgICYmIGUubWVzc2FnZS5tYXRjaCgvdG9vIG11Y2ggcmVjdXJzaW9uL2kpKVxuICAgICAgZXhuID0gY2FtbF9nbG9iYWxfZGF0YS5TdGFja19vdmVyZmxvdztcbiAgICAvL1dyYXAgRXJyb3IgaW4gSnMuRXJyb3IgZXhjZXB0aW9uXG4gICAgZWxzZSBpZihlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5FcnJvciAmJiBjYW1sX25hbWVkX3ZhbHVlKFwianNFcnJvclwiKSlcbiAgICAgIGV4biA9IFswLGNhbWxfbmFtZWRfdmFsdWUoXCJqc0Vycm9yXCIpLGVdO1xuICAgIGVsc2VcbiAgICAgIC8vZmFsbGJhY2s6IHdyYXBwZWQgaW4gRmFpbHVyZVxuICAgICAgZXhuID0gWzAsY2FtbF9nbG9iYWxfZGF0YS5GYWlsdXJlLGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nIChTdHJpbmcoZSkpXTtcbiAgICAvLyBXZSBhbHJlYWR5IGhhdmUgYW4gZXJyb3IgYXQgaGFuZCwgbGV0J3MgdXNlIGl0LlxuICAgIGlmIChlIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5FcnJvcilcbiAgICAgIGV4bi5qc19lcnJvciA9IGU7XG4gICAgcmV0dXJuIGV4bjtcbiAgfSBlbHNlXG4gICAgcmV0dXJuIGU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZVxuLy9SZXF1aXJlczogY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2Vcbi8vUmVxdWlyZXM6IGNhbWxfcmVjb3JkX2JhY2t0cmFjZV9mbGFnXG5mdW5jdGlvbiBjYW1sX21heWJlX2F0dGFjaF9iYWNrdHJhY2UoZXhuLCBmb3JjZSkge1xuICBpZihjYW1sX3JlY29yZF9iYWNrdHJhY2VfZmxhZylcbiAgICByZXR1cm4gY2FtbF9leG5fd2l0aF9qc19iYWNrdHJhY2UoZXhuLCBmb3JjZSk7XG4gIGVsc2UgcmV0dXJuIGV4blxufVxuXG4vLyBFeHBlcmltZW50YWxcbi8vUHJvdmlkZXM6IGNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlXG4vL1JlcXVpcmVzOiBjYW1sX2dsb2JhbF9kYXRhXG5mdW5jdGlvbiBjYW1sX2V4bl93aXRoX2pzX2JhY2t0cmFjZShleG4sIGZvcmNlKSB7XG4gIC8vbmV2ZXIgcmVyYWlzZSBmb3IgY29uc3RhbnQgZXhuXG4gIGlmKCFleG4uanNfZXJyb3IgfHwgZm9yY2UgfHwgZXhuWzBdID09IDI0OCkgZXhuLmpzX2Vycm9yID0gbmV3IGdsb2JhbFRoaXMuRXJyb3IoXCJKcyBleGNlcHRpb24gY29udGFpbmluZyBiYWNrdHJhY2VcIik7XG4gIHJldHVybiBleG47XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9qc19lcnJvcl9vcHRpb25fb2ZfZXhjZXB0aW9uXG5mdW5jdGlvbiBjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb24oZXhuKSB7XG4gIGlmKGV4bi5qc19lcnJvcikgeyByZXR1cm4gWzAsIGV4bi5qc19lcnJvcl07IH1cbiAgcmV0dXJuIDA7XG59XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Zyb21fYm9vbCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fYm9vbCh4KSB7IHJldHVybiAhIXg7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYm9vbCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2Jvb2woeCkgeyByZXR1cm4gK3g7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnJvbV9mbG9hdCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fZmxvYXQoeCkgeyByZXR1cm4geDsgfVxuLy9Qcm92aWRlczogY2FtbF9qc190b19mbG9hdCBjb25zdCAoY29uc3QpXG5mdW5jdGlvbiBjYW1sX2pzX3RvX2Zsb2F0KHgpIHsgcmV0dXJuIHg7IH1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mcm9tX2FycmF5IG11dGFibGUgKHNoYWxsb3cpXG5mdW5jdGlvbiBjYW1sX2pzX2Zyb21fYXJyYXkoYSkge1xuICByZXR1cm4gYS5zbGljZSgxKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfdG9fYXJyYXkgbXV0YWJsZSAoc2hhbGxvdylcbmZ1bmN0aW9uIGNhbWxfanNfdG9fYXJyYXkoYSkge1xuICB2YXIgbGVuID0gYS5sZW5ndGg7XG4gIHZhciBiID0gbmV3IEFycmF5KGxlbisxKTtcbiAgYlswXSA9IDA7XG4gIGZvcih2YXIgaT0wO2k8bGVuO2krKykgYltpKzFdID0gYVtpXTtcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGlzdF9vZl9qc19hcnJheSBjb25zdCAobXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfbGlzdF9vZl9qc19hcnJheShhKXtcbiAgdmFyIGwgPSAwO1xuICBmb3IodmFyIGk9YS5sZW5ndGggLSAxOyBpPj0wOyBpLS0pe1xuICAgIHZhciBlID0gYVtpXTtcbiAgICBsID0gWzAsZSxsXTtcbiAgfVxuICByZXR1cm4gbFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xpc3RfdG9fanNfYXJyYXkgY29uc3QgKG11dGFibGUpXG5mdW5jdGlvbiBjYW1sX2xpc3RfdG9fanNfYXJyYXkobCl7XG4gIHZhciBhID0gW107XG4gIGZvcig7IGwgIT09IDA7IGwgPSBsWzJdKSB7XG4gICAgYS5wdXNoKGxbMV0pO1xuICB9XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3ZhciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc192YXIoeCkge1xuICB2YXIgeCA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHgpO1xuICAvL0NoZWNrcyB0aGF0IHggaGFzIHRoZSBmb3JtIGlkZW50Wy5pZGVudF0qXG4gIGlmKCF4Lm1hdGNoKC9eW2EtekEtWl8kXVthLXpBLVpfJDAtOV0qKFxcLlthLXpBLVpfJF1bYS16QS1aXyQwLTldKikqJC8pKXtcbiAgICBjb25zb2xlLmVycm9yKFwiY2FtbF9qc192YXI6IFxcXCJcIiArIHggKyBcIlxcXCIgaXMgbm90IGEgdmFsaWQgSmF2YVNjcmlwdCB2YXJpYWJsZS4gY29udGludWluZyAuLlwiKTtcbiAgICAvL2NvbnNvbGUuZXJyb3IoXCJKcy5VbnNhZmUuZXZhbF9zdHJpbmdcIilcbiAgfVxuICByZXR1cm4gZXZhbCh4KTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfY2FsbCAoY29uc3QsIG11dGFibGUsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzX2Zyb21fYXJyYXlcbmZ1bmN0aW9uIGNhbWxfanNfY2FsbChmLCBvLCBhcmdzKSB7IHJldHVybiBmLmFwcGx5KG8sIGNhbWxfanNfZnJvbV9hcnJheShhcmdzKSk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfanNfZnVuX2NhbGwgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX2Z1bl9jYWxsKGYsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDE6IHJldHVybiBmKCk7XG4gIGNhc2UgMjogcmV0dXJuIGYgKGFbMV0pO1xuICBjYXNlIDM6IHJldHVybiBmIChhWzFdLGFbMl0pO1xuICBjYXNlIDQ6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0pO1xuICBjYXNlIDY6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0pO1xuICBjYXNlIDc6IHJldHVybiBmIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIGNhc2UgODogcmV0dXJuIGYgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSxhWzZdLGFbN10pO1xuICB9XG4gIHJldHVybiBmLmFwcGx5KG51bGwsIGNhbWxfanNfZnJvbV9hcnJheShhKSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX21ldGhfY2FsbCAobXV0YWJsZSwgY29uc3QsIHNoYWxsb3cpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX21ldGhfY2FsbChvLCBmLCBhcmdzKSB7XG4gIHJldHVybiBvW2NhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGYpXS5hcHBseShvLCBjYW1sX2pzX2Zyb21fYXJyYXkoYXJncykpO1xufVxuLy9Qcm92aWRlczogY2FtbF9qc19uZXcgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2pzX25ldyhjLCBhKSB7XG4gIHN3aXRjaCAoYS5sZW5ndGgpIHtcbiAgY2FzZSAxOiByZXR1cm4gbmV3IGM7XG4gIGNhc2UgMjogcmV0dXJuIG5ldyBjIChhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSk7XG4gIGNhc2UgNDogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSk7XG4gIGNhc2UgNTogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gbmV3IGMgKGFbMV0sYVsyXSxhWzNdLGFbNF0sYVs1XSk7XG4gIGNhc2UgNzogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSk7XG4gIGNhc2UgODogcmV0dXJuIG5ldyBjIChhWzFdLGFbMl0sYVszXSxhWzRdLGFbNV0sYVs2XSxhWzddKTtcbiAgfVxuICBmdW5jdGlvbiBGKCkgeyByZXR1cm4gYy5hcHBseSh0aGlzLCBjYW1sX2pzX2Zyb21fYXJyYXkoYSkpOyB9XG4gIEYucHJvdG90eXBlID0gYy5wcm90b3R5cGU7XG4gIHJldHVybiBuZXcgRjtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfb2pzX25ld19hcnIgKGNvbnN0LCBzaGFsbG93KVxuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX29qc19uZXdfYXJyKGMsIGEpIHtcbiAgc3dpdGNoIChhLmxlbmd0aCkge1xuICBjYXNlIDA6IHJldHVybiBuZXcgYztcbiAgY2FzZSAxOiByZXR1cm4gbmV3IGMgKGFbMF0pO1xuICBjYXNlIDI6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdKTtcbiAgY2FzZSAzOiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdKTtcbiAgY2FzZSA0OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10pO1xuICBjYXNlIDU6IHJldHVybiBuZXcgYyAoYVswXSxhWzFdLGFbMl0sYVszXSxhWzRdKTtcbiAgY2FzZSA2OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdKTtcbiAgY2FzZSA3OiByZXR1cm4gbmV3IGMgKGFbMF0sYVsxXSxhWzJdLGFbM10sYVs0XSxhWzVdLGFbNl0pO1xuICB9XG4gIGZ1bmN0aW9uIEYoKSB7IHJldHVybiBjLmFwcGx5KHRoaXMsIGEpOyB9XG4gIEYucHJvdG90eXBlID0gYy5wcm90b3R5cGU7XG4gIHJldHVybiBuZXcgRjtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFjayBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2soZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGlmKGxlbiA+IDApe1xuICAgICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGFyZ3MgPSBbdW5kZWZpbmVkXTtcbiAgICB9XG4gICAgdmFyIHJlcyA9IGNhbWxfY2FsbGJhY2soZiwgYXJncyk7XG4gICAgcmV0dXJuIChyZXMgaW5zdGFuY2VvZiBGdW5jdGlvbik/Y2FtbF9qc193cmFwX2NhbGxiYWNrKHJlcyk6cmVzO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHNcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja19hcmd1bWVudHMoZikge1xuICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIFthcmdzXSk7XG4gIH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9jYWxsYmFja19zdHJpY3QoYXJpdHksIGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkoYXJpdHkpO1xuICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcmd1bWVudHMubGVuZ3RoLCBhcml0eSlcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsIGFyZ3MpO1xuICB9O1xufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZSBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrLCBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5XG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfY2FsbGJhY2tfdW5zYWZlKGYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgbGVuID0gY2FtbF9qc19mdW5jdGlvbl9hcml0eShmKTtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgYXJncyk7IH1cbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2ssIGNhbWxfanNfd3JhcF9jYWxsYmFja1xuZnVuY3Rpb24gY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2soZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGxlbiArIDEpO1xuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICB2YXIgcmVzID0gY2FtbF9jYWxsYmFjayhmLGFyZ3MpO1xuICAgIHJldHVybiAocmVzIGluc3RhbmNlb2YgRnVuY3Rpb24pP2NhbWxfanNfd3JhcF9jYWxsYmFjayhyZXMpOnJlcztcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfYXJndW1lbnRzIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50cyhmKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgdmFyIGFyZ3MgPSBuZXcgQXJyYXkobGVuKTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2ldID0gYXJndW1lbnRzW2ldO1xuICAgIHJldHVybiBjYW1sX2NhbGxiYWNrKGYsW3RoaXMsYXJnc10pO1xuICB9XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3QgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfY2FsbGJhY2tcbmZ1bmN0aW9uIGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3N0cmljdChhcml0eSwgZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyaXR5ICsgMSk7XG4gICAgdmFyIGxlbiA9IE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGgsIGFyaXR5KVxuICAgIGFyZ3NbMF0gPSB0aGlzO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIGFyZ3NbaSsxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICByZXR1cm4gY2FtbF9jYWxsYmFjayhmLCBhcmdzKTtcbiAgfTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX3Vuc2FmZSBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrLCBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5XG5mdW5jdGlvbiBjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmUoZikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciBsZW4gPSBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5KGYpIC0gMTtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShsZW4gKyAxKTtcbiAgICBhcmdzWzBdID0gdGhpcztcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSBhcmdzW2krMV0gPSBhcmd1bWVudHNbaV07XG4gICAgcmV0dXJuIGNhbWxfY2FsbGJhY2soZiwgYXJncyk7IH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19mdW5jdGlvbl9hcml0eVxuLy9JZjogIWVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfanNfZnVuY3Rpb25fYXJpdHkoZikge1xuICByZXR1cm4gKGYubCA+PSAwKT9mLmw6KGYubCA9IGYubGVuZ3RoKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5XG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2pzX2Z1bmN0aW9uX2FyaXR5KGYpIHtcbiAgLy8gRnVuY3Rpb25zIGhhdmUgYW4gYWRkaXRpb25hbCBjb250aW51YXRpb24gcGFyYW1ldGVyLiBUaGlzIHNob3VsZFxuICAvLyBub3QgYmUgdmlzaWJsZSB3aGVuIGNhbGxpbmcgdGhlbSBmcm9tIEphdmFTY3JpcHRcbiAgcmV0dXJuICgoZi5sID49IDApP2YubDooZi5sID0gZi5sZW5ndGgpKSAtIDFcbn1cblxuLy9Qcm92aWRlczogY2FtbF9qc19lcXVhbHMgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9qc19lcXVhbHMgKHgsIHkpIHsgcmV0dXJuICsoeCA9PSB5KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2V2YWxfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2V2YWxfc3RyaW5nIChzKSB7cmV0dXJuIGV2YWwoY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocykpO31cblxuLy9Qcm92aWRlczogY2FtbF9qc19leHByIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2pzX2V4cHIocykge1xuICBjb25zb2xlLmVycm9yKFwiY2FtbF9qc19leHByOiBmYWxsYmFjayB0byBydW50aW1lIGV2YWx1YXRpb25cXG5cIik7XG4gIHJldHVybiBldmFsKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMpKTt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcHVyZV9qc19leHByIGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3B1cmVfanNfZXhwciAocyl7XG4gIGNvbnNvbGUuZXJyb3IoXCJjYW1sX3B1cmVfanNfZXhwcjogZmFsbGJhY2sgdG8gcnVudGltZSBldmFsdWF0aW9uXFxuXCIpO1xuICByZXR1cm4gZXZhbChjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhzKSk7fVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX29iamVjdCAob2JqZWN0X2xpdGVyYWwpXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9qc19vYmplY3QgKGEpIHtcbiAgdmFyIG8gPSB7fTtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIHAgPSBhW2ldO1xuICAgIG9bY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocFsxXSldID0gcFsyXTtcbiAgfVxuICByZXR1cm4gbztcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gRm9ybWF0XG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VfZm9ybWF0XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfcGFyc2VfZm9ybWF0IChmbXQpIHtcbiAgZm10ID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhmbXQpO1xuICB2YXIgbGVuID0gZm10Lmxlbmd0aDtcbiAgaWYgKGxlbiA+IDMxKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJmb3JtYXRfaW50OiBmb3JtYXQgdG9vIGxvbmdcIik7XG4gIHZhciBmID1cbiAgICAgIHsganVzdGlmeTonKycsIHNpZ25zdHlsZTonLScsIGZpbGxlcjonICcsIGFsdGVybmF0ZTpmYWxzZSxcbiAgICAgICAgYmFzZTowLCBzaWduZWRjb252OmZhbHNlLCB3aWR0aDowLCB1cHBlcmNhc2U6ZmFsc2UsXG4gICAgICAgIHNpZ246MSwgcHJlYzotMSwgY29udjonZicgfTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBjID0gZm10LmNoYXJBdChpKTtcbiAgICBzd2l0Y2ggKGMpIHtcbiAgICBjYXNlICctJzpcbiAgICAgIGYuanVzdGlmeSA9ICctJzsgYnJlYWs7XG4gICAgY2FzZSAnKyc6IGNhc2UgJyAnOlxuICAgICAgZi5zaWduc3R5bGUgPSBjOyBicmVhaztcbiAgICBjYXNlICcwJzpcbiAgICAgIGYuZmlsbGVyID0gJzAnOyBicmVhaztcbiAgICBjYXNlICcjJzpcbiAgICAgIGYuYWx0ZXJuYXRlID0gdHJ1ZTsgYnJlYWs7XG4gICAgY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2FzZSAnNCc6IGNhc2UgJzUnOlxuICAgIGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOlxuICAgICAgZi53aWR0aCA9IDA7XG4gICAgICB3aGlsZSAoYz1mbXQuY2hhckNvZGVBdChpKSAtIDQ4LCBjID49IDAgJiYgYyA8PSA5KSB7XG4gICAgICAgIGYud2lkdGggPSBmLndpZHRoICogMTAgKyBjOyBpKytcbiAgICAgIH1cbiAgICAgIGktLTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJy4nOlxuICAgICAgZi5wcmVjID0gMDtcbiAgICAgIGkrKztcbiAgICAgIHdoaWxlIChjPWZtdC5jaGFyQ29kZUF0KGkpIC0gNDgsIGMgPj0gMCAmJiBjIDw9IDkpIHtcbiAgICAgICAgZi5wcmVjID0gZi5wcmVjICogMTAgKyBjOyBpKytcbiAgICAgIH1cbiAgICAgIGktLTtcbiAgICBjYXNlICdkJzogY2FzZSAnaSc6XG4gICAgICBmLnNpZ25lZGNvbnYgPSB0cnVlOyAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgJ3UnOlxuICAgICAgZi5iYXNlID0gMTA7IGJyZWFrO1xuICAgIGNhc2UgJ3gnOlxuICAgICAgZi5iYXNlID0gMTY7IGJyZWFrO1xuICAgIGNhc2UgJ1gnOlxuICAgICAgZi5iYXNlID0gMTY7IGYudXBwZXJjYXNlID0gdHJ1ZTsgYnJlYWs7XG4gICAgY2FzZSAnbyc6XG4gICAgICBmLmJhc2UgPSA4OyBicmVhaztcbiAgICBjYXNlICdlJzogY2FzZSAnZic6IGNhc2UgJ2cnOlxuICAgICAgZi5zaWduZWRjb252ID0gdHJ1ZTsgZi5jb252ID0gYzsgYnJlYWs7XG4gICAgY2FzZSAnRSc6IGNhc2UgJ0YnOiBjYXNlICdHJzpcbiAgICAgIGYuc2lnbmVkY29udiA9IHRydWU7IGYudXBwZXJjYXNlID0gdHJ1ZTtcbiAgICAgIGYuY29udiA9IGMudG9Mb3dlckNhc2UgKCk7IGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZjtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9maW5pc2hfZm9ybWF0dGluZyhmLCByYXdidWZmZXIpIHtcbiAgaWYgKGYudXBwZXJjYXNlKSByYXdidWZmZXIgPSByYXdidWZmZXIudG9VcHBlckNhc2UoKTtcbiAgdmFyIGxlbiA9IHJhd2J1ZmZlci5sZW5ndGg7XG4gIC8qIEFkanVzdCBsZW4gdG8gcmVmbGVjdCBhZGRpdGlvbmFsIGNoYXJzIChzaWduLCBldGMpICovXG4gIGlmIChmLnNpZ25lZGNvbnYgJiYgKGYuc2lnbiA8IDAgfHwgZi5zaWduc3R5bGUgIT0gJy0nKSkgbGVuKys7XG4gIGlmIChmLmFsdGVybmF0ZSkge1xuICAgIGlmIChmLmJhc2UgPT0gOCkgbGVuICs9IDE7XG4gICAgaWYgKGYuYmFzZSA9PSAxNikgbGVuICs9IDI7XG4gIH1cbiAgLyogRG8gdGhlIGZvcm1hdHRpbmcgKi9cbiAgdmFyIGJ1ZmZlciA9IFwiXCI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJysnICYmIGYuZmlsbGVyID09ICcgJylcbiAgICBmb3IgKHZhciBpID0gbGVuOyBpIDwgZi53aWR0aDsgaSsrKSBidWZmZXIgKz0gJyAnO1xuICBpZiAoZi5zaWduZWRjb252KSB7XG4gICAgaWYgKGYuc2lnbiA8IDApIGJ1ZmZlciArPSAnLSc7XG4gICAgZWxzZSBpZiAoZi5zaWduc3R5bGUgIT0gJy0nKSBidWZmZXIgKz0gZi5zaWduc3R5bGU7XG4gIH1cbiAgaWYgKGYuYWx0ZXJuYXRlICYmIGYuYmFzZSA9PSA4KSBidWZmZXIgKz0gJzAnO1xuICBpZiAoZi5hbHRlcm5hdGUgJiYgZi5iYXNlID09IDE2KSBidWZmZXIgKz0gZi51cHBlcmNhc2U/XCIwWFwiOlwiMHhcIjtcbiAgaWYgKGYuanVzdGlmeSA9PSAnKycgJiYgZi5maWxsZXIgPT0gJzAnKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnMCc7XG4gIGJ1ZmZlciArPSByYXdidWZmZXI7XG4gIGlmIChmLmp1c3RpZnkgPT0gJy0nKVxuICAgIGZvciAodmFyIGkgPSBsZW47IGkgPCBmLndpZHRoOyBpKyspIGJ1ZmZlciArPSAnICc7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGJ1ZmZlcik7XG59XG4iLCIvLyBKc19vZl9vY2FtbCBydW50aW1lIHN1cHBvcnRcbi8vIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4vLyBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczoganNvb19mbG9vcl9sb2cyXG52YXIgbG9nMl9vayA9IE1hdGgubG9nMiAmJiBNYXRoLmxvZzIoMS4xMjM1NTgyMDkyODg5NDc0RSszMDcpID09IDEwMjBcbmZ1bmN0aW9uIGpzb29fZmxvb3JfbG9nMih4KSB7XG4gIGlmKGxvZzJfb2spIHJldHVybiBNYXRoLmZsb29yKE1hdGgubG9nMih4KSlcbiAgdmFyIGkgPSAwO1xuICBpZiAoeCA9PSAwKSByZXR1cm4gLUluZmluaXR5O1xuICBpZih4Pj0xKSB7d2hpbGUgKHg+PTIpIHt4Lz0yOyBpKyt9IH1cbiAgZWxzZSB7d2hpbGUgKHggPCAxKSB7eCo9MjsgaS0tfSB9O1xuICByZXR1cm4gaTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBqc29vX2Zsb29yX2xvZzIsIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpXG5mdW5jdGlvbiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQgKHgpIHtcbiAgaWYgKCFpc0Zpbml0ZSh4KSkge1xuICAgIGlmIChpc05hTih4KSlcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgxLCAwLCAweDdmZjApO1xuICAgIGlmICh4ID4gMClcbiAgICAgIHJldHVybiBjYW1sX2ludDY0X2NyZWF0ZV9sb19taV9oaSgwLCAwLCAweDdmZjApXG4gICAgZWxzZVxuICAgICAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKDAsIDAsIDB4ZmZmMClcbiAgfVxuICB2YXIgc2lnbiA9ICh4PT0wICYmIDEveCA9PSAtSW5maW5pdHkpPzB4ODAwMDooeD49MCk/MDoweDgwMDA7XG4gIGlmIChzaWduKSB4ID0gLXg7XG4gIC8vIEludDY0LmJpdHNfb2ZfZmxvYXQgMS4xMjM1NTgyMDkyODg5NDc0RSszMDcgPSAweDdmYjAwMDAwMDAwMDAwMDBMXG4gIC8vIHVzaW5nIE1hdGguTE9HMkUqTWF0aC5sb2coeCkgaW4gcGxhY2Ugb2YgTWF0aC5sb2cyIHJlc3VsdCBpbiBwcmVjaXNpb24gbG9zdFxuICB2YXIgZXhwID0ganNvb19mbG9vcl9sb2cyKHgpICsgMTAyMztcbiAgaWYgKGV4cCA8PSAwKSB7XG4gICAgZXhwID0gMDtcbiAgICB4IC89IE1hdGgucG93KDIsLTEwMjYpO1xuICB9IGVsc2Uge1xuICAgIHggLz0gTWF0aC5wb3coMixleHAtMTAyNyk7XG4gICAgaWYgKHggPCAxNikge1xuICAgICAgeCAqPSAyOyBleHAgLT0xOyB9XG4gICAgaWYgKGV4cCA9PSAwKSB7XG4gICAgICB4IC89IDI7IH1cbiAgfVxuICB2YXIgayA9IE1hdGgucG93KDIsMjQpO1xuICB2YXIgcjMgPSB4fDA7XG4gIHggPSAoeCAtIHIzKSAqIGs7XG4gIHZhciByMiA9IHh8MDtcbiAgeCA9ICh4IC0gcjIpICogaztcbiAgdmFyIHIxID0geHwwO1xuICByMyA9IChyMyAmMHhmKSB8IHNpZ24gfCBleHAgPDwgNDtcbiAgcmV0dXJuIGNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpKHIxLCByMiwgcjMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGpzb29fZmxvb3JfbG9nMlxuZnVuY3Rpb24gY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0ICh4KSB7XG4gIHZhciBmbG9hdDMyYSA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7XG4gIGZsb2F0MzJhWzBdID0geDtcbiAgdmFyIGludDMyYSA9IG5ldyBJbnQzMkFycmF5KGZsb2F0MzJhLmJ1ZmZlcik7XG4gIHJldHVybiBpbnQzMmFbMF0gfCAwO1xufVxuXG4vL0ZQIGxpdGVyYWxzIGNhbiBiZSB3cml0dGVuIHVzaW5nIHRoZSBoZXhhZGVjaW1hbFxuLy9ub3RhdGlvbiAweDxtYW50aXNzYSBpbiBoZXg+cDxleHBvbmVudD4gZnJvbSBJU08gQzk5LlxuLy9odHRwczovL2dpdGh1Yi5jb20vZGFua29nYWkvanMtaGV4ZmxvYXQvYmxvYi9tYXN0ZXIvaGV4ZmxvYXQuanNcbi8vUHJvdmlkZXM6IGNhbWxfaGV4c3RyaW5nX29mX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZywgY2FtbF9zdHJfcmVwZWF0XG5mdW5jdGlvbiBjYW1sX2hleHN0cmluZ19vZl9mbG9hdCAoeCwgcHJlYywgc3R5bGUpIHtcbiAgaWYgKCFpc0Zpbml0ZSh4KSkge1xuICAgIGlmIChpc05hTih4KSkgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKFwibmFuXCIpO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoKHggPiAwKT9cImluZmluaXR5XCI6XCItaW5maW5pdHlcIik7XG4gIH1cbiAgdmFyIHNpZ24gPSAoeD09MCAmJiAxL3ggPT0gLUluZmluaXR5KT8xOih4Pj0wKT8wOjE7XG4gIGlmKHNpZ24pIHggPSAteDtcbiAgdmFyIGV4cCA9IDA7XG4gIGlmICh4ID09IDApIHsgfVxuICBlbHNlIGlmICh4IDwgMSkge1xuICAgIHdoaWxlICh4IDwgMSAmJiBleHAgPiAtMTAyMikgIHsgeCAqPSAyOyBleHAtLSB9XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHggPj0gMikgeyB4IC89IDI7IGV4cCsrIH1cbiAgfVxuICB2YXIgZXhwX3NpZ24gPSBleHAgPCAwID8gJycgOiAnKyc7XG4gIHZhciBzaWduX3N0ciA9ICcnO1xuICBpZiAoc2lnbikgc2lnbl9zdHIgPSAnLSdcbiAgZWxzZSB7XG4gICAgc3dpdGNoKHN0eWxlKXtcbiAgICBjYXNlIDQzIC8qICcrJyAqLzogc2lnbl9zdHIgPSAnKyc7IGJyZWFrO1xuICAgIGNhc2UgMzIgLyogJyAnICovOiBzaWduX3N0ciA9ICcgJzsgYnJlYWs7XG4gICAgZGVmYXVsdDogYnJlYWs7XG4gICAgfVxuICB9XG4gIGlmIChwcmVjID49IDAgJiYgcHJlYyA8IDEzKSB7XG4gICAgLyogSWYgYSBwcmVjaXNpb24gaXMgZ2l2ZW4sIGFuZCBpcyBzbWFsbCwgcm91bmQgbWFudGlzc2EgYWNjb3JkaW5nbHkgKi9cbiAgICB2YXIgY3N0ID0gTWF0aC5wb3coMixwcmVjICogNCk7XG4gICAgeCA9IE1hdGgucm91bmQoeCAqIGNzdCkgLyBjc3Q7XG4gIH1cbiAgdmFyIHhfc3RyID0geC50b1N0cmluZygxNik7XG4gIGlmKHByZWMgPj0gMCl7XG4gICAgdmFyIGlkeCA9IHhfc3RyLmluZGV4T2YoJy4nKTtcbiAgICBpZihpZHg8MCkge1xuICAgICAgeF9zdHIgKz0gJy4nICsgY2FtbF9zdHJfcmVwZWF0KHByZWMsICcwJyk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdmFyIHNpemUgPSBpZHgrMStwcmVjO1xuICAgICAgaWYoeF9zdHIubGVuZ3RoIDwgc2l6ZSlcbiAgICAgICAgeF9zdHIgKz0gY2FtbF9zdHJfcmVwZWF0KHNpemUgLSB4X3N0ci5sZW5ndGgsICcwJyk7XG4gICAgICBlbHNlXG4gICAgICAgIHhfc3RyID0geF9zdHIuc3Vic3RyKDAsc2l6ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyAoc2lnbl9zdHIgKyAnMHgnICsgeF9zdHIgKyAncCcgKyBleHBfc2lnbiArIGV4cC50b1N0cmluZygxMCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyAoeCkge1xuICB2YXIgbG8gPSB4LmxvO1xuICB2YXIgbWkgPSB4Lm1pO1xuICB2YXIgaGkgPSB4LmhpO1xuICB2YXIgZXhwID0gKGhpICYgMHg3ZmZmKSA+PiA0O1xuICBpZiAoZXhwID09IDIwNDcpIHtcbiAgICBpZiAoKGxvfG1pfChoaSYweGYpKSA9PSAwKVxuICAgICAgcmV0dXJuIChoaSAmIDB4ODAwMCk/KC1JbmZpbml0eSk6SW5maW5pdHk7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIE5hTjtcbiAgfVxuICB2YXIgayA9IE1hdGgucG93KDIsLTI0KTtcbiAgdmFyIHJlcyA9IChsbyprK21pKSprKyhoaSYweGYpO1xuICBpZiAoZXhwID4gMCkge1xuICAgIHJlcyArPSAxNjtcbiAgICByZXMgKj0gTWF0aC5wb3coMixleHAtMTAyNyk7XG4gIH0gZWxzZVxuICAgIHJlcyAqPSBNYXRoLnBvdygyLC0xMDI2KTtcbiAgaWYgKGhpICYgMHg4MDAwKSByZXMgPSAtIHJlcztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9uZXh0YWZ0ZXJfZmxvYXQgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cywgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2ludDY0X2FkZCwgY2FtbF9pbnQ2NF9zdWIsY2FtbF9pbnQ2NF9vZl9pbnQzMlxuZnVuY3Rpb24gY2FtbF9uZXh0YWZ0ZXJfZmxvYXQgKHgseSkge1xuICBpZihpc05hTih4KSB8fCBpc05hTih5KSkgcmV0dXJuIE5hTjtcbiAgaWYoeD09eSkgcmV0dXJuIHk7XG4gIGlmKHg9PTApe1xuICAgIGlmKHkgPCAwKVxuICAgICAgcmV0dXJuIC1NYXRoLnBvdygyLCAtMTA3NClcbiAgICBlbHNlXG4gICAgICByZXR1cm4gTWF0aC5wb3coMiwgLTEwNzQpXG4gIH1cbiAgdmFyIGJpdHMgPSBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoeCk7XG4gIHZhciBvbmUgPSBjYW1sX2ludDY0X29mX2ludDMyKDEpO1xuICBpZiAoKHg8eSkgPT0gKHg+MCkpXG4gICAgYml0cyA9IGNhbWxfaW50NjRfYWRkKGJpdHMsIG9uZSlcbiAgZWxzZVxuICAgIGJpdHMgPSBjYW1sX2ludDY0X3N1YihiaXRzLCBvbmUpXG4gIHJldHVybiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMoYml0cyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdHJ1bmNfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfdHJ1bmNfZmxvYXQoeCl7XG4gIHJldHVybiBNYXRoLnRydW5jKHgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDMyX2Zsb2F0X29mX2JpdHMgY29uc3RcbmZ1bmN0aW9uIGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyAoeCkge1xuICB2YXIgaW50MzJhID0gbmV3IEludDMyQXJyYXkoMSk7XG4gIGludDMyYVswXSA9IHg7XG4gIHZhciBmbG9hdDMyYSA9IG5ldyBGbG9hdDMyQXJyYXkoaW50MzJhLmJ1ZmZlcik7XG4gIHJldHVybiBmbG9hdDMyYVswXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jbGFzc2lmeV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9jbGFzc2lmeV9mbG9hdCAoeCkge1xuICBpZiAoaXNGaW5pdGUgKHgpKSB7XG4gICAgaWYgKE1hdGguYWJzKHgpID49IDIuMjI1MDczODU4NTA3MjAxNGUtMzA4KSByZXR1cm4gMDtcbiAgICBpZiAoeCAhPSAwKSByZXR1cm4gMTtcbiAgICByZXR1cm4gMjtcbiAgfVxuICByZXR1cm4gaXNOYU4oeCk/NDozO1xufVxuLy9Qcm92aWRlczogY2FtbF9tb2RmX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX21vZGZfZmxvYXQgKHgpIHtcbiAgaWYgKGlzRmluaXRlICh4KSkge1xuICAgIHZhciBuZWcgPSAoMS94KSA8IDA7XG4gICAgeCA9IE1hdGguYWJzKHgpO1xuICAgIHZhciBpID0gTWF0aC5mbG9vciAoeCk7XG4gICAgdmFyIGYgPSB4IC0gaTtcbiAgICBpZiAobmVnKSB7IGkgPSAtaTsgZiA9IC1mOyB9XG4gICAgcmV0dXJuIFswLCBmLCBpXTtcbiAgfVxuICBpZiAoaXNOYU4gKHgpKSByZXR1cm4gWzAsIE5hTiwgTmFOXTtcbiAgcmV0dXJuIFswLCAxL3gsIHhdO1xufVxuLy9Qcm92aWRlczogY2FtbF9sZGV4cF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sZGV4cF9mbG9hdCAoeCxleHApIHtcbiAgZXhwIHw9IDA7XG4gIGlmIChleHAgPiAxMDIzKSB7XG4gICAgZXhwIC09IDEwMjM7XG4gICAgeCAqPSBNYXRoLnBvdygyLCAxMDIzKTtcbiAgICBpZiAoZXhwID4gMTAyMykgeyAgLy8gaW4gY2FzZSB4IGlzIHN1Ym5vcm1hbFxuICAgICAgZXhwIC09IDEwMjM7XG4gICAgICB4ICo9IE1hdGgucG93KDIsIDEwMjMpO1xuICAgIH1cbiAgfVxuICBpZiAoZXhwIDwgLTEwMjMpIHtcbiAgICBleHAgKz0gMTAyMztcbiAgICB4ICo9IE1hdGgucG93KDIsIC0xMDIzKTtcbiAgfVxuICB4ICo9IE1hdGgucG93KDIsIGV4cCk7XG4gIHJldHVybiB4O1xufVxuLy9Qcm92aWRlczogY2FtbF9mcmV4cF9mbG9hdCBjb25zdFxuLy9SZXF1aXJlczoganNvb19mbG9vcl9sb2cyXG5mdW5jdGlvbiBjYW1sX2ZyZXhwX2Zsb2F0ICh4KSB7XG4gIGlmICgoeCA9PSAwKSB8fCAhaXNGaW5pdGUoeCkpIHJldHVybiBbMCwgeCwgMF07XG4gIHZhciBuZWcgPSB4IDwgMDtcbiAgaWYgKG5lZykgeCA9IC0geDtcbiAgdmFyIGV4cCA9IE1hdGgubWF4KC0xMDIzLCBqc29vX2Zsb29yX2xvZzIoeCkgKyAxKTtcbiAgeCAqPSBNYXRoLnBvdygyLC1leHApO1xuICB3aGlsZSAoeCA8IDAuNSkge1xuICAgIHggKj0gMjtcbiAgICBleHAtLTtcbiAgfVxuICB3aGlsZSAoeCA+PSAxKSB7XG4gICAgeCAqPSAwLjU7XG4gICAgZXhwKys7XG4gIH1cbiAgaWYgKG5lZykgeCA9IC0geDtcbiAgcmV0dXJuIFswLCB4LCBleHBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2Zsb2F0X2NvbXBhcmUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfY29tcGFyZSAoeCwgeSkge1xuICBpZiAoeCA9PT0geSkgcmV0dXJuIDA7XG4gIGlmICh4IDwgeSkgcmV0dXJuIC0xO1xuICBpZiAoeCA+IHkpIHJldHVybiAxO1xuICBpZiAoeCA9PT0geCkgcmV0dXJuIDE7XG4gIGlmICh5ID09PSB5KSByZXR1cm4gLTE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvcHlzaWduX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NvcHlzaWduX2Zsb2F0ICh4LCB5KSB7XG4gIGlmICh5ID09IDApIHkgPSAxIC8geTtcbiAgeCA9IE1hdGguYWJzKHgpO1xuICByZXR1cm4gKHkgPCAwKT8oLXgpOng7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2lnbmJpdF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9zaWduYml0X2Zsb2F0KHgpIHtcbiAgaWYgKHggPT0gMCkgeCA9IDEgLyB4O1xuICByZXR1cm4gKHggPCAwKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhwbTFfZmxvYXQgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZXhwbTFfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguZXhwbTEoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfZXhwMl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9leHAyX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgucG93KDIsIHgpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2xvZzFwX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2xvZzFwX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgubG9nMXAoeCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbG9nMl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cyX2Zsb2F0KHgpIHsgcmV0dXJuIE1hdGgubG9nMih4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9oeXBvdF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9oeXBvdF9mbG9hdCAoeCwgeSkgeyByZXR1cm4gTWF0aC5oeXBvdCh4LCB5KTsgfVxuLy9Qcm92aWRlczogY2FtbF9sb2cxMF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9sb2cxMF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5sb2cxMCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9jb3NoX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2Nvc2hfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguY29zaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hY29zaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hY29zaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hY29zaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9zaW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3NpbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguc2luaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hc2luaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hc2luaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hc2luaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF90YW5oX2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX3RhbmhfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGgudGFuaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9hdGFuaF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9hdGFuaF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5hdGFuaCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9yb3VuZF9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9yb3VuZF9mbG9hdCAoeCkgeyByZXR1cm4gTWF0aC5yb3VuZCh4KTsgfVxuLy9Qcm92aWRlczogY2FtbF9jYnJ0X2Zsb2F0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2NicnRfZmxvYXQgKHgpIHsgcmV0dXJuIE1hdGguY2JydCh4KTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VyZl9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9lcmZfZmxvYXQoeCkge1xuICB2YXIgYTEgPSAwLjI1NDgyOTU5MjtcbiAgdmFyIGEyID0gLTAuMjg0NDk2NzM2O1xuICB2YXIgYTMgPSAxLjQyMTQxMzc0MTtcbiAgdmFyIGE0ID0gLTEuNDUzMTUyMDI3O1xuICB2YXIgYTUgPSAxLjA2MTQwNTQyOTtcbiAgdmFyIHAgPSAwLjMyNzU5MTE7XG5cbiAgdmFyIHNpZ24gPSAxO1xuICBpZiAoeCA8IDApIHtcbiAgICBzaWduID0gLTE7XG4gIH1cbiAgeCA9IE1hdGguYWJzKHgpO1xuICB2YXIgdCA9IDEuMCAvICgxLjAgKyBwICogeCk7XG4gIHZhciB5ID0gMS4wIC0gKCgoKGE1ICogdCArIGE0KSAqIHQgKyBhMykgKiB0ICsgYTIpICogdCArIGExKSAqIHQgKiBNYXRoLmV4cCgteCAqIHgpO1xuXG4gIHJldHVybiBzaWduICogeTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcmZjX2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2VyZl9mbG9hdFxuZnVuY3Rpb24gY2FtbF9lcmZjX2Zsb2F0KHgpIHtcbiAgcmV0dXJuIDEgLSBjYW1sX2VyZl9mbG9hdCh4KTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZtYV9mbG9hdCBjb25zdFxuZnVuY3Rpb24gY2FtbF9mbWFfZmxvYXQoeCwgeSwgeikge1xuICB2YXIgU1BMSVQgPSBNYXRoLnBvdygyLCAyNykgKyAxO1xuICB2YXIgTUlOX1ZBTFVFID0gTWF0aC5wb3coMiwgLTEwMjIpO1xuICB2YXIgRVBTSUxPTiA9IE1hdGgucG93KDIsIC01Mik7XG4gIHZhciBDID0gNDE2O1xuICB2YXIgQSA9IE1hdGgucG93KDIsICtDKTtcbiAgdmFyIEIgPSBNYXRoLnBvdygyLCAtQyk7XG5cbiAgZnVuY3Rpb24gbXVsdGlwbHkgKGEsIGIpIHtcbiAgICB2YXIgYXQgPSBTUExJVCAqIGE7XG4gICAgdmFyIGFoaSA9IGF0IC0gKGF0IC0gYSk7XG4gICAgdmFyIGFsbyA9IGEgLSBhaGk7XG4gICAgdmFyIGJ0ID0gU1BMSVQgKiBiO1xuICAgIHZhciBiaGkgPSBidCAtIChidCAtIGIpO1xuICAgIHZhciBibG8gPSBiIC0gYmhpO1xuICAgIHZhciBwID0gYSAqIGI7XG4gICAgdmFyIGUgPSAoKGFoaSAqIGJoaSAtIHApICsgYWhpICogYmxvICsgYWxvICogYmhpKSArIGFsbyAqIGJsbztcbiAgICByZXR1cm4ge1xuICAgICAgcDogcCxcbiAgICAgIGU6IGVcbiAgICB9O1xuICB9O1xuXG4gIGZ1bmN0aW9uIGFkZCAoYSwgYikge1xuICAgIHZhciBzID0gYSArIGI7XG4gICAgdmFyIHYgPSBzIC0gYTtcbiAgICB2YXIgZSA9IChhIC0gKHMgLSB2KSkgKyAoYiAtIHYpO1xuICAgIHJldHVybiB7XG4gICAgICBzOiBzLFxuICAgICAgZTogZVxuICAgIH07XG4gIH07XG5cbiAgZnVuY3Rpb24gYWRqdXN0ICh4LCB5KSB7XG4gICAgcmV0dXJuIHggIT09IDAgJiYgeSAhPT0gMCAmJiBTUExJVCAqIHggLSAoU1BMSVQgKiB4IC0geCkgPT09IHggPyB4ICogKDEgKyAoeCA8IDAgPyAtMSA6ICsxKSAqICh5IDwgMCA/IC0xIDogKzEpICogRVBTSUxPTikgOiB4O1xuICB9O1xuXG4gIGlmICh4ID09PSAwIHx8IHggIT09IHggfHwgeCA9PT0gKzEgLyAwIHx8IHggPT09IC0xIC8gMCB8fFxuICAgICAgeSA9PT0gMCB8fCB5ICE9PSB5IHx8IHkgPT09ICsxIC8gMCB8fCB5ID09PSAtMSAvIDApIHtcbiAgICByZXR1cm4geCAqIHkgKyB6O1xuICB9XG4gIGlmICh6ID09PSAwKSB7XG4gICAgcmV0dXJuIHggKiB5O1xuICB9XG4gIGlmICh6ICE9PSB6IHx8IHogPT09ICsxIC8gMCB8fCB6ID09PSAtMSAvIDApIHtcbiAgICByZXR1cm4gejtcbiAgfVxuXG4gIHZhciBzY2FsZSA9IDE7XG4gIHdoaWxlIChNYXRoLmFicyh4KSA+IEEpIHtcbiAgICBzY2FsZSAqPSBBO1xuICAgIHggKj0gQjtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeSkgPiBBKSB7XG4gICAgc2NhbGUgKj0gQTtcbiAgICB5ICo9IEI7XG4gIH1cbiAgaWYgKHNjYWxlID09PSAxIC8gMCkge1xuICAgIHJldHVybiB4ICogeSAqIHNjYWxlO1xuICB9XG4gIHdoaWxlIChNYXRoLmFicyh4KSA8IEIpIHtcbiAgICBzY2FsZSAqPSBCO1xuICAgIHggKj0gQTtcbiAgfVxuICB3aGlsZSAoTWF0aC5hYnMoeSkgPCBCKSB7XG4gICAgc2NhbGUgKj0gQjtcbiAgICB5ICo9IEE7XG4gIH1cbiAgaWYgKHNjYWxlID09PSAwKSB7XG4gICAgcmV0dXJuIHo7XG4gIH1cblxuICB2YXIgeHMgPSB4O1xuICB2YXIgeXMgPSB5O1xuICB2YXIgenMgPSB6IC8gc2NhbGU7XG5cbiAgaWYgKE1hdGguYWJzKHpzKSA+IE1hdGguYWJzKHhzICogeXMpICogNCAvIEVQU0lMT04pIHtcbiAgICByZXR1cm4gejtcbiAgfVxuICBpZiAoTWF0aC5hYnMoenMpIDwgTWF0aC5hYnMoeHMgKiB5cykgKiBFUFNJTE9OIC8gNCAqIEVQU0lMT04gLyA0KSB7XG4gICAgenMgPSAoeiA8IDAgPyAtMSA6ICsxKSAqIE1JTl9WQUxVRTtcbiAgfVxuXG4gIHZhciB4eSA9IG11bHRpcGx5KHhzLCB5cyk7XG4gIHZhciBzID0gYWRkKHh5LnAsIHpzKTtcbiAgdmFyIHUgPSBhZGQoeHkuZSwgcy5lKTtcbiAgdmFyIGkgPSBhZGQocy5zLCB1LnMpO1xuXG4gIHZhciBmID0gaS5zICsgYWRqdXN0KGkuZSwgdS5lKTtcbiAgaWYgKGYgPT09IDApIHtcbiAgICByZXR1cm4gZjtcbiAgfVxuXG4gIHZhciBmcyA9IGYgKiBzY2FsZTtcbiAgaWYgKE1hdGguYWJzKGZzKSA+IE1JTl9WQUxVRSkge1xuICAgIHJldHVybiBmcztcbiAgfVxuXG4gIC8vIEl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgd2FzIGV4dHJhIHJvdW5kaW5nIGZvciBhIGRlbm9ybWFsaXplZCB2YWx1ZS5cbiAgcmV0dXJuIGZzICsgYWRqdXN0KGYgLSBmcyAvIHNjYWxlLCBpLmUpICogc2NhbGU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZm9ybWF0X2Zsb2F0IGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZ1xuZnVuY3Rpb24gY2FtbF9mb3JtYXRfZmxvYXQgKGZtdCwgeCkge1xuICBmdW5jdGlvbiB0b0ZpeGVkKHgsZHApIHtcbiAgICBpZiAoTWF0aC5hYnMoeCkgPCAxLjApIHtcbiAgICAgIHJldHVybiB4LnRvRml4ZWQoZHApO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgZSA9IHBhcnNlSW50KHgudG9TdHJpbmcoKS5zcGxpdCgnKycpWzFdKTtcbiAgICAgIGlmIChlID4gMjApIHtcbiAgICAgICAgZSAtPSAyMDtcbiAgICAgICAgeCAvPSBNYXRoLnBvdygxMCxlKTtcbiAgICAgICAgeCArPSAobmV3IEFycmF5KGUrMSkpLmpvaW4oJzAnKTtcbiAgICAgICAgaWYoZHAgPiAwKSB7XG4gICAgICAgICAgeCA9IHggKyAnLicgKyAobmV3IEFycmF5KGRwKzEpKS5qb2luKCcwJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHg7XG4gICAgICB9XG4gICAgICBlbHNlIHJldHVybiB4LnRvRml4ZWQoZHApXG4gICAgfVxuICB9XG4gIHZhciBzLCBmID0gY2FtbF9wYXJzZV9mb3JtYXQoZm10KTtcbiAgdmFyIHByZWMgPSAoZi5wcmVjIDwgMCk/NjpmLnByZWM7XG4gIGlmICh4IDwgMCB8fCAoeCA9PSAwICYmIDEveCA9PSAtSW5maW5pdHkpKSB7IGYuc2lnbiA9IC0xOyB4ID0gLXg7IH1cbiAgaWYgKGlzTmFOKHgpKSB7IHMgPSBcIm5hblwiOyBmLmZpbGxlciA9ICcgJzsgfVxuICBlbHNlIGlmICghaXNGaW5pdGUoeCkpIHsgcyA9IFwiaW5mXCI7IGYuZmlsbGVyID0gJyAnOyB9XG4gIGVsc2VcbiAgICBzd2l0Y2ggKGYuY29udikge1xuICAgIGNhc2UgJ2UnOlxuICAgICAgdmFyIHMgPSB4LnRvRXhwb25lbnRpYWwocHJlYyk7XG4gICAgICAvLyBleHBvbmVudCBzaG91bGQgYmUgYXQgbGVhc3QgdHdvIGRpZ2l0c1xuICAgICAgdmFyIGkgPSBzLmxlbmd0aDtcbiAgICAgIGlmIChzLmNoYXJBdChpIC0gMykgPT0gJ2UnKVxuICAgICAgICBzID0gcy5zbGljZSAoMCwgaSAtIDEpICsgJzAnICsgcy5zbGljZSAoaSAtIDEpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnZic6XG4gICAgICBzID0gdG9GaXhlZCh4LCBwcmVjKTsgYnJlYWs7XG4gICAgY2FzZSAnZyc6XG4gICAgICBwcmVjID0gcHJlYz9wcmVjOjE7XG4gICAgICBzID0geC50b0V4cG9uZW50aWFsKHByZWMgLSAxKTtcbiAgICAgIHZhciBqID0gcy5pbmRleE9mKCdlJyk7XG4gICAgICB2YXIgZXhwID0gK3Muc2xpY2UoaiArIDEpO1xuICAgICAgaWYgKGV4cCA8IC00IHx8IHggPj0gMWUyMSB8fCB4LnRvRml4ZWQoMCkubGVuZ3RoID4gcHJlYykge1xuICAgICAgICAvLyByZW1vdmUgdHJhaWxpbmcgemVyb2VzXG4gICAgICAgIHZhciBpID0gaiAtIDE7IHdoaWxlIChzLmNoYXJBdChpKSA9PSAnMCcpIGktLTtcbiAgICAgICAgaWYgKHMuY2hhckF0KGkpID09ICcuJykgaS0tO1xuICAgICAgICBzID0gcy5zbGljZSgwLCBpICsgMSkgKyBzLnNsaWNlKGopO1xuICAgICAgICBpID0gcy5sZW5ndGg7XG4gICAgICAgIGlmIChzLmNoYXJBdChpIC0gMykgPT0gJ2UnKVxuICAgICAgICAgIHMgPSBzLnNsaWNlICgwLCBpIC0gMSkgKyAnMCcgKyBzLnNsaWNlIChpIC0gMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIHAgPSBwcmVjO1xuICAgICAgICBpZiAoZXhwIDwgMCkgeyBwIC09IGV4cCArIDE7IHMgPSB4LnRvRml4ZWQocCk7IH1cbiAgICAgICAgZWxzZSB3aGlsZSAocyA9IHgudG9GaXhlZChwKSwgcy5sZW5ndGggPiBwcmVjICsgMSkgcC0tO1xuICAgICAgICBpZiAocCkge1xuICAgICAgICAgIC8vIHJlbW92ZSB0cmFpbGluZyB6ZXJvZXNcbiAgICAgICAgICB2YXIgaSA9IHMubGVuZ3RoIC0gMTsgd2hpbGUgKHMuY2hhckF0KGkpID09ICcwJykgaS0tO1xuICAgICAgICAgIGlmIChzLmNoYXJBdChpKSA9PSAnLicpIGktLTtcbiAgICAgICAgICBzID0gcy5zbGljZSgwLCBpICsgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgcmV0dXJuIGNhbWxfZmluaXNoX2Zvcm1hdHRpbmcoZiwgcyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRfb2Zfc3RyaW5nIChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfZmxvYXRfb2Zfc3RyaW5nKHMpIHtcbiAgdmFyIHJlcztcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocylcbiAgcmVzID0gK3M7XG4gIGlmICgocy5sZW5ndGggPiAwKSAmJiAocmVzID09PSByZXMpKSByZXR1cm4gcmVzO1xuICBzID0gcy5yZXBsYWNlKC9fL2csXCJcIik7XG4gIHJlcyA9ICtzO1xuICBpZiAoKChzLmxlbmd0aCA+IDApICYmIChyZXMgPT09IHJlcykpIHx8IC9eWystXT9uYW4kL2kudGVzdChzKSkgcmV0dXJuIHJlcztcbiAgdmFyIG0gPSAvXiAqKFsrLV0/KTB4KFswLTlhLWZdKylcXC4/KFswLTlhLWZdKikocChbKy1dP1swLTldKykpPy9pLmV4ZWMocyk7XG4gIC8vICAgICAgICAgIDEgICAgICAgIDIgICAgICAgICAgICAgMyAgICAgICAgICAgNVxuICBpZihtKXtcbiAgICB2YXIgbTMgPSBtWzNdLnJlcGxhY2UoLzArJC8sJycpO1xuICAgIHZhciBtYW50aXNzYSA9IHBhcnNlSW50KG1bMV0gKyBtWzJdICsgbTMsIDE2KTtcbiAgICB2YXIgZXhwb25lbnQgPSAobVs1XXwwKSAtIDQqbTMubGVuZ3RoO1xuICAgIHJlcyA9IG1hbnRpc3NhICogTWF0aC5wb3coMiwgZXhwb25lbnQpO1xuICAgIHJldHVybiByZXM7XG4gIH1cbiAgaWYoL15cXCs/aW5mKGluaXR5KT8kL2kudGVzdChzKSkgcmV0dXJuIEluZmluaXR5O1xuICBpZigvXi1pbmYoaW5pdHkpPyQvaS50ZXN0KHMpKSByZXR1cm4gLUluZmluaXR5O1xuICBjYW1sX2ZhaWx3aXRoKFwiZmxvYXRfb2Zfc3RyaW5nXCIpO1xufVxuIiwiLypcblRvIGRlYWwgd2l0aCBlZmZlY3RzLCB0aGUgZXhlY3V0aW9uIGNvbnRleHQgaXMgaW50dWl0aXZlbHkgY29tcG9zZWQgb2ZcbmEgc3RhY2sgb2YgZmliZXJzLiBFYWNoIGZpYmVyIGhhcyBhIGN1cnJlbnQgbG93LWxldmVsIGNvbnRpbnVhdGlvblxuKG9uZS1hcmd1bWVudCBKYXZhU2NyaXB0IGZ1bmN0aW9uKSwgYSBzdGFjayBvZiBleGNlcHRpb24gaGFuZGxlcnMgYW5kXG5hIHRyaXBsZSBvZiBoYW5kbGVycywgd2hpY2ggYXJlIGludm9rZWQgd2hlbiB0aGUgZmliZXIgdGVybWluYXRlc1xuKGVpdGhlciB3aXRoIGEgdmFsdWUgb3IgYW4gZXhjZXB0aW9uKSBvciB3aGVuIGFuIGVmZmVjdCBpcyBwZXJmb3JtZWQuXG5UaGUgbG93LWxldmVsIGNvbnRpbnVhdGlvbiBvZiB0aGUgdG9wbW9zdCBmaWJlciAod2hpY2ggaXMgY3VycmVudGx5XG5leGVjdXRpbmcpIGlzIHBhc3NlZCBmcm9tIGZ1bmN0aW9uIHRvIGZ1bmN0aW9uIGFzIGFuIGFkZGl0aW9uYWxcbmFyZ3VtZW50LiBJdHMgc3RhY2sgb2YgZXhjZXB0aW9uIGhhbmRsZXJzIGlzIHN0b3JlZCBpblxuW2NhbWxfZXhuX3N0YWNrXS4gRXhjZXB0aW9uIGhhbmRsZXJzIGFyZSBwdXNoZWQgaW50byB0aGlzIHN0YWNrIHdoZW5cbmVudGVyaW5nIGEgW3RyeSAuLi4gd2l0aCAuLi5dIGFuZCBwb3BwZWQgb24gZXhpdC4gVGhlbiwgaGFuZGxlcnMgYW5kXG50aGUgcmVtYWluaW5nIGZpYmVycyBhcmUgc3RvcmVkIGluIFtjYW1sX2ZpYmVyX3N0YWNrXS4gVG8gaW5zdGFsbCBhblxuZWZmZWN0IGhhbmRsZXIsIHdlIHB1c2ggYSBuZXcgZmliZXIgaW50byB0aGUgZXhlY3V0aW9uIGNvbnRleHQuXG5cbldlIGhhdmUgYmFzaWNhbGx5IHRoZSBmb2xsb3dpbmcgdHlwZSBmb3IgcmVpZmllZCBjb250aW51YXRpb25zICh0eXBlXG5bY29udGludWF0aW9uXSBpbiBtb2R1bGUgW0VmZmVjdF0gb2YgdGhlIHN0YW5kYXJkIGxpYnJhcnkpOlxuXG4gIHR5cGUgKCdhLCAnYikgY29udGludWF0aW9uID0gKCdhLCAnYikgc3RhY2sgcmVmXG5cbiAgYW5kIChfLCBfKSBzdGFjayA9XG4gICAgICBDb25zIDogKCdiIC0+IHVuaXQpICogICAgICAgICAgICAgKCogbG93LWxldmVsIGNvbnRpbnVhdGlvbiAqKVxuICAgICAgICAgICAgIChleG4gLT4gdW5pdCkgbGlzdCAqICAgICAgICgqIGV4Y2VwdGlvbiBoYW5kbGVycyAqKVxuICAgICAgICAgICAgICgnYiwgJ2MpIGhhbmRsZXIgKlxuICAgICAgICAgICAgICgnYSwgJ2IpIHN0YWNrXG4gICAgICAgICAgICAgLT4gKCdhLCAnYykgc3RhY2tcbiAgICB8IEVtcHR5IDogKCdhLCAnYSkgc3RhY2tcblxuICBhbmQgKCdhLCdiKSBoYW5kbGVyID0gICAoKiBBcyBpbiBtb2R1bGUgRWZmZWN0IGZyb20gdGhlIHN0YW5kYXJkIGxpYnJhcnkgKilcbiAgICB7IHJldGM6ICdhIC0+ICdiO1xuICAgICAgZXhuYzogZXhuIC0+ICdiO1xuICAgICAgZWZmYzogJ2MuJ2MgRWZmZWN0LnQgLT4gKCgnYywnYikgY29udGludWF0aW9uIC0+ICdiKSBvcHRpb24gfVxuXG5Db250aW51YXRpb25zIGFyZSBvbmUtc2hvdC4gQSBjb250aW51YXRpb24gW3JlZiBFbXB0eV0gaGFzIGFscmVhZHlcbmJlZW4gcmVzdW1lZC5cblxuQSBjb250aW51YXRpb24gaXMgYmFzaWNhbGx5IGNvbXBvc2VkIG9mIGEgbGlzdCBvZiBmaWJlcnMsIHdoaWNoIGVhY2hcbmhhcyBpdHMgbG93LWxldmVsIGNvbnRpbnVhdGlvbiwgaXRzIHN0YWNrIG9mIGV4Y2VwdGlvbiBoYW5kbGVycyBhbmQgYVxudHJpcGxlIG9mIGhhbmRsZXJzIHRvIGRlYWwgd2l0aCB3aGVuIHRoZSBmaWJlciB0ZXJtaW5hdGVzIG9yIGFuXG5lZmZlY3QgaXMgcGVyZm9ybWVkLiBXaGVuIHJlc3VtaW5nIGEgY29udGludWF0aW9uLCB0aGUgaW5uZXJtb3N0IGZpYmVyXG5pcyByZXN1bWVkIGZpcnN0LlxuXG5UaGUgaGFuZGxlcnMgYXJlIENQUy10cmFuc2Zvcm1lZCBmdW5jdGlvbnM6IHRoZXkgYWN0dWFsbHkgdGFrZSBhblxuYWRkaXRpb25hbCBwYXJhbWV0ZXIgd2hpY2ggaXMgdGhlIGN1cnJlbnQgbG93LWxldmVsIGNvbnRpbnVhdGlvbi5cbiovXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXhuX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG4vLyBUaGlzIGlzIGFuIE9DYW1sIGxpc3Qgb2YgZXhjZXB0aW9uIGhhbmRsZXJzXG52YXIgY2FtbF9leG5fc3RhY2sgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3B1c2hfdHJhcFxuLy9SZXF1aXJlczogY2FtbF9leG5fc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcHVzaF90cmFwKGhhbmRsZXIpIHtcbiAgY2FtbF9leG5fc3RhY2s9WzAsaGFuZGxlcixjYW1sX2V4bl9zdGFja107XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcG9wX3RyYXBcbi8vUmVxdWlyZXM6IGNhbWxfZXhuX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX3BvcF90cmFwKCkge1xuICBpZiAoIWNhbWxfZXhuX3N0YWNrKSByZXR1cm4gZnVuY3Rpb24oeCl7dGhyb3cgeDt9XG4gIHZhciBoID0gY2FtbF9leG5fc3RhY2tbMV07XG4gIGNhbWxfZXhuX3N0YWNrPWNhbWxfZXhuX3N0YWNrWzJdO1xuICByZXR1cm4gaFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpYmVyX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG4vLyBUaGlzIGhhcyB0aGUgc2hhcGUge2gsIHI6e2ssIHgsIGV9fSB3aGVyZSBoIGlzIGEgdHJpcGxlIG9mIGhhbmRsZXJzXG4vLyAoc2VlIGVmZmVjdC5qcykgYW5kIGssIHggYW5kIGUgYXJlIHRoZSBzYXZlZCBjb250aW51YXRpb24sXG4vLyBleGNlcHRpb24gc3RhY2sgYW5kIGZpYmVyIHN0YWNrIG9mIHRoZSBwYXJlbnQgZmliZXIuXG52YXIgY2FtbF9maWJlcl9zdGFjaztcblxuLy9Qcm92aWRlczpjYW1sX3Jlc3VtZV9zdGFja1xuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9yYWlzZV9jb25zdGFudCwgY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcmVzdW1lX3N0YWNrKHN0YWNrLCBrKSB7XG4gIGlmICghc3RhY2spIGNhbWxfcmFpc2VfY29uc3RhbnRcbiAgICAgICAgICAgICAgICAgKGNhbWxfbmFtZWRfdmFsdWUoXCJFZmZlY3QuQ29udGludWF0aW9uX2FscmVhZHlfcmVzdW1lZFwiKSk7XG4gIC8vIFVwZGF0ZSB0aGUgZXhlY3V0aW9uIGNvbnRleHQgd2l0aCB0aGUgc3RhY2sgb2YgZmliZXJzIGluIFtzdGFja10gaW5cbiAgLy8gb3JkZXIgdG8gcmVzdW1lIHRoZSBjb250aW51YXRpb25cbiAgZG8ge1xuICAgIGNhbWxfZmliZXJfc3RhY2sgPVxuICAgICAge2g6c3RhY2tbM10sIHI6e2s6aywgeDpjYW1sX2V4bl9zdGFjaywgZTpjYW1sX2ZpYmVyX3N0YWNrfX07XG4gICAgayA9IHN0YWNrWzFdO1xuICAgIGNhbWxfZXhuX3N0YWNrID0gc3RhY2tbMl07XG4gICAgc3RhY2sgPSBzdGFja1s0XTtcbiAgfSB3aGlsZSAoc3RhY2spXG4gIHJldHVybiBrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BvcF9maWJlclxuLy9SZXF1aXJlczogY2FtbF9leG5fc3RhY2ssIGNhbWxfZmliZXJfc3RhY2tcbi8vSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGNhbWxfcG9wX2ZpYmVyKCkge1xuICAvLyBNb3ZlIHRvIHRoZSBwYXJlbnQgZmliZXIsIHJldHVybmluZyB0aGUgcGFyZW50J3MgbG93LWxldmVsIGNvbnRpbnVhdGlvblxuICB2YXIgcmVtID0gY2FtbF9maWJlcl9zdGFjay5yO1xuICBjYW1sX2V4bl9zdGFjayA9IHJlbS54O1xuICBjYW1sX2ZpYmVyX3N0YWNrID0gcmVtLmU7XG4gIHJldHVybiByZW0uaztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wZXJmb3JtX2VmZmVjdFxuLy9SZXF1aXJlczogY2FtbF9wb3BfZmliZXIsIGNhbWxfc3RhY2tfY2hlY2tfZGVwdGgsIGNhbWxfdHJhbXBvbGluZV9yZXR1cm4sIGNhbWxfZXhuX3N0YWNrLCBjYW1sX2ZpYmVyX3N0YWNrXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX3BlcmZvcm1fZWZmZWN0KGVmZiwgY29udCwgazApIHtcbiAgLy8gQWxsb2NhdGUgYSBjb250aW51YXRpb24gaWYgd2UgZG9uJ3QgYWxyZWFkeSBoYXZlIG9uZVxuICBpZiAoIWNvbnQpIGNvbnQgPSBbMjQ1IC8qY29udGludWF0aW9uKi8sIDBdO1xuICAvLyBHZXQgY3VycmVudCBlZmZlY3QgaGFuZGxlclxuICB2YXIgaGFuZGxlciA9IGNhbWxfZmliZXJfc3RhY2suaFszXTtcbiAgLy8gQ29ucyB0aGUgY3VycmVudCBmaWJlciBvbnRvIHRoZSBjb250aW51YXRpb246XG4gIC8vICAgY29udCA6PSBDb25zIChrLCBleG5fc3RhY2ssIGhhbmRsZXJzLCAhY29udClcbiAgY29udFsxXSA9IFswLGswLGNhbWxfZXhuX3N0YWNrLGNhbWxfZmliZXJfc3RhY2suaCxjb250WzFdXTtcbiAgLy8gTW92ZSB0byBwYXJlbnQgZmliZXIgYW5kIGV4ZWN1dGUgdGhlIGVmZmVjdCBoYW5kbGVyIHRoZXJlXG4gIC8vIFRoZSBoYW5kbGVyIGlzIGRlZmluZWQgaW4gU3RkbGliLkVmZmVjdCwgc28gd2Uga25vdyB0aGF0IHRoZSBhcml0eSBtYXRjaGVzXG4gIHZhciBrMSA9IGNhbWxfcG9wX2ZpYmVyKCk7XG4gIHJldHVybiBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoKCk/aGFuZGxlcihlZmYsY29udCxrMSxrMSlcbiAgICAgICAgIDpjYW1sX3RyYW1wb2xpbmVfcmV0dXJuKGhhbmRsZXIsW2VmZixjb250LGsxLGsxXSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYWxsb2Nfc3RhY2tcbi8vUmVxdWlyZXM6IGNhbWxfcG9wX2ZpYmVyLCBjYW1sX2ZpYmVyX3N0YWNrLCBjYW1sX2NhbGxfZ2VuLCBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoLCBjYW1sX3RyYW1wb2xpbmVfcmV0dXJuXG4vL0lmOiBlZmZlY3RzXG5mdW5jdGlvbiBjYW1sX2FsbG9jX3N0YWNrKGh2LCBoeCwgaGYpIHtcbiAgZnVuY3Rpb24gY2FsbChpLCB4KSB7XG4gICAgdmFyIGY9Y2FtbF9maWJlcl9zdGFjay5oW2ldO1xuICAgIHZhciBhcmdzID0gW3gsIGNhbWxfcG9wX2ZpYmVyKCldO1xuICAgIHJldHVybiBjYW1sX3N0YWNrX2NoZWNrX2RlcHRoKCk/Y2FtbF9jYWxsX2dlbihmLGFyZ3MpXG4gICAgICAgICAgIDpjYW1sX3RyYW1wb2xpbmVfcmV0dXJuKGYsYXJncyk7XG4gIH1cbiAgZnVuY3Rpb24gaHZhbCh4KSB7XG4gICAgLy8gQ2FsbCBbaHZdIGluIHRoZSBwYXJlbnQgZmliZXJcbiAgICByZXR1cm4gY2FsbCgxLCB4KTtcbiAgfVxuICBmdW5jdGlvbiBoZXhuKGUpIHtcbiAgICAvLyBDYWxsIFtoeF0gaW4gdGhlIHBhcmVudCBmaWJlclxuICAgIHJldHVybiBjYWxsKDIsIGUpO1xuICB9XG4gIHJldHVybiBbMCwgaHZhbCwgWzAsIGhleG4sIDBdLCBbMCwgaHYsIGh4LCBoZl0sIDBdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FsbG9jX3N0YWNrXG4vL0lmOiAhZWZmZWN0c1xuZnVuY3Rpb24gY2FtbF9hbGxvY19zdGFjayhodiwgaHgsIGhmKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2NvbnRpbnVhdGlvbl91c2Vfbm9leGNcbmZ1bmN0aW9uIGNhbWxfY29udGludWF0aW9uX3VzZV9ub2V4Yyhjb250KSB7XG4gIHZhciBzdGFjaz1jb250WzFdO1xuICBjb250WzFdPTA7XG4gIHJldHVybiBzdGFjaztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb250aW51YXRpb25fdXNlX2FuZF91cGRhdGVfaGFuZGxlcl9ub2V4Y1xuLy9SZXF1aXJlczogY2FtbF9jb250aW51YXRpb25fdXNlX25vZXhjXG5mdW5jdGlvbiBjYW1sX2NvbnRpbnVhdGlvbl91c2VfYW5kX3VwZGF0ZV9oYW5kbGVyX25vZXhjKGNvbnQsIGh2YWwsIGhleG4sIGhlZmYpIHtcbiAgdmFyIHN0YWNrID0gY2FtbF9jb250aW51YXRpb25fdXNlX25vZXhjKGNvbnQpO1xuICBzdGFja1szXSA9IFswLCBodmFsLCBoZXhuLCBoZWZmXTtcbiAgcmV0dXJuIHN0YWNrO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dldF9jb250aW51YXRpb25fY2FsbHN0YWNrXG5mdW5jdGlvbiBjYW1sX2dldF9jb250aW51YXRpb25fY2FsbHN0YWNrICgpIHsgcmV0dXJuIFswXTsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NvbmRpdGlvbl9uZXdcbmZ1bmN0aW9uIGNhbWxfbWxfY29uZGl0aW9uX25ldyh1bml0KXtcbiAgICByZXR1cm4ge2NvbmRpdGlvbjoxfTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jb25kaXRpb25fd2FpdFxuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fd2FpdCh0LG11dGV4dCl7XG4gICAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY29uZGl0aW9uX2Jyb2FkY2FzdFxuZnVuY3Rpb24gY2FtbF9tbF9jb25kaXRpb25fYnJvYWRjYXN0KHQpe1xuICAgIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2NvbmRpdGlvbl9zaWduYWxcbmZ1bmN0aW9uIGNhbWxfbWxfY29uZGl0aW9uX3NpZ25hbCh0KXtcbiAgICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczoganNvb19lZmZlY3Rfbm90X3N1cHBvcnRlZFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy8hSWY6IGVmZmVjdHNcbmZ1bmN0aW9uIGpzb29fZWZmZWN0X25vdF9zdXBwb3J0ZWQoKXtcbiAgY2FtbF9mYWlsd2l0aChcIkVmZmVjdCBoYW5kbGVycyBhcmUgbm90IHN1cHBvcnRlZFwiKTtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGZzX25vZGVfc3VwcG9ydGVkXG5mdW5jdGlvbiBmc19ub2RlX3N1cHBvcnRlZCAoKSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mIGdsb2JhbFRoaXMucHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICYmIHR5cGVvZiBnbG9iYWxUaGlzLnByb2Nlc3MudmVyc2lvbnMgIT09ICd1bmRlZmluZWQnXG4gICAgICAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5wcm9jZXNzLnZlcnNpb25zLm5vZGUgIT09ICd1bmRlZmluZWQnKVxufVxuLy9Qcm92aWRlczogZnNfbm9kZV9zdXBwb3J0ZWRcbi8vSWY6IGJyb3dzZXJcbmZ1bmN0aW9uIGZzX25vZGVfc3VwcG9ydGVkICgpIHtcbiAgcmV0dXJuIGZhbHNlXG59XG5cblxuLy9Qcm92aWRlczogTWxOb2RlRGV2aWNlXG4vL1JlcXVpcmVzOiBNbE5vZGVGZCwgY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWUsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG5mdW5jdGlvbiBNbE5vZGVEZXZpY2Uocm9vdCkge1xuICB0aGlzLmZzID0gcmVxdWlyZSgnZnMnKTtcbiAgdGhpcy5yb290ID0gcm9vdDtcbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubm0gPSBmdW5jdGlvbihuYW1lKSB7XG4gIHJldHVybiAodGhpcy5yb290ICsgbmFtZSk7XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmV4aXN0cyA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5leGlzdHNTeW5jKHRoaXMubm0obmFtZSkpPzE6MDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuaXNGaWxlID0gZnVuY3Rpb24obmFtZSkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnN0YXRTeW5jKHRoaXMubm0obmFtZSkpLmlzRmlsZSgpPzE6MDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm1rZGlyID0gZnVuY3Rpb24obmFtZSwgbW9kZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMubWtkaXJTeW5jKHRoaXMubm0obmFtZSkse21vZGU6bW9kZX0pO1xuICAgIHJldHVybiAwXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucm1kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5ybWRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIDBcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZWFkZGlyID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHJldHVybiB0aGlzLmZzLnJlYWRkaXJTeW5jKHRoaXMubm0obmFtZSkpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLmlzX2RpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5zdGF0U3luYyh0aGlzLm5tKG5hbWUpKS5pc0RpcmVjdG9yeSgpPzE6MDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnVubGluayA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgYiA9IHRoaXMuZnMuZXhpc3RzU3luYyh0aGlzLm5tKG5hbWUpKT8xOjA7XG4gICAgdGhpcy5mcy51bmxpbmtTeW5jKHRoaXMubm0obmFtZSkpO1xuICAgIHJldHVybiBiO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbihuYW1lLCBmLCByYWlzZV91bml4KSB7XG4gIHZhciBjb25zdHMgPSByZXF1aXJlKCdjb25zdGFudHMnKTtcbiAgdmFyIHJlcyA9IDA7XG4gIGZvcih2YXIga2V5IGluIGYpe1xuICAgIHN3aXRjaChrZXkpe1xuICAgIGNhc2UgXCJyZG9ubHlcIiAgOiByZXMgfD0gY29uc3RzLk9fUkRPTkxZOyBicmVhaztcbiAgICBjYXNlIFwid3Jvbmx5XCIgIDogcmVzIHw9IGNvbnN0cy5PX1dST05MWTsgYnJlYWs7XG4gICAgY2FzZSBcImFwcGVuZFwiICA6XG4gICAgICByZXMgfD0gY29uc3RzLk9fV1JPTkxZIHwgY29uc3RzLk9fQVBQRU5EO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBcImNyZWF0ZVwiICAgOiByZXMgfD0gY29uc3RzLk9fQ1JFQVQ7ICAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0cnVuY2F0ZVwiIDogcmVzIHw9IGNvbnN0cy5PX1RSVU5DOyAgICBicmVhaztcbiAgICBjYXNlIFwiZXhjbFwiICAgICA6IHJlcyB8PSBjb25zdHMuT19FWENMOyAgICAgYnJlYWs7XG4gICAgY2FzZSBcImJpbmFyeVwiICAgOiByZXMgfD0gY29uc3RzLk9fQklOQVJZOyAgIGJyZWFrO1xuICAgIGNhc2UgXCJ0ZXh0XCIgICAgIDogcmVzIHw9IGNvbnN0cy5PX1RFWFQ7ICAgICBicmVhaztcbiAgICBjYXNlIFwibm9uYmxvY2tcIiA6IHJlcyB8PSBjb25zdHMuT19OT05CTE9DSzsgYnJlYWs7XG4gICAgfVxuICB9XG4gIHRyeSB7XG4gICAgdmFyIGZkID0gdGhpcy5mcy5vcGVuU3luYyh0aGlzLm5tKG5hbWUpLCByZXMpO1xuICAgIHZhciBpc0NoYXJhY3RlckRldmljZSA9IHRoaXMuZnMubHN0YXRTeW5jKHRoaXMubm0obmFtZSkpLmlzQ2hhcmFjdGVyRGV2aWNlKCk7XG4gICAgZi5pc0NoYXJhY3RlckRldmljZSA9IGlzQ2hhcmFjdGVyRGV2aWNlO1xuICAgIHJldHVybiBuZXcgTWxOb2RlRmQoZmQsIGYpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmVuYW1lID0gZnVuY3Rpb24obywgbiwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHRoaXMuZnMucmVuYW1lU3luYyh0aGlzLm5tKG8pLCB0aGlzLm5tKG4pKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5zdGF0ID0gZnVuY3Rpb24obmFtZSwgcmFpc2VfdW5peCkge1xuICB0cnkge1xuICAgIHZhciBqc19zdGF0cyA9IHRoaXMuZnMuc3RhdFN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHNfZnJvbV9qcyhqc19zdGF0cyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUubHN0YXQgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdmFyIGpzX3N0YXRzID0gdGhpcy5mcy5sc3RhdFN5bmModGhpcy5ubShuYW1lKSk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHNfZnJvbV9qcyhqc19zdGF0cyk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUuc3ltbGluayA9IGZ1bmN0aW9uKHRvX2RpciwgdGFyZ2V0LCBwYXRoLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgdGhpcy5mcy5zeW1saW5rU3luYyh0aGlzLm5tKHRhcmdldCksIHRoaXMubm0ocGF0aCksIHRvX2RpciA/ICdkaXInIDogJ2ZpbGUnKTtcbiAgICByZXR1cm4gMDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhpcy5yYWlzZV9ub2RlanNfZXJyb3IoZXJyLCByYWlzZV91bml4KTtcbiAgfVxufVxuTWxOb2RlRGV2aWNlLnByb3RvdHlwZS5yZWFkbGluayA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgbGluayA9IHRoaXMuZnMucmVhZGxpbmtTeW5jKHRoaXMubm0obmFtZSksICd1dGY4Jyk7XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGxpbmspO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aGlzLnJhaXNlX25vZGVqc19lcnJvcihlcnIsIHJhaXNlX3VuaXgpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLm9wZW5kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHRoaXMuZnMub3BlbmRpclN5bmModGhpcy5ubShuYW1lKSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRoaXMucmFpc2Vfbm9kZWpzX2Vycm9yKGVyciwgcmFpc2VfdW5peCk7XG4gIH1cbn1cbk1sTm9kZURldmljZS5wcm90b3R5cGUucmFpc2Vfbm9kZWpzX2Vycm9yID0gZnVuY3Rpb24oZXJyLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gY2FtbF9uYW1lZF92YWx1ZShcIlVuaXguVW5peF9lcnJvclwiKTtcbiAgaWYgKHJhaXNlX3VuaXggJiYgdW5peF9lcnJvcikge1xuICAgIHZhciBhcmdzID0gbWFrZV91bml4X2Vycl9hcmdzKGVyci5jb2RlLCBlcnIuc3lzY2FsbCwgZXJyLnBhdGgsIGVyci5lcnJubyk7XG4gICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgYXJncyk7XG4gIH0gZWxzZSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVEZXZpY2UucHJvdG90eXBlLnN0YXRzX2Zyb21fanMgPSBmdW5jdGlvbihqc19zdGF0cykge1xuICAvKiA9PT1Vbml4LmZpbGVfa2luZD09PVxuICAgKiB0eXBlIGZpbGVfa2luZCA9XG4gICAqICAgICBTX1JFRyAgICAgICAgICAgICAgICAgICAgICAgKCoqIFJlZ3VsYXIgZmlsZSAqKVxuICAgKiAgIHwgU19ESVIgICAgICAgICAgICAgICAgICAgICAgICgqKiBEaXJlY3RvcnkgKilcbiAgICogICB8IFNfQ0hSICAgICAgICAgICAgICAgICAgICAgICAoKiogQ2hhcmFjdGVyIGRldmljZSAqKVxuICAgKiAgIHwgU19CTEsgICAgICAgICAgICAgICAgICAgICAgICgqKiBCbG9jayBkZXZpY2UgKilcbiAgICogICB8IFNfTE5LICAgICAgICAgICAgICAgICAgICAgICAoKiogU3ltYm9saWMgbGluayAqKVxuICAgKiAgIHwgU19GSUZPICAgICAgICAgICAgICAgICAgICAgICgqKiBOYW1lZCBwaXBlICopXG4gICAqICAgfCBTX1NPQ0sgICAgICAgICAgICAgICAgICAgICAgKCoqIFNvY2tldCAqKVxuICAgKi9cbiAgdmFyIGZpbGVfa2luZDtcbiAgaWYgKGpzX3N0YXRzLmlzRmlsZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMDtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0RpcmVjdG9yeSgpKSB7XG4gICAgZmlsZV9raW5kID0gMTtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0NoYXJhY3RlckRldmljZSgpKSB7XG4gICAgZmlsZV9raW5kID0gMjtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc0Jsb2NrRGV2aWNlKCkpIHtcbiAgICBmaWxlX2tpbmQgPSAzO1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzU3ltYm9saWNMaW5rKCkpIHtcbiAgICBmaWxlX2tpbmQgPSA0O1xuICB9IGVsc2UgaWYgKGpzX3N0YXRzLmlzRklGTygpKSB7XG4gICAgZmlsZV9raW5kID0gNTtcbiAgfSBlbHNlIGlmIChqc19zdGF0cy5pc1NvY2tldCgpKSB7XG4gICAgZmlsZV9raW5kID0gNjtcbiAgfVxuICAvKiA9PT1Vbml4LnN0YXRzPT09XG4gICAqIHR5cGUgc3RhdHMgPVxuICAgKiAgeyBzdF9kZXYgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIERldmljZSBudW1iZXIgKilcbiAgICogICAgc3RfaW5vIDogaW50OyAgICAgICAgICAgICAgICgqKiBJbm9kZSBudW1iZXIgKilcbiAgICogICAgc3Rfa2luZCA6IGZpbGVfa2luZDsgICAgICAgICgqKiBLaW5kIG9mIHRoZSBmaWxlICopXG4gICAqICAgIHN0X3Blcm0gOiBmaWxlX3Blcm07ICAgICAgICAoKiogQWNjZXNzIHJpZ2h0cyAqKVxuICAgKiAgICBzdF9ubGluayA6IGludDsgICAgICAgICAgICAgKCoqIE51bWJlciBvZiBsaW5rcyAqKVxuICAgKiAgICBzdF91aWQgOiBpbnQ7ICAgICAgICAgICAgICAgKCoqIFVzZXIgaWQgb2YgdGhlIG93bmVyICopXG4gICAqICAgIHN0X2dpZCA6IGludDsgICAgICAgICAgICAgICAoKiogR3JvdXAgSUQgb2YgdGhlIGZpbGUncyBncm91cCAqKVxuICAgKiAgICBzdF9yZGV2IDogaW50OyAgICAgICAgICAgICAgKCoqIERldmljZSBJRCAoaWYgc3BlY2lhbCBmaWxlKSAqKVxuICAgKiAgICBzdF9zaXplIDogaW50OyAgICAgICAgICAgICAgKCoqIFNpemUgaW4gYnl0ZXMgKilcbiAgICogICAgc3RfYXRpbWUgOiBmbG9hdDsgICAgICAgICAgICgqKiBMYXN0IGFjY2VzcyB0aW1lICopXG4gICAqICAgIHN0X210aW1lIDogZmxvYXQ7ICAgICAgICAgICAoKiogTGFzdCBtb2RpZmljYXRpb24gdGltZSAqKVxuICAgKiAgICBzdF9jdGltZSA6IGZsb2F0OyAgICAgICAgICAgKCoqIExhc3Qgc3RhdHVzIGNoYW5nZSB0aW1lICopXG4gICAqICB9XG4gICAqL1xuICByZXR1cm4gQkxPQ0soXG4gICAgMCxcbiAgICBqc19zdGF0cy5kZXYsXG4gICAganNfc3RhdHMuaW5vLFxuICAgIGZpbGVfa2luZCxcbiAgICBqc19zdGF0cy5tb2RlLFxuICAgIGpzX3N0YXRzLm5saW5rLFxuICAgIGpzX3N0YXRzLnVpZCxcbiAgICBqc19zdGF0cy5naWQsXG4gICAganNfc3RhdHMucmRldixcbiAgICBqc19zdGF0cy5zaXplLFxuICAgIGpzX3N0YXRzLmF0aW1lTXMsXG4gICAganNfc3RhdHMubXRpbWVNcyxcbiAgICBqc19zdGF0cy5jdGltZU1zXG4gICk7XG59XG5cbk1sTm9kZURldmljZS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbE5vZGVEZXZpY2VcblxuLy9Qcm92aWRlczogTWxOb2RlRGV2aWNlXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBNbE5vZGVEZXZpY2UoKSB7XG59XG5cbi8vUHJvdmlkZXM6IE1sTm9kZUZkXG4vL1JlcXVpcmVzOiBNbEZpbGUsIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nLCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzLCBjYW1sX2J5dGVzX3NldCwgY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIE1sTm9kZUZkKGZkLCBmbGFncyl7XG4gIHRoaXMuZnMgPSByZXF1aXJlKCdmcycpO1xuICB0aGlzLmZkID0gZmQ7XG4gIHRoaXMuZmxhZ3MgPSBmbGFncztcbn1cbk1sTm9kZUZkLnByb3RvdHlwZSA9IG5ldyBNbEZpbGUgKCk7XG5NbE5vZGVGZC5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBNbE5vZGVGZDtcblxuTWxOb2RlRmQucHJvdG90eXBlLnRydW5jYXRlID0gZnVuY3Rpb24obGVuKXtcbiAgdHJ5IHtcbiAgICB0aGlzLmZzLmZ0cnVuY2F0ZVN5bmModGhpcy5mZCxsZW58MCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuTWxOb2RlRmQucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uICgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gdGhpcy5mcy5mc3RhdFN5bmModGhpcy5mZCkuc2l6ZTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGZC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihvZmZzZXQsYnVmLGJ1Zl9vZmZzZXQsbGVuKXtcbiAgdHJ5IHtcbiAgICBpZih0aGlzLmZsYWdzLmlzQ2hhcmFjdGVyRGV2aWNlKVxuICAgICAgdGhpcy5mcy53cml0ZVN5bmModGhpcy5mZCwgYnVmLCBidWZfb2Zmc2V0LCBsZW4pO1xuICAgIGVsc2VcbiAgICAgIHRoaXMuZnMud3JpdGVTeW5jKHRoaXMuZmQsIGJ1ZiwgYnVmX29mZnNldCwgbGVuLCBvZmZzZXQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihlcnIudG9TdHJpbmcoKSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5NbE5vZGVGZC5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKG9mZnNldCxhLGJ1Zl9vZmZzZXQsbGVuKXtcbiAgdHJ5IHtcbiAgICBpZih0aGlzLmZsYWdzLmlzQ2hhcmFjdGVyRGV2aWNlKVxuICAgICAgdmFyIHJlYWQgPSB0aGlzLmZzLnJlYWRTeW5jKHRoaXMuZmQsIGEsIGJ1Zl9vZmZzZXQsIGxlbik7XG4gICAgZWxzZVxuICAgICAgdmFyIHJlYWQgPSB0aGlzLmZzLnJlYWRTeW5jKHRoaXMuZmQsIGEsIGJ1Zl9vZmZzZXQsIGxlbiwgb2Zmc2V0KTtcbiAgICByZXR1cm4gcmVhZDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoZXJyLnRvU3RyaW5nKCkpO1xuICB9XG59XG5NbE5vZGVGZC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbigpe1xuICB0cnkge1xuICAgIHRoaXMuZnMuY2xvc2VTeW5jKHRoaXMuZmQpO1xuICAgIHJldHVybiAwXG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGVyci50b1N0cmluZygpKTtcbiAgfVxufVxuXG5cbi8vUHJvdmlkZXM6IE1sTm9kZUZkXG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBNbE5vZGVGZCgpe1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX29wZW5fZm9yX25vZGVcbi8vUmVxdWlyZXM6IE1sTm9kZUZkXG5mdW5jdGlvbiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlKGZkLCBmbGFncyl7XG4gIGlmKGZsYWdzLm5hbWUpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIGZzID0gcmVxdWlyZShcImZzXCIpO1xuICAgICAgdmFyIGZkMiA9IGZzLm9wZW5TeW5jKGZsYWdzLm5hbWUsIFwicnNcIik7XG4gICAgICByZXR1cm4gbmV3IE1sTm9kZUZkKGZkMiwgZmxhZ3MpO1xuICAgIH0gY2F0Y2goZSkgeyAgfVxuICB9XG4gIHJldHVybiBuZXcgTWxOb2RlRmQoZmQsIGZsYWdzKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZVxuLy9JZjogYnJvd3NlclxuZnVuY3Rpb24gY2FtbF9zeXNfb3Blbl9mb3Jfbm9kZShmZCwgZmxhZ3Mpe1xuICByZXR1cm4gbnVsbDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gRHVtbXkgZmlsZXN5c3RlbVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3RyYWlsaW5nX3NsYXNoXG5mdW5jdGlvbiBjYW1sX3RyYWlsaW5nX3NsYXNoKG5hbWUpe1xuICByZXR1cm4gKG5hbWUuc2xpY2UoLTEpICE9PSBcIi9cIikgPyAobmFtZSArIFwiL1wiKSA6IG5hbWU7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY3VycmVudF9kaXJcbi8vUmVxdWlyZXM6IGNhbWxfdHJhaWxpbmdfc2xhc2gsIGZzX25vZGVfc3VwcG9ydGVkXG5pZihmc19ub2RlX3N1cHBvcnRlZCAoKSAmJiBnbG9iYWxUaGlzLnByb2Nlc3MgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzLmN3ZClcbiAgdmFyIGNhbWxfY3VycmVudF9kaXIgPSBnbG9iYWxUaGlzLnByb2Nlc3MuY3dkKCkucmVwbGFjZSgvXFxcXC9nLCcvJyk7XG5lbHNlXG4gIHZhciBjYW1sX2N1cnJlbnRfZGlyID0gIFwiL3N0YXRpY1wiO1xuY2FtbF9jdXJyZW50X2RpciA9IGNhbWxfdHJhaWxpbmdfc2xhc2goY2FtbF9jdXJyZW50X2Rpcik7XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X3Jvb3Rcbi8vUmVxdWlyZXM6IHBhdGhfaXNfYWJzb2x1dGVcbmZ1bmN0aW9uIGNhbWxfZ2V0X3Jvb3QocGF0aCl7XG4gIHZhciB4ID0gcGF0aF9pc19hYnNvbHV0ZShwYXRoKTtcbiAgaWYgKCF4KSByZXR1cm47XG4gIHJldHVybiB4WzBdICsgXCIvXCJ9XG5cbi8vUHJvdmlkZXM6IGNhbWxfcm9vdFxuLy9SZXF1aXJlczogY2FtbF9nZXRfcm9vdCwgY2FtbF9jdXJyZW50X2RpciwgY2FtbF9mYWlsd2l0aFxudmFyIGNhbWxfcm9vdCA9IGNhbWxfZ2V0X3Jvb3QoY2FtbF9jdXJyZW50X2RpcikgfHwgY2FtbF9mYWlsd2l0aChcInVuYWJsZSB0byBjb21wdXRlIGNhbWxfcm9vdFwiKTtcblxuXG4vL1Byb3ZpZGVzOiBNbEZpbGVcbmZ1bmN0aW9uIE1sRmlsZSgpeyAgfVxuXG4vL1Byb3ZpZGVzOiBwYXRoX2lzX2Fic29sdXRlXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gbWFrZV9wYXRoX2lzX2Fic29sdXRlKCkge1xuICBmdW5jdGlvbiBwb3NpeChwYXRoKSB7XG4gICAgaWYgKHBhdGguY2hhckF0KDApID09PSAnLycpIHJldHVybiBbXCJcIiwgcGF0aC5zdWJzdHJpbmcoMSldO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGZ1bmN0aW9uIHdpbjMyKHBhdGgpIHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbm9kZWpzL25vZGUvYmxvYi9iM2ZjYzI0NWZiMjU1Mzk5MDllZjFkNWVhYTAxZGJmOTJlMTY4NjMzL2xpYi9wYXRoLmpzI0w1NlxuICAgIHZhciBzcGxpdERldmljZVJlID0gL14oW2EtekEtWl06fFtcXFxcL117Mn1bXlxcXFwvXStbXFxcXC9dK1teXFxcXC9dKyk/KFtcXFxcL10pPyhbXFxzXFxTXSo/KSQvO1xuICAgIHZhciByZXN1bHQgPSBzcGxpdERldmljZVJlLmV4ZWMocGF0aCk7XG4gICAgdmFyIGRldmljZSA9IHJlc3VsdFsxXSB8fCAnJztcbiAgICB2YXIgaXNVbmMgPSBCb29sZWFuKGRldmljZSAmJiBkZXZpY2UuY2hhckF0KDEpICE9PSAnOicpO1xuXG4gICAgLy8gVU5DIHBhdGhzIGFyZSBhbHdheXMgYWJzb2x1dGVcbiAgICBpZiAoQm9vbGVhbihyZXN1bHRbMl0gfHwgaXNVbmMpKSB7XG4gICAgICB2YXIgcm9vdCA9IChyZXN1bHRbMV0gfHwgJycpO1xuICAgICAgdmFyIHNlcCA9IChyZXN1bHRbMl0gfHwgJycpO1xuICAgICAgcmV0dXJuIFtyb290LCBwYXRoLnN1YnN0cmluZyhyb290Lmxlbmd0aCArIHNlcC5sZW5ndGgpXVxuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgaWYoZnNfbm9kZV9zdXBwb3J0ZWQgKCkgJiYgZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5wbGF0Zm9ybSkge1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3MucGxhdGZvcm0gPT09ICd3aW4zMicgPyB3aW4zMiA6IHBvc2l4O1xuICB9XG4gIGVsc2UgcmV0dXJuIHBvc2l4XG59XG52YXIgcGF0aF9pc19hYnNvbHV0ZSA9IG1ha2VfcGF0aF9pc19hYnNvbHV0ZSgpO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfcGF0aFxuLy9SZXF1aXJlczogY2FtbF9jdXJyZW50X2RpclxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcsIHBhdGhfaXNfYWJzb2x1dGVcbmZ1bmN0aW9uIGNhbWxfbWFrZV9wYXRoIChuYW1lKSB7XG4gIG5hbWU9Y2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSk7XG4gIGlmKCAhcGF0aF9pc19hYnNvbHV0ZShuYW1lKSApXG4gICAgbmFtZSA9IGNhbWxfY3VycmVudF9kaXIgKyBuYW1lO1xuICB2YXIgY29tcDAgPSBwYXRoX2lzX2Fic29sdXRlKG5hbWUpO1xuICB2YXIgY29tcCA9IGNvbXAwWzFdLnNwbGl0KFwiL1wiKTtcbiAgdmFyIG5jb21wID0gW11cbiAgZm9yKHZhciBpID0gMDsgaTxjb21wLmxlbmd0aDsgaSsrKXtcbiAgICBzd2l0Y2goY29tcFtpXSl7XG4gICAgY2FzZSBcIi4uXCI6IGlmKG5jb21wLmxlbmd0aD4xKSBuY29tcC5wb3AoKTsgYnJlYWs7XG4gICAgY2FzZSBcIi5cIjogYnJlYWs7XG4gICAgY2FzZSBcIlwiOiBicmVhaztcbiAgICBkZWZhdWx0OiBuY29tcC5wdXNoKGNvbXBbaV0pO2JyZWFrXG4gICAgfVxuICB9XG4gIG5jb21wLnVuc2hpZnQoY29tcDBbMF0pO1xuICBuY29tcC5vcmlnID0gbmFtZTtcbiAgcmV0dXJuIG5jb21wO1xufVxuXG4vL1Byb3ZpZGVzOmpzb29fbW91bnRfcG9pbnRcbi8vUmVxdWlyZXM6IE1sRmFrZURldmljZSwgTWxOb2RlRGV2aWNlLCBjYW1sX3Jvb3QsIGZzX25vZGVfc3VwcG9ydGVkXG52YXIganNvb19tb3VudF9wb2ludCA9IFtdXG5pZiAoZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6Y2FtbF9yb290LGRldmljZTpuZXcgTWxOb2RlRGV2aWNlKGNhbWxfcm9vdCl9KTtcbn0gZWxzZSB7XG4gIGpzb29fbW91bnRfcG9pbnQucHVzaCh7cGF0aDpjYW1sX3Jvb3QsZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UoY2FtbF9yb290KX0pO1xufVxuanNvb19tb3VudF9wb2ludC5wdXNoKHtwYXRoOlwiL3N0YXRpYy9cIiwgZGV2aWNlOm5ldyBNbEZha2VEZXZpY2UoXCIvc3RhdGljL1wiKX0pO1xuXG4vL1Byb3ZpZGVzOmNhbWxfbGlzdF9tb3VudF9wb2ludFxuLy9SZXF1aXJlczoganNvb19tb3VudF9wb2ludCwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9saXN0X21vdW50X3BvaW50KCl7XG4gIHZhciBwcmV2ID0gMFxuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKyl7XG4gICAgdmFyIG9sZCA9IHByZXY7XG4gICAgcHJldiA9IFswLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKGpzb29fbW91bnRfcG9pbnRbaV0ucGF0aCksIG9sZF1cbiAgfVxuICByZXR1cm4gcHJldjtcbn1cblxuLy9Qcm92aWRlczogcmVzb2x2ZV9mc19kZXZpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfbWFrZV9wYXRoLCBqc29vX21vdW50X3BvaW50LCBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9nZXRfcm9vdCwgTWxOb2RlRGV2aWNlLCBjYW1sX3RyYWlsaW5nX3NsYXNoLCBmc19ub2RlX3N1cHBvcnRlZFxuZnVuY3Rpb24gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSl7XG4gIHZhciBwYXRoID0gY2FtbF9tYWtlX3BhdGgobmFtZSk7XG4gIHZhciBuYW1lID0gcGF0aC5qb2luKFwiL1wiKTtcbiAgdmFyIG5hbWVfc2xhc2ggPSBjYW1sX3RyYWlsaW5nX3NsYXNoKG5hbWUpO1xuICB2YXIgcmVzO1xuICBmb3IodmFyIGkgPSAwOyBpIDwganNvb19tb3VudF9wb2ludC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBtID0ganNvb19tb3VudF9wb2ludFtpXTtcbiAgICBpZihuYW1lX3NsYXNoLnNlYXJjaChtLnBhdGgpID09IDBcbiAgICAgICAmJiAoIXJlcyB8fCByZXMucGF0aC5sZW5ndGggPCBtLnBhdGgubGVuZ3RoKSlcbiAgICAgIHJlcyA9IHtwYXRoOm0ucGF0aCxkZXZpY2U6bS5kZXZpY2UscmVzdDpuYW1lLnN1YnN0cmluZyhtLnBhdGgubGVuZ3RoLG5hbWUubGVuZ3RoKX07XG4gIH1cbiAgaWYoICFyZXMgJiYgZnNfbm9kZV9zdXBwb3J0ZWQoKSkge1xuICAgIHZhciByb290ID0gY2FtbF9nZXRfcm9vdChuYW1lKTtcbiAgICBpZiAocm9vdCAmJiByb290Lm1hdGNoKC9eW2EtekEtWl06XFwvJC8pKXtcbiAgICAgIHZhciBtID0ge3BhdGg6cm9vdCxkZXZpY2U6bmV3IE1sTm9kZURldmljZShyb290KX07XG4gICAgICBqc29vX21vdW50X3BvaW50LnB1c2gobSk7XG4gICAgICByZXMgPSB7cGF0aDptLnBhdGgsZGV2aWNlOm0uZGV2aWNlLHJlc3Q6bmFtZS5zdWJzdHJpbmcobS5wYXRoLmxlbmd0aCxuYW1lLmxlbmd0aCl9O1xuICAgIH1cbiAgfVxuICBpZiggcmVzICkgcmV0dXJuIHJlcztcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJubyBkZXZpY2UgZm91bmQgZm9yIFwiICsgbmFtZV9zbGFzaCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbW91bnRfYXV0b2xvYWRcbi8vUmVxdWlyZXM6IE1sRmFrZURldmljZSwgY2FtbF9tYWtlX3BhdGgsIGpzb29fbW91bnRfcG9pbnQsIGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfbW91bnRfYXV0b2xvYWQobmFtZSxmKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHBhdGguam9pbihcIi9cIikpO1xuICBqc29vX21vdW50X3BvaW50LnB1c2goe3BhdGg6bmFtZSxkZXZpY2U6bmV3IE1sRmFrZURldmljZShuYW1lLGYpfSlcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5tb3VudFxuLy9SZXF1aXJlczoganNvb19tb3VudF9wb2ludCwgY2FtbF9tYWtlX3BhdGgsIGNhbWxfdHJhaWxpbmdfc2xhc2hcbmZ1bmN0aW9uIGNhbWxfdW5tb3VudChuYW1lKXtcbiAgdmFyIHBhdGggPSBjYW1sX21ha2VfcGF0aChuYW1lKTtcbiAgdmFyIG5hbWUgPSBjYW1sX3RyYWlsaW5nX3NsYXNoKHBhdGguam9pbihcIi9cIikpO1xuICB2YXIgaWR4ID0gLTE7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBqc29vX21vdW50X3BvaW50Lmxlbmd0aDsgaSsrKVxuICAgIGlmKGpzb29fbW91bnRfcG9pbnRbaV0ucGF0aCA9PSBuYW1lKSBpZHggPSBpO1xuICBpZihpZHggPiAtMSkganNvb19tb3VudF9wb2ludC5zcGxpY2UoaWR4LDEpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19nZXRjd2Rcbi8vUmVxdWlyZXM6IGNhbWxfY3VycmVudF9kaXIsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfc3lzX2dldGN3ZCgpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoY2FtbF9jdXJyZW50X2Rpcik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2NoZGlyXG4vL1JlcXVpcmVzOiBjYW1sX2N1cnJlbnRfZGlyLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSwgcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfdHJhaWxpbmdfc2xhc2gsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfc3lzX2NoZGlyKGRpcikge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKGRpcik7XG4gIGlmKHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpKSB7XG4gICAgaWYocm9vdC5yZXN0KSBjYW1sX2N1cnJlbnRfZGlyID0gY2FtbF90cmFpbGluZ19zbGFzaChyb290LnBhdGggKyByb290LnJlc3QpO1xuICAgIGVsc2UgY2FtbF9jdXJyZW50X2RpciA9IHJvb3QucGF0aDtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZShjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGRpcikpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUobmFtZSl7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChuYW1lICsgXCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnlcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmFpc2Vfbm90X2FfZGlyXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuZnVuY3Rpb24gY2FtbF9yYWlzZV9ub3RfYV9kaXIobmFtZSl7XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yIChuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfZmlsZV9leGlzdHNcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19maWxlX2V4aXN0cyAobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByZXR1cm4gcm9vdC5kZXZpY2UuZXhpc3RzKHJvb3QucmVzdCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9hX2RpciwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfc3lzX3JlYWRfZGlyZWN0b3J5KG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgYSA9IHJvb3QuZGV2aWNlLnJlYWRkaXIocm9vdC5yZXN0KTtcbiAgdmFyIGwgPSBuZXcgQXJyYXkoYS5sZW5ndGggKyAxKTtcbiAgbFswXSA9IDA7XG4gIGZvcih2YXIgaT0wO2k8YS5sZW5ndGg7aSsrKVxuICAgIGxbaSsxXSA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoYVtpXSk7XG4gIHJldHVybiBsO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19yZW1vdmVcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9zeXNfcmVtb3ZlKG5hbWUpe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICB2YXIgb2sgPSByb290LmRldmljZS51bmxpbmsocm9vdC5yZXN0KTtcbiAgaWYob2sgPT0gMCkgY2FtbF9yYWlzZV9ub19zdWNoX2ZpbGUoY2FtbF9qc2J5dGVzX29mX3N0cmluZyhuYW1lKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19pc19kaXJlY3Rvcnlcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlXG5mdW5jdGlvbiBjYW1sX3N5c19pc19kaXJlY3RvcnkobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHZhciBhID0gcm9vdC5kZXZpY2UuaXNfZGlyKHJvb3QucmVzdCk7XG4gIHJldHVybiBhPzE6MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfcmVuYW1lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCByZXNvbHZlX2ZzX2RldmljZVxuZnVuY3Rpb24gY2FtbF9zeXNfcmVuYW1lKG8sbil7XG4gIHZhciBvX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShvKTtcbiAgdmFyIG5fcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG4pO1xuICBpZihvX3Jvb3QuZGV2aWNlICE9IG5fcm9vdC5kZXZpY2UpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3lzX3JlbmFtZTogY2Fubm90IG1vdmUgZmlsZSBiZXR3ZWVuIHR3byBmaWxlc3lzdGVtXCIpO1xuICBpZighb19yb290LmRldmljZS5yZW5hbWUpXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfc3lzX3JlbmFtZTogbm8gaW1wbGVtZW50ZWRcIik7XG4gIG9fcm9vdC5kZXZpY2UucmVuYW1lKG9fcm9vdC5yZXN0LCBuX3Jvb3QucmVzdCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX21rZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfc3lzX21rZGlyKG5hbWUsIHBlcm0pe1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICByb290LmRldmljZS5ta2Rpcihyb290LnJlc3QscGVybSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19ybWRpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX25vdF9hX2RpclxuZnVuY3Rpb24gY2FtbF9zeXNfcm1kaXIobmFtZSl7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIHJvb3QuZGV2aWNlLnJtZGlyKHJvb3QucmVzdCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX21hcF9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2JhX21hcF9maWxlKHZmZCwga2luZCwgbGF5b3V0LCBzaGFyZWQsIGRpbXMsIHBvcykge1xuICAvLyB2YXIgZGF0YSA9IGNhbWxfc3lzX2Zkc1t2ZmRdO1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9iYV9tYXBfZmlsZSBub3QgaW1wbGVtZW50ZWRcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbWFwX2ZpbGVfYnl0ZWNvZGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfbWFwX2ZpbGVcbmZ1bmN0aW9uIGNhbWxfYmFfbWFwX2ZpbGVfYnl0ZWNvZGUoYXJndixhcmduKXtcbiAgcmV0dXJuIGNhbWxfYmFfbWFwX2ZpbGUoYXJndlswXSxhcmd2WzFdLGFyZ3ZbMl0sYXJndlszXSxhcmd2WzRdLGFyZ3ZbNV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBqc29vX2NyZWF0ZV9maWxlX2V4dGVyblxuZnVuY3Rpb24ganNvb19jcmVhdGVfZmlsZV9leHRlcm4obmFtZSxjb250ZW50KXtcbiAgaWYoZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlKVxuICAgIGdsb2JhbFRoaXMuanNvb19jcmVhdGVfZmlsZShuYW1lLGNvbnRlbnQpO1xuICBlbHNlIHtcbiAgICBpZighZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCkgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCA9IFtdO1xuICAgIGdsb2JhbFRoaXMuY2FtbF9mc190bXAucHVzaCh7bmFtZTpuYW1lLGNvbnRlbnQ6Y29udGVudH0pO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZzX2luaXRcbi8vUmVxdWlyZXM6IGpzb29fY3JlYXRlX2ZpbGVcbmZ1bmN0aW9uIGNhbWxfZnNfaW5pdCAoKXtcbiAgdmFyIHRtcD1nbG9iYWxUaGlzLmNhbWxfZnNfdG1wXG4gIGlmKHRtcCl7XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHRtcC5sZW5ndGg7IGkrKyl7XG4gICAgICBqc29vX2NyZWF0ZV9maWxlKHRtcFtpXS5uYW1lLHRtcFtpXS5jb250ZW50KTtcbiAgICB9XG4gIH1cbiAgZ2xvYmFsVGhpcy5qc29vX2NyZWF0ZV9maWxlID0ganNvb19jcmVhdGVfZmlsZTtcbiAgZ2xvYmFsVGhpcy5jYW1sX2ZzX3RtcCA9IFtdO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jcmVhdGVfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aCwgcmVzb2x2ZV9mc19kZXZpY2VcbmZ1bmN0aW9uIGNhbWxfY3JlYXRlX2ZpbGUobmFtZSxjb250ZW50KSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmKCEgcm9vdC5kZXZpY2UucmVnaXN0ZXIpIGNhbWxfZmFpbHdpdGgoXCJjYW5ub3QgcmVnaXN0ZXIgZmlsZVwiKTtcbiAgcm9vdC5kZXZpY2UucmVnaXN0ZXIocm9vdC5yZXN0LGNvbnRlbnQpO1xuICByZXR1cm4gMDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBqc29vX2NyZWF0ZV9maWxlXG4vL1JlcXVpcmVzOiBjYW1sX2NyZWF0ZV9maWxlLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBqc29vX2NyZWF0ZV9maWxlKG5hbWUsY29udGVudCkge1xuICB2YXIgbmFtZSA9IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMobmFtZSk7XG4gIHZhciBjb250ZW50ID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhjb250ZW50KTtcbiAgcmV0dXJuIGNhbWxfY3JlYXRlX2ZpbGUobmFtZSwgY29udGVudCk7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9yZWFkX2ZpbGVfY29udGVudFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlLCBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9yZWFkX2ZpbGVfY29udGVudCAobmFtZSkge1xuICB2YXIgbmFtZSA9ICh0eXBlb2YgbmFtZSA9PSBcInN0cmluZ1wiKT9jYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpOm5hbWU7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmKHJvb3QuZGV2aWNlLmV4aXN0cyhyb290LnJlc3QpKSB7XG4gICAgdmFyIGZpbGUgPSByb290LmRldmljZS5vcGVuKHJvb3QucmVzdCx7cmRvbmx5OjF9KTtcbiAgICB2YXIgbGVuICA9IGZpbGUubGVuZ3RoKCk7XG4gICAgdmFyIGJ1ZiA9IG5ldyBVaW50OEFycmF5KGxlbik7XG4gICAgZmlsZS5yZWFkKDAsYnVmLDAsbGVuKTtcbiAgICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYnVmKVxuICB9XG4gIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkpO1xufVxuIiwiLy9Qcm92aWRlczogY2FtbF91bml4X2dldHRpbWVvZmRheVxuLy9BbGlhczogdW5peF9nZXR0aW1lb2ZkYXlcbmZ1bmN0aW9uIGNhbWxfdW5peF9nZXR0aW1lb2ZkYXkgKCkge1xuICByZXR1cm4gKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF90aW1lXG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfZ2V0dGltZW9mZGF5XG4vL0FsaWFzOiB1bml4X3RpbWVcbmZ1bmN0aW9uIGNhbWxfdW5peF90aW1lICgpIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoY2FtbF91bml4X2dldHRpbWVvZmRheSAoKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9nbXRpbWVcbi8vQWxpYXM6IHVuaXhfZ210aW1lXG5mdW5jdGlvbiBjYW1sX3VuaXhfZ210aW1lICh0KSB7XG4gIHZhciBkID0gbmV3IERhdGUgKHQgKiAxMDAwKTtcbiAgdmFyIGRfbnVtID0gZC5nZXRUaW1lKCk7XG4gIHZhciBqYW51YXJ5Zmlyc3QgPSAobmV3IERhdGUoRGF0ZS5VVEMoZC5nZXRVVENGdWxsWWVhcigpLCAwLCAxKSkpLmdldFRpbWUoKTtcbiAgdmFyIGRveSA9IE1hdGguZmxvb3IoKGRfbnVtIC0gamFudWFyeWZpcnN0KSAvIDg2NDAwMDAwKTtcbiAgcmV0dXJuIEJMT0NLKDAsIGQuZ2V0VVRDU2Vjb25kcygpLCBkLmdldFVUQ01pbnV0ZXMoKSwgZC5nZXRVVENIb3VycygpLFxuICAgICAgICAgICAgICAgZC5nZXRVVENEYXRlKCksIGQuZ2V0VVRDTW9udGgoKSwgZC5nZXRVVENGdWxsWWVhcigpIC0gMTkwMCxcbiAgICAgICAgICAgICAgIGQuZ2V0VVRDRGF5KCksIGRveSxcbiAgICAgICAgICAgICAgIGZhbHNlIHwgMCAvKiBmb3IgVVRDIGRheWxpZ2h0IHNhdmluZ3MgdGltZSBpcyBmYWxzZSAqLylcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2xvY2FsdGltZVxuLy9BbGlhczogdW5peF9sb2NhbHRpbWVcbmZ1bmN0aW9uIGNhbWxfdW5peF9sb2NhbHRpbWUgKHQpIHtcbiAgdmFyIGQgPSBuZXcgRGF0ZSAodCAqIDEwMDApO1xuICB2YXIgZF9udW0gPSBkLmdldFRpbWUoKTtcbiAgdmFyIGphbnVhcnlmaXJzdCA9IChuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDEpKS5nZXRUaW1lKCk7XG4gIHZhciBkb3kgPSBNYXRoLmZsb29yKChkX251bSAtIGphbnVhcnlmaXJzdCkgLyA4NjQwMDAwMCk7XG4gIHZhciBqYW4gPSBuZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksIDAsIDEpO1xuICB2YXIganVsID0gbmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLCA2LCAxKTtcbiAgdmFyIHN0ZFRpbWV6b25lT2Zmc2V0ID0gTWF0aC5tYXgoamFuLmdldFRpbWV6b25lT2Zmc2V0KCksIGp1bC5nZXRUaW1lem9uZU9mZnNldCgpKTtcbiAgcmV0dXJuIEJMT0NLKDAsIGQuZ2V0U2Vjb25kcygpLCBkLmdldE1pbnV0ZXMoKSwgZC5nZXRIb3VycygpLFxuICAgICAgICAgICAgICAgZC5nZXREYXRlKCksIGQuZ2V0TW9udGgoKSwgZC5nZXRGdWxsWWVhcigpIC0gMTkwMCxcbiAgICAgICAgICAgICAgIGQuZ2V0RGF5KCksIGRveSxcbiAgICAgICAgICAgICAgIChkLmdldFRpbWV6b25lT2Zmc2V0KCkgPCBzdGRUaW1lem9uZU9mZnNldCkgfCAwIC8qIGRheWxpZ2h0IHNhdmluZ3MgdGltZSAgZmllbGQuICovKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbWt0aW1lXG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfbG9jYWx0aW1lXG4vL0FsaWFzOiB1bml4X21rdGltZVxuZnVuY3Rpb24gY2FtbF91bml4X21rdGltZSh0bSl7XG4gIHZhciBkID0gKG5ldyBEYXRlKHRtWzZdKzE5MDAsdG1bNV0sdG1bNF0sdG1bM10sdG1bMl0sdG1bMV0pKS5nZXRUaW1lKCk7XG4gIHZhciB0ID0gTWF0aC5mbG9vcihkIC8gMTAwMCk7XG4gIHZhciB0bTIgPSBjYW1sX3VuaXhfbG9jYWx0aW1lKHQpO1xuICByZXR1cm4gQkxPQ0soMCx0LHRtMik7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfc3RhcnR1cCBjb25zdFxuLy9BbGlhczogd2luX3N0YXJ0dXBcbmZ1bmN0aW9uIGNhbWxfdW5peF9zdGFydHVwKCkge31cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2NsZWFudXAgY29uc3Rcbi8vQWxpYXM6IHdpbl9jbGVhbnVwXG5mdW5jdGlvbiBjYW1sX3VuaXhfY2xlYW51cCgpIHt9XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9maWxlZGVzY3Jfb2ZfZmQgY29uc3Rcbi8vQWxpYXM6IHdpbl9oYW5kbGVfZmRcbmZ1bmN0aW9uIGNhbWxfdW5peF9maWxlZGVzY3Jfb2ZfZmQoeCkge3JldHVybiB4O31cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2lzYXR0eVxuLy9SZXF1aXJlczogZnNfbm9kZV9zdXBwb3J0ZWRcbi8vQWxpYXM6IHVuaXhfaXNhdHR5XG5mdW5jdGlvbiBjYW1sX3VuaXhfaXNhdHR5KGZpbGVEZXNjcmlwdG9yKSB7XG4gIGlmKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICB2YXIgdHR5ID0gcmVxdWlyZSgndHR5Jyk7XG4gICAgcmV0dXJuIHR0eS5pc2F0dHkoZmlsZURlc2NyaXB0b3IpPzE6MDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gMDtcbiAgfVxufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9pc2F0dHlcbi8vQWxpYXM6IHVuaXhfaXNhdHR5XG4vL0lmOiBicm93c2VyXG5mdW5jdGlvbiBjYW1sX3VuaXhfaXNhdHR5KGZpbGVEZXNjcmlwdG9yKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBtYWtlX3VuaXhfZXJyX2FyZ3Ncbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG52YXIgdW5peF9lcnJvciA9IFtcbiAgLyogPT09VW5peC5lcnJvcj09PVxuICAgKlxuICAgKiBUaGlzIGFycmF5IGlzIGluIG9yZGVyIG9mIHRoZSB2YXJpYW50IGluIE9DYW1sXG4gICAqL1xuICBcIkUyQklHXCIsIFwiRUFDQ0VTXCIsIFwiRUFHQUlOXCIsIFwiRUJBREZcIiwgXCJFQlVTWVwiLCBcIkVDSElMRFwiLCBcIkVERUFETEtcIiwgXCJFRE9NXCIsXG4gIFwiRUVYSVNUXCIsIFwiRUZBVUxUXCIsIFwiRUZCSUdcIiwgXCJFSU5UUlwiLCBcIkVJTlZBTFwiLCBcIkVJT1wiLCBcIkVJU0RJUlwiLCBcIkVNRklMRVwiLFxuICBcIkVNTElOS1wiLCBcIkVOQU1FVE9PTE9OR1wiLCBcIkVORklMRVwiLCBcIkVOT0RFVlwiLCBcIkVOT0VOVFwiLCBcIkVOT0VYRUNcIiwgXCJFTk9MQ0tcIixcbiAgXCJFTk9NRU1cIiwgXCJFTk9TUENcIiwgXCJFTk9TWVNcIiwgXCJFTk9URElSXCIsIFwiRU5PVEVNUFRZXCIsIFwiRU5PVFRZXCIsIFwiRU5YSU9cIixcbiAgXCJFUEVSTVwiLCBcIkVQSVBFXCIsIFwiRVJBTkdFXCIsIFwiRVJPRlNcIiwgXCJFU1BJUEVcIiwgXCJFU1JDSFwiLCBcIkVYREVWXCIsIFwiRVdPVUxEQkxPQ0tcIixcbiAgXCJFSU5QUk9HUkVTU1wiLCBcIkVBTFJFQURZXCIsIFwiRU5PVFNPQ0tcIiwgXCJFREVTVEFERFJSRVFcIiwgXCJFTVNHU0laRVwiLFxuICBcIkVQUk9UT1RZUEVcIiwgXCJFTk9QUk9UT09QVFwiLCBcIkVQUk9UT05PU1VQUE9SVFwiLCBcIkVTT0NLVE5PU1VQUE9SVFwiLFxuICBcIkVPUE5PVFNVUFBcIiwgXCJFUEZOT1NVUFBPUlRcIiwgXCJFQUZOT1NVUFBPUlRcIiwgXCJFQUREUklOVVNFXCIsIFwiRUFERFJOT1RBVkFJTFwiLFxuICBcIkVORVRET1dOXCIsIFwiRU5FVFVOUkVBQ0hcIiwgXCJFTkVUUkVTRVRcIiwgXCJFQ09OTkFCT1JURURcIiwgXCJFQ09OTlJFU0VUXCIsIFwiRU5PQlVGU1wiLFxuICBcIkVJU0NPTk5cIiwgXCJFTk9UQ09OTlwiLCBcIkVTSFVURE9XTlwiLCBcIkVUT09NQU5ZUkVGU1wiLCBcIkVUSU1FRE9VVFwiLCBcIkVDT05OUkVGVVNFRFwiLFxuICBcIkVIT1NURE9XTlwiLCBcIkVIT1NUVU5SRUFDSFwiLCBcIkVMT09QXCIsIFwiRU9WRVJGTE9XXCJcbl07XG5mdW5jdGlvbiBtYWtlX3VuaXhfZXJyX2FyZ3MoY29kZSwgc3lzY2FsbCwgcGF0aCwgZXJybm8pIHtcbiAgdmFyIHZhcmlhbnQgPSB1bml4X2Vycm9yLmluZGV4T2YoY29kZSk7XG4gIGlmICh2YXJpYW50IDwgMCkge1xuICAgIC8vIERlZmF1bHQgaWYgdW5kZWZpbmVkXG4gICAgaWYgKGVycm5vID09IG51bGwpIHtcbiAgICAgIGVycm5vID0gLTk5OTlcbiAgICB9XG4gICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgdmFyaWFudHMsIGZhbGxiYWNrIHRvIEVVTktOT1dORVJSKGludClcbiAgICB2YXJpYW50ID0gQkxPQ0soMCwgZXJybm8pO1xuICB9XG4gIHZhciBhcmdzID0gW1xuICAgIHZhcmlhbnQsXG4gICAgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcoc3lzY2FsbCB8fCBcIlwiKSxcbiAgICBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhwYXRoIHx8IFwiXCIpXG4gIF07XG4gIHJldHVybiBhcmdzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfc3RhdFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfc3RhdFxuZnVuY3Rpb24gY2FtbF91bml4X3N0YXQobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnN0YXQpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3N0YXQ6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2Uuc3RhdChyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9zdGF0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfc3RhdCwgY2FtbF9pbnQ2NF9vZl9pbnQzMlxuLy9BbGlhczogdW5peF9zdGF0XzY0XG5mdW5jdGlvbiBjYW1sX3VuaXhfc3RhdF82NChuYW1lKSB7XG4gIHZhciByID0gY2FtbF91bml4X3N0YXQobmFtZSk7XG4gIHJbOV0gPSBjYW1sX2ludDY0X29mX2ludDMyKHJbOV0pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfbHN0YXRcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X2xzdGF0XG5mdW5jdGlvbiBjYW1sX3VuaXhfbHN0YXQobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLmxzdGF0KSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9sc3RhdDogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5sc3RhdChyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9sc3RhdF82NFxuLy9SZXF1aXJlczogY2FtbF91bml4X2xzdGF0LCBjYW1sX2ludDY0X29mX2ludDMyXG4vL0FsaWFzOiB1bml4X2xzdGF0XzY0XG5mdW5jdGlvbiBjYW1sX3VuaXhfbHN0YXRfNjQobmFtZSkge1xuICB2YXIgciA9IGNhbWxfdW5peF9sc3RhdChuYW1lKTtcbiAgcls5XSA9IGNhbWxfaW50NjRfb2ZfaW50MzIocls5XSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9ta2RpclxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfbWtkaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9ta2RpcihuYW1lLCBwZXJtKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UubWtkaXIpIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X21rZGlyOiBub3QgaW1wbGVtZW50ZWRcIik7XG4gIH1cbiAgcmV0dXJuIHJvb3QuZGV2aWNlLm1rZGlyKHJvb3QucmVzdCwgcGVybSwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3JtZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9ybWRpclxuZnVuY3Rpb24gY2FtbF91bml4X3JtZGlyKG5hbWUpIHtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgaWYgKCFyb290LmRldmljZS5ybWRpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfcm1kaXI6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2Uucm1kaXIocm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfc3ltbGlua1xuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2UsIGNhbWxfZmFpbHdpdGhcbi8vQWxpYXM6IHVuaXhfc3ltbGlua1xuZnVuY3Rpb24gY2FtbF91bml4X3N5bWxpbmsodG9fZGlyLCBzcmMsIGRzdCkge1xuICB2YXIgc3JjX3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShzcmMpO1xuICB2YXIgZHN0X3Jvb3QgPSByZXNvbHZlX2ZzX2RldmljZShkc3QpO1xuICBpZihzcmNfcm9vdC5kZXZpY2UgIT0gZHN0X3Jvb3QuZGV2aWNlKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfc3ltbGluazogY2Fubm90IHN5bWxpbmsgYmV0d2VlbiB0d28gZmlsZXN5c3RlbXNcIik7XG4gIGlmICghc3JjX3Jvb3QuZGV2aWNlLnN5bWxpbmspIHtcbiAgICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF91bml4X3N5bWxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gc3JjX3Jvb3QuZGV2aWNlLnN5bWxpbmsodG9fZGlyLCBzcmNfcm9vdC5yZXN0LCBkc3Rfcm9vdC5yZXN0LCAvKiByYWlzZSBVbml4X2Vycm9yICovIHRydWUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfcmVhZGxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3JlYWRsaW5rXG5mdW5jdGlvbiBjYW1sX3VuaXhfcmVhZGxpbmsobmFtZSkge1xuICB2YXIgcm9vdCA9IHJlc29sdmVfZnNfZGV2aWNlKG5hbWUpO1xuICBpZiAoIXJvb3QuZGV2aWNlLnJlYWRsaW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF9yZWFkbGluazogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHJldHVybiByb290LmRldmljZS5yZWFkbGluayhyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF91bmxpbmtcbi8vUmVxdWlyZXM6IHJlc29sdmVfZnNfZGV2aWNlLCBjYW1sX2ZhaWx3aXRoXG4vL0FsaWFzOiB1bml4X3VubGlua1xuZnVuY3Rpb24gY2FtbF91bml4X3VubGluayhuYW1lKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UobmFtZSk7XG4gIGlmICghcm9vdC5kZXZpY2UudW5saW5rKSB7XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfdW5peF91bmxpbms6IG5vdCBpbXBsZW1lbnRlZFwiKTtcbiAgfVxuICByZXR1cm4gcm9vdC5kZXZpY2UudW5saW5rKHJvb3QucmVzdCwgLyogcmFpc2UgVW5peF9lcnJvciAqLyB0cnVlKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2dldHVpZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9ub3RfZm91bmRcbi8vQWxpYXM6IHVuaXhfZ2V0dWlkXG5mdW5jdGlvbiBjYW1sX3VuaXhfZ2V0dWlkKHVuaXQpIHtcbiAgaWYoZ2xvYmFsVGhpcy5wcm9jZXNzICYmIGdsb2JhbFRoaXMucHJvY2Vzcy5nZXR1aWQpe1xuICAgIHJldHVybiBnbG9iYWxUaGlzLnByb2Nlc3MuZ2V0dWlkKCk7XG4gIH1cbiAgY2FtbF9yYWlzZV9ub3RfZm91bmQoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2dldHB3dWlkXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX25vdF9mb3VuZFxuLy9BbGlhczogdW5peF9nZXRwd3VpZFxuZnVuY3Rpb24gY2FtbF91bml4X2dldHB3dWlkKHVuaXQpIHtcbiAgY2FtbF9yYWlzZV9ub3RfZm91bmQoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2hhc19zeW1saW5rXG4vL1JlcXVpcmVzOiBmc19ub2RlX3N1cHBvcnRlZFxuLy9BbGlhczogdW5peF9oYXNfc3ltbGlua1xuZnVuY3Rpb24gY2FtbF91bml4X2hhc19zeW1saW5rKHVuaXQpIHtcbiAgcmV0dXJuIGZzX25vZGVfc3VwcG9ydGVkKCk/MTowXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9vcGVuZGlyXG4vL1JlcXVpcmVzOiByZXNvbHZlX2ZzX2RldmljZSwgY2FtbF9mYWlsd2l0aFxuLy9BbGlhczogdW5peF9vcGVuZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfb3BlbmRpcihwYXRoKSB7XG4gIHZhciByb290ID0gcmVzb2x2ZV9mc19kZXZpY2UocGF0aCk7XG4gIGlmICghcm9vdC5kZXZpY2Uub3BlbmRpcikge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX3VuaXhfb3BlbmRpcjogbm90IGltcGxlbWVudGVkXCIpO1xuICB9XG4gIHZhciBkaXJfaGFuZGxlID0gcm9vdC5kZXZpY2Uub3BlbmRpcihyb290LnJlc3QsIC8qIHJhaXNlIFVuaXhfZXJyb3IgKi8gdHJ1ZSk7XG4gIHJldHVybiB7IHBvaW50ZXIgOiBkaXJfaGFuZGxlLCBwYXRoOiBwYXRoIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X3JlYWRkaXJcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBtYWtlX3VuaXhfZXJyX2FyZ3MsIGNhbWxfcmFpc2Vfd2l0aF9hcmdzLCBjYW1sX25hbWVkX3ZhbHVlXG4vL0FsaWFzOiB1bml4X3JlYWRkaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9yZWFkZGlyKGRpcl9oYW5kbGUpIHtcbiAgdmFyIGVudHJ5O1xuICB0cnkge1xuICAgICAgZW50cnkgPSBkaXJfaGFuZGxlLnBvaW50ZXIucmVhZFN5bmMoKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgICAgdmFyIHVuaXhfZXJyb3IgPSBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVCQURGXCIsIFwicmVhZGRpclwiLCBkaXJfaGFuZGxlLnBhdGgpKTtcbiAgfVxuICBpZiAoZW50cnkgPT09IG51bGwpIHtcbiAgICAgIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc3N0cmluZyhlbnRyeS5uYW1lKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfY2xvc2VkaXJcbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJncywgY2FtbF9yYWlzZV93aXRoX2FyZ3MsIGNhbWxfbmFtZWRfdmFsdWVcbi8vQWxpYXM6IHVuaXhfY2xvc2VkaXJcbmZ1bmN0aW9uIGNhbWxfdW5peF9jbG9zZWRpcihkaXJfaGFuZGxlKSB7XG4gIHRyeSB7XG4gICAgICBkaXJfaGFuZGxlLnBvaW50ZXIuY2xvc2VTeW5jKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZhciB1bml4X2Vycm9yID0gY2FtbF9uYW1lZF92YWx1ZSgnVW5peC5Vbml4X2Vycm9yJyk7XG4gICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFQkFERlwiLCBcImNsb3NlZGlyXCIsIGRpcl9oYW5kbGUucGF0aCkpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9yZXdpbmRkaXJcbi8vUmVxdWlyZXM6IGNhbWxfdW5peF9jbG9zZWRpciwgY2FtbF91bml4X29wZW5kaXJcbi8vQWxpYXM6IHVuaXhfcmV3aW5kZGlyXG5mdW5jdGlvbiBjYW1sX3VuaXhfcmV3aW5kZGlyKGRpcl9oYW5kbGUpIHtcbiAgY2FtbF91bml4X2Nsb3NlZGlyKGRpcl9oYW5kbGUpO1xuICB2YXIgbmV3X2Rpcl9oYW5kbGUgPSBjYW1sX3VuaXhfb3BlbmRpcihkaXJfaGFuZGxlLnBhdGgpO1xuICBkaXJfaGFuZGxlLnBvaW50ZXIgPSBuZXdfZGlyX2hhbmRsZS5wb2ludGVyO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF91bml4X2ZpbmRmaXJzdFxuLy9SZXF1aXJlczogY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcsIGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfb3BlbmRpciwgY2FtbF91bml4X3JlYWRkaXJcbi8vQWxpYXM6IHdpbl9maW5kZmlyc3RcbmZ1bmN0aW9uIGNhbWxfdW5peF9maW5kZmlyc3QocGF0aCkge1xuICAvLyBUaGUgV2luZG93cyBjb2RlIGFkZHMgdGhpcyBnbG9iIHRvIHRoZSBwYXRoLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSBpdFxuICB2YXIgcGF0aF9qcyA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHBhdGgpO1xuICBwYXRoX2pzID0gcGF0aF9qcy5yZXBsYWNlKC8oXnxbXFxcXFxcL10pXFwqXFwuXFwqJC8sIFwiXCIpO1xuICBwYXRoID0gY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmcocGF0aF9qcyk7XG4gIC8vICouKiBpcyBub3cgc3RyaXBwZWRcbiAgdmFyIGRpcl9oYW5kbGUgPSBjYW1sX3VuaXhfb3BlbmRpcihwYXRoKTtcbiAgdmFyIGZpcnN0X2VudHJ5ID0gY2FtbF91bml4X3JlYWRkaXIoZGlyX2hhbmRsZSk7XG4gIC8vIFRoZSBXaW5kb3dzIGJpbmRpbmdzIHR5cGUgZGlyX2hhbmRsZSBhcyBhbiBgaW50YCBidXQgaXQncyBub3QgaW4gSlNcbiAgcmV0dXJuIFswLCBmaXJzdF9lbnRyeSwgZGlyX2hhbmRsZV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9maW5kbmV4dFxuLy9SZXF1aXJlczogY2FtbF91bml4X3JlYWRkaXJcbi8vQWxpYXM6IHdpbl9maW5kbmV4dFxuZnVuY3Rpb24gY2FtbF91bml4X2ZpbmRuZXh0KGRpcl9oYW5kbGUpIHtcbiAgcmV0dXJuIGNhbWxfdW5peF9yZWFkZGlyKGRpcl9oYW5kbGUpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3VuaXhfZmluZGNsb3NlXG4vL1JlcXVpcmVzOiBjYW1sX3VuaXhfY2xvc2VkaXJcbi8vQWxpYXM6IHdpbl9maW5kY2xvc2VcbmZ1bmN0aW9uIGNhbWxfdW5peF9maW5kY2xvc2UoZGlyX2hhbmRsZSkge1xuICByZXR1cm4gY2FtbF91bml4X2Nsb3NlZGlyKGRpcl9oYW5kbGUpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfdW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nXG4vL0FsaWFzOiB1bml4X2luZXRfYWRkcl9vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfdW5peF9pbmV0X2FkZHJfb2Zfc3RyaW5nICgpIHtyZXR1cm4gMDt9XG5cblxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogTWxGYWtlRGV2aWNlXG4vL1JlcXVpcmVzOiBNbEZha2VGaWxlLCBNbEZha2VGZCwgY2FtbF9jcmVhdGVfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9zdHJpbmdfb2ZfanNzdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfYnl0ZXNfb2ZfYXJyYXksIGNhbWxfYnl0ZXNfb2Zfc3RyaW5nLCBjYW1sX2J5dGVzX29mX2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfaXNfbWxfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX25hbWVkX3ZhbHVlLCBjYW1sX3JhaXNlX3dpdGhfYXJncywgY2FtbF9uYW1lZF92YWx1ZXNcbi8vUmVxdWlyZXM6IG1ha2VfdW5peF9lcnJfYXJnc1xuZnVuY3Rpb24gTWxGYWtlRGV2aWNlIChyb290LCBmKSB7XG4gIHRoaXMuY29udGVudD17fTtcbiAgdGhpcy5yb290ID0gcm9vdDtcbiAgdGhpcy5sb29rdXBGdW4gPSBmO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ubSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgcmV0dXJuICh0aGlzLnJvb3QgKyBuYW1lKTtcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUuY3JlYXRlX2Rpcl9pZl9uZWVkZWQgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBjb21wID0gbmFtZS5zcGxpdChcIi9cIik7XG4gIHZhciByZXMgPSBcIlwiO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgY29tcC5sZW5ndGggLSAxOyBpKyspe1xuICAgIHJlcyArPSBjb21wW2ldICsgXCIvXCI7XG4gICAgaWYodGhpcy5jb250ZW50W3Jlc10pIGNvbnRpbnVlO1xuICAgIHRoaXMuY29udGVudFtyZXNdID0gU3ltYm9sKFwiZGlyZWN0b3J5XCIpO1xuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnNsYXNoID0gZnVuY3Rpb24obmFtZSl7XG4gIHJldHVybiAvXFwvJC8udGVzdChuYW1lKT9uYW1lOihuYW1lICsgXCIvXCIpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5sb29rdXAgPSBmdW5jdGlvbihuYW1lKSB7XG4gIGlmKCF0aGlzLmNvbnRlbnRbbmFtZV0gJiYgdGhpcy5sb29rdXBGdW4pIHtcbiAgICB2YXIgcmVzID0gdGhpcy5sb29rdXBGdW4oY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh0aGlzLnJvb3QpLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKG5hbWUpKTtcbiAgICBpZihyZXMgIT09IDApIHtcbiAgICAgIHRoaXMuY3JlYXRlX2Rpcl9pZl9uZWVkZWQobmFtZSk7XG4gICAgICB0aGlzLmNvbnRlbnRbbmFtZV09bmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9zdHJpbmcocmVzWzFdKSk7XG4gICAgfVxuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmV4aXN0cyA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgLy8gVGhlIHJvb3Qgb2YgdGhlIGRldmljZSBleGlzdHNcbiAgaWYobmFtZSA9PSBcIlwiKSByZXR1cm4gMTtcbiAgLy8gQ2hlY2sgaWYgYSBkaXJlY3RvcnkgZXhpc3RzXG4gIHZhciBuYW1lX3NsYXNoID0gdGhpcy5zbGFzaChuYW1lKTtcbiAgaWYodGhpcy5jb250ZW50W25hbWVfc2xhc2hdKSByZXR1cm4gMTtcbiAgLy8gQ2hlY2sgaWYgYSBmaWxlIGV4aXN0c1xuICB0aGlzLmxvb2t1cChuYW1lKTtcbiAgcmV0dXJuIHRoaXMuY29udGVudFtuYW1lXT8xOjA7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmlzRmlsZSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYodGhpcy5leGlzdHMobmFtZSkgJiYgIXRoaXMuaXNfZGlyKG5hbWUpKSB7XG4gICAgcmV0dXJuIDFcbiAgfVxuICBlbHNlIHtcbiAgICByZXR1cm4gMFxuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm1rZGlyID0gZnVuY3Rpb24obmFtZSxtb2RlLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gcmFpc2VfdW5peCAmJiBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcbiAgaWYodGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRUVYSVNUXCIsIFwibWtkaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogRmlsZSBleGlzdHNcIik7XG4gICAgfVxuICB9XG4gIHZhciBwYXJlbnQgPSAvXiguKilcXC9bXi9dKy8uZXhlYyhuYW1lKTtcbiAgcGFyZW50ID0gKHBhcmVudCAmJiBwYXJlbnRbMV0pIHx8ICcnO1xuICBpZighdGhpcy5leGlzdHMocGFyZW50KSl7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT0VOVFwiLCBcIm1rZGlyXCIsIHRoaXMubm0ocGFyZW50KSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHBhcmVudCArIFwiOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICBpZighdGhpcy5pc19kaXIocGFyZW50KSl7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RESVJcIiwgXCJta2RpclwiLCB0aGlzLm5tKHBhcmVudCkpKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihwYXJlbnQgKyBcIjogTm90IGEgZGlyZWN0b3J5XCIpO1xuICAgIH1cbiAgfVxuICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKHRoaXMuc2xhc2gobmFtZSkpO1xufVxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5ybWRpciA9IGZ1bmN0aW9uKG5hbWUsIHJhaXNlX3VuaXgpIHtcbiAgdmFyIHVuaXhfZXJyb3IgPSByYWlzZV91bml4ICYmIGNhbWxfbmFtZWRfdmFsdWUoJ1VuaXguVW5peF9lcnJvcicpO1xuICB2YXIgbmFtZV9zbGFzaCA9IChuYW1lID09IFwiXCIpP1wiXCI6KHRoaXMuc2xhc2gobmFtZSkpO1xuICB2YXIgciA9IG5ldyBSZWdFeHAoXCJeXCIgKyBuYW1lX3NsYXNoICsgXCIoW14vXSspXCIpO1xuICBpZighdGhpcy5leGlzdHMobmFtZSkpIHtcbiAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgY2FtbF9yYWlzZV93aXRoX2FyZ3ModW5peF9lcnJvciwgbWFrZV91bml4X2Vycl9hcmdzKFwiRU5PRU5UXCIsIFwicm1kaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgICB9XG4gIH1cbiAgaWYoIXRoaXMuaXNfZGlyKG5hbWUpKSB7XG4gICAgaWYgKHVuaXhfZXJyb3IpIHtcbiAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVOT1RESVJcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IobmFtZSArIFwiOiBOb3QgYSBkaXJlY3RvcnlcIik7XG4gICAgfVxuICB9XG4gIGZvcih2YXIgbiBpbiB0aGlzLmNvbnRlbnQpIHtcbiAgICBpZihuLm1hdGNoKHIpKSB7XG4gICAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgICBjYW1sX3JhaXNlX3dpdGhfYXJncyh1bml4X2Vycm9yLCBtYWtlX3VuaXhfZXJyX2FyZ3MoXCJFTk9URU1QVFlcIiwgXCJybWRpclwiLCB0aGlzLm5tKG5hbWUpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCI6IERpcmVjdG9yeSBub3QgZW1wdHlcIik7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGRlbGV0ZSB0aGlzLmNvbnRlbnRbbmFtZV9zbGFzaF07XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnJlYWRkaXIgPSBmdW5jdGlvbihuYW1lKSB7XG4gIHZhciBuYW1lX3NsYXNoID0gKG5hbWUgPT0gXCJcIik/XCJcIjoodGhpcy5zbGFzaChuYW1lKSk7XG4gIGlmKCF0aGlzLmV4aXN0cyhuYW1lKSkge1xuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeVwiKTtcbiAgfVxuICBpZighdGhpcy5pc19kaXIobmFtZSkpIHtcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihuYW1lICsgXCI6IE5vdCBhIGRpcmVjdG9yeVwiKTtcbiAgfVxuICB2YXIgciA9IG5ldyBSZWdFeHAoXCJeXCIgKyBuYW1lX3NsYXNoICsgXCIoW14vXSspXCIpO1xuICB2YXIgc2VlbiA9IHt9XG4gIHZhciBhID0gW107XG4gIGZvcih2YXIgbiBpbiB0aGlzLmNvbnRlbnQpIHtcbiAgICB2YXIgbSA9IG4ubWF0Y2gocik7XG4gICAgaWYobSAmJiAhc2VlblttWzFdXSkge3NlZW5bbVsxXV0gPSB0cnVlOyBhLnB1c2gobVsxXSl9XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm9wZW5kaXIgPSBmdW5jdGlvbihuYW1lLCByYWlzZV91bml4KSB7XG4gIHZhciB1bml4X2Vycm9yID0gcmFpc2VfdW5peCAmJiBjYW1sX25hbWVkX3ZhbHVlKCdVbml4LlVuaXhfZXJyb3InKTtcblxuICB2YXIgYSA9IHRoaXMucmVhZGRpcihuYW1lKTtcbiAgdmFyIGMgPSBmYWxzZTtcbiAgdmFyIGkgPSAwO1xuICByZXR1cm4geyByZWFkU3luYyA6IChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKGMpIHtcbiAgICAgIGlmICh1bml4X2Vycm9yKSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVCQURGXCIsIFwiY2xvc2VkaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogY2xvc2VkaXIgZmFpbGVkXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZihpID09IGEubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICB2YXIgZW50cnkgPSBhW2ldO1xuICAgIGkrKztcbiAgICByZXR1cm4geyBuYW1lOiBlbnRyeSB9XG4gIH0pXG4gICAgLCBjbG9zZVN5bmM6IChmdW5jdGlvbiAoKSB7XG4gICAgICBpZiAoYykge1xuICAgICAgICBpZiAodW5peF9lcnJvcikge1xuICAgICAgICAgIGNhbWxfcmFpc2Vfd2l0aF9hcmdzKHVuaXhfZXJyb3IsIG1ha2VfdW5peF9lcnJfYXJncyhcIkVCQURGXCIsIFwiY2xvc2VkaXJcIiwgdGhpcy5ubShuYW1lKSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKG5hbWUgKyBcIjogY2xvc2VkaXIgZmFpbGVkXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjID0gdHJ1ZTtcbiAgICAgIGEgPSBbXTtcbiAgICB9KVxuICB9XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmlzX2RpciA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgaWYobmFtZSA9PSBcIlwiKSAgcmV0dXJuIHRydWU7XG4gIHZhciBuYW1lX3NsYXNoID0gdGhpcy5zbGFzaChuYW1lKTtcbiAgcmV0dXJuIHRoaXMuY29udGVudFtuYW1lX3NsYXNoXT8xOjA7XG59XG5NbEZha2VEZXZpY2UucHJvdG90eXBlLnVubGluayA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgdmFyIG9rID0gdGhpcy5jb250ZW50W25hbWVdP3RydWU6ZmFsc2U7XG4gIGRlbGV0ZSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gIHJldHVybiBvaztcbn1cbk1sRmFrZURldmljZS5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uKG5hbWUsIGYpIHtcbiAgdmFyIGZpbGU7XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdGhpcy5sb29rdXAobmFtZSk7XG4gIGlmICh0aGlzLmNvbnRlbnRbbmFtZV0pIHtcbiAgICBpZiAodGhpcy5pc19kaXIobmFtZSkpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGlzIGEgZGlyZWN0b3J5XCIpO1xuICAgIGlmIChmLmNyZWF0ZSAmJiBmLmV4Y2wpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gICAgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgICBpZihmLnRydW5jYXRlKSBmaWxlLnRydW5jYXRlKCk7XG4gIH0gZWxzZSBpZiAoZi5jcmVhdGUpIHtcbiAgICB0aGlzLmNyZWF0ZV9kaXJfaWZfbmVlZGVkKG5hbWUpO1xuICAgIHRoaXMuY29udGVudFtuYW1lXSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfY3JlYXRlX2J5dGVzKDApKTtcbiAgICBmaWxlID0gdGhpcy5jb250ZW50W25hbWVdO1xuICB9IGVsc2Uge1xuICAgIGNhbWxfcmFpc2Vfbm9fc3VjaF9maWxlICh0aGlzLm5tKG5hbWUpKTtcbiAgfVxuICByZXR1cm4gbmV3IE1sRmFrZUZkKHRoaXMubm0obmFtZSksIGZpbGUsIGYpO1xufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLm9wZW4gPSBmdW5jdGlvbihuYW1lLCBmKSB7XG4gIHZhciBmaWxlO1xuICBpZihmLnJkb25seSAmJiBmLndyb25seSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3Jkb25seSBhbmQgT3Blbl93cm9ubHkgYXJlIG5vdCBjb21wYXRpYmxlXCIpO1xuICBpZihmLnRleHQgJiYgZi5iaW5hcnkpXG4gICAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogZmxhZ3MgT3Blbl90ZXh0IGFuZCBPcGVuX2JpbmFyeSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIHRoaXMubG9va3VwKG5hbWUpO1xuICBpZiAodGhpcy5jb250ZW50W25hbWVdKSB7XG4gICAgaWYgKHRoaXMuaXNfZGlyKG5hbWUpKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBpcyBhIGRpcmVjdG9yeVwiKTtcbiAgICBpZiAoZi5jcmVhdGUgJiYgZi5leGNsKSBjYW1sX3JhaXNlX3N5c19lcnJvcih0aGlzLm5tKG5hbWUpICsgXCIgOiBmaWxlIGFscmVhZHkgZXhpc3RzXCIpO1xuICAgIGZpbGUgPSB0aGlzLmNvbnRlbnRbbmFtZV07XG4gICAgaWYoZi50cnVuY2F0ZSkgZmlsZS50cnVuY2F0ZSgpO1xuICB9IGVsc2UgaWYgKGYuY3JlYXRlKSB7XG4gICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICB0aGlzLmNvbnRlbnRbbmFtZV0gPSBuZXcgTWxGYWtlRmlsZShjYW1sX2NyZWF0ZV9ieXRlcygwKSk7XG4gICAgZmlsZSA9IHRoaXMuY29udGVudFtuYW1lXTtcbiAgfSBlbHNlIHtcbiAgICBjYW1sX3JhaXNlX25vX3N1Y2hfZmlsZSAodGhpcy5ubShuYW1lKSk7XG4gIH1cbiAgcmV0dXJuIG5ldyBNbEZha2VGZCh0aGlzLm5tKG5hbWUpLCBmaWxlLCBmKTtcbn1cblxuTWxGYWtlRGV2aWNlLnByb3RvdHlwZS5yZWdpc3Rlcj0gZnVuY3Rpb24gKG5hbWUsY29udGVudCl7XG4gIHZhciBmaWxlO1xuICBpZih0aGlzLmNvbnRlbnRbbmFtZV0pIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMubm0obmFtZSkgKyBcIiA6IGZpbGUgYWxyZWFkeSBleGlzdHNcIik7XG4gIGlmKGNhbWxfaXNfbWxfYnl0ZXMoY29udGVudCkpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNvbnRlbnQpO1xuICBpZihjYW1sX2lzX21sX3N0cmluZyhjb250ZW50KSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9zdHJpbmcoY29udGVudCkpO1xuICBlbHNlIGlmKGNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheSlcbiAgICBmaWxlID0gbmV3IE1sRmFrZUZpbGUoY2FtbF9ieXRlc19vZl9hcnJheShjb250ZW50KSk7XG4gIGVsc2UgaWYodHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIpXG4gICAgZmlsZSA9IG5ldyBNbEZha2VGaWxlKGNhbWxfYnl0ZXNfb2ZfanNieXRlcyhjb250ZW50KSk7XG4gIGVsc2UgaWYoY29udGVudC50b1N0cmluZykge1xuICAgIHZhciBieXRlcyA9IGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKGNhbWxfc3RyaW5nX29mX2pzc3RyaW5nKGNvbnRlbnQudG9TdHJpbmcoKSkpO1xuICAgIGZpbGUgPSBuZXcgTWxGYWtlRmlsZShieXRlcyk7XG4gIH1cbiAgaWYoZmlsZSl7XG4gICAgdGhpcy5jcmVhdGVfZGlyX2lmX25lZWRlZChuYW1lKTtcbiAgICB0aGlzLmNvbnRlbnRbbmFtZV0gPSBmaWxlO1xuICB9XG4gIGVsc2UgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5ubShuYW1lKSArIFwiIDogcmVnaXN0ZXJpbmcgZmlsZSB3aXRoIGludmFsaWQgY29udGVudCB0eXBlXCIpO1xufVxuXG5NbEZha2VEZXZpY2UucHJvdG90eXBlLmNvbnN0cnVjdG9yID0gTWxGYWtlRGV2aWNlXG5cbi8vUHJvdmlkZXM6IE1sRmFrZUZpbGVcbi8vUmVxdWlyZXM6IE1sRmlsZVxuLy9SZXF1aXJlczogY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2JsaXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMsIGNhbWxfYnl0ZXNfb2ZfYXJyYXlcbmZ1bmN0aW9uIE1sRmFrZUZpbGUoY29udGVudCl7XG4gIHRoaXMuZGF0YSA9IGNvbnRlbnQ7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZSA9IG5ldyBNbEZpbGUgKCk7XG5NbEZha2VGaWxlLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IE1sRmFrZUZpbGVcbk1sRmFrZUZpbGUucHJvdG90eXBlLnRydW5jYXRlID0gZnVuY3Rpb24obGVuKXtcbiAgdmFyIG9sZCA9IHRoaXMuZGF0YTtcbiAgdGhpcy5kYXRhID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVufDApO1xuICBjYW1sX2JsaXRfYnl0ZXMob2xkLCAwLCB0aGlzLmRhdGEsIDAsIGxlbik7XG59XG5NbEZha2VGaWxlLnByb3RvdHlwZS5sZW5ndGggPSBmdW5jdGlvbiAoKSB7XG4gIHJldHVybiBjYW1sX21sX2J5dGVzX2xlbmd0aCh0aGlzLmRhdGEpO1xufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihvZmZzZXQsYnVmLHBvcyxsZW4pe1xuICB2YXIgY2xlbiA9IHRoaXMubGVuZ3RoKCk7XG4gIGlmKG9mZnNldCArIGxlbiA+PSBjbGVuKSB7XG4gICAgdmFyIG5ld19zdHIgPSBjYW1sX2NyZWF0ZV9ieXRlcyhvZmZzZXQgKyBsZW4pO1xuICAgIHZhciBvbGRfZGF0YSA9IHRoaXMuZGF0YTtcbiAgICB0aGlzLmRhdGEgPSBuZXdfc3RyO1xuICAgIGNhbWxfYmxpdF9ieXRlcyhvbGRfZGF0YSwgMCwgdGhpcy5kYXRhLCAwLCBjbGVuKTtcbiAgfVxuICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9hcnJheShidWYpLCBwb3MsIHRoaXMuZGF0YSwgb2Zmc2V0LCBsZW4pO1xuICByZXR1cm4gMFxufVxuTWxGYWtlRmlsZS5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKG9mZnNldCxidWYscG9zLGxlbil7XG4gIHZhciBjbGVuID0gdGhpcy5sZW5ndGgoKTtcbiAgaWYob2Zmc2V0ICsgbGVuID49IGNsZW4pIHtcbiAgICBsZW4gPSBjbGVuIC0gb2Zmc2V0O1xuICB9XG4gIGlmKGxlbikge1xuICAgIHZhciBkYXRhID0gY2FtbF9jcmVhdGVfYnl0ZXMobGVufDApO1xuICAgIGNhbWxfYmxpdF9ieXRlcyh0aGlzLmRhdGEsIG9mZnNldCwgZGF0YSwgMCwgbGVuKTtcbiAgICBidWYuc2V0KGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoZGF0YSksIHBvcyk7XG4gIH1cbiAgcmV0dXJuIGxlblxufVxuXG5cbi8vUHJvdmlkZXM6IE1sRmFrZUZkX291dFxuLy9SZXF1aXJlczogTWxGYWtlRmlsZSwgY2FtbF9jcmVhdGVfYnl0ZXMsIGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIE1sRmFrZUZkX291dChmZCxmbGFncykge1xuICBNbEZha2VGaWxlLmNhbGwodGhpcywgY2FtbF9jcmVhdGVfYnl0ZXMoMCkpO1xuICB0aGlzLmxvZyA9IChmdW5jdGlvbiAocykgeyByZXR1cm4gMCB9KTtcbiAgaWYoZmQgPT0gMSAmJiB0eXBlb2YgY29uc29sZS5sb2cgPT0gXCJmdW5jdGlvblwiKVxuICAgIHRoaXMubG9nID0gY29uc29sZS5sb2c7XG4gIGVsc2UgaWYoZmQgPT0gMiAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PSBcImZ1bmN0aW9uXCIpXG4gICAgdGhpcy5sb2cgPSBjb25zb2xlLmVycm9yO1xuICBlbHNlIGlmKHR5cGVvZiBjb25zb2xlLmxvZyA9PSBcImZ1bmN0aW9uXCIpXG4gICAgdGhpcy5sb2cgPSBjb25zb2xlLmxvZ1xuICB0aGlzLmZsYWdzID0gZmxhZ3M7XG59XG5NbEZha2VGZF9vdXQucHJvdG90eXBlLmxlbmd0aCA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMCB9XG5NbEZha2VGZF9vdXQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24gKG9mZnNldCxidWYscG9zLGxlbikge1xuICBpZih0aGlzLmxvZykge1xuICAgIGlmKGxlbiA+IDBcbiAgICAgICAmJiBwb3MgPj0gMFxuICAgICAgICYmIHBvcytsZW4gPD0gYnVmLmxlbmd0aFxuICAgICAgICYmIGJ1Zltwb3MrbGVuLTFdID09IDEwKVxuICAgICAgbGVuIC0tO1xuICAgIC8vIERvIG5vdCBvdXRwdXQgdGhlIGxhc3QgXFxuIGlmIHByZXNlbnRcbiAgICAvLyBhcyBjb25zb2xlIGxvZ2dpbmcgZGlzcGxheSBhIG5ld2xpbmUgYXQgdGhlIGVuZFxuICAgIHZhciBzcmMgPSBjYW1sX2NyZWF0ZV9ieXRlcyhsZW4pO1xuICAgIGNhbWxfYmxpdF9ieXRlcyhjYW1sX2J5dGVzX29mX2FycmF5KGJ1ZiksIHBvcywgc3JjLCAwLCBsZW4pO1xuICAgIHRoaXMubG9nKHNyYy50b1V0ZjE2KCkpO1xuICAgIHJldHVybiAwO1xuICB9XG4gIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKHRoaXMuZmQgICsgXCI6IGZpbGUgZGVzY3JpcHRvciBhbHJlYWR5IGNsb3NlZFwiKTtcbn1cbk1sRmFrZUZkX291dC5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uIChvZmZzZXQsIGJ1ZiwgcG9zLCBsZW4pIHtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5mZCAgKyBcIjogZmlsZSBkZXNjcmlwdG9yIGlzIHdyaXRlIG9ubHlcIik7XG59XG5NbEZha2VGZF9vdXQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24gKCkge1xuICB0aGlzLmxvZyA9IHVuZGVmaW5lZDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBNbEZha2VGZFxuLy9SZXF1aXJlczogTWxGYWtlRmlsZVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3JcbmZ1bmN0aW9uIE1sRmFrZUZkKG5hbWUsIGZpbGUsZmxhZ3MpIHtcbiAgdGhpcy5maWxlID0gZmlsZTtcbiAgdGhpcy5uYW1lID0gbmFtZTtcbiAgdGhpcy5mbGFncyA9IGZsYWdzO1xufVxuXG5NbEZha2VGZC5wcm90b3R5cGUuZXJyX2Nsb3NlZCA9IGZ1bmN0aW9uICgpIHtcbiAgY2FtbF9yYWlzZV9zeXNfZXJyb3IodGhpcy5uYW1lICArIFwiOiBmaWxlIGRlc2NyaXB0b3IgYWxyZWFkeSBjbG9zZWRcIik7XG59XG5NbEZha2VGZC5wcm90b3R5cGUubGVuZ3RoID0gZnVuY3Rpb24oKSB7XG4gIGlmKHRoaXMuZmlsZSkgcmV0dXJuIHRoaXMuZmlsZS5sZW5ndGggKClcbiAgdGhpcy5lcnJfY2xvc2VkKCk7XG59XG5NbEZha2VGZC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAob2Zmc2V0LGJ1Zixwb3MsbGVuKSB7XG4gIGlmKHRoaXMuZmlsZSkgcmV0dXJuIHRoaXMuZmlsZS53cml0ZShvZmZzZXQsYnVmLHBvcyxsZW4pXG4gIHRoaXMuZXJyX2Nsb3NlZCgpO1xufVxuTWxGYWtlRmQucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbiAob2Zmc2V0LCBidWYsIHBvcywgbGVuKSB7XG4gIGlmKHRoaXMuZmlsZSkgcmV0dXJuIHRoaXMuZmlsZS5yZWFkKG9mZnNldCwgYnVmLCBwb3MsIGxlbilcbiAgdGhpcy5lcnJfY2xvc2VkKCk7XG59XG5NbEZha2VGZC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoKSB7XG4gIHRoaXMuZmlsZSA9IHVuZGVmaW5lZDtcbn1cbiIsIi8vUHJvdmlkZXM6IGluaXRpYWxpemVfbmF0XG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IHNlcmlhbGl6ZV9uYXQsIGRlc2VyaWFsaXplX25hdCwgY2FtbF9oYXNoX25hdFxuZnVuY3Rpb24gaW5pdGlhbGl6ZV9uYXQoKSB7XG4gIGNhbWxfY3VzdG9tX29wc1tcIl9uYXRcIl0gPVxuICAgIHsgZGVzZXJpYWxpemUgOiBkZXNlcmlhbGl6ZV9uYXQsXG4gICAgICBzZXJpYWxpemUgOiBzZXJpYWxpemVfbmF0LFxuICAgICAgaGFzaCA6IGNhbWxfaGFzaF9uYXRcbiAgICB9XG59XG5cbi8vUHJvdmlkZXM6IE1sTmF0XG5mdW5jdGlvbiBNbE5hdCh4KXtcbiAgdGhpcy5kYXRhID0gbmV3IEludDMyQXJyYXkoeCk7XG4gIC8vIGxlbmd0aF9uYXQgaXNuJ3QgZXh0ZXJuYWwsIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGUgT2JqLnNpemVcbiAgLy8gd29yayBvdXQgcmlnaHQuIFRoZSArMiB0byBhcnJheSBsZW5ndGggc2VlbXMgdG8gd29yay5cbiAgdGhpcy5sZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoICsgMlxufVxuXG5NbE5hdC5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBcIl9uYXRcIjtcblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX25hdFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnQsIG51bV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjYW1sX2hhc2hfbmF0KHgpIHtcbiAgdmFyIGxlbiA9IG51bV9kaWdpdHNfbmF0KHgsIDAsIHguZGF0YS5sZW5ndGgpO1xuICB2YXIgaCA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgeC5kYXRhW2ldKTtcbiAgfVxuICByZXR1cm4gaDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBuYXRfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBuYXRfb2ZfYXJyYXkobCl7XG4gIHJldHVybiBuZXcgTWxOYXQobCk7XG59XG5cbi8vUHJvdmlkZXM6IGNyZWF0ZV9uYXRcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBjcmVhdGVfbmF0KHNpemUpIHtcbiAgdmFyIGFyciA9IG5ldyBNbE5hdChzaXplKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKykge1xuICAgIGFyci5kYXRhW2ldID0gLTE7XG4gIH1cbiAgcmV0dXJuIGFycjtcbn1cblxuLy9Qcm92aWRlczogc2V0X3RvX3plcm9fbmF0XG5mdW5jdGlvbiBzZXRfdG9femVyb19uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAwO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBibGl0X25hdFxuZnVuY3Rpb24gYmxpdF9uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMiwgbGVuKSB7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIG5hdDEuZGF0YVtvZnMxK2ldID0gbmF0Mi5kYXRhW29mczIraV07XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IHNldF9kaWdpdF9uYXRcbmZ1bmN0aW9uIHNldF9kaWdpdF9uYXQobmF0LCBvZnMsIGRpZ2l0KSB7XG4gIG5hdC5kYXRhW29mc10gPSBkaWdpdDtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IG50aF9kaWdpdF9uYXRcbmZ1bmN0aW9uIG50aF9kaWdpdF9uYXQobmF0LCBvZnMpIHtcbiAgcmV0dXJuIG5hdC5kYXRhW29mc107XG59XG5cbi8vUHJvdmlkZXM6IHNldF9kaWdpdF9uYXRfbmF0aXZlXG5mdW5jdGlvbiBzZXRfZGlnaXRfbmF0X25hdGl2ZShuYXQsIG9mcywgZGlnaXQpIHtcbiAgbmF0LmRhdGFbb2ZzXSA9IGRpZ2l0O1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogbnRoX2RpZ2l0X25hdF9uYXRpdmVcbmZ1bmN0aW9uIG50aF9kaWdpdF9uYXRfbmF0aXZlKG5hdCwgb2ZzKSB7XG4gIHJldHVybiBuYXQuZGF0YVtvZnNdO1xufVxuXG4vL1Byb3ZpZGVzOiBudW1fZGlnaXRzX25hdFxuZnVuY3Rpb24gbnVtX2RpZ2l0c19uYXQobmF0LCBvZnMsIGxlbikge1xuICBmb3IodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmKG5hdC5kYXRhW29mcytpXSAhPSAwKSByZXR1cm4gaSsxO1xuICB9XG4gIHJldHVybiAxOyAvLyAwIGNvdW50cyBhcyAxIGRpZ2l0XG59XG5cbi8vUHJvdmlkZXM6IG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdFxuZnVuY3Rpb24gbnVtX2xlYWRpbmdfemVyb19iaXRzX2luX2RpZ2l0KG5hdCwgb2ZzKSB7XG4gIHZhciBhID0gbmF0LmRhdGFbb2ZzXTtcbiAgdmFyIGIgPSAwO1xuICBpZihhICYgMHhGRkZGMDAwMCkgeyBiICs9MTY7IGEgPj4+PTE2OyB9XG4gIGlmKGEgJiAweEZGMDApICAgICB7IGIgKz0gODsgYSA+Pj49IDg7IH1cbiAgaWYoYSAmIDB4RjApICAgICAgIHsgYiArPSA0OyBhID4+Pj0gNDsgfVxuICBpZihhICYgMTIpICAgICAgICAgeyBiICs9IDI7IGEgPj4+PSAyOyB9XG4gIGlmKGEgJiAyKSAgICAgICAgICB7IGIgKz0gMTsgYSA+Pj49IDE7IH1cbiAgaWYoYSAmIDEpICAgICAgICAgIHsgYiArPSAxOyB9XG4gIHJldHVybiAzMiAtIGI7XG59XG5cbi8vUHJvdmlkZXM6IGlzX2RpZ2l0X2ludFxuZnVuY3Rpb24gaXNfZGlnaXRfaW50KG5hdCwgb2ZzKSB7XG4gIGlmIChuYXQuZGF0YVtvZnNdID49IDApIHJldHVybiAxXG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBpc19kaWdpdF96ZXJvXG5mdW5jdGlvbiBpc19kaWdpdF96ZXJvKG5hdCwgb2ZzKSB7XG4gIGlmKG5hdC5kYXRhW29mc10gPT0gMCkgcmV0dXJuIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBpc19kaWdpdF9vZGRcbmZ1bmN0aW9uIGlzX2RpZ2l0X29kZChuYXQsIG9mcykge1xuICBpZihuYXQuZGF0YVtvZnNdICYgMSkgcmV0dXJuIDE7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBpbmNyX25hdFxuZnVuY3Rpb24gaW5jcl9uYXQobmF0LCBvZnMsIGxlbiwgY2FycnlfaW4pIHtcbiAgdmFyIGNhcnJ5ID0gY2FycnlfaW47XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciB4ID0gKG5hdC5kYXRhW29mcytpXSA+Pj4gMCkgKyBjYXJyeTtcbiAgICBuYXQuZGF0YVtvZnMraV0gPSAoeCB8IDApO1xuICAgIGlmKHggPT0gKHggPj4+IDApKSB7XG4gICAgICBjYXJyeSA9IDA7XG4gICAgICBicmVhaztcbiAgICB9IGVsc2Uge1xuICAgICAgY2FycnkgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gY2Fycnk7XG59XG5cbi8vIGxlbjEgPj0gbGVuMlxuLy9Qcm92aWRlczogYWRkX25hdFxuLy9SZXF1aXJlczogaW5jcl9uYXRcbmZ1bmN0aW9uIGFkZF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgY2FycnlfaW4pIHtcbiAgdmFyIGNhcnJ5ID0gY2FycnlfaW47XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4yOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgKyAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApICsgY2Fycnk7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSB4XG4gICAgaWYoeCA9PSAoeCA+Pj4gMCkpIHtcbiAgICAgIGNhcnJ5ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FycnkgPSAxO1xuICAgIH1cbiAgfVxuICByZXR1cm4gaW5jcl9uYXQobmF0MSwgb2ZzMStsZW4yLCBsZW4xLWxlbjIsIGNhcnJ5KTtcbn1cblxuLy9Qcm92aWRlczogY29tcGxlbWVudF9uYXRcbmZ1bmN0aW9uIGNvbXBsZW1lbnRfbmF0KG5hdCwgb2ZzLCBsZW4pIHtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0gKC0xID4+PiAwKSAtIChuYXQuZGF0YVtvZnMraV0gPj4+IDApO1xuICB9XG59XG5cbi8vIG9jYW1sIGZsaXBzIGNhcnJ5X2luXG4vL1Byb3ZpZGVzOiBkZWNyX25hdFxuZnVuY3Rpb24gZGVjcl9uYXQobmF0LCBvZnMsIGxlbiwgY2FycnlfaW4pIHtcbiAgdmFyIGJvcnJvdyA9IChjYXJyeV9pbiA9PSAxKSA/IDAgOiAxO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICB2YXIgeCA9IChuYXQuZGF0YVtvZnMraV0gPj4+MCkgLSBib3Jyb3c7XG4gICAgbmF0LmRhdGFbb2ZzK2ldID0geDtcbiAgICBpZiAoeCA+PSAwKSB7XG4gICAgICBib3Jyb3cgPSAwO1xuICAgICAgYnJlYWs7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvcnJvdyA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiAoYm9ycm93ID09IDEpID8gMCA6IDE7XG59XG5cbi8vIG9jYW1sIGZsaXBzIGNhcnJ5X2luXG4vLyBsZW4xID49IGxlbjJcbi8vUHJvdmlkZXM6IHN1Yl9uYXRcbi8vUmVxdWlyZXM6IGRlY3JfbmF0XG5mdW5jdGlvbiBzdWJfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIGxlbjIsIGNhcnJ5X2luKSB7XG4gIHZhciBib3Jyb3cgPSAoY2FycnlfaW4gPT0gMSkgPyAwIDogMTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjI7IGkrKykge1xuICAgIHZhciB4ID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKSAtIChuYXQyLmRhdGFbb2ZzMitpXSA+Pj4gMCkgLSBib3Jyb3c7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSB4O1xuICAgIGlmICh4ID49IDApIHtcbiAgICAgIGJvcnJvdyA9IDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJvcnJvdyA9IDE7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWNyX25hdChuYXQxLCBvZnMxK2xlbjIsIGxlbjEtbGVuMiwgKGJvcnJvdz09MSk/MDoxKTtcbn1cblxuLy8gbmF0MSArPSBuYXQyICogbmF0M1tvZnMzXVxuLy8gbGVuMSA+PSBsZW4yXG4vL1Byb3ZpZGVzOiBtdWx0X2RpZ2l0X25hdFxuLy9SZXF1aXJlczogYWRkX25hdCwgbmF0X29mX2FycmF5XG5mdW5jdGlvbiBtdWx0X2RpZ2l0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQzLCBvZnMzKSB7XG4gIHZhciBjYXJyeSA9IDA7XG4gIHZhciBhID0gKG5hdDMuZGF0YVtvZnMzXSA+Pj4gMCk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4yOyBpKyspIHtcbiAgICB2YXIgeDEgPSAobmF0MS5kYXRhW29mczEraV0gPj4+IDApICsgKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSAqIChhICYgMHgwMDAwRkZGRikgKyBjYXJyeTtcbiAgICB2YXIgeDIgPSAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApICogKGEgPj4+IDE2KTtcbiAgICBjYXJyeSA9IE1hdGguZmxvb3IoeDIvNjU1MzYpO1xuICAgIHZhciB4MyA9IHgxICsgKHgyICUgNjU1MzYpICogNjU1MzY7XG4gICAgbmF0MS5kYXRhW29mczEraV0gPSB4MztcbiAgICBjYXJyeSArPSBNYXRoLmZsb29yKHgzLzQyOTQ5NjcyOTYpO1xuICB9XG5cbiAgaWYobGVuMiA8IGxlbjEgJiYgY2FycnkpIHtcbiAgICByZXR1cm4gYWRkX25hdChuYXQxLCBvZnMxK2xlbjIsIGxlbjEtbGVuMiwgbmF0X29mX2FycmF5KFtjYXJyeV0pLCAwLCAxLCAwKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY2Fycnk7XG4gIH1cbn1cblxuLy8gbmF0MSArPSBuYXQyICogbmF0M1xuLy8gbGVuMSA+PSBsZW4yICsgbGVuMy5cbi8vUHJvdmlkZXM6IG11bHRfbmF0XG4vL1JlcXVpcmVzOiBtdWx0X2RpZ2l0X25hdFxuZnVuY3Rpb24gbXVsdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMiwgbmF0Mywgb2ZzMywgbGVuMykge1xuICB2YXIgY2FycnkgPSAwO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuMzsgaSsrKSB7XG4gICAgY2FycnkgKz0gbXVsdF9kaWdpdF9uYXQobmF0MSwgb2ZzMStpLCBsZW4xLWksIG5hdDIsIG9mczIsIGxlbjIsIG5hdDMsIG9mczMraSk7XG4gIH1cbiAgcmV0dXJuIGNhcnJ5O1xufVxuXG4vLyBuYXQxID0gMiAqIG5hdDEgKyBuYXQyICogbmF0MlxuLy8gbGVuMSA+PSAyICogbGVuMlxuLy9Qcm92aWRlczogc3F1YXJlX25hdFxuLy9SZXF1aXJlczogbXVsdF9uYXQsIGFkZF9uYXRcbmZ1bmN0aW9uIHNxdWFyZV9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMikge1xuICB2YXIgY2FycnkgPSAwO1xuICBjYXJyeSArPSBhZGRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDEsIG9mczEsIGxlbjEsIDApO1xuICBjYXJyeSArPSBtdWx0X25hdChuYXQxLCBvZnMxLCBsZW4xLCBuYXQyLCBvZnMyLCBsZW4yLCBuYXQyLCBvZnMyLCBsZW4yKTtcbiAgcmV0dXJuIGNhcnJ5O1xufVxuXG5cbi8vIDAgPD0gc2hpZnQgPCAzMlxuLy9Qcm92aWRlczogc2hpZnRfbGVmdF9uYXRcbmZ1bmN0aW9uIHNoaWZ0X2xlZnRfbmF0KG5hdDEsIG9mczEsIGxlbjEsIG5hdDIsIG9mczIsIG5iaXRzKSB7XG4gIGlmKG5iaXRzID09IDApIHtcbiAgICBuYXQyLmRhdGFbb2ZzMl0gPSAwO1xuICAgIHJldHVybiAwO1xuICB9XG4gIHZhciB3cmFwID0gMDtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGxlbjE7IGkrKykge1xuICAgIHZhciBhID0gKG5hdDEuZGF0YVtvZnMxK2ldID4+PiAwKTtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IChhIDw8IG5iaXRzKSB8IHdyYXA7XG4gICAgd3JhcCA9IGEgPj4+ICgzMiAtIG5iaXRzKTtcbiAgfVxuICBuYXQyLmRhdGFbb2ZzMl0gPSB3cmFwO1xuICByZXR1cm4gMDtcbn1cblxuLy8gQXNzdW1pbmcgYyA+IGEsIHJldHVybnMgW3F1b3RpZW50LCByZW1haW5kZXJdIG9mIChhPDwzMiArIGIpL2Ncbi8vUHJvdmlkZXM6IGRpdl9oZWxwZXJcbmZ1bmN0aW9uIGRpdl9oZWxwZXIoYSwgYiwgYykge1xuICB2YXIgeCA9IGEgKiA2NTUzNiArIChiPj4+MTYpO1xuICB2YXIgeSA9IE1hdGguZmxvb3IoeC9jKSAqIDY1NTM2O1xuICB2YXIgeiA9ICh4ICUgYykgKiA2NTUzNjtcbiAgdmFyIHcgPSB6ICsgKGIgJiAweDAwMDBGRkZGKTtcbiAgcmV0dXJuIFt5ICsgTWF0aC5mbG9vcih3L2MpLCB3ICUgY107XG59XG5cbi8vIG5hdDFbb2ZzMStsZW5dIDwgbmF0MltvZnMyXVxuLy9Qcm92aWRlczogZGl2X2RpZ2l0X25hdFxuLy9SZXF1aXJlczogZGl2X2hlbHBlclxuZnVuY3Rpb24gZGl2X2RpZ2l0X25hdChuYXRxLCBvZnNxLCBuYXRyLCBvZnNyLCBuYXQxLCBvZnMxLCBsZW4sIG5hdDIsIG9mczIpIHtcbiAgdmFyIHJlbSA9IChuYXQxLmRhdGFbb2ZzMStsZW4tMV0gPj4+MCk7XG4gIC8vIG5hdHFbb2ZzcStsZW4tMV0gaXMgZ3VhcmFudGVlZCB0byBiZSB6ZXJvIChkdWUgdG8gdGhlIE1TRCByZXF1aXJlbWVudCksXG4gIC8vIGFuZCBzaG91bGQgbm90IGJlIHdyaXR0ZW4gdG8uXG4gIGZvcih2YXIgaSA9IGxlbi0yOyBpID49IDA7IGktLSkge1xuICAgIHZhciB4ID0gZGl2X2hlbHBlcihyZW0sIChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCksIChuYXQyLmRhdGFbb2ZzMl0gPj4+IDApKTtcbiAgICBuYXRxLmRhdGFbb2ZzcStpXSA9IHhbMF07XG4gICAgcmVtID0geFsxXTtcbiAgfVxuICBuYXRyLmRhdGFbb2Zzcl0gPSByZW07XG4gIHJldHVybiAwO1xufVxuXG4vLyBuYXQxW25hdDI6XSA6PSBuYXQxIC8gbmF0MlxuLy8gbmF0MVs6bmF0Ml0gOj0gbmF0MSAlIG5hdDJcbi8vIGxlbjEgPiBsZW4yLCBuYXQyW29mczIrbGVuMi0xXSA+IG5hdDFbb2ZzMStsZW4xLTFdXG4vL1Byb3ZpZGVzOiBkaXZfbmF0XG4vL1JlcXVpcmVzOiBkaXZfZGlnaXRfbmF0LCBkaXZfaGVscGVyLCBudW1fbGVhZGluZ196ZXJvX2JpdHNfaW5fZGlnaXQsIHNoaWZ0X2xlZnRfbmF0LCBzaGlmdF9yaWdodF9uYXQsIGNyZWF0ZV9uYXQsIHNldF90b196ZXJvX25hdCwgbXVsdF9kaWdpdF9uYXQsIHN1Yl9uYXQsIGNvbXBhcmVfbmF0LCBuYXRfb2ZfYXJyYXlcbmZ1bmN0aW9uIGRpdl9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMikge1xuICBpZihsZW4yID09IDEpIHtcbiAgICBkaXZfZGlnaXRfbmF0KG5hdDEsIG9mczErMSwgbmF0MSwgb2ZzMSwgbmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMik7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICB2YXIgcyA9IG51bV9sZWFkaW5nX3plcm9fYml0c19pbl9kaWdpdChuYXQyLCBvZnMyK2xlbjItMSk7XG4gIHNoaWZ0X2xlZnRfbmF0KG5hdDIsIG9mczIsIGxlbjIsIG5hdF9vZl9hcnJheShbMF0pLCAwLCBzKTtcbiAgc2hpZnRfbGVmdF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpO1xuXG4gIHZhciBkID0gKG5hdDIuZGF0YVtvZnMyK2xlbjItMV0gPj4+IDApICsgMTtcbiAgdmFyIGEgPSBjcmVhdGVfbmF0KGxlbjIrMSk7XG4gIGZvciAodmFyIGkgPSBsZW4xIC0gMTsgaSA+PSBsZW4yOyBpLS0pIHtcbiAgICAvLyBEZWNlbnQgbG93ZXIgYm91bmQgb24gcXVvXG4gICAgdmFyIHF1byA9IGQgPT0gNDI5NDk2NzI5NiA/IChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgOiBkaXZfaGVscGVyKChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCksIChuYXQxLmRhdGFbb2ZzMStpLTFdID4+PjApLCBkKVswXTtcbiAgICBzZXRfdG9femVyb19uYXQoYSwgMCwgbGVuMisxKTtcbiAgICBtdWx0X2RpZ2l0X25hdChhLCAwLCBsZW4yKzEsIG5hdDIsIG9mczIsIGxlbjIsIG5hdF9vZl9hcnJheShbcXVvXSksIDApO1xuICAgIHN1Yl9uYXQobmF0MSwgb2ZzMStpLWxlbjIsIGxlbjIrMSwgYSwgMCwgbGVuMisxLCAxKTtcblxuICAgIHdoaWxlIChuYXQxLmRhdGFbb2ZzMStpXSAhPSAwIHx8IGNvbXBhcmVfbmF0KG5hdDEsIG9mczEraS1sZW4yLCBsZW4yLCBuYXQyLCBvZnMyLCBsZW4yKSA+PSAwKSB7XG4gICAgICBxdW8gPSBxdW8gKyAxO1xuICAgICAgc3ViX25hdChuYXQxLCBvZnMxK2ktbGVuMiwgbGVuMisxLCBuYXQyLCBvZnMyLCBsZW4yLCAxKTtcbiAgICB9XG5cbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IHF1bztcbiAgfVxuXG4gIHNoaWZ0X3JpZ2h0X25hdChuYXQxLCBvZnMxLCBsZW4yLCBuYXRfb2ZfYXJyYXkoWzBdKSwgMCwgcyk7IC8vIHNoaWZ0IHJlbWFpbmRlclxuICBzaGlmdF9yaWdodF9uYXQobmF0Miwgb2ZzMiwgbGVuMiwgbmF0X29mX2FycmF5KFswXSksIDAsIHMpOyAvLyByZXN0b3JlXG4gIHJldHVybiAwO1xufVxuXG5cbi8vIDAgPD0gc2hpZnQgPCAzMlxuLy9Qcm92aWRlczogc2hpZnRfcmlnaHRfbmF0XG5mdW5jdGlvbiBzaGlmdF9yaWdodF9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbmJpdHMpIHtcbiAgaWYobmJpdHMgPT0gMCkge1xuICAgIG5hdDIuZGF0YVtvZnMyXSA9IDA7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIHdyYXAgPSAwO1xuICBmb3IodmFyIGkgPSBsZW4xLTE7IGkgPj0gMDsgaS0tKSB7XG4gICAgdmFyIGEgPSBuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMDtcbiAgICBuYXQxLmRhdGFbb2ZzMStpXSA9IChhID4+PiBuYml0cykgfCB3cmFwO1xuICAgIHdyYXAgPSBhIDw8ICgzMiAtIG5iaXRzKTtcbiAgfVxuICBuYXQyLmRhdGFbb2ZzMl0gPSB3cmFwO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY29tcGFyZV9kaWdpdHNfbmF0XG5mdW5jdGlvbiBjb21wYXJlX2RpZ2l0c19uYXQobmF0MSwgb2ZzMSwgbmF0Miwgb2ZzMikge1xuICBpZihuYXQxLmRhdGFbb2ZzMV0gPiBuYXQyLmRhdGFbb2ZzMl0pIHJldHVybiAxO1xuICBpZihuYXQxLmRhdGFbb2ZzMV0gPCBuYXQyLmRhdGFbb2ZzMl0pIHJldHVybiAtMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBhcmVfbmF0XG4vL1JlcXVpcmVzOiBudW1fZGlnaXRzX25hdFxuZnVuY3Rpb24gY29tcGFyZV9uYXQobmF0MSwgb2ZzMSwgbGVuMSwgbmF0Miwgb2ZzMiwgbGVuMikge1xuICB2YXIgYSA9IG51bV9kaWdpdHNfbmF0KG5hdDEsIG9mczEsIGxlbjEpO1xuICB2YXIgYiA9IG51bV9kaWdpdHNfbmF0KG5hdDIsIG9mczIsIGxlbjIpO1xuICBpZihhID4gYikgcmV0dXJuIDE7XG4gIGlmKGEgPCBiKSByZXR1cm4gLTE7XG4gIGZvcih2YXIgaSA9IGxlbjEgLSAxOyBpID49IDA7IGktLSkge1xuICAgIGlmICgobmF0MS5kYXRhW29mczEraV0gPj4+IDApID4gKG5hdDIuZGF0YVtvZnMyK2ldID4+PiAwKSkgcmV0dXJuIDE7XG4gICAgaWYgKChuYXQxLmRhdGFbb2ZzMStpXSA+Pj4gMCkgPCAobmF0Mi5kYXRhW29mczIraV0gPj4+IDApKSByZXR1cm4gLTE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNvbXBhcmVfbmF0X3JlYWxcbi8vUmVxdWlyZXM6IGNvbXBhcmVfbmF0XG5mdW5jdGlvbiBjb21wYXJlX25hdF9yZWFsKG5hdDEsbmF0Mil7XG4gIHJldHVybiBjb21wYXJlX25hdChuYXQxLDAsbmF0MS5kYXRhLmxlbmd0aCxuYXQyLDAsbmF0Mi5kYXRhLmxlbmd0aCk7XG59XG5cbi8vUHJvdmlkZXM6IGxhbmRfZGlnaXRfbmF0XG5mdW5jdGlvbiBsYW5kX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSAmPSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBsb3JfZGlnaXRfbmF0XG5mdW5jdGlvbiBsb3JfZGlnaXRfbmF0KG5hdDEsIG9mczEsIG5hdDIsIG9mczIpIHtcbiAgbmF0MS5kYXRhW29mczFdIHw9IG5hdDIuZGF0YVtvZnMyXTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGx4b3JfZGlnaXRfbmF0XG5mdW5jdGlvbiBseG9yX2RpZ2l0X25hdChuYXQxLCBvZnMxLCBuYXQyLCBvZnMyKSB7XG4gIG5hdDEuZGF0YVtvZnMxXSBePSBuYXQyLmRhdGFbb2ZzMl07XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IHNlcmlhbGl6ZV9uYXRcbmZ1bmN0aW9uIHNlcmlhbGl6ZV9uYXQod3JpdGVyLCBuYXQsIHN6KXtcbiAgdmFyIGxlbiA9IG5hdC5kYXRhLmxlbmd0aDtcbiAgd3JpdGVyLndyaXRlKDMyLCBsZW4pO1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIHdyaXRlci53cml0ZSgzMiwgbmF0LmRhdGFbaV0pO1xuICB9XG4gIHN6WzBdID0gbGVuICogNDtcbiAgc3pbMV0gPSBsZW4gKiA4O1xufVxuXG4vL1Byb3ZpZGVzOiBkZXNlcmlhbGl6ZV9uYXRcbi8vUmVxdWlyZXM6IE1sTmF0XG5mdW5jdGlvbiBkZXNlcmlhbGl6ZV9uYXQocmVhZGVyLCBzeil7XG4gIHZhciBsZW4gPSByZWFkZXIucmVhZDMycygpO1xuICB2YXIgbmF0ID0gbmV3IE1sTmF0KGxlbik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW47IGkrKyl7XG4gICAgbmF0LmRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICB9XG4gIHN6WzBdID0gbGVuICogNDtcbiAgcmV0dXJuIG5hdDtcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcblxuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cblxuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG5cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVcbnZhciBjYW1sX2dyX3N0YXRlO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX2dldFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZVxuLy9SZXF1aXJlczogY2FtbF9uYW1lZF92YWx1ZSwgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tYXliZV9hdHRhY2hfYmFja3RyYWNlXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2dldCgpIHtcbiAgaWYoY2FtbF9ncl9zdGF0ZSkge1xuICAgIHJldHVybiBjYW1sX2dyX3N0YXRlO1xuICB9XG4gIHRocm93IGNhbWxfbWF5YmVfYXR0YWNoX2JhY2t0cmFjZShbMCxjYW1sX25hbWVkX3ZhbHVlKFwiR3JhcGhpY3MuR3JhcGhpY19mYWlsdXJlXCIpLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiTm90IGluaXRpYWxpemVkXCIpXSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N0YXRlX3NldFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZSxjYW1sX2dyX3N0YXRlX2luaXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc3RhdGVfc2V0KGN0eCkge1xuICBjYW1sX2dyX3N0YXRlPWN0eDtcbiAgY2FtbF9ncl9zdGF0ZV9pbml0KClcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfb3Blbl9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9vcGVuX2dyYXBoKGluZm8pe1xuICB2YXIgaW5mbyA9IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKGluZm8pO1xuICBmdW5jdGlvbiBnZXQobmFtZSl7XG4gICAgdmFyIHJlcyA9IGluZm8ubWF0Y2goXCIoXnwsKSAqXCIrbmFtZStcIiAqPSAqKFthLXpBLVowLTlfXSspICooLHwkKVwiKTtcbiAgICBpZihyZXMpIHJldHVybiByZXNbMl07XG4gIH1cbiAgdmFyIHNwZWNzID0gW107XG4gIGlmKCEoaW5mbz09XCJcIikpIHNwZWNzLnB1c2goaW5mbyk7XG4gIHZhciB0YXJnZXQgPSBnZXQoXCJ0YXJnZXRcIik7XG4gIGlmKCF0YXJnZXQpIHRhcmdldD1cIlwiO1xuICB2YXIgc3RhdHVzID0gZ2V0KFwic3RhdHVzXCIpO1xuICBpZighc3RhdHVzKSBzcGVjcy5wdXNoKFwic3RhdHVzPTFcIilcblxuICB2YXIgdyA9IGdldChcIndpZHRoXCIpO1xuICB3ID0gdz9wYXJzZUludCh3KToyMDA7XG4gIHNwZWNzLnB1c2goXCJ3aWR0aD1cIit3KTtcblxuICB2YXIgaCA9IGdldChcImhlaWdodFwiKTtcbiAgaCA9IGg/cGFyc2VJbnQoaCk6MjAwO1xuICBzcGVjcy5wdXNoKFwiaGVpZ2h0PVwiK2gpO1xuXG4gIHZhciB3aW4gPSBnbG9iYWxUaGlzLm9wZW4oXCJhYm91dDpibGFua1wiLHRhcmdldCxzcGVjcy5qb2luKFwiLFwiKSk7XG4gIGlmKCF3aW4pIHtjYW1sX2ZhaWx3aXRoKFwiR3JhcGhpY3Mub3Blbl9ncmFwaDogY2Fubm90IG9wZW4gdGhlIHdpbmRvd1wiKX1cbiAgdmFyIGRvYyA9IHdpbi5kb2N1bWVudDtcbiAgdmFyIGNhbnZhcyA9IGRvYy5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICBjYW52YXMud2lkdGggPSB3O1xuICBjYW52YXMuaGVpZ2h0ID0gaDtcbiAgdmFyIGN0eCA9IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlKGNhbnZhcyx3LGgpO1xuICBjdHguc2V0X3RpdGxlID0gZnVuY3Rpb24gKHRpdGxlKSB7XG4gICAgZG9jLnRpdGxlID0gdGl0bGU7XG4gIH07XG4gIGNhbWxfZ3Jfc3RhdGVfc2V0KGN0eCk7XG4gIHZhciBib2R5ID0gZG9jLmJvZHk7XG4gIGJvZHkuc3R5bGUubWFyZ2luID0gXCIwcHhcIjtcbiAgYm9keS5hcHBlbmRDaGlsZChjYW52YXMpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zdGF0ZV9pbml0XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3NldF9jb2xvcixjYW1sX2dyX21vdmV0byxjYW1sX2dyX3Jlc2l6ZV93aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgsY2FtbF9ncl9zZXRfdGV4dF9zaXplLGNhbWxfZ3Jfc2V0X2ZvbnRcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc2V0X3dpbmRvd190aXRsZVxuZnVuY3Rpb24gY2FtbF9ncl9zdGF0ZV9pbml0KCl7XG4gIGNhbWxfZ3JfbW92ZXRvKGNhbWxfZ3Jfc3RhdGUueCxjYW1sX2dyX3N0YXRlLnkpO1xuICBjYW1sX2dyX3Jlc2l6ZV93aW5kb3coY2FtbF9ncl9zdGF0ZS53aWR0aCxjYW1sX2dyX3N0YXRlLmhlaWdodCk7XG4gIGNhbWxfZ3Jfc2V0X2xpbmVfd2lkdGgoY2FtbF9ncl9zdGF0ZS5saW5lX3dpZHRoKTtcbiAgY2FtbF9ncl9zZXRfdGV4dF9zaXplKGNhbWxfZ3Jfc3RhdGUudGV4dF9zaXplKTtcbiAgY2FtbF9ncl9zZXRfZm9udChjYW1sX2dyX3N0YXRlLmZvbnQpO1xuICBjYW1sX2dyX3NldF9jb2xvcihjYW1sX2dyX3N0YXRlLmNvbG9yKTtcbiAgY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlKGNhbWxfZ3Jfc3RhdGUudGl0bGUpO1xuICAvL2NhbWxfZ3JfcmVzaXplX3dpbmRvdyBtaWdodCByZXNldCBzb21lIGNhbnZhcycgcHJvcGVydGllc1xuICBjYW1sX2dyX3N0YXRlLmNvbnRleHQudGV4dEJhc2VsaW5lID0gJ2JvdHRvbSc7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc3RhdGVfY3JlYXRlXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX2dyX3N0YXRlX2NyZWF0ZShjYW52YXMsdyxoKXtcbiAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dChcIjJkXCIpO1xuICByZXR1cm4ge1xuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgY2FudmFzIDogY2FudmFzLFxuICAgIHggOiAwLFxuICAgIHkgOiAwLFxuICAgIHdpZHRoIDogdyxcbiAgICBoZWlnaHQgOiBoLFxuICAgIGxpbmVfd2lkdGggOiAxLFxuICAgIGZvbnQgOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFwiZml4ZWRcIiksXG4gICAgdGV4dF9zaXplIDogMjYsXG4gICAgY29sb3IgOiAweDAwMDAwMCxcbiAgICB0aXRsZSA6IGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIilcbiAgfTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kb2Nfb2Zfc3RhdGVcbmZ1bmN0aW9uIGNhbWxfZ3JfZG9jX29mX3N0YXRlKHN0YXRlKSB7XG4gIGlmKHN0YXRlLmNhbnZhcy5vd25lckRvY3VtZW50KVxuICAgIHJldHVybiBzdGF0ZS5jYW52YXMub3duZXJEb2N1bWVudDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbG9zZV9ncmFwaFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xvc2VfZ3JhcGgoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNhbnZhcy53aWR0aCA9IDA7XG4gIHMuY2FudmFzLmhlaWdodCA9IDA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF93aW5kb3dfdGl0bGVcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9zZXRfd2luZG93X3RpdGxlKG5hbWUpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMudGl0bGUgPSBuYW1lO1xuICB2YXIganNuYW1lID0gY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcobmFtZSk7XG4gIGlmKHMuc2V0X3RpdGxlKSBzLnNldF90aXRsZShqc25hbWUpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9yZXNpemVfd2luZG93XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9yZXNpemVfd2luZG93KHcsaCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKVxuICBzLndpZHRoID0gdztcbiAgcy5oZWlnaHQgPSBoO1xuICBzLmNhbnZhcy53aWR0aCA9IHc7XG4gIHMuY2FudmFzLmhlaWdodCA9IGg7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2NsZWFyX2dyYXBoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jbGVhcl9ncmFwaCgpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY2FudmFzLndpZHRoID0gcy53aWR0aDtcbiAgcy5jYW52YXMuaGVpZ2h0ID0gcy5oZWlnaHQ7XG4gIC8vICBzLmNvbnRleHQuc3Ryb2tlUmVjdCAoMC4sIDAuLCBzLndpZHRoLCBzLmhlaWdodCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpemVfeFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2l6ZV94KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMud2lkdGg7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpemVfeVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2l6ZV95KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMuaGVpZ2h0O1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X2NvbG9yXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zZXRfY29sb3IoY29sb3Ipe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIGZ1bmN0aW9uIGNvbnZlcnQobnVtYmVyKSB7XG4gICAgdmFyIHN0ciA9ICcnICsgbnVtYmVyLnRvU3RyaW5nKDE2KTtcbiAgICB3aGlsZSAoc3RyLmxlbmd0aCA8IDIpIHN0ciA9ICcwJyArIHN0cjtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIHZhclxuICByID0gKGNvbG9yID4+IDE2KSAmIDB4ZmYsXG4gIGcgPSAoY29sb3IgPj4gOCkgICYgMHhmZixcbiAgYiA9IChjb2xvciA+PiAwKSAgJiAweGZmO1xuICBzLmNvbG9yPWNvbG9yO1xuICB2YXIgY19zdHIgPSAnIycgKyBjb252ZXJ0KHIpICsgY29udmVydChnKSArIGNvbnZlcnQoYik7XG4gIHMuY29udGV4dC5maWxsU3R5bGUgPSAgIGNfc3RyO1xuICBzLmNvbnRleHQuc3Ryb2tlU3R5bGUgPSBjX3N0cjtcbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3Bsb3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3Bsb3QoeCx5KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgaW09cy5jb250ZXh0LmNyZWF0ZUltYWdlRGF0YSgxLDEpO1xuICB2YXIgZCA9IGltLmRhdGE7XG4gIHZhciBjb2xvciA9IHMuY29sb3I7XG4gIGRbMF0gPSAoY29sb3IgPj4gMTYpICYgMHhmZjsgLy9yXG4gIGRbMV0gPSAoY29sb3IgPj4gOCkgICYgMHhmZiwgLy9nXG4gIGRbMl0gPSAoY29sb3IgPj4gMCkgICYgMHhmZjsgLy9iXG4gIGRbM10gPSAweEZGOyAvL2FcbiAgcy54PXg7XG4gIHMueT15O1xuICBzLmNvbnRleHQucHV0SW1hZ2VEYXRhKGltLHgscy5oZWlnaHQgLSB5KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfcG9pbnRfY29sb3Jcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX3BvaW50X2NvbG9yKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGltPXMuY29udGV4dC5nZXRJbWFnZURhdGEoeCxzLmhlaWdodCAtIHksMSwxKTtcbiAgdmFyIGQgPSBpbS5kYXRhO1xuICByZXR1cm4gKGRbMF0gPDwgMTYpICsgKGRbMV0gPDwgOCkgKyBkWzJdO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9tb3ZldG9cbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX21vdmV0byh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMueD14O1xuICBzLnk9eTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfY3VycmVudF94XG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9jdXJyZW50X3goKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICByZXR1cm4gcy54XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2N1cnJlbnRfeVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3VycmVudF95KCl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMueVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9saW5ldG9cbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2xpbmV0byh4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuY29udGV4dC5iZWdpblBhdGgoKTtcbiAgcy5jb250ZXh0Lm1vdmVUbyhzLngscy5oZWlnaHQgLSBzLnkpO1xuICBzLmNvbnRleHQubGluZVRvKHgscy5oZWlnaHQgLSB5KTtcbiAgcy5jb250ZXh0LnN0cm9rZSgpO1xuICBzLng9eDtcbiAgcy55PXk7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3JlY3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2RyYXdfcmVjdCh4LHksdyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuc3Ryb2tlUmVjdCh4LHMuaGVpZ2h0IC0geSx3LC1oKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfYXJjX2F1eFxuZnVuY3Rpb24gY2FtbF9ncl9hcmNfYXV4KGN0eCxjeCxjeSxyeSxyeCxhMSxhMil7XG4gIHdoaWxlKGExPmEyKSBhMis9MzYwO1xuICBhMSAvPSAxODA7XG4gIGEyIC89IDE4MDtcbiAgdmFyIHJvdCA9IDAseFBvcyx5UG9zLHhQb3NfcHJldix5UG9zX3ByZXY7XG4gIHZhciBzcGFjZSA9IDI7XG4gIHZhciBudW0gPSAoKChhMiAtIGExKSAqIE1hdGguUEkgKiAoKHJ4K3J5KS8yKSkgLyBzcGFjZSkgfCAwO1xuICB2YXIgZGVsdGEgPSAoYTIgLSBhMSkgKiBNYXRoLlBJIC8gbnVtO1xuICB2YXIgaSA9IGExICogTWF0aC5QSTtcbiAgZm9yICh2YXIgaj0wO2o8PW51bTtqKyspe1xuICAgIHhQb3MgPSBjeCAtIChyeCAqIE1hdGguc2luKGkpKSAqIE1hdGguc2luKHJvdCAqIE1hdGguUEkpICsgKHJ5ICogTWF0aC5jb3MoaSkpICogTWF0aC5jb3Mocm90ICogTWF0aC5QSSk7XG4gICAgeFBvcyA9IHhQb3MudG9GaXhlZCgyKTtcbiAgICB5UG9zID0gY3kgKyAocnkgKiBNYXRoLmNvcyhpKSkgKiBNYXRoLnNpbihyb3QgKiBNYXRoLlBJKSArIChyeCAqIE1hdGguc2luKGkpKSAqIE1hdGguY29zKHJvdCAqIE1hdGguUEkpO1xuICAgIHlQb3MgPSB5UG9zLnRvRml4ZWQoMik7XG4gICAgaWYgKGo9PTApIHtcbiAgICAgIGN0eC5tb3ZlVG8oeFBvcywgeVBvcyk7XG4gICAgfSBlbHNlIGlmICh4UG9zX3ByZXYhPXhQb3MgfHwgeVBvc19wcmV2IT15UG9zKXtcbiAgICAgIGN0eC5saW5lVG8oeFBvcywgeVBvcyk7XG4gICAgfVxuICAgIHhQb3NfcHJldj14UG9zO1xuICAgIHlQb3NfcHJldj15UG9zO1xuICAgIGktPSBkZWx0YTsvL2Njd1xuICB9XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19hcmNcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0LCBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19hcmMoeCx5LHJ4LHJ5LGExLGEyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIGNhbWxfZ3JfYXJjX2F1eChzLmNvbnRleHQseCxzLmhlaWdodCAtIHkscngscnksYTEsYTIpO1xuICBzLmNvbnRleHQuc3Ryb2tlKCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NldF9saW5lX3dpZHRoXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9zZXRfbGluZV93aWR0aCh3KXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmxpbmVfd2lkdGggPSB3O1xuICBzLmNvbnRleHQubGluZVdpZHRoID0gd1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX3JlY3Rcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfcmVjdCh4LHksdyxoKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuZmlsbFJlY3QoeCxzLmhlaWdodCAtIHksdywtaCk7XG4gIHJldHVybiAwO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9maWxsX3BvbHlcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0XG5mdW5jdGlvbiBjYW1sX2dyX2ZpbGxfcG9seShhcil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy5jb250ZXh0LmJlZ2luUGF0aCgpO1xuICBzLmNvbnRleHQubW92ZVRvKGFyWzFdWzFdLHMuaGVpZ2h0IC0gYXJbMV1bMl0pO1xuICBmb3IodmFyIGkgPSAyOyBpIDwgYXIubGVuZ3RoOyBpKyspXG4gICAgcy5jb250ZXh0LmxpbmVUbyhhcltpXVsxXSxzLmhlaWdodCAtIGFyW2ldWzJdKTtcbiAgcy5jb250ZXh0LmxpbmVUbyhhclsxXVsxXSxzLmhlaWdodCAtIGFyWzFdWzJdKTtcbiAgcy5jb250ZXh0LmZpbGwoKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZmlsbF9hcmNcbi8vUmVxdWlyZXM6IGNhbWxfZ3Jfc3RhdGVfZ2V0LCBjYW1sX2dyX2FyY19hdXhcbmZ1bmN0aW9uIGNhbWxfZ3JfZmlsbF9hcmMoeCx5LHJ4LHJ5LGExLGEyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICBzLmNvbnRleHQuYmVnaW5QYXRoKCk7XG4gIGNhbWxfZ3JfYXJjX2F1eChzLmNvbnRleHQseCxzLmhlaWdodCAtIHkscngscnksYTEsYTIpO1xuICBzLmNvbnRleHQuZmlsbCgpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9kcmF3X3N0clxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19zdHIoc3RyKXtcbiAgdmFyIHMgPSBjYW1sX2dyX3N0YXRlX2dldCgpO1xuICB2YXIgbSA9IHMuY29udGV4dC5tZWFzdXJlVGV4dChzdHIpO1xuICB2YXIgZHggPSBtLndpZHRoO1xuICBzLmNvbnRleHQuZmlsbFRleHQoc3RyLHMueCxzLmhlaWdodCAtIHMueSk7XG4gIHMueCArPSBkeCB8IDA7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfY2hhclxuLy9SZXF1aXJlczogY2FtbF9ncl9kcmF3X3N0clxuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X2NoYXIoYyl7XG4gIGNhbWxfZ3JfZHJhd19zdHIoU3RyaW5nLmZyb21DaGFyQ29kZShjKSk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2RyYXdfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2dyX2RyYXdfc3RyXG4vL1JlcXVpcmVzOiBjYW1sX2pzc3RyaW5nX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9ncl9kcmF3X3N0cmluZyhzdHIpe1xuICBjYW1sX2dyX2RyYXdfc3RyKGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHN0cikpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9zZXRfZm9udFxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF9mb250KGYpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHMuZm9udCA9IGY7XG4gIHMuY29udGV4dC5mb250ID0gcy50ZXh0X3NpemUgKyBcInB4IFwiICsgY2FtbF9qc3N0cmluZ19vZl9zdHJpbmcocy5mb250KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ3Jfc2V0X3RleHRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3NldF90ZXh0X3NpemUoc2l6ZSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcy50ZXh0X3NpemUgPSBzaXplO1xuICBzLmNvbnRleHQuZm9udCA9IHMudGV4dF9zaXplICsgXCJweCBcIiArIGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHMuZm9udCk7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3RleHRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2dyX3RleHRfc2l6ZSh0eHQpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciB3ID0gcy5jb250ZXh0Lm1lYXN1cmVUZXh0KGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nKHR4dCkpLndpZHRoO1xuICByZXR1cm4gWzAsdyxzLnRleHRfc2l6ZV07XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9ncl9tYWtlX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9tYWtlX2ltYWdlKGFycil7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgdmFyIGggPSBhcnIubGVuZ3RoIC0gMSA7XG4gIHZhciB3ID0gYXJyWzFdLmxlbmd0aCAtIDE7XG4gIHZhciBpbSA9IHMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEodyxoKTtcbiAgZm9yKHZhciBpPTA7aTxoO2krKyl7XG4gICAgZm9yKHZhciBqPTA7ajx3O2orKyl7XG4gICAgICB2YXIgYyA9IGFycltpKzFdW2orMV07XG4gICAgICB2YXIgbyA9IGkqKHcqNCkgKyAoaiAqIDQpO1xuICAgICAgaWYoYyA9PSAtMSkge1xuICAgICAgICBpbS5kYXRhW28gKyAwXSA9IDA7XG4gICAgICAgIGltLmRhdGFbbyArIDFdID0gMDtcbiAgICAgICAgaW0uZGF0YVtvICsgMl0gPSAwO1xuICAgICAgICBpbS5kYXRhW28gKyAzXSA9IDA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbS5kYXRhW28gKyAwXSA9IGMgPj4gMTYgJiAweGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAxXSA9IGMgPj4gIDggJiAweGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAyXSA9IGMgPj4gIDAgJiAwWGZmO1xuICAgICAgICBpbS5kYXRhW28gKyAzXSA9IDB4ZmY7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbVxufVxuLy9Qcm92aWRlczogY2FtbF9ncl9kdW1wX2ltYWdlXG4vL1JlcXVpcmVzOiBjYW1sX2dyX3N0YXRlX2dldFxuZnVuY3Rpb24gY2FtbF9ncl9kdW1wX2ltYWdlKGltKXtcbiAgdmFyIGRhdGEgPSBbMF1cbiAgZm9yKHZhciBpPTA7IGk8aW0uaGVpZ2h0O2krKyl7XG4gICAgZGF0YVtpKzFdID0gWzBdXG4gICAgZm9yKHZhciBqPTA7IGo8aW0ud2lkdGg7aisrKXtcbiAgICAgIHZhciBvID0gaSooaW0ud2lkdGgqNCkgKyAoaiAqIDQpLFxuICAgICAgICAgIHIgPSBpbS5kYXRhW28rMF0sXG4gICAgICAgICAgZyA9IGltLmRhdGFbbysxXSxcbiAgICAgICAgICBiID0gaW0uZGF0YVtvKzJdO1xuICAgICAgZGF0YVtpKzFdW2orMV0gPSAociA8PCAxNikgKyAoZyA8PCA4KSArIGJcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRhdGFcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZHJhd19pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfZHJhd19pbWFnZShpbSx4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIGlmKCFpbS5pbWFnZSkge1xuICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiY2FudmFzXCIpO1xuICAgIGNhbnZhcy53aWR0aCA9IHMud2lkdGg7XG4gICAgY2FudmFzLmhlaWdodCA9IHMuaGVpZ2h0O1xuICAgIGNhbnZhcy5nZXRDb250ZXh0KFwiMmRcIikucHV0SW1hZ2VEYXRhKGltLDAsMCk7XG4gICAgdmFyIGltYWdlID0gbmV3IGdsb2JhbFRoaXMuSW1hZ2UoKTtcbiAgICBpbWFnZS5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBzLmNvbnRleHQuZHJhd0ltYWdlKGltYWdlLHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5KTtcbiAgICAgIGltLmltYWdlID0gaW1hZ2U7XG4gICAgfVxuICAgIGltYWdlLnNyYyA9IGNhbnZhcy50b0RhdGFVUkwoXCJpbWFnZS9wbmdcIik7XG4gIH0gZWxzZSB7XG4gICAgcy5jb250ZXh0LmRyYXdJbWFnZShpbS5pbWFnZSx4LHMuaGVpZ2h0IC0gaW0uaGVpZ2h0IC0geSk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX2NyZWF0ZV9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfY3JlYXRlX2ltYWdlKHgseSl7XG4gIHZhciBzID0gY2FtbF9ncl9zdGF0ZV9nZXQoKTtcbiAgcmV0dXJuIHMuY29udGV4dC5jcmVhdGVJbWFnZURhdGEoeCx5KTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfYmxpdF9pbWFnZVxuLy9SZXF1aXJlczogY2FtbF9ncl9zdGF0ZV9nZXRcbmZ1bmN0aW9uIGNhbWxfZ3JfYmxpdF9pbWFnZShpbSx4LHkpe1xuICB2YXIgcyA9IGNhbWxfZ3Jfc3RhdGVfZ2V0KCk7XG4gIHZhciBpbTIgPSBzLmNvbnRleHQuZ2V0SW1hZ2VEYXRhKHgscy5oZWlnaHQgLSBpbS5oZWlnaHQgLSB5LGltLndpZHRoLGltLmhlaWdodCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgaW0yLmRhdGEubGVuZ3RoOyBpKz00KXtcbiAgICBpbS5kYXRhW2ldID0gaW0yLmRhdGFbaV07XG4gICAgaW0uZGF0YVtpKzFdID0gaW0yLmRhdGFbaSsxXTtcbiAgICBpbS5kYXRhW2krMl0gPSBpbTIuZGF0YVtpKzJdO1xuICAgIGltLmRhdGFbaSszXSA9IGltMi5kYXRhW2krM107XG4gIH1cbiAgcmV0dXJuIDA7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3NpZ2lvX2hhbmRsZXJcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2lnaW9faGFuZGxlcigpe3JldHVybiAwfVxuLy9Qcm92aWRlczogY2FtbF9ncl9zaWdpb19zaWduYWxcbmZ1bmN0aW9uIGNhbWxfZ3Jfc2lnaW9fc2lnbmFsKCl7cmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3dhaXRfZXZlbnRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfd2FpdF9ldmVudChfZXZsKXtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfd2FpdF9ldmVudCBub3QgSW1wbGVtZW50ZWQ6IHVzZSBHcmFwaGljc19qcyBpbnN0ZWFkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2dyX3N5bmNocm9uaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3N5bmNocm9uaXplICgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfc3luY2hyb25pemUgbm90IEltcGxlbWVudGVkXCIpO1xufVxuLy9Qcm92aWRlczogY2FtbF9ncl9yZW1lbWJlcl9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX3JlbWVtYmVyX21vZGUgKCkge1xuICBjYW1sX2ZhaWx3aXRoKFwiY2FtbF9ncl9yZW1lbWJlcl9tb2RlIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZ3JfZGlzcGxheV9tb2RlXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX2dyX2Rpc3BsYXlfbW9kZSgpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfZGlzcGxheV9tb2RlIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl93aW5kb3dfaWRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3Jfd2luZG93X2lkKGEpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3Jfd2luZG93X2lkIG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9vcGVuX3N1YndpbmRvd1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9ncl9vcGVuX3N1YndpbmRvdyhhLGIsYyxkKSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2dyX29wZW5fc3Vid2luZG93IG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ncl9jbG9zZV9zdWJ3aW5kb3dcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93KGEpIHtcbiAgY2FtbF9mYWlsd2l0aChcImNhbWxfZ3JfY2xvc2Vfc3Vid2luZG93IG5vdCBJbXBsZW1lbnRlZFwiKTtcbn1cbiIsIlxuLy9Qcm92aWRlczogY2FtbF9jdXN0b21fZXZlbnRfaW5kZXhcbnZhciBjYW1sX2N1c3RvbV9ldmVudF9pbmRleCA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZWdpc3RlclxuLy9SZXF1aXJlczogY2FtbF9jdXN0b21fZXZlbnRfaW5kZXhcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZWdpc3RlcihldmVudF9uYW1lLCBldmVudF90YWcsIGV2ZW50X3R5cGUpIHtcbiAgY2FtbF9jdXN0b21fZXZlbnRfaW5kZXggKz0gMTtcbiAgcmV0dXJuIFswLCBjYW1sX2N1c3RvbV9ldmVudF9pbmRleCwgZXZlbnRfbmFtZSwgZXZlbnRfdHlwZSwgZXZlbnRfdGFnXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c191c2VyX3dyaXRlXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfd3JpdGUoZXZlbnQsIGV2ZW50X2NvbnRlbnQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfdXNlcl9yZXNvbHZlXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3VzZXJfcmVzb2x2ZSgpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfc3RhcnRcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfc3RhcnQoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3J1bnRpbWVfZXZlbnRzX3BhdXNlXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3BhdXNlKCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19yZXN1bWVcbmZ1bmN0aW9uIGNhbWxfcnVudGltZV9ldmVudHNfcmVzdW1lKCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19jcmVhdGVfY3Vyc29yXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX2NyZWF0ZV9jdXJzb3IodGFyZ2V0KSB7XG4gIHJldHVybiB7fTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9ydW50aW1lX2V2ZW50c19mcmVlX2N1cnNvclxuZnVuY3Rpb24gY2FtbF9ydW50aW1lX2V2ZW50c19mcmVlX2N1cnNvcihjdXJzb3IpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcnVudGltZV9ldmVudHNfcmVhZF9wb2xsXG5mdW5jdGlvbiBjYW1sX3J1bnRpbWVfZXZlbnRzX3JlYWRfcG9sbChjdXJzb3IsIGNhbGxiYWNrcywgbnVtKSB7XG4gIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9jb25zdGFudHNcbnZhciBjYW1sX21hcnNoYWxfY29uc3RhbnRzID0ge1xuICBQUkVGSVhfU01BTExfQkxPQ0s6ICAgICAgICAgMHg4MCxcbiAgUFJFRklYX1NNQUxMX0lOVDogICAgICAgICAgIDB4NDAsXG4gIFBSRUZJWF9TTUFMTF9TVFJJTkc6ICAgICAgICAweDIwLFxuICBDT0RFX0lOVDg6ICAgICAgICAgICAgICAgICAgMHgwMCxcbiAgQ09ERV9JTlQxNjogICAgICAgICAgICAgICAgIDB4MDEsXG4gIENPREVfSU5UMzI6ICAgICAgICAgICAgICAgICAweDAyLFxuICBDT0RFX0lOVDY0OiAgICAgICAgICAgICAgICAgMHgwMyxcbiAgQ09ERV9TSEFSRUQ4OiAgICAgICAgICAgICAgIDB4MDQsXG4gIENPREVfU0hBUkVEMTY6ICAgICAgICAgICAgICAweDA1LFxuICBDT0RFX1NIQVJFRDMyOiAgICAgICAgICAgICAgMHgwNixcbiAgQ09ERV9CTE9DSzMyOiAgICAgICAgICAgICAgIDB4MDgsXG4gIENPREVfQkxPQ0s2NDogICAgICAgICAgICAgICAweDEzLFxuICBDT0RFX1NUUklORzg6ICAgICAgICAgICAgICAgMHgwOSxcbiAgQ09ERV9TVFJJTkczMjogICAgICAgICAgICAgIDB4MEEsXG4gIENPREVfRE9VQkxFX0JJRzogICAgICAgICAgICAweDBCLFxuICBDT0RFX0RPVUJMRV9MSVRUTEU6ICAgICAgICAgMHgwQyxcbiAgQ09ERV9ET1VCTEVfQVJSQVk4X0JJRzogICAgIDB4MEQsXG4gIENPREVfRE9VQkxFX0FSUkFZOF9MSVRUTEU6ICAweDBFLFxuICBDT0RFX0RPVUJMRV9BUlJBWTMyX0JJRzogICAgMHgwRixcbiAgQ09ERV9ET1VCTEVfQVJSQVkzMl9MSVRUTEU6IDB4MDcsXG4gIENPREVfQ09ERVBPSU5URVI6ICAgICAgICAgICAweDEwLFxuICBDT0RFX0lORklYUE9JTlRFUjogICAgICAgICAgMHgxMSxcbiAgQ09ERV9DVVNUT006ICAgICAgICAgICAgICAgIDB4MTIsXG4gIENPREVfQ1VTVE9NX0xFTjogICAgICAgICAgICAweDE4LFxuICBDT0RFX0NVU1RPTV9GSVhFRDogICAgICAgICAgMHgxOVxufVxuXG5cbi8vUHJvdmlkZXM6IFVJbnQ4QXJyYXlSZWFkZXJcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX29mX2FycmF5LCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBVSW50OEFycmF5UmVhZGVyIChzLCBpKSB7IHRoaXMucyA9IHM7IHRoaXMuaSA9IGk7IH1cblVJbnQ4QXJyYXlSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zW3RoaXMuaSsrXTsgfSxcbiAgcmVhZDhzOmZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMuc1t0aGlzLmkrK10gPDwgMjQgPj4gMjQ7IH0sXG4gIHJlYWQxNnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoc1tpXSA8PCA4KSB8IHNbaSArIDFdXG4gIH0sXG4gIHJlYWQxNnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoc1tpXSA8PCAyNCA+PiAxNikgfCBzW2kgKyAxXTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgoc1tpXSA8PCAyNCkgfCAoc1tpKzFdIDw8IDE2KSB8XG4gICAgICAgICAgICAoc1tpKzJdIDw8IDgpIHwgc1tpKzNdKSA+Pj4gMDtcbiAgfSxcbiAgcmVhZDMyczpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuIChzW2ldIDw8IDI0KSB8IChzW2krMV0gPDwgMTYpIHxcbiAgICAgIChzW2krMl0gPDwgOCkgfCBzW2krM107XG4gIH0sXG4gIHJlYWRzdHI6ZnVuY3Rpb24gKGxlbikge1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KHRoaXMucy5zdWJhcnJheShpLCBpICsgbGVuKSk7XG4gIH0sXG4gIHJlYWR1aW50OGFycmF5OmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiB0aGlzLnMuc3ViYXJyYXkoaSwgaSArIGxlbik7XG4gIH1cbn1cblxuXG4vL1Byb3ZpZGVzOiBNbFN0cmluZ1JlYWRlclxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9qc2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gTWxTdHJpbmdSZWFkZXIgKHMsIGkpIHsgdGhpcy5zID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhzKTsgdGhpcy5pID0gaTsgfVxuTWxTdHJpbmdSZWFkZXIucHJvdG90eXBlID0ge1xuICByZWFkOHU6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zLmNoYXJDb2RlQXQodGhpcy5pKyspOyB9LFxuICByZWFkOHM6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5zLmNoYXJDb2RlQXQodGhpcy5pKyspIDw8IDI0ID4+IDI0OyB9LFxuICByZWFkMTZ1OmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgMjtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpICsgMSlcbiAgfSxcbiAgcmVhZDE2czpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChzLmNoYXJDb2RlQXQoaSkgPDwgMjQgPj4gMTYpIHwgcy5jaGFyQ29kZUF0KGkgKyAxKTtcbiAgfSxcbiAgcmVhZDMydTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuICgocy5jaGFyQ29kZUF0KGkpIDw8IDI0KSB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCAxNikgfFxuICAgICAgICAgICAgKHMuY2hhckNvZGVBdChpKzIpIDw8IDgpIHwgcy5jaGFyQ29kZUF0KGkrMykpID4+PiAwO1xuICB9LFxuICByZWFkMzJzOmZ1bmN0aW9uICgpIHtcbiAgICB2YXIgcyA9IHRoaXMucywgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgNDtcbiAgICByZXR1cm4gKHMuY2hhckNvZGVBdChpKSA8PCAyNCkgfCAocy5jaGFyQ29kZUF0KGkrMSkgPDwgMTYpIHxcbiAgICAgIChzLmNoYXJDb2RlQXQoaSsyKSA8PCA4KSB8IHMuY2hhckNvZGVBdChpKzMpO1xuICB9LFxuICByZWFkc3RyOmZ1bmN0aW9uIChsZW4pIHtcbiAgICB2YXIgaSA9IHRoaXMuaTtcbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKHRoaXMucy5zdWJzdHJpbmcoaSwgaSArIGxlbikpO1xuICB9LFxuICByZWFkdWludDhhcnJheTpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShsZW4pO1xuICAgIHZhciBzID0gdGhpcy5zO1xuICAgIHZhciBpID0gdGhpcy5pO1xuICAgIGZvcih2YXIgaiA9IDA7IGogPCBsZW47IGorKykge1xuICAgICAgYltqXSA9IHMuY2hhckNvZGVBdChpICsgaik7XG4gICAgfVxuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIGI7XG4gIH1cbn1cblxuLy9Qcm92aWRlczogQmlnU3RyaW5nUmVhZGVyXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheSwgY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gQmlnU3RyaW5nUmVhZGVyIChicywgaSkgeyB0aGlzLnMgPSBiczsgdGhpcy5pID0gaTsgfVxuQmlnU3RyaW5nUmVhZGVyLnByb3RvdHlwZSA9IHtcbiAgcmVhZDh1OmZ1bmN0aW9uICgpIHsgcmV0dXJuIGNhbWxfYmFfZ2V0XzEodGhpcy5zLHRoaXMuaSsrKTsgfSxcbiAgcmVhZDhzOmZ1bmN0aW9uICgpIHsgcmV0dXJuIGNhbWxfYmFfZ2V0XzEodGhpcy5zLHRoaXMuaSsrKSA8PCAyNCA+PiAyNDsgfSxcbiAgcmVhZDE2dTpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDI7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgPDwgOCkgfCBjYW1sX2JhX2dldF8xKHMsaSArIDEpXG4gIH0sXG4gIHJlYWQxNnM6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyAyO1xuICAgIHJldHVybiAoY2FtbF9iYV9nZXRfMShzLGkpIDw8IDI0ID4+IDE2KSB8IGNhbWxfYmFfZ2V0XzEocyxpICsgMSk7XG4gIH0sXG4gIHJlYWQzMnU6ZnVuY3Rpb24gKCkge1xuICAgIHZhciBzID0gdGhpcy5zLCBpID0gdGhpcy5pO1xuICAgIHRoaXMuaSA9IGkgKyA0O1xuICAgIHJldHVybiAoKGNhbWxfYmFfZ2V0XzEocyxpKSAgIDw8IDI0KSB8IChjYW1sX2JhX2dldF8xKHMsaSsxKSA8PCAxNikgfFxuICAgICAgICAgICAgKGNhbWxfYmFfZ2V0XzEocyxpKzIpIDw8IDgpICB8IGNhbWxfYmFfZ2V0XzEocyxpKzMpICAgICAgICAgKSA+Pj4gMDtcbiAgfSxcbiAgcmVhZDMyczpmdW5jdGlvbiAoKSB7XG4gICAgdmFyIHMgPSB0aGlzLnMsIGkgPSB0aGlzLmk7XG4gICAgdGhpcy5pID0gaSArIDQ7XG4gICAgcmV0dXJuIChjYW1sX2JhX2dldF8xKHMsaSkgICA8PCAyNCkgfCAoY2FtbF9iYV9nZXRfMShzLGkrMSkgPDwgMTYpIHxcbiAgICAgIChjYW1sX2JhX2dldF8xKHMsaSsyKSA8PCA4KSAgfCBjYW1sX2JhX2dldF8xKHMsaSszKTtcbiAgfSxcbiAgcmVhZHN0cjpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdmFyIGFyciA9IG5ldyBBcnJheShsZW4pXG4gICAgZm9yKHZhciBqID0gMDsgaiA8IGxlbjsgaisrKXtcbiAgICAgIGFycltqXSA9IGNhbWxfYmFfZ2V0XzEodGhpcy5zLCBpK2opO1xuICAgIH1cbiAgICB0aGlzLmkgPSBpICsgbGVuO1xuICAgIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShhcnIpO1xuICB9LFxuICByZWFkdWludDhhcnJheTpmdW5jdGlvbiAobGVuKSB7XG4gICAgdmFyIGkgPSB0aGlzLmk7XG4gICAgdmFyIG9mZnNldCA9IHRoaXMub2Zmc2V0KGkpO1xuICAgIHRoaXMuaSA9IGkgKyBsZW47XG4gICAgcmV0dXJuIHRoaXMucy5kYXRhLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgbGVuKTtcbiAgfVxufVxuXG5cblxuLy9Qcm92aWRlczogY2FtbF9mbG9hdF9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2Zsb2F0X29mX2J5dGVzIChhKSB7XG4gIHJldHVybiBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHMgKGNhbWxfaW50NjRfb2ZfYnl0ZXMgKGEpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyBtdXRhYmxlXG4vL1JlcXVpcmVzOiBNbFN0cmluZ1JlYWRlciwgY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlclxuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3N0cmluZyhzLG9mcykge1xuICB2YXIgcmVhZGVyID0gbmV3IE1sU3RyaW5nUmVhZGVyIChzLCB0eXBlb2Ygb2ZzPT1cIm51bWJlclwiP29mczpvZnNbMF0pO1xuICByZXR1cm4gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IE1sU3RyaW5nUmVhZGVyLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzKHMsb2ZzKSB7XG4gIHZhciByZWFkZXIgPSBuZXcgTWxTdHJpbmdSZWFkZXIgKGNhbWxfc3RyaW5nX29mX2J5dGVzKHMpLCB0eXBlb2Ygb2ZzPT1cIm51bWJlclwiP29mczpvZnNbMF0pO1xuICByZXR1cm4gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX3JlYWRlcihyZWFkZXIsIG9mcylcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQ2NF91bm1hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICBzaXplWzBdID0gODtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfYnl0ZXMgKHQpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X21hcnNoYWxcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfaW50NjRfbWFyc2hhbCh3cml0ZXIsIHYsIHNpemVzKSB7XG4gIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyAodik7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgODsgaSsrKSB3cml0ZXIud3JpdGUgKDgsIGJbaV0pO1xuICBzaXplc1swXSA9IDg7IHNpemVzWzFdID0gODtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnQzMl91bm1hcnNoYWxcbmZ1bmN0aW9uIGNhbWxfaW50MzJfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHNpemVbMF0gPSA0O1xuICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbFxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsKHJlYWRlciwgc2l6ZSl7XG4gIHN3aXRjaCAocmVhZGVyLnJlYWQ4dSAoKSkge1xuICBjYXNlIDE6XG4gICAgc2l6ZVswXSA9IDQ7XG4gICAgcmV0dXJuIHJlYWRlci5yZWFkMzJzICgpO1xuICBjYXNlIDI6XG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBuYXRpdmUgaW50ZWdlciB2YWx1ZSB0b28gbGFyZ2VcIik7XG4gIGRlZmF1bHQ6IGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaWxsLWZvcm1lZCBuYXRpdmUgaW50ZWdlclwiKTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdW5tYXJzaGFsLCBjYW1sX2ludDY0X21hcnNoYWwsIGNhbWxfaW50NjRfY29tcGFyZSwgY2FtbF9pbnQ2NF9oYXNoXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX3VubWFyc2hhbCwgY2FtbF9uYXRpdmVpbnRfdW5tYXJzaGFsXG4vL1JlcXVpcmVzOiBjYW1sX2JhX3NlcmlhbGl6ZSwgY2FtbF9iYV9kZXNlcmlhbGl6ZSwgY2FtbF9iYV9jb21wYXJlLCBjYW1sX2JhX2hhc2hcbnZhciBjYW1sX2N1c3RvbV9vcHMgPVxuICAgIHtcIl9qXCI6IHtcbiAgICAgIGRlc2VyaWFsaXplIDogY2FtbF9pbnQ2NF91bm1hcnNoYWwsXG4gICAgICBzZXJpYWxpemUgIDogY2FtbF9pbnQ2NF9tYXJzaGFsLFxuICAgICAgZml4ZWRfbGVuZ3RoIDogOCxcbiAgICAgIGNvbXBhcmUgOiBjYW1sX2ludDY0X2NvbXBhcmUsXG4gICAgICBoYXNoIDogY2FtbF9pbnQ2NF9oYXNoXG4gICAgfSxcbiAgICAgXCJfaVwiOiB7XG4gICAgICAgZGVzZXJpYWxpemUgOiBjYW1sX2ludDMyX3VubWFyc2hhbCxcbiAgICAgICBmaXhlZF9sZW5ndGggOiA0LFxuICAgICB9LFxuICAgICBcIl9uXCI6IHtcbiAgICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfbmF0aXZlaW50X3VubWFyc2hhbCxcbiAgICAgICBmaXhlZF9sZW5ndGggOiA0LFxuICAgICB9LFxuICAgICBcIl9iaWdhcnJheVwiOntcbiAgICAgICBkZXNlcmlhbGl6ZSA6IChmdW5jdGlvbiAocmVhZGVyLCBzeikge3JldHVybiBjYW1sX2JhX2Rlc2VyaWFsaXplIChyZWFkZXIsc3osXCJfYmlnYXJyYXlcIil9KSxcbiAgICAgICBzZXJpYWxpemUgOiBjYW1sX2JhX3NlcmlhbGl6ZSxcbiAgICAgICBjb21wYXJlIDogY2FtbF9iYV9jb21wYXJlLFxuICAgICAgIGhhc2g6IGNhbWxfYmFfaGFzaCxcbiAgICAgfSxcbiAgICAgXCJfYmlnYXJyMDJcIjp7XG4gICAgICAgZGVzZXJpYWxpemUgOiAoZnVuY3Rpb24gKHJlYWRlciwgc3opIHtyZXR1cm4gY2FtbF9iYV9kZXNlcmlhbGl6ZSAocmVhZGVyLHN6LFwiX2JpZ2FycjAyXCIpfSksXG4gICAgICAgc2VyaWFsaXplIDogY2FtbF9iYV9zZXJpYWxpemUsXG4gICAgICAgY29tcGFyZSA6IGNhbWxfYmFfY29tcGFyZSxcbiAgICAgICBoYXNoOiBjYW1sX2JhX2hhc2gsXG4gICAgIH1cbiAgICB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuLy9SZXF1aXJlczogY2FtbF9mbG9hdF9vZl9ieXRlcywgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiB6c3RkX2RlY29tcHJlc3Ncbi8vUmVxdWlyZXM6IFVJbnQ4QXJyYXlSZWFkZXJcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXIocmVhZGVyLCBvZnMpIHtcbiAgZnVuY3Rpb24gcmVhZHZscShvdmVyZmxvdykge1xuICAgIHZhciBjID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgIHZhciBuID0gYyAmIDB4N0Y7XG4gICAgd2hpbGUgKChjICYgMHg4MCkgIT0gMCkge1xuICAgICAgYyA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBuNyA9IG4gPDwgNztcbiAgICAgIGlmIChuICE9IG43ID4+IDcpIG92ZXJmbG93WzBdID0gdHJ1ZTtcbiAgICAgIG4gPSBuNyB8IChjICYgMHg3Rik7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9XG4gIHZhciBtYWdpYyA9IHJlYWRlci5yZWFkMzJ1ICgpXG4gIHN3aXRjaChtYWdpYyl7XG4gIGNhc2UgMHg4NDk1QTZCRTogLyogSW50ZXh0X21hZ2ljX251bWJlcl9zbWFsbCAqL1xuICAgIHZhciBoZWFkZXJfbGVuID0gMjA7XG4gICAgdmFyIGNvbXByZXNzZWQgPSAwO1xuICAgIHZhciBkYXRhX2xlbiA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgIHZhciB1bmNvbXByZXNzZWRfZGF0YV9sZW4gPSBkYXRhX2xlbjtcbiAgICB2YXIgbnVtX29iamVjdHMgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICB2YXIgX3NpemVfMzIgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICB2YXIgX3NpemVfNjQgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICBicmVha1xuICBjYXNlIDB4ODQ5NUE2QkQ6IC8qIEludGV4dF9tYWdpY19udW1iZXJfY29tcHJlc3NlZCAqL1xuICAgIHZhciBoZWFkZXJfbGVuID0gcmVhZGVyLnJlYWQ4dSgpICYgMHgzRjtcbiAgICB2YXIgY29tcHJlc3NlZCA9IDE7XG4gICAgdmFyIG92ZXJmbG93ID0gW2ZhbHNlXTtcbiAgICB2YXIgZGF0YV9sZW4gPSByZWFkdmxxKG92ZXJmbG93KTtcbiAgICB2YXIgdW5jb21wcmVzc2VkX2RhdGFfbGVuID0gcmVhZHZscShvdmVyZmxvdyk7XG4gICAgdmFyIG51bV9vYmplY3RzID0gcmVhZHZscShvdmVyZmxvdyk7XG4gICAgdmFyIF9zaXplXzMyID0gcmVhZHZscSAob3ZlcmZsb3cpO1xuICAgIHZhciBfc2l6ZV82NCA9IHJlYWR2bHEgKG92ZXJmbG93KTtcbiAgICBpZihvdmVyZmxvd1swXSl7XG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fcmVhZGVyOiBvYmplY3QgdG9vIGxhcmdlIHRvIGJlIHJlYWQgYmFjayBvbiB0aGlzIHBsYXRmb3JtXCIpO1xuICAgIH1cbiAgICBicmVha1xuICBjYXNlIDB4ODQ5NUE2QkY6IC8qIEludGV4dF9tYWdpY19udW1iZXJfYmlnICovXG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXI6IG9iamVjdCB0b28gbGFyZ2UgdG8gYmUgcmVhZCBiYWNrIG9uIGEgMzItYml0IHBsYXRmb3JtXCIpO1xuICAgIGJyZWFrXG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9mYWlsd2l0aChcImNhbWxfaW5wdXRfdmFsdWVfZnJvbV9yZWFkZXI6IGJhZCBvYmplY3RcIik7XG4gICAgYnJlYWs7XG4gIH1cbiAgdmFyIHN0YWNrID0gW107XG4gIHZhciBpbnRlcm5fb2JqX3RhYmxlID0gKG51bV9vYmplY3RzID4gMCk/W106bnVsbDtcbiAgdmFyIG9ial9jb3VudGVyID0gMDtcbiAgZnVuY3Rpb24gaW50ZXJuX3JlYyAocmVhZGVyKSB7XG4gICAgdmFyIGNvZGUgPSByZWFkZXIucmVhZDh1ICgpO1xuICAgIGlmIChjb2RlID49IDB4NDAgLypjc3QuUFJFRklYX1NNQUxMX0lOVCovKSB7XG4gICAgICBpZiAoY29kZSA+PSAweDgwIC8qY3N0LlBSRUZJWF9TTUFMTF9CTE9DSyovKSB7XG4gICAgICAgIHZhciB0YWcgPSBjb2RlICYgMHhGO1xuICAgICAgICB2YXIgc2l6ZSA9IChjb2RlID4+IDQpICYgMHg3O1xuICAgICAgICB2YXIgdiA9IFt0YWddO1xuICAgICAgICBpZiAoc2l6ZSA9PSAwKSByZXR1cm4gdjtcbiAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICBzdGFjay5wdXNoKHYsIHNpemUpO1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZVxuICAgICAgICByZXR1cm4gKGNvZGUgJiAweDNGKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGNvZGUgPj0gMHgyMC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcgKi8pIHtcbiAgICAgICAgdmFyIGxlbiA9IGNvZGUgJiAweDFGO1xuICAgICAgICB2YXIgdiA9IHJlYWRlci5yZWFkc3RyIChsZW4pO1xuICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgIHJldHVybiB2O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoKGNvZGUpIHtcbiAgICAgICAgY2FzZSAweDAwOiAvL2NzdC5DT0RFX0lOVDg6XG4gICAgICAgICAgcmV0dXJuIHJlYWRlci5yZWFkOHMgKCk7XG4gICAgICAgIGNhc2UgMHgwMTogLy9jc3QuQ09ERV9JTlQxNjpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQxNnMgKCk7XG4gICAgICAgIGNhc2UgMHgwMjogLy9jc3QuQ09ERV9JTlQzMjpcbiAgICAgICAgICByZXR1cm4gcmVhZGVyLnJlYWQzMnMgKCk7XG4gICAgICAgIGNhc2UgMHgwMzogLy9jc3QuQ09ERV9JTlQ2NDpcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwiaW5wdXRfdmFsdWU6IGludGVnZXIgdG9vIGxhcmdlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MDQ6IC8vY3N0LkNPREVfU0hBUkVEODpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICBpZihjb21wcmVzc2VkID09IDApIG9mZnNldCA9IG9ial9jb3VudGVyIC0gb2Zmc2V0O1xuICAgICAgICAgIHJldHVybiBpbnRlcm5fb2JqX3RhYmxlW29mZnNldF07XG4gICAgICAgIGNhc2UgMHgwNTogLy9jc3QuQ09ERV9TSEFSRUQxNjpcbiAgICAgICAgICB2YXIgb2Zmc2V0ID0gcmVhZGVyLnJlYWQxNnUgKCk7XG4gICAgICAgICAgaWYoY29tcHJlc3NlZCA9PSAwKSBvZmZzZXQgPSBvYmpfY291bnRlciAtIG9mZnNldDtcbiAgICAgICAgICByZXR1cm4gaW50ZXJuX29ial90YWJsZVtvZmZzZXRdO1xuICAgICAgICBjYXNlIDB4MDY6IC8vY3N0LkNPREVfU0hBUkVEMzI6XG4gICAgICAgICAgdmFyIG9mZnNldCA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgIGlmKGNvbXByZXNzZWQgPT0gMCkgb2Zmc2V0ID0gb2JqX2NvdW50ZXIgLSBvZmZzZXQ7XG4gICAgICAgICAgcmV0dXJuIGludGVybl9vYmpfdGFibGVbb2Zmc2V0XTtcbiAgICAgICAgY2FzZSAweDA4OiAvL2NzdC5DT0RFX0JMT0NLMzI6XG4gICAgICAgICAgdmFyIGhlYWRlciA9IHJlYWRlci5yZWFkMzJ1ICgpO1xuICAgICAgICAgIHZhciB0YWcgPSBoZWFkZXIgJiAweEZGO1xuICAgICAgICAgIHZhciBzaXplID0gaGVhZGVyID4+IDEwO1xuICAgICAgICAgIHZhciB2ID0gW3RhZ107XG4gICAgICAgICAgaWYgKHNpemUgPT0gMCkgcmV0dXJuIHY7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgxMzogLy9jc3QuQ09ERV9CTE9DSzY0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGRhdGEgYmxvY2sgdG9vIGxhcmdlXCIpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDB4MDk6IC8vY3N0LkNPREVfU1RSSU5HODpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gcmVhZGVyLnJlYWRzdHIgKGxlbik7XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MEE6IC8vY3N0LkNPREVfU1RSSU5HMzI6XG4gICAgICAgICAgdmFyIGxlbiA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgICAgdmFyIHYgPSByZWFkZXIucmVhZHN0ciAobGVuKTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwQzogLy9jc3QuQ09ERV9ET1VCTEVfTElUVExFOlxuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgODtpKyspIHRbNyAtIGldID0gcmVhZGVyLnJlYWQ4dSAoKTtcbiAgICAgICAgICB2YXIgdiA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBCOiAvL2NzdC5DT0RFX0RPVUJMRV9CSUc6XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwO2kgPCA4O2krKykgdFtpXSA9IHJlYWRlci5yZWFkOHUgKCk7XG4gICAgICAgICAgdmFyIHYgPSBjYW1sX2Zsb2F0X29mX2J5dGVzICh0KTtcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgcmV0dXJuIHY7XG4gICAgICAgIGNhc2UgMHgwRTogLy9jc3QuQ09ERV9ET1VCTEVfQVJSQVk4X0xJVFRMRTpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICAgICAgICBpZiAoaW50ZXJuX29ial90YWJsZSkgaW50ZXJuX29ial90YWJsZVtvYmpfY291bnRlcisrXSA9IHY7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbNyAtIGpdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdltpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBEOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWThfQklHOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgdmFyIHYgPSBuZXcgQXJyYXkobGVuKzEpO1xuICAgICAgICAgIHZbMF0gPSAyNTQ7XG4gICAgICAgICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICBmb3IgKHZhciBpID0gMTtpIDw9IGxlbjtpKyspIHtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgICAgICAgIHYgW2ldID0gY2FtbF9mbG9hdF9vZl9ieXRlcyAodCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBjYXNlIDB4MDc6IC8vY3N0LkNPREVfRE9VQkxFX0FSUkFZMzJfTElUVExFOlxuICAgICAgICAgIHZhciBsZW4gPSByZWFkZXIucmVhZDMydSgpO1xuICAgICAgICAgIHZhciB2ID0gbmV3IEFycmF5KGxlbisxKTtcbiAgICAgICAgICB2WzBdID0gMjU0O1xuICAgICAgICAgIGlmIChpbnRlcm5fb2JqX3RhYmxlKSBpbnRlcm5fb2JqX3RhYmxlW29ial9jb3VudGVyKytdID0gdjtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbNyAtIGpdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgICAgICAgdltpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDBGOiAvL2NzdC5DT0RFX0RPVUJMRV9BUlJBWTMyX0JJRzpcbiAgICAgICAgICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgICAgICAgICB2YXIgdiA9IG5ldyBBcnJheShsZW4rMSk7XG4gICAgICAgICAgdlswXSA9IDI1NDtcbiAgICAgICAgICB2YXIgdCA9IG5ldyBBcnJheSg4KTs7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDE7aSA8PSBsZW47aSsrKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDtqIDwgODtqKyspIHRbal0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgICAgICAgICB2IFtpXSA9IGNhbWxfZmxvYXRfb2ZfYnl0ZXMgKHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgY2FzZSAweDEwOiAvL2NzdC5DT0RFX0NPREVQT0lOVEVSOlxuICAgICAgICBjYXNlIDB4MTE6IC8vY3N0LkNPREVfSU5GSVhQT0lOVEVSOlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGNvZGUgcG9pbnRlclwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAweDEyOiAvL2NzdC5DT0RFX0NVU1RPTTpcbiAgICAgICAgY2FzZSAweDE4OiAvL2NzdC5DT0RFX0NVU1RPTV9MRU46XG4gICAgICAgIGNhc2UgMHgxOTogLy9jc3QuQ09ERV9DVVNUT01fRklYRUQ6XG4gICAgICAgICAgdmFyIGMsIHMgPSBcIlwiO1xuICAgICAgICAgIHdoaWxlICgoYyA9IHJlYWRlci5yZWFkOHUgKCkpICE9IDApIHMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSAoYyk7XG4gICAgICAgICAgdmFyIG9wcyA9IGNhbWxfY3VzdG9tX29wc1tzXTtcbiAgICAgICAgICB2YXIgZXhwZWN0ZWRfc2l6ZTtcbiAgICAgICAgICBpZighb3BzKVxuICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB1bmtub3duIGN1c3RvbSBibG9jayBpZGVudGlmaWVyXCIpO1xuICAgICAgICAgIHN3aXRjaChjb2RlKXtcbiAgICAgICAgICBjYXNlIDB4MTI6IC8vIGNzdC5DT0RFX0NVU1RPTSAoZGVwcmVjYXRlZClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMHgxOTogLy8gY3N0LkNPREVfQ1VTVE9NX0ZJWEVEXG4gICAgICAgICAgICBpZighb3BzLmZpeGVkX2xlbmd0aClcbiAgICAgICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBleHBlY3RlZCBhIGZpeGVkLXNpemUgY3VzdG9tIGJsb2NrXCIpO1xuICAgICAgICAgICAgZXhwZWN0ZWRfc2l6ZSA9IG9wcy5maXhlZF9sZW5ndGg7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDB4MTg6IC8vIGNzdC5DT0RFX0NVU1RPTV9MRU5cbiAgICAgICAgICAgIGV4cGVjdGVkX3NpemUgPSByZWFkZXIucmVhZDMydSAoKTtcbiAgICAgICAgICAgIC8vIFNraXAgc2l6ZTY0XG4gICAgICAgICAgICByZWFkZXIucmVhZDMycygpOyByZWFkZXIucmVhZDMycygpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBvbGRfcG9zID0gcmVhZGVyLmk7XG4gICAgICAgICAgdmFyIHNpemUgPSBbMF07XG4gICAgICAgICAgdmFyIHYgPSBvcHMuZGVzZXJpYWxpemUocmVhZGVyLCBzaXplKTtcbiAgICAgICAgICBpZihleHBlY3RlZF9zaXplICE9IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICBpZihleHBlY3RlZF9zaXplICE9IHNpemVbMF0pXG4gICAgICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogaW5jb3JyZWN0IGxlbmd0aCBvZiBzZXJpYWxpemVkIGN1c3RvbSBibG9ja1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGludGVybl9vYmpfdGFibGUpIGludGVybl9vYmpfdGFibGVbb2JqX2NvdW50ZXIrK10gPSB2O1xuICAgICAgICAgIHJldHVybiB2O1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNhbWxfZmFpbHdpdGggKFwiaW5wdXRfdmFsdWU6IGlsbC1mb3JtZWQgbWVzc2FnZVwiKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZihjb21wcmVzc2VkKSB7XG4gICAgdmFyIGRhdGEgPSByZWFkZXIucmVhZHVpbnQ4YXJyYXkoZGF0YV9sZW4pO1xuICAgIHZhciByZXMgPSBuZXcgVWludDhBcnJheSh1bmNvbXByZXNzZWRfZGF0YV9sZW4pO1xuICAgIHZhciByZXMgPSB6c3RkX2RlY29tcHJlc3MoZGF0YSwgcmVzKTtcbiAgICB2YXIgcmVhZGVyID0gbmV3IFVJbnQ4QXJyYXlSZWFkZXIocmVzLCAwKTtcbiAgfVxuICB2YXIgcmVzID0gaW50ZXJuX3JlYyAocmVhZGVyKTtcbiAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHtcbiAgICB2YXIgc2l6ZSA9IHN0YWNrLnBvcCgpO1xuICAgIHZhciB2ID0gc3RhY2sucG9wKCk7XG4gICAgdmFyIGQgPSB2Lmxlbmd0aDtcbiAgICBpZiAoZCA8IHNpemUpIHN0YWNrLnB1c2godiwgc2l6ZSk7XG4gICAgdltkXSA9IGludGVybl9yZWMgKHJlYWRlcik7XG4gIH1cbiAgaWYgKHR5cGVvZiBvZnMhPVwibnVtYmVyXCIpIG9mc1swXSA9IHJlYWRlci5pO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemVcbi8vVmVyc2lvbjogPCA1LjEuMFxudmFyIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSA9IDIwXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZVxuLy9WZXJzaW9uOiA+PSA1LjEuMFxudmFyIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSA9IDE2XG5cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21hcnNoYWxfZGF0YV9zaXplIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfYnl0ZXNfdW5zYWZlX2dldFxuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuLy9SZXF1aXJlczogVUludDhBcnJheVJlYWRlclxuLy9SZXF1aXJlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG5mdW5jdGlvbiBjYW1sX21hcnNoYWxfZGF0YV9zaXplIChzLCBvZnMpIHtcbiAgdmFyIHIgPSBuZXcgVUludDhBcnJheVJlYWRlcihjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKHMpLCBvZnMpO1xuICBmdW5jdGlvbiByZWFkdmxxKG92ZXJmbG93KSB7XG4gICAgdmFyIGMgPSByLnJlYWQ4dSgpO1xuICAgIHZhciBuID0gYyAmIDB4N0Y7XG4gICAgd2hpbGUgKChjICYgMHg4MCkgIT0gMCkge1xuICAgICAgYyA9IHIucmVhZDh1KCk7XG4gICAgICB2YXIgbjcgPSBuIDw8IDc7XG4gICAgICBpZiAobiAhPSBuNyA+PiA3KSBvdmVyZmxvd1swXSA9IHRydWU7XG4gICAgICBuID0gbjcgfCAoYyAmIDB4N0YpO1xuICAgIH1cbiAgICByZXR1cm4gbjtcbiAgfVxuXG4gIHN3aXRjaChyLnJlYWQzMnUoKSl7XG4gIGNhc2UgMHg4NDk1QTZCRTogLyogSW50ZXh0X21hZ2ljX251bWJlcl9zbWFsbCAqL1xuICAgIHZhciBoZWFkZXJfbGVuID0gMjA7XG4gICAgdmFyIGRhdGFfbGVuID0gci5yZWFkMzJ1KCk7XG4gICAgYnJlYWs7XG4gIGNhc2UgMHg4NDk1QTZCRDogLyogSW50ZXh0X21hZ2ljX251bWJlcl9jb21wcmVzc2VkICovXG4gICAgdmFyIGhlYWRlcl9sZW4gPSByLnJlYWQ4dSgpICYgMHgzRjtcbiAgICB2YXIgb3ZlcmZsb3cgPSBbZmFsc2VdO1xuICAgIHZhciBkYXRhX2xlbiA9IHJlYWR2bHEob3ZlcmZsb3cpO1xuICAgIGlmKG92ZXJmbG93WzBdKXtcbiAgICAgIGNhbWxfZmFpbHdpdGgoXCJNYXJzaGFsLmRhdGFfc2l6ZTogb2JqZWN0IHRvbyBsYXJnZSB0byBiZSByZWFkIGJhY2sgb24gdGhpcyBwbGF0Zm9ybVwiKTtcbiAgICB9XG4gICAgYnJlYWtcbiAgY2FzZSAweDg0OTVBNkJGOiAvKiBJbnRleHRfbWFnaWNfbnVtYmVyX2JpZyAqL1xuICBkZWZhdWx0OlxuICAgIGNhbWxfZmFpbHdpdGgoXCJNYXJzaGFsLmRhdGFfc2l6ZTogYmFkIG9iamVjdFwiKTtcbiAgICBicmVha1xuICB9XG4gIHJldHVybiBoZWFkZXJfbGVuIC0gY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplICsgZGF0YV9sZW47XG59XG5cbi8vUHJvdmlkZXM6IE1sT2JqZWN0VGFibGVcbnZhciBNbE9iamVjdFRhYmxlO1xuaWYgKHR5cGVvZiBnbG9iYWxUaGlzLldlYWtNYXAgPT09ICd1bmRlZmluZWQnKSB7XG4gIE1sT2JqZWN0VGFibGUgPSBmdW5jdGlvbigpIHtcbiAgICAvKiBwb2x5ZmlsbCAodXNpbmcgbGluZWFyIHNlYXJjaCkgKi9cbiAgICBmdW5jdGlvbiBOYWl2ZUxvb2t1cChvYmpzKSB7IHRoaXMub2JqcyA9IG9ianM7IH1cbiAgICBOYWl2ZUxvb2t1cC5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24odikge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9ianMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHRoaXMub2Jqc1tpXSA9PT0gdikgcmV0dXJuIGk7XG4gICAgICB9XG4gICAgfTtcbiAgICBOYWl2ZUxvb2t1cC5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24oKSB7XG4gICAgICAvLyBEbyBub3RoaW5nIGhlcmUuIFtNbE9iamVjdFRhYmxlLnN0b3JlXSB3aWxsIHB1c2ggdG8gW3RoaXMub2Jqc10gZGlyZWN0bHkuXG4gICAgfTtcblxuICAgIHJldHVybiBmdW5jdGlvbiBNbE9iamVjdFRhYmxlKCkge1xuICAgICAgdGhpcy5vYmpzID0gW107IHRoaXMubG9va3VwID0gbmV3IE5haXZlTG9va3VwKHRoaXMub2Jqcyk7XG4gICAgfTtcbiAgfSgpO1xufVxuZWxzZSB7XG4gIE1sT2JqZWN0VGFibGUgPSBmdW5jdGlvbiBNbE9iamVjdFRhYmxlKCkge1xuICAgIHRoaXMub2JqcyA9IFtdOyB0aGlzLmxvb2t1cCA9IG5ldyBnbG9iYWxUaGlzLldlYWtNYXAoKTtcbiAgfTtcbn1cblxuTWxPYmplY3RUYWJsZS5wcm90b3R5cGUuc3RvcmUgPSBmdW5jdGlvbih2KSB7XG4gIHRoaXMubG9va3VwLnNldCh2LCB0aGlzLm9ianMubGVuZ3RoKTtcbiAgdGhpcy5vYmpzLnB1c2godik7XG59XG5cbk1sT2JqZWN0VGFibGUucHJvdG90eXBlLnJlY2FsbCA9IGZ1bmN0aW9uKHYpIHtcbiAgdmFyIGkgPSB0aGlzLmxvb2t1cC5nZXQodik7XG4gIHJldHVybiAoaSA9PT0gdW5kZWZpbmVkKVxuICAgID8gdW5kZWZpbmVkIDogdGhpcy5vYmpzLmxlbmd0aCAtIGk7ICAgLyogaW5kZXggaXMgcmVsYXRpdmUgKi9cbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfYnl0ZXMsIGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXRcbi8vUmVxdWlyZXM6IE1sT2JqZWN0VGFibGUsIGNhbWxfbGlzdF90b19qc19hcnJheSwgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9pc19jb250aW51YXRpb25fdGFnXG52YXIgY2FtbF9vdXRwdXRfdmFsID0gZnVuY3Rpb24gKCl7XG4gIGZ1bmN0aW9uIFdyaXRlciAoKSB7IHRoaXMuY2h1bmsgPSBbXTsgfVxuICBXcml0ZXIucHJvdG90eXBlID0ge1xuICAgIGNodW5rX2lkeDoyMCwgYmxvY2tfbGVuOjAsIG9ial9jb3VudGVyOjAsIHNpemVfMzI6MCwgc2l6ZV82NDowLFxuICAgIHdyaXRlOmZ1bmN0aW9uIChzaXplLCB2YWx1ZSkge1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfYXQ6ZnVuY3Rpb24gKHBvcywgc2l6ZSwgdmFsdWUpIHtcbiAgICAgIHZhciBwb3MgPSBwb3M7XG4gICAgICBmb3IgKHZhciBpID0gc2l6ZSAtIDg7aSA+PSAwO2kgLT0gOClcbiAgICAgICAgdGhpcy5jaHVua1twb3MrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfY29kZTpmdW5jdGlvbiAoc2l6ZSwgY29kZSwgdmFsdWUpIHtcbiAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSBjb2RlO1xuICAgICAgZm9yICh2YXIgaSA9IHNpemUgLSA4O2kgPj0gMDtpIC09IDgpXG4gICAgICAgIHRoaXMuY2h1bmtbdGhpcy5jaHVua19pZHgrK10gPSAodmFsdWUgPj4gaSkgJiAweEZGO1xuICAgIH0sXG4gICAgd3JpdGVfc2hhcmVkOmZ1bmN0aW9uIChvZmZzZXQpIHtcbiAgICAgIGlmIChvZmZzZXQgPCAoMSA8PCA4KSkgdGhpcy53cml0ZV9jb2RlKDgsIDB4MDQgLypjc3QuQ09ERV9TSEFSRUQ4Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIGlmIChvZmZzZXQgPCAoMSA8PCAxNikpIHRoaXMud3JpdGVfY29kZSgxNiwgMHgwNSAvKmNzdC5DT0RFX1NIQVJFRDE2Ki8sIG9mZnNldCk7XG4gICAgICBlbHNlIHRoaXMud3JpdGVfY29kZSgzMiwgMHgwNiAvKmNzdC5DT0RFX1NIQVJFRDMyKi8sIG9mZnNldCk7XG4gICAgfSxcbiAgICBwb3M6ZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcy5jaHVua19pZHggfSxcbiAgICBmaW5hbGl6ZTpmdW5jdGlvbiAoKSB7XG4gICAgICB0aGlzLmJsb2NrX2xlbiA9IHRoaXMuY2h1bmtfaWR4IC0gMjA7XG4gICAgICB0aGlzLmNodW5rX2lkeCA9IDA7XG4gICAgICB0aGlzLndyaXRlICgzMiwgMHg4NDk1QTZCRSk7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5ibG9ja19sZW4pO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMub2JqX2NvdW50ZXIpO1xuICAgICAgdGhpcy53cml0ZSAoMzIsIHRoaXMuc2l6ZV8zMik7XG4gICAgICB0aGlzLndyaXRlICgzMiwgdGhpcy5zaXplXzY0KTtcbiAgICAgIHJldHVybiB0aGlzLmNodW5rO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZnVuY3Rpb24gKHYsIGZsYWdzKSB7XG4gICAgZmxhZ3MgPSBjYW1sX2xpc3RfdG9fanNfYXJyYXkoZmxhZ3MpO1xuXG4gICAgdmFyIG5vX3NoYXJpbmcgPSAoZmxhZ3MuaW5kZXhPZigwIC8qTWFyc2hhbC5Ob19zaGFyaW5nKi8pICE9PSAtMSksXG4gICAgICAgIGNsb3N1cmVzID0gIChmbGFncy5pbmRleE9mKDEgLypNYXJzaGFsLkNsb3N1cmVzKi8pICE9PSAtMSk7XG4gICAgLyogTWFyc2hhbC5Db21wYXRfMzIgaXMgcmVkdW5kYW50IHNpbmNlIGludGVnZXJzIGFyZSAzMi1iaXQgYW55d2F5ICovXG5cbiAgICBpZiAoY2xvc3VyZXMpXG4gICAgICBjb25zb2xlLndhcm4oXCJpbiBjYW1sX291dHB1dF92YWw6IGZsYWcgTWFyc2hhbC5DbG9zdXJlcyBpcyBub3Qgc3VwcG9ydGVkLlwiKTtcblxuICAgIHZhciB3cml0ZXIgPSBuZXcgV3JpdGVyICgpO1xuICAgIHZhciBzdGFjayA9IFtdO1xuICAgIHZhciBpbnRlcm5fb2JqX3RhYmxlID0gbm9fc2hhcmluZyA/IG51bGwgOiBuZXcgTWxPYmplY3RUYWJsZSgpO1xuXG4gICAgZnVuY3Rpb24gbWVtbyh2KSB7XG4gICAgICBpZiAobm9fc2hhcmluZykgcmV0dXJuIGZhbHNlO1xuICAgICAgdmFyIGV4aXN0aW5nX29mZnNldCA9IGludGVybl9vYmpfdGFibGUucmVjYWxsKHYpO1xuICAgICAgaWYgKGV4aXN0aW5nX29mZnNldCkgeyB3cml0ZXIud3JpdGVfc2hhcmVkKGV4aXN0aW5nX29mZnNldCk7IHJldHVybiB0cnVlOyB9XG4gICAgICBlbHNlIHsgaW50ZXJuX29ial90YWJsZS5zdG9yZSh2KTsgcmV0dXJuIGZhbHNlOyB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZXJuX3JlYyAodikge1xuICAgICAgaWYgKHYuY2FtbF9jdXN0b20pIHtcbiAgICAgICAgaWYgKG1lbW8odikpIHJldHVybjtcbiAgICAgICAgdmFyIG5hbWUgPSB2LmNhbWxfY3VzdG9tO1xuICAgICAgICB2YXIgb3BzID0gY2FtbF9jdXN0b21fb3BzW25hbWVdO1xuICAgICAgICB2YXIgc3pfMzJfNjQgPSBbMCwwXTtcbiAgICAgICAgaWYoIW9wcy5zZXJpYWxpemUpXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQ3VzdG9tKVwiKTtcbiAgICAgICAgaWYob3BzLmZpeGVkX2xlbmd0aCA9PSB1bmRlZmluZWQpe1xuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgxOCAvKmNzdC5DT0RFX0NVU1RPTV9MRU4qLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgaGVhZGVyX3BvcyA9IHdyaXRlci5wb3MgKCk7XG4gICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgb3BzLnNlcmlhbGl6ZSh3cml0ZXIsIHYsIHN6XzMyXzY0KTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcywgMzIsIHN6XzMyXzY0WzBdKTtcbiAgICAgICAgICB3cml0ZXIud3JpdGVfYXQoaGVhZGVyX3BvcyArIDQsIDMyLCAwKTsgLy8gemVyb1xuICAgICAgICAgIHdyaXRlci53cml0ZV9hdChoZWFkZXJfcG9zICsgOCwgMzIsIHN6XzMyXzY0WzFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIDB4MTkgLypjc3QuQ09ERV9DVVNUT01fRklYRUQqLyk7XG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuYW1lLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBuYW1lLmNoYXJDb2RlQXQoaSkpO1xuICAgICAgICAgIHdyaXRlci53cml0ZSg4LCAwKTtcbiAgICAgICAgICB2YXIgb2xkX3BvcyA9IHdyaXRlci5wb3MoKTtcbiAgICAgICAgICBvcHMuc2VyaWFsaXplKHdyaXRlciwgdiwgc3pfMzJfNjQpO1xuICAgICAgICAgIGlmIChvcHMuZml4ZWRfbGVuZ3RoICE9IHdyaXRlci5wb3MoKSAtIG9sZF9wb3MpXG4gICAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBpbmNvcnJlY3QgZml4ZWQgc2l6ZXMgc3BlY2lmaWVkIGJ5IFwiICsgbmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVyLnNpemVfMzIgKz0gMiArICgoc3pfMzJfNjRbMF0gKyAzKSA+PiAyKTtcbiAgICAgICAgd3JpdGVyLnNpemVfNjQgKz0gMiArICgoc3pfMzJfNjRbMV0gKyA3KSA+PiAzKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSAmJiB2WzBdID09PSAodlswXXwwKSkge1xuICAgICAgICBpZiAodlswXSA9PSAyNTEpIHtcbiAgICAgICAgICBjYW1sX2ZhaWx3aXRoKFwib3V0cHV0X3ZhbHVlOiBhYnN0cmFjdCB2YWx1ZSAoQWJzdHJhY3QpXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWcodlswXSkpXG4gICAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwib3V0cHV0X3ZhbHVlOiBjb250aW51YXRpb24gdmFsdWVcIik7XG4gICAgICAgIGlmICh2Lmxlbmd0aCA+IDEgJiYgbWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICBpZiAodlswXSA8IDE2ICYmIHYubGVuZ3RoIC0gMSA8IDgpXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDgwIC8qY3N0LlBSRUZJWF9TTUFMTF9CTE9DSyovICsgdlswXSArICgodi5sZW5ndGggLSAxKTw8NCkpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDggLypjc3QuQ09ERV9CTE9DSzMyKi8sICgodi5sZW5ndGgtMSkgPDwgMTApIHwgdlswXSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IHYubGVuZ3RoO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSB2Lmxlbmd0aDtcbiAgICAgICAgaWYgKHYubGVuZ3RoID4gMSkgc3RhY2sucHVzaCAodiwgMSk7XG4gICAgICB9IGVsc2UgaWYgKGNhbWxfaXNfbWxfYnl0ZXModikpIHtcbiAgICAgICAgaWYoIShjYW1sX2lzX21sX2J5dGVzKGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMoXCJcIikpKSkge1xuICAgICAgICAgIGNhbWxfZmFpbHdpdGgoXCJvdXRwdXRfdmFsdWU6IFtCeXRlcy50XSBjYW5ub3Qgc2FmZWx5IGJlIG1hcnNoYWxlZCB3aXRoIFstLWVuYWJsZSB1c2UtanMtc3RyaW5nXVwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWVtbyh2KSkgcmV0dXJuO1xuICAgICAgICB2YXIgbGVuID0gY2FtbF9tbF9ieXRlc19sZW5ndGgodik7XG4gICAgICAgIGlmIChsZW4gPCAweDIwKVxuICAgICAgICAgIHdyaXRlci53cml0ZSAoOCwgMHgyMCAvKmNzdC5QUkVGSVhfU01BTExfU1RSSU5HKi8gKyBsZW4pO1xuICAgICAgICBlbHNlIGlmIChsZW4gPCAweDEwMClcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoOCwgMHgwOS8qY3N0LkNPREVfU1RSSU5HOCovLCBsZW4pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUgKDMyLCAweDBBIC8qY3N0LkNPREVfU1RSSU5HMzIqLywgbGVuKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7aSA8IGxlbjtpKyspXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCBjYW1sX2J5dGVzX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcodikpIHtcbiAgICAgICAgdmFyIGxlbiA9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCh2KTtcbiAgICAgICAgaWYgKGxlbiA8IDB4MjApXG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDIwIC8qY3N0LlBSRUZJWF9TTUFMTF9TVFJJTkcqLyArIGxlbik7XG4gICAgICAgIGVsc2UgaWYgKGxlbiA8IDB4MTAwKVxuICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlICg4LCAweDA5Lypjc3QuQ09ERV9TVFJJTkc4Ki8sIGxlbik7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSAoMzIsIDB4MEEgLypjc3QuQ09ERV9TVFJJTkczMiovLCBsZW4pO1xuICAgICAgICBmb3IgKHZhciBpID0gMDtpIDwgbGVuO2krKylcbiAgICAgICAgICB3cml0ZXIud3JpdGUgKDgsIGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQodixpKSk7XG4gICAgICAgIHdyaXRlci5zaXplXzMyICs9IDEgKyAoKChsZW4gKyA0KSAvIDQpfDApO1xuICAgICAgICB3cml0ZXIuc2l6ZV82NCArPSAxICsgKCgobGVuICsgOCkgLyA4KXwwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh2ICE9ICh2fDApKXtcbiAgICAgICAgICB2YXIgdHlwZV9vZl92ID0gdHlwZW9mIHY7XG4gICAgICAgICAgLy9cbiAgICAgICAgICAvLyBJZiBhIGZsb2F0IGhhcHBlbnMgdG8gYmUgYW4gaW50ZWdlciBpdCBpcyBzZXJpYWxpemVkIGFzIGFuIGludGVnZXJcbiAgICAgICAgICAvLyAoSnNfb2Zfb2NhbWwgY2Fubm90IHRlbGwgd2hldGhlciB0aGUgdHlwZSBvZiBhbiBpbnRlZ2VyIG51bWJlciBpc1xuICAgICAgICAgIC8vIGZsb2F0IG9yIGludGVnZXIuKSBUaGlzIGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBjcmFzaGVzIHdoZW5cbiAgICAgICAgICAvLyB1bm1hcnNoYWxsaW5nIHVzaW5nIHRoZSBzdGFuZGFyZCBydW50aW1lLiBJdCBzZWVtcyBiZXR0ZXIgdG9cbiAgICAgICAgICAvLyBzeXN0ZW1hdGljYWxseSBmYWlsIG9uIG1hcnNoYWxsaW5nLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gICAgICAgICAgaWYodHlwZV9vZl92ICE9IFwibnVtYmVyXCIpXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIm91dHB1dF92YWx1ZTogYWJzdHJhY3QgdmFsdWUgKFwiK3R5cGVfb2ZfditcIilcIik7XG4gICAgICAgICAgLy8gICAgICAgICAgdmFyIHQgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCh2KSk7XG4gICAgICAgICAgLy8gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAweDBCIC8qY3N0LkNPREVfRE9VQkxFX0JJRyovKTtcbiAgICAgICAgICAvLyAgICAgICAgICBmb3IodmFyIGkgPSAwOyBpPDg7IGkrKyl7d3JpdGVyLndyaXRlKDgsdFtpXSl9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodiA+PSAwICYmIHYgPCAweDQwKSB7XG4gICAgICAgICAgd3JpdGVyLndyaXRlICg4LCAwWDQwIC8qY3N0LlBSRUZJWF9TTUFMTF9JTlQqLyArIHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh2ID49IC0oMSA8PCA3KSAmJiB2IDwgKDEgPDwgNykpXG4gICAgICAgICAgICB3cml0ZXIud3JpdGVfY29kZSg4LCAweDAwIC8qY3N0LkNPREVfSU5UOCovLCB2KTtcbiAgICAgICAgICBlbHNlIGlmICh2ID49IC0oMSA8PCAxNSkgJiYgdiA8ICgxIDw8IDE1KSlcbiAgICAgICAgICAgIHdyaXRlci53cml0ZV9jb2RlKDE2LCAweDAxIC8qY3N0LkNPREVfSU5UMTYqLywgdik7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgd3JpdGVyLndyaXRlX2NvZGUoMzIsIDB4MDIgLypjc3QuQ09ERV9JTlQzMiovLCB2KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBleHRlcm5fcmVjICh2KTtcbiAgICB3aGlsZSAoc3RhY2subGVuZ3RoID4gMCkge1xuICAgICAgdmFyIGkgPSBzdGFjay5wb3AgKCk7XG4gICAgICB2YXIgdiA9IHN0YWNrLnBvcCAoKTtcbiAgICAgIGlmIChpICsgMSA8IHYubGVuZ3RoKSBzdGFjay5wdXNoICh2LCBpICsgMSk7XG4gICAgICBleHRlcm5fcmVjICh2W2ldKTtcbiAgICB9XG4gICAgaWYgKGludGVybl9vYmpfdGFibGUpIHdyaXRlci5vYmpfY291bnRlciA9IGludGVybl9vYmpfdGFibGUub2Jqcy5sZW5ndGg7XG4gICAgd3JpdGVyLmZpbmFsaXplKCk7XG4gICAgcmV0dXJuIHdyaXRlci5jaHVuaztcbiAgfVxufSAoKTtcblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVfdG9fc3RyaW5nIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZyAodiwgZmxhZ3MpIHtcbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J5dGVzIG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbCwgY2FtbF9ieXRlc19vZl9hcnJheVxuZnVuY3Rpb24gY2FtbF9vdXRwdXRfdmFsdWVfdG9fYnl0ZXMgKHYsIGZsYWdzKSB7XG4gIHJldHVybiBjYW1sX2J5dGVzX29mX2FycmF5IChjYW1sX291dHB1dF92YWwgKHYsIGZsYWdzKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlclxuLy9SZXF1aXJlczogY2FtbF9vdXRwdXRfdmFsLCBjYW1sX2ZhaWx3aXRoLCBjYW1sX2JsaXRfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlciAocywgb2ZzLCBsZW4sIHYsIGZsYWdzKSB7XG4gIHZhciB0ID0gY2FtbF9vdXRwdXRfdmFsICh2LCBmbGFncyk7XG4gIGlmICh0Lmxlbmd0aCA+IGxlbikgY2FtbF9mYWlsd2l0aCAoXCJNYXJzaGFsLnRvX2J1ZmZlcjogYnVmZmVyIG92ZXJmbG93XCIpO1xuICBjYW1sX2JsaXRfYnl0ZXModCwgMCwgcywgb2ZzLCB0Lmxlbmd0aCk7XG4gIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDE0IErDqXLDtG1lIFZvdWlsbG9uLCBIdWdvIEhldXphcmRcbi8vIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBJb1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3N5c19mZHNcbnZhciBjYW1sX3N5c19mZHMgPSBuZXcgQXJyYXkoMyk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3lzX2Nsb3NlXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19mZHNcbmZ1bmN0aW9uIGNhbWxfc3lzX2Nsb3NlKGZkKSB7XG4gIHZhciBmaWxlID0gY2FtbF9zeXNfZmRzW2ZkXTtcbiAgaWYoZmlsZSkgZmlsZS5jbG9zZSgpO1xuICBkZWxldGUgY2FtbF9zeXNfZmRzW2ZkXTtcbiAgcmV0dXJuIDA7XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9zeXNfb3BlblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3Jcbi8vUmVxdWlyZXM6IE1sRmFrZUZkX291dFxuLy9SZXF1aXJlczogcmVzb2x2ZV9mc19kZXZpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGZzX25vZGVfc3VwcG9ydGVkXG4vL1JlcXVpcmVzOiBjYW1sX3N5c19mZHNcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX29wZW5fZm9yX25vZGVcbmZ1bmN0aW9uIGNhbWxfc3lzX29wZW5faW50ZXJuYWwoZmlsZSxpZHgpIHtcbiAgaWYoaWR4ID09IHVuZGVmaW5lZCl7XG4gICAgaWR4ID0gY2FtbF9zeXNfZmRzLmxlbmd0aDtcbiAgfVxuICBjYW1sX3N5c19mZHNbaWR4XSA9IGZpbGU7XG4gIHJldHVybiBpZHggfCAwO1xufVxuZnVuY3Rpb24gY2FtbF9zeXNfb3BlbiAobmFtZSwgZmxhZ3MsIF9wZXJtcykge1xuICB2YXIgZiA9IHt9O1xuICB3aGlsZShmbGFncyl7XG4gICAgc3dpdGNoKGZsYWdzWzFdKXtcbiAgICBjYXNlIDA6IGYucmRvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDE6IGYud3Jvbmx5ID0gMTticmVhaztcbiAgICBjYXNlIDI6IGYuYXBwZW5kID0gMTticmVhaztcbiAgICBjYXNlIDM6IGYuY3JlYXRlID0gMTticmVhaztcbiAgICBjYXNlIDQ6IGYudHJ1bmNhdGUgPSAxO2JyZWFrO1xuICAgIGNhc2UgNTogZi5leGNsID0gMTsgYnJlYWs7XG4gICAgY2FzZSA2OiBmLmJpbmFyeSA9IDE7YnJlYWs7XG4gICAgY2FzZSA3OiBmLnRleHQgPSAxO2JyZWFrO1xuICAgIGNhc2UgODogZi5ub25ibG9jayA9IDE7YnJlYWs7XG4gICAgfVxuICAgIGZsYWdzPWZsYWdzWzJdO1xuICB9XG4gIGlmKGYucmRvbmx5ICYmIGYud3Jvbmx5KVxuICAgIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKGNhbWxfanNieXRlc19vZl9zdHJpbmcobmFtZSkgKyBcIiA6IGZsYWdzIE9wZW5fcmRvbmx5IGFuZCBPcGVuX3dyb25seSBhcmUgbm90IGNvbXBhdGlibGVcIik7XG4gIGlmKGYudGV4dCAmJiBmLmJpbmFyeSlcbiAgICBjYW1sX3JhaXNlX3N5c19lcnJvcihjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG5hbWUpICsgXCIgOiBmbGFncyBPcGVuX3RleHQgYW5kIE9wZW5fYmluYXJ5IGFyZSBub3QgY29tcGF0aWJsZVwiKTtcbiAgdmFyIHJvb3QgPSByZXNvbHZlX2ZzX2RldmljZShuYW1lKTtcbiAgdmFyIGZpbGUgPSByb290LmRldmljZS5vcGVuKHJvb3QucmVzdCxmKTtcbiAgcmV0dXJuIGNhbWxfc3lzX29wZW5faW50ZXJuYWwgKGZpbGUsIHVuZGVmaW5lZCk7XG59XG4oZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBmaWxlKGZkLCBmbGFncykge1xuICAgIGlmKGZzX25vZGVfc3VwcG9ydGVkKCkpIHtcbiAgICAgIHJldHVybiBjYW1sX3N5c19vcGVuX2Zvcl9ub2RlKGZkLCBmbGFncyk7XG4gICAgfVxuICAgIGVsc2VcbiAgICAgIHJldHVybiBuZXcgTWxGYWtlRmRfb3V0KGZkLCBmbGFncylcbiAgfVxuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMCx7cmRvbmx5OjEsYWx0bmFtZTpcIi9kZXYvc3RkaW5cIixpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDApO1xuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMSx7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDEpO1xuICBjYW1sX3N5c19vcGVuX2ludGVybmFsKGZpbGUoMix7YnVmZmVyZWQ6Mix3cm9ubHk6MSxpc0NoYXJhY3RlckRldmljZTp0cnVlfSksIDIpO1xufSkoKVxuXG5cbi8vIG9jYW1sIENoYW5uZWxzXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9zZXRfY2hhbm5lbF9uYW1lKGNoYW5pZCwgbmFtZSkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgY2hhbi5uYW1lID0gbmFtZTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2hhbm5lbHNcbnZhciBjYW1sX21sX2NoYW5uZWxzID0gbmV3IEFycmF5KCk7XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3Rcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0X2NoYW5uZWxzX2xpc3QgKCkge1xuICB2YXIgbCA9IDA7XG4gIGZvcih2YXIgYyA9IDA7IGMgPCBjYW1sX21sX2NoYW5uZWxzLmxlbmd0aDsgYysrKXtcbiAgICBpZihjYW1sX21sX2NoYW5uZWxzW2NdICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3BlbmVkICYmIGNhbWxfbWxfY2hhbm5lbHNbY10ub3V0KVxuICAgICAgbD1bMCxjYW1sX21sX2NoYW5uZWxzW2NdLmZkLGxdO1xuICB9XG4gIHJldHVybiBsO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX291dFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9zeXNfZmRzXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvclxuLy9SZXF1aXJlczogY2FtbF9zeXNfb3BlblxuZnVuY3Rpb24gY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0IChmZCkge1xuICB2YXIgZmlsZSA9IGNhbWxfc3lzX2Zkc1tmZF07XG4gIGlmKGZpbGUuZmxhZ3MucmRvbmx5KSBjYW1sX3JhaXNlX3N5c19lcnJvcihcImZkIFwiKyBmZCArIFwiIGlzIHJlYWRvbmx5XCIpO1xuICB2YXIgYnVmZmVyZWQgPSAoZmlsZS5mbGFncy5idWZmZXJlZCAhPT0gdW5kZWZpbmVkKSA/IGZpbGUuZmxhZ3MuYnVmZmVyZWQgOiAxO1xuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmZpbGUsXG4gICAgb2Zmc2V0OmZpbGUuZmxhZ3MuYXBwZW5kP2ZpbGUubGVuZ3RoKCk6MCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6dHJ1ZSxcbiAgICBidWZmZXJfY3VycjowLFxuICAgIGJ1ZmZlcjpuZXcgVWludDhBcnJheSg2NTUzNiksXG4gICAgYnVmZmVyZWQ6YnVmZmVyZWRcbiAgfTtcbiAgY2FtbF9tbF9jaGFubmVsc1tjaGFubmVsLmZkXT1jaGFubmVsO1xuICByZXR1cm4gY2hhbm5lbC5mZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3JfaW5cbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfc3lzX2Zkc1xuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfc3lzX29wZW5cbmZ1bmN0aW9uIGNhbWxfbWxfb3Blbl9kZXNjcmlwdG9yX2luIChmZCkgIHtcbiAgdmFyIGZpbGUgPSBjYW1sX3N5c19mZHNbZmRdO1xuICBpZihmaWxlLmZsYWdzLndyb25seSkgY2FtbF9yYWlzZV9zeXNfZXJyb3IoXCJmZCBcIisgZmQgKyBcIiBpcyB3cml0ZW9ubHlcIik7XG4gIHZhciByZWZpbGwgPSBudWxsO1xuICB2YXIgY2hhbm5lbCA9IHtcbiAgICBmaWxlOmZpbGUsXG4gICAgb2Zmc2V0OmZpbGUuZmxhZ3MuYXBwZW5kP2ZpbGUubGVuZ3RoKCk6MCxcbiAgICBmZDpmZCxcbiAgICBvcGVuZWQ6dHJ1ZSxcbiAgICBvdXQ6IGZhbHNlLFxuICAgIGJ1ZmZlcl9jdXJyOjAsXG4gICAgYnVmZmVyX21heDowLFxuICAgIGJ1ZmZlcjpuZXcgVWludDhBcnJheSg2NTUzNiksXG4gICAgcmVmaWxsOnJlZmlsbFxuICB9O1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5uZWwuZmRdPWNoYW5uZWw7XG4gIHJldHVybiBjaGFubmVsLmZkO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG4vL0FsaWFzOiB3aW5fZmlsZWRlc2NyX29mX2NoYW5uZWxcbmZ1bmN0aW9uIGNhbWxfY2hhbm5lbF9kZXNjcmlwdG9yKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5mZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfYmluYXJ5X21vZGVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlKGNoYW5pZCxtb2RlKXtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGNoYW4uZmlsZS5mbGFncy50ZXh0ID0gIW1vZGVcbiAgY2hhbi5maWxlLmZsYWdzLmJpbmFyeSA9IG1vZGVcbiAgcmV0dXJuIDA7XG59XG5cbi8vSW5wdXQgZnJvbSBpbl9jaGFubmVsXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfY2xvc2VfY2hhbm5lbFxuLy9SZXF1aXJlczogY2FtbF9tbF9mbHVzaCwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9zeXNfY2xvc2VcbmZ1bmN0aW9uIGNhbWxfbWxfY2xvc2VfY2hhbm5lbCAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm9wZW5lZCA9IGZhbHNlO1xuICBjYW1sX3N5c19jbG9zZShjaGFuLmZkKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfY2hhbm5lbF9zaXplKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4uZmlsZS5sZW5ndGgoKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfb2ZfZmxvYXQsY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9jaGFubmVsX3NpemVfNjQoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9mbG9hdChjaGFuLmZpbGUubGVuZ3RoICgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9zZXRfY2hhbm5lbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0KGNoYW5pZCxmKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm91dHB1dCA9IChmdW5jdGlvbiAocykge2Yocyl9KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2NoYW5uZWxfcmVmaWxsXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzXG5mdW5jdGlvbiBjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbChjaGFuaWQsZikge1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0ucmVmaWxsID0gZjtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfcmVmaWxsXG4vL1JlcXVpcmVzOiBjYW1sX21sX3N0cmluZ19sZW5ndGgsIGNhbWxfdWludDhfYXJyYXlfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3JlZmlsbCAoY2hhbikge1xuICBpZihjaGFuLnJlZmlsbCAhPSBudWxsKXtcbiAgICB2YXIgc3RyID0gY2hhbi5yZWZpbGwoKTtcbiAgICB2YXIgc3RyX2EgPSBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyhzdHIpO1xuICAgIGlmIChzdHJfYS5sZW5ndGggPT0gMCkge1xuICAgICAgY2hhbi5yZWZpbGwgPSBudWxsXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYoY2hhbi5idWZmZXIubGVuZ3RoIDwgY2hhbi5idWZmZXJfbWF4ICsgc3RyX2EubGVuZ3RoKXtcbiAgICAgICAgdmFyIGIgPSBuZXcgVWludDhBcnJheShjaGFuLmJ1ZmZlcl9tYXggKyBzdHJfYS5sZW5ndGgpO1xuICAgICAgICBiLnNldChjaGFuLmJ1ZmZlcik7XG4gICAgICAgIGNoYW4uYnVmZmVyID0gYjtcbiAgICAgIH1cbiAgICAgIGNoYW4uYnVmZmVyLnNldChzdHJfYSxjaGFuLmJ1ZmZlcl9tYXgpO1xuICAgICAgY2hhbi5vZmZzZXQgKz0gc3RyX2EubGVuZ3RoO1xuICAgICAgY2hhbi5idWZmZXJfbWF4ICs9IHN0cl9hLmxlbmd0aDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFyIG5yZWFkID0gY2hhbi5maWxlLnJlYWQoY2hhbi5vZmZzZXQsIGNoYW4uYnVmZmVyLCBjaGFuLmJ1ZmZlcl9tYXgsIGNoYW4uYnVmZmVyLmxlbmd0aCAtIGNoYW4uYnVmZmVyX21heCk7XG4gICAgY2hhbi5vZmZzZXQgKz0gbnJlYWQ7XG4gICAgY2hhbi5idWZmZXJfbWF4ICs9IG5yZWFkO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfaW5wdXRfYmxvY2tcbi8vUmVxdWlyZXM6IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXNcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXQgKGNoYW5pZCwgYiwgaSwgbCkge1xuICB2YXIgYmEgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKGIpO1xuICByZXR1cm4gY2FtbF9tbF9pbnB1dF9ibG9jayhjaGFuaWQsIGJhLCBpLCBsKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X2Jsb2NrXG4vL1JlcXVpcmVzOiBjYW1sX3JlZmlsbCwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9ibG9jayAoY2hhbmlkLCBiYSwgaSwgbCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIG4gPSBsO1xuICB2YXIgYXZhaWwgPSBjaGFuLmJ1ZmZlcl9tYXggLSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICBpZihsIDw9IGF2YWlsKSB7XG4gICAgYmEuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIsY2hhbi5idWZmZXJfY3VyciArIGwpLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGw7XG4gIH1cbiAgZWxzZSBpZihhdmFpbCA+IDApIHtcbiAgICBiYS5zZXQoY2hhbi5idWZmZXIuc3ViYXJyYXkoY2hhbi5idWZmZXJfY3VycixjaGFuLmJ1ZmZlcl9jdXJyICsgYXZhaWwpLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGF2YWlsO1xuICAgIG4gPSBhdmFpbDtcbiAgfSBlbHNlIHtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICAgIGNhbWxfcmVmaWxsKGNoYW4pO1xuICAgIHZhciBhdmFpbCA9IGNoYW4uYnVmZmVyX21heCAtIGNoYW4uYnVmZmVyX2N1cnI7XG4gICAgaWYobiA+IGF2YWlsKSBuID0gYXZhaWw7XG4gICAgYmEuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIsY2hhbi5idWZmZXJfY3VyciArIG4pLCBpKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IG47XG4gIH1cbiAgcmV0dXJuIG4gfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lucHV0X3ZhbHVlXG4vL1JlcXVpcmVzOiBjYW1sX21hcnNoYWxfZGF0YV9zaXplLCBjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXMsIGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX2J5dGVzX29mX2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX3JlZmlsbCwgY2FtbF9mYWlsd2l0aCwgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZVxuLy9SZXF1aXJlczogY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplXG5mdW5jdGlvbiBjYW1sX2lucHV0X3ZhbHVlIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIHZhciBoZWFkZXIgPSBuZXcgVWludDhBcnJheShjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBmdW5jdGlvbiBibG9jayhidWZmZXIsIG9mZnNldCwgbikge1xuICAgIHZhciByID0gMDtcbiAgICB3aGlsZShyIDwgbil7XG4gICAgICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heCl7XG4gICAgICAgIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICAgICAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICAgICAgICBjYW1sX3JlZmlsbChjaGFuKTtcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heClcbiAgICAgICAgYnJlYWs7XG4gICAgICBidWZmZXJbb2Zmc2V0K3JdID0gY2hhbi5idWZmZXJbY2hhbi5idWZmZXJfY3Vycl07XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyKys7XG4gICAgICByKys7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG4gIHZhciByID0gYmxvY2soaGVhZGVyLCAwLCBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBpZihyID09IDApXG4gICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICBlbHNlIGlmIChyIDwgY2FtbF9tYXJzaGFsX2hlYWRlcl9zaXplKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdHJ1bmNhdGVkIG9iamVjdFwiKTtcbiAgdmFyIGxlbiA9IGNhbWxfbWFyc2hhbF9kYXRhX3NpemUgKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoaGVhZGVyKSwgMCk7XG4gIHZhciBidWYgPSBuZXcgVWludDhBcnJheShsZW4gKyBjYW1sX21hcnNoYWxfaGVhZGVyX3NpemUpO1xuICBidWYuc2V0KGhlYWRlciwwKTtcbiAgdmFyIHIgPSBibG9jayhidWYsIGNhbWxfbWFyc2hhbF9oZWFkZXJfc2l6ZSwgbGVuKVxuICBpZihyIDwgbGVuKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogdHJ1bmNhdGVkIG9iamVjdCBcIiArIHIgKyBcIiAgXCIgKyBsZW4pO1xuICB2YXIgb2Zmc2V0ID0gWzBdO1xuICB2YXIgcmVzID0gY2FtbF9pbnB1dF92YWx1ZV9mcm9tX2J5dGVzKGNhbWxfYnl0ZXNfb2ZfYXJyYXkoYnVmKSwgb2Zmc2V0KTtcbiAgY2hhbi5vZmZzZXQgPSBjaGFuLm9mZnNldCArIG9mZnNldFswXTtcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9pbnB1dF92YWx1ZV90b19vdXRzaWRlX2hlYXBcbi8vUmVxdWlyZXM6IGNhbWxfaW5wdXRfdmFsdWVcbmZ1bmN0aW9uIGNhbWxfaW5wdXRfdmFsdWVfdG9fb3V0c2lkZV9oZWFwKGMpIHtcbiAgcmV0dXJuIGNhbWxfaW5wdXRfdmFsdWUoYyk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfaW5wdXRfY2hhclxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSwgY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9yZWZpbGxcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfY2hhciAoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZihjaGFuLmJ1ZmZlcl9jdXJyID49IGNoYW4uYnVmZmVyX21heCl7XG4gICAgY2hhbi5idWZmZXJfY3VyciA9IDA7XG4gICAgY2hhbi5idWZmZXJfbWF4ID0gMDtcbiAgICBjYW1sX3JlZmlsbChjaGFuKTtcbiAgfVxuICBpZiAoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlcl9tYXgpXG4gICAgY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSgpO1xuICB2YXIgcmVzID0gY2hhbi5idWZmZXJbY2hhbi5idWZmZXJfY3Vycl07XG4gIGNoYW4uYnVmZmVyX2N1cnIrKztcbiAgcmV0dXJuIHJlcztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pbnB1dF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfcmFpc2VfZW5kX29mX2ZpbGVcbi8vUmVxdWlyZXM6IGNhbWxfbWxfaW5wdXRfY2hhciwgY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pbnB1dF9pbnQgKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgdmFyIHJlcyA9IDA7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCA0OyBpKyspe1xuICAgIHJlcyA9IChyZXMgPDwgOCkgKyBjYW1sX21sX2lucHV0X2NoYXIoY2hhbmlkKSB8IDA7XG4gIH1cbiAgcmV0dXJuIHJlcyB8IDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2Vla19pblxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9zeXNfZXJyb3IsIGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfc2Vla19pbihjaGFuaWQsIHBvcykge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgaWYgKGNoYW4ucmVmaWxsICE9IG51bGwpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiSWxsZWdhbCBzZWVrXCIpO1xuICBpZihwb3MgPj0gY2hhbi5vZmZzZXQgLSBjaGFuLmJ1ZmZlcl9tYXhcbiAgICAgJiYgcG9zIDw9IGNoYW4ub2Zmc2V0XG4gICAgICYmIGNoYW4uZmlsZS5mbGFncy5iaW5hcnkpIHtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gY2hhbi5idWZmZXJfbWF4IC0gKGNoYW4ub2Zmc2V0IC0gcG9zKTtcbiAgfSBlbHNlIHtcbiAgICBjaGFuLm9mZnNldCA9IHBvcztcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICBjaGFuLmJ1ZmZlcl9tYXggPSAwO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5cbi8vUmVxdWlyZXM6IGNhbWxfc2Vla19pblxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luKGNoYW5pZCxwb3Mpe1xuICByZXR1cm4gY2FtbF9zZWVrX2luKGNoYW5pZCxwb3MpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX3NlZWtfaW5fNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfc2Vla19pblxuZnVuY3Rpb24gY2FtbF9tbF9zZWVrX2luXzY0KGNoYW5pZCxwb3Mpe1xuICB2YXIgcG9zID0gY2FtbF9pbnQ2NF90b19mbG9hdChwb3MpO1xuICByZXR1cm4gY2FtbF9zZWVrX2luKGNoYW5pZCwgcG9zKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3NfaW5cbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHNcbmZ1bmN0aW9uIGNhbWxfcG9zX2luKGNoYW5pZCkge1xuICB2YXIgY2hhbiA9IGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXTtcbiAgcmV0dXJuIGNoYW4ub2Zmc2V0IC0gKGNoYW4uYnVmZmVyX21heCAtIGNoYW4uYnVmZmVyX2N1cnIpIHwgMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3NfaW5cbi8vUmVxdWlyZXM6IGNhbWxfcG9zX2luXG5mdW5jdGlvbiBjYW1sX21sX3Bvc19pbihjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfcG9zX2luKGNoYW5pZCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX2luXzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX3Bvc19pblxuZnVuY3Rpb24gY2FtbF9tbF9wb3NfaW5fNjQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX2ludDY0X29mX2Zsb2F0KGNhbWxfcG9zX2luKGNoYW5pZCkpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2lucHV0X3NjYW5fbGluZVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVscywgY2FtbF9yZWZpbGxcbmZ1bmN0aW9uIGNhbWxfbWxfaW5wdXRfc2Nhbl9saW5lKGNoYW5pZCl7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICB2YXIgcCA9IGNoYW4uYnVmZmVyX2N1cnI7XG4gIGRvIHtcbiAgICBpZihwID49IGNoYW4uYnVmZmVyX21heCkge1xuICAgICAgaWYoY2hhbi5idWZmZXJfY3VyciA+IDApIHtcbiAgICAgICAgY2hhbi5idWZmZXIuc2V0KGNoYW4uYnVmZmVyLnN1YmFycmF5KGNoYW4uYnVmZmVyX2N1cnIpLDApO1xuICAgICAgICBwIC09IGNoYW4uYnVmZmVyX2N1cnI7XG4gICAgICAgIGNoYW4uYnVmZmVyX21heCAtPSBjaGFuLmJ1ZmZlcl9jdXJyO1xuICAgICAgICBjaGFuLmJ1ZmZlcl9jdXJyID0gMDtcbiAgICAgIH1cbiAgICAgIGlmKGNoYW4uYnVmZmVyX21heCA+PSBjaGFuLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIC0oY2hhbi5idWZmZXJfbWF4KSB8IDA7XG4gICAgICB9XG4gICAgICB2YXIgcHJldl9tYXggPSBjaGFuLmJ1ZmZlcl9tYXg7XG4gICAgICBjYW1sX3JlZmlsbCAoY2hhbik7XG4gICAgICBpZihwcmV2X21heCA9PSBjaGFuLmJ1ZmZlcl9tYXgpIHtcbiAgICAgICAgcmV0dXJuIC0oY2hhbi5idWZmZXJfbWF4KSB8IDA7XG4gICAgICB9XG4gICAgfVxuICB9IHdoaWxlIChjaGFuLmJ1ZmZlcltwKytdICE9IDEwKTtcbiAgcmV0dXJuIChwIC0gY2hhbi5idWZmZXJfY3VycikgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2ZsdXNoXG4vL1JlcXVpcmVzOiBjYW1sX3JhaXNlX3N5c19lcnJvciwgY2FtbF9tbF9jaGFubmVsc1xuLy9SZXF1aXJlczogY2FtbF9zdWJhcnJheV90b19qc2J5dGVzXG5mdW5jdGlvbiBjYW1sX21sX2ZsdXNoIChjaGFuaWQpIHtcbiAgdmFyIGNoYW4gPSBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF07XG4gIGlmKCEgY2hhbi5vcGVuZWQpIGNhbWxfcmFpc2Vfc3lzX2Vycm9yKFwiQ2Fubm90IGZsdXNoIGEgY2xvc2VkIGNoYW5uZWxcIik7XG4gIGlmKCFjaGFuLmJ1ZmZlciB8fCBjaGFuLmJ1ZmZlcl9jdXJyID09IDApIHJldHVybiAwO1xuICBpZihjaGFuLm91dHB1dCkge1xuICAgIGNoYW4ub3V0cHV0KGNhbWxfc3ViYXJyYXlfdG9fanNieXRlcyhjaGFuLmJ1ZmZlciwgMCwgY2hhbi5idWZmZXJfY3VycikpO1xuICB9IGVsc2Uge1xuICAgIGNoYW4uZmlsZS53cml0ZShjaGFuLm9mZnNldCwgY2hhbi5idWZmZXIsIDAsIGNoYW4uYnVmZmVyX2N1cnIpO1xuICB9XG4gIGNoYW4ub2Zmc2V0ICs9IGNoYW4uYnVmZmVyX2N1cnI7XG4gIGNoYW4uYnVmZmVyX2N1cnIgPSAwO1xuICByZXR1cm4gMDtcbn1cblxuLy9vdXRwdXQgdG8gb3V0X2NoYW5uZWxcblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfZmx1c2gsY2FtbF9tbF9ieXRlc19sZW5ndGhcbi8vUmVxdWlyZXM6IGNhbWxfY3JlYXRlX2J5dGVzLCBjYW1sX2JsaXRfYnl0ZXMsIGNhbWxfcmFpc2Vfc3lzX2Vycm9yLCBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX3N0cmluZ19vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfYnl0ZXMoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBpZighIGNoYW4ub3BlbmVkKSBjYW1sX3JhaXNlX3N5c19lcnJvcihcIkNhbm5vdCBvdXRwdXQgdG8gYSBjbG9zZWQgY2hhbm5lbFwiKTtcbiAgdmFyIGJ1ZmZlciA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoYnVmZmVyKTtcbiAgYnVmZmVyID0gYnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgbGVuKTtcbiAgaWYoY2hhbi5idWZmZXJfY3VyciArIGJ1ZmZlci5sZW5ndGggPiBjaGFuLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICB2YXIgYiA9IG5ldyBVaW50OEFycmF5KGNoYW4uYnVmZmVyX2N1cnIgKyBidWZmZXIubGVuZ3RoKTtcbiAgICBiLnNldChjaGFuLmJ1ZmZlcik7XG4gICAgY2hhbi5idWZmZXIgPSBiXG4gIH1cbiAgc3dpdGNoKGNoYW4uYnVmZmVyZWQpe1xuICBjYXNlIDA6IC8vIFVuYnVmZmVyZWRcbiAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgY2FtbF9tbF9mbHVzaCAoY2hhbmlkKTtcbiAgICBicmVha1xuICBjYXNlIDE6IC8vIEJ1ZmZlcmVkICh0aGUgZGVmYXVsdClcbiAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGJ1ZmZlci5sZW5ndGg7XG4gICAgaWYoY2hhbi5idWZmZXJfY3VyciA+PSBjaGFuLmJ1ZmZlci5sZW5ndGgpXG4gICAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIGJyZWFrO1xuICBjYXNlIDI6IC8vIEJ1ZmZlcmVkIChvbmx5IGZvciBzdGRvdXQgYW5kIHN0ZGVycilcbiAgICB2YXIgaWQgPSBidWZmZXIubGFzdEluZGV4T2YoMTApXG4gICAgaWYoaWQgPCAwKSB7XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLCBjaGFuLmJ1ZmZlcl9jdXJyKTtcbiAgICAgIGNoYW4uYnVmZmVyX2N1cnIgKz0gYnVmZmVyLmxlbmd0aDtcbiAgICAgIGlmKGNoYW4uYnVmZmVyX2N1cnIgPj0gY2hhbi5idWZmZXIubGVuZ3RoKVxuICAgICAgICBjYW1sX21sX2ZsdXNoIChjaGFuaWQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNoYW4uYnVmZmVyLnNldChidWZmZXIuc3ViYXJyYXkoMCwgaWQgKyAxKSwgY2hhbi5idWZmZXJfY3Vycik7XG4gICAgICBjaGFuLmJ1ZmZlcl9jdXJyICs9IGlkICsgMTtcbiAgICAgIGNhbWxfbWxfZmx1c2ggKGNoYW5pZCk7XG4gICAgICBjaGFuLmJ1ZmZlci5zZXQoYnVmZmVyLnN1YmFycmF5KGlkICsgMSksIGNoYW4uYnVmZmVyX2N1cnIpO1xuICAgICAgY2hhbi5idWZmZXJfY3VyciArPSBidWZmZXIubGVuZ3RoIC0gaWQgLSAxO1xuICAgIH1cbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfb3V0cHV0X2J5dGVzLCBjYW1sX2J5dGVzX29mX3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXQoY2hhbmlkLGJ1ZmZlcixvZmZzZXQsbGVuKXtcbiAgcmV0dXJuIGNhbWxfbWxfb3V0cHV0X2J5dGVzKGNoYW5pZCxjYW1sX2J5dGVzX29mX3N0cmluZyhidWZmZXIpLG9mZnNldCxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX291dHB1dF9jaGFyXG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuZnVuY3Rpb24gY2FtbF9tbF9vdXRwdXRfY2hhciAoY2hhbmlkLGMpIHtcbiAgdmFyIHMgPSBjYW1sX3N0cmluZ19vZl9qc2J5dGVzKFN0cmluZy5mcm9tQ2hhckNvZGUoYykpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLDEpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vdXRwdXRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfb3V0cHV0X3ZhbHVlX3RvX3N0cmluZywgY2FtbF9tbF9vdXRwdXQsY2FtbF9tbF9zdHJpbmdfbGVuZ3RoXG5mdW5jdGlvbiBjYW1sX291dHB1dF92YWx1ZSAoY2hhbmlkLHYsZmxhZ3MpIHtcbiAgdmFyIHMgPSBjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmcodiwgZmxhZ3MpO1xuICBjYW1sX21sX291dHB1dChjaGFuaWQscywwLGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSk7XG4gIHJldHVybiAwO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfc2Vla19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfbWxfY2hhbm5lbHMsIGNhbWxfbWxfZmx1c2hcbmZ1bmN0aW9uIGNhbWxfc2Vla19vdXQoY2hhbmlkLCBwb3Mpe1xuICBjYW1sX21sX2ZsdXNoKGNoYW5pZCk7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICBjaGFuLm9mZnNldCA9IHBvcztcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRcbi8vUmVxdWlyZXM6IGNhbWxfc2Vla19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXQoY2hhbmlkLHBvcyl7XG4gIHJldHVybiBjYW1sX3NlZWtfb3V0KGNoYW5pZCwgcG9zKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2Vla19vdXRfNjRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfdG9fZmxvYXQsIGNhbWxfc2Vla19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfc2Vla19vdXRfNjQoY2hhbmlkLHBvcyl7XG4gIHZhciBwb3MgPSBjYW1sX2ludDY0X3RvX2Zsb2F0KHBvcyk7XG4gIHJldHVybiBjYW1sX3NlZWtfb3V0KGNoYW5pZCwgcG9zKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9wb3Nfb3V0XG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX3Bvc19vdXQoY2hhbmlkKSB7XG4gIHZhciBjaGFuID0gY2FtbF9tbF9jaGFubmVsc1tjaGFuaWRdO1xuICByZXR1cm4gY2hhbi5vZmZzZXQgKyBjaGFuLmJ1ZmZlcl9jdXJyXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfcG9zX291dFxuLy9SZXF1aXJlczogY2FtbF9wb3Nfb3V0XG5mdW5jdGlvbiBjYW1sX21sX3Bvc19vdXQoY2hhbmlkKSB7XG4gIHJldHVybiBjYW1sX3Bvc19vdXQoY2hhbmlkKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9wb3Nfb3V0XzY0XG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2Zsb2F0LCBjYW1sX3Bvc19vdXRcbmZ1bmN0aW9uIGNhbWxfbWxfcG9zX291dF82NChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfaW50NjRfb2ZfZmxvYXQgKGNhbWxfcG9zX291dChjaGFuaWQpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9vdXRwdXRfaW50XG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbmZ1bmN0aW9uIGNhbWxfbWxfb3V0cHV0X2ludCAoY2hhbmlkLGkpIHtcbiAgdmFyIGFyciA9IFsoaT4+MjQpICYgMHhGRiwoaT4+MTYpICYgMHhGRiwoaT4+OCkgJiAweEZGLGkgJiAweEZGIF07XG4gIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfYXJyYXkoYXJyKTtcbiAgY2FtbF9tbF9vdXRwdXQoY2hhbmlkLHMsMCw0KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tbF9pc19idWZmZXJlZFxuLy9SZXF1aXJlczogY2FtbF9tbF9jaGFubmVsc1xuZnVuY3Rpb24gY2FtbF9tbF9pc19idWZmZXJlZChjaGFuaWQpIHtcbiAgcmV0dXJuIGNhbWxfbWxfY2hhbm5lbHNbY2hhbmlkXS5idWZmZXJlZCA/IDEgOiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfc2V0X2J1ZmZlcmVkXG4vL1JlcXVpcmVzOiBjYW1sX21sX2NoYW5uZWxzLCBjYW1sX21sX2ZsdXNoXG5mdW5jdGlvbiBjYW1sX21sX3NldF9idWZmZXJlZChjaGFuaWQsdikge1xuICBjYW1sX21sX2NoYW5uZWxzW2NoYW5pZF0uYnVmZmVyZWQgPSB2O1xuICBpZighdikgY2FtbF9tbF9mbHVzaChjaGFuaWQpO1xuICByZXR1cm4gMFxufVxuIiwiXG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWlub3JcbmZ1bmN0aW9uIGNhbWxfZ2NfbWlub3IodW5pdCl7XG4gIC8vYXZhaWxhYmxlIHdpdGggW25vZGUgLS1leHBvc2UtZ2NdXG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLmdjID09ICdmdW5jdGlvbicpIGdsb2JhbFRoaXMuZ2ModHJ1ZSk7XG4gIHJldHVybiAwXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX21ham9yXG5mdW5jdGlvbiBjYW1sX2djX21ham9yKHVuaXQpe1xuICAvL2F2YWlsYWJsZSB3aXRoIFtub2RlIC0tZXhwb3NlLWdjXVxuICBpZih0eXBlb2YgZ2xvYmFsVGhpcy5nYyA9PSAnZnVuY3Rpb24nKSBnbG9iYWxUaGlzLmdjKCk7XG4gIHJldHVybiAwXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2Z1bGxfbWFqb3JcbmZ1bmN0aW9uIGNhbWxfZ2NfZnVsbF9tYWpvcih1bml0KXtcbiAgLy9hdmFpbGFibGUgd2l0aCBbbm9kZSAtLWV4cG9zZS1nY11cbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuZ2MgPT0gJ2Z1bmN0aW9uJykgZ2xvYmFsVGhpcy5nYygpO1xuICByZXR1cm4gMFxufVxuLy9Qcm92aWRlczogY2FtbF9nY19jb21wYWN0aW9uXG5mdW5jdGlvbiBjYW1sX2djX2NvbXBhY3Rpb24oKXsgcmV0dXJuIDB9XG4vL1Byb3ZpZGVzOiBjYW1sX2djX2NvdW50ZXJzXG5mdW5jdGlvbiBjYW1sX2djX2NvdW50ZXJzKCkgeyByZXR1cm4gWzI1NCwwLDAsMF0gfVxuLy9Qcm92aWRlczogY2FtbF9nY19xdWlja19zdGF0XG5mdW5jdGlvbiBjYW1sX2djX3F1aWNrX3N0YXQoKXtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG4vL1Byb3ZpZGVzOiBjYW1sX2djX3N0YXRcbmZ1bmN0aW9uIGNhbWxfZ2Nfc3RhdCgpIHtcbiAgcmV0dXJuIFswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2Nfc2V0XG5mdW5jdGlvbiBjYW1sX2djX3NldChfY29udHJvbCkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9nY19nZXRcbmZ1bmN0aW9uIGNhbWxfZ2NfZ2V0KCl7XG4gIHJldHVybiBbMCwwLDAsMCwwLDAsMCwwLDBdXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWVtcHJvZl9zZXRcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zZXQoX2NvbnRyb2wpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVnaXN0ZXIgY29uc3RcbmZ1bmN0aW9uIGNhbWxfZmluYWxfcmVnaXN0ZXIgKCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZpbmFsX3JlZ2lzdGVyX2NhbGxlZF93aXRob3V0X3ZhbHVlXG52YXIgYWxsX2ZpbmFsaXplcnMgPSBuZXcgZ2xvYmFsVGhpcy5TZXQoKVxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZSAoY2IsIGEpIHtcbiAgaWYoZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSAmJiBhIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgdmFyIHggPSBuZXcgZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbiAoeCl7YWxsX2ZpbmFsaXplcnMuZGVsZXRlKHgpOyBjYigwKTsgcmV0dXJuO30pO1xuICAgIHgucmVnaXN0ZXIoYSx4KTtcbiAgICBhbGxfZmluYWxpemVycy5hZGQoeCk7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmluYWxfcmVsZWFzZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9maW5hbF9yZWxlYXNlICgpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0YXJ0XG5mdW5jdGlvbiBjYW1sX21lbXByb2Zfc3RhcnQocmF0ZSxzdGFja19zaXplLHRyYWNrZXIpe1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9tZW1wcm9mX3N0b3BcbmZ1bmN0aW9uIGNhbWxfbWVtcHJvZl9zdG9wKHVuaXQpIHtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcmVzdW1lXG5mdW5jdGlvbiBjYW1sX2V2ZW50bG9nX3Jlc3VtZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXZlbnRsb2dfcGF1c2VcbmZ1bmN0aW9uIGNhbWxfZXZlbnRsb2dfcGF1c2UodW5pdCkgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX2h1Z2VfZmFsbGJhY2tfY291bnRcbmZ1bmN0aW9uIGNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudCh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2NfbWFqb3Jfc2xpY2VcbmZ1bmN0aW9uIGNhbWxfZ2NfbWFqb3Jfc2xpY2Uod29yaykgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2djX21pbm9yX3dvcmRzXG5mdW5jdGlvbiBjYW1sX2djX21pbm9yX3dvcmRzKHVuaXQpIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWlub3JfZnJlZVxuZnVuY3Rpb24gY2FtbF9nZXRfbWlub3JfZnJlZSh1bml0KSB7IHJldHVybiAwOyB9XG5cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X21ham9yX2J1Y2tldFxuZnVuY3Rpb24gY2FtbF9nZXRfbWFqb3JfYnVja2V0KG4pIHsgcmV0dXJuIDA7IH1cblxuLy9Qcm92aWRlczogY2FtbF9nZXRfbWFqb3JfY3JlZGl0XG5mdW5jdGlvbiBjYW1sX2dldF9tYWpvcl9jcmVkaXQobikgeyByZXR1cm4gMDsgfVxuIiwiLy9JbXBvcnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9wZXRlcm9sc29uL0JpZ0ludGVnZXIuanMjNGU5OWIxNWI3OTUxMzM4ZjE2NDcyODM3N2M5MDZjYWFlNWE3ODIwMlxuXG4vL1Byb3ZpZGVzOiBiaWdJbnQgY29uc3RcbnZhciBiaWdJbnQgPSAoZnVuY3Rpb24gKHVuZGVmaW5lZCkge1xuICAgIFwidXNlIHN0cmljdFwiO1xuXG4gICAgdmFyIEJBU0UgPSAxZTcsXG4gICAgICAgIExPR19CQVNFID0gNyxcbiAgICAgICAgTUFYX0lOVCA9IDkwMDcxOTkyNTQ3NDA5OTIsXG4gICAgICAgIE1BWF9JTlRfQVJSID0gc21hbGxUb0FycmF5KE1BWF9JTlQpLFxuICAgICAgICBERUZBVUxUX0FMUEhBQkVUID0gXCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIjtcblxuICAgIHZhciBCaWdJbnQgPSBqb29fZ2xvYmFsX29iamVjdC5CaWdJbnQ7XG5cbiAgICB2YXIgc3VwcG9ydHNOYXRpdmVCaWdJbnQgPSB0eXBlb2YgQmlnSW50ID09PSBcImZ1bmN0aW9uXCI7XG5cbiAgICBmdW5jdGlvbiBJbnRlZ2VyKHYsIHJhZGl4LCBhbHBoYWJldCwgY2FzZVNlbnNpdGl2ZSkge1xuICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiBJbnRlZ2VyWzBdO1xuICAgICAgICBpZiAodHlwZW9mIHJhZGl4ICE9PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gK3JhZGl4ID09PSAxMCAmJiAhYWxwaGFiZXQgPyBwYXJzZVZhbHVlKHYpIDogcGFyc2VCYXNlKHYsIHJhZGl4LCBhbHBoYWJldCwgY2FzZVNlbnNpdGl2ZSk7XG4gICAgICAgIHJldHVybiBwYXJzZVZhbHVlKHYpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIEJpZ0ludGVnZXIodmFsdWUsIHNpZ24pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNpZ24gPSBzaWduO1xuICAgICAgICB0aGlzLmlzU21hbGwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jYW1sX2N1c3RvbSA9ICdfeic7XG4gICAgfVxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJbnRlZ2VyLnByb3RvdHlwZSk7XG5cbiAgICBmdW5jdGlvbiBTbWFsbEludGVnZXIodmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNpZ24gPSB2YWx1ZSA8IDA7XG4gICAgICAgIHRoaXMuaXNTbWFsbCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2FtbF9jdXN0b20gPSAnX3onO1xuICAgIH1cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJbnRlZ2VyLnByb3RvdHlwZSk7XG5cbiAgICBmdW5jdGlvbiBOYXRpdmVCaWdJbnQodmFsdWUpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmNhbWxfY3VzdG9tID0gJ196JztcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoSW50ZWdlci5wcm90b3R5cGUpO1xuXG4gICAgZnVuY3Rpb24gaXNQcmVjaXNlKG4pIHtcbiAgICAgICAgcmV0dXJuIC1NQVhfSU5UIDwgbiAmJiBuIDwgTUFYX0lOVDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzbWFsbFRvQXJyYXkobikgeyAvLyBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyBkb2Vzbid0IHJlZmVyZW5jZSBCQVNFLCBuZWVkIHRvIGNoYW5nZSB0aGlzIGZ1bmN0aW9uIGlmIEJBU0UgY2hhbmdlc1xuICAgICAgICBpZiAobiA8IDFlNylcbiAgICAgICAgICAgIHJldHVybiBbbl07XG4gICAgICAgIGlmIChuIDwgMWUxNClcbiAgICAgICAgICAgIHJldHVybiBbbiAlIDFlNywgTWF0aC5mbG9vcihuIC8gMWU3KV07XG4gICAgICAgIHJldHVybiBbbiAlIDFlNywgTWF0aC5mbG9vcihuIC8gMWU3KSAlIDFlNywgTWF0aC5mbG9vcihuIC8gMWUxNCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFycmF5VG9TbWFsbChhcnIpIHsgLy8gSWYgQkFTRSBjaGFuZ2VzIHRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gY2hhbmdlXG4gICAgICAgIHRyaW0oYXJyKTtcbiAgICAgICAgdmFyIGxlbmd0aCA9IGFyci5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPCA0ICYmIGNvbXBhcmVBYnMoYXJyLCBNQVhfSU5UX0FSUikgPCAwKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIDA7XG4gICAgICAgICAgICAgICAgY2FzZSAxOiByZXR1cm4gYXJyWzBdO1xuICAgICAgICAgICAgICAgIGNhc2UgMjogcmV0dXJuIGFyclswXSArIGFyclsxXSAqIEJBU0U7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIGFyclswXSArIChhcnJbMV0gKyBhcnJbMl0gKiBCQVNFKSAqIEJBU0U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFycjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmltKHYpIHtcbiAgICAgICAgdmFyIGkgPSB2Lmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKHZbLS1pXSA9PT0gMCk7XG4gICAgICAgIHYubGVuZ3RoID0gaSArIDE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlQXJyYXkobGVuZ3RoKSB7IC8vIGZ1bmN0aW9uIHNoYW1lbGVzc2x5IHN0b2xlbiBmcm9tIFlhZmZsZSdzIGxpYnJhcnkgaHR0cHM6Ly9naXRodWIuY29tL1lhZmZsZS9CaWdJbnRlZ2VyXG4gICAgICAgIHZhciB4ID0gbmV3IEFycmF5KGxlbmd0aCk7XG4gICAgICAgIHZhciBpID0gLTE7XG4gICAgICAgIHdoaWxlICgrK2kgPCBsZW5ndGgpIHtcbiAgICAgICAgICAgIHhbaV0gPSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRydW5jYXRlKG4pIHtcbiAgICAgICAgaWYgKG4gPiAwKSByZXR1cm4gTWF0aC5mbG9vcihuKTtcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGQoYSwgYikgeyAvLyBhc3N1bWVzIGEgYW5kIGIgYXJlIGFycmF5cyB3aXRoIGEubGVuZ3RoID49IGIubGVuZ3RoXG4gICAgICAgIHZhciBsX2EgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIGxfYiA9IGIubGVuZ3RoLFxuICAgICAgICAgICAgciA9IG5ldyBBcnJheShsX2EpLFxuICAgICAgICAgICAgY2FycnkgPSAwLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBzdW0sIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsX2I7IGkrKykge1xuICAgICAgICAgICAgc3VtID0gYVtpXSArIGJbaV0gKyBjYXJyeTtcbiAgICAgICAgICAgIGNhcnJ5ID0gc3VtID49IGJhc2UgPyAxIDogMDtcbiAgICAgICAgICAgIHJbaV0gPSBzdW0gLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKGkgPCBsX2EpIHtcbiAgICAgICAgICAgIHN1bSA9IGFbaV0gKyBjYXJyeTtcbiAgICAgICAgICAgIGNhcnJ5ID0gc3VtID09PSBiYXNlID8gMSA6IDA7XG4gICAgICAgICAgICByW2krK10gPSBzdW0gLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhcnJ5ID4gMCkgci5wdXNoKGNhcnJ5KTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkQW55KGEsIGIpIHtcbiAgICAgICAgaWYgKGEubGVuZ3RoID49IGIubGVuZ3RoKSByZXR1cm4gYWRkKGEsIGIpO1xuICAgICAgICByZXR1cm4gYWRkKGIsIGEpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFNtYWxsKGEsIGNhcnJ5KSB7IC8vIGFzc3VtZXMgYSBpcyBhcnJheSwgY2FycnkgaXMgbnVtYmVyIHdpdGggMCA8PSBjYXJyeSA8IE1BWF9JTlRcbiAgICAgICAgdmFyIGwgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkobCksXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIHN1bSwgaTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgc3VtID0gYVtpXSAtIGJhc2UgKyBjYXJyeTtcbiAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihzdW0gLyBiYXNlKTtcbiAgICAgICAgICAgIHJbaV0gPSBzdW0gLSBjYXJyeSAqIGJhc2U7XG4gICAgICAgICAgICBjYXJyeSArPSAxO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChjYXJyeSA+IDApIHtcbiAgICAgICAgICAgIHJbaSsrXSA9IGNhcnJ5ICUgYmFzZTtcbiAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihjYXJyeSAvIGJhc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgaWYgKHRoaXMuc2lnbiAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWJ0cmFjdChuLm5lZ2F0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWUsIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoYWRkU21hbGwoYSwgTWF0aC5hYnMoYikpLCB0aGlzLnNpZ24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihhZGRBbnkoYSwgYiksIHRoaXMuc2lnbik7XG4gICAgfTtcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5wbHVzID0gQmlnSW50ZWdlci5wcm90b3R5cGUuYWRkO1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodik7XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKGEgPCAwICE9PSBuLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN1YnRyYWN0KG4ubmVnYXRlKCkpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgaWYgKGlzUHJlY2lzZShhICsgYikpIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKGEgKyBiKTtcbiAgICAgICAgICAgIGIgPSBzbWFsbFRvQXJyYXkoTWF0aC5hYnMoYikpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihhZGRTbWFsbChiLCBNYXRoLmFicyhhKSksIGEgPCAwKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUucGx1cyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuYWRkO1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlICsgcGFyc2VWYWx1ZSh2KS52YWx1ZSk7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUucGx1cyA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuYWRkO1xuXG4gICAgZnVuY3Rpb24gc3VidHJhY3QoYSwgYikgeyAvLyBhc3N1bWVzIGEgYW5kIGIgYXJlIGFycmF5cyB3aXRoIGEgPj0gYlxuICAgICAgICB2YXIgYV9sID0gYS5sZW5ndGgsXG4gICAgICAgICAgICBiX2wgPSBiLmxlbmd0aCxcbiAgICAgICAgICAgIHIgPSBuZXcgQXJyYXkoYV9sKSxcbiAgICAgICAgICAgIGJvcnJvdyA9IDAsXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIGksIGRpZmZlcmVuY2U7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBiX2w7IGkrKykge1xuICAgICAgICAgICAgZGlmZmVyZW5jZSA9IGFbaV0gLSBib3Jyb3cgLSBiW2ldO1xuICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPCAwKSB7XG4gICAgICAgICAgICAgICAgZGlmZmVyZW5jZSArPSBiYXNlO1xuICAgICAgICAgICAgICAgIGJvcnJvdyA9IDE7XG4gICAgICAgICAgICB9IGVsc2UgYm9ycm93ID0gMDtcbiAgICAgICAgICAgIHJbaV0gPSBkaWZmZXJlbmNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IGJfbDsgaSA8IGFfbDsgaSsrKSB7XG4gICAgICAgICAgICBkaWZmZXJlbmNlID0gYVtpXSAtIGJvcnJvdztcbiAgICAgICAgICAgIGlmIChkaWZmZXJlbmNlIDwgMCkgZGlmZmVyZW5jZSArPSBiYXNlO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcltpKytdID0gZGlmZmVyZW5jZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJbaV0gPSBkaWZmZXJlbmNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoOyBpIDwgYV9sOyBpKyspIHtcbiAgICAgICAgICAgIHJbaV0gPSBhW2ldO1xuICAgICAgICB9XG4gICAgICAgIHRyaW0ocik7XG4gICAgICAgIHJldHVybiByO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0QW55KGEsIGIsIHNpZ24pIHtcbiAgICAgICAgdmFyIHZhbHVlO1xuICAgICAgICBpZiAoY29tcGFyZUFicyhhLCBiKSA+PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHN1YnRyYWN0KGEsIGIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFsdWUgPSBzdWJ0cmFjdChiLCBhKTtcbiAgICAgICAgICAgIHNpZ24gPSAhc2lnbjtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IGFycmF5VG9TbWFsbCh2YWx1ZSk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmIChzaWduKSB2YWx1ZSA9IC12YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIodmFsdWUsIHNpZ24pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0U21hbGwoYSwgYiwgc2lnbikgeyAvLyBhc3N1bWVzIGEgaXMgYXJyYXksIGIgaXMgbnVtYmVyIHdpdGggMCA8PSBiIDwgTUFYX0lOVFxuICAgICAgICB2YXIgbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgciA9IG5ldyBBcnJheShsKSxcbiAgICAgICAgICAgIGNhcnJ5ID0gLWIsXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIGksIGRpZmZlcmVuY2U7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBhW2ldICsgY2Fycnk7XG4gICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IoZGlmZmVyZW5jZSAvIGJhc2UpO1xuICAgICAgICAgICAgZGlmZmVyZW5jZSAlPSBiYXNlO1xuICAgICAgICAgICAgcltpXSA9IGRpZmZlcmVuY2UgPCAwID8gZGlmZmVyZW5jZSArIGJhc2UgOiBkaWZmZXJlbmNlO1xuICAgICAgICB9XG4gICAgICAgIHIgPSBhcnJheVRvU21hbGwocik7XG4gICAgICAgIGlmICh0eXBlb2YgciA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKHNpZ24pIHIgPSAtcjtcbiAgICAgICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKHIpO1xuICAgICAgICB9IHJldHVybiBuZXcgQmlnSW50ZWdlcihyLCBzaWduKTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zdWJ0cmFjdCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgaWYgKHRoaXMuc2lnbiAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQobi5uZWdhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlLCBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbClcbiAgICAgICAgICAgIHJldHVybiBzdWJ0cmFjdFNtYWxsKGEsIE1hdGguYWJzKGIpLCB0aGlzLnNpZ24pO1xuICAgICAgICByZXR1cm4gc3VidHJhY3RBbnkoYSwgYiwgdGhpcy5zaWduKTtcbiAgICB9O1xuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm1pbnVzID0gQmlnSW50ZWdlci5wcm90b3R5cGUuc3VidHJhY3Q7XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnN1YnRyYWN0ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpO1xuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmIChhIDwgMCAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQobi5uZWdhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcihhIC0gYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1YnRyYWN0U21hbGwoYiwgTWF0aC5hYnMoYSksIGEgPj0gMCk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLm1pbnVzID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5zdWJ0cmFjdDtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuc3VidHJhY3QgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlIC0gcGFyc2VWYWx1ZSh2KS52YWx1ZSk7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubWludXMgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnN1YnRyYWN0O1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubmVnYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIodGhpcy52YWx1ZSwgIXRoaXMuc2lnbik7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLm5lZ2F0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHNpZ24gPSB0aGlzLnNpZ247XG4gICAgICAgIHZhciBzbWFsbCA9IG5ldyBTbWFsbEludGVnZXIoLXRoaXMudmFsdWUpO1xuICAgICAgICBzbWFsbC5zaWduID0gIXNpZ247XG4gICAgICAgIHJldHVybiBzbWFsbDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubmVnYXRlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCgtdGhpcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYWJzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIodGhpcy52YWx1ZSwgZmFsc2UpO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5hYnMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgU21hbGxJbnRlZ2VyKE1hdGguYWJzKHRoaXMudmFsdWUpKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuYWJzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlID49IDAgPyB0aGlzLnZhbHVlIDogLXRoaXMudmFsdWUpO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gbXVsdGlwbHlMb25nKGEsIGIpIHtcbiAgICAgICAgdmFyIGFfbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgYl9sID0gYi5sZW5ndGgsXG4gICAgICAgICAgICBsID0gYV9sICsgYl9sLFxuICAgICAgICAgICAgciA9IGNyZWF0ZUFycmF5KGwpLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBwcm9kdWN0LCBjYXJyeSwgaSwgYV9pLCBiX2o7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhX2w7ICsraSkge1xuICAgICAgICAgICAgYV9pID0gYVtpXTtcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYl9sOyArK2opIHtcbiAgICAgICAgICAgICAgICBiX2ogPSBiW2pdO1xuICAgICAgICAgICAgICAgIHByb2R1Y3QgPSBhX2kgKiBiX2ogKyByW2kgKyBqXTtcbiAgICAgICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IocHJvZHVjdCAvIGJhc2UpO1xuICAgICAgICAgICAgICAgIHJbaSArIGpdID0gcHJvZHVjdCAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgICAgICAgICByW2kgKyBqICsgMV0gKz0gY2Fycnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdHJpbShyKTtcbiAgICAgICAgcmV0dXJuIHI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbXVsdGlwbHlTbWFsbChhLCBiKSB7IC8vIGFzc3VtZXMgYSBpcyBhcnJheSwgYiBpcyBudW1iZXIgd2l0aCB8YnwgPCBCQVNFXG4gICAgICAgIHZhciBsID0gYS5sZW5ndGgsXG4gICAgICAgICAgICByID0gbmV3IEFycmF5KGwpLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICBjYXJyeSA9IDAsXG4gICAgICAgICAgICBwcm9kdWN0LCBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBwcm9kdWN0ID0gYVtpXSAqIGIgKyBjYXJyeTtcbiAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihwcm9kdWN0IC8gYmFzZSk7XG4gICAgICAgICAgICByW2ldID0gcHJvZHVjdCAtIGNhcnJ5ICogYmFzZTtcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoY2FycnkgPiAwKSB7XG4gICAgICAgICAgICByW2krK10gPSBjYXJyeSAlIGJhc2U7XG4gICAgICAgICAgICBjYXJyeSA9IE1hdGguZmxvb3IoY2FycnkgLyBiYXNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzaGlmdExlZnQoeCwgbikge1xuICAgICAgICB2YXIgciA9IFtdO1xuICAgICAgICB3aGlsZSAobi0tID4gMCkgci5wdXNoKDApO1xuICAgICAgICByZXR1cm4gci5jb25jYXQoeCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbXVsdGlwbHlLYXJhdHN1YmEoeCwgeSkge1xuICAgICAgICB2YXIgbiA9IE1hdGgubWF4KHgubGVuZ3RoLCB5Lmxlbmd0aCk7XG5cbiAgICAgICAgaWYgKG4gPD0gMzApIHJldHVybiBtdWx0aXBseUxvbmcoeCwgeSk7XG4gICAgICAgIG4gPSBNYXRoLmNlaWwobiAvIDIpO1xuXG4gICAgICAgIHZhciBiID0geC5zbGljZShuKSxcbiAgICAgICAgICAgIGEgPSB4LnNsaWNlKDAsIG4pLFxuICAgICAgICAgICAgZCA9IHkuc2xpY2UobiksXG4gICAgICAgICAgICBjID0geS5zbGljZSgwLCBuKTtcblxuICAgICAgICB2YXIgYWMgPSBtdWx0aXBseUthcmF0c3ViYShhLCBjKSxcbiAgICAgICAgICAgIGJkID0gbXVsdGlwbHlLYXJhdHN1YmEoYiwgZCksXG4gICAgICAgICAgICBhYmNkID0gbXVsdGlwbHlLYXJhdHN1YmEoYWRkQW55KGEsIGIpLCBhZGRBbnkoYywgZCkpO1xuXG4gICAgICAgIHZhciBwcm9kdWN0ID0gYWRkQW55KGFkZEFueShhYywgc2hpZnRMZWZ0KHN1YnRyYWN0KHN1YnRyYWN0KGFiY2QsIGFjKSwgYmQpLCBuKSksIHNoaWZ0TGVmdChiZCwgMiAqIG4pKTtcbiAgICAgICAgdHJpbShwcm9kdWN0KTtcbiAgICAgICAgcmV0dXJuIHByb2R1Y3Q7XG4gICAgfVxuXG4gICAgLy8gVGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZXJpdmVkIGZyb20gYSBzdXJmYWNlIGZpdCBvZiBhIGdyYXBoIHBsb3R0aW5nIHRoZSBwZXJmb3JtYW5jZSBkaWZmZXJlbmNlXG4gICAgLy8gYmV0d2VlbiBsb25nIG11bHRpcGxpY2F0aW9uIGFuZCBrYXJhdHN1YmEgbXVsdGlwbGljYXRpb24gdmVyc3VzIHRoZSBsZW5ndGhzIG9mIHRoZSB0d28gYXJyYXlzLlxuICAgIGZ1bmN0aW9uIHVzZUthcmF0c3ViYShsMSwgbDIpIHtcbiAgICAgICAgcmV0dXJuIC0wLjAxMiAqIGwxIC0gMC4wMTIgKiBsMiArIDAuMDAwMDE1ICogbDEgKiBsMiA+IDA7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubXVsdGlwbHkgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gdGhpcy52YWx1ZSwgYiA9IG4udmFsdWUsXG4gICAgICAgICAgICBzaWduID0gdGhpcy5zaWduICE9PSBuLnNpZ24sXG4gICAgICAgICAgICBhYnM7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGlmIChiID09PSAwKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgICAgIGlmIChiID09PSAxKSByZXR1cm4gdGhpcztcbiAgICAgICAgICAgIGlmIChiID09PSAtMSkgcmV0dXJuIHRoaXMubmVnYXRlKCk7XG4gICAgICAgICAgICBhYnMgPSBNYXRoLmFicyhiKTtcbiAgICAgICAgICAgIGlmIChhYnMgPCBCQVNFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG11bHRpcGx5U21hbGwoYSwgYWJzKSwgc2lnbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiID0gc21hbGxUb0FycmF5KGFicyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVzZUthcmF0c3ViYShhLmxlbmd0aCwgYi5sZW5ndGgpKSAvLyBLYXJhdHN1YmEgaXMgb25seSBmYXN0ZXIgZm9yIGNlcnRhaW4gYXJyYXkgc2l6ZXNcbiAgICAgICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihtdWx0aXBseUthcmF0c3ViYShhLCBiKSwgc2lnbik7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihtdWx0aXBseUxvbmcoYSwgYiksIHNpZ24pO1xuICAgIH07XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50aW1lcyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm11bHRpcGx5O1xuXG4gICAgZnVuY3Rpb24gbXVsdGlwbHlTbWFsbEFuZEFycmF5KGEsIGIsIHNpZ24pIHsgLy8gYSA+PSAwXG4gICAgICAgIGlmIChhIDwgQkFTRSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG11bHRpcGx5U21hbGwoYiwgYSksIHNpZ24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihtdWx0aXBseUxvbmcoYiwgc21hbGxUb0FycmF5KGEpKSwgc2lnbik7XG4gICAgfVxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuX211bHRpcGx5QnlTbWFsbCA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIGlmIChpc1ByZWNpc2UoYS52YWx1ZSAqIHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcihhLnZhbHVlICogdGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG11bHRpcGx5U21hbGxBbmRBcnJheShNYXRoLmFicyhhLnZhbHVlKSwgc21hbGxUb0FycmF5KE1hdGguYWJzKHRoaXMudmFsdWUpKSwgdGhpcy5zaWduICE9PSBhLnNpZ24pO1xuICAgIH07XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuX211bHRpcGx5QnlTbWFsbCA9IGZ1bmN0aW9uIChhKSB7XG4gICAgICAgIGlmIChhLnZhbHVlID09PSAwKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgaWYgKGEudmFsdWUgPT09IDEpIHJldHVybiB0aGlzO1xuICAgICAgICBpZiAoYS52YWx1ZSA9PT0gLTEpIHJldHVybiB0aGlzLm5lZ2F0ZSgpO1xuICAgICAgICByZXR1cm4gbXVsdGlwbHlTbWFsbEFuZEFycmF5KE1hdGguYWJzKGEudmFsdWUpLCB0aGlzLnZhbHVlLCB0aGlzLnNpZ24gIT09IGEuc2lnbik7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLm11bHRpcGx5ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlVmFsdWUodikuX211bHRpcGx5QnlTbWFsbCh0aGlzKTtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUudGltZXMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm11bHRpcGx5O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5tdWx0aXBseSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiBuZXcgTmF0aXZlQmlnSW50KHRoaXMudmFsdWUgKiBwYXJzZVZhbHVlKHYpLnZhbHVlKTtcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS50aW1lcyA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubXVsdGlwbHk7XG5cbiAgICBmdW5jdGlvbiBzcXVhcmUoYSkge1xuICAgICAgICAvL2NvbnNvbGUuYXNzZXJ0KDIgKiBCQVNFICogQkFTRSA8IE1BWF9JTlQpO1xuICAgICAgICB2YXIgbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgciA9IGNyZWF0ZUFycmF5KGwgKyBsKSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgcHJvZHVjdCwgY2FycnksIGksIGFfaSwgYV9qO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBhX2kgPSBhW2ldO1xuICAgICAgICAgICAgY2FycnkgPSAwIC0gYV9pICogYV9pO1xuICAgICAgICAgICAgZm9yICh2YXIgaiA9IGk7IGogPCBsOyBqKyspIHtcbiAgICAgICAgICAgICAgICBhX2ogPSBhW2pdO1xuICAgICAgICAgICAgICAgIHByb2R1Y3QgPSAyICogKGFfaSAqIGFfaikgKyByW2kgKyBqXSArIGNhcnJ5O1xuICAgICAgICAgICAgICAgIGNhcnJ5ID0gTWF0aC5mbG9vcihwcm9kdWN0IC8gYmFzZSk7XG4gICAgICAgICAgICAgICAgcltpICsgal0gPSBwcm9kdWN0IC0gY2FycnkgKiBiYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcltpICsgbF0gPSBjYXJyeTtcbiAgICAgICAgfVxuICAgICAgICB0cmltKHIpO1xuICAgICAgICByZXR1cm4gcjtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5zcXVhcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihzcXVhcmUodGhpcy52YWx1ZSksIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5zcXVhcmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWUgKiB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAoaXNQcmVjaXNlKHZhbHVlKSkgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoc3F1YXJlKHNtYWxsVG9BcnJheShNYXRoLmFicyh0aGlzLnZhbHVlKSkpLCBmYWxzZSk7XG4gICAgfTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuc3F1YXJlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAqIHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRpdk1vZDEoYSwgYikgeyAvLyBMZWZ0IG92ZXIgZnJvbSBwcmV2aW91cyB2ZXJzaW9uLiBQZXJmb3JtcyBmYXN0ZXIgdGhhbiBkaXZNb2QyIG9uIHNtYWxsZXIgaW5wdXQgc2l6ZXMuXG4gICAgICAgIHZhciBhX2wgPSBhLmxlbmd0aCxcbiAgICAgICAgICAgIGJfbCA9IGIubGVuZ3RoLFxuICAgICAgICAgICAgYmFzZSA9IEJBU0UsXG4gICAgICAgICAgICByZXN1bHQgPSBjcmVhdGVBcnJheShiLmxlbmd0aCksXG4gICAgICAgICAgICBkaXZpc29yTW9zdFNpZ25pZmljYW50RGlnaXQgPSBiW2JfbCAtIDFdLFxuICAgICAgICAgICAgLy8gbm9ybWFsaXphdGlvblxuICAgICAgICAgICAgbGFtYmRhID0gTWF0aC5jZWlsKGJhc2UgLyAoMiAqIGRpdmlzb3JNb3N0U2lnbmlmaWNhbnREaWdpdCkpLFxuICAgICAgICAgICAgcmVtYWluZGVyID0gbXVsdGlwbHlTbWFsbChhLCBsYW1iZGEpLFxuICAgICAgICAgICAgZGl2aXNvciA9IG11bHRpcGx5U21hbGwoYiwgbGFtYmRhKSxcbiAgICAgICAgICAgIHF1b3RpZW50RGlnaXQsIHNoaWZ0LCBjYXJyeSwgYm9ycm93LCBpLCBsLCBxO1xuICAgICAgICBpZiAocmVtYWluZGVyLmxlbmd0aCA8PSBhX2wpIHJlbWFpbmRlci5wdXNoKDApO1xuICAgICAgICBkaXZpc29yLnB1c2goMCk7XG4gICAgICAgIGRpdmlzb3JNb3N0U2lnbmlmaWNhbnREaWdpdCA9IGRpdmlzb3JbYl9sIC0gMV07XG4gICAgICAgIGZvciAoc2hpZnQgPSBhX2wgLSBiX2w7IHNoaWZ0ID49IDA7IHNoaWZ0LS0pIHtcbiAgICAgICAgICAgIHF1b3RpZW50RGlnaXQgPSBiYXNlIC0gMTtcbiAgICAgICAgICAgIGlmIChyZW1haW5kZXJbc2hpZnQgKyBiX2xdICE9PSBkaXZpc29yTW9zdFNpZ25pZmljYW50RGlnaXQpIHtcbiAgICAgICAgICAgICAgICBxdW90aWVudERpZ2l0ID0gTWF0aC5mbG9vcigocmVtYWluZGVyW3NoaWZ0ICsgYl9sXSAqIGJhc2UgKyByZW1haW5kZXJbc2hpZnQgKyBiX2wgLSAxXSkgLyBkaXZpc29yTW9zdFNpZ25pZmljYW50RGlnaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcXVvdGllbnREaWdpdCA8PSBiYXNlIC0gMVxuICAgICAgICAgICAgY2FycnkgPSAwO1xuICAgICAgICAgICAgYm9ycm93ID0gMDtcbiAgICAgICAgICAgIGwgPSBkaXZpc29yLmxlbmd0aDtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjYXJyeSArPSBxdW90aWVudERpZ2l0ICogZGl2aXNvcltpXTtcbiAgICAgICAgICAgICAgICBxID0gTWF0aC5mbG9vcihjYXJyeSAvIGJhc2UpO1xuICAgICAgICAgICAgICAgIGJvcnJvdyArPSByZW1haW5kZXJbc2hpZnQgKyBpXSAtIChjYXJyeSAtIHEgKiBiYXNlKTtcbiAgICAgICAgICAgICAgICBjYXJyeSA9IHE7XG4gICAgICAgICAgICAgICAgaWYgKGJvcnJvdyA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyW3NoaWZ0ICsgaV0gPSBib3Jyb3cgKyBiYXNlO1xuICAgICAgICAgICAgICAgICAgICBib3Jyb3cgPSAtMTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZW1haW5kZXJbc2hpZnQgKyBpXSA9IGJvcnJvdztcbiAgICAgICAgICAgICAgICAgICAgYm9ycm93ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3aGlsZSAoYm9ycm93ICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcXVvdGllbnREaWdpdCAtPSAxO1xuICAgICAgICAgICAgICAgIGNhcnJ5ID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhcnJ5ICs9IHJlbWFpbmRlcltzaGlmdCArIGldIC0gYmFzZSArIGRpdmlzb3JbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYXJyeSA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmRlcltzaGlmdCArIGldID0gY2FycnkgKyBiYXNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FycnkgPSAwO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyW3NoaWZ0ICsgaV0gPSBjYXJyeTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcnJ5ID0gMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBib3Jyb3cgKz0gY2Fycnk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHRbc2hpZnRdID0gcXVvdGllbnREaWdpdDtcbiAgICAgICAgfVxuICAgICAgICAvLyBkZW5vcm1hbGl6YXRpb25cbiAgICAgICAgcmVtYWluZGVyID0gZGl2TW9kU21hbGwocmVtYWluZGVyLCBsYW1iZGEpWzBdO1xuICAgICAgICByZXR1cm4gW2FycmF5VG9TbWFsbChyZXN1bHQpLCBhcnJheVRvU21hbGwocmVtYWluZGVyKV07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGl2TW9kMihhLCBiKSB7IC8vIEltcGxlbWVudGF0aW9uIGlkZWEgc2hhbWVsZXNzbHkgc3RvbGVuIGZyb20gU2lsZW50IE1hdHQncyBsaWJyYXJ5IGh0dHA6Ly9zaWxlbnRtYXR0LmNvbS9iaWdpbnRlZ2VyL1xuICAgICAgICAvLyBQZXJmb3JtcyBmYXN0ZXIgdGhhbiBkaXZNb2QxIG9uIGxhcmdlciBpbnB1dCBzaXplcy5cbiAgICAgICAgdmFyIGFfbCA9IGEubGVuZ3RoLFxuICAgICAgICAgICAgYl9sID0gYi5sZW5ndGgsXG4gICAgICAgICAgICByZXN1bHQgPSBbXSxcbiAgICAgICAgICAgIHBhcnQgPSBbXSxcbiAgICAgICAgICAgIGJhc2UgPSBCQVNFLFxuICAgICAgICAgICAgZ3Vlc3MsIHhsZW4sIGhpZ2h4LCBoaWdoeSwgY2hlY2s7XG4gICAgICAgIHdoaWxlIChhX2wpIHtcbiAgICAgICAgICAgIHBhcnQudW5zaGlmdChhWy0tYV9sXSk7XG4gICAgICAgICAgICB0cmltKHBhcnQpO1xuICAgICAgICAgICAgaWYgKGNvbXBhcmVBYnMocGFydCwgYikgPCAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goMCk7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB4bGVuID0gcGFydC5sZW5ndGg7XG4gICAgICAgICAgICBoaWdoeCA9IHBhcnRbeGxlbiAtIDFdICogYmFzZSArIHBhcnRbeGxlbiAtIDJdO1xuICAgICAgICAgICAgaGlnaHkgPSBiW2JfbCAtIDFdICogYmFzZSArIGJbYl9sIC0gMl07XG4gICAgICAgICAgICBpZiAoeGxlbiA+IGJfbCkge1xuICAgICAgICAgICAgICAgIGhpZ2h4ID0gKGhpZ2h4ICsgMSkgKiBiYXNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZ3Vlc3MgPSBNYXRoLmNlaWwoaGlnaHggLyBoaWdoeSk7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgY2hlY2sgPSBtdWx0aXBseVNtYWxsKGIsIGd1ZXNzKTtcbiAgICAgICAgICAgICAgICBpZiAoY29tcGFyZUFicyhjaGVjaywgcGFydCkgPD0gMCkgYnJlYWs7XG4gICAgICAgICAgICAgICAgZ3Vlc3MtLTtcbiAgICAgICAgICAgIH0gd2hpbGUgKGd1ZXNzKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGd1ZXNzKTtcbiAgICAgICAgICAgIHBhcnQgPSBzdWJ0cmFjdChwYXJ0LCBjaGVjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0LnJldmVyc2UoKTtcbiAgICAgICAgcmV0dXJuIFthcnJheVRvU21hbGwocmVzdWx0KSwgYXJyYXlUb1NtYWxsKHBhcnQpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaXZNb2RTbWFsbCh2YWx1ZSwgbGFtYmRhKSB7XG4gICAgICAgIHZhciBsZW5ndGggPSB2YWx1ZS5sZW5ndGgsXG4gICAgICAgICAgICBxdW90aWVudCA9IGNyZWF0ZUFycmF5KGxlbmd0aCksXG4gICAgICAgICAgICBiYXNlID0gQkFTRSxcbiAgICAgICAgICAgIGksIHEsIHJlbWFpbmRlciwgZGl2aXNvcjtcbiAgICAgICAgcmVtYWluZGVyID0gMDtcbiAgICAgICAgZm9yIChpID0gbGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgICAgICAgIGRpdmlzb3IgPSByZW1haW5kZXIgKiBiYXNlICsgdmFsdWVbaV07XG4gICAgICAgICAgICBxID0gdHJ1bmNhdGUoZGl2aXNvciAvIGxhbWJkYSk7XG4gICAgICAgICAgICByZW1haW5kZXIgPSBkaXZpc29yIC0gcSAqIGxhbWJkYTtcbiAgICAgICAgICAgIHF1b3RpZW50W2ldID0gcSB8IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtxdW90aWVudCwgcmVtYWluZGVyIHwgMF07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGl2TW9kQW55KHNlbGYsIHYpIHtcbiAgICAgICAgdmFyIHZhbHVlLCBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgaWYgKHN1cHBvcnRzTmF0aXZlQmlnSW50KSB7XG4gICAgICAgICAgICByZXR1cm4gW25ldyBOYXRpdmVCaWdJbnQoc2VsZi52YWx1ZSAvIG4udmFsdWUpLCBuZXcgTmF0aXZlQmlnSW50KHNlbGYudmFsdWUgJSBuLnZhbHVlKV07XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGEgPSBzZWxmLnZhbHVlLCBiID0gbi52YWx1ZTtcbiAgICAgICAgdmFyIHF1b3RpZW50O1xuICAgICAgICBpZiAoYiA9PT0gMCkgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRpdmlkZSBieSB6ZXJvXCIpO1xuICAgICAgICBpZiAoc2VsZi5pc1NtYWxsKSB7XG4gICAgICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtuZXcgU21hbGxJbnRlZ2VyKHRydW5jYXRlKGEgLyBiKSksIG5ldyBTbWFsbEludGVnZXIoYSAlIGIpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbSW50ZWdlclswXSwgc2VsZl07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG4uaXNTbWFsbCkge1xuICAgICAgICAgICAgaWYgKGIgPT09IDEpIHJldHVybiBbc2VsZiwgSW50ZWdlclswXV07XG4gICAgICAgICAgICBpZiAoYiA9PSAtMSkgcmV0dXJuIFtzZWxmLm5lZ2F0ZSgpLCBJbnRlZ2VyWzBdXTtcbiAgICAgICAgICAgIHZhciBhYnMgPSBNYXRoLmFicyhiKTtcbiAgICAgICAgICAgIGlmIChhYnMgPCBCQVNFKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBkaXZNb2RTbWFsbChhLCBhYnMpO1xuICAgICAgICAgICAgICAgIHF1b3RpZW50ID0gYXJyYXlUb1NtYWxsKHZhbHVlWzBdKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVtYWluZGVyID0gdmFsdWVbMV07XG4gICAgICAgICAgICAgICAgaWYgKHNlbGYuc2lnbikgcmVtYWluZGVyID0gLXJlbWFpbmRlcjtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHF1b3RpZW50ID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxmLnNpZ24gIT09IG4uc2lnbikgcXVvdGllbnQgPSAtcXVvdGllbnQ7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbbmV3IFNtYWxsSW50ZWdlcihxdW90aWVudCksIG5ldyBTbWFsbEludGVnZXIocmVtYWluZGVyKV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBbbmV3IEJpZ0ludGVnZXIocXVvdGllbnQsIHNlbGYuc2lnbiAhPT0gbi5zaWduKSwgbmV3IFNtYWxsSW50ZWdlcihyZW1haW5kZXIpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGIgPSBzbWFsbFRvQXJyYXkoYWJzKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29tcGFyaXNvbiA9IGNvbXBhcmVBYnMoYSwgYik7XG4gICAgICAgIGlmIChjb21wYXJpc29uID09PSAtMSkgcmV0dXJuIFtJbnRlZ2VyWzBdLCBzZWxmXTtcbiAgICAgICAgaWYgKGNvbXBhcmlzb24gPT09IDApIHJldHVybiBbSW50ZWdlcltzZWxmLnNpZ24gPT09IG4uc2lnbiA/IDEgOiAtMV0sIEludGVnZXJbMF1dO1xuXG4gICAgICAgIC8vIGRpdk1vZDEgaXMgZmFzdGVyIG9uIHNtYWxsZXIgaW5wdXQgc2l6ZXNcbiAgICAgICAgaWYgKGEubGVuZ3RoICsgYi5sZW5ndGggPD0gMjAwKVxuICAgICAgICAgICAgdmFsdWUgPSBkaXZNb2QxKGEsIGIpO1xuICAgICAgICBlbHNlIHZhbHVlID0gZGl2TW9kMihhLCBiKTtcblxuICAgICAgICBxdW90aWVudCA9IHZhbHVlWzBdO1xuICAgICAgICB2YXIgcVNpZ24gPSBzZWxmLnNpZ24gIT09IG4uc2lnbixcbiAgICAgICAgICAgIG1vZCA9IHZhbHVlWzFdLFxuICAgICAgICAgICAgbVNpZ24gPSBzZWxmLnNpZ247XG4gICAgICAgIGlmICh0eXBlb2YgcXVvdGllbnQgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIGlmIChxU2lnbikgcXVvdGllbnQgPSAtcXVvdGllbnQ7XG4gICAgICAgICAgICBxdW90aWVudCA9IG5ldyBTbWFsbEludGVnZXIocXVvdGllbnQpO1xuICAgICAgICB9IGVsc2UgcXVvdGllbnQgPSBuZXcgQmlnSW50ZWdlcihxdW90aWVudCwgcVNpZ24pO1xuICAgICAgICBpZiAodHlwZW9mIG1vZCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgaWYgKG1TaWduKSBtb2QgPSAtbW9kO1xuICAgICAgICAgICAgbW9kID0gbmV3IFNtYWxsSW50ZWdlcihtb2QpO1xuICAgICAgICB9IGVsc2UgbW9kID0gbmV3IEJpZ0ludGVnZXIobW9kLCBtU2lnbik7XG4gICAgICAgIHJldHVybiBbcXVvdGllbnQsIG1vZF07XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2bW9kID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IGRpdk1vZEFueSh0aGlzLCB2KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHF1b3RpZW50OiByZXN1bHRbMF0sXG4gICAgICAgICAgICByZW1haW5kZXI6IHJlc3VsdFsxXVxuICAgICAgICB9O1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5kaXZtb2QgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmRpdm1vZCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmRpdm1vZDtcblxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2aWRlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIGRpdk1vZEFueSh0aGlzLCB2KVswXTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUub3ZlciA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZGl2aWRlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAvIHBhcnNlVmFsdWUodikudmFsdWUpO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5vdmVyID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5kaXZpZGUgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5vdmVyID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZGl2aWRlO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIGRpdk1vZEFueSh0aGlzLCB2KVsxXTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubW9kID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5yZW1haW5kZXIgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh0aGlzLnZhbHVlICUgcGFyc2VWYWx1ZSh2KS52YWx1ZSk7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnJlbWFpbmRlciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubW9kID0gQmlnSW50ZWdlci5wcm90b3R5cGUucmVtYWluZGVyID0gQmlnSW50ZWdlci5wcm90b3R5cGUubW9kO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUucG93ID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBiID0gbi52YWx1ZSxcbiAgICAgICAgICAgIHZhbHVlLCB4LCB5O1xuICAgICAgICBpZiAoYiA9PT0gMCkgcmV0dXJuIEludGVnZXJbMV07XG4gICAgICAgIGlmIChhID09PSAwKSByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgaWYgKGEgPT09IDEpIHJldHVybiBJbnRlZ2VyWzFdO1xuICAgICAgICBpZiAoYSA9PT0gLTEpIHJldHVybiBuLmlzRXZlbigpID8gSW50ZWdlclsxXSA6IEludGVnZXJbLTFdO1xuICAgICAgICBpZiAobi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gSW50ZWdlclswXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW4uaXNTbWFsbCkgdGhyb3cgbmV3IEVycm9yKFwiVGhlIGV4cG9uZW50IFwiICsgbi50b1N0cmluZygpICsgXCIgaXMgdG9vIGxhcmdlLlwiKTtcbiAgICAgICAgaWYgKHRoaXMuaXNTbWFsbCkge1xuICAgICAgICAgICAgaWYgKGlzUHJlY2lzZSh2YWx1ZSA9IE1hdGgucG93KGEsIGIpKSlcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih0cnVuY2F0ZSh2YWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIHggPSB0aGlzO1xuICAgICAgICB5ID0gSW50ZWdlclsxXTtcbiAgICAgICAgd2hpbGUgKHRydWUpIHtcbiAgICAgICAgICAgIGlmIChiICYgMSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHkgPSB5LnRpbWVzKHgpO1xuICAgICAgICAgICAgICAgIC0tYjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChiID09PSAwKSBicmVhaztcbiAgICAgICAgICAgIGIgLz0gMjtcbiAgICAgICAgICAgIHggPSB4LnNxdWFyZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB5O1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5wb3cgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5wb3c7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLnBvdyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgdmFyIGEgPSB0aGlzLnZhbHVlLCBiID0gbi52YWx1ZTtcbiAgICAgICAgdmFyIF8wID0gQmlnSW50KDApLCBfMSA9IEJpZ0ludCgxKSwgXzIgPSBCaWdJbnQoMik7XG4gICAgICAgIGlmIChiID09PSBfMCkgcmV0dXJuIEludGVnZXJbMV07XG4gICAgICAgIGlmIChhID09PSBfMCkgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgIGlmIChhID09PSBfMSkgcmV0dXJuIEludGVnZXJbMV07XG4gICAgICAgIGlmIChhID09PSBCaWdJbnQoLTEpKSByZXR1cm4gbi5pc0V2ZW4oKSA/IEludGVnZXJbMV0gOiBJbnRlZ2VyWy0xXTtcbiAgICAgICAgaWYgKG4uaXNOZWdhdGl2ZSgpKSByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludChfMCk7XG4gICAgICAgIHZhciB4ID0gdGhpcztcbiAgICAgICAgdmFyIHkgPSBJbnRlZ2VyWzFdO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgaWYgKChiICYgXzEpID09PSBfMSkge1xuICAgICAgICAgICAgICAgIHkgPSB5LnRpbWVzKHgpO1xuICAgICAgICAgICAgICAgIC0tYjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChiID09PSBfMCkgYnJlYWs7XG4gICAgICAgICAgICBiIC89IF8yO1xuICAgICAgICAgICAgeCA9IHguc3F1YXJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubW9kUG93ID0gZnVuY3Rpb24gKGV4cCwgbW9kKSB7XG4gICAgICAgIGV4cCA9IHBhcnNlVmFsdWUoZXhwKTtcbiAgICAgICAgbW9kID0gcGFyc2VWYWx1ZShtb2QpO1xuICAgICAgICBpZiAobW9kLmlzWmVybygpKSB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdGFrZSBtb2RQb3cgd2l0aCBtb2R1bHVzIDBcIik7XG4gICAgICAgIHZhciByID0gSW50ZWdlclsxXSxcbiAgICAgICAgICAgIGJhc2UgPSB0aGlzLm1vZChtb2QpO1xuICAgICAgICBpZiAoZXhwLmlzTmVnYXRpdmUoKSkge1xuICAgICAgICAgICAgZXhwID0gZXhwLm11bHRpcGx5KEludGVnZXJbLTFdKTtcbiAgICAgICAgICAgIGJhc2UgPSBiYXNlLm1vZEludihtb2QpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChleHAuaXNQb3NpdGl2ZSgpKSB7XG4gICAgICAgICAgICBpZiAoYmFzZS5pc1plcm8oKSkgcmV0dXJuIEludGVnZXJbMF07XG4gICAgICAgICAgICBpZiAoZXhwLmlzT2RkKCkpIHIgPSByLm11bHRpcGx5KGJhc2UpLm1vZChtb2QpO1xuICAgICAgICAgICAgZXhwID0gZXhwLmRpdmlkZSgyKTtcbiAgICAgICAgICAgIGJhc2UgPSBiYXNlLnNxdWFyZSgpLm1vZChtb2QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5tb2RQb3cgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm1vZFBvdyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZFBvdztcblxuICAgIGZ1bmN0aW9uIGNvbXBhcmVBYnMoYSwgYikge1xuICAgICAgICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYS5sZW5ndGggPiBiLmxlbmd0aCA/IDEgOiAtMTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKHZhciBpID0gYS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgaWYgKGFbaV0gIT09IGJbaV0pIHJldHVybiBhW2ldID4gYltpXSA/IDEgOiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlQWJzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBiID0gbi52YWx1ZTtcbiAgICAgICAgaWYgKG4uaXNTbWFsbCkgcmV0dXJuIDE7XG4gICAgICAgIHJldHVybiBjb21wYXJlQWJzKGEsIGIpO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlQWJzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgdmFyIG4gPSBwYXJzZVZhbHVlKHYpLFxuICAgICAgICAgICAgYSA9IE1hdGguYWJzKHRoaXMudmFsdWUpLFxuICAgICAgICAgICAgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmIChuLmlzU21hbGwpIHtcbiAgICAgICAgICAgIGIgPSBNYXRoLmFicyhiKTtcbiAgICAgICAgICAgIHJldHVybiBhID09PSBiID8gMCA6IGEgPiBiID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAtMTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuY29tcGFyZUFicyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBhID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdmFyIGIgPSBwYXJzZVZhbHVlKHYpLnZhbHVlO1xuICAgICAgICBhID0gYSA+PSAwID8gYSA6IC1hO1xuICAgICAgICBiID0gYiA+PSAwID8gYiA6IC1iO1xuICAgICAgICByZXR1cm4gYSA9PT0gYiA/IDAgOiBhID4gYiA/IDEgOiAtMTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgLy8gU2VlIGRpc2N1c3Npb24gYWJvdXQgY29tcGFyaXNvbiB3aXRoIEluZmluaXR5OlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGV0ZXJvbHNvbi9CaWdJbnRlZ2VyLmpzL2lzc3Vlcy82MVxuICAgICAgICBpZiAodiA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodiA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KSxcbiAgICAgICAgICAgIGEgPSB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgYiA9IG4udmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnNpZ24gIT09IG4uc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIG4uc2lnbiA/IDEgOiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zaWduID8gLTEgOiAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb21wYXJlQWJzKGEsIGIpICogKHRoaXMuc2lnbiA/IC0xIDogMSk7XG4gICAgfTtcbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlVG8gPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlO1xuXG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgaWYgKHYgPT09IEluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHYgPT09IC1JbmZpbml0eSkge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodiksXG4gICAgICAgICAgICBhID0gdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIGIgPSBuLnZhbHVlO1xuICAgICAgICBpZiAobi5pc1NtYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA9PSBiID8gMCA6IGEgPiBiID8gMSA6IC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhIDwgMCAhPT0gbi5zaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gYSA8IDAgPyAtMSA6IDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGEgPCAwID8gMSA6IC0xO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5jb21wYXJlVG8gPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmNvbXBhcmU7XG5cbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAodikge1xuICAgICAgICBpZiAodiA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodiA9PT0gLUluZmluaXR5KSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgYSA9IHRoaXMudmFsdWU7XG4gICAgICAgIHZhciBiID0gcGFyc2VWYWx1ZSh2KS52YWx1ZTtcbiAgICAgICAgcmV0dXJuIGEgPT09IGIgPyAwIDogYSA+IGIgPyAxIDogLTE7XG4gICAgfVxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuY29tcGFyZVRvID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5jb21wYXJlO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSA9PT0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZXEgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmVxdWFscyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZXEgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmVxdWFscyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmVxID0gQmlnSW50ZWdlci5wcm90b3R5cGUuZXF1YWxzO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUubm90RXF1YWxzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSAhPT0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubmVxID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5ub3RFcXVhbHMgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm5lcSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubm90RXF1YWxzID0gQmlnSW50ZWdlci5wcm90b3R5cGUubmVxID0gQmlnSW50ZWdlci5wcm90b3R5cGUubm90RXF1YWxzO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlciA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgPiAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5ndCA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuZ3JlYXRlciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZ3QgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmdyZWF0ZXIgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ndCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmdyZWF0ZXI7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXIgPSBmdW5jdGlvbiAodikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHYpIDwgMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubHQgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmxlc3NlciA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubHQgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmxlc3NlciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmx0ID0gQmlnSW50ZWdlci5wcm90b3R5cGUubGVzc2VyO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuZ3JlYXRlck9yRXF1YWxzID0gZnVuY3Rpb24gKHYpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZSh2KSA+PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5nZXEgPSBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmdyZWF0ZXJPckVxdWFscyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuZ2VxID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyT3JFcXVhbHMgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5nZXEgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ncmVhdGVyT3JFcXVhbHM7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXJPckVxdWFscyA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUodikgPD0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubGVxID0gTmF0aXZlQmlnSW50LnByb3RvdHlwZS5sZXNzZXJPckVxdWFscyA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUubGVxID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5sZXNzZXJPckVxdWFscyA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmxlcSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmxlc3Nlck9yRXF1YWxzO1xuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWVbMF0gJiAxKSA9PT0gMDtcbiAgICB9O1xuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNFdmVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgJiAxKSA9PT0gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNFdmVuID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgJiBCaWdJbnQoMSkpID09PSBCaWdJbnQoMCk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNPZGQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZVswXSAmIDEpID09PSAxO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc09kZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLnZhbHVlICYgMSkgPT09IDE7XG4gICAgfTtcbiAgICBOYXRpdmVCaWdJbnQucHJvdG90eXBlLmlzT2RkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgJiBCaWdJbnQoMSkpID09PSBCaWdJbnQoMSk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNQb3NpdGl2ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLnNpZ247XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzUG9zaXRpdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID4gMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNQb3NpdGl2ZSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNQb3NpdGl2ZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzTmVnYXRpdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpZ247XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzTmVnYXRpdmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlIDwgMDtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNOZWdhdGl2ZSA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuaXNOZWdhdGl2ZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzVW5pdCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1VuaXQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyh0aGlzLnZhbHVlKSA9PT0gMTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuaXNVbml0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hYnMoKS52YWx1ZSA9PT0gQmlnSW50KDEpO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzWmVybyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSAwO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc1plcm8gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlID09PSBCaWdJbnQoMCk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNEaXZpc2libGVCeSA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KTtcbiAgICAgICAgaWYgKG4uaXNaZXJvKCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKG4uaXNVbml0KCkpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAobi5jb21wYXJlQWJzKDIpID09PSAwKSByZXR1cm4gdGhpcy5pc0V2ZW4oKTtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kKG4pLmlzWmVybygpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc0RpdmlzaWJsZUJ5ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc0RpdmlzaWJsZUJ5ID0gQmlnSW50ZWdlci5wcm90b3R5cGUuaXNEaXZpc2libGVCeTtcblxuICAgIGZ1bmN0aW9uIGlzQmFzaWNQcmltZSh2KSB7XG4gICAgICAgIHZhciBuID0gdi5hYnMoKTtcbiAgICAgICAgaWYgKG4uaXNVbml0KCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgaWYgKG4uZXF1YWxzKDIpIHx8IG4uZXF1YWxzKDMpIHx8IG4uZXF1YWxzKDUpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKG4uaXNFdmVuKCkgfHwgbi5pc0RpdmlzaWJsZUJ5KDMpIHx8IG4uaXNEaXZpc2libGVCeSg1KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBpZiAobi5sZXNzZXIoNDkpKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgLy8gd2UgZG9uJ3Qga25vdyBpZiBpdCdzIHByaW1lOiBsZXQgdGhlIG90aGVyIGZ1bmN0aW9ucyBmaWd1cmUgaXQgb3V0XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWlsbGVyUmFiaW5UZXN0KG4sIGEpIHtcbiAgICAgICAgdmFyIG5QcmV2ID0gbi5wcmV2KCksXG4gICAgICAgICAgICBiID0gblByZXYsXG4gICAgICAgICAgICByID0gMCxcbiAgICAgICAgICAgIGQsIHQsIGksIHg7XG4gICAgICAgIHdoaWxlIChiLmlzRXZlbigpKSBiID0gYi5kaXZpZGUoMiksIHIrKztcbiAgICAgICAgbmV4dDogZm9yIChpID0gMDsgaSA8IGEubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChuLmxlc3NlcihhW2ldKSkgY29udGludWU7XG4gICAgICAgICAgICB4ID0gYmlnSW50KGFbaV0pLm1vZFBvdyhiLCBuKTtcbiAgICAgICAgICAgIGlmICh4LmlzVW5pdCgpIHx8IHguZXF1YWxzKG5QcmV2KSkgY29udGludWU7XG4gICAgICAgICAgICBmb3IgKGQgPSByIC0gMTsgZCAhPSAwOyBkLS0pIHtcbiAgICAgICAgICAgICAgICB4ID0geC5zcXVhcmUoKS5tb2Qobik7XG4gICAgICAgICAgICAgICAgaWYgKHguaXNVbml0KCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoeC5lcXVhbHMoblByZXYpKSBjb250aW51ZSBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIFNldCBcInN0cmljdFwiIHRvIHRydWUgdG8gZm9yY2UgR1JILXN1cHBvcnRlZCBsb3dlciBib3VuZCBvZiAyKmxvZyhOKV4yXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuaXNQcmltZSA9IGZ1bmN0aW9uIChzdHJpY3QpIHtcbiAgICAgICAgdmFyIGlzUHJpbWUgPSBpc0Jhc2ljUHJpbWUodGhpcyk7XG4gICAgICAgIGlmIChpc1ByaW1lICE9PSB1bmRlZmluZWQpIHJldHVybiBpc1ByaW1lO1xuICAgICAgICB2YXIgbiA9IHRoaXMuYWJzKCk7XG4gICAgICAgIHZhciBiaXRzID0gbi5iaXRMZW5ndGgoKTtcbiAgICAgICAgaWYgKGJpdHMgPD0gNjQpXG4gICAgICAgICAgICByZXR1cm4gbWlsbGVyUmFiaW5UZXN0KG4sIFsyLCAzLCA1LCA3LCAxMSwgMTMsIDE3LCAxOSwgMjMsIDI5LCAzMSwgMzddKTtcbiAgICAgICAgdmFyIGxvZ04gPSBNYXRoLmxvZygyKSAqIGJpdHMudG9KU051bWJlcigpO1xuICAgICAgICB2YXIgdCA9IE1hdGguY2VpbCgoc3RyaWN0ID09PSB0cnVlKSA/ICgyICogTWF0aC5wb3cobG9nTiwgMikpIDogbG9nTik7XG4gICAgICAgIGZvciAodmFyIGEgPSBbXSwgaSA9IDA7IGkgPCB0OyBpKyspIHtcbiAgICAgICAgICAgIGEucHVzaChiaWdJbnQoaSArIDIpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWlsbGVyUmFiaW5UZXN0KG4sIGEpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc1ByaW1lID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5pc1ByaW1lID0gQmlnSW50ZWdlci5wcm90b3R5cGUuaXNQcmltZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLmlzUHJvYmFibGVQcmltZSA9IGZ1bmN0aW9uIChpdGVyYXRpb25zKSB7XG4gICAgICAgIHZhciBpc1ByaW1lID0gaXNCYXNpY1ByaW1lKHRoaXMpO1xuICAgICAgICBpZiAoaXNQcmltZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gaXNQcmltZTtcbiAgICAgICAgdmFyIG4gPSB0aGlzLmFicygpO1xuICAgICAgICB2YXIgdCA9IGl0ZXJhdGlvbnMgPT09IHVuZGVmaW5lZCA/IDUgOiBpdGVyYXRpb25zO1xuICAgICAgICBmb3IgKHZhciBhID0gW10sIGkgPSAwOyBpIDwgdDsgaSsrKSB7XG4gICAgICAgICAgICBhLnB1c2goYmlnSW50LnJhbmRCZXR3ZWVuKDIsIG4ubWludXMoMikpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWlsbGVyUmFiaW5UZXN0KG4sIGEpO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5pc1Byb2JhYmxlUHJpbWUgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmlzUHJvYmFibGVQcmltZSA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmlzUHJvYmFibGVQcmltZTtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZEludiA9IGZ1bmN0aW9uIChuKSB7XG4gICAgICAgIHZhciB0ID0gYmlnSW50Lnplcm8sIG5ld1QgPSBiaWdJbnQub25lLCByID0gcGFyc2VWYWx1ZShuKSwgbmV3UiA9IHRoaXMuYWJzKCksIHEsIGxhc3RULCBsYXN0UjtcbiAgICAgICAgd2hpbGUgKCFuZXdSLmlzWmVybygpKSB7XG4gICAgICAgICAgICBxID0gci5kaXZpZGUobmV3Uik7XG4gICAgICAgICAgICBsYXN0VCA9IHQ7XG4gICAgICAgICAgICBsYXN0UiA9IHI7XG4gICAgICAgICAgICB0ID0gbmV3VDtcbiAgICAgICAgICAgIHIgPSBuZXdSO1xuICAgICAgICAgICAgbmV3VCA9IGxhc3RULnN1YnRyYWN0KHEubXVsdGlwbHkobmV3VCkpO1xuICAgICAgICAgICAgbmV3UiA9IGxhc3RSLnN1YnRyYWN0KHEubXVsdGlwbHkobmV3UikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghci5pc1VuaXQoKSkgdGhyb3cgbmV3IEVycm9yKHRoaXMudG9TdHJpbmcoKSArIFwiIGFuZCBcIiArIG4udG9TdHJpbmcoKSArIFwiIGFyZSBub3QgY28tcHJpbWVcIik7XG4gICAgICAgIGlmICh0LmNvbXBhcmUoMCkgPT09IC0xKSB7XG4gICAgICAgICAgICB0ID0gdC5hZGQobik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNOZWdhdGl2ZSgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5uZWdhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5tb2RJbnYgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm1vZEludiA9IEJpZ0ludGVnZXIucHJvdG90eXBlLm1vZEludjtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmICh0aGlzLnNpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBzdWJ0cmFjdFNtYWxsKHZhbHVlLCAxLCB0aGlzLnNpZ24pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihhZGRTbWFsbCh2YWx1ZSwgMSksIHRoaXMuc2lnbik7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSArIDEgPCBNQVhfSU5UKSByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih2YWx1ZSArIDEpO1xuICAgICAgICByZXR1cm4gbmV3IEJpZ0ludGVnZXIoTUFYX0lOVF9BUlIsIGZhbHNlKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSArIEJpZ0ludCgxKSk7XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUucHJldiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgaWYgKHRoaXMuc2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKGFkZFNtYWxsKHZhbHVlLCAxKSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1YnRyYWN0U21hbGwodmFsdWUsIDEsIHRoaXMuc2lnbik7XG4gICAgfTtcbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnByZXYgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSAtIDEgPiAtTUFYX0lOVCkgcmV0dXJuIG5ldyBTbWFsbEludGVnZXIodmFsdWUgLSAxKTtcbiAgICAgICAgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKE1BWF9JTlRfQVJSLCB0cnVlKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUucHJldiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQodGhpcy52YWx1ZSAtIEJpZ0ludCgxKSk7XG4gICAgfVxuXG4gICAgdmFyIHBvd2Vyc09mVHdvID0gWzFdO1xuICAgIHdoaWxlICgyICogcG93ZXJzT2ZUd29bcG93ZXJzT2ZUd28ubGVuZ3RoIC0gMV0gPD0gQkFTRSkgcG93ZXJzT2ZUd28ucHVzaCgyICogcG93ZXJzT2ZUd29bcG93ZXJzT2ZUd28ubGVuZ3RoIC0gMV0pO1xuICAgIHZhciBwb3dlcnMyTGVuZ3RoID0gcG93ZXJzT2ZUd28ubGVuZ3RoLCBoaWdoZXN0UG93ZXIyID0gcG93ZXJzT2ZUd29bcG93ZXJzMkxlbmd0aCAtIDFdO1xuXG4gICAgZnVuY3Rpb24gc2hpZnRfaXNTbWFsbChuKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhuKSA8PSBCQVNFO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnNoaWZ0TGVmdCA9IGZ1bmN0aW9uICh2KSB7XG4gICAgICAgIHZhciBuID0gcGFyc2VWYWx1ZSh2KS50b0pTTnVtYmVyKCk7XG4gICAgICAgIGlmICghc2hpZnRfaXNTbWFsbChuKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhuKSArIFwiIGlzIHRvbyBsYXJnZSBmb3Igc2hpZnRpbmcuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuIDwgMCkgcmV0dXJuIHRoaXMuc2hpZnRSaWdodCgtbik7XG4gICAgICAgIHZhciByZXN1bHQgPSB0aGlzO1xuICAgICAgICBpZiAocmVzdWx0LmlzWmVybygpKSByZXR1cm4gcmVzdWx0O1xuICAgICAgICB3aGlsZSAobiA+PSBwb3dlcnMyTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQubXVsdGlwbHkoaGlnaGVzdFBvd2VyMik7XG4gICAgICAgICAgICBuIC09IHBvd2VyczJMZW5ndGggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQubXVsdGlwbHkocG93ZXJzT2ZUd29bbl0pO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5zaGlmdExlZnQgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnNoaWZ0TGVmdCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnNoaWZ0TGVmdDtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnNoaWZ0UmlnaHQgPSBmdW5jdGlvbiAodikge1xuICAgICAgICB2YXIgcmVtUXVvO1xuICAgICAgICB2YXIgbiA9IHBhcnNlVmFsdWUodikudG9KU051bWJlcigpO1xuICAgICAgICBpZiAoIXNoaWZ0X2lzU21hbGwobikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihTdHJpbmcobikgKyBcIiBpcyB0b28gbGFyZ2UgZm9yIHNoaWZ0aW5nLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobiA8IDApIHJldHVybiB0aGlzLnNoaWZ0TGVmdCgtbik7XG4gICAgICAgIHZhciByZXN1bHQgPSB0aGlzO1xuICAgICAgICB3aGlsZSAobiA+PSBwb3dlcnMyTGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzWmVybygpIHx8IChyZXN1bHQuaXNOZWdhdGl2ZSgpICYmIHJlc3VsdC5pc1VuaXQoKSkpIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICByZW1RdW8gPSBkaXZNb2RBbnkocmVzdWx0LCBoaWdoZXN0UG93ZXIyKTtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlbVF1b1sxXS5pc05lZ2F0aXZlKCkgPyByZW1RdW9bMF0ucHJldigpIDogcmVtUXVvWzBdO1xuICAgICAgICAgICAgbiAtPSBwb3dlcnMyTGVuZ3RoIC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZW1RdW8gPSBkaXZNb2RBbnkocmVzdWx0LCBwb3dlcnNPZlR3b1tuXSk7XG4gICAgICAgIHJldHVybiByZW1RdW9bMV0uaXNOZWdhdGl2ZSgpID8gcmVtUXVvWzBdLnByZXYoKSA6IHJlbVF1b1swXTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUuc2hpZnRSaWdodCA9IFNtYWxsSW50ZWdlci5wcm90b3R5cGUuc2hpZnRSaWdodCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnNoaWZ0UmlnaHQ7XG5cbiAgICBmdW5jdGlvbiBiaXR3aXNlKHgsIHksIGZuKSB7XG4gICAgICAgIHkgPSBwYXJzZVZhbHVlKHkpO1xuICAgICAgICB2YXIgeFNpZ24gPSB4LmlzTmVnYXRpdmUoKSwgeVNpZ24gPSB5LmlzTmVnYXRpdmUoKTtcbiAgICAgICAgdmFyIHhSZW0gPSB4U2lnbiA/IHgubm90KCkgOiB4LFxuICAgICAgICAgICAgeVJlbSA9IHlTaWduID8geS5ub3QoKSA6IHk7XG4gICAgICAgIHZhciB4RGlnaXQgPSAwLCB5RGlnaXQgPSAwO1xuICAgICAgICB2YXIgeERpdk1vZCA9IG51bGwsIHlEaXZNb2QgPSBudWxsO1xuICAgICAgICB2YXIgcmVzdWx0ID0gW107XG4gICAgICAgIHdoaWxlICgheFJlbS5pc1plcm8oKSB8fCAheVJlbS5pc1plcm8oKSkge1xuICAgICAgICAgICAgeERpdk1vZCA9IGRpdk1vZEFueSh4UmVtLCBoaWdoZXN0UG93ZXIyKTtcbiAgICAgICAgICAgIHhEaWdpdCA9IHhEaXZNb2RbMV0udG9KU051bWJlcigpO1xuICAgICAgICAgICAgaWYgKHhTaWduKSB7XG4gICAgICAgICAgICAgICAgeERpZ2l0ID0gaGlnaGVzdFBvd2VyMiAtIDEgLSB4RGlnaXQ7IC8vIHR3bydzIGNvbXBsZW1lbnQgZm9yIG5lZ2F0aXZlIG51bWJlcnNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeURpdk1vZCA9IGRpdk1vZEFueSh5UmVtLCBoaWdoZXN0UG93ZXIyKTtcbiAgICAgICAgICAgIHlEaWdpdCA9IHlEaXZNb2RbMV0udG9KU051bWJlcigpO1xuICAgICAgICAgICAgaWYgKHlTaWduKSB7XG4gICAgICAgICAgICAgICAgeURpZ2l0ID0gaGlnaGVzdFBvd2VyMiAtIDEgLSB5RGlnaXQ7IC8vIHR3bydzIGNvbXBsZW1lbnQgZm9yIG5lZ2F0aXZlIG51bWJlcnNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgeFJlbSA9IHhEaXZNb2RbMF07XG4gICAgICAgICAgICB5UmVtID0geURpdk1vZFswXTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGZuKHhEaWdpdCwgeURpZ2l0KSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHN1bSA9IGZuKHhTaWduID8gMSA6IDAsIHlTaWduID8gMSA6IDApICE9PSAwID8gYmlnSW50KC0xKSA6IGJpZ0ludCgwKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IHJlc3VsdC5sZW5ndGggLSAxOyBpID49IDA7IGkgLT0gMSkge1xuICAgICAgICAgICAgc3VtID0gc3VtLm11bHRpcGx5KGhpZ2hlc3RQb3dlcjIpLmFkZChiaWdJbnQocmVzdWx0W2ldKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN1bTtcbiAgICB9XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ub3QgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm5lZ2F0ZSgpLnByZXYoKTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUubm90ID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS5ub3QgPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS5ub3Q7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS5hbmQgPSBmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gYml0d2lzZSh0aGlzLCBuLCBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSAmIGI7IH0pO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5hbmQgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmFuZCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmFuZDtcblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLm9yID0gZnVuY3Rpb24gKG4pIHtcbiAgICAgICAgcmV0dXJuIGJpdHdpc2UodGhpcywgbiwgZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgfCBiOyB9KTtcbiAgICB9O1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUub3IgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLm9yID0gQmlnSW50ZWdlci5wcm90b3R5cGUub3I7XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS54b3IgPSBmdW5jdGlvbiAobikge1xuICAgICAgICByZXR1cm4gYml0d2lzZSh0aGlzLCBuLCBmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYSBeIGI7IH0pO1xuICAgIH07XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS54b3IgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnhvciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnhvcjtcblxuICAgIHZhciBMT0JNQVNLX0kgPSAxIDw8IDMwLCBMT0JNQVNLX0JJID0gKEJBU0UgJiAtQkFTRSkgKiAoQkFTRSAmIC1CQVNFKSB8IExPQk1BU0tfSTtcbiAgICBmdW5jdGlvbiByb3VnaExPQihuKSB7IC8vIGdldCBsb3dlc3RPbmVCaXQgKHJvdWdoKVxuICAgICAgICAvLyBTbWFsbEludGVnZXI6IHJldHVybiBNaW4obG93ZXN0T25lQml0KG4pLCAxIDw8IDMwKVxuICAgICAgICAvLyBCaWdJbnRlZ2VyOiByZXR1cm4gTWluKGxvd2VzdE9uZUJpdChuKSwgMSA8PCAxNCkgW0JBU0U9MWU3XVxuICAgICAgICB2YXIgdiA9IG4udmFsdWUsXG4gICAgICAgICAgICB4ID0gdHlwZW9mIHYgPT09IFwibnVtYmVyXCIgPyB2IHwgTE9CTUFTS19JIDpcbiAgICAgICAgICAgICAgICB0eXBlb2YgdiA9PT0gXCJiaWdpbnRcIiA/IHYgfCBCaWdJbnQoTE9CTUFTS19JKSA6XG4gICAgICAgICAgICAgICAgICAgIHZbMF0gKyB2WzFdICogQkFTRSB8IExPQk1BU0tfQkk7XG4gICAgICAgIHJldHVybiB4ICYgLXg7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaW50ZWdlckxvZ2FyaXRobSh2YWx1ZSwgYmFzZSkge1xuICAgICAgICBpZiAoYmFzZS5jb21wYXJlVG8odmFsdWUpIDw9IDApIHtcbiAgICAgICAgICAgIHZhciB0bXAgPSBpbnRlZ2VyTG9nYXJpdGhtKHZhbHVlLCBiYXNlLnNxdWFyZShiYXNlKSk7XG4gICAgICAgICAgICB2YXIgcCA9IHRtcC5wO1xuICAgICAgICAgICAgdmFyIGUgPSB0bXAuZTtcbiAgICAgICAgICAgIHZhciB0ID0gcC5tdWx0aXBseShiYXNlKTtcbiAgICAgICAgICAgIHJldHVybiB0LmNvbXBhcmVUbyh2YWx1ZSkgPD0gMCA/IHsgcDogdCwgZTogZSAqIDIgKyAxIH0gOiB7IHA6IHAsIGU6IGUgKiAyIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcDogYmlnSW50KDEpLCBlOiAwIH07XG4gICAgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUuYml0TGVuZ3RoID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgbiA9IHRoaXM7XG4gICAgICAgIGlmIChuLmNvbXBhcmVUbyhiaWdJbnQoMCkpIDwgMCkge1xuICAgICAgICAgICAgbiA9IG4ubmVnYXRlKCkuc3VidHJhY3QoYmlnSW50KDEpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobi5jb21wYXJlVG8oYmlnSW50KDApKSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGJpZ0ludCgwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmlnSW50KGludGVnZXJMb2dhcml0aG0obiwgYmlnSW50KDIpKS5lKS5hZGQoYmlnSW50KDEpKTtcbiAgICB9XG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS5iaXRMZW5ndGggPSBTbWFsbEludGVnZXIucHJvdG90eXBlLmJpdExlbmd0aCA9IEJpZ0ludGVnZXIucHJvdG90eXBlLmJpdExlbmd0aDtcblxuICAgIGZ1bmN0aW9uIG1heChhLCBiKSB7XG4gICAgICAgIGEgPSBwYXJzZVZhbHVlKGEpO1xuICAgICAgICBiID0gcGFyc2VWYWx1ZShiKTtcbiAgICAgICAgcmV0dXJuIGEuZ3JlYXRlcihiKSA/IGEgOiBiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtaW4oYSwgYikge1xuICAgICAgICBhID0gcGFyc2VWYWx1ZShhKTtcbiAgICAgICAgYiA9IHBhcnNlVmFsdWUoYik7XG4gICAgICAgIHJldHVybiBhLmxlc3NlcihiKSA/IGEgOiBiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnY2QoYSwgYikge1xuICAgICAgICBhID0gcGFyc2VWYWx1ZShhKS5hYnMoKTtcbiAgICAgICAgYiA9IHBhcnNlVmFsdWUoYikuYWJzKCk7XG4gICAgICAgIGlmIChhLmVxdWFscyhiKSkgcmV0dXJuIGE7XG4gICAgICAgIGlmIChhLmlzWmVybygpKSByZXR1cm4gYjtcbiAgICAgICAgaWYgKGIuaXNaZXJvKCkpIHJldHVybiBhO1xuICAgICAgICB2YXIgYyA9IEludGVnZXJbMV0sIGQsIHQ7XG4gICAgICAgIHdoaWxlIChhLmlzRXZlbigpICYmIGIuaXNFdmVuKCkpIHtcbiAgICAgICAgICAgIGQgPSBtaW4ocm91Z2hMT0IoYSksIHJvdWdoTE9CKGIpKTtcbiAgICAgICAgICAgIGEgPSBhLmRpdmlkZShkKTtcbiAgICAgICAgICAgIGIgPSBiLmRpdmlkZShkKTtcbiAgICAgICAgICAgIGMgPSBjLm11bHRpcGx5KGQpO1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChhLmlzRXZlbigpKSB7XG4gICAgICAgICAgICBhID0gYS5kaXZpZGUocm91Z2hMT0IoYSkpO1xuICAgICAgICB9XG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIHdoaWxlIChiLmlzRXZlbigpKSB7XG4gICAgICAgICAgICAgICAgYiA9IGIuZGl2aWRlKHJvdWdoTE9CKGIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChhLmdyZWF0ZXIoYikpIHtcbiAgICAgICAgICAgICAgICB0ID0gYjsgYiA9IGE7IGEgPSB0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYiA9IGIuc3VidHJhY3QoYSk7XG4gICAgICAgIH0gd2hpbGUgKCFiLmlzWmVybygpKTtcbiAgICAgICAgcmV0dXJuIGMuaXNVbml0KCkgPyBhIDogYS5tdWx0aXBseShjKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGNtKGEsIGIpIHtcbiAgICAgICAgYSA9IHBhcnNlVmFsdWUoYSkuYWJzKCk7XG4gICAgICAgIGIgPSBwYXJzZVZhbHVlKGIpLmFicygpO1xuICAgICAgICByZXR1cm4gYS5kaXZpZGUoZ2NkKGEsIGIpKS5tdWx0aXBseShiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmFuZEJldHdlZW4oYSwgYikge1xuICAgICAgICBhID0gcGFyc2VWYWx1ZShhKTtcbiAgICAgICAgYiA9IHBhcnNlVmFsdWUoYik7XG4gICAgICAgIHZhciBsb3cgPSBtaW4oYSwgYiksIGhpZ2ggPSBtYXgoYSwgYik7XG4gICAgICAgIHZhciByYW5nZSA9IGhpZ2guc3VidHJhY3QobG93KS5hZGQoMSk7XG4gICAgICAgIGlmIChyYW5nZS5pc1NtYWxsKSByZXR1cm4gbG93LmFkZChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByYW5nZSkpO1xuICAgICAgICB2YXIgZGlnaXRzID0gdG9CYXNlKHJhbmdlLCBCQVNFKS52YWx1ZTtcbiAgICAgICAgdmFyIHJlc3VsdCA9IFtdLCByZXN0cmljdGVkID0gdHJ1ZTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaWdpdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciB0b3AgPSByZXN0cmljdGVkID8gZGlnaXRzW2ldIDogQkFTRTtcbiAgICAgICAgICAgIHZhciBkaWdpdCA9IHRydW5jYXRlKE1hdGgucmFuZG9tKCkgKiB0b3ApO1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goZGlnaXQpO1xuICAgICAgICAgICAgaWYgKGRpZ2l0IDwgdG9wKSByZXN0cmljdGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxvdy5hZGQoSW50ZWdlci5mcm9tQXJyYXkocmVzdWx0LCBCQVNFLCBmYWxzZSkpO1xuICAgIH1cblxuICAgIHZhciBwYXJzZUJhc2UgPSBmdW5jdGlvbiAodGV4dCwgYmFzZSwgYWxwaGFiZXQsIGNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgYWxwaGFiZXQgPSBhbHBoYWJldCB8fCBERUZBVUxUX0FMUEhBQkVUO1xuICAgICAgICB0ZXh0ID0gU3RyaW5nKHRleHQpO1xuICAgICAgICBpZiAoIWNhc2VTZW5zaXRpdmUpIHtcbiAgICAgICAgICAgIHRleHQgPSB0ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICBhbHBoYWJldCA9IGFscGhhYmV0LnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxlbmd0aCA9IHRleHQubGVuZ3RoO1xuICAgICAgICB2YXIgaTtcbiAgICAgICAgdmFyIGFic0Jhc2UgPSBNYXRoLmFicyhiYXNlKTtcbiAgICAgICAgdmFyIGFscGhhYmV0VmFsdWVzID0ge307XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhbHBoYWJldC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgYWxwaGFiZXRWYWx1ZXNbYWxwaGFiZXRbaV1dID0gaTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjID0gdGV4dFtpXTtcbiAgICAgICAgICAgIGlmIChjID09PSBcIi1cIikgY29udGludWU7XG4gICAgICAgICAgICBpZiAoYyBpbiBhbHBoYWJldFZhbHVlcykge1xuICAgICAgICAgICAgICAgIGlmIChhbHBoYWJldFZhbHVlc1tjXSA+PSBhYnNCYXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjID09PSBcIjFcIiAmJiBhYnNCYXNlID09PSAxKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGMgKyBcIiBpcyBub3QgYSB2YWxpZCBkaWdpdCBpbiBiYXNlIFwiICsgYmFzZSArIFwiLlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYmFzZSA9IHBhcnNlVmFsdWUoYmFzZSk7XG4gICAgICAgIHZhciBkaWdpdHMgPSBbXTtcbiAgICAgICAgdmFyIGlzTmVnYXRpdmUgPSB0ZXh0WzBdID09PSBcIi1cIjtcbiAgICAgICAgZm9yIChpID0gaXNOZWdhdGl2ZSA/IDEgOiAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIGMgPSB0ZXh0W2ldO1xuICAgICAgICAgICAgaWYgKGMgaW4gYWxwaGFiZXRWYWx1ZXMpIGRpZ2l0cy5wdXNoKHBhcnNlVmFsdWUoYWxwaGFiZXRWYWx1ZXNbY10pKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGMgPT09IFwiPFwiKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gaTtcbiAgICAgICAgICAgICAgICBkbyB7IGkrKzsgfSB3aGlsZSAodGV4dFtpXSAhPT0gXCI+XCIgJiYgaSA8IHRleHQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICBkaWdpdHMucHVzaChwYXJzZVZhbHVlKHRleHQuc2xpY2Uoc3RhcnQgKyAxLCBpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB0aHJvdyBuZXcgRXJyb3IoYyArIFwiIGlzIG5vdCBhIHZhbGlkIGNoYXJhY3RlclwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VCYXNlRnJvbUFycmF5KGRpZ2l0cywgYmFzZSwgaXNOZWdhdGl2ZSk7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlQmFzZUZyb21BcnJheShkaWdpdHMsIGJhc2UsIGlzTmVnYXRpdmUpIHtcbiAgICAgICAgdmFyIHZhbCA9IEludGVnZXJbMF0sIHBvdyA9IEludGVnZXJbMV0sIGk7XG4gICAgICAgIGZvciAoaSA9IGRpZ2l0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgdmFsID0gdmFsLmFkZChkaWdpdHNbaV0udGltZXMocG93KSk7XG4gICAgICAgICAgICBwb3cgPSBwb3cudGltZXMoYmFzZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTmVnYXRpdmUgPyB2YWwubmVnYXRlKCkgOiB2YWw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RyaW5naWZ5KGRpZ2l0LCBhbHBoYWJldCkge1xuICAgICAgICBhbHBoYWJldCA9IGFscGhhYmV0IHx8IERFRkFVTFRfQUxQSEFCRVQ7XG4gICAgICAgIGlmIChkaWdpdCA8IGFscGhhYmV0Lmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGFscGhhYmV0W2RpZ2l0XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gXCI8XCIgKyBkaWdpdCArIFwiPlwiO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvQmFzZShuLCBiYXNlKSB7XG4gICAgICAgIGJhc2UgPSBiaWdJbnQoYmFzZSk7XG4gICAgICAgIGlmIChiYXNlLmlzWmVybygpKSB7XG4gICAgICAgICAgICBpZiAobi5pc1plcm8oKSkgcmV0dXJuIHsgdmFsdWU6IFswXSwgaXNOZWdhdGl2ZTogZmFsc2UgfTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBjb252ZXJ0IG5vbnplcm8gbnVtYmVycyB0byBiYXNlIDAuXCIpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiYXNlLmVxdWFscygtMSkpIHtcbiAgICAgICAgICAgIGlmIChuLmlzWmVybygpKSByZXR1cm4geyB2YWx1ZTogWzBdLCBpc05lZ2F0aXZlOiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKG4uaXNOZWdhdGl2ZSgpKVxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBbXS5jb25jYXQuYXBwbHkoW10sIEFycmF5LmFwcGx5KG51bGwsIEFycmF5KC1uLnRvSlNOdW1iZXIoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKEFycmF5LnByb3RvdHlwZS52YWx1ZU9mLCBbMSwgMF0pXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIGlzTmVnYXRpdmU6IGZhbHNlXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgdmFyIGFyciA9IEFycmF5LmFwcGx5KG51bGwsIEFycmF5KG4udG9KU051bWJlcigpIC0gMSkpXG4gICAgICAgICAgICAgICAgLm1hcChBcnJheS5wcm90b3R5cGUudmFsdWVPZiwgWzAsIDFdKTtcbiAgICAgICAgICAgIGFyci51bnNoaWZ0KFsxXSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBbXS5jb25jYXQuYXBwbHkoW10sIGFyciksXG4gICAgICAgICAgICAgICAgaXNOZWdhdGl2ZTogZmFsc2VcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgbmVnID0gZmFsc2U7XG4gICAgICAgIGlmIChuLmlzTmVnYXRpdmUoKSAmJiBiYXNlLmlzUG9zaXRpdmUoKSkge1xuICAgICAgICAgICAgbmVnID0gdHJ1ZTtcbiAgICAgICAgICAgIG4gPSBuLmFicygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiYXNlLmlzVW5pdCgpKSB7XG4gICAgICAgICAgICBpZiAobi5pc1plcm8oKSkgcmV0dXJuIHsgdmFsdWU6IFswXSwgaXNOZWdhdGl2ZTogZmFsc2UgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogQXJyYXkuYXBwbHkobnVsbCwgQXJyYXkobi50b0pTTnVtYmVyKCkpKVxuICAgICAgICAgICAgICAgICAgICAubWFwKE51bWJlci5wcm90b3R5cGUudmFsdWVPZiwgMSksXG4gICAgICAgICAgICAgICAgaXNOZWdhdGl2ZTogbmVnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHZhciBvdXQgPSBbXTtcbiAgICAgICAgdmFyIGxlZnQgPSBuLCBkaXZtb2Q7XG4gICAgICAgIHdoaWxlIChsZWZ0LmlzTmVnYXRpdmUoKSB8fCBsZWZ0LmNvbXBhcmVBYnMoYmFzZSkgPj0gMCkge1xuICAgICAgICAgICAgZGl2bW9kID0gbGVmdC5kaXZtb2QoYmFzZSk7XG4gICAgICAgICAgICBsZWZ0ID0gZGl2bW9kLnF1b3RpZW50O1xuICAgICAgICAgICAgdmFyIGRpZ2l0ID0gZGl2bW9kLnJlbWFpbmRlcjtcbiAgICAgICAgICAgIGlmIChkaWdpdC5pc05lZ2F0aXZlKCkpIHtcbiAgICAgICAgICAgICAgICBkaWdpdCA9IGJhc2UubWludXMoZGlnaXQpLmFicygpO1xuICAgICAgICAgICAgICAgIGxlZnQgPSBsZWZ0Lm5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG91dC5wdXNoKGRpZ2l0LnRvSlNOdW1iZXIoKSk7XG4gICAgICAgIH1cbiAgICAgICAgb3V0LnB1c2gobGVmdC50b0pTTnVtYmVyKCkpO1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogb3V0LnJldmVyc2UoKSwgaXNOZWdhdGl2ZTogbmVnIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9CYXNlU3RyaW5nKG4sIGJhc2UsIGFscGhhYmV0KSB7XG4gICAgICAgIHZhciBhcnIgPSB0b0Jhc2UobiwgYmFzZSk7XG4gICAgICAgIHJldHVybiAoYXJyLmlzTmVnYXRpdmUgPyBcIi1cIiA6IFwiXCIpICsgYXJyLnZhbHVlLm1hcChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZ2lmeSh4LCBhbHBoYWJldCk7XG4gICAgICAgIH0pLmpvaW4oJycpO1xuICAgIH1cblxuICAgIEJpZ0ludGVnZXIucHJvdG90eXBlLnRvQXJyYXkgPSBmdW5jdGlvbiAocmFkaXgpIHtcbiAgICAgICAgcmV0dXJuIHRvQmFzZSh0aGlzLCByYWRpeCk7XG4gICAgfTtcblxuICAgIFNtYWxsSW50ZWdlci5wcm90b3R5cGUudG9BcnJheSA9IGZ1bmN0aW9uIChyYWRpeCkge1xuICAgICAgICByZXR1cm4gdG9CYXNlKHRoaXMsIHJhZGl4KTtcbiAgICB9O1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24gKHJhZGl4KSB7XG4gICAgICAgIHJldHVybiB0b0Jhc2UodGhpcywgcmFkaXgpO1xuICAgIH07XG5cbiAgICBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uIChyYWRpeCwgYWxwaGFiZXQpIHtcbiAgICAgICAgaWYgKHJhZGl4ID09PSB1bmRlZmluZWQpIHJhZGl4ID0gMTA7XG4gICAgICAgIGlmIChyYWRpeCAhPT0gMTApIHJldHVybiB0b0Jhc2VTdHJpbmcodGhpcywgcmFkaXgsIGFscGhhYmV0KTtcbiAgICAgICAgdmFyIHYgPSB0aGlzLnZhbHVlLCBsID0gdi5sZW5ndGgsIHN0ciA9IFN0cmluZyh2Wy0tbF0pLCB6ZXJvcyA9IFwiMDAwMDAwMFwiLCBkaWdpdDtcbiAgICAgICAgd2hpbGUgKC0tbCA+PSAwKSB7XG4gICAgICAgICAgICBkaWdpdCA9IFN0cmluZyh2W2xdKTtcbiAgICAgICAgICAgIHN0ciArPSB6ZXJvcy5zbGljZShkaWdpdC5sZW5ndGgpICsgZGlnaXQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHNpZ24gPSB0aGlzLnNpZ24gPyBcIi1cIiA6IFwiXCI7XG4gICAgICAgIHJldHVybiBzaWduICsgc3RyO1xuICAgIH07XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gKHJhZGl4LCBhbHBoYWJldCkge1xuICAgICAgICBpZiAocmFkaXggPT09IHVuZGVmaW5lZCkgcmFkaXggPSAxMDtcbiAgICAgICAgaWYgKHJhZGl4ICE9IDEwKSByZXR1cm4gdG9CYXNlU3RyaW5nKHRoaXMsIHJhZGl4LCBhbHBoYWJldCk7XG4gICAgICAgIHJldHVybiBTdHJpbmcodGhpcy52YWx1ZSk7XG4gICAgfTtcblxuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudG9TdHJpbmcgPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnRvU3RyaW5nO1xuXG4gICAgTmF0aXZlQmlnSW50LnByb3RvdHlwZS50b0pTT04gPSBCaWdJbnRlZ2VyLnByb3RvdHlwZS50b0pTT04gPSBTbWFsbEludGVnZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTsgfVxuXG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUudmFsdWVPZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRoaXMudG9TdHJpbmcoKSwgMTApO1xuICAgIH07XG4gICAgQmlnSW50ZWdlci5wcm90b3R5cGUudG9KU051bWJlciA9IEJpZ0ludGVnZXIucHJvdG90eXBlLnZhbHVlT2Y7XG5cbiAgICBTbWFsbEludGVnZXIucHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH07XG4gICAgU21hbGxJbnRlZ2VyLnByb3RvdHlwZS50b0pTTnVtYmVyID0gU21hbGxJbnRlZ2VyLnByb3RvdHlwZS52YWx1ZU9mO1xuICAgIE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudmFsdWVPZiA9IE5hdGl2ZUJpZ0ludC5wcm90b3R5cGUudG9KU051bWJlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHRoaXMudG9TdHJpbmcoKSwgMTApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlU3RyaW5nVmFsdWUodikge1xuICAgICAgICBpZiAoaXNQcmVjaXNlKCt2KSkge1xuICAgICAgICAgICAgdmFyIHggPSArdjtcbiAgICAgICAgICAgIGlmICh4ID09PSB0cnVuY2F0ZSh4KSlcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwcG9ydHNOYXRpdmVCaWdJbnQgPyBuZXcgTmF0aXZlQmlnSW50KEJpZ0ludCh4KSkgOiBuZXcgU21hbGxJbnRlZ2VyKHgpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBpbnRlZ2VyOiBcIiArIHYpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzaWduID0gdlswXSA9PT0gXCItXCI7XG4gICAgICAgIGlmIChzaWduKSB2ID0gdi5zbGljZSgxKTtcbiAgICAgICAgdmFyIHNwbGl0ID0gdi5zcGxpdCgvZS9pKTtcbiAgICAgICAgaWYgKHNwbGl0Lmxlbmd0aCA+IDIpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgaW50ZWdlcjogXCIgKyBzcGxpdC5qb2luKFwiZVwiKSk7XG4gICAgICAgIGlmIChzcGxpdC5sZW5ndGggPT09IDIpIHtcbiAgICAgICAgICAgIHZhciBleHAgPSBzcGxpdFsxXTtcbiAgICAgICAgICAgIGlmIChleHBbMF0gPT09IFwiK1wiKSBleHAgPSBleHAuc2xpY2UoMSk7XG4gICAgICAgICAgICBleHAgPSArZXhwO1xuICAgICAgICAgICAgaWYgKGV4cCAhPT0gdHJ1bmNhdGUoZXhwKSB8fCAhaXNQcmVjaXNlKGV4cCkpIHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgaW50ZWdlcjogXCIgKyBleHAgKyBcIiBpcyBub3QgYSB2YWxpZCBleHBvbmVudC5cIik7XG4gICAgICAgICAgICB2YXIgdGV4dCA9IHNwbGl0WzBdO1xuICAgICAgICAgICAgdmFyIGRlY2ltYWxQbGFjZSA9IHRleHQuaW5kZXhPZihcIi5cIik7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbFBsYWNlID49IDApIHtcbiAgICAgICAgICAgICAgICBleHAgLT0gdGV4dC5sZW5ndGggLSBkZWNpbWFsUGxhY2UgLSAxO1xuICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnNsaWNlKDAsIGRlY2ltYWxQbGFjZSkgKyB0ZXh0LnNsaWNlKGRlY2ltYWxQbGFjZSArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGV4cCA8IDApIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBpbmNsdWRlIG5lZ2F0aXZlIGV4cG9uZW50IHBhcnQgZm9yIGludGVnZXJzXCIpO1xuICAgICAgICAgICAgdGV4dCArPSAobmV3IEFycmF5KGV4cCArIDEpKS5qb2luKFwiMFwiKTtcbiAgICAgICAgICAgIHYgPSB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHZhciBpc1ZhbGlkID0gL14oWzAtOV1bMC05XSopJC8udGVzdCh2KTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGludGVnZXI6IFwiICsgdik7XG4gICAgICAgIGlmIChzdXBwb3J0c05hdGl2ZUJpZ0ludCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVCaWdJbnQoQmlnSW50KHNpZ24gPyBcIi1cIiArIHYgOiB2KSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHIgPSBbXSwgbWF4ID0gdi5sZW5ndGgsIGwgPSBMT0dfQkFTRSwgbWluID0gbWF4IC0gbDtcbiAgICAgICAgd2hpbGUgKG1heCA+IDApIHtcbiAgICAgICAgICAgIHIucHVzaCgrdi5zbGljZShtaW4sIG1heCkpO1xuICAgICAgICAgICAgbWluIC09IGw7XG4gICAgICAgICAgICBpZiAobWluIDwgMCkgbWluID0gMDtcbiAgICAgICAgICAgIG1heCAtPSBsO1xuICAgICAgICB9XG4gICAgICAgIHRyaW0ocik7XG4gICAgICAgIHJldHVybiBuZXcgQmlnSW50ZWdlcihyLCBzaWduKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzZU51bWJlclZhbHVlKHYpIHtcbiAgICAgICAgaWYgKHN1cHBvcnRzTmF0aXZlQmlnSW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludChCaWdJbnQodikpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1ByZWNpc2UodikpIHtcbiAgICAgICAgICAgIGlmICh2ICE9PSB0cnVuY2F0ZSh2KSkgdGhyb3cgbmV3IEVycm9yKHYgKyBcIiBpcyBub3QgYW4gaW50ZWdlci5cIik7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNtYWxsSW50ZWdlcih2KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmdWYWx1ZSh2LnRvU3RyaW5nKCkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlVmFsdWUodikge1xuICAgICAgICBpZiAodHlwZW9mIHYgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBwYXJzZU51bWJlclZhbHVlKHYpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlU3RyaW5nVmFsdWUodik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2ID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUJpZ0ludCh2KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gICAgLy8gUHJlLWRlZmluZSBudW1iZXJzIGluIHJhbmdlIFstOTk5LDk5OV1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykge1xuICAgICAgICBJbnRlZ2VyW2ldID0gcGFyc2VWYWx1ZShpKTtcbiAgICAgICAgaWYgKGkgPiAwKSBJbnRlZ2VyWy1pXSA9IHBhcnNlVmFsdWUoLWkpO1xuICAgIH1cbiAgICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEludGVnZXIub25lID0gSW50ZWdlclsxXTtcbiAgICBJbnRlZ2VyLnplcm8gPSBJbnRlZ2VyWzBdO1xuICAgIEludGVnZXIubWludXNPbmUgPSBJbnRlZ2VyWy0xXTtcbiAgICBJbnRlZ2VyLm1heCA9IG1heDtcbiAgICBJbnRlZ2VyLm1pbiA9IG1pbjtcbiAgICBJbnRlZ2VyLmdjZCA9IGdjZDtcbiAgICBJbnRlZ2VyLmxjbSA9IGxjbTtcbiAgICBJbnRlZ2VyLmlzSW5zdGFuY2UgPSBmdW5jdGlvbiAoeCkgeyByZXR1cm4geCBpbnN0YW5jZW9mIEJpZ0ludGVnZXIgfHwgeCBpbnN0YW5jZW9mIFNtYWxsSW50ZWdlciB8fCB4IGluc3RhbmNlb2YgTmF0aXZlQmlnSW50OyB9O1xuICAgIEludGVnZXIucmFuZEJldHdlZW4gPSByYW5kQmV0d2VlbjtcblxuICAgIEludGVnZXIuZnJvbUFycmF5ID0gZnVuY3Rpb24gKGRpZ2l0cywgYmFzZSwgaXNOZWdhdGl2ZSkge1xuICAgICAgICByZXR1cm4gcGFyc2VCYXNlRnJvbUFycmF5KGRpZ2l0cy5tYXAocGFyc2VWYWx1ZSksIHBhcnNlVmFsdWUoYmFzZSB8fCAxMCksIGlzTmVnYXRpdmUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gSW50ZWdlcjtcbn0pKCk7XG4iLCIvKiBnbG9iYWwgYmlnSW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXG4vLyBXZSByZXByZXNlbnQgYSBbWi50XSBhcyBhIGphdmFzY3JpcHQgMzJiaXQgaW50ZWdlcnMgaWYgaXQgZml0cyBvciBhcyBhIGJpZ0ludC5cblxuLy9Qcm92aWRlczogbWxfel9ub3JtYWxpemVcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9ub3JtYWxpemUoeCl7XG4gIHZhciB5ID0geC50b0pTTnVtYmVyICgpIHwgMDtcbiAgaWYoeC5lcXVhbHMoYmlnSW50KHkpKSkgcmV0dXJuIHk7XG4gIHJldHVybiB4O1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X211bF9vdmVyZmxvd3NcbmZ1bmN0aW9uIG1sX3pfbXVsX292ZXJmbG93cyh4LHkpe1xuICB2YXIgeiA9IHgqeTtcbiAgcmV0dXJuIHogIT0gKHp8MCk7XG59XG5cbi8vZXh0ZXJuYWwgaW5pdDogdW5pdCAtPiB1bml0XG4vL1Byb3ZpZGVzOiBtbF96X2luaXRcbi8vUmVxdWlyZXM6IGNhbWxfemFyaXRoX21hcnNoYWwsIGNhbWxfemFyaXRoX3VubWFyc2hhbCwgY2FtbF9jdXN0b21fb3BzLCBtbF96X2hhc2gsIG1sX3pfY29tcGFyZVxuZnVuY3Rpb24gbWxfel9pbml0KHVuaXQpIHtcbiAgY2FtbF9jdXN0b21fb3BzWydfeiddID1cbiAgICB7IHNlcmlhbGl6ZSA6IGNhbWxfemFyaXRoX21hcnNoYWwsXG4gICAgICBkZXNlcmlhbGl6ZSA6IGNhbWxfemFyaXRoX3VubWFyc2hhbCxcbiAgICAgIGhhc2ggOiBtbF96X2hhc2gsXG4gICAgICBjb21wYXJlIDogbWxfel9jb21wYXJlLFxuICAgIH07XG4gIHJldHVybiAwIH1cblxuLy9leHRlcm5hbCBuZWc6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9uZWcgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbmVnKHoxKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLm5lZ2F0ZSgpKTtcbn1cblxuLy9leHRlcm5hbCBhZGQ6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2FkZCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9hZGQoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLmFkZChiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgc3ViOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zdWIgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfc3ViKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5zdWJ0cmFjdChiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgbXVsOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9tdWwgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbXVsKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5tdWx0aXBseShiaWdJbnQoejIpKSk7XG59XG5cbi8vZXh0ZXJuYWwgZGl2OiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9kaXZcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZGl2KHoxLCB6Mikge1xuICB6MiA9IGJpZ0ludCh6MilcbiAgaWYoejIuZXF1YWxzKGJpZ0ludCgwKSkpIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuZGl2aWRlKGJpZ0ludCh6MikpKVxufVxuXG4vL2V4dGVybmFsIGNkaXY6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2NkaXZcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9kaXYsIG1sX3pfc2lnbiwgbWxfel9hZGRcbmZ1bmN0aW9uIG1sX3pfY2Rpdih6MSwgejIpIHtcbiAgdmFyIHoxX3BvcyA9IG1sX3pfc2lnbih6MSk7XG4gIHZhciB6Ml9wb3MgPSBtbF96X3NpZ24oejIpO1xuICBpZiAoejFfcG9zICogejJfcG9zID4gMCkgLyogTXVsdGlwbGljYXRpb24gaXMgbGlrZSBhIHNpZ253aXNlIHhvciAqLyB7XG4gICAgaWYgKCFiaWdJbnQoejEpLm1vZChiaWdJbnQoejIpKS5lcXVhbHMoYmlnSW50KDApKSkge1xuICAgICAgcmV0dXJuIG1sX3pfYWRkKG1sX3pfZGl2KHoxLCB6MiksIGJpZ0ludCgxKSkgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWxfel9kaXYoejEsIHoyKTtcbn1cblxuLy9leHRlcm5hbCBmZGl2OiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9mZGl2XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfZGl2LCBtbF96X3NpZ24sIG1sX3pfc3ViXG5mdW5jdGlvbiBtbF96X2ZkaXYoejEsIHoyKSB7XG4gIHZhciB6MV9wb3MgPSBtbF96X3NpZ24oejEpO1xuICB2YXIgejJfcG9zID0gbWxfel9zaWduKHoyKTtcbiAgaWYgKHoxX3BvcyAqIHoyX3BvcyA8IDApIC8qIE11bHRpcGxpY2F0aW9uIGlzIGxpa2UgYSBzaWdud2lzZSB4b3IgKi8ge1xuICAgIGlmICghYmlnSW50KHoxKS5tb2QoYmlnSW50KHoyKSkuZXF1YWxzKGJpZ0ludCgwKSkpIHtcbiAgICAgIHJldHVybiBtbF96X3N1YihtbF96X2Rpdih6MSwgejIpLCBiaWdJbnQoMSkpIDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG1sX3pfZGl2KHoxLCB6Mik7XG59XG5cbi8vZXh0ZXJuYWwgcmVtOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9yZW1cbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfcmVtKHoxLCB6Mikge1xuICB6MiA9IGJpZ0ludCh6Mik7XG4gIGlmICh6Mi5lcXVhbHMoYmlnSW50KDApKSkge1xuICAgIGNhbWxfcmFpc2VfemVyb19kaXZpZGUoKTtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5tb2QoejIpKTtcbn1cblxuLy9leHRlcm5hbCBkaXZfcmVtOiB0IC0+IHQgLT4gKHQgKiB0KVxuLy9Qcm92aWRlczogbWxfel9kaXZfcmVtXG4vL1JlcXVpcmVzOiBtbF96X2RpdiwgbWxfel9yZW1cbmZ1bmN0aW9uIG1sX3pfZGl2X3JlbSh6MSwgejIpIHtcbiAgcmV0dXJuIFswLCBtbF96X2Rpdih6MSx6MiksIG1sX3pfcmVtKHoxLCB6MildXG59XG4vL2V4dGVybmFsIHN1Y2M6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zdWNjIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3N1Y2MoejEpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkubmV4dCgpKTtcbn1cblxuLy9leHRlcm5hbCBwcmVkOiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfcHJlZCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9wcmVkKHoxKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQoejEpLnByZXYoKSk7XG59XG5cbi8vZXh0ZXJuYWwgYWJzOiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfYWJzIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2Ficyh6MSkge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5hYnMoKSk7XG59XG5cbi8vZXh0ZXJuYWwgbG9nYW5kOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9sb2dhbmQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbG9nYW5kKHoxLCB6Mikge1xuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5hbmQoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIGxvZ29yOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9sb2dvciBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9sb2dvcih6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkub3IoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIGxvZ3hvcjogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfbG9neG9yIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2xvZ3hvcih6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkueG9yKGJpZ0ludCh6MikpKTtcbn1cblxuLy9leHRlcm5hbCBsb2dub3Q6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9sb2dub3QgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCxtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9sb2dub3QoejEpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkubm90KCkpO1xufVxuXG4vL2V4dGVybmFsIHNoaWZ0X2xlZnQ6IHQgLT4gaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfc2hpZnRfbGVmdCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9zaGlmdF9sZWZ0KHoxLCBhbXQpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuc2hpZnRMZWZ0KGFtdCkpO1xufVxuXG4vL2V4dGVybmFsIHNoaWZ0X3JpZ2h0OiB0IC0+IGludCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X3NoaWZ0X3JpZ2h0IGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X3NoaWZ0X3JpZ2h0KHoxLCBhbXQpIHtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludCh6MSkuc2hpZnRSaWdodChhbXQpKTtcbn1cblxuLy9leHRlcm5hbCBzaGlmdF9yaWdodF90cnVuYzogdCAtPiBpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zaGlmdF9yaWdodF90cnVuYyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X2RpdlxuZnVuY3Rpb24gbWxfel9zaGlmdF9yaWdodF90cnVuYyh6MSwgejIpIHtcbiAgcmV0dXJuIG1sX3pfZGl2KGJpZ0ludCh6MSksIGJpZ0ludCgyKS5wb3coejIpKVxufVxuXG4vL2V4dGVybmFsIG9mX2ludDMyOiBpbnQzMiAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX2ludDMyIGNvbnN0XG5mdW5jdGlvbiBtbF96X29mX2ludDMyKGkpIHtcbiAgcmV0dXJuIGkgfCAwO1xufVxuXG4vL2V4dGVybmFsIG9mX25hdGl2ZWludDogbmF0aXZlaW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2ZfbmF0aXZlaW50IGNvbnN0XG5mdW5jdGlvbiBtbF96X29mX25hdGl2ZWludChpKSB7XG4gIHJldHVybiBpIHwgMDtcbn1cblxuLy9leHRlcm5hbCBvZl9pbnQ2NDogaW50NjQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9vZl9pbnQ2NCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ludDY0X2NvbXBhcmUsIGNhbWxfaW50NjRfbmVnLCBtbF96X25vcm1hbGl6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGksY2FtbF9pbnQ2NF9oaTMyLGNhbWxfaW50NjRfbG8zMlxuZnVuY3Rpb24gbWxfel9vZl9pbnQ2NChpNjQpIHtcbiAgdmFyIG5lZyA9IGZhbHNlO1xuICBpZihjYW1sX2ludDY0X2NvbXBhcmUoaTY0LCBjYW1sX2ludDY0X2NyZWF0ZV9sb19oaSgwLDApKSA8IDApIHtcbiAgICBuZWcgPSB0cnVlO1xuICAgIGk2NCA9IGNhbWxfaW50NjRfbmVnKGk2NClcbiAgfVxuICB2YXIgbG8gPSBjYW1sX2ludDY0X2xvMzIoaTY0KSA+Pj4gMDtcbiAgdmFyIGhpID0gY2FtbF9pbnQ2NF9oaTMyKGk2NCkgPj4+IDA7XG4gIHZhciB4ID0gYmlnSW50KGxvKS5hZGQoYmlnSW50KGhpKS5zaGlmdExlZnQoMzIpKTtcbiAgaWYobmVnKSB7IHggPSB4Lm5lZ2F0ZSgpIH07XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZSh4KVxufVxuXG4vL2V4dGVybmFsIG9mX2Zsb2F0OiBmbG9hdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX2Zsb2F0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfbmFtZWRfdmFsdWUsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X29mX2Zsb2F0KGYxKSB7XG4gIGlmKGYxID09IEluZmluaXR5IHx8IGYxID09IC1JbmZpbml0eSB8fCBmMSAhPSBmMSlcbiAgICBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKGJpZ0ludChmMTwwP01hdGguY2VpbChmMSk6TWF0aC5mbG9vcihmMSkpKTtcbn1cblxuLy9leHRlcm5hbCB0b19pbnQ6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3RvX2ludFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX25hbWVkX3ZhbHVlXG5mdW5jdGlvbiBtbF96X3RvX2ludCh6MSkge1xuICBpZiAoejEgPT0gKHoxIHwgMCkpIHJldHVybiB6MSB8IDA7XG4gIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xufVxuXG4vL2V4dGVybmFsIHRvX2ludDMyOiB0IC0+IGludDMyXG4vL1Byb3ZpZGVzOiBtbF96X3RvX2ludDMyXG4vL1JlcXVpcmVzOiBtbF96X3RvX2ludFxuZnVuY3Rpb24gbWxfel90b19pbnQzMih6MSkgeyByZXR1cm4gbWxfel90b19pbnQoejEpIH1cblxuLy9leHRlcm5hbCB0b19pbnQ2NDogdCAtPiBpbnQ2NFxuLy9Qcm92aWRlczogbWxfel90b19pbnQ2NFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X2ZpdHNfaW50NjQsIGNhbWxfcmFpc2VfY29uc3RhbnQsIGNhbWxfbmFtZWRfdmFsdWVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpXG5mdW5jdGlvbiBtbF96X3RvX2ludDY0KHoxKSB7XG4gIHoxID0gYmlnSW50KHoxKVxuICBpZighbWxfel9maXRzX2ludDY0KHoxKSkge1xuICAgIGNhbWxfcmFpc2VfY29uc3RhbnQoY2FtbF9uYW1lZF92YWx1ZShcIm1sX3pfb3ZlcmZsb3dcIikpO1xuICB9XG4gIHZhciBtYXNrID0gYmlnSW50KDB4ZmZmZmZmZmYpXG4gIHZhciBsbyA9IHoxLmFuZChtYXNrKS50b0pTTnVtYmVyKCk7XG4gIHZhciBoaSA9IHoxLnNoaWZ0UmlnaHQoMzIpLmFuZChtYXNrKS50b0pTTnVtYmVyKCk7XG4gIHZhciB4ID0gY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkobG8sIGhpKTtcbiAgcmV0dXJuIHg7XG59XG5cbi8vZXh0ZXJuYWwgdGVzdGJpdDogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X3Rlc3RiaXRcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel90ZXN0Yml0KHoscG9zKXtcbiAgeiA9IGJpZ0ludCh6KTtcbiAgcmV0dXJuICh6LnNoaWZ0UmlnaHQocG9zKS5hbmQoYmlnSW50KDEpKS50b0pTTnVtYmVyKCkpfDA7XG59XG5cbi8vZXh0ZXJuYWwgdG9fbmF0aXZlaW50OiB0IC0+IG5hdGl2ZWludFxuLy9Qcm92aWRlczogbWxfel90b19uYXRpdmVpbnRcbi8vUmVxdWlyZXM6IG1sX3pfdG9faW50XG5mdW5jdGlvbiBtbF96X3RvX25hdGl2ZWludCh6MSkgeyByZXR1cm4gbWxfel90b19pbnQoejEpIH1cblxuLy9leHRlcm5hbCBmb3JtYXQ6IHN0cmluZyAtPiB0IC0+IHN0cmluZ1xuLy9Qcm92aWRlczogbWxfel9mb3JtYXQgXG4vL1JlcXVpcmVzOiBiaWdJbnRcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfZmFpbHdpdGgsIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2Zvcm1hdChmbXQsIHoxKSB7XG4gIHoxID0gYmlnSW50KHoxKTtcbiAgdmFyIGZtdCA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoZm10KTtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL29jYW1sL1phcml0aC9ibG9iL2QwNTU1ZDQ1MWNlMjk1YzQ0OTdmMjRhOGQ5OTkzZjhkZDIzMDk3ZGYvei5tbGlwI0wyOTdcbiAgdmFyIGJhc2UgPSAxMDtcbiAgdmFyIGNhcyA9IDA7XG4gIHZhciB3aWR0aCA9IDA7XG4gIHZhciBhbHQgPSAwO1xuICB2YXIgZGlyID0gMDtcbiAgdmFyIHNpZ24gPSAnJztcbiAgdmFyIHBhZCA9ICcgJztcbiAgdmFyIGlkeCA9IDA7XG4gIHZhciBwcmVmaXg9XCJcIjtcbiAgd2hpbGUoZm10W2lkeF0gPT0gJyUnKSBpZHgrKztcbiAgZm9yKDs7IGlkeCsrKSB7XG4gICAgaWYoZm10W2lkeF0gPT0gJyMnKSBhbHQgPSAxO1xuICAgIGVsc2UgaWYgKGZtdFtpZHhdID09ICcwJykgcGFkID0gJzAnO1xuICAgIGVsc2UgaWYgKGZtdFtpZHhdID09ICctJykgZGlyID0gMTtcbiAgICBlbHNlIGlmIChmbXRbaWR4XSA9PSAnICcgfHwgZm10W2lkeF0gPT0gJysnKSBzaWduID0gZm10W2lkeF07XG4gICAgZWxzZSBicmVhaztcbiAgfVxuICBpZih6MS5sdChiaWdJbnQoMCkpKXtzaWduID0gJy0nO3oxID0gejEubmVnYXRlKCl9O1xuICBmb3IoO2ZtdFtpZHhdPj0nMCcgJiYgZm10W2lkeF0gPD0nOSc7aWR4KyspXG4gICAgd2lkdGg9MTAqd2lkdGggKyAoK2ZtdFtpZHhdKTtcbiAgc3dpdGNoKGZtdFtpZHhdKXtcbiAgY2FzZSAnaSc6IGNhc2UgJ2QnOiBjYXNlICd1JzogYnJlYWs7XG4gIGNhc2UgJ2InOiBiYXNlID0gMjsgaWYoYWx0KSBwcmVmaXggPSBcIjBiXCI7IGJyZWFrO1xuICBjYXNlICdvJzogYmFzZSA9IDg7IGlmKGFsdCkgcHJlZml4ID0gXCIwb1wiOyBicmVhaztcbiAgY2FzZSAneCc6IGJhc2UgPSAxNjsgaWYoYWx0KSBwcmVmaXggPSBcIjB4XCI7IGJyZWFrO1xuICBjYXNlICdYJzogYmFzZSA9IDE2OyBpZihhbHQpIHByZWZpeCA9IFwiMFhcIjsgY2FzID0gMTsgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgY2FtbF9mYWlsd2l0aChcIlVuc3VwcG9ydGVkIGZvcm1hdCAnXCIgKyBmbXQgKyBcIidcIik7XG4gIH1cbiAgaWYgKGRpcikgcGFkID0gJyAnO1xuICB2YXIgcmVzID0gejEudG9TdHJpbmcoYmFzZSk7XG4gIGlmIChjYXMgPT09IDEpIHtcbiAgICByZXMgPSByZXMudG9VcHBlckNhc2UoKTtcbiAgfVxuICB2YXIgc2l6ZSA9IHJlcy5sZW5ndGg7XG4gIGlmIChwYWQgPT0gJyAnKSB7XG4gICAgaWYoZGlyKSB7XG4gICAgICByZXMgPSBzaWduICsgcHJlZml4ICsgcmVzO1xuICAgICAgZm9yKDtyZXMubGVuZ3RoPHdpZHRoOykgcmVzID0gcmVzICsgcGFkO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSBzaWduICsgcHJlZml4ICsgcmVzO1xuICAgICAgZm9yKDtyZXMubGVuZ3RoPHdpZHRoOykgcmVzID0gcGFkICsgcmVzO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB2YXIgcHJlID0gc2lnbiArIHByZWZpeDtcbiAgICBmb3IoO3Jlcy5sZW5ndGgrcHJlLmxlbmd0aDx3aWR0aDspIHJlcyA9IHBhZCArIHJlcztcbiAgICByZXMgPSBwcmUgKyByZXM7XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2pzYnl0ZXMocmVzKTtcbn1cblxuLy9Qcm92aWRlczoganNvb196X29mX2pzX3N0cmluZ19iYXNlXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIGpzb29fel9vZl9qc19zdHJpbmdfYmFzZShiYXNlLCBzKSB7XG4gIGlmIChiYXNlID09IDApIHsgLy8gaHR0cHM6Ly9naXRodWIuY29tL29jYW1sL1phcml0aC9ibG9iL2I4ZGJhZjQ4YTc5MjcwNjFkZjY5OWFkN2NlNjQyYmI0ZjFmZTUzMDgvY2FtbF96LmMjTDU5OFxuICAgIGJhc2UgPSAxMDtcbiAgICB2YXIgcCA9IDA7XG4gICAgdmFyIHNpZ24gPSAxO1xuICAgIGlmKHNbcF0gPT0gJy0nKSB7IHNpZ24gPSAtMTsgcCsrIH1cbiAgICBlbHNlIGlmIChzW3BdID09ICcrJykgeyBwKysgfVxuICAgIGlmIChzW3BdID09ICcwJykge1xuICAgICAgcCArKztcbiAgICAgIGlmIChzLmxlbmd0aCA9PSBwKSB7XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFyIGJjID0gc1twXTtcbiAgICAgICAgaWYgKGJjID09ICdvJyB8fCBiYyA9PSAnTycpIHtcbiAgICAgICAgICBiYXNlID0gODtcbiAgICAgICAgfSBlbHNlIGlmIChiYyA9PSAneCcgfHwgYmMgPT0gJ1gnKSB7XG4gICAgICAgICAgYmFzZSA9IDE2O1xuICAgICAgICB9IGVsc2UgaWYgKGJjID09ICdiJyB8fCBiYyA9PSAnQicpIHtcbiAgICAgICAgICBiYXNlID0gMjtcbiAgICAgICAgfSBcbiAgICAgICAgaWYoYmFzZSAhPSAxMCkge1xuICAgICAgICAgIHMgPSBzLnN1YnN0cmluZyhwKzEpO1xuICAgICAgICAgIGlmKHNpZ24gPT0gLTEpIHMgPSBcIi1cIiArIHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIGZ1bmN0aW9uIGRpZ2l0KGNvZGUpe1xuICAgIGlmKGNvZGUgPj0gNDggJiYgY29kZSA8PSA1NykgcmV0dXJuIGNvZGUgLSA0ODtcbiAgICBpZihjb2RlID49IDk3ICYmIGNvZGUgPD0gMTAyKSByZXR1cm4gY29kZSAtIDk3ICsgMTA7XG4gICAgaWYoY29kZSA+PSA2NSAmJiBjb2RlIDw9IDcwKSByZXR1cm4gY29kZSAtIDY1ICsgMTA7XG4gIH1cbiAgdmFyIGkgPSAwO1xuICBpZiAoc1tpXSA9PSAnKycpIHtcbiAgICAvL3JlbW92ZSBsZWFkaW5nICcrJ1xuICAgIHMgPSBzLnN1YnN0cmluZygxKTtcbiAgfVxuICBlbHNlIGlmKHNbaV0gPT0gJy0nKSBpKys7XG4gIGlmKHNbaV0gPT0gJ18nKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLm9mX3N1YnN0cmluZ19iYXNlOiBpbnZhbGlkIGRpZ2l0XCIpO1xuICBzID0gcy5yZXBsYWNlKC9fL2csJycpO1xuICAvL25vcm1hbGl6ZSBcImVtcHR5XCIgbnVtYmVyc1xuICBpZihzID09ICctJyB8fCBzID09ICcnKSBzID0gJzAnO1xuICBmb3IoIDsgaSA8IHMubGVuZ3RoIDsgaSsrKXtcbiAgICB2YXIgYyA9IGRpZ2l0KHMuY2hhckNvZGVBdChpKSk7XG4gICAgaWYoYyA9PSB1bmRlZmluZWQgfHwgYyA+PSBiYXNlKVxuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5vZl9zdWJzdHJpbmdfYmFzZTogaW52YWxpZCBkaWdpdFwiKTtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHMsIGJhc2UpKTtcbiAgXG59XG5cbi8vZXh0ZXJuYWwgb2Zfc3Vic3RyaW5nX2Jhc2U6IGludCAtPiBzdHJpbmcgLT4gcG9zOmludCAtPiBsZW46aW50IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2Vcbi8vUmVxdWlyZXM6IGpzb29fel9vZl9qc19zdHJpbmdfYmFzZSwgY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX21sX3N0cmluZ19sZW5ndGhcbmZ1bmN0aW9uIG1sX3pfb2Zfc3Vic3RyaW5nX2Jhc2UoYmFzZSwgcywgcG9zLCBsZW4pIHtcbiAgcyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcocyk7XG4gIGlmKHBvcyAhPSAwIHx8IGxlbiAhPSBzLmxlbmd0aCkge1xuICAgIGlmIChzLmxlbmd0aCAtIHBvcyA8IGxlbikge1xuICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5vZl9zdWJzdHJpbmdfYmFzZTogaW52YWxpZCBvZmZzZXQgb3IgbGVuZ3RoXCIpO1xuICAgIH1cbiAgICBzID0gcy5zbGljZShwb3MscG9zK2xlbik7XG4gIH1cbiAgcmV0dXJuIGpzb29fel9vZl9qc19zdHJpbmdfYmFzZShiYXNlLCBzKTtcbn1cblxuLy9leHRlcm5hbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X2NvbXBhcmUgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9jb21wYXJlKHoxLCB6Mikge1xuICByZXR1cm4gYmlnSW50KHoxKS5jb21wYXJlKGJpZ0ludCh6MikpO1xufVxuXG4vL2V4dGVybmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9lcXVhbCBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2VxdWFsKHoxLCB6Mikge1xuICByZXR1cm4gYmlnSW50KHoxKS5lcXVhbHMoYmlnSW50KHoyKSkgPyAxIDogMDtcbn1cblxuLy9leHRlcm5hbCBzaWduOiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9zaWduIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfc2lnbih6MSkge1xuICByZXR1cm4gYmlnSW50KHoxKS5jb21wYXJlKGJpZ0ludC56ZXJvKTtcbn1cblxuLy9leHRlcm5hbCBnY2Q6IHQgLT4gdCAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X2djZFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9nY2QoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiaWdJbnQuZ2NkKGJpZ0ludCh6MSksIGJpZ0ludCh6MikpLmFicygpKTtcbn1cblxuLy9leHRlcm5hbCBudW1iaXRzOiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9udW1iaXRzIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfbnVtYml0cyh6MSkge1xuICB6MSA9IGJpZ0ludCh6MSkuYWJzKCk7XG4gIHZhciBuID0gMDtcbiAgdmFyIHVwcGVyQm91bmQgPSBiaWdJbnQub25lO1xuICB3aGlsZSAodXBwZXJCb3VuZC5sZXEoejEpKSB7XG4gICAgbiArPSAxO1xuICAgIHVwcGVyQm91bmQgPSB1cHBlckJvdW5kLm11bHRpcGx5KDIpO1xuICB9XG4gIHJldHVybiBuOyAvLyAyXntuLTF9IDw9IHx4fCA8IDJeblxufVxuXG4vL2V4dGVybmFsIGZpdHNfaW50OiB0IC0+IGJvb2xcbi8vUHJvdmlkZXM6IG1sX3pfZml0c19pbnQgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9maXRzX2ludCh6MSkge1xuICBpZih6MSA9PSAoejEgfCAwKSkgcmV0dXJuIDE7XG4gIGVsc2UgcmV0dXJuIDA7XG59XG5cbi8vZXh0ZXJuYWwgZml0c19pbnQzMjogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X2ZpdHNfaW50MzJcbi8vUmVxdWlyZXM6IG1sX3pfZml0c19pbnRcbmZ1bmN0aW9uIG1sX3pfZml0c19pbnQzMih6MSkge1xuICByZXR1cm4gbWxfel9maXRzX2ludCh6MSk7XG59XG5cbi8vZXh0ZXJuYWwgZml0c19pbnQ2NDogdCAtPiBib29sXG4vL1Byb3ZpZGVzOiBtbF96X2ZpdHNfaW50NjRcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9maXRzX2ludDY0KHoxKSB7XG4gIHoxID0gYmlnSW50KHoxKVxuICBpZiAoejEuY29tcGFyZShiaWdJbnQoXCI5MjIzMzcyMDM2ODU0Nzc1ODA3XCIpKSA8PSAwICYmIHoxLmNvbXBhcmUoYmlnSW50KFwiLTkyMjMzNzIwMzY4NTQ3NzU4MDhcIikpID49IDApXG4gICAgcmV0dXJuIDFcbiAgZWxzZVxuICAgIHJldHVybiAwXG59XG5cbi8vZXh0ZXJuYWwgZml0c19uYXRpdmVpbnQ6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9maXRzX25hdGl2ZWludFxuLy9SZXF1aXJlczogbWxfel9maXRzX2ludFxuZnVuY3Rpb24gbWxfel9maXRzX25hdGl2ZWludCh6MSkge1xuICByZXR1cm4gbWxfel9maXRzX2ludCh6MSk7XG59XG5cbi8vZXh0ZXJuYWwgcG93bTogdCAtPiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9wb3dtXG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfbm9ybWFsaXplLCBtbF96X2ludmVydCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gbWxfel9wb3dtKHoxLCB6MiwgejMpIHtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIHoxID0gYmlnSW50KHoxKTtcbiAgejIgPSBiaWdJbnQoejIpO1xuICB6MyA9IGJpZ0ludCh6Myk7XG4gIGlmKHozLmVxdWFscyh6ZXJvKSkgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICBpZih6My5hYnMoKS5lcXVhbHMob25lKSkgcmV0dXJuIDA7XG4gIGlmKHoyLmVxdWFscyh6ZXJvKSkgcmV0dXJuIDE7XG4gIGlmKHoyLmx0KDApKSB7XG4gICAgdmFyIGludiA9IGJpZ0ludChtbF96X2ludmVydCh6MSwgejMpKTtcbiAgICB2YXIgciA9IGludi5tb2RQb3coejIubmVnYXRlKCksIHozKTtcbiAgICBpZihyLmx0KHplcm8pKSByID0gci5hZGQoejMuYWJzKCkpO1xuICAgIHJldHVybiBtbF96X25vcm1hbGl6ZShyKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgciA9IGJpZ0ludCh6MSkubW9kUG93KHoyLCB6Myk7XG4gICAgaWYoci5sdCh6ZXJvKSkgciA9IHIuYWRkKHozLmFicygpKTtcbiAgICByZXR1cm4gbWxfel9ub3JtYWxpemUocik7XG4gIH1cbn1cblxuLy9leHRlcm5hbCBwb3duOiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9wb3dcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9mYWlsd2l0aCwgbWxfel9ub3JtYWxpemUsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9wb3coejEsIGkxKSB7XG4gIGkxID0gYmlnSW50KGkxKTtcbiAgaWYgKGkxLmx0KGJpZ0ludCgwKSkpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnBvdzogZXhwb25lbnQgbXVzdCBiZSBub25uZWdhdGl2ZVwiKTtcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYmlnSW50KHoxKS5wb3coaTEpKTtcbn1cblxuLy9leHRlcm5hbCBoYXNoOiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9oYXNoIGNvbnN0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfaGFzaF9taXhfaW50XG5mdW5jdGlvbiBtbF96X2hhc2goejEpIHtcbiAgdmFyIGEgPSBiaWdJbnQoejEpLnRvQXJyYXkoTWF0aC5wb3coMiwgMzIpKTtcbiAgdmFyIGFjYyA9IDA7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYS52YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgIGFjYyA9IGNhbWxfaGFzaF9taXhfaW50KGFjYywgYS52YWx1ZVtpXSk7XG4gIH1cbiAgaWYoYS52YWx1ZS5sZW5ndGggJSAyICE9IDApIHtcbiAgICBhY2MgPSBjYW1sX2hhc2hfbWl4X2ludChhY2MsIDApO1xuICB9XG4gIGlmKGEuaXNOZWdhdGl2ZSl7XG4gICAgYWNjID0gYWNjICsgMVxuICB9XG4gIHJldHVybiBhY2MgfCAwXG59XG5cbi8vZXh0ZXJuYWwgdG9fYml0czogdCAtPiBzdHJpbmdcbi8vUHJvdmlkZXM6IG1sX3pfdG9fYml0cyBjb25zdFxuLy9SZXF1aXJlczogY2FtbF9zdHJpbmdfb2ZfanNieXRlcywgY2FtbF9zdHJfcmVwZWF0LCBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfdG9fYml0cyh6MSkge1xuICB6MSA9IGJpZ0ludCh6MSkuYWJzKCk7XG4gIHZhciByZXMgPSBcIlwiO1xuICB3aGlsZSghejEuZXF1YWxzKGJpZ0ludCgwKSkpe1xuICAgIHJlcyArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHoxLm1vZChiaWdJbnQoMjU2KSkpO1xuICAgIHoxID0gejEuZGl2aWRlKGJpZ0ludCgyNTYpKTtcbiAgfVxuICB3aGlsZShyZXMubGVuZ3RoICUgNCAhPSAwKXtcbiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgwKTtcbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhyZXMpO1xufVxuXG4vL2V4dGVybmFsIG9mX2JpdHM6IHN0cmluZyAtPiB0XG4vL1Byb3ZpZGVzOiBtbF96X29mX2JpdHMgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9vZl9iaXRzKHoxKSB7XG4gIHZhciByID0gYmlnSW50Lnplcm9cbiAgdmFyIGJhc2UxID0gYmlnSW50KDI1Nik7XG4gIHZhciBiYXNlID0gYmlnSW50Lm9uZTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGNhbWxfbWxfc3RyaW5nX2xlbmd0aCh6MSk7IGkrKyl7XG4gICAgdmFyIGQgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHoxLGkpO1xuICAgIHIgPSBiaWdJbnQoYmFzZSkubXVsdGlwbHkoZCkuYWRkKHIpO1xuICAgIGJhc2UgPSBiaWdJbnQoYmFzZSkubXVsdGlwbHkoYmFzZTEpO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShyKTtcbn1cblxuLy9leHRlcm5hbCBwb3dtX3NlYzogdCAtPiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9wb3dtX3NlY1xuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ZhaWx3aXRoLCBtbF96X3Bvd20sIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9wb3dtX3NlYyh6MSwgejIsIHozKSB7XG4gIHozID0gYmlnSW50KHozKS5hYnMoKTtcbiAgLy8gcG93bV9zZWMgcmVxdWlyZXMgdGhhdCB0aGUgZXhwb25lbnQgYmUgcG9zaXRpdmVcbiAgdmFyIG9uZSA9IGJpZ0ludCgxKTtcbiAgaWYgKGJpZ0ludCh6MikubHQob25lKSkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIloucG93bV9zZWM6IGV4cG9uZW50IG11c3QgYmUgcG9zaXRpdmVcIik7XG4gIH1cbiAgaWYgKCFiaWdJbnQoejMpLmFuZChvbmUpLmVxdWFscyhvbmUpKSB7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5wb3dtX3NlYzogbW9kdWx1cyBtdXN0IGJlIG9kZFwiKTtcbiAgfVxuICByZXR1cm4gbWxfel9wb3dtKHoxLCB6MiwgejMpXG59XG5cbi8vZXh0ZXJuYWwgcm9vdDogdCAtPiBpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9yb290XG4vL1JlcXVpcmVzOiBtbF96X3BvdywgIGJpZ0ludCwgbWxfel9ub3JtYWxpemUsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9yb290KHosIGkpIHtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIHogPSBiaWdJbnQoeik7XG5cbiAgaWYgKGkgJSAyID09PSAwICYmIHoubHQoemVybykpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnJvb3Q6IGV2ZW4gcm9vdCBvZiBhIG5lZ2F0aXZlIG51bWJlclwiKTtcbiAgfVxuXG4gIGlmICh6LmVxdWFscyh6ZXJvKSB8fCB6LmVxdWFscyhvbmUpKSB7XG4gICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHopO1xuICB9XG5cbiAgdmFyIHN0YXJ0ID0gemVybztcbiAgdmFyIGVuZCA9IHo7XG4gIHZhciBhbnMgPSBudWxsO1xuXG4gIHZhciB0d28gPSBiaWdJbnQoMik7XG5cbiAgd2hpbGUgKHN0YXJ0LmxlcShlbmQpKVxuICB7XG4gICAgdmFyIG1pZCA9IHN0YXJ0LmFkZChlbmQpLmRpdmlkZSh0d28pO1xuICAgIHZhciBwbyA9IG1pZC5wb3coaSk7XG4gICAgaWYgKHBvLmVxdWFscyh6KSkge1xuICAgICAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKG1pZCk7XG4gICAgfSBlbHNlIGlmIChwby5sdCh6KSkge1xuICAgICAgc3RhcnQgPSBtaWQubmV4dCgpO1xuICAgICAgYW5zID0gbWlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmQgPSBtaWQucHJldigpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUoYW5zKTtcbn1cblxuLy9leHRlcm5hbCByb290cmVtOiB0IC0+IGludCAtPiB0ICogdFxuLy9Qcm92aWRlczogbWxfel9yb290cmVtXG4vL1JlcXVpcmVzOiBtbF96X3BvdywgIGJpZ0ludCwgbWxfel9ub3JtYWxpemUsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9yb290cmVtKHosIGkpIHtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIHogPSBiaWdJbnQoeik7XG5cbiAgaWYgKGkgJSAyID09PSAwICYmIHoubHQoemVybykpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnJvb3RyZW06IGV2ZW4gcm9vdCBvZiBhIG5lZ2F0aXZlIG51bWJlclwiKTtcbiAgfVxuXG4gIGlmICh6LmVxdWFscyh6ZXJvKSB8fCB6LmVxdWFscyhvbmUpKSB7XG4gICAgcmV0dXJuIFswLCBtbF96X25vcm1hbGl6ZSh6KSwgemVyb107XG4gIH1cblxuICB2YXIgc3RhcnQgPSB6ZXJvO1xuICB2YXIgZW5kID0gejtcbiAgdmFyIGFucyA9IG51bGw7XG5cbiAgdmFyIHR3byA9IGJpZ0ludCgyKTtcblxuICB3aGlsZSAoc3RhcnQubGVxKGVuZCkpXG4gIHtcbiAgICB2YXIgbWlkID0gc3RhcnQuYWRkKGVuZCkuZGl2aWRlKHR3byk7XG4gICAgdmFyIHBvID0gbWlkLnBvdyhpKTtcbiAgICBpZiAocG8uZXF1YWxzKHopKSB7XG4gICAgICByZXR1cm4gWzAsIG1sX3pfbm9ybWFsaXplKG1pZCksIHplcm9dO1xuICAgIH0gZWxzZSBpZiAocG8ubHQoeikpIHtcbiAgICAgIHN0YXJ0ID0gbWlkLm5leHQoKTtcbiAgICAgIGFucyA9IG1pZDtcbiAgICB9IGVsc2Uge1xuICAgICAgZW5kID0gbWlkLnByZXYoKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIFswLCBtbF96X25vcm1hbGl6ZShhbnMpLCBtbF96X25vcm1hbGl6ZSh6Lm1pbnVzKGFucy5wb3coaSkpKV07XG59XG5cbi8vZXh0ZXJuYWwgaW52ZXJ0OiB0IC0+IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9pbnZlcnRcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSwgbWxfel9nY2RleHRfaW50ZXJuLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9pbnZlcnQoYSwgbikge1xuICAvLyBCZWNhdXNlIFthLm1vZEludihuKV0gcHJvZHVjZXMgZGlmZmVyZW50IHJlc3VsdHMgZm9yIGVkZ2UgY2FzZXMsXG4gIC8vIHdlIHdyb3RlIG91ciBvd24gaW1wbGVtZW50YXRpb24gYmFzZWQgb24gZ2NkZXh0X2ludGVybi5cbiAgYSA9IGJpZ0ludChhKTtcbiAgbiA9IGJpZ0ludChuKTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIGlmKG4uYWJzKCkuZXF1YWxzKG9uZSkpXG4gICAgcmV0dXJuIDA7XG4gIGlmIChuLmVxdWFscyh6ZXJvKSAmJiBhLmFicygpLmVxdWFscyhvbmUpKSB7XG4gICAgcmV0dXJuIGE7XG4gIH1cbiAgaWYgKG4uZXF1YWxzKHplcm8pIHx8IGEuZXF1YWxzKHplcm8pKSB7XG4gICAgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICB9XG4gIHZhciB4ID0gbWxfel9nY2RleHRfaW50ZXJuKGEsIG4pO1xuICB2YXIgciA9IGJpZ0ludCh4WzJdKTtcbiAgdmFyIHRtcCA9IGJpZ0ludChhKS5tdWx0aXBseShyKS5tb2Qobik7XG4gIGlmKHRtcC5sdCh6ZXJvKSkgdG1wID0gdG1wLmFkZChuLmFicygpKTtcbiAgaWYoci5sdCh6ZXJvKSkgciA9IHIuYWRkKG4uYWJzKCkpO1xuICBpZih0bXAuZXF1YWxzKG9uZSkpIHtcbiAgICByZXR1cm4gbWxfel9ub3JtYWxpemUocik7XG4gIH1cbiAgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xufVxuXG4vL2V4dGVybmFsIHBlcmZlY3RfcG93ZXI6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9wZXJmZWN0X3Bvd2VyXG4vL1JlcXVpcmVzOiBiaWdJbnQsIGNhbWxfZmFpbHdpdGgsIG1sX3pfbnVtYml0cywgbWxfel9yb290LCBtbF96X3Bvd1xuZnVuY3Rpb24gbWxfel9wZXJmZWN0X3Bvd2VyKHopIHtcbiAgLy8gUmV0dXJuIHRydWUgaWYgb3AgaXMgYSBwZXJmZWN0IHBvd2VyLCBpLmUuLCBpZiB0aGVyZSBleGlzdCBpbnRlZ2VycyBhIGFuZFxuICAvLyBiLCB3aXRoIGIgPiAxLCBzdWNoIHRoYXQgb3AgPSBhXmIuXG4gIC8vIE90aGVyd2lzZSBmYWxzZS5cbiAgeiA9IGJpZ0ludCh6KTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG5cbiAgaWYgKHouZXF1YWxzKHplcm8pIHx8IHouZXF1YWxzKG9uZSkgfHwgei5lcXVhbHMob25lLm5lZ2F0ZSgpKSkge1xuICAgIHJldHVybiAxO1xuICB9XG4gIHZhciBsb2cyeiA9IG1sX3pfbnVtYml0cyh6LmFicygpKTtcbiAgZm9yICh2YXIgYiA9IDI7IGIgPD0gbG9nMno7IGIrKykge1xuICAgIGlmKHoubHQoemVybykgJiYgYiAlIDIgPT0gMCkgY29udGludWU7XG4gICAgdmFyIHpwID0gei5hYnMoKTtcbiAgICB2YXIgcCA9IGJpZ0ludChtbF96X3Jvb3QoenAsIGIpKTtcbiAgICBpZih6Lmx0KHplcm8pKSBwID0gcC5uZWdhdGUoKTtcbiAgICB2YXIgciA9IGJpZ0ludChtbF96X3BvdyhwLCBiKSk7XG4gICAgaWYgKHouZXF1YWxzKHIpKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vZXh0ZXJuYWwgcGVyZmVjdF9zcXVhcmU6IHQgLT4gYm9vbFxuLy9Qcm92aWRlczogbWxfel9wZXJmZWN0X3NxdWFyZVxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X3Jvb3RcbmZ1bmN0aW9uIG1sX3pfcGVyZmVjdF9zcXVhcmUoeikge1xuICB6ID0gYmlnSW50KHopO1xuICBpZiAoei5sdChiaWdJbnQoMCkpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbiAgdmFyIHJvb3QgPSBiaWdJbnQobWxfel9yb290KHosIDIpKTtcbiAgaWYgKHJvb3QubXVsdGlwbHkocm9vdCkuZXEoeikpIHtcbiAgICByZXR1cm4gMTtcbiAgfVxuICBlbHNlIHtcbiAgICByZXR1cm4gMFxuICB9O1xufVxuXG4vL2V4dGVybmFsIHByb2JhYl9wcmltZTogdCAtPiBpbnQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3Byb2JhYl9wcmltZSBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X3Byb2JhYl9wcmltZSh6LCBpKSB7XG4gIGlmIChiaWdJbnQoeikuaXNQcm9iYWJsZVByaW1lKGkpKSB7XG4gICAgcmV0dXJuIDE7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cblxuLy9leHRlcm5hbCBuZXh0cHJpbWU6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9uZXh0cHJpbWUgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfbmV4dHByaW1lKHoxKSB7XG4gIC8vIEludGVyZXN0aW5nbHksIHRoZSB6YXJpdGggbmV4dF9wcmltZSBvbmx5IHJldHVybnMgXG4gIC8vIHByb2JhYmFsaXN0aWMgcHJpbWVzLiAgV2UgZG8gdGhlIHNhbWUsIHdpdGggdGhlIFxuICAvLyBzYW1lIHByb2JhYmxpc3RpYyBwYXJhbWV0ZXIgb2YgMjUuXG4gIC8vIGh0dHBzOi8vZm9zc2llcy5vcmcvZG94L2dtcC02LjEuMi9tcHpfMm5leHRwcmltZV84Y19zb3VyY2UuaHRtbFxuICBcbiAgejEgPSBiaWdJbnQoejEpXG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIHZhciB0d28gPSBiaWdJbnQoMik7XG5cbiAgaWYgKHoxLmx0KG9uZSkgfHwgejEuZXF1YWxzKG9uZSkpIHtcbiAgICByZXR1cm4gMjtcbiAgfVxuXG4gIGlmICh6MS5hbmQob25lKS5lcXVhbHMob25lKSkge1xuICAgIHoxID0gejEuYWRkKHR3byk7XG4gIH0gZWxzZSB7XG4gICAgejEgPSB6MS5hZGQob25lKTtcbiAgfVxuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgaWYgKHoxLmlzUHJvYmFibGVQcmltZSgyNSkpIHtcbiAgICAgIHJldHVybiBtbF96X25vcm1hbGl6ZSh6MSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHoxID0gejEuYWRkKHR3bylcbiAgICB9XG4gIH1cbn1cblxuLy9leHRlcm5hbCBleHRyYWN0OiB0IC0+IGludCAtPiBpbnQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9leHRyYWN0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBiaWdJbnQsIG1sX3pfbm9ybWFsaXplXG5mdW5jdGlvbiBtbF96X2V4dHJhY3QoejEsIHBvcywgbGVuKSB7XG4gIHoxID0gYmlnSW50KHoxKTtcbiAgcmV0dXJuIG1sX3pfbm9ybWFsaXplKHoxLnNoaWZ0UmlnaHQocG9zKS5hbmQoYmlnSW50KDIpLnBvdyhsZW4pLnN1YnRyYWN0KDEpKSk7XG59XG5cbi8vZXh0ZXJuYWwgZ2NkZXh0X2ludGVybjogdCAtPiB0IC0+ICh0ICogdCAqIGJvb2wpXG4vL1Byb3ZpZGVzOiBtbF96X2djZGV4dF9pbnRlcm5cbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfZ2NkZXh0X2ludGVybih6MSwgejIpIHtcbiAgejEgPSBiaWdJbnQoejEpO1xuICB6MiA9IGJpZ0ludCh6Mik7XG4gIHZhciBnY2QgPSBiaWdJbnQuZ2NkKHoxLHoyKTtcbiAgdmFyIGEgPSB6MTtcbiAgdmFyIGIgPSB6MjtcbiAgdmFyIHggPSBiaWdJbnQoMCk7XG4gIHZhciBsYXN0eCA9IGJpZ0ludCgxKTtcbiAgdmFyIHkgPSBiaWdJbnQoMSk7XG4gIHZhciBsYXN0eSA9IGJpZ0ludCgxKTtcbiAgdmFyIHEsIHQsIHI7XG4gIGlmKHoxLmVxdWFscyhiaWdJbnQoMCkpKSB7XG4gICAgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZSgpO1xuICB9XG4gIHdoaWxlKCFiLmVxdWFscyhiaWdJbnQoMCkpKSB7XG4gICAgcSA9IGEuZGl2aWRlKGIpO1xuICAgIHIgPSBhLnN1YnRyYWN0KHEubXVsdGlwbHkoYikpO1xuICAgIHQgPSB4O1xuICAgIHggPSBsYXN0eC5zdWJ0cmFjdChxLm11bHRpcGx5KHgpKTtcbiAgICBsYXN0eCA9IHQ7XG4gICAgdCA9IHk7XG4gICAgeSA9IGxhc3R5LnN1YnRyYWN0KHEubXVsdGlwbHkoeSkpO1xuICAgIGxhc3R5ID0gdDtcbiAgICBhID0gYjtcbiAgICBiID0gcjtcbiAgfVxuICBpZihhLmx0KGJpZ0ludCgwKSkpXG4gICAgcmV0dXJuIFswLG1sX3pfbm9ybWFsaXplKGEubmVnYXRlKCkpLG1sX3pfbm9ybWFsaXplKGxhc3R4Lm5lZ2F0ZSgpKSwxXVxuICBlbHNlXG4gICAgcmV0dXJuIFswLG1sX3pfbm9ybWFsaXplKGEpLG1sX3pfbm9ybWFsaXplKGxhc3R4KSwxXVxufVxuXG4vL2V4dGVybmFsIHNxcnQ6IHQgLT4gdFxuLy9Qcm92aWRlczogbWxfel9zcXJ0XG4vL1JlcXVpcmVzOiBiaWdJbnQsIG1sX3pfcm9vdCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X3NxcnQoejEpIHtcbiAgdmFyIHogPSBiaWdJbnQoejEpO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgaWYgKHoubHQoemVybykpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnNxcnQ6IHNxdWFyZSByb290IG9mIGEgbmVnYXRpdmUgbnVtYmVyXCIpO1xuICB9XG4gIHJldHVybiBtbF96X3Jvb3QoeiwgMik7XG59XG5cbi8vZXh0ZXJuYWwgc3FydF9yZW06IHQgLT4gKHQgKiB0KVxuLy9Qcm92aWRlczogbWxfel9zcXJ0X3JlbVxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X3Jvb3QsIGNhbWxfaW52YWxpZF9hcmd1bWVudCwgbWxfel9ub3JtYWxpemVcbmZ1bmN0aW9uIG1sX3pfc3FydF9yZW0oeikge1xuICB6ID0gYmlnSW50KHopO1xuICB2YXIgemVybyA9IGJpZ0ludCgwKTtcbiAgaWYgKHoubHQoemVybykpIHtcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLnNxcnRfcmVtOiBzcXVhcmUgcm9vdCBvZiBhIG5lZ2F0aXZlIG51bWJlclwiKTtcbiAgfVxuICB2YXIgcm9vdCA9IGJpZ0ludChtbF96X3Jvb3QoeiwgMikpO1xuICB2YXIgbXVsID0gcm9vdC5tdWx0aXBseShyb290KTtcbiAgdmFyIGRpZmYgPSB6LnN1YnRyYWN0KG11bCk7XG4gIHJldHVybiBbMCwgbWxfel9ub3JtYWxpemUocm9vdCksIG1sX3pfbm9ybWFsaXplKGRpZmYpXVxufVxuXG4vL2V4dGVybmFsIHRyYWlsaW5nX3plcm9zOiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel90cmFpbGluZ196ZXJvcyBjb25zdFxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X3RyYWlsaW5nX3plcm9zKHopIHtcbiAgeiA9IGJpZ0ludCh6KS5hYnMoKTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIGlmICh6LmVxdWFscyh6ZXJvKSkge1xuICAgIC8vIG1heF9pbnQgaW4gMzJiaXRcbiAgICByZXR1cm4gMHg3ZmZmZmZmZjtcbiAgfVxuICB2YXIgaSA9IDBcbiAgeiA9IHoueG9yKHoucHJldigpKS5zaGlmdFJpZ2h0KDEpO1xuICBmb3IgKGkgPSAwOyAhei5lcXVhbHMoYmlnSW50Lnplcm8pOyBpKyspIHtcbiAgICB6ID0gei5zaGlmdFJpZ2h0KDEpO1xuICB9XG4gIHJldHVybiBpO1xufVxuXG4vL2V4dGVybmFsIHBvcGNvdW50OiB0IC0+IGludFxuLy9Qcm92aWRlczogbWxfel9wb3Bjb3VudFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX25hbWVkX3ZhbHVlXG5mdW5jdGlvbiBtbF96X3BvcGNvdW50KHopIHtcbiAgeiA9IGJpZ0ludCh6KTtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIGlmICh6Lmx0KHplcm8pKSB7XG4gICAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG4gIH1cbiAgdmFyIGk7XG4gIGZvciAoaSA9IDA7ICF6LmVxdWFscyh6ZXJvKTsgaSsrKSB7XG4gICAgeiA9IHouYW5kKHoucHJldigpKTtcbiAgfVxuICBpZihpICE9IChpfDApKSBjYW1sX3JhaXNlX2NvbnN0YW50KGNhbWxfbmFtZWRfdmFsdWUoXCJtbF96X292ZXJmbG93XCIpKTtcbiAgcmV0dXJuIGl8MDtcbn1cblxuLy9leHRlcm5hbCBoYW1kaXN0OiB0IC0+IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X2hhbWRpc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9wb3Bjb3VudCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX3JhaXNlX2NvbnN0YW50LCBjYW1sX25hbWVkX3ZhbHVlXG5mdW5jdGlvbiBtbF96X2hhbWRpc3QoejEsIHoyKSB7XG4gIGlmKGJpZ0ludCh6MSkuaXNOZWdhdGl2ZSgpICE9IGJpZ0ludCh6MikuaXNOZWdhdGl2ZSAoKSl7XG4gICAgY2FtbF9yYWlzZV9jb25zdGFudChjYW1sX25hbWVkX3ZhbHVlKFwibWxfel9vdmVyZmxvd1wiKSk7XG4gIH1cbiAgaWYoKHoxICE9ICh6MSB8IDApIHx8IHoyICE9ICh6MiB8IDApKSAmJiAoYmlnSW50KHoxKS5pc05lZ2F0aXZlKCkgfHwgYmlnSW50KHoyKS5pc05lZ2F0aXZlICgpKSl7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiWi5oYW1kaXN0OiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIH1cbiAgcmV0dXJuIG1sX3pfcG9wY291bnQoYmlnSW50KHoxKS54b3IoYmlnSW50KHoyKSkpO1xufVxuXG4vL2V4dGVybmFsIHNpemU6IHQgLT4gaW50XG4vL1Byb3ZpZGVzOiBtbF96X3NpemUgY29uc3Rcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gbWxfel9zaXplKHoxKSB7XG4gIC8vIENsYWltIHRvIGJlIGEgMzItYml0IGFyY2hpdGVjdHVyZS5cbiAgcmV0dXJuIGJpZ0ludCh6MSkudG9BcnJheShNYXRoLnBvdygyLCAzMikpLnZhbHVlLmxlbmd0aDtcbn1cblxuLy9leHRlcm5hbCBkaXZleGFjdDogdCAtPiB0IC0+IHRcbi8vUHJvdmlkZXM6IG1sX3pfZGl2ZXhhY3Rcbi8vUmVxdWlyZXM6IGJpZ0ludCwgbWxfel9kaXZcbmZ1bmN0aW9uIG1sX3pfZGl2ZXhhY3QoejEsIHoyKSB7XG4gIHJldHVybiBtbF96X2Rpdih6MSwgejIpO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfemFyaXRoX21hcnNoYWxcbi8vUmVxdWlyZXM6IGJpZ0ludFxuZnVuY3Rpb24gY2FtbF96YXJpdGhfbWFyc2hhbCh3cml0ZXIsIHYsIHN6KSB7XG4gIHYgPSBiaWdJbnQodik7XG4gIHZhciBiaXRzID0gdi50b0FycmF5KE1hdGgucG93KDIsIDMyKSk7XG4gIHdyaXRlci53cml0ZSg4LCBiaXRzLmlzTmVnYXRpdmUgPzEgOiAwKTtcbiAgdmFyIGJsb2NrID0gYml0cy52YWx1ZS5sZW5ndGg7XG4gIHZhciBsZW4gPSBibG9jayAqIDQ7XG4gIHdyaXRlci53cml0ZSgzMiwgbGVuKTtcbiAgZm9yKHZhciBpID0gYmxvY2sgLSAxOyBpID49IDA7IGkgLS0pe1xuICAgIHdyaXRlci53cml0ZSg4LCAoYml0cy52YWx1ZVtpXSA+Pj4gMCApICYgMHhmZik7XG4gICAgd3JpdGVyLndyaXRlKDgsIChiaXRzLnZhbHVlW2ldID4+PiA4ICkgJiAweGZmKTtcbiAgICB3cml0ZXIud3JpdGUoOCwgKGJpdHMudmFsdWVbaV0gPj4+IDE2KSAmIDB4ZmYpO1xuICAgIHdyaXRlci53cml0ZSg4LCAoYml0cy52YWx1ZVtpXSA+Pj4gMjQpICYgMHhmZik7XG4gIH1cbiAgc3pbMF0gPSA0ICogKDEgKyAoKChsZW4gKyAzKSAvIDQpIHwgMCkpO1xuICBzelsxXSA9IDggKiAoMSArICgoKGxlbiArIDcpIC8gOCkgfCAwKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfemFyaXRoX3VubWFyc2hhbFxuLy9SZXF1aXJlczogYmlnSW50LCBjYW1sX2ZhaWx3aXRoLCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gY2FtbF96YXJpdGhfdW5tYXJzaGFsKHJlYWRlciwgc3opIHtcbiAgdmFyIG5lZ2F0ZTtcbiAgc3dpdGNoKHJlYWRlci5yZWFkOHUgKCkpIHtcbiAgY2FzZSAxOiBuZWdhdGUgPSB0cnVlOyBicmVhaztcbiAgY2FzZSAwOiBuZWdhdGUgPSBmYWxzZTsgYnJlYWs7XG4gIGRlZmF1bHQ6IGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogeiAobWFsZm9ybWVkIGlucHV0KVwiKTtcbiAgfVxuICB2YXIgbGVuID0gcmVhZGVyLnJlYWQzMnUoKTtcbiAgdmFyIHggPSBiaWdJbnQoMCk7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCBsZW4gLyA0OyBpKyspe1xuICAgIHZhciB5ID0gYmlnSW50KHJlYWRlci5yZWFkOHUoKSk7XG4gICAgeSA9IHkuYWRkKChyZWFkZXIucmVhZDh1KCkpIDw8IDgpO1xuICAgIHkgPSB5LmFkZCgocmVhZGVyLnJlYWQ4dSgpKSA8PCAxNik7XG4gICAgeSA9IHkuYWRkKCgocmVhZGVyLnJlYWQ4dSgpKSA8PCAyNCkgPj4+IDApO1xuICAgIHggPSB5LnNoaWZ0TGVmdChpICogMzIpLmFkZCh4KTtcbiAgfVxuICBpZihuZWdhdGUpIHggPSB4Lm5lZ2F0ZSgpO1xuICBzelswXSA9IGxlbiArIDQ7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZSh4KVxufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2RpdmlzaWJsZVxuLy9SZXF1aXJlczogYmlnSW50XG5mdW5jdGlvbiBtbF96X2RpdmlzaWJsZShhLCBiKXtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIGEgPSBiaWdJbnQoYSk7XG4gIGIgPSBiaWdJbnQoYik7XG4gIGlmKGEuZXF1YWxzKHplcm8pICYmIGIuZXF1YWxzKHplcm8pKSByZXR1cm4gMTtcbiAgcmV0dXJuIGEuaXNEaXZpc2libGVCeShiKT8xOjA7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfY29uZ3J1ZW50XG4vL1JlcXVpcmVzOiBiaWdJbnRcbmZ1bmN0aW9uIG1sX3pfY29uZ3J1ZW50KGEsYixjKXtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIGEgPSBiaWdJbnQoYSk7XG4gIGIgPSBiaWdJbnQoYik7XG4gIGMgPSBiaWdJbnQoYyk7XG4gIGlmKGMuZXF1YWxzKHplcm8pICYmIGEuZXF1YWxzKGIpKSByZXR1cm4gMTtcbiAgcmV0dXJuIGEubWludXMoYikuaXNEaXZpc2libGVCeShjKSA/IDEgOiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X3JlbW92ZVxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZSwgY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gbWxfel9yZW1vdmUoYSxiKXtcbiAgdmFyIHplcm8gPSBiaWdJbnQoMCk7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIGEgPSBiaWdJbnQoYSk7XG4gIGIgPSBiaWdJbnQoYik7XG4gIGlmKGIuZXF1YWxzKHplcm8pKSBjYW1sX3JhaXNlX3plcm9fZGl2aWRlKCk7XG4gIGlmKGEuZXF1YWxzKHplcm8pIHx8IGIuYWJzKCkuZXF1YWxzKG9uZSkpIHJldHVybiBbMCwgYSwgMF07XG4gIHZhciBpID0gMDtcbiAgd2hpbGUoYS5pc0RpdmlzaWJsZUJ5KGIpKXtcbiAgICBhID0gYS5kaXZpZGUoYik7XG4gICAgaSsrO1xuICB9XG4gIHJldHVybiBbMCwgbWxfel9ub3JtYWxpemUoYSksIGldO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2ZhY1xuLy9SZXF1aXJlczogbWxfel9mYWNNLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIG1sX3pfZmFjKGkpe1xuICBpZihpPD0wKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmZhY3Q6IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgcmV0dXJuIG1sX3pfZmFjTShpLDEpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2ZhYzJcbi8vUmVxdWlyZXM6IG1sX3pfZmFjTSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X2ZhYzIoaSl7XG4gIGlmKGk8PTApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouZmFjdDI6IG5lZ2F0aXZlIGFyZ3VtZW50c1wiKTtcbiAgcmV0dXJuIG1sX3pfZmFjTShpLDIpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2ZhY01cbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9mYWNNKGksIG0pe1xuICBpZihpPD0wfHxtPD0wKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmZhY3RNOiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIG0gPSBiaWdJbnQobSk7XG4gIHZhciBjdXJyZW50ID0gYmlnSW50KGkpO1xuICB2YXIgcmVzID0gYmlnSW50KDEpO1xuICB3aGlsZShjdXJyZW50LmlzUG9zaXRpdmUoKSl7XG4gICAgcmVzID0gcmVzLm11bHRpcGx5KGN1cnJlbnQpO1xuICAgIGN1cnJlbnQgPSBjdXJyZW50Lm1pbnVzKG0pO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShyZXMpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X2ZpYlxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBtbF96X25vcm1hbGl6ZSwgYmlnSW50XG5mdW5jdGlvbiBtbF96X2ZpYihpKXtcbiAgaWYoaSA8IDApIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlouZmliOiBuZWdhdGl2ZSBhcmd1bWVudHNcIik7XG4gIGlmKGkgPT0gMCB8fCBpID09IDEpIHJldHVybiBpO1xuICB2YXIgYSA9IGJpZ0ludCgwKSwgYiA9IGJpZ0ludCgxKTtcbiAgZm9yKHZhciBrID0gMTsgayA8IGk7IGsrKyl7XG4gICAgdmFyIGIyID0gYjtcbiAgICBiID0gYS5hZGQoYik7XG4gICAgYSA9IGIyO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9sdWNudW1cbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgbWxfel9ub3JtYWxpemUsIGJpZ0ludFxuZnVuY3Rpb24gbWxfel9sdWNudW0oaSl7XG4gIGlmKGkgPCAwKSBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmx1Y251bTogbmVnYXRpdmUgYXJndW1lbnRzXCIpO1xuICBpZihpID09IDApIHJldHVybiAyO1xuICBpZihpID09IDEpIHJldHVybiAxO1xuICB2YXIgYSA9IGJpZ0ludCgyKSwgYiA9IGJpZ0ludCgxKTtcbiAgZm9yKHZhciBrID0gMTsgayA8IGk7IGsrKyl7XG4gICAgdmFyIGIyID0gYjtcbiAgICBiID0gYS5hZGQoYik7XG4gICAgYSA9IGIyO1xuICB9XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShiKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9qYWNvYmlcbi8vUmVxdWlyZXM6IGJpZ0ludCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBtbF96X2phY29iaShuLCBrKXtcbiAgbiA9IGJpZ0ludChuKTtcbiAgayA9IGJpZ0ludChrKTtcbiAgLy9hc3NlcnQoayA+IDAgYW5kIGsgJSAyID09IDEpXG4gIGlmKGsubGVxKGJpZ0ludCgwKSkgfHwgay5tb2QoYmlnSW50KDIpKS5uZXEoYmlnSW50KDEpKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJaLmphY29iaTogc2Vjb25kIGFyZ3VtZW50IGlzIG5lZ2F0aXZlIG9yIGV2ZW5cIik7XG4gIG4gPSBuLm1vZChrKTtcbiAgaWYobi5sdChiaWdJbnQoMCkpKSBuID0gbi5hZGQoayk7XG4gIHZhciB0ID0gMTtcbiAgd2hpbGUgKCEgbi5lcXVhbHMoYmlnSW50KDApKSl7XG4gICAgd2hpbGUgKG4uaXNEaXZpc2libGVCeShiaWdJbnQoMikpKSB7XG4gICAgICBuID0gbi5kaXZpZGUoYmlnSW50KDIpKVxuICAgICAgdmFyIHIgPSBrLm1vZChiaWdJbnQoOCkpXG4gICAgICBpZiAoci5lcXVhbHMoYmlnSW50KDMpKSB8fCByLmVxdWFscyhiaWdJbnQoNSkpKXtcbiAgICAgICAgdCA9IC10XG4gICAgICB9XG4gICAgfVxuICAgIHZhciBuMSA9IG4sIGsxID0gaztcbiAgICBuID0gazE7XG4gICAgayA9IG4xO1xuICAgIGlmIChuLm1vZChiaWdJbnQoNCkpLmVxdWFscyhiaWdJbnQoMykpICYmICBrLm1vZChiaWdJbnQoNCkpLmVxdWFscyhiaWdJbnQoMykpKSB7XG4gICAgICB0ID0gLXRcbiAgICB9XG4gICAgbiA9IG4ubW9kKGspXG4gIH1cbiAgaWYoay5lcXVhbHMoYmlnSW50KDEpKSlcbiAgICByZXR1cm4gdFxuICBlbHNlXG4gICAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogbWxfel9sZWdlbmRyZVxuLy9SZXF1aXJlczogbWxfel9qYWNvYmlcbmZ1bmN0aW9uIG1sX3pfbGVnZW5kcmUoYSxiKXtcbiAgcmV0dXJuIG1sX3pfamFjb2JpKGEsYik7XG59XG5cbi8vUHJvdmlkZXM6IG1sX3pfa3JvbmVja2VyXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBtbF96X2tyb25lY2tlcihuLGspe1xuICBjYW1sX2ZhaWx3aXRoKFwibWxfel9rcm9uZWNrZXIgaXMgbm90IGltcGxlbWVudGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBtbF96X3ByaW1vcmlhbFxuLy9SZXF1aXJlczogYmlnSW50LCBtbF96X25vcm1hbGl6ZVxuZnVuY3Rpb24gbWxfel9wcmltb3JpYWwoYSl7XG4gIHZhciBvbmUgPSBiaWdJbnQoMSk7XG4gIHZhciB0d28gPSBiaWdJbnQoMik7XG4gIHZhciB6MSA9IG9uZTtcbiAgdmFyIHJlcyA9IG9uZTtcbiAgYSA9IGJpZ0ludChhKTtcbiAgd2hpbGUgKHoxLmxlcShhKSkge1xuICAgIGlmICh6MS5pc1Byb2JhYmxlUHJpbWUoMjUpKSB7XG4gICAgICByZXMgPSByZXMubXVsdGlwbHkoejEpO1xuICAgIH1cbiAgICBpZih6MS5lcXVhbHMob25lKSB8fCB6MS5lcXVhbHModHdvKSkgejEgPSB6MS5hZGQob25lKTtcbiAgICBlbHNlIHoxID0gejEuYWRkKHR3bylcbiAgfVxuICByZXR1cm4gbWxfel9ub3JtYWxpemUocmVzKTtcbn1cblxuLy9Qcm92aWRlczogbWxfel9iaW5cbi8vUmVxdWlyZXM6IG1sX3pfbm9ybWFsaXplLCBiaWdJbnQsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gbWxfel9iaW4obiwgayl7XG4gIHZhciBuID0gYmlnSW50KG4pO1xuICB2YXIgayA9IGJpZ0ludChrKTtcbiAgdmFyIGNvZWZmID0gYmlnSW50KDEpO1xuICBmb3IgKHZhciB4ID0gbi5taW51cyhrKS5hZGQoYmlnSW50KDEpKTsgeC5sZXEobik7IHggPSB4LmFkZChiaWdJbnQoMSkpKSBjb2VmZiA9IGNvZWZmLm11bHRpcGx5KHgpO1xuICBmb3IgKHggPSBiaWdJbnQoMSk7IHgubGVxKGspOyB4ID0geC5hZGQoYmlnSW50KDEpKSkgY29lZmYgPSBjb2VmZi5kaXZpZGUoeCk7XG4gIHJldHVybiBtbF96X25vcm1hbGl6ZShjb2VmZik7XG5cbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvbiwgSHVnbyBIZXV6YXJkLCBBbmR5IFJheVxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuLy9cbi8vIEJpZ2FycmF5LlxuLy9cbi8vIC0gYWxsIGJpZ2FycmF5IHR5cGVzIGluY2x1ZGluZyBJbnQ2NCBhbmQgQ29tcGxleC5cbi8vIC0gZm9ydHJhbiArIGMgbGF5b3V0c1xuLy8gLSBzdWIvc2xpY2UvcmVzaGFwZVxuLy8gLSByZXRhaW4gZmFzdCBwYXRoIGZvciAxZCBhcnJheSBhY2Nlc3NcblxuLy9Qcm92aWRlczogY2FtbF9iYV9pbml0IGNvbnN0XG5mdW5jdGlvbiBjYW1sX2JhX2luaXQoKSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfZ2V0X3NpemUoZGltcykge1xuICB2YXIgbl9kaW1zID0gZGltcy5sZW5ndGg7XG4gIHZhciBzaXplID0gMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBuX2RpbXM7IGkrKykge1xuICAgIGlmIChkaW1zW2ldIDwgMClcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmNyZWF0ZTogbmVnYXRpdmUgZGltZW5zaW9uXCIpO1xuICAgIHNpemUgPSBzaXplICogZGltc1tpXTtcbiAgfVxuICByZXR1cm4gc2l6ZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKXtcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDc6IGNhc2UgMTA6IGNhc2UgMTE6IHJldHVybiAyO1xuICBkZWZhdWx0OiByZXR1cm4gMTtcbiAgfVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIHNpemUpe1xuICB2YXIgdmlldztcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDA6ICB2aWV3ID0gRmxvYXQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxOiAgdmlldyA9IEZsb2F0NjRBcnJheTsgYnJlYWs7XG4gIGNhc2UgMjogIHZpZXcgPSBJbnQ4QXJyYXk7IGJyZWFrO1xuICBjYXNlIDM6ICB2aWV3ID0gVWludDhBcnJheTsgYnJlYWs7XG4gIGNhc2UgNDogIHZpZXcgPSBJbnQxNkFycmF5OyBicmVhaztcbiAgY2FzZSA1OiAgdmlldyA9IFVpbnQxNkFycmF5OyBicmVhaztcbiAgY2FzZSA2OiAgdmlldyA9IEludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDc6ICB2aWV3ID0gSW50MzJBcnJheTsgYnJlYWs7XG4gIGNhc2UgODogIHZpZXcgPSBJbnQzMkFycmF5OyBicmVhaztcbiAgY2FzZSA5OiAgdmlldyA9IEludDMyQXJyYXk7IGJyZWFrO1xuICBjYXNlIDEwOiB2aWV3ID0gRmxvYXQzMkFycmF5OyBicmVhaztcbiAgY2FzZSAxMTogdmlldyA9IEZsb2F0NjRBcnJheTsgYnJlYWs7XG4gIGNhc2UgMTI6IHZpZXcgPSBVaW50OEFycmF5OyBicmVhaztcbiAgfVxuICBpZiAoIXZpZXcpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmNyZWF0ZTogdW5zdXBwb3J0ZWQga2luZFwiKTtcbiAgdmFyIGRhdGEgPSBuZXcgdmlldyhzaXplICogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChraW5kKSk7XG4gIHJldHVybiBkYXRhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2N1c3RvbV9uYW1lXG4vL1ZlcnNpb246IDwgNC4xMVxudmFyIGNhbWxfYmFfY3VzdG9tX25hbWUgPSBcIl9iaWdhcnJheVwiXG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vVmVyc2lvbjogPj0gNC4xMVxudmFyIGNhbWxfYmFfY3VzdG9tX25hbWUgPSBcIl9iaWdhcnIwMlwiXG5cbi8vUHJvdmlkZXM6IE1sX0JpZ2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3VzdG9tX25hbWVcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfY3JlYXRlX2xvX2hpLCBjYW1sX2ludDY0X2hpMzIsIGNhbWxfaW50NjRfbG8zMlxuZnVuY3Rpb24gTWxfQmlnYXJyYXkgKGtpbmQsIGxheW91dCwgZGltcywgYnVmZmVyKSB7XG5cbiAgdGhpcy5raW5kICAgPSBraW5kIDtcbiAgdGhpcy5sYXlvdXQgPSBsYXlvdXQ7XG4gIHRoaXMuZGltcyAgID0gZGltcztcbiAgdGhpcy5kYXRhID0gYnVmZmVyO1xufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuY2FtbF9jdXN0b20gPSBjYW1sX2JhX2N1c3RvbV9uYW1lO1xuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUub2Zmc2V0ID0gZnVuY3Rpb24gKGFyZykge1xuICB2YXIgb2ZzID0gMDtcbiAgaWYodHlwZW9mIGFyZyA9PT0gXCJudW1iZXJcIikgYXJnID0gW2FyZ107XG4gIGlmICghIChhcmcgaW5zdGFuY2VvZiBBcnJheSkpIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImJpZ2FycmF5LmpzOiBpbnZhbGlkIG9mZnNldFwiKTtcbiAgaWYgKHRoaXMuZGltcy5sZW5ndGggIT0gYXJnLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5nZXQvc2V0OiBiYWQgbnVtYmVyIG9mIGRpbWVuc2lvbnNcIik7XG4gIGlmKHRoaXMubGF5b3V0ID09IDAgLyogY19sYXlvdXQgKi8pIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGltcy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFyZ1tpXSA8IDAgfHwgYXJnW2ldID49IHRoaXMuZGltc1tpXSlcbiAgICAgICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICAgICAgb2ZzID0gKG9mcyAqIHRoaXMuZGltc1tpXSkgKyBhcmdbaV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSB0aGlzLmRpbXMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGlmIChhcmdbaV0gPCAxIHx8IGFyZ1tpXSA+IHRoaXMuZGltc1tpXSl7XG4gICAgICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIG9mcyA9IChvZnMgKiB0aGlzLmRpbXNbaV0pICsgKGFyZ1tpXSAtIDEpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gb2ZzO1xufVxuXG5NbF9CaWdhcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKG9mcykge1xuICBzd2l0Y2godGhpcy5raW5kKXtcbiAgY2FzZSA3OlxuICAgIC8vIEludDY0XG4gICAgdmFyIGwgPSB0aGlzLmRhdGFbb2ZzICogMiArIDBdO1xuICAgIHZhciBoID0gdGhpcy5kYXRhW29mcyAqIDIgKyAxXTtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9jcmVhdGVfbG9faGkobCxoKTtcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHZhciByID0gdGhpcy5kYXRhW29mcyAqIDIgKyAwXTtcbiAgICB2YXIgaSA9IHRoaXMuZGF0YVtvZnMgKiAyICsgMV07XG4gICAgcmV0dXJuIFsyNTQsIHIsIGldO1xuICBkZWZhdWx0OlxuICAgIHJldHVybiB0aGlzLmRhdGFbb2ZzXVxuICB9XG59XG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAob2ZzLHYpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMF0gPSBjYW1sX2ludDY0X2xvMzIodik7XG4gICAgdGhpcy5kYXRhW29mcyAqIDIgKyAxXSA9IGNhbWxfaW50NjRfaGkzMih2KTtcbiAgICBicmVhaztcbiAgY2FzZSAxMDogY2FzZSAxMTpcbiAgICAvLyBDb21wbGV4MzIsIENvbXBsZXg2NFxuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMF0gPSB2WzFdO1xuICAgIHRoaXMuZGF0YVtvZnMgKiAyICsgMV0gPSB2WzJdO1xuICAgIGJyZWFrO1xuICBkZWZhdWx0OlxuICAgIHRoaXMuZGF0YVtvZnNdID0gdjtcbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gMFxufVxuXG5cbk1sX0JpZ2FycmF5LnByb3RvdHlwZS5maWxsID0gZnVuY3Rpb24gKHYpIHtcbiAgc3dpdGNoKHRoaXMua2luZCl7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIHZhciBhID0gY2FtbF9pbnQ2NF9sbzMyKHYpO1xuICAgIHZhciBiID0gY2FtbF9pbnQ2NF9oaTMyKHYpO1xuICAgIGlmKGEgPT0gYil7XG4gICAgICB0aGlzLmRhdGEuZmlsbChhKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBmb3IodmFyIGkgPSAwOyBpPHRoaXMuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICAgIHRoaXMuZGF0YVtpXSA9IChpJTIgPT0gMCkgPyBhIDogYjtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTA6IGNhc2UgMTE6XG4gICAgLy8gQ29tcGxleDMyLCBDb21wbGV4NjRcbiAgICB2YXIgaW0gPSB2WzFdO1xuICAgIHZhciByZSA9IHZbMl07XG4gICAgaWYoaW0gPT0gcmUpe1xuICAgICAgdGhpcy5kYXRhLmZpbGwoaW0pO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGZvcih2YXIgaSA9IDA7IGk8dGhpcy5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgICAgdGhpcy5kYXRhW2ldID0gKGklMiA9PSAwKSA/IGltIDogcmU7XG4gICAgICB9XG4gICAgfVxuICAgIGJyZWFrO1xuICBkZWZhdWx0OlxuICAgIHRoaXMuZGF0YS5maWxsKHYpO1xuICAgIGJyZWFrO1xuICB9XG59XG5cblxuTWxfQmlnYXJyYXkucHJvdG90eXBlLmNvbXBhcmUgPSBmdW5jdGlvbiAoYiwgdG90YWwpIHtcbiAgaWYgKHRoaXMubGF5b3V0ICE9IGIubGF5b3V0IHx8IHRoaXMua2luZCAhPSBiLmtpbmQpIHtcbiAgICB2YXIgazEgPSB0aGlzLmtpbmQgfCAodGhpcy5sYXlvdXQgPDwgOCk7XG4gICAgdmFyIGsyID0gICAgYi5raW5kIHwgKGIubGF5b3V0IDw8IDgpO1xuICAgIHJldHVybiBrMiAtIGsxO1xuICB9XG4gIGlmICh0aGlzLmRpbXMubGVuZ3RoICE9IGIuZGltcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gYi5kaW1zLmxlbmd0aCAtIHRoaXMuZGltcy5sZW5ndGg7XG4gIH1cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgaWYgKHRoaXMuZGltc1tpXSAhPSBiLmRpbXNbaV0pXG4gICAgICByZXR1cm4gKHRoaXMuZGltc1tpXSA8IGIuZGltc1tpXSkgPyAtMSA6IDE7XG4gIHN3aXRjaCAodGhpcy5raW5kKSB7XG4gIGNhc2UgMDpcbiAgY2FzZSAxOlxuICBjYXNlIDEwOlxuICBjYXNlIDExOlxuICAgIC8vIEZsb2F0c1xuICAgIHZhciB4LCB5O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICB4ID0gdGhpcy5kYXRhW2ldO1xuICAgICAgeSA9IGIuZGF0YVtpXTtcbiAgICAgIGlmICh4IDwgeSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHggPiB5KVxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIGlmICh4ICE9IHkpIHtcbiAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgaWYgKHggPT0geCkgcmV0dXJuIDE7XG4gICAgICAgIGlmICh5ID09IHkpIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNzpcbiAgICAvLyBJbnQ2NFxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5kYXRhLmxlbmd0aDsgaSs9Mikge1xuICAgICAgLy8gQ2hlY2sgaGlnaGVzdCBiaXRzIGZpcnN0XG4gICAgICBpZiAodGhpcy5kYXRhW2krMV0gPCBiLmRhdGFbaSsxXSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHRoaXMuZGF0YVtpKzFdID4gYi5kYXRhW2krMV0pXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgaWYgKCh0aGlzLmRhdGFbaV0gPj4+IDApIDwgKGIuZGF0YVtpXSA+Pj4gMCkpXG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIGlmICgodGhpcy5kYXRhW2ldID4+PiAwKSA+IChiLmRhdGFbaV0gPj4+IDApKVxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMjpcbiAgY2FzZSAzOlxuICBjYXNlIDQ6XG4gIGNhc2UgNTpcbiAgY2FzZSA2OlxuICBjYXNlIDg6XG4gIGNhc2UgOTpcbiAgY2FzZSAxMjpcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZGF0YVtpXSA8IGIuZGF0YVtpXSlcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgaWYgKHRoaXMuZGF0YVtpXSA+IGIuZGF0YVtpXSlcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBNbF9CaWdhcnJheV9jXzFfMVxuLy9SZXF1aXJlczogTWxfQmlnYXJyYXksIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IsIGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gTWxfQmlnYXJyYXlfY18xXzEoa2luZCwgbGF5b3V0LCBkaW1zLCBidWZmZXIpIHtcbiAgdGhpcy5raW5kICAgPSBraW5kIDtcbiAgdGhpcy5sYXlvdXQgPSBsYXlvdXQ7XG4gIHRoaXMuZGltcyAgID0gZGltcztcbiAgdGhpcy5kYXRhICAgPSBidWZmZXI7XG59XG5cbk1sX0JpZ2FycmF5X2NfMV8xLnByb3RvdHlwZSA9IG5ldyBNbF9CaWdhcnJheSgpXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUub2Zmc2V0ID0gZnVuY3Rpb24gKGFyZykge1xuICBpZih0eXBlb2YgYXJnICE9PSBcIm51bWJlclwiKXtcbiAgICBpZigoYXJnIGluc3RhbmNlb2YgQXJyYXkpICYmIGFyZy5sZW5ndGggPT0gMSlcbiAgICAgIGFyZyA9IGFyZ1swXTtcbiAgICBlbHNlIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIk1sX0JpZ2FycmF5X2NfMV8xLm9mZnNldFwiKTtcbiAgfVxuICBpZiAoYXJnIDwgMCB8fCBhcmcgPj0gdGhpcy5kaW1zWzBdKVxuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFyZztcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uIChvZnMpIHtcbiAgcmV0dXJuIHRoaXMuZGF0YVtvZnNdO1xufVxuXG5NbF9CaWdhcnJheV9jXzFfMS5wcm90b3R5cGUuc2V0ID0gZnVuY3Rpb24gKG9mcyx2KSB7XG4gIHRoaXMuZGF0YVtvZnNdID0gdjtcbiAgcmV0dXJuIDBcbn1cblxuTWxfQmlnYXJyYXlfY18xXzEucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiAodikge1xuICB0aGlzLmRhdGEuZmlsbCh2KTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jb21wYXJlXG5mdW5jdGlvbiBjYW1sX2JhX2NvbXBhcmUoYSxiLHRvdGFsKXtcbiAgcmV0dXJuIGEuY29tcGFyZShiLHRvdGFsKVxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbi8vUmVxdWlyZXM6IE1sX0JpZ2FycmF5LCBNbF9CaWdhcnJheV9jXzFfMSwgY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKXtcbiAgdmFyIHNpemVfcGVyX2VsZW1lbnQgPSBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50KGtpbmQpO1xuICBpZihjYW1sX2JhX2dldF9zaXplKGRpbXMpICogc2l6ZV9wZXJfZWxlbWVudCAhPSBkYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImxlbmd0aCBkb2Vzbid0IG1hdGNoIGRpbXNcIik7XG4gIH1cbiAgaWYobGF5b3V0ID09IDAgJiYgLy8gY19sYXlvdXRcbiAgICAgZGltcy5sZW5ndGggPT0gMSAmJiAvLyBBcnJheTFcbiAgICAgc2l6ZV9wZXJfZWxlbWVudCA9PSAxKSAvLyAxLXRvLTEgbWFwcGluZ1xuICAgIHJldHVybiBuZXcgTWxfQmlnYXJyYXlfY18xXzEoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbiAgcmV0dXJuIG5ldyBNbF9CaWdhcnJheShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xuXG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZSwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV9idWZmZXJcbmZ1bmN0aW9uIGNhbWxfYmFfY3JlYXRlKGtpbmQsIGxheW91dCwgZGltc19tbCkge1xuICB2YXIgZGltcyA9IGNhbWxfanNfZnJvbV9hcnJheShkaW1zX21sKTtcbiAgdmFyIGRhdGEgPSBjYW1sX2JhX2NyZWF0ZV9idWZmZXIoa2luZCwgY2FtbF9iYV9nZXRfc2l6ZShkaW1zKSk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGNhbWxfYmFfY2hhbmdlX2xheW91dChiYSwgbGF5b3V0KSB7XG4gIGlmKGJhLmxheW91dCA9PSBsYXlvdXQpIHJldHVybiBiYTtcbiAgdmFyIG5ld19kaW1zID0gW11cbiAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspIG5ld19kaW1zW2ldID0gYmEuZGltc1tiYS5kaW1zLmxlbmd0aCAtIGkgLSAxXTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBsYXlvdXQsIG5ld19kaW1zLCBiYS5kYXRhKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9raW5kXG5mdW5jdGlvbiBjYW1sX2JhX2tpbmQoYmEpIHtcbiAgcmV0dXJuIGJhLmtpbmQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfbGF5b3V0XG5mdW5jdGlvbiBjYW1sX2JhX2xheW91dChiYSkge1xuICByZXR1cm4gYmEubGF5b3V0O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX251bV9kaW1zXG5mdW5jdGlvbiBjYW1sX2JhX251bV9kaW1zKGJhKSB7XG4gIHJldHVybiBiYS5kaW1zLmxlbmd0aDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1cbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuZnVuY3Rpb24gY2FtbF9iYV9kaW0oYmEsIGkpIHtcbiAgaWYgKGkgPCAwIHx8IGkgPj0gYmEuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuZGltXCIpO1xuICByZXR1cm4gYmEuZGltc1tpXTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fMVxuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzEoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAwKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fMlxuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzIoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAxKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kaW1fM1xuLy9SZXF1aXJlczogY2FtbF9iYV9kaW1cbmZ1bmN0aW9uIGNhbWxfYmFfZGltXzMoYmEpIHtcbiAgcmV0dXJuIGNhbWxfYmFfZGltKGJhLCAyKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfZ2VuZXJpY1xuLy9SZXF1aXJlczogY2FtbF9qc19mcm9tX2FycmF5XG5mdW5jdGlvbiBjYW1sX2JhX2dldF9nZW5lcmljKGJhLCBpKSB7XG4gIHZhciBvZnMgPSBiYS5vZmZzZXQoY2FtbF9qc19mcm9tX2FycmF5KGkpKTtcbiAgcmV0dXJuIGJhLmdldChvZnMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDE2KGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMSA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcyArIDEpO1xuICByZXR1cm4gKGIxIHwgKGIyIDw8IDgpKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9nZXQzMlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9nZXQzMihiYSwgaTApIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDMgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgdmFyIGIxID0gYmEuZ2V0KG9mcyswKTtcbiAgdmFyIGIyID0gYmEuZ2V0KG9mcysxKTtcbiAgdmFyIGIzID0gYmEuZ2V0KG9mcysyKTtcbiAgdmFyIGI0ID0gYmEuZ2V0KG9mcyszKTtcbiAgcmV0dXJuICggKGIxIDw8IDApICB8XG4gICAgICAgICAgIChiMiA8PCA4KSAgfFxuICAgICAgICAgICAoYjMgPDwgMTYpIHxcbiAgICAgICAgICAgKGI0IDw8IDI0KSApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X2dldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X2dldDY0KGJhLCBpMCkge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgNyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgYjEgPSBiYS5nZXQob2ZzKzApO1xuICB2YXIgYjIgPSBiYS5nZXQob2ZzKzEpO1xuICB2YXIgYjMgPSBiYS5nZXQob2ZzKzIpO1xuICB2YXIgYjQgPSBiYS5nZXQob2ZzKzMpO1xuICB2YXIgYjUgPSBiYS5nZXQob2ZzKzQpO1xuICB2YXIgYjYgPSBiYS5nZXQob2ZzKzUpO1xuICB2YXIgYjcgPSBiYS5nZXQob2ZzKzYpO1xuICB2YXIgYjggPSBiYS5nZXQob2ZzKzcpO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhbYjgsYjcsYjYsYjUsYjQsYjMsYjIsYjFdKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMShiYSwgaTApIHtcbiAgcmV0dXJuIGJhLmdldChiYS5vZmZzZXQoaTApKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfMlxuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMihiYSwgaTAsIGkxKSB7XG4gIHJldHVybiBiYS5nZXQoYmEub2Zmc2V0KFtpMCxpMV0pKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9nZXRfM1xuZnVuY3Rpb24gY2FtbF9iYV9nZXRfMyhiYSwgaTAsIGkxLCBpMikge1xuICByZXR1cm4gYmEuZ2V0KGJhLm9mZnNldChbaTAsaTEsaTJdKSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2V0X2dlbmVyaWNcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheVxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfZ2VuZXJpYyhiYSwgaSwgdikge1xuICBiYS5zZXQoYmEub2Zmc2V0KGNhbWxfanNfZnJvbV9hcnJheShpKSksIHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDE2XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDE2KGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgMSA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICBiYS5zZXQob2ZzKzAsICB2ICAgICAgICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzEsICh2ID4+PiA4KSAmIDB4ZmYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV91aW50OF9zZXQzMlxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9iYV91aW50OF9zZXQzMihiYSwgaTAsIHYpIHtcbiAgdmFyIG9mcyA9IGJhLm9mZnNldChpMCk7XG4gIGlmKG9mcyArIDMgPj0gYmEuZGF0YS5sZW5ndGgpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYmEuc2V0KG9mcyswLCAgdiAgICAgICAgICYgMHhmZik7XG4gIGJhLnNldChvZnMrMSwgKHYgPj4+IDgpICAmIDB4ZmYpO1xuICBiYS5zZXQob2ZzKzIsICh2ID4+PiAxNikgJiAweGZmKTtcbiAgYmEuc2V0KG9mcyszLCAodiA+Pj4gMjQpICYgMHhmZik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3VpbnQ4X3NldDY0XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yLCBjYW1sX2ludDY0X3RvX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2JhX3VpbnQ4X3NldDY0KGJhLCBpMCwgdikge1xuICB2YXIgb2ZzID0gYmEub2Zmc2V0KGkwKTtcbiAgaWYob2ZzICsgNyA+PSBiYS5kYXRhLmxlbmd0aCkgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB2YXIgdiA9IGNhbWxfaW50NjRfdG9fYnl0ZXModik7XG4gIGZvcih2YXIgaSA9IDA7IGkgPCA4OyBpKyspIGJhLnNldChvZnMraSwgdls3LWldKVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9zZXRfMVxuZnVuY3Rpb24gY2FtbF9iYV9zZXRfMShiYSwgaTAsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChpMCksIHYpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8yXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8yKGJhLCBpMCwgaTEsIHYpIHtcbiAgYmEuc2V0KGJhLm9mZnNldChbaTAsaTFdKSwgdik7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NldF8zXG5mdW5jdGlvbiBjYW1sX2JhX3NldF8zKGJhLCBpMCwgaTEsIGkyLCB2KSB7XG4gIGJhLnNldChiYS5vZmZzZXQoW2kwLGkxLGkyXSksIHYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9maWxsXG5mdW5jdGlvbiBjYW1sX2JhX2ZpbGwoYmEsIHYpIHtcbiAgYmEuZmlsbCh2KTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfYmxpdFxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2JsaXQoc3JjLCBkc3QpIHtcbiAgaWYgKGRzdC5kaW1zLmxlbmd0aCAhPSBzcmMuZGltcy5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkuYmxpdDogZGltZW5zaW9uIG1pc21hdGNoXCIpO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGRzdC5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIGlmIChkc3QuZGltc1tpXSAhPSBzcmMuZGltc1tpXSlcbiAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LmJsaXQ6IGRpbWVuc2lvbiBtaXNtYXRjaFwiKTtcbiAgZHN0LmRhdGEuc2V0KHNyYy5kYXRhKTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc3ViXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9iYV9nZXRfc2l6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudFxuZnVuY3Rpb24gY2FtbF9iYV9zdWIoYmEsIG9mcywgbGVuKSB7XG4gIHZhciBjaGFuZ2VkX2RpbTtcbiAgdmFyIG11bCA9IDE7XG4gIGlmIChiYS5sYXlvdXQgPT0gMCkge1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKylcbiAgICAgIG11bCA9IG11bCAqIGJhLmRpbXNbaV07XG4gICAgY2hhbmdlZF9kaW0gPSAwO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgKGJhLmRpbXMubGVuZ3RoIC0gMSk7IGkrKylcbiAgICAgIG11bCA9IG11bCAqIGJhLmRpbXNbaV07XG4gICAgY2hhbmdlZF9kaW0gPSBiYS5kaW1zLmxlbmd0aCAtIDE7XG4gICAgb2ZzID0gb2ZzIC0gMTtcbiAgfVxuICBpZiAob2ZzIDwgMCB8fCBsZW4gPCAwIHx8IChvZnMgKyBsZW4pID4gYmEuZGltc1tjaGFuZ2VkX2RpbV0pe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnN1YjogYmFkIHN1Yi1hcnJheVwiKTtcbiAgfVxuICB2YXIgbmV3X2RpbXMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKVxuICAgIG5ld19kaW1zW2ldID0gYmEuZGltc1tpXTtcbiAgbmV3X2RpbXNbY2hhbmdlZF9kaW1dID0gbGVuO1xuICBtdWwgKj0gY2FtbF9iYV9nZXRfc2l6ZV9wZXJfZWxlbWVudChiYS5raW5kKTtcbiAgdmFyIG5ld19kYXRhID0gYmEuZGF0YS5zdWJhcnJheShvZnMgKiBtdWwsIChvZnMgKyBsZW4pICogbXVsKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIG5ld19kaW1zLCBuZXdfZGF0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfc2xpY2Vcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYmFfZ2V0X3NpemVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfc2xpY2UoYmEsIHZpbmQpIHtcbiAgdmluZCA9IGNhbWxfanNfZnJvbV9hcnJheSh2aW5kKTtcbiAgdmFyIG51bV9pbmRzID0gdmluZC5sZW5ndGg7XG4gIHZhciBpbmRleCA9IFtdO1xuICB2YXIgc3ViX2RpbXMgPSBbXTtcbiAgdmFyIG9mcztcblxuICBpZiAobnVtX2luZHMgPiBiYS5kaW1zLmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5zbGljZTogdG9vIG1hbnkgaW5kaWNlc1wiKTtcblxuICAvLyBDb21wdXRlIG9mZnNldCBhbmQgY2hlY2sgYm91bmRzXG4gIGlmIChiYS5sYXlvdXQgPT0gMCkge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2luZHM7IGkrKylcbiAgICAgIGluZGV4W2ldID0gdmluZFtpXTtcbiAgICBmb3IgKDsgaSA8IGJhLmRpbXMubGVuZ3RoOyBpKyspXG4gICAgICBpbmRleFtpXSA9IDA7XG4gICAgc3ViX2RpbXMgPSBiYS5kaW1zLnNsaWNlKG51bV9pbmRzKTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9pbmRzOyBpKyspXG4gICAgICBpbmRleFtiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzICsgaV0gPSB2aW5kW2ldO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGggLSBudW1faW5kczsgaSsrKVxuICAgICAgaW5kZXhbaV0gPSAxO1xuICAgIHN1Yl9kaW1zID0gYmEuZGltcy5zbGljZSgwLCBiYS5kaW1zLmxlbmd0aCAtIG51bV9pbmRzKTtcbiAgfVxuICBvZnMgPSBiYS5vZmZzZXQoaW5kZXgpO1xuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoc3ViX2RpbXMpO1xuICB2YXIgc2l6ZV9wZXJfZWxlbWVudCA9IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoYmEua2luZCk7XG4gIHZhciBuZXdfZGF0YSA9IGJhLmRhdGEuc3ViYXJyYXkob2ZzICogc2l6ZV9wZXJfZWxlbWVudCwgKG9mcyArIHNpemUpICogc2l6ZV9wZXJfZWxlbWVudCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoYmEua2luZCwgYmEubGF5b3V0LCBzdWJfZGltcywgbmV3X2RhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3Jlc2hhcGVcbi8vUmVxdWlyZXM6IGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2NyZWF0ZV91bnNhZmUsIGNhbWxfYmFfZ2V0X3NpemVcbmZ1bmN0aW9uIGNhbWxfYmFfcmVzaGFwZShiYSwgdmluZCkge1xuICB2aW5kID0gY2FtbF9qc19mcm9tX2FycmF5KHZpbmQpO1xuICB2YXIgbmV3X2RpbSA9IFtdO1xuICB2YXIgbnVtX2RpbXMgPSB2aW5kLmxlbmd0aDtcblxuICBpZiAobnVtX2RpbXMgPCAwIHx8IG51bV9kaW1zID4gMTYpe1xuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIkJpZ2FycmF5LnJlc2hhcGU6IGJhZCBudW1iZXIgb2YgZGltZW5zaW9uc1wiKTtcbiAgfVxuICB2YXIgbnVtX2VsdHMgPSAxO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IG51bV9kaW1zOyBpKyspIHtcbiAgICBuZXdfZGltW2ldID0gdmluZFtpXTtcbiAgICBpZiAobmV3X2RpbVtpXSA8IDApXG4gICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJCaWdhcnJheS5yZXNoYXBlOiBuZWdhdGl2ZSBkaW1lbnNpb25cIik7XG4gICAgbnVtX2VsdHMgPSBudW1fZWx0cyAqIG5ld19kaW1baV07XG4gIH1cblxuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoYmEuZGltcyk7XG4gIC8vIENoZWNrIHRoYXQgc2l6ZXMgYWdyZWVcbiAgaWYgKG51bV9lbHRzICE9IHNpemUpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiQmlnYXJyYXkucmVzaGFwZTogc2l6ZSBtaXNtYXRjaFwiKTtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShiYS5raW5kLCBiYS5sYXlvdXQsIG5ld19kaW0sIGJhLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JhX3NlcmlhbGl6ZVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2ludDY0X3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRcbmZ1bmN0aW9uIGNhbWxfYmFfc2VyaWFsaXplKHdyaXRlciwgYmEsIHN6KSB7XG4gIHdyaXRlci53cml0ZSgzMiwgYmEuZGltcy5sZW5ndGgpO1xuICB3cml0ZXIud3JpdGUoMzIsIChiYS5raW5kIHwgKGJhLmxheW91dCA8PCA4KSkpO1xuICBpZihiYS5jYW1sX2N1c3RvbSA9PSBcIl9iaWdhcnIwMlwiKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kaW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpZihiYS5kaW1zW2ldIDwgMHhmZmZmKVxuICAgICAgICB3cml0ZXIud3JpdGUoMTYsIGJhLmRpbXNbaV0pO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHdyaXRlci53cml0ZSgxNiwgMHhmZmZmKTtcbiAgICAgICAgd3JpdGVyLndyaXRlKDMyLCAwKTtcbiAgICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kaW1zW2ldKTtcbiAgICAgIH1cbiAgICB9XG4gIGVsc2VcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGltcy5sZW5ndGg7IGkrKykgd3JpdGVyLndyaXRlKDMyLGJhLmRpbXNbaV0pXG4gIHN3aXRjaChiYS5raW5kKXtcbiAgY2FzZSAyOiAgLy9JbnQ4QXJyYXlcbiAgY2FzZSAzOiAgLy9VaW50OEFycmF5XG4gIGNhc2UgMTI6IC8vVWludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSg4LCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNDogIC8vIEludDE2QXJyYXlcbiAgY2FzZSA1OiAgLy8gVWludDE2QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGg7IGkrKyl7XG4gICAgICB3cml0ZXIud3JpdGUoMTYsIGJhLmRhdGFbaV0pO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoOyBpKyspe1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBiYS5kYXRhW2ldKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIHdyaXRlci53cml0ZSg4LDApO1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHdyaXRlci53cml0ZSgzMiwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDc6ICAvLyBJbnQzMkFycmF5IChpbnQ2NClcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgYmEuZGF0YS5sZW5ndGggLyAyOyBpKyspe1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGJhLmdldChpKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoYmEuZ2V0KGkpKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBiYS5kYXRhLmxlbmd0aDsgaSsrKXtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0KGJhLmdldChpKSk7XG4gICAgICB3cml0ZXIud3JpdGUoMzIsIGIpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMDogLy8gRmxvYXQzMkFycmF5IChjb21wbGV4MzIpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBqID0gYmEuZ2V0KGkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoalsxXSkpO1xuICAgICAgd3JpdGVyLndyaXRlKDMyLCBjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXQoalsyXSkpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSAxMTogLy8gRmxvYXQ2NEFycmF5IChjb21wbGV4NjQpXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGJhLmRhdGEubGVuZ3RoIC8gMjsgaSsrKXtcbiAgICAgIHZhciBjb21wbGV4ID0gYmEuZ2V0KGkpO1xuICAgICAgdmFyIGIgPSBjYW1sX2ludDY0X3RvX2J5dGVzKGNhbWxfaW50NjRfYml0c19vZl9mbG9hdChjb21wbGV4WzFdKSk7XG4gICAgICBmb3IgKHZhciBqID0gMDsgaiA8IDg7IGorKykgd3JpdGVyLndyaXRlICg4LCBiW2pdKTtcbiAgICAgIHZhciBiID0gY2FtbF9pbnQ2NF90b19ieXRlcyhjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXQoY29tcGxleFsyXSkpO1xuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCA4OyBqKyspIHdyaXRlci53cml0ZSAoOCwgYltqXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICB9XG4gIHN6WzBdID0gKDQgKyBiYS5kaW1zLmxlbmd0aCkgKiA0O1xuICBzelsxXSA9ICg0ICsgYmEuZGltcy5sZW5ndGgpICogODtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9kZXNlcmlhbGl6ZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlLCBjYW1sX2ZhaWx3aXRoXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X29mX2J5dGVzLCBjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcbi8vUmVxdWlyZXM6IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c1xuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfYnVmZmVyXG5mdW5jdGlvbiBjYW1sX2JhX2Rlc2VyaWFsaXplKHJlYWRlciwgc3osIG5hbWUpe1xuICB2YXIgbnVtX2RpbXMgPSByZWFkZXIucmVhZDMycygpO1xuICBpZiAobnVtX2RpbXMgPCAwIHx8IG51bV9kaW1zID4gMTYpXG4gICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiB3cm9uZyBudW1iZXIgb2YgYmlnYXJyYXkgZGltZW5zaW9uc1wiKTtcbiAgdmFyIHRhZyA9IHJlYWRlci5yZWFkMzJzKCk7XG4gIHZhciBraW5kID0gdGFnICYgMHhmZlxuICB2YXIgbGF5b3V0ID0gKHRhZyA+PiA4KSAmIDE7XG4gIHZhciBkaW1zID0gW11cbiAgaWYobmFtZSA9PSBcIl9iaWdhcnIwMlwiKVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykge1xuICAgICAgdmFyIHNpemVfZGltID0gcmVhZGVyLnJlYWQxNnUoKTtcbiAgICAgIGlmKHNpemVfZGltID09IDB4ZmZmZil7XG4gICAgICAgIHZhciBzaXplX2RpbV9oaSA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgIHZhciBzaXplX2RpbV9sbyA9IHJlYWRlci5yZWFkMzJ1KCk7XG4gICAgICAgIGlmKHNpemVfZGltX2hpICE9IDApXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcImlucHV0X3ZhbHVlOiBiaWdhcnJheSBkaW1lbnNpb24gb3ZlcmZsb3cgaW4gMzJiaXRcIik7XG4gICAgICAgIHNpemVfZGltID0gc2l6ZV9kaW1fbG87XG4gICAgICB9XG4gICAgICBkaW1zLnB1c2goc2l6ZV9kaW0pO1xuICAgIH1cbiAgZWxzZVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2RpbXM7IGkrKykgZGltcy5wdXNoKHJlYWRlci5yZWFkMzJ1KCkpO1xuICB2YXIgc2l6ZSA9IGNhbWxfYmFfZ2V0X3NpemUoZGltcyk7XG4gIHZhciBkYXRhID0gY2FtbF9iYV9jcmVhdGVfYnVmZmVyKGtpbmQsIHNpemUpO1xuICB2YXIgYmEgPSBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgbGF5b3V0LCBkaW1zLCBkYXRhKTtcbiAgc3dpdGNoKGtpbmQpe1xuICBjYXNlIDI6ICAvL0ludDhBcnJheVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkOHMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDh1KCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQxNnMoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHNpemU7IGkrKyl7XG4gICAgICBkYXRhW2ldID0gcmVhZGVyLnJlYWQxNnUoKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgNjogIC8vIEludDMyQXJyYXkgKGludDMyKVxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZGF0YVtpXSA9IHJlYWRlci5yZWFkMzJzKCk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDg6ICAvLyBJbnQzMkFycmF5IChpbnQpXG4gIGNhc2UgOTogIC8vIEludDMyQXJyYXkgKG5hdGl2ZWludClcbiAgICB2YXIgc2l4dHkgPSByZWFkZXIucmVhZDh1KCk7XG4gICAgaWYoc2l4dHkpIGNhbWxfZmFpbHdpdGgoXCJpbnB1dF92YWx1ZTogY2Fubm90IHJlYWQgYmlnYXJyYXkgd2l0aCA2NC1iaXQgT0NhbWwgaW50c1wiKTtcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGRhdGFbaV0gPSByZWFkZXIucmVhZDMycygpO1xuICAgIH1cbiAgICBicmVhaztcbiAgY2FzZSA3OiAvLyAoaW50NjQpXG4gICAgdmFyIHQgPSBuZXcgQXJyYXkoOCk7O1xuICAgIGZvcih2YXIgaSA9IDA7IGkgPCBzaXplOyBpKyspe1xuICAgICAgZm9yICh2YXIgaiA9IDA7aiA8IDg7aisrKSB0W2pdID0gcmVhZGVyLnJlYWQ4dSgpO1xuICAgICAgdmFyIGludDY0ID0gY2FtbF9pbnQ2NF9vZl9ieXRlcyh0KTtcbiAgICAgIGJhLnNldChpLGludDY0KTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTogIC8vIEZsb2F0NjRBcnJheVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBmID0gY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzKGNhbWxfaW50NjRfb2ZfYnl0ZXModCkpO1xuICAgICAgYmEuc2V0KGksZik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDA6ICAvLyBGbG9hdDMyQXJyYXlcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIHZhciBmID0gY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzKHJlYWRlci5yZWFkMzJzKCkpO1xuICAgICAgYmEuc2V0KGksZik7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIHZhciByZSA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIHZhciBpbSA9IGNhbWxfaW50MzJfZmxvYXRfb2ZfYml0cyhyZWFkZXIucmVhZDMycygpKTtcbiAgICAgIGJhLnNldChpLFsyNTQscmUsaW1dKTtcbiAgICB9XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIHZhciB0ID0gbmV3IEFycmF5KDgpOztcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKXtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciByZSA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGZvciAodmFyIGogPSAwO2ogPCA4O2orKykgdFtqXSA9IHJlYWRlci5yZWFkOHUoKTtcbiAgICAgIHZhciBpbSA9IGNhbWxfaW50NjRfZmxvYXRfb2ZfYml0cyhjYW1sX2ludDY0X29mX2J5dGVzKHQpKTtcbiAgICAgIGJhLnNldChpLFsyNTQscmUsaW1dKTtcbiAgICB9XG4gICAgYnJlYWtcbiAgfVxuICBzelswXSA9ICg0ICsgbnVtX2RpbXMpICogNDtcbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGEpO1xufVxuXG4vL0RlcHJlY2F0ZWRcbi8vUHJvdmlkZXM6IGNhbWxfYmFfY3JlYXRlX2Zyb21cbi8vUmVxdWlyZXM6IGNhbWxfYmFfY3JlYXRlX3Vuc2FmZSwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50LCBjYW1sX2JhX2dldF9zaXplX3Blcl9lbGVtZW50XG5mdW5jdGlvbiBjYW1sX2JhX2NyZWF0ZV9mcm9tKGRhdGExLCBkYXRhMiwganN0eXAsIGtpbmQsIGxheW91dCwgZGltcyl7XG4gIGlmKGRhdGEyIHx8IGNhbWxfYmFfZ2V0X3NpemVfcGVyX2VsZW1lbnQoa2luZCkgPT0gMil7XG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iYV9jcmVhdGVfZnJvbTogdXNlIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcIik7XG4gIH1cbiAgcmV0dXJuIGNhbWxfYmFfY3JlYXRlX3Vuc2FmZShraW5kLCBsYXlvdXQsIGRpbXMsIGRhdGExKTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9oYXNoIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX2JhX2dldF9zaXplLCBjYW1sX2hhc2hfbWl4X2ludCwgY2FtbF9oYXNoX21peF9mbG9hdFxuZnVuY3Rpb24gY2FtbF9iYV9oYXNoKGJhKXtcbiAgdmFyIG51bV9lbHRzID0gY2FtbF9iYV9nZXRfc2l6ZShiYS5kaW1zKTtcbiAgdmFyIGggPSAwO1xuICBzd2l0Y2goYmEua2luZCl7XG4gIGNhc2UgMjogIC8vSW50OEFycmF5XG4gIGNhc2UgMzogIC8vVWludDhBcnJheVxuICBjYXNlIDEyOiAvL1VpbnQ4QXJyYXlcbiAgICBpZihudW1fZWx0cyA+IDI1NikgbnVtX2VsdHMgPSAyNTY7XG4gICAgdmFyIHcgPSAwLCBpID0wO1xuICAgIGZvcihpID0gMDsgaSArIDQgPD0gYmEuZGF0YS5sZW5ndGg7IGkrPTQpe1xuICAgICAgdyA9IGJhLmRhdGFbaSswXSB8IChiYS5kYXRhW2krMV0gPDwgOCkgfCAoYmEuZGF0YVtpKzJdIDw8IDE2KSB8IChiYS5kYXRhW2krM10gPDwgMjQpO1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsdyk7XG4gICAgfVxuICAgIHcgPSAwO1xuICAgIHN3aXRjaCAobnVtX2VsdHMgJiAzKSB7XG4gICAgY2FzZSAzOiB3ICA9IGJhLmRhdGFbaSsyXSA8PCAxNjsgICAgLyogZmFsbHRocm91Z2ggKi9cbiAgICBjYXNlIDI6IHcgfD0gYmEuZGF0YVtpKzFdIDw8IDg7ICAgICAvKiBmYWxsdGhyb3VnaCAqL1xuICAgIGNhc2UgMTogdyB8PSBiYS5kYXRhW2krMF07XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDQ6ICAvLyBJbnQxNkFycmF5XG4gIGNhc2UgNTogIC8vIFVpbnQxNkFycmF5XG4gICAgaWYobnVtX2VsdHMgPiAxMjgpIG51bV9lbHRzID0gMTI4O1xuICAgIHZhciB3ID0gMCwgaSA9MDtcbiAgICBmb3IoaSA9IDA7IGkgKyAyIDw9IGJhLmRhdGEubGVuZ3RoOyBpKz0yKXtcbiAgICAgIHcgPSBiYS5kYXRhW2krMF0gfCAoYmEuZGF0YVtpKzFdIDw8IDE2KTtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLHcpO1xuICAgIH1cbiAgICBpZiAoKG51bV9lbHRzICYgMSkgIT0gMClcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgY2FzZSA2OiAgLy8gSW50MzJBcnJheSAoaW50MzIpXG4gICAgaWYgKG51bV9lbHRzID4gNjQpIG51bV9lbHRzID0gNjQ7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgODogIC8vIEludDMyQXJyYXkgKGludClcbiAgY2FzZSA5OiAgLy8gSW50MzJBcnJheSAobmF0aXZlaW50KVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIGJhLmRhdGFbaV0pO1xuICAgIGJyZWFrO1xuICBjYXNlIDc6ICAvLyBJbnQzMkFycmF5IChpbnQ2NClcbiAgICBpZiAobnVtX2VsdHMgPiAzMikgbnVtX2VsdHMgPSAzMjtcbiAgICBudW1fZWx0cyAqPSAyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSB7XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgYmEuZGF0YVtpXSk7XG4gICAgfVxuICAgIGJyZWFrO1xuICBjYXNlIDEwOiAvLyBGbG9hdDMyQXJyYXkgKGNvbXBsZXgzMilcbiAgICBudW1fZWx0cyAqPTI7IC8qIGZhbGx0aHJvdWdoICovXG4gIGNhc2UgMDogIC8vIEZsb2F0MzJBcnJheVxuICAgIGlmIChudW1fZWx0cyA+IDY0KSBudW1fZWx0cyA9IDY0O1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtX2VsdHM7IGkrKykgaCA9IGNhbWxfaGFzaF9taXhfZmxvYXQoaCwgYmEuZGF0YVtpXSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgMTE6IC8vIEZsb2F0NjRBcnJheSAoY29tcGxleDY0KVxuICAgIG51bV9lbHRzICo9MjsgLyogZmFsbHRocm91Z2ggKi9cbiAgY2FzZSAxOiAgLy8gRmxvYXQ2NEFycmF5XG4gICAgaWYgKG51bV9lbHRzID4gMzIpIG51bV9lbHRzID0gMzI7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1fZWx0czsgaSsrKSBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLCBiYS5kYXRhW2ldKTtcbiAgICBicmVhaztcbiAgfVxuICByZXR1cm4gaDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV90b190eXBlZF9hcnJheSBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2JhX3RvX3R5cGVkX2FycmF5KGJhKXtcbiAgcmV0dXJuIGJhLmRhdGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSh0YSl7XG4gIHZhciBraW5kO1xuICBpZiAgICAgICh0YSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSkga2luZCA9IDA7XG4gIGVsc2UgaWYgKHRhIGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KSBraW5kID0gMTtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBJbnQ4QXJyYXkpIGtpbmQgPSAyO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpIGtpbmQgPSAzO1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIEludDE2QXJyYXkpIGtpbmQgPSA0O1xuICBlbHNlIGlmICh0YSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KSBraW5kID0gNTtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBJbnQzMkFycmF5KSBraW5kID0gNjtcbiAgZWxzZSBpZiAodGEgaW5zdGFuY2VvZiBVaW50MzJBcnJheSkga2luZCA9IDY7XG4gIGVsc2UgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY2FtbF9iYV9raW5kX29mX3R5cGVkX2FycmF5OiB1bnN1cHBvcnRlZCBraW5kXCIpO1xuICByZXR1cm4ga2luZDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBjYW1sX2JhX2Zyb21fdHlwZWRfYXJyYXkodGEpe1xuICB2YXIga2luZCA9IGNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheSh0YSk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoa2luZCwgMCwgW3RhLmxlbmd0aF0sIHRhKTtcbn1cbiIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0aXZlIENhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgKi9cbi8qICBlbiBBdXRvbWF0aXF1ZS4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgICAgKi9cbi8qICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgd2l0aCAgICAgKi9cbi8qICB0aGUgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSAuLi9MSUNFTlNFLiAgICAgKi9cbi8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyogJElkOiBwYXJzaW5nLmMgODk4MyAyMDA4LTA4LTA2IDA5OjM4OjI1WiB4bGVyb3kgJCAqL1xuXG4vKiBUaGUgUERBIGF1dG9tYXRvbiBmb3IgcGFyc2VycyBnZW5lcmF0ZWQgYnkgY2FtbHlhY2MgKi9cblxuLyogVGhlIHB1c2hkb3duIGF1dG9tYXRhICovXG5cbi8vUHJvdmlkZXM6IGNhbWxfcGFyc2VyX3RyYWNlXG52YXIgY2FtbF9wYXJzZXJfdHJhY2UgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2VuZ2luZVxuLy9SZXF1aXJlczogY2FtbF9sZXhfYXJyYXksIGNhbWxfcGFyc2VyX3RyYWNlLGNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX21sX291dHB1dCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ19vZl9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nLCBNbEJ5dGVzXG5mdW5jdGlvbiBjYW1sX3BhcnNlX2VuZ2luZSh0YWJsZXMsIGVudiwgY21kLCBhcmcpXG57XG4gIHZhciBFUlJDT0RFID0gMjU2O1xuXG4gIC8vdmFyIFNUQVJUID0gMDtcbiAgLy92YXIgVE9LRU5fUkVBRCA9IDE7XG4gIC8vdmFyIFNUQUNLU19HUk9XTl8xID0gMjtcbiAgLy92YXIgU1RBQ0tTX0dST1dOXzIgPSAzO1xuICAvL3ZhciBTRU1BTlRJQ19BQ1RJT05fQ09NUFVURUQgPSA0O1xuICAvL3ZhciBFUlJPUl9ERVRFQ1RFRCA9IDU7XG4gIHZhciBsb29wID0gNjtcbiAgdmFyIHRlc3RzaGlmdCA9IDc7XG4gIHZhciBzaGlmdCA9IDg7XG4gIHZhciBzaGlmdF9yZWNvdmVyID0gOTtcbiAgdmFyIHJlZHVjZSA9IDEwO1xuXG4gIHZhciBSRUFEX1RPS0VOID0gMDtcbiAgdmFyIFJBSVNFX1BBUlNFX0VSUk9SID0gMTtcbiAgdmFyIEdST1dfU1RBQ0tTXzEgPSAyO1xuICB2YXIgR1JPV19TVEFDS1NfMiA9IDM7XG4gIHZhciBDT01QVVRFX1NFTUFOVElDX0FDVElPTiA9IDQ7XG4gIHZhciBDQUxMX0VSUk9SX0ZVTkNUSU9OID0gNTtcblxuICB2YXIgZW52X3Nfc3RhY2sgPSAxO1xuICB2YXIgZW52X3Zfc3RhY2sgPSAyO1xuICB2YXIgZW52X3N5bWJfc3RhcnRfc3RhY2sgPSAzO1xuICB2YXIgZW52X3N5bWJfZW5kX3N0YWNrID0gNDtcbiAgdmFyIGVudl9zdGFja3NpemUgPSA1O1xuICB2YXIgZW52X3N0YWNrYmFzZSA9IDY7XG4gIHZhciBlbnZfY3Vycl9jaGFyID0gNztcbiAgdmFyIGVudl9sdmFsID0gODtcbiAgdmFyIGVudl9zeW1iX3N0YXJ0ID0gOTtcbiAgdmFyIGVudl9zeW1iX2VuZCA9IDEwO1xuICB2YXIgZW52X2FzcCA9IDExO1xuICB2YXIgZW52X3J1bGVfbGVuID0gMTI7XG4gIHZhciBlbnZfcnVsZV9udW1iZXIgPSAxMztcbiAgdmFyIGVudl9zcCA9IDE0O1xuICB2YXIgZW52X3N0YXRlID0gMTU7XG4gIHZhciBlbnZfZXJyZmxhZyA9IDE2O1xuXG4gIC8vIHZhciBfdGJsX2FjdGlvbnMgPSAxO1xuICB2YXIgdGJsX3RyYW5zbF9jb25zdCA9IDI7XG4gIHZhciB0YmxfdHJhbnNsX2Jsb2NrID0gMztcbiAgdmFyIHRibF9saHMgPSA0O1xuICB2YXIgdGJsX2xlbiA9IDU7XG4gIHZhciB0YmxfZGVmcmVkID0gNjtcbiAgdmFyIHRibF9kZ290byA9IDc7XG4gIHZhciB0Ymxfc2luZGV4ID0gODtcbiAgdmFyIHRibF9yaW5kZXggPSA5O1xuICB2YXIgdGJsX2dpbmRleCA9IDEwO1xuICB2YXIgdGJsX3RhYmxlc2l6ZSA9IDExO1xuICB2YXIgdGJsX3RhYmxlID0gMTI7XG4gIHZhciB0YmxfY2hlY2sgPSAxMztcbiAgLy8gdmFyIF90YmxfZXJyb3JfZnVuY3Rpb24gPSAxNDtcbiAgdmFyIHRibF9uYW1lc19jb25zdCA9IDE1O1xuICB2YXIgdGJsX25hbWVzX2Jsb2NrID0gMTY7XG5cblxuICBmdW5jdGlvbiBsb2coeCkge1xuICAgIHZhciBzID0gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyh4ICsgXCJcXG5cIik7XG4gICAgY2FtbF9tbF9vdXRwdXQoMiwgcywgMCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHRva2VuX25hbWUobmFtZXMsIG51bWJlcilcbiAge1xuICAgIHZhciBzdHIgPSBjYW1sX2pzc3RyaW5nX29mX3N0cmluZyhuYW1lcyk7XG4gICAgaWYgKHN0clswXSA9PSAnXFx4MDAnKVxuICAgICAgcmV0dXJuIFwiPHVua25vd24gdG9rZW4+XCI7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnXFx4MDAnKVtudW1iZXJdO1xuICB9XG5cbiAgZnVuY3Rpb24gcHJpbnRfdG9rZW4oc3RhdGUsIHRvaylcbiAge1xuICAgIHZhciB0b2tlbiwga2luZDtcbiAgICBpZiAodG9rIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHRva2VuID0gdG9rZW5fbmFtZSh0YWJsZXNbdGJsX25hbWVzX2Jsb2NrXSwgdG9rWzBdKTtcbiAgICAgIGlmICh0eXBlb2YgdG9rWzFdID09IFwibnVtYmVyXCIpXG4gICAgICAgIGtpbmQgPSBcIlwiICsgdG9rWzFdO1xuICAgICAgZWxzZSBpZiAodHlwZW9mIHRva1sxXSA9PSBcInN0cmluZ1wiKVxuICAgICAgICBraW5kID0gdG9rWzFdXG4gICAgICBlbHNlIGlmICh0b2tbMV0gaW5zdGFuY2VvZiBNbEJ5dGVzKVxuICAgICAgICBraW5kID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyh0b2tbMV0pXG4gICAgICBlbHNlXG4gICAgICAgIGtpbmQgPSBcIl9cIlxuICAgICAgbG9nKFwiU3RhdGUgXCIgKyBzdGF0ZSArIFwiOiByZWFkIHRva2VuIFwiICsgdG9rZW4gKyBcIihcIiArIGtpbmQgKyBcIilcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRva2VuID0gdG9rZW5fbmFtZSh0YWJsZXNbdGJsX25hbWVzX2NvbnN0XSwgdG9rKTtcbiAgICAgIGxvZyhcIlN0YXRlIFwiICsgc3RhdGUgKyBcIjogcmVhZCB0b2tlbiBcIiArIHRva2VuKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIXRhYmxlcy5kZ290bykge1xuICAgIHRhYmxlcy5kZWZyZWQgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9kZWZyZWRdKTtcbiAgICB0YWJsZXMuc2luZGV4ID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0Ymxfc2luZGV4XSk7XG4gICAgdGFibGVzLmNoZWNrICA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2NoZWNrXSk7XG4gICAgdGFibGVzLnJpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX3JpbmRleF0pO1xuICAgIHRhYmxlcy50YWJsZSAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF90YWJsZV0pO1xuICAgIHRhYmxlcy5sZW4gICAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9sZW5dKTtcbiAgICB0YWJsZXMubGhzICAgID0gY2FtbF9sZXhfYXJyYXkgKHRhYmxlc1t0YmxfbGhzXSk7XG4gICAgdGFibGVzLmdpbmRleCA9IGNhbWxfbGV4X2FycmF5ICh0YWJsZXNbdGJsX2dpbmRleF0pO1xuICAgIHRhYmxlcy5kZ290byAgPSBjYW1sX2xleF9hcnJheSAodGFibGVzW3RibF9kZ290b10pO1xuICB9XG5cbiAgdmFyIHJlcyA9IDAsIG4sIG4xLCBuMiwgc3RhdGUxO1xuXG4gIC8vIFJFU1RPUkVcbiAgdmFyIHNwID0gZW52W2Vudl9zcF07XG4gIHZhciBzdGF0ZSA9IGVudltlbnZfc3RhdGVdO1xuICB2YXIgZXJyZmxhZyA9IGVudltlbnZfZXJyZmxhZ107XG5cbiAgZXhpdDpmb3IgKDs7KSB7XG4gICAgbmV4dDpzd2l0Y2goY21kKSB7XG4gICAgY2FzZSAwOi8vU1RBUlQ6XG4gICAgICBzdGF0ZSA9IDA7XG4gICAgICBlcnJmbGFnID0gMDtcbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuXG4gICAgY2FzZSA2Oi8vbG9vcDpcbiAgICAgIG4gPSB0YWJsZXMuZGVmcmVkW3N0YXRlXTtcbiAgICAgIGlmIChuICE9IDApIHsgY21kID0gcmVkdWNlOyBicmVhazsgfVxuICAgICAgaWYgKGVudltlbnZfY3Vycl9jaGFyXSA+PSAwKSB7IGNtZCA9IHRlc3RzaGlmdDsgYnJlYWs7IH1cbiAgICAgIHJlcyA9IFJFQURfVE9LRU47XG4gICAgICBicmVhayBleGl0O1xuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIGxleGVyIGFuZCB1cGRhdGVzICovXG4gICAgICAvKiBzeW1iX3N0YXJ0IGFuZCBzeW1iX2VuZCAqL1xuICAgIGNhc2UgMTovL1RPS0VOX1JFQUQ6XG4gICAgICBpZiAoYXJnIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gdGFibGVzW3RibF90cmFuc2xfYmxvY2tdW2FyZ1swXSArIDFdO1xuICAgICAgICBlbnZbZW52X2x2YWxdID0gYXJnWzFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gdGFibGVzW3RibF90cmFuc2xfY29uc3RdW2FyZyArIDFdO1xuICAgICAgICBlbnZbZW52X2x2YWxdID0gMDtcbiAgICAgIH1cbiAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSkgcHJpbnRfdG9rZW4gKHN0YXRlLCBhcmcpO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG5cbiAgICBjYXNlIDc6Ly90ZXN0c2hpZnQ6XG4gICAgICBuMSA9IHRhYmxlcy5zaW5kZXhbc3RhdGVdO1xuICAgICAgbjIgPSBuMSArIGVudltlbnZfY3Vycl9jaGFyXTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBlbnZbZW52X2N1cnJfY2hhcl0pIHtcbiAgICAgICAgY21kID0gc2hpZnQ7IGJyZWFrO1xuICAgICAgfVxuICAgICAgbjEgPSB0YWJsZXMucmluZGV4W3N0YXRlXTtcbiAgICAgIG4yID0gbjEgKyBlbnZbZW52X2N1cnJfY2hhcl07XG4gICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgIHRhYmxlcy5jaGVja1tuMl0gPT0gZW52W2Vudl9jdXJyX2NoYXJdKSB7XG4gICAgICAgIG4gPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgICBjbWQgPSByZWR1Y2U7IGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKGVycmZsYWcgPD0gMCkge1xuICAgICAgICByZXMgPSBDQUxMX0VSUk9SX0ZVTkNUSU9OO1xuICAgICAgICBicmVhayBleGl0O1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgICAvKiBUaGUgTUwgY29kZSBjYWxscyB0aGUgZXJyb3IgZnVuY3Rpb24gKi9cbiAgICBjYXNlIDU6Ly9FUlJPUl9ERVRFQ1RFRDpcbiAgICAgIGlmIChlcnJmbGFnIDwgMykge1xuICAgICAgICBlcnJmbGFnID0gMztcbiAgICAgICAgZm9yICg7Oykge1xuICAgICAgICAgIHN0YXRlMSA9IGVudltlbnZfc19zdGFja11bc3AgKyAxXTtcbiAgICAgICAgICBuMSA9IHRhYmxlcy5zaW5kZXhbc3RhdGUxXTtcbiAgICAgICAgICBuMiA9IG4xICsgRVJSQ09ERTtcbiAgICAgICAgICBpZiAobjEgIT0gMCAmJiBuMiA+PSAwICYmIG4yIDw9IHRhYmxlc1t0YmxfdGFibGVzaXplXSAmJlxuICAgICAgICAgICAgICB0YWJsZXMuY2hlY2tbbjJdID09IEVSUkNPREUpIHtcbiAgICAgICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICAgICAgbG9nKFwiUmVjb3ZlcmluZyBpbiBzdGF0ZSBcIiArIHN0YXRlMSk7XG4gICAgICAgICAgICBjbWQgPSBzaGlmdF9yZWNvdmVyOyBicmVhayBuZXh0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgICAgICAgIGxvZyhcIkRpc2NhcmRpbmcgc3RhdGUgXCIgKyBzdGF0ZTEpO1xuICAgICAgICAgICAgaWYgKHNwIDw9IGVudltlbnZfc3RhY2tiYXNlXSkge1xuICAgICAgICAgICAgICBpZiAoY2FtbF9wYXJzZXJfdHJhY2UpXG4gICAgICAgICAgICAgICAgbG9nKFwiTm8gbW9yZSBzdGF0ZXMgdG8gZGlzY2FyZFwiKTtcbiAgICAgICAgICAgICAgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyogVGhlIE1MIGNvZGUgcmFpc2VzIFBhcnNlX2Vycm9yICovXG4gICAgICAgICAgICBzcC0tO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGVudltlbnZfY3Vycl9jaGFyXSA9PSAwKVxuICAgICAgICAgIHJldHVybiBSQUlTRV9QQVJTRV9FUlJPUjsgLyogVGhlIE1MIGNvZGUgcmFpc2VzIFBhcnNlX2Vycm9yICovXG4gICAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgICBsb2coXCJEaXNjYXJkaW5nIGxhc3QgdG9rZW4gcmVhZFwiKTtcbiAgICAgICAgZW52W2Vudl9jdXJyX2NoYXJdID0gLTE7XG4gICAgICAgIGNtZCA9IGxvb3A7IGJyZWFrO1xuICAgICAgfVxuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgY2FzZSA4Oi8vc2hpZnQ6XG4gICAgICBlbnZbZW52X2N1cnJfY2hhcl0gPSAtMTtcbiAgICAgIGlmIChlcnJmbGFnID4gMCkgZXJyZmxhZy0tO1xuICAgICAgLy8gRmFsbCB0aHJvdWdoXG4gICAgY2FzZSA5Oi8vc2hpZnRfcmVjb3ZlcjpcbiAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgbG9nKFwiU3RhdGUgXCIgKyBzdGF0ZSArIFwiOiBzaGlmdCB0byBzdGF0ZSBcIiArIHRhYmxlcy50YWJsZVtuMl0pO1xuICAgICAgc3RhdGUgPSB0YWJsZXMudGFibGVbbjJdO1xuICAgICAgc3ArKztcbiAgICAgIGlmIChzcCA+PSBlbnZbZW52X3N0YWNrc2l6ZV0pIHtcbiAgICAgICAgcmVzID0gR1JPV19TVEFDS1NfMTtcbiAgICAgICAgYnJlYWsgZXhpdDtcbiAgICAgIH1cbiAgICAgIC8vIEZhbGwgdGhyb3VnaFxuICAgICAgLyogVGhlIE1MIGNvZGUgcmVzaXplcyB0aGUgc3RhY2tzICovXG4gICAgY2FzZSAyOi8vU1RBQ0tTX0dST1dOXzE6XG4gICAgICBlbnZbZW52X3Nfc3RhY2tdW3NwICsgMV0gPSBzdGF0ZTtcbiAgICAgIGVudltlbnZfdl9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfbHZhbF07XG4gICAgICBlbnZbZW52X3N5bWJfc3RhcnRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfc3RhcnRdO1xuICAgICAgZW52W2Vudl9zeW1iX2VuZF9zdGFja11bc3AgKyAxXSA9IGVudltlbnZfc3ltYl9lbmRdO1xuICAgICAgY21kID0gbG9vcDtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAxMDovL3JlZHVjZTpcbiAgICAgIGlmIChjYW1sX3BhcnNlcl90cmFjZSlcbiAgICAgICAgbG9nKFwiU3RhdGUgXCIgKyBzdGF0ZSArIFwiOiByZWR1Y2UgYnkgcnVsZSBcIiArIG4pO1xuICAgICAgdmFyIG0gPSB0YWJsZXMubGVuW25dO1xuICAgICAgZW52W2Vudl9hc3BdID0gc3A7XG4gICAgICBlbnZbZW52X3J1bGVfbnVtYmVyXSA9IG47XG4gICAgICBlbnZbZW52X3J1bGVfbGVuXSA9IG07XG4gICAgICBzcCA9IHNwIC0gbSArIDE7XG4gICAgICBtID0gdGFibGVzLmxoc1tuXTtcbiAgICAgIHN0YXRlMSA9IGVudltlbnZfc19zdGFja11bc3BdO1xuICAgICAgbjEgPSB0YWJsZXMuZ2luZGV4W21dO1xuICAgICAgbjIgPSBuMSArIHN0YXRlMTtcbiAgICAgIGlmIChuMSAhPSAwICYmIG4yID49IDAgJiYgbjIgPD0gdGFibGVzW3RibF90YWJsZXNpemVdICYmXG4gICAgICAgICAgdGFibGVzLmNoZWNrW24yXSA9PSBzdGF0ZTEpXG4gICAgICAgIHN0YXRlID0gdGFibGVzLnRhYmxlW24yXTtcbiAgICAgIGVsc2VcbiAgICAgICAgc3RhdGUgPSB0YWJsZXMuZGdvdG9bbV07XG4gICAgICBpZiAoc3AgPj0gZW52W2Vudl9zdGFja3NpemVdKSB7XG4gICAgICAgIHJlcyA9IEdST1dfU1RBQ0tTXzI7XG4gICAgICAgIGJyZWFrIGV4aXQ7XG4gICAgICB9XG4gICAgICAvLyBGYWxsIHRocm91Z2hcbiAgICAgIC8qIFRoZSBNTCBjb2RlIHJlc2l6ZXMgdGhlIHN0YWNrcyAqL1xuICAgIGNhc2UgMzovL1NUQUNLU19HUk9XTl8yOlxuICAgICAgcmVzID0gQ09NUFVURV9TRU1BTlRJQ19BQ1RJT047XG4gICAgICBicmVhayBleGl0O1xuICAgICAgLyogVGhlIE1MIGNvZGUgY2FsbHMgdGhlIHNlbWFudGljIGFjdGlvbiAqL1xuICAgIGNhc2UgNDovL1NFTUFOVElDX0FDVElPTl9DT01QVVRFRDpcbiAgICAgIGVudltlbnZfc19zdGFja11bc3AgKyAxXSA9IHN0YXRlO1xuICAgICAgZW52W2Vudl92X3N0YWNrXVtzcCArIDFdID0gYXJnO1xuICAgICAgdmFyIGFzcCA9IGVudltlbnZfYXNwXTtcbiAgICAgIGVudltlbnZfc3ltYl9lbmRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVthc3AgKyAxXTtcbiAgICAgIGlmIChzcCA+IGFzcCkge1xuICAgICAgICAvKiBUaGlzIGlzIGFuIGVwc2lsb24gcHJvZHVjdGlvbi4gVGFrZSBzeW1iX3N0YXJ0IGVxdWFsIHRvIHN5bWJfZW5kLiAqL1xuICAgICAgICBlbnZbZW52X3N5bWJfc3RhcnRfc3RhY2tdW3NwICsgMV0gPSBlbnZbZW52X3N5bWJfZW5kX3N0YWNrXVthc3AgKyAxXTtcbiAgICAgIH1cbiAgICAgIGNtZCA9IGxvb3A7IGJyZWFrO1xuICAgICAgLyogU2hvdWxkIG5vdCBoYXBwZW4gKi9cbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIFJBSVNFX1BBUlNFX0VSUk9SO1xuICAgIH1cbiAgfVxuICAvLyBTQVZFXG4gIGVudltlbnZfc3BdID0gc3A7XG4gIGVudltlbnZfc3RhdGVdID0gc3RhdGU7XG4gIGVudltlbnZfZXJyZmxhZ10gPSBlcnJmbGFnO1xuICByZXR1cm4gcmVzO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3NldF9wYXJzZXJfdHJhY2UgY29uc3Rcbi8vUmVxdWlyZXM6IGNhbWxfcGFyc2VyX3RyYWNlXG5mdW5jdGlvbiBjYW1sX3NldF9wYXJzZXJfdHJhY2UoYm9vbCkge1xuICB2YXIgb2xkZmxhZyA9IGNhbWxfcGFyc2VyX3RyYWNlO1xuICBjYW1sX3BhcnNlcl90cmFjZSA9IGJvb2w7XG4gIHJldHVybiBvbGRmbGFnO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9mb3JtYXRfaW50IGNvbnN0IChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX2Zvcm1hdCwgY2FtbF9maW5pc2hfZm9ybWF0dGluZywgY2FtbF9zdHJfcmVwZWF0XG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9qc2J5dGVzLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2Zvcm1hdF9pbnQoZm10LCBpKSB7XG4gIGlmIChjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGZtdCkgPT0gXCIlZFwiKSByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhcIlwiK2kpO1xuICB2YXIgZiA9IGNhbWxfcGFyc2VfZm9ybWF0KGZtdCk7XG4gIGlmIChpIDwgMCkgeyBpZiAoZi5zaWduZWRjb252KSB7IGYuc2lnbiA9IC0xOyBpID0gLWk7IH0gZWxzZSBpID4+Pj0gMDsgfVxuICB2YXIgcyA9IGkudG9TdHJpbmcoZi5iYXNlKTtcbiAgaWYgKGYucHJlYyA+PSAwKSB7XG4gICAgZi5maWxsZXIgPSAnICc7XG4gICAgdmFyIG4gPSBmLnByZWMgLSBzLmxlbmd0aDtcbiAgICBpZiAobiA+IDApIHMgPSBjYW1sX3N0cl9yZXBlYXQgKG4sICcwJykgKyBzO1xuICB9XG4gIHJldHVybiBjYW1sX2ZpbmlzaF9mb3JtYXR0aW5nKGYsIHMpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2Vcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9wYXJzZV9zaWduX2FuZF9iYXNlIChzKSB7XG4gIHZhciBpID0gMCwgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpLCBiYXNlID0gMTAsIHNpZ24gPSAxO1xuICBpZiAobGVuID4gMCkge1xuICAgIHN3aXRjaCAoY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLGkpKSB7XG4gICAgY2FzZSA0NTogaSsrOyBzaWduID0gLTE7IGJyZWFrO1xuICAgIGNhc2UgNDM6IGkrKzsgc2lnbiA9IDE7IGJyZWFrO1xuICAgIH1cbiAgfVxuICBpZiAoaSArIDEgPCBsZW4gJiYgY2FtbF9zdHJpbmdfdW5zYWZlX2dldChzLCBpKSA9PSA0OClcbiAgICBzd2l0Y2ggKGNhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSArIDEpKSB7XG4gICAgY2FzZSAxMjA6IGNhc2UgODg6IGJhc2UgPSAxNjsgaSArPSAyOyBicmVhaztcbiAgICBjYXNlIDExMTogY2FzZSA3OTogYmFzZSA9ICA4OyBpICs9IDI7IGJyZWFrO1xuICAgIGNhc2UgIDk4OiBjYXNlIDY2OiBiYXNlID0gIDI7IGkgKz0gMjsgYnJlYWs7XG4gICAgY2FzZSAxMTc6IGNhc2UgODU6IGkgKz0gMjsgYnJlYWs7XG4gICAgfVxuICByZXR1cm4gW2ksIHNpZ24sIGJhc2VdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX3BhcnNlX2RpZ2l0XG5mdW5jdGlvbiBjYW1sX3BhcnNlX2RpZ2l0KGMpIHtcbiAgaWYgKGMgPj0gNDggJiYgYyA8PSA1NykgIHJldHVybiBjIC0gNDg7XG4gIGlmIChjID49IDY1ICYmIGMgPD0gOTApICByZXR1cm4gYyAtIDU1O1xuICBpZiAoYyA+PSA5NyAmJiBjIDw9IDEyMikgcmV0dXJuIGMgLSA4NztcbiAgcmV0dXJuIC0xO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ludF9vZl9zdHJpbmcgKGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX3N0cmluZ191bnNhZmVfZ2V0XG4vL1JlcXVpcmVzOiBjYW1sX3BhcnNlX3NpZ25fYW5kX2Jhc2UsIGNhbWxfcGFyc2VfZGlnaXQsIGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfaW50X29mX3N0cmluZyAocykge1xuICB2YXIgciA9IGNhbWxfcGFyc2Vfc2lnbl9hbmRfYmFzZSAocyk7XG4gIHZhciBpID0gclswXSwgc2lnbiA9IHJbMV0sIGJhc2UgPSByWzJdO1xuICB2YXIgbGVuID0gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpO1xuICB2YXIgdGhyZXNob2xkID0gLTEgPj4+IDA7XG4gIHZhciBjID0gKGkgPCBsZW4pP2NhbWxfc3RyaW5nX3Vuc2FmZV9nZXQocywgaSk6MDtcbiAgdmFyIGQgPSBjYW1sX3BhcnNlX2RpZ2l0KGMpO1xuICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgdmFyIHJlcyA9IGQ7XG4gIGZvciAoaSsrO2k8bGVuO2krKykge1xuICAgIGMgPSBjYW1sX3N0cmluZ191bnNhZmVfZ2V0KHMsIGkpO1xuICAgIGlmIChjID09IDk1KSBjb250aW51ZTtcbiAgICBkID0gY2FtbF9wYXJzZV9kaWdpdChjKTtcbiAgICBpZiAoZCA8IDAgfHwgZCA+PSBiYXNlKSBicmVhaztcbiAgICByZXMgPSBiYXNlICogcmVzICsgZDtcbiAgICBpZiAocmVzID4gdGhyZXNob2xkKSBjYW1sX2ZhaWx3aXRoKFwiaW50X29mX3N0cmluZ1wiKTtcbiAgfVxuICBpZiAoaSAhPSBsZW4pIGNhbWxfZmFpbHdpdGgoXCJpbnRfb2Zfc3RyaW5nXCIpO1xuICAvLyBGb3IgYmFzZSBkaWZmZXJlbnQgZnJvbSAxMCwgd2UgZXhwZWN0IGFuIHVuc2lnbmVkIHJlcHJlc2VudGF0aW9uLFxuICAvLyBoZW5jZSBhbnkgdmFsdWUgb2YgJ3JlcycgKGxlc3MgdGhhbiAndGhyZXNob2xkJykgaXMgYWNjZXB0YWJsZS5cbiAgLy8gQnV0IHdlIGhhdmUgdG8gY29udmVydCB0aGUgcmVzdWx0IGJhY2sgdG8gYSBzaWduZWQgaW50ZWdlci5cbiAgcmVzID0gc2lnbiAqIHJlcztcbiAgaWYgKChiYXNlID09IDEwKSAmJiAoKHJlcyB8IDApICE9IHJlcykpXG4gICAgLyogU2lnbmVkIHJlcHJlc2VudGF0aW9uIGV4cGVjdGVkLCBhbGxvdyAtMl4obmJpdHMtMSkgdG8gMl4obmJpdHMtMSkgLSAxICovXG4gICAgY2FtbF9mYWlsd2l0aChcImludF9vZl9zdHJpbmdcIik7XG4gIHJldHVybiByZXMgfCAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX211bCBjb25zdFxuZnVuY3Rpb24gY2FtbF9tdWwoYSxiKXtcbiAgcmV0dXJuIE1hdGguaW11bChhLGIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2RpdlxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gY2FtbF9kaXYoeCx5KSB7XG4gIGlmICh5ID09IDApIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHJldHVybiAoeC95KXwwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21vZFxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV96ZXJvX2RpdmlkZVxuZnVuY3Rpb24gY2FtbF9tb2QoeCx5KSB7XG4gIGlmICh5ID09IDApIGNhbWxfcmFpc2VfemVyb19kaXZpZGUgKCk7XG4gIHJldHVybiB4JXk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYnN3YXAxNlxuZnVuY3Rpb24gY2FtbF9ic3dhcDE2KHgpIHtcbiAgcmV0dXJuICgoKCh4ICYgMHgwMEZGKSA8PCA4KSB8XG4gICAgICAgICAgICgoeCAmIDB4RkYwMCkgPj4gOCkpKTtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfaW50MzJfYnN3YXBcbmZ1bmN0aW9uIGNhbWxfaW50MzJfYnN3YXAoeCkge1xuICByZXR1cm4gKCgoeCAmIDB4MDAwMDAwRkYpIDw8IDI0KSB8XG4gICAgICAgICAgKCh4ICYgMHgwMDAwRkYwMCkgPDwgOCkgfFxuICAgICAgICAgICgoeCAmIDB4MDBGRjAwMDApID4+PiA4KSB8XG4gICAgICAgICAgKCh4ICYgMHhGRjAwMDAwMCkgPj4+IDI0KSk7XG59XG4vL1Byb3ZpZGVzOiBjYW1sX2ludDY0X2Jzd2FwXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X3RvX2J5dGVzLCBjYW1sX2ludDY0X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2ludDY0X2Jzd2FwKHgpIHtcbiAgdmFyIHkgPSBjYW1sX2ludDY0X3RvX2J5dGVzKHgpO1xuICByZXR1cm4gY2FtbF9pbnQ2NF9vZl9ieXRlcyhbeVs3XSwgeVs2XSwgeVs1XSwgeVs0XSwgeVszXSwgeVsyXSwgeVsxXSwgeVswXV0pO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy8vLy8vLy8vLy8vLyBIYXNodGJsXG5cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX3VuaXZfcGFyYW0gbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF90b19ieXRlcywgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0LCBjYW1sX2N1c3RvbV9vcHNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfbGVuZ3RoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG4vL1ZlcnNpb246IDwgNC4xMlxuZnVuY3Rpb24gY2FtbF9oYXNoX3VuaXZfcGFyYW0gKGNvdW50LCBsaW1pdCwgb2JqKSB7XG4gIHZhciBoYXNoX2FjY3UgPSAwO1xuICBmdW5jdGlvbiBoYXNoX2F1eCAob2JqKSB7XG4gICAgbGltaXQgLS07XG4gICAgaWYgKGNvdW50IDwgMCB8fCBsaW1pdCA8IDApIHJldHVybjtcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXkgJiYgb2JqWzBdID09PSAob2JqWzBdfDApKSB7XG4gICAgICBzd2l0Y2ggKG9ialswXSkge1xuICAgICAgY2FzZSAyNDg6XG4gICAgICAgIC8vIE9iamVjdFxuICAgICAgICBjb3VudCAtLTtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgb2JqWzJdKSB8IDA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTA6XG4gICAgICAgIC8vIEZvcndhcmRcbiAgICAgICAgbGltaXQrKzsgaGFzaF9hdXgob2JqKTsgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb3VudCAtLTtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgb2JqWzBdKSB8IDA7XG4gICAgICAgIGZvciAodmFyIGkgPSBvYmoubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkgaGFzaF9hdXggKG9ialtpXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX2J5dGVzKG9iaikpIHtcbiAgICAgIGNvdW50IC0tO1xuICAgICAgdmFyIGNvbnRlbnQgPSBjYW1sX21sX2J5dGVzX2NvbnRlbnQob2JqKTtcbiAgICAgIGlmKHR5cGVvZiBjb250ZW50ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGZvciAodmFyIGIgPSBjb250ZW50LCBsID0gYi5sZW5ndGgsIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgICAgfSBlbHNlIHsgLyogQVJSQVkgKi9cbiAgICAgICAgZm9yICh2YXIgYSA9IGNvbnRlbnQsIGwgPSBhLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYVtpXSkgfCAwO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9zdHJpbmcob2JqKSkge1xuICAgICAgdmFyIGpzYnl0ZXMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKG9iaik7XG4gICAgICBmb3IgKHZhciBiID0ganNieXRlcywgbCA9IGpzYnl0ZXMubGVuZ3RoLCBpID0gMDsgaSA8IGw7IGkrKylcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgYi5jaGFyQ29kZUF0KGkpKSB8IDA7XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBmb3IgKHZhciBiID0gb2JqLCBsID0gb2JqLmxlbmd0aCwgaSA9IDA7IGkgPCBsOyBpKyspXG4gICAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiAxOSArIGIuY2hhckNvZGVBdChpKSkgfCAwO1xuICAgIH0gZWxzZSBpZiAob2JqID09PSAob2JqfDApKSB7XG4gICAgICAvLyBJbnRlZ2VyXG4gICAgICBjb3VudCAtLTtcbiAgICAgIGhhc2hfYWNjdSA9IChoYXNoX2FjY3UgKiA2NTU5OSArIG9iaikgfCAwO1xuICAgIH0gZWxzZSBpZiAob2JqID09PSArb2JqKSB7XG4gICAgICAvLyBGbG9hdFxuICAgICAgY291bnQtLTtcbiAgICAgIHZhciBwID0gY2FtbF9pbnQ2NF90b19ieXRlcyAoY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0IChvYmopKTtcbiAgICAgIGZvciAodmFyIGkgPSA3OyBpID49IDA7IGktLSkgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDE5ICsgcFtpXSkgfCAwO1xuICAgIH0gZWxzZSBpZihvYmogJiYgb2JqLmNhbWxfY3VzdG9tKSB7XG4gICAgICBpZihjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbb2JqLmNhbWxfY3VzdG9tXS5oYXNoKSB7XG4gICAgICAgIHZhciBoID0gY2FtbF9jdXN0b21fb3BzW29iai5jYW1sX2N1c3RvbV0uaGFzaChvYmopIHwgMDtcbiAgICAgICAgaGFzaF9hY2N1ID0gKGhhc2hfYWNjdSAqIDY1NTk5ICsgaCkgfCAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBoYXNoX2F1eCAob2JqKTtcbiAgcmV0dXJuIGhhc2hfYWNjdSAmIDB4M0ZGRkZGRkY7XG59XG5cbi8vZnVuY3Rpb24gUk9UTDMyKHgsbikgeyByZXR1cm4gKCh4IDw8IG4pIHwgKHggPj4+ICgzMi1uKSkpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2ludFxuLy9SZXF1aXJlczogY2FtbF9tdWxcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfaW50KGgsZCkge1xuICBkID0gY2FtbF9tdWwoZCwgMHhjYzllMmQ1MXwwKTtcbiAgZCA9ICgoZCA8PCAxNSkgfCAoZCA+Pj4gKDMyLTE1KSkpOyAvLyBST1RMMzIoZCwgMTUpO1xuICBkID0gY2FtbF9tdWwoZCwgMHgxYjg3MzU5Myk7XG4gIGggXj0gZDtcbiAgaCA9ICgoaCA8PCAxMykgfCAoaCA+Pj4gKDMyLTEzKSkpOyAgIC8vUk9UTDMyKGgsIDEzKTtcbiAgcmV0dXJuICgoKGggKyAoaCA8PCAyKSl8MCkgKyAoMHhlNjU0NmI2NHwwKSl8MDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9maW5hbFxuLy9SZXF1aXJlczogY2FtbF9tdWxcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfZmluYWwoaCkge1xuICBoIF49IGggPj4+IDE2O1xuICBoID0gY2FtbF9tdWwgKGgsIDB4ODVlYmNhNmJ8MCk7XG4gIGggXj0gaCA+Pj4gMTM7XG4gIGggPSBjYW1sX211bCAoaCwgMHhjMmIyYWUzNXwwKTtcbiAgaCBePSBoID4+PiAxNjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfZmxvYXRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYml0c19vZl9mbG9hdCwgY2FtbF9oYXNoX21peF9pbnQ2NFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9mbG9hdCAoaCwgdjApIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfaW50NjQoaCwgY2FtbF9pbnQ2NF9iaXRzX29mX2Zsb2F0ICh2MCkpO1xufVxuLy9Qcm92aWRlczogY2FtbF9oYXNoX21peF9pbnQ2NFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfbG8zMiwgY2FtbF9pbnQ2NF9oaTMyXG5mdW5jdGlvbiBjYW1sX2hhc2hfbWl4X2ludDY0IChoLCB2KSB7XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCBjYW1sX2ludDY0X2xvMzIodikpO1xuICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgY2FtbF9pbnQ2NF9oaTMyKHYpKTtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9pbnRcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBzKSB7XG4gIHZhciBsZW4gPSBzLmxlbmd0aCwgaSwgdztcbiAgZm9yIChpID0gMDsgaSArIDQgPD0gbGVuOyBpICs9IDQpIHtcbiAgICB3ID0gcy5jaGFyQ29kZUF0KGkpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSsxKSA8PCA4KVxuICAgICAgfCAocy5jaGFyQ29kZUF0KGkrMikgPDwgMTYpXG4gICAgICB8IChzLmNoYXJDb2RlQXQoaSszKSA8PCAyNCk7XG4gICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHcpO1xuICB9XG4gIHcgPSAwO1xuICBzd2l0Y2ggKGxlbiAmIDMpIHtcbiAgY2FzZSAzOiB3ICA9IHMuY2hhckNvZGVBdChpKzIpIDw8IDE2O1xuICBjYXNlIDI6IHcgfD0gcy5jaGFyQ29kZUF0KGkrMSkgPDwgODtcbiAgY2FzZSAxOlxuICAgIHcgfD0gcy5jaGFyQ29kZUF0KGkpO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgZGVmYXVsdDpcbiAgfVxuICBoIF49IGxlbjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNfYXJyXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2ludFxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCwgcykge1xuICB2YXIgbGVuID0gcy5sZW5ndGgsIGksIHc7XG4gIGZvciAoaSA9IDA7IGkgKyA0IDw9IGxlbjsgaSArPSA0KSB7XG4gICAgdyA9IHNbaV1cbiAgICAgIHwgKHNbaSsxXSA8PCA4KVxuICAgICAgfCAoc1tpKzJdIDw8IDE2KVxuICAgICAgfCAoc1tpKzNdIDw8IDI0KTtcbiAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdyk7XG4gIH1cbiAgdyA9IDA7XG4gIHN3aXRjaCAobGVuICYgMykge1xuICBjYXNlIDM6IHcgID0gc1tpKzJdIDw8IDE2O1xuICBjYXNlIDI6IHcgfD0gc1tpKzFdIDw8IDg7XG4gIGNhc2UgMTogdyB8PSBzW2ldO1xuICAgIGggPSBjYW1sX2hhc2hfbWl4X2ludChoLCB3KTtcbiAgZGVmYXVsdDpcbiAgfVxuICBoIF49IGxlbjtcbiAgcmV0dXJuIGg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfbWxfYnl0ZXNfY29udGVudFxuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9qc2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FyclxuZnVuY3Rpb24gY2FtbF9oYXNoX21peF9ieXRlcyhoLCB2KSB7XG4gIHZhciBjb250ZW50ID0gY2FtbF9tbF9ieXRlc19jb250ZW50KHYpO1xuICBpZih0eXBlb2YgY29udGVudCA9PT0gXCJzdHJpbmdcIilcbiAgICByZXR1cm4gY2FtbF9oYXNoX21peF9qc2J5dGVzKGgsIGNvbnRlbnQpXG4gIGVsc2UgLyogQVJSQVkgKi9cbiAgICByZXR1cm4gY2FtbF9oYXNoX21peF9ieXRlc19hcnIoaCwgY29udGVudCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfaGFzaF9taXhfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMsIGNhbWxfanNieXRlc19vZl9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfc3RyaW5nKGgsIHYpIHtcbiAgcmV0dXJuIGNhbWxfaGFzaF9taXhfanNieXRlcyhoLCBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHYpKTtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2ggbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9pc19tbF9zdHJpbmcsIGNhbWxfaXNfbWxfYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfaW50LCBjYW1sX2hhc2hfbWl4X2ZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2Zsb2F0LCBjYW1sX2hhc2hfbWl4X3N0cmluZywgY2FtbF9oYXNoX21peF9ieXRlcywgY2FtbF9jdXN0b21fb3BzXG4vL1JlcXVpcmVzOiBjYW1sX2hhc2hfbWl4X2pzYnl0ZXNcbi8vUmVxdWlyZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuZnVuY3Rpb24gY2FtbF9oYXNoIChjb3VudCwgbGltaXQsIHNlZWQsIG9iaikge1xuICB2YXIgcXVldWUsIHJkLCB3ciwgc3osIG51bSwgaCwgdiwgaSwgbGVuO1xuICBzeiA9IGxpbWl0O1xuICBpZiAoc3ogPCAwIHx8IHN6ID4gMjU2KSBzeiA9IDI1NjtcbiAgbnVtID0gY291bnQ7XG4gIGggPSBzZWVkO1xuICBxdWV1ZSA9IFtvYmpdOyByZCA9IDA7IHdyID0gMTtcbiAgd2hpbGUgKHJkIDwgd3IgJiYgbnVtID4gMCkge1xuICAgIHYgPSBxdWV1ZVtyZCsrXTtcbiAgICBpZiAodiAmJiB2LmNhbWxfY3VzdG9tKXtcbiAgICAgIGlmKGNhbWxfY3VzdG9tX29wc1t2LmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0uaGFzaCkge1xuICAgICAgICB2YXIgaGggPSBjYW1sX2N1c3RvbV9vcHNbdi5jYW1sX2N1c3RvbV0uaGFzaCh2KTtcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50IChoLCBoaCk7XG4gICAgICAgIG51bSAtLTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSBpZiAodiBpbnN0YW5jZW9mIEFycmF5ICYmIHZbMF0gPT09ICh2WzBdfDApKSB7XG4gICAgICBzd2l0Y2ggKHZbMF0pIHtcbiAgICAgIGNhc2UgMjQ4OlxuICAgICAgICAvLyBPYmplY3RcbiAgICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHZbMl0pO1xuICAgICAgICBudW0tLTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MDpcbiAgICAgICAgLy8gRm9yd2FyZFxuICAgICAgICBxdWV1ZVstLXJkXSA9IHZbMV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgaWYoY2FtbF9pc19jb250aW51YXRpb25fdGFnKHZbMF0pKSB7XG4gICAgICAgICAgLyogQWxsIGNvbnRpbnVhdGlvbnMgaGFzaCB0byB0aGUgc2FtZSB2YWx1ZSxcbiAgICAgICAgICAgICBzaW5jZSB3ZSBoYXZlIG5vIGlkZWEgaG93IHRvIGRpc3Rpbmd1aXNoIHRoZW0uICovXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHRhZyA9ICgodi5sZW5ndGggLSAxKSA8PCAxMCkgfCB2WzBdO1xuICAgICAgICBoID0gY2FtbF9oYXNoX21peF9pbnQoaCwgdGFnKTtcbiAgICAgICAgZm9yIChpID0gMSwgbGVuID0gdi5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgIGlmICh3ciA+PSBzeikgYnJlYWs7XG4gICAgICAgICAgcXVldWVbd3IrK10gPSB2W2ldO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh2KSkge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfYnl0ZXMoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyh2KSkge1xuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfc3RyaW5nKGgsdilcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHYgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIGggPSBjYW1sX2hhc2hfbWl4X2pzYnl0ZXMoaCx2KVxuICAgICAgbnVtLS07XG4gICAgfSBlbHNlIGlmICh2ID09PSAodnwwKSkge1xuICAgICAgLy8gSW50ZWdlclxuICAgICAgaCA9IGNhbWxfaGFzaF9taXhfaW50KGgsIHYrdisxKTtcbiAgICAgIG51bS0tO1xuICAgIH0gZWxzZSBpZiAodiA9PT0gK3YpIHtcbiAgICAgIC8vIEZsb2F0XG4gICAgICBoID0gY2FtbF9oYXNoX21peF9mbG9hdChoLHYpO1xuICAgICAgbnVtLS07XG4gICAgfVxuICB9XG4gIGggPSBjYW1sX2hhc2hfbWl4X2ZpbmFsKGgpO1xuICByZXR1cm4gaCAmIDB4M0ZGRkZGRkY7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfc3RyaW5nX2hhc2hcbi8vUmVxdWlyZXM6IGNhbWxfaGFzaF9taXhfZmluYWwsIGNhbWxfaGFzaF9taXhfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX3N0cmluZ19oYXNoKGgsIHYpe1xuICB2YXIgaCA9IGNhbWxfaGFzaF9taXhfc3RyaW5nKGgsdik7XG4gIHZhciBoID0gY2FtbF9oYXNoX21peF9maW5hbChoKTtcbiAgcmV0dXJuIGggJiAweDNGRkZGRkZGO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF91cGRhdGVfZHVtbXlcbmZ1bmN0aW9uIGNhbWxfdXBkYXRlX2R1bW15ICh4LCB5KSB7XG4gIGlmKCB0eXBlb2YgeT09PVwiZnVuY3Rpb25cIiApIHsgeC5mdW4gPSB5OyByZXR1cm4gMDsgfVxuICBpZiggeS5mdW4gKSB7IHguZnVuID0geS5mdW47IHJldHVybiAwOyB9XG4gIHZhciBpID0geS5sZW5ndGg7IHdoaWxlIChpLS0pIHhbaV0gPSB5W2ldOyByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hbGxvY19kdW1teV9pbmZpeFxuLy9SZXF1aXJlczogY2FtbF9jYWxsX2dlblxuZnVuY3Rpb24gY2FtbF9hbGxvY19kdW1teV9pbmZpeCAoKSB7XG4gIHJldHVybiBmdW5jdGlvbiBmICh4KSB7IHJldHVybiBjYW1sX2NhbGxfZ2VuKGYuZnVuLCBbeF0pIH1cbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfaXNfYmxvY2sgY29uc3QgKGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfaXNfYmxvY2sgKHgpIHsgcmV0dXJuICsoeCBpbnN0YW5jZW9mIEFycmF5KTsgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9pc19tbF9ieXRlcywgY2FtbF9pc19tbF9zdHJpbmdcbmZ1bmN0aW9uIGNhbWxfb2JqX3RhZyAoeCkge1xuICBpZiAoKHggaW5zdGFuY2VvZiBBcnJheSkgJiYgeFswXSA9PSAoeFswXSA+Pj4gMCkpXG4gICAgcmV0dXJuIHhbMF1cbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyh4KSlcbiAgICByZXR1cm4gMjUyXG4gIGVsc2UgaWYgKGNhbWxfaXNfbWxfc3RyaW5nKHgpKVxuICAgIHJldHVybiAyNTJcbiAgZWxzZSBpZiAoKHggaW5zdGFuY2VvZiBGdW5jdGlvbikgfHwgdHlwZW9mIHggPT0gXCJmdW5jdGlvblwiKVxuICAgIHJldHVybiAyNDdcbiAgZWxzZSBpZiAoeCAmJiB4LmNhbWxfY3VzdG9tKVxuICAgIHJldHVybiAyNTVcbiAgZWxzZVxuICAgIHJldHVybiAxMDAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX3NldF90YWcgKG11dGFibGUsIGNvbnN0KVxuZnVuY3Rpb24gY2FtbF9vYmpfc2V0X3RhZyAoeCwgdGFnKSB7IHhbMF0gPSB0YWc7IHJldHVybiAwOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX29ial9ibG9jayBjb25zdCAoY29uc3QsY29uc3QpXG5mdW5jdGlvbiBjYW1sX29ial9ibG9jayAodGFnLCBzaXplKSB7XG4gIHZhciBvID0gbmV3IEFycmF5KHNpemUrMSk7XG4gIG9bMF09dGFnO1xuICBmb3IgKHZhciBpID0gMTsgaSA8PSBzaXplOyBpKyspIG9baV0gPSAwO1xuICByZXR1cm4gbztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfd2l0aF90YWdcbmZ1bmN0aW9uIGNhbWxfb2JqX3dpdGhfdGFnKHRhZyx4KSB7XG4gIHZhciBsID0geC5sZW5ndGg7XG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBhWzBdID0gdGFnO1xuICBmb3IodmFyIGkgPSAxOyBpIDwgbDsgaSsrICkgYVtpXSA9IHhbaV07XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9kdXAgbXV0YWJsZSAobXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfb2JqX2R1cCAoeCkge1xuICB2YXIgbCA9IHgubGVuZ3RoO1xuICB2YXIgYSA9IG5ldyBBcnJheShsKTtcbiAgZm9yKHZhciBpID0gMDsgaSA8IGw7IGkrKyApIGFbaV0gPSB4W2ldO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfdHJ1bmNhdGUgKG11dGFibGUsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiBjYW1sX29ial90cnVuY2F0ZSAoeCwgcykge1xuICBpZiAoczw9MCB8fCBzICsgMSA+IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJPYmoudHJ1bmNhdGVcIik7XG4gIGlmICh4Lmxlbmd0aCAhPSBzICsgMSkgeC5sZW5ndGggPSBzICsgMTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb2JqX21ha2VfZm9yd2FyZFxuZnVuY3Rpb24gY2FtbF9vYmpfbWFrZV9mb3J3YXJkIChiLHYpIHtcbiAgYlswXT0yNTA7XG4gIGJbMV09djtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfY29tcGFyZV9hbmRfc3dhcFxuZnVuY3Rpb24gY2FtbF9vYmpfY29tcGFyZV9hbmRfc3dhcCh4LGksb2xkLG4pe1xuICBpZih4W2krMV0gPT0gb2xkKSB7XG4gICAgeFtpKzFdID0gbjtcbiAgICByZXR1cm4gMTtcbiAgfVxuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9pc19zaGFyZWRcbmZ1bmN0aW9uIGNhbWxfb2JqX2lzX3NoYXJlZCh4KXtcbiAgcmV0dXJuIDFcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X21ha2VfZm9yd2FyZCBjb25zdCAobXV0YWJsZSlcbmZ1bmN0aW9uIGNhbWxfbGF6eV9tYWtlX2ZvcndhcmQgKHYpIHsgcmV0dXJuIFsyNTAsIHZdOyB9XG5cbi8vLy8vLy8vLy8vLy8gQ2FtbGludGVybmFsT09cbi8vUHJvdmlkZXM6IGNhbWxfZ2V0X3B1YmxpY19tZXRob2QgY29uc3RcbnZhciBjYW1sX21ldGhvZF9jYWNoZSA9IFtdO1xuZnVuY3Rpb24gY2FtbF9nZXRfcHVibGljX21ldGhvZCAob2JqLCB0YWcsIGNhY2hlaWQpIHtcbiAgdmFyIG1ldGhzID0gb2JqWzFdO1xuICB2YXIgb2ZzID0gY2FtbF9tZXRob2RfY2FjaGVbY2FjaGVpZF07XG4gIGlmIChvZnMgPT09IHVuZGVmaW5lZCkge1xuICAgIC8vIE1ha2Ugc3VyZSB0aGUgYXJyYXkgaXMgbm90IHNwYXJzZVxuICAgIGZvciAodmFyIGkgPSBjYW1sX21ldGhvZF9jYWNoZS5sZW5ndGg7IGkgPCBjYWNoZWlkOyBpKyspXG4gICAgICBjYW1sX21ldGhvZF9jYWNoZVtpXSA9IDA7XG4gIH0gZWxzZSBpZiAobWV0aHNbb2ZzXSA9PT0gdGFnKSB7XG4gICAgcmV0dXJuIG1ldGhzW29mcyAtIDFdO1xuICB9XG4gIHZhciBsaSA9IDMsIGhpID0gbWV0aHNbMV0gKiAyICsgMSwgbWk7XG4gIHdoaWxlIChsaSA8IGhpKSB7XG4gICAgbWkgPSAoKGxpK2hpKSA+PiAxKSB8IDE7XG4gICAgaWYgKHRhZyA8IG1ldGhzW21pKzFdKSBoaSA9IG1pLTI7XG4gICAgZWxzZSBsaSA9IG1pO1xuICB9XG4gIGNhbWxfbWV0aG9kX2NhY2hlW2NhY2hlaWRdID0gbGkgKyAxO1xuICAvKiByZXR1cm4gMCBpZiB0YWcgaXMgbm90IHRoZXJlICovXG4gIHJldHVybiAodGFnID09IG1ldGhzW2xpKzFdID8gbWV0aHNbbGldIDogMCk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfb29fbGFzdF9pZFxudmFyIGNhbWxfb29fbGFzdF9pZCA9IDA7XG5cbi8vUHJvdmlkZXM6IGNhbWxfc2V0X29vX2lkXG4vL1JlcXVpcmVzOiBjYW1sX29vX2xhc3RfaWRcbmZ1bmN0aW9uIGNhbWxfc2V0X29vX2lkIChiKSB7XG4gIGJbMl09Y2FtbF9vb19sYXN0X2lkKys7XG4gIHJldHVybiBiO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2ZyZXNoX29vX2lkIGNvbnN0XG4vL1JlcXVpcmVzOiBjYW1sX29vX2xhc3RfaWRcbmZ1bmN0aW9uIGNhbWxfZnJlc2hfb29faWQoKSB7XG4gIHJldHVybiBjYW1sX29vX2xhc3RfaWQrKztcbn1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfcmF3X2ZpZWxkXG5mdW5jdGlvbiBjYW1sX29ial9yYXdfZmllbGQobyxpKSB7IHJldHVybiBvW2krMV0gfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9zZXRfcmF3X2ZpZWxkXG5mdW5jdGlvbiBjYW1sX29ial9zZXRfcmF3X2ZpZWxkKG8saSx2KSB7IHJldHVybiBvW2krMV0gPSB2IH1cblxuLy9Qcm92aWRlczogY2FtbF9vYmpfcmVhY2hhYmxlX3dvcmRzXG5mdW5jdGlvbiBjYW1sX29ial9yZWFjaGFibGVfd29yZHMobykgeyByZXR1cm4gMDsgfVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial9hZGRfb2Zmc2V0XG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoXG5mdW5jdGlvbiBjYW1sX29ial9hZGRfb2Zmc2V0KHYsb2Zmc2V0KSB7XG4gIGNhbWxfZmFpbHdpdGgoXCJPYmouYWRkX29mZnNldCBpcyBub3Qgc3VwcG9ydGVkXCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX29ial91cGRhdGVfdGFnXG5mdW5jdGlvbiBjYW1sX29ial91cGRhdGVfdGFnKGIsbyxuKSB7XG4gICAgaWYoYlswXT09bykgeyBiWzBdID0gbjsgcmV0dXJuIDEgfVxuICAgIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV91cGRhdGVfdG9fZm9yY2luZ1xuLy9SZXF1aXJlczogY2FtbF9vYmpfdGFnLCBjYW1sX29ial91cGRhdGVfdGFnLCBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5cbmZ1bmN0aW9uIGNhbWxfbGF6eV91cGRhdGVfdG9fZm9yY2luZyhvKSB7XG4gIHZhciB0ID0gY2FtbF9vYmpfdGFnKG8pO1xuICBpZih0ICE9IDI0NiAmJiB0ICE9IDI1MCAmJiB0ICE9IDI0NClcbiAgICByZXR1cm4gNFxuICBpZihjYW1sX29ial91cGRhdGVfdGFnKG8sIDI0NiwgMjQ0KSkge1xuICAgIHJldHVybiAwXG4gIH0gZWxzZSB7XG4gICAgdmFyIGZpZWxkMCA9IG9bMV07XG4gICAgdCA9IG9bMF1cbiAgICBpZih0ID09IDI0NCkge1xuICAgICAgaWYoZmllbGQwID09IGNhbWxfbWxfZG9tYWluX3VuaXF1ZV90b2tlbigwKSlcbiAgICAgICAgcmV0dXJuIDFcbiAgICAgIGVsc2VcbiAgICAgICAgcmV0dXJuIDJcbiAgICB9IGVsc2UgaWYgKHQgPT0gMjUwKSB7XG4gICAgICByZXR1cm4gMztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYXNzZXJ0IHQgPSBsYXp5X3RhZ1xuICAgICAgcmV0dXJuIDI7XG4gICAgfVxuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbGF6eV91cGRhdGVfdG9fZm9yd2FyZFxuLy9SZXF1aXJlczogY2FtbF9vYmpfdXBkYXRlX3RhZ1xuICBmdW5jdGlvbiBjYW1sX2xhenlfdXBkYXRlX3RvX2ZvcndhcmQobykge1xuICBjYW1sX29ial91cGRhdGVfdGFnKG8sMjQ0LDI1MCk7XG4gIHJldHVybiAwOyAvLyB1bml0XG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3Jlc2V0X3RvX2xhenlcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX3VwZGF0ZV90YWdcbmZ1bmN0aW9uIGNhbWxfbGF6eV9yZXNldF90b19sYXp5KG8pIHtcbiAgY2FtbF9vYmpfdXBkYXRlX3RhZyhvLDI0NCwyNDYpO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9sYXp5X3JlYWRfcmVzdWx0XG4vL1JlcXVpcmVzOiBjYW1sX29ial90YWdcbmZ1bmN0aW9uIGNhbWxfbGF6eV9yZWFkX3Jlc3VsdChvKSB7XG4gIHJldHVybiAoY2FtbF9vYmpfdGFnKG8pID09IDI1MCk/b1sxXTpvO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfaXNfY29udGludWF0aW9uX3RhZ1xuLy9WZXJzaW9uOiA8IDVcbmZ1bmN0aW9uIGNhbWxfaXNfY29udGludWF0aW9uX3RhZyh0KSB7XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWdcbi8vVmVyc2lvbjogPj0gNVxuZnVuY3Rpb24gY2FtbF9pc19jb250aW51YXRpb25fdGFnKHQpIHtcbiAgcmV0dXJuICh0ID09IDI0NSkgPyAxIDogMDtcbn1cbiIsIi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX2Rsc1xudmFyIGNhbWxfZG9tYWluX2RscyA9IFswXTtcblxuLy9Qcm92aWRlczogY2FtbF9kb21haW5fZGxzX3NldFxuLy9SZXF1aXJlczogY2FtbF9kb21haW5fZGxzXG5mdW5jdGlvbiBjYW1sX2RvbWFpbl9kbHNfc2V0KGEpIHtcbiAgY2FtbF9kb21haW5fZGxzID0gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9kb21haW5fZGxzX2dldFxuLy9SZXF1aXJlczogY2FtbF9kb21haW5fZGxzXG5mdW5jdGlvbiBjYW1sX2RvbWFpbl9kbHNfZ2V0KHVuaXQpIHtcbiAgcmV0dXJuIGNhbWxfZG9tYWluX2Rscztcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX2F0b21pY19sb2FkXG5mdW5jdGlvbiBjYW1sX2F0b21pY19sb2FkKHJlZil7XG4gIHJldHVybiByZWZbMV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2Nhc1xuZnVuY3Rpb24gY2FtbF9hdG9taWNfY2FzKHJlZixvLG4pIHtcbiAgaWYocmVmWzFdID09PSBvKXtcbiAgICByZWZbMV0gPSBuO1xuICAgIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2F0b21pY19mZXRjaF9hZGRcbmZ1bmN0aW9uIGNhbWxfYXRvbWljX2ZldGNoX2FkZChyZWYsIGkpIHtcbiAgdmFyIG9sZCA9IHJlZlsxXTtcbiAgcmVmWzFdICs9IGk7XG4gIHJldHVybiBvbGQ7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXRvbWljX2V4Y2hhbmdlXG5mdW5jdGlvbiBjYW1sX2F0b21pY19leGNoYW5nZShyZWYsIHYpIHtcbiAgdmFyIHIgPSByZWZbMV07XG4gIHJlZlsxXSA9IHY7XG4gIHJldHVybiByO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5cbnZhciBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW5fID0gWzBdXG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl91bmlxdWVfdG9rZW4odW5pdCkge1xuICByZXR1cm4gY2FtbF9tbF9kb21haW5fdW5pcXVlX3Rva2VuX1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZG9tYWluX3NldF9uYW1lXG5mdW5jdGlvbiBjYW1sX21sX2RvbWFpbl9zZXRfbmFtZShfbmFtZSkge1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9yZWNvbW1lbmRlZF9kb21haW5fY291bnRcbmZ1bmN0aW9uIGNhbWxfcmVjb21tZW5kZWRfZG9tYWluX2NvdW50KHVuaXQpIHsgcmV0dXJuIDEgfVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfZG9tYWluX2lkXG52YXIgY2FtbF9kb21haW5faWQgPSAwO1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2RvbWFpbl9zcGF3blxuLy9SZXF1aXJlczogY2FtbF9tbF9tdXRleF91bmxvY2tcbi8vUmVxdWlyZXM6IGNhbWxfZG9tYWluX2lkXG4vL1JlcXVpcmVzOiBjYW1sX2NhbGxiYWNrXG52YXIgY2FtbF9kb21haW5fbGF0ZXN0X2lkeCA9IDFcbmZ1bmN0aW9uIGNhbWxfZG9tYWluX3NwYXduKGYsbXV0ZXgpe1xuICAgIHZhciBpZCA9IGNhbWxfZG9tYWluX2xhdGVzdF9pZHgrKztcbiAgICB2YXIgb2xkID0gY2FtbF9kb21haW5faWQ7XG4gICAgY2FtbF9kb21haW5faWQgPSBpZDtcbiAgICBjYW1sX2NhbGxiYWNrKGYsWzBdKTtcbiAgICBjYW1sX2RvbWFpbl9pZCA9IG9sZDtcbiAgICBjYW1sX21sX211dGV4X3VubG9jayhtdXRleCk7XG4gICAgcmV0dXJuIGlkO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZG9tYWluX2lkXG4vL1JlcXVpcmVzOiBjYW1sX2RvbWFpbl9pZFxuZnVuY3Rpb24gY2FtbF9tbF9kb21haW5faWQodW5pdCl7XG4gICAgcmV0dXJuIGNhbWxfZG9tYWluX2lkO1xufVxuXG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfZG9tYWluX2NwdV9yZWxheFxuZnVuY3Rpb24gY2FtbF9tbF9kb21haW5fY3B1X3JlbGF4KHVuaXQpe1xuICAgIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4vLyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbi8vIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4vLyBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4vLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuLy8gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuLy8gR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4vL1xuLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4vLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuLy8gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF90YWdcbi8vUmVxdWlyZXM6IGNhbWxfaXNfbWxfc3RyaW5nLCBjYW1sX2lzX21sX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmVfdmFsX3RhZyhhKXtcbiAgaWYgKHR5cGVvZiBhID09PSBcIm51bWJlclwiKSByZXR1cm4gMTAwMDsgLy8gaW50X3RhZyAod2UgdXNlIGl0IGZvciBhbGwgbnVtYmVycylcbiAgZWxzZSBpZiAoY2FtbF9pc19tbF9ieXRlcyhhKSkgcmV0dXJuIDI1MjsgLy8gc3RyaW5nX3RhZ1xuICBlbHNlIGlmIChjYW1sX2lzX21sX3N0cmluZyhhKSkgcmV0dXJuIDEyNTI7IC8vIG9jYW1sIHN0cmluZyAoaWYgZGlmZmVyZW50IGZyb20gYnl0ZXMpXG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBBcnJheSAmJiBhWzBdID09PSAoYVswXT4+PjApICYmIGFbMF0gPD0gMjU1KSB7XG4gICAgLy8gTG9vayBsaWtlIGFuIG9jYW1sIGJsb2NrXG4gICAgdmFyIHRhZyA9IGFbMF0gfCAwO1xuICAgIC8vIGlnbm9yZSBkb3VibGVfYXJyYXlfdGFnIGJlY2F1c2Ugd2UgY2Fubm90IGFjY3VyYXRlbHkgc2V0XG4gICAgLy8gdGhpcyB0YWcgd2hlbiB3ZSBjcmVhdGUgYW4gYXJyYXkgb2YgZmxvYXQuXG4gICAgcmV0dXJuICh0YWcgPT0gMjU0KT8wOnRhZ1xuICB9XG4gIGVsc2UgaWYgKGEgaW5zdGFuY2VvZiBTdHJpbmcpIHJldHVybiAxMjUyMDsgLy8gamF2YXNjcmlwdCBzdHJpbmcsIGxpa2Ugc3RyaW5nX3RhZyAoMjUyKVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcInN0cmluZ1wiKSByZXR1cm4gMTI1MjA7IC8vIGphdmFzY3JpcHQgc3RyaW5nLCBsaWtlIHN0cmluZ190YWcgKDI1MilcbiAgZWxzZSBpZiAoYSBpbnN0YW5jZW9mIE51bWJlcikgcmV0dXJuIDEwMDA7IC8vIGludF90YWcgKHdlIHVzZSBpdCBmb3IgYWxsIG51bWJlcnMpXG4gIGVsc2UgaWYgKGEgJiYgYS5jYW1sX2N1c3RvbSkgcmV0dXJuIDEyNTU7IC8vIGxpa2UgY3VzdG9tX3RhZyAoMjU1KVxuICBlbHNlIGlmIChhICYmIGEuY29tcGFyZSkgcmV0dXJuIDEyNTY7IC8vIGxpa2UgY3VzdG9tX3RhZyAoMjU1KVxuICBlbHNlIGlmICh0eXBlb2YgYSA9PSBcImZ1bmN0aW9uXCIpIHJldHVybiAxMjQ3OyAvLyBsaWtlIGNsb3N1cmVfdGFnICgyNDcpXG4gIGVsc2UgaWYgKHR5cGVvZiBhID09IFwic3ltYm9sXCIpIHJldHVybiAxMjUxO1xuICByZXR1cm4gMTAwMTsgLy9vdXRfb2ZfaGVhcF90YWdcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2N1c3RvbV9vcHNcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfZ2V0X2N1c3RvbShhKXtcbiAgcmV0dXJuIGNhbWxfY3VzdG9tX29wc1thLmNhbWxfY3VzdG9tXSAmJiBjYW1sX2N1c3RvbV9vcHNbYS5jYW1sX2N1c3RvbV0uY29tcGFyZTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b21cbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWxfbnVtYmVyX2N1c3RvbShudW0sIGN1c3RvbSwgc3dhcCwgdG90YWwpIHtcbiAgdmFyIGNvbXAgPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oY3VzdG9tKTtcbiAgaWYoY29tcCkge1xuICAgIHZhciB4ID0gKHN3YXAgPiAwKT9jb21wKGN1c3RvbSxudW0sdG90YWwpOmNvbXAobnVtLGN1c3RvbSx0b3RhbCk7XG4gICAgaWYodG90YWwgJiYgeCAhPSB4KSByZXR1cm4gc3dhcDsgLy8gdG90YWwgJiYgbmFuXG4gICAgaWYoK3ggIT0gK3gpIHJldHVybiAreDsgLy8gbmFuXG4gICAgaWYoKHggfCAwKSAhPSAwKSByZXR1cm4gKHggfCAwKTsgLy8gIW5hblxuICB9XG4gIHJldHVybiBzd2FwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfY29tcGFyZV92YWwgKGNvbnN0LCBjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2ludF9jb21wYXJlLCBjYW1sX3N0cmluZ19jb21wYXJlLCBjYW1sX2J5dGVzX2NvbXBhcmVcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tLCBjYW1sX2NvbXBhcmVfdmFsX3RhZ1xuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbF9udW1iZXJfY3VzdG9tXG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG4vL1JlcXVpcmVzOiBjYW1sX2lzX2NvbnRpbnVhdGlvbl90YWdcbmZ1bmN0aW9uIGNhbWxfY29tcGFyZV92YWwgKGEsIGIsIHRvdGFsKSB7XG4gIHZhciBzdGFjayA9IFtdO1xuICBmb3IoOzspIHtcbiAgICBpZiAoISh0b3RhbCAmJiBhID09PSBiKSkge1xuICAgICAgdmFyIHRhZ19hID0gY2FtbF9jb21wYXJlX3ZhbF90YWcoYSk7XG4gICAgICAvLyBmb3J3YXJkX3RhZyA/XG4gICAgICBpZih0YWdfYSA9PSAyNTApIHsgYSA9IGFbMV07IGNvbnRpbnVlIH1cblxuICAgICAgdmFyIHRhZ19iID0gY2FtbF9jb21wYXJlX3ZhbF90YWcoYik7XG4gICAgICAvLyBmb3J3YXJkX3RhZyA/XG4gICAgICBpZih0YWdfYiA9PSAyNTApIHsgYiA9IGJbMV07IGNvbnRpbnVlIH1cblxuICAgICAgLy8gdGFncyBhcmUgZGlmZmVyZW50XG4gICAgICBpZih0YWdfYSAhPT0gdGFnX2IpIHtcbiAgICAgICAgaWYodGFnX2EgPT0gMTAwMCkge1xuICAgICAgICAgIGlmKHRhZ19iID09IDEyNTUpIHsgLy9pbW1lZGlhdGUgY2FuIGNvbXBhcmUgYWdhaW5zdCBjdXN0b21cbiAgICAgICAgICAgIHJldHVybiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20oYSwgYiwgLTEsIHRvdGFsKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYodGFnX2IgPT0gMTAwMCkge1xuICAgICAgICAgIGlmKHRhZ19hID09IDEyNTUpIHsgLy9pbW1lZGlhdGUgY2FuIGNvbXBhcmUgYWdhaW5zdCBjdXN0b21cbiAgICAgICAgICAgIHJldHVybiBjYW1sX2NvbXBhcmVfdmFsX251bWJlcl9jdXN0b20oYiwgYSwgMSwgdG90YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gMVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiAodGFnX2EgPCB0YWdfYik/LTE6MTtcbiAgICAgIH1cbiAgICAgIHN3aXRjaCh0YWdfYSl7XG4gICAgICAgIC8vIDI0NjogTGF6eV90YWcgaGFuZGxlZCBiZWxsb3dcbiAgICAgIGNhc2UgMjQ3OiAvLyBDbG9zdXJlX3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI0ODogLy8gT2JqZWN0XG4gICAgICAgIHZhciB4ID0gY2FtbF9pbnRfY29tcGFyZShhWzJdLCBiWzJdKTtcbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNDk6IC8vIEluZml4XG4gICAgICAgIC8vIENhbm5vdCBoYXBwZW5cbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiY29tcGFyZTogZnVuY3Rpb25hbCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgMjUwOiAvLyBGb3J3YXJkIHRhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuLCBoYW5kbGVkIGFib3ZlXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRm9yd2FyZF90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjUxOiAvL0Fic3RyYWN0XG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBhYnN0cmFjdCB2YWx1ZVwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MjogLy8gT0NhbWwgYnl0ZXNcbiAgICAgICAgaWYgKGEgIT09IGIpIHtcbiAgICAgICAgICB2YXIgeCA9IGNhbWxfYnl0ZXNfY29tcGFyZShhLCBiKTtcbiAgICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI1MzogLy8gRG91YmxlX3RhZ1xuICAgICAgICAvLyBDYW5ub3QgaGFwcGVuXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImVxdWFsOiBnb3QgRG91YmxlX3RhZywgc2hvdWxkIG5vdCBoYXBwZW5cIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyNTQ6IC8vIERvdWJsZV9hcnJheV90YWdcbiAgICAgICAgLy8gQ2Fubm90IGhhcHBlbiwgaGFuZGxlZCBhYm92ZVxuICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJlcXVhbDogZ290IERvdWJsZV9hcnJheV90YWcsIHNob3VsZCBub3QgaGFwcGVuXCIpO1xuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyNTU6IC8vIEN1c3RvbV90YWdcbiAgICAgICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50KFwiZXF1YWw6IGdvdCBDdXN0b21fdGFnLCBzaG91bGQgbm90IGhhcHBlblwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNDc6IC8vIEZ1bmN0aW9uXG4gICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGZ1bmN0aW9uYWwgdmFsdWVcIik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjU1OiAvLyBDdXN0b21cbiAgICAgICAgdmFyIGNvbXAgPSBjYW1sX2NvbXBhcmVfdmFsX2dldF9jdXN0b20oYSk7XG4gICAgICAgIGlmKGNvbXAgIT0gY2FtbF9jb21wYXJlX3ZhbF9nZXRfY3VzdG9tKGIpKXtcbiAgICAgICAgICByZXR1cm4gKGEuY2FtbF9jdXN0b208Yi5jYW1sX2N1c3RvbSk/LTE6MTtcbiAgICAgICAgfVxuICAgICAgICBpZighY29tcClcbiAgICAgICAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjb21wYXJlOiBhYnN0cmFjdCB2YWx1ZVwiKTtcbiAgICAgICAgdmFyIHggPSBjb21wKGEsYix0b3RhbCk7XG4gICAgICAgIGlmKHggIT0geCl7IC8vIFByb3RlY3QgYWdhaW5zdCBpbnZhbGlkIFVOT1JERVJFRFxuICAgICAgICAgIHJldHVybiB0b3RhbD8tMTp4O1xuICAgICAgICB9XG4gICAgICAgIGlmKHggIT09ICh4fDApKXsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgcmV0dXJuIC0xXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHggIT0gMCkgcmV0dXJuICh4IHwgMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxMjU2OiAvLyBjb21wYXJlIGZ1bmN0aW9uXG4gICAgICAgIHZhciB4ID0gYS5jb21wYXJlKGIsdG90YWwpO1xuICAgICAgICBpZih4ICE9IHgpIHsgLy8gUHJvdGVjdCBhZ2FpbnN0IGludmFsaWQgVU5PUkRFUkVEXG4gICAgICAgICAgcmV0dXJuIHRvdGFsPy0xOng7XG4gICAgICAgIH1cbiAgICAgICAgaWYoeCAhPT0gKHh8MCkpeyAvLyBQcm90ZWN0IGFnYWluc3QgaW52YWxpZCByZXR1cm4gdmFsdWVcbiAgICAgICAgICByZXR1cm4gLTFcbiAgICAgICAgfVxuICAgICAgICBpZiAoeCAhPSAwKSByZXR1cm4gKHggfCAwKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEwMDA6IC8vIE51bWJlclxuICAgICAgICBhID0gK2E7XG4gICAgICAgIGIgPSArYjtcbiAgICAgICAgaWYgKGEgPCBiKSByZXR1cm4gLTE7XG4gICAgICAgIGlmIChhID4gYikgcmV0dXJuIDE7XG4gICAgICAgIGlmIChhICE9IGIpIHtcbiAgICAgICAgICBpZiAoIXRvdGFsKSByZXR1cm4gTmFOO1xuICAgICAgICAgIGlmIChhID09IGEpIHJldHVybiAxO1xuICAgICAgICAgIGlmIChiID09IGIpIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTAwMTogLy8gVGhlIHJlc3RcbiAgICAgICAgLy8gSGVyZSB3ZSBjYW4gYmUgaW4gdGhlIGZvbGxvd2luZyBjYXNlczpcbiAgICAgICAgLy8gMS4gSmF2YVNjcmlwdCBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy8gMi4gSmF2YVNjcmlwdCBvYmplY3QgdGhhdCBjYW4gYmUgY29lcmNlZCB0byBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy8gMy4gSmF2YVNjcmlwdCBvYmplY3QgdGhhbiBjYW5ub3QgYmUgY29lcmNlZCB0byBwcmltaXRpdmUgdHlwZXNcbiAgICAgICAgLy9cbiAgICAgICAgLy8gKDMpIHdpbGwgcmFpc2UgYSBbVHlwZUVycm9yXVxuICAgICAgICAvLyAoMikgd2lsbCBjb2VyY2UgdG8gcHJpbWl0aXZlIHR5cGVzIHVzaW5nIFt2YWx1ZU9mXSBvciBbdG9TdHJpbmddXG4gICAgICAgIC8vICgyKSBhbmQgKDMpLCBhZnRlciBldmVudHVhbCBjb2VyY2lvblxuICAgICAgICAvLyAtIGlmIGEgYW5kIGIgYXJlIHN0cmluZ3MsIGFwcGx5IGxleGljb2dyYXBoaWMgY29tcGFyaXNvblxuICAgICAgICAvLyAtIGlmIGEgb3IgYiBhcmUgbm90IHN0cmluZ3MsIGNvbnZlcnQgYSBhbmQgYiB0byBudW1iZXJcbiAgICAgICAgLy8gICBhbmQgYXBwbHkgc3RhbmRhcmQgY29tcGFyaXNvblxuICAgICAgICAvL1xuICAgICAgICAvLyBFeGNlcHRpb246IGAhPWAgd2lsbCBub3QgY29lcmNlL2NvbnZlcnQgaWYgYm90aCBhIGFuZCBiIGFyZSBvYmplY3RzXG4gICAgICAgIGlmIChhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICAgICAgICBpZiAoYSAhPSBiKSB7XG4gICAgICAgICAgaWYgKCF0b3RhbCkgcmV0dXJuIE5hTjtcbiAgICAgICAgICBpZiAoYSA9PSBhKSByZXR1cm4gMTtcbiAgICAgICAgICBpZiAoYiA9PSBiKSByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTE6IC8vIEphdmFTY3JpcHQgU3ltYm9sLCBubyBvcmRlcmluZy5cbiAgICAgICAgaWYoYSAhPT0gYikge1xuICAgICAgICAgIGlmICghdG90YWwpIHJldHVybiBOYU47XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDEyNTI6IC8vIG9jYW1sIHN0cmluZ3NcbiAgICAgICAgdmFyIGEgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKGEpO1xuICAgICAgICB2YXIgYiA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoYik7XG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMTI1MjA6IC8vIGphdmFzY3JpcHQgc3RyaW5nc1xuICAgICAgICB2YXIgYSA9IGEudG9TdHJpbmcoKTtcbiAgICAgICAgdmFyIGIgPSBiLnRvU3RyaW5nKCk7XG4gICAgICAgIGlmKGEgIT09IGIpIHtcbiAgICAgICAgICBpZihhIDwgYikgcmV0dXJuIC0xO1xuICAgICAgICAgIGlmKGEgPiBiKSByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjQ2OiAvLyBMYXp5X3RhZ1xuICAgICAgY2FzZSAyNTQ6IC8vIERvdWJsZV9hcnJheVxuICAgICAgZGVmYXVsdDogLy8gQmxvY2sgd2l0aCBvdGhlciB0YWdcbiAgICAgICAgaWYoY2FtbF9pc19jb250aW51YXRpb25fdGFnKHRhZ19hKSkge1xuICAgICAgICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNvbXBhcmU6IGNvbnRpbnVhdGlvbiB2YWx1ZVwiKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoYS5sZW5ndGggIT0gYi5sZW5ndGgpIHJldHVybiAoYS5sZW5ndGggPCBiLmxlbmd0aCk/LTE6MTtcbiAgICAgICAgaWYgKGEubGVuZ3RoID4gMSkgc3RhY2sucHVzaChhLCBiLCAxKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChzdGFjay5sZW5ndGggPT0gMCkgcmV0dXJuIDA7XG4gICAgdmFyIGkgPSBzdGFjay5wb3AoKTtcbiAgICBiID0gc3RhY2sucG9wKCk7XG4gICAgYSA9IHN0YWNrLnBvcCgpO1xuICAgIGlmIChpICsgMSA8IGEubGVuZ3RoKSBzdGFjay5wdXNoKGEsIGIsIGkgKyAxKTtcbiAgICBhID0gYVtpXTtcbiAgICBiID0gYltpXTtcbiAgfVxufVxuLy9Qcm92aWRlczogY2FtbF9jb21wYXJlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2NvbXBhcmUgKGEsIGIpIHsgcmV0dXJuIGNhbWxfY29tcGFyZV92YWwgKGEsIGIsIHRydWUpOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2ludF9jb21wYXJlIG11dGFibGUgKGNvbnN0LCBjb25zdClcbmZ1bmN0aW9uIGNhbWxfaW50X2NvbXBhcmUgKGEsIGIpIHtcbiAgaWYgKGEgPCBiKSByZXR1cm4gKC0xKTsgaWYgKGEgPT0gYikgcmV0dXJuIDA7IHJldHVybiAxO1xufVxuLy9Qcm92aWRlczogY2FtbF9lcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2VxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA9PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ub3RlcXVhbCBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX25vdGVxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSAhPSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9ncmVhdGVyZXF1YWwgbXV0YWJsZSAoY29uc3QsIGNvbnN0KVxuLy9SZXF1aXJlczogY2FtbF9jb21wYXJlX3ZhbFxuZnVuY3Rpb24gY2FtbF9ncmVhdGVyZXF1YWwgKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID49IDApOyB9XG4vL1Byb3ZpZGVzOiBjYW1sX2dyZWF0ZXJ0aGFuIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfZ3JlYXRlcnRoYW4gKHgsIHkpIHsgcmV0dXJuICsoY2FtbF9jb21wYXJlX3ZhbCh4LHksZmFsc2UpID4gMCk7IH1cbi8vUHJvdmlkZXM6IGNhbWxfbGVzc2VxdWFsIG11dGFibGUgKGNvbnN0LCBjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfY29tcGFyZV92YWxcbmZ1bmN0aW9uIGNhbWxfbGVzc2VxdWFsICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA8PSAwKTsgfVxuLy9Qcm92aWRlczogY2FtbF9sZXNzdGhhbiBtdXRhYmxlIChjb25zdCwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2NvbXBhcmVfdmFsXG5mdW5jdGlvbiBjYW1sX2xlc3N0aGFuICh4LCB5KSB7IHJldHVybiArKGNhbWxfY29tcGFyZV92YWwoeCx5LGZhbHNlKSA8IDApOyB9XG4iLCIvLyBKc19vZl9vY2FtbCBsaWJyYXJ5XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gSnNsaWI6IGNvZGUgc3BlY2lmaWMgdG8gSnNfb2Zfb2NhbWxcblxuLy9Qcm92aWRlczogY2FtbF9qc19vbl9pZSBjb25zdFxuZnVuY3Rpb24gY2FtbF9qc19vbl9pZSAoKSB7XG4gIHZhciB1YSA9XG4gICAgICBnbG9iYWxUaGlzLm5hdmlnYXRvcj9nbG9iYWxUaGlzLm5hdmlnYXRvci51c2VyQWdlbnQ6XCJcIjtcbiAgcmV0dXJuIHVhLmluZGV4T2YoXCJNU0lFXCIpICE9IC0xICYmIHVhLmluZGV4T2YoXCJPcGVyYVwiKSAhPSAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2h0bWxfZXNjYXBlIGNvbnN0IChjb25zdClcbnZhciBjYW1sX2pzX3JlZ2V4cHMgPSB7IGFtcDovJi9nLCBsdDovPC9nLCBxdW90Oi9cXFwiL2csIGFsbDovWyY8XFxcIl0vIH07XG5mdW5jdGlvbiBjYW1sX2pzX2h0bWxfZXNjYXBlIChzKSB7XG4gIGlmICghY2FtbF9qc19yZWdleHBzLmFsbC50ZXN0KHMpKSByZXR1cm4gcztcbiAgcmV0dXJuIHMucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMuYW1wLCBcIiZhbXA7XCIpXG4gICAgLnJlcGxhY2UoY2FtbF9qc19yZWdleHBzLmx0LCBcIiZsdDtcIilcbiAgICAucmVwbGFjZShjYW1sX2pzX3JlZ2V4cHMucXVvdCwgXCImcXVvdDtcIik7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfaHRtbF9lbnRpdGllc1xuLy9SZXF1aXJlczogY2FtbF9mYWlsd2l0aFxuZnVuY3Rpb24gY2FtbF9qc19odG1sX2VudGl0aWVzKHMpIHtcbiAgdmFyIGVudGl0eSA9IC9eJiM/WzAtOWEtekEtWl0rOyQvXG4gIGlmKHMubWF0Y2goZW50aXR5KSlcbiAge1xuICAgIHZhciBzdHIsIHRlbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgdGVtcC5pbm5lckhUTUw9IHM7XG4gICAgc3RyPSB0ZW1wLnRleHRDb250ZW50IHx8IHRlbXAuaW5uZXJUZXh0O1xuICAgIHRlbXA9bnVsbDtcbiAgICByZXR1cm4gc3RyO1xuICB9XG4gIGVsc2Uge1xuICAgIGNhbWxfZmFpbHdpdGgoXCJJbnZhbGlkIGVudGl0eSBcIiArIHMpO1xuICB9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfanNfZ2V0X2NvbnNvbGUgY29uc3RcbmZ1bmN0aW9uIGNhbWxfanNfZ2V0X2NvbnNvbGUgKCkge1xuICB2YXIgYyA9IGNvbnNvbGU7XG4gIHZhciBtID0gW1wibG9nXCIsIFwiZGVidWdcIiwgXCJpbmZvXCIsIFwid2FyblwiLCBcImVycm9yXCIsIFwiYXNzZXJ0XCIsIFwiZGlyXCIsIFwiZGlyeG1sXCIsXG4gICAgICAgICAgIFwidHJhY2VcIiwgXCJncm91cFwiLCBcImdyb3VwQ29sbGFwc2VkXCIsIFwiZ3JvdXBFbmRcIiwgXCJ0aW1lXCIsIFwidGltZUVuZFwiXTtcbiAgZnVuY3Rpb24gZiAoKSB7fVxuICBmb3IgKHZhciBpID0gMDsgaSA8IG0ubGVuZ3RoOyBpKyspIGlmICghY1ttW2ldXSkgY1ttW2ldXT1mO1xuICByZXR1cm4gYztcbn1cblxuLy9Qcm92aWRlczogY2FtbF94bWxodHRwcmVxdWVzdF9jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vV2Vha2RlZlxuZnVuY3Rpb24gY2FtbF94bWxodHRwcmVxdWVzdF9jcmVhdGUodW5pdCl7XG4gIGlmKHR5cGVvZiBnbG9iYWxUaGlzLlhNTEh0dHBSZXF1ZXN0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHRyeSB7IHJldHVybiBuZXcgZ2xvYmFsVGhpcy5YTUxIdHRwUmVxdWVzdCB9IGNhdGNoIChlKSB7IH07XG4gIH1cbiAgaWYodHlwZW9mIGdsb2JhbFRoaXMuYWN0aXZlWE9iamVjdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0cnkgeyByZXR1cm4gbmV3IGdsb2JhbFRoaXMuYWN0aXZlWE9iamVjdChcIk1zeG1sMi5YTUxIVFRQXCIpIH0gY2F0Y2goZSl7IH07XG4gICAgdHJ5IHsgcmV0dXJuIG5ldyBnbG9iYWxUaGlzLmFjdGl2ZVhPYmplY3QoXCJNc3htbDMuWE1MSFRUUFwiKSB9IGNhdGNoKGUpeyB9O1xuICAgIHRyeSB7IHJldHVybiBuZXcgZ2xvYmFsVGhpcy5hY3RpdmVYT2JqZWN0KFwiTWljcm9zb2Z0LlhNTEhUVFBcIikgfSBjYXRjaChlKXsgfTtcbiAgfVxuICBjYW1sX2ZhaWx3aXRoKFwiQ2Fubm90IGNyZWF0ZSBhIFhNTEh0dHBSZXF1ZXN0XCIpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2pzX2Vycm9yX29mX2V4Y2VwdGlvblxuZnVuY3Rpb24gY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb24oZXhuKSB7XG4gIGlmKGV4bi5qc19lcnJvcikgeyByZXR1cm4gZXhuLmpzX2Vycm9yOyB9XG4gIHJldHVybiBudWxsO1xufVxuIiwiLy8vLy8vLy8vIEJJR1NUUklOR1xuXG4vL1Byb3ZpZGVzOiBjYW1sX2hhc2hfbWl4X2JpZ3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9oYXNoX21peF9ieXRlc19hcnJcbmZ1bmN0aW9uIGNhbWxfaGFzaF9taXhfYmlnc3RyaW5nKGgsIGJzKSB7XG4gIHJldHVybiBjYW1sX2hhc2hfbWl4X2J5dGVzX2FycihoLGJzLmRhdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfdG9fYXJyYXlfYnVmZmVyIG11dGFibGVcbmZ1bmN0aW9uIGJpZ3N0cmluZ190b19hcnJheV9idWZmZXIoYnMpIHtcbiAgcmV0dXJuIGJzLmRhdGEuYnVmZmVyXG59XG5cbi8vUHJvdmlkZXM6IGJpZ3N0cmluZ190b190eXBlZF9hcnJheSBtdXRhYmxlXG5mdW5jdGlvbiBiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXkoYnMpIHtcbiAgcmV0dXJuIGJzLmRhdGFcbn1cblxuLy9Qcm92aWRlczogYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlciBtdXRhYmxlXG4vL1JlcXVpcmVzOiBjYW1sX2JhX2NyZWF0ZV91bnNhZmVcbmZ1bmN0aW9uIGJpZ3N0cmluZ19vZl9hcnJheV9idWZmZXIoYWIpIHtcbiAgdmFyIHRhID0gbmV3IFVpbnQ4QXJyYXkoYWIpO1xuICByZXR1cm4gY2FtbF9iYV9jcmVhdGVfdW5zYWZlKDEyLCAwLCBbdGEubGVuZ3RoXSwgdGEpO1xufVxuXG4vL1Byb3ZpZGVzOiBiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkgbXV0YWJsZVxuLy9SZXF1aXJlczogY2FtbF9iYV9jcmVhdGVfdW5zYWZlXG5mdW5jdGlvbiBiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXkoYmEpIHtcbiAgdmFyIHRhID0gbmV3IFVpbnQ4QXJyYXkoYmEuYnVmZmVyLCBiYS5ieXRlT2Zmc2V0LCBiYS5sZW5ndGggKiBiYS5CWVRFU19QRVJfRUxFTUVOVCk7XG4gIHJldHVybiBjYW1sX2JhX2NyZWF0ZV91bnNhZmUoMTIsIDAsIFt0YS5sZW5ndGhdLCB0YSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX21lbWNtcFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMVxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfbWVtY21wKHMxLCBwb3MxLCBzMiwgcG9zMiwgbGVuKXtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIHZhciBhID0gY2FtbF9iYV9nZXRfMShzMSxwb3MxICsgaSk7XG4gICAgdmFyIGIgPSBjYW1sX2JhX2dldF8xKHMyLHBvczIgKyBpKTtcbiAgICBpZiAoYSA8IGIpIHJldHVybiAtMTtcbiAgICBpZiAoYSA+IGIpIHJldHVybiAxO1xuICB9XG4gIHJldHVybiAwO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2JhXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmEoYmExLCBwb3MxLCBiYTIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMS5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKDEyICE9IGJhMi5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYmE6IGtpbmQgbWlzbWF0Y2hcIik7XG4gIGlmKGxlbiA9PSAwKSByZXR1cm4gMDtcbiAgdmFyIG9mczEgPSBiYTEub2Zmc2V0KHBvczEpO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKG9mczEgKyBsZW4gPiBiYTEuZGF0YS5sZW5ndGgpe1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gYmExLmRhdGEuc3ViYXJyYXkob2ZzMSxvZnMxK2xlbik7XG4gIGJhMi5kYXRhLnNldChzbGljZSxwb3MyKTtcbiAgcmV0dXJuIDBcbn1cblxuLy9Qcm92aWRlczogY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbWxfc3RyaW5nX2xlbmd0aFxuZnVuY3Rpb24gY2FtbF9iaWdzdHJpbmdfYmxpdF9zdHJpbmdfdG9fYmEoc3RyMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKHBvczEgKyBsZW4gPiBjYW1sX21sX3N0cmluZ19sZW5ndGgoc3RyMSkpIHtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgaWYob2ZzMiArIGxlbiA+IGJhMi5kYXRhLmxlbmd0aCkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICB2YXIgc2xpY2UgPSBjYW1sX3VpbnQ4X2FycmF5X29mX3N0cmluZyhzdHIxKS5zbGljZShwb3MxLHBvczEgKyBsZW4pO1xuICBiYTIuZGF0YS5zZXQoc2xpY2Usb2ZzMik7XG4gIHJldHVybiAwXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYmlnc3RyaW5nX2JsaXRfYnl0ZXNfdG9fYmFcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9hcnJheV9ib3VuZF9lcnJvciwgY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYnl0ZXNfdG9fYmEoc3RyMSwgcG9zMSwgYmEyLCBwb3MyLCBsZW4pe1xuICBpZigxMiAhPSBiYTIua2luZClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJjYW1sX2JpZ3N0cmluZ19ibGl0X3N0cmluZ190b19iYToga2luZCBtaXNtYXRjaFwiKTtcbiAgaWYobGVuID09IDApIHJldHVybiAwO1xuICB2YXIgb2ZzMiA9IGJhMi5vZmZzZXQocG9zMik7XG4gIGlmKHBvczEgKyBsZW4gPiBjYW1sX21sX2J5dGVzX2xlbmd0aChzdHIxKSkge1xuICAgIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgfVxuICBpZihvZnMyICsgbGVuID4gYmEyLmRhdGEubGVuZ3RoKSB7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIHZhciBzbGljZSA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMoc3RyMSkuc2xpY2UocG9zMSxwb3MxICsgbGVuKTtcbiAgYmEyLmRhdGEuc2V0KHNsaWNlLG9mczIpO1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2JpZ3N0cmluZ19ibGl0X2JhX3RvX2J5dGVzXG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfYXJyYXlfYm91bmRfZXJyb3Jcbi8vUmVxdWlyZXM6IGNhbWxfYmxpdF9ieXRlcywgY2FtbF9ieXRlc19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9tbF9ieXRlc19sZW5ndGhcbmZ1bmN0aW9uIGNhbWxfYmlnc3RyaW5nX2JsaXRfYmFfdG9fYnl0ZXMoYmExLCBwb3MxLCBieXRlczIsIHBvczIsIGxlbil7XG4gIGlmKDEyICE9IGJhMS5raW5kKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcImNhbWxfYmlnc3RyaW5nX2JsaXRfc3RyaW5nX3RvX2JhOiBraW5kIG1pc21hdGNoXCIpO1xuICBpZihsZW4gPT0gMCkgcmV0dXJuIDA7XG4gIHZhciBvZnMxID0gYmExLm9mZnNldChwb3MxKTtcbiAgaWYob2ZzMSArIGxlbiA+IGJhMS5kYXRhLmxlbmd0aCl7XG4gICAgY2FtbF9hcnJheV9ib3VuZF9lcnJvcigpO1xuICB9XG4gIGlmKHBvczIgKyBsZW4gPiBjYW1sX21sX2J5dGVzX2xlbmd0aChieXRlczIpKXtcbiAgICBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIH1cbiAgdmFyIHNsaWNlID0gYmExLmRhdGEuc2xpY2Uob2ZzMSwgb2ZzMStsZW4pO1xuICBjYW1sX2JsaXRfYnl0ZXMoY2FtbF9ieXRlc19vZl9hcnJheShzbGljZSksIDAsIGJ5dGVzMiwgcG9zMiwgbGVuKTtcbiAgcmV0dXJuIDBcbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuLy8gTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4vL1xuLy8gVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbi8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbi8vIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbi8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4vLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4vLyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbi8vXG4vLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Vcbi8vIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4vLyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9jaGFuXG4vL1JlcXVpcmVzOiBjYW1sX3N0cmluZ19vZl9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9yYWlzZV9lbmRfb2ZfZmlsZSwgY2FtbF9tbF9pbnB1dF9ibG9ja1xuLy9SZXF1aXJlczogY2FtbF9NRDVJbml0LCBjYW1sX01ENVVwZGF0ZSwgY2FtbF9NRDVGaW5hbFxuZnVuY3Rpb24gY2FtbF9tZDVfY2hhbihjaGFuaWQsdG9yZWFkKXtcbiAgdmFyIGN0eCA9IGNhbWxfTUQ1SW5pdCgpO1xuICB2YXIgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoNDA5Nik7XG4gIGlmKHRvcmVhZCA8IDApe1xuICAgIHdoaWxlKHRydWUpe1xuICAgICAgdmFyIHJlYWQgPSBjYW1sX21sX2lucHV0X2Jsb2NrKGNoYW5pZCxidWZmZXIsMCxidWZmZXIubGVuZ3RoKTtcbiAgICAgIGlmKHJlYWQgPT0gMCkgYnJlYWs7XG4gICAgICBjYW1sX01ENVVwZGF0ZShjdHgsYnVmZmVyLnN1YmFycmF5KDAsIHJlYWQpLCByZWFkKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUodG9yZWFkID4gMCkge1xuICAgICAgdmFyIHJlYWQgPSBjYW1sX21sX2lucHV0X2Jsb2NrKGNoYW5pZCxidWZmZXIsMCwgKHRvcmVhZCA+IGJ1ZmZlci5sZW5ndGggPyBidWZmZXIubGVuZ3RoIDogdG9yZWFkKSk7XG4gICAgICBpZihyZWFkID09IDApIGNhbWxfcmFpc2VfZW5kX29mX2ZpbGUoKTtcbiAgICAgIGNhbWxfTUQ1VXBkYXRlKGN0eCxidWZmZXIuc3ViYXJyYXkoMCwgcmVhZCksIHJlYWQpO1xuICAgICAgdG9yZWFkIC09IHJlYWRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGNhbWxfc3RyaW5nX29mX2FycmF5KGNhbWxfTUQ1RmluYWwoY3R4KSk7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWQ1X3N0cmluZ1xuLy9SZXF1aXJlczogY2FtbF9ieXRlc19vZl9zdHJpbmcsIGNhbWxfbWQ1X2J5dGVzXG5mdW5jdGlvbiBjYW1sX21kNV9zdHJpbmcocywgb2ZzLCBsZW4pIHtcbiAgcmV0dXJuIGNhbWxfbWQ1X2J5dGVzKGNhbWxfYnl0ZXNfb2Zfc3RyaW5nKHMpLG9mcyxsZW4pO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX01ENVRyYW5zZm9ybVxudmFyIGNhbWxfTUQ1VHJhbnNmb3JtID0gKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gYWRkICh4LCB5KSB7IHJldHVybiAoeCArIHkpIHwgMDsgfVxuICBmdW5jdGlvbiB4eChxLGEsYix4LHMsdCkge1xuICAgIGEgPSBhZGQoYWRkKGEsIHEpLCBhZGQoeCwgdCkpO1xuICAgIHJldHVybiBhZGQoKGEgPDwgcykgfCAoYSA+Pj4gKDMyIC0gcykpLCBiKTtcbiAgfVxuICBmdW5jdGlvbiBmZihhLGIsYyxkLHgscyx0KSB7XG4gICAgcmV0dXJuIHh4KChiICYgYykgfCAoKH5iKSAmIGQpLCBhLCBiLCB4LCBzLCB0KTtcbiAgfVxuICBmdW5jdGlvbiBnZyhhLGIsYyxkLHgscyx0KSB7XG4gICAgcmV0dXJuIHh4KChiICYgZCkgfCAoYyAmICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTtcbiAgfVxuICBmdW5jdGlvbiBoaChhLGIsYyxkLHgscyx0KSB7IHJldHVybiB4eChiIF4gYyBeIGQsIGEsIGIsIHgsIHMsIHQpOyB9XG4gIGZ1bmN0aW9uIGlpKGEsYixjLGQseCxzLHQpIHsgcmV0dXJuIHh4KGMgXiAoYiB8ICh+ZCkpLCBhLCBiLCB4LCBzLCB0KTsgfVxuXG4gIHJldHVybiBmdW5jdGlvbiAodywgYnVmZmVyKSB7XG4gICAgdmFyIGEgPSB3WzBdLCBiID0gd1sxXSwgYyA9IHdbMl0sIGQgPSB3WzNdO1xuXG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlclsgMF0sIDcsIDB4RDc2QUE0NzgpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbIDFdLCAxMiwgMHhFOEM3Qjc1Nik7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlclsgMl0sIDE3LCAweDI0MjA3MERCKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyWyAzXSwgMjIsIDB4QzFCRENFRUUpO1xuICAgIGEgPSBmZihhLCBiLCBjLCBkLCBidWZmZXJbIDRdLCA3LCAweEY1N0MwRkFGKTtcbiAgICBkID0gZmYoZCwgYSwgYiwgYywgYnVmZmVyWyA1XSwgMTIsIDB4NDc4N0M2MkEpO1xuICAgIGMgPSBmZihjLCBkLCBhLCBiLCBidWZmZXJbIDZdLCAxNywgMHhBODMwNDYxMyk7XG4gICAgYiA9IGZmKGIsIGMsIGQsIGEsIGJ1ZmZlclsgN10sIDIyLCAweEZENDY5NTAxKTtcbiAgICBhID0gZmYoYSwgYiwgYywgZCwgYnVmZmVyWyA4XSwgNywgMHg2OTgwOThEOCk7XG4gICAgZCA9IGZmKGQsIGEsIGIsIGMsIGJ1ZmZlclsgOV0sIDEyLCAweDhCNDRGN0FGKTtcbiAgICBjID0gZmYoYywgZCwgYSwgYiwgYnVmZmVyWzEwXSwgMTcsIDB4RkZGRjVCQjEpO1xuICAgIGIgPSBmZihiLCBjLCBkLCBhLCBidWZmZXJbMTFdLCAyMiwgMHg4OTVDRDdCRSk7XG4gICAgYSA9IGZmKGEsIGIsIGMsIGQsIGJ1ZmZlclsxMl0sIDcsIDB4NkI5MDExMjIpO1xuICAgIGQgPSBmZihkLCBhLCBiLCBjLCBidWZmZXJbMTNdLCAxMiwgMHhGRDk4NzE5Myk7XG4gICAgYyA9IGZmKGMsIGQsIGEsIGIsIGJ1ZmZlclsxNF0sIDE3LCAweEE2Nzk0MzhFKTtcbiAgICBiID0gZmYoYiwgYywgZCwgYSwgYnVmZmVyWzE1XSwgMjIsIDB4NDlCNDA4MjEpO1xuXG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlclsgMV0sIDUsIDB4RjYxRTI1NjIpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbIDZdLCA5LCAweEMwNDBCMzQwKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyWzExXSwgMTQsIDB4MjY1RTVBNTEpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbIDBdLCAyMCwgMHhFOUI2QzdBQSk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlclsgNV0sIDUsIDB4RDYyRjEwNUQpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbMTBdLCA5LCAweDAyNDQxNDUzKTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyWzE1XSwgMTQsIDB4RDhBMUU2ODEpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbIDRdLCAyMCwgMHhFN0QzRkJDOCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlclsgOV0sIDUsIDB4MjFFMUNERTYpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbMTRdLCA5LCAweEMzMzcwN0Q2KTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyWyAzXSwgMTQsIDB4RjRENTBEODcpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbIDhdLCAyMCwgMHg0NTVBMTRFRCk7XG4gICAgYSA9IGdnKGEsIGIsIGMsIGQsIGJ1ZmZlclsxM10sIDUsIDB4QTlFM0U5MDUpO1xuICAgIGQgPSBnZyhkLCBhLCBiLCBjLCBidWZmZXJbIDJdLCA5LCAweEZDRUZBM0Y4KTtcbiAgICBjID0gZ2coYywgZCwgYSwgYiwgYnVmZmVyWyA3XSwgMTQsIDB4Njc2RjAyRDkpO1xuICAgIGIgPSBnZyhiLCBjLCBkLCBhLCBidWZmZXJbMTJdLCAyMCwgMHg4RDJBNEM4QSk7XG5cbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyWyA1XSwgNCwgMHhGRkZBMzk0Mik7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlclsgOF0sIDExLCAweDg3NzFGNjgxKTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyWzExXSwgMTYsIDB4NkQ5RDYxMjIpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbMTRdLCAyMywgMHhGREU1MzgwQyk7XG4gICAgYSA9IGhoKGEsIGIsIGMsIGQsIGJ1ZmZlclsgMV0sIDQsIDB4QTRCRUVBNDQpO1xuICAgIGQgPSBoaChkLCBhLCBiLCBjLCBidWZmZXJbIDRdLCAxMSwgMHg0QkRFQ0ZBOSk7XG4gICAgYyA9IGhoKGMsIGQsIGEsIGIsIGJ1ZmZlclsgN10sIDE2LCAweEY2QkI0QjYwKTtcbiAgICBiID0gaGgoYiwgYywgZCwgYSwgYnVmZmVyWzEwXSwgMjMsIDB4QkVCRkJDNzApO1xuICAgIGEgPSBoaChhLCBiLCBjLCBkLCBidWZmZXJbMTNdLCA0LCAweDI4OUI3RUM2KTtcbiAgICBkID0gaGgoZCwgYSwgYiwgYywgYnVmZmVyWyAwXSwgMTEsIDB4RUFBMTI3RkEpO1xuICAgIGMgPSBoaChjLCBkLCBhLCBiLCBidWZmZXJbIDNdLCAxNiwgMHhENEVGMzA4NSk7XG4gICAgYiA9IGhoKGIsIGMsIGQsIGEsIGJ1ZmZlclsgNl0sIDIzLCAweDA0ODgxRDA1KTtcbiAgICBhID0gaGgoYSwgYiwgYywgZCwgYnVmZmVyWyA5XSwgNCwgMHhEOUQ0RDAzOSk7XG4gICAgZCA9IGhoKGQsIGEsIGIsIGMsIGJ1ZmZlclsxMl0sIDExLCAweEU2REI5OUU1KTtcbiAgICBjID0gaGgoYywgZCwgYSwgYiwgYnVmZmVyWzE1XSwgMTYsIDB4MUZBMjdDRjgpO1xuICAgIGIgPSBoaChiLCBjLCBkLCBhLCBidWZmZXJbIDJdLCAyMywgMHhDNEFDNTY2NSk7XG5cbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyWyAwXSwgNiwgMHhGNDI5MjI0NCk7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlclsgN10sIDEwLCAweDQzMkFGRjk3KTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyWzE0XSwgMTUsIDB4QUI5NDIzQTcpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbIDVdLCAyMSwgMHhGQzkzQTAzOSk7XG4gICAgYSA9IGlpKGEsIGIsIGMsIGQsIGJ1ZmZlclsxMl0sIDYsIDB4NjU1QjU5QzMpO1xuICAgIGQgPSBpaShkLCBhLCBiLCBjLCBidWZmZXJbIDNdLCAxMCwgMHg4RjBDQ0M5Mik7XG4gICAgYyA9IGlpKGMsIGQsIGEsIGIsIGJ1ZmZlclsxMF0sIDE1LCAweEZGRUZGNDdEKTtcbiAgICBiID0gaWkoYiwgYywgZCwgYSwgYnVmZmVyWyAxXSwgMjEsIDB4ODU4NDVERDEpO1xuICAgIGEgPSBpaShhLCBiLCBjLCBkLCBidWZmZXJbIDhdLCA2LCAweDZGQTg3RTRGKTtcbiAgICBkID0gaWkoZCwgYSwgYiwgYywgYnVmZmVyWzE1XSwgMTAsIDB4RkUyQ0U2RTApO1xuICAgIGMgPSBpaShjLCBkLCBhLCBiLCBidWZmZXJbIDZdLCAxNSwgMHhBMzAxNDMxNCk7XG4gICAgYiA9IGlpKGIsIGMsIGQsIGEsIGJ1ZmZlclsxM10sIDIxLCAweDRFMDgxMUExKTtcbiAgICBhID0gaWkoYSwgYiwgYywgZCwgYnVmZmVyWyA0XSwgNiwgMHhGNzUzN0U4Mik7XG4gICAgZCA9IGlpKGQsIGEsIGIsIGMsIGJ1ZmZlclsxMV0sIDEwLCAweEJEM0FGMjM1KTtcbiAgICBjID0gaWkoYywgZCwgYSwgYiwgYnVmZmVyWyAyXSwgMTUsIDB4MkFEN0QyQkIpO1xuICAgIGIgPSBpaShiLCBjLCBkLCBhLCBidWZmZXJbIDldLCAyMSwgMHhFQjg2RDM5MSk7XG5cbiAgICB3WzBdID0gYWRkKGEsIHdbMF0pO1xuICAgIHdbMV0gPSBhZGQoYiwgd1sxXSk7XG4gICAgd1syXSA9IGFkZChjLCB3WzJdKTtcbiAgICB3WzNdID0gYWRkKGQsIHdbM10pO1xuICB9fSkoKVxuXG4vL1Byb3ZpZGVzOiBjYW1sX01ENUluaXRcbmZ1bmN0aW9uIGNhbWxfTUQ1SW5pdCgpIHtcbiAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcig2NCk7XG4gIHZhciBiMzIgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyKTtcbiAgdmFyIGI4ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcbiAgcmV0dXJuIHtsZW46MCxcbiAgICAgICAgICB3Om5ldyBVaW50MzJBcnJheShbMHg2NzQ1MjMwMSwgMHhFRkNEQUI4OSwgMHg5OEJBRENGRSwgMHgxMDMyNTQ3Nl0pLFxuICAgICAgICAgIGIzMjpiMzIsXG4gICAgICAgICAgYjg6Yjh9XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfTUQ1VXBkYXRlXG4vL1JlcXVpcmVzOiBjYW1sX01ENVRyYW5zZm9ybVxuZnVuY3Rpb24gY2FtbF9NRDVVcGRhdGUoY3R4LCBpbnB1dCwgaW5wdXRfbGVuKXtcbiAgdmFyIGluX2J1ZiA9IGN0eC5sZW4gJiAweDNmO1xuICB2YXIgaW5wdXRfcG9zID0gMDtcbiAgY3R4LmxlbiArPSBpbnB1dF9sZW47XG4gIGlmKGluX2J1Zil7XG4gICAgdmFyIG1pc3NpbmcgPSA2NCAtIGluX2J1ZjtcbiAgICBpZihpbnB1dF9sZW4gPCBtaXNzaW5nKSB7XG4gICAgICBjdHguYjguc2V0KGlucHV0LnN1YmFycmF5KDAsaW5wdXRfbGVuKSxpbl9idWYpO1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGN0eC5iOC5zZXQoaW5wdXQuc3ViYXJyYXkoMCxtaXNzaW5nKSxpbl9idWYpO1xuICAgIGNhbWxfTUQ1VHJhbnNmb3JtKGN0eC53LCBjdHguYjMyKTtcbiAgICBpbnB1dF9sZW4gLT0gbWlzc2luZztcbiAgICBpbnB1dF9wb3MgKz0gbWlzc2luZztcbiAgfVxuICB3aGlsZShpbnB1dF9sZW4gPj0gNjQpe1xuICAgIGN0eC5iOC5zZXQoaW5wdXQuc3ViYXJyYXkoaW5wdXRfcG9zLGlucHV0X3BvcyArIDY0KSwgMCk7XG4gICAgY2FtbF9NRDVUcmFuc2Zvcm0oY3R4LncsIGN0eC5iMzIpO1xuICAgIGlucHV0X2xlbiAtPSA2NDtcbiAgICBpbnB1dF9wb3MgKz0gNjQ7XG4gIH1cbiAgaWYoaW5wdXRfbGVuKVxuICAgIGN0eC5iOC5zZXQoaW5wdXQuc3ViYXJyYXkoaW5wdXRfcG9zLGlucHV0X3BvcyArIGlucHV0X2xlbiksIDApO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX01ENUZpbmFsXG4vL1JlcXVpcmVzOiBjYW1sX01ENVRyYW5zZm9ybVxuZnVuY3Rpb24gY2FtbF9NRDVGaW5hbChjdHgpe1xuICB2YXIgaW5fYnVmID0gY3R4LmxlbiAmIDB4M2Y7XG4gIGN0eC5iOFtpbl9idWZdID0gMHg4MDtcbiAgaW5fYnVmICsrO1xuICBpZihpbl9idWYgPiA1Nikge1xuICAgIGZvcih2YXIgaiA9IGluX2J1ZjsgaiA8IDY0OyBqKyspe1xuICAgICAgY3R4LmI4W2pdID0gMDtcbiAgICB9XG4gICAgY2FtbF9NRDVUcmFuc2Zvcm0oY3R4LncsIGN0eC5iMzIpO1xuICAgIGZvcih2YXIgaiA9IDA7IGogPCA1NjsgaisrKXtcbiAgICAgIGN0eC5iOFtqXSA9IDA7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZvcih2YXIgaiA9IGluX2J1ZjsgaiA8IDU2OyBqKyspe1xuICAgICAgY3R4LmI4W2pdID0gMDtcbiAgICB9XG4gIH1cbiAgY3R4LmIzMlsxNF0gPSBjdHgubGVuIDw8IDM7XG4gIGN0eC5iMzJbMTVdID0gKGN0eC5sZW4gPj4gMjkpICYgMHgxRkZGRkZGRjtcbiAgY2FtbF9NRDVUcmFuc2Zvcm0oY3R4LncsIGN0eC5iMzIpO1xuICB2YXIgdCA9IG5ldyBVaW50OEFycmF5KDE2KTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspXG4gICAgZm9yICh2YXIgaiA9IDA7IGogPCA0OyBqKyspXG4gICAgICB0W2kgKiA0ICsgal0gPSAoY3R4LndbaV0gPj4gKDggKiBqKSkgJiAweEZGO1xuICByZXR1cm4gdDtcbn1cblxuXG4vL1Byb3ZpZGVzOiBjYW1sX21kNV9ieXRlc1xuLy9SZXF1aXJlczogY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcywgY2FtbF9zdHJpbmdfb2ZfYXJyYXlcbi8vUmVxdWlyZXM6IGNhbWxfTUQ1SW5pdCwgY2FtbF9NRDVVcGRhdGUsIGNhbWxfTUQ1RmluYWxcbmZ1bmN0aW9uIGNhbWxfbWQ1X2J5dGVzKHMsIG9mcywgbGVuKSB7XG4gIHZhciBjdHggPSBjYW1sX01ENUluaXQoKTtcbiAgdmFyIGEgPSBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzKHMpO1xuICBjYW1sX01ENVVwZGF0ZShjdHgsYS5zdWJhcnJheShvZnMsIG9mcyArIGxlbiksIGxlbik7XG4gIHJldHVybiBjYW1sX3N0cmluZ19vZl9hcnJheShjYW1sX01ENUZpbmFsKGN0eCkpO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDIwIC0gSHVnbyBIZXV6YXJkXG4vLyBDb3B5cmlnaHQgKEMpIDIwMjAgLSBTaGFjaGFyIEl0emhha3lcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9vY2FtbC9vY2FtbC9ibG9iLzQuMDcvb3RoZXJsaWJzL3N0ci9zdHJzdHVicy5jXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vanNjb3EvanNjb3EvYmxvYi92OC4xMS9jb3EtanMvanNfc3R1Yi9zdHIuanNcblxuLy9Qcm92aWRlczogcmVfbWF0Y2hcbi8vUmVxdWlyZXM6IGNhbWxfanNieXRlc19vZl9zdHJpbmcsIGNhbWxfanNfZnJvbV9hcnJheSwgY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfc3RyaW5nX2dldFxuXG52YXIgcmVfbWF0Y2ggPSBmdW5jdGlvbigpe1xuICB2YXIgcmVfd29yZF9sZXR0ZXJzID0gW1xuICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsICAgICAgIC8qIDB4MDAtMHgxRjogbm9uZSAqL1xuICAgIDB4MDAsIDB4MDAsIDB4RkYsIDB4MDMsICAgICAgIC8qIDB4MjAtMHgzRjogZGlnaXRzIDAtOSAqL1xuICAgIDB4RkUsIDB4RkYsIDB4RkYsIDB4ODcsICAgICAgIC8qIDB4NDAtMHg1RjogQSB0byBaLCBfICovXG4gICAgMHhGRSwgMHhGRiwgMHhGRiwgMHgwNywgICAgICAgLyogMHg2MC0weDdGOiBhIHRvIHogKi9cbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweDgwLTB4OUY6IG5vbmUgKi9cbiAgICAweDAwLCAweDAwLCAweDAwLCAweDAwLCAgICAgICAvKiAweEEwLTB4QkY6IG5vbmUgKi9cbiAgICAweEZGLCAweEZGLCAweDdGLCAweEZGLCAgICAgICAvKiAweEMwLTB4REY6IExhdGluLTEgYWNjZW50ZWQgdXBwZXJjYXNlICovXG4gICAgMHhGRiwgMHhGRiwgMHg3RiwgMHhGRiAgICAgICAgLyogMHhFMC0weEZGOiBMYXRpbi0xIGFjY2VudGVkIGxvd2VyY2FzZSAqL1xuICBdO1xuXG4gIHZhciBvcGNvZGVzID0ge1xuICAgIENIQVI6IDAsIENIQVJOT1JNOiAxLCBTVFJJTkc6IDIsIFNUUklOR05PUk06IDMsIENIQVJDTEFTUzogNCxcbiAgICBCT0w6IDUsIEVPTDogNiwgV09SREJPVU5EQVJZOiA3LFxuICAgIEJFR0dST1VQOiA4LCBFTkRHUk9VUDogOSwgUkVGR1JPVVA6IDEwLFxuICAgIEFDQ0VQVDogMTEsXG4gICAgU0lNUExFT1BUOiAxMiwgU0lNUExFU1RBUjogMTMsIFNJTVBMRVBMVVM6IDE0LFxuICAgIEdPVE86IDE1LCBQVVNIQkFDSzogMTYsIFNFVE1BUks6IDE3LFxuICAgIENIRUNLUFJPR1JFU1M6IDE4XG4gIH07XG5cbiAgZnVuY3Rpb24gaXNfd29yZF9sZXR0ZXIoYykge1xuICAgIHJldHVybiAocmVfd29yZF9sZXR0ZXJzWyAgKGMgPj4gMyldID4+IChjICYgNykpICYgMTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluX2JpdHNldChzLGkpIHtcbiAgICByZXR1cm4gKGNhbWxfc3RyaW5nX2dldChzLChpID4+IDMpKSA+PiAoaSAmIDcpKSAmIDE7XG4gIH1cblxuICBmdW5jdGlvbiByZV9tYXRjaF9pbXBsKHJlLCBzLCBwb3MsIHBhcnRpYWwpIHtcblxuICAgIHZhciBwcm9nICAgICAgICAgID0gY2FtbF9qc19mcm9tX2FycmF5KHJlWzFdKSxcbiAgICAgICAgY3Bvb2wgICAgICAgICA9IGNhbWxfanNfZnJvbV9hcnJheShyZVsyXSksXG4gICAgICAgIG5vcm10YWJsZSAgICAgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHJlWzNdKSxcbiAgICAgICAgbnVtZ3JvdXBzICAgICA9IHJlWzRdIHwgMCxcbiAgICAgICAgbnVtcmVnaXN0ZXJzICA9IHJlWzVdIHwgMCxcbiAgICAgICAgc3RhcnRjaGFycyAgICA9IHJlWzZdIHwgMDtcblxuICAgIHZhciBzID0gY2FtbF91aW50OF9hcnJheV9vZl9zdHJpbmcocyk7XG5cbiAgICB2YXIgcGMgPSAwLFxuICAgICAgICBxdWl0ID0gZmFsc2UsXG4gICAgICAgIHN0YWNrID0gW10sXG4gICAgICAgIGdyb3VwcyA9IG5ldyBBcnJheShudW1ncm91cHMpLFxuICAgICAgICByZV9yZWdpc3RlciA9IG5ldyBBcnJheShudW1yZWdpc3RlcnMpO1xuXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkrKyl7XG4gICAgICBncm91cHNbaV0gPSB7c3RhcnQ6IC0xLCBlbmQ6LTF9XG4gICAgfVxuICAgIGdyb3Vwc1swXS5zdGFydCA9IHBvcztcblxuICAgIHZhciBiYWNrdHJhY2sgPSBmdW5jdGlvbiAoKSB7XG4gICAgICB3aGlsZSAoc3RhY2subGVuZ3RoKSB7XG4gICAgICAgIHZhciBpdGVtID0gc3RhY2sucG9wKCk7XG4gICAgICAgIGlmIChpdGVtLnVuZG8pIHtcbiAgICAgICAgICBpdGVtLnVuZG8ub2JqW2l0ZW0udW5kby5wcm9wXSA9IGl0ZW0udW5kby52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmKGl0ZW0ucG9zKSB7XG4gICAgICAgICAgcGMgPSBpdGVtLnBvcy5wYztcbiAgICAgICAgICBwb3MgPSBpdGVtLnBvcy50eHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBxdWl0ID0gdHJ1ZTtcbiAgICB9O1xuXG4gICAgdmFyIHB1c2ggPSBmdW5jdGlvbihpdGVtKSB7IHN0YWNrLnB1c2goaXRlbSk7IH07XG5cbiAgICB2YXIgYWNjZXB0ID0gZnVuY3Rpb24gKCkge1xuICAgICAgZ3JvdXBzWzBdLmVuZCA9IHBvcztcbiAgICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkoMSArIGdyb3Vwcy5sZW5ndGgqMik7XG4gICAgICByZXN1bHRbMF0gPSAwOyAvLyB0YWdcbiAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpKyspe1xuICAgICAgICB2YXIgZyA9IGdyb3Vwc1tpXTtcbiAgICAgICAgaWYoZy5zdGFydCA8IDAgfHwgZy5lbmQgPCAwKSB7XG4gICAgICAgICAgZy5zdGFydCA9IGcuZW5kID0gLTE7XG4gICAgICAgIH1cbiAgICAgICAgcmVzdWx0WzIqaSArIDEgXSA9IGcuc3RhcnQ7XG4gICAgICAgIHJlc3VsdFsyKmkgKyAxICsgMSBdID0gZy5lbmQ7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIH07XG5cbiAgICB2YXIgcHJlZml4X21hdGNoID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYocGFydGlhbCkgcmV0dXJuIGFjY2VwdCAoKTtcbiAgICAgIGVsc2UgYmFja3RyYWNrICgpO1xuICAgIH1cblxuICAgIC8qIE1haW4gREZBIGludGVycHJldGVyIGxvb3AgKi9cbiAgICB3aGlsZSAoIXF1aXQpIHtcbiAgICAgIHZhciBvcCA9IHByb2dbcGNdICYgMHhmZixcbiAgICAgICAgICBzYXJnID0gcHJvZ1twY10gPj4gOCxcbiAgICAgICAgICB1YXJnID0gc2FyZyAmIDB4ZmYsXG4gICAgICAgICAgYyA9IHNbcG9zXSxcbiAgICAgICAgICBncm91cDtcblxuICAgICAgcGMrKztcblxuICAgICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSBvcGNvZGVzLkNIQVI6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGMgPT09IHVhcmcpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSTk9STTpcbiAgICAgICAgaWYocG9zID09PSBzLmxlbmd0aCkge3ByZWZpeF9tYXRjaCAoKTsgYnJlYWt9O1xuICAgICAgICBpZiAobm9ybXRhYmxlLmNoYXJDb2RlQXQoYykgPT09IHVhcmcpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TVFJJTkc6XG4gICAgICAgIGZvciAodmFyIGFyZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoY3Bvb2xbdWFyZ10pLCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZiAoYyA9PT0gYXJnLmNoYXJDb2RlQXQoaSkpXG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgZWxzZSB7IGJhY2t0cmFjaygpOyBicmVhazsgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNUUklOR05PUk06XG4gICAgICAgIGZvciAodmFyIGFyZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcoY3Bvb2xbdWFyZ10pLCBpID0gMDsgaSA8IGFyZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgICBpZiAobm9ybXRhYmxlLmNoYXJDb2RlQXQoYykgPT09IGFyZy5jaGFyQ29kZUF0KGkpKVxuICAgICAgICAgICAgYyA9IHNbKytwb3NdO1xuICAgICAgICAgIGVsc2UgeyBiYWNrdHJhY2soKTsgYnJlYWs7IH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEFSQ0xBU1M6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHBvcysrO1xuICAgICAgICBlbHNlIGJhY2t0cmFjaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5CT0w6XG4gICAgICAgIGlmKHBvcyA+IDAgJiYgc1twb3MgLSAxXSAhPSAxMCAvKiBcXG4gKi8pIHtiYWNrdHJhY2soKX1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuRU9MOlxuICAgICAgICBpZihwb3MgPCBzLmxlbmd0aCAmJiBzW3Bvc10gIT0gMTAgLyogXFxuICovKSB7YmFja3RyYWNrKCl9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLldPUkRCT1VOREFSWTpcbiAgICAgICAgaWYocG9zID09IDApIHtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYoaXNfd29yZF9sZXR0ZXIoc1swXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjaygpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBvcyA9PT0gcy5sZW5ndGgpIHtcbiAgICAgICAgICBpZihpc193b3JkX2xldHRlcihzW3BvcyAtIDFdKSkgYnJlYWs7XG4gICAgICAgICAgYmFja3RyYWNrICgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmKGlzX3dvcmRfbGV0dGVyKHNbcG9zIC0gMV0pICE9IGlzX3dvcmRfbGV0dGVyKHNbcG9zXSkpIGJyZWFrO1xuICAgICAgICAgIGJhY2t0cmFjayAoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5CRUdHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6Z3JvdXAsXG4gICAgICAgICAgICAgICAgICAgICBwcm9wOidzdGFydCcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZ3JvdXAuc3RhcnR9fSk7XG4gICAgICAgIGdyb3VwLnN0YXJ0ID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5FTkRHUk9VUDpcbiAgICAgICAgZ3JvdXAgPSBncm91cHNbdWFyZ107XG4gICAgICAgIHB1c2goe3VuZG86IHtvYmo6IGdyb3VwLFxuICAgICAgICAgICAgICAgICAgICAgcHJvcDonZW5kJyxcbiAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBncm91cC5lbmR9fSk7XG4gICAgICAgIGdyb3VwLmVuZCA9IHBvcztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuUkVGR1JPVVA6XG4gICAgICAgIGdyb3VwID0gZ3JvdXBzW3VhcmddO1xuICAgICAgICBpZihncm91cC5zdGFydCA8IDAgfHwgZ3JvdXAuZW5kIDwgMCkge2JhY2t0cmFjayAoKTsgYnJlYWt9XG4gICAgICAgIGZvciAodmFyIGkgPSBncm91cC5zdGFydDsgaSA8IGdyb3VwLmVuZDsgaSsrKXtcbiAgICAgICAgICBpZihwb3MgPT09IHMubGVuZ3RoKSB7cHJlZml4X21hdGNoICgpOyBicmVha307XG4gICAgICAgICAgaWYoc1tpXSAhPSBzW3Bvc10pIHtiYWNrdHJhY2sgKCk7IGJyZWFrfVxuICAgICAgICAgIHBvcysrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRU9QVDpcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHBvcysrO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5TSU1QTEVTVEFSOlxuICAgICAgICB3aGlsZSAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSlcbiAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlNJTVBMRVBMVVM6XG4gICAgICAgIGlmKHBvcyA9PT0gcy5sZW5ndGgpIHtwcmVmaXhfbWF0Y2ggKCk7IGJyZWFrfTtcbiAgICAgICAgaWYgKGluX2JpdHNldChjcG9vbFt1YXJnXSwgYykpIHtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBjID0gc1srK3Bvc107XG4gICAgICAgICAgfSB3aGlsZSAoaW5fYml0c2V0KGNwb29sW3VhcmddLCBjKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBiYWNrdHJhY2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuQUNDRVBUOlxuICAgICAgICByZXR1cm4gYWNjZXB0KCk7XG4gICAgICBjYXNlIG9wY29kZXMuR09UTzpcbiAgICAgICAgcGMgPSBwYyArIHNhcmc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBvcGNvZGVzLlBVU0hCQUNLOlxuICAgICAgICBwdXNoKHtwb3M6IHtwYzogcGMgKyBzYXJnLCB0eHQ6IHBvc319KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIG9wY29kZXMuU0VUTUFSSzpcbiAgICAgICAgcHVzaCh7dW5kbzoge29iajpyZV9yZWdpc3RlcixcbiAgICAgICAgICAgICAgICAgICAgIHByb3A6IHVhcmcsXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcmVfcmVnaXN0ZXJbdWFyZ119fSk7XG4gICAgICAgIHJlX3JlZ2lzdGVyW3VhcmddID0gcG9zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2Ugb3Bjb2Rlcy5DSEVDS1BST0dSRVNTOlxuICAgICAgICBpZiAocmVfcmVnaXN0ZXJbdWFyZ10gPT09IHBvcykgYmFja3RyYWNrKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBieXRlY29kZVwiKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gcmVfbWF0Y2hfaW1wbDtcbn0oKTtcblxuXG4vL1Byb3ZpZGVzOiByZV9zZWFyY2hfZm9yd2FyZFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zZWFyY2hfZm9yd2FyZChyZSwgcywgcG9zKSB7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zZWFyY2hfZm9yd2FyZFwiKVxuICB3aGlsZSAocG9zIDw9IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSkge1xuICAgIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgICBpZiAocmVzKSByZXR1cm4gcmVzO1xuICAgIHBvcysrO1xuICB9XG5cbiAgcmV0dXJuIFswXTsgIC8qIFt8fF0gOiBpbnQgYXJyYXkgKi9cbn1cblxuLy9Qcm92aWRlczogcmVfc2VhcmNoX2JhY2t3YXJkXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3NlYXJjaF9iYWNrd2FyZChyZSwgcywgcG9zKSB7XG4gIGlmKHBvcyA8IDAgfHwgcG9zID4gY2FtbF9tbF9zdHJpbmdfbGVuZ3RoKHMpKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudChcIlN0ci5zZWFyY2hfYmFja3dhcmRcIilcbiAgd2hpbGUgKHBvcyA+PSAwKSB7XG4gICAgdmFyIHJlcyA9IHJlX21hdGNoKHJlLCBzLCBwb3MsIDApO1xuICAgIGlmIChyZXMpIHJldHVybiByZXM7XG4gICAgcG9zLS07XG4gIH1cblxuICByZXR1cm4gWzBdOyAgLyogW3x8XSA6IGludCBhcnJheSAqL1xufVxuXG5cbi8vUHJvdmlkZXM6IHJlX3N0cmluZ19tYXRjaFxuLy9SZXF1aXJlczogcmVfbWF0Y2gsIGNhbWxfbWxfc3RyaW5nX2xlbmd0aCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG5mdW5jdGlvbiByZV9zdHJpbmdfbWF0Y2gocmUscyxwb3Mpe1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIuc3RyaW5nX21hdGNoXCIpXG4gIHZhciByZXMgPSByZV9tYXRjaChyZSwgcywgcG9zLCAwKTtcbiAgaWYgKHJlcykgcmV0dXJuIHJlcztcbiAgZWxzZSByZXR1cm4gWzBdO1xufVxuXG4vL1Byb3ZpZGVzOiByZV9wYXJ0aWFsX21hdGNoXG4vL1JlcXVpcmVzOiByZV9tYXRjaCwgY2FtbF9tbF9zdHJpbmdfbGVuZ3RoLCBjYW1sX2ludmFsaWRfYXJndW1lbnRcbmZ1bmN0aW9uIHJlX3BhcnRpYWxfbWF0Y2gocmUscyxwb3Mpe1xuICBpZihwb3MgPCAwIHx8IHBvcyA+IGNhbWxfbWxfc3RyaW5nX2xlbmd0aChzKSlcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQoXCJTdHIucGFydGlhbF9tYXRjaFwiKVxuICB2YXIgcmVzID0gcmVfbWF0Y2gocmUsIHMsIHBvcywgMSk7XG4gIGlmIChyZXMpIHJldHVybiByZXM7XG4gIGVsc2UgcmV0dXJuIFswXTtcbn1cblxuLy9Qcm92aWRlczogcmVfcmVwbGFjZW1lbnRfdGV4dFxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF9zdHJpbmdfb2ZfanNieXRlc1xuLy9SZXF1aXJlczogY2FtbF9hcnJheV9nZXRcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbi8vIGV4dGVybmFsIHJlX3JlcGxhY2VtZW50X3RleHQ6IHN0cmluZyAtPiBpbnQgYXJyYXkgLT4gc3RyaW5nIC0+IHN0cmluZ1xuZnVuY3Rpb24gcmVfcmVwbGFjZW1lbnRfdGV4dChyZXBsLGdyb3VwcyxvcmlnKSB7XG4gIHZhciByZXBsID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyhyZXBsKTtcbiAgdmFyIGxlbiA9IHJlcGwubGVuZ3RoO1xuICB2YXIgb3JpZyA9IGNhbWxfanNieXRlc19vZl9zdHJpbmcob3JpZyk7XG4gIHZhciByZXMgPSBcIlwiOyAvL3Jlc3VsdFxuICB2YXIgbiA9IDA7IC8vIGN1cnJlbnQgcG9zaXRpb25cbiAgdmFyIGN1cjsgLy9jdXJyZW50IGNoYXJcbiAgdmFyIHN0YXJ0LCBlbmQsIGM7XG4gIHdoaWxlKG4gPCBsZW4pe1xuICAgIGN1ciA9IHJlcGwuY2hhckF0KG4rKyk7XG4gICAgaWYoY3VyICE9ICdcXFxcJyl7XG4gICAgICByZXMgKz0gY3VyO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmKG4gPT0gbGVuKSBjYW1sX2ZhaWx3aXRoKFwiU3RyLnJlcGxhY2U6IGlsbGVnYWwgYmFja3NsYXNoIHNlcXVlbmNlXCIpO1xuICAgICAgY3VyID0gcmVwbC5jaGFyQXQobisrKTtcbiAgICAgIHN3aXRjaChjdXIpe1xuICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgIHJlcyArPSBjdXI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnMCc6IGNhc2UgJzEnOiBjYXNlICcyJzogY2FzZSAnMyc6IGNhc2UgJzQnOlxuICAgICAgY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNlICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOlxuICAgICAgICBjID0gK2N1cjtcbiAgICAgICAgaWYgKGMqMiA+PSBncm91cHMubGVuZ3RoIC0gMSApXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiByZWZlcmVuY2UgdG8gdW5tYXRjaGVkIGdyb3VwXCIgKTtcbiAgICAgICAgc3RhcnQgPSBjYW1sX2FycmF5X2dldChncm91cHMsYyoyKTtcbiAgICAgICAgZW5kID0gY2FtbF9hcnJheV9nZXQoZ3JvdXBzLCBjKjIgKzEpO1xuICAgICAgICBpZiAoc3RhcnQgPT0gLTEpXG4gICAgICAgICAgY2FtbF9mYWlsd2l0aChcIlN0ci5yZXBsYWNlOiByZWZlcmVuY2UgdG8gdW5tYXRjaGVkIGdyb3VwXCIpO1xuICAgICAgICByZXMrPW9yaWcuc2xpY2Uoc3RhcnQsZW5kKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXMgKz0gKCdcXFxcJyAgKyBjdXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2FtbF9zdHJpbmdfb2ZfanNieXRlcyhyZXMpOyB9XG5cblxuLy9Qcm92aWRlczogY2FtbF9zdHJfaW5pdGlhbGl6ZVxuZnVuY3Rpb24gY2FtbF9zdHJfaW5pdGlhbGl6ZSh1bml0KSB7XG4gIHJldHVybiAwO1xufVxuIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3RpdmUgQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAqL1xuLyogIGVuIEF1dG9tYXRpcXVlLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCAgICAqL1xuLyogIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB3aXRoICAgICAqL1xuLyogIHRoZSBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIC4uL0xJQ0VOU0UuICAgICAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKiAkSWQ6IGxleGluZy5jIDYwNDUgMjAwNC0wMS0wMSAxNjo0Mjo0M1ogZG9saWdleiAkICovXG5cbi8qIFRoZSB0YWJsZS1kcml2ZW4gYXV0b21hdG9uIGZvciBsZXhlcnMgZ2VuZXJhdGVkIGJ5IGNhbWxsZXguICovXG5cbi8vUHJvdmlkZXM6IGNhbWxfbGV4X2FycmF5XG4vL1JlcXVpcmVzOiBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXG5mdW5jdGlvbiBjYW1sX2xleF9hcnJheShzKSB7XG4gIHMgPSBjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nKHMpO1xuICB2YXIgbCA9IHMubGVuZ3RoIC8gMjtcbiAgdmFyIGEgPSBuZXcgQXJyYXkobCk7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbDsgaSsrKVxuICAgIGFbaV0gPSAocy5jaGFyQ29kZUF0KDIgKiBpKSB8IChzLmNoYXJDb2RlQXQoMiAqIGkgKyAxKSA8PCA4KSkgPDwgMTYgPj4gMTY7XG4gIHJldHVybiBhO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2xleF9lbmdpbmVcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGgsIGNhbWxfbGV4X2FycmF5LCBjYW1sX3VpbnQ4X2FycmF5X29mX2J5dGVzXG5mdW5jdGlvbiBjYW1sX2xleF9lbmdpbmUodGJsLCBzdGFydF9zdGF0ZSwgbGV4YnVmKSB7XG4gIHZhciBsZXhfYnVmZmVyID0gMjtcbiAgdmFyIGxleF9idWZmZXJfbGVuID0gMztcbiAgdmFyIGxleF9zdGFydF9wb3MgPSA1O1xuICB2YXIgbGV4X2N1cnJfcG9zID0gNjtcbiAgdmFyIGxleF9sYXN0X3BvcyA9IDc7XG4gIHZhciBsZXhfbGFzdF9hY3Rpb24gPSA4O1xuICB2YXIgbGV4X2VvZl9yZWFjaGVkID0gOTtcbiAgdmFyIGxleF9iYXNlID0gMTtcbiAgdmFyIGxleF9iYWNrdHJrID0gMjtcbiAgdmFyIGxleF9kZWZhdWx0ID0gMztcbiAgdmFyIGxleF90cmFucyA9IDQ7XG4gIHZhciBsZXhfY2hlY2sgPSA1O1xuXG4gIGlmICghdGJsLmxleF9kZWZhdWx0KSB7XG4gICAgdGJsLmxleF9iYXNlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV0pO1xuICAgIHRibC5sZXhfYmFja3RyayA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2JhY2t0cmtdKTtcbiAgICB0YmwubGV4X2NoZWNrID0gICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9jaGVja10pO1xuICAgIHRibC5sZXhfdHJhbnMgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zXSk7XG4gICAgdGJsLmxleF9kZWZhdWx0ID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfZGVmYXVsdF0pO1xuICB9XG5cbiAgdmFyIGMsIHN0YXRlID0gc3RhcnRfc3RhdGU7XG5cbiAgdmFyIGJ1ZmZlciA9IGNhbWxfdWludDhfYXJyYXlfb2ZfYnl0ZXMobGV4YnVmW2xleF9idWZmZXJdKTtcblxuICBpZiAoc3RhdGUgPj0gMCkge1xuICAgIC8qIEZpcnN0IGVudHJ5ICovXG4gICAgbGV4YnVmW2xleF9sYXN0X3Bvc10gPSBsZXhidWZbbGV4X3N0YXJ0X3Bvc10gPSBsZXhidWZbbGV4X2N1cnJfcG9zXTtcbiAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IC0xO1xuICB9IGVsc2Uge1xuICAgIC8qIFJlZW50cnkgYWZ0ZXIgcmVmaWxsICovXG4gICAgc3RhdGUgPSAtc3RhdGUgLSAxO1xuICB9XG4gIGZvcig7Oykge1xuICAgIC8qIExvb2t1cCBiYXNlIGFkZHJlc3Mgb3IgYWN0aW9uIG51bWJlciBmb3IgY3VycmVudCBzdGF0ZSAqL1xuICAgIHZhciBiYXNlID0gdGJsLmxleF9iYXNlW3N0YXRlXTtcbiAgICBpZiAoYmFzZSA8IDApIHJldHVybiAtYmFzZS0xO1xuICAgIC8qIFNlZSBpZiBpdCdzIGEgYmFja3RyYWNrIHBvaW50ICovXG4gICAgdmFyIGJhY2t0cmsgPSB0YmwubGV4X2JhY2t0cmtbc3RhdGVdO1xuICAgIGlmIChiYWNrdHJrID49IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfbGFzdF9wb3NdID0gbGV4YnVmW2xleF9jdXJyX3Bvc107XG4gICAgICBsZXhidWZbbGV4X2xhc3RfYWN0aW9uXSA9IGJhY2t0cms7XG4gICAgfVxuICAgIC8qIFNlZSBpZiB3ZSBuZWVkIGEgcmVmaWxsICovXG4gICAgaWYgKGxleGJ1ZltsZXhfY3Vycl9wb3NdID49IGxleGJ1ZltsZXhfYnVmZmVyX2xlbl0pe1xuICAgICAgaWYgKGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID09IDApXG4gICAgICAgIHJldHVybiAtc3RhdGUgLSAxO1xuICAgICAgZWxzZVxuICAgICAgICBjID0gMjU2O1xuICAgIH1lbHNle1xuICAgICAgLyogUmVhZCBuZXh0IGlucHV0IGNoYXIgKi9cbiAgICAgIGMgPSBidWZmZXJbbGV4YnVmW2xleF9jdXJyX3Bvc11dO1xuICAgICAgbGV4YnVmW2xleF9jdXJyX3Bvc10gKys7XG4gICAgfVxuICAgIC8qIERldGVybWluZSBuZXh0IHN0YXRlICovXG4gICAgaWYgKHRibC5sZXhfY2hlY2tbYmFzZSArIGNdID09IHN0YXRlKVxuICAgICAgc3RhdGUgPSB0YmwubGV4X3RyYW5zW2Jhc2UgKyBjXTtcbiAgICBlbHNlXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfZGVmYXVsdFtzdGF0ZV07XG4gICAgLyogSWYgbm8gdHJhbnNpdGlvbiBvbiB0aGlzIGNoYXIsIHJldHVybiB0byBsYXN0IGJhY2t0cmFjayBwb2ludCAqL1xuICAgIGlmIChzdGF0ZSA8IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdID0gbGV4YnVmW2xleF9sYXN0X3Bvc107XG4gICAgICBpZiAobGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPT0gLTEpXG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJsZXhpbmc6IGVtcHR5IHRva2VuXCIpO1xuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gbGV4YnVmW2xleF9sYXN0X2FjdGlvbl07XG4gICAgfWVsc2V7XG4gICAgICAvKiBFcmFzZSB0aGUgRU9GIGNvbmRpdGlvbiBvbmx5IGlmIHRoZSBFT0YgcHNldWRvLWNoYXJhY3RlciB3YXNcbiAgICAgICAgIGNvbnN1bWVkIGJ5IHRoZSBhdXRvbWF0b24gKGkuZS4gdGhlcmUgd2FzIG5vIGJhY2t0cmFjayBhYm92ZSlcbiAgICAgICovXG4gICAgICBpZiAoYyA9PSAyNTYpIGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID0gMDtcbiAgICB9XG4gIH1cbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyogTmV3IGxleGVyIGVuZ2luZSwgd2l0aCBtZW1vcnkgb2YgcG9zaXRpb25zICAqL1xuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vL1Byb3ZpZGVzOiBjYW1sX25ld19sZXhfZW5naW5lXG4vL1JlcXVpcmVzOiBjYW1sX2ZhaWx3aXRoLCBjYW1sX2xleF9hcnJheVxuLy9SZXF1aXJlczogY2FtbF9qc2J5dGVzX29mX3N0cmluZywgY2FtbF91aW50OF9hcnJheV9vZl9ieXRlc1xuZnVuY3Rpb24gY2FtbF9sZXhfcnVuX21lbShzLCBpLCBtZW0sIGN1cnJfcG9zKSB7XG4gIGZvciAoOzspIHtcbiAgICB2YXIgZHN0ID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKGRzdCA9PSAweGZmKSByZXR1cm47XG4gICAgdmFyIHNyYyA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChzcmMgPT0gMHhmZilcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBjdXJyX3BvcztcbiAgICBlbHNlXG4gICAgICBtZW0gW2RzdCArIDFdID0gbWVtIFtzcmMgKyAxXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYW1sX2xleF9ydW5fdGFnKHMsIGksIG1lbSkge1xuICBmb3IgKDs7KSB7XG4gICAgdmFyIGRzdCA9IHMuY2hhckNvZGVBdChpKTsgaSsrO1xuICAgIGlmIChkc3QgPT0gMHhmZikgcmV0dXJuIDtcbiAgICB2YXIgc3JjID0gcy5jaGFyQ29kZUF0KGkpOyBpKys7XG4gICAgaWYgKHNyYyA9PSAweGZmKVxuICAgICAgbWVtIFtkc3QgKyAxXSA9IC0xO1xuICAgIGVsc2VcbiAgICAgIG1lbSBbZHN0ICsgMV0gPSBtZW0gW3NyYyArIDFdO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbWxfbmV3X2xleF9lbmdpbmUodGJsLCBzdGFydF9zdGF0ZSwgbGV4YnVmKSB7XG4gIHZhciBsZXhfYnVmZmVyID0gMjtcbiAgdmFyIGxleF9idWZmZXJfbGVuID0gMztcbiAgdmFyIGxleF9zdGFydF9wb3MgPSA1O1xuICB2YXIgbGV4X2N1cnJfcG9zID0gNjtcbiAgdmFyIGxleF9sYXN0X3BvcyA9IDc7XG4gIHZhciBsZXhfbGFzdF9hY3Rpb24gPSA4O1xuICB2YXIgbGV4X2VvZl9yZWFjaGVkID0gOTtcbiAgdmFyIGxleF9tZW0gPSAxMDtcbiAgdmFyIGxleF9iYXNlID0gMTtcbiAgdmFyIGxleF9iYWNrdHJrID0gMjtcbiAgdmFyIGxleF9kZWZhdWx0ID0gMztcbiAgdmFyIGxleF90cmFucyA9IDQ7XG4gIHZhciBsZXhfY2hlY2sgPSA1O1xuICB2YXIgbGV4X2Jhc2VfY29kZSA9IDY7XG4gIHZhciBsZXhfYmFja3Rya19jb2RlID0gNztcbiAgdmFyIGxleF9kZWZhdWx0X2NvZGUgPSA4O1xuICB2YXIgbGV4X3RyYW5zX2NvZGUgPSA5O1xuICB2YXIgbGV4X2NoZWNrX2NvZGUgPSAxMDtcbiAgdmFyIGxleF9jb2RlID0gMTE7XG5cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHQpIHtcbiAgICB0YmwubGV4X2Jhc2UgPSAgICBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYXNlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrID0gY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFja3Rya10pO1xuICAgIHRibC5sZXhfY2hlY2sgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrXSk7XG4gICAgdGJsLmxleF90cmFucyA9ICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfdHJhbnNdKTtcbiAgICB0YmwubGV4X2RlZmF1bHQgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9kZWZhdWx0XSk7XG4gIH1cbiAgaWYgKCF0YmwubGV4X2RlZmF1bHRfY29kZSkge1xuICAgIHRibC5sZXhfYmFzZV9jb2RlID0gICAgY2FtbF9sZXhfYXJyYXkgKHRibFtsZXhfYmFzZV9jb2RlXSk7XG4gICAgdGJsLmxleF9iYWNrdHJrX2NvZGUgPSBjYW1sX2xleF9hcnJheSAodGJsW2xleF9iYWNrdHJrX2NvZGVdKTtcbiAgICB0YmwubGV4X2NoZWNrX2NvZGUgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2NoZWNrX2NvZGVdKTtcbiAgICB0YmwubGV4X3RyYW5zX2NvZGUgPSAgIGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X3RyYW5zX2NvZGVdKTtcbiAgICB0YmwubGV4X2RlZmF1bHRfY29kZSA9IGNhbWxfbGV4X2FycmF5ICh0YmxbbGV4X2RlZmF1bHRfY29kZV0pO1xuICB9XG4gIGlmICh0YmwubGV4X2NvZGUgPT0gbnVsbCkgdGJsLmxleF9jb2RlID0gY2FtbF9qc2J5dGVzX29mX3N0cmluZyh0YmxbbGV4X2NvZGVdKTtcblxuICB2YXIgYywgc3RhdGUgPSBzdGFydF9zdGF0ZTtcblxuICB2YXIgYnVmZmVyID0gY2FtbF91aW50OF9hcnJheV9vZl9ieXRlcyhsZXhidWZbbGV4X2J1ZmZlcl0pO1xuXG4gIGlmIChzdGF0ZSA+PSAwKSB7XG4gICAgLyogRmlyc3QgZW50cnkgKi9cbiAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfc3RhcnRfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgIGxleGJ1ZltsZXhfbGFzdF9hY3Rpb25dID0gLTE7XG4gIH0gZWxzZSB7XG4gICAgLyogUmVlbnRyeSBhZnRlciByZWZpbGwgKi9cbiAgICBzdGF0ZSA9IC1zdGF0ZSAtIDE7XG4gIH1cbiAgZm9yKDs7KSB7XG4gICAgLyogTG9va3VwIGJhc2UgYWRkcmVzcyBvciBhY3Rpb24gbnVtYmVyIGZvciBjdXJyZW50IHN0YXRlICovXG4gICAgdmFyIGJhc2UgPSB0YmwubGV4X2Jhc2Vbc3RhdGVdO1xuICAgIGlmIChiYXNlIDwgMCkge1xuICAgICAgdmFyIHBjX29mZiA9IHRibC5sZXhfYmFzZV9jb2RlW3N0YXRlXTtcbiAgICAgIGNhbWxfbGV4X3J1bl90YWcodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSk7XG4gICAgICByZXR1cm4gLWJhc2UtMTtcbiAgICB9XG4gICAgLyogU2VlIGlmIGl0J3MgYSBiYWNrdHJhY2sgcG9pbnQgKi9cbiAgICB2YXIgYmFja3RyayA9IHRibC5sZXhfYmFja3Rya1tzdGF0ZV07XG4gICAgaWYgKGJhY2t0cmsgPj0gMCkge1xuICAgICAgdmFyIHBjX29mZiA9IHRibC5sZXhfYmFja3Rya19jb2RlW3N0YXRlXTtcbiAgICAgIGNhbWxfbGV4X3J1bl90YWcodGJsLmxleF9jb2RlLCBwY19vZmYsIGxleGJ1ZltsZXhfbWVtXSk7XG4gICAgICBsZXhidWZbbGV4X2xhc3RfcG9zXSA9IGxleGJ1ZltsZXhfY3Vycl9wb3NdO1xuICAgICAgbGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPSBiYWNrdHJrO1xuICAgIH1cbiAgICAvKiBTZWUgaWYgd2UgbmVlZCBhIHJlZmlsbCAqL1xuICAgIGlmIChsZXhidWZbbGV4X2N1cnJfcG9zXSA+PSBsZXhidWZbbGV4X2J1ZmZlcl9sZW5dKXtcbiAgICAgIGlmIChsZXhidWZbbGV4X2VvZl9yZWFjaGVkXSA9PSAwKVxuICAgICAgICByZXR1cm4gLXN0YXRlIC0gMTtcbiAgICAgIGVsc2VcbiAgICAgICAgYyA9IDI1NjtcbiAgICB9ZWxzZXtcbiAgICAgIC8qIFJlYWQgbmV4dCBpbnB1dCBjaGFyICovXG4gICAgICBjID0gYnVmZmVyW2xleGJ1ZltsZXhfY3Vycl9wb3NdXTtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdICsrO1xuICAgIH1cbiAgICAvKiBEZXRlcm1pbmUgbmV4dCBzdGF0ZSAqL1xuICAgIHZhciBwc3RhdGUgPSBzdGF0ZSA7XG4gICAgaWYgKHRibC5sZXhfY2hlY2tbYmFzZSArIGNdID09IHN0YXRlKVxuICAgICAgc3RhdGUgPSB0YmwubGV4X3RyYW5zW2Jhc2UgKyBjXTtcbiAgICBlbHNlXG4gICAgICBzdGF0ZSA9IHRibC5sZXhfZGVmYXVsdFtzdGF0ZV07XG4gICAgLyogSWYgbm8gdHJhbnNpdGlvbiBvbiB0aGlzIGNoYXIsIHJldHVybiB0byBsYXN0IGJhY2t0cmFjayBwb2ludCAqL1xuICAgIGlmIChzdGF0ZSA8IDApIHtcbiAgICAgIGxleGJ1ZltsZXhfY3Vycl9wb3NdID0gbGV4YnVmW2xleF9sYXN0X3Bvc107XG4gICAgICBpZiAobGV4YnVmW2xleF9sYXN0X2FjdGlvbl0gPT0gLTEpXG4gICAgICAgIGNhbWxfZmFpbHdpdGgoXCJsZXhpbmc6IGVtcHR5IHRva2VuXCIpO1xuICAgICAgZWxzZVxuICAgICAgICByZXR1cm4gbGV4YnVmW2xleF9sYXN0X2FjdGlvbl07XG4gICAgfWVsc2V7XG4gICAgICAvKiBJZiBzb21lIHRyYW5zaXRpb24sIGdldCBhbmQgcGVyZm9ybSBtZW1vcnkgbW92ZXMgKi9cbiAgICAgIHZhciBiYXNlX2NvZGUgPSB0YmwubGV4X2Jhc2VfY29kZVtwc3RhdGVdLCBwY19vZmY7XG4gICAgICBpZiAodGJsLmxleF9jaGVja19jb2RlW2Jhc2VfY29kZSArIGNdID09IHBzdGF0ZSlcbiAgICAgICAgcGNfb2ZmID0gdGJsLmxleF90cmFuc19jb2RlW2Jhc2VfY29kZSArIGNdO1xuICAgICAgZWxzZVxuICAgICAgICBwY19vZmYgPSB0YmwubGV4X2RlZmF1bHRfY29kZVtwc3RhdGVdO1xuICAgICAgaWYgKHBjX29mZiA+IDApXG4gICAgICAgIGNhbWxfbGV4X3J1bl9tZW1cbiAgICAgICh0YmwubGV4X2NvZGUsIHBjX29mZiwgbGV4YnVmW2xleF9tZW1dLCBsZXhidWZbbGV4X2N1cnJfcG9zXSk7XG4gICAgICAvKiBFcmFzZSB0aGUgRU9GIGNvbmRpdGlvbiBvbmx5IGlmIHRoZSBFT0YgcHNldWRvLWNoYXJhY3RlciB3YXNcbiAgICAgICAgIGNvbnN1bWVkIGJ5IHRoZSBhdXRvbWF0b24gKGkuZS4gdGhlcmUgd2FzIG5vIGJhY2t0cmFjayBhYm92ZSlcbiAgICAgICovXG4gICAgICBpZiAoYyA9PSAyNTYpIGxleGJ1ZltsZXhfZW9mX3JlYWNoZWRdID0gMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEpzX29mX29jYW1sIHJ1bnRpbWUgc3VwcG9ydFxuLy8gaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vLy8vLy8vLy8vLy8gQXJyYXlcblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9zdWIgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9zdWIgKGEsIGksIGxlbikge1xuICB2YXIgYTIgPSBuZXcgQXJyYXkobGVuKzEpO1xuICBhMlswXT0wO1xuICBmb3IodmFyIGkyID0gMSwgaTE9IGkrMTsgaTIgPD0gbGVuOyBpMisrLGkxKysgKXtcbiAgICBhMltpMl09YVtpMV07XG4gIH1cbiAgcmV0dXJuIGEyO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2FwcGVuZCBtdXRhYmxlXG5mdW5jdGlvbiBjYW1sX2FycmF5X2FwcGVuZChhMSwgYTIpIHtcbiAgdmFyIGwxID0gYTEubGVuZ3RoLCBsMiA9IGEyLmxlbmd0aDtcbiAgdmFyIGwgPSBsMStsMi0xXG4gIHZhciBhID0gbmV3IEFycmF5KGwpO1xuICBhWzBdID0gMDtcbiAgdmFyIGkgPSAxLGogPSAxO1xuICBmb3IoO2k8bDE7aSsrKSBhW2ldPWExW2ldO1xuICBmb3IoO2k8bDtpKyssaisrKSBhW2ldPWEyW2pdO1xuICByZXR1cm4gYTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9jb25jYXQgbXV0YWJsZVxuZnVuY3Rpb24gY2FtbF9hcnJheV9jb25jYXQobCkge1xuICB2YXIgYSA9IFswXTtcbiAgd2hpbGUgKGwgIT09IDApIHtcbiAgICB2YXIgYiA9IGxbMV07XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPCBiLmxlbmd0aDsgaSsrKSBhLnB1c2goYltpXSk7XG4gICAgbCA9IGxbMl07XG4gIH1cbiAgcmV0dXJuIGE7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfYXJyYXlfYmxpdFxuZnVuY3Rpb24gY2FtbF9hcnJheV9ibGl0KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgaWYgKGkyIDw9IGkxKSB7XG4gICAgZm9yICh2YXIgaiA9IDE7IGogPD0gbGVuOyBqKyspIGEyW2kyICsgal0gPSBhMVtpMSArIGpdO1xuICB9IGVsc2Uge1xuICAgIGZvciAodmFyIGogPSBsZW47IGogPj0gMTsgai0tKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZmxvYXRhcnJheV9ibGl0XG5mdW5jdGlvbiBjYW1sX2Zsb2F0YXJyYXlfYmxpdChhMSwgaTEsIGEyLCBpMiwgbGVuKSB7XG4gIGlmIChpMiA8PSBpMSkge1xuICAgIGZvciAodmFyIGogPSAxOyBqIDw9IGxlbjsgaisrKSBhMltpMiArIGpdID0gYTFbaTEgKyBqXTtcbiAgfSBlbHNlIHtcbiAgICBmb3IgKHZhciBqID0gbGVuOyBqID49IDE7IGotLSkgYTJbaTIgKyBqXSA9IGExW2kxICsgal07XG4gIH07XG4gIHJldHVybiAwO1xufVxuXG4vLy8vLy8vLy8vLy8vIFBlcnZhc2l2ZVxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9zZXQgKG11dGFibGUsIGNvbnN0LCBtdXRhYmxlKVxuLy9SZXF1aXJlczogY2FtbF9hcnJheV9ib3VuZF9lcnJvclxuZnVuY3Rpb24gY2FtbF9hcnJheV9zZXQgKGFycmF5LCBpbmRleCwgbmV3dmFsKSB7XG4gIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gYXJyYXkubGVuZ3RoIC0gMSkpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgYXJyYXlbaW5kZXgrMV09bmV3dmFsOyByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9hcnJheV9nZXQgbXV0YWJsZSAobXV0YWJsZSwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2FycmF5X2dldCAoYXJyYXksIGluZGV4KSB7XG4gIGlmICgoaW5kZXggPCAwKSB8fCAoaW5kZXggPj0gYXJyYXkubGVuZ3RoIC0gMSkpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFycmF5W2luZGV4KzFdO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2FycmF5X2ZpbGxcbmZ1bmN0aW9uIGNhbWxfYXJyYXlfZmlsbChhcnJheSwgb2ZzLCBsZW4sIHYpe1xuICBmb3IodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspe1xuICAgIGFycmF5W29mcytpKzFdID0gdjtcbiAgfVxuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9jaGVja19ib3VuZCAobXV0YWJsZSwgY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2NoZWNrX2JvdW5kIChhcnJheSwgaW5kZXgpIHtcbiAgaWYgKGluZGV4ID4+PiAwID49IGFycmF5Lmxlbmd0aCAtIDEpIGNhbWxfYXJyYXlfYm91bmRfZXJyb3IoKTtcbiAgcmV0dXJuIGFycmF5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21ha2VfdmVjdCBjb25zdCAoY29uc3QsIG11dGFibGUpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX21ha2VfdmVjdCAobGVuLCBpbml0KSB7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0wO1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGxlbjsgaSsrKSBiW2ldID0gaW5pdDtcbiAgcmV0dXJuIGI7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWFrZV9mbG9hdF92ZWN0IGNvbnN0IChjb25zdClcbi8vUmVxdWlyZXM6IGNhbWxfYXJyYXlfYm91bmRfZXJyb3JcbmZ1bmN0aW9uIGNhbWxfbWFrZV9mbG9hdF92ZWN0KGxlbil7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0yNTQ7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSAwO1xuICByZXR1cm4gYlxufVxuLy9Qcm92aWRlczogY2FtbF9mbG9hdGFycmF5X2NyZWF0ZSBjb25zdCAoY29uc3QpXG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JvdW5kX2Vycm9yXG5mdW5jdGlvbiBjYW1sX2Zsb2F0YXJyYXlfY3JlYXRlKGxlbil7XG4gIGlmIChsZW4gPCAwKSBjYW1sX2FycmF5X2JvdW5kX2Vycm9yKCk7XG4gIHZhciBsZW4gPSBsZW4gKyAxIHwgMDtcbiAgdmFyIGIgPSBuZXcgQXJyYXkobGVuKTtcbiAgYlswXT0yNTQ7XG4gIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuOyBpKyspIGJbaV0gPSAwO1xuICByZXR1cm4gYlxufVxuIiwiXG4vL1Byb3ZpZGVzOiBNbE11dGV4XG5mdW5jdGlvbiBNbE11dGV4KCkge1xuICB0aGlzLmxvY2tlZCA9IGZhbHNlXG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbXV0ZXhfbmV3XG4vL1JlcXVpcmVzOiBNbE11dGV4XG5mdW5jdGlvbiBjYW1sX21sX211dGV4X25ldyh1bml0KSB7XG4gIHJldHVybiBuZXcgTWxNdXRleCgpO1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX21sX211dGV4X2xvY2tcbi8vUmVxdWlyZXM6IGNhbWxfZmFpbHdpdGhcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfbG9jayh0KSB7XG4gIGlmKHQubG9ja2VkKVxuICAgIGNhbWxfZmFpbHdpdGgoXCJNdXRleC5sb2NrOiBtdXRleCBhbHJlYWR5IGxvY2tlZC4gQ2Fubm90IHdhaXQuXCIpO1xuICBlbHNlIHQubG9ja2VkID0gdHJ1ZTtcbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbXV0ZXhfdHJ5X2xvY2tcbmZ1bmN0aW9uIGNhbWxfbWxfbXV0ZXhfdHJ5X2xvY2sodCkge1xuICBpZighdC5sb2NrZWQpIHtcbiAgICB0LmxvY2tlZCA9IHRydWU7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgcmV0dXJuIDA7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfbWxfbXV0ZXhfdW5sb2NrXG5mdW5jdGlvbiBjYW1sX21sX211dGV4X3VubG9jayh0KSB7XG4gIHQubG9ja2VkID0gZmFsc2U7XG4gIHJldHVybiAwO1xufVxuIiwiLy8gSnNfb2Zfb2NhbWwgcnVudGltZSBzdXBwb3J0XG4vLyBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuLy8gQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4vLyBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3Rcbi8vXG4vLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuLy8gaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4vLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuLy8gZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuLy9cbi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuLy8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Zcbi8vIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbi8vIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuLy9cbi8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbi8vIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG5cbi8vIFdlYWsgQVBJXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG52YXIgY2FtbF9lcGhlX2tleV9vZmZzZXQgPSAzXG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxudmFyIGNhbWxfZXBoZV9kYXRhX29mZnNldCA9IDJcblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3NldF9rZXlcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudCwgY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9zZXRfa2V5KHgsIGksIHYpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLnNldFwiKTtcbiAgaWYgKHYgaW5zdGFuY2VvZiBPYmplY3QgJiYgZ2xvYmFsVGhpcy5XZWFrUmVmKSB7XG4gICAgaWYoeFsxXS5yZWdpc3RlcikgeFsxXS5yZWdpc3Rlcih2LCB1bmRlZmluZWQsIHYpO1xuICAgIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSA9IG5ldyBnbG9iYWxUaGlzLldlYWtSZWYodik7XG4gIH1cbiAgZWxzZSB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gPSB2O1xuICByZXR1cm4gMFxufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfdW5zZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX2ludmFsaWRfYXJndW1lbnQsIGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfdW5zZXRfa2V5KHgsIGkpIHtcbiAgaWYoaSA8IDAgfHwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpID49IHgubGVuZ3RoKVxuICAgIGNhbWxfaW52YWxpZF9hcmd1bWVudCAoXCJXZWFrLnNldFwiKTtcbiAgaWYoZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZiAmJiB4WzFdLnVucmVnaXN0ZXIpIHtcbiAgICB2YXIgb2xkID0geFtjYW1sX2VwaGVfa2V5X29mZnNldCArIGldLmRlcmVmKCk7XG4gICAgaWYob2xkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhciBjb3VudCA9IDBcbiAgICAgIGZvcih2YXIgaiA9IGNhbWxfZXBoZV9rZXlfb2Zmc2V0OyBqIDwgeC5sZW5ndGg7IGorKyl7XG4gICAgICAgIHZhciBrZXkgPSB4W2pdO1xuICAgICAgICBpZihrZXkgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpe1xuICAgICAgICAgIGtleSA9IGtleS5kZXJlZigpXG4gICAgICAgICAgaWYoa2V5ID09PSBvbGQpIGNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmKGNvdW50ID09IDEpIHhbMV0udW5yZWdpc3RlcihvbGQpO1xuICAgIH1cbiAgfVxuICB4W2NhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaV0gPSB1bmRlZmluZWQ7XG4gIHJldHVybiAwXG59XG5cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NyZWF0ZVxuLy9SZXF1aXJlczogY2FtbF93ZWFrX2NyZWF0ZSwgY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfY3JlYXRlIChuKSB7XG4gIHZhciB4ID0gY2FtbF93ZWFrX2NyZWF0ZShuKTtcbiAgcmV0dXJuIHg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19jcmVhdGVcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0LCBjYW1sX2ludmFsaWRfYXJndW1lbnQsY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XG5mdW5jdGlvbiBjYW1sX3dlYWtfY3JlYXRlIChuKSB7XG4gIGlmIChuIDwgMCkgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuY3JlYXRlXCIpO1xuICB2YXIgeCA9IFsyNTEsXCJjYW1sX2VwaGVfbGlzdF9oZWFkXCJdO1xuICB4Lmxlbmd0aCA9IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgbjtcbiAgcmV0dXJuIHg7XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfd2Vha19zZXRcbi8vUmVxdWlyZXM6IGNhbWxfaW52YWxpZF9hcmd1bWVudFxuLy9SZXF1aXJlczogY2FtbF9lcGhlX3NldF9rZXksIGNhbWxfZXBoZV91bnNldF9rZXlcbmZ1bmN0aW9uIGNhbWxfd2Vha19zZXQoeCwgaSwgdikge1xuICBpZih2ID09IDApIGNhbWxfZXBoZV91bnNldF9rZXkoeCxpKVxuICBlbHNlIGNhbWxfZXBoZV9zZXRfa2V5KHgsaSx2WzFdKVxuICByZXR1cm4gMDtcbn1cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0FsaWFzOiBjYW1sX3dlYWtfZ2V0XG5mdW5jdGlvbiBjYW1sX2VwaGVfZ2V0X2tleSh4LCBpKSB7XG4gIGlmKGkgPCAwIHx8IGNhbWxfZXBoZV9rZXlfb2Zmc2V0ICsgaSA+PSB4Lmxlbmd0aClcbiAgICBjYW1sX2ludmFsaWRfYXJndW1lbnQgKFwiV2Vhay5nZXRfa2V5XCIpO1xuICB2YXIgd2VhayA9IHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpIF07XG4gIGlmKGdsb2JhbFRoaXMuV2Vha1JlZiAmJiB3ZWFrIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5XZWFrUmVmKSB3ZWFrID0gd2Vhay5kZXJlZigpO1xuICByZXR1cm4gKHdlYWs9PT11bmRlZmluZWQpPzA6WzAsIHdlYWtdO1xufVxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9rZXlfY29weVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2dldF9rZXksY2FtbF9lcGhlX2tleV9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX2R1cCwgY2FtbF9pbnZhbGlkX2FyZ3VtZW50XG4vL0FsaWFzOiBjYW1sX3dlYWtfZ2V0X2NvcHlcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfa2V5X2NvcHkoeCwgaSkge1xuICBpZihpIDwgMCB8fCBjYW1sX2VwaGVfa2V5X29mZnNldCArIGkgPj0geC5sZW5ndGgpXG4gICAgY2FtbF9pbnZhbGlkX2FyZ3VtZW50IChcIldlYWsuZ2V0X2NvcHlcIik7XG4gIHZhciB5ID0gY2FtbF9lcGhlX2dldF9rZXkoeCwgaSk7XG4gIGlmICh5ID09PSAwKSByZXR1cm4geTtcbiAgdmFyIHogPSB5WzFdO1xuICBpZiAoeiBpbnN0YW5jZW9mIEFycmF5KSByZXR1cm4gWzAsIGNhbWxfb2JqX2R1cCh6KV07XG4gIHJldHVybiB5O1xufVxuXG4vL1Byb3ZpZGVzOiBjYW1sX2VwaGVfY2hlY2tfa2V5IG11dGFibGVcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG4vL0FsaWFzOiBjYW1sX3dlYWtfY2hlY2tcbmZ1bmN0aW9uIGNhbWxfZXBoZV9jaGVja19rZXkoeCwgaSkge1xuICB2YXIgd2VhayA9IHhbY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpXTtcbiAgaWYoZ2xvYmFsVGhpcy5XZWFrUmVmICYmIHdlYWsgaW5zdGFuY2VvZiBnbG9iYWxUaGlzLldlYWtSZWYpIHdlYWsgPSB3ZWFrLmRlcmVmKCk7XG4gIGlmKHdlYWs9PT11bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gMTtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2JsaXRfa2V5XG4vL1JlcXVpcmVzOiBjYW1sX2FycmF5X2JsaXRcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9rZXlfb2Zmc2V0XG4vL0FsaWFzOiBjYW1sX3dlYWtfYmxpdFxuZnVuY3Rpb24gY2FtbF9lcGhlX2JsaXRfa2V5KGExLCBpMSwgYTIsIGkyLCBsZW4pIHtcbiAgLy8gbWludXMgb25lIGJlY2F1c2UgY2FtbF9hcnJheV9ibGl0IHdvcmtzIG9uIG9jYW1sIGFycmF5XG4gIGNhbWxfYXJyYXlfYmxpdChhMSwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpMSAtIDEsXG4gICAgICAgICAgICAgICAgICBhMiwgY2FtbF9lcGhlX2tleV9vZmZzZXQgKyBpMiAtIDEsXG4gICAgICAgICAgICAgICAgICBsZW4pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2JsaXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0LCBjYW1sX2VwaGVfc2V0X2RhdGEsIGNhbWxfZXBoZV91bnNldF9kYXRhXG5mdW5jdGlvbiBjYW1sX2VwaGVfYmxpdF9kYXRhKHNyYywgZHN0KXtcbiAgdmFyIG4gPSBzcmNbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XTtcbiAgaWYobiA9PT0gdW5kZWZpbmVkKSBjYW1sX2VwaGVfdW5zZXRfZGF0YShkc3QpO1xuICBlbHNlIGNhbWxfZXBoZV9zZXRfZGF0YShkc3QsIG4pO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2dldF9kYXRhXG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV9nZXRfZGF0YSh4KXtcbiAgaWYoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID09PSB1bmRlZmluZWQpXG4gICAgcmV0dXJuIDA7XG4gIGVsc2VcbiAgICByZXR1cm4gWzAsIHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9nZXRfZGF0YV9jb3B5XG4vL1JlcXVpcmVzOiBjYW1sX2VwaGVfZGF0YV9vZmZzZXRcbi8vUmVxdWlyZXM6IGNhbWxfb2JqX2R1cFxuZnVuY3Rpb24gY2FtbF9lcGhlX2dldF9kYXRhX2NvcHkoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIFswLCBjYW1sX29ial9kdXAoeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdKV07XG59XG5cbi8vUHJvdmlkZXM6IGNhbWxfZXBoZV9zZXRfZGF0YVxuLy9SZXF1aXJlczogY2FtbF9lcGhlX2RhdGFfb2Zmc2V0LCBjYW1sX2VwaGVfa2V5X29mZnNldCwgY2FtbF9lcGhlX3Vuc2V0X2RhdGFcbmZ1bmN0aW9uIGNhbWxfZXBoZV9zZXRfZGF0YSh4LCBkYXRhKXtcbiAgaWYoZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSAmJiBnbG9iYWxUaGlzLldlYWtSZWYpIHtcbiAgICBpZighICh4WzFdIGluc3RhbmNlb2YgZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeSkpIHtcbiAgICAgIHhbMV0gPSBuZXcgZ2xvYmFsVGhpcy5GaW5hbGl6YXRpb25SZWdpc3RyeShmdW5jdGlvbiAoKSB7IGNhbWxfZXBoZV91bnNldF9kYXRhKHgpIH0pO1xuICAgICAgLy9yZWdpc3RlciBhbGwga2V5c1xuICAgICAgZm9yKHZhciBqID0gY2FtbF9lcGhlX2tleV9vZmZzZXQ7IGogPCB4Lmxlbmd0aDsgaisrKXtcbiAgICAgICAgdmFyIGtleSA9IHhbal07XG4gICAgICAgIGlmKGtleSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgICAgICAgIGtleSA9IGtleS5kZXJlZigpO1xuICAgICAgICAgIGlmKGtleSkgeFsxXS5yZWdpc3RlcihrZXksIHVuZGVmaW5lZCwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICB4W2NhbWxfZXBoZV9kYXRhX29mZnNldF0gPSBkYXRhO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX3Vuc2V0X2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldCwgY2FtbF9lcGhlX2tleV9vZmZzZXRcbmZ1bmN0aW9uIGNhbWxfZXBoZV91bnNldF9kYXRhKHgpe1xuICBpZihnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5ICYmIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgIGlmKHhbMV0gaW5zdGFuY2VvZiBnbG9iYWxUaGlzLkZpbmFsaXphdGlvblJlZ2lzdHJ5KXtcbiAgICAgIC8vdW5yZWdpc3RlciBhbGwga2V5c1xuICAgICAgZm9yKHZhciBqID0gY2FtbF9lcGhlX2tleV9vZmZzZXQ7IGogPCB4Lmxlbmd0aDsgaisrKXtcbiAgICAgICAgdmFyIGtleSA9IHhbal07XG4gICAgICAgIGlmKGtleSBpbnN0YW5jZW9mIGdsb2JhbFRoaXMuV2Vha1JlZikge1xuICAgICAgICAgIGtleSA9IGtleS5kZXJlZigpO1xuICAgICAgICAgIGlmKGtleSkgeFsxXS51bnJlZ2lzdGVyKGtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgeFtjYW1sX2VwaGVfZGF0YV9vZmZzZXRdID0gdW5kZWZpbmVkO1xuICByZXR1cm4gMDtcbn1cblxuLy9Qcm92aWRlczogY2FtbF9lcGhlX2NoZWNrX2RhdGFcbi8vUmVxdWlyZXM6IGNhbWxfZXBoZV9kYXRhX29mZnNldFxuZnVuY3Rpb24gY2FtbF9lcGhlX2NoZWNrX2RhdGEoeCl7XG4gIGlmKHhbY2FtbF9lcGhlX2RhdGFfb2Zmc2V0XSA9PT0gdW5kZWZpbmVkKVxuICAgIHJldHVybiAwO1xuICBlbHNlXG4gICAgcmV0dXJuIDE7XG59XG4iLCJcbi8vUHJvdmlkZXM6IGNhbWxfbHhtX25leHRcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfc2hpZnRfbGVmdFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9zaGlmdF9yaWdodF91bnNpZ25lZFxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vclxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF94b3Jcbi8vUmVxdWlyZXM6IGNhbWxfaW50NjRfYWRkXG4vL1JlcXVpcmVzOiBjYW1sX2ludDY0X211bFxuLy9SZXF1aXJlczogY2FtbF9iYV9nZXRfMVxuLy9SZXF1aXJlczogY2FtbF9iYV9zZXRfMVxuLy9SZXF1aXJlczogY2FtbF9pbnQ2NF9vZl9zdHJpbmdcbi8vUmVxdWlyZXM6IGNhbWxfbmV3X3N0cmluZ1xuZnVuY3Rpb24gY2FtbF9seG1fbmV4dCh2KSB7XG4gIGZ1bmN0aW9uIHNoaWZ0X2woeCwgayl7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfc2hpZnRfbGVmdCh4LGspO1xuICB9XG4gIGZ1bmN0aW9uIHNoaWZ0X3IoeCwgayl7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfc2hpZnRfcmlnaHRfdW5zaWduZWQoeCxrKTtcbiAgfVxuICBmdW5jdGlvbiBvcihhLCBiKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF9vcihhLGIpO1xuICB9XG4gIGZ1bmN0aW9uIHhvcihhLCBiKXtcbiAgICByZXR1cm4gY2FtbF9pbnQ2NF94b3IoYSxiKTtcbiAgfVxuICBmdW5jdGlvbiBhZGQoYSwgYil7XG4gICAgcmV0dXJuIGNhbWxfaW50NjRfYWRkKGEsYik7XG4gIH1cbiAgZnVuY3Rpb24gbXVsKGEsIGIpe1xuICAgIHJldHVybiBjYW1sX2ludDY0X211bChhLGIpO1xuICB9XG4gIGZ1bmN0aW9uIHJvdGwoeCwgaykge1xuICAgIHJldHVybiBvcihzaGlmdF9sKHgsayksc2hpZnRfciAoeCwgNjQgLSBrKSk7XG4gIH1cbiAgZnVuY3Rpb24gZ2V0KGEsIGkpIHtcbiAgICByZXR1cm4gY2FtbF9iYV9nZXRfMShhLCBpKTtcbiAgfVxuICBmdW5jdGlvbiBzZXQoYSwgaSwgeCkge1xuICAgIHJldHVybiBjYW1sX2JhX3NldF8xKGEsIGksIHgpO1xuICB9XG4gIHZhciBNID0gY2FtbF9pbnQ2NF9vZl9zdHJpbmcoY2FtbF9uZXdfc3RyaW5nKFwiMHhkMTM0MjU0M2RlODJlZjk1XCIpKTtcbiAgdmFyIGRhYmEgPSBjYW1sX2ludDY0X29mX3N0cmluZyhjYW1sX25ld19zdHJpbmcoXCIweGRhYmEwYjZlYjA5MzIyZTNcIikpO1xuICB2YXIgeiwgcTAsIHExO1xuICB2YXIgc3QgPSB2O1xuICB2YXIgYSA9IGdldChzdCwwKTtcbiAgdmFyIHMgPSBnZXQoc3QsMSk7XG4gIHZhciB4MCA9IGdldChzdCwyKTtcbiAgdmFyIHgxID0gZ2V0KHN0LDMpO1xuICAvKiBDb21iaW5pbmcgb3BlcmF0aW9uICovXG4gIHogPSBhZGQocywgeDApO1xuICAvKiBNaXhpbmcgZnVuY3Rpb24gKi9cbiAgeiA9IG11bCh4b3IoeixzaGlmdF9yKHosMzIpKSwgZGFiYSk7XG4gIHogPSBtdWwoeG9yKHosc2hpZnRfcih6LDMyKSksIGRhYmEpO1xuICB6ID0geG9yKHosc2hpZnRfcih6LDMyKSk7XG4gIC8qIExDRyB1cGRhdGUgKi9cbiAgc2V0KHN0LCAxLCBhZGQgKG11bChzLE0pLCBhKSk7XG4gIC8qIFhCRyB1cGRhdGUgKi9cbiAgdmFyIHEwID0geDBcbiAgdmFyIHExID0geDFcbiAgcTEgPSB4b3IocTEscTApO1xuICBxMCA9IHJvdGwocTAsIDI0KTtcbiAgcTAgPSB4b3IoeG9yKHEwLCBxMSksIChzaGlmdF9sKHExLDE2KSkpO1xuICBxMSA9IHJvdGwocTEsIDM3KTtcbiAgc2V0KHN0LCAyLCBxMCk7XG4gIHNldChzdCwgMywgcTEpO1xuICAvKiBSZXR1cm4gcmVzdWx0ICovXG4gIHJldHVybiB6O1xufVxuIiwiXG4vL1Byb3ZpZGVzOiB6c3RkX2RlY29tcHJlc3NcbnZhciB6c3RkX2RlY29tcHJlc3MgPSAoZnVuY3Rpb24gKCkge1xuXCJ1c2Ugc3RyaWN0XCI7XG4vLyBhbGlhc2VzIGZvciBzaG9ydGVyIGNvbXByZXNzZWQgY29kZSAobW9zdCBtaW5pZmVycyBkb24ndCBkbyB0aGlzKVxudmFyIGFiID0gQXJyYXlCdWZmZXIsIHU4ID0gVWludDhBcnJheSwgdTE2ID0gVWludDE2QXJyYXksIGkxNiA9IEludDE2QXJyYXksIHUzMiA9IFVpbnQzMkFycmF5LCBpMzIgPSBJbnQzMkFycmF5O1xudmFyIHNsYyA9IGZ1bmN0aW9uICh2LCBzLCBlKSB7XG4gICAgaWYgKHU4LnByb3RvdHlwZS5zbGljZSlcbiAgICAgICAgcmV0dXJuIHU4LnByb3RvdHlwZS5zbGljZS5jYWxsKHYsIHMsIGUpO1xuICAgIGlmIChzID09IG51bGwgfHwgcyA8IDApXG4gICAgICAgIHMgPSAwO1xuICAgIGlmIChlID09IG51bGwgfHwgZSA+IHYubGVuZ3RoKVxuICAgICAgICBlID0gdi5sZW5ndGg7XG4gICAgdmFyIG4gPSBuZXcgdTgoZSAtIHMpO1xuICAgIG4uc2V0KHYuc3ViYXJyYXkocywgZSkpO1xuICAgIHJldHVybiBuO1xufTtcbnZhciBmaWxsID0gZnVuY3Rpb24gKHYsIG4sIHMsIGUpIHtcbiAgICBpZiAodTgucHJvdG90eXBlLmZpbGwpXG4gICAgICAgIHJldHVybiB1OC5wcm90b3R5cGUuZmlsbC5jYWxsKHYsIG4sIHMsIGUpO1xuICAgIGlmIChzID09IG51bGwgfHwgcyA8IDApXG4gICAgICAgIHMgPSAwO1xuICAgIGlmIChlID09IG51bGwgfHwgZSA+IHYubGVuZ3RoKVxuICAgICAgICBlID0gdi5sZW5ndGg7XG4gICAgZm9yICg7IHMgPCBlOyArK3MpXG4gICAgICAgIHZbc10gPSBuO1xuICAgIHJldHVybiB2O1xufTtcbnZhciBjcHcgPSBmdW5jdGlvbiAodiwgdCwgcywgZSkge1xuICAgIGlmICh1OC5wcm90b3R5cGUuY29weVdpdGhpbilcbiAgICAgICAgcmV0dXJuIHU4LnByb3RvdHlwZS5jb3B5V2l0aGluLmNhbGwodiwgdCwgcywgZSk7XG4gICAgaWYgKHMgPT0gbnVsbCB8fCBzIDwgMClcbiAgICAgICAgcyA9IDA7XG4gICAgaWYgKGUgPT0gbnVsbCB8fCBlID4gdi5sZW5ndGgpXG4gICAgICAgIGUgPSB2Lmxlbmd0aDtcbiAgICB3aGlsZSAocyA8IGUpIHtcbiAgICAgICAgdlt0KytdID0gdltzKytdO1xuICAgIH1cbn07XG4vKipcbiAqIENvZGVzIGZvciBlcnJvcnMgZ2VuZXJhdGVkIHdpdGhpbiB0aGlzIGxpYnJhcnlcbiAqL1xuLy8gZXJyb3IgY29kZXNcbnZhciBlYyA9IFtcbiAgICAnaW52YWxpZCB6c3RkIGRhdGEnLFxuICAgICd3aW5kb3cgc2l6ZSB0b28gbGFyZ2UgKD4yMDQ2TUIpJyxcbiAgICAnaW52YWxpZCBibG9jayB0eXBlJyxcbiAgICAnRlNFIGFjY3VyYWN5IHRvbyBoaWdoJyxcbiAgICAnbWF0Y2ggZGlzdGFuY2UgdG9vIGZhciBiYWNrJyxcbiAgICAndW5leHBlY3RlZCBFT0YnXG5dO1xuO1xudmFyIGVyciA9IGZ1bmN0aW9uIChpbmQsIG1zZywgbnQpIHtcbiAgICB2YXIgZSA9IG5ldyBFcnJvcihtc2cgfHwgZWNbaW5kXSk7XG4gICAgZS5jb2RlID0gaW5kO1xuICAgIGlmICghbnQpXG4gICAgICAgIHRocm93IGU7XG4gICAgcmV0dXJuIGU7XG59O1xudmFyIHJiID0gZnVuY3Rpb24gKGQsIGIsIG4pIHtcbiAgICB2YXIgaSA9IDAsIG8gPSAwO1xuICAgIGZvciAoOyBpIDwgbjsgKytpKVxuICAgICAgICBvIHw9IGRbYisrXSA8PCAoaSA8PCAzKTtcbiAgICByZXR1cm4gbztcbn07XG52YXIgYjQgPSBmdW5jdGlvbiAoZCwgYikgeyByZXR1cm4gKGRbYl0gfCAoZFtiICsgMV0gPDwgOCkgfCAoZFtiICsgMl0gPDwgMTYpIHwgKGRbYiArIDNdIDw8IDI0KSkgPj4+IDA7IH07XG4vLyByZWFkIFpzdGFuZGFyZCBmcmFtZSBoZWFkZXJcbnZhciByemZoID0gZnVuY3Rpb24gKGRhdCwgdykge1xuICAgIHZhciBuMyA9IGRhdFswXSB8IChkYXRbMV0gPDwgOCkgfCAoZGF0WzJdIDw8IDE2KTtcbiAgICBpZiAobjMgPT0gMHgyRkI1MjggJiYgZGF0WzNdID09IDI1Mykge1xuICAgICAgICAvLyBac3RhbmRhcmRcbiAgICAgICAgdmFyIGZsZyA9IGRhdFs0XTtcbiAgICAgICAgLy8gICAgc2luZ2xlIHNlZ21lbnQgICAgICAgY2hlY2tzdW0gICAgICAgICAgICAgZGljdCBmbGFnICAgICBmcmFtZSBjb250ZW50IGZsYWdcbiAgICAgICAgdmFyIHNzID0gKGZsZyA+PiA1KSAmIDEsIGNjID0gKGZsZyA+PiAyKSAmIDEsIGRmID0gZmxnICYgMywgZmNmID0gZmxnID4+IDY7XG4gICAgICAgIGlmIChmbGcgJiA4KVxuICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAvLyBieXRlXG4gICAgICAgIHZhciBidCA9IDYgLSBzcztcbiAgICAgICAgLy8gZGljdCBieXRlc1xuICAgICAgICB2YXIgZGIgPSBkZiA9PSAzID8gNCA6IGRmO1xuICAgICAgICAvLyBkaWN0aW9uYXJ5IGlkXG4gICAgICAgIHZhciBkaSA9IHJiKGRhdCwgYnQsIGRiKTtcbiAgICAgICAgYnQgKz0gZGI7XG4gICAgICAgIC8vIGZyYW1lIHNpemUgYnl0ZXNcbiAgICAgICAgdmFyIGZzYiA9IGZjZiA/ICgxIDw8IGZjZikgOiBzcztcbiAgICAgICAgLy8gZnJhbWUgc291cmNlIHNpemVcbiAgICAgICAgdmFyIGZzcyA9IHJiKGRhdCwgYnQsIGZzYikgKyAoKGZjZiA9PSAxKSAmJiAyNTYpO1xuICAgICAgICAvLyB3aW5kb3cgc2l6ZVxuICAgICAgICB2YXIgd3MgPSBmc3M7XG4gICAgICAgIGlmICghc3MpIHtcbiAgICAgICAgICAgIC8vIHdpbmRvdyBkZXNjcmlwdG9yXG4gICAgICAgICAgICB2YXIgd2IgPSAxIDw8ICgxMCArIChkYXRbNV0gPj4gMykpO1xuICAgICAgICAgICAgd3MgPSB3YiArICh3YiA+PiAzKSAqIChkYXRbNV0gJiA3KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod3MgPiAyMTQ1Mzg2NDk2KVxuICAgICAgICAgICAgZXJyKDEpO1xuICAgICAgICB2YXIgYnVmID0gbmV3IHU4KCh3ID09IDEgPyAoZnNzIHx8IHdzKSA6IHcgPyAwIDogd3MpICsgMTIpO1xuICAgICAgICBidWZbMF0gPSAxLCBidWZbNF0gPSA0LCBidWZbOF0gPSA4O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYjogYnQgKyBmc2IsXG4gICAgICAgICAgICB5OiAwLFxuICAgICAgICAgICAgbDogMCxcbiAgICAgICAgICAgIGQ6IGRpLFxuICAgICAgICAgICAgdzogKHcgJiYgdyAhPSAxKSA/IHcgOiBidWYuc3ViYXJyYXkoMTIpLFxuICAgICAgICAgICAgZTogd3MsXG4gICAgICAgICAgICBvOiBuZXcgaTMyKGJ1Zi5idWZmZXIsIDAsIDMpLFxuICAgICAgICAgICAgdTogZnNzLFxuICAgICAgICAgICAgYzogY2MsXG4gICAgICAgICAgICBtOiBNYXRoLm1pbigxMzEwNzIsIHdzKVxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIGlmICgoKG4zID4+IDQpIHwgKGRhdFszXSA8PCAyMCkpID09IDB4MTg0RDJBNSkge1xuICAgICAgICAvLyBza2lwcGFibGVcbiAgICAgICAgcmV0dXJuIGI0KGRhdCwgNCkgKyA4O1xuICAgIH1cbiAgICBlcnIoMCk7XG59O1xuLy8gbW9zdCBzaWduaWZpY2FudCBiaXQgZm9yIG5vbnplcm9cbnZhciBtc2IgPSBmdW5jdGlvbiAodmFsKSB7XG4gICAgdmFyIGJpdHMgPSAwO1xuICAgIGZvciAoOyAoMSA8PCBiaXRzKSA8PSB2YWw7ICsrYml0cylcbiAgICAgICAgO1xuICAgIHJldHVybiBiaXRzIC0gMTtcbn07XG4vLyByZWFkIGZpbml0ZSBzdGF0ZSBlbnRyb3B5XG52YXIgcmZzZSA9IGZ1bmN0aW9uIChkYXQsIGJ0LCBtYWwpIHtcbiAgICAvLyB0YWJsZSBwb3NcbiAgICB2YXIgdHBvcyA9IChidCA8PCAzKSArIDQ7XG4gICAgLy8gYWNjdXJhY3kgbG9nXG4gICAgdmFyIGFsID0gKGRhdFtidF0gJiAxNSkgKyA1O1xuICAgIGlmIChhbCA+IG1hbClcbiAgICAgICAgZXJyKDMpO1xuICAgIC8vIHNpemVcbiAgICB2YXIgc3ogPSAxIDw8IGFsO1xuICAgIC8vIHByb2JhYmlsaXRpZXMgc3ltYm9scyAgcmVwZWF0ICAgaW5kZXggICBoaWdoIHRocmVzaG9sZFxuICAgIHZhciBwcm9icyA9IHN6LCBzeW0gPSAtMSwgcmUgPSAtMSwgaSA9IC0xLCBodCA9IHN6O1xuICAgIC8vIG9wdGltaXphdGlvbjogc2luZ2xlIGFsbG9jYXRpb24gaXMgbXVjaCBmYXN0ZXJcbiAgICB2YXIgYnVmID0gbmV3IGFiKDUxMiArIChzeiA8PCAyKSk7XG4gICAgdmFyIGZyZXEgPSBuZXcgaTE2KGJ1ZiwgMCwgMjU2KTtcbiAgICAvLyBzYW1lIHZpZXcgYXMgZnJlcVxuICAgIHZhciBkc3RhdGUgPSBuZXcgdTE2KGJ1ZiwgMCwgMjU2KTtcbiAgICB2YXIgbnN0YXRlID0gbmV3IHUxNihidWYsIDUxMiwgc3opO1xuICAgIHZhciBiYjEgPSA1MTIgKyAoc3ogPDwgMSk7XG4gICAgdmFyIHN5bXMgPSBuZXcgdTgoYnVmLCBiYjEsIHN6KTtcbiAgICB2YXIgbmJpdHMgPSBuZXcgdTgoYnVmLCBiYjEgKyBzeik7XG4gICAgd2hpbGUgKHN5bSA8IDI1NSAmJiBwcm9icyA+IDApIHtcbiAgICAgICAgdmFyIGJpdHMgPSBtc2IocHJvYnMgKyAxKTtcbiAgICAgICAgdmFyIGNidCA9IHRwb3MgPj4gMztcbiAgICAgICAgLy8gbWFza1xuICAgICAgICB2YXIgbXNrID0gKDEgPDwgKGJpdHMgKyAxKSkgLSAxO1xuICAgICAgICB2YXIgdmFsID0gKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSkgPj4gKHRwb3MgJiA3KSkgJiBtc2s7XG4gICAgICAgIC8vIG1hc2sgKDEgZmV3ZXIgYml0KVxuICAgICAgICB2YXIgbXNrMWZiID0gKDEgPDwgYml0cykgLSAxO1xuICAgICAgICAvLyBtYXggc21hbGwgdmFsdWVcbiAgICAgICAgdmFyIG1zdiA9IG1zayAtIHByb2JzIC0gMTtcbiAgICAgICAgLy8gc21hbGwgdmFsdWVcbiAgICAgICAgdmFyIHN2YWwgPSB2YWwgJiBtc2sxZmI7XG4gICAgICAgIGlmIChzdmFsIDwgbXN2KVxuICAgICAgICAgICAgdHBvcyArPSBiaXRzLCB2YWwgPSBzdmFsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRwb3MgKz0gYml0cyArIDE7XG4gICAgICAgICAgICBpZiAodmFsID4gbXNrMWZiKVxuICAgICAgICAgICAgICAgIHZhbCAtPSBtc3Y7XG4gICAgICAgIH1cbiAgICAgICAgZnJlcVsrK3N5bV0gPSAtLXZhbDtcbiAgICAgICAgaWYgKHZhbCA9PSAtMSkge1xuICAgICAgICAgICAgcHJvYnMgKz0gdmFsO1xuICAgICAgICAgICAgc3ltc1stLWh0XSA9IHN5bTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBwcm9icyAtPSB2YWw7XG4gICAgICAgIGlmICghdmFsKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgLy8gcmVwZWF0IGJ5dGVcbiAgICAgICAgICAgICAgICB2YXIgcmJ0ID0gdHBvcyA+PiAzO1xuICAgICAgICAgICAgICAgIHJlID0gKChkYXRbcmJ0XSB8IChkYXRbcmJ0ICsgMV0gPDwgOCkpID4+ICh0cG9zICYgNykpICYgMztcbiAgICAgICAgICAgICAgICB0cG9zICs9IDI7XG4gICAgICAgICAgICAgICAgc3ltICs9IHJlO1xuICAgICAgICAgICAgfSB3aGlsZSAocmUgPT0gMyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN5bSA+IDI1NSB8fCBwcm9icylcbiAgICAgICAgZXJyKDApO1xuICAgIHZhciBzeW1wb3MgPSAwO1xuICAgIC8vIHN5bSBzdGVwIChjb3ByaW1lIHdpdGggc3ogLSBmb3JtdWxhIGZyb20genN0ZCBzb3VyY2UpXG4gICAgdmFyIHNzdGVwID0gKHN6ID4+IDEpICsgKHN6ID4+IDMpICsgMztcbiAgICAvLyBzeW0gbWFza1xuICAgIHZhciBzbWFzayA9IHN6IC0gMTtcbiAgICBmb3IgKHZhciBzID0gMDsgcyA8PSBzeW07ICsrcykge1xuICAgICAgICB2YXIgc2YgPSBmcmVxW3NdO1xuICAgICAgICBpZiAoc2YgPCAxKSB7XG4gICAgICAgICAgICBkc3RhdGVbc10gPSAtc2Y7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGlzIGlzIHNwbGl0IGludG8gdHdvIGxvb3BzIGluIHpzdGQgdG8gYXZvaWQgYnJhbmNoaW5nLCBidXQgYXMgSlMgaXMgaGlnaGVyLWxldmVsIHRoYXQgaXMgdW5uZWNlc3NhcnlcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHNmOyArK2kpIHtcbiAgICAgICAgICAgIHN5bXNbc3ltcG9zXSA9IHM7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgc3ltcG9zID0gKHN5bXBvcyArIHNzdGVwKSAmIHNtYXNrO1xuICAgICAgICAgICAgfSB3aGlsZSAoc3ltcG9zID49IGh0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBBZnRlciBzcHJlYWRpbmcgc3ltYm9scywgc2hvdWxkIGJlIHplcm8gYWdhaW5cbiAgICBpZiAoc3ltcG9zKVxuICAgICAgICBlcnIoMCk7XG4gICAgZm9yIChpID0gMDsgaSA8IHN6OyArK2kpIHtcbiAgICAgICAgLy8gbmV4dCBzdGF0ZVxuICAgICAgICB2YXIgbnMgPSBkc3RhdGVbc3ltc1tpXV0rKztcbiAgICAgICAgLy8gbnVtIGJpdHNcbiAgICAgICAgdmFyIG5iID0gbmJpdHNbaV0gPSBhbCAtIG1zYihucyk7XG4gICAgICAgIG5zdGF0ZVtpXSA9IChucyA8PCBuYikgLSBzejtcbiAgICB9XG4gICAgcmV0dXJuIFsodHBvcyArIDcpID4+IDMsIHtcbiAgICAgICAgICAgIGI6IGFsLFxuICAgICAgICAgICAgczogc3ltcyxcbiAgICAgICAgICAgIG46IG5iaXRzLFxuICAgICAgICAgICAgdDogbnN0YXRlXG4gICAgICAgIH1dO1xufTtcbi8vIHJlYWQgaHVmZm1hblxudmFyIHJodSA9IGZ1bmN0aW9uIChkYXQsIGJ0KSB7XG4gICAgLy8gIGluZGV4ICB3ZWlnaHQgY291bnRcbiAgICB2YXIgaSA9IDAsIHdjID0gLTE7XG4gICAgLy8gICAgYnVmZmVyICAgICAgICAgICAgIGhlYWRlciBieXRlXG4gICAgdmFyIGJ1ZiA9IG5ldyB1OCgyOTIpLCBoYiA9IGRhdFtidF07XG4gICAgLy8gaHVmZm1hbiB3ZWlnaHRzXG4gICAgdmFyIGh3ID0gYnVmLnN1YmFycmF5KDAsIDI1Nik7XG4gICAgLy8gcmFuayBjb3VudFxuICAgIHZhciByYyA9IGJ1Zi5zdWJhcnJheSgyNTYsIDI2OCk7XG4gICAgLy8gcmFuayBpbmRleFxuICAgIHZhciByaSA9IG5ldyB1MTYoYnVmLmJ1ZmZlciwgMjY4KTtcbiAgICAvLyBOT1RFOiBhdCB0aGlzIHBvaW50IGJ0IGlzIDEgbGVzcyB0aGFuIGV4cGVjdGVkXG4gICAgaWYgKGhiIDwgMTI4KSB7XG4gICAgICAgIC8vIGVuZCBieXRlLCBmc2UgZGVjb2RlIHRhYmxlXG4gICAgICAgIHZhciBfYSA9IHJmc2UoZGF0LCBidCArIDEsIDYpLCBlYnQgPSBfYVswXSwgZmR0ID0gX2FbMV07XG4gICAgICAgIGJ0ICs9IGhiO1xuICAgICAgICB2YXIgZXBvcyA9IGVidCA8PCAzO1xuICAgICAgICAvLyBsYXN0IGJ5dGVcbiAgICAgICAgdmFyIGxiID0gZGF0W2J0XTtcbiAgICAgICAgaWYgKCFsYilcbiAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgLy8gIHN0YXRlMSAgIHN0YXRlMiAgIHN0YXRlMSBiaXRzICAgc3RhdGUyIGJpdHNcbiAgICAgICAgdmFyIHN0MSA9IDAsIHN0MiA9IDAsIGJ0cjEgPSBmZHQuYiwgYnRyMiA9IGJ0cjE7XG4gICAgICAgIC8vIGZzZSBwb3NcbiAgICAgICAgLy8gcHJlLWluY3JlbWVudCB0byBhY2NvdW50IGZvciBvcmlnaW5hbCBkZWZpY2l0IG9mIDFcbiAgICAgICAgdmFyIGZwb3MgPSAoKytidCA8PCAzKSAtIDggKyBtc2IobGIpO1xuICAgICAgICBmb3IgKDs7KSB7XG4gICAgICAgICAgICBmcG9zIC09IGJ0cjE7XG4gICAgICAgICAgICBpZiAoZnBvcyA8IGVwb3MpXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB2YXIgY2J0ID0gZnBvcyA+PiAzO1xuICAgICAgICAgICAgc3QxICs9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoZnBvcyAmIDcpKSAmICgoMSA8PCBidHIxKSAtIDEpO1xuICAgICAgICAgICAgaHdbKyt3Y10gPSBmZHQuc1tzdDFdO1xuICAgICAgICAgICAgZnBvcyAtPSBidHIyO1xuICAgICAgICAgICAgaWYgKGZwb3MgPCBlcG9zKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2J0ID0gZnBvcyA+PiAzO1xuICAgICAgICAgICAgc3QyICs9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoZnBvcyAmIDcpKSAmICgoMSA8PCBidHIyKSAtIDEpO1xuICAgICAgICAgICAgaHdbKyt3Y10gPSBmZHQuc1tzdDJdO1xuICAgICAgICAgICAgYnRyMSA9IGZkdC5uW3N0MV07XG4gICAgICAgICAgICBzdDEgPSBmZHQudFtzdDFdO1xuICAgICAgICAgICAgYnRyMiA9IGZkdC5uW3N0Ml07XG4gICAgICAgICAgICBzdDIgPSBmZHQudFtzdDJdO1xuICAgICAgICB9XG4gICAgICAgIGlmICgrK3djID4gMjU1KVxuICAgICAgICAgICAgZXJyKDApO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgd2MgPSBoYiAtIDEyNztcbiAgICAgICAgZm9yICg7IGkgPCB3YzsgaSArPSAyKSB7XG4gICAgICAgICAgICB2YXIgYnl0ZSA9IGRhdFsrK2J0XTtcbiAgICAgICAgICAgIGh3W2ldID0gYnl0ZSA+PiA0O1xuICAgICAgICAgICAgaHdbaSArIDFdID0gYnl0ZSAmIDE1O1xuICAgICAgICB9XG4gICAgICAgICsrYnQ7XG4gICAgfVxuICAgIC8vIHdlaWdodCBleHBvbmVudGlhbCBzdW1cbiAgICB2YXIgd2VzID0gMDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgd2M7ICsraSkge1xuICAgICAgICB2YXIgd3QgPSBod1tpXTtcbiAgICAgICAgLy8gYml0cyBtdXN0IGJlIGF0IG1vc3QgMTEsIHNhbWUgYXMgd2VpZ2h0XG4gICAgICAgIGlmICh3dCA+IDExKVxuICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICB3ZXMgKz0gd3QgJiYgKDEgPDwgKHd0IC0gMSkpO1xuICAgIH1cbiAgICAvLyBtYXggYml0c1xuICAgIHZhciBtYiA9IG1zYih3ZXMpICsgMTtcbiAgICAvLyB0YWJsZSBzaXplXG4gICAgdmFyIHRzID0gMSA8PCBtYjtcbiAgICAvLyByZW1haW5pbmcgc3VtXG4gICAgdmFyIHJlbSA9IHRzIC0gd2VzO1xuICAgIC8vIG11c3QgYmUgcG93ZXIgb2YgMlxuICAgIGlmIChyZW0gJiAocmVtIC0gMSkpXG4gICAgICAgIGVycigwKTtcbiAgICBod1t3YysrXSA9IG1zYihyZW0pICsgMTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgd2M7ICsraSkge1xuICAgICAgICB2YXIgd3QgPSBod1tpXTtcbiAgICAgICAgKytyY1tod1tpXSA9IHd0ICYmIChtYiArIDEgLSB3dCldO1xuICAgIH1cbiAgICAvLyBodWYgYnVmXG4gICAgdmFyIGhidWYgPSBuZXcgdTgodHMgPDwgMSk7XG4gICAgLy8gICAgc3ltYm9scyAgICAgICAgICAgICAgICAgICAgICBudW0gYml0c1xuICAgIHZhciBzeW1zID0gaGJ1Zi5zdWJhcnJheSgwLCB0cyksIG5iID0gaGJ1Zi5zdWJhcnJheSh0cyk7XG4gICAgcmlbbWJdID0gMDtcbiAgICBmb3IgKGkgPSBtYjsgaSA+IDA7IC0taSkge1xuICAgICAgICB2YXIgcHYgPSByaVtpXTtcbiAgICAgICAgZmlsbChuYiwgaSwgcHYsIHJpW2kgLSAxXSA9IHB2ICsgcmNbaV0gKiAoMSA8PCAobWIgLSBpKSkpO1xuICAgIH1cbiAgICBpZiAocmlbMF0gIT0gdHMpXG4gICAgICAgIGVycigwKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgd2M7ICsraSkge1xuICAgICAgICB2YXIgYml0cyA9IGh3W2ldO1xuICAgICAgICBpZiAoYml0cykge1xuICAgICAgICAgICAgdmFyIGNvZGUgPSByaVtiaXRzXTtcbiAgICAgICAgICAgIGZpbGwoc3ltcywgaSwgY29kZSwgcmlbYml0c10gPSBjb2RlICsgKDEgPDwgKG1iIC0gYml0cykpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW2J0LCB7XG4gICAgICAgICAgICBuOiBuYixcbiAgICAgICAgICAgIGI6IG1iLFxuICAgICAgICAgICAgczogc3ltc1xuICAgICAgICB9XTtcbn07XG4vLyBUYWJsZXMgZ2VuZXJhdGVkIHVzaW5nIHRoaXM6XG4vLyBodHRwczovL2dpc3QuZ2l0aHViLmNvbS8xMDFhcnJvd3ovYTk3OTQ1MmQ0MzU1OTkyY2JmOGYyNTdjYmZmYzllZGRcbi8vIGRlZmF1bHQgbGl0ZXJhbCBsZW5ndGggdGFibGVcbnZhciBkbGx0ID0gLyojX19QVVJFX18qLyByZnNlKC8qI19fUFVSRV9fKi8gbmV3IHU4KFtcbiAgICA4MSwgMTYsIDk5LCAxNDAsIDQ5LCAxOTgsIDI0LCA5OSwgMTIsIDMzLCAxOTYsIDI0LCA5OSwgMTAyLCAxMDIsIDEzNCwgNzAsIDE0NiwgNFxuXSksIDAsIDYpWzFdO1xuLy8gZGVmYXVsdCBtYXRjaCBsZW5ndGggdGFibGVcbnZhciBkbWx0ID0gLyojX19QVVJFX18qLyByZnNlKC8qI19fUFVSRV9fKi8gbmV3IHU4KFtcbiAgICAzMywgMjAsIDE5NiwgMjQsIDk5LCAxNDAsIDMzLCAxMzIsIDE2LCA2NiwgOCwgMzMsIDEzMiwgMTYsIDY2LCA4LCAzMywgNjgsIDY4LCA2OCwgNjgsIDY4LCA2OCwgNjgsIDY4LCAzNiwgOVxuXSksIDAsIDYpWzFdO1xuLy8gZGVmYXVsdCBvZmZzZXQgY29kZSB0YWJsZVxudmFyIGRvY3QgPSAvKiNfX1BVUkVfXyAqLyByZnNlKC8qI19fUFVSRV9fKi8gbmV3IHU4KFtcbiAgICAzMiwgMTMyLCAxNiwgNjYsIDEwMiwgNzAsIDY4LCA2OCwgNjgsIDY4LCAzNiwgNzMsIDJcbl0pLCAwLCA1KVsxXTtcbi8vIGJpdHMgdG8gYmFzZWxpbmVcbnZhciBiMmJsID0gZnVuY3Rpb24gKGIsIHMpIHtcbiAgICB2YXIgbGVuID0gYi5sZW5ndGgsIGJsID0gbmV3IGkzMihsZW4pO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgYmxbaV0gPSBzO1xuICAgICAgICBzICs9IDEgPDwgYltpXTtcbiAgICB9XG4gICAgcmV0dXJuIGJsO1xufTtcbi8vIGxpdGVyYWwgbGVuZ3RoIGJpdHNcbnZhciBsbGIgPSAvKiNfX1BVUkVfXyAqLyBuZXcgdTgoKCAvKiNfX1BVUkVfXyAqL25ldyBpMzIoW1xuICAgIDAsIDAsIDAsIDAsIDE2ODQzMDA5LCA1MDUyODc3MCwgMTM0Njc4MDIwLCAyMDIwNTAwNTcsIDI2OTQyMjA5M1xuXSkpLmJ1ZmZlciwgMCwgMzYpO1xuLy8gbGl0ZXJhbCBsZW5ndGggYmFzZWxpbmVcbnZhciBsbGJsID0gLyojX19QVVJFX18gKi8gYjJibChsbGIsIDApO1xuLy8gbWF0Y2ggbGVuZ3RoIGJpdHNcbnZhciBtbGIgPSAvKiNfX1BVUkVfXyAqLyBuZXcgdTgoKCAvKiNfX1BVUkVfXyAqL25ldyBpMzIoW1xuICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE2ODQzMDA5LCA1MDUyODc3MCwgMTE3NzY5MjIwLCAxODUyMDcwNDgsIDI1MjU3OTA4NCwgMTZcbl0pKS5idWZmZXIsIDAsIDUzKTtcbi8vIG1hdGNoIGxlbmd0aCBiYXNlbGluZVxudmFyIG1sYmwgPSAvKiNfX1BVUkVfXyAqLyBiMmJsKG1sYiwgMyk7XG4vLyBkZWNvZGUgaHVmZm1hbiBzdHJlYW1cbnZhciBkaHUgPSBmdW5jdGlvbiAoZGF0LCBvdXQsIGh1KSB7XG4gICAgdmFyIGxlbiA9IGRhdC5sZW5ndGgsIHNzID0gb3V0Lmxlbmd0aCwgbGIgPSBkYXRbbGVuIC0gMV0sIG1zayA9ICgxIDw8IGh1LmIpIC0gMSwgZWIgPSAtaHUuYjtcbiAgICBpZiAoIWxiKVxuICAgICAgICBlcnIoMCk7XG4gICAgdmFyIHN0ID0gMCwgYnRyID0gaHUuYiwgcG9zID0gKGxlbiA8PCAzKSAtIDggKyBtc2IobGIpIC0gYnRyLCBpID0gLTE7XG4gICAgZm9yICg7IHBvcyA+IGViICYmIGkgPCBzczspIHtcbiAgICAgICAgdmFyIGNidCA9IHBvcyA+PiAzO1xuICAgICAgICB2YXIgdmFsID0gKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpKSA+PiAocG9zICYgNyk7XG4gICAgICAgIHN0ID0gKChzdCA8PCBidHIpIHwgdmFsKSAmIG1zaztcbiAgICAgICAgb3V0WysraV0gPSBodS5zW3N0XTtcbiAgICAgICAgcG9zIC09IChidHIgPSBodS5uW3N0XSk7XG4gICAgfVxuICAgIGlmIChwb3MgIT0gZWIgfHwgaSArIDEgIT0gc3MpXG4gICAgICAgIGVycigwKTtcbn07XG4vLyBkZWNvZGUgaHVmZm1hbiBzdHJlYW0gNHhcbi8vIFRPRE86IHVzZSB3b3JrZXJzIHRvIHBhcmFsbGVsaXplXG52YXIgZGh1NCA9IGZ1bmN0aW9uIChkYXQsIG91dCwgaHUpIHtcbiAgICB2YXIgYnQgPSA2O1xuICAgIHZhciBzcyA9IG91dC5sZW5ndGgsIHN6MSA9IChzcyArIDMpID4+IDIsIHN6MiA9IHN6MSA8PCAxLCBzejMgPSBzejEgKyBzejI7XG4gICAgZGh1KGRhdC5zdWJhcnJheShidCwgYnQgKz0gZGF0WzBdIHwgKGRhdFsxXSA8PCA4KSksIG91dC5zdWJhcnJheSgwLCBzejEpLCBodSk7XG4gICAgZGh1KGRhdC5zdWJhcnJheShidCwgYnQgKz0gZGF0WzJdIHwgKGRhdFszXSA8PCA4KSksIG91dC5zdWJhcnJheShzejEsIHN6MiksIGh1KTtcbiAgICBkaHUoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBkYXRbNF0gfCAoZGF0WzVdIDw8IDgpKSwgb3V0LnN1YmFycmF5KHN6Miwgc3ozKSwgaHUpO1xuICAgIGRodShkYXQuc3ViYXJyYXkoYnQpLCBvdXQuc3ViYXJyYXkoc3ozKSwgaHUpO1xufTtcbi8vIHJlYWQgWnN0YW5kYXJkIGJsb2NrXG52YXIgcnpiID0gZnVuY3Rpb24gKGRhdCwgc3QsIG91dCkge1xuICAgIHZhciBfYTtcbiAgICB2YXIgYnQgPSBzdC5iO1xuICAgIC8vICAgIGJ5dGUgMCAgICAgICAgYmxvY2sgdHlwZVxuICAgIHZhciBiMCA9IGRhdFtidF0sIGJ0eXBlID0gKGIwID4+IDEpICYgMztcbiAgICBzdC5sID0gYjAgJiAxO1xuICAgIHZhciBzeiA9IChiMCA+PiAzKSB8IChkYXRbYnQgKyAxXSA8PCA1KSB8IChkYXRbYnQgKyAyXSA8PCAxMyk7XG4gICAgLy8gZW5kIGJ5dGUgZm9yIGJsb2NrXG4gICAgdmFyIGVidCA9IChidCArPSAzKSArIHN6O1xuICAgIGlmIChidHlwZSA9PSAxKSB7XG4gICAgICAgIGlmIChidCA+PSBkYXQubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdC5iID0gYnQgKyAxO1xuICAgICAgICBpZiAob3V0KSB7XG4gICAgICAgICAgICBmaWxsKG91dCwgZGF0W2J0XSwgc3QueSwgc3QueSArPSBzeik7XG4gICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmaWxsKG5ldyB1OChzeiksIGRhdFtidF0pO1xuICAgIH1cbiAgICBpZiAoZWJ0ID4gZGF0Lmxlbmd0aClcbiAgICAgICAgcmV0dXJuO1xuICAgIGlmIChidHlwZSA9PSAwKSB7XG4gICAgICAgIHN0LmIgPSBlYnQ7XG4gICAgICAgIGlmIChvdXQpIHtcbiAgICAgICAgICAgIG91dC5zZXQoZGF0LnN1YmFycmF5KGJ0LCBlYnQpLCBzdC55KTtcbiAgICAgICAgICAgIHN0LnkgKz0gc3o7XG4gICAgICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzbGMoZGF0LCBidCwgZWJ0KTtcbiAgICB9XG4gICAgaWYgKGJ0eXBlID09IDIpIHtcbiAgICAgICAgLy8gICAgYnl0ZSAzICAgICAgICBsaXQgYnR5cGUgICAgIHNpemUgZm9ybWF0XG4gICAgICAgIHZhciBiMyA9IGRhdFtidF0sIGxidCA9IGIzICYgMywgc2YgPSAoYjMgPj4gMikgJiAzO1xuICAgICAgICAvLyBsaXQgc3JjIHNpemUgIGxpdCBjbXAgc3ogNCBzdHJlYW1zXG4gICAgICAgIHZhciBsc3MgPSBiMyA+PiA0LCBsY3MgPSAwLCBzNCA9IDA7XG4gICAgICAgIGlmIChsYnQgPCAyKSB7XG4gICAgICAgICAgICBpZiAoc2YgJiAxKVxuICAgICAgICAgICAgICAgIGxzcyB8PSAoZGF0WysrYnRdIDw8IDQpIHwgKChzZiAmIDIpICYmIChkYXRbKytidF0gPDwgMTIpKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBsc3MgPSBiMyA+PiAzO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgczQgPSBzZjtcbiAgICAgICAgICAgIGlmIChzZiA8IDIpXG4gICAgICAgICAgICAgICAgbHNzIHw9ICgoZGF0WysrYnRdICYgNjMpIDw8IDQpLCBsY3MgPSAoZGF0W2J0XSA+PiA2KSB8IChkYXRbKytidF0gPDwgMik7XG4gICAgICAgICAgICBlbHNlIGlmIChzZiA9PSAyKVxuICAgICAgICAgICAgICAgIGxzcyB8PSAoZGF0WysrYnRdIDw8IDQpIHwgKChkYXRbKytidF0gJiAzKSA8PCAxMiksIGxjcyA9IChkYXRbYnRdID4+IDIpIHwgKGRhdFsrK2J0XSA8PCA2KTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBsc3MgfD0gKGRhdFsrK2J0XSA8PCA0KSB8ICgoZGF0WysrYnRdICYgNjMpIDw8IDEyKSwgbGNzID0gKGRhdFtidF0gPj4gNikgfCAoZGF0WysrYnRdIDw8IDIpIHwgKGRhdFsrK2J0XSA8PCAxMCk7XG4gICAgICAgIH1cbiAgICAgICAgKytidDtcbiAgICAgICAgLy8gYWRkIGxpdGVyYWxzIHRvIGVuZCAtIGNhbiBuZXZlciBvdmVybGFwIHdpdGggYmFja3JlZmVyZW5jZXMgYmVjYXVzZSB1bnVzZWQgbGl0ZXJhbHMgYWx3YXlzIGFwcGVuZGVkXG4gICAgICAgIHZhciBidWYgPSBvdXQgPyBvdXQuc3ViYXJyYXkoc3QueSwgc3QueSArIHN0Lm0pIDogbmV3IHU4KHN0Lm0pO1xuICAgICAgICAvLyBzdGFydGluZyBwb2ludCBmb3IgbGl0ZXJhbHNcbiAgICAgICAgdmFyIHNwbCA9IGJ1Zi5sZW5ndGggLSBsc3M7XG4gICAgICAgIGlmIChsYnQgPT0gMClcbiAgICAgICAgICAgIGJ1Zi5zZXQoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBsc3MpLCBzcGwpO1xuICAgICAgICBlbHNlIGlmIChsYnQgPT0gMSlcbiAgICAgICAgICAgIGZpbGwoYnVmLCBkYXRbYnQrK10sIHNwbCk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gaHVmZm1hbiB0YWJsZVxuICAgICAgICAgICAgdmFyIGh1ID0gc3QuaDtcbiAgICAgICAgICAgIGlmIChsYnQgPT0gMikge1xuICAgICAgICAgICAgICAgIHZhciBodWQgPSByaHUoZGF0LCBidCk7XG4gICAgICAgICAgICAgICAgLy8gc3VidHJhY3QgZGVzY3JpcHRpb24gbGVuZ3RoXG4gICAgICAgICAgICAgICAgbGNzICs9IGJ0IC0gKGJ0ID0gaHVkWzBdKTtcbiAgICAgICAgICAgICAgICBzdC5oID0gaHUgPSBodWRbMV07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghaHUpXG4gICAgICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAgICAgKHM0ID8gZGh1NCA6IGRodSkoZGF0LnN1YmFycmF5KGJ0LCBidCArPSBsY3MpLCBidWYuc3ViYXJyYXkoc3BsKSwgaHUpO1xuICAgICAgICB9XG4gICAgICAgIC8vIG51bSBzZXF1ZW5jZXNcbiAgICAgICAgdmFyIG5zID0gZGF0W2J0KytdO1xuICAgICAgICBpZiAobnMpIHtcbiAgICAgICAgICAgIGlmIChucyA9PSAyNTUpXG4gICAgICAgICAgICAgICAgbnMgPSAoZGF0W2J0KytdIHwgKGRhdFtidCsrXSA8PCA4KSkgKyAweDdGMDA7XG4gICAgICAgICAgICBlbHNlIGlmIChucyA+IDEyNylcbiAgICAgICAgICAgICAgICBucyA9ICgobnMgLSAxMjgpIDw8IDgpIHwgZGF0W2J0KytdO1xuICAgICAgICAgICAgLy8gc3ltYm9sIGNvbXByZXNzaW9uIG1vZGVzXG4gICAgICAgICAgICB2YXIgc2NtID0gZGF0W2J0KytdO1xuICAgICAgICAgICAgaWYgKHNjbSAmIDMpXG4gICAgICAgICAgICAgICAgZXJyKDApO1xuICAgICAgICAgICAgdmFyIGR0cyA9IFtkbWx0LCBkb2N0LCBkbGx0XTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAyOyBpID4gLTE7IC0taSkge1xuICAgICAgICAgICAgICAgIHZhciBtZCA9IChzY20gPj4gKChpIDw8IDEpICsgMikpICYgMztcbiAgICAgICAgICAgICAgICBpZiAobWQgPT0gMSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBybGUgYnVmXG4gICAgICAgICAgICAgICAgICAgIHZhciByYnVmID0gbmV3IHU4KFswLCAwLCBkYXRbYnQrK11dKTtcbiAgICAgICAgICAgICAgICAgICAgZHRzW2ldID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgczogcmJ1Zi5zdWJhcnJheSgyLCAzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG46IHJidWYuc3ViYXJyYXkoMCwgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICB0OiBuZXcgdTE2KHJidWYuYnVmZmVyLCAwLCAxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGI6IDBcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobWQgPT0gMikge1xuICAgICAgICAgICAgICAgICAgICAvLyBhY2N1cmFjeSBsb2cgOCBmb3Igb2Zmc2V0cywgOSBmb3Igb3RoZXJzXG4gICAgICAgICAgICAgICAgICAgIF9hID0gcmZzZShkYXQsIGJ0LCA5IC0gKGkgJiAxKSksIGJ0ID0gX2FbMF0sIGR0c1tpXSA9IF9hWzFdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChtZCA9PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3QudClcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycigwKTtcbiAgICAgICAgICAgICAgICAgICAgZHRzW2ldID0gc3QudFtpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgX2IgPSBzdC50ID0gZHRzLCBtbHQgPSBfYlswXSwgb2N0ID0gX2JbMV0sIGxsdCA9IF9iWzJdO1xuICAgICAgICAgICAgdmFyIGxiID0gZGF0W2VidCAtIDFdO1xuICAgICAgICAgICAgaWYgKCFsYilcbiAgICAgICAgICAgICAgICBlcnIoMCk7XG4gICAgICAgICAgICB2YXIgc3BvcyA9IChlYnQgPDwgMykgLSA4ICsgbXNiKGxiKSAtIGxsdC5iLCBjYnQgPSBzcG9zID4+IDMsIG91YnQgPSAwO1xuICAgICAgICAgICAgdmFyIGxzdCA9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBsbHQuYikgLSAxKTtcbiAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG9jdC5iKSA+PiAzO1xuICAgICAgICAgICAgdmFyIG9zdCA9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBvY3QuYikgLSAxKTtcbiAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG1sdC5iKSA+PiAzO1xuICAgICAgICAgICAgdmFyIG1zdCA9ICgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBtbHQuYikgLSAxKTtcbiAgICAgICAgICAgIGZvciAoKytuczsgLS1uczspIHtcbiAgICAgICAgICAgICAgICB2YXIgbGxjID0gbGx0LnNbbHN0XTtcbiAgICAgICAgICAgICAgICB2YXIgbGJ0ciA9IGxsdC5uW2xzdF07XG4gICAgICAgICAgICAgICAgdmFyIG1sYyA9IG1sdC5zW21zdF07XG4gICAgICAgICAgICAgICAgdmFyIG1idHIgPSBtbHQublttc3RdO1xuICAgICAgICAgICAgICAgIHZhciBvZmMgPSBvY3Quc1tvc3RdO1xuICAgICAgICAgICAgICAgIHZhciBvYnRyID0gb2N0Lm5bb3N0XTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBvZmMpID4+IDM7XG4gICAgICAgICAgICAgICAgdmFyIG9mcCA9IDEgPDwgb2ZjO1xuICAgICAgICAgICAgICAgIHZhciBvZmYgPSBvZnAgKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkgfCAoZGF0W2NidCArIDJdIDw8IDE2KSB8IChkYXRbY2J0ICsgM10gPDwgMjQpKSA+Pj4gKHNwb3MgJiA3KSkgJiAob2ZwIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG1sYlttbGNdKSA+PiAzO1xuICAgICAgICAgICAgICAgIHZhciBtbCA9IG1sYmxbbWxjXSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSB8IChkYXRbY2J0ICsgMl0gPDwgMTYpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBtbGJbbWxjXSkgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gbGxiW2xsY10pID4+IDM7XG4gICAgICAgICAgICAgICAgdmFyIGxsID0gbGxibFtsbGNdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpIHwgKGRhdFtjYnQgKyAyXSA8PCAxNikpID4+IChzcG9zICYgNykpICYgKCgxIDw8IGxsYltsbGNdKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBjYnQgPSAoc3BvcyAtPSBsYnRyKSA+PiAzO1xuICAgICAgICAgICAgICAgIGxzdCA9IGxsdC50W2xzdF0gKyAoKChkYXRbY2J0XSB8IChkYXRbY2J0ICsgMV0gPDwgOCkpID4+IChzcG9zICYgNykpICYgKCgxIDw8IGxidHIpIC0gMSkpO1xuICAgICAgICAgICAgICAgIGNidCA9IChzcG9zIC09IG1idHIpID4+IDM7XG4gICAgICAgICAgICAgICAgbXN0ID0gbWx0LnRbbXN0XSArICgoKGRhdFtjYnRdIHwgKGRhdFtjYnQgKyAxXSA8PCA4KSkgPj4gKHNwb3MgJiA3KSkgJiAoKDEgPDwgbWJ0cikgLSAxKSk7XG4gICAgICAgICAgICAgICAgY2J0ID0gKHNwb3MgLT0gb2J0cikgPj4gMztcbiAgICAgICAgICAgICAgICBvc3QgPSBvY3QudFtvc3RdICsgKCgoZGF0W2NidF0gfCAoZGF0W2NidCArIDFdIDw8IDgpKSA+PiAoc3BvcyAmIDcpKSAmICgoMSA8PCBvYnRyKSAtIDEpKTtcbiAgICAgICAgICAgICAgICBpZiAob2ZmID4gMykge1xuICAgICAgICAgICAgICAgICAgICBzdC5vWzJdID0gc3Qub1sxXTtcbiAgICAgICAgICAgICAgICAgICAgc3Qub1sxXSA9IHN0Lm9bMF07XG4gICAgICAgICAgICAgICAgICAgIHN0Lm9bMF0gPSBvZmYgLT0gMztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpZHggPSBvZmYgLSAobGwgIT0gMCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpZHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZiA9IGlkeCA9PSAzID8gc3Qub1swXSAtIDEgOiBzdC5vW2lkeF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaWR4ID4gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdC5vWzJdID0gc3Qub1sxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0Lm9bMV0gPSBzdC5vWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Qub1swXSA9IG9mZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmYgPSBzdC5vWzBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxsOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgYnVmW291YnQgKyBpXSA9IGJ1ZltzcGwgKyBpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3VidCArPSBsbCwgc3BsICs9IGxsO1xuICAgICAgICAgICAgICAgIHZhciBzdGluID0gb3VidCAtIG9mZjtcbiAgICAgICAgICAgICAgICBpZiAoc3RpbiA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbiA9IC1zdGluO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYnMgPSBzdC5lICsgc3RpbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlbiA+IG1sKVxuICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gbWw7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZltvdWJ0ICsgaV0gPSBzdC53W2JzICsgaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3VidCArPSBsZW4sIG1sIC09IGxlbiwgc3RpbiA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWw7ICsraSkge1xuICAgICAgICAgICAgICAgICAgICBidWZbb3VidCArIGldID0gYnVmW3N0aW4gKyBpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb3VidCArPSBtbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvdWJ0ICE9IHNwbCkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChzcGwgPCBidWYubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZltvdWJ0KytdID0gYnVmW3NwbCsrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgb3VidCA9IGJ1Zi5sZW5ndGg7XG4gICAgICAgICAgICBpZiAob3V0KVxuICAgICAgICAgICAgICAgIHN0LnkgKz0gb3VidDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBidWYgPSBzbGMoYnVmLCAwLCBvdWJ0KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChvdXQpIHtcbiAgICAgICAgICAgICAgICBzdC55ICs9IGxzcztcbiAgICAgICAgICAgICAgICBpZiAoc3BsKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbHNzOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZltpXSA9IGJ1ZltzcGwgKyBpXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHNwbClcbiAgICAgICAgICAgICAgICBidWYgPSBzbGMoYnVmLCBzcGwpO1xuICAgICAgICB9XG4gICAgICAgIHN0LmIgPSBlYnQ7XG4gICAgICAgIHJldHVybiBidWY7XG4gICAgfVxuICAgIGVycigyKTtcbn07XG4vLyBjb25jYXRcbnZhciBjY3QgPSBmdW5jdGlvbiAoYnVmcywgb2wpIHtcbiAgICBpZiAoYnVmcy5sZW5ndGggPT0gMSlcbiAgICAgICAgcmV0dXJuIGJ1ZnNbMF07XG4gICAgdmFyIGJ1ZiA9IG5ldyB1OChvbCk7XG4gICAgZm9yICh2YXIgaSA9IDAsIGIgPSAwOyBpIDwgYnVmcy5sZW5ndGg7ICsraSkge1xuICAgICAgICB2YXIgY2hrID0gYnVmc1tpXTtcbiAgICAgICAgYnVmLnNldChjaGssIGIpO1xuICAgICAgICBiICs9IGNoay5sZW5ndGg7XG4gICAgfVxuICAgIHJldHVybiBidWY7XG59O1xuLyoqXG4gKiBEZWNvbXByZXNzZXMgWnN0YW5kYXJkIGRhdGFcbiAqIEBwYXJhbSBkYXQgVGhlIGlucHV0IGRhdGFcbiAqIEBwYXJhbSBidWYgVGhlIG91dHB1dCBidWZmZXIuIElmIHVuc3BlY2lmaWVkLCB0aGUgZnVuY3Rpb24gd2lsbCBhbGxvY2F0ZVxuICogICAgICAgICAgICBleGFjdGx5IGVub3VnaCBtZW1vcnkgdG8gZml0IHRoZSBkZWNvbXByZXNzZWQgZGF0YS4gSWYgeW91clxuICogICAgICAgICAgICBkYXRhIGhhcyBtdWx0aXBsZSBmcmFtZXMgYW5kIHlvdSBrbm93IHRoZSBvdXRwdXQgc2l6ZSwgc3BlY2lmeWluZ1xuICogICAgICAgICAgICBpdCB3aWxsIHlpZWxkIGJldHRlciBwZXJmb3JtYW5jZS5cbiAqIEByZXR1cm5zIFRoZSBkZWNvbXByZXNzZWQgZGF0YVxuICovXG5yZXR1cm4gZnVuY3Rpb24gZGVjb21wcmVzcyhkYXQsIGJ1Zikge1xuICAgIHZhciBidCA9IDAsIGJ1ZnMgPSBbXSwgbmIgPSArIWJ1Ziwgb2wgPSAwO1xuICAgIGZvciAoOyBkYXQubGVuZ3RoOykge1xuICAgICAgICB2YXIgc3QgPSByemZoKGRhdCwgbmIgfHwgYnVmKTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdCA9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgaWYgKG5iKSB7XG4gICAgICAgICAgICAgICAgYnVmID0gbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoc3Qudy5sZW5ndGggPT0gc3QudSkge1xuICAgICAgICAgICAgICAgICAgICBidWZzLnB1c2goYnVmID0gc3Qudyk7XG4gICAgICAgICAgICAgICAgICAgIG9sICs9IHN0LnU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgYnVmcy5wdXNoKGJ1Zik7XG4gICAgICAgICAgICAgICAgc3QuZSA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmb3IgKDsgIXN0Lmw7KSB7XG4gICAgICAgICAgICAgICAgdmFyIGJsayA9IHJ6YihkYXQsIHN0LCBidWYpO1xuICAgICAgICAgICAgICAgIGlmICghYmxrKVxuICAgICAgICAgICAgICAgICAgICBlcnIoNSk7XG4gICAgICAgICAgICAgICAgaWYgKGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgc3QuZSA9IHN0Lnk7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1ZnMucHVzaChibGspO1xuICAgICAgICAgICAgICAgICAgICBvbCArPSBibGsubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjcHcoc3QudywgMCwgYmxrLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgIHN0Lncuc2V0KGJsaywgc3Qudy5sZW5ndGggLSBibGsubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBidCA9IHN0LmIgKyAoc3QuYyAqIDQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGJ0ID0gc3Q7XG4gICAgICAgIGRhdCA9IGRhdC5zdWJhcnJheShidCk7XG4gICAgfVxuICAgIHJldHVybiBjY3QoYnVmcywgb2wpO1xufVxufSkgKClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICBCZW5vaXQgVmF1Z29uLCBFTlNUQSAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogUGFkZGluZyBwb3NpdGlvbi4gKilcbnR5cGUgcGFkdHkgPVxuICB8IExlZnQgICAoKiBUZXh0IGlzIGxlZnQganVzdGlmaWVkICgnLScgb3B0aW9uKS4gICAgICAgICAgICAgICAqKVxuICB8IFJpZ2h0ICAoKiBUZXh0IGlzIHJpZ2h0IGp1c3RpZmllZCAobm8gJy0nIG9wdGlvbikuICAgICAgICAgICAqKVxuICB8IFplcm9zICAoKiBUZXh0IGlzIHJpZ2h0IGp1c3RpZmllZCBieSB6ZXJvcyAoc2VlICcwJyBvcHRpb24pLiAqKVxuXG4oKioqKVxuXG4oKiBJbnRlZ2VyIGNvbnZlcnNpb24uICopXG50eXBlIGludF9jb252ID1cbiAgfCBJbnRfZCB8IEludF9wZCB8IEludF9zZCAgICAgICAgKCogICVkIHwgJStkIHwgJSBkICAqKVxuICB8IEludF9pIHwgSW50X3BpIHwgSW50X3NpICAgICAgICAoKiAgJWkgfCAlK2kgfCAlIGkgICopXG4gIHwgSW50X3ggfCBJbnRfQ3ggICAgICAgICAgICAgICAgICgqICAleCB8ICUjeCAgICAgICAgKilcbiAgfCBJbnRfWCB8IEludF9DWCAgICAgICAgICAgICAgICAgKCogICVYIHwgJSNYICAgICAgICAqKVxuICB8IEludF9vIHwgSW50X0NvICAgICAgICAgICAgICAgICAoKiAgJW8gfCAlI28gICAgICAgICopXG4gIHwgSW50X3UgICAgICAgICAgICAgICAgICAgICAgICAgICgqICAldSAgICAgICAgICAgICAgKilcbiAgfCBJbnRfQ2QgfCBJbnRfQ2kgfCBJbnRfQ3UgICAgICAgKCogICUjZCB8ICUjaSB8ICUjdSAqKVxuXG4oKiBGbG9hdCBjb252ZXJzaW9uLiAqKVxudHlwZSBmbG9hdF9mbGFnX2NvbnYgPVxuICB8IEZsb2F0X2ZsYWdfICAgICAgICAgICAgICAgICAgICAoKiAlW2ZlRWdHRmhIXSAqKVxuICB8IEZsb2F0X2ZsYWdfcCAgICAgICAgICAgICAgICAgICAoKiAlK1tmZUVnR0ZoSF0gKilcbiAgfCBGbG9hdF9mbGFnX3MgICAgICAgICAgICAgICAgICAgKCogJSBbZmVFZ0dGaEhdICopXG50eXBlIGZsb2F0X2tpbmRfY29udiA9XG4gIHwgRmxvYXRfZiAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZiB8ICUrZiB8ICUgZiAgKilcbiAgfCBGbG9hdF9lICAgICAgICAgICAgICAgICAgICAgICAgKCogICVlIHwgJStlIHwgJSBlICAqKVxuICB8IEZsb2F0X0UgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUUgfCAlK0UgfCAlIEUgICopXG4gIHwgRmxvYXRfZyAgICAgICAgICAgICAgICAgICAgICAgICgqICAlZyB8ICUrZyB8ICUgZyAgKilcbiAgfCBGbG9hdF9HICAgICAgICAgICAgICAgICAgICAgICAgKCogICVHIHwgJStHIHwgJSBHICAqKVxuICB8IEZsb2F0X0YgICAgICAgICAgICAgICAgICAgICAgICAoKiAgJUYgfCAlK0YgfCAlIEYgICopXG4gIHwgRmxvYXRfaCAgICAgICAgICAgICAgICAgICAgICAgICgqICAlaCB8ICUraCB8ICUgaCAgKilcbiAgfCBGbG9hdF9IICAgICAgICAgICAgICAgICAgICAgICAgKCogICVIIHwgJStIIHwgJSBIICAqKVxuICB8IEZsb2F0X0NGICAgICAgICAgICAgICAgICAgICAgICAoKiAgJSNGfCAlKyNGfCAlICNGICopXG50eXBlIGZsb2F0X2NvbnYgPSBmbG9hdF9mbGFnX2NvbnYgKiBmbG9hdF9raW5kX2NvbnZcblxuKCoqKilcblxuKCogQ2hhciBzZXRzIChzZWUgJVsuLi5dKSBhcmUgYml0bWFwcyBpbXBsZW1lbnRlZCBhcyAzMi1jaGFyIHN0cmluZ3MuICopXG50eXBlIGNoYXJfc2V0ID0gc3RyaW5nXG5cbigqKiopXG5cbigqIENvdW50ZXIgdXNlZCBpbiBTY2FuZi4gKilcbnR5cGUgY291bnRlciA9XG4gIHwgTGluZV9jb3VudGVyICAgICAoKiAgJWwgICAgICAqKVxuICB8IENoYXJfY291bnRlciAgICAgKCogICVuICAgICAgKilcbiAgfCBUb2tlbl9jb3VudGVyICAgICgqICAlTiwgJUwgICopXG5cbigqKiopXG5cbigqIFBhZGRpbmcgb2Ygc3RyaW5ncyBhbmQgbnVtYmVycy4gKilcbnR5cGUgKCdhLCAnYikgcGFkZGluZyA9XG4gICgqIE5vIHBhZGRpbmcgKGV4OiBcIiVkXCIpICopXG4gIHwgTm9fcGFkZGluZyAgOiAoJ2EsICdhKSBwYWRkaW5nXG4gICgqIExpdGVyYWwgcGFkZGluZyAoZXg6IFwiJThkXCIpICopXG4gIHwgTGl0X3BhZGRpbmcgOiBwYWR0eSAqIGludCAtPiAoJ2EsICdhKSBwYWRkaW5nXG4gICgqIFBhZGRpbmcgYXMgZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUqZFwiKSAqKVxuICB8IEFyZ19wYWRkaW5nIDogcGFkdHkgLT4gKGludCAtPiAnYSwgJ2EpIHBhZGRpbmdcblxuKCogU29tZSBmb3JtYXRzLCBzdWNoIGFzICVfZCxcbiAgIG9ubHkgYWNjZXB0IGFuIG9wdGlvbmFsIG51bWJlciBhcyBwYWRkaW5nIG9wdGlvbiAobm8gZXh0cmEgYXJndW1lbnQpICopXG50eXBlIHBhZF9vcHRpb24gPSBpbnQgb3B0aW9uXG5cbigqIFByZWNpc2lvbiBvZiBmbG9hdHMgYW5kICcwJy1wYWRkaW5nIG9mIGludGVnZXJzLiAqKVxudHlwZSAoJ2EsICdiKSBwcmVjaXNpb24gPVxuICAoKiBObyBwcmVjaXNpb24gKGV4OiBcIiVmXCIpICopXG4gIHwgTm9fcHJlY2lzaW9uIDogKCdhLCAnYSkgcHJlY2lzaW9uXG4gICgqIExpdGVyYWwgcHJlY2lzaW9uIChleDogXCIlLjNmXCIpICopXG4gIHwgTGl0X3ByZWNpc2lvbiA6IGludCAtPiAoJ2EsICdhKSBwcmVjaXNpb25cbiAgKCogUHJlY2lzaW9uIGFzIGV4dHJhIGFyZ3VtZW50IChleDogXCIlLipmXCIpICopXG4gIHwgQXJnX3ByZWNpc2lvbiA6IChpbnQgLT4gJ2EsICdhKSBwcmVjaXNpb25cblxuKCogU29tZSBmb3JtYXRzLCBzdWNoIGFzICVfZixcbiAgIG9ubHkgYWNjZXB0IGFuIG9wdGlvbmFsIG51bWJlciBhcyBwcmVjaXNpb24gb3B0aW9uIChubyBleHRyYSBhcmd1bWVudCkgKilcbnR5cGUgcHJlY19vcHRpb24gPSBpbnQgb3B0aW9uXG5cbigqIHNlZSB0aGUgQ3VzdG9tIGZvcm1hdCBjb21iaW5hdG9yICopXG50eXBlICgnYSwgJ2IsICdjKSBjdXN0b21fYXJpdHkgPVxuICB8IEN1c3RvbV96ZXJvIDogKCdhLCBzdHJpbmcsICdhKSBjdXN0b21fYXJpdHlcbiAgfCBDdXN0b21fc3VjYyA6ICgnYSwgJ2IsICdjKSBjdXN0b21fYXJpdHkgLT5cbiAgICAoJ2EsICd4IC0+ICdiLCAneCAtPiAnYykgY3VzdG9tX2FyaXR5XG5cbigqKiopXG5cbigqICAgICAgICBSZWxhdGlvbmFsIGZvcm1hdCB0eXBlc1xuXG5JbiB0aGUgZmlyc3QgZm9ybWF0K2dhZHRzIGltcGxlbWVudGF0aW9uLCB0aGUgdHlwZSBmb3IgJSguLiUpIGluIHRoZVxuZm10IEdBRFQgd2FzIGFzIGZvbGxvd3M6XG5cbnwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgIHBhZF9vcHRpb24gKiAoJ2QxLCAncTEsICdkMiwgJ3EyKSByZWFkZXJfbmJfdW5pZmllciAqXG4gICAgKCd4LCAnYiwgJ2MsICdkMSwgJ3ExLCAndSkgZm10dHkgKlxuICAgICgndSwgJ2IsICdjLCAncTEsICdlMSwgJ2YpIGZtdCAtPlxuICAgICAgKCgneCwgJ2IsICdjLCAnZDIsICdxMiwgJ3UpIGZvcm1hdDYgLT4gJ3gsICdiLCAnYywgJ2QxLCAnZTEsICdmKSBmbXRcblxuTm90aWNlIHRoYXQgdGhlICd1IHBhcmFtZXRlciBpbiAnZiBwb3NpdGlvbiBpbiB0aGUgZm9ybWF0IGFyZ3VtZW50XG4oKCd4LCAuLiwgJ3UpIGZvcm1hdDYgLT4gLi4pIGlzIGVxdWFsIHRvIHRoZSAndSBwYXJhbWV0ZXIgaW4gJ2FcbnBvc2l0aW9uIGluIHRoZSBmb3JtYXQgdGFpbCAoKCd1LCAuLiwgJ2YpIGZtdCkuIFRoaXMgbWVhbnMgdGhhdCB0aGVcbnR5cGUgb2YgdGhlIGV4cGVjdGVkIGZvcm1hdCBwYXJhbWV0ZXIgZGVwZW5kcyBvZiB3aGVyZSB0aGUgJSguLi4lKVxuYXJlIGluIHRoZSBmb3JtYXQgc3RyaW5nOlxuXG4gICMgUHJpbnRmLnByaW50ZiBcIiUoJSlcIlxuICAtIDogKHVuaXQsIG91dF9jaGFubmVsLCB1bml0LCAnX2EsICdfYSwgdW5pdClcbiAgICAgIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2IC0+IHVuaXRcbiAgPSA8ZnVuPlxuICAjIFByaW50Zi5wcmludGYgXCIlKCUpJWRcIlxuICAtIDogKGludCAtPiB1bml0LCBvdXRfY2hhbm5lbCwgdW5pdCwgJ19hLCAnX2EsIGludCAtPiB1bml0KVxuICAgICAgQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmZvcm1hdDYgLT4gaW50IC0+IHVuaXRcbiAgPSA8ZnVuPlxuXG5PbiB0aGUgY29udHJhcnksIHRoZSBsZWdhY3kgdHlwZXIgZ2l2ZXMgYSBjbGV2ZXIgdHlwZSB0aGF0IGRvZXMgbm90XG5kZXBlbmQgb24gdGhlIHBvc2l0aW9uIG9mICUoLi4lKSBpbiB0aGUgZm9ybWF0IHN0cmluZy4gRm9yIGV4YW1wbGUsXG4lKCUpIHdpbGwgaGF2ZSB0aGUgcG9seW1vcnBoaWMgdHlwZSAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSk6IGl0IGNhblxuYmUgY29uY2F0ZW5hdGVkIHRvIGFueSBmb3JtYXQgdHlwZSwgYW5kIG9ubHkgZW5mb3JjZXMgdGhlIGNvbnN0cmFpbnRcbnRoYXQgaXRzICdhIGFuZCAnZiBwYXJhbWV0ZXJzIGFyZSBlcXVhbCAobm8gZm9ybWF0IGFyZ3VtZW50cykgYW5kICdkXG5hbmQgJ2UgYXJlIGVxdWFsIChubyByZWFkZXIgYXJndW1lbnQpLlxuXG5UaGUgd2Vha2VuaW5nIG9mIHRoaXMgcGFyYW1ldGVyIHR5cGUgaW4gdGhlIEdBRFQgdmVyc2lvbiBicm9rZSB1c2VyXG5jb2RlIChpbiBmYWN0IGl0IGVzc2VudGlhbGx5IG1hZGUgJSguLi4lKSB1bnVzYWJsZSBleGNlcHQgYXQgdGhlIGxhc3RcbnBvc2l0aW9uIG9mIGEgZm9ybWF0KS4gSW4gcGFydGljdWxhciwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3Qgd29ya1xuYW55bW9yZTpcblxuICBmdW4gc2VwIC0+XG4gICAgRm9ybWF0LnByaW50ZiBcImZvbyUoJSliYXIlKCUpYmF6XCIgc2VwIHNlcFxuXG5BcyB0aGUgdHlwZS1jaGVja2VyIHdvdWxkIHJlcXVpcmUgdHdvICppbmNvbXBhdGlibGUqIHR5cGVzIGZvciB0aGUgJSglKVxuaW4gZGlmZmVyZW50IHBvc2l0aW9ucy5cblxuVGhlIHNvbHV0aW9uIHRvIHJlZ2FpbiBhIGdlbmVyYWwgdHlwZSBmb3IgJSguLiUpIGlzIHRvIGdlbmVyYWxpemUgdGhpc1xudGVjaG5pcXVlLCBub3Qgb25seSBvbiB0aGUgJ2QsICdlIHBhcmFtZXRlcnMsIGJ1dCBvbiBhbGwgc2l4XG5wYXJhbWV0ZXJzIG9mIGEgZm9ybWF0OiB3ZSBpbnRyb2R1Y2UgYSBcInJlbGF0aW9uYWxcIiB0eXBlXG4gICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG53aG9zZSB2YWx1ZXMgYXJlIHByb29mcyB0aGF0ICgnYTEsIC4uLCAnZjEpIGFuZCAoJ2EyLCAuLiwgJ2YyKSBtb3JhbGx5XG5jb3JyZXNwb25kIHRvIHRoZSBzYW1lIGZvcm1hdCB0eXBlOiAnYTEgaXMgb2J0YWluZWQgZnJvbSAnZjEsJ2IxLCdjMVxuaW4gdGhlIGV4YWN0IHNhbWUgd2F5IHRoYXQgJ2EyIGlzIG9idGFpbmVkIGZyb20gJ2YyLCdiMiwnYzIsIGV0Yy5cblxuRm9yIGV4YW1wbGUsIHRoZSByZWxhdGlvbiBiZXR3ZWVuIHR3byBmb3JtYXQgdHlwZXMgYmVnaW5uaW5nIHdpdGggYSBDaGFyXG5wYXJhbWV0ZXIgaXMgYXMgZm9sbG93czpcblxufCBDaGFyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWMgICopXG4gICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgIChjaGFyIC0+ICdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgIGNoYXIgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG5cbkluIHRoZSBnZW5lcmFsIGNhc2UsIHRoZSB0ZXJtIHN0cnVjdHVyZSBvZiBmbXR0eV9yZWwgaXMgKGFsbW9zdFsxXSlcbmlzb21vcnBoaWMgdG8gdGhlIGZtdHR5IG9mIHRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbjogZXZlcnlcbmNvbnN0cnVjdG9yIGlzIHJlLXJlYWQgd2l0aCBhIGJpbmFyeSwgcmVsYXRpb25hbCB0eXBlLCBpbnN0ZWFkIG9mIHRoZVxucHJldmlvdXMgdW5hcnkgdHlwaW5nLiBmbXR0eSBjYW4gdGhlbiBiZSByZS1kZWZpbmVkIGFzIHRoZSBkaWFnb25hbCBvZlxuZm10dHlfcmVsOlxuXG4gIHR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5ID1cbiAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZixcbiAgICAgICAgJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHlfcmVsXG5cbk9uY2Ugd2UgaGF2ZSB0aGlzIGZtdHR5X3JlbCB0eXBlIGluIHBsYWNlLCB3ZSBjYW4gZ2l2ZSB0aGUgbW9yZVxuZ2VuZXJhbCB0eXBlIHRvICUoLi4uJSk6XG5cbnwgRm9ybWF0X3N1YnN0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSguLi4lKSAqKVxuICAgIHBhZF9vcHRpb24gKlxuICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsLFxuICAgICAnZzIsICdiLCAnYywgJ2oyLCAnZCwgJ2EpIGZtdHR5X3JlbCAqXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiLCAnYywgJ2oyLCAnZSwgJ2YpIGZtdFxuXG5XZSBhY2NlcHQgYW55IGZvcm1hdCAoKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYpICh0aGlzIGlzXG5jb21wbGV0ZWx5IHVucmVsYXRlZCB0byB0aGUgdHlwZSBvZiB0aGUgY3VycmVudCBmb3JtYXQpLCBidXQgYWxzb1xucmVxdWlyZSBhIHByb29mIHRoYXQgdGhpcyBmb3JtYXQgaXMgaW4gcmVsYXRpb24gdG8gYW5vdGhlciBmb3JtYXQgdGhhdFxuaXMgY29uY2F0ZW5hYmxlIHRvIHRoZSBmb3JtYXQgdGFpbC4gV2hlbiBleGVjdXRpbmcgYSAlKC4uLiUpIGZvcm1hdFxuKGluIGNhbWxpbnRlcm5hbEZvcm1hdC5tbDptYWtlX3ByaW50ZiBvciBzY2FuZi5tbDptYWtlX3NjYW5mKSwgd2VcbnRyYW5zdHlwZSB0aGUgZm9ybWF0IGFsb25nIHRoaXMgcmVsYXRpb24gdXNpbmcgdGhlICdyZWNhc3QnIGZ1bmN0aW9uXG50byB0cmFuc3Bvc2UgYmV0d2VlbiByZWxhdGVkIGZvcm1hdCB0eXBlcy5cblxuICB2YWwgcmVjYXN0IDpcbiAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEpIGZtdFxuICAtPiAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICAtPiAoJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10XG5cbk5PVEUgWzFdOiB0aGUgdHlwaW5nIG9mIEZvcm1hdF9zdWJzdF90eSByZXF1aXJlcyBub3Qgb25lIGZvcm1hdCB0eXBlLCBidXRcbnR3bywgb25lIHRvIGVzdGFibGlzaCB0aGUgbGluayBiZXR3ZWVuIHRoZSBmb3JtYXQgYXJndW1lbnQgYW5kIHRoZVxuZmlyc3Qgc2l4IHBhcmFtZXRlcnMsIGFuZCB0aGUgb3RoZXIgZm9yIHRoZSBsaW5rIGJldHdlZW4gdGhlIGZvcm1hdFxuYXJndW1lbnQgYW5kIHRoZSBsYXN0IHNpeCBwYXJhbWV0ZXJzLlxuXG58IEZvcm1hdF9zdWJzdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2QxLCAnYTEpIGZtdHR5X3JlbCAqXG4gICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICdnMiwgJ2IyLCAnYzIsICdqMiwgJ2QyLCAnYTIpIGZtdHR5X3JlbCAqXG4gICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzEsICdiMSwgJ2MxLCAnajEsICdlMSwgJ2YxLFxuICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnZzIsICdiMiwgJ2MyLCAnajIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuV2hlbiB3ZSBnZW5lcmF0ZSBhIGZvcm1hdCBBU1QsIHdlIGdlbmVyYXRlIGV4YWN0bHkgdGhlIHNhbWUgd2l0bmVzc1xuZm9yIGJvdGggcmVsYXRpb25zLCBhbmQgdGhlIHdpdG5lc3MtY29udmVyc2lvbiBmdW5jdGlvbnMgaW5cbmNhbWxpbnRlcm5hbEZvcm1hdCBkbyByZWx5IG9uIHRoaXMgaW52YXJpYW50LiBGb3IgZXhhbXBsZSwgdGhlXG5mdW5jdGlvbiB0aGF0IHByb3ZlcyB0aGF0IHRoZSByZWxhdGlvbiBpcyB0cmFuc2l0aXZlXG5cbiAgdmFsIHRyYW5zIDpcbiAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgLT4gKCdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIsXG4gICAgICAnYTMsICdiMywgJ2MzLCAnZDMsICdlMywgJ2YzKSBmbXR0eV9yZWxcbiAgLT4gKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAnYTMsICdiMywgJ2MzLCAnZDMsICdlMywgJ2YzKSBmbXR0eV9yZWxcblxuZG9lcyBhc3N1bWUgdGhhdCB0aGUgdHdvIGlucHV0cyBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgdGVybSBzdHJ1Y3R1cmVcbihhbmQgaXMgb25seSBldmVyeSB1c2VkIGZvciBhcmd1bWVudCB3aXRuZXNzZXMgb2YgdGhlXG5Gb3JtYXRfc3Vic3RfdHkgY29uc3RydWN0b3IpLlxuKilcblxuKCogVHlwZSBvZiBhIGJsb2NrIHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgYmxvY2tfdHlwZSA9XG4gIHwgUHBfaGJveCAgICgqIEhvcml6b250YWwgYmxvY2sgbm8gbGluZSBicmVha2luZyAqKVxuICB8IFBwX3Zib3ggICAoKiBWZXJ0aWNhbCBibG9jayBlYWNoIGJyZWFrIGxlYWRzIHRvIGEgbmV3IGxpbmUgKilcbiAgfCBQcF9odmJveCAgKCogSG9yaXpvbnRhbC12ZXJ0aWNhbCBibG9jazogc2FtZSBhcyB2Ym94LCBleGNlcHQgaWYgdGhpcyBibG9ja1xuICAgICAgICAgICAgICAgICBpcyBzbWFsbCBlbm91Z2ggdG8gZml0IG9uIGEgc2luZ2xlIGxpbmUgKilcbiAgfCBQcF9ob3Zib3ggKCogSG9yaXpvbnRhbCBvciBWZXJ0aWNhbCBibG9jazogYnJlYWtzIGxlYWQgdG8gbmV3IGxpbmVcbiAgICAgICAgICAgICAgICAgb25seSB3aGVuIG5lY2Vzc2FyeSB0byBwcmludCB0aGUgY29udGVudCBvZiB0aGUgYmxvY2sgKilcbiAgfCBQcF9ib3ggICAgKCogSG9yaXpvbnRhbCBvciBJbmRlbnQgYmxvY2s6IGJyZWFrcyBsZWFkIHRvIG5ldyBsaW5lXG4gICAgICAgICAgICAgICAgIG9ubHkgd2hlbiBuZWNlc3NhcnkgdG8gcHJpbnQgdGhlIGNvbnRlbnQgb2YgdGhlIGJsb2NrLCBvclxuICAgICAgICAgICAgICAgICB3aGVuIGl0IGxlYWRzIHRvIGEgbmV3IGluZGVudGF0aW9uIG9mIHRoZSBjdXJyZW50IGxpbmUgKilcbiAgfCBQcF9maXRzICAgKCogSW50ZXJuYWwgdXNhZ2U6IHdoZW4gYSBibG9jayBmaXRzIG9uIGEgc2luZ2xlIGxpbmUgKilcblxuKCogRm9ybWF0dGluZyBlbGVtZW50IHVzZWQgYnkgdGhlIEZvcm1hdCBwcmV0dHktcHJpbnRlci4gKilcbnR5cGUgZm9ybWF0dGluZ19saXQgPVxuICB8IENsb3NlX2JveCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXSAgICopXG4gIHwgQ2xvc2VfdGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEB9ICAgKilcbiAgfCBCcmVhayBvZiBzdHJpbmcgKiBpbnQgKiBpbnQgICAgICAgICAgKCogQCwgfCBAICB8IEA7IHwgQDs8PiAqKVxuICB8IEZGbHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAPyAgICopXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBcXG4gICopXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEAuICAgKilcbiAgfCBNYWdpY19zaXplIG9mIHN0cmluZyAqIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQDxuPiAqKVxuICB8IEVzY2FwZWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAQCAgICopXG4gIHwgRXNjYXBlZF9wZXJjZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEAlJSAgKilcbiAgfCBTY2FuX2luZGljIG9mIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQFggICAqKVxuXG4oKiBGb3JtYXR0aW5nIGVsZW1lbnQgdXNlZCBieSB0aGUgRm9ybWF0IHByZXR0eS1wcmludGVyLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW4gPVxuICB8IE9wZW5fdGFnIDogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gICAgICAoKiBAeyAgICopXG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdHRpbmdfZ2VuXG4gIHwgT3Blbl9ib3ggOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAgICAgICgqIEBbICAgKilcbiAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0dGluZ19nZW5cblxuKCoqKilcblxuKCogTGlzdCBvZiBmb3JtYXQgdHlwZSBlbGVtZW50cy4gKilcbigqIEluIHBhcnRpY3VsYXIgdXNlZCB0byByZXByZXNlbnQgJSguLi4lKSBhbmQgJXsuLi4lfSBjb250ZW50cy4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgPVxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZixcbiAgICAgICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdHR5X3JlbFxuYW5kICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgPVxuICB8IENoYXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGNoYXIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBjaGFyIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IFN0cmluZ190eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlcyAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKHN0cmluZyAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIHN0cmluZyAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBJbnRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWQgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChpbnQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50MzJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVsZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50MzIgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQzMiAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBOYXRpdmVpbnRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJW5kICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChuYXRpdmVpbnQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBuYXRpdmVpbnQgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgSW50NjRfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVMZCAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoaW50NjQgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBpbnQ2NCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBGbG9hdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWYgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgIChmbG9hdCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgIGZsb2F0IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IEJvb2xfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlQiAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKGJvb2wgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICBib29sIC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gIHwgRm9ybWF0X2FyZ190eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICV7Li4uJX0gKilcbiAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmbXR0eSAqXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm9ybWF0NiAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpXG4gICAgICAgICAgIGZtdHR5X3JlbFxuICB8IEZvcm1hdF9zdWJzdF90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlKC4uLiUpICopXG4gICAgICAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCxcbiAgICAgICAnZzEsICdiMSwgJ2MxLCAnajEsICdkMSwgJ2ExKSBmbXR0eV9yZWwgKlxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZDIsICdhMikgZm10dHlfcmVsICpcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMSwgJ2IxLCAnYzEsICdqMSwgJ2UxLCAnZjEsXG4gICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZvcm1hdDYgLT4gJ2cyLCAnYjIsICdjMiwgJ2oyLCAnZTIsICdmMilcbiAgICAgICAgICAgZm10dHlfcmVsXG5cbiAgKCogUHJpbnRmIGFuZCBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzLiAqKVxuICB8IEFscGhhX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYSAgKilcbiAgICAgICgnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbCAtPlxuICAgICAgKCgnYjEgLT4gJ3ggLT4gJ2MxKSAtPiAneCAtPiAnYTEsICdiMSwgJ2MxLCAnZDEsICdlMSwgJ2YxLFxuICAgICAgICgnYjIgLT4gJ3ggLT4gJ2MyKSAtPiAneCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcbiAgfCBUaGV0YV90eSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXQgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgoJ2IxIC0+ICdjMSkgLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAoJ2IyIC0+ICdjMikgLT4gJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsXG4gIHwgQW55X3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBVc2VkIGZvciBjdXN0b20gZm9ybWF0cyAqKVxuICAgICAgKCdhMSwgJ2IxLCAnYzEsICdkMSwgJ2UxLCAnZjEsXG4gICAgICAgJ2EyLCAnYjIsICdjMiwgJ2QyLCAnZTIsICdmMikgZm10dHlfcmVsIC0+XG4gICAgICAoJ3ggLT4gJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAneCAtPiAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWxcblxuICAoKiBTY2FuZiBzcGVjaWZpYyBjb25zdHJ1Y3Rvci4gKilcbiAgfCBSZWFkZXJfdHkgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXIgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgneCAtPiAnYTEsICdiMSwgJ2MxLCAoJ2IxIC0+ICd4KSAtPiAnZDEsICdlMSwgJ2YxLFxuICAgICAgICd4IC0+ICdhMiwgJ2IyLCAnYzIsICgnYjIgLT4gJ3gpIC0+ICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuICB8IElnbm9yZWRfcmVhZGVyX3R5IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3IgICopXG4gICAgICAoJ2ExLCAnYjEsICdjMSwgJ2QxLCAnZTEsICdmMSxcbiAgICAgICAnYTIsICdiMiwgJ2MyLCAnZDIsICdlMiwgJ2YyKSBmbXR0eV9yZWwgLT5cbiAgICAgICgnYTEsICdiMSwgJ2MxLCAoJ2IxIC0+ICd4KSAtPiAnZDEsICdlMSwgJ2YxLFxuICAgICAgICdhMiwgJ2IyLCAnYzIsICgnYjIgLT4gJ3gpIC0+ICdkMiwgJ2UyLCAnZjIpIGZtdHR5X3JlbFxuXG4gIHwgRW5kX29mX2ZtdHR5IDpcbiAgICAgICgnZjEsICdiMSwgJ2MxLCAnZDEsICdkMSwgJ2YxLFxuICAgICAgICdmMiwgJ2IyLCAnYzIsICdkMiwgJ2QyLCAnZjIpIGZtdHR5X3JlbFxuXG4oKioqKVxuXG4oKiBMaXN0IG9mIGZvcm1hdCBlbGVtZW50cy4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10ID1cbiAgfCBDaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDYW1sX2NoYXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlQyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoY2hhciAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTdHJpbmcgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlcyAqKVxuICAgICAgKCd4LCBzdHJpbmcgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDYW1sX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlUyAqKVxuICAgICAgKCd4LCBzdHJpbmcgLT4gJ2EpIHBhZGRpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBJbnQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgaW50IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50MzIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWxbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQzMiAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IE5hdGl2ZWludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVuW2RpeFh1b10gKilcbiAgICAgIGludF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgbmF0aXZlaW50IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSW50NjQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJUxbZGl4WHVvXSAqKVxuICAgICAgaW50X2NvbnYgKiAoJ3gsICd5KSBwYWRkaW5nICogKCd5LCBpbnQ2NCAtPiAnYSkgcHJlY2lzaW9uICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCd4LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZsb2F0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVbZmVFZ0dGaEhdICopXG4gICAgICBmbG9hdF9jb252ICogKCd4LCAneSkgcGFkZGluZyAqICgneSwgZmxvYXQgLT4gJ2EpIHByZWNpc2lvbiAqXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgneCwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBCb29sIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW2JCXSAqKVxuICAgICAgKCd4LCBib29sIC0+ICdhKSBwYWRkaW5nICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgRmx1c2ggOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJSEgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogYWJjICopXG4gICAgICBzdHJpbmcgKiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBDaGFyX2xpdGVyYWwgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiB4ICopXG4gICAgICBjaGFyICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgfCBGb3JtYXRfYXJnIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAley4uLiV9ICopXG4gICAgICBwYWRfb3B0aW9uICogKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wpIGZtdHR5ICpcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUoLi4uJSkgKilcbiAgICAgIHBhZF9vcHRpb24gKlxuICAgICAgKCdnLCAnaCwgJ2ksICdqLCAnaywgJ2wsXG4gICAgICAgJ2cyLCAnYiwgJ2MsICdqMiwgJ2QsICdhKSBmbXR0eV9yZWwgKlxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKCgnZywgJ2gsICdpLCAnaiwgJ2ssICdsKSBmb3JtYXQ2IC0+ICdnMiwgJ2IsICdjLCAnajIsICdlLCAnZikgZm10XG5cbiAgKCogUHJpbnRmIGFuZCBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3IuICopXG4gIHwgQWxwaGEgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJWEgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnYiAtPiAneCAtPiAnYykgLT4gJ3ggLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgVGhldGEgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJXQgKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCgnYiAtPiAnYykgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yOiAqKVxuICB8IEZvcm1hdHRpbmdfbGl0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEBfICopXG4gICAgICBmb3JtYXR0aW5nX2xpdCAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IEZvcm1hdHRpbmdfZ2VuIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBAXyAqKVxuICAgICAgKCdhMSwgJ2IsICdjLCAnZDEsICdlMSwgJ2YxKSBmb3JtYXR0aW5nX2dlbiAqXG4gICAgICAoJ2YxLCAnYiwgJ2MsICdlMSwgJ2UyLCAnZjIpIGZtdCAtPiAoJ2ExLCAnYiwgJ2MsICdkMSwgJ2UyLCAnZjIpIGZtdFxuXG4gICgqIFNjYW5mIHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBSZWFkZXIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlciAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ3ggLT4gJ2EsICdiLCAnYywgKCdiIC0+ICd4KSAtPiAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX2NoYXJfc2V0IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlWy4uLl0gKilcbiAgICAgIHBhZF9vcHRpb24gKiBjaGFyX3NldCAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgLT5cbiAgICAgICAgKHN0cmluZyAtPiAnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXRcbiAgfCBTY2FuX2dldF9jb3VudGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlW25sTkxdICopXG4gICAgICBjb3VudGVyICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoaW50IC0+ICdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuICB8IFNjYW5fbmV4dF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICUwYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKGNoYXIgLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG4gIHwgSWdub3JlZF9wYXJhbSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8gKilcbiAgICAgICgnYSwgJ2IsICdjLCAnZCwgJ3ksICd4KSBpZ25vcmVkICogKCd4LCAnYiwgJ2MsICd5LCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10XG5cbiAgKCogQ3VzdG9tIHByaW50aW5nIGZvcm1hdCAoUFIjNjQ1MiwgR1BSIzE0MClcblxuICAgICBXZSBpbmNsdWRlIGEgdHlwZSBDdXN0b20gb2YgXCJjdXN0b20gY29udmVydGVyc1wiLCB3aGVyZSBhblxuICAgICBhcmJpdHJhcnkgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gY29udmVydCBvbmUgb3IgbW9yZVxuICAgICBhcmd1bWVudHMuIFRoZXJlIGlzIG5vIHN5bnRheCBmb3IgY3VzdG9tIGNvbnZlcnRlcnMsIGl0IGlzIG9ubHlcbiAgICAgaW50ZW5kZWQgZm9yIGN1c3RvbSBwcm9jZXNzb3JzIHRoYXQgd2lzaCB0byByZWx5IG9uIHRoZVxuICAgICBzdGRsaWItZGVmaW5lZCBmb3JtYXQgR0FEVHMuXG5cbiAgICAgRm9yIGluc3RhbmNlIGEgcHJlLXByb2Nlc3NvciBjb3VsZCBjaG9vc2UgdG8gaW50ZXJwcmV0IHN0cmluZ3NcbiAgICAgcHJlZml4ZWQgd2l0aCBbXCIhXCJdIGFzIGZvcm1hdCBzdHJpbmdzIHdoZXJlIFsle3sgLi4uIH19XSBpc1xuICAgICBhIHNwZWNpYWwgZm9ybSB0byBwYXNzIGEgdG9fc3RyaW5nIGZ1bmN0aW9uLCBzbyB0aGF0IG9uZSBjb3VsZFxuICAgICB3cml0ZTpcblxuICAgICB7W1xuICAgICAgIHR5cGUgdCA9IHsgeCA6IGludDsgeSA6IGludCB9XG5cbiAgICAgICBsZXQgc3RyaW5nX29mX3QgdCA9IFByaW50Zi5zcHJpbnRmIFwieyB4ID0gJWQ7IHkgPSAlZCB9XCIgdC54IHQueVxuXG4gICAgICAgUHJpbnRmLnByaW50ZiAhXCJ0ID0gJXt7c3RyaW5nX29mX3R9fVwiIHsgeCA9IDQyOyB5ID0gNDIgfVxuICAgICBdfVxuICAqKVxuICB8IEN1c3RvbSA6XG4gICAgICAoJ2EsICd4LCAneSkgY3VzdG9tX2FyaXR5ICogKHVuaXQgLT4gJ3gpICogKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAgKCd5LCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdFxuXG4gICgqIGVuZCBvZiBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uICopXG4gIHwgRW5kX29mX2Zvcm1hdCA6XG4gICAgICAgICgnZiwgJ2IsICdjLCAnZSwgJ2UsICdmKSBmbXRcblxuKCoqKilcblxuKCogVHlwZSBmb3IgaWdub3JlZCBwYXJhbWV0ZXJzIChzZWUgXCIlX1wiKS4gKilcbmFuZCAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgaWdub3JlZCA9XG4gIHwgSWdub3JlZF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9jICopXG4gICAgICAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfY2FtbF9jaGFyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfQyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX3N0cmluZyA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX3MgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX1MgKilcbiAgICAgIHBhZF9vcHRpb24gLT4gKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2ludCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlX2QgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50MzIgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfbGQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfbmF0aXZlaW50IDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfbmQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfaW50NjQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfTGQgKilcbiAgICAgIGludF9jb252ICogcGFkX29wdGlvbiAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfZmxvYXQgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfZiAqKVxuICAgICAgcGFkX29wdGlvbiAqIHByZWNfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9ib29sIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV9CICopXG4gICAgICBwYWRfb3B0aW9uIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV97Li4uJX0gKilcbiAgICAgIHBhZF9vcHRpb24gKiAoJ2csICdoLCAnaSwgJ2osICdrLCAnbCkgZm10dHkgLT5cbiAgICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiAlXyguLi4lKSAqKVxuICAgICAgcGFkX29wdGlvbiAqICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPlxuICAgICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgaWdub3JlZFxuICB8IElnbm9yZWRfcmVhZGVyIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfciAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICgnYiAtPiAneCkgLT4gJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfWy4uLl0gKilcbiAgICAgIHBhZF9vcHRpb24gKiBjaGFyX3NldCAtPiAoJ2EsICdiLCAnYywgJ2QsICdkLCAnYSkgaWdub3JlZFxuICB8IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqICVfW25sTkxdICopXG4gICAgICBjb3VudGVyIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2QsICdhKSBpZ25vcmVkXG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogJV8wYyAqKVxuICAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZCwgJ2EpIGlnbm9yZWRcblxuYW5kICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2ID1cbiAgRm9ybWF0IG9mICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXQgKiBzdHJpbmdcblxubGV0IHJlYyBlcmFzZV9yZWwgOiB0eXBlIGEgYiBjIGQgZSBmIGcgaCBpIGogayBsIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYsXG4gICBnLCBoLCBpLCBqLCBrLCBsKSBmbXR0eV9yZWwgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5XG49IGZ1bmN0aW9uXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgQ2hhcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgU3RyaW5nX3R5IHJlc3QgLT5cbiAgICBTdHJpbmdfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludF90eSByZXN0IC0+XG4gICAgSW50X3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBJbnQzMl90eSByZXN0IC0+XG4gICAgSW50MzJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEludDY0X3R5IHJlc3QgLT5cbiAgICBJbnQ2NF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT5cbiAgICBOYXRpdmVpbnRfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBGbG9hdF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgQm9vbF90eSByZXN0IC0+XG4gICAgQm9vbF90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGVyYXNlX3JlbCByZXN0KVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCBfdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTEsIGVyYXNlX3JlbCByZXN0KVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBBbHBoYV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgVGhldGFfdHkgcmVzdCAtPlxuICAgIFRoZXRhX3R5IChlcmFzZV9yZWwgcmVzdClcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIEFueV90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBSZWFkZXJfdHkgKGVyYXNlX3JlbCByZXN0KVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT5cbiAgICBJZ25vcmVkX3JlYWRlcl90eSAoZXJhc2VfcmVsIHJlc3QpXG4gIHwgRW5kX29mX2ZtdHR5IC0+IEVuZF9vZl9mbXR0eVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCB0eXBlIGNvbmNhdGVuYXRpb24gKilcblxuKCogQ29uY2F0ZW5hdGUgdHdvIGZvcm1hdCB0eXBlcy4gKilcbigqIFVzZWQgYnk6XG4gICAqIHJlYWRlcl9uYl91bmlmaWVyX29mX2ZtdHR5IHRvIGNvdW50IHJlYWRlcnMgaW4gYW4gZm10dHksXG4gICAqIFNjYW5mLnRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgdG8gZXh0cmFjdCByZWFkZXJzIGluc2lkZSAlKC4uLiUpLFxuICAgKiBDYW1saW50ZXJuYWxGb3JtYXQuZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgdG8gZXh0cmFjdCBmb3JtYXQgdHlwZS4gKilcblxuKCpcbmxldCByZWMgY29uY2F0X2ZtdHR5IDogdHlwZSBhIGIgYyBkIGUgZiBnIGggLlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgIChmLCBiLCBjLCBlLCBnLCBoKSBmbXR0eSAtPlxuICAgIChhLCBiLCBjLCBkLCBnLCBoKSBmbXR0eSA9XG4qKVxubGV0IHJlYyBjb25jYXRfZm10dHkgOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjJcbiAgICAgICBnMSBqMSBnMiBqMlxuICAuXG4gICAgKGcxLCBiMSwgYzEsIGoxLCBkMSwgYTEsXG4gICAgIGcyLCBiMiwgYzIsIGoyLCBkMiwgYTIpIGZtdHR5X3JlbCAtPlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWwgLT5cbiAgICAoZzEsIGIxLCBjMSwgajEsIGUxLCBmMSxcbiAgICAgZzIsIGIyLCBjMiwgajIsIGUyLCBmMikgZm10dHlfcmVsID1cbmZ1biBmbXR0eTEgZm10dHkyIC0+IG1hdGNoIGZtdHR5MSB3aXRoXG4gIHwgQ2hhcl90eSByZXN0IC0+XG4gICAgQ2hhcl90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFN0cmluZ190eSByZXN0IC0+XG4gICAgU3RyaW5nX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSW50X3R5IHJlc3QgLT5cbiAgICBJbnRfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBJbnQzMl90eSByZXN0IC0+XG4gICAgSW50MzJfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPlxuICAgIE5hdGl2ZWludF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEludDY0X3R5IHJlc3QgLT5cbiAgICBJbnQ2NF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEZsb2F0X3R5IHJlc3QgLT5cbiAgICBGbG9hdF90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IEJvb2xfdHkgcmVzdCAtPlxuICAgIEJvb2xfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBBbHBoYV90eSByZXN0IC0+XG4gICAgQWxwaGFfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgVGhldGFfdHkgKGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBBbnlfdHkgcmVzdCAtPlxuICAgIEFueV90eSAoY29uY2F0X2ZtdHR5IHJlc3QgZm10dHkyKVxuICB8IFJlYWRlcl90eSByZXN0IC0+XG4gICAgUmVhZGVyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIElnbm9yZWRfcmVhZGVyX3R5IChjb25jYXRfZm10dHkgcmVzdCBmbXR0eTIpXG4gIHwgRm9ybWF0X2FyZ190eSAodHksIHJlc3QpIC0+XG4gICAgRm9ybWF0X2FyZ190eSAodHksIGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MSwgdHkyLCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIGNvbmNhdF9mbXR0eSByZXN0IGZtdHR5MilcbiAgfCBFbmRfb2ZfZm10dHkgLT4gZm10dHkyXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBGb3JtYXQgY29uY2F0ZW5hdGlvbiAqKVxuXG4oKiBDb25jYXRlbmF0ZSB0d28gZm9ybWF0cy4gKilcbmxldCByZWMgY29uY2F0X2ZtdCA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIC5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgKGYsIGIsIGMsIGUsIGcsIGgpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBnLCBoKSBmbXQgPVxuZnVuIGZtdDEgZm10MiAtPiBtYXRjaCBmbXQxIHdpdGhcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBTdHJpbmcgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBDYW1sX3N0cmluZyAocGFkLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEludCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQgKGljb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIEludDMyIChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgQ2hhciAocmVzdCkgLT5cbiAgICBDaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIENhbWxfY2hhciAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQm9vbCAocGFkLCByZXN0KSAtPlxuICAgIEJvb2wgKHBhZCwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgQWxwaGEgcmVzdCAtPlxuICAgIEFscGhhIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBUaGV0YSByZXN0IC0+XG4gICAgVGhldGEgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEN1c3RvbSAoYXJpdHksIGYsIHJlc3QpIC0+XG4gICAgQ3VzdG9tIChhcml0eSwgZiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG4gIHwgUmVhZGVyIHJlc3QgLT5cbiAgICBSZWFkZXIgKGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZsdXNoIHJlc3QgLT5cbiAgICBGbHVzaCAoY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSAtPlxuICAgIFN0cmluZ19saXRlcmFsIChzdHIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgIENoYXJfbGl0ZXJhbCAgIChjaHIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgRm9ybWF0X2FyZyAocGFkLCBmbXR0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnICAgKHBhZCwgZm10dHksIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IEZvcm1hdF9zdWJzdCAocGFkLCBmbXR0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfc3Vic3QgKHBhZCwgZm10dHksIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuXG4gIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgcmVzdCkgLT5cbiAgICBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgIFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGNvbmNhdF9mbXQgcmVzdCBmbXQyKVxuICB8IFNjYW5fbmV4dF9jaGFyIChyZXN0KSAtPlxuICAgIFNjYW5fbmV4dF9jaGFyIChjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpIC0+XG4gICAgSWdub3JlZF9wYXJhbSAoaWduLCBjb25jYXRfZm10IHJlc3QgZm10MilcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSAtPlxuICAgIEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCBjb25jYXRfZm10IHJlc3QgZm10MilcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgLT5cbiAgICBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgY29uY2F0X2ZtdCByZXN0IGZtdDIpXG5cbiAgfCBFbmRfb2ZfZm9ybWF0IC0+XG4gICAgZm10MlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgR2FicmllbCBTY2hlcmVyLCBwcm9qZXQgUGFydG91dCwgSU5SSUEgUGFyaXMtU2FjbGF5ICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAyMCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBDYW1saW50ZXJuYWxBdG9taWMgaXMgYSBkZXBlbmRlbmN5IG9mIFN0ZGxpYiwgc28gaXQgaXMgY29tcGlsZWQgd2l0aFxuICAgLW5vcGVydmFzaXZlcy4gKilcbmV4dGVybmFsICggPT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVlcVwiXG5leHRlcm5hbCAoICsgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYWRkaW50XCJcbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxuXG4oKiBXZSBhcmUgbm90IHJldXNpbmcgKCdhIHJlZikgZGlyZWN0bHkgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcmVhc29uXG4gICBhYm91dCBhdG9taWNpdHkgaWYgd2Ugd2lzaCB0bzogZXZlbiBpbiBhIHNlcXVlbnRpYWwgaW1wbGVtZW50YXRpb24sXG4gICBzaWduYWxzIGFuZCBvdGhlciBhc3luY2hyb25vdXMgY2FsbGJhY2tzIG1pZ2h0IGJyZWFrIGF0b21pY2l0eS4gKilcbnR5cGUgJ2EgdCA9IHttdXRhYmxlIHY6ICdhfVxuXG5sZXQgbWFrZSB2ID0ge3Z9XG5sZXQgZ2V0IHIgPSByLnZcbmxldCBzZXQgciB2ID0gci52IDwtIHZcblxuKCogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIHNldCB0byBuZXZlciBiZSBpbmxpbmVkOiBGbGFtYmRhIGlzXG4gICBhbGxvd2VkIHRvIG1vdmUgc3Vycm91bmRpbmcgY29kZSBpbnNpZGUgdGhlIGNyaXRpY2FsIHNlY3Rpb24sXG4gICBpbmNsdWRpbmcgYWxsb2NhdGlvbnMuICopXG5cbmxldFtAaW5saW5lIG5ldmVyXSBleGNoYW5nZSByIHYgPVxuICAoKiBCRUdJTiBBVE9NSUMgKilcbiAgbGV0IGN1ciA9IHIudiBpblxuICByLnYgPC0gdjtcbiAgKCogRU5EIEFUT01JQyAqKVxuICBjdXJcblxubGV0W0BpbmxpbmUgbmV2ZXJdIGNvbXBhcmVfYW5kX3NldCByIHNlZW4gdiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIGlmIGN1ciA9PSBzZWVuIHRoZW4gKFxuICAgIHIudiA8LSB2O1xuICAgICgqIEVORCBBVE9NSUMgKilcbiAgICB0cnVlXG4gICkgZWxzZVxuICAgIGZhbHNlXG5cbmxldFtAaW5saW5lIG5ldmVyXSBmZXRjaF9hbmRfYWRkIHIgbiA9XG4gICgqIEJFR0lOIEFUT01JQyAqKVxuICBsZXQgY3VyID0gci52IGluXG4gIHIudiA8LSAoY3VyICsgbik7XG4gICgqIEVORCBBVE9NSUMgKilcbiAgY3VyXG5cbmxldCBpbmNyIHIgPSBpZ25vcmUgKGZldGNoX2FuZF9hZGQgciAxKVxubGV0IGRlY3IgciA9IGlnbm9yZSAoZmV0Y2hfYW5kX2FkZCByICgtMSkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEV4Y2VwdGlvbnMgKilcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gJ2EgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgKCkgPVxuICAoKiBmb3IgcnVudGltZS9mYWlsX25hdC5jICopXG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUGVydmFzaXZlcy5hcnJheV9ib3VuZF9lcnJvclwiXG4gICAgKEludmFsaWRfYXJndW1lbnQgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIpXG5cbmV4dGVybmFsIHJhaXNlIDogZXhuIC0+ICdhID0gXCIlcmFpc2VcIlxuZXh0ZXJuYWwgcmFpc2Vfbm90cmFjZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlX25vdHJhY2VcIlxuXG5sZXQgZmFpbHdpdGggcyA9IHJhaXNlKEZhaWx1cmUgcylcbmxldCBpbnZhbGlkX2FyZyBzID0gcmFpc2UoSW52YWxpZF9hcmd1bWVudCBzKVxuXG5leGNlcHRpb24gRXhpdFxuZXhjZXB0aW9uIE1hdGNoX2ZhaWx1cmUgPSBNYXRjaF9mYWlsdXJlXG5leGNlcHRpb24gQXNzZXJ0X2ZhaWx1cmUgPSBBc3NlcnRfZmFpbHVyZVxuZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgPSBJbnZhbGlkX2FyZ3VtZW50XG5leGNlcHRpb24gRmFpbHVyZSA9IEZhaWx1cmVcbmV4Y2VwdGlvbiBOb3RfZm91bmQgPSBOb3RfZm91bmRcbmV4Y2VwdGlvbiBPdXRfb2ZfbWVtb3J5ID0gT3V0X29mX21lbW9yeVxuZXhjZXB0aW9uIFN0YWNrX292ZXJmbG93ID0gU3RhY2tfb3ZlcmZsb3dcbmV4Y2VwdGlvbiBTeXNfZXJyb3IgPSBTeXNfZXJyb3JcbmV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSA9IEVuZF9vZl9maWxlXG5leGNlcHRpb24gRGl2aXNpb25fYnlfemVybyA9IERpdmlzaW9uX2J5X3plcm9cbmV4Y2VwdGlvbiBTeXNfYmxvY2tlZF9pbyA9IFN5c19ibG9ja2VkX2lvXG5leGNlcHRpb24gVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgPSBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZVxuXG4oKiBDb21wb3NpdGlvbiBvcGVyYXRvcnMgKilcblxuZXh0ZXJuYWwgKCB8PiApIDogJ2EgLT4gKCdhIC0+ICdiKSAtPiAnYiA9IFwiJXJldmFwcGx5XCJcbmV4dGVybmFsICggQEAgKSA6ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IgPSBcIiVhcHBseVwiXG5cbigqIERlYnVnZ2luZyAqKVxuXG5leHRlcm5hbCBfX0xPQ19fIDogc3RyaW5nID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0ZJTEVfXyA6IHN0cmluZyA9IFwiJWxvY19GSUxFXCJcbmV4dGVybmFsIF9fTElORV9fIDogaW50ID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19NT0RVTEVfXyA6IHN0cmluZyA9IFwiJWxvY19NT0RVTEVcIlxuZXh0ZXJuYWwgX19QT1NfXyA6IHN0cmluZyAqIGludCAqIGludCAqIGludCA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgX19GVU5DVElPTl9fIDogc3RyaW5nID0gXCIlbG9jX0ZVTkNUSU9OXCJcblxuZXh0ZXJuYWwgX19MT0NfT0ZfXyA6ICdhIC0+IHN0cmluZyAqICdhID0gXCIlbG9jX0xPQ1wiXG5leHRlcm5hbCBfX0xJTkVfT0ZfXyA6ICdhIC0+IGludCAqICdhID0gXCIlbG9jX0xJTkVcIlxuZXh0ZXJuYWwgX19QT1NfT0ZfXyA6ICdhIC0+IChzdHJpbmcgKiBpbnQgKiBpbnQgKiBpbnQpICogJ2EgPSBcIiVsb2NfUE9TXCJcblxuKCogQ29tcGFyaXNvbnMgKilcblxuZXh0ZXJuYWwgKCA9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuZXh0ZXJuYWwgKCA8PiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcbmV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcbmV4dGVybmFsICggPiApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcbmV4dGVybmFsICggPD0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5leHRlcm5hbCBjb21wYXJlIDogJ2EgLT4gJ2EgLT4gaW50ID0gXCIlY29tcGFyZVwiXG5cbmxldCBtaW4geCB5ID0gaWYgeCA8PSB5IHRoZW4geCBlbHNlIHlcbmxldCBtYXggeCB5ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggIT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcVwiXG5cbigqIEJvb2xlYW4gb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBub3QgOiBib29sIC0+IGJvb2wgPSBcIiVib29sbm90XCJcbmV4dGVybmFsICggJiApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1YW5kXCJcbmV4dGVybmFsICggJiYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoIG9yICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5cbigqIEludGVnZXIgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCAoIH4tICkgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsICggfisgKSA6IGludCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgKCAtICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCAoICogKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsICggLyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgKCBtb2QgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcblxubGV0IGFicyB4ID0gaWYgeCA+PSAwIHRoZW4geCBlbHNlIC14XG5cbmV4dGVybmFsICggbGFuZCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgKCBsb3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlb3JpbnRcIlxuZXh0ZXJuYWwgKCBseG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXhvcmludFwiXG5cbmxldCBsbm90IHggPSB4IGx4b3IgKC0xKVxuXG5leHRlcm5hbCAoIGxzbCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgKCBsc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmV4dGVybmFsICggYXNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5cbmxldCBtYXhfaW50ID0gKC0xKSBsc3IgMVxubGV0IG1pbl9pbnQgPSBtYXhfaW50ICsgMVxuXG4oKiBGbG9hdGluZy1wb2ludCBvcGVyYXRpb25zICopXG5cbmV4dGVybmFsICggfi0uICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsICggfisuICkgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsICggKy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgKCAtLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCAoICouICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsICggLy4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgKCAqKiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcG93ZXJfZmxvYXRcIiBcInBvd1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHBtMSA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2V4cG0xX2Zsb2F0XCIgXCJjYW1sX2V4cG0xXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc2hfZmxvYXRcIiBcImNhbWxfYWNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMXAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxcF9mbG9hdFwiIFwiY2FtbF9sb2cxcFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5fZmxvYXRcIiBcInNpblwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfc2luaF9mbG9hdFwiIFwic2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2FzaW5oX2Zsb2F0XCIgXCJjYW1sX2FzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNxcnQgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zcXJ0X2Zsb2F0XCIgXCJzcXJ0XCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW5oIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbmhfZmxvYXRcIiBcImNhbWxfYXRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5leHRlcm5hbCBjb3B5c2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIGZsb2F0X29mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdHJ1bmNhdGUgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGludF9vZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXRfb2ZfYml0cyA6IGludDY0IC0+IGZsb2F0XG4gID0gXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNcIiBcImNhbWxfaW50NjRfZmxvYXRfb2ZfYml0c191bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmxldCBpbmZpbml0eSA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9GMF8wMF8wMF8wMF8wMF8wMF8wMExcbmxldCBuZWdfaW5maW5pdHkgPVxuICBmbG9hdF9vZl9iaXRzIDB4RkZfRjBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgbmFuID1cbiAgZmxvYXRfb2ZfYml0cyAweDdGX0YwXzAwXzAwXzAwXzAwXzAwXzAxTFxubGV0IG1heF9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHg3Rl9FRl9GRl9GRl9GRl9GRl9GRl9GRkxcbmxldCBtaW5fZmxvYXQgPVxuICBmbG9hdF9vZl9iaXRzIDB4MDBfMTBfMDBfMDBfMDBfMDBfMDBfMDBMXG5sZXQgZXBzaWxvbl9mbG9hdCA9XG4gIGZsb2F0X29mX2JpdHMgMHgzQ19CMF8wMF8wMF8wMF8wMF8wMF8wMExcblxudHlwZSBmcGNsYXNzID1cbiAgICBGUF9ub3JtYWxcbiAgfCBGUF9zdWJub3JtYWxcbiAgfCBGUF96ZXJvXG4gIHwgRlBfaW5maW5pdGVcbiAgfCBGUF9uYW5cbmV4dGVybmFsIGNsYXNzaWZ5X2Zsb2F0IDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IGZwY2xhc3MgPVxuICBcImNhbWxfY2xhc3NpZnlfZmxvYXRcIiBcImNhbWxfY2xhc3NpZnlfZmxvYXRfdW5ib3hlZFwiIFtAQG5vYWxsb2NdXG5cbigqIFN0cmluZyBhbmQgYnl0ZSBzZXF1ZW5jZSBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlcyBTdHJpbmcgYW5kIEJ5dGVzICopXG5cbmV4dGVybmFsIHN0cmluZ19sZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBieXRlc19sZW5ndGggOiBieXRlcyAtPiBpbnQgPSBcIiVieXRlc19sZW5ndGhcIlxuZXh0ZXJuYWwgYnl0ZXNfY3JlYXRlIDogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9ieXRlc1wiXG5leHRlcm5hbCBzdHJpbmdfYmxpdCA6IHN0cmluZyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X3N0cmluZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBieXRlc19ibGl0IDogYnl0ZXMgLT4gaW50IC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfYmxpdF9ieXRlc1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBieXRlc191bnNhZmVfdG9fc3RyaW5nIDogYnl0ZXMgLT4gc3RyaW5nID0gXCIlYnl0ZXNfdG9fc3RyaW5nXCJcblxubGV0ICggXiApIHMxIHMyID1cbiAgbGV0IGwxID0gc3RyaW5nX2xlbmd0aCBzMSBhbmQgbDIgPSBzdHJpbmdfbGVuZ3RoIHMyIGluXG4gIGxldCBzID0gYnl0ZXNfY3JlYXRlIChsMSArIGwyKSBpblxuICBzdHJpbmdfYmxpdCBzMSAwIHMgMCBsMTtcbiAgc3RyaW5nX2JsaXQgczIgMCBzIGwxIGwyO1xuICBieXRlc191bnNhZmVfdG9fc3RyaW5nIHNcblxuKCogQ2hhcmFjdGVyIG9wZXJhdGlvbnMgLS0gbW9yZSBpbiBtb2R1bGUgQ2hhciAqKVxuXG5leHRlcm5hbCBpbnRfb2ZfY2hhciA6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgdW5zYWZlX2NoYXJfb2ZfaW50IDogaW50IC0+IGNoYXIgPSBcIiVpZGVudGl0eVwiXG5sZXQgY2hhcl9vZl9pbnQgbiA9XG4gIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlbiBpbnZhbGlkX2FyZyBcImNoYXJfb2ZfaW50XCIgZWxzZSB1bnNhZmVfY2hhcl9vZl9pbnQgblxuXG4oKiBVbml0IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgaWdub3JlIDogJ2EgLT4gdW5pdCA9IFwiJWlnbm9yZVwiXG5cbigqIFBhaXIgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBmc3QgOiAnYSAqICdiIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsIHNuZCA6ICdhICogJ2IgLT4gJ2IgPSBcIiVmaWVsZDFcIlxuXG4oKiBSZWZlcmVuY2VzICopXG5cbnR5cGUgJ2EgcmVmID0geyBtdXRhYmxlIGNvbnRlbnRzIDogJ2EgfVxuZXh0ZXJuYWwgcmVmIDogJ2EgLT4gJ2EgcmVmID0gXCIlbWFrZW11dGFibGVcIlxuZXh0ZXJuYWwgKCAhICkgOiAnYSByZWYgLT4gJ2EgPSBcIiVmaWVsZDBcIlxuZXh0ZXJuYWwgKCA6PSApIDogJ2EgcmVmIC0+ICdhIC0+IHVuaXQgPSBcIiVzZXRmaWVsZDBcIlxuZXh0ZXJuYWwgaW5jciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWluY3JcIlxuZXh0ZXJuYWwgZGVjciA6IGludCByZWYgLT4gdW5pdCA9IFwiJWRlY3JcIlxuXG4oKiBSZXN1bHQgdHlwZSAqKVxuXG50eXBlICgnYSwnYikgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnYlxuXG4oKiBTdHJpbmcgY29udmVyc2lvbiBmdW5jdGlvbnMgKilcblxuZXh0ZXJuYWwgZm9ybWF0X2ludCA6IHN0cmluZyAtPiBpbnQgLT4gc3RyaW5nID0gXCJjYW1sX2Zvcm1hdF9pbnRcIlxuZXh0ZXJuYWwgZm9ybWF0X2Zsb2F0IDogc3RyaW5nIC0+IGZsb2F0IC0+IHN0cmluZyA9IFwiY2FtbF9mb3JtYXRfZmxvYXRcIlxuXG5sZXQgc3RyaW5nX29mX2Jvb2wgYiA9XG4gIGlmIGIgdGhlbiBcInRydWVcIiBlbHNlIFwiZmFsc2VcIlxubGV0IGJvb2xfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgfCBcInRydWVcIiAtPiB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IGZhbHNlXG4gIHwgXyAtPiBpbnZhbGlkX2FyZyBcImJvb2xfb2Zfc3RyaW5nXCJcblxubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCA9IGZ1bmN0aW9uXG4gIHwgXCJ0cnVlXCIgLT4gU29tZSB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IFNvbWUgZmFsc2VcbiAgfCBfIC0+IE5vbmVcblxubGV0IHN0cmluZ19vZl9pbnQgbiA9XG4gIGZvcm1hdF9pbnQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5cbmxldCBpbnRfb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogcHJvdmlkZSB0aGlzIGRpcmVjdGx5IGFzIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlLiAqKVxuICB0cnkgU29tZSAoaW50X29mX3N0cmluZyBzKVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmV4dGVybmFsIHN0cmluZ19nZXQgOiBzdHJpbmcgLT4gaW50IC0+IGNoYXIgPSBcIiVzdHJpbmdfc2FmZV9nZXRcIlxuXG5sZXQgdmFsaWRfZmxvYXRfbGV4ZW0gcyA9XG4gIGxldCBsID0gc3RyaW5nX2xlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID49IGwgdGhlbiBzIF4gXCIuXCIgZWxzZVxuICAgIG1hdGNoIHN0cmluZ19nZXQgcyBpIHdpdGhcbiAgICB8ICcwJyAuLiAnOScgfCAnLScgLT4gbG9vcCAoaSArIDEpXG4gICAgfCBfIC0+IHNcbiAgaW5cbiAgbG9vcCAwXG5cbmxldCBzdHJpbmdfb2ZfZmxvYXQgZiA9IHZhbGlkX2Zsb2F0X2xleGVtIChmb3JtYXRfZmxvYXQgXCIlLjEyZ1wiIGYpXG5cbmV4dGVybmFsIGZsb2F0X29mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxuXG5sZXQgZmxvYXRfb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogcHJvdmlkZSB0aGlzIGRpcmVjdGx5IGFzIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlLiAqKVxuICB0cnkgU29tZSAoZmxvYXRfb2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxuKCogTGlzdCBvcGVyYXRpb25zIC0tIG1vcmUgaW4gbW9kdWxlIExpc3QgKilcblxubGV0IHJlYyAoIEAgKSBsMSBsMiA9XG4gIG1hdGNoIGwxIHdpdGhcbiAgICBbXSAtPiBsMlxuICB8IGhkIDo6IHRsIC0+IGhkIDo6ICh0bCBAIGwyKVxuXG4oKiBJL08gb3BlcmF0aW9ucyAqKVxuXG50eXBlIGluX2NoYW5uZWxcbnR5cGUgb3V0X2NoYW5uZWxcblxuZXh0ZXJuYWwgb3Blbl9kZXNjcmlwdG9yX291dCA6IGludCAtPiBvdXRfY2hhbm5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vcGVuX2Rlc2NyaXB0b3Jfb3V0XCJcbmV4dGVybmFsIG9wZW5fZGVzY3JpcHRvcl9pbiA6IGludCAtPiBpbl9jaGFubmVsID0gXCJjYW1sX21sX29wZW5fZGVzY3JpcHRvcl9pblwiXG5cbmxldCBzdGRpbiA9IG9wZW5fZGVzY3JpcHRvcl9pbiAwXG5sZXQgc3Rkb3V0ID0gb3Blbl9kZXNjcmlwdG9yX291dCAxXG5sZXQgc3RkZXJyID0gb3Blbl9kZXNjcmlwdG9yX291dCAyXG5cbigqIEdlbmVyYWwgb3V0cHV0IGZ1bmN0aW9ucyAqKVxuXG50eXBlIG9wZW5fZmxhZyA9XG4gICAgT3Blbl9yZG9ubHkgfCBPcGVuX3dyb25seSB8IE9wZW5fYXBwZW5kXG4gIHwgT3Blbl9jcmVhdCB8IE9wZW5fdHJ1bmMgfCBPcGVuX2V4Y2xcbiAgfCBPcGVuX2JpbmFyeSB8IE9wZW5fdGV4dCB8IE9wZW5fbm9uYmxvY2tcblxuZXh0ZXJuYWwgb3Blbl9kZXNjIDogc3RyaW5nIC0+IG9wZW5fZmxhZyBsaXN0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfc3lzX29wZW5cIlxuXG5leHRlcm5hbCBzZXRfb3V0X2NoYW5uZWxfbmFtZTogb3V0X2NoYW5uZWwgLT4gc3RyaW5nIC0+IHVuaXQgPVxuICBcImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVwiXG5cbmxldCBvcGVuX291dF9nZW4gbW9kZSBwZXJtIG5hbWUgPVxuICBsZXQgYyA9IG9wZW5fZGVzY3JpcHRvcl9vdXQob3Blbl9kZXNjIG5hbWUgbW9kZSBwZXJtKSBpblxuICBzZXRfb3V0X2NoYW5uZWxfbmFtZSBjIG5hbWU7XG4gIGNcblxubGV0IG9wZW5fb3V0IG5hbWUgPVxuICBvcGVuX291dF9nZW4gW09wZW5fd3Jvbmx5OyBPcGVuX2NyZWF0OyBPcGVuX3RydW5jOyBPcGVuX3RleHRdIDBvNjY2IG5hbWVcblxubGV0IG9wZW5fb3V0X2JpbiBuYW1lID1cbiAgb3Blbl9vdXRfZ2VuIFtPcGVuX3dyb25seTsgT3Blbl9jcmVhdDsgT3Blbl90cnVuYzsgT3Blbl9iaW5hcnldIDBvNjY2IG5hbWVcblxuZXh0ZXJuYWwgZmx1c2ggOiBvdXRfY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2ZsdXNoXCJcblxuZXh0ZXJuYWwgb3V0X2NoYW5uZWxzX2xpc3QgOiB1bml0IC0+IG91dF9jaGFubmVsIGxpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX291dF9jaGFubmVsc19saXN0XCJcblxubGV0IGZsdXNoX2FsbCAoKSA9XG4gIGxldCByZWMgaXRlciA9IGZ1bmN0aW9uXG4gICAgICBbXSAtPiAoKVxuICAgIHwgYTo6bCAtPlxuICAgICAgICBiZWdpbiB0cnlcbiAgICAgICAgICAgIGZsdXNoIGFcbiAgICAgICAgd2l0aCBTeXNfZXJyb3IgXyAtPlxuICAgICAgICAgICgpICgqIGlnbm9yZSBjaGFubmVscyBjbG9zZWQgZHVyaW5nIGEgcHJlY2VkaW5nIGZsdXNoLiAqKVxuICAgICAgICBlbmQ7XG4gICAgICAgIGl0ZXIgbFxuICBpbiBpdGVyIChvdXRfY2hhbm5lbHNfbGlzdCAoKSlcblxuZXh0ZXJuYWwgdW5zYWZlX291dHB1dCA6IG91dF9jaGFubmVsIC0+IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRwdXRfYnl0ZXNcIlxuZXh0ZXJuYWwgdW5zYWZlX291dHB1dF9zdHJpbmcgOiBvdXRfY2hhbm5lbCAtPiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9vdXRwdXRcIlxuXG5leHRlcm5hbCBvdXRwdXRfY2hhciA6IG91dF9jaGFubmVsIC0+IGNoYXIgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfY2hhclwiXG5cbmxldCBvdXRwdXRfYnl0ZXMgb2MgcyA9XG4gIHVuc2FmZV9vdXRwdXQgb2MgcyAwIChieXRlc19sZW5ndGggcylcblxubGV0IG91dHB1dF9zdHJpbmcgb2MgcyA9XG4gIHVuc2FmZV9vdXRwdXRfc3RyaW5nIG9jIHMgMCAoc3RyaW5nX2xlbmd0aCBzKVxuXG5sZXQgb3V0cHV0IG9jIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwib3V0cHV0XCJcbiAgZWxzZSB1bnNhZmVfb3V0cHV0IG9jIHMgb2ZzIGxlblxuXG5sZXQgb3V0cHV0X3N1YnN0cmluZyBvYyBzIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gc3RyaW5nX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJvdXRwdXRfc3Vic3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfb3V0cHV0X3N0cmluZyBvYyBzIG9mcyBsZW5cblxuZXh0ZXJuYWwgb3V0cHV0X2J5dGUgOiBvdXRfY2hhbm5lbCAtPiBpbnQgLT4gdW5pdCA9IFwiY2FtbF9tbF9vdXRwdXRfY2hhclwiXG5leHRlcm5hbCBvdXRwdXRfYmluYXJ5X2ludCA6IG91dF9jaGFubmVsIC0+IGludCAtPiB1bml0ID0gXCJjYW1sX21sX291dHB1dF9pbnRcIlxuXG5leHRlcm5hbCBtYXJzaGFsX3RvX2NoYW5uZWwgOiBvdXRfY2hhbm5lbCAtPiAnYSAtPiB1bml0IGxpc3QgLT4gdW5pdFxuICAgICA9IFwiY2FtbF9vdXRwdXRfdmFsdWVcIlxubGV0IG91dHB1dF92YWx1ZSBjaGFuIHYgPSBtYXJzaGFsX3RvX2NoYW5uZWwgY2hhbiB2IFtdXG5cbmV4dGVybmFsIHNlZWtfb3V0IDogb3V0X2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19vdXRcIlxuZXh0ZXJuYWwgcG9zX291dCA6IG91dF9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9wb3Nfb3V0XCJcbmV4dGVybmFsIG91dF9jaGFubmVsX2xlbmd0aCA6IG91dF9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVcIlxuZXh0ZXJuYWwgY2xvc2Vfb3V0X2NoYW5uZWwgOiBvdXRfY2hhbm5lbCAtPiB1bml0ID0gXCJjYW1sX21sX2Nsb3NlX2NoYW5uZWxcIlxubGV0IGNsb3NlX291dCBvYyA9IGZsdXNoIG9jOyBjbG9zZV9vdXRfY2hhbm5lbCBvY1xubGV0IGNsb3NlX291dF9ub2VyciBvYyA9XG4gICh0cnkgZmx1c2ggb2Mgd2l0aCBfIC0+ICgpKTtcbiAgKHRyeSBjbG9zZV9vdXRfY2hhbm5lbCBvYyB3aXRoIF8gLT4gKCkpXG5leHRlcm5hbCBzZXRfYmluYXJ5X21vZGVfb3V0IDogb3V0X2NoYW5uZWwgLT4gYm9vbCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX3NldF9iaW5hcnlfbW9kZVwiXG5cbigqIEdlbmVyYWwgaW5wdXQgZnVuY3Rpb25zICopXG5cbmV4dGVybmFsIHNldF9pbl9jaGFubmVsX25hbWU6IGluX2NoYW5uZWwgLT4gc3RyaW5nIC0+IHVuaXQgPVxuICBcImNhbWxfbWxfc2V0X2NoYW5uZWxfbmFtZVwiXG5cbmxldCBvcGVuX2luX2dlbiBtb2RlIHBlcm0gbmFtZSA9XG4gIGxldCBjID0gb3Blbl9kZXNjcmlwdG9yX2luKG9wZW5fZGVzYyBuYW1lIG1vZGUgcGVybSkgaW5cbiAgc2V0X2luX2NoYW5uZWxfbmFtZSBjIG5hbWU7XG4gIGNcblxubGV0IG9wZW5faW4gbmFtZSA9XG4gIG9wZW5faW5fZ2VuIFtPcGVuX3Jkb25seTsgT3Blbl90ZXh0XSAwIG5hbWVcblxubGV0IG9wZW5faW5fYmluIG5hbWUgPVxuICBvcGVuX2luX2dlbiBbT3Blbl9yZG9ubHk7IE9wZW5fYmluYXJ5XSAwIG5hbWVcblxuZXh0ZXJuYWwgaW5wdXRfY2hhciA6IGluX2NoYW5uZWwgLT4gY2hhciA9IFwiY2FtbF9tbF9pbnB1dF9jaGFyXCJcblxuZXh0ZXJuYWwgdW5zYWZlX2lucHV0IDogaW5fY2hhbm5lbCAtPiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX21sX2lucHV0XCJcblxubGV0IGlucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBieXRlc19sZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiaW5wdXRcIlxuICBlbHNlIHVuc2FmZV9pbnB1dCBpYyBzIG9mcyBsZW5cblxubGV0IHJlYyB1bnNhZmVfcmVhbGx5X2lucHV0IGljIHMgb2ZzIGxlbiA9XG4gIGlmIGxlbiA8PSAwIHRoZW4gKCkgZWxzZSBiZWdpblxuICAgIGxldCByID0gdW5zYWZlX2lucHV0IGljIHMgb2ZzIGxlbiBpblxuICAgIGlmIHIgPSAwXG4gICAgdGhlbiByYWlzZSBFbmRfb2ZfZmlsZVxuICAgIGVsc2UgdW5zYWZlX3JlYWxseV9pbnB1dCBpYyBzIChvZnMgKyByKSAobGVuIC0gcilcbiAgZW5kXG5cbmxldCByZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuID1cbiAgaWYgb2ZzIDwgMCB8fCBsZW4gPCAwIHx8IG9mcyA+IGJ5dGVzX2xlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJyZWFsbHlfaW5wdXRcIlxuICBlbHNlIHVuc2FmZV9yZWFsbHlfaW5wdXQgaWMgcyBvZnMgbGVuXG5cbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiA9XG4gIGxldCBzID0gYnl0ZXNfY3JlYXRlIGxlbiBpblxuICByZWFsbHlfaW5wdXQgaWMgcyAwIGxlbjtcbiAgYnl0ZXNfdW5zYWZlX3RvX3N0cmluZyBzXG5cbmV4dGVybmFsIGlucHV0X3NjYW5fbGluZSA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X3NjYW5fbGluZVwiXG5cbmxldCBpbnB1dF9saW5lIGNoYW4gPVxuICBsZXQgcmVjIGJ1aWxkX3Jlc3VsdCBidWYgcG9zID0gZnVuY3Rpb25cbiAgICBbXSAtPiBidWZcbiAgfCBoZCA6OiB0bCAtPlxuICAgICAgbGV0IGxlbiA9IGJ5dGVzX2xlbmd0aCBoZCBpblxuICAgICAgYnl0ZXNfYmxpdCBoZCAwIGJ1ZiAocG9zIC0gbGVuKSBsZW47XG4gICAgICBidWlsZF9yZXN1bHQgYnVmIChwb3MgLSBsZW4pIHRsIGluXG4gIGxldCByZWMgc2NhbiBhY2N1IGxlbiA9XG4gICAgbGV0IG4gPSBpbnB1dF9zY2FuX2xpbmUgY2hhbiBpblxuICAgIGlmIG4gPSAwIHRoZW4gYmVnaW4gICAgICAgICAgICAgICAgICAgKCogbiA9IDA6IHdlIGFyZSBhdCBFT0YgKilcbiAgICAgIG1hdGNoIGFjY3Ugd2l0aFxuICAgICAgICBbXSAtPiByYWlzZSBFbmRfb2ZfZmlsZVxuICAgICAgfCBfICAtPiBidWlsZF9yZXN1bHQgKGJ5dGVzX2NyZWF0ZSBsZW4pIGxlbiBhY2N1XG4gICAgZW5kIGVsc2UgaWYgbiA+IDAgdGhlbiBiZWdpbiAgICAgICAgICAoKiBuID4gMDogbmV3bGluZSBmb3VuZCBpbiBidWZmZXIgKilcbiAgICAgIGxldCByZXMgPSBieXRlc19jcmVhdGUgKG4gLSAxKSBpblxuICAgICAgaWdub3JlICh1bnNhZmVfaW5wdXQgY2hhbiByZXMgMCAobiAtIDEpKTtcbiAgICAgIGlnbm9yZSAoaW5wdXRfY2hhciBjaGFuKTsgICAgICAgICAgICgqIHNraXAgdGhlIG5ld2xpbmUgKilcbiAgICAgIG1hdGNoIGFjY3Ugd2l0aFxuICAgICAgICBbXSAtPiByZXNcbiAgICAgIHwgIF8gLT4gbGV0IGxlbiA9IGxlbiArIG4gLSAxIGluXG4gICAgICAgICAgICAgIGJ1aWxkX3Jlc3VsdCAoYnl0ZXNfY3JlYXRlIGxlbikgbGVuIChyZXMgOjogYWNjdSlcbiAgICBlbmQgZWxzZSBiZWdpbiAgICAgICAgICAgICAgICAgICAgICAgICgqIG4gPCAwOiBuZXdsaW5lIG5vdCBmb3VuZCAqKVxuICAgICAgbGV0IGJlZyA9IGJ5dGVzX2NyZWF0ZSAoLW4pIGluXG4gICAgICBpZ25vcmUodW5zYWZlX2lucHV0IGNoYW4gYmVnIDAgKC1uKSk7XG4gICAgICBzY2FuIChiZWcgOjogYWNjdSkgKGxlbiAtIG4pXG4gICAgZW5kXG4gIGluIGJ5dGVzX3Vuc2FmZV90b19zdHJpbmcgKHNjYW4gW10gMClcblxuZXh0ZXJuYWwgaW5wdXRfYnl0ZSA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X2NoYXJcIlxuZXh0ZXJuYWwgaW5wdXRfYmluYXJ5X2ludCA6IGluX2NoYW5uZWwgLT4gaW50ID0gXCJjYW1sX21sX2lucHV0X2ludFwiXG5leHRlcm5hbCBpbnB1dF92YWx1ZSA6IGluX2NoYW5uZWwgLT4gJ2EgPSBcImNhbWxfaW5wdXRfdmFsdWVcIlxuZXh0ZXJuYWwgc2Vla19pbiA6IGluX2NoYW5uZWwgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19pblwiXG5leHRlcm5hbCBwb3NfaW4gOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9wb3NfaW5cIlxuZXh0ZXJuYWwgaW5fY2hhbm5lbF9sZW5ndGggOiBpbl9jaGFubmVsIC0+IGludCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVcIlxuZXh0ZXJuYWwgY2xvc2VfaW4gOiBpbl9jaGFubmVsIC0+IHVuaXQgPSBcImNhbWxfbWxfY2xvc2VfY2hhbm5lbFwiXG5sZXQgY2xvc2VfaW5fbm9lcnIgaWMgPSAodHJ5IGNsb3NlX2luIGljIHdpdGggXyAtPiAoKSlcbmV4dGVybmFsIHNldF9iaW5hcnlfbW9kZV9pbiA6IGluX2NoYW5uZWwgLT4gYm9vbCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfbWxfc2V0X2JpbmFyeV9tb2RlXCJcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBvdXRwdXQgKilcblxubGV0IHByaW50X2NoYXIgYyA9IG91dHB1dF9jaGFyIHN0ZG91dCBjXG5sZXQgcHJpbnRfc3RyaW5nIHMgPSBvdXRwdXRfc3RyaW5nIHN0ZG91dCBzXG5sZXQgcHJpbnRfYnl0ZXMgcyA9IG91dHB1dF9ieXRlcyBzdGRvdXQgc1xubGV0IHByaW50X2ludCBpID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgKHN0cmluZ19vZl9pbnQgaSlcbmxldCBwcmludF9mbG9hdCBmID0gb3V0cHV0X3N0cmluZyBzdGRvdXQgKHN0cmluZ19vZl9mbG9hdCBmKVxubGV0IHByaW50X2VuZGxpbmUgcyA9XG4gIG91dHB1dF9zdHJpbmcgc3Rkb3V0IHM7IG91dHB1dF9jaGFyIHN0ZG91dCAnXFxuJzsgZmx1c2ggc3Rkb3V0XG5sZXQgcHJpbnRfbmV3bGluZSAoKSA9IG91dHB1dF9jaGFyIHN0ZG91dCAnXFxuJzsgZmx1c2ggc3Rkb3V0XG5cbigqIE91dHB1dCBmdW5jdGlvbnMgb24gc3RhbmRhcmQgZXJyb3IgKilcblxubGV0IHByZXJyX2NoYXIgYyA9IG91dHB1dF9jaGFyIHN0ZGVyciBjXG5sZXQgcHJlcnJfc3RyaW5nIHMgPSBvdXRwdXRfc3RyaW5nIHN0ZGVyciBzXG5sZXQgcHJlcnJfYnl0ZXMgcyA9IG91dHB1dF9ieXRlcyBzdGRlcnIgc1xubGV0IHByZXJyX2ludCBpID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgKHN0cmluZ19vZl9pbnQgaSlcbmxldCBwcmVycl9mbG9hdCBmID0gb3V0cHV0X3N0cmluZyBzdGRlcnIgKHN0cmluZ19vZl9mbG9hdCBmKVxubGV0IHByZXJyX2VuZGxpbmUgcyA9XG4gIG91dHB1dF9zdHJpbmcgc3RkZXJyIHM7IG91dHB1dF9jaGFyIHN0ZGVyciAnXFxuJzsgZmx1c2ggc3RkZXJyXG5sZXQgcHJlcnJfbmV3bGluZSAoKSA9IG91dHB1dF9jaGFyIHN0ZGVyciAnXFxuJzsgZmx1c2ggc3RkZXJyXG5cbigqIElucHV0IGZ1bmN0aW9ucyBvbiBzdGFuZGFyZCBpbnB1dCAqKVxuXG5sZXQgcmVhZF9saW5lICgpID0gZmx1c2ggc3Rkb3V0OyBpbnB1dF9saW5lIHN0ZGluXG5sZXQgcmVhZF9pbnQgKCkgPSBpbnRfb2Zfc3RyaW5nKHJlYWRfbGluZSgpKVxubGV0IHJlYWRfaW50X29wdCAoKSA9IGludF9vZl9zdHJpbmdfb3B0KHJlYWRfbGluZSgpKVxubGV0IHJlYWRfZmxvYXQgKCkgPSBmbG9hdF9vZl9zdHJpbmcocmVhZF9saW5lKCkpXG5sZXQgcmVhZF9mbG9hdF9vcHQgKCkgPSBmbG9hdF9vZl9zdHJpbmdfb3B0KHJlYWRfbGluZSgpKVxuXG4oKiBPcGVyYXRpb25zIG9uIGxhcmdlIGZpbGVzICopXG5cbm1vZHVsZSBMYXJnZUZpbGUgPVxuICBzdHJ1Y3RcbiAgICBleHRlcm5hbCBzZWVrX291dCA6IG91dF9jaGFubmVsIC0+IGludDY0IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19vdXRfNjRcIlxuICAgIGV4dGVybmFsIHBvc19vdXQgOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9wb3Nfb3V0XzY0XCJcbiAgICBleHRlcm5hbCBvdXRfY2hhbm5lbF9sZW5ndGggOiBvdXRfY2hhbm5lbCAtPiBpbnQ2NFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcIlxuICAgIGV4dGVybmFsIHNlZWtfaW4gOiBpbl9jaGFubmVsIC0+IGludDY0IC0+IHVuaXQgPSBcImNhbWxfbWxfc2Vla19pbl82NFwiXG4gICAgZXh0ZXJuYWwgcG9zX2luIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9wb3NfaW5fNjRcIlxuICAgIGV4dGVybmFsIGluX2NoYW5uZWxfbGVuZ3RoIDogaW5fY2hhbm5lbCAtPiBpbnQ2NCA9IFwiY2FtbF9tbF9jaGFubmVsX3NpemVfNjRcIlxuICBlbmRcblxuKCogRm9ybWF0cyAqKVxuXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2XG4gICA9ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxuICAgPSBGb3JtYXQgb2YgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mbXRcbiAgICAgICAgICAgICAgICogc3RyaW5nXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBmb3JtYXQ0ID0gKCdhLCAnYiwgJ2MsICdjLCAnYywgJ2QpIGZvcm1hdDZcblxudHlwZSAoJ2EsICdiLCAnYykgZm9ybWF0ID0gKCdhLCAnYiwgJ2MsICdjKSBmb3JtYXQ0XG5cbmxldCBzdHJpbmdfb2ZfZm9ybWF0IChGb3JtYXQgKF9mbXQsIHN0cikpID0gc3RyXG5cbmV4dGVybmFsIGZvcm1hdF9vZl9zdHJpbmcgOlxuICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgPSBcIiVpZGVudGl0eVwiXG5cbmxldCAoIF5eICkgKEZvcm1hdCAoZm10MSwgc3RyMSkpIChGb3JtYXQgKGZtdDIsIHN0cjIpKSA9XG4gIEZvcm1hdCAoQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmNvbmNhdF9mbXQgZm10MSBmbXQyLFxuICAgICAgICAgIHN0cjEgXiBcIiUsXCIgXiBzdHIyKVxuXG4oKiBNaXNjZWxsYW5lb3VzICopXG5cbmV4dGVybmFsIHN5c19leGl0IDogaW50IC0+ICdhID0gXCJjYW1sX3N5c19leGl0XCJcblxubGV0IGV4aXRfZnVuY3Rpb24gPSBDYW1saW50ZXJuYWxBdG9taWMubWFrZSBmbHVzaF9hbGxcblxubGV0IHJlYyBhdF9leGl0IGYgPVxuICBsZXQgbW9kdWxlIEF0b21pYyA9IENhbWxpbnRlcm5hbEF0b21pYyBpblxuICAoKiBNUFIjNzI1MywgTVBSIzc3OTY6IG1ha2Ugc3VyZSBcImZcIiBpcyBleGVjdXRlZCBvbmx5IG9uY2UgKilcbiAgbGV0IGZfeWV0X3RvX3J1biA9IEF0b21pYy5tYWtlIHRydWUgaW5cbiAgbGV0IG9sZF9leGl0ID0gQXRvbWljLmdldCBleGl0X2Z1bmN0aW9uIGluXG4gIGxldCBuZXdfZXhpdCAoKSA9XG4gICAgaWYgQXRvbWljLmNvbXBhcmVfYW5kX3NldCBmX3lldF90b19ydW4gdHJ1ZSBmYWxzZSB0aGVuIGYgKCkgO1xuICAgIG9sZF9leGl0ICgpXG4gIGluXG4gIGxldCBzdWNjZXNzID0gQXRvbWljLmNvbXBhcmVfYW5kX3NldCBleGl0X2Z1bmN0aW9uIG9sZF9leGl0IG5ld19leGl0IGluXG4gIGlmIG5vdCBzdWNjZXNzIHRoZW4gYXRfZXhpdCBmXG5cbmxldCBkb19hdF9leGl0ICgpID0gKENhbWxpbnRlcm5hbEF0b21pYy5nZXQgZXhpdF9mdW5jdGlvbikgKClcblxubGV0IGV4aXQgcmV0Y29kZSA9XG4gIGRvX2F0X2V4aXQgKCk7XG4gIHN5c19leGl0IHJldGNvZGVcblxubGV0IF8gPSByZWdpc3Rlcl9uYW1lZF92YWx1ZSBcIlBlcnZhc2l2ZXMuZG9fYXRfZXhpdFwiIGRvX2F0X2V4aXRcblxuZXh0ZXJuYWwgbWFqb3IgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZ2NfbWFqb3JcIlxuZXh0ZXJuYWwgbmFrZWRfcG9pbnRlcnNfY2hlY2tlZCA6IHVuaXQgLT4gYm9vbFxuICA9IFwiY2FtbF9zeXNfY29uc3RfbmFrZWRfcG9pbnRlcnNfY2hlY2tlZFwiXG5sZXQgKCkgPSBpZiBuYWtlZF9wb2ludGVyc19jaGVja2VkICgpIHRoZW4gYXRfZXhpdCBtYWpvclxuXG4oKk1PRFVMRV9BTElBU0VTKilcbm1vZHVsZSBBcmcgICAgICAgICAgPSBBcmdcbm1vZHVsZSBBcnJheSAgICAgICAgPSBBcnJheVxubW9kdWxlIEFycmF5TGFiZWxzICA9IEFycmF5TGFiZWxzXG5tb2R1bGUgQXRvbWljICAgICAgID0gQXRvbWljXG5tb2R1bGUgQmlnYXJyYXkgICAgID0gQmlnYXJyYXlcbm1vZHVsZSBCb29sICAgICAgICAgPSBCb29sXG5tb2R1bGUgQnVmZmVyICAgICAgID0gQnVmZmVyXG5tb2R1bGUgQnl0ZXMgICAgICAgID0gQnl0ZXNcbm1vZHVsZSBCeXRlc0xhYmVscyAgPSBCeXRlc0xhYmVsc1xubW9kdWxlIENhbGxiYWNrICAgICA9IENhbGxiYWNrXG5tb2R1bGUgQ2hhciAgICAgICAgID0gQ2hhclxubW9kdWxlIENvbXBsZXggICAgICA9IENvbXBsZXhcbm1vZHVsZSBEaWdlc3QgICAgICAgPSBEaWdlc3Rcbm1vZHVsZSBFaXRoZXIgICAgICAgPSBFaXRoZXJcbm1vZHVsZSBFcGhlbWVyb24gICAgPSBFcGhlbWVyb25cbm1vZHVsZSBGaWxlbmFtZSAgICAgPSBGaWxlbmFtZVxubW9kdWxlIEZsb2F0ICAgICAgICA9IEZsb2F0XG5tb2R1bGUgRm9ybWF0ICAgICAgID0gRm9ybWF0XG5tb2R1bGUgRnVuICAgICAgICAgID0gRnVuXG5tb2R1bGUgR2MgICAgICAgICAgID0gR2Ncbm1vZHVsZSBHZW5sZXggICAgICAgPSBHZW5sZXhcbm1vZHVsZSBIYXNodGJsICAgICAgPSBIYXNodGJsXG5tb2R1bGUgSW5fY2hhbm5lbCAgID0gSW5fY2hhbm5lbFxubW9kdWxlIEludCAgICAgICAgICA9IEludFxubW9kdWxlIEludDMyICAgICAgICA9IEludDMyXG5tb2R1bGUgSW50NjQgICAgICAgID0gSW50NjRcbm1vZHVsZSBMYXp5ICAgICAgICAgPSBMYXp5XG5tb2R1bGUgTGV4aW5nICAgICAgID0gTGV4aW5nXG5tb2R1bGUgTGlzdCAgICAgICAgID0gTGlzdFxubW9kdWxlIExpc3RMYWJlbHMgICA9IExpc3RMYWJlbHNcbm1vZHVsZSBNYXAgICAgICAgICAgPSBNYXBcbm1vZHVsZSBNYXJzaGFsICAgICAgPSBNYXJzaGFsXG5tb2R1bGUgTW9yZUxhYmVscyAgID0gTW9yZUxhYmVsc1xubW9kdWxlIE5hdGl2ZWludCAgICA9IE5hdGl2ZWludFxubW9kdWxlIE9iaiAgICAgICAgICA9IE9ialxubW9kdWxlIE9vICAgICAgICAgICA9IE9vXG5tb2R1bGUgT3B0aW9uICAgICAgID0gT3B0aW9uXG5tb2R1bGUgT3V0X2NoYW5uZWwgID0gT3V0X2NoYW5uZWxcbm1vZHVsZSBQYXJzaW5nICAgICAgPSBQYXJzaW5nXG5tb2R1bGUgUGVydmFzaXZlcyAgID0gUGVydmFzaXZlc1xubW9kdWxlIFByaW50ZXhjICAgICA9IFByaW50ZXhjXG5tb2R1bGUgUHJpbnRmICAgICAgID0gUHJpbnRmXG5tb2R1bGUgUXVldWUgICAgICAgID0gUXVldWVcbm1vZHVsZSBSYW5kb20gICAgICAgPSBSYW5kb21cbm1vZHVsZSBSZXN1bHQgICAgICAgPSBSZXN1bHRcbm1vZHVsZSBTY2FuZiAgICAgICAgPSBTY2FuZlxubW9kdWxlIFNlcSAgICAgICAgICA9IFNlcVxubW9kdWxlIFNldCAgICAgICAgICA9IFNldFxubW9kdWxlIFN0YWNrICAgICAgICA9IFN0YWNrXG5tb2R1bGUgU3RkTGFiZWxzICAgID0gU3RkTGFiZWxzXG5tb2R1bGUgU3RyZWFtICAgICAgID0gU3RyZWFtXG5tb2R1bGUgU3RyaW5nICAgICAgID0gU3RyaW5nXG5tb2R1bGUgU3RyaW5nTGFiZWxzID0gU3RyaW5nTGFiZWxzXG5tb2R1bGUgU3lzICAgICAgICAgID0gU3lzXG5tb2R1bGUgVWNoYXIgICAgICAgID0gVWNoYXJcbm1vZHVsZSBVbml0ICAgICAgICAgPSBVbml0XG5tb2R1bGUgV2VhayAgICAgICAgID0gV2Vha1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgSmVyZW1pZSBEaW1pbm8sIEphbmUgU3RyZWV0IEV1cm9wZSAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNyBKYW5lIFN0cmVldCBHcm91cCBMTEMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiogQGRlcHJlY2F0ZWQgVXNlIHshU3RkbGlifSAqKVxuXG5leHRlcm5hbCByYWlzZSA6IGV4biAtPiAnYSA9IFwiJXJhaXNlXCJcbmV4dGVybmFsIHJhaXNlX25vdHJhY2UgOiBleG4gLT4gJ2EgPSBcIiVyYWlzZV9ub3RyYWNlXCJcbmxldCBpbnZhbGlkX2FyZyA9IGludmFsaWRfYXJnXG5sZXQgZmFpbHdpdGggPSBmYWlsd2l0aFxuZXhjZXB0aW9uIEV4aXRcbmV4dGVybmFsICggPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcbmV4dGVybmFsICggPD4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcXVhbFwiXG5leHRlcm5hbCAoIDwgKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVsZXNzdGhhblwiXG5leHRlcm5hbCAoID4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5leHRlcm5hbCAoIDw9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcbmV4dGVybmFsICggPj0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuZXh0ZXJuYWwgY29tcGFyZSA6ICdhIC0+ICdhIC0+IGludCA9IFwiJWNvbXBhcmVcIlxubGV0IG1pbiA9IG1pblxubGV0IG1heCA9IG1heFxuZXh0ZXJuYWwgKCA9PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxXCJcbmV4dGVybmFsICggIT0gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVub3RlcVwiXG5leHRlcm5hbCBub3QgOiBib29sIC0+IGJvb2wgPSBcIiVib29sbm90XCJcbmV4dGVybmFsICggJiYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoICYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG4gIFtAQG9jYW1sLmRlcHJlY2F0ZWQgXCJVc2UgKCYmKSBpbnN0ZWFkLlwiXVxuZXh0ZXJuYWwgKCB8fCApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuZXh0ZXJuYWwgKCBvciApIDogYm9vbCAtPiBib29sIC0+IGJvb2wgPSBcIiVzZXF1b3JcIlxuICBbQEBvY2FtbC5kZXByZWNhdGVkIFwiVXNlICh8fCkgaW5zdGVhZC5cIl1cbmV4dGVybmFsIF9fTE9DX18gOiBzdHJpbmcgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fRklMRV9fIDogc3RyaW5nID0gXCIlbG9jX0ZJTEVcIlxuZXh0ZXJuYWwgX19MSU5FX18gOiBpbnQgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX01PRFVMRV9fIDogc3RyaW5nID0gXCIlbG9jX01PRFVMRVwiXG5leHRlcm5hbCBfX1BPU19fIDogc3RyaW5nICogaW50ICogaW50ICogaW50ID0gXCIlbG9jX1BPU1wiXG5leHRlcm5hbCBfX0xPQ19PRl9fIDogJ2EgLT4gc3RyaW5nICogJ2EgPSBcIiVsb2NfTE9DXCJcbmV4dGVybmFsIF9fTElORV9PRl9fIDogJ2EgLT4gaW50ICogJ2EgPSBcIiVsb2NfTElORVwiXG5leHRlcm5hbCBfX1BPU19PRl9fIDogJ2EgLT4gKHN0cmluZyAqIGludCAqIGludCAqIGludCkgKiAnYSA9IFwiJWxvY19QT1NcIlxuZXh0ZXJuYWwgKCB8PiApIDogJ2EgLT4gKCdhIC0+ICdiKSAtPiAnYiA9IFwiJXJldmFwcGx5XCJcbmV4dGVybmFsICggQEAgKSA6ICgnYSAtPiAnYikgLT4gJ2EgLT4gJ2IgPSBcIiVhcHBseVwiXG5leHRlcm5hbCAoIH4tICkgOiBpbnQgLT4gaW50ID0gXCIlbmVnaW50XCJcbmV4dGVybmFsICggfisgKSA6IGludCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBzdWNjIDogaW50IC0+IGludCA9IFwiJXN1Y2NpbnRcIlxuZXh0ZXJuYWwgcHJlZCA6IGludCAtPiBpbnQgPSBcIiVwcmVkaW50XCJcbmV4dGVybmFsICggKyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgKCAtICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJXN1YmludFwiXG5leHRlcm5hbCAoICogKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbXVsaW50XCJcbmV4dGVybmFsICggLyApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgKCBtb2QgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbW9kaW50XCJcbmxldCBhYnMgPSBhYnNcbmxldCBtYXhfaW50ID0gbWF4X2ludFxubGV0IG1pbl9pbnQgPSBtaW5faW50XG5leHRlcm5hbCAoIGxhbmQgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYW5kaW50XCJcbmV4dGVybmFsICggbG9yICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsICggbHhvciApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiV4b3JpbnRcIlxubGV0IGxub3QgPSBsbm90XG5leHRlcm5hbCAoIGxzbCApIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVsc2xpbnRcIlxuZXh0ZXJuYWwgKCBsc3IgKSA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlbHNyaW50XCJcbmV4dGVybmFsICggYXNyICkgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWFzcmludFwiXG5leHRlcm5hbCAoIH4tLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVuZWdmbG9hdFwiXG5leHRlcm5hbCAoIH4rLiApIDogZmxvYXQgLT4gZmxvYXQgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCAoICsuICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWFkZGZsb2F0XCJcbmV4dGVybmFsICggLS4gKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlc3ViZmxvYXRcIlxuZXh0ZXJuYWwgKCAqLiApIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVtdWxmbG9hdFwiXG5leHRlcm5hbCAoIC8uICkgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJWRpdmZsb2F0XCJcbmV4dGVybmFsICggKiogKSA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwX2Zsb2F0XCIgXCJleHBcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nX2Zsb2F0XCIgXCJsb2dcIiBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbG9nMTAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cxMF9mbG9hdFwiIFwibG9nMTBcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfaHlwb3RfZmxvYXRcIiBcImNhbWxfaHlwb3RcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY29zaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc2hfZmxvYXRcIiBcImNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2luaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NpbmhfZmxvYXRcIiBcInNpbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RhbmhfZmxvYXRcIiBcInRhbmhcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYWJzX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgPSBcIiVhYnNmbG9hdFwiXG5leHRlcm5hbCBjb3B5c2lnbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0XG4gICAgICAgICAgICAgICAgICA9IFwiY2FtbF9jb3B5c2lnbl9mbG9hdFwiIFwiY2FtbF9jb3B5c2lnblwiXG4gICAgICAgICAgICAgICAgICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kX2Zsb2F0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmcmV4cCA6IGZsb2F0IC0+IGZsb2F0ICogaW50ID0gXCJjYW1sX2ZyZXhwX2Zsb2F0XCJcbmV4dGVybmFsIGxkZXhwIDogKGZsb2F0IFtAdW5ib3hlZF0pIC0+IChpbnQgW0B1bnRhZ2dlZF0pIC0+IChmbG9hdCBbQHVuYm94ZWRdKSA9XG4gIFwiY2FtbF9sZGV4cF9mbG9hdFwiIFwiY2FtbF9sZGV4cF9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIG1vZGYgOiBmbG9hdCAtPiBmbG9hdCAqIGZsb2F0ID0gXCJjYW1sX21vZGZfZmxvYXRcIlxuZXh0ZXJuYWwgZmxvYXQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIGZsb2F0X29mX2ludCA6IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0b2ZpbnRcIlxuZXh0ZXJuYWwgdHJ1bmNhdGUgOiBmbG9hdCAtPiBpbnQgPSBcIiVpbnRvZmZsb2F0XCJcbmV4dGVybmFsIGludF9vZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxubGV0IGluZmluaXR5ID0gaW5maW5pdHlcbmxldCBuZWdfaW5maW5pdHkgPSBuZWdfaW5maW5pdHlcbmxldCBuYW4gPSBuYW5cbmxldCBtYXhfZmxvYXQgPSBtYXhfZmxvYXRcbmxldCBtaW5fZmxvYXQgPSBtaW5fZmxvYXRcbmxldCBlcHNpbG9uX2Zsb2F0ID0gZXBzaWxvbl9mbG9hdFxudHlwZSBub25yZWMgZnBjbGFzcyA9IGZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmxldCAoIF4gKSA9ICggXiApXG5leHRlcm5hbCBpbnRfb2ZfY2hhciA6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxubGV0IGNoYXJfb2ZfaW50ID0gY2hhcl9vZl9pbnRcbmV4dGVybmFsIGlnbm9yZSA6ICdhIC0+IHVuaXQgPSBcIiVpZ25vcmVcIlxubGV0IHN0cmluZ19vZl9ib29sID0gc3RyaW5nX29mX2Jvb2xcbmxldCBib29sX29mX3N0cmluZyA9IGJvb2xfb2Zfc3RyaW5nXG5sZXQgYm9vbF9vZl9zdHJpbmdfb3B0ID0gYm9vbF9vZl9zdHJpbmdfb3B0XG5sZXQgc3RyaW5nX29mX2ludCA9IHN0cmluZ19vZl9pbnRcbmV4dGVybmFsIGludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50ID0gXCJjYW1sX2ludF9vZl9zdHJpbmdcIlxubGV0IGludF9vZl9zdHJpbmdfb3B0ID0gaW50X29mX3N0cmluZ19vcHRcbmxldCBzdHJpbmdfb2ZfZmxvYXQgPSBzdHJpbmdfb2ZfZmxvYXRcbmV4dGVybmFsIGZsb2F0X29mX3N0cmluZyA6IHN0cmluZyAtPiBmbG9hdCA9IFwiY2FtbF9mbG9hdF9vZl9zdHJpbmdcIlxubGV0IGZsb2F0X29mX3N0cmluZ19vcHQgPSBmbG9hdF9vZl9zdHJpbmdfb3B0XG5leHRlcm5hbCBmc3QgOiAnYSAqICdiIC0+ICdhID0gXCIlZmllbGQwXCJcbmV4dGVybmFsIHNuZCA6ICdhICogJ2IgLT4gJ2IgPSBcIiVmaWVsZDFcIlxubGV0ICggQCApICA9ICggQCApXG50eXBlIG5vbnJlYyBpbl9jaGFubmVsID0gaW5fY2hhbm5lbFxudHlwZSBub25yZWMgb3V0X2NoYW5uZWwgPSBvdXRfY2hhbm5lbFxubGV0IHN0ZGluID0gc3RkaW5cbmxldCBzdGRvdXQgPSBzdGRvdXRcbmxldCBzdGRlcnIgPSBzdGRlcnJcbmxldCBwcmludF9jaGFyID0gcHJpbnRfY2hhclxubGV0IHByaW50X3N0cmluZyA9IHByaW50X3N0cmluZ1xubGV0IHByaW50X2J5dGVzID0gcHJpbnRfYnl0ZXNcbmxldCBwcmludF9pbnQgPSBwcmludF9pbnRcbmxldCBwcmludF9mbG9hdCA9IHByaW50X2Zsb2F0XG5sZXQgcHJpbnRfZW5kbGluZSA9IHByaW50X2VuZGxpbmVcbmxldCBwcmludF9uZXdsaW5lID0gcHJpbnRfbmV3bGluZVxubGV0IHByZXJyX2NoYXIgPSBwcmVycl9jaGFyXG5sZXQgcHJlcnJfc3RyaW5nID0gcHJlcnJfc3RyaW5nXG5sZXQgcHJlcnJfYnl0ZXMgPSBwcmVycl9ieXRlc1xubGV0IHByZXJyX2ludCA9IHByZXJyX2ludFxubGV0IHByZXJyX2Zsb2F0ID0gcHJlcnJfZmxvYXRcbmxldCBwcmVycl9lbmRsaW5lID0gcHJlcnJfZW5kbGluZVxubGV0IHByZXJyX25ld2xpbmUgPSBwcmVycl9uZXdsaW5lXG5sZXQgcmVhZF9saW5lID0gcmVhZF9saW5lXG5sZXQgcmVhZF9pbnQgPSByZWFkX2ludFxubGV0IHJlYWRfaW50X29wdCA9IHJlYWRfaW50X29wdFxubGV0IHJlYWRfZmxvYXQgPSByZWFkX2Zsb2F0XG5sZXQgcmVhZF9mbG9hdF9vcHQgPSByZWFkX2Zsb2F0X29wdFxudHlwZSBub25yZWMgb3Blbl9mbGFnID0gb3Blbl9mbGFnID1cbiAgICBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xubGV0IG9wZW5fb3V0ID0gb3Blbl9vdXRcbmxldCBvcGVuX291dF9iaW4gPSBvcGVuX291dF9iaW5cbmxldCBvcGVuX291dF9nZW4gPSBvcGVuX291dF9nZW5cbmxldCBmbHVzaCA9IGZsdXNoXG5sZXQgZmx1c2hfYWxsID0gZmx1c2hfYWxsXG5sZXQgb3V0cHV0X2NoYXIgPSBvdXRwdXRfY2hhclxubGV0IG91dHB1dF9zdHJpbmcgPSBvdXRwdXRfc3RyaW5nXG5sZXQgb3V0cHV0X2J5dGVzID0gb3V0cHV0X2J5dGVzXG5sZXQgb3V0cHV0ID0gb3V0cHV0XG5sZXQgb3V0cHV0X3N1YnN0cmluZyA9IG91dHB1dF9zdWJzdHJpbmdcbmxldCBvdXRwdXRfYnl0ZSA9IG91dHB1dF9ieXRlXG5sZXQgb3V0cHV0X2JpbmFyeV9pbnQgPSBvdXRwdXRfYmluYXJ5X2ludFxubGV0IG91dHB1dF92YWx1ZSA9IG91dHB1dF92YWx1ZVxubGV0IHNlZWtfb3V0ID0gc2Vla19vdXRcbmxldCBwb3Nfb3V0ID0gcG9zX291dFxubGV0IG91dF9jaGFubmVsX2xlbmd0aCA9IG91dF9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlX291dCA9IGNsb3NlX291dFxubGV0IGNsb3NlX291dF9ub2VyciA9IGNsb3NlX291dF9ub2VyclxubGV0IHNldF9iaW5hcnlfbW9kZV9vdXQgPSBzZXRfYmluYXJ5X21vZGVfb3V0XG5sZXQgb3Blbl9pbiA9IG9wZW5faW5cbmxldCBvcGVuX2luX2JpbiA9IG9wZW5faW5fYmluXG5sZXQgb3Blbl9pbl9nZW4gPSBvcGVuX2luX2dlblxubGV0IGlucHV0X2NoYXIgPSBpbnB1dF9jaGFyXG5sZXQgaW5wdXRfbGluZSA9IGlucHV0X2xpbmVcbmxldCBpbnB1dCA9IGlucHV0XG5sZXQgcmVhbGx5X2lucHV0ID0gcmVhbGx5X2lucHV0XG5sZXQgcmVhbGx5X2lucHV0X3N0cmluZyA9IHJlYWxseV9pbnB1dF9zdHJpbmdcbmxldCBpbnB1dF9ieXRlID0gaW5wdXRfYnl0ZVxubGV0IGlucHV0X2JpbmFyeV9pbnQgPSBpbnB1dF9iaW5hcnlfaW50XG5sZXQgaW5wdXRfdmFsdWUgPSBpbnB1dF92YWx1ZVxubGV0IHNlZWtfaW4gPSBzZWVrX2luXG5sZXQgcG9zX2luID0gcG9zX2luXG5sZXQgaW5fY2hhbm5lbF9sZW5ndGggPSBpbl9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlX2luID0gY2xvc2VfaW5cbmxldCBjbG9zZV9pbl9ub2VyciA9IGNsb3NlX2luX25vZXJyXG5sZXQgc2V0X2JpbmFyeV9tb2RlX2luID0gc2V0X2JpbmFyeV9tb2RlX2luXG5tb2R1bGUgTGFyZ2VGaWxlID0gTGFyZ2VGaWxlXG50eXBlIG5vbnJlYyAnYSByZWYgPSAnYSByZWYgPSB7IG11dGFibGUgY29udGVudHMgOiAnYSB9XG5leHRlcm5hbCByZWYgOiAnYSAtPiAnYSByZWYgPSBcIiVtYWtlbXV0YWJsZVwiXG5leHRlcm5hbCAoICEgKSA6ICdhIHJlZiAtPiAnYSA9IFwiJWZpZWxkMFwiXG5leHRlcm5hbCAoIDo9ICkgOiAnYSByZWYgLT4gJ2EgLT4gdW5pdCA9IFwiJXNldGZpZWxkMFwiXG5leHRlcm5hbCBpbmNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlaW5jclwiXG5leHRlcm5hbCBkZWNyIDogaW50IHJlZiAtPiB1bml0ID0gXCIlZGVjclwiXG50eXBlIG5vbnJlYyAoJ2EsJ2IpIHJlc3VsdCA9ICgnYSwnYikgcmVzdWx0ID0gT2sgb2YgJ2EgfCBFcnJvciBvZiAnYlxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3MuZm9ybWF0NlxudHlwZSAoJ2EsICdiLCAnYywgJ2QpIGZvcm1hdDQgPSAoJ2EsICdiLCAnYywgJ2MsICdjLCAnZCkgZm9ybWF0NlxudHlwZSAoJ2EsICdiLCAnYykgZm9ybWF0ID0gKCdhLCAnYiwgJ2MsICdjKSBmb3JtYXQ0XG5sZXQgc3RyaW5nX29mX2Zvcm1hdCA9IHN0cmluZ19vZl9mb3JtYXRcbmV4dGVybmFsIGZvcm1hdF9vZl9zdHJpbmcgOlxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9IFwiJWlkZW50aXR5XCJcbmxldCAoIF5eICkgPSAoIF5eIClcbmxldCBleGl0ID0gZXhpdFxubGV0IGF0X2V4aXQgPSBhdF9leGl0XG5sZXQgdmFsaWRfZmxvYXRfbGV4ZW0gPSB2YWxpZF9mbG9hdF9sZXhlbVxubGV0IGRvX2F0X2V4aXQgPSBkb19hdF9leGl0XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgIEdhYnJpZWwgU2NoZXJlciwgcHJvamV0IFBhcnNpZmFsLCBJTlJJQSBTYWNsYXkgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE5IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgKCdhLCAnYikgdCA9IExlZnQgb2YgJ2EgfCBSaWdodCBvZiAnYlxuXG5sZXQgbGVmdCB2ID0gTGVmdCB2XG5sZXQgcmlnaHQgdiA9IFJpZ2h0IHZcblxubGV0IGlzX2xlZnQgPSBmdW5jdGlvblxufCBMZWZ0IF8gLT4gdHJ1ZVxufCBSaWdodCBfIC0+IGZhbHNlXG5cbmxldCBpc19yaWdodCA9IGZ1bmN0aW9uXG58IExlZnQgXyAtPiBmYWxzZVxufCBSaWdodCBfIC0+IHRydWVcblxubGV0IGZpbmRfbGVmdCA9IGZ1bmN0aW9uXG58IExlZnQgdiAtPiBTb21lIHZcbnwgUmlnaHQgXyAtPiBOb25lXG5cbmxldCBmaW5kX3JpZ2h0ID0gZnVuY3Rpb25cbnwgTGVmdCBfIC0+IE5vbmVcbnwgUmlnaHQgdiAtPiBTb21lIHZcblxubGV0IG1hcF9sZWZ0IGYgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gTGVmdCAoZiB2KVxufCBSaWdodCBfIGFzIGUgLT4gZVxuXG5sZXQgbWFwX3JpZ2h0IGYgPSBmdW5jdGlvblxufCBMZWZ0IF8gYXMgZSAtPiBlXG58IFJpZ2h0IHYgLT4gUmlnaHQgKGYgdilcblxubGV0IG1hcCB+bGVmdCB+cmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gTGVmdCAobGVmdCB2KVxufCBSaWdodCB2IC0+IFJpZ2h0IChyaWdodCB2KVxuXG5sZXQgZm9sZCB+bGVmdCB+cmlnaHQgPSBmdW5jdGlvblxufCBMZWZ0IHYgLT4gbGVmdCB2XG58IFJpZ2h0IHYgLT4gcmlnaHQgdlxuXG5sZXQgaXRlciA9IGZvbGRcblxubGV0IGZvcl9hbGwgPSBmb2xkXG5cbmxldCBlcXVhbCB+bGVmdCB+cmlnaHQgZTEgZTIgPSBtYXRjaCBlMSwgZTIgd2l0aFxufCBMZWZ0IHYxLCBMZWZ0IHYyIC0+IGxlZnQgdjEgdjJcbnwgUmlnaHQgdjEsIFJpZ2h0IHYyIC0+IHJpZ2h0IHYxIHYyXG58IExlZnQgXywgUmlnaHQgXyB8IFJpZ2h0IF8sIExlZnQgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSB+bGVmdCB+cmlnaHQgZTEgZTIgPSBtYXRjaCBlMSwgZTIgd2l0aFxufCBMZWZ0IHYxLCBMZWZ0IHYyIC0+IGxlZnQgdjEgdjJcbnwgUmlnaHQgdjEsIFJpZ2h0IHYyIC0+IHJpZ2h0IHYxIHYyXG58IExlZnQgXywgUmlnaHQgXyAtPiAoLTEpXG58IFJpZ2h0IF8sIExlZnQgXyAtPiAxXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE9wZXJhdGlvbnMgb24gaW50ZXJuYWwgcmVwcmVzZW50YXRpb25zIG9mIHZhbHVlcyAqKVxuXG50eXBlIHRcblxudHlwZSByYXdfZGF0YSA9IG5hdGl2ZWludFxuXG5leHRlcm5hbCByZXByIDogJ2EgLT4gdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIG9iaiA6IHQgLT4gJ2EgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBtYWdpYyA6ICdhIC0+ICdiID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgaXNfaW50IDogdCAtPiBib29sID0gXCIlb2JqX2lzX2ludFwiXG5sZXQgW0BpbmxpbmUgYWx3YXlzXSBpc19ibG9jayBhID0gbm90IChpc19pbnQgYSlcbmV4dGVybmFsIHRhZyA6IHQgLT4gaW50ID0gXCJjYW1sX29ial90YWdcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc2V0X3RhZyA6IHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfb2JqX3NldF90YWdcIlxuZXh0ZXJuYWwgc2l6ZSA6IHQgLT4gaW50ID0gXCIlb2JqX3NpemVcIlxuZXh0ZXJuYWwgcmVhY2hhYmxlX3dvcmRzIDogdCAtPiBpbnQgPSBcImNhbWxfb2JqX3JlYWNoYWJsZV93b3Jkc1wiXG5leHRlcm5hbCBmaWVsZCA6IHQgLT4gaW50IC0+IHQgPSBcIiVvYmpfZmllbGRcIlxuZXh0ZXJuYWwgc2V0X2ZpZWxkIDogdCAtPiBpbnQgLT4gdCAtPiB1bml0ID0gXCIlb2JqX3NldF9maWVsZFwiXG5leHRlcm5hbCBmbG9hdGFycmF5X2dldCA6IGZsb2F0YXJyYXkgLT4gaW50IC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0YXJyYXlfZ2V0XCJcbmV4dGVybmFsIGZsb2F0YXJyYXlfc2V0IDpcbiAgICBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCJjYW1sX2Zsb2F0YXJyYXlfc2V0XCJcbmxldCBbQGlubGluZSBhbHdheXNdIGRvdWJsZV9maWVsZCB4IGkgPSBmbG9hdGFycmF5X2dldCAob2JqIHggOiBmbG9hdGFycmF5KSBpXG5sZXQgW0BpbmxpbmUgYWx3YXlzXSBzZXRfZG91YmxlX2ZpZWxkIHggaSB2ID1cbiAgZmxvYXRhcnJheV9zZXQgKG9iaiB4IDogZmxvYXRhcnJheSkgaSB2XG5leHRlcm5hbCByYXdfZmllbGQgOiB0IC0+IGludCAtPiByYXdfZGF0YSA9IFwiY2FtbF9vYmpfcmF3X2ZpZWxkXCJcbmV4dGVybmFsIHNldF9yYXdfZmllbGQgOiB0IC0+IGludCAtPiByYXdfZGF0YSAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9vYmpfc2V0X3Jhd19maWVsZFwiXG5cbmV4dGVybmFsIG5ld19ibG9jayA6IGludCAtPiBpbnQgLT4gdCA9IFwiY2FtbF9vYmpfYmxvY2tcIlxuZXh0ZXJuYWwgZHVwIDogdCAtPiB0ID0gXCJjYW1sX29ial9kdXBcIlxuZXh0ZXJuYWwgdHJ1bmNhdGUgOiB0IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX29ial90cnVuY2F0ZVwiXG5leHRlcm5hbCBhZGRfb2Zmc2V0IDogdCAtPiBJbnQzMi50IC0+IHQgPSBcImNhbWxfb2JqX2FkZF9vZmZzZXRcIlxuZXh0ZXJuYWwgd2l0aF90YWcgOiBpbnQgLT4gdCAtPiB0ID0gXCJjYW1sX29ial93aXRoX3RhZ1wiXG5cbmxldCBmaXJzdF9ub25fY29uc3RhbnRfY29uc3RydWN0b3JfdGFnID0gMFxubGV0IGxhc3Rfbm9uX2NvbnN0YW50X2NvbnN0cnVjdG9yX3RhZyA9IDI0NVxuXG5sZXQgbGF6eV90YWcgPSAyNDZcbmxldCBjbG9zdXJlX3RhZyA9IDI0N1xubGV0IG9iamVjdF90YWcgPSAyNDhcbmxldCBpbmZpeF90YWcgPSAyNDlcbmxldCBmb3J3YXJkX3RhZyA9IDI1MFxuXG5sZXQgbm9fc2Nhbl90YWcgPSAyNTFcblxubGV0IGFic3RyYWN0X3RhZyA9IDI1MVxubGV0IHN0cmluZ190YWcgPSAyNTJcbmxldCBkb3VibGVfdGFnID0gMjUzXG5sZXQgZG91YmxlX2FycmF5X3RhZyA9IDI1NFxubGV0IGN1c3RvbV90YWcgPSAyNTVcbmxldCBmaW5hbF90YWcgPSBjdXN0b21fdGFnXG5cblxubGV0IGludF90YWcgPSAxMDAwXG5sZXQgb3V0X29mX2hlYXBfdGFnID0gMTAwMVxubGV0IHVuYWxpZ25lZF90YWcgPSAxMDAyXG5cbm1vZHVsZSBDbG9zdXJlID0gc3RydWN0XG4gIHR5cGUgaW5mbyA9IHtcbiAgICBhcml0eTogaW50O1xuICAgIHN0YXJ0X2VudjogaW50O1xuICB9XG5cbiAgbGV0IGluZm9fb2ZfcmF3IChpbmZvIDogbmF0aXZlaW50KSA9XG4gICAgbGV0IG9wZW4gTmF0aXZlaW50IGluXG4gICAgbGV0IGFyaXR5ID1cbiAgICAgICgqIHNpZ25lZDogbmVnYXRpdmUgZm9yIHR1cGxlZCBmdW5jdGlvbnMgKilcbiAgICAgIGlmIFN5cy53b3JkX3NpemUgPSA2NCB0aGVuXG4gICAgICAgIHRvX2ludCAoc2hpZnRfcmlnaHQgaW5mbyA1NilcbiAgICAgIGVsc2VcbiAgICAgICAgdG9faW50IChzaGlmdF9yaWdodCBpbmZvIDI0KVxuICAgIGluXG4gICAgbGV0IHN0YXJ0X2VudiA9XG4gICAgICAoKiBzdGFydF9lbnYgaXMgdW5zaWduZWQsIGJ1dCB3ZSBrbm93IGl0IGNhbiBhbHdheXMgZml0IGFuIE9DYW1sXG4gICAgICAgICBpbnRlZ2VyIHNvIHdlIHVzZSBbdG9faW50XSBpbnN0ZWFkIG9mIFt1bnNpZ25lZF90b19pbnRdLiAqKVxuICAgICAgdG9faW50IChzaGlmdF9yaWdodF9sb2dpY2FsIChzaGlmdF9sZWZ0IGluZm8gOCkgOSkgaW5cbiAgICB7IGFyaXR5OyBzdGFydF9lbnYgfVxuXG4gICgqIG5vdGU6IHdlIGV4cGVjdCBhIGNsb3N1cmUsIG5vdCBhbiBpbmZpeCBwb2ludGVyICopXG4gIGxldCBpbmZvIChvYmogOiB0KSA9XG4gICAgYXNzZXJ0ICh0YWcgb2JqID0gY2xvc3VyZV90YWcpO1xuICAgIGluZm9fb2ZfcmF3IChyYXdfZmllbGQgb2JqIDEpXG5lbmRcblxubW9kdWxlIEV4dGVuc2lvbl9jb25zdHJ1Y3RvciA9XG5zdHJ1Y3RcbiAgdHlwZSB0ID0gZXh0ZW5zaW9uX2NvbnN0cnVjdG9yXG4gIGxldCBvZl92YWwgeCA9XG4gICAgbGV0IHggPSByZXByIHggaW5cbiAgICBsZXQgc2xvdCA9XG4gICAgICBpZiAoaXNfYmxvY2sgeCkgJiYgKHRhZyB4KSA8PiBvYmplY3RfdGFnICYmIChzaXplIHgpID49IDEgdGhlbiBmaWVsZCB4IDBcbiAgICAgIGVsc2UgeFxuICAgIGluXG4gICAgbGV0IG5hbWUgPVxuICAgICAgaWYgKGlzX2Jsb2NrIHNsb3QpICYmICh0YWcgc2xvdCkgPSBvYmplY3RfdGFnIHRoZW4gZmllbGQgc2xvdCAwXG4gICAgICBlbHNlIGludmFsaWRfYXJnIFwiT2JqLmV4dGVuc2lvbl9jb25zdHJ1Y3RvclwiXG4gICAgaW5cbiAgICAgIGlmICh0YWcgbmFtZSkgPSBzdHJpbmdfdGFnIHRoZW4gKG9iaiBzbG90IDogdClcbiAgICAgIGVsc2UgaW52YWxpZF9hcmcgXCJPYmouZXh0ZW5zaW9uX2NvbnN0cnVjdG9yXCJcblxuICBsZXQgW0BpbmxpbmUgYWx3YXlzXSBuYW1lIChzbG90IDogdCkgPVxuICAgIChvYmogKGZpZWxkIChyZXByIHNsb3QpIDApIDogc3RyaW5nKVxuXG4gIGxldCBbQGlubGluZSBhbHdheXNdIGlkIChzbG90IDogdCkgPVxuICAgIChvYmogKGZpZWxkIChyZXByIHNsb3QpIDEpIDogaW50KVxuZW5kXG5cbmxldCBleHRlbnNpb25fY29uc3RydWN0b3IgPSBFeHRlbnNpb25fY29uc3RydWN0b3Iub2ZfdmFsXG5sZXQgZXh0ZW5zaW9uX25hbWUgPSBFeHRlbnNpb25fY29uc3RydWN0b3IubmFtZVxubGV0IGV4dGVuc2lvbl9pZCA9IEV4dGVuc2lvbl9jb25zdHJ1Y3Rvci5pZFxuXG5tb2R1bGUgRXBoZW1lcm9uID0gc3RydWN0XG4gIHR5cGUgb2JqX3QgPSB0XG5cbiAgdHlwZSB0ICgqKiBlcGhlbWVyb24gKilcblxuICAgKCoqIFRvIGNoYW5nZSBpbiBzeW5jIHdpdGggd2Vhay5oICopXG4gIGxldCBhZGRpdGlvbmFsX3ZhbHVlcyA9IDJcbiAgbGV0IG1heF9lcGhlX2xlbmd0aCA9IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIC0gYWRkaXRpb25hbF92YWx1ZXNcblxuICBleHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gdCA9IFwiY2FtbF9lcGhlX2NyZWF0ZVwiOztcbiAgbGV0IGNyZWF0ZSBsID1cbiAgICBpZiBub3QgKDAgPD0gbCAmJiBsIDw9IG1heF9lcGhlX2xlbmd0aCkgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJPYmouRXBoZW1lcm9uLmNyZWF0ZVwiO1xuICAgIGNyZWF0ZSBsXG5cbiAgbGV0IGxlbmd0aCB4ID0gc2l6ZShyZXByIHgpIC0gYWRkaXRpb25hbF92YWx1ZXNcblxuICBsZXQgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIG1zZyA9XG4gICAgaWYgbm90ICgwIDw9IG8gJiYgbyA8IGxlbmd0aCBlKSB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBtc2dcblxuICBleHRlcm5hbCBnZXRfa2V5OiB0IC0+IGludCAtPiBvYmpfdCBvcHRpb24gPSBcImNhbWxfZXBoZV9nZXRfa2V5XCJcbiAgbGV0IGdldF9rZXkgZSBvID1cbiAgICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJPYmouRXBoZW1lcm9uLmdldF9rZXlcIjtcbiAgICBnZXRfa2V5IGUgb1xuXG4gIGV4dGVybmFsIGdldF9rZXlfY29weTogdCAtPiBpbnQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2tleV9jb3B5XCJcbiAgbGV0IGdldF9rZXlfY29weSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uZ2V0X2tleV9jb3B5XCI7XG4gICAgZ2V0X2tleV9jb3B5IGUgb1xuXG4gIGV4dGVybmFsIHNldF9rZXk6IHQgLT4gaW50IC0+IG9ial90IC0+IHVuaXQgPSBcImNhbWxfZXBoZV9zZXRfa2V5XCJcbiAgbGV0IHNldF9rZXkgZSBvIHggPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uc2V0X2tleVwiO1xuICAgIHNldF9rZXkgZSBvIHhcblxuICBleHRlcm5hbCB1bnNldF9rZXk6IHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfZXBoZV91bnNldF9rZXlcIlxuICBsZXQgdW5zZXRfa2V5IGUgbyA9XG4gICAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiT2JqLkVwaGVtZXJvbi51bnNldF9rZXlcIjtcbiAgICB1bnNldF9rZXkgZSBvXG5cbiAgZXh0ZXJuYWwgY2hlY2tfa2V5OiB0IC0+IGludCAtPiBib29sID0gXCJjYW1sX2VwaGVfY2hlY2tfa2V5XCJcbiAgbGV0IGNoZWNrX2tleSBlIG8gPVxuICAgIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIk9iai5FcGhlbWVyb24uY2hlY2tfa2V5XCI7XG4gICAgY2hlY2tfa2V5IGUgb1xuXG4gIGV4dGVybmFsIGJsaXRfa2V5IDogdCAtPiBpbnQgLT4gdCAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICA9IFwiY2FtbF9lcGhlX2JsaXRfa2V5XCJcblxuICBsZXQgYmxpdF9rZXkgZTEgbzEgZTIgbzIgbCA9XG4gICAgaWYgbCA8IDAgfHwgbzEgPCAwIHx8IG8xID4gbGVuZ3RoIGUxIC0gbFxuICAgICAgIHx8IG8yIDwgMCB8fCBvMiA+IGxlbmd0aCBlMiAtIGxcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiT2JqLkVwaGVtZXJvbi5ibGl0X2tleVwiXG4gICAgZWxzZSBpZiBsIDw+IDAgdGhlbiBibGl0X2tleSBlMSBvMSBlMiBvMiBsXG5cbiAgZXh0ZXJuYWwgZ2V0X2RhdGE6IHQgLT4gb2JqX3Qgb3B0aW9uID0gXCJjYW1sX2VwaGVfZ2V0X2RhdGFcIlxuICBleHRlcm5hbCBnZXRfZGF0YV9jb3B5OiB0IC0+IG9ial90IG9wdGlvbiA9IFwiY2FtbF9lcGhlX2dldF9kYXRhX2NvcHlcIlxuICBleHRlcm5hbCBzZXRfZGF0YTogdCAtPiBvYmpfdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfc2V0X2RhdGFcIlxuICBleHRlcm5hbCB1bnNldF9kYXRhOiB0IC0+IHVuaXQgPSBcImNhbWxfZXBoZV91bnNldF9kYXRhXCJcbiAgZXh0ZXJuYWwgY2hlY2tfZGF0YTogdCAtPiBib29sID0gXCJjYW1sX2VwaGVfY2hlY2tfZGF0YVwiXG4gIGV4dGVybmFsIGJsaXRfZGF0YSA6IHQgLT4gdCAtPiB1bml0ID0gXCJjYW1sX2VwaGVfYmxpdF9kYXRhXCJcblxuZW5kXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEludGVybmFscyBvZiBmb3JjaW5nIGxhenkgdmFsdWVzLiAqKVxuXG50eXBlICdhIHQgPSAnYSBsYXp5X3RcblxuZXhjZXB0aW9uIFVuZGVmaW5lZFxuXG5sZXQgcmFpc2VfdW5kZWZpbmVkID0gT2JqLnJlcHIgKGZ1biAoKSAtPiByYWlzZSBVbmRlZmluZWQpXG5cbmV4dGVybmFsIG1ha2VfZm9yd2FyZCA6IE9iai50IC0+IE9iai50IC0+IHVuaXQgPSBcImNhbWxfb2JqX21ha2VfZm9yd2FyZFwiXG5cbigqIEFzc3VtZSBbYmxrXSBpcyBhIGJsb2NrIHdpdGggdGFnIGxhenkgKilcbmxldCBmb3JjZV9sYXp5X2Jsb2NrIChibGsgOiAnYXJnIGxhenlfdCkgPVxuICBsZXQgY2xvc3VyZSA9IChPYmoub2JqIChPYmouZmllbGQgKE9iai5yZXByIGJsaykgMCkgOiB1bml0IC0+ICdhcmcpIGluXG4gIE9iai5zZXRfZmllbGQgKE9iai5yZXByIGJsaykgMCByYWlzZV91bmRlZmluZWQ7XG4gIHRyeVxuICAgIGxldCByZXN1bHQgPSBjbG9zdXJlICgpIGluXG4gICAgbWFrZV9mb3J3YXJkIChPYmoucmVwciBibGspIChPYmoucmVwciByZXN1bHQpO1xuICAgIHJlc3VsdFxuICB3aXRoIGUgLT5cbiAgICBPYmouc2V0X2ZpZWxkIChPYmoucmVwciBibGspIDAgKE9iai5yZXByIChmdW4gKCkgLT4gcmFpc2UgZSkpO1xuICAgIHJhaXNlIGVcblxuXG4oKiBBc3N1bWUgW2Jsa10gaXMgYSBibG9jayB3aXRoIHRhZyBsYXp5ICopXG5sZXQgZm9yY2VfdmFsX2xhenlfYmxvY2sgKGJsayA6ICdhcmcgbGF6eV90KSA9XG4gIGxldCBjbG9zdXJlID0gKE9iai5vYmogKE9iai5maWVsZCAoT2JqLnJlcHIgYmxrKSAwKSA6IHVuaXQgLT4gJ2FyZykgaW5cbiAgT2JqLnNldF9maWVsZCAoT2JqLnJlcHIgYmxrKSAwIHJhaXNlX3VuZGVmaW5lZDtcbiAgbGV0IHJlc3VsdCA9IGNsb3N1cmUgKCkgaW5cbiAgbWFrZV9mb3J3YXJkIChPYmoucmVwciBibGspIChPYmoucmVwciByZXN1bHQpO1xuICByZXN1bHRcblxuXG4oKiBbZm9yY2VdIGlzIG5vdCB1c2VkLCBzaW5jZSBbTGF6eS5mb3JjZV0gaXMgZGVjbGFyZWQgYXMgYSBwcmltaXRpdmVcbiAgIHdob3NlIGNvZGUgaW5saW5lcyB0aGUgdGFnIHRlc3RzIG9mIGl0cyBhcmd1bWVudCwgZXhjZXB0IHdoZW4gYWZsXG4gICBpbnN0cnVtZW50YXRpb24gaXMgdHVybmVkIG9uLiAqKVxuXG5sZXQgZm9yY2UgKGx6diA6ICdhcmcgbGF6eV90KSA9XG4gICgqIFVzaW5nIFtTeXMub3BhcXVlX2lkZW50aXR5XSBwcmV2ZW50cyB0d28gcG90ZW50aWFsIHByb2JsZW1zOlxuICAgICAtIElmIHRoZSB2YWx1ZSBpcyBrbm93biB0byBoYXZlIEZvcndhcmRfdGFnLCB0aGVuIGl0cyB0YWcgY291bGQgaGF2ZVxuICAgICAgIGNoYW5nZWQgZHVyaW5nIEdDLCBzbyB0aGF0IGluZm9ybWF0aW9uIG11c3QgYmUgZm9yZ290dGVuIChzZWUgR1BSIzcxM1xuICAgICAgIGFuZCBpc3N1ZSAjNzMwMSlcbiAgICAgLSBJZiB0aGUgdmFsdWUgaXMga25vd24gdG8gYmUgaW1tdXRhYmxlLCB0aGVuIGlmIHRoZSBjb21waWxlclxuICAgICAgIGNhbm5vdCBwcm92ZSB0aGF0IHRoZSBsYXN0IGJyYW5jaCBpcyBub3QgdGFrZW4gaXQgd2lsbCBpc3N1ZSBhXG4gICAgICAgd2FybmluZyA1OSAobW9kaWZpY2F0aW9uIG9mIGFuIGltbXV0YWJsZSB2YWx1ZSkgKilcbiAgbGV0IGx6diA9IFN5cy5vcGFxdWVfaWRlbnRpdHkgbHp2IGluXG4gIGxldCB4ID0gT2JqLnJlcHIgbHp2IGluXG4gIGxldCB0ID0gT2JqLnRhZyB4IGluXG4gIGlmIHQgPSBPYmouZm9yd2FyZF90YWcgdGhlbiAoT2JqLm9iaiAoT2JqLmZpZWxkIHggMCkgOiAnYXJnKSBlbHNlXG4gIGlmIHQgPD4gT2JqLmxhenlfdGFnIHRoZW4gKE9iai5vYmogeCA6ICdhcmcpXG4gIGVsc2UgZm9yY2VfbGF6eV9ibG9jayBsenZcblxuXG5sZXQgZm9yY2VfdmFsIChsenYgOiAnYXJnIGxhenlfdCkgPVxuICBsZXQgeCA9IE9iai5yZXByIGx6diBpblxuICBsZXQgdCA9IE9iai50YWcgeCBpblxuICBpZiB0ID0gT2JqLmZvcndhcmRfdGFnIHRoZW4gKE9iai5vYmogKE9iai5maWVsZCB4IDApIDogJ2FyZykgZWxzZVxuICBpZiB0IDw+IE9iai5sYXp5X3RhZyB0aGVuIChPYmoub2JqIHggOiAnYXJnKVxuICBlbHNlIGZvcmNlX3ZhbF9sYXp5X2Jsb2NrIGx6dlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0xhenldOiBkZWZlcnJlZCBjb21wdXRhdGlvbnMgKilcblxuXG4oKlxuICAgV0FSTklORzogc29tZSBwdXJwbGUgbWFnaWMgaXMgZ29pbmcgb24gaGVyZS4gIERvIG5vdCB0YWtlIHRoaXMgZmlsZVxuICAgYXMgYW4gZXhhbXBsZSBvZiBob3cgdG8gcHJvZ3JhbSBpbiBPQ2FtbC5cbiopXG5cblxuKCogV2UgbWFrZSB1c2Ugb2YgdHdvIHNwZWNpYWwgdGFncyBwcm92aWRlZCBieSB0aGUgcnVudGltZTpcbiAgIFtsYXp5X3RhZ10gYW5kIFtmb3J3YXJkX3RhZ10uXG5cbiAgIEEgdmFsdWUgb2YgdHlwZSBbJ2EgTGF6eS50XSBjYW4gYmUgb25lIG9mIHRocmVlIHRoaW5nczpcbiAgIDEuIEEgYmxvY2sgb2Ygc2l6ZSAxIHdpdGggdGFnIFtsYXp5X3RhZ10uICBJdHMgZmllbGQgaXMgYSBjbG9zdXJlIG9mXG4gICAgICB0eXBlIFt1bml0IC0+ICdhXSB0aGF0IGNvbXB1dGVzIHRoZSB2YWx1ZS5cbiAgIDIuIEEgYmxvY2sgb2Ygc2l6ZSAxIHdpdGggdGFnIFtmb3J3YXJkX3RhZ10uICBJdHMgZmllbGQgaXMgdGhlIHZhbHVlXG4gICAgICBvZiB0eXBlIFsnYV0gdGhhdCB3YXMgY29tcHV0ZWQuXG4gICAzLiBBbnl0aGluZyBlbHNlIGV4Y2VwdCBhIGZsb2F0LiAgVGhpcyBoYXMgdHlwZSBbJ2FdIGFuZCBpcyB0aGUgdmFsdWVcbiAgICAgIHRoYXQgd2FzIGNvbXB1dGVkLlxuICAgRXhjZXB0aW9ucyBhcmUgc3RvcmVkIGluIGZvcm1hdCAoMSkuXG4gICBUaGUgR0Mgd2lsbCBtYWdpY2FsbHkgY2hhbmdlIHRoaW5ncyBmcm9tICgyKSB0byAoMykgYWNjb3JkaW5nIHRvIGl0c1xuICAgZmFuY3kuXG5cbiAgIElmIE9DYW1sIHdhcyBjb25maWd1cmVkIHdpdGggdGhlIC1mbGF0LWZsb2F0LWFycmF5IG9wdGlvbiAod2hpY2ggaXNcbiAgIGN1cnJlbnRseSB0aGUgZGVmYXVsdCksIHRoZSBmb2xsb3dpbmcgaXMgYWxzbyB0cnVlOlxuICAgV2UgY2Fubm90IHVzZSByZXByZXNlbnRhdGlvbiAoMykgZm9yIGEgW2Zsb2F0IExhenkudF0gYmVjYXVzZVxuICAgW2NhbWxfbWFrZV9hcnJheV0gYXNzdW1lcyB0aGF0IG9ubHkgYSBbZmxvYXRdIHZhbHVlIGNhbiBoYXZlIHRhZ1xuICAgW0RvdWJsZV90YWddLlxuXG4gICBXZSBoYXZlIHRvIHVzZSB0aGUgYnVpbHQtaW4gdHlwZSBjb25zdHJ1Y3RvciBbbGF6eV90XSB0b1xuICAgbGV0IHRoZSBjb21waWxlciBpbXBsZW1lbnQgdGhlIHNwZWNpYWwgdHlwaW5nIGFuZCBjb21waWxhdGlvblxuICAgcnVsZXMgZm9yIHRoZSBbbGF6eV0ga2V5d29yZC5cbiopXG5cbnR5cGUgJ2EgdCA9ICdhIENhbWxpbnRlcm5hbExhenkudFxuXG5leGNlcHRpb24gVW5kZWZpbmVkID0gQ2FtbGludGVybmFsTGF6eS5VbmRlZmluZWRcblxuZXh0ZXJuYWwgbWFrZV9mb3J3YXJkIDogJ2EgLT4gJ2EgbGF6eV90ID0gXCJjYW1sX2xhenlfbWFrZV9mb3J3YXJkXCJcblxuZXh0ZXJuYWwgZm9yY2UgOiAnYSB0IC0+ICdhID0gXCIlbGF6eV9mb3JjZVwiXG5cblxubGV0IGZvcmNlX3ZhbCA9IENhbWxpbnRlcm5hbExhenkuZm9yY2VfdmFsXG5cbmxldCBmcm9tX2Z1biAoZiA6IHVuaXQgLT4gJ2FyZykgPVxuICBsZXQgeCA9IE9iai5uZXdfYmxvY2sgT2JqLmxhenlfdGFnIDEgaW5cbiAgT2JqLnNldF9maWVsZCB4IDAgKE9iai5yZXByIGYpO1xuICAoT2JqLm9iaiB4IDogJ2FyZyB0KVxuXG5sZXQgZnJvbV92YWwgKHYgOiAnYXJnKSA9XG4gIGxldCB0ID0gT2JqLnRhZyAoT2JqLnJlcHIgdikgaW5cbiAgaWYgdCA9IE9iai5mb3J3YXJkX3RhZyB8fCB0ID0gT2JqLmxhenlfdGFnIHx8IHQgPSBPYmouZG91YmxlX3RhZyB0aGVuIGJlZ2luXG4gICAgbWFrZV9mb3J3YXJkIHZcbiAgZW5kIGVsc2UgYmVnaW5cbiAgICAoT2JqLm1hZ2ljIHYgOiAnYXJnIHQpXG4gIGVuZFxuXG5cbmxldCBpc192YWwgKGwgOiAnYXJnIHQpID0gT2JqLnRhZyAoT2JqLnJlcHIgbCkgPD4gT2JqLmxhenlfdGFnXG5cbmxldCBsYXp5X2Zyb21fZnVuID0gZnJvbV9mdW5cblxubGV0IGxhenlfZnJvbV92YWwgPSBmcm9tX3ZhbFxuXG5sZXQgbGF6eV9pc192YWwgPSBpc192YWxcblxuXG5sZXQgbWFwIGYgeCA9XG4gIGxhenkgKGYgKGZvcmNlIHgpKVxuXG5sZXQgbWFwX3ZhbCBmIHggPVxuICBpZiBpc192YWwgeFxuICB0aGVuIGxhenlfZnJvbV92YWwgKGYgKGZvcmNlIHgpKVxuICBlbHNlIGxhenkgKGYgKGZvcmNlIHgpKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgIFNpbW9uIENydWFuZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW1NlcV06IGZ1bmN0aW9uYWwgaXRlcmF0b3JzICopXG5cbnR5cGUgKydhIG5vZGUgPVxuICB8IE5pbFxuICB8IENvbnMgb2YgJ2EgKiAnYSB0XG5cbmFuZCAnYSB0ID0gdW5pdCAtPiAnYSBub2RlXG5cbmxldCBlbXB0eSAoKSA9IE5pbFxuXG5sZXQgcmV0dXJuIHggKCkgPSBDb25zICh4LCBlbXB0eSlcblxubGV0IGNvbnMgeCBuZXh0ICgpID0gQ29ucyAoeCwgbmV4dClcblxubGV0IHJlYyBhcHBlbmQgc2VxMSBzZXEyICgpID1cbiAgbWF0Y2ggc2VxMSgpIHdpdGhcbiAgfCBOaWwgLT4gc2VxMigpXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT4gQ29ucyAoeCwgYXBwZW5kIG5leHQgc2VxMilcblxubGV0IHJlYyBtYXAgZiBzZXEgKCkgPSBtYXRjaCBzZXEoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+IENvbnMgKGYgeCwgbWFwIGYgbmV4dClcblxubGV0IHJlYyBmaWx0ZXJfbWFwIGYgc2VxICgpID0gbWF0Y2ggc2VxKCkgd2l0aFxuICB8IE5pbCAtPiBOaWxcbiAgfCBDb25zICh4LCBuZXh0KSAtPlxuICAgICAgbWF0Y2ggZiB4IHdpdGhcbiAgICAgICAgfCBOb25lIC0+IGZpbHRlcl9tYXAgZiBuZXh0ICgpXG4gICAgICAgIHwgU29tZSB5IC0+IENvbnMgKHksIGZpbHRlcl9tYXAgZiBuZXh0KVxuXG5sZXQgcmVjIGZpbHRlciBmIHNlcSAoKSA9IG1hdGNoIHNlcSgpIHdpdGhcbiAgfCBOaWwgLT4gTmlsXG4gIHwgQ29ucyAoeCwgbmV4dCkgLT5cbiAgICAgIGlmIGYgeFxuICAgICAgdGhlbiBDb25zICh4LCBmaWx0ZXIgZiBuZXh0KVxuICAgICAgZWxzZSBmaWx0ZXIgZiBuZXh0ICgpXG5cbmxldCByZWMgY29uY2F0IHNlcSAoKSA9IG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgIGFwcGVuZCB4IChjb25jYXQgbmV4dCkgKClcblxubGV0IHJlYyBmbGF0X21hcCBmIHNlcSAoKSA9IG1hdGNoIHNlcSAoKSB3aXRoXG4gIHwgTmlsIC0+IE5pbFxuICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgYXBwZW5kIChmIHgpIChmbGF0X21hcCBmIG5leHQpICgpXG5cbmxldCBjb25jYXRfbWFwID0gZmxhdF9tYXBcblxubGV0IHJlYyBmb2xkX2xlZnQgZiBhY2Mgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgICB8IE5pbCAtPiBhY2NcbiAgICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICAgIGxldCBhY2MgPSBmIGFjYyB4IGluXG4gICAgICAgIGZvbGRfbGVmdCBmIGFjYyBuZXh0XG5cbmxldCByZWMgaXRlciBmIHNlcSA9XG4gIG1hdGNoIHNlcSAoKSB3aXRoXG4gICAgfCBOaWwgLT4gKClcbiAgICB8IENvbnMgKHgsIG5leHQpIC0+XG4gICAgICAgIGYgeDtcbiAgICAgICAgaXRlciBmIG5leHRcblxubGV0IHJlYyB1bmZvbGQgZiB1ICgpID1cbiAgbWF0Y2ggZiB1IHdpdGhcbiAgfCBOb25lIC0+IE5pbFxuICB8IFNvbWUgKHgsIHUnKSAtPiBDb25zICh4LCB1bmZvbGQgZiB1JylcblxubGV0IGlzX2VtcHR5IHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoXywgXykgLT5cbiAgICAgIGZhbHNlXG5cbmxldCB1bmNvbnMgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIFNvbWUgKHgsIHhzKVxuICB8IE5pbCAtPlxuICAgICAgTm9uZVxuXG5cblxubGV0IHJlYyBsZW5ndGhfYXV4IGFjY3UgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGFjY3VcbiAgfCBDb25zIChfLCB4cykgLT5cbiAgICAgIGxlbmd0aF9hdXggKGFjY3UgKyAxKSB4c1xuXG5sZXRbQGlubGluZV0gbGVuZ3RoIHhzID1cbiAgbGVuZ3RoX2F1eCAwIHhzXG5cbmxldCByZWMgaXRlcmlfYXV4IGYgaSB4cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgKClcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIGYgaSB4O1xuICAgICAgaXRlcmlfYXV4IGYgKGkrMSkgeHNcblxubGV0W0BpbmxpbmVdIGl0ZXJpIGYgeHMgPVxuICBpdGVyaV9hdXggZiAwIHhzXG5cbmxldCByZWMgZm9sZF9sZWZ0aV9hdXggZiBhY2N1IGkgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGFjY3VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIGxldCBhY2N1ID0gZiBhY2N1IGkgeCBpblxuICAgICAgZm9sZF9sZWZ0aV9hdXggZiBhY2N1IChpKzEpIHhzXG5cbmxldFtAaW5saW5lXSBmb2xkX2xlZnRpIGYgYWNjdSB4cyA9XG4gIGZvbGRfbGVmdGlfYXV4IGYgYWNjdSAwIHhzXG5cbmxldCByZWMgZm9yX2FsbCBwIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBwIHggJiYgZm9yX2FsbCBwIHhzXG5cbmxldCByZWMgZXhpc3RzIHAgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGZhbHNlXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBwIHggfHwgZXhpc3RzIHAgeHNcblxubGV0IHJlYyBmaW5kIHAgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5vbmVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIGlmIHAgeCB0aGVuIFNvbWUgeCBlbHNlIGZpbmQgcCB4c1xuXG5sZXQgcmVjIGZpbmRfbWFwIGYgeHMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5vbmVcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgICBmaW5kX21hcCBmIHhzXG4gICAgICB8IFNvbWUgXyBhcyByZXN1bHQgLT5cbiAgICAgICAgICByZXN1bHRcblxuKCogW2l0ZXIyXSwgW2ZvbGRfbGVmdDJdLCBbZm9yX2FsbDJdLCBbZXhpc3RzMl0sIFttYXAyXSwgW3ppcF0gd29yayBhbHNvIGluXG4gICB0aGUgY2FzZSB3aGVyZSB0aGUgdHdvIHNlcXVlbmNlcyBoYXZlIGRpZmZlcmVudCBsZW5ndGhzLiBUaGV5IHN0b3AgYXMgc29vblxuICAgYXMgb25lIHNlcXVlbmNlIGlzIGV4aGF1c3RlZC4gVGhlaXIgYmVoYXZpb3IgaXMgc2xpZ2h0bHkgYXN5bW1ldHJpYzogd2hlblxuICAgW3hzXSBpcyBlbXB0eSwgdGhleSBkbyBub3QgZm9yY2UgW3lzXTsgaG93ZXZlciwgd2hlbiBbeXNdIGlzIGVtcHR5LCBbeHNdIGlzXG4gICBmb3JjZWQsIGV2ZW4gdGhvdWdoIHRoZSByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uIGFwcGxpY2F0aW9uIFt4cygpXSB0dXJucyBvdXRcbiAgIHRvIGJlIHVzZWxlc3MuICopXG5cbmxldCByZWMgaXRlcjIgZiB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgKClcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICAoKVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBmIHggeTtcbiAgICAgICAgICBpdGVyMiBmIHhzIHlzXG5cbmxldCByZWMgZm9sZF9sZWZ0MiBmIGFjY3UgeHMgeXMgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIGFjY3VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBhY2N1XG4gICAgICB8IENvbnMgKHksIHlzKSAtPlxuICAgICAgICAgIGxldCBhY2N1ID0gZiBhY2N1IHggeSBpblxuICAgICAgICAgIGZvbGRfbGVmdDIgZiBhY2N1IHhzIHlzXG5cbmxldCByZWMgZm9yX2FsbDIgZiB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgdHJ1ZVxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIHRydWVcbiAgICAgIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICAgICAgZiB4IHkgJiYgZm9yX2FsbDIgZiB4cyB5c1xuXG5sZXQgcmVjIGV4aXN0czIgZiB4cyB5cyA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgZmFsc2VcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIHlzKCkgd2l0aFxuICAgICAgfCBOaWwgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBmIHggeSB8fCBleGlzdHMyIGYgeHMgeXNcblxubGV0IHJlYyBlcXVhbCBlcSB4cyB5cyA9XG4gIG1hdGNoIHhzKCksIHlzKCkgd2l0aFxuICB8IE5pbCwgTmlsIC0+XG4gICAgICB0cnVlXG4gIHwgQ29ucyAoeCwgeHMpLCBDb25zICh5LCB5cykgLT5cbiAgICAgIGVxIHggeSAmJiBlcXVhbCBlcSB4cyB5c1xuICB8IE5pbCwgQ29ucyAoXywgXylcbiAgfCBDb25zIChfLCBfKSwgTmlsIC0+XG4gICAgICBmYWxzZVxuXG5sZXQgcmVjIGNvbXBhcmUgY21wIHhzIHlzID1cbiAgbWF0Y2ggeHMoKSwgeXMoKSB3aXRoXG4gIHwgTmlsLCBOaWwgLT5cbiAgICAgIDBcbiAgfCBDb25zICh4LCB4cyksIENvbnMgKHksIHlzKSAtPlxuICAgICAgbGV0IGMgPSBjbXAgeCB5IGluXG4gICAgICBpZiBjIDw+IDAgdGhlbiBjIGVsc2UgY29tcGFyZSBjbXAgeHMgeXNcbiAgfCBOaWwsIENvbnMgKF8sIF8pIC0+XG4gICAgICAtMVxuICB8IENvbnMgKF8sIF8pLCBOaWwgLT5cbiAgICAgICsxXG5cblxuXG4oKiBbaW5pdF9hdXggZiBpIGpdIGlzIHRoZSBzZXF1ZW5jZSBbZiBpLCAuLi4sIGYgKGotMSldLiAqKVxuXG5sZXQgcmVjIGluaXRfYXV4IGYgaSBqICgpID1cbiAgaWYgaSA8IGogdGhlbiBiZWdpblxuICAgIENvbnMgKGYgaSwgaW5pdF9hdXggZiAoaSArIDEpIGopXG4gIGVuZFxuICBlbHNlXG4gICAgTmlsXG5cbmxldCBpbml0IG4gZiA9XG4gIGlmIG4gPCAwIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlNlcS5pbml0XCJcbiAgZWxzZVxuICAgIGluaXRfYXV4IGYgMCBuXG5cbmxldCByZWMgcmVwZWF0IHggKCkgPVxuICBDb25zICh4LCByZXBlYXQgeClcblxubGV0IHJlYyBmb3JldmVyIGYgKCkgPVxuICBDb25zIChmKCksIGZvcmV2ZXIgZilcblxuKCogVGhpcyBwcmVsaW1pbmFyeSBkZWZpbml0aW9uIG9mIFtjeWNsZV0gcmVxdWlyZXMgdGhlIHNlcXVlbmNlIFt4c11cbiAgIHRvIGJlIG5vbmVtcHR5LiBBcHBseWluZyBpdCB0byBhbiBlbXB0eSBzZXF1ZW5jZSB3b3VsZCBwcm9kdWNlIGFcbiAgIHNlcXVlbmNlIHRoYXQgZGl2ZXJnZXMgd2hlbiBpdCBpcyBmb3JjZWQuICopXG5cbmxldCByZWMgY3ljbGVfbm9uZW1wdHkgeHMgKCkgPVxuICBhcHBlbmQgeHMgKGN5Y2xlX25vbmVtcHR5IHhzKSAoKVxuXG4oKiBbY3ljbGUgeHNdIGNoZWNrcyB3aGV0aGVyIFt4c10gaXMgZW1wdHkgYW5kLCBpZiBzbywgcmV0dXJucyBhbiBlbXB0eVxuICAgc2VxdWVuY2UuIE90aGVyd2lzZSwgW2N5Y2xlIHhzXSBwcm9kdWNlcyBvbmUgY29weSBvZiBbeHNdIGZvbGxvd2VkXG4gICB3aXRoIHRoZSBpbmZpbml0ZSBzZXF1ZW5jZSBbY3ljbGVfbm9uZW1wdHkgeHNdLiBUaHVzLCB0aGUgbm9uZW1wdGluZXNzXG4gICBjaGVjayBpcyBwZXJmb3JtZWQganVzdCBvbmNlLiAqKVxuXG5sZXQgY3ljbGUgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzJykgLT5cbiAgICAgIENvbnMgKHgsIGFwcGVuZCB4cycgKGN5Y2xlX25vbmVtcHR5IHhzKSlcblxuKCogW2l0ZXJhdGUxIGYgeF0gaXMgdGhlIHNlcXVlbmNlIFtmIHgsIGYgKGYgeCksIC4uLl0uXG4gICBJdCBpcyBlcXVpdmFsZW50IHRvIFt0YWlsIChpdGVyYXRlIGYgeCldLlxuICAgW2l0ZXJhdGUxXSBpcyB1c2VkIGFzIGEgYnVpbGRpbmcgYmxvY2sgaW4gdGhlIGRlZmluaXRpb24gb2YgW2l0ZXJhdGVdLiAqKVxuXG5sZXQgcmVjIGl0ZXJhdGUxIGYgeCAoKSA9XG4gIGxldCB5ID0gZiB4IGluXG4gIENvbnMgKHksIGl0ZXJhdGUxIGYgeSlcblxuKCogW2l0ZXJhdGUgZiB4XSBpcyB0aGUgc2VxdWVuY2UgW3gsIGYgeCwgLi4uXS4gKilcblxuKCogVGhlIHJlYXNvbiB3aHkgd2UgZ2l2ZSB0aGlzIHNsaWdodGx5IGluZGlyZWN0IGRlZmluaXRpb24gb2YgW2l0ZXJhdGVdLFxuICAgYXMgb3Bwb3NlZCB0byB0aGUgbW9yZSBuYWl2ZSBkZWZpbml0aW9uIHRoYXQgbWF5IGNvbWUgdG8gbWluZCwgaXMgdGhhdFxuICAgd2UgYXJlIGNhcmVmdWwgdG8gYXZvaWQgZXZhbHVhdGluZyBbZiB4XSB1bnRpbCB0aGlzIGZ1bmN0aW9uIGNhbGwgaXNcbiAgIGFjdHVhbGx5IG5lY2Vzc2FyeS4gVGhlIG5haXZlIGRlZmluaXRpb24gKG5vdCBzaG93biBoZXJlKSBjb21wdXRlcyB0aGVcbiAgIHNlY29uZCBhcmd1bWVudCBvZiB0aGUgc2VxdWVuY2UsIFtmIHhdLCB3aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBpc1xuICAgcmVxdWVzdGVkIGJ5IHRoZSB1c2VyLiAqKVxuXG5sZXQgaXRlcmF0ZSBmIHggPVxuICBjb25zIHggKGl0ZXJhdGUxIGYgeClcblxuXG5cbmxldCByZWMgbWFwaV9hdXggZiBpIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIENvbnMgKGYgaSB4LCBtYXBpX2F1eCBmIChpKzEpIHhzKVxuXG5sZXRbQGlubGluZV0gbWFwaSBmIHhzID1cbiAgbWFwaV9hdXggZiAwIHhzXG5cbigqIFt0YWlsX3NjYW4gZiBzIHhzXSBpcyBlcXVpdmFsZW50IHRvIFt0YWlsIChzY2FuIGYgcyB4cyldLlxuICAgW3RhaWxfc2Nhbl0gaXMgdXNlZCBhcyBhIGJ1aWxkaW5nIGJsb2NrIGluIHRoZSBkZWZpbml0aW9uIG9mIFtzY2FuXS4gKilcblxuKCogVGhpcyBzbGlnaHRseSBpbmRpcmVjdCBkZWZpbml0aW9uIG9mIFtzY2FuXSBpcyBtZWFudCB0byBhdm9pZCBjb21wdXRpbmdcbiAgIGVsZW1lbnRzIHRvbyBlYXJseTsgc2VlIHRoZSBhYm92ZSBjb21tZW50IGFib3V0IFtpdGVyYXRlMV0gYW5kIFtpdGVyYXRlXS4gKilcblxubGV0IHJlYyB0YWlsX3NjYW4gZiBzIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIGxldCBzID0gZiBzIHggaW5cbiAgICAgIENvbnMgKHMsIHRhaWxfc2NhbiBmIHMgeHMpXG5cbmxldCBzY2FuIGYgcyB4cyA9XG4gIGNvbnMgcyAodGFpbF9zY2FuIGYgcyB4cylcblxuKCogW3Rha2VdIGlzIGRlZmluZWQgaW4gc3VjaCBhIHdheSB0aGF0IFt0YWtlIDAgeHNdIHJldHVybnMgW2VtcHR5XVxuICAgaW1tZWRpYXRlbHksIHdpdGhvdXQgYWxsb2NhdGluZyBhbnkgbWVtb3J5LiAqKVxuXG5sZXQgcmVjIHRha2VfYXV4IG4geHMgPVxuICBpZiBuID0gMCB0aGVuXG4gICAgZW1wdHlcbiAgZWxzZVxuICAgIGZ1biAoKSAtPlxuICAgICAgbWF0Y2ggeHMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIE5pbFxuICAgICAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgICAgICBDb25zICh4LCB0YWtlX2F1eCAobi0xKSB4cylcblxubGV0IHRha2UgbiB4cyA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJTZXEudGFrZVwiO1xuICB0YWtlX2F1eCBuIHhzXG5cbigqIFtmb3JjZV9kcm9wIG4geHNdIGlzIGVxdWl2YWxlbnQgdG8gW2Ryb3AgbiB4cyAoKV0uXG4gICBbZm9yY2VfZHJvcCBuIHhzXSByZXF1aXJlcyBbbiA+IDBdLlxuICAgW2ZvcmNlX2Ryb3BdIGlzIHVzZWQgYXMgYSBidWlsZGluZyBibG9jayBpbiB0aGUgZGVmaW5pdGlvbiBvZiBbZHJvcF0uICopXG5cbmxldCByZWMgZm9yY2VfZHJvcCBuIHhzID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zIChfLCB4cykgLT5cbiAgICAgIGxldCBuID0gbiAtIDEgaW5cbiAgICAgIGlmIG4gPSAwIHRoZW5cbiAgICAgICAgeHMoKVxuICAgICAgZWxzZVxuICAgICAgICBmb3JjZV9kcm9wIG4geHNcblxuKCogW2Ryb3BdIGlzIGRlZmluZWQgaW4gc3VjaCBhIHdheSB0aGF0IFtkcm9wIDAgeHNdIHJldHVybnMgW3hzXSBpbW1lZGlhdGVseSxcbiAgIHdpdGhvdXQgYWxsb2NhdGluZyBhbnkgbWVtb3J5LiAqKVxuXG5sZXQgZHJvcCBuIHhzID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIlNlcS5kcm9wXCJcbiAgZWxzZSBpZiBuID0gMCB0aGVuXG4gICAgeHNcbiAgZWxzZVxuICAgIGZ1biAoKSAtPlxuICAgICAgZm9yY2VfZHJvcCBuIHhzXG5cbmxldCByZWMgdGFrZV93aGlsZSBwIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIGlmIHAgeCB0aGVuIENvbnMgKHgsIHRha2Vfd2hpbGUgcCB4cykgZWxzZSBOaWxcblxubGV0IHJlYyBkcm9wX3doaWxlIHAgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSBhcyBub2RlIC0+XG4gICAgICBpZiBwIHggdGhlbiBkcm9wX3doaWxlIHAgeHMgKCkgZWxzZSBub2RlXG5cbmxldCByZWMgZ3JvdXAgZXEgeHMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgQ29ucyAoY29ucyB4ICh0YWtlX3doaWxlIChlcSB4KSB4cyksIGdyb3VwIGVxIChkcm9wX3doaWxlIChlcSB4KSB4cykpXG5cbmV4Y2VwdGlvbiBGb3JjZWRfdHdpY2VcblxubW9kdWxlIFN1c3BlbnNpb24gPSBzdHJ1Y3RcblxuICB0eXBlICdhIHN1c3BlbnNpb24gPVxuICAgIHVuaXQgLT4gJ2FcblxuICAoKiBDb252ZXJzaW9ucy4gKilcblxuICBsZXQgdG9fbGF6eSA6ICdhIHN1c3BlbnNpb24gLT4gJ2EgTGF6eS50ID1cbiAgICBMYXp5LmZyb21fZnVuXG4gICAgKCogZnVuIHMgLT4gbGF6eSAocygpKSAqKVxuXG4gIGxldCBmcm9tX2xhenkgKHMgOiAnYSBMYXp5LnQpIDogJ2Egc3VzcGVuc2lvbiA9XG4gICAgZnVuICgpIC0+IExhenkuZm9yY2Ugc1xuXG4gICgqIFttZW1vaXplXSB0dXJucyBhbiBhcmJpdHJhcnkgc3VzcGVuc2lvbiBpbnRvIGEgcGVyc2lzdGVudCBzdXNwZW5zaW9uLiAqKVxuXG4gIGxldCBtZW1vaXplIChzIDogJ2Egc3VzcGVuc2lvbikgOiAnYSBzdXNwZW5zaW9uID1cbiAgICBmcm9tX2xhenkgKHRvX2xhenkgcylcblxuICAoKiBbZmFpbHVyZV0gaXMgYSBzdXNwZW5zaW9uIHRoYXQgZmFpbHMgd2hlbiBmb3JjZWQuICopXG5cbiAgbGV0IGZhaWx1cmUgOiBfIHN1c3BlbnNpb24gPVxuICAgIGZ1biAoKSAtPlxuICAgICAgKCogQSBzdXNwZW5zaW9uIGNyZWF0ZWQgYnkgW29uY2VdIGhhcyBiZWVuIGZvcmNlZCB0d2ljZS4gKilcbiAgICAgIHJhaXNlIEZvcmNlZF90d2ljZVxuXG4gICgqIElmIFtmXSBpcyBhIHN1c3BlbnNpb24sIHRoZW4gW29uY2UgZl0gaXMgYSBzdXNwZW5zaW9uIHRoYXQgY2FuIGJlIGZvcmNlZFxuICAgICBhdCBtb3N0IG9uY2UuIElmIGl0IGlzIGZvcmNlZCBtb3JlIHRoYW4gb25jZSwgdGhlbiBbRm9yY2VkX3R3aWNlXSBpc1xuICAgICByYWlzZWQuICopXG5cbiAgbGV0IG9uY2UgKGYgOiAnYSBzdXNwZW5zaW9uKSA6ICdhIHN1c3BlbnNpb24gPVxuICAgIGxldCBhY3Rpb24gPSBDYW1saW50ZXJuYWxBdG9taWMubWFrZSBmIGluXG4gICAgZnVuICgpIC0+XG4gICAgICAoKiBHZXQgdGhlIGZ1bmN0aW9uIGN1cnJlbnRseSBzdG9yZWQgaW4gW2FjdGlvbl0sIGFuZCB3cml0ZSB0aGVcbiAgICAgICAgIGZ1bmN0aW9uIFtmYWlsdXJlXSBpbiBpdHMgcGxhY2UsIHNvIHRoZSBuZXh0IGFjY2VzcyB3aWxsIHJlc3VsdFxuICAgICAgICAgaW4gYSBjYWxsIHRvIFtmYWlsdXJlKCldLiAqKVxuICAgICAgbGV0IGYgPSBDYW1saW50ZXJuYWxBdG9taWMuZXhjaGFuZ2UgYWN0aW9uIGZhaWx1cmUgaW5cbiAgICAgIGYoKVxuXG5lbmQgKCogU3VzcGVuc2lvbiAqKVxuXG5sZXQgcmVjIG1lbW9pemUgeHMgPVxuICBTdXNwZW5zaW9uLm1lbW9pemUgKGZ1biAoKSAtPlxuICAgIG1hdGNoIHhzKCkgd2l0aFxuICAgIHwgTmlsIC0+XG4gICAgICAgIE5pbFxuICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgIENvbnMgKHgsIG1lbW9pemUgeHMpXG4gIClcblxubGV0IHJlYyBvbmNlIHhzID1cbiAgU3VzcGVuc2lvbi5vbmNlIChmdW4gKCkgLT5cbiAgICBtYXRjaCB4cygpIHdpdGhcbiAgICB8IE5pbCAtPlxuICAgICAgICBOaWxcbiAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICBDb25zICh4LCBvbmNlIHhzKVxuICApXG5cblxubGV0IHJlYyB6aXAgeHMgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIE5pbFxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBDb25zICgoeCwgeSksIHppcCB4cyB5cylcblxubGV0IHJlYyBtYXAyIGYgeHMgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgbWF0Y2ggeXMoKSB3aXRoXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgIE5pbFxuICAgICAgfCBDb25zICh5LCB5cykgLT5cbiAgICAgICAgICBDb25zIChmIHggeSwgbWFwMiBmIHhzIHlzKVxuXG5sZXQgcmVjIGludGVybGVhdmUgeHMgeXMgKCkgPVxuICBtYXRjaCB4cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIHlzKClcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIENvbnMgKHgsIGludGVybGVhdmUgeXMgeHMpXG5cbigqIFtzb3J0ZWRfbWVyZ2UxbCBjbXAgeCB4cyB5c10gaXMgZXF1aXZhbGVudCB0b1xuICAgICBbc29ydGVkX21lcmdlIGNtcCAoY29ucyB4IHhzKSB5c10uXG5cbiAgIFtzb3J0ZWRfbWVyZ2UxciBjbXAgeHMgeSB5c10gaXMgZXF1aXZhbGVudCB0b1xuICAgICBbc29ydGVkX21lcmdlIGNtcCB4cyAoY29ucyB5IHlzKV0uXG5cbiAgIFtzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXNdIGlzIGVxdWl2YWxlbnQgdG9cbiAgICAgW3NvcnRlZF9tZXJnZSBjbXAgKGNvbnMgeCB4cykgKGNvbnMgeSB5cyldLlxuXG4gICBUaGVzZSB0aHJlZSBmdW5jdGlvbnMgYXJlIHVzZWQgYXMgYnVpbGRpbmcgYmxvY2tzIGluIHRoZSBkZWZpbml0aW9uXG4gICBvZiBbc29ydGVkX21lcmdlXS4gKilcblxubGV0IHJlYyBzb3J0ZWRfbWVyZ2UxbCBjbXAgeCB4cyB5cyAoKSA9XG4gIG1hdGNoIHlzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgQ29ucyAoeCwgeHMpXG4gIHwgQ29ucyAoeSwgeXMpIC0+XG4gICAgICBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXNcblxuYW5kIHNvcnRlZF9tZXJnZTFyIGNtcCB4cyB5IHlzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBDb25zICh5LCB5cylcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIHNvcnRlZF9tZXJnZTEgY21wIHggeHMgeSB5c1xuXG5hbmQgc29ydGVkX21lcmdlMSBjbXAgeCB4cyB5IHlzID1cbiAgaWYgY21wIHggeSA8PSAwIHRoZW5cbiAgICBDb25zICh4LCBzb3J0ZWRfbWVyZ2UxciBjbXAgeHMgeSB5cylcbiAgZWxzZVxuICAgIENvbnMgKHksIHNvcnRlZF9tZXJnZTFsIGNtcCB4IHhzIHlzKVxuXG5sZXQgc29ydGVkX21lcmdlIGNtcCB4cyB5cyAoKSA9XG4gIG1hdGNoIHhzKCksIHlzKCkgd2l0aFxuICAgIHwgTmlsLCBOaWwgLT5cbiAgICAgICAgTmlsXG4gICAgfCBOaWwsIGNcbiAgICB8IGMsIE5pbCAtPlxuICAgICAgICBjXG4gICAgfCBDb25zICh4LCB4cyksIENvbnMgKHksIHlzKSAtPlxuICAgICAgICBzb3J0ZWRfbWVyZ2UxIGNtcCB4IHhzIHkgeXNcblxuXG5sZXQgcmVjIG1hcF9mc3QgeHlzICgpID1cbiAgbWF0Y2ggeHlzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoKHgsIF8pLCB4eXMpIC0+XG4gICAgICBDb25zICh4LCBtYXBfZnN0IHh5cylcblxubGV0IHJlYyBtYXBfc25kIHh5cyAoKSA9XG4gIG1hdGNoIHh5cygpIHdpdGhcbiAgfCBOaWwgLT5cbiAgICAgIE5pbFxuICB8IENvbnMgKChfLCB5KSwgeHlzKSAtPlxuICAgICAgQ29ucyAoeSwgbWFwX3NuZCB4eXMpXG5cbmxldCB1bnppcCB4eXMgPVxuICBtYXBfZnN0IHh5cywgbWFwX3NuZCB4eXNcblxubGV0IHNwbGl0ID1cbiAgdW56aXBcblxuKCogW2ZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzXSBpcyBlcXVpdmFsZW50IHRvXG4gICBbZmlsdGVyX21hcCBFaXRoZXIuZmluZF9sZWZ0IChtYXAgZiB4cyldLiAqKVxuXG5sZXQgcmVjIGZpbHRlcl9tYXBfZmluZF9sZWZ0X21hcCBmIHhzICgpID1cbiAgbWF0Y2ggeHMoKSB3aXRoXG4gIHwgTmlsIC0+XG4gICAgICBOaWxcbiAgfCBDb25zICh4LCB4cykgLT5cbiAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICB8IEVpdGhlci5MZWZ0IHkgLT5cbiAgICAgICAgICBDb25zICh5LCBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cylcbiAgICAgIHwgRWl0aGVyLlJpZ2h0IF8gLT5cbiAgICAgICAgICBmaWx0ZXJfbWFwX2ZpbmRfbGVmdF9tYXAgZiB4cyAoKVxuXG5sZXQgcmVjIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4cyAoKSA9XG4gIG1hdGNoIHhzKCkgd2l0aFxuICB8IE5pbCAtPlxuICAgICAgTmlsXG4gIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgfCBFaXRoZXIuTGVmdCBfIC0+XG4gICAgICAgICAgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzICgpXG4gICAgICB8IEVpdGhlci5SaWdodCB6IC0+XG4gICAgICAgICAgQ29ucyAoeiwgZmlsdGVyX21hcF9maW5kX3JpZ2h0X21hcCBmIHhzKVxuXG5sZXQgcGFydGl0aW9uX21hcCBmIHhzID1cbiAgZmlsdGVyX21hcF9maW5kX2xlZnRfbWFwIGYgeHMsXG4gIGZpbHRlcl9tYXBfZmluZF9yaWdodF9tYXAgZiB4c1xuXG5sZXQgcGFydGl0aW9uIHAgeHMgPVxuICBmaWx0ZXIgcCB4cywgZmlsdGVyIChmdW4geCAtPiBub3QgKHAgeCkpIHhzXG5cbigqIElmIFt4c3NdIGlzIGEgbWF0cml4IChhIHNlcXVlbmNlIG9mIHJvd3MpLCB0aGVuIFtwZWVsIHhzc10gaXMgYSBwYWlyIG9mXG4gICB0aGUgZmlyc3QgY29sdW1uIChhIHNlcXVlbmNlIG9mIGVsZW1lbnRzKSBhbmQgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGVcbiAgIG1hdHJpeCAoYSBzZXF1ZW5jZSBvZiBzaG9ydGVyIHJvd3MpLiBUaGVzZSB0d28gc2VxdWVuY2VzIGhhdmUgdGhlIHNhbWVcbiAgIGxlbmd0aC4gVGhlIHJvd3Mgb2YgdGhlIG1hdHJpeCBbeHNzXSBhcmUgbm90IHJlcXVpcmVkIHRvIGhhdmUgdGhlIHNhbWVcbiAgIGxlbmd0aC4gQW4gZW1wdHkgcm93IGlzIGlnbm9yZWQuICopXG5cbigqIEJlY2F1c2UgW3BlZWxdIHVzZXMgW3VuemlwXSwgaXRzIGFyZ3VtZW50IG11c3QgYmUgcGVyc2lzdGVudC4gVGhlIHNhbWVcbiAgIHJlbWFyayBhcHBsaWVzIHRvIFt0cmFuc3Bvc2VdLCBbZGlhZ29uYWxzXSwgW3Byb2R1Y3RdLCBldGMuICopXG5cbmxldCBwZWVsIHhzcyA9XG4gIHVuemlwIChmaWx0ZXJfbWFwIHVuY29ucyB4c3MpXG5cbmxldCByZWMgdHJhbnNwb3NlIHhzcyAoKSA9XG4gIGxldCBoZWFkcywgdGFpbHMgPSBwZWVsIHhzcyBpblxuICBpZiBpc19lbXB0eSBoZWFkcyB0aGVuIGJlZ2luXG4gICAgYXNzZXJ0IChpc19lbXB0eSB0YWlscyk7XG4gICAgTmlsXG4gIGVuZFxuICBlbHNlXG4gICAgQ29ucyAoaGVhZHMsIHRyYW5zcG9zZSB0YWlscylcblxuKCogVGhlIGludGVybmFsIGZ1bmN0aW9uIFtkaWFnb25hbHNdIHRha2VzIGFuIGV4dHJhIGFyZ3VtZW50LCBbcmVtYWluZGVyc10sXG4gICB3aGljaCBjb250YWlucyB0aGUgcmVtYWluZGVycyBvZiB0aGUgcm93cyB0aGF0IGhhdmUgYWxyZWFkeSBiZWVuXG4gICBkaXNjb3ZlcmVkLiAqKVxuXG5sZXQgcmVjIGRpYWdvbmFscyByZW1haW5kZXJzIHhzcyAoKSA9XG4gIG1hdGNoIHhzcygpIHdpdGhcbiAgfCBDb25zICh4cywgeHNzKSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggeHMoKSB3aXRoXG4gICAgICB8IENvbnMgKHgsIHhzKSAtPlxuICAgICAgICAgICgqIFdlIGRpc2NvdmVyIGEgbmV3IG5vbmVtcHR5IHJvdyBbeCA6OiB4c10uIFRodXMsIHRoZSBuZXh0IGRpYWdvbmFsXG4gICAgICAgICAgICAgaXMgW3ggOjogaGVhZHNdOiB0aGlzIGRpYWdvbmFsIGJlZ2lucyB3aXRoIFt4XSBhbmQgY29udGludWVzIHdpdGhcbiAgICAgICAgICAgICB0aGUgZmlyc3QgZWxlbWVudCBvZiBldmVyeSByb3cgaW4gW3JlbWFpbmRlcnNdLiBJbiB0aGUgcmVjdXJzaXZlXG4gICAgICAgICAgICAgY2FsbCwgdGhlIGFyZ3VtZW50IFtyZW1haW5kZXJzXSBpcyBpbnN0YW50aWF0ZWQgd2l0aCBbeHMgOjpcbiAgICAgICAgICAgICB0YWlsc10sIHdoaWNoIG1lYW5zIHRoYXQgd2UgaGF2ZSBvbmUgbW9yZSByZW1haW5pbmcgcm93LCBbeHNdLFxuICAgICAgICAgICAgIGFuZCB0aGF0IHdlIGtlZXAgdGhlIHRhaWxzIG9mIHRoZSBwcmUtZXhpc3RpbmcgcmVtYWluaW5nIHJvd3MuICopXG4gICAgICAgICAgbGV0IGhlYWRzLCB0YWlscyA9IHBlZWwgcmVtYWluZGVycyBpblxuICAgICAgICAgIENvbnMgKGNvbnMgeCBoZWFkcywgZGlhZ29uYWxzIChjb25zIHhzIHRhaWxzKSB4c3MpXG4gICAgICB8IE5pbCAtPlxuICAgICAgICAgICgqIFdlIGRpc2NvdmVyIGEgbmV3IGVtcHR5IHJvdy4gSW4gdGhpcyBjYXNlLCB0aGUgbmV3IGRpYWdvbmFsIGlzXG4gICAgICAgICAgICAganVzdCBbaGVhZHNdLCBhbmQgW3JlbWFpbmRlcnNdIGlzIGluc3RhbnRpYXRlZCB3aXRoIGp1c3QgW3RhaWxzXSxcbiAgICAgICAgICAgICBhcyB3ZSBkbyBub3QgaGF2ZSBvbmUgbW9yZSByZW1haW5pbmcgcm93LiAqKVxuICAgICAgICAgIGxldCBoZWFkcywgdGFpbHMgPSBwZWVsIHJlbWFpbmRlcnMgaW5cbiAgICAgICAgICBDb25zIChoZWFkcywgZGlhZ29uYWxzIHRhaWxzIHhzcylcbiAgICAgIGVuZFxuICB8IE5pbCAtPlxuICAgICAgKCogVGhlcmUgYXJlIG5vIG1vcmUgcm93cyB0byBiZSBkaXNjb3ZlcmVkLiBUaGVyZSByZW1haW5zIHRvIGV4aGF1c3RcbiAgICAgICAgIHRoZSByZW1haW5pbmcgcm93cy4gKilcbiAgICAgIHRyYW5zcG9zZSByZW1haW5kZXJzICgpXG5cbigqIElmIFt4c3NdIGlzIGEgbWF0cml4IChhIHNlcXVlbmNlIG9mIHJvd3MpLCB0aGVuIFtkaWFnb25hbHMgeHNzXSBpc1xuICAgdGhlIHNlcXVlbmNlIG9mIGl0cyBkaWFnb25hbHMuXG5cbiAgIFRoZSBmaXJzdCBkaWFnb25hbCBjb250YWlucyBqdXN0IHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZVxuICAgZmlyc3Qgcm93LiBUaGUgc2Vjb25kIGRpYWdvbmFsIGNvbnRhaW5zIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZVxuICAgc2Vjb25kIHJvdyBhbmQgdGhlIHNlY29uZCBlbGVtZW50IG9mIHRoZSBmaXJzdCByb3c7IGFuZCBzbyBvbi5cbiAgIFRoaXMga2luZCBvZiBkaWFnb25hbCBpcyBpbiBmYWN0IHNvbWV0aW1lcyBrbm93biBhcyBhbiBhbnRpZGlhZ29uYWwuXG5cbiAgIC0gRXZlcnkgZGlhZ29uYWwgaXMgYSBmaW5pdGUgc2VxdWVuY2UuXG4gICAtIFRoZSByb3dzIG9mIHRoZSBtYXRyaXggW3hzc10gYXJlIG5vdCByZXF1aXJlZCB0byBoYXZlIHRoZSBzYW1lIGxlbmd0aC5cbiAgIC0gVGhlIG1hdHJpeCBbeHNzXSBpcyBub3QgcmVxdWlyZWQgdG8gYmUgZmluaXRlIChpbiBlaXRoZXIgZGlyZWN0aW9uKS5cbiAgIC0gVGhlIG1hdHJpeCBbeHNzXSBtdXN0IGJlIHBlcnNpc3RlbnQuICopXG5cbmxldCBkaWFnb25hbHMgeHNzID1cbiAgZGlhZ29uYWxzIGVtcHR5IHhzc1xuXG5sZXQgbWFwX3Byb2R1Y3QgZiB4cyB5cyA9XG4gIGNvbmNhdCAoZGlhZ29uYWxzIChcbiAgICBtYXAgKGZ1biB4IC0+XG4gICAgICBtYXAgKGZ1biB5IC0+XG4gICAgICAgIGYgeCB5XG4gICAgICApIHlzXG4gICAgKSB4c1xuICApKVxuXG5sZXQgcHJvZHVjdCB4cyB5cyA9XG4gIG1hcF9wcm9kdWN0IChmdW4geCB5IC0+ICh4LCB5KSkgeHMgeXNcblxubGV0IG9mX2Rpc3BlbnNlciBpdCA9XG4gIGxldCByZWMgYyAoKSA9XG4gICAgbWF0Y2ggaXQoKSB3aXRoXG4gICAgfCBOb25lIC0+XG4gICAgICAgIE5pbFxuICAgIHwgU29tZSB4IC0+XG4gICAgICAgIENvbnMgKHgsIGMpXG4gIGluXG4gIGNcblxubGV0IHRvX2Rpc3BlbnNlciB4cyA9XG4gIGxldCBzID0gcmVmIHhzIGluXG4gIGZ1biAoKSAtPlxuICAgIG1hdGNoICghcykoKSB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgICAgTm9uZVxuICAgIHwgQ29ucyAoeCwgeHMpIC0+XG4gICAgICAgIHMgOj0geHM7XG4gICAgICAgIFNvbWUgeFxuXG5cblxubGV0IHJlYyBpbnRzIGkgKCkgPVxuICBDb25zIChpLCBpbnRzIChpICsgMSkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9ICdhIG9wdGlvbiA9IE5vbmUgfCBTb21lIG9mICdhXG5cbmxldCBub25lID0gTm9uZVxubGV0IHNvbWUgdiA9IFNvbWUgdlxubGV0IHZhbHVlIG8gfmRlZmF1bHQgPSBtYXRjaCBvIHdpdGggU29tZSB2IC0+IHYgfCBOb25lIC0+IGRlZmF1bHRcbmxldCBnZXQgPSBmdW5jdGlvbiBTb21lIHYgLT4gdiB8IE5vbmUgLT4gaW52YWxpZF9hcmcgXCJvcHRpb24gaXMgTm9uZVwiXG5sZXQgYmluZCBvIGYgPSBtYXRjaCBvIHdpdGggTm9uZSAtPiBOb25lIHwgU29tZSB2IC0+IGYgdlxubGV0IGpvaW4gPSBmdW5jdGlvbiBTb21lIG8gLT4gbyB8IE5vbmUgLT4gTm9uZVxubGV0IG1hcCBmIG8gPSBtYXRjaCBvIHdpdGggTm9uZSAtPiBOb25lIHwgU29tZSB2IC0+IFNvbWUgKGYgdilcbmxldCBmb2xkIH5ub25lIH5zb21lID0gZnVuY3Rpb24gU29tZSB2IC0+IHNvbWUgdiB8IE5vbmUgLT4gbm9uZVxubGV0IGl0ZXIgZiA9IGZ1bmN0aW9uIFNvbWUgdiAtPiBmIHYgfCBOb25lIC0+ICgpXG5sZXQgaXNfbm9uZSA9IGZ1bmN0aW9uIE5vbmUgLT4gdHJ1ZSB8IFNvbWUgXyAtPiBmYWxzZVxubGV0IGlzX3NvbWUgPSBmdW5jdGlvbiBOb25lIC0+IGZhbHNlIHwgU29tZSBfIC0+IHRydWVcblxubGV0IGVxdWFsIGVxIG8wIG8xID0gbWF0Y2ggbzAsIG8xIHdpdGhcbnwgU29tZSB2MCwgU29tZSB2MSAtPiBlcSB2MCB2MVxufCBOb25lLCBOb25lIC0+IHRydWVcbnwgXyAtPiBmYWxzZVxuXG5sZXQgY29tcGFyZSBjbXAgbzAgbzEgPSBtYXRjaCBvMCwgbzEgd2l0aFxufCBTb21lIHYwLCBTb21lIHYxIC0+IGNtcCB2MCB2MVxufCBOb25lLCBOb25lIC0+IDBcbnwgTm9uZSwgU29tZSBfIC0+IC0xXG58IFNvbWUgXywgTm9uZSAtPiAxXG5cbmxldCB0b19yZXN1bHQgfm5vbmUgPSBmdW5jdGlvbiBOb25lIC0+IEVycm9yIG5vbmUgfCBTb21lIHYgLT4gT2sgdlxubGV0IHRvX2xpc3QgPSBmdW5jdGlvbiBOb25lIC0+IFtdIHwgU29tZSB2IC0+IFt2XVxubGV0IHRvX3NlcSA9IGZ1bmN0aW9uIE5vbmUgLT4gU2VxLmVtcHR5IHwgU29tZSB2IC0+IFNlcS5yZXR1cm4gdlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICgnYSwgJ2UpIHQgPSAoJ2EsICdlKSByZXN1bHQgPSBPayBvZiAnYSB8IEVycm9yIG9mICdlXG5cbmxldCBvayB2ID0gT2sgdlxubGV0IGVycm9yIGUgPSBFcnJvciBlXG5sZXQgdmFsdWUgciB+ZGVmYXVsdCA9IG1hdGNoIHIgd2l0aCBPayB2IC0+IHYgfCBFcnJvciBfIC0+IGRlZmF1bHRcbmxldCBnZXRfb2sgPSBmdW5jdGlvbiBPayB2IC0+IHYgfCBFcnJvciBfIC0+IGludmFsaWRfYXJnIFwicmVzdWx0IGlzIEVycm9yIF9cIlxubGV0IGdldF9lcnJvciA9IGZ1bmN0aW9uIEVycm9yIGUgLT4gZSB8IE9rIF8gLT4gaW52YWxpZF9hcmcgXCJyZXN1bHQgaXMgT2sgX1wiXG5sZXQgYmluZCByIGYgPSBtYXRjaCByIHdpdGggT2sgdiAtPiBmIHYgfCBFcnJvciBfIGFzIGUgLT4gZVxubGV0IGpvaW4gPSBmdW5jdGlvbiBPayByIC0+IHIgfCBFcnJvciBfIGFzIGUgLT4gZVxubGV0IG1hcCBmID0gZnVuY3Rpb24gT2sgdiAtPiBPayAoZiB2KSB8IEVycm9yIF8gYXMgZSAtPiBlXG5sZXQgbWFwX2Vycm9yIGYgPSBmdW5jdGlvbiBFcnJvciBlIC0+IEVycm9yIChmIGUpIHwgT2sgXyBhcyB2IC0+IHZcbmxldCBmb2xkIH5vayB+ZXJyb3IgPSBmdW5jdGlvbiBPayB2IC0+IG9rIHYgfCBFcnJvciBlIC0+IGVycm9yIGVcbmxldCBpdGVyIGYgPSBmdW5jdGlvbiBPayB2IC0+IGYgdiB8IEVycm9yIF8gLT4gKClcbmxldCBpdGVyX2Vycm9yIGYgPSBmdW5jdGlvbiBFcnJvciBlIC0+IGYgZSB8IE9rIF8gLT4gKClcbmxldCBpc19vayA9IGZ1bmN0aW9uIE9rIF8gLT4gdHJ1ZSB8IEVycm9yIF8gLT4gZmFsc2VcbmxldCBpc19lcnJvciA9IGZ1bmN0aW9uIEVycm9yIF8gLT4gdHJ1ZSB8IE9rIF8gLT4gZmFsc2VcblxubGV0IGVxdWFsIH5vayB+ZXJyb3IgcjAgcjEgPSBtYXRjaCByMCwgcjEgd2l0aFxufCBPayB2MCwgT2sgdjEgLT4gb2sgdjAgdjFcbnwgRXJyb3IgZTAsIEVycm9yIGUxIC0+IGVycm9yIGUwIGUxXG58IF8sIF8gLT4gZmFsc2VcblxubGV0IGNvbXBhcmUgfm9rIH5lcnJvciByMCByMSA9IG1hdGNoIHIwLCByMSB3aXRoXG58IE9rIHYwLCBPayB2MSAtPiBvayB2MCB2MVxufCBFcnJvciBlMCwgRXJyb3IgZTEgLT4gZXJyb3IgZTAgZTFcbnwgT2sgXywgRXJyb3IgXyAtPiAtMVxufCBFcnJvciBfLCBPayBfIC0+IDFcblxubGV0IHRvX29wdGlvbiA9IGZ1bmN0aW9uIE9rIHYgLT4gU29tZSB2IHwgRXJyb3IgXyAtPiBOb25lXG5sZXQgdG9fbGlzdCA9IGZ1bmN0aW9uIE9rIHYgLT4gW3ZdIHwgRXJyb3IgXyAtPiBbXVxubGV0IHRvX3NlcSA9IGZ1bmN0aW9uIE9rIHYgLT4gU2VxLnJldHVybiB2IHwgRXJyb3IgXyAtPiBTZXEuZW1wdHlcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBPQ2FtbCBwcm9ncmFtbWVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTggSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gYm9vbCA9IGZhbHNlIHwgdHJ1ZVxuXG5leHRlcm5hbCBub3QgOiBib29sIC0+IGJvb2wgPSBcIiVib29sbm90XCJcbmV4dGVybmFsICggJiYgKSA6IGJvb2wgLT4gYm9vbCAtPiBib29sID0gXCIlc2VxdWFuZFwiXG5leHRlcm5hbCAoIHx8ICkgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9IFwiJXNlcXVvclwiXG5sZXQgZXF1YWwgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9ICggPSApXG5sZXQgY29tcGFyZSA6IGJvb2wgLT4gYm9vbCAtPiBpbnQgPSBTdGRsaWIuY29tcGFyZVxuZXh0ZXJuYWwgdG9faW50IDogYm9vbCAtPiBpbnQgPSBcIiVpZGVudGl0eVwiXG5sZXQgdG9fZmxvYXQgPSBmdW5jdGlvbiBmYWxzZSAtPiAwLiB8IHRydWUgLT4gMS5cblxuKCpcbmxldCBvZl9zdHJpbmcgPSBmdW5jdGlvblxufCBcImZhbHNlXCIgLT4gU29tZSBmYWxzZVxufCBcInRydWVcIiAtPiBTb21lIHRydWVcbnwgXyAtPiBOb25lXG4qKVxuXG5sZXQgdG9fc3RyaW5nID0gZnVuY3Rpb24gZmFsc2UgLT4gXCJmYWxzZVwiIHwgdHJ1ZSAtPiBcInRydWVcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBDaGFyYWN0ZXIgb3BlcmF0aW9ucyAqKVxuXG5leHRlcm5hbCBjb2RlOiBjaGFyIC0+IGludCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHVuc2FmZV9jaHI6IGludCAtPiBjaGFyID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgY2hyIG4gPVxuICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW4gaW52YWxpZF9hcmcgXCJDaGFyLmNoclwiIGVsc2UgdW5zYWZlX2NociBuXG5cbmV4dGVybmFsIGJ5dGVzX2NyZWF0ZTogaW50IC0+IGJ5dGVzID0gXCJjYW1sX2NyZWF0ZV9ieXRlc1wiXG5leHRlcm5hbCBieXRlc191bnNhZmVfc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV90b19zdHJpbmcgOiBieXRlcyAtPiBzdHJpbmcgPSBcIiVieXRlc190b19zdHJpbmdcIlxuXG5sZXQgZXNjYXBlZCA9IGZ1bmN0aW9uXG4gIHwgJ1xcJycgLT4gXCJcXFxcJ1wiXG4gIHwgJ1xcXFwnIC0+IFwiXFxcXFxcXFxcIlxuICB8ICdcXG4nIC0+IFwiXFxcXG5cIlxuICB8ICdcXHQnIC0+IFwiXFxcXHRcIlxuICB8ICdcXHInIC0+IFwiXFxcXHJcIlxuICB8ICdcXGInIC0+IFwiXFxcXGJcIlxuICB8ICcgJyAuLiAnficgYXMgYyAtPlxuICAgICAgbGV0IHMgPSBieXRlc19jcmVhdGUgMSBpblxuICAgICAgYnl0ZXNfdW5zYWZlX3NldCBzIDAgYztcbiAgICAgIHVuc2FmZV90b19zdHJpbmcgc1xuICB8IGMgLT5cbiAgICAgIGxldCBuID0gY29kZSBjIGluXG4gICAgICBsZXQgcyA9IGJ5dGVzX2NyZWF0ZSA0IGluXG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMCAnXFxcXCc7XG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMSAodW5zYWZlX2NociAoNDggKyBuIC8gMTAwKSk7XG4gICAgICBieXRlc191bnNhZmVfc2V0IHMgMiAodW5zYWZlX2NociAoNDggKyAobiAvIDEwKSBtb2QgMTApKTtcbiAgICAgIGJ5dGVzX3Vuc2FmZV9zZXQgcyAzICh1bnNhZmVfY2hyICg0OCArIG4gbW9kIDEwKSk7XG4gICAgICB1bnNhZmVfdG9fc3RyaW5nIHNcblxubGV0IGxvd2VyY2FzZSA9IGZ1bmN0aW9uXG4gIHwgJ0EnIC4uICdaJ1xuICB8ICdcXDE5MicgLi4gJ1xcMjE0J1xuICB8ICdcXDIxNicgLi4gJ1xcMjIyJyBhcyBjIC0+XG4gICAgdW5zYWZlX2Nocihjb2RlIGMgKyAzMilcbiAgfCBjIC0+IGNcblxubGV0IHVwcGVyY2FzZSA9IGZ1bmN0aW9uXG4gIHwgJ2EnIC4uICd6J1xuICB8ICdcXDIyNCcgLi4gJ1xcMjQ2J1xuICB8ICdcXDI0OCcgLi4gJ1xcMjU0JyBhcyBjIC0+XG4gICAgdW5zYWZlX2Nocihjb2RlIGMgLSAzMilcbiAgfCBjIC0+IGNcblxubGV0IGxvd2VyY2FzZV9hc2NpaSA9IGZ1bmN0aW9uXG4gIHwgJ0EnIC4uICdaJyBhcyBjIC0+IHVuc2FmZV9jaHIoY29kZSBjICsgMzIpXG4gIHwgYyAtPiBjXG5cbmxldCB1cHBlcmNhc2VfYXNjaWkgPSBmdW5jdGlvblxuICB8ICdhJyAuLiAneicgYXMgYyAtPiB1bnNhZmVfY2hyKGNvZGUgYyAtIDMyKVxuICB8IGMgLT4gY1xuXG50eXBlIHQgPSBjaGFyXG5cbmxldCBjb21wYXJlIGMxIGMyID0gY29kZSBjMSAtIGNvZGUgYzJcbmxldCBlcXVhbCAoYzE6IHQpIChjMjogdCkgPSBjb21wYXJlIGMxIGMyID0gMFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICBEYW5pZWwgQy4gQnVlbnpsaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5cbmxldCBlcnJfbm9fcHJlZCA9IFwiVSswMDAwIGhhcyBubyBwcmVkZWNlc3NvclwiXG5sZXQgZXJyX25vX3N1Y2MgPSBcIlUrMTBGRkZGIGhhcyBubyBzdWNjZXNzb3JcIlxubGV0IGVycl9ub3Rfc3YgaSA9IGZvcm1hdF9pbnQgXCIlWFwiIGkgXiBcIiBpcyBub3QgYW4gVW5pY29kZSBzY2FsYXIgdmFsdWVcIlxubGV0IGVycl9ub3RfbGF0aW4xIHUgPSBcIlUrXCIgXiBmb3JtYXRfaW50IFwiJTA0WFwiIHUgXiBcIiBpcyBub3QgYSBsYXRpbjEgY2hhcmFjdGVyXCJcblxudHlwZSB0ID0gaW50XG5cbmxldCBtaW4gPSAweDAwMDBcbmxldCBtYXggPSAweDEwRkZGRlxubGV0IGxvX2JvdW5kID0gMHhEN0ZGXG5sZXQgaGlfYm91bmQgPSAweEUwMDBcblxubGV0IGJvbSA9IDB4RkVGRlxubGV0IHJlcCA9IDB4RkZGRFxuXG5sZXQgc3VjYyB1ID1cbiAgaWYgdSA9IGxvX2JvdW5kIHRoZW4gaGlfYm91bmQgZWxzZVxuICBpZiB1ID0gbWF4IHRoZW4gaW52YWxpZF9hcmcgZXJyX25vX3N1Y2MgZWxzZVxuICB1ICsgMVxuXG5sZXQgcHJlZCB1ID1cbiAgaWYgdSA9IGhpX2JvdW5kIHRoZW4gbG9fYm91bmQgZWxzZVxuICBpZiB1ID0gbWluIHRoZW4gaW52YWxpZF9hcmcgZXJyX25vX3ByZWQgZWxzZVxuICB1IC0gMVxuXG5sZXQgaXNfdmFsaWQgaSA9IChtaW4gPD0gaSAmJiBpIDw9IGxvX2JvdW5kKSB8fCAoaGlfYm91bmQgPD0gaSAmJiBpIDw9IG1heClcbmxldCBvZl9pbnQgaSA9IGlmIGlzX3ZhbGlkIGkgdGhlbiBpIGVsc2UgaW52YWxpZF9hcmcgKGVycl9ub3Rfc3YgaSlcbmV4dGVybmFsIHVuc2FmZV9vZl9pbnQgOiBpbnQgLT4gdCA9IFwiJWlkZW50aXR5XCJcbmV4dGVybmFsIHRvX2ludCA6IHQgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgaXNfY2hhciB1ID0gdSA8IDI1NlxubGV0IG9mX2NoYXIgYyA9IENoYXIuY29kZSBjXG5sZXQgdG9fY2hhciB1ID1cbiAgaWYgdSA+IDI1NSB0aGVuIGludmFsaWRfYXJnIChlcnJfbm90X2xhdGluMSB1KSBlbHNlXG4gIENoYXIudW5zYWZlX2NociB1XG5cbmxldCB1bnNhZmVfdG9fY2hhciA9IENoYXIudW5zYWZlX2NoclxuXG5sZXQgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBpbnQgLT4gaW50IC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5sZXQgaGFzaCA9IHRvX2ludFxuXG4oKiBVVEYgY29kZWNzIHRvb2xzICopXG5cbnR5cGUgdXRmX2RlY29kZSA9IGludFxuKCogVGhpcyBpcyBhbiBpbnQgWzB4RFVVVVVVVV0gZGVjb21wb3NlZCBhcyBmb2xsb3dzOlxuICAgLSBbRF0gaXMgZm91ciBiaXRzIGZvciBkZWNvZGUgaW5mb3JtYXRpb24sIHRoZSBoaWdoZXN0IGJpdCBpcyBzZXQgaWYgdGhlXG4gICAgIGRlY29kZSBpcyB2YWxpZC4gVGhlIHRocmVlIGxvd2VyIGJpdHMgaW5kaWNhdGUgdGhlIG51bWJlciBvZiBlbGVtZW50c1xuICAgICBmcm9tIHRoZSBzb3VyY2UgdGhhdCB3ZXJlIGNvbnN1bWVkIGJ5IHRoZSBkZWNvZGUuXG4gICAtIFtVVVVVVVVdIGlzIHRoZSBkZWNvZGVkIFVuaWNvZGUgY2hhcmFjdGVyIG9yIHRoZSBVbmljb2RlIHJlcGxhY2VtZW50XG4gICAgIGNoYXJhY3RlciBVK0ZGRkQgaWYgZm9yIGludmFsaWQgZGVjb2Rlcy4gKilcblxubGV0IHZhbGlkX2JpdCA9IDI3XG5sZXQgZGVjb2RlX2JpdHMgPSAyNFxuXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9pc192YWxpZCBkID0gKGQgbHNyIHZhbGlkX2JpdCkgPSAxXG5sZXRbQGlubGluZV0gdXRmX2RlY29kZV9sZW5ndGggZCA9IChkIGxzciBkZWNvZGVfYml0cykgbGFuZCAwYjExMVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfdWNoYXIgZCA9IHVuc2FmZV9vZl9pbnQgKGQgbGFuZCAweEZGRkZGRilcbmxldFtAaW5saW5lXSB1dGZfZGVjb2RlIG4gdSA9ICgoOCBsb3IgbikgbHNsIGRlY29kZV9iaXRzKSBsb3IgKHRvX2ludCB1KVxubGV0W0BpbmxpbmVdIHV0Zl9kZWNvZGVfaW52YWxpZCBuID0gKG4gbHNsIGRlY29kZV9iaXRzKSBsb3IgcmVwXG5cbmxldCB1dGZfOF9ieXRlX2xlbmd0aCB1ID0gbWF0Y2ggdG9faW50IHUgd2l0aFxufCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG58IHUgd2hlbiB1IDw9IDB4MDA3RiAtPiAxXG58IHUgd2hlbiB1IDw9IDB4MDdGRiAtPiAyXG58IHUgd2hlbiB1IDw9IDB4RkZGRiAtPiAzXG58IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+IDRcbnwgXyAtPiBhc3NlcnQgZmFsc2VcblxubGV0IHV0Zl8xNl9ieXRlX2xlbmd0aCB1ID0gbWF0Y2ggdG9faW50IHUgd2l0aFxufCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG58IHUgd2hlbiB1IDw9IDB4RkZGRiAtPiAyXG58IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+IDRcbnwgXyAtPiBhc3NlcnQgZmFsc2VcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQW4gYWxpYXMgZm9yIHRoZSB0eXBlIG9mIGxpc3RzLiAqKVxudHlwZSAnYSB0ID0gJ2EgbGlzdCA9IFtdIHwgKDo6KSBvZiAnYSAqICdhIGxpc3RcblxuKCogTGlzdCBvcGVyYXRpb25zICopXG5cbmxldCByZWMgbGVuZ3RoX2F1eCBsZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IGxlblxuICB8IF86OmwgLT4gbGVuZ3RoX2F1eCAobGVuICsgMSkgbFxuXG5sZXQgbGVuZ3RoIGwgPSBsZW5ndGhfYXV4IDAgbFxuXG5sZXQgY29ucyBhIGwgPSBhOjpsXG5cbmxldCBoZCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFpbHdpdGggXCJoZFwiXG4gIHwgYTo6XyAtPiBhXG5cbmxldCB0bCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZmFpbHdpdGggXCJ0bFwiXG4gIHwgXzo6bCAtPiBsXG5cbmxldCBudGggbCBuID1cbiAgaWYgbiA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkxpc3QubnRoXCIgZWxzZVxuICBsZXQgcmVjIG50aF9hdXggbCBuID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICB8IFtdIC0+IGZhaWx3aXRoIFwibnRoXCJcbiAgICB8IGE6OmwgLT4gaWYgbiA9IDAgdGhlbiBhIGVsc2UgbnRoX2F1eCBsIChuLTEpXG4gIGluIG50aF9hdXggbCBuXG5cbmxldCBudGhfb3B0IGwgbiA9XG4gIGlmIG4gPCAwIHRoZW4gaW52YWxpZF9hcmcgXCJMaXN0Lm50aFwiIGVsc2VcbiAgbGV0IHJlYyBudGhfYXV4IGwgbiA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBOb25lXG4gICAgfCBhOjpsIC0+IGlmIG4gPSAwIHRoZW4gU29tZSBhIGVsc2UgbnRoX2F1eCBsIChuLTEpXG4gIGluIG50aF9hdXggbCBuXG5cbmxldCBhcHBlbmQgPSAoQClcblxubGV0IHJlYyByZXZfYXBwZW5kIGwxIGwyID1cbiAgbWF0Y2ggbDEgd2l0aFxuICAgIFtdIC0+IGwyXG4gIHwgYSA6OiBsIC0+IHJldl9hcHBlbmQgbCAoYSA6OiBsMilcblxubGV0IHJldiBsID0gcmV2X2FwcGVuZCBsIFtdXG5cbmxldCByZWMgaW5pdF90YWlscmVjX2F1eCBhY2MgaSBuIGYgPVxuICBpZiBpID49IG4gdGhlbiBhY2NcbiAgZWxzZSBpbml0X3RhaWxyZWNfYXV4IChmIGkgOjogYWNjKSAoaSsxKSBuIGZcblxubGV0IHJlYyBpbml0X2F1eCBpIG4gZiA9XG4gIGlmIGkgPj0gbiB0aGVuIFtdXG4gIGVsc2VcbiAgICBsZXQgciA9IGYgaSBpblxuICAgIHIgOjogaW5pdF9hdXggKGkrMSkgbiBmXG5cbmxldCByZXZfaW5pdF90aHJlc2hvbGQgPVxuICBtYXRjaCBTeXMuYmFja2VuZF90eXBlIHdpdGhcbiAgfCBTeXMuTmF0aXZlIHwgU3lzLkJ5dGVjb2RlIC0+IDEwXzAwMFxuICAoKiBXZSBkb24ndCBrbm93IHRoZSBzaXplIG9mIHRoZSBzdGFjaywgYmV0dGVyIGJlIHNhZmUgYW5kIGFzc3VtZSBpdCdzXG4gICAgIHNtYWxsLiAqKVxuICB8IFN5cy5PdGhlciBfIC0+IDUwXG5cbmxldCBpbml0IGxlbiBmID1cbiAgaWYgbGVuIDwgMCB0aGVuIGludmFsaWRfYXJnIFwiTGlzdC5pbml0XCIgZWxzZVxuICBpZiBsZW4gPiByZXZfaW5pdF90aHJlc2hvbGQgdGhlbiByZXYgKGluaXRfdGFpbHJlY19hdXggW10gMCBsZW4gZilcbiAgZWxzZSBpbml0X2F1eCAwIGxlbiBmXG5cbmxldCByZWMgZmxhdHRlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW11cbiAgfCBsOjpyIC0+IGwgQCBmbGF0dGVuIHJcblxubGV0IGNvbmNhdCA9IGZsYXR0ZW5cblxubGV0IHJlYyBtYXAgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW11cbiAgfCBhOjpsIC0+IGxldCByID0gZiBhIGluIHIgOjogbWFwIGYgbFxuXG5sZXQgcmVjIG1hcGkgaSBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiBbXVxuICB8IGE6OmwgLT4gbGV0IHIgPSBmIGkgYSBpbiByIDo6IG1hcGkgKGkgKyAxKSBmIGxcblxubGV0IG1hcGkgZiBsID0gbWFwaSAwIGYgbFxuXG5sZXQgcmV2X21hcCBmIGwgPVxuICBsZXQgcmVjIHJtYXBfZiBhY2N1ID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY3VcbiAgICB8IGE6OmwgLT4gcm1hcF9mIChmIGEgOjogYWNjdSkgbFxuICBpblxuICBybWFwX2YgW10gbFxuXG5cbmxldCByZWMgaXRlciBmID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IGE6OmwgLT4gZiBhOyBpdGVyIGYgbFxuXG5sZXQgcmVjIGl0ZXJpIGkgZiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCBhOjpsIC0+IGYgaSBhOyBpdGVyaSAoaSArIDEpIGYgbFxuXG5sZXQgaXRlcmkgZiBsID0gaXRlcmkgMCBmIGxcblxubGV0IHJlYyBmb2xkX2xlZnQgZiBhY2N1IGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgICBbXSAtPiBhY2N1XG4gIHwgYTo6bCAtPiBmb2xkX2xlZnQgZiAoZiBhY2N1IGEpIGxcblxubGV0IHJlYyBmb2xkX3JpZ2h0IGYgbCBhY2N1ID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgW10gLT4gYWNjdVxuICB8IGE6OmwgLT4gZiBhIChmb2xkX3JpZ2h0IGYgbCBhY2N1KVxuXG5sZXQgcmVjIG1hcDIgZiBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBbXVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gbGV0IHIgPSBmIGExIGEyIGluIHIgOjogbWFwMiBmIGwxIGwyXG4gIHwgKF8sIF8pIC0+IGludmFsaWRfYXJnIFwiTGlzdC5tYXAyXCJcblxubGV0IHJldl9tYXAyIGYgbDEgbDIgPVxuICBsZXQgcmVjIHJtYXAyX2YgYWNjdSBsMSBsMiA9XG4gICAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIHwgKFtdLCBbXSkgLT4gYWNjdVxuICAgIHwgKGExOjpsMSwgYTI6OmwyKSAtPiBybWFwMl9mIChmIGExIGEyIDo6IGFjY3UpIGwxIGwyXG4gICAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LnJldl9tYXAyXCJcbiAgaW5cbiAgcm1hcDJfZiBbXSBsMSBsMlxuXG5cbmxldCByZWMgaXRlcjIgZiBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiAoKVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gZiBhMSBhMjsgaXRlcjIgZiBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuaXRlcjJcIlxuXG5sZXQgcmVjIGZvbGRfbGVmdDIgZiBhY2N1IGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IGFjY3VcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGZvbGRfbGVmdDIgZiAoZiBhY2N1IGExIGEyKSBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZm9sZF9sZWZ0MlwiXG5cbmxldCByZWMgZm9sZF9yaWdodDIgZiBsMSBsMiBhY2N1ID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IGFjY3VcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IGYgYTEgYTIgKGZvbGRfcmlnaHQyIGYgbDEgbDIgYWNjdSlcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmZvbGRfcmlnaHQyXCJcblxubGV0IHJlYyBmb3JfYWxsIHAgPSBmdW5jdGlvblxuICAgIFtdIC0+IHRydWVcbiAgfCBhOjpsIC0+IHAgYSAmJiBmb3JfYWxsIHAgbFxuXG5sZXQgcmVjIGV4aXN0cyBwID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWxzZVxuICB8IGE6OmwgLT4gcCBhIHx8IGV4aXN0cyBwIGxcblxubGV0IHJlYyBmb3JfYWxsMiBwIGwxIGwyID1cbiAgbWF0Y2ggKGwxLCBsMikgd2l0aFxuICAgIChbXSwgW10pIC0+IHRydWVcbiAgfCAoYTE6OmwxLCBhMjo6bDIpIC0+IHAgYTEgYTIgJiYgZm9yX2FsbDIgcCBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuZm9yX2FsbDJcIlxuXG5sZXQgcmVjIGV4aXN0czIgcCBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBmYWxzZVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gcCBhMSBhMiB8fCBleGlzdHMyIHAgbDEgbDJcbiAgfCAoXywgXykgLT4gaW52YWxpZF9hcmcgXCJMaXN0LmV4aXN0czJcIlxuXG5sZXQgcmVjIG1lbSB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBmYWxzZVxuICB8IGE6OmwgLT4gY29tcGFyZSBhIHggPSAwIHx8IG1lbSB4IGxcblxubGV0IHJlYyBtZW1xIHggPSBmdW5jdGlvblxuICAgIFtdIC0+IGZhbHNlXG4gIHwgYTo6bCAtPiBhID09IHggfHwgbWVtcSB4IGxcblxubGV0IHJlYyBhc3NvYyB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCAoYSxiKTo6bCAtPiBpZiBjb21wYXJlIGEgeCA9IDAgdGhlbiBiIGVsc2UgYXNzb2MgeCBsXG5cbmxldCByZWMgYXNzb2Nfb3B0IHggPSBmdW5jdGlvblxuICAgIFtdIC0+IE5vbmVcbiAgfCAoYSxiKTo6bCAtPiBpZiBjb21wYXJlIGEgeCA9IDAgdGhlbiBTb21lIGIgZWxzZSBhc3NvY19vcHQgeCBsXG5cbmxldCByZWMgYXNzcSB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCAoYSxiKTo6bCAtPiBpZiBhID09IHggdGhlbiBiIGVsc2UgYXNzcSB4IGxcblxubGV0IHJlYyBhc3NxX29wdCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiBOb25lXG4gIHwgKGEsYik6OmwgLT4gaWYgYSA9PSB4IHRoZW4gU29tZSBiIGVsc2UgYXNzcV9vcHQgeCBsXG5cbmxldCByZWMgbWVtX2Fzc29jIHggPSBmdW5jdGlvblxuICB8IFtdIC0+IGZhbHNlXG4gIHwgKGEsIF8pIDo6IGwgLT4gY29tcGFyZSBhIHggPSAwIHx8IG1lbV9hc3NvYyB4IGxcblxubGV0IHJlYyBtZW1fYXNzcSB4ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBmYWxzZVxuICB8IChhLCBfKSA6OiBsIC0+IGEgPT0geCB8fCBtZW1fYXNzcSB4IGxcblxubGV0IHJlYyByZW1vdmVfYXNzb2MgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gW11cbiAgfCAoYSwgXyBhcyBwYWlyKSA6OiBsIC0+XG4gICAgICBpZiBjb21wYXJlIGEgeCA9IDAgdGhlbiBsIGVsc2UgcGFpciA6OiByZW1vdmVfYXNzb2MgeCBsXG5cbmxldCByZWMgcmVtb3ZlX2Fzc3EgeCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gW11cbiAgfCAoYSwgXyBhcyBwYWlyKSA6OiBsIC0+IGlmIGEgPT0geCB0aGVuIGwgZWxzZSBwYWlyIDo6IHJlbW92ZV9hc3NxIHggbFxuXG5sZXQgcmVjIGZpbmQgcCA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIHggZWxzZSBmaW5kIHAgbFxuXG5sZXQgcmVjIGZpbmRfb3B0IHAgPSBmdW5jdGlvblxuICB8IFtdIC0+IE5vbmVcbiAgfCB4IDo6IGwgLT4gaWYgcCB4IHRoZW4gU29tZSB4IGVsc2UgZmluZF9vcHQgcCBsXG5cbmxldCByZWMgZmluZF9tYXAgZiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gTm9uZVxuICB8IHggOjogbCAtPlxuICAgICBiZWdpbiBtYXRjaCBmIHggd2l0aFxuICAgICAgIHwgU29tZSBfIGFzIHJlc3VsdCAtPiByZXN1bHRcbiAgICAgICB8IE5vbmUgLT4gZmluZF9tYXAgZiBsXG4gICAgIGVuZFxuXG5sZXQgZmluZF9hbGwgcCA9XG4gIGxldCByZWMgZmluZCBhY2N1ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiByZXYgYWNjdVxuICB8IHggOjogbCAtPiBpZiBwIHggdGhlbiBmaW5kICh4IDo6IGFjY3UpIGwgZWxzZSBmaW5kIGFjY3UgbCBpblxuICBmaW5kIFtdXG5cbmxldCBmaWx0ZXIgPSBmaW5kX2FsbFxuXG5sZXQgZmlsdGVyaSBwIGwgPVxuICBsZXQgcmVjIGF1eCBpIGFjYyA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gcmV2IGFjY1xuICB8IHg6OmwgLT4gYXV4IChpICsgMSkgKGlmIHAgaSB4IHRoZW4geDo6YWNjIGVsc2UgYWNjKSBsXG4gIGluXG4gIGF1eCAwIFtdIGxcblxubGV0IGZpbHRlcl9tYXAgZiA9XG4gIGxldCByZWMgYXV4IGFjY3UgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gcmV2IGFjY3VcbiAgICB8IHggOjogbCAtPlxuICAgICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICB8IE5vbmUgLT4gYXV4IGFjY3UgbFxuICAgICAgICB8IFNvbWUgdiAtPiBhdXggKHYgOjogYWNjdSkgbFxuICBpblxuICBhdXggW11cblxubGV0IGNvbmNhdF9tYXAgZiBsID1cbiAgbGV0IHJlYyBhdXggZiBhY2MgPSBmdW5jdGlvblxuICAgIHwgW10gLT4gcmV2IGFjY1xuICAgIHwgeCA6OiBsIC0+XG4gICAgICAgbGV0IHhzID0gZiB4IGluXG4gICAgICAgYXV4IGYgKHJldl9hcHBlbmQgeHMgYWNjKSBsXG4gIGluIGF1eCBmIFtdIGxcblxubGV0IGZvbGRfbGVmdF9tYXAgZiBhY2N1IGwgPVxuICBsZXQgcmVjIGF1eCBhY2N1IGxfYWNjdSA9IGZ1bmN0aW9uXG4gICAgfCBbXSAtPiBhY2N1LCByZXYgbF9hY2N1XG4gICAgfCB4IDo6IGwgLT5cbiAgICAgICAgbGV0IGFjY3UsIHggPSBmIGFjY3UgeCBpblxuICAgICAgICBhdXggYWNjdSAoeCA6OiBsX2FjY3UpIGwgaW5cbiAgYXV4IGFjY3UgW10gbFxuXG5sZXQgcGFydGl0aW9uIHAgbCA9XG4gIGxldCByZWMgcGFydCB5ZXMgbm8gPSBmdW5jdGlvblxuICB8IFtdIC0+IChyZXYgeWVzLCByZXYgbm8pXG4gIHwgeCA6OiBsIC0+IGlmIHAgeCB0aGVuIHBhcnQgKHggOjogeWVzKSBubyBsIGVsc2UgcGFydCB5ZXMgKHggOjogbm8pIGwgaW5cbiAgcGFydCBbXSBbXSBsXG5cbmxldCBwYXJ0aXRpb25fbWFwIHAgbCA9XG4gIGxldCByZWMgcGFydCBsZWZ0IHJpZ2h0ID0gZnVuY3Rpb25cbiAgfCBbXSAtPiAocmV2IGxlZnQsIHJldiByaWdodClcbiAgfCB4IDo6IGwgLT5cbiAgICAgYmVnaW4gbWF0Y2ggcCB4IHdpdGhcbiAgICAgICB8IEVpdGhlci5MZWZ0IHYgLT4gcGFydCAodiA6OiBsZWZ0KSByaWdodCBsXG4gICAgICAgfCBFaXRoZXIuUmlnaHQgdiAtPiBwYXJ0IGxlZnQgKHYgOjogcmlnaHQpIGxcbiAgICAgZW5kXG4gIGluXG4gIHBhcnQgW10gW10gbFxuXG5sZXQgcmVjIHNwbGl0ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoW10sIFtdKVxuICB8ICh4LHkpOjpsIC0+XG4gICAgICBsZXQgKHJ4LCByeSkgPSBzcGxpdCBsIGluICh4OjpyeCwgeTo6cnkpXG5cbmxldCByZWMgY29tYmluZSBsMSBsMiA9XG4gIG1hdGNoIChsMSwgbDIpIHdpdGhcbiAgICAoW10sIFtdKSAtPiBbXVxuICB8IChhMTo6bDEsIGEyOjpsMikgLT4gKGExLCBhMikgOjogY29tYmluZSBsMSBsMlxuICB8IChfLCBfKSAtPiBpbnZhbGlkX2FyZyBcIkxpc3QuY29tYmluZVwiXG5cbigqKiBzb3J0aW5nICopXG5cbmxldCByZWMgbWVyZ2UgY21wIGwxIGwyID1cbiAgbWF0Y2ggbDEsIGwyIHdpdGhcbiAgfCBbXSwgbDIgLT4gbDJcbiAgfCBsMSwgW10gLT4gbDFcbiAgfCBoMSA6OiB0MSwgaDIgOjogdDIgLT5cbiAgICAgIGlmIGNtcCBoMSBoMiA8PSAwXG4gICAgICB0aGVuIGgxIDo6IG1lcmdlIGNtcCB0MSBsMlxuICAgICAgZWxzZSBoMiA6OiBtZXJnZSBjbXAgbDEgdDJcblxuXG5sZXQgc3RhYmxlX3NvcnQgY21wIGwgPVxuICBsZXQgcmVjIHJldl9tZXJnZSBsMSBsMiBhY2N1ID1cbiAgICBtYXRjaCBsMSwgbDIgd2l0aFxuICAgIHwgW10sIGwyIC0+IHJldl9hcHBlbmQgbDIgYWNjdVxuICAgIHwgbDEsIFtdIC0+IHJldl9hcHBlbmQgbDEgYWNjdVxuICAgIHwgaDE6OnQxLCBoMjo6dDIgLT5cbiAgICAgICAgaWYgY21wIGgxIGgyIDw9IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2UgdDEgbDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIHJldl9tZXJnZSBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgcmV2X21lcmdlX3JldiBsMSBsMiBhY2N1ID1cbiAgICBtYXRjaCBsMSwgbDIgd2l0aFxuICAgIHwgW10sIGwyIC0+IHJldl9hcHBlbmQgbDIgYWNjdVxuICAgIHwgbDEsIFtdIC0+IHJldl9hcHBlbmQgbDEgYWNjdVxuICAgIHwgaDE6OnQxLCBoMjo6dDIgLT5cbiAgICAgICAgaWYgY21wIGgxIGgyID4gMFxuICAgICAgICB0aGVuIHJldl9tZXJnZV9yZXYgdDEgbDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIHJldl9tZXJnZV9yZXYgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHNvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID0gaWYgY21wIHgxIHgyIDw9IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBpZiBjbXAgeDEgeDIgPD0gMCB0aGVuXG4gICAgICAgICAgICBpZiBjbXAgeDIgeDMgPD0gMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZSBpZiBjbXAgeDEgeDMgPD0gMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgZWxzZSBbeDM7IHgxOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA8PSAwIHRoZW4gW3gyOyB4MTsgeDNdXG4gICAgICAgICAgZWxzZSBpZiBjbXAgeDIgeDMgPD0gMCB0aGVuIFt4MjsgeDM7IHgxXVxuICAgICAgICAgIGVsc2UgW3gzOyB4MjsgeDFdXG4gICAgICAgIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IG4sIGwgLT5cbiAgICAgICAgbGV0IG4xID0gbiBhc3IgMSBpblxuICAgICAgICBsZXQgbjIgPSBuIC0gbjEgaW5cbiAgICAgICAgbGV0IHMxLCBsMiA9IHJldl9zb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHJldl9zb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2VfcmV2IHMxIHMyIFtdLCB0bClcbiAgYW5kIHJldl9zb3J0IG4gbCA9XG4gICAgbWF0Y2ggbiwgbCB3aXRoXG4gICAgfCAyLCB4MSA6OiB4MiA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9IGlmIGNtcCB4MSB4MiA+IDAgdGhlbiBbeDE7IHgyXSBlbHNlIFt4MjsgeDFdIGluXG4gICAgICAgIChzLCB0bClcbiAgICB8IDMsIHgxIDo6IHgyIDo6IHgzIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBpZiBjbXAgeDEgeDIgPiAwIHRoZW5cbiAgICAgICAgICAgIGlmIGNtcCB4MiB4MyA+IDAgdGhlbiBbeDE7IHgyOyB4M11cbiAgICAgICAgICAgIGVsc2UgaWYgY21wIHgxIHgzID4gMCB0aGVuIFt4MTsgeDM7IHgyXVxuICAgICAgICAgICAgZWxzZSBbeDM7IHgxOyB4Ml1cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MSB4MyA+IDAgdGhlbiBbeDI7IHgxOyB4M11cbiAgICAgICAgICBlbHNlIGlmIGNtcCB4MiB4MyA+IDAgdGhlbiBbeDI7IHgzOyB4MV1cbiAgICAgICAgICBlbHNlIFt4MzsgeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCBuLCBsIC0+XG4gICAgICAgIGxldCBuMSA9IG4gYXNyIDEgaW5cbiAgICAgICAgbGV0IG4yID0gbiAtIG4xIGluXG4gICAgICAgIGxldCBzMSwgbDIgPSBzb3J0IG4xIGwgaW5cbiAgICAgICAgbGV0IHMyLCB0bCA9IHNvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZSBzMSBzMiBbXSwgdGwpXG4gIGluXG4gIGxldCBsZW4gPSBsZW5ndGggbCBpblxuICBpZiBsZW4gPCAyIHRoZW4gbCBlbHNlIGZzdCAoc29ydCBsZW4gbClcblxuXG5sZXQgc29ydCA9IHN0YWJsZV9zb3J0XG5sZXQgZmFzdF9zb3J0ID0gc3RhYmxlX3NvcnRcblxuKCogTm90ZTogb24gYSBsaXN0IG9mIGxlbmd0aCBiZXR3ZWVuIGFib3V0IDEwMDAwMCAoZGVwZW5kaW5nIG9uIHRoZSBtaW5vclxuICAgaGVhcCBzaXplIGFuZCB0aGUgdHlwZSBvZiB0aGUgbGlzdCkgYW5kIFN5cy5tYXhfYXJyYXlfc2l6ZSwgaXQgaXNcbiAgIGFjdHVhbGx5IGZhc3RlciB0byB1c2UgdGhlIGZvbGxvd2luZywgYnV0IGl0IG1pZ2h0IGFsc28gdXNlIG1vcmUgbWVtb3J5XG4gICBiZWNhdXNlIHRoZSBhcmd1bWVudCBsaXN0IGNhbm5vdCBiZSBkZWFsbG9jYXRlZCBpbmNyZW1lbnRhbGx5LlxuXG4gICBBbHNvLCB0aGVyZSBzZWVtcyB0byBiZSBhIGJ1ZyBpbiB0aGlzIGNvZGUgb3IgaW4gdGhlXG4gICBpbXBsZW1lbnRhdGlvbiBvZiBvYmpfdHJ1bmNhdGUuXG5cbmV4dGVybmFsIG9ial90cnVuY2F0ZSA6ICdhIGFycmF5IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX29ial90cnVuY2F0ZVwiXG5cbmxldCBhcnJheV90b19saXN0X2luX3BsYWNlIGEgPVxuICBsZXQgbCA9IEFycmF5Lmxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBhY2N1IG4gcCA9XG4gICAgaWYgcCA8PSAwIHRoZW4gYWNjdSBlbHNlIGJlZ2luXG4gICAgICBpZiBwID0gbiB0aGVuIGJlZ2luXG4gICAgICAgIG9ial90cnVuY2F0ZSBhIHA7XG4gICAgICAgIGxvb3AgKGEuKHAtMSkgOjogYWNjdSkgKG4tMTAwMCkgKHAtMSlcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIGxvb3AgKGEuKHAtMSkgOjogYWNjdSkgbiAocC0xKVxuICAgICAgZW5kXG4gICAgZW5kXG4gIGluXG4gIGxvb3AgW10gKGwtMTAwMCkgbFxuXG5cbmxldCBzdGFibGVfc29ydCBjbXAgbCA9XG4gIGxldCBhID0gQXJyYXkub2ZfbGlzdCBsIGluXG4gIEFycmF5LnN0YWJsZV9zb3J0IGNtcCBhO1xuICBhcnJheV90b19saXN0X2luX3BsYWNlIGFcblxuKilcblxuXG4oKiogc29ydGluZyArIHJlbW92aW5nIGR1cGxpY2F0ZXMgKilcblxubGV0IHNvcnRfdW5pcSBjbXAgbCA9XG4gIGxldCByZWMgcmV2X21lcmdlIGwxIGwyIGFjY3UgPVxuICAgIG1hdGNoIGwxLCBsMiB3aXRoXG4gICAgfCBbXSwgbDIgLT4gcmV2X2FwcGVuZCBsMiBhY2N1XG4gICAgfCBsMSwgW10gLT4gcmV2X2FwcGVuZCBsMSBhY2N1XG4gICAgfCBoMTo6dDEsIGgyOjp0MiAtPlxuICAgICAgICBsZXQgYyA9IGNtcCBoMSBoMiBpblxuICAgICAgICBpZiBjID0gMCB0aGVuIHJldl9tZXJnZSB0MSB0MiAoaDE6OmFjY3UpXG4gICAgICAgIGVsc2UgaWYgYyA8IDBcbiAgICAgICAgdGhlbiByZXZfbWVyZ2UgdDEgbDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIHJldl9tZXJnZSBsMSB0MiAoaDI6OmFjY3UpXG4gIGluXG4gIGxldCByZWMgcmV2X21lcmdlX3JldiBsMSBsMiBhY2N1ID1cbiAgICBtYXRjaCBsMSwgbDIgd2l0aFxuICAgIHwgW10sIGwyIC0+IHJldl9hcHBlbmQgbDIgYWNjdVxuICAgIHwgbDEsIFtdIC0+IHJldl9hcHBlbmQgbDEgYWNjdVxuICAgIHwgaDE6OnQxLCBoMjo6dDIgLT5cbiAgICAgICAgbGV0IGMgPSBjbXAgaDEgaDIgaW5cbiAgICAgICAgaWYgYyA9IDAgdGhlbiByZXZfbWVyZ2VfcmV2IHQxIHQyIChoMTo6YWNjdSlcbiAgICAgICAgZWxzZSBpZiBjID4gMFxuICAgICAgICB0aGVuIHJldl9tZXJnZV9yZXYgdDEgbDIgKGgxOjphY2N1KVxuICAgICAgICBlbHNlIHJldl9tZXJnZV9yZXYgbDEgdDIgKGgyOjphY2N1KVxuICBpblxuICBsZXQgcmVjIHNvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxXSBlbHNlIGlmIGMgPCAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDJdIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDI7IHgzXSBlbHNlIFt4MzsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MyBpblxuICAgICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBbeDM7IHgxOyB4Ml1cbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlbiBbeDI7IHgzOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gcmV2X3NvcnQgbjEgbCBpblxuICAgICAgICBsZXQgczIsIHRsID0gcmV2X3NvcnQgbjIgbDIgaW5cbiAgICAgICAgKHJldl9tZXJnZV9yZXYgczEgczIgW10sIHRsKVxuICBhbmQgcmV2X3NvcnQgbiBsID1cbiAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICB8IDIsIHgxIDo6IHgyIDo6IHRsIC0+XG4gICAgICAgIGxldCBzID1cbiAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gW3gxXSBlbHNlIGlmIGMgPiAwIHRoZW4gW3gxOyB4Ml0gZWxzZSBbeDI7IHgxXVxuICAgICAgICBpblxuICAgICAgICAocywgdGwpXG4gICAgfCAzLCB4MSA6OiB4MiA6OiB4MyA6OiB0bCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgbGV0IGMgPSBjbXAgeDEgeDIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDJdIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDI7IHgzXSBlbHNlIFt4MzsgeDJdXG4gICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDE7IHgyXVxuICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MTsgeDI7IHgzXVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MyBpblxuICAgICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MTsgeDJdXG4gICAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDE7IHgzOyB4Ml1cbiAgICAgICAgICAgICAgZWxzZSBbeDM7IHgxOyB4Ml1cbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgYyA9IGNtcCB4MSB4MyBpblxuICAgICAgICAgICAgaWYgYyA9IDAgdGhlbiBbeDI7IHgxXVxuICAgICAgICAgICAgZWxzZSBpZiBjID4gMCB0aGVuIFt4MjsgeDE7IHgzXVxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBsZXQgYyA9IGNtcCB4MiB4MyBpblxuICAgICAgICAgICAgICBpZiBjID0gMCB0aGVuIFt4MjsgeDFdXG4gICAgICAgICAgICAgIGVsc2UgaWYgYyA+IDAgdGhlbiBbeDI7IHgzOyB4MV1cbiAgICAgICAgICAgICAgZWxzZSBbeDM7IHgyOyB4MV1cbiAgICAgICAgaW5cbiAgICAgICAgKHMsIHRsKVxuICAgIHwgbiwgbCAtPlxuICAgICAgICBsZXQgbjEgPSBuIGFzciAxIGluXG4gICAgICAgIGxldCBuMiA9IG4gLSBuMSBpblxuICAgICAgICBsZXQgczEsIGwyID0gc29ydCBuMSBsIGluXG4gICAgICAgIGxldCBzMiwgdGwgPSBzb3J0IG4yIGwyIGluXG4gICAgICAgIChyZXZfbWVyZ2UgczEgczIgW10sIHRsKVxuICBpblxuICBsZXQgbGVuID0gbGVuZ3RoIGwgaW5cbiAgaWYgbGVuIDwgMiB0aGVuIGwgZWxzZSBmc3QgKHNvcnQgbGVuIGwpXG5cblxubGV0IHJlYyBjb21wYXJlX2xlbmd0aHMgbDEgbDIgPVxuICBtYXRjaCBsMSwgbDIgd2l0aFxuICB8IFtdLCBbXSAtPiAwXG4gIHwgW10sIF8gLT4gLTFcbiAgfCBfLCBbXSAtPiAxXG4gIHwgXyA6OiBsMSwgXyA6OiBsMiAtPiBjb21wYXJlX2xlbmd0aHMgbDEgbDJcbjs7XG5cbmxldCByZWMgY29tcGFyZV9sZW5ndGhfd2l0aCBsIG4gPVxuICBtYXRjaCBsIHdpdGhcbiAgfCBbXSAtPlxuICAgIGlmIG4gPSAwIHRoZW4gMCBlbHNlXG4gICAgICBpZiBuID4gMCB0aGVuIC0xIGVsc2UgMVxuICB8IF8gOjogbCAtPlxuICAgIGlmIG4gPD0gMCB0aGVuIDEgZWxzZVxuICAgICAgY29tcGFyZV9sZW5ndGhfd2l0aCBsIChuLTEpXG47O1xuXG4oKiogezEgQ29tcGFyaXNvbn0gKilcblxuKCogTm90ZTogd2UgYXJlICpub3QqIHNob3J0Y3V0dGluZyB0aGUgbGlzdCBieSB1c2luZ1xuICAgW0xpc3QuY29tcGFyZV9sZW5ndGhzXSBmaXJzdDsgdGhpcyBtYXkgYmUgc2xvd2VyIG9uIGxvbmcgbGlzdHNcbiAgIGltbWVkaWF0ZWx5IHN0YXJ0IHdpdGggZGlzdGluY3QgZWxlbWVudHMuIEl0IGlzIGFsc28gaW5jb3JyZWN0IGZvclxuICAgW2NvbXBhcmVdIGJlbG93LCBhbmQgaXQgaXMgYmV0dGVyIChwcmluY2lwbGUgb2YgbGVhc3Qgc3VycHJpc2UpIHRvXG4gICB1c2UgdGhlIHNhbWUgYXBwcm9hY2ggZm9yIGJvdGggZnVuY3Rpb25zLiAqKVxubGV0IHJlYyBlcXVhbCBlcSBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIFtdIC0+IHRydWVcbiAgfCBbXSwgXzo6XyB8IF86Ol8sIFtdIC0+IGZhbHNlXG4gIHwgYTE6OmwxLCBhMjo6bDIgLT4gZXEgYTEgYTIgJiYgZXF1YWwgZXEgbDEgbDJcblxubGV0IHJlYyBjb21wYXJlIGNtcCBsMSBsMiA9XG4gIG1hdGNoIGwxLCBsMiB3aXRoXG4gIHwgW10sIFtdIC0+IDBcbiAgfCBbXSwgXzo6XyAtPiAtMVxuICB8IF86Ol8sIFtdIC0+IDFcbiAgfCBhMTo6bDEsIGEyOjpsMiAtPlxuICAgIGxldCBjID0gY21wIGExIGEyIGluXG4gICAgaWYgYyA8PiAwIHRoZW4gY1xuICAgIGVsc2UgY29tcGFyZSBjbXAgbDEgbDJcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBsID1cbiAgbGV0IHJlYyBhdXggbCAoKSA9IG1hdGNoIGwgd2l0aFxuICAgIHwgW10gLT4gU2VxLk5pbFxuICAgIHwgeCA6OiB0YWlsIC0+IFNlcS5Db25zICh4LCBhdXggdGFpbClcbiAgaW5cbiAgYXV4IGxcblxubGV0IG9mX3NlcSBzZXEgPVxuICBsZXQgcmVjIGRpcmVjdCBkZXB0aCBzZXEgOiBfIGxpc3QgPVxuICAgIGlmIGRlcHRoPTBcbiAgICB0aGVuXG4gICAgICBTZXEuZm9sZF9sZWZ0IChmdW4gYWNjIHggLT4geDo6YWNjKSBbXSBzZXFcbiAgICAgIHw+IHJldiAoKiB0YWlscmVjICopXG4gICAgZWxzZSBtYXRjaCBzZXEoKSB3aXRoXG4gICAgICB8IFNlcS5OaWwgLT4gW11cbiAgICAgIHwgU2VxLkNvbnMgKHgsIG5leHQpIC0+IHggOjogZGlyZWN0IChkZXB0aC0xKSBuZXh0XG4gIGluXG4gIGRpcmVjdCA1MDAgc2VxXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IGludFxuXG5sZXQgemVybyA9IDBcbmxldCBvbmUgPSAxXG5sZXQgbWludXNfb25lID0gLTFcbmV4dGVybmFsIG5lZyA6IGludCAtPiBpbnQgPSBcIiVuZWdpbnRcIlxuZXh0ZXJuYWwgYWRkIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhZGRpbnRcIlxuZXh0ZXJuYWwgc3ViIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVzdWJpbnRcIlxuZXh0ZXJuYWwgbXVsIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtdWxpbnRcIlxuZXh0ZXJuYWwgZGl2IDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVkaXZpbnRcIlxuZXh0ZXJuYWwgcmVtIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVtb2RpbnRcIlxuZXh0ZXJuYWwgc3VjYyA6IGludCAtPiBpbnQgPSBcIiVzdWNjaW50XCJcbmV4dGVybmFsIHByZWQgOiBpbnQgLT4gaW50ID0gXCIlcHJlZGludFwiXG5sZXQgYWJzIHggPSBpZiB4ID49IDAgdGhlbiB4IGVsc2UgLXhcbmxldCBtYXhfaW50ID0gKC0xKSBsc3IgMVxubGV0IG1pbl9pbnQgPSBtYXhfaW50ICsgMVxuZXh0ZXJuYWwgbG9nYW5kIDogaW50IC0+IGludCAtPiBpbnQgPSBcIiVhbmRpbnRcIlxuZXh0ZXJuYWwgbG9nb3IgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJW9yaW50XCJcbmV4dGVybmFsIGxvZ3hvciA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIleG9yaW50XCJcbmxldCBsb2dub3QgeCA9IGxvZ3hvciB4ICgtMSlcbmV4dGVybmFsIHNoaWZ0X2xlZnQgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzbGludFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodCA6IGludCAtPiBpbnQgLT4gaW50ID0gXCIlYXNyaW50XCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWxzcmludFwiXG5sZXQgZXF1YWwgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSAoID0gKVxubGV0IGNvbXBhcmUgOiBpbnQgLT4gaW50IC0+IGludCA9IFN0ZGxpYi5jb21wYXJlXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcbmV4dGVybmFsIHRvX2Zsb2F0IDogaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRvZmludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuXG4oKlxuZXh0ZXJuYWwgaW50X29mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQgPSBcImNhbWxfaW50X29mX3N0cmluZ1wiXG5sZXQgb2Zfc3RyaW5nIHMgPSB0cnkgU29tZSAoaW50X29mX3N0cmluZyBzKSB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG4qKVxuXG5leHRlcm5hbCBmb3JtYXRfaW50IDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmcgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5sZXQgdG9fc3RyaW5nIHggPSBmb3JtYXRfaW50IFwiJWRcIiB4XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAqKVxuXG4oKiBXQVJOSU5HOiBTb21lIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sIGZvclxuICAgZWZmaWNpZW5jeSByZWFzb25zLiBXaGVuIHlvdSBtb2RpZnkgdGhlIG9uZSBpbiB0aGlzIGZpbGUgeW91IG5lZWQgdG9cbiAgIG1vZGlmeSBpdHMgZHVwbGljYXRlIGluIHN0cmluZy5tbC5cbiAgIFRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgXCJkdXBsaWNhdGVkXCIgY29tbWVudCBhYm92ZSB0aGVpciBkZWZpbml0aW9uLlxuKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogYnl0ZXMgLT4gaW50ID0gXCIlYnl0ZXNfbGVuZ3RoXCJcbmV4dGVybmFsIHN0cmluZ19sZW5ndGggOiBzdHJpbmcgLT4gaW50ID0gXCIlc3RyaW5nX2xlbmd0aFwiXG5leHRlcm5hbCBnZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciA9IFwiJWJ5dGVzX3NhZmVfZ2V0XCJcbmV4dGVybmFsIHNldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVieXRlc19zYWZlX3NldFwiXG5leHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gYnl0ZXMgPSBcImNhbWxfY3JlYXRlX2J5dGVzXCJcbmV4dGVybmFsIHVuc2FmZV9nZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciA9IFwiJWJ5dGVzX3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldCA6IGJ5dGVzIC0+IGludCAtPiBjaGFyIC0+IHVuaXQgPSBcIiVieXRlc191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9maWxsIDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiBjaGFyIC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2ZpbGxfYnl0ZXNcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdW5zYWZlX3RvX3N0cmluZyA6IGJ5dGVzIC0+IHN0cmluZyA9IFwiJWJ5dGVzX3RvX3N0cmluZ1wiXG5leHRlcm5hbCB1bnNhZmVfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGJ5dGVzID0gXCIlYnl0ZXNfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgdW5zYWZlX2JsaXQgOiBieXRlcyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X2J5dGVzXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHVuc2FmZV9ibGl0X3N0cmluZyA6IHN0cmluZyAtPiBpbnQgLT4gYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X3N0cmluZ1wiIFtAQG5vYWxsb2NdXG5cbmxldCBtYWtlIG4gYyA9XG4gIGxldCBzID0gY3JlYXRlIG4gaW5cbiAgdW5zYWZlX2ZpbGwgcyAwIG4gYztcbiAgc1xuXG5sZXQgaW5pdCBuIGYgPVxuICBsZXQgcyA9IGNyZWF0ZSBuIGluXG4gIGZvciBpID0gMCB0byBuIC0gMSBkb1xuICAgIHVuc2FmZV9zZXQgcyBpIChmIGkpXG4gIGRvbmU7XG4gIHNcblxubGV0IGVtcHR5ID0gY3JlYXRlIDBcblxubGV0IGNvcHkgcyA9XG4gIGxldCBsZW4gPSBsZW5ndGggcyBpblxuICBsZXQgciA9IGNyZWF0ZSBsZW4gaW5cbiAgdW5zYWZlX2JsaXQgcyAwIHIgMCBsZW47XG4gIHJcblxubGV0IHRvX3N0cmluZyBiID0gdW5zYWZlX3RvX3N0cmluZyAoY29weSBiKVxubGV0IG9mX3N0cmluZyBzID0gY29weSAodW5zYWZlX29mX3N0cmluZyBzKVxuXG5sZXQgc3ViIHMgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLnN1YiAvIEJ5dGVzLnN1YlwiXG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsZW4gaW5cbiAgICB1bnNhZmVfYmxpdCBzIG9mcyByIDAgbGVuO1xuICAgIHJcbiAgZW5kXG5cbmxldCBzdWJfc3RyaW5nIGIgb2ZzIGxlbiA9IHVuc2FmZV90b19zdHJpbmcgKHN1YiBiIG9mcyBsZW4pXG5cbigqIGFkZGl0aW9uIHdpdGggYW4gb3ZlcmZsb3cgY2hlY2sgKilcbmxldCAoKyspIGEgYiA9XG4gIGxldCBjID0gYSArIGIgaW5cbiAgbWF0Y2ggYSA8IDAsIGIgPCAwLCBjIDwgMCB3aXRoXG4gIHwgdHJ1ZSAsIHRydWUgLCBmYWxzZVxuICB8IGZhbHNlLCBmYWxzZSwgdHJ1ZSAgLT4gaW52YWxpZF9hcmcgXCJCeXRlcy5leHRlbmRcIiAoKiBvdmVyZmxvdyAqKVxuICB8IF8gLT4gY1xuXG5sZXQgZXh0ZW5kIHMgbGVmdCByaWdodCA9XG4gIGxldCBsZW4gPSBsZW5ndGggcyArKyBsZWZ0ICsrIHJpZ2h0IGluXG4gIGxldCByID0gY3JlYXRlIGxlbiBpblxuICBsZXQgKHNyY29mZiwgZHN0b2ZmKSA9IGlmIGxlZnQgPCAwIHRoZW4gLWxlZnQsIDAgZWxzZSAwLCBsZWZ0IGluXG4gIGxldCBjcHlsZW4gPSBJbnQubWluIChsZW5ndGggcyAtIHNyY29mZikgKGxlbiAtIGRzdG9mZikgaW5cbiAgaWYgY3B5bGVuID4gMCB0aGVuIHVuc2FmZV9ibGl0IHMgc3Jjb2ZmIHIgZHN0b2ZmIGNweWxlbjtcbiAgclxuXG5sZXQgZmlsbCBzIG9mcyBsZW4gYyA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggcyAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmZpbGwgLyBCeXRlcy5maWxsXCJcbiAgZWxzZSB1bnNhZmVfZmlsbCBzIG9mcyBsZW4gY1xuXG5sZXQgYmxpdCBzMSBvZnMxIHMyIG9mczIgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBvZnMxIDwgMCB8fCBvZnMxID4gbGVuZ3RoIHMxIC0gbGVuXG4gICAgICAgICAgICAgfHwgb2ZzMiA8IDAgfHwgb2ZzMiA+IGxlbmd0aCBzMiAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiQnl0ZXMuYmxpdFwiXG4gIGVsc2UgdW5zYWZlX2JsaXQgczEgb2ZzMSBzMiBvZnMyIGxlblxuXG5sZXQgYmxpdF9zdHJpbmcgczEgb2ZzMSBzMiBvZnMyIGxlbiA9XG4gIGlmIGxlbiA8IDAgfHwgb2ZzMSA8IDAgfHwgb2ZzMSA+IHN0cmluZ19sZW5ndGggczEgLSBsZW5cbiAgICAgICAgICAgICB8fCBvZnMyIDwgMCB8fCBvZnMyID4gbGVuZ3RoIHMyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuYmxpdCAvIEJ5dGVzLmJsaXRfc3RyaW5nXCJcbiAgZWxzZSB1bnNhZmVfYmxpdF9zdHJpbmcgczEgb2ZzMSBzMiBvZnMyIGxlblxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGl0ZXIgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaXRlcmkgZiBhID1cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmIGkgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbmxldCBlbnN1cmVfZ2UgKHg6aW50KSB5ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIGludmFsaWRfYXJnIFwiQnl0ZXMuY29uY2F0XCJcblxubGV0IHJlYyBzdW1fbGVuZ3RocyBhY2Mgc2VwbGVuID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBhY2NcbiAgfCBoZCA6OiBbXSAtPiBsZW5ndGggaGQgKyBhY2NcbiAgfCBoZCA6OiB0bCAtPiBzdW1fbGVuZ3RocyAoZW5zdXJlX2dlIChsZW5ndGggaGQgKyBzZXBsZW4gKyBhY2MpIGFjYykgc2VwbGVuIHRsXG5cbmxldCByZWMgdW5zYWZlX2JsaXRzIGRzdCBwb3Mgc2VwIHNlcGxlbiA9IGZ1bmN0aW9uXG4gICAgW10gLT4gZHN0XG4gIHwgaGQgOjogW10gLT5cbiAgICB1bnNhZmVfYmxpdCBoZCAwIGRzdCBwb3MgKGxlbmd0aCBoZCk7IGRzdFxuICB8IGhkIDo6IHRsIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpO1xuICAgIHVuc2FmZV9ibGl0IHNlcCAwIGRzdCAocG9zICsgbGVuZ3RoIGhkKSBzZXBsZW47XG4gICAgdW5zYWZlX2JsaXRzIGRzdCAocG9zICsgbGVuZ3RoIGhkICsgc2VwbGVuKSBzZXAgc2VwbGVuIHRsXG5cbmxldCBjb25jYXQgc2VwID0gZnVuY3Rpb25cbiAgICBbXSAtPiBlbXB0eVxuICB8IGwgLT4gbGV0IHNlcGxlbiA9IGxlbmd0aCBzZXAgaW5cbiAgICAgICAgICB1bnNhZmVfYmxpdHNcbiAgICAgICAgICAgIChjcmVhdGUgKHN1bV9sZW5ndGhzIDAgc2VwbGVuIGwpKVxuICAgICAgICAgICAgMCBzZXAgc2VwbGVuIGxcblxubGV0IGNhdCBzMSBzMiA9XG4gIGxldCBsMSA9IGxlbmd0aCBzMSBpblxuICBsZXQgbDIgPSBsZW5ndGggczIgaW5cbiAgbGV0IHIgPSBjcmVhdGUgKGwxICsgbDIpIGluXG4gIHVuc2FmZV9ibGl0IHMxIDAgciAwIGwxO1xuICB1bnNhZmVfYmxpdCBzMiAwIHIgbDEgbDI7XG4gIHJcblxuXG5leHRlcm5hbCBjaGFyX2NvZGU6IGNoYXIgLT4gaW50ID0gXCIlaWRlbnRpdHlcIlxuZXh0ZXJuYWwgY2hhcl9jaHI6IGludCAtPiBjaGFyID0gXCIlaWRlbnRpdHlcIlxuXG5sZXQgaXNfc3BhY2UgPSBmdW5jdGlvblxuICB8ICcgJyB8ICdcXDAxMicgfCAnXFxuJyB8ICdcXHInIHwgJ1xcdCcgLT4gdHJ1ZVxuICB8IF8gLT4gZmFsc2VcblxubGV0IHRyaW0gcyA9XG4gIGxldCBsZW4gPSBsZW5ndGggcyBpblxuICBsZXQgaSA9IHJlZiAwIGluXG4gIHdoaWxlICFpIDwgbGVuICYmIGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgIWkpIGRvXG4gICAgaW5jciBpXG4gIGRvbmU7XG4gIGxldCBqID0gcmVmIChsZW4gLSAxKSBpblxuICB3aGlsZSAhaiA+PSAhaSAmJiBpc19zcGFjZSAodW5zYWZlX2dldCBzICFqKSBkb1xuICAgIGRlY3IgalxuICBkb25lO1xuICBpZiAhaiA+PSAhaSB0aGVuXG4gICAgc3ViIHMgIWkgKCFqIC0gIWkgKyAxKVxuICBlbHNlXG4gICAgZW1wdHlcblxubGV0IGVzY2FwZWQgcyA9XG4gIGxldCBuID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkb1xuICAgIG4gOj0gIW4gK1xuICAgICAgKG1hdGNoIHVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgICB8ICdcXFwiJyB8ICdcXFxcJyB8ICdcXG4nIHwgJ1xcdCcgfCAnXFxyJyB8ICdcXGInIC0+IDJcbiAgICAgICB8ICcgJyAuLiAnficgLT4gMVxuICAgICAgIHwgXyAtPiA0KVxuICBkb25lO1xuICBpZiAhbiA9IGxlbmd0aCBzIHRoZW4gY29weSBzIGVsc2UgYmVnaW5cbiAgICBsZXQgcycgPSBjcmVhdGUgIW4gaW5cbiAgICBuIDo9IDA7XG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBzIC0gMSBkb1xuICAgICAgYmVnaW4gbWF0Y2ggdW5zYWZlX2dldCBzIGkgd2l0aFxuICAgICAgfCAoJ1xcXCInIHwgJ1xcXFwnKSBhcyBjIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiBjXG4gICAgICB8ICdcXG4nIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAnbidcbiAgICAgIHwgJ1xcdCcgLT5cbiAgICAgICAgICB1bnNhZmVfc2V0IHMnICFuICdcXFxcJzsgaW5jciBuOyB1bnNhZmVfc2V0IHMnICFuICd0J1xuICAgICAgfCAnXFxyJyAtPlxuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gJ1xcXFwnOyBpbmNyIG47IHVuc2FmZV9zZXQgcycgIW4gJ3InXG4gICAgICB8ICdcXGInIC0+XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7IGluY3IgbjsgdW5zYWZlX3NldCBzJyAhbiAnYidcbiAgICAgIHwgKCcgJyAuLiAnficpIGFzIGMgLT4gdW5zYWZlX3NldCBzJyAhbiBjXG4gICAgICB8IGMgLT5cbiAgICAgICAgICBsZXQgYSA9IGNoYXJfY29kZSBjIGluXG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAnXFxcXCc7XG4gICAgICAgICAgaW5jciBuO1xuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gKGNoYXJfY2hyICg0OCArIGEgLyAxMDApKTtcbiAgICAgICAgICBpbmNyIG47XG4gICAgICAgICAgdW5zYWZlX3NldCBzJyAhbiAoY2hhcl9jaHIgKDQ4ICsgKGEgLyAxMCkgbW9kIDEwKSk7XG4gICAgICAgICAgaW5jciBuO1xuICAgICAgICAgIHVuc2FmZV9zZXQgcycgIW4gKGNoYXJfY2hyICg0OCArIGEgbW9kIDEwKSk7XG4gICAgICBlbmQ7XG4gICAgICBpbmNyIG5cbiAgICBkb25lO1xuICAgIHMnXG4gIGVuZFxuXG5sZXQgbWFwIGYgcyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgbCA9IDAgdGhlbiBzIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGNyZWF0ZSBsIGluXG4gICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IHMgaSkpIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IG1hcGkgZiBzID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBsID0gMCB0aGVuIHMgZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG8gdW5zYWZlX3NldCByIGkgKGYgaSAodW5zYWZlX2dldCBzIGkpKSBkb25lO1xuICAgIHJcbiAgZW5kXG5cbmxldCBmb2xkX2xlZnQgZiB4IGEgPVxuICBsZXQgciA9IHJlZiB4IGluXG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICByIDo9IGYgIXIgKHVuc2FmZV9nZXQgYSBpKVxuICBkb25lO1xuICAhclxuXG5sZXQgZm9sZF9yaWdodCBmIGEgeCA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSBsZW5ndGggYSAtIDEgZG93bnRvIDAgZG9cbiAgICByIDo9IGYgKHVuc2FmZV9nZXQgYSBpKSAhclxuICBkb25lO1xuICAhclxuXG5sZXQgZXhpc3RzIHAgcyA9XG4gIGxldCBuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgcyBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBmb3JfYWxsIHAgcyA9XG4gIGxldCBuID0gbGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBzIGkpIHRoZW4gbG9vcCAoc3VjYyBpKVxuICAgIGVsc2UgZmFsc2UgaW5cbiAgbG9vcCAwXG5cbmxldCB1cHBlcmNhc2VfYXNjaWkgcyA9IG1hcCBDaGFyLnVwcGVyY2FzZV9hc2NpaSBzXG5sZXQgbG93ZXJjYXNlX2FzY2lpIHMgPSBtYXAgQ2hhci5sb3dlcmNhc2VfYXNjaWkgc1xuXG5sZXQgYXBwbHkxIGYgcyA9XG4gIGlmIGxlbmd0aCBzID0gMCB0aGVuIHMgZWxzZSBiZWdpblxuICAgIGxldCByID0gY29weSBzIGluXG4gICAgdW5zYWZlX3NldCByIDAgKGYodW5zYWZlX2dldCBzIDApKTtcbiAgICByXG4gIGVuZFxuXG5sZXQgY2FwaXRhbGl6ZV9hc2NpaSBzID0gYXBwbHkxIENoYXIudXBwZXJjYXNlX2FzY2lpIHNcbmxldCB1bmNhcGl0YWxpemVfYXNjaWkgcyA9IGFwcGx5MSBDaGFyLmxvd2VyY2FzZV9hc2NpaSBzXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgc3RhcnRzX3dpdGggfnByZWZpeCBzID1cbiAgbGV0IGxlbl9zID0gbGVuZ3RoIHNcbiAgYW5kIGxlbl9wcmUgPSBsZW5ndGggcHJlZml4IGluXG4gIGxldCByZWMgYXV4IGkgPVxuICAgIGlmIGkgPSBsZW5fcHJlIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgdW5zYWZlX2dldCBzIGkgPD4gdW5zYWZlX2dldCBwcmVmaXggaSB0aGVuIGZhbHNlXG4gICAgZWxzZSBhdXggKGkgKyAxKVxuICBpbiBsZW5fcyA+PSBsZW5fcHJlICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgZW5kc193aXRoIH5zdWZmaXggcyA9XG4gIGxldCBsZW5fcyA9IGxlbmd0aCBzXG4gIGFuZCBsZW5fc3VmID0gbGVuZ3RoIHN1ZmZpeCBpblxuICBsZXQgZGlmZiA9IGxlbl9zIC0gbGVuX3N1ZiBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBpZiBpID0gbGVuX3N1ZiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHVuc2FmZV9nZXQgcyAoZGlmZiArIGkpIDw+IHVuc2FmZV9nZXQgc3VmZml4IGkgdGhlbiBmYWxzZVxuICAgIGVsc2UgYXV4IChpICsgMSlcbiAgaW4gZGlmZiA+PSAwICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmVjIGluZGV4X3JlYyBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSBpbmRleF9yZWMgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgaW5kZXggcyBjID0gaW5kZXhfcmVjIHMgKGxlbmd0aCBzKSAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgaW5kZXhfcmVjX29wdCBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSBpbmRleF9yZWNfb3B0IHMgbGltIChpICsgMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4X29wdCBzIGMgPSBpbmRleF9yZWNfb3B0IHMgKGxlbmd0aCBzKSAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCBpbmRleF9mcm9tIHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuIGludmFsaWRfYXJnIFwiU3RyaW5nLmluZGV4X2Zyb20gLyBCeXRlcy5pbmRleF9mcm9tXCIgZWxzZVxuICBpbmRleF9yZWMgcyBsIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IGluZGV4X2Zyb21fb3B0IHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5pbmRleF9mcm9tX29wdFwiXG4gIGVsc2VcbiAgICBpbmRleF9yZWNfb3B0IHMgbCBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgcmluZGV4X3JlYyBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gcmFpc2UgTm90X2ZvdW5kIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gaSBlbHNlIHJpbmRleF9yZWMgcyAoaSAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXggcyBjID0gcmluZGV4X3JlYyBzIChsZW5ndGggcyAtIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbSAvIEJ5dGVzLnJpbmRleF9mcm9tXCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWMgcyBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcbmxldCByZWMgcmluZGV4X3JlY19vcHQgcyBpIGMgPVxuICBpZiBpIDwgMCB0aGVuIE5vbmUgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBTb21lIGkgZWxzZSByaW5kZXhfcmVjX29wdCBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJpbmRleF9vcHQgcyBjID0gcmluZGV4X3JlY19vcHQgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgcmluZGV4X2Zyb21fb3B0IHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tX29wdCAvIEJ5dGVzLnJpbmRleF9mcm9tX29wdFwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjX29wdCBzIGkgY1xuXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmNvbnRhaW5zX2Zyb20gLyBCeXRlcy5jb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKGluZGV4X3JlYyBzIGwgaSBjKTsgdHJ1ZSB3aXRoIE5vdF9mb3VuZCAtPiBmYWxzZVxuXG5cbigqIGR1cGxpY2F0ZWQgaW4gc3RyaW5nLm1sICopXG5sZXQgY29udGFpbnMgcyBjID0gY29udGFpbnNfZnJvbSBzIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHJjb250YWluc19mcm9tIHMgaSBjID1cbiAgaWYgaSA8IDAgfHwgaSA+PSBsZW5ndGggcyB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcucmNvbnRhaW5zX2Zyb20gLyBCeXRlcy5yY29udGFpbnNfZnJvbVwiXG4gIGVsc2VcbiAgICB0cnkgaWdub3JlIChyaW5kZXhfcmVjIHMgaSBjKTsgdHJ1ZSB3aXRoIE5vdF9mb3VuZCAtPiBmYWxzZVxuXG5cbnR5cGUgdCA9IGJ5dGVzXG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmV4dGVybmFsIGVxdWFsIDogdCAtPiB0IC0+IGJvb2wgPSBcImNhbWxfYnl0ZXNfZXF1YWxcIiBbQEBub2FsbG9jXVxuXG4oKiBkdXBsaWNhdGVkIGluIHN0cmluZy5tbCAqKVxubGV0IHNwbGl0X29uX2NoYXIgc2VwIHMgPVxuICBsZXQgciA9IHJlZiBbXSBpblxuICBsZXQgaiA9IHJlZiAobGVuZ3RoIHMpIGluXG4gIGZvciBpID0gbGVuZ3RoIHMgLSAxIGRvd250byAwIGRvXG4gICAgaWYgdW5zYWZlX2dldCBzIGkgPSBzZXAgdGhlbiBiZWdpblxuICAgICAgciA6PSBzdWIgcyAoaSArIDEpICghaiAtIGkgLSAxKSA6OiAhcjtcbiAgICAgIGogOj0gaVxuICAgIGVuZFxuICBkb25lO1xuICBzdWIgcyAwICFqIDo6ICFyXG5cbigqIERlcHJlY2F0ZWQgZnVuY3Rpb25zIGltcGxlbWVudGVkIHZpYSBvdGhlciBkZXByZWNhdGVkIGZ1bmN0aW9ucyAqKVxuW0BAQG9jYW1sLndhcm5pbmcgXCItM1wiXVxubGV0IHVwcGVyY2FzZSBzID0gbWFwIENoYXIudXBwZXJjYXNlIHNcbmxldCBsb3dlcmNhc2UgcyA9IG1hcCBDaGFyLmxvd2VyY2FzZSBzXG5cbmxldCBjYXBpdGFsaXplIHMgPSBhcHBseTEgQ2hhci51cHBlcmNhc2Ugc1xubGV0IHVuY2FwaXRhbGl6ZSBzID0gYXBwbHkxIENoYXIubG93ZXJjYXNlIHNcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBzID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA9IGxlbmd0aCBzIHRoZW4gU2VxLk5pbFxuICAgIGVsc2VcbiAgICAgIGxldCB4ID0gZ2V0IHMgaSBpblxuICAgICAgU2VxLkNvbnMgKHgsIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IHRvX3NlcWkgcyA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPSBsZW5ndGggcyB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IGdldCBzIGkgaW5cbiAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgbiA9IHJlZiAwIGluXG4gIGxldCBidWYgPSByZWYgKG1ha2UgMjU2ICdcXDAwMCcpIGluXG4gIGxldCByZXNpemUgKCkgPVxuICAgICgqIHJlc2l6ZSAqKVxuICAgIGxldCBuZXdfbGVuID0gSW50Lm1pbiAoMiAqIGxlbmd0aCAhYnVmKSBTeXMubWF4X3N0cmluZ19sZW5ndGggaW5cbiAgICBpZiBsZW5ndGggIWJ1ZiA9IG5ld19sZW4gdGhlbiBmYWlsd2l0aCBcIkJ5dGVzLm9mX3NlcTogY2Fubm90IGdyb3cgYnl0ZXNcIjtcbiAgICBsZXQgbmV3X2J1ZiA9IG1ha2UgbmV3X2xlbiAnXFwwMDAnIGluXG4gICAgYmxpdCAhYnVmIDAgbmV3X2J1ZiAwICFuO1xuICAgIGJ1ZiA6PSBuZXdfYnVmXG4gIGluXG4gIFNlcS5pdGVyXG4gICAgKGZ1biBjIC0+XG4gICAgICAgaWYgIW4gPSBsZW5ndGggIWJ1ZiB0aGVuIHJlc2l6ZSgpO1xuICAgICAgIHNldCAhYnVmICFuIGM7XG4gICAgICAgaW5jciBuKVxuICAgIGk7XG4gIHN1YiAhYnVmIDAgIW5cblxuKCoqIHs2IEJpbmFyeSBlbmNvZGluZy9kZWNvZGluZyBvZiBpbnRlZ2Vyc30gKilcblxuKCogVGhlIGdldF8gZnVuY3Rpb25zIGFyZSBhbGwgZHVwbGljYXRlZCBpbiBzdHJpbmcubWwgKilcblxuZXh0ZXJuYWwgdW5zYWZlX2dldF91aW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVieXRlc191bnNhZmVfZ2V0XCJcbmV4dGVybmFsIHVuc2FmZV9nZXRfdWludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWNhbWxfYnl0ZXNfZ2V0MTZ1XCJcbmV4dGVybmFsIGdldF91aW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgPSBcIiVieXRlc19zYWZlX2dldFwiXG5leHRlcm5hbCBnZXRfdWludDE2X25lIDogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiJWNhbWxfYnl0ZXNfZ2V0MTZcIlxuZXh0ZXJuYWwgZ2V0X2ludDMyX25lIDogYnl0ZXMgLT4gaW50IC0+IGludDMyID0gXCIlY2FtbF9ieXRlc19nZXQzMlwiXG5leHRlcm5hbCBnZXRfaW50NjRfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50NjQgPSBcIiVjYW1sX2J5dGVzX2dldDY0XCJcblxuZXh0ZXJuYWwgdW5zYWZlX3NldF91aW50OCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gdW5pdCA9IFwiJWJ5dGVzX3Vuc2FmZV9zZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldF91aW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gXCIlY2FtbF9ieXRlc19zZXQxNnVcIlxuZXh0ZXJuYWwgc2V0X2ludDggOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVieXRlc19zYWZlX3NldFwiXG5leHRlcm5hbCBzZXRfaW50MTZfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcIiVjYW1sX2J5dGVzX3NldDE2XCJcbmV4dGVybmFsIHNldF9pbnQzMl9uZSA6IGJ5dGVzIC0+IGludCAtPiBpbnQzMiAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQzMlwiXG5leHRlcm5hbCBzZXRfaW50NjRfbmUgOiBieXRlcyAtPiBpbnQgLT4gaW50NjQgLT4gdW5pdCA9IFwiJWNhbWxfYnl0ZXNfc2V0NjRcIlxuZXh0ZXJuYWwgc3dhcDE2IDogaW50IC0+IGludCA9IFwiJWJzd2FwMTZcIlxuZXh0ZXJuYWwgc3dhcDMyIDogaW50MzIgLT4gaW50MzIgPSBcIiVic3dhcF9pbnQzMlwiXG5leHRlcm5hbCBzd2FwNjQgOiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWJzd2FwX2ludDY0XCJcblxubGV0IHVuc2FmZV9nZXRfdWludDE2X2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gc3dhcDE2ICh1bnNhZmVfZ2V0X3VpbnQxNl9uZSBiIGkpXG4gIGVsc2UgdW5zYWZlX2dldF91aW50MTZfbmUgYiBpXG5cbmxldCB1bnNhZmVfZ2V0X3VpbnQxNl9iZSBiIGkgPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHVuc2FmZV9nZXRfdWludDE2X25lIGIgaVxuICBlbHNlIHN3YXAxNiAodW5zYWZlX2dldF91aW50MTZfbmUgYiBpKVxuXG5sZXQgZ2V0X2ludDggYiBpID1cbiAgKChnZXRfdWludDggYiBpKSBsc2wgKFN5cy5pbnRfc2l6ZSAtIDgpKSBhc3IgKFN5cy5pbnRfc2l6ZSAtIDgpXG5cbmxldCBnZXRfdWludDE2X2xlIGIgaSA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDE2IChnZXRfdWludDE2X25lIGIgaSlcbiAgZWxzZSBnZXRfdWludDE2X25lIGIgaVxuXG5sZXQgZ2V0X3VpbnQxNl9iZSBiIGkgPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgKGdldF91aW50MTZfbmUgYiBpKVxuICBlbHNlIGdldF91aW50MTZfbmUgYiBpXG5cbmxldCBnZXRfaW50MTZfbmUgYiBpID1cbiAgKChnZXRfdWludDE2X25lIGIgaSkgbHNsIChTeXMuaW50X3NpemUgLSAxNikpIGFzciAoU3lzLmludF9zaXplIC0gMTYpXG5cbmxldCBnZXRfaW50MTZfbGUgYiBpID1cbiAgKChnZXRfdWludDE2X2xlIGIgaSkgbHNsIChTeXMuaW50X3NpemUgLSAxNikpIGFzciAoU3lzLmludF9zaXplIC0gMTYpXG5cbmxldCBnZXRfaW50MTZfYmUgYiBpID1cbiAgKChnZXRfdWludDE2X2JlIGIgaSkgbHNsIChTeXMuaW50X3NpemUgLSAxNikpIGFzciAoU3lzLmludF9zaXplIC0gMTYpXG5cbmxldCBnZXRfaW50MzJfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMzIgKGdldF9pbnQzMl9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDMyX25lIGIgaVxuXG5sZXQgZ2V0X2ludDMyX2JlIGIgaSA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiAoZ2V0X2ludDMyX25lIGIgaSlcbiAgZWxzZSBnZXRfaW50MzJfbmUgYiBpXG5cbmxldCBnZXRfaW50NjRfbGUgYiBpID1cbiAgaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwNjQgKGdldF9pbnQ2NF9uZSBiIGkpXG4gIGVsc2UgZ2V0X2ludDY0X25lIGIgaVxuXG5sZXQgZ2V0X2ludDY0X2JlIGIgaSA9XG4gIGlmIG5vdCBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXA2NCAoZ2V0X2ludDY0X25lIGIgaSlcbiAgZWxzZSBnZXRfaW50NjRfbmUgYiBpXG5cbmxldCB1bnNhZmVfc2V0X3VpbnQxNl9sZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuXG4gIHRoZW4gdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIChzd2FwMTYgeClcbiAgZWxzZSB1bnNhZmVfc2V0X3VpbnQxNl9uZSBiIGkgeFxuXG5sZXQgdW5zYWZlX3NldF91aW50MTZfYmUgYiBpIHggPVxuICBpZiBTeXMuYmlnX2VuZGlhblxuICB0aGVuIHVuc2FmZV9zZXRfdWludDE2X25lIGIgaSB4IGVsc2VcbiAgdW5zYWZlX3NldF91aW50MTZfbmUgYiBpIChzd2FwMTYgeClcblxubGV0IHNldF9pbnQxNl9sZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDE2X25lIGIgaSAoc3dhcDE2IHgpXG4gIGVsc2Ugc2V0X2ludDE2X25lIGIgaSB4XG5cbmxldCBzZXRfaW50MTZfYmUgYiBpIHggPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MTZfbmUgYiBpIChzd2FwMTYgeClcbiAgZWxzZSBzZXRfaW50MTZfbmUgYiBpIHhcblxubGV0IHNldF9pbnQzMl9sZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDMyX25lIGIgaSAoc3dhcDMyIHgpXG4gIGVsc2Ugc2V0X2ludDMyX25lIGIgaSB4XG5cbmxldCBzZXRfaW50MzJfYmUgYiBpIHggPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50MzJfbmUgYiBpIChzd2FwMzIgeClcbiAgZWxzZSBzZXRfaW50MzJfbmUgYiBpIHhcblxubGV0IHNldF9pbnQ2NF9sZSBiIGkgeCA9XG4gIGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc2V0X2ludDY0X25lIGIgaSAoc3dhcDY0IHgpXG4gIGVsc2Ugc2V0X2ludDY0X25lIGIgaSB4XG5cbmxldCBzZXRfaW50NjRfYmUgYiBpIHggPVxuICBpZiBub3QgU3lzLmJpZ19lbmRpYW4gdGhlbiBzZXRfaW50NjRfbmUgYiBpIChzd2FwNjQgeClcbiAgZWxzZSBzZXRfaW50NjRfbmUgYiBpIHhcblxubGV0IHNldF91aW50OCA9IHNldF9pbnQ4XG5sZXQgc2V0X3VpbnQxNl9uZSA9IHNldF9pbnQxNl9uZVxubGV0IHNldF91aW50MTZfYmUgPSBzZXRfaW50MTZfYmVcbmxldCBzZXRfdWludDE2X2xlID0gc2V0X2ludDE2X2xlXG5cbigqIFVURiBjb2RlY3MgYW5kIHZhbGlkYXRpb25zICopXG5cbmxldCBkZWNfaW52YWxpZCA9IFVjaGFyLnV0Zl9kZWNvZGVfaW52YWxpZFxubGV0W0BpbmxpbmVdIGRlY19yZXQgbiB1ID0gVWNoYXIudXRmX2RlY29kZSBuIChVY2hhci51bnNhZmVfb2ZfaW50IHUpXG5cbigqIEluIGNhc2Ugb2YgZGVjb2RpbmcgZXJyb3IsIGlmIHdlIGVycm9yIG9uIHRoZSBmaXJzdCBieXRlLCB3ZVxuICAgY29uc3VtZSB0aGUgYnl0ZSwgb3RoZXJ3aXNlIHdlIGNvbnN1bWUgdGhlIFtuXSBieXRlcyBwcmVjZWVkaW5nXG4gICB0aGUgZXJyb3JpbmcgYnl0ZS5cblxuICAgVGhpcyBtZWFucyB0aGF0IGlmIGEgY2xpZW50IHVzZXMgZGVjb2RlcyB3aXRob3V0IGNhcmluZyBhYm91dFxuICAgdmFsaWRpdHkgaXQgbmF0dXJhbGx5IHJlcGxhY2UgYm9ndXMgZGF0YSB3aXRoIFVjaGFyLnJlcCBhY2NvcmRpbmdcbiAgIHRvIHRoZSBXSEFUV0cgRW5jb2Rpbmcgc3RhbmRhcmQuIE90aGVyIHNjaGVtZXMgYXJlIHBvc3NpYmxlIGJ5XG4gICBjb25zdWx0aW5nIHRoZSBudW1iZXIgb2YgdXNlZCBieXRlcyBvbiBpbnZhbGlkIGRlY29kZXMuIEZvciBtb3JlXG4gICBkZXRhaWxzIHNlZSBodHRwczovL2hzaXZvbmVuLmZpL2Jyb2tlbi11dGYtOC9cblxuICAgRm9yIHRoaXMgcmVhc29uIGluIFtnZXRfdXRmXzhfdWNoYXJdIHdlIGdyYWR1YWxseSBjaGVjayB0aGUgbmV4dFxuICAgYnl0ZSBpcyBhdmFpbGFibGUgcmF0aGVyIHRoYW4gZG9pbmcgaXQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlXG4gICBmaXJzdCBieXRlLiBDb250cmFzdCB3aXRoIFtpc192YWxpZF91dGZfOF0uICopXG5cbigqIFVURi04ICopXG5cbmxldFtAaW5saW5lXSBub3RfaW5feDgwX3RvX3hCRiBiID0gYiBsc3IgNiA8PiAwYjEwXG5sZXRbQGlubGluZV0gbm90X2luX3hBMF90b194QkYgYiA9IGIgbHNyIDUgPD4gMGIxMDFcbmxldFtAaW5saW5lXSBub3RfaW5feDgwX3RvX3g5RiBiID0gYiBsc3IgNSA8PiAwYjEwMFxubGV0W0BpbmxpbmVdIG5vdF9pbl94OTBfdG9feEJGIGIgPSBiIDwgMHg5MCB8fCAweEJGIDwgYlxubGV0W0BpbmxpbmVdIG5vdF9pbl94ODBfdG9feDhGIGIgPSBiIGxzciA0IDw+IDB4OFxuXG5sZXRbQGlubGluZV0gdXRmXzhfdWNoYXJfMiBiMCBiMSA9XG4gICgoYjAgbGFuZCAweDFGKSBsc2wgNikgbG9yXG4gICgoYjEgbGFuZCAweDNGKSlcblxubGV0W0BpbmxpbmVdIHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIgPVxuICAoKGIwIGxhbmQgMHgwRikgbHNsIDEyKSBsb3JcbiAgKChiMSBsYW5kIDB4M0YpIGxzbCA2KSBsb3JcbiAgKChiMiBsYW5kIDB4M0YpKVxuXG5sZXRbQGlubGluZV0gdXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMyA9XG4gICgoYjAgbGFuZCAweDA3KSBsc2wgMTgpIGxvclxuICAoKGIxIGxhbmQgMHgzRikgbHNsIDEyKSBsb3JcbiAgKChiMiBsYW5kIDB4M0YpIGxzbCA2KSBsb3JcbiAgKChiMyBsYW5kIDB4M0YpKVxuXG5sZXQgZ2V0X3V0Zl84X3VjaGFyIGIgaSA9XG4gIGxldCBiMCA9IGdldF91aW50OCBiIGkgaW4gKCogcmFpc2VzIGlmIFtpXSBpcyBub3QgYSB2YWxpZCBpbmRleC4gKilcbiAgbGV0IGdldCA9IHVuc2FmZV9nZXRfdWludDggaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBtYXRjaCBDaGFyLnVuc2FmZV9jaHIgYjAgd2l0aCAoKiBTZWUgVGhlIFVuaWNvZGUgU3RhbmRhcmQsIFRhYmxlIDMuNyAqKVxuICB8ICdcXHgwMCcgLi4gJ1xceDdGJyAtPiBkZWNfcmV0IDEgYjBcbiAgfCAnXFx4QzInIC4uICdcXHhERicgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgZGVjX3JldCAyICh1dGZfOF91Y2hhcl8yIGIwIGIxKVxuICB8ICdcXHhFMCcgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feEEwX3RvX3hCRiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBkZWNfcmV0IDMgKHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIpXG4gIHwgJ1xceEUxJyAuLiAnXFx4RUMnIHwgJ1xceEVFJyAuLiAnXFx4RUYnIC0+XG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBiMSA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjEgdGhlbiBkZWNfaW52YWxpZCAxIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgbGV0IGIyID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMiB0aGVuIGRlY19pbnZhbGlkIDIgZWxzZVxuICAgICAgZGVjX3JldCAzICh1dGZfOF91Y2hhcl8zIGIwIGIxIGIyKVxuICB8ICdcXHhFRCcgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3g5RiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBkZWNfcmV0IDMgKHV0Zl84X3VjaGFyXzMgYjAgYjEgYjIpXG4gIHwgJ1xceEYwJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94OTBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgbGV0IGIzID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMyB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgZGVjX3JldCA0ICh1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzKVxuICB8ICdcXHhGMScgLi4gJ1xceEYzJyAtPlxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgYjEgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIxIHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBiMiA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjIgdGhlbiBkZWNfaW52YWxpZCAyIGVsc2VcbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgbGV0IGIzID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3hCRiBiMyB0aGVuIGRlY19pbnZhbGlkIDMgZWxzZVxuICAgICAgZGVjX3JldCA0ICh1dGZfOF91Y2hhcl80IGIwIGIxIGIyIGIzKVxuICB8ICdcXHhGNCcgLT5cbiAgICAgIGxldCBpID0gaSArIDEgaW4gaWYgaSA+IG1heCB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGIxID0gZ2V0IGIgaSBpbiBpZiBub3RfaW5feDgwX3RvX3g4RiBiMSB0aGVuIGRlY19pbnZhbGlkIDEgZWxzZVxuICAgICAgbGV0IGkgPSBpICsgMSBpbiBpZiBpID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgYjIgPSBnZXQgYiBpIGluIGlmIG5vdF9pbl94ODBfdG9feEJGIGIyIHRoZW4gZGVjX2ludmFsaWQgMiBlbHNlXG4gICAgICBsZXQgaSA9IGkgKyAxIGluIGlmIGkgPiBtYXggdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGxldCBiMyA9IGdldCBiIGkgaW4gaWYgbm90X2luX3g4MF90b194QkYgYjMgdGhlbiBkZWNfaW52YWxpZCAzIGVsc2VcbiAgICAgIGRlY19yZXQgNCAodXRmXzhfdWNoYXJfNCBiMCBiMSBiMiBiMylcbiAgfCBfIC0+IGRlY19pbnZhbGlkIDFcblxubGV0IHNldF91dGZfOF91Y2hhciBiIGkgdSA9XG4gIGxldCBzZXQgPSB1bnNhZmVfc2V0X3VpbnQ4IGluXG4gIGxldCBtYXggPSBsZW5ndGggYiAtIDEgaW5cbiAgbWF0Y2ggVWNoYXIudG9faW50IHUgd2l0aFxuICB8IHUgd2hlbiB1IDwgMCAtPiBhc3NlcnQgZmFsc2VcbiAgfCB1IHdoZW4gdSA8PSAweDAwN0YgLT5cbiAgICAgIHNldF91aW50OCBiIGkgdTtcbiAgICAgIDFcbiAgfCB1IHdoZW4gdSA8PSAweDA3RkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIChzZXRfdWludDggYiBpICgweEMwIGxvciAodSBsc3IgNikpO1xuICAgICAgIHNldCBiIGxhc3QgKDB4ODAgbG9yICh1IGxhbmQgMHgzRikpO1xuICAgICAgIDIpXG4gIHwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICAoc2V0X3VpbnQ4IGIgaSAoMHhFMCBsb3IgKHUgbHNyIDEyKSk7XG4gICAgICAgc2V0IGIgKGkgKyAxKSAoMHg4MCBsb3IgKCh1IGxzciA2KSBsYW5kIDB4M0YpKTtcbiAgICAgICBzZXQgYiBsYXN0ICgweDgwIGxvciAodSBsYW5kIDB4M0YpKTtcbiAgICAgICAzKVxuICB8IHUgd2hlbiB1IDw9IDB4MTBGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlXG4gICAgICAoc2V0X3VpbnQ4IGIgaSAoMHhGMCBsb3IgKHUgbHNyIDE4KSk7XG4gICAgICAgc2V0IGIgKGkgKyAxKSAoMHg4MCBsb3IgKCh1IGxzciAxMikgbGFuZCAweDNGKSk7XG4gICAgICAgc2V0IGIgKGkgKyAyKSAoMHg4MCBsb3IgKCh1IGxzciA2KSBsYW5kIDB4M0YpKTtcbiAgICAgICBzZXQgYiBsYXN0ICgweDgwIGxvciAodSBsYW5kIDB4M0YpKTtcbiAgICAgICA0KVxuICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbmxldCBpc192YWxpZF91dGZfOCBiID1cbiAgbGV0IHJlYyBsb29wIG1heCBiIGkgPVxuICAgIGlmIGkgPiBtYXggdGhlbiB0cnVlIGVsc2VcbiAgICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50OCBpblxuICAgIG1hdGNoIENoYXIudW5zYWZlX2NociAoZ2V0IGIgaSkgd2l0aFxuICAgIHwgJ1xceDAwJyAuLiAnXFx4N0YnIC0+IGxvb3AgbWF4IGIgKGkgKyAxKVxuICAgIHwgJ1xceEMyJyAuLiAnXFx4REYnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDEgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEUwJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3hBMF90b194QkYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RTEnIC4uICdcXHhFQycgfCAnXFx4RUUnIC4uICdcXHhFRicgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMiBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgbGFzdClcbiAgICAgICAgdGhlbiBmYWxzZVxuICAgICAgICBlbHNlIGxvb3AgbWF4IGIgKGxhc3QgKyAxKVxuICAgIHwgJ1xceEVEJyAtPlxuICAgICAgICBsZXQgbGFzdCA9IGkgKyAyIGluXG4gICAgICAgIGlmIGxhc3QgPiBtYXhcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194OUYgKGdldCBiIChpICsgMSkpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RjAnIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heFxuICAgICAgICB8fCBub3RfaW5feDkwX3RvX3hCRiAoZ2V0IGIgKGkgKyAxKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIChpICsgMikpXG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiBsYXN0KVxuICAgICAgICB0aGVuIGZhbHNlXG4gICAgICAgIGVsc2UgbG9vcCBtYXggYiAobGFzdCArIDEpXG4gICAgfCAnXFx4RjEnIC4uICdcXHhGMycgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feEJGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAyKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8ICdcXHhGNCcgLT5cbiAgICAgICAgbGV0IGxhc3QgPSBpICsgMyBpblxuICAgICAgICBpZiBsYXN0ID4gbWF4XG4gICAgICAgIHx8IG5vdF9pbl94ODBfdG9feDhGIChnZXQgYiAoaSArIDEpKVxuICAgICAgICB8fCBub3RfaW5feDgwX3RvX3hCRiAoZ2V0IGIgKGkgKyAyKSlcbiAgICAgICAgfHwgbm90X2luX3g4MF90b194QkYgKGdldCBiIGxhc3QpXG4gICAgICAgIHRoZW4gZmFsc2VcbiAgICAgICAgZWxzZSBsb29wIG1heCBiIChsYXN0ICsgMSlcbiAgICB8IF8gLT4gZmFsc2VcbiAgaW5cbiAgbG9vcCAobGVuZ3RoIGIgLSAxKSBiIDBcblxuKCogVVRGLTE2QkUgKilcblxubGV0IGdldF91dGZfMTZiZV91Y2hhciBiIGkgPVxuICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50MTZfYmUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBpZiBpID0gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gIG1hdGNoIGdldCBiIGkgd2l0aFxuICB8IHUgd2hlbiB1IDwgMHhEODAwIHx8IHUgPiAweERGRkYgLT4gZGVjX3JldCAyIHVcbiAgfCB1IHdoZW4gdSA+IDB4REJGRiAtPiBkZWNfaW52YWxpZCAyXG4gIHwgaGkgLT4gKCogY29tYmluZSBbaGldIHdpdGggYSBsb3cgc3Vycm9nYXRlICopXG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgKG1heCAtIGkgKyAxKSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgIHwgdSB3aGVuIHUgPCAweERDMDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfaW52YWxpZCAyICgqIHJldHJ5IGhlcmUgKilcbiAgICAgIHwgbG8gLT5cbiAgICAgICAgICBsZXQgdSA9ICgoKGhpIGxhbmQgMHgzRkYpIGxzbCAxMCkgbG9yIChsbyBsYW5kIDB4M0ZGKSkgKyAweDEwMDAwIGluXG4gICAgICAgICAgZGVjX3JldCA0IHVcblxubGV0IHNldF91dGZfMTZiZV91Y2hhciBiIGkgdSA9XG4gIGxldCBzZXQgPSB1bnNhZmVfc2V0X3VpbnQxNl9iZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIG1hdGNoIFVjaGFyLnRvX2ludCB1IHdpdGhcbiAgfCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlIChzZXQgYiBpIHU7IDIpXG4gIHwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIGxldCB1JyA9IHUgLSAweDEwMDAwIGluXG4gICAgICBsZXQgaGkgPSAoMHhEODAwIGxvciAodScgbHNyIDEwKSkgaW5cbiAgICAgIGxldCBsbyA9ICgweERDMDAgbG9yICh1JyBsYW5kIDB4M0ZGKSkgaW5cbiAgICAgIHNldCBiIGkgaGk7IHNldCBiIChpICsgMikgbG87IDRcbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgaXNfdmFsaWRfdXRmXzE2YmUgYiA9XG4gIGxldCByZWMgbG9vcCBtYXggYiBpID1cbiAgICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50MTZfYmUgaW5cbiAgICBpZiBpID4gbWF4IHRoZW4gdHJ1ZSBlbHNlXG4gICAgaWYgaSA9IG1heCB0aGVuIGZhbHNlIGVsc2VcbiAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICB8IHUgd2hlbiB1IDwgMHhEODAwIHx8IHUgPiAweERGRkYgLT4gbG9vcCBtYXggYiAoaSArIDIpXG4gICAgfCB1IHdoZW4gdSA+IDB4REJGRiAtPiBmYWxzZVxuICAgIHwgX2hpIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGZhbHNlIGVsc2VcbiAgICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICAgIHwgdSB3aGVuIHUgPCAweERDMDAgfHwgdSA+IDB4REZGRiAtPiBmYWxzZVxuICAgICAgICB8IF9sbyAtPiBsb29wIG1heCBiIChpICsgNClcbiAgaW5cbiAgbG9vcCAobGVuZ3RoIGIgLSAxKSBiIDBcblxuKCogVVRGLTE2TEUgKilcblxubGV0IGdldF91dGZfMTZsZV91Y2hhciBiIGkgPVxuICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50MTZfbGUgaW5cbiAgbGV0IG1heCA9IGxlbmd0aCBiIC0gMSBpblxuICBpZiBpIDwgMCB8fCBpID4gbWF4IHRoZW4gaW52YWxpZF9hcmcgXCJpbmRleCBvdXQgb2YgYm91bmRzXCIgZWxzZVxuICBpZiBpID0gbWF4IHRoZW4gZGVjX2ludmFsaWQgMSBlbHNlXG4gIG1hdGNoIGdldCBiIGkgd2l0aFxuICB8IHUgd2hlbiB1IDwgMHhEODAwIHx8IHUgPiAweERGRkYgLT4gZGVjX3JldCAyIHVcbiAgfCB1IHdoZW4gdSA+IDB4REJGRiAtPiBkZWNfaW52YWxpZCAyXG4gIHwgaGkgLT4gKCogY29tYmluZSBbaGldIHdpdGggYSBsb3cgc3Vycm9nYXRlICopXG4gICAgICBsZXQgbGFzdCA9IGkgKyAzIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gZGVjX2ludmFsaWQgKG1heCAtIGkgKyAxKSBlbHNlXG4gICAgICBtYXRjaCBnZXQgYiAoaSArIDIpIHdpdGhcbiAgICAgIHwgdSB3aGVuIHUgPCAweERDMDAgfHwgdSA+IDB4REZGRiAtPiBkZWNfaW52YWxpZCAyICgqIHJldHJ5IGhlcmUgKilcbiAgICAgIHwgbG8gLT5cbiAgICAgICAgICBsZXQgdSA9ICgoKGhpIGxhbmQgMHgzRkYpIGxzbCAxMCkgbG9yIChsbyBsYW5kIDB4M0ZGKSkgKyAweDEwMDAwIGluXG4gICAgICAgICAgZGVjX3JldCA0IHVcblxubGV0IHNldF91dGZfMTZsZV91Y2hhciBiIGkgdSA9XG4gIGxldCBzZXQgPSB1bnNhZmVfc2V0X3VpbnQxNl9sZSBpblxuICBsZXQgbWF4ID0gbGVuZ3RoIGIgLSAxIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBtYXggdGhlbiBpbnZhbGlkX2FyZyBcImluZGV4IG91dCBvZiBib3VuZHNcIiBlbHNlXG4gIG1hdGNoIFVjaGFyLnRvX2ludCB1IHdpdGhcbiAgfCB1IHdoZW4gdSA8IDAgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgdSB3aGVuIHUgPD0gMHhGRkZGIC0+XG4gICAgICBsZXQgbGFzdCA9IGkgKyAxIGluXG4gICAgICBpZiBsYXN0ID4gbWF4IHRoZW4gMCBlbHNlIChzZXQgYiBpIHU7IDIpXG4gIHwgdSB3aGVuIHUgPD0gMHgxMEZGRkYgLT5cbiAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgIGlmIGxhc3QgPiBtYXggdGhlbiAwIGVsc2VcbiAgICAgIGxldCB1JyA9IHUgLSAweDEwMDAwIGluXG4gICAgICBsZXQgaGkgPSAoMHhEODAwIGxvciAodScgbHNyIDEwKSkgaW5cbiAgICAgIGxldCBsbyA9ICgweERDMDAgbG9yICh1JyBsYW5kIDB4M0ZGKSkgaW5cbiAgICAgIHNldCBiIGkgaGk7IHNldCBiIChpICsgMikgbG87IDRcbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgaXNfdmFsaWRfdXRmXzE2bGUgYiA9XG4gIGxldCByZWMgbG9vcCBtYXggYiBpID1cbiAgICBsZXQgZ2V0ID0gdW5zYWZlX2dldF91aW50MTZfbGUgaW5cbiAgICBpZiBpID4gbWF4IHRoZW4gdHJ1ZSBlbHNlXG4gICAgaWYgaSA9IG1heCB0aGVuIGZhbHNlIGVsc2VcbiAgICBtYXRjaCBnZXQgYiBpIHdpdGhcbiAgICB8IHUgd2hlbiB1IDwgMHhEODAwIHx8IHUgPiAweERGRkYgLT4gbG9vcCBtYXggYiAoaSArIDIpXG4gICAgfCB1IHdoZW4gdSA+IDB4REJGRiAtPiBmYWxzZVxuICAgIHwgX2hpIC0+XG4gICAgICAgIGxldCBsYXN0ID0gaSArIDMgaW5cbiAgICAgICAgaWYgbGFzdCA+IG1heCB0aGVuIGZhbHNlIGVsc2VcbiAgICAgICAgbWF0Y2ggZ2V0IGIgKGkgKyAyKSB3aXRoXG4gICAgICAgIHwgdSB3aGVuIHUgPCAweERDMDAgfHwgdSA+IDB4REZGRiAtPiBmYWxzZVxuICAgICAgICB8IF9sbyAtPiBsb29wIG1heCBiIChpICsgNClcbiAgaW5cbiAgbG9vcCAobGVuZ3RoIGIgLSAxKSBiIDBcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IEdhbGxpdW0sIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMTQgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogU3RyaW5nIG9wZXJhdGlvbnMsIGJhc2VkIG9uIGJ5dGUgc2VxdWVuY2Ugb3BlcmF0aW9ucyAqKVxuXG4oKiBXQVJOSU5HOiBTb21lIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgZm9yXG4gICBlZmZpY2llbmN5IHJlYXNvbnMuIFdoZW4geW91IG1vZGlmeSB0aGUgb25lIGluIHRoaXMgZmlsZSB5b3UgbmVlZCB0b1xuICAgbW9kaWZ5IGl0cyBkdXBsaWNhdGUgaW4gYnl0ZXMubWwuXG4gICBUaGVzZSBmdW5jdGlvbnMgaGF2ZSBhIFwiZHVwbGljYXRlZFwiIGNvbW1lbnQgYWJvdmUgdGhlaXIgZGVmaW5pdGlvbi5cbiopXG5cbmV4dGVybmFsIGxlbmd0aCA6IHN0cmluZyAtPiBpbnQgPSBcIiVzdHJpbmdfbGVuZ3RoXCJcbmV4dGVybmFsIGdldCA6IHN0cmluZyAtPiBpbnQgLT4gY2hhciA9IFwiJXN0cmluZ19zYWZlX2dldFwiXG5leHRlcm5hbCBzZXQgOiBieXRlcyAtPiBpbnQgLT4gY2hhciAtPiB1bml0ID0gXCIlc3RyaW5nX3NhZmVfc2V0XCJcbmV4dGVybmFsIGNyZWF0ZSA6IGludCAtPiBieXRlcyA9IFwiY2FtbF9jcmVhdGVfc3RyaW5nXCJcbmV4dGVybmFsIHVuc2FmZV9nZXQgOiBzdHJpbmcgLT4gaW50IC0+IGNoYXIgPSBcIiVzdHJpbmdfdW5zYWZlX2dldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0IDogYnl0ZXMgLT4gaW50IC0+IGNoYXIgLT4gdW5pdCA9IFwiJXN0cmluZ191bnNhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9ibGl0IDogc3RyaW5nIC0+IGludCAtPiAgYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9ibGl0X3N0cmluZ1wiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB1bnNhZmVfZmlsbCA6IGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gY2hhciAtPiB1bml0XG4gICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9maWxsX3N0cmluZ1wiIFtAQG5vYWxsb2NdXG5cbm1vZHVsZSBCID0gQnl0ZXNcblxubGV0IGJ0cyA9IEIudW5zYWZlX3RvX3N0cmluZ1xubGV0IGJvcyA9IEIudW5zYWZlX29mX3N0cmluZ1xuXG5sZXQgbWFrZSBuIGMgPVxuICBCLm1ha2UgbiBjIHw+IGJ0c1xubGV0IGluaXQgbiBmID1cbiAgQi5pbml0IG4gZiB8PiBidHNcbmxldCBlbXB0eSA9IFwiXCJcbmxldCBjb3B5IHMgPVxuICBCLmNvcHkgKGJvcyBzKSB8PiBidHNcbmxldCBvZl9ieXRlcyA9IEIudG9fc3RyaW5nXG5sZXQgdG9fYnl0ZXMgPSBCLm9mX3N0cmluZ1xubGV0IHN1YiBzIG9mcyBsZW4gPVxuICBCLnN1YiAoYm9zIHMpIG9mcyBsZW4gfD4gYnRzXG5sZXQgZmlsbCA9XG4gIEIuZmlsbFxubGV0IGJsaXQgPVxuICBCLmJsaXRfc3RyaW5nXG5cbmxldCBlbnN1cmVfZ2UgKHg6aW50KSB5ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIGludmFsaWRfYXJnIFwiU3RyaW5nLmNvbmNhdFwiXG5cbmxldCByZWMgc3VtX2xlbmd0aHMgYWNjIHNlcGxlbiA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gYWNjXG4gIHwgaGQgOjogW10gLT4gbGVuZ3RoIGhkICsgYWNjXG4gIHwgaGQgOjogdGwgLT4gc3VtX2xlbmd0aHMgKGVuc3VyZV9nZSAobGVuZ3RoIGhkICsgc2VwbGVuICsgYWNjKSBhY2MpIHNlcGxlbiB0bFxuXG5sZXQgcmVjIHVuc2FmZV9ibGl0cyBkc3QgcG9zIHNlcCBzZXBsZW4gPSBmdW5jdGlvblxuICAgIFtdIC0+IGRzdFxuICB8IGhkIDo6IFtdIC0+XG4gICAgdW5zYWZlX2JsaXQgaGQgMCBkc3QgcG9zIChsZW5ndGggaGQpOyBkc3RcbiAgfCBoZCA6OiB0bCAtPlxuICAgIHVuc2FmZV9ibGl0IGhkIDAgZHN0IHBvcyAobGVuZ3RoIGhkKTtcbiAgICB1bnNhZmVfYmxpdCBzZXAgMCBkc3QgKHBvcyArIGxlbmd0aCBoZCkgc2VwbGVuO1xuICAgIHVuc2FmZV9ibGl0cyBkc3QgKHBvcyArIGxlbmd0aCBoZCArIHNlcGxlbikgc2VwIHNlcGxlbiB0bFxuXG5sZXQgY29uY2F0IHNlcCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gXCJcIlxuICB8IGwgLT4gbGV0IHNlcGxlbiA9IGxlbmd0aCBzZXAgaW4gYnRzIEBAXG4gICAgICAgICAgdW5zYWZlX2JsaXRzXG4gICAgICAgICAgICAoQi5jcmVhdGUgKHN1bV9sZW5ndGhzIDAgc2VwbGVuIGwpKVxuICAgICAgICAgICAgMCBzZXAgc2VwbGVuIGxcblxubGV0IGNhdCA9ICggXiApXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpdGVyIGYgcyA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG8gZiAodW5zYWZlX2dldCBzIGkpIGRvbmVcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGl0ZXJpIGYgcyA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggcyAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IHMgaSkgZG9uZVxuXG5sZXQgbWFwIGYgcyA9XG4gIEIubWFwIGYgKGJvcyBzKSB8PiBidHNcbmxldCBtYXBpIGYgcyA9XG4gIEIubWFwaSBmIChib3MgcykgfD4gYnRzXG5sZXQgZm9sZF9yaWdodCBmIHggYSA9XG4gIEIuZm9sZF9yaWdodCBmIChib3MgeCkgYVxubGV0IGZvbGRfbGVmdCBmIGEgeCA9XG4gIEIuZm9sZF9sZWZ0IGYgYSAoYm9zIHgpXG5sZXQgZXhpc3RzIGYgcyA9XG4gIEIuZXhpc3RzIGYgKGJvcyBzKVxubGV0IGZvcl9hbGwgZiBzID1cbiAgQi5mb3JfYWxsIGYgKGJvcyBzKVxuXG4oKiBCZXdhcmU6IHdlIGNhbm5vdCB1c2UgQi50cmltIG9yIEIuZXNjYXBlIGJlY2F1c2UgdGhleSBhbHdheXMgbWFrZSBhXG4gICBjb3B5LCBidXQgU3RyaW5nLm1saSBzcGVsbHMgb3V0IHNvbWUgY2FzZXMgd2hlcmUgd2UgYXJlIG5vdCBhbGxvd2VkXG4gICB0byBtYWtlIGEgY29weS4gKilcblxubGV0IGlzX3NwYWNlID0gZnVuY3Rpb25cbiAgfCAnICcgfCAnXFwwMTInIHwgJ1xcbicgfCAnXFxyJyB8ICdcXHQnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cbmxldCB0cmltIHMgPVxuICBpZiBzID0gXCJcIiB0aGVuIHNcbiAgZWxzZSBpZiBpc19zcGFjZSAodW5zYWZlX2dldCBzIDApIHx8IGlzX3NwYWNlICh1bnNhZmVfZ2V0IHMgKGxlbmd0aCBzIC0gMSkpXG4gICAgdGhlbiBidHMgKEIudHJpbSAoYm9zIHMpKVxuICBlbHNlIHNcblxubGV0IGVzY2FwZWQgcyA9XG4gIGxldCByZWMgZXNjYXBlX2lmX25lZWRlZCBzIG4gaSA9XG4gICAgaWYgaSA+PSBuIHRoZW4gcyBlbHNlXG4gICAgICBtYXRjaCB1bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICB8ICdcXFwiJyB8ICdcXFxcJyB8ICdcXDAwMCcuLidcXDAzMScgfCAnXFwxMjcnLi4gJ1xcMjU1JyAtPlxuICAgICAgICAgIGJ0cyAoQi5lc2NhcGVkIChib3MgcykpXG4gICAgICB8IF8gLT4gZXNjYXBlX2lmX25lZWRlZCBzIG4gKGkrMSlcbiAgaW5cbiAgZXNjYXBlX2lmX25lZWRlZCBzIChsZW5ndGggcykgMFxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIGluZGV4X3JlYyBzIGxpbSBpIGMgPVxuICBpZiBpID49IGxpbSB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIGkgZWxzZSBpbmRleF9yZWMgcyBsaW0gKGkgKyAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBpbmRleCBzIGMgPSBpbmRleF9yZWMgcyAobGVuZ3RoIHMpIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmVjIGluZGV4X3JlY19vcHQgcyBsaW0gaSBjID1cbiAgaWYgaSA+PSBsaW0gdGhlbiBOb25lIGVsc2VcbiAgaWYgdW5zYWZlX2dldCBzIGkgPSBjIHRoZW4gU29tZSBpIGVsc2UgaW5kZXhfcmVjX29wdCBzIGxpbSAoaSArIDEpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4X29wdCBzIGMgPSBpbmRleF9yZWNfb3B0IHMgKGxlbmd0aCBzKSAwIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4X2Zyb20gcyBpIGMgPVxuICBsZXQgbCA9IGxlbmd0aCBzIGluXG4gIGlmIGkgPCAwIHx8IGkgPiBsIHRoZW4gaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbSAvIEJ5dGVzLmluZGV4X2Zyb21cIiBlbHNlXG4gICAgaW5kZXhfcmVjIHMgbCBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IGluZGV4X2Zyb21fb3B0IHMgaSBjID1cbiAgbGV0IGwgPSBsZW5ndGggcyBpblxuICBpZiBpIDwgMCB8fCBpID4gbCB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJTdHJpbmcuaW5kZXhfZnJvbV9vcHQgLyBCeXRlcy5pbmRleF9mcm9tX29wdFwiXG4gIGVsc2VcbiAgICBpbmRleF9yZWNfb3B0IHMgbCBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjIHMgaSBjID1cbiAgaWYgaSA8IDAgdGhlbiByYWlzZSBOb3RfZm91bmQgZWxzZVxuICBpZiB1bnNhZmVfZ2V0IHMgaSA9IGMgdGhlbiBpIGVsc2UgcmluZGV4X3JlYyBzIChpIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4IHMgYyA9IHJpbmRleF9yZWMgcyAobGVuZ3RoIHMgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXhfZnJvbSBzIGkgYyA9XG4gIGlmIGkgPCAtMSB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yaW5kZXhfZnJvbSAvIEJ5dGVzLnJpbmRleF9mcm9tXCJcbiAgZWxzZVxuICAgIHJpbmRleF9yZWMgcyBpIGNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHJlYyByaW5kZXhfcmVjX29wdCBzIGkgYyA9XG4gIGlmIGkgPCAwIHRoZW4gTm9uZSBlbHNlXG4gIGlmIHVuc2FmZV9nZXQgcyBpID0gYyB0aGVuIFNvbWUgaSBlbHNlIHJpbmRleF9yZWNfb3B0IHMgKGkgLSAxKSBjXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCByaW5kZXhfb3B0IHMgYyA9IHJpbmRleF9yZWNfb3B0IHMgKGxlbmd0aCBzIC0gMSkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmluZGV4X2Zyb21fb3B0IHMgaSBjID1cbiAgaWYgaSA8IC0xIHx8IGkgPj0gbGVuZ3RoIHMgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLnJpbmRleF9mcm9tX29wdCAvIEJ5dGVzLnJpbmRleF9mcm9tX29wdFwiXG4gIGVsc2VcbiAgICByaW5kZXhfcmVjX29wdCBzIGkgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgY29udGFpbnNfZnJvbSBzIGkgYyA9XG4gIGxldCBsID0gbGVuZ3RoIHMgaW5cbiAgaWYgaSA8IDAgfHwgaSA+IGwgdGhlblxuICAgIGludmFsaWRfYXJnIFwiU3RyaW5nLmNvbnRhaW5zX2Zyb20gLyBCeXRlcy5jb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKGluZGV4X3JlYyBzIGwgaSBjKTsgdHJ1ZSB3aXRoIE5vdF9mb3VuZCAtPiBmYWxzZVxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgY29udGFpbnMgcyBjID0gY29udGFpbnNfZnJvbSBzIDAgY1xuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgcmNvbnRhaW5zX2Zyb20gcyBpIGMgPVxuICBpZiBpIDwgMCB8fCBpID49IGxlbmd0aCBzIHRoZW5cbiAgICBpbnZhbGlkX2FyZyBcIlN0cmluZy5yY29udGFpbnNfZnJvbSAvIEJ5dGVzLnJjb250YWluc19mcm9tXCJcbiAgZWxzZVxuICAgIHRyeSBpZ25vcmUgKHJpbmRleF9yZWMgcyBpIGMpOyB0cnVlIHdpdGggTm90X2ZvdW5kIC0+IGZhbHNlXG5cbmxldCB1cHBlcmNhc2VfYXNjaWkgcyA9XG4gIEIudXBwZXJjYXNlX2FzY2lpIChib3MgcykgfD4gYnRzXG5sZXQgbG93ZXJjYXNlX2FzY2lpIHMgPVxuICBCLmxvd2VyY2FzZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xubGV0IGNhcGl0YWxpemVfYXNjaWkgcyA9XG4gIEIuY2FwaXRhbGl6ZV9hc2NpaSAoYm9zIHMpIHw+IGJ0c1xubGV0IHVuY2FwaXRhbGl6ZV9hc2NpaSBzID1cbiAgQi51bmNhcGl0YWxpemVfYXNjaWkgKGJvcyBzKSB8PiBidHNcblxuKCogZHVwbGljYXRlZCBpbiBieXRlcy5tbCAqKVxubGV0IHN0YXJ0c193aXRoIH5wcmVmaXggcyA9XG4gIGxldCBsZW5fcyA9IGxlbmd0aCBzXG4gIGFuZCBsZW5fcHJlID0gbGVuZ3RoIHByZWZpeCBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBpZiBpID0gbGVuX3ByZSB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHVuc2FmZV9nZXQgcyBpIDw+IHVuc2FmZV9nZXQgcHJlZml4IGkgdGhlbiBmYWxzZVxuICAgIGVsc2UgYXV4IChpICsgMSlcbiAgaW4gbGVuX3MgPj0gbGVuX3ByZSAmJiBhdXggMFxuXG4oKiBkdXBsaWNhdGVkIGluIGJ5dGVzLm1sICopXG5sZXQgZW5kc193aXRoIH5zdWZmaXggcyA9XG4gIGxldCBsZW5fcyA9IGxlbmd0aCBzXG4gIGFuZCBsZW5fc3VmID0gbGVuZ3RoIHN1ZmZpeCBpblxuICBsZXQgZGlmZiA9IGxlbl9zIC0gbGVuX3N1ZiBpblxuICBsZXQgcmVjIGF1eCBpID1cbiAgICBpZiBpID0gbGVuX3N1ZiB0aGVuIHRydWVcbiAgICBlbHNlIGlmIHVuc2FmZV9nZXQgcyAoZGlmZiArIGkpIDw+IHVuc2FmZV9nZXQgc3VmZml4IGkgdGhlbiBmYWxzZVxuICAgIGVsc2UgYXV4IChpICsgMSlcbiAgaW4gZGlmZiA+PSAwICYmIGF1eCAwXG5cbigqIGR1cGxpY2F0ZWQgaW4gYnl0ZXMubWwgKilcbmxldCBzcGxpdF9vbl9jaGFyIHNlcCBzID1cbiAgbGV0IHIgPSByZWYgW10gaW5cbiAgbGV0IGogPSByZWYgKGxlbmd0aCBzKSBpblxuICBmb3IgaSA9IGxlbmd0aCBzIC0gMSBkb3dudG8gMCBkb1xuICAgIGlmIHVuc2FmZV9nZXQgcyBpID0gc2VwIHRoZW4gYmVnaW5cbiAgICAgIHIgOj0gc3ViIHMgKGkgKyAxKSAoIWogLSBpIC0gMSkgOjogIXI7XG4gICAgICBqIDo9IGlcbiAgICBlbmRcbiAgZG9uZTtcbiAgc3ViIHMgMCAhaiA6OiAhclxuXG4oKiBEZXByZWNhdGVkIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCB2aWEgb3RoZXIgZGVwcmVjYXRlZCBmdW5jdGlvbnMgKilcbltAQEBvY2FtbC53YXJuaW5nIFwiLTNcIl1cbmxldCB1cHBlcmNhc2UgcyA9XG4gIEIudXBwZXJjYXNlIChib3MgcykgfD4gYnRzXG5sZXQgbG93ZXJjYXNlIHMgPVxuICBCLmxvd2VyY2FzZSAoYm9zIHMpIHw+IGJ0c1xubGV0IGNhcGl0YWxpemUgcyA9XG4gIEIuY2FwaXRhbGl6ZSAoYm9zIHMpIHw+IGJ0c1xubGV0IHVuY2FwaXRhbGl6ZSBzID1cbiAgQi51bmNhcGl0YWxpemUgKGJvcyBzKSB8PiBidHNcblxudHlwZSB0ID0gc3RyaW5nXG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmV4dGVybmFsIGVxdWFsIDogc3RyaW5nIC0+IHN0cmluZyAtPiBib29sID0gXCJjYW1sX3N0cmluZ19lcXVhbFwiIFtAQG5vYWxsb2NdXG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgcyA9IGJvcyBzIHw+IEIudG9fc2VxXG5cbmxldCB0b19zZXFpIHMgPSBib3MgcyB8PiBCLnRvX3NlcWlcblxubGV0IG9mX3NlcSBnID0gQi5vZl9zZXEgZyB8PiBidHNcblxuKCogVVRGIGRlY29kZXJzIGFuZCB2YWxpZGF0b3JzICopXG5cbmxldCBnZXRfdXRmXzhfdWNoYXIgcyBpID0gQi5nZXRfdXRmXzhfdWNoYXIgKGJvcyBzKSBpXG5sZXQgaXNfdmFsaWRfdXRmXzggcyA9IEIuaXNfdmFsaWRfdXRmXzggKGJvcyBzKVxuXG5sZXQgZ2V0X3V0Zl8xNmJlX3VjaGFyIHMgaSA9IEIuZ2V0X3V0Zl8xNmJlX3VjaGFyIChib3MgcykgaVxubGV0IGlzX3ZhbGlkX3V0Zl8xNmJlIHMgPSBCLmlzX3ZhbGlkX3V0Zl8xNmJlIChib3MgcylcblxubGV0IGdldF91dGZfMTZsZV91Y2hhciBzIGkgPSBCLmdldF91dGZfMTZsZV91Y2hhciAoYm9zIHMpIGlcbmxldCBpc192YWxpZF91dGZfMTZsZSBzID0gQi5pc192YWxpZF91dGZfMTZsZSAoYm9zIHMpXG5cbigqKiB7NiBCaW5hcnkgZW5jb2RpbmcvZGVjb2Rpbmcgb2YgaW50ZWdlcnN9ICopXG5cbmV4dGVybmFsIGdldF91aW50OCA6IHN0cmluZyAtPiBpbnQgLT4gaW50ID0gXCIlc3RyaW5nX3NhZmVfZ2V0XCJcbmV4dGVybmFsIGdldF91aW50MTZfbmUgOiBzdHJpbmcgLT4gaW50IC0+IGludCA9IFwiJWNhbWxfc3RyaW5nX2dldDE2XCJcbmV4dGVybmFsIGdldF9pbnQzMl9uZSA6IHN0cmluZyAtPiBpbnQgLT4gaW50MzIgPSBcIiVjYW1sX3N0cmluZ19nZXQzMlwiXG5leHRlcm5hbCBnZXRfaW50NjRfbmUgOiBzdHJpbmcgLT4gaW50IC0+IGludDY0ID0gXCIlY2FtbF9zdHJpbmdfZ2V0NjRcIlxuXG5sZXQgZ2V0X2ludDggcyBpID0gQi5nZXRfaW50OCAoYm9zIHMpIGlcbmxldCBnZXRfdWludDE2X2xlIHMgaSA9IEIuZ2V0X3VpbnQxNl9sZSAoYm9zIHMpIGlcbmxldCBnZXRfdWludDE2X2JlIHMgaSA9IEIuZ2V0X3VpbnQxNl9iZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MTZfbmUgcyBpID0gQi5nZXRfaW50MTZfbmUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDE2X2xlIHMgaSA9IEIuZ2V0X2ludDE2X2xlIChib3MgcykgaVxubGV0IGdldF9pbnQxNl9iZSBzIGkgPSBCLmdldF9pbnQxNl9iZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50MzJfbGUgcyBpID0gQi5nZXRfaW50MzJfbGUgKGJvcyBzKSBpXG5sZXQgZ2V0X2ludDMyX2JlIHMgaSA9IEIuZ2V0X2ludDMyX2JlIChib3MgcykgaVxubGV0IGdldF9pbnQ2NF9sZSBzIGkgPSBCLmdldF9pbnQ2NF9sZSAoYm9zIHMpIGlcbmxldCBnZXRfaW50NjRfYmUgcyBpID0gQi5nZXRfaW50NjRfYmUgKGJvcyBzKSBpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgT0NhbWwgcHJvZ3JhbW1lcnMgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE4IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgdCA9IHVuaXQgPSAoKVxuXG5sZXQgZXF1YWwgKCkgKCkgPSB0cnVlXG5sZXQgY29tcGFyZSAoKSAoKSA9IDBcbmxldCB0b19zdHJpbmcgKCkgPSBcIigpXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTcgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSBleHRlcm5fZmxhZ3MgPVxuICAgIE5vX3NoYXJpbmdcbiAgfCBDbG9zdXJlc1xuICB8IENvbXBhdF8zMlxuKCogbm90ZTogdGhpcyB0eXBlIGRlZmluaXRpb24gaXMgdXNlZCBpbiAncnVudGltZS9kZWJ1Z2dlci5jJyAqKVxuXG5leHRlcm5hbCB0b19jaGFubmVsOiBvdXRfY2hhbm5lbCAtPiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiB1bml0XG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlXCJcbmV4dGVybmFsIHRvX2J5dGVzOiAnYSAtPiBleHRlcm5fZmxhZ3MgbGlzdCAtPiBieXRlc1xuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZV90b19ieXRlc1wiXG5leHRlcm5hbCB0b19zdHJpbmc6ICdhIC0+IGV4dGVybl9mbGFncyBsaXN0IC0+IHN0cmluZ1xuICAgID0gXCJjYW1sX291dHB1dF92YWx1ZV90b19zdHJpbmdcIlxuZXh0ZXJuYWwgdG9fYnVmZmVyX3Vuc2FmZTpcbiAgICAgIGJ5dGVzIC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gZXh0ZXJuX2ZsYWdzIGxpc3QgLT4gaW50XG4gICAgPSBcImNhbWxfb3V0cHV0X3ZhbHVlX3RvX2J1ZmZlclwiXG5cbmxldCB0b19idWZmZXIgYnVmZiBvZnMgbGVuIHYgZmxhZ3MgPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gQnl0ZXMubGVuZ3RoIGJ1ZmYgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwudG9fYnVmZmVyOiBzdWJzdHJpbmcgb3V0IG9mIGJvdW5kc1wiXG4gIGVsc2UgdG9fYnVmZmVyX3Vuc2FmZSBidWZmIG9mcyBsZW4gdiBmbGFnc1xuXG4oKiBUaGUgZnVuY3Rpb25zIGJlbG93IHVzZSBieXRlIHNlcXVlbmNlcyBhcyBpbnB1dCwgbmV2ZXIgdXNpbmcgYW55XG4gICBtdXRhdGlvbi4gSXQgbWFrZXMgc2Vuc2UgdG8gdXNlIG5vbi1tdXRhdGVkIFtieXRlc10gcmF0aGVyIHRoYW5cbiAgIFtzdHJpbmddLCBiZWNhdXNlIHdlIHJlYWxseSB3b3JrIHdpdGggc2VxdWVuY2VzIG9mIGJ5dGVzLCBub3RcbiAgIGEgdGV4dCByZXByZXNlbnRhdGlvbi5cbiopXG5cbmV4dGVybmFsIGZyb21fY2hhbm5lbDogaW5fY2hhbm5lbCAtPiAnYSA9IFwiY2FtbF9pbnB1dF92YWx1ZVwiXG5leHRlcm5hbCBmcm9tX2J5dGVzX3Vuc2FmZTogYnl0ZXMgLT4gaW50IC0+ICdhID0gXCJjYW1sX2lucHV0X3ZhbHVlX2Zyb21fYnl0ZXNcIlxuZXh0ZXJuYWwgZGF0YV9zaXplX3Vuc2FmZTogYnl0ZXMgLT4gaW50IC0+IGludCA9IFwiY2FtbF9tYXJzaGFsX2RhdGFfc2l6ZVwiXG5cbmxldCBoZWFkZXJfc2l6ZSA9IDIwXG5sZXQgZGF0YV9zaXplIGJ1ZmYgb2ZzID1cbiAgaWYgb2ZzIDwgMCB8fCBvZnMgPiBCeXRlcy5sZW5ndGggYnVmZiAtIGhlYWRlcl9zaXplXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJNYXJzaGFsLmRhdGFfc2l6ZVwiXG4gIGVsc2UgZGF0YV9zaXplX3Vuc2FmZSBidWZmIG9mc1xubGV0IHRvdGFsX3NpemUgYnVmZiBvZnMgPSBoZWFkZXJfc2l6ZSArIGRhdGFfc2l6ZSBidWZmIG9mc1xuXG5sZXQgZnJvbV9ieXRlcyBidWZmIG9mcyA9XG4gIGlmIG9mcyA8IDAgfHwgb2ZzID4gQnl0ZXMubGVuZ3RoIGJ1ZmYgLSBoZWFkZXJfc2l6ZVxuICB0aGVuIGludmFsaWRfYXJnIFwiTWFyc2hhbC5mcm9tX2J5dGVzXCJcbiAgZWxzZSBiZWdpblxuICAgIGxldCBsZW4gPSBkYXRhX3NpemVfdW5zYWZlIGJ1ZmYgb2ZzIGluXG4gICAgaWYgb2ZzID4gQnl0ZXMubGVuZ3RoIGJ1ZmYgLSAoaGVhZGVyX3NpemUgKyBsZW4pXG4gICAgdGhlbiBpbnZhbGlkX2FyZyBcIk1hcnNoYWwuZnJvbV9ieXRlc1wiXG4gICAgZWxzZSBmcm9tX2J5dGVzX3Vuc2FmZSBidWZmIG9mc1xuICBlbmRcblxubGV0IGZyb21fc3RyaW5nIGJ1ZmYgb2ZzID1cbiAgKCogQnl0ZXMudW5zYWZlX29mX3N0cmluZyBpcyBzYWZlIGhlcmUsIGFzIHRoZSBwcm9kdWNlZCBieXRlXG4gICAgIHNlcXVlbmNlIGlzIG5ldmVyIG11dGF0ZWQgKilcbiAgZnJvbV9ieXRlcyAoQnl0ZXMudW5zYWZlX29mX3N0cmluZyBidWZmKSBvZnNcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogQW4gYWxpYXMgZm9yIHRoZSB0eXBlIG9mIGFycmF5cy4gKilcbnR5cGUgJ2EgdCA9ICdhIGFycmF5XG5cbigqIEFycmF5IG9wZXJhdGlvbnMgKilcblxuZXh0ZXJuYWwgbGVuZ3RoIDogJ2EgYXJyYXkgLT4gaW50ID0gXCIlYXJyYXlfbGVuZ3RoXCJcbmV4dGVybmFsIGdldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhID0gXCIlYXJyYXlfc2FmZV9nZXRcIlxuZXh0ZXJuYWwgc2V0OiAnYSBhcnJheSAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWFycmF5X3NhZmVfc2V0XCJcbmV4dGVybmFsIHVuc2FmZV9nZXQ6ICdhIGFycmF5IC0+IGludCAtPiAnYSA9IFwiJWFycmF5X3Vuc2FmZV9nZXRcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldDogJ2EgYXJyYXkgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVhcnJheV91bnNhZmVfc2V0XCJcbmV4dGVybmFsIG1ha2U6IGludCAtPiAnYSAtPiAnYSBhcnJheSA9IFwiY2FtbF9tYWtlX3ZlY3RcIlxuZXh0ZXJuYWwgY3JlYXRlOiBpbnQgLT4gJ2EgLT4gJ2EgYXJyYXkgPSBcImNhbWxfbWFrZV92ZWN0XCJcbmV4dGVybmFsIHVuc2FmZV9zdWIgOiAnYSBhcnJheSAtPiBpbnQgLT4gaW50IC0+ICdhIGFycmF5ID0gXCJjYW1sX2FycmF5X3N1YlwiXG5leHRlcm5hbCBhcHBlbmRfcHJpbSA6ICdhIGFycmF5IC0+ICdhIGFycmF5IC0+ICdhIGFycmF5ID0gXCJjYW1sX2FycmF5X2FwcGVuZFwiXG5leHRlcm5hbCBjb25jYXQgOiAnYSBhcnJheSBsaXN0IC0+ICdhIGFycmF5ID0gXCJjYW1sX2FycmF5X2NvbmNhdFwiXG5leHRlcm5hbCB1bnNhZmVfYmxpdCA6XG4gICdhIGFycmF5IC0+IGludCAtPiAnYSBhcnJheSAtPiBpbnQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfYXJyYXlfYmxpdFwiXG5leHRlcm5hbCB1bnNhZmVfZmlsbCA6XG4gICdhIGFycmF5IC0+IGludCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9hcnJheV9maWxsXCJcbmV4dGVybmFsIGNyZWF0ZV9mbG9hdDogaW50IC0+IGZsb2F0IGFycmF5ID0gXCJjYW1sX21ha2VfZmxvYXRfdmVjdFwiXG5sZXQgbWFrZV9mbG9hdCA9IGNyZWF0ZV9mbG9hdFxuXG5tb2R1bGUgRmxvYXRhcnJheSA9IHN0cnVjdFxuICBleHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gZmxvYXRhcnJheSA9IFwiY2FtbF9mbG9hdGFycmF5X2NyZWF0ZVwiXG4gIGV4dGVybmFsIGxlbmd0aCA6IGZsb2F0YXJyYXkgLT4gaW50ID0gXCIlZmxvYXRhcnJheV9sZW5ndGhcIlxuICBleHRlcm5hbCBnZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfc2FmZV9nZXRcIlxuICBleHRlcm5hbCBzZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCAtPiB1bml0ID0gXCIlZmxvYXRhcnJheV9zYWZlX3NldFwiXG4gIGV4dGVybmFsIHVuc2FmZV9nZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX2dldFwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQgOiBmbG9hdGFycmF5IC0+IGludCAtPiBmbG9hdCAtPiB1bml0XG4gICAgICA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX3NldFwiXG5lbmRcblxubGV0IGluaXQgbCBmID1cbiAgaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2VcbiAgaWYgbCA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmluaXRcIlxuICAoKiBTZWUgIzY1NzUuIFdlIGNvdWxkIGFsc28gY2hlY2sgZm9yIG1heGltdW0gYXJyYXkgc2l6ZSwgYnV0IHRoaXMgZGVwZW5kc1xuICAgICBvbiB3aGV0aGVyIHdlIGNyZWF0ZSBhIGZsb2F0IGFycmF5IG9yIGEgcmVndWxhciBvbmUuLi4gKilcbiAgZWxzZVxuICAgbGV0IHJlcyA9IGNyZWF0ZSBsIChmIDApIGluXG4gICBmb3IgaSA9IDEgdG8gcHJlZCBsIGRvXG4gICAgIHVuc2FmZV9zZXQgcmVzIGkgKGYgaSlcbiAgIGRvbmU7XG4gICByZXNcblxubGV0IG1ha2VfbWF0cml4IHN4IHN5IGluaXQgPVxuICBsZXQgcmVzID0gY3JlYXRlIHN4IFt8fF0gaW5cbiAgZm9yIHggPSAwIHRvIHByZWQgc3ggZG9cbiAgICB1bnNhZmVfc2V0IHJlcyB4IChjcmVhdGUgc3kgaW5pdClcbiAgZG9uZTtcbiAgcmVzXG5cbmxldCBjcmVhdGVfbWF0cml4ID0gbWFrZV9tYXRyaXhcblxubGV0IGNvcHkgYSA9XG4gIGxldCBsID0gbGVuZ3RoIGEgaW4gaWYgbCA9IDAgdGhlbiBbfHxdIGVsc2UgdW5zYWZlX3N1YiBhIDAgbFxuXG5sZXQgYXBwZW5kIGExIGEyID1cbiAgbGV0IGwxID0gbGVuZ3RoIGExIGluXG4gIGlmIGwxID0gMCB0aGVuIGNvcHkgYTJcbiAgZWxzZSBpZiBsZW5ndGggYTIgPSAwIHRoZW4gdW5zYWZlX3N1YiBhMSAwIGwxXG4gIGVsc2UgYXBwZW5kX3ByaW0gYTEgYTJcblxubGV0IHN1YiBhIG9mcyBsZW4gPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIGEgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LnN1YlwiXG4gIGVsc2UgdW5zYWZlX3N1YiBhIG9mcyBsZW5cblxubGV0IGZpbGwgYSBvZnMgbGVuIHYgPVxuICBpZiBvZnMgPCAwIHx8IGxlbiA8IDAgfHwgb2ZzID4gbGVuZ3RoIGEgLSBsZW5cbiAgdGhlbiBpbnZhbGlkX2FyZyBcIkFycmF5LmZpbGxcIlxuICBlbHNlIHVuc2FmZV9maWxsIGEgb2ZzIGxlbiB2XG5cbmxldCBibGl0IGExIG9mczEgYTIgb2ZzMiBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IG9mczEgPCAwIHx8IG9mczEgPiBsZW5ndGggYTEgLSBsZW5cbiAgICAgICAgICAgICB8fCBvZnMyIDwgMCB8fCBvZnMyID4gbGVuZ3RoIGEyIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5ibGl0XCJcbiAgZWxzZSB1bnNhZmVfYmxpdCBhMSBvZnMxIGEyIG9mczIgbGVuXG5cbmxldCBpdGVyIGYgYSA9XG4gIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZih1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG5sZXQgaXRlcjIgZiBhIGIgPVxuICBpZiBsZW5ndGggYSA8PiBsZW5ndGggYiB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJBcnJheS5pdGVyMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICBlbHNlXG4gICAgZm9yIGkgPSAwIHRvIGxlbmd0aCBhIC0gMSBkbyBmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSBkb25lXG5cbmxldCBtYXAgZiBhID1cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgKGYodW5zYWZlX2dldCBhIDApKSBpblxuICAgIGZvciBpID0gMSB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IG1hcDIgZiBhIGIgPVxuICBsZXQgbGEgPSBsZW5ndGggYSBpblxuICBsZXQgbGIgPSBsZW5ndGggYiBpblxuICBpZiBsYSA8PiBsYiB0aGVuXG4gICAgaW52YWxpZF9hcmcgXCJBcnJheS5tYXAyOiBhcnJheXMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aFwiXG4gIGVsc2UgYmVnaW5cbiAgICBpZiBsYSA9IDAgdGhlbiBbfHxdIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gY3JlYXRlIGxhIChmICh1bnNhZmVfZ2V0IGEgMCkgKHVuc2FmZV9nZXQgYiAwKSkgaW5cbiAgICAgIGZvciBpID0gMSB0byBsYSAtIDEgZG9cbiAgICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSAodW5zYWZlX2dldCBiIGkpKVxuICAgICAgZG9uZTtcbiAgICAgIHJcbiAgICBlbmRcbiAgZW5kXG5cbmxldCBpdGVyaSBmIGEgPVxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgaSAodW5zYWZlX2dldCBhIGkpIGRvbmVcblxubGV0IG1hcGkgZiBhID1cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBpZiBsID0gMCB0aGVuIFt8fF0gZWxzZSBiZWdpblxuICAgIGxldCByID0gY3JlYXRlIGwgKGYgMCAodW5zYWZlX2dldCBhIDApKSBpblxuICAgIGZvciBpID0gMSB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgaSAodW5zYWZlX2dldCBhIGkpKVxuICAgIGRvbmU7XG4gICAgclxuICBlbmRcblxubGV0IHRvX2xpc3QgYSA9XG4gIGxldCByZWMgdG9saXN0IGkgcmVzID1cbiAgICBpZiBpIDwgMCB0aGVuIHJlcyBlbHNlIHRvbGlzdCAoaSAtIDEpICh1bnNhZmVfZ2V0IGEgaSA6OiByZXMpIGluXG4gIHRvbGlzdCAobGVuZ3RoIGEgLSAxKSBbXVxuXG4oKiBDYW5ub3QgdXNlIExpc3QubGVuZ3RoIGhlcmUgYmVjYXVzZSB0aGUgTGlzdCBtb2R1bGUgZGVwZW5kcyBvbiBBcnJheS4gKilcbmxldCByZWMgbGlzdF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gIHwgW10gLT4gYWNjdVxuICB8IF86OnQgLT4gbGlzdF9sZW5ndGggKHN1Y2MgYWNjdSkgdFxuXG5sZXQgb2ZfbGlzdCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gW3x8XVxuICB8IGhkOjp0bCBhcyBsIC0+XG4gICAgICBsZXQgYSA9IGNyZWF0ZSAobGlzdF9sZW5ndGggMCBsKSBoZCBpblxuICAgICAgbGV0IHJlYyBmaWxsIGkgPSBmdW5jdGlvblxuICAgICAgICAgIFtdIC0+IGFcbiAgICAgICAgfCBoZDo6dGwgLT4gdW5zYWZlX3NldCBhIGkgaGQ7IGZpbGwgKGkrMSkgdGwgaW5cbiAgICAgIGZpbGwgMSB0bFxuXG5sZXQgZm9sZF9sZWZ0IGYgeCBhID1cbiAgbGV0IHIgPSByZWYgeCBpblxuICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvXG4gICAgciA6PSBmICFyICh1bnNhZmVfZ2V0IGEgaSlcbiAgZG9uZTtcbiAgIXJcblxubGV0IGZvbGRfbGVmdF9tYXAgZiBhY2MgaW5wdXRfYXJyYXkgPVxuICBsZXQgbGVuID0gbGVuZ3RoIGlucHV0X2FycmF5IGluXG4gIGlmIGxlbiA9IDAgdGhlbiAoYWNjLCBbfHxdKSBlbHNlIGJlZ2luXG4gICAgbGV0IGFjYywgZWx0ID0gZiBhY2MgKHVuc2FmZV9nZXQgaW5wdXRfYXJyYXkgMCkgaW5cbiAgICBsZXQgb3V0cHV0X2FycmF5ID0gY3JlYXRlIGxlbiBlbHQgaW5cbiAgICBsZXQgYWNjID0gcmVmIGFjYyBpblxuICAgIGZvciBpID0gMSB0byBsZW4gLSAxIGRvXG4gICAgICBsZXQgYWNjJywgZWx0ID0gZiAhYWNjICh1bnNhZmVfZ2V0IGlucHV0X2FycmF5IGkpIGluXG4gICAgICBhY2MgOj0gYWNjJztcbiAgICAgIHVuc2FmZV9zZXQgb3V0cHV0X2FycmF5IGkgZWx0O1xuICAgIGRvbmU7XG4gICAgIWFjYywgb3V0cHV0X2FycmF5XG4gIGVuZFxuXG5sZXQgZm9sZF9yaWdodCBmIGEgeCA9XG4gIGxldCByID0gcmVmIHggaW5cbiAgZm9yIGkgPSBsZW5ndGggYSAtIDEgZG93bnRvIDAgZG9cbiAgICByIDo9IGYgKHVuc2FmZV9nZXQgYSBpKSAhclxuICBkb25lO1xuICAhclxuXG5sZXQgZXhpc3RzIHAgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBmb3JfYWxsIHAgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gdHJ1ZVxuICAgIGVsc2UgaWYgcCAodW5zYWZlX2dldCBhIGkpIHRoZW4gbG9vcCAoc3VjYyBpKVxuICAgIGVsc2UgZmFsc2UgaW5cbiAgbG9vcCAwXG5cbmxldCBmb3JfYWxsMiBwIGwxIGwyID1cbiAgbGV0IG4xID0gbGVuZ3RoIGwxXG4gIGFuZCBuMiA9IGxlbmd0aCBsMiBpblxuICBpZiBuMSA8PiBuMiB0aGVuIGludmFsaWRfYXJnIFwiQXJyYXkuZm9yX2FsbDJcIlxuICBlbHNlIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbjEgdGhlbiB0cnVlXG4gICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGwxIGkpICh1bnNhZmVfZ2V0IGwyIGkpIHRoZW4gbG9vcCAoc3VjYyBpKVxuICAgIGVsc2UgZmFsc2UgaW5cbiAgbG9vcCAwXG5cbmxldCBleGlzdHMyIHAgbDEgbDIgPVxuICBsZXQgbjEgPSBsZW5ndGggbDFcbiAgYW5kIG4yID0gbGVuZ3RoIGwyIGluXG4gIGlmIG4xIDw+IG4yIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5leGlzdHMyXCJcbiAgZWxzZSBsZXQgcmVjIGxvb3AgaSA9XG4gICAgaWYgaSA9IG4xIHRoZW4gZmFsc2VcbiAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgbDEgaSkgKHVuc2FmZV9nZXQgbDIgaSkgdGhlbiB0cnVlXG4gICAgZWxzZSBsb29wIChzdWNjIGkpIGluXG4gIGxvb3AgMFxuXG5sZXQgbWVtIHggYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICBlbHNlIGlmIGNvbXBhcmUgKHVuc2FmZV9nZXQgYSBpKSB4ID0gMCB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBtZW1xIHggYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gZmFsc2VcbiAgICBlbHNlIGlmIHggPT0gKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICBlbHNlIGxvb3AgKHN1Y2MgaSkgaW5cbiAgbG9vcCAwXG5cbmxldCBmaW5kX29wdCBwIGEgPVxuICBsZXQgbiA9IGxlbmd0aCBhIGluXG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpID0gbiB0aGVuIE5vbmVcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IHVuc2FmZV9nZXQgYSBpIGluXG4gICAgICBpZiBwIHggdGhlbiBTb21lIHhcbiAgICAgIGVsc2UgbG9vcCAoc3VjYyBpKVxuICBpblxuICBsb29wIDBcblxubGV0IGZpbmRfbWFwIGYgYSA9XG4gIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgbGV0IHJlYyBsb29wIGkgPVxuICAgIGlmIGkgPSBuIHRoZW4gTm9uZVxuICAgIGVsc2VcbiAgICAgIG1hdGNoIGYgKHVuc2FmZV9nZXQgYSBpKSB3aXRoXG4gICAgICB8IE5vbmUgLT4gbG9vcCAoc3VjYyBpKVxuICAgICAgfCBTb21lIF8gYXMgciAtPiByXG4gIGluXG4gIGxvb3AgMFxuXG5sZXQgc3BsaXQgeCA9XG4gIGlmIHggPSBbfHxdIHRoZW4gW3x8XSwgW3x8XVxuICBlbHNlIGJlZ2luXG4gICAgbGV0IGEwLCBiMCA9IHVuc2FmZV9nZXQgeCAwIGluXG4gICAgbGV0IG4gPSBsZW5ndGggeCBpblxuICAgIGxldCBhID0gY3JlYXRlIG4gYTAgaW5cbiAgICBsZXQgYiA9IGNyZWF0ZSBuIGIwIGluXG4gICAgZm9yIGkgPSAxIHRvIG4gLSAxIGRvXG4gICAgICBsZXQgYWksIGJpID0gdW5zYWZlX2dldCB4IGkgaW5cbiAgICAgIHVuc2FmZV9zZXQgYSBpIGFpO1xuICAgICAgdW5zYWZlX3NldCBiIGkgYmlcbiAgICBkb25lO1xuICAgIGEsIGJcbiAgZW5kXG5cbmxldCBjb21iaW5lIGEgYiA9XG4gIGxldCBuYSA9IGxlbmd0aCBhIGluXG4gIGxldCBuYiA9IGxlbmd0aCBiIGluXG4gIGlmIG5hIDw+IG5iIHRoZW4gaW52YWxpZF9hcmcgXCJBcnJheS5jb21iaW5lXCI7XG4gIGlmIG5hID0gMCB0aGVuIFt8fF1cbiAgZWxzZSBiZWdpblxuICAgIGxldCB4ID0gY3JlYXRlIG5hICh1bnNhZmVfZ2V0IGEgMCwgdW5zYWZlX2dldCBiIDApIGluXG4gICAgZm9yIGkgPSAxIHRvIG5hIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCB4IGkgKHVuc2FmZV9nZXQgYSBpLCB1bnNhZmVfZ2V0IGIgaSlcbiAgICBkb25lO1xuICAgIHhcbiAgZW5kXG5cbmV4Y2VwdGlvbiBCb3R0b20gb2YgaW50XG5sZXQgc29ydCBjbXAgYSA9XG4gIGxldCBtYXhzb24gbCBpID1cbiAgICBsZXQgaTMxID0gaStpK2krMSBpblxuICAgIGxldCB4ID0gcmVmIGkzMSBpblxuICAgIGlmIGkzMSsyIDwgbCB0aGVuIGJlZ2luXG4gICAgICBpZiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMCB0aGVuIHggOj0gaTMxKzE7XG4gICAgICBpZiBjbXAgKGdldCBhICF4KSAoZ2V0IGEgKGkzMSsyKSkgPCAwIHRoZW4geCA6PSBpMzErMjtcbiAgICAgICF4XG4gICAgZW5kIGVsc2VcbiAgICAgIGlmIGkzMSsxIDwgbCAmJiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMFxuICAgICAgdGhlbiBpMzErMVxuICAgICAgZWxzZSBpZiBpMzEgPCBsIHRoZW4gaTMxIGVsc2UgcmFpc2UgKEJvdHRvbSBpKVxuICBpblxuICBsZXQgcmVjIHRyaWNrbGVkb3duIGwgaSBlID1cbiAgICBsZXQgaiA9IG1heHNvbiBsIGkgaW5cbiAgICBpZiBjbXAgKGdldCBhIGopIGUgPiAwIHRoZW4gYmVnaW5cbiAgICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgICAgdHJpY2tsZWRvd24gbCBqIGU7XG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgIHNldCBhIGkgZTtcbiAgICBlbmQ7XG4gIGluXG4gIGxldCB0cmlja2xlIGwgaSBlID0gdHJ5IHRyaWNrbGVkb3duIGwgaSBlIHdpdGggQm90dG9tIGkgLT4gc2V0IGEgaSBlIGluXG4gIGxldCByZWMgYnViYmxlZG93biBsIGkgPVxuICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgIHNldCBhIGkgKGdldCBhIGopO1xuICAgIGJ1YmJsZWRvd24gbCBqXG4gIGluXG4gIGxldCBidWJibGUgbCBpID0gdHJ5IGJ1YmJsZWRvd24gbCBpIHdpdGggQm90dG9tIGkgLT4gaSBpblxuICBsZXQgcmVjIHRyaWNrbGV1cCBpIGUgPVxuICAgIGxldCBmYXRoZXIgPSAoaSAtIDEpIC8gMyBpblxuICAgIGFzc2VydCAoaSA8PiBmYXRoZXIpO1xuICAgIGlmIGNtcCAoZ2V0IGEgZmF0aGVyKSBlIDwgMCB0aGVuIGJlZ2luXG4gICAgICBzZXQgYSBpIChnZXQgYSBmYXRoZXIpO1xuICAgICAgaWYgZmF0aGVyID4gMCB0aGVuIHRyaWNrbGV1cCBmYXRoZXIgZSBlbHNlIHNldCBhIDAgZTtcbiAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgc2V0IGEgaSBlO1xuICAgIGVuZDtcbiAgaW5cbiAgbGV0IGwgPSBsZW5ndGggYSBpblxuICBmb3IgaSA9IChsICsgMSkgLyAzIC0gMSBkb3dudG8gMCBkbyB0cmlja2xlIGwgaSAoZ2V0IGEgaSk7IGRvbmU7XG4gIGZvciBpID0gbCAtIDEgZG93bnRvIDIgZG9cbiAgICBsZXQgZSA9IChnZXQgYSBpKSBpblxuICAgIHNldCBhIGkgKGdldCBhIDApO1xuICAgIHRyaWNrbGV1cCAoYnViYmxlIGkgMCkgZTtcbiAgZG9uZTtcbiAgaWYgbCA+IDEgdGhlbiAobGV0IGUgPSAoZ2V0IGEgMSkgaW4gc2V0IGEgMSAoZ2V0IGEgMCk7IHNldCBhIDAgZSlcblxuXG5sZXQgY3V0b2ZmID0gNVxubGV0IHN0YWJsZV9zb3J0IGNtcCBhID1cbiAgbGV0IG1lcmdlIHNyYzFvZnMgc3JjMWxlbiBzcmMyIHNyYzJvZnMgc3JjMmxlbiBkc3QgZHN0b2ZzID1cbiAgICBsZXQgc3JjMXIgPSBzcmMxb2ZzICsgc3JjMWxlbiBhbmQgc3JjMnIgPSBzcmMyb2ZzICsgc3JjMmxlbiBpblxuICAgIGxldCByZWMgbG9vcCBpMSBzMSBpMiBzMiBkID1cbiAgICAgIGlmIGNtcCBzMSBzMiA8PSAwIHRoZW4gYmVnaW5cbiAgICAgICAgc2V0IGRzdCBkIHMxO1xuICAgICAgICBsZXQgaTEgPSBpMSArIDEgaW5cbiAgICAgICAgaWYgaTEgPCBzcmMxciB0aGVuXG4gICAgICAgICAgbG9vcCBpMSAoZ2V0IGEgaTEpIGkyIHMyIChkICsgMSlcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGJsaXQgc3JjMiBpMiBkc3QgKGQgKyAxKSAoc3JjMnIgLSBpMilcbiAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgIHNldCBkc3QgZCBzMjtcbiAgICAgICAgbGV0IGkyID0gaTIgKyAxIGluXG4gICAgICAgIGlmIGkyIDwgc3JjMnIgdGhlblxuICAgICAgICAgIGxvb3AgaTEgczEgaTIgKGdldCBzcmMyIGkyKSAoZCArIDEpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBibGl0IGEgaTEgZHN0IChkICsgMSkgKHNyYzFyIC0gaTEpXG4gICAgICBlbmRcbiAgICBpbiBsb29wIHNyYzFvZnMgKGdldCBhIHNyYzFvZnMpIHNyYzJvZnMgKGdldCBzcmMyIHNyYzJvZnMpIGRzdG9mcztcbiAgaW5cbiAgbGV0IGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuID1cbiAgICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgICAgbGV0IGUgPSAoZ2V0IGEgKHNyY29mcyArIGkpKSBpblxuICAgICAgbGV0IGogPSByZWYgKGRzdG9mcyArIGkgLSAxKSBpblxuICAgICAgd2hpbGUgKCFqID49IGRzdG9mcyAmJiBjbXAgKGdldCBkc3QgIWopIGUgPiAwKSBkb1xuICAgICAgICBzZXQgZHN0ICghaiArIDEpIChnZXQgZHN0ICFqKTtcbiAgICAgICAgZGVjciBqO1xuICAgICAgZG9uZTtcbiAgICAgIHNldCBkc3QgKCFqICsgMSkgZTtcbiAgICBkb25lO1xuICBpblxuICBsZXQgcmVjIHNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgIGlmIGxlbiA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIHNyY29mcyBkc3QgZHN0b2ZzIGxlbiBlbHNlIGJlZ2luXG4gICAgICBsZXQgbDEgPSBsZW4gLyAyIGluXG4gICAgICBsZXQgbDIgPSBsZW4gLSBsMSBpblxuICAgICAgc29ydHRvIChzcmNvZnMgKyBsMSkgZHN0IChkc3RvZnMgKyBsMSkgbDI7XG4gICAgICBzb3J0dG8gc3Jjb2ZzIGEgKHNyY29mcyArIGwyKSBsMTtcbiAgICAgIG1lcmdlIChzcmNvZnMgKyBsMikgbDEgZHN0IChkc3RvZnMgKyBsMSkgbDIgZHN0IGRzdG9mcztcbiAgICBlbmQ7XG4gIGluXG4gIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgaWYgbCA8PSBjdXRvZmYgdGhlbiBpc29ydHRvIDAgYSAwIGwgZWxzZSBiZWdpblxuICAgIGxldCBsMSA9IGwgLyAyIGluXG4gICAgbGV0IGwyID0gbCAtIGwxIGluXG4gICAgbGV0IHQgPSBtYWtlIGwyIChnZXQgYSAwKSBpblxuICAgIHNvcnR0byBsMSB0IDAgbDI7XG4gICAgc29ydHRvIDAgYSBsMiBsMTtcbiAgICBtZXJnZSBsMiBsMSB0IDAgbDIgYSAwO1xuICBlbmRcblxuXG5sZXQgZmFzdF9zb3J0ID0gc3RhYmxlX3NvcnRcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBhID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgdGhlblxuICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgU2VxLkNvbnMgKHgsIGF1eCAoaSsxKSlcbiAgICBlbHNlIFNlcS5OaWxcbiAgaW5cbiAgYXV4IDBcblxubGV0IHRvX3NlcWkgYSA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgIGlmIGkgPCBsZW5ndGggYVxuICAgIHRoZW5cbiAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICAgIGVsc2UgU2VxLk5pbFxuICBpblxuICBhdXggMFxuXG5sZXQgb2ZfcmV2X2xpc3QgPSBmdW5jdGlvblxuICAgIFtdIC0+IFt8fF1cbiAgfCBoZDo6dGwgYXMgbCAtPlxuICAgICAgbGV0IGxlbiA9IGxpc3RfbGVuZ3RoIDAgbCBpblxuICAgICAgbGV0IGEgPSBjcmVhdGUgbGVuIGhkIGluXG4gICAgICBsZXQgcmVjIGZpbGwgaSA9IGZ1bmN0aW9uXG4gICAgICAgICAgW10gLT4gYVxuICAgICAgICB8IGhkOjp0bCAtPiB1bnNhZmVfc2V0IGEgaSBoZDsgZmlsbCAoaS0xKSB0bFxuICAgICAgaW5cbiAgICAgIGZpbGwgKGxlbi0yKSB0bFxuXG5sZXQgb2Zfc2VxIGkgPVxuICBsZXQgbCA9IFNlcS5mb2xkX2xlZnQgKGZ1biBhY2MgeCAtPiB4OjphY2MpIFtdIGkgaW5cbiAgb2ZfcmV2X2xpc3QgbFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICBOaWNvbGFzIE9qZWRhIEJhciwgTGV4aUZpICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBuZWcgOiBmbG9hdCAtPiBmbG9hdCA9IFwiJW5lZ2Zsb2F0XCJcbmV4dGVybmFsIGFkZCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWRkZmxvYXRcIlxuZXh0ZXJuYWwgc3ViIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcIiVzdWJmbG9hdFwiXG5leHRlcm5hbCBtdWwgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiJW11bGZsb2F0XCJcbmV4dGVybmFsIGRpdiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCIlZGl2ZmxvYXRcIlxuZXh0ZXJuYWwgcmVtIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZm1vZF9mbG9hdFwiIFwiZm1vZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbWEgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbWFfZmxvYXRcIiBcImNhbWxfZm1hXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFicyA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlYWJzZmxvYXRcIlxuXG5sZXQgemVybyA9IDAuXG5sZXQgb25lID0gMS5cbmxldCBtaW51c19vbmUgPSAtMS5cbmxldCBpbmZpbml0eSA9IFN0ZGxpYi5pbmZpbml0eVxubGV0IG5lZ19pbmZpbml0eSA9IFN0ZGxpYi5uZWdfaW5maW5pdHlcbmxldCBuYW4gPSBTdGRsaWIubmFuXG5sZXQgaXNfZmluaXRlICh4OiBmbG9hdCkgPSB4IC0uIHggPSAwLlxubGV0IGlzX2luZmluaXRlICh4OiBmbG9hdCkgPSAxLiAvLiB4ID0gMC5cbmxldCBpc19uYW4gKHg6IGZsb2F0KSA9IHggPD4geFxuXG5sZXQgcGkgPSAweDEuOTIxZmI1NDQ0MmQxOHArMVxubGV0IG1heF9mbG9hdCA9IFN0ZGxpYi5tYXhfZmxvYXRcbmxldCBtaW5fZmxvYXQgPSBTdGRsaWIubWluX2Zsb2F0XG5sZXQgZXBzaWxvbiA9IFN0ZGxpYi5lcHNpbG9uX2Zsb2F0XG5leHRlcm5hbCBvZl9pbnQgOiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdG9maW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGZsb2F0IC0+IGludCA9IFwiJWludG9mZmxvYXRcIlxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGZsb2F0ID0gXCJjYW1sX2Zsb2F0X29mX3N0cmluZ1wiXG5sZXQgb2Zfc3RyaW5nX29wdCA9IFN0ZGxpYi5mbG9hdF9vZl9zdHJpbmdfb3B0XG5sZXQgdG9fc3RyaW5nID0gU3RkbGliLnN0cmluZ19vZl9mbG9hdFxudHlwZSBmcGNsYXNzID0gU3RkbGliLmZwY2xhc3MgPVxuICAgIEZQX25vcm1hbFxuICB8IEZQX3N1Ym5vcm1hbFxuICB8IEZQX3plcm9cbiAgfCBGUF9pbmZpbml0ZVxuICB8IEZQX25hblxuZXh0ZXJuYWwgY2xhc3NpZnlfZmxvYXQgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gZnBjbGFzcyA9XG4gIFwiY2FtbF9jbGFzc2lmeV9mbG9hdFwiIFwiY2FtbF9jbGFzc2lmeV9mbG9hdF91bmJveGVkXCIgW0BAbm9hbGxvY11cbmV4dGVybmFsIHBvdyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Bvd2VyX2Zsb2F0XCIgXCJwb3dcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgc3FydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3NxcnRfZmxvYXRcIiBcInNxcnRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2JydCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NicnRfZmxvYXRcIiBcImNhbWxfY2JydFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBfZmxvYXRcIiBcImV4cFwiIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBleHAyIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfZXhwMl9mbG9hdFwiIFwiY2FtbF9leHAyXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZ19mbG9hdFwiIFwibG9nXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzEwIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfbG9nMTBfZmxvYXRcIiBcImxvZzEwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGxvZzIgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9sb2cyX2Zsb2F0XCIgXCJjYW1sX2xvZzJcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXhwbTEgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9leHBtMV9mbG9hdFwiIFwiY2FtbF9leHBtMVwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBsb2cxcCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2xvZzFwX2Zsb2F0XCIgXCJjYW1sX2xvZzFwXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvcyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2Nvc19mbG9hdFwiIFwiY29zXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Npbl9mbG9hdFwiIFwic2luXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3Rhbl9mbG9hdFwiIFwidGFuXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hY29zX2Zsb2F0XCIgXCJhY29zXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFzaW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luX2Zsb2F0XCIgXCJhc2luXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4gOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hdGFuX2Zsb2F0XCIgXCJhdGFuXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYXRhbjJfZmxvYXRcIiBcImF0YW4yXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGh5cG90IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgID0gXCJjYW1sX2h5cG90X2Zsb2F0XCIgXCJjYW1sX2h5cG90XCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGNvc2ggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9jb3NoX2Zsb2F0XCIgXCJjb3NoXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9zaW5oX2Zsb2F0XCIgXCJzaW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRhbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF90YW5oX2Zsb2F0XCIgXCJ0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGFjb3NoIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfYWNvc2hfZmxvYXRcIiBcImNhbWxfYWNvc2hcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgYXNpbmggOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9hc2luaF9mbG9hdFwiIFwiY2FtbF9hc2luaFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBhdGFuaCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2F0YW5oX2Zsb2F0XCIgXCJjYW1sX2F0YW5oXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGVyZiA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2VyZl9mbG9hdFwiIFwiY2FtbF9lcmZcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZXJmYyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2VyZmNfZmxvYXRcIiBcImNhbWxfZXJmY1wiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCB0cnVuYyA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX3RydW5jX2Zsb2F0XCIgXCJjYW1sX3RydW5jXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHJvdW5kIDogZmxvYXQgLT4gZmxvYXQgPSBcImNhbWxfcm91bmRfZmxvYXRcIiBcImNhbWxfcm91bmRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgY2VpbCA6IGZsb2F0IC0+IGZsb2F0ID0gXCJjYW1sX2NlaWxfZmxvYXRcIiBcImNlaWxcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgZmxvb3IgOiBmbG9hdCAtPiBmbG9hdCA9IFwiY2FtbF9mbG9vcl9mbG9hdFwiIFwiZmxvb3JcIlxuW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IGlzX2ludGVnZXIgeCA9IHggPSB0cnVuYyB4ICYmIGlzX2Zpbml0ZSB4XG5cbmV4dGVybmFsIG5leHRfYWZ0ZXIgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdFxuICA9IFwiY2FtbF9uZXh0YWZ0ZXJfZmxvYXRcIiBcImNhbWxfbmV4dGFmdGVyXCIgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cblxubGV0IHN1Y2MgeCA9IG5leHRfYWZ0ZXIgeCBpbmZpbml0eVxubGV0IHByZWQgeCA9IG5leHRfYWZ0ZXIgeCBuZWdfaW5maW5pdHlcblxuZXh0ZXJuYWwgY29weV9zaWduIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXRcbiAgICAgICAgICAgICAgICAgID0gXCJjYW1sX2NvcHlzaWduX2Zsb2F0XCIgXCJjYW1sX2NvcHlzaWduXCJcbiAgICAgICAgICAgICAgICAgIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBzaWduX2JpdCA6IChmbG9hdCBbQHVuYm94ZWRdKSAtPiBib29sXG4gID0gXCJjYW1sX3NpZ25iaXRfZmxvYXRcIiBcImNhbWxfc2lnbmJpdFwiIFtAQG5vYWxsb2NdXG5cbmV4dGVybmFsIGZyZXhwIDogZmxvYXQgLT4gZmxvYXQgKiBpbnQgPSBcImNhbWxfZnJleHBfZmxvYXRcIlxuZXh0ZXJuYWwgbGRleHAgOiAoZmxvYXQgW0B1bmJveGVkXSkgLT4gKGludCBbQHVudGFnZ2VkXSkgLT4gKGZsb2F0IFtAdW5ib3hlZF0pID1cbiAgXCJjYW1sX2xkZXhwX2Zsb2F0XCIgXCJjYW1sX2xkZXhwX2Zsb2F0X3VuYm94ZWRcIiBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgbW9kZiA6IGZsb2F0IC0+IGZsb2F0ICogZmxvYXQgPSBcImNhbWxfbW9kZl9mbG9hdFwiXG50eXBlIHQgPSBmbG9hdFxuZXh0ZXJuYWwgY29tcGFyZSA6IGZsb2F0IC0+IGZsb2F0IC0+IGludCA9IFwiJWNvbXBhcmVcIlxubGV0IGVxdWFsIHggeSA9IGNvbXBhcmUgeCB5ID0gMFxuXG5sZXRbQGlubGluZV0gbWluICh4OiBmbG9hdCkgKHk6IGZsb2F0KSA9XG4gIGlmIHkgPiB4IHx8IChub3Qoc2lnbl9iaXQgeSkgJiYgc2lnbl9iaXQgeCkgdGhlblxuICAgIGlmIGlzX25hbiB5IHRoZW4geSBlbHNlIHhcbiAgZWxzZSBpZiBpc19uYW4geCB0aGVuIHggZWxzZSB5XG5cbmxldFtAaW5saW5lXSBtYXggKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuXG4gICAgaWYgaXNfbmFuIHggdGhlbiB4IGVsc2UgeVxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4geSBlbHNlIHhcblxubGV0W0BpbmxpbmVdIG1pbl9tYXggKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgaXNfbmFuIHggfHwgaXNfbmFuIHkgdGhlbiAobmFuLCBuYW4pXG4gIGVsc2UgaWYgeSA+IHggfHwgKG5vdChzaWduX2JpdCB5KSAmJiBzaWduX2JpdCB4KSB0aGVuICh4LCB5KSBlbHNlICh5LCB4KVxuXG5sZXRbQGlubGluZV0gbWluX251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geCB0aGVuIHkgZWxzZSB4XG4gIGVsc2UgaWYgaXNfbmFuIHkgdGhlbiB4IGVsc2UgeVxuXG5sZXRbQGlubGluZV0gbWF4X251bSAoeDogZmxvYXQpICh5OiBmbG9hdCkgPVxuICBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW5cbiAgICBpZiBpc19uYW4geSB0aGVuIHggZWxzZSB5XG4gIGVsc2UgaWYgaXNfbmFuIHggdGhlbiB5IGVsc2UgeFxuXG5sZXRbQGlubGluZV0gbWluX21heF9udW0gKHg6IGZsb2F0KSAoeTogZmxvYXQpID1cbiAgaWYgaXNfbmFuIHggdGhlbiAoeSx5KVxuICBlbHNlIGlmIGlzX25hbiB5IHRoZW4gKHgseClcbiAgZWxzZSBpZiB5ID4geCB8fCAobm90KHNpZ25fYml0IHkpICYmIHNpZ25fYml0IHgpIHRoZW4gKHgseSkgZWxzZSAoeSx4KVxuXG5leHRlcm5hbCBzZWVkZWRfaGFzaF9wYXJhbSA6IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IC0+IGludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfaGFzaFwiIFtAQG5vYWxsb2NdXG5sZXQgaGFzaCB4ID0gc2VlZGVkX2hhc2hfcGFyYW0gMTAgMTAwIDAgeFxuXG5tb2R1bGUgQXJyYXkgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPSBmbG9hdGFycmF5XG5cbiAgZXh0ZXJuYWwgbGVuZ3RoIDogdCAtPiBpbnQgPSBcIiVmbG9hdGFycmF5X2xlbmd0aFwiXG4gIGV4dGVybmFsIGdldCA6IHQgLT4gaW50IC0+IGZsb2F0ID0gXCIlZmxvYXRhcnJheV9zYWZlX2dldFwiXG4gIGV4dGVybmFsIHNldCA6IHQgLT4gaW50IC0+IGZsb2F0IC0+IHVuaXQgPSBcIiVmbG9hdGFycmF5X3NhZmVfc2V0XCJcbiAgZXh0ZXJuYWwgY3JlYXRlIDogaW50IC0+IHQgPSBcImNhbWxfZmxvYXRhcnJheV9jcmVhdGVcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgPSBcIiVmbG9hdGFycmF5X3Vuc2FmZV9nZXRcIlxuICBleHRlcm5hbCB1bnNhZmVfc2V0IDogdCAtPiBpbnQgLT4gZmxvYXQgLT4gdW5pdCA9IFwiJWZsb2F0YXJyYXlfdW5zYWZlX3NldFwiXG5cbiAgbGV0IHVuc2FmZV9maWxsIGEgb2ZzIGxlbiB2ID1cbiAgICBmb3IgaSA9IG9mcyB0byBvZnMgKyBsZW4gLSAxIGRvIHVuc2FmZV9zZXQgYSBpIHYgZG9uZVxuXG4gIGV4dGVybmFsIHVuc2FmZV9ibGl0OiB0IC0+IGludCAtPiB0IC0+IGludCAtPiBpbnQgLT4gdW5pdCA9XG4gICAgXCJjYW1sX2Zsb2F0YXJyYXlfYmxpdFwiIFtAQG5vYWxsb2NdXG5cbiAgbGV0IGNoZWNrIGEgb2ZzIGxlbiBtc2cgPVxuICAgIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgKyBsZW4gPCAwIHx8IG9mcyArIGxlbiA+IGxlbmd0aCBhIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIG1zZ1xuXG4gIGxldCBtYWtlIG4gdiA9XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBuIGluXG4gICAgdW5zYWZlX2ZpbGwgcmVzdWx0IDAgbiB2O1xuICAgIHJlc3VsdFxuXG4gIGxldCBpbml0IGwgZiA9XG4gICAgaWYgbCA8IDAgdGhlbiBpbnZhbGlkX2FyZyBcIkZsb2F0LkFycmF5LmluaXRcIlxuICAgIGVsc2VcbiAgICAgIGxldCByZXMgPSBjcmVhdGUgbCBpblxuICAgICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgcmVzIGkgKGYgaSlcbiAgICAgIGRvbmU7XG4gICAgICByZXNcblxuICBsZXQgYXBwZW5kIGExIGEyID1cbiAgICBsZXQgbDEgPSBsZW5ndGggYTEgaW5cbiAgICBsZXQgbDIgPSBsZW5ndGggYTIgaW5cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIChsMSArIGwyKSBpblxuICAgIHVuc2FmZV9ibGl0IGExIDAgcmVzdWx0IDAgbDE7XG4gICAgdW5zYWZlX2JsaXQgYTIgMCByZXN1bHQgbDEgbDI7XG4gICAgcmVzdWx0XG5cbiAgKCogbmV4dCAzIGZ1bmN0aW9uczogbW9kaWZpZWQgY29weSBvZiBjb2RlIGZyb20gc3RyaW5nLm1sICopXG4gIGxldCBlbnN1cmVfZ2UgKHg6aW50KSB5ID1cbiAgICBpZiB4ID49IHkgdGhlbiB4IGVsc2UgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5jb25jYXRcIlxuXG4gIGxldCByZWMgc3VtX2xlbmd0aHMgYWNjID0gZnVuY3Rpb25cbiAgICB8IFtdIC0+IGFjY1xuICAgIHwgaGQgOjogdGwgLT4gc3VtX2xlbmd0aHMgKGVuc3VyZV9nZSAobGVuZ3RoIGhkICsgYWNjKSBhY2MpIHRsXG5cbiAgbGV0IGNvbmNhdCBsID1cbiAgICBsZXQgbGVuID0gc3VtX2xlbmd0aHMgMCBsIGluXG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsZW4gaW5cbiAgICBsZXQgcmVjIGxvb3AgbCBpID1cbiAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgfCBbXSAtPiBhc3NlcnQgKGkgPSBsZW4pXG4gICAgICB8IGhkIDo6IHRsIC0+XG4gICAgICAgIGxldCBobGVuID0gbGVuZ3RoIGhkIGluXG4gICAgICAgIHVuc2FmZV9ibGl0IGhkIDAgcmVzdWx0IGkgaGxlbjtcbiAgICAgICAgbG9vcCB0bCAoaSArIGhsZW4pXG4gICAgaW5cbiAgICBsb29wIGwgMDtcbiAgICByZXN1bHRcblxuICBsZXQgc3ViIGEgb2ZzIGxlbiA9XG4gICAgY2hlY2sgYSBvZnMgbGVuIFwiRmxvYXQuQXJyYXkuc3ViXCI7XG4gICAgbGV0IHJlc3VsdCA9IGNyZWF0ZSBsZW4gaW5cbiAgICB1bnNhZmVfYmxpdCBhIG9mcyByZXN1bHQgMCBsZW47XG4gICAgcmVzdWx0XG5cbiAgbGV0IGNvcHkgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByZXN1bHQgPSBjcmVhdGUgbCBpblxuICAgIHVuc2FmZV9ibGl0IGEgMCByZXN1bHQgMCBsO1xuICAgIHJlc3VsdFxuXG4gIGxldCBmaWxsIGEgb2ZzIGxlbiB2ID1cbiAgICBjaGVjayBhIG9mcyBsZW4gXCJGbG9hdC5BcnJheS5maWxsXCI7XG4gICAgdW5zYWZlX2ZpbGwgYSBvZnMgbGVuIHZcblxuICBsZXQgYmxpdCBzcmMgc29mcyBkc3QgZG9mcyBsZW4gPVxuICAgIGNoZWNrIHNyYyBzb2ZzIGxlbiBcIkZsb2F0LmFycmF5LmJsaXRcIjtcbiAgICBjaGVjayBkc3QgZG9mcyBsZW4gXCJGbG9hdC5hcnJheS5ibGl0XCI7XG4gICAgdW5zYWZlX2JsaXQgc3JjIHNvZnMgZHN0IGRvZnMgbGVuXG5cbiAgbGV0IHRvX2xpc3QgYSA9XG4gICAgTGlzdC5pbml0IChsZW5ndGggYSkgKHVuc2FmZV9nZXQgYSlcblxuICBsZXQgb2ZfbGlzdCBsID1cbiAgICBsZXQgcmVzdWx0ID0gY3JlYXRlIChMaXN0Lmxlbmd0aCBsKSBpblxuICAgIGxldCByZWMgZmlsbCBpIGwgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IHJlc3VsdFxuICAgICAgfCBoIDo6IHQgLT4gdW5zYWZlX3NldCByZXN1bHQgaSBoOyBmaWxsIChpICsgMSkgdFxuICAgIGluXG4gICAgZmlsbCAwIGxcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGl0ZXIgZiBhID1cbiAgICBmb3IgaSA9IDAgdG8gbGVuZ3RoIGEgLSAxIGRvIGYgKHVuc2FmZV9nZXQgYSBpKSBkb25lXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyMiBmIGEgYiA9XG4gICAgaWYgbGVuZ3RoIGEgPD4gbGVuZ3RoIGIgdGhlblxuICAgICAgaW52YWxpZF9hcmcgXCJGbG9hdC5BcnJheS5pdGVyMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICAgIGVsc2VcbiAgICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiAodW5zYWZlX2dldCBhIGkpICh1bnNhZmVfZ2V0IGIgaSkgZG9uZVxuXG4gIGxldCBtYXAgZiBhID1cbiAgICBsZXQgbCA9IGxlbmd0aCBhIGluXG4gICAgbGV0IHIgPSBjcmVhdGUgbCBpblxuICAgIGZvciBpID0gMCB0byBsIC0gMSBkb1xuICAgICAgdW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuICBsZXQgbWFwMiBmIGEgYiA9XG4gICAgbGV0IGxhID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgbGIgPSBsZW5ndGggYiBpblxuICAgIGlmIGxhIDw+IGxiIHRoZW5cbiAgICAgIGludmFsaWRfYXJnIFwiRmxvYXQuQXJyYXkubWFwMjogYXJyYXlzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGhcIlxuICAgIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gY3JlYXRlIGxhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gbGEgLSAxIGRvXG4gICAgICAgIHVuc2FmZV9zZXQgciBpIChmICh1bnNhZmVfZ2V0IGEgaSkgKHVuc2FmZV9nZXQgYiBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBpdGVyaSBmIGEgPVxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG8gZiBpICh1bnNhZmVfZ2V0IGEgaSkgZG9uZVxuXG4gIGxldCBtYXBpIGYgYSA9XG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIGkgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICBkb25lO1xuICAgIHJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGZvbGRfbGVmdCBmIHggYSA9XG4gICAgbGV0IHIgPSByZWYgeCBpblxuICAgIGZvciBpID0gMCB0byBsZW5ndGggYSAtIDEgZG9cbiAgICAgIHIgOj0gZiAhciAodW5zYWZlX2dldCBhIGkpXG4gICAgZG9uZTtcbiAgICAhclxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgZm9sZF9yaWdodCBmIGEgeCA9XG4gICAgbGV0IHIgPSByZWYgeCBpblxuICAgIGZvciBpID0gbGVuZ3RoIGEgLSAxIGRvd250byAwIGRvXG4gICAgICByIDo9IGYgKHVuc2FmZV9nZXQgYSBpKSAhclxuICAgIGRvbmU7XG4gICAgIXJcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IGV4aXN0cyBwIGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIHAgKHVuc2FmZV9nZXQgYSBpKSB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpIGluXG4gICAgbG9vcCAwXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBmb3JfYWxsIHAgYSA9XG4gICAgbGV0IG4gPSBsZW5ndGggYSBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBuIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBpZiBwICh1bnNhZmVfZ2V0IGEgaSkgdGhlbiBsb29wIChpICsgMSlcbiAgICAgIGVsc2UgZmFsc2UgaW5cbiAgICBsb29wIDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IG1lbSB4IGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIGNvbXBhcmUgKHVuc2FmZV9nZXQgYSBpKSB4ID0gMCB0aGVuIHRydWVcbiAgICAgIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuICAoKiBtb3N0bHkgZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sLCBidXQgc2xpZ2h0bHkgZGlmZmVyZW50ICopXG4gIGxldCBtZW1faWVlZSB4IGEgPVxuICAgIGxldCBuID0gbGVuZ3RoIGEgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9XG4gICAgICBpZiBpID0gbiB0aGVuIGZhbHNlXG4gICAgICBlbHNlIGlmIHggPSAodW5zYWZlX2dldCBhIGkpIHRoZW4gdHJ1ZVxuICAgICAgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBleGNlcHRpb24gQm90dG9tIG9mIGludFxuICBsZXQgc29ydCBjbXAgYSA9XG4gICAgbGV0IG1heHNvbiBsIGkgPVxuICAgICAgbGV0IGkzMSA9IGkraStpKzEgaW5cbiAgICAgIGxldCB4ID0gcmVmIGkzMSBpblxuICAgICAgaWYgaTMxKzIgPCBsIHRoZW4gYmVnaW5cbiAgICAgICAgaWYgY21wIChnZXQgYSBpMzEpIChnZXQgYSAoaTMxKzEpKSA8IDAgdGhlbiB4IDo9IGkzMSsxO1xuICAgICAgICBpZiBjbXAgKGdldCBhICF4KSAoZ2V0IGEgKGkzMSsyKSkgPCAwIHRoZW4geCA6PSBpMzErMjtcbiAgICAgICAgIXhcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIGlmIGkzMSsxIDwgbCAmJiBjbXAgKGdldCBhIGkzMSkgKGdldCBhIChpMzErMSkpIDwgMFxuICAgICAgICB0aGVuIGkzMSsxXG4gICAgICAgIGVsc2UgaWYgaTMxIDwgbCB0aGVuIGkzMSBlbHNlIHJhaXNlIChCb3R0b20gaSlcbiAgICBpblxuICAgIGxldCByZWMgdHJpY2tsZWRvd24gbCBpIGUgPVxuICAgICAgbGV0IGogPSBtYXhzb24gbCBpIGluXG4gICAgICBpZiBjbXAgKGdldCBhIGopIGUgPiAwIHRoZW4gYmVnaW5cbiAgICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICAgIHRyaWNrbGVkb3duIGwgaiBlO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGEgaSBlO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IHRyaWNrbGUgbCBpIGUgPSB0cnkgdHJpY2tsZWRvd24gbCBpIGUgd2l0aCBCb3R0b20gaSAtPiBzZXQgYSBpIGUgaW5cbiAgICBsZXQgcmVjIGJ1YmJsZWRvd24gbCBpID1cbiAgICAgIGxldCBqID0gbWF4c29uIGwgaSBpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgaik7XG4gICAgICBidWJibGVkb3duIGwgalxuICAgIGluXG4gICAgbGV0IGJ1YmJsZSBsIGkgPSB0cnkgYnViYmxlZG93biBsIGkgd2l0aCBCb3R0b20gaSAtPiBpIGluXG4gICAgbGV0IHJlYyB0cmlja2xldXAgaSBlID1cbiAgICAgIGxldCBmYXRoZXIgPSAoaSAtIDEpIC8gMyBpblxuICAgICAgYXNzZXJ0IChpIDw+IGZhdGhlcik7XG4gICAgICBpZiBjbXAgKGdldCBhIGZhdGhlcikgZSA8IDAgdGhlbiBiZWdpblxuICAgICAgICBzZXQgYSBpIChnZXQgYSBmYXRoZXIpO1xuICAgICAgICBpZiBmYXRoZXIgPiAwIHRoZW4gdHJpY2tsZXVwIGZhdGhlciBlIGVsc2Ugc2V0IGEgMCBlO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0IGEgaSBlO1xuICAgICAgZW5kO1xuICAgIGluXG4gICAgbGV0IGwgPSBsZW5ndGggYSBpblxuICAgIGZvciBpID0gKGwgKyAxKSAvIDMgLSAxIGRvd250byAwIGRvIHRyaWNrbGUgbCBpIChnZXQgYSBpKTsgZG9uZTtcbiAgICBmb3IgaSA9IGwgLSAxIGRvd250byAyIGRvXG4gICAgICBsZXQgZSA9IChnZXQgYSBpKSBpblxuICAgICAgc2V0IGEgaSAoZ2V0IGEgMCk7XG4gICAgICB0cmlja2xldXAgKGJ1YmJsZSBpIDApIGU7XG4gICAgZG9uZTtcbiAgICBpZiBsID4gMSB0aGVuIChsZXQgZSA9IChnZXQgYSAxKSBpbiBzZXQgYSAxIChnZXQgYSAwKTsgc2V0IGEgMCBlKVxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCwgZXhjZXB0IGZvciB0aGUgY2FsbCB0byBbY3JlYXRlXSAqKVxuICBsZXQgY3V0b2ZmID0gNVxuICBsZXQgc3RhYmxlX3NvcnQgY21wIGEgPVxuICAgIGxldCBtZXJnZSBzcmMxb2ZzIHNyYzFsZW4gc3JjMiBzcmMyb2ZzIHNyYzJsZW4gZHN0IGRzdG9mcyA9XG4gICAgICBsZXQgc3JjMXIgPSBzcmMxb2ZzICsgc3JjMWxlbiBhbmQgc3JjMnIgPSBzcmMyb2ZzICsgc3JjMmxlbiBpblxuICAgICAgbGV0IHJlYyBsb29wIGkxIHMxIGkyIHMyIGQgPVxuICAgICAgICBpZiBjbXAgczEgczIgPD0gMCB0aGVuIGJlZ2luXG4gICAgICAgICAgc2V0IGRzdCBkIHMxO1xuICAgICAgICAgIGxldCBpMSA9IGkxICsgMSBpblxuICAgICAgICAgIGlmIGkxIDwgc3JjMXIgdGhlblxuICAgICAgICAgICAgbG9vcCBpMSAoZ2V0IGEgaTEpIGkyIHMyIChkICsgMSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBibGl0IHNyYzIgaTIgZHN0IChkICsgMSkgKHNyYzJyIC0gaTIpXG4gICAgICAgIGVuZCBlbHNlIGJlZ2luXG4gICAgICAgICAgc2V0IGRzdCBkIHMyO1xuICAgICAgICAgIGxldCBpMiA9IGkyICsgMSBpblxuICAgICAgICAgIGlmIGkyIDwgc3JjMnIgdGhlblxuICAgICAgICAgICAgbG9vcCBpMSBzMSBpMiAoZ2V0IHNyYzIgaTIpIChkICsgMSlcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBibGl0IGEgaTEgZHN0IChkICsgMSkgKHNyYzFyIC0gaTEpXG4gICAgICAgIGVuZFxuICAgICAgaW4gbG9vcCBzcmMxb2ZzIChnZXQgYSBzcmMxb2ZzKSBzcmMyb2ZzIChnZXQgc3JjMiBzcmMyb2ZzKSBkc3RvZnM7XG4gICAgaW5cbiAgICBsZXQgaXNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgICAgZm9yIGkgPSAwIHRvIGxlbiAtIDEgZG9cbiAgICAgICAgbGV0IGUgPSAoZ2V0IGEgKHNyY29mcyArIGkpKSBpblxuICAgICAgICBsZXQgaiA9IHJlZiAoZHN0b2ZzICsgaSAtIDEpIGluXG4gICAgICAgIHdoaWxlICghaiA+PSBkc3RvZnMgJiYgY21wIChnZXQgZHN0ICFqKSBlID4gMCkgZG9cbiAgICAgICAgICBzZXQgZHN0ICghaiArIDEpIChnZXQgZHN0ICFqKTtcbiAgICAgICAgICBkZWNyIGo7XG4gICAgICAgIGRvbmU7XG4gICAgICAgIHNldCBkc3QgKCFqICsgMSkgZTtcbiAgICAgIGRvbmU7XG4gICAgaW5cbiAgICBsZXQgcmVjIHNvcnR0byBzcmNvZnMgZHN0IGRzdG9mcyBsZW4gPVxuICAgICAgaWYgbGVuIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gc3Jjb2ZzIGRzdCBkc3RvZnMgbGVuIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IGwxID0gbGVuIC8gMiBpblxuICAgICAgICBsZXQgbDIgPSBsZW4gLSBsMSBpblxuICAgICAgICBzb3J0dG8gKHNyY29mcyArIGwxKSBkc3QgKGRzdG9mcyArIGwxKSBsMjtcbiAgICAgICAgc29ydHRvIHNyY29mcyBhIChzcmNvZnMgKyBsMikgbDE7XG4gICAgICAgIG1lcmdlIChzcmNvZnMgKyBsMikgbDEgZHN0IChkc3RvZnMgKyBsMSkgbDIgZHN0IGRzdG9mcztcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBpZiBsIDw9IGN1dG9mZiB0aGVuIGlzb3J0dG8gMCBhIDAgbCBlbHNlIGJlZ2luXG4gICAgICBsZXQgbDEgPSBsIC8gMiBpblxuICAgICAgbGV0IGwyID0gbCAtIGwxIGluXG4gICAgICBsZXQgdCA9IGNyZWF0ZSBsMiBpblxuICAgICAgc29ydHRvIGwxIHQgMCBsMjtcbiAgICAgIHNvcnR0byAwIGEgbDIgbDE7XG4gICAgICBtZXJnZSBsMiBsMSB0IDAgbDIgYSAwO1xuICAgIGVuZFxuXG4gIGxldCBmYXN0X3NvcnQgPSBzdGFibGVfc29ydFxuXG4gICgqIGR1cGxpY2F0ZWQgZnJvbSBhcnJheS5tbCAqKVxuICBsZXQgdG9fc2VxIGEgPVxuICAgIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICAgaWYgaSA8IGxlbmd0aCBhXG4gICAgICB0aGVuXG4gICAgICAgIGxldCB4ID0gdW5zYWZlX2dldCBhIGkgaW5cbiAgICAgICAgU2VxLkNvbnMgKHgsIGF1eCAoaSsxKSlcbiAgICAgIGVsc2UgU2VxLk5pbFxuICAgIGluXG4gICAgYXV4IDBcblxuICAoKiBkdXBsaWNhdGVkIGZyb20gYXJyYXkubWwgKilcbiAgbGV0IHRvX3NlcWkgYSA9XG4gICAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgICBpZiBpIDwgbGVuZ3RoIGFcbiAgICAgIHRoZW5cbiAgICAgICAgbGV0IHggPSB1bnNhZmVfZ2V0IGEgaSBpblxuICAgICAgICBTZXEuQ29ucyAoKGkseCksIGF1eCAoaSsxKSlcbiAgICAgIGVsc2UgU2VxLk5pbFxuICAgIGluXG4gICAgYXV4IDBcblxuICAoKiBtb3N0bHkgZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBvZl9yZXZfbGlzdCBsID1cbiAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgIGxldCBhID0gY3JlYXRlIGxlbiBpblxuICAgIGxldCByZWMgZmlsbCBpID0gZnVuY3Rpb25cbiAgICAgICAgW10gLT4gYVxuICAgICAgfCBoZDo6dGwgLT4gdW5zYWZlX3NldCBhIGkgaGQ7IGZpbGwgKGktMSkgdGxcbiAgICBpblxuICAgIGZpbGwgKGxlbi0xKSBsXG5cbiAgKCogZHVwbGljYXRlZCBmcm9tIGFycmF5Lm1sICopXG4gIGxldCBvZl9zZXEgaSA9XG4gICAgbGV0IGwgPSBTZXEuZm9sZF9sZWZ0IChmdW4gYWNjIHggLT4geDo6YWNjKSBbXSBpIGluXG4gICAgb2ZfcmV2X2xpc3QgbFxuXG5cbiAgbGV0IG1hcF90b19hcnJheSBmIGEgPVxuICAgIGxldCBsID0gbGVuZ3RoIGEgaW5cbiAgICBpZiBsID0gMCB0aGVuIFt8IHxdIGVsc2UgYmVnaW5cbiAgICAgIGxldCByID0gQXJyYXkubWFrZSBsIChmICh1bnNhZmVfZ2V0IGEgMCkpIGluXG4gICAgICBmb3IgaSA9IDEgdG8gbCAtIDEgZG9cbiAgICAgICAgQXJyYXkudW5zYWZlX3NldCByIGkgKGYgKHVuc2FmZV9nZXQgYSBpKSlcbiAgICAgIGRvbmU7XG4gICAgICByXG4gICAgZW5kXG5cbiAgbGV0IG1hcF9mcm9tX2FycmF5IGYgYSA9XG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGggYSBpblxuICAgIGxldCByID0gY3JlYXRlIGwgaW5cbiAgICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICAgIHVuc2FmZV9zZXQgciBpIChmIChBcnJheS51bnNhZmVfZ2V0IGEgaSkpXG4gICAgZG9uZTtcbiAgICByXG5cbmVuZFxuXG5tb2R1bGUgQXJyYXlMYWJlbHMgPSBBcnJheVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0ludDMyXTogMzItYml0IGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZyA6IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbmVnXCJcbmV4dGVybmFsIGFkZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYWRkXCJcbmV4dGVybmFsIHN1YiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfc3ViXCJcbmV4dGVybmFsIG11bCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbXVsXCJcbmV4dGVybmFsIGRpdiA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfZGl2XCJcbmV4dGVybmFsIHJlbSA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZCA6IGludDMyIC0+IGludDMyIC0+IGludDMyID0gXCIlaW50MzJfYW5kXCJcbmV4dGVybmFsIGxvZ29yIDogaW50MzIgLT4gaW50MzIgLT4gaW50MzIgPSBcIiVpbnQzMl9vclwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQzMiAtPiBpbnQzMiAtPiBpbnQzMiA9IFwiJWludDMyX3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50MzIgLT4gaW50IC0+IGludDMyID0gXCIlaW50MzJfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQzMiAtPiBpbnQgLT4gaW50MzIgPSBcIiVpbnQzMl9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGludDMyID0gXCIlaW50MzJfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGludDMyIC0+IGludCA9IFwiJWludDMyX3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludDMyXG4gID0gXCJjYW1sX2ludDMyX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQzMiAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQzMl90b19mbG9hdFwiIFwiY2FtbF9pbnQzMl90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGJpdHNfb2ZfZmxvYXQgOiBmbG9hdCAtPiBpbnQzMlxuICA9IFwiY2FtbF9pbnQzMl9iaXRzX29mX2Zsb2F0XCIgXCJjYW1sX2ludDMyX2JpdHNfb2ZfZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBmbG9hdF9vZl9iaXRzIDogaW50MzIgLT4gZmxvYXRcbiAgPSBcImNhbWxfaW50MzJfZmxvYXRfb2ZfYml0c1wiIFwiY2FtbF9pbnQzMl9mbG9hdF9vZl9iaXRzX3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuXG5sZXQgemVybyA9IDBsXG5sZXQgb25lID0gMWxcbmxldCBtaW51c19vbmUgPSAtMWxcbmxldCBzdWNjIG4gPSBhZGQgbiAxbFxubGV0IHByZWQgbiA9IHN1YiBuIDFsXG5sZXQgYWJzIG4gPSBpZiBuID49IDBsIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgbWluX2ludCA9IDB4ODAwMDAwMDBsXG5sZXQgbWF4X2ludCA9IDB4N0ZGRkZGRkZsXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFsKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbWF0Y2ggU3lzLndvcmRfc2l6ZSB3aXRoXG4gIHwgMzIgLT5cbiAgICAgIGxldCBtYXhfaW50ID0gb2ZfaW50IFN0ZGxpYi5tYXhfaW50IGluXG4gICAgICBmdW4gbiAtPlxuICAgICAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgICAgIFNvbWUgKHRvX2ludCBuKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgTm9uZVxuICB8IDY0IC0+XG4gICAgICAoKiBTbyB0aGF0IGl0IGNvbXBpbGVzIGluIDMyLWJpdCAqKVxuICAgICAgbGV0IG1hc2sgPSAweEZGRkYgbHNsIDE2IGxvciAweEZGRkYgaW5cbiAgICAgIGZ1biBuIC0+IFNvbWUgKHRvX2ludCBuIGxhbmQgbWFzaylcbiAgfCBfIC0+XG4gICAgICBhc3NlcnQgZmFsc2VcblxuZXh0ZXJuYWwgZm9ybWF0IDogc3RyaW5nIC0+IGludDMyIC0+IHN0cmluZyA9IFwiY2FtbF9pbnQzMl9mb3JtYXRcIlxubGV0IHRvX3N0cmluZyBuID0gZm9ybWF0IFwiJWRcIiBuXG5cbmV4dGVybmFsIG9mX3N0cmluZyA6IHN0cmluZyAtPiBpbnQzMiA9IFwiY2FtbF9pbnQzMl9vZl9zdHJpbmdcIlxuXG5sZXQgb2Zfc3RyaW5nX29wdCBzID1cbiAgKCogVE9ETzogZXhwb3NlIGEgbm9uLXJhaXNpbmcgcHJpbWl0aXZlIGRpcmVjdGx5LiAqKVxuICB0cnkgU29tZSAob2Zfc3RyaW5nIHMpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxudHlwZSB0ID0gaW50MzJcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNb2R1bGUgW0ludDY0XTogNjQtYml0IGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZyA6IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbmVnXCJcbmV4dGVybmFsIGFkZCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfYWRkXCJcbmV4dGVybmFsIHN1YiA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfc3ViXCJcbmV4dGVybmFsIG11bCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbXVsXCJcbmV4dGVybmFsIGRpdiA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfZGl2XCJcbmV4dGVybmFsIHJlbSA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfbW9kXCJcbmV4dGVybmFsIGxvZ2FuZCA6IGludDY0IC0+IGludDY0IC0+IGludDY0ID0gXCIlaW50NjRfYW5kXCJcbmV4dGVybmFsIGxvZ29yIDogaW50NjQgLT4gaW50NjQgLT4gaW50NjQgPSBcIiVpbnQ2NF9vclwiXG5leHRlcm5hbCBsb2d4b3IgOiBpbnQ2NCAtPiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWludDY0X3hvclwiXG5leHRlcm5hbCBzaGlmdF9sZWZ0IDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfbHNsXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0IDogaW50NjQgLT4gaW50IC0+IGludDY0ID0gXCIlaW50NjRfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgOiBpbnQ2NCAtPiBpbnQgLT4gaW50NjQgPSBcIiVpbnQ2NF9sc3JcIlxuZXh0ZXJuYWwgb2ZfaW50IDogaW50IC0+IGludDY0ID0gXCIlaW50NjRfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludCA6IGludDY0IC0+IGludCA9IFwiJWludDY0X3RvX2ludFwiXG5leHRlcm5hbCBvZl9mbG9hdCA6IGZsb2F0IC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X29mX2Zsb2F0XCIgXCJjYW1sX2ludDY0X29mX2Zsb2F0X3VuYm94ZWRcIlxuICBbQEB1bmJveGVkXSBbQEBub2FsbG9jXVxuZXh0ZXJuYWwgdG9fZmxvYXQgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF90b19mbG9hdFwiIFwiY2FtbF9pbnQ2NF90b19mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIG9mX2ludDMyIDogaW50MzIgLT4gaW50NjQgPSBcIiVpbnQ2NF9vZl9pbnQzMlwiXG5leHRlcm5hbCB0b19pbnQzMiA6IGludDY0IC0+IGludDMyID0gXCIlaW50NjRfdG9faW50MzJcIlxuZXh0ZXJuYWwgb2ZfbmF0aXZlaW50IDogbmF0aXZlaW50IC0+IGludDY0ID0gXCIlaW50NjRfb2ZfbmF0aXZlaW50XCJcbmV4dGVybmFsIHRvX25hdGl2ZWludCA6IGludDY0IC0+IG5hdGl2ZWludCA9IFwiJWludDY0X3RvX25hdGl2ZWludFwiXG5cbmxldCB6ZXJvID0gMExcbmxldCBvbmUgPSAxTFxubGV0IG1pbnVzX29uZSA9IC0xTFxubGV0IHN1Y2MgbiA9IGFkZCBuIDFMXG5sZXQgcHJlZCBuID0gc3ViIG4gMUxcbmxldCBhYnMgbiA9IGlmIG4gPj0gMEwgdGhlbiBuIGVsc2UgbmVnIG5cbmxldCBtaW5faW50ID0gMHg4MDAwMDAwMDAwMDAwMDAwTFxubGV0IG1heF9pbnQgPSAweDdGRkZGRkZGRkZGRkZGRkZMXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFMKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgZnVuIG4gLT5cbiAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgU29tZSAodG9faW50IG4pXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gaW50NjQgLT4gc3RyaW5nID0gXCJjYW1sX2ludDY0X2Zvcm1hdFwiXG5sZXQgdG9fc3RyaW5nIG4gPSBmb3JtYXQgXCIlZFwiIG5cblxuZXh0ZXJuYWwgb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDY0ID0gXCJjYW1sX2ludDY0X29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5cblxuZXh0ZXJuYWwgYml0c19vZl9mbG9hdCA6IGZsb2F0IC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X2JpdHNfb2ZfZmxvYXRcIiBcImNhbWxfaW50NjRfYml0c19vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIGZsb2F0X29mX2JpdHMgOiBpbnQ2NCAtPiBmbG9hdFxuICA9IFwiY2FtbF9pbnQ2NF9mbG9hdF9vZl9iaXRzXCIgXCJjYW1sX2ludDY0X2Zsb2F0X29mX2JpdHNfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5cbnR5cGUgdCA9IGludDY0XG5cbmxldCBjb21wYXJlICh4OiB0KSAoeTogdCkgPSBTdGRsaWIuY29tcGFyZSB4IHlcbmxldCBlcXVhbCAoeDogdCkgKHk6IHQpID0gY29tcGFyZSB4IHkgPSAwXG5cbmxldCB1bnNpZ25lZF9jb21wYXJlIG4gbSA9XG4gIGNvbXBhcmUgKHN1YiBuIG1pbl9pbnQpIChzdWIgbSBtaW5faW50KVxuXG5sZXQgbWluIHggeSA6IHQgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxubGV0IG1heCB4IHkgOiB0ID0gaWYgeCA+PSB5IHRoZW4geCBlbHNlIHlcblxuKCogVW5zaWduZWQgZGl2aXNpb24gZnJvbSBzaWduZWQgZGl2aXNpb24gb2YgdGhlIHNhbWVcbiAgIGJpdG5lc3MuIFNlZSBXYXJyZW4gSnIuLCBIZW5yeSBTLiAoMjAxMykuIEhhY2tlcidzIERlbGlnaHQgKDIgZWQuKSwgU2VjIDktMy5cbiopXG5sZXQgdW5zaWduZWRfZGl2IG4gZCA9XG4gIGlmIGQgPCB6ZXJvIHRoZW5cbiAgICBpZiB1bnNpZ25lZF9jb21wYXJlIG4gZCA8IDAgdGhlbiB6ZXJvIGVsc2Ugb25lXG4gIGVsc2VcbiAgICBsZXQgcSA9IHNoaWZ0X2xlZnQgKGRpdiAoc2hpZnRfcmlnaHRfbG9naWNhbCBuIDEpIGQpIDEgaW5cbiAgICBsZXQgciA9IHN1YiBuIChtdWwgcSBkKSBpblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgciBkID49IDAgdGhlbiBzdWNjIHEgZWxzZSBxXG5cbmxldCB1bnNpZ25lZF9yZW0gbiBkID1cbiAgc3ViIG4gKG11bCAodW5zaWduZWRfZGl2IG4gZCkgZClcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogTW9kdWxlIFtOYXRpdmVpbnRdOiBwcm9jZXNzb3ItbmF0aXZlIGludGVnZXJzICopXG5cbmV4dGVybmFsIG5lZzogbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9uZWdcIlxuZXh0ZXJuYWwgYWRkOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hZGRcIlxuZXh0ZXJuYWwgc3ViOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9zdWJcIlxuZXh0ZXJuYWwgbXVsOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9tdWxcIlxuZXh0ZXJuYWwgZGl2OiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9kaXZcIlxuZXh0ZXJuYWwgcmVtOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9tb2RcIlxuZXh0ZXJuYWwgbG9nYW5kOiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50IC0+IG5hdGl2ZWludCA9IFwiJW5hdGl2ZWludF9hbmRcIlxuZXh0ZXJuYWwgbG9nb3I6IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29yXCJcbmV4dGVybmFsIGxvZ3hvcjogbmF0aXZlaW50IC0+IG5hdGl2ZWludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfeG9yXCJcbmV4dGVybmFsIHNoaWZ0X2xlZnQ6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2xzbFwiXG5leHRlcm5hbCBzaGlmdF9yaWdodDogbmF0aXZlaW50IC0+IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfYXNyXCJcbmV4dGVybmFsIHNoaWZ0X3JpZ2h0X2xvZ2ljYWw6IG5hdGl2ZWludCAtPiBpbnQgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X2xzclwiXG5leHRlcm5hbCBvZl9pbnQ6IGludCAtPiBuYXRpdmVpbnQgPSBcIiVuYXRpdmVpbnRfb2ZfaW50XCJcbmV4dGVybmFsIHRvX2ludDogbmF0aXZlaW50IC0+IGludCA9IFwiJW5hdGl2ZWludF90b19pbnRcIlxuZXh0ZXJuYWwgb2ZfZmxvYXQgOiBmbG9hdCAtPiBuYXRpdmVpbnRcbiAgPSBcImNhbWxfbmF0aXZlaW50X29mX2Zsb2F0XCIgXCJjYW1sX25hdGl2ZWludF9vZl9mbG9hdF91bmJveGVkXCJcbiAgW0BAdW5ib3hlZF0gW0BAbm9hbGxvY11cbmV4dGVybmFsIHRvX2Zsb2F0IDogbmF0aXZlaW50IC0+IGZsb2F0XG4gID0gXCJjYW1sX25hdGl2ZWludF90b19mbG9hdFwiIFwiY2FtbF9uYXRpdmVpbnRfdG9fZmxvYXRfdW5ib3hlZFwiXG4gIFtAQHVuYm94ZWRdIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBvZl9pbnQzMjogaW50MzIgLT4gbmF0aXZlaW50ID0gXCIlbmF0aXZlaW50X29mX2ludDMyXCJcbmV4dGVybmFsIHRvX2ludDMyOiBuYXRpdmVpbnQgLT4gaW50MzIgPSBcIiVuYXRpdmVpbnRfdG9faW50MzJcIlxuXG5sZXQgemVybyA9IDBuXG5sZXQgb25lID0gMW5cbmxldCBtaW51c19vbmUgPSAtMW5cbmxldCBzdWNjIG4gPSBhZGQgbiAxblxubGV0IHByZWQgbiA9IHN1YiBuIDFuXG5sZXQgYWJzIG4gPSBpZiBuID49IDBuIHRoZW4gbiBlbHNlIG5lZyBuXG5sZXQgc2l6ZSA9IFN5cy53b3JkX3NpemVcbmxldCBtaW5faW50ID0gc2hpZnRfbGVmdCAxbiAoc2l6ZSAtIDEpXG5sZXQgbWF4X2ludCA9IHN1YiBtaW5faW50IDFuXG5sZXQgbG9nbm90IG4gPSBsb2d4b3IgbiAoLTFuKVxuXG5sZXQgdW5zaWduZWRfdG9faW50ID1cbiAgbGV0IG1heF9pbnQgPSBvZl9pbnQgU3RkbGliLm1heF9pbnQgaW5cbiAgZnVuIG4gLT5cbiAgICBpZiBjb21wYXJlIHplcm8gbiA8PSAwICYmIGNvbXBhcmUgbiBtYXhfaW50IDw9IDAgdGhlblxuICAgICAgU29tZSAodG9faW50IG4pXG4gICAgZWxzZVxuICAgICAgTm9uZVxuXG5leHRlcm5hbCBmb3JtYXQgOiBzdHJpbmcgLT4gbmF0aXZlaW50IC0+IHN0cmluZyA9IFwiY2FtbF9uYXRpdmVpbnRfZm9ybWF0XCJcbmxldCB0b19zdHJpbmcgbiA9IGZvcm1hdCBcIiVkXCIgblxuXG5leHRlcm5hbCBvZl9zdHJpbmc6IHN0cmluZyAtPiBuYXRpdmVpbnQgPSBcImNhbWxfbmF0aXZlaW50X29mX3N0cmluZ1wiXG5cbmxldCBvZl9zdHJpbmdfb3B0IHMgPVxuICAoKiBUT0RPOiBleHBvc2UgYSBub24tcmFpc2luZyBwcmltaXRpdmUgZGlyZWN0bHkuICopXG4gIHRyeSBTb21lIChvZl9zdHJpbmcgcylcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG50eXBlIHQgPSBuYXRpdmVpbnRcblxubGV0IGNvbXBhcmUgKHg6IHQpICh5OiB0KSA9IFN0ZGxpYi5jb21wYXJlIHggeVxubGV0IGVxdWFsICh4OiB0KSAoeTogdCkgPSBjb21wYXJlIHggeSA9IDBcblxubGV0IHVuc2lnbmVkX2NvbXBhcmUgbiBtID1cbiAgY29tcGFyZSAoc3ViIG4gbWluX2ludCkgKHN1YiBtIG1pbl9pbnQpXG5cbmxldCBtaW4geCB5IDogdCA9IGlmIHggPD0geSB0aGVuIHggZWxzZSB5XG5sZXQgbWF4IHggeSA6IHQgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4oKiBVbnNpZ25lZCBkaXZpc2lvbiBmcm9tIHNpZ25lZCBkaXZpc2lvbiBvZiB0aGUgc2FtZVxuICAgYml0bmVzcy4gU2VlIFdhcnJlbiBKci4sIEhlbnJ5IFMuICgyMDEzKS4gSGFja2VyJ3MgRGVsaWdodCAoMiBlZC4pLCBTZWMgOS0zLlxuKilcbmxldCB1bnNpZ25lZF9kaXYgbiBkID1cbiAgaWYgZCA8IHplcm8gdGhlblxuICAgIGlmIHVuc2lnbmVkX2NvbXBhcmUgbiBkIDwgMCB0aGVuIHplcm8gZWxzZSBvbmVcbiAgZWxzZVxuICAgIGxldCBxID0gc2hpZnRfbGVmdCAoZGl2IChzaGlmdF9yaWdodF9sb2dpY2FsIG4gMSkgZCkgMSBpblxuICAgIGxldCByID0gc3ViIG4gKG11bCBxIGQpIGluXG4gICAgaWYgdW5zaWduZWRfY29tcGFyZSByIGQgPj0gMCB0aGVuIHN1Y2MgcSBlbHNlIHFcblxubGV0IHVuc2lnbmVkX3JlbSBuIGQgPVxuICBzdWIgbiAobXVsICh1bnNpZ25lZF9kaXYgbiBkKSBkKVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3IgbGV4ZXJzIGdlbmVyYXRlZCBieSBjYW1sbGV4ICopXG5cbnR5cGUgcG9zaXRpb24gPSB7XG4gIHBvc19mbmFtZSA6IHN0cmluZztcbiAgcG9zX2xudW0gOiBpbnQ7XG4gIHBvc19ib2wgOiBpbnQ7XG4gIHBvc19jbnVtIDogaW50O1xufVxuXG5sZXQgZHVtbXlfcG9zID0ge1xuICBwb3NfZm5hbWUgPSBcIlwiO1xuICBwb3NfbG51bSA9IDA7XG4gIHBvc19ib2wgPSAwO1xuICBwb3NfY251bSA9IC0xO1xufVxuXG50eXBlIGxleGJ1ZiA9XG4gIHsgcmVmaWxsX2J1ZmYgOiBsZXhidWYgLT4gdW5pdDtcbiAgICBtdXRhYmxlIGxleF9idWZmZXIgOiBieXRlcztcbiAgICBtdXRhYmxlIGxleF9idWZmZXJfbGVuIDogaW50O1xuICAgIG11dGFibGUgbGV4X2Fic19wb3MgOiBpbnQ7XG4gICAgbXV0YWJsZSBsZXhfc3RhcnRfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2N1cnJfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2xhc3RfcG9zIDogaW50O1xuICAgIG11dGFibGUgbGV4X2xhc3RfYWN0aW9uIDogaW50O1xuICAgIG11dGFibGUgbGV4X2VvZl9yZWFjaGVkIDogYm9vbDtcbiAgICBtdXRhYmxlIGxleF9tZW0gOiBpbnQgYXJyYXk7XG4gICAgbXV0YWJsZSBsZXhfc3RhcnRfcCA6IHBvc2l0aW9uO1xuICAgIG11dGFibGUgbGV4X2N1cnJfcCA6IHBvc2l0aW9uO1xuICB9XG5cbnR5cGUgbGV4X3RhYmxlcyA9XG4gIHsgbGV4X2Jhc2U6IHN0cmluZztcbiAgICBsZXhfYmFja3Ryazogc3RyaW5nO1xuICAgIGxleF9kZWZhdWx0OiBzdHJpbmc7XG4gICAgbGV4X3RyYW5zOiBzdHJpbmc7XG4gICAgbGV4X2NoZWNrOiBzdHJpbmc7XG4gICAgbGV4X2Jhc2VfY29kZSA6IHN0cmluZztcbiAgICBsZXhfYmFja3Rya19jb2RlIDogc3RyaW5nO1xuICAgIGxleF9kZWZhdWx0X2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X3RyYW5zX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2NoZWNrX2NvZGUgOiBzdHJpbmc7XG4gICAgbGV4X2NvZGU6IHN0cmluZzt9XG5cbmV4dGVybmFsIGNfZW5naW5lIDogbGV4X3RhYmxlcyAtPiBpbnQgLT4gbGV4YnVmIC0+IGludCA9IFwiY2FtbF9sZXhfZW5naW5lXCJcbmV4dGVybmFsIGNfbmV3X2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnRcbiAgICAgICAgICAgICAgICAgICAgICA9IFwiY2FtbF9uZXdfbGV4X2VuZ2luZVwiXG5cbmxldCBlbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gIGxldCByZXN1bHQgPSBjX2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gIGlmIHJlc3VsdCA+PSAwICYmIGJ1Zi5sZXhfY3Vycl9wICE9IGR1bW15X3BvcyB0aGVuIGJlZ2luXG4gICAgYnVmLmxleF9zdGFydF9wIDwtIGJ1Zi5sZXhfY3Vycl9wO1xuICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gIGVuZDtcbiAgcmVzdWx0XG5cblxubGV0IG5ld19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiA9XG4gIGxldCByZXN1bHQgPSBjX25ld19lbmdpbmUgdGJsIHN0YXRlIGJ1ZiBpblxuICBpZiByZXN1bHQgPj0gMCAmJiBidWYubGV4X2N1cnJfcCAhPSBkdW1teV9wb3MgdGhlbiBiZWdpblxuICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICBidWYubGV4X2N1cnJfcCA8LSB7YnVmLmxleF9jdXJyX3BcbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICBlbmQ7XG4gIHJlc3VsdFxuXG5sZXQgbGV4X3JlZmlsbCByZWFkX2Z1biBhdXhfYnVmZmVyIGxleGJ1ZiA9XG4gIGxldCByZWFkID1cbiAgICByZWFkX2Z1biBhdXhfYnVmZmVyIChCeXRlcy5sZW5ndGggYXV4X2J1ZmZlcikgaW5cbiAgbGV0IG4gPVxuICAgIGlmIHJlYWQgPiAwXG4gICAgdGhlbiByZWFkXG4gICAgZWxzZSAobGV4YnVmLmxleF9lb2ZfcmVhY2hlZCA8LSB0cnVlOyAwKSBpblxuICAoKiBDdXJyZW50IHN0YXRlIG9mIHRoZSBidWZmZXI6XG4gICAgICAgIDwtLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLT5cbiAgICAgICAgfCAganVuayB8ICAgICAgdmFsaWQgZGF0YSAgICAgfCAgIGp1bmsgICAgfFxuICAgICAgICBeICAgICAgIF4gICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICBeXG4gICAgICAgIDAgICAgc3RhcnRfcG9zICAgICAgICAgICAgIGJ1ZmZlcl9lbmQgICAgQnl0ZXMubGVuZ3RoIGJ1ZmZlclxuICAqKVxuICBpZiBsZXhidWYubGV4X2J1ZmZlcl9sZW4gKyBuID4gQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyIHRoZW4gYmVnaW5cbiAgICAoKiBUaGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciAqKVxuICAgIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgblxuICAgICAgIDw9IEJ5dGVzLmxlbmd0aCBsZXhidWYubGV4X2J1ZmZlclxuICAgIHRoZW4gYmVnaW5cbiAgICAgICgqIEJ1dCB0aGVyZSBpcyBlbm91Z2ggc3BhY2UgaWYgd2UgcmVjbGFpbSB0aGUganVuayBhdCB0aGUgYmVnaW5uaW5nXG4gICAgICAgICBvZiB0aGUgYnVmZmVyICopXG4gICAgICBCeXRlcy5ibGl0IGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zXG4gICAgICAgICAgICAgICAgICBsZXhidWYubGV4X2J1ZmZlciAwXG4gICAgICAgICAgICAgICAgICAobGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MpXG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICgqIFdlIG11c3QgZ3JvdyB0aGUgYnVmZmVyLiAgRG91YmxpbmcgaXRzIHNpemUgd2lsbCBwcm92aWRlIGVub3VnaFxuICAgICAgICAgc3BhY2Ugc2luY2UgbiA8PSBTdHJpbmcubGVuZ3RoIGF1eF9idWZmZXIgPD0gU3RyaW5nLmxlbmd0aCBidWZmZXIuXG4gICAgICAgICBXYXRjaCBvdXQgZm9yIHN0cmluZyBsZW5ndGggb3ZlcmZsb3csIHRob3VnaC4gKilcbiAgICAgIGxldCBuZXdsZW4gPVxuICAgICAgICBJbnQubWluICgyICogQnl0ZXMubGVuZ3RoIGxleGJ1Zi5sZXhfYnVmZmVyKSBTeXMubWF4X3N0cmluZ19sZW5ndGggaW5cbiAgICAgIGlmIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgbiA+IG5ld2xlblxuICAgICAgdGhlbiBmYWlsd2l0aCBcIkxleGluZy5sZXhfcmVmaWxsOiBjYW5ub3QgZ3JvdyBidWZmZXJcIjtcbiAgICAgIGxldCBuZXdidWYgPSBCeXRlcy5jcmVhdGUgbmV3bGVuIGluXG4gICAgICAoKiBDb3B5IHRoZSB2YWxpZCBkYXRhIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5ldyBidWZmZXIgKilcbiAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3NcbiAgICAgICAgICAgICAgICAgIG5ld2J1ZiAwXG4gICAgICAgICAgICAgICAgICAobGV4YnVmLmxleF9idWZmZXJfbGVuIC0gbGV4YnVmLmxleF9zdGFydF9wb3MpO1xuICAgICAgbGV4YnVmLmxleF9idWZmZXIgPC0gbmV3YnVmXG4gICAgZW5kO1xuICAgICgqIFJlYWxsb2NhdGlvbiBvciBub3QsIHdlIGhhdmUgc2hpZnRlZCB0aGUgZGF0YSBsZWZ0IGJ5XG4gICAgICAgc3RhcnRfcG9zIGNoYXJhY3RlcnM7IHVwZGF0ZSB0aGUgcG9zaXRpb25zICopXG4gICAgbGV0IHMgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGxleGJ1Zi5sZXhfYWJzX3BvcyA8LSBsZXhidWYubGV4X2Fic19wb3MgKyBzO1xuICAgIGxleGJ1Zi5sZXhfY3Vycl9wb3MgPC0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIHM7XG4gICAgbGV4YnVmLmxleF9zdGFydF9wb3MgPC0gMDtcbiAgICBsZXhidWYubGV4X2xhc3RfcG9zIDwtIGxleGJ1Zi5sZXhfbGFzdF9wb3MgLSBzO1xuICAgIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiA8LSBsZXhidWYubGV4X2J1ZmZlcl9sZW4gLSBzIDtcbiAgICBsZXQgdCA9IGxleGJ1Zi5sZXhfbWVtIGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCB0LTEgZG9cbiAgICAgIGxldCB2ID0gdC4oaSkgaW5cbiAgICAgIGlmIHYgPj0gMCB0aGVuXG4gICAgICAgIHQuKGkpIDwtIHYtc1xuICAgIGRvbmVcbiAgZW5kO1xuICAoKiBUaGVyZSBpcyBub3cgZW5vdWdoIHNwYWNlIGF0IHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciAqKVxuICBCeXRlcy5ibGl0IGF1eF9idWZmZXIgMCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X2J1ZmZlcl9sZW4gbjtcbiAgbGV4YnVmLmxleF9idWZmZXJfbGVuIDwtIGxleGJ1Zi5sZXhfYnVmZmVyX2xlbiArIG5cblxubGV0IHplcm9fcG9zID0ge1xuICBwb3NfZm5hbWUgPSBcIlwiO1xuICBwb3NfbG51bSA9IDE7XG4gIHBvc19ib2wgPSAwO1xuICBwb3NfY251bSA9IDA7XG59XG5cbmxldCBmcm9tX2Z1bmN0aW9uID8od2l0aF9wb3NpdGlvbnMgPSB0cnVlKSBmID1cbiAgeyByZWZpbGxfYnVmZiA9IGxleF9yZWZpbGwgZiAoQnl0ZXMuY3JlYXRlIDUxMik7XG4gICAgbGV4X2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAxMDI0O1xuICAgIGxleF9idWZmZXJfbGVuID0gMDtcbiAgICBsZXhfYWJzX3BvcyA9IDA7XG4gICAgbGV4X3N0YXJ0X3BvcyA9IDA7XG4gICAgbGV4X2N1cnJfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9wb3MgPSAwO1xuICAgIGxleF9sYXN0X2FjdGlvbiA9IDA7XG4gICAgbGV4X21lbSA9IFt8fF07XG4gICAgbGV4X2VvZl9yZWFjaGVkID0gZmFsc2U7XG4gICAgbGV4X3N0YXJ0X3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICAgIGxleF9jdXJyX3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICB9XG5cbmxldCBmcm9tX2NoYW5uZWwgP3dpdGhfcG9zaXRpb25zIGljID1cbiAgZnJvbV9mdW5jdGlvbiA/d2l0aF9wb3NpdGlvbnMgKGZ1biBidWYgbiAtPiBpbnB1dCBpYyBidWYgMCBuKVxuXG5sZXQgZnJvbV9zdHJpbmcgPyh3aXRoX3Bvc2l0aW9ucyA9IHRydWUpIHMgPVxuICB7IHJlZmlsbF9idWZmID0gKGZ1biBsZXhidWYgLT4gbGV4YnVmLmxleF9lb2ZfcmVhY2hlZCA8LSB0cnVlKTtcbiAgICBsZXhfYnVmZmVyID0gQnl0ZXMub2Zfc3RyaW5nIHM7ICgqIGhhdmUgdG8gbWFrZSBhIGNvcHkgZm9yIGNvbXBhdGliaWxpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggdW5zYWZlLXN0cmluZyBtb2RlICopXG4gICAgbGV4X2J1ZmZlcl9sZW4gPSBTdHJpbmcubGVuZ3RoIHM7XG4gICAgbGV4X2Fic19wb3MgPSAwO1xuICAgIGxleF9zdGFydF9wb3MgPSAwO1xuICAgIGxleF9jdXJyX3BvcyA9IDA7XG4gICAgbGV4X2xhc3RfcG9zID0gMDtcbiAgICBsZXhfbGFzdF9hY3Rpb24gPSAwO1xuICAgIGxleF9tZW0gPSBbfHxdO1xuICAgIGxleF9lb2ZfcmVhY2hlZCA9IHRydWU7XG4gICAgbGV4X3N0YXJ0X3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICAgIGxleF9jdXJyX3AgPSBpZiB3aXRoX3Bvc2l0aW9ucyB0aGVuIHplcm9fcG9zIGVsc2UgZHVtbXlfcG9zO1xuICB9XG5cbmxldCBzZXRfcG9zaXRpb24gbGV4YnVmIHBvc2l0aW9uID1cbiAgbGV4YnVmLmxleF9jdXJyX3AgIDwtIHtwb3NpdGlvbiB3aXRoIHBvc19mbmFtZSA9IGxleGJ1Zi5sZXhfY3Vycl9wLnBvc19mbmFtZX07XG4gIGxleGJ1Zi5sZXhfYWJzX3BvcyA8LSBwb3NpdGlvbi5wb3NfY251bVxuXG5sZXQgc2V0X2ZpbGVuYW1lIGxleGJ1ZiBmbmFtZSA9XG4gIGxleGJ1Zi5sZXhfY3Vycl9wIDwtIHtsZXhidWYubGV4X2N1cnJfcCB3aXRoIHBvc19mbmFtZSA9IGZuYW1lfVxuXG5sZXQgd2l0aF9wb3NpdGlvbnMgbGV4YnVmID0gbGV4YnVmLmxleF9jdXJyX3AgIT0gZHVtbXlfcG9zXG5cbmxldCBsZXhlbWUgbGV4YnVmID1cbiAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICBCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlblxuXG5sZXQgc3ViX2xleGVtZSBsZXhidWYgaTEgaTIgPVxuICBsZXQgbGVuID0gaTItaTEgaW5cbiAgQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBpMSBsZW5cblxubGV0IHN1Yl9sZXhlbWVfb3B0IGxleGJ1ZiBpMSBpMiA9XG4gIGlmIGkxID49IDAgdGhlbiBiZWdpblxuICAgIGxldCBsZW4gPSBpMi1pMSBpblxuICAgIFNvbWUgKEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgaTEgbGVuKVxuICBlbmQgZWxzZSBiZWdpblxuICAgIE5vbmVcbiAgZW5kXG5cbmxldCBzdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIGkgPSBCeXRlcy5nZXQgbGV4YnVmLmxleF9idWZmZXIgaVxuXG5sZXQgc3ViX2xleGVtZV9jaGFyX29wdCBsZXhidWYgaSA9XG4gIGlmIGkgPj0gMCB0aGVuXG4gICAgU29tZSAoQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIGkpXG4gIGVsc2VcbiAgICBOb25lXG5cblxubGV0IGxleGVtZV9jaGFyIGxleGJ1ZiBpID1cbiAgQnl0ZXMuZ2V0IGxleGJ1Zi5sZXhfYnVmZmVyIChsZXhidWYubGV4X3N0YXJ0X3BvcyArIGkpXG5cbmxldCBsZXhlbWVfc3RhcnQgbGV4YnVmID0gbGV4YnVmLmxleF9zdGFydF9wLnBvc19jbnVtXG5sZXQgbGV4ZW1lX2VuZCBsZXhidWYgPSBsZXhidWYubGV4X2N1cnJfcC5wb3NfY251bVxuXG5sZXQgbGV4ZW1lX3N0YXJ0X3AgbGV4YnVmID0gbGV4YnVmLmxleF9zdGFydF9wXG5sZXQgbGV4ZW1lX2VuZF9wIGxleGJ1ZiA9IGxleGJ1Zi5sZXhfY3Vycl9wXG5cbmxldCBuZXdfbGluZSBsZXhidWYgPVxuICBsZXQgbGNwID0gbGV4YnVmLmxleF9jdXJyX3AgaW5cbiAgaWYgbGNwICE9IGR1bW15X3BvcyB0aGVuXG4gICAgbGV4YnVmLmxleF9jdXJyX3AgPC1cbiAgICAgIHsgbGNwIHdpdGhcbiAgICAgICAgcG9zX2xudW0gPSBsY3AucG9zX2xudW0gKyAxO1xuICAgICAgICBwb3NfYm9sID0gbGNwLnBvc19jbnVtO1xuICAgICAgfVxuXG5cblxuKCogRGlzY2FyZCBkYXRhIGxlZnQgaW4gbGV4ZXIgYnVmZmVyLiAqKVxuXG5sZXQgZmx1c2hfaW5wdXQgbGIgPVxuICBsYi5sZXhfY3Vycl9wb3MgPC0gMDtcbiAgbGIubGV4X2Fic19wb3MgPC0gMDtcbiAgbGV0IGxjcCA9IGxiLmxleF9jdXJyX3AgaW5cbiAgaWYgbGNwICE9IGR1bW15X3BvcyB0aGVuXG4gICAgbGIubGV4X2N1cnJfcCA8LSB7emVyb19wb3Mgd2l0aCBwb3NfZm5hbWUgPSBsY3AucG9zX2ZuYW1lfTtcbiAgbGIubGV4X2J1ZmZlcl9sZW4gPC0gMDtcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogVGhlIHBhcnNpbmcgZW5naW5lICopXG5cbm9wZW4gTGV4aW5nXG5cbigqIEludGVybmFsIGludGVyZmFjZSB0byB0aGUgcGFyc2luZyBlbmdpbmUgKilcblxudHlwZSBwYXJzZXJfZW52ID1cbiAgeyBtdXRhYmxlIHNfc3RhY2sgOiBpbnQgYXJyYXk7ICAgICAgICAoKiBTdGF0ZXMgKilcbiAgICBtdXRhYmxlIHZfc3RhY2sgOiBPYmoudCBhcnJheTsgICAgICAoKiBTZW1hbnRpYyBhdHRyaWJ1dGVzICopXG4gICAgbXV0YWJsZSBzeW1iX3N0YXJ0X3N0YWNrIDogcG9zaXRpb24gYXJyYXk7ICgqIFN0YXJ0IHBvc2l0aW9ucyAqKVxuICAgIG11dGFibGUgc3ltYl9lbmRfc3RhY2sgOiBwb3NpdGlvbiBhcnJheTsgICAoKiBFbmQgcG9zaXRpb25zICopXG4gICAgbXV0YWJsZSBzdGFja3NpemUgOiBpbnQ7ICAgICAgICAgICAgKCogU2l6ZSBvZiB0aGUgc3RhY2tzICopXG4gICAgbXV0YWJsZSBzdGFja2Jhc2UgOiBpbnQ7ICAgICAgICAgICAgKCogQmFzZSBzcCBmb3IgY3VycmVudCBwYXJzZSAqKVxuICAgIG11dGFibGUgY3Vycl9jaGFyIDogaW50OyAgICAgICAgICAgICgqIExhc3QgdG9rZW4gcmVhZCAqKVxuICAgIG11dGFibGUgbHZhbCA6IE9iai50OyAgICAgICAgICAgICAgICgqIEl0cyBzZW1hbnRpYyBhdHRyaWJ1dGUgKilcbiAgICBtdXRhYmxlIHN5bWJfc3RhcnQgOiBwb3NpdGlvbjsgICAgICAoKiBTdGFydCBwb3MuIG9mIHRoZSBjdXJyZW50IHN5bWJvbCopXG4gICAgbXV0YWJsZSBzeW1iX2VuZCA6IHBvc2l0aW9uOyAgICAgICAgKCogRW5kIHBvcy4gb2YgdGhlIGN1cnJlbnQgc3ltYm9sICopXG4gICAgbXV0YWJsZSBhc3AgOiBpbnQ7ICAgICAgICAgICAgICAgICAgKCogVGhlIHN0YWNrIHBvaW50ZXIgZm9yIGF0dHJpYnV0ZXMgKilcbiAgICBtdXRhYmxlIHJ1bGVfbGVuIDogaW50OyAgICAgICAgICAgICAoKiBOdW1iZXIgb2YgcmhzIGl0ZW1zIGluIHRoZSBydWxlICopXG4gICAgbXV0YWJsZSBydWxlX251bWJlciA6IGludDsgICAgICAgICAgKCogUnVsZSBudW1iZXIgdG8gcmVkdWNlIGJ5ICopXG4gICAgbXV0YWJsZSBzcCA6IGludDsgICAgICAgICAgICAgICAgICAgKCogU2F2ZWQgc3AgZm9yIHBhcnNlX2VuZ2luZSAqKVxuICAgIG11dGFibGUgc3RhdGUgOiBpbnQ7ICAgICAgICAgICAgICAgICgqIFNhdmVkIHN0YXRlIGZvciBwYXJzZV9lbmdpbmUgKilcbiAgICBtdXRhYmxlIGVycmZsYWcgOiBpbnQgfSAgICAgICAgICAgICAoKiBTYXZlZCBlcnJvciBmbGFnIGZvciBwYXJzZV9lbmdpbmUgKilcbltAQHdhcm5pbmcgXCItdW51c2VkLWZpZWxkXCJdXG5cbnR5cGUgcGFyc2VfdGFibGVzID1cbiAgeyBhY3Rpb25zIDogKHBhcnNlcl9lbnYgLT4gT2JqLnQpIGFycmF5O1xuICAgIHRyYW5zbF9jb25zdCA6IGludCBhcnJheTtcbiAgICB0cmFuc2xfYmxvY2sgOiBpbnQgYXJyYXk7XG4gICAgbGhzIDogc3RyaW5nO1xuICAgIGxlbiA6IHN0cmluZztcbiAgICBkZWZyZWQgOiBzdHJpbmc7XG4gICAgZGdvdG8gOiBzdHJpbmc7XG4gICAgc2luZGV4IDogc3RyaW5nO1xuICAgIHJpbmRleCA6IHN0cmluZztcbiAgICBnaW5kZXggOiBzdHJpbmc7XG4gICAgdGFibGVzaXplIDogaW50O1xuICAgIHRhYmxlIDogc3RyaW5nO1xuICAgIGNoZWNrIDogc3RyaW5nO1xuICAgIGVycm9yX2Z1bmN0aW9uIDogc3RyaW5nIC0+IHVuaXQ7XG4gICAgbmFtZXNfY29uc3QgOiBzdHJpbmc7XG4gICAgbmFtZXNfYmxvY2sgOiBzdHJpbmcgfVxuXG5leGNlcHRpb24gWVlleGl0IG9mIE9iai50XG5leGNlcHRpb24gUGFyc2VfZXJyb3JcblxudHlwZSBwYXJzZXJfaW5wdXQgPVxuICAgIFN0YXJ0XG4gIHwgVG9rZW5fcmVhZFxuICB8IFN0YWNrc19ncm93bl8xXG4gIHwgU3RhY2tzX2dyb3duXzJcbiAgfCBTZW1hbnRpY19hY3Rpb25fY29tcHV0ZWRcbiAgfCBFcnJvcl9kZXRlY3RlZFxuXG50eXBlIHBhcnNlcl9vdXRwdXQgPVxuICAgIFJlYWRfdG9rZW5cbiAgfCBSYWlzZV9wYXJzZV9lcnJvclxuICB8IEdyb3dfc3RhY2tzXzFcbiAgfCBHcm93X3N0YWNrc18yXG4gIHwgQ29tcHV0ZV9zZW1hbnRpY19hY3Rpb25cbiAgfCBDYWxsX2Vycm9yX2Z1bmN0aW9uXG5cbigqIHRvIGF2b2lkIHdhcm5pbmdzICopXG5sZXQgXyA9IFtSZWFkX3Rva2VuOyBSYWlzZV9wYXJzZV9lcnJvcjsgR3Jvd19zdGFja3NfMTsgR3Jvd19zdGFja3NfMjtcbiAgICAgICAgIENvbXB1dGVfc2VtYW50aWNfYWN0aW9uOyBDYWxsX2Vycm9yX2Z1bmN0aW9uXVxuXG5leHRlcm5hbCBwYXJzZV9lbmdpbmUgOlxuICAgIHBhcnNlX3RhYmxlcyAtPiBwYXJzZXJfZW52IC0+IHBhcnNlcl9pbnB1dCAtPiBPYmoudCAtPiBwYXJzZXJfb3V0cHV0XG4gICAgPSBcImNhbWxfcGFyc2VfZW5naW5lXCJcblxuZXh0ZXJuYWwgc2V0X3RyYWNlOiBib29sIC0+IGJvb2xcbiAgICA9IFwiY2FtbF9zZXRfcGFyc2VyX3RyYWNlXCJcblxubGV0IGVudiA9XG4gIHsgc19zdGFjayA9IEFycmF5Lm1ha2UgMTAwIDA7XG4gICAgdl9zdGFjayA9IEFycmF5Lm1ha2UgMTAwIChPYmoucmVwciAoKSk7XG4gICAgc3ltYl9zdGFydF9zdGFjayA9IEFycmF5Lm1ha2UgMTAwIGR1bW15X3BvcztcbiAgICBzeW1iX2VuZF9zdGFjayA9IEFycmF5Lm1ha2UgMTAwIGR1bW15X3BvcztcbiAgICBzdGFja3NpemUgPSAxMDA7XG4gICAgc3RhY2tiYXNlID0gMDtcbiAgICBjdXJyX2NoYXIgPSAwO1xuICAgIGx2YWwgPSBPYmoucmVwciAoKTtcbiAgICBzeW1iX3N0YXJ0ID0gZHVtbXlfcG9zO1xuICAgIHN5bWJfZW5kID0gZHVtbXlfcG9zO1xuICAgIGFzcCA9IDA7XG4gICAgcnVsZV9sZW4gPSAwO1xuICAgIHJ1bGVfbnVtYmVyID0gMDtcbiAgICBzcCA9IDA7XG4gICAgc3RhdGUgPSAwO1xuICAgIGVycmZsYWcgPSAwIH1cblxubGV0IGdyb3dfc3RhY2tzKCkgPVxuICBsZXQgb2xkc2l6ZSA9IGVudi5zdGFja3NpemUgaW5cbiAgbGV0IG5ld3NpemUgPSBvbGRzaXplICogMiBpblxuICBsZXQgbmV3X3MgPSBBcnJheS5tYWtlIG5ld3NpemUgMFxuICBhbmQgbmV3X3YgPSBBcnJheS5tYWtlIG5ld3NpemUgKE9iai5yZXByICgpKVxuICBhbmQgbmV3X3N0YXJ0ID0gQXJyYXkubWFrZSBuZXdzaXplIGR1bW15X3Bvc1xuICBhbmQgbmV3X2VuZCA9IEFycmF5Lm1ha2UgbmV3c2l6ZSBkdW1teV9wb3MgaW5cbiAgICBBcnJheS5ibGl0IGVudi5zX3N0YWNrIDAgbmV3X3MgMCBvbGRzaXplO1xuICAgIGVudi5zX3N0YWNrIDwtIG5ld19zO1xuICAgIEFycmF5LmJsaXQgZW52LnZfc3RhY2sgMCBuZXdfdiAwIG9sZHNpemU7XG4gICAgZW52LnZfc3RhY2sgPC0gbmV3X3Y7XG4gICAgQXJyYXkuYmxpdCBlbnYuc3ltYl9zdGFydF9zdGFjayAwIG5ld19zdGFydCAwIG9sZHNpemU7XG4gICAgZW52LnN5bWJfc3RhcnRfc3RhY2sgPC0gbmV3X3N0YXJ0O1xuICAgIEFycmF5LmJsaXQgZW52LnN5bWJfZW5kX3N0YWNrIDAgbmV3X2VuZCAwIG9sZHNpemU7XG4gICAgZW52LnN5bWJfZW5kX3N0YWNrIDwtIG5ld19lbmQ7XG4gICAgZW52LnN0YWNrc2l6ZSA8LSBuZXdzaXplXG5cbmxldCBjbGVhcl9wYXJzZXIoKSA9XG4gIEFycmF5LmZpbGwgZW52LnZfc3RhY2sgMCBlbnYuc3RhY2tzaXplIChPYmoucmVwciAoKSk7XG4gIGVudi5sdmFsIDwtIE9iai5yZXByICgpXG5cbmxldCBjdXJyZW50X2xvb2thaGVhZF9mdW4gPSByZWYgKGZ1biAoXyA6IE9iai50KSAtPiBmYWxzZSlcblxubGV0IHl5cGFyc2UgdGFibGVzIHN0YXJ0IGxleGVyIGxleGJ1ZiA9XG4gIGxldCByZWMgbG9vcCBjbWQgYXJnID1cbiAgICBtYXRjaCBwYXJzZV9lbmdpbmUgdGFibGVzIGVudiBjbWQgYXJnIHdpdGhcbiAgICAgIFJlYWRfdG9rZW4gLT5cbiAgICAgICAgbGV0IHQgPSBPYmoucmVwcihsZXhlciBsZXhidWYpIGluXG4gICAgICAgIGVudi5zeW1iX3N0YXJ0IDwtIGxleGJ1Zi5sZXhfc3RhcnRfcDtcbiAgICAgICAgZW52LnN5bWJfZW5kIDwtIGxleGJ1Zi5sZXhfY3Vycl9wO1xuICAgICAgICBsb29wIFRva2VuX3JlYWQgdFxuICAgIHwgUmFpc2VfcGFyc2VfZXJyb3IgLT5cbiAgICAgICAgcmFpc2UgUGFyc2VfZXJyb3JcbiAgICB8IENvbXB1dGVfc2VtYW50aWNfYWN0aW9uIC0+XG4gICAgICAgIGxldCAoYWN0aW9uLCB2YWx1ZSkgPVxuICAgICAgICAgIHRyeVxuICAgICAgICAgICAgKFNlbWFudGljX2FjdGlvbl9jb21wdXRlZCwgdGFibGVzLmFjdGlvbnMuKGVudi5ydWxlX251bWJlcikgZW52KVxuICAgICAgICAgIHdpdGggUGFyc2VfZXJyb3IgLT5cbiAgICAgICAgICAgIChFcnJvcl9kZXRlY3RlZCwgT2JqLnJlcHIgKCkpIGluXG4gICAgICAgIGxvb3AgYWN0aW9uIHZhbHVlXG4gICAgfCBHcm93X3N0YWNrc18xIC0+XG4gICAgICAgIGdyb3dfc3RhY2tzKCk7IGxvb3AgU3RhY2tzX2dyb3duXzEgKE9iai5yZXByICgpKVxuICAgIHwgR3Jvd19zdGFja3NfMiAtPlxuICAgICAgICBncm93X3N0YWNrcygpOyBsb29wIFN0YWNrc19ncm93bl8yIChPYmoucmVwciAoKSlcbiAgICB8IENhbGxfZXJyb3JfZnVuY3Rpb24gLT5cbiAgICAgICAgdGFibGVzLmVycm9yX2Z1bmN0aW9uIFwic3ludGF4IGVycm9yXCI7XG4gICAgICAgIGxvb3AgRXJyb3JfZGV0ZWN0ZWQgKE9iai5yZXByICgpKSBpblxuICBsZXQgaW5pdF9hc3AgPSBlbnYuYXNwXG4gIGFuZCBpbml0X3NwID0gZW52LnNwXG4gIGFuZCBpbml0X3N0YWNrYmFzZSA9IGVudi5zdGFja2Jhc2VcbiAgYW5kIGluaXRfc3RhdGUgPSBlbnYuc3RhdGVcbiAgYW5kIGluaXRfY3Vycl9jaGFyID0gZW52LmN1cnJfY2hhclxuICBhbmQgaW5pdF9sdmFsID0gZW52Lmx2YWxcbiAgYW5kIGluaXRfZXJyZmxhZyA9IGVudi5lcnJmbGFnIGluXG4gIGVudi5zdGFja2Jhc2UgPC0gZW52LnNwICsgMTtcbiAgZW52LmN1cnJfY2hhciA8LSBzdGFydDtcbiAgZW52LnN5bWJfZW5kIDwtIGxleGJ1Zi5sZXhfY3Vycl9wO1xuICB0cnlcbiAgICBsb29wIFN0YXJ0IChPYmoucmVwciAoKSlcbiAgd2l0aCBleG4gLT5cbiAgICBsZXQgY3Vycl9jaGFyID0gZW52LmN1cnJfY2hhciBpblxuICAgIGVudi5hc3AgPC0gaW5pdF9hc3A7XG4gICAgZW52LnNwIDwtIGluaXRfc3A7XG4gICAgZW52LnN0YWNrYmFzZSA8LSBpbml0X3N0YWNrYmFzZTtcbiAgICBlbnYuc3RhdGUgPC0gaW5pdF9zdGF0ZTtcbiAgICBlbnYuY3Vycl9jaGFyIDwtIGluaXRfY3Vycl9jaGFyO1xuICAgIGVudi5sdmFsIDwtIGluaXRfbHZhbDtcbiAgICBlbnYuZXJyZmxhZyA8LSBpbml0X2VycmZsYWc7XG4gICAgbWF0Y2ggZXhuIHdpdGhcbiAgICAgIFlZZXhpdCB2IC0+XG4gICAgICAgIE9iai5tYWdpYyB2XG4gICAgfCBfIC0+XG4gICAgICAgIGN1cnJlbnRfbG9va2FoZWFkX2Z1biA6PVxuICAgICAgICAgIChmdW4gdG9rIC0+XG4gICAgICAgICAgICBpZiBPYmouaXNfYmxvY2sgdG9rXG4gICAgICAgICAgICB0aGVuIHRhYmxlcy50cmFuc2xfYmxvY2suKE9iai50YWcgdG9rKSA9IGN1cnJfY2hhclxuICAgICAgICAgICAgZWxzZSB0YWJsZXMudHJhbnNsX2NvbnN0LihPYmoubWFnaWMgdG9rKSA9IGN1cnJfY2hhcik7XG4gICAgICAgIHJhaXNlIGV4blxuXG5sZXQgcGVla192YWwgZW52IG4gPVxuICBPYmoubWFnaWMgZW52LnZfc3RhY2suKGVudi5hc3AgLSBuKVxuXG5sZXQgc3ltYm9sX3N0YXJ0X3BvcyAoKSA9XG4gIGxldCByZWMgbG9vcCBpID1cbiAgICBpZiBpIDw9IDAgdGhlbiBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3ApXG4gICAgZWxzZSBiZWdpblxuICAgICAgbGV0IHN0ID0gZW52LnN5bWJfc3RhcnRfc3RhY2suKGVudi5hc3AgLSBpICsgMSkgaW5cbiAgICAgIGxldCBlbiA9IGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcCAtIGkgKyAxKSBpblxuICAgICAgaWYgc3QgPD4gZW4gdGhlbiBzdCBlbHNlIGxvb3AgKGkgLSAxKVxuICAgIGVuZFxuICBpblxuICBsb29wIGVudi5ydWxlX2xlblxuXG5sZXQgc3ltYm9sX2VuZF9wb3MgKCkgPSBlbnYuc3ltYl9lbmRfc3RhY2suKGVudi5hc3ApXG5sZXQgcmhzX3N0YXJ0X3BvcyBuID0gZW52LnN5bWJfc3RhcnRfc3RhY2suKGVudi5hc3AgLSAoZW52LnJ1bGVfbGVuIC0gbikpXG5sZXQgcmhzX2VuZF9wb3MgbiA9IGVudi5zeW1iX2VuZF9zdGFjay4oZW52LmFzcCAtIChlbnYucnVsZV9sZW4gLSBuKSlcblxubGV0IHN5bWJvbF9zdGFydCAoKSA9IChzeW1ib2xfc3RhcnRfcG9zICgpKS5wb3NfY251bVxubGV0IHN5bWJvbF9lbmQgKCkgPSAoc3ltYm9sX2VuZF9wb3MgKCkpLnBvc19jbnVtXG5sZXQgcmhzX3N0YXJ0IG4gPSAocmhzX3N0YXJ0X3BvcyBuKS5wb3NfY251bVxubGV0IHJoc19lbmQgbiA9IChyaHNfZW5kX3BvcyBuKS5wb3NfY251bVxuXG5sZXQgaXNfY3VycmVudF9sb29rYWhlYWQgdG9rID1cbiAgKCFjdXJyZW50X2xvb2thaGVhZF9mdW4pKE9iai5yZXByIHRvaylcblxubGV0IHBhcnNlX2Vycm9yIChfIDogc3RyaW5nKSA9ICgpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIFNldHMgb3ZlciBvcmRlcmVkIHR5cGVzICopXG5cbm1vZHVsZSB0eXBlIE9yZGVyZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGNvbXBhcmU6IHQgLT4gdCAtPiBpbnRcbiAgZW5kXG5cbm1vZHVsZSB0eXBlIFMgPVxuICBzaWdcbiAgICB0eXBlIGVsdFxuICAgIHR5cGUgdFxuICAgIHZhbCBlbXB0eTogdFxuICAgIHZhbCBpc19lbXB0eTogdCAtPiBib29sXG4gICAgdmFsIG1lbTogZWx0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBhZGQ6IGVsdCAtPiB0IC0+IHRcbiAgICB2YWwgc2luZ2xldG9uOiBlbHQgLT4gdFxuICAgIHZhbCByZW1vdmU6IGVsdCAtPiB0IC0+IHRcbiAgICB2YWwgdW5pb246IHQgLT4gdCAtPiB0XG4gICAgdmFsIGludGVyOiB0IC0+IHQgLT4gdFxuICAgIHZhbCBkaXNqb2ludDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgZGlmZjogdCAtPiB0IC0+IHRcbiAgICB2YWwgY29tcGFyZTogdCAtPiB0IC0+IGludFxuICAgIHZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgc3Vic2V0OiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBpdGVyOiAoZWx0IC0+IHVuaXQpIC0+IHQgLT4gdW5pdFxuICAgIHZhbCBtYXA6IChlbHQgLT4gZWx0KSAtPiB0IC0+IHRcbiAgICB2YWwgZm9sZDogKGVsdCAtPiAnYSAtPiAnYSkgLT4gdCAtPiAnYSAtPiAnYVxuICAgIHZhbCBmb3JfYWxsOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gYm9vbFxuICAgIHZhbCBleGlzdHM6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBib29sXG4gICAgdmFsIGZpbHRlcjogKGVsdCAtPiBib29sKSAtPiB0IC0+IHRcbiAgICB2YWwgZmlsdGVyX21hcDogKGVsdCAtPiBlbHQgb3B0aW9uKSAtPiB0IC0+IHRcbiAgICB2YWwgcGFydGl0aW9uOiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gdCAqIHRcbiAgICB2YWwgY2FyZGluYWw6IHQgLT4gaW50XG4gICAgdmFsIGVsZW1lbnRzOiB0IC0+IGVsdCBsaXN0XG4gICAgdmFsIG1pbl9lbHQ6IHQgLT4gZWx0XG4gICAgdmFsIG1pbl9lbHRfb3B0OiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgbWF4X2VsdDogdCAtPiBlbHRcbiAgICB2YWwgbWF4X2VsdF9vcHQ6IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBjaG9vc2U6IHQgLT4gZWx0XG4gICAgdmFsIGNob29zZV9vcHQ6IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBzcGxpdDogZWx0IC0+IHQgLT4gdCAqIGJvb2wgKiB0XG4gICAgdmFsIGZpbmQ6IGVsdCAtPiB0IC0+IGVsdFxuICAgIHZhbCBmaW5kX29wdDogZWx0IC0+IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBmaW5kX2ZpcnN0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0XG4gICAgdmFsIGZpbmRfZmlyc3Rfb3B0OiAoZWx0IC0+IGJvb2wpIC0+IHQgLT4gZWx0IG9wdGlvblxuICAgIHZhbCBmaW5kX2xhc3Q6IChlbHQgLT4gYm9vbCkgLT4gdCAtPiBlbHRcbiAgICB2YWwgZmluZF9sYXN0X29wdDogKGVsdCAtPiBib29sKSAtPiB0IC0+IGVsdCBvcHRpb25cbiAgICB2YWwgb2ZfbGlzdDogZWx0IGxpc3QgLT4gdFxuICAgIHZhbCB0b19zZXFfZnJvbSA6IGVsdCAtPiB0IC0+IGVsdCBTZXEudFxuICAgIHZhbCB0b19zZXEgOiB0IC0+IGVsdCBTZXEudFxuICAgIHZhbCB0b19yZXZfc2VxIDogdCAtPiBlbHQgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6IGVsdCBTZXEudCAtPiB0IC0+IHRcbiAgICB2YWwgb2Zfc2VxIDogZWx0IFNlcS50IC0+IHRcbiAgZW5kXG5cbm1vZHVsZSBNYWtlKE9yZDogT3JkZXJlZFR5cGUpID1cbiAgc3RydWN0XG4gICAgdHlwZSBlbHQgPSBPcmQudFxuICAgIHR5cGUgdCA9IEVtcHR5IHwgTm9kZSBvZiB7bDp0OyB2OmVsdDsgcjp0OyBoOmludH1cblxuICAgICgqIFNldHMgYXJlIHJlcHJlc2VudGVkIGJ5IGJhbGFuY2VkIGJpbmFyeSB0cmVlcyAodGhlIGhlaWdodHMgb2YgdGhlXG4gICAgICAgY2hpbGRyZW4gZGlmZmVyIGJ5IGF0IG1vc3QgMiAqKVxuXG4gICAgbGV0IGhlaWdodCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IDBcbiAgICAgIHwgTm9kZSB7aH0gLT4gaFxuXG4gICAgKCogQ3JlYXRlcyBhIG5ldyBub2RlIHdpdGggbGVmdCBzb24gbCwgdmFsdWUgdiBhbmQgcmlnaHQgc29uIHIuXG4gICAgICAgV2UgbXVzdCBoYXZlIGFsbCBlbGVtZW50cyBvZiBsIDwgdiA8IGFsbCBlbGVtZW50cyBvZiByLlxuICAgICAgIGwgYW5kIHIgbXVzdCBiZSBiYWxhbmNlZCBhbmQgfCBoZWlnaHQgbCAtIGhlaWdodCByIHwgPD0gMi5cbiAgICAgICBJbmxpbmUgZXhwYW5zaW9uIG9mIGhlaWdodCBmb3IgYmV0dGVyIHNwZWVkLiAqKVxuXG4gICAgbGV0IGNyZWF0ZSBsIHYgciA9XG4gICAgICBsZXQgaGwgPSBtYXRjaCBsIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGxldCBociA9IG1hdGNoIHIgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgTm9kZXtsOyB2OyByOyBoPShpZiBobCA+PSBociB0aGVuIGhsICsgMSBlbHNlIGhyICsgMSl9XG5cbiAgICAoKiBTYW1lIGFzIGNyZWF0ZSwgYnV0IHBlcmZvcm1zIG9uZSBzdGVwIG9mIHJlYmFsYW5jaW5nIGlmIG5lY2Vzc2FyeS5cbiAgICAgICBBc3N1bWVzIGwgYW5kIHIgYmFsYW5jZWQgYW5kIHwgaGVpZ2h0IGwgLSBoZWlnaHQgciB8IDw9IDMuXG4gICAgICAgSW5saW5lIGV4cGFuc2lvbiBvZiBjcmVhdGUgZm9yIGJldHRlciBzcGVlZCBpbiB0aGUgbW9zdCBmcmVxdWVudCBjYXNlXG4gICAgICAgd2hlcmUgbm8gcmViYWxhbmNpbmcgaXMgcmVxdWlyZWQuICopXG5cbiAgICBsZXQgYmFsIGwgdiByID1cbiAgICAgIGxldCBobCA9IG1hdGNoIGwgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgbGV0IGhyID0gbWF0Y2ggciB3aXRoIEVtcHR5IC0+IDAgfCBOb2RlIHtofSAtPiBoIGluXG4gICAgICBpZiBobCA+IGhyICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPWxsOyB2PWx2OyByPWxyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IGxsID49IGhlaWdodCBsciB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSBsbCBsdiAoY3JlYXRlIGxyIHYgcilcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggbHIgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiU2V0LmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPWxybDsgdj1scnY7IHI9bHJyfS0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsbCBsdiBscmwpIGxydiAoY3JlYXRlIGxyciB2IHIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlIGlmIGhyID4gaGwgKyAyIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggciB3aXRoXG4gICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgfCBOb2Rle2w9cmw7IHY9cnY7IHI9cnJ9IC0+XG4gICAgICAgICAgICBpZiBoZWlnaHQgcnIgPj0gaGVpZ2h0IHJsIHRoZW5cbiAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB2IHJsKSBydiByclxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBybCB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9cmxsOyB2PXJsdjsgcj1ybHJ9IC0+XG4gICAgICAgICAgICAgICAgICBjcmVhdGUgKGNyZWF0ZSBsIHYgcmxsKSBybHYgKGNyZWF0ZSBybHIgcnYgcnIpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGVuZCBlbHNlXG4gICAgICAgIE5vZGV7bDsgdjsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgKCogSW5zZXJ0aW9uIG9mIG9uZSBlbGVtZW50ICopXG5cbiAgICBsZXQgcmVjIGFkZCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9kZXtsPUVtcHR5OyB2PXg7IHI9RW1wdHk7IGg9MX1cbiAgICAgIHwgTm9kZXtsOyB2OyByfSBhcyB0IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIHQgZWxzZVxuICAgICAgICAgIGlmIGMgPCAwIHRoZW5cbiAgICAgICAgICAgIGxldCBsbCA9IGFkZCB4IGwgaW5cbiAgICAgICAgICAgIGlmIGwgPT0gbGwgdGhlbiB0IGVsc2UgYmFsIGxsIHYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IGFkZCB4IHIgaW5cbiAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiB0IGVsc2UgYmFsIGwgdiByclxuXG4gICAgbGV0IHNpbmdsZXRvbiB4ID0gTm9kZXtsPUVtcHR5OyB2PXg7IHI9RW1wdHk7IGg9MX1cblxuICAgICgqIEJld2FyZTogdGhvc2UgdHdvIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCB0aGUgYWRkZWQgdiBpcyAqc3RyaWN0bHkqXG4gICAgICAgc21hbGxlciAob3IgYmlnZ2VyKSB0aGFuIGFsbCB0aGUgcHJlc2VudCBlbGVtZW50cyBpbiB0aGUgdHJlZTsgaXRcbiAgICAgICBkb2VzIG5vdCB0ZXN0IGZvciBlcXVhbGl0eSB3aXRoIHRoZSBjdXJyZW50IG1pbiAob3IgbWF4KSBlbGVtZW50LlxuICAgICAgIEluZGVlZCwgdGhleSBhcmUgb25seSB1c2VkIGR1cmluZyB0aGUgXCJqb2luXCIgb3BlcmF0aW9uIHdoaWNoXG4gICAgICAgcmVzcGVjdHMgdGhpcyBwcmVjb25kaXRpb24uXG4gICAgKilcblxuICAgIGxldCByZWMgYWRkX21pbl9lbGVtZW50IHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24geFxuICAgICAgfCBOb2RlIHtsOyB2OyByfSAtPlxuICAgICAgICBiYWwgKGFkZF9taW5fZWxlbWVudCB4IGwpIHYgclxuXG4gICAgbGV0IHJlYyBhZGRfbWF4X2VsZW1lbnQgeCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IHNpbmdsZXRvbiB4XG4gICAgICB8IE5vZGUge2w7IHY7IHJ9IC0+XG4gICAgICAgIGJhbCBsIHYgKGFkZF9tYXhfZWxlbWVudCB4IHIpXG5cbiAgICAoKiBTYW1lIGFzIGNyZWF0ZSBhbmQgYmFsLCBidXQgbm8gYXNzdW1wdGlvbnMgYXJlIG1hZGUgb24gdGhlXG4gICAgICAgcmVsYXRpdmUgaGVpZ2h0cyBvZiBsIGFuZCByLiAqKVxuXG4gICAgbGV0IHJlYyBqb2luIGwgdiByID1cbiAgICAgIG1hdGNoIChsLCByKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgLT4gYWRkX21pbl9lbGVtZW50IHYgclxuICAgICAgfCAoXywgRW1wdHkpIC0+IGFkZF9tYXhfZWxlbWVudCB2IGxcbiAgICAgIHwgKE5vZGV7bD1sbDsgdj1sdjsgcj1scjsgaD1saH0sIE5vZGV7bD1ybDsgdj1ydjsgcj1ycjsgaD1yaH0pIC0+XG4gICAgICAgICAgaWYgbGggPiByaCArIDIgdGhlbiBiYWwgbGwgbHYgKGpvaW4gbHIgdiByKSBlbHNlXG4gICAgICAgICAgaWYgcmggPiBsaCArIDIgdGhlbiBiYWwgKGpvaW4gbCB2IHJsKSBydiByciBlbHNlXG4gICAgICAgICAgY3JlYXRlIGwgdiByXG5cbiAgICAoKiBTbWFsbGVzdCBhbmQgZ3JlYXRlc3QgZWxlbWVudCBvZiBhIHNldCAqKVxuXG4gICAgbGV0IHJlYyBtaW5fZWx0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bD1FbXB0eTsgdn0gLT4gdlxuICAgICAgfCBOb2Rle2x9IC0+IG1pbl9lbHQgbFxuXG4gICAgbGV0IHJlYyBtaW5fZWx0X29wdCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZXtsPUVtcHR5OyB2fSAtPiBTb21lIHZcbiAgICAgIHwgTm9kZXtsfSAtPiBtaW5fZWx0X29wdCBsXG5cbiAgICBsZXQgcmVjIG1heF9lbHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZXt2OyByPUVtcHR5fSAtPiB2XG4gICAgICB8IE5vZGV7cn0gLT4gbWF4X2VsdCByXG5cbiAgICBsZXQgcmVjIG1heF9lbHRfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2Rle3Y7IHI9RW1wdHl9IC0+IFNvbWUgdlxuICAgICAgfCBOb2Rle3J9IC0+IG1heF9lbHRfb3B0IHJcblxuICAgICgqIFJlbW92ZSB0aGUgc21hbGxlc3QgZWxlbWVudCBvZiB0aGUgZ2l2ZW4gc2V0ICopXG5cbiAgICBsZXQgcmVjIHJlbW92ZV9taW5fZWx0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJTZXQucmVtb3ZlX21pbl9lbHRcIlxuICAgICAgfCBOb2Rle2w9RW1wdHk7IHJ9IC0+IHJcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBiYWwgKHJlbW92ZV9taW5fZWx0IGwpIHYgclxuXG4gICAgKCogTWVyZ2UgdHdvIHRyZWVzIGwgYW5kIHIgaW50byBvbmUuXG4gICAgICAgQWxsIGVsZW1lbnRzIG9mIGwgbXVzdCBwcmVjZWRlIHRoZSBlbGVtZW50cyBvZiByLlxuICAgICAgIEFzc3VtZSB8IGhlaWdodCBsIC0gaGVpZ2h0IHIgfCA8PSAyLiAqKVxuXG4gICAgbGV0IG1lcmdlIHQxIHQyID1cbiAgICAgIG1hdGNoICh0MSwgdDIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCB0KSAtPiB0XG4gICAgICB8ICh0LCBFbXB0eSkgLT4gdFxuICAgICAgfCAoXywgXykgLT4gYmFsIHQxIChtaW5fZWx0IHQyKSAocmVtb3ZlX21pbl9lbHQgdDIpXG5cbiAgICAoKiBNZXJnZSB0d28gdHJlZXMgbCBhbmQgciBpbnRvIG9uZS5cbiAgICAgICBBbGwgZWxlbWVudHMgb2YgbCBtdXN0IHByZWNlZGUgdGhlIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgTm8gYXNzdW1wdGlvbiBvbiB0aGUgaGVpZ2h0cyBvZiBsIGFuZCByLiAqKVxuXG4gICAgbGV0IGNvbmNhdCB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+IGpvaW4gdDEgKG1pbl9lbHQgdDIpIChyZW1vdmVfbWluX2VsdCB0MilcblxuICAgICgqIFNwbGl0dGluZy4gIHNwbGl0IHggcyByZXR1cm5zIGEgdHJpcGxlIChsLCBwcmVzZW50LCByKSB3aGVyZVxuICAgICAgICAtIGwgaXMgdGhlIHNldCBvZiBlbGVtZW50cyBvZiBzIHRoYXQgYXJlIDwgeFxuICAgICAgICAtIHIgaXMgdGhlIHNldCBvZiBlbGVtZW50cyBvZiBzIHRoYXQgYXJlID4geFxuICAgICAgICAtIHByZXNlbnQgaXMgZmFsc2UgaWYgcyBjb250YWlucyBubyBlbGVtZW50IGVxdWFsIHRvIHgsXG4gICAgICAgICAgb3IgdHJ1ZSBpZiBzIGNvbnRhaW5zIGFuIGVsZW1lbnQgZXF1YWwgdG8geC4gKilcblxuICAgIGxldCByZWMgc3BsaXQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKEVtcHR5LCBmYWxzZSwgRW1wdHkpXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gKGwsIHRydWUsIHIpXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgKGxsLCBwcmVzLCBybCkgPSBzcGxpdCB4IGwgaW4gKGxsLCBwcmVzLCBqb2luIHJsIHYgcilcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgKGxyLCBwcmVzLCBycikgPSBzcGxpdCB4IHIgaW4gKGpvaW4gbCB2IGxyLCBwcmVzLCBycilcblxuICAgICgqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBzZXQgb3BlcmF0aW9ucyAqKVxuXG4gICAgbGV0IGVtcHR5ID0gRW1wdHlcblxuICAgIGxldCBpc19lbXB0eSA9IGZ1bmN0aW9uIEVtcHR5IC0+IHRydWUgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVjIG1lbSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gZmFsc2VcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgYyA9IDAgfHwgbWVtIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIHJlbW92ZSB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGV7bDsgdjsgcn0gYXMgdCkgLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gbWVyZ2UgbCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgICBsZXQgbGwgPSByZW1vdmUgeCBsIGluXG4gICAgICAgICAgICAgIGlmIGwgPT0gbGwgdGhlbiB0XG4gICAgICAgICAgICAgIGVsc2UgYmFsIGxsIHYgclxuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICBsZXQgcnIgPSByZW1vdmUgeCByIGluXG4gICAgICAgICAgICAgIGlmIHIgPT0gcnIgdGhlbiB0XG4gICAgICAgICAgICAgIGVsc2UgYmFsIGwgdiByclxuXG4gICAgbGV0IHJlYyB1bmlvbiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdDIpIC0+IHQyXG4gICAgICB8ICh0MSwgRW1wdHkpIC0+IHQxXG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjE7IGg9aDF9LCBOb2Rle2w9bDI7IHY9djI7IHI9cjI7IGg9aDJ9KSAtPlxuICAgICAgICAgIGlmIGgxID49IGgyIHRoZW5cbiAgICAgICAgICAgIGlmIGgyID0gMSB0aGVuIGFkZCB2MiBzMSBlbHNlIGJlZ2luXG4gICAgICAgICAgICAgIGxldCAobDIsIF8sIHIyKSA9IHNwbGl0IHYxIHMyIGluXG4gICAgICAgICAgICAgIGpvaW4gKHVuaW9uIGwxIGwyKSB2MSAodW5pb24gcjEgcjIpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBoMSA9IDEgdGhlbiBhZGQgdjEgczIgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBsZXQgKGwxLCBfLCByMSkgPSBzcGxpdCB2MiBzMSBpblxuICAgICAgICAgICAgICBqb2luICh1bmlvbiBsMSBsMikgdjIgKHVuaW9uIHIxIHIyKVxuICAgICAgICAgICAgZW5kXG5cbiAgICBsZXQgcmVjIGludGVyIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBFbXB0eVxuICAgICAgfCAoXywgRW1wdHkpIC0+IEVtcHR5XG4gICAgICB8IChOb2Rle2w9bDE7IHY9djE7IHI9cjF9LCB0MikgLT5cbiAgICAgICAgICBtYXRjaCBzcGxpdCB2MSB0MiB3aXRoXG4gICAgICAgICAgICAobDIsIGZhbHNlLCByMikgLT5cbiAgICAgICAgICAgICAgY29uY2F0IChpbnRlciBsMSBsMikgKGludGVyIHIxIHIyKVxuICAgICAgICAgIHwgKGwyLCB0cnVlLCByMikgLT5cbiAgICAgICAgICAgICAgam9pbiAoaW50ZXIgbDEgbDIpIHYxIChpbnRlciByMSByMilcblxuICAgICgqIFNhbWUgYXMgc3BsaXQsIGJ1dCBjb21wdXRlIHRoZSBsZWZ0IGFuZCByaWdodCBzdWJ0cmVlc1xuICAgICAgIG9ubHkgaWYgdGhlIHBpdm90IGVsZW1lbnQgaXMgbm90IGluIHRoZSBzZXQuICBUaGUgcmlnaHQgc3VidHJlZVxuICAgICAgIGlzIGNvbXB1dGVkIG9uIGRlbWFuZC4gKilcblxuICAgIHR5cGUgc3BsaXRfYmlzID1cbiAgICAgIHwgRm91bmRcbiAgICAgIHwgTm90Rm91bmQgb2YgdCAqICh1bml0IC0+IHQpXG5cbiAgICBsZXQgcmVjIHNwbGl0X2JpcyB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb3RGb3VuZCAoRW1wdHksIChmdW4gKCkgLT4gRW1wdHkpKVxuICAgICAgfCBOb2Rle2w7IHY7IHI7IF99IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIEZvdW5kXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBtYXRjaCBzcGxpdF9iaXMgeCBsIHdpdGhcbiAgICAgICAgICAgIHwgRm91bmQgLT4gRm91bmRcbiAgICAgICAgICAgIHwgTm90Rm91bmQgKGxsLCBybCkgLT4gTm90Rm91bmQgKGxsLCAoZnVuICgpIC0+IGpvaW4gKHJsICgpKSB2IHIpKVxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIG1hdGNoIHNwbGl0X2JpcyB4IHIgd2l0aFxuICAgICAgICAgICAgfCBGb3VuZCAtPiBGb3VuZFxuICAgICAgICAgICAgfCBOb3RGb3VuZCAobHIsIHJyKSAtPiBOb3RGb3VuZCAoam9pbiBsIHYgbHIsIHJyKVxuXG4gICAgbGV0IHJlYyBkaXNqb2ludCBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgXykgfCAoXywgRW1wdHkpIC0+IHRydWVcbiAgICAgIHwgKE5vZGV7bD1sMTsgdj12MTsgcj1yMX0sIHQyKSAtPlxuICAgICAgICAgIGlmIHMxID09IHMyIHRoZW4gZmFsc2VcbiAgICAgICAgICBlbHNlIG1hdGNoIHNwbGl0X2JpcyB2MSB0MiB3aXRoXG4gICAgICAgICAgICAgIE5vdEZvdW5kKGwyLCByMikgLT4gZGlzam9pbnQgbDEgbDIgJiYgZGlzam9pbnQgcjEgKHIyICgpKVxuICAgICAgICAgICAgfCBGb3VuZCAtPiBmYWxzZVxuXG4gICAgbGV0IHJlYyBkaWZmIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBfKSAtPiBFbXB0eVxuICAgICAgfCAodDEsIEVtcHR5KSAtPiB0MVxuICAgICAgfCAoTm9kZXtsPWwxOyB2PXYxOyByPXIxfSwgdDIpIC0+XG4gICAgICAgICAgbWF0Y2ggc3BsaXQgdjEgdDIgd2l0aFxuICAgICAgICAgICAgKGwyLCBmYWxzZSwgcjIpIC0+XG4gICAgICAgICAgICAgIGpvaW4gKGRpZmYgbDEgbDIpIHYxIChkaWZmIHIxIHIyKVxuICAgICAgICAgIHwgKGwyLCB0cnVlLCByMikgLT5cbiAgICAgICAgICAgICAgY29uY2F0IChkaWZmIGwxIGwyKSAoZGlmZiByMSByMilcblxuICAgIHR5cGUgZW51bWVyYXRpb24gPSBFbmQgfCBNb3JlIG9mIGVsdCAqIHQgKiBlbnVtZXJhdGlvblxuXG4gICAgbGV0IHJlYyBjb25zX2VudW0gcyBlID1cbiAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gY29uc19lbnVtIGwgKE1vcmUodiwgciwgZSkpXG5cbiAgICBsZXQgcmVjIGNvbXBhcmVfYXV4IGUxIGUyID1cbiAgICAgICAgbWF0Y2ggKGUxLCBlMikgd2l0aFxuICAgICAgICAoRW5kLCBFbmQpIC0+IDBcbiAgICAgIHwgKEVuZCwgXykgIC0+IC0xXG4gICAgICB8IChfLCBFbmQpIC0+IDFcbiAgICAgIHwgKE1vcmUodjEsIHIxLCBlMSksIE1vcmUodjIsIHIyLCBlMikpIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB2MSB2MiBpblxuICAgICAgICAgIGlmIGMgPD4gMFxuICAgICAgICAgIHRoZW4gY1xuICAgICAgICAgIGVsc2UgY29tcGFyZV9hdXggKGNvbnNfZW51bSByMSBlMSkgKGNvbnNfZW51bSByMiBlMilcblxuICAgIGxldCBjb21wYXJlIHMxIHMyID1cbiAgICAgIGNvbXBhcmVfYXV4IChjb25zX2VudW0gczEgRW5kKSAoY29uc19lbnVtIHMyIEVuZClcblxuICAgIGxldCBlcXVhbCBzMSBzMiA9XG4gICAgICBjb21wYXJlIHMxIHMyID0gMFxuXG4gICAgbGV0IHJlYyBzdWJzZXQgczEgczIgPVxuICAgICAgbWF0Y2ggKHMxLCBzMikgd2l0aFxuICAgICAgICBFbXB0eSwgXyAtPlxuICAgICAgICAgIHRydWVcbiAgICAgIHwgXywgRW1wdHkgLT5cbiAgICAgICAgICBmYWxzZVxuICAgICAgfCBOb2RlIHtsPWwxOyB2PXYxOyByPXIxfSwgKE5vZGUge2w9bDI7IHY9djI7IHI9cjJ9IGFzIHQyKSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgdjEgdjIgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuXG4gICAgICAgICAgICBzdWJzZXQgbDEgbDIgJiYgc3Vic2V0IHIxIHIyXG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBzdWJzZXQgKE5vZGUge2w9bDE7IHY9djE7IHI9RW1wdHk7IGg9MH0pIGwyICYmIHN1YnNldCByMSB0MlxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN1YnNldCAoTm9kZSB7bD1FbXB0eTsgdj12MTsgcj1yMTsgaD0wfSkgcjIgJiYgc3Vic2V0IGwxIHQyXG5cbiAgICBsZXQgcmVjIGl0ZXIgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gaXRlciBmIGw7IGYgdjsgaXRlciBmIHJcblxuICAgIGxldCByZWMgZm9sZCBmIHMgYWNjdSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gYWNjdVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IGZvbGQgZiByIChmIHYgKGZvbGQgZiBsIGFjY3UpKVxuXG4gICAgbGV0IHJlYyBmb3JfYWxsIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiB0cnVlXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT4gcCB2ICYmIGZvcl9hbGwgcCBsICYmIGZvcl9hbGwgcCByXG5cbiAgICBsZXQgcmVjIGV4aXN0cyBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gZmFsc2VcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBwIHYgfHwgZXhpc3RzIHAgbCB8fCBleGlzdHMgcCByXG5cbiAgICBsZXQgcmVjIGZpbHRlciBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGV7bDsgdjsgcn0pIGFzIHQgLT5cbiAgICAgICAgICAoKiBjYWxsIFtwXSBpbiB0aGUgZXhwZWN0ZWQgbGVmdC10by1yaWdodCBvcmRlciAqKVxuICAgICAgICAgIGxldCBsJyA9IGZpbHRlciBwIGwgaW5cbiAgICAgICAgICBsZXQgcHYgPSBwIHYgaW5cbiAgICAgICAgICBsZXQgcicgPSBmaWx0ZXIgcCByIGluXG4gICAgICAgICAgaWYgcHYgdGhlblxuICAgICAgICAgICAgaWYgbD09bCcgJiYgcj09cicgdGhlbiB0IGVsc2Ugam9pbiBsJyB2IHInXG4gICAgICAgICAgZWxzZSBjb25jYXQgbCcgcidcblxuICAgIGxldCByZWMgcGFydGl0aW9uIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAoRW1wdHksIEVtcHR5KVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgKCogY2FsbCBbcF0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgKGx0LCBsZikgPSBwYXJ0aXRpb24gcCBsIGluXG4gICAgICAgICAgbGV0IHB2ID0gcCB2IGluXG4gICAgICAgICAgbGV0IChydCwgcmYpID0gcGFydGl0aW9uIHAgciBpblxuICAgICAgICAgIGlmIHB2XG4gICAgICAgICAgdGhlbiAoam9pbiBsdCB2IHJ0LCBjb25jYXQgbGYgcmYpXG4gICAgICAgICAgZWxzZSAoY29uY2F0IGx0IHJ0LCBqb2luIGxmIHYgcmYpXG5cbiAgICBsZXQgcmVjIGNhcmRpbmFsID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2Rle2w7IHJ9IC0+IGNhcmRpbmFsIGwgKyAxICsgY2FyZGluYWwgclxuXG4gICAgbGV0IHJlYyBlbGVtZW50c19hdXggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPiBlbGVtZW50c19hdXggKHYgOjogZWxlbWVudHNfYXV4IGFjY3UgcikgbFxuXG4gICAgbGV0IGVsZW1lbnRzIHMgPVxuICAgICAgZWxlbWVudHNfYXV4IFtdIHNcblxuICAgIGxldCBjaG9vc2UgPSBtaW5fZWx0XG5cbiAgICBsZXQgY2hvb3NlX29wdCA9IG1pbl9lbHRfb3B0XG5cbiAgICBsZXQgcmVjIGZpbmQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIHZcbiAgICAgICAgICBlbHNlIGZpbmQgeCAoaWYgYyA8IDAgdGhlbiBsIGVsc2UgcilcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2IGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdF9vcHRfYXV4IHYwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgdjBcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdjAgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdF9hdXggdiBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X29wdCBmIHJcblxuICAgIGxldCByZWMgZmluZF9sYXN0X2F1eCB2MCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9hdXggdiBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3QgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IE5vZGV7bDsgdjsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0X29wdF9hdXggdjAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgU29tZSB2MFxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdjAgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHQgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X29wdCBmIGxcblxuICAgIGxldCByZWMgZmluZF9vcHQgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgTm9kZXtsOyB2OyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBTb21lIHZcbiAgICAgICAgICBlbHNlIGZpbmRfb3B0IHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgdHJ5X2pvaW4gbCB2IHIgPVxuICAgICAgKCogW2pvaW4gbCB2IHJdIGNhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIChlbGVtZW50cyBvZiBsIDwgdiA8XG4gICAgICAgICBlbGVtZW50cyBvZiByKTsgdXNlIFt0cnlfam9pbiBsIHYgcl0gd2hlbiB0aGlzIHByb3BlcnR5IG1heVxuICAgICAgICAgbm90IGhvbGQsIGJ1dCB5b3UgaG9wZSBpdCBkb2VzIGhvbGQgaW4gdGhlIGNvbW1vbiBjYXNlICopXG4gICAgICBpZiAobCA9IEVtcHR5IHx8IE9yZC5jb21wYXJlIChtYXhfZWx0IGwpIHYgPCAwKVxuICAgICAgJiYgKHIgPSBFbXB0eSB8fCBPcmQuY29tcGFyZSB2IChtaW5fZWx0IHIpIDwgMClcbiAgICAgIHRoZW4gam9pbiBsIHYgclxuICAgICAgZWxzZSB1bmlvbiBsIChhZGQgdiByKVxuXG4gICAgbGV0IHJlYyBtYXAgZiA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gYXMgdCAtPlxuICAgICAgICAgKCogZW5mb3JjZSBsZWZ0LXRvLXJpZ2h0IGV2YWx1YXRpb24gb3JkZXIgKilcbiAgICAgICAgIGxldCBsJyA9IG1hcCBmIGwgaW5cbiAgICAgICAgIGxldCB2JyA9IGYgdiBpblxuICAgICAgICAgbGV0IHInID0gbWFwIGYgciBpblxuICAgICAgICAgaWYgbCA9PSBsJyAmJiB2ID09IHYnICYmIHIgPT0gcicgdGhlbiB0XG4gICAgICAgICBlbHNlIHRyeV9qb2luIGwnIHYnIHInXG5cbiAgICBsZXQgdHJ5X2NvbmNhdCB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+IHRyeV9qb2luIHQxIChtaW5fZWx0IHQyKSAocmVtb3ZlX21pbl9lbHQgdDIpXG5cbiAgICBsZXQgcmVjIGZpbHRlcl9tYXAgZiA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IE5vZGV7bDsgdjsgcn0gYXMgdCAtPlxuICAgICAgICAgKCogZW5mb3JjZSBsZWZ0LXRvLXJpZ2h0IGV2YWx1YXRpb24gb3JkZXIgKilcbiAgICAgICAgIGxldCBsJyA9IGZpbHRlcl9tYXAgZiBsIGluXG4gICAgICAgICBsZXQgdicgPSBmIHYgaW5cbiAgICAgICAgIGxldCByJyA9IGZpbHRlcl9tYXAgZiByIGluXG4gICAgICAgICBiZWdpbiBtYXRjaCB2JyB3aXRoXG4gICAgICAgICAgIHwgU29tZSB2JyAtPlxuICAgICAgICAgICAgICBpZiBsID09IGwnICYmIHYgPT0gdicgJiYgciA9PSByJyB0aGVuIHRcbiAgICAgICAgICAgICAgZWxzZSB0cnlfam9pbiBsJyB2JyByJ1xuICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgdHJ5X2NvbmNhdCBsJyByJ1xuICAgICAgICAgZW5kXG5cbiAgICBsZXQgb2Zfc29ydGVkX2xpc3QgbCA9XG4gICAgICBsZXQgcmVjIHN1YiBuIGwgPVxuICAgICAgICBtYXRjaCBuLCBsIHdpdGhcbiAgICAgICAgfCAwLCBsIC0+IEVtcHR5LCBsXG4gICAgICAgIHwgMSwgeDAgOjogbCAtPiBOb2RlIHtsPUVtcHR5OyB2PXgwOyByPUVtcHR5OyBoPTF9LCBsXG4gICAgICAgIHwgMiwgeDAgOjogeDEgOjogbCAtPlxuICAgICAgICAgICAgTm9kZXtsPU5vZGV7bD1FbXB0eTsgdj14MDsgcj1FbXB0eTsgaD0xfTsgdj14MTsgcj1FbXB0eTsgaD0yfSwgbFxuICAgICAgICB8IDMsIHgwIDo6IHgxIDo6IHgyIDo6IGwgLT5cbiAgICAgICAgICAgIE5vZGV7bD1Ob2Rle2w9RW1wdHk7IHY9eDA7IHI9RW1wdHk7IGg9MX07IHY9eDE7XG4gICAgICAgICAgICAgICAgIHI9Tm9kZXtsPUVtcHR5OyB2PXgyOyByPUVtcHR5OyBoPTF9OyBoPTJ9LCBsXG4gICAgICAgIHwgbiwgbCAtPlxuICAgICAgICAgIGxldCBubCA9IG4gLyAyIGluXG4gICAgICAgICAgbGV0IGxlZnQsIGwgPSBzdWIgbmwgbCBpblxuICAgICAgICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICAgIHwgW10gLT4gYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgfCBtaWQgOjogbCAtPlxuICAgICAgICAgICAgbGV0IHJpZ2h0LCBsID0gc3ViIChuIC0gbmwgLSAxKSBsIGluXG4gICAgICAgICAgICBjcmVhdGUgbGVmdCBtaWQgcmlnaHQsIGxcbiAgICAgIGluXG4gICAgICBmc3QgKHN1YiAoTGlzdC5sZW5ndGggbCkgbClcblxuICAgIGxldCBvZl9saXN0IGwgPVxuICAgICAgbWF0Y2ggbCB3aXRoXG4gICAgICB8IFtdIC0+IGVtcHR5XG4gICAgICB8IFt4MF0gLT4gc2luZ2xldG9uIHgwXG4gICAgICB8IFt4MDsgeDFdIC0+IGFkZCB4MSAoc2luZ2xldG9uIHgwKVxuICAgICAgfCBbeDA7IHgxOyB4Ml0gLT4gYWRkIHgyIChhZGQgeDEgKHNpbmdsZXRvbiB4MCkpXG4gICAgICB8IFt4MDsgeDE7IHgyOyB4M10gLT4gYWRkIHgzIChhZGQgeDIgKGFkZCB4MSAoc2luZ2xldG9uIHgwKSkpXG4gICAgICB8IFt4MDsgeDE7IHgyOyB4MzsgeDRdIC0+IGFkZCB4NCAoYWRkIHgzIChhZGQgeDIgKGFkZCB4MSAoc2luZ2xldG9uIHgwKSkpKVxuICAgICAgfCBfIC0+IG9mX3NvcnRlZF9saXN0IChMaXN0LnNvcnRfdW5pcSBPcmQuY29tcGFyZSBsKVxuXG4gICAgbGV0IGFkZF9zZXEgaSBtID1cbiAgICAgIFNlcS5mb2xkX2xlZnQgKGZ1biBzIHggLT4gYWRkIHggcykgbSBpXG5cbiAgICBsZXQgb2Zfc2VxIGkgPSBhZGRfc2VxIGkgZW1wdHlcblxuICAgIGxldCByZWMgc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoeCwgdCwgcmVzdCkgLT4gU2VxLkNvbnMgKHgsIHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fc2VxIGMgPSBzZXFfb2ZfZW51bV8gKGNvbnNfZW51bSBjIEVuZClcblxuICAgIGxldCByZWMgc25vY19lbnVtIHMgZSA9XG4gICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgRW1wdHkgLT4gZVxuICAgICAgfCBOb2Rle2w7IHY7IHJ9IC0+IHNub2NfZW51bSByIChNb3JlKHYsIGwsIGUpKVxuXG4gICAgbGV0IHJlYyByZXZfc2VxX29mX2VudW1fIGMgKCkgPSBtYXRjaCBjIHdpdGhcbiAgICAgIHwgRW5kIC0+IFNlcS5OaWxcbiAgICAgIHwgTW9yZSAoeCwgdCwgcmVzdCkgLT4gU2VxLkNvbnMgKHgsIHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSB0IHJlc3QpKVxuXG4gICAgbGV0IHRvX3Jldl9zZXEgYyA9IHJldl9zZXFfb2ZfZW51bV8gKHNub2NfZW51bSBjIEVuZClcblxuICAgIGxldCB0b19zZXFfZnJvbSBsb3cgcyA9XG4gICAgICBsZXQgcmVjIGF1eCBsb3cgcyBjID0gbWF0Y2ggcyB3aXRoXG4gICAgICAgIHwgRW1wdHkgLT4gY1xuICAgICAgICB8IE5vZGUge2w7IHI7IHY7IF99IC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBPcmQuY29tcGFyZSB2IGxvdyB3aXRoXG4gICAgICAgICAgICAgIHwgMCAtPiBNb3JlICh2LCByLCBjKVxuICAgICAgICAgICAgICB8IG4gd2hlbiBuPDAgLT4gYXV4IGxvdyByIGNcbiAgICAgICAgICAgICAgfCBfIC0+IGF1eCBsb3cgbCAoTW9yZSAodiwgciwgYykpXG4gICAgICAgICAgICBlbmRcbiAgICAgIGluXG4gICAgICBzZXFfb2ZfZW51bV8gKGF1eCBsb3cgcyBFbmQpXG4gIGVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5tb2R1bGUgdHlwZSBPcmRlcmVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBjb21wYXJlOiB0IC0+IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICErJ2EgdFxuICAgIHZhbCBlbXB0eTogJ2EgdFxuICAgIHZhbCBpc19lbXB0eTogJ2EgdCAtPiBib29sXG4gICAgdmFsIG1lbTogIGtleSAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgYWRkOiBrZXkgLT4gJ2EgLT4gJ2EgdCAtPiAnYSB0XG4gICAgdmFsIHVwZGF0ZToga2V5IC0+ICgnYSBvcHRpb24gLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgc2luZ2xldG9uOiBrZXkgLT4gJ2EgLT4gJ2EgdFxuICAgIHZhbCByZW1vdmU6IGtleSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgbWVyZ2U6XG4gICAgICAgICAgKGtleSAtPiAnYSBvcHRpb24gLT4gJ2Igb3B0aW9uIC0+ICdjIG9wdGlvbikgLT4gJ2EgdCAtPiAnYiB0IC0+ICdjIHRcbiAgICB2YWwgdW5pb246IChrZXkgLT4gJ2EgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBjb21wYXJlOiAoJ2EgLT4gJ2EgLT4gaW50KSAtPiAnYSB0IC0+ICdhIHQgLT4gaW50XG4gICAgdmFsIGVxdWFsOiAoJ2EgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiAnYSB0IC0+IGJvb2xcbiAgICB2YWwgaXRlcjogKGtleSAtPiAnYSAtPiB1bml0KSAtPiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgZm9sZDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIHZhbCBmb3JfYWxsOiAoa2V5IC0+ICdhIC0+IGJvb2wpIC0+ICdhIHQgLT4gYm9vbFxuICAgIHZhbCBleGlzdHM6IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiBib29sXG4gICAgdmFsIGZpbHRlcjogKGtleSAtPiAnYSAtPiBib29sKSAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgZmlsdGVyX21hcDogKGtleSAtPiAnYSAtPiAnYiBvcHRpb24pIC0+ICdhIHQgLT4gJ2IgdFxuICAgIHZhbCBwYXJ0aXRpb246IChrZXkgLT4gJ2EgLT4gYm9vbCkgLT4gJ2EgdCAtPiAnYSB0ICogJ2EgdFxuICAgIHZhbCBjYXJkaW5hbDogJ2EgdCAtPiBpbnRcbiAgICB2YWwgYmluZGluZ3M6ICdhIHQgLT4gKGtleSAqICdhKSBsaXN0XG4gICAgdmFsIG1pbl9iaW5kaW5nOiAnYSB0IC0+IChrZXkgKiAnYSlcbiAgICB2YWwgbWluX2JpbmRpbmdfb3B0OiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIG1heF9iaW5kaW5nOiAnYSB0IC0+IChrZXkgKiAnYSlcbiAgICB2YWwgbWF4X2JpbmRpbmdfb3B0OiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIGNob29zZTogJ2EgdCAtPiAoa2V5ICogJ2EpXG4gICAgdmFsIGNob29zZV9vcHQ6ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgc3BsaXQ6IGtleSAtPiAnYSB0IC0+ICdhIHQgKiAnYSBvcHRpb24gKiAnYSB0XG4gICAgdmFsIGZpbmQ6IGtleSAtPiAnYSB0IC0+ICdhXG4gICAgdmFsIGZpbmRfb3B0OiBrZXkgLT4gJ2EgdCAtPiAnYSBvcHRpb25cbiAgICB2YWwgZmluZF9maXJzdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IGtleSAqICdhXG4gICAgdmFsIGZpbmRfZmlyc3Rfb3B0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4gKGtleSAqICdhKSBvcHRpb25cbiAgICB2YWwgZmluZF9sYXN0OiAoa2V5IC0+IGJvb2wpIC0+ICdhIHQgLT4ga2V5ICogJ2FcbiAgICB2YWwgZmluZF9sYXN0X29wdDogKGtleSAtPiBib29sKSAtPiAnYSB0IC0+IChrZXkgKiAnYSkgb3B0aW9uXG4gICAgdmFsIG1hcDogKCdhIC0+ICdiKSAtPiAnYSB0IC0+ICdiIHRcbiAgICB2YWwgbWFwaTogKGtleSAtPiAnYSAtPiAnYikgLT4gJ2EgdCAtPiAnYiB0XG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19yZXZfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50XG4gICAgdmFsIHRvX3NlcV9mcm9tIDoga2V5IC0+ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCBhZGRfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0IC0+ICdhIHRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgTWFrZShPcmQ6IE9yZGVyZWRUeXBlKSA9IHN0cnVjdFxuXG4gICAgdHlwZSBrZXkgPSBPcmQudFxuXG4gICAgdHlwZSAnYSB0ID1cbiAgICAgICAgRW1wdHlcbiAgICAgIHwgTm9kZSBvZiB7bDonYSB0OyB2OmtleTsgZDonYTsgcjonYSB0OyBoOmludH1cblxuICAgIGxldCBoZWlnaHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAwXG4gICAgICB8IE5vZGUge2h9IC0+IGhcblxuICAgIGxldCBjcmVhdGUgbCB4IGQgciA9XG4gICAgICBsZXQgaGwgPSBoZWlnaHQgbCBhbmQgaHIgPSBoZWlnaHQgciBpblxuICAgICAgTm9kZXtsOyB2PXg7IGQ7IHI7IGg9KGlmIGhsID49IGhyIHRoZW4gaGwgKyAxIGVsc2UgaHIgKyAxKX1cblxuICAgIGxldCBzaW5nbGV0b24geCBkID0gTm9kZXtsPUVtcHR5OyB2PXg7IGQ7IHI9RW1wdHk7IGg9MX1cblxuICAgIGxldCBiYWwgbCB4IGQgciA9XG4gICAgICBsZXQgaGwgPSBtYXRjaCBsIHdpdGggRW1wdHkgLT4gMCB8IE5vZGUge2h9IC0+IGggaW5cbiAgICAgIGxldCBociA9IG1hdGNoIHIgd2l0aCBFbXB0eSAtPiAwIHwgTm9kZSB7aH0gLT4gaCBpblxuICAgICAgaWYgaGwgPiBociArIDIgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5iYWxcIlxuICAgICAgICB8IE5vZGV7bD1sbDsgdj1sdjsgZD1sZDsgcj1scn0gLT5cbiAgICAgICAgICAgIGlmIGhlaWdodCBsbCA+PSBoZWlnaHQgbHIgdGhlblxuICAgICAgICAgICAgICBjcmVhdGUgbGwgbHYgbGQgKGNyZWF0ZSBsciB4IGQgcilcbiAgICAgICAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgICAgICAgbWF0Y2ggbHIgd2l0aFxuICAgICAgICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgICAgICAgIHwgTm9kZXtsPWxybDsgdj1scnY7IGQ9bHJkOyByPWxycn0tPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbGwgbHYgbGQgbHJsKSBscnYgbHJkIChjcmVhdGUgbHJyIHggZCByKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZSBpZiBociA+IGhsICsgMiB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIHIgd2l0aFxuICAgICAgICAgIEVtcHR5IC0+IGludmFsaWRfYXJnIFwiTWFwLmJhbFwiXG4gICAgICAgIHwgTm9kZXtsPXJsOyB2PXJ2OyBkPXJkOyByPXJyfSAtPlxuICAgICAgICAgICAgaWYgaGVpZ2h0IHJyID49IGhlaWdodCBybCB0aGVuXG4gICAgICAgICAgICAgIGNyZWF0ZSAoY3JlYXRlIGwgeCBkIHJsKSBydiByZCByclxuICAgICAgICAgICAgZWxzZSBiZWdpblxuICAgICAgICAgICAgICBtYXRjaCBybCB3aXRoXG4gICAgICAgICAgICAgICAgRW1wdHkgLT4gaW52YWxpZF9hcmcgXCJNYXAuYmFsXCJcbiAgICAgICAgICAgICAgfCBOb2Rle2w9cmxsOyB2PXJsdjsgZD1ybGQ7IHI9cmxyfSAtPlxuICAgICAgICAgICAgICAgICAgY3JlYXRlIChjcmVhdGUgbCB4IGQgcmxsKSBybHYgcmxkIChjcmVhdGUgcmxyIHJ2IHJkIHJyKVxuICAgICAgICAgICAgZW5kXG4gICAgICBlbmQgZWxzZVxuICAgICAgICBOb2Rle2w7IHY9eDsgZDsgcjsgaD0oaWYgaGwgPj0gaHIgdGhlbiBobCArIDEgZWxzZSBociArIDEpfVxuXG4gICAgbGV0IGVtcHR5ID0gRW1wdHlcblxuICAgIGxldCBpc19lbXB0eSA9IGZ1bmN0aW9uIEVtcHR5IC0+IHRydWUgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVjIGFkZCB4IGRhdGEgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vZGV7bD1FbXB0eTsgdj14OyBkPWRhdGE7IHI9RW1wdHk7IGg9MX1cbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gYXMgbSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlblxuICAgICAgICAgICAgaWYgZCA9PSBkYXRhIHRoZW4gbSBlbHNlIE5vZGV7bDsgdj14OyBkPWRhdGE7IHI7IGh9XG4gICAgICAgICAgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSBhZGQgeCBkYXRhIGwgaW5cbiAgICAgICAgICAgIGlmIGwgPT0gbGwgdGhlbiBtIGVsc2UgYmFsIGxsIHYgZCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gYWRkIHggZGF0YSByIGluXG4gICAgICAgICAgICBpZiByID09IHJyIHRoZW4gbSBlbHNlIGJhbCBsIHYgZCByclxuXG4gICAgbGV0IHJlYyBmaW5kIHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiBkXG4gICAgICAgICAgZWxzZSBmaW5kIHggKGlmIGMgPCAwIHRoZW4gbCBlbHNlIHIpXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3RfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3RfYXV4IHYgZCBmIGxcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2ZpcnN0X2F1eCB2MCBkMCBmIHJcblxuICAgIGxldCByZWMgZmluZF9maXJzdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9maXJzdF9hdXggdiBkIGYgbFxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfZmlyc3QgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfZmlyc3Rfb3B0X2F1eCB2MCBkMCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBTb21lICh2MCwgZDApXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHRfYXV4IHYwIGQwIGYgclxuXG4gICAgbGV0IHJlYyBmaW5kX2ZpcnN0X29wdCBmID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICBOb25lXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgaWYgZiB2IHRoZW5cbiAgICAgICAgICAgIGZpbmRfZmlyc3Rfb3B0X2F1eCB2IGQgZiBsXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9maXJzdF9vcHQgZiByXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9hdXggdjAgZDAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2IGQgZiByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZmluZF9sYXN0X2F1eCB2MCBkMCBmIGxcblxuICAgIGxldCByZWMgZmluZF9sYXN0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGlmIGYgdiB0aGVuXG4gICAgICAgICAgICBmaW5kX2xhc3RfYXV4IHYgZCBmIHJcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBmaW5kX2xhc3QgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGQwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIFNvbWUgKHYwLCBkMClcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHRfYXV4IHYwIGQwIGYgbFxuXG4gICAgbGV0IHJlYyBmaW5kX2xhc3Rfb3B0IGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBpZiBmIHYgdGhlblxuICAgICAgICAgICAgZmluZF9sYXN0X29wdF9hdXggdiBkIGYgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGZpbmRfbGFzdF9vcHQgZiBsXG5cbiAgICBsZXQgcmVjIGZpbmRfb3B0IHggPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gU29tZSBkXG4gICAgICAgICAgZWxzZSBmaW5kX29wdCB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBtZW0geCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgTm9kZSB7bDsgdjsgcn0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGMgPSAwIHx8IG1lbSB4IChpZiBjIDwgMCB0aGVuIGwgZWxzZSByKVxuXG4gICAgbGV0IHJlYyBtaW5fYmluZGluZyA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBOb2RlIHtsPUVtcHR5OyB2OyBkfSAtPiAodiwgZClcbiAgICAgIHwgTm9kZSB7bH0gLT4gbWluX2JpbmRpbmcgbFxuXG4gICAgbGV0IHJlYyBtaW5fYmluZGluZ19vcHQgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBOb25lXG4gICAgICB8IE5vZGUge2w9RW1wdHk7IHY7IGR9IC0+IFNvbWUgKHYsIGQpXG4gICAgICB8IE5vZGUge2x9LT4gbWluX2JpbmRpbmdfb3B0IGxcblxuICAgIGxldCByZWMgbWF4X2JpbmRpbmcgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgTm9kZSB7djsgZDsgcj1FbXB0eX0gLT4gKHYsIGQpXG4gICAgICB8IE5vZGUge3J9IC0+IG1heF9iaW5kaW5nIHJcblxuICAgIGxldCByZWMgbWF4X2JpbmRpbmdfb3B0ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gTm9uZVxuICAgICAgfCBOb2RlIHt2OyBkOyByPUVtcHR5fSAtPiBTb21lICh2LCBkKVxuICAgICAgfCBOb2RlIHtyfSAtPiBtYXhfYmluZGluZ19vcHQgclxuXG4gICAgbGV0IHJlYyByZW1vdmVfbWluX2JpbmRpbmcgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBpbnZhbGlkX2FyZyBcIk1hcC5yZW1vdmVfbWluX2VsdFwiXG4gICAgICB8IE5vZGUge2w9RW1wdHk7IHJ9IC0+IHJcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gYmFsIChyZW1vdmVfbWluX2JpbmRpbmcgbCkgdiBkIHJcblxuICAgIGxldCBtZXJnZSB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+XG4gICAgICAgICAgbGV0ICh4LCBkKSA9IG1pbl9iaW5kaW5nIHQyIGluXG4gICAgICAgICAgYmFsIHQxIHggZCAocmVtb3ZlX21pbl9iaW5kaW5nIHQyKVxuXG4gICAgbGV0IHJlYyByZW1vdmUgeCA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgRW1wdHlcbiAgICAgIHwgKE5vZGUge2w7IHY7IGQ7IHJ9IGFzIG0pIC0+XG4gICAgICAgICAgbGV0IGMgPSBPcmQuY29tcGFyZSB4IHYgaW5cbiAgICAgICAgICBpZiBjID0gMCB0aGVuIG1lcmdlIGwgclxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IGxsID0gcmVtb3ZlIHggbCBpbiBpZiBsID09IGxsIHRoZW4gbSBlbHNlIGJhbCBsbCB2IGQgclxuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIGxldCByciA9IHJlbW92ZSB4IHIgaW4gaWYgciA9PSByciB0aGVuIG0gZWxzZSBiYWwgbCB2IGQgcnJcblxuICAgIGxldCByZWMgdXBkYXRlIHggZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggZiBOb25lIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gRW1wdHlcbiAgICAgICAgICB8IFNvbWUgZGF0YSAtPiBOb2Rle2w9RW1wdHk7IHY9eDsgZD1kYXRhOyByPUVtcHR5OyBoPTF9XG4gICAgICAgICAgZW5kXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IGFzIG0gLT5cbiAgICAgICAgICBsZXQgYyA9IE9yZC5jb21wYXJlIHggdiBpblxuICAgICAgICAgIGlmIGMgPSAwIHRoZW4gYmVnaW5cbiAgICAgICAgICAgIG1hdGNoIGYgKFNvbWUgZCkgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IG1lcmdlIGwgclxuICAgICAgICAgICAgfCBTb21lIGRhdGEgLT5cbiAgICAgICAgICAgICAgICBpZiBkID09IGRhdGEgdGhlbiBtIGVsc2UgTm9kZXtsOyB2PXg7IGQ9ZGF0YTsgcjsgaH1cbiAgICAgICAgICBlbmQgZWxzZSBpZiBjIDwgMCB0aGVuXG4gICAgICAgICAgICBsZXQgbGwgPSB1cGRhdGUgeCBmIGwgaW5cbiAgICAgICAgICAgIGlmIGwgPT0gbGwgdGhlbiBtIGVsc2UgYmFsIGxsIHYgZCByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IHJyID0gdXBkYXRlIHggZiByIGluXG4gICAgICAgICAgICBpZiByID09IHJyIHRoZW4gbSBlbHNlIGJhbCBsIHYgZCByclxuXG4gICAgbGV0IHJlYyBpdGVyIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAoKVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGl0ZXIgZiBsOyBmIHYgZDsgaXRlciBmIHJcblxuICAgIGxldCByZWMgbWFwIGYgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPlxuICAgICAgICAgIEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHI7IGh9IC0+XG4gICAgICAgICAgbGV0IGwnID0gbWFwIGYgbCBpblxuICAgICAgICAgIGxldCBkJyA9IGYgZCBpblxuICAgICAgICAgIGxldCByJyA9IG1hcCBmIHIgaW5cbiAgICAgICAgICBOb2Rle2w9bCc7IHY7IGQ9ZCc7IHI9cic7IGh9XG5cbiAgICBsZXQgcmVjIG1hcGkgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+XG4gICAgICAgICAgRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgaH0gLT5cbiAgICAgICAgICBsZXQgbCcgPSBtYXBpIGYgbCBpblxuICAgICAgICAgIGxldCBkJyA9IGYgdiBkIGluXG4gICAgICAgICAgbGV0IHInID0gbWFwaSBmIHIgaW5cbiAgICAgICAgICBOb2Rle2w9bCc7IHY7IGQ9ZCc7IHI9cic7IGh9XG5cbiAgICBsZXQgcmVjIGZvbGQgZiBtIGFjY3UgPVxuICAgICAgbWF0Y2ggbSB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT5cbiAgICAgICAgICBmb2xkIGYgciAoZiB2IGQgKGZvbGQgZiBsIGFjY3UpKVxuXG4gICAgbGV0IHJlYyBmb3JfYWxsIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiB0cnVlXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IHAgdiBkICYmIGZvcl9hbGwgcCBsICYmIGZvcl9hbGwgcCByXG5cbiAgICBsZXQgcmVjIGV4aXN0cyBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gZmFsc2VcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gLT4gcCB2IGQgfHwgZXhpc3RzIHAgbCB8fCBleGlzdHMgcCByXG5cbiAgICAoKiBCZXdhcmU6IHRob3NlIHR3byBmdW5jdGlvbnMgYXNzdW1lIHRoYXQgdGhlIGFkZGVkIGsgaXMgKnN0cmljdGx5KlxuICAgICAgIHNtYWxsZXIgKG9yIGJpZ2dlcikgdGhhbiBhbGwgdGhlIHByZXNlbnQga2V5cyBpbiB0aGUgdHJlZTsgaXRcbiAgICAgICBkb2VzIG5vdCB0ZXN0IGZvciBlcXVhbGl0eSB3aXRoIHRoZSBjdXJyZW50IG1pbiAob3IgbWF4KSBrZXkuXG5cbiAgICAgICBJbmRlZWQsIHRoZXkgYXJlIG9ubHkgdXNlZCBkdXJpbmcgdGhlIFwiam9pblwiIG9wZXJhdGlvbiB3aGljaFxuICAgICAgIHJlc3BlY3RzIHRoaXMgcHJlY29uZGl0aW9uLlxuICAgICopXG5cbiAgICBsZXQgcmVjIGFkZF9taW5fYmluZGluZyBrIHggPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBzaW5nbGV0b24gayB4XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgIGJhbCAoYWRkX21pbl9iaW5kaW5nIGsgeCBsKSB2IGQgclxuXG4gICAgbGV0IHJlYyBhZGRfbWF4X2JpbmRpbmcgayB4ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT4gc2luZ2xldG9uIGsgeFxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICBiYWwgbCB2IGQgKGFkZF9tYXhfYmluZGluZyBrIHggcilcblxuICAgICgqIFNhbWUgYXMgY3JlYXRlIGFuZCBiYWwsIGJ1dCBubyBhc3N1bXB0aW9ucyBhcmUgbWFkZSBvbiB0aGVcbiAgICAgICByZWxhdGl2ZSBoZWlnaHRzIG9mIGwgYW5kIHIuICopXG5cbiAgICBsZXQgcmVjIGpvaW4gbCB2IGQgciA9XG4gICAgICBtYXRjaCAobCwgcikgd2l0aFxuICAgICAgICAoRW1wdHksIF8pIC0+IGFkZF9taW5fYmluZGluZyB2IGQgclxuICAgICAgfCAoXywgRW1wdHkpIC0+IGFkZF9tYXhfYmluZGluZyB2IGQgbFxuICAgICAgfCAoTm9kZXtsPWxsOyB2PWx2OyBkPWxkOyByPWxyOyBoPWxofSxcbiAgICAgICAgIE5vZGV7bD1ybDsgdj1ydjsgZD1yZDsgcj1ycjsgaD1yaH0pIC0+XG4gICAgICAgICAgaWYgbGggPiByaCArIDIgdGhlbiBiYWwgbGwgbHYgbGQgKGpvaW4gbHIgdiBkIHIpIGVsc2VcbiAgICAgICAgICBpZiByaCA+IGxoICsgMiB0aGVuIGJhbCAoam9pbiBsIHYgZCBybCkgcnYgcmQgcnIgZWxzZVxuICAgICAgICAgIGNyZWF0ZSBsIHYgZCByXG5cbiAgICAoKiBNZXJnZSB0d28gdHJlZXMgbCBhbmQgciBpbnRvIG9uZS5cbiAgICAgICBBbGwgZWxlbWVudHMgb2YgbCBtdXN0IHByZWNlZGUgdGhlIGVsZW1lbnRzIG9mIHIuXG4gICAgICAgTm8gYXNzdW1wdGlvbiBvbiB0aGUgaGVpZ2h0cyBvZiBsIGFuZCByLiAqKVxuXG4gICAgbGV0IGNvbmNhdCB0MSB0MiA9XG4gICAgICBtYXRjaCAodDEsIHQyKSB3aXRoXG4gICAgICAgIChFbXB0eSwgdCkgLT4gdFxuICAgICAgfCAodCwgRW1wdHkpIC0+IHRcbiAgICAgIHwgKF8sIF8pIC0+XG4gICAgICAgICAgbGV0ICh4LCBkKSA9IG1pbl9iaW5kaW5nIHQyIGluXG4gICAgICAgICAgam9pbiB0MSB4IGQgKHJlbW92ZV9taW5fYmluZGluZyB0MilcblxuICAgIGxldCBjb25jYXRfb3Jfam9pbiB0MSB2IGQgdDIgPVxuICAgICAgbWF0Y2ggZCB3aXRoXG4gICAgICB8IFNvbWUgZCAtPiBqb2luIHQxIHYgZCB0MlxuICAgICAgfCBOb25lIC0+IGNvbmNhdCB0MSB0MlxuXG4gICAgbGV0IHJlYyBzcGxpdCB4ID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAoRW1wdHksIE5vbmUsIEVtcHR5KVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgeCB2IGluXG4gICAgICAgICAgaWYgYyA9IDAgdGhlbiAobCwgU29tZSBkLCByKVxuICAgICAgICAgIGVsc2UgaWYgYyA8IDAgdGhlblxuICAgICAgICAgICAgbGV0IChsbCwgcHJlcywgcmwpID0gc3BsaXQgeCBsIGluIChsbCwgcHJlcywgam9pbiBybCB2IGQgcilcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBsZXQgKGxyLCBwcmVzLCBycikgPSBzcGxpdCB4IHIgaW4gKGpvaW4gbCB2IGQgbHIsIHByZXMsIHJyKVxuXG4gICAgbGV0IHJlYyBtZXJnZSBmIHMxIHMyID1cbiAgICAgIG1hdGNoIChzMSwgczIpIHdpdGhcbiAgICAgICAgKEVtcHR5LCBFbXB0eSkgLT4gRW1wdHlcbiAgICAgIHwgKE5vZGUge2w9bDE7IHY9djE7IGQ9ZDE7IHI9cjE7IGg9aDF9LCBfKSB3aGVuIGgxID49IGhlaWdodCBzMiAtPlxuICAgICAgICAgIGxldCAobDIsIGQyLCByMikgPSBzcGxpdCB2MSBzMiBpblxuICAgICAgICAgIGNvbmNhdF9vcl9qb2luIChtZXJnZSBmIGwxIGwyKSB2MSAoZiB2MSAoU29tZSBkMSkgZDIpIChtZXJnZSBmIHIxIHIyKVxuICAgICAgfCAoXywgTm9kZSB7bD1sMjsgdj12MjsgZD1kMjsgcj1yMn0pIC0+XG4gICAgICAgICAgbGV0IChsMSwgZDEsIHIxKSA9IHNwbGl0IHYyIHMxIGluXG4gICAgICAgICAgY29uY2F0X29yX2pvaW4gKG1lcmdlIGYgbDEgbDIpIHYyIChmIHYyIGQxIChTb21lIGQyKSkgKG1lcmdlIGYgcjEgcjIpXG4gICAgICB8IF8gLT5cbiAgICAgICAgICBhc3NlcnQgZmFsc2VcblxuICAgIGxldCByZWMgdW5pb24gZiBzMSBzMiA9XG4gICAgICBtYXRjaCAoczEsIHMyKSB3aXRoXG4gICAgICB8IChFbXB0eSwgcykgfCAocywgRW1wdHkpIC0+IHNcbiAgICAgIHwgKE5vZGUge2w9bDE7IHY9djE7IGQ9ZDE7IHI9cjE7IGg9aDF9LFxuICAgICAgICAgTm9kZSB7bD1sMjsgdj12MjsgZD1kMjsgcj1yMjsgaD1oMn0pIC0+XG4gICAgICAgICAgaWYgaDEgPj0gaDIgdGhlblxuICAgICAgICAgICAgbGV0IChsMiwgZDIsIHIyKSA9IHNwbGl0IHYxIHMyIGluXG4gICAgICAgICAgICBsZXQgbCA9IHVuaW9uIGYgbDEgbDIgYW5kIHIgPSB1bmlvbiBmIHIxIHIyIGluXG4gICAgICAgICAgICBtYXRjaCBkMiB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gam9pbiBsIHYxIGQxIHJcbiAgICAgICAgICAgIHwgU29tZSBkMiAtPiBjb25jYXRfb3Jfam9pbiBsIHYxIChmIHYxIGQxIGQyKSByXG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgbGV0IChsMSwgZDEsIHIxKSA9IHNwbGl0IHYyIHMxIGluXG4gICAgICAgICAgICBsZXQgbCA9IHVuaW9uIGYgbDEgbDIgYW5kIHIgPSB1bmlvbiBmIHIxIHIyIGluXG4gICAgICAgICAgICBtYXRjaCBkMSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gam9pbiBsIHYyIGQyIHJcbiAgICAgICAgICAgIHwgU29tZSBkMSAtPiBjb25jYXRfb3Jfam9pbiBsIHYyIChmIHYyIGQxIGQyKSByXG5cbiAgICBsZXQgcmVjIGZpbHRlciBwID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gRW1wdHlcbiAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcn0gYXMgbSAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IGwnID0gZmlsdGVyIHAgbCBpblxuICAgICAgICAgIGxldCBwdmQgPSBwIHYgZCBpblxuICAgICAgICAgIGxldCByJyA9IGZpbHRlciBwIHIgaW5cbiAgICAgICAgICBpZiBwdmQgdGhlbiBpZiBsPT1sJyAmJiByPT1yJyB0aGVuIG0gZWxzZSBqb2luIGwnIHYgZCByJ1xuICAgICAgICAgIGVsc2UgY29uY2F0IGwnIHInXG5cbiAgICBsZXQgcmVjIGZpbHRlcl9tYXAgZiA9IGZ1bmN0aW9uXG4gICAgICAgIEVtcHR5IC0+IEVtcHR5XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+XG4gICAgICAgICAgKCogY2FsbCBbZl0gaW4gdGhlIGV4cGVjdGVkIGxlZnQtdG8tcmlnaHQgb3JkZXIgKilcbiAgICAgICAgICBsZXQgbCcgPSBmaWx0ZXJfbWFwIGYgbCBpblxuICAgICAgICAgIGxldCBmdmQgPSBmIHYgZCBpblxuICAgICAgICAgIGxldCByJyA9IGZpbHRlcl9tYXAgZiByIGluXG4gICAgICAgICAgYmVnaW4gbWF0Y2ggZnZkIHdpdGhcbiAgICAgICAgICAgIHwgU29tZSBkJyAtPiBqb2luIGwnIHYgZCcgcidcbiAgICAgICAgICAgIHwgTm9uZSAtPiBjb25jYXQgbCcgcidcbiAgICAgICAgICBlbmRcblxuICAgIGxldCByZWMgcGFydGl0aW9uIHAgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiAoRW1wdHksIEVtcHR5KVxuICAgICAgfCBOb2RlIHtsOyB2OyBkOyByfSAtPlxuICAgICAgICAgICgqIGNhbGwgW3BdIGluIHRoZSBleHBlY3RlZCBsZWZ0LXRvLXJpZ2h0IG9yZGVyICopXG4gICAgICAgICAgbGV0IChsdCwgbGYpID0gcGFydGl0aW9uIHAgbCBpblxuICAgICAgICAgIGxldCBwdmQgPSBwIHYgZCBpblxuICAgICAgICAgIGxldCAocnQsIHJmKSA9IHBhcnRpdGlvbiBwIHIgaW5cbiAgICAgICAgICBpZiBwdmRcbiAgICAgICAgICB0aGVuIChqb2luIGx0IHYgZCBydCwgY29uY2F0IGxmIHJmKVxuICAgICAgICAgIGVsc2UgKGNvbmNhdCBsdCBydCwgam9pbiBsZiB2IGQgcmYpXG5cbiAgICB0eXBlICdhIGVudW1lcmF0aW9uID0gRW5kIHwgTW9yZSBvZiBrZXkgKiAnYSAqICdhIHQgKiAnYSBlbnVtZXJhdGlvblxuXG4gICAgbGV0IHJlYyBjb25zX2VudW0gbSBlID1cbiAgICAgIG1hdGNoIG0gd2l0aFxuICAgICAgICBFbXB0eSAtPiBlXG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IGNvbnNfZW51bSBsIChNb3JlKHYsIGQsIHIsIGUpKVxuXG4gICAgbGV0IGNvbXBhcmUgY21wIG0xIG0yID1cbiAgICAgIGxldCByZWMgY29tcGFyZV9hdXggZTEgZTIgPVxuICAgICAgICAgIG1hdGNoIChlMSwgZTIpIHdpdGhcbiAgICAgICAgICAoRW5kLCBFbmQpIC0+IDBcbiAgICAgICAgfCAoRW5kLCBfKSAgLT4gLTFcbiAgICAgICAgfCAoXywgRW5kKSAtPiAxXG4gICAgICAgIHwgKE1vcmUodjEsIGQxLCByMSwgZTEpLCBNb3JlKHYyLCBkMiwgcjIsIGUyKSkgLT5cbiAgICAgICAgICAgIGxldCBjID0gT3JkLmNvbXBhcmUgdjEgdjIgaW5cbiAgICAgICAgICAgIGlmIGMgPD4gMCB0aGVuIGMgZWxzZVxuICAgICAgICAgICAgbGV0IGMgPSBjbXAgZDEgZDIgaW5cbiAgICAgICAgICAgIGlmIGMgPD4gMCB0aGVuIGMgZWxzZVxuICAgICAgICAgICAgY29tcGFyZV9hdXggKGNvbnNfZW51bSByMSBlMSkgKGNvbnNfZW51bSByMiBlMilcbiAgICAgIGluIGNvbXBhcmVfYXV4IChjb25zX2VudW0gbTEgRW5kKSAoY29uc19lbnVtIG0yIEVuZClcblxuICAgIGxldCBlcXVhbCBjbXAgbTEgbTIgPVxuICAgICAgbGV0IHJlYyBlcXVhbF9hdXggZTEgZTIgPVxuICAgICAgICAgIG1hdGNoIChlMSwgZTIpIHdpdGhcbiAgICAgICAgICAoRW5kLCBFbmQpIC0+IHRydWVcbiAgICAgICAgfCAoRW5kLCBfKSAgLT4gZmFsc2VcbiAgICAgICAgfCAoXywgRW5kKSAtPiBmYWxzZVxuICAgICAgICB8IChNb3JlKHYxLCBkMSwgcjEsIGUxKSwgTW9yZSh2MiwgZDIsIHIyLCBlMikpIC0+XG4gICAgICAgICAgICBPcmQuY29tcGFyZSB2MSB2MiA9IDAgJiYgY21wIGQxIGQyICYmXG4gICAgICAgICAgICBlcXVhbF9hdXggKGNvbnNfZW51bSByMSBlMSkgKGNvbnNfZW51bSByMiBlMilcbiAgICAgIGluIGVxdWFsX2F1eCAoY29uc19lbnVtIG0xIEVuZCkgKGNvbnNfZW51bSBtMiBFbmQpXG5cbiAgICBsZXQgcmVjIGNhcmRpbmFsID0gZnVuY3Rpb25cbiAgICAgICAgRW1wdHkgLT4gMFxuICAgICAgfCBOb2RlIHtsOyByfSAtPiBjYXJkaW5hbCBsICsgMSArIGNhcmRpbmFsIHJcblxuICAgIGxldCByZWMgYmluZGluZ3NfYXV4IGFjY3UgPSBmdW5jdGlvblxuICAgICAgICBFbXB0eSAtPiBhY2N1XG4gICAgICB8IE5vZGUge2w7IHY7IGQ7IHJ9IC0+IGJpbmRpbmdzX2F1eCAoKHYsIGQpIDo6IGJpbmRpbmdzX2F1eCBhY2N1IHIpIGxcblxuICAgIGxldCBiaW5kaW5ncyBzID1cbiAgICAgIGJpbmRpbmdzX2F1eCBbXSBzXG5cbiAgICBsZXQgY2hvb3NlID0gbWluX2JpbmRpbmdcblxuICAgIGxldCBjaG9vc2Vfb3B0ID0gbWluX2JpbmRpbmdfb3B0XG5cbiAgICBsZXQgYWRkX3NlcSBpIG0gPVxuICAgICAgU2VxLmZvbGRfbGVmdCAoZnVuIG0gKGssdikgLT4gYWRkIGsgdiBtKSBtIGlcblxuICAgIGxldCBvZl9zZXEgaSA9IGFkZF9zZXEgaSBlbXB0eVxuXG4gICAgbGV0IHJlYyBzZXFfb2ZfZW51bV8gYyAoKSA9IG1hdGNoIGMgd2l0aFxuICAgICAgfCBFbmQgLT4gU2VxLk5pbFxuICAgICAgfCBNb3JlIChrLHYsdCxyZXN0KSAtPiBTZXEuQ29ucyAoKGssdiksIHNlcV9vZl9lbnVtXyAoY29uc19lbnVtIHQgcmVzdCkpXG5cbiAgICBsZXQgdG9fc2VxIG0gPVxuICAgICAgc2VxX29mX2VudW1fIChjb25zX2VudW0gbSBFbmQpXG5cbiAgICBsZXQgcmVjIHNub2NfZW51bSBzIGUgPVxuICAgICAgbWF0Y2ggcyB3aXRoXG4gICAgICAgIEVtcHR5IC0+IGVcbiAgICAgIHwgTm9kZXtsOyB2OyBkOyByfSAtPiBzbm9jX2VudW0gciAoTW9yZSh2LCBkLCBsLCBlKSlcblxuICAgIGxldCByZWMgcmV2X3NlcV9vZl9lbnVtXyBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgICB8IEVuZCAtPiBTZXEuTmlsXG4gICAgICB8IE1vcmUgKGssdix0LHJlc3QpIC0+XG4gICAgICAgICAgU2VxLkNvbnMgKChrLHYpLCByZXZfc2VxX29mX2VudW1fIChzbm9jX2VudW0gdCByZXN0KSlcblxuICAgIGxldCB0b19yZXZfc2VxIGMgPVxuICAgICAgcmV2X3NlcV9vZl9lbnVtXyAoc25vY19lbnVtIGMgRW5kKVxuXG4gICAgbGV0IHRvX3NlcV9mcm9tIGxvdyBtID1cbiAgICAgIGxldCByZWMgYXV4IGxvdyBtIGMgPSBtYXRjaCBtIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPiBjXG4gICAgICAgIHwgTm9kZSB7bDsgdjsgZDsgcjsgX30gLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIE9yZC5jb21wYXJlIHYgbG93IHdpdGhcbiAgICAgICAgICAgICAgfCAwIC0+IE1vcmUgKHYsIGQsIHIsIGMpXG4gICAgICAgICAgICAgIHwgbiB3aGVuIG48MCAtPiBhdXggbG93IHIgY1xuICAgICAgICAgICAgICB8IF8gLT4gYXV4IGxvdyBsIChNb3JlICh2LCBkLCByLCBjKSlcbiAgICAgICAgICAgIGVuZFxuICAgICAgaW5cbiAgICAgIHNlcV9vZl9lbnVtXyAoYXV4IGxvdyBtIEVuZClcbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlICdhIHQgPSB7IG11dGFibGUgYyA6ICdhIGxpc3Q7IG11dGFibGUgbGVuIDogaW50OyB9XG5cbmV4Y2VwdGlvbiBFbXB0eVxuXG5sZXQgY3JlYXRlICgpID0geyBjID0gW107IGxlbiA9IDA7IH1cblxubGV0IGNsZWFyIHMgPSBzLmMgPC0gW107IHMubGVuIDwtIDBcblxubGV0IGNvcHkgcyA9IHsgYyA9IHMuYzsgbGVuID0gcy5sZW47IH1cblxubGV0IHB1c2ggeCBzID0gcy5jIDwtIHggOjogcy5jOyBzLmxlbiA8LSBzLmxlbiArIDFcblxubGV0IHBvcCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6dGwgLT4gcy5jIDwtIHRsOyBzLmxlbiA8LSBzLmxlbiAtIDE7IGhkXG4gIHwgW10gICAgIC0+IHJhaXNlIEVtcHR5XG5cbmxldCBwb3Bfb3B0IHMgPVxuICBtYXRjaCBzLmMgd2l0aFxuICB8IGhkOjp0bCAtPiBzLmMgPC0gdGw7IHMubGVuIDwtIHMubGVuIC0gMTsgU29tZSBoZFxuICB8IFtdICAgICAtPiBOb25lXG5cbmxldCB0b3AgcyA9XG4gIG1hdGNoIHMuYyB3aXRoXG4gIHwgaGQ6Ol8gLT4gaGRcbiAgfCBbXSAgICAtPiByYWlzZSBFbXB0eVxuXG5sZXQgdG9wX29wdCBzID1cbiAgbWF0Y2ggcy5jIHdpdGhcbiAgfCBoZDo6XyAtPiBTb21lIGhkXG4gIHwgW10gICAgLT4gTm9uZVxuXG5sZXQgaXNfZW1wdHkgcyA9IChzLmMgPSBbXSlcblxubGV0IGxlbmd0aCBzID0gcy5sZW5cblxubGV0IGl0ZXIgZiBzID0gTGlzdC5pdGVyIGYgcy5jXG5cbmxldCBmb2xkIGYgYWNjIHMgPSBMaXN0LmZvbGRfbGVmdCBmIGFjYyBzLmNcblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBzID0gTGlzdC50b19zZXEgcy5jXG5cbmxldCBhZGRfc2VxIHEgaSA9IFNlcS5pdGVyIChmdW4geCAtPiBwdXNoIHggcSkgaVxuXG5sZXQgb2Zfc2VxIGcgPVxuICBsZXQgcyA9IGNyZWF0ZSgpIGluXG4gIGFkZF9zZXEgcyBnO1xuICBzXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgIEZyYW5jb2lzIFBvdHRpZXIsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgIEplcmVtaWUgRGltaW5vLCBKYW5lIFN0cmVldCBFdXJvcGUgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbmV4Y2VwdGlvbiBFbXB0eVxuXG50eXBlICdhIGNlbGwgPVxuICB8IE5pbFxuICB8IENvbnMgb2YgeyBjb250ZW50OiAnYTsgbXV0YWJsZSBuZXh0OiAnYSBjZWxsIH1cblxudHlwZSAnYSB0ID0ge1xuICBtdXRhYmxlIGxlbmd0aDogaW50O1xuICBtdXRhYmxlIGZpcnN0OiAnYSBjZWxsO1xuICBtdXRhYmxlIGxhc3Q6ICdhIGNlbGxcbn1cblxubGV0IGNyZWF0ZSAoKSA9IHtcbiAgbGVuZ3RoID0gMDtcbiAgZmlyc3QgPSBOaWw7XG4gIGxhc3QgPSBOaWxcbn1cblxubGV0IGNsZWFyIHEgPVxuICBxLmxlbmd0aCA8LSAwO1xuICBxLmZpcnN0IDwtIE5pbDtcbiAgcS5sYXN0IDwtIE5pbFxuXG5sZXQgYWRkIHggcSA9XG4gIGxldCBjZWxsID0gQ29ucyB7XG4gICAgY29udGVudCA9IHg7XG4gICAgbmV4dCA9IE5pbFxuICB9IGluXG4gIG1hdGNoIHEubGFzdCB3aXRoXG4gIHwgTmlsIC0+XG4gICAgcS5sZW5ndGggPC0gMTtcbiAgICBxLmZpcnN0IDwtIGNlbGw7XG4gICAgcS5sYXN0IDwtIGNlbGxcbiAgfCBDb25zIGxhc3QgLT5cbiAgICBxLmxlbmd0aCA8LSBxLmxlbmd0aCArIDE7XG4gICAgbGFzdC5uZXh0IDwtIGNlbGw7XG4gICAgcS5sYXN0IDwtIGNlbGxcblxubGV0IHB1c2ggPVxuICBhZGRcblxubGV0IHBlZWsgcSA9XG4gIG1hdGNoIHEuZmlyc3Qgd2l0aFxuICB8IE5pbCAtPiByYWlzZSBFbXB0eVxuICB8IENvbnMgeyBjb250ZW50IH0gLT4gY29udGVudFxuXG5sZXQgcGVla19vcHQgcSA9XG4gIG1hdGNoIHEuZmlyc3Qgd2l0aFxuICB8IE5pbCAtPiBOb25lXG4gIHwgQ29ucyB7IGNvbnRlbnQgfSAtPiBTb21lIGNvbnRlbnRcblxubGV0IHRvcCA9XG4gIHBlZWtcblxubGV0IHRha2UgcSA9XG4gIG1hdGNoIHEuZmlyc3Qgd2l0aFxuICB8IE5pbCAtPiByYWlzZSBFbXB0eVxuICB8IENvbnMgeyBjb250ZW50OyBuZXh0ID0gTmlsIH0gLT5cbiAgICBjbGVhciBxO1xuICAgIGNvbnRlbnRcbiAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgcS5sZW5ndGggPC0gcS5sZW5ndGggLSAxO1xuICAgIHEuZmlyc3QgPC0gbmV4dDtcbiAgICBjb250ZW50XG5cbmxldCB0YWtlX29wdCBxID1cbiAgbWF0Y2ggcS5maXJzdCB3aXRoXG4gIHwgTmlsIC0+IE5vbmVcbiAgfCBDb25zIHsgY29udGVudDsgbmV4dCA9IE5pbCB9IC0+XG4gICAgY2xlYXIgcTtcbiAgICBTb21lIGNvbnRlbnRcbiAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgcS5sZW5ndGggPC0gcS5sZW5ndGggLSAxO1xuICAgIHEuZmlyc3QgPC0gbmV4dDtcbiAgICBTb21lIGNvbnRlbnRcblxubGV0IHBvcCA9XG4gIHRha2VcblxubGV0IGNvcHkgPVxuICBsZXQgcmVjIGNvcHkgcV9yZXMgcHJldiBjZWxsID1cbiAgICBtYXRjaCBjZWxsIHdpdGhcbiAgICB8IE5pbCAtPiBxX3Jlcy5sYXN0IDwtIHByZXY7IHFfcmVzXG4gICAgfCBDb25zIHsgY29udGVudDsgbmV4dCB9IC0+XG4gICAgICBsZXQgcmVzID0gQ29ucyB7IGNvbnRlbnQ7IG5leHQgPSBOaWwgfSBpblxuICAgICAgYmVnaW4gbWF0Y2ggcHJldiB3aXRoXG4gICAgICB8IE5pbCAtPiBxX3Jlcy5maXJzdCA8LSByZXNcbiAgICAgIHwgQ29ucyBwIC0+IHAubmV4dCA8LSByZXNcbiAgICAgIGVuZDtcbiAgICAgIGNvcHkgcV9yZXMgcmVzIG5leHRcbiAgaW5cbiAgZnVuIHEgLT4gY29weSB7IGxlbmd0aCA9IHEubGVuZ3RoOyBmaXJzdCA9IE5pbDsgbGFzdCA9IE5pbCB9IE5pbCBxLmZpcnN0XG5cbmxldCBpc19lbXB0eSBxID1cbiAgcS5sZW5ndGggPSAwXG5cbmxldCBsZW5ndGggcSA9XG4gIHEubGVuZ3RoXG5cbmxldCBpdGVyID1cbiAgbGV0IHJlYyBpdGVyIGYgY2VsbCA9XG4gICAgbWF0Y2ggY2VsbCB3aXRoXG4gICAgfCBOaWwgLT4gKClcbiAgICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICAgIGYgY29udGVudDtcbiAgICAgIGl0ZXIgZiBuZXh0XG4gIGluXG4gIGZ1biBmIHEgLT4gaXRlciBmIHEuZmlyc3RcblxubGV0IGZvbGQgPVxuICBsZXQgcmVjIGZvbGQgZiBhY2N1IGNlbGwgPVxuICAgIG1hdGNoIGNlbGwgd2l0aFxuICAgIHwgTmlsIC0+IGFjY3VcbiAgICB8IENvbnMgeyBjb250ZW50OyBuZXh0IH0gLT5cbiAgICAgIGxldCBhY2N1ID0gZiBhY2N1IGNvbnRlbnQgaW5cbiAgICAgIGZvbGQgZiBhY2N1IG5leHRcbiAgaW5cbiAgZnVuIGYgYWNjdSBxIC0+IGZvbGQgZiBhY2N1IHEuZmlyc3RcblxubGV0IHRyYW5zZmVyIHExIHEyID1cbiAgaWYgcTEubGVuZ3RoID4gMCB0aGVuXG4gICAgbWF0Y2ggcTIubGFzdCB3aXRoXG4gICAgfCBOaWwgLT5cbiAgICAgIHEyLmxlbmd0aCA8LSBxMS5sZW5ndGg7XG4gICAgICBxMi5maXJzdCA8LSBxMS5maXJzdDtcbiAgICAgIHEyLmxhc3QgPC0gcTEubGFzdDtcbiAgICAgIGNsZWFyIHExXG4gICAgfCBDb25zIGxhc3QgLT5cbiAgICAgIHEyLmxlbmd0aCA8LSBxMi5sZW5ndGggKyBxMS5sZW5ndGg7XG4gICAgICBsYXN0Lm5leHQgPC0gcTEuZmlyc3Q7XG4gICAgICBxMi5sYXN0IDwtIHExLmxhc3Q7XG4gICAgICBjbGVhciBxMVxuXG4oKiogezEgSXRlcmF0b3JzfSAqKVxuXG5sZXQgdG9fc2VxIHEgPVxuICBsZXQgcmVjIGF1eCBjICgpID0gbWF0Y2ggYyB3aXRoXG4gICAgfCBOaWwgLT4gU2VxLk5pbFxuICAgIHwgQ29ucyB7IGNvbnRlbnQ9eDsgbmV4dDsgfSAtPiBTZXEuQ29ucyAoeCwgYXV4IG5leHQpXG4gIGluXG4gIGF1eCBxLmZpcnN0XG5cbmxldCBhZGRfc2VxIHEgaSA9IFNlcS5pdGVyIChmdW4geCAtPiBwdXNoIHggcSkgaVxuXG5sZXQgb2Zfc2VxIGcgPVxuICBsZXQgcSA9IGNyZWF0ZSgpIGluXG4gIGFkZF9zZXEgcSBnO1xuICBxXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgIERhbmllbCBkZSBSYXVnbGF1ZHJlLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbnR5cGUgJ2EgdCA9ICdhIGNlbGwgb3B0aW9uXG5hbmQgJ2EgY2VsbCA9IHsgbXV0YWJsZSBjb3VudCA6IGludDsgbXV0YWJsZSBkYXRhIDogJ2EgZGF0YSB9XG5hbmQgJ2EgZGF0YSA9XG4gICAgU2VtcHR5XG4gIHwgU2NvbnMgb2YgJ2EgKiAnYSBkYXRhXG4gIHwgU2FwcCBvZiAnYSBkYXRhICogJ2EgZGF0YVxuICB8IFNsYXp5IG9mICdhIGRhdGEgTGF6eS50XG4gIHwgU2dlbiBvZiAnYSBnZW5cbiAgfCBTYnVmZmlvIDogYnVmZmlvIC0+IGNoYXIgZGF0YVxuYW5kICdhIGdlbiA9IHsgbXV0YWJsZSBjdXJyIDogJ2Egb3B0aW9uIG9wdGlvbjsgZnVuYyA6IGludCAtPiAnYSBvcHRpb24gfVxuYW5kIGJ1ZmZpbyA9XG4gIHsgaWMgOiBpbl9jaGFubmVsOyBidWZmIDogYnl0ZXM7IG11dGFibGUgbGVuIDogaW50OyBtdXRhYmxlIGluZCA6IGludCB9XG5cbmV4Y2VwdGlvbiBGYWlsdXJlXG5leGNlcHRpb24gRXJyb3Igb2Ygc3RyaW5nXG5cbmxldCBjb3VudCA9IGZ1bmN0aW9uXG4gIHwgTm9uZSAtPiAwXG4gIHwgU29tZSB7IGNvdW50IH0gLT4gY291bnRcbmxldCBkYXRhID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IFNlbXB0eVxuICB8IFNvbWUgeyBkYXRhIH0gLT4gZGF0YVxuXG5sZXQgZmlsbF9idWZmIGIgPVxuICBiLmxlbiA8LSBpbnB1dCBiLmljIGIuYnVmZiAwIChCeXRlcy5sZW5ndGggYi5idWZmKTsgYi5pbmQgPC0gMFxuXG5cbmxldCByZWMgZ2V0X2RhdGEgOiB0eXBlIHYuIGludCAtPiB2IGRhdGEgLT4gdiBkYXRhID0gZnVuIGNvdW50IGQgLT4gbWF0Y2ggZCB3aXRoXG4gKCogUmV0dXJucyBlaXRoZXIgU2VtcHR5IG9yIFNjb25zKGEsIF8pIGV2ZW4gd2hlbiBkIGlzIGEgZ2VuZXJhdG9yXG4gICAgb3IgYSBidWZmZXIuIEluIHRob3NlIGNhc2VzLCB0aGUgaXRlbSBhIGlzIHNlZW4gYXMgZXh0cmFjdGVkIGZyb21cbiB0aGUgZ2VuZXJhdG9yL2J1ZmZlci5cbiBUaGUgY291bnQgcGFyYW1ldGVyIGlzIHVzZWQgZm9yIGNhbGxpbmcgYFNnZW4tZnVuY3Rpb25zJy4gICopXG4gICBTZW1wdHkgfCBTY29ucyAoXywgXykgLT4gZFxuIHwgU2FwcCAoZDEsIGQyKSAtPlxuICAgICBiZWdpbiBtYXRjaCBnZXRfZGF0YSBjb3VudCBkMSB3aXRoXG4gICAgICAgU2NvbnMgKGEsIGQxMSkgLT4gU2NvbnMgKGEsIFNhcHAgKGQxMSwgZDIpKVxuICAgICB8IFNlbXB0eSAtPiBnZXRfZGF0YSBjb3VudCBkMlxuICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG4gICAgIGVuZFxuIHwgU2dlbiB7Y3VyciA9IFNvbWUgTm9uZX0gLT4gU2VtcHR5XG4gfCBTZ2VuICh7Y3VyciA9IFNvbWUoU29tZSBhKX0gYXMgZykgLT5cbiAgICAgZy5jdXJyIDwtIE5vbmU7IFNjb25zKGEsIGQpXG4gfCBTZ2VuIGcgLT5cbiAgICAgYmVnaW4gbWF0Y2ggZy5mdW5jIGNvdW50IHdpdGhcbiAgICAgICBOb25lIC0+IGcuY3VyciA8LSBTb21lKE5vbmUpOyBTZW1wdHlcbiAgICAgfCBTb21lIGEgLT4gU2NvbnMoYSwgZClcbiAgICAgICAgICgqIFdhcm5pbmc6IGFueW9uZSB1c2luZyBnIHRoaW5rcyB0aGF0IGFuIGl0ZW0gaGFzIGJlZW4gcmVhZCAqKVxuICAgICBlbmRcbiB8IFNidWZmaW8gYiAtPlxuICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICBpZiBiLmxlbiA9PSAwIHRoZW4gU2VtcHR5IGVsc2VcbiAgICAgICBsZXQgciA9IEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmIGIuaW5kIGluXG4gICAgICAgKCogV2FybmluZzogYW55b25lIHVzaW5nIGcgdGhpbmtzIHRoYXQgYW4gaXRlbSBoYXMgYmVlbiByZWFkICopXG4gICAgICAgYi5pbmQgPC0gc3VjYyBiLmluZDsgU2NvbnMociwgZClcbiB8IFNsYXp5IGYgLT4gZ2V0X2RhdGEgY291bnQgKExhenkuZm9yY2UgZilcblxuXG5sZXQgcmVjIHBlZWtfZGF0YSA6IHR5cGUgdi4gdiBjZWxsIC0+IHYgb3B0aW9uID0gZnVuIHMgLT5cbiAoKiBjb25zdWx0IHRoZSBmaXJzdCBpdGVtIG9mIHMgKilcbiBtYXRjaCBzLmRhdGEgd2l0aFxuICAgU2VtcHR5IC0+IE5vbmVcbiB8IFNjb25zIChhLCBfKSAtPiBTb21lIGFcbiB8IFNhcHAgKF8sIF8pIC0+XG4gICAgIGJlZ2luIG1hdGNoIGdldF9kYXRhIHMuY291bnQgcy5kYXRhIHdpdGhcbiAgICAgICBTY29ucyhhLCBfKSBhcyBkIC0+IHMuZGF0YSA8LSBkOyBTb21lIGFcbiAgICAgfCBTZW1wdHkgLT4gTm9uZVxuICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG4gICAgIGVuZFxuIHwgU2xhenkgZiAtPiBzLmRhdGEgPC0gKExhenkuZm9yY2UgZik7IHBlZWtfZGF0YSBzXG4gfCBTZ2VuIHtjdXJyID0gU29tZSBhfSAtPiBhXG4gfCBTZ2VuIGcgLT4gbGV0IHggPSBnLmZ1bmMgcy5jb3VudCBpbiBnLmN1cnIgPC0gU29tZSB4OyB4XG4gfCBTYnVmZmlvIGIgLT5cbiAgICAgaWYgYi5pbmQgPj0gYi5sZW4gdGhlbiBmaWxsX2J1ZmYgYjtcbiAgICAgaWYgYi5sZW4gPT0gMCB0aGVuIGJlZ2luIHMuZGF0YSA8LSBTZW1wdHk7IE5vbmUgZW5kXG4gICAgIGVsc2UgU29tZSAoQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmYgYi5pbmQpXG5cblxubGV0IHBlZWsgPSBmdW5jdGlvblxuICB8IE5vbmUgLT4gTm9uZVxuICB8IFNvbWUgcyAtPiBwZWVrX2RhdGEgc1xuXG5cbmxldCByZWMganVua19kYXRhIDogdHlwZSB2LiB2IGNlbGwgLT4gdW5pdCA9IGZ1biBzIC0+XG4gIG1hdGNoIHMuZGF0YSB3aXRoXG4gICAgU2NvbnMgKF8sIGQpIC0+IHMuY291bnQgPC0gKHN1Y2Mgcy5jb3VudCk7IHMuZGF0YSA8LSBkXG4gIHwgU2dlbiAoe2N1cnIgPSBTb21lIF99IGFzIGcpIC0+IHMuY291bnQgPC0gKHN1Y2Mgcy5jb3VudCk7IGcuY3VyciA8LSBOb25lXG4gIHwgU2J1ZmZpbyBiIC0+XG4gICAgICBpZiBiLmluZCA+PSBiLmxlbiB0aGVuIGZpbGxfYnVmZiBiO1xuICAgICAgaWYgYi5sZW4gPT0gMCB0aGVuIHMuZGF0YSA8LSBTZW1wdHlcbiAgICAgIGVsc2UgKHMuY291bnQgPC0gKHN1Y2Mgcy5jb3VudCk7IGIuaW5kIDwtIHN1Y2MgYi5pbmQpXG4gIHwgXyAtPlxuICAgICAgbWF0Y2ggcGVla19kYXRhIHMgd2l0aFxuICAgICAgICBOb25lIC0+ICgpXG4gICAgICB8IFNvbWUgXyAtPiBqdW5rX2RhdGEgc1xuXG5cbmxldCBqdW5rID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+ICgpXG4gIHwgU29tZSBkYXRhIC0+IGp1bmtfZGF0YSBkYXRhXG5cbmxldCByZWMgbmdldF9kYXRhIG4gcyA9XG4gIGlmIG4gPD0gMCB0aGVuIFtdLCBzLmRhdGEsIDBcbiAgZWxzZVxuICAgIG1hdGNoIHBlZWtfZGF0YSBzIHdpdGhcbiAgICAgIFNvbWUgYSAtPlxuICAgICAgICBqdW5rX2RhdGEgcztcbiAgICAgICAgbGV0IChhbCwgZCwgaykgPSBuZ2V0X2RhdGEgKHByZWQgbikgcyBpbiBhIDo6IGFsLCBTY29ucyAoYSwgZCksIHN1Y2Mga1xuICAgIHwgTm9uZSAtPiBbXSwgcy5kYXRhLCAwXG5cblxubGV0IG5wZWVrX2RhdGEgbiBzID1cbiAgbGV0IChhbCwgZCwgbGVuKSA9IG5nZXRfZGF0YSBuIHMgaW5cbiAgcy5jb3VudCA8LSAocy5jb3VudCAtIGxlbik7XG4gIHMuZGF0YSA8LSBkO1xuICBhbFxuXG5cbmxldCBucGVlayBuID0gZnVuY3Rpb25cbiAgfCBOb25lIC0+IFtdXG4gIHwgU29tZSBkIC0+IG5wZWVrX2RhdGEgbiBkXG5cbmxldCBuZXh0IHMgPVxuICBtYXRjaCBwZWVrIHMgd2l0aFxuICAgIFNvbWUgYSAtPiBqdW5rIHM7IGFcbiAgfCBOb25lIC0+IHJhaXNlIEZhaWx1cmVcblxuXG5sZXQgZW1wdHkgcyA9XG4gIG1hdGNoIHBlZWsgcyB3aXRoXG4gICAgU29tZSBfIC0+IHJhaXNlIEZhaWx1cmVcbiAgfCBOb25lIC0+ICgpXG5cblxubGV0IGl0ZXIgZiBzdHJtID1cbiAgbGV0IHJlYyBkb19yZWMgKCkgPVxuICAgIG1hdGNoIHBlZWsgc3RybSB3aXRoXG4gICAgICBTb21lIGEgLT4ganVuayBzdHJtOyBpZ25vcmUoZiBhKTsgZG9fcmVjICgpXG4gICAgfCBOb25lIC0+ICgpXG4gIGluXG4gIGRvX3JlYyAoKVxuXG5cbigqIFN0cmVhbSBidWlsZGluZyBmdW5jdGlvbnMgKilcblxubGV0IGZyb20gZiA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNnZW4ge2N1cnIgPSBOb25lOyBmdW5jID0gZn19XG5cbmxldCBvZl9saXN0IGwgPVxuICBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBMaXN0LmZvbGRfcmlnaHQgKGZ1biB4IGwgLT4gU2NvbnMgKHgsIGwpKSBsIFNlbXB0eX1cblxuXG5sZXQgb2Zfc3RyaW5nIHMgPVxuICBsZXQgY291bnQgPSByZWYgMCBpblxuICBmcm9tIChmdW4gXyAtPlxuICAgICgqIFdlIGNhbm5vdCB1c2UgdGhlIGluZGV4IHBhc3NlZCBieSB0aGUgW2Zyb21dIGZ1bmN0aW9uIGRpcmVjdGx5XG4gICAgICAgYmVjYXVzZSBpdCByZXR1cm5zIHRoZSBjdXJyZW50IHN0cmVhbSBjb3VudCwgd2l0aCBhYnNvbHV0ZWx5IG5vXG4gICAgICAgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBzdGFydCBmcm9tIDAuIEZvciBleGFtcGxlLCBpbiB0aGUgY2FzZVxuICAgICAgIG9mIFtTdHJlYW0uaWNvbnMgJ2MnIChTdHJlYW0uZnJvbV9zdHJpbmcgXCJhYlwiKV0sIHRoZSBmaXJzdFxuICAgICAgIGFjY2VzcyB0byB0aGUgc3RyaW5nIHdpbGwgYmUgbWFkZSB3aXRoIGNvdW50IFsxXSBhbHJlYWR5LlxuICAgICopXG4gICAgbGV0IGMgPSAhY291bnQgaW5cbiAgICBpZiBjIDwgU3RyaW5nLmxlbmd0aCBzXG4gICAgdGhlbiAoaW5jciBjb3VudDsgU29tZSBzLltjXSlcbiAgICBlbHNlIE5vbmUpXG5cblxubGV0IG9mX2J5dGVzIHMgPVxuICBsZXQgY291bnQgPSByZWYgMCBpblxuICBmcm9tIChmdW4gXyAtPlxuICAgIGxldCBjID0gIWNvdW50IGluXG4gICAgaWYgYyA8IEJ5dGVzLmxlbmd0aCBzXG4gICAgdGhlbiAoaW5jciBjb3VudDsgU29tZSAoQnl0ZXMuZ2V0IHMgYykpXG4gICAgZWxzZSBOb25lKVxuXG5cbmxldCBvZl9jaGFubmVsIGljID1cbiAgU29tZSB7Y291bnQgPSAwO1xuICAgICAgICBkYXRhID0gU2J1ZmZpbyB7aWMgPSBpYzsgYnVmZiA9IEJ5dGVzLmNyZWF0ZSA0MDk2OyBsZW4gPSAwOyBpbmQgPSAwfX1cblxuXG4oKiBTdHJlYW0gZXhwcmVzc2lvbnMgYnVpbGRlcnMgKilcblxubGV0IGlhcHAgaSBzID0gU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2FwcCAoZGF0YSBpLCBkYXRhIHMpfVxubGV0IGljb25zIGkgcyA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNjb25zIChpLCBkYXRhIHMpfVxubGV0IGlzaW5nIGkgPSBTb21lIHtjb3VudCA9IDA7IGRhdGEgPSBTY29ucyAoaSwgU2VtcHR5KX1cblxubGV0IGxhcHAgZiBzID1cbiAgU29tZSB7Y291bnQgPSAwOyBkYXRhID0gU2xhenkgKGxhenkoU2FwcCAoZGF0YSAoZiAoKSksIGRhdGEgcykpKX1cblxubGV0IGxjb25zIGYgcyA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KFNjb25zIChmICgpLCBkYXRhIHMpKSl9XG5sZXQgbHNpbmcgZiA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KFNjb25zIChmICgpLCBTZW1wdHkpKSl9XG5cbmxldCBzZW1wdHkgPSBOb25lXG5sZXQgc2xhenkgZiA9IFNvbWUge2NvdW50ID0gMDsgZGF0YSA9IFNsYXp5IChsYXp5KGRhdGEgKGYgKCkpKSl9XG5cbigqIEZvciBkZWJ1Z2dpbmcgdXNlICopXG5cbmxldCByZWMgZHVtcCA6IHR5cGUgdi4gKHYgLT4gdW5pdCkgLT4gdiB0IC0+IHVuaXQgPSBmdW4gZiBzIC0+XG4gIHByaW50X3N0cmluZyBcIntjb3VudCA9IFwiO1xuICBwcmludF9pbnQgKGNvdW50IHMpO1xuICBwcmludF9zdHJpbmcgXCI7IGRhdGEgPSBcIjtcbiAgZHVtcF9kYXRhIGYgKGRhdGEgcyk7XG4gIHByaW50X3N0cmluZyBcIn1cIjtcbiAgcHJpbnRfbmV3bGluZSAoKVxuYW5kIGR1bXBfZGF0YSA6IHR5cGUgdi4gKHYgLT4gdW5pdCkgLT4gdiBkYXRhIC0+IHVuaXQgPSBmdW4gZiAtPlxuICBmdW5jdGlvblxuICAgIFNlbXB0eSAtPiBwcmludF9zdHJpbmcgXCJTZW1wdHlcIlxuICB8IFNjb25zIChhLCBkKSAtPlxuICAgICAgcHJpbnRfc3RyaW5nIFwiU2NvbnMgKFwiO1xuICAgICAgZiBhO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiLCBcIjtcbiAgICAgIGR1bXBfZGF0YSBmIGQ7XG4gICAgICBwcmludF9zdHJpbmcgXCIpXCJcbiAgfCBTYXBwIChkMSwgZDIpIC0+XG4gICAgICBwcmludF9zdHJpbmcgXCJTYXBwIChcIjtcbiAgICAgIGR1bXBfZGF0YSBmIGQxO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiLCBcIjtcbiAgICAgIGR1bXBfZGF0YSBmIGQyO1xuICAgICAgcHJpbnRfc3RyaW5nIFwiKVwiXG4gIHwgU2xhenkgXyAtPiBwcmludF9zdHJpbmcgXCJTbGF6eVwiXG4gIHwgU2dlbiBfIC0+IHByaW50X3N0cmluZyBcIlNnZW5cIlxuICB8IFNidWZmaW8gXyAtPiBwcmludF9zdHJpbmcgXCJTYnVmZmlvXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgIFBpZXJyZSBXZWlzIGFuZCBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTkgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogRXh0ZW5zaWJsZSBidWZmZXJzICopXG5cbnR5cGUgdCA9XG4ge211dGFibGUgYnVmZmVyIDogYnl0ZXM7XG4gIG11dGFibGUgcG9zaXRpb24gOiBpbnQ7XG4gIG11dGFibGUgbGVuZ3RoIDogaW50O1xuICBpbml0aWFsX2J1ZmZlciA6IGJ5dGVzfVxuKCogSW52YXJpYW50czogYWxsIHBhcnRzIG9mIHRoZSBjb2RlIHByZXNlcnZlIHRoZSBpbnZhcmlhbnRzIHRoYXQ6XG4gICAtIFswIDw9IGIucG9zaXRpb24gPD0gYi5sZW5ndGhdXG4gICAtIFtiLmxlbmd0aCA9IEJ5dGVzLmxlbmd0aCBiLmJ1ZmZlcl1cblxuICAgTm90ZSBpbiBwYXJ0aWN1bGFyIHRoYXQgW2IucG9zaXRpb24gPSBiLmxlbmd0aF0gaXMgbGVnYWwsXG4gICBpdCBtZWFucyB0aGF0IHRoZSBidWZmZXIgaXMgZnVsbCBhbmQgd2lsbCBoYXZlIHRvIGJlIGV4dGVuZGVkXG4gICBiZWZvcmUgYW55IGZ1cnRoZXIgYWRkaXRpb24uICopXG5cbmxldCBjcmVhdGUgbiA9XG4gbGV0IG4gPSBpZiBuIDwgMSB0aGVuIDEgZWxzZSBuIGluXG4gbGV0IG4gPSBpZiBuID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIGVsc2UgbiBpblxuIGxldCBzID0gQnl0ZXMuY3JlYXRlIG4gaW5cbiB7YnVmZmVyID0gczsgcG9zaXRpb24gPSAwOyBsZW5ndGggPSBuOyBpbml0aWFsX2J1ZmZlciA9IHN9XG5cbmxldCBjb250ZW50cyBiID0gQnl0ZXMuc3ViX3N0cmluZyBiLmJ1ZmZlciAwIGIucG9zaXRpb25cbmxldCB0b19ieXRlcyBiID0gQnl0ZXMuc3ViIGIuYnVmZmVyIDAgYi5wb3NpdGlvblxuXG5sZXQgc3ViIGIgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBiLnBvc2l0aW9uIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCdWZmZXIuc3ViXCJcbiAgZWxzZSBCeXRlcy5zdWJfc3RyaW5nIGIuYnVmZmVyIG9mcyBsZW5cblxuXG5sZXQgYmxpdCBzcmMgc3Jjb2ZmIGRzdCBkc3RvZmYgbGVuID1cbiAgaWYgbGVuIDwgMCB8fCBzcmNvZmYgPCAwIHx8IHNyY29mZiA+IHNyYy5wb3NpdGlvbiAtIGxlblxuICAgICAgICAgICAgIHx8IGRzdG9mZiA8IDAgfHwgZHN0b2ZmID4gKEJ5dGVzLmxlbmd0aCBkc3QpIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCdWZmZXIuYmxpdFwiXG4gIGVsc2VcbiAgICBCeXRlcy51bnNhZmVfYmxpdCBzcmMuYnVmZmVyIHNyY29mZiBkc3QgZHN0b2ZmIGxlblxuXG5cbmxldCBudGggYiBvZnMgPVxuICBpZiBvZnMgPCAwIHx8IG9mcyA+PSBiLnBvc2l0aW9uIHRoZW5cbiAgIGludmFsaWRfYXJnIFwiQnVmZmVyLm50aFwiXG4gIGVsc2UgQnl0ZXMudW5zYWZlX2dldCBiLmJ1ZmZlciBvZnNcblxuXG5sZXQgbGVuZ3RoIGIgPSBiLnBvc2l0aW9uXG5cbmxldCBjbGVhciBiID0gYi5wb3NpdGlvbiA8LSAwXG5cbmxldCByZXNldCBiID1cbiAgYi5wb3NpdGlvbiA8LSAwO1xuICBiLmJ1ZmZlciA8LSBiLmluaXRpYWxfYnVmZmVyO1xuICBiLmxlbmd0aCA8LSBCeXRlcy5sZW5ndGggYi5idWZmZXJcblxuKCogW3Jlc2l6ZSBiIG1vcmVdIGVuc3VyZXMgdGhhdCBbYi5wb3NpdGlvbiArIG1vcmUgPD0gYi5sZW5ndGhdIGhvbGRzXG4gICBieSBkeW5hbWljYWxseSBleHRlbmRpbmcgW2IuYnVmZmVyXSBpZiBuZWNlc3NhcnkgLS0gYW5kIHRodXNcbiAgIGluY3JlYXNpbmcgW2IubGVuZ3RoXS5cblxuICAgSW4gcGFydGljdWxhciwgYWZ0ZXIgW3Jlc2l6ZSBiIG1vcmVdIGlzIGNhbGxlZCwgYSBkaXJlY3QgYWNjZXNzIG9mXG4gICBzaXplIFttb3JlXSBhdCBbYi5wb3NpdGlvbl0gd2lsbCBhbHdheXMgYmUgaW4tYm91bmRzLCBzbyB0aGF0XG4gICAodW5zYWZlX3tnZXQsc2V0fSkgbWF5IGJlIHVzZWQgZm9yIHBlcmZvcm1hbmNlLlxuKilcbmxldCByZXNpemUgYiBtb3JlID1cbiAgbGV0IG9sZF9wb3MgPSBiLnBvc2l0aW9uIGluXG4gIGxldCBvbGRfbGVuID0gYi5sZW5ndGggaW5cbiAgbGV0IG5ld19sZW4gPSByZWYgb2xkX2xlbiBpblxuICB3aGlsZSBvbGRfcG9zICsgbW9yZSA+ICFuZXdfbGVuIGRvIG5ld19sZW4gOj0gMiAqICFuZXdfbGVuIGRvbmU7XG4gIGlmICFuZXdfbGVuID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW4gYmVnaW5cbiAgICBpZiBvbGRfcG9zICsgbW9yZSA8PSBTeXMubWF4X3N0cmluZ19sZW5ndGhcbiAgICB0aGVuIG5ld19sZW4gOj0gU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgZWxzZSBmYWlsd2l0aCBcIkJ1ZmZlci5hZGQ6IGNhbm5vdCBncm93IGJ1ZmZlclwiXG4gIGVuZDtcbiAgbGV0IG5ld19idWZmZXIgPSBCeXRlcy5jcmVhdGUgIW5ld19sZW4gaW5cbiAgKCogUFIjNjE0ODogbGV0J3Mga2VlcCB1c2luZyBbYmxpdF0gcmF0aGVyIHRoYW4gW3Vuc2FmZV9ibGl0XSBpblxuICAgICB0aGlzIHRyaWNreSBmdW5jdGlvbiB0aGF0IGlzIHNsb3cgYW55d2F5LiAqKVxuICBCeXRlcy5ibGl0IGIuYnVmZmVyIDAgbmV3X2J1ZmZlciAwIGIucG9zaXRpb247XG4gIGIuYnVmZmVyIDwtIG5ld19idWZmZXI7XG4gIGIubGVuZ3RoIDwtICFuZXdfbGVuO1xuICBhc3NlcnQgKGIucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoKTtcbiAgYXNzZXJ0IChvbGRfcG9zICsgbW9yZSA8PSBiLmxlbmd0aCk7XG4gICgpXG4gICgqIE5vdGU6IHRoZXJlIGFyZSB2YXJpb3VzIHNpdHVhdGlvbnMgKHByZWVtcHRpdmUgdGhyZWFkcywgc2lnbmFscyBhbmRcbiAgICAgZ2MgZmluYWxpemVycykgd2hlcmUgT0NhbWwgY29kZSBtYXkgYmUgcnVuIGFzeW5jaHJvbm91c2x5OyBpblxuICAgICBwYXJ0aWN1bGFyLCB0aGVyZSBtYXkgYmUgYSByYWNlIHdpdGggYW5vdGhlciB1c2VyIG9mIFtiXSwgY2hhbmdpbmdcbiAgICAgaXRzIG11dGFibGUgZmllbGRzIGluIHRoZSBtaWRkbGUgb2YgdGhlIFtyZXNpemVdIGNhbGwuIFRoZSBCdWZmZXJcbiAgICAgbW9kdWxlIGRvZXMgbm90IHByb3ZpZGUgYW55IGNvcnJlY3RuZXNzIGd1YXJhbnRlZSBpZiB0aGF0IGhhcHBlbnMsXG4gICAgIGJ1dCB3ZSBtdXN0IHN0aWxsIGVuc3VyZSB0aGF0IHRoZSBkYXRhc3RydWN0dXJlIGludmFyaWFudHMgaG9sZCBmb3JcbiAgICAgbWVtb3J5LXNhZmV0eSAtLSBhcyB3ZSBwbGFuIHRvIHVzZSBbdW5zYWZlX3tnZXQsc2V0fV0uXG5cbiAgICAgVGhlcmUgYXJlIHR3byBwb3RlbnRpYWwgYWxsb2NhdGlvbiBwb2ludHMgaW4gdGhpcyBmdW5jdGlvbixcbiAgICAgW3JlZl0gYW5kIFtCeXRlcy5jcmVhdGVdLCBidXQgYWxsIHJlYWRzIGFuZCB3cml0ZXMgdG8gdGhlIGZpZWxkc1xuICAgICBvZiBbYl0gaGFwcGVuIGJlZm9yZSBib3RoIG9mIHRoZW0gb3IgYWZ0ZXIgYm90aCBvZiB0aGVtLlxuXG4gICAgIFdlIHRoZXJlZm9yZSBhc3N1bWUgdGhhdCBbYi5wb3NpdGlvbl0gbWF5IGNoYW5nZSBhdCB0aGVzZSBhbGxvY2F0aW9ucyxcbiAgICAgYW5kIGNoZWNrIHRoYXQgdGhlIFtiLnBvc2l0aW9uICsgbW9yZSA8PSBiLmxlbmd0aF0gcG9zdGNvbmRpdGlvblxuICAgICBob2xkcyBmb3IgYm90aCB2YWx1ZXMgb2YgW2IucG9zaXRpb25dLCBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGZ1bmN0aW9uXG4gICAgIGlzIGNhbGxlZC4gTW9yZSBwcmVjaXNlbHksIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50cyBtdXN0IGhvbGQgaWYgdGhlXG4gICAgIGZ1bmN0aW9uIHJldHVybnMgY29ycmVjdGx5LCBpbiBhZGRpdGlvbiB0byB0aGUgdXN1YWwgYnVmZmVyIGludmFyaWFudHM6XG4gICAgIC0gW29sZChiLnBvc2l0aW9uKSArIG1vcmUgPD0gbmV3KGIubGVuZ3RoKV1cbiAgICAgLSBbbmV3KGIucG9zaXRpb24pICsgbW9yZSA8PSBuZXcoYi5sZW5ndGgpXVxuICAgICAtIFtvbGQoYi5sZW5ndGgpIDw9IG5ldyhiLmxlbmd0aCldXG5cbiAgICAgTm90ZTogW2IucG9zaXRpb24gKyBtb3JlIDw9IG9sZChiLmxlbmd0aCldIGRvZXMgKm5vdCpcbiAgICAgaG9sZCBpbiBnZW5lcmFsLCBhcyBpdCBpcyBwcmVjaXNlbHkgdGhlIGNhc2Ugd2hlcmUgeW91IG5lZWRcbiAgICAgdG8gY2FsbCBbcmVzaXplXSB0byBpbmNyZWFzZSBbYi5sZW5ndGhdLlxuXG4gICAgIE5vdGU6IFthc3NlcnRdIGFib3ZlIGRvZXMgbm90IG1lYW4gdGhhdCB3ZSBrbm93IHRoZSBjb25kaXRpb25zXG4gICAgIGFsd2F5cyBob2xkLCBidXQgdGhhdCB0aGUgZnVuY3Rpb24gbWF5IHJldHVybiBjb3JyZWN0bHlcbiAgICAgb25seSBpZiB0aGV5IGhvbGQuXG5cbiAgICAgTm90ZTogdGhlIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZSBkb2VzIG5vdCBuZWVkXG4gICAgIHRvIGJlIGNoZWNrZWQgd2l0aCB0aGlzIGxldmVsIG9mIHNjcnV0aW55LCBnaXZlbiB0aGF0IHRoZXlcbiAgICAgcmVhZC93cml0ZSB0aGUgYnVmZmVyIGltbWVkaWF0ZWx5IGFmdGVyIGNoZWNraW5nIHRoYXRcbiAgICAgW2IucG9zaXRpb24gKyBtb3JlIDw9IGIubGVuZ3RoXSBob2xkIG9yIGNhbGxpbmcgW3Jlc2l6ZV0uXG4gICopXG5cbmxldCBhZGRfY2hhciBiIGMgPVxuICBsZXQgcG9zID0gYi5wb3NpdGlvbiBpblxuICBpZiBwb3MgPj0gYi5sZW5ndGggdGhlbiByZXNpemUgYiAxO1xuICBCeXRlcy51bnNhZmVfc2V0IGIuYnVmZmVyIHBvcyBjO1xuICBiLnBvc2l0aW9uIDwtIHBvcyArIDFcblxubGV0IHVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heCA9IDRcbmxldCB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4ID0gNFxuXG5sZXQgcmVjIGFkZF91dGZfOF91Y2hhciBiIHUgPVxuICBsZXQgcG9zID0gYi5wb3NpdGlvbiBpblxuICBpZiBwb3MgPj0gYi5sZW5ndGggdGhlbiByZXNpemUgYiB1Y2hhcl91dGZfOF9ieXRlX2xlbmd0aF9tYXg7XG4gIGxldCBuID0gQnl0ZXMuc2V0X3V0Zl84X3VjaGFyIGIuYnVmZmVyIHBvcyB1IGluXG4gIGlmIG4gPSAwXG4gIHRoZW4gKHJlc2l6ZSBiIHVjaGFyX3V0Zl84X2J5dGVfbGVuZ3RoX21heDsgYWRkX3V0Zl84X3VjaGFyIGIgdSlcbiAgZWxzZSAoYi5wb3NpdGlvbiA8LSBwb3MgKyBuKVxuXG5sZXQgcmVjIGFkZF91dGZfMTZiZV91Y2hhciBiIHUgPVxuICBsZXQgcG9zID0gYi5wb3NpdGlvbiBpblxuICBpZiBwb3MgPj0gYi5sZW5ndGggdGhlbiByZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4O1xuICBsZXQgbiA9IEJ5dGVzLnNldF91dGZfMTZiZV91Y2hhciBiLmJ1ZmZlciBwb3MgdSBpblxuICBpZiBuID0gMFxuICB0aGVuIChyZXNpemUgYiB1Y2hhcl91dGZfMTZfYnl0ZV9sZW5ndGhfbWF4OyBhZGRfdXRmXzE2YmVfdWNoYXIgYiB1KVxuICBlbHNlIChiLnBvc2l0aW9uIDwtIHBvcyArIG4pXG5cbmxldCByZWMgYWRkX3V0Zl8xNmxlX3VjaGFyIGIgdSA9XG4gIGxldCBwb3MgPSBiLnBvc2l0aW9uIGluXG4gIGlmIHBvcyA+PSBiLmxlbmd0aCB0aGVuIHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7XG4gIGxldCBuID0gQnl0ZXMuc2V0X3V0Zl8xNmxlX3VjaGFyIGIuYnVmZmVyIHBvcyB1IGluXG4gIGlmIG4gPSAwXG4gIHRoZW4gKHJlc2l6ZSBiIHVjaGFyX3V0Zl8xNl9ieXRlX2xlbmd0aF9tYXg7IGFkZF91dGZfMTZsZV91Y2hhciBiIHUpXG4gIGVsc2UgKGIucG9zaXRpb24gPC0gcG9zICsgbilcblxubGV0IGFkZF9zdWJzdHJpbmcgYiBzIG9mZnNldCBsZW4gPVxuICBpZiBvZmZzZXQgPCAwIHx8IGxlbiA8IDAgfHwgb2Zmc2V0ID4gU3RyaW5nLmxlbmd0aCBzIC0gbGVuXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJCdWZmZXIuYWRkX3N1YnN0cmluZy9hZGRfc3ViYnl0ZXNcIjtcbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyBsZW4gaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiBsZW47XG4gIEJ5dGVzLnVuc2FmZV9ibGl0X3N0cmluZyBzIG9mZnNldCBiLmJ1ZmZlciBiLnBvc2l0aW9uIGxlbjtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9zdWJieXRlcyBiIHMgb2Zmc2V0IGxlbiA9XG4gIGFkZF9zdWJzdHJpbmcgYiAoQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBzKSBvZmZzZXQgbGVuXG5cbmxldCBhZGRfc3RyaW5nIGIgcyA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyBsZW4gaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiBsZW47XG4gIEJ5dGVzLnVuc2FmZV9ibGl0X3N0cmluZyBzIDAgYi5idWZmZXIgYi5wb3NpdGlvbiBsZW47XG4gIGIucG9zaXRpb24gPC0gbmV3X3Bvc2l0aW9uXG5cbmxldCBhZGRfYnl0ZXMgYiBzID0gYWRkX3N0cmluZyBiIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHMpXG5cbmxldCBhZGRfYnVmZmVyIGIgYnMgPVxuICBhZGRfc3ViYnl0ZXMgYiBicy5idWZmZXIgMCBicy5wb3NpdGlvblxuXG4oKiB0aGlzIChwcml2YXRlKSBmdW5jdGlvbiBjb3VsZCBtb3ZlIGludG8gdGhlIHN0YW5kYXJkIGxpYnJhcnkgKilcbmxldCByZWFsbHlfaW5wdXRfdXBfdG8gaWMgYnVmIG9mcyBsZW4gPVxuICBsZXQgcmVjIGxvb3AgaWMgYnVmIH5hbHJlYWR5X3JlYWQgfm9mcyB+dG9fcmVhZCA9XG4gICAgaWYgdG9fcmVhZCA9IDAgdGhlbiBhbHJlYWR5X3JlYWRcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IGlucHV0IGljIGJ1ZiBvZnMgdG9fcmVhZCBpblxuICAgICAgaWYgciA9IDAgdGhlbiBhbHJlYWR5X3JlYWRcbiAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IGFscmVhZHlfcmVhZCA9IGFscmVhZHlfcmVhZCArIHIgaW5cbiAgICAgICAgbGV0IG9mcyA9IG9mcyArIHIgaW5cbiAgICAgICAgbGV0IHRvX3JlYWQgPSB0b19yZWFkIC0gciBpblxuICAgICAgICBsb29wIGljIGJ1ZiB+YWxyZWFkeV9yZWFkIH5vZnMgfnRvX3JlYWRcbiAgICAgIGVuZFxuICAgIGVuZFxuICBpbiBsb29wIGljIGJ1ZiB+YWxyZWFkeV9yZWFkOjAgfm9mcyB+dG9fcmVhZDpsZW5cblxuXG5sZXQgdW5zYWZlX2FkZF9jaGFubmVsX3VwX3RvIGIgaWMgbGVuID1cbiAgaWYgYi5wb3NpdGlvbiArIGxlbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgbGVuO1xuICBsZXQgbiA9IHJlYWxseV9pbnB1dF91cF90byBpYyBiLmJ1ZmZlciBiLnBvc2l0aW9uIGxlbiBpblxuICAoKiBUaGUgYXNzZXJ0aW9uIGJlbG93IG1heSBmYWlsIGluIHdlaXJkIHNjZW5hcmlvIHdoZXJlXG4gICAgIHRocmVhZGVkL2ZpbmFsaXplciBjb2RlLCBydW4gYXN5bmNocm9ub3VzbHkgZHVyaW5nIHRoZVxuICAgICBbcmVhbGx5X2lucHV0X3VwX3RvXSBjYWxsLCByYWNlcyBvbiB0aGUgYnVmZmVyOyB3ZSBkb24ndCBlbnN1cmVcbiAgICAgY29ycmVjdG5lc3MgaW4gdGhpcyBjYXNlLCBidXQgbmVlZCB0byBwcmVzZXJ2ZSB0aGUgaW52YXJpYW50cyBmb3JcbiAgICAgbWVtb3J5LXNhZmV0eSAoc2VlIGRpc2N1c3Npb24gb2YgW3Jlc2l6ZV0pLiAqKVxuICBhc3NlcnQgKGIucG9zaXRpb24gKyBuIDw9IGIubGVuZ3RoKTtcbiAgYi5wb3NpdGlvbiA8LSBiLnBvc2l0aW9uICsgbjtcbiAgblxuXG5sZXQgYWRkX2NoYW5uZWwgYiBpYyBsZW4gPVxuICBpZiBsZW4gPCAwIHx8IGxlbiA+IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuICAgKCogUFIjNTAwNCAqKVxuICAgIGludmFsaWRfYXJnIFwiQnVmZmVyLmFkZF9jaGFubmVsXCI7XG4gIGxldCBuID0gdW5zYWZlX2FkZF9jaGFubmVsX3VwX3RvIGIgaWMgbGVuIGluXG4gICgqIEl0IGlzIGludGVudGlvbmFsIHRoYXQgYSBjb25zdW1lciBjYXRjaGluZyBFbmRfb2ZfZmlsZVxuICAgICB3aWxsIHNlZSB0aGUgZGF0YSB3cml0dGVuIChzZWUgIzY3MTksICM3MTM2KS4gKilcbiAgaWYgbiA8IGxlbiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlO1xuICAoKVxuXG5sZXQgb3V0cHV0X2J1ZmZlciBvYyBiID1cbiAgb3V0cHV0IG9jIGIuYnVmZmVyIDAgYi5wb3NpdGlvblxuXG5sZXQgY2xvc2luZyA9IGZ1bmN0aW9uXG4gIHwgJygnIC0+ICcpJ1xuICB8ICd7JyAtPiAnfSdcbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4oKiBvcGVuaW5nIGFuZCBjbG9zaW5nOiBvcGVuIGFuZCBjbG9zZSBjaGFyYWN0ZXJzLCB0eXBpY2FsbHkgKCBhbmQgKVxuICAgazogYmFsYW5jZSBvZiBvcGVuaW5nIGFuZCBjbG9zaW5nIGNoYXJzXG4gICBzOiB0aGUgc3RyaW5nIHdoZXJlIHdlIGFyZSBzZWFyY2hpbmdcbiAgIHN0YXJ0OiB0aGUgaW5kZXggd2hlcmUgd2Ugc3RhcnQgdGhlIHNlYXJjaC4gKilcbmxldCBhZHZhbmNlX3RvX2Nsb3Npbmcgb3BlbmluZyBjbG9zaW5nIGsgcyBzdGFydCA9XG4gIGxldCByZWMgYWR2YW5jZSBrIGkgbGltID1cbiAgICBpZiBpID49IGxpbSB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gICAgaWYgcy5baV0gPSBvcGVuaW5nIHRoZW4gYWR2YW5jZSAoayArIDEpIChpICsgMSkgbGltIGVsc2VcbiAgICBpZiBzLltpXSA9IGNsb3NpbmcgdGhlblxuICAgICAgaWYgayA9IDAgdGhlbiBpIGVsc2UgYWR2YW5jZSAoayAtIDEpIChpICsgMSkgbGltXG4gICAgZWxzZSBhZHZhbmNlIGsgKGkgKyAxKSBsaW0gaW5cbiAgYWR2YW5jZSBrIHN0YXJ0IChTdHJpbmcubGVuZ3RoIHMpXG5cbmxldCBhZHZhbmNlX3RvX25vbl9hbHBoYSBzIHN0YXJ0ID1cbiAgbGV0IHJlYyBhZHZhbmNlIGkgbGltID1cbiAgICBpZiBpID49IGxpbSB0aGVuIGxpbSBlbHNlXG4gICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgIHwgJ2EnIC4uICd6JyB8ICdBJyAuLiAnWicgfCAnMCcgLi4gJzknIHwgJ18nIC0+IGFkdmFuY2UgKGkgKyAxKSBsaW1cbiAgICB8IF8gLT4gaSBpblxuICBhZHZhbmNlIHN0YXJ0IChTdHJpbmcubGVuZ3RoIHMpXG5cbigqIFdlIGFyZSBqdXN0IGF0IHRoZSBiZWdpbm5pbmcgb2YgYW4gaWRlbnQgaW4gcywgc3RhcnRpbmcgYXQgc3RhcnQuICopXG5sZXQgZmluZF9pZGVudCBzIHN0YXJ0IGxpbSA9XG4gIGlmIHN0YXJ0ID49IGxpbSB0aGVuIHJhaXNlIE5vdF9mb3VuZCBlbHNlXG4gIG1hdGNoIHMuW3N0YXJ0XSB3aXRoXG4gICgqIFBhcmVudGhlc2l6ZWQgaWRlbnQgPyAqKVxuICB8ICcoJyB8ICd7JyBhcyBjIC0+XG4gICAgIGxldCBuZXdfc3RhcnQgPSBzdGFydCArIDEgaW5cbiAgICAgbGV0IHN0b3AgPSBhZHZhbmNlX3RvX2Nsb3NpbmcgYyAoY2xvc2luZyBjKSAwIHMgbmV3X3N0YXJ0IGluXG4gICAgIFN0cmluZy5zdWIgcyBuZXdfc3RhcnQgKHN0b3AgLSBzdGFydCAtIDEpLCBzdG9wICsgMVxuICAoKiBSZWd1bGFyIGlkZW50ICopXG4gIHwgXyAtPlxuICAgICBsZXQgc3RvcCA9IGFkdmFuY2VfdG9fbm9uX2FscGhhIHMgKHN0YXJ0ICsgMSkgaW5cbiAgICAgU3RyaW5nLnN1YiBzIHN0YXJ0IChzdG9wIC0gc3RhcnQpLCBzdG9wXG5cbigqIFN1YnN0aXR1dGUgJGlkZW50LCAkKGlkZW50KSwgb3IgJHtpZGVudH0gaW4gcyxcbiAgICBhY2NvcmRpbmcgdG8gdGhlIGZ1bmN0aW9uIG1hcHBpbmcgZi4gKilcbmxldCBhZGRfc3Vic3RpdHV0ZSBiIGYgcyA9XG4gIGxldCBsaW0gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBzdWJzdCBwcmV2aW91cyBpID1cbiAgICBpZiBpIDwgbGltIHRoZW4gYmVnaW5cbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgIHwgJyQnIGFzIGN1cnJlbnQgd2hlbiBwcmV2aW91cyA9ICdcXFxcJyAtPlxuICAgICAgICAgYWRkX2NoYXIgYiBjdXJyZW50O1xuICAgICAgICAgc3Vic3QgJyAnIChpICsgMSlcbiAgICAgIHwgJyQnIC0+XG4gICAgICAgICBsZXQgaiA9IGkgKyAxIGluXG4gICAgICAgICBsZXQgaWRlbnQsIG5leHRfaSA9IGZpbmRfaWRlbnQgcyBqIGxpbSBpblxuICAgICAgICAgYWRkX3N0cmluZyBiIChmIGlkZW50KTtcbiAgICAgICAgIHN1YnN0ICcgJyBuZXh0X2lcbiAgICAgIHwgY3VycmVudCB3aGVuIHByZXZpb3VzID09ICdcXFxcJyAtPlxuICAgICAgICAgYWRkX2NoYXIgYiAnXFxcXCc7XG4gICAgICAgICBhZGRfY2hhciBiIGN1cnJlbnQ7XG4gICAgICAgICBzdWJzdCAnICcgKGkgKyAxKVxuICAgICAgfCAnXFxcXCcgYXMgY3VycmVudCAtPlxuICAgICAgICAgc3Vic3QgY3VycmVudCAoaSArIDEpXG4gICAgICB8IGN1cnJlbnQgLT5cbiAgICAgICAgIGFkZF9jaGFyIGIgY3VycmVudDtcbiAgICAgICAgIHN1YnN0IGN1cnJlbnQgKGkgKyAxKVxuICAgIGVuZCBlbHNlXG4gICAgaWYgcHJldmlvdXMgPSAnXFxcXCcgdGhlbiBhZGRfY2hhciBiIHByZXZpb3VzIGluXG4gIHN1YnN0ICcgJyAwXG5cbmxldCB0cnVuY2F0ZSBiIGxlbiA9XG4gICAgaWYgbGVuIDwgMCB8fCBsZW4gPiBsZW5ndGggYiB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIkJ1ZmZlci50cnVuY2F0ZVwiXG4gICAgZWxzZVxuICAgICAgYi5wb3NpdGlvbiA8LSBsZW5cblxuKCoqIHsxIEl0ZXJhdG9yc30gKilcblxubGV0IHRvX3NlcSBiID1cbiAgbGV0IHJlYyBhdXggaSAoKSA9XG4gICAgKCogTm90ZSB0aGF0IGIucG9zaXRpb24gaXMgbm90IGEgY29uc3RhbnQgYW5kIGNhbm5vdCBiZSBsaWZ0ZWQgb3V0IG9mIGF1eCAqKVxuICAgIGlmIGkgPj0gYi5wb3NpdGlvbiB0aGVuIFNlcS5OaWxcbiAgICBlbHNlXG4gICAgICBsZXQgeCA9IEJ5dGVzLnVuc2FmZV9nZXQgYi5idWZmZXIgaSBpblxuICAgICAgU2VxLkNvbnMgKHgsIGF1eCAoaSsxKSlcbiAgaW5cbiAgYXV4IDBcblxubGV0IHRvX3NlcWkgYiA9XG4gIGxldCByZWMgYXV4IGkgKCkgPVxuICAgICgqIE5vdGUgdGhhdCBiLnBvc2l0aW9uIGlzIG5vdCBhIGNvbnN0YW50IGFuZCBjYW5ub3QgYmUgbGlmdGVkIG91dCBvZiBhdXggKilcbiAgICBpZiBpID49IGIucG9zaXRpb24gdGhlbiBTZXEuTmlsXG4gICAgZWxzZVxuICAgICAgbGV0IHggPSBCeXRlcy51bnNhZmVfZ2V0IGIuYnVmZmVyIGkgaW5cbiAgICAgIFNlcS5Db25zICgoaSx4KSwgYXV4IChpKzEpKVxuICBpblxuICBhdXggMFxuXG5sZXQgYWRkX3NlcSBiIHNlcSA9IFNlcS5pdGVyIChhZGRfY2hhciBiKSBzZXFcblxubGV0IG9mX3NlcSBpID1cbiAgbGV0IGIgPSBjcmVhdGUgMzIgaW5cbiAgYWRkX3NlcSBiIGk7XG4gIGJcblxuKCoqIHs2IEJpbmFyeSBlbmNvZGluZyBvZiBpbnRlZ2Vyc30gKilcblxuZXh0ZXJuYWwgdW5zYWZlX3NldF9pbnQ4IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlYnl0ZXNfdW5zYWZlX3NldFwiXG5leHRlcm5hbCB1bnNhZmVfc2V0X2ludDE2IDogYnl0ZXMgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQxNnVcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldF9pbnQzMiA6IGJ5dGVzIC0+IGludCAtPiBpbnQzMiAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQzMnVcIlxuZXh0ZXJuYWwgdW5zYWZlX3NldF9pbnQ2NCA6IGJ5dGVzIC0+IGludCAtPiBpbnQ2NCAtPiB1bml0ID0gXCIlY2FtbF9ieXRlc19zZXQ2NHVcIlxuZXh0ZXJuYWwgc3dhcDE2IDogaW50IC0+IGludCA9IFwiJWJzd2FwMTZcIlxuZXh0ZXJuYWwgc3dhcDMyIDogaW50MzIgLT4gaW50MzIgPSBcIiVic3dhcF9pbnQzMlwiXG5leHRlcm5hbCBzd2FwNjQgOiBpbnQ2NCAtPiBpbnQ2NCA9IFwiJWJzd2FwX2ludDY0XCJcblxuXG5sZXQgYWRkX2ludDggYiB4ID1cbiAgbGV0IG5ld19wb3NpdGlvbiA9IGIucG9zaXRpb24gKyAxIGluXG4gIGlmIG5ld19wb3NpdGlvbiA+IGIubGVuZ3RoIHRoZW4gcmVzaXplIGIgMTtcbiAgdW5zYWZlX3NldF9pbnQ4IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQxNl9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDIgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiAyO1xuICB1bnNhZmVfc2V0X2ludDE2IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQzMl9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDQgaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiA0O1xuICB1bnNhZmVfc2V0X2ludDMyIGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQ2NF9uZSBiIHggPVxuICBsZXQgbmV3X3Bvc2l0aW9uID0gYi5wb3NpdGlvbiArIDggaW5cbiAgaWYgbmV3X3Bvc2l0aW9uID4gYi5sZW5ndGggdGhlbiByZXNpemUgYiA4O1xuICB1bnNhZmVfc2V0X2ludDY0IGIuYnVmZmVyIGIucG9zaXRpb24geDtcbiAgYi5wb3NpdGlvbiA8LSBuZXdfcG9zaXRpb25cblxubGV0IGFkZF9pbnQxNl9sZSBiIHggPVxuICBhZGRfaW50MTZfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiBzd2FwMTYgeCBlbHNlIHgpXG5cbmxldCBhZGRfaW50MTZfYmUgYiB4ID1cbiAgYWRkX2ludDE2X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4geCBlbHNlIHN3YXAxNiB4KVxuXG5sZXQgYWRkX2ludDMyX2xlIGIgeCA9XG4gIGFkZF9pbnQzMl9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHN3YXAzMiB4IGVsc2UgeClcblxubGV0IGFkZF9pbnQzMl9iZSBiIHggPVxuICBhZGRfaW50MzJfbmUgYiAoaWYgU3lzLmJpZ19lbmRpYW4gdGhlbiB4IGVsc2Ugc3dhcDMyIHgpXG5cbmxldCBhZGRfaW50NjRfbGUgYiB4ID1cbiAgYWRkX2ludDY0X25lIGIgKGlmIFN5cy5iaWdfZW5kaWFuIHRoZW4gc3dhcDY0IHggZWxzZSB4KVxuXG5sZXQgYWRkX2ludDY0X2JlIGIgeCA9XG4gIGFkZF9pbnQ2NF9uZSBiIChpZiBTeXMuYmlnX2VuZGlhbiB0aGVuIHggZWxzZSBzd2FwNjQgeClcblxubGV0IGFkZF91aW50OCA9IGFkZF9pbnQ4XG5sZXQgYWRkX3VpbnQxNl9uZSA9IGFkZF9pbnQxNl9uZVxubGV0IGFkZF91aW50MTZfbGUgPSBhZGRfaW50MTZfbGVcbmxldCBhZGRfdWludDE2X2JlID0gYWRkX2ludDE2X2JlXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgQmVub2l0IFZhdWdvbiwgRU5TVEEgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDE0IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICgqIFRvb2xzIHRvIG1hbmlwdWxhdGUgc2Nhbm5pbmcgc2V0IG9mIGNoYXJzIChzZWUgJVsuLi5dKSAqKVxuXG50eXBlIG11dGFibGVfY2hhcl9zZXQgPSBieXRlc1xuXG4oKiBDcmVhdGUgYSBmcmVzaCwgZW1wdHksIG11dGFibGUgY2hhciBzZXQuICopXG5sZXQgY3JlYXRlX2NoYXJfc2V0ICgpID0gQnl0ZXMubWFrZSAzMiAnXFwwMDAnXG5cbigqIEFkZCBhIGNoYXIgaW4gYSBtdXRhYmxlIGNoYXIgc2V0LiAqKVxubGV0IGFkZF9pbl9jaGFyX3NldCBjaGFyX3NldCBjID1cbiAgbGV0IGluZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgbGV0IHN0cl9pbmQgPSBpbmQgbHNyIDMgYW5kIG1hc2sgPSAxIGxzbCAoaW5kIGxhbmQgMGIxMTEpIGluXG4gIEJ5dGVzLnNldCBjaGFyX3NldCBzdHJfaW5kXG4gICAgKGNoYXJfb2ZfaW50IChpbnRfb2ZfY2hhciAoQnl0ZXMuZ2V0IGNoYXJfc2V0IHN0cl9pbmQpIGxvciBtYXNrKSlcblxubGV0IGZyZWV6ZV9jaGFyX3NldCBjaGFyX3NldCA9XG4gIEJ5dGVzLnRvX3N0cmluZyBjaGFyX3NldFxuXG4oKiBDb21wdXRlIHRoZSBjb21wbGVtZW50IG9mIGEgY2hhciBzZXQuICopXG5sZXQgcmV2X2NoYXJfc2V0IGNoYXJfc2V0ID1cbiAgbGV0IGNoYXJfc2V0JyA9IGNyZWF0ZV9jaGFyX3NldCAoKSBpblxuICBmb3IgaSA9IDAgdG8gMzEgZG9cbiAgICBCeXRlcy5zZXQgY2hhcl9zZXQnIGlcbiAgICAgIChjaGFyX29mX2ludCAoaW50X29mX2NoYXIgKFN0cmluZy5nZXQgY2hhcl9zZXQgaSkgbHhvciAweEZGKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgY2hhcl9zZXQnXG5cbigqIFJldHVybiB0cnVlIGlmIGEgYGMnIGlzIGluIGBjaGFyX3NldCcuICopXG5sZXQgaXNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYyA9XG4gIGxldCBpbmQgPSBpbnRfb2ZfY2hhciBjIGluXG4gIGxldCBzdHJfaW5kID0gaW5kIGxzciAzIGFuZCBtYXNrID0gMSBsc2wgKGluZCBsYW5kIDBiMTExKSBpblxuICAoaW50X29mX2NoYXIgKFN0cmluZy5nZXQgY2hhcl9zZXQgc3RyX2luZCkgbGFuZCBtYXNrKSA8PiAwXG5cblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAoKiBJZ25vcmVkIHBhcmFtIGNvbnZlcnNpb24gKilcblxuKCogR0FEVCB1c2VkIHRvIGFic3RyYWN0IGFuIGV4aXN0ZW50aWFsIHR5cGUgcGFyYW1ldGVyLiAqKVxuKCogU2VlIHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdC4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhcmFtX2Zvcm1hdF9lYmIgPSBQYXJhbV9mb3JtYXRfRUJCIDpcbiAgICAoJ3ggLT4gJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIHBhcmFtX2Zvcm1hdF9lYmJcblxuKCogQ29tcHV0ZSBhIHBhZGRpbmcgYXNzb2NpYXRlZCB0byBhIHBhZF9vcHRpb24gKHNlZSBcIiVfNDJkXCIpLiAqKVxubGV0IHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQgPSBtYXRjaCBwYWRfb3B0IHdpdGhcbiAgfCBOb25lIC0+IE5vX3BhZGRpbmdcbiAgfCBTb21lIHdpZHRoIC0+IExpdF9wYWRkaW5nIChSaWdodCwgd2lkdGgpXG5cbigqIENvbXB1dGUgYSBwcmVjaXNpb24gYXNzb2NpYXRlZCB0byBhIHByZWNfb3B0aW9uIChzZWUgXCIlXy40MmZcIikuICopXG5sZXQgcHJlY19vZl9wcmVjX29wdCBwcmVjX29wdCA9IG1hdGNoIHByZWNfb3B0IHdpdGhcbiAgfCBOb25lIC0+IE5vX3ByZWNpc2lvblxuICB8IFNvbWUgbmRlYyAtPiBMaXRfcHJlY2lzaW9uIG5kZWNcblxuKCogVHVybiBhbiBpZ25vcmVkIHBhcmFtIGludG8gaXRzIGVxdWl2YWxlbnQgbm90LWlnbm9yZWQgZm9ybWF0IG5vZGUuICopXG4oKiBVc2VkIGZvciBmb3JtYXQgcHJldHR5LXByaW50aW5nIGFuZCBTY2FuZi4gKilcbmxldCBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQgOiB0eXBlIGEgYiBjIGQgZSBmIHggeSAuXG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGlnbm9yZWQgLT4gKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPlxuICAgICAgKGEsIGIsIGMsIGQsIGUsIGYpIHBhcmFtX2Zvcm1hdF9lYmIgPVxuZnVuIGlnbiBmbXQgLT4gbWF0Y2ggaWduIHdpdGhcbiAgfCBJZ25vcmVkX2NoYXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChDaGFyIGZtdClcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKENhbWxfY2hhciBmbXQpXG4gIHwgSWdub3JlZF9zdHJpbmcgcGFkX29wdCAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFN0cmluZyAocGFkX29mX3BhZF9vcHQgcGFkX29wdCwgZm10KSlcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIHBhZF9vcHQgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChDYW1sX3N0cmluZyAocGFkX29mX3BhZF9vcHQgcGFkX29wdCwgZm10KSlcbiAgfCBJZ25vcmVkX2ludCAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoSW50IChpY29udiwgcGFkX29mX3BhZF9vcHQgcGFkX29wdCwgTm9fcHJlY2lzaW9uLCBmbXQpKVxuICB8IElnbm9yZWRfaW50MzIgKGljb252LCBwYWRfb3B0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkJcbiAgICAgIChJbnQzMiAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoaWNvbnYsIHBhZF9vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKE5hdGl2ZWludCAoaWNvbnYsIHBhZF9vZl9wYWRfb3B0IHBhZF9vcHQsIE5vX3ByZWNpc2lvbiwgZm10KSlcbiAgfCBJZ25vcmVkX2ludDY0IChpY29udiwgcGFkX29wdCkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoSW50NjQgKGljb252LCBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBOb19wcmVjaXNpb24sIGZtdCkpXG4gIHwgSWdub3JlZF9mbG9hdCAocGFkX29wdCwgcHJlY19vcHQpIC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQlxuICAgICAgKEZsb2F0ICgoRmxvYXRfZmxhZ18sIEZsb2F0X2YpLFxuICAgICAgICAgICAgICBwYWRfb2ZfcGFkX29wdCBwYWRfb3B0LCBwcmVjX29mX3ByZWNfb3B0IHByZWNfb3B0LCBmbXQpKVxuICB8IElnbm9yZWRfYm9vbCBwYWRfb3B0IC0+XG4gICAgUGFyYW1fZm9ybWF0X0VCQiAoQm9vbCAocGFkX29mX3BhZF9vcHQgcGFkX29wdCwgZm10KSlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKEZvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5LCBmbXQpKVxuICB8IElnbm9yZWRfZm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSkgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCXG4gICAgICAoRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSwgZm10KSlcbiAgfCBJZ25vcmVkX3JlYWRlciAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFJlYWRlciBmbXQpXG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0KSAtPlxuICAgIFBhcmFtX2Zvcm1hdF9FQkIgKFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGZtdCkpXG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIGNvdW50ZXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXQpKVxuICB8IElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIgLT5cbiAgICBQYXJhbV9mb3JtYXRfRUJCIChTY2FuX25leHRfY2hhciBmbXQpXG5cblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIFR5cGVzICopXG5cbnR5cGUgKCdiLCAnYykgYWNjX2Zvcm1hdHRpbmdfZ2VuID1cbiAgfCBBY2Nfb3Blbl90YWcgb2YgKCdiLCAnYykgYWNjXG4gIHwgQWNjX29wZW5fYm94IG9mICgnYiwgJ2MpIGFjY1xuXG4oKiBSZXZlcnNlZCBsaXN0IG9mIHByaW50aW5nIGF0b21zLiAqKVxuKCogVXNlZCB0byBhY2N1bXVsYXRlIHByaW50ZiBhcmd1bWVudHMuICopXG5hbmQgKCdiLCAnYykgYWNjID1cbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgb2YgKCdiLCAnYykgYWNjICogZm9ybWF0dGluZ19saXRcbiAgICAgICgqIFNwZWNpYWwgZm10dGluZyAoYm94KSAqKVxuICB8IEFjY19mb3JtYXR0aW5nX2dlbiBvZiAoJ2IsICdjKSBhY2MgKiAoJ2IsICdjKSBhY2NfZm9ybWF0dGluZ19nZW5cbiAgICAgICgqIFNwZWNpYWwgZm10dGluZyAoYm94KSAqKVxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCBvZiAoJ2IsICdjKSBhY2MgKiBzdHJpbmcgICAgICgqIExpdGVyYWwgc3RyaW5nICopXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAgIG9mICgnYiwgJ2MpIGFjYyAqIGNoYXIgICAgICAgKCogTGl0ZXJhbCBjaGFyICopXG4gIHwgQWNjX2RhdGFfc3RyaW5nICAgIG9mICgnYiwgJ2MpIGFjYyAqIHN0cmluZyAgICAgKCogR2VuZXJhdGVkIHN0cmluZyAqKVxuICB8IEFjY19kYXRhX2NoYXIgICAgICBvZiAoJ2IsICdjKSBhY2MgKiBjaGFyICAgICAgICgqIEdlbmVyYXRlZCBjaGFyICopXG4gIHwgQWNjX2RlbGF5ICAgICAgICAgIG9mICgnYiwgJ2MpIGFjYyAqICgnYiAtPiAnYylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIERlbGF5ZWQgcHJpbnRpbmcgKCVhLCAldCkgKilcbiAgfCBBY2NfZmx1c2ggICAgICAgICAgb2YgKCdiLCAnYykgYWNjICAgICAgICAgICAgICAoKiBGbHVzaCAqKVxuICB8IEFjY19pbnZhbGlkX2FyZyAgICBvZiAoJ2IsICdjKSBhY2MgKiBzdHJpbmdcbiAgICAgICgqIFJhaXNlIEludmFsaWRfYXJndW1lbnQgbXNnICopXG4gIHwgRW5kX29mX2FjY1xuXG4oKiBMaXN0IG9mIGhldGVyb2dlbmVvdXMgdmFsdWVzLiAqKVxuKCogVXNlZCB0byBhY2N1bXVsYXRlIHNjYW5mIGNhbGxiYWNrIGFyZ3VtZW50cy4gKilcbnR5cGUgKCdhLCAnYikgaGV0ZXJfbGlzdCA9XG4gIHwgQ29ucyA6ICdjICogKCdhLCAnYikgaGV0ZXJfbGlzdCAtPiAoJ2MgLT4gJ2EsICdiKSBoZXRlcl9saXN0XG4gIHwgTmlsIDogKCdiLCAnYikgaGV0ZXJfbGlzdFxuXG4oKiBFeGlzdGVudGlhbCBCbGFjayBCb3hlcy4gKilcbigqIFVzZWQgdG8gYWJzdHJhY3Qgc29tZSBleGlzdGVudGlhbCB0eXBlIHBhcmFtZXRlcnMuICopXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcgYW5kIGFuIGZtdHR5LiAqKVxuKCogU2VlIHRoZSB0eXBlX3BhZGRpbmcgZnVuY3Rpb24uICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRkaW5nX2ZtdHR5X2ViYiA9IFBhZGRpbmdfZm10dHlfRUJCIDpcbiAgICAgKCd4LCAneSkgcGFkZGluZyAqICgneSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkZGluZ19mbXR0eV9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZywgYSBwcmVjaXNpb24gYW5kIGFuIGZtdHR5LiAqKVxuKCogU2VlIHRoZSB0eXBlX3BhZHByZWMgZnVuY3Rpb24uICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBwYWRwcmVjX2ZtdHR5X2ViYiA9IFBhZHByZWNfZm10dHlfRUJCIDpcbiAgICAgKCd4LCAneSkgcGFkZGluZyAqICgneSwgJ3opIHByZWNpc2lvbiAqICgneiwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eSAtPlxuICAgICAoJ3gsICdiLCAnYywgJ2QsICdlLCAnZikgcGFkcHJlY19mbXR0eV9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGEgcGFkZGluZyBhbmQgYW4gZm10LiAqKVxuKCogU2VlIG1ha2VfcGFkZGluZ19mbXRfZWJiIGFuZCBwYXJzZV9mb3JtYXQgZnVuY3Rpb25zLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2UsICdmKSBwYWRkaW5nX2ZtdF9lYmIgPSBQYWRkaW5nX2ZtdF9FQkIgOlxuICAgICAoXywgJ3ggLT4gJ2EpIHBhZGRpbmcgKlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZSwgJ2YpIHBhZGRpbmdfZm10X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYSBwcmVjaXNpb24gYW5kIGFuIGZtdC4gKilcbigqIFNlZSBtYWtlX3ByZWNpc2lvbl9mbXRfZWJiIGFuZCBwYXJzZV9mb3JtYXQgZnVuY3Rpb25zLiAqKVxudHlwZSAoJ2EsICdiLCAnYywgJ2UsICdmKSBwcmVjaXNpb25fZm10X2ViYiA9IFByZWNpc2lvbl9mbXRfRUJCIDpcbiAgICAgKF8sICd4IC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgneCwgJ2IsICdjLCAnZSwgJ2YpIHByZWNpc2lvbl9mbXRfZWJiXG5cbigqIEdBRFQgdHlwZSBhc3NvY2lhdGluZyBhIHBhZGRpbmcsIGEgcHJlY2lzaW9uIGFuZCBhbiBmbXQuICopXG4oKiBTZWUgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgYW5kIHBhcnNlX2Zvcm1hdCBmdW5jdGlvbnMuICopXG50eXBlICgncCwgJ2IsICdjLCAnZSwgJ2YpIHBhZHByZWNfZm10X2ViYiA9IFBhZHByZWNfZm10X0VCQiA6XG4gICAgICgneCwgJ3kpIHBhZGRpbmcgKiAoJ3ksICdwIC0+ICdhKSBwcmVjaXNpb24gKlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10IC0+XG4gICAgICgncCwgJ2IsICdjLCAnZSwgJ2YpIHBhZHByZWNfZm10X2ViYlxuXG4oKiBBYnN0cmFjdCB0aGUgJ2EgYW5kICdkIHBhcmFtZXRlcnMgb2YgYW4gZm10LiAqKVxuKCogT3V0cHV0IHR5cGUgb2YgdGhlIGZvcm1hdCBwYXJzaW5nIGZ1bmN0aW9uLiAqKVxudHlwZSAoJ2IsICdjLCAnZSwgJ2YpIGZtdF9lYmIgPSBGbXRfRUJCIDpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdCAtPlxuICAgICAoJ2IsICdjLCAnZSwgJ2YpIGZtdF9lYmJcblxuKCogR0FEVCB0eXBlIGFzc29jaWF0aW5nIGFuIGZtdHR5IGFuZCBhbiBmbXQuICopXG4oKiBTZWUgdGhlIHR5cGVfZm9ybWF0X2dlbiBmdW5jdGlvbi4gKilcbnR5cGUgKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZtdF9mbXR0eV9lYmIgPSBGbXRfZm10dHlfRUJCIDpcbiAgICAgKCdhLCAnYiwgJ2MsICdkLCAneSwgJ3gpIGZtdCAqXG4gICAgICgneCwgJ2IsICdjLCAneSwgJ2UsICdmKSBmbXR0eSAtPlxuICAgICAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10X2ZtdHR5X2ViYlxuXG4oKiBHQURUIHR5cGUgYXNzb2NpYXRpbmcgYW4gZm10dHkgYW5kIGFuIGZtdC4gKilcbigqIFNlZSB0aGUgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gZnVuY3Rpb24uICopXG50eXBlICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9mbXRfZWJiID0gRm10dHlfZm10X0VCQiA6XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ3ksICd4KSBmbXR0eSAqXG4gICAgICgneCwgJ2IsICdjLCAneSwgJ2UsICdmKSBmbXRfZm10dHlfZWJiIC0+XG4gICAgICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmbXR0eV9mbXRfZWJiXG5cbigqIEFic3RyYWN0IGFsbCBmbXR0eSB0eXBlIHBhcmFtZXRlcnMuICopXG4oKiBVc2VkIHRvIGNvbXBhcmUgZm9ybWF0IHR5cGVzLiAqKVxudHlwZSBmbXR0eV9lYmIgPSBGbXR0eV9FQkIgOiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm10dHkgLT4gZm10dHlfZWJiXG5cbigqIEFic3RyYWN0IGFsbCBwYWRkaW5nIHR5cGUgcGFyYW1ldGVycy4gKilcbigqIFVzZWQgdG8gY29tcGFyZSBwYWRkaW5ncy4gKilcbnR5cGUgcGFkZGluZ19lYmIgPSBQYWRkaW5nX0VCQiA6ICgnYSwgJ2IpIHBhZGRpbmcgLT4gcGFkZGluZ19lYmJcblxuKCogQWJzdHJhY3QgYWxsIHByZWNpc2lvbiB0eXBlIHBhcmFtZXRlcnMuICopXG4oKiBVc2VkIHRvIGNvbXBhcmUgcHJlY2lzaW9ucy4gKilcbnR5cGUgcHJlY2lzaW9uX2ViYiA9IFByZWNpc2lvbl9FQkIgOiAoJ2EsICdiKSBwcmVjaXNpb24gLT4gcHJlY2lzaW9uX2ViYlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIENvbnN0YW50cyAqKVxuXG4oKiBEZWZhdWx0IHByZWNpc2lvbiBmb3IgZmxvYXQgcHJpbnRpbmcuICopXG5sZXQgZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24gZmNvbnYgPVxuICBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HIHwgRmxvYXRfaCB8IEZsb2F0X0hcbiAgfCBGbG9hdF9DRiAtPiAtNlxuICAoKiBGb3IgJWggJUggYW5kICUjRiBmb3JtYXRzLCBhIG5lZ2F0aXZlIHByZWNpc2lvbiBtZWFucyBcImFzIG1hbnkgZGlnaXRzIGFzXG4gICAgIG5lY2Vzc2FyeVwiLiAgRm9yIHRoZSBvdGhlciBGUCBmb3JtYXRzLCB3ZSB0YWtlIHRoZSBhYnNvbHV0ZSB2YWx1ZVxuICAgICBvZiB0aGUgcHJlY2lzaW9uLCBoZW5jZSA2IGRpZ2l0cyBieSBkZWZhdWx0LiAqKVxuICB8IEZsb2F0X0YgLT4gMTJcbiAgKCogRGVmYXVsdCBwcmVjaXNpb24gZm9yIE9DYW1sIGZsb2F0IHByaW50aW5nICglRikuICopXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRXh0ZXJuYWxzICopXG5cbmV4dGVybmFsIGZvcm1hdF9mbG9hdDogc3RyaW5nIC0+IGZsb2F0IC0+IHN0cmluZ1xuICA9IFwiY2FtbF9mb3JtYXRfZmxvYXRcIlxuZXh0ZXJuYWwgZm9ybWF0X2ludDogc3RyaW5nIC0+IGludCAtPiBzdHJpbmdcbiAgPSBcImNhbWxfZm9ybWF0X2ludFwiXG5leHRlcm5hbCBmb3JtYXRfaW50MzI6IHN0cmluZyAtPiBpbnQzMiAtPiBzdHJpbmdcbiAgPSBcImNhbWxfaW50MzJfZm9ybWF0XCJcbmV4dGVybmFsIGZvcm1hdF9uYXRpdmVpbnQ6IHN0cmluZyAtPiBuYXRpdmVpbnQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX25hdGl2ZWludF9mb3JtYXRcIlxuZXh0ZXJuYWwgZm9ybWF0X2ludDY0OiBzdHJpbmcgLT4gaW50NjQgLT4gc3RyaW5nXG4gID0gXCJjYW1sX2ludDY0X2Zvcm1hdFwiXG5leHRlcm5hbCBoZXhzdHJpbmdfb2ZfZmxvYXQ6IGZsb2F0IC0+IGludCAtPiBjaGFyIC0+IHN0cmluZ1xuICA9IFwiY2FtbF9oZXhzdHJpbmdfb2ZfZmxvYXRcIlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgKCogVG9vbHMgdG8gcHJldHR5LXByaW50IGZvcm1hdHMgKilcblxuKCogVHlwZSBvZiBleHRlbnNpYmxlIGNoYXJhY3RlciBidWZmZXJzLiAqKVxudHlwZSBidWZmZXIgPSB7XG4gIG11dGFibGUgaW5kIDogaW50O1xuICBtdXRhYmxlIGJ5dGVzIDogYnl0ZXM7XG59XG5cbigqIENyZWF0ZSBhIGZyZXNoIGJ1ZmZlci4gKilcbmxldCBidWZmZXJfY3JlYXRlIGluaXRfc2l6ZSA9IHsgaW5kID0gMDsgYnl0ZXMgPSBCeXRlcy5jcmVhdGUgaW5pdF9zaXplIH1cblxuKCogQ2hlY2sgc2l6ZSBvZiB0aGUgYnVmZmVyIGFuZCBncm93IGl0IGlmIG5lZWRlZC4gKilcbmxldCBidWZmZXJfY2hlY2tfc2l6ZSBidWYgb3ZlcmhlYWQgPVxuICBsZXQgbGVuID0gQnl0ZXMubGVuZ3RoIGJ1Zi5ieXRlcyBpblxuICBsZXQgbWluX2xlbiA9IGJ1Zi5pbmQgKyBvdmVyaGVhZCBpblxuICBpZiBtaW5fbGVuID4gbGVuIHRoZW4gKFxuICAgIGxldCBuZXdfbGVuID0gSW50Lm1heCAobGVuICogMikgbWluX2xlbiBpblxuICAgIGxldCBuZXdfc3RyID0gQnl0ZXMuY3JlYXRlIG5ld19sZW4gaW5cbiAgICBCeXRlcy5ibGl0IGJ1Zi5ieXRlcyAwIG5ld19zdHIgMCBsZW47XG4gICAgYnVmLmJ5dGVzIDwtIG5ld19zdHI7XG4gIClcblxuKCogQWRkIHRoZSBjaGFyYWN0ZXIgYGMnIHRvIHRoZSBidWZmZXIgYGJ1ZicuICopXG5sZXQgYnVmZmVyX2FkZF9jaGFyIGJ1ZiBjID1cbiAgYnVmZmVyX2NoZWNrX3NpemUgYnVmIDE7XG4gIEJ5dGVzLnNldCBidWYuYnl0ZXMgYnVmLmluZCBjO1xuICBidWYuaW5kIDwtIGJ1Zi5pbmQgKyAxXG5cbigqIEFkZCB0aGUgc3RyaW5nIGBzJyB0byB0aGUgYnVmZmVyIGBidWYnLiAqKVxubGV0IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBzID1cbiAgbGV0IHN0cl9sZW4gPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgYnVmZmVyX2NoZWNrX3NpemUgYnVmIHN0cl9sZW47XG4gIFN0cmluZy5ibGl0IHMgMCBidWYuYnl0ZXMgYnVmLmluZCBzdHJfbGVuO1xuICBidWYuaW5kIDwtIGJ1Zi5pbmQgKyBzdHJfbGVuXG5cbigqIEdldCB0aGUgY29udGVudCBvZiB0aGUgYnVmZmVyLiAqKVxubGV0IGJ1ZmZlcl9jb250ZW50cyBidWYgPVxuICBCeXRlcy5zdWJfc3RyaW5nIGJ1Zi5ieXRlcyAwIGJ1Zi5pbmRcblxuKCoqKilcblxuKCogQ29udmVydCBhbiBpbnRlZ2VyIGNvbnZlcnNpb24gdG8gY2hhci4gKilcbmxldCBjaGFyX29mX2ljb252IGljb252ID0gbWF0Y2ggaWNvbnYgd2l0aFxuICB8IEludF9kIHwgSW50X3BkIHwgSW50X3NkIHwgSW50X0NkIC0+ICdkJyB8IEludF9pIHwgSW50X3BpIHwgSW50X3NpXG4gIHwgSW50X0NpIC0+ICdpJyB8IEludF94IHwgSW50X0N4IC0+ICd4JyB8IEludF9YIHwgSW50X0NYIC0+ICdYJyB8IEludF9vXG4gIHwgSW50X0NvIC0+ICdvJyB8IEludF91IHwgSW50X0N1IC0+ICd1J1xuXG4oKiBDb252ZXJ0IGEgZmxvYXQgY29udmVyc2lvbiB0byBjaGFyLiAqKVxuKCogYGNGJyB3aWxsIGJlICdGJyBmb3IgZGlzcGxheWluZyBmb3JtYXQgYW5kICdnJyB0byBjYWxsIGxpYmMgcHJpbnRmICopXG5sZXQgY2hhcl9vZl9mY29udiA/KGNGPSdGJykgZmNvbnYgPSBtYXRjaCBzbmQgZmNvbnYgd2l0aFxuICB8IEZsb2F0X2YgLT4gJ2YnIHwgRmxvYXRfZSAtPiAnZSdcbiAgfCBGbG9hdF9FIC0+ICdFJyB8IEZsb2F0X2cgLT4gJ2cnXG4gIHwgRmxvYXRfRyAtPiAnRycgfCBGbG9hdF9GIC0+IGNGXG4gIHwgRmxvYXRfaCAtPiAnaCcgfCBGbG9hdF9IIC0+ICdIJ1xuICB8IEZsb2F0X0NGIC0+ICdGJ1xuXG5cbigqIENvbnZlcnQgYSBzY2FubmluZyBjb3VudGVyIHRvIGNoYXIuICopXG5sZXQgY2hhcl9vZl9jb3VudGVyIGNvdW50ZXIgPSBtYXRjaCBjb3VudGVyIHdpdGhcbiAgfCBMaW5lX2NvdW50ZXIgIC0+ICdsJ1xuICB8IENoYXJfY291bnRlciAgLT4gJ24nXG4gIHwgVG9rZW5fY291bnRlciAtPiAnTidcblxuKCoqKilcblxuKCogUHJpbnQgYSBjaGFyX3NldCBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBPQ2FtbCBmb3JtYXQgbGV4aWNhbCBjb252ZW50aW9uLiAqKVxubGV0IGJwcmludF9jaGFyX3NldCBidWYgY2hhcl9zZXQgPVxuICBsZXQgcmVjIHByaW50X3N0YXJ0IHNldCA9XG4gICAgbGV0IGlzX2Fsb25lIGMgPVxuICAgICAgbGV0IGJlZm9yZSwgYWZ0ZXIgPSBDaGFyLihjaHIgKGNvZGUgYyAtIDEpLCBjaHIgKGNvZGUgYyArIDEpKSBpblxuICAgICAgaXNfaW5fY2hhcl9zZXQgc2V0IGNcbiAgICAgICYmIG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IGJlZm9yZSAmJiBpc19pbl9jaGFyX3NldCBzZXQgYWZ0ZXIpIGluXG4gICAgaWYgaXNfYWxvbmUgJ10nIHRoZW4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXSc7XG4gICAgcHJpbnRfb3V0IHNldCAxO1xuICAgIGlmIGlzX2Fsb25lICctJyB0aGVuIGJ1ZmZlcl9hZGRfY2hhciBidWYgJy0nO1xuICBhbmQgcHJpbnRfb3V0IHNldCBpID1cbiAgICBpZiBpIDwgMjU2IHRoZW5cbiAgICAgIGlmIGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgaSkgdGhlbiBwcmludF9maXJzdCBzZXQgaVxuICAgICAgZWxzZSBwcmludF9vdXQgc2V0IChpICsgMSlcbiAgYW5kIHByaW50X2ZpcnN0IHNldCBpID1cbiAgICBtYXRjaCBjaGFyX29mX2ludCBpIHdpdGhcbiAgICB8ICdcXDI1NScgLT4gcHJpbnRfY2hhciBidWYgMjU1O1xuICAgIHwgJ10nIHwgJy0nIC0+IHByaW50X291dCBzZXQgKGkgKyAxKTtcbiAgICB8IF8gLT4gcHJpbnRfc2Vjb25kIHNldCAoaSArIDEpO1xuICBhbmQgcHJpbnRfc2Vjb25kIHNldCBpID1cbiAgICBpZiBpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IGkpIHRoZW5cbiAgICAgIG1hdGNoIGNoYXJfb2ZfaW50IGkgd2l0aFxuICAgICAgfCAnXFwyNTUnIC0+XG4gICAgICAgIHByaW50X2NoYXIgYnVmIDI1NDtcbiAgICAgICAgcHJpbnRfY2hhciBidWYgMjU1O1xuICAgICAgfCAnXScgfCAnLScgd2hlbiBub3QgKGlzX2luX2NoYXJfc2V0IHNldCAoY2hhcl9vZl9pbnQgKGkgKyAxKSkpIC0+XG4gICAgICAgIHByaW50X2NoYXIgYnVmIChpIC0gMSk7XG4gICAgICAgIHByaW50X291dCBzZXQgKGkgKyAxKTtcbiAgICAgIHwgXyB3aGVuIG5vdCAoaXNfaW5fY2hhcl9zZXQgc2V0IChjaGFyX29mX2ludCAoaSArIDEpKSkgLT5cbiAgICAgICAgcHJpbnRfY2hhciBidWYgKGkgLSAxKTtcbiAgICAgICAgcHJpbnRfY2hhciBidWYgaTtcbiAgICAgICAgcHJpbnRfb3V0IHNldCAoaSArIDIpO1xuICAgICAgfCBfIC0+XG4gICAgICAgIHByaW50X2luIHNldCAoaSAtIDEpIChpICsgMik7XG4gICAgZWxzZSAoXG4gICAgICBwcmludF9jaGFyIGJ1ZiAoaSAtIDEpO1xuICAgICAgcHJpbnRfb3V0IHNldCAoaSArIDEpO1xuICAgIClcbiAgYW5kIHByaW50X2luIHNldCBpIGogPVxuICAgIGlmIGogPSAyNTYgfHwgbm90IChpc19pbl9jaGFyX3NldCBzZXQgKGNoYXJfb2ZfaW50IGopKSB0aGVuIChcbiAgICAgIHByaW50X2NoYXIgYnVmIGk7XG4gICAgICBwcmludF9jaGFyIGJ1ZiAoaW50X29mX2NoYXIgJy0nKTtcbiAgICAgIHByaW50X2NoYXIgYnVmIChqIC0gMSk7XG4gICAgICBpZiBqIDwgMjU2IHRoZW4gcHJpbnRfb3V0IHNldCAoaiArIDEpO1xuICAgICkgZWxzZVxuICAgICAgcHJpbnRfaW4gc2V0IGkgKGogKyAxKTtcbiAgYW5kIHByaW50X2NoYXIgYnVmIGkgPSBtYXRjaCBjaGFyX29mX2ludCBpIHdpdGhcbiAgICB8ICclJyAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gICAgfCAnQCcgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ0AnO1xuICAgIHwgYyAgIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgYztcbiAgaW5cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnWyc7XG4gIHByaW50X3N0YXJ0IChcbiAgICBpZiBpc19pbl9jaGFyX3NldCBjaGFyX3NldCAnXFwwMDAnXG4gICAgdGhlbiAoIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ14nOyByZXZfY2hhcl9zZXQgY2hhcl9zZXQgKVxuICAgIGVsc2UgY2hhcl9zZXRcbiAgKTtcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnXSdcblxuKCoqKilcblxuKCogUHJpbnQgYSBwYWR0eSBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBmb3JtYXQtbGlrZSBzeW50YXguICopXG5sZXQgYnByaW50X3BhZHR5IGJ1ZiBwYWR0eSA9IG1hdGNoIHBhZHR5IHdpdGhcbiAgfCBMZWZ0ICAtPiBidWZmZXJfYWRkX2NoYXIgYnVmICctJ1xuICB8IFJpZ2h0IC0+ICgpXG4gIHwgWmVyb3MgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnMCdcblxuKCogUHJpbnQgdGhlICdfJyBvZiBhbiBpZ25vcmVkIGZsYWcgaWYgbmVlZGVkLiAqKVxubGV0IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnID1cbiAgaWYgaWduX2ZsYWcgdGhlbiBidWZmZXJfYWRkX2NoYXIgYnVmICdfJ1xuXG4oKioqKVxuXG5sZXQgYnByaW50X3BhZF9vcHQgYnVmIHBhZF9vcHQgPSBtYXRjaCBwYWRfb3B0IHdpdGhcbiAgfCBOb25lIC0+ICgpXG4gIHwgU29tZSB3aWR0aCAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgd2lkdGgpXG5cbigqKiopXG5cbigqIFByaW50IHBhZGRpbmcgaW4gYSBidWZmZXIgd2l0aCB0aGUgZm9ybWF0LWxpa2Ugc3ludGF4LiAqKVxubGV0IGJwcmludF9wYWRkaW5nIDogdHlwZSBhIGIgLiBidWZmZXIgLT4gKGEsIGIpIHBhZGRpbmcgLT4gdW5pdCA9XG5mdW4gYnVmIHBhZCAtPiBtYXRjaCBwYWQgd2l0aFxuICB8IE5vX3BhZGRpbmcgLT4gKClcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIG4pIC0+XG4gICAgYnByaW50X3BhZHR5IGJ1ZiBwYWR0eTtcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgbik7XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHkgLT5cbiAgICBicHJpbnRfcGFkdHkgYnVmIHBhZHR5O1xuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyonXG5cbigqIFByaW50IHByZWNpc2lvbiBpbiBhIGJ1ZmZlciB3aXRoIHRoZSBmb3JtYXQtbGlrZSBzeW50YXguICopXG5sZXQgYnByaW50X3ByZWNpc2lvbiA6IHR5cGUgYSBiIC4gYnVmZmVyIC0+IChhLCBiKSBwcmVjaXNpb24gLT4gdW5pdCA9XG4gIGZ1biBidWYgcHJlYyAtPiBtYXRjaCBwcmVjIHdpdGhcbiAgfCBOb19wcmVjaXNpb24gLT4gKClcbiAgfCBMaXRfcHJlY2lzaW9uIG4gLT5cbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICcuJztcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgKEludC50b19zdHJpbmcgbik7XG4gIHwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIi4qXCJcblxuKCoqKilcblxuKCogUHJpbnQgdGhlIG9wdGlvbmFsICcrJywgJyAnIG9yICcjJyBhc3NvY2lhdGVkIHRvIGFuIGludCBjb252ZXJzaW9uLiAqKVxubGV0IGJwcmludF9pY29udl9mbGFnIGJ1ZiBpY29udiA9IG1hdGNoIGljb252IHdpdGhcbiAgfCBJbnRfcGQgfCBJbnRfcGkgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKydcbiAgfCBJbnRfc2QgfCBJbnRfc2kgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnICdcbiAgfCBJbnRfQ3ggfCBJbnRfQ1ggfCBJbnRfQ28gfCBJbnRfQ2QgfCBJbnRfQ2kgfCBJbnRfQ3UgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyMnXG4gIHwgSW50X2QgfCBJbnRfaSB8IEludF94IHwgSW50X1ggfCBJbnRfbyB8IEludF91IC0+ICgpXG5cbigqIFByaW50IGFuIGNvbXBsZXRlIGludCBmb3JtYXQgaW4gYSBidWZmZXIgKGV4OiBcIiUzLipkXCIpLiAqKVxubGV0IGJwcmludF9pbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyA9XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnO1xuICBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgYnByaW50X2ljb252X2ZsYWcgYnVmIGljb252O1xuICBicHJpbnRfcGFkZGluZyBidWYgcGFkO1xuICBicHJpbnRfcHJlY2lzaW9uIGJ1ZiBwcmVjO1xuICBidWZmZXJfYWRkX2NoYXIgYnVmIChjaGFyX29mX2ljb252IGljb252KVxuXG4oKiBQcmludCBhIGNvbXBsZXRlIGludDMyLCBuYXRpdmVpbnQgb3IgaW50NjQgZm9ybWF0IGluIGEgYnVmZmVyLiAqKVxubGV0IGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyBjID1cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gIGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICBicHJpbnRfaWNvbnZfZmxhZyBidWYgaWNvbnY7XG4gIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7XG4gIGJwcmludF9wcmVjaXNpb24gYnVmIHByZWM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgYztcbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9pY29udiBpY29udilcblxuKCoqKilcblxuKCogUHJpbnQgdGhlIG9wdGlvbmFsICcrJywgJyAnIGFuZC9vciAnIycgYXNzb2NpYXRlZCB0byBhIGZsb2F0IGNvbnZlcnNpb24uICopXG5sZXQgYnByaW50X2Zjb252X2ZsYWcgYnVmIGZjb252ID1cbiAgYmVnaW4gbWF0Y2ggZnN0IGZjb252IHdpdGhcbiAgfCBGbG9hdF9mbGFnX3AgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnKydcbiAgfCBGbG9hdF9mbGFnX3MgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnICdcbiAgfCBGbG9hdF9mbGFnXyAtPiAoKSBlbmQ7XG4gIG1hdGNoIHNuZCBmY29udiB3aXRoXG4gIHwgRmxvYXRfQ0YgLT4gYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnIydcbiAgfCBGbG9hdF9mIHwgRmxvYXRfZSB8IEZsb2F0X0UgfCBGbG9hdF9nIHwgRmxvYXRfR1xuICB8IEZsb2F0X0YgfCBGbG9hdF9oIHwgRmxvYXRfSCAtPiAoKVxuXG4oKiBQcmludCBhIGNvbXBsZXRlIGZsb2F0IGZvcm1hdCBpbiBhIGJ1ZmZlciAoZXg6IFwiJSsqLjNmXCIpLiAqKVxubGV0IGJwcmludF9mbG9hdF9mbXQgYnVmIGlnbl9mbGFnIGZjb252IHBhZCBwcmVjID1cbiAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7XG4gIGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICBicHJpbnRfZmNvbnZfZmxhZyBidWYgZmNvbnY7XG4gIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7XG4gIGJwcmludF9wcmVjaXNpb24gYnVmIHByZWM7XG4gIGJ1ZmZlcl9hZGRfY2hhciBidWYgKGNoYXJfb2ZfZmNvbnYgZmNvbnYpXG5cbigqIENvbXB1dGUgdGhlIGxpdGVyYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgRm9ybWF0dGluZ19saXQuICopXG4oKiBVc2VkIGJ5IFByaW50ZiBhbmQgU2NhbmYgd2hlcmUgZm9ybWF0dGluZyBpcyBub3QgaW50ZXJwcmV0ZWQuICopXG5sZXQgc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZvcm1hdHRpbmdfbGl0ID0gbWF0Y2ggZm9ybWF0dGluZ19saXQgd2l0aFxuICB8IENsb3NlX2JveCAgICAgICAgICAgIC0+IFwiQF1cIlxuICB8IENsb3NlX3RhZyAgICAgICAgICAgIC0+IFwiQH1cIlxuICB8IEJyZWFrIChzdHIsIF8sIF8pICAgIC0+IHN0clxuICB8IEZGbHVzaCAgICAgICAgICAgICAgIC0+IFwiQD9cIlxuICB8IEZvcmNlX25ld2xpbmUgICAgICAgIC0+IFwiQFxcblwiXG4gIHwgRmx1c2hfbmV3bGluZSAgICAgICAgLT4gXCJALlwiXG4gIHwgTWFnaWNfc2l6ZSAoc3RyLCBfKSAgLT4gc3RyXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgLT4gXCJAQFwiXG4gIHwgRXNjYXBlZF9wZXJjZW50ICAgICAgLT4gXCJAJVwiXG4gIHwgU2Nhbl9pbmRpYyBjIC0+IFwiQFwiIF4gKFN0cmluZy5tYWtlIDEgYylcblxuKCoqKilcblxuKCogUHJpbnQgYSBsaXRlcmFsIGNoYXIgaW4gYSBidWZmZXIsIGVzY2FwZSAnJScgYnkgXCIlJVwiLiAqKVxubGV0IGJwcmludF9jaGFyX2xpdGVyYWwgYnVmIGNociA9IG1hdGNoIGNociB3aXRoXG4gIHwgJyUnIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiUlXCJcbiAgfCBfIC0+IGJ1ZmZlcl9hZGRfY2hhciBidWYgY2hyXG5cbigqIFByaW50IGEgbGl0ZXJhbCBzdHJpbmcgaW4gYSBidWZmZXIsIGVzY2FwZSBhbGwgJyUnIGJ5IFwiJSVcIi4gKilcbmxldCBicHJpbnRfc3RyaW5nX2xpdGVyYWwgYnVmIHN0ciA9XG4gIGZvciBpID0gMCB0byBTdHJpbmcubGVuZ3RoIHN0ciAtIDEgZG9cbiAgICBicHJpbnRfY2hhcl9saXRlcmFsIGJ1ZiBzdHIuW2ldXG4gIGRvbmVcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHByZXR0eS1wcmludGluZyAqKVxuXG4oKiBQcmludCBhIGNvbXBsZXRlIGZvcm1hdCB0eXBlIChhbiBmbXR0eSkgaW4gYSBidWZmZXIuICopXG5sZXQgcmVjIGJwcmludF9mbXR0eSA6IHR5cGUgYSBiIGMgZCBlIGYgZyBoIGkgaiBrIGwgLlxuICAgIGJ1ZmZlciAtPiAoYSwgYiwgYywgZCwgZSwgZiwgZywgaCwgaSwgaiwgaywgbCkgZm10dHlfcmVsIC0+IHVuaXQgPVxuZnVuIGJ1ZiBmbXR0eSAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgQ2hhcl90eSByZXN0ICAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWNcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBTdHJpbmdfdHkgcmVzdCAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlc1wiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEludF90eSByZXN0ICAgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVpXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgSW50MzJfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWxpXCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlbmlcIjsgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEludDY0X3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVMaVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgRmxvYXRfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJWZcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBCb29sX3R5IHJlc3QgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlQlwiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IEFscGhhX3R5IHJlc3QgICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVhXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG4gIHwgVGhldGFfdHkgcmVzdCAgICAgLT4gYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJXRcIjsgIGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBBbnlfdHkgcmVzdCAgICAgICAtPiBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlP1wiOyAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuICB8IFJlYWRlcl90eSByZXN0ICAgIC0+IGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiVyXCI7ICBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG5cbiAgfCBJZ25vcmVkX3JlYWRlcl90eSByZXN0IC0+XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJV9yXCI7XG4gICAgYnByaW50X2ZtdHR5IGJ1ZiByZXN0O1xuXG4gIHwgRm9ybWF0X2FyZ190eSAoc3ViX2ZtdHR5LCByZXN0KSAtPlxuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiV7XCI7IGJwcmludF9mbXR0eSBidWYgc3ViX2ZtdHR5O1xuICAgIGJ1ZmZlcl9hZGRfc3RyaW5nIGJ1ZiBcIiV9XCI7IGJwcmludF9mbXR0eSBidWYgcmVzdDtcbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHN1Yl9mbXR0eSwgXywgcmVzdCkgLT5cbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlKFwiOyBicHJpbnRfZm10dHkgYnVmIHN1Yl9mbXR0eTtcbiAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCIlKVwiOyBicHJpbnRfZm10dHkgYnVmIHJlc3Q7XG5cbiAgfCBFbmRfb2ZfZm10dHkgLT4gKClcblxuKCoqKilcblxubGV0IHJlYyBpbnRfb2ZfY3VzdG9tX2FyaXR5IDogdHlwZSBhIGIgYyAuXG4gIChhLCBiLCBjKSBjdXN0b21fYXJpdHkgLT4gaW50ID1cbiAgZnVuY3Rpb25cbiAgfCBDdXN0b21femVybyAtPiAwXG4gIHwgQ3VzdG9tX3N1Y2MgeCAtPiAxICsgaW50X29mX2N1c3RvbV9hcml0eSB4XG5cbigqIFByaW50IGEgY29tcGxldGUgZm9ybWF0IGluIGEgYnVmZmVyLiAqKVxubGV0IGJwcmludF9mbXQgYnVmIGZtdCA9XG4gIGxldCByZWMgZm10aXRlciA6IHR5cGUgYSBiIGMgZCBlIGYgLlxuICAgICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiBib29sIC0+IHVuaXQgPVxuICBmdW4gZm10IGlnbl9mbGFnIC0+IG1hdGNoIGZtdCB3aXRoXG4gICAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3MnO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRkaW5nIGJ1ZiBwYWQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ1MnO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuXG4gICAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfaW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWM7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgIGJwcmludF9hbHRpbnRfZm10IGJ1ZiBpZ25fZmxhZyBpY29udiBwYWQgcHJlYyAnbCc7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgJ24nO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgSW50NjQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfYWx0aW50X2ZtdCBidWYgaWduX2ZsYWcgaWNvbnYgcGFkIHByZWMgJ0wnO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfZmxvYXRfZm10IGJ1ZiBpZ25fZmxhZyBmY29udiBwYWQgcHJlYztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcblxuICAgIHwgQ2hhciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdjJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ0MnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBicHJpbnRfcGFkZGluZyBidWYgcGFkOyBidWZmZXJfYWRkX2NoYXIgYnVmICdCJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IEFscGhhIHJlc3QgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJ2EnOyBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBUaGV0YSByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICd0JzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgQ3VzdG9tIChhcml0eSwgXywgcmVzdCkgLT5cbiAgICAgIGZvciBfaSA9IDEgdG8gaW50X29mX2N1c3RvbV9hcml0eSBhcml0eSBkb1xuICAgICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJz8nO1xuICAgICAgZG9uZTtcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcbiAgICB8IFJlYWRlciByZXN0IC0+XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJzsgYnByaW50X2lnbm9yZWRfZmxhZyBidWYgaWduX2ZsYWc7XG4gICAgICBidWZmZXJfYWRkX2NoYXIgYnVmICdyJzsgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgRmx1c2ggcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiJSFcIjtcbiAgICAgIGZtdGl0ZXIgcmVzdCBpZ25fZmxhZztcblxuICAgIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICAgIGJwcmludF9zdHJpbmdfbGl0ZXJhbCBidWYgc3RyO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuICAgIHwgQ2hhcl9saXRlcmFsIChjaHIsIHJlc3QpIC0+XG4gICAgICBicHJpbnRfY2hhcl9saXRlcmFsIGJ1ZiBjaHI7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG5cbiAgICB8IEZvcm1hdF9hcmcgKHBhZF9vcHQsIGZtdHR5LCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3BhZF9vcHQgYnVmIHBhZF9vcHQ7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ3snO1xuICAgICAgYnByaW50X2ZtdHR5IGJ1ZiBmbXR0eTsgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJ30nO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgRm9ybWF0X3N1YnN0IChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRfb3B0IGJ1ZiBwYWRfb3B0OyBidWZmZXJfYWRkX2NoYXIgYnVmICcoJztcbiAgICAgIGJwcmludF9mbXR0eSBidWYgZm10dHk7IGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBidWZmZXJfYWRkX2NoYXIgYnVmICcpJztcbiAgICAgIGZtdGl0ZXIgcmVzdCBmYWxzZTtcblxuICAgIHwgU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgcmVzdCkgLT5cbiAgICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgJyUnOyBicHJpbnRfaWdub3JlZF9mbGFnIGJ1ZiBpZ25fZmxhZztcbiAgICAgIGJwcmludF9wYWRfb3B0IGJ1ZiB3aWR0aF9vcHQ7IGJwcmludF9jaGFyX3NldCBidWYgY2hhcl9zZXQ7XG4gICAgICBmbXRpdGVyIHJlc3QgZmFsc2U7XG4gICAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCByZXN0KSAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAoY2hhcl9vZl9jb3VudGVyIGNvdW50ZXIpO1xuICAgICAgZm10aXRlciByZXN0IGZhbHNlO1xuICAgIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnJSc7IGJwcmludF9pZ25vcmVkX2ZsYWcgYnVmIGlnbl9mbGFnO1xuICAgICAgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiBcIjBjXCI7IGZtdGl0ZXIgcmVzdCBmYWxzZTtcblxuICAgIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgICAgbGV0IFBhcmFtX2Zvcm1hdF9FQkIgZm10JyA9IHBhcmFtX2Zvcm1hdF9vZl9pZ25vcmVkX2Zvcm1hdCBpZ24gcmVzdCBpblxuICAgICAgZm10aXRlciBmbXQnIHRydWU7XG5cbiAgICB8IEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSAtPlxuICAgICAgYnByaW50X3N0cmluZ19saXRlcmFsIGJ1ZiAoc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQpO1xuICAgICAgZm10aXRlciByZXN0IGlnbl9mbGFnO1xuICAgIHwgRm9ybWF0dGluZ19nZW4gKGZtdGluZ19nZW4sIHJlc3QpIC0+XG4gICAgICBiZWdpbiBtYXRjaCBmbXRpbmdfZ2VuIHdpdGhcbiAgICAgIHwgT3Blbl90YWcgKEZvcm1hdCAoXywgc3RyKSkgLT5cbiAgICAgICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIFwiQHtcIjsgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIHN0clxuICAgICAgfCBPcGVuX2JveCAoRm9ybWF0IChfLCBzdHIpKSAtPlxuICAgICAgICBidWZmZXJfYWRkX3N0cmluZyBidWYgXCJAW1wiOyBidWZmZXJfYWRkX3N0cmluZyBidWYgc3RyXG4gICAgICBlbmQ7XG4gICAgICBmbXRpdGVyIHJlc3QgaWduX2ZsYWc7XG5cbiAgICB8IEVuZF9vZl9mb3JtYXQgLT4gKClcblxuICBpbiBmbXRpdGVyIGZtdCBmYWxzZVxuXG4oKioqKVxuXG4oKiBDb252ZXJ0IGEgZm9ybWF0IHRvIHN0cmluZy4gKilcbmxldCBzdHJpbmdfb2ZfZm10IGZtdCA9XG4gIGxldCBidWYgPSBidWZmZXJfY3JlYXRlIDE2IGluXG4gIGJwcmludF9mbXQgYnVmIGZtdDtcbiAgYnVmZmVyX2NvbnRlbnRzIGJ1ZlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBUeXBlIGV4dHJhY3Rpb24gKilcblxudHlwZSAoXywgXykgZXEgPSBSZWZsIDogKCdhLCAnYSkgZXFcblxuKCogSW52YXJpYW50OiB0aGlzIGZ1bmN0aW9uIGlzIHRoZSBpZGVudGl0eSBvbiB2YWx1ZXMuXG5cbiAgIEluIHBhcnRpY3VsYXIsIGlmICh0eTEsIHR5MikgaGF2ZSBlcXVhbCB2YWx1ZXMsIHRoZW5cbiAgICh0cmFucyAoc3ltbSB0eTEpIHR5MikgcmVzcGVjdHMgdGhlICd0cmFucycgcHJlY29uZGl0aW9uLiAqKVxubGV0IHJlYyBzeW1tIDogdHlwZSBhMSBiMSBjMSBkMSBlMSBmMSBhMiBiMiBjMiBkMiBlMiBmMiAuXG4gICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICBhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eV9yZWxcbi0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyLFxuICAgIGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdHR5X3JlbFxuPSBmdW5jdGlvblxuICB8IENoYXJfdHkgcmVzdCAtPiBDaGFyX3R5IChzeW1tIHJlc3QpXG4gIHwgSW50X3R5IHJlc3QgLT4gSW50X3R5IChzeW1tIHJlc3QpXG4gIHwgSW50MzJfdHkgcmVzdCAtPiBJbnQzMl90eSAoc3ltbSByZXN0KVxuICB8IEludDY0X3R5IHJlc3QgLT4gSW50NjRfdHkgKHN5bW0gcmVzdClcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAtPiBOYXRpdmVpbnRfdHkgKHN5bW0gcmVzdClcbiAgfCBGbG9hdF90eSByZXN0IC0+IEZsb2F0X3R5IChzeW1tIHJlc3QpXG4gIHwgQm9vbF90eSByZXN0IC0+IEJvb2xfdHkgKHN5bW0gcmVzdClcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPiBTdHJpbmdfdHkgKHN5bW0gcmVzdClcbiAgfCBUaGV0YV90eSByZXN0IC0+IFRoZXRhX3R5IChzeW1tIHJlc3QpXG4gIHwgQWxwaGFfdHkgcmVzdCAtPiBBbHBoYV90eSAoc3ltbSByZXN0KVxuICB8IEFueV90eSByZXN0IC0+IEFueV90eSAoc3ltbSByZXN0KVxuICB8IFJlYWRlcl90eSByZXN0IC0+IFJlYWRlcl90eSAoc3ltbSByZXN0KVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHJlc3QgLT4gSWdub3JlZF9yZWFkZXJfdHkgKHN5bW0gcmVzdClcbiAgfCBGb3JtYXRfYXJnX3R5ICh0eSwgcmVzdCkgLT5cbiAgICBGb3JtYXRfYXJnX3R5ICh0eSwgc3ltbSByZXN0KVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgRm9ybWF0X3N1YnN0X3R5ICh0eTIsIHR5MSwgc3ltbSByZXN0KVxuICB8IEVuZF9vZl9mbXR0eSAtPiBFbmRfb2ZfZm10dHlcblxubGV0IHJlYyBmbXR0eV9yZWxfZGV0IDogdHlwZSBhMSBiIGMgZDEgZTEgZjEgYTIgZDIgZTIgZjIgLlxuICAoYTEsIGIsIGMsIGQxLCBlMSwgZjEsXG4gICBhMiwgYiwgYywgZDIsIGUyLCBmMikgZm10dHlfcmVsIC0+XG4gICAgKChmMSwgZjIpIGVxIC0+IChhMSwgYTIpIGVxKVxuICAqICgoYTEsIGEyKSBlcSAtPiAoZjEsIGYyKSBlcSlcbiAgKiAoKGUxLCBlMikgZXEgLT4gKGQxLCBkMikgZXEpXG4gICogKChkMSwgZDIpIGVxIC0+IChlMSwgZTIpIGVxKVxuPSBmdW5jdGlvblxuICB8IEVuZF9vZl9mbXR0eSAtPlxuICAgIChmdW4gUmVmbCAtPiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBSZWZsKVxuICB8IENoYXJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBTdHJpbmdfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBJbnRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBJbnQzMl90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEludDY0X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgRmxvYXRfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICBlZCwgZGVcbiAgfCBCb29sX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG5cbiAgfCBUaGV0YV90eSByZXN0IC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEFscGhhX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgQW55X3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgZWQsIGRlXG4gIHwgUmVhZGVyX3R5IHJlc3QgLT5cbiAgICBsZXQgZmEsIGFmLCBlZCwgZGUgPSBmbXR0eV9yZWxfZGV0IHJlc3QgaW5cbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBmYSBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZWQgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBkZSBSZWZsIGluIFJlZmwpXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdCAtPlxuICAgIGxldCBmYSwgYWYsIGVkLCBkZSA9IGZtdHR5X3JlbF9kZXQgcmVzdCBpblxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGZhIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gYWYgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBlZCBSZWZsIGluIFJlZmwpLFxuICAgIChmdW4gUmVmbCAtPiBsZXQgUmVmbCA9IGRlIFJlZmwgaW4gUmVmbClcbiAgfCBGb3JtYXRfYXJnX3R5IChfdHksIHJlc3QpIC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBSZWZsKSxcbiAgICAoZnVuIFJlZmwgLT4gbGV0IFJlZmwgPSBhZiBSZWZsIGluIFJlZmwpLFxuICAgIGVkLCBkZVxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgbGV0IGZhLCBhZiwgZWQsIGRlID0gZm10dHlfcmVsX2RldCByZXN0IGluXG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxKSB0eTIgaW5cbiAgICBsZXQgYWcsIGdhLCBkaiwgamQgPSBmbXR0eV9yZWxfZGV0IHR5IGluXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZmEgUmVmbCBpbiBsZXQgUmVmbCA9IGFnIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZ2EgUmVmbCBpbiBsZXQgUmVmbCA9IGFmIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gZWQgUmVmbCBpbiBsZXQgUmVmbCA9IGRqIFJlZmwgaW4gUmVmbCksXG4gICAgKGZ1biBSZWZsIC0+IGxldCBSZWZsID0gamQgUmVmbCBpbiBsZXQgUmVmbCA9IGRlIFJlZmwgaW4gUmVmbClcblxuKCogUHJlY29uZGl0aW9uOiB3ZSBhc3N1bWUgdGhhdCB0aGUgdHdvIGZtdHR5X3JlbCBhcmd1bWVudHMgaGF2ZSBlcXVhbFxuICAgdmFsdWVzIChhdCBwb3NzaWJseSBkaXN0aW5jdCB0eXBlcyk7IHRoaXMgaW52YXJpYW50IGNvbWVzIGZyb20gdGhlIHdheVxuICAgZm10dHlfcmVsIHdpdG5lc3NlcyBhcmUgcHJvZHVjZWQgYnkgdGhlIHR5cGUtY2hlY2tlclxuXG4gICBUaGUgY29kZSBiZWxvdyB1c2VzIChhc3NlcnQgZmFsc2UpIHdoZW4gdGhpcyBhc3N1bXB0aW9uIGlzIGJyb2tlbi4gVGhlXG4gICBjb2RlIHBhdHRlcm4gaXMgdGhlIGZvbGxvd2luZzpcblxuICAgICB8IEZvbyB4LCBGb28geSAtPlxuICAgICAgICgqIGNhc2Ugd2hlcmUgaW5kZWVkIGJvdGggdmFsdWVzXG4gICAgICAgICAgc3RhcnQgd2l0aCBjb25zdHJ1Y3RvciBGb28gKilcbiAgICAgfCBGb28gXywgX1xuICAgICB8IF8sIEZvbyBfIC0+XG4gICAgICAgKCogZGlmZmVyZW50IGhlYWQgY29uc3RydWN0b3JzOiBicm9rZW4gcHJlY29uZGl0aW9uICopXG4gICAgICAgYXNzZXJ0IGZhbHNlXG4qKVxuYW5kIHRyYW5zIDogdHlwZVxuICBhMSBiMSBjMSBkMSBlMSBmMVxuICBhMiBiMiBjMiBkMiBlMiBmMlxuICBhMyBiMyBjMyBkMyBlMyBmM1xuLlxuICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEsXG4gICAgYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlfcmVsXG4tPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMixcbiAgICBhMywgYjMsIGMzLCBkMywgZTMsIGYzKSBmbXR0eV9yZWxcbi0+IChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxLFxuICAgIGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdHR5X3JlbFxuPSBmdW4gdHkxIHR5MiAtPiBtYXRjaCB0eTEsIHR5MiB3aXRoXG4gIHwgQ2hhcl90eSByZXN0MSwgQ2hhcl90eSByZXN0MiAtPiBDaGFyX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBTdHJpbmdfdHkgcmVzdDEsIFN0cmluZ190eSByZXN0MiAtPiBTdHJpbmdfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEJvb2xfdHkgcmVzdDEsIEJvb2xfdHkgcmVzdDIgLT4gQm9vbF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgSW50X3R5IHJlc3QxLCBJbnRfdHkgcmVzdDIgLT4gSW50X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBJbnQzMl90eSByZXN0MSwgSW50MzJfdHkgcmVzdDIgLT4gSW50MzJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEludDY0X3R5IHJlc3QxLCBJbnQ2NF90eSByZXN0MiAtPiBJbnQ2NF90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgTmF0aXZlaW50X3R5IHJlc3QxLCBOYXRpdmVpbnRfdHkgcmVzdDIgLT4gTmF0aXZlaW50X3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBGbG9hdF90eSByZXN0MSwgRmxvYXRfdHkgcmVzdDIgLT4gRmxvYXRfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuXG4gIHwgQWxwaGFfdHkgcmVzdDEsIEFscGhhX3R5IHJlc3QyIC0+IEFscGhhX3R5ICh0cmFucyByZXN0MSByZXN0MilcbiAgfCBBbHBoYV90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIEFscGhhX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBUaGV0YV90eSByZXN0MSwgVGhldGFfdHkgcmVzdDIgLT4gVGhldGFfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IFRoZXRhX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgVGhldGFfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEFueV90eSByZXN0MSwgQW55X3R5IHJlc3QyIC0+IEFueV90eSAodHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgQW55X3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgQW55X3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBSZWFkZXJfdHkgcmVzdDEsIFJlYWRlcl90eSByZXN0MiAtPiBSZWFkZXJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IFJlYWRlcl90eSBfLCBfIC0+IGFzc2VydCBmYWxzZVxuICB8IF8sIFJlYWRlcl90eSBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgcmVzdDEsIElnbm9yZWRfcmVhZGVyX3R5IHJlc3QyIC0+XG4gICAgSWdub3JlZF9yZWFkZXJfdHkgKHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgSWdub3JlZF9yZWFkZXJfdHkgXyAtPiBhc3NlcnQgZmFsc2VcblxuICB8IEZvcm1hdF9hcmdfdHkgKHR5MSwgcmVzdDEpLCBGb3JtYXRfYXJnX3R5ICh0eTIsIHJlc3QyKSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHRyYW5zIHR5MSB0eTIsIHRyYW5zIHJlc3QxIHJlc3QyKVxuICB8IEZvcm1hdF9hcmdfdHkgXywgXyAtPiBhc3NlcnQgZmFsc2VcbiAgfCBfLCBGb3JtYXRfYXJnX3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBGb3JtYXRfc3Vic3RfdHkgKHR5MTEsIHR5MTIsIHJlc3QxKSxcbiAgICBGb3JtYXRfc3Vic3RfdHkgKHR5MjEsIHR5MjIsIHJlc3QyKSAtPlxuICAgIGxldCB0eSA9IHRyYW5zIChzeW1tIHR5MTIpIHR5MjEgaW5cbiAgICBsZXQgXywgZjIsIF8sIGY0ID0gZm10dHlfcmVsX2RldCB0eSBpblxuICAgIGxldCBSZWZsID0gZjIgUmVmbCBpblxuICAgIGxldCBSZWZsID0gZjQgUmVmbCBpblxuICAgIEZvcm1hdF9zdWJzdF90eSAodHkxMSwgdHkyMiwgdHJhbnMgcmVzdDEgcmVzdDIpXG4gIHwgRm9ybWF0X3N1YnN0X3R5IF8sIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgRm9ybWF0X3N1YnN0X3R5IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgfCBFbmRfb2ZfZm10dHksIEVuZF9vZl9mbXR0eSAtPiBFbmRfb2ZfZm10dHlcbiAgfCBFbmRfb2ZfZm10dHksIF8gLT4gYXNzZXJ0IGZhbHNlXG4gIHwgXywgRW5kX29mX2ZtdHR5IC0+IGFzc2VydCBmYWxzZVxuXG5sZXQgcmVjIGZtdHR5X29mX2Zvcm1hdHRpbmdfZ2VuIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gIChhLCBiLCBjLCBkLCBlLCBmKSBmb3JtYXR0aW5nX2dlbiAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSA9XG5mdW4gZm9ybWF0dGluZ19nZW4gLT4gbWF0Y2ggZm9ybWF0dGluZ19nZW4gd2l0aFxuICB8IE9wZW5fdGFnIChGb3JtYXQgKGZtdCwgXykpIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBPcGVuX2JveCAoRm9ybWF0IChmbXQsIF8pKSAtPiBmbXR0eV9vZl9mbXQgZm10XG5cbigqIEV4dHJhY3QgdGhlIHR5cGUgcmVwcmVzZW50YXRpb24gKGFuIGZtdHR5KSBvZiBhIGZvcm1hdC4gKilcbmFuZCBmbXR0eV9vZl9mbXQgOiB0eXBlIGEgYiBjIGQgZSBmIC5cbiAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgPVxuZnVuIGZtdHR5IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBTdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCAoU3RyaW5nX3R5IChmbXR0eV9vZl9mbXQgcmVzdCkpXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCAoU3RyaW5nX3R5IChmbXR0eV9vZl9mbXQgcmVzdCkpXG5cbiAgfCBJbnQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoSW50X3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IEludDMyIChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IHR5X3Jlc3QgPSBmbXR0eV9vZl9mbXQgcmVzdCBpblxuICAgIGxldCBwcmVjX3R5ID0gZm10dHlfb2ZfcHJlY2lzaW9uX2ZtdHR5IHByZWMgKEludDMyX3R5IHR5X3Jlc3QpIGluXG4gICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgcHJlY190eVxuICB8IE5hdGl2ZWludCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCB0eV9yZXN0ID0gZm10dHlfb2ZfZm10IHJlc3QgaW5cbiAgICBsZXQgcHJlY190eSA9IGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSBwcmVjIChOYXRpdmVpbnRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgSW50NjQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoSW50NjRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG4gIHwgRmxvYXQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgdHlfcmVzdCA9IGZtdHR5X29mX2ZtdCByZXN0IGluXG4gICAgbGV0IHByZWNfdHkgPSBmbXR0eV9vZl9wcmVjaXNpb25fZm10dHkgcHJlYyAoRmxvYXRfdHkgdHlfcmVzdCkgaW5cbiAgICBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IHBhZCBwcmVjX3R5XG5cbiAgfCBDaGFyIHJlc3QgICAgICAgICAgICAgICAgICAtPiBDaGFyX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBDYW1sX2NoYXIgcmVzdCAgICAgICAgICAgICAtPiBDaGFyX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBCb29sIChwYWQsIHJlc3QpICAgICAgICAgICAtPlxuICAgICAgZm10dHlfb2ZfcGFkZGluZ19mbXR0eSBwYWQgKEJvb2xfdHkgKGZtdHR5X29mX2ZtdCByZXN0KSlcbiAgfCBBbHBoYSByZXN0ICAgICAgICAgICAgICAgICAtPiBBbHBoYV90eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgVGhldGEgcmVzdCAgICAgICAgICAgICAgICAgLT4gVGhldGFfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IEN1c3RvbSAoYXJpdHksIF8sIHJlc3QpICAgIC0+IGZtdHR5X29mX2N1c3RvbSBhcml0eSAoZm10dHlfb2ZfZm10IHJlc3QpXG4gIHwgUmVhZGVyIHJlc3QgICAgICAgICAgICAgICAgLT4gUmVhZGVyX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcblxuICB8IEZvcm1hdF9hcmcgKF8sIHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9hcmdfdHkgKHR5LCBmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIHR5LCByZXN0KSAtPlxuICAgIEZvcm1hdF9zdWJzdF90eSAodHksIHR5LCBmbXR0eV9vZl9mbXQgcmVzdClcblxuICB8IEZsdXNoIHJlc3QgICAgICAgICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCByZXN0XG4gIHwgU3RyaW5nX2xpdGVyYWwgKF8sIHJlc3QpICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcbiAgfCBDaGFyX2xpdGVyYWwgKF8sIHJlc3QpICAgICAtPiBmbXR0eV9vZl9mbXQgcmVzdFxuXG4gIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgLT4gU3RyaW5nX3R5IChmbXR0eV9vZl9mbXQgcmVzdClcbiAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAtPiBJbnRfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgICAgICAgIC0+IENoYXJfdHkgKGZtdHR5X29mX2ZtdCByZXN0KVxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgIC0+IGZtdHR5X29mX2lnbm9yZWRfZm9ybWF0IGlnbiByZXN0XG4gIHwgRm9ybWF0dGluZ19saXQgKF8sIHJlc3QpICAgLT4gZm10dHlfb2ZfZm10IHJlc3RcbiAgfCBGb3JtYXR0aW5nX2dlbiAoZm10aW5nX2dlbiwgcmVzdCkgIC0+XG4gICAgY29uY2F0X2ZtdHR5IChmbXR0eV9vZl9mb3JtYXR0aW5nX2dlbiBmbXRpbmdfZ2VuKSAoZm10dHlfb2ZfZm10IHJlc3QpXG5cbiAgfCBFbmRfb2ZfZm9ybWF0ICAgICAgICAgICAgICAtPiBFbmRfb2ZfZm10dHlcblxuYW5kIGZtdHR5X29mX2N1c3RvbSA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgKGEsIHgsIHkpIGN1c3RvbV9hcml0eSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT5cbiAgKHksIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBhcml0eSBmbXR0eSAtPiBtYXRjaCBhcml0eSB3aXRoXG4gIHwgQ3VzdG9tX3plcm8gLT4gZm10dHlcbiAgfCBDdXN0b21fc3VjYyBhcml0eSAtPiBBbnlfdHkgKGZtdHR5X29mX2N1c3RvbSBhcml0eSBmbXR0eSlcblxuKCogRXh0cmFjdCB0aGUgZm10dHkgb2YgYW4gaWdub3JlZCBwYXJhbWV0ZXIgZm9sbG93ZWQgYnkgdGhlIHJlc3Qgb2ZcbiAgIHRoZSBmb3JtYXQuICopXG5hbmQgZm10dHlfb2ZfaWdub3JlZF9mb3JtYXQgOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICAgKGEsIGIsIGMsIGQsIHksIHgpIGlnbm9yZWQgLT5cbiAgICAoeCwgYiwgYywgeSwgZSwgZikgZm10IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbmZ1biBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9jaGFyICAgICAgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBfICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9pbnQgKF8sIF8pICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9pbnQzMiAoXywgXykgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKF8sIF8pICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9pbnQ2NCAoXywgXykgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9mbG9hdCAoXywgXykgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9ib29sIF8gICAgICAgICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIF8gICAgICAgICAgICAtPiBmbXR0eV9vZl9mbXQgZm10XG4gIHwgSWdub3JlZF9mb3JtYXRfc3Vic3QgKF8sIGZtdHR5KSAtPiBjb25jYXRfZm10dHkgZm10dHkgKGZtdHR5X29mX2ZtdCBmbXQpXG4gIHwgSWdub3JlZF9yZWFkZXIgICAgICAgICAgICAgICAgICAtPiBJZ25vcmVkX3JlYWRlcl90eSAoZm10dHlfb2ZfZm10IGZtdClcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IGZtdHR5X29mX2ZtdCBmbXRcblxuKCogQWRkIGFuIEludF90eSBub2RlIGlmIHBhZGRpbmcgaXMgdGFrZW4gYXMgYW4gZXh0cmEgYXJndW1lbnQgKGV4OiBcIiUqc1wiKS4gKilcbmFuZCBmbXR0eV9vZl9wYWRkaW5nX2ZtdHR5IDogdHlwZSB4IGEgYiBjIGQgZSBmIC5cbiAgICAoeCwgYSkgcGFkZGluZyAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT4gKHgsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbiAgZnVuIHBhZCBmbXR0eSAtPiBtYXRjaCBwYWQgd2l0aFxuICAgIHwgTm9fcGFkZGluZyAgICAtPiBmbXR0eVxuICAgIHwgTGl0X3BhZGRpbmcgXyAtPiBmbXR0eVxuICAgIHwgQXJnX3BhZGRpbmcgXyAtPiBJbnRfdHkgZm10dHlcblxuKCogQWRkIGFuIEludF90eSBub2RlIGlmIHByZWNpc2lvbiBpcyB0YWtlbiBhcyBhbiBleHRyYSBhcmd1bWVudCAoZXg6IFwiJS4qZlwiKS4qKVxuYW5kIGZtdHR5X29mX3ByZWNpc2lvbl9mbXR0eSA6IHR5cGUgeCBhIGIgYyBkIGUgZiAuXG4gICAgKHgsIGEpIHByZWNpc2lvbiAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT4gKHgsIGIsIGMsIGQsIGUsIGYpIGZtdHR5ID1cbiAgZnVuIHByZWMgZm10dHkgLT4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgfCBOb19wcmVjaXNpb24gICAgLT4gZm10dHlcbiAgICB8IExpdF9wcmVjaXNpb24gXyAtPiBmbXR0eVxuICAgIHwgQXJnX3ByZWNpc2lvbiAgIC0+IEludF90eSBmbXR0eVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEZvcm1hdCB0eXBpbmcgKilcblxuKCogRXhjZXB0aW9uIHJhaXNlZCB3aGVuIGEgZm9ybWF0IGRvZXMgbm90IG1hdGNoIGEgZ2l2ZW4gZm9ybWF0IHR5cGUuICopXG5leGNlcHRpb24gVHlwZV9taXNtYXRjaFxuXG4oKiBUeXBlIGEgcGFkZGluZy4gKilcbigqIFRha2UgYW4gSW50X3R5IGZyb20gdGhlIGZtdHR5IGlmIHRoZSBpbnRlZ2VyIHNob3VsZCBiZSBrZXB0IGFzIGFyZ3VtZW50LiAqKVxuKCogUmFpc2UgVHlwZV9taXNtYXRjaCBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgdHlwZV9wYWRkaW5nIDogdHlwZSBhIGIgYyBkIGUgZiB4IHkgLlxuICAgICh4LCB5KSBwYWRkaW5nIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgICAgKGEsIGIsIGMsIGQsIGUsIGYpIHBhZGRpbmdfZm10dHlfZWJiID1cbmZ1biBwYWQgZm10dHkgLT4gbWF0Y2ggcGFkLCBmbXR0eSB3aXRoXG4gIHwgTm9fcGFkZGluZywgXyAtPiBQYWRkaW5nX2ZtdHR5X0VCQiAoTm9fcGFkZGluZywgZm10dHkpXG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgXyAtPiBQYWRkaW5nX2ZtdHR5X0VCQiAoTGl0X3BhZGRpbmcgKHBhZHR5LHcpLGZtdHR5KVxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBJbnRfdHkgcmVzdCAtPiBQYWRkaW5nX2ZtdHR5X0VCQiAoQXJnX3BhZGRpbmcgcGFkdHkscmVzdClcbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuKCogQ29udmVydCBhICh1cGFkZGluZywgdXByZWNpc2lvbikgdG8gYSAocGFkZGluZywgcHJlY2lzaW9uKS4gKilcbigqIFRha2Ugb25lIG9yIHR3byBJbnRfdHkgZnJvbSB0aGUgZm10dHkgaWYgbmVlZGVkLiAqKVxuKCogUmFpc2UgVHlwZV9taXNtYXRjaCBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgdHlwZV9wYWRwcmVjIDogdHlwZSBhIGIgYyBkIGUgZiB4IHkgeiAuXG4gICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6KSBwcmVjaXNpb24gLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5IC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIHBhZHByZWNfZm10dHlfZWJiID1cbmZ1biBwYWQgcHJlYyBmbXR0eSAtPiBtYXRjaCBwcmVjLCB0eXBlX3BhZGRpbmcgcGFkIGZtdHR5IHdpdGhcbiAgfCBOb19wcmVjaXNpb24sIFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIHJlc3QpIC0+XG4gICAgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgTm9fcHJlY2lzaW9uLCByZXN0KVxuICB8IExpdF9wcmVjaXNpb24gcCwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgcmVzdCkgLT5cbiAgICBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBMaXRfcHJlY2lzaW9uIHAsIHJlc3QpXG4gIHwgQXJnX3ByZWNpc2lvbiwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgSW50X3R5IHJlc3QpIC0+XG4gICAgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgQXJnX3ByZWNpc2lvbiwgcmVzdClcbiAgfCBfLCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG4oKiBUeXBlIGEgZm9ybWF0IGFjY29yZGluZyB0byBhbiBmbXR0eS4gKilcbigqIElmIHR5cGluZyBzdWNjZWVkLCBnZW5lcmF0ZSBhIGNvcHkgb2YgdGhlIGZvcm1hdCB3aXRoIHRoZSBzYW1lXG4gICAgdHlwZSBwYXJhbWV0ZXJzIGFzIHRoZSBmbXR0eS4gKilcbigqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGFuIGVycm9yIG1lc3NhZ2UgaW4gY2FzZSBvZiB0eXBlIG1pc21hdGNoLiAqKVxubGV0IHJlYyB0eXBlX2Zvcm1hdCA6XG4gIHR5cGUgYTEgYjEgYzEgZDEgZTEgZjFcbiAgICAgICBhMiBiMiBjMiBkMiBlMiBmMiAgLlxuICAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm10XG4gIC0+IChhMiwgYjIsIGMyLCBkMiwgZTIsIGYyKSBmbXR0eVxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10XG49IGZ1biBmbXQgZm10dHkgLT4gbWF0Y2ggdHlwZV9mb3JtYXRfZ2VuIGZtdCBmbXR0eSB3aXRoXG4gIHwgRm10X2ZtdHR5X0VCQiAoZm10JywgRW5kX29mX2ZtdHR5KSAtPiBmbXQnXG4gIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG5cbmFuZCB0eXBlX2Zvcm1hdF9nZW4gOlxuICB0eXBlIGExIGIxIGMxIGQxIGUxIGYxXG4gICAgICAgYTIgYjIgYzIgZDIgZTIgZjIgIC5cbiAgICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdFxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHlcbiAgLT4gKGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdF9mbXR0eV9lYmJcbj0gZnVuIGZtdCBmbXR0eSAtPiBtYXRjaCBmbXQsIGZtdHR5IHdpdGhcbiAgfCBDaGFyIGZtdF9yZXN0LCBDaGFyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQ2hhciBmbXQnLCBmbXR0eScpXG4gIHwgQ2FtbF9jaGFyIGZtdF9yZXN0LCBDaGFyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQ2FtbF9jaGFyIGZtdCcsIGZtdHR5JylcbiAgfCBTdHJpbmcgKHBhZCwgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZGRpbmcgcGFkIGZtdHR5IHdpdGhcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIFN0cmluZ190eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoU3RyaW5nIChwYWQsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRkaW5nX2ZtdHR5X0VCQiAoXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZGRpbmcgcGFkIGZtdHR5IHdpdGhcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChwYWQsIFN0cmluZ190eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoQ2FtbF9zdHJpbmcgKHBhZCwgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZGRpbmdfZm10dHlfRUJCIChfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBJbnQgKGljb252LCBwYWQsIHByZWMsIGZtdF9yZXN0KSwgXyAtPiAoXG4gICAgbWF0Y2ggdHlwZV9wYWRwcmVjIHBhZCBwcmVjIGZtdHR5IHdpdGhcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChwYWQsIHByZWMsIEludF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSW50IChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEludDMyIChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBJbnQzMl90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoSW50MzIgKGljb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgTmF0aXZlaW50IChpY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBOYXRpdmVpbnRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKE5hdGl2ZWludCAoaWNvbnYsIHBhZCwgcHJlYywgZm10JyksIGZtdHR5JylcbiAgICB8IFBhZHByZWNfZm10dHlfRUJCIChfLCBfLCBfKSAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcbiAgfCBJbnQ2NCAoaWNvbnYsIHBhZCwgcHJlYywgZm10X3Jlc3QpLCBfIC0+IChcbiAgICBtYXRjaCB0eXBlX3BhZHByZWMgcGFkIHByZWMgZm10dHkgd2l0aFxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKHBhZCwgcHJlYywgSW50NjRfdHkgZm10dHlfcmVzdCkgLT5cbiAgICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKEludDY0IChpY29udiwgcGFkLCBwcmVjLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkcHJlY19mbXR0eV9FQkIgKF8sIF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkcHJlYyBwYWQgcHJlYyBmbXR0eSB3aXRoXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAocGFkLCBwcmVjLCBGbG9hdF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoRmxvYXQgKGZjb252LCBwYWQsIHByZWMsIGZtdCcpLCBmbXR0eScpXG4gICAgfCBQYWRwcmVjX2ZtdHR5X0VCQiAoXywgXywgXykgLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuICApXG4gIHwgQm9vbCAocGFkLCBmbXRfcmVzdCksIF8gLT4gKFxuICAgIG1hdGNoIHR5cGVfcGFkZGluZyBwYWQgZm10dHkgd2l0aFxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKHBhZCwgQm9vbF90eSBmbXR0eV9yZXN0KSAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgICAgRm10X2ZtdHR5X0VCQiAoQm9vbCAocGFkLCBmbXQnKSwgZm10dHknKVxuICAgIHwgUGFkZGluZ19mbXR0eV9FQkIgKF8sIF8pIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcbiAgKVxuICB8IEZsdXNoIGZtdF9yZXN0LCBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZsdXNoIGZtdCcsIGZtdHR5JylcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChTdHJpbmdfbGl0ZXJhbCAoc3RyLCBmbXQnKSwgZm10dHknKVxuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoQ2hhcl9saXRlcmFsIChjaHIsIGZtdCcpLCBmbXR0eScpXG5cbiAgfCBGb3JtYXRfYXJnIChwYWRfb3B0LCBzdWJfZm10dHksIGZtdF9yZXN0KSxcbiAgICBGb3JtYXRfYXJnX3R5IChzdWJfZm10dHknLCBmbXR0eV9yZXN0KSAtPlxuICAgIGlmIEZtdHR5X0VCQiBzdWJfZm10dHkgPD4gRm10dHlfRUJCIHN1Yl9mbXR0eScgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXRfYXJnIChwYWRfb3B0LCBzdWJfZm10dHknLCBmbXQnKSwgZm10dHknKVxuICB8IEZvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5LCBmbXRfcmVzdCksXG4gICAgRm9ybWF0X3N1YnN0X3R5IChzdWJfZm10dHkxLCBfc3ViX2ZtdHR5MiwgZm10dHlfcmVzdCkgLT5cbiAgICBpZiBGbXR0eV9FQkIgKGVyYXNlX3JlbCBzdWJfZm10dHkpIDw+IEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1Yl9mbXR0eTEpIHRoZW5cbiAgICAgIHJhaXNlIFR5cGVfbWlzbWF0Y2g7XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPVxuICAgICAgdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IChlcmFzZV9yZWwgZm10dHlfcmVzdClcbiAgICBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEZvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5MSwgZm10JyksIGZtdHR5JylcbiAgKCogUHJpbnRmIGFuZCBGb3JtYXQgc3BlY2lmaWMgY29uc3RydWN0b3JzOiAqKVxuICB8IEFscGhhIGZtdF9yZXN0LCBBbHBoYV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKEFscGhhIGZtdCcsIGZtdHR5JylcbiAgfCBUaGV0YSBmbXRfcmVzdCwgVGhldGFfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChUaGV0YSBmbXQnLCBmbXR0eScpXG5cbiAgKCogRm9ybWF0IHNwZWNpZmljIGNvbnN0cnVjdG9yczogKilcbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIGZtdF9yZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIGZtdCcpLCBmbXR0eScpXG4gIHwgRm9ybWF0dGluZ19nZW4gKGZvcm1hdHRpbmdfZ2VuLCBmbXRfcmVzdCksIGZtdHR5X3Jlc3QgLT5cbiAgICB0eXBlX2Zvcm1hdHRpbmdfZ2VuIGZvcm1hdHRpbmdfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3RcblxuICAoKiBTY2FuZiBzcGVjaWZpYyBjb25zdHJ1Y3RvcnM6ICopXG4gIHwgUmVhZGVyIGZtdF9yZXN0LCBSZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdF9yZXN0IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXRfZm10dHlfRUJCIChSZWFkZXIgZm10JywgZm10dHknKVxuICB8IFNjYW5fY2hhcl9zZXQgKHdpZHRoX29wdCwgY2hhcl9zZXQsIGZtdF9yZXN0KSwgU3RyaW5nX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXRfcmVzdCBmbXR0eV9yZXN0IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoU2Nhbl9jaGFyX3NldCAod2lkdGhfb3B0LCBjaGFyX3NldCwgZm10JyksIGZtdHR5JylcbiAgfCBTY2FuX2dldF9jb3VudGVyIChjb3VudGVyLCBmbXRfcmVzdCksIEludF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10X3Jlc3QgZm10dHlfcmVzdCBpblxuICAgIEZtdF9mbXR0eV9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdCcpLCBmbXR0eScpXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSwgZm10dHlfcmVzdCAtPlxuICAgIHR5cGVfaWdub3JlZF9wYXJhbSBpZ24gcmVzdCBmbXR0eV9yZXN0XG5cbiAgfCBFbmRfb2ZfZm9ybWF0LCBmbXR0eV9yZXN0IC0+IEZtdF9mbXR0eV9FQkIgKEVuZF9vZl9mb3JtYXQsIGZtdHR5X3Jlc3QpXG5cbiAgfCBfIC0+IHJhaXNlIFR5cGVfbWlzbWF0Y2hcblxuYW5kIHR5cGVfZm9ybWF0dGluZ19nZW4gOiB0eXBlIGExIGEzIGIxIGIzIGMxIGMzIGQxIGQzIGUxIGUyIGUzIGYxIGYyIGYzIC5cbiAgICAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSkgZm9ybWF0dGluZ19nZW4gLT5cbiAgICAoZjEsIGIxLCBjMSwgZTEsIGUyLCBmMikgZm10IC0+XG4gICAgKGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdHR5IC0+XG4gICAgKGEzLCBiMywgYzMsIGQzLCBlMywgZjMpIGZtdF9mbXR0eV9lYmIgPVxuZnVuIGZvcm1hdHRpbmdfZ2VuIGZtdDAgZm10dHkwIC0+IG1hdGNoIGZvcm1hdHRpbmdfZ2VuIHdpdGhcbiAgfCBPcGVuX3RhZyAoRm9ybWF0IChmbXQxLCBzdHIpKSAtPlxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQyLCBmbXR0eTIpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDEgZm10dHkwIGluXG4gICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdDMsIGZtdHR5MykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10MCBmbXR0eTIgaW5cbiAgICBGbXRfZm10dHlfRUJCIChGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10Miwgc3RyKSksIGZtdDMpLCBmbXR0eTMpXG4gIHwgT3Blbl9ib3ggKEZvcm1hdCAoZm10MSwgc3RyKSkgLT5cbiAgICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10MiwgZm10dHkyKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQxIGZtdHR5MCBpblxuICAgIGxldCBGbXRfZm10dHlfRUJCIChmbXQzLCBmbXR0eTMpID0gdHlwZV9mb3JtYXRfZ2VuIGZtdDAgZm10dHkyIGluXG4gICAgRm10X2ZtdHR5X0VCQiAoRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdDIsIHN0cikpLCBmbXQzKSwgZm10dHkzKVxuXG4oKiBUeXBlIGFuIElnbm9yZWRfcGFyYW0gbm9kZSBhY2NvcmRpbmcgdG8gYW4gZm10dHkuICopXG5hbmQgdHlwZV9pZ25vcmVkX3BhcmFtIDogdHlwZSBwIHEgeCB5IHogdCB1IHYgYSBiIGMgZCBlIGYgLlxuICAgICh4LCB5LCB6LCB0LCBxLCBwKSBpZ25vcmVkIC0+XG4gICAgKHAsIHksIHosIHEsIHUsIHYpIGZtdCAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXR0eSAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXRfZm10dHlfZWJiID1cbmZ1biBpZ24gZm10IGZtdHR5IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9jaGFyICAgICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9jYW1sX2NoYXIgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9zdHJpbmcgXyAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBfICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9pbnQgXyAgICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9pbnQzMiBfICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgXyAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9pbnQ2NCBfICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9mbG9hdCBfICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9ib29sIF8gICAgICAgICAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9zY2FuX2NoYXJfc2V0IF8gICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9zY2FuX2dldF9jb3VudGVyIF8gYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgYXMgaWduJyAtPiB0eXBlX2lnbm9yZWRfcGFyYW1fb25lIGlnbicgZm10IGZtdHR5XG4gIHwgSWdub3JlZF9mb3JtYXRfYXJnIChwYWRfb3B0LCBzdWJfZm10dHkpIC0+XG4gICAgdHlwZV9pZ25vcmVkX3BhcmFtX29uZSAoSWdub3JlZF9mb3JtYXRfYXJnIChwYWRfb3B0LCBzdWJfZm10dHkpKSBmbXQgZm10dHlcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAocGFkX29wdCwgc3ViX2ZtdHR5KSAtPlxuICAgIGxldCBGbXR0eV9mbXRfRUJCIChzdWJfZm10dHknLCBGbXRfZm10dHlfRUJCIChmbXQnLCBmbXR0eScpKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHkgZm10IGZtdHR5IGluXG4gICAgRm10X2ZtdHR5X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9mb3JtYXRfc3Vic3QgKHBhZF9vcHQsIHN1Yl9mbXR0eScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdCcpLFxuICAgICAgICAgICAgICAgICAgIGZtdHR5JylcbiAgfCBJZ25vcmVkX3JlYWRlciAtPiAoXG4gICAgbWF0Y2ggZm10dHkgd2l0aFxuICAgIHwgSWdub3JlZF9yZWFkZXJfdHkgZm10dHlfcmVzdCAtPlxuICAgICAgbGV0IEZtdF9mbXR0eV9FQkIgKGZtdCcsIGZtdHR5JykgPSB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5X3Jlc3QgaW5cbiAgICAgIEZtdF9mbXR0eV9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfcmVhZGVyLCBmbXQnKSwgZm10dHknKVxuICAgIHwgXyAtPiByYWlzZSBUeXBlX21pc21hdGNoXG4gIClcblxuYW5kIHR5cGVfaWdub3JlZF9wYXJhbV9vbmUgOiB0eXBlIGExIGEyIGIxIGIyIGMxIGMyIGQxIGQyIGUxIGUyIGYxIGYyIC5cbiAgICAoYTIsIGIyLCBjMiwgZDIsIGQyLCBhMikgaWdub3JlZCAtPlxuICAgIChhMSwgYjEsIGMxLCBkMSwgZTEsIGYxKSBmbXQgLT5cbiAgICAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10dHkgLT5cbiAgICAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10X2ZtdHR5X2ViYlxuPSBmdW4gaWduIGZtdCBmbXR0eSAtPlxuICBsZXQgRm10X2ZtdHR5X0VCQiAoZm10JywgZm10dHknKSA9IHR5cGVfZm9ybWF0X2dlbiBmbXQgZm10dHkgaW5cbiAgRm10X2ZtdHR5X0VCQiAoSWdub3JlZF9wYXJhbSAoaWduLCBmbXQnKSwgZm10dHknKVxuXG4oKiBUeXBpbmcgb2YgdGhlIGNvbXBsZXggY2FzZTogXCIlXyguLi4lKVwiLiAqKVxuYW5kIHR5cGVfaWdub3JlZF9mb3JtYXRfc3Vic3RpdHV0aW9uIDogdHlwZSB3IHggeSB6IHAgcyB0IHUgYSBiIGMgZCBlIGYgLlxuICAgICh3LCB4LCB5LCB6LCBzLCBwKSBmbXR0eSAtPlxuICAgIChwLCB4LCB5LCBzLCB0LCB1KSBmbXQgLT5cbiAgICAoYSwgYiwgYywgZCwgZSwgZikgZm10dHkgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdHR5X2ZtdF9lYmIgPVxuZnVuIHN1Yl9mbXR0eSBmbXQgZm10dHkgLT4gbWF0Y2ggc3ViX2ZtdHR5LCBmbXR0eSB3aXRoXG4gIHwgQ2hhcl90eSBzdWJfZm10dHlfcmVzdCwgQ2hhcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChDaGFyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBTdHJpbmdfdHkgc3ViX2ZtdHR5X3Jlc3QsIFN0cmluZ190eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChTdHJpbmdfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEludF90eSBzdWJfZm10dHlfcmVzdCwgSW50X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEludF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgSW50MzJfdHkgc3ViX2ZtdHR5X3Jlc3QsIEludDMyX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEludDMyX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBOYXRpdmVpbnRfdHkgc3ViX2ZtdHR5X3Jlc3QsIE5hdGl2ZWludF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChOYXRpdmVpbnRfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEludDY0X3R5IHN1Yl9mbXR0eV9yZXN0LCBJbnQ2NF90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJbnQ2NF90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgRmxvYXRfdHkgc3ViX2ZtdHR5X3Jlc3QsIEZsb2F0X3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEZsb2F0X3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBCb29sX3R5IHN1Yl9mbXR0eV9yZXN0LCBCb29sX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEJvb2xfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IEFscGhhX3R5IHN1Yl9mbXR0eV9yZXN0LCBBbHBoYV90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChBbHBoYV90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG4gIHwgVGhldGFfdHkgc3ViX2ZtdHR5X3Jlc3QsIFRoZXRhX3R5IGZtdHR5X3Jlc3QgLT5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKFRoZXRhX3R5IHN1Yl9mbXR0eV9yZXN0JywgZm10JylcbiAgfCBSZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QsIFJlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChSZWFkZXJfdHkgc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IHN1Yl9mbXR0eV9yZXN0LCBJZ25vcmVkX3JlYWRlcl90eSBmbXR0eV9yZXN0IC0+XG4gICAgbGV0IEZtdHR5X2ZtdF9FQkIgKHN1Yl9mbXR0eV9yZXN0JywgZm10JykgPVxuICAgICAgdHlwZV9pZ25vcmVkX2Zvcm1hdF9zdWJzdGl0dXRpb24gc3ViX2ZtdHR5X3Jlc3QgZm10IGZtdHR5X3Jlc3QgaW5cbiAgICBGbXR0eV9mbXRfRUJCIChJZ25vcmVkX3JlYWRlcl90eSBzdWJfZm10dHlfcmVzdCcsIGZtdCcpXG5cbiAgfCBGb3JtYXRfYXJnX3R5IChzdWIyX2ZtdHR5LCBzdWJfZm10dHlfcmVzdCksXG4gICAgRm9ybWF0X2FyZ190eSAoc3ViMl9mbXR0eScsIGZtdHR5X3Jlc3QpIC0+XG4gICAgaWYgRm10dHlfRUJCIHN1YjJfZm10dHkgPD4gRm10dHlfRUJCIHN1YjJfZm10dHknIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiBzdWJfZm10dHlfcmVzdCBmbXQgZm10dHlfcmVzdCBpblxuICAgIEZtdHR5X2ZtdF9FQkIgKEZvcm1hdF9hcmdfdHkgKHN1YjJfZm10dHknLCBzdWJfZm10dHlfcmVzdCcpLCBmbXQnKVxuICB8IEZvcm1hdF9zdWJzdF90eSAoc3ViMV9mbXR0eSwgIHN1YjJfZm10dHksICBzdWJfZm10dHlfcmVzdCksXG4gICAgRm9ybWF0X3N1YnN0X3R5IChzdWIxX2ZtdHR5Jywgc3ViMl9mbXR0eScsIGZtdHR5X3Jlc3QpIC0+XG4gICAgKCogVE9ETyBkZWZpbmUgRm10dHlfcmVsX0VCQiB0byByZW1vdmUgdGhvc2UgZXJhc2VfcmVsICopXG4gICAgaWYgRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMV9mbXR0eSkgPD4gRm10dHlfRUJCIChlcmFzZV9yZWwgc3ViMV9mbXR0eScpXG4gICAgdGhlbiByYWlzZSBUeXBlX21pc21hdGNoO1xuICAgIGlmIEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjJfZm10dHkpIDw+IEZtdHR5X0VCQiAoZXJhc2VfcmVsIHN1YjJfZm10dHknKVxuICAgIHRoZW4gcmFpc2UgVHlwZV9taXNtYXRjaDtcbiAgICBsZXQgc3ViX2ZtdHR5JyA9IHRyYW5zIChzeW1tIHN1YjFfZm10dHknKSBzdWIyX2ZtdHR5JyBpblxuICAgIGxldCBfLCBmMiwgXywgZjQgPSBmbXR0eV9yZWxfZGV0IHN1Yl9mbXR0eScgaW5cbiAgICBsZXQgUmVmbCA9IGYyIFJlZmwgaW5cbiAgICBsZXQgUmVmbCA9IGY0IFJlZmwgaW5cbiAgICBsZXQgRm10dHlfZm10X0VCQiAoc3ViX2ZtdHR5X3Jlc3QnLCBmbXQnKSA9XG4gICAgICB0eXBlX2lnbm9yZWRfZm9ybWF0X3N1YnN0aXR1dGlvbiAoZXJhc2VfcmVsIHN1Yl9mbXR0eV9yZXN0KSBmbXQgZm10dHlfcmVzdFxuICAgIGluXG4gICAgRm10dHlfZm10X0VCQiAoRm9ybWF0X3N1YnN0X3R5IChzdWIxX2ZtdHR5Jywgc3ViMl9mbXR0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1tIHN1Yl9mbXR0eV9yZXN0JyksXG4gICAgICAgICAgICAgICAgICAgZm10JylcbiAgfCBFbmRfb2ZfZm10dHksIGZtdHR5IC0+XG4gICAgRm10dHlfZm10X0VCQiAoRW5kX29mX2ZtdHR5LCB0eXBlX2Zvcm1hdF9nZW4gZm10IGZtdHR5KVxuICB8IF8gLT4gcmFpc2UgVHlwZV9taXNtYXRjaFxuXG4oKiBUaGlzIGltcGxlbWVudGF0aW9uIG9mIGByZWNhc3RgIGlzIGEgYml0IGRpc2FwcG9pbnRpbmcuIFRoZVxuICAgaW52YXJpYW50IHByb3ZpZGVkIGJ5IHRoZSB0eXBlIGFyZSB2ZXJ5IHN0cm9uZzogdGhlIGlucHV0IGZvcm1hdCdzXG4gICB0eXBlIGlzIGluIHJlbGF0aW9uIHRvIHRoZSBvdXRwdXQgdHlwZSdzIGFzIHdpdG5lc3NlZCBieSB0aGVcbiAgIGZtdHR5X3JlbCBhcmd1bWVudC4gT25lIHdvdWxkIGF0IGZpcnN0IGV4cGVjdCB0aGlzIGZ1bmN0aW9uIHRvIGJlXG4gICB0b3RhbCwgYW5kIGltcGxlbWVudGFibGUgYnkgZXhoYXVzdGl2ZSBwYXR0ZXJuIG1hdGNoaW5nLiBJbnN0ZWFkLFxuICAgd2UgcmV1c2UgdGhlIGhpZ2hseSBwYXJ0aWFsIGFuZCBtdWNoIGxlc3Mgd2VsbC1kZWZpbmVkIGZ1bmN0aW9uXG4gICBgdHlwZV9mb3JtYXRgIHRoYXQgaGFzIGxvc3QgYWxsIGtub3dsZWRnZSBvZiB0aGUgY29ycmVzcG9uZGVuY2VcbiAgIGJldHdlZW4gdGhlIGFyZ3VtZW50J3MgdHlwZXMuXG5cbiAgIEJlc2lkZXMgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0aW9uIHJldXNlcyBhIGxvdCBvZiB0aGVcbiAgIGB0eXBlX2Zvcm1hdGAgbG9naWMgKGVnLjogc2VlaW5nIEludF90eSBpbiB0aGUgZm10dHkgcGFyYW1ldGVyIGRvZXNcbiAgIG5vdCBsZXQgeW91IG1hdGNoIG9uIEludCBvbmx5LCBhcyB5b3UgbWF5IGluIGZhY3QgaGF2ZSBGbG9hdFxuICAgKEFyZ19wYWRkaW5nLCAuLi4pIChcIiUuKmRcIikgYmVnaW5uaW5nIHdpdGggYW4gSW50X3R5KSwgaXQgaXMgYWxzb1xuICAgYSBwYXJ0aWFsIGZ1bmN0aW9uLCBiZWNhdXNlIHRoZSB0eXBpbmcgaW5mb3JtYXRpb24gaW4gYSBmb3JtYXQgaXNcbiAgIG5vdCBxdWl0ZSBlbm91Z2ggdG8gcmVjb25zdHJ1Y3QgaXQgdW5hbWJpZ3VvdXNseS4gRm9yIGV4YW1wbGUsIHRoZVxuICAgZm9ybWF0IHR5cGVzIG9mIFwiJWQlX3JcIiBhbmQgXCIlX3IlZFwiIGhhdmUgdGhlIHNhbWUgZm9ybWF0NlxuICAgcGFyYW1ldGVycywgYnV0IHRoZXkgYXJlIG5vdCBhdCBhbGwgZXhjaGFuZ2VhYmxlLCBhbmQgcHV0dGluZyBvbmVcbiAgIGluIHBsYWNlIG9mIHRoZSBvdGhlciBtdXN0IHJlc3VsdCBpbiBhIGR5bmFtaWMgZmFpbHVyZS5cblxuICAgR2l2ZW4gdGhhdDpcbiAgIC0gd2UnZCBoYXZlIHRvIGR1cGxpY2F0ZSBhIGxvdCBvZiBub24tdHJpdmlhbCB0eXBpbmcgbG9naWMgZnJvbSB0eXBlX2Zvcm1hdFxuICAgLSB0aGlzIHdvdWxkbid0IGV2ZW4gZWxpbWluYXRlIChhbGwpIHRoZSBkeW5hbWljIGZhaWx1cmVzXG4gICB3ZSBkZWNpZGVkIHRvIGp1c3QgcmV1c2UgdHlwZV9mb3JtYXQgZGlyZWN0bHkgZm9yIG5vdy5cbiopXG5sZXQgcmVjYXN0IDpcbiAgdHlwZSBhMSBiMSBjMSBkMSBlMSBmMVxuICAgICAgIGEyIGIyIGMyIGQyIGUyIGYyXG4gIC5cbiAgICAgKGExLCBiMSwgYzEsIGQxLCBlMSwgZjEpIGZtdFxuICAtPiAoYTEsIGIxLCBjMSwgZDEsIGUxLCBmMSxcbiAgICAgIGEyLCBiMiwgYzIsIGQyLCBlMiwgZjIpIGZtdHR5X3JlbFxuICAtPiAoYTIsIGIyLCBjMiwgZDIsIGUyLCBmMikgZm10XG49IGZ1biBmbXQgZm10dHkgLT5cbiAgdHlwZV9mb3JtYXQgZm10IChlcmFzZV9yZWwgKHN5bW0gZm10dHkpKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBQcmludGluZyB0b29scyAqKVxuXG4oKiBBZGQgcGFkZGluZyBzcGFjZXMgYXJvdW5kIGEgc3RyaW5nLiAqKVxubGV0IGZpeF9wYWRkaW5nIHBhZHR5IHdpZHRoIHN0ciA9XG4gIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgd2lkdGgsIHBhZHR5ID1cbiAgICBhYnMgd2lkdGgsXG4gICAgKCogd2hpbGUgbGl0ZXJhbCBwYWRkaW5nIHdpZHRocyBhcmUgYWx3YXlzIG5vbi1uZWdhdGl2ZSxcbiAgICAgICBkeW5hbWljYWxseS1zZXQgd2lkdGhzIChBcmdfcGFkZGluZywgZWcuICUqZCkgbWF5IGJlIG5lZ2F0aXZlO1xuICAgICAgIHdlIGludGVycHJldCB0aG9zZSBhcyBzcGVjaWZ5aW5nIGEgcGFkZGluZy10by10aGUtbGVmdDsgdGhpc1xuICAgICAgIG1lYW5zIHRoYXQgJzAnIG1heSBnZXQgZHJvcHBlZCBldmVuIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNldCxcbiAgICAgICBidXQ6XG4gICAgICAgLSB0aGlzIGlzIHdoYXQgdGhlIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBkb2VzLCBhbmRcbiAgICAgICAgIHdlIHByZXNlcnZlIGNvbXBhdGliaWxpdHkgaWYgcG9zc2libGVcbiAgICAgICAtIHdlIGNvdWxkIG9ubHkgc2lnbmFsIHRoaXMgaXNzdWUgYnkgZmFpbGluZyBhdCBydW50aW1lLFxuICAgICAgICAgd2hpY2ggaXMgbm90IHZlcnkgbmljZS4uLiAqKVxuICAgIGlmIHdpZHRoIDwgMCB0aGVuIExlZnQgZWxzZSBwYWR0eSBpblxuICBpZiB3aWR0aCA8PSBsZW4gdGhlbiBzdHIgZWxzZVxuICAgIGxldCByZXMgPSBCeXRlcy5tYWtlIHdpZHRoIChpZiBwYWR0eSA9IFplcm9zIHRoZW4gJzAnIGVsc2UgJyAnKSBpblxuICAgIGJlZ2luIG1hdGNoIHBhZHR5IHdpdGhcbiAgICB8IExlZnQgIC0+IFN0cmluZy5ibGl0IHN0ciAwIHJlcyAwIGxlblxuICAgIHwgUmlnaHQgLT4gU3RyaW5nLmJsaXQgc3RyIDAgcmVzICh3aWR0aCAtIGxlbikgbGVuXG4gICAgfCBaZXJvcyB3aGVuIGxlbiA+IDAgJiYgKHN0ci5bMF0gPSAnKycgfHwgc3RyLlswXSA9ICctJyB8fCBzdHIuWzBdID0gJyAnKSAtPlxuICAgICAgQnl0ZXMuc2V0IHJlcyAwIHN0ci5bMF07XG4gICAgICBTdHJpbmcuYmxpdCBzdHIgMSByZXMgKHdpZHRoIC0gbGVuICsgMSkgKGxlbiAtIDEpXG4gICAgfCBaZXJvcyB3aGVuIGxlbiA+IDEgJiYgc3RyLlswXSA9ICcwJyAmJiAoc3RyLlsxXSA9ICd4JyB8fCBzdHIuWzFdID0gJ1gnKSAtPlxuICAgICAgQnl0ZXMuc2V0IHJlcyAxIHN0ci5bMV07XG4gICAgICBTdHJpbmcuYmxpdCBzdHIgMiByZXMgKHdpZHRoIC0gbGVuICsgMikgKGxlbiAtIDIpXG4gICAgfCBaZXJvcyAtPlxuICAgICAgU3RyaW5nLmJsaXQgc3RyIDAgcmVzICh3aWR0aCAtIGxlbikgbGVuXG4gICAgZW5kO1xuICAgIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG5cbigqIEFkZCAnMCcgcGFkZGluZyB0byBpbnQsIGludDMyLCBuYXRpdmVpbnQgb3IgaW50NjQgc3RyaW5nIHJlcHJlc2VudGF0aW9uLiAqKVxubGV0IGZpeF9pbnRfcHJlY2lzaW9uIHByZWMgc3RyID1cbiAgbGV0IHByZWMgPSBhYnMgcHJlYyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgbWF0Y2ggc3RyLlswXSB3aXRoXG4gIHwgKCcrJyB8ICctJyB8ICcgJykgYXMgYyB3aGVuIHByZWMgKyAxID4gbGVuIC0+XG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKHByZWMgKyAxKSAnMCcgaW5cbiAgICBCeXRlcy5zZXQgcmVzIDAgYztcbiAgICBTdHJpbmcuYmxpdCBzdHIgMSByZXMgKHByZWMgLSBsZW4gKyAyKSAobGVuIC0gMSk7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcbiAgfCAnMCcgd2hlbiBwcmVjICsgMiA+IGxlbiAmJiBsZW4gPiAxICYmIChzdHIuWzFdID0gJ3gnIHx8IHN0ci5bMV0gPSAnWCcpIC0+XG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgKHByZWMgKyAyKSAnMCcgaW5cbiAgICBCeXRlcy5zZXQgcmVzIDEgc3RyLlsxXTtcbiAgICBTdHJpbmcuYmxpdCBzdHIgMiByZXMgKHByZWMgLSBsZW4gKyA0KSAobGVuIC0gMik7XG4gICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcbiAgfCAnMCcgLi4gJzknIHwgJ2EnIC4uICdmJyB8ICdBJyAuLiAnRicgd2hlbiBwcmVjID4gbGVuIC0+XG4gICAgbGV0IHJlcyA9IEJ5dGVzLm1ha2UgcHJlYyAnMCcgaW5cbiAgICBTdHJpbmcuYmxpdCBzdHIgMCByZXMgKHByZWMgLSBsZW4pIGxlbjtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc1xuICB8IF8gLT5cbiAgICBzdHJcblxuKCogRXNjYXBlIGEgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgT0NhbWwgbGV4aW5nIGNvbnZlbnRpb24uICopXG5sZXQgc3RyaW5nX3RvX2NhbWxfc3RyaW5nIHN0ciA9XG4gIGxldCBzdHIgPSBTdHJpbmcuZXNjYXBlZCBzdHIgaW5cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICBsZXQgcmVzID0gQnl0ZXMubWFrZSAobCArIDIpICdcXFwiJyBpblxuICBTdHJpbmcudW5zYWZlX2JsaXQgc3RyIDAgcmVzIDEgbDtcbiAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyByZXNcblxuKCogR2VuZXJhdGUgdGhlIGZvcm1hdF9pbnQvaW50MzIvbmF0aXZlaW50L2ludDY0IGZpcnN0IGFyZ3VtZW50XG4gICBmcm9tIGFuIGludF9jb252LiAqKVxubGV0IGZvcm1hdF9vZl9pY29udiA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlZFwiIHwgSW50X3BkIC0+IFwiJStkXCIgfCBJbnRfc2QgLT4gXCIlIGRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJWlcIiB8IEludF9waSAtPiBcIiUraVwiIHwgSW50X3NpIC0+IFwiJSBpXCJcbiAgfCBJbnRfeCAtPiBcIiV4XCIgfCBJbnRfQ3ggLT4gXCIlI3hcIlxuICB8IEludF9YIC0+IFwiJVhcIiB8IEludF9DWCAtPiBcIiUjWFwiXG4gIHwgSW50X28gLT4gXCIlb1wiIHwgSW50X0NvIC0+IFwiJSNvXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiV1XCJcblxubGV0IGZvcm1hdF9vZl9pY29udkwgPSBmdW5jdGlvblxuICB8IEludF9kIHwgSW50X0NkIC0+IFwiJUxkXCIgfCBJbnRfcGQgLT4gXCIlK0xkXCIgfCBJbnRfc2QgLT4gXCIlIExkXCJcbiAgfCBJbnRfaSB8IEludF9DaSAtPiBcIiVMaVwiIHwgSW50X3BpIC0+IFwiJStMaVwiIHwgSW50X3NpIC0+IFwiJSBMaVwiXG4gIHwgSW50X3ggLT4gXCIlTHhcIiB8IEludF9DeCAtPiBcIiUjTHhcIlxuICB8IEludF9YIC0+IFwiJUxYXCIgfCBJbnRfQ1ggLT4gXCIlI0xYXCJcbiAgfCBJbnRfbyAtPiBcIiVMb1wiIHwgSW50X0NvIC0+IFwiJSNMb1wiXG4gIHwgSW50X3UgfCBJbnRfQ3UgLT4gXCIlTHVcIlxuXG5sZXQgZm9ybWF0X29mX2ljb252bCA9IGZ1bmN0aW9uXG4gIHwgSW50X2QgfCBJbnRfQ2QgLT4gXCIlbGRcIiB8IEludF9wZCAtPiBcIiUrbGRcIiB8IEludF9zZCAtPiBcIiUgbGRcIlxuICB8IEludF9pIHwgSW50X0NpIC0+IFwiJWxpXCIgfCBJbnRfcGkgLT4gXCIlK2xpXCIgfCBJbnRfc2kgLT4gXCIlIGxpXCJcbiAgfCBJbnRfeCAtPiBcIiVseFwiIHwgSW50X0N4IC0+IFwiJSNseFwiXG4gIHwgSW50X1ggLT4gXCIlbFhcIiB8IEludF9DWCAtPiBcIiUjbFhcIlxuICB8IEludF9vIC0+IFwiJWxvXCIgfCBJbnRfQ28gLT4gXCIlI2xvXCJcbiAgfCBJbnRfdSB8IEludF9DdSAtPiBcIiVsdVwiXG5cbmxldCBmb3JtYXRfb2ZfaWNvbnZuID0gZnVuY3Rpb25cbiAgfCBJbnRfZCB8IEludF9DZCAtPiBcIiVuZFwiIHwgSW50X3BkIC0+IFwiJStuZFwiIHwgSW50X3NkIC0+IFwiJSBuZFwiXG4gIHwgSW50X2kgfCBJbnRfQ2kgLT4gXCIlbmlcIiB8IEludF9waSAtPiBcIiUrbmlcIiB8IEludF9zaSAtPiBcIiUgbmlcIlxuICB8IEludF94IC0+IFwiJW54XCIgfCBJbnRfQ3ggLT4gXCIlI254XCJcbiAgfCBJbnRfWCAtPiBcIiVuWFwiIHwgSW50X0NYIC0+IFwiJSNuWFwiXG4gIHwgSW50X28gLT4gXCIlbm9cIiB8IEludF9DbyAtPiBcIiUjbm9cIlxuICB8IEludF91IHwgSW50X0N1IC0+IFwiJW51XCJcblxuKCogR2VuZXJhdGUgdGhlIGZvcm1hdF9mbG9hdCBmaXJzdCBhcmd1bWVudCBmcm9tIGEgZmxvYXRfY29udi4gKilcbmxldCBmb3JtYXRfb2ZfZmNvbnYgZmNvbnYgcHJlYyA9XG4gICAgbGV0IHByZWMgPSBhYnMgcHJlYyBpblxuICAgIGxldCBzeW1iID0gY2hhcl9vZl9mY29udiB+Y0Y6J2cnIGZjb252IGluXG4gICAgbGV0IGJ1ZiA9IGJ1ZmZlcl9jcmVhdGUgMTYgaW5cbiAgICBidWZmZXJfYWRkX2NoYXIgYnVmICclJztcbiAgICBicHJpbnRfZmNvbnZfZmxhZyBidWYgZmNvbnY7XG4gICAgYnVmZmVyX2FkZF9jaGFyIGJ1ZiAnLic7XG4gICAgYnVmZmVyX2FkZF9zdHJpbmcgYnVmIChJbnQudG9fc3RyaW5nIHByZWMpO1xuICAgIGJ1ZmZlcl9hZGRfY2hhciBidWYgc3ltYjtcbiAgICBidWZmZXJfY29udGVudHMgYnVmXG5cbmxldCB0cmFuc2Zvcm1faW50X2FsdCBpY29udiBzID1cbiAgbWF0Y2ggaWNvbnYgd2l0aFxuICB8IEludF9DZCB8IEludF9DaSB8IEludF9DdSAtPlxuICAgIGxldCBkaWdpdHMgPVxuICAgICAgbGV0IG4gPSByZWYgMCBpblxuICAgICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgICAgbWF0Y2ggU3RyaW5nLnVuc2FmZV9nZXQgcyBpIHdpdGhcbiAgICAgICAgfCAnMCcuLic5JyAtPiBpbmNyIG5cbiAgICAgICAgfCBfIC0+ICgpXG4gICAgICBkb25lO1xuICAgICAgIW5cbiAgICBpblxuICAgIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgKFN0cmluZy5sZW5ndGggcyArIChkaWdpdHMgLSAxKSAvIDMpIGluXG4gICAgbGV0IHBvcyA9IHJlZiAwIGluXG4gICAgbGV0IHB1dCBjID0gQnl0ZXMuc2V0IGJ1ZiAhcG9zIGM7IGluY3IgcG9zIGluXG4gICAgbGV0IGxlZnQgPSByZWYgKChkaWdpdHMgLSAxKSBtb2QgMyArIDEpIGluXG4gICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgIG1hdGNoIFN0cmluZy51bnNhZmVfZ2V0IHMgaSB3aXRoXG4gICAgICB8ICcwJy4uJzknIGFzIGMgLT5cbiAgICAgICAgICBpZiAhbGVmdCA9IDAgdGhlbiAocHV0ICdfJzsgbGVmdCA6PSAzKTsgZGVjciBsZWZ0OyBwdXQgY1xuICAgICAgfCBjIC0+IHB1dCBjXG4gICAgZG9uZTtcbiAgICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGJ1ZlxuICB8IF8gLT4gc1xuXG4oKiBDb252ZXJ0IGFuIGludGVnZXIgdG8gYSBzdHJpbmcgYWNjb3JkaW5nIHRvIGEgY29udmVyc2lvbi4gKilcbmxldCBjb252ZXJ0X2ludCBpY29udiBuID1cbiAgdHJhbnNmb3JtX2ludF9hbHQgaWNvbnYgKGZvcm1hdF9pbnQgKGZvcm1hdF9vZl9pY29udiBpY29udikgbilcbmxldCBjb252ZXJ0X2ludDMyIGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X2ludDMyIChmb3JtYXRfb2ZfaWNvbnZsIGljb252KSBuKVxubGV0IGNvbnZlcnRfbmF0aXZlaW50IGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X25hdGl2ZWludCAoZm9ybWF0X29mX2ljb252biBpY29udikgbilcbmxldCBjb252ZXJ0X2ludDY0IGljb252IG4gPVxuICB0cmFuc2Zvcm1faW50X2FsdCBpY29udiAoZm9ybWF0X2ludDY0IChmb3JtYXRfb2ZfaWNvbnZMIGljb252KSBuKVxuXG4oKiBDb252ZXJ0IGEgZmxvYXQgdG8gc3RyaW5nLiAqKVxuKCogRml4IHNwZWNpYWwgY2FzZSBvZiBcIk9DYW1sIGZsb2F0IGZvcm1hdFwiLiAqKVxubGV0IGNvbnZlcnRfZmxvYXQgZmNvbnYgcHJlYyB4ID1cbiAgbGV0IGhleCAoKSA9XG4gICAgbGV0IHNpZ24gPVxuICAgICAgbWF0Y2ggZnN0IGZjb252IHdpdGhcbiAgICAgIHwgRmxvYXRfZmxhZ19wIC0+ICcrJ1xuICAgICAgfCBGbG9hdF9mbGFnX3MgLT4gJyAnXG4gICAgICB8IF8gLT4gJy0nIGluXG4gICAgaGV4c3RyaW5nX29mX2Zsb2F0IHggcHJlYyBzaWduIGluXG4gIGxldCBhZGRfZG90X2lmX25lZWRlZCBzdHIgPVxuICAgIGxldCBsZW4gPSBTdHJpbmcubGVuZ3RoIHN0ciBpblxuICAgIGxldCByZWMgaXNfdmFsaWQgaSA9XG4gICAgICBpZiBpID0gbGVuIHRoZW4gZmFsc2UgZWxzZVxuICAgICAgICBtYXRjaCBzdHIuW2ldIHdpdGhcbiAgICAgICAgfCAnLicgfCAnZScgfCAnRScgLT4gdHJ1ZVxuICAgICAgICB8IF8gLT4gaXNfdmFsaWQgKGkgKyAxKSBpblxuICAgIGlmIGlzX3ZhbGlkIDAgdGhlbiBzdHIgZWxzZSBzdHIgXiBcIi5cIiBpblxuICBsZXQgY2FtbF9zcGVjaWFsX3ZhbCBzdHIgPSBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICB8IEZQX25vcm1hbCB8IEZQX3N1Ym5vcm1hbCB8IEZQX3plcm8gLT4gc3RyXG4gICAgfCBGUF9pbmZpbml0ZSAtPiBpZiB4IDwgMC4wIHRoZW4gXCJuZWdfaW5maW5pdHlcIiBlbHNlIFwiaW5maW5pdHlcIlxuICAgIHwgRlBfbmFuIC0+IFwibmFuXCIgaW5cbiAgbWF0Y2ggc25kIGZjb252IHdpdGhcbiAgfCBGbG9hdF9oIC0+IGhleCAoKVxuICB8IEZsb2F0X0ggLT4gU3RyaW5nLnVwcGVyY2FzZV9hc2NpaSAoaGV4ICgpKVxuICB8IEZsb2F0X0NGIC0+IGNhbWxfc3BlY2lhbF92YWwgKGhleCAoKSlcbiAgfCBGbG9hdF9GIC0+XG4gICAgbGV0IHN0ciA9IGZvcm1hdF9mbG9hdCAoZm9ybWF0X29mX2Zjb252IGZjb252IHByZWMpIHggaW5cbiAgICBjYW1sX3NwZWNpYWxfdmFsIChhZGRfZG90X2lmX25lZWRlZCBzdHIpXG4gIHwgRmxvYXRfZiB8IEZsb2F0X2UgfCBGbG9hdF9FIHwgRmxvYXRfZyB8IEZsb2F0X0cgLT5cbiAgICBmb3JtYXRfZmxvYXQgKGZvcm1hdF9vZl9mY29udiBmY29udiBwcmVjKSB4XG5cbigqIENvbnZlcnQgYSBjaGFyIHRvIGEgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgT0NhbWwgbGV4aWNhbCBjb252ZW50aW9uLiAqKVxubGV0IGZvcm1hdF9jYW1sX2NoYXIgYyA9XG4gIGxldCBzdHIgPSBDaGFyLmVzY2FwZWQgYyBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCByZXMgPSBCeXRlcy5tYWtlIChsICsgMikgJ1xcJycgaW5cbiAgU3RyaW5nLnVuc2FmZV9ibGl0IHN0ciAwIHJlcyAxIGw7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzXG5cbigqIENvbnZlcnQgYSBmb3JtYXQgdHlwZSB0byBzdHJpbmcgKilcbmxldCBzdHJpbmdfb2ZfZm10dHkgZm10dHkgPVxuICBsZXQgYnVmID0gYnVmZmVyX2NyZWF0ZSAxNiBpblxuICBicHJpbnRfZm10dHkgYnVmIGZtdHR5O1xuICBidWZmZXJfY29udGVudHMgYnVmXG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAoKiBHZW5lcmljIHByaW50aW5nIGZ1bmN0aW9uICopXG5cbigqIE1ha2UgYSBnZW5lcmljIHByaW50aW5nIGZ1bmN0aW9uLiAqKVxuKCogVXNlZCB0byBnZW5lcmF0ZSBQcmludGYgYW5kIEZvcm1hdCBwcmludGluZyBmdW5jdGlvbnMuICopXG4oKiBQYXJhbWV0ZXJzOlxuICAgICBrOiBhIGNvbnRpbnVhdGlvbiBmaW5hbGx5IGFwcGxpZWQgdG8gdGhlIG91dHB1dCBzdHJlYW0gYW5kIHRoZSBhY2N1bXVsYXRvci5cbiAgICAgbzogdGhlIG91dHB1dCBzdHJlYW0gKHNlZSBrLCAlYSBhbmQgJXQpLlxuICAgICBhY2M6IHJldiBsaXN0IG9mIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXNoLCBmb3JtYXR0aW5nLCAuLi4pLlxuICAgICBmbXQ6IHRoZSBmb3JtYXQuICopXG5sZXQgcmVjIG1ha2VfcHJpbnRmIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gYSA9XG5mdW4gayBhY2MgZm10IC0+IG1hdGNoIGZtdCB3aXRoXG4gIHwgQ2hhciByZXN0IC0+XG4gICAgZnVuIGMgLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfY2hhciAoYWNjLCBjKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIHJlc3RcbiAgfCBDYW1sX2NoYXIgcmVzdCAtPlxuICAgIGZ1biBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCBmb3JtYXRfY2FtbF9jaGFyIGMpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IFN0cmluZyAocGFkLCByZXN0KSAtPlxuICAgIG1ha2VfcGFkZGluZyBrIGFjYyByZXN0IHBhZCAoZnVuIHN0ciAtPiBzdHIpXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBtYWtlX3BhZGRpbmcgayBhY2MgcmVzdCBwYWQgc3RyaW5nX3RvX2NhbWxfc3RyaW5nXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9pbnQgaWNvbnZcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBtYWtlX2ludF9wYWRkaW5nX3ByZWNpc2lvbiBrIGFjYyByZXN0IHBhZCBwcmVjIGNvbnZlcnRfaW50MzIgaWNvbnZcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbWFrZV9pbnRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBjb252ZXJ0X25hdGl2ZWludCBpY29udlxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIGsgYWNjIHJlc3QgcGFkIHByZWMgY29udmVydF9pbnQ2NCBpY29udlxuICB8IEZsb2F0IChmY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIG1ha2VfZmxvYXRfcGFkZGluZ19wcmVjaXNpb24gayBhY2MgcmVzdCBwYWQgcHJlYyBmY29udlxuICB8IEJvb2wgKHBhZCwgcmVzdCkgLT5cbiAgICBtYWtlX3BhZGRpbmcgayBhY2MgcmVzdCBwYWQgc3RyaW5nX29mX2Jvb2xcbiAgfCBBbHBoYSByZXN0IC0+XG4gICAgZnVuIGYgeCAtPiBtYWtlX3ByaW50ZiBrIChBY2NfZGVsYXkgKGFjYywgZnVuIG8gLT4gZiBvIHgpKSByZXN0XG4gIHwgVGhldGEgcmVzdCAtPlxuICAgIGZ1biBmIC0+IG1ha2VfcHJpbnRmIGsgKEFjY19kZWxheSAoYWNjLCBmKSkgcmVzdFxuICB8IEN1c3RvbSAoYXJpdHksIGYsIHJlc3QpIC0+XG4gICAgbWFrZV9jdXN0b20gayBhY2MgcmVzdCBhcml0eSAoZiAoKSlcbiAgfCBSZWFkZXIgXyAtPlxuICAgICgqIFRoaXMgY2FzZSBpcyBpbXBvc3NpYmxlLCBieSB0eXBpbmcgb2YgZm9ybWF0cy4gKilcbiAgICAoKiBJbmRlZWQsIHNpbmNlIHByaW50ZiBhbmQgY28uIHRha2UgYSBmb3JtYXQ0IGFzIGFyZ3VtZW50LCB0aGUgJ2QgYW5kICdlXG4gICAgICAgdHlwZSBwYXJhbWV0ZXJzIG9mIGZtdCBhcmUgb2J2aW91c2x5IGVxdWFscy4gVGhlIFJlYWRlciBpcyB0aGVcbiAgICAgICBvbmx5IGNvbnN0cnVjdG9yIHdoaWNoIHRvdWNoICdkIGFuZCAnZSB0eXBlIHBhcmFtZXRlcnMgb2YgdGhlIGZvcm1hdFxuICAgICAgIHR5cGUsIGl0IGFkZHMgYW4gKC0+KSB0byB0aGUgJ2QgcGFyYW1ldGVycy4gQ29uc2VxdWVudGx5LCBhIGZvcm1hdDRcbiAgICAgICBjYW5ub3QgY29udGFpbiBhIFJlYWRlciBub2RlLCBleGNlcHQgaW4gdGhlIHN1Yi1mb3JtYXQgYXNzb2NpYXRlZCB0b1xuICAgICAgIGFuICV7Li4uJX0uIEl0J3Mgbm90IGEgcHJvYmxlbSBiZWNhdXNlIG1ha2VfcHJpbnRmIGRvIG5vdCBjYWxsXG4gICAgICAgaXRzZWxmIHJlY3Vyc2l2ZWx5IG9uIHRoZSBzdWItZm9ybWF0IGFzc29jaWF0ZWQgdG8gJXsuLi4lfS4gKilcbiAgICBhc3NlcnQgZmFsc2VcbiAgfCBGbHVzaCByZXN0IC0+XG4gICAgbWFrZV9wcmludGYgayAoQWNjX2ZsdXNoIGFjYykgcmVzdFxuXG4gIHwgU3RyaW5nX2xpdGVyYWwgKHN0ciwgcmVzdCkgLT5cbiAgICBtYWtlX3ByaW50ZiBrIChBY2Nfc3RyaW5nX2xpdGVyYWwgKGFjYywgc3RyKSkgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19jaGFyX2xpdGVyYWwgKGFjYywgY2hyKSkgcmVzdFxuXG4gIHwgRm9ybWF0X2FyZyAoXywgc3ViX2ZtdHR5LCByZXN0KSAtPlxuICAgIGxldCB0eSA9IHN0cmluZ19vZl9mbXR0eSBzdWJfZm10dHkgaW5cbiAgICAoZnVuIHN0ciAtPlxuICAgICAgaWdub3JlIHN0cjtcbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCB0eSkpIHJlc3QpXG4gIHwgRm9ybWF0X3N1YnN0IChfLCBmbXR0eSwgcmVzdCkgLT5cbiAgICBmdW4gKEZvcm1hdCAoZm10LCBfKSkgLT4gbWFrZV9wcmludGYgayBhY2NcbiAgICAgIChjb25jYXRfZm10IChyZWNhc3QgZm10IGZtdHR5KSByZXN0KVxuXG4gIHwgU2Nhbl9jaGFyX3NldCAoXywgXywgcmVzdCkgLT5cbiAgICBsZXQgbmV3X2FjYyA9IEFjY19pbnZhbGlkX2FyZyAoYWNjLCBcIlByaW50ZjogYmFkIGNvbnZlcnNpb24gJVtcIikgaW5cbiAgICBmdW4gXyAtPiBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IFNjYW5fZ2V0X2NvdW50ZXIgKF8sIHJlc3QpIC0+XG4gICAgKCogVGhpcyBjYXNlIHNob3VsZCBiZSByZWZ1c2VkIGZvciBQcmludGYuICopXG4gICAgKCogQWNjZXB0ZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICopXG4gICAgKCogSW50ZXJwcmV0ICVsLCAlbiBhbmQgJUwgYXMgJXUuICopXG4gICAgZnVuIG4gLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZvcm1hdF9pbnQgXCIldVwiIG4pIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICBmdW4gYyAtPlxuICAgICAgbGV0IG5ld19hY2MgPSBBY2NfZGF0YV9jaGFyIChhY2MsIGMpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIG5ld19hY2MgcmVzdFxuICB8IElnbm9yZWRfcGFyYW0gKGlnbiwgcmVzdCkgLT5cbiAgICBtYWtlX2lnbm9yZWRfcGFyYW0gayBhY2MgaWduIHJlc3RcblxuICB8IEZvcm1hdHRpbmdfbGl0IChmbXRpbmdfbGl0LCByZXN0KSAtPlxuICAgIG1ha2VfcHJpbnRmIGsgKEFjY19mb3JtYXR0aW5nX2xpdCAoYWNjLCBmbXRpbmdfbGl0KSkgcmVzdFxuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX3RhZyAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgbGV0IGsnIGthY2MgPVxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2Zvcm1hdHRpbmdfZ2VuIChhY2MsIEFjY19vcGVuX3RhZyBrYWNjKSkgcmVzdCBpblxuICAgIG1ha2VfcHJpbnRmIGsnIEVuZF9vZl9hY2MgZm10J1xuICB8IEZvcm1hdHRpbmdfZ2VuIChPcGVuX2JveCAoRm9ybWF0IChmbXQnLCBfKSksIHJlc3QpIC0+XG4gICAgbGV0IGsnIGthY2MgPVxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2Zvcm1hdHRpbmdfZ2VuIChhY2MsIEFjY19vcGVuX2JveCBrYWNjKSkgcmVzdCBpblxuICAgIG1ha2VfcHJpbnRmIGsnIEVuZF9vZl9hY2MgZm10J1xuXG4gIHwgRW5kX29mX2Zvcm1hdCAtPlxuICAgIGsgYWNjXG5cbigqIERlbGF5IHRoZSBlcnJvciAoSW52YWxpZF9hcmd1bWVudCBcIlByaW50ZjogYmFkIGNvbnZlcnNpb24gJV9cIikuICopXG4oKiBHZW5lcmF0ZSBmdW5jdGlvbnMgdG8gdGFrZSByZW1haW5pbmcgYXJndW1lbnRzIChhZnRlciB0aGUgXCIlX1wiKS4gKilcbmFuZCBtYWtlX2lnbm9yZWRfcGFyYW0gOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBpZ25vcmVkIC0+XG4gICAgKHgsIGIsIGMsIHksIGUsIGYpIGZtdCAtPiBhID1cbmZ1biBrIGFjYyBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9jaGFyICAgICAgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfY2FtbF9jaGFyICAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9jYW1sX3N0cmluZyBfICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfaW50IChfLCBfKSAgICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9uYXRpdmVpbnQgKF8sIF8pICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfaW50NjQgKF8sIF8pICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9ib29sIF8gICAgICAgICAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuICB8IElnbm9yZWRfZm9ybWF0X2FyZyBfICAgICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyBmbXR0eSBmbXRcbiAgfCBJZ25vcmVkX3JlYWRlciAgICAgICAgICAgICAgICAgIC0+IGFzc2VydCBmYWxzZVxuICB8IElnbm9yZWRfc2Nhbl9jaGFyX3NldCBfICAgICAgICAgLT4gbWFrZV9pbnZhbGlkX2FyZyBrIGFjYyBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgSWdub3JlZF9zY2FuX25leHRfY2hhciAgICAgICAgICAtPiBtYWtlX2ludmFsaWRfYXJnIGsgYWNjIGZtdFxuXG5cbigqIFNwZWNpYWwgY2FzZSBvZiBwcmludGYgXCIlXyhcIi4gKilcbmFuZCBtYWtlX2Zyb21fZm10dHkgOiB0eXBlIHggeSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCB5LCB4KSBmbXR0eSAtPlxuICAgICh4LCBiLCBjLCB5LCBlLCBmKSBmbXQgLT4gYSA9XG5mdW4gayBhY2MgZm10dHkgZm10IC0+IG1hdGNoIGZtdHR5IHdpdGhcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBTdHJpbmdfdHkgcmVzdCAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBJbnRfdHkgcmVzdCAgICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBJbnQzMl90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBOYXRpdmVpbnRfdHkgcmVzdCAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBJbnQ2NF90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBGbG9hdF90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBCb29sX3R5IHJlc3QgICAgICAgICAgICAtPiBmdW4gXyAtPiBtYWtlX2Zyb21fZm10dHkgayBhY2MgcmVzdCBmbXRcbiAgfCBBbHBoYV90eSByZXN0ICAgICAgICAgICAtPiBmdW4gXyBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IFRoZXRhX3R5IHJlc3QgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEFueV90eSByZXN0ICAgICAgICAgICAgIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IFJlYWRlcl90eSBfICAgICAgICAgICAgIC0+IGFzc2VydCBmYWxzZVxuICB8IElnbm9yZWRfcmVhZGVyX3R5IF8gICAgIC0+IGFzc2VydCBmYWxzZVxuICB8IEZvcm1hdF9hcmdfdHkgKF8sIHJlc3QpIC0+IGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyByZXN0IGZtdFxuICB8IEVuZF9vZl9mbXR0eSAgICAgICAgICAgIC0+IG1ha2VfaW52YWxpZF9hcmcgayBhY2MgZm10XG4gIHwgRm9ybWF0X3N1YnN0X3R5ICh0eTEsIHR5MiwgcmVzdCkgLT5cbiAgICBsZXQgdHkgPSB0cmFucyAoc3ltbSB0eTEpIHR5MiBpblxuICAgIGZ1biBfIC0+IG1ha2VfZnJvbV9mbXR0eSBrIGFjYyAoY29uY2F0X2ZtdHR5IHR5IHJlc3QpIGZtdFxuXG4oKiBJbnNlcnQgYW4gQWNjX2ludmFsaWRfYXJnIGluIHRoZSBhY2N1bXVsYXRvciBhbmQgY29udGludWUgdG8gZ2VuZXJhdGVcbiAgIGNsb3N1cmVzIHRvIGdldCB0aGUgcmVtYWluaW5nIGFyZ3VtZW50cy4gKilcbmFuZCBtYWtlX2ludmFsaWRfYXJnIDogdHlwZSBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gYSA9XG5mdW4gayBhY2MgZm10IC0+XG4gIG1ha2VfcHJpbnRmIGsgKEFjY19pbnZhbGlkX2FyZyAoYWNjLCBcIlByaW50ZjogYmFkIGNvbnZlcnNpb24gJV9cIikpIGZtdFxuXG4oKiBGaXggcGFkZGluZywgdGFrZSBpdCBhcyBhbiBleHRyYSBpbnRlZ2VyIGFyZ3VtZW50IGlmIG5lZWRlZC4gKilcbmFuZCBtYWtlX3BhZGRpbmcgOiB0eXBlIHggeiBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoeCwgeiAtPiBhKSBwYWRkaW5nIC0+ICh6IC0+IHN0cmluZykgLT4geCA9XG4gIGZ1biBrIGFjYyBmbXQgcGFkIHRyYW5zIC0+IG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IEFjY19kYXRhX3N0cmluZyAoYWNjLCB0cmFucyB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgd2lkdGgpIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZpeF9wYWRkaW5nIHBhZHR5IHdpZHRoICh0cmFucyB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgbmV3X2FjYyBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBuZXdfYWNjID0gQWNjX2RhdGFfc3RyaW5nIChhY2MsIGZpeF9wYWRkaW5nIHBhZHR5IHcgKHRyYW5zIHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayBuZXdfYWNjIGZtdFxuXG4oKiBGaXggcGFkZGluZyBhbmQgcHJlY2lzaW9uIGZvciBpbnQsIGludDMyLCBuYXRpdmVpbnQgb3IgaW50NjQuICopXG4oKiBUYWtlIG9uZSBvciB0d28gZXh0cmEgaW50ZWdlciBhcmd1bWVudHMgaWYgbmVlZGVkLiAqKVxuYW5kIG1ha2VfaW50X3BhZGRpbmdfcHJlY2lzaW9uIDogdHlwZSB4IHkgeiBhIGIgYyBkIGUgZiAuXG4gICAgKChiLCBjKSBhY2MgLT4gZikgLT4gKGIsIGMpIGFjYyAtPlxuICAgIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeiAtPiBhKSBwcmVjaXNpb24gLT4gKGludF9jb252IC0+IHogLT4gc3RyaW5nKSAtPlxuICAgIGludF9jb252IC0+IHggPVxuICBmdW4gayBhY2MgZm10IHBhZCBwcmVjIHRyYW5zIGljb252IC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSB0cmFucyBpY29udiB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IE5vX3BhZGRpbmcsIEFyZ19wcmVjaXNpb24gLT5cbiAgICBmdW4gcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKHRyYW5zIGljb252IHgpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChmaXhfaW50X3ByZWNpc2lvbiBwICh0cmFucyBpY29udiB4KSkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAodHJhbnMgaWNvbnYgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHcgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGZpeF9pbnRfcHJlY2lzaW9uIHAgKHRyYW5zIGljb252IHgpKSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHcgcCB4IC0+XG4gICAgICBsZXQgc3RyID0gZml4X3BhZGRpbmcgcGFkdHkgdyAoZml4X2ludF9wcmVjaXNpb24gcCAodHJhbnMgaWNvbnYgeCkpIGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG5cbigqIENvbnZlcnQgYSBmbG9hdCwgZml4IHBhZGRpbmcgYW5kIHByZWNpc2lvbiBpZiBuZWVkZWQuICopXG4oKiBUYWtlIHRoZSBmbG9hdCBhcmd1bWVudCBhbmQgb25lIG9yIHR3byBleHRyYSBpbnRlZ2VyIGFyZ3VtZW50cyBpZiBuZWVkZWQuICopXG5hbmQgbWFrZV9mbG9hdF9wYWRkaW5nX3ByZWNpc2lvbiA6IHR5cGUgeCB5IGEgYiBjIGQgZSBmIC5cbiAgICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gICAgKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAgICh4LCB5KSBwYWRkaW5nIC0+ICh5LCBmbG9hdCAtPiBhKSBwcmVjaXNpb24gLT4gZmxvYXRfY29udiAtPiB4ID1cbiAgZnVuIGsgYWNjIGZtdCBwYWQgcHJlYyBmY29udiAtPiBtYXRjaCBwYWQsIHByZWMgd2l0aFxuICB8IE5vX3BhZGRpbmcsIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiAoZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24gZmNvbnYpIHggaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBOb19wYWRkaW5nLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBmdW4geCAtPlxuICAgICAgbGV0IHN0ciA9IGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4IGluXG4gICAgICBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgc3RyKSkgZm10XG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biBwIHggLT5cbiAgICAgIGxldCBzdHIgPSBjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IExpdF9wYWRkaW5nIChwYWR0eSwgdyksIE5vX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiAoZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24gZmNvbnYpIHggaW5cbiAgICAgIGxldCBzdHInID0gZml4X3BhZGRpbmcgcGFkdHkgdyBzdHIgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHInKSkgZm10XG4gIHwgTGl0X3BhZGRpbmcgKHBhZHR5LCB3KSwgTGl0X3ByZWNpc2lvbiBwIC0+XG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBMaXRfcGFkZGluZyAocGFkdHksIHcpLCBBcmdfcHJlY2lzaW9uIC0+XG4gICAgZnVuIHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuICB8IEFyZ19wYWRkaW5nIHBhZHR5LCBOb19wcmVjaXNpb24gLT5cbiAgICBmdW4gdyB4IC0+XG4gICAgICBsZXQgc3RyID0gY29udmVydF9mbG9hdCBmY29udiAoZGVmYXVsdF9mbG9hdF9wcmVjaXNpb24gZmNvbnYpIHggaW5cbiAgICAgIGxldCBzdHInID0gZml4X3BhZGRpbmcgcGFkdHkgdyBzdHIgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHInKSkgZm10XG4gIHwgQXJnX3BhZGRpbmcgcGFkdHksIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGZ1biB3IHggLT5cbiAgICAgIGxldCBzdHIgPSBmaXhfcGFkZGluZyBwYWR0eSB3IChjb252ZXJ0X2Zsb2F0IGZjb252IHAgeCkgaW5cbiAgICAgIG1ha2VfcHJpbnRmIGsgKEFjY19kYXRhX3N0cmluZyAoYWNjLCBzdHIpKSBmbXRcbiAgfCBBcmdfcGFkZGluZyBwYWR0eSwgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGZ1biB3IHAgeCAtPlxuICAgICAgbGV0IHN0ciA9IGZpeF9wYWRkaW5nIHBhZHR5IHcgKGNvbnZlcnRfZmxvYXQgZmNvbnYgcCB4KSBpblxuICAgICAgbWFrZV9wcmludGYgayAoQWNjX2RhdGFfc3RyaW5nIChhY2MsIHN0cikpIGZtdFxuYW5kIG1ha2VfY3VzdG9tIDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgLlxuICAoKGIsIGMpIGFjYyAtPiBmKSAtPiAoYiwgYykgYWNjIC0+XG4gIChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgKGEsIHgsIHkpIGN1c3RvbV9hcml0eSAtPiB4IC0+IHkgPVxuICBmdW4gayBhY2MgcmVzdCBhcml0eSBmIC0+IG1hdGNoIGFyaXR5IHdpdGhcbiAgfCBDdXN0b21femVybyAtPiBtYWtlX3ByaW50ZiBrIChBY2NfZGF0YV9zdHJpbmcgKGFjYywgZikpIHJlc3RcbiAgfCBDdXN0b21fc3VjYyBhcml0eSAtPlxuICAgIGZ1biB4IC0+XG4gICAgICBtYWtlX2N1c3RvbSBrIGFjYyByZXN0IGFyaXR5IChmIHgpXG5cbmxldCBjb25zdCB4IF8gPSB4XG5cbmxldCByZWMgbWFrZV9pcHJpbnRmIDogdHlwZSBhIGIgYyBkIGUgZiBzdGF0ZS5cbiAgKHN0YXRlIC0+IGYpIC0+IHN0YXRlIC0+IChhLCBiLCBjLCBkLCBlLCBmKSBmbXQgLT4gYSA9XG4gIGZ1biBrIG8gZm10IC0+IG1hdGNoIGZtdCB3aXRoXG4gICAgfCBDaGFyIHJlc3QgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdClcbiAgICB8IENhbWxfY2hhciByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTdHJpbmcgKE5vX3BhZGRpbmcsIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTdHJpbmcgKExpdF9wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTdHJpbmcgKEFyZ19wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KSlcbiAgICB8IENhbWxfc3RyaW5nIChOb19wYWRkaW5nLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQ2FtbF9zdHJpbmcgKExpdF9wYWRkaW5nIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDYW1sX3N0cmluZyAoQXJnX3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgSW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBJbnQzMiAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgTmF0aXZlaW50IChfLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgICAgIGZuX29mX3BhZGRpbmdfcHJlY2lzaW9uIGsgbyByZXN0IHBhZCBwcmVjXG4gICAgfCBJbnQ2NCAoXywgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9wYWRkaW5nX3ByZWNpc2lvbiBrIG8gcmVzdCBwYWQgcHJlY1xuICAgIHwgRmxvYXQgKF8sIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICAgICAgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gayBvIHJlc3QgcGFkIHByZWNcbiAgICB8IEJvb2wgKE5vX3BhZGRpbmcsIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBCb29sIChMaXRfcGFkZGluZyBfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgQm9vbCAoQXJnX3BhZGRpbmcgXywgcmVzdCkgLT5cbiAgICAgICAgY29uc3QgKGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpKVxuICAgIHwgQWxwaGEgcmVzdCAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gcmVzdCkpXG4gICAgfCBUaGV0YSByZXN0IC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBDdXN0b20gKGFyaXR5LCBfLCByZXN0KSAtPlxuICAgICAgICBmbl9vZl9jdXN0b21fYXJpdHkgayBvIHJlc3QgYXJpdHlcbiAgICB8IFJlYWRlciBfIC0+XG4gICAgICAgICgqIFRoaXMgY2FzZSBpcyBpbXBvc3NpYmxlLCBieSB0eXBpbmcgb2YgZm9ybWF0cy4gIFNlZSB0aGVcbiAgICAgICAgICAgbm90ZSBpbiB0aGUgY29ycmVzcG9uZGluZyBjYXNlIGZvciBtYWtlX3ByaW50Zi4gKilcbiAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgfCBGbHVzaCByZXN0IC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgU3RyaW5nX2xpdGVyYWwgKF8sIHJlc3QpIC0+XG4gICAgICAgIG1ha2VfaXByaW50ZiBrIG8gcmVzdFxuICAgIHwgQ2hhcl9saXRlcmFsIChfLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIHJlc3RcbiAgICB8IEZvcm1hdF9hcmcgKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAtPlxuICAgICAgICBmdW4gKEZvcm1hdCAoZm10LCBfKSkgLT5cbiAgICAgICAgICBtYWtlX2lwcmludGYgayBvXG4gICAgICAgICAgICAoY29uY2F0X2ZtdCAocmVjYXN0IGZtdCBmbXR0eSkgcmVzdClcbiAgICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIHJlc3QpXG4gICAgfCBTY2FuX2dldF9jb3VudGVyIChfLCByZXN0KSAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgU2Nhbl9uZXh0X2NoYXIgcmVzdCAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyByZXN0KVxuICAgIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lnbm9yZWRfcGFyYW0gKGZ1biBfIC0+IGsgbykgKEVuZF9vZl9hY2MpIGlnbiByZXN0XG4gICAgfCBGb3JtYXR0aW5nX2xpdCAoXywgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIGsgbyByZXN0XG4gICAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgICAgICBtYWtlX2lwcmludGYgKGZ1biBrb2MgLT4gbWFrZV9pcHJpbnRmIGsga29jIHJlc3QpIG8gZm10J1xuICAgIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICAgICAgbWFrZV9pcHJpbnRmIChmdW4ga29jIC0+IG1ha2VfaXByaW50ZiBrIGtvYyByZXN0KSBvIGZtdCdcbiAgICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICAgICAgayBvXG5hbmQgZm5fb2ZfcGFkZGluZ19wcmVjaXNpb24gOlxuICB0eXBlIHggeSB6IGEgYiBjIGQgZSBmIHN0YXRlLlxuICAoc3RhdGUgLT4gZikgLT4gc3RhdGUgLT4gKGEsIGIsIGMsIGQsIGUsIGYpIGZtdCAtPlxuICAoeCwgeSkgcGFkZGluZyAtPiAoeSwgeiAtPiBhKSBwcmVjaXNpb24gLT4geCA9XG4gIGZ1biBrIG8gZm10IHBhZCBwcmVjIC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gICAgfCBOb19wYWRkaW5nICAgLCBOb19wcmVjaXNpb24gICAgLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTm9fcGFkZGluZyAgICwgTGl0X3ByZWNpc2lvbiBfIC0+XG4gICAgICAgIGNvbnN0IChtYWtlX2lwcmludGYgayBvIGZtdClcbiAgICB8IE5vX3BhZGRpbmcgICAsIEFyZ19wcmVjaXNpb24gICAtPlxuICAgICAgICBjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSlcbiAgICB8IExpdF9wYWRkaW5nIF8sIE5vX3ByZWNpc2lvbiAgICAtPlxuICAgICAgICBjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpXG4gICAgfCBMaXRfcGFkZGluZyBfLCBMaXRfcHJlY2lzaW9uIF8gLT5cbiAgICAgICAgY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KVxuICAgIHwgTGl0X3BhZGRpbmcgXywgQXJnX3ByZWNpc2lvbiAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgQXJnX3BhZGRpbmcgXywgTm9fcHJlY2lzaW9uICAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgQXJnX3BhZGRpbmcgXywgTGl0X3ByZWNpc2lvbiBfIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAobWFrZV9pcHJpbnRmIGsgbyBmbXQpKVxuICAgIHwgQXJnX3BhZGRpbmcgXywgQXJnX3ByZWNpc2lvbiAgIC0+XG4gICAgICAgIGNvbnN0IChjb25zdCAoY29uc3QgKG1ha2VfaXByaW50ZiBrIG8gZm10KSkpXG5hbmQgZm5fb2ZfY3VzdG9tX2FyaXR5IDogdHlwZSB4IHkgYSBiIGMgZCBlIGYgc3RhdGUuXG4gIChzdGF0ZSAtPiBmKSAtPlxuICBzdGF0ZSAtPiAoYSwgYiwgYywgZCwgZSwgZikgZm10IC0+IChhLCB4LCB5KSBjdXN0b21fYXJpdHkgLT4geSA9XG4gIGZ1biBrIG8gZm10IC0+IGZ1bmN0aW9uXG4gICAgfCBDdXN0b21femVybyAtPlxuICAgICAgICBtYWtlX2lwcmludGYgayBvIGZtdFxuICAgIHwgQ3VzdG9tX3N1Y2MgYXJpdHkgLT5cbiAgICAgICAgY29uc3QgKGZuX29mX2N1c3RvbV9hcml0eSBrIG8gZm10IGFyaXR5KVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBDb250aW51YXRpb25zIGZvciBtYWtlX3ByaW50ZiAqKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGFuIG91dHB1dF9zdHJlYW0uICopXG4oKiBVc2VkIGFzIGEgY29udGludWF0aW9uIG9mIG1ha2VfcHJpbnRmLiAqKVxubGV0IHJlYyBvdXRwdXRfYWNjIG8gYWNjID0gbWF0Y2ggYWNjIHdpdGhcbiAgfCBBY2NfZm9ybWF0dGluZ19saXQgKHAsIGZtdGluZ19saXQpIC0+XG4gICAgbGV0IHMgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nX2xpdCBpblxuICAgIG91dHB1dF9hY2MgbyBwOyBvdXRwdXRfc3RyaW5nIG8gcztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgbyBwOyBvdXRwdXRfc3RyaW5nIG8gXCJAe1wiOyBvdXRwdXRfYWNjIG8gYWNjJztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIG91dHB1dF9hY2MgbyBwOyBvdXRwdXRfc3RyaW5nIG8gXCJAW1wiOyBvdXRwdXRfYWNjIG8gYWNjJztcbiAgfCBBY2Nfc3RyaW5nX2xpdGVyYWwgKHAsIHMpXG4gIHwgQWNjX2RhdGFfc3RyaW5nIChwLCBzKSAgIC0+IG91dHB1dF9hY2MgbyBwOyBvdXRwdXRfc3RyaW5nIG8gc1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IG91dHB1dF9hY2MgbyBwOyBvdXRwdXRfY2hhciBvIGNcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gb3V0cHV0X2FjYyBvIHA7IGYgb1xuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBvdXRwdXRfYWNjIG8gcDsgZmx1c2ggb1xuICB8IEFjY19pbnZhbGlkX2FyZyAocCwgbXNnKSAtPiBvdXRwdXRfYWNjIG8gcDsgaW52YWxpZF9hcmcgbXNnO1xuICB8IEVuZF9vZl9hY2MgICAgICAgICAgICAgICAtPiAoKVxuXG4oKiBSZWN1cnNpdmVseSBvdXRwdXQgYW4gXCJhY2N1bXVsYXRvclwiIGNvbnRhaW5pbmcgYSByZXZlcnNlZCBsaXN0IG9mXG4gICBwcmludGluZyBlbnRpdGllcyAoc3RyaW5nLCBjaGFyLCBmbHVzLCAuLi4pIGluIGEgYnVmZmVyLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBtYWtlX3ByaW50Zi4gKilcbmxldCByZWMgYnVmcHV0X2FjYyBiIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmbXRpbmdfbGl0KSAtPlxuICAgIGxldCBzID0gc3RyaW5nX29mX2Zvcm1hdHRpbmdfbGl0IGZtdGluZ19saXQgaW5cbiAgICBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgXCJAe1wiOyBidWZwdXRfYWNjIGIgYWNjJztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX2JveCBhY2MnKSAtPlxuICAgIGJ1ZnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQFtcIjsgYnVmcHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChwLCBzKVxuICB8IEFjY19kYXRhX3N0cmluZyAocCwgcykgICAtPiBidWZwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBzXG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAocCwgYylcbiAgfCBBY2NfZGF0YV9jaGFyIChwLCBjKSAgICAgLT4gYnVmcHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfY2hhciBiIGNcbiAgfCBBY2NfZGVsYXkgKHAsIGYpICAgICAgICAgLT4gYnVmcHV0X2FjYyBiIHA7IGYgYlxuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBidWZwdXRfYWNjIGIgcDtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gYnVmcHV0X2FjYyBiIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhIGJ1ZmZlci4gKilcbigqIERpZmZlciBmcm9tIGJ1ZnB1dF9hY2MgYnkgdGhlIGludGVycHJldGF0aW9uIG9mICVhIGFuZCAldC4gKilcbigqIFVzZWQgYXMgYSBjb250aW51YXRpb24gb2YgbWFrZV9wcmludGYuICopXG5sZXQgcmVjIHN0cnB1dF9hY2MgYiBhY2MgPSBtYXRjaCBhY2Mgd2l0aFxuICB8IEFjY19mb3JtYXR0aW5nX2xpdCAocCwgZm10aW5nX2xpdCkgLT5cbiAgICBsZXQgcyA9IHN0cmluZ19vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgcztcbiAgfCBBY2NfZm9ybWF0dGluZ19nZW4gKHAsIEFjY19vcGVuX3RhZyBhY2MnKSAtPlxuICAgIHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIFwiQHtcIjsgc3RycHV0X2FjYyBiIGFjYyc7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfZ2VuIChwLCBBY2Nfb3Blbl9ib3ggYWNjJykgLT5cbiAgICBzdHJwdXRfYWNjIGIgcDsgQnVmZmVyLmFkZF9zdHJpbmcgYiBcIkBbXCI7IHN0cnB1dF9hY2MgYiBhY2MnO1xuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gc3RycHV0X2FjYyBiIHA7IEJ1ZmZlci5hZGRfc3RyaW5nIGIgc1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX2NoYXIgYiBjXG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IHN0cnB1dF9hY2MgYiBwOyBCdWZmZXIuYWRkX3N0cmluZyBiIChmICgpKVxuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBzdHJwdXRfYWNjIGIgcDtcbiAgfCBBY2NfaW52YWxpZF9hcmcgKHAsIG1zZykgLT4gc3RycHV0X2FjYyBiIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRXJyb3IgbWFuYWdlbWVudCAqKVxuXG4oKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIHByZXR0eS1wcmludGVkIGVycm9yIG1lc3NhZ2UuICopXG5sZXQgZmFpbHdpdGhfbWVzc2FnZSAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDI1NiBpblxuICBsZXQgayBhY2MgPSBzdHJwdXRfYWNjIGJ1ZiBhY2M7IGZhaWx3aXRoIChCdWZmZXIuY29udGVudHMgYnVmKSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0dGluZyB0b29scyAqKVxuXG4oKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGFuIG9wZW4gYmxvY2sgZGVzY3JpcHRpb24gKGluZGVudCwgYmxvY2tfdHlwZSkgKilcbmxldCBvcGVuX2JveF9vZl9zdHJpbmcgc3RyID1cbiAgaWYgc3RyID0gXCJcIiB0aGVuICgwLCBQcF9ib3gpIGVsc2VcbiAgICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzdHIgaW5cbiAgICBsZXQgaW52YWxpZF9ib3ggKCkgPSBmYWlsd2l0aF9tZXNzYWdlIFwiaW52YWxpZCBib3ggZGVzY3JpcHRpb24gJVNcIiBzdHIgaW5cbiAgICBsZXQgcmVjIHBhcnNlX3NwYWNlcyBpID1cbiAgICAgIGlmIGkgPSBsZW4gdGhlbiBpIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltpXSB3aXRoXG4gICAgICAgIHwgJyAnIHwgJ1xcdCcgLT4gcGFyc2Vfc3BhY2VzIChpICsgMSlcbiAgICAgICAgfCBfIC0+IGlcbiAgICBhbmQgcGFyc2VfbHdvcmQgaSBqID1cbiAgICAgIGlmIGogPSBsZW4gdGhlbiBqIGVsc2VcbiAgICAgICAgbWF0Y2ggc3RyLltqXSB3aXRoXG4gICAgICAgIHwgJ2EnIC4uICd6JyAtPiBwYXJzZV9sd29yZCBpIChqICsgMSlcbiAgICAgICAgfCBfIC0+IGpcbiAgICBhbmQgcGFyc2VfaW50IGkgaiA9XG4gICAgICBpZiBqID0gbGVuIHRoZW4gaiBlbHNlXG4gICAgICAgIG1hdGNoIHN0ci5bal0gd2l0aFxuICAgICAgICB8ICcwJyAuLiAnOScgfCAnLScgLT4gcGFyc2VfaW50IGkgKGogKyAxKVxuICAgICAgICB8IF8gLT4gaiBpblxuICAgIGxldCB3c3RhcnQgPSBwYXJzZV9zcGFjZXMgMCBpblxuICAgIGxldCB3ZW5kID0gcGFyc2VfbHdvcmQgd3N0YXJ0IHdzdGFydCBpblxuICAgIGxldCBib3hfbmFtZSA9IFN0cmluZy5zdWIgc3RyIHdzdGFydCAod2VuZCAtIHdzdGFydCkgaW5cbiAgICBsZXQgbnN0YXJ0ID0gcGFyc2Vfc3BhY2VzIHdlbmQgaW5cbiAgICBsZXQgbmVuZCA9IHBhcnNlX2ludCBuc3RhcnQgbnN0YXJ0IGluXG4gICAgbGV0IGluZGVudCA9XG4gICAgICBpZiBuc3RhcnQgPSBuZW5kIHRoZW4gMCBlbHNlXG4gICAgICAgIHRyeSBpbnRfb2Zfc3RyaW5nIChTdHJpbmcuc3ViIHN0ciBuc3RhcnQgKG5lbmQgLSBuc3RhcnQpKVxuICAgICAgICB3aXRoIEZhaWx1cmUgXyAtPiBpbnZhbGlkX2JveCAoKSBpblxuICAgIGxldCBleHBfZW5kID0gcGFyc2Vfc3BhY2VzIG5lbmQgaW5cbiAgICBpZiBleHBfZW5kIDw+IGxlbiB0aGVuIGludmFsaWRfYm94ICgpO1xuICAgIGxldCBib3hfdHlwZSA9IG1hdGNoIGJveF9uYW1lIHdpdGhcbiAgICAgIHwgXCJcIiB8IFwiYlwiIC0+IFBwX2JveFxuICAgICAgfCBcImhcIiAgICAgIC0+IFBwX2hib3hcbiAgICAgIHwgXCJ2XCIgICAgICAtPiBQcF92Ym94XG4gICAgICB8IFwiaHZcIiAgICAgLT4gUHBfaHZib3hcbiAgICAgIHwgXCJob3ZcIiAgICAtPiBQcF9ob3Zib3hcbiAgICAgIHwgXyAgICAgICAgLT4gaW52YWxpZF9ib3ggKCkgaW5cbiAgICAoaW5kZW50LCBib3hfdHlwZSlcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBQYXJzaW5nIHRvb2xzICopXG5cbigqIENyZWF0ZSBhIHBhZGRpbmdfZm10X2ViYiBmcm9tIGEgcGFkZGluZyBhbmQgYSBmb3JtYXQuICopXG4oKiBDb3B5IHRoZSBwYWRkaW5nIHRvIGRpc2pvaW4gdGhlIHR5cGUgcGFyYW1ldGVycyBvZiBhcmd1bWVudCBhbmQgcmVzdWx0LiAqKVxubGV0IG1ha2VfcGFkZGluZ19mbXRfZWJiIDogdHlwZSB4IHkgLlxuICAgICh4LCB5KSBwYWRkaW5nIC0+IChfLCBfLCBfLCBfLCBfLCBfKSBmbXQgLT5cbiAgICAgIChfLCBfLCBfLCBfLCBfKSBwYWRkaW5nX2ZtdF9lYmIgPVxuZnVuIHBhZCBmbXQgLT4gbWF0Y2ggcGFkIHdpdGhcbiAgfCBOb19wYWRkaW5nICAgICAgICAgLT4gUGFkZGluZ19mbXRfRUJCIChOb19wYWRkaW5nLCBmbXQpXG4gIHwgTGl0X3BhZGRpbmcgKHMsIHcpIC0+IFBhZGRpbmdfZm10X0VCQiAoTGl0X3BhZGRpbmcgKHMsIHcpLCBmbXQpXG4gIHwgQXJnX3BhZGRpbmcgcyAgICAgIC0+IFBhZGRpbmdfZm10X0VCQiAoQXJnX3BhZGRpbmcgcywgZm10KVxuXG4oKiBDcmVhdGUgYSBwcmVjaXNpb25fZm10X2ViYiBmcm9tIGEgcHJlY2lzaW9uIGFuZCBhIGZvcm1hdC4gKilcbigqIENvcHkgdGhlIHByZWNpc2lvbiB0byBkaXNqb2luIHRoZSB0eXBlIHBhcmFtZXRlcnMgb2YgYXJndW1lbnQgYW5kIHJlc3VsdC4gKilcbmxldCBtYWtlX3ByZWNpc2lvbl9mbXRfZWJiIDogdHlwZSB4IHkgLlxuICAgICh4LCB5KSBwcmVjaXNpb24gLT4gKF8sIF8sIF8sIF8sIF8sIF8pIGZtdCAtPlxuICAgICAgKF8sIF8sIF8sIF8sIF8pIHByZWNpc2lvbl9mbXRfZWJiID1cbmZ1biBwcmVjIGZtdCAtPiBtYXRjaCBwcmVjIHdpdGhcbiAgfCBOb19wcmVjaXNpb24gICAgLT4gUHJlY2lzaW9uX2ZtdF9FQkIgKE5vX3ByZWNpc2lvbiwgZm10KVxuICB8IExpdF9wcmVjaXNpb24gcCAtPiBQcmVjaXNpb25fZm10X0VCQiAoTGl0X3ByZWNpc2lvbiBwLCBmbXQpXG4gIHwgQXJnX3ByZWNpc2lvbiAgIC0+IFByZWNpc2lvbl9mbXRfRUJCIChBcmdfcHJlY2lzaW9uLCBmbXQpXG5cbigqIENyZWF0ZSBhIHBhZHByZWNfZm10X2ViYiBmcm9tIGEgcGFkZGluZywgYSBwcmVjaXNpb24gYW5kIGEgZm9ybWF0LiAqKVxuKCogQ29weSB0aGUgcGFkZGluZyBhbmQgdGhlIHByZWNpc2lvbiB0byBkaXNqb2luIHR5cGUgcGFyYW1ldGVycyBvZiBhcmd1bWVudHNcbiAgIGFuZCByZXN1bHQuICopXG5sZXQgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgOiB0eXBlIHggeSB6IHQgLlxuICAgICh4LCB5KSBwYWRkaW5nIC0+ICh6LCB0KSBwcmVjaXNpb24gLT5cbiAgICAoXywgXywgXywgXywgXywgXykgZm10IC0+XG4gICAgKF8sIF8sIF8sIF8sIF8pIHBhZHByZWNfZm10X2ViYiA9XG5mdW4gcGFkIHByZWMgZm10IC0+XG4gIGxldCBQcmVjaXNpb25fZm10X0VCQiAocHJlYywgZm10JykgPSBtYWtlX3ByZWNpc2lvbl9mbXRfZWJiIHByZWMgZm10IGluXG4gIG1hdGNoIHBhZCB3aXRoXG4gIHwgTm9fcGFkZGluZyAgICAgICAgIC0+IFBhZHByZWNfZm10X0VCQiAoTm9fcGFkZGluZywgcHJlYywgZm10JylcbiAgfCBMaXRfcGFkZGluZyAocywgdykgLT4gUGFkcHJlY19mbXRfRUJCIChMaXRfcGFkZGluZyAocywgdyksIHByZWMsIGZtdCcpXG4gIHwgQXJnX3BhZGRpbmcgcyAgICAgIC0+IFBhZHByZWNfZm10X0VCQiAoQXJnX3BhZGRpbmcgcywgcHJlYywgZm10JylcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogRm9ybWF0IHBhcnNpbmcgKilcblxuKCogUGFyc2UgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgZm9ybWF0IGFuZCBjcmVhdGUgYSBmbXRfZWJiLiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIGluIGNhc2Ugb2YgaW52YWxpZCBmb3JtYXQuICopXG5sZXQgZm10X2ViYl9vZl9zdHJpbmcgP2xlZ2FjeV9iZWhhdmlvciBzdHIgPVxuICAoKiBQYXJhbWV0ZXJzIG5hbWluZyBjb252ZW50aW9uOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBsaXRfc3RhcnQ6IHN0YXJ0IG9mIHRoZSBsaXRlcmFsIHNlcXVlbmNlLiAgICAgICAgICAgICAgICAgICAgKilcbiAgKCogICAtIHN0cl9pbmQ6IGN1cnJlbnQgaW5kZXggaW4gdGhlIHN0cmluZy4gICAgICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gZW5kX2luZDogZW5kIG9mIHRoZSBjdXJyZW50IChzdWItKWZvcm1hdC4gICAgICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBwY3RfaW5kOiBpbmRleCBvZiB0aGUgJyUnIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICAgICAgKilcbiAgKCogICAtIHplcm86ICBpcyB0aGUgJzAnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gbWludXM6IGlzIHRoZSAnLScgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBwbHVzOiAgaXMgdGhlICcrJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIGhhc2g6ICBpcyB0aGUgJyMnIGZsYWcgZGVmaW5lZCBpbiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAqKVxuICAoKiAgIC0gc3BhY2U6IGlzIHRoZSAnICcgZmxhZyBkZWZpbmVkIGluIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICopXG4gICgqICAgLSBpZ246ICAgaXMgdGhlICdfJyBmbGFnIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgbWljcm8tZm9ybWF0LiAgKilcbiAgKCogICAtIHBhZDogcGFkZGluZyBvZiB0aGUgY3VycmVudCBtaWNyby1mb3JtYXQuICAgICAgICAgICAgICAgICAgICAqKVxuICAoKiAgIC0gcHJlYzogcHJlY2lzaW9uIG9mIHRoZSBjdXJyZW50IG1pY3JvLWZvcm1hdC4gICAgICAgICAgICAgICAgICopXG4gICgqICAgLSBzeW1iOiBjaGFyIHJlcHJlc2VudGluZyB0aGUgY29udmVyc2lvbiAoJ2MnLCAncycsICdkJywgLi4uKS4gKilcbiAgKCogICAtIGNoYXJfc2V0OiBzZXQgb2YgY2hhcmFjdGVycyBhcyBiaXRtYXAgKHNlZSBzY2FuZiAlWy4uLl0pLiAgICAqKVxuXG4gIGxldCBsZWdhY3lfYmVoYXZpb3IgPSBtYXRjaCBsZWdhY3lfYmVoYXZpb3Igd2l0aFxuICAgIHwgU29tZSBmbGFnIC0+IGZsYWdcbiAgICB8IE5vbmUgLT4gdHJ1ZVxuICAoKiAgV2hlbiB0aGlzIGZsYWcgaXMgZW5hYmxlZCwgdGhlIGZvcm1hdCBwYXJzZXIgdHJpZXMgdG8gYmVoYXZlIGFzXG4gICAgICB0aGUgPDQuMDIgaW1wbGVtZW50YXRpb25zLCBpbiBwYXJ0aWN1bGFyIGl0IGlnbm9yZXMgbW9zdCBiZW5pbmVcbiAgICAgIG5vbnNlbnNpY2FsIGZvcm1hdC4gV2hlbiB0aGUgZmxhZyBpcyBkaXNhYmxlZCwgaXQgd2lsbCByZWplY3QgYW55XG4gICAgICBmb3JtYXQgdGhhdCBpcyBub3QgYWNjZXB0ZWQgYnkgdGhlIHNwZWNpZmljYXRpb24uXG5cbiAgICAgIEEgdHlwaWNhbCBleGFtcGxlIHdvdWxkIGJlIFwiJSsgZFwiOiBzcGVjaWZ5aW5nIGJvdGggJysnIChpZiB0aGVcbiAgICAgIG51bWJlciBpcyBwb3NpdGl2ZSwgcGFkIHdpdGggYSAnKycgdG8gZ2V0IHRoZSBzYW1lIHdpZHRoIGFzXG4gICAgICBuZWdhdGl2ZSBudW1iZXJzKSBhbmQgJyAnIChpZiB0aGUgbnVtYmVyIGlzIHBvc2l0aXZlLCBwYWQgd2l0aFxuICAgICAgYSBzcGFjZSkgZG9lcyBub3QgbWFrZSBzZW5zZSwgYnV0IHRoZSBsZWdhY3kgKDwgNC4wMilcbiAgICAgIGltcGxlbWVudGF0aW9uIHdhcyBoYXBweSB0byBqdXN0IGlnbm9yZSB0aGUgc3BhY2UuXG4gICopXG4gIGluXG5cbiAgKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYSBmcmllbmRseSBlcnJvciBtZXNzYWdlLiAqKVxuICBsZXQgaW52YWxpZF9mb3JtYXRfbWVzc2FnZSBzdHJfaW5kIG1zZyA9XG4gICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgJXNcIlxuICAgICAgc3RyIHN0cl9pbmQgbXNnXG4gIGluXG5cbiAgKCogVXNlZCB3aGVuIHRoZSBlbmQgb2YgdGhlIGZvcm1hdCAob3IgdGhlIGN1cnJlbnQgc3ViLWZvcm1hdCkgd2FzIGVuY291bnRlcmVkXG4gICAgICB1bmV4cGVjdGVkbHkuICopXG4gIGxldCB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZCA9XG4gICAgaW52YWxpZF9mb3JtYXRfbWVzc2FnZSBlbmRfaW5kXG4gICAgICBcInVuZXhwZWN0ZWQgZW5kIG9mIGZvcm1hdFwiXG4gIGluXG5cbiAgKCogVXNlZCBmb3IgJTBjOiBubyBvdGhlciB3aWR0aHMgYXJlIGltcGxlbWVudGVkICopXG4gIGxldCBpbnZhbGlkX25vbm51bGxfY2hhcl93aWR0aCBzdHJfaW5kID1cbiAgICBpbnZhbGlkX2Zvcm1hdF9tZXNzYWdlIHN0cl9pbmRcbiAgICAgIFwibm9uLXplcm8gd2lkdGhzIGFyZSB1bnN1cHBvcnRlZCBmb3IgJWMgY29udmVyc2lvbnNcIlxuICBpblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UgYWJvdXQgYW4gb3B0aW9uIGRlcGVuZGVuY3lcbiAgICAgcHJvYmxlbS4gKilcbiAgbGV0IGludmFsaWRfZm9ybWF0X3dpdGhvdXQgc3RyX2luZCBjIHMgPVxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsICclYycgd2l0aG91dCAlc1wiXG4gICAgICBzdHIgc3RyX2luZCBjIHNcbiAgaW5cblxuICAoKiBSYWlzZSBbRmFpbHVyZV0gd2l0aCBhIGZyaWVuZGx5IGVycm9yIG1lc3NhZ2UgYWJvdXQgYW4gdW5leHBlY3RlZFxuICAgICBjaGFyYWN0ZXIuICopXG4gIGxldCBleHBlY3RlZF9jaGFyYWN0ZXIgc3RyX2luZCBleHBlY3RlZCByZWFkID1cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsICVzIGV4cGVjdGVkLCByZWFkICVDXCJcbiAgICAgIHN0ciBzdHJfaW5kIGV4cGVjdGVkIHJlYWRcbiAgaW5cblxuICAoKiBQYXJzZSB0aGUgc3RyaW5nIGZyb20gYmVnX2luZCAoaW5jbHVkZWQpIHRvIGVuZF9pbmQgKGV4Y2x1ZGVkKS4gKilcbiAgbGV0IHJlYyBwYXJzZSA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBiZWdfaW5kIGVuZF9pbmQgLT4gcGFyc2VfbGl0ZXJhbCBiZWdfaW5kIGJlZ19pbmQgZW5kX2luZFxuXG4gICgqIFJlYWQgbGl0ZXJhbCBjaGFyYWN0ZXJzIHVwIHRvICclJyBvciAnQCcgc3BlY2lhbCBjaGFyYWN0ZXJzLiAqKVxuICBhbmQgcGFyc2VfbGl0ZXJhbCA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gbGl0X3N0YXJ0IHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gYWRkX2xpdGVyYWwgbGl0X3N0YXJ0IHN0cl9pbmQgRW5kX29mX2Zvcm1hdCBlbHNlXG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJyUnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2VfZm9ybWF0IHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgICBhZGRfbGl0ZXJhbCBsaXRfc3RhcnQgc3RyX2luZCBmbXRfcmVzdFxuICAgICAgfCAnQCcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZV9hZnRlcl9hdCAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgYWRkX2xpdGVyYWwgbGl0X3N0YXJ0IHN0cl9pbmQgZm10X3Jlc3RcbiAgICAgIHwgXyAtPlxuICAgICAgICBwYXJzZV9saXRlcmFsIGxpdF9zdGFydCAoc3RyX2luZCArIDEpIGVuZF9pbmRcblxuICAoKiBQYXJzZSBhIGZvcm1hdCBhZnRlciAnJScgKilcbiAgYW5kIHBhcnNlX2Zvcm1hdCA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIGVuZF9pbmQgLT4gcGFyc2VfaWduIHBjdF9pbmQgKHBjdF9pbmQgKyAxKSBlbmRfaW5kXG5cbiAgYW5kIHBhcnNlX2lnbiA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgLT5cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXycgLT4gcGFyc2VfZmxhZ3MgcGN0X2luZCAoc3RyX2luZCsxKSBlbmRfaW5kIHRydWVcbiAgICAgIHwgXyAtPiBwYXJzZV9mbGFncyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBmYWxzZVxuXG4gIGFuZCBwYXJzZV9mbGFncyA6IHR5cGUgZSBmIC4gaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiAoXywgXywgZSwgZikgZm10X2ViYlxuICA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBpZ24gLT5cbiAgICBsZXQgemVybyA9IHJlZiBmYWxzZSBhbmQgbWludXMgPSByZWYgZmFsc2VcbiAgICBhbmQgcGx1cyA9IHJlZiBmYWxzZSBhbmQgc3BhY2UgPSByZWYgZmFsc2VcbiAgICBhbmQgaGFzaCA9IHJlZiBmYWxzZSBpblxuICAgIGxldCBzZXRfZmxhZyBzdHJfaW5kIGZsYWcgPVxuICAgICAgKCogaW4gbGVnYWN5IG1vZGUsIGR1cGxpY2F0ZSBmbGFncyBhcmUgYWNjZXB0ZWQgKilcbiAgICAgIGlmICFmbGFnICYmIG5vdCBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgZHVwbGljYXRlIGZsYWcgJUNcIlxuICAgICAgICAgIHN0ciBzdHJfaW5kIHN0ci5bc3RyX2luZF07XG4gICAgICBmbGFnIDo9IHRydWU7XG4gICAgaW5cbiAgICBsZXQgcmVjIHJlYWRfZmxhZ3Mgc3RyX2luZCA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICcwJyAtPiBzZXRfZmxhZyBzdHJfaW5kIHplcm87ICByZWFkX2ZsYWdzIChzdHJfaW5kICsgMSlcbiAgICAgIHwgJy0nIC0+IHNldF9mbGFnIHN0cl9pbmQgbWludXM7IHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnKycgLT4gc2V0X2ZsYWcgc3RyX2luZCBwbHVzOyAgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8ICcjJyAtPiBzZXRfZmxhZyBzdHJfaW5kIGhhc2g7IHJlYWRfZmxhZ3MgKHN0cl9pbmQgKyAxKVxuICAgICAgfCAnICcgLT4gc2V0X2ZsYWcgc3RyX2luZCBzcGFjZTsgcmVhZF9mbGFncyAoc3RyX2luZCArIDEpXG4gICAgICB8IF8gLT5cbiAgICAgICAgcGFyc2VfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZFxuICAgICAgICAgICF6ZXJvICFtaW51cyAhcGx1cyAhaGFzaCAhc3BhY2UgaWduXG4gICAgICBlbmRcbiAgICBpblxuICAgIHJlYWRfZmxhZ3Mgc3RyX2luZFxuXG4gICgqIFRyeSB0byByZWFkIGEgZGlnaXRhbCBvciBhICcqJyBwYWRkaW5nLiAqKVxuICBhbmQgcGFyc2VfcGFkZGluZyA6IHR5cGUgZSBmIC5cbiAgICAgIGludCAtPiBpbnQgLT4gaW50IC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+XG4gICAgICAgIChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIHplcm8gbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnbiAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgbGV0IHBhZHR5ID0gbWF0Y2ggemVybywgbWludXMgd2l0aFxuICAgICAgfCBmYWxzZSwgZmFsc2UgLT4gUmlnaHRcbiAgICAgIHwgZmFsc2UsIHRydWUgIC0+IExlZnRcbiAgICAgIHwgIHRydWUsIGZhbHNlIC0+IFplcm9zXG4gICAgICB8ICB0cnVlLCB0cnVlICAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBMZWZ0XG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICctJyBcIjBcIiBpblxuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJzAnIC4uICc5JyAtPlxuICAgICAgbGV0IG5ld19pbmQsIHdpZHRoID0gcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIDAgaW5cbiAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCBuZXdfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAoTGl0X3BhZGRpbmcgKHBhZHR5LCB3aWR0aCkpXG4gICAgfCAnKicgLT5cbiAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCAoc3RyX2luZCArIDEpIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlXG4gICAgICAgIGlnbiAoQXJnX3BhZGRpbmcgcGFkdHkpXG4gICAgfCBfIC0+XG4gICAgICBiZWdpbiBtYXRjaCBwYWR0eSB3aXRoXG4gICAgICB8IExlZnQgIC0+XG4gICAgICAgIGlmIG5vdCBsZWdhY3lfYmVoYXZpb3IgdGhlblxuICAgICAgICAgIGludmFsaWRfZm9ybWF0X3dpdGhvdXQgKHN0cl9pbmQgLSAxKSAnLScgXCJwYWRkaW5nXCI7XG4gICAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIE5vX3BhZGRpbmdcbiAgICAgIHwgWmVyb3MgLT5cbiAgICAgICAgICgqIGEgJzAnIHBhZGRpbmcgaW5kaWNhdGlvbiBub3QgZm9sbG93ZWQgYnkgYW55dGhpbmcgc2hvdWxkXG4gICAgICAgICAgIGJlIGludGVycHJldGVkIGFzIGEgUmlnaHQgcGFkZGluZyBvZiB3aWR0aCAwLiBUaGlzIGlzIHVzZWRcbiAgICAgICAgICAgYnkgc2Nhbm5pbmcgY29udmVyc2lvbnMgJTBzIGFuZCAlMGMgKilcbiAgICAgICAgcGFyc2VfYWZ0ZXJfcGFkZGluZyBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgKExpdF9wYWRkaW5nIChSaWdodCwgMCkpXG4gICAgICB8IFJpZ2h0IC0+XG4gICAgICAgIHBhcnNlX2FmdGVyX3BhZGRpbmcgcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgbWludXMgcGx1cyBoYXNoIHNwYWNlIGlnblxuICAgICAgICAgIE5vX3BhZGRpbmdcbiAgICAgIGVuZFxuXG4gICgqIElzIHByZWNpc2lvbiBkZWZpbmVkPyAqKVxuICBhbmQgcGFyc2VfYWZ0ZXJfcGFkZGluZyA6IHR5cGUgeCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+XG4gICAgICAgICh4LCBfKSBwYWRkaW5nIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICB8ICcuJyAtPlxuICAgICAgcGFyc2VfcHJlY2lzaW9uIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ25cbiAgICAgICAgcGFkXG4gICAgfCBzeW1iIC0+XG4gICAgICBwYXJzZV9jb252ZXJzaW9uIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkXG4gICAgICAgIE5vX3ByZWNpc2lvbiBwYWQgc3ltYlxuXG4gICgqIFJlYWQgdGhlIGRpZ2l0YWwgb3IgJyonIHByZWNpc2lvbi4gKilcbiAgYW5kIHBhcnNlX3ByZWNpc2lvbiA6IHR5cGUgeCBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+XG4gICAgICAgICh4LCBfKSBwYWRkaW5nIC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHBjdF9pbmQgc3RyX2luZCBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBsZXQgcGFyc2VfbGl0ZXJhbCBtaW51cyBzdHJfaW5kID1cbiAgICAgIGxldCBuZXdfaW5kLCBwcmVjID0gcGFyc2VfcG9zaXRpdmUgc3RyX2luZCBlbmRfaW5kIDAgaW5cbiAgICAgIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiBwY3RfaW5kIG5ld19pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgIHBhZCAoTGl0X3ByZWNpc2lvbiBwcmVjKSBpblxuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJzAnIC4uICc5JyAtPiBwYXJzZV9saXRlcmFsIG1pbnVzIHN0cl9pbmRcbiAgICB8ICgnKycgfCAnLScpIGFzIHN5bWIgd2hlbiBsZWdhY3lfYmVoYXZpb3IgLT5cbiAgICAgICgqIExlZ2FjeSBtb2RlIHdvdWxkIGFjY2VwdCBhbmQgaWdub3JlICcrJyBvciAnLScgYmVmb3JlIHRoZVxuICAgICAgICAgaW50ZWdlciBkZXNjcmliaW5nIHRoZSBkZXNpcmVkIHByZWNpc2lvbjsgbm90ZSB0aGF0IHRoaXNcbiAgICAgICAgIGNhbm5vdCBoYXBwZW4gZm9yIHBhZGRpbmcgd2lkdGgsIGFzICcrJyBhbmQgJy0nIGFscmVhZHkgaGF2ZVxuICAgICAgICAgYSBzZW1hbnRpY3MgdGhlcmUuXG5cbiAgICAgICAgIFRoYXQgc2FpZCwgdGhlIGlkZWEgKHN1cHBvcnRlZCBieSB0aGlzIHR3ZWFrKSB0aGF0IHdpZHRoIGFuZFxuICAgICAgICAgcHJlY2lzaW9uIGxpdGVyYWxzIGFyZSBcImludGVnZXIgbGl0ZXJhbHNcIiBpbiB0aGUgT0NhbWwgc2Vuc2UgaXNcbiAgICAgICAgIHN0aWxsIGJsYXRhbnRseSB3cm9uZywgYXMgMTIzXzQ1NiBvciAweEZGIGFyZSByZWplY3RlZC4gKilcbiAgICAgIHBhcnNlX2xpdGVyYWwgKG1pbnVzIHx8IHN5bWIgPSAnLScpIChzdHJfaW5kICsgMSlcbiAgICB8ICcqJyAtPlxuICAgICAgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIG1pbnVzIHBsdXMgaGFzaCBzcGFjZVxuICAgICAgICBpZ24gcGFkIEFyZ19wcmVjaXNpb25cbiAgICB8IF8gLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgICgqIG5vdGUgdGhhdCBsZWdhY3kgaW1wbGVtZW50YXRpb24gZGlkIG5vdCBpZ25vcmUgJy4nIHdpdGhvdXRcbiAgICAgICAgICAgYSBudW1iZXIgKGFzIGl0IGRvZXMgZm9yIHBhZGRpbmcgaW5kaWNhdGlvbnMpLCBidXRcbiAgICAgICAgICAgaW50ZXJwcmV0cyBpdCBhcyAnLjAnICopXG4gICAgICAgIHBhcnNlX2FmdGVyX3ByZWNpc2lvbiBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduXG4gICAgICAgICAgcGFkIChMaXRfcHJlY2lzaW9uIDApXG4gICAgICBlbHNlXG4gICAgICAgIGludmFsaWRfZm9ybWF0X3dpdGhvdXQgKHN0cl9pbmQgLSAxKSAnLicgXCJwcmVjaXNpb25cIlxuXG4gICgqIFRyeSB0byByZWFkIHRoZSBjb252ZXJzaW9uLiAqKVxuICBhbmQgcGFyc2VfYWZ0ZXJfcHJlY2lzaW9uIDogdHlwZSB4IHkgeiB0IGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IGludCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT5cbiAgICAgICAgKHgsIHkpIHBhZGRpbmcgLT4gKHosIHQpIHByZWNpc2lvbiAtPiAoXywgXywgZSwgZikgZm10X2ViYiA9XG4gIGZ1biBwY3RfaW5kIHN0cl9pbmQgZW5kX2luZCBtaW51cyBwbHVzIGhhc2ggc3BhY2UgaWduIHBhZCBwcmVjIC0+XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBsZXQgcGFyc2VfY29udiAodHlwZSB1KSAodHlwZSB2KSAocGFkcHJlYyA6ICh1LCB2KSBwYWRkaW5nKSA9XG4gICAgICBwYXJzZV9jb252ZXJzaW9uIHBjdF9pbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIHBsdXMgaGFzaCBzcGFjZSBpZ24gcGFkXG4gICAgICAgIHByZWMgcGFkcHJlYyBzdHIuW3N0cl9pbmRdIGluXG4gICAgKCogaW4gbGVnYWN5IG1vZGUsIHNvbWUgZm9ybWF0cyAoJXMgYW5kICVTKSBhY2NlcHQgYSB3ZWlyZCBtaXggb2ZcbiAgICAgICBwYWRkaW5nIGFuZCBwcmVjaXNpb24sIHdoaWNoIGlzIG1lcmdlZCBhcyBhIHNpbmdsZSBwYWRkaW5nXG4gICAgICAgaW5mb3JtYXRpb24uIEZvciBleGFtcGxlLCBpbiAlLjEwcyB0aGUgcHJlY2lzaW9uIGlzIGltcGxpY2l0bHlcbiAgICAgICB1bmRlcnN0b29kIGFzIHBhZGRpbmcgJTEwcywgYnV0IHRoZSBsZWZ0LXBhZGRpbmcgY29tcG9uZW50IG1heVxuICAgICAgIGJlIHNwZWNpZmllZCBlaXRoZXIgYXMgYSBsZWZ0IHBhZGRpbmcgb3IgYSBuZWdhdGl2ZSBwcmVjaXNpb246XG4gICAgICAgJS0uM3MgYW5kICUuLTNzIGFyZSBlcXVpdmFsZW50IHRvICUtM3MgKilcbiAgICBtYXRjaCBwYWQgd2l0aFxuICAgIHwgTm9fcGFkZGluZyAtPiAoXG4gICAgICBtYXRjaCBtaW51cywgcHJlYyB3aXRoXG4gICAgICAgIHwgXywgTm9fcHJlY2lzaW9uIC0+IHBhcnNlX2NvbnYgTm9fcGFkZGluZ1xuICAgICAgICB8IGZhbHNlLCBMaXRfcHJlY2lzaW9uIG4gLT4gcGFyc2VfY29udiAoTGl0X3BhZGRpbmcgKFJpZ2h0LCBuKSlcbiAgICAgICAgfCB0cnVlLCBMaXRfcHJlY2lzaW9uIG4gLT4gcGFyc2VfY29udiAoTGl0X3BhZGRpbmcgKExlZnQsIG4pKVxuICAgICAgICB8IGZhbHNlLCBBcmdfcHJlY2lzaW9uIC0+IHBhcnNlX2NvbnYgKEFyZ19wYWRkaW5nIFJpZ2h0KVxuICAgICAgICB8IHRydWUsIEFyZ19wcmVjaXNpb24gLT4gcGFyc2VfY29udiAoQXJnX3BhZGRpbmcgTGVmdClcbiAgICApXG4gICAgfCBwYWQgLT4gcGFyc2VfY29udiBwYWRcblxuICAoKiBDYXNlIGFuYWx5c2lzIG9uIGNvbnZlcnNpb24uICopXG4gIGFuZCBwYXJzZV9jb252ZXJzaW9uIDogdHlwZSB4IHkgeiB0IHUgdiBlIGYgLlxuICAgICAgaW50IC0+IGludCAtPiBpbnQgLT4gYm9vbCAtPiBib29sIC0+IGJvb2wgLT4gYm9vbCAtPiAoeCwgeSkgcGFkZGluZyAtPlxuICAgICAgICAoeiwgdCkgcHJlY2lzaW9uIC0+ICh1LCB2KSBwYWRkaW5nIC0+IGNoYXIgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gcGN0X2luZCBzdHJfaW5kIGVuZF9pbmQgcGx1cyBoYXNoIHNwYWNlIGlnbiBwYWQgcHJlYyBwYWRwcmVjIHN5bWIgLT5cbiAgICAoKiBGbGFncyB1c2VkIHRvIGNoZWNrIG9wdGlvbiB1c2FnZXMvY29tcGF0aWJpbGl0aWVzLiAqKVxuICAgIGxldCBwbHVzX3VzZWQgID0gcmVmIGZhbHNlIGFuZCBoYXNoX3VzZWQgPSByZWYgZmFsc2VcbiAgICBhbmQgc3BhY2VfdXNlZCA9IHJlZiBmYWxzZSBhbmQgaWduX3VzZWQgICA9IHJlZiBmYWxzZVxuICAgIGFuZCBwYWRfdXNlZCAgID0gcmVmIGZhbHNlIGFuZCBwcmVjX3VzZWQgID0gcmVmIGZhbHNlIGluXG5cbiAgICAoKiBBY2Nlc3MgdG8gb3B0aW9ucywgdXBkYXRlIGZsYWdzLiAqKVxuICAgIGxldCBnZXRfcGx1cyAgICAoKSA9IHBsdXNfdXNlZCAgOj0gdHJ1ZTsgcGx1c1xuICAgIGFuZCBnZXRfaGFzaCAgICgpID0gaGFzaF91c2VkIDo9IHRydWU7IGhhc2hcbiAgICBhbmQgZ2V0X3NwYWNlICAgKCkgPSBzcGFjZV91c2VkIDo9IHRydWU7IHNwYWNlXG4gICAgYW5kIGdldF9pZ24gICAgICgpID0gaWduX3VzZWQgICA6PSB0cnVlOyBpZ25cbiAgICBhbmQgZ2V0X3BhZCAgICAgKCkgPSBwYWRfdXNlZCAgIDo9IHRydWU7IHBhZFxuICAgIGFuZCBnZXRfcHJlYyAgICAoKSA9IHByZWNfdXNlZCAgOj0gdHJ1ZTsgcHJlY1xuICAgIGFuZCBnZXRfcGFkcHJlYyAoKSA9IHBhZF91c2VkICAgOj0gdHJ1ZTsgcGFkcHJlYyBpblxuXG4gICAgbGV0IGdldF9pbnRfcGFkICgpIDogKHgseSkgcGFkZGluZyA9XG4gICAgICAoKiAlNS4zZCBpcyBhY2NlcHRlZCBhbmQgbWVhbmluZ2Z1bDogcGFkIHRvIGxlbmd0aCA1IHdpdGhcbiAgICAgICAgIHNwYWNlcywgYnV0IGZpcnN0IHBhZCB3aXRoIHplcm9zIHVwdG8gbGVuZ3RoIDMgKDAtcGFkZGluZ1xuICAgICAgICAgaXMgdGhlIGludGVycHJldGF0aW9uIG9mIFwicHJlY2lzaW9uXCIgZm9yIGludGVnZXIgZm9ybWF0cykuXG5cbiAgICAgICAgICUwNS4zZCBpcyByZWR1bmRhbnQ6IHBhZCB0byBsZW5ndGggNSAqd2l0aCB6ZXJvcyosIGJ1dFxuICAgICAgICAgZmlyc3QgcGFkIHdpdGggemVyb3MuLi4gVG8gYWRkIGluc3VsdCB0byB0aGUgaW5qdXJ5LCB0aGVcbiAgICAgICAgIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiBpZ25vcmVzIHRoZSAwLXBhZGRpbmcgaW5kaWNhdGlvbiBhbmRcbiAgICAgICAgIGRvZXMgdGhlIDUgcGFkZGluZyB3aXRoIHNwYWNlcyBpbnN0ZWFkLiBXZSByZXVzZSB0aGlzXG4gICAgICAgICBpbnRlcnByZXRhdGlvbiBmb3IgY29tcGF0aWJpbGl0eSwgYnV0IHN0YXRpY2FsbHkgcmVqZWN0IHRoaXNcbiAgICAgICAgIGZvcm1hdCB3aGVuIHRoZSBsZWdhY3kgbW9kZSBpcyBkaXNhYmxlZCwgdG8gcHJvdGVjdCBzdHJpY3RcbiAgICAgICAgIHVzZXJzIGZyb20gdGhpcyBjb3JuZXIgY2FzZS4gKilcbiAgICAgICBtYXRjaCBnZXRfcGFkICgpLCBnZXRfcHJlYyAoKSB3aXRoXG4gICAgICAgICB8IHBhZCwgTm9fcHJlY2lzaW9uIC0+IHBhZFxuICAgICAgICAgfCBOb19wYWRkaW5nLCBfICAgICAtPiBOb19wYWRkaW5nXG4gICAgICAgICB8IExpdF9wYWRkaW5nIChaZXJvcywgbiksIF8gLT5cbiAgICAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gTGl0X3BhZGRpbmcgKFJpZ2h0LCBuKVxuICAgICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnMCcgXCJwcmVjaXNpb25cIlxuICAgICAgICAgfCBBcmdfcGFkZGluZyBaZXJvcywgXyAtPlxuICAgICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBBcmdfcGFkZGluZyBSaWdodFxuICAgICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnMCcgXCJwcmVjaXNpb25cIlxuICAgICAgICAgfCBMaXRfcGFkZGluZyBfIGFzIHBhZCwgXyAtPiBwYWRcbiAgICAgICAgIHwgQXJnX3BhZGRpbmcgXyBhcyBwYWQsIF8gLT4gcGFkIGluXG5cbiAgICAoKiBDaGVjayB0aGF0IHBhZHR5IDw+IFplcm9zLiAqKVxuICAgIGxldCBjaGVja19ub18wIHN5bWIgKHR5cGUgYSBiKSAocGFkIDogKGEsIGIpIHBhZGRpbmcpIDogKGEsYikgcGFkZGluZyA9XG4gICAgICBtYXRjaCBwYWQgd2l0aFxuICAgICAgfCBOb19wYWRkaW5nIC0+IHBhZFxuICAgICAgfCBMaXRfcGFkZGluZyAoKExlZnQgfCBSaWdodCksIF8pIC0+IHBhZFxuICAgICAgfCBBcmdfcGFkZGluZyAoTGVmdCB8IFJpZ2h0KSAtPiBwYWRcbiAgICAgIHwgTGl0X3BhZGRpbmcgKFplcm9zLCB3aWR0aCkgLT5cbiAgICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gTGl0X3BhZGRpbmcgKFJpZ2h0LCB3aWR0aClcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIjBcIlxuICAgICAgfCBBcmdfcGFkZGluZyBaZXJvcyAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBBcmdfcGFkZGluZyBSaWdodFxuICAgICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiMFwiXG4gICAgaW5cblxuICAgICgqIEdldCBwYWRkaW5nIGFzIGEgcGFkX29wdGlvbiAoc2VlIFwiJV9cIiwgXCIle1wiLCBcIiUoXCIgYW5kIFwiJVtcIikuXG4gICAgICAgKG5vIG5lZWQgZm9yIGxlZ2FjeSBtb2RlIHR3ZWFraW5nLCB0aG9zZSB3ZXJlIHJlamVjdGVkIGJ5IHRoZVxuICAgICAgIGxlZ2FjeSBwYXJzZXIgYXMgd2VsbCkgKilcbiAgICBsZXQgb3B0X29mX3BhZCBjICh0eXBlIGEpICh0eXBlIGIpIChwYWQgOiAoYSwgYikgcGFkZGluZykgPSBtYXRjaCBwYWQgd2l0aFxuICAgICAgfCBOb19wYWRkaW5nIC0+IE5vbmVcbiAgICAgIHwgTGl0X3BhZGRpbmcgKFJpZ2h0LCB3aWR0aCkgLT4gU29tZSB3aWR0aFxuICAgICAgfCBMaXRfcGFkZGluZyAoWmVyb3MsIHdpZHRoKSAtPlxuICAgICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiBTb21lIHdpZHRoXG4gICAgICAgIGVsc2UgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIGMgXCInMCdcIlxuICAgICAgfCBMaXRfcGFkZGluZyAoTGVmdCwgd2lkdGgpIC0+XG4gICAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuIFNvbWUgd2lkdGhcbiAgICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgYyBcIictJ1wiXG4gICAgICB8IEFyZ19wYWRkaW5nIF8gLT4gaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIGMgXCInKidcIlxuICAgIGluXG4gICAgbGV0IGdldF9wYWRfb3B0IGMgPSBvcHRfb2ZfcGFkIGMgKGdldF9wYWQgKCkpIGluXG4gICAgbGV0IGdldF9wYWRwcmVjX29wdCBjID0gb3B0X29mX3BhZCBjIChnZXRfcGFkcHJlYyAoKSkgaW5cblxuICAgICgqIEdldCBwcmVjaXNpb24gYXMgYSBwcmVjX29wdGlvbiAoc2VlIFwiJV9mXCIpLlxuICAgICAgIChubyBuZWVkIGZvciBsZWdhY3kgbW9kZSB0d2Vha2luZywgdGhvc2Ugd2VyZSByZWplY3RlZCBieSB0aGVcbiAgICAgICBsZWdhY3kgcGFyc2VyIGFzIHdlbGwpICopXG4gICAgbGV0IGdldF9wcmVjX29wdCAoKSA9IG1hdGNoIGdldF9wcmVjICgpIHdpdGhcbiAgICAgIHwgTm9fcHJlY2lzaW9uICAgICAgIC0+IE5vbmVcbiAgICAgIHwgTGl0X3ByZWNpc2lvbiBuZGVjIC0+IFNvbWUgbmRlY1xuICAgICAgfCBBcmdfcHJlY2lzaW9uICAgICAgLT4gaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kICdfJyBcIicqJ1wiXG4gICAgaW5cblxuICAgIGxldCBmbXRfcmVzdWx0ID0gbWF0Y2ggc3ltYiB3aXRoXG4gICAgfCAnLCcgLT5cbiAgICAgIHBhcnNlIHN0cl9pbmQgZW5kX2luZFxuICAgIHwgJ2MnIC0+XG4gICAgICBsZXQgY2hhcl9mb3JtYXQgZm10X3Jlc3QgPSAoKiAlYyAqKVxuICAgICAgICBpZiBnZXRfaWduICgpXG4gICAgICAgIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9jaGFyLCBmbXRfcmVzdCkpXG4gICAgICAgIGVsc2UgRm10X0VCQiAoQ2hhciBmbXRfcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgc2Nhbl9mb3JtYXQgZm10X3Jlc3QgPSAoKiAlMGMgKilcbiAgICAgICAgaWYgZ2V0X2lnbiAoKVxuICAgICAgICB0aGVuIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKElnbm9yZWRfc2Nhbl9uZXh0X2NoYXIsIGZtdF9yZXN0KSlcbiAgICAgICAgZWxzZSBGbXRfRUJCIChTY2FuX25leHRfY2hhciBmbXRfcmVzdClcbiAgICAgIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgYmVnaW4gbWF0Y2ggZ2V0X3BhZF9vcHQgJ2MnIHdpdGhcbiAgICAgICAgfCBOb25lIC0+IGNoYXJfZm9ybWF0IGZtdF9yZXN0XG4gICAgICAgIHwgU29tZSAwIC0+IHNjYW5fZm9ybWF0IGZtdF9yZXN0XG4gICAgICAgIHwgU29tZSBfbiAtPlxuICAgICAgICAgICBpZiBub3QgbGVnYWN5X2JlaGF2aW9yXG4gICAgICAgICAgIHRoZW4gaW52YWxpZF9ub25udWxsX2NoYXJfd2lkdGggc3RyX2luZFxuICAgICAgICAgICBlbHNlICgqIGxlZ2FjeSBpZ25vcmVzICVjIHdpZHRocyAqKSBjaGFyX2Zvcm1hdCBmbXRfcmVzdFxuICAgICAgZW5kXG4gICAgfCAnQycgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW4gRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoSWdub3JlZF9jYW1sX2NoYXIsZm10X3Jlc3QpKVxuICAgICAgZWxzZSBGbXRfRUJCIChDYW1sX2NoYXIgZm10X3Jlc3QpXG4gICAgfCAncycgLT5cbiAgICAgIGxldCBwYWQgPSBjaGVja19ub18wIHN5bWIgKGdldF9wYWRwcmVjICgpKSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc3RyaW5nIChnZXRfcGFkcHJlY19vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRkaW5nX2ZtdF9FQkIgKHBhZCcsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkZGluZ19mbXRfZWJiIHBhZCBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChTdHJpbmcgKHBhZCcsIGZtdF9yZXN0JykpXG4gICAgfCAnUycgLT5cbiAgICAgIGxldCBwYWQgPSBjaGVja19ub18wIHN5bWIgKGdldF9wYWRwcmVjICgpKSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfY2FtbF9zdHJpbmcgKGdldF9wYWRwcmVjX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZGRpbmdfZm10X0VCQiAocGFkJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRkaW5nX2ZtdF9lYmIgcGFkIGZtdF9yZXN0IGluXG4gICAgICAgIEZtdF9FQkIgKENhbWxfc3RyaW5nIChwYWQnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2QnIHwgJ2knIHwgJ3gnIHwgJ1gnIHwgJ28nIHwgJ3UnIC0+XG4gICAgICBsZXQgaWNvbnYgPSBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCAoZ2V0X3BsdXMgKCkpIChnZXRfaGFzaCAoKSlcbiAgICAgICAgKGdldF9zcGFjZSAoKSkgc3ltYiBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfaW50IChpY29udiwgZ2V0X3BhZF9vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRwcmVjX2ZtdF9FQkIgKHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpID1cbiAgICAgICAgICBtYWtlX3BhZHByZWNfZm10X2ViYiAoZ2V0X2ludF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoSW50IChpY29udiwgcGFkJywgcHJlYycsIGZtdF9yZXN0JykpXG4gICAgfCAnTicgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgY291bnRlciA9IFRva2VuX2NvdW50ZXIgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfc2Nhbl9nZXRfY291bnRlciBjb3VudGVyIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgZm10X3Jlc3QpKVxuICAgIHwgJ2wnIHwgJ24nIHwgJ0wnIHdoZW4gc3RyX2luZD1lbmRfaW5kIHx8IG5vdCAoaXNfaW50X2Jhc2Ugc3RyLltzdHJfaW5kXSkgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBsZXQgY291bnRlciA9IGNvdW50ZXJfb2ZfY2hhciBzeW1iIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgY291bnRlciBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKFNjYW5fZ2V0X2NvdW50ZXIgKGNvdW50ZXIsIGZtdF9yZXN0KSlcbiAgICB8ICdsJyAtPlxuICAgICAgbGV0IGljb252ID1cbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIChzdHJfaW5kICsgMSkgKGdldF9wbHVzICgpKSAoZ2V0X2hhc2ggKCkpXG4gICAgICAgICAgKGdldF9zcGFjZSAoKSkgc3RyLltzdHJfaW5kXSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfaW50MzIgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChJbnQzMiAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ24nIC0+XG4gICAgICBsZXQgaWNvbnYgPVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgKHN0cl9pbmQgKyAxKSAoZ2V0X3BsdXMgKCkpXG4gICAgICAgICAgKGdldF9oYXNoICgpKSAoZ2V0X3NwYWNlICgpKSBzdHIuW3N0cl9pbmRdIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9uYXRpdmVpbnQgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChOYXRpdmVpbnQgKGljb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdMJyAtPlxuICAgICAgbGV0IGljb252ID1cbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIChzdHJfaW5kICsgMSkgKGdldF9wbHVzICgpKSAoZ2V0X2hhc2ggKCkpXG4gICAgICAgICAgKGdldF9zcGFjZSAoKSkgc3RyLltzdHJfaW5kXSBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlblxuICAgICAgICBsZXQgaWdub3JlZCA9IElnbm9yZWRfaW50NjQgKGljb252LCBnZXRfcGFkX29wdCAnXycpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IFBhZHByZWNfZm10X0VCQiAocGFkJywgcHJlYycsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkcHJlY19mbXRfZWJiIChnZXRfaW50X3BhZCAoKSkgKGdldF9wcmVjICgpKSBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChJbnQ2NCAoaWNvbnYsIHBhZCcsIHByZWMnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2YnIHwgJ2UnIHwgJ0UnIHwgJ2cnIHwgJ0cnIHwgJ0YnIHwgJ2gnIHwgJ0gnIC0+XG4gICAgICBsZXQgZmNvbnYgPVxuICAgICAgICBjb21wdXRlX2Zsb2F0X2NvbnYgcGN0X2luZCBzdHJfaW5kXG4gICAgICAgICAgKGdldF9wbHVzICgpKSAoZ2V0X2hhc2ggKCkpIChnZXRfc3BhY2UgKCkpIHN5bWIgaW5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Zsb2F0IChnZXRfcGFkX29wdCAnXycsIGdldF9wcmVjX29wdCAoKSkgaW5cbiAgICAgICAgRm10X0VCQiAoSWdub3JlZF9wYXJhbSAoaWdub3JlZCwgZm10X3Jlc3QpKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgUGFkcHJlY19mbXRfRUJCIChwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSA9XG4gICAgICAgICAgbWFrZV9wYWRwcmVjX2ZtdF9lYmIgKGdldF9wYWQgKCkpIChnZXRfcHJlYyAoKSkgZm10X3Jlc3QgaW5cbiAgICAgICAgRm10X0VCQiAoRmxvYXQgKGZjb252LCBwYWQnLCBwcmVjJywgZm10X3Jlc3QnKSlcbiAgICB8ICdiJyB8ICdCJyAtPlxuICAgICAgbGV0IHBhZCA9IGNoZWNrX25vXzAgc3ltYiAoZ2V0X3BhZHByZWMgKCkpIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9ib29sIChnZXRfcGFkcHJlY19vcHQgJ18nKSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBQYWRkaW5nX2ZtdF9FQkIgKHBhZCcsIGZtdF9yZXN0JykgPVxuICAgICAgICAgIG1ha2VfcGFkZGluZ19mbXRfZWJiIHBhZCBmbXRfcmVzdCBpblxuICAgICAgICBGbXRfRUJCIChCb29sIChwYWQnLCBmbXRfcmVzdCcpKVxuICAgIHwgJ2EnIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgRm10X0VCQiAoQWxwaGEgZm10X3Jlc3QpXG4gICAgfCAndCcgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChUaGV0YSBmbXRfcmVzdClcbiAgICB8ICdyJyAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBzdHJfaW5kIGVuZF9pbmQgaW5cbiAgICAgIGlmIGdldF9pZ24gKCkgdGhlbiBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChJZ25vcmVkX3JlYWRlciwgZm10X3Jlc3QpKVxuICAgICAgZWxzZSBGbXRfRUJCIChSZWFkZXIgZm10X3Jlc3QpXG4gICAgfCAnIScgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChGbHVzaCBmbXRfcmVzdClcbiAgICB8ICgnJScgfCAnQCcpIGFzIGMgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChDaGFyX2xpdGVyYWwgKGMsIGZtdF9yZXN0KSlcbiAgICB8ICd7JyAtPlxuICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCBzdHJfaW5kIGVuZF9pbmQgJ30nIGluXG4gICAgICBsZXQgRm10X0VCQiBzdWJfZm10ID0gcGFyc2Ugc3RyX2luZCBzdWJfZW5kIGluXG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdWJfZW5kICsgMikgZW5kX2luZCBpblxuICAgICAgbGV0IHN1Yl9mbXR0eSA9IGZtdHR5X29mX2ZtdCBzdWJfZm10IGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX2Zvcm1hdF9hcmcgKGdldF9wYWRfb3B0ICdfJywgc3ViX2ZtdHR5KSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdF9hcmcgKGdldF9wYWRfb3B0ICd7Jywgc3ViX2ZtdHR5LCBmbXRfcmVzdCkpXG4gICAgfCAnKCcgLT5cbiAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgc3RyX2luZCBlbmRfaW5kICcpJyBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3ViX2VuZCArIDIpIGVuZF9pbmQgaW5cbiAgICAgIGxldCBGbXRfRUJCIHN1Yl9mbXQgPSBwYXJzZSBzdHJfaW5kIHN1Yl9lbmQgaW5cbiAgICAgIGxldCBzdWJfZm10dHkgPSBmbXR0eV9vZl9mbXQgc3ViX2ZtdCBpblxuICAgICAgaWYgZ2V0X2lnbiAoKSB0aGVuXG4gICAgICAgIGxldCBpZ25vcmVkID0gSWdub3JlZF9mb3JtYXRfc3Vic3QgKGdldF9wYWRfb3B0ICdfJywgc3ViX2ZtdHR5KSBpblxuICAgICAgICBGbXRfRUJCIChJZ25vcmVkX3BhcmFtIChpZ25vcmVkLCBmbXRfcmVzdCkpXG4gICAgICBlbHNlXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdF9zdWJzdCAoZ2V0X3BhZF9vcHQgJygnLCBzdWJfZm10dHksIGZtdF9yZXN0KSlcbiAgICB8ICdbJyAtPlxuICAgICAgbGV0IG5leHRfaW5kLCBjaGFyX3NldCA9IHBhcnNlX2NoYXJfc2V0IHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBuZXh0X2luZCBlbmRfaW5kIGluXG4gICAgICBpZiBnZXRfaWduICgpIHRoZW5cbiAgICAgICAgbGV0IGlnbm9yZWQgPSBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgKGdldF9wYWRfb3B0ICdfJywgY2hhcl9zZXQpIGluXG4gICAgICAgIEZtdF9FQkIgKElnbm9yZWRfcGFyYW0gKGlnbm9yZWQsIGZtdF9yZXN0KSlcbiAgICAgIGVsc2VcbiAgICAgICAgRm10X0VCQiAoU2Nhbl9jaGFyX3NldCAoZ2V0X3BhZF9vcHQgJ1snLCBjaGFyX3NldCwgZm10X3Jlc3QpKVxuICAgIHwgJy0nIHwgJysnIHwgJyMnIHwgJyAnIHwgJ18nIC0+XG4gICAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGF0IGNoYXJhY3RlciBudW1iZXIgJWQsIFxcXG4gICAgICAgICBmbGFnICVDIGlzIG9ubHkgYWxsb3dlZCBhZnRlciB0aGUgJyUlJywgYmVmb3JlIHBhZGRpbmcgYW5kIHByZWNpc2lvblwiXG4gICAgICAgIHN0ciBwY3RfaW5kIHN5bWJcbiAgICB8IF8gLT5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgIGludmFsaWQgY29udmVyc2lvbiBcXFwiJSUlY1xcXCJcIiBzdHIgKHN0cl9pbmQgLSAxKSBzeW1iXG4gICAgaW5cbiAgICAoKiBDaGVjayBmb3IgdW51c2VkIG9wdGlvbnMsIGFuZCByZWplY3QgdGhlbSBhcyBpbmNvbXBhdGlibGUuXG5cbiAgICAgICBTdWNoIGNoZWNrcyBuZWVkIHRvIGJlIGRpc2FibGVkIGluIGxlZ2FjeSBtb2RlLCBhcyB0aGUgbGVnYWN5XG4gICAgICAgcGFyc2VyIHNpbGVudGx5IGlnbm9yZWQgaW5jb21wYXRpYmxlIGZsYWdzLiAqKVxuICAgIGlmIG5vdCBsZWdhY3lfYmVoYXZpb3IgdGhlbiBiZWdpblxuICAgIGlmIG5vdCAhcGx1c191c2VkICYmIHBsdXMgdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCInKydcIjtcbiAgICBpZiBub3QgIWhhc2hfdXNlZCAmJiBoYXNoIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyMnXCI7XG4gICAgaWYgbm90ICFzcGFjZV91c2VkICYmIHNwYWNlIHRoZW5cbiAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyAnXCI7XG4gICAgaWYgbm90ICFwYWRfdXNlZCAgJiYgUGFkZGluZ19FQkIgcGFkIDw+IFBhZGRpbmdfRUJCIE5vX3BhZGRpbmcgdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIHN5bWIgXCJgcGFkZGluZydcIjtcbiAgICBpZiBub3QgIXByZWNfdXNlZCAmJiBQcmVjaXNpb25fRUJCIHByZWMgPD4gUHJlY2lzaW9uX0VCQiBOb19wcmVjaXNpb24gdGhlblxuICAgICAgaW5jb21wYXRpYmxlX2ZsYWcgcGN0X2luZCBzdHJfaW5kIChpZiBpZ24gdGhlbiAnXycgZWxzZSBzeW1iKVxuICAgICAgICBcImBwcmVjaXNpb24nXCI7XG4gICAgaWYgaWduICYmIHBsdXMgdGhlbiBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgJ18nIFwiJysnXCI7XG4gICAgZW5kO1xuICAgICgqIHRoaXMgbGFzdCB0ZXN0IG11c3Qgbm90IGJlIGRpc2FibGVkIGluIGxlZ2FjeSBtb2RlLFxuICAgICAgIGFzIGlnbm9yaW5nIGl0IHdvdWxkIHR5cGljYWxseSByZXN1bHQgaW4gYSBkaWZmZXJlbnQgdHlwaW5nXG4gICAgICAgdGhhbiB3aGF0IHRoZSBsZWdhY3kgcGFyc2VyIHVzZWQgKilcbiAgICBpZiBub3QgIWlnbl91c2VkICYmIGlnbiB0aGVuXG4gICAgICBiZWdpbiBtYXRjaCBzeW1iIHdpdGhcbiAgICAgICAgKCogYXJndW1lbnQtbGVzcyBmb3JtYXRzIGNhbiBzYWZlbHkgYmUgaWdub3JlZCBpbiBsZWdhY3kgbW9kZSAqKVxuICAgICAgICB8ICgnQCcgfCAnJScgfCAnIScgfCAnLCcpIHdoZW4gbGVnYWN5X2JlaGF2aW9yIC0+ICgpXG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJ18nXCJcbiAgICAgIGVuZDtcbiAgICBmbXRfcmVzdWx0XG5cbiAgKCogUGFyc2UgZm9ybWF0dGluZyBpbmZvcm1hdGlvbiAoYWZ0ZXIgJ0AnKS4gKilcbiAgYW5kIHBhcnNlX2FmdGVyX2F0IDogdHlwZSBlIGYgLiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gRm10X0VCQiAoQ2hhcl9saXRlcmFsICgnQCcsIEVuZF9vZl9mb3JtYXQpKVxuICAgIGVsc2VcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnWycgLT5cbiAgICAgICAgcGFyc2VfdGFnIGZhbHNlIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKENsb3NlX2JveCwgZm10X3Jlc3QpKVxuICAgICAgfCAneycgLT5cbiAgICAgICAgcGFyc2VfdGFnIHRydWUgKHN0cl9pbmQgKyAxKSBlbmRfaW5kXG4gICAgICB8ICd9JyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQ2xvc2VfdGFnLCBmbXRfcmVzdCkpXG4gICAgICB8ICcsJyAtPlxuICAgICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIChzdHJfaW5kICsgMSkgZW5kX2luZCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoQnJlYWsgKFwiQCxcIiwgMCwgMCksIGZtdF9yZXN0KSlcbiAgICAgIHwgJyAnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChCcmVhayAoXCJAIFwiLCAxLCAwKSwgZm10X3Jlc3QpKVxuICAgICAgfCAnOycgLT5cbiAgICAgICAgcGFyc2VfZ29vZF9icmVhayAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgJz8nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChGRmx1c2gsIGZtdF9yZXN0KSlcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEZvcmNlX25ld2xpbmUsIGZtdF9yZXN0KSlcbiAgICAgIHwgJy4nIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChGbHVzaF9uZXdsaW5lLCBmbXRfcmVzdCkpXG4gICAgICB8ICc8JyAtPlxuICAgICAgICBwYXJzZV9tYWdpY19zaXplIChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCAnQCcgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKEVzY2FwZWRfYXQsIGZtdF9yZXN0KSlcbiAgICAgIHwgJyUnIHdoZW4gc3RyX2luZCArIDEgPCBlbmRfaW5kICYmIHN0ci5bc3RyX2luZCArIDFdID0gJyUnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKHN0cl9pbmQgKyAyKSBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfbGl0IChFc2NhcGVkX3BlcmNlbnQsIGZtdF9yZXN0KSlcbiAgICAgIHwgJyUnIC0+XG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICAgIEZtdF9FQkIgKENoYXJfbGl0ZXJhbCAoJ0AnLCBmbXRfcmVzdCkpXG4gICAgICB8IGMgLT5cbiAgICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSAoc3RyX2luZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgRm10X0VCQiAoRm9ybWF0dGluZ19saXQgKFNjYW5faW5kaWMgYywgZm10X3Jlc3QpKVxuXG4gICgqIFRyeSB0byByZWFkIHRoZSBvcHRpb25hbCA8bmFtZT4gYWZ0ZXIgXCJAe1wiIG9yIFwiQFtcIi4gKilcbiAgYW5kIHBhcnNlX3RhZyA6IHR5cGUgZSBmIC4gYm9vbCAtPiBpbnQgLT4gaW50IC0+IChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGlzX29wZW5fdGFnIHN0cl9pbmQgZW5kX2luZCAtPlxuICAgIHRyeVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgIHwgJzwnIC0+XG4gICAgICAgIGxldCBpbmQgPSBTdHJpbmcuaW5kZXhfZnJvbSBzdHIgKHN0cl9pbmQgKyAxKSAnPicgaW5cbiAgICAgICAgaWYgaW5kID49IGVuZF9pbmQgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgIGxldCBzdWJfc3RyID0gU3RyaW5nLnN1YiBzdHIgc3RyX2luZCAoaW5kIC0gc3RyX2luZCArIDEpIGluXG4gICAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2UgKGluZCArIDEpIGVuZF9pbmQgaW5cbiAgICAgICAgbGV0IEZtdF9FQkIgc3ViX2ZtdCA9IHBhcnNlIHN0cl9pbmQgKGluZCArIDEpIGluXG4gICAgICAgIGxldCBzdWJfZm9ybWF0ID0gRm9ybWF0IChzdWJfZm10LCBzdWJfc3RyKSBpblxuICAgICAgICBsZXQgZm9ybWF0dGluZyA9XG4gICAgICAgICAgaWYgaXNfb3Blbl90YWcgdGhlbiBPcGVuX3RhZyBzdWJfZm9ybWF0IGVsc2UgT3Blbl9ib3ggc3ViX2Zvcm1hdCBpblxuICAgICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2dlbiAoZm9ybWF0dGluZywgZm10X3Jlc3QpKVxuICAgICAgfCBfIC0+XG4gICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgbGV0IHN1Yl9mb3JtYXQgPSBGb3JtYXQgKEVuZF9vZl9mb3JtYXQsIFwiXCIpIGluXG4gICAgICBsZXQgZm9ybWF0dGluZyA9XG4gICAgICAgIGlmIGlzX29wZW5fdGFnIHRoZW4gT3Blbl90YWcgc3ViX2Zvcm1hdCBlbHNlIE9wZW5fYm94IHN1Yl9mb3JtYXQgaW5cbiAgICAgIEZtdF9FQkIgKEZvcm1hdHRpbmdfZ2VuIChmb3JtYXR0aW5nLCBmbXRfcmVzdCkpXG5cbiAgKCogVHJ5IHRvIHJlYWQgdGhlIG9wdGlvbmFsIDx3aWR0aCBvZmZzZXQ+IGFmdGVyIFwiQDtcIi4gKilcbiAgYW5kIHBhcnNlX2dvb2RfYnJlYWsgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgbGV0IG5leHRfaW5kLCBmb3JtYXR0aW5nX2xpdCA9XG4gICAgICB0cnlcbiAgICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgfHwgc3RyLltzdHJfaW5kXSA8PiAnPCcgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgIGxldCBzdHJfaW5kXzEgPSBwYXJzZV9zcGFjZXMgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGluXG4gICAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF8xXSB3aXRoXG4gICAgICAgIHwgJzAnIC4uICc5JyB8ICctJyAtPiAoXG4gICAgICAgICAgbGV0IHN0cl9pbmRfMiwgd2lkdGggPSBwYXJzZV9pbnRlZ2VyIHN0cl9pbmRfMSBlbmRfaW5kIGluXG4gICAgICAgICAgICBsZXQgc3RyX2luZF8zID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmRfMiBlbmRfaW5kIGluXG4gICAgICAgICAgICBtYXRjaCBzdHIuW3N0cl9pbmRfM10gd2l0aFxuICAgICAgICAgICAgICB8ICc+JyAtPlxuICAgICAgICAgICAgICAgIGxldCBzID0gU3RyaW5nLnN1YiBzdHIgKHN0cl9pbmQtMikgKHN0cl9pbmRfMy1zdHJfaW5kKzMpIGluXG4gICAgICAgICAgICAgICAgc3RyX2luZF8zICsgMSwgQnJlYWsgKHMsIHdpZHRoLCAwKVxuICAgICAgICAgICAgICB8ICcwJyAuLiAnOScgfCAnLScgLT5cbiAgICAgICAgICAgICAgICBsZXQgc3RyX2luZF80LCBvZmZzZXQgPSBwYXJzZV9pbnRlZ2VyIHN0cl9pbmRfMyBlbmRfaW5kIGluXG4gICAgICAgICAgICAgICAgbGV0IHN0cl9pbmRfNSA9IHBhcnNlX3NwYWNlcyBzdHJfaW5kXzQgZW5kX2luZCBpblxuICAgICAgICAgICAgICAgIGlmIHN0ci5bc3RyX2luZF81XSA8PiAnPicgdGhlbiByYWlzZSBOb3RfZm91bmQ7XG4gICAgICAgICAgICAgICAgbGV0IHMgPSBTdHJpbmcuc3ViIHN0ciAoc3RyX2luZC0yKSAoc3RyX2luZF81LXN0cl9pbmQrMykgaW5cbiAgICAgICAgICAgICAgICBzdHJfaW5kXzUgKyAxLCBCcmVhayAocywgd2lkdGgsIG9mZnNldClcbiAgICAgICAgICAgICAgfCBfIC0+IHJhaXNlIE5vdF9mb3VuZFxuICAgICAgICApXG4gICAgICAgIHwgXyAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHdpdGggTm90X2ZvdW5kIHwgRmFpbHVyZSBfIC0+XG4gICAgICAgIHN0cl9pbmQsIEJyZWFrIChcIkA7XCIsIDEsIDApXG4gICAgaW5cbiAgICBsZXQgRm10X0VCQiBmbXRfcmVzdCA9IHBhcnNlIG5leHRfaW5kIGVuZF9pbmQgaW5cbiAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIGZtdF9yZXN0KSlcblxuICAoKiBQYXJzZSB0aGUgc2l6ZSBpbiBhIDxuPi4gKilcbiAgYW5kIHBhcnNlX21hZ2ljX3NpemUgOiB0eXBlIGUgZiAuIGludCAtPiBpbnQgLT4gKF8sIF8sIGUsIGYpIGZtdF9lYmIgPVxuICBmdW4gc3RyX2luZCBlbmRfaW5kIC0+XG4gICAgbWF0Y2hcbiAgICAgIHRyeVxuICAgICAgICBsZXQgc3RyX2luZF8xID0gcGFyc2Vfc3BhY2VzIHN0cl9pbmQgZW5kX2luZCBpblxuICAgICAgICBtYXRjaCBzdHIuW3N0cl9pbmRfMV0gd2l0aFxuICAgICAgICB8ICcwJyAuLiAnOScgfCAnLScgLT5cbiAgICAgICAgICBsZXQgc3RyX2luZF8yLCBzaXplID0gcGFyc2VfaW50ZWdlciBzdHJfaW5kXzEgZW5kX2luZCBpblxuICAgICAgICAgIGxldCBzdHJfaW5kXzMgPSBwYXJzZV9zcGFjZXMgc3RyX2luZF8yIGVuZF9pbmQgaW5cbiAgICAgICAgICBpZiBzdHIuW3N0cl9pbmRfM10gPD4gJz4nIHRoZW4gcmFpc2UgTm90X2ZvdW5kO1xuICAgICAgICAgIGxldCBzID0gU3RyaW5nLnN1YiBzdHIgKHN0cl9pbmQgLSAyKSAoc3RyX2luZF8zIC0gc3RyX2luZCArIDMpIGluXG4gICAgICAgICAgU29tZSAoc3RyX2luZF8zICsgMSwgTWFnaWNfc2l6ZSAocywgc2l6ZSkpXG4gICAgICAgIHwgXyAtPiBOb25lXG4gICAgICB3aXRoIE5vdF9mb3VuZCB8IEZhaWx1cmUgXyAtPlxuICAgICAgICBOb25lXG4gICAgd2l0aFxuICAgIHwgU29tZSAobmV4dF9pbmQsIGZvcm1hdHRpbmdfbGl0KSAtPlxuICAgICAgbGV0IEZtdF9FQkIgZm10X3Jlc3QgPSBwYXJzZSBuZXh0X2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIGZtdF9yZXN0KSlcbiAgICB8IE5vbmUgLT5cbiAgICAgIGxldCBGbXRfRUJCIGZtdF9yZXN0ID0gcGFyc2Ugc3RyX2luZCBlbmRfaW5kIGluXG4gICAgICBGbXRfRUJCIChGb3JtYXR0aW5nX2xpdCAoU2Nhbl9pbmRpYyAnPCcsIGZtdF9yZXN0KSlcblxuICAoKiBQYXJzZSBhbmQgY29uc3RydWN0IGEgY2hhciBzZXQuICopXG4gIGFuZCBwYXJzZV9jaGFyX3NldCBzdHJfaW5kIGVuZF9pbmQgPVxuICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG5cbiAgICBsZXQgY2hhcl9zZXQgPSBjcmVhdGVfY2hhcl9zZXQgKCkgaW5cbiAgICBsZXQgYWRkX2NoYXIgYyA9XG4gICAgICBhZGRfaW5fY2hhcl9zZXQgY2hhcl9zZXQgYztcbiAgICBpblxuICAgIGxldCBhZGRfcmFuZ2UgYyBjJyA9XG4gICAgICBmb3IgaSA9IGludF9vZl9jaGFyIGMgdG8gaW50X29mX2NoYXIgYycgZG9cbiAgICAgICAgYWRkX2luX2NoYXJfc2V0IGNoYXJfc2V0IChjaGFyX29mX2ludCBpKTtcbiAgICAgIGRvbmU7XG4gICAgaW5cblxuICAgIGxldCBmYWlsX3NpbmdsZV9wZXJjZW50IHN0cl9pbmQgPVxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiAnJSUnIGFsb25lIGlzIG5vdCBhY2NlcHRlZCBpbiBjaGFyYWN0ZXIgc2V0cywgXFxcbiAgICAgICAgIHVzZSAlJSUlIGluc3RlYWQgYXQgcG9zaXRpb24gJWQuXCIgc3RyIHN0cl9pbmRcbiAgICBpblxuXG4gICAgKCogUGFyc2UgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIGNoYXIgc2V0LiAqKVxuICAgIGxldCByZWMgcGFyc2VfY2hhcl9zZXRfc3RhcnQgc3RyX2luZCBlbmRfaW5kID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBsZXQgYyA9IHN0ci5bc3RyX2luZF0gaW5cbiAgICAgIHBhcnNlX2NoYXJfc2V0X2FmdGVyX2NoYXIgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcblxuICAgICgqIFBhcnNlIHRoZSBjb250ZW50IG9mIGEgY2hhciBzZXQgdW50aWwgdGhlIGZpcnN0ICddJy4gKilcbiAgICBhbmQgcGFyc2VfY2hhcl9zZXRfY29udGVudCBzdHJfaW5kIGVuZF9pbmQgPVxuICAgICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgICAgfCAnXScgLT5cbiAgICAgICAgc3RyX2luZCArIDFcbiAgICAgIHwgJy0nIC0+XG4gICAgICAgIGFkZF9jaGFyICctJztcbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfY29udGVudCAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICAgIHwgYyAtPlxuICAgICAgICBwYXJzZV9jaGFyX3NldF9hZnRlcl9jaGFyIChzdHJfaW5kICsgMSkgZW5kX2luZCBjXG5cbiAgICAoKiBUZXN0IGZvciByYW5nZSBpbiBjaGFyIHNldC4gKilcbiAgICBhbmQgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciBzdHJfaW5kIGVuZF9pbmQgYyA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICddJyAtPlxuICAgICAgICBhZGRfY2hhciBjO1xuICAgICAgICBzdHJfaW5kICsgMVxuICAgICAgfCAnLScgLT5cbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfbWludXMgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcbiAgICAgIHwgKCclJyB8ICdAJykgYXMgYycgd2hlbiBjID0gJyUnIC0+XG4gICAgICAgIGFkZF9jaGFyIGMnO1xuICAgICAgICBwYXJzZV9jaGFyX3NldF9jb250ZW50IChzdHJfaW5kICsgMSkgZW5kX2luZFxuICAgICAgfCBjJyAtPlxuICAgICAgICBpZiBjID0gJyUnIHRoZW4gZmFpbF9zaW5nbGVfcGVyY2VudCBzdHJfaW5kO1xuICAgICAgICAoKiBub3RlIHRoYXQgJ0AnIGFsb25lIGlzIGFjY2VwdGVkLCBhcyBkb25lIGJ5IHRoZSBsZWdhY3lcbiAgICAgICAgICAgaW1wbGVtZW50YXRpb247IHRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSByZXF1aXJlcyAlQFxuICAgICAgICAgICBzbyB3ZSBjb3VsZCB3YXJuIG9uIHRoYXQgKilcbiAgICAgICAgYWRkX2NoYXIgYztcbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfYWZ0ZXJfY2hhciAoc3RyX2luZCArIDEpIGVuZF9pbmQgYydcblxuICAgICgqIE1hbmFnZSByYW5nZSBpbiBjaGFyIHNldCAoZXhjZXB0IGlmIHRoZSAnLScgdGhlIGxhc3QgY2hhciBiZWZvcmUgJ10nKSAqKVxuICAgIGFuZCBwYXJzZV9jaGFyX3NldF9hZnRlcl9taW51cyBzdHJfaW5kIGVuZF9pbmQgYyA9XG4gICAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kXSB3aXRoXG4gICAgICB8ICddJyAtPlxuICAgICAgICBhZGRfY2hhciBjO1xuICAgICAgICBhZGRfY2hhciAnLSc7XG4gICAgICAgIHN0cl9pbmQgKyAxXG4gICAgICB8ICclJyAtPlxuICAgICAgICBpZiBzdHJfaW5kICsgMSA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgICAgYmVnaW4gbWF0Y2ggc3RyLltzdHJfaW5kICsgMV0gd2l0aFxuICAgICAgICAgIHwgKCclJyB8ICdAJykgYXMgYycgLT5cbiAgICAgICAgICAgIGFkZF9yYW5nZSBjIGMnO1xuICAgICAgICAgICAgcGFyc2VfY2hhcl9zZXRfY29udGVudCAoc3RyX2luZCArIDIpIGVuZF9pbmRcbiAgICAgICAgICB8IF8gLT4gZmFpbF9zaW5nbGVfcGVyY2VudCBzdHJfaW5kXG4gICAgICAgIGVuZFxuICAgICAgfCBjJyAtPlxuICAgICAgICBhZGRfcmFuZ2UgYyBjJztcbiAgICAgICAgcGFyc2VfY2hhcl9zZXRfY29udGVudCAoc3RyX2luZCArIDEpIGVuZF9pbmRcbiAgICBpblxuICAgIGxldCBzdHJfaW5kLCByZXZlcnNlID1cbiAgICAgIGlmIHN0cl9pbmQgPSBlbmRfaW5kIHRoZW4gdW5leHBlY3RlZF9lbmRfb2ZfZm9ybWF0IGVuZF9pbmQ7XG4gICAgICBtYXRjaCBzdHIuW3N0cl9pbmRdIHdpdGhcbiAgICAgICAgfCAnXicgLT4gc3RyX2luZCArIDEsIHRydWVcbiAgICAgICAgfCBfIC0+IHN0cl9pbmQsIGZhbHNlIGluXG4gICAgbGV0IG5leHRfaW5kID0gcGFyc2VfY2hhcl9zZXRfc3RhcnQgc3RyX2luZCBlbmRfaW5kIGluXG4gICAgbGV0IGNoYXJfc2V0ID0gZnJlZXplX2NoYXJfc2V0IGNoYXJfc2V0IGluXG4gICAgbmV4dF9pbmQsIChpZiByZXZlcnNlIHRoZW4gcmV2X2NoYXJfc2V0IGNoYXJfc2V0IGVsc2UgY2hhcl9zZXQpXG5cbiAgKCogQ29uc3VtZSBhbGwgbmV4dCBzcGFjZXMsIHJhaXNlIGFuIEZhaWx1cmUgaWYgZW5kX2luZCBpcyByZWFjaGVkLiAqKVxuICBhbmQgcGFyc2Vfc3BhY2VzIHN0cl9pbmQgZW5kX2luZCA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICBpZiBzdHIuW3N0cl9pbmRdID0gJyAnIHRoZW4gcGFyc2Vfc3BhY2VzIChzdHJfaW5kICsgMSkgZW5kX2luZCBlbHNlIHN0cl9pbmRcblxuICAoKiBSZWFkIGEgcG9zaXRpdmUgaW50ZWdlciBmcm9tIHRoZSBzdHJpbmcsIHJhaXNlIGEgRmFpbHVyZSBpZiBlbmRfaW5kIGlzXG4gICAgIHJlYWNoZWQuICopXG4gIGFuZCBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgYWNjID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgICBsZXQgbmV3X2FjYyA9IGFjYyAqIDEwICsgKGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCcpIGluXG4gICAgICBpZiBuZXdfYWNjID4gU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICAgIFwiaW52YWxpZCBmb3JtYXQgJVM6IGludGVnZXIgJWQgaXMgZ3JlYXRlciB0aGFuIHRoZSBsaW1pdCAlZFwiXG4gICAgICAgICAgc3RyIG5ld19hY2MgU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgICBlbHNlXG4gICAgICAgIHBhcnNlX3Bvc2l0aXZlIChzdHJfaW5kICsgMSkgZW5kX2luZCBuZXdfYWNjXG4gICAgfCBfIC0+IHN0cl9pbmQsIGFjY1xuXG4gICgqIFJlYWQgYSBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBpbnRlZ2VyIGZyb20gdGhlIHN0cmluZywgcmFpc2UgYSBGYWlsdXJlXG4gICAgIGlmIGVuZF9pbmQgaXMgcmVhY2hlZC4gKilcbiAgYW5kIHBhcnNlX2ludGVnZXIgc3RyX2luZCBlbmRfaW5kID1cbiAgICBpZiBzdHJfaW5kID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJzAnIC4uICc5JyAtPiBwYXJzZV9wb3NpdGl2ZSBzdHJfaW5kIGVuZF9pbmQgMFxuICAgIHwgJy0nIC0+IChcbiAgICAgIGlmIHN0cl9pbmQgKyAxID0gZW5kX2luZCB0aGVuIHVuZXhwZWN0ZWRfZW5kX29mX2Zvcm1hdCBlbmRfaW5kO1xuICAgICAgbWF0Y2ggc3RyLltzdHJfaW5kICsgMV0gd2l0aFxuICAgICAgfCAnMCcgLi4gJzknIC0+XG4gICAgICAgIGxldCBuZXh0X2luZCwgbiA9IHBhcnNlX3Bvc2l0aXZlIChzdHJfaW5kICsgMSkgZW5kX2luZCAwIGluXG4gICAgICAgIG5leHRfaW5kLCAtblxuICAgICAgfCBjIC0+XG4gICAgICAgIGV4cGVjdGVkX2NoYXJhY3RlciAoc3RyX2luZCArIDEpIFwiZGlnaXRcIiBjXG4gICAgKVxuICAgIHwgXyAtPiBhc3NlcnQgZmFsc2VcblxuICAoKiBBZGQgYSBsaXRlcmFsIHRvIGEgZm9ybWF0IGZyb20gYSBsaXRlcmFsIGNoYXJhY3RlciBzdWItc2VxdWVuY2UuICopXG4gIGFuZCBhZGRfbGl0ZXJhbCA6IHR5cGUgYSBkIGUgZiAuXG4gICAgICBpbnQgLT4gaW50IC0+IChhLCBfLCBfLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChfLCBfLCBlLCBmKSBmbXRfZWJiID1cbiAgZnVuIGxpdF9zdGFydCBzdHJfaW5kIGZtdCAtPiBtYXRjaCBzdHJfaW5kIC0gbGl0X3N0YXJ0IHdpdGhcbiAgICB8IDAgICAgLT4gRm10X0VCQiBmbXRcbiAgICB8IDEgICAgLT4gRm10X0VCQiAoQ2hhcl9saXRlcmFsIChzdHIuW2xpdF9zdGFydF0sIGZtdCkpXG4gICAgfCBzaXplIC0+IEZtdF9FQkIgKFN0cmluZ19saXRlcmFsIChTdHJpbmcuc3ViIHN0ciBsaXRfc3RhcnQgc2l6ZSwgZm10KSlcblxuICAoKiBTZWFyY2ggdGhlIGVuZCBvZiB0aGUgY3VycmVudCBzdWItZm9ybWF0XG4gICAgIChpLmUuIHRoZSBjb3JyZXNwb25kaW5nIFwiJX1cIiBvciBcIiUpXCIpICopXG4gIGFuZCBzZWFyY2hfc3ViZm9ybWF0X2VuZCBzdHJfaW5kIGVuZF9pbmQgYyA9XG4gICAgaWYgc3RyX2luZCA9IGVuZF9pbmQgdGhlblxuICAgICAgZmFpbHdpdGhfbWVzc2FnZVxuICAgICAgICBcImludmFsaWQgZm9ybWF0ICVTOiB1bmNsb3NlZCBzdWItZm9ybWF0LCBcXFxuICAgICAgICAgZXhwZWN0ZWQgXFxcIiUlJWNcXFwiIGF0IGNoYXJhY3RlciBudW1iZXIgJWRcIiBzdHIgYyBlbmRfaW5kO1xuICAgIG1hdGNoIHN0ci5bc3RyX2luZF0gd2l0aFxuICAgIHwgJyUnIC0+XG4gICAgICBpZiBzdHJfaW5kICsgMSA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgIGlmIHN0ci5bc3RyX2luZCArIDFdID0gYyB0aGVuICgqIEVuZCBvZiBmb3JtYXQgZm91bmQgKikgc3RyX2luZCBlbHNlXG4gICAgICAgIGJlZ2luIG1hdGNoIHN0ci5bc3RyX2luZCArIDFdIHdpdGhcbiAgICAgICAgfCAnXycgLT5cbiAgICAgICAgICAoKiBTZWFyY2ggZm9yIFwiJV8oXCIgb3IgXCIlX3tcIi4gKilcbiAgICAgICAgICBpZiBzdHJfaW5kICsgMiA9IGVuZF9pbmQgdGhlbiB1bmV4cGVjdGVkX2VuZF9vZl9mb3JtYXQgZW5kX2luZDtcbiAgICAgICAgICBiZWdpbiBtYXRjaCBzdHIuW3N0cl9pbmQgKyAyXSB3aXRoXG4gICAgICAgICAgfCAneycgLT5cbiAgICAgICAgICAgIGxldCBzdWJfZW5kID0gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAzKSBlbmRfaW5kICd9JyBpblxuICAgICAgICAgICAgc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN1Yl9lbmQgKyAyKSBlbmRfaW5kIGNcbiAgICAgICAgICB8ICcoJyAtPlxuICAgICAgICAgICAgbGV0IHN1Yl9lbmQgPSBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDMpIGVuZF9pbmQgJyknIGluXG4gICAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICAgIHwgXyAtPiBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDMpIGVuZF9pbmQgY1xuICAgICAgICAgIGVuZFxuICAgICAgICB8ICd7JyAtPlxuICAgICAgICAgICgqICV7Li4uJX0gc3ViLWZvcm1hdCBmb3VuZC4gKilcbiAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMikgZW5kX2luZCAnfScgaW5cbiAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICB8ICcoJyAtPlxuICAgICAgICAgICgqICUoLi4uJSkgc3ViLWZvcm1hdCBmb3VuZC4gKilcbiAgICAgICAgICBsZXQgc3ViX2VuZCA9IHNlYXJjaF9zdWJmb3JtYXRfZW5kIChzdHJfaW5kICsgMikgZW5kX2luZCAnKScgaW5cbiAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3ViX2VuZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICB8ICd9JyAtPlxuICAgICAgICAgICgqIEVycm9yOiAlKC4uLiV9LiAqKVxuICAgICAgICAgIGV4cGVjdGVkX2NoYXJhY3RlciAoc3RyX2luZCArIDEpIFwiY2hhcmFjdGVyICcpJ1wiICd9J1xuICAgICAgICB8ICcpJyAtPlxuICAgICAgICAgICgqIEVycm9yOiAley4uLiUpLiAqKVxuICAgICAgICAgIGV4cGVjdGVkX2NoYXJhY3RlciAoc3RyX2luZCArIDEpIFwiY2hhcmFjdGVyICd9J1wiICcpJ1xuICAgICAgICB8IF8gLT5cbiAgICAgICAgICBzZWFyY2hfc3ViZm9ybWF0X2VuZCAoc3RyX2luZCArIDIpIGVuZF9pbmQgY1xuICAgICAgICBlbmRcbiAgICB8IF8gLT4gc2VhcmNoX3N1YmZvcm1hdF9lbmQgKHN0cl9pbmQgKyAxKSBlbmRfaW5kIGNcblxuICAoKiBDaGVjayBpZiBzeW1iIGlzIGEgdmFsaWQgaW50IGNvbnZlcnNpb24gYWZ0ZXIgXCIlbFwiLCBcIiVuXCIgb3IgXCIlTFwiICopXG4gIGFuZCBpc19pbnRfYmFzZSBzeW1iID0gbWF0Y2ggc3ltYiB3aXRoXG4gICAgfCAnZCcgfCAnaScgfCAneCcgfCAnWCcgfCAnbycgfCAndScgLT4gdHJ1ZVxuICAgIHwgXyAtPiBmYWxzZVxuXG4gICgqIENvbnZlcnQgYSBjaGFyIChsLCBuIG9yIEwpIHRvIGl0cyBhc3NvY2lhdGVkIGNvdW50ZXIuICopXG4gIGFuZCBjb3VudGVyX29mX2NoYXIgc3ltYiA9IG1hdGNoIHN5bWIgd2l0aFxuICAgIHwgJ2wnIC0+IExpbmVfY291bnRlciAgfCAnbicgLT4gQ2hhcl9jb3VudGVyXG4gICAgfCAnTCcgLT4gVG9rZW5fY291bnRlciB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgKCogQ29udmVydCAocGx1cywgc3ltYikgdG8gaXRzIGFzc29jaWF0ZWQgaW50X2NvbnYuICopXG4gIGFuZCBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggc3BhY2Ugc3ltYiA9XG4gICAgbWF0Y2ggcGx1cywgaGFzaCwgc3BhY2UsIHN5bWIgd2l0aFxuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ2QnIC0+IEludF9kICB8IGZhbHNlLCBmYWxzZSwgZmFsc2UsICdpJyAtPiBJbnRfaVxuICAgIHwgZmFsc2UsIGZhbHNlLCAgdHJ1ZSwgJ2QnIC0+IEludF9zZCB8IGZhbHNlLCBmYWxzZSwgIHRydWUsICdpJyAtPiBJbnRfc2lcbiAgICB8ICB0cnVlLCBmYWxzZSwgZmFsc2UsICdkJyAtPiBJbnRfcGQgfCAgdHJ1ZSwgZmFsc2UsIGZhbHNlLCAnaScgLT4gSW50X3BpXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAneCcgLT4gSW50X3ggIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ1gnIC0+IEludF9YXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAneCcgLT4gSW50X0N4IHwgZmFsc2UsICB0cnVlLCBmYWxzZSwgJ1gnIC0+IEludF9DWFxuICAgIHwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgJ28nIC0+IEludF9vXG4gICAgfCBmYWxzZSwgIHRydWUsIGZhbHNlLCAnbycgLT4gSW50X0NvXG4gICAgfCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAndScgLT4gSW50X3VcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdkJyAtPiBJbnRfQ2RcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICdpJyAtPiBJbnRfQ2lcbiAgICB8IGZhbHNlLCAgdHJ1ZSwgZmFsc2UsICd1JyAtPiBJbnRfQ3VcbiAgICB8IF8sIHRydWUsIF8sICd4JyB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPiBJbnRfQ3hcbiAgICB8IF8sIHRydWUsIF8sICdYJyB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPiBJbnRfQ1hcbiAgICB8IF8sIHRydWUsIF8sICdvJyB3aGVuIGxlZ2FjeV9iZWhhdmlvciAtPiBJbnRfQ29cbiAgICB8IF8sIHRydWUsIF8sICgnZCcgfCAnaScgfCAndScpIC0+XG4gICAgICBpZiBsZWdhY3lfYmVoYXZpb3IgdGhlbiAoKiBpZ25vcmUgKilcbiAgICAgICAgY29tcHV0ZV9pbnRfY29udiBwY3RfaW5kIHN0cl9pbmQgcGx1cyBmYWxzZSBzcGFjZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCBzeW1iIFwiJyMnXCJcbiAgICB8IHRydWUsIF8sIHRydWUsIF8gLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuXG4gICAgICAgICgqIHBsdXMgYW5kIHNwYWNlOiBsZWdhY3kgaW1wbGVtZW50YXRpb24gcHJlZmVycyBwbHVzICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBmYWxzZSBzeW1iXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnICcgXCInKydcIlxuICAgIHwgZmFsc2UsIF8sIHRydWUsIF8gICAgLT5cbiAgICAgIGlmIGxlZ2FjeV9iZWhhdmlvciB0aGVuICgqIGlnbm9yZSAqKVxuICAgICAgICBjb21wdXRlX2ludF9jb252IHBjdF9pbmQgc3RyX2luZCBwbHVzIGhhc2ggZmFsc2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicgJ1wiXG4gICAgfCB0cnVlLCBfLCBmYWxzZSwgXyAgICAtPlxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gKCogaWdub3JlICopXG4gICAgICAgIGNvbXB1dGVfaW50X2NvbnYgcGN0X2luZCBzdHJfaW5kIGZhbHNlIGhhc2ggc3BhY2Ugc3ltYlxuICAgICAgZWxzZSBpbmNvbXBhdGlibGVfZmxhZyBwY3RfaW5kIHN0cl9pbmQgc3ltYiBcIicrJ1wiXG4gICAgfCBmYWxzZSwgXywgZmFsc2UsIF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgKCogQ29udmVydCAocGx1cywgc3BhY2UsIHN5bWIpIHRvIGl0cyBhc3NvY2lhdGVkIGZsb2F0X2NvbnYuICopXG4gIGFuZCBjb21wdXRlX2Zsb2F0X2NvbnYgcGN0X2luZCBzdHJfaW5kIHBsdXMgaGFzaCBzcGFjZSBzeW1iID1cbiAgICBsZXQgZmxhZyA9IG1hdGNoIHBsdXMsIHNwYWNlIHdpdGhcbiAgICB8IGZhbHNlLCBmYWxzZSAtPiBGbG9hdF9mbGFnX1xuICAgIHwgZmFsc2UsICB0cnVlIC0+IEZsb2F0X2ZsYWdfc1xuICAgIHwgIHRydWUsIGZhbHNlIC0+IEZsb2F0X2ZsYWdfcFxuICAgIHwgIHRydWUsICB0cnVlIC0+XG4gICAgICAoKiBwbHVzIGFuZCBzcGFjZTogbGVnYWN5IGltcGxlbWVudGF0aW9uIHByZWZlcnMgcGx1cyAqKVxuICAgICAgaWYgbGVnYWN5X2JlaGF2aW9yIHRoZW4gRmxvYXRfZmxhZ19wXG4gICAgICBlbHNlIGluY29tcGF0aWJsZV9mbGFnIHBjdF9pbmQgc3RyX2luZCAnICcgXCInKydcIiBpblxuICAgIGxldCBraW5kID0gbWF0Y2ggaGFzaCwgc3ltYiB3aXRoXG4gICAgfCBfLCAnZicgLT4gRmxvYXRfZlxuICAgIHwgXywgJ2UnIC0+IEZsb2F0X2VcbiAgICB8IF8sICdFJyAtPiBGbG9hdF9FXG4gICAgfCBfLCAnZycgLT4gRmxvYXRfZ1xuICAgIHwgXywgJ0cnIC0+IEZsb2F0X0dcbiAgICB8IF8sICdoJyAtPiBGbG9hdF9oXG4gICAgfCBfLCAnSCcgLT4gRmxvYXRfSFxuICAgIHwgZmFsc2UsICdGJyAtPiBGbG9hdF9GXG4gICAgfCB0cnVlLCAnRicgLT4gRmxvYXRfQ0ZcbiAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlIGluXG4gICAgZmxhZywga2luZFxuXG4gICgqIFJhaXNlIFtGYWlsdXJlXSB3aXRoIGEgZnJpZW5kbHkgZXJyb3IgbWVzc2FnZSBhYm91dCBpbmNvbXBhdGlibGUgb3B0aW9ucy4qKVxuICBhbmQgaW5jb21wYXRpYmxlX2ZsYWcgOiB0eXBlIGEgLiBpbnQgLT4gaW50IC0+IGNoYXIgLT4gc3RyaW5nIC0+IGEgPVxuICAgIGZ1biBwY3RfaW5kIHN0cl9pbmQgc3ltYiBvcHRpb24gLT5cbiAgICAgIGxldCBzdWJmbXQgPSBTdHJpbmcuc3ViIHN0ciBwY3RfaW5kIChzdHJfaW5kIC0gcGN0X2luZCkgaW5cbiAgICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgICAgXCJpbnZhbGlkIGZvcm1hdCAlUzogYXQgY2hhcmFjdGVyIG51bWJlciAlZCwgXFxcbiAgICAgICAgICVzIGlzIGluY29tcGF0aWJsZSB3aXRoICclYycgaW4gc3ViLWZvcm1hdCAlU1wiXG4gICAgICAgIHN0ciBwY3RfaW5kIG9wdGlvbiBzeW1iIHN1YmZtdFxuXG4gIGluIHBhcnNlIDAgKFN0cmluZy5sZW5ndGggc3RyKVxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgKCogR3VhcmRlZCBzdHJpbmcgdG8gZm9ybWF0IGNvbnZlcnNpb25zICopXG5cbigqIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBmb3JtYXQgYWNjb3JkaW5nIHRvIGFuIGZtdHR5LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgZm9ybWF0X29mX3N0cmluZ19mbXR0eSBzdHIgZm10dHkgPVxuICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzdHIgaW5cbiAgdHJ5IEZvcm1hdCAodHlwZV9mb3JtYXQgZm10IGZtdHR5LCBzdHIpXG4gIHdpdGggVHlwZV9taXNtYXRjaCAtPlxuICAgIGZhaWx3aXRoX21lc3NhZ2VcbiAgICAgIFwiYmFkIGlucHV0OiBmb3JtYXQgdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICVTIGFuZCAlU1wiXG4gICAgICBzdHIgKHN0cmluZ19vZl9mbXR0eSBmbXR0eSlcblxuKCogQ29udmVydCBhIHN0cmluZyB0byBhIGZvcm1hdCBjb21wYXRpYmxlIHdpdGggYW4gb3RoZXIgZm9ybWF0LiAqKVxuKCogUmFpc2UgW0ZhaWx1cmVdIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBpbiBjYXNlIG9mIHR5cGUgbWlzbWF0Y2guICopXG5sZXQgZm9ybWF0X29mX3N0cmluZ19mb3JtYXQgc3RyIChGb3JtYXQgKGZtdCcsIHN0cicpKSA9XG4gIGxldCBGbXRfRUJCIGZtdCA9IGZtdF9lYmJfb2Zfc3RyaW5nIHN0ciBpblxuICB0cnkgRm9ybWF0ICh0eXBlX2Zvcm1hdCBmbXQgKGZtdHR5X29mX2ZtdCBmbXQnKSwgc3RyKVxuICB3aXRoIFR5cGVfbWlzbWF0Y2ggLT5cbiAgICBmYWlsd2l0aF9tZXNzYWdlXG4gICAgICBcImJhZCBpbnB1dDogZm9ybWF0IHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAlUyBhbmQgJVNcIiBzdHIgc3RyJ1xuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBYYXZpZXIgTGVyb3kgYW5kIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5vcGVuIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljc1xub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRcblxubGV0IGtmcHJpbnRmIGsgbyAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmIChmdW4gYWNjIC0+IG91dHB1dF9hY2MgbyBhY2M7IGsgbykgRW5kX29mX2FjYyBmbXRcbmxldCBrYnByaW50ZiBrIGIgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX3ByaW50ZiAoZnVuIGFjYyAtPiBidWZwdXRfYWNjIGIgYWNjOyBrIGIpIEVuZF9vZl9hY2MgZm10XG5sZXQgaWtmcHJpbnRmIGsgb2MgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBtYWtlX2lwcmludGYgayBvYyBmbXRcbmxldCBpa2JwcmludGYgPSBpa2ZwcmludGZcblxubGV0IGZwcmludGYgb2MgZm10ID0ga2ZwcmludGYgaWdub3JlIG9jIGZtdFxubGV0IGJwcmludGYgYiBmbXQgPSBrYnByaW50ZiBpZ25vcmUgYiBmbXRcbmxldCBpZnByaW50ZiBvYyBmbXQgPSBpa2ZwcmludGYgaWdub3JlIG9jIGZtdFxubGV0IGlicHJpbnRmIGIgZm10ID0gaWticHJpbnRmIGlnbm9yZSBiIGZtdFxubGV0IHByaW50ZiBmbXQgPSBmcHJpbnRmIHN0ZG91dCBmbXRcbmxldCBlcHJpbnRmIGZtdCA9IGZwcmludGYgc3RkZXJyIGZtdFxuXG5sZXQga3NwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIGxldCBrJyBhY2MgPVxuICAgIGxldCBidWYgPSBCdWZmZXIuY3JlYXRlIDY0IGluXG4gICAgc3RycHV0X2FjYyBidWYgYWNjO1xuICAgIGsgKEJ1ZmZlci5jb250ZW50cyBidWYpIGluXG4gIG1ha2VfcHJpbnRmIGsnIEVuZF9vZl9hY2MgZm10XG5cbmxldCBzcHJpbnRmIGZtdCA9IGtzcHJpbnRmIChmdW4gcyAtPiBzKSBmbXRcblxubGV0IGtwcmludGYgPSBrc3ByaW50ZlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgIERhbWllbiBEb2xpZ2V6LCBwcm9qZXQgUGFyYSwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIGtleSA9IHN0cmluZ1xudHlwZSBkb2MgPSBzdHJpbmdcbnR5cGUgdXNhZ2VfbXNnID0gc3RyaW5nXG50eXBlIGFub25fZnVuID0gKHN0cmluZyAtPiB1bml0KVxuXG50eXBlIHNwZWMgPVxuICB8IFVuaXQgb2YgKHVuaXQgLT4gdW5pdCkgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggdW5pdCBhcmd1bWVudCAqKVxuICB8IEJvb2wgb2YgKGJvb2wgLT4gdW5pdCkgICAgICgqIENhbGwgdGhlIGZ1bmN0aW9uIHdpdGggYSBib29sIGFyZ3VtZW50ICopXG4gIHwgU2V0IG9mIGJvb2wgcmVmICAgICAgICAgICAgKCogU2V0IHRoZSByZWZlcmVuY2UgdG8gdHJ1ZSAqKVxuICB8IENsZWFyIG9mIGJvb2wgcmVmICAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIGZhbHNlICopXG4gIHwgU3RyaW5nIG9mIChzdHJpbmcgLT4gdW5pdCkgKCogQ2FsbCB0aGUgZnVuY3Rpb24gd2l0aCBhIHN0cmluZyBhcmd1bWVudCAqKVxuICB8IFNldF9zdHJpbmcgb2Ygc3RyaW5nIHJlZiAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBzdHJpbmcgYXJndW1lbnQgKilcbiAgfCBJbnQgb2YgKGludCAtPiB1bml0KSAgICAgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGFuIGludCBhcmd1bWVudCAqKVxuICB8IFNldF9pbnQgb2YgaW50IHJlZiAgICAgICAgICgqIFNldCB0aGUgcmVmZXJlbmNlIHRvIHRoZSBpbnQgYXJndW1lbnQgKilcbiAgfCBGbG9hdCBvZiAoZmxvYXQgLT4gdW5pdCkgICAoKiBDYWxsIHRoZSBmdW5jdGlvbiB3aXRoIGEgZmxvYXQgYXJndW1lbnQgKilcbiAgfCBTZXRfZmxvYXQgb2YgZmxvYXQgcmVmICAgICAoKiBTZXQgdGhlIHJlZmVyZW5jZSB0byB0aGUgZmxvYXQgYXJndW1lbnQgKilcbiAgfCBUdXBsZSBvZiBzcGVjIGxpc3QgICAgICAgICAoKiBUYWtlIHNldmVyYWwgYXJndW1lbnRzIGFjY29yZGluZyB0byB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjIGxpc3QgKilcbiAgfCBTeW1ib2wgb2Ygc3RyaW5nIGxpc3QgKiAoc3RyaW5nIC0+IHVuaXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogVGFrZSBvbmUgb2YgdGhlIHN5bWJvbHMgYXMgYXJndW1lbnQgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgc3ltYm9sLiAqKVxuICB8IFJlc3Qgb2YgKHN0cmluZyAtPiB1bml0KSAgICgqIFN0b3AgaW50ZXJwcmV0aW5nIGtleXdvcmRzIGFuZCBjYWxsIHRoZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHdpdGggZWFjaCByZW1haW5pbmcgYXJndW1lbnQgKilcbiAgfCBSZXN0X2FsbCBvZiAoc3RyaW5nIGxpc3QgLT4gdW5pdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBTdG9wIGludGVycHJldGluZyBrZXl3b3JkcyBhbmQgY2FsbCB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiB3aXRoIGFsbCByZW1haW5pbmcgYXJndW1lbnRzLiAqKVxuICB8IEV4cGFuZCBvZiAoc3RyaW5nIC0+IHN0cmluZyBhcnJheSkgKCogSWYgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgdG8gcHJvY2Vzc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlIG9mIHRoZSBmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW1wiLWZvb1wiOyBcImFyZ1wiXSBAIHJlc3RdIHdoZXJlIFwiZm9vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHJlZ2lzdGVyZWQgYXMgW0V4cGFuZCBmXSwgdGhlbiB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50cyBbZiBcImFyZ1wiIEAgcmVzdF0gYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWQuIE9ubHkgYWxsb3dlZCBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXS4gKilcblxuZXhjZXB0aW9uIEJhZCBvZiBzdHJpbmdcbmV4Y2VwdGlvbiBIZWxwIG9mIHN0cmluZ1xuXG50eXBlIGVycm9yID1cbiAgfCBVbmtub3duIG9mIHN0cmluZ1xuICB8IFdyb25nIG9mIHN0cmluZyAqIHN0cmluZyAqIHN0cmluZyAgKCogb3B0aW9uLCBhY3R1YWwsIGV4cGVjdGVkICopXG4gIHwgTWlzc2luZyBvZiBzdHJpbmdcbiAgfCBNZXNzYWdlIG9mIHN0cmluZ1xuXG5leGNlcHRpb24gU3RvcCBvZiBlcnJvciAoKiB1c2VkIGludGVybmFsbHkgKilcblxub3BlbiBQcmludGZcblxubGV0IHJlYyBhc3NvYzMgeCBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gIHwgW10gLT4gcmFpc2UgTm90X2ZvdW5kXG4gIHwgKHkxLCB5MiwgXykgOjogXyB3aGVuIHkxID0geCAtPiB5MlxuICB8IF8gOjogdCAtPiBhc3NvYzMgeCB0XG5cblxubGV0IHNwbGl0IHMgPVxuICBsZXQgaSA9IFN0cmluZy5pbmRleCBzICc9JyBpblxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIFN0cmluZy5zdWIgcyAwIGksIFN0cmluZy5zdWIgcyAoaSsxKSAobGVuLShpKzEpKVxuXG5cbmxldCBtYWtlX3N5bWxpc3QgcHJlZml4IHNlcCBzdWZmaXggbCA9XG4gIG1hdGNoIGwgd2l0aFxuICB8IFtdIC0+IFwiPG5vbmU+XCJcbiAgfCBoOjp0IC0+IChMaXN0LmZvbGRfbGVmdCAoZnVuIHggeSAtPiB4IF4gc2VwIF4geSkgKHByZWZpeCBeIGgpIHQpIF4gc3VmZml4XG5cblxubGV0IHByaW50X3NwZWMgYnVmIChrZXksIHNwZWMsIGRvYykgPVxuICBpZiBTdHJpbmcubGVuZ3RoIGRvYyA+IDAgdGhlblxuICAgIG1hdGNoIHNwZWMgd2l0aFxuICAgIHwgU3ltYm9sIChsLCBfKSAtPlxuICAgICAgICBicHJpbnRmIGJ1ZiBcIiAgJXMgJXMlc1xcblwiIGtleSAobWFrZV9zeW1saXN0IFwie1wiIFwifFwiIFwifVwiIGwpIGRvY1xuICAgIHwgXyAtPlxuICAgICAgICBicHJpbnRmIGJ1ZiBcIiAgJXMgJXNcXG5cIiBrZXkgZG9jXG5cblxubGV0IGhlbHBfYWN0aW9uICgpID0gcmFpc2UgKFN0b3AgKFVua25vd24gXCItaGVscFwiKSlcblxubGV0IGFkZF9oZWxwIHNwZWNsaXN0ID1cbiAgbGV0IGFkZDEgPVxuICAgIHRyeSBpZ25vcmUgKGFzc29jMyBcIi1oZWxwXCIgc3BlY2xpc3QpOyBbXVxuICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgICAgICBbXCItaGVscFwiLCBVbml0IGhlbHBfYWN0aW9uLCBcIiBEaXNwbGF5IHRoaXMgbGlzdCBvZiBvcHRpb25zXCJdXG4gIGFuZCBhZGQyID1cbiAgICB0cnkgaWdub3JlIChhc3NvYzMgXCItLWhlbHBcIiBzcGVjbGlzdCk7IFtdXG4gICAgd2l0aCBOb3RfZm91bmQgLT5cbiAgICAgICAgICAgIFtcIi0taGVscFwiLCBVbml0IGhlbHBfYWN0aW9uLCBcIiBEaXNwbGF5IHRoaXMgbGlzdCBvZiBvcHRpb25zXCJdXG4gIGluXG4gIHNwZWNsaXN0IEAgKGFkZDEgQCBhZGQyKVxuXG5cbmxldCB1c2FnZV9iIGJ1ZiBzcGVjbGlzdCBlcnJtc2cgPVxuICBicHJpbnRmIGJ1ZiBcIiVzXFxuXCIgZXJybXNnO1xuICBMaXN0Lml0ZXIgKHByaW50X3NwZWMgYnVmKSAoYWRkX2hlbHAgc3BlY2xpc3QpXG5cblxubGV0IHVzYWdlX3N0cmluZyBzcGVjbGlzdCBlcnJtc2cgPVxuICBsZXQgYiA9IEJ1ZmZlci5jcmVhdGUgMjAwIGluXG4gIHVzYWdlX2IgYiBzcGVjbGlzdCBlcnJtc2c7XG4gIEJ1ZmZlci5jb250ZW50cyBiXG5cblxubGV0IHVzYWdlIHNwZWNsaXN0IGVycm1zZyA9XG4gIGVwcmludGYgXCIlc1wiICh1c2FnZV9zdHJpbmcgc3BlY2xpc3QgZXJybXNnKVxuXG5cbmxldCBjdXJyZW50ID0gcmVmIDBcblxubGV0IGJvb2xfb2Zfc3RyaW5nX29wdCB4ID1cbiAgdHJ5IFNvbWUgKGJvb2xfb2Zfc3RyaW5nIHgpXG4gIHdpdGggSW52YWxpZF9hcmd1bWVudCBfIC0+IE5vbmVcblxubGV0IGludF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoaW50X29mX3N0cmluZyB4KVxuICB3aXRoIEZhaWx1cmUgXyAtPiBOb25lXG5cbmxldCBmbG9hdF9vZl9zdHJpbmdfb3B0IHggPVxuICB0cnkgU29tZSAoZmxvYXRfb2Zfc3RyaW5nIHgpXG4gIHdpdGggRmFpbHVyZSBfIC0+IE5vbmVcblxubGV0IHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCBhbGxvd19leHBhbmQgY3VycmVudCBhcmd2IHNwZWNsaXN0IGFub25mdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnID1cbiAgbGV0IGluaXRwb3MgPSAhY3VycmVudCBpblxuICBsZXQgY29udmVydF9lcnJvciBlcnJvciA9XG4gICAgKCogY29udmVydCBhbiBpbnRlcm5hbCBlcnJvciB0byBhIEJhZC9IZWxwIGV4Y2VwdGlvblxuICAgICAgICpvciogYWRkIHRoZSBwcm9ncmFtIG5hbWUgYXMgYSBwcmVmaXggYW5kIHRoZSB1c2FnZSBtZXNzYWdlIGFzIGEgc3VmZml4XG4gICAgICAgdG8gYW4gdXNlci1yYWlzZWQgQmFkIGV4Y2VwdGlvbi5cbiAgICAqKVxuICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgICBsZXQgcHJvZ25hbWUgPVxuICAgICAgaWYgaW5pdHBvcyA8IChBcnJheS5sZW5ndGggIWFyZ3YpIHRoZW4gIWFyZ3YuKGluaXRwb3MpIGVsc2UgXCIoPylcIiBpblxuICAgIGJlZ2luIG1hdGNoIGVycm9yIHdpdGhcbiAgICAgIHwgVW5rbm93biBcIi1oZWxwXCIgLT4gKClcbiAgICAgIHwgVW5rbm93biBcIi0taGVscFwiIC0+ICgpXG4gICAgICB8IFVua25vd24gcyAtPlxuICAgICAgICAgIGJwcmludGYgYiBcIiVzOiB1bmtub3duIG9wdGlvbiAnJXMnLlxcblwiIHByb2duYW1lIHNcbiAgICAgIHwgTWlzc2luZyBzIC0+XG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6IG9wdGlvbiAnJXMnIG5lZWRzIGFuIGFyZ3VtZW50LlxcblwiIHByb2duYW1lIHNcbiAgICAgIHwgV3JvbmcgKG9wdCwgYXJnLCBleHBlY3RlZCkgLT5cbiAgICAgICAgICBicHJpbnRmIGIgXCIlczogd3JvbmcgYXJndW1lbnQgJyVzJzsgb3B0aW9uICclcycgZXhwZWN0cyAlcy5cXG5cIlxuICAgICAgICAgICAgICAgICAgcHJvZ25hbWUgYXJnIG9wdCBleHBlY3RlZFxuICAgICAgfCBNZXNzYWdlIHMgLT4gKCogdXNlciBlcnJvciBtZXNzYWdlICopXG4gICAgICAgICAgYnByaW50ZiBiIFwiJXM6ICVzLlxcblwiIHByb2duYW1lIHNcbiAgICBlbmQ7XG4gICAgdXNhZ2VfYiBiICFzcGVjbGlzdCBlcnJtc2c7XG4gICAgaWYgZXJyb3IgPSBVbmtub3duIFwiLWhlbHBcIiB8fCBlcnJvciA9IFVua25vd24gXCItLWhlbHBcIlxuICAgIHRoZW4gSGVscCAoQnVmZmVyLmNvbnRlbnRzIGIpXG4gICAgZWxzZSBCYWQgKEJ1ZmZlci5jb250ZW50cyBiKVxuICBpblxuICBpbmNyIGN1cnJlbnQ7XG4gIHdoaWxlICFjdXJyZW50IDwgKEFycmF5Lmxlbmd0aCAhYXJndikgZG9cbiAgICBiZWdpbiB0cnlcbiAgICAgIGxldCBzID0gIWFyZ3YuKCFjdXJyZW50KSBpblxuICAgICAgaWYgU3RyaW5nLmxlbmd0aCBzID49IDEgJiYgcy5bMF0gPSAnLScgdGhlbiBiZWdpblxuICAgICAgICBsZXQgYWN0aW9uLCBmb2xsb3cgPVxuICAgICAgICAgIHRyeSBhc3NvYzMgcyAhc3BlY2xpc3QsIE5vbmVcbiAgICAgICAgICB3aXRoIE5vdF9mb3VuZCAtPlxuICAgICAgICAgIHRyeVxuICAgICAgICAgICAgbGV0IGtleXdvcmQsIGFyZyA9IHNwbGl0IHMgaW5cbiAgICAgICAgICAgIGFzc29jMyBrZXl3b3JkICFzcGVjbGlzdCwgU29tZSBhcmdcbiAgICAgICAgICB3aXRoIE5vdF9mb3VuZCAtPiByYWlzZSAoU3RvcCAoVW5rbm93biBzKSlcbiAgICAgICAgaW5cbiAgICAgICAgbGV0IG5vX2FyZyAoKSA9XG4gICAgICAgICAgbWF0Y2ggZm9sbG93IHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgYXJnIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcIm5vIGFyZ3VtZW50XCIpKSkgaW5cbiAgICAgICAgbGV0IGdldF9hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+XG4gICAgICAgICAgICAgIGlmICFjdXJyZW50ICsgMSA8IChBcnJheS5sZW5ndGggIWFyZ3YpIHRoZW4gIWFyZ3YuKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgICAgZWxzZSByYWlzZSAoU3RvcCAoTWlzc2luZyBzKSlcbiAgICAgICAgICB8IFNvbWUgYXJnIC0+IGFyZ1xuICAgICAgICBpblxuICAgICAgICBsZXQgY29uc3VtZV9hcmcgKCkgPVxuICAgICAgICAgIG1hdGNoIGZvbGxvdyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IGluY3IgY3VycmVudFxuICAgICAgICAgIHwgU29tZSBfIC0+ICgpXG4gICAgICAgIGluXG4gICAgICAgIGxldCByZWMgdHJlYXRfYWN0aW9uID0gZnVuY3Rpb25cbiAgICAgICAgfCBVbml0IGYgLT4gbm9fYXJnICgpOyBmICgpO1xuICAgICAgICB8IEJvb2wgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGJvb2xfb2Zfc3RyaW5nX29wdCBhcmcgd2l0aFxuICAgICAgICAgICAgfCBOb25lIC0+IHJhaXNlIChTdG9wIChXcm9uZyAocywgYXJnLCBcImEgYm9vbGVhblwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgcyAtPiBmIHNcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFNldCByIC0+IG5vX2FyZyAoKTsgciA6PSB0cnVlO1xuICAgICAgICB8IENsZWFyIHIgLT4gbm9fYXJnICgpOyByIDo9IGZhbHNlO1xuICAgICAgICB8IFN0cmluZyBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgZiBhcmc7XG4gICAgICAgICAgICBjb25zdW1lX2FyZyAoKTtcbiAgICAgICAgfCBTeW1ib2wgKHN5bWIsIGYpIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgaWYgTGlzdC5tZW0gYXJnIHN5bWIgdGhlbiBiZWdpblxuICAgICAgICAgICAgICBmIGFyZztcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgICAgICByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJvbmUgb2Y6IFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIChtYWtlX3N5bWxpc3QgXCJcIiBcIiBcIiBcIlwiIHN5bWIpKSkpXG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBTZXRfc3RyaW5nIHIgLT5cbiAgICAgICAgICAgIHIgOj0gZ2V0X2FyZyAoKTtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IEludCBmIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggaW50X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhbiBpbnRlZ2VyXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IGYgeFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0X2ludCByIC0+XG4gICAgICAgICAgICBsZXQgYXJnID0gZ2V0X2FyZyAoKSBpblxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggaW50X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhbiBpbnRlZ2VyXCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IHIgOj0geFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgRmxvYXQgZiAtPlxuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIGZsb2F0X29mX3N0cmluZ19vcHQgYXJnIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSAtPiByYWlzZSAoU3RvcCAoV3JvbmcgKHMsIGFyZywgXCJhIGZsb2F0XCIpKSlcbiAgICAgICAgICAgIHwgU29tZSB4IC0+IGYgeFxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgIHwgU2V0X2Zsb2F0IHIgLT5cbiAgICAgICAgICAgIGxldCBhcmcgPSBnZXRfYXJnICgpIGluXG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBmbG9hdF9vZl9zdHJpbmdfb3B0IGFyZyB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gcmFpc2UgKFN0b3AgKFdyb25nIChzLCBhcmcsIFwiYSBmbG9hdFwiKSkpXG4gICAgICAgICAgICB8IFNvbWUgeCAtPiByIDo9IHhcbiAgICAgICAgICAgIGVuZDtcbiAgICAgICAgICAgIGNvbnN1bWVfYXJnICgpO1xuICAgICAgICB8IFR1cGxlIHNwZWNzIC0+XG4gICAgICAgICAgICBub19hcmcgKCk7XG4gICAgICAgICAgICBMaXN0Lml0ZXIgdHJlYXRfYWN0aW9uIHNwZWNzO1xuICAgICAgICB8IFJlc3QgZiAtPlxuICAgICAgICAgICAgbm9fYXJnICgpO1xuICAgICAgICAgICAgd2hpbGUgIWN1cnJlbnQgPCAoQXJyYXkubGVuZ3RoICFhcmd2KSAtIDEgZG9cbiAgICAgICAgICAgICAgZiAhYXJndi4oIWN1cnJlbnQgKyAxKTtcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBkb25lO1xuICAgICAgICB8IFJlc3RfYWxsIGYgLT5cbiAgICAgICAgICAgIG5vX2FyZyAoKTtcbiAgICAgICAgICAgIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgIHdoaWxlICFjdXJyZW50IDwgQXJyYXkubGVuZ3RoICFhcmd2IC0gMSBkb1xuICAgICAgICAgICAgICBhY2MgOj0gIWFyZ3YuKCFjdXJyZW50ICsgMSkgOjogIWFjYztcbiAgICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgZiAoTGlzdC5yZXYgIWFjYylcbiAgICAgICAgfCBFeHBhbmQgZiAtPlxuICAgICAgICAgICAgaWYgbm90IGFsbG93X2V4cGFuZCB0aGVuXG4gICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiQXJnLkV4cGFuZCBpcyBpcyBvbmx5IGFsbG93ZWQgd2l0aCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXJnLnBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljXCIpO1xuICAgICAgICAgICAgbGV0IGFyZyA9IGdldF9hcmcgKCkgaW5cbiAgICAgICAgICAgIGxldCBuZXdhcmcgPSBmIGFyZyBpblxuICAgICAgICAgICAgY29uc3VtZV9hcmcgKCk7XG4gICAgICAgICAgICBsZXQgYmVmb3JlID0gQXJyYXkuc3ViICFhcmd2IDAgKCFjdXJyZW50ICsgMSlcbiAgICAgICAgICAgIGFuZCBhZnRlciA9XG4gICAgICAgICAgICAgIEFycmF5LnN1YiAhYXJndiAoIWN1cnJlbnQgKyAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgKChBcnJheS5sZW5ndGggIWFyZ3YpIC0gIWN1cnJlbnQgLSAxKSBpblxuICAgICAgICAgICAgYXJndjo9IEFycmF5LmNvbmNhdCBbYmVmb3JlO25ld2FyZzthZnRlcl07XG4gICAgICAgIGluXG4gICAgICAgIHRyZWF0X2FjdGlvbiBhY3Rpb24gZW5kXG4gICAgICBlbHNlIGFub25mdW4gc1xuICAgIHdpdGggfCBCYWQgbSAtPiByYWlzZSAoY29udmVydF9lcnJvciAoTWVzc2FnZSBtKSk7XG4gICAgICAgICB8IFN0b3AgZSAtPiByYWlzZSAoY29udmVydF9lcnJvciBlKTtcbiAgICBlbmQ7XG4gICAgaW5jciBjdXJyZW50XG4gIGRvbmVcblxubGV0IHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZyA9XG4gIHBhcnNlX2FuZF9leHBhbmRfYXJndl9keW5hbWljX2F1eCB0cnVlIGN1cnJlbnQgYXJndiBzcGVjbGlzdCBhbm9uZnVuIGVycm1zZ1xuXG5sZXQgcGFyc2VfYXJndl9keW5hbWljID8oY3VycmVudD1jdXJyZW50KSBhcmd2IHNwZWNsaXN0IGFub25mdW4gZXJybXNnID1cbiAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWNfYXV4IGZhbHNlIGN1cnJlbnQgKHJlZiBhcmd2KSBzcGVjbGlzdCBhbm9uZnVuXG4gICAgZXJybXNnXG5cblxubGV0IHBhcnNlX2FyZ3YgPyhjdXJyZW50PWN1cnJlbnQpIGFyZ3Ygc3BlY2xpc3QgYW5vbmZ1biBlcnJtc2cgPVxuICBwYXJzZV9hcmd2X2R5bmFtaWMgfmN1cnJlbnQ6Y3VycmVudCBhcmd2IChyZWYgc3BlY2xpc3QpIGFub25mdW4gZXJybXNnXG5cblxubGV0IHBhcnNlIGwgZiBtc2cgPVxuICB0cnlcbiAgICBwYXJzZV9hcmd2IFN5cy5hcmd2IGwgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cblxubGV0IHBhcnNlX2R5bmFtaWMgbCBmIG1zZyA9XG4gIHRyeVxuICAgIHBhcnNlX2FyZ3ZfZHluYW1pYyBTeXMuYXJndiBsIGYgbXNnXG4gIHdpdGhcbiAgfCBCYWQgbXNnIC0+IGVwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAyXG4gIHwgSGVscCBtc2cgLT4gcHJpbnRmIFwiJXNcIiBtc2c7IGV4aXQgMFxuXG5sZXQgcGFyc2VfZXhwYW5kIGwgZiBtc2cgPVxuICB0cnlcbiAgICBsZXQgYXJndiA9IHJlZiBTeXMuYXJndiBpblxuICAgIGxldCBzcGVjID0gcmVmIGwgaW5cbiAgICBsZXQgY3VycmVudCA9IHJlZiAoIWN1cnJlbnQpIGluXG4gICAgcGFyc2VfYW5kX2V4cGFuZF9hcmd2X2R5bmFtaWMgY3VycmVudCBhcmd2IHNwZWMgZiBtc2dcbiAgd2l0aFxuICB8IEJhZCBtc2cgLT4gZXByaW50ZiBcIiVzXCIgbXNnOyBleGl0IDJcbiAgfCBIZWxwIG1zZyAtPiBwcmludGYgXCIlc1wiIG1zZzsgZXhpdCAwXG5cblxubGV0IHNlY29uZF93b3JkIHMgPVxuICBsZXQgbGVuID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gIGxldCByZWMgbG9vcCBuID1cbiAgICBpZiBuID49IGxlbiB0aGVuIGxlblxuICAgIGVsc2UgaWYgcy5bbl0gPSAnICcgdGhlbiBsb29wIChuKzEpXG4gICAgZWxzZSBuXG4gIGluXG4gIG1hdGNoIFN0cmluZy5pbmRleCBzICdcXHQnIHdpdGhcbiAgfCBuIC0+IGxvb3AgKG4rMSlcbiAgfCBleGNlcHRpb24gTm90X2ZvdW5kIC0+XG4gICAgICBiZWdpbiBtYXRjaCBTdHJpbmcuaW5kZXggcyAnICcgd2l0aFxuICAgICAgfCBuIC0+IGxvb3AgKG4rMSlcbiAgICAgIHwgZXhjZXB0aW9uIE5vdF9mb3VuZCAtPiBsZW5cbiAgICAgIGVuZFxuXG5cbmxldCBtYXhfYXJnX2xlbiBjdXIgKGt3ZCwgc3BlYywgZG9jKSA9XG4gIG1hdGNoIHNwZWMgd2l0aFxuICB8IFN5bWJvbCBfIC0+IEludC5tYXggY3VyIChTdHJpbmcubGVuZ3RoIGt3ZClcbiAgfCBfIC0+IEludC5tYXggY3VyIChTdHJpbmcubGVuZ3RoIGt3ZCArIHNlY29uZF93b3JkIGRvYylcblxuXG5sZXQgcmVwbGFjZV9sZWFkaW5nX3RhYiBzID1cbiAgbGV0IHNlZW4gPSByZWYgZmFsc2UgaW5cbiAgU3RyaW5nLm1hcCAoZnVuY3Rpb24gJ1xcdCcgd2hlbiBub3QgIXNlZW4gLT4gc2VlbiA6PSB0cnVlOyAnICcgfCBjIC0+IGMpIHNcblxubGV0IGFkZF9wYWRkaW5nIGxlbiBrc2QgPVxuICBtYXRjaCBrc2Qgd2l0aFxuICB8IChfLCBfLCBcIlwiKSAtPlxuICAgICAgKCogRG8gbm90IHBhZCB1bmRvY3VtZW50ZWQgb3B0aW9ucywgc28gdGhhdCB0aGV5IHN0aWxsIGRvbid0IHNob3cgdXAgd2hlblxuICAgICAgICogcnVuIHRocm91Z2ggW3VzYWdlXSBvciBbcGFyc2VdLiAqKVxuICAgICAga3NkXG4gIHwgKGt3ZCwgKFN5bWJvbCBfIGFzIHNwZWMpLCBtc2cpIC0+XG4gICAgICBsZXQgY3V0Y29sID0gc2Vjb25kX3dvcmQgbXNnIGluXG4gICAgICBsZXQgc3BhY2VzID0gU3RyaW5nLm1ha2UgKChJbnQubWF4IDAgKGxlbiAtIGN1dGNvbCkpICsgMykgJyAnIGluXG4gICAgICAoa3dkLCBzcGVjLCBcIlxcblwiIF4gc3BhY2VzIF4gcmVwbGFjZV9sZWFkaW5nX3RhYiBtc2cpXG4gIHwgKGt3ZCwgc3BlYywgbXNnKSAtPlxuICAgICAgbGV0IGN1dGNvbCA9IHNlY29uZF93b3JkIG1zZyBpblxuICAgICAgbGV0IGt3ZF9sZW4gPSBTdHJpbmcubGVuZ3RoIGt3ZCBpblxuICAgICAgbGV0IGRpZmYgPSBsZW4gLSBrd2RfbGVuIC0gY3V0Y29sIGluXG4gICAgICBpZiBkaWZmIDw9IDAgdGhlblxuICAgICAgICAoa3dkLCBzcGVjLCByZXBsYWNlX2xlYWRpbmdfdGFiIG1zZylcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IHNwYWNlcyA9IFN0cmluZy5tYWtlIGRpZmYgJyAnIGluXG4gICAgICAgIGxldCBwcmVmaXggPSBTdHJpbmcuc3ViIChyZXBsYWNlX2xlYWRpbmdfdGFiIG1zZykgMCBjdXRjb2wgaW5cbiAgICAgICAgbGV0IHN1ZmZpeCA9IFN0cmluZy5zdWIgbXNnIGN1dGNvbCAoU3RyaW5nLmxlbmd0aCBtc2cgLSBjdXRjb2wpIGluXG4gICAgICAgIChrd2QsIHNwZWMsIHByZWZpeCBeIHNwYWNlcyBeIHN1ZmZpeClcblxuXG5sZXQgYWxpZ24gPyhsaW1pdD1tYXhfaW50KSBzcGVjbGlzdCA9XG4gIGxldCBjb21wbGV0ZWQgPSBhZGRfaGVscCBzcGVjbGlzdCBpblxuICBsZXQgbGVuID0gTGlzdC5mb2xkX2xlZnQgbWF4X2FyZ19sZW4gMCBjb21wbGV0ZWQgaW5cbiAgbGV0IGxlbiA9IEludC5taW4gbGVuIGxpbWl0IGluXG4gIExpc3QubWFwIChhZGRfcGFkZGluZyBsZW4pIGNvbXBsZXRlZFxuXG5sZXQgdHJpbV9jciBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBpZiBsZW4gPiAwICYmIFN0cmluZy5nZXQgcyAobGVuIC0gMSkgPSAnXFxyJyB0aGVuXG4gICAgU3RyaW5nLnN1YiBzIDAgKGxlbiAtIDEpXG4gIGVsc2VcbiAgICBzXG5cbmxldCByZWFkX2F1eCB0cmltIHNlcCBmaWxlID1cbiAgbGV0IGljID0gb3Blbl9pbl9iaW4gZmlsZSBpblxuICBsZXQgYnVmID0gQnVmZmVyLmNyZWF0ZSAyMDAgaW5cbiAgbGV0IHdvcmRzID0gcmVmIFtdIGluXG4gIGxldCBzdGFzaCAoKSA9XG4gICAgbGV0IHdvcmQgPSBCdWZmZXIuY29udGVudHMgYnVmIGluXG4gICAgbGV0IHdvcmQgPSBpZiB0cmltIHRoZW4gdHJpbV9jciB3b3JkIGVsc2Ugd29yZCBpblxuICAgIHdvcmRzIDo9IHdvcmQgOjogIXdvcmRzO1xuICAgIEJ1ZmZlci5jbGVhciBidWZcbiAgaW5cbiAgYmVnaW5cbiAgICB0cnkgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICBsZXQgYyA9IGlucHV0X2NoYXIgaWMgaW5cbiAgICAgICAgaWYgYyA9IHNlcCB0aGVuIHN0YXNoICgpIGVsc2UgQnVmZmVyLmFkZF9jaGFyIGJ1ZiBjXG4gICAgICBkb25lXG4gICAgd2l0aCBFbmRfb2ZfZmlsZSAtPiAoKVxuICBlbmQ7XG4gIGlmIEJ1ZmZlci5sZW5ndGggYnVmID4gMCB0aGVuIHN0YXNoICgpO1xuICBjbG9zZV9pbiBpYztcbiAgQXJyYXkub2ZfbGlzdCAoTGlzdC5yZXYgIXdvcmRzKVxuXG5sZXQgcmVhZF9hcmcgPSByZWFkX2F1eCB0cnVlICdcXG4nXG5cbmxldCByZWFkX2FyZzAgPSByZWFkX2F1eCBmYWxzZSAnXFx4MDAnXG5cbmxldCB3cml0ZV9hdXggc2VwIGZpbGUgYXJncyA9XG4gIGxldCBvYyA9IG9wZW5fb3V0X2JpbiBmaWxlIGluXG4gIEFycmF5Lml0ZXIgKGZ1biBzIC0+IGZwcmludGYgb2MgXCIlcyVjXCIgcyBzZXApIGFyZ3M7XG4gIGNsb3NlX291dCBvY1xuXG5sZXQgd3JpdGVfYXJnID0gd3JpdGVfYXV4ICdcXG4nXG5cbmxldCB3cml0ZV9hcmcwID0gd3JpdGVfYXV4ICdcXHgwMCdcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBQcmludGZcblxudHlwZSB0ID0gZXhuID0gLi5cblxubGV0IHByaW50ZXJzID0gQXRvbWljLm1ha2UgW11cblxubGV0IGxvY2ZtdCA9IGZvcm1hdF9vZl9zdHJpbmcgXCJGaWxlIFxcXCIlc1xcXCIsIGxpbmUgJWQsIGNoYXJhY3RlcnMgJWQtJWQ6ICVzXCJcblxubGV0IGZpZWxkIHggaSA9XG4gIGxldCBmID0gT2JqLmZpZWxkIHggaSBpblxuICBpZiBub3QgKE9iai5pc19ibG9jayBmKSB0aGVuXG4gICAgc3ByaW50ZiBcIiVkXCIgKE9iai5tYWdpYyBmIDogaW50KSAgICAgICAgICAgKCogY2FuIGFsc28gYmUgYSBjaGFyICopXG4gIGVsc2UgaWYgT2JqLnRhZyBmID0gT2JqLnN0cmluZ190YWcgdGhlblxuICAgIHNwcmludGYgXCIlU1wiIChPYmoubWFnaWMgZiA6IHN0cmluZylcbiAgZWxzZSBpZiBPYmoudGFnIGYgPSBPYmouZG91YmxlX3RhZyB0aGVuXG4gICAgc3RyaW5nX29mX2Zsb2F0IChPYmoubWFnaWMgZiA6IGZsb2F0KVxuICBlbHNlXG4gICAgXCJfXCJcblxubGV0IHJlYyBvdGhlcl9maWVsZHMgeCBpID1cbiAgaWYgaSA+PSBPYmouc2l6ZSB4IHRoZW4gXCJcIlxuICBlbHNlIHNwcmludGYgXCIsICVzJXNcIiAoZmllbGQgeCBpKSAob3RoZXJfZmllbGRzIHggKGkrMSkpXG5cbmxldCBmaWVsZHMgeCA9XG4gIG1hdGNoIE9iai5zaXplIHggd2l0aFxuICB8IDAgLT4gXCJcIlxuICB8IDEgLT4gXCJcIlxuICB8IDIgLT4gc3ByaW50ZiBcIiglcylcIiAoZmllbGQgeCAxKVxuICB8IF8gLT4gc3ByaW50ZiBcIiglcyVzKVwiIChmaWVsZCB4IDEpIChvdGhlcl9maWVsZHMgeCAyKVxuXG5sZXQgdXNlX3ByaW50ZXJzIHggPVxuICBsZXQgcmVjIGNvbnYgPSBmdW5jdGlvblxuICAgIHwgaGQgOjogdGwgLT5cbiAgICAgICAgKG1hdGNoIGhkIHggd2l0aFxuICAgICAgICAgfCBOb25lIHwgZXhjZXB0aW9uIF8gLT4gY29udiB0bFxuICAgICAgICAgfCBTb21lIHMgLT4gU29tZSBzKVxuICAgIHwgW10gLT4gTm9uZSBpblxuICBjb252IChBdG9taWMuZ2V0IHByaW50ZXJzKVxuXG5sZXQgdG9fc3RyaW5nX2RlZmF1bHQgPSBmdW5jdGlvblxuICB8IE91dF9vZl9tZW1vcnkgLT4gXCJPdXQgb2YgbWVtb3J5XCJcbiAgfCBTdGFja19vdmVyZmxvdyAtPiBcIlN0YWNrIG92ZXJmbG93XCJcbiAgfCBNYXRjaF9mYWlsdXJlKGZpbGUsIGxpbmUsIGNoYXIpIC0+XG4gICAgICBzcHJpbnRmIGxvY2ZtdCBmaWxlIGxpbmUgY2hhciAoY2hhcis1KSBcIlBhdHRlcm4gbWF0Y2hpbmcgZmFpbGVkXCJcbiAgfCBBc3NlcnRfZmFpbHVyZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNikgXCJBc3NlcnRpb24gZmFpbGVkXCJcbiAgfCBVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZShmaWxlLCBsaW5lLCBjaGFyKSAtPlxuICAgICAgc3ByaW50ZiBsb2NmbXQgZmlsZSBsaW5lIGNoYXIgKGNoYXIrNikgXCJVbmRlZmluZWQgcmVjdXJzaXZlIG1vZHVsZVwiXG4gIHwgeCAtPlxuICAgICAgbGV0IHggPSBPYmoucmVwciB4IGluXG4gICAgICBpZiBPYmoudGFnIHggPD4gMCB0aGVuXG4gICAgICAgIChPYmoubWFnaWMgKE9iai5maWVsZCB4IDApIDogc3RyaW5nKVxuICAgICAgZWxzZVxuICAgICAgICBsZXQgY29uc3RydWN0b3IgPVxuICAgICAgICAgIChPYmoubWFnaWMgKE9iai5maWVsZCAoT2JqLmZpZWxkIHggMCkgMCkgOiBzdHJpbmcpIGluXG4gICAgICAgIGNvbnN0cnVjdG9yIF4gKGZpZWxkcyB4KVxuXG5sZXQgdG9fc3RyaW5nIGUgPVxuICBtYXRjaCB1c2VfcHJpbnRlcnMgZSB3aXRoXG4gIHwgU29tZSBzIC0+IHNcbiAgfCBOb25lIC0+IHRvX3N0cmluZ19kZWZhdWx0IGVcblxubGV0IHByaW50IGZjdCBhcmcgPVxuICB0cnlcbiAgICBmY3QgYXJnXG4gIHdpdGggeCAtPlxuICAgIGVwcmludGYgXCJVbmNhdWdodCBleGNlcHRpb246ICVzXFxuXCIgKHRvX3N0cmluZyB4KTtcbiAgICBmbHVzaCBzdGRlcnI7XG4gICAgcmFpc2UgeFxuXG5sZXQgY2F0Y2ggZmN0IGFyZyA9XG4gIHRyeVxuICAgIGZjdCBhcmdcbiAgd2l0aCB4IC0+XG4gICAgZmx1c2ggc3Rkb3V0O1xuICAgIGVwcmludGYgXCJVbmNhdWdodCBleGNlcHRpb246ICVzXFxuXCIgKHRvX3N0cmluZyB4KTtcbiAgICBleGl0IDJcblxudHlwZSByYXdfYmFja3RyYWNlX3Nsb3RcbnR5cGUgcmF3X2JhY2t0cmFjZV9lbnRyeSA9IHByaXZhdGUgaW50XG50eXBlIHJhd19iYWNrdHJhY2UgPSByYXdfYmFja3RyYWNlX2VudHJ5IGFycmF5XG5cbmxldCByYXdfYmFja3RyYWNlX2VudHJpZXMgYnQgPSBidFxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZTpcbiAgdW5pdCAtPiByYXdfYmFja3RyYWNlID0gXCJjYW1sX2dldF9leGNlcHRpb25fcmF3X2JhY2t0cmFjZVwiXG5cbmV4dGVybmFsIHJhaXNlX3dpdGhfYmFja3RyYWNlOiBleG4gLT4gcmF3X2JhY2t0cmFjZSAtPiAnYVxuICA9IFwiJXJhaXNlX3dpdGhfYmFja3RyYWNlXCJcblxudHlwZSBiYWNrdHJhY2Vfc2xvdCA9XG4gIHwgS25vd25fbG9jYXRpb24gb2Yge1xuICAgICAgaXNfcmFpc2UgICAgOiBib29sO1xuICAgICAgZmlsZW5hbWUgICAgOiBzdHJpbmc7XG4gICAgICBsaW5lX251bWJlciA6IGludDtcbiAgICAgIHN0YXJ0X2NoYXIgIDogaW50O1xuICAgICAgZW5kX2NoYXIgICAgOiBpbnQ7XG4gICAgICBpc19pbmxpbmUgICA6IGJvb2w7XG4gICAgICBkZWZuYW1lICAgICA6IHN0cmluZztcbiAgICB9XG4gIHwgVW5rbm93bl9sb2NhdGlvbiBvZiB7XG4gICAgICBpc19yYWlzZSA6IGJvb2xcbiAgICB9XG5cbigqIHRvIGF2b2lkIHdhcm5pbmcgKilcbmxldCBfID0gW0tub3duX2xvY2F0aW9uIHsgaXNfcmFpc2UgPSBmYWxzZTsgZmlsZW5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX251bWJlciA9IDA7IHN0YXJ0X2NoYXIgPSAwOyBlbmRfY2hhciA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2lubGluZSA9IGZhbHNlOyBkZWZuYW1lID0gXCJcIiB9O1xuICAgICAgICAgVW5rbm93bl9sb2NhdGlvbiB7IGlzX3JhaXNlID0gZmFsc2UgfV1cblxuZXh0ZXJuYWwgY29udmVydF9yYXdfYmFja3RyYWNlX3Nsb3Q6XG4gIHJhd19iYWNrdHJhY2Vfc2xvdCAtPiBiYWNrdHJhY2Vfc2xvdCA9IFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2Vfc2xvdFwiXG5cbmV4dGVybmFsIGNvbnZlcnRfcmF3X2JhY2t0cmFjZTpcbiAgcmF3X2JhY2t0cmFjZSAtPiBiYWNrdHJhY2Vfc2xvdCBhcnJheSA9IFwiY2FtbF9jb252ZXJ0X3Jhd19iYWNrdHJhY2VcIlxuXG5sZXQgY29udmVydF9yYXdfYmFja3RyYWNlIGJ0ID1cbiAgdHJ5IFNvbWUgKGNvbnZlcnRfcmF3X2JhY2t0cmFjZSBidClcbiAgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZVxuXG5sZXQgZm9ybWF0X2JhY2t0cmFjZV9zbG90IHBvcyBzbG90ID1cbiAgbGV0IGluZm8gaXNfcmFpc2UgPVxuICAgIGlmIGlzX3JhaXNlIHRoZW5cbiAgICAgIGlmIHBvcyA9IDAgdGhlbiBcIlJhaXNlZCBhdFwiIGVsc2UgXCJSZS1yYWlzZWQgYXRcIlxuICAgIGVsc2VcbiAgICAgIGlmIHBvcyA9IDAgdGhlbiBcIlJhaXNlZCBieSBwcmltaXRpdmUgb3BlcmF0aW9uIGF0XCIgZWxzZSBcIkNhbGxlZCBmcm9tXCJcbiAgaW5cbiAgbWF0Y2ggc2xvdCB3aXRoXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgICBpZiBsLmlzX3JhaXNlIHRoZW5cbiAgICAgICAgKCogY29tcGlsZXItaW5zZXJ0ZWQgcmUtcmFpc2UsIHNraXBwZWQgKikgTm9uZVxuICAgICAgZWxzZVxuICAgICAgICBTb21lIChzcHJpbnRmIFwiJXMgdW5rbm93biBsb2NhdGlvblwiIChpbmZvIGZhbHNlKSlcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgICBTb21lIChzcHJpbnRmIFwiJXMgJXMgaW4gZmlsZSBcXFwiJXNcXFwiJXMsIGxpbmUgJWQsIGNoYXJhY3RlcnMgJWQtJWRcIlxuICAgICAgICAgICAgICAoaW5mbyBsLmlzX3JhaXNlKSBsLmRlZm5hbWUgbC5maWxlbmFtZVxuICAgICAgICAgICAgICAoaWYgbC5pc19pbmxpbmUgdGhlbiBcIiAoaW5saW5lZClcIiBlbHNlIFwiXCIpXG4gICAgICAgICAgICAgIGwubGluZV9udW1iZXIgbC5zdGFydF9jaGFyIGwuZW5kX2NoYXIpXG5cbmxldCBwcmludF9leGNlcHRpb25fYmFja3RyYWNlIG91dGNoYW4gYmFja3RyYWNlID1cbiAgbWF0Y2ggYmFja3RyYWNlIHdpdGhcbiAgfCBOb25lIC0+XG4gICAgICBmcHJpbnRmIG91dGNoYW5cbiAgICAgICAgXCIoUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIGNhbm5vdCBwcmludCBzdGFjayBiYWNrdHJhY2UpXFxuXCJcbiAgfCBTb21lIGEgLT5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggYSAtIDEgZG9cbiAgICAgICAgbWF0Y2ggZm9ybWF0X2JhY2t0cmFjZV9zbG90IGkgYS4oaSkgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiAoKVxuICAgICAgICAgIHwgU29tZSBzdHIgLT4gZnByaW50ZiBvdXRjaGFuIFwiJXNcXG5cIiBzdHJcbiAgICAgIGRvbmVcblxubGV0IHByaW50X3Jhd19iYWNrdHJhY2Ugb3V0Y2hhbiByYXdfYmFja3RyYWNlID1cbiAgcHJpbnRfZXhjZXB0aW9uX2JhY2t0cmFjZSBvdXRjaGFuIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSlcblxuKCogY29uZnVzaW5nbHkgbmFtZWQ6IHByaW50cyB0aGUgZ2xvYmFsIGN1cnJlbnQgYmFja3RyYWNlICopXG5sZXQgcHJpbnRfYmFja3RyYWNlIG91dGNoYW4gPVxuICBwcmludF9yYXdfYmFja3RyYWNlIG91dGNoYW4gKGdldF9yYXdfYmFja3RyYWNlICgpKVxuXG5sZXQgYmFja3RyYWNlX3RvX3N0cmluZyBiYWNrdHJhY2UgPVxuICBtYXRjaCBiYWNrdHJhY2Ugd2l0aFxuICB8IE5vbmUgLT5cbiAgICAgXCIoUHJvZ3JhbSBub3QgbGlua2VkIHdpdGggLWcsIGNhbm5vdCBwcmludCBzdGFjayBiYWNrdHJhY2UpXFxuXCJcbiAgfCBTb21lIGEgLT5cbiAgICAgIGxldCBiID0gQnVmZmVyLmNyZWF0ZSAxMDI0IGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGEgLSAxIGRvXG4gICAgICAgIG1hdGNoIGZvcm1hdF9iYWNrdHJhY2Vfc2xvdCBpIGEuKGkpIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gKClcbiAgICAgICAgICB8IFNvbWUgc3RyIC0+IGJwcmludGYgYiBcIiVzXFxuXCIgc3RyXG4gICAgICBkb25lO1xuICAgICAgQnVmZmVyLmNvbnRlbnRzIGJcblxubGV0IHJhd19iYWNrdHJhY2VfdG9fc3RyaW5nIHJhd19iYWNrdHJhY2UgPVxuICBiYWNrdHJhY2VfdG9fc3RyaW5nIChjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSlcblxubGV0IGJhY2t0cmFjZV9zbG90X2lzX3JhaXNlID0gZnVuY3Rpb25cbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfcmFpc2VcbiAgfCBVbmtub3duX2xvY2F0aW9uIGwgLT4gbC5pc19yYWlzZVxuXG5sZXQgYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lID0gZnVuY3Rpb25cbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+IGwuaXNfaW5saW5lXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IGZhbHNlXG5cbnR5cGUgbG9jYXRpb24gPSB7XG4gIGZpbGVuYW1lIDogc3RyaW5nO1xuICBsaW5lX251bWJlciA6IGludDtcbiAgc3RhcnRfY2hhciA6IGludDtcbiAgZW5kX2NoYXIgOiBpbnQ7XG59XG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9sb2NhdGlvbiA9IGZ1bmN0aW9uXG4gIHwgVW5rbm93bl9sb2NhdGlvbiBfIC0+IE5vbmVcbiAgfCBLbm93bl9sb2NhdGlvbiBsIC0+XG4gICAgU29tZSB7XG4gICAgICBmaWxlbmFtZSAgICA9IGwuZmlsZW5hbWU7XG4gICAgICBsaW5lX251bWJlciA9IGwubGluZV9udW1iZXI7XG4gICAgICBzdGFydF9jaGFyICA9IGwuc3RhcnRfY2hhcjtcbiAgICAgIGVuZF9jaGFyICAgID0gbC5lbmRfY2hhcjtcbiAgICB9XG5cbmxldCBiYWNrdHJhY2Vfc2xvdF9kZWZuYW1lID0gZnVuY3Rpb25cbiAgfCBVbmtub3duX2xvY2F0aW9uIF9cbiAgfCBLbm93bl9sb2NhdGlvbiB7IGRlZm5hbWUgPSBcIlwiIH0gLT4gTm9uZVxuICB8IEtub3duX2xvY2F0aW9uIGwgLT4gU29tZSBsLmRlZm5hbWVcblxubGV0IGJhY2t0cmFjZV9zbG90cyByYXdfYmFja3RyYWNlID1cbiAgKCogVGhlIGRvY3VtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBndWFyYW50ZWVzIHRoYXQgU29tZSBpc1xuICAgICByZXR1cm5lZCBvbmx5IGlmIGEgcGFydCBvZiB0aGUgdHJhY2UgaXMgdXNhYmxlLiBUaGlzIGdpdmVzIHVzXG4gICAgIGEgYml0IG1vcmUgd29yayB0aGFuIGp1c3QgY29udmVydF9yYXdfYmFja3RyYWNlLCBidXQgaXQgbWFrZXMgdGhlXG4gICAgIEFQSSBtb3JlIHVzZXItZnJpZW5kbHkgLS0gb3RoZXJ3aXNlIG1vc3QgdXNlcnMgd291bGQgaGF2ZSB0b1xuICAgICByZWltcGxlbWVudCB0aGUgXCJQcm9ncmFtIG5vdCBsaW5rZWQgd2l0aCAtZywgc29ycnlcIiBsb2dpY1xuICAgICB0aGVtc2VsdmVzLiAqKVxuICBtYXRjaCBjb252ZXJ0X3Jhd19iYWNrdHJhY2UgcmF3X2JhY2t0cmFjZSB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgYmFja3RyYWNlIC0+XG4gICAgICBsZXQgdXNhYmxlX3Nsb3QgPSBmdW5jdGlvblxuICAgICAgICB8IFVua25vd25fbG9jYXRpb24gXyAtPiBmYWxzZVxuICAgICAgICB8IEtub3duX2xvY2F0aW9uIF8gLT4gdHJ1ZSBpblxuICAgICAgbGV0IHJlYyBleGlzdHNfdXNhYmxlID0gZnVuY3Rpb25cbiAgICAgICAgfCAoLTEpIC0+IGZhbHNlXG4gICAgICAgIHwgaSAtPiB1c2FibGVfc2xvdCBiYWNrdHJhY2UuKGkpIHx8IGV4aXN0c191c2FibGUgKGkgLSAxKSBpblxuICAgICAgaWYgZXhpc3RzX3VzYWJsZSAoQXJyYXkubGVuZ3RoIGJhY2t0cmFjZSAtIDEpXG4gICAgICB0aGVuIFNvbWUgYmFja3RyYWNlXG4gICAgICBlbHNlIE5vbmVcblxubGV0IGJhY2t0cmFjZV9zbG90c19vZl9yYXdfZW50cnkgZW50cnkgPVxuICBiYWNrdHJhY2Vfc2xvdHMgW3wgZW50cnkgfF1cblxubW9kdWxlIFNsb3QgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gYmFja3RyYWNlX3Nsb3RcbiAgbGV0IGZvcm1hdCA9IGZvcm1hdF9iYWNrdHJhY2Vfc2xvdFxuICBsZXQgaXNfcmFpc2UgPSBiYWNrdHJhY2Vfc2xvdF9pc19yYWlzZVxuICBsZXQgaXNfaW5saW5lID0gYmFja3RyYWNlX3Nsb3RfaXNfaW5saW5lXG4gIGxldCBsb2NhdGlvbiA9IGJhY2t0cmFjZV9zbG90X2xvY2F0aW9uXG4gIGxldCBuYW1lID0gYmFja3RyYWNlX3Nsb3RfZGVmbmFtZVxuZW5kXG5cbmxldCByYXdfYmFja3RyYWNlX2xlbmd0aCBidCA9IEFycmF5Lmxlbmd0aCBidFxuXG5leHRlcm5hbCBnZXRfcmF3X2JhY2t0cmFjZV9zbG90IDpcbiAgcmF3X2JhY2t0cmFjZSAtPiBpbnQgLT4gcmF3X2JhY2t0cmFjZV9zbG90ID0gXCJjYW1sX3Jhd19iYWNrdHJhY2Vfc2xvdFwiXG5cbmV4dGVybmFsIGdldF9yYXdfYmFja3RyYWNlX25leHRfc2xvdCA6XG4gIHJhd19iYWNrdHJhY2Vfc2xvdCAtPiByYXdfYmFja3RyYWNlX3Nsb3Qgb3B0aW9uXG4gID0gXCJjYW1sX3Jhd19iYWNrdHJhY2VfbmV4dF9zbG90XCJcblxuKCogY29uZnVzaW5nbHkgbmFtZWQ6XG4gICByZXR1cm5zIHRoZSAqc3RyaW5nKiBjb3JyZXNwb25kaW5nIHRvIHRoZSBnbG9iYWwgY3VycmVudCBiYWNrdHJhY2UgKilcbmxldCBnZXRfYmFja3RyYWNlICgpID0gcmF3X2JhY2t0cmFjZV90b19zdHJpbmcgKGdldF9yYXdfYmFja3RyYWNlICgpKVxuXG5leHRlcm5hbCByZWNvcmRfYmFja3RyYWNlOiBib29sIC0+IHVuaXQgPSBcImNhbWxfcmVjb3JkX2JhY2t0cmFjZVwiXG5leHRlcm5hbCBiYWNrdHJhY2Vfc3RhdHVzOiB1bml0IC0+IGJvb2wgPSBcImNhbWxfYmFja3RyYWNlX3N0YXR1c1wiXG5cbmxldCByZWMgcmVnaXN0ZXJfcHJpbnRlciBmbiA9XG4gIGxldCBvbGRfcHJpbnRlcnMgPSBBdG9taWMuZ2V0IHByaW50ZXJzIGluXG4gIGxldCBuZXdfcHJpbnRlcnMgPSBmbiA6OiBvbGRfcHJpbnRlcnMgaW5cbiAgbGV0IHN1Y2Nlc3MgPSBBdG9taWMuY29tcGFyZV9hbmRfc2V0IHByaW50ZXJzIG9sZF9wcmludGVycyBuZXdfcHJpbnRlcnMgaW5cbiAgaWYgbm90IHN1Y2Nlc3MgdGhlbiByZWdpc3Rlcl9wcmludGVyIGZuXG5cbmV4dGVybmFsIGdldF9jYWxsc3RhY2s6IGludCAtPiByYXdfYmFja3RyYWNlID0gXCJjYW1sX2dldF9jdXJyZW50X2NhbGxzdGFja1wiXG5cbmxldCBleG5fc2xvdCB4ID1cbiAgbGV0IHggPSBPYmoucmVwciB4IGluXG4gIGlmIE9iai50YWcgeCA9IDAgdGhlbiBPYmouZmllbGQgeCAwIGVsc2UgeFxuXG5sZXQgZXhuX3Nsb3RfaWQgeCA9XG4gIGxldCBzbG90ID0gZXhuX3Nsb3QgeCBpblxuICAoT2JqLm9iaiAoT2JqLmZpZWxkIHNsb3QgMSkgOiBpbnQpXG5cbmxldCBleG5fc2xvdF9uYW1lIHggPVxuICBsZXQgc2xvdCA9IGV4bl9zbG90IHggaW5cbiAgKE9iai5vYmogKE9iai5maWVsZCBzbG90IDApIDogc3RyaW5nKVxuXG5leHRlcm5hbCBnZXRfZGVidWdfaW5mb19zdGF0dXMgOiB1bml0IC0+IGludCA9IFwiY2FtbF9tbF9kZWJ1Z19pbmZvX3N0YXR1c1wiXG5cbigqIERlc2NyaXB0aW9ucyBmb3IgZXJyb3JzIGluIHN0YXJ0dXAuaC4gU2VlIGFsc28gYmFja3RyYWNlLmMgKilcbmxldCBlcnJvcnMgPSBbfCBcIlwiO1xuICAoKiBGSUxFX05PVF9GT1VORCAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgbm90IGZvdW5kKVwiO1xuICAoKiBCQURfQllURUNPREUgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGFwcGVhcnMgdG8gYmUgY29ycnVwdClcIjtcbiAgKCogV1JPTkdfTUFHSUMgKilcbiAgXCIoQ2Fubm90IHByaW50IGxvY2F0aW9uczpcXG4gXFxcbiAgICAgIGJ5dGVjb2RlIGV4ZWN1dGFibGUgcHJvZ3JhbSBmaWxlIGhhcyB3cm9uZyBtYWdpYyBudW1iZXIpXCI7XG4gICgqIE5PX0ZEUyAqKVxuICBcIihDYW5ub3QgcHJpbnQgbG9jYXRpb25zOlxcbiBcXFxuICAgICAgYnl0ZWNvZGUgZXhlY3V0YWJsZSBwcm9ncmFtIGZpbGUgY2Fubm90IGJlIG9wZW5lZDtcXG4gXFxcbiAgICAgIC0tIHRvbyBtYW55IG9wZW4gZmlsZXMuIFRyeSBydW5uaW5nIHdpdGggT0NBTUxSVU5QQVJBTT1iPTIpXCJcbnxdXG5cbmxldCBkZWZhdWx0X3VuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIGV4biByYXdfYmFja3RyYWNlID1cbiAgZXByaW50ZiBcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gJXNcXG5cIiAodG9fc3RyaW5nIGV4bik7XG4gIHByaW50X3Jhd19iYWNrdHJhY2Ugc3RkZXJyIHJhd19iYWNrdHJhY2U7XG4gIGxldCBzdGF0dXMgPSBnZXRfZGVidWdfaW5mb19zdGF0dXMgKCkgaW5cbiAgaWYgc3RhdHVzIDwgMCB0aGVuXG4gICAgcHJlcnJfZW5kbGluZSBlcnJvcnMuKGFicyBzdGF0dXMpO1xuICBmbHVzaCBzdGRlcnJcblxubGV0IHVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyID0gcmVmIGRlZmF1bHRfdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXJcblxubGV0IHNldF91bmNhdWdodF9leGNlcHRpb25faGFuZGxlciBmbiA9IHVuY2F1Z2h0X2V4Y2VwdGlvbl9oYW5kbGVyIDo9IGZuXG5cbmxldCBlbXB0eV9iYWNrdHJhY2UgOiByYXdfYmFja3RyYWNlID0gW3wgfF1cblxubGV0IHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKSA9XG4gIHRyeVxuICAgIGdldF9yYXdfYmFja3RyYWNlICgpXG4gIHdpdGggXyAoKiBPdXRfb2ZfbWVtb3J5PyAqKSAtPlxuICAgIGVtcHR5X2JhY2t0cmFjZVxuXG5sZXQgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvbicgZXhuIGRlYnVnZ2VyX2luX3VzZSA9XG4gIHRyeVxuICAgICgqIEdldCB0aGUgYmFja3RyYWNlIG5vdywgaW4gY2FzZSBvbmUgb2YgdGhlIFthdF9leGl0XSBmdW5jdGlvblxuICAgICAgIGRlc3Ryb3lzIGl0LiAqKVxuICAgIGxldCByYXdfYmFja3RyYWNlID1cbiAgICAgIGlmIGRlYnVnZ2VyX2luX3VzZSAoKiBTYW1lIHRlc3QgYXMgaW4gW3J1bnRpbWUvcHJpbnRleGMuY10gKikgdGhlblxuICAgICAgICBlbXB0eV9iYWNrdHJhY2VcbiAgICAgIGVsc2VcbiAgICAgICAgdHJ5X2dldF9yYXdfYmFja3RyYWNlICgpXG4gICAgaW5cbiAgICAodHJ5IFN0ZGxpYi5kb19hdF9leGl0ICgpIHdpdGggXyAtPiAoKSk7XG4gICAgdHJ5XG4gICAgICAhdW5jYXVnaHRfZXhjZXB0aW9uX2hhbmRsZXIgZXhuIHJhd19iYWNrdHJhY2VcbiAgICB3aXRoIGV4bicgLT5cbiAgICAgIGxldCByYXdfYmFja3RyYWNlJyA9IHRyeV9nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgZXByaW50ZiBcIkZhdGFsIGVycm9yOiBleGNlcHRpb24gJXNcXG5cIiAodG9fc3RyaW5nIGV4bik7XG4gICAgICBwcmludF9yYXdfYmFja3RyYWNlIHN0ZGVyciByYXdfYmFja3RyYWNlO1xuICAgICAgZXByaW50ZiBcIkZhdGFsIGVycm9yIGluIHVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVyOiBleGNlcHRpb24gJXNcXG5cIlxuICAgICAgICAodG9fc3RyaW5nIGV4bicpO1xuICAgICAgcHJpbnRfcmF3X2JhY2t0cmFjZSBzdGRlcnIgcmF3X2JhY2t0cmFjZSc7XG4gICAgICBmbHVzaCBzdGRlcnJcbiAgd2l0aFxuICAgIHwgT3V0X29mX21lbW9yeSAtPlxuICAgICAgICBwcmVycl9lbmRsaW5lXG4gICAgICAgICAgXCJGYXRhbCBlcnJvcjogb3V0IG9mIG1lbW9yeSBpbiB1bmNhdWdodCBleGNlcHRpb24gaGFuZGxlclwiXG5cbigqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IFtjYW1sX2ZhdGFsX3VuY2F1Z2h0X2V4Y2VwdGlvbl0gaW5cbiAgIFtydW50aW1lL3ByaW50ZXhjLmNdIHdoaWNoIGV4cGVjdHMgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZC4gKilcbmxldCBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uIGV4biBkZWJ1Z2dlcl9pbl91c2UgPVxuICB0cnlcbiAgICBoYW5kbGVfdW5jYXVnaHRfZXhjZXB0aW9uJyBleG4gZGVidWdnZXJfaW5fdXNlXG4gIHdpdGggXyAtPlxuICAgICgqIFRoZXJlIGlzIG5vdCBtdWNoIHdlIGNhbiBkbyBhdCB0aGlzIHBvaW50ICopXG4gICAgKClcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gJ2EgLT4gdW5pdFxuICA9IFwiY2FtbF9yZWdpc3Rlcl9uYW1lZF92YWx1ZVwiXG5cbmxldCAoKSA9XG4gIHJlZ2lzdGVyX25hbWVkX3ZhbHVlIFwiUHJpbnRleGMuaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblwiXG4gICAgaGFuZGxlX3VuY2F1Z2h0X2V4Y2VwdGlvblxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgVGhlIE9DYW1sIHByb2dyYW1tZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAxOCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5leHRlcm5hbCBpZCA6ICdhIC0+ICdhID0gXCIlaWRlbnRpdHlcIlxubGV0IGNvbnN0IGMgXyA9IGNcbmxldCBmbGlwIGYgeCB5ID0gZiB5IHhcbmxldCBuZWdhdGUgcCB2ID0gbm90IChwIHYpXG5cbmV4Y2VwdGlvbiBGaW5hbGx5X3JhaXNlZCBvZiBleG5cblxubGV0ICgpID0gUHJpbnRleGMucmVnaXN0ZXJfcHJpbnRlciBAQCBmdW5jdGlvblxufCBGaW5hbGx5X3JhaXNlZCBleG4gLT4gU29tZSAoXCJGdW4uRmluYWxseV9yYWlzZWQ6IFwiIF4gUHJpbnRleGMudG9fc3RyaW5nIGV4bilcbnwgXyAtPiBOb25lXG5cbmxldCBwcm90ZWN0IH4oZmluYWxseSA6IHVuaXQgLT4gdW5pdCkgd29yayA9XG4gIGxldCBmaW5hbGx5X25vX2V4biAoKSA9XG4gICAgdHJ5IGZpbmFsbHkgKCkgd2l0aCBlIC0+XG4gICAgICBsZXQgYnQgPSBQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgUHJpbnRleGMucmFpc2Vfd2l0aF9iYWNrdHJhY2UgKEZpbmFsbHlfcmFpc2VkIGUpIGJ0XG4gIGluXG4gIG1hdGNoIHdvcmsgKCkgd2l0aFxuICB8IHJlc3VsdCAtPiBmaW5hbGx5X25vX2V4biAoKSA7IHJlc3VsdFxuICB8IGV4Y2VwdGlvbiB3b3JrX2V4biAtPlxuICAgICAgbGV0IHdvcmtfYnQgPSBQcmludGV4Yy5nZXRfcmF3X2JhY2t0cmFjZSAoKSBpblxuICAgICAgZmluYWxseV9ub19leG4gKCkgO1xuICAgICAgUHJpbnRleGMucmFpc2Vfd2l0aF9iYWNrdHJhY2Ugd29ya19leG4gd29ya19idFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICBKYWNxdWVzLUhlbnJpIEpvdXJkYW4sIHByb2pldCBHYWxsaXVtLCBJTlJJQSBQYXJpcyAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5Ni0yMDE2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgICAqKVxuKCogICAgIGV0IGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHN0YXQgPSB7XG4gIG1pbm9yX3dvcmRzIDogZmxvYXQ7XG4gIHByb21vdGVkX3dvcmRzIDogZmxvYXQ7XG4gIG1ham9yX3dvcmRzIDogZmxvYXQ7XG4gIG1pbm9yX2NvbGxlY3Rpb25zIDogaW50O1xuICBtYWpvcl9jb2xsZWN0aW9ucyA6IGludDtcbiAgaGVhcF93b3JkcyA6IGludDtcbiAgaGVhcF9jaHVua3MgOiBpbnQ7XG4gIGxpdmVfd29yZHMgOiBpbnQ7XG4gIGxpdmVfYmxvY2tzIDogaW50O1xuICBmcmVlX3dvcmRzIDogaW50O1xuICBmcmVlX2Jsb2NrcyA6IGludDtcbiAgbGFyZ2VzdF9mcmVlIDogaW50O1xuICBmcmFnbWVudHMgOiBpbnQ7XG4gIGNvbXBhY3Rpb25zIDogaW50O1xuICB0b3BfaGVhcF93b3JkcyA6IGludDtcbiAgc3RhY2tfc2l6ZSA6IGludDtcbiAgZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zOiBpbnQ7XG59XG5cbnR5cGUgY29udHJvbCA9IHtcbiAgbXV0YWJsZSBtaW5vcl9oZWFwX3NpemUgOiBpbnQ7XG4gIG11dGFibGUgbWFqb3JfaGVhcF9pbmNyZW1lbnQgOiBpbnQ7XG4gIG11dGFibGUgc3BhY2Vfb3ZlcmhlYWQgOiBpbnQ7XG4gIG11dGFibGUgdmVyYm9zZSA6IGludDtcbiAgbXV0YWJsZSBtYXhfb3ZlcmhlYWQgOiBpbnQ7XG4gIG11dGFibGUgc3RhY2tfbGltaXQgOiBpbnQ7XG4gIG11dGFibGUgYWxsb2NhdGlvbl9wb2xpY3kgOiBpbnQ7XG4gIHdpbmRvd19zaXplIDogaW50O1xuICBjdXN0b21fbWFqb3JfcmF0aW8gOiBpbnQ7XG4gIGN1c3RvbV9taW5vcl9yYXRpbyA6IGludDtcbiAgY3VzdG9tX21pbm9yX21heF9zaXplIDogaW50O1xufVxuXG5leHRlcm5hbCBzdGF0IDogdW5pdCAtPiBzdGF0ID0gXCJjYW1sX2djX3N0YXRcIlxuZXh0ZXJuYWwgcXVpY2tfc3RhdCA6IHVuaXQgLT4gc3RhdCA9IFwiY2FtbF9nY19xdWlja19zdGF0XCJcbmV4dGVybmFsIGNvdW50ZXJzIDogdW5pdCAtPiAoZmxvYXQgKiBmbG9hdCAqIGZsb2F0KSA9IFwiY2FtbF9nY19jb3VudGVyc1wiXG5leHRlcm5hbCBtaW5vcl93b3JkcyA6IHVuaXQgLT4gKGZsb2F0IFtAdW5ib3hlZF0pXG4gID0gXCJjYW1sX2djX21pbm9yX3dvcmRzXCIgXCJjYW1sX2djX21pbm9yX3dvcmRzX3VuYm94ZWRcIlxuZXh0ZXJuYWwgZ2V0IDogdW5pdCAtPiBjb250cm9sID0gXCJjYW1sX2djX2dldFwiXG5leHRlcm5hbCBzZXQgOiBjb250cm9sIC0+IHVuaXQgPSBcImNhbWxfZ2Nfc2V0XCJcbmV4dGVybmFsIG1pbm9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX21pbm9yXCJcbmV4dGVybmFsIG1ham9yX3NsaWNlIDogaW50IC0+IGludCA9IFwiY2FtbF9nY19tYWpvcl9zbGljZVwiXG5leHRlcm5hbCBtYWpvciA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19tYWpvclwiXG5leHRlcm5hbCBmdWxsX21ham9yIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2djX2Z1bGxfbWFqb3JcIlxuZXh0ZXJuYWwgY29tcGFjdCA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9nY19jb21wYWN0aW9uXCJcbmV4dGVybmFsIGdldF9taW5vcl9mcmVlIDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2V0X21pbm9yX2ZyZWVcIlxuZXh0ZXJuYWwgZ2V0X2J1Y2tldCA6IGludCAtPiBpbnQgPSBcImNhbWxfZ2V0X21ham9yX2J1Y2tldFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBnZXRfY3JlZGl0IDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2V0X21ham9yX2NyZWRpdFwiIFtAQG5vYWxsb2NdXG5leHRlcm5hbCBodWdlX2ZhbGxiYWNrX2NvdW50IDogdW5pdCAtPiBpbnQgPSBcImNhbWxfZ2NfaHVnZV9mYWxsYmFja19jb3VudFwiXG5leHRlcm5hbCBldmVudGxvZ19wYXVzZSA6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9ldmVudGxvZ19wYXVzZVwiXG5leHRlcm5hbCBldmVudGxvZ19yZXN1bWUgOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfZXZlbnRsb2dfcmVzdW1lXCJcblxub3BlbiBQcmludGZcblxubGV0IHByaW50X3N0YXQgYyA9XG4gIGxldCBzdCA9IHN0YXQgKCkgaW5cbiAgZnByaW50ZiBjIFwibWlub3JfY29sbGVjdGlvbnM6ICAgICAgJWRcXG5cIiBzdC5taW5vcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwibWFqb3JfY29sbGVjdGlvbnM6ICAgICAgJWRcXG5cIiBzdC5tYWpvcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwiY29tcGFjdGlvbnM6ICAgICAgICAgICAgJWRcXG5cIiBzdC5jb21wYWN0aW9ucztcbiAgZnByaW50ZiBjIFwiZm9yY2VkX21ham9yX2NvbGxlY3Rpb25zOiAlZFxcblwiIHN0LmZvcmNlZF9tYWpvcl9jb2xsZWN0aW9ucztcbiAgZnByaW50ZiBjIFwiXFxuXCI7XG4gIGxldCBsMSA9IFN0cmluZy5sZW5ndGggKHNwcmludGYgXCIlLjBmXCIgc3QubWlub3Jfd29yZHMpIGluXG4gIGZwcmludGYgYyBcIm1pbm9yX3dvcmRzOiAgICAlKi4wZlxcblwiIGwxIHN0Lm1pbm9yX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJwcm9tb3RlZF93b3JkczogJSouMGZcXG5cIiBsMSBzdC5wcm9tb3RlZF93b3JkcztcbiAgZnByaW50ZiBjIFwibWFqb3Jfd29yZHM6ICAgICUqLjBmXFxuXCIgbDEgc3QubWFqb3Jfd29yZHM7XG4gIGZwcmludGYgYyBcIlxcblwiO1xuICBsZXQgbDIgPSBTdHJpbmcubGVuZ3RoIChzcHJpbnRmIFwiJWRcIiBzdC50b3BfaGVhcF93b3JkcykgaW5cbiAgZnByaW50ZiBjIFwidG9wX2hlYXBfd29yZHM6ICUqZFxcblwiIGwyIHN0LnRvcF9oZWFwX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJoZWFwX3dvcmRzOiAgICAgJSpkXFxuXCIgbDIgc3QuaGVhcF93b3JkcztcbiAgZnByaW50ZiBjIFwibGl2ZV93b3JkczogICAgICUqZFxcblwiIGwyIHN0LmxpdmVfd29yZHM7XG4gIGZwcmludGYgYyBcImZyZWVfd29yZHM6ICAgICAlKmRcXG5cIiBsMiBzdC5mcmVlX3dvcmRzO1xuICBmcHJpbnRmIGMgXCJsYXJnZXN0X2ZyZWU6ICAgJSpkXFxuXCIgbDIgc3QubGFyZ2VzdF9mcmVlO1xuICBmcHJpbnRmIGMgXCJmcmFnbWVudHM6ICAgICAgJSpkXFxuXCIgbDIgc3QuZnJhZ21lbnRzO1xuICBmcHJpbnRmIGMgXCJcXG5cIjtcbiAgZnByaW50ZiBjIFwibGl2ZV9ibG9ja3M6ICVkXFxuXCIgc3QubGl2ZV9ibG9ja3M7XG4gIGZwcmludGYgYyBcImZyZWVfYmxvY2tzOiAlZFxcblwiIHN0LmZyZWVfYmxvY2tzO1xuICBmcHJpbnRmIGMgXCJoZWFwX2NodW5rczogJWRcXG5cIiBzdC5oZWFwX2NodW5rc1xuXG5cbmxldCBhbGxvY2F0ZWRfYnl0ZXMgKCkgPVxuICBsZXQgKG1pLCBwcm8sIG1hKSA9IGNvdW50ZXJzICgpIGluXG4gIChtaSArLiBtYSAtLiBwcm8pICouIGZsb2F0X29mX2ludCAoU3lzLndvcmRfc2l6ZSAvIDgpXG5cblxuZXh0ZXJuYWwgZmluYWxpc2UgOiAoJ2EgLT4gdW5pdCkgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9maW5hbF9yZWdpc3RlclwiXG5leHRlcm5hbCBmaW5hbGlzZV9sYXN0IDogKHVuaXQgLT4gdW5pdCkgLT4gJ2EgLT4gdW5pdCA9XG4gIFwiY2FtbF9maW5hbF9yZWdpc3Rlcl9jYWxsZWRfd2l0aG91dF92YWx1ZVwiXG5leHRlcm5hbCBmaW5hbGlzZV9yZWxlYXNlIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2ZpbmFsX3JlbGVhc2VcIlxuXG5cbnR5cGUgYWxhcm0gPSBib29sIHJlZlxudHlwZSBhbGFybV9yZWMgPSB7YWN0aXZlIDogYWxhcm07IGYgOiB1bml0IC0+IHVuaXR9XG5cbmxldCByZWMgY2FsbF9hbGFybSBhcmVjID1cbiAgaWYgIShhcmVjLmFjdGl2ZSkgdGhlbiBiZWdpblxuICAgIGZpbmFsaXNlIGNhbGxfYWxhcm0gYXJlYztcbiAgICBhcmVjLmYgKCk7XG4gIGVuZFxuXG5cbmxldCBjcmVhdGVfYWxhcm0gZiA9XG4gIGxldCBhcmVjID0geyBhY3RpdmUgPSByZWYgdHJ1ZTsgZiA9IGYgfSBpblxuICBmaW5hbGlzZSBjYWxsX2FsYXJtIGFyZWM7XG4gIGFyZWMuYWN0aXZlXG5cblxubGV0IGRlbGV0ZV9hbGFybSBhID0gYSA6PSBmYWxzZVxuXG5tb2R1bGUgTWVtcHJvZiA9XG4gIHN0cnVjdFxuICAgIHR5cGUgYWxsb2NhdGlvbl9zb3VyY2UgPSBOb3JtYWwgfCBNYXJzaGFsIHwgQ3VzdG9tXG4gICAgdHlwZSBhbGxvY2F0aW9uID1cbiAgICAgIHsgbl9zYW1wbGVzIDogaW50O1xuICAgICAgICBzaXplIDogaW50O1xuICAgICAgICBzb3VyY2UgOiBhbGxvY2F0aW9uX3NvdXJjZTtcbiAgICAgICAgY2FsbHN0YWNrIDogUHJpbnRleGMucmF3X2JhY2t0cmFjZSB9XG5cbiAgICB0eXBlICgnbWlub3IsICdtYWpvcikgdHJhY2tlciA9IHtcbiAgICAgIGFsbG9jX21pbm9yOiBhbGxvY2F0aW9uIC0+ICdtaW5vciBvcHRpb247XG4gICAgICBhbGxvY19tYWpvcjogYWxsb2NhdGlvbiAtPiAnbWFqb3Igb3B0aW9uO1xuICAgICAgcHJvbW90ZTogJ21pbm9yIC0+ICdtYWpvciBvcHRpb247XG4gICAgICBkZWFsbG9jX21pbm9yOiAnbWlub3IgLT4gdW5pdDtcbiAgICAgIGRlYWxsb2NfbWFqb3I6ICdtYWpvciAtPiB1bml0O1xuICAgIH1cblxuICAgIGxldCBudWxsX3RyYWNrZXIgPSB7XG4gICAgICBhbGxvY19taW5vciA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIGFsbG9jX21ham9yID0gKGZ1biBfIC0+IE5vbmUpO1xuICAgICAgcHJvbW90ZSA9IChmdW4gXyAtPiBOb25lKTtcbiAgICAgIGRlYWxsb2NfbWlub3IgPSAoZnVuIF8gLT4gKCkpO1xuICAgICAgZGVhbGxvY19tYWpvciA9IChmdW4gXyAtPiAoKSk7XG4gICAgfVxuXG4gICAgZXh0ZXJuYWwgY19zdGFydCA6XG4gICAgICBmbG9hdCAtPiBpbnQgLT4gKCdtaW5vciwgJ21ham9yKSB0cmFja2VyIC0+IHVuaXRcbiAgICAgID0gXCJjYW1sX21lbXByb2Zfc3RhcnRcIlxuXG4gICAgbGV0IHN0YXJ0XG4gICAgICB+c2FtcGxpbmdfcmF0ZVxuICAgICAgPyhjYWxsc3RhY2tfc2l6ZSA9IG1heF9pbnQpXG4gICAgICB0cmFja2VyID1cbiAgICAgIGNfc3RhcnQgc2FtcGxpbmdfcmF0ZSBjYWxsc3RhY2tfc2l6ZSB0cmFja2VyXG5cbiAgICBleHRlcm5hbCBzdG9wIDogdW5pdCAtPiB1bml0ID0gXCJjYW1sX21lbXByb2Zfc3RvcFwiXG4gIGVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBNZXNzYWdlIGRpZ2VzdCAoTUQ1KSAqKVxuXG50eXBlIHQgPSBzdHJpbmdcblxubGV0IGNvbXBhcmUgPSBTdHJpbmcuY29tcGFyZVxubGV0IGVxdWFsID0gU3RyaW5nLmVxdWFsXG5cbmV4dGVybmFsIHVuc2FmZV9zdHJpbmc6IHN0cmluZyAtPiBpbnQgLT4gaW50IC0+IHQgPSBcImNhbWxfbWQ1X3N0cmluZ1wiXG5leHRlcm5hbCBjaGFubmVsOiBpbl9jaGFubmVsIC0+IGludCAtPiB0ID0gXCJjYW1sX21kNV9jaGFuXCJcblxubGV0IHN0cmluZyBzdHIgPVxuICB1bnNhZmVfc3RyaW5nIHN0ciAwIChTdHJpbmcubGVuZ3RoIHN0cilcblxubGV0IGJ5dGVzIGIgPSBzdHJpbmcgKEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgYilcblxubGV0IHN1YnN0cmluZyBzdHIgb2ZzIGxlbiA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBTdHJpbmcubGVuZ3RoIHN0ciAtIGxlblxuICB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LnN1YnN0cmluZ1wiXG4gIGVsc2UgdW5zYWZlX3N0cmluZyBzdHIgb2ZzIGxlblxuXG5sZXQgc3ViYnl0ZXMgYiBvZnMgbGVuID0gc3Vic3RyaW5nIChCeXRlcy51bnNhZmVfdG9fc3RyaW5nIGIpIG9mcyBsZW5cblxubGV0IGZpbGUgZmlsZW5hbWUgPVxuICBsZXQgaWMgPSBvcGVuX2luX2JpbiBmaWxlbmFtZSBpblxuICBtYXRjaCBjaGFubmVsIGljICgtMSkgd2l0aFxuICAgIHwgZCAtPiBjbG9zZV9pbiBpYzsgZFxuICAgIHwgZXhjZXB0aW9uIGUgLT4gY2xvc2VfaW4gaWM7IHJhaXNlIGVcblxubGV0IG91dHB1dCBjaGFuIGRpZ2VzdCA9XG4gIG91dHB1dF9zdHJpbmcgY2hhbiBkaWdlc3RcblxubGV0IGlucHV0IGNoYW4gPSByZWFsbHlfaW5wdXRfc3RyaW5nIGNoYW4gMTZcblxubGV0IGNoYXJfaGV4IG4gPVxuICBDaGFyLnVuc2FmZV9jaHIgKG4gKyBpZiBuIDwgMTAgdGhlbiBDaGFyLmNvZGUgJzAnIGVsc2UgKENoYXIuY29kZSAnYScgLSAxMCkpXG5cbmxldCB0b19oZXggZCA9XG4gIGlmIFN0cmluZy5sZW5ndGggZCA8PiAxNiB0aGVuIGludmFsaWRfYXJnIFwiRGlnZXN0LnRvX2hleFwiO1xuICBsZXQgcmVzdWx0ID0gQnl0ZXMuY3JlYXRlIDMyIGluXG4gIGZvciBpID0gMCB0byAxNSBkb1xuICAgIGxldCB4ID0gQ2hhci5jb2RlIGQuW2ldIGluXG4gICAgQnl0ZXMudW5zYWZlX3NldCByZXN1bHQgKGkqMikgKGNoYXJfaGV4ICh4IGxzciA0KSk7XG4gICAgQnl0ZXMudW5zYWZlX3NldCByZXN1bHQgKGkqMisxKSAoY2hhcl9oZXggKHggbGFuZCAweDBmKSk7XG4gIGRvbmU7XG4gIEJ5dGVzLnVuc2FmZV90b19zdHJpbmcgcmVzdWx0XG5cbmxldCBmcm9tX2hleCBzID1cbiAgaWYgU3RyaW5nLmxlbmd0aCBzIDw+IDMyIHRoZW4gaW52YWxpZF9hcmcgXCJEaWdlc3QuZnJvbV9oZXhcIjtcbiAgbGV0IGRpZ2l0IGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJzAnLi4nOScgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJzAnXG4gICAgfCAnQScuLidGJyAtPiBDaGFyLmNvZGUgYyAtIENoYXIuY29kZSAnQScgKyAxMFxuICAgIHwgJ2EnLi4nZicgLT4gQ2hhci5jb2RlIGMgLSBDaGFyLmNvZGUgJ2EnICsgMTBcbiAgICB8IF8gLT4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJEaWdlc3QuZnJvbV9oZXhcIilcbiAgaW5cbiAgbGV0IGJ5dGUgaSA9IGRpZ2l0IHMuW2ldIGxzbCA0ICsgZGlnaXQgcy5baSsxXSBpblxuICBsZXQgcmVzdWx0ID0gQnl0ZXMuY3JlYXRlIDE2IGluXG4gIGZvciBpID0gMCB0byAxNSBkb1xuICAgIEJ5dGVzLnNldCByZXN1bHQgaSAoQ2hhci5jaHIgKGJ5dGUgKDIgKiBpKSkpO1xuICBkb25lO1xuICBCeXRlcy51bnNhZmVfdG9fc3RyaW5nIHJlc3VsdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBQc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3JcbiAgIFRoaXMgaXMgYSBsYWdnZWQtRmlib25hY2NpIEYoNTUsIDI0LCArKSB3aXRoIGEgbW9kaWZpZWQgYWRkaXRpb25cbiAgIGZ1bmN0aW9uIHRvIGVuaGFuY2UgdGhlIG1peGluZyBvZiBiaXRzLlxuICAgSWYgd2UgdXNlIG5vcm1hbCBhZGRpdGlvbiwgdGhlIGxvdy1vcmRlciBiaXQgZmFpbHMgdGVzdHMgMSBhbmQgN1xuICAgb2YgdGhlIERpZWhhcmQgdGVzdCBzdWl0ZSwgYW5kIGJpdHMgMSBhbmQgMiBhbHNvIGZhaWwgdGVzdCA3LlxuICAgSWYgd2UgdXNlIG11bHRpcGxpY2F0aW9uIGFzIHN1Z2dlc3RlZCBieSBNYXJzYWdsaWEsIGl0IGRvZXNuJ3QgZmFyZVxuICAgbXVjaCBiZXR0ZXIuXG4gICBCeSBtaXhpbmcgdGhlIGJpdHMgb2Ygb25lIG9mIHRoZSBudW1iZXJzIGJlZm9yZSBhZGRpdGlvbiAoWE9SIHRoZVxuICAgNSBoaWdoLW9yZGVyIGJpdHMgaW50byB0aGUgbG93LW9yZGVyIGJpdHMpLCB3ZSBnZXQgYSBnZW5lcmF0b3IgdGhhdFxuICAgcGFzc2VzIGFsbCB0aGUgRGllaGFyZCB0ZXN0cy5cbiopXG5cbmV4dGVybmFsIHJhbmRvbV9zZWVkOiB1bml0IC0+IGludCBhcnJheSA9IFwiY2FtbF9zeXNfcmFuZG9tX3NlZWRcIlxuXG5tb2R1bGUgU3RhdGUgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPSB7IHN0IDogaW50IGFycmF5OyBtdXRhYmxlIGlkeCA6IGludCB9XG5cbiAgbGV0IG5ld19zdGF0ZSAoKSA9IHsgc3QgPSBBcnJheS5tYWtlIDU1IDA7IGlkeCA9IDAgfVxuICBsZXQgYXNzaWduIHN0MSBzdDIgPVxuICAgIEFycmF5LmJsaXQgc3QyLnN0IDAgc3QxLnN0IDAgNTU7XG4gICAgc3QxLmlkeCA8LSBzdDIuaWR4XG5cblxuICBsZXQgZnVsbF9pbml0IHMgc2VlZCA9XG4gICAgbGV0IGNvbWJpbmUgYWNjdSB4ID0gRGlnZXN0LnN0cmluZyAoYWNjdSBeIEludC50b19zdHJpbmcgeCkgaW5cbiAgICBsZXQgZXh0cmFjdCBkID1cbiAgICAgIENoYXIuY29kZSBkLlswXSArIChDaGFyLmNvZGUgZC5bMV0gbHNsIDgpICsgKENoYXIuY29kZSBkLlsyXSBsc2wgMTYpXG4gICAgICArIChDaGFyLmNvZGUgZC5bM10gbHNsIDI0KVxuICAgIGluXG4gICAgbGV0IHNlZWQgPSBpZiBBcnJheS5sZW5ndGggc2VlZCA9IDAgdGhlbiBbfCAwIHxdIGVsc2Ugc2VlZCBpblxuICAgIGxldCBsID0gQXJyYXkubGVuZ3RoIHNlZWQgaW5cbiAgICBmb3IgaSA9IDAgdG8gNTQgZG9cbiAgICAgIHMuc3QuKGkpIDwtIGk7XG4gICAgZG9uZTtcbiAgICBsZXQgYWNjdSA9IHJlZiBcInhcIiBpblxuICAgIGZvciBpID0gMCB0byA1NCArIEludC5tYXggNTUgbCBkb1xuICAgICAgbGV0IGogPSBpIG1vZCA1NSBpblxuICAgICAgbGV0IGsgPSBpIG1vZCBsIGluXG4gICAgICBhY2N1IDo9IGNvbWJpbmUgIWFjY3Ugc2VlZC4oayk7XG4gICAgICBzLnN0LihqKSA8LSAocy5zdC4oaikgbHhvciBleHRyYWN0ICFhY2N1KSBsYW5kIDB4M0ZGRkZGRkY7ICAoKiBQUiM1NTc1ICopXG4gICAgZG9uZTtcbiAgICBzLmlkeCA8LSAwXG5cblxuICBsZXQgbWFrZSBzZWVkID1cbiAgICBsZXQgcmVzdWx0ID0gbmV3X3N0YXRlICgpIGluXG4gICAgZnVsbF9pbml0IHJlc3VsdCBzZWVkO1xuICAgIHJlc3VsdFxuXG5cbiAgbGV0IG1ha2Vfc2VsZl9pbml0ICgpID0gbWFrZSAocmFuZG9tX3NlZWQgKCkpXG5cbiAgbGV0IGNvcHkgcyA9XG4gICAgbGV0IHJlc3VsdCA9IG5ld19zdGF0ZSAoKSBpblxuICAgIGFzc2lnbiByZXN1bHQgcztcbiAgICByZXN1bHRcblxuXG4gICgqIFJldHVybnMgMzAgcmFuZG9tIGJpdHMgYXMgYW4gaW50ZWdlciAwIDw9IHggPCAxMDczNzQxODI0ICopXG4gIGxldCBiaXRzIHMgPVxuICAgIHMuaWR4IDwtIChzLmlkeCArIDEpIG1vZCA1NTtcbiAgICBsZXQgY3VydmFsID0gcy5zdC4ocy5pZHgpIGluXG4gICAgbGV0IG5ld3ZhbCA9IHMuc3QuKChzLmlkeCArIDI0KSBtb2QgNTUpXG4gICAgICAgICAgICAgICAgICsgKGN1cnZhbCBseG9yICgoY3VydmFsIGxzciAyNSkgbGFuZCAweDFGKSkgaW5cbiAgICBsZXQgbmV3dmFsMzAgPSBuZXd2YWwgbGFuZCAweDNGRkZGRkZGIGluICAoKiBQUiM1NTc1ICopXG4gICAgcy5zdC4ocy5pZHgpIDwtIG5ld3ZhbDMwO1xuICAgIG5ld3ZhbDMwXG5cblxuICBsZXQgcmVjIGludGF1eCBzIG4gPVxuICAgIGxldCByID0gYml0cyBzIGluXG4gICAgbGV0IHYgPSByIG1vZCBuIGluXG4gICAgaWYgciAtIHYgPiAweDNGRkZGRkZGIC0gbiArIDEgdGhlbiBpbnRhdXggcyBuIGVsc2UgdlxuXG4gIGxldCBpbnQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPiAweDNGRkZGRkZGIHx8IGJvdW5kIDw9IDBcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludFwiXG4gICAgZWxzZSBpbnRhdXggcyBib3VuZFxuXG4gIGxldCByZWMgaW50NjNhdXggcyBuID1cbiAgICBsZXQgbWF4X2ludF8zMiA9ICgxIGxzbCAzMCkgKyAweDNGRkZGRkZGIGluICgqIDB4N0ZGRkZGRkYgKilcbiAgICBsZXQgYjEgPSBiaXRzIHMgaW5cbiAgICBsZXQgYjIgPSBiaXRzIHMgaW5cbiAgICBsZXQgKHIsIG1heF9pbnQpID1cbiAgICAgIGlmIG4gPD0gbWF4X2ludF8zMiB0aGVuXG4gICAgICAgICgqIDMxIHJhbmRvbSBiaXRzIG9uIGJvdGggNjQtYml0IE9DYW1sIGFuZCBKYXZhU2NyaXB0LlxuICAgICAgICAgICBVc2UgdXBwZXIgMTUgYml0cyBvZiBiMSBhbmQgMTYgYml0cyBvZiBiMi4gKilcbiAgICAgICAgbGV0IGJwb3MgPVxuICAgICAgICAgICgoKGIyIGxhbmQgMHgzRkZGQzAwMCkgbHNsIDEpIGxvciAoYjEgbHNyIDE1KSlcbiAgICAgICAgaW5cbiAgICAgICAgICAoYnBvcywgbWF4X2ludF8zMilcbiAgICAgIGVsc2VcbiAgICAgICAgbGV0IGIzID0gYml0cyBzIGluXG4gICAgICAgICgqIDYyIHJhbmRvbSBiaXRzIG9uIDY0LWJpdCBPQ2FtbDsgdW5yZWFjaGFibGUgb24gSmF2YVNjcmlwdC5cbiAgICAgICAgICAgVXNlIHVwcGVyIDIwIGJpdHMgb2YgYjEgYW5kIDIxIGJpdHMgb2YgYjIgYW5kIGIzLiAqKVxuICAgICAgICBsZXQgYnBvcyA9XG4gICAgICAgICAgKCgoKGIzIGxhbmQgMHgzRkZGRkUwMCkgbHNsIDEyKSBsb3IgKGIyIGxzciA5KSkgbHNsIDIwKVxuICAgICAgICAgICAgbG9yIChiMSBsc3IgMTApXG4gICAgICAgIGluXG4gICAgICAgICAgKGJwb3MsIG1heF9pbnQpXG4gICAgaW5cbiAgICBsZXQgdiA9IHIgbW9kIG4gaW5cbiAgICBpZiByIC0gdiA+IG1heF9pbnQgLSBuICsgMSB0aGVuIGludDYzYXV4IHMgbiBlbHNlIHZcblxuICBsZXQgZnVsbF9pbnQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMCB0aGVuXG4gICAgICBpbnZhbGlkX2FyZyBcIlJhbmRvbS5mdWxsX2ludFwiXG4gICAgZWxzZSBpZiBib3VuZCA+IDB4M0ZGRkZGRkYgdGhlblxuICAgICAgaW50NjNhdXggcyBib3VuZFxuICAgIGVsc2VcbiAgICAgIGludGF1eCBzIGJvdW5kXG5cblxuICBsZXQgcmVjIGludDMyYXV4IHMgbiA9XG4gICAgbGV0IGIxID0gSW50MzIub2ZfaW50IChiaXRzIHMpIGluXG4gICAgbGV0IGIyID0gSW50MzIuc2hpZnRfbGVmdCAoSW50MzIub2ZfaW50IChiaXRzIHMgbGFuZCAxKSkgMzAgaW5cbiAgICBsZXQgciA9IEludDMyLmxvZ29yIGIxIGIyIGluXG4gICAgbGV0IHYgPSBJbnQzMi5yZW0gciBuIGluXG4gICAgaWYgSW50MzIuc3ViIHIgdiA+IEludDMyLmFkZCAoSW50MzIuc3ViIEludDMyLm1heF9pbnQgbikgMWxcbiAgICB0aGVuIGludDMyYXV4IHMgblxuICAgIGVsc2UgdlxuXG4gIGxldCBpbnQzMiBzIGJvdW5kID1cbiAgICBpZiBib3VuZCA8PSAwbFxuICAgIHRoZW4gaW52YWxpZF9hcmcgXCJSYW5kb20uaW50MzJcIlxuICAgIGVsc2UgaW50MzJhdXggcyBib3VuZFxuXG5cbiAgbGV0IHJlYyBpbnQ2NGF1eCBzIG4gPVxuICAgIGxldCBiMSA9IEludDY0Lm9mX2ludCAoYml0cyBzKSBpblxuICAgIGxldCBiMiA9IEludDY0LnNoaWZ0X2xlZnQgKEludDY0Lm9mX2ludCAoYml0cyBzKSkgMzAgaW5cbiAgICBsZXQgYjMgPSBJbnQ2NC5zaGlmdF9sZWZ0IChJbnQ2NC5vZl9pbnQgKGJpdHMgcyBsYW5kIDcpKSA2MCBpblxuICAgIGxldCByID0gSW50NjQubG9nb3IgYjEgKEludDY0LmxvZ29yIGIyIGIzKSBpblxuICAgIGxldCB2ID0gSW50NjQucmVtIHIgbiBpblxuICAgIGlmIEludDY0LnN1YiByIHYgPiBJbnQ2NC5hZGQgKEludDY0LnN1YiBJbnQ2NC5tYXhfaW50IG4pIDFMXG4gICAgdGhlbiBpbnQ2NGF1eCBzIG5cbiAgICBlbHNlIHZcblxuICBsZXQgaW50NjQgcyBib3VuZCA9XG4gICAgaWYgYm91bmQgPD0gMExcbiAgICB0aGVuIGludmFsaWRfYXJnIFwiUmFuZG9tLmludDY0XCJcbiAgICBlbHNlIGludDY0YXV4IHMgYm91bmRcblxuXG4gIGxldCBuYXRpdmVpbnQgPVxuICAgIGlmIE5hdGl2ZWludC5zaXplID0gMzJcbiAgICB0aGVuIGZ1biBzIGJvdW5kIC0+IE5hdGl2ZWludC5vZl9pbnQzMiAoaW50MzIgcyAoTmF0aXZlaW50LnRvX2ludDMyIGJvdW5kKSlcbiAgICBlbHNlIGZ1biBzIGJvdW5kIC0+IEludDY0LnRvX25hdGl2ZWludCAoaW50NjQgcyAoSW50NjQub2ZfbmF0aXZlaW50IGJvdW5kKSlcblxuXG4gICgqIFJldHVybnMgYSBmbG9hdCAwIDw9IHggPD0gMSB3aXRoIGF0IG1vc3QgNjAgYml0cyBvZiBwcmVjaXNpb24uICopXG4gIGxldCByYXdmbG9hdCBzID1cbiAgICBsZXQgc2NhbGUgPSAxMDczNzQxODI0LjAgICgqIDJeMzAgKilcbiAgICBhbmQgcjEgPSBTdGRsaWIuZmxvYXQgKGJpdHMgcylcbiAgICBhbmQgcjIgPSBTdGRsaWIuZmxvYXQgKGJpdHMgcylcbiAgICBpbiAocjEgLy4gc2NhbGUgKy4gcjIpIC8uIHNjYWxlXG5cblxuICBsZXQgZmxvYXQgcyBib3VuZCA9IHJhd2Zsb2F0IHMgKi4gYm91bmRcblxuICBsZXQgYm9vbCBzID0gKGJpdHMgcyBsYW5kIDEgPSAwKVxuXG4gIGxldCBiaXRzMzIgcyA9XG4gICAgbGV0IGIxID0gSW50MzIuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgMTQpIGluICAoKiAxNiBiaXRzICopXG4gICAgbGV0IGIyID0gSW50MzIuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgMTQpIGluICAoKiAxNiBiaXRzICopXG4gICAgSW50MzIuKGxvZ29yIGIxIChzaGlmdF9sZWZ0IGIyIDE2KSlcblxuICBsZXQgYml0czY0IHMgPVxuICAgIGxldCBiMSA9IEludDY0LihzaGlmdF9yaWdodF9sb2dpY2FsIChvZl9pbnQgKGJpdHMgcykpIDkpIGluICAoKiAyMSBiaXRzICopXG4gICAgbGV0IGIyID0gSW50NjQuKHNoaWZ0X3JpZ2h0X2xvZ2ljYWwgKG9mX2ludCAoYml0cyBzKSkgOSkgaW4gICgqIDIxIGJpdHMgKilcbiAgICBsZXQgYjMgPSBJbnQ2NC4oc2hpZnRfcmlnaHRfbG9naWNhbCAob2ZfaW50IChiaXRzIHMpKSA4KSBpbiAgKCogMjIgYml0cyAqKVxuICAgIEludDY0Lihsb2dvciBiMSAobG9nb3IgKHNoaWZ0X2xlZnQgYjIgMjEpIChzaGlmdF9sZWZ0IGIzIDQyKSkpXG5cbiAgbGV0IG5hdGl2ZWJpdHMgPVxuICAgIGlmIE5hdGl2ZWludC5zaXplID0gMzJcbiAgICB0aGVuIGZ1biBzIC0+IE5hdGl2ZWludC5vZl9pbnQzMiAoYml0czMyIHMpXG4gICAgZWxzZSBmdW4gcyAtPiBJbnQ2NC50b19uYXRpdmVpbnQgKGJpdHM2NCBzKVxuXG5lbmRcblxuKCogVGhpcyBpcyB0aGUgc3RhdGUgeW91IGdldCB3aXRoIFtpbml0IDI3MTgyODE4XSBhbmQgdGhlbiBhcHBseWluZ1xuICAgdGhlIFwibGFuZCAweDNGRkZGRkZGXCIgZmlsdGVyIHRvIHRoZW0uICBTZWUgIzU1NzUsICM1NzkzLCAjNTk3Ny4gKilcbmxldCBkZWZhdWx0ID0ge1xuICBTdGF0ZS5zdCA9IFt8XG4gICAgICAweDNhZTI1MjJiOyAweDFkOGQ0NjM0OyAweDE1YjRmYWQwOyAweDE4YjE0YWNlOyAweDEyZjhhM2M0OyAweDNiMDg2YzQ3O1xuICAgICAgMHgxNmQ0NjdkNjsgMHgxMDFkOTFjNzsgMHgzMjFkZjE3NzsgMHgwMTc2YzE5MzsgMHgxZmY3MmJmMTsgMHgxZTg4OTEwOTtcbiAgICAgIDB4MGI0NjRiMTg7IDB4MmI4NmI5N2M7IDB4MDg5MWRhNDg7IDB4MDMxMzc0NjM7IDB4MDg1YWM1YTE7IDB4MTVkNjFmMmY7XG4gICAgICAweDNiY2VkMzU5OyAweDI5YzFjMTMyOyAweDNhODY3NjZlOyAweDM2NmQ4Yzg2OyAweDFmNWI2MjIyOyAweDNjZTFiNTlmO1xuICAgICAgMHgyZWJmNzhlMTsgMHgyN2NkMWI4NjsgMHgyNThmM2RjMzsgMHgzODlhODE5NDsgMHgwMmU0YzQ0YzsgMHgxOGM0M2Y3ZDtcbiAgICAgIDB4MGY2ZTUzNGY7IDB4MWU3ZGYzNTk7IDB4MDU1ZDBiN2U7IDB4MTBlODRlN2U7IDB4MTI2MTk4ZTQ7IDB4MGU3NzIyY2I7XG4gICAgICAweDFjYmVkZTI4OyAweDMzOTFiOTY0OyAweDNkNDBlOTJhOyAweDBjNTk5MzNkOyAweDBiOGNkMGI3OyAweDI0ZWZmZjFjO1xuICAgICAgMHgyODAzZmRhYTsgMHgwOGViYzcyZTsgMHgwZjUyMmUzMjsgMHgwNTM5OGVkYzsgMHgyMTQ0YTA0YzsgMHgwYWVmM2NiZDtcbiAgICAgIDB4MDFhZDQ3MTk7IDB4MzViOTNjZDY7IDB4MmE1NTlkNGY7IDB4MWU2ZmQ3Njg7IDB4MjZlMjdmMzY7IDB4MTg2ZjE4YzM7XG4gICAgICAweDJmYmY5NjdhO1xuICAgIHxdO1xuICBTdGF0ZS5pZHggPSAwO1xufVxuXG5sZXQgYml0cyAoKSA9IFN0YXRlLmJpdHMgZGVmYXVsdFxubGV0IGludCBib3VuZCA9IFN0YXRlLmludCBkZWZhdWx0IGJvdW5kXG5sZXQgZnVsbF9pbnQgYm91bmQgPSBTdGF0ZS5mdWxsX2ludCBkZWZhdWx0IGJvdW5kXG5sZXQgaW50MzIgYm91bmQgPSBTdGF0ZS5pbnQzMiBkZWZhdWx0IGJvdW5kXG5sZXQgbmF0aXZlaW50IGJvdW5kID0gU3RhdGUubmF0aXZlaW50IGRlZmF1bHQgYm91bmRcbmxldCBpbnQ2NCBib3VuZCA9IFN0YXRlLmludDY0IGRlZmF1bHQgYm91bmRcbmxldCBmbG9hdCBzY2FsZSA9IFN0YXRlLmZsb2F0IGRlZmF1bHQgc2NhbGVcbmxldCBib29sICgpID0gU3RhdGUuYm9vbCBkZWZhdWx0XG5sZXQgYml0czMyICgpID0gU3RhdGUuYml0czMyIGRlZmF1bHRcbmxldCBiaXRzNjQgKCkgPSBTdGF0ZS5iaXRzNjQgZGVmYXVsdFxubGV0IG5hdGl2ZWJpdHMgKCkgPSBTdGF0ZS5uYXRpdmViaXRzIGRlZmF1bHRcblxubGV0IGZ1bGxfaW5pdCBzZWVkID0gU3RhdGUuZnVsbF9pbml0IGRlZmF1bHQgc2VlZFxubGV0IGluaXQgc2VlZCA9IFN0YXRlLmZ1bGxfaW5pdCBkZWZhdWx0IFt8IHNlZWQgfF1cbmxldCBzZWxmX2luaXQgKCkgPSBmdWxsX2luaXQgKHJhbmRvbV9zZWVkKCkpXG5cbigqIE1hbmlwdWxhdGluZyB0aGUgY3VycmVudCBzdGF0ZS4gKilcblxubGV0IGdldF9zdGF0ZSAoKSA9IFN0YXRlLmNvcHkgZGVmYXVsdFxubGV0IHNldF9zdGF0ZSBzID0gU3RhdGUuYXNzaWduIGRlZmF1bHQgc1xuXG4oKioqKioqKioqKioqKioqKioqKipcblxuKCogVGVzdCBmdW5jdGlvbnMuICBOb3QgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkuXG4gICBUaGUgW2NoaXNxdWFyZV0gZnVuY3Rpb24gc2hvdWxkIGJlIGNhbGxlZCB3aXRoIG4gPiAxMHIuXG4gICBJdCByZXR1cm5zIGEgdHJpcGxlIChsb3csIGFjdHVhbCwgaGlnaCkuXG4gICBJZiBsb3cgPD0gYWN0dWFsIDw9IGhpZ2gsIHRoZSBbZ10gZnVuY3Rpb24gcGFzc2VkIHRoZSB0ZXN0LFxuICAgb3RoZXJ3aXNlIGl0IGZhaWxlZC5cblxuICBTb21lIHJlc3VsdHM6XG5cbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAgNTAwMFxuaW5pdCAyNzE4MjgxODsgY2hpc3F1YXJlIGludCAxMDAwMDAwIDEwMDBcbmluaXQgMjcxODI4MTg7IGNoaXNxdWFyZSBpbnQgMTAwMDAwIDEwMjRcbmluaXQgMjk5NzkyNjQzOyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDE0MTQyMTM2OyBjaGlzcXVhcmUgaW50IDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYgMTAyNDsgY2hpc3F1YXJlIGRpZmYgMTAwMDAwIDEwMjRcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZiAxMDA7IGNoaXNxdWFyZSBkaWZmIDEwMDAwMCAxMDBcbmluaXQgMjcxODI4MTg7IGluaXRfZGlmZjIgMTAyNDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDI0XG5pbml0IDI3MTgyODE4OyBpbml0X2RpZmYyIDEwMDsgY2hpc3F1YXJlIGRpZmYyIDEwMDAwMCAxMDBcbmluaXQgMTQxNDIxMzY7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuaW5pdCAyOTk3OTI2NDM7IGluaXRfZGlmZjIgMTAwOyBjaGlzcXVhcmUgZGlmZjIgMTAwMDAwIDEwMFxuLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg5MzYuNzU0NDQ2Nzk2NjMyNDY1LCA5OTcuNSwgMTA2My4yNDU1NTMyMDMzNjc1NClcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg5Ljc0MDAwMDAwMDAwNTIzODcsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoNDg1OC41Nzg2NDM3NjI2OSwgNTA0NS41LCA1MTQxLjQyMTM1NjIzNzMxKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID1cbig5MzYuNzU0NDQ2Nzk2NjMyNDY1LCA5NDQuODA1OTk5OTk5OTgyMzA1LCAxMDYzLjI0NTU1MzIwMzM2NzU0KVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwMTkuMTk3NDQwMDAwMDAzNTUsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNTkuMzE3NzYwMDAwMDA1MzYsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwMzkuOTg0NjM5OTk5OTk1MTIsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNTQuMzgyMDc5OTk5OTk1NzcsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgOTAuMDk2MDAwMDAwMDA1LCAxMjAuKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDk2MC4sIDEwNzYuNzg3MjAwMDAwMDA2MTIsIDEwODguKVxuIyAtIDogZmxvYXQgKiBmbG9hdCAqIGZsb2F0ID0gKDgwLiwgODUuMTc2MDAwMDAwMDA2NzUyMSwgMTIwLilcbiMgLSA6IGZsb2F0ICogZmxvYXQgKiBmbG9hdCA9ICg4MC4sIDg1LjIxNjAwMDAwMDAwMDM0OTIsIDEyMC4pXG4jIC0gOiBmbG9hdCAqIGZsb2F0ICogZmxvYXQgPSAoODAuLCA4MC42MjIwMDAwMDAwMDMwMjY4LCAxMjAuKVxuXG4qKVxuXG4oKiBSZXR1cm4gdGhlIHN1bSBvZiB0aGUgc3F1YXJlcyBvZiB2W2kwLGkxWyAqKVxubGV0IHJlYyBzdW1zcSB2IGkwIGkxID1cbiAgaWYgaTAgPj0gaTEgdGhlbiAwLjBcbiAgZWxzZSBpZiBpMSA9IGkwICsgMSB0aGVuIFN0ZGxpYi5mbG9hdCB2LihpMCkgKi4gU3RkbGliLmZsb2F0IHYuKGkwKVxuICBlbHNlIHN1bXNxIHYgaTAgKChpMCtpMSkvMikgKy4gc3Vtc3EgdiAoKGkwK2kxKS8yKSBpMVxuXG5cbmxldCBjaGlzcXVhcmUgZyBuIHIgPVxuICBpZiBuIDw9IDEwICogciB0aGVuIGludmFsaWRfYXJnIFwiY2hpc3F1YXJlXCI7XG4gIGxldCBmID0gQXJyYXkubWFrZSByIDAgaW5cbiAgZm9yIGkgPSAxIHRvIG4gZG9cbiAgICBsZXQgdCA9IGcgciBpblxuICAgIGYuKHQpIDwtIGYuKHQpICsgMVxuICBkb25lO1xuICBsZXQgdCA9IHN1bXNxIGYgMCByXG4gIGFuZCByID0gU3RkbGliLmZsb2F0IHJcbiAgYW5kIG4gPSBTdGRsaWIuZmxvYXQgbiBpblxuICBsZXQgc3IgPSAyLjAgKi4gc3FydCByIGluXG4gIChyIC0uIHNyLCAgIChyICouIHQgLy4gbikgLS4gbiwgICByICsuIHNyKVxuXG5cbigqIFRoaXMgaXMgdG8gdGVzdCBmb3IgbGluZWFyIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgcmFuZG9tIG51bWJlcnMuXG4qKVxubGV0IHN0ID0gcmVmIDBcbmxldCBpbml0X2RpZmYgciA9IHN0IDo9IGludCByXG5sZXQgZGlmZiByID1cbiAgbGV0IHgxID0gIXN0XG4gIGFuZCB4MiA9IGludCByXG4gIGluXG4gIHN0IDo9IHgyO1xuICBpZiB4MSA+PSB4MiB0aGVuXG4gICAgeDEgLSB4MlxuICBlbHNlXG4gICAgciArIHgxIC0geDJcblxuXG5sZXQgc3QxID0gcmVmIDBcbmFuZCBzdDIgPSByZWYgMFxuXG5cbigqIFRoaXMgaXMgdG8gdGVzdCBmb3IgcXVhZHJhdGljIGRlcGVuZGVuY2llcyBiZXR3ZWVuIHN1Y2Nlc3NpdmUgcmFuZG9tXG4gICBudW1iZXJzLlxuKilcbmxldCBpbml0X2RpZmYyIHIgPSBzdDEgOj0gaW50IHI7IHN0MiA6PSBpbnQgclxubGV0IGRpZmYyIHIgPVxuICBsZXQgeDEgPSAhc3QxXG4gIGFuZCB4MiA9ICFzdDJcbiAgYW5kIHgzID0gaW50IHJcbiAgaW5cbiAgc3QxIDo9IHgyO1xuICBzdDIgOj0geDM7XG4gICh4MyAtIHgyIC0geDIgKyB4MSArIDIqcikgbW9kIHJcblxuXG4qKioqKioqKioqKioqKioqKioqKilcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxuKCogSGFzaCB0YWJsZXMgKilcblxuKCogV2UgZG8gZHluYW1pYyBoYXNoaW5nLCBhbmQgcmVzaXplIHRoZSB0YWJsZSBhbmQgcmVoYXNoIHRoZSBlbGVtZW50c1xuICAgd2hlbiBidWNrZXRzIGJlY29tZSB0b28gbG9uZy4gKilcblxudHlwZSAoJ2EsICdiKSB0ID1cbiAgeyBtdXRhYmxlIHNpemU6IGludDsgICAgICAgICAgICAgICAgICAgICAgICAoKiBudW1iZXIgb2YgZW50cmllcyAqKVxuICAgIG11dGFibGUgZGF0YTogKCdhLCAnYikgYnVja2V0bGlzdCBhcnJheTsgICgqIHRoZSBidWNrZXRzICopXG4gICAgc2VlZDogaW50OyAgICAgICAgICAgICAgICAgICAgICAgICgqIGZvciByYW5kb21pemF0aW9uICopXG4gICAgbXV0YWJsZSBpbml0aWFsX3NpemU6IGludDsgICAgICAgICAgICAgICAgKCogaW5pdGlhbCBhcnJheSBzaXplICopXG4gIH1cblxuYW5kICgnYSwgJ2IpIGJ1Y2tldGxpc3QgPVxuICAgIEVtcHR5XG4gIHwgQ29ucyBvZiB7IG11dGFibGUga2V5OiAnYTtcbiAgICAgICAgICAgICAgbXV0YWJsZSBkYXRhOiAnYjtcbiAgICAgICAgICAgICAgbXV0YWJsZSBuZXh0OiAoJ2EsICdiKSBidWNrZXRsaXN0IH1cblxuKCogVGhlIHNpZ24gb2YgaW5pdGlhbF9zaXplIGVuY29kZXMgdGhlIGZhY3QgdGhhdCBhIHRyYXZlcnNhbCBpc1xuICAgb25nb2luZyBvciBub3QuXG5cbiAgIFRoaXMgZGlzYWJsZXMgdGhlIGVmZmljaWVudCBpbiBwbGFjZSBpbXBsZW1lbnRhdGlvbiBvZiByZXNpemluZy5cbiopXG5cbmxldCBvbmdvaW5nX3RyYXZlcnNhbCBoID1cbiAgT2JqLnNpemUgKE9iai5yZXByIGgpIDwgNCAoKiBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGhhc2ggdGFibGVzICopXG4gIHx8IGguaW5pdGlhbF9zaXplIDwgMFxuXG5sZXQgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoID1cbiAgaC5pbml0aWFsX3NpemUgPC0gLSBoLmluaXRpYWxfc2l6ZVxuXG4oKiBUbyBwaWNrIHJhbmRvbSBzZWVkcyBpZiByZXF1ZXN0ZWQgKilcblxubGV0IHJhbmRvbWl6ZWRfZGVmYXVsdCA9XG4gIGxldCBwYXJhbXMgPVxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiT0NBTUxSVU5QQVJBTVwiIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJDQU1MUlVOUEFSQU1cIiB3aXRoIE5vdF9mb3VuZCAtPiBcIlwiIGluXG4gIFN0cmluZy5jb250YWlucyBwYXJhbXMgJ1InXG5cbmxldCByYW5kb21pemVkID0gcmVmIHJhbmRvbWl6ZWRfZGVmYXVsdFxuXG5sZXQgcmFuZG9taXplICgpID0gcmFuZG9taXplZCA6PSB0cnVlXG5sZXQgaXNfcmFuZG9taXplZCAoKSA9ICFyYW5kb21pemVkXG5cbmxldCBwcm5nID0gbGF6eSAoUmFuZG9tLlN0YXRlLm1ha2Vfc2VsZl9pbml0KCkpXG5cbigqIEZ1bmN0aW9ucyB3aGljaCBhcHBlYXIgYmVmb3JlIHRoZSBmdW5jdG9yaWFsIGludGVyZmFjZSBtdXN0IGVpdGhlciBiZVxuICAgaW5kZXBlbmRlbnQgb2YgdGhlIGhhc2ggZnVuY3Rpb24gb3IgdGFrZSBpdCBhcyBhIHBhcmFtZXRlciAoc2VlICMyMjAyIGFuZFxuICAgY29kZSBiZWxvdyB0aGUgZnVuY3RvciBkZWZpbml0aW9ucy4gKilcblxuKCogQ3JlYXRpbmcgYSBmcmVzaCwgZW1wdHkgdGFibGUgKilcblxubGV0IHJlYyBwb3dlcl8yX2Fib3ZlIHggbiA9XG4gIGlmIHggPj0gbiB0aGVuIHhcbiAgZWxzZSBpZiB4ICogMiA+IFN5cy5tYXhfYXJyYXlfbGVuZ3RoIHRoZW4geFxuICBlbHNlIHBvd2VyXzJfYWJvdmUgKHggKiAyKSBuXG5cbmxldCBjcmVhdGUgPyhyYW5kb20gPSAhcmFuZG9taXplZCkgaW5pdGlhbF9zaXplID1cbiAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IGluaXRpYWxfc2l6ZSBpblxuICBsZXQgc2VlZCA9IGlmIHJhbmRvbSB0aGVuIFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpIGVsc2UgMCBpblxuICB7IGluaXRpYWxfc2l6ZSA9IHM7IHNpemUgPSAwOyBzZWVkID0gc2VlZDsgZGF0YSA9IEFycmF5Lm1ha2UgcyBFbXB0eSB9XG5cbmxldCBjbGVhciBoID1cbiAgaWYgaC5zaXplID4gMCB0aGVuIGJlZ2luXG4gICAgaC5zaXplIDwtIDA7XG4gICAgQXJyYXkuZmlsbCBoLmRhdGEgMCAoQXJyYXkubGVuZ3RoIGguZGF0YSkgRW1wdHlcbiAgZW5kXG5cbmxldCByZXNldCBoID1cbiAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgaWYgT2JqLnNpemUgKE9iai5yZXByIGgpIDwgNCAoKiBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGhhc2ggdGFibGVzICopXG4gICAgfHwgbGVuID0gYWJzIGguaW5pdGlhbF9zaXplIHRoZW5cbiAgICBjbGVhciBoXG4gIGVsc2UgYmVnaW5cbiAgICBoLnNpemUgPC0gMDtcbiAgICBoLmRhdGEgPC0gQXJyYXkubWFrZSAoYWJzIGguaW5pdGlhbF9zaXplKSBFbXB0eVxuICBlbmRcblxubGV0IGNvcHlfYnVja2V0bGlzdCA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gRW1wdHlcbiAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICBsZXQgcmVjIGxvb3AgcHJlYyA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gKClcbiAgICAgICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgICAgICBsZXQgciA9IENvbnMge2tleTsgZGF0YTsgbmV4dH0gaW5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgICAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgIHwgQ29ucyBwcmVjIC0+ICBwcmVjLm5leHQgPC0gclxuICAgICAgICAgICAgZW5kO1xuICAgICAgICAgICAgbG9vcCByIG5leHRcbiAgICAgIGluXG4gICAgICBsZXQgciA9IENvbnMge2tleTsgZGF0YTsgbmV4dH0gaW5cbiAgICAgIGxvb3AgciBuZXh0O1xuICAgICAgclxuXG5sZXQgY29weSBoID0geyBoIHdpdGggZGF0YSA9IEFycmF5Lm1hcCBjb3B5X2J1Y2tldGxpc3QgaC5kYXRhIH1cblxubGV0IGxlbmd0aCBoID0gaC5zaXplXG5cbmxldCBpbnNlcnRfYWxsX2J1Y2tldHMgaW5kZXhmdW4gaW5wbGFjZSBvZGF0YSBuZGF0YSA9XG4gIGxldCBuc2l6ZSA9IEFycmF5Lmxlbmd0aCBuZGF0YSBpblxuICBsZXQgbmRhdGFfdGFpbCA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgbGV0IHJlYyBpbnNlcnRfYnVja2V0ID0gZnVuY3Rpb25cbiAgICB8IEVtcHR5IC0+ICgpXG4gICAgfCBDb25zIHtrZXk7IGRhdGE7IG5leHR9IGFzIGNlbGwgLT5cbiAgICAgICAgbGV0IGNlbGwgPVxuICAgICAgICAgIGlmIGlucGxhY2UgdGhlbiBjZWxsXG4gICAgICAgICAgZWxzZSBDb25zIHtrZXk7IGRhdGE7IG5leHQgPSBFbXB0eX1cbiAgICAgICAgaW5cbiAgICAgICAgbGV0IG5pZHggPSBpbmRleGZ1biBrZXkgaW5cbiAgICAgICAgYmVnaW4gbWF0Y2ggbmRhdGFfdGFpbC4obmlkeCkgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IG5kYXRhLihuaWR4KSA8LSBjZWxsO1xuICAgICAgICB8IENvbnMgdGFpbCAtPiB0YWlsLm5leHQgPC0gY2VsbDtcbiAgICAgICAgZW5kO1xuICAgICAgICBuZGF0YV90YWlsLihuaWR4KSA8LSBjZWxsO1xuICAgICAgICBpbnNlcnRfYnVja2V0IG5leHRcbiAgaW5cbiAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBvZGF0YSAtIDEgZG9cbiAgICBpbnNlcnRfYnVja2V0IG9kYXRhLihpKVxuICBkb25lO1xuICBpZiBpbnBsYWNlIHRoZW5cbiAgICBmb3IgaSA9IDAgdG8gbnNpemUgLSAxIGRvXG4gICAgICBtYXRjaCBuZGF0YV90YWlsLihpKSB3aXRoXG4gICAgICB8IEVtcHR5IC0+ICgpXG4gICAgICB8IENvbnMgdGFpbCAtPiB0YWlsLm5leHQgPC0gRW1wdHlcbiAgICBkb25lXG5cbmxldCByZXNpemUgaW5kZXhmdW4gaCA9XG4gIGxldCBvZGF0YSA9IGguZGF0YSBpblxuICBsZXQgb3NpemUgPSBBcnJheS5sZW5ndGggb2RhdGEgaW5cbiAgbGV0IG5zaXplID0gb3NpemUgKiAyIGluXG4gIGlmIG5zaXplIDwgU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiBiZWdpblxuICAgIGxldCBuZGF0YSA9IEFycmF5Lm1ha2UgbnNpemUgRW1wdHkgaW5cbiAgICBsZXQgaW5wbGFjZSA9IG5vdCAob25nb2luZ190cmF2ZXJzYWwgaCkgaW5cbiAgICBoLmRhdGEgPC0gbmRhdGE7ICAgICAgICAgICgqIHNvIHRoYXQgaW5kZXhmdW4gc2VlcyB0aGUgbmV3IGJ1Y2tldCBjb3VudCAqKVxuICAgIGluc2VydF9hbGxfYnVja2V0cyAoaW5kZXhmdW4gaCkgaW5wbGFjZSBvZGF0YSBuZGF0YVxuICBlbmRcblxubGV0IGl0ZXIgZiBoID1cbiAgbGV0IHJlYyBkb19idWNrZXQgPSBmdW5jdGlvblxuICAgIHwgRW1wdHkgLT5cbiAgICAgICAgKClcbiAgICB8IENvbnN7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBmIGtleSBkYXRhOyBkb19idWNrZXQgbmV4dCBpblxuICBsZXQgb2xkX3RyYXYgPSBvbmdvaW5nX3RyYXZlcnNhbCBoIGluXG4gIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgdHJ5XG4gICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBkb19idWNrZXQgZC4oaSlcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgd2l0aCBleG4gd2hlbiBub3Qgb2xkX3RyYXYgLT5cbiAgICBmbGlwX29uZ29pbmdfdHJhdmVyc2FsIGg7XG4gICAgcmFpc2UgZXhuXG5cbmxldCByZWMgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBwcmVjID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgYmVnaW4gbWF0Y2ggcHJlYyB3aXRoXG4gICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gRW1wdHlcbiAgICAgIHwgQ29ucyBjIC0+IGMubmV4dCA8LSBFbXB0eVxuICAgICAgZW5kXG4gIHwgKENvbnMgKHtrZXk7IGRhdGE7IG5leHR9IGFzIGMpKSBhcyBzbG90IC0+XG4gICAgICBiZWdpbiBtYXRjaCBmIGtleSBkYXRhIHdpdGhcbiAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgIGguc2l6ZSA8LSBoLnNpemUgLSAxO1xuICAgICAgICAgIGZpbHRlcl9tYXBfaW5wbGFjZV9idWNrZXQgZiBoIGkgcHJlYyBuZXh0XG4gICAgICB8IFNvbWUgZGF0YSAtPlxuICAgICAgICAgIGJlZ2luIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBzbG90XG4gICAgICAgICAgfCBDb25zIGMgLT4gYy5uZXh0IDwtIHNsb3RcbiAgICAgICAgICBlbmQ7XG4gICAgICAgICAgYy5kYXRhIDwtIGRhdGE7XG4gICAgICAgICAgZmlsdGVyX21hcF9pbnBsYWNlX2J1Y2tldCBmIGggaSBzbG90IG5leHRcbiAgICAgIGVuZFxuXG5sZXQgZmlsdGVyX21hcF9pbnBsYWNlIGYgaCA9XG4gIGxldCBkID0gaC5kYXRhIGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBmaWx0ZXJfbWFwX2lucGxhY2VfYnVja2V0IGYgaCBpIEVtcHR5IGguZGF0YS4oaSlcbiAgICBkb25lO1xuICAgIGlmIG5vdCBvbGRfdHJhdiB0aGVuIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaFxuICB3aXRoIGV4biB3aGVuIG5vdCBvbGRfdHJhdiAtPlxuICAgIGZsaXBfb25nb2luZ190cmF2ZXJzYWwgaDtcbiAgICByYWlzZSBleG5cblxubGV0IGZvbGQgZiBoIGluaXQgPVxuICBsZXQgcmVjIGRvX2J1Y2tldCBiIGFjY3UgPVxuICAgIG1hdGNoIGIgd2l0aFxuICAgICAgRW1wdHkgLT5cbiAgICAgICAgYWNjdVxuICAgIHwgQ29uc3trZXk7IGRhdGE7IG5leHR9IC0+XG4gICAgICAgIGRvX2J1Y2tldCBuZXh0IChmIGtleSBkYXRhIGFjY3UpIGluXG4gIGxldCBvbGRfdHJhdiA9IG9uZ29pbmdfdHJhdmVyc2FsIGggaW5cbiAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICB0cnlcbiAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgIGxldCBhY2N1ID0gcmVmIGluaXQgaW5cbiAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICBhY2N1IDo9IGRvX2J1Y2tldCBkLihpKSAhYWNjdVxuICAgIGRvbmU7XG4gICAgaWYgbm90IG9sZF90cmF2IHRoZW4gZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgICFhY2N1XG4gIHdpdGggZXhuIHdoZW4gbm90IG9sZF90cmF2IC0+XG4gICAgZmxpcF9vbmdvaW5nX3RyYXZlcnNhbCBoO1xuICAgIHJhaXNlIGV4blxuXG50eXBlIHN0YXRpc3RpY3MgPSB7XG4gIG51bV9iaW5kaW5nczogaW50O1xuICBudW1fYnVja2V0czogaW50O1xuICBtYXhfYnVja2V0X2xlbmd0aDogaW50O1xuICBidWNrZXRfaGlzdG9ncmFtOiBpbnQgYXJyYXlcbn1cblxubGV0IHJlYyBidWNrZXRfbGVuZ3RoIGFjY3UgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+IGFjY3VcbiAgfCBDb25ze25leHR9IC0+IGJ1Y2tldF9sZW5ndGggKGFjY3UgKyAxKSBuZXh0XG5cbmxldCBzdGF0cyBoID1cbiAgbGV0IG1ibCA9XG4gICAgQXJyYXkuZm9sZF9sZWZ0IChmdW4gbSBiIC0+IEludC5tYXggbSAoYnVja2V0X2xlbmd0aCAwIGIpKSAwIGguZGF0YSBpblxuICBsZXQgaGlzdG8gPSBBcnJheS5tYWtlIChtYmwgKyAxKSAwIGluXG4gIEFycmF5Lml0ZXJcbiAgICAoZnVuIGIgLT5cbiAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aCAwIGIgaW5cbiAgICAgIGhpc3RvLihsKSA8LSBoaXN0by4obCkgKyAxKVxuICAgIGguZGF0YTtcbiAgeyBudW1fYmluZGluZ3MgPSBoLnNpemU7XG4gICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgIG1heF9idWNrZXRfbGVuZ3RoID0gbWJsO1xuICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbigqKiB7MSBJdGVyYXRvcnN9ICopXG5cbmxldCB0b19zZXEgdGJsID1cbiAgKCogY2FwdHVyZSBjdXJyZW50IGFycmF5LCBzbyB0aGF0IGV2ZW4gaWYgdGhlIHRhYmxlIGlzIHJlc2l6ZWQgd2VcbiAgICAga2VlcCBpdGVyYXRpbmcgb24gdGhlIHNhbWUgYXJyYXkgKilcbiAgbGV0IHRibF9kYXRhID0gdGJsLmRhdGEgaW5cbiAgKCogc3RhdGU6IGluZGV4ICogbmV4dCBidWNrZXQgdG8gdHJhdmVyc2UgKilcbiAgbGV0IHJlYyBhdXggaSBidWNrICgpID0gbWF0Y2ggYnVjayB3aXRoXG4gICAgfCBFbXB0eSAtPlxuICAgICAgICBpZiBpID0gQXJyYXkubGVuZ3RoIHRibF9kYXRhXG4gICAgICAgIHRoZW4gU2VxLk5pbFxuICAgICAgICBlbHNlIGF1eChpKzEpIHRibF9kYXRhLihpKSAoKVxuICAgIHwgQ29ucyB7a2V5OyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICBTZXEuQ29ucyAoKGtleSwgZGF0YSksIGF1eCBpIG5leHQpXG4gIGluXG4gIGF1eCAwIEVtcHR5XG5cbmxldCB0b19zZXFfa2V5cyBtID0gU2VxLm1hcCBmc3QgKHRvX3NlcSBtKVxuXG5sZXQgdG9fc2VxX3ZhbHVlcyBtID0gU2VxLm1hcCBzbmQgKHRvX3NlcSBtKVxuXG4oKiBGdW5jdG9yaWFsIGludGVyZmFjZSAqKVxuXG5tb2R1bGUgdHlwZSBIYXNoZWRUeXBlID1cbiAgc2lnXG4gICAgdHlwZSB0XG4gICAgdmFsIGVxdWFsOiB0IC0+IHQgLT4gYm9vbFxuICAgIHZhbCBoYXNoOiB0IC0+IGludFxuICBlbmRcblxubW9kdWxlIHR5cGUgU2VlZGVkSGFzaGVkVHlwZSA9XG4gIHNpZ1xuICAgIHR5cGUgdFxuICAgIHZhbCBlcXVhbDogdCAtPiB0IC0+IGJvb2xcbiAgICB2YWwgaGFzaDogaW50IC0+IHQgLT4gaW50XG4gIGVuZFxuXG5tb2R1bGUgdHlwZSBTID1cbiAgc2lnXG4gICAgdHlwZSBrZXlcbiAgICB0eXBlICEnYSB0XG4gICAgdmFsIGNyZWF0ZTogaW50IC0+ICdhIHRcbiAgICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgY29weTogJ2EgdCAtPiAnYSB0XG4gICAgdmFsIGFkZDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCByZW1vdmU6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgICB2YWwgZmluZDogJ2EgdCAtPiBrZXkgLT4gJ2FcbiAgICB2YWwgZmluZF9vcHQ6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICAgIHZhbCBmaW5kX2FsbDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICAgIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICAgIHZhbCBtZW0gOiAnYSB0IC0+IGtleSAtPiBib29sXG4gICAgdmFsIGl0ZXI6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZTogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgdmFsIGxlbmd0aDogJ2EgdCAtPiBpbnRcbiAgICB2YWwgc3RhdHM6ICdhIHQgLT4gc3RhdGlzdGljc1xuICAgIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICAgIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIG9mX3NlcSA6IChrZXkgKiAnYSkgU2VxLnQgLT4gJ2EgdFxuICBlbmRcblxubW9kdWxlIHR5cGUgU2VlZGVkUyA9XG4gIHNpZ1xuICAgIHR5cGUga2V5XG4gICAgdHlwZSAhJ2EgdFxuICAgIHZhbCBjcmVhdGUgOiA/cmFuZG9tOmJvb2wgLT4gaW50IC0+ICdhIHRcbiAgICB2YWwgY2xlYXIgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICAgIHZhbCBhZGQgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gICAgdmFsIGZpbmRfb3B0OiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gICAgdmFsIHJlcGxhY2UgOiAnYSB0IC0+IGtleSAtPiAnYSAtPiB1bml0XG4gICAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZTogKGtleSAtPiAnYSAtPiAnYSBvcHRpb24pIC0+ICdhIHQgLT4gdW5pdFxuICAgIHZhbCBmb2xkIDogKGtleSAtPiAnYSAtPiAnYiAtPiAnYikgLT4gJ2EgdCAtPiAnYiAtPiAnYlxuICAgIHZhbCBsZW5ndGggOiAnYSB0IC0+IGludFxuICAgIHZhbCBzdGF0czogJ2EgdCAtPiBzdGF0aXN0aWNzXG4gICAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gICAgdmFsIHJlcGxhY2Vfc2VxIDogJ2EgdCAtPiAoa2V5ICogJ2EpIFNlcS50IC0+IHVuaXRcbiAgICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIGVuZFxuXG5tb2R1bGUgTWFrZVNlZWRlZChIOiBTZWVkZWRIYXNoZWRUeXBlKTogKFNlZWRlZFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICB0eXBlIGtleSA9IEgudFxuICAgIHR5cGUgJ2EgaGFzaHRibCA9IChrZXksICdhKSB0XG4gICAgdHlwZSAnYSB0ID0gJ2EgaGFzaHRibFxuICAgIGxldCBjcmVhdGUgPSBjcmVhdGVcbiAgICBsZXQgY2xlYXIgPSBjbGVhclxuICAgIGxldCByZXNldCA9IHJlc2V0XG4gICAgbGV0IGNvcHkgPSBjb3B5XG5cbiAgICBsZXQga2V5X2luZGV4IGgga2V5ID1cbiAgICAgIChILmhhc2ggaC5zZWVkIGtleSkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG5cbiAgICBsZXQgYWRkIGgga2V5IGRhdGEgPVxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBrZXkgaW5cbiAgICAgIGxldCBidWNrZXQgPSBDb25ze2tleTsgZGF0YTsgbmV4dD1oLmRhdGEuKGkpfSBpblxuICAgICAgaC5kYXRhLihpKSA8LSBidWNrZXQ7XG4gICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcblxuICAgIGxldCByZWMgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IHByZWMgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICgpXG4gICAgICB8IChDb25zIHtrZXk9azsgbmV4dH0pIGFzIGMgLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiBiZWdpblxuICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICBtYXRjaCBwcmVjIHdpdGhcbiAgICAgICAgICAgIHwgRW1wdHkgLT4gaC5kYXRhLihpKSA8LSBuZXh0XG4gICAgICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gbmV4dFxuICAgICAgICAgIGVuZFxuICAgICAgICAgIGVsc2UgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IGMgbmV4dFxuXG4gICAgbGV0IHJlbW92ZSBoIGtleSA9XG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGtleSBpblxuICAgICAgcmVtb3ZlX2J1Y2tldCBoIGkga2V5IEVtcHR5IGguZGF0YS4oaSlcblxuICAgIGxldCByZWMgZmluZF9yZWMga2V5ID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGtleSBrIHRoZW4gZGF0YSBlbHNlIGZpbmRfcmVjIGtleSBuZXh0XG5cbiAgICBsZXQgZmluZCBoIGtleSA9XG4gICAgICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgIHwgQ29uc3trZXk9azE7IGRhdGE9ZDE7IG5leHQ9bmV4dDF9IC0+XG4gICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazEgdGhlbiBkMSBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgICAgfCBDb25ze2tleT1rMjsgZGF0YT1kMjsgbmV4dD1uZXh0Mn0gLT5cbiAgICAgICAgICAgICAgaWYgSC5lcXVhbCBrZXkgazIgdGhlbiBkMiBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICAgICAgfCBDb25ze2tleT1rMzsgZGF0YT1kMzsgbmV4dD1uZXh0M30gLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGszIHRoZW4gZDMgZWxzZSBmaW5kX3JlYyBrZXkgbmV4dDNcblxuICAgIGxldCByZWMgZmluZF9yZWNfb3B0IGtleSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgTm9uZVxuICAgICAgfCBDb25ze2tleT1rOyBkYXRhOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsgdGhlbiBTb21lIGRhdGEgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHRcblxuICAgIGxldCBmaW5kX29wdCBoIGtleSA9XG4gICAgICBtYXRjaCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSkgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsxIHRoZW4gU29tZSBkMSBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDEgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgICAgIGlmIEguZXF1YWwga2V5IGsyIHRoZW4gU29tZSBkMiBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIG5leHQyIHdpdGhcbiAgICAgICAgICAgICAgfCBFbXB0eSAtPiBOb25lXG4gICAgICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgICAgICBpZiBILmVxdWFsIGtleSBrMyB0aGVuIFNvbWUgZDMgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHQzXG5cbiAgICBsZXQgZmluZF9hbGwgaCBrZXkgPVxuICAgICAgbGV0IHJlYyBmaW5kX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgW11cbiAgICAgIHwgQ29uc3trZXk9azsgZGF0YT1kOyBuZXh0fSAtPlxuICAgICAgICAgIGlmIEguZXF1YWwgayBrZXlcbiAgICAgICAgICB0aGVuIGQgOjogZmluZF9pbl9idWNrZXQgbmV4dFxuICAgICAgICAgIGVsc2UgZmluZF9pbl9idWNrZXQgbmV4dCBpblxuICAgICAgZmluZF9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpXG5cbiAgICBsZXQgcmVjIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhID0gZnVuY3Rpb25cbiAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICB0cnVlXG4gICAgICB8IENvbnMgKHtrZXk9azsgbmV4dH0gYXMgc2xvdCkgLT5cbiAgICAgICAgICBpZiBILmVxdWFsIGsga2V5XG4gICAgICAgICAgdGhlbiAoc2xvdC5rZXkgPC0ga2V5OyBzbG90LmRhdGEgPC0gZGF0YTsgZmFsc2UpXG4gICAgICAgICAgZWxzZSByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBuZXh0XG5cbiAgICBsZXQgcmVwbGFjZSBoIGtleSBkYXRhID1cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gICAgICBsZXQgbCA9IGguZGF0YS4oaSkgaW5cbiAgICAgIGlmIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIGwgdGhlbiBiZWdpblxuICAgICAgICBoLmRhdGEuKGkpIDwtIENvbnN7a2V5OyBkYXRhOyBuZXh0PWx9O1xuICAgICAgICBoLnNpemUgPC0gaC5zaXplICsgMTtcbiAgICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBrZXlfaW5kZXggaFxuICAgICAgZW5kXG5cbiAgICBsZXQgbWVtIGgga2V5ID1cbiAgICAgIGxldCByZWMgbWVtX2luX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+XG4gICAgICAgICAgZmFsc2VcbiAgICAgIHwgQ29uc3trZXk9azsgbmV4dH0gLT5cbiAgICAgICAgICBILmVxdWFsIGsga2V5IHx8IG1lbV9pbl9idWNrZXQgbmV4dCBpblxuICAgICAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxuICAgIGxldCBhZGRfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxuICAgIGxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG5cbiAgICBsZXQgaXRlciA9IGl0ZXJcbiAgICBsZXQgZmlsdGVyX21hcF9pbnBsYWNlID0gZmlsdGVyX21hcF9pbnBsYWNlXG4gICAgbGV0IGZvbGQgPSBmb2xkXG4gICAgbGV0IGxlbmd0aCA9IGxlbmd0aFxuICAgIGxldCBzdGF0cyA9IHN0YXRzXG4gICAgbGV0IHRvX3NlcSA9IHRvX3NlcVxuICAgIGxldCB0b19zZXFfa2V5cyA9IHRvX3NlcV9rZXlzXG4gICAgbGV0IHRvX3NlcV92YWx1ZXMgPSB0b19zZXFfdmFsdWVzXG4gIGVuZFxuXG5tb2R1bGUgTWFrZShIOiBIYXNoZWRUeXBlKTogKFMgd2l0aCB0eXBlIGtleSA9IEgudCkgPVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIE1ha2VTZWVkZWQoc3RydWN0XG4gICAgICAgIHR5cGUgdCA9IEgudFxuICAgICAgICBsZXQgZXF1YWwgPSBILmVxdWFsXG4gICAgICAgIGxldCBoYXNoIChfc2VlZDogaW50KSB4ID0gSC5oYXNoIHhcbiAgICAgIGVuZClcbiAgICBsZXQgY3JlYXRlIHN6ID0gY3JlYXRlIH5yYW5kb206ZmFsc2Ugc3pcbiAgICBsZXQgb2Zfc2VxIGkgPVxuICAgICAgbGV0IHRibCA9IGNyZWF0ZSAxNiBpblxuICAgICAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gICAgICB0YmxcbiAgZW5kXG5cbigqIFBvbHltb3JwaGljIGhhc2ggZnVuY3Rpb24tYmFzZWQgdGFibGVzICopXG4oKiBDb2RlIGluY2x1ZGVkIGJlbG93IHRoZSBmdW5jdG9yaWFsIGludGVyZmFjZSB0byBndWFyZCBhZ2FpbnN0IGFjY2lkZW50YWxcbiAgIHVzZSAtIHNlZSAjMjIwMiAqKVxuXG5leHRlcm5hbCBzZWVkZWRfaGFzaF9wYXJhbSA6XG4gIGludCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IGludCA9IFwiY2FtbF9oYXNoXCIgW0BAbm9hbGxvY11cblxubGV0IGhhc2ggeCA9IHNlZWRlZF9oYXNoX3BhcmFtIDEwIDEwMCAwIHhcbmxldCBoYXNoX3BhcmFtIG4xIG4yIHggPSBzZWVkZWRfaGFzaF9wYXJhbSBuMSBuMiAwIHhcbmxldCBzZWVkZWRfaGFzaCBzZWVkIHggPSBzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgc2VlZCB4XG5cbmxldCBrZXlfaW5kZXggaCBrZXkgPVxuICBpZiBPYmouc2l6ZSAoT2JqLnJlcHIgaCkgPj0gNFxuICB0aGVuIChzZWVkZWRfaGFzaF9wYXJhbSAxMCAxMDAgaC5zZWVkIGtleSkgbGFuZCAoQXJyYXkubGVuZ3RoIGguZGF0YSAtIDEpXG4gIGVsc2UgaW52YWxpZF9hcmcgXCJIYXNodGJsOiB1bnN1cHBvcnRlZCBoYXNoIHRhYmxlIGZvcm1hdFwiXG5cbmxldCBhZGQgaCBrZXkgZGF0YSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIGxldCBidWNrZXQgPSBDb25ze2tleTsgZGF0YTsgbmV4dD1oLmRhdGEuKGkpfSBpblxuICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcblxubGV0IHJlYyByZW1vdmVfYnVja2V0IGggaSBrZXkgcHJlYyA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgICgpXG4gIHwgKENvbnMge2tleT1rOyBuZXh0fSkgYXMgYyAtPlxuICAgICAgaWYgY29tcGFyZSBrIGtleSA9IDBcbiAgICAgIHRoZW4gYmVnaW5cbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgIG1hdGNoIHByZWMgd2l0aFxuICAgICAgICB8IEVtcHR5IC0+IGguZGF0YS4oaSkgPC0gbmV4dFxuICAgICAgICB8IENvbnMgYyAtPiBjLm5leHQgPC0gbmV4dFxuICAgICAgZW5kXG4gICAgICBlbHNlIHJlbW92ZV9idWNrZXQgaCBpIGtleSBjIG5leHRcblxubGV0IHJlbW92ZSBoIGtleSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIHJlbW92ZV9idWNrZXQgaCBpIGtleSBFbXB0eSBoLmRhdGEuKGkpXG5cbmxldCByZWMgZmluZF9yZWMga2V5ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPlxuICAgICAgcmFpc2UgTm90X2ZvdW5kXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsgPSAwIHRoZW4gZGF0YSBlbHNlIGZpbmRfcmVjIGtleSBuZXh0XG5cbmxldCBmaW5kIGgga2V5ID1cbiAgbWF0Y2ggaC5kYXRhLihrZXlfaW5kZXggaCBrZXkpIHdpdGhcbiAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgfCBDb25ze2tleT1rMTsgZGF0YT1kMTsgbmV4dD1uZXh0MX0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsxID0gMCB0aGVuIGQxIGVsc2VcbiAgICAgIG1hdGNoIG5leHQxIHdpdGhcbiAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICB8IENvbnN7a2V5PWsyOyBkYXRhPWQyOyBuZXh0PW5leHQyfSAtPlxuICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGsyID0gMCB0aGVuIGQyIGVsc2VcbiAgICAgICAgICBtYXRjaCBuZXh0MiB3aXRoXG4gICAgICAgICAgfCBFbXB0eSAtPiByYWlzZSBOb3RfZm91bmRcbiAgICAgICAgICB8IENvbnN7a2V5PWszOyBkYXRhPWQzOyBuZXh0PW5leHQzfSAtPlxuICAgICAgICAgICAgICBpZiBjb21wYXJlIGtleSBrMyA9IDAgdGhlbiBkMyBlbHNlIGZpbmRfcmVjIGtleSBuZXh0M1xuXG5sZXQgcmVjIGZpbmRfcmVjX29wdCBrZXkgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBOb25lXG4gIHwgQ29uc3trZXk9azsgZGF0YTsgbmV4dH0gLT5cbiAgICAgIGlmIGNvbXBhcmUga2V5IGsgPSAwIHRoZW4gU29tZSBkYXRhIGVsc2UgZmluZF9yZWNfb3B0IGtleSBuZXh0XG5cbmxldCBmaW5kX29wdCBoIGtleSA9XG4gIG1hdGNoIGguZGF0YS4oa2V5X2luZGV4IGgga2V5KSB3aXRoXG4gIHwgRW1wdHkgLT4gTm9uZVxuICB8IENvbnN7a2V5PWsxOyBkYXRhPWQxOyBuZXh0PW5leHQxfSAtPlxuICAgICAgaWYgY29tcGFyZSBrZXkgazEgPSAwIHRoZW4gU29tZSBkMSBlbHNlXG4gICAgICBtYXRjaCBuZXh0MSB3aXRoXG4gICAgICB8IEVtcHR5IC0+IE5vbmVcbiAgICAgIHwgQ29uc3trZXk9azI7IGRhdGE9ZDI7IG5leHQ9bmV4dDJ9IC0+XG4gICAgICAgICAgaWYgY29tcGFyZSBrZXkgazIgPSAwIHRoZW4gU29tZSBkMiBlbHNlXG4gICAgICAgICAgbWF0Y2ggbmV4dDIgd2l0aFxuICAgICAgICAgIHwgRW1wdHkgLT4gTm9uZVxuICAgICAgICAgIHwgQ29uc3trZXk9azM7IGRhdGE9ZDM7IG5leHQ9bmV4dDN9IC0+XG4gICAgICAgICAgICAgIGlmIGNvbXBhcmUga2V5IGszID0gMCB0aGVuIFNvbWUgZDMgZWxzZSBmaW5kX3JlY19vcHQga2V5IG5leHQzXG5cbmxldCBmaW5kX2FsbCBoIGtleSA9XG4gIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBbXVxuICB8IENvbnN7a2V5PWs7IGRhdGE7IG5leHR9IC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiBkYXRhIDo6IGZpbmRfaW5fYnVja2V0IG5leHRcbiAgICAgIGVsc2UgZmluZF9pbl9idWNrZXQgbmV4dCBpblxuICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxubGV0IHJlYyByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT5cbiAgICAgIHRydWVcbiAgfCBDb25zICh7a2V5PWs7IG5leHR9IGFzIHNsb3QpIC0+XG4gICAgICBpZiBjb21wYXJlIGsga2V5ID0gMFxuICAgICAgdGhlbiAoc2xvdC5rZXkgPC0ga2V5OyBzbG90LmRhdGEgPC0gZGF0YTsgZmFsc2UpXG4gICAgICBlbHNlIHJlcGxhY2VfYnVja2V0IGtleSBkYXRhIG5leHRcblxubGV0IHJlcGxhY2UgaCBrZXkgZGF0YSA9XG4gIGxldCBpID0ga2V5X2luZGV4IGgga2V5IGluXG4gIGxldCBsID0gaC5kYXRhLihpKSBpblxuICBpZiByZXBsYWNlX2J1Y2tldCBrZXkgZGF0YSBsIHRoZW4gYmVnaW5cbiAgICBoLmRhdGEuKGkpIDwtIENvbnN7a2V5OyBkYXRhOyBuZXh0PWx9O1xuICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUga2V5X2luZGV4IGhcbiAgZW5kXG5cbmxldCBtZW0gaCBrZXkgPVxuICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICB8IEVtcHR5IC0+XG4gICAgICBmYWxzZVxuICB8IENvbnN7a2V5PWs7IG5leHR9IC0+XG4gICAgICBjb21wYXJlIGsga2V5ID0gMCB8fCBtZW1faW5fYnVja2V0IG5leHQgaW5cbiAgbWVtX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGtleSlcblxubGV0IGFkZF9zZXEgdGJsIGkgPVxuICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IGFkZCB0YmwgayB2KSBpXG5cbmxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gIFNlcS5pdGVyIChmdW4gKGssdikgLT4gcmVwbGFjZSB0YmwgayB2KSBpXG5cbmxldCBvZl9zZXEgaSA9XG4gIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgcmVwbGFjZV9zZXEgdGJsIGk7XG4gIHRibFxuXG5sZXQgcmVidWlsZCA/KHJhbmRvbSA9ICFyYW5kb21pemVkKSBoID1cbiAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IChBcnJheS5sZW5ndGggaC5kYXRhKSBpblxuICBsZXQgc2VlZCA9XG4gICAgaWYgcmFuZG9tIHRoZW4gUmFuZG9tLlN0YXRlLmJpdHMgKExhenkuZm9yY2UgcHJuZylcbiAgICBlbHNlIGlmIE9iai5zaXplIChPYmoucmVwciBoKSA+PSA0IHRoZW4gaC5zZWVkXG4gICAgZWxzZSAwIGluXG4gIGxldCBoJyA9IHtcbiAgICBzaXplID0gaC5zaXplO1xuICAgIGRhdGEgPSBBcnJheS5tYWtlIHMgRW1wdHk7XG4gICAgc2VlZCA9IHNlZWQ7XG4gICAgaW5pdGlhbF9zaXplID0gaWYgT2JqLnNpemUgKE9iai5yZXByIGgpID49IDQgdGhlbiBoLmluaXRpYWxfc2l6ZSBlbHNlIHNcbiAgfSBpblxuICBpbnNlcnRfYWxsX2J1Y2tldHMgKGtleV9pbmRleCBoJykgZmFsc2UgaC5kYXRhIGgnLmRhdGE7XG4gIGgnXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBEYW1pZW4gRG9saWdleiwgcHJvamV0IFBhcmEsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk3IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqKiBXZWFrIGFycmF5IG9wZXJhdGlvbnMgKilcblxudHlwZSAhJ2EgdFxuXG5leHRlcm5hbCBjcmVhdGUgOiBpbnQgLT4gJ2EgdCA9IFwiY2FtbF93ZWFrX2NyZWF0ZVwiXG5cbmxldCBjcmVhdGUgbCA9XG4gIGlmIG5vdCAoMCA8PSBsICYmIGwgPD0gT2JqLkVwaGVtZXJvbi5tYXhfZXBoZV9sZW5ndGgpIHRoZW5cbiAgICBpbnZhbGlkX2FyZyhcIldlYWsuY3JlYXRlXCIpO1xuICBjcmVhdGUgbFxuXG4oKiogbnVtYmVyIG9mIGFkZGl0aW9uYWwgdmFsdWVzIGluIGEgd2VhayBwb2ludGVyICopXG5sZXQgYWRkaXRpb25hbF92YWx1ZXMgPSAyXG5cbmxldCBsZW5ndGggeCA9IE9iai5zaXplKE9iai5yZXByIHgpIC0gYWRkaXRpb25hbF92YWx1ZXNcblxubGV0IHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBtc2cgPVxuICBpZiBub3QgKDAgPD0gbyAmJiBvIDwgbGVuZ3RoIGUpIHRoZW5cbiAgICBpbnZhbGlkX2FyZyhtc2cpXG5cbmV4dGVybmFsIHNldCcgOiAnYSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2VwaGVfc2V0X2tleVwiXG5leHRlcm5hbCB1bnNldCA6ICdhIHQgLT4gaW50IC0+IHVuaXQgPSBcImNhbWxfZXBoZV91bnNldF9rZXlcIlxubGV0IHNldCBlIG8geCA9XG4gIHJhaXNlX2lmX2ludmFsaWRfb2Zmc2V0IGUgbyBcIldlYWsuc2V0XCI7XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4gdW5zZXQgZSBvXG4gIHwgU29tZSB4IC0+IHNldCcgZSBvIHhcblxuZXh0ZXJuYWwgZ2V0IDogJ2EgdCAtPiBpbnQgLT4gJ2Egb3B0aW9uID0gXCJjYW1sX3dlYWtfZ2V0XCJcbmxldCBnZXQgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5nZXRcIjtcbiAgZ2V0IGUgb1xuXG5leHRlcm5hbCBnZXRfY29weSA6ICdhIHQgLT4gaW50IC0+ICdhIG9wdGlvbiA9IFwiY2FtbF93ZWFrX2dldF9jb3B5XCJcbmxldCBnZXRfY29weSBlIG8gPVxuICByYWlzZV9pZl9pbnZhbGlkX29mZnNldCBlIG8gXCJXZWFrLmdldF9jb3B5XCI7XG4gIGdldF9jb3B5IGUgb1xuXG5leHRlcm5hbCBjaGVjayA6ICdhIHQgLT4gaW50IC0+IGJvb2wgPSBcImNhbWxfd2Vha19jaGVja1wiXG5sZXQgY2hlY2sgZSBvID1cbiAgcmFpc2VfaWZfaW52YWxpZF9vZmZzZXQgZSBvIFwiV2Vhay5jaGVja1wiO1xuICBjaGVjayBlIG9cblxuZXh0ZXJuYWwgYmxpdCA6ICdhIHQgLT4gaW50IC0+ICdhIHQgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX3dlYWtfYmxpdFwiXG5cbigqIGJsaXQ6IHNyYyBzcmNvZmYgZHN0IGRzdG9mZiBsZW4gKilcbmxldCBibGl0IGUxIG8xIGUyIG8yIGwgPVxuICBpZiBsIDwgMCB8fCBvMSA8IDAgfHwgbzEgPiBsZW5ndGggZTEgLSBsXG4gICAgIHx8IG8yIDwgMCB8fCBvMiA+IGxlbmd0aCBlMiAtIGxcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIldlYWsuYmxpdFwiXG4gIGVsc2UgaWYgbCA8PiAwIHRoZW4gYmxpdCBlMSBvMSBlMiBvMiBsXG5cbmxldCBmaWxsIGFyIG9mcyBsZW4geCA9XG4gIGlmIG9mcyA8IDAgfHwgbGVuIDwgMCB8fCBvZnMgPiBsZW5ndGggYXIgLSBsZW5cbiAgdGhlbiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCBcIldlYWsuZmlsbFwiKVxuICBlbHNlIGJlZ2luXG4gICAgZm9yIGkgPSBvZnMgdG8gKG9mcyArIGxlbiAtIDEpIGRvXG4gICAgICBzZXQgYXIgaSB4XG4gICAgZG9uZVxuICBlbmRcblxuXG4oKiogV2VhayBoYXNoIHRhYmxlcyAqKVxuXG5tb2R1bGUgdHlwZSBTID0gc2lnXG4gIHR5cGUgZGF0YVxuICB0eXBlIHRcbiAgdmFsIGNyZWF0ZSA6IGludCAtPiB0XG4gIHZhbCBjbGVhciA6IHQgLT4gdW5pdFxuICB2YWwgbWVyZ2UgOiB0IC0+IGRhdGEgLT4gZGF0YVxuICB2YWwgYWRkIDogdCAtPiBkYXRhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6IHQgLT4gZGF0YSAtPiB1bml0XG4gIHZhbCBmaW5kIDogdCAtPiBkYXRhIC0+IGRhdGFcbiAgdmFsIGZpbmRfb3B0IDogdCAtPiBkYXRhIC0+IGRhdGEgb3B0aW9uXG4gIHZhbCBmaW5kX2FsbCA6IHQgLT4gZGF0YSAtPiBkYXRhIGxpc3RcbiAgdmFsIG1lbSA6IHQgLT4gZGF0YSAtPiBib29sXG4gIHZhbCBpdGVyIDogKGRhdGEgLT4gdW5pdCkgLT4gdCAtPiB1bml0XG4gIHZhbCBmb2xkIDogKGRhdGEgLT4gJ2EgLT4gJ2EpIC0+IHQgLT4gJ2EgLT4gJ2FcbiAgdmFsIGNvdW50IDogdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogdCAtPiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnQgKiBpbnRcbmVuZFxuXG5tb2R1bGUgTWFrZSAoSCA6IEhhc2h0YmwuSGFzaGVkVHlwZSkgOiAoUyB3aXRoIHR5cGUgZGF0YSA9IEgudCkgPSBzdHJ1Y3RcblxuICB0eXBlICdhIHdlYWtfdCA9ICdhIHRcbiAgbGV0IHdlYWtfY3JlYXRlID0gY3JlYXRlXG4gIGxldCBlbXB0eWJ1Y2tldCA9IHdlYWtfY3JlYXRlIDBcblxuICB0eXBlIGRhdGEgPSBILnRcblxuICB0eXBlIHQgPSB7XG4gICAgbXV0YWJsZSB0YWJsZSA6IGRhdGEgd2Vha190IGFycmF5O1xuICAgIG11dGFibGUgaGFzaGVzIDogaW50IGFycmF5IGFycmF5O1xuICAgIG11dGFibGUgbGltaXQgOiBpbnQ7ICAgICAgICAgICAgICAgKCogYnVja2V0IHNpemUgbGltaXQgKilcbiAgICBtdXRhYmxlIG92ZXJzaXplIDogaW50OyAgICAgICAgICAgICgqIG51bWJlciBvZiBvdmVyc2l6ZSBidWNrZXRzICopXG4gICAgbXV0YWJsZSByb3ZlciA6IGludDsgICAgICAgICAgICAgICAoKiBmb3IgaW50ZXJuYWwgYm9va2tlZXBpbmcgKilcbiAgfVxuXG4gIGxldCBnZXRfaW5kZXggdCBoID0gKGggbGFuZCBtYXhfaW50KSBtb2QgKEFycmF5Lmxlbmd0aCB0LnRhYmxlKVxuXG4gIGxldCBsaW1pdCA9IDdcbiAgbGV0IG92ZXJfbGltaXQgPSAyXG5cbiAgbGV0IGNyZWF0ZSBzeiA9XG4gICAgbGV0IHN6ID0gaWYgc3ogPCA3IHRoZW4gNyBlbHNlIHN6IGluXG4gICAgbGV0IHN6ID0gaWYgc3ogPiBTeXMubWF4X2FycmF5X2xlbmd0aCB0aGVuIFN5cy5tYXhfYXJyYXlfbGVuZ3RoIGVsc2Ugc3ogaW5cbiAgICB7XG4gICAgICB0YWJsZSA9IEFycmF5Lm1ha2Ugc3ogZW1wdHlidWNrZXQ7XG4gICAgICBoYXNoZXMgPSBBcnJheS5tYWtlIHN6IFt8IHxdO1xuICAgICAgbGltaXQgPSBsaW1pdDtcbiAgICAgIG92ZXJzaXplID0gMDtcbiAgICAgIHJvdmVyID0gMDtcbiAgICB9XG5cbiAgbGV0IGNsZWFyIHQgPVxuICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggdC50YWJsZSAtIDEgZG9cbiAgICAgIHQudGFibGUuKGkpIDwtIGVtcHR5YnVja2V0O1xuICAgICAgdC5oYXNoZXMuKGkpIDwtIFt8IHxdO1xuICAgIGRvbmU7XG4gICAgdC5saW1pdCA8LSBsaW1pdDtcbiAgICB0Lm92ZXJzaXplIDwtIDBcblxuXG4gIGxldCBmb2xkIGYgdCBpbml0ID1cbiAgICBsZXQgcmVjIGZvbGRfYnVja2V0IGkgYiBhY2N1ID1cbiAgICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiBhY2N1IGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgICAgfCBTb21lIHYgLT4gZm9sZF9idWNrZXQgKGkrMSkgYiAoZiB2IGFjY3UpXG4gICAgICB8IE5vbmUgLT4gZm9sZF9idWNrZXQgKGkrMSkgYiBhY2N1XG4gICAgaW5cbiAgICBBcnJheS5mb2xkX3JpZ2h0IChmb2xkX2J1Y2tldCAwKSB0LnRhYmxlIGluaXRcblxuXG4gIGxldCBpdGVyIGYgdCA9XG4gICAgbGV0IHJlYyBpdGVyX2J1Y2tldCBpIGIgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuICgpIGVsc2VcbiAgICAgIG1hdGNoIGdldCBiIGkgd2l0aFxuICAgICAgfCBTb21lIHYgLT4gZiB2OyBpdGVyX2J1Y2tldCAoaSsxKSBiXG4gICAgICB8IE5vbmUgLT4gaXRlcl9idWNrZXQgKGkrMSkgYlxuICAgIGluXG4gICAgQXJyYXkuaXRlciAoaXRlcl9idWNrZXQgMCkgdC50YWJsZVxuXG5cbiAgbGV0IGl0ZXJfd2VhayBmIHQgPVxuICAgIGxldCByZWMgaXRlcl9idWNrZXQgaSBqIGIgPVxuICAgICAgaWYgaSA+PSBsZW5ndGggYiB0aGVuICgpIGVsc2VcbiAgICAgIG1hdGNoIGNoZWNrIGIgaSB3aXRoXG4gICAgICB8IHRydWUgLT4gZiBiIHQuaGFzaGVzLihqKSBpOyBpdGVyX2J1Y2tldCAoaSsxKSBqIGJcbiAgICAgIHwgZmFsc2UgLT4gaXRlcl9idWNrZXQgKGkrMSkgaiBiXG4gICAgaW5cbiAgICBBcnJheS5pdGVyaSAoaXRlcl9idWNrZXQgMCkgdC50YWJsZVxuXG5cbiAgbGV0IHJlYyBjb3VudF9idWNrZXQgaSBiIGFjY3UgPVxuICAgIGlmIGkgPj0gbGVuZ3RoIGIgdGhlbiBhY2N1IGVsc2VcbiAgICBjb3VudF9idWNrZXQgKGkrMSkgYiAoYWNjdSArIChpZiBjaGVjayBiIGkgdGhlbiAxIGVsc2UgMCkpXG5cblxuICBsZXQgY291bnQgdCA9XG4gICAgQXJyYXkuZm9sZF9yaWdodCAoY291bnRfYnVja2V0IDApIHQudGFibGUgMFxuXG5cbiAgbGV0IG5leHRfc3ogbiA9IEludC5taW4gKDMgKiBuIC8gMiArIDMpIFN5cy5tYXhfYXJyYXlfbGVuZ3RoXG4gIGxldCBwcmV2X3N6IG4gPSAoKG4gLSAzKSAqIDIgKyAyKSAvIDNcblxuICBsZXQgdGVzdF9zaHJpbmtfYnVja2V0IHQgPVxuICAgIGxldCBidWNrZXQgPSB0LnRhYmxlLih0LnJvdmVyKSBpblxuICAgIGxldCBoYnVja2V0ID0gdC5oYXNoZXMuKHQucm92ZXIpIGluXG4gICAgbGV0IGxlbiA9IGxlbmd0aCBidWNrZXQgaW5cbiAgICBsZXQgcHJldl9sZW4gPSBwcmV2X3N6IGxlbiBpblxuICAgIGxldCBsaXZlID0gY291bnRfYnVja2V0IDAgYnVja2V0IDAgaW5cbiAgICBpZiBsaXZlIDw9IHByZXZfbGVuIHRoZW4gYmVnaW5cbiAgICAgIGxldCByZWMgbG9vcCBpIGogPVxuICAgICAgICBpZiBqID49IHByZXZfbGVuIHRoZW4gYmVnaW5cbiAgICAgICAgICBpZiBjaGVjayBidWNrZXQgaSB0aGVuIGxvb3AgKGkgKyAxKSBqXG4gICAgICAgICAgZWxzZSBpZiBjaGVjayBidWNrZXQgaiB0aGVuIGJlZ2luXG4gICAgICAgICAgICBibGl0IGJ1Y2tldCBqIGJ1Y2tldCBpIDE7XG4gICAgICAgICAgICBoYnVja2V0LihpKSA8LSBoYnVja2V0LihqKTtcbiAgICAgICAgICAgIGxvb3AgKGkgKyAxKSAoaiAtIDEpO1xuICAgICAgICAgIGVuZCBlbHNlIGxvb3AgaSAoaiAtIDEpO1xuICAgICAgICBlbmQ7XG4gICAgICBpblxuICAgICAgbG9vcCAwIChsZW5ndGggYnVja2V0IC0gMSk7XG4gICAgICBpZiBwcmV2X2xlbiA9IDAgdGhlbiBiZWdpblxuICAgICAgICB0LnRhYmxlLih0LnJvdmVyKSA8LSBlbXB0eWJ1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKHQucm92ZXIpIDwtIFt8IHxdO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbGV0IG5ld2J1Y2tldCA9IHdlYWtfY3JlYXRlIHByZXZfbGVuIGluXG4gICAgICAgIGJsaXQgYnVja2V0IDAgbmV3YnVja2V0IDAgcHJldl9sZW47XG4gICAgICAgIHQudGFibGUuKHQucm92ZXIpIDwtIG5ld2J1Y2tldDtcbiAgICAgICAgdC5oYXNoZXMuKHQucm92ZXIpIDwtIEFycmF5LnN1YiBoYnVja2V0IDAgcHJldl9sZW5cbiAgICAgIGVuZDtcbiAgICAgIGlmIGxlbiA+IHQubGltaXQgJiYgcHJldl9sZW4gPD0gdC5saW1pdCB0aGVuIHQub3ZlcnNpemUgPC0gdC5vdmVyc2l6ZSAtIDE7XG4gICAgZW5kO1xuICAgIHQucm92ZXIgPC0gKHQucm92ZXIgKyAxKSBtb2QgKEFycmF5Lmxlbmd0aCB0LnRhYmxlKVxuXG5cbiAgbGV0IHJlYyByZXNpemUgdCA9XG4gICAgbGV0IG9sZGxlbiA9IEFycmF5Lmxlbmd0aCB0LnRhYmxlIGluXG4gICAgbGV0IG5ld2xlbiA9IG5leHRfc3ogb2xkbGVuIGluXG4gICAgaWYgbmV3bGVuID4gb2xkbGVuIHRoZW4gYmVnaW5cbiAgICAgIGxldCBuZXd0ID0gY3JlYXRlIG5ld2xlbiBpblxuICAgICAgbGV0IGFkZF93ZWFrIG9iIG9oIG9pID1cbiAgICAgICAgbGV0IHNldHRlciBuYiBuaSBfID0gYmxpdCBvYiBvaSBuYiBuaSAxIGluXG4gICAgICAgIGxldCBoID0gb2guKG9pKSBpblxuICAgICAgICBhZGRfYXV4IG5ld3Qgc2V0dGVyIE5vbmUgaCAoZ2V0X2luZGV4IG5ld3QgaCk7XG4gICAgICBpblxuICAgICAgaXRlcl93ZWFrIGFkZF93ZWFrIHQ7XG4gICAgICB0LnRhYmxlIDwtIG5ld3QudGFibGU7XG4gICAgICB0Lmhhc2hlcyA8LSBuZXd0Lmhhc2hlcztcbiAgICAgIHQubGltaXQgPC0gbmV3dC5saW1pdDtcbiAgICAgIHQub3ZlcnNpemUgPC0gbmV3dC5vdmVyc2l6ZTtcbiAgICAgIHQucm92ZXIgPC0gdC5yb3ZlciBtb2QgQXJyYXkubGVuZ3RoIG5ld3QudGFibGU7XG4gICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgIHQubGltaXQgPC0gbWF4X2ludDsgICAgICAgICAgICAgKCogbWF4aW11bSBzaXplIGFscmVhZHkgcmVhY2hlZCAqKVxuICAgICAgdC5vdmVyc2l6ZSA8LSAwO1xuICAgIGVuZFxuXG4gIGFuZCBhZGRfYXV4IHQgc2V0dGVyIGQgaCBpbmRleCA9XG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBiZWdpblxuICAgICAgICBsZXQgbmV3c3ogPVxuICAgICAgICAgIEludC5taW4gKDMgKiBzeiAvIDIgKyAzKSAoU3lzLm1heF9hcnJheV9sZW5ndGggLSBhZGRpdGlvbmFsX3ZhbHVlcylcbiAgICAgICAgaW5cbiAgICAgICAgaWYgbmV3c3ogPD0gc3ogdGhlbiBmYWlsd2l0aCBcIldlYWsuTWFrZTogaGFzaCBidWNrZXQgY2Fubm90IGdyb3cgbW9yZVwiO1xuICAgICAgICBsZXQgbmV3YnVja2V0ID0gd2Vha19jcmVhdGUgbmV3c3ogaW5cbiAgICAgICAgbGV0IG5ld2hhc2hlcyA9IEFycmF5Lm1ha2UgbmV3c3ogMCBpblxuICAgICAgICBibGl0IGJ1Y2tldCAwIG5ld2J1Y2tldCAwIHN6O1xuICAgICAgICBBcnJheS5ibGl0IGhhc2hlcyAwIG5ld2hhc2hlcyAwIHN6O1xuICAgICAgICBzZXR0ZXIgbmV3YnVja2V0IHN6IGQ7XG4gICAgICAgIG5ld2hhc2hlcy4oc3opIDwtIGg7XG4gICAgICAgIHQudGFibGUuKGluZGV4KSA8LSBuZXdidWNrZXQ7XG4gICAgICAgIHQuaGFzaGVzLihpbmRleCkgPC0gbmV3aGFzaGVzO1xuICAgICAgICBpZiBzeiA8PSB0LmxpbWl0ICYmIG5ld3N6ID4gdC5saW1pdCB0aGVuIGJlZ2luXG4gICAgICAgICAgdC5vdmVyc2l6ZSA8LSB0Lm92ZXJzaXplICsgMTtcbiAgICAgICAgICBmb3IgX2kgPSAwIHRvIG92ZXJfbGltaXQgZG8gdGVzdF9zaHJpbmtfYnVja2V0IHQgZG9uZTtcbiAgICAgICAgZW5kO1xuICAgICAgICBpZiB0Lm92ZXJzaXplID4gQXJyYXkubGVuZ3RoIHQudGFibGUgLyBvdmVyX2xpbWl0IHRoZW4gcmVzaXplIHQ7XG4gICAgICBlbmQgZWxzZSBpZiBjaGVjayBidWNrZXQgaSB0aGVuIGJlZ2luXG4gICAgICAgIGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgc2V0dGVyIGJ1Y2tldCBpIGQ7XG4gICAgICAgIGhhc2hlcy4oaSkgPC0gaDtcbiAgICAgIGVuZDtcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IGFkZCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBhZGRfYXV4IHQgc2V0IChTb21lIGQpIGggKGdldF9pbmRleCB0IGgpXG5cblxuICBsZXQgZmluZF9vciB0IGQgaWZub3Rmb3VuZCA9XG4gICAgbGV0IGggPSBILmhhc2ggZCBpblxuICAgIGxldCBpbmRleCA9IGdldF9pbmRleCB0IGggaW5cbiAgICBsZXQgYnVja2V0ID0gdC50YWJsZS4oaW5kZXgpIGluXG4gICAgbGV0IGhhc2hlcyA9IHQuaGFzaGVzLihpbmRleCkgaW5cbiAgICBsZXQgc3ogPSBsZW5ndGggYnVja2V0IGluXG4gICAgbGV0IHJlYyBsb29wIGkgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGlmbm90Zm91bmQgaCBpbmRleFxuICAgICAgZWxzZSBpZiBoID0gaGFzaGVzLihpKSB0aGVuIGJlZ2luXG4gICAgICAgIG1hdGNoIGdldF9jb3B5IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgfCBTb21lIHYgd2hlbiBILmVxdWFsIHYgZFxuICAgICAgICAgICAtPiBiZWdpbiBtYXRjaCBnZXQgYnVja2V0IGkgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgdiAtPiB2XG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSlcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiBsb29wIChpICsgMSlcbiAgICAgIGVuZCBlbHNlIGxvb3AgKGkgKyAxKVxuICAgIGluXG4gICAgbG9vcCAwXG5cblxuICBsZXQgbWVyZ2UgdCBkID1cbiAgICBmaW5kX29yIHQgZCAoZnVuIGggaW5kZXggLT4gYWRkX2F1eCB0IHNldCAoU29tZSBkKSBoIGluZGV4OyBkKVxuXG5cbiAgbGV0IGZpbmQgdCBkID0gZmluZF9vciB0IGQgKGZ1biBfaCBfaW5kZXggLT4gcmFpc2UgTm90X2ZvdW5kKVxuXG4gIGxldCBmaW5kX29wdCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBOb25lXG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkXG4gICAgICAgICAgIC0+IGJlZ2luIG1hdGNoIGdldCBidWNrZXQgaSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBfIGFzIHYgLT4gdlxuICAgICAgICAgICAgICB8IE5vbmUgLT4gbG9vcCAoaSArIDEpXG4gICAgICAgICAgICAgIGVuZFxuICAgICAgICB8IF8gLT4gbG9vcCAoaSArIDEpXG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSlcbiAgICBpblxuICAgIGxvb3AgMFxuXG5cbiAgbGV0IGZpbmRfc2hhZG93IHQgZCBpZmZvdW5kIGlmbm90Zm91bmQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPj0gc3ogdGhlbiBpZm5vdGZvdW5kXG4gICAgICBlbHNlIGlmIGggPSBoYXNoZXMuKGkpIHRoZW4gYmVnaW5cbiAgICAgICAgbWF0Y2ggZ2V0X2NvcHkgYnVja2V0IGkgd2l0aFxuICAgICAgICB8IFNvbWUgdiB3aGVuIEguZXF1YWwgdiBkIC0+IGlmZm91bmQgYnVja2V0IGlcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKVxuICAgICAgZW5kIGVsc2UgbG9vcCAoaSArIDEpXG4gICAgaW5cbiAgICBsb29wIDBcblxuXG4gIGxldCByZW1vdmUgdCBkID0gZmluZF9zaGFkb3cgdCBkIChmdW4gdyBpIC0+IHNldCB3IGkgTm9uZSkgKClcblxuXG4gIGxldCBtZW0gdCBkID0gZmluZF9zaGFkb3cgdCBkIChmdW4gX3cgX2kgLT4gdHJ1ZSkgZmFsc2VcblxuXG4gIGxldCBmaW5kX2FsbCB0IGQgPVxuICAgIGxldCBoID0gSC5oYXNoIGQgaW5cbiAgICBsZXQgaW5kZXggPSBnZXRfaW5kZXggdCBoIGluXG4gICAgbGV0IGJ1Y2tldCA9IHQudGFibGUuKGluZGV4KSBpblxuICAgIGxldCBoYXNoZXMgPSB0Lmhhc2hlcy4oaW5kZXgpIGluXG4gICAgbGV0IHN6ID0gbGVuZ3RoIGJ1Y2tldCBpblxuICAgIGxldCByZWMgbG9vcCBpIGFjY3UgPVxuICAgICAgaWYgaSA+PSBzeiB0aGVuIGFjY3VcbiAgICAgIGVsc2UgaWYgaCA9IGhhc2hlcy4oaSkgdGhlbiBiZWdpblxuICAgICAgICBtYXRjaCBnZXRfY29weSBidWNrZXQgaSB3aXRoXG4gICAgICAgIHwgU29tZSB2IHdoZW4gSC5lcXVhbCB2IGRcbiAgICAgICAgICAgLT4gYmVnaW4gbWF0Y2ggZ2V0IGJ1Y2tldCBpIHdpdGhcbiAgICAgICAgICAgICAgfCBTb21lIHYgLT4gbG9vcCAoaSArIDEpICh2IDo6IGFjY3UpXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBsb29wIChpICsgMSkgYWNjdVxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgfCBfIC0+IGxvb3AgKGkgKyAxKSBhY2N1XG4gICAgICBlbmQgZWxzZSBsb29wIChpICsgMSkgYWNjdVxuICAgIGluXG4gICAgbG9vcCAwIFtdXG5cblxuICBsZXQgc3RhdHMgdCA9XG4gICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCB0LnRhYmxlIGluXG4gICAgbGV0IGxlbnMgPSBBcnJheS5tYXAgbGVuZ3RoIHQudGFibGUgaW5cbiAgICBBcnJheS5zb3J0IGNvbXBhcmUgbGVucztcbiAgICBsZXQgdG90bGVuID0gQXJyYXkuZm9sZF9sZWZ0ICggKyApIDAgbGVucyBpblxuICAgIChsZW4sIGNvdW50IHQsIHRvdGxlbiwgbGVucy4oMCksIGxlbnMuKGxlbi8yKSwgbGVucy4obGVuLTEpKVxuXG5cbmVuZFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgUGllcnJlIFdlaXMsIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBBIHByZXR0eS1wcmludGluZyBmYWNpbGl0eSBhbmQgZGVmaW5pdGlvbiBvZiBmb3JtYXR0ZXJzIGZvciAncGFyYWxsZWwnXG4gICAoaS5lLiB1bnJlbGF0ZWQgb3IgaW5kZXBlbmRlbnQpIHByZXR0eS1wcmludGluZyBvbiBtdWx0aXBsZSBvdXQgY2hhbm5lbHMuICopXG5cbigqXG4gICBUaGUgcHJldHR5LXByaW50aW5nIGVuZ2luZSBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMuXG4qKVxuXG5sZXQgaWQgeCA9IHhcblxuKCogQSBkZXZvdGVkIHR5cGUgZm9yIHNpemVzIHRvIGF2b2lkIGNvbmZ1c2lvblxuICAgYmV0d2VlbiBzaXplcyBhbmQgbWVyZSBpbnRlZ2Vycy4gKilcbm1vZHVsZSBTaXplIDogc2lnXG4gIHR5cGUgdFxuXG4gIHZhbCB0b19pbnQgOiB0IC0+IGludFxuICB2YWwgb2ZfaW50IDogaW50IC0+IHRcbiAgdmFsIHplcm8gOiB0XG4gIHZhbCB1bmtub3duIDogdFxuICB2YWwgaXNfa25vd24gOiB0IC0+IGJvb2xcbmVuZCAgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0gaW50XG5cbiAgbGV0IHRvX2ludCA9IGlkXG4gIGxldCBvZl9pbnQgPSBpZFxuICBsZXQgemVybyA9IDBcbiAgbGV0IHVua25vd24gPSAtMVxuICBsZXQgaXNfa25vd24gbiA9IG4gPj0gMFxuZW5kXG5cblxuXG4oKiBUaGUgcHJldHR5LXByaW50aW5nIGJveGVzIGRlZmluaXRpb246XG4gICBhIHByZXR0eS1wcmludGluZyBib3ggaXMgZWl0aGVyXG4gICAtIGhib3g6IGhvcml6b250YWwgYm94IChubyBsaW5lIHNwbGl0dGluZylcbiAgIC0gdmJveDogdmVydGljYWwgYm94IChldmVyeSBicmVhayBoaW50IHNwbGl0cyB0aGUgbGluZSlcbiAgIC0gaHZib3g6IGhvcml6b250YWwvdmVydGljYWwgYm94XG4gICAgICh0aGUgYm94IGJlaGF2ZXMgYXMgYW4gaG9yaXpvbnRhbCBib3ggaWYgaXQgZml0cyBvblxuICAgICAgdGhlIGN1cnJlbnQgbGluZSwgb3RoZXJ3aXNlIHRoZSBib3ggYmVoYXZlcyBhcyBhIHZlcnRpY2FsIGJveClcbiAgIC0gaG92Ym94OiBob3Jpem9udGFsIG9yIHZlcnRpY2FsIGNvbXBhY3RpbmcgYm94XG4gICAgICh0aGUgYm94IGlzIGNvbXBhY3RpbmcgbWF0ZXJpYWwsIHByaW50aW5nIGFzIG11Y2ggbWF0ZXJpYWwgYXMgcG9zc2libGVcbiAgICAgIG9uIGV2ZXJ5IGxpbmVzKVxuICAgLSBib3g6IGhvcml6b250YWwgb3IgdmVydGljYWwgY29tcGFjdGluZyBib3ggd2l0aCBlbmhhbmNlZCBib3ggc3RydWN0dXJlXG4gICAgICh0aGUgYm94IGJlaGF2ZXMgYXMgYW4gaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbCBib3ggYnV0IGJyZWFrIGhpbnRzIHNwbGl0XG4gICAgICB0aGUgbGluZSBpZiBzcGxpdHRpbmcgd291bGQgbW92ZSB0byB0aGUgbGVmdClcbiopXG50eXBlIGJveF90eXBlID0gQ2FtbGludGVybmFsRm9ybWF0QmFzaWNzLmJsb2NrX3R5cGUgPVxuICB8IFBwX2hib3ggfCBQcF92Ym94IHwgUHBfaHZib3ggfCBQcF9ob3Zib3ggfCBQcF9ib3ggfCBQcF9maXRzXG5cblxuKCogVGhlIHByZXR0eS1wcmludGluZyB0b2tlbnMgZGVmaW5pdGlvbjpcbiAgIGFyZSBlaXRoZXIgdGV4dCB0byBwcmludCBvciBwcmV0dHkgcHJpbnRpbmdcbiAgIGVsZW1lbnRzIHRoYXQgZHJpdmUgaW5kZW50YXRpb24gYW5kIGxpbmUgc3BsaXR0aW5nLiAqKVxudHlwZSBwcF90b2tlbiA9XG4gIHwgUHBfdGV4dCBvZiBzdHJpbmcgICAgICAgICAgKCogbm9ybWFsIHRleHQgKilcbiAgfCBQcF9icmVhayBvZiB7ICAgICAgICAgICAgICAoKiBjb21wbGV0ZSBicmVhayAqKVxuICAgICAgZml0czogc3RyaW5nICogaW50ICogc3RyaW5nOyAgICgqIGxpbmUgaXMgbm90IHNwbGl0ICopXG4gICAgICBicmVha3M6IHN0cmluZyAqIGludCAqIHN0cmluZzsgKCogbGluZSBpcyBzcGxpdCAqKVxuICAgIH1cbiAgfCBQcF90YnJlYWsgb2YgaW50ICogaW50ICAgICAoKiBnbyB0byBuZXh0IHRhYnVsYXRpb24gKilcbiAgfCBQcF9zdGFiICAgICAgICAgICAgICAgICAgICAoKiBzZXQgYSB0YWJ1bGF0aW9uICopXG4gIHwgUHBfYmVnaW4gb2YgaW50ICogYm94X3R5cGUgKCogYmVnaW5uaW5nIG9mIGEgYm94ICopXG4gIHwgUHBfZW5kICAgICAgICAgICAgICAgICAgICAgKCogZW5kIG9mIGEgYm94ICopXG4gIHwgUHBfdGJlZ2luIG9mIHRib3ggICAgICAgICAgKCogYmVnaW5uaW5nIG9mIGEgdGFidWxhdGlvbiBib3ggKilcbiAgfCBQcF90ZW5kICAgICAgICAgICAgICAgICAgICAoKiBlbmQgb2YgYSB0YWJ1bGF0aW9uIGJveCAqKVxuICB8IFBwX25ld2xpbmUgICAgICAgICAgICAgICAgICgqIHRvIGZvcmNlIGEgbmV3bGluZSBpbnNpZGUgYSBib3ggKilcbiAgfCBQcF9pZl9uZXdsaW5lICAgICAgICAgICAgICAoKiB0byBkbyBzb21ldGhpbmcgb25seSBpZiB0aGlzIHZlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lIGhhcyBiZWVuIGJyb2tlbiAqKVxuICB8IFBwX29wZW5fdGFnIG9mIHN0YWcgICAgICAgICAoKiBvcGVuaW5nIGEgdGFnIG5hbWUgKilcbiAgfCBQcF9jbG9zZV90YWcgICAgICAgICAgICAgICAoKiBjbG9zaW5nIHRoZSBtb3N0IHJlY2VudGx5IG9wZW4gdGFnICopXG5cbmFuZCBzdGFnID0gLi5cblxuYW5kIHRib3ggPSBQcF90Ym94IG9mIGludCBsaXN0IHJlZiAgKCogVGFidWxhdGlvbiBib3ggKilcblxudHlwZSB0YWcgPSBzdHJpbmdcbnR5cGUgc3RhZyArPSBTdHJpbmdfdGFnIG9mIHRhZ1xuXG5cbigqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZTpcbiAgIHByZXR0eS1wcmludGluZyBtYXRlcmlhbCBpcyBub3Qgd3JpdHRlbiBpbiB0aGUgb3V0cHV0IGFzIHNvb24gYXMgZW1pdHRlZDtcbiAgIGluc3RlYWQsIHRoZSBtYXRlcmlhbCBpcyBzaW1wbHkgcmVjb3JkZWQgaW4gdGhlIHByZXR0eS1wcmludGVyIHF1ZXVlLFxuICAgdW50aWwgdGhlIGVuY2xvc2luZyBib3ggaGFzIGEga25vd24gY29tcHV0ZWQgc2l6ZSBhbmQgcHJvcGVyIHNwbGl0dGluZ1xuICAgZGVjaXNpb25zIGNhbiBiZSBtYWRlLlxuXG4gICBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUgY29udGFpbnMgZm9ybWF0dGluZyBlbGVtZW50cyB0byBiZSBwcmludGVkLlxuICAgRWFjaCBmb3JtYXR0aW5nIGVsZW1lbnQgaXMgYSB0dXBsZSAoc2l6ZSwgdG9rZW4sIGxlbmd0aCksIHdoZXJlXG4gICAtIGxlbmd0aCBpcyB0aGUgZGVjbGFyZWQgbGVuZ3RoIG9mIHRoZSB0b2tlbixcbiAgIC0gc2l6ZSBpcyBlZmZlY3RpdmUgc2l6ZSBvZiB0aGUgdG9rZW4gd2hlbiBpdCBpcyBwcmludGVkXG4gICAgIChzaXplIGlzIHNldCB3aGVuIHRoZSBzaXplIG9mIHRoZSBib3ggaXMga25vd24sIHNvIHRoYXQgc2l6ZSBvZiBicmVha1xuICAgICAgaGludHMgYXJlIGRlZmluaXRpdmUpLiAqKVxudHlwZSBwcF9xdWV1ZV9lbGVtID0ge1xuICBtdXRhYmxlIHNpemUgOiBTaXplLnQ7XG4gIHRva2VuIDogcHBfdG9rZW47XG4gIGxlbmd0aCA6IGludDtcbn1cblxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgcXVldWUgZGVmaW5pdGlvbi4gKilcbnR5cGUgcHBfcXVldWUgPSBwcF9xdWV1ZV9lbGVtIFF1ZXVlLnRcblxuKCogVGhlIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLiAqKVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2s6IHNjYW5uaW5nIGVsZW1lbnQgZGVmaW5pdGlvbi4gKilcbnR5cGUgcHBfc2Nhbl9lbGVtID0ge1xuICBsZWZ0X3RvdGFsIDogaW50OyAoKiBWYWx1ZSBvZiBwcF9sZWZ0X3RvdGFsIHdoZW4gdGhlIGVsZW1lbnQgd2FzIGVucXVldWVkLiAqKVxuICBxdWV1ZV9lbGVtIDogcHBfcXVldWVfZWxlbVxufVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjazpcbiAgIHRoZSBmb3JtYXR0aW5nIHN0YWNrIGNvbnRhaW5zIHRoZSBkZXNjcmlwdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRseSBhY3RpdmVcbiAgIGJveGVzOyB0aGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjayBpcyB1c2VkIHRvIHNwbGl0IHRoZSBsaW5lc1xuICAgd2hpbGUgcHJpbnRpbmcgdG9rZW5zLiAqKVxuXG4oKiBUaGUgcHJldHR5LXByaW50ZXIgZm9ybWF0dGluZyBzdGFjazogZm9ybWF0dGluZyBzdGFjayBlbGVtZW50IGRlZmluaXRpb24uXG4gICBFYWNoIHN0YWNrIGVsZW1lbnQgZGVzY3JpYmVzIGEgcHJldHR5LXByaW50aW5nIGJveC4gKilcbnR5cGUgcHBfZm9ybWF0X2VsZW0gPSB7IGJveF90eXBlIDogYm94X3R5cGU7IHdpZHRoIDogaW50IH1cblxuKCogVGhlIGZvcm1hdHRlciBkZWZpbml0aW9uLlxuICAgRWFjaCBmb3JtYXR0ZXIgdmFsdWUgaXMgYSBwcmV0dHktcHJpbnRlciBpbnN0YW5jZSB3aXRoIGFsbCBpdHNcbiAgIG1hY2hpbmVyeS4gKilcbnR5cGUgZm9ybWF0dGVyID0ge1xuICAoKiBUaGUgcHJldHR5LXByaW50ZXIgc2Nhbm5pbmcgc3RhY2suICopXG4gIHBwX3NjYW5fc3RhY2sgOiBwcF9zY2FuX2VsZW0gU3RhY2sudDtcbiAgKCogVGhlIHByZXR0eS1wcmludGVyIGZvcm1hdHRpbmcgc3RhY2suICopXG4gIHBwX2Zvcm1hdF9zdGFjayA6IHBwX2Zvcm1hdF9lbGVtIFN0YWNrLnQ7XG4gIHBwX3Rib3hfc3RhY2sgOiB0Ym94IFN0YWNrLnQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBzZW1hbnRpY3MgdGFnIHN0YWNrLiAqKVxuICBwcF90YWdfc3RhY2sgOiBzdGFnIFN0YWNrLnQ7XG4gIHBwX21hcmtfc3RhY2sgOiBzdGFnIFN0YWNrLnQ7XG4gICgqIFZhbHVlIG9mIHJpZ2h0IG1hcmdpbi4gKilcbiAgbXV0YWJsZSBwcF9tYXJnaW4gOiBpbnQ7XG4gICgqIE1pbmltYWwgc3BhY2UgbGVmdCBiZWZvcmUgbWFyZ2luLCB3aGVuIG9wZW5pbmcgYSBib3guICopXG4gIG11dGFibGUgcHBfbWluX3NwYWNlX2xlZnQgOiBpbnQ7XG4gICgqIE1heGltdW0gdmFsdWUgb2YgaW5kZW50YXRpb246XG4gICAgIG5vIGJveCBjYW4gYmUgb3BlbmVkIGZ1cnRoZXIuICopXG4gIG11dGFibGUgcHBfbWF4X2luZGVudCA6IGludDtcbiAgKCogU3BhY2UgcmVtYWluaW5nIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG4gIG11dGFibGUgcHBfc3BhY2VfbGVmdCA6IGludDtcbiAgKCogQ3VycmVudCB2YWx1ZSBvZiBpbmRlbnRhdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9jdXJyZW50X2luZGVudCA6IGludDtcbiAgKCogVHJ1ZSB3aGVuIHRoZSBsaW5lIGhhcyBiZWVuIGJyb2tlbiBieSB0aGUgcHJldHR5LXByaW50ZXIuICopXG4gIG11dGFibGUgcHBfaXNfbmV3X2xpbmUgOiBib29sO1xuICAoKiBUb3RhbCB3aWR0aCBvZiB0b2tlbnMgYWxyZWFkeSBwcmludGVkLiAqKVxuICBtdXRhYmxlIHBwX2xlZnRfdG90YWwgOiBpbnQ7XG4gICgqIFRvdGFsIHdpZHRoIG9mIHRva2VucyBldmVyIHB1dCBpbiBxdWV1ZS4gKilcbiAgbXV0YWJsZSBwcF9yaWdodF90b3RhbCA6IGludDtcbiAgKCogQ3VycmVudCBudW1iZXIgb2Ygb3BlbiBib3hlcy4gKilcbiAgbXV0YWJsZSBwcF9jdXJyX2RlcHRoIDogaW50O1xuICAoKiBNYXhpbXVtIG51bWJlciBvZiBib3hlcyB3aGljaCBjYW4gYmUgc2ltdWx0YW5lb3VzbHkgb3Blbi4gKilcbiAgbXV0YWJsZSBwcF9tYXhfYm94ZXMgOiBpbnQ7XG4gICgqIEVsbGlwc2lzIHN0cmluZy4gKilcbiAgbXV0YWJsZSBwcF9lbGxpcHNpcyA6IHN0cmluZztcbiAgKCogT3V0cHV0IGZ1bmN0aW9uLiAqKVxuICBtdXRhYmxlIHBwX291dF9zdHJpbmcgOiBzdHJpbmcgLT4gaW50IC0+IGludCAtPiB1bml0O1xuICAoKiBGbHVzaGluZyBmdW5jdGlvbi4gKilcbiAgbXV0YWJsZSBwcF9vdXRfZmx1c2ggOiB1bml0IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBuZXcgbGluZXMuICopXG4gIG11dGFibGUgcHBfb3V0X25ld2xpbmUgOiB1bml0IC0+IHVuaXQ7XG4gICgqIE91dHB1dCBvZiBicmVhayBoaW50cyBzcGFjZXMuICopXG4gIG11dGFibGUgcHBfb3V0X3NwYWNlcyA6IGludCAtPiB1bml0O1xuICAoKiBPdXRwdXQgb2YgaW5kZW50YXRpb24gb2YgbmV3IGxpbmVzLiAqKVxuICBtdXRhYmxlIHBwX291dF9pbmRlbnQgOiBpbnQgLT4gdW5pdDtcbiAgKCogQXJlIHRhZ3MgcHJpbnRlZCA/ICopXG4gIG11dGFibGUgcHBfcHJpbnRfdGFncyA6IGJvb2w7XG4gICgqIEFyZSB0YWdzIG1hcmtlZCA/ICopXG4gIG11dGFibGUgcHBfbWFya190YWdzIDogYm9vbDtcbiAgKCogRmluZCBvcGVuaW5nIGFuZCBjbG9zaW5nIG1hcmtlcnMgb2YgdGFncy4gKilcbiAgbXV0YWJsZSBwcF9tYXJrX29wZW5fdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIG11dGFibGUgcHBfbWFya19jbG9zZV90YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbXV0YWJsZSBwcF9wcmludF9vcGVuX3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgbXV0YWJsZSBwcF9wcmludF9jbG9zZV90YWcgOiBzdGFnIC0+IHVuaXQ7XG4gICgqIFRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbiAgcHBfcXVldWUgOiBwcF9xdWV1ZTtcbn1cblxuXG4oKiBUaGUgZm9ybWF0dGVyIHNwZWNpZmljIHRhZyBoYW5kbGluZyBmdW5jdGlvbnMuICopXG50eXBlIGZvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9IHtcbiAgbWFya19vcGVuX3N0YWcgOiBzdGFnIC0+IHN0cmluZztcbiAgbWFya19jbG9zZV9zdGFnIDogc3RhZyAtPiBzdHJpbmc7XG4gIHByaW50X29wZW5fc3RhZyA6IHN0YWcgLT4gdW5pdDtcbiAgcHJpbnRfY2xvc2Vfc3RhZyA6IHN0YWcgLT4gdW5pdDtcbn1cblxuXG4oKiBUaGUgZm9ybWF0dGVyIGZ1bmN0aW9ucyB0byBvdXRwdXQgbWF0ZXJpYWwuICopXG50eXBlIGZvcm1hdHRlcl9vdXRfZnVuY3Rpb25zID0ge1xuICBvdXRfc3RyaW5nIDogc3RyaW5nIC0+IGludCAtPiBpbnQgLT4gdW5pdDtcbiAgb3V0X2ZsdXNoIDogdW5pdCAtPiB1bml0O1xuICBvdXRfbmV3bGluZSA6IHVuaXQgLT4gdW5pdDtcbiAgb3V0X3NwYWNlcyA6IGludCAtPiB1bml0O1xuICBvdXRfaW5kZW50IDogaW50IC0+IHVuaXQ7XG59XG5cblxuKCpcblxuICBBdXhpbGlhcmllcyBhbmQgYmFzaWMgZnVuY3Rpb25zLlxuXG4qKVxuXG4oKiBFbnRlciBhIHRva2VuIGluIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZS4gKilcbmxldCBwcF9lbnF1ZXVlIHN0YXRlIHRva2VuID1cbiAgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gc3RhdGUucHBfcmlnaHRfdG90YWwgKyB0b2tlbi5sZW5ndGg7XG4gIFF1ZXVlLmFkZCB0b2tlbiBzdGF0ZS5wcF9xdWV1ZVxuXG5cbmxldCBwcF9jbGVhcl9xdWV1ZSBzdGF0ZSA9XG4gIHN0YXRlLnBwX2xlZnRfdG90YWwgPC0gMTsgc3RhdGUucHBfcmlnaHRfdG90YWwgPC0gMTtcbiAgUXVldWUuY2xlYXIgc3RhdGUucHBfcXVldWVcblxuXG4oKiBQcF9pbmZpbml0eTogbGFyZ2UgdmFsdWUgZm9yIGRlZmF1bHQgdG9rZW5zIHNpemUuXG5cbiAgIFBwX2luZmluaXR5IGlzIGRvY3VtZW50ZWQgYXMgYmVpbmcgZ3JlYXRlciB0aGFuIDFlMTA7IHRvIGF2b2lkXG4gICBjb25mdXNpb24gYWJvdXQgdGhlIHdvcmQgJ2dyZWF0ZXInLCB3ZSBjaG9vc2UgcHBfaW5maW5pdHkgZ3JlYXRlclxuICAgdGhhbiAxZTEwICsgMTsgZm9yIGNvcnJlY3QgaGFuZGxpbmcgb2YgdGVzdHMgaW4gdGhlIGFsZ29yaXRobSxcbiAgIHBwX2luZmluaXR5IG11c3QgYmUgZXZlbiBvbmUgbW9yZSB0aGFuIDFlMTAgKyAxOyBsZXQncyBzdGFuZCBvbiB0aGVcbiAgIHNhZmUgc2lkZSBieSBjaG9vc2luZyAxLmUxMCsxMC5cblxuICAgUHBfaW5maW5pdHkgY291bGQgcHJvYmFibHkgYmUgMTA3Mzc0MTgyMyB0aGF0IGlzIDJeMzAgLSAxLCB0aGF0IGlzXG4gICB0aGUgbWluaW1hbCB1cHBlciBib3VuZCBmb3IgaW50ZWdlcnM7IG5vdyB0aGF0IG1heF9pbnQgaXMgZGVmaW5lZCxcbiAgIHRoaXMgbGltaXQgY291bGQgYWxzbyBiZSBkZWZpbmVkIGFzIG1heF9pbnQgLSAxLlxuXG4gICBIb3dldmVyLCBiZWZvcmUgc2V0dGluZyBwcF9pbmZpbml0eSB0byBzb21ldGhpbmcgYXJvdW5kIG1heF9pbnQsIHdlXG4gICBtdXN0IGNhcmVmdWxseSBkb3VibGUtY2hlY2sgYWxsIHRoZSBpbnRlZ2VyIGFyaXRobWV0aWMgb3BlcmF0aW9uc1xuICAgdGhhdCBpbnZvbHZlIHBwX2luZmluaXR5LCBzaW5jZSBhbnkgb3ZlcmZsb3cgd291bGQgd3JlY2sgaGF2b2MgdGhlXG4gICBwcmV0dHktcHJpbnRpbmcgYWxnb3JpdGhtJ3MgaW52YXJpYW50cy4gR2l2ZW4gdGhhdCB0aGlzIGFyaXRobWV0aWNcbiAgIGNvcnJlY3RuZXNzIGNoZWNrIGlzIGRpZmZpY3VsdCBhbmQgZXJyb3IgcHJvbmUgYW5kIGdpdmVuIHRoYXQgMWUxMFxuICAgKyAxIGlzIGluIHByYWN0aWNlIGxhcmdlIGVub3VnaCwgdGhlcmUgaXMgbm8gbmVlZCB0byBhdHRlbXB0IHRvIHNldFxuICAgcHBfaW5maW5pdHkgdG8gdGhlIHRoZW9yZXRpY2FsbHkgbWF4aW11bSBsaW1pdC4gSXQgaXMgbm90IHdvcnRoIHRoZVxuICAgYnVyZGVuICEgKilcbmxldCBwcF9pbmZpbml0eSA9IDEwMDAwMDAwMTBcblxuKCogT3V0cHV0IGZ1bmN0aW9ucyBmb3IgdGhlIGZvcm1hdHRlci4gKilcbmxldCBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIHMgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nIHMgMCAoU3RyaW5nLmxlbmd0aCBzKVxuYW5kIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlID0gc3RhdGUucHBfb3V0X25ld2xpbmUgKClcbmFuZCBwcF9vdXRwdXRfc3BhY2VzIHN0YXRlIG4gPSBzdGF0ZS5wcF9vdXRfc3BhY2VzIG5cbmFuZCBwcF9vdXRwdXRfaW5kZW50IHN0YXRlIG4gPSBzdGF0ZS5wcF9vdXRfaW5kZW50IG5cblxuKCogRm9ybWF0IGEgdGV4dHVhbCB0b2tlbiAqKVxubGV0IGZvcm1hdF9wcF90ZXh0IHN0YXRlIHNpemUgdGV4dCA9XG4gIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCAtIHNpemU7XG4gIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgdGV4dDtcbiAgc3RhdGUucHBfaXNfbmV3X2xpbmUgPC0gZmFsc2VcblxuKCogRm9ybWF0IGEgc3RyaW5nIGJ5IGl0cyBsZW5ndGgsIGlmIG5vdCBlbXB0eSAqKVxubGV0IGZvcm1hdF9zdHJpbmcgc3RhdGUgcyA9XG4gIGlmIHMgPD4gXCJcIiB0aGVuIGZvcm1hdF9wcF90ZXh0IHN0YXRlIChTdHJpbmcubGVuZ3RoIHMpIHNcblxuKCogVG8gZm9ybWF0IGEgYnJlYWssIGluZGVudGluZyBhIG5ldyBsaW5lLiAqKVxubGV0IGJyZWFrX25ld19saW5lIHN0YXRlIChiZWZvcmUsIG9mZnNldCwgYWZ0ZXIpIHdpZHRoID1cbiAgZm9ybWF0X3N0cmluZyBzdGF0ZSBiZWZvcmU7XG4gIHBwX291dHB1dF9uZXdsaW5lIHN0YXRlO1xuICBzdGF0ZS5wcF9pc19uZXdfbGluZSA8LSB0cnVlO1xuICBsZXQgaW5kZW50ID0gc3RhdGUucHBfbWFyZ2luIC0gd2lkdGggKyBvZmZzZXQgaW5cbiAgKCogRG9uJ3QgaW5kZW50IG1vcmUgdGhhbiBwcF9tYXhfaW5kZW50LiAqKVxuICBsZXQgcmVhbF9pbmRlbnQgPSBJbnQubWluIHN0YXRlLnBwX21heF9pbmRlbnQgaW5kZW50IGluXG4gIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50IDwtIHJlYWxfaW5kZW50O1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50O1xuICBwcF9vdXRwdXRfaW5kZW50IHN0YXRlIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50O1xuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGFmdGVyXG5cblxuKCogVG8gZm9yY2UgYSBsaW5lIGJyZWFrIGluc2lkZSBhIGJveDogbm8gb2Zmc2V0IGlzIGFkZGVkLiAqKVxubGV0IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGggPSBicmVha19uZXdfbGluZSBzdGF0ZSAoXCJcIiwgMCwgXCJcIikgd2lkdGhcblxuKCogVG8gZm9ybWF0IGEgYnJlYWsgdGhhdCBmaXRzIG9uIHRoZSBjdXJyZW50IGxpbmUuICopXG5sZXQgYnJlYWtfc2FtZV9saW5lIHN0YXRlIChiZWZvcmUsIHdpZHRoLCBhZnRlcikgPVxuICBmb3JtYXRfc3RyaW5nIHN0YXRlIGJlZm9yZTtcbiAgc3RhdGUucHBfc3BhY2VfbGVmdCA8LSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gd2lkdGg7XG4gIHBwX291dHB1dF9zcGFjZXMgc3RhdGUgd2lkdGg7XG4gIGZvcm1hdF9zdHJpbmcgc3RhdGUgYWZ0ZXJcblxuXG4oKiBUbyBpbmRlbnQgbm8gbW9yZSB0aGFuIHBwX21heF9pbmRlbnQsIGlmIG9uZSB0cmllcyB0byBvcGVuIGEgYm94XG4gICBiZXlvbmQgcHBfbWF4X2luZGVudCwgdGhlbiB0aGUgYm94IGlzIHJlamVjdGVkIG9uIHRoZSBsZWZ0XG4gICBieSBzaW11bGF0aW5nIGEgYnJlYWsuICopXG5sZXQgcHBfZm9yY2VfYnJlYWtfbGluZSBzdGF0ZSA9XG4gIG1hdGNoIFN0YWNrLnRvcF9vcHQgc3RhdGUucHBfZm9ybWF0X3N0YWNrIHdpdGhcbiAgfCBOb25lIC0+IHBwX291dHB1dF9uZXdsaW5lIHN0YXRlXG4gIHwgU29tZSB7IGJveF90eXBlOyB3aWR0aCB9IC0+XG4gICAgaWYgd2lkdGggPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW5cbiAgICAgIG1hdGNoIGJveF90eXBlIHdpdGhcbiAgICAgIHwgUHBfZml0cyB8IFBwX2hib3ggLT4gKClcbiAgICAgIHwgUHBfdmJveCB8IFBwX2h2Ym94IHwgUHBfaG92Ym94IHwgUHBfYm94IC0+IGJyZWFrX2xpbmUgc3RhdGUgd2lkdGhcblxuXG4oKiBUbyBza2lwIGEgdG9rZW4sIGlmIHRoZSBwcmV2aW91cyBsaW5lIGhhcyBiZWVuIGJyb2tlbi4gKilcbmxldCBwcF9za2lwX3Rva2VuIHN0YXRlID1cbiAgbWF0Y2ggUXVldWUudGFrZV9vcHQgc3RhdGUucHBfcXVldWUgd2l0aFxuICB8IE5vbmUgLT4gKCkgKCogcHJpbnRfaWZfbmV3bGluZSBtdXN0IGhhdmUgYmVlbiB0aGUgbGFzdCBwcmludGluZyBjb21tYW5kICopXG4gIHwgU29tZSB7IHNpemU7IGxlbmd0aDsgXyB9IC0+XG4gICAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSBzdGF0ZS5wcF9sZWZ0X3RvdGFsIC0gbGVuZ3RoO1xuICAgIHN0YXRlLnBwX3NwYWNlX2xlZnQgPC0gc3RhdGUucHBfc3BhY2VfbGVmdCArIFNpemUudG9faW50IHNpemVcblxuXG4oKlxuXG4gIFRoZSBtYWluIHByZXR0eSBwcmludGluZyBmdW5jdGlvbnMuXG5cbiopXG5cbigqIEZvcm1hdHRpbmcgYSB0b2tlbiB3aXRoIGEgZ2l2ZW4gc2l6ZS4gKilcbmxldCBmb3JtYXRfcHBfdG9rZW4gc3RhdGUgc2l6ZSA9IGZ1bmN0aW9uXG5cbiAgfCBQcF90ZXh0IHMgLT5cbiAgICBmb3JtYXRfcHBfdGV4dCBzdGF0ZSBzaXplIHNcblxuICB8IFBwX2JlZ2luIChvZmYsIHR5KSAtPlxuICAgIGxldCBpbnNlcnRpb25fcG9pbnQgPSBzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IGluXG4gICAgaWYgaW5zZXJ0aW9uX3BvaW50ID4gc3RhdGUucHBfbWF4X2luZGVudCB0aGVuXG4gICAgICAoKiBjYW4gbm90IG9wZW4gYSBib3ggcmlnaHQgdGhlcmUuICopXG4gICAgICBiZWdpbiBwcF9mb3JjZV9icmVha19saW5lIHN0YXRlIGVuZDtcbiAgICBsZXQgd2lkdGggPSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IC0gb2ZmIGluXG4gICAgbGV0IGJveF90eXBlID1cbiAgICAgIG1hdGNoIHR5IHdpdGhcbiAgICAgIHwgUHBfdmJveCAtPiBQcF92Ym94XG4gICAgICB8IFBwX2hib3ggfCBQcF9odmJveCB8IFBwX2hvdmJveCB8IFBwX2JveCB8IFBwX2ZpdHMgLT5cbiAgICAgICAgaWYgc2l6ZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnQgdGhlbiB0eSBlbHNlIFBwX2ZpdHMgaW5cbiAgICBTdGFjay5wdXNoIHsgYm94X3R5cGU7IHdpZHRoIH0gc3RhdGUucHBfZm9ybWF0X3N0YWNrXG5cbiAgfCBQcF9lbmQgLT5cbiAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB8PiBpZ25vcmVcblxuICB8IFBwX3RiZWdpbiAoUHBfdGJveCBfIGFzIHRib3gpIC0+XG4gICAgU3RhY2sucHVzaCB0Ym94IHN0YXRlLnBwX3Rib3hfc3RhY2tcblxuICB8IFBwX3RlbmQgLT5cbiAgICBTdGFjay5wb3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgfD4gaWdub3JlXG5cbiAgfCBQcF9zdGFiIC0+XG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF90Ym94X3N0YWNrIHdpdGhcbiAgICB8IE5vbmUgLT4gKCkgKCogTm8gb3BlbiB0YWJ1bGF0aW9uIGJveC4gKilcbiAgICB8IFNvbWUgKFBwX3Rib3ggdGFicykgLT5cbiAgICAgIGxldCByZWMgYWRkX3RhYiBuID0gZnVuY3Rpb25cbiAgICAgICAgfCBbXSAtPiBbbl1cbiAgICAgICAgfCB4IDo6IGwgYXMgbHMgLT4gaWYgbiA8IHggdGhlbiBuIDo6IGxzIGVsc2UgeCA6OiBhZGRfdGFiIG4gbCBpblxuICAgICAgdGFicyA6PSBhZGRfdGFiIChzdGF0ZS5wcF9tYXJnaW4gLSBzdGF0ZS5wcF9zcGFjZV9sZWZ0KSAhdGFic1xuICAgIGVuZFxuXG4gIHwgUHBfdGJyZWFrIChuLCBvZmYpIC0+XG4gICAgbGV0IGluc2VydGlvbl9wb2ludCA9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnQgaW5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX3Rib3hfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBvcGVuIHRhYnVsYXRpb24gYm94LiAqKVxuICAgIHwgU29tZSAoUHBfdGJveCB0YWJzKSAtPlxuICAgICAgbGV0IHRhYiA9XG4gICAgICAgIG1hdGNoICF0YWJzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBpbnNlcnRpb25fcG9pbnRcbiAgICAgICAgfCBmaXJzdCA6OiBfIC0+XG4gICAgICAgICAgbGV0IHJlYyBmaW5kID0gZnVuY3Rpb25cbiAgICAgICAgICAgIHwgaGVhZCA6OiB0YWlsIC0+XG4gICAgICAgICAgICAgIGlmIGhlYWQgPj0gaW5zZXJ0aW9uX3BvaW50IHRoZW4gaGVhZCBlbHNlIGZpbmQgdGFpbFxuICAgICAgICAgICAgfCBbXSAtPiBmaXJzdCBpblxuICAgICAgICAgIGZpbmQgIXRhYnMgaW5cbiAgICAgIGxldCBvZmZzZXQgPSB0YWIgLSBpbnNlcnRpb25fcG9pbnQgaW5cbiAgICAgIGlmIG9mZnNldCA+PSAwXG4gICAgICB0aGVuIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSAoXCJcIiwgb2Zmc2V0ICsgbiwgXCJcIilcbiAgICAgIGVsc2UgYnJlYWtfbmV3X2xpbmUgc3RhdGUgKFwiXCIsIHRhYiArIG9mZiwgXCJcIikgc3RhdGUucHBfbWFyZ2luXG4gICAgZW5kXG5cbiAgfCBQcF9uZXdsaW5lIC0+XG4gICAgYmVnaW4gbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9mb3JtYXRfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZSAoKiBObyBvcGVuIGJveC4gKilcbiAgICB8IFNvbWUgeyB3aWR0aDsgX30gLT4gYnJlYWtfbGluZSBzdGF0ZSB3aWR0aFxuICAgIGVuZFxuXG4gIHwgUHBfaWZfbmV3bGluZSAtPlxuICAgIGlmIHN0YXRlLnBwX2N1cnJlbnRfaW5kZW50ICE9IHN0YXRlLnBwX21hcmdpbiAtIHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICB0aGVuIHBwX3NraXBfdG9rZW4gc3RhdGVcblxuICB8IFBwX2JyZWFrIHsgZml0czsgYnJlYWtzIH0gLT5cbiAgICBsZXQgYmVmb3JlLCBvZmYsIF8gPSBicmVha3MgaW5cbiAgICBiZWdpbiBtYXRjaCBTdGFjay50b3Bfb3B0IHN0YXRlLnBwX2Zvcm1hdF9zdGFjayB3aXRoXG4gICAgfCBOb25lIC0+ICgpICgqIE5vIG9wZW4gYm94LiAqKVxuICAgIHwgU29tZSB7IGJveF90eXBlOyB3aWR0aCB9IC0+XG4gICAgICBiZWdpbiBtYXRjaCBib3hfdHlwZSB3aXRoXG4gICAgICB8IFBwX2hvdmJveCAtPlxuICAgICAgICBpZiBzaXplICsgU3RyaW5nLmxlbmd0aCBiZWZvcmUgPiBzdGF0ZS5wcF9zcGFjZV9sZWZ0XG4gICAgICAgIHRoZW4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICAgIGVsc2UgYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIHwgUHBfYm94IC0+XG4gICAgICAgICgqIEhhdmUgdGhlIGxpbmUganVzdCBiZWVuIGJyb2tlbiBoZXJlID8gKilcbiAgICAgICAgaWYgc3RhdGUucHBfaXNfbmV3X2xpbmUgdGhlbiBicmVha19zYW1lX2xpbmUgc3RhdGUgZml0cyBlbHNlXG4gICAgICAgIGlmIHNpemUgKyBTdHJpbmcubGVuZ3RoIGJlZm9yZSA+IHN0YXRlLnBwX3NwYWNlX2xlZnRcbiAgICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aCBlbHNlXG4gICAgICAgICgqIGJyZWFrIHRoZSBsaW5lIGhlcmUgbGVhZHMgdG8gbmV3IGluZGVudGF0aW9uID8gKilcbiAgICAgICAgaWYgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPiBzdGF0ZS5wcF9tYXJnaW4gLSB3aWR0aCArIG9mZlxuICAgICAgICB0aGVuIGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgICBlbHNlIGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX2h2Ym94IC0+IGJyZWFrX25ld19saW5lIHN0YXRlIGJyZWFrcyB3aWR0aFxuICAgICAgfCBQcF9maXRzIC0+IGJyZWFrX3NhbWVfbGluZSBzdGF0ZSBmaXRzXG4gICAgICB8IFBwX3Zib3ggLT4gYnJlYWtfbmV3X2xpbmUgc3RhdGUgYnJlYWtzIHdpZHRoXG4gICAgICB8IFBwX2hib3ggLT4gYnJlYWtfc2FtZV9saW5lIHN0YXRlIGZpdHNcbiAgICAgIGVuZFxuICAgIGVuZFxuXG4gICB8IFBwX29wZW5fdGFnIHRhZ19uYW1lIC0+XG4gICAgIGxldCBtYXJrZXIgPSBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIHRhZ19uYW1lIGluXG4gICAgIHBwX291dHB1dF9zdHJpbmcgc3RhdGUgbWFya2VyO1xuICAgICBTdGFjay5wdXNoIHRhZ19uYW1lIHN0YXRlLnBwX21hcmtfc3RhY2tcblxuICAgfCBQcF9jbG9zZV90YWcgLT5cbiAgICAgYmVnaW4gbWF0Y2ggU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9tYXJrX3N0YWNrIHdpdGhcbiAgICAgfCBOb25lIC0+ICgpICgqIE5vIG1vcmUgdGFnIHRvIGNsb3NlLiAqKVxuICAgICB8IFNvbWUgdGFnX25hbWUgLT5cbiAgICAgICBsZXQgbWFya2VyID0gc3RhdGUucHBfbWFya19jbG9zZV90YWcgdGFnX25hbWUgaW5cbiAgICAgICBwcF9vdXRwdXRfc3RyaW5nIHN0YXRlIG1hcmtlclxuICAgICBlbmRcblxuXG4oKiBQcmludCBpZiB0b2tlbiBzaXplIGlzIGtub3duIGVsc2UgcHJpbnRpbmcgaXMgZGVsYXllZC5cbiAgIFByaW50aW5nIGlzIGRlbGF5ZWQgd2hlbiB0aGUgdGV4dCB3YWl0aW5nIGluIHRoZSBxdWV1ZSByZXF1aXJlc1xuICAgbW9yZSByb29tIHRvIGZvcm1hdCB0aGFuIGV4aXN0cyBvbiB0aGUgY3VycmVudCBsaW5lLiAqKVxubGV0IHJlYyBhZHZhbmNlX2xlZnQgc3RhdGUgPVxuICBtYXRjaCBRdWV1ZS5wZWVrX29wdCBzdGF0ZS5wcF9xdWV1ZSB3aXRoXG4gIHwgTm9uZSAtPiAoKSAoKiBObyB0b2tlbnMgdG8gcHJpbnQgKilcbiAgfCBTb21lIHsgc2l6ZTsgdG9rZW47IGxlbmd0aCB9IC0+XG4gICAgbGV0IHBlbmRpbmdfY291bnQgPSBzdGF0ZS5wcF9yaWdodF90b3RhbCAtIHN0YXRlLnBwX2xlZnRfdG90YWwgaW5cbiAgICBpZiBTaXplLmlzX2tub3duIHNpemUgfHwgcGVuZGluZ19jb3VudCA+PSBzdGF0ZS5wcF9zcGFjZV9sZWZ0IHRoZW4gYmVnaW5cbiAgICAgIFF1ZXVlLnRha2Ugc3RhdGUucHBfcXVldWUgfD4gaWdub3JlOyAoKiBOb3QgZW1wdHk6IHdlIHBlZWsgaW50byBpdCAqKVxuICAgICAgbGV0IHNpemUgPSBpZiBTaXplLmlzX2tub3duIHNpemUgdGhlbiBTaXplLnRvX2ludCBzaXplIGVsc2UgcHBfaW5maW5pdHkgaW5cbiAgICAgIGZvcm1hdF9wcF90b2tlbiBzdGF0ZSBzaXplIHRva2VuO1xuICAgICAgc3RhdGUucHBfbGVmdF90b3RhbCA8LSBsZW5ndGggKyBzdGF0ZS5wcF9sZWZ0X3RvdGFsO1xuICAgICAgKGFkdmFuY2VfbGVmdCBbQHRhaWxjYWxsXSkgc3RhdGVcbiAgICBlbmRcblxuXG4oKiBUbyBlbnF1ZXVlIGEgdG9rZW4gOiB0cnkgdG8gYWR2YW5jZS4gKilcbmxldCBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgdG9rID0gcHBfZW5xdWV1ZSBzdGF0ZSB0b2s7IGFkdmFuY2VfbGVmdCBzdGF0ZVxuXG5cbigqIFRvIGVucXVldWUgc3RyaW5ncy4gKilcbmxldCBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSBzaXplIHMgPVxuICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgeyBzaXplOyB0b2tlbiA9IFBwX3RleHQgczsgbGVuZ3RoID0gU2l6ZS50b19pbnQgc2l6ZSB9XG5cblxubGV0IGVucXVldWVfc3RyaW5nIHN0YXRlIHMgPVxuICBlbnF1ZXVlX3N0cmluZ19hcyBzdGF0ZSAoU2l6ZS5vZl9pbnQgKFN0cmluZy5sZW5ndGggcykpIHNcblxuXG4oKiBSb3V0aW5lcyBmb3Igc2NhbiBzdGFja1xuICAgZGV0ZXJtaW5lIHNpemUgb2YgYm94ZXMuICopXG5cbigqIFRoZSBzY2FuX3N0YWNrIGlzIG5ldmVyIGVtcHR5LiAqKVxubGV0IGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGFjayA9XG4gIFN0YWNrLmNsZWFyIHN0YWNrO1xuICBsZXQgcXVldWVfZWxlbSA9IHsgc2l6ZSA9IFNpemUudW5rbm93bjsgdG9rZW4gPSBQcF90ZXh0IFwiXCI7IGxlbmd0aCA9IDAgfSBpblxuICBTdGFjay5wdXNoIHsgbGVmdF90b3RhbCA9IC0xOyBxdWV1ZV9lbGVtIH0gc3RhY2tcblxuKCogU2V0dGluZyB0aGUgc2l6ZSBvZiBib3hlcyBvbiBzY2FuIHN0YWNrOlxuICAgaWYgdHkgPSB0cnVlIHRoZW4gc2l6ZSBvZiBicmVhayBpcyBzZXQgZWxzZSBzaXplIG9mIGJveCBpcyBzZXQ7XG4gICBpbiBlYWNoIGNhc2UgcHBfc2Nhbl9zdGFjayBpcyBwb3BwZWQuXG5cbiAgIE5vdGU6XG4gICBQYXR0ZXJuIG1hdGNoaW5nIG9uIHNjYW4gc3RhY2sgaXMgZXhoYXVzdGl2ZSwgc2luY2Ugc2Nhbl9zdGFjayBpcyBuZXZlclxuICAgZW1wdHkuXG4gICBQYXR0ZXJuIG1hdGNoaW5nIG9uIHRva2VuIGluIHNjYW4gc3RhY2sgaXMgYWxzbyBleGhhdXN0aXZlLFxuICAgc2luY2Ugc2Nhbl9wdXNoIGlzIHVzZWQgb24gYnJlYWtzIGFuZCBvcGVuaW5nIG9mIGJveGVzLiAqKVxubGV0IHNldF9zaXplIHN0YXRlIHR5ID1cbiAgbWF0Y2ggU3RhY2sudG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHdpdGhcbiAgfCBOb25lIC0+ICgpICgqIHNjYW5fc3RhY2sgaXMgbmV2ZXIgZW1wdHkuICopXG4gIHwgU29tZSB7IGxlZnRfdG90YWw7IHF1ZXVlX2VsZW0gfSAtPlxuICAgIGxldCBzaXplID0gU2l6ZS50b19pbnQgcXVldWVfZWxlbS5zaXplIGluXG4gICAgKCogdGVzdCBpZiBzY2FuIHN0YWNrIGNvbnRhaW5zIGFueSBkYXRhIHRoYXQgaXMgbm90IG9ic29sZXRlLiAqKVxuICAgIGlmIGxlZnRfdG90YWwgPCBzdGF0ZS5wcF9sZWZ0X3RvdGFsIHRoZW5cbiAgICAgIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGF0ZS5wcF9zY2FuX3N0YWNrXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggcXVldWVfZWxlbS50b2tlbiB3aXRoXG4gICAgICB8IFBwX2JyZWFrIF8gfCBQcF90YnJlYWsgKF8sIF8pIC0+XG4gICAgICAgIGlmIHR5IHRoZW4gYmVnaW5cbiAgICAgICAgICBxdWV1ZV9lbGVtLnNpemUgPC0gU2l6ZS5vZl9pbnQgKHN0YXRlLnBwX3JpZ2h0X3RvdGFsICsgc2l6ZSk7XG4gICAgICAgICAgU3RhY2sucG9wX29wdCBzdGF0ZS5wcF9zY2FuX3N0YWNrIHw+IGlnbm9yZVxuICAgICAgICBlbmRcbiAgICAgIHwgUHBfYmVnaW4gKF8sIF8pIC0+XG4gICAgICAgIGlmIG5vdCB0eSB0aGVuIGJlZ2luXG4gICAgICAgICAgcXVldWVfZWxlbS5zaXplIDwtIFNpemUub2ZfaW50IChzdGF0ZS5wcF9yaWdodF90b3RhbCArIHNpemUpO1xuICAgICAgICAgIFN0YWNrLnBvcF9vcHQgc3RhdGUucHBfc2Nhbl9zdGFjayB8PiBpZ25vcmVcbiAgICAgICAgZW5kXG4gICAgICB8IFBwX3RleHQgXyB8IFBwX3N0YWIgfCBQcF90YmVnaW4gXyB8IFBwX3RlbmQgfCBQcF9lbmRcbiAgICAgIHwgUHBfbmV3bGluZSB8IFBwX2lmX25ld2xpbmUgfCBQcF9vcGVuX3RhZyBfIHwgUHBfY2xvc2VfdGFnIC0+XG4gICAgICAgICgpICgqIHNjYW5fcHVzaCBpcyBvbmx5IHVzZWQgZm9yIGJyZWFrcyBhbmQgYm94ZXMuICopXG5cblxuKCogUHVzaCBhIHRva2VuIG9uIHByZXR0eS1wcmludGVyIHNjYW5uaW5nIHN0YWNrLlxuICAgSWYgYiBpcyB0cnVlIHNldF9zaXplIGlzIGNhbGxlZC4gKilcbmxldCBzY2FuX3B1c2ggc3RhdGUgYiB0b2tlbiA9XG4gIHBwX2VucXVldWUgc3RhdGUgdG9rZW47XG4gIGlmIGIgdGhlbiBzZXRfc2l6ZSBzdGF0ZSB0cnVlO1xuICBsZXQgZWxlbSA9IHsgbGVmdF90b3RhbCA9IHN0YXRlLnBwX3JpZ2h0X3RvdGFsOyBxdWV1ZV9lbGVtID0gdG9rZW4gfSBpblxuICBTdGFjay5wdXNoIGVsZW0gc3RhdGUucHBfc2Nhbl9zdGFja1xuXG5cbigqIFRvIG9wZW4gYSBuZXcgYm94IDpcbiAgIHRoZSB1c2VyIG1heSBzZXQgdGhlIGRlcHRoIGJvdW5kIHBwX21heF9ib3hlc1xuICAgYW55IHRleHQgbmVzdGVkIGRlZXBlciBpcyBwcmludGVkIGFzIHRoZSBlbGxpcHNpcyBzdHJpbmcuICopXG5sZXQgcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBicl90eSA9XG4gIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCArIDE7XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IGVsZW0gPSB7IHNpemU7IHRva2VuID0gUHBfYmVnaW4gKGluZGVudCwgYnJfdHkpOyBsZW5ndGggPSAwIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgZmFsc2UgZWxlbSBlbHNlXG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPSBzdGF0ZS5wcF9tYXhfYm94ZXNcbiAgdGhlbiBlbnF1ZXVlX3N0cmluZyBzdGF0ZSBzdGF0ZS5wcF9lbGxpcHNpc1xuXG5cbigqIFRoZSBib3ggd2hpY2ggaXMgYWx3YXlzIG9wZW4uICopXG5sZXQgcHBfb3Blbl9zeXNfYm94IHN0YXRlID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIDAgUHBfaG92Ym94XG5cbigqIENsb3NlIGEgYm94LCBzZXR0aW5nIHNpemVzIG9mIGl0cyBzdWIgYm94ZXMuICopXG5sZXQgcHBfY2xvc2VfYm94IHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA+IDEgdGhlblxuICBiZWdpblxuICAgIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGJlZ2luXG4gICAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9lbmQ7IGxlbmd0aCA9IDAgfTtcbiAgICAgIHNldF9zaXplIHN0YXRlIHRydWU7IHNldF9zaXplIHN0YXRlIGZhbHNlXG4gICAgZW5kO1xuICAgIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCAtIDE7XG4gIGVuZFxuXG5cbigqIE9wZW4gYSB0YWcsIHB1c2hpbmcgaXQgb24gdGhlIHRhZyBzdGFjay4gKilcbmxldCBwcF9vcGVuX3N0YWcgc3RhdGUgdGFnX25hbWUgPVxuICBpZiBzdGF0ZS5wcF9wcmludF90YWdzIHRoZW5cbiAgYmVnaW5cbiAgICBTdGFjay5wdXNoIHRhZ19uYW1lIHN0YXRlLnBwX3RhZ19zdGFjaztcbiAgICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyB0YWdfbmFtZVxuICBlbmQ7XG4gIGlmIHN0YXRlLnBwX21hcmtfdGFncyB0aGVuXG4gICAgbGV0IHRva2VuID0gUHBfb3Blbl90YWcgdGFnX25hbWUgaW5cbiAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW47IGxlbmd0aCA9IDAgfVxuXG5cbigqIENsb3NlIGEgdGFnLCBwb3BwaW5nIGl0IGZyb20gdGhlIHRhZyBzdGFjay4gKilcbmxldCBwcF9jbG9zZV9zdGFnIHN0YXRlICgpID1cbiAgaWYgc3RhdGUucHBfbWFya190YWdzIHRoZW5cbiAgICBwcF9lbnF1ZXVlIHN0YXRlIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9jbG9zZV90YWc7IGxlbmd0aCA9IDAgfTtcbiAgaWYgc3RhdGUucHBfcHJpbnRfdGFncyB0aGVuXG4gICAgbWF0Y2ggU3RhY2sucG9wX29wdCBzdGF0ZS5wcF90YWdfc3RhY2sgd2l0aFxuICAgIHwgTm9uZSAtPiAoKSAoKiBObyBtb3JlIHRhZyB0byBjbG9zZS4gKilcbiAgICB8IFNvbWUgdGFnX25hbWUgLT5cbiAgICAgIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyB0YWdfbmFtZVxuXG5sZXQgcHBfb3Blbl90YWcgc3RhdGUgcyA9IHBwX29wZW5fc3RhZyBzdGF0ZSAoU3RyaW5nX3RhZyBzKVxubGV0IHBwX2Nsb3NlX3RhZyBzdGF0ZSAoKSA9IHBwX2Nsb3NlX3N0YWcgc3RhdGUgKClcblxubGV0IHBwX3NldF9wcmludF90YWdzIHN0YXRlIGIgPSBzdGF0ZS5wcF9wcmludF90YWdzIDwtIGJcbmxldCBwcF9zZXRfbWFya190YWdzIHN0YXRlIGIgPSBzdGF0ZS5wcF9tYXJrX3RhZ3MgPC0gYlxubGV0IHBwX2dldF9wcmludF90YWdzIHN0YXRlICgpID0gc3RhdGUucHBfcHJpbnRfdGFnc1xubGV0IHBwX2dldF9tYXJrX3RhZ3Mgc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXJrX3RhZ3NcbmxldCBwcF9zZXRfdGFncyBzdGF0ZSBiID1cbiAgcHBfc2V0X3ByaW50X3RhZ3Mgc3RhdGUgYjsgcHBfc2V0X21hcmtfdGFncyBzdGF0ZSBiXG5cblxuKCogSGFuZGxpbmcgdGFnIGhhbmRsaW5nIGZ1bmN0aW9uczogZ2V0L3NldCBmdW5jdGlvbnMuICopXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGF0ZSAoKSA9IHtcbiAgbWFya19vcGVuX3N0YWcgPSBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnO1xuICBtYXJrX2Nsb3NlX3N0YWcgPSBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZztcbiAgcHJpbnRfb3Blbl9zdGFnID0gc3RhdGUucHBfcHJpbnRfb3Blbl90YWc7XG4gIHByaW50X2Nsb3NlX3N0YWcgPSBzdGF0ZS5wcF9wcmludF9jbG9zZV90YWc7XG59XG5cblxubGV0IHBwX3NldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RhdGUge1xuICAgICBtYXJrX29wZW5fc3RhZyA9IG1vdDtcbiAgICAgbWFya19jbG9zZV9zdGFnID0gbWN0O1xuICAgICBwcmludF9vcGVuX3N0YWcgPSBwb3Q7XG4gICAgIHByaW50X2Nsb3NlX3N0YWcgPSBwY3Q7XG4gIH0gPVxuICBzdGF0ZS5wcF9tYXJrX29wZW5fdGFnIDwtIG1vdDtcbiAgc3RhdGUucHBfbWFya19jbG9zZV90YWcgPC0gbWN0O1xuICBzdGF0ZS5wcF9wcmludF9vcGVuX3RhZyA8LSBwb3Q7XG4gIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyA8LSBwY3RcblxuXG4oKiBJbml0aWFsaXplIHByZXR0eS1wcmludGVyLiAqKVxubGV0IHBwX3Jpbml0IHN0YXRlID1cbiAgcHBfY2xlYXJfcXVldWUgc3RhdGU7XG4gIGluaXRpYWxpemVfc2Nhbl9zdGFjayBzdGF0ZS5wcF9zY2FuX3N0YWNrO1xuICBTdGFjay5jbGVhciBzdGF0ZS5wcF9mb3JtYXRfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX3Rib3hfc3RhY2s7XG4gIFN0YWNrLmNsZWFyIHN0YXRlLnBwX3RhZ19zdGFjaztcbiAgU3RhY2suY2xlYXIgc3RhdGUucHBfbWFya19zdGFjaztcbiAgc3RhdGUucHBfY3VycmVudF9pbmRlbnQgPC0gMDtcbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSAwO1xuICBzdGF0ZS5wcF9zcGFjZV9sZWZ0IDwtIHN0YXRlLnBwX21hcmdpbjtcbiAgcHBfb3Blbl9zeXNfYm94IHN0YXRlXG5cbmxldCBjbGVhcl90YWdfc3RhY2sgc3RhdGUgPVxuICBTdGFjay5pdGVyIChmdW4gXyAtPiBwcF9jbG9zZV90YWcgc3RhdGUgKCkpIHN0YXRlLnBwX3RhZ19zdGFja1xuXG5cbigqIEZsdXNoaW5nIHByZXR0eS1wcmludGVyIHF1ZXVlLiAqKVxubGV0IHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIGIgPVxuICBjbGVhcl90YWdfc3RhY2sgc3RhdGU7XG4gIHdoaWxlIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIGRvXG4gICAgcHBfY2xvc2VfYm94IHN0YXRlICgpXG4gIGRvbmU7XG4gIHN0YXRlLnBwX3JpZ2h0X3RvdGFsIDwtIHBwX2luZmluaXR5O1xuICBhZHZhbmNlX2xlZnQgc3RhdGU7XG4gIGlmIGIgdGhlbiBwcF9vdXRwdXRfbmV3bGluZSBzdGF0ZTtcbiAgcHBfcmluaXQgc3RhdGVcblxuKCpcblxuICBQcm9jZWR1cmVzIHRvIGZvcm1hdCB2YWx1ZXMgYW5kIHVzZSBib3hlcy5cblxuKilcblxuKCogVG8gZm9ybWF0IGEgc3RyaW5nLiAqKVxubGV0IHBwX3ByaW50X2FzX3NpemUgc3RhdGUgc2l6ZSBzID1cbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlc1xuICB0aGVuIGVucXVldWVfc3RyaW5nX2FzIHN0YXRlIHNpemUgc1xuXG5cbmxldCBwcF9wcmludF9hcyBzdGF0ZSBpc2l6ZSBzID1cbiAgcHBfcHJpbnRfYXNfc2l6ZSBzdGF0ZSAoU2l6ZS5vZl9pbnQgaXNpemUpIHNcblxuXG5sZXQgcHBfcHJpbnRfc3RyaW5nIHN0YXRlIHMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAoU3RyaW5nLmxlbmd0aCBzKSBzXG5cbmxldCBwcF9wcmludF9ieXRlcyBzdGF0ZSBzID1cbiAgcHBfcHJpbnRfYXMgc3RhdGUgKEJ5dGVzLmxlbmd0aCBzKSAoQnl0ZXMudG9fc3RyaW5nIHMpXG5cbigqIFRvIGZvcm1hdCBhbiBpbnRlZ2VyLiAqKVxubGV0IHBwX3ByaW50X2ludCBzdGF0ZSBpID0gcHBfcHJpbnRfc3RyaW5nIHN0YXRlIChJbnQudG9fc3RyaW5nIGkpXG5cbigqIFRvIGZvcm1hdCBhIGZsb2F0LiAqKVxubGV0IHBwX3ByaW50X2Zsb2F0IHN0YXRlIGYgPSBwcF9wcmludF9zdHJpbmcgc3RhdGUgKHN0cmluZ19vZl9mbG9hdCBmKVxuXG4oKiBUbyBmb3JtYXQgYSBib29sZWFuLiAqKVxubGV0IHBwX3ByaW50X2Jvb2wgc3RhdGUgYiA9IHBwX3ByaW50X3N0cmluZyBzdGF0ZSAoc3RyaW5nX29mX2Jvb2wgYilcblxuKCogVG8gZm9ybWF0IGEgY2hhci4gKilcbmxldCBwcF9wcmludF9jaGFyIHN0YXRlIGMgPVxuICBwcF9wcmludF9hcyBzdGF0ZSAxIChTdHJpbmcubWFrZSAxIGMpXG5cblxuKCogT3BlbmluZyBib3hlcy4gKilcbmxldCBwcF9vcGVuX2hib3ggc3RhdGUgKCkgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgMCBQcF9oYm94XG5hbmQgcHBfb3Blbl92Ym94IHN0YXRlIGluZGVudCA9IHBwX29wZW5fYm94X2dlbiBzdGF0ZSBpbmRlbnQgUHBfdmJveFxuXG5hbmQgcHBfb3Blbl9odmJveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2h2Ym94XG5hbmQgcHBfb3Blbl9ob3Zib3ggc3RhdGUgaW5kZW50ID0gcHBfb3Blbl9ib3hfZ2VuIHN0YXRlIGluZGVudCBQcF9ob3Zib3hcbmFuZCBwcF9vcGVuX2JveCBzdGF0ZSBpbmRlbnQgPSBwcF9vcGVuX2JveF9nZW4gc3RhdGUgaW5kZW50IFBwX2JveFxuXG5cbigqIFByaW50aW5nIHF1ZXVlZCB0ZXh0LlxuXG4gICBbcHBfcHJpbnRfZmx1c2hdIHByaW50cyBhbGwgcGVuZGluZyBpdGVtcyBpbiB0aGUgcHJldHR5LXByaW50ZXIgcXVldWUgYW5kXG4gICB0aGVuIGZsdXNoZXMgdGhlIGxvdyBsZXZlbCBvdXRwdXQgZGV2aWNlIG9mIHRoZSBmb3JtYXR0ZXIgdG8gYWN0dWFsbHlcbiAgIGRpc3BsYXkgcHJpbnRpbmcgbWF0ZXJpYWwuXG5cbiAgIFtwcF9wcmludF9uZXdsaW5lXSBiZWhhdmVzIGFzIFtwcF9wcmludF9mbHVzaF0gYWZ0ZXIgcHJpbnRpbmcgYW4gYWRkaXRpb25hbFxuICAgbmV3IGxpbmUuICopXG5sZXQgcHBfcHJpbnRfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIHBwX2ZsdXNoX3F1ZXVlIHN0YXRlIHRydWU7IHN0YXRlLnBwX291dF9mbHVzaCAoKVxuYW5kIHBwX3ByaW50X2ZsdXNoIHN0YXRlICgpID1cbiAgcHBfZmx1c2hfcXVldWUgc3RhdGUgZmFsc2U7IHN0YXRlLnBwX291dF9mbHVzaCAoKVxuXG5cbigqIFRvIGdldCBhIG5ld2xpbmUgd2hlbiBvbmUgZG9lcyBub3Qgd2FudCB0byBjbG9zZSB0aGUgY3VycmVudCBib3guICopXG5sZXQgcHBfZm9yY2VfbmV3bGluZSBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGVucXVldWVfYWR2YW5jZSBzdGF0ZSB7IHNpemUgPSBTaXplLnplcm87IHRva2VuID0gUHBfbmV3bGluZTsgbGVuZ3RoID0gMCB9XG5cblxuKCogVG8gZm9ybWF0IHNvbWV0aGluZywgb25seSBpbiBjYXNlIHRoZSBsaW5lIGhhcyBqdXN0IGJlZW4gYnJva2VuLiAqKVxubGV0IHBwX3ByaW50X2lmX25ld2xpbmUgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGVcbiAgICAgIHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9pZl9uZXdsaW5lOyBsZW5ndGggPSAwIH1cblxuXG4oKiBHZW5lcmFsaXplZCBicmVhayBoaW50IHRoYXQgYWxsb3dzIHByaW50aW5nIHN0cmluZ3MgYmVmb3JlL2FmdGVyXG4gICBzYW1lLWxpbmUgb2Zmc2V0ICh3aWR0aCkgb3IgbmV3LWxpbmUgb2Zmc2V0ICopXG5sZXQgcHBfcHJpbnRfY3VzdG9tX2JyZWFrIHN0YXRlIH5maXRzIH5icmVha3MgPVxuICBsZXQgYmVmb3JlLCB3aWR0aCwgYWZ0ZXIgPSBmaXRzIGluXG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgIGxldCBzaXplID0gU2l6ZS5vZl9pbnQgKC0gc3RhdGUucHBfcmlnaHRfdG90YWwpIGluXG4gICAgbGV0IHRva2VuID0gUHBfYnJlYWsgeyBmaXRzOyBicmVha3MgfSBpblxuICAgIGxldCBsZW5ndGggPSBTdHJpbmcubGVuZ3RoIGJlZm9yZSArIHdpZHRoICsgU3RyaW5nLmxlbmd0aCBhZnRlciBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbjsgbGVuZ3RoIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgdHJ1ZSBlbGVtXG5cbigqIFByaW50aW5nIGJyZWFrIGhpbnRzOlxuICAgQSBicmVhayBoaW50IGluZGljYXRlcyB3aGVyZSBhIGJveCBtYXkgYmUgYnJva2VuLlxuICAgSWYgbGluZSBpcyBicm9rZW4gdGhlbiBvZmZzZXQgaXMgYWRkZWQgdG8gdGhlIGluZGVudGF0aW9uIG9mIHRoZSBjdXJyZW50XG4gICBib3ggZWxzZSAodGhlIHZhbHVlIG9mKSB3aWR0aCBibGFua3MgYXJlIHByaW50ZWQuICopXG5sZXQgcHBfcHJpbnRfYnJlYWsgc3RhdGUgd2lkdGggb2Zmc2V0ID1cbiAgcHBfcHJpbnRfY3VzdG9tX2JyZWFrIHN0YXRlXG4gICAgfmZpdHM6KFwiXCIsIHdpZHRoLCBcIlwiKSB+YnJlYWtzOihcIlwiLCBvZmZzZXQsIFwiXCIpXG5cblxuKCogUHJpbnQgYSBzcGFjZSA6XG4gICBhIHNwYWNlIGlzIGEgYnJlYWsgaGludCB0aGF0IHByaW50cyBhIHNpbmdsZSBzcGFjZSBpZiB0aGUgYnJlYWsgZG9lcyBub3RcbiAgIHNwbGl0IHRoZSBsaW5lO1xuICAgYSBjdXQgaXMgYSBicmVhayBoaW50IHRoYXQgcHJpbnRzIG5vdGhpbmcgaWYgdGhlIGJyZWFrIGRvZXMgbm90IHNwbGl0IHRoZVxuICAgbGluZS4gKilcbmxldCBwcF9wcmludF9zcGFjZSBzdGF0ZSAoKSA9IHBwX3ByaW50X2JyZWFrIHN0YXRlIDEgMFxuYW5kIHBwX3ByaW50X2N1dCBzdGF0ZSAoKSA9IHBwX3ByaW50X2JyZWFrIHN0YXRlIDAgMFxuXG5cbigqIFRhYnVsYXRpb24gYm94ZXMuICopXG5sZXQgcHBfb3Blbl90Ym94IHN0YXRlICgpID1cbiAgc3RhdGUucHBfY3Vycl9kZXB0aCA8LSBzdGF0ZS5wcF9jdXJyX2RlcHRoICsgMTtcbiAgaWYgc3RhdGUucHBfY3Vycl9kZXB0aCA8IHN0YXRlLnBwX21heF9ib3hlcyB0aGVuXG4gICAgbGV0IHNpemUgPSBTaXplLnplcm8gaW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZTsgdG9rZW4gPSBQcF90YmVnaW4gKFBwX3Rib3ggKHJlZiBbXSkpOyBsZW5ndGggPSAwIH0gaW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbVxuXG5cbigqIENsb3NlIGEgdGFidWxhdGlvbiBib3guICopXG5sZXQgcHBfY2xvc2VfdGJveCBzdGF0ZSAoKSA9XG4gIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPiAxIHRoZW5cbiAgYmVnaW5cbiAgIGlmIHN0YXRlLnBwX2N1cnJfZGVwdGggPCBzdGF0ZS5wcF9tYXhfYm94ZXMgdGhlblxuICAgICBsZXQgZWxlbSA9IHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF90ZW5kOyBsZW5ndGggPSAwIH0gaW5cbiAgICAgZW5xdWV1ZV9hZHZhbmNlIHN0YXRlIGVsZW07XG4gICAgIHN0YXRlLnBwX2N1cnJfZGVwdGggPC0gc3RhdGUucHBfY3Vycl9kZXB0aCAtIDFcbiAgZW5kXG5cblxuKCogUHJpbnQgYSB0YWJ1bGF0aW9uIGJyZWFrLiAqKVxubGV0IHBwX3ByaW50X3RicmVhayBzdGF0ZSB3aWR0aCBvZmZzZXQgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgc2l6ZSA9IFNpemUub2ZfaW50ICgtIHN0YXRlLnBwX3JpZ2h0X3RvdGFsKSBpblxuICAgIGxldCBlbGVtID0geyBzaXplOyB0b2tlbiA9IFBwX3RicmVhayAod2lkdGgsIG9mZnNldCk7IGxlbmd0aCA9IHdpZHRoIH0gaW5cbiAgICBzY2FuX3B1c2ggc3RhdGUgdHJ1ZSBlbGVtXG5cblxubGV0IHBwX3ByaW50X3RhYiBzdGF0ZSAoKSA9IHBwX3ByaW50X3RicmVhayBzdGF0ZSAwIDBcblxubGV0IHBwX3NldF90YWIgc3RhdGUgKCkgPVxuICBpZiBzdGF0ZS5wcF9jdXJyX2RlcHRoIDwgc3RhdGUucHBfbWF4X2JveGVzIHRoZW5cbiAgICBsZXQgZWxlbSA9IHsgc2l6ZSA9IFNpemUuemVybzsgdG9rZW4gPSBQcF9zdGFiOyBsZW5ndGggPSAwIH0gaW5cbiAgICBlbnF1ZXVlX2FkdmFuY2Ugc3RhdGUgZWxlbVxuXG5cbigqXG5cbiAgUHJvY2VkdXJlcyB0byBjb250cm9sIHRoZSBwcmV0dHktcHJpbnRlcnNcblxuKilcblxuKCogU2V0X21heF9ib3hlcy4gKilcbmxldCBwcF9zZXRfbWF4X2JveGVzIHN0YXRlIG4gPSBpZiBuID4gMSB0aGVuIHN0YXRlLnBwX21heF9ib3hlcyA8LSBuXG5cbigqIFRvIGtub3cgdGhlIGN1cnJlbnQgbWF4aW11bSBudW1iZXIgb2YgYm94ZXMgYWxsb3dlZC4gKilcbmxldCBwcF9nZXRfbWF4X2JveGVzIHN0YXRlICgpID0gc3RhdGUucHBfbWF4X2JveGVzXG5cbmxldCBwcF9vdmVyX21heF9ib3hlcyBzdGF0ZSAoKSA9IHN0YXRlLnBwX2N1cnJfZGVwdGggPSBzdGF0ZS5wcF9tYXhfYm94ZXNcblxuKCogRWxsaXBzaXMuICopXG5sZXQgcHBfc2V0X2VsbGlwc2lzX3RleHQgc3RhdGUgcyA9IHN0YXRlLnBwX2VsbGlwc2lzIDwtIHNcbmFuZCBwcF9nZXRfZWxsaXBzaXNfdGV4dCBzdGF0ZSAoKSA9IHN0YXRlLnBwX2VsbGlwc2lzXG5cblxuKCogVG8gc2V0IHRoZSBtYXJnaW4gb2YgcHJldHR5LXByaW50ZXIuICopXG5sZXQgcHBfbGltaXQgbiA9XG4gIGlmIG4gPCBwcF9pbmZpbml0eSB0aGVuIG4gZWxzZSBwcmVkIHBwX2luZmluaXR5XG5cblxuKCogSW50ZXJuYWwgcHJldHR5LXByaW50ZXIgZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9taW5fc3BhY2VfbGVmdCBzdGF0ZSBuID1cbiAgaWYgbiA+PSAxIHRoZW5cbiAgICBsZXQgbiA9IHBwX2xpbWl0IG4gaW5cbiAgICBzdGF0ZS5wcF9taW5fc3BhY2VfbGVmdCA8LSBuO1xuICAgIHN0YXRlLnBwX21heF9pbmRlbnQgPC0gc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfcmluaXQgc3RhdGVcblxuXG4oKiBJbml0aWFsbHksIHdlIGhhdmUgOlxuICAgcHBfbWF4X2luZGVudCA9IHBwX21hcmdpbiAtIHBwX21pbl9zcGFjZV9sZWZ0LCBhbmRcbiAgIHBwX3NwYWNlX2xlZnQgPSBwcF9tYXJnaW4uICopXG5sZXQgcHBfc2V0X21heF9pbmRlbnQgc3RhdGUgbiA9XG4gIGlmIG4gPiAxIHRoZW5cbiAgICBwcF9zZXRfbWluX3NwYWNlX2xlZnQgc3RhdGUgKHN0YXRlLnBwX21hcmdpbiAtIG4pXG5cblxubGV0IHBwX2dldF9tYXhfaW5kZW50IHN0YXRlICgpID0gc3RhdGUucHBfbWF4X2luZGVudFxuXG5sZXQgcHBfc2V0X21hcmdpbiBzdGF0ZSBuID1cbiAgaWYgbiA+PSAxIHRoZW5cbiAgICBsZXQgbiA9IHBwX2xpbWl0IG4gaW5cbiAgICBzdGF0ZS5wcF9tYXJnaW4gPC0gbjtcbiAgICBsZXQgbmV3X21heF9pbmRlbnQgPVxuICAgICAgKCogVHJ5IHRvIG1haW50YWluIG1heF9pbmRlbnQgdG8gaXRzIGFjdHVhbCB2YWx1ZS4gKilcbiAgICAgIGlmIHN0YXRlLnBwX21heF9pbmRlbnQgPD0gc3RhdGUucHBfbWFyZ2luXG4gICAgICB0aGVuIHN0YXRlLnBwX21heF9pbmRlbnQgZWxzZVxuICAgICAgKCogSWYgcG9zc2libGUgbWFpbnRhaW4gcHBfbWluX3NwYWNlX2xlZnQgdG8gaXRzIGFjdHVhbCB2YWx1ZSxcbiAgICAgICAgIGlmIHRoaXMgbGVhZHMgdG8gYSB0b28gc21hbGwgbWF4X2luZGVudCwgdGFrZSBoYWxmIG9mIHRoZVxuICAgICAgICAgbmV3IG1hcmdpbiwgaWYgaXQgaXMgZ3JlYXRlciB0aGFuIDEuICopXG4gICAgICAgSW50Lm1heCAoSW50Lm1heCAoc3RhdGUucHBfbWFyZ2luIC0gc3RhdGUucHBfbWluX3NwYWNlX2xlZnQpXG4gICAgICAgICAgICAgICAgKHN0YXRlLnBwX21hcmdpbiAvIDIpKSAxIGluXG4gICAgKCogUmVidWlsZCBpbnZhcmlhbnRzLiAqKVxuICAgIHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG5ld19tYXhfaW5kZW50XG5cblxuKCoqIEdlb21ldHJ5IGZ1bmN0aW9ucyBhbmQgdHlwZXMgKilcbnR5cGUgZ2VvbWV0cnkgPSB7IG1heF9pbmRlbnQ6aW50OyBtYXJnaW46IGludH1cblxubGV0IHZhbGlkYXRlX2dlb21ldHJ5IHttYXJnaW47IG1heF9pbmRlbnR9ID1cbiAgaWYgbWF4X2luZGVudCA8IDIgdGhlblxuICAgIEVycm9yIFwibWF4X2luZGVudCA8IDJcIlxuICBlbHNlIGlmIG1hcmdpbiA8PSBtYXhfaW5kZW50IHRoZW5cbiAgICBFcnJvciBcIm1hcmdpbiA8PSBtYXhfaW5kZW50XCJcbiAgZWxzZSBPayAoKVxuXG5sZXQgY2hlY2tfZ2VvbWV0cnkgZ2VvbWV0cnkgPVxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgT2sgKCkgLT4gdHJ1ZVxuICB8IEVycm9yIF8gLT4gZmFsc2VcblxubGV0IHBwX2dldF9tYXJnaW4gc3RhdGUgKCkgPSBzdGF0ZS5wcF9tYXJnaW5cblxubGV0IHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIHttYXJnaW47IG1heF9pbmRlbnR9ID1cbiAgcHBfc2V0X21hcmdpbiBzdGF0ZSBtYXJnaW47XG4gIHBwX3NldF9tYXhfaW5kZW50IHN0YXRlIG1heF9pbmRlbnQ7XG4gICgpXG5cbmxldCBwcF9zZXRfZ2VvbWV0cnkgc3RhdGUgfm1heF9pbmRlbnQgfm1hcmdpbiA9XG4gIGxldCBnZW9tZXRyeSA9IHsgbWF4X2luZGVudDsgbWFyZ2luIH0gaW5cbiAgbWF0Y2ggdmFsaWRhdGVfZ2VvbWV0cnkgZ2VvbWV0cnkgd2l0aFxuICB8IEVycm9yIG1zZyAtPlxuICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcIkZvcm1hdC5wcF9zZXRfZ2VvbWV0cnk6IFwiIF4gbXNnKSlcbiAgfCBPayAoKSAtPlxuICAgIHBwX3NldF9mdWxsX2dlb21ldHJ5IHN0YXRlIGdlb21ldHJ5XG5cbmxldCBwcF9zYWZlX3NldF9nZW9tZXRyeSBzdGF0ZSB+bWF4X2luZGVudCB+bWFyZ2luID1cbiAgbGV0IGdlb21ldHJ5ID0geyBtYXhfaW5kZW50OyBtYXJnaW4gfSBpblxuICBtYXRjaCB2YWxpZGF0ZV9nZW9tZXRyeSBnZW9tZXRyeSB3aXRoXG4gIHwgRXJyb3IgX21zZyAtPlxuICAgICAoKVxuICB8IE9rICgpIC0+XG4gICAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgZ2VvbWV0cnlcblxubGV0IHBwX2dldF9nZW9tZXRyeSBzdGF0ZSAoKSA9XG4gIHsgbWFyZ2luID0gcHBfZ2V0X21hcmdpbiBzdGF0ZSAoKTsgbWF4X2luZGVudCA9IHBwX2dldF9tYXhfaW5kZW50IHN0YXRlICgpIH1cblxubGV0IHBwX3VwZGF0ZV9nZW9tZXRyeSBzdGF0ZSB1cGRhdGUgPVxuICBsZXQgZ2VvbWV0cnkgPSBwcF9nZXRfZ2VvbWV0cnkgc3RhdGUgKCkgaW5cbiAgcHBfc2V0X2Z1bGxfZ2VvbWV0cnkgc3RhdGUgKHVwZGF0ZSBnZW9tZXRyeSlcblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBvdXRwdXQgZnVuY3Rpb25zLiAqKVxubGV0IHBwX3NldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGF0ZSB7XG4gICAgICBvdXRfc3RyaW5nID0gZjtcbiAgICAgIG91dF9mbHVzaCA9IGc7XG4gICAgICBvdXRfbmV3bGluZSA9IGg7XG4gICAgICBvdXRfc3BhY2VzID0gaTtcbiAgICAgIG91dF9pbmRlbnQgPSBqO1xuICAgIH0gPVxuICBzdGF0ZS5wcF9vdXRfc3RyaW5nIDwtIGY7XG4gIHN0YXRlLnBwX291dF9mbHVzaCA8LSBnO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBoO1xuICBzdGF0ZS5wcF9vdXRfc3BhY2VzIDwtIGk7XG4gIHN0YXRlLnBwX291dF9pbmRlbnQgPC0galxuXG5sZXQgcHBfZ2V0X2Zvcm1hdHRlcl9vdXRfZnVuY3Rpb25zIHN0YXRlICgpID0ge1xuICBvdXRfc3RyaW5nID0gc3RhdGUucHBfb3V0X3N0cmluZztcbiAgb3V0X2ZsdXNoID0gc3RhdGUucHBfb3V0X2ZsdXNoO1xuICBvdXRfbmV3bGluZSA9IHN0YXRlLnBwX291dF9uZXdsaW5lO1xuICBvdXRfc3BhY2VzID0gc3RhdGUucHBfb3V0X3NwYWNlcztcbiAgb3V0X2luZGVudCA9IHN0YXRlLnBwX291dF9pbmRlbnQ7XG59XG5cblxuKCogU2V0dGluZyBhIGZvcm1hdHRlciBiYXNpYyBzdHJpbmcgb3V0cHV0IGFuZCBmbHVzaCBmdW5jdGlvbnMuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlIGYgZyA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gZjsgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIGdcblxubGV0IHBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGF0ZSAoKSA9XG4gIChzdGF0ZS5wcF9vdXRfc3RyaW5nLCBzdGF0ZS5wcF9vdXRfZmx1c2gpXG5cblxuKCogVGhlIGRlZmF1bHQgZnVuY3Rpb24gdG8gb3V0cHV0IG5ldyBsaW5lcy4gKilcbmxldCBkaXNwbGF5X25ld2xpbmUgc3RhdGUgKCkgPSBzdGF0ZS5wcF9vdXRfc3RyaW5nIFwiXFxuXCIgMCAgMVxuXG4oKiBUaGUgZGVmYXVsdCBmdW5jdGlvbiB0byBvdXRwdXQgc3BhY2VzLiAqKVxubGV0IGJsYW5rX2xpbmUgPSBTdHJpbmcubWFrZSA4MCAnICdcbmxldCByZWMgZGlzcGxheV9ibGFua3Mgc3RhdGUgbiA9XG4gIGlmIG4gPiAwIHRoZW5cbiAgaWYgbiA8PSA4MCB0aGVuIHN0YXRlLnBwX291dF9zdHJpbmcgYmxhbmtfbGluZSAwIG4gZWxzZVxuICBiZWdpblxuICAgIHN0YXRlLnBwX291dF9zdHJpbmcgYmxhbmtfbGluZSAwIDgwO1xuICAgIGRpc3BsYXlfYmxhbmtzIHN0YXRlIChuIC0gODApXG4gIGVuZFxuXG5cbigqIFRoZSBkZWZhdWx0IGZ1bmN0aW9uIHRvIG91dHB1dCBpbmRlbnRhdGlvbiBvZiBuZXcgbGluZXMuICopXG5sZXQgZGlzcGxheV9pbmRlbnQgPSBkaXNwbGF5X2JsYW5rc1xuXG4oKiBTZXR0aW5nIGEgZm9ybWF0dGVyIGJhc2ljIG91dHB1dCBmdW5jdGlvbnMgYXMgcHJpbnRpbmcgdG8gYSBnaXZlblxuICAgW1BlcnZhc2l2ZS5vdXRfY2hhbm5lbF0gdmFsdWUuICopXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCBzdGF0ZSBvYyA9XG4gIHN0YXRlLnBwX291dF9zdHJpbmcgPC0gb3V0cHV0X3N1YnN0cmluZyBvYztcbiAgc3RhdGUucHBfb3V0X2ZsdXNoIDwtIChmdW4gKCkgLT4gZmx1c2ggb2MpO1xuICBzdGF0ZS5wcF9vdXRfbmV3bGluZSA8LSBkaXNwbGF5X25ld2xpbmUgc3RhdGU7XG4gIHN0YXRlLnBwX291dF9zcGFjZXMgPC0gZGlzcGxheV9ibGFua3Mgc3RhdGU7XG4gIHN0YXRlLnBwX291dF9pbmRlbnQgPC0gZGlzcGxheV9pbmRlbnQgc3RhdGVcblxuKCpcblxuICBEZWZpbmluZyBzcGVjaWZpYyBmb3JtYXR0ZXJzXG5cbiopXG5cbmxldCBkZWZhdWx0X3BwX21hcmtfb3Blbl90YWcgPSBmdW5jdGlvblxuICB8IFN0cmluZ190YWcgcyAtPiBcIjxcIiBeIHMgXiBcIj5cIlxuICB8IF8gLT4gXCJcIlxubGV0IGRlZmF1bHRfcHBfbWFya19jbG9zZV90YWcgPSBmdW5jdGlvblxuICB8IFN0cmluZ190YWcgcyAtPiBcIjwvXCIgXiBzIF4gXCI+XCJcbiAgfCBfIC0+IFwiXCJcblxubGV0IGRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWcgPSBpZ25vcmVcbmxldCBkZWZhdWx0X3BwX3ByaW50X2Nsb3NlX3RhZyA9IGlnbm9yZVxuXG4oKiBCdWlsZGluZyBhIGZvcm1hdHRlciBnaXZlbiBpdHMgYmFzaWMgb3V0cHV0IGZ1bmN0aW9ucy5cbiAgIE90aGVyIGZpZWxkcyBnZXQgcmVhc29uYWJsZSBkZWZhdWx0IHZhbHVlcy4gKilcbmxldCBwcF9tYWtlX2Zvcm1hdHRlciBmIGcgaCBpIGogPVxuICAoKiBUaGUgaW5pdGlhbCBzdGF0ZSBvZiB0aGUgZm9ybWF0dGVyIGNvbnRhaW5zIGEgZHVtbXkgYm94LiAqKVxuICBsZXQgcHBfcXVldWUgPSBRdWV1ZS5jcmVhdGUgKCkgaW5cbiAgbGV0IHN5c190b2sgPVxuICAgIHsgc2l6ZSA9IFNpemUudW5rbm93bjsgdG9rZW4gPSBQcF9iZWdpbiAoMCwgUHBfaG92Ym94KTsgbGVuZ3RoID0gMCB9IGluXG4gIFF1ZXVlLmFkZCBzeXNfdG9rIHBwX3F1ZXVlO1xuICBsZXQgc2Nhbl9zdGFjayA9IFN0YWNrLmNyZWF0ZSAoKSBpblxuICBpbml0aWFsaXplX3NjYW5fc3RhY2sgc2Nhbl9zdGFjaztcbiAgU3RhY2sucHVzaCB7IGxlZnRfdG90YWwgPSAxOyBxdWV1ZV9lbGVtID0gc3lzX3RvayB9IHNjYW5fc3RhY2s7XG4gIGxldCBwcF9tYXJnaW4gPSA3OFxuICBhbmQgcHBfbWluX3NwYWNlX2xlZnQgPSAxMCBpblxuICB7XG4gICAgcHBfc2Nhbl9zdGFjayA9IHNjYW5fc3RhY2s7XG4gICAgcHBfZm9ybWF0X3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX3Rib3hfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfdGFnX3N0YWNrID0gU3RhY2suY3JlYXRlICgpO1xuICAgIHBwX21hcmtfc3RhY2sgPSBTdGFjay5jcmVhdGUgKCk7XG4gICAgcHBfbWFyZ2luID0gcHBfbWFyZ2luO1xuICAgIHBwX21pbl9zcGFjZV9sZWZ0ID0gcHBfbWluX3NwYWNlX2xlZnQ7XG4gICAgcHBfbWF4X2luZGVudCA9IHBwX21hcmdpbiAtIHBwX21pbl9zcGFjZV9sZWZ0O1xuICAgIHBwX3NwYWNlX2xlZnQgPSBwcF9tYXJnaW47XG4gICAgcHBfY3VycmVudF9pbmRlbnQgPSAwO1xuICAgIHBwX2lzX25ld19saW5lID0gdHJ1ZTtcbiAgICBwcF9sZWZ0X3RvdGFsID0gMTtcbiAgICBwcF9yaWdodF90b3RhbCA9IDE7XG4gICAgcHBfY3Vycl9kZXB0aCA9IDE7XG4gICAgcHBfbWF4X2JveGVzID0gbWF4X2ludDtcbiAgICBwcF9lbGxpcHNpcyA9IFwiLlwiO1xuICAgIHBwX291dF9zdHJpbmcgPSBmO1xuICAgIHBwX291dF9mbHVzaCA9IGc7XG4gICAgcHBfb3V0X25ld2xpbmUgPSBoO1xuICAgIHBwX291dF9zcGFjZXMgPSBpO1xuICAgIHBwX291dF9pbmRlbnQgPSBqO1xuICAgIHBwX3ByaW50X3RhZ3MgPSBmYWxzZTtcbiAgICBwcF9tYXJrX3RhZ3MgPSBmYWxzZTtcbiAgICBwcF9tYXJrX29wZW5fdGFnID0gZGVmYXVsdF9wcF9tYXJrX29wZW5fdGFnO1xuICAgIHBwX21hcmtfY2xvc2VfdGFnID0gZGVmYXVsdF9wcF9tYXJrX2Nsb3NlX3RhZztcbiAgICBwcF9wcmludF9vcGVuX3RhZyA9IGRlZmF1bHRfcHBfcHJpbnRfb3Blbl90YWc7XG4gICAgcHBfcHJpbnRfY2xvc2VfdGFnID0gZGVmYXVsdF9wcF9wcmludF9jbG9zZV90YWc7XG4gICAgcHBfcXVldWUgPSBwcF9xdWV1ZTtcbiAgfVxuXG5cbigqIEJ1aWxkIGEgZm9ybWF0dGVyIG91dCBvZiBpdHMgb3V0IGZ1bmN0aW9ucy4gKilcbmxldCBmb3JtYXR0ZXJfb2Zfb3V0X2Z1bmN0aW9ucyBvdXRfZnVucyA9XG4gIHBwX21ha2VfZm9ybWF0dGVyXG4gICAgb3V0X2Z1bnMub3V0X3N0cmluZ1xuICAgIG91dF9mdW5zLm91dF9mbHVzaFxuICAgIG91dF9mdW5zLm91dF9uZXdsaW5lXG4gICAgb3V0X2Z1bnMub3V0X3NwYWNlc1xuICAgIG91dF9mdW5zLm91dF9pbmRlbnRcblxuXG4oKiBNYWtlIGEgZm9ybWF0dGVyIHdpdGggZGVmYXVsdCBmdW5jdGlvbnMgdG8gb3V0cHV0IHNwYWNlcyxcbiAgaW5kZW50YXRpb24sIGFuZCBuZXcgbGluZXMuICopXG5sZXQgbWFrZV9mb3JtYXR0ZXIgb3V0cHV0IGZsdXNoID1cbiAgbGV0IHBwZiA9IHBwX21ha2VfZm9ybWF0dGVyIG91dHB1dCBmbHVzaCBpZ25vcmUgaWdub3JlIGlnbm9yZSBpblxuICBwcGYucHBfb3V0X25ld2xpbmUgPC0gZGlzcGxheV9uZXdsaW5lIHBwZjtcbiAgcHBmLnBwX291dF9zcGFjZXMgPC0gZGlzcGxheV9ibGFua3MgcHBmO1xuICBwcGYucHBfb3V0X2luZGVudCA8LSBkaXNwbGF5X2luZGVudCBwcGY7XG4gIHBwZlxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd3JpdGluZyB0byBhIGdpdmVuIFtQZXJ2YXNpdmUub3V0X2NoYW5uZWxdIHZhbHVlLiAqKVxubGV0IGZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyA9XG4gIG1ha2VfZm9ybWF0dGVyIChvdXRwdXRfc3Vic3RyaW5nIG9jKSAoZnVuICgpIC0+IGZsdXNoIG9jKVxuXG5cbigqIE1ha2UgYSBmb3JtYXR0ZXIgd3JpdGluZyB0byBhIGdpdmVuIFtCdWZmZXIudF0gdmFsdWUuICopXG5sZXQgZm9ybWF0dGVyX29mX2J1ZmZlciBiID1cbiAgbWFrZV9mb3JtYXR0ZXIgKEJ1ZmZlci5hZGRfc3Vic3RyaW5nIGIpIGlnbm9yZVxuXG5cbigqIEFsbG9jYXRpbmcgYnVmZmVyIGZvciBwcmV0dHktcHJpbnRpbmcgcHVycG9zZXMuXG4gICBEZWZhdWx0IGJ1ZmZlciBzaXplIGlzIHBwX2J1ZmZlcl9zaXplIG9yIDUxMi5cbiopXG5sZXQgcHBfYnVmZmVyX3NpemUgPSA1MTJcbmxldCBwcF9tYWtlX2J1ZmZlciAoKSA9IEJ1ZmZlci5jcmVhdGUgcHBfYnVmZmVyX3NpemVcblxuKCogVGhlIHN0YW5kYXJkIChzaGFyZWQpIGJ1ZmZlci4gKilcbmxldCBzdGRidWYgPSBwcF9tYWtlX2J1ZmZlciAoKVxuXG4oKiBQcmVkZWZpbmVkIGZvcm1hdHRlcnMgc3RhbmRhcmQgZm9ybWF0dGVyIHRvIHByaW50XG4gICB0byBbU3RkbGliLnN0ZG91dF0sIFtTdGRsaWIuc3RkZXJyXSwgYW5kIHshc3RkYnVmfS4gKilcbmxldCBzdGRfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX291dF9jaGFubmVsIFN0ZGxpYi5zdGRvdXRcbmFuZCBlcnJfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX291dF9jaGFubmVsIFN0ZGxpYi5zdGRlcnJcbmFuZCBzdHJfZm9ybWF0dGVyID0gZm9ybWF0dGVyX29mX2J1ZmZlciBzdGRidWZcblxuXG4oKiBbZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBidWYgcHBmXSBmbHVzaGVzIGZvcm1hdHRlciBbcHBmXSxcbiAgIHRoZW4gcmV0dXJucyB0aGUgY29udGVudHMgb2YgYnVmZmVyIFtidWZdIHRoYXQgaXMgcmVzZXQuXG4gICBGb3JtYXR0ZXIgW3BwZl0gaXMgc3VwcG9zZWQgdG8gcHJpbnQgdG8gYnVmZmVyIFtidWZdLCBvdGhlcndpc2UgdGhpc1xuICAgZnVuY3Rpb24gaXMgbm90IHJlYWxseSB1c2VmdWwuICopXG5sZXQgZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBidWYgcHBmID1cbiAgcHBfZmx1c2hfcXVldWUgcHBmIGZhbHNlO1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBidWYgaW5cbiAgQnVmZmVyLnJlc2V0IGJ1ZjtcbiAgc1xuXG5cbigqIEZsdXNoIFtzdHJfZm9ybWF0dGVyXSBhbmQgZ2V0IHRoZSBjb250ZW50cyBvZiBbc3RkYnVmXS4gKilcbmxldCBmbHVzaF9zdHJfZm9ybWF0dGVyICgpID0gZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBzdGRidWYgc3RyX2Zvcm1hdHRlclxuXG4oKlxuICBTeW1ib2xpYyBwcmV0dHktcHJpbnRpbmdcbiopXG5cbigqXG4gIFN5bWJvbGljIHByZXR0eS1wcmludGluZyBpcyBwcmV0dHktcHJpbnRpbmcgd2l0aCBubyBsb3cgbGV2ZWwgb3V0cHV0LlxuXG4gIFdoZW4gdXNpbmcgYSBzeW1ib2xpYyBmb3JtYXR0ZXIsIGFsbCByZWd1bGFyIHByZXR0eS1wcmludGluZyBhY3Rpdml0aWVzXG4gIG9jY3VyIGJ1dCBvdXRwdXQgbWF0ZXJpYWwgaXMgc3ltYm9saWMgYW5kIHN0b3JlZCBpbiBhIGJ1ZmZlciBvZiBvdXRwdXRcbiAgaXRlbXMuIEF0IHRoZSBlbmQgb2YgcHJldHR5LXByaW50aW5nLCBmbHVzaGluZyB0aGUgb3V0cHV0IGJ1ZmZlciBhbGxvd3NcbiAgcG9zdC1wcm9jZXNzaW5nIG9mIHN5bWJvbGljIG91dHB1dCBiZWZvcmUgbG93IGxldmVsIG91dHB1dCBvcGVyYXRpb25zLlxuKilcblxudHlwZSBzeW1ib2xpY19vdXRwdXRfaXRlbSA9XG4gIHwgT3V0cHV0X2ZsdXNoXG4gIHwgT3V0cHV0X25ld2xpbmVcbiAgfCBPdXRwdXRfc3RyaW5nIG9mIHN0cmluZ1xuICB8IE91dHB1dF9zcGFjZXMgb2YgaW50XG4gIHwgT3V0cHV0X2luZGVudCBvZiBpbnRcblxudHlwZSBzeW1ib2xpY19vdXRwdXRfYnVmZmVyID0ge1xuICBtdXRhYmxlIHN5bWJvbGljX291dHB1dF9jb250ZW50cyA6IHN5bWJvbGljX291dHB1dF9pdGVtIGxpc3Q7XG59XG5cbmxldCBtYWtlX3N5bWJvbGljX291dHB1dF9idWZmZXIgKCkgPVxuICB7IHN5bWJvbGljX291dHB1dF9jb250ZW50cyA9IFtdIH1cblxubGV0IGNsZWFyX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50cyA8LSBbXVxuXG5sZXQgZ2V0X3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgTGlzdC5yZXYgc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50c1xuXG5sZXQgZmx1c2hfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgPVxuICBsZXQgaXRlbXMgPSBnZXRfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2IgaW5cbiAgY2xlYXJfc3ltYm9saWNfb3V0cHV0X2J1ZmZlciBzb2I7XG4gIGl0ZW1zXG5cbmxldCBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIGl0ZW0gPVxuICBzb2Iuc3ltYm9saWNfb3V0cHV0X2NvbnRlbnRzIDwtIGl0ZW0gOjogc29iLnN5bWJvbGljX291dHB1dF9jb250ZW50c1xuXG5sZXQgZm9ybWF0dGVyX29mX3N5bWJvbGljX291dHB1dF9idWZmZXIgc29iID1cbiAgbGV0IHN5bWJvbGljX2ZsdXNoIHNvYiAoKSA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiBPdXRwdXRfZmx1c2hcbiAgYW5kIHN5bWJvbGljX25ld2xpbmUgc29iICgpID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIE91dHB1dF9uZXdsaW5lXG4gIGFuZCBzeW1ib2xpY19zdHJpbmcgc29iIHMgaSBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfc3RyaW5nIChTdHJpbmcuc3ViIHMgaSBuKSlcbiAgYW5kIHN5bWJvbGljX3NwYWNlcyBzb2IgbiA9XG4gICAgYWRkX3N5bWJvbGljX291dHB1dF9pdGVtIHNvYiAoT3V0cHV0X3NwYWNlcyBuKVxuICBhbmQgc3ltYm9saWNfaW5kZW50IHNvYiBuID1cbiAgICBhZGRfc3ltYm9saWNfb3V0cHV0X2l0ZW0gc29iIChPdXRwdXRfaW5kZW50IG4pIGluXG5cbiAgbGV0IGYgPSBzeW1ib2xpY19zdHJpbmcgc29iXG4gIGFuZCBnID0gc3ltYm9saWNfZmx1c2ggc29iXG4gIGFuZCBoID0gc3ltYm9saWNfbmV3bGluZSBzb2JcbiAgYW5kIGkgPSBzeW1ib2xpY19zcGFjZXMgc29iXG4gIGFuZCBqID0gc3ltYm9saWNfaW5kZW50IHNvYiBpblxuICBwcF9tYWtlX2Zvcm1hdHRlciBmIGcgaCBpIGpcblxuKCpcblxuICBCYXNpYyBmdW5jdGlvbnMgb24gdGhlICdzdGFuZGFyZCcgZm9ybWF0dGVyXG4gICh0aGUgZm9ybWF0dGVyIHRoYXQgcHJpbnRzIHRvIFtTdGRsaWIuc3Rkb3V0XSkuXG5cbiopXG5cbmxldCBvcGVuX2hib3ggPSBwcF9vcGVuX2hib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fdmJveCA9IHBwX29wZW5fdmJveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl9odmJveCA9IHBwX29wZW5faHZib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5faG92Ym94ID0gcHBfb3Blbl9ob3Zib3ggc3RkX2Zvcm1hdHRlclxuYW5kIG9wZW5fYm94ID0gcHBfb3Blbl9ib3ggc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX2JveCA9IHBwX2Nsb3NlX2JveCBzdGRfZm9ybWF0dGVyXG5hbmQgb3Blbl90YWcgPSBwcF9vcGVuX3RhZyBzdGRfZm9ybWF0dGVyXG5hbmQgY2xvc2VfdGFnID0gcHBfY2xvc2VfdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBvcGVuX3N0YWcgPSBwcF9vcGVuX3N0YWcgc3RkX2Zvcm1hdHRlclxuYW5kIGNsb3NlX3N0YWcgPSBwcF9jbG9zZV9zdGFnIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9hcyA9IHBwX3ByaW50X2FzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9zdHJpbmcgPSBwcF9wcmludF9zdHJpbmcgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2J5dGVzID0gcHBfcHJpbnRfYnl0ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2ludCA9IHBwX3ByaW50X2ludCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfZmxvYXQgPSBwcF9wcmludF9mbG9hdCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfY2hhciA9IHBwX3ByaW50X2NoYXIgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X2Jvb2wgPSBwcF9wcmludF9ib29sIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9icmVhayA9IHBwX3ByaW50X2JyZWFrIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9jdXQgPSBwcF9wcmludF9jdXQgc3RkX2Zvcm1hdHRlclxuYW5kIHByaW50X3NwYWNlID0gcHBfcHJpbnRfc3BhY2Ugc3RkX2Zvcm1hdHRlclxuYW5kIGZvcmNlX25ld2xpbmUgPSBwcF9mb3JjZV9uZXdsaW5lIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9mbHVzaCA9IHBwX3ByaW50X2ZsdXNoIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF9uZXdsaW5lID0gcHBfcHJpbnRfbmV3bGluZSBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfaWZfbmV3bGluZSA9IHBwX3ByaW50X2lmX25ld2xpbmUgc3RkX2Zvcm1hdHRlclxuXG5hbmQgb3Blbl90Ym94ID0gcHBfb3Blbl90Ym94IHN0ZF9mb3JtYXR0ZXJcbmFuZCBjbG9zZV90Ym94ID0gcHBfY2xvc2VfdGJveCBzdGRfZm9ybWF0dGVyXG5hbmQgcHJpbnRfdGJyZWFrID0gcHBfcHJpbnRfdGJyZWFrIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF90YWIgPSBwcF9zZXRfdGFiIHN0ZF9mb3JtYXR0ZXJcbmFuZCBwcmludF90YWIgPSBwcF9wcmludF90YWIgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X21hcmdpbiA9IHBwX3NldF9tYXJnaW4gc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXJnaW4gPSBwcF9nZXRfbWFyZ2luIHN0ZF9mb3JtYXR0ZXJcblxuYW5kIHNldF9tYXhfaW5kZW50ID0gcHBfc2V0X21heF9pbmRlbnQgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9tYXhfaW5kZW50ID0gcHBfZ2V0X21heF9pbmRlbnQgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2dlb21ldHJ5ID0gcHBfc2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCBzYWZlX3NldF9nZW9tZXRyeSA9IHBwX3NhZmVfc2V0X2dlb21ldHJ5IHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfZ2VvbWV0cnkgPSBwcF9nZXRfZ2VvbWV0cnkgc3RkX2Zvcm1hdHRlclxuYW5kIHVwZGF0ZV9nZW9tZXRyeSA9IHBwX3VwZGF0ZV9nZW9tZXRyeSBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfbWF4X2JveGVzID0gcHBfc2V0X21heF9ib3hlcyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X21heF9ib3hlcyA9IHBwX2dldF9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuYW5kIG92ZXJfbWF4X2JveGVzID0gcHBfb3Zlcl9tYXhfYm94ZXMgc3RkX2Zvcm1hdHRlclxuXG5hbmQgc2V0X2VsbGlwc2lzX3RleHQgPSBwcF9zZXRfZWxsaXBzaXNfdGV4dCBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2VsbGlwc2lzX3RleHQgPSBwcF9nZXRfZWxsaXBzaXNfdGV4dCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dF9jaGFubmVsID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRfY2hhbm5lbCBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9zZXRfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cbmFuZCBzZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl9zdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX2dldF9mb3JtYXR0ZXJfc3RhZ19mdW5jdGlvbnMgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF9wcmludF90YWdzID1cbiAgcHBfc2V0X3ByaW50X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIGdldF9wcmludF90YWdzID1cbiAgcHBfZ2V0X3ByaW50X3RhZ3Mgc3RkX2Zvcm1hdHRlclxuYW5kIHNldF9tYXJrX3RhZ3MgPVxuICBwcF9zZXRfbWFya190YWdzIHN0ZF9mb3JtYXR0ZXJcbmFuZCBnZXRfbWFya190YWdzID1cbiAgcHBfZ2V0X21hcmtfdGFncyBzdGRfZm9ybWF0dGVyXG5hbmQgc2V0X3RhZ3MgPVxuICBwcF9zZXRfdGFncyBzdGRfZm9ybWF0dGVyXG5cblxuKCogQ29udmVuaWVuY2UgZnVuY3Rpb25zICopXG5cbigqIFRvIGZvcm1hdCBhIGxpc3QgKilcbmxldCByZWMgcHBfcHJpbnRfbGlzdCA/KHBwX3NlcCA9IHBwX3ByaW50X2N1dCkgcHBfdiBwcGYgPSBmdW5jdGlvblxuICB8IFtdIC0+ICgpXG4gIHwgW3ZdIC0+IHBwX3YgcHBmIHZcbiAgfCB2IDo6IHZzIC0+XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9zZXAgcHBmICgpO1xuICAgIHBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcF92IHBwZiB2c1xuXG4oKiBUbyBmb3JtYXQgYSBzZXF1ZW5jZSAqKVxubGV0IHJlYyBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXEgPVxuICBtYXRjaCBzZXEgKCkgd2l0aFxuICB8IFNlcS5OaWwgLT4gKClcbiAgfCBTZXEuQ29ucyAodiwgc2VxKSAtPlxuICAgIHBwX3NlcCBwcGYgKCk7XG4gICAgcHBfdiBwcGYgdjtcbiAgICBwcF9wcmludF9zZXFfaW4gfnBwX3NlcCBwcF92IHBwZiBzZXFcblxubGV0IHBwX3ByaW50X3NlcSA/KHBwX3NlcCA9IHBwX3ByaW50X2N1dCkgcHBfdiBwcGYgc2VxID1cbiAgbWF0Y2ggc2VxICgpIHdpdGhcbiAgfCBTZXEuTmlsIC0+ICgpXG4gIHwgU2VxLkNvbnMgKHYsIHNlcSkgLT5cbiAgICBwcF92IHBwZiB2O1xuICAgIHBwX3ByaW50X3NlcV9pbiB+cHBfc2VwIHBwX3YgcHBmIHNlcVxuXG4oKiBUbyBmb3JtYXQgZnJlZS1mbG93aW5nIHRleHQgKilcbmxldCBwcF9wcmludF90ZXh0IHBwZiBzID1cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICBsZXQgbGVmdCA9IHJlZiAwIGluXG4gIGxldCByaWdodCA9IHJlZiAwIGluXG4gIGxldCBmbHVzaCAoKSA9XG4gICAgcHBfcHJpbnRfc3RyaW5nIHBwZiAoU3RyaW5nLnN1YiBzICFsZWZ0ICghcmlnaHQgLSAhbGVmdCkpO1xuICAgIGluY3IgcmlnaHQ7IGxlZnQgOj0gIXJpZ2h0O1xuICBpblxuICB3aGlsZSAoIXJpZ2h0IDw+IGxlbikgZG9cbiAgICBtYXRjaCBzLlshcmlnaHRdIHdpdGhcbiAgICAgIHwgJ1xcbicgLT5cbiAgICAgICAgZmx1c2ggKCk7XG4gICAgICAgIHBwX2ZvcmNlX25ld2xpbmUgcHBmICgpXG4gICAgICB8ICcgJyAtPlxuICAgICAgICBmbHVzaCAoKTsgcHBfcHJpbnRfc3BhY2UgcHBmICgpXG4gICAgICAoKiB0aGVyZSBpcyBubyBzcGVjaWZpYyBzdXBwb3J0IGZvciAnXFx0J1xuICAgICAgICAgYXMgaXQgaXMgdW5jbGVhciB3aGF0IGEgcmlnaHQgc2VtYW50aWNzIHdvdWxkIGJlICopXG4gICAgICB8IF8gLT4gaW5jciByaWdodFxuICBkb25lO1xuICBpZiAhbGVmdCA8PiBsZW4gdGhlbiBmbHVzaCAoKVxuXG5sZXQgcHBfcHJpbnRfb3B0aW9uID8obm9uZSA9IGZ1biBfICgpIC0+ICgpKSBwcF92IHBwZiA9IGZ1bmN0aW9uXG58IE5vbmUgLT4gbm9uZSBwcGYgKClcbnwgU29tZSB2IC0+IHBwX3YgcHBmIHZcblxubGV0IHBwX3ByaW50X3Jlc3VsdCB+b2sgfmVycm9yIHBwZiA9IGZ1bmN0aW9uXG58IE9rIHYgLT4gb2sgcHBmIHZcbnwgRXJyb3IgZSAtPiBlcnJvciBwcGYgZVxuXG5sZXQgcHBfcHJpbnRfZWl0aGVyIH5sZWZ0IH5yaWdodCBwcGYgPSBmdW5jdGlvblxufCBFaXRoZXIuTGVmdCBsIC0+IGxlZnQgcHBmIGxcbnwgRWl0aGVyLlJpZ2h0IHIgLT4gcmlnaHQgcHBmIHJcblxuICgqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubGV0IGNvbXB1dGVfdGFnIG91dHB1dCB0YWdfYWNjID1cbiAgbGV0IGJ1ZiA9IEJ1ZmZlci5jcmVhdGUgMTYgaW5cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYnVmIGluXG4gIG91dHB1dCBwcGYgdGFnX2FjYztcbiAgcHBfcHJpbnRfZmx1c2ggcHBmICgpO1xuICBsZXQgbGVuID0gQnVmZmVyLmxlbmd0aCBidWYgaW5cbiAgaWYgbGVuIDwgMiB0aGVuIEJ1ZmZlci5jb250ZW50cyBidWZcbiAgZWxzZSBCdWZmZXIuc3ViIGJ1ZiAxIChsZW4gLSAyKVxuXG4gKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgRGVmaW5pbmcgY29udGludWF0aW9ucyB0byBiZSBwYXNzZWQgYXMgYXJndW1lbnRzIG9mXG4gIENhbWxpbnRlcm5hbEZvcm1hdC5tYWtlX3ByaW50Zi5cblxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbigqIEludGVycHJldCBhIGZvcm1hdHRpbmcgZW50aXR5IG9uIGEgZm9ybWF0dGVyLiAqKVxubGV0IG91dHB1dF9mb3JtYXR0aW5nX2xpdCBwcGYgZm10aW5nX2xpdCA9IG1hdGNoIGZtdGluZ19saXQgd2l0aFxuICB8IENsb3NlX2JveCAgICAgICAgICAgICAgICAgLT4gcHBfY2xvc2VfYm94IHBwZiAoKVxuICB8IENsb3NlX3RhZyAgICAgICAgICAgICAgICAgLT4gcHBfY2xvc2VfdGFnIHBwZiAoKVxuICB8IEJyZWFrIChfLCB3aWR0aCwgb2Zmc2V0KSAgLT4gcHBfcHJpbnRfYnJlYWsgcHBmIHdpZHRoIG9mZnNldFxuICB8IEZGbHVzaCAgICAgICAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfZmx1c2ggcHBmICgpXG4gIHwgRm9yY2VfbmV3bGluZSAgICAgICAgICAgICAtPiBwcF9mb3JjZV9uZXdsaW5lIHBwZiAoKVxuICB8IEZsdXNoX25ld2xpbmUgICAgICAgICAgICAgLT4gcHBfcHJpbnRfbmV3bGluZSBwcGYgKClcbiAgfCBNYWdpY19zaXplIChfLCBfKSAgICAgICAgIC0+ICgpXG4gIHwgRXNjYXBlZF9hdCAgICAgICAgICAgICAgICAtPiBwcF9wcmludF9jaGFyIHBwZiAnQCdcbiAgfCBFc2NhcGVkX3BlcmNlbnQgICAgICAgICAgIC0+IHBwX3ByaW50X2NoYXIgcHBmICclJ1xuICB8IFNjYW5faW5kaWMgYyAgICAgICAgICAgICAgLT4gcHBfcHJpbnRfY2hhciBwcGYgJ0AnOyBwcF9wcmludF9jaGFyIHBwZiBjXG5cbigqIFJlY3Vyc2l2ZWx5IG91dHB1dCBhbiBcImFjY3VtdWxhdG9yXCIgY29udGFpbmluZyBhIHJldmVyc2VkIGxpc3Qgb2ZcbiAgIHByaW50aW5nIGVudGl0aWVzIChzdHJpbmcsIGNoYXIsIGZsdXMsIC4uLikgaW4gYW4gb3V0cHV0X3N0cmVhbS4gKilcbigqIERpZmZlciBmcm9tIFByaW50Zi5vdXRwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiBmb3JtYXR0aW5nLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuICopXG5sZXQgcmVjIG91dHB1dF9hY2MgcHBmIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKFN0cmluZy5tYWtlIDEgYyk7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmKSAtPlxuICAgIG91dHB1dF9hY2MgcHBmIHA7XG4gICAgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBwcF9vcGVuX3N0YWcgcHBmIChTdHJpbmdfdGFnIChjb21wdXRlX3RhZyBvdXRwdXRfYWNjIGFjYycpKVxuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgb3V0cHV0X2FjYyBwcGYgcDtcbiAgICBsZXQgKGluZGVudCwgYnR5KSA9IG9wZW5fYm94X29mX3N0cmluZyAoY29tcHV0ZV90YWcgb3V0cHV0X2FjYyBhY2MnKSBpblxuICAgIHBwX29wZW5fYm94X2dlbiBwcGYgaW5kZW50IGJ0eVxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gb3V0cHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2NoYXIgcHBmIGM7XG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IG91dHB1dF9hY2MgcHBmIHA7IGYgcHBmO1xuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBvdXRwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IG91dHB1dF9hY2MgcHBmIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCogUmVjdXJzaXZlbHkgb3V0cHV0IGFuIFwiYWNjdW11bGF0b3JcIiBjb250YWluaW5nIGEgcmV2ZXJzZWQgbGlzdCBvZlxuICAgcHJpbnRpbmcgZW50aXRpZXMgKHN0cmluZywgY2hhciwgZmx1cywgLi4uKSBpbiBhIGJ1ZmZlci4gKilcbigqIERpZmZlciBmcm9tIFByaW50Zi5idWZwdXRfYWNjIGJ5IHRoZSBpbnRlcnByZXRhdGlvbiBvZiBmb3JtYXR0aW5nLiAqKVxuKCogVXNlZCBhcyBhIGNvbnRpbnVhdGlvbiBvZiBDYW1saW50ZXJuYWxGb3JtYXQubWFrZV9wcmludGYuICopXG5sZXQgcmVjIHN0cnB1dF9hY2MgcHBmIGFjYyA9IG1hdGNoIGFjYyB3aXRoXG4gIHwgQWNjX3N0cmluZ19saXRlcmFsIChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKEFjY19mb3JtYXR0aW5nX2xpdCAocCwgTWFnaWNfc2l6ZSAoXywgc2l6ZSkpLCBzKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgcHBfcHJpbnRfYXNfc2l6ZSBwcGYgKFNpemUub2ZfaW50IHNpemUpIHM7XG4gIHwgQWNjX2NoYXJfbGl0ZXJhbCAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAoQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBNYWdpY19zaXplIChfLCBzaXplKSksIGMpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9wcmludF9hc19zaXplIHBwZiAoU2l6ZS5vZl9pbnQgc2l6ZSkgKFN0cmluZy5tYWtlIDEgYyk7XG4gIHwgQWNjX2RlbGF5IChBY2NfZm9ybWF0dGluZ19saXQgKHAsIE1hZ2ljX3NpemUgKF8sIHNpemUpKSwgZikgLT5cbiAgICBzdHJwdXRfYWNjIHBwZiBwO1xuICAgIHBwX3ByaW50X2FzX3NpemUgcHBmIChTaXplLm9mX2ludCBzaXplKSAoZiAoKSk7XG4gIHwgQWNjX2Zvcm1hdHRpbmdfbGl0IChwLCBmKSAtPlxuICAgIHN0cnB1dF9hY2MgcHBmIHA7XG4gICAgb3V0cHV0X2Zvcm1hdHRpbmdfbGl0IHBwZiBmO1xuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fdGFnIGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBwcF9vcGVuX3N0YWcgcHBmIChTdHJpbmdfdGFnIChjb21wdXRlX3RhZyBzdHJwdXRfYWNjIGFjYycpKVxuICB8IEFjY19mb3JtYXR0aW5nX2dlbiAocCwgQWNjX29wZW5fYm94IGFjYycpIC0+XG4gICAgc3RycHV0X2FjYyBwcGYgcDtcbiAgICBsZXQgKGluZGVudCwgYnR5KSA9IG9wZW5fYm94X29mX3N0cmluZyAoY29tcHV0ZV90YWcgc3RycHV0X2FjYyBhY2MnKSBpblxuICAgIHBwX29wZW5fYm94X2dlbiBwcGYgaW5kZW50IGJ0eVxuICB8IEFjY19zdHJpbmdfbGl0ZXJhbCAocCwgcylcbiAgfCBBY2NfZGF0YV9zdHJpbmcgKHAsIHMpICAgLT4gc3RycHV0X2FjYyBwcGYgcDsgcHBfcHJpbnRfc3RyaW5nIHBwZiBzO1xuICB8IEFjY19jaGFyX2xpdGVyYWwgKHAsIGMpXG4gIHwgQWNjX2RhdGFfY2hhciAocCwgYykgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X2NoYXIgcHBmIGM7XG4gIHwgQWNjX2RlbGF5IChwLCBmKSAgICAgICAgIC0+IHN0cnB1dF9hY2MgcHBmIHA7IHBwX3ByaW50X3N0cmluZyBwcGYgKGYgKCkpO1xuICB8IEFjY19mbHVzaCBwICAgICAgICAgICAgICAtPiBzdHJwdXRfYWNjIHBwZiBwOyBwcF9wcmludF9mbHVzaCBwcGYgKCk7XG4gIHwgQWNjX2ludmFsaWRfYXJnIChwLCBtc2cpIC0+IHN0cnB1dF9hY2MgcHBmIHA7IGludmFsaWRfYXJnIG1zZztcbiAgfCBFbmRfb2ZfYWNjICAgICAgICAgICAgICAgLT4gKClcblxuKCpcblxuICBEZWZpbmluZyBbZnByaW50Zl0gYW5kIHZhcmlvdXMgZmxhdm9ycyBvZiBbZnByaW50Zl0uXG5cbiopXG5cbmxldCBrZnByaW50ZiBrIHBwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmXG4gICAgKGZ1biBhY2MgLT4gb3V0cHV0X2FjYyBwcGYgYWNjOyBrIHBwZilcbiAgICBFbmRfb2ZfYWNjIGZtdFxuXG5hbmQgaWtmcHJpbnRmIGsgcHBmIChGb3JtYXQgKGZtdCwgXykpID1cbiAgbWFrZV9pcHJpbnRmIGsgcHBmIGZtdFxuXG5sZXQgaWZwcmludGYgX3BwZiAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfaXByaW50ZiBpZ25vcmUgKCkgZm10XG5cbmxldCBmcHJpbnRmIHBwZiA9IGtmcHJpbnRmIGlnbm9yZSBwcGZcbmxldCBwcmludGYgZm10ID0gZnByaW50ZiBzdGRfZm9ybWF0dGVyIGZtdFxubGV0IGVwcmludGYgZm10ID0gZnByaW50ZiBlcnJfZm9ybWF0dGVyIGZtdFxuXG5sZXQga2RwcmludGYgayAoRm9ybWF0IChmbXQsIF8pKSA9XG4gIG1ha2VfcHJpbnRmXG4gICAgKGZ1biBhY2MgLT4gayAoZnVuIHBwZiAtPiBvdXRwdXRfYWNjIHBwZiBhY2MpKVxuICAgIEVuZF9vZl9hY2MgZm10XG5cbmxldCBkcHJpbnRmIGZtdCA9IGtkcHJpbnRmIChmdW4gaSAtPiBpKSBmbXRcblxubGV0IGtzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYiA9IHBwX21ha2VfYnVmZmVyICgpIGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID1cbiAgICBzdHJwdXRfYWNjIHBwZiBhY2M7XG4gICAgayAoZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBiIHBwZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbmxldCBzcHJpbnRmIGZtdCA9IGtzcHJpbnRmIGlkIGZtdFxuXG5sZXQga2FzcHJpbnRmIGsgKEZvcm1hdCAoZm10LCBfKSkgPVxuICBsZXQgYiA9IHBwX21ha2VfYnVmZmVyICgpIGluXG4gIGxldCBwcGYgPSBmb3JtYXR0ZXJfb2ZfYnVmZmVyIGIgaW5cbiAgbGV0IGsgYWNjID1cbiAgICBvdXRwdXRfYWNjIHBwZiBhY2M7XG4gICAgayAoZmx1c2hfYnVmZmVyX2Zvcm1hdHRlciBiIHBwZikgaW5cbiAgbWFrZV9wcmludGYgayBFbmRfb2ZfYWNjIGZtdFxuXG5cbmxldCBhc3ByaW50ZiBmbXQgPSBrYXNwcmludGYgaWQgZm10XG5cbigqIEZsdXNoaW5nIHN0YW5kYXJkIGZvcm1hdHRlcnMgYXQgZW5kIG9mIGV4ZWN1dGlvbi4gKilcblxubGV0IGZsdXNoX3N0YW5kYXJkX2Zvcm1hdHRlcnMgKCkgPVxuICBwcF9wcmludF9mbHVzaCBzdGRfZm9ybWF0dGVyICgpO1xuICBwcF9wcmludF9mbHVzaCBlcnJfZm9ybWF0dGVyICgpXG5cbmxldCAoKSA9IGF0X2V4aXQgZmx1c2hfc3RhbmRhcmRfZm9ybWF0dGVyc1xuXG4oKlxuXG4gIERlcHJlY2F0ZWQgc3R1ZmYuXG5cbiopXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBwcF9zZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBwcF9zZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlXG4gICAgfm91dDpmIH5mbHVzaDpnIH5uZXdsaW5lOmggfnNwYWNlczppID1cbiAgcHBfc2V0X2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlIGYgZztcbiAgc3RhdGUucHBfb3V0X25ld2xpbmUgPC0gaDtcbiAgc3RhdGUucHBfb3V0X3NwYWNlcyA8LSBpXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBwcF9nZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0YXRlICgpID1cbiAgKHN0YXRlLnBwX291dF9zdHJpbmcsIHN0YXRlLnBwX291dF9mbHVzaCxcbiAgIHN0YXRlLnBwX291dF9uZXdsaW5lLCBzdGF0ZS5wcF9vdXRfc3BhY2VzKVxuXG5cbigqIERlcHJlY2F0ZWQgOiBzdWJzdW1lZCBieSBzZXRfZm9ybWF0dGVyX291dF9mdW5jdGlvbnMgKilcbmxldCBzZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zID1cbiAgcHBfc2V0X2FsbF9mb3JtYXR0ZXJfb3V0cHV0X2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5cblxuKCogRGVwcmVjYXRlZCA6IHN1YnN1bWVkIGJ5IGdldF9mb3JtYXR0ZXJfb3V0X2Z1bmN0aW9ucyAqKVxubGV0IGdldF9hbGxfZm9ybWF0dGVyX291dHB1dF9mdW5jdGlvbnMgPVxuICBwcF9nZXRfYWxsX2Zvcm1hdHRlcl9vdXRwdXRfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcblxuXG4oKiBEZXByZWNhdGVkIDogZXJyb3IgcHJvbmUgZnVuY3Rpb24sIGRvIG5vdCB1c2UgaXQuXG4gICBUaGlzIGZ1bmN0aW9uIGlzIG5laXRoZXIgY29tcG9zaXRpb25hbCBub3IgaW5jcmVtZW50YWwsIHNpbmNlIGl0IGZsdXNoZXNcbiAgIHRoZSBwcmV0dHktcHJpbnRlciBxdWV1ZSBhdCBlYWNoIGNhbGwuXG4gICBUbyBnZXQgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSwgZGVmaW5lIGEgZm9ybWF0dGVyIG9mIHlvdXIgb3duIHdyaXRpbmcgdG9cbiAgIHRoZSBidWZmZXIgYXJndW1lbnQsIGFzIGluXG4gICBsZXQgcHBmID0gZm9ybWF0dGVyX29mX2J1ZmZlciBiXG4gICB0aGVuIHVzZSB7IWZwcmludGYgcHBmfSBhcyB1c3VhbC4gKilcbmxldCBicHJpbnRmIGIgKEZvcm1hdCAoZm10LCBfKSA6ICgnYSwgZm9ybWF0dGVyLCB1bml0KSBmb3JtYXQpID1cbiAgbGV0IHBwZiA9IGZvcm1hdHRlcl9vZl9idWZmZXIgYiBpblxuICBsZXQgayBhY2MgPSBvdXRwdXRfYWNjIHBwZiBhY2M7IHBwX2ZsdXNoX3F1ZXVlIHBwZiBmYWxzZSBpblxuICBtYWtlX3ByaW50ZiBrIEVuZF9vZl9hY2MgZm10XG5cblxuKCogRGVwcmVjYXRlZCA6IGFsaWFzIGZvciBrc3ByaW50Zi4gKilcbmxldCBrcHJpbnRmID0ga3NwcmludGZcblxuXG5cbigqIERlcHJlY2F0ZWQgdGFnIGZ1bmN0aW9ucyAqKVxuXG50eXBlIGZvcm1hdHRlcl90YWdfZnVuY3Rpb25zID0ge1xuICBtYXJrX29wZW5fdGFnIDogdGFnIC0+IHN0cmluZztcbiAgbWFya19jbG9zZV90YWcgOiB0YWcgLT4gc3RyaW5nO1xuICBwcmludF9vcGVuX3RhZyA6IHRhZyAtPiB1bml0O1xuICBwcmludF9jbG9zZV90YWcgOiB0YWcgLT4gdW5pdDtcbn1cblxuXG5sZXQgcHBfc2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0YXRlIHtcbiAgICAgbWFya19vcGVuX3RhZyA9IG1vdDtcbiAgICAgbWFya19jbG9zZV90YWcgPSBtY3Q7XG4gICAgIHByaW50X29wZW5fdGFnID0gcG90O1xuICAgICBwcmludF9jbG9zZV90YWcgPSBwY3Q7XG4gICB9ID1cbiAgbGV0IHN0cmluZ2lmeSBmIGUgPSBmdW5jdGlvbiBTdHJpbmdfdGFnIHMgLT4gZiBzIHwgXyAtPiBlIGluXG4gIHN0YXRlLnBwX21hcmtfb3Blbl90YWcgPC0gc3RyaW5naWZ5IG1vdCBcIlwiO1xuICBzdGF0ZS5wcF9tYXJrX2Nsb3NlX3RhZyA8LSBzdHJpbmdpZnkgbWN0IFwiXCI7XG4gIHN0YXRlLnBwX3ByaW50X29wZW5fdGFnIDwtIHN0cmluZ2lmeSBwb3QgKCk7XG4gIHN0YXRlLnBwX3ByaW50X2Nsb3NlX3RhZyA8LSBzdHJpbmdpZnkgcGN0ICgpXG5cbmxldCBwcF9nZXRfZm9ybWF0dGVyX3RhZ19mdW5jdGlvbnMgZm10ICgpID1cbiAgbGV0IGZ1bnMgPSBwcF9nZXRfZm9ybWF0dGVyX3N0YWdfZnVuY3Rpb25zIGZtdCAoKSBpblxuICBsZXQgbWFya19vcGVuX3RhZyBzID0gZnVucy5tYXJrX29wZW5fc3RhZyAoU3RyaW5nX3RhZyBzKSBpblxuICBsZXQgbWFya19jbG9zZV90YWcgcyA9IGZ1bnMubWFya19jbG9zZV9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIGxldCBwcmludF9vcGVuX3RhZyBzID0gZnVucy5wcmludF9vcGVuX3N0YWcgKFN0cmluZ190YWcgcykgaW5cbiAgbGV0IHByaW50X2Nsb3NlX3RhZyBzID0gZnVucy5wcmludF9jbG9zZV9zdGFnIChTdHJpbmdfdGFnIHMpIGluXG4gIHttYXJrX29wZW5fdGFnOyBtYXJrX2Nsb3NlX3RhZzsgcHJpbnRfb3Blbl90YWc7IHByaW50X2Nsb3NlX3RhZ31cblxubGV0IHNldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyA9XG4gIHBwX3NldF9mb3JtYXR0ZXJfdGFnX2Z1bmN0aW9ucyBzdGRfZm9ybWF0dGVyXG5hbmQgZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zID1cbiAgcHBfZ2V0X2Zvcm1hdHRlcl90YWdfZnVuY3Rpb25zIHN0ZF9mb3JtYXR0ZXJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFBpZXJyZSBXZWlzLCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMDIgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxub3BlbiBDYW1saW50ZXJuYWxGb3JtYXRCYXNpY3Ncbm9wZW4gQ2FtbGludGVybmFsRm9ybWF0XG5cbigqIGFsaWFzIHRvIGF2b2lkIHdhcm5pbmcgZm9yIGFtYmlndWl0eSBiZXR3ZWVuXG4gICBTdGRsaWIuZm9ybWF0NlxuICAgYW5kIENhbWxpbnRlcm5hbEZvcm1hdEJhc2ljcy5mb3JtYXQ2XG5cbiAgICh0aGUgZm9ybWVyIGlzIGluIGZhY3QgYW4gYWxpYXMgZm9yIHRoZSBsYXR0ZXIsXG4gICAgYnV0IHRoZSBhbWJpZ3VpdHkgd2FybmluZyBkb2Vzbid0IGNhcmUpXG4qKVxudHlwZSAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiA9XG4gICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBTdGRsaWIuZm9ybWF0NlxuXG5cbigqIFRoZSBydW4tdGltZSBsaWJyYXJ5IGZvciBzY2FubmVycy4gKilcblxuKCogU2Nhbm5pbmcgYnVmZmVycy4gKilcbm1vZHVsZSB0eXBlIFNDQU5OSU5HID0gc2lnXG5cbiAgdHlwZSBpbl9jaGFubmVsXG5cbiAgdHlwZSBzY2FuYnVmID0gaW5fY2hhbm5lbFxuXG4gIHR5cGUgZmlsZV9uYW1lID0gc3RyaW5nXG5cbiAgdmFsIHN0ZGluIDogaW5fY2hhbm5lbFxuICAoKiBUaGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbSBbU3RkbGliLnN0ZGluXS5cbiAgICAgW3N0ZGliXSBpcyBlcXVpdmFsZW50IHRvIFtTY2FubmluZy5mcm9tX2NoYW5uZWwgU3RkbGliLnN0ZGluXS4gKilcblxuICB2YWwgc3RkaWIgOiBpbl9jaGFubmVsXG4gICgqIEFuIGFsaWFzIGZvciBbU2NhbmYuc3RkaW5dLCB0aGUgc2Nhbm5pbmcgYnVmZmVyIHJlYWRpbmcgZnJvbVxuICAgICBbU3RkbGliLnN0ZGluXS4gKilcblxuICB2YWwgbmV4dF9jaGFyIDogc2NhbmJ1ZiAtPiBjaGFyXG4gICgqIFtTY2FubmluZy5uZXh0X2NoYXIgaWJdIGFkdmFuY2UgdGhlIHNjYW5uaW5nIGJ1ZmZlciBmb3JcbiAgICAgb25lIGNoYXJhY3Rlci5cbiAgICAgSWYgbm8gbW9yZSBjaGFyYWN0ZXIgY2FuIGJlIHJlYWQsIHNldHMgYSBlbmQgb2YgZmlsZSBjb25kaXRpb24gYW5kXG4gICAgIHJldHVybnMgJ1xcMDAwJy4gKilcblxuICB2YWwgaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgOiBzY2FuYnVmIC0+IHVuaXRcbiAgKCogW1NjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliXSBtYXJrIHRoZSBjdXJyZW50X2NoYXIgYXMgYWxyZWFkeVxuICAgICBzY2FubmVkLiAqKVxuXG4gIHZhbCBwZWVrX2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogW1NjYW5uaW5nLnBlZWtfY2hhciBpYl0gcmV0dXJucyB0aGUgY3VycmVudCBjaGFyIGF2YWlsYWJsZSBpblxuICAgICB0aGUgYnVmZmVyIG9yIHJlYWRzIG9uZSBpZiBuZWNlc3NhcnkgKHdoZW4gdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGlzXG4gICAgIGFscmVhZHkgc2Nhbm5lZCkuXG4gICAgIElmIG5vIGNoYXJhY3RlciBjYW4gYmUgcmVhZCwgc2V0cyBhbiBlbmQgb2YgZmlsZSBjb25kaXRpb24gYW5kXG4gICAgIHJldHVybnMgJ1xcMDAwJy4gKilcblxuICB2YWwgY2hlY2tlZF9wZWVrX2NoYXIgOiBzY2FuYnVmIC0+IGNoYXJcbiAgKCogU2FtZSBhcyBbU2Nhbm5pbmcucGVla19jaGFyXSBhYm92ZSBidXQgYWx3YXlzIHJldHVybnMgYSB2YWxpZCBjaGFyIG9yXG4gICAgIGZhaWxzOiBpbnN0ZWFkIG9mIHJldHVybmluZyBhIG51bGwgY2hhciB3aGVuIHRoZSByZWFkaW5nIG1ldGhvZCBvZiB0aGVcbiAgICAgaW5wdXQgYnVmZmVyIGhhcyByZWFjaGVkIGFuIGVuZCBvZiBmaWxlLCB0aGUgZnVuY3Rpb24gcmFpc2VzIGV4Y2VwdGlvblxuICAgICBbRW5kX29mX2ZpbGVdLiAqKVxuXG4gIHZhbCBzdG9yZV9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gY2hhciAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnN0b3JlX2NoYXIgbGltIGliIGNdIGFkZHMgW2NdIHRvIHRoZSB0b2tlbiBidWZmZXJcbiAgICAgb2YgdGhlIHNjYW5uaW5nIGJ1ZmZlciBbaWJdLiBJdCBhbHNvIGFkdmFuY2VzIHRoZSBzY2FubmluZyBidWZmZXIgZm9yXG4gICAgIG9uZSBjaGFyYWN0ZXIgYW5kIHJldHVybnMgW2xpbSAtIDFdLCBpbmRpY2F0aW5nIHRoZSBuZXcgbGltaXQgZm9yIHRoZVxuICAgICBsZW5ndGggb2YgdGhlIGN1cnJlbnQgdG9rZW4uICopXG5cbiAgdmFsIHNraXBfY2hhciA6IGludCAtPiBzY2FuYnVmIC0+IGludFxuICAoKiBbU2Nhbm5pbmcuc2tpcF9jaGFyIGxpbSBpYl0gaWdub3JlcyB0aGUgY3VycmVudCBjaGFyYWN0ZXIuICopXG5cbiAgdmFsIGlnbm9yZV9jaGFyIDogaW50IC0+IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5pZ25vcmVfY2hhciBpYiBsaW1dIGlnbm9yZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIGFuZFxuICAgICBkZWNyZW1lbnRzIHRoZSBsaW1pdC4gKilcblxuICB2YWwgdG9rZW4gOiBzY2FuYnVmIC0+IHN0cmluZ1xuICAoKiBbU2Nhbm5pbmcudG9rZW4gaWJdIHJldHVybnMgdGhlIHN0cmluZyBzdG9yZWQgaW50byB0aGUgdG9rZW5cbiAgICAgYnVmZmVyIG9mIHRoZSBzY2FubmluZyBidWZmZXI6IGl0IHJldHVybnMgdGhlIHRva2VuIG1hdGNoZWQgYnkgdGhlXG4gICAgIGZvcm1hdC4gKilcblxuICB2YWwgcmVzZXRfdG9rZW4gOiBzY2FuYnVmIC0+IHVuaXRcbiAgKCogW1NjYW5uaW5nLnJlc2V0X3Rva2VuIGliXSByZXNldHMgdGhlIHRva2VuIGJ1ZmZlciBvZlxuICAgICB0aGUgZ2l2ZW4gc2Nhbm5pbmcgYnVmZmVyLiAqKVxuXG4gIHZhbCBjaGFyX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLmNoYXJfY291bnQgaWJdIHJldHVybnMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzXG4gICAgIHJlYWQgc28gZmFyIGZyb20gdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgbGluZV9jb3VudCA6IHNjYW5idWYgLT4gaW50XG4gICgqIFtTY2FubmluZy5saW5lX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgbmV3IGxpbmVcbiAgICAgY2hhcmFjdGVycyByZWFkIHNvIGZhciBmcm9tIHRoZSBnaXZlbiBidWZmZXIuICopXG5cbiAgdmFsIHRva2VuX2NvdW50IDogc2NhbmJ1ZiAtPiBpbnRcbiAgKCogW1NjYW5uaW5nLnRva2VuX2NvdW50IGliXSByZXR1cm5zIHRoZSBudW1iZXIgb2YgdG9rZW5zIHJlYWRcbiAgICAgc28gZmFyIGZyb20gW2liXS4gKilcblxuICB2YWwgZW9mIDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5lb2YgaWJdIHJldHVybnMgdGhlIGVuZCBvZiBpbnB1dCBjb25kaXRpb25cbiAgICAgb2YgdGhlIGdpdmVuIGJ1ZmZlci4gKilcblxuICB2YWwgZW5kX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBib29sXG4gICgqIFtTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWJdIHRlc3RzIHRoZSBlbmQgb2YgaW5wdXQgY29uZGl0aW9uXG4gICAgIG9mIHRoZSBnaXZlbiBidWZmZXIgKGlmIG5vIGNoYXIgaGFzIGV2ZXIgYmVlbiByZWFkLCBhbiBhdHRlbXB0IHRvXG4gICAgIHJlYWQgb25lIGlzIHBlcmZvcm1lZCkuICopXG5cbiAgdmFsIGJlZ2lubmluZ19vZl9pbnB1dCA6IHNjYW5idWYgLT4gYm9vbFxuICAoKiBbU2Nhbm5pbmcuYmVnaW5uaW5nX29mX2lucHV0IGliXSB0ZXN0cyB0aGUgYmVnaW5uaW5nIG9mIGlucHV0XG4gICAgIGNvbmRpdGlvbiBvZiB0aGUgZ2l2ZW4gYnVmZmVyLiAqKVxuXG4gIHZhbCBuYW1lX29mX2lucHV0IDogc2NhbmJ1ZiAtPiBzdHJpbmdcbiAgKCogW1NjYW5uaW5nLm5hbWVfb2ZfaW5wdXQgaWJdIHJldHVybnMgdGhlIG5hbWUgb2YgdGhlIGNoYXJhY3RlclxuICAgICBzb3VyY2UgZm9yIGlucHV0IGJ1ZmZlciBbaWJdLiAqKVxuXG4gIHZhbCBvcGVuX2luIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIG9wZW5faW5fYmluIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZmlsZSA6IGZpbGVfbmFtZSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2ZpbGVfYmluIDogZmlsZV9uYW1lIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fc3RyaW5nIDogc3RyaW5nIC0+IGluX2NoYW5uZWxcbiAgdmFsIGZyb21fZnVuY3Rpb24gOiAodW5pdCAtPiBjaGFyKSAtPiBpbl9jaGFubmVsXG4gIHZhbCBmcm9tX2NoYW5uZWwgOiBTdGRsaWIuaW5fY2hhbm5lbCAtPiBpbl9jaGFubmVsXG5cbiAgdmFsIGNsb3NlX2luIDogaW5fY2hhbm5lbCAtPiB1bml0XG5cbiAgdmFsIG1lbW9fZnJvbV9jaGFubmVsIDogU3RkbGliLmluX2NoYW5uZWwgLT4gaW5fY2hhbm5lbFxuICAoKiBPYnNvbGV0ZS4gKilcblxuZW5kXG5cblxubW9kdWxlIFNjYW5uaW5nIDogU0NBTk5JTkcgPSBzdHJ1Y3RcblxuICAoKiBUaGUgcnVuLXRpbWUgbGlicmFyeSBmb3Igc2NhbmYuICopXG5cbiAgdHlwZSBmaWxlX25hbWUgPSBzdHJpbmdcblxuICB0eXBlIGluX2NoYW5uZWxfbmFtZSA9XG4gICAgfCBGcm9tX2NoYW5uZWwgb2YgU3RkbGliLmluX2NoYW5uZWxcbiAgICB8IEZyb21fZmlsZSBvZiBmaWxlX25hbWUgKiBTdGRsaWIuaW5fY2hhbm5lbFxuICAgIHwgRnJvbV9mdW5jdGlvblxuICAgIHwgRnJvbV9zdHJpbmdcblxuXG4gIHR5cGUgaW5fY2hhbm5lbCA9IHtcbiAgICBtdXRhYmxlIGljX2VvZiA6IGJvb2w7XG4gICAgbXV0YWJsZSBpY19jdXJyZW50X2NoYXIgOiBjaGFyO1xuICAgIG11dGFibGUgaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDogYm9vbDtcbiAgICBtdXRhYmxlIGljX2NoYXJfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBpY19saW5lX2NvdW50IDogaW50O1xuICAgIG11dGFibGUgaWNfdG9rZW5fY291bnQgOiBpbnQ7XG4gICAgaWNfZ2V0X25leHRfY2hhciA6IHVuaXQgLT4gY2hhcjtcbiAgICBpY190b2tlbl9idWZmZXIgOiBCdWZmZXIudDtcbiAgICBpY19pbnB1dF9uYW1lIDogaW5fY2hhbm5lbF9uYW1lO1xuICB9XG5cblxuICB0eXBlIHNjYW5idWYgPSBpbl9jaGFubmVsXG5cbiAgbGV0IG51bGxfY2hhciA9ICdcXDAwMCdcblxuICAoKiBSZWFkcyBhIG5ldyBjaGFyYWN0ZXIgZnJvbSBpbnB1dCBidWZmZXIuXG4gICAgIE5leHRfY2hhciBuZXZlciBmYWlscywgZXZlbiBpbiBjYXNlIG9mIGVuZCBvZiBpbnB1dDpcbiAgICAgaXQgdGhlbiBzaW1wbHkgc2V0cyB0aGUgZW5kIG9mIGZpbGUgY29uZGl0aW9uLiAqKVxuICBsZXQgbmV4dF9jaGFyIGliID1cbiAgICB0cnlcbiAgICAgIGxldCBjID0gaWIuaWNfZ2V0X25leHRfY2hhciAoKSBpblxuICAgICAgaWIuaWNfY3VycmVudF9jaGFyIDwtIGM7XG4gICAgICBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gdHJ1ZTtcbiAgICAgIGliLmljX2NoYXJfY291bnQgPC0gc3VjYyBpYi5pY19jaGFyX2NvdW50O1xuICAgICAgaWYgYyA9ICdcXG4nIHRoZW4gaWIuaWNfbGluZV9jb3VudCA8LSBzdWNjIGliLmljX2xpbmVfY291bnQ7XG4gICAgICBjIHdpdGhcbiAgICB8IEVuZF9vZl9maWxlIC0+XG4gICAgICBsZXQgYyA9IG51bGxfY2hhciBpblxuICAgICAgaWIuaWNfY3VycmVudF9jaGFyIDwtIGM7XG4gICAgICBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWQgPC0gZmFsc2U7XG4gICAgICBpYi5pY19lb2YgPC0gdHJ1ZTtcbiAgICAgIGNcblxuXG4gIGxldCBwZWVrX2NoYXIgaWIgPVxuICAgIGlmIGliLmljX2N1cnJlbnRfY2hhcl9pc192YWxpZFxuICAgIHRoZW4gaWIuaWNfY3VycmVudF9jaGFyXG4gICAgZWxzZSBuZXh0X2NoYXIgaWJcblxuXG4gICgqIFJldHVybnMgYSB2YWxpZCBjdXJyZW50IGNoYXIgZm9yIHRoZSBpbnB1dCBidWZmZXIuIEluIHBhcnRpY3VsYXJcbiAgICAgbm8gaXJyZWxldmFudCBudWxsIGNoYXJhY3RlciAoYXMgc2V0IGJ5IFtuZXh0X2NoYXJdIGluIGNhc2Ugb2YgZW5kXG4gICAgIG9mIGlucHV0KSBpcyByZXR1cm5lZCwgc2luY2UgW0VuZF9vZl9maWxlXSBpcyByYWlzZWQgd2hlblxuICAgICBbbmV4dF9jaGFyXSBzZXRzIHRoZSBlbmQgb2YgZmlsZSBjb25kaXRpb24gd2hpbGUgdHJ5aW5nIHRvIHJlYWQgYVxuICAgICBuZXcgY2hhcmFjdGVyLiAqKVxuICBsZXQgY2hlY2tlZF9wZWVrX2NoYXIgaWIgPVxuICAgIGxldCBjID0gcGVla19jaGFyIGliIGluXG4gICAgaWYgaWIuaWNfZW9mIHRoZW4gcmFpc2UgRW5kX29mX2ZpbGU7XG4gICAgY1xuXG5cbiAgbGV0IGVuZF9vZl9pbnB1dCBpYiA9XG4gICAgaWdub3JlIChwZWVrX2NoYXIgaWIpO1xuICAgIGliLmljX2VvZlxuXG5cbiAgbGV0IGVvZiBpYiA9IGliLmljX2VvZlxuXG4gIGxldCBiZWdpbm5pbmdfb2ZfaW5wdXQgaWIgPSBpYi5pY19jaGFyX2NvdW50ID0gMFxuXG4gIGxldCBuYW1lX29mX2lucHV0IGliID1cbiAgICBtYXRjaCBpYi5pY19pbnB1dF9uYW1lIHdpdGhcbiAgICB8IEZyb21fY2hhbm5lbCBfaWMgLT4gXCJ1bm5hbWVkIFN0ZGxpYiBpbnB1dCBjaGFubmVsXCJcbiAgICB8IEZyb21fZmlsZSAoZm5hbWUsIF9pYykgLT4gZm5hbWVcbiAgICB8IEZyb21fZnVuY3Rpb24gLT4gXCJ1bm5hbWVkIGZ1bmN0aW9uXCJcbiAgICB8IEZyb21fc3RyaW5nIC0+IFwidW5uYW1lZCBjaGFyYWN0ZXIgc3RyaW5nXCJcblxuXG4gIGxldCBjaGFyX2NvdW50IGliID1cbiAgICBpZiBpYi5pY19jdXJyZW50X2NoYXJfaXNfdmFsaWRcbiAgICB0aGVuIGliLmljX2NoYXJfY291bnQgLSAxXG4gICAgZWxzZSBpYi5pY19jaGFyX2NvdW50XG5cblxuICBsZXQgbGluZV9jb3VudCBpYiA9IGliLmljX2xpbmVfY291bnRcblxuICBsZXQgcmVzZXRfdG9rZW4gaWIgPSBCdWZmZXIucmVzZXQgaWIuaWNfdG9rZW5fYnVmZmVyXG5cbiAgbGV0IGludmFsaWRhdGVfY3VycmVudF9jaGFyIGliID0gaWIuaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkIDwtIGZhbHNlXG5cbiAgbGV0IHRva2VuIGliID1cbiAgICBsZXQgdG9rZW5fYnVmZmVyID0gaWIuaWNfdG9rZW5fYnVmZmVyIGluXG4gICAgbGV0IHRvayA9IEJ1ZmZlci5jb250ZW50cyB0b2tlbl9idWZmZXIgaW5cbiAgICBCdWZmZXIuY2xlYXIgdG9rZW5fYnVmZmVyO1xuICAgIGliLmljX3Rva2VuX2NvdW50IDwtIHN1Y2MgaWIuaWNfdG9rZW5fY291bnQ7XG4gICAgdG9rXG5cblxuICBsZXQgdG9rZW5fY291bnQgaWIgPSBpYi5pY190b2tlbl9jb3VudFxuXG4gIGxldCBza2lwX2NoYXIgd2lkdGggaWIgPVxuICAgIGludmFsaWRhdGVfY3VycmVudF9jaGFyIGliO1xuICAgIHdpZHRoXG5cblxuICBsZXQgaWdub3JlX2NoYXIgd2lkdGggaWIgPSBza2lwX2NoYXIgKHdpZHRoIC0gMSkgaWJcblxuICBsZXQgc3RvcmVfY2hhciB3aWR0aCBpYiBjID1cbiAgICBCdWZmZXIuYWRkX2NoYXIgaWIuaWNfdG9rZW5fYnVmZmVyIGM7XG4gICAgaWdub3JlX2NoYXIgd2lkdGggaWJcblxuXG4gIGxldCBkZWZhdWx0X3Rva2VuX2J1ZmZlcl9zaXplID0gMTAyNFxuXG4gIGxldCBjcmVhdGUgaW5hbWUgbmV4dCA9IHtcbiAgICBpY19lb2YgPSBmYWxzZTtcbiAgICBpY19jdXJyZW50X2NoYXIgPSBudWxsX2NoYXI7XG4gICAgaWNfY3VycmVudF9jaGFyX2lzX3ZhbGlkID0gZmFsc2U7XG4gICAgaWNfY2hhcl9jb3VudCA9IDA7XG4gICAgaWNfbGluZV9jb3VudCA9IDA7XG4gICAgaWNfdG9rZW5fY291bnQgPSAwO1xuICAgIGljX2dldF9uZXh0X2NoYXIgPSBuZXh0O1xuICAgIGljX3Rva2VuX2J1ZmZlciA9IEJ1ZmZlci5jcmVhdGUgZGVmYXVsdF90b2tlbl9idWZmZXJfc2l6ZTtcbiAgICBpY19pbnB1dF9uYW1lID0gaW5hbWU7XG4gIH1cblxuXG4gIGxldCBmcm9tX3N0cmluZyBzID1cbiAgICBsZXQgaSA9IHJlZiAwIGluXG4gICAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggcyBpblxuICAgIGxldCBuZXh0ICgpID1cbiAgICAgIGlmICFpID49IGxlbiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlIGVsc2VcbiAgICAgIGxldCBjID0gcy5bIWldIGluXG4gICAgICBpbmNyIGk7XG4gICAgICBjIGluXG4gICAgY3JlYXRlIEZyb21fc3RyaW5nIG5leHRcblxuXG4gIGxldCBmcm9tX2Z1bmN0aW9uID0gY3JlYXRlIEZyb21fZnVuY3Rpb25cblxuICAoKiBTY2FubmluZyBmcm9tIGFuIGlucHV0IGNoYW5uZWwuICopXG5cbiAgKCogUG9zaXRpb24gb2YgdGhlIHByb2JsZW06XG5cbiAgICAgV2UgY2Fubm90IHByZXZlbnQgdGhlIHNjYW5uaW5nIG1lY2hhbmlzbSB0byB1c2Ugb25lIGxvb2thaGVhZCBjaGFyYWN0ZXIsXG4gICAgIGlmIG5lZWRlZCBieSB0aGUgc2VtYW50aWNzIG9mIHRoZSBmb3JtYXQgc3RyaW5nIHNwZWNpZmljYXRpb25zIChlLmcuIGFcbiAgICAgdHJhaWxpbmcgJ3NraXAgc3BhY2UnIHNwZWNpZmljYXRpb24gaW4gdGhlIGZvcm1hdCBzdHJpbmcpOyBpbiB0aGlzIGNhc2UsXG4gICAgIHRoZSBtYW5kYXRvcnkgbG9va2FoZWFkIGNoYXJhY3RlciBpcyBpbmRlZWQgcmVhZCBmcm9tIHRoZSBpbnB1dCBhbmQgbm90XG4gICAgIHVzZWQgdG8gcmV0dXJuIHRoZSB0b2tlbiByZWFkLiBJdCBpcyB0aHVzIG1hbmRhdG9yeSB0byBiZSBhYmxlIHRvIHN0b3JlXG4gICAgIGFuIHVudXNlZCBsb29rYWhlYWQgY2hhcmFjdGVyIHNvbWV3aGVyZSB0byBnZXQgaXQgYXMgdGhlIGZpcnN0IGNoYXJhY3RlclxuICAgICBvZiB0aGUgbmV4dCBzY2FuLlxuXG4gICAgIFRvIGNpcmN1bXZlbnQgdGhpcyBwcm9ibGVtLCBhbGwgdGhlIHNjYW5uaW5nIGZ1bmN0aW9ucyBnZXQgYSBsb3cgbGV2ZWxcbiAgICAgaW5wdXQgYnVmZmVyIGFyZ3VtZW50IHdoZXJlIHRoZXkgc3RvcmUgdGhlIGxvb2thaGVhZCBjaGFyYWN0ZXIgd2hlblxuICAgICBuZWVkZWQ7IGFkZGl0aW9uYWxseSwgdGhlIGlucHV0IGJ1ZmZlciBpcyB0aGUgb25seSBzb3VyY2Ugb2YgY2hhcmFjdGVyIG9mXG4gICAgIGEgc2Nhbm5lci4gVGhlIFtzY2FuYnVmXSBpbnB1dCBidWZmZXJzIGFyZSBkZWZpbmVkIGluIG1vZHVsZSB7IVNjYW5uaW5nfS5cblxuICAgICBOb3cgd2UgdW5kZXJzdGFuZCB0aGF0IGl0IGlzIGV4dHJlbWVseSBpbXBvcnRhbnQgdGhhdCByZWxhdGVkIGFuZFxuICAgICBzdWNjZXNzaXZlIGNhbGxzIHRvIHNjYW5uZXJzIGluZGVlZCByZWFkIGZyb20gdGhlIHNhbWUgaW5wdXQgYnVmZmVyLlxuICAgICBJbiBlZmZlY3QsIGlmIGEgc2Nhbm5lciBbc2NhbjFdIGlzIHJlYWRpbmcgZnJvbSBbaWIxXSBhbmQgc3RvcmVzIGFuXG4gICAgIHVudXNlZCBsb29rYWhlYWQgY2hhcmFjdGVyIFtjMV0gaW50byBpdHMgaW5wdXQgYnVmZmVyIFtpYjFdLCB0aGVuXG4gICAgIGFub3RoZXIgc2Nhbm5lciBbc2NhbjJdIG5vdCByZWFkaW5nIGZyb20gdGhlIHNhbWUgYnVmZmVyIFtpYjFdIHdpbGwgbWlzc1xuICAgICB0aGUgY2hhcmFjdGVyIFtjMV0sIHNlZW1pbmdseSB2YW5pc2hlZCBpbiB0aGUgYWlyIGZyb20gdGhlIHBvaW50IG9mIHZpZXdcbiAgICAgb2YgW3NjYW4yXS5cblxuICAgICBUaGlzIG1lY2hhbmlzbSB3b3JrcyBwZXJmZWN0bHkgdG8gcmVhZCBmcm9tIHN0cmluZ3MsIGZyb20gZmlsZXMsIGFuZCBmcm9tXG4gICAgIGZ1bmN0aW9ucywgc2luY2UgaW4gdGhvc2UgY2FzZXMsIGFsbG9jYXRpbmcgdHdvIGJ1ZmZlcnMgcmVhZGluZyBmcm9tIHRoZVxuICAgICBzYW1lIHNvdXJjZSBpcyB1bm5hdHVyYWwuXG5cbiAgICAgU3RpbGwsIHRoZXJlIGlzIGEgZGlmZmljdWx0eSBpbiB0aGUgY2FzZSBvZiBzY2FubmluZyBmcm9tIGFuIGlucHV0XG4gICAgIGNoYW5uZWwuIEluIGVmZmVjdCwgd2hlbiBzY2FubmluZyBmcm9tIGFuIGlucHV0IGNoYW5uZWwgW2ljXSwgdGhpcyBjaGFubmVsXG4gICAgIG1heSBub3QgaGF2ZSBiZWVuIGFsbG9jYXRlZCBmcm9tIHdpdGhpbiB0aGlzIGxpYnJhcnkuIEhlbmNlLCBpdCBtYXkgYmVcbiAgICAgc2hhcmVkICh0d28gZnVuY3Rpb25zIG9mIHRoZSB1c2VyJ3MgcHJvZ3JhbSBtYXkgc3VjY2Vzc2l2ZWx5IHJlYWQgZnJvbVxuICAgICBbaWNdKS4gVGhpcyBpcyBoaWdobHkgZXJyb3IgcHJvbmUgc2luY2UsIG9uZSBvZiB0aGUgZnVuY3Rpb24gbWF5IHNlZWsgdGhlXG4gICAgIGlucHV0IGNoYW5uZWwsIHdoaWxlIHRoZSBvdGhlciBmdW5jdGlvbiBoYXMgc3RpbGwgYW4gdW51c2VkIGxvb2thaGVhZFxuICAgICBjaGFyYWN0ZXIgaW4gaXRzIGlucHV0IGJ1ZmZlci4gSW4gY29uY2x1c2lvbiwgeW91IHNob3VsZCBuZXZlciBtaXggZGlyZWN0XG4gICAgIGxvdyBsZXZlbCByZWFkaW5nIGFuZCBoaWdoIGxldmVsIHNjYW5uaW5nIGZyb20gdGhlIHNhbWUgaW5wdXQgY2hhbm5lbC5cblxuICAqKVxuXG4gICgqIFBlcmZvcm0gYnVmZmVyaXplZCBpbnB1dCB0byBpbXByb3ZlIGVmZmljaWVuY3kuICopXG4gIGxldCBmaWxlX2J1ZmZlcl9zaXplID0gcmVmIDEwMjRcblxuICAoKiBUaGUgc2Nhbm5lciBjbG9zZXMgdGhlIGlucHV0IGNoYW5uZWwgYXQgZW5kIG9mIGlucHV0LiAqKVxuICBsZXQgc2Nhbl9jbG9zZV9hdF9lbmQgaWMgPSBTdGRsaWIuY2xvc2VfaW4gaWM7IHJhaXNlIEVuZF9vZl9maWxlXG5cbiAgKCogVGhlIHNjYW5uZXIgZG9lcyBub3QgY2xvc2UgdGhlIGlucHV0IGNoYW5uZWwgYXQgZW5kIG9mIGlucHV0OlxuICAgICBpdCBqdXN0IHJhaXNlcyBbRW5kX29mX2ZpbGVdLiAqKVxuICBsZXQgc2Nhbl9yYWlzZV9hdF9lbmQgX2ljID0gcmFpc2UgRW5kX29mX2ZpbGVcblxuICBsZXQgZnJvbV9pYyBzY2FuX2Nsb3NlX2ljIGluYW1lIGljID1cbiAgICBsZXQgbGVuID0gIWZpbGVfYnVmZmVyX3NpemUgaW5cbiAgICBsZXQgYnVmID0gQnl0ZXMuY3JlYXRlIGxlbiBpblxuICAgIGxldCBpID0gcmVmIDAgaW5cbiAgICBsZXQgbGltID0gcmVmIDAgaW5cbiAgICBsZXQgZW9mID0gcmVmIGZhbHNlIGluXG4gICAgbGV0IG5leHQgKCkgPVxuICAgICAgaWYgIWkgPCAhbGltIHRoZW4gYmVnaW4gbGV0IGMgPSBCeXRlcy5nZXQgYnVmICFpIGluIGluY3IgaTsgYyBlbmQgZWxzZVxuICAgICAgaWYgIWVvZiB0aGVuIHJhaXNlIEVuZF9vZl9maWxlIGVsc2UgYmVnaW5cbiAgICAgICAgbGltIDo9IGlucHV0IGljIGJ1ZiAwIGxlbjtcbiAgICAgICAgaWYgIWxpbSA9IDAgdGhlbiBiZWdpbiBlb2YgOj0gdHJ1ZTsgc2Nhbl9jbG9zZV9pYyBpYyBlbmQgZWxzZSBiZWdpblxuICAgICAgICAgIGkgOj0gMTtcbiAgICAgICAgICBCeXRlcy5nZXQgYnVmIDBcbiAgICAgICAgZW5kXG4gICAgICBlbmQgaW5cbiAgICBjcmVhdGUgaW5hbWUgbmV4dFxuXG5cbiAgbGV0IGZyb21faWNfY2xvc2VfYXRfZW5kID0gZnJvbV9pYyBzY2FuX2Nsb3NlX2F0X2VuZFxuICBsZXQgZnJvbV9pY19yYWlzZV9hdF9lbmQgPSBmcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG5cbiAgKCogVGhlIHNjYW5uaW5nIGJ1ZmZlciByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0uXG4gICAgIE9uZSBjb3VsZCB0cnkgdG8gZGVmaW5lIFtzdGRpYl0gYXMgYSBzY2FubmluZyBidWZmZXIgcmVhZGluZyBhIGNoYXJhY3RlclxuICAgICBhdCBhIHRpbWUgKG5vIGJ1ZmZlcml6YXRpb24gYXQgYWxsKSwgYnV0IHVuZm9ydHVuYXRlbHkgdGhlIHRvcC1sZXZlbFxuICAgICBpbnRlcmFjdGlvbiB3b3VsZCBiZSB3cm9uZy4gVGhpcyBpcyBkdWUgdG8gc29tZSBraW5kIG9mXG4gICAgICdyYWNlIGNvbmRpdGlvbicgd2hlbiByZWFkaW5nIGZyb20gW1N0ZGxpYi5zdGRpbl0sXG4gICAgIHNpbmNlIHRoZSBpbnRlcmFjdGl2ZSBjb21waWxlciBhbmQgW1NjYW5mLnNjYW5mXSB3aWxsIHNpbXVsdGFuZW91c2x5XG4gICAgIHJlYWQgdGhlIG1hdGVyaWFsIHRoZXkgbmVlZCBmcm9tIFtTdGRsaWIuc3RkaW5dOyB0aGVuLCBjb25mdXNpb25cbiAgICAgd2lsbCByZXN1bHQgZnJvbSB3aGF0IHNob3VsZCBiZSByZWFkIGJ5IHRoZSB0b3AtbGV2ZWwgYW5kIHdoYXQgc2hvdWxkIGJlXG4gICAgIHJlYWQgYnkgW1NjYW5mLnNjYW5mXS5cbiAgICAgVGhpcyBpcyBldmVuIG1vcmUgY29tcGxpY2F0ZWQgYnkgdGhlIG9uZSBjaGFyYWN0ZXIgbG9va2FoZWFkIHRoYXRcbiAgICAgW1NjYW5mLnNjYW5mXSBpcyBzb21ldGltZXMgb2JsaWdlZCB0byBtYWludGFpbjogdGhlIGxvb2thaGVhZCBjaGFyYWN0ZXJcbiAgICAgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHRoZSBuZXh0IFtTY2FuZi5zY2FuZl0gZW50cnksIHNlZW1pbmdseSBjb21pbmcgZnJvbVxuICAgICBub3doZXJlLlxuICAgICBBbHNvIG5vIFtFbmRfb2ZfZmlsZV0gaXMgcmFpc2VkIHdoZW4gcmVhZGluZyBmcm9tIHN0ZGluOiBpZiBub3QgZW5vdWdoXG4gICAgIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIHJlYWQsIHdlIHNpbXBseSBhc2sgdG8gcmVhZCBtb3JlLiAqKVxuICBsZXQgc3RkaW4gPVxuICAgIGZyb21faWMgc2Nhbl9yYWlzZV9hdF9lbmRcbiAgICAgIChGcm9tX2ZpbGUgKFwiLVwiLCBTdGRsaWIuc3RkaW4pKSBTdGRsaWIuc3RkaW5cblxuXG4gIGxldCBzdGRpYiA9IHN0ZGluXG5cbiAgbGV0IG9wZW5faW5fZmlsZSBvcGVuX2luIGZuYW1lID1cbiAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgfCBcIi1cIiAtPiBzdGRpblxuICAgIHwgZm5hbWUgLT5cbiAgICAgIGxldCBpYyA9IG9wZW5faW4gZm5hbWUgaW5cbiAgICAgIGZyb21faWNfY2xvc2VfYXRfZW5kIChGcm9tX2ZpbGUgKGZuYW1lLCBpYykpIGljXG5cblxuICBsZXQgb3Blbl9pbiA9IG9wZW5faW5fZmlsZSBTdGRsaWIub3Blbl9pblxuICBsZXQgb3Blbl9pbl9iaW4gPSBvcGVuX2luX2ZpbGUgU3RkbGliLm9wZW5faW5fYmluXG5cbiAgbGV0IGZyb21fZmlsZSA9IG9wZW5faW5cbiAgbGV0IGZyb21fZmlsZV9iaW4gPSBvcGVuX2luX2JpblxuXG4gIGxldCBmcm9tX2NoYW5uZWwgaWMgPVxuICAgIGZyb21faWNfcmFpc2VfYXRfZW5kIChGcm9tX2NoYW5uZWwgaWMpIGljXG5cblxuICBsZXQgY2xvc2VfaW4gaWIgPVxuICAgIG1hdGNoIGliLmljX2lucHV0X25hbWUgd2l0aFxuICAgIHwgRnJvbV9jaGFubmVsIGljIC0+XG4gICAgICBTdGRsaWIuY2xvc2VfaW4gaWNcbiAgICB8IEZyb21fZmlsZSAoX2ZuYW1lLCBpYykgLT4gU3RkbGliLmNsb3NlX2luIGljXG4gICAgfCBGcm9tX2Z1bmN0aW9uIHwgRnJvbV9zdHJpbmcgLT4gKClcblxuXG4gICgqXG4gICAgIE9ic29sZXRlOiBhIG1lbW8gW2Zyb21fY2hhbm5lbF0gdmVyc2lvbiB0byBidWlsZCBhIFtTY2FubmluZy5pbl9jaGFubmVsXVxuICAgICBzY2FubmluZyBidWZmZXIgb3V0IG9mIGEgW1N0ZGxpYi5pbl9jaGFubmVsXS5cbiAgICAgVGhpcyBmdW5jdGlvbiB3YXMgdXNlZCB0byB0cnkgdG8gcHJlc2VydmUgdGhlIHNjYW5uaW5nXG4gICAgIHNlbWFudGljcyBmb3IgdGhlIChub3cgb2Jzb2xldGUpIGZ1bmN0aW9uIFtmc2NhbmZdLlxuICAgICBHaXZlbiB0aGF0IGFsbCBzY2FubmVyIG11c3QgcmVhZCBmcm9tIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdIHNjYW5uaW5nXG4gICAgIGJ1ZmZlciwgW2ZzY2FuZl0gbXVzdCByZWFkIGZyb20gb25lIVxuICAgICBNb3JlIHByZWNpc2VseSwgZ2l2ZW4gW2ljXSwgYWxsIHN1Y2Nlc3NpdmUgY2FsbHMgW2ZzY2FuZiBpY10gbXVzdCByZWFkXG4gICAgIGZyb20gdGhlIHNhbWUgc2Nhbm5pbmcgYnVmZmVyLlxuICAgICBUaGlzIG9ibGlnZWQgdGhpcyBsaWJyYXJ5IHRvIGFsbG9jYXRlZCBzY2FubmluZyBidWZmZXJzIHRoYXQgd2VyZVxuICAgICBub3QgcHJvcGVybHkgZ2FyYmFnZSBjb2xsZWN0YWJsZSwgaGVuY2UgbGVhZGluZyB0byBtZW1vcnkgbGVha3MuXG4gICAgIElmIHlvdSBuZWVkIHRvIHJlYWQgZnJvbSBhIFtTdGRsaWIuaW5fY2hhbm5lbF0gaW5wdXQgY2hhbm5lbFxuICAgICBbaWNdLCBzaW1wbHkgZGVmaW5lIGEgW1NjYW5uaW5nLmluX2NoYW5uZWxdIGZvcm1hdHRlZCBpbnB1dCBjaGFubmVsIGFzIGluXG4gICAgIFtsZXQgaWIgPSBTY2FubmluZy5mcm9tX2NoYW5uZWwgaWNdLCB0aGVuIHVzZSBbU2NhbmYuYnNjYW5mIGliXSBhcyB1c3VhbC5cbiAgKilcbiAgbGV0IG1lbW9fZnJvbV9pYyA9XG4gICAgbGV0IG1lbW8gPSByZWYgW10gaW5cbiAgICAoZnVuIHNjYW5fY2xvc2VfaWMgaWMgLT5cbiAgICAgdHJ5IExpc3QuYXNzcSBpYyAhbWVtbyB3aXRoXG4gICAgIHwgTm90X2ZvdW5kIC0+XG4gICAgICAgbGV0IGliID1cbiAgICAgICAgIGZyb21faWMgc2Nhbl9jbG9zZV9pYyAoRnJvbV9jaGFubmVsIGljKSBpYyBpblxuICAgICAgIG1lbW8gOj0gKGljLCBpYikgOjogIW1lbW87XG4gICAgICAgaWIpXG5cblxuICAoKiBPYnNvbGV0ZTogc2VlIHshbWVtb19mcm9tX2ljfSBhYm92ZS4gKilcbiAgbGV0IG1lbW9fZnJvbV9jaGFubmVsID0gbWVtb19mcm9tX2ljIHNjYW5fcmFpc2VfYXRfZW5kXG5cbmVuZFxuXG5cbigqIEZvcm1hdHRlZCBpbnB1dCBmdW5jdGlvbnMuICopXG5cbnR5cGUgKCdhLCAnYiwgJ2MsICdkKSBzY2FubmVyID1cbiAgICAgKCdhLCBTY2FubmluZy5pbl9jaGFubmVsLCAnYiwgJ2MsICdhIC0+ICdkLCAnZCkgZm9ybWF0NiAtPiAnY1xuXG5cbigqIFJlcG9ydGluZyBlcnJvcnMuICopXG5leGNlcHRpb24gU2Nhbl9mYWlsdXJlIG9mIHN0cmluZ1xuXG5sZXQgYmFkX2lucHV0IHMgPSByYWlzZSAoU2Nhbl9mYWlsdXJlIHMpXG5cbmxldCBiYWRfaW5wdXRfZXNjYXBlIGMgPVxuICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiaWxsZWdhbCBlc2NhcGUgY2hhcmFjdGVyICVDXCIgYylcblxuXG5sZXQgYmFkX3Rva2VuX2xlbmd0aCBtZXNzYWdlID1cbiAgYmFkX2lucHV0XG4gICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgXCJzY2FubmluZyBvZiAlcyBmYWlsZWQ6IFxcXG4gICAgICAgIHRoZSBzcGVjaWZpZWQgbGVuZ3RoIHdhcyB0b28gc2hvcnQgZm9yIHRva2VuXCJcbiAgICAgICBtZXNzYWdlKVxuXG5cbmxldCBiYWRfZW5kX29mX2lucHV0IG1lc3NhZ2UgPVxuICBiYWRfaW5wdXRcbiAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICBcInNjYW5uaW5nIG9mICVzIGZhaWxlZDogXFxcbiAgICAgICAgcHJlbWF0dXJlIGVuZCBvZiBmaWxlIG9jY3VycmVkIGJlZm9yZSBlbmQgb2YgdG9rZW5cIlxuICAgICAgIG1lc3NhZ2UpXG5cblxubGV0IGJhZF9mbG9hdCAoKSA9XG4gIGJhZF9pbnB1dCBcIm5vIGRvdCBvciBleHBvbmVudCBwYXJ0IGZvdW5kIGluIGZsb2F0IHRva2VuXCJcblxuXG5sZXQgYmFkX2hleF9mbG9hdCAoKSA9XG4gIGJhZF9pbnB1dCBcIm5vdCBhIHZhbGlkIGZsb2F0IGluIGhleGFkZWNpbWFsIG5vdGF0aW9uXCJcblxuXG5sZXQgY2hhcmFjdGVyX21pc21hdGNoX2VyciBjIGNpID1cbiAgUHJpbnRmLnNwcmludGYgXCJsb29raW5nIGZvciAlQywgZm91bmQgJUNcIiBjIGNpXG5cblxubGV0IGNoYXJhY3Rlcl9taXNtYXRjaCBjIGNpID1cbiAgYmFkX2lucHV0IChjaGFyYWN0ZXJfbWlzbWF0Y2hfZXJyIGMgY2kpXG5cblxubGV0IHJlYyBza2lwX3doaXRlcyBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gIGlmIG5vdCAoU2Nhbm5pbmcuZW9mIGliKSB0aGVuIGJlZ2luXG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCAnICcgfCAnXFx0JyB8ICdcXG4nIHwgJ1xccicgLT5cbiAgICAgIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliOyBza2lwX3doaXRlcyBpYlxuICAgIHwgXyAtPiAoKVxuICBlbmRcblxuXG4oKiBDaGVja2luZyB0aGF0IFtjXSBpcyBpbmRlZWQgaW4gdGhlIGlucHV0LCB0aGVuIHNraXBzIGl0LlxuICAgSW4gdGhpcyBjYXNlLCB0aGUgY2hhcmFjdGVyIFtjXSBoYXMgYmVlbiBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGVcbiAgIGZvcm1hdCBhcyBiZWluZyBtYW5kYXRvcnkgaW4gdGhlIGlucHV0OyBoZW5jZSB3ZSBzaG91bGQgZmFpbCB3aXRoXG4gICBbRW5kX29mX2ZpbGVdIGluIGNhc2Ugb2YgZW5kX29mX2lucHV0LlxuICAgKFJlbWVtYmVyIHRoYXQgW1NjYW5fZmFpbHVyZV0gaXMgcmFpc2VkIG9ubHkgd2hlbiAod2UgY2FuIHByb3ZlIGJ5XG4gICBldmlkZW5jZSkgdGhhdCB0aGUgaW5wdXQgZG9lcyBub3QgbWF0Y2ggdGhlIGZvcm1hdCBzdHJpbmcgZ2l2ZW4uIFdlIG11c3RcbiAgIHRodXMgZGlmZmVyZW50aWF0ZSBbRW5kX29mX2ZpbGVdIGFzIGFuIGVycm9yIGR1ZSB0byBsYWNrIG9mIGlucHV0LCBhbmRcbiAgIFtTY2FuX2ZhaWx1cmVdIHdoaWNoIGlzIGR1ZSB0byBwcm92YWJseSB3cm9uZyBpbnB1dC4gSSBhbSBub3Qgc3VyZSB0aGlzIGlzXG4gICB3b3J0aCB0aGUgYnVyZGVuOiBpdCBpcyBjb21wbGV4IGFuZCBzb21laG93IHN1YmxpbWluYWw7IHNob3VsZCBiZSBjbGVhcmVyXG4gICB0byBmYWlsIHdpdGggU2Nhbl9mYWlsdXJlIFwiTm90IGVub3VnaCBpbnB1dCB0byBjb21wbGV0ZSBzY2FubmluZ1wiISlcblxuICAgVGhhdCdzIHdoeSwgd2FpdGluZyBmb3IgYSBiZXR0ZXIgc29sdXRpb24sIHdlIHVzZSBjaGVja2VkX3BlZWtfY2hhciBoZXJlLlxuICAgV2UgYXJlIGFsc28gY2FyZWZ1bCB0byB0cmVhdCBcIlxcclxcblwiIGluIHRoZSBpbnB1dCBhcyBhbiBlbmQgb2YgbGluZSBtYXJrZXI6XG4gICBpdCBhbHdheXMgbWF0Y2hlcyBhICdcXG4nIHNwZWNpZmljYXRpb24gaW4gdGhlIGlucHV0IGZvcm1hdCBzdHJpbmcuICopXG5sZXQgcmVjIGNoZWNrX2NoYXIgaWIgYyA9XG4gIG1hdGNoIGMgd2l0aFxuICB8ICcgJyAtPiBza2lwX3doaXRlcyBpYlxuICB8ICdcXG4nIC0+IGNoZWNrX25ld2xpbmUgaWJcbiAgfCBjIC0+IGNoZWNrX3RoaXNfY2hhciBpYiBjXG5cbmFuZCBjaGVja190aGlzX2NoYXIgaWIgYyA9XG4gIGxldCBjaSA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIGlmIGNpID0gYyB0aGVuIFNjYW5uaW5nLmludmFsaWRhdGVfY3VycmVudF9jaGFyIGliIGVsc2VcbiAgY2hhcmFjdGVyX21pc21hdGNoIGMgY2lcblxuYW5kIGNoZWNrX25ld2xpbmUgaWIgPVxuICBsZXQgY2kgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBtYXRjaCBjaSB3aXRoXG4gIHwgJ1xcbicgLT4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJcbiAgfCAnXFxyJyAtPiBTY2FubmluZy5pbnZhbGlkYXRlX2N1cnJlbnRfY2hhciBpYjsgY2hlY2tfdGhpc19jaGFyIGliICdcXG4nXG4gIHwgXyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcbicgY2lcblxuXG4oKiBFeHRyYWN0aW5nIHRva2VucyBmcm9tIHRoZSBvdXRwdXQgdG9rZW4gYnVmZmVyLiAqKVxuXG5sZXQgdG9rZW5fY2hhciBpYiA9IChTY2FubmluZy50b2tlbiBpYikuWzBdXG5cbmxldCB0b2tlbl9zdHJpbmcgPSBTY2FubmluZy50b2tlblxuXG5sZXQgdG9rZW5fYm9vbCBpYiA9XG4gIG1hdGNoIFNjYW5uaW5nLnRva2VuIGliIHdpdGhcbiAgfCBcInRydWVcIiAtPiB0cnVlXG4gIHwgXCJmYWxzZVwiIC0+IGZhbHNlXG4gIHwgcyAtPiBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiaW52YWxpZCBib29sZWFuICclcydcIiBzKVxuXG5cbigqIFRoZSB0eXBlIG9mIGludGVnZXIgY29udmVyc2lvbnMuICopXG50eXBlIGludGVnZXJfY29udmVyc2lvbiA9XG4gIHwgQl9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGJpbmFyeSBjb252ZXJzaW9uICopXG4gIHwgRF9jb252ZXJzaW9uICgqIFNpZ25lZCBkZWNpbWFsIGNvbnZlcnNpb24gKilcbiAgfCBJX2NvbnZlcnNpb24gKCogU2lnbmVkIGludGVnZXIgY29udmVyc2lvbiAqKVxuICB8IE9fY29udmVyc2lvbiAoKiBVbnNpZ25lZCBvY3RhbCBjb252ZXJzaW9uICopXG4gIHwgVV9jb252ZXJzaW9uICgqIFVuc2lnbmVkIGRlY2ltYWwgY29udmVyc2lvbiAqKVxuICB8IFhfY29udmVyc2lvbiAoKiBVbnNpZ25lZCBoZXhhZGVjaW1hbCBjb252ZXJzaW9uICopXG5cblxubGV0IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyID0gZnVuY3Rpb25cbiAgfCAnYicgLT4gQl9jb252ZXJzaW9uXG4gIHwgJ2QnIC0+IERfY29udmVyc2lvblxuICB8ICdpJyAtPiBJX2NvbnZlcnNpb25cbiAgfCAnbycgLT4gT19jb252ZXJzaW9uXG4gIHwgJ3UnIC0+IFVfY29udmVyc2lvblxuICB8ICd4JyB8ICdYJyAtPiBYX2NvbnZlcnNpb25cbiAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG5cbigqIEV4dHJhY3QgYW4gaW50ZWdlciBsaXRlcmFsIHRva2VuLlxuICAgU2luY2UgdGhlIGZ1bmN0aW9ucyBTdGRsaWIuKmludCpfb2Zfc3RyaW5nIGRvIG5vdCBhY2NlcHQgYSBsZWFkaW5nICssXG4gICB3ZSBza2lwIGl0IGlmIG5lY2Vzc2FyeS4gKilcbmxldCB0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliID1cbiAgbGV0IHRvayA9XG4gICAgbWF0Y2ggY29udiB3aXRoXG4gICAgfCBEX2NvbnZlcnNpb24gfCBJX2NvbnZlcnNpb24gLT4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IFVfY29udmVyc2lvbiAtPiBcIjB1XCIgXiBTY2FubmluZy50b2tlbiBpYlxuICAgIHwgT19jb252ZXJzaW9uIC0+IFwiMG9cIiBeIFNjYW5uaW5nLnRva2VuIGliXG4gICAgfCBYX2NvbnZlcnNpb24gLT4gXCIweFwiIF4gU2Nhbm5pbmcudG9rZW4gaWJcbiAgICB8IEJfY29udmVyc2lvbiAtPiBcIjBiXCIgXiBTY2FubmluZy50b2tlbiBpYiBpblxuICBsZXQgbCA9IFN0cmluZy5sZW5ndGggdG9rIGluXG4gIGlmIGwgPSAwIHx8IHRvay5bMF0gPD4gJysnIHRoZW4gdG9rIGVsc2UgU3RyaW5nLnN1YiB0b2sgMSAobCAtIDEpXG5cblxuKCogQWxsIHRoZSBmdW5jdGlvbnMgdGhhdCBjb252ZXJ0IGEgc3RyaW5nIHRvIGEgbnVtYmVyIHJhaXNlIHRoZSBleGNlcHRpb25cbiAgIEZhaWx1cmUgd2hlbiB0aGUgY29udmVyc2lvbiBpcyBub3QgcG9zc2libGUuXG4gICBUaGlzIGV4Y2VwdGlvbiBpcyB0aGVuIHRyYXBwZWQgaW4gW2tzY2FuZl0uICopXG5sZXQgdG9rZW5faW50IGNvbnYgaWIgPSBpbnRfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxuXG5sZXQgdG9rZW5fZmxvYXQgaWIgPSBmbG9hdF9vZl9zdHJpbmcgKFNjYW5uaW5nLnRva2VuIGliKVxuXG4oKiBUbyBzY2FuIG5hdGl2ZSBpbnRzLCBpbnQzMiBhbmQgaW50NjQgaW50ZWdlcnMuXG4gICBXZSBjYW5ub3QgYWNjZXNzIHRvIGNvbnZlcnNpb25zIHRvL2Zyb20gc3RyaW5ncyBmb3IgdGhvc2UgdHlwZXMsXG4gICBOYXRpdmVpbnQub2Zfc3RyaW5nLCBJbnQzMi5vZl9zdHJpbmcsIGFuZCBJbnQ2NC5vZl9zdHJpbmcsXG4gICBzaW5jZSB0aG9zZSBtb2R1bGVzIGFyZSBub3QgYXZhaWxhYmxlIHRvIFtTY2FuZl0uXG4gICBIb3dldmVyLCB3ZSBjYW4gYmluZCBhbmQgdXNlIHRoZSBjb3JyZXNwb25kaW5nIHByaW1pdGl2ZXMgdGhhdCBhcmVcbiAgIGF2YWlsYWJsZSBpbiB0aGUgcnVudGltZS4gKilcbmV4dGVybmFsIG5hdGl2ZWludF9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gbmF0aXZlaW50XG4gID0gXCJjYW1sX25hdGl2ZWludF9vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCBpbnQzMl9vZl9zdHJpbmcgOiBzdHJpbmcgLT4gaW50MzJcbiAgPSBcImNhbWxfaW50MzJfb2Zfc3RyaW5nXCJcblxuZXh0ZXJuYWwgaW50NjRfb2Zfc3RyaW5nIDogc3RyaW5nIC0+IGludDY0XG4gID0gXCJjYW1sX2ludDY0X29mX3N0cmluZ1wiXG5cblxubGV0IHRva2VuX25hdGl2ZWludCBjb252IGliID0gbmF0aXZlaW50X29mX3N0cmluZyAodG9rZW5faW50X2xpdGVyYWwgY29udiBpYilcbmxldCB0b2tlbl9pbnQzMiBjb252IGliID0gaW50MzJfb2Zfc3RyaW5nICh0b2tlbl9pbnRfbGl0ZXJhbCBjb252IGliKVxubGV0IHRva2VuX2ludDY0IGNvbnYgaWIgPSBpbnQ2NF9vZl9zdHJpbmcgKHRva2VuX2ludF9saXRlcmFsIGNvbnYgaWIpXG5cbigqIFNjYW5uaW5nIG51bWJlcnMuICopXG5cbigqIERpZ2l0cyBzY2FubmluZyBmdW5jdGlvbnMgc3VwcG9zZSB0aGF0IG9uZSBjaGFyYWN0ZXIgaGFzIGJlZW4gY2hlY2tlZCBhbmRcbiAgIGlzIGF2YWlsYWJsZSwgc2luY2UgdGhleSByZXR1cm4gYXQgZW5kIG9mIGZpbGUgd2l0aCB0aGUgY3VycmVudGx5IGZvdW5kXG4gICB0b2tlbiBzZWxlY3RlZC5cblxuICAgUHV0IGl0IGluIGFub3RoZXIgd2F5LCB0aGUgZGlnaXRzIHNjYW5uaW5nIGZ1bmN0aW9ucyBzY2FuIGZvciBhIHBvc3NpYmx5XG4gICBlbXB0eSBzZXF1ZW5jZSBvZiBkaWdpdHMsIChoZW5jZSwgYSBzdWNjZXNzZnVsIHNjYW5uaW5nIGZyb20gb25lIG9mIHRob3NlXG4gICBmdW5jdGlvbnMgZG9lcyBub3QgaW1wbHkgdGhhdCB0aGUgdG9rZW4gaXMgYSB3ZWxsLWZvcm1lZCBudW1iZXI6IHRvIGdldCBhXG4gICB0cnVlIG51bWJlciwgaXQgaXMgbWFuZGF0b3J5IHRvIGNoZWNrIHRoYXQgYXQgbGVhc3Qgb25lIHZhbGlkIGRpZ2l0IGlzXG4gICBhdmFpbGFibGUgYmVmb3JlIGNhbGxpbmcgb25lIG9mIHRoZSBkaWdpdCBzY2FubmluZyBmdW5jdGlvbnMpLiAqKVxuXG4oKiBUaGUgZGVjaW1hbCBjYXNlIGlzIHRyZWF0ZWQgZXNwZWNpYWxseSBmb3Igb3B0aW1pemF0aW9uIHB1cnBvc2VzLiAqKVxubGV0IHJlYyBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8ICdfJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliIGluXG4gICAgc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWJcbiAgfCBfIC0+IHdpZHRoXG5cblxubGV0IHNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzIHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImRlY2ltYWwgZGlnaXRzXCIgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcwJyAuLiAnOScgLT5cbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuICB8IGMgLT5cbiAgICBiYWRfaW5wdXQgKFByaW50Zi5zcHJpbnRmIFwiY2hhcmFjdGVyICVDIGlzIG5vdCBhIGRlY2ltYWwgZGlnaXRcIiBjKVxuXG5cbigqIFRvIHNjYW4gbnVtYmVycyBmcm9tIG90aGVyIGJhc2VzLCB3ZSB1c2UgYSBwcmVkaWNhdGUgYXJndW1lbnQgdG9cbiAgIHNjYW4gZGlnaXRzLiAqKVxubGV0IHNjYW5fZGlnaXRfc3RhciBkaWdpdHAgd2lkdGggaWIgPVxuICBsZXQgcmVjIHNjYW5fZGlnaXRzIHdpZHRoIGliID1cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCBlbHNlXG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgfCBjIHdoZW4gZGlnaXRwIGMgLT5cbiAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgc2Nhbl9kaWdpdHMgd2lkdGggaWJcbiAgICB8ICdfJyAtPlxuICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIgaW5cbiAgICAgIHNjYW5fZGlnaXRzIHdpZHRoIGliXG4gICAgfCBfIC0+IHdpZHRoIGluXG4gIHNjYW5fZGlnaXRzIHdpZHRoIGliXG5cblxubGV0IHNjYW5fZGlnaXRfcGx1cyBiYXNpcyBkaWdpdHAgd2lkdGggaWIgPVxuICAoKiBFbnN1cmUgd2UgaGF2ZSBnb3QgZW5vdWdoIHdpZHRoIGxlZnQsXG4gICAgIGFuZCByZWFkIGF0IGxlYXN0IG9uZSBkaWdpdC4gKilcbiAgaWYgd2lkdGggPSAwIHRoZW4gYmFkX3Rva2VuX2xlbmd0aCBcImRpZ2l0c1wiIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiBpblxuICBpZiBkaWdpdHAgYyB0aGVuXG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgc2Nhbl9kaWdpdF9zdGFyIGRpZ2l0cCB3aWR0aCBpYlxuICBlbHNlXG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcImNoYXJhY3RlciAlQyBpcyBub3QgYSB2YWxpZCAlcyBkaWdpdFwiIGMgYmFzaXMpXG5cblxubGV0IGlzX2JpbmFyeV9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICcxJyAtPiB0cnVlXG4gIHwgXyAtPiBmYWxzZVxuXG5cbmxldCBzY2FuX2JpbmFyeV9pbnQgPSBzY2FuX2RpZ2l0X3BsdXMgXCJiaW5hcnlcIiBpc19iaW5hcnlfZGlnaXRcblxubGV0IGlzX29jdGFsX2RpZ2l0ID0gZnVuY3Rpb25cbiAgfCAnMCcgLi4gJzcnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5fb2N0YWxfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwib2N0YWxcIiBpc19vY3RhbF9kaWdpdFxuXG5sZXQgaXNfaGV4YV9kaWdpdCA9IGZ1bmN0aW9uXG4gIHwgJzAnIC4uICc5JyB8ICdhJyAuLiAnZicgfCAnQScgLi4gJ0YnIC0+IHRydWVcbiAgfCBfIC0+IGZhbHNlXG5cblxubGV0IHNjYW5faGV4YWRlY2ltYWxfaW50ID0gc2Nhbl9kaWdpdF9wbHVzIFwiaGV4YWRlY2ltYWxcIiBpc19oZXhhX2RpZ2l0XG5cbigqIFNjYW4gYSBkZWNpbWFsIGludGVnZXIuICopXG5sZXQgc2Nhbl91bnNpZ25lZF9kZWNpbWFsX2ludCA9IHNjYW5fZGVjaW1hbF9kaWdpdF9wbHVzXG5cbmxldCBzY2FuX3NpZ24gd2lkdGggaWIgPVxuICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcrJyAtPiBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGNcbiAgfCAnLScgLT4gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjXG4gIHwgXyAtPiB3aWR0aFxuXG5cbmxldCBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fdW5zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcblxuXG4oKiBTY2FuIGFuIHVuc2lnbmVkIGludGVnZXIgdGhhdCBjb3VsZCBiZSBnaXZlbiBpbiBhbnkgKGNvbW1vbikgYmFzaXMuXG4gICBJZiBkaWdpdHMgYXJlIHByZWZpeGVkIGJ5IG9uZSBvZiAweCwgMFgsIDBvLCBvciAwYiwgdGhlIG51bWJlciBpc1xuICAgYXNzdW1lZCB0byBiZSB3cml0dGVuIHJlc3BlY3RpdmVseSBpbiBoZXhhZGVjaW1hbCwgaGV4YWRlY2ltYWwsXG4gICBvY3RhbCwgb3IgYmluYXJ5LiAqKVxubGV0IHNjYW5fdW5zaWduZWRfaW50IHdpZHRoIGliID1cbiAgbWF0Y2ggU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICAgIGJlZ2luIG1hdGNoIGMgd2l0aFxuICAgIHwgJ3gnIHwgJ1gnIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGliXG4gICAgfCAnbycgLT4gc2Nhbl9vY3RhbF9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8ICdiJyAtPiBzY2FuX2JpbmFyeV9pbnQgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYykgaWJcbiAgICB8IF8gLT4gc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgZW5kXG4gIHwgXyAtPiBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG5cblxubGV0IHNjYW5fb3B0aW9uYWxseV9zaWduZWRfaW50IHdpZHRoIGliID1cbiAgbGV0IHdpZHRoID0gc2Nhbl9zaWduIHdpZHRoIGliIGluXG4gIHNjYW5fdW5zaWduZWRfaW50IHdpZHRoIGliXG5cblxubGV0IHNjYW5faW50X2NvbnZlcnNpb24gY29udiB3aWR0aCBpYiA9XG4gIG1hdGNoIGNvbnYgd2l0aFxuICB8IEJfY29udmVyc2lvbiAtPiBzY2FuX2JpbmFyeV9pbnQgd2lkdGggaWJcbiAgfCBEX2NvbnZlcnNpb24gLT4gc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCB3aWR0aCBpYlxuICB8IElfY29udmVyc2lvbiAtPiBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2ludCB3aWR0aCBpYlxuICB8IE9fY29udmVyc2lvbiAtPiBzY2FuX29jdGFsX2ludCB3aWR0aCBpYlxuICB8IFVfY29udmVyc2lvbiAtPiBzY2FuX3Vuc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gIHwgWF9jb252ZXJzaW9uIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliXG5cblxuKCogU2Nhbm5pbmcgZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4gKilcblxuKCogRnJhY3Rpb25hbCBwYXJ0IGlzIG9wdGlvbmFsIGFuZCBjYW4gYmUgcmVkdWNlZCB0byAwIGRpZ2l0cy4gKilcbmxldCBzY2FuX2ZyYWN0aW9uYWxfcGFydCB3aWR0aCBpYiA9XG4gIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGggZWxzZVxuICBtYXRjaCBjIHdpdGhcbiAgfCAnMCcgLi4gJzknIGFzIGMgLT5cbiAgICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG4oKiBFeHAgcGFydCBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlZHVjZWQgdG8gMCBkaWdpdHMuICopXG5sZXQgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliID1cbiAgaWYgd2lkdGggPSAwIHRoZW4gd2lkdGggZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiB3aWR0aCBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICdlJyB8ICdFJyBhcyBjIC0+XG4gICAgc2Nhbl9vcHRpb25hbGx5X3NpZ25lZF9kZWNpbWFsX2ludCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjKSBpYlxuICB8IF8gLT4gd2lkdGhcblxuXG4oKiBTY2FuIHRoZSBpbnRlZ2VyIHBhcnQgb2YgYSBmbG9hdGluZyBwb2ludCBudW1iZXIsIChub3QgdXNpbmcgdGhlXG4gICBPQ2FtbCBsZXhpY2FsIGNvbnZlbnRpb24gc2luY2UgdGhlIGludGVnZXIgcGFydCBjYW4gYmUgZW1wdHkpOlxuICAgYW4gb3B0aW9uYWwgc2lnbiwgZm9sbG93ZWQgYnkgYSBwb3NzaWJseSBlbXB0eSBzZXF1ZW5jZSBvZiBkZWNpbWFsXG4gICBkaWdpdHMgKGUuZy4gLS4xKS4gKilcbmxldCBzY2FuX2ludGVnZXJfcGFydCB3aWR0aCBpYiA9XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBzY2FuX2RlY2ltYWxfZGlnaXRfc3RhciB3aWR0aCBpYlxuXG5cbigqXG4gICBGb3IgdGhlIHRpbWUgYmVpbmcgd2UgaGF2ZSAoYXMgZm91bmQgaW4gc2NhbmYubWxpKTpcbiAgIHRoZSBmaWVsZCB3aWR0aCBpcyBjb21wb3NlZCBvZiBhbiBvcHRpb25hbCBpbnRlZ2VyIGxpdGVyYWxcbiAgIGluZGljYXRpbmcgdGhlIG1heGltYWwgd2lkdGggb2YgdGhlIHRva2VuIHRvIHJlYWQuXG4gICBVbmZvcnR1bmF0ZWx5LCB0aGUgdHlwZS1jaGVja2VyIGxldCB0aGUgdXNlciB3cml0ZSBhbiBvcHRpb25hbCBwcmVjaXNpb24sXG4gICBzaW5jZSB0aGlzIGlzIHZhbGlkIGZvciBwcmludGYgZm9ybWF0IHN0cmluZ3MuXG5cbiAgIFRodXMsIHRoZSBuZXh0IHN0ZXAgZm9yIFNjYW5mIGlzIHRvIHN1cHBvcnQgYSBmdWxsIHdpZHRoIGFuZCBwcmVjaXNpb25cbiAgIGluZGljYXRpb24sIG1vcmUgb3IgbGVzcyBzaW1pbGFyIHRvIHRoZSBvbmUgZm9yIHByaW50ZiwgcG9zc2libHkgZXh0ZW5kZWRcbiAgIHRvIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGEgW21heCwgbWluXSByYW5nZSBmb3IgdGhlIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkXG4gICBmb3Igc3RyaW5ncy4gU29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZyBzcGVjIGZvciBzY2FuZi5tbGk6XG5cbiAgIFRoZSBvcHRpb25hbCBbd2lkdGhdIGlzIGFuIGludGVnZXIgaW5kaWNhdGluZyB0aGUgbWF4aW1hbFxuICAgd2lkdGggb2YgdGhlIHRva2VuIHJlYWQuIEZvciBpbnN0YW5jZSwgWyU2ZF0gcmVhZHMgYW4gaW50ZWdlcixcbiAgIGhhdmluZyBhdCBtb3N0IDYgY2hhcmFjdGVycy5cblxuICAgVGhlIG9wdGlvbmFsIFtwcmVjaXNpb25dIGlzIGEgZG90IFsuXSBmb2xsb3dlZCBieSBhbiBpbnRlZ2VyOlxuXG4gICAtIGluIHRoZSBmbG9hdGluZyBwb2ludCBudW1iZXIgY29udmVyc2lvbnMgKFslZl0sIFslZV0sIFslZ10sIFslRl0sIFslRV0sXG4gICBhbmQgWyVGXSBjb252ZXJzaW9ucywgdGhlIFtwcmVjaXNpb25dIGluZGljYXRlcyB0aGUgbWF4aW11bSBudW1iZXIgb2ZcbiAgIGRpZ2l0cyB0aGF0IG1heSBmb2xsb3cgdGhlIGRlY2ltYWwgcG9pbnQuIEZvciBpbnN0YW5jZSwgWyUuNGZdIHJlYWRzIGFcbiAgIFtmbG9hdF0gd2l0aCBhdCBtb3N0IDQgZnJhY3Rpb25hbCBkaWdpdHMsXG5cbiAgIC0gaW4gdGhlIHN0cmluZyBjb252ZXJzaW9ucyAoWyVzXSwgWyVTXSwgWyVcXFsgcmFuZ2UgXFxdXSksIGFuZCBpbiB0aGVcbiAgIGludGVnZXIgbnVtYmVyIGNvbnZlcnNpb25zIChbJWldLCBbJWRdLCBbJXVdLCBbJXhdLCBbJW9dLCBhbmQgdGhlaXJcbiAgIFtpbnQzMl0sIFtpbnQ2NF0sIGFuZCBbbmF0aXZlX2ludF0gY29ycmVzcG9uZGVudCksIHRoZSBbcHJlY2lzaW9uXVxuICAgaW5kaWNhdGVzIHRoZSByZXF1aXJlZCBtaW5pbXVtIHdpZHRoIG9mIHRoZSB0b2tlbiByZWFkLFxuXG4gICAtIG9uIGFsbCBvdGhlciBjb252ZXJzaW9ucywgdGhlIHdpZHRoIGFuZCBwcmVjaXNpb24gc3BlY2lmeSB0aGUgW21heCwgbWluXVxuICAgcmFuZ2UgZm9yIHRoZSB3aWR0aCBvZiB0aGUgdG9rZW4gcmVhZC5cbiopXG5sZXQgc2Nhbl9mbG9hdCB3aWR0aCBwcmVjaXNpb24gaWIgPVxuICBsZXQgd2lkdGggPSBzY2FuX2ludGVnZXJfcGFydCB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgdGhlbiB3aWR0aCwgcHJlY2lzaW9uIGVsc2VcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgaWYgU2Nhbm5pbmcuZW9mIGliIHRoZW4gd2lkdGgsIHByZWNpc2lvbiBlbHNlXG4gIG1hdGNoIGMgd2l0aFxuICB8ICcuJyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGxldCBwcmVjaXNpb24gPSBJbnQubWluIHdpZHRoIHByZWNpc2lvbiBpblxuICAgIGxldCB3aWR0aCA9IHdpZHRoIC0gKHByZWNpc2lvbiAtIHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHByZWNpc2lvbiBpYikgaW5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIsIHByZWNpc2lvblxuICB8IF8gLT5cbiAgICBzY2FuX2V4cG9uZW50X3BhcnQgd2lkdGggaWIsIHByZWNpc2lvblxuXG5cbmxldCBjaGVja19jYXNlX2luc2Vuc2l0aXZlX3N0cmluZyB3aWR0aCBpYiBlcnJvciBzdHIgPVxuICBsZXQgbG93ZXJjYXNlIGMgPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJ0EnIC4uICdaJyAtPlxuICAgICAgY2hhcl9vZl9pbnQgKGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKyBpbnRfb2ZfY2hhciAnYScpXG4gICAgfCBfIC0+IGMgaW5cbiAgbGV0IGxlbiA9IFN0cmluZy5sZW5ndGggc3RyIGluXG4gIGxldCB3aWR0aCA9IHJlZiB3aWR0aCBpblxuICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkb1xuICAgIGxldCBjID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgaWYgbG93ZXJjYXNlIGMgPD4gbG93ZXJjYXNlIHN0ci5baV0gdGhlbiBlcnJvciAoKTtcbiAgICBpZiAhd2lkdGggPSAwIHRoZW4gZXJyb3IgKCk7XG4gICAgd2lkdGggOj0gU2Nhbm5pbmcuc3RvcmVfY2hhciAhd2lkdGggaWIgYztcbiAgZG9uZTtcbiAgIXdpZHRoXG5cblxubGV0IHNjYW5faGV4X2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICBsZXQgd2lkdGggPSBzY2FuX3NpZ24gd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gIHwgJzAnIGFzIGMgLT4gKFxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGxldCB3aWR0aCA9IGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJ4XCIgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgbGV0IHdpZHRoID0gbWF0Y2ggU2Nhbm5pbmcucGVla19jaGFyIGliIHdpdGhcbiAgICAgICAgfCAnLicgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgfCBfIC0+IHNjYW5faGV4YWRlY2ltYWxfaW50IHdpZHRoIGliIGluXG4gICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICBsZXQgd2lkdGggPSBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgIHwgJy4nIGFzIGMgLT4gKFxuICAgICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgICAgICB8ICdwJyB8ICdQJyAtPiB3aWR0aFxuICAgICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAgICAgICAgICAgICB3aWR0aCAtIChwcmVjaXNpb24gLSBzY2FuX2hleGFkZWNpbWFsX2ludCBwcmVjaXNpb24gaWIpXG4gICAgICAgICAgKVxuICAgICAgICAgIHwgXyAtPiB3aWR0aCBpblxuICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gd2lkdGggZWxzZVxuICAgICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgICAgfCAncCcgfCAnUCcgYXMgYyAtPlxuICAgICAgICAgICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICAgICAgICAgIHNjYW5fb3B0aW9uYWxseV9zaWduZWRfZGVjaW1hbF9pbnQgd2lkdGggaWJcbiAgICAgICAgICB8IF8gLT4gd2lkdGhcbiAgKVxuICB8ICduJyB8ICdOJyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9oZXhfZmxvYXQgKCk7XG4gICAgY2hlY2tfY2FzZV9pbnNlbnNpdGl2ZV9zdHJpbmcgd2lkdGggaWIgYmFkX2hleF9mbG9hdCBcImFuXCJcbiAgfCAnaScgfCAnSScgYXMgYyAtPlxuICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfaGV4X2Zsb2F0ICgpO1xuICAgIGNoZWNrX2Nhc2VfaW5zZW5zaXRpdmVfc3RyaW5nIHdpZHRoIGliIGJhZF9oZXhfZmxvYXQgXCJuZmluaXR5XCJcbiAgfCBfIC0+IGJhZF9oZXhfZmxvYXQgKClcblxuXG5sZXQgc2Nhbl9jYW1sX2Zsb2F0X3Jlc3Qgd2lkdGggcHJlY2lzaW9uIGliID1cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IHdpZHRoID0gc2Nhbl9kZWNpbWFsX2RpZ2l0X3N0YXIgd2lkdGggaWIgaW5cbiAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgbWF0Y2ggYyB3aXRoXG4gIHwgJy4nIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgKCogVGhlIGVmZmVjdGl2ZSB3aWR0aCBhdmFpbGFibGUgZm9yIHNjYW5uaW5nIHRoZSBmcmFjdGlvbmFsIHBhcnQgaXNcbiAgICAgICB0aGUgbWluaW11bSBvZiBkZWNsYXJlZCBwcmVjaXNpb24gYW5kIHdpZHRoIGxlZnQuICopXG4gICAgbGV0IHByZWNpc2lvbiA9IEludC5taW4gd2lkdGggcHJlY2lzaW9uIGluXG4gICAgKCogQWZ0ZXIgc2Nhbm5pbmcgdGhlIGZyYWN0aW9uYWwgcGFydCB3aXRoIFtwcmVjaXNpb25dIHByb3Zpc2lvbmFsIHdpZHRoLFxuICAgICAgIFt3aWR0aF9wcmVjaXNpb25dIGlzIGxlZnQuICopXG4gICAgbGV0IHdpZHRoX3ByZWNpc2lvbiA9IHNjYW5fZnJhY3Rpb25hbF9wYXJ0IHByZWNpc2lvbiBpYiBpblxuICAgICgqIEhlbmNlLCBzY2FubmluZyB0aGUgZnJhY3Rpb25hbCBwYXJ0IHRvb2sgZXhhY3RseVxuICAgICAgIFtwcmVjaXNpb24gLSB3aWR0aF9wcmVjaXNpb25dIGNoYXJzLiAqKVxuICAgIGxldCBmcmFjX3dpZHRoID0gcHJlY2lzaW9uIC0gd2lkdGhfcHJlY2lzaW9uIGluXG4gICAgKCogQW5kIG5ldyBwcm92aXNpb25hbCB3aWR0aCBpcyBbd2lkdGggLSB3aWR0aF9wcmVjaXNpb24uICopXG4gICAgbGV0IHdpZHRoID0gd2lkdGggLSBmcmFjX3dpZHRoIGluXG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliXG4gIHwgJ2UnIHwgJ0UnIC0+XG4gICAgc2Nhbl9leHBvbmVudF9wYXJ0IHdpZHRoIGliXG4gIHwgXyAtPiBiYWRfZmxvYXQgKClcblxuXG5sZXQgc2Nhbl9jYW1sX2Zsb2F0IHdpZHRoIHByZWNpc2lvbiBpYiA9XG4gIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gIGxldCB3aWR0aCA9IHNjYW5fc2lnbiB3aWR0aCBpYiBpblxuICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICB8ICcwJyBhcyBjIC0+IChcbiAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2Zsb2F0ICgpO1xuICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAneCcgfCAnWCcgYXMgYyAtPiAoXG4gICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiBiYWRfZmxvYXQgKCk7XG4gICAgICBsZXQgd2lkdGggPSBzY2FuX2hleGFkZWNpbWFsX2ludCB3aWR0aCBpYiBpblxuICAgICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICAgIGxldCB3aWR0aCA9IG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJy4nIGFzIGMgLT4gKFxuICAgICAgICAgIGxldCB3aWR0aCA9IFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYyBpblxuICAgICAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgICAgICBtYXRjaCBTY2FubmluZy5wZWVrX2NoYXIgaWIgd2l0aFxuICAgICAgICAgICAgfCAncCcgfCAnUCcgLT4gd2lkdGhcbiAgICAgICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgICBsZXQgcHJlY2lzaW9uID0gSW50Lm1pbiB3aWR0aCBwcmVjaXNpb24gaW5cbiAgICAgICAgICAgICAgd2lkdGggLSAocHJlY2lzaW9uIC0gc2Nhbl9oZXhhZGVjaW1hbF9pbnQgcHJlY2lzaW9uIGliKVxuICAgICAgICApXG4gICAgICAgIHwgJ3AnIHwgJ1AnIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBiYWRfZmxvYXQgKCkgaW5cbiAgICAgIGlmIHdpZHRoID0gMCB8fCBTY2FubmluZy5lbmRfb2ZfaW5wdXQgaWIgdGhlbiB3aWR0aCBlbHNlXG4gICAgICAgIG1hdGNoIFNjYW5uaW5nLnBlZWtfY2hhciBpYiB3aXRoXG4gICAgICAgIHwgJ3AnIHwgJ1AnIGFzIGMgLT5cbiAgICAgICAgICBsZXQgd2lkdGggPSBTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMgaW5cbiAgICAgICAgICBpZiB3aWR0aCA9IDAgfHwgU2Nhbm5pbmcuZW5kX29mX2lucHV0IGliIHRoZW4gYmFkX2hleF9mbG9hdCAoKTtcbiAgICAgICAgICBzY2FuX29wdGlvbmFsbHlfc2lnbmVkX2RlY2ltYWxfaW50IHdpZHRoIGliXG4gICAgICAgIHwgXyAtPiB3aWR0aFxuICAgIClcbiAgICB8IF8gLT5cbiAgICAgIHNjYW5fY2FtbF9mbG9hdF9yZXN0IHdpZHRoIHByZWNpc2lvbiBpYlxuICApXG4gIHwgJzEnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IHdpZHRoID0gU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiBjIGluXG4gICAgaWYgd2lkdGggPSAwIHx8IFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIGJhZF9mbG9hdCAoKTtcbiAgICBzY2FuX2NhbWxfZmxvYXRfcmVzdCB3aWR0aCBwcmVjaXNpb24gaWJcbigqIFNwZWNpYWwgY2FzZSBvZiBuYW4gYW5kIGluZmluaXR5OlxuICB8ICdpJyAtPlxuICB8ICduJyAtPlxuKilcbiAgfCBfIC0+IGJhZF9mbG9hdCAoKVxuXG5cbigqIFNjYW4gYSByZWd1bGFyIHN0cmluZzpcbiAgIHN0b3BzIHdoZW4gZW5jb3VudGVyaW5nIGEgc3BhY2UsIGlmIG5vIHNjYW5uaW5nIGluZGljYXRpb24gaGFzIGJlZW4gZ2l2ZW47XG4gICBvdGhlcndpc2UsIHN0b3BzIHdoZW4gZW5jb3VudGVyaW5nIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBzY2FubmluZ1xuICAgaW5kaWNhdGlvbiBbc3RwXS5cbiAgIEl0IGFsc28gc3RvcHMgYXQgZW5kIG9mIGZpbGUgb3Igd2hlbiB0aGUgbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBoYXNcbiAgIGJlZW4gcmVhZC4gKilcbmxldCBzY2FuX3N0cmluZyBzdHAgd2lkdGggaWIgPVxuICBsZXQgcmVjIGxvb3Agd2lkdGggPVxuICAgIGlmIHdpZHRoID0gMCB0aGVuIHdpZHRoIGVsc2VcbiAgICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICAgIGlmIFNjYW5uaW5nLmVvZiBpYiB0aGVuIHdpZHRoIGVsc2VcbiAgICAgIG1hdGNoIHN0cCB3aXRoXG4gICAgICB8IFNvbWUgYycgd2hlbiBjID0gYycgLT4gU2Nhbm5pbmcuc2tpcF9jaGFyIHdpZHRoIGliXG4gICAgICB8IFNvbWUgXyAtPiBsb29wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG4gICAgICB8IE5vbmUgLT5cbiAgICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgIHwgJyAnIHwgJ1xcdCcgfCAnXFxuJyB8ICdcXHInIC0+IHdpZHRoXG4gICAgICAgIHwgXyAtPiBsb29wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpIGluXG4gIGxvb3Agd2lkdGhcblxuXG4oKiBTY2FuIGEgY2hhcjogcGVlayBzdHJpY3RseSBvbmUgY2hhcmFjdGVyIGluIHRoZSBpbnB1dCwgd2hhdHNvZXZlci4gKilcbmxldCBzY2FuX2NoYXIgd2lkdGggaWIgPVxuICAoKiBUaGUgY2FzZSB3aWR0aCA9IDAgY291bGQgbm90IGhhcHBlbiBoZXJlLCBzaW5jZSBpdCBpcyB0ZXN0ZWQgYmVmb3JlXG4gICAgIGNhbGxpbmcgc2Nhbl9jaGFyLCBpbiB0aGUgbWFpbiBzY2FubmluZyBmdW5jdGlvbi5cbiAgICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIFwiYSBjaGFyYWN0ZXJcIiBlbHNlICopXG4gIFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgKFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliKVxuXG5cbmxldCBjaGFyX2Zvcl9iYWNrc2xhc2ggPSBmdW5jdGlvblxuICB8ICduJyAtPiAnXFwwMTAnXG4gIHwgJ3InIC0+ICdcXDAxMydcbiAgfCAnYicgLT4gJ1xcMDA4J1xuICB8ICd0JyAtPiAnXFwwMDknXG4gIHwgYyAtPiBjXG5cblxuKCogVGhlIGludGVnZXIgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZmFjaWFsIHZhbHVlIG9mIGEgdmFsaWRcbiAgIGRlY2ltYWwgZGlnaXQgY2hhcmFjdGVyLiAqKVxubGV0IGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjID0gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJ1xuXG5sZXQgY2hhcl9mb3JfZGVjaW1hbF9jb2RlIGMwIGMxIGMyID1cbiAgbGV0IGMgPVxuICAgIDEwMCAqIGRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMCArXG4gICAgIDEwICogZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMxICtcbiAgICAgICAgICBkZWNpbWFsX3ZhbHVlX29mX2NoYXIgYzIgaW5cbiAgaWYgYyA8IDAgfHwgYyA+IDI1NSB0aGVuXG4gICAgYmFkX2lucHV0XG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgIFwiYmFkIGNoYXJhY3RlciBkZWNpbWFsIGVuY29kaW5nIFxcXFwlYyVjJWNcIiBjMCBjMSBjMikgZWxzZVxuICBjaGFyX29mX2ludCBjXG5cblxuKCogVGhlIGludGVnZXIgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZmFjaWFsIHZhbHVlIG9mIGEgdmFsaWRcbiAgIGhleGFkZWNpbWFsIGRpZ2l0IGNoYXJhY3Rlci4gKilcbmxldCBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMgPVxuICBsZXQgZCA9IGludF9vZl9jaGFyIGMgaW5cbiAgKCogQ291bGQgYWxzbyBiZTpcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICc5JyB0aGVuIGQgLSBpbnRfb2ZfY2hhciAnMCcgZWxzZVxuICAgIGlmIGQgPD0gaW50X29mX2NoYXIgJ0YnIHRoZW4gMTAgKyBkIC0gaW50X29mX2NoYXIgJ0EnIGVsc2VcbiAgICBpZiBkIDw9IGludF9vZl9jaGFyICdmJyB0aGVuIDEwICsgZCAtIGludF9vZl9jaGFyICdhJyBlbHNlIGFzc2VydCBmYWxzZVxuICAqKVxuICBpZiBkID49IGludF9vZl9jaGFyICdhJyB0aGVuXG4gICAgZCAtIDg3ICgqIDEwICsgaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdhJyAqKSBlbHNlXG4gIGlmIGQgPj0gaW50X29mX2NoYXIgJ0EnIHRoZW5cbiAgICBkIC0gNTUgICgqIDEwICsgaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyAqKSBlbHNlXG4gICAgZCAtIGludF9vZl9jaGFyICcwJ1xuXG5cbmxldCBjaGFyX2Zvcl9oZXhhZGVjaW1hbF9jb2RlIGMxIGMyID1cbiAgbGV0IGMgPVxuICAgIDE2ICogaGV4YWRlY2ltYWxfdmFsdWVfb2ZfY2hhciBjMSArXG4gICAgICAgICBoZXhhZGVjaW1hbF92YWx1ZV9vZl9jaGFyIGMyIGluXG4gIGlmIGMgPCAwIHx8IGMgPiAyNTUgdGhlblxuICAgIGJhZF9pbnB1dFxuICAgICAgKFByaW50Zi5zcHJpbnRmIFwiYmFkIGNoYXJhY3RlciBoZXhhZGVjaW1hbCBlbmNvZGluZyBcXFxcJWMlY1wiIGMxIGMyKSBlbHNlXG4gIGNoYXJfb2ZfaW50IGNcblxuXG4oKiBDYWxsZWQgaW4gcGFydGljdWxhciB3aGVuIGVuY291bnRlcmluZyAnXFxcXCcgYXMgc3RhcnRlciBvZiBhIGNoYXIuXG4gICBTdG9wcyBiZWZvcmUgdGhlIGNvcnJlc3BvbmRpbmcgJ1xcJycuICopXG5sZXQgY2hlY2tfbmV4dF9jaGFyIG1lc3NhZ2Ugd2lkdGggaWIgPVxuICBpZiB3aWR0aCA9IDAgdGhlbiBiYWRfdG9rZW5fbGVuZ3RoIG1lc3NhZ2UgZWxzZVxuICBsZXQgYyA9IFNjYW5uaW5nLnBlZWtfY2hhciBpYiBpblxuICBpZiBTY2FubmluZy5lb2YgaWIgdGhlbiBiYWRfZW5kX29mX2lucHV0IG1lc3NhZ2UgZWxzZVxuICBjXG5cblxubGV0IGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciA9IGNoZWNrX25leHRfY2hhciBcImEgQ2hhclwiXG5sZXQgY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgPSBjaGVja19uZXh0X2NoYXIgXCJhIFN0cmluZ1wiXG5cbmxldCBzY2FuX2JhY2tzbGFzaF9jaGFyIHdpZHRoIGliID1cbiAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgfCAnXFxcXCcgfCAnXFwnJyB8ICdcXFwiJyB8ICduJyB8ICd0JyB8ICdiJyB8ICdyJyBhcyBjIC0+XG4gICAgU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAoY2hhcl9mb3JfYmFja3NsYXNoIGMpXG4gIHwgJzAnIC4uICc5JyBhcyBjIC0+XG4gICAgbGV0IGdldF9kaWdpdCAoKSA9XG4gICAgICBsZXQgYyA9IFNjYW5uaW5nLm5leHRfY2hhciBpYiBpblxuICAgICAgbWF0Y2ggYyB3aXRoXG4gICAgICB8ICcwJyAuLiAnOScgYXMgYyAtPiBjXG4gICAgICB8IGMgLT4gYmFkX2lucHV0X2VzY2FwZSBjIGluXG4gICAgbGV0IGMwID0gYyBpblxuICAgIGxldCBjMSA9IGdldF9kaWdpdCAoKSBpblxuICAgIGxldCBjMiA9IGdldF9kaWdpdCAoKSBpblxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgKHdpZHRoIC0gMikgaWIgKGNoYXJfZm9yX2RlY2ltYWxfY29kZSBjMCBjMSBjMilcbiAgfCAneCcgLT5cbiAgICBsZXQgZ2V0X2RpZ2l0ICgpID1cbiAgICAgIGxldCBjID0gU2Nhbm5pbmcubmV4dF9jaGFyIGliIGluXG4gICAgICBtYXRjaCBjIHdpdGhcbiAgICAgIHwgJzAnIC4uICc5JyB8ICdBJyAuLiAnRicgfCAnYScgLi4gJ2YnIGFzIGMgLT4gY1xuICAgICAgfCBjIC0+IGJhZF9pbnB1dF9lc2NhcGUgYyBpblxuICAgIGxldCBjMSA9IGdldF9kaWdpdCAoKSBpblxuICAgIGxldCBjMiA9IGdldF9kaWdpdCAoKSBpblxuICAgIFNjYW5uaW5nLnN0b3JlX2NoYXIgKHdpZHRoIC0gMikgaWIgKGNoYXJfZm9yX2hleGFkZWNpbWFsX2NvZGUgYzEgYzIpXG4gIHwgYyAtPlxuICAgIGJhZF9pbnB1dF9lc2NhcGUgY1xuXG5cbigqIFNjYW4gYSBjaGFyYWN0ZXIgKGFuIE9DYW1sIHRva2VuKS4gKilcbmxldCBzY2FuX2NhbWxfY2hhciB3aWR0aCBpYiA9XG5cbiAgbGV0IHJlYyBmaW5kX3N0YXJ0IHdpZHRoID1cbiAgICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAnXFwnJyAtPiBmaW5kX2NoYXIgKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBjaGFyYWN0ZXJfbWlzbWF0Y2ggJ1xcJycgY1xuXG4gIGFuZCBmaW5kX2NoYXIgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3JfY2hhciB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxcXCcgLT5cbiAgICAgIGZpbmRfc3RvcCAoc2Nhbl9iYWNrc2xhc2hfY2hhciAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpIGliKVxuICAgIHwgYyAtPlxuICAgICAgZmluZF9zdG9wIChTY2FubmluZy5zdG9yZV9jaGFyIHdpZHRoIGliIGMpXG5cbiAgYW5kIGZpbmRfc3RvcCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9jaGFyIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXCcnIC0+IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliXG4gICAgfCBjIC0+IGNoYXJhY3Rlcl9taXNtYXRjaCAnXFwnJyBjIGluXG5cbiAgZmluZF9zdGFydCB3aWR0aFxuXG5cbigqIFNjYW4gYSBkZWxpbWl0ZWQgc3RyaW5nIChhbiBPQ2FtbCB0b2tlbikuICopXG5sZXQgc2Nhbl9jYW1sX3N0cmluZyB3aWR0aCBpYiA9XG5cbiAgbGV0IHJlYyBmaW5kX3N0YXJ0IHdpZHRoID1cbiAgICBtYXRjaCBTY2FubmluZy5jaGVja2VkX3BlZWtfY2hhciBpYiB3aXRoXG4gICAgfCAnXFxcIicgLT4gZmluZF9zdG9wIChTY2FubmluZy5pZ25vcmVfY2hhciB3aWR0aCBpYilcbiAgICB8IGMgLT4gY2hhcmFjdGVyX21pc21hdGNoICdcXFwiJyBjXG5cbiAgYW5kIGZpbmRfc3RvcCB3aWR0aCA9XG4gICAgbWF0Y2ggY2hlY2tfbmV4dF9jaGFyX2Zvcl9zdHJpbmcgd2lkdGggaWIgd2l0aFxuICAgIHwgJ1xcXCInIC0+IFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliXG4gICAgfCAnXFxcXCcgLT4gc2Nhbl9iYWNrc2xhc2ggKFNjYW5uaW5nLmlnbm9yZV9jaGFyIHdpZHRoIGliKVxuICAgIHwgYyAtPiBmaW5kX3N0b3AgKFNjYW5uaW5nLnN0b3JlX2NoYXIgd2lkdGggaWIgYylcblxuICBhbmQgc2Nhbl9iYWNrc2xhc2ggd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICdcXHInIC0+IHNraXBfbmV3bGluZSAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCAnXFxuJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCAoc2Nhbl9iYWNrc2xhc2hfY2hhciB3aWR0aCBpYilcblxuICBhbmQgc2tpcF9uZXdsaW5lIHdpZHRoID1cbiAgICBtYXRjaCBjaGVja19uZXh0X2NoYXJfZm9yX3N0cmluZyB3aWR0aCBpYiB3aXRoXG4gICAgfCAnXFxuJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCAoU2Nhbm5pbmcuc3RvcmVfY2hhciB3aWR0aCBpYiAnXFxyJylcblxuICBhbmQgc2tpcF9zcGFjZXMgd2lkdGggPVxuICAgIG1hdGNoIGNoZWNrX25leHRfY2hhcl9mb3Jfc3RyaW5nIHdpZHRoIGliIHdpdGhcbiAgICB8ICcgJyAtPiBza2lwX3NwYWNlcyAoU2Nhbm5pbmcuaWdub3JlX2NoYXIgd2lkdGggaWIpXG4gICAgfCBfIC0+IGZpbmRfc3RvcCB3aWR0aCBpblxuXG4gIGZpbmRfc3RhcnQgd2lkdGhcblxuXG4oKiBTY2FuIGEgYm9vbGVhbiAoYW4gT0NhbWwgdG9rZW4pLiAqKVxubGV0IHNjYW5fYm9vbCBpYiA9XG4gIGxldCBjID0gU2Nhbm5pbmcuY2hlY2tlZF9wZWVrX2NoYXIgaWIgaW5cbiAgbGV0IG0gPVxuICAgIG1hdGNoIGMgd2l0aFxuICAgIHwgJ3QnIC0+IDRcbiAgICB8ICdmJyAtPiA1XG4gICAgfCBjIC0+XG4gICAgICBiYWRfaW5wdXRcbiAgICAgICAgKFByaW50Zi5zcHJpbnRmIFwidGhlIGNoYXJhY3RlciAlQyBjYW5ub3Qgc3RhcnQgYSBib29sZWFuXCIgYykgaW5cbiAgc2Nhbl9zdHJpbmcgTm9uZSBtIGliXG5cblxuKCogU2NhbiBhIHN0cmluZyBjb250YWluaW5nIGVsZW1lbnRzIGluIGNoYXJfc2V0IGFuZCB0ZXJtaW5hdGVkIGJ5IHNjYW5faW5kaWNcbiAgIGlmIHByb3ZpZGVkLiAqKVxubGV0IHNjYW5fY2hhcnNfaW5fY2hhcl9zZXQgY2hhcl9zZXQgc2Nhbl9pbmRpYyB3aWR0aCBpYiA9XG4gIGxldCByZWMgc2Nhbl9jaGFycyBpIHN0cCA9XG4gICAgbGV0IGMgPSBTY2FubmluZy5wZWVrX2NoYXIgaWIgaW5cbiAgICBpZiBpID4gMCAmJiBub3QgKFNjYW5uaW5nLmVvZiBpYikgJiZcbiAgICAgICBpc19pbl9jaGFyX3NldCBjaGFyX3NldCBjICYmXG4gICAgICAgaW50X29mX2NoYXIgYyA8PiBzdHAgdGhlblxuICAgICAgbGV0IF8gPSBTY2FubmluZy5zdG9yZV9jaGFyIG1heF9pbnQgaWIgYyBpblxuICAgICAgc2Nhbl9jaGFycyAoaSAtIDEpIHN0cCBpblxuICBtYXRjaCBzY2FuX2luZGljIHdpdGhcbiAgfCBOb25lIC0+IHNjYW5fY2hhcnMgd2lkdGggKC0xKTtcbiAgfCBTb21lIGMgLT5cbiAgICBzY2FuX2NoYXJzIHdpZHRoIChpbnRfb2ZfY2hhciBjKTtcbiAgICBpZiBub3QgKFNjYW5uaW5nLmVvZiBpYikgdGhlblxuICAgICAgbGV0IGNpID0gU2Nhbm5pbmcucGVla19jaGFyIGliIGluXG4gICAgICBpZiBjID0gY2lcbiAgICAgIHRoZW4gU2Nhbm5pbmcuaW52YWxpZGF0ZV9jdXJyZW50X2NoYXIgaWJcbiAgICAgIGVsc2UgY2hhcmFjdGVyX21pc21hdGNoIGMgY2lcblxuXG4oKiBUaGUgZ2xvYmFsIGVycm9yIHJlcG9ydCBmdW5jdGlvbiBmb3IgW1NjYW5mXS4gKilcbmxldCBzY2FuZl9iYWRfaW5wdXQgaWIgPSBmdW5jdGlvblxuICB8IFNjYW5fZmFpbHVyZSBzIHwgRmFpbHVyZSBzIC0+XG4gICAgbGV0IGkgPSBTY2FubmluZy5jaGFyX2NvdW50IGliIGluXG4gICAgYmFkX2lucHV0IChQcmludGYuc3ByaW50ZiBcInNjYW5mOiBiYWQgaW5wdXQgYXQgY2hhciBudW1iZXIgJWk6ICVzXCIgaSBzKVxuICB8IHggLT4gcmFpc2UgeFxuXG5cbigqIEdldCB0aGUgY29udGVudCBvZiBhIGNvdW50ZXIgZnJvbSBhbiBpbnB1dCBidWZmZXIuICopXG5sZXQgZ2V0X2NvdW50ZXIgaWIgY291bnRlciA9XG4gIG1hdGNoIGNvdW50ZXIgd2l0aFxuICB8IExpbmVfY291bnRlciAtPiBTY2FubmluZy5saW5lX2NvdW50IGliXG4gIHwgQ2hhcl9jb3VudGVyIC0+IFNjYW5uaW5nLmNoYXJfY291bnQgaWJcbiAgfCBUb2tlbl9jb3VudGVyIC0+IFNjYW5uaW5nLnRva2VuX2NvdW50IGliXG5cblxuKCogQ29tcHV0ZSB0aGUgd2lkdGggb2YgYSBwYWRkaW5nIG9wdGlvbiAoc2VlIFwiJTQye1wiIGFuZCBcIiUxMjMoXCIpLiAqKVxubGV0IHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCA9IG1hdGNoIHBhZF9vcHQgd2l0aFxuICB8IE5vbmUgLT4gbWF4X2ludFxuICB8IFNvbWUgd2lkdGggLT4gd2lkdGhcblxuXG5sZXQgc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmcgPVxuICBpZiBmbXRpbmcgPSBFc2NhcGVkX3BlcmNlbnQgdGhlbiAnJScsIFwiXCIgZWxzZVxuICAgIGxldCBzdHIgPSBzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm10aW5nIGluXG4gICAgbGV0IHN0cCA9IHN0ci5bMV0gaW5cbiAgICBsZXQgc3ViX3N0ciA9IFN0cmluZy5zdWIgc3RyIDIgKFN0cmluZy5sZW5ndGggc3RyIC0gMikgaW5cbiAgICBzdHAsIHN1Yl9zdHJcblxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogUmVhZGVyIG1hbmFnZW1lbnQgKilcblxuKCogQSBjYWxsIHRvIHRha2VfZm9ybWF0X3JlYWRlcnMgb24gYSBmb3JtYXQgaXMgZXZhbHVhdGVkIGludG8gZnVuY3Rpb25zXG4gICB0YWtpbmcgcmVhZGVycyBhcyBhcmd1bWVudHMgYW5kIGFnZ3JlZ2F0ZSB0aGVtIGludG8gYW4gaGV0ZXJvZ2VuZW91cyBsaXN0ICopXG4oKiBXaGVuIGFsbCByZWFkZXJzIGFyZSB0YWtlbiwgZmluYWxseSBwYXNzIHRoZSBsaXN0IG9mIHRoZSByZWFkZXJzIHRvIHRoZVxuICAgY29udGludWF0aW9uIGsuICopXG5sZXQgcmVjIHRha2VfZm9ybWF0X3JlYWRlcnMgOiB0eXBlIGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICBkID1cbmZ1biBrIGZtdCAtPiBtYXRjaCBmbXQgd2l0aFxuICB8IFJlYWRlciBmbXRfcmVzdCAtPlxuICAgIGZ1biByZWFkZXIgLT5cbiAgICAgIGxldCBuZXdfayByZWFkZXJzX3Jlc3QgPSBrIChDb25zIChyZWFkZXIsIHJlYWRlcnNfcmVzdCkpIGluXG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIG5ld19rIGZtdF9yZXN0XG4gIHwgQ2hhciByZXN0ICAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBDYW1sX2NoYXIgcmVzdCAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFN0cmluZyAoXywgcmVzdCkgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ2FtbF9zdHJpbmcgKF8sIHJlc3QpICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQgKF8sIF8sIF8sIHJlc3QpICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEludDMyIChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgTmF0aXZlaW50IChfLCBfLCBfLCByZXN0KSAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBJbnQ2NCAoXywgXywgXywgcmVzdCkgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IEZsb2F0IChfLCBfLCBfLCByZXN0KSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQm9vbCAoXywgcmVzdCkgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBBbHBoYSByZXN0ICAgICAgICAgICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IFRoZXRhIHJlc3QgICAgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgRmx1c2ggcmVzdCAgICAgICAgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTdHJpbmdfbGl0ZXJhbCAoXywgcmVzdCkgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuICB8IENoYXJfbGl0ZXJhbCAoXywgcmVzdCkgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgQ3VzdG9tIChfLCBfLCByZXN0KSAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcblxuICB8IFNjYW5fY2hhcl9zZXQgKF8sIF8sIHJlc3QpICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayByZXN0XG4gIHwgU2Nhbl9nZXRfY291bnRlciAoXywgcmVzdCkgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBTY2FuX25leHRfY2hhciByZXN0ICAgICAgICAgICAgICAtPiB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgcmVzdFxuXG4gIHwgRm9ybWF0dGluZ19saXQgKF8sIHJlc3QpICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10LCBfKSksIHJlc3QpIC0+XG4gICAgICB0YWtlX2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXQgZm10IHJlc3QpXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCwgXykpLCByZXN0KSAtPlxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIChjb25jYXRfZm10IGZtdCByZXN0KVxuXG4gIHwgRm9ybWF0X2FyZyAoXywgXywgcmVzdCkgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIHJlc3RcbiAgfCBGb3JtYXRfc3Vic3QgKF8sIGZtdHR5LCByZXN0KSAgICAtPlxuICAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgKGVyYXNlX3JlbCAoc3ltbSBmbXR0eSkpIHJlc3RcbiAgfCBJZ25vcmVkX3BhcmFtIChpZ24sIHJlc3QpICAgICAgICAtPiB0YWtlX2lnbm9yZWRfZm9ybWF0X3JlYWRlcnMgayBpZ24gcmVzdFxuXG4gIHwgRW5kX29mX2Zvcm1hdCAgICAgICAgICAgICAgICAgICAgLT4gayBOaWxcblxuKCogVGFrZSByZWFkZXJzIGFzc29jaWF0ZWQgdG8gYW4gZm10dHkgY29taW5nIGZyb20gYSBGb3JtYXRfc3Vic3QgXCIlKC4uLiUpXCIuICopXG5hbmQgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyA6IHR5cGUgeCB5IGEgYyBkIGUgZiAuXG4gICAgKChkLCBlKSBoZXRlcl9saXN0IC0+IGUpIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCB4LCB5KSBmbXR0eSAtPlxuICAgICAgKHksIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIHgsIGUsIGYpIGZtdCAtPiBkID1cbmZ1biBrIGZtdHR5IGZtdCAtPiBtYXRjaCBmbXR0eSB3aXRoXG4gIHwgUmVhZGVyX3R5IGZtdF9yZXN0IC0+XG4gICAgZnVuIHJlYWRlciAtPlxuICAgICAgbGV0IG5ld19rIHJlYWRlcnNfcmVzdCA9IGsgKENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSkgaW5cbiAgICAgIHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgbmV3X2sgZm10X3Jlc3QgZm10XG4gIHwgSWdub3JlZF9yZWFkZXJfdHkgZm10X3Jlc3QgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRfcmVzdCBmbXRcbiAgfCBDaGFyX3R5IHJlc3QgICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgU3RyaW5nX3R5IHJlc3QgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludF90eSByZXN0ICAgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBJbnQzMl90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgTmF0aXZlaW50X3R5IHJlc3QgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEludDY0X3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBGbG9hdF90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQm9vbF90eSByZXN0ICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEFscGhhX3R5IHJlc3QgICAgICAgICAgICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBUaGV0YV90eSByZXN0ICAgICAgICAgICAgICAgLT4gdGFrZV9mbXR0eV9mb3JtYXRfcmVhZGVycyBrIHJlc3QgZm10XG4gIHwgQW55X3R5IHJlc3QgICAgICAgICAgICAgICAgIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayByZXN0IGZtdFxuICB8IEZvcm1hdF9hcmdfdHkgKF8sIHJlc3QpICAgICAtPiB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgcmVzdCBmbXRcbiAgfCBFbmRfb2ZfZm10dHkgICAgICAgICAgICAgICAgLT4gdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuICB8IEZvcm1hdF9zdWJzdF90eSAodHkxLCB0eTIsIHJlc3QpIC0+XG4gICAgbGV0IHR5ID0gdHJhbnMgKHN5bW0gdHkxKSB0eTIgaW5cbiAgICB0YWtlX2ZtdHR5X2Zvcm1hdF9yZWFkZXJzIGsgKGNvbmNhdF9mbXR0eSB0eSByZXN0KSBmbXRcblxuKCogVGFrZSByZWFkZXJzIGFzc29jaWF0ZWQgdG8gYW4gaWdub3JlZCBwYXJhbWV0ZXIuICopXG5hbmQgdGFrZV9pZ25vcmVkX2Zvcm1hdF9yZWFkZXJzIDogdHlwZSB4IHkgYSBjIGQgZSBmIC5cbiAgICAoKGQsIGUpIGhldGVyX2xpc3QgLT4gZSkgLT4gKGEsIFNjYW5uaW5nLmluX2NoYW5uZWwsIGMsIGQsIHgsIHkpIGlnbm9yZWQgLT5cbiAgICAgICh5LCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCB4LCBlLCBmKSBmbXQgLT4gZCA9XG5mdW4gayBpZ24gZm10IC0+IG1hdGNoIGlnbiB3aXRoXG4gIHwgSWdub3JlZF9yZWFkZXIgLT5cbiAgICBmdW4gcmVhZGVyIC0+XG4gICAgICBsZXQgbmV3X2sgcmVhZGVyc19yZXN0ID0gayAoQ29ucyAocmVhZGVyLCByZWFkZXJzX3Jlc3QpKSBpblxuICAgICAgdGFrZV9mb3JtYXRfcmVhZGVycyBuZXdfayBmbXRcbiAgfCBJZ25vcmVkX2NoYXIgICAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfY2hhciAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3N0cmluZyBfICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2NhbWxfc3RyaW5nIF8gICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludCAoXywgXykgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludDMyIChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX25hdGl2ZWludCAoXywgXykgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2ludDY0IChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zsb2F0IChfLCBfKSAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Jvb2wgXyAgICAgICAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9hcmcgXyAgICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX2Zvcm1hdF9zdWJzdCAoXywgZm10dHkpIC0+IHRha2VfZm10dHlfZm9ybWF0X3JlYWRlcnMgayBmbXR0eSBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fY2hhcl9zZXQgXyAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fZ2V0X2NvdW50ZXIgXyAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcbiAgfCBJZ25vcmVkX3NjYW5fbmV4dF9jaGFyICAgICAgICAgIC0+IHRha2VfZm9ybWF0X3JlYWRlcnMgayBmbXRcblxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCogR2VuZXJpYyBzY2FubmluZyAqKVxuXG4oKiBNYWtlIGEgZ2VuZXJpYyBzY2FubmluZyBmdW5jdGlvbi4gKilcbigqIFNjYW4gYSBzdHJlYW0gYWNjb3JkaW5nIHRvIGEgZm9ybWF0IGFuZCByZWFkZXJzIG9idGFpbmVkIGJ5XG4gICB0YWtlX2Zvcm1hdF9yZWFkZXJzLCBhbmQgYWdncmVnYXRlIHNjYW5uZWQgdmFsdWVzIGludG8gYW5cbiAgIGhldGVyb2dlbmVvdXMgbGlzdC4gKilcbigqIFJldHVybiB0aGUgaGV0ZXJvZ2VuZW91cyBsaXN0IG9mIHNjYW5uZWQgdmFsdWVzLiAqKVxubGV0IHJlYyBtYWtlX3NjYW5mIDogdHlwZSBhIGMgZCBlIGYuXG4gICAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoYSwgU2Nhbm5pbmcuaW5fY2hhbm5lbCwgYywgZCwgZSwgZikgZm10IC0+XG4gICAgICAoZCwgZSkgaGV0ZXJfbGlzdCAtPiAoYSwgZikgaGV0ZXJfbGlzdCA9XG5mdW4gaWIgZm10IHJlYWRlcnMgLT4gbWF0Y2ggZm10IHdpdGhcbiAgfCBDaGFyIHJlc3QgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2hhciAwIGliIGluXG4gICAgbGV0IGMgPSB0b2tlbl9jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgQ2FtbF9jaGFyIHJlc3QgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9jaGFyIDAgaWIgaW5cbiAgICBsZXQgYyA9IHRva2VuX2NoYXIgaWIgaW5cbiAgICBDb25zIChjLCBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVycylcblxuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkpIC0+XG4gICAgbGV0IHN0cCwgc3RyID0gc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lIHN0cCkgd2lkdGggaWIgaW5cbiAgICBsZXQgc3RyX3Jlc3QgPSBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHN0cl9yZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuICB8IFN0cmluZyAocGFkLCBGb3JtYXR0aW5nX2dlbiAoT3Blbl90YWcgKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9zdHJpbmcgKFNvbWUgJ3snKSB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW5cbiAgICAgICAgICAgICAgICAgICB0b2tlbl9zdHJpbmdcbiAgfCBTdHJpbmcgKHBhZCwgRm9ybWF0dGluZ19nZW4gKE9wZW5fYm94IChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIChTb21lICdbJykgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuXG4gICAgICAgICAgICAgICAgICAgdG9rZW5fc3RyaW5nXG4gIHwgU3RyaW5nIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5fc3RyaW5nIE5vbmUgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIE5vX3ByZWNpc2lvbiBzY2FuIHRva2VuX3N0cmluZ1xuXG4gIHwgQ2FtbF9zdHJpbmcgKHBhZCwgcmVzdCkgLT5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9jYW1sX3N0cmluZyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgTm9fcHJlY2lzaW9uIHNjYW4gdG9rZW5fc3RyaW5nXG4gIHwgSW50IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQgYylcbiAgfCBJbnQzMiAoaWNvbnYsIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBsZXQgYyA9IGludGVnZXJfY29udmVyc2lvbl9vZl9jaGFyIChjaGFyX29mX2ljb252IGljb252KSBpblxuICAgIGxldCBzY2FuIHdpZHRoIF8gaWIgPSBzY2FuX2ludF9jb252ZXJzaW9uIGMgd2lkdGggaWIgaW5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2NhbiAodG9rZW5faW50MzIgYylcbiAgfCBOYXRpdmVpbnQgKGljb252LCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgbGV0IGMgPSBpbnRlZ2VyX2NvbnZlcnNpb25fb2ZfY2hhciAoY2hhcl9vZl9pY29udiBpY29udikgaW5cbiAgICBsZXQgc2NhbiB3aWR0aCBfIGliID0gc2Nhbl9pbnRfY29udmVyc2lvbiBjIHdpZHRoIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW4gKHRva2VuX25hdGl2ZWludCBjKVxuICB8IEludDY0IChpY29udiwgcGFkLCBwcmVjLCByZXN0KSAtPlxuICAgIGxldCBjID0gaW50ZWdlcl9jb252ZXJzaW9uX29mX2NoYXIgKGNoYXJfb2ZfaWNvbnYgaWNvbnYpIGluXG4gICAgbGV0IHNjYW4gd2lkdGggXyBpYiA9IHNjYW5faW50X2NvbnZlcnNpb24gYyB3aWR0aCBpYiBpblxuICAgIHBhZF9wcmVjX3NjYW5mIGliIHJlc3QgcmVhZGVycyBwYWQgcHJlYyBzY2FuICh0b2tlbl9pbnQ2NCBjKVxuICB8IEZsb2F0ICgoXywgKEZsb2F0X0YgfCBGbG9hdF9DRikpLCBwYWQsIHByZWMsIHJlc3QpIC0+XG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBwcmVjIHNjYW5fY2FtbF9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEZsb2F0ICgoXywgKEZsb2F0X2YgfCBGbG9hdF9lIHwgRmxvYXRfRSB8IEZsb2F0X2cgfCBGbG9hdF9HKSksXG4gICAgICAgICAgIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9mbG9hdCB0b2tlbl9mbG9hdFxuICB8IEZsb2F0ICgoXywgKEZsb2F0X2ggfCBGbG9hdF9IKSksIHBhZCwgcHJlYywgcmVzdCkgLT5cbiAgICBwYWRfcHJlY19zY2FuZiBpYiByZXN0IHJlYWRlcnMgcGFkIHByZWMgc2Nhbl9oZXhfZmxvYXQgdG9rZW5fZmxvYXRcbiAgfCBCb29sIChwYWQsIHJlc3QpIC0+XG4gICAgbGV0IHNjYW4gXyBfIGliID0gc2Nhbl9ib29sIGliIGluXG4gICAgcGFkX3ByZWNfc2NhbmYgaWIgcmVzdCByZWFkZXJzIHBhZCBOb19wcmVjaXNpb24gc2NhbiB0b2tlbl9ib29sXG4gIHwgQWxwaGEgXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlYVxcXCJcIlxuICB8IFRoZXRhIF8gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJXRcXFwiXCJcbiAgfCBDdXN0b20gXyAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlP1xcXCIgKGN1c3RvbSBjb252ZXJ0ZXIpXCJcbiAgfCBSZWFkZXIgZm10X3Jlc3QgLT5cbiAgICBiZWdpbiBtYXRjaCByZWFkZXJzIHdpdGhcbiAgICB8IENvbnMgKHJlYWRlciwgcmVhZGVyc19yZXN0KSAtPlxuICAgICAgICBsZXQgeCA9IHJlYWRlciBpYiBpblxuICAgICAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdF9yZXN0IHJlYWRlcnNfcmVzdClcbiAgICB8IE5pbCAtPlxuICAgICAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBtaXNzaW5nIHJlYWRlclwiXG4gICAgZW5kXG4gIHwgRmx1c2ggcmVzdCAtPlxuICAgIGlmIFNjYW5uaW5nLmVuZF9vZl9pbnB1dCBpYiB0aGVuIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gICAgZWxzZSBiYWRfaW5wdXQgXCJlbmQgb2YgaW5wdXQgbm90IGZvdW5kXCJcblxuICB8IFN0cmluZ19saXRlcmFsIChzdHIsIHJlc3QpIC0+XG4gICAgU3RyaW5nLml0ZXIgKGNoZWNrX2NoYXIgaWIpIHN0cjtcbiAgICBtYWtlX3NjYW5mIGliIHJlc3QgcmVhZGVyc1xuICB8IENoYXJfbGl0ZXJhbCAoY2hyLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgY2hyO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG5cbiAgfCBGb3JtYXRfYXJnIChwYWRfb3B0LCBmbXR0eSwgcmVzdCkgLT5cbiAgICBsZXQgXyA9IHNjYW5fY2FtbF9zdHJpbmcgKHdpZHRoX29mX3BhZF9vcHQgcGFkX29wdCkgaWIgaW5cbiAgICBsZXQgcyA9IHRva2VuX3N0cmluZyBpYiBpblxuICAgIGxldCBmbXQgPVxuICAgICAgdHJ5IGZvcm1hdF9vZl9zdHJpbmdfZm10dHkgcyBmbXR0eVxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnXG4gICAgaW5cbiAgICBDb25zIChmbXQsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IEZvcm1hdF9zdWJzdCAocGFkX29wdCwgZm10dHksIHJlc3QpIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nICh3aWR0aF9vZl9wYWRfb3B0IHBhZF9vcHQpIGliIGluXG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgZm10LCBmbXQnID1cbiAgICAgIHRyeVxuICAgICAgICBsZXQgRm10X0VCQiBmbXQgPSBmbXRfZWJiX29mX3N0cmluZyBzIGluXG4gICAgICAgIGxldCBGbXRfRUJCIGZtdCcgPSBmbXRfZWJiX29mX3N0cmluZyBzIGluXG4gICAgICAgICgqIFRPRE86IGZpbmQgYSB3YXkgdG8gYXZvaWQgcmVwYXJzaW5nIHR3aWNlICopXG5cbiAgICAgICAgKCogVE9ETzogdGhlc2UgdHlwZS1jaGVja3MgYmVsb3cgKmNhbiogZmFpbCBiZWNhdXNlIG9mIHR5cGVcbiAgICAgICAgICAgYW1iaWd1aXR5IGluIHByZXNlbmNlIG9mIGlnbm9yZWQtcmVhZGVyczogXCIlX3IlZFwiIGFuZCBcIiVkJV9yXCJcbiAgICAgICAgICAgYXJlIHR5cGVkIGluIHRoZSBzYW1lIHdheS5cblxuICAgICAgICAgICAjIFNjYW5mLnNzY2FuZiBcIlxcXCIlX3IlZFxcXCIzXCIgXCIlKCVkJV9yJSlcIiBpZ25vcmVcbiAgICAgICAgICAgICAoZnVuIGZtdCBuIC0+IHN0cmluZ19vZl9mb3JtYXQgZm10LCBuKVxuICAgICAgICAgICBFeGNlcHRpb246IENhbWxpbnRlcm5hbEZvcm1hdC5UeXBlX21pc21hdGNoLlxuXG4gICAgICAgICAgIFdlIHNob3VsZCBwcm9wZXJseSBjYXRjaCB0aGlzIGV4Y2VwdGlvbi5cbiAgICAgICAgKilcbiAgICAgICAgdHlwZV9mb3JtYXQgZm10IChlcmFzZV9yZWwgZm10dHkpLFxuICAgICAgICB0eXBlX2Zvcm1hdCBmbXQnIChlcmFzZV9yZWwgKHN5bW0gZm10dHkpKVxuICAgICAgd2l0aCBGYWlsdXJlIG1zZyAtPiBiYWRfaW5wdXQgbXNnXG4gICAgaW5cbiAgICBDb25zIChGb3JtYXQgKGZtdCwgcyksXG4gICAgICAgICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnMpXG5cbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCBGb3JtYXR0aW5nX2xpdCAoZm10aW5nX2xpdCwgcmVzdCkpIC0+XG4gICAgbGV0IHN0cCwgc3RyID0gc3RvcHBlcl9vZl9mb3JtYXR0aW5nX2xpdCBmbXRpbmdfbGl0IGluXG4gICAgbGV0IHdpZHRoID0gd2lkdGhfb2ZfcGFkX29wdCB3aWR0aF9vcHQgaW5cbiAgICBzY2FuX2NoYXJzX2luX2NoYXJfc2V0IGNoYXJfc2V0IChTb21lIHN0cCkgd2lkdGggaWI7XG4gICAgbGV0IHMgPSB0b2tlbl9zdHJpbmcgaWIgaW5cbiAgICBsZXQgc3RyX3Jlc3QgPSBTdHJpbmdfbGl0ZXJhbCAoc3RyLCByZXN0KSBpblxuICAgIENvbnMgKHMsIG1ha2Vfc2NhbmYgaWIgc3RyX3Jlc3QgcmVhZGVycylcbiAgfCBTY2FuX2NoYXJfc2V0ICh3aWR0aF9vcHQsIGNoYXJfc2V0LCByZXN0KSAtPlxuICAgIGxldCB3aWR0aCA9IHdpZHRoX29mX3BhZF9vcHQgd2lkdGhfb3B0IGluXG4gICAgc2Nhbl9jaGFyc19pbl9jaGFyX3NldCBjaGFyX3NldCBOb25lIHdpZHRoIGliO1xuICAgIGxldCBzID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgQ29ucyAocywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG4gIHwgU2Nhbl9nZXRfY291bnRlciAoY291bnRlciwgcmVzdCkgLT5cbiAgICBsZXQgY291bnQgPSBnZXRfY291bnRlciBpYiBjb3VudGVyIGluXG4gICAgQ29ucyAoY291bnQsIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzKVxuICB8IFNjYW5fbmV4dF9jaGFyIHJlc3QgLT5cbiAgICBsZXQgYyA9IFNjYW5uaW5nLmNoZWNrZWRfcGVla19jaGFyIGliIGluXG4gICAgQ29ucyAoYywgbWFrZV9zY2FuZiBpYiByZXN0IHJlYWRlcnMpXG5cbiAgfCBGb3JtYXR0aW5nX2xpdCAoZm9ybWF0dGluZ19saXQsIHJlc3QpIC0+XG4gICAgU3RyaW5nLml0ZXIgKGNoZWNrX2NoYXIgaWIpIChzdHJpbmdfb2ZfZm9ybWF0dGluZ19saXQgZm9ybWF0dGluZ19saXQpO1xuICAgIG1ha2Vfc2NhbmYgaWIgcmVzdCByZWFkZXJzXG4gIHwgRm9ybWF0dGluZ19nZW4gKE9wZW5fdGFnIChGb3JtYXQgKGZtdCcsIF8pKSwgcmVzdCkgLT5cbiAgICBjaGVja19jaGFyIGliICdAJzsgY2hlY2tfY2hhciBpYiAneyc7XG4gICAgbWFrZV9zY2FuZiBpYiAoY29uY2F0X2ZtdCBmbXQnIHJlc3QpIHJlYWRlcnNcbiAgfCBGb3JtYXR0aW5nX2dlbiAoT3Blbl9ib3ggKEZvcm1hdCAoZm10JywgXykpLCByZXN0KSAtPlxuICAgIGNoZWNrX2NoYXIgaWIgJ0AnOyBjaGVja19jaGFyIGliICdbJztcbiAgICBtYWtlX3NjYW5mIGliIChjb25jYXRfZm10IGZtdCcgcmVzdCkgcmVhZGVyc1xuXG4gIHwgSWdub3JlZF9wYXJhbSAoaWduLCByZXN0KSAtPlxuICAgIGxldCBQYXJhbV9mb3JtYXRfRUJCIGZtdCcgPSBwYXJhbV9mb3JtYXRfb2ZfaWdub3JlZF9mb3JtYXQgaWduIHJlc3QgaW5cbiAgICBiZWdpbiBtYXRjaCBtYWtlX3NjYW5mIGliIGZtdCcgcmVhZGVycyB3aXRoXG4gICAgfCBDb25zIChfLCBhcmdfcmVzdCkgLT4gYXJnX3Jlc3RcbiAgICB8IE5pbCAtPiBhc3NlcnQgZmFsc2VcbiAgICBlbmRcblxuICB8IEVuZF9vZl9mb3JtYXQgLT5cbiAgICBOaWxcblxuKCogQ2FzZSBhbmFseXNpcyBvbiBwYWRkaW5nIGFuZCBwcmVjaXNpb24uICopXG4oKiBSZWplY3QgZm9ybWF0cyBjb250YWluaW5nIFwiJSpcIiBvciBcIiUuKlwiLiAqKVxuKCogUGFzcyBwYWRkaW5nIGFuZCBwcmVjaXNpb24gdG8gdGhlIGdlbmVyaWMgc2Nhbm5lciBgc2NhbicuICopXG5hbmQgcGFkX3ByZWNfc2NhbmYgOiB0eXBlIGEgYyBkIGUgZiB4IHkgeiB0IC5cbiAgICBTY2FubmluZy5pbl9jaGFubmVsIC0+IChhLCBTY2FubmluZy5pbl9jaGFubmVsLCBjLCBkLCBlLCBmKSBmbXQgLT5cbiAgICAgIChkLCBlKSBoZXRlcl9saXN0IC0+ICh4LCB5KSBwYWRkaW5nIC0+ICh5LCB6IC0+IGEpIHByZWNpc2lvbiAtPlxuICAgICAgKGludCAtPiBpbnQgLT4gU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiB0KSAtPlxuICAgICAgKFNjYW5uaW5nLmluX2NoYW5uZWwgLT4geikgLT5cbiAgICAgICh4LCBmKSBoZXRlcl9saXN0ID1cbmZ1biBpYiBmbXQgcmVhZGVycyBwYWQgcHJlYyBzY2FuIHRva2VuIC0+IG1hdGNoIHBhZCwgcHJlYyB3aXRoXG4gIHwgTm9fcGFkZGluZywgTm9fcHJlY2lzaW9uIC0+XG4gICAgbGV0IF8gPSBzY2FuIG1heF9pbnQgbWF4X2ludCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IE5vX3BhZGRpbmcsIExpdF9wcmVjaXNpb24gcCAtPlxuICAgIGxldCBfID0gc2NhbiBtYXhfaW50IHAgaWIgaW5cbiAgICBsZXQgeCA9IHRva2VuIGliIGluXG4gICAgQ29ucyAoeCwgbWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycylcbiAgfCBMaXRfcGFkZGluZyAoKFJpZ2h0IHwgWmVyb3MpLCB3KSwgTm9fcHJlY2lzaW9uIC0+XG4gICAgbGV0IF8gPSBzY2FuIHcgbWF4X2ludCBpYiBpblxuICAgIGxldCB4ID0gdG9rZW4gaWIgaW5cbiAgICBDb25zICh4LCBtYWtlX3NjYW5mIGliIGZtdCByZWFkZXJzKVxuICB8IExpdF9wYWRkaW5nICgoUmlnaHQgfCBaZXJvcyksIHcpLCBMaXRfcHJlY2lzaW9uIHAgLT5cbiAgICBsZXQgXyA9IHNjYW4gdyBwIGliIGluXG4gICAgbGV0IHggPSB0b2tlbiBpYiBpblxuICAgIENvbnMgKHgsIG1ha2Vfc2NhbmYgaWIgZm10IHJlYWRlcnMpXG4gIHwgTGl0X3BhZGRpbmcgKExlZnQsIF8pLCBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUtXFxcIlwiXG4gIHwgTGl0X3BhZGRpbmcgKChSaWdodCB8IFplcm9zKSwgXyksIEFyZ19wcmVjaXNpb24gLT5cbiAgICBpbnZhbGlkX2FyZyBcInNjYW5mOiBiYWQgY29udmVyc2lvbiBcXFwiJSpcXFwiXCJcbiAgfCBBcmdfcGFkZGluZyBfLCBfIC0+XG4gICAgaW52YWxpZF9hcmcgXCJzY2FuZjogYmFkIGNvbnZlcnNpb24gXFxcIiUqXFxcIlwiXG4gIHwgTm9fcGFkZGluZywgQXJnX3ByZWNpc2lvbiAtPlxuICAgIGludmFsaWRfYXJnIFwic2NhbmY6IGJhZCBjb252ZXJzaW9uIFxcXCIlKlxcXCJcIlxuXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuICAgICAgICAgICAgKCogRGVmaW5pbmcgW3NjYW5mXSBhbmQgdmFyaW91cyBmbGF2b3JzIG9mIFtzY2FuZl0gKilcblxudHlwZSAnYSBrc2NhbmZfcmVzdWx0ID0gQXJncyBvZiAnYSB8IEV4YyBvZiBleG5cblxubGV0IGtzY2FuZiBpYiBlZiAoRm9ybWF0IChmbXQsIHN0cikpID1cbiAgbGV0IHJlYyBhcHBseSA6IHR5cGUgYSBiIC4gYSAtPiAoYSwgYikgaGV0ZXJfbGlzdCAtPiBiID1cbiAgICBmdW4gZiBhcmdzIC0+IG1hdGNoIGFyZ3Mgd2l0aFxuICAgIHwgQ29ucyAoeCwgcikgLT4gYXBwbHkgKGYgeCkgclxuICAgIHwgTmlsIC0+IGZcbiAgaW5cbiAgbGV0IGsgcmVhZGVycyBmID1cbiAgICBTY2FubmluZy5yZXNldF90b2tlbiBpYjtcbiAgICBtYXRjaCB0cnkgQXJncyAobWFrZV9zY2FuZiBpYiBmbXQgcmVhZGVycykgd2l0aFxuICAgICAgfCAoU2Nhbl9mYWlsdXJlIF8gfCBGYWlsdXJlIF8gfCBFbmRfb2ZfZmlsZSkgYXMgZXhjIC0+IEV4YyBleGNcbiAgICAgIHwgSW52YWxpZF9hcmd1bWVudCBtc2cgLT5cbiAgICAgICAgaW52YWxpZF9hcmcgKG1zZyBeIFwiIGluIGZvcm1hdCBcXFwiXCIgXiBTdHJpbmcuZXNjYXBlZCBzdHIgXiBcIlxcXCJcIilcbiAgICB3aXRoXG4gICAgICB8IEFyZ3MgYXJncyAtPiBhcHBseSBmIGFyZ3NcbiAgICAgIHwgRXhjIGV4YyAtPiBlZiBpYiBleGNcbiAgaW5cbiAgdGFrZV9mb3JtYXRfcmVhZGVycyBrIGZtdFxuXG4oKioqKVxuXG5sZXQga2JzY2FuZiA9IGtzY2FuZlxubGV0IGJzY2FuZiBpYiBmbXQgPSBrYnNjYW5mIGliIHNjYW5mX2JhZF9pbnB1dCBmbXRcblxubGV0IGtzc2NhbmYgcyBlZiBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBlZiBmbXRcbmxldCBzc2NhbmYgcyBmbXQgPSBrYnNjYW5mIChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBzY2FuZl9iYWRfaW5wdXQgZm10XG5cbmxldCBzY2FuZiBmbXQgPSBrc2NhbmYgU2Nhbm5pbmcuc3RkaWIgc2NhbmZfYmFkX2lucHV0IGZtdFxuXG4oKioqKVxuXG4oKiBTY2FubmluZyBmb3JtYXQgc3RyaW5ncy4gKilcbmxldCBic2NhbmZfZm9ybWF0IDpcbiAgU2Nhbm5pbmcuaW5fY2hhbm5lbCAtPiAoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPlxuICAoKCdhLCAnYiwgJ2MsICdkLCAnZSwgJ2YpIGZvcm1hdDYgLT4gJ2cpIC0+ICdnID1cbiAgZnVuIGliIGZvcm1hdCBmIC0+XG4gICAgbGV0IF8gPSBzY2FuX2NhbWxfc3RyaW5nIG1heF9pbnQgaWIgaW5cbiAgICBsZXQgc3RyID0gdG9rZW5fc3RyaW5nIGliIGluXG4gICAgbGV0IGZtdCcgPVxuICAgICAgdHJ5IGZvcm1hdF9vZl9zdHJpbmdfZm9ybWF0IHN0ciBmb3JtYXRcbiAgICAgIHdpdGggRmFpbHVyZSBtc2cgLT4gYmFkX2lucHV0IG1zZyBpblxuICAgIGYgZm10J1xuXG5cbmxldCBzc2NhbmZfZm9ybWF0IDpcbiAgc3RyaW5nIC0+ICgnYSwgJ2IsICdjLCAnZCwgJ2UsICdmKSBmb3JtYXQ2IC0+XG4gICgoJ2EsICdiLCAnYywgJ2QsICdlLCAnZikgZm9ybWF0NiAtPiAnZykgLT4gJ2cgPVxuICBmdW4gcyBmb3JtYXQgZiAtPiBic2NhbmZfZm9ybWF0IChTY2FubmluZy5mcm9tX3N0cmluZyBzKSBmb3JtYXQgZlxuXG5cbmxldCBmb3JtYXRfZnJvbV9zdHJpbmcgcyBmbXQgPVxuICBzc2NhbmZfZm9ybWF0IChcIlxcXCJcIiBeIFN0cmluZy5lc2NhcGVkIHMgXiBcIlxcXCJcIikgZm10IChmdW4geCAtPiB4KVxuXG5cbmxldCB1bmVzY2FwZWQgcyA9XG4gIHNzY2FuZiAoXCJcXFwiXCIgXiBzIF4gXCJcXFwiXCIpIFwiJVMlIVwiIChmdW4geCAtPiB4KVxuXG5cbigqIERlcHJlY2F0ZWQgKilcbmxldCBrZnNjYW5mIGljIGVmIGZtdCA9IGtic2NhbmYgKFNjYW5uaW5nLm1lbW9fZnJvbV9jaGFubmVsIGljKSBlZiBmbXRcbmxldCBmc2NhbmYgaWMgZm10ID0ga3NjYW5mIChTY2FubmluZy5tZW1vX2Zyb21fY2hhbm5lbCBpYykgc2NhbmZfYmFkX2lucHV0IGZtdFxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG4oKiBSZWdpc3RlcmluZyBPQ2FtbCB2YWx1ZXMgd2l0aCB0aGUgQyBydW50aW1lIGZvciBsYXRlciBjYWxsYmFja3MgKilcblxuZXh0ZXJuYWwgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgOiBzdHJpbmcgLT4gT2JqLnQgLT4gdW5pdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSBcImNhbWxfcmVnaXN0ZXJfbmFtZWRfdmFsdWVcIlxuXG5sZXQgcmVnaXN0ZXIgbmFtZSB2ID1cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgbmFtZSAoT2JqLnJlcHIgdilcblxubGV0IHJlZ2lzdGVyX2V4Y2VwdGlvbiBuYW1lIChleG4gOiBleG4pID1cbiAgbGV0IGV4biA9IE9iai5yZXByIGV4biBpblxuICBsZXQgc2xvdCA9IGlmIE9iai50YWcgZXhuID0gT2JqLm9iamVjdF90YWcgdGhlbiBleG4gZWxzZSBPYmouZmllbGQgZXhuIDAgaW5cbiAgcmVnaXN0ZXJfbmFtZWRfdmFsdWUgbmFtZSBzbG90XG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICBKZXJvbWUgVm91aWxsb24sIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbm9wZW4gT2JqXG5cbigqKioqIE9iamVjdCByZXByZXNlbnRhdGlvbiAqKioqKVxuXG5leHRlcm5hbCBzZXRfaWQ6ICdhIC0+ICdhID0gXCJjYW1sX3NldF9vb19pZFwiIFtAQG5vYWxsb2NdXG5cbigqKioqIE9iamVjdCBjb3B5ICoqKiopXG5cbmxldCBjb3B5IG8gPVxuICBsZXQgbyA9IChPYmoub2JqIChPYmouZHVwIChPYmoucmVwciBvKSkpIGluXG4gIHNldF9pZCBvXG5cbigqKioqIENvbXByZXNzaW9uIG9wdGlvbnMgKioqKilcbigqIFBhcmFtZXRlcnMgKilcbnR5cGUgcGFyYW1zID0ge1xuICAgIG11dGFibGUgY29tcGFjdF90YWJsZSA6IGJvb2w7XG4gICAgbXV0YWJsZSBjb3B5X3BhcmVudCA6IGJvb2w7XG4gICAgbXV0YWJsZSBjbGVhbl93aGVuX2NvcHlpbmcgOiBib29sO1xuICAgIG11dGFibGUgcmV0cnlfY291bnQgOiBpbnQ7XG4gICAgbXV0YWJsZSBidWNrZXRfc21hbGxfc2l6ZSA6IGludFxuICB9XG5cbmxldCBwYXJhbXMgPSB7XG4gIGNvbXBhY3RfdGFibGUgPSB0cnVlO1xuICBjb3B5X3BhcmVudCA9IHRydWU7XG4gIGNsZWFuX3doZW5fY29weWluZyA9IHRydWU7XG4gIHJldHJ5X2NvdW50ID0gMztcbiAgYnVja2V0X3NtYWxsX3NpemUgPSAxNlxufVxuXG4oKioqKiBQYXJhbWV0ZXJzICoqKiopXG5cbmxldCBpbml0aWFsX29iamVjdF9zaXplID0gMlxuXG4oKioqKiBJdGVtcyAqKioqKVxuXG50eXBlIGl0ZW0gPSBEdW1teUEgfCBEdW1teUIgfCBEdW1teUMgb2YgaW50XG5sZXQgXyA9IFtEdW1teUE7IER1bW15QjsgRHVtbXlDIDBdICgqIHRvIGF2b2lkIHdhcm5pbmdzICopXG5cbmxldCBkdW1teV9pdGVtID0gKG1hZ2ljICgpIDogaXRlbSlcblxuKCoqKiogVHlwZXMgKioqKilcblxudHlwZSB0YWdcbnR5cGUgbGFiZWwgPSBpbnRcbnR5cGUgY2xvc3VyZSA9IGl0ZW1cbnR5cGUgdCA9IER1bW15QSB8IER1bW15QiB8IER1bW15QyBvZiBpbnRcbmxldCBfID0gW0R1bW15QTsgRHVtbXlCOyBEdW1teUMgMF0gKCogdG8gYXZvaWQgd2FybmluZ3MgKilcblxudHlwZSBvYmogPSB0IGFycmF5XG5leHRlcm5hbCByZXQgOiAob2JqIC0+ICdhKSAtPiBjbG9zdXJlID0gXCIlaWRlbnRpdHlcIlxuXG4oKioqKiBMYWJlbHMgKioqKilcblxubGV0IHB1YmxpY19tZXRob2RfbGFiZWwgcyA6IHRhZyA9XG4gIGxldCBhY2N1ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBhY2N1IDo9IDIyMyAqICFhY2N1ICsgQ2hhci5jb2RlIHMuW2ldXG4gIGRvbmU7XG4gICgqIHJlZHVjZSB0byAzMSBiaXRzICopXG4gIGFjY3UgOj0gIWFjY3UgbGFuZCAoMSBsc2wgMzEgLSAxKTtcbiAgKCogbWFrZSBpdCBzaWduZWQgZm9yIDY0IGJpdHMgYXJjaGl0ZWN0dXJlcyAqKVxuICBsZXQgdGFnID0gaWYgIWFjY3UgPiAweDNGRkZGRkZGIHRoZW4gIWFjY3UgLSAoMSBsc2wgMzEpIGVsc2UgIWFjY3UgaW5cbiAgKCogUHJpbnRmLmVwcmludGYgXCIlcyA9ICVkXFxuXCIgcyB0YWc7IGZsdXNoIHN0ZGVycjsgKilcbiAgbWFnaWMgdGFnXG5cbigqKioqIFNwYXJzZSBhcnJheSAqKioqKVxuXG5tb2R1bGUgVmFycyA9XG4gIE1hcC5NYWtlKHN0cnVjdCB0eXBlIHQgPSBzdHJpbmcgbGV0IGNvbXBhcmUgKHg6dCkgeSA9IGNvbXBhcmUgeCB5IGVuZClcbnR5cGUgdmFycyA9IGludCBWYXJzLnRcblxubW9kdWxlIE1ldGhzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IHN0cmluZyBsZXQgY29tcGFyZSAoeDp0KSB5ID0gY29tcGFyZSB4IHkgZW5kKVxudHlwZSBtZXRocyA9IGxhYmVsIE1ldGhzLnRcbm1vZHVsZSBMYWJzID1cbiAgTWFwLk1ha2Uoc3RydWN0IHR5cGUgdCA9IGxhYmVsIGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG50eXBlIGxhYnMgPSBib29sIExhYnMudFxuXG4oKiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHRoZSBmaXJzdCBmaWVsZCBvZiB0aGlzIHN0cnVjdHVyZSBpcyBbc2l6ZV0uICopXG50eXBlIHRhYmxlID1cbiB7IG11dGFibGUgc2l6ZTogaW50O1xuICAgbXV0YWJsZSBtZXRob2RzOiBjbG9zdXJlIGFycmF5O1xuICAgbXV0YWJsZSBtZXRob2RzX2J5X25hbWU6IG1ldGhzO1xuICAgbXV0YWJsZSBtZXRob2RzX2J5X2xhYmVsOiBsYWJzO1xuICAgbXV0YWJsZSBwcmV2aW91c19zdGF0ZXM6XG4gICAgIChtZXRocyAqIGxhYnMgKiAobGFiZWwgKiBpdGVtKSBsaXN0ICogdmFycyAqXG4gICAgICBsYWJlbCBsaXN0ICogc3RyaW5nIGxpc3QpIGxpc3Q7XG4gICBtdXRhYmxlIGhpZGRlbl9tZXRoczogKGxhYmVsICogaXRlbSkgbGlzdDtcbiAgIG11dGFibGUgdmFyczogdmFycztcbiAgIG11dGFibGUgaW5pdGlhbGl6ZXJzOiAob2JqIC0+IHVuaXQpIGxpc3QgfVxuXG5sZXQgZHVtbXlfdGFibGUgPVxuICB7IG1ldGhvZHMgPSBbfCBkdW1teV9pdGVtIHxdO1xuICAgIG1ldGhvZHNfYnlfbmFtZSA9IE1ldGhzLmVtcHR5O1xuICAgIG1ldGhvZHNfYnlfbGFiZWwgPSBMYWJzLmVtcHR5O1xuICAgIHByZXZpb3VzX3N0YXRlcyA9IFtdO1xuICAgIGhpZGRlbl9tZXRocyA9IFtdO1xuICAgIHZhcnMgPSBWYXJzLmVtcHR5O1xuICAgIGluaXRpYWxpemVycyA9IFtdO1xuICAgIHNpemUgPSAwIH1cblxubGV0IHRhYmxlX2NvdW50ID0gcmVmIDBcblxuKCogZHVtbXlfbWV0IHNob3VsZCBiZSBhIHBvaW50ZXIsIHNvIHVzZSBhbiBhdG9tICopXG5sZXQgZHVtbXlfbWV0IDogaXRlbSA9IG9iaiAoT2JqLm5ld19ibG9jayAwIDApXG4oKiBpZiBkZWJ1Z2dpbmcgaXMgbmVlZGVkLCB0aGlzIGNvdWxkIGJlIGEgZ29vZCBpZGVhOiAqKVxuKCogbGV0IGR1bW15X21ldCAoKSA9IGZhaWx3aXRoIFwiVW5kZWZpbmVkIG1ldGhvZFwiICopXG5cbmxldCByZWMgZml0X3NpemUgbiA9XG4gIGlmIG4gPD0gMiB0aGVuIG4gZWxzZVxuICBmaXRfc2l6ZSAoKG4rMSkvMikgKiAyXG5cbmxldCBuZXdfdGFibGUgcHViX2xhYmVscyA9XG4gIGluY3IgdGFibGVfY291bnQ7XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggcHViX2xhYmVscyBpblxuICBsZXQgbWV0aG9kcyA9IEFycmF5Lm1ha2UgKGxlbioyKzIpIGR1bW15X21ldCBpblxuICBtZXRob2RzLigwKSA8LSBtYWdpYyBsZW47XG4gIG1ldGhvZHMuKDEpIDwtIG1hZ2ljIChmaXRfc2l6ZSBsZW4gKiBTeXMud29yZF9zaXplIC8gOCAtIDEpO1xuICBmb3IgaSA9IDAgdG8gbGVuIC0gMSBkbyBtZXRob2RzLihpKjIrMykgPC0gbWFnaWMgcHViX2xhYmVscy4oaSkgZG9uZTtcbiAgeyBtZXRob2RzID0gbWV0aG9kcztcbiAgICBtZXRob2RzX2J5X25hbWUgPSBNZXRocy5lbXB0eTtcbiAgICBtZXRob2RzX2J5X2xhYmVsID0gTGFicy5lbXB0eTtcbiAgICBwcmV2aW91c19zdGF0ZXMgPSBbXTtcbiAgICBoaWRkZW5fbWV0aHMgPSBbXTtcbiAgICB2YXJzID0gVmFycy5lbXB0eTtcbiAgICBpbml0aWFsaXplcnMgPSBbXTtcbiAgICBzaXplID0gaW5pdGlhbF9vYmplY3Rfc2l6ZSB9XG5cbmxldCByZXNpemUgYXJyYXkgbmV3X3NpemUgPVxuICBsZXQgb2xkX3NpemUgPSBBcnJheS5sZW5ndGggYXJyYXkubWV0aG9kcyBpblxuICBpZiBuZXdfc2l6ZSA+IG9sZF9zaXplIHRoZW4gYmVnaW5cbiAgICBsZXQgbmV3X2J1Y2sgPSBBcnJheS5tYWtlIG5ld19zaXplIGR1bW15X21ldCBpblxuICAgIEFycmF5LmJsaXQgYXJyYXkubWV0aG9kcyAwIG5ld19idWNrIDAgb2xkX3NpemU7XG4gICAgYXJyYXkubWV0aG9kcyA8LSBuZXdfYnVja1xuIGVuZFxuXG5sZXQgcHV0IGFycmF5IGxhYmVsIGVsZW1lbnQgPVxuICByZXNpemUgYXJyYXkgKGxhYmVsICsgMSk7XG4gIGFycmF5Lm1ldGhvZHMuKGxhYmVsKSA8LSBlbGVtZW50XG5cbigqKioqIENsYXNzZXMgKioqKilcblxubGV0IG1ldGhvZF9jb3VudCA9IHJlZiAwXG5sZXQgaW5zdF92YXJfY291bnQgPSByZWYgMFxuXG4oKiB0eXBlIHQgKilcbnR5cGUgbWV0aCA9IGl0ZW1cblxubGV0IG5ld19tZXRob2QgdGFibGUgPVxuICBsZXQgaW5kZXggPSBBcnJheS5sZW5ndGggdGFibGUubWV0aG9kcyBpblxuICByZXNpemUgdGFibGUgKGluZGV4ICsgMSk7XG4gIGluZGV4XG5cbmxldCBnZXRfbWV0aG9kX2xhYmVsIHRhYmxlIG5hbWUgPVxuICB0cnlcbiAgICBNZXRocy5maW5kIG5hbWUgdGFibGUubWV0aG9kc19ieV9uYW1lXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgbGV0IGxhYmVsID0gbmV3X21ldGhvZCB0YWJsZSBpblxuICAgIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSA8LSBNZXRocy5hZGQgbmFtZSBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X25hbWU7XG4gICAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBMYWJzLmFkZCBsYWJlbCB0cnVlIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWw7XG4gICAgbGFiZWxcblxubGV0IGdldF9tZXRob2RfbGFiZWxzIHRhYmxlIG5hbWVzID1cbiAgQXJyYXkubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSBuYW1lc1xuXG5sZXQgc2V0X21ldGhvZCB0YWJsZSBsYWJlbCBlbGVtZW50ID1cbiAgaW5jciBtZXRob2RfY291bnQ7XG4gIGlmIExhYnMuZmluZCBsYWJlbCB0YWJsZS5tZXRob2RzX2J5X2xhYmVsIHRoZW5cbiAgICBwdXQgdGFibGUgbGFiZWwgZWxlbWVudFxuICBlbHNlXG4gICAgdGFibGUuaGlkZGVuX21ldGhzIDwtIChsYWJlbCwgZWxlbWVudCkgOjogdGFibGUuaGlkZGVuX21ldGhzXG5cbmxldCBnZXRfbWV0aG9kIHRhYmxlIGxhYmVsID1cbiAgdHJ5IExpc3QuYXNzb2MgbGFiZWwgdGFibGUuaGlkZGVuX21ldGhzXG4gIHdpdGggTm90X2ZvdW5kIC0+IHRhYmxlLm1ldGhvZHMuKGxhYmVsKVxuXG5sZXQgdG9fbGlzdCBhcnIgPVxuICBpZiBhcnIgPT0gbWFnaWMgMCB0aGVuIFtdIGVsc2UgQXJyYXkudG9fbGlzdCBhcnJcblxubGV0IG5hcnJvdyB0YWJsZSB2YXJzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHMgPVxuICBsZXQgdmFycyA9IHRvX2xpc3QgdmFyc1xuICBhbmQgdmlydF9tZXRocyA9IHRvX2xpc3QgdmlydF9tZXRoc1xuICBhbmQgY29uY3JfbWV0aHMgPSB0b19saXN0IGNvbmNyX21ldGhzIGluXG4gIGxldCB2aXJ0X21ldGhfbGFicyA9IExpc3QubWFwIChnZXRfbWV0aG9kX2xhYmVsIHRhYmxlKSB2aXJ0X21ldGhzIGluXG4gIGxldCBjb25jcl9tZXRoX2xhYnMgPSBMaXN0Lm1hcCAoZ2V0X21ldGhvZF9sYWJlbCB0YWJsZSkgY29uY3JfbWV0aHMgaW5cbiAgdGFibGUucHJldmlvdXNfc3RhdGVzIDwtXG4gICAgICh0YWJsZS5tZXRob2RzX2J5X25hbWUsIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwsIHRhYmxlLmhpZGRlbl9tZXRocyxcbiAgICAgIHRhYmxlLnZhcnMsIHZpcnRfbWV0aF9sYWJzLCB2YXJzKVxuICAgICA6OiB0YWJsZS5wcmV2aW91c19zdGF0ZXM7XG4gIHRhYmxlLnZhcnMgPC1cbiAgICBWYXJzLmZvbGRcbiAgICAgIChmdW4gbGFiIGluZm8gdHZhcnMgLT5cbiAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZhcnMgdGhlbiBWYXJzLmFkZCBsYWIgaW5mbyB0dmFycyBlbHNlIHR2YXJzKVxuICAgICAgdGFibGUudmFycyBWYXJzLmVtcHR5O1xuICBsZXQgYnlfbmFtZSA9IHJlZiBNZXRocy5lbXB0eSBpblxuICBsZXQgYnlfbGFiZWwgPSByZWYgTGFicy5lbXB0eSBpblxuICBMaXN0Lml0ZXIyXG4gICAgKGZ1biBtZXQgbGFiZWwgLT5cbiAgICAgICBieV9uYW1lIDo9IE1ldGhzLmFkZCBtZXQgbGFiZWwgIWJ5X25hbWU7XG4gICAgICAgYnlfbGFiZWwgOj1cbiAgICAgICAgICBMYWJzLmFkZCBsYWJlbFxuICAgICAgICAgICAgKHRyeSBMYWJzLmZpbmQgbGFiZWwgdGFibGUubWV0aG9kc19ieV9sYWJlbCB3aXRoIE5vdF9mb3VuZCAtPiB0cnVlKVxuICAgICAgICAgICAgIWJ5X2xhYmVsKVxuICAgIGNvbmNyX21ldGhzIGNvbmNyX21ldGhfbGFicztcbiAgTGlzdC5pdGVyMlxuICAgIChmdW4gbWV0IGxhYmVsIC0+XG4gICAgICAgYnlfbmFtZSA6PSBNZXRocy5hZGQgbWV0IGxhYmVsICFieV9uYW1lO1xuICAgICAgIGJ5X2xhYmVsIDo9IExhYnMuYWRkIGxhYmVsIGZhbHNlICFieV9sYWJlbClcbiAgICB2aXJ0X21ldGhzIHZpcnRfbWV0aF9sYWJzO1xuICB0YWJsZS5tZXRob2RzX2J5X25hbWUgPC0gIWJ5X25hbWU7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gIWJ5X2xhYmVsO1xuICB0YWJsZS5oaWRkZW5fbWV0aHMgPC1cbiAgICAgTGlzdC5mb2xkX3JpZ2h0XG4gICAgICAgKGZ1biAoKGxhYiwgXykgYXMgbWV0KSBobSAtPlxuICAgICAgICAgIGlmIExpc3QubWVtIGxhYiB2aXJ0X21ldGhfbGFicyB0aGVuIGhtIGVsc2UgbWV0OjpobSlcbiAgICAgICB0YWJsZS5oaWRkZW5fbWV0aHNcbiAgICAgICBbXVxuXG5sZXQgd2lkZW4gdGFibGUgPVxuICBsZXQgKGJ5X25hbWUsIGJ5X2xhYmVsLCBzYXZlZF9oaWRkZW5fbWV0aHMsIHNhdmVkX3ZhcnMsIHZpcnRfbWV0aHMsIHZhcnMpID1cbiAgICBMaXN0LmhkIHRhYmxlLnByZXZpb3VzX3N0YXRlc1xuICBpblxuICB0YWJsZS5wcmV2aW91c19zdGF0ZXMgPC0gTGlzdC50bCB0YWJsZS5wcmV2aW91c19zdGF0ZXM7XG4gIHRhYmxlLnZhcnMgPC1cbiAgICAgTGlzdC5mb2xkX2xlZnRcbiAgICAgICAoZnVuIHMgdiAtPiBWYXJzLmFkZCB2IChWYXJzLmZpbmQgdiB0YWJsZS52YXJzKSBzKVxuICAgICAgIHNhdmVkX3ZhcnMgdmFycztcbiAgdGFibGUubWV0aG9kc19ieV9uYW1lIDwtIGJ5X25hbWU7XG4gIHRhYmxlLm1ldGhvZHNfYnlfbGFiZWwgPC0gYnlfbGFiZWw7XG4gIHRhYmxlLmhpZGRlbl9tZXRocyA8LVxuICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAoZnVuICgobGFiLCBfKSBhcyBtZXQpIGhtIC0+XG4gICAgICAgICAgaWYgTGlzdC5tZW0gbGFiIHZpcnRfbWV0aHMgdGhlbiBobSBlbHNlIG1ldDo6aG0pXG4gICAgICAgdGFibGUuaGlkZGVuX21ldGhzXG4gICAgICAgc2F2ZWRfaGlkZGVuX21ldGhzXG5cbmxldCBuZXdfc2xvdCB0YWJsZSA9XG4gIGxldCBpbmRleCA9IHRhYmxlLnNpemUgaW5cbiAgdGFibGUuc2l6ZSA8LSBpbmRleCArIDE7XG4gIGluZGV4XG5cbmxldCBuZXdfdmFyaWFibGUgdGFibGUgbmFtZSA9XG4gIHRyeSBWYXJzLmZpbmQgbmFtZSB0YWJsZS52YXJzXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgbGV0IGluZGV4ID0gbmV3X3Nsb3QgdGFibGUgaW5cbiAgICBpZiBuYW1lIDw+IFwiXCIgdGhlbiB0YWJsZS52YXJzIDwtIFZhcnMuYWRkIG5hbWUgaW5kZXggdGFibGUudmFycztcbiAgICBpbmRleFxuXG5sZXQgdG9fYXJyYXkgYXJyID1cbiAgaWYgYXJyID0gT2JqLm1hZ2ljIDAgdGhlbiBbfHxdIGVsc2UgYXJyXG5cbmxldCBuZXdfbWV0aG9kc192YXJpYWJsZXMgdGFibGUgbWV0aHMgdmFscyA9XG4gIGxldCBtZXRocyA9IHRvX2FycmF5IG1ldGhzIGluXG4gIGxldCBubWV0aHMgPSBBcnJheS5sZW5ndGggbWV0aHMgYW5kIG52YWxzID0gQXJyYXkubGVuZ3RoIHZhbHMgaW5cbiAgbGV0IHJlcyA9IEFycmF5Lm1ha2UgKG5tZXRocyArIG52YWxzKSAwIGluXG4gIGZvciBpID0gMCB0byBubWV0aHMgLSAxIGRvXG4gICAgcmVzLihpKSA8LSBnZXRfbWV0aG9kX2xhYmVsIHRhYmxlIG1ldGhzLihpKVxuICBkb25lO1xuICBmb3IgaSA9IDAgdG8gbnZhbHMgLSAxIGRvXG4gICAgcmVzLihpK25tZXRocykgPC0gbmV3X3ZhcmlhYmxlIHRhYmxlIHZhbHMuKGkpXG4gIGRvbmU7XG4gIHJlc1xuXG5sZXQgZ2V0X3ZhcmlhYmxlIHRhYmxlIG5hbWUgPVxuICB0cnkgVmFycy5maW5kIG5hbWUgdGFibGUudmFycyB3aXRoIE5vdF9mb3VuZCAtPiBhc3NlcnQgZmFsc2VcblxubGV0IGdldF92YXJpYWJsZXMgdGFibGUgbmFtZXMgPVxuICBBcnJheS5tYXAgKGdldF92YXJpYWJsZSB0YWJsZSkgbmFtZXNcblxubGV0IGFkZF9pbml0aWFsaXplciB0YWJsZSBmID1cbiAgdGFibGUuaW5pdGlhbGl6ZXJzIDwtIGY6OnRhYmxlLmluaXRpYWxpemVyc1xuXG4oKlxubW9kdWxlIEtleXMgPVxuICBNYXAuTWFrZShzdHJ1Y3QgdHlwZSB0ID0gdGFnIGFycmF5IGxldCBjb21wYXJlICh4OnQpIHkgPSBjb21wYXJlIHggeSBlbmQpXG5sZXQga2V5X21hcCA9IHJlZiBLZXlzLmVtcHR5XG5sZXQgZ2V0X2tleSB0YWdzIDogaXRlbSA9XG4gIHRyeSBtYWdpYyAoS2V5cy5maW5kIHRhZ3MgIWtleV9tYXAgOiB0YWcgYXJyYXkpXG4gIHdpdGggTm90X2ZvdW5kIC0+XG4gICAga2V5X21hcCA6PSBLZXlzLmFkZCB0YWdzIHRhZ3MgIWtleV9tYXA7XG4gICAgbWFnaWMgdGFnc1xuKilcblxubGV0IGNyZWF0ZV90YWJsZSBwdWJsaWNfbWV0aG9kcyA9XG4gIGlmIHB1YmxpY19tZXRob2RzID09IG1hZ2ljIDAgdGhlbiBuZXdfdGFibGUgW3x8XSBlbHNlXG4gICgqIFtwdWJsaWNfbWV0aG9kc10gbXVzdCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIgZm9yIGJ5dGVjb2RlICopXG4gIGxldCB0YWdzID0gQXJyYXkubWFwIHB1YmxpY19tZXRob2RfbGFiZWwgcHVibGljX21ldGhvZHMgaW5cbiAgbGV0IHRhYmxlID0gbmV3X3RhYmxlIHRhZ3MgaW5cbiAgQXJyYXkuaXRlcmlcbiAgICAoZnVuIGkgbWV0IC0+XG4gICAgICBsZXQgbGFiID0gaSoyKzIgaW5cbiAgICAgIHRhYmxlLm1ldGhvZHNfYnlfbmFtZSAgPC0gTWV0aHMuYWRkIG1ldCBsYWIgdGFibGUubWV0aG9kc19ieV9uYW1lO1xuICAgICAgdGFibGUubWV0aG9kc19ieV9sYWJlbCA8LSBMYWJzLmFkZCBsYWIgdHJ1ZSB0YWJsZS5tZXRob2RzX2J5X2xhYmVsKVxuICAgIHB1YmxpY19tZXRob2RzO1xuICB0YWJsZVxuXG5sZXQgaW5pdF9jbGFzcyB0YWJsZSA9XG4gIGluc3RfdmFyX2NvdW50IDo9ICFpbnN0X3Zhcl9jb3VudCArIHRhYmxlLnNpemUgLSAxO1xuICB0YWJsZS5pbml0aWFsaXplcnMgPC0gTGlzdC5yZXYgdGFibGUuaW5pdGlhbGl6ZXJzO1xuICByZXNpemUgdGFibGUgKDMgKyBtYWdpYyB0YWJsZS5tZXRob2RzLigxKSAqIDE2IC8gU3lzLndvcmRfc2l6ZSlcblxubGV0IGluaGVyaXRzIGNsYSB2YWxzIHZpcnRfbWV0aHMgY29uY3JfbWV0aHMgKF8sIHN1cGVyLCBfLCBlbnYpIHRvcCA9XG4gIG5hcnJvdyBjbGEgdmFscyB2aXJ0X21ldGhzIGNvbmNyX21ldGhzO1xuICBsZXQgaW5pdCA9XG4gICAgaWYgdG9wIHRoZW4gc3VwZXIgY2xhIGVudiBlbHNlIE9iai5yZXByIChzdXBlciBjbGEpIGluXG4gIHdpZGVuIGNsYTtcbiAgQXJyYXkuY29uY2F0XG4gICAgW1t8IHJlcHIgaW5pdCB8XTtcbiAgICAgbWFnaWMgKEFycmF5Lm1hcCAoZ2V0X3ZhcmlhYmxlIGNsYSkgKHRvX2FycmF5IHZhbHMpIDogaW50IGFycmF5KTtcbiAgICAgQXJyYXkubWFwXG4gICAgICAgKGZ1biBubSAtPiByZXByIChnZXRfbWV0aG9kIGNsYSAoZ2V0X21ldGhvZF9sYWJlbCBjbGEgbm0pIDogY2xvc3VyZSkpXG4gICAgICAgKHRvX2FycmF5IGNvbmNyX21ldGhzKSBdXG5cbmxldCBtYWtlX2NsYXNzIHB1Yl9tZXRocyBjbGFzc19pbml0ID1cbiAgbGV0IHRhYmxlID0gY3JlYXRlX3RhYmxlIHB1Yl9tZXRocyBpblxuICBsZXQgZW52X2luaXQgPSBjbGFzc19pbml0IHRhYmxlIGluXG4gIGluaXRfY2xhc3MgdGFibGU7XG4gIChlbnZfaW5pdCAoT2JqLnJlcHIgMCksIGNsYXNzX2luaXQsIGVudl9pbml0LCBPYmoucmVwciAwKVxuXG50eXBlIGluaXRfdGFibGUgPSB7IG11dGFibGUgZW52X2luaXQ6IHQ7IG11dGFibGUgY2xhc3NfaW5pdDogdGFibGUgLT4gdCB9XG5bQEB3YXJuaW5nIFwiLXVudXNlZC1maWVsZFwiXVxuXG5sZXQgbWFrZV9jbGFzc19zdG9yZSBwdWJfbWV0aHMgY2xhc3NfaW5pdCBpbml0X3RhYmxlID1cbiAgbGV0IHRhYmxlID0gY3JlYXRlX3RhYmxlIHB1Yl9tZXRocyBpblxuICBsZXQgZW52X2luaXQgPSBjbGFzc19pbml0IHRhYmxlIGluXG4gIGluaXRfY2xhc3MgdGFibGU7XG4gIGluaXRfdGFibGUuY2xhc3NfaW5pdCA8LSBjbGFzc19pbml0O1xuICBpbml0X3RhYmxlLmVudl9pbml0IDwtIGVudl9pbml0XG5cbmxldCBkdW1teV9jbGFzcyBsb2MgPVxuICBsZXQgdW5kZWYgPSBmdW4gXyAtPiByYWlzZSAoVW5kZWZpbmVkX3JlY3Vyc2l2ZV9tb2R1bGUgbG9jKSBpblxuICAoT2JqLm1hZ2ljIHVuZGVmLCB1bmRlZiwgdW5kZWYsIE9iai5yZXByIDApXG5cbigqKioqIE9iamVjdHMgKioqKilcblxubGV0IGNyZWF0ZV9vYmplY3QgdGFibGUgPVxuICAoKiBYWFggQXBwZWwgZGUgW29ial9ibG9ja10gfCBDYWxsIHRvIFtvYmpfYmxvY2tdICAqKVxuICBsZXQgb2JqID0gT2JqLm5ld19ibG9jayBPYmoub2JqZWN0X3RhZyB0YWJsZS5zaXplIGluXG4gICgqIFhYWCBBcHBlbCBkZSBbY2FtbF9tb2RpZnldIHwgQ2FsbCB0byBbY2FtbF9tb2RpZnldICopXG4gIE9iai5zZXRfZmllbGQgb2JqIDAgKE9iai5yZXByIHRhYmxlLm1ldGhvZHMpO1xuICBPYmoub2JqIChzZXRfaWQgb2JqKVxuXG5sZXQgY3JlYXRlX29iamVjdF9vcHQgb2JqXzAgdGFibGUgPVxuICBpZiAoT2JqLm1hZ2ljIG9ial8wIDogYm9vbCkgdGhlbiBvYmpfMCBlbHNlIGJlZ2luXG4gICAgKCogWFhYIEFwcGVsIGRlIFtvYmpfYmxvY2tdIHwgQ2FsbCB0byBbb2JqX2Jsb2NrXSAgKilcbiAgICBsZXQgb2JqID0gT2JqLm5ld19ibG9jayBPYmoub2JqZWN0X3RhZyB0YWJsZS5zaXplIGluXG4gICAgKCogWFhYIEFwcGVsIGRlIFtjYW1sX21vZGlmeV0gfCBDYWxsIHRvIFtjYW1sX21vZGlmeV0gKilcbiAgICBPYmouc2V0X2ZpZWxkIG9iaiAwIChPYmoucmVwciB0YWJsZS5tZXRob2RzKTtcbiAgICBPYmoub2JqIChzZXRfaWQgb2JqKVxuICBlbmRcblxubGV0IHJlYyBpdGVyX2Ygb2JqID1cbiAgZnVuY3Rpb25cbiAgICBbXSAgIC0+ICgpXG4gIHwgZjo6bCAtPiBmIG9iajsgaXRlcl9mIG9iaiBsXG5cbmxldCBydW5faW5pdGlhbGl6ZXJzIG9iaiB0YWJsZSA9XG4gIGxldCBpbml0cyA9IHRhYmxlLmluaXRpYWxpemVycyBpblxuICBpZiBpbml0cyA8PiBbXSB0aGVuXG4gICAgaXRlcl9mIG9iaiBpbml0c1xuXG5sZXQgcnVuX2luaXRpYWxpemVyc19vcHQgb2JqXzAgb2JqIHRhYmxlID1cbiAgaWYgKE9iai5tYWdpYyBvYmpfMCA6IGJvb2wpIHRoZW4gb2JqIGVsc2UgYmVnaW5cbiAgICBsZXQgaW5pdHMgPSB0YWJsZS5pbml0aWFsaXplcnMgaW5cbiAgICBpZiBpbml0cyA8PiBbXSB0aGVuIGl0ZXJfZiBvYmogaW5pdHM7XG4gICAgb2JqXG4gIGVuZFxuXG5sZXQgY3JlYXRlX29iamVjdF9hbmRfcnVuX2luaXRpYWxpemVycyBvYmpfMCB0YWJsZSA9XG4gIGlmIChPYmoubWFnaWMgb2JqXzAgOiBib29sKSB0aGVuIG9ial8wIGVsc2UgYmVnaW5cbiAgICBsZXQgb2JqID0gY3JlYXRlX29iamVjdCB0YWJsZSBpblxuICAgIHJ1bl9pbml0aWFsaXplcnMgb2JqIHRhYmxlO1xuICAgIG9ialxuICBlbmRcblxuKCogRXF1aXZhbGVudCBwcmltaXRpdmUgYmVsb3dcbmxldCBzZW5kc2VsZiBvYmogbGFiID1cbiAgKG1hZ2ljIG9iaiA6IChvYmogLT4gdCkgYXJyYXkgYXJyYXkpLigwKS4obGFiKSBvYmpcbiopXG5leHRlcm5hbCBzZW5kIDogb2JqIC0+IHRhZyAtPiAnYSA9IFwiJXNlbmRcIlxuZXh0ZXJuYWwgc2VuZGNhY2hlIDogb2JqIC0+IHRhZyAtPiB0IC0+IGludCAtPiAnYSA9IFwiJXNlbmRjYWNoZVwiXG5leHRlcm5hbCBzZW5kc2VsZiA6IG9iaiAtPiBsYWJlbCAtPiAnYSA9IFwiJXNlbmRzZWxmXCJcbmV4dGVybmFsIGdldF9wdWJsaWNfbWV0aG9kIDogb2JqIC0+IHRhZyAtPiBjbG9zdXJlXG4gICAgPSBcImNhbWxfZ2V0X3B1YmxpY19tZXRob2RcIiBbQEBub2FsbG9jXVxuXG4oKioqKiB0YWJsZSBjb2xsZWN0aW9uIGFjY2VzcyAqKioqKVxuXG50eXBlIHRhYmxlcyA9XG4gIHwgRW1wdHlcbiAgfCBDb25zIG9mIHtrZXkgOiBjbG9zdXJlOyBtdXRhYmxlIGRhdGE6IHRhYmxlczsgbXV0YWJsZSBuZXh0OiB0YWJsZXN9XG5cbmxldCBzZXRfZGF0YSB0YWJsZXMgdiA9IG1hdGNoIHRhYmxlcyB3aXRoXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmRhdGEgPC0gdlxubGV0IHNldF9uZXh0IHRhYmxlcyB2ID0gbWF0Y2ggdGFibGVzIHdpdGhcbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMubmV4dCA8LSB2XG5sZXQgZ2V0X2tleSA9IGZ1bmN0aW9uXG4gIHwgRW1wdHkgLT4gYXNzZXJ0IGZhbHNlXG4gIHwgQ29ucyB0YWJsZXMgLT4gdGFibGVzLmtleVxubGV0IGdldF9kYXRhID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMuZGF0YVxubGV0IGdldF9uZXh0ID0gZnVuY3Rpb25cbiAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgfCBDb25zIHRhYmxlcyAtPiB0YWJsZXMubmV4dFxuXG5sZXQgYnVpbGRfcGF0aCBuIGtleXMgdGFibGVzID1cbiAgbGV0IHJlcyA9IENvbnMge2tleSA9IE9iai5tYWdpYyAwOyBkYXRhID0gRW1wdHk7IG5leHQgPSBFbXB0eX0gaW5cbiAgbGV0IHIgPSByZWYgcmVzIGluXG4gIGZvciBpID0gMCB0byBuIGRvXG4gICAgciA6PSBDb25zIHtrZXkgPSBrZXlzLihpKTsgZGF0YSA9ICFyOyBuZXh0ID0gRW1wdHl9XG4gIGRvbmU7XG4gIHNldF9kYXRhIHRhYmxlcyAhcjtcbiAgcmVzXG5cbmxldCByZWMgbG9va3VwX2tleXMgaSBrZXlzIHRhYmxlcyA9XG4gIGlmIGkgPCAwIHRoZW4gdGFibGVzIGVsc2VcbiAgbGV0IGtleSA9IGtleXMuKGkpIGluXG4gIGxldCByZWMgbG9va3VwX2tleSAodGFibGVzOnRhYmxlcykgPVxuICAgIGlmIGdldF9rZXkgdGFibGVzID09IGtleSB0aGVuXG4gICAgICBtYXRjaCBnZXRfZGF0YSB0YWJsZXMgd2l0aFxuICAgICAgfCBFbXB0eSAtPiBhc3NlcnQgZmFsc2VcbiAgICAgIHwgQ29ucyBfIGFzIHRhYmxlc19kYXRhIC0+XG4gICAgICAgICAgbG9va3VwX2tleXMgKGktMSkga2V5cyB0YWJsZXNfZGF0YVxuICAgIGVsc2VcbiAgICAgIG1hdGNoIGdldF9uZXh0IHRhYmxlcyB3aXRoXG4gICAgICB8IENvbnMgXyBhcyBuZXh0IC0+IGxvb2t1cF9rZXkgbmV4dFxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGxldCBuZXh0IDogdGFibGVzID0gQ29ucyB7a2V5OyBkYXRhID0gRW1wdHk7IG5leHQgPSBFbXB0eX0gaW5cbiAgICAgICAgICBzZXRfbmV4dCB0YWJsZXMgbmV4dDtcbiAgICAgICAgICBidWlsZF9wYXRoIChpLTEpIGtleXMgbmV4dFxuICBpblxuICBsb29rdXBfa2V5IHRhYmxlc1xuXG5sZXQgbG9va3VwX3RhYmxlcyByb290IGtleXMgPVxuICBtYXRjaCBnZXRfZGF0YSByb290IHdpdGhcbiAgfCBDb25zIF8gYXMgcm9vdF9kYXRhIC0+XG4gICAgbG9va3VwX2tleXMgKEFycmF5Lmxlbmd0aCBrZXlzIC0gMSkga2V5cyByb290X2RhdGFcbiAgfCBFbXB0eSAtPlxuICAgIGJ1aWxkX3BhdGggKEFycmF5Lmxlbmd0aCBrZXlzIC0gMSkga2V5cyByb290XG5cbigqKioqIGJ1aWx0aW4gbWV0aG9kcyAqKioqKVxuXG5sZXQgZ2V0X2NvbnN0IHggPSByZXQgKGZ1biBfb2JqIC0+IHgpXG5sZXQgZ2V0X3ZhciBuICAgPSByZXQgKGZ1biBvYmogLT4gQXJyYXkudW5zYWZlX2dldCBvYmogbilcbmxldCBnZXRfZW52IGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pXG5sZXQgZ2V0X21ldGggbiAgPSByZXQgKGZ1biBvYmogLT4gc2VuZHNlbGYgb2JqIG4pXG5sZXQgc2V0X3ZhciBuICAgPSByZXQgKGZ1biBvYmogeCAtPiBBcnJheS51bnNhZmVfc2V0IG9iaiBuIHgpXG5sZXQgYXBwX2NvbnN0IGYgeCA9IHJldCAoZnVuIF9vYmogLT4gZiB4KVxubGV0IGFwcF92YXIgZiBuICAgPSByZXQgKGZ1biBvYmogLT4gZiAoQXJyYXkudW5zYWZlX2dldCBvYmogbikpXG5sZXQgYXBwX2VudiBmIGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgKEFycmF5LnVuc2FmZV9nZXQgKE9iai5tYWdpYyAoQXJyYXkudW5zYWZlX2dldCBvYmogZSkgOiBvYmopIG4pKVxubGV0IGFwcF9tZXRoIGYgbiAgPSByZXQgKGZ1biBvYmogLT4gZiAoc2VuZHNlbGYgb2JqIG4pKVxubGV0IGFwcF9jb25zdF9jb25zdCBmIHggeSA9IHJldCAoZnVuIF9vYmogLT4gZiB4IHkpXG5sZXQgYXBwX2NvbnN0X3ZhciBmIHggbiAgID0gcmV0IChmdW4gb2JqIC0+IGYgeCAoQXJyYXkudW5zYWZlX2dldCBvYmogbikpXG5sZXQgYXBwX2NvbnN0X21ldGggZiB4IG4gPSByZXQgKGZ1biBvYmogLT4gZiB4IChzZW5kc2VsZiBvYmogbikpXG5sZXQgYXBwX3Zhcl9jb25zdCBmIG4geCA9IHJldCAoZnVuIG9iaiAtPiBmIChBcnJheS51bnNhZmVfZ2V0IG9iaiBuKSB4KVxubGV0IGFwcF9tZXRoX2NvbnN0IGYgbiB4ID0gcmV0IChmdW4gb2JqIC0+IGYgKHNlbmRzZWxmIG9iaiBuKSB4KVxubGV0IGFwcF9jb25zdF9lbnYgZiB4IGUgbiA9XG4gIHJldCAoZnVuIG9iaiAtPlxuICAgIGYgeCAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikpXG5sZXQgYXBwX2Vudl9jb25zdCBmIGUgbiB4ID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgZiAoQXJyYXkudW5zYWZlX2dldCAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0IG9iaiBlKSA6IG9iaikgbikgeClcbmxldCBtZXRoX2FwcF9jb25zdCBuIHggPSByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSB4KVxubGV0IG1ldGhfYXBwX3ZhciBuIG0gPVxuICByZXQgKGZ1biBvYmogLT4gKHNlbmRzZWxmIG9iaiBuIDogXyAtPiBfKSAoQXJyYXkudW5zYWZlX2dldCBvYmogbSkpXG5sZXQgbWV0aF9hcHBfZW52IG4gZSBtID1cbiAgcmV0IChmdW4gb2JqIC0+IChzZW5kc2VsZiBvYmogbiA6IF8gLT4gXylcbiAgICAgIChBcnJheS51bnNhZmVfZ2V0IChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBtKSlcbmxldCBtZXRoX2FwcF9tZXRoIG4gbSA9XG4gIHJldCAoZnVuIG9iaiAtPiAoc2VuZHNlbGYgb2JqIG4gOiBfIC0+IF8pIChzZW5kc2VsZiBvYmogbSkpXG5sZXQgc2VuZF9jb25zdCBtIHggYyA9XG4gIHJldCAoZnVuIG9iaiAtPiBzZW5kY2FjaGUgeCBtIChBcnJheS51bnNhZmVfZ2V0IG9iaiAwKSBjKVxubGV0IHNlbmRfdmFyIG0gbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIG4pIDogb2JqKSBtXG4gICAgICAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBzZW5kX2VudiBtIGUgbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlXG4gICAgICAoT2JqLm1hZ2ljIChBcnJheS51bnNhZmVfZ2V0XG4gICAgICAgICAgICAgICAgICAgIChPYmoubWFnaWMgKEFycmF5LnVuc2FmZV9nZXQgb2JqIGUpIDogb2JqKSBuKSA6IG9iailcbiAgICAgIG0gKEFycmF5LnVuc2FmZV9nZXQgb2JqIDApIGMpXG5sZXQgc2VuZF9tZXRoIG0gbiBjID1cbiAgcmV0IChmdW4gb2JqIC0+XG4gICAgc2VuZGNhY2hlIChzZW5kc2VsZiBvYmogbikgbSAoQXJyYXkudW5zYWZlX2dldCBvYmogMCkgYylcbmxldCBuZXdfY2FjaGUgdGFibGUgPVxuICBsZXQgbiA9IG5ld19tZXRob2QgdGFibGUgaW5cbiAgbGV0IG4gPVxuICAgIGlmIG4gbW9kIDIgPSAwIHx8IG4gPiAyICsgbWFnaWMgdGFibGUubWV0aG9kcy4oMSkgKiAxNiAvIFN5cy53b3JkX3NpemVcbiAgICB0aGVuIG4gZWxzZSBuZXdfbWV0aG9kIHRhYmxlXG4gIGluXG4gIHRhYmxlLm1ldGhvZHMuKG4pIDwtIE9iai5tYWdpYyAwO1xuICBuXG5cbnR5cGUgaW1wbCA9XG4gICAgR2V0Q29uc3RcbiAgfCBHZXRWYXJcbiAgfCBHZXRFbnZcbiAgfCBHZXRNZXRoXG4gIHwgU2V0VmFyXG4gIHwgQXBwQ29uc3RcbiAgfCBBcHBWYXJcbiAgfCBBcHBFbnZcbiAgfCBBcHBNZXRoXG4gIHwgQXBwQ29uc3RDb25zdFxuICB8IEFwcENvbnN0VmFyXG4gIHwgQXBwQ29uc3RFbnZcbiAgfCBBcHBDb25zdE1ldGhcbiAgfCBBcHBWYXJDb25zdFxuICB8IEFwcEVudkNvbnN0XG4gIHwgQXBwTWV0aENvbnN0XG4gIHwgTWV0aEFwcENvbnN0XG4gIHwgTWV0aEFwcFZhclxuICB8IE1ldGhBcHBFbnZcbiAgfCBNZXRoQXBwTWV0aFxuICB8IFNlbmRDb25zdFxuICB8IFNlbmRWYXJcbiAgfCBTZW5kRW52XG4gIHwgU2VuZE1ldGhcbiAgfCBDbG9zdXJlIG9mIGNsb3N1cmVcblxubGV0IG1ldGhvZF9pbXBsIHRhYmxlIGkgYXJyID1cbiAgbGV0IG5leHQgKCkgPSBpbmNyIGk7IG1hZ2ljIGFyci4oIWkpIGluXG4gIG1hdGNoIG5leHQoKSB3aXRoXG4gICAgR2V0Q29uc3QgLT4gbGV0IHggOiB0ID0gbmV4dCgpIGluIGdldF9jb25zdCB4XG4gIHwgR2V0VmFyICAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X3ZhciBuXG4gIHwgR2V0RW52ICAgLT4gbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW4gZ2V0X2VudiBlIG5cbiAgfCBHZXRNZXRoICAtPiBsZXQgbiA9IG5leHQoKSBpbiBnZXRfbWV0aCBuXG4gIHwgU2V0VmFyICAgLT4gbGV0IG4gPSBuZXh0KCkgaW4gc2V0X3ZhciBuXG4gIHwgQXBwQ29uc3QgLT4gbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gYXBwX2NvbnN0IGYgeFxuICB8IEFwcFZhciAgIC0+IGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBhcHBfdmFyIGYgblxuICB8IEFwcEVudiAgIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiAgbGV0IGUgPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9lbnYgZiBlIG5cbiAgfCBBcHBNZXRoICAtPiBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQgKCkgaW4gYXBwX21ldGggZiBuXG4gIHwgQXBwQ29uc3RDb25zdCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IHkgPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9jb25zdCBmIHggeVxuICB8IEFwcENvbnN0VmFyIC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgYXBwX2NvbnN0X3ZhciBmIHggblxuICB8IEFwcENvbnN0RW52IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQgKCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9lbnYgZiB4IGUgblxuICB8IEFwcENvbnN0TWV0aCAtPlxuICAgICAgbGV0IGYgPSBuZXh0KCkgaW4gbGV0IHggPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0KCkgaW5cbiAgICAgIGFwcF9jb25zdF9tZXRoIGYgeCBuXG4gIHwgQXBwVmFyQ29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluXG4gICAgICBhcHBfdmFyX2NvbnN0IGYgbiB4XG4gIHwgQXBwRW52Q29uc3QgLT5cbiAgICAgIGxldCBmID0gbmV4dCgpIGluIGxldCBlID0gbmV4dCAoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX2Vudl9jb25zdCBmIGUgbiB4XG4gIHwgQXBwTWV0aENvbnN0IC0+XG4gICAgICBsZXQgZiA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpblxuICAgICAgYXBwX21ldGhfY29uc3QgZiBuIHhcbiAgfCBNZXRoQXBwQ29uc3QgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCB4ID0gbmV4dCgpIGluIG1ldGhfYXBwX2NvbnN0IG4geFxuICB8IE1ldGhBcHBWYXIgLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluIG1ldGhfYXBwX3ZhciBuIG1cbiAgfCBNZXRoQXBwRW52IC0+XG4gICAgICBsZXQgbiA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbSA9IG5leHQoKSBpblxuICAgICAgbWV0aF9hcHBfZW52IG4gZSBtXG4gIHwgTWV0aEFwcE1ldGggLT5cbiAgICAgIGxldCBuID0gbmV4dCgpIGluIGxldCBtID0gbmV4dCgpIGluIG1ldGhfYXBwX21ldGggbiBtXG4gIHwgU2VuZENvbnN0IC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgeCA9IG5leHQoKSBpbiBzZW5kX2NvbnN0IG0geCAobmV3X2NhY2hlIHRhYmxlKVxuICB8IFNlbmRWYXIgLT5cbiAgICAgIGxldCBtID0gbmV4dCgpIGluIGxldCBuID0gbmV4dCAoKSBpbiBzZW5kX3ZhciBtIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kRW52IC0+XG4gICAgICBsZXQgbSA9IG5leHQoKSBpbiBsZXQgZSA9IG5leHQoKSBpbiBsZXQgbiA9IG5leHQoKSBpblxuICAgICAgc2VuZF9lbnYgbSBlIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBTZW5kTWV0aCAtPlxuICAgICAgbGV0IG0gPSBuZXh0KCkgaW4gbGV0IG4gPSBuZXh0ICgpIGluIHNlbmRfbWV0aCBtIG4gKG5ld19jYWNoZSB0YWJsZSlcbiAgfCBDbG9zdXJlIF8gYXMgY2xvIC0+IG1hZ2ljIGNsb1xuXG5sZXQgc2V0X21ldGhvZHMgdGFibGUgbWV0aG9kcyA9XG4gIGxldCBsZW4gPSBBcnJheS5sZW5ndGggbWV0aG9kcyBpbiBsZXQgaSA9IHJlZiAwIGluXG4gIHdoaWxlICFpIDwgbGVuIGRvXG4gICAgbGV0IGxhYmVsID0gbWV0aG9kcy4oIWkpIGluIGxldCBjbG8gPSBtZXRob2RfaW1wbCB0YWJsZSBpIG1ldGhvZHMgaW5cbiAgICBzZXRfbWV0aG9kIHRhYmxlIGxhYmVsIGNsbztcbiAgICBpbmNyIGlcbiAgZG9uZVxuXG4oKioqKiBTdGF0aXN0aWNzICoqKiopXG5cbnR5cGUgc3RhdHMgPVxuICB7IGNsYXNzZXM6IGludDsgbWV0aG9kczogaW50OyBpbnN0X3ZhcnM6IGludDsgfVxuXG5sZXQgc3RhdHMgKCkgPVxuICB7IGNsYXNzZXMgPSAhdGFibGVfY291bnQ7XG4gICAgbWV0aG9kcyA9ICFtZXRob2RfY291bnQ7IGluc3RfdmFycyA9ICFpbnN0X3Zhcl9jb3VudDsgfVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgWGF2aWVyIExlcm95LCBwcm9qZXQgQ3Jpc3RhbCwgSU5SSUEgUm9jcXVlbmNvdXJ0ICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMjAwNCBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG50eXBlIHNoYXBlID1cbiAgfCBGdW5jdGlvblxuICB8IExhenlcbiAgfCBDbGFzc1xuICB8IE1vZHVsZSBvZiBzaGFwZSBhcnJheVxuICB8IFZhbHVlIG9mIE9iai50XG5cbmxldCByZWMgaW5pdF9tb2RfZmllbGQgbW9kdSBpIGxvYyBzaGFwZSA9XG4gIGxldCBpbml0ID1cbiAgICBtYXRjaCBzaGFwZSB3aXRoXG4gICAgfCBGdW5jdGlvbiAtPlxuICAgICAgIGxldCByZWMgZm4gKHggOiAnYSkgPVxuICAgICAgICAgbGV0IGZuJyA6ICdhIC0+ICdiID0gT2JqLm9iaiAoT2JqLmZpZWxkIG1vZHUgaSkgaW5cbiAgICAgICAgIGlmIGZuID09IGZuJyB0aGVuXG4gICAgICAgICAgIHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIGZuJyB4IGluXG4gICAgICAgT2JqLnJlcHIgZm5cbiAgICB8IExhenkgLT5cbiAgICAgICBsZXQgcmVjIGwgPVxuICAgICAgICAgbGF6eSAoXG4gICAgICAgICAgIGxldCBsJyA9IE9iai5vYmogKE9iai5maWVsZCBtb2R1IGkpIGluXG4gICAgICAgICAgIGlmIGwgPT0gbCcgdGhlblxuICAgICAgICAgICAgIHJhaXNlIChVbmRlZmluZWRfcmVjdXJzaXZlX21vZHVsZSBsb2MpXG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICBMYXp5LmZvcmNlIGwnKSBpblxuICAgICAgIE9iai5yZXByIGxcbiAgICB8IENsYXNzIC0+XG4gICAgICAgT2JqLnJlcHIgKENhbWxpbnRlcm5hbE9PLmR1bW15X2NsYXNzIGxvYylcbiAgICB8IE1vZHVsZSBjb21wcyAtPlxuICAgICAgIE9iai5yZXByIChpbml0X21vZF9ibG9jayBsb2MgY29tcHMpXG4gICAgfCBWYWx1ZSB2IC0+IHZcbiAgaW5cbiAgT2JqLnNldF9maWVsZCBtb2R1IGkgaW5pdFxuXG5hbmQgaW5pdF9tb2RfYmxvY2sgbG9jIGNvbXBzID1cbiAgbGV0IGxlbmd0aCA9IEFycmF5Lmxlbmd0aCBjb21wcyBpblxuICBsZXQgbW9kdSA9IE9iai5uZXdfYmxvY2sgMCBsZW5ndGggaW5cbiAgZm9yIGkgPSAwIHRvIGxlbmd0aCAtIDEgZG9cbiAgICBpbml0X21vZF9maWVsZCBtb2R1IGkgbG9jIGNvbXBzLihpKVxuICBkb25lO1xuICBtb2R1XG5cbmxldCBpbml0X21vZCBsb2Mgc2hhcGUgPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIE9iai5yZXByIChpbml0X21vZF9ibG9jayBsb2MgY29tcHMpXG4gIHwgXyAtPiBmYWlsd2l0aCBcIkNhbWxpbnRlcm5hbE1vZC5pbml0X21vZDogbm90IGEgbW9kdWxlXCJcblxubGV0IHJlYyB1cGRhdGVfbW9kX2ZpZWxkIG1vZHUgaSBzaGFwZSBuID1cbiAgbWF0Y2ggc2hhcGUgd2l0aFxuICB8IEZ1bmN0aW9uIHwgTGF6eSAtPlxuICAgICBPYmouc2V0X2ZpZWxkIG1vZHUgaSBuXG4gIHwgVmFsdWUgXyAtPlxuICAgICAoKSAoKiB0aGUgdmFsdWUgaXMgYWxyZWFkeSB0aGVyZSAqKVxuICB8IENsYXNzIC0+XG4gICAgIGFzc2VydCAoT2JqLnRhZyBuID0gMCAmJiBPYmouc2l6ZSBuID0gNCk7XG4gICAgIGxldCBjbCA9IE9iai5maWVsZCBtb2R1IGkgaW5cbiAgICAgZm9yIGogPSAwIHRvIDMgZG9cbiAgICAgICBPYmouc2V0X2ZpZWxkIGNsIGogKE9iai5maWVsZCBuIGopXG4gICAgIGRvbmVcbiAgfCBNb2R1bGUgY29tcHMgLT5cbiAgICAgdXBkYXRlX21vZF9ibG9jayBjb21wcyAoT2JqLmZpZWxkIG1vZHUgaSkgblxuXG5hbmQgdXBkYXRlX21vZF9ibG9jayBjb21wcyBvIG4gPVxuICBhc3NlcnQgKE9iai50YWcgbiA9IDAgJiYgT2JqLnNpemUgbiA+PSBBcnJheS5sZW5ndGggY29tcHMpO1xuICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGNvbXBzIC0gMSBkb1xuICAgIHVwZGF0ZV9tb2RfZmllbGQgbyBpIGNvbXBzLihpKSAoT2JqLmZpZWxkIG4gaSlcbiAgZG9uZVxuXG5sZXQgdXBkYXRlX21vZCBzaGFwZSBvIG4gPVxuICBtYXRjaCBzaGFwZSB3aXRoXG4gIHwgTW9kdWxlIGNvbXBzIC0+XG4gICAgIHVwZGF0ZV9tb2RfYmxvY2sgY29tcHMgbyBuXG4gIHwgXyAtPiBmYWlsd2l0aCBcIkNhbWxpbnRlcm5hbE1vZC51cGRhdGVfbW9kOiBub3QgYSBtb2R1bGVcIlxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NiBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zXCJdICgqIGlnbm9yZSBkZXByZWNhdGlvbiB3YXJuaW5nIGFib3V0IG1vZHVsZSBTdHJlYW0gKilcblxudHlwZSB0b2tlbiA9XG4gICAgS3dkIG9mIHN0cmluZ1xuICB8IElkZW50IG9mIHN0cmluZ1xuICB8IEludCBvZiBpbnRcbiAgfCBGbG9hdCBvZiBmbG9hdFxuICB8IFN0cmluZyBvZiBzdHJpbmdcbiAgfCBDaGFyIG9mIGNoYXJcblxuKCogVGhlIHN0cmluZyBidWZmZXJpbmcgbWFjaGluZXJ5ICopXG5cbmxldCBpbml0aWFsX2J1ZmZlciA9IEJ5dGVzLmNyZWF0ZSAzMlxuXG5sZXQgYnVmZmVyID0gcmVmIGluaXRpYWxfYnVmZmVyXG5sZXQgYnVmcG9zID0gcmVmIDBcblxubGV0IHJlc2V0X2J1ZmZlciAoKSA9IGJ1ZmZlciA6PSBpbml0aWFsX2J1ZmZlcjsgYnVmcG9zIDo9IDBcblxubGV0IHN0b3JlIGMgPVxuICBpZiAhYnVmcG9zID49IEJ5dGVzLmxlbmd0aCAhYnVmZmVyIHRoZW4gYmVnaW5cbiAgICBsZXQgbmV3YnVmZmVyID0gQnl0ZXMuY3JlYXRlICgyICogIWJ1ZnBvcykgaW5cbiAgICBCeXRlcy5ibGl0ICFidWZmZXIgMCBuZXdidWZmZXIgMCAhYnVmcG9zO1xuICAgIGJ1ZmZlciA6PSBuZXdidWZmZXJcbiAgZW5kO1xuICBCeXRlcy5zZXQgIWJ1ZmZlciAhYnVmcG9zIGM7XG4gIGluY3IgYnVmcG9zXG5cbmxldCBnZXRfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5zdWJfc3RyaW5nICFidWZmZXIgMCAhYnVmcG9zIGluIGJ1ZmZlciA6PSBpbml0aWFsX2J1ZmZlcjsgc1xuXG4oKiBUaGUgbGV4ZXIgKilcblxubGV0IG1ha2VfbGV4ZXIga2V5d29yZHMgPVxuICBsZXQga3dkX3RhYmxlID0gSGFzaHRibC5jcmVhdGUgMTcgaW5cbiAgTGlzdC5pdGVyIChmdW4gcyAtPiBIYXNodGJsLmFkZCBrd2RfdGFibGUgcyAoS3dkIHMpKSBrZXl3b3JkcztcbiAgbGV0IGlkZW50X29yX2tleXdvcmQgaWQgPVxuICAgIHRyeSBIYXNodGJsLmZpbmQga3dkX3RhYmxlIGlkIHdpdGhcbiAgICAgIE5vdF9mb3VuZCAtPiBJZGVudCBpZFxuICBhbmQga2V5d29yZF9vcl9lcnJvciBjID1cbiAgICBsZXQgcyA9IFN0cmluZy5tYWtlIDEgYyBpblxuICAgIHRyeSBIYXNodGJsLmZpbmQga3dkX3RhYmxlIHMgd2l0aFxuICAgICAgTm90X2ZvdW5kIC0+IHJhaXNlIChTdHJlYW0uRXJyb3IgKFwiSWxsZWdhbCBjaGFyYWN0ZXIgXCIgXiBzKSlcbiAgaW5cbiAgbGV0IHJlYyBuZXh0X3Rva2VuIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcgJyB8ICdcXDAxMCcgfCAnXFwwMTMnIHwgJ1xcMDA5JyB8ICdcXDAyNicgfCAnXFwwMTInKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IG5leHRfdG9rZW4gc3RybV9fXG4gICAgfCBTb21lICgnQScuLidaJyB8ICdhJy4uJ3onIHwgJ18nIHwgJ1xcMTkyJy4uJ1xcMjU1JyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgaWRlbnQgc1xuICAgIHwgU29tZVxuICAgICAgICAoJyEnIHwgJyUnIHwgJyYnIHwgJyQnIHwgJyMnIHwgJysnIHwgJy8nIHwgJzonIHwgJzwnIHwgJz0nIHwgJz4nIHxcbiAgICAgICAgICc/JyB8ICdAJyB8ICdcXFxcJyB8ICd+JyB8ICdeJyB8ICd8JyB8ICcqJyBhcyBjKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHJlc2V0X2J1ZmZlciAoKTsgc3RvcmUgYzsgaWRlbnQyIHNcbiAgICB8IFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXztcbiAgICAgICAgbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgU29tZSAnXFwnJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBjID1cbiAgICAgICAgICB0cnkgY2hhciBzdHJtX18gd2l0aFxuICAgICAgICAgICAgU3RyZWFtLkZhaWx1cmUgLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICBpblxuICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgIFNvbWUgJ1xcJycgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBTb21lIChDaGFyIGMpXG4gICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSAnXFxcIicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IFNvbWUgKFN0cmluZyAoc3RyaW5nIHMpKVxuICAgIHwgU29tZSAnLScgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBuZWdfbnVtYmVyIHN0cm1fX1xuICAgIHwgU29tZSAnKCcgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgU29tZSAoa2V5d29yZF9vcl9lcnJvciBjKVxuICAgIHwgXyAtPiBOb25lXG4gIGFuZCBpZGVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lXG4gICAgICAgICgnQScuLidaJyB8ICdhJy4uJ3onIHwgJ1xcMTkyJy4uJ1xcMjU1JyB8ICcwJy4uJzknIHwgJ18nIHwgJ1xcJycgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBpZGVudCBzXG4gICAgfCBfIC0+IFNvbWUgKGlkZW50X29yX2tleXdvcmQgKGdldF9zdHJpbmcgKCkpKVxuICBhbmQgaWRlbnQyIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWVcbiAgICAgICAgKCchJyB8ICclJyB8ICcmJyB8ICckJyB8ICcjJyB8ICcrJyB8ICctJyB8ICcvJyB8ICc6JyB8ICc8JyB8ICc9JyB8XG4gICAgICAgICAnPicgfCAnPycgfCAnQCcgfCAnXFxcXCcgfCAnficgfCAnXicgfCAnfCcgfCAnKicgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBpZGVudDIgc1xuICAgIHwgXyAtPiBTb21lIChpZGVudF9vcl9rZXl3b3JkIChnZXRfc3RyaW5nICgpKSlcbiAgYW5kIG5lZ19udW1iZXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fO1xuICAgICAgICBsZXQgcyA9IHN0cm1fXyBpbiByZXNldF9idWZmZXIgKCk7IHN0b3JlICctJzsgc3RvcmUgYzsgbnVtYmVyIHNcbiAgICB8IF8gLT4gbGV0IHMgPSBzdHJtX18gaW4gcmVzZXRfYnVmZmVyICgpOyBzdG9yZSAnLSc7IGlkZW50MiBzXG4gIGFuZCBudW1iZXIgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBudW1iZXIgc1xuICAgIHwgU29tZSAnLicgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSAnLic7IGRlY2ltYWxfcGFydCBzXG4gICAgfCBTb21lICgnZScgfCAnRScpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgJ0UnOyBleHBvbmVudF9wYXJ0IHNcbiAgICB8IF8gLT4gU29tZSAoSW50IChpbnRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBkZWNpbWFsX3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJzAnLi4nOScgYXMgYykgLT5cbiAgICAgICAgU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBkZWNpbWFsX3BhcnQgc1xuICAgIHwgU29tZSAoJ2UnIHwgJ0UnKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIHN0b3JlICdFJzsgZXhwb25lbnRfcGFydCBzXG4gICAgfCBfIC0+IFNvbWUgKEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGdldF9zdHJpbmcgKCkpKSlcbiAgYW5kIGV4cG9uZW50X3BhcnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAoJysnIHwgJy0nIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZW5kX2V4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBlbmRfZXhwb25lbnRfcGFydCBzdHJtX19cbiAgYW5kIGVuZF9leHBvbmVudF9wYXJ0IChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgKCcwJy4uJzknIGFzIGMpIC0+XG4gICAgICAgIFN0cmVhbS5qdW5rIHN0cm1fXzsgbGV0IHMgPSBzdHJtX18gaW4gc3RvcmUgYzsgZW5kX2V4cG9uZW50X3BhcnQgc1xuICAgIHwgXyAtPiBTb21lIChGbG9hdCAoZmxvYXRfb2Zfc3RyaW5nIChnZXRfc3RyaW5nICgpKSkpXG4gIGFuZCBzdHJpbmcgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnXFxcIicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBnZXRfc3RyaW5nICgpXG4gICAgfCBTb21lICdcXFxcJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGxldCBjID1cbiAgICAgICAgICB0cnkgZXNjYXBlIHN0cm1fXyB3aXRoXG4gICAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGluXG4gICAgICAgIGxldCBzID0gc3RybV9fIGluIHN0b3JlIGM7IHN0cmluZyBzXG4gICAgfCBTb21lIGMgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBsZXQgcyA9IHN0cm1fXyBpbiBzdG9yZSBjOyBzdHJpbmcgc1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgY2hhciAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICdcXFxcJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGJlZ2luIHRyeSBlc2NhcGUgc3RybV9fIHdpdGhcbiAgICAgICAgICBTdHJlYW0uRmFpbHVyZSAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgZXNjYXBlIChzdHJtX18gOiBfIFN0cmVhbS50KSA9XG4gICAgbWF0Y2ggU3RyZWFtLnBlZWsgc3RybV9fIHdpdGhcbiAgICAgIFNvbWUgJ24nIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xcbidcbiAgICB8IFNvbWUgJ3InIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xccidcbiAgICB8IFNvbWUgJ3QnIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgJ1xcdCdcbiAgICB8IFNvbWUgKCcwJy4uJzknIGFzIGMxKSAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgIGJlZ2luIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICAgICAgU29tZSAoJzAnLi4nOScgYXMgYzIpIC0+XG4gICAgICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgICAgICAgICBTb21lICgnMCcuLic5JyBhcyBjMykgLT5cbiAgICAgICAgICAgICAgICBTdHJlYW0uanVuayBzdHJtX187XG4gICAgICAgICAgICAgICAgQ2hhci5jaHJcbiAgICAgICAgICAgICAgICAgICgoQ2hhci5jb2RlIGMxIC0gNDgpICogMTAwICsgKENoYXIuY29kZSBjMiAtIDQ4KSAqIDEwICtcbiAgICAgICAgICAgICAgICAgICAgIChDaGFyLmNvZGUgYzMgLSA0OCkpXG4gICAgICAgICAgICB8IF8gLT4gcmFpc2UgKFN0cmVhbS5FcnJvciBcIlwiKVxuICAgICAgICAgICAgZW5kXG4gICAgICAgIHwgXyAtPiByYWlzZSAoU3RyZWFtLkVycm9yIFwiXCIpXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBjIC0+IFN0cmVhbS5qdW5rIHN0cm1fXzsgY1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcqJyAtPlxuICAgICAgICBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIGNvbW1lbnQgczsgbmV4dF90b2tlbiBzXG4gICAgfCBfIC0+IFNvbWUgKGtleXdvcmRfb3JfZXJyb3IgJygnKVxuICBhbmQgY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcoJyAtPiBTdHJlYW0uanVuayBzdHJtX187IG1heWJlX25lc3RlZF9jb21tZW50IHN0cm1fX1xuICAgIHwgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9lbmRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGFuZCBtYXliZV9uZXN0ZWRfY29tbWVudCAoc3RybV9fIDogXyBTdHJlYW0udCkgPVxuICAgIG1hdGNoIFN0cmVhbS5wZWVrIHN0cm1fXyB3aXRoXG4gICAgICBTb21lICcqJyAtPiBTdHJlYW0uanVuayBzdHJtX187IGxldCBzID0gc3RybV9fIGluIGNvbW1lbnQgczsgY29tbWVudCBzXG4gICAgfCBTb21lIF8gLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBjb21tZW50IHN0cm1fX1xuICAgIHwgXyAtPiByYWlzZSBTdHJlYW0uRmFpbHVyZVxuICBhbmQgbWF5YmVfZW5kX2NvbW1lbnQgKHN0cm1fXyA6IF8gU3RyZWFtLnQpID1cbiAgICBtYXRjaCBTdHJlYW0ucGVlayBzdHJtX18gd2l0aFxuICAgICAgU29tZSAnKScgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyAoKVxuICAgIHwgU29tZSAnKicgLT4gU3RyZWFtLmp1bmsgc3RybV9fOyBtYXliZV9lbmRfY29tbWVudCBzdHJtX19cbiAgICB8IFNvbWUgXyAtPiBTdHJlYW0uanVuayBzdHJtX187IGNvbW1lbnQgc3RybV9fXG4gICAgfCBfIC0+IHJhaXNlIFN0cmVhbS5GYWlsdXJlXG4gIGluXG4gIGZ1biBpbnB1dCAtPiBTdHJlYW0uZnJvbSAoZnVuIF9jb3VudCAtPiBuZXh0X3Rva2VuIGlucHV0KVxuIiwiKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQ2FtbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgRGFtaWVuIERvbGlnZXosIHByb2pldCBQYXJhLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBDb3B5cmlnaHQgMTk5NyBJbnN0aXR1dCBOYXRpb25hbCBkZSBSZWNoZXJjaGUgZW4gSW5mb3JtYXRpcXVlIGV0ICAgICAqKVxuKCogICAgIGVuIEF1dG9tYXRpcXVlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCogICBBbGwgcmlnaHRzIHJlc2VydmVkLiAgVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiAgICAqKVxuKCogICB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xLCB3aXRoIHRoZSAgICAgICAgICAqKVxuKCogICBzcGVjaWFsIGV4Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBMSUNFTlNFLiAgICAgICAgICAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKVxuKCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMlwiXVxuXG5tb2R1bGUgdHlwZSBTZWVkZWRTID0gc2lnXG5cbiAgdHlwZSBrZXlcbiAgdHlwZSAhJ2EgdFxuICB2YWwgY3JlYXRlIDogP3JhbmRvbSAoKnRod2FydCB0b29scy9zeW5jX3N0ZGxpYl9kb2NzKikgOiBib29sIC0+IGludCAtPiAnYSB0XG4gIHZhbCBjbGVhciA6ICdhIHQgLT4gdW5pdFxuICB2YWwgcmVzZXQgOiAnYSB0IC0+IHVuaXRcbiAgdmFsIGNvcHkgOiAnYSB0IC0+ICdhIHRcbiAgdmFsIGFkZCA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIHJlbW92ZSA6ICdhIHQgLT4ga2V5IC0+IHVuaXRcbiAgdmFsIGZpbmQgOiAnYSB0IC0+IGtleSAtPiAnYVxuICB2YWwgZmluZF9vcHQgOiAnYSB0IC0+IGtleSAtPiAnYSBvcHRpb25cbiAgdmFsIGZpbmRfYWxsIDogJ2EgdCAtPiBrZXkgLT4gJ2EgbGlzdFxuICB2YWwgcmVwbGFjZSA6ICdhIHQgLT4ga2V5IC0+ICdhIC0+IHVuaXRcbiAgdmFsIG1lbSA6ICdhIHQgLT4ga2V5IC0+IGJvb2xcbiAgdmFsIGl0ZXIgOiAoa2V5IC0+ICdhIC0+IHVuaXQpIC0+ICdhIHQgLT4gdW5pdFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCBmaWx0ZXJfbWFwX2lucGxhY2UgOiAoa2V5IC0+ICdhIC0+ICdhIG9wdGlvbikgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZvbGQgOiAoa2V5IC0+ICdhIC0+ICdiIC0+ICdiKSAtPiAnYSB0IC0+ICdiIC0+ICdiXG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGxlbmd0aCA6ICdhIHQgLT4gaW50XG4gIHZhbCBzdGF0cyA6ICdhIHQgLT4gSGFzaHRibC5zdGF0aXN0aWNzXG4gIHZhbCB0b19zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX2tleXMgOiBfIHQgLT4ga2V5IFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIHRvX3NlcV92YWx1ZXMgOiAnYSB0IC0+ICdhIFNlcS50XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGFkZF9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgcmVwbGFjZV9zZXEgOiAnYSB0IC0+IChrZXkgKiAnYSkgU2VxLnQgLT4gdW5pdFxuICB2YWwgb2Zfc2VxIDogKGtleSAqICdhKSBTZXEudCAtPiAnYSB0XG4gIHZhbCBjbGVhbjogJ2EgdCAtPiB1bml0XG4gIHZhbCBzdGF0c19hbGl2ZTogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgICAoKiogc2FtZSBhcyB7IXN0YXRzfSBidXQgb25seSBjb3VudCB0aGUgYWxpdmUgYmluZGluZ3MgKilcbmVuZFxuXG5tb2R1bGUgdHlwZSBTID0gc2lnXG5cbiAgdHlwZSBrZXlcbiAgdHlwZSAhJ2EgdFxuICB2YWwgY3JlYXRlIDogaW50IC0+ICdhIHRcbiAgdmFsIGNsZWFyIDogJ2EgdCAtPiB1bml0XG4gIHZhbCByZXNldCA6ICdhIHQgLT4gdW5pdFxuICB2YWwgY29weSA6ICdhIHQgLT4gJ2EgdFxuICB2YWwgYWRkIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgcmVtb3ZlIDogJ2EgdCAtPiBrZXkgLT4gdW5pdFxuICB2YWwgZmluZCA6ICdhIHQgLT4ga2V5IC0+ICdhXG4gIHZhbCBmaW5kX29wdCA6ICdhIHQgLT4ga2V5IC0+ICdhIG9wdGlvblxuICB2YWwgZmluZF9hbGwgOiAnYSB0IC0+IGtleSAtPiAnYSBsaXN0XG4gIHZhbCByZXBsYWNlIDogJ2EgdCAtPiBrZXkgLT4gJ2EgLT4gdW5pdFxuICB2YWwgbWVtIDogJ2EgdCAtPiBrZXkgLT4gYm9vbFxuICB2YWwgaXRlciA6IChrZXkgLT4gJ2EgLT4gdW5pdCkgLT4gJ2EgdCAtPiB1bml0XG4gICAgW0BAYWxlcnQgb2xkX2VwaGVtZXJvbl9hcGkgXCJUaGlzIGZ1bmN0aW9uIHdvbid0IGJlIGF2YWlsYWJsZSBpbiA1LjBcIl1cbiAgdmFsIGZpbHRlcl9tYXBfaW5wbGFjZSA6IChrZXkgLT4gJ2EgLT4gJ2Egb3B0aW9uKSAtPiAnYSB0IC0+IHVuaXRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgZm9sZCA6IChrZXkgLT4gJ2EgLT4gJ2IgLT4gJ2IpIC0+ICdhIHQgLT4gJ2IgLT4gJ2JcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgbGVuZ3RoIDogJ2EgdCAtPiBpbnRcbiAgdmFsIHN0YXRzIDogJ2EgdCAtPiBIYXNodGJsLnN0YXRpc3RpY3NcbiAgdmFsIHRvX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudFxuICAgIFtAQGFsZXJ0IG9sZF9lcGhlbWVyb25fYXBpIFwiVGhpcyBmdW5jdGlvbiB3b24ndCBiZSBhdmFpbGFibGUgaW4gNS4wXCJdXG4gIHZhbCB0b19zZXFfa2V5cyA6IF8gdCAtPiBrZXkgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgdG9fc2VxX3ZhbHVlcyA6ICdhIHQgLT4gJ2EgU2VxLnRcbiAgICBbQEBhbGVydCBvbGRfZXBoZW1lcm9uX2FwaSBcIlRoaXMgZnVuY3Rpb24gd29uJ3QgYmUgYXZhaWxhYmxlIGluIDUuMFwiXVxuICB2YWwgYWRkX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCByZXBsYWNlX3NlcSA6ICdhIHQgLT4gKGtleSAqICdhKSBTZXEudCAtPiB1bml0XG4gIHZhbCBvZl9zZXEgOiAoa2V5ICogJ2EpIFNlcS50IC0+ICdhIHRcbiAgdmFsIGNsZWFuOiAnYSB0IC0+IHVuaXRcbiAgdmFsIHN0YXRzX2FsaXZlOiAnYSB0IC0+IEhhc2h0Ymwuc3RhdGlzdGljc1xuICAgICgqKiBzYW1lIGFzIHshc3RhdHN9IGJ1dCBvbmx5IGNvdW50IHRoZSBhbGl2ZSBiaW5kaW5ncyAqKVxuZW5kXG5cbm1vZHVsZSBHZW5IYXNoVGFibGUgPSBzdHJ1Y3RcblxuICB0eXBlIGVxdWFsID1cbiAgfCBFVHJ1ZSB8IEVGYWxzZVxuICB8IEVEZWFkICgqKiB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgcmVjbGFpbWVkIHRoZSBkYXRhICopXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQoSDogc2lnXG4gICAgdHlwZSB0XG4gICAgdHlwZSAnYSBjb250YWluZXJcbiAgICB2YWwgY3JlYXRlOiB0IC0+ICdhIC0+ICdhIGNvbnRhaW5lclxuICAgIHZhbCBoYXNoOiBpbnQgLT4gdCAtPiBpbnRcbiAgICB2YWwgZXF1YWw6ICdhIGNvbnRhaW5lciAtPiB0IC0+IGVxdWFsXG4gICAgdmFsIGdldF9kYXRhOiAnYSBjb250YWluZXIgLT4gJ2Egb3B0aW9uXG4gICAgdmFsIGdldF9rZXk6ICdhIGNvbnRhaW5lciAtPiB0IG9wdGlvblxuICAgIHZhbCBzZXRfa2V5X2RhdGE6ICdhIGNvbnRhaW5lciAtPiB0IC0+ICdhIC0+IHVuaXRcbiAgICB2YWwgY2hlY2tfa2V5OiAnYSBjb250YWluZXIgLT4gYm9vbFxuICBlbmQpIDogU2VlZGVkUyB3aXRoIHR5cGUga2V5ID0gSC50XG4gID0gc3RydWN0XG5cbiAgICB0eXBlICdhIHQgPVxuICAgICAgeyBtdXRhYmxlIHNpemU6IGludDsgICAgICAgICAgICAgICAgICAoKiBudW1iZXIgb2YgZW50cmllcyAqKVxuICAgICAgICBtdXRhYmxlIGRhdGE6ICdhIGJ1Y2tldGxpc3QgYXJyYXk7ICAoKiB0aGUgYnVja2V0cyAqKVxuICAgICAgICBzZWVkOiBpbnQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBmb3IgcmFuZG9taXphdGlvbiAqKVxuICAgICAgICBpbml0aWFsX3NpemU6IGludDsgICAgICAgICAgICAgICAgICAoKiBpbml0aWFsIGFycmF5IHNpemUgKilcbiAgICAgIH1cblxuICAgIGFuZCAnYSBidWNrZXRsaXN0ID1cbiAgICB8IEVtcHR5XG4gICAgfCBDb25zIG9mIGludCAoKiBoYXNoIG9mIHRoZSBrZXkgKikgKiAnYSBILmNvbnRhaW5lciAqICdhIGJ1Y2tldGxpc3RcblxuICAgICgqKiB0aGUgaGFzaCBvZiB0aGUga2V5IGlzIGtlcHQgaW4gb3JkZXIgdG8gdGVzdCB0aGUgZXF1YWxpdHkgb2YgdGhlIGhhc2hcbiAgICAgIGJlZm9yZSB0aGUga2V5LiBTYW1lIHJlYXNvbiBhcyBmb3IgV2Vhay5NYWtlICopXG5cbiAgICB0eXBlIGtleSA9IEgudFxuXG4gICAgbGV0IHJlYyBwb3dlcl8yX2Fib3ZlIHggbiA9XG4gICAgICBpZiB4ID49IG4gdGhlbiB4XG4gICAgICBlbHNlIGlmIHggKiAyID4gU3lzLm1heF9hcnJheV9sZW5ndGggdGhlbiB4XG4gICAgICBlbHNlIHBvd2VyXzJfYWJvdmUgKHggKiAyKSBuXG5cbiAgICBsZXQgcHJuZyA9IGxhenkgKFJhbmRvbS5TdGF0ZS5tYWtlX3NlbGZfaW5pdCgpKVxuXG4gICAgbGV0IGNyZWF0ZSA/KHJhbmRvbSA9IChIYXNodGJsLmlzX3JhbmRvbWl6ZWQgKCkpKSBpbml0aWFsX3NpemUgPVxuICAgICAgbGV0IHMgPSBwb3dlcl8yX2Fib3ZlIDE2IGluaXRpYWxfc2l6ZSBpblxuICAgICAgbGV0IHNlZWQgPSBpZiByYW5kb20gdGhlbiBSYW5kb20uU3RhdGUuYml0cyAoTGF6eS5mb3JjZSBwcm5nKSBlbHNlIDAgaW5cbiAgICAgIHsgaW5pdGlhbF9zaXplID0gczsgc2l6ZSA9IDA7IHNlZWQgPSBzZWVkOyBkYXRhID0gQXJyYXkubWFrZSBzIEVtcHR5IH1cblxuICAgIGxldCBjbGVhciBoID1cbiAgICAgIGguc2l6ZSA8LSAwO1xuICAgICAgbGV0IGxlbiA9IEFycmF5Lmxlbmd0aCBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBsZW4gLSAxIGRvXG4gICAgICAgIGguZGF0YS4oaSkgPC0gRW1wdHlcbiAgICAgIGRvbmVcblxuICAgIGxldCByZXNldCBoID1cbiAgICAgIGxldCBsZW4gPSBBcnJheS5sZW5ndGggaC5kYXRhIGluXG4gICAgICBpZiBsZW4gPSBoLmluaXRpYWxfc2l6ZSB0aGVuXG4gICAgICAgIGNsZWFyIGhcbiAgICAgIGVsc2UgYmVnaW5cbiAgICAgICAgaC5zaXplIDwtIDA7XG4gICAgICAgIGguZGF0YSA8LSBBcnJheS5tYWtlIGguaW5pdGlhbF9zaXplIEVtcHR5XG4gICAgICBlbmRcblxuICAgIGxldCBjb3B5IGggPSB7IGggd2l0aCBkYXRhID0gQXJyYXkuY29weSBoLmRhdGEgfVxuXG4gICAgbGV0IGtleV9pbmRleCBoIGhrZXkgPVxuICAgICAgaGtleSBsYW5kIChBcnJheS5sZW5ndGggaC5kYXRhIC0gMSlcblxuICAgIGxldCBjbGVhbiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgRW1wdHlcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIHdoZW4gbm90IChILmNoZWNrX2tleSBjKSAtPlxuICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICB8IENvbnMoaGtleSwgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIENvbnMoaGtleSwgYywgZG9fYnVja2V0IHJlc3QpXG4gICAgICBpblxuICAgICAgbGV0IGQgPSBoLmRhdGEgaW5cbiAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggZCAtIDEgZG9cbiAgICAgICAgZC4oaSkgPC0gZG9fYnVja2V0IGQuKGkpXG4gICAgICBkb25lXG5cbiAgICAoKiogcmVzaXplIGlzIHRoZSBvbmx5IGZ1bmN0aW9uIHRvIGRvIHRoZSBhY3R1YWwgY2xlYW5pbmcgb2YgZGVhZCBrZXlzXG4gICAgICAgIChyZW1vdmUgZG9lcyBpdCBqdXN0IGJlY2F1c2UgaXQgY291bGQpLlxuXG4gICAgICAgIFRoZSBnb2FsIGlzIHRvOlxuXG4gICAgICAgIC0gbm90IHJlc2l6ZSBpbmZpbml0ZWx5IHdoZW4gdGhlIGFjdHVhbCBudW1iZXIgb2YgYWxpdmUga2V5cyBpc1xuICAgICAgICBib3VuZGVkIGJ1dCBrZXlzIGFyZSBjb250aW51b3VzbHkgYWRkZWQuIFRoYXQgd291bGQgaGFwcGVuIGlmXG4gICAgICAgIHRoaXMgZnVuY3Rpb24gYWx3YXlzIHJlc2l6ZS5cbiAgICAgICAgLSBub3QgY2FsbCB0aGlzIGZ1bmN0aW9uIGFmdGVyIGVhY2ggYWRkaXRpb24sIHRoYXQgd291bGQgaGFwcGVuIGlmIHRoaXNcbiAgICAgICAgZnVuY3Rpb24gZG9uJ3QgcmVzaXplIGV2ZW4gd2hlbiBvbmx5IG9uZSBrZXkgaXMgZGVhZC5cblxuICAgICAgICBTbyB0aGUgYWxnb3JpdGhtOlxuICAgICAgICAtIGNsZWFuIHRoZSBrZXlzIGJlZm9yZSByZXNpemluZ1xuICAgICAgICAtIGlmIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIGtleXMgaXMgbGVzcyB0aGFuIGhhbGYgdGhlIHNpemUgb2YgdGhlXG4gICAgICAgIGFycmF5LCBkb24ndCByZXNpemUuXG4gICAgICAgIC0gaWYgaXQgaXMgbW9yZSwgcmVzaXplLlxuXG4gICAgICAgIFRoZSBzZWNvbmQgcHJvYmxlbSByZW1haW5zIGlmIHRoZSB0YWJsZSByZWFjaGVzIHshU3lzLm1heF9hcnJheV9sZW5ndGh9LlxuXG4gICAgKilcbiAgICBsZXQgcmVzaXplIGggPVxuICAgICAgbGV0IG9kYXRhID0gaC5kYXRhIGluXG4gICAgICBsZXQgb3NpemUgPSBBcnJheS5sZW5ndGggb2RhdGEgaW5cbiAgICAgIGxldCBuc2l6ZSA9IG9zaXplICogMiBpblxuICAgICAgY2xlYW4gaDtcbiAgICAgIGlmIG5zaXplIDwgU3lzLm1heF9hcnJheV9sZW5ndGggJiYgaC5zaXplID49IG9zaXplIGxzciAxIHRoZW4gYmVnaW5cbiAgICAgICAgbGV0IG5kYXRhID0gQXJyYXkubWFrZSBuc2l6ZSBFbXB0eSBpblxuICAgICAgICBoLmRhdGEgPC0gbmRhdGE7ICAgICAgICgqIHNvIHRoYXQga2V5X2luZGV4IHNlZXMgdGhlIG5ldyBidWNrZXQgY291bnQgKilcbiAgICAgICAgbGV0IHJlYyBpbnNlcnRfYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgICAgIEVtcHR5IC0+ICgpXG4gICAgICAgICAgfCBDb25zKGhrZXksIGRhdGEsIHJlc3QpIC0+XG4gICAgICAgICAgICAgIGluc2VydF9idWNrZXQgcmVzdDsgKCogcHJlc2VydmUgb3JpZ2luYWwgb3JkZXIgb2YgZWxlbWVudHMgKilcbiAgICAgICAgICAgICAgbGV0IG5pZHggPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICAgICAgICAgIG5kYXRhLihuaWR4KSA8LSBDb25zKGhrZXksIGRhdGEsIG5kYXRhLihuaWR4KSkgaW5cbiAgICAgICAgZm9yIGkgPSAwIHRvIG9zaXplIC0gMSBkb1xuICAgICAgICAgIGluc2VydF9idWNrZXQgb2RhdGEuKGkpXG4gICAgICAgIGRvbmVcbiAgICAgIGVuZFxuXG4gICAgbGV0IGFkZCBoIGtleSBpbmZvID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCBpID0ga2V5X2luZGV4IGggaGtleSBpblxuICAgICAgbGV0IGNvbnRhaW5lciA9IEguY3JlYXRlIGtleSBpbmZvIGluXG4gICAgICBsZXQgYnVja2V0ID0gQ29ucyhoa2V5LCBjb250YWluZXIsIGguZGF0YS4oaSkpIGluXG4gICAgICBoLmRhdGEuKGkpIDwtIGJ1Y2tldDtcbiAgICAgIGguc2l6ZSA8LSBoLnNpemUgKyAxO1xuICAgICAgaWYgaC5zaXplID4gQXJyYXkubGVuZ3RoIGguZGF0YSBsc2wgMSB0aGVuIHJlc2l6ZSBoXG5cbiAgICBsZXQgcmVtb3ZlIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgcmVtb3ZlX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gRW1wdHlcbiAgICAgICAgfCBDb25zKGhrLCBjLCBuZXh0KSB3aGVuIGhrZXkgPSBoayAtPlxuICAgICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgICB8IEVUcnVlIC0+IGguc2l6ZSA8LSBoLnNpemUgLSAxOyBuZXh0XG4gICAgICAgICAgICB8IEVGYWxzZSAtPiBDb25zKGhrLCBjLCByZW1vdmVfYnVja2V0IG5leHQpXG4gICAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgICAgKCogVGhlIGRlYWQga2V5IGlzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZC4gSXQgaXMgYWNjZXB0YWJsZVxuICAgICAgICAgICAgICAgICAgICBmb3IgdGhpcyBmdW5jdGlvbiBzaW5jZSBpdCBhbHJlYWR5IHJlbW92ZXMgYSBiaW5kaW5nICopXG4gICAgICAgICAgICAgICAgaC5zaXplIDwtIGguc2l6ZSAtIDE7XG4gICAgICAgICAgICAgICAgcmVtb3ZlX2J1Y2tldCBuZXh0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgfCBDb25zKGhrLGMsbmV4dCkgLT4gQ29ucyhoaywgYywgcmVtb3ZlX2J1Y2tldCBuZXh0KSBpblxuICAgICAgbGV0IGkgPSBrZXlfaW5kZXggaCBoa2V5IGluXG4gICAgICBoLmRhdGEuKGkpIDwtIHJlbW92ZV9idWNrZXQgaC5kYXRhLihpKVxuXG4gICAgKCoqIHshZmluZH0gZG9uJ3QgcmVtb3ZlIGRlYWQga2V5cyBiZWNhdXNlIGl0IHdvdWxkIGJlIHN1cnByaXNpbmcgZm9yXG4gICAgICAgIHRoZSB1c2VyIHRoYXQgYSByZWFkLW9ubHkgZnVuY3Rpb24gbXV0YXRlcyB0aGUgc3RhdGUgKGVnLiBjb25jdXJyZW50XG4gICAgICAgIGFjY2VzcykuIFNhbWUgZm9yIHshaXRlcn0sIHshZm9sZH0sIHshbWVtfS5cbiAgICAqKVxuICAgIGxldCByZWMgZmluZF9yZWMga2V5IGhrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIHJhaXNlIE5vdF9mb3VuZFxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+XG4gICAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgKCogVGhpcyBjYXNlIGlzIG5vdCBpbXBvc3NpYmxlIGJlY2F1c2UgdGhlIGdjIGNhbiBydW4gYmV0d2VlblxuICAgICAgICAgICAgICAgICAgICAgIEguZXF1YWwgYW5kIEguZ2V0X2RhdGEgKilcbiAgICAgICAgICAgICAgICAgIGZpbmRfcmVjIGtleSBoa2V5IHJlc3RcbiAgICAgICAgICAgICAgfCBTb21lIGQgLT4gZFxuICAgICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX3JlYyBrZXkgaGtleSByZXN0XG5cbiAgICBsZXQgZmluZCBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICAoKiBUT0RPIGlubGluZSAzIGl0ZXJhdGlvbnMgKilcbiAgICAgIGZpbmRfcmVjIGtleSBoa2V5IChoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpKVxuXG4gICAgbGV0IHJlYyBmaW5kX3JlY19vcHQga2V5IGhrZXkgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIE5vbmVcbiAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgd2hlbiBoa2V5ID0gaGsgIC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPlxuICAgICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT5cbiAgICAgICAgICAgICAgICAgICgqIFRoaXMgY2FzZSBpcyBub3QgaW1wb3NzaWJsZSBiZWNhdXNlIHRoZSBnYyBjYW4gcnVuIGJldHdlZW5cbiAgICAgICAgICAgICAgICAgICAgICBILmVxdWFsIGFuZCBILmdldF9kYXRhICopXG4gICAgICAgICAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgXyBhcyBkIC0+IGRcbiAgICAgICAgICAgICAgZW5kXG4gICAgICAgICAgfCBFRmFsc2UgLT4gZmluZF9yZWNfb3B0IGtleSBoa2V5IHJlc3RcbiAgICAgICAgICB8IEVEZWFkIC0+XG4gICAgICAgICAgICAgIGZpbmRfcmVjX29wdCBrZXkgaGtleSByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX3JlY19vcHQga2V5IGhrZXkgcmVzdFxuXG4gICAgbGV0IGZpbmRfb3B0IGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgICgqIFRPRE8gaW5saW5lIDMgaXRlcmF0aW9ucyAqKVxuICAgICAgZmluZF9yZWNfb3B0IGtleSBoa2V5IChoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpKVxuXG4gICAgbGV0IGZpbmRfYWxsIGgga2V5ID1cbiAgICAgIGxldCBoa2V5ID0gSC5oYXNoIGguc2VlZCBrZXkgaW5cbiAgICAgIGxldCByZWMgZmluZF9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPiBbXVxuICAgICAgfCBDb25zKGhrLCBjLCByZXN0KSB3aGVuIGhrZXkgPSBoayAgLT5cbiAgICAgICAgICBiZWdpbiBtYXRjaCBILmVxdWFsIGMga2V5IHdpdGhcbiAgICAgICAgICB8IEVUcnVlIC0+IGJlZ2luIG1hdGNoIEguZ2V0X2RhdGEgYyB3aXRoXG4gICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgZmluZF9pbl9idWNrZXQgcmVzdFxuICAgICAgICAgICAgICB8IFNvbWUgZCAtPiBkOjpmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgICBlbmRcbiAgICAgICAgICB8IEVGYWxzZSAtPiBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgfCBFRGVhZCAtPlxuICAgICAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0XG4gICAgICAgICAgZW5kXG4gICAgICB8IENvbnMoXywgXywgcmVzdCkgLT5cbiAgICAgICAgICBmaW5kX2luX2J1Y2tldCByZXN0IGluXG4gICAgICBmaW5kX2luX2J1Y2tldCBoLmRhdGEuKGtleV9pbmRleCBoIGhrZXkpXG5cblxuICAgIGxldCByZXBsYWNlIGgga2V5IGluZm8gPVxuICAgICAgbGV0IGhrZXkgPSBILmhhc2ggaC5zZWVkIGtleSBpblxuICAgICAgbGV0IHJlYyByZXBsYWNlX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT4gcmFpc2UgTm90X2ZvdW5kXG4gICAgICAgIHwgQ29ucyhoaywgYywgbmV4dCkgd2hlbiBoa2V5ID0gaGsgLT5cbiAgICAgICAgICAgIGJlZ2luIG1hdGNoIEguZXF1YWwgYyBrZXkgd2l0aFxuICAgICAgICAgICAgfCBFVHJ1ZSAtPiBILnNldF9rZXlfZGF0YSBjIGtleSBpbmZvXG4gICAgICAgICAgICB8IEVGYWxzZSB8IEVEZWFkIC0+IHJlcGxhY2VfYnVja2V0IG5leHRcbiAgICAgICAgICAgIGVuZFxuICAgICAgICB8IENvbnMoXyxfLG5leHQpIC0+IHJlcGxhY2VfYnVja2V0IG5leHRcbiAgICAgIGluXG4gICAgICBsZXQgaSA9IGtleV9pbmRleCBoIGhrZXkgaW5cbiAgICAgIGxldCBsID0gaC5kYXRhLihpKSBpblxuICAgICAgdHJ5XG4gICAgICAgIHJlcGxhY2VfYnVja2V0IGxcbiAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgIGxldCBjb250YWluZXIgPSBILmNyZWF0ZSBrZXkgaW5mbyBpblxuICAgICAgICBoLmRhdGEuKGkpIDwtIENvbnMoaGtleSwgY29udGFpbmVyLCBsKTtcbiAgICAgICAgaC5zaXplIDwtIGguc2l6ZSArIDE7XG4gICAgICAgIGlmIGguc2l6ZSA+IEFycmF5Lmxlbmd0aCBoLmRhdGEgbHNsIDEgdGhlbiByZXNpemUgaFxuXG4gICAgbGV0IG1lbSBoIGtleSA9XG4gICAgICBsZXQgaGtleSA9IEguaGFzaCBoLnNlZWQga2V5IGluXG4gICAgICBsZXQgcmVjIG1lbV9pbl9idWNrZXQgPSBmdW5jdGlvblxuICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgIGZhbHNlXG4gICAgICB8IENvbnMoaGssIGMsIHJlc3QpIHdoZW4gaGsgPSBoa2V5IC0+XG4gICAgICAgICAgYmVnaW4gbWF0Y2ggSC5lcXVhbCBjIGtleSB3aXRoXG4gICAgICAgICAgfCBFVHJ1ZSAtPiB0cnVlXG4gICAgICAgICAgfCBFRmFsc2UgfCBFRGVhZCAtPiBtZW1faW5fYnVja2V0IHJlc3RcbiAgICAgICAgICBlbmRcbiAgICAgIHwgQ29ucyhfaGssIF9jLCByZXN0KSAtPiBtZW1faW5fYnVja2V0IHJlc3QgaW5cbiAgICAgIG1lbV9pbl9idWNrZXQgaC5kYXRhLihrZXlfaW5kZXggaCBoa2V5KVxuXG4gICAgbGV0IGl0ZXIgZiBoID1cbiAgICAgIGxldCByZWMgZG9fYnVja2V0ID0gZnVuY3Rpb25cbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgKClcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgIHwgTm9uZSwgXyB8IF8sIE5vbmUgLT4gKClcbiAgICAgICAgICAgIHwgU29tZSBrLCBTb21lIGQgLT4gZiBrIGRcbiAgICAgICAgICAgIGVuZDsgZG9fYnVja2V0IHJlc3QgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgbGV0IGZvbGQgZiBoIGluaXQgPVxuICAgICAgbGV0IHJlYyBkb19idWNrZXQgYiBhY2N1ID1cbiAgICAgICAgbWF0Y2ggYiB3aXRoXG4gICAgICAgICAgRW1wdHkgLT5cbiAgICAgICAgICAgIGFjY3VcbiAgICAgICAgfCBDb25zKF8sIGMsIHJlc3QpIC0+XG4gICAgICAgICAgICBsZXQgYWNjdSA9IGJlZ2luIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUsIF8gfCBfLCBOb25lIC0+IGFjY3VcbiAgICAgICAgICAgICAgfCBTb21lIGssIFNvbWUgZCAtPiBmIGsgZCBhY2N1XG4gICAgICAgICAgICBlbmQgaW5cbiAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0IGFjY3UgIGluXG4gICAgICBsZXQgZCA9IGguZGF0YSBpblxuICAgICAgbGV0IGFjY3UgPSByZWYgaW5pdCBpblxuICAgICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkIC0gMSBkb1xuICAgICAgICBhY2N1IDo9IGRvX2J1Y2tldCBkLihpKSAhYWNjdVxuICAgICAgZG9uZTtcbiAgICAgICFhY2N1XG5cbiAgICBsZXQgZmlsdGVyX21hcF9pbnBsYWNlIGYgaCA9XG4gICAgICBsZXQgcmVjIGRvX2J1Y2tldCA9IGZ1bmN0aW9uXG4gICAgICAgIHwgRW1wdHkgLT5cbiAgICAgICAgICAgIEVtcHR5XG4gICAgICAgIHwgQ29ucyhoaywgYywgcmVzdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIEguZ2V0X2tleSBjLCBILmdldF9kYXRhIGMgd2l0aFxuICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPlxuICAgICAgICAgICAgICAgIGRvX2J1Y2tldCByZXN0XG4gICAgICAgICAgICB8IFNvbWUgaywgU29tZSBkIC0+XG4gICAgICAgICAgICAgICAgbWF0Y2ggZiBrIGQgd2l0aFxuICAgICAgICAgICAgICAgIHwgTm9uZSAtPlxuICAgICAgICAgICAgICAgICAgICBkb19idWNrZXQgcmVzdFxuICAgICAgICAgICAgICAgIHwgU29tZSBuZXdfZCAtPlxuICAgICAgICAgICAgICAgICAgICBILnNldF9rZXlfZGF0YSBjIGsgbmV3X2Q7XG4gICAgICAgICAgICAgICAgICAgIENvbnMoaGssIGMsIGRvX2J1Y2tldCByZXN0KVxuICAgICAgaW5cbiAgICAgIGxldCBkID0gaC5kYXRhIGluXG4gICAgICBmb3IgaSA9IDAgdG8gQXJyYXkubGVuZ3RoIGQgLSAxIGRvXG4gICAgICAgIGQuKGkpIDwtIGRvX2J1Y2tldCBkLihpKVxuICAgICAgZG9uZVxuXG4gICAgbGV0IGxlbmd0aCBoID0gaC5zaXplXG5cbiAgICBsZXQgcmVjIGJ1Y2tldF9sZW5ndGggYWNjdSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgQ29ucyhfLCBfLCByZXN0KSAtPiBidWNrZXRfbGVuZ3RoIChhY2N1ICsgMSkgcmVzdFxuXG4gICAgbGV0IHN0YXRzIGggPVxuICAgICAgbGV0IG1ibCA9XG4gICAgICAgIEFycmF5LmZvbGRfbGVmdCAoZnVuIG0gYiAtPiBJbnQubWF4IG0gKGJ1Y2tldF9sZW5ndGggMCBiKSkgMCBoLmRhdGEgaW5cbiAgICAgIGxldCBoaXN0byA9IEFycmF5Lm1ha2UgKG1ibCArIDEpIDAgaW5cbiAgICAgIEFycmF5Lml0ZXJcbiAgICAgICAgKGZ1biBiIC0+XG4gICAgICAgICAgIGxldCBsID0gYnVja2V0X2xlbmd0aCAwIGIgaW5cbiAgICAgICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgICAgIGguZGF0YTtcbiAgICAgIHsgSGFzaHRibC5udW1fYmluZGluZ3MgPSBoLnNpemU7XG4gICAgICAgIG51bV9idWNrZXRzID0gQXJyYXkubGVuZ3RoIGguZGF0YTtcbiAgICAgICAgbWF4X2J1Y2tldF9sZW5ndGggPSBtYmw7XG4gICAgICAgIGJ1Y2tldF9oaXN0b2dyYW0gPSBoaXN0byB9XG5cbiAgICBsZXQgcmVjIGJ1Y2tldF9sZW5ndGhfYWxpdmUgYWNjdSA9IGZ1bmN0aW9uXG4gICAgICB8IEVtcHR5IC0+IGFjY3VcbiAgICAgIHwgQ29ucyhfLCBjLCByZXN0KSB3aGVuIEguY2hlY2tfa2V5IGMgLT5cbiAgICAgICAgICBidWNrZXRfbGVuZ3RoX2FsaXZlIChhY2N1ICsgMSkgcmVzdFxuICAgICAgfCBDb25zKF8sIF8sIHJlc3QpIC0+IGJ1Y2tldF9sZW5ndGhfYWxpdmUgYWNjdSByZXN0XG5cbiAgICBsZXQgc3RhdHNfYWxpdmUgaCA9XG4gICAgICBsZXQgc2l6ZSA9IHJlZiAwIGluXG4gICAgICBsZXQgbWJsID1cbiAgICAgICAgQXJyYXkuZm9sZF9sZWZ0XG4gICAgICAgICAgKGZ1biBtIGIgLT4gSW50Lm1heCBtIChidWNrZXRfbGVuZ3RoX2FsaXZlIDAgYikpIDAgaC5kYXRhXG4gICAgICBpblxuICAgICAgbGV0IGhpc3RvID0gQXJyYXkubWFrZSAobWJsICsgMSkgMCBpblxuICAgICAgQXJyYXkuaXRlclxuICAgICAgICAoZnVuIGIgLT5cbiAgICAgICAgICAgbGV0IGwgPSBidWNrZXRfbGVuZ3RoX2FsaXZlIDAgYiBpblxuICAgICAgICAgICBzaXplIDo9ICFzaXplICsgbDtcbiAgICAgICAgICAgaGlzdG8uKGwpIDwtIGhpc3RvLihsKSArIDEpXG4gICAgICAgIGguZGF0YTtcbiAgICAgIHsgSGFzaHRibC5udW1fYmluZGluZ3MgPSAhc2l6ZTtcbiAgICAgICAgbnVtX2J1Y2tldHMgPSBBcnJheS5sZW5ndGggaC5kYXRhO1xuICAgICAgICBtYXhfYnVja2V0X2xlbmd0aCA9IG1ibDtcbiAgICAgICAgYnVja2V0X2hpc3RvZ3JhbSA9IGhpc3RvIH1cblxuICAgIGxldCB0b19zZXEgdGJsID1cbiAgICAgICgqIGNhcHR1cmUgY3VycmVudCBhcnJheSwgc28gdGhhdCBldmVuIGlmIHRoZSB0YWJsZSBpcyByZXNpemVkIHdlXG4gICAgICAgICBrZWVwIGl0ZXJhdGluZyBvbiB0aGUgc2FtZSBhcnJheSAqKVxuICAgICAgbGV0IHRibF9kYXRhID0gdGJsLmRhdGEgaW5cbiAgICAgICgqIHN0YXRlOiBpbmRleCAqIG5leHQgYnVja2V0IHRvIHRyYXZlcnNlICopXG4gICAgICBsZXQgcmVjIGF1eCBpIGJ1Y2sgKCkgPSBtYXRjaCBidWNrIHdpdGhcbiAgICAgICAgfCBFbXB0eSAtPlxuICAgICAgICAgICAgaWYgaSA9IEFycmF5Lmxlbmd0aCB0YmxfZGF0YVxuICAgICAgICAgICAgdGhlbiBTZXEuTmlsXG4gICAgICAgICAgICBlbHNlIGF1eChpKzEpIHRibF9kYXRhLihpKSAoKVxuICAgICAgICB8IENvbnMgKF8sIGMsIG5leHQpIC0+XG4gICAgICAgICAgICBiZWdpbiBtYXRjaCBILmdldF9rZXkgYywgSC5nZXRfZGF0YSBjIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lLCBfIHwgXywgTm9uZSAtPiBhdXggaSBuZXh0ICgpXG4gICAgICAgICAgICAgIHwgU29tZSBrZXksIFNvbWUgZGF0YSAtPlxuICAgICAgICAgICAgICAgICAgU2VxLkNvbnMgKChrZXksIGRhdGEpLCBhdXggaSBuZXh0KVxuICAgICAgICAgICAgZW5kXG4gICAgICBpblxuICAgICAgYXV4IDAgRW1wdHlcblxuICAgIGxldCB0b19zZXFfa2V5cyBtID0gU2VxLm1hcCBmc3QgKHRvX3NlcSBtKVxuXG4gICAgbGV0IHRvX3NlcV92YWx1ZXMgbSA9IFNlcS5tYXAgc25kICh0b19zZXEgbSlcblxuICAgIGxldCBhZGRfc2VxIHRibCBpID1cbiAgICAgIFNlcS5pdGVyIChmdW4gKGssdikgLT4gYWRkIHRibCBrIHYpIGlcblxuICAgIGxldCByZXBsYWNlX3NlcSB0YmwgaSA9XG4gICAgICBTZXEuaXRlciAoZnVuIChrLHYpIC0+IHJlcGxhY2UgdGJsIGsgdikgaVxuXG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG5cbiAgZW5kXG5lbmRcblxubW9kdWxlIE9iakVwaCA9IE9iai5FcGhlbWVyb25cblxubGV0IF9vYmpfb3B0IDogT2JqLnQgb3B0aW9uIC0+ICdhIG9wdGlvbiA9IGZ1biB4IC0+XG4gIG1hdGNoIHggd2l0aFxuICB8IE5vbmUgLT4geFxuICB8IFNvbWUgdiAtPiBTb21lIChPYmoub2JqIHYpXG5cbigqKiBUaGUgcHJldmlvdXMgZnVuY3Rpb24gaXMgdHlwZWQgc28gdGhpcyBvbmUgaXMgYWxzbyBjb3JyZWN0ICopXG5sZXQgb2JqX29wdCA6IE9iai50IG9wdGlvbiAtPiAnYSBvcHRpb24gPSBmdW4geCAtPiBPYmoubWFnaWMgeFxuXG5cbm1vZHVsZSBLMSA9IHN0cnVjdFxuICB0eXBlICgnaywnZCkgdCA9IE9iakVwaC50XG5cbiAgbGV0IGNyZWF0ZSAoKSA6ICgnaywnZCkgdCA9IE9iakVwaC5jcmVhdGUgMVxuXG4gIGxldCBnZXRfa2V5ICh0OignaywnZCkgdCkgOiAnayBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDApXG4gIGxldCBnZXRfa2V5X2NvcHkgKHQ6KCdrLCdkKSB0KSA6ICdrIG9wdGlvbiA9IG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAwKVxuICBsZXQgc2V0X2tleSAodDooJ2ssJ2QpIHQpIChrOidrKSA6IHVuaXQgPSBPYmpFcGguc2V0X2tleSB0IDAgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkgKHQ6KCdrLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMFxuICBsZXQgY2hlY2tfa2V5ICh0OignaywnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDBcblxuICBsZXQgYmxpdF9rZXkgKHQxOignaywnZCkgdCkgKHQyOignaywnZCkgdCk6IHVuaXQgPVxuICAgIE9iakVwaC5ibGl0X2tleSB0MSAwIHQyIDAgMVxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSAoZDonZCkgOiB1bml0ID0gT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sJ2QpIHQpICh0MjooXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleSBkYXRhID1cbiAgICBsZXQgZXBoID0gY3JlYXRlICgpIGluXG4gICAgc2V0X2RhdGEgZXBoIGRhdGE7XG4gICAgc2V0X2tleSBlcGgga2V5O1xuICAgIGVwaFxuXG4gIGxldCBxdWVyeSBlcGgga2V5ID1cbiAgICBtYXRjaCBnZXRfa2V5IGVwaCB3aXRoXG4gICAgfCBOb25lIC0+IE5vbmVcbiAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5IC0+IGdldF9kYXRhIGVwaFxuICAgIHwgU29tZSBfIC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZCAoSDpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSC50XG4gICAgICBsZXQgY3JlYXRlIGsgZCA9XG4gICAgICAgIGxldCBjID0gY3JlYXRlICgpIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgc2V0X2tleSBjIGs7XG4gICAgICAgIGNcbiAgICAgIGxldCBoYXNoID0gSC5oYXNoXG4gICAgICBsZXQgZXF1YWwgYyBrID1cbiAgICAgICAgKCogeyFnZXRfa2V5X2NvcHl9IGlzIG5vdCB1c2VkIGJlY2F1c2UgdGhlIGVxdWFsaXR5IG9mIHRoZSB1c2VyIGNhbiBiZVxuICAgICAgICAgICAgdGhlIHBoeXNpY2FsIGVxdWFsaXR5ICopXG4gICAgICAgIG1hdGNoIGdldF9rZXkgYyB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgfCBTb21lIGsnIC0+XG4gICAgICAgICAgICBpZiBILmVxdWFsIGsgaycgdGhlbiBHZW5IYXNoVGFibGUuRVRydWUgZWxzZSBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgPSBnZXRfa2V5XG4gICAgICBsZXQgc2V0X2tleV9kYXRhIGMgayBkID1cbiAgICAgICAgdW5zZXRfZGF0YSBjO1xuICAgICAgICBzZXRfa2V5IGMgaztcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5ID0gY2hlY2tfa2V5XG4gICAgZW5kKVxuXG4gIG1vZHVsZSBNYWtlKEg6IEhhc2h0YmwuSGFzaGVkVHlwZSk6IChTIHdpdGggdHlwZSBrZXkgPSBILnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkKHN0cnVjdFxuICAgICAgICB0eXBlIHQgPSBILnRcbiAgICAgICAgbGV0IGVxdWFsID0gSC5lcXVhbFxuICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEguaGFzaCB4XG4gICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnaywgJ2QpIHQgPSAoJ2ssICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGsxX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgayBkID0gYiA6PSBrMV9tYWtlIGsgZCA6OiAhYlxuXG4gICAgbGV0IHRlc3Rfa2V5IGsgZSA9XG4gICAgICBtYXRjaCBnZXRfa2V5IGUgd2l0aFxuICAgICAgfCBTb21lIHggd2hlbiB4ID09IGsgLT4gdHJ1ZVxuICAgICAgfCBfIC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgayA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5IGsgaCAtPiBiIDo9IExpc3QucmV2X2FwcGVuZCBhY2MgdFxuICAgICAgICB8IGggOjogdCAtPiBsb29wIHQgKGggOjogYWNjKVxuICAgICAgaW5cbiAgICAgIGxvb3AgIWIgW11cblxuICAgIGxldCBmaW5kIGIgayA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleSBrKSAhYiB3aXRoXG4gICAgICB8IFNvbWUgZSAtPiBnZXRfZGF0YSBlXG4gICAgICB8IE5vbmUgLT4gTm9uZVxuXG4gICAgbGV0IGxlbmd0aCBiID0gTGlzdC5sZW5ndGggIWJcbiAgICBsZXQgY2xlYXIgYiA9IGIgOj0gW11cblxuICBlbmRcblxuZW5kXG5cbm1vZHVsZSBLMiA9IHN0cnVjdFxuICB0eXBlICgnazEsICdrMiwgJ2QpIHQgPSBPYmpFcGgudFxuXG4gIGxldCBjcmVhdGUgKCkgOiAoJ2sxLCdrMiwnZCkgdCA9IE9iakVwaC5jcmVhdGUgMlxuXG4gIGxldCBnZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazEgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCAwKVxuICBsZXQgZ2V0X2tleTFfY29weSAodDooJ2sxLCdrMiwnZCkgdCkgOiAnazEgb3B0aW9uID1cbiAgICBvYmpfb3B0IChPYmpFcGguZ2V0X2tleV9jb3B5IHQgMClcbiAgbGV0IHNldF9rZXkxICh0OignazEsJ2syLCdkKSB0KSAoazonazEpIDogdW5pdCA9XG4gICAgT2JqRXBoLnNldF9rZXkgdCAwIChPYmoucmVwciBrKVxuICBsZXQgdW5zZXRfa2V5MSAodDooJ2sxLCdrMiwnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2tleSB0IDBcbiAgbGV0IGNoZWNrX2tleTEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCAwXG5cbiAgbGV0IGdldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSA6ICdrMiBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2tleSB0IDEpXG4gIGxldCBnZXRfa2V5Ml9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdrMiBvcHRpb24gPVxuICAgIG9ial9vcHQgKE9iakVwaC5nZXRfa2V5X2NvcHkgdCAxKVxuICBsZXQgc2V0X2tleTIgKHQ6KCdrMSwnazIsJ2QpIHQpIChrOidrMikgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IDEgKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkyICh0OignazEsJ2syLCdkKSB0KSA6IHVuaXQgPSBPYmpFcGgudW5zZXRfa2V5IHQgMVxuICBsZXQgY2hlY2tfa2V5MiAodDooJ2sxLCdrMiwnZCkgdCkgOiBib29sID0gT2JqRXBoLmNoZWNrX2tleSB0IDFcblxuXG4gIGxldCBibGl0X2tleTEgKHQxOignazEsXyxfKSB0KSAodDI6KCdrMSxfLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDAgdDIgMCAxXG4gIGxldCBibGl0X2tleTIgKHQxOihfLCdrMixfKSB0KSAodDI6KF8sJ2syLF8pIHQpIDogdW5pdCA9XG4gICAgT2JqRXBoLmJsaXRfa2V5IHQxIDEgdDIgMSAxXG4gIGxldCBibGl0X2tleTEyICh0MTooJ2sxLCdrMixfKSB0KSAodDI6KCdrMSwnazIsXykgdCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgMCB0MiAwIDJcblxuICBsZXQgZ2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignazEsJ2syLCdkKSB0KSA6ICdkIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhX2NvcHkgdClcbiAgbGV0IHNldF9kYXRhICh0OignazEsJ2syLCdkKSB0KSAoZDonZCkgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2RhdGEgdCAoT2JqLnJlcHIgZClcbiAgbGV0IHVuc2V0X2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogdW5pdCA9IE9iakVwaC51bnNldF9kYXRhIHRcbiAgbGV0IGNoZWNrX2RhdGEgKHQ6KCdrMSwnazIsJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sXywnZCkgdCkgKHQyOihfLF8sJ2QpIHQpIDogdW5pdCA9IE9iakVwaC5ibGl0X2RhdGEgdDEgdDJcblxuICBsZXQgbWFrZSBrZXkxIGtleTIgZGF0YSA9XG4gICAgbGV0IGVwaCA9IGNyZWF0ZSAoKSBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIHNldF9rZXkxIGVwaCBrZXkxO1xuICAgIHNldF9rZXkyIGVwaCBrZXkyO1xuICAgIGlnbm9yZSAoU3lzLm9wYXF1ZV9pZGVudGl0eSBrZXkxKTtcbiAgICBlcGhcblxuICBsZXQgcXVlcnkgZXBoIGtleTEga2V5MiA9XG4gICAgbWF0Y2ggZ2V0X2tleTEgZXBoIHdpdGhcbiAgICB8IE5vbmUgLT4gTm9uZVxuICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkxIC0+XG4gICAgICAgIGJlZ2luIG1hdGNoIGdldF9rZXkyIGVwaCB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSBrIHdoZW4gayA9PSBrZXkyIC0+IGdldF9kYXRhIGVwaFxuICAgICAgICB8IFNvbWUgXyAtPiBOb25lXG4gICAgICAgIGVuZFxuICAgIHwgU29tZSBfIC0+IE5vbmVcblxuICBtb2R1bGUgTWFrZVNlZWRlZFxuICAgICAgKEgxOkhhc2h0YmwuU2VlZGVkSGFzaGVkVHlwZSlcbiAgICAgIChIMjpIYXNodGJsLlNlZWRlZEhhc2hlZFR5cGUpID1cbiAgICBHZW5IYXNoVGFibGUuTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgIHR5cGUgJ2EgY29udGFpbmVyID0gKEgxLnQsSDIudCwnYSkgdFxuICAgICAgdHlwZSB0ID0gSDEudCAqIEgyLnRcbiAgICAgIGxldCBjcmVhdGUgKGsxLGsyKSBkID1cbiAgICAgICAgbGV0IGMgPSBjcmVhdGUgKCkgaW5cbiAgICAgICAgc2V0X2RhdGEgYyBkO1xuICAgICAgICBzZXRfa2V5MSBjIGsxOyBzZXRfa2V5MiBjIGsyO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCBzZWVkIChrMSxrMikgPVxuICAgICAgICBIMS5oYXNoIHNlZWQgazEgKyBIMi5oYXNoIHNlZWQgazIgKiA2NTU5OVxuICAgICAgbGV0IGVxdWFsIGMgKGsxLGsyKSA9XG4gICAgICAgIG1hdGNoIGdldF9rZXkxIGMsIGdldF9rZXkyIGMgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gfCBfICwgTm9uZSAtPiBHZW5IYXNoVGFibGUuRURlYWRcbiAgICAgICAgfCBTb21lIGsxJywgU29tZSBrMicgLT5cbiAgICAgICAgICAgIGlmIEgxLmVxdWFsIGsxIGsxJyAmJiBIMi5lcXVhbCBrMiBrMidcbiAgICAgICAgICAgIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlIGVsc2UgR2VuSGFzaFRhYmxlLkVGYWxzZVxuICAgICAgbGV0IGdldF9kYXRhID0gZ2V0X2RhdGFcbiAgICAgIGxldCBnZXRfa2V5IGMgPVxuICAgICAgICBtYXRjaCBnZXRfa2V5MSBjLCBnZXRfa2V5MiBjIHdpdGhcbiAgICAgICAgfCBOb25lLCBfIHwgXyAsIE5vbmUgLT4gTm9uZVxuICAgICAgICB8IFNvbWUgazEnLCBTb21lIGsyJyAtPiBTb21lIChrMScsIGsyJylcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyAoazEsazIpIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIHNldF9rZXkxIGMgazE7IHNldF9rZXkyIGMgazI7XG4gICAgICAgIHNldF9kYXRhIGMgZFxuICAgICAgbGV0IGNoZWNrX2tleSBjID0gY2hlY2tfa2V5MSBjICYmIGNoZWNrX2tleTIgY1xuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIMTogSGFzaHRibC5IYXNoZWRUeXBlKShIMjogSGFzaHRibC5IYXNoZWRUeXBlKTpcbiAgICAoUyB3aXRoIHR5cGUga2V5ID0gSDEudCAqIEgyLnQpID1cbiAgc3RydWN0XG4gICAgaW5jbHVkZSBNYWtlU2VlZGVkXG4gICAgICAgIChzdHJ1Y3RcbiAgICAgICAgICB0eXBlIHQgPSBIMS50XG4gICAgICAgICAgbGV0IGVxdWFsID0gSDEuZXF1YWxcbiAgICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEgxLmhhc2ggeFxuICAgICAgICBlbmQpXG4gICAgICAgIChzdHJ1Y3RcbiAgICAgICAgICB0eXBlIHQgPSBIMi50XG4gICAgICAgICAgbGV0IGVxdWFsID0gSDIuZXF1YWxcbiAgICAgICAgICBsZXQgaGFzaCAoX3NlZWQ6IGludCkgeCA9IEgyLmhhc2ggeFxuICAgICAgICBlbmQpXG4gICAgbGV0IGNyZWF0ZSBzeiA9IGNyZWF0ZSB+cmFuZG9tOmZhbHNlIHN6XG4gICAgbGV0IG9mX3NlcSBpID1cbiAgICAgIGxldCB0YmwgPSBjcmVhdGUgMTYgaW5cbiAgICAgIHJlcGxhY2Vfc2VxIHRibCBpO1xuICAgICAgdGJsXG4gIGVuZFxuXG4gIG1vZHVsZSBCdWNrZXQgPSBzdHJ1Y3RcblxuICAgIHR5cGUgbm9ucmVjICgnazEsICdrMiwgJ2QpIHQgPSAoJ2sxLCAnazIsICdkKSB0IGxpc3QgcmVmXG4gICAgbGV0IGsyX21ha2UgPSBtYWtlXG4gICAgbGV0IG1ha2UgKCkgPSByZWYgW11cbiAgICBsZXQgYWRkIGIgazEgazIgZCA9IGIgOj0gazJfbWFrZSBrMSBrMiBkIDo6ICFiXG5cbiAgICBsZXQgdGVzdF9rZXlzIGsxIGsyIGUgPVxuICAgICAgbWF0Y2ggZ2V0X2tleTEgZSwgZ2V0X2tleTIgZSB3aXRoXG4gICAgICB8IFNvbWUgeDEsIFNvbWUgeDIgd2hlbiB4MSA9PSBrMSAmJiB4MiA9PSBrMiAtPiB0cnVlXG4gICAgICB8IF8gLT4gZmFsc2VcblxuICAgIGxldCByZW1vdmUgYiBrMSBrMiA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5cyBrMSBrMiBoIC0+IGIgOj0gTGlzdC5yZXZfYXBwZW5kIGFjYyB0XG4gICAgICAgIHwgaCA6OiB0IC0+IGxvb3AgdCAoaCA6OiBhY2MpXG4gICAgICBpblxuICAgICAgbG9vcCAhYiBbXVxuXG4gICAgbGV0IGZpbmQgYiBrMSBrMiA9XG4gICAgICBtYXRjaCBMaXN0LmZpbmRfb3B0ICh0ZXN0X2tleXMgazEgazIpICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcblxubW9kdWxlIEtuID0gc3RydWN0XG4gIHR5cGUgKCdrLCdkKSB0ID0gT2JqRXBoLnRcblxuICBsZXQgY3JlYXRlIG4gOiAoJ2ssJ2QpIHQgPSBPYmpFcGguY3JlYXRlIG5cbiAgbGV0IGxlbmd0aCAoazooJ2ssJ2QpIHQpIDogaW50ID0gT2JqRXBoLmxlbmd0aCBrXG5cbiAgbGV0IGdldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogJ2sgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9rZXkgdCBuKVxuICBsZXQgZ2V0X2tleV9jb3B5ICh0OignaywnZCkgdCkgKG46aW50KSA6ICdrIG9wdGlvbiA9XG4gICAgb2JqX29wdCAoT2JqRXBoLmdldF9rZXlfY29weSB0IG4pXG4gIGxldCBzZXRfa2V5ICh0OignaywnZCkgdCkgKG46aW50KSAoazonaykgOiB1bml0ID1cbiAgICBPYmpFcGguc2V0X2tleSB0IG4gKE9iai5yZXByIGspXG4gIGxldCB1bnNldF9rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogdW5pdCA9IE9iakVwaC51bnNldF9rZXkgdCBuXG4gIGxldCBjaGVja19rZXkgKHQ6KCdrLCdkKSB0KSAobjppbnQpIDogYm9vbCA9IE9iakVwaC5jaGVja19rZXkgdCBuXG5cbiAgbGV0IGJsaXRfa2V5ICh0MTooJ2ssJ2QpIHQpIChvMTppbnQpICh0MjooJ2ssJ2QpIHQpIChvMjppbnQpIChsOmludCkgOiB1bml0ID1cbiAgICBPYmpFcGguYmxpdF9rZXkgdDEgbzEgdDIgbzIgbFxuXG4gIGxldCBnZXRfZGF0YSAodDooJ2ssJ2QpIHQpIDogJ2Qgb3B0aW9uID0gb2JqX29wdCAoT2JqRXBoLmdldF9kYXRhIHQpXG4gIGxldCBnZXRfZGF0YV9jb3B5ICh0OignaywnZCkgdCkgOiAnZCBvcHRpb24gPSBvYmpfb3B0IChPYmpFcGguZ2V0X2RhdGFfY29weSB0KVxuICBsZXQgc2V0X2RhdGEgKHQ6KCdrLCdkKSB0KSAoZDonZCkgOiB1bml0ID0gT2JqRXBoLnNldF9kYXRhIHQgKE9iai5yZXByIGQpXG4gIGxldCB1bnNldF9kYXRhICh0OignaywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLnVuc2V0X2RhdGEgdFxuICBsZXQgY2hlY2tfZGF0YSAodDooJ2ssJ2QpIHQpIDogYm9vbCA9IE9iakVwaC5jaGVja19kYXRhIHRcbiAgbGV0IGJsaXRfZGF0YSAodDE6KF8sJ2QpIHQpICh0MjooXywnZCkgdCkgOiB1bml0ID0gT2JqRXBoLmJsaXRfZGF0YSB0MSB0MlxuXG4gIGxldCBtYWtlIGtleXMgZGF0YSA9XG4gICAgbGV0IGwgPSBBcnJheS5sZW5ndGgga2V5cyBpblxuICAgIGxldCBlcGggPSBjcmVhdGUgbCBpblxuICAgIHNldF9kYXRhIGVwaCBkYXRhO1xuICAgIGZvciBpID0gMCB0byBsIC0gMSBkbyBzZXRfa2V5IGVwaCBpIGtleXMuKGkpIGRvbmU7XG4gICAgZXBoXG5cbiAgbGV0IHF1ZXJ5IGVwaCBrZXlzID1cbiAgICBsZXQgbCA9IGxlbmd0aCBlcGggaW5cbiAgICB0cnlcbiAgICAgIGlmIGwgPD4gQXJyYXkubGVuZ3RoIGtleXMgdGhlbiByYWlzZSBFeGl0O1xuICAgICAgZm9yIGkgPSAwIHRvIGwgLSAxIGRvXG4gICAgICAgIG1hdGNoIGdldF9rZXkgZXBoIGkgd2l0aFxuICAgICAgICB8IE5vbmUgLT4gcmFpc2UgRXhpdFxuICAgICAgICB8IFNvbWUgayB3aGVuIGsgPT0ga2V5cy4oaSkgLT4gKClcbiAgICAgICAgfCBTb21lIF8gLT4gcmFpc2UgRXhpdFxuICAgICAgZG9uZTtcbiAgICAgIGdldF9kYXRhIGVwaFxuICAgIHdpdGggRXhpdCAtPiBOb25lXG5cbiAgbW9kdWxlIE1ha2VTZWVkZWQgKEg6SGFzaHRibC5TZWVkZWRIYXNoZWRUeXBlKSA9XG4gICAgR2VuSGFzaFRhYmxlLk1ha2VTZWVkZWQoc3RydWN0XG4gICAgICB0eXBlICdhIGNvbnRhaW5lciA9IChILnQsJ2EpIHRcbiAgICAgIHR5cGUgdCA9IEgudCBhcnJheVxuICAgICAgbGV0IGNyZWF0ZSBrIGQgPVxuICAgICAgICBsZXQgYyA9IGNyZWF0ZSAoQXJyYXkubGVuZ3RoIGspIGluXG4gICAgICAgIHNldF9kYXRhIGMgZDtcbiAgICAgICAgZm9yIGk9MCB0byBBcnJheS5sZW5ndGggayAtMSBkb1xuICAgICAgICAgIHNldF9rZXkgYyBpIGsuKGkpO1xuICAgICAgICBkb25lO1xuICAgICAgICBjXG4gICAgICBsZXQgaGFzaCBzZWVkIGsgPVxuICAgICAgICBsZXQgaCA9IHJlZiAwIGluXG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBoIDo9IEguaGFzaCBzZWVkIGsuKGkpICogNjU1OTkgKyAhaDtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgIWhcbiAgICAgIGxldCBlcXVhbCBjIGsgPVxuICAgICAgICBsZXQgbGVuICA9IEFycmF5Lmxlbmd0aCBrIGluXG4gICAgICAgIGxldCBsZW4nID0gbGVuZ3RoIGMgaW5cbiAgICAgICAgaWYgbGVuICE9IGxlbicgdGhlbiBHZW5IYXNoVGFibGUuRUZhbHNlXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgcmVjIGVxdWFsX2FycmF5IGsgYyBpID1cbiAgICAgICAgICAgIGlmIGkgPCAwIHRoZW4gR2VuSGFzaFRhYmxlLkVUcnVlXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIG1hdGNoIGdldF9rZXkgYyBpIHdpdGhcbiAgICAgICAgICAgICAgfCBOb25lIC0+IEdlbkhhc2hUYWJsZS5FRGVhZFxuICAgICAgICAgICAgICB8IFNvbWUga2kgLT5cbiAgICAgICAgICAgICAgICAgIGlmIEguZXF1YWwgay4oaSkga2lcbiAgICAgICAgICAgICAgICAgIHRoZW4gZXF1YWxfYXJyYXkgayBjIChpLTEpXG4gICAgICAgICAgICAgICAgICBlbHNlIEdlbkhhc2hUYWJsZS5FRmFsc2VcbiAgICAgICAgICBpblxuICAgICAgICAgIGVxdWFsX2FycmF5IGsgYyAobGVuLTEpXG4gICAgICBsZXQgZ2V0X2RhdGEgPSBnZXRfZGF0YVxuICAgICAgbGV0IGdldF9rZXkgYyA9XG4gICAgICAgIGxldCBsZW4gPSBsZW5ndGggYyBpblxuICAgICAgICBpZiBsZW4gPSAwIHRoZW4gU29tZSBbfHxdXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgMCB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgazAgLT5cbiAgICAgICAgICAgICAgbGV0IHJlYyBmaWxsIGEgaSA9XG4gICAgICAgICAgICAgICAgaWYgaSA8IDEgdGhlbiBTb21lIGFcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICBtYXRjaCBnZXRfa2V5IGMgaSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgICAgICAgICAgfCBTb21lIGtpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgYS4oaSkgPC0ga2k7XG4gICAgICAgICAgICAgICAgICAgICAgZmlsbCBhIChpLTEpXG4gICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgIGxldCBhID0gQXJyYXkubWFrZSBsZW4gazAgaW5cbiAgICAgICAgICAgICAgZmlsbCBhIChsZW4tMSlcbiAgICAgIGxldCBzZXRfa2V5X2RhdGEgYyBrIGQgPVxuICAgICAgICB1bnNldF9kYXRhIGM7XG4gICAgICAgIGZvciBpPTAgdG8gQXJyYXkubGVuZ3RoIGsgLTEgZG9cbiAgICAgICAgICBzZXRfa2V5IGMgaSBrLihpKTtcbiAgICAgICAgZG9uZTtcbiAgICAgICAgc2V0X2RhdGEgYyBkXG4gICAgICBsZXQgY2hlY2tfa2V5IGMgPVxuICAgICAgICBsZXQgcmVjIGNoZWNrIGMgaSA9XG4gICAgICAgICAgaSA8IDAgfHwgKGNoZWNrX2tleSBjIGkgJiYgY2hlY2sgYyAoaS0xKSkgaW5cbiAgICAgICAgY2hlY2sgYyAobGVuZ3RoIGMgLSAxKVxuICAgIGVuZClcblxuICBtb2R1bGUgTWFrZShIOiBIYXNodGJsLkhhc2hlZFR5cGUpOiAoUyB3aXRoIHR5cGUga2V5ID0gSC50IGFycmF5KSA9XG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTWFrZVNlZWRlZChzdHJ1Y3RcbiAgICAgICAgdHlwZSB0ID0gSC50XG4gICAgICAgIGxldCBlcXVhbCA9IEguZXF1YWxcbiAgICAgICAgbGV0IGhhc2ggKF9zZWVkOiBpbnQpIHggPSBILmhhc2ggeFxuICAgICAgZW5kKVxuICAgIGxldCBjcmVhdGUgc3ogPSBjcmVhdGUgfnJhbmRvbTpmYWxzZSBzelxuICAgIGxldCBvZl9zZXEgaSA9XG4gICAgICBsZXQgdGJsID0gY3JlYXRlIDE2IGluXG4gICAgICByZXBsYWNlX3NlcSB0YmwgaTtcbiAgICAgIHRibFxuICBlbmRcblxuICBtb2R1bGUgQnVja2V0ID0gc3RydWN0XG5cbiAgICB0eXBlIG5vbnJlYyAoJ2ssICdkKSB0ID0gKCdrLCAnZCkgdCBsaXN0IHJlZlxuICAgIGxldCBrbl9tYWtlID0gbWFrZVxuICAgIGxldCBtYWtlICgpID0gcmVmIFtdXG4gICAgbGV0IGFkZCBiIGsgZCA9IGIgOj0ga25fbWFrZSBrIGQgOjogIWJcblxuICAgIGxldCB0ZXN0X2tleXMgayBlID1cbiAgICAgIHRyeVxuICAgICAgICBpZiBsZW5ndGggZSA8PiBBcnJheS5sZW5ndGggayB0aGVuIHJhaXNlIEV4aXQ7XG4gICAgICAgIGZvciBpID0gMCB0byBBcnJheS5sZW5ndGggayAtIDEgZG9cbiAgICAgICAgICBtYXRjaCBnZXRfa2V5IGUgaSB3aXRoXG4gICAgICAgICAgfCBTb21lIHggd2hlbiB4ID09IGsuKGkpIC0+ICgpXG4gICAgICAgICAgfCBfIC0+IHJhaXNlIEV4aXRcbiAgICAgICAgZG9uZTtcbiAgICAgICAgdHJ1ZVxuICAgICAgd2l0aCBFeGl0IC0+IGZhbHNlXG5cbiAgICBsZXQgcmVtb3ZlIGIgayA9XG4gICAgICBsZXQgcmVjIGxvb3AgbCBhY2MgPVxuICAgICAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgfCBbXSAtPiAoKVxuICAgICAgICB8IGggOjogdCB3aGVuIHRlc3Rfa2V5cyBrIGggLT4gYiA6PSBMaXN0LnJldl9hcHBlbmQgYWNjIHRcbiAgICAgICAgfCBoIDo6IHQgLT4gbG9vcCB0IChoIDo6IGFjYylcbiAgICAgIGluXG4gICAgICBsb29wICFiIFtdXG5cbiAgICBsZXQgZmluZCBiIGsgPVxuICAgICAgbWF0Y2ggTGlzdC5maW5kX29wdCAodGVzdF9rZXlzIGspICFiIHdpdGhcbiAgICAgIHwgU29tZSBlIC0+IGdldF9kYXRhIGVcbiAgICAgIHwgTm9uZSAtPiBOb25lXG5cbiAgICBsZXQgbGVuZ3RoIGIgPSBMaXN0Lmxlbmd0aCAhYlxuICAgIGxldCBjbGVhciBiID0gYiA6PSBbXVxuXG4gIGVuZFxuXG5lbmRcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICBYYXZpZXIgTGVyb3kgYW5kIERhbWllbiBEb2xpZ2V6LCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDE5OTYgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxubGV0IGdlbmVyaWNfcXVvdGUgcXVvdGVxdW90ZSBzID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIChsICsgMjApIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBiICdcXCcnO1xuICBmb3IgaSA9IDAgdG8gbCAtIDEgZG9cbiAgICBpZiBzLltpXSA9ICdcXCcnXG4gICAgdGhlbiBCdWZmZXIuYWRkX3N0cmluZyBiIHF1b3RlcXVvdGVcbiAgICBlbHNlIEJ1ZmZlci5hZGRfY2hhciBiICBzLltpXVxuICBkb25lO1xuICBCdWZmZXIuYWRkX2NoYXIgYiAnXFwnJztcbiAgQnVmZmVyLmNvbnRlbnRzIGJcblxuKCogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBPcGVuIEdyb3VwIHNwZWNpZmljYXRpb24gZm91bmQgaGVyZTpcbiAgW1sxXV0gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Jhc2VuYW1lLmh0bWxcbiAgSW4gc3RlcCAxIG9mIFtbMV1dLCB3ZSBjaG9vc2UgdG8gcmV0dXJuIFwiLlwiIGZvciBlbXB0eSBpbnB1dC5cbiAgICAoZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyB2ZXJzaW9ucyBvZiBPQ2FtbClcbiAgSW4gc3RlcCAyLCB3ZSBjaG9vc2UgdG8gcHJvY2VzcyBcIi8vXCIgbm9ybWFsbHkuXG4gIFN0ZXAgNiBpcyBub3QgaW1wbGVtZW50ZWQ6IHdlIGNvbnNpZGVyIHRoYXQgdGhlIFtzdWZmaXhdIG9wZXJhbmQgaXNcbiAgICBhbHdheXMgYWJzZW50LiAgU3VmZml4ZXMgYXJlIGhhbmRsZWQgYnkgW2Nob3Bfc3VmZml4XSBhbmQgW2Nob3BfZXh0ZW5zaW9uXS5cbiopXG5sZXQgZ2VuZXJpY19iYXNlbmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWUgbmFtZSA9XG4gIGxldCByZWMgZmluZF9lbmQgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGZpbmRfZW5kIChuIC0gMSlcbiAgICBlbHNlIGZpbmRfYmVnIG4gKG4gKyAxKVxuICBhbmQgZmluZF9iZWcgbiBwID1cbiAgICBpZiBuIDwgMCB0aGVuIFN0cmluZy5zdWIgbmFtZSAwIHBcbiAgICBlbHNlIGlmIGlzX2Rpcl9zZXAgbmFtZSBuIHRoZW4gU3RyaW5nLnN1YiBuYW1lIChuICsgMSkgKHAgLSBuIC0gMSlcbiAgICBlbHNlIGZpbmRfYmVnIChuIC0gMSkgcFxuICBpblxuICBpZiBuYW1lID0gXCJcIlxuICB0aGVuIGN1cnJlbnRfZGlyX25hbWVcbiAgZWxzZSBmaW5kX2VuZCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gMSlcblxuKCogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBPcGVuIEdyb3VwIHNwZWNpZmljYXRpb24gZm91bmQgaGVyZTpcbiAgW1syXV0gaHR0cDovL3B1YnMub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzk2OTk5MTk3OTkvdXRpbGl0aWVzL2Rpcm5hbWUuaHRtbFxuICBJbiBzdGVwIDYgb2YgW1syXV0sIHdlIGNob29zZSB0byBwcm9jZXNzIFwiLy9cIiBub3JtYWxseS5cbiopXG5sZXQgZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZSBuYW1lID1cbiAgbGV0IHJlYyB0cmFpbGluZ19zZXAgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAxXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIHRyYWlsaW5nX3NlcCAobiAtIDEpXG4gICAgZWxzZSBiYXNlIG5cbiAgYW5kIGJhc2UgbiA9XG4gICAgaWYgbiA8IDAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gICAgZWxzZSBpZiBpc19kaXJfc2VwIG5hbWUgbiB0aGVuIGludGVybWVkaWF0ZV9zZXAgblxuICAgIGVsc2UgYmFzZSAobiAtIDEpXG4gIGFuZCBpbnRlcm1lZGlhdGVfc2VwIG4gPVxuICAgIGlmIG4gPCAwIHRoZW4gU3RyaW5nLnN1YiBuYW1lIDAgMVxuICAgIGVsc2UgaWYgaXNfZGlyX3NlcCBuYW1lIG4gdGhlbiBpbnRlcm1lZGlhdGVfc2VwIChuIC0gMSlcbiAgICBlbHNlIFN0cmluZy5zdWIgbmFtZSAwIChuICsgMSlcbiAgaW5cbiAgaWYgbmFtZSA9IFwiXCJcbiAgdGhlbiBjdXJyZW50X2Rpcl9uYW1lXG4gIGVsc2UgdHJhaWxpbmdfc2VwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG5tb2R1bGUgdHlwZSBTWVNERVBTID0gc2lnXG4gIHZhbCBudWxsIDogc3RyaW5nXG4gIHZhbCBjdXJyZW50X2Rpcl9uYW1lIDogc3RyaW5nXG4gIHZhbCBwYXJlbnRfZGlyX25hbWUgOiBzdHJpbmdcbiAgdmFsIGRpcl9zZXAgOiBzdHJpbmdcbiAgdmFsIGlzX2Rpcl9zZXAgOiBzdHJpbmcgLT4gaW50IC0+IGJvb2xcbiAgdmFsIGlzX3JlbGF0aXZlIDogc3RyaW5nIC0+IGJvb2xcbiAgdmFsIGlzX2ltcGxpY2l0IDogc3RyaW5nIC0+IGJvb2xcbiAgdmFsIGNoZWNrX3N1ZmZpeCA6IHN0cmluZyAtPiBzdHJpbmcgLT4gYm9vbFxuICB2YWwgY2hvcF9zdWZmaXhfb3B0IDogc3VmZml4OnN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nIG9wdGlvblxuICB2YWwgdGVtcF9kaXJfbmFtZSA6IHN0cmluZ1xuICB2YWwgcXVvdGUgOiBzdHJpbmcgLT4gc3RyaW5nXG4gIHZhbCBxdW90ZV9jb21tYW5kIDpcbiAgICBzdHJpbmcgLT4gP3N0ZGluOiBzdHJpbmcgLT4gP3N0ZG91dDogc3RyaW5nIC0+ID9zdGRlcnI6IHN0cmluZ1xuICAgICAgICAgICAtPiBzdHJpbmcgbGlzdCAtPiBzdHJpbmdcbiAgdmFsIGJhc2VuYW1lIDogc3RyaW5nIC0+IHN0cmluZ1xuICB2YWwgZGlybmFtZSA6IHN0cmluZyAtPiBzdHJpbmdcbmVuZFxuXG5tb2R1bGUgVW5peCA6IFNZU0RFUFMgPSBzdHJ1Y3RcbiAgbGV0IG51bGwgPSBcIi9kZXYvbnVsbFwiXG4gIGxldCBjdXJyZW50X2Rpcl9uYW1lID0gXCIuXCJcbiAgbGV0IHBhcmVudF9kaXJfbmFtZSA9IFwiLi5cIlxuICBsZXQgZGlyX3NlcCA9IFwiL1wiXG4gIGxldCBpc19kaXJfc2VwIHMgaSA9IHMuW2ldID0gJy8nXG4gIGxldCBpc19yZWxhdGl2ZSBuID0gU3RyaW5nLmxlbmd0aCBuIDwgMSB8fCBuLlswXSA8PiAnLydcbiAgbGV0IGlzX2ltcGxpY2l0IG4gPVxuICAgIGlzX3JlbGF0aXZlIG5cbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMiB8fCBTdHJpbmcuc3ViIG4gMCAyIDw+IFwiLi9cIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMyB8fCBTdHJpbmcuc3ViIG4gMCAzIDw+IFwiLi4vXCIpXG4gIGxldCBjaGVja19zdWZmaXggbmFtZSBzdWZmID1cbiAgICBTdHJpbmcuZW5kc193aXRoIH5zdWZmaXg6c3VmZiBuYW1lXG5cbiAgbGV0IGNob3Bfc3VmZml4X29wdCB+c3VmZml4IGZpbGVuYW1lID1cbiAgICBsZXQgbGVuX3MgPSBTdHJpbmcubGVuZ3RoIHN1ZmZpeCBhbmQgbGVuX2YgPSBTdHJpbmcubGVuZ3RoIGZpbGVuYW1lIGluXG4gICAgaWYgbGVuX2YgPj0gbGVuX3MgdGhlblxuICAgICAgbGV0IHIgPSBTdHJpbmcuc3ViIGZpbGVuYW1lIChsZW5fZiAtIGxlbl9zKSBsZW5fcyBpblxuICAgICAgaWYgciA9IHN1ZmZpeCB0aGVuXG4gICAgICAgIFNvbWUgKFN0cmluZy5zdWIgZmlsZW5hbWUgMCAobGVuX2YgLSBsZW5fcykpXG4gICAgICBlbHNlXG4gICAgICAgIE5vbmVcbiAgICBlbHNlXG4gICAgICBOb25lXG5cbiAgbGV0IHRlbXBfZGlyX25hbWUgPVxuICAgIHRyeSBTeXMuZ2V0ZW52IFwiVE1QRElSXCIgd2l0aCBOb3RfZm91bmQgLT4gXCIvdG1wXCJcbiAgbGV0IHF1b3RlID0gZ2VuZXJpY19xdW90ZSBcIidcXFxcJydcIlxuICBsZXQgcXVvdGVfY29tbWFuZCBjbWQgP3N0ZGluID9zdGRvdXQgP3N0ZGVyciBhcmdzID1cbiAgICBTdHJpbmcuY29uY2F0IFwiIFwiIChMaXN0Lm1hcCBxdW90ZSAoY21kIDo6IGFyZ3MpKVxuICAgIF4gKG1hdGNoIHN0ZGluICB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA8XCIgXiBxdW90ZSBmKVxuICAgIF4gKG1hdGNoIHN0ZG91dCB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA+XCIgXiBxdW90ZSBmKVxuICAgIF4gKG1hdGNoIHN0ZGVyciB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBpZiBzdGRlcnIgPSBzdGRvdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gXCIgMj4mMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIFwiIDI+XCIgXiBxdW90ZSBmKVxuICBsZXQgYmFzZW5hbWUgPSBnZW5lcmljX2Jhc2VuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuICBsZXQgZGlybmFtZSA9IGdlbmVyaWNfZGlybmFtZSBpc19kaXJfc2VwIGN1cnJlbnRfZGlyX25hbWVcbmVuZFxuXG5tb2R1bGUgV2luMzIgOiBTWVNERVBTID0gc3RydWN0XG4gIGxldCBudWxsID0gXCJOVUxcIlxuICBsZXQgY3VycmVudF9kaXJfbmFtZSA9IFwiLlwiXG4gIGxldCBwYXJlbnRfZGlyX25hbWUgPSBcIi4uXCJcbiAgbGV0IGRpcl9zZXAgPSBcIlxcXFxcIlxuICBsZXQgaXNfZGlyX3NlcCBzIGkgPSBsZXQgYyA9IHMuW2ldIGluIGMgPSAnLycgfHwgYyA9ICdcXFxcJyB8fCBjID0gJzonXG4gIGxldCBpc19yZWxhdGl2ZSBuID1cbiAgICAoU3RyaW5nLmxlbmd0aCBuIDwgMSB8fCBuLlswXSA8PiAnLycpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDEgfHwgbi5bMF0gPD4gJ1xcXFwnKVxuICAgICYmIChTdHJpbmcubGVuZ3RoIG4gPCAyIHx8IG4uWzFdIDw+ICc6JylcbiAgbGV0IGlzX2ltcGxpY2l0IG4gPVxuICAgIGlzX3JlbGF0aXZlIG5cbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMiB8fCBTdHJpbmcuc3ViIG4gMCAyIDw+IFwiLi9cIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMiB8fCBTdHJpbmcuc3ViIG4gMCAyIDw+IFwiLlxcXFxcIilcbiAgICAmJiAoU3RyaW5nLmxlbmd0aCBuIDwgMyB8fCBTdHJpbmcuc3ViIG4gMCAzIDw+IFwiLi4vXCIpXG4gICAgJiYgKFN0cmluZy5sZW5ndGggbiA8IDMgfHwgU3RyaW5nLnN1YiBuIDAgMyA8PiBcIi4uXFxcXFwiKVxuICBsZXQgY2hlY2tfc3VmZml4IG5hbWUgc3VmZiA9XG4gICBTdHJpbmcubGVuZ3RoIG5hbWUgPj0gU3RyaW5nLmxlbmd0aCBzdWZmICYmXG4gICAobGV0IHMgPSBTdHJpbmcuc3ViIG5hbWUgKFN0cmluZy5sZW5ndGggbmFtZSAtIFN0cmluZy5sZW5ndGggc3VmZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RyaW5nLmxlbmd0aCBzdWZmKSBpblxuICAgIFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgcyA9IFN0cmluZy5sb3dlcmNhc2VfYXNjaWkgc3VmZilcblxuICBsZXQgY2hvcF9zdWZmaXhfb3B0IH5zdWZmaXggZmlsZW5hbWUgPVxuICAgIGxldCBsZW5fcyA9IFN0cmluZy5sZW5ndGggc3VmZml4IGFuZCBsZW5fZiA9IFN0cmluZy5sZW5ndGggZmlsZW5hbWUgaW5cbiAgICBpZiBsZW5fZiA+PSBsZW5fcyB0aGVuXG4gICAgICBsZXQgciA9IFN0cmluZy5zdWIgZmlsZW5hbWUgKGxlbl9mIC0gbGVuX3MpIGxlbl9zIGluXG4gICAgICBpZiBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHIgPSBTdHJpbmcubG93ZXJjYXNlX2FzY2lpIHN1ZmZpeCB0aGVuXG4gICAgICAgIFNvbWUgKFN0cmluZy5zdWIgZmlsZW5hbWUgMCAobGVuX2YgLSBsZW5fcykpXG4gICAgICBlbHNlXG4gICAgICAgIE5vbmVcbiAgICBlbHNlXG4gICAgICBOb25lXG5cblxuICBsZXQgdGVtcF9kaXJfbmFtZSA9XG4gICAgdHJ5IFN5cy5nZXRlbnYgXCJURU1QXCIgd2l0aCBOb3RfZm91bmQgLT4gXCIuXCJcbiAgbGV0IHF1b3RlIHMgPVxuICAgIGxldCBsID0gU3RyaW5nLmxlbmd0aCBzIGluXG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIChsICsgMjApIGluXG4gICAgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXCInO1xuICAgIGxldCByZWMgbG9vcCBpID1cbiAgICAgIGlmIGkgPSBsIHRoZW4gQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXCInIGVsc2VcbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgIHwgJ1xcXCInIC0+IGxvb3BfYnMgMCBpO1xuICAgICAgfCAnXFxcXCcgLT4gbG9vcF9icyAwIGk7XG4gICAgICB8IGMgICAgLT4gQnVmZmVyLmFkZF9jaGFyIGIgYzsgbG9vcCAoaSsxKTtcbiAgICBhbmQgbG9vcF9icyBuIGkgPVxuICAgICAgaWYgaSA9IGwgdGhlbiBiZWdpblxuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgYiAnXFxcIic7XG4gICAgICAgIGFkZF9icyBuO1xuICAgICAgZW5kIGVsc2UgYmVnaW5cbiAgICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICB8ICdcXFwiJyAtPiBhZGRfYnMgKDIqbisxKTsgQnVmZmVyLmFkZF9jaGFyIGIgJ1xcXCInOyBsb29wIChpKzEpO1xuICAgICAgICB8ICdcXFxcJyAtPiBsb29wX2JzIChuKzEpIChpKzEpO1xuICAgICAgICB8IF8gICAgLT4gYWRkX2JzIG47IGxvb3AgaVxuICAgICAgZW5kXG4gICAgYW5kIGFkZF9icyBuID0gZm9yIF9qID0gMSB0byBuIGRvIEJ1ZmZlci5hZGRfY2hhciBiICdcXFxcJzsgZG9uZVxuICAgIGluXG4gICAgbG9vcCAwO1xuICAgIEJ1ZmZlci5jb250ZW50cyBiXG4oKlxuUXVvdGluZyBjb21tYW5kcyBmb3IgZXhlY3V0aW9uIGJ5IGNtZC5leGUgaXMgZGlmZmljdWx0LlxuMS0gRWFjaCBhcmd1bWVudCBpcyBmaXJzdCBxdW90ZWQgdXNpbmcgdGhlIFwicXVvdGVcIiBmdW5jdGlvbiBhYm92ZSwgdG9cbiAgIHByb3RlY3QgaXQgYWdhaW5zdCB0aGUgcHJvY2Vzc2luZyBwZXJmb3JtZWQgYnkgdGhlIEMgcnVudGltZSBzeXN0ZW0sXG4gICB0aGVuIGNtZC5leGUncyBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIGVzY2FwZWQgd2l0aCAnXicsIHVzaW5nXG4gICB0aGUgXCJxdW90ZV9jbWRcIiBmdW5jdGlvbiBiZWxvdy4gIEZvciBtb3JlIGRldGFpbHMsIHNlZVxuICAgaHR0cHM6Ly9ibG9ncy5tc2RuLm1pY3Jvc29mdC5jb20vdHdpc3R5bGl0dGxlcGFzc2FnZXNhbGxhbGlrZS8yMDExLzA0LzIzXG4yLSBUaGUgY29tbWFuZCBhbmQgdGhlIHJlZGlyZWN0aW9uIGZpbGVzLCBpZiBhbnksIG11c3QgYmUgZG91YmxlLXF1b3RlZFxuICAgaW4gY2FzZSB0aGV5IGNvbnRhaW4gc3BhY2VzLiAgVGhpcyBxdW90aW5nIGlzIGludGVycHJldGVkIGJ5IGNtZC5leGUsXG4gICBub3QgYnkgdGhlIEMgcnVudGltZSBzeXN0ZW0sIGhlbmNlIHRoZSBcInF1b3RlXCIgZnVuY3Rpb24gYWJvdmVcbiAgIGNhbm5vdCBiZSB1c2VkLiAgVGhlIHR3byBjaGFyYWN0ZXJzIHdlIGRvbid0IGtub3cgaG93IHRvIHF1b3RlXG4gICBpbnNpZGUgYSBkb3VibGUtcXVvdGVkIGNtZC5leGUgc3RyaW5nIGFyZSBkb3VibGUtcXVvdGUgYW5kIHBlcmNlbnQuXG4gICBXZSBqdXN0IGZhaWwgaWYgdGhlIGNvbW1hbmQgbmFtZSBvciB0aGUgcmVkaXJlY3Rpb24gZmlsZSBuYW1lc1xuICAgY29udGFpbiBhIGRvdWJsZSBxdW90ZSAobm90IGFsbG93ZWQgaW4gV2luZG93cyBmaWxlIG5hbWVzLCBhbnl3YXkpXG4gICBvciBhIHBlcmNlbnQuICBTZWUgZnVuY3Rpb24gXCJxdW90ZV9jbWRfZmlsZW5hbWVcIiBiZWxvdy5cbjMtIFRoZSB3aG9sZSBzdHJpbmcgcGFzc2VkIHRvIFN5cy5jb21tYW5kIGlzIHRoZW4gZW5jbG9zZWQgaW4gZG91YmxlXG4gICBxdW90ZXMsIHdoaWNoIGFyZSBpbW1lZGlhdGVseSBzdHJpcHBlZCBieSBjbWQuZXhlLiAgT3RoZXJ3aXNlLFxuICAgc29tZSBvZiB0aGUgZG91YmxlIHF1b3RlcyBmcm9tIHN0ZXAgMiBhYm92ZSBjYW4gYmUgbWlzcGFyc2VkLlxuICAgU2VlIGUuZy4gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzk5NjUxNDFcbiopXG4gIGxldCBxdW90ZV9jbWQgcyA9XG4gICAgbGV0IGIgPSBCdWZmZXIuY3JlYXRlIChTdHJpbmcubGVuZ3RoIHMgKyAyMCkgaW5cbiAgICBTdHJpbmcuaXRlclxuICAgICAgKGZ1biBjIC0+XG4gICAgICAgIG1hdGNoIGMgd2l0aFxuICAgICAgICB8ICcoJyB8ICcpJyB8ICchJyB8ICdeJyB8ICclJyB8ICdcXFwiJyB8ICc8JyB8ICc+JyB8ICcmJyB8ICd8JyAtPlxuICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIGIgJ14nOyBCdWZmZXIuYWRkX2NoYXIgYiBjXG4gICAgICAgIHwgXyAtPlxuICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIGIgYylcbiAgICAgIHM7XG4gICAgQnVmZmVyLmNvbnRlbnRzIGJcbiAgbGV0IHF1b3RlX2NtZF9maWxlbmFtZSBmID1cbiAgICBpZiBTdHJpbmcuY29udGFpbnMgZiAnXFxcIicgfHwgU3RyaW5nLmNvbnRhaW5zIGYgJyUnIHRoZW5cbiAgICAgIGZhaWx3aXRoIChcIkZpbGVuYW1lLnF1b3RlX2NvbW1hbmQ6IGJhZCBmaWxlIG5hbWUgXCIgXiBmKVxuICAgIGVsc2UgaWYgU3RyaW5nLmNvbnRhaW5zIGYgJyAnIHRoZW5cbiAgICAgIFwiXFxcIlwiIF4gZiBeIFwiXFxcIlwiXG4gICAgZWxzZVxuICAgICAgZlxuICAoKiBSZWRpcmVjdGlvbnMgaW4gY21kLmV4ZTogc2VlIGh0dHBzOi8vc3M2NC5jb20vbnQvc3ludGF4LXJlZGlyZWN0aW9uLmh0bWxcbiAgICAgYW5kIGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3ByZXZpb3VzLXZlcnNpb25zL3dpbmRvd3MvaXQtcHJvL3dpbmRvd3MteHAvYmI0OTA5ODIodj10ZWNobmV0LjEwKVxuICAqKVxuICBsZXQgcXVvdGVfY29tbWFuZCBjbWQgP3N0ZGluID9zdGRvdXQgP3N0ZGVyciBhcmdzID1cbiAgICBTdHJpbmcuY29uY2F0IFwiXCIgW1xuICAgICAgXCJcXFwiXCI7XG4gICAgICBxdW90ZV9jbWRfZmlsZW5hbWUgY21kO1xuICAgICAgXCIgXCI7XG4gICAgICBxdW90ZV9jbWQgKFN0cmluZy5jb25jYXQgXCIgXCIgKExpc3QubWFwIHF1b3RlIGFyZ3MpKTtcbiAgICAgIChtYXRjaCBzdGRpbiAgd2l0aCBOb25lIC0+IFwiXCIgfCBTb21lIGYgLT4gXCIgPFwiIF4gcXVvdGVfY21kX2ZpbGVuYW1lIGYpO1xuICAgICAgKG1hdGNoIHN0ZG91dCB3aXRoIE5vbmUgLT4gXCJcIiB8IFNvbWUgZiAtPiBcIiA+XCIgXiBxdW90ZV9jbWRfZmlsZW5hbWUgZik7XG4gICAgICAobWF0Y2ggc3RkZXJyIHdpdGggTm9uZSAtPiBcIlwiIHwgU29tZSBmIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc3RkZXJyID0gc3Rkb3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBcIiAyPiYxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIFwiIDI+XCIgXiBxdW90ZV9jbWRfZmlsZW5hbWUgZik7XG4gICAgICBcIlxcXCJcIlxuICAgIF1cbiAgbGV0IGhhc19kcml2ZSBzID1cbiAgICBsZXQgaXNfbGV0dGVyID0gZnVuY3Rpb25cbiAgICAgIHwgJ0EnIC4uICdaJyB8ICdhJyAuLiAneicgLT4gdHJ1ZVxuICAgICAgfCBfIC0+IGZhbHNlXG4gICAgaW5cbiAgICBTdHJpbmcubGVuZ3RoIHMgPj0gMiAmJiBpc19sZXR0ZXIgcy5bMF0gJiYgcy5bMV0gPSAnOidcbiAgbGV0IGRyaXZlX2FuZF9wYXRoIHMgPVxuICAgIGlmIGhhc19kcml2ZSBzXG4gICAgdGhlbiAoU3RyaW5nLnN1YiBzIDAgMiwgU3RyaW5nLnN1YiBzIDIgKFN0cmluZy5sZW5ndGggcyAtIDIpKVxuICAgIGVsc2UgKFwiXCIsIHMpXG4gIGxldCBkaXJuYW1lIHMgPVxuICAgIGxldCAoZHJpdmUsIHBhdGgpID0gZHJpdmVfYW5kX3BhdGggcyBpblxuICAgIGxldCBkaXIgPSBnZW5lcmljX2Rpcm5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIHBhdGggaW5cbiAgICBkcml2ZSBeIGRpclxuICBsZXQgYmFzZW5hbWUgcyA9XG4gICAgbGV0IChfZHJpdmUsIHBhdGgpID0gZHJpdmVfYW5kX3BhdGggcyBpblxuICAgIGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lIHBhdGhcbmVuZFxuXG5tb2R1bGUgQ3lnd2luIDogU1lTREVQUyA9IHN0cnVjdFxuICBsZXQgbnVsbCA9IFwiL2Rldi9udWxsXCJcbiAgbGV0IGN1cnJlbnRfZGlyX25hbWUgPSBcIi5cIlxuICBsZXQgcGFyZW50X2Rpcl9uYW1lID0gXCIuLlwiXG4gIGxldCBkaXJfc2VwID0gXCIvXCJcbiAgbGV0IGlzX2Rpcl9zZXAgPSBXaW4zMi5pc19kaXJfc2VwXG4gIGxldCBpc19yZWxhdGl2ZSA9IFdpbjMyLmlzX3JlbGF0aXZlXG4gIGxldCBpc19pbXBsaWNpdCA9IFdpbjMyLmlzX2ltcGxpY2l0XG4gIGxldCBjaGVja19zdWZmaXggPSBXaW4zMi5jaGVja19zdWZmaXhcbiAgbGV0IGNob3Bfc3VmZml4X29wdCA9IFdpbjMyLmNob3Bfc3VmZml4X29wdFxuICBsZXQgdGVtcF9kaXJfbmFtZSA9IFVuaXgudGVtcF9kaXJfbmFtZVxuICBsZXQgcXVvdGUgPSBVbml4LnF1b3RlXG4gIGxldCBxdW90ZV9jb21tYW5kID0gVW5peC5xdW90ZV9jb21tYW5kXG4gIGxldCBiYXNlbmFtZSA9IGdlbmVyaWNfYmFzZW5hbWUgaXNfZGlyX3NlcCBjdXJyZW50X2Rpcl9uYW1lXG4gIGxldCBkaXJuYW1lID0gZ2VuZXJpY19kaXJuYW1lIGlzX2Rpcl9zZXAgY3VycmVudF9kaXJfbmFtZVxuZW5kXG5cbm1vZHVsZSBTeXNkZXBzID1cbiAgKHZhbCAobWF0Y2ggU3lzLm9zX3R5cGUgd2l0aFxuICAgICAgIHwgXCJXaW4zMlwiIC0+IChtb2R1bGUgV2luMzI6IFNZU0RFUFMpXG4gICAgICAgfCBcIkN5Z3dpblwiIC0+IChtb2R1bGUgQ3lnd2luOiBTWVNERVBTKVxuICAgICAgIHwgXyAtPiAobW9kdWxlIFVuaXg6IFNZU0RFUFMpKSlcblxuaW5jbHVkZSBTeXNkZXBzXG5cbmxldCBjb25jYXQgZGlybmFtZSBmaWxlbmFtZSA9XG4gIGxldCBsID0gU3RyaW5nLmxlbmd0aCBkaXJuYW1lIGluXG4gIGlmIGwgPSAwIHx8IGlzX2Rpcl9zZXAgZGlybmFtZSAobC0xKVxuICB0aGVuIGRpcm5hbWUgXiBmaWxlbmFtZVxuICBlbHNlIGRpcm5hbWUgXiBkaXJfc2VwIF4gZmlsZW5hbWVcblxubGV0IGNob3Bfc3VmZml4IG5hbWUgc3VmZiA9XG4gIGlmIGNoZWNrX3N1ZmZpeCBuYW1lIHN1ZmZcbiAgdGhlbiBTdHJpbmcuc3ViIG5hbWUgMCAoU3RyaW5nLmxlbmd0aCBuYW1lIC0gU3RyaW5nLmxlbmd0aCBzdWZmKVxuICBlbHNlIGludmFsaWRfYXJnIFwiRmlsZW5hbWUuY2hvcF9zdWZmaXhcIlxuXG5sZXQgZXh0ZW5zaW9uX2xlbiBuYW1lID1cbiAgbGV0IHJlYyBjaGVjayBpMCBpID1cbiAgICBpZiBpIDwgMCB8fCBpc19kaXJfc2VwIG5hbWUgaSB0aGVuIDBcbiAgICBlbHNlIGlmIG5hbWUuW2ldID0gJy4nIHRoZW4gY2hlY2sgaTAgKGkgLSAxKVxuICAgIGVsc2UgU3RyaW5nLmxlbmd0aCBuYW1lIC0gaTBcbiAgaW5cbiAgbGV0IHJlYyBzZWFyY2hfZG90IGkgPVxuICAgIGlmIGkgPCAwIHx8IGlzX2Rpcl9zZXAgbmFtZSBpIHRoZW4gMFxuICAgIGVsc2UgaWYgbmFtZS5baV0gPSAnLicgdGhlbiBjaGVjayBpIChpIC0gMSlcbiAgICBlbHNlIHNlYXJjaF9kb3QgKGkgLSAxKVxuICBpblxuICBzZWFyY2hfZG90IChTdHJpbmcubGVuZ3RoIG5hbWUgLSAxKVxuXG5sZXQgZXh0ZW5zaW9uIG5hbWUgPVxuICBsZXQgbCA9IGV4dGVuc2lvbl9sZW4gbmFtZSBpblxuICBpZiBsID0gMCB0aGVuIFwiXCIgZWxzZSBTdHJpbmcuc3ViIG5hbWUgKFN0cmluZy5sZW5ndGggbmFtZSAtIGwpIGxcblxubGV0IGNob3BfZXh0ZW5zaW9uIG5hbWUgPVxuICBsZXQgbCA9IGV4dGVuc2lvbl9sZW4gbmFtZSBpblxuICBpZiBsID0gMCB0aGVuIGludmFsaWRfYXJnIFwiRmlsZW5hbWUuY2hvcF9leHRlbnNpb25cIlxuICBlbHNlIFN0cmluZy5zdWIgbmFtZSAwIChTdHJpbmcubGVuZ3RoIG5hbWUgLSBsKVxuXG5sZXQgcmVtb3ZlX2V4dGVuc2lvbiBuYW1lID1cbiAgbGV0IGwgPSBleHRlbnNpb25fbGVuIG5hbWUgaW5cbiAgaWYgbCA9IDAgdGhlbiBuYW1lIGVsc2UgU3RyaW5nLnN1YiBuYW1lIDAgKFN0cmluZy5sZW5ndGggbmFtZSAtIGwpXG5cbmV4dGVybmFsIG9wZW5fZGVzYzogc3RyaW5nIC0+IG9wZW5fZmxhZyBsaXN0IC0+IGludCAtPiBpbnQgPSBcImNhbWxfc3lzX29wZW5cIlxuZXh0ZXJuYWwgY2xvc2VfZGVzYzogaW50IC0+IHVuaXQgPSBcImNhbWxfc3lzX2Nsb3NlXCJcblxubGV0IHBybmcgPSBsYXp5KFJhbmRvbS5TdGF0ZS5tYWtlX3NlbGZfaW5pdCAoKSlcblxubGV0IHRlbXBfZmlsZV9uYW1lIHRlbXBfZGlyIHByZWZpeCBzdWZmaXggPVxuICBsZXQgcm5kID0gKFJhbmRvbS5TdGF0ZS5iaXRzIChMYXp5LmZvcmNlIHBybmcpKSBsYW5kIDB4RkZGRkZGIGluXG4gIGNvbmNhdCB0ZW1wX2RpciAoUHJpbnRmLnNwcmludGYgXCIlcyUwNnglc1wiIHByZWZpeCBybmQgc3VmZml4KVxuXG5cbmxldCBjdXJyZW50X3RlbXBfZGlyX25hbWUgPSByZWYgdGVtcF9kaXJfbmFtZVxuXG5sZXQgc2V0X3RlbXBfZGlyX25hbWUgcyA9IGN1cnJlbnRfdGVtcF9kaXJfbmFtZSA6PSBzXG5sZXQgZ2V0X3RlbXBfZGlyX25hbWUgKCkgPSAhY3VycmVudF90ZW1wX2Rpcl9uYW1lXG5cbmxldCB0ZW1wX2ZpbGUgPyh0ZW1wX2RpciA9ICFjdXJyZW50X3RlbXBfZGlyX25hbWUpIHByZWZpeCBzdWZmaXggPVxuICBsZXQgcmVjIHRyeV9uYW1lIGNvdW50ZXIgPVxuICAgIGxldCBuYW1lID0gdGVtcF9maWxlX25hbWUgdGVtcF9kaXIgcHJlZml4IHN1ZmZpeCBpblxuICAgIHRyeVxuICAgICAgY2xvc2VfZGVzYyhvcGVuX2Rlc2MgbmFtZSBbT3Blbl93cm9ubHk7IE9wZW5fY3JlYXQ7IE9wZW5fZXhjbF0gMG82MDApO1xuICAgICAgbmFtZVxuICAgIHdpdGggU3lzX2Vycm9yIF8gYXMgZSAtPlxuICAgICAgaWYgY291bnRlciA+PSAxMDAwIHRoZW4gcmFpc2UgZSBlbHNlIHRyeV9uYW1lIChjb3VudGVyICsgMSlcbiAgaW4gdHJ5X25hbWUgMFxuXG5sZXQgb3Blbl90ZW1wX2ZpbGUgPyhtb2RlID0gW09wZW5fdGV4dF0pID8ocGVybXMgPSAwbzYwMClcbiAgICAgICAgICAgICAgICAgICA/KHRlbXBfZGlyID0gIWN1cnJlbnRfdGVtcF9kaXJfbmFtZSkgcHJlZml4IHN1ZmZpeCA9XG4gIGxldCByZWMgdHJ5X25hbWUgY291bnRlciA9XG4gICAgbGV0IG5hbWUgPSB0ZW1wX2ZpbGVfbmFtZSB0ZW1wX2RpciBwcmVmaXggc3VmZml4IGluXG4gICAgdHJ5XG4gICAgICAobmFtZSxcbiAgICAgICBvcGVuX291dF9nZW4gKE9wZW5fd3Jvbmx5OjpPcGVuX2NyZWF0OjpPcGVuX2V4Y2w6Om1vZGUpIHBlcm1zIG5hbWUpXG4gICAgd2l0aCBTeXNfZXJyb3IgXyBhcyBlIC0+XG4gICAgICBpZiBjb3VudGVyID49IDEwMDAgdGhlbiByYWlzZSBlIGVsc2UgdHJ5X25hbWUgKGNvdW50ZXIgKyAxKVxuICBpbiB0cnlfbmFtZSAwXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAyIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIENvbXBsZXggbnVtYmVycyAqKVxuXG50eXBlIHQgPSB7IHJlOiBmbG9hdDsgaW06IGZsb2F0IH1cblxubGV0IHplcm8gPSB7IHJlID0gMC4wOyBpbSA9IDAuMCB9XG5sZXQgb25lID0geyByZSA9IDEuMDsgaW0gPSAwLjAgfVxubGV0IGkgPSB7IHJlID0gMC4wOyBpbSA9IDEuMCB9XG5cbmxldCBhZGQgeCB5ID0geyByZSA9IHgucmUgKy4geS5yZTsgaW0gPSB4LmltICsuIHkuaW0gfVxuXG5sZXQgc3ViIHggeSA9IHsgcmUgPSB4LnJlIC0uIHkucmU7IGltID0geC5pbSAtLiB5LmltIH1cblxubGV0IG5lZyB4ID0geyByZSA9IC0uIHgucmU7IGltID0gLS4geC5pbSB9XG5cbmxldCBjb25qIHggPSB7IHJlID0geC5yZTsgaW0gPSAtLiB4LmltIH1cblxubGV0IG11bCB4IHkgPSB7IHJlID0geC5yZSAqLiB5LnJlIC0uIHguaW0gKi4geS5pbTtcbiAgICAgICAgICAgICAgICBpbSA9IHgucmUgKi4geS5pbSArLiB4LmltICouIHkucmUgfVxuXG5sZXQgZGl2IHggeSA9XG4gIGlmIGFic19mbG9hdCB5LnJlID49IGFic19mbG9hdCB5LmltIHRoZW5cbiAgICBsZXQgciA9IHkuaW0gLy4geS5yZSBpblxuICAgIGxldCBkID0geS5yZSArLiByICouIHkuaW0gaW5cbiAgICB7IHJlID0gKHgucmUgKy4gciAqLiB4LmltKSAvLiBkO1xuICAgICAgaW0gPSAoeC5pbSAtLiByICouIHgucmUpIC8uIGQgfVxuICBlbHNlXG4gICAgbGV0IHIgPSB5LnJlIC8uIHkuaW0gaW5cbiAgICBsZXQgZCA9IHkuaW0gKy4gciAqLiB5LnJlIGluXG4gICAgeyByZSA9IChyICouIHgucmUgKy4geC5pbSkgLy4gZDtcbiAgICAgIGltID0gKHIgKi4geC5pbSAtLiB4LnJlKSAvLiBkIH1cblxubGV0IGludiB4ID0gZGl2IG9uZSB4XG5cbmxldCBub3JtMiB4ID0geC5yZSAqLiB4LnJlICsuIHguaW0gKi4geC5pbVxuXG5sZXQgbm9ybSB4ID1cbiAgKCogV2F0Y2ggb3V0IGZvciBvdmVyZmxvdyBpbiBjb21wdXRpbmcgcmVeMiArIGltXjIgKilcbiAgbGV0IHIgPSBhYnNfZmxvYXQgeC5yZSBhbmQgaSA9IGFic19mbG9hdCB4LmltIGluXG4gIGlmIHIgPSAwLjAgdGhlbiBpXG4gIGVsc2UgaWYgaSA9IDAuMCB0aGVuIHJcbiAgZWxzZSBpZiByID49IGkgdGhlblxuICAgIGxldCBxID0gaSAvLiByIGluIHIgKi4gc3FydCgxLjAgKy4gcSAqLiBxKVxuICBlbHNlXG4gICAgbGV0IHEgPSByIC8uIGkgaW4gaSAqLiBzcXJ0KDEuMCArLiBxICouIHEpXG5cbmxldCBhcmcgeCA9IGF0YW4yIHguaW0geC5yZVxuXG5sZXQgcG9sYXIgbiBhID0geyByZSA9IGNvcyBhICouIG47IGltID0gc2luIGEgKi4gbiB9XG5cbmxldCBzcXJ0IHggPVxuICBpZiB4LnJlID0gMC4wICYmIHguaW0gPSAwLjAgdGhlbiB7IHJlID0gMC4wOyBpbSA9IDAuMCB9XG4gIGVsc2UgYmVnaW5cbiAgICBsZXQgciA9IGFic19mbG9hdCB4LnJlIGFuZCBpID0gYWJzX2Zsb2F0IHguaW0gaW5cbiAgICBsZXQgdyA9XG4gICAgICBpZiByID49IGkgdGhlbiBiZWdpblxuICAgICAgICBsZXQgcSA9IGkgLy4gciBpblxuICAgICAgICBzcXJ0KHIpICouIHNxcnQoMC41ICouICgxLjAgKy4gc3FydCgxLjAgKy4gcSAqLiBxKSkpXG4gICAgICBlbmQgZWxzZSBiZWdpblxuICAgICAgICBsZXQgcSA9IHIgLy4gaSBpblxuICAgICAgICBzcXJ0KGkpICouIHNxcnQoMC41ICouIChxICsuIHNxcnQoMS4wICsuIHEgKi4gcSkpKVxuICAgICAgZW5kIGluXG4gICAgaWYgeC5yZSA+PSAwLjBcbiAgICB0aGVuIHsgcmUgPSB3OyAgaW0gPSAwLjUgKi4geC5pbSAvLiB3IH1cbiAgICBlbHNlIHsgcmUgPSAwLjUgKi4gaSAvLiB3OyAgaW0gPSBpZiB4LmltID49IDAuMCB0aGVuIHcgZWxzZSAtLiB3IH1cbiAgZW5kXG5cbmxldCBleHAgeCA9XG4gIGxldCBlID0gZXhwIHgucmUgaW4geyByZSA9IGUgKi4gY29zIHguaW07IGltID0gZSAqLiBzaW4geC5pbSB9XG5cbmxldCBsb2cgeCA9IHsgcmUgPSBsb2cgKG5vcm0geCk7IGltID0gYXRhbjIgeC5pbSB4LnJlIH1cblxubGV0IHBvdyB4IHkgPSBleHAgKG11bCB5IChsb2cgeCkpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgTWFudWVsIFNlcnJhbm8gZXQgWGF2aWVyIExlcm95LCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAyMDAwIEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIE1vZHVsZSBbQmlnYXJyYXldOiBsYXJnZSwgbXVsdGktZGltZW5zaW9uYWwsIG51bWVyaWNhbCBhcnJheXMgKilcblxuKCogVGhlc2UgdHlwZXMgaW4gbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgdGFibGVzIGluXG4gICAuLi90eXBpbmcvdHlwZW9wdC5tbCAqKVxuXG50eXBlIGZsb2F0MzJfZWx0ID0gRmxvYXQzMl9lbHRcbnR5cGUgZmxvYXQ2NF9lbHQgPSBGbG9hdDY0X2VsdFxudHlwZSBpbnQ4X3NpZ25lZF9lbHQgPSBJbnQ4X3NpZ25lZF9lbHRcbnR5cGUgaW50OF91bnNpZ25lZF9lbHQgPSBJbnQ4X3Vuc2lnbmVkX2VsdFxudHlwZSBpbnQxNl9zaWduZWRfZWx0ID0gSW50MTZfc2lnbmVkX2VsdFxudHlwZSBpbnQxNl91bnNpZ25lZF9lbHQgPSBJbnQxNl91bnNpZ25lZF9lbHRcbnR5cGUgaW50MzJfZWx0ID0gSW50MzJfZWx0XG50eXBlIGludDY0X2VsdCA9IEludDY0X2VsdFxudHlwZSBpbnRfZWx0ID0gSW50X2VsdFxudHlwZSBuYXRpdmVpbnRfZWx0ID0gTmF0aXZlaW50X2VsdFxudHlwZSBjb21wbGV4MzJfZWx0ID0gQ29tcGxleDMyX2VsdFxudHlwZSBjb21wbGV4NjRfZWx0ID0gQ29tcGxleDY0X2VsdFxuXG50eXBlICgnYSwgJ2IpIGtpbmQgPVxuICAgIEZsb2F0MzIgOiAoZmxvYXQsIGZsb2F0MzJfZWx0KSBraW5kXG4gIHwgRmxvYXQ2NCA6IChmbG9hdCwgZmxvYXQ2NF9lbHQpIGtpbmRcbiAgfCBJbnQ4X3NpZ25lZCA6IChpbnQsIGludDhfc2lnbmVkX2VsdCkga2luZFxuICB8IEludDhfdW5zaWduZWQgOiAoaW50LCBpbnQ4X3Vuc2lnbmVkX2VsdCkga2luZFxuICB8IEludDE2X3NpZ25lZCA6IChpbnQsIGludDE2X3NpZ25lZF9lbHQpIGtpbmRcbiAgfCBJbnQxNl91bnNpZ25lZCA6IChpbnQsIGludDE2X3Vuc2lnbmVkX2VsdCkga2luZFxuICB8IEludDMyIDogKGludDMyLCBpbnQzMl9lbHQpIGtpbmRcbiAgfCBJbnQ2NCA6IChpbnQ2NCwgaW50NjRfZWx0KSBraW5kXG4gIHwgSW50IDogKGludCwgaW50X2VsdCkga2luZFxuICB8IE5hdGl2ZWludCA6IChuYXRpdmVpbnQsIG5hdGl2ZWludF9lbHQpIGtpbmRcbiAgfCBDb21wbGV4MzIgOiAoQ29tcGxleC50LCBjb21wbGV4MzJfZWx0KSBraW5kXG4gIHwgQ29tcGxleDY0IDogKENvbXBsZXgudCwgY29tcGxleDY0X2VsdCkga2luZFxuICB8IENoYXIgOiAoY2hhciwgaW50OF91bnNpZ25lZF9lbHQpIGtpbmRcblxudHlwZSBjX2xheW91dCA9IENfbGF5b3V0X3R5cFxudHlwZSBmb3J0cmFuX2xheW91dCA9IEZvcnRyYW5fbGF5b3V0X3R5cCAoKiopXG5cbnR5cGUgJ2EgbGF5b3V0ID1cbiAgICBDX2xheW91dDogY19sYXlvdXQgbGF5b3V0XG4gIHwgRm9ydHJhbl9sYXlvdXQ6IGZvcnRyYW5fbGF5b3V0IGxheW91dFxuXG4oKiBLZWVwIHRob3NlIGNvbnN0YW50cyBpbiBzeW5jIHdpdGggdGhlIGNhbWxfYmFfa2luZCBlbnVtZXJhdGlvblxuICAgaW4gYmlnYXJyYXkuaCAqKVxuXG5sZXQgZmxvYXQzMiA9IEZsb2F0MzJcbmxldCBmbG9hdDY0ID0gRmxvYXQ2NFxubGV0IGludDhfc2lnbmVkID0gSW50OF9zaWduZWRcbmxldCBpbnQ4X3Vuc2lnbmVkID0gSW50OF91bnNpZ25lZFxubGV0IGludDE2X3NpZ25lZCA9IEludDE2X3NpZ25lZFxubGV0IGludDE2X3Vuc2lnbmVkID0gSW50MTZfdW5zaWduZWRcbmxldCBpbnQzMiA9IEludDMyXG5sZXQgaW50NjQgPSBJbnQ2NFxubGV0IGludCA9IEludFxubGV0IG5hdGl2ZWludCA9IE5hdGl2ZWludFxubGV0IGNvbXBsZXgzMiA9IENvbXBsZXgzMlxubGV0IGNvbXBsZXg2NCA9IENvbXBsZXg2NFxubGV0IGNoYXIgPSBDaGFyXG5cbmxldCBraW5kX3NpemVfaW5fYnl0ZXMgOiB0eXBlIGEgYi4gKGEsIGIpIGtpbmQgLT4gaW50ID0gZnVuY3Rpb25cbiAgfCBGbG9hdDMyIC0+IDRcbiAgfCBGbG9hdDY0IC0+IDhcbiAgfCBJbnQ4X3NpZ25lZCAtPiAxXG4gIHwgSW50OF91bnNpZ25lZCAtPiAxXG4gIHwgSW50MTZfc2lnbmVkIC0+IDJcbiAgfCBJbnQxNl91bnNpZ25lZCAtPiAyXG4gIHwgSW50MzIgLT4gNFxuICB8IEludDY0IC0+IDhcbiAgfCBJbnQgLT4gU3lzLndvcmRfc2l6ZSAvIDhcbiAgfCBOYXRpdmVpbnQgLT4gU3lzLndvcmRfc2l6ZSAvIDhcbiAgfCBDb21wbGV4MzIgLT4gOFxuICB8IENvbXBsZXg2NCAtPiAxNlxuICB8IENoYXIgLT4gMVxuXG4oKiBLZWVwIHRob3NlIGNvbnN0YW50cyBpbiBzeW5jIHdpdGggdGhlIGNhbWxfYmFfbGF5b3V0IGVudW1lcmF0aW9uXG4gICBpbiBiaWdhcnJheS5oICopXG5cbmxldCBjX2xheW91dCA9IENfbGF5b3V0XG5sZXQgZm9ydHJhbl9sYXlvdXQgPSBGb3J0cmFuX2xheW91dFxuXG5tb2R1bGUgR2VuYXJyYXkgPSBzdHJ1Y3RcbiAgdHlwZSAoISdhLCAhJ2IsICEnYykgdFxuICBleHRlcm5hbCBjcmVhdGU6ICgnYSwgJ2IpIGtpbmQgLT4gJ2MgbGF5b3V0IC0+IGludCBhcnJheSAtPiAoJ2EsICdiLCAnYykgdFxuICAgICA9IFwiY2FtbF9iYV9jcmVhdGVcIlxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCBhcnJheSAtPiAnYVxuICAgICA9IFwiY2FtbF9iYV9nZXRfZ2VuZXJpY1wiXG4gIGV4dGVybmFsIHNldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IGFycmF5IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcImNhbWxfYmFfc2V0X2dlbmVyaWNcIlxuXG4gIGxldCByZWMgY2xvb3AgYXJyIGlkeCBmIGNvbCBtYXggPVxuICAgIGlmIGNvbCA9IEFycmF5Lmxlbmd0aCBpZHggdGhlbiBzZXQgYXJyIGlkeCAoZiBpZHgpXG4gICAgZWxzZSBmb3IgaiA9IDAgdG8gcHJlZCBtYXguKGNvbCkgZG9cbiAgICAgICAgICAgaWR4Lihjb2wpIDwtIGo7XG4gICAgICAgICAgIGNsb29wIGFyciBpZHggZiAoc3VjYyBjb2wpIG1heFxuICAgICAgICAgZG9uZVxuICBsZXQgcmVjIGZsb29wIGFyciBpZHggZiBjb2wgbWF4ID1cbiAgICBpZiBjb2wgPCAwIHRoZW4gc2V0IGFyciBpZHggKGYgaWR4KVxuICAgIGVsc2UgZm9yIGogPSAxIHRvIG1heC4oY29sKSBkb1xuICAgICAgICAgICBpZHguKGNvbCkgPC0gajtcbiAgICAgICAgICAgZmxvb3AgYXJyIGlkeCBmIChwcmVkIGNvbCkgbWF4XG4gICAgICAgICBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW1zIGYgPVxuICAgIGxldCBhcnIgPSBjcmVhdGUga2luZCBsYXlvdXQgZGltcyBpblxuICAgIG1hdGNoIEFycmF5Lmxlbmd0aCBkaW1zLCBsYXlvdXQgd2l0aFxuICAgIHwgMCwgXyAtPiBhcnJcbiAgICB8IGRsZW4sIENfbGF5b3V0IC0+IGNsb29wIGFyciAoQXJyYXkubWFrZSBkbGVuIDApIGYgMCBkaW1zOyBhcnJcbiAgICB8IGRsZW4sIEZvcnRyYW5fbGF5b3V0IC0+IGZsb29wIGFyciAoQXJyYXkubWFrZSBkbGVuIDEpIGYgKHByZWQgZGxlbikgZGltcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyclxuXG4gIGV4dGVybmFsIG51bV9kaW1zOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcImNhbWxfYmFfbnVtX2RpbXNcIlxuICBleHRlcm5hbCBudGhfZGltOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50ID0gXCJjYW1sX2JhX2RpbVwiXG4gIGxldCBkaW1zIGEgPVxuICAgIGxldCBuID0gbnVtX2RpbXMgYSBpblxuICAgIGxldCBkID0gQXJyYXkubWFrZSBuIDAgaW5cbiAgICBmb3IgaSA9IDAgdG8gbi0xIGRvIGQuKGkpIDwtIG50aF9kaW0gYSBpIGRvbmU7XG4gICAgZFxuXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPVxuICAgIChraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKSkgKiAoQXJyYXkuZm9sZF9sZWZ0ICggKiApIDEgKGRpbXMgYXJyKSlcblxuICBleHRlcm5hbCBzdWJfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzdWJfcmlnaHQ6ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc2xpY2VfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IGFycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICgnYSwgJ2IsIGNfbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3NsaWNlXCJcbiAgZXh0ZXJuYWwgc2xpY2VfcmlnaHQ6ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0IC0+IGludCBhcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zbGljZVwiXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXRcbiAgICAgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG5lbmRcblxubW9kdWxlIEFycmF5MCA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8fF1cbiAgbGV0IGdldCBhcnIgPSBHZW5hcnJheS5nZXQgYXJyIFt8fF1cbiAgbGV0IHNldCBhcnIgPSBHZW5hcnJheS5zZXQgYXJyIFt8fF1cbiAgZXh0ZXJuYWwga2luZDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYikga2luZCA9IFwiY2FtbF9iYV9raW5kXCJcbiAgZXh0ZXJuYWwgbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnYyBsYXlvdXQgPSBcImNhbWxfYmFfbGF5b3V0XCJcblxuICBleHRlcm5hbCBjaGFuZ2VfbGF5b3V0OiAoJ2EsICdiLCAnYykgdCAtPiAnZCBsYXlvdXQgLT4gKCdhLCAnYiwgJ2QpIHRcbiAgICA9IFwiY2FtbF9iYV9jaGFuZ2VfbGF5b3V0XCJcblxuICBsZXQgc2l6ZV9pbl9ieXRlcyBhcnIgPSBraW5kX3NpemVfaW5fYnl0ZXMgKGtpbmQgYXJyKVxuXG4gIGV4dGVybmFsIGJsaXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IsICdjKSB0IC0+IHVuaXQgPSBcImNhbWxfYmFfYmxpdFwiXG4gIGV4dGVybmFsIGZpbGw6ICgnYSwgJ2IsICdjKSB0IC0+ICdhIC0+IHVuaXQgPSBcImNhbWxfYmFfZmlsbFwiXG5cbiAgbGV0IG9mX3ZhbHVlIGtpbmQgbGF5b3V0IHYgPVxuICAgIGxldCBhID0gY3JlYXRlIGtpbmQgbGF5b3V0IGluXG4gICAgc2V0IGEgdjtcbiAgICBhXG4gIGxldCBpbml0ID0gb2ZfdmFsdWVcbmVuZFxuXG5tb2R1bGUgQXJyYXkxID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0IGRpbSA9XG4gICAgR2VuYXJyYXkuY3JlYXRlIGtpbmQgbGF5b3V0IFt8ZGltfF1cbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gJ2EgPSBcIiVjYW1sX2JhX3JlZl8xXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gJ2EgLT4gdW5pdCA9IFwiJWNhbWxfYmFfc2V0XzFcIlxuICBleHRlcm5hbCB1bnNhZmVfZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gJ2EgPSBcIiVjYW1sX2JhX3Vuc2FmZV9yZWZfMVwiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfc2V0XzFcIlxuICBleHRlcm5hbCBkaW06ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzFcIlxuICBleHRlcm5hbCBraW5kOiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiKSBraW5kID0gXCJjYW1sX2JhX2tpbmRcIlxuICBleHRlcm5hbCBsYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdjIGxheW91dCA9IFwiY2FtbF9iYV9sYXlvdXRcIlxuXG4gIGV4dGVybmFsIGNoYW5nZV9sYXlvdXQ6ICgnYSwgJ2IsICdjKSB0IC0+ICdkIGxheW91dCAtPiAoJ2EsICdiLCAnZCkgdFxuICAgID0gXCJjYW1sX2JhX2NoYW5nZV9sYXlvdXRcIlxuXG4gIGxldCBzaXplX2luX2J5dGVzIGFyciA9XG4gICAgKGtpbmRfc2l6ZV9pbl9ieXRlcyAoa2luZCBhcnIpKSAqIChkaW0gYXJyKVxuXG4gIGV4dGVybmFsIHN1YjogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCAnYykgdCA9IFwiY2FtbF9iYV9zdWJcIlxuICBsZXQgc2xpY2UgKHR5cGUgdCkgKGEgOiAoXywgXywgdCkgR2VuYXJyYXkudCkgbiA9XG4gICAgbWF0Y2ggbGF5b3V0IGEgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gKEdlbmFycmF5LnNsaWNlX2xlZnQgYSBbfG58XSA6IChfLCBfLCB0KSBHZW5hcnJheS50KVxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gKEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xufF06IChfLCBfLCB0KSBHZW5hcnJheS50KVxuICBleHRlcm5hbCBibGl0OiAoJ2EsICdiLCAnYykgdCAtPiAoJ2EsICdiLCAnYykgdCAtPiB1bml0ID0gXCJjYW1sX2JhX2JsaXRcIlxuICBleHRlcm5hbCBmaWxsOiAoJ2EsICdiLCAnYykgdCAtPiAnYSAtPiB1bml0ID0gXCJjYW1sX2JhX2ZpbGxcIlxuICBsZXQgY19pbml0IGFyciBkaW0gZiA9XG4gICAgZm9yIGkgPSAwIHRvIHByZWQgZGltIGRvIHVuc2FmZV9zZXQgYXJyIGkgKGYgaSkgZG9uZVxuICBsZXQgZm9ydHJhbl9pbml0IGFyciBkaW0gZiA9XG4gICAgZm9yIGkgPSAxIHRvIGRpbSBkbyB1bnNhZmVfc2V0IGFyciBpIChmIGkpIGRvbmVcbiAgbGV0IGluaXQgKHR5cGUgdCkga2luZCAobGF5b3V0IDogdCBsYXlvdXQpIGRpbSBmID1cbiAgICBsZXQgYXJyID0gY3JlYXRlIGtpbmQgbGF5b3V0IGRpbSBpblxuICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgfCBDX2xheW91dCAtPiBjX2luaXQgYXJyIGRpbSBmOyBhcnJcbiAgICB8IEZvcnRyYW5fbGF5b3V0IC0+IGZvcnRyYW5faW5pdCBhcnIgZGltIGY7IGFyclxuICBsZXQgb2ZfYXJyYXkgKHR5cGUgdCkga2luZCAobGF5b3V0OiB0IGxheW91dCkgZGF0YSA9XG4gICAgbGV0IGJhID0gY3JlYXRlIGtpbmQgbGF5b3V0IChBcnJheS5sZW5ndGggZGF0YSkgaW5cbiAgICBsZXQgb2ZzID1cbiAgICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgICAgIENfbGF5b3V0IC0+IDBcbiAgICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gMVxuICAgIGluXG4gICAgZm9yIGkgPSAwIHRvIEFycmF5Lmxlbmd0aCBkYXRhIC0gMSBkbyB1bnNhZmVfc2V0IGJhIChpICsgb2ZzKSBkYXRhLihpKSBkb25lO1xuICAgIGJhXG5lbmRcblxubW9kdWxlIEFycmF5MiA9IHN0cnVjdFxuICB0eXBlICghJ2EsICEnYiwgISdjKSB0ID0gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgbGV0IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgPVxuICAgIEdlbmFycmF5LmNyZWF0ZSBraW5kIGxheW91dCBbfGRpbTE7IGRpbTJ8XVxuICBleHRlcm5hbCBnZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gJ2EgPSBcIiVjYW1sX2JhX3JlZl8yXCJcbiAgZXh0ZXJuYWwgc2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPSBcIiVjYW1sX2JhX3NldF8yXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYVxuICAgICA9IFwiJWNhbWxfYmFfdW5zYWZlX3JlZl8yXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX3NldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiAnYSAtPiB1bml0XG4gICAgID0gXCIlY2FtbF9iYV91bnNhZmVfc2V0XzJcIlxuICBleHRlcm5hbCBkaW0xOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8xXCJcbiAgZXh0ZXJuYWwgZGltMjogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fMlwiXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKGRpbTEgYXJyKSAqIChkaW0yIGFycilcblxuICBleHRlcm5hbCBzdWJfbGVmdDogKCdhLCAnYiwgY19sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBjX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBleHRlcm5hbCBzdWJfcmlnaHQ6XG4gICAgKCdhLCAnYiwgZm9ydHJhbl9sYXlvdXQpIHQgLT4gaW50IC0+IGludCAtPiAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdFxuICAgICA9IFwiY2FtbF9iYV9zdWJcIlxuICBsZXQgc2xpY2VfbGVmdCBhIG4gPSBHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xufF1cbiAgbGV0IHNsaWNlX3JpZ2h0IGEgbiA9IEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xufF1cbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbiAgbGV0IGNfaW5pdCBhcnIgZGltMSBkaW0yIGYgPVxuICAgIGZvciBpID0gMCB0byBwcmVkIGRpbTEgZG9cbiAgICAgIGZvciBqID0gMCB0byBwcmVkIGRpbTIgZG9cbiAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIChmIGkgailcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBmID1cbiAgICBmb3IgaiA9IDEgdG8gZGltMiBkb1xuICAgICAgZm9yIGkgPSAxIHRvIGRpbTEgZG9cbiAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIChmIGkgailcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBpbml0ICh0eXBlIHQpIGtpbmQgKGxheW91dCA6IHQgbGF5b3V0KSBkaW0xIGRpbTIgZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgaW5cbiAgICBtYXRjaCBsYXlvdXQgd2l0aFxuICAgIHwgQ19sYXlvdXQgLT4gY19pbml0IGFyciBkaW0xIGRpbTIgZjsgYXJyXG4gICAgfCBGb3J0cmFuX2xheW91dCAtPiBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBmOyBhcnJcbiAgbGV0IG9mX2FycmF5ICh0eXBlIHQpIGtpbmQgKGxheW91dDogdCBsYXlvdXQpIGRhdGEgPVxuICAgIGxldCBkaW0xID0gQXJyYXkubGVuZ3RoIGRhdGEgaW5cbiAgICBsZXQgZGltMiA9IGlmIGRpbTEgPSAwIHRoZW4gMCBlbHNlIEFycmF5Lmxlbmd0aCBkYXRhLigwKSBpblxuICAgIGxldCBiYSA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgaW5cbiAgICBsZXQgb2ZzID1cbiAgICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgICAgIENfbGF5b3V0IC0+IDBcbiAgICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gMVxuICAgIGluXG4gICAgZm9yIGkgPSAwIHRvIGRpbTEgLSAxIGRvXG4gICAgICBsZXQgcm93ID0gZGF0YS4oaSkgaW5cbiAgICAgIGlmIEFycmF5Lmxlbmd0aCByb3cgPD4gZGltMiB0aGVuXG4gICAgICAgIGludmFsaWRfYXJnKFwiQmlnYXJyYXkuQXJyYXkyLm9mX2FycmF5OiBub24tcmVjdGFuZ3VsYXIgZGF0YVwiKTtcbiAgICAgIGZvciBqID0gMCB0byBkaW0yIC0gMSBkb1xuICAgICAgICB1bnNhZmVfc2V0IGJhIChpICsgb2ZzKSAoaiArIG9mcykgcm93LihqKVxuICAgICAgZG9uZVxuICAgIGRvbmU7XG4gICAgYmFcbmVuZFxuXG5tb2R1bGUgQXJyYXkzID0gc3RydWN0XG4gIHR5cGUgKCEnYSwgISdiLCAhJ2MpIHQgPSAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICBsZXQgY3JlYXRlIGtpbmQgbGF5b3V0IGRpbTEgZGltMiBkaW0zID1cbiAgICBHZW5hcnJheS5jcmVhdGUga2luZCBsYXlvdXQgW3xkaW0xOyBkaW0yOyBkaW0zfF1cbiAgZXh0ZXJuYWwgZ2V0OiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiAnYSA9IFwiJWNhbWxfYmFfcmVmXzNcIlxuICBleHRlcm5hbCBzZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3NldF8zXCJcbiAgZXh0ZXJuYWwgdW5zYWZlX2dldDogKCdhLCAnYiwgJ2MpIHQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gJ2FcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9yZWZfM1wiXG4gIGV4dGVybmFsIHVuc2FmZV9zZXQ6ICgnYSwgJ2IsICdjKSB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+ICdhIC0+IHVuaXRcbiAgICAgPSBcIiVjYW1sX2JhX3Vuc2FmZV9zZXRfM1wiXG4gIGV4dGVybmFsIGRpbTE6ICgnYSwgJ2IsICdjKSB0IC0+IGludCA9IFwiJWNhbWxfYmFfZGltXzFcIlxuICBleHRlcm5hbCBkaW0yOiAoJ2EsICdiLCAnYykgdCAtPiBpbnQgPSBcIiVjYW1sX2JhX2RpbV8yXCJcbiAgZXh0ZXJuYWwgZGltMzogKCdhLCAnYiwgJ2MpIHQgLT4gaW50ID0gXCIlY2FtbF9iYV9kaW1fM1wiXG4gIGV4dGVybmFsIGtpbmQ6ICgnYSwgJ2IsICdjKSB0IC0+ICgnYSwgJ2IpIGtpbmQgPSBcImNhbWxfYmFfa2luZFwiXG4gIGV4dGVybmFsIGxheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2MgbGF5b3V0ID0gXCJjYW1sX2JhX2xheW91dFwiXG5cbiAgZXh0ZXJuYWwgY2hhbmdlX2xheW91dDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2QgbGF5b3V0IC0+ICgnYSwgJ2IsICdkKSB0XG4gICAgPSBcImNhbWxfYmFfY2hhbmdlX2xheW91dFwiXG5cbiAgbGV0IHNpemVfaW5fYnl0ZXMgYXJyID1cbiAgICAoa2luZF9zaXplX2luX2J5dGVzIChraW5kIGFycikpICogKGRpbTEgYXJyKSAqIChkaW0yIGFycikgKiAoZGltMyBhcnIpXG5cbiAgZXh0ZXJuYWwgc3ViX2xlZnQ6ICgnYSwgJ2IsIGNfbGF5b3V0KSB0IC0+IGludCAtPiBpbnQgLT4gKCdhLCAnYiwgY19sYXlvdXQpIHRcbiAgICAgPSBcImNhbWxfYmFfc3ViXCJcbiAgZXh0ZXJuYWwgc3ViX3JpZ2h0OlxuICAgICAoJ2EsICdiLCBmb3J0cmFuX2xheW91dCkgdCAtPiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IsIGZvcnRyYW5fbGF5b3V0KSB0XG4gICAgID0gXCJjYW1sX2JhX3N1YlwiXG4gIGxldCBzbGljZV9sZWZ0XzEgYSBuIG0gPSBHZW5hcnJheS5zbGljZV9sZWZ0IGEgW3xuOyBtfF1cbiAgbGV0IHNsaWNlX3JpZ2h0XzEgYSBuIG0gPSBHZW5hcnJheS5zbGljZV9yaWdodCBhIFt8bjsgbXxdXG4gIGxldCBzbGljZV9sZWZ0XzIgYSBuID0gR2VuYXJyYXkuc2xpY2VfbGVmdCBhIFt8bnxdXG4gIGxldCBzbGljZV9yaWdodF8yIGEgbiA9IEdlbmFycmF5LnNsaWNlX3JpZ2h0IGEgW3xufF1cbiAgZXh0ZXJuYWwgYmxpdDogKCdhLCAnYiwgJ2MpIHQgLT4gKCdhLCAnYiwgJ2MpIHQgLT4gdW5pdCA9IFwiY2FtbF9iYV9ibGl0XCJcbiAgZXh0ZXJuYWwgZmlsbDogKCdhLCAnYiwgJ2MpIHQgLT4gJ2EgLT4gdW5pdCA9IFwiY2FtbF9iYV9maWxsXCJcbiAgbGV0IGNfaW5pdCBhcnIgZGltMSBkaW0yIGRpbTMgZiA9XG4gICAgZm9yIGkgPSAwIHRvIHByZWQgZGltMSBkb1xuICAgICAgZm9yIGogPSAwIHRvIHByZWQgZGltMiBkb1xuICAgICAgICBmb3IgayA9IDAgdG8gcHJlZCBkaW0zIGRvXG4gICAgICAgICAgdW5zYWZlX3NldCBhcnIgaSBqIGsgKGYgaSBqIGspXG4gICAgICAgIGRvbmVcbiAgICAgIGRvbmVcbiAgICBkb25lXG4gIGxldCBmb3J0cmFuX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGYgPVxuICAgIGZvciBrID0gMSB0byBkaW0zIGRvXG4gICAgICBmb3IgaiA9IDEgdG8gZGltMiBkb1xuICAgICAgICBmb3IgaSA9IDEgdG8gZGltMSBkb1xuICAgICAgICAgIHVuc2FmZV9zZXQgYXJyIGkgaiBrIChmIGkgaiBrKVxuICAgICAgICBkb25lXG4gICAgICBkb25lXG4gICAgZG9uZVxuICBsZXQgaW5pdCAodHlwZSB0KSBraW5kIChsYXlvdXQgOiB0IGxheW91dCkgZGltMSBkaW0yIGRpbTMgZiA9XG4gICAgbGV0IGFyciA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgZGltMyBpblxuICAgIG1hdGNoIGxheW91dCB3aXRoXG4gICAgfCBDX2xheW91dCAtPiBjX2luaXQgYXJyIGRpbTEgZGltMiBkaW0zIGY7IGFyclxuICAgIHwgRm9ydHJhbl9sYXlvdXQgLT4gZm9ydHJhbl9pbml0IGFyciBkaW0xIGRpbTIgZGltMyBmOyBhcnJcbiAgbGV0IG9mX2FycmF5ICh0eXBlIHQpIGtpbmQgKGxheW91dDogdCBsYXlvdXQpIGRhdGEgPVxuICAgIGxldCBkaW0xID0gQXJyYXkubGVuZ3RoIGRhdGEgaW5cbiAgICBsZXQgZGltMiA9IGlmIGRpbTEgPSAwIHRoZW4gMCBlbHNlIEFycmF5Lmxlbmd0aCBkYXRhLigwKSBpblxuICAgIGxldCBkaW0zID0gaWYgZGltMiA9IDAgdGhlbiAwIGVsc2UgQXJyYXkubGVuZ3RoIGRhdGEuKDApLigwKSBpblxuICAgIGxldCBiYSA9IGNyZWF0ZSBraW5kIGxheW91dCBkaW0xIGRpbTIgZGltMyBpblxuICAgIGxldCBvZnMgPVxuICAgICAgbWF0Y2ggbGF5b3V0IHdpdGhcbiAgICAgICAgQ19sYXlvdXQgLT4gMFxuICAgICAgfCBGb3J0cmFuX2xheW91dCAtPiAxXG4gICAgaW5cbiAgICBmb3IgaSA9IDAgdG8gZGltMSAtIDEgZG9cbiAgICAgIGxldCByb3cgPSBkYXRhLihpKSBpblxuICAgICAgaWYgQXJyYXkubGVuZ3RoIHJvdyA8PiBkaW0yIHRoZW5cbiAgICAgICAgaW52YWxpZF9hcmcoXCJCaWdhcnJheS5BcnJheTMub2ZfYXJyYXk6IG5vbi1jdWJpYyBkYXRhXCIpO1xuICAgICAgZm9yIGogPSAwIHRvIGRpbTIgLSAxIGRvXG4gICAgICAgIGxldCBjb2wgPSByb3cuKGopIGluXG4gICAgICAgIGlmIEFycmF5Lmxlbmd0aCBjb2wgPD4gZGltMyB0aGVuXG4gICAgICAgICAgaW52YWxpZF9hcmcoXCJCaWdhcnJheS5BcnJheTMub2ZfYXJyYXk6IG5vbi1jdWJpYyBkYXRhXCIpO1xuICAgICAgICBmb3IgayA9IDAgdG8gZGltMyAtIDEgZG9cbiAgICAgICAgICB1bnNhZmVfc2V0IGJhIChpICsgb2ZzKSAoaiArIG9mcykgKGsgKyBvZnMpIGNvbC4oaylcbiAgICAgICAgZG9uZVxuICAgICAgZG9uZVxuICAgIGRvbmU7XG4gICAgYmFcbmVuZFxuXG5leHRlcm5hbCBnZW5hcnJheV9vZl9hcnJheTA6ICgnYSwgJ2IsICdjKSBBcnJheTAudCAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBnZW5hcnJheV9vZl9hcnJheTE6ICgnYSwgJ2IsICdjKSBBcnJheTEudCAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBnZW5hcnJheV9vZl9hcnJheTI6ICgnYSwgJ2IsICdjKSBBcnJheTIudCAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcIiVpZGVudGl0eVwiXG5leHRlcm5hbCBnZW5hcnJheV9vZl9hcnJheTM6ICgnYSwgJ2IsICdjKSBBcnJheTMudCAtPiAoJ2EsICdiLCAnYykgR2VuYXJyYXkudFxuICAgPSBcIiVpZGVudGl0eVwiXG5sZXQgYXJyYXkwX29mX2dlbmFycmF5IGEgPVxuICBpZiBHZW5hcnJheS5udW1fZGltcyBhID0gMCB0aGVuIGFcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkJpZ2FycmF5LmFycmF5MF9vZl9nZW5hcnJheVwiXG5sZXQgYXJyYXkxX29mX2dlbmFycmF5IGEgPVxuICBpZiBHZW5hcnJheS5udW1fZGltcyBhID0gMSB0aGVuIGFcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkJpZ2FycmF5LmFycmF5MV9vZl9nZW5hcnJheVwiXG5sZXQgYXJyYXkyX29mX2dlbmFycmF5IGEgPVxuICBpZiBHZW5hcnJheS5udW1fZGltcyBhID0gMiB0aGVuIGFcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkJpZ2FycmF5LmFycmF5Ml9vZl9nZW5hcnJheVwiXG5sZXQgYXJyYXkzX29mX2dlbmFycmF5IGEgPVxuICBpZiBHZW5hcnJheS5udW1fZGltcyBhID0gMyB0aGVuIGFcbiAgZWxzZSBpbnZhbGlkX2FyZyBcIkJpZ2FycmF5LmFycmF5M19vZl9nZW5hcnJheVwiXG5cbmV4dGVybmFsIHJlc2hhcGU6XG4gICAoJ2EsICdiLCAnYykgR2VuYXJyYXkudCAtPiBpbnQgYXJyYXkgLT4gKCdhLCAnYiwgJ2MpIEdlbmFycmF5LnRcbiAgID0gXCJjYW1sX2JhX3Jlc2hhcGVcIlxubGV0IHJlc2hhcGVfMCBhID0gcmVzaGFwZSBhIFt8fF1cbmxldCByZXNoYXBlXzEgYSBkaW0xID0gcmVzaGFwZSBhIFt8ZGltMXxdXG5sZXQgcmVzaGFwZV8yIGEgZGltMSBkaW0yID0gcmVzaGFwZSBhIFt8ZGltMTtkaW0yfF1cbmxldCByZXNoYXBlXzMgYSBkaW0xIGRpbTIgZGltMyA9IHJlc2hhcGUgYSBbfGRpbTE7ZGltMjtkaW0zfF1cblxuKCogRm9yY2UgY2FtbF9iYV9nZXRfezEsMiwzLE59IHRvIGJlIGxpbmtlZCBpbiwgc2luY2Ugd2UgZG9uJ3QgcmVmZXJcbiAgIHRvIHRob3NlIHByaW1pdGl2ZXMgZGlyZWN0bHkgaW4gdGhpcyBmaWxlICopXG5cbmxldCBfID1cbiAgbGV0IF8gPSBHZW5hcnJheS5nZXQgaW5cbiAgbGV0IF8gPSBBcnJheTEuZ2V0IGluXG4gIGxldCBfID0gQXJyYXkyLmdldCBpblxuICBsZXQgXyA9IEFycmF5My5nZXQgaW5cbiAgKClcblxuW0BAQG9jYW1sLndhcm5pbmcgXCItMzJcIl1cbmV4dGVybmFsIGdldDE6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9nZXRfMVwiXG5leHRlcm5hbCBnZXQyOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfZ2V0XzJcIlxuZXh0ZXJuYWwgZ2V0MzogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX2dldF8zXCJcbmV4dGVybmFsIHNldDE6IHVuaXQgLT4gdW5pdCA9IFwiY2FtbF9iYV9zZXRfMVwiXG5leHRlcm5hbCBzZXQyOiB1bml0IC0+IHVuaXQgPSBcImNhbWxfYmFfc2V0XzJcIlxuZXh0ZXJuYWwgc2V0MzogdW5pdCAtPiB1bml0ID0gXCJjYW1sX2JhX3NldF8zXCJcbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjEgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gaW5fY2hhbm5lbFxuXG50eXBlIG9wZW5fZmxhZyA9IFN0ZGxpYi5vcGVuX2ZsYWcgPVxuICB8IE9wZW5fcmRvbmx5XG4gIHwgT3Blbl93cm9ubHlcbiAgfCBPcGVuX2FwcGVuZFxuICB8IE9wZW5fY3JlYXRcbiAgfCBPcGVuX3RydW5jXG4gIHwgT3Blbl9leGNsXG4gIHwgT3Blbl9iaW5hcnlcbiAgfCBPcGVuX3RleHRcbiAgfCBPcGVuX25vbmJsb2NrXG5cbmxldCBzdGRpbiA9IFN0ZGxpYi5zdGRpblxubGV0IG9wZW5fYmluID0gU3RkbGliLm9wZW5faW5fYmluXG5sZXQgb3Blbl90ZXh0ID0gU3RkbGliLm9wZW5faW5cbmxldCBvcGVuX2dlbiA9IFN0ZGxpYi5vcGVuX2luX2dlblxuXG5sZXQgd2l0aF9vcGVuIG9wZW5mdW4gcyBmID1cbiAgbGV0IGljID0gb3BlbmZ1biBzIGluXG4gIEZ1bi5wcm90ZWN0IH5maW5hbGx5OihmdW4gKCkgLT4gU3RkbGliLmNsb3NlX2luX25vZXJyIGljKVxuICAgIChmdW4gKCkgLT4gZiBpYylcblxubGV0IHdpdGhfb3Blbl9iaW4gcyBmID1cbiAgd2l0aF9vcGVuIFN0ZGxpYi5vcGVuX2luX2JpbiBzIGZcblxubGV0IHdpdGhfb3Blbl90ZXh0IHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9pbiBzIGZcblxubGV0IHdpdGhfb3Blbl9nZW4gZmxhZ3MgcGVybSBzIGYgPVxuICB3aXRoX29wZW4gKFN0ZGxpYi5vcGVuX2luX2dlbiBmbGFncyBwZXJtKSBzIGZcblxubGV0IHNlZWsgPSBTdGRsaWIuTGFyZ2VGaWxlLnNlZWtfaW5cbmxldCBwb3MgPSBTdGRsaWIuTGFyZ2VGaWxlLnBvc19pblxubGV0IGxlbmd0aCA9IFN0ZGxpYi5MYXJnZUZpbGUuaW5fY2hhbm5lbF9sZW5ndGhcbmxldCBjbG9zZSA9IFN0ZGxpYi5jbG9zZV9pblxubGV0IGNsb3NlX25vZXJyID0gU3RkbGliLmNsb3NlX2luX25vZXJyXG5cbmxldCBpbnB1dF9jaGFyIGljID1cbiAgbWF0Y2ggU3RkbGliLmlucHV0X2NoYXIgaWMgd2l0aFxuICB8IGMgLT4gU29tZSBjXG4gIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+IE5vbmVcblxubGV0IGlucHV0X2J5dGUgaWMgPVxuICBtYXRjaCBTdGRsaWIuaW5wdXRfYnl0ZSBpYyB3aXRoXG4gIHwgbiAtPiBTb21lIG5cbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG5sZXQgaW5wdXRfbGluZSBpYyA9XG4gIG1hdGNoIFN0ZGxpYi5pbnB1dF9saW5lIGljIHdpdGhcbiAgfCBzIC0+IFNvbWUgc1xuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCBpbnB1dCA9IFN0ZGxpYi5pbnB1dFxuXG5sZXQgcmVhbGx5X2lucHV0IGljIGJ1ZiBwb3MgbGVuID1cbiAgbWF0Y2ggU3RkbGliLnJlYWxseV9pbnB1dCBpYyBidWYgcG9zIGxlbiB3aXRoXG4gIHwgKCkgLT4gU29tZSAoKVxuICB8IGV4Y2VwdGlvbiBFbmRfb2ZfZmlsZSAtPiBOb25lXG5cbmxldCByZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiA9XG4gIG1hdGNoIFN0ZGxpYi5yZWFsbHlfaW5wdXRfc3RyaW5nIGljIGxlbiB3aXRoXG4gIHwgcyAtPiBTb21lIHNcbiAgfCBleGNlcHRpb24gRW5kX29mX2ZpbGUgLT4gTm9uZVxuXG4oKiBSZWFkIHVwIHRvIFtsZW5dIGJ5dGVzIGludG8gW2J1Zl0sIHN0YXJ0aW5nIGF0IFtvZnNdLiBSZXR1cm4gdG90YWwgYnl0ZXNcbiAgIHJlYWQuICopXG5sZXQgcmVhZF91cHRvIGljIGJ1ZiBvZnMgbGVuID1cbiAgbGV0IHJlYyBsb29wIG9mcyBsZW4gPVxuICAgIGlmIGxlbiA9IDAgdGhlbiBvZnNcbiAgICBlbHNlIGJlZ2luXG4gICAgICBsZXQgciA9IFN0ZGxpYi5pbnB1dCBpYyBidWYgb2ZzIGxlbiBpblxuICAgICAgaWYgciA9IDAgdGhlblxuICAgICAgICBvZnNcbiAgICAgIGVsc2VcbiAgICAgICAgbG9vcCAob2ZzICsgcikgKGxlbiAtIHIpXG4gICAgZW5kXG4gIGluXG4gIGxvb3Agb2ZzIGxlbiAtIG9mc1xuXG4oKiBCZXN0IGVmZm9ydCBhdHRlbXB0IHRvIHJldHVybiBhIGJ1ZmZlciB3aXRoID49IChvZnMgKyBuKSBieXRlcyBvZiBzdG9yYWdlLFxuICAgYW5kIHN1Y2ggdGhhdCBpdCBjb2luY2lkZXMgd2l0aCBbYnVmXSBhdCBpbmRpY2VzIDwgW29mc10uXG5cbiAgIFRoZSByZXR1cm5lZCBidWZmZXIgaXMgZXF1YWwgdG8gW2J1Zl0gaXRzZWxmIGlmIGl0IGFscmVhZHkgaGFzIHN1ZmZpY2llbnRcbiAgIGZyZWUgc3BhY2UuXG5cbiAgIFRoZSByZXR1cm5lZCBidWZmZXIgbWF5IGhhdmUgKmZld2VyKiB0aGFuIFtvZnMgKyBuXSBieXRlcyBvZiBzdG9yYWdlIGlmIHRoaXNcbiAgIG51bWJlciBpcyA+IFtTeXMubWF4X3N0cmluZ19sZW5ndGhdLiBIb3dldmVyIHRoZSByZXR1cm5lZCBidWZmZXIgd2lsbFxuICAgKmFsd2F5cyogaGF2ZSA+IFtvZnNdIGJ5dGVzIG9mIHN0b3JhZ2UuIEluIHRoZSBsaW1pdGluZyBjYXNlIHdoZW4gW29mcyA9IGxlblxuICAgPSBTeXMubWF4X3N0cmluZ19sZW5ndGhdIChzbyB0aGF0IGl0IGlzIG5vdCBwb3NzaWJsZSB0byByZXNpemUgdGhlIGJ1ZmZlciBhdFxuICAgYWxsKSwgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4gKilcblxubGV0IGVuc3VyZSBidWYgb2ZzIG4gPVxuICBsZXQgbGVuID0gQnl0ZXMubGVuZ3RoIGJ1ZiBpblxuICBpZiBsZW4gPj0gb2ZzICsgbiB0aGVuIGJ1ZlxuICBlbHNlIGJlZ2luXG4gICAgbGV0IG5ld19sZW4gPSByZWYgbGVuIGluXG4gICAgd2hpbGUgIW5ld19sZW4gPCBvZnMgKyBuIGRvXG4gICAgICBuZXdfbGVuIDo9IDIgKiAhbmV3X2xlbiArIDFcbiAgICBkb25lO1xuICAgIGxldCBuZXdfbGVuID0gIW5ld19sZW4gaW5cbiAgICBsZXQgbmV3X2xlbiA9XG4gICAgICBpZiBuZXdfbGVuIDw9IFN5cy5tYXhfc3RyaW5nX2xlbmd0aCB0aGVuXG4gICAgICAgIG5ld19sZW5cbiAgICAgIGVsc2UgaWYgb2ZzIDwgU3lzLm1heF9zdHJpbmdfbGVuZ3RoIHRoZW5cbiAgICAgICAgU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gICAgICBlbHNlXG4gICAgICAgIGZhaWx3aXRoIFwiSW5fY2hhbm5lbC5pbnB1dF9hbGw6IGNoYW5uZWwgY29udGVudCBcXFxuICAgICAgICAgICAgICAgICAgaXMgbGFyZ2VyIHRoYW4gbWF4aW11bSBzdHJpbmcgbGVuZ3RoXCJcbiAgICBpblxuICAgIGxldCBuZXdfYnVmID0gQnl0ZXMuY3JlYXRlIG5ld19sZW4gaW5cbiAgICBCeXRlcy5ibGl0IGJ1ZiAwIG5ld19idWYgMCBvZnM7XG4gICAgbmV3X2J1ZlxuICBlbmRcblxubGV0IGlucHV0X2FsbCBpYyA9XG4gIGxldCBjaHVua19zaXplID0gNjU1MzYgaW4gKCogSU9fQlVGRkVSX1NJWkUgKilcbiAgbGV0IGluaXRpYWxfc2l6ZSA9XG4gICAgdHJ5XG4gICAgICBTdGRsaWIuaW5fY2hhbm5lbF9sZW5ndGggaWMgLSBTdGRsaWIucG9zX2luIGljXG4gICAgd2l0aCBTeXNfZXJyb3IgXyAtPlxuICAgICAgLTFcbiAgaW5cbiAgbGV0IGluaXRpYWxfc2l6ZSA9IGlmIGluaXRpYWxfc2l6ZSA8IDAgdGhlbiBjaHVua19zaXplIGVsc2UgaW5pdGlhbF9zaXplIGluXG4gIGxldCBpbml0aWFsX3NpemUgPVxuICAgIGlmIGluaXRpYWxfc2l6ZSA8PSBTeXMubWF4X3N0cmluZ19sZW5ndGggdGhlblxuICAgICAgaW5pdGlhbF9zaXplXG4gICAgZWxzZVxuICAgICAgU3lzLm1heF9zdHJpbmdfbGVuZ3RoXG4gIGluXG4gIGxldCBidWYgPSBCeXRlcy5jcmVhdGUgaW5pdGlhbF9zaXplIGluXG4gIGxldCBucmVhZCA9IHJlYWRfdXB0byBpYyBidWYgMCBpbml0aWFsX3NpemUgaW5cbiAgaWYgbnJlYWQgPCBpbml0aWFsX3NpemUgdGhlbiAoKiBFT0YgcmVhY2hlZCwgYnVmZmVyIHBhcnRpYWxseSBmaWxsZWQgKilcbiAgICBCeXRlcy5zdWJfc3RyaW5nIGJ1ZiAwIG5yZWFkXG4gIGVsc2UgYmVnaW4gKCogbnJlYWQgPSBpbml0aWFsX3NpemUsIG1heWJlIEVPRiByZWFjaGVkICopXG4gICAgbWF0Y2ggU3RkbGliLmlucHV0X2NoYXIgaWMgd2l0aFxuICAgIHwgZXhjZXB0aW9uIEVuZF9vZl9maWxlIC0+XG4gICAgICAgICgqIEVPRiByZWFjaGVkLCBidWZmZXIgaXMgY29tcGxldGVseSBmaWxsZWQgKilcbiAgICAgICAgQnl0ZXMudW5zYWZlX3RvX3N0cmluZyBidWZcbiAgICB8IGMgLT5cbiAgICAgICAgKCogRU9GIG5vdCByZWFjaGVkICopXG4gICAgICAgIGxldCByZWMgbG9vcCBidWYgb2ZzID1cbiAgICAgICAgICBsZXQgYnVmID0gZW5zdXJlIGJ1ZiBvZnMgY2h1bmtfc2l6ZSBpblxuICAgICAgICAgIGxldCByZW0gPSBCeXRlcy5sZW5ndGggYnVmIC0gb2ZzIGluXG4gICAgICAgICAgKCogW3JlbV0gY2FuIGJlIDwgW2NodW5rX3NpemVdIGlmIGJ1ZmZlciBzaXplIGNsb3NlIHRvXG4gICAgICAgICAgICAgW1N5cy5tYXhfc3RyaW5nX2xlbmd0aF0gKilcbiAgICAgICAgICBsZXQgciA9IHJlYWRfdXB0byBpYyBidWYgb2ZzIHJlbSBpblxuICAgICAgICAgIGlmIHIgPCByZW0gdGhlbiAoKiBFT0YgcmVhY2hlZCAqKVxuICAgICAgICAgICAgQnl0ZXMuc3ViX3N0cmluZyBidWYgMCAob2ZzICsgcilcbiAgICAgICAgICBlbHNlICgqIHIgPSByZW0gKilcbiAgICAgICAgICAgIGxvb3AgYnVmIChvZnMgKyByZW0pXG4gICAgICAgIGluXG4gICAgICAgIGxldCBidWYgPSBlbnN1cmUgYnVmIG5yZWFkIChjaHVua19zaXplICsgMSkgaW5cbiAgICAgICAgQnl0ZXMuc2V0IGJ1ZiBucmVhZCBjO1xuICAgICAgICBsb29wIGJ1ZiAobnJlYWQgKyAxKVxuICBlbmRcblxubGV0IHNldF9iaW5hcnlfbW9kZSA9IFN0ZGxpYi5zZXRfYmluYXJ5X21vZGVfaW5cbiIsIigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT0NhbWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgIFhhdmllciBMZXJveSwgcHJvamV0IENyaXN0YWwsIElOUklBIFJvY3F1ZW5jb3VydCAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQ29weXJpZ2h0IDIwMjEgSW5zdGl0dXQgTmF0aW9uYWwgZGUgUmVjaGVyY2hlIGVuIEluZm9ybWF0aXF1ZSBldCAgICAgKilcbigqICAgICBlbiBBdXRvbWF0aXF1ZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgICAgKilcbigqICAgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSwgd2l0aCB0aGUgICAgICAgICAgKilcbigqICAgc3BlY2lhbCBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgTElDRU5TRS4gICAgICAgICAgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKilcbigqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKilcblxudHlwZSB0ID0gb3V0X2NoYW5uZWxcblxudHlwZSBvcGVuX2ZsYWcgPSBTdGRsaWIub3Blbl9mbGFnID1cbiAgfCBPcGVuX3Jkb25seVxuICB8IE9wZW5fd3Jvbmx5XG4gIHwgT3Blbl9hcHBlbmRcbiAgfCBPcGVuX2NyZWF0XG4gIHwgT3Blbl90cnVuY1xuICB8IE9wZW5fZXhjbFxuICB8IE9wZW5fYmluYXJ5XG4gIHwgT3Blbl90ZXh0XG4gIHwgT3Blbl9ub25ibG9ja1xuXG5sZXQgc3Rkb3V0ID0gU3RkbGliLnN0ZG91dFxubGV0IHN0ZGVyciA9IFN0ZGxpYi5zdGRlcnJcbmxldCBvcGVuX2JpbiA9IFN0ZGxpYi5vcGVuX291dF9iaW5cbmxldCBvcGVuX3RleHQgPSBTdGRsaWIub3Blbl9vdXRcbmxldCBvcGVuX2dlbiA9IFN0ZGxpYi5vcGVuX291dF9nZW5cblxubGV0IHdpdGhfb3BlbiBvcGVuZnVuIHMgZiA9XG4gIGxldCBvYyA9IG9wZW5mdW4gcyBpblxuICBGdW4ucHJvdGVjdCB+ZmluYWxseTooZnVuICgpIC0+IFN0ZGxpYi5jbG9zZV9vdXRfbm9lcnIgb2MpXG4gICAgKGZ1biAoKSAtPiBmIG9jKVxuXG5sZXQgd2l0aF9vcGVuX2JpbiBzIGYgPVxuICB3aXRoX29wZW4gU3RkbGliLm9wZW5fb3V0X2JpbiBzIGZcblxubGV0IHdpdGhfb3Blbl90ZXh0IHMgZiA9XG4gIHdpdGhfb3BlbiBTdGRsaWIub3Blbl9vdXQgcyBmXG5cbmxldCB3aXRoX29wZW5fZ2VuIGZsYWdzIHBlcm0gcyBmID1cbiAgd2l0aF9vcGVuIChTdGRsaWIub3Blbl9vdXRfZ2VuIGZsYWdzIHBlcm0pIHMgZlxuXG5sZXQgc2VlayA9IFN0ZGxpYi5MYXJnZUZpbGUuc2Vla19vdXRcbmxldCBwb3MgPSBTdGRsaWIuTGFyZ2VGaWxlLnBvc19vdXRcbmxldCBsZW5ndGggPSBTdGRsaWIuTGFyZ2VGaWxlLm91dF9jaGFubmVsX2xlbmd0aFxubGV0IGNsb3NlID0gU3RkbGliLmNsb3NlX291dFxubGV0IGNsb3NlX25vZXJyID0gU3RkbGliLmNsb3NlX291dF9ub2VyclxubGV0IGZsdXNoID0gU3RkbGliLmZsdXNoXG5sZXQgZmx1c2hfYWxsID0gU3RkbGliLmZsdXNoX2FsbFxubGV0IG91dHB1dF9jaGFyID0gU3RkbGliLm91dHB1dF9jaGFyXG5sZXQgb3V0cHV0X2J5dGUgPSBTdGRsaWIub3V0cHV0X2J5dGVcbmxldCBvdXRwdXRfc3RyaW5nID0gU3RkbGliLm91dHB1dF9zdHJpbmdcbmxldCBvdXRwdXRfYnl0ZXMgPSBTdGRsaWIub3V0cHV0X2J5dGVzXG5sZXQgb3V0cHV0ID0gU3RkbGliLm91dHB1dFxubGV0IG91dHB1dF9zdWJzdHJpbmcgPSBTdGRsaWIub3V0cHV0X3N1YnN0cmluZ1xubGV0IHNldF9iaW5hcnlfbW9kZSA9IFN0ZGxpYi5zZXRfYmluYXJ5X21vZGVfb3V0XG5cbmV4dGVybmFsIHNldF9idWZmZXJlZCA6IHQgLT4gYm9vbCAtPiB1bml0ID0gXCJjYW1sX21sX3NldF9idWZmZXJlZFwiXG5cbmV4dGVybmFsIGlzX2J1ZmZlcmVkIDogdCAtPiBib29sID0gXCJjYW1sX21sX2lzX2J1ZmZlcmVkXCJcbiIsIigqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBEYXRlc19jYWxjIGxpYnJhcnkuIENvcHlyaWdodCAoQykgMjAyMiBJbnJpYSxcbiAgIGNvbnRyaWJ1dG9yczogRGVuaXMgTWVyaWdvdXggPGRlbmlzLm1lcmlnb3V4QGlucmlhLmZyPiwgQXltZXJpYyBGcm9taGVyelxuICAgPGF5bWVyaWMuZnJvbWhlcnpAaW5yaWEuZnI+LCBSYXBoYcOrbCBNb25hdCA8cmFwaGFlbC5tb25hdEBsaXA2LmZyPlxuXG4gICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICAgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAgIHRoZSBMaWNlbnNlIGF0XG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZVxuICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXJcbiAgIHRoZSBMaWNlbnNlLiAqKVxuXG5bQEBAd2FybmluZyBcIi0yN1wiXVxuXG5cbnR5cGUgZGF0ZSA9IHsgeWVhciA6IGludDsgbW9udGggOiBpbnQ7IGRheSA6IGludCB9XG4oKiogQSB2YWxpZCBkYXRlIGluIHRoZSBzdGFuZGFyZCBHcmVnb3JpYW4gY2FsZW5kYXIuICopXG5cbnR5cGUgcGVyaW9kID0geyB5ZWFycyA6IGludDsgbW9udGhzIDogaW50OyBkYXlzIDogaW50IH1cbigqKiBBIHBlcmlvZCBjYW4gYmUgYW55IG51bWJlciBhbmQgY29tYmluYXRpb24gb2YgZGF5cywgbW9udGhzLCB5ZWFycy4gKilcblxuZXhjZXB0aW9uIEludmFsaWREYXRlXG5leGNlcHRpb24gQW1iaWd1b3VzQ29tcHV0YXRpb25cblxudHlwZSBkYXRlX3JvdW5kaW5nID1cbiAgfCBSb3VuZFVwXG4gIHwgUm91bmREb3duXG4gIHwgQWJvcnRPblJvdW5kXG4gICAgICAoKiogV2hlbiBjaG9vc2luZyBbQWJvcnRPblJvdW5kXSwgZnVuY3Rpb25zIG1heSByYWlzZVxuICAgICAgICAgIFtBbWJpZ3VvdXNDb21wdXRhdGlvbl0uICopXG5cbigqKiB7MiBGdW5jdGlvbnMgb24gcGVyaW9kc30qKVxubGV0IGZvcm1hdF9wZXJpb2QgKGZtdCA6IEZvcm1hdC5mb3JtYXR0ZXIpIChwIDogcGVyaW9kKSA6IHVuaXQgPVxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCJbJWQgeWVhcnMsICVkIG1vbnRocywgJWQgZGF5c11cIiBwLnllYXJzIHAubW9udGhzIHAuZGF5c1xuXG5sZXQgbWFrZV9wZXJpb2Qgfih5ZWFycyA6IGludCkgfihtb250aHMgOiBpbnQpIH4oZGF5cyA6IGludCkgOiBwZXJpb2QgPVxuICB7IHllYXJzOyBtb250aHM7IGRheXMgfVxuXG5sZXQgYWRkX3BlcmlvZHMgKGQxIDogcGVyaW9kKSAoZDIgOiBwZXJpb2QpIDogcGVyaW9kID1cbiAge1xuICAgIHllYXJzID0gZDEueWVhcnMgKyBkMi55ZWFycztcbiAgICBtb250aHMgPSBkMS5tb250aHMgKyBkMi5tb250aHM7XG4gICAgZGF5cyA9IGQxLmRheXMgKyBkMi5kYXlzO1xuICB9XG5cbmxldCBzdWJfcGVyaW9kcyAoZDEgOiBwZXJpb2QpIChkMiA6IHBlcmlvZCkgOiBwZXJpb2QgPVxuICB7XG4gICAgeWVhcnMgPSBkMS55ZWFycyAtIGQyLnllYXJzO1xuICAgIG1vbnRocyA9IGQxLm1vbnRocyAtIGQyLm1vbnRocztcbiAgICBkYXlzID0gZDEuZGF5cyAtIGQyLmRheXM7XG4gIH1cblxubGV0IG11bF9wZXJpb2QgKGQxIDogcGVyaW9kKSAobSA6IGludCkgOiBwZXJpb2QgPVxuICB7IHllYXJzID0gZDEueWVhcnMgKiBtOyBtb250aHMgPSBkMS5tb250aHMgKiBtOyBkYXlzID0gZDEuZGF5cyAqIG0gfVxuXG4oKiogQHJhaXNlIFtBbWJpZ3VvdXNDb21wdXRhdGlvbl1cbiAgICAgIHdoZW4gdGhlIHBlcmlvZCBpcyBhbnl0aGluZyBlbHNlIHRoYW4gYSBudW1iZXIgb2YgZGF5cy4gKilcbmxldCBwZXJpb2RfdG9fZGF5cyAocCA6IHBlcmlvZCkgOiBpbnQgPVxuICBpZiBwLnllYXJzIDw+IDAgfHwgcC5tb250aHMgPD4gMCB0aGVuIHJhaXNlIEFtYmlndW91c0NvbXB1dGF0aW9uIGVsc2UgcC5kYXlzXG5cbigqKiB7MiBGdW5jdGlvbnMgb24gZGF0ZXN9KilcblxubGV0IGlzX2xlYXBfeWVhciAoeWVhciA6IGludCkgOiBib29sID1cbiAgeWVhciBtb2QgNDAwID0gMCB8fCAoeWVhciBtb2QgNCA9IDAgJiYgeWVhciBtb2QgMTAwIDw+IDApXG5cbigqKiBAcmFpc2UgW0ludmFsaWREYXRlXSopXG5sZXQgZGF5c19pbl9tb250aCB+KG1vbnRoIDogaW50KSB+KGlzX2xlYXBfeWVhciA6IGJvb2wpIDogaW50ID1cbiAgbWF0Y2ggbW9udGggd2l0aFxuICB8IDEgfCAzIHwgNSB8IDcgfCA4IHwgMTAgfCAxMiAtPiAzMVxuICB8IDQgfCA2IHwgOSB8IDExIC0+IDMwXG4gIHwgMiAtPiBpZiBpc19sZWFwX3llYXIgdGhlbiAyOSBlbHNlIDI4XG4gIHwgXyAtPiByYWlzZSBJbnZhbGlkRGF0ZVxuXG5sZXQgaXNfdmFsaWRfZGF0ZSAoZCA6IGRhdGUpIDogYm9vbCA9XG4gIHRyeVxuICAgIGQuZGF5ID49IDFcbiAgICAmJiBkLmRheSA8PSBkYXlzX2luX21vbnRoIH5tb250aDpkLm1vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBkLnllYXIpXG4gIHdpdGggSW52YWxpZERhdGUgLT4gZmFsc2VcblxuKCoqIEByYWlzZSBbSW52YWxpZERhdGVdKilcbmxldCBtYWtlX2RhdGUgfih5ZWFyIDogaW50KSB+KG1vbnRoIDogaW50KSB+KGRheSA6IGludCkgOiBkYXRlID1cbiAgbGV0IGQgPSB7IHllYXI7IG1vbnRoOyBkYXkgfSBpblxuICBpZiBpc192YWxpZF9kYXRlIGQgdGhlbiBkIGVsc2UgcmFpc2UgSW52YWxpZERhdGVcblxuKCoqIFJldHVybnMgbmV3IFt5ZWFyLCBtb250aF0uIFByZWNvbmRpdGlvbjogWzEgPD0gbW9udGggPD0gMTJdICopXG5sZXQgcmVjIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZVxuICAgIH4oeWVhciA6IGludClcbiAgICB+KG1vbnRoIDogaW50KVxuICAgIH4obW9udGhzIDogaW50KSA6IGludCAqIGludCA9XG4gIGxldCBuZXdfbW9udGggPSBtb250aCArIG1vbnRocyBpblxuICBpZiAxIDw9IG5ld19tb250aCAmJiBuZXdfbW9udGggPD0gMTIgdGhlbiB5ZWFyLCBuZXdfbW9udGhcbiAgZWxzZSBpZiBuZXdfbW9udGggPiAxMiB0aGVuXG4gICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOih5ZWFyICsgMSkgfm1vbnRoXG4gICAgICB+bW9udGhzOihtb250aHMgLSAxMilcbiAgZWxzZVxuICAgICgqIG5ld19tb250aCA8PSAwICopXG4gICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOih5ZWFyIC0gMSkgfm1vbnRoXG4gICAgICB+bW9udGhzOihtb250aHMgKyAxMilcblxuKCogSWYgdGhlIGRhdGUgaXMgdmFsaWQsIGRvZXMgbm90aGluZy4gV2UgZXhwZWN0IHRoZSBtb250aCBudW1iZXIgdG8gYmUgYWx3YXlzXG4gICB2YWxpZCB3aGVuIGNhbGxpbmcgdGhpcy4gSWYgdGhlIGRhdGUgaXMgaW52YWxpZCBkdWUgdG8gdGhlIGRheSBudW1iZXIsIHRoZW5cbiAgIHRoaXMgZnVuY3Rpb24gcm91bmRzIGRvd246IGlmIHRoZSBkYXkgbnVtYmVyIGlzID49IGRheXNfaW5fbW9udGgsIHRvIHRoZSBsYXN0XG4gICBkYXkgb2YgdGhlIGN1cnJlbnQgbW9udGguICopXG5sZXQgcHJldl92YWxpZF9kYXRlIChkIDogZGF0ZSkgOiBkYXRlID1cbiAgYXNzZXJ0ICgxIDw9IGQubW9udGggJiYgZC5tb250aCA8PSAxMik7XG4gIGFzc2VydCAoMSA8PSBkLmRheSAmJiBkLmRheSA8PSAzMSk7XG4gIGlmIGlzX3ZhbGlkX2RhdGUgZCB0aGVuIGRcbiAgZWxzZVxuICAgIHtcbiAgICAgIGQgd2l0aFxuICAgICAgZGF5ID0gZGF5c19pbl9tb250aCB+bW9udGg6ZC5tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgZC55ZWFyKTtcbiAgICB9XG5cbigqIElmIHRoZSBkYXRlIGlzIHZhbGlkLCBkb2VzIG5vdGhpbmcuIFdlIGV4cGVjdCB0aGUgbW9udGggbnVtYmVyIHRvIGJlIGFsd2F5c1xuICAgdmFsaWQgd2hlbiBjYWxsaW5nIHRoaXMuIElmIHRoZSBkYXRlIGlzIGludmFsaWQgZHVlIHRvIHRoZSBkYXkgbnVtYmVyLCB0aGVuXG4gICB0aGlzIGZ1bmN0aW9uIHJvdW5kcyBkb3duOiBpZiB0aGUgZGF5IG51bWJlciBpcyA+PSBkYXlzX2luX21vbnRoLCB0byB0aGVcbiAgIGZpcnN0IGRheSBvZiB0aGUgbmV4dCBtb250aC4gKilcbmxldCBuZXh0X3ZhbGlkX2RhdGUgKGQgOiBkYXRlKSA6IGRhdGUgPVxuICBhc3NlcnQgKDEgPD0gZC5tb250aCAmJiBkLm1vbnRoIDw9IDEyKTtcbiAgYXNzZXJ0ICgxIDw9IGQuZGF5ICYmIGQuZGF5IDw9IDMxKTtcbiAgaWYgaXNfdmFsaWRfZGF0ZSBkIHRoZW4gZFxuICBlbHNlXG4gICAgbGV0IG5ld195ZWFyLCBuZXdfbW9udGggPVxuICAgICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+bW9udGhzOjFcbiAgICBpblxuICAgIHsgeWVhciA9IG5ld195ZWFyOyBtb250aCA9IG5ld19tb250aDsgZGF5ID0gMSB9XG5cbmxldCByb3VuZF9kYXRlIH4ocm91bmQgOiBkYXRlX3JvdW5kaW5nKSAobmV3X2RhdGUgOiBkYXRlKSA9XG4gIGlmIGlzX3ZhbGlkX2RhdGUgbmV3X2RhdGUgdGhlbiBuZXdfZGF0ZVxuICBlbHNlXG4gICAgbWF0Y2ggcm91bmQgd2l0aFxuICAgIHwgQWJvcnRPblJvdW5kIC0+IHJhaXNlIEFtYmlndW91c0NvbXB1dGF0aW9uXG4gICAgfCBSb3VuZERvd24gLT4gcHJldl92YWxpZF9kYXRlIG5ld19kYXRlXG4gICAgfCBSb3VuZFVwIC0+IG5leHRfdmFsaWRfZGF0ZSBuZXdfZGF0ZVxuXG4oKiogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGV2ZXIgY2FsbGVkIGZyb20gYGFkZF9kYXRlc2AgYmVsb3cuXG4gICAgSGVuY2UsIGFueSBjYWxsIHRvIGBhZGRfZGF0ZXNfeWVhcnNgIHdpbGwgYmUgZm9sbG93ZWQgYnkgYSBjYWxsXG4gICAgdG8gYGFkZF9kYXRlc19tb250aGAuIFdlIHRoZXJlZm9yZSBwZXJmb3JtIGEgc2luZ2xlIHJvdW5kaW5nXG4gICAgaW4gYGFkZF9kYXRlc19tb250aGAsIHRvIGF2b2lkIGludHJvZHVjaW5nIGFkZGl0aW9uYWwgaW1wcmVjaXNpb24gaGVyZSxcbiAgICBhbmQgdG8gZW5zdXJlIHRoYXQgYWRkaW5nIG4geWVhcnMgKyBtIG1vbnRocyBpcyBhbHdheXMgZXF1aXZhbGVudCB0b1xuICAgIGFkZGluZyAoMTJuICsgbSkgbW9udGhzICopXG5sZXQgYWRkX2RhdGVzX3llYXJzIH4ocm91bmQgOiBkYXRlX3JvdW5kaW5nKSAoZCA6IGRhdGUpICh5ZWFycyA6IGludCkgOiBkYXRlID1cbiAgeyBkIHdpdGggeWVhciA9IGQueWVhciArIHllYXJzIH1cblxubGV0IGFkZF9kYXRlc19tb250aCB+KHJvdW5kIDogZGF0ZV9yb3VuZGluZykgKGQgOiBkYXRlKSAobW9udGhzIDogaW50KSA6IGRhdGUgPVxuICBsZXQgbmV3X3llYXIsIG5ld19tb250aCA9XG4gICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+bW9udGhzXG4gIGluXG4gIGxldCBuZXdfZGF0ZSA9IHsgZCB3aXRoIHllYXIgPSBuZXdfeWVhcjsgbW9udGggPSBuZXdfbW9udGggfSBpblxuICByb3VuZF9kYXRlIH5yb3VuZCBuZXdfZGF0ZVxuXG5sZXQgcmVjIGFkZF9kYXRlc19kYXlzIChkIDogZGF0ZSkgKGRheXMgOiBpbnQpID1cbiAgKCogSGVsbG8sIGRlYXIgcmVhZGVyISBCdWNrbGUgdXAgYmVjYXVzZSBpdCB3aWxsIGJlIGEgaGFyZCByaWRlLiBUaGUgZmlyc3RcbiAgICAgdGhpbmcgdG8gZG8gaGVyZSBpcyB0byByZXRyaWV2ZSBob3cgbWFueSBkYXlzIHRoZXJlIGFyZSBpbiB0aGUgY3VycmVudFxuICAgICBtb250aCBvZiBbZF0uICopXG4gIGxldCBkYXlzX2luX2RfbW9udGggPVxuICAgIGRheXNfaW5fbW9udGggfm1vbnRoOmQubW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIGQueWVhcilcbiAgaW5cbiAgKCogTm93LCB3ZSBjYXNlIGFuYWx5emUgb2YgdGhlIHNpdHVhdGlvbi4gVG8gZG8gdGhhdCwgd2UgYWRkIHRoZSBjdXJyZW50IGRheXNcbiAgICAgb2YgdGhlIG1vbnRoIHdpdGggW2RheXNdLCBhbmQgc2VlIHdoYXQgaGFwcGVucy4gQmV3YXJlLCBbZGF5c10gaXMgYWxnZWJyYWljXG4gICAgIGFuZCBjYW4gYmUgbmVnYXRpdmUhICopXG4gIGxldCBuZXdfZGF5ID0gZC5kYXkgKyBkYXlzIGluXG4gIGlmIDEgPD0gbmV3X2RheSAmJiBuZXdfZGF5IDw9IGRheXNfaW5fZF9tb250aCB0aGVuXG4gICAgKCogVGhlIGZpcnN0IGNhc2UgaXMgdGhlIGVhc3kgb25lOiB3aGVuIHlvdSBhZGQgW2RheXNdLCB0aGUgbmV3IGRheSBrZWVwc1xuICAgICAgIGJlaW5nIGEgdmFsaWQgZGF5IGluIHRoZSBjdXJyZW50IG1vbnRoLiBBbGwgaXMgZ29vZCwgd2Ugc2ltcGx5IHdhcnAgdG9cbiAgICAgICB0aGF0IG5ldyBkYXRlIHdpdGhvdXQgYW55IGZ1cnRoZXIgY2hhbmdlcy4gKilcbiAgICB7IGQgd2l0aCBkYXkgPSBuZXdfZGF5IH1cbiAgZWxzZSBpZiBuZXdfZGF5ID49IGRheXNfaW5fZF9tb250aCB0aGVuXG4gICAgKCogTm93LCB3ZSBkZWFsIHdpdGggdGhlIGNhc2Ugd2hlcmUgdGhlcmUgaXMgYW4gb3ZlcmZsb3cgOiB5b3UgaGF2ZSBhZGRlZFxuICAgICAgIHRvbyBtYW55IGRheXMgYW5kIHRoZSBjdXJyZW50IG1vbnRoIGNhbm5vdCBoYW5kbGUgdGhlbSBhbnkgbW9yZS4gVGhlXG4gICAgICAgc3RyYXRlZ3kgaGVyZSBpcyB0byBmaWxsIHRoZSBjdXJyZW50IG1vbnRoLCBhbmQgbGV0IHRoZSBuZXh0IG1vbnRoIGhhbmRsZVxuICAgICAgIHRoZSBzaXR1YXRpb24gdmlhIGEgcmVjdXJzaXZlIGNhbGwuICopXG4gICAgbGV0IG5ld195ZWFyLCBuZXdfbW9udGggPVxuICAgICAgYWRkX21vbnRoc190b19maXJzdF9vZl9tb250aF9kYXRlIH55ZWFyOmQueWVhciB+bW9udGg6ZC5tb250aCB+bW9udGhzOjFcbiAgICBpblxuICAgIGFkZF9kYXRlc19kYXlzXG4gICAgICAoKiBXZSB3YXJwIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG5leHQgbW9udGghICopXG4gICAgICB7IHllYXIgPSBuZXdfeWVhcjsgbW9udGggPSBuZXdfbW9udGg7IGRheSA9IDEgfVxuICAgICAgKCogTm93IHdlIGNvbXB1dGUgaG93IG1hbnkgZGF5cyB3ZSBzdGlsbCBoYXZlIGxlZnQgdG8gYWRkLiBCZWNhdXNlIHdlIGhhdmVcbiAgICAgICAgIHdhcnBlZCB0byB0aGUgbmV4dCBtb250aCwgd2UgYWxyZWFkeSBoYXZlIGFkZGVkIHRoZSByZXN0IG9mIHRoZSBkYXlzIGluXG4gICAgICAgICB0aGUgY3VycmVudCBtb250aDogW2RheXNfaW5fZF9tb250aCAtIGQuZGF5XS4gQnV0IHRoZW4gd2Ugc3dpdGNoXG4gICAgICAgICBtb250aHMsIGFuZCB0aGF0IGNvcnJlc3BvbmRzIHRvIGFkZGluZyBhbm90aGVyIGRheS4gKilcbiAgICAgIChkYXlzIC0gKGRheXNfaW5fZF9tb250aCAtIGQuZGF5KSAtIDEpXG4gIGVsc2VcbiAgICAoKiBUaGUgbGFzdCBjYXNlIGlzIHN5bW1ldHJpY2FsLCB3ZSBzdWJzdHJhY3RlZCB0b28gbWFueSBkYXlzIGFuZCB0aGVcbiAgICAgICBjdXJyZW50IG1vbnRoIGNhbid0IGhhbmRsZSBpdC4gU28gd2Ugd2FycCB0byB0aGUgcHJldmlvdXMgbW9udGggYW5kIGxldCBhXG4gICAgICAgcmVjdXJzaXZlIGNhbGwgaGFuZGxlIHRoZSBzaXR1YXRpb24gZnJvbSB0aGVyZS4gKilcbiAgICBsZXQgbmV3X3llYXIsIG5ld19tb250aCA9XG4gICAgICBhZGRfbW9udGhzX3RvX2ZpcnN0X29mX21vbnRoX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5tb250aHM6KC0xKVxuICAgIGluXG4gICAgYWRkX2RhdGVzX2RheXNcbiAgICAgICgqIFdlIHdhcnAgdG8gdGhlIGxhc3QgZGF5IG9mIHRoZSBwcmV2aW91cyBtb250aC4gKilcbiAgICAgIHtcbiAgICAgICAgeWVhciA9IG5ld195ZWFyO1xuICAgICAgICBtb250aCA9IG5ld19tb250aDtcbiAgICAgICAgZGF5ID1cbiAgICAgICAgICBkYXlzX2luX21vbnRoIH5tb250aDpuZXdfbW9udGggfmlzX2xlYXBfeWVhcjooaXNfbGVhcF95ZWFyIG5ld195ZWFyKTtcbiAgICAgIH1cbiAgICAgICgqIFdoYXQgcmVtYWlucyB0byBiZSBzdWJzdHJhY3RlZCAoYXMgW2RheXNdIGlzIG5lZ2F0aXZlKSBoYXMgdG8gYmVcbiAgICAgICAgIGRpbWluaXNoZWQgYnkgdGhlIG51bWJlciBvZiBkYXlzIG9mIHRoZSBkYXRlIGluIHRoZSBjdXJyZW50IG1vbnRoLiAqKVxuICAgICAgKGRheXMgKyBkLmRheSlcblxuKCoqIEByYWlzZSBbQW1iaWd1b3VzQ29tcHV0YXRpb25dICopXG5sZXQgYWRkX2RhdGVzID8ocm91bmQgOiBkYXRlX3JvdW5kaW5nID0gQWJvcnRPblJvdW5kKSAoZCA6IGRhdGUpIChwIDogcGVyaW9kKSA6XG4gICAgZGF0ZSA9XG4gIGxldCBkID0gYWRkX2RhdGVzX3llYXJzIH5yb3VuZCBkIHAueWVhcnMgaW5cbiAgbGV0IGQgPSBhZGRfZGF0ZXNfbW9udGggfnJvdW5kIGQgcC5tb250aHMgaW5cbiAgbGV0IGQgPSBhZGRfZGF0ZXNfZGF5cyBkIHAuZGF5cyBpblxuICBkXG5cbmxldCBjb21wYXJlX2RhdGVzIChkMSA6IGRhdGUpIChkMiA6IGRhdGUpIDogaW50ID1cbiAgaWYgSW50LmNvbXBhcmUgZDEueWVhciBkMi55ZWFyID0gMCB0aGVuXG4gICAgaWYgSW50LmNvbXBhcmUgZDEubW9udGggZDIubW9udGggPSAwIHRoZW4gSW50LmNvbXBhcmUgZDEuZGF5IGQyLmRheVxuICAgIGVsc2UgSW50LmNvbXBhcmUgZDEubW9udGggZDIubW9udGhcbiAgZWxzZSBJbnQuY29tcGFyZSBkMS55ZWFyIGQyLnllYXJcblxuKCoqIFJlc3BlY3RzIElTTzg2MDEgZm9ybWF0LiAqKVxubGV0IGZvcm1hdF9kYXRlIChmbXQgOiBGb3JtYXQuZm9ybWF0dGVyKSAoZCA6IGRhdGUpIDogdW5pdCA9XG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiUwNGQtJTAyZC0lMDJkXCIgZC55ZWFyIGQubW9udGggZC5kYXlcblxubGV0IGZpcnN0X2RheV9vZl9tb250aCAoZCA6IGRhdGUpIDogZGF0ZSA9XG4gIGFzc2VydChpc192YWxpZF9kYXRlIGQpO1xuICBtYWtlX2RhdGUgfnllYXI6ZC55ZWFyIH5tb250aDpkLm1vbnRoIH5kYXk6MVxuXG5sZXQgbGFzdF9kYXlfb2ZfbW9udGggKGQgOiBkYXRlKSA6IGRhdGUgPVxuICBhc3NlcnQoaXNfdmFsaWRfZGF0ZSBkKTtcbiAgbGV0IGRheXNfbW9udGggPSBkYXlzX2luX21vbnRoIH5tb250aDpkLm1vbnRoIH5pc19sZWFwX3llYXI6KGlzX2xlYXBfeWVhciBkLnllYXIpIGluXG4gIG1ha2VfZGF0ZSB+eWVhcjpkLnllYXIgfm1vbnRoOmQubW9udGggfmRheTpkYXlzX21vbnRoXG5cbmxldCBuZWdfcGVyaW9kIChwIDogcGVyaW9kKSA6IHBlcmlvZCA9XG4gIHsgeWVhcnMgPSAtcC55ZWFyczsgbW9udGhzID0gLXAubW9udGhzOyBkYXlzID0gLXAuZGF5cyB9XG5cbigqKiBUaGUgcmV0dXJuZWQgW3BlcmlvZF0gaXMgYWx3YXlzIGV4cHJlc3NlZCBhcyBhIG51bWJlciBvZiBkYXlzLiAqKVxubGV0IHJlYyBzdWJfZGF0ZXMgKGQxIDogZGF0ZSkgKGQyIDogZGF0ZSkgOiBwZXJpb2QgPVxuICBpZiBkMS55ZWFyID0gZDIueWVhciAmJiBkMS5tb250aCA9IGQyLm1vbnRoIHRoZW5cbiAgICAoKiBFYXN5IGNhc2U6IHRoZSB0d28gZGF0ZXMgYXJlIGluIHRoZSBzYW1lIG1vbnRoLiAqKVxuICAgIG1ha2VfcGVyaW9kIH55ZWFyczowIH5tb250aHM6MCB+ZGF5czooZDEuZGF5IC0gZDIuZGF5KVxuICBlbHNlXG4gICAgKCogT3RoZXJ3aXNlIHdlJ2xsIGFkZCBhIG1vbnRoIGZvcndhcmQgaWYgZDIgaXMgYWZ0ZXIgZDEuKilcbiAgICBsZXQgY21wID0gY29tcGFyZV9kYXRlcyBkMSBkMiBpblxuICAgIGlmIGNtcCA8IDAgdGhlblxuICAgICAgKCogVGhlIGNhc2Ugd2VyZSBkMSBpcyBhZnRlciBkMiBpcyBzeW1tZXRyaWNhbCBzbyB3ZSBoYW5kbGUgaXQgdmlhIGFcbiAgICAgICAgIHJlY3Vyc2l2ZSBjYWxsIGNoYW5naW5nIHRoZSBvcmRlciBvZiB0aGUgYXJndW1lbnRzLiAqKVxuICAgICAgbmVnX3BlcmlvZCAoc3ViX2RhdGVzIGQyIGQxKVxuICAgIGVsc2VcbiAgICAgICgqIHdlIGtub3cgY21wICE9IDAgc28gY21wID4gMCopXG4gICAgICAoKiBXZSB3YXJwIGQxIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIG5leHQgbW9udGguICopXG4gICAgICBsZXQgbmV3X2QyX3llYXIsIG5ld19kMl9tb250aCA9XG4gICAgICAgIGFkZF9tb250aHNfdG9fZmlyc3Rfb2ZfbW9udGhfZGF0ZSB+eWVhcjpkMi55ZWFyIH5tb250aDpkMi5tb250aFxuICAgICAgICAgIH5tb250aHM6MVxuICAgICAgaW5cbiAgICAgIGxldCBuZXdfZDIgPSB7IHllYXIgPSBuZXdfZDJfeWVhcjsgbW9udGggPSBuZXdfZDJfbW9udGg7IGRheSA9IDEgfSBpblxuICAgICAgKCogTmV4dCB3ZSBkaXZpZGUgdGhlIHJlc3VsdCBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgZGF5cyB3ZSd2ZSBhZGRlZCB0byBnb1xuICAgICAgICAgdG8gdGhlIGVuZCBvZiB0aGUgbW9udGgsIGFuZCB0aGUgcmVtYWluaW5nIGhhbmRsZWQgYnkgYSByZWN1cnNpdmVcbiAgICAgICAgIGNhbGwuICopXG4gICAgICBhZGRfcGVyaW9kc1xuICAgICAgICAobWFrZV9wZXJpb2QgfnllYXJzOjAgfm1vbnRoczowXG4gICAgICAgICAgIH5kYXlzOlxuICAgICAgICAgICAgICgqIFRoZSBudW1iZXIgb2YgZGF5cyBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsYXN0IGRheSBvZiB0aGVcbiAgICAgICAgICAgICAgICBtb250aCBhbmQgdGhlIGN1cnJlbnQgZGF5IG9mIGQxLCBwbHVzIG9uZSBkYXkgYmVjYXVzZSB3ZSBnbyB0b1xuICAgICAgICAgICAgICAgIHRoZSBuZXh0IG1vbnRoLiAqKVxuICAgICAgICAgICAgIChkYXlzX2luX21vbnRoIH5tb250aDpkMi5tb250aCB+aXNfbGVhcF95ZWFyOihpc19sZWFwX3llYXIgZDIueWVhcilcbiAgICAgICAgICAgICAtIGQyLmRheSArIDEpKVxuICAgICAgICAoc3ViX2RhdGVzIGQxIG5ld19kMilcblxubGV0IGRhdGVfdG9feW1kIChkIDogZGF0ZSkgOiBpbnQgKiBpbnQgKiBpbnQgPSBkLnllYXIsIGQubW9udGgsIGQuZGF5XG5cbmxldCBwZXJpb2RfdG9feW1kcyAocCA6IHBlcmlvZCkgOiBpbnQgKiBpbnQgKiBpbnQgPSBwLnllYXJzLCBwLm1vbnRocywgcC5kYXlzXG4iLCIjIDEgXCJjb21tb24ubWxcIlxubGV0IHZlcnNpb24gPSBcIjIuMC4yXCJcblxuZXhjZXB0aW9uIEpzb25fZXJyb3Igb2Ygc3RyaW5nXG5cbmxldCBqc29uX2Vycm9yIHMgPSByYWlzZSAoSnNvbl9lcnJvciBzKVxuXG5leGNlcHRpb24gRW5kX29mX2FycmF5XG5leGNlcHRpb24gRW5kX29mX29iamVjdFxuZXhjZXB0aW9uIEVuZF9vZl90dXBsZVxuZXhjZXB0aW9uIEVuZF9vZl9pbnB1dFxuXG50eXBlIGluX3BhcmFtID0ge1xuICBzdHJpbmdfYnVmIDogQnVmZmVyLnRcbn1cblxubGV0IGNyZWF0ZV9pbl9wYXJhbSA/KGxlbiA9IDI1NikgKCkgPSB7XG4gIHN0cmluZ19idWYgPSBCdWZmZXIuY3JlYXRlIGxlblxufVxuXG5cbmxldCB1dGY4X29mX2NvZGUgYnVmIHggPVxuICBsZXQgYWRkID0gQnVmZmVyLmFkZF9jaGFyIGluXG5cbiAgKCogU3RyYWlnaHQgPD0gZG9lc24ndCB3b3JrIHdpdGggc2lnbmVkIDMxLWJpdCBpbnRzICopXG4gIGxldCBtYXhiaXRzIG4geCA9IHggbHNyIG4gPSAwIGluXG5cbiAgaWYgbWF4Yml0cyA3IHggdGhlblxuICAgICgqIDcgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociB4KVxuICBlbHNlIGlmIG1heGJpdHMgMTEgeCB0aGVuIChcbiAgICAoKiA1ICsgNiAqKVxuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjExMDAwMDAwIGxvciAoKHggbHNyIDYpIGxhbmQgMGIwMDAxMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKHggICAgICAgICBsYW5kIDBiMDAxMTExMTEpKSlcbiAgKVxuICBlbHNlIGlmIG1heGJpdHMgMTYgeCB0aGVuIChcbiAgICAoKiA0ICsgNiArIDYgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMTEwMDAwMCBsb3IgKCh4IGxzciAxMikgbGFuZCAwYjAwMDAxMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyICA2KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICh4ICAgICAgICAgIGxhbmQgMGIwMDExMTExMSkpKVxuICApXG4gIGVsc2UgaWYgbWF4Yml0cyAyMSB4IHRoZW4gKFxuICAgICgqIDMgKyA2ICsgNiArIDYgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMTExMDAwMCBsb3IgKCh4IGxzciAxOCkgbGFuZCAwYjAwMDAwMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDEyKSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgIDYpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKHggICAgICAgICAgbGFuZCAwYjAwMTExMTExKSkpO1xuICApXG4gIGVsc2UgaWYgbWF4Yml0cyAyNiB4IHRoZW4gKFxuICAgICgqIDIgKyA2ICsgNiArIDYgKyA2ICopXG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTExMTEwMDAgbG9yICgoeCBsc3IgMjQpIGxhbmQgMGIwMDAwMDAxMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAxOCkgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDEyKSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgIDYpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKHggICAgICAgICAgbGFuZCAwYjAwMTExMTExKSkpO1xuICApXG4gIGVsc2UgKFxuICAgIGFzc2VydCAobWF4Yml0cyAzMSB4KTtcbiAgICAoKiAxICsgNiArIDYgKyA2ICsgNiArIDYgKilcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMTExMTEwMCBsb3IgKCh4IGxzciAzMCkgbGFuZCAwYjAwMDAwMDAxKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyIDI0KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICgoeCBsc3IgMTgpIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgICBhZGQgYnVmIChDaGFyLmNociAoMGIxMDAwMDAwMCBsb3IgKCh4IGxzciAxMikgbGFuZCAwYjAwMTExMTExKSkpO1xuICAgIGFkZCBidWYgKENoYXIuY2hyICgwYjEwMDAwMDAwIGxvciAoKHggbHNyICA2KSBsYW5kIDBiMDAxMTExMTEpKSk7XG4gICAgYWRkIGJ1ZiAoQ2hhci5jaHIgKDBiMTAwMDAwMDAgbG9yICh4ICAgICAgICAgIGxhbmQgMGIwMDExMTExMSkpKTtcbiAgKVxuXG5sZXQgY29kZV9vZl9zdXJyb2dhdGVfcGFpciBpIGogPVxuICBsZXQgaGlnaDEwID0gaSAtIDB4RDgwMCBpblxuICBsZXQgbG93MTAgPSBqIC0gMHhEQzAwIGluXG4gIDB4MTAwMDAgKyAoKGhpZ2gxMCBsc2wgMTApIGxvciBsb3cxMClcblxubGV0IHV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIgYnVmIGkgaiA9XG4gIHV0Zjhfb2ZfY29kZSBidWYgKGNvZGVfb2Zfc3Vycm9nYXRlX3BhaXIgaSBqKVxuXG50eXBlIGxleGVyX3N0YXRlID0ge1xuICBidWYgOiBCdWZmZXIudDtcbiAgICAoKiBCdWZmZXIgdXNlZCB0byBhY2N1bXVsYXRlIHN1YnN0cmluZ3MgKilcblxuICBtdXRhYmxlIGxudW0gOiBpbnQ7XG4gICAgKCogQ3VycmVudCBsaW5lIG51bWJlciAoc3RhcnRpbmcgZnJvbSAxKSAqKVxuXG4gIG11dGFibGUgYm9sIDogaW50O1xuICAgICgqIEFic29sdXRlIHBvc2l0aW9uIG9mIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIGN1cnJlbnQgbGluZVxuICAgICAgIChzdGFydGluZyBmcm9tIDApICopXG5cbiAgbXV0YWJsZSBmbmFtZSA6IHN0cmluZyBvcHRpb247XG4gICAgKCogTmFtZSBkZXNjcmliaW5nIHRoZSBpbnB1dCBmaWxlICopXG59XG5cbm1vZHVsZSBMZXhlcl9zdGF0ZSA9XG5zdHJ1Y3RcbiAgdHlwZSB0ID0gbGV4ZXJfc3RhdGUgPSB7XG4gICAgYnVmIDogQnVmZmVyLnQ7XG4gICAgbXV0YWJsZSBsbnVtIDogaW50O1xuICAgIG11dGFibGUgYm9sIDogaW50O1xuICAgIG11dGFibGUgZm5hbWUgOiBzdHJpbmcgb3B0aW9uO1xuICB9XG5lbmRcblxubGV0IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgPyhsbnVtID0gMSkgKCkgPVxuICBsZXQgYnVmID1cbiAgICBtYXRjaCBidWYgd2l0aFxuXHROb25lIC0+IEJ1ZmZlci5jcmVhdGUgMjU2XG4gICAgICB8IFNvbWUgYnVmIC0+IGJ1ZlxuICBpblxuICB7XG4gICAgYnVmID0gYnVmO1xuICAgIGxudW0gPSBsbnVtO1xuICAgIGJvbCA9IDA7XG4gICAgZm5hbWUgPSBmbmFtZVxuICB9XG5cbiMgMSBcInR5cGUubWxcIlxuKCoqIHszIFR5cGUgb2YgdGhlIEpTT04gdHJlZX0gKilcblxudHlwZSB0ID1cbiAgICBbXG4gICAgfCBgTnVsbFxuICAgIHwgYEJvb2wgb2YgYm9vbFxuICAgIFxuIyA4IFwidHlwZS5tbFwiXG4gICAgfCBgSW50IG9mIGludFxuICAgIFxuIyAxMSBcInR5cGUubWxcIlxuICAgIHwgYEludGxpdCBvZiBzdHJpbmdcbiAgICBcbiMgMTQgXCJ0eXBlLm1sXCJcbiAgICB8IGBGbG9hdCBvZiBmbG9hdFxuICAgIFxuIyAxNyBcInR5cGUubWxcIlxuICAgIHwgYEZsb2F0bGl0IG9mIHN0cmluZ1xuICAgIFxuIyAyMCBcInR5cGUubWxcIlxuICAgIHwgYFN0cmluZyBvZiBzdHJpbmdcbiAgICBcbiMgMjMgXCJ0eXBlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDI1IFwidHlwZS5tbFwiXG4gICAgfCBgQXNzb2Mgb2YgKHN0cmluZyAqIHQpIGxpc3RcbiAgICB8IGBMaXN0IG9mIHQgbGlzdFxuICAgIFxuIyAyOCBcInR5cGUubWxcIlxuICAgIHwgYFR1cGxlIG9mIHQgbGlzdFxuICAgIFxuIyAzMSBcInR5cGUubWxcIlxuICAgIHwgYFZhcmlhbnQgb2YgKHN0cmluZyAqIHQgb3B0aW9uKVxuICAgIFxuIyAzMyBcInR5cGUubWxcIlxuICAgIF1cbigqKlxuQWxsIHBvc3NpYmxlIGNhc2VzIGRlZmluZWQgaW4gWW9qc29uOlxuLSBgTnVsbDogSlNPTiBudWxsXG4tIGBCb29sIG9mIGJvb2w6IEpTT04gYm9vbGVhblxuLSBgSW50IG9mIGludDogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LlxuLSBgSW50bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgRmxvYXQgb2YgZmxvYXQ6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTi5cbi0gYEZsb2F0bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgU3RyaW5nIG9mIHN0cmluZzogSlNPTiBzdHJpbmcuIEJ5dGVzIGluIHRoZSByYW5nZSAxMjgtMjU1IGFyZSBwcmVzZXJ2ZWRcblx0ICAgIGFzLWlzIHdpdGhvdXQgZW5jb2RpbmcgdmFsaWRhdGlvbiBmb3IgYm90aCByZWFkaW5nXG5cdCAgICBhbmQgd3JpdGluZy5cbi0gYFN0cmluZ2xpdCBvZiBzdHJpbmc6IEpTT04gc3RyaW5nIGxpdGVyYWwgaW5jbHVkaW5nIHRoZSBkb3VibGUgcXVvdGVzLlxuLSBgQXNzb2Mgb2YgKHN0cmluZyAqIGpzb24pIGxpc3Q6IEpTT04gb2JqZWN0LlxuLSBgTGlzdCBvZiBqc29uIGxpc3Q6IEpTT04gYXJyYXkuXG4tIGBUdXBsZSBvZiBqc29uIGxpc3Q6IFR1cGxlIChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbKFwiYWJjXCIsIDEyMyldLlxuLSBgVmFyaWFudCBvZiAoc3RyaW5nICoganNvbiBvcHRpb24pOiBWYXJpYW50IChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbPFwiRm9vXCI+XSBvciBbPFwiQmFyXCI6MTIzPl0uXG4qKVxuXG4oKlxuICBOb3RlIHRvIGFkdmVudHVyZXJzOiBvY2FtbGRvYyBkb2VzIG5vdCBzdXBwb3J0IGlubGluZSBjb21tZW50c1xuICBvbiBlYWNoIHBvbHltb3JwaGljIHZhcmlhbnQsIGFuZCBjcHBvIGRvZXNuJ3QgYWxsb3cgdG8gY29uY2F0ZW5hdGVcbiAgY29tbWVudHMsIHNvIGl0IHdvdWxkIGJlIGNvbXBsaWNhdGVkIHRvIGRvY3VtZW50IG9ubHkgdGhlXG4gIGNhc2VzIHRoYXQgYXJlIHByZXNlcnZlZCBieSBjcHBvIGluIHRoZSB0eXBlIGRlZmluaXRpb24uXG4qKVxuIyAxIFwid3JpdGUubWxcIlxuKCogaW5jbHVkZWQ6IHR5cGUubWwgKilcblxubGV0IGhleCBuID1cbiAgQ2hhci5jaHIgKFxuICAgIGlmIG4gPCAxMCB0aGVuIG4gKyA0OFxuICAgIGVsc2UgbiArIDg3XG4gIClcblxubGV0IHdyaXRlX3NwZWNpYWwgc3JjIHN0YXJ0IHN0b3Agb2Igc3RyID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN0cjtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IHdyaXRlX2NvbnRyb2xfY2hhciBzcmMgc3RhcnQgc3RvcCBvYiBjID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiXFxcXHUwMFwiO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbHNyIDQpKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxhbmQgMHhmKSk7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCBmaW5pc2hfc3RyaW5nIHNyYyBzdGFydCBvYiA9XG4gIHRyeVxuICAgIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KVxuICB3aXRoIGV4YyAtPlxuICAgIFByaW50Zi5lcHJpbnRmIFwic3JjPSVTIHN0YXJ0PSVpIGxlbj0laVxcbiUhXCJcbiAgICAgIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KTtcbiAgICByYWlzZSBleGNcblxubGV0IHdyaXRlX3N0cmluZ19ib2R5IG9iIHMgPVxuICBsZXQgc3RhcnQgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgJ1wiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFwiXCJcbiAgICAgIHwgJ1xcXFwnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXFxcIlxuICAgICAgfCAnXFxiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxiXCJcbiAgICAgIHwgJ1xcMDEyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxmXCJcbiAgICAgIHwgJ1xcbicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcblwiXG4gICAgICB8ICdcXHInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHJcIlxuICAgICAgfCAnXFx0JyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFx0XCJcbiAgICAgIHwgJ1xceDAwJy4uJ1xceDFGJ1xuICAgICAgfCAnXFx4N0YnIGFzIGMgLT4gd3JpdGVfY29udHJvbF9jaGFyIHMgc3RhcnQgaSBvYiBjXG4gICAgICB8IF8gLT4gKClcbiAgZG9uZTtcbiAgZmluaXNoX3N0cmluZyBzIHN0YXJ0IG9iXG5cbmxldCB3cml0ZV9zdHJpbmcgb2IgcyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInO1xuICB3cml0ZV9zdHJpbmdfYm9keSBvYiBzO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJ1xuXG5sZXQganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDEwIGluXG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICBCdWZmZXIuY29udGVudHMgb2JcblxubGV0IHRlc3Rfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgMjU2IGluXG4gIGZvciBpID0gMCB0byAyNTUgZG9cbiAgICBCeXRlcy5zZXQgcyBpIChDaGFyLmNociBpKVxuICBkb25lO1xuICBqc29uX3N0cmluZ19vZl9zdHJpbmcgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG5cbmxldCB3cml0ZV9udWxsIG9iICgpID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJudWxsXCJcblxubGV0IHdyaXRlX2Jvb2wgb2IgeCA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4IHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCIpXG5cblxubGV0IG1heF9kaWdpdHMgPVxuICBtYXhcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtYXhfaW50KSlcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtaW5faW50KSlcblxubGV0IGRlYyBuID1cbiAgQ2hhci5jaHIgKG4gKyA0OClcblxubGV0IHJlYyB3cml0ZV9kaWdpdHMgcyB4ID1cbiAgaWYgeCA9IDAgdGhlbiAoKVxuICBlbHNlXG4gICAgbGV0IGQgPSB4IG1vZCAxMCBpblxuICAgIHdyaXRlX2RpZ2l0cyBzICh4IC8gMTApO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBzIChkZWMgKGFicyBkKSlcblxubGV0IHdyaXRlX2ludCBvYiB4ID1cbiAgaWYgeCA+IDAgdGhlblxuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIGVsc2UgaWYgeCA8IDAgdGhlbiAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICctJztcbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICApXG4gIGVsc2VcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzAnXG5cblxubGV0IGpzb25fc3RyaW5nX29mX2ludCBpID1cbiAgc3RyaW5nX29mX2ludCBpXG5cblxuKCpcbiAgRW5zdXJlIHRoYXQgdGhlIGZsb2F0IGlzIG5vdCBwcmludGVkIGFzIGFuIGludC5cbiAgVGhpcyBpcyBub3QgcmVxdWlyZWQgYnkgSlNPTiwgYnV0IHVzZWZ1bCBpbiBvcmRlciB0byBndWFyYW50ZWVcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgZmxvYXRfbmVlZHNfcGVyaW9kIHMgPVxuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAgICcwJy4uJzknIHwgJy0nIC0+ICgpXG4gICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgZG9uZTtcbiAgICB0cnVlXG4gIHdpdGggRXhpdCAtPlxuICAgIGZhbHNlXG5cbigqXG4gIEd1YXJhbnRlZXMgdGhhdCBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGRpZ2l0cyBhcmUgcHJpbnRlZCBpbiBvcmRlciB0byBhbGxvd1xuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCB3cml0ZV9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbmxldCB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBsZXQgb3BlbiBQcmludGYgaW5cbiAgbGV0IHMgPVxuICAgIG1hdGNoIHNpZ25pZmljYW50X2ZpZ3VyZXMgd2l0aFxuICAgICAgICAxIC0+IHNwcmludGYgXCIlLjFnXCIgeFxuICAgICAgfCAyIC0+IHNwcmludGYgXCIlLjJnXCIgeFxuICAgICAgfCAzIC0+IHNwcmludGYgXCIlLjNnXCIgeFxuICAgICAgfCA0IC0+IHNwcmludGYgXCIlLjRnXCIgeFxuICAgICAgfCA1IC0+IHNwcmludGYgXCIlLjVnXCIgeFxuICAgICAgfCA2IC0+IHNwcmludGYgXCIlLjZnXCIgeFxuICAgICAgfCA3IC0+IHNwcmludGYgXCIlLjdnXCIgeFxuICAgICAgfCA4IC0+IHNwcmludGYgXCIlLjhnXCIgeFxuICAgICAgfCA5IC0+IHNwcmludGYgXCIlLjlnXCIgeFxuICAgICAgfCAxMCAtPiBzcHJpbnRmIFwiJS4xMGdcIiB4XG4gICAgICB8IDExIC0+IHNwcmludGYgXCIlLjExZ1wiIHhcbiAgICAgIHwgMTIgLT4gc3ByaW50ZiBcIiUuMTJnXCIgeFxuICAgICAgfCAxMyAtPiBzcHJpbnRmIFwiJS4xM2dcIiB4XG4gICAgICB8IDE0IC0+IHNwcmludGYgXCIlLjE0Z1wiIHhcbiAgICAgIHwgMTUgLT4gc3ByaW50ZiBcIiUuMTVnXCIgeFxuICAgICAgfCAxNiAtPiBzcHJpbnRmIFwiJS4xNmdcIiB4XG4gICAgICB8IF8gLT4gc3ByaW50ZiBcIiUuMTdnXCIgeFxuICBpblxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBqc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgd3JpdGVfc3RkX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX3N0ZF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQgc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX3N0ZF9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgdGVzdF9mbG9hdCAoKSA9XG4gIGxldCBsID0gWyAwLjsgMS47IC0xLiBdIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiAyLiAqLiB4ICsuIDEuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4IC8uIHNxcnQgMi4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gc3FydCAzLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCBjb3MgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiAxLjIzZTUwKSBsIGluXG4gIGxldCBsID0gbCBAIFsgaW5maW5pdHk7IG5lZ19pbmZpbml0eSBdIGluXG4gIExpc3QuaXRlciAoXG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzID0gUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHggaW5cbiAgICAgIGxldCB5ID0gZmxvYXRfb2Zfc3RyaW5nIHMgaW5cbiAgICAgIFByaW50Zi5wcmludGYgXCIlZyAlZyAlUyAlQlxcblwiIHggeSBzICh4ID0geSlcbiAgKVxuICAgIGxcblxuKCpcbmxldCAoKSA9IHRlc3RfZmxvYXQgKClcbiopXG5cbmxldCB3cml0ZV9pbnRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX2Zsb2F0bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9zdHJpbmdsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xuXG5sZXQgcmVjIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9zZXAgeDtcbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGl0ZXIyIGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBmX3NlcCBvYiA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCdcblxubGV0IHJlYyB3cml0ZV9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDI2NCBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAyNjcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzAgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9mbG9hdCBvYiBmXG4gICAgXG4jIDI3MyBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMjc2IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3OSBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI4MSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfbGlzdCBvYiBsXG4gICAgXG4jIDI4NCBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3R1cGxlIG9iIGxcbiAgICBcbiMgMjg3IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMjkwIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzA2IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJygnO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKSdcblxuIyAzMTMgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdmFyaWFudCBvYiBzIG8gPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJzwnO1xuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgKG1hdGNoIG8gd2l0aFxuICAgICAgIE5vbmUgLT4gKClcbiAgICAgfCBTb21lIHggLT5cbiAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgICAgICB3cml0ZV9qc29uIG9iIHhcbiAgKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc+J1xuXG4jIDMyNSBcIndyaXRlLm1sXCJcbmxldCB3cml0ZV90ID0gd3JpdGVfanNvblxuXG5sZXQgcmVjIHdyaXRlX3N0ZF9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDMzMiBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAzMzUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzMzggXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9zdGRfZmxvYXQgb2IgZlxuICAgIFxuIyAzNDEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0NCBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAzNDkgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9zdGRfYXNzb2Mgb2IgbFxuICAgIHwgYExpc3QgbCAtPiB3cml0ZV9zdGRfbGlzdCBvYiBsXG4gICAgXG4jIDM1MiBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3N0ZF90dXBsZSBvYiBsXG4gICAgXG4jIDM1NSBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG9cblxuIyAzNTggXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX3N0ZF9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbmFuZCB3cml0ZV9zdGRfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuIyAzNzkgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvID1cbiAgbWF0Y2ggbyB3aXRoXG4gICAgICBOb25lIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgfCBTb21lIHggLT5cbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgICAgICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCc7XG4gICAgICAgIHdyaXRlX3N0ZF9qc29uIG9iIHg7XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuXG4jIDM5MSBcIndyaXRlLm1sXCJcbmxldCB0b19idWZmZXIgPyhzdWYgPSBcIlwiKSA/KHN0ZCA9IGZhbHNlKSBvYiB4ID1cbiAgaWYgc3RkIHRoZW5cbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGVsc2VcbiAgICB3cml0ZV9qc29uIG9iIHg7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN1ZlxuXG5sZXQgdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcIikgP3N0ZCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHRvX2NoYW5uZWwgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb2MgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19vdXRwdXQgP2J1ZiA/KGxlbj00MDk2KSA/KHN1ZiA9IFwiXCIpID9zdGQgb3V0IHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgb3V0I291dHB1dCAoQnVmZmVyLmNvbnRlbnRzIG9iKSAwIChCdWZmZXIubGVuZ3RoIG9iKTtcbiAgQnVmZmVyLmNsZWFyIG9iXG5cbmxldCB0b19maWxlID9sZW4gP3N0ZCA/KHN1ZiA9IFwiXFxuXCIpIGZpbGUgeCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyB4O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5sZXQgc2VxX3RvX2J1ZmZlciA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Igc3QgPVxuICBTZXEuaXRlciAodG9fYnVmZmVyIH5zdWYgP3N0ZCBvYikgc3RcblxubGV0IHNlcV90b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIHN0ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT5cbiAgICAgICAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICAgICAgICAgb2JcbiAgaW5cbiAgc2VxX3RvX2J1ZmZlciB+c3VmID9zdGQgb2Igc3Q7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgc2VxX3RvX2NoYW5uZWwgP2J1ZiA/KGxlbj0yMDk2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgb2Mgc2VxID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICBTZXEuaXRlciAoZnVuIGpzb24gLT5cbiAgICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIGpzb247XG4gICAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gICAgQnVmZmVyLmNsZWFyIG9iO1xuICApIHNlcVxuXG5sZXQgc2VxX3RvX2ZpbGUgP2xlbiA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgZmlsZSBzdCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IGZpbGUgaW5cbiAgdHJ5XG4gICAgc2VxX3RvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2Mgc3Q7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cblxubGV0IHJlYyBzb3J0ID0gZnVuY3Rpb25cbiAgfCBgQXNzb2MgbCAtPlxuICAgICAgbGV0IGwgPSBMaXN0LnJldiAoTGlzdC5yZXZfbWFwIChmdW4gKGssIHYpIC0+IChrLCBzb3J0IHYpKSBsKSBpblxuICAgICAgYEFzc29jIChMaXN0LnN0YWJsZV9zb3J0IChmdW4gKGEsIF8pIChiLCBfKSAtPiBTdHJpbmcuY29tcGFyZSBhIGIpIGwpXG4gIHwgYExpc3QgbCAtPlxuICAgICAgYExpc3QgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4NSBcIndyaXRlLm1sXCJcbiAgfCBgVHVwbGUgbCAtPlxuICAgICAgYFR1cGxlIChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODkgXCJ3cml0ZS5tbFwiXG4gIHwgYFZhcmlhbnQgKGssIFNvbWUgdikgYXMgeCAtPlxuICAgICAgbGV0IHYnID0gc29ydCB2IGluXG4gICAgICBpZiB2ID09IHYnIHRoZW4geFxuICAgICAgZWxzZVxuICAgICAgICBgVmFyaWFudCAoaywgU29tZSB2JylcbiAgXG4jIDQ5NSBcIndyaXRlLm1sXCJcbiAgfCB4IC0+IHhcbiMgMSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCByZWMgcHAgZm10ID1cbiAgZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcImBOdWxsXCJcbiAgfCBgQm9vbCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEJvb2wgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlQlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDkgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVkXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludGxpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEludGxpdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMjEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEZsb2F0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgRmxvYXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlRlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDI3IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBGbG9hdGxpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEZsb2F0bGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAzMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgU3RyaW5nIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgU3RyaW5nIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgU3RyaW5nbGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgU3RyaW5nbGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA0NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgQXNzb2MgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQXNzb2MgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCAoa2V5LCB2YWx1ZSkgLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIGtleTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAgICAgICBwcCBmbXQgdmFsdWU7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgfCBgTGlzdCB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBMaXN0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgeCAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIHBwIGZtdCB4O1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA3MSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVHVwbGUgdHVwIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFR1cGxlIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgZSAtPlxuICAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgIHBwIGZtdCBlO1xuICAgICAgICAgICB0cnVlKSBmYWxzZSB0dXApO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDg0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSkgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVmFyaWFudCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgbmFtZTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAobWF0Y2ggdmFsdWUgd2l0aFxuICAgICAgfCBOb25lIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiTm9uZVwiXG4gICAgICB8IFNvbWUgeCAtPlxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIihTb21lIFwiO1xuICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIpXCIpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG5cbiMgOTkgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgc2hvdyB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBwcCB4XG5cbmxldCByZWMgZXF1YWwgYSBiID1cbiAgbWF0Y2ggYSwgYiB3aXRoXG4gIHwgYE51bGwsIGBOdWxsIC0+IHRydWVcbiAgfCBgQm9vbCBhLCBgQm9vbCBiIC0+IGEgPSBiXG4gIFxuIyAxMDcgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEludCBhLCBgSW50IGIgLT4gYSA9IGJcbiAgICBcbiMgMTEwIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEludGxpdCBhLCBgSW50bGl0IGIgLT4gYSA9IGJcbiAgICBcbiMgMTEzIFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYEZsb2F0IGEsIGBGbG9hdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExNiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBhLCBgRmxvYXRsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgU3RyaW5nIGEsIGBTdHJpbmcgYiAtPiBhID0gYlxuICAgIFxuIyAxMjIgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IGEsIGBTdHJpbmdsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMjQgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgQXNzb2MgeHMsIGBBc3NvYyB5cyAtPlxuICAgICAgbGV0IGNvbXBhcmVfa2V5cyA9IGZ1biAoa2V5LCBfKSAoa2V5JywgXykgLT4gU3RyaW5nLmNvbXBhcmUga2V5IGtleScgaW5cbiAgICAgIGxldCB4cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHhzIGluXG4gICAgICBsZXQgeXMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB5cyBpblxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgKGZ1biAoa2V5LCB2YWx1ZSkgKGtleScsIHZhbHVlJykgLT5cbiAgICAgICAgbWF0Y2gga2V5ID0ga2V5JyB3aXRoXG4gICAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgICAgfCB0cnVlIC0+IGVxdWFsIHZhbHVlIHZhbHVlJykgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTM3IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFR1cGxlIHhzLCBgVHVwbGUgeXNcbiAgICBcbiMgMTM5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYExpc3QgeHMsIGBMaXN0IHlzIC0+XG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiBlcXVhbCB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxNDYgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpLCBgVmFyaWFudCAobmFtZScsIHZhbHVlJykgLT5cbiAgICAgIChtYXRjaCBuYW1lID0gbmFtZScgd2l0aFxuICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgfCB0cnVlIC0+XG4gICAgICAgIG1hdGNoIHZhbHVlLCB2YWx1ZScgd2l0aFxuICAgICAgICB8IE5vbmUsIE5vbmUgLT4gdHJ1ZVxuICAgICAgICB8IFNvbWUgeCwgU29tZSB5IC0+IGVxdWFsIHggeVxuICAgICAgICB8IF8gLT4gZmFsc2UpXG4gICAgXG4jIDE1NSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IF8gLT4gZmFsc2VcbiMgMTQgXCJ5b2pzb24uY3Bwby5tbFwiXG5tb2R1bGUgUHJldHR5ID1cbnN0cnVjdFxuIyAxIFwicHJldHR5Lm1sXCJcbigqXG4gICBQcmV0dHktcHJpbnQgSlNPTiBkYXRhIGluIGFuIGF0dGVtcHQgdG8gbWF4aW1pemUgcmVhZGFiaWxpdHkuXG5cbiAgIDEuIFdoYXQgZml0cyBvbiBvbmUgbGluZSBzdGF5cyBvbiBvbmUgbGluZS5cbiAgIDIuIFdoYXQgZG9lc24ndCBmaXQgb24gb25lIGxpbmUgZ2V0cyBwcmludGVkIG1vcmUgdmVydGljYWxseSBzbyBhcyB0byBub3RcbiAgICAgIGV4Y2VlZCBhIHJlYXNvbmFibGUgcGFnZSB3aWR0aCwgaWYgcG9zc2libGUuXG5cbiAgIEFycmF5cyBjb250YWluaW5nIG9ubHkgc2ltcGxlIGVsZW1lbnRzIChcImF0b21zXCIpIGFyZSBwcmV0dHktcHJpbnRlZCB3aXRoXG4gICBlbmQtb2YtbGluZSB3cmFwcGluZyBsaWtlIG9yZGluYXJ5IHRleHQ6XG5cbiAgICAgW1xuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIixcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCJcbiAgICAgXVxuXG4gICBPdGhlciBhcnJheXMgYXJlIHByaW50ZWQgZWl0aGVyIGhvcml6b250YWxseSBvciB2ZXJ0aWNhbGx5IGRlcGVuZGluZ1xuICAgb24gd2hldGhlciB0aGV5IGZpdCBvbiBhIHNpbmdsZSBsaW5lOlxuXG4gICAgIFsgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSBdXG5cbiAgIG9yXG5cbiAgICAgW1xuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfVxuICAgICBdXG4qKVxuXG5sZXQgcHBfbGlzdCBzZXAgcHB4IG91dCBsID1cbiAgbGV0IHBwX3NlcCBvdXQgKCkgPSBGb3JtYXQuZnByaW50ZiBvdXQgXCIlc0AgXCIgc2VwIGluXG4gIEZvcm1hdC5wcF9wcmludF9saXN0IH5wcF9zZXAgcHB4IG91dCBsXG5cbmxldCBpc19hdG9tICh4OiBbPiB0XSkgPVxuICBtYXRjaCB4IHdpdGhcbiAgfCBgTnVsbFxuICB8IGBCb29sIF9cbiAgfCBgSW50IF9cbiAgfCBgRmxvYXQgX1xuICB8IGBTdHJpbmcgX1xuICB8IGBJbnRsaXQgX1xuICB8IGBGbG9hdGxpdCBfXG4gIHwgYFN0cmluZ2xpdCBfXG4gIHwgYExpc3QgW11cbiAgfCBgQXNzb2MgW11cbiAgfCBgVHVwbGUgW11cbiAgfCBgVmFyaWFudCAoXywgTm9uZSkgLT4gdHJ1ZVxuICB8IGBMaXN0IF9cbiAgfCBgQXNzb2MgX1xuICB8IGBUdXBsZSBfXG4gIHwgYFZhcmlhbnQgKF8sIFNvbWUgXykgLT4gZmFsc2VcblxubGV0IGlzX2F0b21fbGlzdCBsID1cbiAgTGlzdC5mb3JfYWxsIGlzX2F0b20gbFxuXG4oKlxuICAgaW5zaWRlX2JveDogaW5kaWNhdGVzIHRoYXQgd2UncmUgYWxyZWFkeSB3aXRoaW4gYSBib3ggdGhhdCBpbXBvc2VzXG4gICBhIGNlcnRhaW4gc3R5bGUgYW5kIHdlIHNob3VsZG4ndCBjcmVhdGUgYSBuZXcgb25lLiBUaGlzIGlzIHVzZWQgZm9yXG4gICBwcmludGluZyBmaWVsZCB2YWx1ZXMgbGlrZSB0aGlzOlxuXG4gICAgIGZvbzogW1xuICAgICAgIGJhclxuICAgICBdXG5cbiAgIHJhdGhlciB0aGFuIHNvbWV0aGluZyBlbHNlIGxpa2VcblxuICAgICBmb286XG4gICAgICAgW1xuICAgICAgICAgYmFyXG4gICAgICAgXVxuKilcbmxldCByZWMgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCAob3V0OkZvcm1hdC5mb3JtYXR0ZXIpICh4OnQpIDogdW5pdCA9XG4gIG1hdGNoIHggd2l0aFxuICAgIHwgYE51bGwgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJudWxsXCJcbiAgICB8IGBCb29sIHggLT4gRm9ybWF0LnBwX3ByaW50X2Jvb2wgb3V0IHhcbiAgICBcbiMgNzggXCJwcmV0dHkubWxcIlxuICAgIHwgYEludCB4IC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9pbnQgeClcbiAgICBcbiMgODEgXCJwcmV0dHkubWxcIlxuICAgIHwgYEZsb2F0IHggLT5cbiAgICAgICAgbGV0IHMgPVxuICAgICAgICAgIGlmIHN0ZCB0aGVuIHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgICAgZWxzZSBqc29uX3N0cmluZ19vZl9mbG9hdCB4XG4gICAgICAgIGluXG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgODkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcbiAgICBcbiMgOTIgXCJwcmV0dHkubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgOTUgXCJwcmV0dHkubWxcIlxuICAgIHwgYEZsb2F0bGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA5OCBcInByZXR0eS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyAxMDAgXCJwcmV0dHkubWxcIlxuICAgIHwgYExpc3QgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJbXVwiXG4gICAgfCBgTGlzdCBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIGlmIGlzX2F0b21fbGlzdCBsIHRoZW5cbiAgICAgICAgKCogdXNlIGxpbmUgd3JhcHBpbmcgbGlrZSB3ZSB3b3VsZCBkbyBmb3IgYSBwYXJhZ3JhcGggb2YgdGV4dCAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGhvdj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGxcbiAgICAgIGVsc2VcbiAgICAgICAgKCogcHJpbnQgdGhlIGVsZW1lbnRzIGhvcml6b250YWxseSBpZiB0aGV5IGZpdCBvbiB0aGUgbGluZSxcbiAgICAgICAgICAgb3RoZXJ3aXNlIHByaW50IHRoZW0gaW4gYSBjb2x1bW4gKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxodj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgfCBgQXNzb2MgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJ7fVwiXG4gICAgfCBgQXNzb2MgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJ7QDs8MSAwPiVhQDs8MSAtMj59XCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdF9maWVsZCBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIFxuIyAxMTkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFR1cGxlIGwgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgbClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGlmIGwgPSBbXSB0aGVuXG4gICAgICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIigpXCJcbiAgICAgICAgICBlbHNlIChcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aG92Mj5cIjtcbiAgICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIihALCVhQDs8MCAtMj4pXCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgICAgICAgIClcbiAgICBcbiMgMTMyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBOb25lKSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxMzUgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmcgcyBpblxuICAgICAgICAgIFxuIyAxMzkgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IHJlcHJlc2VudGF0aW9uXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8JXM+XCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuXG4gICAgfCBgVmFyaWFudCAocywgU29tZSB4KSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxNDYgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmcgcyBpblxuICAgICAgICAgIFxuIyAxNTAgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBbIHJlcHJlc2VudGF0aW9uOyB4IF0pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgb3AgPSBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyBpblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjxAWzxodjI+JXM6ICVhQF0+XCIgb3AgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG4jIDE1NiBcInByZXR0eS5tbFwiXG5hbmQgZm9ybWF0X2ZpZWxkIHN0ZCBvdXQgKG5hbWUsIHgpID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVzOiAlYUBdXCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBuYW1lKSAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbmxldCBwcCA/KHN0ZCA9IGZhbHNlKSBvdXQgeCA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lYUBdXCIgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgKHggOj4gdClcblxubGV0IHRvX3N0cmluZyA/c3RkIHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIChwcCA/c3RkKSB4XG5cbmxldCB0b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIGxldCBmbXQgPSBGb3JtYXQuZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jIGluXG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVhQD9cIiAocHAgP3N0ZCkgeFxuIyAxNyBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuXG4jIDIgXCJ3cml0ZTIubWxcIlxubGV0IHByZXR0eV9wcmludCA/c3RkIG91dCB4ID1cbiAgUHJldHR5LnBwID9zdGQgb3V0IHhcblxubGV0IHByZXR0eV90b19zdHJpbmcgP3N0ZCB4ID1cbiAgUHJldHR5LnRvX3N0cmluZyA/c3RkIHhcblxubGV0IHByZXR0eV90b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIFByZXR0eS50b19jaGFubmVsID9zdGQgb2MgeFxuXG4jIDI4IFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIEJhc2ljID1cbnN0cnVjdFxuIyAxIFwidHlwZS5tbFwiXG4oKiogezMgVHlwZSBvZiB0aGUgSlNPTiB0cmVlfSAqKVxuXG50eXBlIHQgPVxuICAgIFtcbiAgICB8IGBOdWxsXG4gICAgfCBgQm9vbCBvZiBib29sXG4gICAgXG4jIDggXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnQgb2YgaW50XG4gICAgXG4jIDE0IFwidHlwZS5tbFwiXG4gICAgfCBgRmxvYXQgb2YgZmxvYXRcbiAgICBcbiMgMjAgXCJ0eXBlLm1sXCJcbiAgICB8IGBTdHJpbmcgb2Ygc3RyaW5nXG4gICAgXG4jIDI1IFwidHlwZS5tbFwiXG4gICAgfCBgQXNzb2Mgb2YgKHN0cmluZyAqIHQpIGxpc3RcbiAgICB8IGBMaXN0IG9mIHQgbGlzdFxuICAgIFxuIyAzMyBcInR5cGUubWxcIlxuICAgIF1cbigqKlxuQWxsIHBvc3NpYmxlIGNhc2VzIGRlZmluZWQgaW4gWW9qc29uOlxuLSBgTnVsbDogSlNPTiBudWxsXG4tIGBCb29sIG9mIGJvb2w6IEpTT04gYm9vbGVhblxuLSBgSW50IG9mIGludDogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LlxuLSBgSW50bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIgd2l0aG91dCBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50LFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgRmxvYXQgb2YgZmxvYXQ6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTi5cbi0gYEZsb2F0bGl0IG9mIHN0cmluZzogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLFxuXHQgICAgcHJlc2VydmVkIGFzIGEgc3RyaW5nLlxuLSBgU3RyaW5nIG9mIHN0cmluZzogSlNPTiBzdHJpbmcuIEJ5dGVzIGluIHRoZSByYW5nZSAxMjgtMjU1IGFyZSBwcmVzZXJ2ZWRcblx0ICAgIGFzLWlzIHdpdGhvdXQgZW5jb2RpbmcgdmFsaWRhdGlvbiBmb3IgYm90aCByZWFkaW5nXG5cdCAgICBhbmQgd3JpdGluZy5cbi0gYFN0cmluZ2xpdCBvZiBzdHJpbmc6IEpTT04gc3RyaW5nIGxpdGVyYWwgaW5jbHVkaW5nIHRoZSBkb3VibGUgcXVvdGVzLlxuLSBgQXNzb2Mgb2YgKHN0cmluZyAqIGpzb24pIGxpc3Q6IEpTT04gb2JqZWN0LlxuLSBgTGlzdCBvZiBqc29uIGxpc3Q6IEpTT04gYXJyYXkuXG4tIGBUdXBsZSBvZiBqc29uIGxpc3Q6IFR1cGxlIChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbKFwiYWJjXCIsIDEyMyldLlxuLSBgVmFyaWFudCBvZiAoc3RyaW5nICoganNvbiBvcHRpb24pOiBWYXJpYW50IChub24tc3RhbmRhcmQgZXh0ZW5zaW9uIG9mIEpTT04pLlxuXHQgICAgU3ludGF4OiBbPFwiRm9vXCI+XSBvciBbPFwiQmFyXCI6MTIzPl0uXG4qKVxuXG4oKlxuICBOb3RlIHRvIGFkdmVudHVyZXJzOiBvY2FtbGRvYyBkb2VzIG5vdCBzdXBwb3J0IGlubGluZSBjb21tZW50c1xuICBvbiBlYWNoIHBvbHltb3JwaGljIHZhcmlhbnQsIGFuZCBjcHBvIGRvZXNuJ3QgYWxsb3cgdG8gY29uY2F0ZW5hdGVcbiAgY29tbWVudHMsIHNvIGl0IHdvdWxkIGJlIGNvbXBsaWNhdGVkIHRvIGRvY3VtZW50IG9ubHkgdGhlXG4gIGNhc2VzIHRoYXQgYXJlIHByZXNlcnZlZCBieSBjcHBvIGluIHRoZSB0eXBlIGRlZmluaXRpb24uXG4qKVxuIyAxIFwid3JpdGUubWxcIlxuKCogaW5jbHVkZWQ6IHR5cGUubWwgKilcblxubGV0IGhleCBuID1cbiAgQ2hhci5jaHIgKFxuICAgIGlmIG4gPCAxMCB0aGVuIG4gKyA0OFxuICAgIGVsc2UgbiArIDg3XG4gIClcblxubGV0IHdyaXRlX3NwZWNpYWwgc3JjIHN0YXJ0IHN0b3Agb2Igc3RyID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN0cjtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IHdyaXRlX2NvbnRyb2xfY2hhciBzcmMgc3RhcnQgc3RvcCBvYiBjID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiXFxcXHUwMFwiO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbHNyIDQpKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxhbmQgMHhmKSk7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCBmaW5pc2hfc3RyaW5nIHNyYyBzdGFydCBvYiA9XG4gIHRyeVxuICAgIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KVxuICB3aXRoIGV4YyAtPlxuICAgIFByaW50Zi5lcHJpbnRmIFwic3JjPSVTIHN0YXJ0PSVpIGxlbj0laVxcbiUhXCJcbiAgICAgIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KTtcbiAgICByYWlzZSBleGNcblxubGV0IHdyaXRlX3N0cmluZ19ib2R5IG9iIHMgPVxuICBsZXQgc3RhcnQgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgJ1wiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFwiXCJcbiAgICAgIHwgJ1xcXFwnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXFxcIlxuICAgICAgfCAnXFxiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxiXCJcbiAgICAgIHwgJ1xcMDEyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxmXCJcbiAgICAgIHwgJ1xcbicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcblwiXG4gICAgICB8ICdcXHInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHJcIlxuICAgICAgfCAnXFx0JyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFx0XCJcbiAgICAgIHwgJ1xceDAwJy4uJ1xceDFGJ1xuICAgICAgfCAnXFx4N0YnIGFzIGMgLT4gd3JpdGVfY29udHJvbF9jaGFyIHMgc3RhcnQgaSBvYiBjXG4gICAgICB8IF8gLT4gKClcbiAgZG9uZTtcbiAgZmluaXNoX3N0cmluZyBzIHN0YXJ0IG9iXG5cbmxldCB3cml0ZV9zdHJpbmcgb2IgcyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInO1xuICB3cml0ZV9zdHJpbmdfYm9keSBvYiBzO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJ1xuXG5sZXQganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDEwIGluXG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICBCdWZmZXIuY29udGVudHMgb2JcblxubGV0IHRlc3Rfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgMjU2IGluXG4gIGZvciBpID0gMCB0byAyNTUgZG9cbiAgICBCeXRlcy5zZXQgcyBpIChDaGFyLmNociBpKVxuICBkb25lO1xuICBqc29uX3N0cmluZ19vZl9zdHJpbmcgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG5cbmxldCB3cml0ZV9udWxsIG9iICgpID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJudWxsXCJcblxubGV0IHdyaXRlX2Jvb2wgb2IgeCA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4IHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCIpXG5cblxubGV0IG1heF9kaWdpdHMgPVxuICBtYXhcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtYXhfaW50KSlcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtaW5faW50KSlcblxubGV0IGRlYyBuID1cbiAgQ2hhci5jaHIgKG4gKyA0OClcblxubGV0IHJlYyB3cml0ZV9kaWdpdHMgcyB4ID1cbiAgaWYgeCA9IDAgdGhlbiAoKVxuICBlbHNlXG4gICAgbGV0IGQgPSB4IG1vZCAxMCBpblxuICAgIHdyaXRlX2RpZ2l0cyBzICh4IC8gMTApO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBzIChkZWMgKGFicyBkKSlcblxubGV0IHdyaXRlX2ludCBvYiB4ID1cbiAgaWYgeCA+IDAgdGhlblxuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIGVsc2UgaWYgeCA8IDAgdGhlbiAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICctJztcbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICApXG4gIGVsc2VcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzAnXG5cblxubGV0IGpzb25fc3RyaW5nX29mX2ludCBpID1cbiAgc3RyaW5nX29mX2ludCBpXG5cblxuKCpcbiAgRW5zdXJlIHRoYXQgdGhlIGZsb2F0IGlzIG5vdCBwcmludGVkIGFzIGFuIGludC5cbiAgVGhpcyBpcyBub3QgcmVxdWlyZWQgYnkgSlNPTiwgYnV0IHVzZWZ1bCBpbiBvcmRlciB0byBndWFyYW50ZWVcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgZmxvYXRfbmVlZHNfcGVyaW9kIHMgPVxuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAgICcwJy4uJzknIHwgJy0nIC0+ICgpXG4gICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgZG9uZTtcbiAgICB0cnVlXG4gIHdpdGggRXhpdCAtPlxuICAgIGZhbHNlXG5cbigqXG4gIEd1YXJhbnRlZXMgdGhhdCBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGRpZ2l0cyBhcmUgcHJpbnRlZCBpbiBvcmRlciB0byBhbGxvd1xuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCB3cml0ZV9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbmxldCB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBsZXQgb3BlbiBQcmludGYgaW5cbiAgbGV0IHMgPVxuICAgIG1hdGNoIHNpZ25pZmljYW50X2ZpZ3VyZXMgd2l0aFxuICAgICAgICAxIC0+IHNwcmludGYgXCIlLjFnXCIgeFxuICAgICAgfCAyIC0+IHNwcmludGYgXCIlLjJnXCIgeFxuICAgICAgfCAzIC0+IHNwcmludGYgXCIlLjNnXCIgeFxuICAgICAgfCA0IC0+IHNwcmludGYgXCIlLjRnXCIgeFxuICAgICAgfCA1IC0+IHNwcmludGYgXCIlLjVnXCIgeFxuICAgICAgfCA2IC0+IHNwcmludGYgXCIlLjZnXCIgeFxuICAgICAgfCA3IC0+IHNwcmludGYgXCIlLjdnXCIgeFxuICAgICAgfCA4IC0+IHNwcmludGYgXCIlLjhnXCIgeFxuICAgICAgfCA5IC0+IHNwcmludGYgXCIlLjlnXCIgeFxuICAgICAgfCAxMCAtPiBzcHJpbnRmIFwiJS4xMGdcIiB4XG4gICAgICB8IDExIC0+IHNwcmludGYgXCIlLjExZ1wiIHhcbiAgICAgIHwgMTIgLT4gc3ByaW50ZiBcIiUuMTJnXCIgeFxuICAgICAgfCAxMyAtPiBzcHJpbnRmIFwiJS4xM2dcIiB4XG4gICAgICB8IDE0IC0+IHNwcmludGYgXCIlLjE0Z1wiIHhcbiAgICAgIHwgMTUgLT4gc3ByaW50ZiBcIiUuMTVnXCIgeFxuICAgICAgfCAxNiAtPiBzcHJpbnRmIFwiJS4xNmdcIiB4XG4gICAgICB8IF8gLT4gc3ByaW50ZiBcIiUuMTdnXCIgeFxuICBpblxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBqc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgd3JpdGVfc3RkX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX3N0ZF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQgc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX3N0ZF9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgdGVzdF9mbG9hdCAoKSA9XG4gIGxldCBsID0gWyAwLjsgMS47IC0xLiBdIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiAyLiAqLiB4ICsuIDEuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4IC8uIHNxcnQgMi4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gc3FydCAzLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCBjb3MgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiAxLjIzZTUwKSBsIGluXG4gIGxldCBsID0gbCBAIFsgaW5maW5pdHk7IG5lZ19pbmZpbml0eSBdIGluXG4gIExpc3QuaXRlciAoXG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzID0gUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHggaW5cbiAgICAgIGxldCB5ID0gZmxvYXRfb2Zfc3RyaW5nIHMgaW5cbiAgICAgIFByaW50Zi5wcmludGYgXCIlZyAlZyAlUyAlQlxcblwiIHggeSBzICh4ID0geSlcbiAgKVxuICAgIGxcblxuKCpcbmxldCAoKSA9IHRlc3RfZmxvYXQgKClcbiopXG5cbmxldCB3cml0ZV9pbnRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX2Zsb2F0bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9zdHJpbmdsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xuXG5sZXQgcmVjIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9zZXAgeDtcbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGl0ZXIyIGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBmX3NlcCBvYiA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCdcblxubGV0IHJlYyB3cml0ZV9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDI2NCBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAyNzAgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9mbG9hdCBvYiBmXG4gICAgXG4jIDI3NiBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAyODEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX2xpc3Qgb2IgbFxuXG4jIDI5MCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5cblxuIyAzMjUgXCJ3cml0ZS5tbFwiXG5sZXQgd3JpdGVfdCA9IHdyaXRlX2pzb25cblxubGV0IHJlYyB3cml0ZV9zdGRfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAzMzIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMzM4IFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfc3RkX2Zsb2F0IG9iIGZcbiAgICBcbiMgMzQ0IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0OSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX3N0ZF9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX3N0ZF9saXN0IG9iIGxcblxuIyAzNTggXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfc3RkX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX3N0ZF9saXN0IG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbmFuZCB3cml0ZV9zdGRfdHVwbGUgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuXG5cbiMgMzkxIFwid3JpdGUubWxcIlxubGV0IHRvX2J1ZmZlciA/KHN1ZiA9IFwiXCIpID8oc3RkID0gZmFsc2UpIG9iIHggPVxuICBpZiBzdGQgdGhlblxuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgZWxzZVxuICAgIHdyaXRlX2pzb24gb2IgeDtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3VmXG5cbmxldCB0b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlwiKSA/c3RkIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgdG9fY2hhbm5lbCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvYyB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX291dHB1dCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvdXQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBvdXQjb3V0cHV0IChCdWZmZXIuY29udGVudHMgb2IpIDAgKEJ1ZmZlci5sZW5ndGggb2IpO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX2ZpbGUgP2xlbiA/c3RkID8oc3VmID0gXCJcXG5cIikgZmlsZSB4ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICB0b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHg7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cbmxldCBzZXFfdG9fYnVmZmVyID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYiBzdCA9XG4gIFNlcS5pdGVyICh0b19idWZmZXIgfnN1ZiA/c3RkIG9iKSBzdFxuXG5sZXQgc2VxX3RvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgc3QgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICBzZXFfdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBzdDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCBzZXFfdG9fY2hhbm5lbCA/YnVmID8obGVuPTIwOTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYyBzZXEgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIFNlcS5pdGVyIChmdW4ganNvbiAtPlxuICAgIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IganNvbjtcbiAgICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICkgc2VxXG5cbmxldCBzZXFfdG9fZmlsZSA/bGVuID8oc3VmID0gXCJcXG5cIikgP3N0ZCBmaWxlIHN0ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICBzZXFfdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyBzdDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxuXG5sZXQgcmVjIHNvcnQgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBsIC0+XG4gICAgICBsZXQgbCA9IExpc3QucmV2IChMaXN0LnJldl9tYXAgKGZ1biAoaywgdikgLT4gKGssIHNvcnQgdikpIGwpIGluXG4gICAgICBgQXNzb2MgKExpc3Quc3RhYmxlX3NvcnQgKGZ1biAoYSwgXykgKGIsIF8pIC0+IFN0cmluZy5jb21wYXJlIGEgYikgbClcbiAgfCBgTGlzdCBsIC0+XG4gICAgICBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDk1IFwid3JpdGUubWxcIlxuICB8IHggLT4geFxuIyAzNSBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBQcmV0dHkgPVxuc3RydWN0XG4jIDEgXCJwcmV0dHkubWxcIlxuKCpcbiAgIFByZXR0eS1wcmludCBKU09OIGRhdGEgaW4gYW4gYXR0ZW1wdCB0byBtYXhpbWl6ZSByZWFkYWJpbGl0eS5cblxuICAgMS4gV2hhdCBmaXRzIG9uIG9uZSBsaW5lIHN0YXlzIG9uIG9uZSBsaW5lLlxuICAgMi4gV2hhdCBkb2Vzbid0IGZpdCBvbiBvbmUgbGluZSBnZXRzIHByaW50ZWQgbW9yZSB2ZXJ0aWNhbGx5IHNvIGFzIHRvIG5vdFxuICAgICAgZXhjZWVkIGEgcmVhc29uYWJsZSBwYWdlIHdpZHRoLCBpZiBwb3NzaWJsZS5cblxuICAgQXJyYXlzIGNvbnRhaW5pbmcgb25seSBzaW1wbGUgZWxlbWVudHMgKFwiYXRvbXNcIikgYXJlIHByZXR0eS1wcmludGVkIHdpdGhcbiAgIGVuZC1vZi1saW5lIHdyYXBwaW5nIGxpa2Ugb3JkaW5hcnkgdGV4dDpcblxuICAgICBbXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLFxuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIlxuICAgICBdXG5cbiAgIE90aGVyIGFycmF5cyBhcmUgcHJpbnRlZCBlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZXkgZml0IG9uIGEgc2luZ2xlIGxpbmU6XG5cbiAgICAgWyB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9IF1cblxuICAgb3JcblxuICAgICBbXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9XG4gICAgIF1cbiopXG5cbmxldCBwcF9saXN0IHNlcCBwcHggb3V0IGwgPVxuICBsZXQgcHBfc2VwIG91dCAoKSA9IEZvcm1hdC5mcHJpbnRmIG91dCBcIiVzQCBcIiBzZXAgaW5cbiAgRm9ybWF0LnBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcHggb3V0IGxcblxubGV0IGlzX2F0b20gKHg6IFs+IHRdKSA9XG4gIG1hdGNoIHggd2l0aFxuICB8IGBOdWxsXG4gIHwgYEJvb2wgX1xuICB8IGBJbnQgX1xuICB8IGBGbG9hdCBfXG4gIHwgYFN0cmluZyBfXG4gIHwgYEludGxpdCBfXG4gIHwgYEZsb2F0bGl0IF9cbiAgfCBgU3RyaW5nbGl0IF9cbiAgfCBgTGlzdCBbXVxuICB8IGBBc3NvYyBbXVxuICB8IGBUdXBsZSBbXVxuICB8IGBWYXJpYW50IChfLCBOb25lKSAtPiB0cnVlXG4gIHwgYExpc3QgX1xuICB8IGBBc3NvYyBfXG4gIHwgYFR1cGxlIF9cbiAgfCBgVmFyaWFudCAoXywgU29tZSBfKSAtPiBmYWxzZVxuXG5sZXQgaXNfYXRvbV9saXN0IGwgPVxuICBMaXN0LmZvcl9hbGwgaXNfYXRvbSBsXG5cbigqXG4gICBpbnNpZGVfYm94OiBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBhbHJlYWR5IHdpdGhpbiBhIGJveCB0aGF0IGltcG9zZXNcbiAgIGEgY2VydGFpbiBzdHlsZSBhbmQgd2Ugc2hvdWxkbid0IGNyZWF0ZSBhIG5ldyBvbmUuIFRoaXMgaXMgdXNlZCBmb3JcbiAgIHByaW50aW5nIGZpZWxkIHZhbHVlcyBsaWtlIHRoaXM6XG5cbiAgICAgZm9vOiBbXG4gICAgICAgYmFyXG4gICAgIF1cblxuICAgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGVsc2UgbGlrZVxuXG4gICAgIGZvbzpcbiAgICAgICBbXG4gICAgICAgICBiYXJcbiAgICAgICBdXG4qKVxubGV0IHJlYyBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIChvdXQ6Rm9ybWF0LmZvcm1hdHRlcikgKHg6dCkgOiB1bml0ID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIm51bGxcIlxuICAgIHwgYEJvb2wgeCAtPiBGb3JtYXQucHBfcHJpbnRfYm9vbCBvdXQgeFxuICAgIFxuIyA3OCBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50IHggLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX2ludCB4KVxuICAgIFxuIyA4MSBcInByZXR0eS5tbFwiXG4gICAgfCBgRmxvYXQgeCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgc3RkIHRoZW4gc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgICBlbHNlIGpzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgaW5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA4OSBcInByZXR0eS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuICAgIFxuIyAxMDAgXCJwcmV0dHkubWxcIlxuICAgIHwgYExpc3QgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJbXVwiXG4gICAgfCBgTGlzdCBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIGlmIGlzX2F0b21fbGlzdCBsIHRoZW5cbiAgICAgICAgKCogdXNlIGxpbmUgd3JhcHBpbmcgbGlrZSB3ZSB3b3VsZCBkbyBmb3IgYSBwYXJhZ3JhcGggb2YgdGV4dCAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGhvdj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGxcbiAgICAgIGVsc2VcbiAgICAgICAgKCogcHJpbnQgdGhlIGVsZW1lbnRzIGhvcml6b250YWxseSBpZiB0aGV5IGZpdCBvbiB0aGUgbGluZSxcbiAgICAgICAgICAgb3RoZXJ3aXNlIHByaW50IHRoZW0gaW4gYSBjb2x1bW4gKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxodj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgfCBgQXNzb2MgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJ7fVwiXG4gICAgfCBgQXNzb2MgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJ7QDs8MSAwPiVhQDs8MSAtMj59XCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdF9maWVsZCBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuXG4jIDE1NiBcInByZXR0eS5tbFwiXG5hbmQgZm9ybWF0X2ZpZWxkIHN0ZCBvdXQgKG5hbWUsIHgpID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVzOiAlYUBdXCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBuYW1lKSAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbmxldCBwcCA/KHN0ZCA9IGZhbHNlKSBvdXQgeCA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lYUBdXCIgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgKHggOj4gdClcblxubGV0IHRvX3N0cmluZyA/c3RkIHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIChwcCA/c3RkKSB4XG5cbmxldCB0b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIGxldCBmbXQgPSBGb3JtYXQuZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jIGluXG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVhQD9cIiAocHAgP3N0ZCkgeFxuIyAzOCBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIyAxIFwibW9ub21vcnBoaWMubWxcIlxubGV0IHJlYyBwcCBmbXQgPVxuICBmdW5jdGlvblxuICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiYE51bGxcIlxuICB8IGBCb29sIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQm9vbCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVCXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJWRcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAyMSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgRmxvYXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBGbG9hdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVGXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMzMgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFN0cmluZyB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFN0cmluZyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNDQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEFzc29jIHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEFzc29jIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgKGtleSwgdmFsdWUpIC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBrZXk7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgICAgICAgcHAgZm10IHZhbHVlO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIHwgYExpc3QgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgTGlzdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIHggLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuXG4jIDk5IFwibW9ub21vcnBoaWMubWxcIlxubGV0IHNob3cgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgcHAgeFxuXG5sZXQgcmVjIGVxdWFsIGEgYiA9XG4gIG1hdGNoIGEsIGIgd2l0aFxuICB8IGBOdWxsLCBgTnVsbCAtPiB0cnVlXG4gIHwgYEJvb2wgYSwgYEJvb2wgYiAtPiBhID0gYlxuICBcbiMgMTA3IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgYSwgYEludCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBGbG9hdCBhLCBgRmxvYXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgU3RyaW5nIGEsIGBTdHJpbmcgYiAtPiBhID0gYlxuICAgIFxuIyAxMjQgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgQXNzb2MgeHMsIGBBc3NvYyB5cyAtPlxuICAgICAgbGV0IGNvbXBhcmVfa2V5cyA9IGZ1biAoa2V5LCBfKSAoa2V5JywgXykgLT4gU3RyaW5nLmNvbXBhcmUga2V5IGtleScgaW5cbiAgICAgIGxldCB4cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHhzIGluXG4gICAgICBsZXQgeXMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB5cyBpblxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgKGZ1biAoa2V5LCB2YWx1ZSkgKGtleScsIHZhbHVlJykgLT5cbiAgICAgICAgbWF0Y2gga2V5ID0ga2V5JyB3aXRoXG4gICAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgICAgfCB0cnVlIC0+IGVxdWFsIHZhbHVlIHZhbHVlJykgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTM5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYExpc3QgeHMsIGBMaXN0IHlzIC0+XG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiBlcXVhbCB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxNTUgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBfIC0+IGZhbHNlXG5cbiMgMiBcIndyaXRlMi5tbFwiXG5sZXQgcHJldHR5X3ByaW50ID9zdGQgb3V0IHggPVxuICBQcmV0dHkucHAgP3N0ZCBvdXQgeFxuXG5sZXQgcHJldHR5X3RvX3N0cmluZyA/c3RkIHggPVxuICBQcmV0dHkudG9fc3RyaW5nID9zdGQgeFxuXG5sZXQgcHJldHR5X3RvX2NoYW5uZWwgP3N0ZCBvYyB4ID1cbiAgUHJldHR5LnRvX2NoYW5uZWwgP3N0ZCBvYyB4XG5cbiMgMSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAyIFwibGliL3JlYWQubWxsXCJcbiAgbW9kdWxlIExleGluZyA9XG4gICAgKCpcbiAgICAgIFdlIG92ZXJyaWRlIExleGluZy5lbmdpbmUgaW4gb3JkZXIgdG8gYXZvaWQgY3JlYXRpbmcgYSBuZXcgcG9zaXRpb25cbiAgICAgIHJlY29yZCBlYWNoIHRpbWUgYSBydWxlIGlzIG1hdGNoZWQuXG4gICAgICBUaGlzIHJlZHVjZXMgdG90YWwgcGFyc2luZyB0aW1lIGJ5IGFib3V0IDMxJS5cbiAgICAqKVxuICBzdHJ1Y3RcbiAgICBpbmNsdWRlIExleGluZ1xuXG4gICAgZXh0ZXJuYWwgY19lbmdpbmUgOiBsZXhfdGFibGVzIC0+IGludCAtPiBsZXhidWYgLT4gaW50ID0gXCJjYW1sX2xleF9lbmdpbmVcIlxuXG4gICAgbGV0IGVuZ2luZSB0Ymwgc3RhdGUgYnVmID1cbiAgICAgIGxldCByZXN1bHQgPSBjX2VuZ2luZSB0Ymwgc3RhdGUgYnVmIGluXG4gICAgICAoKlxuICAgICAgaWYgcmVzdWx0ID49IDAgdGhlbiBiZWdpblxuICAgICAgICBidWYubGV4X3N0YXJ0X3AgPC0gYnVmLmxleF9jdXJyX3A7XG4gICAgICAgIGJ1Zi5sZXhfY3Vycl9wIDwtIHtidWYubGV4X2N1cnJfcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBwb3NfY251bSA9IGJ1Zi5sZXhfYWJzX3BvcyArIGJ1Zi5sZXhfY3Vycl9wb3N9O1xuICAgICAgZW5kO1xuICAgICAgKilcbiAgICAgIHJlc3VsdFxuICBlbmRcblxuICBvcGVuIFByaW50ZlxuICBvcGVuIExleGluZ1xuXG4gICgqIHNlZSBkZXNjcmlwdGlvbiBpbiBjb21tb24ubWxpICopXG4gIHR5cGUgbGV4ZXJfc3RhdGUgPSBMZXhlcl9zdGF0ZS50ID0ge1xuICAgIGJ1ZiA6IEJ1ZmZlci50O1xuICAgIG11dGFibGUgbG51bSA6IGludDtcbiAgICBtdXRhYmxlIGJvbCA6IGludDtcbiAgICBtdXRhYmxlIGZuYW1lIDogc3RyaW5nIG9wdGlvbjtcbiAgfVxuXG4gIGxldCBkZWMgYyA9XG4gICAgQ2hhci5jb2RlIGMgLSA0OFxuXG4gIGxldCBoZXggYyA9XG4gICAgbWF0Y2ggYyB3aXRoXG4gICAgICAgICcwJy4uJzknIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnMCdcbiAgICAgIHwgJ2EnLi4nZicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdhJyArIDEwXG4gICAgICB8ICdBJy4uJ0YnIC0+IGludF9vZl9jaGFyIGMgLSBpbnRfb2ZfY2hhciAnQScgKyAxMFxuICAgICAgfCBfIC0+IGFzc2VydCBmYWxzZVxuXG4gIGxldCBjdXN0b21fZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGxldCBvZmZzID0gbGV4YnVmLmxleF9hYnNfcG9zIC0gMSBpblxuICAgIGxldCBib2wgPSB2LmJvbCBpblxuICAgIGxldCBwb3MxID0gb2ZmcyArIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIC0gYm9sIC0gMSBpblxuICAgIGxldCBwb3MyID0gbWF4IHBvczEgKG9mZnMgKyBsZXhidWYubGV4X2N1cnJfcG9zIC0gYm9sKSBpblxuICAgIGxldCBmaWxlX2xpbmUgPVxuICAgICAgbWF0Y2ggdi5mbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBcIkxpbmVcIlxuICAgICAgICB8IFNvbWUgcyAtPlxuICAgICAgICAgICAgc3ByaW50ZiBcIkZpbGUgJXMsIGxpbmVcIiBzXG4gICAgaW5cbiAgICBsZXQgYnl0ZXMgPVxuICAgICAgaWYgcG9zMSA9IHBvczIgdGhlblxuICAgICAgICBzcHJpbnRmIFwiYnl0ZSAlaVwiIChwb3MxKzEpXG4gICAgICBlbHNlXG4gICAgICAgIHNwcmludGYgXCJieXRlcyAlaS0laVwiIChwb3MxKzEpIChwb3MyKzEpXG4gICAgaW5cbiAgICBsZXQgbXNnID0gc3ByaW50ZiBcIiVzICVpLCAlczpcXG4lc1wiIGZpbGVfbGluZSB2LmxudW0gYnl0ZXMgZGVzY3IgaW5cbiAgICBqc29uX2Vycm9yIG1zZ1xuXG5cbiAgbGV0IGxleGVyX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJ1wiIGRlc2NyIChMZXhpbmcubGV4ZW1lIGxleGJ1ZikpXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCByZWFkX2p1bmsgPSByZWYgKGZ1biBfIC0+IGFzc2VydCBmYWxzZSlcblxuICBsZXQgbG9uZ19lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IGp1bmsgPSBMZXhpbmcubGV4ZW1lIGxleGJ1ZiBpblxuICAgIGxldCBleHRyYV9qdW5rID0gIXJlYWRfanVuayBsZXhidWYgaW5cbiAgICBjdXN0b21fZXJyb3JcbiAgICAgIChzcHJpbnRmIFwiJXMgJyVzJXMnXCIgZGVzY3IganVuayBleHRyYV9qdW5rKVxuICAgICAgdiBsZXhidWZcblxuICBsZXQgbWluMTAgPSBtaW5faW50IC8gMTAgLSAoaWYgbWluX2ludCBtb2QgMTAgPSAwIHRoZW4gMCBlbHNlIDEpXG4gIGxldCBtYXgxMCA9IG1heF9pbnQgLyAxMCArIChpZiBtYXhfaW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcblxuICBleGNlcHRpb24gSW50X292ZXJmbG93XG5cbiAgbGV0IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZiA9XG4gICAgbGV0IHN0YXJ0ID0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuID49IG1heDEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiArIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuIDwgMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX3Bvc2l0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICBcbiMgMTA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgIHRyeSBgSW50IChleHRyYWN0X3Bvc2l0aXZlX2ludCBsZXhidWYpXG4gICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICBcbiMgMTEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZlxuXG4gIFxuIyAxMTMgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIDEgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuIDw9IG1pbjEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiAtIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuID4gMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICBcbiMgMTMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgIHRyeSBgSW50IChleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWYpXG4gICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICBcbiMgMTM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZlxuXG5cbiAgXG4jIDE0MSBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBzZXRfZmlsZV9uYW1lIHYgZm5hbWUgPVxuICAgIHYuZm5hbWUgPC0gZm5hbWVcblxuICBsZXQgbmV3bGluZSB2IGxleGJ1ZiA9XG4gICAgdi5sbnVtIDwtIHYubG51bSArIDE7XG4gICAgdi5ib2wgPC0gbGV4YnVmLmxleF9hYnNfcG9zICsgbGV4YnVmLmxleF9jdXJyX3Bvc1xuXG4gIGxldCBhZGRfbGV4ZW1lIGJ1ZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBCdWZmZXIuYWRkX3N1YmJ5dGVzIGJ1ZiBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW5cblxuICBsZXQgbWFwX2xleGVtZSBmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGYgKEJ5dGVzLnN1Yl9zdHJpbmcgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuKSAwIGxlblxuXG4gIHR5cGUgdmFyaWFudF9raW5kID0gWyBgRWRneV9icmFja2V0IHwgYFNxdWFyZV9icmFja2V0IHwgYERvdWJsZV9xdW90ZSBdXG4gIHR5cGUgdHVwbGVfa2luZCA9IFsgYFBhcmVudGhlc2lzIHwgYFNxdWFyZV9icmFja2V0IF1cblxuXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbiMgMTYxIFwibGliL3JlYWQubWxcIlxubGV0IF9fb2NhbWxfbGV4X3RhYmxlcyA9IHtcbiAgTGV4aW5nLmxleF9iYXNlID1cbiAgIFwiXFwwMDBcXDAwMFxcMjM2XFwyNTVcXDIzN1xcMjU1XFwwMDNcXDAwMFxcMjM5XFwyNTVcXDAxNlxcMDAwXFwyNDJcXDI1NVxcMjQzXFwyNTVcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMDBcXDAwMFxcMDMxXFwwMDBcXDI0OVxcMjU1XFwwODVcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU0XFwyNTVcXDAwMVxcMDAwXFwwMDRcXDAwMFxcMjUzXFwyNTVcXDAxMVxcMDAwXFwyNTJcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMDAxXFwwMDBcXDAwM1xcMDAwXFwwMDJcXDAwMFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwyNTFcXDI1NVxcMDIxXFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMjJcXDAwMFxcMDIwXFwwMDBcXDAxNlxcMDAwXFwwMjJcXDAwMFxcMDEyXFwwMDBcXDAwOFxcMDAwXFwyNTBcXDI1NVxcXG4gICAgXFwxMTlcXDAwMFxcMTI5XFwwMDBcXDEzOVxcMDAwXFwxNjFcXDAwMFxcMTcxXFwwMDBcXDE4MVxcMDAwXFwxOTNcXDAwMFxcMjA5XFwwMDBcXFxuICAgIFxcMjQwXFwyNTVcXDAxMVxcMDAwXFwwMzhcXDAwMFxcMjUyXFwyNTVcXDA2NVxcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDExMFxcMDAwXFxcbiAgICBcXDI1MlxcMjU1XFwxNjNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzRcXDAwMFxcMjQ3XFwyNTVcXDI0OFxcMjU1XFwwNDhcXDAwMVxcXG4gICAgXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzFcXDAwMVxcMTI2XFwwMDFcXFxuICAgIFxcMTQ5XFwwMDFcXDI0OVxcMjU1XFwwMzlcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzhcXDAwMFxcMTg3XFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI0OFxcMDAxXFwwMTVcXDAwMlxcMjU1XFwyNTVcXDIyMFxcMDAwXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwwMzlcXDAwMlxcXG4gICAgXFwxMDlcXDAwMlxcMDE0XFwwMDFcXDA4OFxcMDAyXFwxNjRcXDAwMlxcMTg3XFwwMDJcXDIyNVxcMDAyXFwwMTNcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzMFxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMVxcXG4gICAgXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMVxcMDA1XFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDAyM1xcMDAwXFwyNTRcXDI1NVxcMDIwXFwwMDBcXDI1NVxcMjU1XFwwNDZcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwNDJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDI1NVxcMjU1XFwwNTNcXDAwMFxcMDQ4XFwwMDBcXDA5MVxcMDAwXFwwOTJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDI3XFwwMDFcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMTM3XFwwMDBcXDEwNFxcMDAwXFwwODlcXDAwMFxcMDg4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMFxcMTM3XFwwMDBcXDE3N1xcMDAwXFwyNTRcXDI1NVxcMTgzXFwwMDBcXDE2OFxcMDAwXFwxNjZcXDAwMFxcXG4gICAgXFwxODNcXDAwMFxcMDAyXFwwMDBcXDI1M1xcMjU1XFwxNzdcXDAwMFxcMTcyXFwwMDBcXDE4N1xcMDAwXFwwMDRcXDAwMFxcMjUyXFwyNTVcXFxuICAgIFxcMDUzXFwwMDJcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDEwM1xcMDAxXFwyNTVcXDI1NVxcMjQ4XFwwMDJcXDI1NFxcMjU1XFxcbiAgICBcXDAwNlxcMDAzXFwwMzBcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0MFxcMDAzXFwwNTBcXDAwM1xcXG4gICAgXFwwNzRcXDAwM1xcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA2MVxcMDAzXFwwODRcXDAwM1xcMTA4XFwwMDNcXFxuICAgIFxcMjQ5XFwyNTVcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjQ0XFwwMDBcXDEyMFxcMDAzXFwxNDJcXDAwM1xcMTc5XFwwMDBcXDE5NFxcMDAwXFxcbiAgICBcXDAxNVxcMDAwXFwyNTVcXDI1NVxcMTkwXFwwMDBcXDE4OFxcMDAwXFwxODdcXDAwMFxcMTkzXFwwMDBcXDE4M1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwyNTRcXDI1NVxcMTkxXFwwMDBcXDIwMVxcMDAwXFwyMDBcXDAwMFxcMTk2XFwwMDBcXDIwM1xcMDAwXFwxOTNcXDAwMFxcMTg5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDE1N1xcMDAzXFwwOTVcXDAwM1xcMTc0XFwwMDNcXDE5NlxcMDAzXFwyMDZcXDAwM1xcMjE2XFwwMDNcXDIyOFxcMDAzXFxcbiAgICBcXDIzOVxcMDAzXFwwNjBcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDEyXFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwwODdcXDAwNFxcMjU1XFwyNTVcXDE0NVxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyMVxcMDA0XFwyNTVcXDI1NVxcMjI5XFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMxXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMThcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzNFxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM4XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMFxcMDAxXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjA4XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIxMVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4OVxcMDAwXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwOTVcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDUwXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyNlxcMDAxXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzM1xcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMjJcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwNVxcMjM3XFwyNTVcXDIzOFxcMjU1XFwwMTBcXDAwMFxcMjQwXFwyNTVcXDA0NFxcMDAxXFxcbiAgICBcXDI0M1xcMjU1XFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDI0NlxcMjU1XFwwNjFcXDAwMVxcMDAyXFwwMDRcXDI0OVxcMjU1XFwwNDVcXDAwNVxcXG4gICAgXFwyMDlcXDAwMFxcMjI4XFwwMDBcXDIxMVxcMDAwXFwyMzJcXDAwMFxcMjI1XFwwMDBcXDIyM1xcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjM1XFwwMDBcXDIzNFxcMDAwXFwwMDhcXDAwMVxcMjU0XFwyNTVcXDAwNFxcMDAxXFwwMjNcXDAwMVxcMjUzXFwyNTVcXDA1NFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwwMzFcXDAwMVxcMDI5XFwwMDFcXDAzMlxcMDAxXFwwMzlcXDAwMVxcMDQ5XFwwMDFcXDA0NVxcMDAxXFwyNTFcXDI1NVxcXG4gICAgXFwwNTdcXDAwMVxcMDgyXFwwMDFcXDA4MFxcMDAxXFwwNzhcXDAwMVxcMDg0XFwwMDFcXDA3NFxcMDAxXFwwODZcXDAwMVxcMjUwXFwyNTVcXFxuICAgIFxcMTEwXFwwMDVcXDAxMlxcMDA0XFwxMjNcXDAwNVxcMTU1XFwwMDVcXDE2NVxcMDA1XFwxNzdcXDAwNVxcMTg3XFwwMDVcXDE5N1xcMDA1XFxcbiAgICBcXDI0MVxcMjU1XFwxOTlcXDAwMVxcMDc3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMTU0XFwwMDJcXDIyMlxcMDA1XFwyMDlcXDAwNVxcXG4gICAgXFwxNTVcXDAwMlxcMjM5XFwwMDVcXDA1M1xcMDA2XFwwNzZcXDAwNlxcMTE0XFwwMDZcXDAxNlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTJcXDAwNlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjdcXDAwNlxcMjU1XFwyNTVcXDA4NVxcMDA3XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDExXFwwMDBcXDI0N1xcMjU1XFwwNzZcXDAwMlxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzMVxcMDAyXFwyNDNcXDAwNVxcMDUxXFwwMDdcXDEwMFxcMDAxXFwxMTVcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDExOFxcMDAxXFwxNTRcXDAwMVxcMTcxXFwwMDFcXDI1NVxcMjU1XFwxNzNcXDAwMVxcMTc2XFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODdcXDAwMVxcMjUzXFwwMDFcXDIzMFxcMDAxXFwyMzBcXDAwMVxcMjM0XFwwMDFcXDI0N1xcMDAxXFwyMzdcXDAwMVxcXG4gICAgXFwyMzRcXDAwMVxcMDA5XFwwMDJcXDAxOVxcMDAyXFwwMTlcXDAwMlxcMDE1XFwwMDJcXDAyMVxcMDAyXFwwMTFcXDAwMlxcMDA3XFwwMDJcXFxuICAgIFxcMTQyXFwwMDZcXDE1MlxcMDA2XFwxMTZcXDAwN1xcMTcwXFwwMDdcXDE4MFxcMDA3XFwxOTBcXDAwN1xcMjAwXFwwMDdcXDIxMFxcMDA3XFxcbiAgICBcXDI0OFxcMjU1XFwxMjBcXDAwMlxcMTY3XFwwMDJcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjE2XFwwMDJcXDA4MlxcMDA3XFwyMjBcXDAwN1xcXG4gICAgXFwyMzZcXDAwMlxcMjQ0XFwwMDdcXDA1OFxcMDA4XFwwODFcXDAwOFxcMTE5XFwwMDhcXDA3NlxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxNTdcXDAwOFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMzJcXDAwOFxcMjU1XFwyNTVcXDEzNVxcMDAyXFxcbiAgICBcXDEyMFxcMDAyXFwyNTNcXDI1NVxcMTAwXFwwMDJcXDI1NFxcMjU1XFwxODJcXDAwMlxcMjU1XFwyNTVcXDAxMVxcMDAyXFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA0NlxcMDAyXFwyNTVcXDI1NVxcMTc4XFwwMDJcXFxuICAgIFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAyM1xcMDAwXFwyNTVcXDI1NVxcMTgzXFwwMDJcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAyXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjFcXDAwMlxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDE5XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0MFxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDE1MFxcMDAxXFwxNTFcXDAwMVxcMTU0XFwwMDFcXDE2OFxcMDAxXFxcbiAgICBcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTcyXFwwMDFcXDE3M1xcMDAxXFwxODFcXDAwMVxcMTg0XFwwMDFcXDE4NVxcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkzXFwwMDFcXDE5NVxcMDAxXFwxOTZcXDAwMVxcMTk3XFwwMDFcXDIwMFxcMDAxXFwyMDNcXDAwMVxcMjIzXFwwMDFcXFxuICAgIFxcMjI1XFwwMDFcXDIyOFxcMDAxXFwyNDlcXDAwMVxcMjUxXFwwMDFcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFxcbiAgICBcXDAxM1xcMDAyXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmsgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXFxuICAgIFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMDA4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDE0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDA0XFwwMDBcXDAwNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAzXFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwN1xcMDAwXFwwMDdcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwNlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfZGVmYXVsdCA9XG4gICBcIlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwNTdcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDY1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDg0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDA5N1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTA0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTNcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTIxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDEzOFxcMDAwXFwwMDBcXDAwMFxcMTQyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE1NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDE3OFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTg3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjM1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzOVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0OVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxN1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMzJcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAzOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDQ3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY0XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTIxXFwwMDFcXDEyNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxNDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMTkzXFwwMDFcXDE5N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjIwXFwwMDFcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjI2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIzM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0MFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAwMFxcMDAwXFwwMDVcXDAwMlxcMDA2XFwwMDJcXDAwN1xcMDAyXFwwMDhcXDAwMlxcXG4gICAgXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwMTVcXDAwMlxcMDE2XFwwMDJcXFxuICAgIFxcMDE3XFwwMDJcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDAyMVxcMDAyXFwwMjJcXDAwMlxcMDIzXFwwMDJcXDAyNFxcMDAyXFxcbiAgICBcXDAyNVxcMDAyXFwwMjZcXDAwMlxcMDI3XFwwMDJcXDAyOFxcMDAyXFwwMjlcXDAwMlxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcXG4gICAgXFwwMzNcXDAwMlxcMDAzXFwwMDJcIjtcbiAgTGV4aW5nLmxleF90cmFucyA9XG4gICBcIlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDA0XFwwMDBcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMDAzXFwwMDBcXDEzNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjdcXDAwMFxcMTM5XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMDEyXFwwMDBcXDAwM1xcMDAwXFwxNzBcXDAwMFxcMTM0XFwwMDBcXDE3NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDdcXDAwMFxcMDExXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDE0XFwwMDFcXDAxM1xcMDAwXFwwNDlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDU2XFwwMDBcXDExOFxcMDAwXFwwMDZcXDAwMFxcMTI5XFwwMDBcXDEzMFxcMDAwXFwwNTdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMVxcMTM3XFwwMDBcXDAwMFxcMDAyXFwwNDlcXDAwMFxcMDAwXFwwMDBcXDA0OFxcMDAwXFwxMzhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMDYyXFwwMDBcXDAxNFxcMDAwXFwxMTBcXDAwMFxcMTA1XFwwMDBcXDAwMFxcMDAwXFwwNDlcXDAwMFxcMDE1XFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDMwXFwwMDBcXDA0OFxcMDAwXFwwMDhcXDAwMFxcMTE0XFwwMDBcXDIwOVxcMDAwXFwyMzZcXDAwMFxcMDAwXFwwMDFcXFxuICAgIFxcMDEzXFwwMDFcXDAyOVxcMDAwXFwwMjJcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDE3XFwwMDBcXDAyMVxcMDAwXFxcbiAgICBcXDAyNVxcMDAwXFwwMzJcXDAwMFxcMDMzXFwwMDBcXDAzNVxcMDAwXFwwMjNcXDAwMFxcMDI3XFwwMDBcXDAxNlxcMDAwXFwwMzFcXDAwMFxcXG4gICAgXFwwMjhcXDAwMFxcMDM0XFwwMDBcXDAxOVxcMDAwXFwwMjRcXDAwMFxcMDE4XFwwMDBcXDAyNlxcMDAwXFwwMjBcXDAwMFxcMDM2XFwwMDBcXFxuICAgIFxcMDQxXFwwMDBcXDAzN1xcMDAwXFwwNDhcXDAwMFxcMDA5XFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXDA0NVxcMDAwXFxcbiAgICBcXDA0NlxcMDAwXFwwNDdcXDAwMFxcMDYxXFwwMDBcXDA4NVxcMDAwXFwwNDhcXDAwMFxcMDM4XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDY3XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NlxcMDAwXFwxNDNcXDAwMFxcMjU1XFwyNTVcXDA0MFxcMDAwXFwxNDRcXDAwMFxcXG4gICAgXFwxNDVcXDAwMFxcMTQ2XFwwMDBcXDA1NVxcMDAwXFwxNDhcXDAwMFxcMDU1XFwwMDBcXDE0OVxcMDAwXFwwNDhcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDE1MFxcMDAwXFxcbiAgICBcXDE1MVxcMDAwXFwxNjFcXDAwMFxcMDY2XFwwMDBcXDE1OFxcMDAwXFwwNTNcXDAwMFxcMTU5XFwwMDBcXDA1M1xcMDAwXFwxNjBcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMTY1XFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MlxcMDAwXFwxNjNcXDAwMFxcMTY2XFwwMDBcXDA5M1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDJcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMjU1XFwyNTVcXDA3N1xcMDAwXFwxMDNcXDAwMFxcMTA4XFwwMDBcXDExNlxcMDAwXFxcbiAgICBcXDEzMlxcMDAwXFwxMzRcXDAwMFxcMTM1XFwwMDBcXDEyOFxcMDAwXFwxMzlcXDAwMFxcMTM0XFwwMDBcXDE2NFxcMDAwXFwwOTNcXDAwMFxcXG4gICAgXFwxNzFcXDAwMFxcMDc3XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTY5XFwwMDBcXDE3MlxcMDAwXFwxMTJcXDAwMFxcMTczXFwwMDBcXFxuICAgIFxcMTc0XFwwMDBcXDIxMFxcMDAwXFwyMjZcXDAwMFxcMjA4XFwwMDBcXDIxMVxcMDAwXFwyMTJcXDAwMFxcMDU5XFwwMDBcXDA4M1xcMDAwXFxcbiAgICBcXDEzNFxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTZcXDAwMFxcMjE4XFwwMDBcXDE0MVxcMDAwXFwyMTlcXDAwMFxcXG4gICAgXFwwOTNcXDAwMFxcMjIwXFwwMDBcXDIyMVxcMDAwXFwxMjNcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwyMjRcXDAwMFxcMTM2XFwwMDBcXFxuICAgIFxcMDk1XFwwMDBcXDIyNVxcMDAwXFwwMzVcXDAwMVxcMDY1XFwwMDFcXDIzNFxcMDAwXFwxNTVcXDAwMFxcMDA1XFwwMDFcXDA5N1xcMDAxXFxcbiAgICBcXDI1MFxcMDAwXFwyNTVcXDI1NVxcMjU0XFwwMDBcXDA1N1xcMDAxXFwwNjFcXDAwMVxcMDk1XFwwMDFcXDA3N1xcMDAwXFwwNDRcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDg4XFwwMDFcXDAwOVxcMDAxXFwwMjlcXDAwMVxcMDc2XFwwMDBcXDEyNFxcMDAwXFwwMzNcXDAwMVxcMDE4XFwwMDFcXFxuICAgIFxcMDc1XFwwMDBcXDA5OFxcMDAwXFwwMTlcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwODdcXDAwMVxcMTIwXFwwMDFcXDA4OVxcMDAxXFxcbiAgICBcXDA3NFxcMDAwXFwyMjVcXDAwMFxcMDUzXFwwMDFcXDEyMVxcMDAxXFwwNzNcXDAwMFxcMDkwXFwwMDFcXDA3MlxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOThcXDAwMFxcMTEzXFwwMDFcXDEyMlxcMDAwXFwwOTFcXDAwMVxcMDY0XFwwMDBcXDAwNFxcMDAxXFxcbiAgICBcXDA5M1xcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDE1NlxcMDAwXFwxMTJcXDAwMVxcMDk0XFwwMDFcXDA5NlxcMDAxXFwwOThcXDAwMVxcMDk5XFwwMDFcXDA0OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDEwMFxcMDAxXFwxNTdcXDAwMFxcXG4gICAgXFwxMDFcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMTgzXFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwwMjRcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwMjVcXDAwMVxcMTAyXFwwMDFcXDEwM1xcMDAxXFwxMDVcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDEwNlxcMDAxXFwxMDdcXDAwMVxcMDQ4XFwwMDFcXDA0MFxcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDExMFxcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDExMVxcMDAxXFxcbiAgICBcXDAyN1xcMDAxXFwyNTVcXDI1NVxcMTcxXFwwMDFcXDAzMVxcMDAxXFwxNzBcXDAwMVxcMDIzXFwwMDFcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDkyXFwwMDBcXDE2OFxcMDAxXFwwNjNcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwyNDhcXDAwMFxcMTY1XFwwMDFcXDI1MlxcMDAwXFxcbiAgICBcXDE2MlxcMDAxXFwwNTlcXDAwMVxcMDY5XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDI1NVxcMjU1XFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDM5XFwwMDFcXDA0MlxcMDAxXFwyNTVcXDI1NVxcMTYzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDEyMFxcMDAwXFwwMDJcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwxNjZcXDAwMVxcMDU1XFwwMDFcXDE1M1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAwN1xcMDAxXFwxNjdcXDAwMVxcMTY0XFwwMDFcXDE2OVxcMDAxXFwwMTZcXDAwMVxcMTY0XFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDUxXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTM3XFwwMDFcXDE2NFxcMDAxXFwxNzJcXDAwMVxcMTg1XFwwMDFcXDEzNlxcMDAxXFwxNzNcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTdcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMTc0XFwwMDFcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA0NlxcMDAxXFxcbiAgICBcXDE3NVxcMDAxXFwxNzZcXDAwMVxcMTgwXFwwMDBcXDE2NFxcMDAxXFwxODRcXDAwMVxcMTgxXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTI0XFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMTkyXFwwMDFcXDE3OFxcMDAxXFxcbiAgICBcXDAyMVxcMDAxXFwxNzlcXDAwMVxcMDk3XFwwMDBcXDE5M1xcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFwxODNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMjE2XFwwMDFcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMTg0XFwwMDFcXDIxNlxcMDAxXFwyMDlcXDAwMVxcMDk3XFwwMDBcXFxuICAgIFxcMjIzXFwwMDFcXDA5N1xcMDAwXFwyMDhcXDAwMVxcMjMwXFwwMDFcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjE5XFwwMDFcXDAzN1xcMDAxXFxcbiAgICBcXDIxNlxcMDAxXFwyMTdcXDAwMVxcMDAzXFwwMDJcXDIyMFxcMDAxXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIxNlxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwxMjZcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk3XFwwMDBcXDAwM1xcMDAyXFwyMThcXDAwMVxcMjUwXFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDEyNFxcMDAxXFwxMjRcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFxcbiAgICBcXDIyMVxcMDAxXFwwMDNcXDAwMlxcMjUzXFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDIzNVxcMDAxXFwwMDNcXDAwMlxcXG4gICAgXFwyNDFcXDAwMVxcMDAzXFwwMDJcXDI1NVxcMDAxXFwyNDJcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjQ2XFwwMDFcXDEyOVxcMDAxXFwxMjlcXDAwMVxcXG4gICAgXFwyMjhcXDAwMVxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwMDNcXDAwMlxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwMDNcXDAwMlxcMTk4XFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDE5NlxcMDAxXFwyMzRcXDAwMVxcXG4gICAgXFwxMzRcXDAwMVxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMVxcMDAxXFwxNzdcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODhcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMjAxXFwwMDFcXDIyN1xcMDAxXFwwMDBcXDAwMFxcMTkxXFwwMDBcXDIwNlxcMDAxXFwxMjNcXDAwMVxcMTg5XFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxODlcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTVcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI0OFxcMDAxXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTZcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwyMDJcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMDVcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMjZcXDAwMFxcMTk1XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA2XFwwMDBcXDIyMVxcMDAxXFwyMzlcXDAwMVxcXG4gICAgXFwyNTRcXDAwMVxcMDAwXFwwMDBcXDIwN1xcMDAwXFwyNDRcXDAwMVxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMDNcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMVxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjE3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIzMFxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODZcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTNcXDAwMVxcMDAwXFwwMDBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDAwMFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDIwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMjQ2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjM4XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY5XFwwMDFcXDA3MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFwwNzZcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDA3OFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA0XFwwMDFcXDA3M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzlcXDAwMVxcMDAwXFwwMDBcXDA3MVxcMDAxXFwwNzZcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDcyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyNDNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwODBcXDAwMVxcMTE5XFwwMDFcXDAwMFxcMDAwXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDA4MVxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA4M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTdcXDAwMVxcMDAwXFwwMDBcXDA3NVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxODVcXDAwMVxcMDAwXFwwMDBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyN1xcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyN1xcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTkxXFwwMDFcXDE0MlxcMDAxXFwxOTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0NlxcMDAxXFwxNDdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NlxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTQ2XFwwMDFcXDAwMFxcMDAwXFwxNTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTc3XFwwMDFcXDE1MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNTZcXDAwMVxcMDAwXFwwMDBcXDE0OFxcMDAxXFwxNTRcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTQ5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTM5XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OFxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxODdcXDAwMVxcMDAwXFwwMDBcXDE2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTlcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE2MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTg5XFwwMDFcXDAwMFxcMDAwXFwxODlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0NVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTk5XFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIxNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjExXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFwiO1xuICBMZXhpbmcubGV4X2NoZWNrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDU3XFwwMDBcXDI1NVxcMjU1XFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAzXFwwMDBcXDE2OVxcMDAwXFwxMzRcXDAwMFxcMTc0XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMTBcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTJcXDAwMVxcMDAwXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDVcXDAwMFxcMTE1XFwwMDBcXDAwMFxcMDAwXFwxMjVcXDAwMFxcMTI5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDIzNlxcMDAxXFwxMzZcXDAwMFxcMjU1XFwwMDFcXDAzOFxcMDAwXFwyNTVcXDI1NVxcMDEwXFwwMDBcXDEzNlxcMDAwXFwxMDJcXDAwMFxcXG4gICAgXFwwNThcXDAwMFxcMDAwXFwwMDBcXDEwN1xcMDAwXFwxMDJcXDAwMFxcMjU1XFwyNTVcXDAxMVxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMjlcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwxMTFcXDAwMFxcMjA4XFwwMDBcXDIzM1xcMDAwXFwyNTVcXDAwMFxcXG4gICAgXFwwMTJcXDAwMVxcMDE1XFwwMDBcXDAxN1xcMDAwXFwwNjBcXDAwMFxcMDExXFwwMDBcXDAxMFxcMDAwXFwwMDBcXDAwMFxcMDIwXFwwMDBcXFxuICAgIFxcMDI0XFwwMDBcXDAzMVxcMDAwXFwwMzJcXDAwMFxcMDM0XFwwMDBcXDAyMlxcMDAwXFwwMjZcXDAwMFxcMDAwXFwwMDBcXDAxNFxcMDAwXFxcbiAgICBcXDAyN1xcMDAwXFwwMzNcXDAwMFxcMDE4XFwwMDBcXDAyM1xcMDAwXFwwMDBcXDAwMFxcMDE2XFwwMDBcXDAxOVxcMDAwXFwwMzVcXDAwMFxcXG4gICAgXFwwNDBcXDAwMFxcMDM2XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMDQxXFwwMDBcXDA0MlxcMDAwXFwwNDNcXDAwMFxcMDQ0XFwwMDBcXFxuICAgIFxcMDQ1XFwwMDBcXDA0NlxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXDAxMVxcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFxcbiAgICBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwNjNcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg1XFwwMDBcXDE0MFxcMDAwXFwwNjBcXDAwMFxcMDEzXFwwMDBcXDE0M1xcMDAwXFxcbiAgICBcXDE0NFxcMDAwXFwxNDVcXDAwMFxcMDQ4XFwwMDBcXDE0N1xcMDAwXFwwNDhcXDAwMFxcMTQ4XFwwMDBcXDAzOVxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA2NVxcMDAwXFwwMzlcXDAwMFxcMTQ5XFwwMDBcXFxuICAgIFxcMTUwXFwwMDBcXDE1NlxcMDAwXFwwNjNcXDAwMFxcMTU3XFwwMDBcXDA1MVxcMDAwXFwxNThcXDAwMFxcMDUxXFwwMDBcXDE1OVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFxcbiAgICBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwxNTVcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYxXFwwMDBcXDE2MlxcMDAwXFwxNTVcXDAwMFxcMDkxXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcXG4gICAgXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTdcXDAwMFxcMDY4XFwwMDBcXDEwMlxcMDAwXFwxMDdcXDAwMFxcMTE1XFwwMDBcXFxuICAgIFxcMTMxXFwwMDBcXDEzM1xcMDAwXFwxMzNcXDAwMFxcMTI1XFwwMDBcXDEzOFxcMDAwXFwxMzNcXDAwMFxcMTYzXFwwMDBcXDA5NFxcMDAwXFxcbiAgICBcXDE2NVxcMDAwXFwwNjhcXDAwMFxcMTY2XFwwMDBcXDE2N1xcMDAwXFwxNjhcXDAwMFxcMTcxXFwwMDBcXDExMVxcMDAwXFwxNzJcXDAwMFxcXG4gICAgXFwxNzNcXDAwMFxcMjA2XFwwMDBcXDIwM1xcMDAwXFwyMDdcXDAwMFxcMjEwXFwwMDBcXDIxMVxcMDAwXFwwNThcXDAwMFxcMDgyXFwwMDBcXFxuICAgIFxcMTMzXFwwMDBcXDIxMlxcMDAwXFwyMTNcXDAwMFxcMjE0XFwwMDBcXDIxNVxcMDAwXFwyMTdcXDAwMFxcMTQwXFwwMDBcXDIxOFxcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwyMTlcXDAwMFxcMjIwXFwwMDBcXDExOVxcMDAwXFwyMjFcXDAwMFxcMjIyXFwwMDBcXDIyM1xcMDAwXFwxMzNcXDAwMFxcXG4gICAgXFwwOTFcXDAwMFxcMjAzXFwwMDBcXDAzNFxcMDAxXFwwNjJcXDAwMVxcMjMzXFwwMDBcXDE1MlxcMDAwXFwwMDFcXDAwMVxcMDgwXFwwMDFcXFxuICAgIFxcMjQ3XFwwMDBcXDA2MFxcMDAwXFwyNTFcXDAwMFxcMDU0XFwwMDFcXDA1OFxcMDAxXFwwODFcXDAwMVxcMDY4XFwwMDBcXDA0MVxcMDAxXFxcbiAgICBcXDA4MlxcMDAxXFwwODNcXDAwMVxcMDA2XFwwMDFcXDAyNlxcMDAxXFwwNjhcXDAwMFxcMTE5XFwwMDBcXDAzMFxcMDAxXFwwMTVcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMDk0XFwwMDBcXDAxNVxcMDAxXFwwODRcXDAwMVxcMDg1XFwwMDFcXDA4NlxcMDAxXFwwNzFcXDAwMVxcMDg4XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDIwM1xcMDAwXFwwNTBcXDAwMVxcMDcxXFwwMDFcXDA2OFxcMDAwXFwwODlcXDAwMVxcMDY4XFwwMDBcXDA2OFxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA5N1xcMDAwXFwwNzZcXDAwMVxcMTE5XFwwMDBcXDA5MFxcMDAxXFwwNjNcXDAwMFxcMDAxXFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMTUyXFwwMDBcXDA3NlxcMDAxXFwwOTNcXDAwMVxcMDk1XFwwMDFcXDA5N1xcMDAxXFwwOThcXDAwMVxcMDQ1XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk5XFwwMDFcXDE1MlxcMDAwXFxcbiAgICBcXDEwMFxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDAyMFxcMDAxXFwwNzZcXDAwMVxcMDY1XFwwMDBcXDAyMFxcMDAxXFwxMDFcXDAwMVxcMTAyXFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMTA1XFwwMDFcXDEwNlxcMDAxXFwwNDVcXDAwMVxcMDM2XFwwMDFcXDEwN1xcMDAxXFwxMDhcXDAwMVxcMTA5XFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMTEwXFwwMDFcXFxuICAgIFxcMDI2XFwwMDFcXDEyMVxcMDAxXFwxNTdcXDAwMVxcMDMwXFwwMDFcXDE1OFxcMDAxXFwwMjBcXDAwMVxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwOTFcXDAwMFxcMTU5XFwwMDFcXDA2MlxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDI0N1xcMDAwXFwxNjBcXDAwMVxcMjUxXFwwMDBcXFxuICAgIFxcMTYxXFwwMDFcXDA1OFxcMDAxXFwwNjhcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDk0XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMzZcXDAwMVxcMDQxXFwwMDFcXDA5N1xcMDAwXFwxNjJcXDAwMVxcXG4gICAgXFwxNjNcXDAwMVxcMTE5XFwwMDBcXDAwMVxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDE2NVxcMDAxXFwwNTRcXDAwMVxcMTUyXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDA2XFwwMDFcXDE2NlxcMDAxXFwxNjdcXDAwMVxcMTY4XFwwMDFcXDAxNVxcMDAxXFwxNjlcXDAwMVxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNTBcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxMzNcXDAwMVxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNTRcXDAwMVxcMTMzXFwwMDFcXDE3MlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5NVxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzNcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDQ1XFwwMDFcXFxuICAgIFxcMTc0XFwwMDFcXDE3NVxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDFcXDE1NFxcMDAxXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxMjJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwxNDhcXDAwMVxcMTc3XFwwMDFcXFxuICAgIFxcMDIwXFwwMDFcXDE3OFxcMDAxXFwwOThcXDAwMFxcMTQ4XFwwMDFcXDE3OVxcMDAxXFwxODBcXDAwMVxcMTgxXFwwMDFcXDE4MlxcMDAxXFxcbiAgICBcXDE4M1xcMDAxXFwyMTZcXDAwMVxcMTkzXFwwMDFcXDA5NVxcMDAwXFwxNTRcXDAwMVxcMjE2XFwwMDFcXDIwNVxcMDAxXFwwOThcXDAwMFxcXG4gICAgXFwyMjJcXDAwMVxcMDk1XFwwMDBcXDIwNVxcMDAxXFwyMjlcXDAwMVxcMDAxXFwwMDJcXDA5NVxcMDAwXFwyMThcXDAwMVxcMDM2XFwwMDFcXFxuICAgIFxcMjE1XFwwMDFcXDIxNVxcMDAxXFwwMDJcXDAwMlxcMjE4XFwwMDFcXDIxNVxcMDAxXFwwOTVcXDAwMFxcMDA0XFwwMDJcXDAwNVxcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTVcXDAwMFxcMDA2XFwwMDJcXDA5NVxcMDAwXFwwOTVcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMjE1XFwwMDFcXFxuICAgIFxcMDA3XFwwMDJcXDEyMlxcMDAxXFwwMDhcXDAwMlxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOThcXDAwMFxcMDEyXFwwMDJcXDIxNVxcMDAxXFwyNDdcXDAwMVxcXG4gICAgXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDA5OFxcMDAwXFwwMTVcXDAwMlxcMTI1XFwwMDFcXDEyOFxcMDAxXFwwOThcXDAwMFxcMDE2XFwwMDJcXFxuICAgIFxcMjIwXFwwMDFcXDAxN1xcMDAyXFwyNTFcXDAwMVxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDk4XFwwMDBcXDEyMVxcMDAxXFxcbiAgICBcXDAyMVxcMDAyXFwxOTRcXDAwMVxcMDk4XFwwMDBcXDAyMlxcMDAyXFwwOThcXDAwMFxcMDk4XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjMxXFwwMDFcXDAyM1xcMDAyXFxcbiAgICBcXDIzOFxcMDAxXFwwMjRcXDAwMlxcMjUxXFwwMDFcXDIzOFxcMDAxXFwwMjVcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyNDNcXDAwMVxcMTI1XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDIyNFxcMDAxXFwwMjZcXDAwMlxcMTk3XFwwMDFcXDAyN1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDAyOFxcMDAyXFwxOTRcXDAwMVxcMDI5XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDMwXFwwMDJcXDAzMVxcMDAyXFwwMzJcXDAwMlxcMjAwXFwwMDFcXDIzMVxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNTVcXDI1NVxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk3XFwwMDFcXDE3NlxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwyNTVcXDI1NVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjI0XFwwMDFcXDI1NVxcMjU1XFwxODVcXDAwMFxcMjA1XFwwMDFcXDEyMlxcMDAxXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXFxuICAgIFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTNcXDAwMVxcMjQ3XFwwMDFcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OVxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDE5OVxcMDAwXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFxcbiAgICBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDIwNFxcMDAwXFwxOTRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjIwXFwwMDFcXDIzOFxcMDAxXFxcbiAgICBcXDI1MVxcMDAxXFwyNTVcXDI1NVxcMTk5XFwwMDBcXDI0M1xcMDAxXFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNFxcMDAxXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwxOTdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMjhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjI4XFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXFxuICAgIFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NVxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDA3N1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXFxuICAgIFxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTkyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMTk5XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyMzdcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNzlcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTE1XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNVxcMDAxXFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcXG4gICAgXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcXG4gICAgXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFxcbiAgICBcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMTI2XFwwMDFcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMTI5XFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxODRcXDAwMVxcMTM4XFwwMDFcXDE4NFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcXG4gICAgXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNTZcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDE4NlxcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxOThcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMVxcMjU1XFwyNTVcXDE4N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxODZcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcXG4gICAgXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDIwMVxcMDAxXFwyMDFcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XCI7XG4gIExleGluZy5sZXhfYmFzZV9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfYmFja3Rya19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfZGVmYXVsdF9jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfdHJhbnNfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NoZWNrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jb2RlID1cbiAgIFwiXCI7XG59XG5cbmxldCByZWMgcmVhZF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIHRydWUgKVxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCBmYWxzZSApXG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBOdWxsIClcblxuIyAxMDQyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDQzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDE5MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIGBGbG9hdCBuYW5cbiAgICAgICAgICAgICAgICBcbiMgMTk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgaW5maW5pdHlcbiAgICAgICAgICAgICAgICBcbiMgMjA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgbmVnX2luZmluaXR5XG4gICAgICAgICAgICAgICAgXG4jIDIxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICBgU3RyaW5nIChmaW5pc2hfc3RyaW5nIHYgbGV4YnVmKVxuICAgICAgICAgICAgICAgIFxuIyAyMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDg4IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgKGZsb2F0X29mX3N0cmluZyAobGV4ZW1lIGxleGJ1ZikpXG4gICAgICAgICAgICAgICAgIFxuIyAyMjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICBgQXNzb2MgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTM1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTM2IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgYExpc3QgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTU1IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgMjg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyAzMDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTE5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDE5IC0+XG5cbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMTIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgNThcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jb250ZW50cyB2LmJ1ZiApXG5cbiMgMTIzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQ3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyNTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX3N0cmluZyB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgNjNcbmFuZCBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggbGV0IGIgPSB2LmJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICBmIChCdWZmZXIuY29udGVudHMgYikgMCAoQnVmZmVyLmxlbmd0aCBiKSApXG5cbiMgMTI2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiA2OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIGNcblxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgaW5cblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmIGMgKVxuXG4jIDEyOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXGInIClcblxuIyAxMzAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFwwMTInIClcblxuIyAxMzA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJyApXG5cbiMgMTMxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xccicgKVxuXG4jIDEzMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHQnIClcblxuIyAxMzIzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzI0IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cbmxldFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgYVxuXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAxKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KSBpblxuXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB4ID49IDB4RDgwMCAmJiB4IDw9IDB4REJGRiB0aGVuXG4gICAgICAgICAgICAgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWZcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIHV0Zjhfb2ZfY29kZSB2LmJ1ZiB4XG4gICAgICAgICApXG5cbiMgMTM1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2VcIiB2IGxleGJ1ZiApXG5cbiMgMTM2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzY2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiA4MlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIGFcblxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNClcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNSkgaW5cblxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB5ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeSA+PSAweERDMDAgJiYgeSA8PSAweERGRkYgdGhlblxuICAgICAgICAgICAgIHV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIgdi5idWYgeCB5XG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCBsb3cgc3Vycm9nYXRlIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIlxuICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgIClcblxuIyAxNDA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDA2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJNaXNzaW5nIGVzY2FwZSBzZXF1ZW5jZSByZXByZXNlbnRpbmcgbG93IHN1cnJvZ2F0ZSBcXFxuICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCIgdiBsZXhidWYgKVxuXG4jIDE0MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA5MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgICAgICAgICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAobGVuKzEpIGluXG4gICAgICAgICAgIEJ5dGVzLnNldCBzIDAgJ1wiJztcbiAgICAgICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBzIDEgbGVuO1xuICAgICAgICAgICBCeXRlcy50b19zdHJpbmcgc1xuICAgICAgICAgKVxuXG4jIDE0MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMTQzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDQ0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMDJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9IHJlYWRfanNvbiB2IGxleGJ1ZiBpblxuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmO1xuICAgICAgICAgICBTb21lIHggKVxuXG4jIDE0NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggTm9uZSApXG5cbiMgMTQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2x0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIDEwN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMTQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgMTExXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb21tYSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiAxMTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgMTE5XG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgRWRneV9icmFja2V0IClcblxuIyAxNTUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTUyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgYERvdWJsZV9xdW90ZSApXG5cbiMgMTU1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBTcXVhcmVfYnJhY2tldCApXG5cbiMgMTU2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcsICdcXFwiJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgMTI1XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDE1ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZW9mIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIDEzMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTYxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIDEzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiAxNDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ251bGwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsX2lmX3Bvc3NpYmxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgMTQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjgyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjgzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTY4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYm9vbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIDE1MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE3MDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAndHJ1ZScgb3IgJ2ZhbHNlJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTcxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgMTc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzM5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludGVnZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxNzYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludGVnZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDMyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIDE4NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50MzIub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50MzIub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDMyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTgwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQzMiBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4MTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQ2NCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiAxOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDY0Lm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxODI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDY0Lm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQ2NCBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4NDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50NjQgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODU4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVtYmVyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiAxOTlcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5hbiApXG5cbiMgMTg2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGluZmluaXR5IClcblxuIyAxODc0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODc1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmVnX2luZmluaXR5IClcblxuIyAxODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODgwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmxvYXRfb2Zfc3RyaW5nIChsZXhlbWUgbGV4YnVmKSApXG5cbiMgMTg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgZmxvYXQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzLiAqKVxuICAgICAgICAgICAgICAgICAgICBmbG9hdF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJOYU5cIiAtPiBuYW5cbiAgICAgICAgICAgICAgICAgICAgICB8IFwiSW5maW5pdHlcIiAtPiBpbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXCItSW5maW5pdHlcIiAtPiBuZWdfaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhIG51bWJlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGEgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgIClcblxuIyAxOTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTA3IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIG51bWJlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiAyMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1xcXCInIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiAyMzdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTk1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5sZXRcblxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIHNcblxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZSBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGxleGJ1Zi5MZXhpbmcubGV4X2N1cnJfcG9zIGluXG5cbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHMgKVxuXG4jIDE5NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9pZGVudCB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiAyNDJcbmFuZCBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTk4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIG1hcF9sZXhlbWUgZiBsZXhidWYgKVxuXG4jIDE5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDAxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NlcXVlbmNlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjAyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgMjUxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjA2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwNjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiAyNTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIwODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjA4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiAyNTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTAxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTAyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTA3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxMTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjYyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgNjMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDYzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyMTUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTUxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjE1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIDI2NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTc3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTc4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiAyNjhcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjA2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiAyNzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjMzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIDI3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjI0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjI1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjY2IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIDI4MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjMwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzE1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGN1cmwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgMjg2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiAyOTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzU0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDI5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzY2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzc2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjM4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgMjk3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3R1cGxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgMzAxXG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDI0MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCB0cnVlIClcblxuIyAyNDE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDIwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDMwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9scGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgMzA2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQ3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcnBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIDMxMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgMzE0XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgMzE4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiAzMjJcbmFuZCBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTUwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI1NTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTY1IFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTk2IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODE1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDgxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjM3IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgODI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2NTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjcxIFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjY3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI2ODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2ODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiAzNzhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI2OTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjY5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiAzODlcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZiApXG5cbiMgMjcxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjcyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjcyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzMyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgMzk0XG5hbmQgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgMzk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjc3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzc2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAneyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODIyIFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDkzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA5MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgOTQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgICAgICAgICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI4ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyODk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODk1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgNDUwXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcIic7XG4gICAgICAgICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMjkwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBzdHJpbmcgbGl0ZXJhbFwiIHYgbGV4YnVmIClcblxuIyAyOTEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5MTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDQ2MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonO1xuICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfZ3QgdiBsZXhidWYgKVxuXG4jIDI5MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMjkzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgNDY2XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI5NjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjk2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfc3BhY2UgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiA0NzFcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIvKlwiO1xuICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDI5OTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5OTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDA3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgNDc4XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nO1xuICAgICAgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiA0ODBcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JzsgcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMzA1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnfScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMwNTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgNDg1XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDc3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzA4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIDQ4N1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxMDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiA0OTJcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJztcbiAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzEyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMxMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiA0OTRcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknOyByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTUwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTU1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIDQ5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JyApXG5cbiMgMzE2NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE2NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9ndCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIDUwM1xuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDMxODggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxODkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDUwN1xuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiKi9cIiApXG5cbiMgMzIxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAzMjE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjE2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXG4nO1xuICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQganVuayBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIDUxM1xuYW5kIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBMZXhpbmcubGV4ZW1lIGxleGJ1ZiApXG5cbiMgMzIzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzI0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG47O1xuXG5cbiMgMTA1NSBcImxpYi9yZWFkLm1sbFwiXG4gXG4gIFxuIyAxMDU2IFwibGliL3JlYWQubWxsXCJcbiAgbGV0IF8gPSAocmVhZF9qc29uIDogbGV4ZXJfc3RhdGUgLT4gTGV4aW5nLmxleGJ1ZiAtPiB0KVxuXG4gIGxldCByZWFkX3QgPSByZWFkX2pzb25cblxuICBsZXQgKCkgPVxuICAgIHJlYWRfanVuayA6PSBqdW5rXG5cbiAgbGV0IHJlYWRfaW50OCB2IGxleGJ1ZiA9XG4gICAgbGV0IG4gPSByZWFkX2ludCB2IGxleGJ1ZiBpblxuICAgIGlmIG4gPCAwIHx8IG4gPiAyNTUgdGhlblxuICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQ4IG92ZXJmbG93XCIgdiBsZXhidWZcbiAgICBlbHNlXG4gICAgICBjaGFyX29mX2ludCBuXG5cbiAgbGV0IHJlYWRfbGlzdCByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIExpc3QucmV2IChyZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZilcblxuICBsZXQgYXJyYXlfb2ZfcmV2X2xpc3QgbCA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgICAgIFtdIC0+IFt8IHxdXG4gICAgICB8IHggOjogdGwgLT5cbiAgICAgICAgICBsZXQgbGVuID0gTGlzdC5sZW5ndGggbCBpblxuICAgICAgICAgIGxldCBhID0gQXJyYXkubWFrZSBsZW4geCBpblxuICAgICAgICAgIGxldCByID0gcmVmIHRsIGluXG4gICAgICAgICAgZm9yIGkgPSBsZW4gLSAyIGRvd250byAwIGRvXG4gICAgICAgICAgICBhLihpKSA8LSBMaXN0LmhkICFyO1xuICAgICAgICAgICAgciA6PSBMaXN0LnRsICFyXG4gICAgICAgICAgZG9uZTtcbiAgICAgICAgICBhXG5cbiAgbGV0IHJlYWRfYXJyYXkgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBsZXQgbCA9IHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmIGluXG4gICAgYXJyYXlfb2ZfcmV2X2xpc3QgbFxuXG4gICgqIFJlYWQgYSBKU09OIG9iamVjdCwgcmVhZGluZyB0aGUga2V5cyBpbnRvIE9DYW1sIHN0cmluZ3NcbiAgICAgKHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAqKVxuICBsZXQgcmVhZF9maWVsZHMgcmVhZF9maWVsZCBpbml0X2FjYyB2ID1cbiAgICByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2lkZW50IHJlYWRfZmllbGQgaW5pdF9hY2MgdlxuXG4gIGxldCBmaW5pc2ggdiBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgaWYgbm90IChyZWFkX2VvZiBsZXhidWYpIHRoZW5cbiAgICAgIGxvbmdfZXJyb3IgXCJKdW5rIGFmdGVyIGVuZCBvZiBKU09OIHZhbHVlOlwiIHYgbGV4YnVmXG5cbiAgbGV0IGluaXRfbGV4ZXIgPSBpbml0X2xleGVyXG5cbiAgbGV0IGZyb21fbGV4YnVmIHYgPyhzdHJlYW0gPSBmYWxzZSkgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuXG4gICAgbGV0IHggPVxuICAgICAgaWYgcmVhZF9lb2YgbGV4YnVmIHRoZW5cbiAgICAgICAgcmFpc2UgRW5kX29mX2lucHV0XG4gICAgICBlbHNlXG4gICAgICAgIHJlYWRfanNvbiB2IGxleGJ1ZlxuICAgIGluXG5cbiAgICBpZiBub3Qgc3RyZWFtIHRoZW5cbiAgICAgIGZpbmlzaCB2IGxleGJ1ZjtcblxuICAgIHhcblxuXG4gIGxldCBmcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9zdHJpbmcgcyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgICBmcm9tX2xleGJ1ZiB2IGxleGJ1ZlxuICAgIHdpdGggRW5kX29mX2lucHV0IC0+XG4gICAgICBqc29uX2Vycm9yIFwiQmxhbmsgaW5wdXQgZGF0YVwiXG5cbiAgbGV0IGZyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICB0cnlcbiAgICAgIGxldCB4ID0gZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljIGluXG4gICAgICBjbG9zZV9pbiBpYztcbiAgICAgIHhcbiAgICB3aXRoIGUgLT5cbiAgICAgIGNsb3NlX2luX25vZXJyIGljO1xuICAgICAgcmFpc2UgZVxuXG4gIGV4Y2VwdGlvbiBGaW5hbGx5IG9mIGV4biAqIGV4blxuXG4gIGxldCBzZXFfZnJvbV9sZXhidWYgdiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgbGV4YnVmID1cbiAgICBsZXQgc3RyZWFtID0gU29tZSB0cnVlIGluXG4gICAgbGV0IHJlYyBmICgpID1cbiAgICAgIHRyeSBTZXEuQ29ucyAoZnJvbV9sZXhidWYgdiA/c3RyZWFtIGxleGJ1ZiwgZilcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgICAgICAgIGZpbiAoKTtcbiAgICAgICAgICAgIFNlcS5OaWxcbiAgICAgICAgfCBlIC0+XG4gICAgICAgICAgICAodHJ5IGZpbiAoKSB3aXRoIGZpbl9lIC0+IHJhaXNlIChGaW5hbGx5IChlLCBmaW5fZSkpKTtcbiAgICAgICAgICAgIHJhaXNlIGVcbiAgICBpblxuICAgIGZcblxuICBsZXQgc2VxX2Zyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IChMZXhpbmcuZnJvbV9zdHJpbmcgcylcblxuICBsZXQgc2VxX2Zyb21fY2hhbm5lbCA/YnVmID9maW4gP2ZuYW1lID9sbnVtIGljID1cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2ID9maW4gbGV4YnVmXG5cbiAgbGV0IHNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiB+ZmluIGxleGJ1ZlxuXG4gIHR5cGUganNvbl9saW5lID0gWyBgSnNvbiBvZiB0IHwgYEV4biBvZiBleG4gXVxuXG4gIGxldCBsaW5lc2VxX2Zyb21fY2hhbm5lbFxuICAgICAgP2J1ZiA/KGZpbiA9IGZ1biAoKSAtPiAoKSkgP2ZuYW1lID9sbnVtOihsbnVtMCA9IDEpIGljID1cbiAgICBsZXQgYnVmID1cbiAgICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIChCdWZmZXIuY3JlYXRlIDI1NilcbiAgICAgICAgfCBTb21lIF8gLT4gYnVmXG4gICAgaW5cbiAgICBsZXQgcmVjIGYgbG51bSA9IGZ1biAoKSAtPlxuICAgICAgdHJ5XG4gICAgICAgIGxldCBsaW5lID0gaW5wdXRfbGluZSBpYyBpblxuICAgICAgICBTZXEuQ29ucyAoYEpzb24gKGZyb21fc3RyaW5nID9idWYgP2ZuYW1lIH5sbnVtIGxpbmUpLCBmIChsbnVtICsgMSkpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2ZpbGUgLT4gZmluICgpOyBTZXEuTmlsXG4gICAgICAgIHwgZSAtPiBTZXEuQ29ucyAoYEV4biBlLCBmIChsbnVtICsgMSkpXG4gICAgaW5cbiAgICBmIGxudW0wXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxpbmVzZXFfZnJvbV9jaGFubmVsID9idWYgfmZpbiA/Zm5hbWUgP2xudW0gaWNcblxuICBsZXQgcHJldHRpZnkgP3N0ZCBzID1cbiAgICBwcmV0dHlfdG9fc3RyaW5nID9zdGQgKGZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IGNvbXBhY3QgP3N0ZCBzID1cbiAgICB0b19zdHJpbmcgKGZyb21fc3RyaW5nIHMpXG5cblxuIyAzNDA4IFwibGliL3JlYWQubWxcIlxuIyA0MiBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBVdGlsID1cbnN0cnVjdFxuIyAxIFwidXRpbC5tbFwiXG5leGNlcHRpb24gVHlwZV9lcnJvciBvZiBzdHJpbmcgKiB0XG5cbmxldCB0eXBlb2YgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBfIC0+IFwib2JqZWN0XCJcbiAgfCBgQm9vbCBfIC0+IFwiYm9vbFwiXG4gIHwgYEZsb2F0IF8gLT4gXCJmbG9hdFwiXG4gIHwgYEludCBfIC0+IFwiaW50XCJcbiAgfCBgTGlzdCBfIC0+IFwiYXJyYXlcIlxuICB8IGBOdWxsIC0+IFwibnVsbFwiXG4gIHwgYFN0cmluZyBfIC0+IFwic3RyaW5nXCJcbiAgfCBgSW50bGl0IF8gLT4gXCJpbnRsaXRcIlxuICB8IGBUdXBsZSBfIC0+IFwidHVwbGVcIlxuICB8IGBWYXJpYW50IF8gLT4gXCJ2YXJpYW50XCJcblxubGV0IHR5cGVyciBtc2cganMgPSByYWlzZSAoVHlwZV9lcnJvciAobXNnIF4gdHlwZW9mIGpzLCBqcykpXG5cbmV4Y2VwdGlvbiBVbmRlZmluZWQgb2Ygc3RyaW5nICogdFxuXG5sZXQgYXNzb2MgbmFtZSBvYmogPVxuICB0cnkgTGlzdC5hc3NvYyBuYW1lIG9ialxuICB3aXRoIE5vdF9mb3VuZCAtPiBgTnVsbFxuXG5sZXQgbWVtYmVyIG5hbWUgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBvYmogLT4gYXNzb2MgbmFtZSBvYmpcbiAgfCBqcyAtPiB0eXBlcnIgKFwiQ2FuJ3QgZ2V0IG1lbWJlciAnXCIgXiBuYW1lIF4gXCInIG9mIG5vbi1vYmplY3QgdHlwZSBcIikganNcblxubGV0IGluZGV4IGkgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgYXMganMgLT5cbiAgICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgICBsZXQgd3JhcHBlZF9pbmRleCA9IGlmIGkgPCAwIHRoZW4gbGVuICsgaSBlbHNlIGkgaW5cbiAgICAgIGlmIHdyYXBwZWRfaW5kZXggPCAwIHx8IHdyYXBwZWRfaW5kZXggPj0gbGVuIHRoZW5cbiAgICAgICAgcmFpc2UgKFVuZGVmaW5lZCAoXCJJbmRleCBcIiBeIHN0cmluZ19vZl9pbnQgaSBeIFwiIG91dCBvZiBib3VuZHNcIiwganMpKVxuICAgICAgZWxzZSBMaXN0Lm50aCBsIHdyYXBwZWRfaW5kZXhcbiAgfCBqcyAtPiB0eXBlcnIgKFwiQ2FuJ3QgZ2V0IGluZGV4IFwiIF4gc3RyaW5nX29mX2ludCBpXG4gICAgICAgICAgICAgICAgIF4gXCIgb2Ygbm9uLWFycmF5IHR5cGUgXCIpIGpzXG5cbmxldCBtYXAgZiA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBgTGlzdCAoTGlzdC5tYXAgZiBsKVxuICB8IGpzIC0+IHR5cGVyciBcIkNhbid0IG1hcCBmdW5jdGlvbiBvdmVyIG5vbi1hcnJheSB0eXBlIFwiIGpzXG5cbmxldCB0b19hc3NvYyA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIG9iaiAtPiBvYmpcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBvYmplY3QsIGdvdCBcIiBqc1xuXG5sZXQgdG9fb3B0aW9uIGYgPSBmdW5jdGlvblxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCB4IC0+IFNvbWUgKGYgeClcblxubGV0IHRvX2Jvb2wgPSBmdW5jdGlvblxuICB8IGBCb29sIGIgLT4gYlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGJvb2wsIGdvdCBcIiBqc1xuXG5sZXQgdG9fYm9vbF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBCb29sIGIgLT4gU29tZSBiXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGJvb2wgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19udW1iZXIgPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBmbG9hdCBpXG4gIHwgYEZsb2F0IGYgLT4gZlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG51bWJlciwgZ290IFwiIGpzXG5cbmxldCB0b19udW1iZXJfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gU29tZSAoZmxvYXQgaSlcbiAgfCBgRmxvYXQgZiAtPiBTb21lIGZcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgbnVtYmVyIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9fZmxvYXQgPSBmdW5jdGlvblxuICB8IGBGbG9hdCBmIC0+IGZcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBmbG9hdCwgZ290IFwiIGpzXG5cbmxldCB0b19mbG9hdF9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBGbG9hdCBmIC0+IFNvbWUgZlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBmbG9hdCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2ludCA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IGlcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBpbnQsIGdvdCBcIiBqc1xuXG5sZXQgdG9faW50X29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IFNvbWUgaVxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBpbnQgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19saXN0ID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IGxcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBhcnJheSwgZ290IFwiIGpzXG5cbmxldCB0b19zdHJpbmcgPSBmdW5jdGlvblxuICB8IGBTdHJpbmcgcyAtPiBzXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgc3RyaW5nLCBnb3QgXCIganNcblxubGV0IHRvX3N0cmluZ19vcHRpb24gPSBmdW5jdGlvblxuICB8IGBTdHJpbmcgcyAtPiBTb21lIHNcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgY29udmVydF9lYWNoIGYgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gTGlzdC5tYXAgZiBsXG4gIHwganMgLT4gdHlwZXJyIFwiQ2FuJ3QgY29udmVydCBlYWNoIGVsZW1lbnQgb2Ygbm9uLWFycmF5IHR5cGUgXCIganNcblxuXG5sZXQgcmVjIHJldl9maWx0ZXJfbWFwIGYgYWNjIGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgICAgIFtdIC0+IGFjY1xuICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICBtYXRjaCBmIHggd2l0aFxuICAgICAgICAgICAgTm9uZSAtPiByZXZfZmlsdGVyX21hcCBmIGFjYyB0bFxuICAgICAgICAgIHwgU29tZSB5IC0+IHJldl9maWx0ZXJfbWFwIGYgKHkgOjogYWNjKSB0bFxuXG5sZXQgZmlsdGVyX21hcCBmIGwgPVxuICBMaXN0LnJldiAocmV2X2ZpbHRlcl9tYXAgZiBbXSBsKVxuXG5sZXQgcmVjIHJldl9mbGF0dGVuIGFjYyBsID1cbiAgbWF0Y2ggbCB3aXRoXG4gICAgICBbXSAtPiBhY2NcbiAgICB8IHggOjogdGwgLT5cbiAgICAgICAgbWF0Y2ggeCB3aXRoXG4gICAgICAgICAgICBgTGlzdCBsMiAtPiByZXZfZmxhdHRlbiAoTGlzdC5yZXZfYXBwZW5kIGwyIGFjYykgdGxcbiAgICAgICAgICB8IF8gLT4gcmV2X2ZsYXR0ZW4gYWNjIHRsXG5cbmxldCBmbGF0dGVuIGwgPVxuICBMaXN0LnJldiAocmV2X2ZsYXR0ZW4gW10gbClcblxubGV0IGZpbHRlcl9pbmRleCBpIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgTGlzdCBsIC0+XG4gICAgICAgICAgKHRyeSBTb21lIChMaXN0Lm50aCBsIGkpXG4gICAgICAgICAgIHdpdGggXyAtPiBOb25lKVxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbGlzdCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYExpc3QgbCAtPiBTb21lIGxcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX21lbWJlciBrIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQXNzb2MgbCAtPlxuICAgICAgICAgICh0cnkgU29tZSAoTGlzdC5hc3NvYyBrIGwpXG4gICAgICAgICAgIHdpdGggXyAtPiBOb25lKVxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfYXNzb2MgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBBc3NvYyBsIC0+IFNvbWUgbFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfYm9vbCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEJvb2wgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX2ludCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEludCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfZmxvYXQgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBGbG9hdCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbnVtYmVyIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgSW50IHggLT4gU29tZSAoZmxvYXQgeClcbiAgICAgIHwgYEZsb2F0IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9zdHJpbmcgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBTdHJpbmcgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQga2V5cyBvID1cbiAgdG9fYXNzb2MgbyB8PiBMaXN0Lm1hcCAoZnVuIChrZXksIF8pIC0+IGtleSlcblxubGV0IHZhbHVlcyBvID1cbiAgdG9fYXNzb2MgbyB8PiBMaXN0Lm1hcCAoZnVuIChfLCB2YWx1ZSkgLT4gdmFsdWUpXG5cbmxldCBjb21iaW5lIChmaXJzdCA6IHQpIChzZWNvbmQgOiB0KSA9XG4gIG1hdGNoIChmaXJzdCwgc2Vjb25kKSB3aXRoXG4gIHwgKGBBc3NvYyBhLCBgQXNzb2MgYikgLT4gKGBBc3NvYyAoYSBAIGIpIDogIHQpXG4gIHwgKGEsIGIpIC0+IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IFwiRXhwZWN0ZWQgdHdvIG9iamVjdHMsIGNoZWNrIGlucHV0c1wiKVxuIyA0NSBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIyA0OSBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuXG5tb2R1bGUgU2FmZSA9XG5zdHJ1Y3RcbiMgMSBcInR5cGUubWxcIlxuKCoqIHszIFR5cGUgb2YgdGhlIEpTT04gdHJlZX0gKilcblxudHlwZSB0ID1cbiAgICBbXG4gICAgfCBgTnVsbFxuICAgIHwgYEJvb2wgb2YgYm9vbFxuICAgIFxuIyA4IFwidHlwZS5tbFwiXG4gICAgfCBgSW50IG9mIGludFxuICAgIFxuIyAxMSBcInR5cGUubWxcIlxuICAgIHwgYEludGxpdCBvZiBzdHJpbmdcbiAgICBcbiMgMTQgXCJ0eXBlLm1sXCJcbiAgICB8IGBGbG9hdCBvZiBmbG9hdFxuICAgIFxuIyAyMCBcInR5cGUubWxcIlxuICAgIHwgYFN0cmluZyBvZiBzdHJpbmdcbiAgICBcbiMgMjUgXCJ0eXBlLm1sXCJcbiAgICB8IGBBc3NvYyBvZiAoc3RyaW5nICogdCkgbGlzdFxuICAgIHwgYExpc3Qgb2YgdCBsaXN0XG4gICAgXG4jIDI4IFwidHlwZS5tbFwiXG4gICAgfCBgVHVwbGUgb2YgdCBsaXN0XG4gICAgXG4jIDMxIFwidHlwZS5tbFwiXG4gICAgfCBgVmFyaWFudCBvZiAoc3RyaW5nICogdCBvcHRpb24pXG4gICAgXG4jIDMzIFwidHlwZS5tbFwiXG4gICAgXVxuKCoqXG5BbGwgcG9zc2libGUgY2FzZXMgZGVmaW5lZCBpbiBZb2pzb246XG4tIGBOdWxsOiBKU09OIG51bGxcbi0gYEJvb2wgb2YgYm9vbDogSlNPTiBib29sZWFuXG4tIGBJbnQgb2YgaW50OiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQuXG4tIGBJbnRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciB3aXRob3V0IGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQsXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBGbG9hdCBvZiBmbG9hdDogSlNPTiBudW1iZXIsIEluZmluaXR5LCAtSW5maW5pdHkgb3IgTmFOLlxuLSBgRmxvYXRsaXQgb2Ygc3RyaW5nOiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4sXG5cdCAgICBwcmVzZXJ2ZWQgYXMgYSBzdHJpbmcuXG4tIGBTdHJpbmcgb2Ygc3RyaW5nOiBKU09OIHN0cmluZy4gQnl0ZXMgaW4gdGhlIHJhbmdlIDEyOC0yNTUgYXJlIHByZXNlcnZlZFxuXHQgICAgYXMtaXMgd2l0aG91dCBlbmNvZGluZyB2YWxpZGF0aW9uIGZvciBib3RoIHJlYWRpbmdcblx0ICAgIGFuZCB3cml0aW5nLlxuLSBgU3RyaW5nbGl0IG9mIHN0cmluZzogSlNPTiBzdHJpbmcgbGl0ZXJhbCBpbmNsdWRpbmcgdGhlIGRvdWJsZSBxdW90ZXMuXG4tIGBBc3NvYyBvZiAoc3RyaW5nICoganNvbikgbGlzdDogSlNPTiBvYmplY3QuXG4tIGBMaXN0IG9mIGpzb24gbGlzdDogSlNPTiBhcnJheS5cbi0gYFR1cGxlIG9mIGpzb24gbGlzdDogVHVwbGUgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFsoXCJhYmNcIiwgMTIzKV0uXG4tIGBWYXJpYW50IG9mIChzdHJpbmcgKiBqc29uIG9wdGlvbik6IFZhcmlhbnQgKG5vbi1zdGFuZGFyZCBleHRlbnNpb24gb2YgSlNPTikuXG5cdCAgICBTeW50YXg6IFs8XCJGb29cIj5dIG9yIFs8XCJCYXJcIjoxMjM+XS5cbiopXG5cbigqXG4gIE5vdGUgdG8gYWR2ZW50dXJlcnM6IG9jYW1sZG9jIGRvZXMgbm90IHN1cHBvcnQgaW5saW5lIGNvbW1lbnRzXG4gIG9uIGVhY2ggcG9seW1vcnBoaWMgdmFyaWFudCwgYW5kIGNwcG8gZG9lc24ndCBhbGxvdyB0byBjb25jYXRlbmF0ZVxuICBjb21tZW50cywgc28gaXQgd291bGQgYmUgY29tcGxpY2F0ZWQgdG8gZG9jdW1lbnQgb25seSB0aGVcbiAgY2FzZXMgdGhhdCBhcmUgcHJlc2VydmVkIGJ5IGNwcG8gaW4gdGhlIHR5cGUgZGVmaW5pdGlvbi5cbiopXG4jIDEgXCJzYWZlLm1sXCJcbmxldCByZWMgdG9fYmFzaWMgOiB0IC0+IEJhc2ljLnQgPSBmdW5jdGlvblxuICAgIGBOdWxsXG4gIHwgYEJvb2wgX1xuICB8IGBJbnQgX1xuICB8IGBGbG9hdCBfXG4gIHwgYFN0cmluZyBfIGFzIHggLT4geFxuICB8IGBJbnRsaXQgcyAtPiBgU3RyaW5nIHNcbiAgfCBgTGlzdCBsXG4gIHwgYFR1cGxlIGwgLT5cbiAgICAgIGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHRvX2Jhc2ljIGwpKVxuICB8IGBBc3NvYyBsIC0+XG4gICAgICBgQXNzb2MgKExpc3QucmV2IChMaXN0LnJldl9tYXAgKGZ1biAoaywgdikgLT4gKGssIHRvX2Jhc2ljIHYpKSBsKSlcbiAgfCBgVmFyaWFudCAoaywgTm9uZSkgLT4gYFN0cmluZyBrXG4gIHwgYFZhcmlhbnQgKGssIFNvbWUgdikgLT4gYExpc3QgWyBgU3RyaW5nIGs7IHRvX2Jhc2ljIHYgXVxuIyAxIFwid3JpdGUubWxcIlxuKCogaW5jbHVkZWQ6IHR5cGUubWwgKilcblxubGV0IGhleCBuID1cbiAgQ2hhci5jaHIgKFxuICAgIGlmIG4gPCAxMCB0aGVuIG4gKyA0OFxuICAgIGVsc2UgbiArIDg3XG4gIClcblxubGV0IHdyaXRlX3NwZWNpYWwgc3JjIHN0YXJ0IHN0b3Agb2Igc3RyID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHN0cjtcbiAgc3RhcnQgOj0gc3RvcCArIDFcblxubGV0IHdyaXRlX2NvbnRyb2xfY2hhciBzcmMgc3RhcnQgc3RvcCBvYiBjID1cbiAgQnVmZmVyLmFkZF9zdWJzdHJpbmcgb2Igc3JjICFzdGFydCAoc3RvcCAtICFzdGFydCk7XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiXFxcXHUwMFwiO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgKGhleCAoQ2hhci5jb2RlIGMgbHNyIDQpKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxhbmQgMHhmKSk7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCBmaW5pc2hfc3RyaW5nIHNyYyBzdGFydCBvYiA9XG4gIHRyeVxuICAgIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KVxuICB3aXRoIGV4YyAtPlxuICAgIFByaW50Zi5lcHJpbnRmIFwic3JjPSVTIHN0YXJ0PSVpIGxlbj0laVxcbiUhXCJcbiAgICAgIHNyYyAhc3RhcnQgKFN0cmluZy5sZW5ndGggc3JjIC0gIXN0YXJ0KTtcbiAgICByYWlzZSBleGNcblxubGV0IHdyaXRlX3N0cmluZ19ib2R5IG9iIHMgPVxuICBsZXQgc3RhcnQgPSByZWYgMCBpblxuICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgJ1wiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFwiXCJcbiAgICAgIHwgJ1xcXFwnIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXFxcXFxcIlxuICAgICAgfCAnXFxiJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxiXCJcbiAgICAgIHwgJ1xcMDEyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxmXCJcbiAgICAgIHwgJ1xcbicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcblwiXG4gICAgICB8ICdcXHInIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXHJcIlxuICAgICAgfCAnXFx0JyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFx0XCJcbiAgICAgIHwgJ1xceDAwJy4uJ1xceDFGJ1xuICAgICAgfCAnXFx4N0YnIGFzIGMgLT4gd3JpdGVfY29udHJvbF9jaGFyIHMgc3RhcnQgaSBvYiBjXG4gICAgICB8IF8gLT4gKClcbiAgZG9uZTtcbiAgZmluaXNoX3N0cmluZyBzIHN0YXJ0IG9iXG5cbmxldCB3cml0ZV9zdHJpbmcgb2IgcyA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXCInO1xuICB3cml0ZV9zdHJpbmdfYm9keSBvYiBzO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJ1xuXG5sZXQganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDEwIGluXG4gIHdyaXRlX3N0cmluZyBvYiBzO1xuICBCdWZmZXIuY29udGVudHMgb2JcblxubGV0IHRlc3Rfc3RyaW5nICgpID1cbiAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgMjU2IGluXG4gIGZvciBpID0gMCB0byAyNTUgZG9cbiAgICBCeXRlcy5zZXQgcyBpIChDaGFyLmNociBpKVxuICBkb25lO1xuICBqc29uX3N0cmluZ19vZl9zdHJpbmcgKEJ5dGVzLnRvX3N0cmluZyBzKVxuXG5cbmxldCB3cml0ZV9udWxsIG9iICgpID1cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJudWxsXCJcblxubGV0IHdyaXRlX2Jvb2wgb2IgeCA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4IHRoZW4gXCJ0cnVlXCIgZWxzZSBcImZhbHNlXCIpXG5cblxubGV0IG1heF9kaWdpdHMgPVxuICBtYXhcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtYXhfaW50KSlcbiAgICAoU3RyaW5nLmxlbmd0aCAoc3RyaW5nX29mX2ludCBtaW5faW50KSlcblxubGV0IGRlYyBuID1cbiAgQ2hhci5jaHIgKG4gKyA0OClcblxubGV0IHJlYyB3cml0ZV9kaWdpdHMgcyB4ID1cbiAgaWYgeCA9IDAgdGhlbiAoKVxuICBlbHNlXG4gICAgbGV0IGQgPSB4IG1vZCAxMCBpblxuICAgIHdyaXRlX2RpZ2l0cyBzICh4IC8gMTApO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBzIChkZWMgKGFicyBkKSlcblxubGV0IHdyaXRlX2ludCBvYiB4ID1cbiAgaWYgeCA+IDAgdGhlblxuICAgIHdyaXRlX2RpZ2l0cyBvYiB4XG4gIGVsc2UgaWYgeCA8IDAgdGhlbiAoXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICctJztcbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICApXG4gIGVsc2VcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzAnXG5cblxubGV0IGpzb25fc3RyaW5nX29mX2ludCBpID1cbiAgc3RyaW5nX29mX2ludCBpXG5cblxuKCpcbiAgRW5zdXJlIHRoYXQgdGhlIGZsb2F0IGlzIG5vdCBwcmludGVkIGFzIGFuIGludC5cbiAgVGhpcyBpcyBub3QgcmVxdWlyZWQgYnkgSlNPTiwgYnV0IHVzZWZ1bCBpbiBvcmRlciB0byBndWFyYW50ZWVcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgZmxvYXRfbmVlZHNfcGVyaW9kIHMgPVxuICB0cnlcbiAgICBmb3IgaSA9IDAgdG8gU3RyaW5nLmxlbmd0aCBzIC0gMSBkb1xuICAgICAgbWF0Y2ggcy5baV0gd2l0aFxuICAgICAgICAgICcwJy4uJzknIHwgJy0nIC0+ICgpXG4gICAgICAgIHwgXyAtPiByYWlzZSBFeGl0XG4gICAgZG9uZTtcbiAgICB0cnVlXG4gIHdpdGggRXhpdCAtPlxuICAgIGZhbHNlXG5cbigqXG4gIEd1YXJhbnRlZXMgdGhhdCBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mIGRpZ2l0cyBhcmUgcHJpbnRlZCBpbiBvcmRlciB0byBhbGxvd1xuICByZXZlcnNpYmlsaXR5LlxuKilcbmxldCB3cml0ZV9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIGxldCBzMSA9IFByaW50Zi5zcHJpbnRmIFwiJS4xNmdcIiB4IGluXG4gICAgICBsZXQgcyA9XG4gICAgICAgIGlmIGZsb2F0X29mX3N0cmluZyBzMSA9IHggdGhlbiBzMVxuICAgICAgICBlbHNlIFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4XG4gICAgICBpblxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgICAgIGlmIGZsb2F0X25lZWRzX3BlcmlvZCBzIHRoZW5cbiAgICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbmxldCB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBsZXQgb3BlbiBQcmludGYgaW5cbiAgbGV0IHMgPVxuICAgIG1hdGNoIHNpZ25pZmljYW50X2ZpZ3VyZXMgd2l0aFxuICAgICAgICAxIC0+IHNwcmludGYgXCIlLjFnXCIgeFxuICAgICAgfCAyIC0+IHNwcmludGYgXCIlLjJnXCIgeFxuICAgICAgfCAzIC0+IHNwcmludGYgXCIlLjNnXCIgeFxuICAgICAgfCA0IC0+IHNwcmludGYgXCIlLjRnXCIgeFxuICAgICAgfCA1IC0+IHNwcmludGYgXCIlLjVnXCIgeFxuICAgICAgfCA2IC0+IHNwcmludGYgXCIlLjZnXCIgeFxuICAgICAgfCA3IC0+IHNwcmludGYgXCIlLjdnXCIgeFxuICAgICAgfCA4IC0+IHNwcmludGYgXCIlLjhnXCIgeFxuICAgICAgfCA5IC0+IHNwcmludGYgXCIlLjlnXCIgeFxuICAgICAgfCAxMCAtPiBzcHJpbnRmIFwiJS4xMGdcIiB4XG4gICAgICB8IDExIC0+IHNwcmludGYgXCIlLjExZ1wiIHhcbiAgICAgIHwgMTIgLT4gc3ByaW50ZiBcIiUuMTJnXCIgeFxuICAgICAgfCAxMyAtPiBzcHJpbnRmIFwiJS4xM2dcIiB4XG4gICAgICB8IDE0IC0+IHNwcmludGYgXCIlLjE0Z1wiIHhcbiAgICAgIHwgMTUgLT4gc3ByaW50ZiBcIiUuMTVnXCIgeFxuICAgICAgfCAxNiAtPiBzcHJpbnRmIFwiJS4xNmdcIiB4XG4gICAgICB8IF8gLT4gc3ByaW50ZiBcIiUuMTdnXCIgeFxuICBpblxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCIuMFwiXG5cbigqIHVzZWQgYnkgYXRkZ2VuICopXG5sZXQgd3JpdGVfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiTmFOXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgKGlmIHggPiAwLiB0aGVuIFwiSW5maW5pdHlcIiBlbHNlIFwiLUluZmluaXR5XCIpXG4gIHwgXyAtPlxuICAgICAgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4XG5cbmxldCBqc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgd3JpdGVfc3RkX2Zsb2F0IG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX3N0ZF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAganNvbl9lcnJvciBcIk5hTiB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgfCBGUF9pbmZpbml0ZSAtPlxuICAgICAganNvbl9lcnJvclxuICAgICAgICAoaWYgeCA+IDAuIHRoZW5cbiAgICAgICAgICAgXCJJbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCJcbiAgICAgICAgIGVsc2VcbiAgICAgICAgICAgXCItSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQgc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHggPVxuICBsZXQgb2IgPSBCdWZmZXIuY3JlYXRlIDIwIGluXG4gIHdyaXRlX3N0ZF9mbG9hdCBvYiB4O1xuICBCdWZmZXIuY29udGVudHMgb2JcblxuXG5sZXQgdGVzdF9mbG9hdCAoKSA9XG4gIGxldCBsID0gWyAwLjsgMS47IC0xLiBdIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiAyLiAqLiB4ICsuIDEuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4IC8uIHNxcnQgMi4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gc3FydCAzLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCBjb3MgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAqLiAxLjIzZTUwKSBsIGluXG4gIGxldCBsID0gbCBAIFsgaW5maW5pdHk7IG5lZ19pbmZpbml0eSBdIGluXG4gIExpc3QuaXRlciAoXG4gICAgZnVuIHggLT5cbiAgICAgIGxldCBzID0gUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHggaW5cbiAgICAgIGxldCB5ID0gZmxvYXRfb2Zfc3RyaW5nIHMgaW5cbiAgICAgIFByaW50Zi5wcmludGYgXCIlZyAlZyAlUyAlQlxcblwiIHggeSBzICh4ID0geSlcbiAgKVxuICAgIGxcblxuKCpcbmxldCAoKSA9IHRlc3RfZmxvYXQgKClcbiopXG5cbmxldCB3cml0ZV9pbnRsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xubGV0IHdyaXRlX2Zsb2F0bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9zdHJpbmdsaXQgPSBCdWZmZXIuYWRkX3N0cmluZ1xuXG5sZXQgcmVjIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9zZXAgeDtcbiAgICAgIGZfZWx0IHggeTtcbiAgICAgIGl0ZXIyX2F1eCBmX2VsdCBmX3NlcCB4IGxcblxubGV0IGl0ZXIyIGZfZWx0IGZfc2VwIHggPSBmdW5jdGlvblxuICAgIFtdIC0+ICgpXG4gIHwgeSA6OiBsIC0+XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBmX3NlcCBvYiA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnLCdcblxubGV0IHJlYyB3cml0ZV9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDI2NCBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnQgaSAtPiB3cml0ZV9pbnQgb2IgaVxuICAgIFxuIyAyNjcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzAgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXQgZiAtPiB3cml0ZV9mbG9hdCBvYiBmXG4gICAgXG4jIDI3NiBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmcgcyAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIFxuIyAyODEgXCJ3cml0ZS5tbFwiXG4gICAgfCBgQXNzb2MgbCAtPiB3cml0ZV9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX2xpc3Qgb2IgbFxuICAgIFxuIyAyODQgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV90dXBsZSBvYiBsXG4gICAgXG4jIDI4NyBcIndyaXRlLm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBvKSAtPiB3cml0ZV92YXJpYW50IG9iIHMgb1xuXG4jIDI5MCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9qc29uIG9iIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd7JztcbiAgaXRlcjIgZl9lbHQgZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICd9JztcblxuYW5kIHdyaXRlX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDMwNiBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICcoJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJyknXG5cbiMgMzEzIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3ZhcmlhbnQgb2IgcyBvID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc8JztcbiAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gIChtYXRjaCBvIHdpdGhcbiAgICAgICBOb25lIC0+ICgpXG4gICAgIHwgU29tZSB4IC0+XG4gICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgICAgICAgd3JpdGVfanNvbiBvYiB4XG4gICk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnPidcblxuIyAzMjUgXCJ3cml0ZS5tbFwiXG5sZXQgd3JpdGVfdCA9IHdyaXRlX2pzb25cblxubGV0IHJlYyB3cml0ZV9zdGRfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAzMzIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50IGkgLT4gd3JpdGVfaW50IG9iIGlcbiAgICBcbiMgMzM1IFwid3JpdGUubWxcIlxuICAgIHwgYEludGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzM4IFwid3JpdGUubWxcIlxuICAgIHwgYEZsb2F0IGYgLT4gd3JpdGVfc3RkX2Zsb2F0IG9iIGZcbiAgICBcbiMgMzQ0IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZyBzIC0+IHdyaXRlX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0OSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX3N0ZF9hc3NvYyBvYiBsXG4gICAgfCBgTGlzdCBsIC0+IHdyaXRlX3N0ZF9saXN0IG9iIGxcbiAgICBcbiMgMzUyIFwid3JpdGUubWxcIlxuICAgIHwgYFR1cGxlIGwgLT4gd3JpdGVfc3RkX3R1cGxlIG9iIGxcbiAgICBcbiMgMzU1IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgb1xuXG4jIDM1OCBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfYXNzb2Mgb2IgbCA9XG4gIGxldCBmX2VsdCBvYiAocywgeCkgPVxuICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfc3RkX2xpc3Qgb2IgbCA9XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gIGl0ZXIyIHdyaXRlX3N0ZF9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnXSdcblxuYW5kIHdyaXRlX3N0ZF90dXBsZSBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG4jIDM3OSBcIndyaXRlLm1sXCJcbmFuZCB3cml0ZV9zdGRfdmFyaWFudCBvYiBzIG8gPVxuICBtYXRjaCBvIHdpdGhcbiAgICAgIE5vbmUgLT4gd3JpdGVfc3RyaW5nIG9iIHNcbiAgICB8IFNvbWUgeCAtPlxuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICAgICAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICcsJztcbiAgICAgICAgd3JpdGVfc3RkX2pzb24gb2IgeDtcbiAgICAgICAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5cbiMgMzkxIFwid3JpdGUubWxcIlxubGV0IHRvX2J1ZmZlciA/KHN1ZiA9IFwiXCIpID8oc3RkID0gZmFsc2UpIG9iIHggPVxuICBpZiBzdGQgdGhlblxuICAgIHdyaXRlX3N0ZF9qc29uIG9iIHhcbiAgZWxzZVxuICAgIHdyaXRlX2pzb24gb2IgeDtcbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2Igc3VmXG5cbmxldCB0b19zdHJpbmcgP2J1ZiA/KGxlbiA9IDI1NikgPyhzdWYgPSBcIlwiKSA/c3RkIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIGxldCBzID0gQnVmZmVyLmNvbnRlbnRzIG9iIGluXG4gIEJ1ZmZlci5jbGVhciBvYjtcbiAgc1xuXG5sZXQgdG9fY2hhbm5lbCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvYyB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX291dHB1dCA/YnVmID8obGVuPTQwOTYpID8oc3VmID0gXCJcIikgP3N0ZCBvdXQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiB4O1xuICBvdXQjb3V0cHV0IChCdWZmZXIuY29udGVudHMgb2IpIDAgKEJ1ZmZlci5sZW5ndGggb2IpO1xuICBCdWZmZXIuY2xlYXIgb2JcblxubGV0IHRvX2ZpbGUgP2xlbiA/c3RkID8oc3VmID0gXCJcXG5cIikgZmlsZSB4ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICB0b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHg7XG4gICAgY2xvc2Vfb3V0IG9jXG4gIHdpdGggZSAtPlxuICAgIGNsb3NlX291dF9ub2VyciBvYztcbiAgICByYWlzZSBlXG5cbmxldCBzZXFfdG9fYnVmZmVyID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYiBzdCA9XG4gIFNlcS5pdGVyICh0b19idWZmZXIgfnN1ZiA/c3RkIG9iKSBzdFxuXG5sZXQgc2VxX3RvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXFxuXCIpID9zdGQgc3QgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPlxuICAgICAgICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgICAgICAgICBvYlxuICBpblxuICBzZXFfdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBzdDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCBzZXFfdG9fY2hhbm5lbCA/YnVmID8obGVuPTIwOTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBvYyBzZXEgPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIFNlcS5pdGVyIChmdW4ganNvbiAtPlxuICAgIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IganNvbjtcbiAgICBCdWZmZXIub3V0cHV0X2J1ZmZlciBvYyBvYjtcbiAgICBCdWZmZXIuY2xlYXIgb2I7XG4gICkgc2VxXG5cbmxldCBzZXFfdG9fZmlsZSA/bGVuID8oc3VmID0gXCJcXG5cIikgP3N0ZCBmaWxlIHN0ID1cbiAgbGV0IG9jID0gb3Blbl9vdXQgZmlsZSBpblxuICB0cnlcbiAgICBzZXFfdG9fY2hhbm5lbCA/bGVuIH5zdWYgP3N0ZCBvYyBzdDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxuXG5sZXQgcmVjIHNvcnQgPSBmdW5jdGlvblxuICB8IGBBc3NvYyBsIC0+XG4gICAgICBsZXQgbCA9IExpc3QucmV2IChMaXN0LnJldl9tYXAgKGZ1biAoaywgdikgLT4gKGssIHNvcnQgdikpIGwpIGluXG4gICAgICBgQXNzb2MgKExpc3Quc3RhYmxlX3NvcnQgKGZ1biAoYSwgXykgKGIsIF8pIC0+IFN0cmluZy5jb21wYXJlIGEgYikgbClcbiAgfCBgTGlzdCBsIC0+XG4gICAgICBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg1IFwid3JpdGUubWxcIlxuICB8IGBUdXBsZSBsIC0+XG4gICAgICBgVHVwbGUgKExpc3QucmV2IChMaXN0LnJldl9tYXAgc29ydCBsKSlcbiAgXG4jIDQ4OSBcIndyaXRlLm1sXCJcbiAgfCBgVmFyaWFudCAoaywgU29tZSB2KSBhcyB4IC0+XG4gICAgICBsZXQgdicgPSBzb3J0IHYgaW5cbiAgICAgIGlmIHYgPT0gdicgdGhlbiB4XG4gICAgICBlbHNlXG4gICAgICAgIGBWYXJpYW50IChrLCBTb21lIHYnKVxuICBcbiMgNDk1IFwid3JpdGUubWxcIlxuICB8IHggLT4geFxuIyA2MiBcInlvanNvbi5jcHBvLm1sXCJcbm1vZHVsZSBQcmV0dHkgPVxuc3RydWN0XG4jIDEgXCJwcmV0dHkubWxcIlxuKCpcbiAgIFByZXR0eS1wcmludCBKU09OIGRhdGEgaW4gYW4gYXR0ZW1wdCB0byBtYXhpbWl6ZSByZWFkYWJpbGl0eS5cblxuICAgMS4gV2hhdCBmaXRzIG9uIG9uZSBsaW5lIHN0YXlzIG9uIG9uZSBsaW5lLlxuICAgMi4gV2hhdCBkb2Vzbid0IGZpdCBvbiBvbmUgbGluZSBnZXRzIHByaW50ZWQgbW9yZSB2ZXJ0aWNhbGx5IHNvIGFzIHRvIG5vdFxuICAgICAgZXhjZWVkIGEgcmVhc29uYWJsZSBwYWdlIHdpZHRoLCBpZiBwb3NzaWJsZS5cblxuICAgQXJyYXlzIGNvbnRhaW5pbmcgb25seSBzaW1wbGUgZWxlbWVudHMgKFwiYXRvbXNcIikgYXJlIHByZXR0eS1wcmludGVkIHdpdGhcbiAgIGVuZC1vZi1saW5lIHdyYXBwaW5nIGxpa2Ugb3JkaW5hcnkgdGV4dDpcblxuICAgICBbXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLFxuICAgICAgICBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIlxuICAgICBdXG5cbiAgIE90aGVyIGFycmF5cyBhcmUgcHJpbnRlZCBlaXRoZXIgaG9yaXpvbnRhbGx5IG9yIHZlcnRpY2FsbHkgZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZXkgZml0IG9uIGEgc2luZ2xlIGxpbmU6XG5cbiAgICAgWyB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9IF1cblxuICAgb3JcblxuICAgICBbXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9XG4gICAgIF1cbiopXG5cbmxldCBwcF9saXN0IHNlcCBwcHggb3V0IGwgPVxuICBsZXQgcHBfc2VwIG91dCAoKSA9IEZvcm1hdC5mcHJpbnRmIG91dCBcIiVzQCBcIiBzZXAgaW5cbiAgRm9ybWF0LnBwX3ByaW50X2xpc3QgfnBwX3NlcCBwcHggb3V0IGxcblxubGV0IGlzX2F0b20gKHg6IFs+IHRdKSA9XG4gIG1hdGNoIHggd2l0aFxuICB8IGBOdWxsXG4gIHwgYEJvb2wgX1xuICB8IGBJbnQgX1xuICB8IGBGbG9hdCBfXG4gIHwgYFN0cmluZyBfXG4gIHwgYEludGxpdCBfXG4gIHwgYEZsb2F0bGl0IF9cbiAgfCBgU3RyaW5nbGl0IF9cbiAgfCBgTGlzdCBbXVxuICB8IGBBc3NvYyBbXVxuICB8IGBUdXBsZSBbXVxuICB8IGBWYXJpYW50IChfLCBOb25lKSAtPiB0cnVlXG4gIHwgYExpc3QgX1xuICB8IGBBc3NvYyBfXG4gIHwgYFR1cGxlIF9cbiAgfCBgVmFyaWFudCAoXywgU29tZSBfKSAtPiBmYWxzZVxuXG5sZXQgaXNfYXRvbV9saXN0IGwgPVxuICBMaXN0LmZvcl9hbGwgaXNfYXRvbSBsXG5cbigqXG4gICBpbnNpZGVfYm94OiBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBhbHJlYWR5IHdpdGhpbiBhIGJveCB0aGF0IGltcG9zZXNcbiAgIGEgY2VydGFpbiBzdHlsZSBhbmQgd2Ugc2hvdWxkbid0IGNyZWF0ZSBhIG5ldyBvbmUuIFRoaXMgaXMgdXNlZCBmb3JcbiAgIHByaW50aW5nIGZpZWxkIHZhbHVlcyBsaWtlIHRoaXM6XG5cbiAgICAgZm9vOiBbXG4gICAgICAgYmFyXG4gICAgIF1cblxuICAgcmF0aGVyIHRoYW4gc29tZXRoaW5nIGVsc2UgbGlrZVxuXG4gICAgIGZvbzpcbiAgICAgICBbXG4gICAgICAgICBiYXJcbiAgICAgICBdXG4qKVxubGV0IHJlYyBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIChvdXQ6Rm9ybWF0LmZvcm1hdHRlcikgKHg6dCkgOiB1bml0ID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIm51bGxcIlxuICAgIHwgYEJvb2wgeCAtPiBGb3JtYXQucHBfcHJpbnRfYm9vbCBvdXQgeFxuICAgIFxuIyA3OCBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50IHggLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX2ludCB4KVxuICAgIFxuIyA4MSBcInByZXR0eS5tbFwiXG4gICAgfCBgRmxvYXQgeCAtPlxuICAgICAgICBsZXQgcyA9XG4gICAgICAgICAgaWYgc3RkIHRoZW4gc3RkX2pzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgICBlbHNlIGpzb25fc3RyaW5nX29mX2Zsb2F0IHhcbiAgICAgICAgaW5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyA4OSBcInByZXR0eS5tbFwiXG4gICAgfCBgU3RyaW5nIHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuICAgIFxuIyA5MiBcInByZXR0eS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgc1xuICAgIFxuIyAxMDAgXCJwcmV0dHkubWxcIlxuICAgIHwgYExpc3QgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJbXVwiXG4gICAgfCBgTGlzdCBsIC0+XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj5cIjtcbiAgICAgIGlmIGlzX2F0b21fbGlzdCBsIHRoZW5cbiAgICAgICAgKCogdXNlIGxpbmUgd3JhcHBpbmcgbGlrZSB3ZSB3b3VsZCBkbyBmb3IgYSBwYXJhZ3JhcGggb2YgdGV4dCAqKVxuICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJbQDs8MSAwPkBbPGhvdj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGxcbiAgICAgIGVsc2VcbiAgICAgICAgKCogcHJpbnQgdGhlIGVsZW1lbnRzIGhvcml6b250YWxseSBpZiB0aGV5IGZpdCBvbiB0aGUgbGluZSxcbiAgICAgICAgICAgb3RoZXJ3aXNlIHByaW50IHRoZW0gaW4gYSBjb2x1bW4gKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxodj4lYUBdQDs8MSAtMj5dXCJcbiAgICAgICAgICAocHBfbGlzdCBcIixcIiAoZm9ybWF0IH5pbnNpZGVfYm94OmZhbHNlIHN0ZCkpIGw7XG4gICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBdXCI7XG4gICAgfCBgQXNzb2MgW10gLT4gRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCJ7fVwiXG4gICAgfCBgQXNzb2MgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCJ7QDs8MSAwPiVhQDs8MSAtMj59XCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdF9maWVsZCBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIFxuIyAxMTkgXCJwcmV0dHkubWxcIlxuICAgIHwgYFR1cGxlIGwgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgbClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGlmIGwgPSBbXSB0aGVuXG4gICAgICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBcIigpXCJcbiAgICAgICAgICBlbHNlIChcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aG92Mj5cIjtcbiAgICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIihALCVhQDs8MCAtMj4pXCIgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgICAgICAgIClcbiAgICBcbiMgMTMyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBWYXJpYW50IChzLCBOb25lKSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxMzUgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmcgcyBpblxuICAgICAgICAgIFxuIyAxMzkgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IHJlcHJlc2VudGF0aW9uXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8JXM+XCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBzKVxuXG4gICAgfCBgVmFyaWFudCAocywgU29tZSB4KSAtPlxuICAgICAgICBpZiBzdGQgdGhlblxuICAgICAgICAgIFxuIyAxNDYgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGxldCByZXByZXNlbnRhdGlvbiA9IGBTdHJpbmcgcyBpblxuICAgICAgICAgIFxuIyAxNTAgXCJwcmV0dHkubWxcIlxuICAgICAgICAgIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgb3V0IChgTGlzdCBbIHJlcHJlc2VudGF0aW9uOyB4IF0pXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgb3AgPSBqc29uX3N0cmluZ19vZl9zdHJpbmcgcyBpblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIjxAWzxodjI+JXM6ICVhQF0+XCIgb3AgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG4jIDE1NiBcInByZXR0eS5tbFwiXG5hbmQgZm9ybWF0X2ZpZWxkIHN0ZCBvdXQgKG5hbWUsIHgpID1cbiAgRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPiVzOiAlYUBdXCIgKGpzb25fc3RyaW5nX29mX3N0cmluZyBuYW1lKSAoZm9ybWF0IH5pbnNpZGVfYm94OnRydWUgc3RkKSB4XG5cbmxldCBwcCA/KHN0ZCA9IGZhbHNlKSBvdXQgeCA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lYUBdXCIgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgKHggOj4gdClcblxubGV0IHRvX3N0cmluZyA/c3RkIHggPVxuICBGb3JtYXQuYXNwcmludGYgXCIlYVwiIChwcCA/c3RkKSB4XG5cbmxldCB0b19jaGFubmVsID9zdGQgb2MgeCA9XG4gIGxldCBmbXQgPSBGb3JtYXQuZm9ybWF0dGVyX29mX291dF9jaGFubmVsIG9jIGluXG4gIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVhQD9cIiAocHAgP3N0ZCkgeFxuIyA2NSBcInlvanNvbi5jcHBvLm1sXCJcbmVuZFxuIyAxIFwibW9ub21vcnBoaWMubWxcIlxubGV0IHJlYyBwcCBmbXQgPVxuICBmdW5jdGlvblxuICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiYE51bGxcIlxuICB8IGBCb29sIHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQm9vbCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVCXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJWRcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAxNSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgSW50bGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgSW50bGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAyMSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgRmxvYXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBGbG9hdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVGXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgMzMgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFN0cmluZyB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFN0cmluZyAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgeDtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNDQgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYEFzc29jIHhzIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEFzc29jIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgKGtleSwgdmFsdWUpIC0+XG4gICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiKEBbXCI7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiBrZXk7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgICAgICAgcHAgZm10IHZhbHVlO1xuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIHwgYExpc3QgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgTGlzdCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIHggLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgICB0cnVlKSBmYWxzZSB4cyk7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQCxdQF1cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuICBcbiMgNzEgXCJtb25vbW9ycGhpYy5tbFwiXG4gIHwgYFR1cGxlIHR1cCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBUdXBsZSAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBbPDI+W1wiO1xuICAgIGlnbm9yZSAoTGlzdC5mb2xkX2xlZnRcbiAgICAgIChmdW4gc2VwIGUgLT5cbiAgICAgICAgIGlmIHNlcCB0aGVuXG4gICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgICBwcCBmbXQgZTtcbiAgICAgICAgICAgdHJ1ZSkgZmFsc2UgdHVwKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA4NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFZhcmlhbnQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIG5hbWU7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiLEAgXCI7XG4gICAgKG1hdGNoIHZhbHVlIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIk5vbmVcIlxuICAgICAgfCBTb21lIHggLT5cbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIoU29tZSBcIjtcbiAgICAgICAgcHAgZm10IHg7XG4gICAgICAgIEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiKVwiKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAXSlcIlxuXG4jIDk5IFwibW9ub21vcnBoaWMubWxcIlxubGV0IHNob3cgeCA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgcHAgeFxuXG5sZXQgcmVjIGVxdWFsIGEgYiA9XG4gIG1hdGNoIGEsIGIgd2l0aFxuICB8IGBOdWxsLCBgTnVsbCAtPiB0cnVlXG4gIHwgYEJvb2wgYSwgYEJvb2wgYiAtPiBhID0gYlxuICBcbiMgMTA3IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnQgYSwgYEludCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBJbnRsaXQgYSwgYEludGxpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMyBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBGbG9hdCBhLCBgRmxvYXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMTkgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgU3RyaW5nIGEsIGBTdHJpbmcgYiAtPiBhID0gYlxuICAgIFxuIyAxMjQgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgQXNzb2MgeHMsIGBBc3NvYyB5cyAtPlxuICAgICAgbGV0IGNvbXBhcmVfa2V5cyA9IGZ1biAoa2V5LCBfKSAoa2V5JywgXykgLT4gU3RyaW5nLmNvbXBhcmUga2V5IGtleScgaW5cbiAgICAgIGxldCB4cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHhzIGluXG4gICAgICBsZXQgeXMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB5cyBpblxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgKGZ1biAoa2V5LCB2YWx1ZSkgKGtleScsIHZhbHVlJykgLT5cbiAgICAgICAgbWF0Y2gga2V5ID0ga2V5JyB3aXRoXG4gICAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgICAgfCB0cnVlIC0+IGVxdWFsIHZhbHVlIHZhbHVlJykgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTM3IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFR1cGxlIHhzLCBgVHVwbGUgeXNcbiAgICBcbiMgMTM5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYExpc3QgeHMsIGBMaXN0IHlzIC0+XG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiBlcXVhbCB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxNDYgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpLCBgVmFyaWFudCAobmFtZScsIHZhbHVlJykgLT5cbiAgICAgIChtYXRjaCBuYW1lID0gbmFtZScgd2l0aFxuICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgfCB0cnVlIC0+XG4gICAgICAgIG1hdGNoIHZhbHVlLCB2YWx1ZScgd2l0aFxuICAgICAgICB8IE5vbmUsIE5vbmUgLT4gdHJ1ZVxuICAgICAgICB8IFNvbWUgeCwgU29tZSB5IC0+IGVxdWFsIHggeVxuICAgICAgICB8IF8gLT4gZmFsc2UpXG4gICAgXG4jIDE1NSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IF8gLT4gZmFsc2VcblxuIyAyIFwid3JpdGUyLm1sXCJcbmxldCBwcmV0dHlfcHJpbnQgP3N0ZCBvdXQgeCA9XG4gIFByZXR0eS5wcCA/c3RkIG91dCB4XG5cbmxldCBwcmV0dHlfdG9fc3RyaW5nID9zdGQgeCA9XG4gIFByZXR0eS50b19zdHJpbmcgP3N0ZCB4XG5cbmxldCBwcmV0dHlfdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBQcmV0dHkudG9fY2hhbm5lbCA/c3RkIG9jIHhcblxuIyAxIFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDIgXCJsaWIvcmVhZC5tbGxcIlxuICBtb2R1bGUgTGV4aW5nID1cbiAgICAoKlxuICAgICAgV2Ugb3ZlcnJpZGUgTGV4aW5nLmVuZ2luZSBpbiBvcmRlciB0byBhdm9pZCBjcmVhdGluZyBhIG5ldyBwb3NpdGlvblxuICAgICAgcmVjb3JkIGVhY2ggdGltZSBhIHJ1bGUgaXMgbWF0Y2hlZC5cbiAgICAgIFRoaXMgcmVkdWNlcyB0b3RhbCBwYXJzaW5nIHRpbWUgYnkgYWJvdXQgMzElLlxuICAgICopXG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTGV4aW5nXG5cbiAgICBleHRlcm5hbCBjX2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnQgPSBcImNhbWxfbGV4X2VuZ2luZVwiXG5cbiAgICBsZXQgZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICAgICAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgICAgICgqXG4gICAgICBpZiByZXN1bHQgPj0gMCB0aGVuIGJlZ2luXG4gICAgICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICAgICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gICAgICBlbmQ7XG4gICAgICAqKVxuICAgICAgcmVzdWx0XG4gIGVuZFxuXG4gIG9wZW4gUHJpbnRmXG4gIG9wZW4gTGV4aW5nXG5cbiAgKCogc2VlIGRlc2NyaXB0aW9uIGluIGNvbW1vbi5tbGkgKilcbiAgdHlwZSBsZXhlcl9zdGF0ZSA9IExleGVyX3N0YXRlLnQgPSB7XG4gICAgYnVmIDogQnVmZmVyLnQ7XG4gICAgbXV0YWJsZSBsbnVtIDogaW50O1xuICAgIG11dGFibGUgYm9sIDogaW50O1xuICAgIG11dGFibGUgZm5hbWUgOiBzdHJpbmcgb3B0aW9uO1xuICB9XG5cbiAgbGV0IGRlYyBjID1cbiAgICBDaGFyLmNvZGUgYyAtIDQ4XG5cbiAgbGV0IGhleCBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgJzAnLi4nOScgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJ1xuICAgICAgfCAnYScuLidmJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICsgMTBcbiAgICAgIHwgJ0EnLi4nRicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIDEwXG4gICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgbGV0IGN1c3RvbV9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IG9mZnMgPSBsZXhidWYubGV4X2Fic19wb3MgLSAxIGluXG4gICAgbGV0IGJvbCA9IHYuYm9sIGluXG4gICAgbGV0IHBvczEgPSBvZmZzICsgbGV4YnVmLmxleF9zdGFydF9wb3MgLSBib2wgLSAxIGluXG4gICAgbGV0IHBvczIgPSBtYXggcG9zMSAob2ZmcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBib2wpIGluXG4gICAgbGV0IGZpbGVfbGluZSA9XG4gICAgICBtYXRjaCB2LmZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFwiTGluZVwiXG4gICAgICAgIHwgU29tZSBzIC0+XG4gICAgICAgICAgICBzcHJpbnRmIFwiRmlsZSAlcywgbGluZVwiIHNcbiAgICBpblxuICAgIGxldCBieXRlcyA9XG4gICAgICBpZiBwb3MxID0gcG9zMiB0aGVuXG4gICAgICAgIHNwcmludGYgXCJieXRlICVpXCIgKHBvczErMSlcbiAgICAgIGVsc2VcbiAgICAgICAgc3ByaW50ZiBcImJ5dGVzICVpLSVpXCIgKHBvczErMSkgKHBvczIrMSlcbiAgICBpblxuICAgIGxldCBtc2cgPSBzcHJpbnRmIFwiJXMgJWksICVzOlxcbiVzXCIgZmlsZV9saW5lIHYubG51bSBieXRlcyBkZXNjciBpblxuICAgIGpzb25fZXJyb3IgbXNnXG5cblxuICBsZXQgbGV4ZXJfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMnXCIgZGVzY3IgKExleGluZy5sZXhlbWUgbGV4YnVmKSlcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IHJlYWRfanVuayA9IHJlZiAoZnVuIF8gLT4gYXNzZXJ0IGZhbHNlKVxuXG4gIGxldCBsb25nX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQganVuayA9IExleGluZy5sZXhlbWUgbGV4YnVmIGluXG4gICAgbGV0IGV4dHJhX2p1bmsgPSAhcmVhZF9qdW5rIGxleGJ1ZiBpblxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMlcydcIiBkZXNjciBqdW5rIGV4dHJhX2p1bmspXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCBtaW4xMCA9IG1pbl9pbnQgLyAxMCAtIChpZiBtaW5faW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcbiAgbGV0IG1heDEwID0gbWF4X2ludCAvIDEwICsgKGlmIG1heF9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuXG4gIGV4Y2VwdGlvbiBJbnRfb3ZlcmZsb3dcblxuICBsZXQgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPj0gbWF4MTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuICsgZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPCAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgIFxuIyAxMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgdHJ5IGBJbnQgKGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZilcbiAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgIFxuIyAxMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICBgSW50bGl0IChsZXhlbWUgbGV4YnVmKVxuXG4gIFxuIyAxMTMgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgZXh0cmFjdF9uZWdhdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyArIDEgaW5cbiAgICBsZXQgc3RvcCA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgaW5cbiAgICBsZXQgcyA9IGxleGJ1Zi5sZXhfYnVmZmVyIGluXG4gICAgbGV0IG4gPSByZWYgMCBpblxuICAgIGZvciBpID0gc3RhcnQgdG8gc3RvcCAtIDEgZG9cbiAgICAgIGlmICFuIDw9IG1pbjEwIHRoZW5cbiAgICAgICAgcmFpc2UgSW50X292ZXJmbG93XG4gICAgICBlbHNlXG4gICAgICAgIG4gOj0gMTAgKiAhbiAtIGRlYyAoQnl0ZXMuZ2V0IHMgaSlcbiAgICBkb25lO1xuICAgIGlmICFuID4gMCB0aGVuXG4gICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICBlbHNlXG4gICAgICAhblxuXG4gIGxldCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiA9XG4gICAgICBcbiMgMTMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgIHRyeSBgSW50IChleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWYpXG4gICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICBcbiMgMTM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgYEludGxpdCAobGV4ZW1lIGxleGJ1ZilcblxuXG4gIFxuIyAxNDEgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgc2V0X2ZpbGVfbmFtZSB2IGZuYW1lID1cbiAgICB2LmZuYW1lIDwtIGZuYW1lXG5cbiAgbGV0IG5ld2xpbmUgdiBsZXhidWYgPVxuICAgIHYubG51bSA8LSB2LmxudW0gKyAxO1xuICAgIHYuYm9sIDwtIGxleGJ1Zi5sZXhfYWJzX3BvcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3NcblxuICBsZXQgYWRkX2xleGVtZSBidWYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgQnVmZmVyLmFkZF9zdWJieXRlcyBidWYgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgbGVuXG5cbiAgbGV0IG1hcF9sZXhlbWUgZiBsZXhidWYgPVxuICAgIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICBmIChCeXRlcy5zdWJfc3RyaW5nIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlbikgMCBsZW5cblxuICB0eXBlIHZhcmlhbnRfa2luZCA9IFsgYEVkZ3lfYnJhY2tldCB8IGBTcXVhcmVfYnJhY2tldCB8IGBEb3VibGVfcXVvdGUgXVxuICB0eXBlIHR1cGxlX2tpbmQgPSBbIGBQYXJlbnRoZXNpcyB8IGBTcXVhcmVfYnJhY2tldCBdXG5cblxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG4jIDE2MSBcImxpYi9yZWFkLm1sXCJcbmxldCBfX29jYW1sX2xleF90YWJsZXMgPSB7XG4gIExleGluZy5sZXhfYmFzZSA9XG4gICBcIlxcMDAwXFwwMDBcXDIzNlxcMjU1XFwyMzdcXDI1NVxcMDAzXFwwMDBcXDIzOVxcMjU1XFwwMTZcXDAwMFxcMjQyXFwyNTVcXDI0M1xcMjU1XFxcbiAgICBcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMDAwXFwwMDBcXDAzMVxcMDAwXFwyNDlcXDI1NVxcMDg1XFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDFcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDI1NFxcMjU1XFwwMDFcXDAwMFxcMDA0XFwwMDBcXDI1M1xcMjU1XFwwMTFcXDAwMFxcMjUyXFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDAwMVxcMDAwXFwwMDNcXDAwMFxcMDAyXFwwMDBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMjUxXFwyNTVcXDAyMVxcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDIyXFwwMDBcXDAyMFxcMDAwXFwwMTZcXDAwMFxcMDIyXFwwMDBcXDAxMlxcMDAwXFwwMDhcXDAwMFxcMjUwXFwyNTVcXFxuICAgIFxcMTE5XFwwMDBcXDEyOVxcMDAwXFwxMzlcXDAwMFxcMTYxXFwwMDBcXDE3MVxcMDAwXFwxODFcXDAwMFxcMTkzXFwwMDBcXDIwOVxcMDAwXFxcbiAgICBcXDI0MFxcMjU1XFwwMTFcXDAwMFxcMDM4XFwwMDBcXDI1MlxcMjU1XFwwNjVcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMTBcXDAwMFxcXG4gICAgXFwyNTJcXDI1NVxcMTYzXFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjM0XFwwMDBcXDI0N1xcMjU1XFwyNDhcXDI1NVxcMDQ4XFwwMDFcXFxuICAgIFxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDcxXFwwMDFcXDEyNlxcMDAxXFxcbiAgICBcXDE0OVxcMDAxXFwyNDlcXDI1NVxcMDM5XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDM4XFwwMDBcXDE4N1xcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNDhcXDAwMVxcMDE1XFwwMDJcXDI1NVxcMjU1XFwyMjBcXDAwMFxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMDM5XFwwMDJcXFxuICAgIFxcMTA5XFwwMDJcXDAxNFxcMDAxXFwwODhcXDAwMlxcMTY0XFwwMDJcXDE4N1xcMDAyXFwyMjVcXDAwMlxcMDEzXFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzBcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTVcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDFcXFxuICAgIFxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwwMTVcXDAwMFxcMjU1XFwyNTVcXDAxNlxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDFcXDAwNVxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwwMjNcXDAwMFxcMjU0XFwyNTVcXDAyMFxcMDAwXFwyNTVcXDI1NVxcMDQ2XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDQyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwyNTVcXDI1NVxcMDUzXFwwMDBcXDA0OFxcMDAwXFwwOTFcXDAwMFxcMDkyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAyN1xcMDAxXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDEzN1xcMDAwXFwxMDRcXDAwMFxcMDg5XFwwMDBcXDA4OFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDBcXDEzN1xcMDAwXFwxNzdcXDAwMFxcMjU0XFwyNTVcXDE4M1xcMDAwXFwxNjhcXDAwMFxcMTY2XFwwMDBcXFxuICAgIFxcMTgzXFwwMDBcXDAwMlxcMDAwXFwyNTNcXDI1NVxcMTc3XFwwMDBcXDE3MlxcMDAwXFwxODdcXDAwMFxcMDA0XFwwMDBcXDI1MlxcMjU1XFxcbiAgICBcXDA1M1xcMDAyXFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwxMDNcXDAwMVxcMjU1XFwyNTVcXDI0OFxcMDAyXFwyNTRcXDI1NVxcXG4gICAgXFwwMDZcXDAwM1xcMDMwXFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDBcXDAwM1xcMDUwXFwwMDNcXFxuICAgIFxcMDc0XFwwMDNcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNjFcXDAwM1xcMDg0XFwwMDNcXDEwOFxcMDAzXFxcbiAgICBcXDI0OVxcMjU1XFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI0NFxcMDAwXFwxMjBcXDAwM1xcMTQyXFwwMDNcXDE3OVxcMDAwXFwxOTRcXDAwMFxcXG4gICAgXFwwMTVcXDAwMFxcMjU1XFwyNTVcXDE5MFxcMDAwXFwxODhcXDAwMFxcMTg3XFwwMDBcXDE5M1xcMDAwXFwxODNcXDAwMFxcMTc5XFwwMDBcXFxuICAgIFxcMjU0XFwyNTVcXDE5MVxcMDAwXFwyMDFcXDAwMFxcMjAwXFwwMDBcXDE5NlxcMDAwXFwyMDNcXDAwMFxcMTkzXFwwMDBcXDE4OVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwxNTdcXDAwM1xcMDk1XFwwMDNcXDE3NFxcMDAzXFwxOTZcXDAwM1xcMjA2XFwwMDNcXDIxNlxcMDAzXFwyMjhcXDAwM1xcXG4gICAgXFwyMzlcXDAwM1xcMDYwXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxMlxcMDA0XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMDg3XFwwMDRcXDI1NVxcMjU1XFwxNDVcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyMjFcXDAwNFxcMjU1XFwyNTVcXDIyOVxcMDAwXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzMVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDE4XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzRcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAzOFxcMDAxXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxMjBcXDAwMVxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIwOFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMTFcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODlcXDAwMFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDk1XFwwMDFcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA1MFxcMDAxXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjZcXDAwMVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzNcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjIyXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDVcXDIzN1xcMjU1XFwyMzhcXDI1NVxcMDEwXFwwMDBcXDI0MFxcMjU1XFwwNDRcXDAwMVxcXG4gICAgXFwyNDNcXDI1NVxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwyNDZcXDI1NVxcMDYxXFwwMDFcXDAwMlxcMDA0XFwyNDlcXDI1NVxcMDQ1XFwwMDVcXFxuICAgIFxcMjA5XFwwMDBcXDIyOFxcMDAwXFwyMTFcXDAwMFxcMjMyXFwwMDBcXDIyNVxcMDAwXFwyMjNcXDAwMFxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDIzNVxcMDAwXFwyMzRcXDAwMFxcMDA4XFwwMDFcXDI1NFxcMjU1XFwwMDRcXDAwMVxcMDIzXFwwMDFcXDI1M1xcMjU1XFwwNTRcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMDMxXFwwMDFcXDAyOVxcMDAxXFwwMzJcXDAwMVxcMDM5XFwwMDFcXDA0OVxcMDAxXFwwNDVcXDAwMVxcMjUxXFwyNTVcXFxuICAgIFxcMDU3XFwwMDFcXDA4MlxcMDAxXFwwODBcXDAwMVxcMDc4XFwwMDFcXDA4NFxcMDAxXFwwNzRcXDAwMVxcMDg2XFwwMDFcXDI1MFxcMjU1XFxcbiAgICBcXDExMFxcMDA1XFwwMTJcXDAwNFxcMTIzXFwwMDVcXDE1NVxcMDA1XFwxNjVcXDAwNVxcMTc3XFwwMDVcXDE4N1xcMDA1XFwxOTdcXDAwNVxcXG4gICAgXFwyNDFcXDI1NVxcMTk5XFwwMDFcXDA3N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDE1NFxcMDAyXFwyMjJcXDAwNVxcMjA5XFwwMDVcXFxuICAgIFxcMTU1XFwwMDJcXDIzOVxcMDA1XFwwNTNcXDAwNlxcMDc2XFwwMDZcXDExNFxcMDA2XFwwMTZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTUyXFwwMDZcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjI3XFwwMDZcXDI1NVxcMjU1XFwwODVcXDAwN1xcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAxMVxcMDAwXFwyNDdcXDI1NVxcMDc2XFwwMDJcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMzFcXDAwMlxcMjQzXFwwMDVcXDA1MVxcMDA3XFwxMDBcXDAwMVxcMTE1XFwwMDFcXDEwNFxcMDAxXFxcbiAgICBcXDEzM1xcMDAxXFwxMThcXDAwMVxcMTU0XFwwMDFcXDE3MVxcMDAxXFwyNTVcXDI1NVxcMTczXFwwMDFcXDE3NlxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg3XFwwMDFcXDI1M1xcMDAxXFwyMzBcXDAwMVxcMjMwXFwwMDFcXDIzNFxcMDAxXFwyNDdcXDAwMVxcMjM3XFwwMDFcXFxuICAgIFxcMjM0XFwwMDFcXDAwOVxcMDAyXFwwMTlcXDAwMlxcMDE5XFwwMDJcXDAxNVxcMDAyXFwwMjFcXDAwMlxcMDExXFwwMDJcXDAwN1xcMDAyXFxcbiAgICBcXDE0MlxcMDA2XFwxNTJcXDAwNlxcMTE2XFwwMDdcXDE3MFxcMDA3XFwxODBcXDAwN1xcMTkwXFwwMDdcXDIwMFxcMDA3XFwyMTBcXDAwN1xcXG4gICAgXFwyNDhcXDI1NVxcMTIwXFwwMDJcXDE2N1xcMDAyXFwyNTNcXDI1NVxcMjU1XFwyNTVcXDIxNlxcMDAyXFwwODJcXDAwN1xcMjIwXFwwMDdcXFxuICAgIFxcMjM2XFwwMDJcXDI0NFxcMDA3XFwwNThcXDAwOFxcMDgxXFwwMDhcXDExOVxcMDA4XFwwNzZcXDAwMlxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTU3XFwwMDhcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjMyXFwwMDhcXDI1NVxcMjU1XFwxMzVcXDAwMlxcXG4gICAgXFwxMjBcXDAwMlxcMjUzXFwyNTVcXDEwMFxcMDAyXFwyNTRcXDI1NVxcMTgyXFwwMDJcXDI1NVxcMjU1XFwwMTFcXDAwMlxcMjU1XFwyNTVcXFxuICAgIFxcMjA0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNDZcXDAwMlxcMjU1XFwyNTVcXDE3OFxcMDAyXFxcbiAgICBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMjNcXDAwMFxcMjU1XFwyNTVcXDE4M1xcMDAyXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwxODdcXDAwMlxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIxXFwwMDJcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAxOVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxNDBcXDAwMVxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwxNTBcXDAwMVxcMTUxXFwwMDFcXDE1NFxcMDAxXFwxNjhcXDAwMVxcXG4gICAgXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE3MlxcMDAxXFwxNzNcXDAwMVxcMTgxXFwwMDFcXDE4NFxcMDAxXFwxODVcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5M1xcMDAxXFwxOTVcXDAwMVxcMTk2XFwwMDFcXDE5N1xcMDAxXFwyMDBcXDAwMVxcMjAzXFwwMDFcXDIyM1xcMDAxXFxcbiAgICBcXDIyNVxcMDAxXFwyMjhcXDAwMVxcMjQ5XFwwMDFcXDI1MVxcMDAxXFwwMDJcXDAwMlxcMDA0XFwwMDJcXDAxMVxcMDAyXFwwMTJcXDAwMlxcXG4gICAgXFwwMTNcXDAwMlxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrID1cbiAgIFwiXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTdcXDAwMFxcMjU1XFwyNTVcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFxcbiAgICBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDAwOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAxNFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcMDAzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDJcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwM1xcMDAwXFwwMDVcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAxOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDdcXDAwMFxcMDA3XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDZcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwNFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAzXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHQgPVxuICAgXCJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDU3XFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA2NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA4NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDk0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwOTdcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEwNFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTEzXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyMVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI2XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwxMzhcXDAwMFxcMDAwXFwwMDBcXDE0MlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwxNzhcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE4N1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIzNVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzlcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDlcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMTdcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDIyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDMyXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDQzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA0N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDU2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDEyMVxcMDAxXFwxMjVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEyOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTM1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTQ0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDE5M1xcMDAxXFwxOTdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDIyMFxcMDAxXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDIyNlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMDBcXDAwMFxcMDA1XFwwMDJcXDAwNlxcMDAyXFwwMDdcXDAwMlxcMDA4XFwwMDJcXFxuICAgIFxcMDA5XFwwMDJcXDAxMFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDE1XFwwMDJcXDAxNlxcMDAyXFxcbiAgICBcXDAxN1xcMDAyXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwMjFcXDAwMlxcMDIyXFwwMDJcXDAyM1xcMDAyXFwwMjRcXDAwMlxcXG4gICAgXFwwMjVcXDAwMlxcMDI2XFwwMDJcXDAyN1xcMDAyXFwwMjhcXDAwMlxcMDI5XFwwMDJcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXFxuICAgIFxcMDMzXFwwMDJcXDAwM1xcMDAyXCI7XG4gIExleGluZy5sZXhfdHJhbnMgPVxuICAgXCJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwNFxcMDAwXFwwMDBcXDAwMFxcMDAzXFwwMDBcXDAwM1xcMDAwXFwxMzRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI3XFwwMDBcXDEzOVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDAxMlxcMDAwXFwwMDNcXDAwMFxcMTcwXFwwMDBcXDEzNFxcMDAwXFwxNzVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDA3XFwwMDBcXDAxMVxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxNFxcMDAxXFwwMTNcXDAwMFxcMDQ5XFwwMDBcXDAwNVxcMDAwXFxcbiAgICBcXDAxMFxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDA1NlxcMDAwXFwxMThcXDAwMFxcMDA2XFwwMDBcXDEyOVxcMDAwXFwxMzBcXDAwMFxcMDU3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDFcXDEzN1xcMDAwXFwwMDBcXDAwMlxcMDQ5XFwwMDBcXDAwMFxcMDAwXFwwNDhcXDAwMFxcMTM4XFwwMDBcXDEwNlxcMDAwXFxcbiAgICBcXDA2MlxcMDAwXFwwMTRcXDAwMFxcMTEwXFwwMDBcXDEwNVxcMDAwXFwwMDBcXDAwMFxcMDQ5XFwwMDBcXDAxNVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAzMFxcMDAwXFwwNDhcXDAwMFxcMDA4XFwwMDBcXDExNFxcMDAwXFwyMDlcXDAwMFxcMjM2XFwwMDBcXDAwMFxcMDAxXFxcbiAgICBcXDAxM1xcMDAxXFwwMjlcXDAwMFxcMDIyXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDAxN1xcMDAwXFwwMjFcXDAwMFxcXG4gICAgXFwwMjVcXDAwMFxcMDMyXFwwMDBcXDAzM1xcMDAwXFwwMzVcXDAwMFxcMDIzXFwwMDBcXDAyN1xcMDAwXFwwMTZcXDAwMFxcMDMxXFwwMDBcXFxuICAgIFxcMDI4XFwwMDBcXDAzNFxcMDAwXFwwMTlcXDAwMFxcMDI0XFwwMDBcXDAxOFxcMDAwXFwwMjZcXDAwMFxcMDIwXFwwMDBcXDAzNlxcMDAwXFxcbiAgICBcXDA0MVxcMDAwXFwwMzdcXDAwMFxcMDQ4XFwwMDBcXDAwOVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFwwNDVcXDAwMFxcXG4gICAgXFwwNDZcXDAwMFxcMDQ3XFwwMDBcXDA2MVxcMDAwXFwwODVcXDAwMFxcMDQ4XFwwMDBcXDAzOFxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA0OVxcMDAwXFxcbiAgICBcXDA2N1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODZcXDAwMFxcMTQzXFwwMDBcXDI1NVxcMjU1XFwwNDBcXDAwMFxcMTQ0XFwwMDBcXFxuICAgIFxcMTQ1XFwwMDBcXDE0NlxcMDAwXFwwNTVcXDAwMFxcMTQ4XFwwMDBcXDA1NVxcMDAwXFwxNDlcXDAwMFxcMDQ4XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMjU1XFwyNTVcXDA0OFxcMDAwXFwxNTBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMFxcMTYxXFwwMDBcXDA2NlxcMDAwXFwxNThcXDAwMFxcMDUzXFwwMDBcXDE1OVxcMDAwXFwwNTNcXDAwMFxcMTYwXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDE2NVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjJcXDAwMFxcMTYzXFwwMDBcXDE2NlxcMDAwXFwwOTNcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAyXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDI1NVxcMjU1XFwwNzdcXDAwMFxcMTAzXFwwMDBcXDEwOFxcMDAwXFwxMTZcXDAwMFxcXG4gICAgXFwxMzJcXDAwMFxcMTM0XFwwMDBcXDEzNVxcMDAwXFwxMjhcXDAwMFxcMTM5XFwwMDBcXDEzNFxcMDAwXFwxNjRcXDAwMFxcMDkzXFwwMDBcXFxuICAgIFxcMTcxXFwwMDBcXDA3N1xcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE2OVxcMDAwXFwxNzJcXDAwMFxcMTEyXFwwMDBcXDE3M1xcMDAwXFxcbiAgICBcXDE3NFxcMDAwXFwyMTBcXDAwMFxcMjI2XFwwMDBcXDIwOFxcMDAwXFwyMTFcXDAwMFxcMjEyXFwwMDBcXDA1OVxcMDAwXFwwODNcXDAwMFxcXG4gICAgXFwxMzRcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE2XFwwMDBcXDIxOFxcMDAwXFwxNDFcXDAwMFxcMjE5XFwwMDBcXFxuICAgIFxcMDkzXFwwMDBcXDIyMFxcMDAwXFwyMjFcXDAwMFxcMTIzXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMjI0XFwwMDBcXDEzNlxcMDAwXFxcbiAgICBcXDA5NVxcMDAwXFwyMjVcXDAwMFxcMDM1XFwwMDFcXDA2NVxcMDAxXFwyMzRcXDAwMFxcMTU1XFwwMDBcXDAwNVxcMDAxXFwwOTdcXDAwMVxcXG4gICAgXFwyNTBcXDAwMFxcMjU1XFwyNTVcXDI1NFxcMDAwXFwwNTdcXDAwMVxcMDYxXFwwMDFcXDA5NVxcMDAxXFwwNzdcXDAwMFxcMDQ0XFwwMDFcXFxuICAgIFxcMDkyXFwwMDFcXDA4OFxcMDAxXFwwMDlcXDAwMVxcMDI5XFwwMDFcXDA3NlxcMDAwXFwxMjRcXDAwMFxcMDMzXFwwMDFcXDAxOFxcMDAxXFxcbiAgICBcXDA3NVxcMDAwXFwwOThcXDAwMFxcMDE5XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDg3XFwwMDFcXDEyMFxcMDAxXFwwODlcXDAwMVxcXG4gICAgXFwwNzRcXDAwMFxcMjI1XFwwMDBcXDA1M1xcMDAxXFwxMjFcXDAwMVxcMDczXFwwMDBcXDA5MFxcMDAxXFwwNzJcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDk4XFwwMDBcXDExM1xcMDAxXFwxMjJcXDAwMFxcMDkxXFwwMDFcXDA2NFxcMDAwXFwwMDRcXDAwMVxcXG4gICAgXFwwOTNcXDAwMVxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwxNTZcXDAwMFxcMTEyXFwwMDFcXDA5NFxcMDAxXFwwOTZcXDAwMVxcMDk4XFwwMDFcXDA5OVxcMDAxXFwwNDlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwxMDBcXDAwMVxcMTU3XFwwMDBcXFxuICAgIFxcMTAxXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDE4M1xcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMDI0XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMDI1XFwwMDFcXDEwMlxcMDAxXFwxMDNcXDAwMVxcMTA1XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwxMDZcXDAwMVxcMTA3XFwwMDFcXDA0OFxcMDAxXFwwNDBcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwxMTBcXDAwMVxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwxMTFcXDAwMVxcXG4gICAgXFwwMjdcXDAwMVxcMjU1XFwyNTVcXDE3MVxcMDAxXFwwMzFcXDAwMVxcMTcwXFwwMDFcXDAyM1xcMDAxXFwwODFcXDAwMFxcMDgxXFwwMDBcXFxuICAgIFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA5MlxcMDAwXFwxNjhcXDAwMVxcMDYzXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMjQ4XFwwMDBcXDE2NVxcMDAxXFwyNTJcXDAwMFxcXG4gICAgXFwxNjJcXDAwMVxcMDU5XFwwMDFcXDA2OVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwyNTVcXDI1NVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDAzOVxcMDAxXFwwNDJcXDAwMVxcMjU1XFwyNTVcXDE2M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwxMjBcXDAwMFxcMDAyXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMTY2XFwwMDFcXDA1NVxcMDAxXFwxNTNcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwMDdcXDAwMVxcMTY3XFwwMDFcXDE2NFxcMDAxXFwxNjlcXDAwMVxcMDE2XFwwMDFcXDE2NFxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA1MVxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA5MFxcMDAwXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDEzN1xcMDAxXFwxNjRcXDAwMVxcMTcyXFwwMDFcXDE4NVxcMDAxXFwxMzZcXDAwMVxcMTczXFwwMDFcXFxuICAgIFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDk3XFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDE3NFxcMDAxXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNDZcXDAwMVxcXG4gICAgXFwxNzVcXDAwMVxcMTc2XFwwMDFcXDE4MFxcMDAwXFwxNjRcXDAwMVxcMTg0XFwwMDFcXDE4MVxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDEyNFxcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDE5MlxcMDAxXFwxNzhcXDAwMVxcXG4gICAgXFwwMjFcXDAwMVxcMTc5XFwwMDFcXDA5N1xcMDAwXFwxOTNcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcMTgzXFwwMDFcXFxuICAgIFxcMTY0XFwwMDFcXDIxNlxcMDAxXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDE4NFxcMDAxXFwyMTZcXDAwMVxcMjA5XFwwMDFcXDA5N1xcMDAwXFxcbiAgICBcXDIyM1xcMDAxXFwwOTdcXDAwMFxcMjA4XFwwMDFcXDIzMFxcMDAxXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDIxOVxcMDAxXFwwMzdcXDAwMVxcXG4gICAgXFwyMTZcXDAwMVxcMjE3XFwwMDFcXDAwM1xcMDAyXFwyMjBcXDAwMVxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMTZcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMTI2XFwwMDFcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMjE4XFwwMDFcXDI1MFxcMDAxXFxcbiAgICBcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDAwM1xcMDAyXFwxMjRcXDAwMVxcMTI0XFwwMDFcXDA5N1xcMDAwXFwwMDNcXDAwMlxcXG4gICAgXFwyMjFcXDAwMVxcMDAzXFwwMDJcXDI1M1xcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDJcXDE5NlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwyMzVcXDAwMVxcMDAzXFwwMDJcXFxuICAgIFxcMjQxXFwwMDFcXDAwM1xcMDAyXFwyNTVcXDAwMVxcMjQyXFwwMDFcXDAwM1xcMDAyXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI0NlxcMDAxXFwxMjlcXDAwMVxcMTI5XFwwMDFcXFxuICAgIFxcMjI4XFwwMDFcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDAzXFwwMDJcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMDAzXFwwMDJcXDE5OFxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMjM0XFwwMDFcXFxuICAgIFxcMTM0XFwwMDFcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDAwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDFcXDAwMVxcMTc3XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg4XFwwMDBcXDAwMFxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDIwMVxcMDAxXFwyMjdcXDAwMVxcMDAwXFwwMDBcXDE5MVxcMDAwXFwyMDZcXDAwMVxcMTIzXFwwMDFcXDE4OVxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTg5XFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTk1XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5OFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNDhcXDAwMVxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk2XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMjAyXFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjA1XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjI2XFwwMDBcXDE5NVxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNlxcMDAwXFwyMjFcXDAwMVxcMjM5XFwwMDFcXFxuICAgIFxcMjU0XFwwMDFcXDAwMFxcMDAwXFwyMDdcXDAwMFxcMjQ0XFwwMDFcXDAwMFxcMDAwXFwyMjVcXDAwMFxcMjAzXFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIzMlxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDFcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIxN1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcMDAwXFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg2XFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTEzXFwwMDFcXDAwMFxcMDAwXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwMDBcXDAwMFxcMTEyXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxOTNcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwyMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXDI0NlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDIzOFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2OVxcMDAxXFwwNzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcMDc2XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwNzhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEwNFxcMDAxXFwwNzNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDc5XFwwMDFcXDAwMFxcMDAwXFwwNzFcXDAwMVxcMDc2XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjQzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDFcXDExOVxcMDAxXFwwMDBcXDAwMFxcMTE5XFwwMDFcXDAwMFxcMDAwXFwwODFcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3NFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwODNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDgyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwODRcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE3XFwwMDFcXDAwMFxcMDAwXFwwNzVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTg1XFwwMDFcXDAwMFxcMDAwXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxODRcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjdcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDE5MVxcMDAxXFwxNDJcXDAwMVxcMTkxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDZcXDAwMVxcMTQ3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDZcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE0NlxcMDAxXFwwMDBcXDAwMFxcMTUzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE3N1xcMDAxXFwxNTBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMTU2XFwwMDFcXDAwMFxcMDAwXFwxNDhcXDAwMVxcMTU0XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE0OVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEzOVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1N1xcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNThcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDE1MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMTg3XFwwMDFcXDAwMFxcMDAwXFwxNjBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU5XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxNjFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE4OVxcMDAxXFwwMDBcXDAwMFxcMTg5XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDVcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE5OVxcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDAwMFxcMDAwXFwyMTRcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIxMVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcIjtcbiAgTGV4aW5nLmxleF9jaGVjayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMDAwXFwwMDBcXDEzNFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDEzNFxcMDAwXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDA1N1xcMDAwXFwyNTVcXDI1NVxcMDY5XFwwMDFcXFxuICAgIFxcMTQ2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjVcXDAwMFxcMTM4XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwM1xcMDAwXFwxNjlcXDAwMFxcMTM0XFwwMDBcXDE3NFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDEwXFwwMDFcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMDEyXFwwMDFcXDAwMFxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDA1XFwwMDBcXDExNVxcMDAwXFwwMDBcXDAwMFxcMTI1XFwwMDBcXDEyOVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyMzZcXDAwMVxcMTM2XFwwMDBcXDI1NVxcMDAxXFwwMzhcXDAwMFxcMjU1XFwyNTVcXDAxMFxcMDAwXFwxMzZcXDAwMFxcMTAyXFwwMDBcXFxuICAgIFxcMDU4XFwwMDBcXDAwMFxcMDAwXFwxMDdcXDAwMFxcMTAyXFwwMDBcXDI1NVxcMjU1XFwwMTFcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDI5XFwwMDBcXDAzOFxcMDAwXFwwMDBcXDAwMFxcMTExXFwwMDBcXDIwOFxcMDAwXFwyMzNcXDAwMFxcMjU1XFwwMDBcXFxuICAgIFxcMDEyXFwwMDFcXDAxNVxcMDAwXFwwMTdcXDAwMFxcMDYwXFwwMDBcXDAxMVxcMDAwXFwwMTBcXDAwMFxcMDAwXFwwMDBcXDAyMFxcMDAwXFxcbiAgICBcXDAyNFxcMDAwXFwwMzFcXDAwMFxcMDMyXFwwMDBcXDAzNFxcMDAwXFwwMjJcXDAwMFxcMDI2XFwwMDBcXDAwMFxcMDAwXFwwMTRcXDAwMFxcXG4gICAgXFwwMjdcXDAwMFxcMDMzXFwwMDBcXDAxOFxcMDAwXFwwMjNcXDAwMFxcMDAwXFwwMDBcXDAxNlxcMDAwXFwwMTlcXDAwMFxcMDM1XFwwMDBcXFxuICAgIFxcMDQwXFwwMDBcXDAzNlxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDA0MVxcMDAwXFwwNDJcXDAwMFxcMDQzXFwwMDBcXDA0NFxcMDAwXFxcbiAgICBcXDA0NVxcMDAwXFwwNDZcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFwwMTFcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcXG4gICAgXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDYzXFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDA4NVxcMDAwXFwxNDBcXDAwMFxcMDYwXFwwMDBcXDAxM1xcMDAwXFwxNDNcXDAwMFxcXG4gICAgXFwxNDRcXDAwMFxcMTQ1XFwwMDBcXDA0OFxcMDAwXFwxNDdcXDAwMFxcMDQ4XFwwMDBcXDE0OFxcMDAwXFwwMzlcXDAwMFxcMDQ4XFwwMDBcXFxuICAgIFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNjVcXDAwMFxcMDM5XFwwMDBcXDE0OVxcMDAwXFxcbiAgICBcXDE1MFxcMDAwXFwxNTZcXDAwMFxcMDYzXFwwMDBcXDE1N1xcMDAwXFwwNTFcXDAwMFxcMTU4XFwwMDBcXDA1MVxcMDAwXFwxNTlcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXFxuICAgIFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcXG4gICAgXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMTU1XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFxcbiAgICBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDE2MVxcMDAwXFwxNjJcXDAwMFxcMTU1XFwwMDBcXDA5MVxcMDAwXFwwNjVcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXFxuICAgIFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU3XFwwMDBcXDA2OFxcMDAwXFwxMDJcXDAwMFxcMTA3XFwwMDBcXDExNVxcMDAwXFxcbiAgICBcXDEzMVxcMDAwXFwxMzNcXDAwMFxcMTMzXFwwMDBcXDEyNVxcMDAwXFwxMzhcXDAwMFxcMTMzXFwwMDBcXDE2M1xcMDAwXFwwOTRcXDAwMFxcXG4gICAgXFwxNjVcXDAwMFxcMDY4XFwwMDBcXDE2NlxcMDAwXFwxNjdcXDAwMFxcMTY4XFwwMDBcXDE3MVxcMDAwXFwxMTFcXDAwMFxcMTcyXFwwMDBcXFxuICAgIFxcMTczXFwwMDBcXDIwNlxcMDAwXFwyMDNcXDAwMFxcMjA3XFwwMDBcXDIxMFxcMDAwXFwyMTFcXDAwMFxcMDU4XFwwMDBcXDA4MlxcMDAwXFxcbiAgICBcXDEzM1xcMDAwXFwyMTJcXDAwMFxcMjEzXFwwMDBcXDIxNFxcMDAwXFwyMTVcXDAwMFxcMjE3XFwwMDBcXDE0MFxcMDAwXFwyMThcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMjE5XFwwMDBcXDIyMFxcMDAwXFwxMTlcXDAwMFxcMjIxXFwwMDBcXDIyMlxcMDAwXFwyMjNcXDAwMFxcMTMzXFwwMDBcXFxuICAgIFxcMDkxXFwwMDBcXDIwM1xcMDAwXFwwMzRcXDAwMVxcMDYyXFwwMDFcXDIzM1xcMDAwXFwxNTJcXDAwMFxcMDAxXFwwMDFcXDA4MFxcMDAxXFxcbiAgICBcXDI0N1xcMDAwXFwwNjBcXDAwMFxcMjUxXFwwMDBcXDA1NFxcMDAxXFwwNThcXDAwMVxcMDgxXFwwMDFcXDA2OFxcMDAwXFwwNDFcXDAwMVxcXG4gICAgXFwwODJcXDAwMVxcMDgzXFwwMDFcXDAwNlxcMDAxXFwwMjZcXDAwMVxcMDY4XFwwMDBcXDExOVxcMDAwXFwwMzBcXDAwMVxcMDE1XFwwMDFcXFxuICAgIFxcMDY4XFwwMDBcXDA5NFxcMDAwXFwwMTVcXDAwMVxcMDg0XFwwMDFcXDA4NVxcMDAxXFwwODZcXDAwMVxcMDcxXFwwMDFcXDA4OFxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwyMDNcXDAwMFxcMDUwXFwwMDFcXDA3MVxcMDAxXFwwNjhcXDAwMFxcMDg5XFwwMDFcXDA2OFxcMDAwXFwwNjhcXDAwMFxcXG4gICAgXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwOTdcXDAwMFxcMDc2XFwwMDFcXDExOVxcMDAwXFwwOTBcXDAwMVxcMDYzXFwwMDBcXDAwMVxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDE1MlxcMDAwXFwwNzZcXDAwMVxcMDkzXFwwMDFcXDA5NVxcMDAxXFwwOTdcXDAwMVxcMDk4XFwwMDFcXDA0NVxcMDAxXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OVxcMDAxXFwxNTJcXDAwMFxcXG4gICAgXFwxMDBcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMTgwXFwwMDBcXFxuICAgIFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwwMjBcXDAwMVxcMDc2XFwwMDFcXDA2NVxcMDAwXFwwMjBcXDAwMVxcMTAxXFwwMDFcXDEwMlxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDEwNVxcMDAxXFwxMDZcXDAwMVxcMDQ1XFwwMDFcXDAzNlxcMDAxXFwxMDdcXDAwMVxcMTA4XFwwMDFcXDEwOVxcMDAxXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDExMFxcMDAxXFxcbiAgICBcXDAyNlxcMDAxXFwxMjFcXDAwMVxcMTU3XFwwMDFcXDAzMFxcMDAxXFwxNThcXDAwMVxcMDIwXFwwMDFcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDkxXFwwMDBcXDE1OVxcMDAxXFwwNjJcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwyNDdcXDAwMFxcMTYwXFwwMDFcXDI1MVxcMDAwXFxcbiAgICBcXDE2MVxcMDAxXFwwNThcXDAwMVxcMDY4XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA5NFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFxcbiAgICBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDM2XFwwMDFcXDA0MVxcMDAxXFwwOTdcXDAwMFxcMTYyXFwwMDFcXFxuICAgIFxcMTYzXFwwMDFcXDExOVxcMDAwXFwwMDFcXDAwMVxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwxNjVcXDAwMVxcMDU0XFwwMDFcXDE1MlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDAwNlxcMDAxXFwxNjZcXDAwMVxcMTY3XFwwMDFcXDE2OFxcMDAxXFwwMTVcXDAwMVxcMTY5XFwwMDFcXFxuICAgIFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDUwXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTMzXFwwMDFcXDE3MFxcMDAxXFwxNzFcXDAwMVxcMTU0XFwwMDFcXDEzM1xcMDAxXFwxNzJcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTVcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTczXFwwMDFcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA0NVxcMDAxXFxcbiAgICBcXDE3NFxcMDAxXFwxNzVcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAxXFwxNTRcXDAwMVxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcXG4gICAgXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTIyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMTQ4XFwwMDFcXDE3N1xcMDAxXFxcbiAgICBcXDAyMFxcMDAxXFwxNzhcXDAwMVxcMDk4XFwwMDBcXDE0OFxcMDAxXFwxNzlcXDAwMVxcMTgwXFwwMDFcXDE4MVxcMDAxXFwxODJcXDAwMVxcXG4gICAgXFwxODNcXDAwMVxcMjE2XFwwMDFcXDE5M1xcMDAxXFwwOTVcXDAwMFxcMTU0XFwwMDFcXDIxNlxcMDAxXFwyMDVcXDAwMVxcMDk4XFwwMDBcXFxuICAgIFxcMjIyXFwwMDFcXDA5NVxcMDAwXFwyMDVcXDAwMVxcMjI5XFwwMDFcXDAwMVxcMDAyXFwwOTVcXDAwMFxcMjE4XFwwMDFcXDAzNlxcMDAxXFxcbiAgICBcXDIxNVxcMDAxXFwyMTVcXDAwMVxcMDAyXFwwMDJcXDIxOFxcMDAxXFwyMTVcXDAwMVxcMDk1XFwwMDBcXDAwNFxcMDAyXFwwMDVcXDAwMlxcXG4gICAgXFwyMTZcXDAwMVxcMDk1XFwwMDBcXDAwNlxcMDAyXFwwOTVcXDAwMFxcMDk1XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDIxNVxcMDAxXFxcbiAgICBcXDAwN1xcMDAyXFwxMjJcXDAwMVxcMDA4XFwwMDJcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDA5NlxcMDAwXFwwOTZcXDAwMFxcXG4gICAgXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk4XFwwMDBcXDAxMlxcMDAyXFwyMTVcXDAwMVxcMjQ3XFwwMDFcXFxuICAgIFxcMDEzXFwwMDJcXDAxNFxcMDAyXFwwOThcXDAwMFxcMDE1XFwwMDJcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMDk4XFwwMDBcXDAxNlxcMDAyXFxcbiAgICBcXDIyMFxcMDAxXFwwMTdcXDAwMlxcMjUxXFwwMDFcXDAxOFxcMDAyXFwwMTlcXDAwMlxcMDIwXFwwMDJcXDA5OFxcMDAwXFwxMjFcXDAwMVxcXG4gICAgXFwwMjFcXDAwMlxcMTk0XFwwMDFcXDA5OFxcMDAwXFwwMjJcXDAwMlxcMDk4XFwwMDBcXDA5OFxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDIzMVxcMDAxXFwwMjNcXDAwMlxcXG4gICAgXFwyMzhcXDAwMVxcMDI0XFwwMDJcXDI1MVxcMDAxXFwyMzhcXDAwMVxcMDI1XFwwMDJcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXFxuICAgIFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjQzXFwwMDFcXDEyNVxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwyMjRcXDAwMVxcMDI2XFwwMDJcXDE5N1xcMDAxXFwwMjdcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwwMjhcXDAwMlxcMTk0XFwwMDFcXDAyOVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDAzMFxcMDAyXFwwMzFcXDAwMlxcMDMyXFwwMDJcXDIwMFxcMDAxXFwyMzFcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMjU1XFwyNTVcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5N1xcMDAxXFwxNzZcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMjU1XFwyNTVcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIyNFxcMDAxXFwyNTVcXDI1NVxcMTg1XFwwMDBcXDIwNVxcMDAxXFwxMjJcXDAwMVxcMTg1XFwwMDBcXDE4NVxcMDAwXFxcbiAgICBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFxcbiAgICBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTJcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcXG4gICAgXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTkyXFwwMDBcXFxuICAgIFxcMTkzXFwwMDFcXDI0N1xcMDAxXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOTlcXDAwMFxcMjI2XFwwMDBcXFxuICAgIFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwxOTlcXDAwMFxcMTI1XFwwMDFcXDEyOFxcMDAxXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcXG4gICAgXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwyMDRcXDAwMFxcMTk0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDBcXDIyMFxcMDAxXFwyMzhcXDAwMVxcXG4gICAgXFwyNTFcXDAwMVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyNDNcXDAwMVxcMjU1XFwyNTVcXDIwNFxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI1XFwwMDBcXDI1NVxcMjU1XFwyMjRcXDAwMVxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjA1XFwwMDBcXFxuICAgIFxcMTk3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjI4XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDIyOFxcMDAwXFwyNTVcXDI1NVxcMjI3XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFxcbiAgICBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwxODVcXDAwMFxcMjMyXFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwNzdcXDAwMVxcMjU1XFwyNTVcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFxcbiAgICBcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjM3XFwwMDBcXDE5OVxcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjM3XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFxcbiAgICBcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDc5XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwNjZcXDAwMVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwxMTJcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXFxuICAgIFxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcXG4gICAgXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDExNFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDExNVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTVcXDAwMVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXFxuICAgIFxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFxcbiAgICBcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXFxuICAgIFxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcXG4gICAgXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMjU1XFwyNTVcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDEyNlxcMDAxXFwxMjlcXDAwMVxcMTI2XFwwMDFcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMTI5XFwwMDFcXDEyOVxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTg0XFwwMDFcXDEzOFxcMDAxXFwxODRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxODRcXDAwMVxcMTg0XFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzOFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXFxuICAgIFxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTU2XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE5OFxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFxcbiAgICBcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcXG4gICAgXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxOThcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTQzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE5OFxcMDAxXFwxODZcXDAwMVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTk4XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDFcXDI1NVxcMjU1XFwxODdcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTg2XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXFxuICAgIFxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcXG4gICAgXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcXG4gICAgXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyMDFcXDAwMVxcMjAxXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwNFxcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjU1XFwyNTVcXDIxMFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjEwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVwiO1xuICBMZXhpbmcubGV4X2Jhc2VfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2JhY2t0cmtfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2RlZmF1bHRfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X3RyYW5zX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9jaGVja19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY29kZSA9XG4gICBcIlwiO1xufVxuXG5sZXQgcmVjIHJlYWRfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE4OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgQm9vbCB0cnVlIClcblxuIyAxMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgZmFsc2UgKVxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwMzggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBgTnVsbCApXG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA0MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAxOTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXQgbmFuXG4gICAgICAgICAgICAgICAgXG4jIDE5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IGluZmluaXR5XG4gICAgICAgICAgICAgICAgXG4jIDIwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IG5lZ19pbmZpbml0eVxuICAgICAgICAgICAgICAgIFxuIyAyMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDc2IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAyMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgXG4jIDIxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgYFN0cmluZyAoZmluaXNoX3N0cmluZyB2IGxleGJ1ZilcbiAgICAgICAgICAgICAgICBcbiMgMjE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMjIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmIClcblxuIyAxMDkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDkzIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9uZWdhdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIyMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0IChmbG9hdF9vZl9zdHJpbmcgKGxleGVtZSBsZXhidWYpKVxuICAgICAgICAgICAgICAgICBcbiMgMjI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExMDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExMDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9pZGVudCB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSAoZmllbGRfbmFtZSwgcmVhZF9qc29uIHYgbGV4YnVmKSA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgYEFzc29jIChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEzNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEzNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGBMaXN0IChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyNzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9qc29uIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgYFR1cGxlIChMaXN0LnJldiAhYWNjKVxuICAgICAgICAgICAgICAgICBcbiMgMjg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExNzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExNzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMjkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDI5MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbnMgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYFZhcmlhbnQgKGNvbnMsIGZpbmlzaF92YXJpYW50IHYgbGV4YnVmKVxuICAgICAgICAgICAgICAgICBcbiMgMzAwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDExOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDExOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDExOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTUgLT5cblxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjAzIFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjA3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjA4IFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggcmVhZF9qc29uIHYgbGV4YnVmIClcblxuIyAxMjEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjEzIFwibGliL3JlYWQubWxcIlxuICB8IDE4IC0+XG5cbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOSAtPlxuXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDEyMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdfcmVjIHYgbGV4YnVmIDU4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBCdWZmZXIuY29udGVudHMgdi5idWYgKVxuXG4jIDEyMzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTI0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjUyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIDYzXG5hbmQgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGxldCBiID0gdi5idWYgaW5cbiAgICAgICAgICAgICAgICAgICAgZiAoQnVmZmVyLmNvbnRlbnRzIGIpIDAgKEJ1ZmZlci5sZW5ndGggYikgKVxuXG4jIDEyNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgbWFwX3N0cmluZyB2IGYgbGV4YnVmIClcblxuIyAxMjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjcxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDMyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTI4MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI4MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9lc2NhcGVkX2NoYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgNjhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICBjXG5cbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbiMgMTI5NCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGluXG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiBjIClcblxuIyAxMjk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjk5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxiJyApXG5cbiMgMTMwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcMDEyJyApXG5cbiMgMTMwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbicgKVxuXG4jIDEzMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDMzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHInIClcblxuIyAxMzE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzE5IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyAzMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFx0JyApXG5cbiMgMTMyMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMyNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5sZXRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIGFcblxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuIyAxMzI5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMSlcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJcblxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuIyAxMzM0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbiMgMTMzOSBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuIyAxMzQ0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNCkgaW5cblxuIyAzMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB4ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeCA+PSAweEQ4MDAgJiYgeCA8PSAweERCRkYgdGhlblxuICAgICAgICAgICAgIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmXG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICB1dGY4X29mX2NvZGUgdi5idWYgeFxuICAgICAgICAgKVxuXG4jIDEzNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDM0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgZXNjYXBlIHNlcXVlbmNlXCIgdiBsZXhidWYgKVxuXG4jIDEzNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDM0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc3Vycm9nYXRlX3BhaXIgdiB4IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgODJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5sZXRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBhXG5cbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM3OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDIpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG4jIDEzODMgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAzKVxuYW5kXG5cbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjXG5cbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbiMgMTM4OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDQpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkXG5cbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM5MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDUpIGluXG5cbiMgMzUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeSA9XG4gICAgICAgICAgICAgKGhleCBhIGxzbCAxMikgbG9yIChoZXggYiBsc2wgOCkgbG9yIChoZXggYyBsc2wgNCkgbG9yIGhleCBkXG4gICAgICAgICAgIGluXG4gICAgICAgICAgIGlmIHkgPj0gMHhEQzAwICYmIHkgPD0gMHhERkZGIHRoZW5cbiAgICAgICAgICAgICB1dGY4X29mX3N1cnJvZ2F0ZV9wYWlyIHYuYnVmIHggeVxuICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgbG9uZ19lcnJvciBcIkludmFsaWQgbG93IHN1cnJvZ2F0ZSBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCJcbiAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICApXG5cbiMgMTQwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiTWlzc2luZyBlc2NhcGUgc2VxdWVuY2UgcmVwcmVzZW50aW5nIGxvdyBzdXJyb2dhdGUgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgZm9yIGNvZGUgcG9pbnQgYmV5b25kIFUrRkZGRlwiIHYgbGV4YnVmIClcblxuIyAxNDExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDEyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzNjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE0MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3Vycm9nYXRlX3BhaXJfcmVjIHYgeCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgOTFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzNjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCBsZW4gPSBsZXhidWYubGV4X2N1cnJfcG9zIC0gbGV4YnVmLmxleF9zdGFydF9wb3MgaW5cbiAgICAgICAgICAgbGV0IHMgPSBCeXRlcy5jcmVhdGUgKGxlbisxKSBpblxuICAgICAgICAgICBCeXRlcy5zZXQgcyAwICdcIic7XG4gICAgICAgICAgIEJ5dGVzLmJsaXQgbGV4YnVmLmxleF9idWZmZXIgbGV4YnVmLmxleF9zdGFydF9wb3MgcyAxIGxlbjtcbiAgICAgICAgICAgQnl0ZXMudG9fc3RyaW5nIHNcbiAgICAgICAgIClcblxuIyAxNDMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDE0MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgMTAyXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM3NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPSByZWFkX2pzb24gdiBsZXhidWYgaW5cbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZjtcbiAgICAgICAgICAgU29tZSB4IClcblxuIyAxNDU4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDU5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIE5vbmUgKVxuXG4jIDE0NjMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDM4MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiAxMDdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2x0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDE0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIDExMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM5MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTUxMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUxMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29tbWEgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgMTE1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb21tYV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzk2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIDExOVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYEVkZ3lfYnJhY2tldCApXG5cbiMgMTU1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGBEb3VibGVfcXVvdGUgKVxuXG4jIDE1NTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgU3F1YXJlX2JyYWNrZXQgKVxuXG4jIDE1NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzwnLCAnXFxcIicgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTY4IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTU3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIDEyNVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJVbnRlcm1pbmF0ZWQgY29tbWVudFwiIHYgbGV4YnVmIClcblxuIyAxNTg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTkwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTk1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmIClcblxuIyAxNTk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjAwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2VvZiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiAxMzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAxNjE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9lb2ZfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiAxMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjI4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjI5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTYzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggcmVhZF9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMTY0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQyNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDE2NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgMTQwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdudWxsJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVsbF9pZl9wb3NzaWJsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIDE0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTY4MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bGxfaWZfcG9zc2libGVfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Jvb2wgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiAxNTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjk5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzAwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzEwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA0NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE3MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3RydWUnIG9yICdmYWxzZScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3MTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzI1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ib29sX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIDE3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfcG9zaXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTczOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTczOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggSW50X292ZXJmbG93IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50IG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50X29mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnRlZ2VyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTc2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnRlZ2VyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNzY4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY5IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTc3MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc3NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQzMiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiAxODVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDMyLm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzg4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDMyLm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQzMiBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4MDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50MzIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4MTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODE1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODE2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQzMl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaW50NjQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgMTkyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIHRyeSBJbnQ2NC5vZl9zdHJpbmcgKExleGluZy5sZXhlbWUgbGV4YnVmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxleGVyX2Vycm9yIFwiSW50MzIgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTgyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnQ2NC5vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYW4gaW50NjQgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxODQ3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODQ4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludDY0IGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxODUyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODUzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA1MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTg1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaW50NjRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bWJlciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgMTk5XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBuYW4gKVxuXG4jIDE4NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBpbmZpbml0eSApXG5cbiMgMTg3NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5lZ19pbmZpbml0eSApXG5cbiMgMTg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZsb2F0X29mX3N0cmluZyAobGV4ZW1lIGxleGJ1ZikgKVxuXG4jIDE4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGZsb2F0IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3Jlcy4gKilcbiAgICAgICAgICAgICAgICAgICAgZmxvYXRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiTmFOXCIgLT4gbmFuXG4gICAgICAgICAgICAgICAgICAgICAgfCBcIkluZmluaXR5XCIgLT4gaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IFwiLUluZmluaXR5XCIgLT4gbmVnX2luZmluaXR5XG4gICAgICAgICAgICAgICAgICAgICAgfCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbV9lcnJvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgYSBudW1iZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhIG51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICApXG5cbiMgMTkwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBudW1iZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDUzOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udW1iZXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3N0cmluZyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgMjMzXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zdHJpbmdfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxOTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICdcXFwiJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgMjM3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQ4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxubGV0XG5cbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBzXG5cbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbiMgMTk1OCBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWUgbGV4YnVmIGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyBsZXhidWYuTGV4aW5nLmxleF9jdXJyX3BvcyBpblxuXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBzIClcblxuIyAxOTYyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTYzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTY4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTk3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBtYXBfaWRlbnQgdiBmIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgMjQyXG5hbmQgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDE5ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBtYXBfbGV4ZW1lIGYgbGV4YnVmIClcblxuIyAxOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTk2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9zZXF1ZW5jZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI0N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwMjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDMyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjAzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc2VxdWVuY2VfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIDI1MVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIwNjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMDY3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDY4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjA3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGlzdF9yZXZfcmVjIHJlYWRfY2VsbCB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hcnJheV9lbmQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgMjU1XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMDg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDg1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIwODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwOTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgMjU3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjEwMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMjEwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjEwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMTExIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTEyIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjExNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjExNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZSByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIDI2MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfcmVjIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNjEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDYxNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBsZXQgcG9zID0gcmVmIDAgaW5cbiAgICAgICAgICAgICAgICAgICAgIGxldCBhY2MgPSByZWYgaW5pdF9hY2MgaW5cbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIXBvcyAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHBvcztcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFwb3MgIWFjYyB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBpbmNyIHBvcztcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgICAgIFxuIyA2MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjE1MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxNTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTYxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiAyNjZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxNzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjE3NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kMiB2IHN0ZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgMjY4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWZcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMTkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgcmFpc2UgRW5kX29mX3R1cGxlXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgb3IgJycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMDAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMDEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgMjcxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjIxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjI4IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjIzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9zZXAyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiAyNzZcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDIyNDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIyNTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiAyODJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2Fic3RyYWN0X2ZpZWxkc19yZWMgcmVhZF9rZXkgcmVhZF9maWVsZCBpbml0X2FjYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfa2V5IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfZmllbGQgIWFjYyBmaWVsZF9uYW1lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAhYWNjXG4gICAgICAgICAgICAgKVxuXG4jIDIzMDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ3snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzA5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzEwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjMxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xjdXJsIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIDI4NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGN1cmxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjMyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgMjkwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiAyOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDIzNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIDI5N1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjM5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzOTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzOTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHN0YXJ0X2FueV90dXBsZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdHVwbGVfcmVjIHYgbGV4YnVmIDMwMVxuYW5kIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZhbHNlIClcblxuIyAyNDE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDE1IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMjQxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKCcgb3IgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDI0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDI1IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbHBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIDMwNlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDQxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ0NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ0NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JwYXIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiAzMTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9ycGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9sYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIDMxNFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0ODUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0ODYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1snIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDkxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbGJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9yYnIgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIDMxOFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjUxNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUxOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfcmJyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc2tpcF9qc29uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfanNvbl9yZWMgdiBsZXhidWYgMzIyXG5hbmQgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTQwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NDQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTU1IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNTU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTYwIFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNzU4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTcwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjU5NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU5NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3ODQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTEgLT5cblxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgNzk5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDgwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIFxuIyA4MTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYzNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYzNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMiAtPlxuXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9za2lwX3ZhcmlhbnQgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDgyOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjUxIFwibGliL3JlYWQubWxcIlxuICB8IDEzIC0+XG5cbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjU1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjU2IFwibGliL3JlYWQubWxcIlxuICB8IDE0IC0+XG5cbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY2NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY2NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNiAtPlxuXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjY3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNyAtPlxuXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI2NzUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NzYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCB0b2tlblwiIHYgbGV4YnVmIClcblxuIyAyNjgwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjgxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgMzc4XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAyNjkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA4NDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI2OTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjcwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9za2lwX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgMzg5XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIHJlYWRfZ3QgdiBsZXhidWYgKVxuXG4jIDI3MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI3MjEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDg1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI3MjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3MjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjczMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjczMiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9za2lwX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2lkZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIDM5NFxuYW5kIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI3NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDg1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjc0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBzdHJpbmcgb3IgaWRlbnRpZmllciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI3NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIDM5OVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA4NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI3NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI3NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ3snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX29iamVjdCAtPlxuICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4OTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdbJztcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9lbmQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDkxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA5MTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKCc7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3R1cGxlX2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgXG4jIDkzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODQ1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODQ2IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDkzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzwnO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZmluaXNoX2J1ZmZlcl92YXJpYW50IHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgIFxuIyA5NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMjg2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODY2IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgICAgICAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODczIFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZiApXG5cbiMgMjg3OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg4MCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODg0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODg1IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjg4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI4OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA0NTBcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1wiJztcbiAgICAgICAgICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWZcbiAgICAgICAgIClcblxuIyAyOTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTA5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHN0cmluZyBsaXRlcmFsXCIgdiBsZXhidWYgKVxuXG4jIDI5MTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk2NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjkxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgNDYxXG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOic7XG4gICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9ndCB2IGxleGJ1ZiApXG5cbiMgMjkzMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkzNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAyOTM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgb3IgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTQ0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5NzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI5NDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiA0NjZcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBmaW5pc2hfYnVmZmVyX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjk2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmIClcblxuIyAyOTY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyOTcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTcxIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5ODAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfc3BhY2VfcmVjIHYgbGV4YnVmIDQ3MVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIi8qXCI7XG4gICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMjk5OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk5OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMDYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMDcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAzMDEzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAxOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAxOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9vYmplY3RfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiA0NzhcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7XG4gICAgICByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDMzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzAzNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAzOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDQ4MFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDUwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ30nOyByYWlzZSBFbmRfb2Zfb2JqZWN0IClcblxuIyAzMDU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDU1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICd9JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzA1OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzA2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3Rfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiA0ODVcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgNDg3XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzA5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICddJzsgcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAzMDk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICddJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIDQ5MlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoXG4gICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJyknO1xuICAgICAgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTIzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMzEyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzEyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIDQ5NFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMxMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7IHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMzE0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2NvbG9uIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9jb2xvbl9yZWMgdiBsZXhidWYgNDk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJzonIClcblxuIyAzMTY2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTY3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTcxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTcyIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTc2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTc3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2d0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9ndF9yZWMgdiBsZXhidWYgNTAzXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc+JyApXG5cbiMgMzE4OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE4OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxOTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTk5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgNTA3XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9zdHJpbmcgdi5idWYgXCIqL1wiIClcblxuIyAzMjEwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjExIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDMyMTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xcbic7XG4gICAgICAgICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgICAgICAgIGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmOyBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDMyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBqdW5rIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgNTEzXG5hbmQgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIExleGluZy5sZXhlbWUgbGV4YnVmIClcblxuIyAzMjM5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjQwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfanVua19yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbjs7XG5cblxuIyAxMDU1IFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDEwNTYgXCJsaWIvcmVhZC5tbGxcIlxuICBsZXQgXyA9IChyZWFkX2pzb24gOiBsZXhlcl9zdGF0ZSAtPiBMZXhpbmcubGV4YnVmIC0+IHQpXG5cbiAgbGV0IHJlYWRfdCA9IHJlYWRfanNvblxuXG4gIGxldCAoKSA9XG4gICAgcmVhZF9qdW5rIDo9IGp1bmtcblxuICBsZXQgcmVhZF9pbnQ4IHYgbGV4YnVmID1cbiAgICBsZXQgbiA9IHJlYWRfaW50IHYgbGV4YnVmIGluXG4gICAgaWYgbiA8IDAgfHwgbiA+IDI1NSB0aGVuXG4gICAgICBsZXhlcl9lcnJvciBcIkludDggb3ZlcmZsb3dcIiB2IGxleGJ1ZlxuICAgIGVsc2VcbiAgICAgIGNoYXJfb2ZfaW50IG5cblxuICBsZXQgcmVhZF9saXN0IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgTGlzdC5yZXYgKHJlYWRfbGlzdF9yZXYgcmVhZF9jZWxsIHYgbGV4YnVmKVxuXG4gIGxldCBhcnJheV9vZl9yZXZfbGlzdCBsID1cbiAgICBtYXRjaCBsIHdpdGhcbiAgICAgICAgW10gLT4gW3wgfF1cbiAgICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICAgIGxldCBsZW4gPSBMaXN0Lmxlbmd0aCBsIGluXG4gICAgICAgICAgbGV0IGEgPSBBcnJheS5tYWtlIGxlbiB4IGluXG4gICAgICAgICAgbGV0IHIgPSByZWYgdGwgaW5cbiAgICAgICAgICBmb3IgaSA9IGxlbiAtIDIgZG93bnRvIDAgZG9cbiAgICAgICAgICAgIGEuKGkpIDwtIExpc3QuaGQgIXI7XG4gICAgICAgICAgICByIDo9IExpc3QudGwgIXJcbiAgICAgICAgICBkb25lO1xuICAgICAgICAgIGFcblxuICBsZXQgcmVhZF9hcnJheSByZWFkX2NlbGwgdiBsZXhidWYgPVxuICAgIGxldCBsID0gcmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYgaW5cbiAgICBhcnJheV9vZl9yZXZfbGlzdCBsXG5cbiAgKCogUmVhZCBhIEpTT04gb2JqZWN0LCByZWFkaW5nIHRoZSBrZXlzIGludG8gT0NhbWwgc3RyaW5nc1xuICAgICAocHJvdmlkZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpICopXG4gIGxldCByZWFkX2ZpZWxkcyByZWFkX2ZpZWxkIGluaXRfYWNjIHYgPVxuICAgIHJlYWRfYWJzdHJhY3RfZmllbGRzIHJlYWRfaWRlbnQgcmVhZF9maWVsZCBpbml0X2FjYyB2XG5cbiAgbGV0IGZpbmlzaCB2IGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICBpZiBub3QgKHJlYWRfZW9mIGxleGJ1ZikgdGhlblxuICAgICAgbG9uZ19lcnJvciBcIkp1bmsgYWZ0ZXIgZW5kIG9mIEpTT04gdmFsdWU6XCIgdiBsZXhidWZcblxuICBsZXQgaW5pdF9sZXhlciA9IGluaXRfbGV4ZXJcblxuICBsZXQgZnJvbV9sZXhidWYgdiA/KHN0cmVhbSA9IGZhbHNlKSBsZXhidWYgPVxuICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG5cbiAgICBsZXQgeCA9XG4gICAgICBpZiByZWFkX2VvZiBsZXhidWYgdGhlblxuICAgICAgICByYWlzZSBFbmRfb2ZfaW5wdXRcbiAgICAgIGVsc2VcbiAgICAgICAgcmVhZF9qc29uIHYgbGV4YnVmXG4gICAgaW5cblxuICAgIGlmIG5vdCBzdHJlYW0gdGhlblxuICAgICAgZmluaXNoIHYgbGV4YnVmO1xuXG4gICAgeFxuXG5cbiAgbGV0IGZyb21fc3RyaW5nID9idWYgP2ZuYW1lID9sbnVtIHMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX3N0cmluZyBzIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9jaGFubmVsID9idWYgP2ZuYW1lID9sbnVtIGljID1cbiAgICB0cnlcbiAgICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICAgIGZyb21fbGV4YnVmIHYgbGV4YnVmXG4gICAgd2l0aCBFbmRfb2ZfaW5wdXQgLT5cbiAgICAgIGpzb25fZXJyb3IgXCJCbGFuayBpbnB1dCBkYXRhXCJcblxuICBsZXQgZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIHRyeVxuICAgICAgbGV0IHggPSBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgaW5cbiAgICAgIGNsb3NlX2luIGljO1xuICAgICAgeFxuICAgIHdpdGggZSAtPlxuICAgICAgY2xvc2VfaW5fbm9lcnIgaWM7XG4gICAgICByYWlzZSBlXG5cbiAgZXhjZXB0aW9uIEZpbmFsbHkgb2YgZXhuICogZXhuXG5cbiAgbGV0IHNlcV9mcm9tX2xleGJ1ZiB2ID8oZmluID0gZnVuICgpIC0+ICgpKSBsZXhidWYgPVxuICAgIGxldCBzdHJlYW0gPSBTb21lIHRydWUgaW5cbiAgICBsZXQgcmVjIGYgKCkgPVxuICAgICAgdHJ5IFNlcS5Db25zIChmcm9tX2xleGJ1ZiB2ID9zdHJlYW0gbGV4YnVmLCBmKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9pbnB1dCAtPlxuICAgICAgICAgICAgZmluICgpO1xuICAgICAgICAgICAgU2VxLk5pbFxuICAgICAgICB8IGUgLT5cbiAgICAgICAgICAgICh0cnkgZmluICgpIHdpdGggZmluX2UgLT4gcmFpc2UgKEZpbmFsbHkgKGUsIGZpbl9lKSkpO1xuICAgICAgICAgICAgcmFpc2UgZVxuICAgIGluXG4gICAgZlxuXG4gIGxldCBzZXFfZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgKExleGluZy5mcm9tX3N0cmluZyBzKVxuXG4gIGxldCBzZXFfZnJvbV9jaGFubmVsID9idWYgP2ZpbiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgP2ZpbiBsZXhidWZcblxuICBsZXQgc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fY2hhbm5lbCBpYyBpblxuICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgIHNlcV9mcm9tX2xleGJ1ZiB2IH5maW4gbGV4YnVmXG5cbiAgdHlwZSBqc29uX2xpbmUgPSBbIGBKc29uIG9mIHQgfCBgRXhuIG9mIGV4biBdXG5cbiAgbGV0IGxpbmVzZXFfZnJvbV9jaGFubmVsXG4gICAgICA/YnVmID8oZmluID0gZnVuICgpIC0+ICgpKSA/Zm5hbWUgP2xudW06KGxudW0wID0gMSkgaWMgPVxuICAgIGxldCBidWYgPVxuICAgICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgKEJ1ZmZlci5jcmVhdGUgMjU2KVxuICAgICAgICB8IFNvbWUgXyAtPiBidWZcbiAgICBpblxuICAgIGxldCByZWMgZiBsbnVtID0gZnVuICgpIC0+XG4gICAgICB0cnlcbiAgICAgICAgbGV0IGxpbmUgPSBpbnB1dF9saW5lIGljIGluXG4gICAgICAgIFNlcS5Db25zIChgSnNvbiAoZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgfmxudW0gbGluZSksIGYgKGxudW0gKyAxKSlcbiAgICAgIHdpdGhcbiAgICAgICAgICBFbmRfb2ZfZmlsZSAtPiBmaW4gKCk7IFNlcS5OaWxcbiAgICAgICAgfCBlIC0+IFNlcS5Db25zIChgRXhuIGUsIGYgKGxudW0gKyAxKSlcbiAgICBpblxuICAgIGYgbG51bTBcblxuICBsZXQgbGluZXNlcV9mcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgbGV0IGZpbiAoKSA9IGNsb3NlX2luIGljIGluXG4gICAgbGV0IGZuYW1lID1cbiAgICAgIG1hdGNoIGZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFNvbWUgZmlsZVxuICAgICAgICB8IHggLT4geFxuICAgIGluXG4gICAgbGluZXNlcV9mcm9tX2NoYW5uZWwgP2J1ZiB+ZmluID9mbmFtZSA/bG51bSBpY1xuXG4gIGxldCBwcmV0dGlmeSA/c3RkIHMgPVxuICAgIHByZXR0eV90b19zdHJpbmcgP3N0ZCAoZnJvbV9zdHJpbmcgcylcblxuICBsZXQgY29tcGFjdCA/c3RkIHMgPVxuICAgIHRvX3N0cmluZyAoZnJvbV9zdHJpbmcgcylcblxuXG4jIDM0MDggXCJsaWIvcmVhZC5tbFwiXG4jIDY5IFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFV0aWwgPVxuc3RydWN0XG4jIDEgXCJ1dGlsLm1sXCJcbmV4Y2VwdGlvbiBUeXBlX2Vycm9yIG9mIHN0cmluZyAqIHRcblxubGV0IHR5cGVvZiA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIF8gLT4gXCJvYmplY3RcIlxuICB8IGBCb29sIF8gLT4gXCJib29sXCJcbiAgfCBgRmxvYXQgXyAtPiBcImZsb2F0XCJcbiAgfCBgSW50IF8gLT4gXCJpbnRcIlxuICB8IGBMaXN0IF8gLT4gXCJhcnJheVwiXG4gIHwgYE51bGwgLT4gXCJudWxsXCJcbiAgfCBgU3RyaW5nIF8gLT4gXCJzdHJpbmdcIlxuICB8IGBJbnRsaXQgXyAtPiBcImludGxpdFwiXG4gIHwgYFR1cGxlIF8gLT4gXCJ0dXBsZVwiXG4gIHwgYFZhcmlhbnQgXyAtPiBcInZhcmlhbnRcIlxuXG5sZXQgdHlwZXJyIG1zZyBqcyA9IHJhaXNlIChUeXBlX2Vycm9yIChtc2cgXiB0eXBlb2YganMsIGpzKSlcblxuZXhjZXB0aW9uIFVuZGVmaW5lZCBvZiBzdHJpbmcgKiB0XG5cbmxldCBhc3NvYyBuYW1lIG9iaiA9XG4gIHRyeSBMaXN0LmFzc29jIG5hbWUgb2JqXG4gIHdpdGggTm90X2ZvdW5kIC0+IGBOdWxsXG5cbmxldCBtZW1iZXIgbmFtZSA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIG9iaiAtPiBhc3NvYyBuYW1lIG9ialxuICB8IGpzIC0+IHR5cGVyciAoXCJDYW4ndCBnZXQgbWVtYmVyICdcIiBeIG5hbWUgXiBcIicgb2Ygbm9uLW9iamVjdCB0eXBlIFwiKSBqc1xuXG5sZXQgaW5kZXggaSA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCBhcyBqcyAtPlxuICAgICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICAgIGxldCB3cmFwcGVkX2luZGV4ID0gaWYgaSA8IDAgdGhlbiBsZW4gKyBpIGVsc2UgaSBpblxuICAgICAgaWYgd3JhcHBlZF9pbmRleCA8IDAgfHwgd3JhcHBlZF9pbmRleCA+PSBsZW4gdGhlblxuICAgICAgICByYWlzZSAoVW5kZWZpbmVkIChcIkluZGV4IFwiIF4gc3RyaW5nX29mX2ludCBpIF4gXCIgb3V0IG9mIGJvdW5kc1wiLCBqcykpXG4gICAgICBlbHNlIExpc3QubnRoIGwgd3JhcHBlZF9pbmRleFxuICB8IGpzIC0+IHR5cGVyciAoXCJDYW4ndCBnZXQgaW5kZXggXCIgXiBzdHJpbmdfb2ZfaW50IGlcbiAgICAgICAgICAgICAgICAgXiBcIiBvZiBub24tYXJyYXkgdHlwZSBcIikganNcblxubGV0IG1hcCBmID0gZnVuY3Rpb25cbiAgfCBgTGlzdCBsIC0+IGBMaXN0IChMaXN0Lm1hcCBmIGwpXG4gIHwganMgLT4gdHlwZXJyIFwiQ2FuJ3QgbWFwIGZ1bmN0aW9uIG92ZXIgbm9uLWFycmF5IHR5cGUgXCIganNcblxubGV0IHRvX2Fzc29jID0gZnVuY3Rpb25cbiAgfCBgQXNzb2Mgb2JqIC0+IG9ialxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIG9iamVjdCwgZ290IFwiIGpzXG5cbmxldCB0b19vcHRpb24gZiA9IGZ1bmN0aW9uXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IHggLT4gU29tZSAoZiB4KVxuXG5sZXQgdG9fYm9vbCA9IGZ1bmN0aW9uXG4gIHwgYEJvb2wgYiAtPiBiXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYm9vbCwgZ290IFwiIGpzXG5cbmxldCB0b19ib29sX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEJvb2wgYiAtPiBTb21lIGJcbiAgfCBgTnVsbCAtPiBOb25lXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgYm9vbCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX251bWJlciA9IGZ1bmN0aW9uXG4gIHwgYEludCBpIC0+IGZsb2F0IGlcbiAgfCBgRmxvYXQgZiAtPiBmXG4gIHwganMgLT4gdHlwZXJyIFwiRXhwZWN0ZWQgbnVtYmVyLCBnb3QgXCIganNcblxubGV0IHRvX251bWJlcl9vcHRpb24gPSBmdW5jdGlvblxuICB8IGBJbnQgaSAtPiBTb21lIChmbG9hdCBpKVxuICB8IGBGbG9hdCBmIC0+IFNvbWUgZlxuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBudW1iZXIgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCB0b19mbG9hdCA9IGZ1bmN0aW9uXG4gIHwgYEZsb2F0IGYgLT4gZlxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGZsb2F0LCBnb3QgXCIganNcblxubGV0IHRvX2Zsb2F0X29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYEZsb2F0IGYgLT4gU29tZSBmXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGZsb2F0IG9yIG51bGwsIGdvdCBcIiBqc1xuXG5sZXQgdG9faW50ID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gaVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGludCwgZ290IFwiIGpzXG5cbmxldCB0b19pbnRfb3B0aW9uID0gZnVuY3Rpb25cbiAgfCBgSW50IGkgLT4gU29tZSBpXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGludCBvciBudWxsLCBnb3QgXCIganNcblxubGV0IHRvX2xpc3QgPSBmdW5jdGlvblxuICB8IGBMaXN0IGwgLT4gbFxuICB8IGpzIC0+IHR5cGVyciBcIkV4cGVjdGVkIGFycmF5LCBnb3QgXCIganNcblxubGV0IHRvX3N0cmluZyA9IGZ1bmN0aW9uXG4gIHwgYFN0cmluZyBzIC0+IHNcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBzdHJpbmcsIGdvdCBcIiBqc1xuXG5sZXQgdG9fc3RyaW5nX29wdGlvbiA9IGZ1bmN0aW9uXG4gIHwgYFN0cmluZyBzIC0+IFNvbWUgc1xuICB8IGBOdWxsIC0+IE5vbmVcbiAgfCBqcyAtPiB0eXBlcnIgXCJFeHBlY3RlZCBzdHJpbmcgb3IgbnVsbCwgZ290IFwiIGpzXG5cbmxldCBjb252ZXJ0X2VhY2ggZiA9IGZ1bmN0aW9uXG4gIHwgYExpc3QgbCAtPiBMaXN0Lm1hcCBmIGxcbiAgfCBqcyAtPiB0eXBlcnIgXCJDYW4ndCBjb252ZXJ0IGVhY2ggZWxlbWVudCBvZiBub24tYXJyYXkgdHlwZSBcIiBqc1xuXG5cbmxldCByZWMgcmV2X2ZpbHRlcl9tYXAgZiBhY2MgbCA9XG4gIG1hdGNoIGwgd2l0aFxuICAgICAgW10gLT4gYWNjXG4gICAgfCB4IDo6IHRsIC0+XG4gICAgICAgIG1hdGNoIGYgeCB3aXRoXG4gICAgICAgICAgICBOb25lIC0+IHJldl9maWx0ZXJfbWFwIGYgYWNjIHRsXG4gICAgICAgICAgfCBTb21lIHkgLT4gcmV2X2ZpbHRlcl9tYXAgZiAoeSA6OiBhY2MpIHRsXG5cbmxldCBmaWx0ZXJfbWFwIGYgbCA9XG4gIExpc3QucmV2IChyZXZfZmlsdGVyX21hcCBmIFtdIGwpXG5cbmxldCByZWMgcmV2X2ZsYXR0ZW4gYWNjIGwgPVxuICBtYXRjaCBsIHdpdGhcbiAgICAgIFtdIC0+IGFjY1xuICAgIHwgeCA6OiB0bCAtPlxuICAgICAgICBtYXRjaCB4IHdpdGhcbiAgICAgICAgICAgIGBMaXN0IGwyIC0+IHJldl9mbGF0dGVuIChMaXN0LnJldl9hcHBlbmQgbDIgYWNjKSB0bFxuICAgICAgICAgIHwgXyAtPiByZXZfZmxhdHRlbiBhY2MgdGxcblxubGV0IGZsYXR0ZW4gbCA9XG4gIExpc3QucmV2IChyZXZfZmxhdHRlbiBbXSBsKVxuXG5sZXQgZmlsdGVyX2luZGV4IGkgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBMaXN0IGwgLT5cbiAgICAgICAgICAodHJ5IFNvbWUgKExpc3QubnRoIGwgaSlcbiAgICAgICAgICAgd2l0aCBfIC0+IE5vbmUpXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9saXN0IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgTGlzdCBsIC0+IFNvbWUgbFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfbWVtYmVyIGsgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBBc3NvYyBsIC0+XG4gICAgICAgICAgKHRyeSBTb21lIChMaXN0LmFzc29jIGsgbClcbiAgICAgICAgICAgd2l0aCBfIC0+IE5vbmUpXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9hc3NvYyBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEFzc29jIGwgLT4gU29tZSBsXG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9ib29sIGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgQm9vbCB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBmaWx0ZXJfaW50IGwgPVxuICBmaWx0ZXJfbWFwIChcbiAgICBmdW5jdGlvblxuICAgICAgICBgSW50IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9mbG9hdCBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYEZsb2F0IHggLT4gU29tZSB4XG4gICAgICB8IF8gLT4gTm9uZVxuICApIGxcblxubGV0IGZpbHRlcl9udW1iZXIgbCA9XG4gIGZpbHRlcl9tYXAgKFxuICAgIGZ1bmN0aW9uXG4gICAgICAgIGBJbnQgeCAtPiBTb21lIChmbG9hdCB4KVxuICAgICAgfCBgRmxvYXQgeCAtPiBTb21lIHhcbiAgICAgIHwgXyAtPiBOb25lXG4gICkgbFxuXG5sZXQgZmlsdGVyX3N0cmluZyBsID1cbiAgZmlsdGVyX21hcCAoXG4gICAgZnVuY3Rpb25cbiAgICAgICAgYFN0cmluZyB4IC0+IFNvbWUgeFxuICAgICAgfCBfIC0+IE5vbmVcbiAgKSBsXG5cbmxldCBrZXlzIG8gPVxuICB0b19hc3NvYyBvIHw+IExpc3QubWFwIChmdW4gKGtleSwgXykgLT4ga2V5KVxuXG5sZXQgdmFsdWVzIG8gPVxuICB0b19hc3NvYyBvIHw+IExpc3QubWFwIChmdW4gKF8sIHZhbHVlKSAtPiB2YWx1ZSlcblxubGV0IGNvbWJpbmUgKGZpcnN0IDogdCkgKHNlY29uZCA6IHQpID1cbiAgbWF0Y2ggKGZpcnN0LCBzZWNvbmQpIHdpdGhcbiAgfCAoYEFzc29jIGEsIGBBc3NvYyBiKSAtPiAoYEFzc29jIChhIEAgYikgOiAgdClcbiAgfCAoYSwgYikgLT4gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgXCJFeHBlY3RlZCB0d28gb2JqZWN0cywgY2hlY2sgaW5wdXRzXCIpXG4jIDcyIFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4jIDc5IFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG5cbm1vZHVsZSBSYXcgPVxuc3RydWN0XG4jIDEgXCJ0eXBlLm1sXCJcbigqKiB7MyBUeXBlIG9mIHRoZSBKU09OIHRyZWV9ICopXG5cbnR5cGUgdCA9XG4gICAgW1xuICAgIHwgYE51bGxcbiAgICB8IGBCb29sIG9mIGJvb2xcbiAgICBcbiMgMTEgXCJ0eXBlLm1sXCJcbiAgICB8IGBJbnRsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDE3IFwidHlwZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgb2Ygc3RyaW5nXG4gICAgXG4jIDIzIFwidHlwZS5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IG9mIHN0cmluZ1xuICAgIFxuIyAyNSBcInR5cGUubWxcIlxuICAgIHwgYEFzc29jIG9mIChzdHJpbmcgKiB0KSBsaXN0XG4gICAgfCBgTGlzdCBvZiB0IGxpc3RcbiAgICBcbiMgMjggXCJ0eXBlLm1sXCJcbiAgICB8IGBUdXBsZSBvZiB0IGxpc3RcbiAgICBcbiMgMzEgXCJ0eXBlLm1sXCJcbiAgICB8IGBWYXJpYW50IG9mIChzdHJpbmcgKiB0IG9wdGlvbilcbiAgICBcbiMgMzMgXCJ0eXBlLm1sXCJcbiAgICBdXG4oKipcbkFsbCBwb3NzaWJsZSBjYXNlcyBkZWZpbmVkIGluIFlvanNvbjpcbi0gYE51bGw6IEpTT04gbnVsbFxuLSBgQm9vbCBvZiBib29sOiBKU09OIGJvb2xlYW5cbi0gYEludCBvZiBpbnQ6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudC5cbi0gYEludGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyIHdpdGhvdXQgZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCxcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYEZsb2F0IG9mIGZsb2F0OiBKU09OIG51bWJlciwgSW5maW5pdHksIC1JbmZpbml0eSBvciBOYU4uXG4tIGBGbG9hdGxpdCBvZiBzdHJpbmc6IEpTT04gbnVtYmVyLCBJbmZpbml0eSwgLUluZmluaXR5IG9yIE5hTixcblx0ICAgIHByZXNlcnZlZCBhcyBhIHN0cmluZy5cbi0gYFN0cmluZyBvZiBzdHJpbmc6IEpTT04gc3RyaW5nLiBCeXRlcyBpbiB0aGUgcmFuZ2UgMTI4LTI1NSBhcmUgcHJlc2VydmVkXG5cdCAgICBhcy1pcyB3aXRob3V0IGVuY29kaW5nIHZhbGlkYXRpb24gZm9yIGJvdGggcmVhZGluZ1xuXHQgICAgYW5kIHdyaXRpbmcuXG4tIGBTdHJpbmdsaXQgb2Ygc3RyaW5nOiBKU09OIHN0cmluZyBsaXRlcmFsIGluY2x1ZGluZyB0aGUgZG91YmxlIHF1b3Rlcy5cbi0gYEFzc29jIG9mIChzdHJpbmcgKiBqc29uKSBsaXN0OiBKU09OIG9iamVjdC5cbi0gYExpc3Qgb2YganNvbiBsaXN0OiBKU09OIGFycmF5LlxuLSBgVHVwbGUgb2YganNvbiBsaXN0OiBUdXBsZSAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWyhcImFiY1wiLCAxMjMpXS5cbi0gYFZhcmlhbnQgb2YgKHN0cmluZyAqIGpzb24gb3B0aW9uKTogVmFyaWFudCAobm9uLXN0YW5kYXJkIGV4dGVuc2lvbiBvZiBKU09OKS5cblx0ICAgIFN5bnRheDogWzxcIkZvb1wiPl0gb3IgWzxcIkJhclwiOjEyMz5dLlxuKilcblxuKCpcbiAgTm90ZSB0byBhZHZlbnR1cmVyczogb2NhbWxkb2MgZG9lcyBub3Qgc3VwcG9ydCBpbmxpbmUgY29tbWVudHNcbiAgb24gZWFjaCBwb2x5bW9ycGhpYyB2YXJpYW50LCBhbmQgY3BwbyBkb2Vzbid0IGFsbG93IHRvIGNvbmNhdGVuYXRlXG4gIGNvbW1lbnRzLCBzbyBpdCB3b3VsZCBiZSBjb21wbGljYXRlZCB0byBkb2N1bWVudCBvbmx5IHRoZVxuICBjYXNlcyB0aGF0IGFyZSBwcmVzZXJ2ZWQgYnkgY3BwbyBpbiB0aGUgdHlwZSBkZWZpbml0aW9uLlxuKilcbiMgMSBcIndyaXRlLm1sXCJcbigqIGluY2x1ZGVkOiB0eXBlLm1sICopXG5cbmxldCBoZXggbiA9XG4gIENoYXIuY2hyIChcbiAgICBpZiBuIDwgMTAgdGhlbiBuICsgNDhcbiAgICBlbHNlIG4gKyA4N1xuICApXG5cbmxldCB3cml0ZV9zcGVjaWFsIHNyYyBzdGFydCBzdG9wIG9iIHN0ciA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdHI7XG4gIHN0YXJ0IDo9IHN0b3AgKyAxXG5cbmxldCB3cml0ZV9jb250cm9sX2NoYXIgc3JjIHN0YXJ0IHN0b3Agb2IgYyA9XG4gIEJ1ZmZlci5hZGRfc3Vic3RyaW5nIG9iIHNyYyAhc3RhcnQgKHN0b3AgLSAhc3RhcnQpO1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIlxcXFx1MDBcIjtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iIChoZXggKENoYXIuY29kZSBjIGxzciA0KSk7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAoaGV4IChDaGFyLmNvZGUgYyBsYW5kIDB4ZikpO1xuICBzdGFydCA6PSBzdG9wICsgMVxuXG5sZXQgZmluaXNoX3N0cmluZyBzcmMgc3RhcnQgb2IgPVxuICB0cnlcbiAgICBCdWZmZXIuYWRkX3N1YnN0cmluZyBvYiBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydClcbiAgd2l0aCBleGMgLT5cbiAgICBQcmludGYuZXByaW50ZiBcInNyYz0lUyBzdGFydD0laSBsZW49JWlcXG4lIVwiXG4gICAgICBzcmMgIXN0YXJ0IChTdHJpbmcubGVuZ3RoIHNyYyAtICFzdGFydCk7XG4gICAgcmFpc2UgZXhjXG5cbmxldCB3cml0ZV9zdHJpbmdfYm9keSBvYiBzID1cbiAgbGV0IHN0YXJ0ID0gcmVmIDAgaW5cbiAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICBtYXRjaCBzLltpXSB3aXRoXG4gICAgICAgICdcIicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcXFxcIlwiXG4gICAgICB8ICdcXFxcJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxcXFxcXCJcbiAgICAgIHwgJ1xcYicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcYlwiXG4gICAgICB8ICdcXDAxMicgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcZlwiXG4gICAgICB8ICdcXG4nIC0+IHdyaXRlX3NwZWNpYWwgcyBzdGFydCBpIG9iIFwiXFxcXG5cIlxuICAgICAgfCAnXFxyJyAtPiB3cml0ZV9zcGVjaWFsIHMgc3RhcnQgaSBvYiBcIlxcXFxyXCJcbiAgICAgIHwgJ1xcdCcgLT4gd3JpdGVfc3BlY2lhbCBzIHN0YXJ0IGkgb2IgXCJcXFxcdFwiXG4gICAgICB8ICdcXHgwMCcuLidcXHgxRidcbiAgICAgIHwgJ1xceDdGJyBhcyBjIC0+IHdyaXRlX2NvbnRyb2xfY2hhciBzIHN0YXJ0IGkgb2IgY1xuICAgICAgfCBfIC0+ICgpXG4gIGRvbmU7XG4gIGZpbmlzaF9zdHJpbmcgcyBzdGFydCBvYlxuXG5sZXQgd3JpdGVfc3RyaW5nIG9iIHMgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1wiJztcbiAgd3JpdGVfc3RyaW5nX2JvZHkgb2IgcztcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdcIidcblxubGV0IGpzb25fc3RyaW5nX29mX3N0cmluZyBzID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAxMCBpblxuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cbmxldCB0ZXN0X3N0cmluZyAoKSA9XG4gIGxldCBzID0gQnl0ZXMuY3JlYXRlIDI1NiBpblxuICBmb3IgaSA9IDAgdG8gMjU1IGRvXG4gICAgQnl0ZXMuc2V0IHMgaSAoQ2hhci5jaHIgaSlcbiAgZG9uZTtcbiAganNvbl9zdHJpbmdfb2Zfc3RyaW5nIChCeXRlcy50b19zdHJpbmcgcylcblxuXG5sZXQgd3JpdGVfbnVsbCBvYiAoKSA9XG4gIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwibnVsbFwiXG5cbmxldCB3cml0ZV9ib29sIG9iIHggPVxuICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCB0aGVuIFwidHJ1ZVwiIGVsc2UgXCJmYWxzZVwiKVxuXG5cbmxldCBtYXhfZGlnaXRzID1cbiAgbWF4XG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWF4X2ludCkpXG4gICAgKFN0cmluZy5sZW5ndGggKHN0cmluZ19vZl9pbnQgbWluX2ludCkpXG5cbmxldCBkZWMgbiA9XG4gIENoYXIuY2hyIChuICsgNDgpXG5cbmxldCByZWMgd3JpdGVfZGlnaXRzIHMgeCA9XG4gIGlmIHggPSAwIHRoZW4gKClcbiAgZWxzZVxuICAgIGxldCBkID0geCBtb2QgMTAgaW5cbiAgICB3cml0ZV9kaWdpdHMgcyAoeCAvIDEwKTtcbiAgICBCdWZmZXIuYWRkX2NoYXIgcyAoZGVjIChhYnMgZCkpXG5cbmxldCB3cml0ZV9pbnQgb2IgeCA9XG4gIGlmIHggPiAwIHRoZW5cbiAgICB3cml0ZV9kaWdpdHMgb2IgeFxuICBlbHNlIGlmIHggPCAwIHRoZW4gKFxuICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnLSc7XG4gICAgd3JpdGVfZGlnaXRzIG9iIHhcbiAgKVxuICBlbHNlXG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICcwJ1xuXG5cbmxldCBqc29uX3N0cmluZ19vZl9pbnQgaSA9XG4gIHN0cmluZ19vZl9pbnQgaVxuXG5cbigqXG4gIEVuc3VyZSB0aGF0IHRoZSBmbG9hdCBpcyBub3QgcHJpbnRlZCBhcyBhbiBpbnQuXG4gIFRoaXMgaXMgbm90IHJlcXVpcmVkIGJ5IEpTT04sIGJ1dCB1c2VmdWwgaW4gb3JkZXIgdG8gZ3VhcmFudGVlXG4gIHJldmVyc2liaWxpdHkuXG4qKVxubGV0IGZsb2F0X25lZWRzX3BlcmlvZCBzID1cbiAgdHJ5XG4gICAgZm9yIGkgPSAwIHRvIFN0cmluZy5sZW5ndGggcyAtIDEgZG9cbiAgICAgIG1hdGNoIHMuW2ldIHdpdGhcbiAgICAgICAgICAnMCcuLic5JyB8ICctJyAtPiAoKVxuICAgICAgICB8IF8gLT4gcmFpc2UgRXhpdFxuICAgIGRvbmU7XG4gICAgdHJ1ZVxuICB3aXRoIEV4aXQgLT5cbiAgICBmYWxzZVxuXG4oKlxuICBHdWFyYW50ZWVzIHRoYXQgYSBzdWZmaWNpZW50IG51bWJlciBvZiBkaWdpdHMgYXJlIHByaW50ZWQgaW4gb3JkZXIgdG8gYWxsb3dcbiAgcmV2ZXJzaWJpbGl0eS5cbiopXG5sZXQgd3JpdGVfZmxvYXQgb2IgeCA9XG4gIG1hdGNoIGNsYXNzaWZ5X2Zsb2F0IHggd2l0aFxuICAgIEZQX25hbiAtPlxuICAgICAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgXCJOYU5cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiAoaWYgeCA+IDAuIHRoZW4gXCJJbmZpbml0eVwiIGVsc2UgXCItSW5maW5pdHlcIilcbiAgfCBfIC0+XG4gICAgICBsZXQgczEgPSBQcmludGYuc3ByaW50ZiBcIiUuMTZnXCIgeCBpblxuICAgICAgbGV0IHMgPVxuICAgICAgICBpZiBmbG9hdF9vZl9zdHJpbmcgczEgPSB4IHRoZW4gczFcbiAgICAgICAgZWxzZSBQcmludGYuc3ByaW50ZiBcIiUuMTdnXCIgeFxuICAgICAgaW5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHM7XG4gICAgICBpZiBmbG9hdF9uZWVkc19wZXJpb2QgcyB0aGVuXG4gICAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG5sZXQgd3JpdGVfbm9ybWFsX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbGV0IG9wZW4gUHJpbnRmIGluXG4gIGxldCBzID1cbiAgICBtYXRjaCBzaWduaWZpY2FudF9maWd1cmVzIHdpdGhcbiAgICAgICAgMSAtPiBzcHJpbnRmIFwiJS4xZ1wiIHhcbiAgICAgIHwgMiAtPiBzcHJpbnRmIFwiJS4yZ1wiIHhcbiAgICAgIHwgMyAtPiBzcHJpbnRmIFwiJS4zZ1wiIHhcbiAgICAgIHwgNCAtPiBzcHJpbnRmIFwiJS40Z1wiIHhcbiAgICAgIHwgNSAtPiBzcHJpbnRmIFwiJS41Z1wiIHhcbiAgICAgIHwgNiAtPiBzcHJpbnRmIFwiJS42Z1wiIHhcbiAgICAgIHwgNyAtPiBzcHJpbnRmIFwiJS43Z1wiIHhcbiAgICAgIHwgOCAtPiBzcHJpbnRmIFwiJS44Z1wiIHhcbiAgICAgIHwgOSAtPiBzcHJpbnRmIFwiJS45Z1wiIHhcbiAgICAgIHwgMTAgLT4gc3ByaW50ZiBcIiUuMTBnXCIgeFxuICAgICAgfCAxMSAtPiBzcHJpbnRmIFwiJS4xMWdcIiB4XG4gICAgICB8IDEyIC0+IHNwcmludGYgXCIlLjEyZ1wiIHhcbiAgICAgIHwgMTMgLT4gc3ByaW50ZiBcIiUuMTNnXCIgeFxuICAgICAgfCAxNCAtPiBzcHJpbnRmIFwiJS4xNGdcIiB4XG4gICAgICB8IDE1IC0+IHNwcmludGYgXCIlLjE1Z1wiIHhcbiAgICAgIHwgMTYgLT4gc3ByaW50ZiBcIiUuMTZnXCIgeFxuICAgICAgfCBfIC0+IHNwcmludGYgXCIlLjE3Z1wiIHhcbiAgaW5cbiAgQnVmZmVyLmFkZF9zdHJpbmcgb2IgcztcbiAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIFwiLjBcIlxuXG4oKiB1c2VkIGJ5IGF0ZGdlbiAqKVxubGV0IHdyaXRlX2Zsb2F0X3ByZWMgc2lnbmlmaWNhbnRfZmlndXJlcyBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIk5hTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIEJ1ZmZlci5hZGRfc3RyaW5nIG9iIChpZiB4ID4gMC4gdGhlbiBcIkluZmluaXR5XCIgZWxzZSBcIi1JbmZpbml0eVwiKVxuICB8IF8gLT5cbiAgICAgIHdyaXRlX25vcm1hbF9mbG9hdF9wcmVjIHNpZ25pZmljYW50X2ZpZ3VyZXMgb2IgeFxuXG5sZXQganNvbl9zdHJpbmdfb2ZfZmxvYXQgeCA9XG4gIGxldCBvYiA9IEJ1ZmZlci5jcmVhdGUgMjAgaW5cbiAgd3JpdGVfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHdyaXRlX3N0ZF9mbG9hdCBvYiB4ID1cbiAgbWF0Y2ggY2xhc3NpZnlfZmxvYXQgeCB3aXRoXG4gICAgRlBfbmFuIC0+XG4gICAgICBqc29uX2Vycm9yIFwiTmFOIHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICB8IEZQX2luZmluaXRlIC0+XG4gICAgICBqc29uX2Vycm9yXG4gICAgICAgIChpZiB4ID4gMC4gdGhlblxuICAgICAgICAgICBcIkluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIlxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBcIi1JbmZpbml0eSB2YWx1ZSBub3QgYWxsb3dlZCBpbiBzdGFuZGFyZCBKU09OXCIpXG4gIHwgXyAtPlxuICAgICAgbGV0IHMxID0gUHJpbnRmLnNwcmludGYgXCIlLjE2Z1wiIHggaW5cbiAgICAgIGxldCBzID1cbiAgICAgICAgaWYgZmxvYXRfb2Zfc3RyaW5nIHMxID0geCB0aGVuIHMxXG4gICAgICAgIGVsc2UgUHJpbnRmLnNwcmludGYgXCIlLjE3Z1wiIHhcbiAgICAgIGluXG4gICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzO1xuICAgICAgaWYgZmxvYXRfbmVlZHNfcGVyaW9kIHMgdGhlblxuICAgICAgICBCdWZmZXIuYWRkX3N0cmluZyBvYiBcIi4wXCJcblxuKCogdXNlZCBieSBhdGRnZW4gKilcbmxldCB3cml0ZV9zdGRfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHggPVxuICBtYXRjaCBjbGFzc2lmeV9mbG9hdCB4IHdpdGhcbiAgICBGUF9uYW4gLT5cbiAgICAgIGpzb25fZXJyb3IgXCJOYU4gdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gIHwgRlBfaW5maW5pdGUgLT5cbiAgICAgIGpzb25fZXJyb3JcbiAgICAgICAgKGlmIHggPiAwLiB0aGVuXG4gICAgICAgICAgIFwiSW5maW5pdHkgdmFsdWUgbm90IGFsbG93ZWQgaW4gc3RhbmRhcmQgSlNPTlwiXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIFwiLUluZmluaXR5IHZhbHVlIG5vdCBhbGxvd2VkIGluIHN0YW5kYXJkIEpTT05cIilcbiAgfCBfIC0+XG4gICAgICB3cml0ZV9ub3JtYWxfZmxvYXRfcHJlYyBzaWduaWZpY2FudF9maWd1cmVzIG9iIHhcblxubGV0IHN0ZF9qc29uX3N0cmluZ19vZl9mbG9hdCB4ID1cbiAgbGV0IG9iID0gQnVmZmVyLmNyZWF0ZSAyMCBpblxuICB3cml0ZV9zdGRfZmxvYXQgb2IgeDtcbiAgQnVmZmVyLmNvbnRlbnRzIG9iXG5cblxubGV0IHRlc3RfZmxvYXQgKCkgPVxuICBsZXQgbCA9IFsgMC47IDEuOyAtMS4gXSBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4gMi4gKi4geCArLiAxLikgbCBpblxuICBsZXQgbCA9IGwgQCBMaXN0Lm1hcCAoZnVuIHggLT4geCAvLiBzcXJ0IDIuKSBsIGluXG4gIGxldCBsID0gbCBAIExpc3QubWFwIChmdW4geCAtPiB4ICouIHNxcnQgMy4pIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgY29zIGwgaW5cbiAgbGV0IGwgPSBsIEAgTGlzdC5tYXAgKGZ1biB4IC0+IHggKi4gMS4yM2U1MCkgbCBpblxuICBsZXQgbCA9IGwgQCBbIGluZmluaXR5OyBuZWdfaW5maW5pdHkgXSBpblxuICBMaXN0Lml0ZXIgKFxuICAgIGZ1biB4IC0+XG4gICAgICBsZXQgcyA9IFByaW50Zi5zcHJpbnRmIFwiJS4xN2dcIiB4IGluXG4gICAgICBsZXQgeSA9IGZsb2F0X29mX3N0cmluZyBzIGluXG4gICAgICBQcmludGYucHJpbnRmIFwiJWcgJWcgJVMgJUJcXG5cIiB4IHkgcyAoeCA9IHkpXG4gIClcbiAgICBsXG5cbigqXG5sZXQgKCkgPSB0ZXN0X2Zsb2F0ICgpXG4qKVxuXG5sZXQgd3JpdGVfaW50bGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcbmxldCB3cml0ZV9mbG9hdGxpdCA9IEJ1ZmZlci5hZGRfc3RyaW5nXG5sZXQgd3JpdGVfc3RyaW5nbGl0ID0gQnVmZmVyLmFkZF9zdHJpbmdcblxubGV0IHJlYyBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCA9IGZ1bmN0aW9uXG4gICAgW10gLT4gKClcbiAgfCB5IDo6IGwgLT5cbiAgICAgIGZfc2VwIHg7XG4gICAgICBmX2VsdCB4IHk7XG4gICAgICBpdGVyMl9hdXggZl9lbHQgZl9zZXAgeCBsXG5cbmxldCBpdGVyMiBmX2VsdCBmX3NlcCB4ID0gZnVuY3Rpb25cbiAgICBbXSAtPiAoKVxuICB8IHkgOjogbCAtPlxuICAgICAgZl9lbHQgeCB5O1xuICAgICAgaXRlcjJfYXV4IGZfZWx0IGZfc2VwIHggbFxuXG5sZXQgZl9zZXAgb2IgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnXG5cbmxldCByZWMgd3JpdGVfanNvbiBvYiAoeCA6IHQpID1cbiAgbWF0Y2ggeCB3aXRoXG4gICAgICBgTnVsbCAtPiB3cml0ZV9udWxsIG9iICgpXG4gICAgfCBgQm9vbCBiIC0+IHdyaXRlX2Jvb2wgb2IgYlxuICAgIFxuIyAyNjcgXCJ3cml0ZS5tbFwiXG4gICAgfCBgSW50bGl0IHMgLT4gQnVmZmVyLmFkZF9zdHJpbmcgb2Igc1xuICAgIFxuIyAyNzMgXCJ3cml0ZS5tbFwiXG4gICAgfCBgRmxvYXRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI3OSBcIndyaXRlLm1sXCJcbiAgICB8IGBTdHJpbmdsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDI4MSBcIndyaXRlLm1sXCJcbiAgICB8IGBBc3NvYyBsIC0+IHdyaXRlX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfbGlzdCBvYiBsXG4gICAgXG4jIDI4NCBcIndyaXRlLm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+IHdyaXRlX3R1cGxlIG9iIGxcbiAgICBcbiMgMjg3IFwid3JpdGUubWxcIlxuICAgIHwgYFZhcmlhbnQgKHMsIG8pIC0+IHdyaXRlX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMjkwIFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX2Fzc29jIG9iIGwgPVxuICBsZXQgZl9lbHQgb2IgKHMsIHgpID1cbiAgICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJzonO1xuICAgIHdyaXRlX2pzb24gb2IgeFxuICBpblxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ3snO1xuICBpdGVyMiBmX2VsdCBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ30nO1xuXG5hbmQgd3JpdGVfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzA2IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJygnO1xuICBpdGVyMiB3cml0ZV9qc29uIGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnKSdcblxuIyAzMTMgXCJ3cml0ZS5tbFwiXG5hbmQgd3JpdGVfdmFyaWFudCBvYiBzIG8gPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJzwnO1xuICB3cml0ZV9zdHJpbmcgb2IgcztcbiAgKG1hdGNoIG8gd2l0aFxuICAgICAgIE5vbmUgLT4gKClcbiAgICAgfCBTb21lIHggLT5cbiAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnOic7XG4gICAgICAgICB3cml0ZV9qc29uIG9iIHhcbiAgKTtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICc+J1xuXG4jIDMyNSBcIndyaXRlLm1sXCJcbmxldCB3cml0ZV90ID0gd3JpdGVfanNvblxuXG5sZXQgcmVjIHdyaXRlX3N0ZF9qc29uIG9iICh4IDogdCkgPVxuICBtYXRjaCB4IHdpdGhcbiAgICAgIGBOdWxsIC0+IHdyaXRlX251bGwgb2IgKClcbiAgICB8IGBCb29sIGIgLT4gd3JpdGVfYm9vbCBvYiBiXG4gICAgXG4jIDMzNSBcIndyaXRlLm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBCdWZmZXIuYWRkX3N0cmluZyBvYiBzXG4gICAgXG4jIDM0MSBcIndyaXRlLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ3IFwid3JpdGUubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEJ1ZmZlci5hZGRfc3RyaW5nIG9iIHNcbiAgICBcbiMgMzQ5IFwid3JpdGUubWxcIlxuICAgIHwgYEFzc29jIGwgLT4gd3JpdGVfc3RkX2Fzc29jIG9iIGxcbiAgICB8IGBMaXN0IGwgLT4gd3JpdGVfc3RkX2xpc3Qgb2IgbFxuICAgIFxuIyAzNTIgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVHVwbGUgbCAtPiB3cml0ZV9zdGRfdHVwbGUgb2IgbFxuICAgIFxuIyAzNTUgXCJ3cml0ZS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgbykgLT4gd3JpdGVfc3RkX3ZhcmlhbnQgb2IgcyBvXG5cbiMgMzU4IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF9hc3NvYyBvYiBsID1cbiAgbGV0IGZfZWx0IG9iIChzLCB4KSA9XG4gICAgd3JpdGVfc3RyaW5nIG9iIHM7XG4gICAgQnVmZmVyLmFkZF9jaGFyIG9iICc6JztcbiAgICB3cml0ZV9zdGRfanNvbiBvYiB4XG4gIGluXG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAneyc7XG4gIGl0ZXIyIGZfZWx0IGZfc2VwIG9iIGw7XG4gIEJ1ZmZlci5hZGRfY2hhciBvYiAnfSc7XG5cbmFuZCB3cml0ZV9zdGRfbGlzdCBvYiBsID1cbiAgQnVmZmVyLmFkZF9jaGFyIG9iICdbJztcbiAgaXRlcjIgd3JpdGVfc3RkX2pzb24gZl9zZXAgb2IgbDtcbiAgQnVmZmVyLmFkZF9jaGFyIG9iICddJ1xuXG5hbmQgd3JpdGVfc3RkX3R1cGxlIG9iIGwgPVxuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ1snO1xuICBpdGVyMiB3cml0ZV9zdGRfanNvbiBmX3NlcCBvYiBsO1xuICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cbiMgMzc5IFwid3JpdGUubWxcIlxuYW5kIHdyaXRlX3N0ZF92YXJpYW50IG9iIHMgbyA9XG4gIG1hdGNoIG8gd2l0aFxuICAgICAgTm9uZSAtPiB3cml0ZV9zdHJpbmcgb2Igc1xuICAgIHwgU29tZSB4IC0+XG4gICAgICAgIEJ1ZmZlci5hZGRfY2hhciBvYiAnWyc7XG4gICAgICAgIHdyaXRlX3N0cmluZyBvYiBzO1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJywnO1xuICAgICAgICB3cml0ZV9zdGRfanNvbiBvYiB4O1xuICAgICAgICBCdWZmZXIuYWRkX2NoYXIgb2IgJ10nXG5cblxuIyAzOTEgXCJ3cml0ZS5tbFwiXG5sZXQgdG9fYnVmZmVyID8oc3VmID0gXCJcIikgPyhzdGQgPSBmYWxzZSkgb2IgeCA9XG4gIGlmIHN0ZCB0aGVuXG4gICAgd3JpdGVfc3RkX2pzb24gb2IgeFxuICBlbHNlXG4gICAgd3JpdGVfanNvbiBvYiB4O1xuICBCdWZmZXIuYWRkX3N0cmluZyBvYiBzdWZcblxubGV0IHRvX3N0cmluZyA/YnVmID8obGVuID0gMjU2KSA/KHN1ZiA9IFwiXCIpID9zdGQgeCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgbGV0IHMgPSBCdWZmZXIuY29udGVudHMgb2IgaW5cbiAgQnVmZmVyLmNsZWFyIG9iO1xuICBzXG5cbmxldCB0b19jaGFubmVsID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG9jIHggPVxuICBsZXQgb2IgPVxuICAgIG1hdGNoIGJ1ZiB3aXRoXG4gICAgICAgIE5vbmUgLT4gQnVmZmVyLmNyZWF0ZSBsZW5cbiAgICAgIHwgU29tZSBvYiAtPiBCdWZmZXIuY2xlYXIgb2I7IG9iXG4gIGluXG4gIHRvX2J1ZmZlciB+c3VmID9zdGQgb2IgeDtcbiAgQnVmZmVyLm91dHB1dF9idWZmZXIgb2Mgb2I7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fb3V0cHV0ID9idWYgPyhsZW49NDA5NikgPyhzdWYgPSBcIlwiKSA/c3RkIG91dCB4ID1cbiAgbGV0IG9iID1cbiAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICBOb25lIC0+IEJ1ZmZlci5jcmVhdGUgbGVuXG4gICAgICB8IFNvbWUgb2IgLT4gQnVmZmVyLmNsZWFyIG9iOyBvYlxuICBpblxuICB0b19idWZmZXIgfnN1ZiA/c3RkIG9iIHg7XG4gIG91dCNvdXRwdXQgKEJ1ZmZlci5jb250ZW50cyBvYikgMCAoQnVmZmVyLmxlbmd0aCBvYik7XG4gIEJ1ZmZlci5jbGVhciBvYlxuXG5sZXQgdG9fZmlsZSA/bGVuID9zdGQgPyhzdWYgPSBcIlxcblwiKSBmaWxlIHggPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHRvX2NoYW5uZWwgP2xlbiB+c3VmID9zdGQgb2MgeDtcbiAgICBjbG9zZV9vdXQgb2NcbiAgd2l0aCBlIC0+XG4gICAgY2xvc2Vfb3V0X25vZXJyIG9jO1xuICAgIHJhaXNlIGVcblxubGV0IHNlcV90b19idWZmZXIgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9iIHN0ID1cbiAgU2VxLml0ZXIgKHRvX2J1ZmZlciB+c3VmID9zdGQgb2IpIHN0XG5cbmxldCBzZXFfdG9fc3RyaW5nID9idWYgPyhsZW4gPSAyNTYpID8oc3VmID0gXCJcXG5cIikgP3N0ZCBzdCA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+XG4gICAgICAgICAgQnVmZmVyLmNsZWFyIG9iO1xuICAgICAgICAgIG9iXG4gIGluXG4gIHNlcV90b19idWZmZXIgfnN1ZiA/c3RkIG9iIHN0O1xuICBsZXQgcyA9IEJ1ZmZlci5jb250ZW50cyBvYiBpblxuICBCdWZmZXIuY2xlYXIgb2I7XG4gIHNcblxubGV0IHNlcV90b19jaGFubmVsID9idWYgPyhsZW49MjA5NikgPyhzdWYgPSBcIlxcblwiKSA/c3RkIG9jIHNlcSA9XG4gIGxldCBvYiA9XG4gICAgbWF0Y2ggYnVmIHdpdGhcbiAgICAgICAgTm9uZSAtPiBCdWZmZXIuY3JlYXRlIGxlblxuICAgICAgfCBTb21lIG9iIC0+IEJ1ZmZlci5jbGVhciBvYjsgb2JcbiAgaW5cbiAgU2VxLml0ZXIgKGZ1biBqc29uIC0+XG4gICAgdG9fYnVmZmVyIH5zdWYgP3N0ZCBvYiBqc29uO1xuICAgIEJ1ZmZlci5vdXRwdXRfYnVmZmVyIG9jIG9iO1xuICAgIEJ1ZmZlci5jbGVhciBvYjtcbiAgKSBzZXFcblxubGV0IHNlcV90b19maWxlID9sZW4gPyhzdWYgPSBcIlxcblwiKSA/c3RkIGZpbGUgc3QgPVxuICBsZXQgb2MgPSBvcGVuX291dCBmaWxlIGluXG4gIHRyeVxuICAgIHNlcV90b19jaGFubmVsID9sZW4gfnN1ZiA/c3RkIG9jIHN0O1xuICAgIGNsb3NlX291dCBvY1xuICB3aXRoIGUgLT5cbiAgICBjbG9zZV9vdXRfbm9lcnIgb2M7XG4gICAgcmFpc2UgZVxuXG5cbmxldCByZWMgc29ydCA9IGZ1bmN0aW9uXG4gIHwgYEFzc29jIGwgLT5cbiAgICAgIGxldCBsID0gTGlzdC5yZXYgKExpc3QucmV2X21hcCAoZnVuIChrLCB2KSAtPiAoaywgc29ydCB2KSkgbCkgaW5cbiAgICAgIGBBc3NvYyAoTGlzdC5zdGFibGVfc29ydCAoZnVuIChhLCBfKSAoYiwgXykgLT4gU3RyaW5nLmNvbXBhcmUgYSBiKSBsKVxuICB8IGBMaXN0IGwgLT5cbiAgICAgIGBMaXN0IChMaXN0LnJldiAoTGlzdC5yZXZfbWFwIHNvcnQgbCkpXG4gIFxuIyA0ODUgXCJ3cml0ZS5tbFwiXG4gIHwgYFR1cGxlIGwgLT5cbiAgICAgIGBUdXBsZSAoTGlzdC5yZXYgKExpc3QucmV2X21hcCBzb3J0IGwpKVxuICBcbiMgNDg5IFwid3JpdGUubWxcIlxuICB8IGBWYXJpYW50IChrLCBTb21lIHYpIGFzIHggLT5cbiAgICAgIGxldCB2JyA9IHNvcnQgdiBpblxuICAgICAgaWYgdiA9PSB2JyB0aGVuIHhcbiAgICAgIGVsc2VcbiAgICAgICAgYFZhcmlhbnQgKGssIFNvbWUgdicpXG4gIFxuIyA0OTUgXCJ3cml0ZS5tbFwiXG4gIHwgeCAtPiB4XG4jIDkwIFwieW9qc29uLmNwcG8ubWxcIlxubW9kdWxlIFByZXR0eSA9XG5zdHJ1Y3RcbiMgMSBcInByZXR0eS5tbFwiXG4oKlxuICAgUHJldHR5LXByaW50IEpTT04gZGF0YSBpbiBhbiBhdHRlbXB0IHRvIG1heGltaXplIHJlYWRhYmlsaXR5LlxuXG4gICAxLiBXaGF0IGZpdHMgb24gb25lIGxpbmUgc3RheXMgb24gb25lIGxpbmUuXG4gICAyLiBXaGF0IGRvZXNuJ3QgZml0IG9uIG9uZSBsaW5lIGdldHMgcHJpbnRlZCBtb3JlIHZlcnRpY2FsbHkgc28gYXMgdG8gbm90XG4gICAgICBleGNlZWQgYSByZWFzb25hYmxlIHBhZ2Ugd2lkdGgsIGlmIHBvc3NpYmxlLlxuXG4gICBBcnJheXMgY29udGFpbmluZyBvbmx5IHNpbXBsZSBlbGVtZW50cyAoXCJhdG9tc1wiKSBhcmUgcHJldHR5LXByaW50ZWQgd2l0aFxuICAgZW5kLW9mLWxpbmUgd3JhcHBpbmcgbGlrZSBvcmRpbmFyeSB0ZXh0OlxuXG4gICAgIFtcbiAgICAgICAgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsXG4gICAgICAgIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiLCBcImhlbGxvXCIsIFwiaGVsbG9cIiwgXCJoZWxsb1wiXG4gICAgIF1cblxuICAgT3RoZXIgYXJyYXlzIGFyZSBwcmludGVkIGVpdGhlciBob3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBkZXBlbmRpbmdcbiAgIG9uIHdoZXRoZXIgdGhleSBmaXQgb24gYSBzaW5nbGUgbGluZTpcblxuICAgICBbIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSwgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LCB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0gXVxuXG4gICBvclxuXG4gICAgIFtcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH0sXG4gICAgICAgeyBcImhlbGxvXCI6IFwid29ybGRcIiB9LFxuICAgICAgIHsgXCJoZWxsb1wiOiBcIndvcmxkXCIgfSxcbiAgICAgICB7IFwiaGVsbG9cIjogXCJ3b3JsZFwiIH1cbiAgICAgXVxuKilcblxubGV0IHBwX2xpc3Qgc2VwIHBweCBvdXQgbCA9XG4gIGxldCBwcF9zZXAgb3V0ICgpID0gRm9ybWF0LmZwcmludGYgb3V0IFwiJXNAIFwiIHNlcCBpblxuICBGb3JtYXQucHBfcHJpbnRfbGlzdCB+cHBfc2VwIHBweCBvdXQgbFxuXG5sZXQgaXNfYXRvbSAoeDogWz4gdF0pID1cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgYE51bGxcbiAgfCBgQm9vbCBfXG4gIHwgYEludCBfXG4gIHwgYEZsb2F0IF9cbiAgfCBgU3RyaW5nIF9cbiAgfCBgSW50bGl0IF9cbiAgfCBgRmxvYXRsaXQgX1xuICB8IGBTdHJpbmdsaXQgX1xuICB8IGBMaXN0IFtdXG4gIHwgYEFzc29jIFtdXG4gIHwgYFR1cGxlIFtdXG4gIHwgYFZhcmlhbnQgKF8sIE5vbmUpIC0+IHRydWVcbiAgfCBgTGlzdCBfXG4gIHwgYEFzc29jIF9cbiAgfCBgVHVwbGUgX1xuICB8IGBWYXJpYW50IChfLCBTb21lIF8pIC0+IGZhbHNlXG5cbmxldCBpc19hdG9tX2xpc3QgbCA9XG4gIExpc3QuZm9yX2FsbCBpc19hdG9tIGxcblxuKCpcbiAgIGluc2lkZV9ib3g6IGluZGljYXRlcyB0aGF0IHdlJ3JlIGFscmVhZHkgd2l0aGluIGEgYm94IHRoYXQgaW1wb3Nlc1xuICAgYSBjZXJ0YWluIHN0eWxlIGFuZCB3ZSBzaG91bGRuJ3QgY3JlYXRlIGEgbmV3IG9uZS4gVGhpcyBpcyB1c2VkIGZvclxuICAgcHJpbnRpbmcgZmllbGQgdmFsdWVzIGxpa2UgdGhpczpcblxuICAgICBmb286IFtcbiAgICAgICBiYXJcbiAgICAgXVxuXG4gICByYXRoZXIgdGhhbiBzb21ldGhpbmcgZWxzZSBsaWtlXG5cbiAgICAgZm9vOlxuICAgICAgIFtcbiAgICAgICAgIGJhclxuICAgICAgIF1cbiopXG5sZXQgcmVjIGZvcm1hdCB+aW5zaWRlX2JveCBzdGQgKG91dDpGb3JtYXQuZm9ybWF0dGVyKSAoeDp0KSA6IHVuaXQgPVxuICBtYXRjaCB4IHdpdGhcbiAgICB8IGBOdWxsIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwibnVsbFwiXG4gICAgfCBgQm9vbCB4IC0+IEZvcm1hdC5wcF9wcmludF9ib29sIG91dCB4XG4gICAgXG4jIDkyIFwicHJldHR5Lm1sXCJcbiAgICB8IGBJbnRsaXQgcyAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIG91dCBzXG4gICAgXG4jIDk1IFwicHJldHR5Lm1sXCJcbiAgICB8IGBGbG9hdGxpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgOTggXCJwcmV0dHkubWxcIlxuICAgIHwgYFN0cmluZ2xpdCBzIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IHNcbiAgICBcbiMgMTAwIFwicHJldHR5Lm1sXCJcbiAgICB8IGBMaXN0IFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwiW11cIlxuICAgIHwgYExpc3QgbCAtPlxuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+XCI7XG4gICAgICBpZiBpc19hdG9tX2xpc3QgbCB0aGVuXG4gICAgICAgICgqIHVzZSBsaW5lIHdyYXBwaW5nIGxpa2Ugd2Ugd291bGQgZG8gZm9yIGEgcGFyYWdyYXBoIG9mIHRleHQgKilcbiAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiW0A7PDEgMD5AWzxob3Y+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsXG4gICAgICBlbHNlXG4gICAgICAgICgqIHByaW50IHRoZSBlbGVtZW50cyBob3Jpem9udGFsbHkgaWYgdGhleSBmaXQgb24gdGhlIGxpbmUsXG4gICAgICAgICAgIG90aGVyd2lzZSBwcmludCB0aGVtIGluIGEgY29sdW1uICopXG4gICAgICAgIEZvcm1hdC5mcHJpbnRmIG91dCBcIltAOzwxIDA+QFs8aHY+JWFAXUA7PDEgLTI+XVwiXG4gICAgICAgICAgKHBwX2xpc3QgXCIsXCIgKGZvcm1hdCB+aW5zaWRlX2JveDpmYWxzZSBzdGQpKSBsO1xuICAgICAgaWYgbm90IGluc2lkZV9ib3ggdGhlbiBGb3JtYXQuZnByaW50ZiBvdXQgXCJAXVwiO1xuICAgIHwgYEFzc29jIFtdIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgb3V0IFwie31cIlxuICAgIHwgYEFzc29jIGwgLT5cbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQFs8aHYyPlwiO1xuICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwie0A7PDEgMD4lYUA7PDEgLTI+fVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXRfZmllbGQgc3RkKSkgbDtcbiAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICBcbiMgMTE5IFwicHJldHR5Lm1sXCJcbiAgICB8IGBUdXBsZSBsIC0+XG4gICAgICAgIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgZm9ybWF0IH5pbnNpZGVfYm94IHN0ZCBvdXQgKGBMaXN0IGwpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBpZiBsID0gW10gdGhlblxuICAgICAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBvdXQgXCIoKVwiXG4gICAgICAgICAgZWxzZSAoXG4gICAgICAgICAgICBpZiBub3QgaW5zaWRlX2JveCB0aGVuIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGhvdjI+XCI7XG4gICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCIoQCwlYUA7PDAgLTI+KVwiIChwcF9saXN0IFwiLFwiIChmb3JtYXQgfmluc2lkZV9ib3g6ZmFsc2Ugc3RkKSkgbDtcbiAgICAgICAgICAgIGlmIG5vdCBpbnNpZGVfYm94IHRoZW4gRm9ybWF0LmZwcmludGYgb3V0IFwiQF1cIjtcbiAgICAgICAgICApXG4gICAgXG4jIDEzMiBcInByZXR0eS5tbFwiXG4gICAgfCBgVmFyaWFudCAocywgTm9uZSkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTM3IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nbGl0IHMgaW5cbiAgICAgICAgICBcbiMgMTM5IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCByZXByZXNlbnRhdGlvblxuICAgICAgICBlbHNlXG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgb3V0IFwiPCVzPlwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgcylcblxuICAgIHwgYFZhcmlhbnQgKHMsIFNvbWUgeCkgLT5cbiAgICAgICAgaWYgc3RkIHRoZW5cbiAgICAgICAgICBcbiMgMTQ4IFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBsZXQgcmVwcmVzZW50YXRpb24gPSBgU3RyaW5nbGl0IHMgaW5cbiAgICAgICAgICBcbiMgMTUwIFwicHJldHR5Lm1sXCJcbiAgICAgICAgICBmb3JtYXQgfmluc2lkZV9ib3ggc3RkIG91dCAoYExpc3QgWyByZXByZXNlbnRhdGlvbjsgeCBdKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgbGV0IG9wID0ganNvbl9zdHJpbmdfb2Zfc3RyaW5nIHMgaW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBvdXQgXCI8QFs8aHYyPiVzOiAlYUBdPlwiIG9wIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpIHhcblxuIyAxNTYgXCJwcmV0dHkubWxcIlxuYW5kIGZvcm1hdF9maWVsZCBzdGQgb3V0IChuYW1lLCB4KSA9XG4gIEZvcm1hdC5mcHJpbnRmIG91dCBcIkBbPGh2Mj4lczogJWFAXVwiIChqc29uX3N0cmluZ19vZl9zdHJpbmcgbmFtZSkgKGZvcm1hdCB+aW5zaWRlX2JveDp0cnVlIHN0ZCkgeFxuXG5sZXQgcHAgPyhzdGQgPSBmYWxzZSkgb3V0IHggPVxuICBGb3JtYXQuZnByaW50ZiBvdXQgXCJAWzxodjI+JWFAXVwiIChmb3JtYXQgfmluc2lkZV9ib3g6dHJ1ZSBzdGQpICh4IDo+IHQpXG5cbmxldCB0b19zdHJpbmcgP3N0ZCB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiAocHAgP3N0ZCkgeFxuXG5sZXQgdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBsZXQgZm10ID0gRm9ybWF0LmZvcm1hdHRlcl9vZl9vdXRfY2hhbm5lbCBvYyBpblxuICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlYUA/XCIgKHBwID9zdGQpIHhcbiMgOTMgXCJ5b2pzb24uY3Bwby5tbFwiXG5lbmRcbiMgMSBcIm1vbm9tb3JwaGljLm1sXCJcbmxldCByZWMgcHAgZm10ID1cbiAgZnVuY3Rpb25cbiAgfCBgTnVsbCAtPiBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcImBOdWxsXCJcbiAgfCBgQm9vbCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEJvb2wgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlQlwiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDE1IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBJbnRsaXQgeCAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBJbnRsaXQgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIHg7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDI3IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBGbG9hdGxpdCB4IC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYEZsb2F0bGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyAzOSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgU3RyaW5nbGl0IHggLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgU3RyaW5nbGl0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiJVNcIiB4O1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA0NCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgQXNzb2MgeHMgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgQXNzb2MgKEBbPGhvdj5cIjtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJAWzwyPltcIjtcbiAgICBpZ25vcmUgKExpc3QuZm9sZF9sZWZ0XG4gICAgICAoZnVuIHNlcCAoa2V5LCB2YWx1ZSkgLT5cbiAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCI7QCBcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIoQFtcIjtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlU1wiIGtleTtcbiAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAgICAgICBwcCBmbXQgdmFsdWU7XG4gICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCI7XG4gICAgICAgICAgdHJ1ZSkgZmFsc2UgeHMpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgfCBgTGlzdCB4cyAtPlxuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcImBMaXN0IChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgeCAtPlxuICAgICAgICBpZiBzZXAgdGhlblxuICAgICAgICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIjtAIFwiO1xuICAgICAgICAgIHBwIGZtdCB4O1xuICAgICAgICAgIHRydWUpIGZhbHNlIHhzKTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJALF1AXVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG4gIFxuIyA3MSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgfCBgVHVwbGUgdHVwIC0+XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiYFR1cGxlIChAWzxob3Y+XCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQFs8Mj5bXCI7XG4gICAgaWdub3JlIChMaXN0LmZvbGRfbGVmdFxuICAgICAgKGZ1biBzZXAgZSAtPlxuICAgICAgICAgaWYgc2VwIHRoZW5cbiAgICAgICAgICAgRm9ybWF0LmZwcmludGYgZm10IFwiO0AgXCI7XG4gICAgICAgICAgIHBwIGZtdCBlO1xuICAgICAgICAgICB0cnVlKSBmYWxzZSB0dXApO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkAsXUBdXCI7XG4gICAgRm9ybWF0LmZwcmludGYgZm10IFwiQF0pXCJcbiAgXG4jIDg0IFwibW9ub21vcnBoaWMubWxcIlxuICB8IGBWYXJpYW50IChuYW1lLCB2YWx1ZSkgLT5cbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCJgVmFyaWFudCAoQFs8aG92PlwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIihAW1wiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIiVTXCIgbmFtZTtcbiAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIsQCBcIjtcbiAgICAobWF0Y2ggdmFsdWUgd2l0aFxuICAgICAgfCBOb25lIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiTm9uZVwiXG4gICAgICB8IFNvbWUgeCAtPlxuICAgICAgICBGb3JtYXQucHBfcHJpbnRfc3RyaW5nIGZtdCBcIihTb21lIFwiO1xuICAgICAgICBwcCBmbXQgeDtcbiAgICAgICAgRm9ybWF0LnBwX3ByaW50X3N0cmluZyBmbXQgXCIpXCIpO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiO1xuICAgIEZvcm1hdC5mcHJpbnRmIGZtdCBcIkBdKVwiXG5cbiMgOTkgXCJtb25vbW9ycGhpYy5tbFwiXG5sZXQgc2hvdyB4ID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBwcCB4XG5cbmxldCByZWMgZXF1YWwgYSBiID1cbiAgbWF0Y2ggYSwgYiB3aXRoXG4gIHwgYE51bGwsIGBOdWxsIC0+IHRydWVcbiAgfCBgQm9vbCBhLCBgQm9vbCBiIC0+IGEgPSBiXG4gICAgXG4jIDExMCBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBJbnRsaXQgYSwgYEludGxpdCBiIC0+IGEgPSBiXG4gICAgXG4jIDExNiBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IGBGbG9hdGxpdCBhLCBgRmxvYXRsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMjIgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgU3RyaW5nbGl0IGEsIGBTdHJpbmdsaXQgYiAtPiBhID0gYlxuICAgIFxuIyAxMjQgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgQXNzb2MgeHMsIGBBc3NvYyB5cyAtPlxuICAgICAgbGV0IGNvbXBhcmVfa2V5cyA9IGZ1biAoa2V5LCBfKSAoa2V5JywgXykgLT4gU3RyaW5nLmNvbXBhcmUga2V5IGtleScgaW5cbiAgICAgIGxldCB4cyA9IExpc3Quc3RhYmxlX3NvcnQgY29tcGFyZV9rZXlzIHhzIGluXG4gICAgICBsZXQgeXMgPSBMaXN0LnN0YWJsZV9zb3J0IGNvbXBhcmVfa2V5cyB5cyBpblxuICAgICAgKG1hdGNoIExpc3QuZm9yX2FsbDIgKGZ1biAoa2V5LCB2YWx1ZSkgKGtleScsIHZhbHVlJykgLT5cbiAgICAgICAgbWF0Y2gga2V5ID0ga2V5JyB3aXRoXG4gICAgICAgIHwgZmFsc2UgLT4gZmFsc2VcbiAgICAgICAgfCB0cnVlIC0+IGVxdWFsIHZhbHVlIHZhbHVlJykgeHMgeXMgd2l0aFxuICAgICAgfCByZXN1bHQgLT4gcmVzdWx0XG4gICAgICB8IGV4Y2VwdGlvbiBJbnZhbGlkX2FyZ3VtZW50IF8gLT5cbiAgICAgICAgKCogdGhlIGxpc3RzIHdlcmUgb2YgZGlmZmVyZW50IGxlbmd0aHMsIHRodXMgdW5lcXVhbCAqKVxuICAgICAgICBmYWxzZSlcbiAgICBcbiMgMTM3IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYFR1cGxlIHhzLCBgVHVwbGUgeXNcbiAgICBcbiMgMTM5IFwibW9ub21vcnBoaWMubWxcIlxuICAgIHwgYExpc3QgeHMsIGBMaXN0IHlzIC0+XG4gICAgICAobWF0Y2ggTGlzdC5mb3JfYWxsMiBlcXVhbCB4cyB5cyB3aXRoXG4gICAgICB8IHJlc3VsdCAtPiByZXN1bHRcbiAgICAgIHwgZXhjZXB0aW9uIEludmFsaWRfYXJndW1lbnQgXyAtPlxuICAgICAgICAoKiB0aGUgbGlzdHMgd2VyZSBvZiBkaWZmZXJlbnQgbGVuZ3RocywgdGh1cyB1bmVxdWFsICopXG4gICAgICAgIGZhbHNlKVxuICAgIFxuIyAxNDYgXCJtb25vbW9ycGhpYy5tbFwiXG4gICAgfCBgVmFyaWFudCAobmFtZSwgdmFsdWUpLCBgVmFyaWFudCAobmFtZScsIHZhbHVlJykgLT5cbiAgICAgIChtYXRjaCBuYW1lID0gbmFtZScgd2l0aFxuICAgICAgfCBmYWxzZSAtPiBmYWxzZVxuICAgICAgfCB0cnVlIC0+XG4gICAgICAgIG1hdGNoIHZhbHVlLCB2YWx1ZScgd2l0aFxuICAgICAgICB8IE5vbmUsIE5vbmUgLT4gdHJ1ZVxuICAgICAgICB8IFNvbWUgeCwgU29tZSB5IC0+IGVxdWFsIHggeVxuICAgICAgICB8IF8gLT4gZmFsc2UpXG4gICAgXG4jIDE1NSBcIm1vbm9tb3JwaGljLm1sXCJcbiAgICB8IF8gLT4gZmFsc2VcblxuIyAyIFwid3JpdGUyLm1sXCJcbmxldCBwcmV0dHlfcHJpbnQgP3N0ZCBvdXQgeCA9XG4gIFByZXR0eS5wcCA/c3RkIG91dCB4XG5cbmxldCBwcmV0dHlfdG9fc3RyaW5nID9zdGQgeCA9XG4gIFByZXR0eS50b19zdHJpbmcgP3N0ZCB4XG5cbmxldCBwcmV0dHlfdG9fY2hhbm5lbCA/c3RkIG9jIHggPVxuICBQcmV0dHkudG9fY2hhbm5lbCA/c3RkIG9jIHhcblxuIyAxIFwibGliL3JlYWQubWxsXCJcbiBcbiAgXG4jIDIgXCJsaWIvcmVhZC5tbGxcIlxuICBtb2R1bGUgTGV4aW5nID1cbiAgICAoKlxuICAgICAgV2Ugb3ZlcnJpZGUgTGV4aW5nLmVuZ2luZSBpbiBvcmRlciB0byBhdm9pZCBjcmVhdGluZyBhIG5ldyBwb3NpdGlvblxuICAgICAgcmVjb3JkIGVhY2ggdGltZSBhIHJ1bGUgaXMgbWF0Y2hlZC5cbiAgICAgIFRoaXMgcmVkdWNlcyB0b3RhbCBwYXJzaW5nIHRpbWUgYnkgYWJvdXQgMzElLlxuICAgICopXG4gIHN0cnVjdFxuICAgIGluY2x1ZGUgTGV4aW5nXG5cbiAgICBleHRlcm5hbCBjX2VuZ2luZSA6IGxleF90YWJsZXMgLT4gaW50IC0+IGxleGJ1ZiAtPiBpbnQgPSBcImNhbWxfbGV4X2VuZ2luZVwiXG5cbiAgICBsZXQgZW5naW5lIHRibCBzdGF0ZSBidWYgPVxuICAgICAgbGV0IHJlc3VsdCA9IGNfZW5naW5lIHRibCBzdGF0ZSBidWYgaW5cbiAgICAgICgqXG4gICAgICBpZiByZXN1bHQgPj0gMCB0aGVuIGJlZ2luXG4gICAgICAgIGJ1Zi5sZXhfc3RhcnRfcCA8LSBidWYubGV4X2N1cnJfcDtcbiAgICAgICAgYnVmLmxleF9jdXJyX3AgPC0ge2J1Zi5sZXhfY3Vycl9wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIHBvc19jbnVtID0gYnVmLmxleF9hYnNfcG9zICsgYnVmLmxleF9jdXJyX3Bvc307XG4gICAgICBlbmQ7XG4gICAgICAqKVxuICAgICAgcmVzdWx0XG4gIGVuZFxuXG4gIG9wZW4gUHJpbnRmXG4gIG9wZW4gTGV4aW5nXG5cbiAgKCogc2VlIGRlc2NyaXB0aW9uIGluIGNvbW1vbi5tbGkgKilcbiAgdHlwZSBsZXhlcl9zdGF0ZSA9IExleGVyX3N0YXRlLnQgPSB7XG4gICAgYnVmIDogQnVmZmVyLnQ7XG4gICAgbXV0YWJsZSBsbnVtIDogaW50O1xuICAgIG11dGFibGUgYm9sIDogaW50O1xuICAgIG11dGFibGUgZm5hbWUgOiBzdHJpbmcgb3B0aW9uO1xuICB9XG5cbiAgbGV0IGRlYyBjID1cbiAgICBDaGFyLmNvZGUgYyAtIDQ4XG5cbiAgbGV0IGhleCBjID1cbiAgICBtYXRjaCBjIHdpdGhcbiAgICAgICAgJzAnLi4nOScgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICcwJ1xuICAgICAgfCAnYScuLidmJyAtPiBpbnRfb2ZfY2hhciBjIC0gaW50X29mX2NoYXIgJ2EnICsgMTBcbiAgICAgIHwgJ0EnLi4nRicgLT4gaW50X29mX2NoYXIgYyAtIGludF9vZl9jaGFyICdBJyArIDEwXG4gICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlXG5cbiAgbGV0IGN1c3RvbV9lcnJvciBkZXNjciB2IGxleGJ1ZiA9XG4gICAgbGV0IG9mZnMgPSBsZXhidWYubGV4X2Fic19wb3MgLSAxIGluXG4gICAgbGV0IGJvbCA9IHYuYm9sIGluXG4gICAgbGV0IHBvczEgPSBvZmZzICsgbGV4YnVmLmxleF9zdGFydF9wb3MgLSBib2wgLSAxIGluXG4gICAgbGV0IHBvczIgPSBtYXggcG9zMSAob2ZmcyArIGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBib2wpIGluXG4gICAgbGV0IGZpbGVfbGluZSA9XG4gICAgICBtYXRjaCB2LmZuYW1lIHdpdGhcbiAgICAgICAgICBOb25lIC0+IFwiTGluZVwiXG4gICAgICAgIHwgU29tZSBzIC0+XG4gICAgICAgICAgICBzcHJpbnRmIFwiRmlsZSAlcywgbGluZVwiIHNcbiAgICBpblxuICAgIGxldCBieXRlcyA9XG4gICAgICBpZiBwb3MxID0gcG9zMiB0aGVuXG4gICAgICAgIHNwcmludGYgXCJieXRlICVpXCIgKHBvczErMSlcbiAgICAgIGVsc2VcbiAgICAgICAgc3ByaW50ZiBcImJ5dGVzICVpLSVpXCIgKHBvczErMSkgKHBvczIrMSlcbiAgICBpblxuICAgIGxldCBtc2cgPSBzcHJpbnRmIFwiJXMgJWksICVzOlxcbiVzXCIgZmlsZV9saW5lIHYubG51bSBieXRlcyBkZXNjciBpblxuICAgIGpzb25fZXJyb3IgbXNnXG5cblxuICBsZXQgbGV4ZXJfZXJyb3IgZGVzY3IgdiBsZXhidWYgPVxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMnXCIgZGVzY3IgKExleGluZy5sZXhlbWUgbGV4YnVmKSlcbiAgICAgIHYgbGV4YnVmXG5cbiAgbGV0IHJlYWRfanVuayA9IHJlZiAoZnVuIF8gLT4gYXNzZXJ0IGZhbHNlKVxuXG4gIGxldCBsb25nX2Vycm9yIGRlc2NyIHYgbGV4YnVmID1cbiAgICBsZXQganVuayA9IExleGluZy5sZXhlbWUgbGV4YnVmIGluXG4gICAgbGV0IGV4dHJhX2p1bmsgPSAhcmVhZF9qdW5rIGxleGJ1ZiBpblxuICAgIGN1c3RvbV9lcnJvclxuICAgICAgKHNwcmludGYgXCIlcyAnJXMlcydcIiBkZXNjciBqdW5rIGV4dHJhX2p1bmspXG4gICAgICB2IGxleGJ1ZlxuXG4gIGxldCBtaW4xMCA9IG1pbl9pbnQgLyAxMCAtIChpZiBtaW5faW50IG1vZCAxMCA9IDAgdGhlbiAwIGVsc2UgMSlcbiAgbGV0IG1heDEwID0gbWF4X2ludCAvIDEwICsgKGlmIG1heF9pbnQgbW9kIDEwID0gMCB0aGVuIDAgZWxzZSAxKVxuXG4gIGV4Y2VwdGlvbiBJbnRfb3ZlcmZsb3dcblxuICBsZXQgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmID1cbiAgICBsZXQgc3RhcnQgPSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPj0gbWF4MTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuICsgZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPCAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfcG9zaXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgICAgXG4jIDEwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGBJbnRsaXQgKGxleGVtZSBsZXhidWYpXG5cbiAgXG4jIDExMyBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBleHRyYWN0X25lZ2F0aXZlX2ludCBsZXhidWYgPVxuICAgIGxldCBzdGFydCA9IGxleGJ1Zi5sZXhfc3RhcnRfcG9zICsgMSBpblxuICAgIGxldCBzdG9wID0gbGV4YnVmLmxleF9jdXJyX3BvcyBpblxuICAgIGxldCBzID0gbGV4YnVmLmxleF9idWZmZXIgaW5cbiAgICBsZXQgbiA9IHJlZiAwIGluXG4gICAgZm9yIGkgPSBzdGFydCB0byBzdG9wIC0gMSBkb1xuICAgICAgaWYgIW4gPD0gbWluMTAgdGhlblxuICAgICAgICByYWlzZSBJbnRfb3ZlcmZsb3dcbiAgICAgIGVsc2VcbiAgICAgICAgbiA6PSAxMCAqICFuIC0gZGVjIChCeXRlcy5nZXQgcyBpKVxuICAgIGRvbmU7XG4gICAgaWYgIW4gPiAwIHRoZW5cbiAgICAgIHJhaXNlIEludF9vdmVyZmxvd1xuICAgIGVsc2VcbiAgICAgICFuXG5cbiAgbGV0IG1ha2VfbmVnYXRpdmVfaW50IHYgbGV4YnVmID1cbiAgICAgICAgXG4jIDEzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgIGBJbnRsaXQgKGxleGVtZSBsZXhidWYpXG5cblxuICBcbiMgMTQxIFwibGliL3JlYWQubWxsXCJcbiAgbGV0IHNldF9maWxlX25hbWUgdiBmbmFtZSA9XG4gICAgdi5mbmFtZSA8LSBmbmFtZVxuXG4gIGxldCBuZXdsaW5lIHYgbGV4YnVmID1cbiAgICB2LmxudW0gPC0gdi5sbnVtICsgMTtcbiAgICB2LmJvbCA8LSBsZXhidWYubGV4X2Fic19wb3MgKyBsZXhidWYubGV4X2N1cnJfcG9zXG5cbiAgbGV0IGFkZF9sZXhlbWUgYnVmIGxleGJ1ZiA9XG4gICAgbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgIEJ1ZmZlci5hZGRfc3ViYnl0ZXMgYnVmIGxleGJ1Zi5sZXhfYnVmZmVyIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGxlblxuXG4gIGxldCBtYXBfbGV4ZW1lIGYgbGV4YnVmID1cbiAgICBsZXQgbGVuID0gbGV4YnVmLmxleF9jdXJyX3BvcyAtIGxleGJ1Zi5sZXhfc3RhcnRfcG9zIGluXG4gICAgZiAoQnl0ZXMuc3ViX3N0cmluZyBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBsZW4pIDAgbGVuXG5cbiAgdHlwZSB2YXJpYW50X2tpbmQgPSBbIGBFZGd5X2JyYWNrZXQgfCBgU3F1YXJlX2JyYWNrZXQgfCBgRG91YmxlX3F1b3RlIF1cbiAgdHlwZSB0dXBsZV9raW5kID0gWyBgUGFyZW50aGVzaXMgfCBgU3F1YXJlX2JyYWNrZXQgXVxuXG5cbiMgMTYxIFwibGliL3JlYWQubWxcIlxuIyAxNjEgXCJsaWIvcmVhZC5tbFwiXG5sZXQgX19vY2FtbF9sZXhfdGFibGVzID0ge1xuICBMZXhpbmcubGV4X2Jhc2UgPVxuICAgXCJcXDAwMFxcMDAwXFwyMzZcXDI1NVxcMjM3XFwyNTVcXDAwM1xcMDAwXFwyMzlcXDI1NVxcMDE2XFwwMDBcXDI0MlxcMjU1XFwyNDNcXDI1NVxcXG4gICAgXFwyNDRcXDI1NVxcMjQ1XFwyNTVcXDAwMFxcMDAwXFwwMzFcXDAwMFxcMjQ5XFwyNTVcXDA4NVxcMDAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAxXFwwMDBcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwyNTRcXDI1NVxcMDAxXFwwMDBcXDAwNFxcMDAwXFwyNTNcXDI1NVxcMDExXFwwMDBcXDI1MlxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwwMDFcXDAwMFxcMDAzXFwwMDBcXDAwMlxcMDAwXFwwMDNcXDAwMFxcMDAwXFwwMDBcXDI1MVxcMjU1XFwwMjFcXDAwMFxcMDk3XFwwMDBcXFxuICAgIFxcMDEwXFwwMDBcXDAyMlxcMDAwXFwwMjBcXDAwMFxcMDE2XFwwMDBcXDAyMlxcMDAwXFwwMTJcXDAwMFxcMDA4XFwwMDBcXDI1MFxcMjU1XFxcbiAgICBcXDExOVxcMDAwXFwxMjlcXDAwMFxcMTM5XFwwMDBcXDE2MVxcMDAwXFwxNzFcXDAwMFxcMTgxXFwwMDBcXDE5M1xcMDAwXFwyMDlcXDAwMFxcXG4gICAgXFwyNDBcXDI1NVxcMDExXFwwMDBcXDAzOFxcMDAwXFwyNTJcXDI1NVxcMDY1XFwwMDBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTEwXFwwMDBcXFxuICAgIFxcMjUyXFwyNTVcXDE2M1xcMDAwXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIzNFxcMDAwXFwyNDdcXDI1NVxcMjQ4XFwyNTVcXDA0OFxcMDAxXFxcbiAgICBcXDI1MFxcMjU1XFwyNTFcXDI1NVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3MVxcMDAxXFwxMjZcXDAwMVxcXG4gICAgXFwxNDlcXDAwMVxcMjQ5XFwyNTVcXDAzOVxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDAzOFxcMDAwXFwxODdcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjQ4XFwwMDFcXDAxNVxcMDAyXFwyNTVcXDI1NVxcMjIwXFwwMDBcXDI1M1xcMjU1XFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDAzOVxcMDAyXFxcbiAgICBcXDEwOVxcMDAyXFwwMTRcXDAwMVxcMDg4XFwwMDJcXDE2NFxcMDAyXFwxODdcXDAwMlxcMjI1XFwwMDJcXDAxM1xcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDMwXFwwMDBcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE1XFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDAxN1xcMDAxXFxcbiAgICBcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDE5XFwwMDBcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMDE1XFwwMDBcXDI1NVxcMjU1XFwwMTZcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAxXFwwMDVcXDAwMFxcMjUzXFwyNTVcXFxuICAgIFxcMDIzXFwwMDBcXDI1NFxcMjU1XFwwMjBcXDAwMFxcMjU1XFwyNTVcXDA0NlxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDA0MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTNcXDAwMFxcMjU1XFwyNTVcXDA1M1xcMDAwXFwwNDhcXDAwMFxcMDkxXFwwMDBcXDA5MlxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMjdcXDAwMVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwxMzdcXDAwMFxcMTA0XFwwMDBcXDA4OVxcMDAwXFwwODhcXDAwMFxcMTA2XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAwXFwxMzdcXDAwMFxcMTc3XFwwMDBcXDI1NFxcMjU1XFwxODNcXDAwMFxcMTY4XFwwMDBcXDE2NlxcMDAwXFxcbiAgICBcXDE4M1xcMDAwXFwwMDJcXDAwMFxcMjUzXFwyNTVcXDE3N1xcMDAwXFwxNzJcXDAwMFxcMTg3XFwwMDBcXDAwNFxcMDAwXFwyNTJcXDI1NVxcXG4gICAgXFwwNTNcXDAwMlxcMjUxXFwyNTVcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMTAzXFwwMDFcXDI1NVxcMjU1XFwyNDhcXDAwMlxcMjU0XFwyNTVcXFxuICAgIFxcMDA2XFwwMDNcXDAzMFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQwXFwwMDNcXDA1MFxcMDAzXFxcbiAgICBcXDA3NFxcMDAzXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDYxXFwwMDNcXDA4NFxcMDAzXFwxMDhcXDAwM1xcXG4gICAgXFwyNDlcXDI1NVxcMjUwXFwyNTVcXDI1MVxcMjU1XFwyNDRcXDAwMFxcMTIwXFwwMDNcXDE0MlxcMDAzXFwxNzlcXDAwMFxcMTk0XFwwMDBcXFxuICAgIFxcMDE1XFwwMDBcXDI1NVxcMjU1XFwxOTBcXDAwMFxcMTg4XFwwMDBcXDE4N1xcMDAwXFwxOTNcXDAwMFxcMTgzXFwwMDBcXDE3OVxcMDAwXFxcbiAgICBcXDI1NFxcMjU1XFwxOTFcXDAwMFxcMjAxXFwwMDBcXDIwMFxcMDAwXFwxOTZcXDAwMFxcMjAzXFwwMDBcXDE5M1xcMDAwXFwxODlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMTU3XFwwMDNcXDA5NVxcMDAzXFwxNzRcXDAwM1xcMTk2XFwwMDNcXDIwNlxcMDAzXFwyMTZcXDAwM1xcMjI4XFwwMDNcXFxuICAgIFxcMjM5XFwwMDNcXDA2MFxcMDAwXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMTJcXDAwNFxcMjUyXFwyNTVcXDI1M1xcMjU1XFxcbiAgICBcXDA4N1xcMDA0XFwyNTVcXDI1NVxcMTQ1XFwwMDRcXDI1MlxcMjU1XFwyNTNcXDI1NVxcMjIxXFwwMDRcXDI1NVxcMjU1XFwyMjlcXDAwMFxcXG4gICAgXFwyNTNcXDI1NVxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMzFcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDAxOFxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDM0XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwMzhcXDAwMVxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTIwXFwwMDFcXDI1MVxcMjU1XFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwyMDhcXDAwMFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjExXFwwMDBcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg5XFwwMDBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjUyXFwyNTVcXDI1M1xcMjU1XFwyNTRcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDFcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA5NVxcMDAxXFwyNTJcXDI1NVxcMjUzXFwyNTVcXFxuICAgIFxcMjU0XFwyNTVcXDI1NVxcMjU1XFwwNTBcXDAwMVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDI2XFwwMDFcXDI1M1xcMjU1XFxcbiAgICBcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMjMzXFwwMDBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDIyMlxcMDAwXFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDA1XFwyMzdcXDI1NVxcMjM4XFwyNTVcXDAxMFxcMDAwXFwyNDBcXDI1NVxcMDQ0XFwwMDFcXFxuICAgIFxcMjQzXFwyNTVcXDI0NFxcMjU1XFwyNDVcXDI1NVxcMjQ2XFwyNTVcXDA2MVxcMDAxXFwwMDJcXDAwNFxcMjQ5XFwyNTVcXDA0NVxcMDA1XFxcbiAgICBcXDIwOVxcMDAwXFwyMjhcXDAwMFxcMjExXFwwMDBcXDIzMlxcMDAwXFwyMjVcXDAwMFxcMjIzXFwwMDBcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyMzVcXDAwMFxcMjM0XFwwMDBcXDAwOFxcMDAxXFwyNTRcXDI1NVxcMDA0XFwwMDFcXDAyM1xcMDAxXFwyNTNcXDI1NVxcMDU0XFwwMDFcXFxuICAgIFxcMjUyXFwyNTVcXDAzMVxcMDAxXFwwMjlcXDAwMVxcMDMyXFwwMDFcXDAzOVxcMDAxXFwwNDlcXDAwMVxcMDQ1XFwwMDFcXDI1MVxcMjU1XFxcbiAgICBcXDA1N1xcMDAxXFwwODJcXDAwMVxcMDgwXFwwMDFcXDA3OFxcMDAxXFwwODRcXDAwMVxcMDc0XFwwMDFcXDA4NlxcMDAxXFwyNTBcXDI1NVxcXG4gICAgXFwxMTBcXDAwNVxcMDEyXFwwMDRcXDEyM1xcMDA1XFwxNTVcXDAwNVxcMTY1XFwwMDVcXDE3N1xcMDA1XFwxODdcXDAwNVxcMTk3XFwwMDVcXFxuICAgIFxcMjQxXFwyNTVcXDE5OVxcMDAxXFwwNzdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwxNTRcXDAwMlxcMjIyXFwwMDVcXDIwOVxcMDA1XFxcbiAgICBcXDE1NVxcMDAyXFwyMzlcXDAwNVxcMDUzXFwwMDZcXDA3NlxcMDA2XFwxMTRcXDAwNlxcMDE2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1MlxcMDA2XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIyN1xcMDA2XFwyNTVcXDI1NVxcMDg1XFwwMDdcXFxuICAgIFxcMjQ0XFwyNTVcXDI0NVxcMjU1XFwwMTFcXDAwMFxcMjQ3XFwyNTVcXDA3NlxcMDAyXFwyNTBcXDI1NVxcMjUxXFwyNTVcXDI1MlxcMjU1XFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMDMxXFwwMDJcXDI0M1xcMDA1XFwwNTFcXDAwN1xcMTAwXFwwMDFcXDExNVxcMDAxXFwxMDRcXDAwMVxcXG4gICAgXFwxMzNcXDAwMVxcMTE4XFwwMDFcXDE1NFxcMDAxXFwxNzFcXDAwMVxcMjU1XFwyNTVcXDE3M1xcMDAxXFwxNzZcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4N1xcMDAxXFwyNTNcXDAwMVxcMjMwXFwwMDFcXDIzMFxcMDAxXFwyMzRcXDAwMVxcMjQ3XFwwMDFcXDIzN1xcMDAxXFxcbiAgICBcXDIzNFxcMDAxXFwwMDlcXDAwMlxcMDE5XFwwMDJcXDAxOVxcMDAyXFwwMTVcXDAwMlxcMDIxXFwwMDJcXDAxMVxcMDAyXFwwMDdcXDAwMlxcXG4gICAgXFwxNDJcXDAwNlxcMTUyXFwwMDZcXDExNlxcMDA3XFwxNzBcXDAwN1xcMTgwXFwwMDdcXDE5MFxcMDA3XFwyMDBcXDAwN1xcMjEwXFwwMDdcXFxuICAgIFxcMjQ4XFwyNTVcXDEyMFxcMDAyXFwxNjdcXDAwMlxcMjUzXFwyNTVcXDI1NVxcMjU1XFwyMTZcXDAwMlxcMDgyXFwwMDdcXDIyMFxcMDA3XFxcbiAgICBcXDIzNlxcMDAyXFwyNDRcXDAwN1xcMDU4XFwwMDhcXDA4MVxcMDA4XFwxMTlcXDAwOFxcMDc2XFwwMDJcXDI1MlxcMjU1XFwyNTNcXDI1NVxcXG4gICAgXFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE1N1xcMDA4XFwyNTJcXDI1NVxcMjUzXFwyNTVcXDIzMlxcMDA4XFwyNTVcXDI1NVxcMTM1XFwwMDJcXFxuICAgIFxcMTIwXFwwMDJcXDI1M1xcMjU1XFwxMDBcXDAwMlxcMjU0XFwyNTVcXDE4MlxcMDAyXFwyNTVcXDI1NVxcMDExXFwwMDJcXDI1NVxcMjU1XFxcbiAgICBcXDIwNFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDQ2XFwwMDJcXDI1NVxcMjU1XFwxNzhcXDAwMlxcXG4gICAgXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMDIzXFwwMDBcXDI1NVxcMjU1XFwxODNcXDAwMlxcMjUyXFwyNTVcXFxuICAgIFxcMjUzXFwyNTVcXDI1NFxcMjU1XFwyNTVcXDI1NVxcMTg3XFwwMDJcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDEyMVxcMDAyXFxcbiAgICBcXDI1M1xcMjU1XFwyNTRcXDI1NVxcMjU1XFwyNTVcXDE4NFxcMDAyXFwyNTJcXDI1NVxcMjUzXFwyNTVcXDI1NFxcMjU1XFwwMTlcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMTQwXFwwMDFcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMTUwXFwwMDFcXDE1MVxcMDAxXFwxNTRcXDAwMVxcMTY4XFwwMDFcXFxuICAgIFxcMTcwXFwwMDFcXDE3MVxcMDAxXFwxNzJcXDAwMVxcMTczXFwwMDFcXDE4MVxcMDAxXFwxODRcXDAwMVxcMTg1XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE5MVxcMDAxXFwxOTNcXDAwMVxcMTk1XFwwMDFcXDE5NlxcMDAxXFwxOTdcXDAwMVxcMjAwXFwwMDFcXDIwM1xcMDAxXFwyMjNcXDAwMVxcXG4gICAgXFwyMjVcXDAwMVxcMjI4XFwwMDFcXDI0OVxcMDAxXFwyNTFcXDAwMVxcMDAyXFwwMDJcXDAwNFxcMDAyXFwwMTFcXDAwMlxcMDEyXFwwMDJcXFxuICAgIFxcMDEzXFwwMDJcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfYmFja3RyayA9XG4gICBcIlxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE3XFwwMDBcXDI1NVxcMjU1XFwwMTlcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE5XFwwMDBcXDAxOVxcMDAwXFwwMTlcXDAwMFxcXG4gICAgXFwwMTlcXDAwMFxcMDE5XFwwMDBcXDAxOVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOFxcMDAwXFwwMDhcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDlcXDAwMFxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDA5XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMTRcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMVxcMDAwXFwyNTVcXDI1NVxcMDA0XFwwMDBcXDAwM1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwNFxcMDAwXFwwMDRcXDAwMFxcMDA0XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDNcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAyXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMDA1XFwwMDBcXDAwNVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDI1NVxcMjU1XFwwMDNcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDAwMlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDE2XFwwMDBcXDI1NVxcMjU1XFwwMThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA3XFwwMDBcXDAwN1xcMDAwXFwyNTVcXDI1NVxcMDE4XFwwMDBcXFxuICAgIFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwwMThcXDAwMFxcMDE4XFwwMDBcXDAxOFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDA4XFwwMDBcXDI1NVxcMjU1XFwwMDhcXDAwMFxcMjU1XFwyNTVcXDAwOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDEzXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwOVxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDA2XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMVxcMDAwXFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAxXFwwMDBcXDI1NVxcMjU1XFwwMDRcXDAwMFxcXG4gICAgXFwwMDNcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDFcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwM1xcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0ID1cbiAgIFwiXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDA1N1xcMDAwXFwwNjBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwNjVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwODRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDA5NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA5N1xcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDk3XFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMDRcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTA5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExM1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDExN1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjFcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyNlxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMTM4XFwwMDBcXDAwMFxcMDAwXFwxNDJcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTU0XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMTc4XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwxODdcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOTRcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyMzVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjM5XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI0NFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQ5XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjUzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDE3XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAyMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAzMlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMDM4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA0M1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNDdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA1NlxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA2MFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjRcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDAwXFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxMjFcXDAwMVxcMTI1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMjhcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzNVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDE0NFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDAwMFxcMDAwXFwxOTNcXDAwMVxcMTk3XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwN1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwyMjBcXDAwMVxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcXG4gICAgXFwyMjZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjMzXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI1NVxcMjU1XFwwMDBcXDAwMFxcMjQwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAwMlxcMDAyXFwwMDRcXDAwMlxcMDAwXFwwMDBcXDAwNVxcMDAyXFwwMDZcXDAwMlxcMDA3XFwwMDJcXDAwOFxcMDAyXFxcbiAgICBcXDAwOVxcMDAyXFwwMTBcXDAwMlxcMDExXFwwMDJcXDAxMlxcMDAyXFwwMTNcXDAwMlxcMDE0XFwwMDJcXDAxNVxcMDAyXFwwMTZcXDAwMlxcXG4gICAgXFwwMTdcXDAwMlxcMDE4XFwwMDJcXDAxOVxcMDAyXFwwMjBcXDAwMlxcMDIxXFwwMDJcXDAyMlxcMDAyXFwwMjNcXDAwMlxcMDI0XFwwMDJcXFxuICAgIFxcMDI1XFwwMDJcXDAyNlxcMDAyXFwwMjdcXDAwMlxcMDI4XFwwMDJcXDAyOVxcMDAyXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFxcbiAgICBcXDAzM1xcMDAyXFwwMDNcXDAwMlwiO1xuICBMZXhpbmcubGV4X3RyYW5zID1cbiAgIFwiXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDRcXDAwMFxcMDAwXFwwMDBcXDAwM1xcMDAwXFwwMDNcXDAwMFxcMTM0XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwM1xcMDAwXFwwMDBcXDAwMFxcMTM0XFwwMDBcXDA2OVxcMDAxXFwxNDZcXDAwMVxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEyN1xcMDAwXFwxMzlcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAzXFwwMDBcXDAwMFxcMDAwXFwwMTJcXDAwMFxcMDAzXFwwMDBcXDE3MFxcMDAwXFwxMzRcXDAwMFxcMTc1XFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwN1xcMDAwXFwwMTFcXDAwMVxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwMTRcXDAwMVxcMDEzXFwwMDBcXDA0OVxcMDAwXFwwMDVcXDAwMFxcXG4gICAgXFwwMTBcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwNTZcXDAwMFxcMTE4XFwwMDBcXDAwNlxcMDAwXFwxMjlcXDAwMFxcMTMwXFwwMDBcXDA1N1xcMDAwXFxcbiAgICBcXDIzN1xcMDAxXFwxMzdcXDAwMFxcMDAwXFwwMDJcXDA0OVxcMDAwXFwwMDBcXDAwMFxcMDQ4XFwwMDBcXDEzOFxcMDAwXFwxMDZcXDAwMFxcXG4gICAgXFwwNjJcXDAwMFxcMDE0XFwwMDBcXDExMFxcMDAwXFwxMDVcXDAwMFxcMDAwXFwwMDBcXDA0OVxcMDAwXFwwMTVcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFxcbiAgICBcXDAxMVxcMDAwXFwwMzBcXDAwMFxcMDQ4XFwwMDBcXDAwOFxcMDAwXFwxMTRcXDAwMFxcMjA5XFwwMDBcXDIzNlxcMDAwXFwwMDBcXDAwMVxcXG4gICAgXFwwMTNcXDAwMVxcMDI5XFwwMDBcXDAyMlxcMDAwXFwyNTVcXDI1NVxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwMTdcXDAwMFxcMDIxXFwwMDBcXFxuICAgIFxcMDI1XFwwMDBcXDAzMlxcMDAwXFwwMzNcXDAwMFxcMDM1XFwwMDBcXDAyM1xcMDAwXFwwMjdcXDAwMFxcMDE2XFwwMDBcXDAzMVxcMDAwXFxcbiAgICBcXDAyOFxcMDAwXFwwMzRcXDAwMFxcMDE5XFwwMDBcXDAyNFxcMDAwXFwwMThcXDAwMFxcMDI2XFwwMDBcXDAyMFxcMDAwXFwwMzZcXDAwMFxcXG4gICAgXFwwNDFcXDAwMFxcMDM3XFwwMDBcXDA0OFxcMDAwXFwwMDlcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcMDQ1XFwwMDBcXFxuICAgIFxcMDQ2XFwwMDBcXDA0N1xcMDAwXFwwNjFcXDAwMFxcMDg1XFwwMDBcXDA0OFxcMDAwXFwwMzhcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwNDlcXDAwMFxcXG4gICAgXFwwNjdcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXFxuICAgIFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDg2XFwwMDBcXDE0M1xcMDAwXFwyNTVcXDI1NVxcMDQwXFwwMDBcXDE0NFxcMDAwXFxcbiAgICBcXDE0NVxcMDAwXFwxNDZcXDAwMFxcMDU1XFwwMDBcXDE0OFxcMDAwXFwwNTVcXDAwMFxcMTQ5XFwwMDBcXDA0OFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcXG4gICAgXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDI1NVxcMjU1XFwwNDhcXDAwMFxcMTUwXFwwMDBcXFxuICAgIFxcMTUxXFwwMDBcXDE2MVxcMDAwXFwwNjZcXDAwMFxcMTU4XFwwMDBcXDA1M1xcMDAwXFwxNTlcXDAwMFxcMDUzXFwwMDBcXDE2MFxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXFxuICAgIFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFxcbiAgICBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwxNjVcXDAwMFxcXG4gICAgXFwwNTFcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXFxuICAgIFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMTYyXFwwMDBcXDE2M1xcMDAwXFwxNjZcXDAwMFxcMDkzXFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwMlxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwyNTVcXDI1NVxcMDc3XFwwMDBcXDEwM1xcMDAwXFwxMDhcXDAwMFxcMTE2XFwwMDBcXFxuICAgIFxcMTMyXFwwMDBcXDEzNFxcMDAwXFwxMzVcXDAwMFxcMTI4XFwwMDBcXDEzOVxcMDAwXFwxMzRcXDAwMFxcMTY0XFwwMDBcXDA5M1xcMDAwXFxcbiAgICBcXDE3MVxcMDAwXFwwNzdcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNjlcXDAwMFxcMTcyXFwwMDBcXDExMlxcMDAwXFwxNzNcXDAwMFxcXG4gICAgXFwxNzRcXDAwMFxcMjEwXFwwMDBcXDIyNlxcMDAwXFwyMDhcXDAwMFxcMjExXFwwMDBcXDIxMlxcMDAwXFwwNTlcXDAwMFxcMDgzXFwwMDBcXFxuICAgIFxcMTM0XFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxNlxcMDAwXFwyMThcXDAwMFxcMTQxXFwwMDBcXDIxOVxcMDAwXFxcbiAgICBcXDA5M1xcMDAwXFwyMjBcXDAwMFxcMjIxXFwwMDBcXDEyM1xcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDIyNFxcMDAwXFwxMzZcXDAwMFxcXG4gICAgXFwwOTVcXDAwMFxcMjI1XFwwMDBcXDAzNVxcMDAxXFwwNjVcXDAwMVxcMjM0XFwwMDBcXDE1NVxcMDAwXFwwMDVcXDAwMVxcMDk3XFwwMDFcXFxuICAgIFxcMjUwXFwwMDBcXDI1NVxcMjU1XFwyNTRcXDAwMFxcMDU3XFwwMDFcXDA2MVxcMDAxXFwwOTVcXDAwMVxcMDc3XFwwMDBcXDA0NFxcMDAxXFxcbiAgICBcXDA5MlxcMDAxXFwwODhcXDAwMVxcMDA5XFwwMDFcXDAyOVxcMDAxXFwwNzZcXDAwMFxcMTI0XFwwMDBcXDAzM1xcMDAxXFwwMThcXDAwMVxcXG4gICAgXFwwNzVcXDAwMFxcMDk4XFwwMDBcXDAxOVxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA4N1xcMDAxXFwxMjBcXDAwMVxcMDg5XFwwMDFcXFxuICAgIFxcMDc0XFwwMDBcXDIyNVxcMDAwXFwwNTNcXDAwMVxcMTIxXFwwMDFcXDA3M1xcMDAwXFwwOTBcXDAwMVxcMDcyXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA5OFxcMDAwXFwxMTNcXDAwMVxcMTIyXFwwMDBcXDA5MVxcMDAxXFwwNjRcXDAwMFxcMDA0XFwwMDFcXFxuICAgIFxcMDkzXFwwMDFcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwwNzlcXDAwMFxcMTU2XFwwMDBcXDExMlxcMDAxXFwwOTRcXDAwMVxcMDk2XFwwMDFcXDA5OFxcMDAxXFwwOTlcXDAwMVxcMDQ5XFwwMDFcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMTAwXFwwMDFcXDE1N1xcMDAwXFxcbiAgICBcXDEwMVxcMDAxXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwxODNcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDAyNFxcMDAxXFwxMTJcXDAwMVxcMjU1XFwyNTVcXDAyNVxcMDAxXFwxMDJcXDAwMVxcMTAzXFwwMDFcXDEwNVxcMDAxXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMTA2XFwwMDFcXDEwN1xcMDAxXFwwNDhcXDAwMVxcMDQwXFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMTEwXFwwMDFcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMTExXFwwMDFcXFxuICAgIFxcMDI3XFwwMDFcXDI1NVxcMjU1XFwxNzFcXDAwMVxcMDMxXFwwMDFcXDE3MFxcMDAxXFwwMjNcXDAwMVxcMDgxXFwwMDBcXDA4MVxcMDAwXFxcbiAgICBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwOTJcXDAwMFxcMTY4XFwwMDFcXDA2M1xcMDAxXFwwODBcXDAwMFxcXG4gICAgXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDI0OFxcMDAwXFwxNjVcXDAwMVxcMjUyXFwwMDBcXFxuICAgIFxcMTYyXFwwMDFcXDA1OVxcMDAxXFwwNjlcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMjU1XFwyNTVcXDA4MVxcMDAwXFwwODFcXDAwMFxcXG4gICAgXFwwODFcXDAwMFxcMDgxXFwwMDBcXDA4MVxcMDAwXFwwODFcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwMzlcXDAwMVxcMDQyXFwwMDFcXDI1NVxcMjU1XFwxNjNcXDAwMVxcXG4gICAgXFwxNjRcXDAwMVxcMTIwXFwwMDBcXDAwMlxcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXFxuICAgIFxcMDg4XFwwMDBcXDE2NlxcMDAxXFwwNTVcXDAwMVxcMTUzXFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFxcbiAgICBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDA3XFwwMDFcXDE2N1xcMDAxXFwxNjRcXDAwMVxcMTY5XFwwMDFcXDAxNlxcMDAxXFwxNjRcXDAwMVxcXG4gICAgXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwNTFcXDAwMVxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFxcbiAgICBcXDA4OFxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwOTBcXDAwMFxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXFxuICAgIFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxMzdcXDAwMVxcMTY0XFwwMDFcXDE3MlxcMDAxXFwxODVcXDAwMVxcMTM2XFwwMDFcXDE3M1xcMDAxXFxcbiAgICBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5N1xcMDAwXFwxNzlcXDAwMFxcXG4gICAgXFwxNzRcXDAwMVxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDQ2XFwwMDFcXFxuICAgIFxcMTc1XFwwMDFcXDE3NlxcMDAxXFwxODBcXDAwMFxcMTY0XFwwMDFcXDE4NFxcMDAxXFwxODFcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxMjRcXDAwMVxcXG4gICAgXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwwOTBcXDAwMFxcMDkwXFwwMDBcXDA5MFxcMDAwXFwxOTJcXDAwMVxcMTc4XFwwMDFcXFxuICAgIFxcMDIxXFwwMDFcXDE3OVxcMDAxXFwwOTdcXDAwMFxcMTkzXFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXDE4M1xcMDAxXFxcbiAgICBcXDE2NFxcMDAxXFwyMTZcXDAwMVxcMjU1XFwyNTVcXDA5N1xcMDAwXFwxODRcXDAwMVxcMjE2XFwwMDFcXDIwOVxcMDAxXFwwOTdcXDAwMFxcXG4gICAgXFwyMjNcXDAwMVxcMDk3XFwwMDBcXDIwOFxcMDAxXFwyMzBcXDAwMVxcMDAzXFwwMDJcXDA5N1xcMDAwXFwyMTlcXDAwMVxcMDM3XFwwMDFcXFxuICAgIFxcMjE2XFwwMDFcXDIxN1xcMDAxXFwwMDNcXDAwMlxcMjIwXFwwMDFcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFxcbiAgICBcXDIxNlxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwOTZcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMjE2XFwwMDFcXFxuICAgIFxcMDAzXFwwMDJcXDEyNlxcMDAxXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTdcXDAwMFxcMDAzXFwwMDJcXDIxOFxcMDAxXFwyNTBcXDAwMVxcXG4gICAgXFwwMDNcXDAwMlxcMDAzXFwwMDJcXDA5N1xcMDAwXFwwMDNcXDAwMlxcMTI0XFwwMDFcXDEyNFxcMDAxXFwwOTdcXDAwMFxcMDAzXFwwMDJcXFxuICAgIFxcMjIxXFwwMDFcXDAwM1xcMDAyXFwyNTNcXDAwMVxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMDk3XFwwMDBcXDI1NVxcMjU1XFxcbiAgICBcXDAwM1xcMDAyXFwxOTZcXDAwMVxcMDk3XFwwMDBcXDAwM1xcMDAyXFwwOTdcXDAwMFxcMDk2XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMjM1XFwwMDFcXDAwM1xcMDAyXFxcbiAgICBcXDI0MVxcMDAxXFwwMDNcXDAwMlxcMjU1XFwwMDFcXDI0MlxcMDAxXFwwMDNcXDAwMlxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwyNDZcXDAwMVxcMTI5XFwwMDFcXDEyOVxcMDAxXFxcbiAgICBcXDIyOFxcMDAxXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDAwM1xcMDAyXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcXG4gICAgXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDAwM1xcMDAyXFwxOThcXDAwMVxcMDAzXFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXFxuICAgIFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDAzXFwwMDJcXDAwM1xcMDAyXFwwMDNcXDAwMlxcMTk2XFwwMDFcXDIzNFxcMDAxXFxcbiAgICBcXDEzNFxcMDAxXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwMDBcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcXG4gICAgXFwxODJcXDAwMFxcMTgyXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAxXFwwMDFcXDE3N1xcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFxcbiAgICBcXDE4OFxcMDAwXFwwMDBcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcMDk3XFwwMDBcXDA5N1xcMDAwXFwwOTdcXDAwMFxcXG4gICAgXFwyMDFcXDAwMVxcMjI3XFwwMDFcXDAwMFxcMDAwXFwxOTFcXDAwMFxcMjA2XFwwMDFcXDEyM1xcMDAxXFwxODlcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcXG4gICAgXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE4OVxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5NVxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOThcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMjQ4XFwwMDFcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5NlxcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFxcbiAgICBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDIwMlxcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIwNVxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIyNlxcMDAwXFwxOTVcXDAwMVxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDZcXDAwMFxcMjIxXFwwMDFcXDIzOVxcMDAxXFxcbiAgICBcXDI1NFxcMDAxXFwwMDBcXDAwMFxcMjA3XFwwMDBcXDI0NFxcMDAxXFwwMDBcXDAwMFxcMjI1XFwwMDBcXDIwM1xcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXFxuICAgIFxcMjMyXFwwMDBcXDAwMFxcMDAwXFwyMzJcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAxXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMTdcXDAwMFxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIyNVxcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjMwXFwwMDBcXDAwMFxcMDAwXFwyMjhcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcXG4gICAgXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwwMDBcXDAwMFxcMjI4XFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFxcbiAgICBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDE4NlxcMDAwXFwyMzFcXDAwMFxcXG4gICAgXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQxXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDExM1xcMDAxXFwwMDBcXDAwMFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDAwXFwwMDBcXDExMlxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTkzXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwxMTJcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMjAwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDAwMFxcMDAwXFwyNDZcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyMzhcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNDVcXDAwMFxcMDAwXFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwwNjlcXDAwMVxcMDcwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY5XFwwMDFcXDA3NlxcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXFxuICAgIFxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNjlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDc4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMDRcXDAwMVxcMDczXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA3OVxcMDAxXFwwMDBcXDAwMFxcMDcxXFwwMDFcXDA3NlxcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcXG4gICAgXFwwNzdcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDI0M1xcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDA4MFxcMDAxXFwxMTlcXDAwMVxcMDAwXFwwMDBcXDExOVxcMDAxXFwwMDBcXDAwMFxcMDgxXFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwNzRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFxcbiAgICBcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMDgzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDA4MlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTE1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDg0XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTE3XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExN1xcMDAxXFwwMDBcXDAwMFxcMDc1XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXFxuICAgIFxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDExNVxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXFxuICAgIFxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFxcbiAgICBcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDE4NVxcMDAxXFwwMDBcXDAwMFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFxcbiAgICBcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXFxuICAgIFxcMTg0XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDEyOFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDY4XFwwMDFcXFxuICAgIFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDE4NFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDAwMFxcMDAwXFwxMjhcXDAwMVxcMTI3XFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcXG4gICAgXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxMzFcXDAwMVxcMTMxXFwwMDFcXFxuICAgIFxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMDAwXFwwMDBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFxcbiAgICBcXDEyOFxcMDAxXFwxOTFcXDAwMVxcMTQyXFwwMDFcXDE5MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMDAwXFwwMDBcXDEyOFxcMDAxXFwxMjhcXDAwMVxcMTI4XFwwMDFcXDEyOFxcMDAxXFwxMjhcXDAwMVxcXG4gICAgXFwxMjhcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNDFcXDAwMVxcMDAwXFwwMDBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQ2XFwwMDFcXDE0N1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ2XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxNDZcXDAwMVxcMDAwXFwwMDBcXDE1M1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNzdcXDAwMVxcMTUwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDE1NlxcMDAxXFwwMDBcXDAwMFxcMTQ4XFwwMDFcXDE1NFxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwxNDlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwxMzlcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxNTdcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTU4XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFxcbiAgICBcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwxNTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDE4N1xcMDAxXFwwMDBcXDAwMFxcMTYwXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDE1OVxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMTYxXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMTUyXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwxODlcXDAwMVxcMDAwXFwwMDBcXDE4OVxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwxODdcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXFxuICAgIFxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFxcbiAgICBcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXFxuICAgIFxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDBcXDAwMVxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcXG4gICAgXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMTQ1XFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDBcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXDAwMFxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwxOTlcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcXG4gICAgXFwyMDNcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMjAwXFwwMDFcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFxcbiAgICBcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcXG4gICAgXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwwMDBcXDAwMFxcMjE0XFwwMDFcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjAwXFwwMDFcXDIwMFxcMDAxXFwyMDBcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMDAwXFwwMDBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTNcXDAwMVxcXG4gICAgXFwwMDBcXDAwMFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyMTFcXDAwMVxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXCI7XG4gIExleGluZy5sZXhfY2hlY2sgPVxuICAgXCJcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMDAwXFwwMDBcXDAwMFxcMDAwXFwyNTVcXDI1NVxcMDAzXFwwMDBcXDAwMFxcMDAwXFwxMzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAzXFwwMDBcXDI1NVxcMjU1XFwxMzRcXDAwMFxcMDY5XFwwMDFcXDE0NlxcMDAxXFwwNTdcXDAwMFxcMjU1XFwyNTVcXDA2OVxcMDAxXFxcbiAgICBcXDE0NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI1XFwwMDBcXDEzOFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwwMDBcXDAwMFxcMjU1XFwyNTVcXDAwMFxcMDAwXFwwMDNcXDAwMFxcMTY5XFwwMDBcXDEzNFxcMDAwXFwxNzRcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDAwXFwwMDBcXDAxMFxcMDAxXFwwNjlcXDAwMVxcMTQ2XFwwMDFcXDAxMlxcMDAxXFwwMDBcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFxcbiAgICBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwMFxcXG4gICAgXFwwMDBcXDAwMFxcMDAwXFwwMDBcXDAwNVxcMDAwXFwxMTVcXDAwMFxcMDAwXFwwMDBcXDEyNVxcMDAwXFwxMjlcXDAwMFxcMDA1XFwwMDBcXFxuICAgIFxcMjM2XFwwMDFcXDEzNlxcMDAwXFwyNTVcXDAwMVxcMDM4XFwwMDBcXDI1NVxcMjU1XFwwMTBcXDAwMFxcMTM2XFwwMDBcXDEwMlxcMDAwXFxcbiAgICBcXDA1OFxcMDAwXFwwMDBcXDAwMFxcMTA3XFwwMDBcXDEwMlxcMDAwXFwyNTVcXDI1NVxcMDExXFwwMDBcXDAwMFxcMDAwXFwwMTFcXDAwMFxcXG4gICAgXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXDAxMVxcMDAwXFwwMTFcXDAwMFxcMDExXFwwMDBcXFxuICAgIFxcMDExXFwwMDBcXDAyOVxcMDAwXFwwMzhcXDAwMFxcMDAwXFwwMDBcXDExMVxcMDAwXFwyMDhcXDAwMFxcMjMzXFwwMDBcXDI1NVxcMDAwXFxcbiAgICBcXDAxMlxcMDAxXFwwMTVcXDAwMFxcMDE3XFwwMDBcXDA2MFxcMDAwXFwwMTFcXDAwMFxcMDEwXFwwMDBcXDAwMFxcMDAwXFwwMjBcXDAwMFxcXG4gICAgXFwwMjRcXDAwMFxcMDMxXFwwMDBcXDAzMlxcMDAwXFwwMzRcXDAwMFxcMDIyXFwwMDBcXDAyNlxcMDAwXFwwMDBcXDAwMFxcMDE0XFwwMDBcXFxuICAgIFxcMDI3XFwwMDBcXDAzM1xcMDAwXFwwMThcXDAwMFxcMDIzXFwwMDBcXDAwMFxcMDAwXFwwMTZcXDAwMFxcMDE5XFwwMDBcXDAzNVxcMDAwXFxcbiAgICBcXDA0MFxcMDAwXFwwMzZcXDAwMFxcMDM4XFwwMDBcXDAwMFxcMDAwXFwwNDFcXDAwMFxcMDQyXFwwMDBcXDA0M1xcMDAwXFwwNDRcXDAwMFxcXG4gICAgXFwwNDVcXDAwMFxcMDQ2XFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcMDExXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXFxuICAgIFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAxM1xcMDAwXFwwMTNcXDAwMFxcMDEzXFwwMDBcXDAzOVxcMDAwXFxcbiAgICBcXDA2M1xcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwMzlcXDAwMFxcXG4gICAgXFwwMzlcXDAwMFxcMDM5XFwwMDBcXDAzOVxcMDAwXFwwODVcXDAwMFxcMTQwXFwwMDBcXDA2MFxcMDAwXFwwMTNcXDAwMFxcMTQzXFwwMDBcXFxuICAgIFxcMTQ0XFwwMDBcXDE0NVxcMDAwXFwwNDhcXDAwMFxcMTQ3XFwwMDBcXDA0OFxcMDAwXFwxNDhcXDAwMFxcMDM5XFwwMDBcXDA0OFxcMDAwXFxcbiAgICBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcMDQ4XFwwMDBcXDA0OFxcMDAwXFwwNDhcXDAwMFxcXG4gICAgXFwwNDhcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDQ5XFwwMDBcXFxuICAgIFxcMDQ5XFwwMDBcXDA0OVxcMDAwXFwwNDlcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDUwXFwwMDBcXDA1MFxcMDAwXFwwNTBcXDAwMFxcMDY1XFwwMDBcXDAzOVxcMDAwXFwxNDlcXDAwMFxcXG4gICAgXFwxNTBcXDAwMFxcMTU2XFwwMDBcXDA2M1xcMDAwXFwxNTdcXDAwMFxcMDUxXFwwMDBcXDE1OFxcMDAwXFwwNTFcXDAwMFxcMTU5XFwwMDBcXFxuICAgIFxcMDUwXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MVxcMDAwXFxcbiAgICBcXDA1MVxcMDAwXFwwNTFcXDAwMFxcMDUxXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcXG4gICAgXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1MlxcMDAwXFwwNTJcXDAwMFxcMDUyXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXFxuICAgIFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDA1M1xcMDAwXFwwNTNcXDAwMFxcMDUzXFwwMDBcXDE1NVxcMDAwXFxcbiAgICBcXDA1MFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwwNTRcXDAwMFxcXG4gICAgXFwwNTRcXDAwMFxcMDU0XFwwMDBcXDA1NFxcMDAwXFwxNjFcXDAwMFxcMTYyXFwwMDBcXDE1NVxcMDAwXFwwOTFcXDAwMFxcMDY1XFwwMDBcXFxuICAgIFxcMDAwXFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1NVxcMDAwXFxcbiAgICBcXDA1NVxcMDAwXFwwNTVcXDAwMFxcMDU1XFwwMDBcXDA1N1xcMDAwXFwwNjhcXDAwMFxcMTAyXFwwMDBcXDEwN1xcMDAwXFwxMTVcXDAwMFxcXG4gICAgXFwxMzFcXDAwMFxcMTMzXFwwMDBcXDEzM1xcMDAwXFwxMjVcXDAwMFxcMTM4XFwwMDBcXDEzM1xcMDAwXFwxNjNcXDAwMFxcMDk0XFwwMDBcXFxuICAgIFxcMTY1XFwwMDBcXDA2OFxcMDAwXFwxNjZcXDAwMFxcMTY3XFwwMDBcXDE2OFxcMDAwXFwxNzFcXDAwMFxcMTExXFwwMDBcXDE3MlxcMDAwXFxcbiAgICBcXDE3M1xcMDAwXFwyMDZcXDAwMFxcMjAzXFwwMDBcXDIwN1xcMDAwXFwyMTBcXDAwMFxcMjExXFwwMDBcXDA1OFxcMDAwXFwwODJcXDAwMFxcXG4gICAgXFwxMzNcXDAwMFxcMjEyXFwwMDBcXDIxM1xcMDAwXFwyMTRcXDAwMFxcMjE1XFwwMDBcXDIxN1xcMDAwXFwxNDBcXDAwMFxcMjE4XFwwMDBcXFxuICAgIFxcMDk3XFwwMDBcXDIxOVxcMDAwXFwyMjBcXDAwMFxcMTE5XFwwMDBcXDIyMVxcMDAwXFwyMjJcXDAwMFxcMjIzXFwwMDBcXDEzM1xcMDAwXFxcbiAgICBcXDA5MVxcMDAwXFwyMDNcXDAwMFxcMDM0XFwwMDFcXDA2MlxcMDAxXFwyMzNcXDAwMFxcMTUyXFwwMDBcXDAwMVxcMDAxXFwwODBcXDAwMVxcXG4gICAgXFwyNDdcXDAwMFxcMDYwXFwwMDBcXDI1MVxcMDAwXFwwNTRcXDAwMVxcMDU4XFwwMDFcXDA4MVxcMDAxXFwwNjhcXDAwMFxcMDQxXFwwMDFcXFxuICAgIFxcMDgyXFwwMDFcXDA4M1xcMDAxXFwwMDZcXDAwMVxcMDI2XFwwMDFcXDA2OFxcMDAwXFwxMTlcXDAwMFxcMDMwXFwwMDFcXDAxNVxcMDAxXFxcbiAgICBcXDA2OFxcMDAwXFwwOTRcXDAwMFxcMDE1XFwwMDFcXDA4NFxcMDAxXFwwODVcXDAwMVxcMDg2XFwwMDFcXDA3MVxcMDAxXFwwODhcXDAwMVxcXG4gICAgXFwwNjhcXDAwMFxcMjAzXFwwMDBcXDA1MFxcMDAxXFwwNzFcXDAwMVxcMDY4XFwwMDBcXDA4OVxcMDAxXFwwNjhcXDAwMFxcMDY4XFwwMDBcXFxuICAgIFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFxcbiAgICBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDk3XFwwMDBcXDA3NlxcMDAxXFwxMTlcXDAwMFxcMDkwXFwwMDFcXDA2M1xcMDAwXFwwMDFcXDAwMVxcXG4gICAgXFwwOTJcXDAwMVxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDc4XFwwMDBcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFxcbiAgICBcXDA3OFxcMDAwXFwxNTJcXDAwMFxcMDc2XFwwMDFcXDA5M1xcMDAxXFwwOTVcXDAwMVxcMDk3XFwwMDFcXDA5OFxcMDAxXFwwNDVcXDAwMVxcXG4gICAgXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwOTlcXDAwMVxcMTUyXFwwMDBcXFxuICAgIFxcMTAwXFwwMDFcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDA3MVxcMDAwXFwwNzFcXDAwMFxcMDcxXFwwMDBcXDE4MFxcMDAwXFxcbiAgICBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcMTgwXFwwMDBcXDE4MFxcMDAwXFwxODBcXDAwMFxcXG4gICAgXFwxODBcXDAwMFxcMDIwXFwwMDFcXDA3NlxcMDAxXFwwNjVcXDAwMFxcMDIwXFwwMDFcXDEwMVxcMDAxXFwxMDJcXDAwMVxcMTA0XFwwMDFcXFxuICAgIFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc4XFwwMDBcXDA3OFxcMDAwXFwwNzhcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcXG4gICAgXFwxMDVcXDAwMVxcMTA2XFwwMDFcXDA0NVxcMDAxXFwwMzZcXDAwMVxcMTA3XFwwMDFcXDEwOFxcMDAxXFwxMDlcXDAwMVxcMDc5XFwwMDBcXFxuICAgIFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwxMTBcXDAwMVxcXG4gICAgXFwwMjZcXDAwMVxcMTIxXFwwMDFcXDE1N1xcMDAxXFwwMzBcXDAwMVxcMTU4XFwwMDFcXDAyMFxcMDAxXFwwODBcXDAwMFxcMDgwXFwwMDBcXFxuICAgIFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA5MVxcMDAwXFwxNTlcXDAwMVxcMDYyXFwwMDFcXDA3OVxcMDAwXFxcbiAgICBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMDc5XFwwMDBcXDA3OVxcMDAwXFwwNzlcXDAwMFxcMjQ3XFwwMDBcXDE2MFxcMDAxXFwyNTFcXDAwMFxcXG4gICAgXFwxNjFcXDAwMVxcMDU4XFwwMDFcXDA2OFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwOTRcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFxcbiAgICBcXDA4MFxcMDAwXFwwODBcXDAwMFxcMDgwXFwwMDBcXDA4MFxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcXG4gICAgXFwwODZcXDAwMFxcMDg2XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDAzNlxcMDAxXFwwNDFcXDAwMVxcMDk3XFwwMDBcXDE2MlxcMDAxXFxcbiAgICBcXDE2M1xcMDAxXFwxMTlcXDAwMFxcMDAxXFwwMDFcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcXG4gICAgXFwwODdcXDAwMFxcMTY1XFwwMDFcXDA1NFxcMDAxXFwxNTJcXDAwMFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwODZcXDAwMFxcMDg2XFwwMDBcXFxuICAgIFxcMDg2XFwwMDBcXDA4NlxcMDAwXFwwMDZcXDAwMVxcMTY2XFwwMDFcXDE2N1xcMDAxXFwxNjhcXDAwMVxcMDE1XFwwMDFcXDE2OVxcMDAxXFxcbiAgICBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcXG4gICAgXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA1MFxcMDAxXFwwODdcXDAwMFxcMDg3XFwwMDBcXDA4N1xcMDAwXFwwODdcXDAwMFxcMDg3XFwwMDBcXFxuICAgIFxcMDg3XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OVxcMDAwXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcXG4gICAgXFwwODlcXDAwMFxcMDk1XFwwMDBcXDEzM1xcMDAxXFwxNzBcXDAwMVxcMTcxXFwwMDFcXDE1NFxcMDAxXFwxMzNcXDAwMVxcMTcyXFwwMDFcXFxuICAgIFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDk1XFwwMDBcXDE3NlxcMDAwXFxcbiAgICBcXDE3M1xcMDAxXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwODhcXDAwMFxcMDg4XFwwMDBcXDA4OFxcMDAwXFwwNDVcXDAwMVxcXG4gICAgXFwxNzRcXDAwMVxcMTc1XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMVxcMTU0XFwwMDFcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXFxuICAgIFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDE3NlxcMDAwXFwxNzZcXDAwMFxcMTc2XFwwMDBcXDEyMlxcMDAxXFxcbiAgICBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDA4OVxcMDAwXFwwODlcXDAwMFxcMDg5XFwwMDBcXDE0OFxcMDAxXFwxNzdcXDAwMVxcXG4gICAgXFwwMjBcXDAwMVxcMTc4XFwwMDFcXDA5OFxcMDAwXFwxNDhcXDAwMVxcMTc5XFwwMDFcXDE4MFxcMDAxXFwxODFcXDAwMVxcMTgyXFwwMDFcXFxuICAgIFxcMTgzXFwwMDFcXDIxNlxcMDAxXFwxOTNcXDAwMVxcMDk1XFwwMDBcXDE1NFxcMDAxXFwyMTZcXDAwMVxcMjA1XFwwMDFcXDA5OFxcMDAwXFxcbiAgICBcXDIyMlxcMDAxXFwwOTVcXDAwMFxcMjA1XFwwMDFcXDIyOVxcMDAxXFwwMDFcXDAwMlxcMDk1XFwwMDBcXDIxOFxcMDAxXFwwMzZcXDAwMVxcXG4gICAgXFwyMTVcXDAwMVxcMjE1XFwwMDFcXDAwMlxcMDAyXFwyMThcXDAwMVxcMjE1XFwwMDFcXDA5NVxcMDAwXFwwMDRcXDAwMlxcMDA1XFwwMDJcXFxuICAgIFxcMjE2XFwwMDFcXDA5NVxcMDAwXFwwMDZcXDAwMlxcMDk1XFwwMDBcXDA5NVxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwyMTVcXDAwMVxcXG4gICAgXFwwMDdcXDAwMlxcMTIyXFwwMDFcXDAwOFxcMDAyXFwwMDlcXDAwMlxcMDEwXFwwMDJcXDAxMVxcMDAyXFwwOTZcXDAwMFxcMDk2XFwwMDBcXFxuICAgIFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5OFxcMDAwXFwwMTJcXDAwMlxcMjE1XFwwMDFcXDI0N1xcMDAxXFxcbiAgICBcXDAxM1xcMDAyXFwwMTRcXDAwMlxcMDk4XFwwMDBcXDAxNVxcMDAyXFwxMjVcXDAwMVxcMTI4XFwwMDFcXDA5OFxcMDAwXFwwMTZcXDAwMlxcXG4gICAgXFwyMjBcXDAwMVxcMDE3XFwwMDJcXDI1MVxcMDAxXFwwMThcXDAwMlxcMDE5XFwwMDJcXDAyMFxcMDAyXFwwOThcXDAwMFxcMTIxXFwwMDFcXFxuICAgIFxcMDIxXFwwMDJcXDE5NFxcMDAxXFwwOThcXDAwMFxcMDIyXFwwMDJcXDA5OFxcMDAwXFwwOThcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFxcbiAgICBcXDA5NlxcMDAwXFwwOTZcXDAwMFxcMDk2XFwwMDBcXDA5NlxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwyMzFcXDAwMVxcMDIzXFwwMDJcXFxuICAgIFxcMjM4XFwwMDFcXDAyNFxcMDAyXFwyNTFcXDAwMVxcMjM4XFwwMDFcXDAyNVxcMDAyXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFxcbiAgICBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDI0M1xcMDAxXFwxMjVcXDAwMVxcMTI4XFwwMDFcXFxuICAgIFxcMjI0XFwwMDFcXDAyNlxcMDAyXFwxOTdcXDAwMVxcMDI3XFwwMDJcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFxcbiAgICBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcMDI4XFwwMDJcXDE5NFxcMDAxXFwwMjlcXDAwMlxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwOTlcXDAwMFxcXG4gICAgXFwwOTlcXDAwMFxcMDk5XFwwMDBcXDA5OVxcMDAwXFwwMzBcXDAwMlxcMDMxXFwwMDJcXDAzMlxcMDAyXFwyMDBcXDAwMVxcMjMxXFwwMDFcXFxuICAgIFxcMTMzXFwwMDFcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDI1NVxcMjU1XFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMFxcMDAwXFwxMDBcXDAwMFxcXG4gICAgXFwxMDBcXDAwMFxcMTAwXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXFxuICAgIFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMTgyXFwwMDBcXDE4MlxcMDAwXFxcbiAgICBcXDE4MlxcMDAwXFwxODJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTdcXDAwMVxcMTc2XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcXG4gICAgXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXDE4NFxcMDAwXFwxODRcXDAwMFxcMTg0XFwwMDBcXFxuICAgIFxcMTg1XFwwMDBcXDI1NVxcMjU1XFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFwxMDFcXDAwMFxcMTAxXFwwMDBcXDEwMVxcMDAwXFxcbiAgICBcXDIwMFxcMDAxXFwyMjRcXDAwMVxcMjU1XFwyNTVcXDE4NVxcMDAwXFwyMDVcXDAwMVxcMTIyXFwwMDFcXDE4NVxcMDAwXFwxODVcXDAwMFxcXG4gICAgXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXDE4NVxcMDAwXFwxODVcXDAwMFxcMTg1XFwwMDBcXFxuICAgIFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkwXFwwMDBcXDE5MFxcMDAwXFxcbiAgICBcXDE5MFxcMDAwXFwxOTBcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcXG4gICAgXFwxOTFcXDAwMFxcMTkxXFwwMDBcXDE5MVxcMDAwXFwxOTFcXDAwMFxcMTkyXFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXFxuICAgIFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5N1xcMDAwXFwxOTdcXDAwMFxcMTk3XFwwMDBcXDE5MlxcMDAwXFxcbiAgICBcXDE5M1xcMDAxXFwyNDdcXDAwMVxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcXG4gICAgXFwxOTJcXDAwMFxcMTkyXFwwMDBcXDE5MlxcMDAwXFwxOTJcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXFxuICAgIFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk4XFwwMDBcXDE5OFxcMDAwXFwxOThcXDAwMFxcMTk5XFwwMDBcXDIyNlxcMDAwXFxcbiAgICBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcMjI2XFwwMDBcXDIyNlxcMDAwXFwyMjZcXDAwMFxcXG4gICAgXFwyMjZcXDAwMFxcMTk5XFwwMDBcXDEyNVxcMDAxXFwxMjhcXDAwMVxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXFxuICAgIFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMTk5XFwwMDBcXDE5OVxcMDAwXFwxOTlcXDAwMFxcMjA0XFwwMDBcXDE5NFxcMDAxXFxcbiAgICBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIwNFxcMDAwXFwyMDRcXDAwMFxcXG4gICAgXFwyMDRcXDAwMFxcMjA0XFwwMDBcXDIzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAwXFwyMjBcXDAwMVxcMjM4XFwwMDFcXFxuICAgIFxcMjUxXFwwMDFcXDI1NVxcMjU1XFwxOTlcXDAwMFxcMjQzXFwwMDFcXDI1NVxcMjU1XFwyMDRcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcMjA1XFwwMDBcXDIwNVxcMDAwXFwyMDVcXDAwMFxcXG4gICAgXFwyMjVcXDAwMFxcMjU1XFwyNTVcXDIyNVxcMDAwXFwyNTVcXDI1NVxcMjI0XFwwMDFcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXFxuICAgIFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIyNVxcMDAwXFwyMjVcXDAwMFxcMjI1XFwwMDBcXDIwNVxcMDAwXFxcbiAgICBcXDE5N1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjA0XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcXG4gICAgXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXDIyN1xcMDAwXFwyMjdcXDAwMFxcMjI3XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIyOFxcMDAwXFxcbiAgICBcXDI1NVxcMjU1XFwyMjhcXDAwMFxcMjU1XFwyNTVcXDIyN1xcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcXG4gICAgXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjhcXDAwMFxcMjI4XFwwMDBcXDIyOFxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXFxuICAgIFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFwyMjlcXDAwMFxcMjI5XFwwMDBcXDIyOVxcMDAwXFxcbiAgICBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDIzMFxcMDAwXFwyMzBcXDAwMFxcXG4gICAgXFwyMzBcXDAwMFxcMjMwXFwwMDBcXDI1NVxcMjU1XFwyMjdcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXFxuICAgIFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMjMxXFwwMDBcXDIzMVxcMDAwXFwyMzFcXDAwMFxcMTg1XFwwMDBcXDIzMlxcMDAwXFxcbiAgICBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcMjMyXFwwMDBcXDIzMlxcMDAwXFwyMzJcXDAwMFxcXG4gICAgXFwyMzJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjU1XFwyNTVcXFxuICAgIFxcMDc3XFwwMDFcXDI1NVxcMjU1XFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFxcbiAgICBcXDA3N1xcMDAxXFwwNzdcXDAwMVxcMDc3XFwwMDFcXDA3N1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcXG4gICAgXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwxMTNcXDAwMVxcMTEzXFwwMDFcXDExM1xcMDAxXFwyNTVcXDI1NVxcMDc3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDA3N1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIzN1xcMDAwXFwxOTlcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcXG4gICAgXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXFxuICAgIFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFxcbiAgICBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyMzdcXDAwMFxcMjM3XFwwMDBcXDIzN1xcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjU1XFwyNTVcXDI0MlxcMDAwXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0MFxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXFxuICAgIFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFxcbiAgICBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MFxcMDAwXFwyNDBcXDAwMFxcXG4gICAgXFwyNDBcXDAwMFxcMjQwXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFxcbiAgICBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcXG4gICAgXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXFxuICAgIFxcMjQyXFwwMDBcXDI0MlxcMDAwXFwyNDJcXDAwMFxcMjQyXFwwMDBcXDIzN1xcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI0NVxcMDAwXFwyNTVcXDI1NVxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcXG4gICAgXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXFxuICAgIFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFwyNDVcXDAwMFxcMjQ1XFwwMDBcXDI0NVxcMDAwXFxcbiAgICBcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcXG4gICAgXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMDc5XFwwMDFcXDA3OVxcMDAxXFwwNzlcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA3OVxcMDAxXFwwNjZcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMDY2XFwwMDFcXFxuICAgIFxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFwwNjZcXDAwMVxcMDY2XFwwMDFcXDA2NlxcMDAxXFxcbiAgICBcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjQyXFwwMDBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMDY2XFwwMDFcXDExMlxcMDAxXFwyNTVcXDI1NVxcMTEyXFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFxcbiAgICBcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcMTEyXFwwMDFcXDExMlxcMDAxXFwxMTJcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDA2NlxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXFxuICAgIFxcMTE0XFwwMDFcXDExNFxcMDAxXFwxMTRcXDAwMVxcMTE0XFwwMDFcXDExNFxcMDAxXFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMDY2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxMTRcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMTVcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE1XFwwMDFcXDI1NVxcMjU1XFwwNjZcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFxcbiAgICBcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE1XFwwMDFcXDExNVxcMDAxXFwxMTVcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcXG4gICAgXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMTE2XFwwMDFcXDExNlxcMDAxXFwxMTZcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMTE0XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExN1xcMDAxXFxcbiAgICBcXDExN1xcMDAxXFwxMTdcXDAwMVxcMTE3XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcXG4gICAgXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOFxcMDAxXFwxMThcXDAwMVxcMTE4XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXFxuICAgIFxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDExOVxcMDAxXFwxMTlcXDAwMVxcMTE5XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDEyNlxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMTU1XFwwMDFcXDI1NVxcMjU1XFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXFxuICAgIFxcMTU1XFwwMDFcXDE1NVxcMDAxXFwxNTVcXDAwMVxcMTU1XFwwMDFcXDE1NVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcMTI3XFwwMDFcXDEyN1xcMDAxXFwxMjdcXDAwMVxcXG4gICAgXFwxNTVcXDAwMVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTI2XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyNlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwwNjZcXDAwMVxcXG4gICAgXFwxMjZcXDAwMVxcMTI5XFwwMDFcXDEyNlxcMDAxXFwxMjZcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTU1XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxMjlcXDAwMVxcMjU1XFwyNTVcXDEyOVxcMDAxXFwxMjlcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTMwXFwwMDFcXDEzMFxcMDAxXFxcbiAgICBcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFxcbiAgICBcXDEzMVxcMDAxXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDEzMFxcMDAxXFwxMzBcXDAwMVxcXG4gICAgXFwxMzBcXDAwMVxcMTMwXFwwMDFcXDEzMFxcMDAxXFwxMzBcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwyNTVcXDI1NVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzFcXDAwMVxcXG4gICAgXFwxMzFcXDAwMVxcMTMxXFwwMDFcXDEzMVxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXFxuICAgIFxcMTMyXFwwMDFcXDE4NFxcMDAxXFwxMzhcXDAwMVxcMTg0XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTg0XFwwMDFcXDE4NFxcMDAxXFxcbiAgICBcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcMTg0XFwwMDFcXDE4NFxcMDAxXFwxODRcXDAwMVxcXG4gICAgXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXDE4NVxcMDAxXFwxODVcXDAwMVxcMTg1XFwwMDFcXFxuICAgIFxcMTg1XFwwMDFcXDE4NVxcMDAxXFwyNTVcXDI1NVxcMTMyXFwwMDFcXDEzMlxcMDAxXFwxMzJcXDAwMVxcMTMyXFwwMDFcXDEzMlxcMDAxXFxcbiAgICBcXDEzMlxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxMzhcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXFxuICAgIFxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFxcbiAgICBcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxMzhcXDAwMVxcXG4gICAgXFwxMzhcXDAwMVxcMTM4XFwwMDFcXDEzOFxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0MVxcMDAxXFwyNTVcXDI1NVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXFxuICAgIFxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFxcbiAgICBcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcXG4gICAgXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDFcXDAwMVxcMTQxXFwwMDFcXDE0MVxcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFxcbiAgICBcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMTU2XFwwMDFcXDE1NlxcMDAxXFwxNTZcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMTQzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE1NlxcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwxOThcXDAwMVxcMTQzXFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcXG4gICAgXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMTQzXFwwMDFcXDE0M1xcMDAxXFwxNDNcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDEzOFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE0M1xcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXFxuICAgIFxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTg2XFwwMDFcXDE4NlxcMDAxXFwxODZcXDAwMVxcMTk4XFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDE0M1xcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOThcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxOThcXDAwMVxcMTg2XFwwMDFcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMTk4XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMTQzXFwwMDFcXDE5OFxcMDAxXFwyNTVcXDI1NVxcMTk4XFwwMDFcXDE5OFxcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwxNDNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE4N1xcMDAxXFwyNTVcXDI1NVxcMTg3XFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDE4NlxcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFxcbiAgICBcXDE4N1xcMDAxXFwxODdcXDAwMVxcMTg3XFwwMDFcXDE4N1xcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcXG4gICAgXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODhcXDAwMVxcMTg4XFwwMDFcXDE4OFxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXFxuICAgIFxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFwxODlcXDAwMVxcMTg5XFwwMDFcXDE4OVxcMDAxXFxcbiAgICBcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MFxcMDAxXFwxOTBcXDAwMVxcXG4gICAgXFwxOTBcXDAwMVxcMTkwXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXFxuICAgIFxcMTkxXFwwMDFcXDE5MVxcMDAxXFwxOTFcXDAwMVxcMTkxXFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDIwMVxcMDAxXFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXFxuICAgIFxcMTk5XFwwMDFcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxOTlcXDAwMVxcMTk5XFwwMDFcXDE5OVxcMDAxXFxcbiAgICBcXDE5OVxcMDAxXFwxOTlcXDAwMVxcMTk5XFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwxNDNcXDAwMVxcMjAxXFwwMDFcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAxXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwMVxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDFcXDAwMVxcMjU1XFwyNTVcXFxuICAgIFxcMjAxXFwwMDFcXDIwMVxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXFxuICAgIFxcMjAyXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjAyXFwwMDFcXDIwMlxcMDAxXFwyMDJcXDAwMVxcMjAyXFwwMDFcXDIwMlxcMDAxXFxcbiAgICBcXDIwMlxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyMDRcXDAwMVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXFxuICAgIFxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFwyMDNcXDAwMVxcMjAzXFwwMDFcXDIwM1xcMDAxXFxcbiAgICBcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDI1NVxcMjU1XFwyMTBcXDAwMVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMDRcXDAwMVxcMjA0XFwwMDFcXDIwNFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcXG4gICAgXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXFxuICAgIFxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFwyMTBcXDAwMVxcMjEwXFwwMDFcXDIxMFxcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxM1xcMDAxXFxcbiAgICBcXDI1NVxcMjU1XFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcXG4gICAgXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXFxuICAgIFxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDIxM1xcMDAxXFxcbiAgICBcXDIxM1xcMDAxXFwyMTNcXDAwMVxcMjEzXFwwMDFcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDIxMFxcMDAxXFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFxcbiAgICBcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcXG4gICAgXFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXDI1NVxcMjU1XFwyNTVcXFxuICAgIFxcMjU1XFwyNTVcIjtcbiAgTGV4aW5nLmxleF9iYXNlX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9iYWNrdHJrX2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF9kZWZhdWx0X2NvZGUgPVxuICAgXCJcIjtcbiAgTGV4aW5nLmxleF90cmFuc19jb2RlID1cbiAgIFwiXCI7XG4gIExleGluZy5sZXhfY2hlY2tfY29kZSA9XG4gICBcIlwiO1xuICBMZXhpbmcubGV4X2NvZGUgPVxuICAgXCJcIjtcbn1cblxubGV0IHJlYyByZWFkX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiAwXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxODggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYEJvb2wgdHJ1ZSApXG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTAzMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTg5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGBCb29sIGZhbHNlIClcblxuIyAxMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDM4IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyAxOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggYE51bGwgKVxuXG4jIDEwNDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDE5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0bGl0IFwiTmFOXCJcbiAgICAgICAgICAgICAgICBcbiMgMTk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA1NCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXRsaXQgXCJJbmZpbml0eVwiXG4gICAgICAgICAgICAgICAgXG4jIDIwNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKVxuXG4jIDEwNjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwNjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDIwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICBcbiMgMjA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgYEZsb2F0bGl0IFwiLUluZmluaXR5XCJcbiAgICAgICAgICAgICAgICBcbiMgMjExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICApXG5cbiMgMTA3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgU3RyaW5nbGl0IChmaW5pc2hfc3RyaW5nbGl0IHYgbGV4YnVmKVxuICAgICAgICAgICAgICAgIFxuIyAyMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIClcblxuIyAxMDg3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMDg4IFwibGliL3JlYWQubWxcIlxuICB8IDcgLT5cblxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAyMjAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbWFrZV9wb3NpdGl2ZV9pbnQgdiBsZXhidWYgKVxuXG4jIDEwOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEwOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDIyMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBtYWtlX25lZ2F0aXZlX2ludCB2IGxleGJ1ZiApXG5cbiMgMTA5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTA5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCA5IC0+XG5cbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgMjIyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgIFxuIyAyMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICBgRmxvYXRsaXQgKGxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgIFxuIyAyMjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTEwOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTEwOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMCAtPlxuXG4jIDIzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxldCBhY2MgPSByZWYgW10gaW5cbiAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2lkZW50IHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBhY2MgOj0gKGZpZWxkX25hbWUsIHJlYWRfanNvbiB2IGxleGJ1ZikgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRfbmFtZSA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IChmaWVsZF9uYW1lLCByZWFkX2pzb24gdiBsZXhidWYpIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICBgQXNzb2MgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTM1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTM2IFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgMjU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9hcnJheSAtPlxuICAgICAgICAgICAgICAgICAgICAgYExpc3QgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIClcblxuIyAxMTU0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMTU1IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgMjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDI3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyAyNzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBbXSBpblxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfanNvbiB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2pzb24gdiBsZXhidWYgOjogIWFjYztcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBgVHVwbGUgKExpc3QucmV2ICFhY2MpXG4gICAgICAgICAgICAgICAgIFxuIyAyODkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE3OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE3OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMyAtPlxuXG4jIDI5MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAyOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgMjkzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBsZXQgY29ucyA9IHJlYWRfaWRlbnQgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBgVmFyaWFudCAoY29ucywgZmluaXNoX3ZhcmlhbnQgdiBsZXhidWYpXG4gICAgICAgICAgICAgICAgIFxuIyAzMDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICApXG5cbiMgMTE5MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNCAtPlxuXG4jIDMwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHJlYWRfanNvbiB2IGxleGJ1ZiApXG5cbiMgMTE5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTE5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxNSAtPlxuXG4jIDMwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyAzMDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTYgLT5cblxuIyAzMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTcgLT5cblxuIyAzMDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCByZWFkX2pzb24gdiBsZXhidWYgKVxuXG4jIDEyMTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyMTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTggLT5cblxuIyAzMDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgMzA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDE5IC0+XG5cbiMgMzA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDMwNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMTIyMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIyMyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfanNvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ19yZWMgdiBsZXhidWYgNThcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzMTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jb250ZW50cyB2LmJ1ZiApXG5cbiMgMTIzNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTIzNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzEyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQxIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIClcblxuIyAxMjQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjQ3IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgXG4jIDMxNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDEyNTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgbWFwX3N0cmluZyB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9zdHJpbmdfcmVjIHYgZiBsZXhidWYgNjNcbmFuZCBfX29jYW1sX2xleF9tYXBfc3RyaW5nX3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDMxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggbGV0IGIgPSB2LmJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICBmIChCdWZmZXIuY29udGVudHMgYikgMCAoQnVmZmVyLmxlbmd0aCBiKSApXG5cbiMgMTI2NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI2NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzIxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBmaW5pc2hfZXNjYXBlZF9jaGFyIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICBtYXBfc3RyaW5nIHYgZiBsZXhidWYgKVxuXG4jIDEyNzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyNzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDMyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzIzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTI3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTI3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIFxuIyAzMjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMjgxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMjgyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX3N0cmluZ19yZWMgdiBmIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2VzY2FwZWRfY2hhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfZXNjYXBlZF9jaGFyX3JlYyB2IGxleGJ1ZiA2OFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9lc2NhcGVkX2NoYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxubGV0XG5cbiMgMzMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgXG4jIDMzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgIGNcblxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuIyAxMjk0IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiBsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgaW5cblxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAzMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmIGMgKVxuXG4jIDEyOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEyOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDMzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXGInIClcblxuIyAxMzAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFwwMTInIClcblxuIyAxMzA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzA5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAzMzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDMzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJyApXG5cbiMgMTMxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTMxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgMzM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzMzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1xccicgKVxuXG4jIDEzMTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDEzMTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDMzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICdcXHQnIClcblxuIyAxMzIzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzI0IFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cbmxldFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgYVxuXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMjkgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAxKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgYlxuXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzMzQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyAyKVxuYW5kXG5cbiMgMzM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuIyAxMzM5IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMylcbmFuZFxuXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDMzNiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZFxuXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG4jIDEzNDQgXCJsaWIvcmVhZC5tbFwiXG49IExleGluZy5zdWJfbGV4ZW1lX2NoYXIgbGV4YnVmIChsZXhidWYuTGV4aW5nLmxleF9zdGFydF9wb3MgKyA0KSBpblxuXG4jIDMzNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IHggPVxuICAgICAgICAgICAgIChoZXggYSBsc2wgMTIpIGxvciAoaGV4IGIgbHNsIDgpIGxvciAoaGV4IGMgbHNsIDQpIGxvciBoZXggZFxuICAgICAgICAgICBpblxuICAgICAgICAgICBpZiB4ID49IDB4RDgwMCAmJiB4IDw9IDB4REJGRiB0aGVuXG4gICAgICAgICAgICAgZmluaXNoX3N1cnJvZ2F0ZV9wYWlyIHYgeCBsZXhidWZcbiAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgIHV0Zjhfb2ZfY29kZSB2LmJ1ZiB4XG4gICAgICAgICApXG5cbiMgMTM1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCA3IC0+XG5cbiMgMzQ1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiSW52YWxpZCBlc2NhcGUgc2VxdWVuY2VcIiB2IGxleGJ1ZiApXG5cbiMgMTM2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTM2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCA4IC0+XG5cbiMgMzQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxMzY2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2VzY2FwZWRfY2hhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF9zdXJyb2dhdGVfcGFpciB2IHggbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiA4MlxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cbmxldFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgIGFcblxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuIyAxMzc4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgMilcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiXG5cbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbiMgMTM4MyBcImxpYi9yZWFkLm1sXCJcbj0gTGV4aW5nLnN1Yl9sZXhlbWVfY2hhciBsZXhidWYgKGxleGJ1Zi5MZXhpbmcubGV4X3N0YXJ0X3BvcyArIDMpXG5hbmRcblxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyAzNDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNcblxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuIyAxMzg4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNClcbmFuZFxuXG4jIDM0OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgMzQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRcblxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuIyAxMzkzIFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZV9jaGFyIGxleGJ1ZiAobGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zICsgNSkgaW5cblxuIyAzNTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxldCB5ID1cbiAgICAgICAgICAgICAoaGV4IGEgbHNsIDEyKSBsb3IgKGhleCBiIGxzbCA4KSBsb3IgKGhleCBjIGxzbCA0KSBsb3IgaGV4IGRcbiAgICAgICAgICAgaW5cbiAgICAgICAgICAgaWYgeSA+PSAweERDMDAgJiYgeSA8PSAweERGRkYgdGhlblxuICAgICAgICAgICAgIHV0Zjhfb2Zfc3Vycm9nYXRlX3BhaXIgdi5idWYgeCB5XG4gICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICBsb25nX2Vycm9yIFwiSW52YWxpZCBsb3cgc3Vycm9nYXRlIGZvciBjb2RlIHBvaW50IGJleW9uZCBVK0ZGRkZcIlxuICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgIClcblxuIyAxNDA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDA2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzNTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM1OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJNaXNzaW5nIGVzY2FwZSBzZXF1ZW5jZSByZXByZXNlbnRpbmcgbG93IHN1cnJvZ2F0ZSBcXFxuICAgICAgICAgICAgICAgICAgICAgICBmb3IgY29kZSBwb2ludCBiZXlvbmQgVStGRkZGXCIgdiBsZXhidWYgKVxuXG4jIDE0MTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzYxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTQxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdXJyb2dhdGVfcGFpcl9yZWMgdiB4IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3N0cmluZ2xpdCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiA5MVxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM2NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbGV0IGxlbiA9IGxleGJ1Zi5sZXhfY3Vycl9wb3MgLSBsZXhidWYubGV4X3N0YXJ0X3BvcyBpblxuICAgICAgICAgICBsZXQgcyA9IEJ5dGVzLmNyZWF0ZSAobGVuKzEpIGluXG4gICAgICAgICAgIEJ5dGVzLnNldCBzIDAgJ1wiJztcbiAgICAgICAgICAgQnl0ZXMuYmxpdCBsZXhidWYubGV4X2J1ZmZlciBsZXhidWYubGV4X3N0YXJ0X3BvcyBzIDEgbGVuO1xuICAgICAgICAgICBCeXRlcy50b19zdHJpbmcgc1xuICAgICAgICAgKVxuXG4jIDE0MzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0MzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMTQzOCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQzOSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDQ0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3N0cmluZ2xpdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGZpbmlzaF92YXJpYW50IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2ZpbmlzaF92YXJpYW50X3JlYyB2IGxleGJ1ZiAxMDJcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzc2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzNzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsZXQgeCA9IHJlYWRfanNvbiB2IGxleGJ1ZiBpblxuICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICByZWFkX2d0IHYgbGV4YnVmO1xuICAgICAgICAgICBTb21lIHggKVxuXG4jIDE0NTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0NTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDM4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzgwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggTm9uZSApXG5cbiMgMTQ2MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMzgxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMzgyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzODIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2x0IHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIDEwN1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfbHRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMTQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMzg2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDM4NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sdF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgMTExXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9ndF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMzkwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMTUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMzkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAzOTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJz4nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNTEyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTEzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAzOTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE1MTcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MTggXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2d0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9jb21tYSB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiAxMTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2NvbW1hX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAzOTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoICgpIClcblxuIyAxNTI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAzOTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDM5NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1MzQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1MzUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDM5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMzk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTUzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfY29tbWFfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBzdGFydF9hbnlfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9zdGFydF9hbnlfdmFyaWFudF9yZWMgdiBsZXhidWYgMTE5XG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBgRWRneV9icmFja2V0IClcblxuIyAxNTUxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTUyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA0MDEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgYERvdWJsZV9xdW90ZSApXG5cbiMgMTU1NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU1OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDAzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGBTcXVhcmVfYnJhY2tldCApXG5cbiMgMTU2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTU2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnPCcsICdcXFwiJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE1NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDQwNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfY29tbWVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgMTI1XG5hbmQgX19vY2FtbF9sZXhfZmluaXNoX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQwOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDE1ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIlVudGVybWluYXRlZCBjb21tZW50XCIgdiBsZXhidWYgKVxuXG4jIDE1ODkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDQxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbmV3bGluZSB2IGxleGJ1ZjsgZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE1OTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQxMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgNDExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggZmluaXNoX2NvbW1lbnQgdiBsZXhidWYgKVxuXG4jIDE1OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9maW5pc2hfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfZW9mIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIDEzMVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfZW9mX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggdHJ1ZSApXG5cbiMgMTYxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTYxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgXG4jIDQyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDE2MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2VvZl9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIDEzM1xuYW5kIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIG5ld2xpbmUgdiBsZXhidWY7IHJlYWRfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDE2MjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE2MjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQyNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGZpbmlzaF9jb21tZW50IHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM0IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBuZXdsaW5lIHYgbGV4YnVmOyByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjM5IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0MjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCByZWFkX3NwYWNlIHYgbGV4YnVmIClcblxuIyAxNjQzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjQ0IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA0MjcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDI3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMTY0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3BhY2VfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX251bGwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiAxNDBcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bGxfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgIFxuIyA0MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAoICgpIClcblxuIyAxNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ251bGwnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA0MzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjcxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9udWxsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9udWxsX2lmX3Bvc3NpYmxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgMTQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9udWxsX2lmX3Bvc3NpYmxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCB0cnVlIClcblxuIyAxNjgyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNjgzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICBcbiMgNDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTY4NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTY4OCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbnVsbF9pZl9wb3NzaWJsZV9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYm9vbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIDE1MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYm9vbF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE2OTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIHRydWUgKVxuXG4jIDE3MDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDQ0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmYWxzZSApXG5cbiMgMTcxNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcxNSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAndHJ1ZScgb3IgJ2ZhbHNlJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTcxOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTcyMCBcImxpYi9yZWFkLm1sXCJcbiAgfCA1IC0+XG5cbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNDQ3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE3MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2Jvb2xfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludF9yZWMgdiBsZXhidWYgMTc2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgZXh0cmFjdF9wb3NpdGl2ZV9pbnQgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIEludF9vdmVyZmxvdyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludCBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxNzM4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzM5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IGV4dHJhY3RfbmVnYXRpdmVfaW50IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBJbnRfb3ZlcmZsb3cgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQgb3ZlcmZsb3dcIiB2IGxleGJ1ZiApXG5cbiMgMTc0NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTc0NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoICgqIFN1cHBvcnQgZm9yIGRvdWJsZS1xdW90ZWQgXCJpbnRzXCIgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgaW50IHdpbGwgcGFzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkaW5nIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBub3RhdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBlbWJlZGRlZCB1bmRlcnNjb3JlcyAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfb2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludGVnZXIgYnV0IGZvdW5kIGEgc3RyaW5nIHRoYXQgXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9lc24ndCBldmVuIHJlcHJlc2VudCBhbiBpbnRlZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICAgICAgICAgIClcblxuIyAxNzYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzY0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0NzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIGludGVnZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE3NjggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3NjkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxNzczIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxNzc0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2ludDMyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIDE4NVxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfaW50MzJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCB0cnkgSW50MzIub2Zfc3RyaW5nIChMZXhpbmcubGV4ZW1lIGxleGJ1ZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXhlcl9lcnJvciBcIkludDMyIG92ZXJmbG93XCIgdiBsZXhidWYgKVxuXG4jIDE3ODcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE3ODggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDQ3NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCAoKiBTdXBwb3J0IGZvciBkb3VibGUtcXVvdGVkIFwiaW50c1wiICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIuY2xlYXIgdi5idWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcyA9IGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKiBBbnkgT0NhbWwtY29tcGxpYW50IGludCB3aWxsIHBhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBoZXhhZGVjaW1hbCBhbmQgb2N0YWwgbm90YXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgZW1iZWRkZWQgdW5kZXJzY29yZXMgKilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50MzIub2Zfc3RyaW5nIHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21fZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIGFuIGludDMyIGJ1dCBmb3VuZCBhIHN0cmluZyB0aGF0IFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvZXNuJ3QgZXZlbiByZXByZXNlbnQgYW4gaW50ZWdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgICAgICAgICApXG5cbiMgMTgwNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgwNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCBpbnQzMiBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTgxMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTgxMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgNDkyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE4MTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4MTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2ludDMyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pbnQ2NCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiAxOTJcbmFuZCBfX29jYW1sX2xleF9yZWFkX2ludDY0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggdHJ5IEludDY0Lm9mX3N0cmluZyAoTGV4aW5nLmxleGVtZSBsZXhidWYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV4ZXJfZXJyb3IgXCJJbnQzMiBvdmVyZmxvd1wiIHYgbGV4YnVmIClcblxuIyAxODI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODMwIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA0OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICggKCogU3VwcG9ydCBmb3IgZG91YmxlLXF1b3RlZCBcImludHNcIiAqKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHMgPSBmaW5pc2hfc3RyaW5nIHYgbGV4YnVmIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCogQW55IE9DYW1sLWNvbXBsaWFudCBpbnQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzICopXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludDY0Lm9mX3N0cmluZyBzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhbiBpbnQ2NCBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGFuIGludGVnZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYgbGV4YnVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgKVxuXG4jIDE4NDcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NDggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgaW50NjQgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE4NTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE4NTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDUxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxODU3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODU4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pbnQ2NF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbnVtYmVyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbnVtYmVyX3JlYyB2IGxleGJ1ZiAxOTlcbmFuZCBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIG5hbiApXG5cbiMgMTg2OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg3MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGluZmluaXR5IClcblxuIyAxODc0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODc1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbmVnX2luZmluaXR5IClcblxuIyAxODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxODgwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggZmxvYXRfb2Zfc3RyaW5nIChsZXhlbWUgbGV4YnVmKSApXG5cbiMgMTg4NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTg4NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgICAgIGxldCBzID0gZmluaXNoX3N0cmluZyB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICgqIEFueSBPQ2FtbC1jb21wbGlhbnQgZmxvYXQgd2lsbCBwYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRpbmcgaGV4YWRlY2ltYWwgYW5kIG9jdGFsIG5vdGF0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgYW5kIGVtYmVkZGVkIHVuZGVyc2NvcmVzLiAqKVxuICAgICAgICAgICAgICAgICAgICBmbG9hdF9vZl9zdHJpbmcgc1xuICAgICAgICAgICAgICAgICAgd2l0aCBfIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHMgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJOYU5cIiAtPiBuYW5cbiAgICAgICAgICAgICAgICAgICAgICB8IFwiSW5maW5pdHlcIiAtPiBpbmZpbml0eVxuICAgICAgICAgICAgICAgICAgICAgIHwgXCItSW5maW5pdHlcIiAtPiBuZWdfaW5maW5pdHlcbiAgICAgICAgICAgICAgICAgICAgICB8IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tX2Vycm9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhIG51bWJlciBidXQgZm91bmQgYSBzdHJpbmcgdGhhdCBcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2Vzbid0IGV2ZW4gcmVwcmVzZW50IGEgbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgIClcblxuIyAxOTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTA3IFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA1MzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIG51bWJlciBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMTkxMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTkxMiBcImxpYi9yZWFkLm1sXCJcbiAgfCA2IC0+XG5cbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNTM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDE5MTYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MTcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX251bWJlcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfc3RyaW5nIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiAyMzNcbmFuZCBfX29jYW1sX2xleF9yZWFkX3N0cmluZ19yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIGZpbmlzaF9zdHJpbmcgdiBsZXhidWYgKVxuXG4jIDE5MjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5MzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJ1xcXCInIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAxOTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMTkzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfc3RyaW5nX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiAyMzdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmNsZWFyIHYuYnVmO1xuICAgICAgICAgICAgICAgZmluaXNoX3N0cmluZyB2IGxleGJ1ZiApXG5cbiMgMTk1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5sZXRcblxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA1NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIHNcblxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuIyAxOTU4IFwibGliL3JlYWQubWxcIlxuPSBMZXhpbmcuc3ViX2xleGVtZSBsZXhidWYgbGV4YnVmLkxleGluZy5sZXhfc3RhcnRfcG9zIGxleGJ1Zi5MZXhpbmcubGV4X2N1cnJfcG9zIGluXG5cbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHMgKVxuXG4jIDE5NjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5NjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5NjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAxOTcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAxOTczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIG1hcF9pZGVudCB2IGYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X21hcF9pZGVudF9yZWMgdiBmIGxleGJ1ZiAyNDJcbmFuZCBfX29jYW1sX2xleF9tYXBfaWRlbnRfcmVjIHYgZiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5jbGVhciB2LmJ1ZjtcbiAgICAgICAgICAgICAgIG1hcF9zdHJpbmcgdiBmIGxleGJ1ZiApXG5cbiMgMTk4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMTk4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTU5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIG1hcF9sZXhlbWUgZiBsZXhidWYgKVxuXG4jIDE5OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDE5OTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDE5OTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDAwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDAxIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfbWFwX2lkZW50X3JlYyB2IGYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3NlcXVlbmNlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3NlcXVlbmNlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjQ3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjAyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjAyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTc5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwMzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwMzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDM3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9zZXF1ZW5jZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xpc3RfcmV2X3JlYyByZWFkX2NlbGwgdiBsZXhidWYgMjUxXG5hbmQgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU4MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIFtdIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9jZWxsIHYgbGV4YnVmIDo6ICFhY2M7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCB2IGxleGJ1ZiA6OiAhYWNjO1xuICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjA2MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA2MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNTk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIwNjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwNjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDU5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMDcyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMDczIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9saXN0X3Jldl9yZWMgcmVhZF9jZWxsIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2FycmF5X2VuZCBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9lbmRfcmVjIGxleGJ1ZiAyNTVcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X2VuZF9yZWMgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDIwODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIwODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjA4OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjA5MCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfYXJyYXlfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiAyNTdcbmFuZCBfX29jYW1sX2xleF9yZWFkX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjA2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTAxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTAyIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX2FycmF5IClcblxuIyAyMTA2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTA3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIxMTEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxMTIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDYwOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMTE2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTE3IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hcnJheV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlIHJlYWRfY2VsbCBpbml0X2FjYyB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgMjYyXG5hbmQgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9yZWMgcmVhZF9jZWxsIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDYxMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA2MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgNjE1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSByZWYgMCBpblxuICAgICAgICAgICAgICAgICAgICAgbGV0IGFjYyA9IHJlZiBpbml0X2FjYyBpblxuICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYWNjIDo9IHJlYWRfY2VsbCAhcG9zICFhY2MgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGluY3IgcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSB0cnVlIGRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGFjYyA6PSByZWFkX2NlbGwgIXBvcyAhYWNjIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGluY3IgcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX3R1cGxlIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICAgICAgXG4jIDYzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyMTUwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTUxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2MzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjE1NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE1NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIxNjAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxNjEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3JlYyByZWFkX2NlbGwgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZF9yZWMgbGV4YnVmIDI2NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjE3MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjE3MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMTc3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMTc4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF90dXBsZV9lbmQyIHYgc3RkIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiAyNjhcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX2VuZDJfcmVjIHYgc3RkIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggaWYgc3RkIHRoZW5cbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDIxOTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIxOTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY0OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBpZiBzdGQgdGhlblxuICAgICAgICAgICAgICAgICByYWlzZSBFbmRfb2ZfdHVwbGVcbiAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgbG9uZ19lcnJvciBcIkV4cGVjdGVkICddJyBvciAnJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjIwMCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjIwMSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjA1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjA2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9lbmQyX3JlYyB2IHN0ZCBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfdHVwbGVfc2VwIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwX3JlYyB2IGxleGJ1ZiAyNzFcbmFuZCBfX29jYW1sX2xleF9yZWFkX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMjE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjE4IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAyMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcsJyBvciAnKScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIyMjcgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIyMjggXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMjMyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjMzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3R1cGxlX3NlcDIgdiBzdGQgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIDI3NlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjI0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjYyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmXG4gICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZSApXG5cbiMgMjI1MiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI1MyBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjY2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGlmIHN0ZCB0aGVuXG4gICAgICAgICAgICAgICAgIHJhaXNlIEVuZF9vZl90dXBsZVxuICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjI2MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI2MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjcwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJyknIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMjY2IFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA2NzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjI3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjI3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfdHVwbGVfc2VwMl9yZWMgdiBzdGQgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2Fic3RyYWN0X2ZpZWxkcyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIDI4MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfYWJzdHJhY3RfZmllbGRzX3JlYyByZWFkX2tleSByZWFkX2ZpZWxkIGluaXRfYWNjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY3NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsZXQgYWNjID0gcmVmIGluaXRfYWNjIGluXG4gICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgbGV0IGZpZWxkX25hbWUgPSByZWFkX2tleSB2IGxleGJ1ZiBpblxuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX2NvbG9uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIHdoaWxlIHRydWUgZG9cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZF9uYW1lID0gcmVhZF9rZXkgdiBsZXhidWYgaW5cbiAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICBhY2MgOj0gcmVhZF9maWVsZCAhYWNjIGZpZWxkX25hbWUgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICFhY2NcbiAgICAgICAgICAgICApXG5cbiMgMjMwNCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMwNSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNjk4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAneycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDIzMDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDY5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyMzE0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzE1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9hYnN0cmFjdF9maWVsZHNfcmVjIHJlYWRfa2V5IHJlYWRfZmllbGQgaW5pdF9hY2MgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfbGN1cmwgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgMjg2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sY3VybF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzAyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzI2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzI3IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICd7JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjMzMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjMzMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDIzMzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDIzMzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2xjdXJsX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9vYmplY3RfZW5kIGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiAyOTBcbmFuZCBfX29jYW1sX2xleF9yZWFkX29iamVjdF9lbmRfcmVjIGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzU0IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9vYmplY3RfZW5kX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIDI5MlxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzExIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzY2IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggcmFpc2UgRW5kX29mX29iamVjdCApXG5cbiMgMjM3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyMzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzc2IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjM4MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM4MSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgMjk3XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9jb2xvbl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyMzkyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyMzkzIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjM5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjM5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0MDIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MDMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX2NvbG9uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgc3RhcnRfYW55X3R1cGxlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3N0YXJ0X2FueV90dXBsZV9yZWMgdiBsZXhidWYgMzAxXG5hbmQgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggZmFsc2UgKVxuXG4jIDI0MTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCB0cnVlIClcblxuIyAyNDE5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDIwIFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcoJyBvciAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0MjQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0MjUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDI5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDMwIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfc3RhcnRfYW55X3R1cGxlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgcmVhZF9scGFyIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgMzA2XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9scGFyX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MjggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDI0NDEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NDIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDcyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJygnIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNDQ2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDQ3IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ1MSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ1MiBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3JlYWRfbHBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHJlYWRfcnBhciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIDMxMFxuYW5kIF9fb2NhbWxfbGV4X3JlYWRfcnBhcl9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNDYzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDY0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA3MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjQ2OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ2OSBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDI0NzMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0NzQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9yZWFkX3JwYXJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX2xiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX2xicl9yZWMgdiBsZXhidWYgMzE0XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDczOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjQ4NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjQ4NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzM5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnWycgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI0OTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI0OTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNDk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNDk2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9sYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCByZWFkX3JiciB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9yZWFkX3Jicl9yZWMgdiBsZXhidWYgMzE4XG5hbmQgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUwNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUwOCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgNzQ0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnXScgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI1MTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1MTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDc0NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNTE3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTE4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfcmVhZF9yYnJfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBza2lwX2pzb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9qc29uX3JlYyB2IGxleGJ1ZiAzMjJcbmFuZCBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjUyOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjUzMCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzUyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTM0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTM1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1MzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCAoKSApXG5cbiMgMjU0NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjU0NSBcImxpYi9yZWFkLm1sXCJcbiAgfCA0IC0+XG5cbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgNzU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTQ5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTUwIFwibGliL3JlYWQubWxcIlxuICB8IDUgLT5cblxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNiAtPlxuXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDc1NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgKVxuXG4jIDI1NTkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NjAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDc1OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA3NTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAyNTY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTY1IFwibGliL3JlYWQubWxcIlxuICB8IDggLT5cblxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgIFxuIyA3NTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICggKCkgKVxuXG4jIDI1NjkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI1NzAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOSAtPlxuXG4jIDc2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIHRyeVxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfb2JqZWN0X2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBza2lwX2lkZW50IHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX29iamVjdF9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFsc2VcbiAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl9vYmplY3QgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNTk1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNTk2IFwibGliL3JlYWQubWxcIlxuICB8IDEwIC0+XG5cbiMgNzg0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDc4NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgcmVhZF9hcnJheV9lbmQgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX2FycmF5X3NlcCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgIHdpdGggRW5kX29mX2FycmF5IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjYxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjYxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxMSAtPlxuXG4jIDc5OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA3OTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgODAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICByZWFkX3R1cGxlX2VuZCBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF90dXBsZV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBza2lwX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfdHVwbGUgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgKClcbiAgICAgICAgICAgICAgICAgXG4jIDgxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyNjM2IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjM3IFwibGliL3JlYWQubWxcIlxuICB8IDEyIC0+XG5cbiMgODE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgxOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgIFxuIyA4MjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIHNraXBfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgZmluaXNoX3NraXBfdmFyaWFudCB2IGxleGJ1ZlxuICAgICAgICAgICAgICAgICBcbiMgODI4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI2NTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTMgLT5cblxuIyA4MzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBza2lwX2pzb24gdiBsZXhidWYgKVxuXG4jIDI2NTUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2NTYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTQgLT5cblxuIyA4MzEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBmaW5pc2hfY29tbWVudCB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjYxIFwibGliL3JlYWQubWxcIlxuICB8IDE1IC0+XG5cbiMgODMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbmV3bGluZSB2IGxleGJ1Zjsgc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjY1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjY2IFwibGliL3JlYWQubWxcIlxuICB8IDE2IC0+XG5cbiMgODMzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggc2tpcF9qc29uIHYgbGV4YnVmIClcblxuIyAyNjcwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNjcxIFwibGliL3JlYWQubWxcIlxuICB8IDE3IC0+XG5cbiMgODM0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDgzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjY3NSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY3NiBcImxpYi9yZWFkLm1sXCJcbiAgfCAxOCAtPlxuXG4jIDgzNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA4MzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJJbnZhbGlkIHRva2VuXCIgdiBsZXhidWYgKVxuXG4jIDI2ODAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2ODEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9za2lwX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfc2tpcF9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiAzNzhcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg0MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggKCkgKVxuXG4jIDI2OTIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI2OTMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDg0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgODQyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjY5NyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjY5OCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODQzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzAyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzAzIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX3NraXBfdmFyaWFudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiAzODlcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfc2tpcF92YXJpYW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA4NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDg0NiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIHNraXBfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgcmVhZF9ndCB2IGxleGJ1ZiApXG5cbiMgMjcxNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcxNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODQ5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCAoKSApXG5cbiMgMjcyMSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyMiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgODUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJzonIG9yICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMjcyNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjcyNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODUxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA4NTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyNzMxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzMyIFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX3NraXBfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIHNraXBfaWRlbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgMzk0XG5hbmQgX19vY2FtbF9sZXhfc2tpcF9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9za2lwX3N0cmluZ2xpdCB2IGxleGJ1ZiApXG5cbiMgMjc0MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc0NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgODU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAyNzQ4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzQ5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkIHN0cmluZyBvciBpZGVudGlmaWVyIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAyNzUzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzU0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA4NTcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjc1OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc1OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X3NraXBfaWRlbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfanNvbiB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfanNvbl9yZWMgdiBsZXhidWYgMzk5XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX2pzb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgXG4jIDg3MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZiApXG5cbiMgMjc3MCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjc3MSBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICBcbiMgODcyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyNzc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyNzc2IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA4NzMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgODczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCB0cnlcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAneyc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfb2JqZWN0X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9jb2xvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9vYmplY3Rfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfY29sb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2Zfb2JqZWN0IC0+XG4gICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICApXG5cbiMgMjgwMiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjgwMyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgODk3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDg5NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggdHJ5XG4gICAgICAgICAgICAgICAgICAgICBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ1snO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2FycmF5X2VuZCB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9hcnJheV9zZXAgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBkb25lO1xuICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgd2l0aCBFbmRfb2ZfYXJyYXkgLT5cbiAgICAgICAgICAgICAgICAgICAgICgpXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODIxIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODIyIFwibGliL3JlYWQubWxcIlxuICB8IDQgLT5cblxuIyA5MTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgXG4jIDkxNSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcoJztcbiAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfdHVwbGVfZW5kIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgdHJ1ZSBkb1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfdHVwbGVfc2VwIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJfanNvbiB2IGxleGJ1ZjtcbiAgICAgICAgICAgICAgICAgICAgICAgZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB3aXRoIEVuZF9vZl90dXBsZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAoKVxuICAgICAgICAgICAgICAgICBcbiMgOTMyIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKVxuXG4jIDI4NDUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NDYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNSAtPlxuXG4jIDkzNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5MzQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICBcbiMgOTM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPCc7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfaWRlbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBidWZmZXJfc3BhY2UgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgICBmaW5pc2hfYnVmZmVyX3ZhcmlhbnQgdiBsZXhidWZcbiAgICAgICAgICAgICAgICAgXG4jIDk0NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIClcblxuIyAyODYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODYxIFwibGliL3JlYWQubWxcIlxuICB8IDYgLT5cblxuIyA5NDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTQ2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNyAtPlxuXG4jIDk0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICAgICAgICAgICAgICAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgICAgICAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4NzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4NzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgOCAtPlxuXG4jIDk1MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgIFxuIyA5NTAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgICAgICAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9qc29uIHYgbGV4YnVmIClcblxuIyAyODc5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODgwIFwibGliL3JlYWQubWxcIlxuICB8IDkgLT5cblxuIyA5NTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTUzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjsgYnVmZmVyX2pzb24gdiBsZXhidWYgKVxuXG4jIDI4ODQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI4ODUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMTAgLT5cblxuIyA5NTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICBcbiMgOTU0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyODg5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyODkwIFwibGliL3JlYWQubWxcIlxuICB8IDExIC0+XG5cbiMgOTU1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgXG4jIDk1NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgdG9rZW5cIiB2IGxleGJ1ZiApXG5cbiMgMjg5NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjg5NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9qc29uX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIDQ1MFxuYW5kIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfc3RyaW5nbGl0X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5NjEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk2MSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXCInO1xuICAgICAgICAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZlxuICAgICAgICAgKVxuXG4jIDI5MDggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MDkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDk2NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkludmFsaWQgc3RyaW5nIGxpdGVyYWxcIiB2IGxleGJ1ZiApXG5cbiMgMjkxMyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjkxNCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgOTY1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyA5NjUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9zdHJpbmdsaXRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX3ZhcmlhbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl92YXJpYW50X3JlYyB2IGxleGJ1ZiA0NjFcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX3ZhcmlhbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDk2OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTY4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICc6JztcbiAgICAgICAgICAgYnVmZmVyX2pzb24gdiBsZXhidWY7XG4gICAgICAgICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgYnVmZmVyX2d0IHYgbGV4YnVmIClcblxuIyAyOTMzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTM0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDk3MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnPicgKVxuXG4jIDI5MzggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5MzkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTczIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc6JyBvciAnPicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NDMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NDQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk3NCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgOTc0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMjk0OCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMjk0OSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfdmFyaWFudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl9pZGVudCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfaWRlbnRfcmVjIHYgbGV4YnVmIDQ2NlxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9pZGVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgOTc3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGZpbmlzaF9idWZmZXJfc3RyaW5nbGl0IHYgbGV4YnVmIClcblxuIyAyOTYwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTYxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyA5NzggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWYgKVxuXG4jIDI5NjUgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NjYgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk3OSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgc3RyaW5nIG9yIGlkZW50aWZpZXIgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDI5NzAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDI5NzEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMyAtPlxuXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDk4MCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAyOTc1IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTc2IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2lkZW50X3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX3NwYWNlIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9zcGFjZV9yZWMgdiBsZXhidWYgNDcxXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyA5ODMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTgzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIGFkZF9sZXhlbWUgdi5idWYgbGV4YnVmO1xuICAgIG5ld2xpbmUgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTkwIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTkxIFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyA5ODcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTg3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfc3RyaW5nIHYuYnVmIFwiLypcIjtcbiAgICBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWY7XG4gICAgYnVmZmVyX3NwYWNlIHYgbGV4YnVmIClcblxuIyAyOTk4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAyOTk5IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyA5OTEgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiMgOTkxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICBuZXdsaW5lIHYgbGV4YnVmO1xuICAgIGJ1ZmZlcl9zcGFjZSB2IGxleGJ1ZiApXG5cbiMgMzAwNiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzAwNyBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgOTk1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4jIDk5NSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICBhZGRfbGV4ZW1lIHYuYnVmIGxleGJ1ZjtcbiAgICBidWZmZXJfc3BhY2UgdiBsZXhidWYgKVxuXG4jIDMwMTMgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMTQgXCJsaWIvcmVhZC5tbFwiXG4gIHwgNCAtPlxuXG4jIDk5OCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIyA5OTggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoICgpIClcblxuIyAzMDE4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDE5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3NwYWNlX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX29iamVjdF9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIDQ3OFxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9vYmplY3RfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDAxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAwMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKFxuICAgICAgQnVmZmVyLmFkZF9jaGFyIHYuYnVmICd9JztcbiAgICAgIHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwMzIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwMzMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA0IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMDM3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDM4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfb2JqZWN0X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfb2JqZWN0X3NlcF9yZWMgdiBsZXhidWYgNDgwXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMDcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnLCcgKVxuXG4jIDMwNDkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMDggXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnfSc7IHJhaXNlIEVuZF9vZl9vYmplY3QgKVxuXG4jIDMwNTQgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwNTUgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMDkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDA5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ30nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMDU5IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDYwIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDEwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMDY0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDY1IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX29iamVjdF9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfYXJyYXlfZW5kIHYgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIDQ4NVxuYW5kIF9fb2NhbWxfbGV4X2J1ZmZlcl9hcnJheV9lbmRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDEzIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXSc7IHJhaXNlIEVuZF9vZl9hcnJheSApXG5cbiMgMzA3NiBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzA3NyBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAxNCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMTQgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggKCkgKVxuXG4jIDMwODEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwODIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfZW5kX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZVxuXG5hbmQgYnVmZmVyX2FycmF5X3NlcCB2IGxleGJ1ZiA9XG4gICBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiA0ODdcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfYXJyYXlfc2VwX3JlYyB2IGxleGJ1ZiBfX29jYW1sX2xleF9zdGF0ZSA9XG4gIG1hdGNoIExleGluZy5lbmdpbmUgX19vY2FtbF9sZXhfdGFibGVzIF9fb2NhbWxfbGV4X3N0YXRlIGxleGJ1ZiB3aXRoXG4gICAgICB8IDAgLT5cblxuIyAxMDE3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxNyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJywnIClcblxuIyAzMDkzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMDk0IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDE4IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAxOCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJ10nOyByYWlzZSBFbmRfb2ZfYXJyYXkgKVxuXG4jIDMwOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMwOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMTkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDE5IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnLCcgb3IgJ10nIGJ1dCBmb3VuZFwiIHYgbGV4YnVmIClcblxuIyAzMTAzIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA0IFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDIwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAyMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBjdXN0b21fZXJyb3IgXCJVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dFwiIHYgbGV4YnVmIClcblxuIyAzMTA4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTA5IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX2FycmF5X3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9lbmQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgNDkyXG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyMyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIChcbiAgICAgIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnKSc7XG4gICAgICByYWlzZSBFbmRfb2ZfdHVwbGUgKVxuXG4jIDMxMjIgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxMjMgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMjYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDI2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoICgpIClcblxuIyAzMTI3IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTI4IFwibGliL3JlYWQubWxcIlxuICB8IF9fb2NhbWxfbGV4X3N0YXRlIC0+IGxleGJ1Zi5MZXhpbmcucmVmaWxsX2J1ZmYgbGV4YnVmO1xuICAgICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX2VuZF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGJ1ZmZlcl90dXBsZV9zZXAgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgNDk0XG5hbmQgX19vY2FtbF9sZXhfYnVmZmVyX3R1cGxlX3NlcF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTAyOSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMjkgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcsJyApXG5cbiMgMzEzOSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE0MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAxIC0+XG5cbiMgMTAzMCBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggQnVmZmVyLmFkZF9jaGFyIHYuYnVmICcpJzsgcmFpc2UgRW5kX29mX3R1cGxlIClcblxuIyAzMTQ0IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTQ1IFwibGliL3JlYWQubWxcIlxuICB8IDIgLT5cblxuIyAxMDMxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICBcbiMgMTAzMSBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgKCBsb25nX2Vycm9yIFwiRXhwZWN0ZWQgJywnIG9yICcpJyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE0OSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1MCBcImxpYi9yZWFkLm1sXCJcbiAgfCAzIC0+XG5cbiMgMTAzMiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwMzIgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggY3VzdG9tX2Vycm9yIFwiVW5leHBlY3RlZCBlbmQgb2YgaW5wdXRcIiB2IGxleGJ1ZiApXG5cbiMgMzE1NCBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE1NSBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2J1ZmZlcl90dXBsZV9zZXBfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfY29sb24gdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2NvbG9uX3JlYyB2IGxleGJ1ZiA0OTlcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwMzUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM1IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnOicgKVxuXG4jIDMxNjYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNjcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwMzYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM2IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGxvbmdfZXJyb3IgXCJFeHBlY3RlZCAnOicgYnV0IGZvdW5kXCIgdiBsZXhidWYgKVxuXG4jIDMxNzEgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzIgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMiAtPlxuXG4jIDEwMzcgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgIFxuIyAxMDM3IFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxNzYgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxNzcgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfY29sb25fcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBidWZmZXJfZ3QgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfYnVmZmVyX2d0X3JlYyB2IGxleGJ1ZiA1MDNcbmFuZCBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDAgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX2NoYXIgdi5idWYgJz4nIClcblxuIyAzMTg4IFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMTg5IFwibGliL3JlYWQubWxcIlxuICB8IDEgLT5cblxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDQxIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggbG9uZ19lcnJvciBcIkV4cGVjdGVkICc+JyBidXQgZm91bmRcIiB2IGxleGJ1ZiApXG5cbiMgMzE5MyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzE5NCBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0MiBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIGN1c3RvbV9lcnJvciBcIlVuZXhwZWN0ZWQgZW5kIG9mIGlucHV0XCIgdiBsZXhidWYgKVxuXG4jIDMxOTggXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMxOTkgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9idWZmZXJfZ3RfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlXG5cbmFuZCBmaW5pc2hfYnVmZmVyX2NvbW1lbnQgdiBsZXhidWYgPVxuICAgX19vY2FtbF9sZXhfZmluaXNoX2J1ZmZlcl9jb21tZW50X3JlYyB2IGxleGJ1ZiA1MDdcbmFuZCBfX29jYW1sX2xleF9maW5pc2hfYnVmZmVyX2NvbW1lbnRfcmVjIHYgbGV4YnVmIF9fb2NhbWxfbGV4X3N0YXRlID1cbiAgbWF0Y2ggTGV4aW5nLmVuZ2luZSBfX29jYW1sX2xleF90YWJsZXMgX19vY2FtbF9sZXhfc3RhdGUgbGV4YnVmIHdpdGhcbiAgICAgIHwgMCAtPlxuXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDUgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBCdWZmZXIuYWRkX3N0cmluZyB2LmJ1ZiBcIiovXCIgKVxuXG4jIDMyMTAgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyMTEgXCJsaWIvcmVhZC5tbFwiXG4gIHwgMSAtPlxuXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgXG4jIDEwNDYgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgKCBsb25nX2Vycm9yIFwiVW50ZXJtaW5hdGVkIGNvbW1lbnRcIiB2IGxleGJ1ZiApXG5cbiMgMzIxNSBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIxNiBcImxpYi9yZWFkLm1sXCJcbiAgfCAyIC0+XG5cbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICBcbiMgMTA0NyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAoIEJ1ZmZlci5hZGRfY2hhciB2LmJ1ZiAnXFxuJztcbiAgICAgICAgICAgbmV3bGluZSB2IGxleGJ1ZjtcbiAgICAgICAgICAgZmluaXNoX2J1ZmZlcl9jb21tZW50IHYgbGV4YnVmIClcblxuIyAzMjIyIFwibGliL3JlYWQubWxcIlxuXG4gIFxuIyAzMjIzIFwibGliL3JlYWQubWxcIlxuICB8IDMgLT5cblxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgIFxuIyAxMDUwIFwibGliL3JlYWQubWxsXCJcbiAgICAgICAgICggYWRkX2xleGVtZSB2LmJ1ZiBsZXhidWY7IGZpbmlzaF9idWZmZXJfY29tbWVudCB2IGxleGJ1ZiApXG5cbiMgMzIyNyBcImxpYi9yZWFkLm1sXCJcblxuICBcbiMgMzIyOCBcImxpYi9yZWFkLm1sXCJcbiAgfCBfX29jYW1sX2xleF9zdGF0ZSAtPiBsZXhidWYuTGV4aW5nLnJlZmlsbF9idWZmIGxleGJ1ZjtcbiAgICAgIF9fb2NhbWxfbGV4X2ZpbmlzaF9idWZmZXJfY29tbWVudF9yZWMgdiBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuYW5kIGp1bmsgbGV4YnVmID1cbiAgIF9fb2NhbWxfbGV4X2p1bmtfcmVjIGxleGJ1ZiA1MTNcbmFuZCBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGUgPVxuICBtYXRjaCBMZXhpbmcuZW5naW5lIF9fb2NhbWxfbGV4X3RhYmxlcyBfX29jYW1sX2xleF9zdGF0ZSBsZXhidWYgd2l0aFxuICAgICAgfCAwIC0+XG5cbiMgMTA1MyBcImxpYi9yZWFkLm1sbFwiXG4gICAgICAgICAgICAgXG4jIDEwNTMgXCJsaWIvcmVhZC5tbGxcIlxuICAgICAgICAgICAgICggTGV4aW5nLmxleGVtZSBsZXhidWYgKVxuXG4jIDMyMzkgXCJsaWIvcmVhZC5tbFwiXG5cbiAgXG4jIDMyNDAgXCJsaWIvcmVhZC5tbFwiXG4gIHwgX19vY2FtbF9sZXhfc3RhdGUgLT4gbGV4YnVmLkxleGluZy5yZWZpbGxfYnVmZiBsZXhidWY7XG4gICAgICBfX29jYW1sX2xleF9qdW5rX3JlYyBsZXhidWYgX19vY2FtbF9sZXhfc3RhdGVcblxuOztcblxuXG4jIDEwNTUgXCJsaWIvcmVhZC5tbGxcIlxuIFxuICBcbiMgMTA1NiBcImxpYi9yZWFkLm1sbFwiXG4gIGxldCBfID0gKHJlYWRfanNvbiA6IGxleGVyX3N0YXRlIC0+IExleGluZy5sZXhidWYgLT4gdClcblxuICBsZXQgcmVhZF90ID0gcmVhZF9qc29uXG5cbiAgbGV0ICgpID1cbiAgICByZWFkX2p1bmsgOj0ganVua1xuXG4gIGxldCByZWFkX2ludDggdiBsZXhidWYgPVxuICAgIGxldCBuID0gcmVhZF9pbnQgdiBsZXhidWYgaW5cbiAgICBpZiBuIDwgMCB8fCBuID4gMjU1IHRoZW5cbiAgICAgIGxleGVyX2Vycm9yIFwiSW50OCBvdmVyZmxvd1wiIHYgbGV4YnVmXG4gICAgZWxzZVxuICAgICAgY2hhcl9vZl9pbnQgblxuXG4gIGxldCByZWFkX2xpc3QgcmVhZF9jZWxsIHYgbGV4YnVmID1cbiAgICBMaXN0LnJldiAocmVhZF9saXN0X3JldiByZWFkX2NlbGwgdiBsZXhidWYpXG5cbiAgbGV0IGFycmF5X29mX3Jldl9saXN0IGwgPVxuICAgIG1hdGNoIGwgd2l0aFxuICAgICAgICBbXSAtPiBbfCB8XVxuICAgICAgfCB4IDo6IHRsIC0+XG4gICAgICAgICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIGwgaW5cbiAgICAgICAgICBsZXQgYSA9IEFycmF5Lm1ha2UgbGVuIHggaW5cbiAgICAgICAgICBsZXQgciA9IHJlZiB0bCBpblxuICAgICAgICAgIGZvciBpID0gbGVuIC0gMiBkb3dudG8gMCBkb1xuICAgICAgICAgICAgYS4oaSkgPC0gTGlzdC5oZCAhcjtcbiAgICAgICAgICAgIHIgOj0gTGlzdC50bCAhclxuICAgICAgICAgIGRvbmU7XG4gICAgICAgICAgYVxuXG4gIGxldCByZWFkX2FycmF5IHJlYWRfY2VsbCB2IGxleGJ1ZiA9XG4gICAgbGV0IGwgPSByZWFkX2xpc3RfcmV2IHJlYWRfY2VsbCB2IGxleGJ1ZiBpblxuICAgIGFycmF5X29mX3Jldl9saXN0IGxcblxuICAoKiBSZWFkIGEgSlNPTiBvYmplY3QsIHJlYWRpbmcgdGhlIGtleXMgaW50byBPQ2FtbCBzdHJpbmdzXG4gICAgIChwcm92aWRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSkgKilcbiAgbGV0IHJlYWRfZmllbGRzIHJlYWRfZmllbGQgaW5pdF9hY2MgdiA9XG4gICAgcmVhZF9hYnN0cmFjdF9maWVsZHMgcmVhZF9pZGVudCByZWFkX2ZpZWxkIGluaXRfYWNjIHZcblxuICBsZXQgZmluaXNoIHYgbGV4YnVmID1cbiAgICByZWFkX3NwYWNlIHYgbGV4YnVmO1xuICAgIGlmIG5vdCAocmVhZF9lb2YgbGV4YnVmKSB0aGVuXG4gICAgICBsb25nX2Vycm9yIFwiSnVuayBhZnRlciBlbmQgb2YgSlNPTiB2YWx1ZTpcIiB2IGxleGJ1ZlxuXG4gIGxldCBpbml0X2xleGVyID0gaW5pdF9sZXhlclxuXG4gIGxldCBmcm9tX2xleGJ1ZiB2ID8oc3RyZWFtID0gZmFsc2UpIGxleGJ1ZiA9XG4gICAgcmVhZF9zcGFjZSB2IGxleGJ1ZjtcblxuICAgIGxldCB4ID1cbiAgICAgIGlmIHJlYWRfZW9mIGxleGJ1ZiB0aGVuXG4gICAgICAgIHJhaXNlIEVuZF9vZl9pbnB1dFxuICAgICAgZWxzZVxuICAgICAgICByZWFkX2pzb24gdiBsZXhidWZcbiAgICBpblxuXG4gICAgaWYgbm90IHN0cmVhbSB0aGVuXG4gICAgICBmaW5pc2ggdiBsZXhidWY7XG5cbiAgICB4XG5cblxuICBsZXQgZnJvbV9zdHJpbmcgP2J1ZiA/Zm5hbWUgP2xudW0gcyA9XG4gICAgdHJ5XG4gICAgICBsZXQgbGV4YnVmID0gTGV4aW5nLmZyb21fc3RyaW5nIHMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2NoYW5uZWwgP2J1ZiA/Zm5hbWUgP2xudW0gaWMgPVxuICAgIHRyeVxuICAgICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICAgIGxldCB2ID0gaW5pdF9sZXhlciA/YnVmID9mbmFtZSA/bG51bSAoKSBpblxuICAgICAgZnJvbV9sZXhidWYgdiBsZXhidWZcbiAgICB3aXRoIEVuZF9vZl9pbnB1dCAtPlxuICAgICAganNvbl9lcnJvciBcIkJsYW5rIGlucHV0IGRhdGFcIlxuXG4gIGxldCBmcm9tX2ZpbGUgP2J1ZiA/Zm5hbWUgP2xudW0gZmlsZSA9XG4gICAgbGV0IGljID0gb3Blbl9pbiBmaWxlIGluXG4gICAgdHJ5XG4gICAgICBsZXQgeCA9IGZyb21fY2hhbm5lbCA/YnVmID9mbmFtZSA/bG51bSBpYyBpblxuICAgICAgY2xvc2VfaW4gaWM7XG4gICAgICB4XG4gICAgd2l0aCBlIC0+XG4gICAgICBjbG9zZV9pbl9ub2VyciBpYztcbiAgICAgIHJhaXNlIGVcblxuICBleGNlcHRpb24gRmluYWxseSBvZiBleG4gKiBleG5cblxuICBsZXQgc2VxX2Zyb21fbGV4YnVmIHYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpIGxleGJ1ZiA9XG4gICAgbGV0IHN0cmVhbSA9IFNvbWUgdHJ1ZSBpblxuICAgIGxldCByZWMgZiAoKSA9XG4gICAgICB0cnkgU2VxLkNvbnMgKGZyb21fbGV4YnVmIHYgP3N0cmVhbSBsZXhidWYsIGYpXG4gICAgICB3aXRoXG4gICAgICAgICAgRW5kX29mX2lucHV0IC0+XG4gICAgICAgICAgICBmaW4gKCk7XG4gICAgICAgICAgICBTZXEuTmlsXG4gICAgICAgIHwgZSAtPlxuICAgICAgICAgICAgKHRyeSBmaW4gKCkgd2l0aCBmaW5fZSAtPiByYWlzZSAoRmluYWxseSAoZSwgZmluX2UpKSk7XG4gICAgICAgICAgICByYWlzZSBlXG4gICAgaW5cbiAgICBmXG5cbiAgbGV0IHNlcV9mcm9tX3N0cmluZyA/YnVmID9mbmFtZSA/bG51bSBzID1cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiAoTGV4aW5nLmZyb21fc3RyaW5nIHMpXG5cbiAgbGV0IHNlcV9mcm9tX2NoYW5uZWwgP2J1ZiA/ZmluID9mbmFtZSA/bG51bSBpYyA9XG4gICAgbGV0IGxleGJ1ZiA9IExleGluZy5mcm9tX2NoYW5uZWwgaWMgaW5cbiAgICBsZXQgdiA9IGluaXRfbGV4ZXIgP2J1ZiA/Zm5hbWUgP2xudW0gKCkgaW5cbiAgICBzZXFfZnJvbV9sZXhidWYgdiA/ZmluIGxleGJ1ZlxuXG4gIGxldCBzZXFfZnJvbV9maWxlID9idWYgP2ZuYW1lID9sbnVtIGZpbGUgPVxuICAgIGxldCBpYyA9IG9wZW5faW4gZmlsZSBpblxuICAgIGxldCBmaW4gKCkgPSBjbG9zZV9pbiBpYyBpblxuICAgIGxldCBmbmFtZSA9XG4gICAgICBtYXRjaCBmbmFtZSB3aXRoXG4gICAgICAgICAgTm9uZSAtPiBTb21lIGZpbGVcbiAgICAgICAgfCB4IC0+IHhcbiAgICBpblxuICAgIGxldCBsZXhidWYgPSBMZXhpbmcuZnJvbV9jaGFubmVsIGljIGluXG4gICAgbGV0IHYgPSBpbml0X2xleGVyID9idWYgP2ZuYW1lID9sbnVtICgpIGluXG4gICAgc2VxX2Zyb21fbGV4YnVmIHYgfmZpbiBsZXhidWZcblxuICB0eXBlIGpzb25fbGluZSA9IFsgYEpzb24gb2YgdCB8IGBFeG4gb2YgZXhuIF1cblxuICBsZXQgbGluZXNlcV9mcm9tX2NoYW5uZWxcbiAgICAgID9idWYgPyhmaW4gPSBmdW4gKCkgLT4gKCkpID9mbmFtZSA/bG51bToobG51bTAgPSAxKSBpYyA9XG4gICAgbGV0IGJ1ZiA9XG4gICAgICBtYXRjaCBidWYgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSAoQnVmZmVyLmNyZWF0ZSAyNTYpXG4gICAgICAgIHwgU29tZSBfIC0+IGJ1ZlxuICAgIGluXG4gICAgbGV0IHJlYyBmIGxudW0gPSBmdW4gKCkgLT5cbiAgICAgIHRyeVxuICAgICAgICBsZXQgbGluZSA9IGlucHV0X2xpbmUgaWMgaW5cbiAgICAgICAgU2VxLkNvbnMgKGBKc29uIChmcm9tX3N0cmluZyA/YnVmID9mbmFtZSB+bG51bSBsaW5lKSwgZiAobG51bSArIDEpKVxuICAgICAgd2l0aFxuICAgICAgICAgIEVuZF9vZl9maWxlIC0+IGZpbiAoKTsgU2VxLk5pbFxuICAgICAgICB8IGUgLT4gU2VxLkNvbnMgKGBFeG4gZSwgZiAobG51bSArIDEpKVxuICAgIGluXG4gICAgZiBsbnVtMFxuXG4gIGxldCBsaW5lc2VxX2Zyb21fZmlsZSA/YnVmID9mbmFtZSA/bG51bSBmaWxlID1cbiAgICBsZXQgaWMgPSBvcGVuX2luIGZpbGUgaW5cbiAgICBsZXQgZmluICgpID0gY2xvc2VfaW4gaWMgaW5cbiAgICBsZXQgZm5hbWUgPVxuICAgICAgbWF0Y2ggZm5hbWUgd2l0aFxuICAgICAgICAgIE5vbmUgLT4gU29tZSBmaWxlXG4gICAgICAgIHwgeCAtPiB4XG4gICAgaW5cbiAgICBsaW5lc2VxX2Zyb21fY2hhbm5lbCA/YnVmIH5maW4gP2ZuYW1lID9sbnVtIGljXG5cbiAgbGV0IHByZXR0aWZ5ID9zdGQgcyA9XG4gICAgcHJldHR5X3RvX3N0cmluZyA/c3RkIChmcm9tX3N0cmluZyBzKVxuXG4gIGxldCBjb21wYWN0ID9zdGQgcyA9XG4gICAgdG9fc3RyaW5nIChmcm9tX3N0cmluZyBzKVxuXG5cbiMgMzQwOCBcImxpYi9yZWFkLm1sXCJcbiMgMTAyIFwieW9qc29uLmNwcG8ubWxcIlxuZW5kXG4iLCJvcGVuIFN0ZExhYmVsc1xub3BlbiBNb3JlTGFiZWxzXG5vcGVuISBZb2pzb25cblxudHlwZSB0ID0gWW9qc29uLlNhZmUudFxuXG5sZXQgeW9qc29uX29mX3VuaXQgKCkgOiB0ID0gYE51bGxcbmxldCB5b2pzb25fb2ZfYm9vbCBiIDogdCA9IGBCb29sIGJcbmxldCB5b2pzb25fb2Zfc3RyaW5nIHN0ciA6IHQgPSBgU3RyaW5nIHN0clxubGV0IHlvanNvbl9vZl9ieXRlcyBieXRlcyA6IHQgPSBgU3RyaW5nIChCeXRlcy50b19zdHJpbmcgYnl0ZXMpXG5sZXQgeW9qc29uX29mX2NoYXIgYyA6IHQgPSBgU3RyaW5nIChTdHJpbmcubWFrZSAxIGMpXG5sZXQgeW9qc29uX29mX2ludCBuIDogdCA9IGBJbnQgblxubGV0IHlvanNvbl9vZl9mbG9hdCBuIDogdCA9IGBGbG9hdCBuXG5sZXQgeW9qc29uX29mX2ludDMyIChuIDogSW50MzIudCkgOiB0ID0gYEludGxpdCAoSW50MzIudG9fc3RyaW5nIG4pXG5sZXQgeW9qc29uX29mX2ludDY0IChuIDogSW50NjQudCkgOiB0ID0gYEludGxpdCAoSW50NjQudG9fc3RyaW5nIG4pXG5sZXQgeW9qc29uX29mX25hdGl2ZWludCBuIDogdCA9IGBJbnRsaXQgKE5hdGl2ZWludC50b19zdHJpbmcgbilcbmxldCB5b2pzb25fb2ZfcmVmIHlvanNvbl9vZl9fYSByZiA9IHlvanNvbl9vZl9fYSAhcmZcbmxldCB5b2pzb25fb2ZfbGF6eV90IHlvanNvbl9vZl9fYSBsdiA9IHlvanNvbl9vZl9fYSAoTGF6eS5mb3JjZSBsdilcblxubGV0IHlvanNvbl9vZl9vcHRpb24geW9qc29uX29mX19hID0gZnVuY3Rpb25cbiAgfCBTb21lIHggLT4geW9qc29uX29mX19hIHhcbiAgfCBOb25lIC0+IGBOdWxsXG47O1xuXG5sZXQgeW9qc29uX29mX3BhaXIgeW9qc29uX29mX19hIHlvanNvbl9vZl9fYiAoYSwgYikgPVxuICBgTGlzdCBbIHlvanNvbl9vZl9fYSBhOyB5b2pzb25fb2ZfX2IgYiBdXG47O1xuXG5sZXQgeW9qc29uX29mX3RyaXBsZSB5b2pzb25fb2ZfX2EgeW9qc29uX29mX19iIHlvanNvbl9vZl9fYyAoYSwgYiwgYykgPVxuICBgTGlzdCBbIHlvanNvbl9vZl9fYSBhOyB5b2pzb25fb2ZfX2IgYjsgeW9qc29uX29mX19jIGMgXVxuOztcblxuKCogTGlzdC5yZXYgKExpc3QucmV2X21hcCAuLi4pIGlzIHRhaWwgcmVjdXJzaXZlLCB0aGUgT0NhbWwgc3RhbmRhcmRcbiAgIGxpYnJhcnkgTGlzdC5tYXAgaXMgTk9ULiAqKVxubGV0IHlvanNvbl9vZl9saXN0IHlvanNvbl9vZl9fYSBsc3QgPSBgTGlzdCAoTGlzdC5yZXYgKExpc3QucmV2X21hcCB+Zjp5b2pzb25fb2ZfX2EgbHN0KSlcblxubGV0IHlvanNvbl9vZl9hcnJheSB5b2pzb25fb2ZfX2EgYXIgPVxuICBsZXQgbHN0X3JlZiA9IHJlZiBbXSBpblxuICBmb3IgaSA9IEFycmF5Lmxlbmd0aCBhciAtIDEgZG93bnRvIDAgZG9cbiAgICBsc3RfcmVmIDo9IHlvanNvbl9vZl9fYSBhci4oaSkgOjogIWxzdF9yZWZcbiAgZG9uZTtcbiAgYExpc3QgIWxzdF9yZWZcbjs7XG5cbmxldCB5b2pzb25fb2ZfaGFzaHRibCB5b2pzb25fb2Zfa2V5IHlvanNvbl9vZl92YWwgaHRibCA9XG4gIGxldCBjb2xsIH5rZXk6ayB+ZGF0YTp2IGFjYyA9IGBMaXN0IFsgeW9qc29uX29mX2tleSBrOyB5b2pzb25fb2ZfdmFsIHYgXSA6OiBhY2MgaW5cbiAgYExpc3QgKEhhc2h0YmwuZm9sZCBodGJsIH5pbml0OltdIH5mOmNvbGwpXG47O1xuXG5sZXQgeW9qc29uX29mX29wYXF1ZSBfID0gYFN0cmluZyBcIjxvcGFxdWU+XCJcbmxldCB5b2pzb25fb2ZfZnVuIF8gPSBgU3RyaW5nIFwiPGZ1bj5cIlxuXG5leGNlcHRpb24gT2ZfeW9qc29uX2Vycm9yIG9mIGV4biAqIHRcblxubGV0IHJlY29yZF9jaGVja19leHRyYV9maWVsZHMgPSByZWYgdHJ1ZVxubGV0IG9mX3lvanNvbl9lcnJvcl9leG4gZXhjIHlvanNvbiA9IHJhaXNlIChPZl95b2pzb25fZXJyb3IgKGV4YywgeW9qc29uKSlcbmxldCBvZl95b2pzb25fZXJyb3Igd2hhdCB5b2pzb24gPSByYWlzZSAoT2ZfeW9qc29uX2Vycm9yIChGYWlsdXJlIHdoYXQsIHlvanNvbikpXG5cbmxldCB1bml0X29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBOdWxsIC0+ICgpXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJ1bml0X29mX3lvanNvbjogYE51bGwgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgYm9vbF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgQm9vbCB2IC0+IHZcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImJvb2xfb2ZfeW9qc29uOiB0cnVlL2ZhbHNlIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IHN0cmluZ19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgU3RyaW5nIHN0ciAtPiBzdHJcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcInN0cmluZ19vZl95b2pzb246IHN0cmluZyBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBieXRlc19vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgU3RyaW5nIHN0ciAtPiBCeXRlcy5vZl9zdHJpbmcgc3RyXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJieXRlc19vZl95b2pzb246IHN0cmluZyBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBjaGFyX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBTdHJpbmcgc3RyIC0+XG4gICAgaWYgU3RyaW5nLmxlbmd0aCBzdHIgPD4gMVxuICAgIHRoZW4gb2ZfeW9qc29uX2Vycm9yIFwiY2hhcl9vZl95b2pzb246IHN0cmluZyBtdXN0IGNvbnRhaW4gb25lIGNoYXJhY3RlciBvbmx5XCIgeW9qc29uO1xuICAgIHN0ci5bMF1cbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImNoYXJfb2ZfeW9qc29uOiBzdHJpbmcgb2Ygc2l6ZSBvbmUgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgaW50X29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBJbnQgdiAtPiB2XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJpbnRfb2ZfeW9qc29uOiBpbnRlZ2VyIG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGZsb2F0X29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBGbG9hdCB2IC0+IHZcbiAgfCBgSW50IGkgLT4gZmxvYXRfb2ZfaW50IGlcbiAgfCBgSW50bGl0IHN0ciAtPiBmbG9hdF9vZl9zdHJpbmcgc3RyXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJmbG9hdF9vZl95b2pzb246IGZsb2F0IG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IGludDMyX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBJbnRsaXQgc3RyIC0+IEludDMyLm9mX3N0cmluZyBzdHJcbiAgfCBgSW50IHYgLT4gSW50MzIub2ZfaW50IHZcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImludDMyX29mX3lvanNvbjogaW50ZWdlciBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBpbnQ2NF9vZl95b2pzb24geW9qc29uID1cbiAgbWF0Y2ggeW9qc29uIHdpdGhcbiAgfCBgSW50bGl0IHN0ciAtPiBJbnQ2NC5vZl9zdHJpbmcgc3RyXG4gIHwgYEludCB2IC0+IEludDY0Lm9mX2ludCB2XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJpbnQ2NF9vZl95b2pzb246IGludGVnZXIgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgbmF0aXZlaW50X29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBJbnRsaXQgc3RyIC0+IE5hdGl2ZWludC5vZl9zdHJpbmcgc3RyXG4gIHwgYEludCB2IC0+IE5hdGl2ZWludC5vZl9pbnQgdlxuICB8IF8gLT4gb2ZfeW9qc29uX2Vycm9yIFwibmF0aXZlaW50X29mX3lvanNvbjogaW50ZWdlciBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCByZWZfb2ZfeW9qc29uIGFfX29mX3lvanNvbiB5b2pzb24gPSByZWYgKGFfX29mX3lvanNvbiB5b2pzb24pXG5sZXQgbGF6eV90X29mX3lvanNvbiBhX19vZl95b2pzb24geW9qc29uID0gTGF6eS5mcm9tX3ZhbCAoYV9fb2ZfeW9qc29uIHlvanNvbilcblxubGV0IG9wdGlvbl9vZl95b2pzb24gYV9fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYE51bGwgLT4gTm9uZVxuICB8IGVsIC0+IFNvbWUgKGFfX29mX3lvanNvbiBlbClcbjs7XG5cbmxldCBwYWlyX29mX3lvanNvbiBhX19vZl95b2pzb24gYl9fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYExpc3QgWyBhX3lvanNvbjsgYl95b2pzb24gXSAtPlxuICAgIGxldCBhID0gYV9fb2ZfeW9qc29uIGFfeW9qc29uIGluXG4gICAgbGV0IGIgPSBiX19vZl95b2pzb24gYl95b2pzb24gaW5cbiAgICBhLCBiXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJwYWlyX29mX3lvanNvbjogaW52YWxpZCBmb3JtYXRcIiB5b2pzb25cbjs7XG5cbmxldCB0cmlwbGVfb2ZfeW9qc29uIGFfX29mX3lvanNvbiBiX19vZl95b2pzb24gY19fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYExpc3QgWyBhX3lvanNvbjsgYl95b2pzb247IGNfeW9qc29uIF0gLT5cbiAgICBsZXQgYSA9IGFfX29mX3lvanNvbiBhX3lvanNvbiBpblxuICAgIGxldCBiID0gYl9fb2ZfeW9qc29uIGJfeW9qc29uIGluXG4gICAgbGV0IGMgPSBjX19vZl95b2pzb24gY195b2pzb24gaW5cbiAgICBhLCBiLCBjXG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJ0cmlwbGVfb2ZfeW9qc29uOiBpbnZhbGlkIGZvcm1hdFwiIHlvanNvblxuOztcblxubGV0IGxpc3Rfb2ZfeW9qc29uIGFfX29mX3lvanNvbiB5b2pzb24gPVxuICBtYXRjaCB5b2pzb24gd2l0aFxuICB8IGBMaXN0IGxzdCAtPlxuICAgIGxldCByZXZfbHN0ID0gTGlzdC5yZXZfbWFwIGxzdCB+ZjphX19vZl95b2pzb24gaW5cbiAgICBMaXN0LnJldiByZXZfbHN0XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJsaXN0X29mX3lvanNvbjogbGlzdCBuZWVkZWRcIiB5b2pzb25cbjs7XG5cbmxldCBhcnJheV9vZl95b2pzb24gYV9fb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYExpc3QgW10gLT4gW3x8XVxuICB8IGBMaXN0IChoIDo6IHQpIC0+XG4gICAgbGV0IGxlbiA9IExpc3QubGVuZ3RoIHQgKyAxIGluXG4gICAgbGV0IHJlcyA9IEFycmF5Lm1ha2UgbGVuIChhX19vZl95b2pzb24gaCkgaW5cbiAgICBsZXQgcmVjIGxvb3AgaSA9IGZ1bmN0aW9uXG4gICAgICB8IFtdIC0+IHJlc1xuICAgICAgfCBoIDo6IHQgLT5cbiAgICAgICAgcmVzLihpKSA8LSBhX19vZl95b2pzb24gaDtcbiAgICAgICAgbG9vcCAoaSArIDEpIHRcbiAgICBpblxuICAgIGxvb3AgMSB0XG4gIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJhcnJheV9vZl95b2pzb246IGxpc3QgbmVlZGVkXCIgeW9qc29uXG47O1xuXG5sZXQgaGFzaHRibF9vZl95b2pzb24ga2V5X29mX3lvanNvbiB2YWxfb2ZfeW9qc29uIHlvanNvbiA9XG4gIG1hdGNoIHlvanNvbiB3aXRoXG4gIHwgYExpc3QgbHN0IC0+XG4gICAgbGV0IGh0YmwgPSBIYXNodGJsLmNyZWF0ZSAwIGluXG4gICAgbGV0IGFjdCA9IGZ1bmN0aW9uXG4gICAgICB8IGBMaXN0IFsga195b2pzb247IHZfeW9qc29uIF0gLT5cbiAgICAgICAgSGFzaHRibC5hZGQgaHRibCB+a2V5OihrZXlfb2ZfeW9qc29uIGtfeW9qc29uKSB+ZGF0YToodmFsX29mX3lvanNvbiB2X3lvanNvbilcbiAgICAgIHwgXyAtPiBvZl95b2pzb25fZXJyb3IgXCJoYXNodGJsX29mX3lvanNvbjogdHVwbGUgbGlzdCBuZWVkZWRcIiB5b2pzb25cbiAgICBpblxuICAgIExpc3QuaXRlciBsc3QgfmY6YWN0O1xuICAgIGh0YmxcbiAgfCBfIC0+IG9mX3lvanNvbl9lcnJvciBcImhhc2h0Ymxfb2ZfeW9qc29uOiBsaXN0IG5lZWRlZFwiIHlvanNvblxuOztcblxubGV0IG9wYXF1ZV9vZl95b2pzb24geW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIFwib3BhcXVlX29mX3lvanNvbjogY2Fubm90IGNvbnZlcnQgb3BhcXVlIHZhbHVlc1wiIHlvanNvblxuOztcblxubGV0IGZ1bl9vZl95b2pzb24geW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIFwiZnVuX29mX3lvanNvbjogY2Fubm90IGNvbnZlcnQgZnVuY3Rpb24gdmFsdWVzXCIgeW9qc29uXG47O1xuXG5tb2R1bGUgUHJpbWl0aXZlcyA9IHN0cnVjdFxuICBsZXQgeW9qc29uX29mX2FycmF5ID0geW9qc29uX29mX2FycmF5XG4gIGxldCBhcnJheV9vZl95b2pzb24gPSBhcnJheV9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9ib29sID0geW9qc29uX29mX2Jvb2xcbiAgbGV0IGJvb2xfb2ZfeW9qc29uID0gYm9vbF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9jaGFyID0geW9qc29uX29mX2NoYXJcbiAgbGV0IGNoYXJfb2ZfeW9qc29uID0gY2hhcl9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9mbG9hdCA9IHlvanNvbl9vZl9mbG9hdFxuICBsZXQgZmxvYXRfb2ZfeW9qc29uID0gZmxvYXRfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfaW50ID0geW9qc29uX29mX2ludFxuICBsZXQgaW50X29mX3lvanNvbiA9IGludF9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9pbnQzMiA9IHlvanNvbl9vZl9pbnQzMlxuICBsZXQgaW50MzJfb2ZfeW9qc29uID0gaW50MzJfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfaW50NjQgPSB5b2pzb25fb2ZfaW50NjRcbiAgbGV0IGludDY0X29mX3lvanNvbiA9IGludDY0X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2xpc3QgPSB5b2pzb25fb2ZfbGlzdFxuICBsZXQgbGlzdF9vZl95b2pzb24gPSBsaXN0X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX25hdGl2ZWludCA9IHlvanNvbl9vZl9uYXRpdmVpbnRcbiAgbGV0IG5hdGl2ZWludF9vZl95b2pzb24gPSBuYXRpdmVpbnRfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2Zfb3B0aW9uID0geW9qc29uX29mX29wdGlvblxuICBsZXQgb3B0aW9uX29mX3lvanNvbiA9IG9wdGlvbl9vZl95b2pzb25cbiAgbGV0IHlvanNvbl9vZl9yZWYgPSB5b2pzb25fb2ZfcmVmXG4gIGxldCByZWZfb2ZfeW9qc29uID0gcmVmX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX3N0cmluZyA9IHlvanNvbl9vZl9zdHJpbmdcbiAgbGV0IHN0cmluZ19vZl95b2pzb24gPSBzdHJpbmdfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfYnl0ZXMgPSB5b2pzb25fb2ZfYnl0ZXNcbiAgbGV0IGJ5dGVzX29mX3lvanNvbiA9IGJ5dGVzX29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX3VuaXQgPSB5b2pzb25fb2ZfdW5pdFxuICBsZXQgdW5pdF9vZl95b2pzb24gPSB1bml0X29mX3lvanNvblxuICBsZXQgeW9qc29uX29mX2xhenlfdCA9IHlvanNvbl9vZl9sYXp5X3RcbiAgbGV0IGxhenlfdF9vZl95b2pzb24gPSBsYXp5X3Rfb2ZfeW9qc29uXG4gIGxldCB5b2pzb25fb2ZfaGFzaHRibCA9IHlvanNvbl9vZl9oYXNodGJsXG4gIGxldCBoYXNodGJsX29mX3lvanNvbiA9IGhhc2h0Ymxfb2ZfeW9qc29uXG5lbmRcbiIsIigqIENvbnZfZXJyb3I6IE1vZHVsZSBmb3IgSGFuZGxpbmcgRXJyb3JzIGR1cmluZyBBdXRvbWF0ZWQgWW9qc29uXG4gICBDb252ZXJzaW9ucyAqKVxuXG5vcGVuISBTdGRMYWJlbHNcbm9wZW4gWW9qc29uX2NvbnZcblxubGV0IHNwcmludGYgPSBQcmludGYuc3ByaW50ZlxuXG4oKiBFcnJvcnMgY29uY2VybmluZyB0dXBsZXMgKilcblxubGV0IHR1cGxlX29mX3NpemVfbl9leHBlY3RlZCBsb2MgbiB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKHNwcmludGYgXCIlc19vZl95b2pzb246IHR1cGxlIG9mIHNpemUgJWQgZXhwZWN0ZWRcIiBsb2MgbikgeW9qc29uXG47O1xuXG4oKiBFcnJvcnMgY29uY2VybmluZyBzdW0gdHlwZXMgKilcblxubGV0IHN0YWdfbm9fYXJncyBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHRoaXMgY29uc3RydWN0b3IgZG9lcyBub3QgdGFrZSBhcmd1bWVudHNcIikgeW9qc29uXG47O1xuXG5sZXQgc3RhZ19pbmNvcnJlY3Rfbl9hcmdzIGxvYyB0YWcgeW9qc29uID1cbiAgbGV0IG1zZyA9XG4gICAgc3ByaW50ZiBcIiVzX29mX3lvanNvbjogc3VtIHRhZyAlUyBoYXMgaW5jb3JyZWN0IG51bWJlciBvZiBhcmd1bWVudHNcIiBsb2MgdGFnXG4gIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG5sZXQgc3RhZ190YWtlc19hcmdzIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3IgKGxvYyBeIFwiX29mX3lvanNvbjogdGhpcyBjb25zdHJ1Y3RvciByZXF1aXJlcyBhcmd1bWVudHNcIikgeW9qc29uXG47O1xuXG5sZXQgbmVzdGVkX2xpc3RfaW52YWxpZF9zdW0gbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiBleHBlY3RlZCBhIHZhcmlhbnQgdHlwZSwgc2F3IGEgbmVzdGVkIGxpc3RcIikgeW9qc29uXG47O1xuXG5sZXQgZW1wdHlfbGlzdF9pbnZhbGlkX3N1bSBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IGV4cGVjdGVkIGEgdmFyaWFudCB0eXBlLCBzYXcgYW4gZW1wdHkgbGlzdFwiKSB5b2pzb25cbjs7XG5cbmxldCB1bmV4cGVjdGVkX3N0YWcgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiB1bmV4cGVjdGVkIHZhcmlhbnQgY29uc3RydWN0b3JcIikgeW9qc29uXG47O1xuXG4oKiBFcnJvcnMgY29uY2VybmluZyByZWNvcmRzICopXG5cbmxldCByZWNvcmRfc3VwZXJmbHVvdXNfZmllbGRzIH53aGF0IH5sb2MgcmV2X2ZsZF9uYW1lcyB5b2pzb24gPVxuICBsZXQgZmxkX25hbWVzX3N0ciA9IFN0cmluZy5jb25jYXQgKExpc3QucmV2IHJldl9mbGRfbmFtZXMpIH5zZXA6XCIgXCIgaW5cbiAgbGV0IG1zZyA9IHNwcmludGYgXCIlc19vZl95b2pzb246ICVzOiAlc1wiIGxvYyB3aGF0IGZsZF9uYW1lc19zdHIgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbmxldCByZWNvcmRfZHVwbGljYXRlX2ZpZWxkcyBsb2MgcmV2X2ZsZF9uYW1lcyB5b2pzb24gPVxuICByZWNvcmRfc3VwZXJmbHVvdXNfZmllbGRzIH53aGF0OlwiZHVwbGljYXRlIGZpZWxkc1wiIH5sb2MgcmV2X2ZsZF9uYW1lcyB5b2pzb25cbjs7XG5cbmxldCByZWNvcmRfZXh0cmFfZmllbGRzIGxvYyByZXZfZmxkX25hbWVzIHlvanNvbiA9XG4gIHJlY29yZF9zdXBlcmZsdW91c19maWVsZHMgfndoYXQ6XCJleHRyYSBmaWVsZHNcIiB+bG9jIHJldl9mbGRfbmFtZXMgeW9qc29uXG47O1xuXG5sZXQgcmVjIHJlY29yZF9nZXRfdW5kZWZpbmVkX2xvb3AgZmllbGRzID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBTdHJpbmcuY29uY2F0IChMaXN0LnJldiBmaWVsZHMpIH5zZXA6XCIgXCJcbiAgfCAodHJ1ZSwgZmllbGQpIDo6IHJlc3QgLT4gcmVjb3JkX2dldF91bmRlZmluZWRfbG9vcCAoZmllbGQgOjogZmllbGRzKSByZXN0XG4gIHwgXyA6OiByZXN0IC0+IHJlY29yZF9nZXRfdW5kZWZpbmVkX2xvb3AgZmllbGRzIHJlc3Rcbjs7XG5cbmxldCByZWNvcmRfdW5kZWZpbmVkX2VsZW1lbnRzIGxvYyB5b2pzb24gbHN0ID1cbiAgbGV0IHVuZGVmaW5lZCA9IHJlY29yZF9nZXRfdW5kZWZpbmVkX2xvb3AgW10gbHN0IGluXG4gIGxldCBtc2cgPVxuICAgIHNwcmludGYgXCIlc19vZl95b2pzb246IHRoZSBmb2xsb3dpbmcgcmVjb3JkIGVsZW1lbnRzIHdlcmUgdW5kZWZpbmVkOiAlc1wiIGxvYyB1bmRlZmluZWRcbiAgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbmxldCByZWNvcmRfbGlzdF9pbnN0ZWFkX2F0b20gbG9jIHlvanNvbiA9XG4gIGxldCBtc2cgPSBsb2MgXiBcIl9vZl95b2pzb246IGxpc3QgaW5zdGVhZCBvZiBhdG9tIGZvciByZWNvcmQgZXhwZWN0ZWRcIiBpblxuICBvZl95b2pzb25fZXJyb3IgbXNnIHlvanNvblxuOztcblxubGV0IHJlY29yZF9wb2x5X2ZpZWxkX3ZhbHVlIGxvYyB5b2pzb24gPVxuICBsZXQgbXNnID1cbiAgICBsb2NcbiAgICBeIFwiX29mX3lvanNvbjogY2Fubm90IGNvbnZlcnQgdmFsdWVzIG9mIHR5cGVzIHJlc3VsdGluZyBmcm9tIHBvbHltb3JwaGljIHJlY29yZCBcXFxuICAgICAgIGZpZWxkc1wiXG4gIGluXG4gIG9mX3lvanNvbl9lcnJvciBtc2cgeW9qc29uXG47O1xuXG4oKiBFcnJvcnMgY29uY2VybmluZyBwb2x5bW9ycGhpYyB2YXJpYW50cyAqKVxuXG5leGNlcHRpb24gTm9fdmFyaWFudF9tYXRjaFxuXG5sZXQgbm9fdmFyaWFudF9tYXRjaCAoKSA9IHJhaXNlIE5vX3ZhcmlhbnRfbWF0Y2hcblxubGV0IG5vX21hdGNoaW5nX3ZhcmlhbnRfZm91bmQgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiBubyBtYXRjaGluZyB2YXJpYW50IGZvdW5kXCIpIHlvanNvblxuOztcblxubGV0IHB0YWdfbm9fYXJncyBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHBvbHltb3JwaGljIHZhcmlhbnQgZG9lcyBub3QgdGFrZSBhcmd1bWVudHNcIikgeW9qc29uXG47O1xuXG5sZXQgcHRhZ19pbmNvcnJlY3Rfbl9hcmdzIGxvYyBjbnN0ciB5b2pzb24gPVxuICBsZXQgbXNnID1cbiAgICBzcHJpbnRmXG4gICAgICBcIiVzX29mX3lvanNvbjogcG9seW1vcnBoaWMgdmFyaWFudCB0YWcgJVMgaGFzIGluY29ycmVjdCBudW1iZXIgb2YgYXJndW1lbnRzXCJcbiAgICAgIGxvY1xuICAgICAgY25zdHJcbiAgaW5cbiAgb2ZfeW9qc29uX2Vycm9yIG1zZyB5b2pzb25cbjs7XG5cbmxldCBwdGFnX3Rha2VzX2FyZ3MgbG9jIHlvanNvbiA9XG4gIG9mX3lvanNvbl9lcnJvciAobG9jIF4gXCJfb2ZfeW9qc29uOiBwb2x5bW9ycGhpYyB2YXJpYW50IHRhZyB0YWtlcyBhbiBhcmd1bWVudFwiKSB5b2pzb25cbjs7XG5cbmxldCBuZXN0ZWRfbGlzdF9pbnZhbGlkX3BvbHlfdmFyIGxvYyB5b2pzb24gPVxuICBvZl95b2pzb25fZXJyb3JcbiAgICAobG9jIF4gXCJfb2ZfeW9qc29uOiBhIG5lc3RlZCBsaXN0IGlzIGFuIGludmFsaWQgcG9seW1vcnBoaWMgdmFyaWFudFwiKVxuICAgIHlvanNvblxuOztcblxubGV0IGVtcHR5X2xpc3RfaW52YWxpZF9wb2x5X3ZhciBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yXG4gICAgKGxvYyBeIFwiX29mX3lvanNvbjogdGhlIGVtcHR5IGxpc3QgaXMgYW4gaW52YWxpZCBwb2x5bW9ycGhpYyB2YXJpYW50XCIpXG4gICAgeW9qc29uXG47O1xuXG5sZXQgZW1wdHlfdHlwZSBsb2MgeW9qc29uID1cbiAgb2ZfeW9qc29uX2Vycm9yIChsb2MgXiBcIl9vZl95b2pzb246IHRyeWluZyB0byBjb252ZXJ0IGFuIGVtcHR5IHR5cGVcIikgeW9qc29uXG47O1xuIiwibW9kdWxlIFlvanNvbl9jb252X2Vycm9yID0gWW9qc29uX2NvbnZfZXJyb3Jcbm1vZHVsZSBZb2pzb25fY29udiA9IFlvanNvbl9jb252XG5tb2R1bGUgWW9qc29uYWJsZSA9IFlvanNvbmFibGVfaW50ZlxubW9kdWxlIFlvanNvbiA9IFlvanNvblxuXG5tb2R1bGUgT3B0aW9uID0gc3RydWN0XG4gIHR5cGUgJ2EgdCA9ICdhIG9wdGlvbiA9XG4gICAgfCBOb25lXG4gICAgfCBTb21lIG9mICdhXG5lbmRcblxuZXh0ZXJuYWwgaWdub3JlIDogXyAtPiB1bml0ID0gXCIlaWdub3JlXCJcbmV4dGVybmFsIHBvbHlfZXF1YWwgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlZXF1YWxcIlxuXG5sZXQgKCAhICkgOiAnYSByZWYgLT4gJ2EgPSBmdW4geCAtPiAheFxuIiwiKCogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIENhdGFsYSBjb21waWxlciwgYSBzcGVjaWZpY2F0aW9uIGxhbmd1YWdlIGZvciB0YXhcbiAgIGFuZCBzb2NpYWwgYmVuZWZpdHMgY29tcHV0YXRpb24gcnVsZXMuIENvcHlyaWdodCAoQykgMjAyMCBJbnJpYSwgY29udHJpYnV0b3I6XG4gICBEZW5pcyBNZXJpZ291eCA8ZGVuaXMubWVyaWdvdXhAaW5yaWEuZnI+LCBFbWlsZSBSb2xsZXkgPGVtaWxlLnJvbGxleUB0dXRhLmlvPlxuXG4gICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICAgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAgIHRoZSBMaWNlbnNlIGF0XG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZVxuICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXJcbiAgIHRoZSBMaWNlbnNlLiAqKVxuXG4oKiBBbiBpbnRlZ2VyIG51bWJlciBvZiBjZW50cyAqKVxudHlwZSBtb25leSA9IFoudFxudHlwZSBpbnRlZ2VyID0gWi50XG50eXBlIGRlY2ltYWwgPSBRLnRcbnR5cGUgZGF0ZSA9IERhdGVzX2NhbGMuRGF0ZXMuZGF0ZVxudHlwZSBkYXRlX3JvdW5kaW5nID0gRGF0ZXNfY2FsYy5EYXRlcy5kYXRlX3JvdW5kaW5nXG50eXBlIGR1cmF0aW9uID0gRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RcbnR5cGUgJ2EgZW9wdGlvbiA9IEVOb25lIG9mIHVuaXQgfCBFU29tZSBvZiAnYVxuXG50eXBlIHNvdXJjZV9wb3NpdGlvbiA9IHtcbiAgZmlsZW5hbWUgOiBzdHJpbmc7XG4gIHN0YXJ0X2xpbmUgOiBpbnQ7XG4gIHN0YXJ0X2NvbHVtbiA6IGludDtcbiAgZW5kX2xpbmUgOiBpbnQ7XG4gIGVuZF9jb2x1bW4gOiBpbnQ7XG4gIGxhd19oZWFkaW5ncyA6IHN0cmluZyBsaXN0O1xufVxuW0BAZGVyaXZpbmcgeW9qc29uX29mXVxuXG5leGNlcHRpb24gRW1wdHlFcnJvclxuZXhjZXB0aW9uIEFzc2VydGlvbkZhaWxlZCBvZiBzb3VyY2VfcG9zaXRpb25cbmV4Y2VwdGlvbiBDb25mbGljdEVycm9yIG9mIHNvdXJjZV9wb3NpdGlvblxuZXhjZXB0aW9uIFVuY29tcGFyYWJsZUR1cmF0aW9uc1xuZXhjZXB0aW9uIEluZGl2aXNpYmxlRHVyYXRpb25zXG5leGNlcHRpb24gSW1wb3NzaWJsZURhdGVcbmV4Y2VwdGlvbiBOb1ZhbHVlUHJvdmlkZWQgb2Ygc291cmNlX3Bvc2l0aW9uXG5cbmxldCBtb25leV9vZl9jZW50c19zdHJpbmcgKGNlbnRzIDogc3RyaW5nKSA6IG1vbmV5ID0gWi5vZl9zdHJpbmcgY2VudHNcbmxldCBtb25leV9vZl91bml0c19pbnQgKHVuaXRzIDogaW50KSA6IG1vbmV5ID0gWi4ob2ZfaW50IHVuaXRzICogb2ZfaW50IDEwMClcbmxldCBtb25leV9vZl9jZW50c19pbnRlZ2VyIChjZW50cyA6IGludGVnZXIpIDogbW9uZXkgPSBjZW50c1xubGV0IG1vbmV5X3RvX2Zsb2F0IChtIDogbW9uZXkpIDogZmxvYXQgPSBaLnRvX2Zsb2F0IG0gLy4gMTAwLlxuXG5sZXQgbW9uZXlfb2ZfZGVjaW1hbCAoZCA6IGRlY2ltYWwpIDogbW9uZXkgPVxuICBRLnRvX2JpZ2ludCAoUS5tdWwgZCAoUS5vZl9pbnQgMTAwKSlcblxubGV0IG1vbmV5X3RvX3N0cmluZyAobSA6IG1vbmV5KSA6IHN0cmluZyA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiUuMmZcIiBRLih0b19mbG9hdCAob2ZfYmlnaW50IG0gLyBvZl9pbnQgMTAwKSlcblxubGV0IG1vbmV5X3RvX2NlbnRzIG0gPSBtXG5cbmxldCBtb25leV9yb3VuZCAobSA6IG1vbmV5KSA6IG1vbmV5ID1cbiAgbGV0IHVuaXRzLCBjZW50cyA9IFouZGl2X3JlbSBtIChaLm9mX2ludCAxMDApIGluXG4gICgqIElmIFttXSBpcyBuZWdhdGl2ZSwgW2NlbnRzXSB3aWxsIGFsc28gYmUgbmVnYXRpdmUuICopXG4gIGlmIFouKGFicyBjZW50cyA8IG9mX2ludCA1MCkgdGhlbiBaLih1bml0cyAqIG9mX2ludCAxMDApXG4gIGVsc2UgWi4oKHVuaXRzICsgb2ZfaW50IChzaWduIHVuaXRzKSkgKiBvZl9pbnQgMTAwKVxuXG5sZXQgZGVjaW1hbF9vZl9zdHJpbmcgKGQgOiBzdHJpbmcpIDogZGVjaW1hbCA9IFEub2Zfc3RyaW5nIGRcbmxldCBkZWNpbWFsX3RvX2Zsb2F0IChkIDogZGVjaW1hbCkgOiBmbG9hdCA9IFEudG9fZmxvYXQgZFxubGV0IGRlY2ltYWxfb2ZfZmxvYXQgKGQgOiBmbG9hdCkgOiBkZWNpbWFsID0gUS5vZl9mbG9hdCBkXG5sZXQgZGVjaW1hbF9vZl9pbnRlZ2VyIChkIDogaW50ZWdlcikgOiBkZWNpbWFsID0gUS5vZl9iaWdpbnQgZFxuXG5sZXQgZGVjaW1hbF90b19zdHJpbmcgfihtYXhfcHJlY19kaWdpdHMgOiBpbnQpIChpIDogZGVjaW1hbCkgOiBzdHJpbmcgPVxuICBsZXQgc2lnbiA9IFEuc2lnbiBpIGluXG4gIGxldCBuID0gWi5hYnMgKFEubnVtIGkpIGluXG4gIGxldCBkID0gWi5hYnMgKFEuZGVuIGkpIGluXG4gIGxldCBpbnRfcGFydCA9IFouZWRpdiBuIGQgaW5cbiAgbGV0IG4gPSByZWYgKFouZXJlbSBuIGQpIGluXG4gIGxldCBkaWdpdHMgPSByZWYgW10gaW5cbiAgbGV0IGxlYWRpbmdfemVyb2VzIChkaWdpdHMgOiBaLnQgbGlzdCkgOiBpbnQgPVxuICAgIG1hdGNoXG4gICAgICBMaXN0LmZvbGRfcmlnaHRcbiAgICAgICAgKGZ1biBkaWdpdCBudW1fbGVhZGluZ196ZXJvZXMgLT5cbiAgICAgICAgICBtYXRjaCBudW1fbGVhZGluZ196ZXJvZXMgd2l0aFxuICAgICAgICAgIHwgYEVuZCBfIC0+IG51bV9sZWFkaW5nX3plcm9lc1xuICAgICAgICAgIHwgYEJlZ2luIGkgLT4gaWYgWi4oZGlnaXQgPSB6ZXJvKSB0aGVuIGBCZWdpbiAoaSArIDEpIGVsc2UgYEVuZCBpKVxuICAgICAgICBkaWdpdHMgKGBCZWdpbiAwKVxuICAgIHdpdGhcbiAgICB8IGBFbmQgaSAtPiBpXG4gICAgfCBgQmVnaW4gaSAtPiBpXG4gIGluXG4gIHdoaWxlXG4gICAgIW4gPD4gWi56ZXJvXG4gICAgJiYgTGlzdC5sZW5ndGggIWRpZ2l0cyAtIGxlYWRpbmdfemVyb2VzICFkaWdpdHMgPCBtYXhfcHJlY19kaWdpdHNcbiAgZG9cbiAgICBuIDo9IFoubXVsICFuIChaLm9mX2ludCAxMCk7XG4gICAgZGlnaXRzIDo9IFouZWRpdiAhbiBkIDo6ICFkaWdpdHM7XG4gICAgbiA6PSBaLmVyZW0gIW4gZFxuICBkb25lO1xuICBGb3JtYXQuYXNwcmludGYgXCIlcyVhLiVhJXNcIlxuICAgIChpZiBzaWduIDwgMCB0aGVuIFwiLVwiIGVsc2UgXCJcIilcbiAgICBaLnBwX3ByaW50IGludF9wYXJ0XG4gICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgfnBwX3NlcDooZnVuIF9mbXQgKCkgLT4gKCkpXG4gICAgICAgKGZ1biBmbXQgZGlnaXQgLT4gRm9ybWF0LmZwcmludGYgZm10IFwiJWFcIiBaLnBwX3ByaW50IGRpZ2l0KSlcbiAgICAoTGlzdC5yZXYgIWRpZ2l0cylcbiAgICAoaWYgTGlzdC5sZW5ndGggIWRpZ2l0cyAtIGxlYWRpbmdfemVyb2VzICFkaWdpdHMgPSBtYXhfcHJlY19kaWdpdHMgdGhlbiBcIuKAplwiXG4gICAgZWxzZSBcIlwiKVxuXG5sZXQgZGVjaW1hbF9yb3VuZCAocSA6IGRlY2ltYWwpIDogZGVjaW1hbCA9XG4gICgqIEltcGxlbWVudHMgdGhlIHdvcmthcm91bmQgYnlcbiAgICAgaHR0cHM6Ly9nbXBsaWIub3JnL2xpc3QtYXJjaGl2ZXMvZ21wLWRpc2N1c3MvMjAwOS1NYXkvMDAzNzY3Lmh0bWwgKilcbiAgbGV0IG4gPSBRLm51bSBxIGluXG4gIGxldCBkID0gUS5kZW4gcSBpblxuICBRLm9mX2JpZ2ludCBaLihmZGl2ICgob2ZfaW50IDIgKiBuKSArIGQpIChvZl9pbnQgMiAqIGQpKVxuXG5sZXQgZGVjaW1hbF9vZl9tb25leSAobSA6IG1vbmV5KSA6IGRlY2ltYWwgPVxuICBRLmRpdiAoUS5vZl9iaWdpbnQgbSkgKFEub2ZfaW50IDEwMClcblxubGV0IGludGVnZXJfb2Zfc3RyaW5nIChzIDogc3RyaW5nKSA6IGludGVnZXIgPSBaLm9mX3N0cmluZyBzXG5sZXQgaW50ZWdlcl90b19zdHJpbmcgKGkgOiBpbnRlZ2VyKSA6IHN0cmluZyA9IFoudG9fc3RyaW5nIGlcbmxldCBpbnRlZ2VyX3RvX2ludCAoaSA6IGludGVnZXIpIDogaW50ID0gWi50b19pbnQgaVxubGV0IGludGVnZXJfb2ZfaW50IChpIDogaW50KSA6IGludGVnZXIgPSBaLm9mX2ludCBpXG5sZXQgaW50ZWdlcl9leHBvbmVudGlhdGlvbiAoaSA6IGludGVnZXIpIChlIDogaW50KSA6IGludGVnZXIgPSBaLnBvdyBpIGVcbmxldCBpbnRlZ2VyX2xvZzIgPSBaLmxvZzJcblxubGV0IHllYXJfb2ZfZGF0ZSAoZCA6IGRhdGUpIDogaW50ZWdlciA9XG4gIGxldCB5LCBfLCBfID0gRGF0ZXNfY2FsYy5EYXRlcy5kYXRlX3RvX3ltZCBkIGluXG4gIFoub2ZfaW50IHlcblxubGV0IG1vbnRoX251bWJlcl9vZl9kYXRlIChkIDogZGF0ZSkgOiBpbnRlZ2VyID1cbiAgbGV0IF8sIG0sIF8gPSBEYXRlc19jYWxjLkRhdGVzLmRhdGVfdG9feW1kIGQgaW5cbiAgWi5vZl9pbnQgbVxuXG5sZXQgaXNfbGVhcF95ZWFyICh5IDogaW50ZWdlcikgPVxuICBsZXQgeSA9IFoudG9faW50IHkgaW5cbiAgRGF0ZXNfY2FsYy5EYXRlcy5pc19sZWFwX3llYXIgeVxuXG5sZXQgZGF5X29mX21vbnRoX29mX2RhdGUgKGQgOiBkYXRlKSA6IGludGVnZXIgPVxuICBsZXQgXywgXywgZCA9IERhdGVzX2NhbGMuRGF0ZXMuZGF0ZV90b195bWQgZCBpblxuICBaLm9mX2ludCBkXG5cbmxldCBkYXRlX29mX251bWJlcnMgKHllYXIgOiBpbnQpIChtb250aCA6IGludCkgKGRheSA6IGludCkgOiBkYXRlID1cbiAgdHJ5IERhdGVzX2NhbGMuRGF0ZXMubWFrZV9kYXRlIH55ZWFyIH5tb250aCB+ZGF5XG4gIHdpdGggXyAtPiByYWlzZSBJbXBvc3NpYmxlRGF0ZVxuXG5sZXQgZGF0ZV90b19zdHJpbmcgKGQgOiBkYXRlKSA6IHN0cmluZyA9XG4gIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCIgRGF0ZXNfY2FsYy5EYXRlcy5mb3JtYXRfZGF0ZSBkXG5cbmxldCBmaXJzdF9kYXlfb2ZfbW9udGggPSBEYXRlc19jYWxjLkRhdGVzLmZpcnN0X2RheV9vZl9tb250aFxubGV0IGxhc3RfZGF5X29mX21vbnRoID0gRGF0ZXNfY2FsYy5EYXRlcy5sYXN0X2RheV9vZl9tb250aFxuXG5sZXQgZHVyYXRpb25fb2ZfbnVtYmVycyAoeWVhciA6IGludCkgKG1vbnRoIDogaW50KSAoZGF5IDogaW50KSA6IGR1cmF0aW9uID1cbiAgRGF0ZXNfY2FsYy5EYXRlcy5tYWtlX3BlcmlvZCB+eWVhcnM6eWVhciB+bW9udGhzOm1vbnRoIH5kYXlzOmRheVxuXG5sZXQgZHVyYXRpb25fdG9fc3RyaW5nIChkIDogZHVyYXRpb24pIDogc3RyaW5nID1cbiAgRm9ybWF0LmFzcHJpbnRmIFwiJWFcIiBEYXRlc19jYWxjLkRhdGVzLmZvcm1hdF9wZXJpb2QgZFxuKCogYnJlYWtzIHByZXZpb3VzIGZvcm1hdCAqKVxuKCogbGV0IHgsIHksIHogPSBDYWxlbmRhckxpYi5EYXRlLlBlcmlvZC55bWQgZCBpblxuICogbGV0IHRvX3ByaW50ID1cbiAqICAgTGlzdC5maWx0ZXIgKGZ1biAoYSwgXykgLT4gYSA8PiAwKSBbeCwgXCJ5ZWFyc1wiOyB5LCBcIm1vbnRoc1wiOyB6LCBcImRheXNcIl1cbiAqIGluXG4gKiBtYXRjaCB0b19wcmludCB3aXRoXG4gKiB8IFtdIC0+IFwiZW1wdHkgZHVyYXRpb25cIlxuICogfCBfIC0+XG4gKiAgIEZvcm1hdC5hc3ByaW50ZiBcIiVhXCJcbiAqICAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAqICAgICAgICB+cHBfc2VwOihmdW4gZm10ICgpIC0+IEZvcm1hdC5mcHJpbnRmIGZtdCBcIixAIFwiKVxuICogICAgICAgIChmdW4gZm10IChkLCBsKSAtPiBGb3JtYXQuZnByaW50ZiBmbXQgXCIlZCAlc1wiIGQgbCkpXG4gKiAgICAgdG9fcHJpbnQgKilcblxubGV0IGR1cmF0aW9uX3RvX3llYXJzX21vbnRoc19kYXlzIChkIDogZHVyYXRpb24pIDogaW50ICogaW50ICogaW50ID1cbiAgRGF0ZXNfY2FsYy5EYXRlcy5wZXJpb2RfdG9feW1kcyBkXG5cbmxldCB5b2pzb25fb2ZfbW9uZXkgKG0gOiBtb25leSkgPSBgRmxvYXQgKG1vbmV5X3RvX2Zsb2F0IG0pXG5sZXQgeW9qc29uX29mX2ludGVnZXIgKGkgOiBpbnRlZ2VyKSA9IGBJbnQgKGludGVnZXJfdG9faW50IGkpXG5sZXQgeW9qc29uX29mX2RlY2ltYWwgKGQgOiBkZWNpbWFsKSA9IGBGbG9hdCAoZGVjaW1hbF90b19mbG9hdCBkKVxubGV0IHlvanNvbl9vZl9kYXRlIChkIDogZGF0ZSkgPSBgU3RyaW5nIChkYXRlX3RvX3N0cmluZyBkKVxubGV0IHlvanNvbl9vZl9kdXJhdGlvbiAoZCA6IGR1cmF0aW9uKSA9IGBTdHJpbmcgKGR1cmF0aW9uX3RvX3N0cmluZyBkKVxuXG50eXBlIHJ1bnRpbWVfdmFsdWUgPVxuICB8IFVuaXRcbiAgfCBCb29sIG9mIGJvb2xcbiAgfCBNb25leSBvZiBtb25leVxuICB8IEludGVnZXIgb2YgaW50ZWdlclxuICB8IERlY2ltYWwgb2YgZGVjaW1hbFxuICB8IERhdGUgb2YgZGF0ZVxuICB8IER1cmF0aW9uIG9mIGR1cmF0aW9uXG4gIHwgRW51bSBvZiBzdHJpbmcgbGlzdCAqIChzdHJpbmcgKiBydW50aW1lX3ZhbHVlKVxuICB8IFN0cnVjdCBvZiBzdHJpbmcgbGlzdCAqIChzdHJpbmcgKiBydW50aW1lX3ZhbHVlKSBsaXN0XG4gIHwgQXJyYXkgb2YgcnVudGltZV92YWx1ZSBhcnJheVxuICB8IFVuZW1iZWRkYWJsZVxuW0BAZGVyaXZpbmcgeW9qc29uX29mXVxuXG5sZXQgdW5lbWJlZGRhYmxlIF8gPSBVbmVtYmVkZGFibGVcbmxldCBlbWJlZF91bml0ICgpID0gVW5pdFxubGV0IGVtYmVkX2Jvb2wgeCA9IEJvb2wgeFxubGV0IGVtYmVkX21vbmV5IHggPSBNb25leSB4XG5sZXQgZW1iZWRfaW50ZWdlciB4ID0gSW50ZWdlciB4XG5sZXQgZW1iZWRfZGVjaW1hbCB4ID0gRGVjaW1hbCB4XG5sZXQgZW1iZWRfZGF0ZSB4ID0gRGF0ZSB4XG5sZXQgZW1iZWRfZHVyYXRpb24geCA9IER1cmF0aW9uIHhcbmxldCBlbWJlZF9hcnJheSBmIHggPSBBcnJheSAoQXJyYXkubWFwIGYgeClcblxudHlwZSBpbmZvcm1hdGlvbiA9IHN0cmluZyBsaXN0IFtAQGRlcml2aW5nIHlvanNvbl9vZl1cblxudHlwZSByYXdfZXZlbnQgPVxuICB8IEJlZ2luQ2FsbCBvZiBpbmZvcm1hdGlvblxuICB8IEVuZENhbGwgb2YgaW5mb3JtYXRpb25cbiAgfCBWYXJpYWJsZURlZmluaXRpb24gb2YgaW5mb3JtYXRpb24gKiBydW50aW1lX3ZhbHVlXG4gIHwgRGVjaXNpb25UYWtlbiBvZiBzb3VyY2VfcG9zaXRpb25cblxudHlwZSBldmVudCA9XG4gIHwgVmFyQ29tcHV0YXRpb24gb2YgdmFyX2RlZlxuICB8IEZ1bkNhbGwgb2YgZnVuX2NhbGxcbiAgfCBTdWJTY29wZUNhbGwgb2Yge1xuICAgICAgbmFtZSA6IGluZm9ybWF0aW9uO1xuICAgICAgaW5wdXRzIDogdmFyX2RlZiBsaXN0O1xuICAgICAgYm9keSA6IGV2ZW50IGxpc3Q7XG4gICAgfVxuW0BAZGVyaXZpbmcgeW9qc29uX29mXVxuXG5hbmQgdmFyX2RlZiA9IHtcbiAgcG9zIDogc291cmNlX3Bvc2l0aW9uIG9wdGlvbjtcbiAgbmFtZSA6IGluZm9ybWF0aW9uO1xuICB2YWx1ZSA6IHJ1bnRpbWVfdmFsdWU7XG4gIGZ1bl9jYWxscyA6IGZ1bl9jYWxsIGxpc3Qgb3B0aW9uO1xufVxuXG5hbmQgZnVuX2NhbGwgPSB7XG4gIGZ1bl9uYW1lIDogaW5mb3JtYXRpb247XG4gIGZ1bl9pbnB1dHMgOiB2YXJfZGVmIGxpc3Q7XG4gIGJvZHkgOiBldmVudCBsaXN0O1xuICBvdXRwdXQgOiB2YXJfZGVmO1xufVxuXG5sZXQgbG9nX3JlZiA6IHJhd19ldmVudCBsaXN0IHJlZiA9IHJlZiBbXVxubGV0IHJlc2V0X2xvZyAoKSA9IGxvZ19yZWYgOj0gW11cbmxldCByZXRyaWV2ZV9sb2cgKCkgPSBMaXN0LnJldiAhbG9nX3JlZlxuXG5sZXQgbG9nX2JlZ2luX2NhbGwgaW5mbyBmID1cbiAgbG9nX3JlZiA6PSBCZWdpbkNhbGwgaW5mbyA6OiAhbG9nX3JlZjtcbiAgZlxuXG5sZXQgbG9nX2VuZF9jYWxsIGluZm8geCA9XG4gIGxvZ19yZWYgOj0gRW5kQ2FsbCBpbmZvIDo6ICFsb2dfcmVmO1xuICB4XG5cbmxldCBsb2dfdmFyaWFibGVfZGVmaW5pdGlvbiAoaW5mbyA6IHN0cmluZyBsaXN0KSBlbWJlZCAoeCA6ICdhKSA9XG4gIGxvZ19yZWYgOj0gVmFyaWFibGVEZWZpbml0aW9uIChpbmZvLCBlbWJlZCB4KSA6OiAhbG9nX3JlZjtcbiAgeFxuXG5sZXQgbG9nX2RlY2lzaW9uX3Rha2VuIHBvcyB4ID1cbiAgaWYgeCB0aGVuIGxvZ19yZWYgOj0gRGVjaXNpb25UYWtlbiBwb3MgOjogIWxvZ19yZWY7XG4gIHhcblxubGV0IHJlYyBwcF9ldmVudHMgPyhpc19maXJzdF9jYWxsID0gdHJ1ZSkgcHBmIGV2ZW50cyA9XG4gIGxldCByZWMgZm9ybWF0X3Zhcl9kZWYgcHBmIHZhciA9XG4gICAgRm9ybWF0LmZwcmludGYgcHBmIFwiQFs8aG92IDI+PHZhcl9kZWYgYXQgJWE+QCAlczpAICVhQF1cIiBmb3JtYXRfcG9zX29wdFxuICAgICAgdmFyLnBvc1xuICAgICAgKFN0cmluZy5jb25jYXQgXCIuXCIgdmFyLm5hbWUpXG4gICAgICBmb3JtYXRfdmFsdWUgdmFyLnZhbHVlXG4gIGFuZCBmb3JtYXRfcG9zX29wdCBwcGYgPSBmdW5jdGlvblxuICAgIHwgTm9uZSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJub19wb3NcIlxuICAgIHwgU29tZSBwb3MgLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVzIGxpbmUgJWQgdG8gJWRcIiBwb3MuZmlsZW5hbWUgcG9zLnN0YXJ0X2xpbmVcbiAgICAgICAgcG9zLmVuZF9saW5lXG4gIGFuZCBmb3JtYXRfdmFyX2RlZnMgcHBmID1cbiAgICBGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgfnBwX3NlcDooZnVuIHBwZiAoKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCJAIFwiKVxuICAgICAgZm9ybWF0X3Zhcl9kZWYgcHBmXG4gIGFuZCBmb3JtYXRfdmFyX2RlZl93aXRoX2Z1bl9jYWxscyBwcGYgdmFyX3dpdGhfZnVuID1cbiAgICBtYXRjaCB2YXJfd2l0aF9mdW4uZnVuX2NhbGxzIHdpdGhcbiAgICB8IE5vbmUgfCBTb21lIFtdIC0+IGZvcm1hdF92YXJfZGVmIHBwZiB2YXJfd2l0aF9mdW5cbiAgICB8IFNvbWUgZnVuX2NhbGxzIC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGZcbiAgICAgICAgXCJAWzxob3YgMj48dmFyX2RlZl93aXRoX2Z1bj5AICVzOiAlYUAgY29tcHV0ZWQgZnJvbUAgOkAgQFs8aHYgMj5bQCAlYUA7XFxcbiAgICAgICAgIDwxIC0yPl1AXSBAXVwiXG4gICAgICAgIChTdHJpbmcuY29uY2F0IFwiLlwiIHZhcl93aXRoX2Z1bi5uYW1lKVxuICAgICAgICBmb3JtYXRfdmFsdWUgdmFyX3dpdGhfZnVuLnZhbHVlXG4gICAgICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgICAgICB+cHBfc2VwOihmdW4gcHBmICgpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIixAIFwiKVxuICAgICAgICAgICAoZnVuIHBwZiBmdW5fY2FsbCAtPiBmb3JtYXRfZXZlbnQgcHBmIChGdW5DYWxsIGZ1bl9jYWxsKSkpXG4gICAgICAgIGZ1bl9jYWxsc1xuICBhbmQgZm9ybWF0X3ZhbHVlIHBwZiA9IGZ1bmN0aW9uXG4gICAgfCBVbmVtYmVkZGFibGUgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiZnVuXCJcbiAgICB8IFVuaXQgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiKClcIlxuICAgIHwgQm9vbCB4IC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiViXCIgeFxuICAgIHwgTW9uZXkgeCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlc+KCrFwiIChtb25leV90b19zdHJpbmcgeClcbiAgICB8IEludGVnZXIgeCAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCIlZFwiIChpbnRlZ2VyX3RvX2ludCB4KVxuICAgIHwgRGVjaW1hbCB4IC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCIlc1wiIChkZWNpbWFsX3RvX3N0cmluZyB+bWF4X3ByZWNfZGlnaXRzOjEwIHgpXG4gICAgfCBEYXRlIHggLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJXNcIiAoZGF0ZV90b19zdHJpbmcgeClcbiAgICB8IER1cmF0aW9uIHggLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJXNcIiAoZHVyYXRpb25fdG9fc3RyaW5nIHgpXG4gICAgfCBFbnVtIChfLCAobmFtZSwgXykpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIiVzXCIgbmFtZVxuICAgIHwgU3RydWN0IChuYW1lLCBhdHRycykgLT5cbiAgICAgIEZvcm1hdC5mcHJpbnRmIHBwZiBcIkBbPGh2IDI+JXMgPSB7QCAlYUA7PDEgLTI+fUBdXCJcbiAgICAgICAgKFN0cmluZy5jb25jYXQgXCIuXCIgbmFtZSlcbiAgICAgICAgKEZvcm1hdC5wcF9wcmludF9saXN0XG4gICAgICAgICAgIH5wcF9zZXA6KGZ1biBwcGYgKCkgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiLEAsXCIpXG4gICAgICAgICAgIChmdW4gZm10IChuYW1lLCB2YWx1ZSkgLT5cbiAgICAgICAgICAgICBGb3JtYXQuZnByaW50ZiBmbXQgXCIlczogJWFcIiBuYW1lIGZvcm1hdF92YWx1ZSB2YWx1ZSkpXG4gICAgICAgIGF0dHJzXG4gICAgfCBBcnJheSBlbHRzIC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCJAWzxodiAyPltAICVhQDs8MSAtMj5dQF1cIlxuICAgICAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICAgICAgfnBwX3NlcDooZnVuIHBwZiAoKSAtPiBGb3JtYXQuZnByaW50ZiBwcGYgXCI7QCBcIilcbiAgICAgICAgICAgZm9ybWF0X3ZhbHVlKVxuICAgICAgICAoZWx0cyB8PiBBcnJheS50b19saXN0KVxuICBhbmQgZm9ybWF0X2V2ZW50IHBwZiA9IGZ1bmN0aW9uXG4gICAgfCBWYXJDb21wdXRhdGlvbiB2YXJfZGVmX3dpdGhfZnVuXG4gICAgICB3aGVuIE9wdGlvbi5pc19zb21lIHZhcl9kZWZfd2l0aF9mdW4uZnVuX2NhbGxzIC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGYgXCIlYVwiIGZvcm1hdF92YXJfZGVmX3dpdGhfZnVuX2NhbGxzIHZhcl9kZWZfd2l0aF9mdW5cbiAgICB8IFZhckNvbXB1dGF0aW9uIHZhcl9kZWYgLT4gRm9ybWF0LmZwcmludGYgcHBmIFwiJWFcIiBmb3JtYXRfdmFyX2RlZiB2YXJfZGVmXG4gICAgfCBGdW5DYWxsIHsgZnVuX25hbWU7IGZ1bl9pbnB1dHM7IGJvZHk7IG91dHB1dCB9IC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGZcbiAgICAgICAgXCJAWzxob3YgMT48ZnVuY3Rpb25fY2FsbD5AICVzIDo9QCB7QFs8aHYgMT5AIGlucHV0OkAgJWEsQCBvdXRwdXQ6QCBcXFxuICAgICAgICAgJWEsQCBib2R5OkAgW0AsXFxcbiAgICAgICAgICVhXUBdQCxcXFxuICAgICAgICAgQF1ALFxcXG4gICAgICAgICB9XCJcbiAgICAgICAgKFN0cmluZy5jb25jYXQgXCIuXCIgZnVuX25hbWUpXG4gICAgICAgIChGb3JtYXQucHBfcHJpbnRfbGlzdFxuICAgICAgICAgICB+cHBfc2VwOihmdW4gZm10ICgpIC0+IEZvcm1hdC5wcF9wcmludF9zdHJpbmcgZm10IFwiOyBcIilcbiAgICAgICAgICAgZm9ybWF0X3Zhcl9kZWYpXG4gICAgICAgIGZ1bl9pbnB1dHMgZm9ybWF0X3Zhcl9kZWZfd2l0aF9mdW5fY2FsbHMgb3V0cHV0XG4gICAgICAgIChwcF9ldmVudHMgfmlzX2ZpcnN0X2NhbGw6ZmFsc2UpXG4gICAgICAgIGJvZHlcbiAgICB8IFN1YlNjb3BlQ2FsbCB7IG5hbWU7IGlucHV0czsgYm9keSB9IC0+XG4gICAgICBGb3JtYXQuZnByaW50ZiBwcGZcbiAgICAgICAgXCJAWzxodiAyPjxzdWJzY29wZV9jYWxsPkAgJXMgOj1AIHtAWzxodiAxPkAsXFxcbiAgICAgICAgIGlucHV0czpAIEBbPGh2IDI+W0AsXFxcbiAgICAgICAgICVhQF1dLEAsXFxcbiAgICAgICAgIGJvZHk6QCBAWzxodiAyPltAICVhQCBdQF1AXUBdQCxcXFxuICAgICAgICAgfVwiXG4gICAgICAgIChTdHJpbmcuY29uY2F0IFwiLlwiIG5hbWUpIGZvcm1hdF92YXJfZGVmcyBpbnB1dHNcbiAgICAgICAgKHBwX2V2ZW50cyB+aXNfZmlyc3RfY2FsbDpmYWxzZSlcbiAgICAgICAgYm9keVxuICBpblxuICBGb3JtYXQuZnByaW50ZiBwcGZcbiAgICAoXCJAWzxodiAxPiVhQF1cIiBeXiBpZiBpc19maXJzdF9jYWxsIHRoZW4gXCJALlwiIGVsc2UgXCJcIilcbiAgICAoRm9ybWF0LnBwX3ByaW50X2xpc3RcbiAgICAgICB+cHBfc2VwOihmdW4gcHBmICgpIC0+IEZvcm1hdC5mcHJpbnRmIHBwZiBcIkAgXCIpXG4gICAgICAgZm9ybWF0X2V2ZW50KVxuICAgIGV2ZW50c1xuXG5tb2R1bGUgRXZlbnRQYXJzZXIgPSBzdHJ1Y3RcbiAgbW9kdWxlIFZhckRlZk1hcCA9IHN0cnVjdFxuICAgIG1vZHVsZSBTdHJpbmdNYXAgPSBNYXAuTWFrZSAoU3RyaW5nKVxuXG4gICAgdHlwZSB0ID0gdmFyX2RlZiBsaXN0IFN0cmluZ01hcC50XG5cbiAgICBsZXQgYWRkIChuYW1lIDogc3RyaW5nKSAodiA6IHZhcl9kZWYpIChtYXAgOiB0KSA6IHQgPVxuICAgICAgbWF0Y2ggU3RyaW5nTWFwLmZpbmRfb3B0IG5hbWUgbWFwIHdpdGhcbiAgICAgIHwgU29tZSBscyAtPiBTdHJpbmdNYXAuYWRkIG5hbWUgKHYgOjogbHMpIG1hcFxuICAgICAgfCBOb25lIC0+IFN0cmluZ01hcC5hZGQgbmFtZSBbdl0gbWFwXG5cbiAgICAoKiogW2dldCBuYW1lIG1hcF0gcmV0dXJucyB0aGUgbGlzdCBvZiBkZWZpbml0aW9ucyBpZiB0aGVyZSBpcyBhXG4gICAgICAgIGNvcnJlc3BvbmRpbmcgZW50cnksIG90aGVyd2lzZSwgcmV0dXJucyBhbiBlbXB0eSBhcnJheS4gKilcbiAgICBsZXQgZ2V0IChuYW1lIDogc3RyaW5nKSAobWFwIDogdCkgOiB2YXJfZGVmIGxpc3QgPVxuICAgICAgbWF0Y2ggU3RyaW5nTWFwLmZpbmRfb3B0IG5hbWUgbWFwIHdpdGggU29tZSBscyAtPiBscyB8IE5vbmUgLT4gW11cblxuICAgIGxldCBlbXB0eSA6IHQgPSBTdHJpbmdNYXAuZW1wdHlcbiAgZW5kXG5cbiAgdHlwZSBjb250ZXh0ID0ge1xuICAgICgqIEtlZXBzIHRyYWNrcyBvZiB0aGUgc3Vic2NvcGUgaW5wdXQgdmFyaWFibGUgZGVmaW5pdGlvbnMuICopXG4gICAgdmFycyA6IFZhckRlZk1hcC50O1xuICAgICgqIEN1cnJlbnQgcGFyc2VkIGV2ZW50cy4gKilcbiAgICBldmVudHMgOiBldmVudCBsaXN0O1xuICAgIHJlc3QgOiByYXdfZXZlbnQgbGlzdDtcbiAgfVxuXG4gIGxldCBlbXB0eV9jdHggPSB7IHZhcnMgPSBWYXJEZWZNYXAuZW1wdHk7IGV2ZW50cyA9IFtdOyByZXN0ID0gW10gfVxuXG4gIGxldCByYXdfZXZlbnRfdG9fc3RyaW5nID0gZnVuY3Rpb25cbiAgICB8IEJlZ2luQ2FsbCBuYW1lIC0+XG4gICAgICBQcmludGYuc3ByaW50ZiBcIkJlZ2luQ2FsbChbIFwiIF4gU3RyaW5nLmNvbmNhdCBcIiwgXCIgbmFtZSBeIFwiIF0pXCJcbiAgICB8IEVuZENhbGwgbmFtZSAtPlxuICAgICAgUHJpbnRmLnNwcmludGYgXCJFbmRDYWxsKFsgXCIgXiBTdHJpbmcuY29uY2F0IFwiLCBcIiBuYW1lIF4gXCIgXSlcIlxuICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCB2YWx1ZSkgLT5cbiAgICAgIFByaW50Zi5zcHJpbnRmIFwiVmFyaWFibGVEZWZpbml0aW9uKFsgJXMgXSwgJXMpXCIgKFN0cmluZy5jb25jYXQgXCIsIFwiIG5hbWUpXG4gICAgICAgICh5b2pzb25fb2ZfcnVudGltZV92YWx1ZSB2YWx1ZSB8PiBZb2pzb24uU2FmZS50b19zdHJpbmcpXG4gICAgfCBEZWNpc2lvblRha2VuIHBvcyAtPlxuICAgICAgUHJpbnRmLnNwcmludGYgXCJEZWNpc2lvblRha2VuKCVzOiVkLiVkLSVkLiVkKVwiIHBvcy5maWxlbmFtZSBwb3Muc3RhcnRfbGluZVxuICAgICAgICBwb3Muc3RhcnRfY29sdW1uIHBvcy5lbmRfbGluZSBwb3MuZW5kX2NvbHVtblxuXG4gICgqKiBbdGFrZXdoaWxlIHAgeHNdIHNwbGl0IHRoZSBsaXN0IFt4c10gYXMgdGhlIGxvbmdlc3QgcHJlZml4IG9mIHRoZSBsaXN0XG4gICAgICBbeHNdIHdoZXJlIGV2ZXJ5IGVsZW1lbnQgW3hdIHNhdGlzZmllcyBbcCB4XSBhbmQgdGhlIHJlc3QuICopXG4gIGxldCByZWMgdGFrZV93aGlsZSAocCA6ICdhIC0+IGJvb2wpIChsIDogJ2EgbGlzdCkgOiAnYSBsaXN0ICogJ2EgbGlzdCA9XG4gICAgbWF0Y2ggbCB3aXRoXG4gICAgfCBbXSAtPiBbXSwgW11cbiAgICB8IGggOjogdCB3aGVuIHAgaCAtPlxuICAgICAgbGV0IHQsIHJlc3QgPSB0YWtlX3doaWxlIHAgdCBpblxuICAgICAgaCA6OiB0LCByZXN0XG4gICAgfCBfIC0+IFtdLCBsXG5cbiAgbGV0IHBhcnNlX3Jhd19ldmVudHMgcmF3X2V2ZW50cyA9XG4gICAgbGV0IG5iX3Jhd19ldmVudHMgPSBMaXN0Lmxlbmd0aCByYXdfZXZlbnRzXG4gICAgYW5kIGlzX2Z1bmN0aW9uX2NhbGwgaW5mb3MgPSAyID0gTGlzdC5sZW5ndGggaW5mb3NcbiAgICBhbmQgaXNfc3Vic2NvcGVfY2FsbCBpbmZvcyA9IDMgPSBMaXN0Lmxlbmd0aCBpbmZvc1xuICAgIGFuZCBpc192YXJfZGVmIG5hbWUgPSAyID0gTGlzdC5sZW5ndGggbmFtZVxuICAgIGFuZCBpc19vdXRwdXRfdmFyX2RlZiBuYW1lID1cbiAgICAgIDMgPSBMaXN0Lmxlbmd0aCBuYW1lICYmIFwib3V0cHV0XCIgPSBMaXN0Lm50aCBuYW1lIDJcbiAgICBhbmQgaXNfaW5wdXRfdmFyX2RlZiBuYW1lID1cbiAgICAgIDMgPSBMaXN0Lmxlbmd0aCBuYW1lXG4gICAgICAmJiBTdHJpbmcuc3RhcnRzX3dpdGggfnByZWZpeDpcImlucHV0XCIgKExpc3QubnRoIG5hbWUgMilcbiAgICBhbmQgaXNfc3Vic2NvcGVfaW5wdXRfdmFyX2RlZiBuYW1lID1cbiAgICAgIDIgPSBMaXN0Lmxlbmd0aCBuYW1lICYmIFN0cmluZy5jb250YWlucyAoTGlzdC5udGggbmFtZSAxKSAnLidcbiAgICBpblxuICAgIGxldCByZWMgcGFyc2VfZXZlbnRzIChjdHggOiBjb250ZXh0KSA6IGNvbnRleHQgPVxuICAgICAgbWF0Y2ggY3R4LnJlc3Qgd2l0aFxuICAgICAgfCBbXSAtPiB7IGN0eCB3aXRoIGV2ZW50cyA9IGN0eC5ldmVudHMgfD4gTGlzdC5yZXYgfVxuICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIF8pIDo6IHJlc3Qgd2hlbiBpc192YXJfZGVmIG5hbWUgLT5cbiAgICAgICAgKCogVmFyaWFibGVEZWZpbml0aW9uIHdpdGhvdXQgcG9zaXRpb24gY29ycmVzcG9uZHMgdG8gYSBmdW5jdGlvblxuICAgICAgICAgICBkZWZpbml0aW9uIHdoaWNoIGFyZSBpZ25vcmVkIGZvciBub3cgaW4gc3RydWN0dXJlZCBldmVudHMuICopXG4gICAgICAgIHBhcnNlX2V2ZW50cyB7IGN0eCB3aXRoIHJlc3QgfVxuICAgICAgfCBEZWNpc2lvblRha2VuIHBvcyA6OiBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIHZhbHVlKSA6OiByZXN0XG4gICAgICAgIHdoZW4gaXNfc3Vic2NvcGVfaW5wdXRfdmFyX2RlZiBuYW1lIC0+IChcbiAgICAgICAgbWF0Y2ggbmFtZSB3aXRoXG4gICAgICAgIHwgW187IHZhcl9kb3Rfc3Vic2NvcGVfdmFyX25hbWVdIC0+XG4gICAgICAgICAgbGV0IHZhcl9uYW1lID1cbiAgICAgICAgICAgIExpc3QubnRoIChTdHJpbmcuc3BsaXRfb25fY2hhciAnLicgdmFyX2RvdF9zdWJzY29wZV92YXJfbmFtZSkgMFxuICAgICAgICAgIGluXG4gICAgICAgICAgcGFyc2VfZXZlbnRzXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGN0eCB3aXRoXG4gICAgICAgICAgICAgIHZhcnMgPVxuICAgICAgICAgICAgICAgIGN0eC52YXJzXG4gICAgICAgICAgICAgICAgfD4gVmFyRGVmTWFwLmFkZCB2YXJfbmFtZVxuICAgICAgICAgICAgICAgICAgICAgeyBwb3MgPSBTb21lIHBvczsgbmFtZTsgdmFsdWU7IGZ1bl9jYWxscyA9IE5vbmUgfTtcbiAgICAgICAgICAgICAgcmVzdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfCBfIC0+XG4gICAgICAgICAgZmFpbHdpdGggXCJ1bnJlYWNoYWJsZSBkdWUgdG8gdGhlIFtpc19zdWJzY29wZV9pbnB1dF92YXJfZGVmXSB0ZXN0XCIpXG4gICAgICB8IERlY2lzaW9uVGFrZW4gcG9zIDo6IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgdmFsdWUpIDo6IHJlc3RcbiAgICAgICAgd2hlbiBpc192YXJfZGVmIG5hbWUgfHwgaXNfb3V0cHV0X3Zhcl9kZWYgbmFtZSAtPlxuICAgICAgICBwYXJzZV9ldmVudHNcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjdHggd2l0aFxuICAgICAgICAgICAgZXZlbnRzID1cbiAgICAgICAgICAgICAgVmFyQ29tcHV0YXRpb24geyBwb3MgPSBTb21lIHBvczsgbmFtZTsgdmFsdWU7IGZ1bl9jYWxscyA9IE5vbmUgfVxuICAgICAgICAgICAgICA6OiBjdHguZXZlbnRzO1xuICAgICAgICAgICAgcmVzdDtcbiAgICAgICAgICB9XG4gICAgICB8IERlY2lzaW9uVGFrZW4gcG9zIDo6IFZhcmlhYmxlRGVmaW5pdGlvbiBfIDo6IEJlZ2luQ2FsbCBpbmZvcyA6OiBfXG4gICAgICAgIHdoZW4gaXNfZnVuY3Rpb25fY2FsbCBpbmZvcyAtPlxuICAgICAgICAoKiBWYXJpYWJsZSBkZWZpbml0aW9uIHdpdGggZnVuY3Rpb24gY2FsbHMuICopXG4gICAgICAgIGxldCByZWMgcGFyc2VfZnVuX2NhbGxzIGZ1bl9jYWxscyByYXdfZXZlbnRzID1cbiAgICAgICAgICBtYXRjaFxuICAgICAgICAgICAgdGFrZV93aGlsZVxuICAgICAgICAgICAgICAoZnVuY3Rpb24gVmFyaWFibGVEZWZpbml0aW9uIF8gLT4gdHJ1ZSB8IF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgIHJhd19ldmVudHNcbiAgICAgICAgICB3aXRoXG4gICAgICAgICAgfCBfLCBCZWdpbkNhbGwgaW5mb3MgOjogXyB3aGVuIGlzX2Z1bmN0aW9uX2NhbGwgaW5mb3MgLT5cbiAgICAgICAgICAgIGxldCByZXN0LCBmdW5fY2FsbCA9IHBhcnNlX2Z1bl9jYWxsIHJhd19ldmVudHMgaW5cbiAgICAgICAgICAgIHBhcnNlX2Z1bl9jYWxscyAoZnVuX2NhbGwgOjogZnVuX2NhbGxzKSByZXN0XG4gICAgICAgICAgfCBfIC0+IHJhd19ldmVudHMsIGZ1bl9jYWxscyB8PiBMaXN0LnJldlxuICAgICAgICBpblxuICAgICAgICBsZXQgcmVzdCwgdmFyX2NvbXAgPVxuICAgICAgICAgIGxldCByZXN0LCBmdW5fY2FsbHMgPSBwYXJzZV9mdW5fY2FsbHMgW10gKExpc3QudGwgY3R4LnJlc3QpIGluXG4gICAgICAgICAgbWF0Y2ggcmVzdCB3aXRoXG4gICAgICAgICAgfCBWYXJpYWJsZURlZmluaXRpb24gKG5hbWUsIHZhbHVlKSA6OiByZXN0IC0+XG4gICAgICAgICAgICAoIHJlc3QsXG4gICAgICAgICAgICAgIFZhckNvbXB1dGF0aW9uXG4gICAgICAgICAgICAgICAgeyBwb3MgPSBTb21lIHBvczsgbmFtZTsgdmFsdWU7IGZ1bl9jYWxscyA9IFNvbWUgZnVuX2NhbGxzIH0gKVxuICAgICAgICAgIHwgZXZlbnQgOjogXyAtPlxuICAgICAgICAgICAgZmFpbHdpdGhcbiAgICAgICAgICAgICAgKFwiSW52YWxpZCBmdW5jdGlvbiBjYWxsIChbIFwiXG4gICAgICAgICAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIiwgXCIgaW5mb3NcbiAgICAgICAgICAgICAgXiBcIiBdKTogZXhwZWN0ZWQgdmFyaWFibGUgZGVmaW5pdGlvbiAoZnVuY3Rpb24gb3V0cHV0KSwgZm91bmQ6IFwiXG4gICAgICAgICAgICAgIF4gcmF3X2V2ZW50X3RvX3N0cmluZyBldmVudFxuICAgICAgICAgICAgICBeIFwiW1wiXG4gICAgICAgICAgICAgIF4gKG5iX3Jhd19ldmVudHMgLSBMaXN0Lmxlbmd0aCByZXN0ICsgMSB8PiBzdHJpbmdfb2ZfaW50KVxuICAgICAgICAgICAgICBeIFwiXVwiKVxuICAgICAgICAgIHwgW10gLT5cbiAgICAgICAgICAgIGZhaWx3aXRoXG4gICAgICAgICAgICAgIChcIkludmFsaWQgZnVuY3Rpb24gY2FsbCAoWyBcIlxuICAgICAgICAgICAgICBeIFN0cmluZy5jb25jYXQgXCIsIFwiIGluZm9zXG4gICAgICAgICAgICAgIF4gXCIgXSk6IGV4cGVjdGVkIHZhcmlhYmxlIGRlZmluaXRpb24gKGZ1bmN0aW9uIG91dHB1dCksIGZvdW5kOiBcXFxuICAgICAgICAgICAgICAgICBlbmQgb2YgdG9rZW5zXCIpXG4gICAgICAgIGluXG5cbiAgICAgICAgcGFyc2VfZXZlbnRzIHsgY3R4IHdpdGggZXZlbnRzID0gdmFyX2NvbXAgOjogY3R4LmV2ZW50czsgcmVzdCB9XG4gICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiBfIDo6IEJlZ2luQ2FsbCBpbmZvcyA6OiBfIHdoZW4gaXNfZnVuY3Rpb25fY2FsbCBpbmZvc1xuICAgICAgICAtPlxuICAgICAgICBsZXQgcmVzdCwgZnVuX2NhbGwgPSBwYXJzZV9mdW5fY2FsbCBjdHgucmVzdCBpblxuXG4gICAgICAgIHBhcnNlX2V2ZW50cyB7IGN0eCB3aXRoIGV2ZW50cyA9IEZ1bkNhbGwgZnVuX2NhbGwgOjogY3R4LmV2ZW50czsgcmVzdCB9XG4gICAgICB8IEJlZ2luQ2FsbCBpbmZvcyA6OiByZXN0IHdoZW4gaXNfc3Vic2NvcGVfY2FsbCBpbmZvcyAtPiAoXG4gICAgICAgIG1hdGNoIGluZm9zIHdpdGhcbiAgICAgICAgfCBbXzsgdmFyX25hbWU7IF9dIC0+XG4gICAgICAgICAgbGV0IGJvZHlfY3R4ID0gcGFyc2VfZXZlbnRzIHsgZW1wdHlfY3R4IHdpdGggcmVzdCB9IGluXG4gICAgICAgICAgbGV0IGlucHV0cyA9IFZhckRlZk1hcC5nZXQgdmFyX25hbWUgY3R4LnZhcnMgaW5cbiAgICAgICAgICBwYXJzZV9ldmVudHNcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgY3R4IHdpdGhcbiAgICAgICAgICAgICAgZXZlbnRzID1cbiAgICAgICAgICAgICAgICBTdWJTY29wZUNhbGwgeyBuYW1lID0gaW5mb3M7IGlucHV0czsgYm9keSA9IGJvZHlfY3R4LmV2ZW50cyB9XG4gICAgICAgICAgICAgICAgOjogY3R4LmV2ZW50cztcbiAgICAgICAgICAgICAgcmVzdCA9IGJvZHlfY3R4LnJlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIHwgXyAtPiBmYWlsd2l0aCBcInVucmVhY2hhYmxlIGR1ZSB0byB0aGUgW2lzX3N1YnNjb3BlX2NhbGxdIHRlc3RcIilcbiAgICAgIHwgRW5kQ2FsbCBfIDo6IHJlc3QgLT4geyBjdHggd2l0aCBldmVudHMgPSBjdHguZXZlbnRzIHw+IExpc3QucmV2OyByZXN0IH1cbiAgICAgIHwgZXZlbnQgOjogXyAtPiBmYWlsd2l0aCAoXCJVbmV4cGVjdGVkIGV2ZW50OiBcIiBeIHJhd19ldmVudF90b19zdHJpbmcgZXZlbnQpXG4gICAgYW5kIHBhcnNlX2Z1bl9jYWxsIGV2ZW50cyA9XG4gICAgICBtYXRjaFxuICAgICAgICB0YWtlX3doaWxlXG4gICAgICAgICAgKGZ1bmN0aW9uXG4gICAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiAobmFtZSwgXykgLT4gaXNfaW5wdXRfdmFyX2RlZiBuYW1lIHwgXyAtPiBmYWxzZSlcbiAgICAgICAgICBldmVudHNcbiAgICAgIHdpdGhcbiAgICAgIHwgaW5wdXRzLCBCZWdpbkNhbGwgaW5mb3MgOjogcmVzdCB3aGVuIGlzX2Z1bmN0aW9uX2NhbGwgaW5mb3MgLT5cbiAgICAgICAgbGV0IGZ1bl9pbnB1dHMgPVxuICAgICAgICAgIExpc3RMYWJlbHMubWFwIGlucHV0cyB+ZjooZnVuY3Rpb25cbiAgICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChuYW1lLCB2YWx1ZSkgLT5cbiAgICAgICAgICAgICAgeyBwb3MgPSBOb25lOyBuYW1lOyB2YWx1ZTsgZnVuX2NhbGxzID0gTm9uZSB9XG4gICAgICAgICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlKVxuICAgICAgICBpblxuICAgICAgICBsZXQgcmVzdCwgYm9keSwgb3V0cHV0ID1cbiAgICAgICAgICBsZXQgYm9keV9jdHggPVxuICAgICAgICAgICAgcGFyc2VfZXZlbnRzIHsgdmFycyA9IFZhckRlZk1hcC5lbXB0eTsgZXZlbnRzID0gW107IHJlc3QgfVxuICAgICAgICAgIGluXG4gICAgICAgICAgbGV0IGJvZHlfcmV2ID0gTGlzdC5yZXYgYm9keV9jdHguZXZlbnRzIGluXG4gICAgICAgICAgYm9keV9jdHgucmVzdCwgYm9keV9yZXYgfD4gTGlzdC50bCB8PiBMaXN0LnJldiwgYm9keV9yZXYgfD4gTGlzdC5oZFxuICAgICAgICBpblxuICAgICAgICBsZXQgb3V0cHV0ID1cbiAgICAgICAgICBtYXRjaCBvdXRwdXQgd2l0aFxuICAgICAgICAgIHwgVmFyQ29tcHV0YXRpb24gdmFyX2RlZiAtPiB2YXJfZGVmXG4gICAgICAgICAgfCBfIC0+IGZhaWx3aXRoIFwiTWlzc2luZyBmdW5jdGlvbiBvdXRwdXQgdmFyaWFibGUgZGVmaW5pdGlvbi5cIlxuICAgICAgICBpblxuXG4gICAgICAgIHJlc3QsIHsgZnVuX25hbWUgPSBpbmZvczsgZnVuX2lucHV0czsgYm9keTsgb3V0cHV0IH1cbiAgICAgIHwgXyAtPiBmYWlsd2l0aCBcIkludmFsaWQgc3RhcnQgb2YgZnVuY3Rpb24gY2FsbC5cIlxuICAgIGluXG5cbiAgICBsZXQgY3R4ID1cbiAgICAgIHRyeSBwYXJzZV9ldmVudHMgeyBlbXB0eV9jdHggd2l0aCByZXN0ID0gcmF3X2V2ZW50cyB9XG4gICAgICB3aXRoIEZhaWx1cmUgbXNnIC0+XG4gICAgICAgICgqIFRPRE86IGRpc2N1c3Mgd2hhdCBzaG91bGQgYmUgZG9uZS4gKilcbiAgICAgICAgUHJpbnRmLmVwcmludGYgXCJBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBwYXJzaW5nIHJhdyBldmVudHM6ICVzXFxuXCIgbXNnO1xuICAgICAgICBlbXB0eV9jdHhcbiAgICBpblxuICAgIGN0eC5ldmVudHNcbmVuZFxuXG5sZXQgaGFuZGxlX2RlZmF1bHQgOlxuICAgICAgJ2EuXG4gICAgICBzb3VyY2VfcG9zaXRpb24gLT5cbiAgICAgICh1bml0IC0+ICdhKSBhcnJheSAtPlxuICAgICAgKHVuaXQgLT4gYm9vbCkgLT5cbiAgICAgICh1bml0IC0+ICdhKSAtPlxuICAgICAgJ2EgPVxuIGZ1biBwb3MgZXhjZXB0aW9ucyBqdXN0IGNvbnMgLT5cbiAgbGV0IGV4Y2VwdCA9XG4gICAgQXJyYXkuZm9sZF9sZWZ0XG4gICAgICAoZnVuIGFjYyBleGNlcHQgLT5cbiAgICAgICAgbGV0IG5ld192YWwgPSB0cnkgU29tZSAoZXhjZXB0ICgpKSB3aXRoIEVtcHR5RXJyb3IgLT4gTm9uZSBpblxuICAgICAgICBtYXRjaCBhY2MsIG5ld192YWwgd2l0aFxuICAgICAgICB8IE5vbmUsIF8gLT4gbmV3X3ZhbFxuICAgICAgICB8IFNvbWUgXywgTm9uZSAtPiBhY2NcbiAgICAgICAgfCBTb21lIF8sIFNvbWUgXyAtPiByYWlzZSAoQ29uZmxpY3RFcnJvciBwb3MpKVxuICAgICAgTm9uZSBleGNlcHRpb25zXG4gIGluXG4gIG1hdGNoIGV4Y2VwdCB3aXRoXG4gIHwgU29tZSB4IC0+IHhcbiAgfCBOb25lIC0+IGlmIGp1c3QgKCkgdGhlbiBjb25zICgpIGVsc2UgcmFpc2UgRW1wdHlFcnJvclxuXG5sZXQgaGFuZGxlX2RlZmF1bHRfb3B0XG4gICAgKHBvcyA6IHNvdXJjZV9wb3NpdGlvbilcbiAgICAoZXhjZXB0aW9ucyA6ICdhIGVvcHRpb24gYXJyYXkpXG4gICAgKGp1c3QgOiBib29sIGVvcHRpb24pXG4gICAgKGNvbnMgOiAnYSBlb3B0aW9uKSA6ICdhIGVvcHRpb24gPVxuICBsZXQgZXhjZXB0ID1cbiAgICBBcnJheS5mb2xkX2xlZnRcbiAgICAgIChmdW4gYWNjIGV4Y2VwdCAtPlxuICAgICAgICBtYXRjaCBhY2MsIGV4Y2VwdCB3aXRoXG4gICAgICAgIHwgRU5vbmUgXywgXyAtPiBleGNlcHRcbiAgICAgICAgfCBFU29tZSBfLCBFTm9uZSBfIC0+IGFjY1xuICAgICAgICB8IEVTb21lIF8sIEVTb21lIF8gLT4gcmFpc2UgKENvbmZsaWN0RXJyb3IgcG9zKSlcbiAgICAgIChFTm9uZSAoKSkgZXhjZXB0aW9uc1xuICBpblxuICBtYXRjaCBleGNlcHQgd2l0aFxuICB8IEVTb21lIF8gLT4gZXhjZXB0XG4gIHwgRU5vbmUgXyAtPiAoXG4gICAgbWF0Y2gganVzdCB3aXRoXG4gICAgfCBFU29tZSBiIC0+IGlmIGIgdGhlbiBjb25zIGVsc2UgRU5vbmUgKClcbiAgICB8IEVOb25lIF8gLT4gRU5vbmUgKCkpXG5cbmxldCBub19pbnB1dCA6IHVuaXQgLT4gJ2EgPSBmdW4gXyAtPiByYWlzZSBFbXB0eUVycm9yXG5cbigqIFRPRE86IGFkZCBhIGNvbXBhcmUgYnVpbHQtaW4gdG8gZGF0ZXNfY2FsYy4gQXQgdGhlIG1vbWVudCB0aGlzIGZhaWxzIG9uIGUuZy5cbiAgIFszIG1vbnRocywgNCBtb250aHNdICopXG5sZXQgY29tcGFyZV9wZXJpb2RzIChwMSA6IGR1cmF0aW9uKSAocDIgOiBkdXJhdGlvbikgOiBpbnQgPVxuICB0cnlcbiAgICBsZXQgcDFfZGF5cyA9IERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX2RheXMgcDEgaW5cbiAgICBsZXQgcDJfZGF5cyA9IERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX2RheXMgcDIgaW5cbiAgICBjb21wYXJlIHAxX2RheXMgcDJfZGF5c1xuICB3aXRoIERhdGVzX2NhbGMuRGF0ZXMuQW1iaWd1b3VzQ29tcHV0YXRpb24gLT4gcmFpc2UgVW5jb21wYXJhYmxlRHVyYXRpb25zXG5cbigqIFRPRE86IHNhbWUgaGVyZSwgYWx0aG91Z2ggaXQgd2FzIHR3ZWFrZWQgdG8gbmV2ZXIgZmFpbCBvbiBlcXVhbCBkYXRlcy5cbiAgIENvbXBhcmluZyB0aGUgZGlmZmVyZW5jZSB0byBkdXJhdGlvbl8wIGlzIG5vdCBhIGdvb2QgaWRlYSBiZWNhdXNlIHdlIHN0aWxsXG4gICB3YW50IHRvIGZhaWwgb24gWzEgbW9udGgsIDMwIGRheXNdIHJhdGhlciB0aGFuIHJldHVybiBbZmFsc2VdICopXG5sZXQgZXF1YWxfcGVyaW9kcyAocDEgOiBkdXJhdGlvbikgKHAyIDogZHVyYXRpb24pIDogYm9vbCA9XG4gIHRyeSBEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b19kYXlzIChEYXRlc19jYWxjLkRhdGVzLnN1Yl9wZXJpb2RzIHAxIHAyKSA9IDBcbiAgd2l0aCBEYXRlc19jYWxjLkRhdGVzLkFtYmlndW91c0NvbXB1dGF0aW9uIC0+IHJhaXNlIFVuY29tcGFyYWJsZUR1cmF0aW9uc1xuXG5tb2R1bGUgT3BlciA9IHN0cnVjdFxuICBsZXQgb19ub3QgPSBTdGRsaWIubm90XG4gIGxldCBvX2xlbmd0aCBhID0gWi5vZl9pbnQgKEFycmF5Lmxlbmd0aCBhKVxuICBsZXQgb190b3JhdF9pbnQgPSBkZWNpbWFsX29mX2ludGVnZXJcbiAgbGV0IG9fdG9yYXRfbW9uID0gZGVjaW1hbF9vZl9tb25leVxuICBsZXQgb190b21vbmV5X3JhdCA9IG1vbmV5X29mX2RlY2ltYWxcbiAgbGV0IG9fZ2V0RGF5ID0gZGF5X29mX21vbnRoX29mX2RhdGVcbiAgbGV0IG9fZ2V0TW9udGggPSBtb250aF9udW1iZXJfb2ZfZGF0ZVxuICBsZXQgb19nZXRZZWFyID0geWVhcl9vZl9kYXRlXG4gIGxldCBvX2ZpcnN0RGF5T2ZNb250aCA9IGZpcnN0X2RheV9vZl9tb250aFxuICBsZXQgb19sYXN0RGF5T2ZNb250aCA9IGxhc3RfZGF5X29mX21vbnRoXG4gIGxldCBvX3JvdW5kX21vbiA9IG1vbmV5X3JvdW5kXG4gIGxldCBvX3JvdW5kX3JhdCA9IGRlY2ltYWxfcm91bmRcbiAgbGV0IG9fbWludXNfaW50IGkxID0gWi5zdWIgWi56ZXJvIGkxXG4gIGxldCBvX21pbnVzX3JhdCBpMSA9IFEuc3ViIFEuemVybyBpMVxuICBsZXQgb19taW51c19tb24gbTEgPSBaLnN1YiBaLnplcm8gbTFcbiAgbGV0IG9fbWludXNfZHVyID0gRGF0ZXNfY2FsYy5EYXRlcy5uZWdfcGVyaW9kXG4gIGxldCBvX2FuZCA9ICggJiYgKVxuICBsZXQgb19vciA9ICggfHwgKVxuICBsZXQgb194b3IgOiBib29sIC0+IGJvb2wgLT4gYm9vbCA9ICggPD4gKVxuICBsZXQgb19lcSA9ICggPSApXG4gIGxldCBvX21hcCA9IEFycmF5Lm1hcFxuXG4gIGxldCBvX3JlZHVjZSBmIGRmdCBhID1cbiAgICBsZXQgbGVuID0gQXJyYXkubGVuZ3RoIGEgaW5cbiAgICBpZiBsZW4gPSAwIHRoZW4gZGZ0XG4gICAgZWxzZVxuICAgICAgbGV0IHIgPSByZWYgYS4oMCkgaW5cbiAgICAgIGZvciBpID0gMSB0byBsZW4gLSAxIGRvXG4gICAgICAgIHIgOj0gZiAhciBhLihpKVxuICAgICAgZG9uZTtcbiAgICAgICFyXG5cbiAgbGV0IG9fY29uY2F0ID0gQXJyYXkuYXBwZW5kXG4gIGxldCBvX2ZpbHRlciBmIGEgPSBBcnJheS5vZl9saXN0IChMaXN0LmZpbHRlciBmIChBcnJheS50b19saXN0IGEpKVxuICBsZXQgb19hZGRfaW50X2ludCBpMSBpMiA9IFouYWRkIGkxIGkyXG4gIGxldCBvX2FkZF9yYXRfcmF0IGkxIGkyID0gUS5hZGQgaTEgaTJcbiAgbGV0IG9fYWRkX21vbl9tb24gbTEgbTIgPSBaLmFkZCBtMSBtMlxuICBsZXQgb19hZGRfZGF0X2R1ciByIGRhIGR1ID0gRGF0ZXNfY2FsYy5EYXRlcy5hZGRfZGF0ZXMgfnJvdW5kOnIgZGEgZHVcbiAgbGV0IG9fYWRkX2R1cl9kdXIgPSBEYXRlc19jYWxjLkRhdGVzLmFkZF9wZXJpb2RzXG4gIGxldCBvX3N1Yl9pbnRfaW50IGkxIGkyID0gWi5zdWIgaTEgaTJcbiAgbGV0IG9fc3ViX3JhdF9yYXQgaTEgaTIgPSBRLnN1YiBpMSBpMlxuICBsZXQgb19zdWJfbW9uX21vbiBtMSBtMiA9IFouc3ViIG0xIG0yXG4gIGxldCBvX3N1Yl9kYXRfZGF0ID0gRGF0ZXNfY2FsYy5EYXRlcy5zdWJfZGF0ZXNcbiAgbGV0IG9fc3ViX2RhdF9kdXIgZGF0IGR1ciA9IERhdGVzX2NhbGMuRGF0ZXMuKGFkZF9kYXRlcyBkYXQgKG5lZ19wZXJpb2QgZHVyKSlcbiAgbGV0IG9fc3ViX2R1cl9kdXIgPSBEYXRlc19jYWxjLkRhdGVzLnN1Yl9wZXJpb2RzXG4gIGxldCBvX211bHRfaW50X2ludCBpMSBpMiA9IFoubXVsIGkxIGkyXG4gIGxldCBvX211bHRfcmF0X3JhdCBpMSBpMiA9IFEubXVsIGkxIGkyXG5cbiAgbGV0IG9fbXVsdF9tb25fcmF0IGkxIGkyID1cbiAgICBsZXQgaTFfYWJzID0gWi5hYnMgaTEgaW5cbiAgICBsZXQgaTJfYWJzID0gUS5hYnMgaTIgaW5cbiAgICBsZXQgc2lnbl9pbnQgPSBaLnNpZ24gaTEgKiBRLnNpZ24gaTIgaW5cbiAgICBsZXQgcmF0X3Jlc3VsdCA9IFEubXVsIChRLm9mX2JpZ2ludCBpMV9hYnMpIGkyX2FicyBpblxuICAgIGxldCByZXMsIHJlbWFpbmRlciA9IFouZGl2X3JlbSAoUS5udW0gcmF0X3Jlc3VsdCkgKFEuZGVuIHJhdF9yZXN1bHQpIGluXG4gICAgKCogd2UgcGVyZm9ybSBuZWFyZXN0IHJvdW5kaW5nIHdoZW4gbXVsdGlwbHlpbmcgYW4gYW1vdW50IG9mIG1vbmV5IGJ5IGFcbiAgICAgICBkZWNpbWFsICEqKVxuICAgIGlmIFouKG9mX2ludCAyICogcmVtYWluZGVyID49IFEuZGVuIHJhdF9yZXN1bHQpIHRoZW5cbiAgICAgIFouKGFkZCByZXMgKG9mX2ludCAxKSAqIG9mX2ludCBzaWduX2ludClcbiAgICBlbHNlIFouKHJlcyAqIG9mX2ludCBzaWduX2ludClcblxuICBsZXQgb19tdWx0X2R1cl9pbnQgZCBtID0gRGF0ZXNfY2FsYy5EYXRlcy5tdWxfcGVyaW9kIGQgKFoudG9faW50IG0pXG5cbiAgbGV0IG9fZGl2X2ludF9pbnQgaTEgaTIgPVxuICAgICgqIEl0J3Mgbm90IG9uIHRoZSBvY2FtbGRvYywgYnV0IFEuZGl2IGxpa2VseSBhbHJlYWR5IHJhaXNlcyB0aGlzID8gKilcbiAgICBpZiBaLnplcm8gPSBpMiB0aGVuIHJhaXNlIERpdmlzaW9uX2J5X3plcm9cbiAgICBlbHNlIFEuZGl2IChRLm9mX2JpZ2ludCBpMSkgKFEub2ZfYmlnaW50IGkyKVxuXG4gIGxldCBvX2Rpdl9yYXRfcmF0IGkxIGkyID1cbiAgICBpZiBRLnplcm8gPSBpMiB0aGVuIHJhaXNlIERpdmlzaW9uX2J5X3plcm8gZWxzZSBRLmRpdiBpMSBpMlxuXG4gIGxldCBvX2Rpdl9tb25fbW9uIG0xIG0yID1cbiAgICBpZiBaLnplcm8gPSBtMiB0aGVuIHJhaXNlIERpdmlzaW9uX2J5X3plcm9cbiAgICBlbHNlIFEuZGl2IChRLm9mX2JpZ2ludCBtMSkgKFEub2ZfYmlnaW50IG0yKVxuXG4gIGxldCBvX2Rpdl9tb25fcmF0IG0xIHIxID1cbiAgICBpZiBRLnplcm8gPSByMSB0aGVuIHJhaXNlIERpdmlzaW9uX2J5X3plcm8gZWxzZSBvX211bHRfbW9uX3JhdCBtMSAoUS5pbnYgcjEpXG5cbiAgbGV0IG9fZGl2X2R1cl9kdXIgZDEgZDIgPVxuICAgIGxldCBpMSwgaTIgPVxuICAgICAgdHJ5XG4gICAgICAgICggaW50ZWdlcl9vZl9pbnQgKERhdGVzX2NhbGMuRGF0ZXMucGVyaW9kX3RvX2RheXMgZDEpLFxuICAgICAgICAgIGludGVnZXJfb2ZfaW50IChEYXRlc19jYWxjLkRhdGVzLnBlcmlvZF90b19kYXlzIGQyKSApXG4gICAgICB3aXRoIERhdGVzX2NhbGMuRGF0ZXMuQW1iaWd1b3VzQ29tcHV0YXRpb24gLT4gcmFpc2UgSW5kaXZpc2libGVEdXJhdGlvbnNcbiAgICBpblxuICAgIG9fZGl2X2ludF9pbnQgaTEgaTJcblxuICBsZXQgb19sdF9pbnRfaW50IGkxIGkyID0gWi5jb21wYXJlIGkxIGkyIDwgMFxuICBsZXQgb19sdF9yYXRfcmF0IGkxIGkyID0gUS5jb21wYXJlIGkxIGkyIDwgMFxuICBsZXQgb19sdF9tb25fbW9uIG0xIG0yID0gWi5jb21wYXJlIG0xIG0yIDwgMFxuICBsZXQgb19sdF9kdXJfZHVyIGQxIGQyID0gY29tcGFyZV9wZXJpb2RzIGQxIGQyIDwgMFxuICBsZXQgb19sdF9kYXRfZGF0IGQxIGQyID0gRGF0ZXNfY2FsYy5EYXRlcy5jb21wYXJlX2RhdGVzIGQxIGQyIDwgMFxuICBsZXQgb19sdGVfaW50X2ludCBpMSBpMiA9IFouY29tcGFyZSBpMSBpMiA8PSAwXG4gIGxldCBvX2x0ZV9yYXRfcmF0IGkxIGkyID0gUS5jb21wYXJlIGkxIGkyIDw9IDBcbiAgbGV0IG9fbHRlX21vbl9tb24gbTEgbTIgPSBaLmNvbXBhcmUgbTEgbTIgPD0gMFxuICBsZXQgb19sdGVfZHVyX2R1ciBkMSBkMiA9IGNvbXBhcmVfcGVyaW9kcyBkMSBkMiA8PSAwXG4gIGxldCBvX2x0ZV9kYXRfZGF0IGQxIGQyID0gRGF0ZXNfY2FsYy5EYXRlcy5jb21wYXJlX2RhdGVzIGQxIGQyIDw9IDBcbiAgbGV0IG9fZ3RfaW50X2ludCBpMSBpMiA9IFouY29tcGFyZSBpMSBpMiA+IDBcbiAgbGV0IG9fZ3RfcmF0X3JhdCBpMSBpMiA9IFEuY29tcGFyZSBpMSBpMiA+IDBcbiAgbGV0IG9fZ3RfbW9uX21vbiBtMSBtMiA9IFouY29tcGFyZSBtMSBtMiA+IDBcbiAgbGV0IG9fZ3RfZHVyX2R1ciBkMSBkMiA9IGNvbXBhcmVfcGVyaW9kcyBkMSBkMiA+IDBcbiAgbGV0IG9fZ3RfZGF0X2RhdCBkMSBkMiA9IERhdGVzX2NhbGMuRGF0ZXMuY29tcGFyZV9kYXRlcyBkMSBkMiA+IDBcbiAgbGV0IG9fZ3RlX2ludF9pbnQgaTEgaTIgPSBaLmNvbXBhcmUgaTEgaTIgPj0gMFxuICBsZXQgb19ndGVfcmF0X3JhdCBpMSBpMiA9IFEuY29tcGFyZSBpMSBpMiA+PSAwXG4gIGxldCBvX2d0ZV9tb25fbW9uIG0xIG0yID0gWi5jb21wYXJlIG0xIG0yID49IDBcbiAgbGV0IG9fZ3RlX2R1cl9kdXIgZDEgZDIgPSBjb21wYXJlX3BlcmlvZHMgZDEgZDIgPj0gMFxuICBsZXQgb19ndGVfZGF0X2RhdCBkMSBkMiA9IERhdGVzX2NhbGMuRGF0ZXMuY29tcGFyZV9kYXRlcyBkMSBkMiA+PSAwXG4gIGxldCBvX2VxX2ludF9pbnQgaTEgaTIgPSBaLmVxdWFsIGkxIGkyXG4gIGxldCBvX2VxX3JhdF9yYXQgaTEgaTIgPSBRLmVxdWFsIGkxIGkyXG4gIGxldCBvX2VxX21vbl9tb24gbTEgbTIgPSBaLmVxdWFsIG0xIG0yXG4gIGxldCBvX2VxX2R1cl9kdXIgZDEgZDIgPSBlcXVhbF9wZXJpb2RzIGQxIGQyXG4gIGxldCBvX2VxX2RhdF9kYXQgZDEgZDIgPSBEYXRlc19jYWxjLkRhdGVzLmNvbXBhcmVfZGF0ZXMgZDEgZDIgPSAwXG4gIGxldCBvX2ZvbGQgPSBBcnJheS5mb2xkX2xlZnRcbmVuZFxuXG5pbmNsdWRlIE9wZXJcbiIsIigqIGdlbmVyYXRlZCBieSBkdW5lICopXG5cbigqKiBAY2Fub25pY2FsIEpzb29fcnVudGltZS5SdW50aW1lX3ZlcnNpb24gKilcbm1vZHVsZSBSdW50aW1lX3ZlcnNpb24gPSBKc29vX3J1bnRpbWVfX1J1bnRpbWVfdmVyc2lvblxuXG5tb2R1bGUgSnNvb19ydW50aW1lX18gPSBzdHJ1Y3QgZW5kXG5bQEBkZXByZWNhdGVkIFwidGhpcyBtb2R1bGUgaXMgc2hhZG93ZWRcIl1cbiIsIm1vZHVsZSBKcyA9IHN0cnVjdFxuICB0eXBlIHRcblxuICB0eXBlICdhIGpzX2FycmF5ID0gdFxuXG4gIHR5cGUgKCdhLCAnYikgbWV0aF9jYWxsYmFjayA9IHRcblxuICBleHRlcm5hbCBzdHJpbmcgOiBzdHJpbmcgLT4gdCA9IFwiY2FtbF9qc3N0cmluZ19vZl9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIHRvX3N0cmluZyA6IHQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9qc3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgYnl0ZXN0cmluZyA6IHN0cmluZyAtPiB0ID0gXCJjYW1sX2pzYnl0ZXNfb2Zfc3RyaW5nXCJcblxuICBleHRlcm5hbCB0b19ieXRlc3RyaW5nIDogdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzYnl0ZXNcIlxuXG4gIGV4dGVybmFsIGJvb2wgOiBib29sIC0+IHQgPSBcImNhbWxfanNfZnJvbV9ib29sXCJcblxuICBleHRlcm5hbCB0b19ib29sIDogdCAtPiBib29sID0gXCJjYW1sX2pzX3RvX2Jvb2xcIlxuXG4gIGV4dGVybmFsIGFycmF5IDogJ2EgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19mcm9tX2FycmF5XCJcblxuICBleHRlcm5hbCB0b19hcnJheSA6IHQgLT4gJ2EgYXJyYXkgPSBcImNhbWxfanNfdG9fYXJyYXlcIlxuXG4gIGV4dGVybmFsIG51bWJlcl9vZl9mbG9hdCA6IGZsb2F0IC0+IHQgPSBcImNhbWxfanNfZnJvbV9mbG9hdFwiXG5cbiAgZXh0ZXJuYWwgZmxvYXRfb2ZfbnVtYmVyIDogdCAtPiBmbG9hdCA9IFwiY2FtbF9qc190b19mbG9hdFwiXG5cbiAgZXh0ZXJuYWwgdHlwZW9mIDogdCAtPiB0ID0gXCJjYW1sX2pzX3R5cGVvZlwiXG5cbiAgZXh0ZXJuYWwgaW5zdGFuY2VvZiA6IHQgLT4gdCAtPiBib29sID0gXCJjYW1sX2pzX2luc3RhbmNlb2ZcIlxuXG4gIGV4dGVybmFsIGRlYnVnZ2VyIDogdW5pdCAtPiB1bml0ID0gXCJkZWJ1Z2dlclwiXG5cbiAgZXh0ZXJuYWwgZ2V0IDogdCAtPiB0IC0+IHQgPSBcImNhbWxfanNfZ2V0XCJcblxuICBleHRlcm5hbCBzZXQgOiB0IC0+IHQgLT4gdCAtPiB1bml0ID0gXCJjYW1sX2pzX3NldFwiXG5cbiAgZXh0ZXJuYWwgZGVsZXRlIDogdCAtPiB0IC0+IHVuaXQgPSBcImNhbWxfanNfZGVsZXRlXCJcblxuICBleHRlcm5hbCBjYWxsIDogdCAtPiB0IC0+IHQgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19jYWxsXCJcblxuICBleHRlcm5hbCBmdW5fY2FsbCA6IHQgLT4gdCBhcnJheSAtPiB0ID0gXCJjYW1sX2pzX2Z1bl9jYWxsXCJcblxuICBleHRlcm5hbCBtZXRoX2NhbGwgOiB0IC0+IHN0cmluZyAtPiB0IGFycmF5IC0+IHQgPSBcImNhbWxfanNfbWV0aF9jYWxsXCJcblxuICBleHRlcm5hbCBuZXdfb2JqIDogdCAtPiB0IGFycmF5IC0+IHQgPSBcImNhbWxfanNfbmV3XCJcblxuICBleHRlcm5hbCBuZXdfb2JqX2FyciA6IHQgLT4gdCBqc19hcnJheSAtPiB0ID0gXCJjYW1sX29qc19uZXdfYXJyXCJcblxuICBleHRlcm5hbCBvYmogOiAoc3RyaW5nICogdCkgYXJyYXkgLT4gdCA9IFwiY2FtbF9qc19vYmplY3RcIlxuXG4gIGV4dGVybmFsIGVxdWFscyA6IHQgLT4gdCAtPiBib29sID0gXCJjYW1sX2pzX2VxdWFsc1wiXG5cbiAgZXh0ZXJuYWwgcHVyZV9leHByIDogKHVuaXQgLT4gJ2EpIC0+ICdhID0gXCJjYW1sX2pzX3B1cmVfZXhwclwiXG5cbiAgZXh0ZXJuYWwgZXZhbF9zdHJpbmcgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfZXZhbF9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIGpzX2V4cHIgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfZXhwclwiXG5cbiAgZXh0ZXJuYWwgcHVyZV9qc19leHByIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX3B1cmVfanNfZXhwclwiXG5cbiAgZXh0ZXJuYWwgY2FsbGJhY2sgOiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3Vuc2FmZVwiXG5cbiAgZXh0ZXJuYWwgY2FsbGJhY2tfd2l0aF9hcmd1bWVudHMgOlxuICAgICh0IGpzX2FycmF5IC0+ICdiKSAtPiAoJ2MsIHQganNfYXJyYXkgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX2FyZ3VtZW50c1wiXG5cbiAgZXh0ZXJuYWwgY2FsbGJhY2tfd2l0aF9hcml0eSA6IGludCAtPiAoJ2EgLT4gJ2IpIC0+ICgnYywgJ2EgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdFwiXG5cbiAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFjayA6ICgnYiAtPiAnYSkgLT4gKCdiLCAnYSkgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja191bnNhZmVcIlxuXG4gIGV4dGVybmFsIG1ldGhfY2FsbGJhY2tfd2l0aF9hcml0eSA6IGludCAtPiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfc3RyaWN0XCJcblxuICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrX3dpdGhfYXJndW1lbnRzIDpcbiAgICAoJ2IgLT4gdCBqc19hcnJheSAtPiAnYSkgLT4gKCdiLCB0IGpzX2FycmF5IC0+ICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50c1wiXG5cbiAgZXh0ZXJuYWwgd3JhcF9jYWxsYmFjayA6ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tcIlxuXG4gIGV4dGVybmFsIHdyYXBfbWV0aF9jYWxsYmFjayA6ICgnYSAtPiAnYikgLT4gKCdhLCAnYikgbWV0aF9jYWxsYmFja1xuICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja1wiXG5lbmRcblxubW9kdWxlIFN5cyA9IHN0cnVjdFxuICB0eXBlICdhIGNhbGxiYWNrID0gJ2FcblxuICBleHRlcm5hbCBjcmVhdGVfZmlsZSA6IG5hbWU6c3RyaW5nIC0+IGNvbnRlbnQ6c3RyaW5nIC0+IHVuaXQgPSBcImNhbWxfY3JlYXRlX2ZpbGVcIlxuXG4gIGV4dGVybmFsIHJlYWRfZmlsZSA6IG5hbWU6c3RyaW5nIC0+IHN0cmluZyA9IFwiY2FtbF9yZWFkX2ZpbGVfY29udGVudFwiXG5cbiAgZXh0ZXJuYWwgc2V0X2NoYW5uZWxfb3V0cHV0JyA6IG91dF9jaGFubmVsIC0+IChqc19zdHJpbmc6SnMudCAtPiB1bml0KSBjYWxsYmFjayAtPiB1bml0XG4gICAgPSBcImNhbWxfbWxfc2V0X2NoYW5uZWxfb3V0cHV0XCJcblxuICBleHRlcm5hbCBzZXRfY2hhbm5lbF9pbnB1dCcgOiBpbl9jaGFubmVsIC0+ICh1bml0IC0+IHN0cmluZykgY2FsbGJhY2sgLT4gdW5pdFxuICAgID0gXCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbFwiXG5cbiAgZXh0ZXJuYWwgbW91bnRfcG9pbnQgOiB1bml0IC0+IHN0cmluZyBsaXN0ID0gXCJjYW1sX2xpc3RfbW91bnRfcG9pbnRcIlxuXG4gIGV4dGVybmFsIG1vdW50X2F1dG9sb2FkIDogc3RyaW5nIC0+IChzdHJpbmcgLT4gc3RyaW5nIC0+IHN0cmluZyBvcHRpb24pIGNhbGxiYWNrIC0+IHVuaXRcbiAgICA9IFwiY2FtbF9tb3VudF9hdXRvbG9hZFwiXG5cbiAgZXh0ZXJuYWwgdW5tb3VudCA6IHN0cmluZyAtPiB1bml0ID0gXCJjYW1sX3VubW91bnRcIlxuXG4gIG1vZHVsZSBDb25maWcgPSBzdHJ1Y3RcbiAgICBleHRlcm5hbCB1c2VfanNfc3RyaW5nIDogdW5pdCAtPiBib29sID0gXCJjYW1sX2pzb29fZmxhZ3NfdXNlX2pzX3N0cmluZ1wiXG5cbiAgICBleHRlcm5hbCBlZmZlY3RzIDogdW5pdCAtPiBib29sID0gXCJjYW1sX2pzb29fZmxhZ3NfZWZmZWN0c1wiXG4gIGVuZFxuXG4gIGxldCB2ZXJzaW9uID0gUnVudGltZV92ZXJzaW9uLnNcblxuICBsZXQgZ2l0X3ZlcnNpb24gPSBSdW50aW1lX3ZlcnNpb24uZ2l0X3ZlcnNpb25cbmVuZFxuXG5tb2R1bGUgRXJyb3IgOiBzaWdcbiAgdHlwZSB0XG5cbiAgdmFsIHJhaXNlXyA6IHQgLT4gJ2FcblxuICB2YWwgYXR0YWNoX2pzX2JhY2t0cmFjZSA6IGV4biAtPiBmb3JjZTpib29sIC0+IGV4blxuICAoKiogQXR0YWNoIGEgSmF2YXNTY3JpcHQgZXJyb3IgdG8gYW4gT0NhbWwgZXhjZXB0aW9uLiAgaWYgW2ZvcmNlID0gZmFsc2VdIGFuZCBhXG4gICAgSmF2YXNTY3JpcHQgZXJyb3IgaXMgYWxyZWFkeSBhdHRhY2hlZCwgaXQgd2lsbCBkbyBub3RoaW5nLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWZ1bCB0b1xuICAgIHN0b3JlIGFuZCByZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBKYXZhU2NyaXB0IHN0YWNrIHRyYWNlcy5cblxuICAgIEF0dGFjaGluZyBKYXZhc1NjcmlwdCBlcnJvcnMgd2lsbCBoYXBwZW4gYXV0b21hdGljYWxseSB3aGVuIGNvbXBpbGluZyB3aXRoXG4gICAgWy0tZW5hYmxlIHdpdGgtanMtZXJyb3JdLiAqKVxuXG4gIHZhbCBvZl9leG4gOiBleG4gLT4gdCBvcHRpb25cbiAgKCoqIEV4dHJhY3QgYSBKYXZhU2NyaXB0IGVycm9yIGF0dGFjaGVkIHRvIGFuIE9DYW1sIGV4Y2VwdGlvbiwgaWYgYW55LiAgVGhpcyBpcyB1c2VmdWwgdG9cbiAgICAgIGluc3BlY3QgYW4gZXZlbnR1YWwgc3RhY2sgc3RyYWNlLCBlc3BlY2lhbGx5IHdoZW4gc291cmNlbWFwIGlzIGVuYWJsZWQuICopXG5cbiAgZXhjZXB0aW9uIEV4biBvZiB0XG4gICgqKiBUaGUgW0Vycm9yXSBleGNlcHRpb24gd3JhcCBqYXZhc2NyaXB0IGV4Y2VwdGlvbnMgd2hlbiBjYXVnaHQgYnkgT0NhbWwgY29kZS5cbiAgICAgIEluIGNhc2UgdGhlIGphdmFzY3JpcHQgZXhjZXB0aW9uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBqYXZhc2NyaXB0IFtFcnJvcl0sXG4gICAgICBpdCB3aWxsIGJlIHNlcmlhbGl6ZWQgYW5kIHdyYXBwZWQgaW50byBhIFtGYWlsdXJlXSBleGNlcHRpb24uXG4gICopXG5lbmQgPSBzdHJ1Y3RcbiAgdHlwZSB0XG5cbiAgZXhjZXB0aW9uIEV4biBvZiB0XG5cbiAgbGV0IF8gPSBDYWxsYmFjay5yZWdpc3Rlcl9leGNlcHRpb24gXCJqc0Vycm9yXCIgKEV4biAoT2JqLm1hZ2ljIFt8fF0pKVxuXG4gIGxldCByYWlzZV8gOiB0IC0+ICdhID0gSnMuanNfZXhwciBcIihmdW5jdGlvbiAoZXhuKSB7IHRocm93IGV4biB9KVwiXG5cbiAgZXh0ZXJuYWwgb2ZfZXhuIDogZXhuIC0+IHQgb3B0aW9uID0gXCJjYW1sX2pzX2Vycm9yX29wdGlvbl9vZl9leGNlcHRpb25cIlxuXG4gIGV4dGVybmFsIGF0dGFjaF9qc19iYWNrdHJhY2UgOiBleG4gLT4gZm9yY2U6Ym9vbCAtPiBleG4gPSBcImNhbWxfZXhuX3dpdGhfanNfYmFja3RyYWNlXCJcbmVuZFxuXG5bQEBAb2NhbWwud2FybmluZyBcIi0zMi02MFwiXVxuXG5tb2R1bGUgRm9yX2NvbXBhdGliaWxpdHlfb25seSA9IHN0cnVjdFxuICAoKiBBZGQgcHJpbWl0aXZlcyBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zLiBFeGlzdGluZyB1c2VycyBtaWdodFxuICAgICBkZXBlbmQgb24gaXQgKGUuZy4gZ2VuX2pzX2FwaSksIHdlIGRvbnQgd2FudCB0aGUgb2NhbWwgY29tcGlsZXJcbiAgICAgdG8gY29tcGxhaW4gYWJvdXQgdGhlc2VzIG1pc3NpbmcgcHJpbWl0aXZlcy4gKilcblxuICBleHRlcm5hbCBjYW1sX2pzX2Zyb21fc3RyaW5nIDogc3RyaW5nIC0+IEpzLnQgPSBcImNhbWxfanNfZnJvbV9zdHJpbmdcIlxuXG4gIGV4dGVybmFsIGNhbWxfanNfdG9fYnl0ZV9zdHJpbmcgOiBKcy50IC0+IHN0cmluZyA9IFwiY2FtbF9qc190b19ieXRlX3N0cmluZ1wiXG5cbiAgZXh0ZXJuYWwgY2FtbF9qc190b19zdHJpbmcgOiBKcy50IC0+IHN0cmluZyA9IFwiY2FtbF9qc190b19zdHJpbmdcIlxuXG4gIGV4dGVybmFsIGNhbWxfbGlzdF9vZl9qc19hcnJheSA6ICdhIEpzLmpzX2FycmF5IC0+ICdhIGxpc3QgPSBcImNhbWxfbGlzdF9vZl9qc19hcnJheVwiXG5cbiAgZXh0ZXJuYWwgY2FtbF9saXN0X3RvX2pzX2FycmF5IDogJ2EgbGlzdCAtPiAnYSBKcy5qc19hcnJheSA9IFwiY2FtbF9saXN0X3RvX2pzX2FycmF5XCJcblxuICBleHRlcm5hbCB2YXJpYWJsZSA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc192YXJcIlxuZW5kXG5cbm1vZHVsZSBUeXBlZF9hcnJheSA9IHN0cnVjdFxuICB0eXBlICgnYSwgJ2IpIHR5cGVkQXJyYXkgPSBKcy50XG5cbiAgdHlwZSBhcnJheUJ1ZmZlciA9IEpzLnRcblxuICB0eXBlIHVpbnQ4QXJyYXkgPSBKcy50XG5cbiAgZXh0ZXJuYWwga2luZCA6ICgnYSwgJ2IpIHR5cGVkQXJyYXkgLT4gKCdhLCAnYikgQmlnYXJyYXkua2luZFxuICAgID0gXCJjYW1sX2JhX2tpbmRfb2ZfdHlwZWRfYXJyYXlcIlxuXG4gIGV4dGVybmFsIGZyb21fZ2VuYXJyYXkgOlxuICAgICgnYSwgJ2IsIEJpZ2FycmF5LmNfbGF5b3V0KSBCaWdhcnJheS5HZW5hcnJheS50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXlcbiAgICA9IFwiY2FtbF9iYV90b190eXBlZF9hcnJheVwiXG5cbiAgZXh0ZXJuYWwgdG9fZ2VuYXJyYXkgOlxuICAgICgnYSwgJ2IpIHR5cGVkQXJyYXkgLT4gKCdhLCAnYiwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkdlbmFycmF5LnRcbiAgICA9IFwiY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5XCJcblxuICBtb2R1bGUgQmlnc3RyaW5nID0gc3RydWN0XG4gICAgdHlwZSB0ID0gKGNoYXIsIEJpZ2FycmF5LmludDhfdW5zaWduZWRfZWx0LCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuQXJyYXkxLnRcblxuICAgIGV4dGVybmFsIHRvX2FycmF5QnVmZmVyIDogdCAtPiBhcnJheUJ1ZmZlciA9IFwiYmlnc3RyaW5nX3RvX2FycmF5X2J1ZmZlclwiXG5cbiAgICBleHRlcm5hbCB0b191aW50OEFycmF5IDogdCAtPiB1aW50OEFycmF5ID0gXCJiaWdzdHJpbmdfdG9fdHlwZWRfYXJyYXlcIlxuXG4gICAgZXh0ZXJuYWwgb2ZfYXJyYXlCdWZmZXIgOiBhcnJheUJ1ZmZlciAtPiB0ID0gXCJiaWdzdHJpbmdfb2ZfYXJyYXlfYnVmZmVyXCJcblxuICAgIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IC0+IHQgPSBcImJpZ3N0cmluZ19vZl90eXBlZF9hcnJheVwiXG4gIGVuZFxuXG4gIGV4dGVybmFsIG9mX3VpbnQ4QXJyYXkgOiB1aW50OEFycmF5IC0+IHN0cmluZyA9IFwiY2FtbF9zdHJpbmdfb2ZfYXJyYXlcIlxuZW5kXG5cbm1vZHVsZSBJbnQ2NCA9IHN0cnVjdFxuICBleHRlcm5hbCBjcmVhdGVfaW50NjRfbG9fbWlfaGkgOiBpbnQgLT4gaW50IC0+IGludCAtPiBJbnQ2NC50XG4gICAgPSBcImNhbWxfaW50NjRfY3JlYXRlX2xvX21pX2hpXCJcbmVuZFxuIiwiKCogZ2VuZXJhdGVkIGJ5IGR1bmUgKilcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuQ1NTICopXG5tb2R1bGUgQ1NTID0gSnNfb2Zfb2NhbWxfX0NTU1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Eb20gKilcbm1vZHVsZSBEb20gPSBKc19vZl9vY2FtbF9fRG9tXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkRvbV9ldmVudHMgKilcbm1vZHVsZSBEb21fZXZlbnRzID0gSnNfb2Zfb2NhbWxfX0RvbV9ldmVudHNcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRG9tX2h0bWwgKilcbm1vZHVsZSBEb21faHRtbCA9IEpzX29mX29jYW1sX19Eb21faHRtbFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5Eb21fc3ZnICopXG5tb2R1bGUgRG9tX3N2ZyA9IEpzX29mX29jYW1sX19Eb21fc3ZnXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkV2ZW50U291cmNlICopXG5tb2R1bGUgRXZlbnRTb3VyY2UgPSBKc19vZl9vY2FtbF9fRXZlbnRTb3VyY2VcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuRmlsZSAqKVxubW9kdWxlIEZpbGUgPSBKc19vZl9vY2FtbF9fRmlsZVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5GaXJlYnVnICopXG5tb2R1bGUgRmlyZWJ1ZyA9IEpzX29mX29jYW1sX19GaXJlYnVnXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkZvcm0gKilcbm1vZHVsZSBGb3JtID0gSnNfb2Zfb2NhbWxfX0Zvcm1cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuR2VvbG9jYXRpb24gKilcbm1vZHVsZSBHZW9sb2NhdGlvbiA9IEpzX29mX29jYW1sX19HZW9sb2NhdGlvblxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5JbXBvcnQgKilcbm1vZHVsZSBJbXBvcnQgPSBKc19vZl9vY2FtbF9fSW1wb3J0XG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkludGVyc2VjdGlvbk9ic2VydmVyICopXG5tb2R1bGUgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBKc19vZl9vY2FtbF9fSW50ZXJzZWN0aW9uT2JzZXJ2ZXJcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSW50bCAqKVxubW9kdWxlIEludGwgPSBKc19vZl9vY2FtbF9fSW50bFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5KcyAqKVxubW9kdWxlIEpzID0gSnNfb2Zfb2NhbWxfX0pzXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLkpzb24gKilcbm1vZHVsZSBKc29uID0gSnNfb2Zfb2NhbWxfX0pzb25cblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuSnN0YWJsZSAqKVxubW9kdWxlIEpzdGFibGUgPSBKc19vZl9vY2FtbF9fSnN0YWJsZVxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5MaWJfdmVyc2lvbiAqKVxubW9kdWxlIExpYl92ZXJzaW9uID0gSnNfb2Zfb2NhbWxfX0xpYl92ZXJzaW9uXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLk11dGF0aW9uT2JzZXJ2ZXIgKilcbm1vZHVsZSBNdXRhdGlvbk9ic2VydmVyID0gSnNfb2Zfb2NhbWxfX011dGF0aW9uT2JzZXJ2ZXJcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuUGVyZm9ybWFuY2VPYnNlcnZlciAqKVxubW9kdWxlIFBlcmZvcm1hbmNlT2JzZXJ2ZXIgPSBKc19vZl9vY2FtbF9fUGVyZm9ybWFuY2VPYnNlcnZlclxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5SZWdleHAgKilcbm1vZHVsZSBSZWdleHAgPSBKc19vZl9vY2FtbF9fUmVnZXhwXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlJlc2l6ZU9ic2VydmVyICopXG5tb2R1bGUgUmVzaXplT2JzZXJ2ZXIgPSBKc19vZl9vY2FtbF9fUmVzaXplT2JzZXJ2ZXJcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuU3lzX2pzICopXG5tb2R1bGUgU3lzX2pzID0gSnNfb2Zfb2NhbWxfX1N5c19qc1xuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5UeXBlZF9hcnJheSAqKVxubW9kdWxlIFR5cGVkX2FycmF5ID0gSnNfb2Zfb2NhbWxfX1R5cGVkX2FycmF5XG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLlVybCAqKVxubW9kdWxlIFVybCA9IEpzX29mX29jYW1sX19VcmxcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuV2ViR0wgKilcbm1vZHVsZSBXZWJHTCA9IEpzX29mX29jYW1sX19XZWJHTFxuXG4oKiogQGNhbm9uaWNhbCBKc19vZl9vY2FtbC5XZWJTb2NrZXRzICopXG5tb2R1bGUgV2ViU29ja2V0cyA9IEpzX29mX29jYW1sX19XZWJTb2NrZXRzXG5cbigqKiBAY2Fub25pY2FsIEpzX29mX29jYW1sLldvcmtlciAqKVxubW9kdWxlIFdvcmtlciA9IEpzX29mX29jYW1sX19Xb3JrZXJcblxuKCoqIEBjYW5vbmljYWwgSnNfb2Zfb2NhbWwuWG1sSHR0cFJlcXVlc3QgKilcbm1vZHVsZSBYbWxIdHRwUmVxdWVzdCA9IEpzX29mX29jYW1sX19YbWxIdHRwUmVxdWVzdFxuXG5tb2R1bGUgSnNfb2Zfb2NhbWxfXyA9IHN0cnVjdCBlbmRcbltAQGRlcHJlY2F0ZWQgXCJ0aGlzIG1vZHVsZSBpcyBzaGFkb3dlZFwiXVxuIiwiKCogSnNfb2Zfb2NhbWxcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm1vZHVsZSBQb2x5ID0gc3RydWN0XG4gIGV4dGVybmFsICggPCApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcblxuICBleHRlcm5hbCAoIDw9ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbGVzc2VxdWFsXCJcblxuICBleHRlcm5hbCAoIDw+ICkgOiAnYSAtPiAnYSAtPiBib29sID0gXCIlbm90ZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcblxuICBleHRlcm5hbCAoID4gKSA6ICdhIC0+ICdhIC0+IGJvb2wgPSBcIiVncmVhdGVydGhhblwiXG5cbiAgZXh0ZXJuYWwgKCA+PSApIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWdyZWF0ZXJlcXVhbFwiXG5cbiAgZXh0ZXJuYWwgY29tcGFyZSA6ICdhIC0+ICdhIC0+IGludCA9IFwiJWNvbXBhcmVcIlxuXG4gIGV4dGVybmFsIGVxdWFsIDogJ2EgLT4gJ2EgLT4gYm9vbCA9IFwiJWVxdWFsXCJcbmVuZFxuXG5tb2R1bGUgSW50X3JlcGxhY2VfcG9seW1vcnBoaWNfY29tcGFyZSA9IHN0cnVjdFxuICBleHRlcm5hbCAoIDwgKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWxlc3N0aGFuXCJcblxuICBleHRlcm5hbCAoIDw9ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVsZXNzZXF1YWxcIlxuXG4gIGV4dGVybmFsICggPD4gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJW5vdGVxdWFsXCJcblxuICBleHRlcm5hbCAoID0gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWVxdWFsXCJcblxuICBleHRlcm5hbCAoID4gKSA6IGludCAtPiBpbnQgLT4gYm9vbCA9IFwiJWdyZWF0ZXJ0aGFuXCJcblxuICBleHRlcm5hbCAoID49ICkgOiBpbnQgLT4gaW50IC0+IGJvb2wgPSBcIiVncmVhdGVyZXF1YWxcIlxuXG4gIGV4dGVybmFsIGNvbXBhcmUgOiBpbnQgLT4gaW50IC0+IGludCA9IFwiJWNvbXBhcmVcIlxuXG4gIGV4dGVybmFsIGVxdWFsIDogaW50IC0+IGludCAtPiBib29sID0gXCIlZXF1YWxcIlxuXG4gIGxldCBtYXggKHggOiBpbnQpIHkgPSBpZiB4ID49IHkgdGhlbiB4IGVsc2UgeVxuXG4gIGxldCBtaW4gKHggOiBpbnQpIHkgPSBpZiB4IDw9IHkgdGhlbiB4IGVsc2UgeVxuZW5kXG5cbm1vZHVsZSBTdHJpbmcgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTdHJpbmdcblxuICBsZXQgZXF1YWwgKHggOiBzdHJpbmcpICh5IDogc3RyaW5nKSA9IFBvbHkuZXF1YWwgeCB5XG5lbmRcblxubW9kdWxlIENoYXIgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBDaGFyXG5cbiAgbGV0IGVxdWFsICh4IDogY2hhcikgKHkgOiBjaGFyKSA9IFBvbHkuZXF1YWwgeCB5XG5lbmRcblxuaW5jbHVkZSBJbnRfcmVwbGFjZV9wb2x5bW9ycGhpY19jb21wYXJlXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIErDqXLDtG1lIFZvdWlsbG9uXG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG4oKiBUaGlzIGxvY2FsIG1vZHVsZSBbSnNdIGlzIG5lZWRlZCBzbyB0aGF0IHRoZSBwcHhfanMgZXh0ZW5zaW9uIHdvcmsgd2l0aGluIHRoYXQgZmlsZS4gKilcbm1vZHVsZSBKcyA9IHN0cnVjdFxuICB0eXBlICsnYSB0XG5cbiAgdHlwZSAoLSdhLCArJ2IpIG1ldGhfY2FsbGJhY2tcblxuICBtb2R1bGUgVW5zYWZlID0gc3RydWN0XG4gICAgdHlwZSB0b3BcblxuICAgIHR5cGUgYW55ID0gdG9wIHRcblxuICAgIHR5cGUgYW55X2pzX2FycmF5ID0gYW55XG5cbiAgICBleHRlcm5hbCBpbmplY3QgOiAnYSAtPiBhbnkgPSBcIiVpZGVudGl0eVwiXG5cbiAgICBleHRlcm5hbCBjb2VyY2UgOiBfIHQgLT4gXyB0ID0gXCIlaWRlbnRpdHlcIlxuXG4gICAgZXh0ZXJuYWwgZ2V0IDogJ2EgLT4gJ2IgLT4gJ2MgPSBcImNhbWxfanNfZ2V0XCJcblxuICAgIGV4dGVybmFsIHNldCA6ICdhIC0+ICdiIC0+ICdjIC0+IHVuaXQgPSBcImNhbWxfanNfc2V0XCJcblxuICAgIGV4dGVybmFsIGRlbGV0ZSA6ICdhIC0+ICdiIC0+IHVuaXQgPSBcImNhbWxfanNfZGVsZXRlXCJcblxuICAgIGV4dGVybmFsIGNhbGwgOiAnYSAtPiAnYiAtPiBhbnkgYXJyYXkgLT4gJ2MgPSBcImNhbWxfanNfY2FsbFwiXG5cbiAgICBleHRlcm5hbCBmdW5fY2FsbCA6ICdhIC0+IGFueSBhcnJheSAtPiAnYiA9IFwiY2FtbF9qc19mdW5fY2FsbFwiXG5cbiAgICBleHRlcm5hbCBtZXRoX2NhbGwgOiAnYSAtPiBzdHJpbmcgLT4gYW55IGFycmF5IC0+ICdiID0gXCJjYW1sX2pzX21ldGhfY2FsbFwiXG5cbiAgICBleHRlcm5hbCBuZXdfb2JqIDogJ2EgLT4gYW55IGFycmF5IC0+ICdiID0gXCJjYW1sX2pzX25ld1wiXG5cbiAgICBleHRlcm5hbCBuZXdfb2JqX2FyciA6ICdhIC0+IGFueV9qc19hcnJheSAtPiAnYiA9IFwiY2FtbF9vanNfbmV3X2FyclwiXG5cbiAgICBleHRlcm5hbCBvYmogOiAoc3RyaW5nICogYW55KSBhcnJheSAtPiAnYSA9IFwiY2FtbF9qc19vYmplY3RcIlxuXG4gICAgZXh0ZXJuYWwgZXF1YWxzIDogJ2EgLT4gJ2IgLT4gYm9vbCA9IFwiY2FtbF9qc19lcXVhbHNcIlxuXG4gICAgZXh0ZXJuYWwgcHVyZV9leHByIDogKHVuaXQgLT4gJ2EpIC0+ICdhID0gXCJjYW1sX2pzX3B1cmVfZXhwclwiXG5cbiAgICBleHRlcm5hbCBldmFsX3N0cmluZyA6IHN0cmluZyAtPiAnYSA9IFwiY2FtbF9qc19ldmFsX3N0cmluZ1wiXG5cbiAgICBleHRlcm5hbCBqc19leHByIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX2pzX2V4cHJcIlxuXG4gICAgZXh0ZXJuYWwgcHVyZV9qc19leHByIDogc3RyaW5nIC0+ICdhID0gXCJjYW1sX3B1cmVfanNfZXhwclwiXG5cbiAgICBsZXQgZ2xvYmFsID0gcHVyZV9qc19leHByIFwiZ2xvYmFsVGhpc1wiXG5cbiAgICBleHRlcm5hbCBjYWxsYmFjayA6ICgnYSAtPiAnYikgLT4gKCdjLCAnYSAtPiAnYikgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja191bnNhZmVcIlxuXG4gICAgZXh0ZXJuYWwgY2FsbGJhY2tfd2l0aF9hcmd1bWVudHMgOlxuICAgICAgKGFueV9qc19hcnJheSAtPiAnYikgLT4gKCdjLCBhbnlfanNfYXJyYXkgLT4gJ2IpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfY2FsbGJhY2tfYXJndW1lbnRzXCJcblxuICAgIGV4dGVybmFsIGNhbGxiYWNrX3dpdGhfYXJpdHkgOiBpbnQgLT4gKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX2NhbGxiYWNrX3N0cmljdFwiXG5cbiAgICBleHRlcm5hbCBtZXRoX2NhbGxiYWNrIDogKCdiIC0+ICdhKSAtPiAoJ2IsICdhKSBtZXRoX2NhbGxiYWNrXG4gICAgICA9IFwiY2FtbF9qc193cmFwX21ldGhfY2FsbGJhY2tfdW5zYWZlXCJcblxuICAgIGV4dGVybmFsIG1ldGhfY2FsbGJhY2tfd2l0aF9hcml0eSA6IGludCAtPiAoJ2IgLT4gJ2EpIC0+ICgnYiwgJ2EpIG1ldGhfY2FsbGJhY2tcbiAgICAgID0gXCJjYW1sX2pzX3dyYXBfbWV0aF9jYWxsYmFja19zdHJpY3RcIlxuXG4gICAgZXh0ZXJuYWwgbWV0aF9jYWxsYmFja193aXRoX2FyZ3VtZW50cyA6XG4gICAgICAoJ2IgLT4gYW55X2pzX2FycmF5IC0+ICdhKSAtPiAoJ2IsIGFueV9qc19hcnJheSAtPiAnYSkgbWV0aF9jYWxsYmFja1xuICAgICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrX2FyZ3VtZW50c1wiXG5cbiAgICAoKiBERVBSRUNBVEVEICopXG4gICAgZXh0ZXJuYWwgdmFyaWFibGUgOiBzdHJpbmcgLT4gJ2EgPSBcImNhbWxfanNfdmFyXCJcbiAgZW5kXG5cbiAgKCoqKiopXG5cbiAgdHlwZSAnYSBvcHQgPSAnYVxuXG4gIHR5cGUgJ2Egb3B0ZGVmID0gJ2FcblxuICBleHRlcm5hbCBkZWJ1Z2dlciA6IHVuaXQgLT4gdW5pdCA9IFwiZGVidWdnZXJcIlxuXG4gIGxldCBudWxsIDogJ2Egb3B0ID0gVW5zYWZlLnB1cmVfanNfZXhwciBcIm51bGxcIlxuXG4gIGV4dGVybmFsIHNvbWUgOiAnYSAtPiAnYSBvcHQgPSBcIiVpZGVudGl0eVwiXG5cbiAgbGV0IHVuZGVmaW5lZCA6ICdhIG9wdGRlZiA9IFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJ1bmRlZmluZWRcIlxuXG4gIGV4dGVybmFsIGRlZiA6ICdhIC0+ICdhIG9wdGRlZiA9IFwiJWlkZW50aXR5XCJcblxuICBtb2R1bGUgdHlwZSBPUFQgPSBzaWdcbiAgICB0eXBlICdhIHRcblxuICAgIHZhbCBlbXB0eSA6ICdhIHRcblxuICAgIHZhbCByZXR1cm4gOiAnYSAtPiAnYSB0XG5cbiAgICB2YWwgbWFwIDogJ2EgdCAtPiAoJ2EgLT4gJ2IpIC0+ICdiIHRcblxuICAgIHZhbCBiaW5kIDogJ2EgdCAtPiAoJ2EgLT4gJ2IgdCkgLT4gJ2IgdFxuXG4gICAgdmFsIHRlc3QgOiAnYSB0IC0+IGJvb2xcblxuICAgIHZhbCBpdGVyIDogJ2EgdCAtPiAoJ2EgLT4gdW5pdCkgLT4gdW5pdFxuXG4gICAgdmFsIGNhc2UgOiAnYSB0IC0+ICh1bml0IC0+ICdiKSAtPiAoJ2EgLT4gJ2IpIC0+ICdiXG5cbiAgICB2YWwgZ2V0IDogJ2EgdCAtPiAodW5pdCAtPiAnYSkgLT4gJ2FcblxuICAgIHZhbCBvcHRpb24gOiAnYSBvcHRpb24gLT4gJ2EgdFxuXG4gICAgdmFsIHRvX29wdGlvbiA6ICdhIHQgLT4gJ2Egb3B0aW9uXG4gIGVuZFxuXG4gIG1vZHVsZSBPcHQgOiBPUFQgd2l0aCB0eXBlICdhIHQgPSAnYSBvcHQgPSBzdHJ1Y3RcbiAgICB0eXBlICdhIHQgPSAnYSBvcHRcblxuICAgIGxldCBlbXB0eSA9IG51bGxcblxuICAgIGxldCByZXR1cm4gPSBzb21lXG5cbiAgICBsZXQgbWFwIHggZiA9IGlmIFVuc2FmZS5lcXVhbHMgeCBudWxsIHRoZW4gbnVsbCBlbHNlIHJldHVybiAoZiB4KVxuXG4gICAgbGV0IGJpbmQgeCBmID0gaWYgVW5zYWZlLmVxdWFscyB4IG51bGwgdGhlbiBudWxsIGVsc2UgZiB4XG5cbiAgICBsZXQgdGVzdCB4ID0gbm90IChVbnNhZmUuZXF1YWxzIHggbnVsbClcblxuICAgIGxldCBpdGVyIHggZiA9IGlmIG5vdCAoVW5zYWZlLmVxdWFscyB4IG51bGwpIHRoZW4gZiB4XG5cbiAgICBsZXQgY2FzZSB4IGYgZyA9IGlmIFVuc2FmZS5lcXVhbHMgeCBudWxsIHRoZW4gZiAoKSBlbHNlIGcgeFxuXG4gICAgbGV0IGdldCB4IGYgPSBpZiBVbnNhZmUuZXF1YWxzIHggbnVsbCB0aGVuIGYgKCkgZWxzZSB4XG5cbiAgICBsZXQgb3B0aW9uIHggPVxuICAgICAgbWF0Y2ggeCB3aXRoXG4gICAgICB8IE5vbmUgLT4gZW1wdHlcbiAgICAgIHwgU29tZSB4IC0+IHJldHVybiB4XG5cbiAgICBsZXQgdG9fb3B0aW9uIHggPSBjYXNlIHggKGZ1biAoKSAtPiBOb25lKSAoZnVuIHggLT4gU29tZSB4KVxuICBlbmRcblxuICBtb2R1bGUgT3B0ZGVmIDogT1BUIHdpdGggdHlwZSAnYSB0ID0gJ2Egb3B0ZGVmID0gc3RydWN0XG4gICAgdHlwZSAnYSB0ID0gJ2Egb3B0ZGVmXG5cbiAgICBsZXQgZW1wdHkgPSB1bmRlZmluZWRcblxuICAgIGxldCByZXR1cm4gPSBkZWZcblxuICAgIGxldCBtYXAgeCBmID0gaWYgeCA9PSB1bmRlZmluZWQgdGhlbiB1bmRlZmluZWQgZWxzZSByZXR1cm4gKGYgeClcblxuICAgIGxldCBiaW5kIHggZiA9IGlmIHggPT0gdW5kZWZpbmVkIHRoZW4gdW5kZWZpbmVkIGVsc2UgZiB4XG5cbiAgICBsZXQgdGVzdCB4ID0geCAhPSB1bmRlZmluZWRcblxuICAgIGxldCBpdGVyIHggZiA9IGlmIHggIT0gdW5kZWZpbmVkIHRoZW4gZiB4XG5cbiAgICBsZXQgY2FzZSB4IGYgZyA9IGlmIHggPT0gdW5kZWZpbmVkIHRoZW4gZiAoKSBlbHNlIGcgeFxuXG4gICAgbGV0IGdldCB4IGYgPSBpZiB4ID09IHVuZGVmaW5lZCB0aGVuIGYgKCkgZWxzZSB4XG5cbiAgICBsZXQgb3B0aW9uIHggPVxuICAgICAgbWF0Y2ggeCB3aXRoXG4gICAgICB8IE5vbmUgLT4gZW1wdHlcbiAgICAgIHwgU29tZSB4IC0+IHJldHVybiB4XG5cbiAgICBsZXQgdG9fb3B0aW9uIHggPSBjYXNlIHggKGZ1biAoKSAtPiBOb25lKSAoZnVuIHggLT4gU29tZSB4KVxuICBlbmRcblxuICAoKioqKilcblxuICBsZXQgY29lcmNlIHggZiBnID0gT3B0LmdldCAoZiB4KSAoZnVuICgpIC0+IGcgeClcblxuICBsZXQgY29lcmNlX29wdCB4IGYgZyA9IE9wdC5nZXQgKE9wdC5iaW5kIHggZikgKGZ1biAoKSAtPiBnIHgpXG5cbiAgKCoqKiopXG5cbiAgdHlwZSArJ2EgbWV0aFxuXG4gIHR5cGUgKydhIGdlbl9wcm9wXG5cbiAgdHlwZSAnYSByZWFkb25seV9wcm9wID0gPCBnZXQgOiAnYSA+IGdlbl9wcm9wXG5cbiAgdHlwZSAnYSB3cml0ZW9ubHlfcHJvcCA9IDwgc2V0IDogJ2EgLT4gdW5pdCA+IGdlbl9wcm9wXG5cbiAgdHlwZSAnYSBwcm9wID0gPCBnZXQgOiAnYSA7IHNldCA6ICdhIC0+IHVuaXQgPiBnZW5fcHJvcFxuXG4gIHR5cGUgJ2Egb3B0ZGVmX3Byb3AgPSA8IGdldCA6ICdhIG9wdGRlZiA7IHNldCA6ICdhIC0+IHVuaXQgPiBnZW5fcHJvcFxuXG4gIHR5cGUgKydhIGNvbnN0clxuXG4gICgqKioqKVxuXG4gIHR5cGUgJ2EgY2FsbGJhY2sgPSAodW5pdCwgJ2EpIG1ldGhfY2FsbGJhY2tcblxuICBleHRlcm5hbCB3cmFwX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2MsICdhIC0+ICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9jYWxsYmFja1wiXG5cbiAgZXh0ZXJuYWwgd3JhcF9tZXRoX2NhbGxiYWNrIDogKCdhIC0+ICdiKSAtPiAoJ2EsICdiKSBtZXRoX2NhbGxiYWNrXG4gICAgPSBcImNhbWxfanNfd3JhcF9tZXRoX2NhbGxiYWNrXCJcblxuICAoKioqKilcblxuICBsZXQgX3RydWUgPSBVbnNhZmUucHVyZV9qc19leHByIFwidHJ1ZVwiXG5cbiAgbGV0IF9mYWxzZSA9IFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJmYWxzZVwiXG5cbiAgdHlwZSBtYXRjaF9yZXN1bHRfaGFuZGxlXG5cbiAgdHlwZSBzdHJpbmdfYXJyYXlcblxuICBjbGFzcyB0eXBlIGpzX3N0cmluZyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB2YWx1ZU9mIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY2hhckF0IDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNoYXJDb2RlQXQgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgICAoKiBUaGlzIG1heSByZXR1cm4gTmFOLi4uICopXG4gICAgICBtZXRob2QgY29uY2F0IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgY29uY2F0XzIgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBjb25jYXRfMyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGNvbmNhdF80IDpcbiAgICAgICAganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgaW5kZXhPZiA6IGpzX3N0cmluZyB0IC0+IGludCBtZXRoXG5cbiAgICAgIG1ldGhvZCBpbmRleE9mX2Zyb20gOiBqc19zdHJpbmcgdCAtPiBpbnQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIGxhc3RJbmRleE9mIDoganNfc3RyaW5nIHQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIGxhc3RJbmRleE9mX2Zyb20gOiBqc19zdHJpbmcgdCAtPiBpbnQgLT4gaW50IG1ldGhcblxuICAgICAgbWV0aG9kIGxvY2FsZUNvbXBhcmUgOiBqc19zdHJpbmcgdCAtPiBmbG9hdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBfbWF0Y2ggOiByZWdFeHAgdCAtPiBtYXRjaF9yZXN1bHRfaGFuZGxlIHQgb3B0IG1ldGhcblxuICAgICAgbWV0aG9kIG5vcm1hbGl6ZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIG5vcm1hbGl6ZV9mb3JtIDogbm9ybWFsaXphdGlvbiB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHJlcGxhY2UgOiByZWdFeHAgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCByZXBsYWNlX3N0cmluZyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNlYXJjaCA6IHJlZ0V4cCB0IC0+IGludCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc2xpY2VfZW5kIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNwbGl0IDoganNfc3RyaW5nIHQgLT4gc3RyaW5nX2FycmF5IHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3BsaXRfbGltaXRlZCA6IGpzX3N0cmluZyB0IC0+IGludCAtPiBzdHJpbmdfYXJyYXkgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzcGxpdF9yZWdFeHAgOiByZWdFeHAgdCAtPiBzdHJpbmdfYXJyYXkgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCBzcGxpdF9yZWdFeHBMaW1pdGVkIDogcmVnRXhwIHQgLT4gaW50IC0+IHN0cmluZ19hcnJheSB0IG1ldGhcblxuICAgICAgbWV0aG9kIHN1YnN0cmluZyA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2Qgc3Vic3RyaW5nX3RvRW5kIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvTG93ZXJDYXNlIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdG9Mb2NhbGVMb3dlckNhc2UgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b1VwcGVyQ2FzZSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHRvTG9jYWxlVXBwZXJDYXNlIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgICBtZXRob2QgdHJpbSA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gICAgZW5kXG5cbiAgYW5kIHJlZ0V4cCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZXhlYyA6IGpzX3N0cmluZyB0IC0+IG1hdGNoX3Jlc3VsdF9oYW5kbGUgdCBvcHQgbWV0aFxuXG4gICAgICBtZXRob2QgdGVzdCA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgICAgbWV0aG9kIHNvdXJjZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGdsb2JhbCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBpZ25vcmVDYXNlIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG11bHRpbGluZSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBsYXN0SW5kZXggOiBpbnQgcHJvcFxuICAgIGVuZFxuXG4gIGFuZCBub3JtYWxpemF0aW9uID0ganNfc3RyaW5nXG5cbiAgKCogc3RyaW5nIGlzIHVzZWQgYnkgcHB4X2pzLCBpdCBuZWVkcyB0byBjb21lIGJlZm9yZSBhbnkgdXNlIG9mIHRoZVxuICAgICBuZXcgc3ludGF4IGluIHRoaXMgZmlsZSAqKVxuICBleHRlcm5hbCBzdHJpbmcgOiBzdHJpbmcgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNzdHJpbmdfb2Zfc3RyaW5nXCJcblxuICBleHRlcm5hbCB0b19zdHJpbmcgOiBqc19zdHJpbmcgdCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2pzc3RyaW5nXCJcblxuICBsZXQgbmZjID0gc3RyaW5nIFwiTkZDXCJcblxuICBsZXQgbmZkID0gc3RyaW5nIFwiTkZEXCJcblxuICBsZXQgbmZrYyA9IHN0cmluZyBcIk5GS0NcIlxuXG4gIGxldCBuZmtkID0gc3RyaW5nIFwiTkZLRFwiXG5lbmRcblxuaW5jbHVkZSBKc1xuXG5jbGFzcyB0eXBlIHN0cmluZ19jb25zdHIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZnJvbUNoYXJDb2RlIDogaW50IC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmxldCBzdHJpbmdfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9TdHJpbmdcblxubGV0IHJlZ0V4cCA9IFVuc2FmZS5nbG9iYWwjIy5fUmVnRXhwXG5cbmxldCByZWdFeHBfY29weSA9IHJlZ0V4cFxuXG5sZXQgcmVnRXhwX3dpdGhGbGFncyA9IHJlZ0V4cFxuXG5jbGFzcyB0eXBlIFsnYV0ganNfYXJyYXkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgY29uY2F0IDogJ2EganNfYXJyYXkgdCAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBqb2luIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHBvcCA6ICdhIG9wdGRlZiBtZXRoXG5cbiAgICBtZXRob2QgcHVzaCA6ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgcHVzaF8yIDogJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBwdXNoXzMgOiAnYSAtPiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2hfNCA6ICdhIC0+ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgcmV2ZXJzZSA6ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNoaWZ0IDogJ2Egb3B0ZGVmIG1ldGhcblxuICAgIG1ldGhvZCBzbGljZSA6IGludCAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2VfZW5kIDogaW50IC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNvcnQgOiAoJ2EgLT4gJ2EgLT4gZmxvYXQpIGNhbGxiYWNrIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNvcnRfYXNTdHJpbmdzIDogJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlIDogaW50IC0+IGludCAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2VfMSA6IGludCAtPiBpbnQgLT4gJ2EgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc3BsaWNlXzIgOiBpbnQgLT4gaW50IC0+ICdhIC0+ICdhIC0+ICdhIGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNwbGljZV8zIDogaW50IC0+IGludCAtPiAnYSAtPiAnYSAtPiAnYSAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBzcGxpY2VfNCA6IGludCAtPiBpbnQgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EgLT4gJ2EganNfYXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2QgdW5zaGlmdCA6ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgdW5zaGlmdF8yIDogJ2EgLT4gJ2EgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCB1bnNoaWZ0XzMgOiAnYSAtPiAnYSAtPiAnYSAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc2hpZnRfNCA6ICdhIC0+ICdhIC0+ICdhIC0+ICdhIC0+IGludCBtZXRoXG5cbiAgICBtZXRob2Qgc29tZSA6ICgnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiBib29sIHQpIGNhbGxiYWNrIC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZXZlcnkgOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gYm9vbCB0KSBjYWxsYmFjayAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGZvckVhY2ggOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gdW5pdCkgY2FsbGJhY2sgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbWFwIDogKCdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdiKSBjYWxsYmFjayAtPiAnYiBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBmaWx0ZXIgOiAoJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gYm9vbCB0KSBjYWxsYmFjayAtPiAnYSBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCByZWR1Y2VfaW5pdCA6XG4gICAgICAoJ2IgLT4gJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2IpIGNhbGxiYWNrIC0+ICdiIC0+ICdiIG1ldGhcblxuICAgIG1ldGhvZCByZWR1Y2UgOiAoJ2EgLT4gJ2EgLT4gaW50IC0+ICdhIGpzX2FycmF5IHQgLT4gJ2EpIGNhbGxiYWNrIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCByZWR1Y2VSaWdodF9pbml0IDpcbiAgICAgICgnYiAtPiAnYSAtPiBpbnQgLT4gJ2EganNfYXJyYXkgdCAtPiAnYikgY2FsbGJhY2sgLT4gJ2IgLT4gJ2IgbWV0aFxuXG4gICAgbWV0aG9kIHJlZHVjZVJpZ2h0IDogKCdhIC0+ICdhIC0+IGludCAtPiAnYSBqc19hcnJheSB0IC0+ICdhKSBjYWxsYmFjayAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHByb3BcbiAgZW5kXG5cbmxldCBvYmplY3RfY29uc3RydWN0b3IgPSBVbnNhZmUuZ2xvYmFsIyMuX09iamVjdFxuXG5sZXQgb2JqZWN0X2tleXMgbyA6IGpzX3N0cmluZyB0IGpzX2FycmF5IHQgPSBvYmplY3RfY29uc3RydWN0b3IjI2tleXMgb1xuXG5sZXQgYXJyYXlfY29uc3RydWN0b3IgPSBVbnNhZmUuZ2xvYmFsIyMuX0FycmF5XG5cbmxldCBhcnJheV9lbXB0eSA9IGFycmF5X2NvbnN0cnVjdG9yXG5cbmxldCBhcnJheV9sZW5ndGggPSBhcnJheV9jb25zdHJ1Y3RvclxuXG5sZXQgYXJyYXlfZ2V0IDogJ2EgI2pzX2FycmF5IHQgLT4gaW50IC0+ICdhIG9wdGRlZiA9IFVuc2FmZS5nZXRcblxubGV0IGFycmF5X3NldCA6ICdhICNqc19hcnJheSB0IC0+IGludCAtPiAnYSAtPiB1bml0ID0gVW5zYWZlLnNldFxuXG5sZXQgYXJyYXlfbWFwX3BvbHkgOlxuICAgICdhICNqc19hcnJheSB0IC0+ICgnYSAtPiBpbnQgLT4gJ2EgI2pzX2FycmF5IHQgLT4gJ2IpIGNhbGxiYWNrIC0+ICdiICNqc19hcnJheSB0ID1cbiBmdW4gYSBjYiAtPiAoVW5zYWZlLmNvZXJjZSBhKSMjbWFwIGNiXG5cbmxldCBhcnJheV9tYXAgZiBhID0gYXJyYXlfbWFwX3BvbHkgYSAod3JhcF9jYWxsYmFjayAoZnVuIHggX2lkeCBfIC0+IGYgeCkpXG5cbmxldCBhcnJheV9tYXBpIGYgYSA9IGFycmF5X21hcF9wb2x5IGEgKHdyYXBfY2FsbGJhY2sgKGZ1biB4IGlkeCBfIC0+IGYgaWR4IHgpKVxuXG5jbGFzcyB0eXBlIG1hdGNoX3Jlc3VsdCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgW2pzX3N0cmluZyB0XSBqc19hcnJheVxuXG4gICAgbWV0aG9kIGluZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnB1dCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBzdHJfYXJyYXkgOiBzdHJpbmdfYXJyYXkgdCAtPiBqc19zdHJpbmcgdCBqc19hcnJheSB0ID0gVW5zYWZlLmNvZXJjZVxuXG5sZXQgbWF0Y2hfcmVzdWx0IDogbWF0Y2hfcmVzdWx0X2hhbmRsZSB0IC0+IG1hdGNoX3Jlc3VsdCB0ID0gVW5zYWZlLmNvZXJjZVxuXG5jbGFzcyB0eXBlIG51bWJlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1N0cmluZ19yYWRpeCA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9GaXhlZCA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9FeHBvbmVudGlhbCA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b0V4cG9uZW50aWFsX2RpZ2l0cyA6IGludCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9QcmVjaXNpb24gOiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuZXh0ZXJuYWwgbnVtYmVyX29mX2Zsb2F0IDogZmxvYXQgLT4gbnVtYmVyIHQgPSBcImNhbWxfanNfZnJvbV9mbG9hdFwiXG5cbmV4dGVybmFsIGZsb2F0X29mX251bWJlciA6IG51bWJlciB0IC0+IGZsb2F0ID0gXCJjYW1sX2pzX3RvX2Zsb2F0XCJcblxuY2xhc3MgdHlwZSBkYXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvRGF0ZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB0b1RpbWVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVTdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9Mb2NhbGVEYXRlU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvTG9jYWxlVGltZVN0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCB2YWx1ZU9mIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RnVsbFllYXIgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ0Z1bGxZZWFyIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRNb250aCA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDTW9udGggOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldERhdGUgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ0RhdGUgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldERheSA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDRGF5IDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRIb3VycyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDSG91cnMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldE1pbnV0ZXMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ01pbnV0ZXMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNlY29uZHMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVUQ1NlY29uZHMgOiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldE1pbGxpc2Vjb25kcyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VVRDTWlsbGlzZWNvbmRzIDogaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRUaW1lem9uZU9mZnNldCA6IGludCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VGltZSA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRGdWxsWWVhciA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDRnVsbFllYXIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldE1vbnRoIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENNb250aCA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RGF0ZSA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDRGF0ZSA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RGF5IDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENEYXkgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEhvdXJzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENIb3VycyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TWludXRlcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDTWludXRlcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U2Vjb25kcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VVRDU2Vjb25kcyA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0TWlsbGlzZWNvbmRzIDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVVENNaWxsaXNlY29uZHMgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHRvVVRDU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvSVNPU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvSlNPTiA6ICdhIC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZGF0ZV9jb25zdHIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGFyc2UgOiBqc19zdHJpbmcgdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19tb250aCA6IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfZGF5IDogaW50IC0+IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgX1VUQ19ob3VyIDogaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBfVVRDX21pbiA6IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfc2VjIDogaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIF9VVENfbXMgOiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG5vdyA6IGZsb2F0IG1ldGhcbiAgZW5kXG5cbmxldCBkYXRlX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fRGF0ZVxuXG5sZXQgZGF0ZSA6IGRhdGVfY29uc3RyIHQgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9ub3cgOiBkYXRlIHQgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfZnJvbVRpbWVWYWx1ZSA6IChmbG9hdCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX21vbnRoIDogKGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9kYXkgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gZGF0ZSB0KSBjb25zdHIgPSBkYXRlX2NvbnN0clxuXG5sZXQgZGF0ZV9ob3VyIDogKGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBkYXRlIHQpIGNvbnN0ciA9IGRhdGVfY29uc3RyXG5cbmxldCBkYXRlX21pbiA6IChpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfc2VjIDogKGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID0gZGF0ZV9jb25zdHJcblxubGV0IGRhdGVfbXMgOiAoaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGRhdGUgdCkgY29uc3RyID1cbiAgZGF0ZV9jb25zdHJcblxuY2xhc3MgdHlwZSBtYXRoID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF9FIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MTjIgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xOMTAgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xPRzJFIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MT0cxMEUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BJIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUVJUMV8yXyA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1FSVDIgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWJzIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGFjb3MgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgYXNpbiA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBhdGFuIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGF0YW4yIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGNlaWwgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgY29zIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGV4cCA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBmbG9vciA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBsb2cgOiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgbWF4IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1heF8zIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1heF80IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIG1pbiA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtaW5fMyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBtaW5fNCA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBwb3cgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgcmFuZG9tIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHJvdW5kIDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNpbiA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBzcXJ0IDogZmxvYXQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHRhbiA6IGZsb2F0IC0+IGZsb2F0IG1ldGhcbiAgZW5kXG5cbmxldCBtYXRoID0gVW5zYWZlLmdsb2JhbCMjLl9NYXRoXG5cbmNsYXNzIHR5cGUgZXJyb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtZXNzYWdlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0YWNrIDoganNfc3RyaW5nIHQgb3B0ZGVmIHByb3BcblxuICAgIG1ldGhvZCB0b1N0cmluZyA6IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmxldCBlcnJvcl9jb25zdHIgPSBVbnNhZmUuZ2xvYmFsIyMuX0Vycm9yXG5cbm1vZHVsZSBKc19lcnJvciA9IHN0cnVjdFxuICB0eXBlIGVycm9yX3QgPSBlcnJvciB0XG5cbiAgaW5jbHVkZSBKc29vX3J1bnRpbWUuRXJyb3JcblxuICBleHRlcm5hbCBvZl9lcnJvciA6IGVycm9yX3QgLT4gdCA9IFwiJWlkZW50aXR5XCJcblxuICBleHRlcm5hbCB0b19lcnJvciA6IHQgLT4gZXJyb3JfdCA9IFwiJWlkZW50aXR5XCJcblxuICBsZXQgbmFtZSBlID0gdG9fc3RyaW5nICh0b19lcnJvciBlKSMjLm5hbWVcblxuICBsZXQgbWVzc2FnZSBlID0gdG9fc3RyaW5nICh0b19lcnJvciBlKSMjLm1lc3NhZ2VcblxuICBsZXQgc3RhY2sgKGUgOiB0KSA6IHN0cmluZyBvcHRpb24gPVxuICAgIE9wdC50b19vcHRpb24gKE9wdC5tYXAgKHRvX2Vycm9yIGUpIyMuc3RhY2sgdG9fc3RyaW5nKVxuXG4gIGxldCB0b19zdHJpbmcgZSA9IHRvX3N0cmluZyAodG9fZXJyb3IgZSkjI3RvU3RyaW5nXG5lbmRcblxubW9kdWxlIE1hZ2ljID0gc3RydWN0XG4gIG1vZHVsZSB0eXBlIFQgPSBzaWdcbiAgICBleGNlcHRpb24gRXJyb3Igb2YgZXJyb3IgdFxuICBlbmRcblxuICB0eXBlICgnYSwgJ2IpIGVxID0gRXEgOiAoJ2EsICdhKSBlcVxuXG4gIGxldCAoZXEgOiAoZXJyb3IgdCwgSnNfZXJyb3IudCkgZXEpID0gT2JqLm1hZ2ljIEVxXG5cbiAgbGV0IG0gPVxuICAgIG1hdGNoIGVxIHdpdGhcbiAgICB8IEVxIC0+XG4gICAgICAgIChtb2R1bGUgc3RydWN0XG4gICAgICAgICAgZXhjZXB0aW9uIEVycm9yID0gSnNfZXJyb3IuRXhuXG4gICAgICAgIGVuZCA6IFQpXG5cbiAgbW9kdWxlIEVycm9yID0gKHZhbCBtIDogVClcbmVuZFxuXG5pbmNsdWRlIE1hZ2ljLkVycm9yXG5cbmxldCByYWlzZV9qc19lcnJvciBlID0gSnNfZXJyb3IucmFpc2VfIChKc19lcnJvci5vZl9lcnJvciBlKVxuXG5sZXQgc3RyaW5nX29mX2Vycm9yIGUgPSBKc19lcnJvci50b19zdHJpbmcgKEpzX2Vycm9yLm9mX2Vycm9yIGUpXG5cbmxldCBleG5fd2l0aF9qc19iYWNrdHJhY2UgPSBKc19lcnJvci5hdHRhY2hfanNfYmFja3RyYWNlXG5cbmV4dGVybmFsIGpzX2Vycm9yX29mX2V4biA6IGV4biAtPiBlcnJvciB0IG9wdCA9IFwiY2FtbF9qc19lcnJvcl9vZl9leGNlcHRpb25cIlxuXG5jbGFzcyB0eXBlIGpzb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGFyc2UgOiBqc19zdHJpbmcgdCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZ5IDogJ2EgLT4ganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxubGV0IF9KU09OIDoganNvbiB0ID0gVW5zYWZlLmdsb2JhbCMjLl9KU09OXG5cbmxldCBkZWNvZGVVUkkgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZGVjb2RlVVJJIFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgZGVjb2RlVVJJQ29tcG9uZW50IChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmRlY29kZVVSSUNvbXBvbmVudCBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IGVuY29kZVVSSSAocyA6IGpzX3N0cmluZyB0KSA6IGpzX3N0cmluZyB0ID1cbiAgVW5zYWZlLmZ1bl9jYWxsIFVuc2FmZS5nbG9iYWwjIy5lbmNvZGVVUkkgW3wgVW5zYWZlLmluamVjdCBzIHxdXG5cbmxldCBlbmNvZGVVUklDb21wb25lbnQgKHMgOiBqc19zdHJpbmcgdCkgOiBqc19zdHJpbmcgdCA9XG4gIFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuZW5jb2RlVVJJQ29tcG9uZW50IFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5sZXQgZXNjYXBlIChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLmVzY2FwZSBbfCBVbnNhZmUuaW5qZWN0IHMgfF1cblxubGV0IHVuZXNjYXBlIChzIDoganNfc3RyaW5nIHQpIDoganNfc3RyaW5nIHQgPVxuICBVbnNhZmUuZnVuX2NhbGwgVW5zYWZlLmdsb2JhbCMjLnVuZXNjYXBlIFt8IFVuc2FmZS5pbmplY3QgcyB8XVxuXG5leHRlcm5hbCBib29sIDogYm9vbCAtPiBib29sIHQgPSBcImNhbWxfanNfZnJvbV9ib29sXCJcblxuZXh0ZXJuYWwgdG9fYm9vbCA6IGJvb2wgdCAtPiBib29sID0gXCJjYW1sX2pzX3RvX2Jvb2xcIlxuXG5leHRlcm5hbCBhcnJheSA6ICdhIGFycmF5IC0+ICdhIGpzX2FycmF5IHQgPSBcImNhbWxfanNfZnJvbV9hcnJheVwiXG5cbmV4dGVybmFsIHRvX2FycmF5IDogJ2EganNfYXJyYXkgdCAtPiAnYSBhcnJheSA9IFwiY2FtbF9qc190b19hcnJheVwiXG5cbmV4dGVybmFsIGJ5dGVzdHJpbmcgOiBzdHJpbmcgLT4ganNfc3RyaW5nIHQgPSBcImNhbWxfanNieXRlc19vZl9zdHJpbmdcIlxuXG5leHRlcm5hbCB0b19ieXRlc3RyaW5nIDoganNfc3RyaW5nIHQgLT4gc3RyaW5nID0gXCJjYW1sX3N0cmluZ19vZl9qc2J5dGVzXCJcblxuZXh0ZXJuYWwgdHlwZW9mIDogXyB0IC0+IGpzX3N0cmluZyB0ID0gXCJjYW1sX2pzX3R5cGVvZlwiXG5cbmV4dGVybmFsIGluc3RhbmNlb2YgOiBfIHQgLT4gXyBjb25zdHIgLT4gYm9vbCA9IFwiY2FtbF9qc19pbnN0YW5jZW9mXCJcblxubGV0IGlzTmFOIChpIDogJ2EpIDogYm9vbCA9XG4gIHRvX2Jvb2wgKFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMuaXNOYU4gW3wgVW5zYWZlLmluamVjdCBpIHxdKVxuXG5sZXQgcGFyc2VJbnQgKHMgOiBqc19zdHJpbmcgdCkgOiBpbnQgPVxuICBsZXQgcyA9IFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMucGFyc2VJbnQgW3wgVW5zYWZlLmluamVjdCBzIHxdIGluXG4gIGlmIGlzTmFOIHMgdGhlbiBmYWlsd2l0aCBcInBhcnNlSW50XCIgZWxzZSBzXG5cbmxldCBwYXJzZUZsb2F0IChzIDoganNfc3RyaW5nIHQpIDogZmxvYXQgPVxuICBsZXQgcyA9IFVuc2FmZS5mdW5fY2FsbCBVbnNhZmUuZ2xvYmFsIyMucGFyc2VGbG9hdCBbfCBVbnNhZmUuaW5qZWN0IHMgfF0gaW5cbiAgaWYgaXNOYU4gcyB0aGVuIGZhaWx3aXRoIFwicGFyc2VGbG9hdFwiIGVsc2Ugc1xuXG5sZXQgXyA9XG4gIFByaW50ZXhjLnJlZ2lzdGVyX3ByaW50ZXIgKGZ1bmN0aW9uXG4gICAgICB8IEpzX2Vycm9yLkV4biBlIC0+IFNvbWUgKEpzX2Vycm9yLnRvX3N0cmluZyBlKVxuICAgICAgfCBfIC0+IE5vbmUpXG5cbmxldCBfID1cbiAgUHJpbnRleGMucmVnaXN0ZXJfcHJpbnRlciAoZnVuIGUgLT5cbiAgICAgIGxldCBlIDogPCAuLiA+IHQgPSBPYmoubWFnaWMgZSBpblxuICAgICAgaWYgaW5zdGFuY2VvZiBlIGFycmF5X2NvbnN0cnVjdG9yIHRoZW4gTm9uZSBlbHNlIFNvbWUgKHRvX3N0cmluZyBlIyN0b1N0cmluZykpXG5cbmxldCBleHBvcnRfanMgKGZpZWxkIDoganNfc3RyaW5nIHQpIHggPVxuICBVbnNhZmUuc2V0XG4gICAgKFVuc2FmZS5wdXJlX2pzX2V4cHIgXCJqc29vX2V4cG9ydHNcIilcbiAgICBmaWVsZFxuICAgIChpZiBTdHJpbmcuZXF1YWwgKEpzLnRvX3N0cmluZyAodHlwZW9mIChPYmoubWFnaWMgeCkpKSBcImZ1bmN0aW9uXCJcbiAgICAgICAgKCogZnVuY3Rpb24gd2l0aCBhcml0eS9sZW5ndGggZXF1YWwgdG8gemVybyBhcmUgYWxyZWFkeSB3cmFwcGVkICopXG4gICAgICAgICYmIFVuc2FmZS5nZXQgKE9iai5tYWdpYyB4KSAoSnMuc3RyaW5nIFwibGVuZ3RoXCIpID4gMFxuICAgIHRoZW4gT2JqLm1hZ2ljICh3cmFwX2NhbGxiYWNrIChPYmoubWFnaWMgeCkpXG4gICAgZWxzZSB4KVxuXG5sZXQgZXhwb3J0IGZpZWxkIHggPSBleHBvcnRfanMgKHN0cmluZyBmaWVsZCkgeFxuXG5sZXQgZXhwb3J0X2FsbCBvYmogPVxuICBsZXQga2V5cyA9IG9iamVjdF9rZXlzIG9iaiBpblxuICBrZXlzIyNmb3JFYWNoXG4gICAgKHdyYXBfY2FsbGJhY2sgKGZ1biAoa2V5IDoganNfc3RyaW5nIHQpIF8gXyAtPiBleHBvcnRfanMga2V5IChVbnNhZmUuZ2V0IG9iaiBrZXkpKSlcblxuKCoqKiopXG5cbigqIERFUFJFQ0FURUQgKilcblxudHlwZSBmbG9hdF9wcm9wID0gZmxvYXQgcHJvcFxuXG5leHRlcm5hbCBmbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuXG5leHRlcm5hbCB0b19mbG9hdCA6IGZsb2F0IC0+IGZsb2F0ID0gXCIlaWRlbnRpdHlcIlxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIFsnbm9kZV0gbm9kZUxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBsaXN0X29mX25vZGVMaXN0IChub2RlTGlzdCA6ICdhIG5vZGVMaXN0IHQpID1cbiAgbGV0IGxlbmd0aCA9IG5vZGVMaXN0IyMubGVuZ3RoIGluXG4gIGxldCByZWMgYWRkX2l0ZW0gYWNjIGkgPVxuICAgIGlmIGkgPCBsZW5ndGhcbiAgICB0aGVuXG4gICAgICBtYXRjaCBPcHQudG9fb3B0aW9uIChub2RlTGlzdCMjaXRlbSBpKSB3aXRoXG4gICAgICB8IE5vbmUgLT4gYWRkX2l0ZW0gYWNjIChpICsgMSlcbiAgICAgIHwgU29tZSBlIC0+IGFkZF9pdGVtIChlIDo6IGFjYykgKGkgKyAxKVxuICAgIGVsc2UgTGlzdC5yZXYgYWNjXG4gIGluXG4gIGFkZF9pdGVtIFtdIDBcblxudHlwZSBub2RlVHlwZSA9XG4gIHwgT1RIRVJcbiAgKCogV2lsbCBub3QgaGFwcGVuICopXG4gIHwgRUxFTUVOVFxuICB8IEFUVFJJQlVURVxuICB8IFRFWFRcbiAgfCBDREFUQV9TRUNUSU9OXG4gIHwgRU5USVRZX1JFRkVSRU5DRVxuICB8IEVOVElUWVxuICB8IFBST0NFU1NJTkdfSU5TVFJVQ1RJT05cbiAgfCBDT01NRU5UXG4gIHwgRE9DVU1FTlRcbiAgfCBET0NVTUVOVF9UWVBFXG4gIHwgRE9DVU1FTlRfRlJBR01FTlRcbiAgfCBOT1RBVElPTlxuXG5tb2R1bGUgRG9jdW1lbnRQb3NpdGlvbiA9IHN0cnVjdFxuICB0eXBlIHQgPSBpbnRcblxuICB0eXBlIG1hc2sgPSBpbnRcblxuICBsZXQgZGlzY29ubmVjdGVkID0gMHgwMVxuXG4gIGxldCBwcmVjZWRpbmcgPSAweDAyXG5cbiAgbGV0IGZvbGxvd2luZyA9IDB4MDRcblxuICBsZXQgY29udGFpbnMgPSAweDA4XG5cbiAgbGV0IGNvbnRhaW5lZF9ieSA9IDB4MTBcblxuICBsZXQgaW1wbGVtZW50YXRpb25fc3BlY2lmaWMgPSAweDIwXG5cbiAgbGV0IGhhcyB0IG1hc2sgPSB0IGxhbmQgbWFzayA9IG1hc2tcblxuICBsZXQgYWRkIHggeSA9IHggbG9yIHlcblxuICBsZXQgKCArICkgPSBhZGRcbmVuZFxuXG5jbGFzcyB0eXBlIG5vZGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgbm9kZU5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgbm9kZVZhbHVlIDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBub2RlVHlwZSA6IG5vZGVUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXJlbnROb2RlIDogbm9kZSB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgY2hpbGROb2RlcyA6IG5vZGUgbm9kZUxpc3QgdCBwcm9wXG5cbiAgICBtZXRob2QgZmlyc3RDaGlsZCA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RDaGlsZCA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIHByZXZpb3VzU2libGluZyA6IG5vZGUgdCBvcHQgcHJvcFxuXG4gICAgbWV0aG9kIG5leHRTaWJsaW5nIDogbm9kZSB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZXNwYWNlVVJJIDoganNfc3RyaW5nIHQgb3B0IHByb3BcblxuICAgIG1ldGhvZCBpbnNlcnRCZWZvcmUgOiBub2RlIHQgLT4gbm9kZSB0IG9wdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2VDaGlsZCA6IG5vZGUgdCAtPiBub2RlIHQgLT4gbm9kZSB0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVDaGlsZCA6IG5vZGUgdCAtPiBub2RlIHQgbWV0aFxuXG4gICAgbWV0aG9kIGFwcGVuZENoaWxkIDogbm9kZSB0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgaGFzQ2hpbGROb2RlcyA6IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvbmVOb2RlIDogYm9vbCB0IC0+IG5vZGUgdCBtZXRoXG5cbiAgICBtZXRob2QgY29tcGFyZURvY3VtZW50UG9zaXRpb24gOiBub2RlIHQgLT4gRG9jdW1lbnRQb3NpdGlvbi50IG1ldGhcblxuICAgIG1ldGhvZCBsb29rdXBOYW1lc3BhY2VVUkkgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGxvb2t1cFByZWZpeCA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG4gIGVuZFxuXG5sZXQgYXBwZW5kQ2hpbGQgKHAgOiAjbm9kZSB0KSAobiA6ICNub2RlIHQpID0gaWdub3JlIChwIyNhcHBlbmRDaGlsZCAobiA6PiBub2RlIHQpKVxuXG5sZXQgcmVtb3ZlQ2hpbGQgKHAgOiAjbm9kZSB0KSAobiA6ICNub2RlIHQpID0gaWdub3JlIChwIyNyZW1vdmVDaGlsZCAobiA6PiBub2RlIHQpKVxuXG5sZXQgcmVwbGFjZUNoaWxkIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSAobyA6ICNub2RlIHQpID1cbiAgaWdub3JlIChwIyNyZXBsYWNlQ2hpbGQgKG4gOj4gbm9kZSB0KSAobyA6PiBub2RlIHQpKVxuXG5sZXQgaW5zZXJ0QmVmb3JlIChwIDogI25vZGUgdCkgKG4gOiAjbm9kZSB0KSAobyA6ICNub2RlIHQgb3B0KSA9XG4gIGlnbm9yZSAocCMjaW5zZXJ0QmVmb3JlIChuIDo+IG5vZGUgdCkgKG8gOj4gbm9kZSB0IG9wdCkpXG5cbigqKiBTcGVjaWZpY2F0aW9uIG9mIFtBdHRyXSBvYmplY3RzLiAqKVxuY2xhc3MgdHlwZSBhdHRyID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBub2RlXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzcGVjaWZpZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG93bmVyRWxlbWVudCA6IGVsZW1lbnQgdCBwcm9wXG4gIGVuZFxuXG4oKiogU3BlY2lmaWNhdGlvbiBvZiBbTmFtZWROb2RlTWFwXSBvYmplY3RzLiAqKVxuYW5kIFsnbm9kZV0gbmFtZWROb2RlTWFwID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldE5hbWVkSXRlbSA6IGpzX3N0cmluZyB0IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzZXROYW1lZEl0ZW0gOiAnbm9kZSB0IC0+ICdub2RlIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVOYW1lZEl0ZW0gOiBqc19zdHJpbmcgdCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiAnbm9kZSB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqKiBTcGVjaWZpY2F0aW9uIG9mIFtFbGVtZW50XSBvYmplY3RzLiAqKVxuYW5kIGVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG5vZGVcblxuICAgIG1ldGhvZCB0YWdOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldEF0dHJpYnV0ZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0QXR0cmlidXRlIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlQXR0cmlidXRlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaGFzQXR0cmlidXRlIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJ1dGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0QXR0cmlidXRlTlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVBdHRyaWJ1dGVOUyA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGhhc0F0dHJpYnV0ZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJ1dGVOb2RlIDoganNfc3RyaW5nIHQgLT4gYXR0ciB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0QXR0cmlidXRlTm9kZSA6IGF0dHIgdCAtPiBhdHRyIHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVBdHRyaWJ1dGVOb2RlIDogYXR0ciB0IC0+IGF0dHIgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QXR0cmlidXRlTm9kZU5TIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gYXR0ciB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0QXR0cmlidXRlTm9kZU5TIDogYXR0ciB0IC0+IGF0dHIgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRzQnlUYWdOYW1lIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCBub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVzIDogYXR0ciBuYW1lZE5vZGVNYXAgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGNoYXJhY3RlckRhdGEgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG5vZGVcblxuICAgIG1ldGhvZCBkYXRhIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3VianNfc3RyaW5nRGF0YSA6IGludCAtPiBpbnQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGFwcGVuZERhdGEgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbnNlcnREYXRhIDogaW50IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZURhdGEgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcGxhY2VEYXRhIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgY29tbWVudCA9IGNoYXJhY3RlckRhdGFcblxuY2xhc3MgdHlwZSB0ZXh0ID0gY2hhcmFjdGVyRGF0YVxuXG5jbGFzcyB0eXBlIGRvY3VtZW50RnJhZ21lbnQgPSBub2RlXG5cbmNsYXNzIHR5cGUgWydlbGVtZW50XSBkb2N1bWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbm9kZVxuXG4gICAgbWV0aG9kIGRvY3VtZW50RWxlbWVudCA6ICdlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQgOiBkb2N1bWVudEZyYWdtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUVsZW1lbnQgOiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVFbGVtZW50TlMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiAnZWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVUZXh0Tm9kZSA6IGpzX3N0cmluZyB0IC0+IHRleHQgdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlQXR0cmlidXRlIDoganNfc3RyaW5nIHQgLT4gYXR0ciB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVDb21tZW50IDoganNfc3RyaW5nIHQgLT4gY29tbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50QnlJZCA6IGpzX3N0cmluZyB0IC0+ICdlbGVtZW50IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5VGFnTmFtZSA6IGpzX3N0cmluZyB0IC0+ICdlbGVtZW50IG5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGltcG9ydE5vZGUgOiBlbGVtZW50IHQgLT4gYm9vbCB0IC0+ICdlbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGFkb3B0Tm9kZSA6IGVsZW1lbnQgdCAtPiAnZWxlbWVudCB0IG1ldGhcbiAgZW5kXG5cbnR5cGUgbm9kZV90eXBlID1cbiAgfCBFbGVtZW50IG9mIGVsZW1lbnQgdFxuICB8IEF0dHIgb2YgYXR0ciB0XG4gIHwgVGV4dCBvZiB0ZXh0IHRcbiAgfCBPdGhlciBvZiBub2RlIHRcblxubGV0IG5vZGVUeXBlIGUgPVxuICBtYXRjaCBlIyMubm9kZVR5cGUgd2l0aFxuICB8IEVMRU1FTlQgLT4gRWxlbWVudCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICB8IEFUVFJJQlVURSAtPiBBdHRyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gIHwgQ0RBVEFfU0VDVElPTiB8IFRFWFQgLT4gVGV4dCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICB8IF8gLT4gT3RoZXIgKGUgOj4gbm9kZSB0KVxuXG5tb2R1bGUgQ29lcmNlVG8gPSBzdHJ1Y3RcbiAgbGV0IGNhc3QgKGUgOiAjbm9kZSBKcy50KSB0ID1cbiAgICBpZiBlIyMubm9kZVR5cGUgPT0gdCB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSkgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGVsZW1lbnQgZSA6IGVsZW1lbnQgSnMudCBKcy5vcHQgPSBjYXN0IGUgRUxFTUVOVFxuXG4gIGxldCB0ZXh0IGUgOiB0ZXh0IEpzLnQgSnMub3B0ID1cbiAgICBpZiBlIyMubm9kZVR5cGUgPT0gVEVYVCB8fCBlIyMubm9kZVR5cGUgPT0gQ0RBVEFfU0VDVElPTlxuICAgIHRoZW4gSnMuc29tZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBhdHRyIGUgOiBhdHRyIEpzLnQgSnMub3B0ID0gY2FzdCBlIEFUVFJJQlVURVxuZW5kXG5cbnR5cGUgKCdhLCAnYikgZXZlbnRfbGlzdGVuZXIgPSAoJ2EsICdiIC0+IGJvb2wgdCkgbWV0aF9jYWxsYmFjayBvcHRcbigqKiBUaGUgdHlwZSBvZiBldmVudCBsaXN0ZW5lciBmdW5jdGlvbnMuICBUaGUgZmlyc3QgdHlwZSBwYXJhbWV0ZXJcbiAgICAgIFsnYV0gaXMgdGhlIHR5cGUgb2YgdGhlIHRhcmdldCBvYmplY3Q7IHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICBbJ2JdIGlzIHRoZSB0eXBlIG9mIHRoZSBldmVudCBvYmplY3QuICopXG5cbmNsYXNzIHR5cGUgWydhXSBldmVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiAnYSB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFRhcmdldCA6ICdhIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgICgqIExlZ2FjeSBtZXRob2RzICopXG4gICAgbWV0aG9kIHNyY0VsZW1lbnQgOiAnYSB0IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYSwgJ2JdIGN1c3RvbUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIGV2ZW50XG5cbiAgICBtZXRob2QgZGV0YWlsIDogJ2IgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBub19oYW5kbGVyIDogKCdhLCAnYikgZXZlbnRfbGlzdGVuZXIgPSBKcy5udWxsXG5cbmxldCB3aW5kb3dfZXZlbnQgKCkgOiAnYSAjZXZlbnQgdCA9IEpzLlVuc2FmZS5wdXJlX2pzX2V4cHIgXCJldmVudFwiXG5cbigqIFRoZSBmdW5jdGlvbiBwcmV2ZW50RGVmYXVsdCBtdXN0IGJlIGNhbGxlZCBleHBsaWNpdGx5IHdoZW5cbiAgIHVzaW5nIGFkZEV2ZW50TGlzdGVuZXIuLi4gKilcbmxldCBoYW5kbGVyIGYgPVxuICBKcy5zb21lXG4gICAgKEpzLlVuc2FmZS5jYWxsYmFjayAoZnVuIGUgLT5cbiAgICAgICAgICgqIGRlcGVuZGluZyBvbiB0aGUgaW50ZXJuZXQgZXhwbG9yZXIgdmVyc2lvbiwgZSBjYW4gYmUgbnVsbCBvciB1bmRlZmluZWQuICopXG4gICAgICAgICBpZiBub3QgKEpzLk9wdC50ZXN0IChzb21lIGUpKVxuICAgICAgICAgdGhlbiAoXG4gICAgICAgICAgIGxldCBlID0gd2luZG93X2V2ZW50ICgpIGluXG4gICAgICAgICAgIGxldCByZXMgPSBmIGUgaW5cbiAgICAgICAgICAgaWYgbm90IChKcy50b19ib29sIHJlcykgdGhlbiBlIyMucmV0dXJuVmFsdWUgOj0gcmVzO1xuICAgICAgICAgICByZXMpXG4gICAgICAgICBlbHNlXG4gICAgICAgICAgIGxldCByZXMgPSBmIGUgaW5cbiAgICAgICAgICAgaWYgbm90IChKcy50b19ib29sIHJlcykgdGhlbiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjcHJldmVudERlZmF1bHQ7XG4gICAgICAgICAgIHJlcykpXG5cbmxldCBmdWxsX2hhbmRsZXIgZiA9XG4gIEpzLnNvbWVcbiAgICAoSnMuVW5zYWZlLm1ldGhfY2FsbGJhY2sgKGZ1biB0aGlzIGUgLT5cbiAgICAgICAgICgqIGRlcGVuZGluZyBvbiB0aGUgaW50ZXJuZXQgZXhwbG9yZXIgdmVyc2lvbiwgZSBjYW4gYmUgbnVsbCBvciB1bmRlZmluZWQgKilcbiAgICAgICAgIGlmIG5vdCAoSnMuT3B0LnRlc3QgKHNvbWUgZSkpXG4gICAgICAgICB0aGVuIChcbiAgICAgICAgICAgbGV0IGUgPSB3aW5kb3dfZXZlbnQgKCkgaW5cbiAgICAgICAgICAgbGV0IHJlcyA9IGYgdGhpcyBlIGluXG4gICAgICAgICAgIGlmIG5vdCAoSnMudG9fYm9vbCByZXMpIHRoZW4gZSMjLnJldHVyblZhbHVlIDo9IHJlcztcbiAgICAgICAgICAgcmVzKVxuICAgICAgICAgZWxzZVxuICAgICAgICAgICBsZXQgcmVzID0gZiB0aGlzIGUgaW5cbiAgICAgICAgICAgaWYgbm90IChKcy50b19ib29sIHJlcykgdGhlbiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjcHJldmVudERlZmF1bHQ7XG4gICAgICAgICAgIHJlcykpXG5cbmxldCBpbnZva2VfaGFuZGxlciAoZiA6ICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyKSAodGhpcyA6ICdhKSAoZXZlbnQgOiAnYikgOiBib29sIHQgPVxuICBKcy5VbnNhZmUuY2FsbCBmIHRoaXMgW3wgSnMuVW5zYWZlLmluamVjdCBldmVudCB8XVxuXG5sZXQgZXZlbnRUYXJnZXQgKGUgOiAoPCAuLiA+IGFzICdhKSAjZXZlbnQgdCkgOiAnYSB0ID1cbiAgbGV0IHRhcmdldCA9XG4gICAgT3B0LmdldCBlIyMudGFyZ2V0IChmdW4gKCkgLT4gT3B0LmdldCBlIyMuc3JjRWxlbWVudCAoZnVuICgpIC0+IHJhaXNlIE5vdF9mb3VuZCkpXG4gIGluXG4gIGlmIEpzLmluc3RhbmNlb2YgdGFyZ2V0IEpzLlVuc2FmZS5nbG9iYWwjIy5fTm9kZVxuICB0aGVuXG4gICAgKCogV29ya2Fyb3VuZCBmb3IgU2FmYXJpIGJ1ZyAqKVxuICAgIGxldCB0YXJnZXQnIDogbm9kZSBKcy50ID0gSnMuVW5zYWZlLmNvZXJjZSB0YXJnZXQgaW5cbiAgICBpZiB0YXJnZXQnIyMubm9kZVR5cGUgPT0gVEVYVFxuICAgIHRoZW4gSnMuVW5zYWZlLmNvZXJjZSAoT3B0LmdldCB0YXJnZXQnIyMucGFyZW50Tm9kZSAoZnVuICgpIC0+IGFzc2VydCBmYWxzZSkpXG4gICAgZWxzZSB0YXJnZXRcbiAgZWxzZSB0YXJnZXRcblxubW9kdWxlIEV2ZW50ID0gc3RydWN0XG4gIHR5cGUgJ2EgdHlwID0gSnMuanNfc3RyaW5nIEpzLnRcblxuICBsZXQgbWFrZSBzID0gSnMuc3RyaW5nIHNcbmVuZFxuXG50eXBlIGV2ZW50X2xpc3RlbmVyX2lkID0gdW5pdCAtPiB1bml0XG5cbmNsYXNzIHR5cGUgZXZlbnRfbGlzdGVuZXJfb3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjYXB0dXJlIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25jZSA6IGJvb2wgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhc3NpdmUgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBhZGRFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgKGUgOiAoPCAuLiA+IGFzICdhKSB0KSB0eXAgP2NhcHR1cmUgP29uY2UgP3Bhc3NpdmUgaCA9XG4gIGlmIChKcy5VbnNhZmUuY29lcmNlIGUpIyMuYWRkRXZlbnRMaXN0ZW5lciA9PSBKcy51bmRlZmluZWRcbiAgdGhlblxuICAgIGxldCBldiA9IChKcy5zdHJpbmcgXCJvblwiKSMjY29uY2F0IHR5cCBpblxuICAgIGxldCBjYWxsYmFjayBlID0gSnMuVW5zYWZlLmNhbGwgKGgsIGUsIFt8fF0pIGluXG4gICAgbGV0ICgpID0gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI2F0dGFjaEV2ZW50IGV2IGNhbGxiYWNrIGluXG4gICAgZnVuICgpIC0+IChKcy5VbnNhZmUuY29lcmNlIGUpIyNkZXRhY2hFdmVudCBldiBjYWxsYmFja1xuICBlbHNlXG4gICAgbGV0IG9wdHMgOiBldmVudF9saXN0ZW5lcl9vcHRpb25zIHQgPSBKcy5VbnNhZmUub2JqIFt8fF0gaW5cbiAgICBsZXQgaXRlciB0IGYgPVxuICAgICAgbWF0Y2ggdCB3aXRoXG4gICAgICB8IE5vbmUgLT4gKClcbiAgICAgIHwgU29tZSBiIC0+IGYgYlxuICAgIGluXG4gICAgaXRlciBjYXB0dXJlIChmdW4gYiAtPiBvcHRzIyMuY2FwdHVyZSA6PSBiKTtcbiAgICBpdGVyIG9uY2UgKGZ1biBiIC0+IG9wdHMjIy5vbmNlIDo9IGIpO1xuICAgIGl0ZXIgcGFzc2l2ZSAoZnVuIGIgLT4gb3B0cyMjLnBhc3NpdmUgOj0gYik7XG4gICAgbGV0ICgpID0gKEpzLlVuc2FmZS5jb2VyY2UgZSkjI2FkZEV2ZW50TGlzdGVuZXIgdHlwIGggb3B0cyBpblxuICAgIGZ1biAoKSAtPiAoSnMuVW5zYWZlLmNvZXJjZSBlKSMjcmVtb3ZlRXZlbnRMaXN0ZW5lciB0eXAgaCBvcHRzXG5cbmxldCBhZGRFdmVudExpc3RlbmVyIChlIDogKDwgLi4gPiBhcyAnYSkgdCkgdHlwIGggY2FwdCA9XG4gIGFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyBlIHR5cCB+Y2FwdHVyZTpjYXB0IGhcblxubGV0IHJlbW92ZUV2ZW50TGlzdGVuZXIgaWQgPSBpZCAoKVxuXG5sZXQgcHJldmVudERlZmF1bHQgZXYgPVxuICBpZiBKcy5PcHRkZWYudGVzdCAoSnMuVW5zYWZlLmNvZXJjZSBldikjIy5wcmV2ZW50RGVmYXVsdCAoKiBJRSBoYWNrICopXG4gIHRoZW4gKEpzLlVuc2FmZS5jb2VyY2UgZXYpIyNwcmV2ZW50RGVmYXVsdFxuICBlbHNlIChKcy5VbnNhZmUuY29lcmNlIGV2KSMjLnJldHVyblZhbHVlIDo9IEpzLmJvb2wgZmFsc2VcblxubGV0IGNyZWF0ZUN1c3RvbUV2ZW50ID9idWJibGVzID9jYW5jZWxhYmxlID9kZXRhaWwgdHlwID1cbiAgbGV0IG9wdF9pdGVyIGYgPSBmdW5jdGlvblxuICAgIHwgTm9uZSAtPiAoKVxuICAgIHwgU29tZSB4IC0+IGYgeFxuICBpblxuICBsZXQgb3B0cyA9IFVuc2FmZS5vYmogW3x8XSBpblxuICBvcHRfaXRlciAoZnVuIHggLT4gb3B0cyMjLmJ1YmJsZXMgOj0gYm9vbCB4KSBidWJibGVzO1xuICBvcHRfaXRlciAoZnVuIHggLT4gb3B0cyMjLmNhbmNlbGFibGUgOj0gYm9vbCB4KSBjYW5jZWxhYmxlO1xuICBvcHRfaXRlciAoZnVuIHggLT4gb3B0cyMjLmRldGFpbCA6PSBzb21lIHgpIGRldGFpbDtcbiAgbGV0IGNvbnN0ciA6XG4gICAgICAoICAgKCdhLCAnYikgI2N1c3RvbUV2ZW50IEpzLnQgRXZlbnQudHlwXG4gICAgICAgLT4gPCBkZXRhaWwgOiAnYiBvcHQgcHJvcCA+IHRcbiAgICAgICAtPiAoJ2EsICdiKSBjdXN0b21FdmVudCB0KVxuICAgICAgY29uc3RyID1cbiAgICBVbnNhZmUuZ2xvYmFsIyMuX0N1c3RvbUV2ZW50XG4gIGluXG4gIG5ldyVqcyBjb25zdHIgdHlwIG9wdHNcblxuKCogSUUgPCA5ICopXG5cbmNsYXNzIHR5cGUgc3RyaW5nTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250YWlucyA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG4gIGVuZFxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMiBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcbm9wZW4gSnNcblxudHlwZSB1aW50MzIgPSBmbG9hdFxuXG5jbGFzcyB0eXBlIGFycmF5QnVmZmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGJ5dGVMZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNsaWNlIDogaW50IC0+IGludCAtPiBhcnJheUJ1ZmZlciB0IG1ldGhcblxuICAgIG1ldGhvZCBzbGljZV90b0VuZCA6IGludCAtPiBhcnJheUJ1ZmZlciB0IG1ldGhcbiAgZW5kXG5cbmxldCBhcnJheUJ1ZmZlciA6IChpbnQgLT4gYXJyYXlCdWZmZXIgdCkgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9BcnJheUJ1ZmZlclxuXG5jbGFzcyB0eXBlIGFycmF5QnVmZmVyVmlldyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBidWZmZXIgOiBhcnJheUJ1ZmZlciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBieXRlT2Zmc2V0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBieXRlTGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhLCAnYl0gdHlwZWRBcnJheSA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYXJyYXlCdWZmZXJWaWV3XG5cbiAgICBtZXRob2QgX0JZVEVTX1BFUl9FTEVNRU5UIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldF9mcm9tQXJyYXkgOiAnYSBqc19hcnJheSB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRfZnJvbVR5cGVkQXJyYXkgOiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN1YmFycmF5IDogaW50IC0+IGludCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIHN1YmFycmF5X3RvRW5kIDogaW50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2UgOiBpbnQgLT4gaW50IC0+ICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2VfdG9FbmQgOiBpbnQgLT4gKCdhLCAnYikgdHlwZWRBcnJheSB0IG1ldGhcblxuICAgICgqIFRoaXMgZmFrZSBtZXRob2QgaXMgbmVlZGVkIGZvciB0eXBpbmcgcHVycG9zZXMuXG4gICAgICAgV2l0aG91dCBpdCwgWydiXSB3b3VsZCBub3QgYmUgY29uc3RyYWluZWQuICopXG4gICAgbWV0aG9kIF9jb250ZW50X3R5cGVfIDogJ2Igb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbnR5cGUgaW50OEFycmF5ID0gKGludCwgQmlnYXJyYXkuaW50OF9zaWduZWRfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgdWludDhBcnJheSA9IChpbnQsIEJpZ2FycmF5LmludDhfdW5zaWduZWRfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgaW50MTZBcnJheSA9IChpbnQsIEJpZ2FycmF5LmludDE2X3NpZ25lZF9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSB1aW50MTZBcnJheSA9IChpbnQsIEJpZ2FycmF5LmludDE2X3Vuc2lnbmVkX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIGludDMyQXJyYXkgPSAoaW50MzIsIEJpZ2FycmF5LmludDMyX2VsdCkgdHlwZWRBcnJheVxuXG50eXBlIHVpbnQzMkFycmF5ID0gKGludDMyLCBCaWdhcnJheS5pbnQzMl9lbHQpIHR5cGVkQXJyYXlcblxudHlwZSBmbG9hdDMyQXJyYXkgPSAoZmxvYXQsIEJpZ2FycmF5LmZsb2F0MzJfZWx0KSB0eXBlZEFycmF5XG5cbnR5cGUgZmxvYXQ2NEFycmF5ID0gKGZsb2F0LCBCaWdhcnJheS5mbG9hdDY0X2VsdCkgdHlwZWRBcnJheVxuXG5leHRlcm5hbCBraW5kIDogKCdhLCAnYikgdHlwZWRBcnJheSB0IC0+ICgnYSwgJ2IpIEJpZ2FycmF5LmtpbmRcbiAgPSBcImNhbWxfYmFfa2luZF9vZl90eXBlZF9hcnJheVwiXG5cbmV4dGVybmFsIGZyb21fZ2VuYXJyYXkgOlxuICAoJ2EsICdiLCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuR2VuYXJyYXkudCAtPiAoJ2EsICdiKSB0eXBlZEFycmF5IHRcbiAgPSBcImNhbWxfYmFfdG9fdHlwZWRfYXJyYXlcIlxuXG5leHRlcm5hbCB0b19nZW5hcnJheSA6XG4gICgnYSwgJ2IpIHR5cGVkQXJyYXkgdCAtPiAoJ2EsICdiLCBCaWdhcnJheS5jX2xheW91dCkgQmlnYXJyYXkuR2VuYXJyYXkudFxuICA9IFwiY2FtbF9iYV9mcm9tX3R5cGVkX2FycmF5XCJcblxubGV0IGludDhBcnJheSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50OEFycmF5XG5cbmxldCBpbnQ4QXJyYXlfZnJvbUFycmF5ID0gaW50OEFycmF5XG5cbmxldCBpbnQ4QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSBpbnQ4QXJyYXlcblxubGV0IGludDhBcnJheV9mcm9tQnVmZmVyID0gaW50OEFycmF5XG5cbmxldCBpbnQ4QXJyYXlfaW5CdWZmZXIgPSBpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1VpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXlfZnJvbUFycmF5ID0gdWludDhBcnJheVxuXG5sZXQgdWludDhBcnJheV9mcm9tVHlwZWRBcnJheSA9IHVpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXlfZnJvbUJ1ZmZlciA9IHVpbnQ4QXJyYXlcblxubGV0IHVpbnQ4QXJyYXlfaW5CdWZmZXIgPSB1aW50OEFycmF5XG5cbmxldCBpbnQxNkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnQxNkFycmF5XG5cbmxldCBpbnQxNkFycmF5X2Zyb21BcnJheSA9IGludDE2QXJyYXlcblxubGV0IGludDE2QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSBpbnQxNkFycmF5XG5cbmxldCBpbnQxNkFycmF5X2Zyb21CdWZmZXIgPSBpbnQxNkFycmF5XG5cbmxldCBpbnQxNkFycmF5X2luQnVmZmVyID0gaW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1VpbnQxNkFycmF5XG5cbmxldCB1aW50MTZBcnJheV9mcm9tQXJyYXkgPSB1aW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfZnJvbVR5cGVkQXJyYXkgPSB1aW50MTZBcnJheVxuXG5sZXQgdWludDE2QXJyYXlfZnJvbUJ1ZmZlciA9IHVpbnQxNkFycmF5XG5cbmxldCB1aW50MTZBcnJheV9pbkJ1ZmZlciA9IHVpbnQxNkFycmF5XG5cbmxldCBpbnQzMkFycmF5ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnQzMkFycmF5XG5cbmxldCBpbnQzMkFycmF5X2Zyb21BcnJheSA9IGludDMyQXJyYXlcblxubGV0IGludDMyQXJyYXlfZnJvbVR5cGVkQXJyYXkgPSBpbnQzMkFycmF5XG5cbmxldCBpbnQzMkFycmF5X2Zyb21CdWZmZXIgPSBpbnQzMkFycmF5XG5cbmxldCBpbnQzMkFycmF5X2luQnVmZmVyID0gaW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1VpbnQzMkFycmF5XG5cbmxldCB1aW50MzJBcnJheV9mcm9tQXJyYXkgPSB1aW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfZnJvbVR5cGVkQXJyYXkgPSB1aW50MzJBcnJheVxuXG5sZXQgdWludDMyQXJyYXlfZnJvbUJ1ZmZlciA9IHVpbnQzMkFycmF5XG5cbmxldCB1aW50MzJBcnJheV9pbkJ1ZmZlciA9IHVpbnQzMkFycmF5XG5cbmxldCBmbG9hdDMyQXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0Zsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5X2Zyb21BcnJheSA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5X2Zyb21UeXBlZEFycmF5ID0gZmxvYXQzMkFycmF5XG5cbmxldCBmbG9hdDMyQXJyYXlfZnJvbUJ1ZmZlciA9IGZsb2F0MzJBcnJheVxuXG5sZXQgZmxvYXQzMkFycmF5X2luQnVmZmVyID0gZmxvYXQzMkFycmF5XG5cbmxldCBmbG9hdDY0QXJyYXkgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0Zsb2F0NjRBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5X2Zyb21BcnJheSA9IGZsb2F0NjRBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5X2Zyb21UeXBlZEFycmF5ID0gZmxvYXQ2NEFycmF5XG5cbmxldCBmbG9hdDY0QXJyYXlfZnJvbUJ1ZmZlciA9IGZsb2F0NjRBcnJheVxuXG5sZXQgZmxvYXQ2NEFycmF5X2luQnVmZmVyID0gZmxvYXQ2NEFycmF5XG5cbmxldCBzZXQgOiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gaW50IC0+ICdhIC0+IHVuaXQgPVxuIGZ1biBhIGkgdiAtPiBhcnJheV9zZXQgKFVuc2FmZS5jb2VyY2UgYSkgaSB2XG5cbmxldCBnZXQgOiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gaW50IC0+ICdhIG9wdGRlZiA9IGZ1biBhIGkgLT4gSnMuVW5zYWZlLmdldCBhIGlcblxubGV0IHVuc2FmZV9nZXQgOiAoJ2EsICdiKSB0eXBlZEFycmF5IHQgLT4gaW50IC0+ICdhID0gZnVuIGEgaSAtPiBKcy5VbnNhZmUuZ2V0IGEgaVxuXG5jbGFzcyB0eXBlIGRhdGFWaWV3ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBhcnJheUJ1ZmZlclZpZXdcblxuICAgIG1ldGhvZCBnZXRJbnQ4IDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VWludDggOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRJbnQxNiA6IGludCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludDE2XyA6IGludCAtPiBib29sIHQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MTYgOiBpbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBnZXRVaW50MTZfIDogaW50IC0+IGJvb2wgdCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEludDMyIDogaW50IC0+IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50MzJfIDogaW50IC0+IGJvb2wgdCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQzMiA6IGludCAtPiB1aW50MzIgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVpbnQzMl8gOiBpbnQgLT4gYm9vbCB0IC0+IHVpbnQzMiBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQzMiA6IGludCAtPiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RmxvYXQzMl8gOiBpbnQgLT4gYm9vbCB0IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGbG9hdDY0IDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRGbG9hdDY0XyA6IGludCAtPiBib29sIHQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDggOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQ4IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnQxNiA6IGludCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50MTZfIDogaW50IC0+IGludCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDE2IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRVaW50MTZfIDogaW50IC0+IGludCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0SW50MzIgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEludDMyXyA6IGludCAtPiBpbnQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFVpbnQzMiA6IGludCAtPiB1aW50MzIgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VWludDMyXyA6IGludCAtPiB1aW50MzIgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0MzIgOiBpbnQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RmxvYXQzMl8gOiBpbnQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEZsb2F0NjQgOiBpbnQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RmxvYXQ2NF8gOiBpbnQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxubGV0IGRhdGFWaWV3ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9EYXRhVmlld1xuXG5sZXQgZGF0YVZpZXdfaW5CdWZmZXIgPSBkYXRhVmlld1xuXG5tb2R1bGUgQmlnc3RyaW5nID0gc3RydWN0XG4gIHR5cGUgdCA9IChjaGFyLCBCaWdhcnJheS5pbnQ4X3Vuc2lnbmVkX2VsdCwgQmlnYXJyYXkuY19sYXlvdXQpIEJpZ2FycmF5LkFycmF5MS50XG5cbiAgZXh0ZXJuYWwgdG9fYXJyYXlCdWZmZXIgOiB0IC0+IGFycmF5QnVmZmVyIEpzLnQgPSBcImJpZ3N0cmluZ190b19hcnJheV9idWZmZXJcIlxuXG4gIGV4dGVybmFsIHRvX3VpbnQ4QXJyYXkgOiB0IC0+IHVpbnQ4QXJyYXkgSnMudCA9IFwiYmlnc3RyaW5nX3RvX3R5cGVkX2FycmF5XCJcblxuICBleHRlcm5hbCBvZl9hcnJheUJ1ZmZlciA6IGFycmF5QnVmZmVyIEpzLnQgLT4gdCA9IFwiYmlnc3RyaW5nX29mX2FycmF5X2J1ZmZlclwiXG5cbiAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgSnMudCAtPiB0ID0gXCJiaWdzdHJpbmdfb2ZfdHlwZWRfYXJyYXlcIlxuZW5kXG5cbm1vZHVsZSBTdHJpbmcgPSBzdHJ1Y3RcbiAgZXh0ZXJuYWwgb2ZfdWludDhBcnJheSA6IHVpbnQ4QXJyYXkgSnMudCAtPiBzdHJpbmcgPSBcImNhbWxfc3RyaW5nX29mX2FycmF5XCJcblxuICBsZXQgb2ZfYXJyYXlCdWZmZXIgYWIgPVxuICAgIGxldCB1aW50OCA9IG5ldyVqcyB1aW50OEFycmF5X2Zyb21CdWZmZXIgYWIgaW5cbiAgICBvZl91aW50OEFycmF5IHVpbnQ4XG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTEgUGllcnJlIENoYW1iYXJ0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiBEb21cbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIGJsb2IgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgc2l6ZSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2xpY2UgOiBpbnQgLT4gaW50IC0+IGJsb2IgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2xpY2Vfd2l0aENvbnRlbnRUeXBlIDogaW50IC0+IGludCAtPiBqc19zdHJpbmcgdCAtPiBibG9iIHQgbWV0aFxuICBlbmRcblxubGV0IGJsb2JfY29uc3RyID0gVW5zYWZlLmdsb2JhbCMjLl9CbG9iXG5cbnR5cGUgJ2EgbWFrZV9ibG9iID1cbiAgP2NvbnRlbnRUeXBlOnN0cmluZyAtPiA/ZW5kaW5nczpbIGBUcmFuc3BhcmVudCB8IGBOYXRpdmUgXSAtPiAnYSAtPiBibG9iIHRcblxubGV0IHJlYyBmaWx0ZXJfbWFwIGYgPSBmdW5jdGlvblxuICB8IFtdIC0+IFtdXG4gIHwgdiA6OiBxIC0+IChcbiAgICAgIG1hdGNoIGYgdiB3aXRoXG4gICAgICB8IE5vbmUgLT4gZmlsdGVyX21hcCBmIHFcbiAgICAgIHwgU29tZSB2JyAtPiB2JyA6OiBmaWx0ZXJfbWFwIGYgcSlcblxubGV0IG1ha2VfYmxvYl9vcHRpb25zIGNvbnRlbnRUeXBlIGVuZGluZ3MgPVxuICBsZXQgb3B0aW9ucyA9XG4gICAgZmlsdGVyX21hcFxuICAgICAgKGZ1biAobmFtZSwgdikgLT5cbiAgICAgICAgbWF0Y2ggdiB3aXRoXG4gICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgIHwgU29tZSB2IC0+IFNvbWUgKG5hbWUsIFVuc2FmZS5pbmplY3QgKHN0cmluZyB2KSkpXG4gICAgICBbIFwidHlwZVwiLCBjb250ZW50VHlwZVxuICAgICAgOyAoIFwiZW5kaW5nc1wiXG4gICAgICAgICwgbWF0Y2ggZW5kaW5ncyB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IE5vbmVcbiAgICAgICAgICB8IFNvbWUgYFRyYW5zcGFyZW50IC0+IFNvbWUgXCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgfCBTb21lIGBOYXRpdmUgLT4gU29tZSBcIm5hdGl2ZVwiIClcbiAgICAgIF1cbiAgaW5cbiAgbWF0Y2ggb3B0aW9ucyB3aXRoXG4gIHwgW10gLT4gdW5kZWZpbmVkXG4gIHwgbCAtPiBVbnNhZmUub2JqIChBcnJheS5vZl9saXN0IGwpXG5cbmxldCBibG9iX3JhdyA/Y29udGVudFR5cGUgP2VuZGluZ3MgYSA9XG4gIGxldCBvcHRpb25zID0gbWFrZV9ibG9iX29wdGlvbnMgY29udGVudFR5cGUgZW5kaW5ncyBpblxuICBuZXclanMgYmxvYl9jb25zdHIgKGFycmF5IGEpIG9wdGlvbnNcblxubGV0IGJsb2JfZnJvbV9zdHJpbmcgP2NvbnRlbnRUeXBlID9lbmRpbmdzIHMgPVxuICBibG9iX3JhdyA/Y29udGVudFR5cGUgP2VuZGluZ3MgW3wgc3RyaW5nIHMgfF1cblxubGV0IGJsb2JfZnJvbV9hbnkgP2NvbnRlbnRUeXBlID9lbmRpbmdzIGwgPVxuICBsZXQgbCA9XG4gICAgTGlzdC5tYXBcbiAgICAgIChmdW5jdGlvblxuICAgICAgICB8IGBhcnJheUJ1ZmZlciBhIC0+IFVuc2FmZS5pbmplY3QgYVxuICAgICAgICB8IGBhcnJheUJ1ZmZlclZpZXcgYSAtPiBVbnNhZmUuaW5qZWN0IGFcbiAgICAgICAgfCBgc3RyaW5nIHMgLT4gVW5zYWZlLmluamVjdCAoc3RyaW5nIHMpXG4gICAgICAgIHwgYGpzX3N0cmluZyBzIC0+IFVuc2FmZS5pbmplY3Qgc1xuICAgICAgICB8IGBibG9iIGIgLT4gVW5zYWZlLmluamVjdCBiKVxuICAgICAgbFxuICBpblxuICBibG9iX3JhdyA/Y29udGVudFR5cGUgP2VuZGluZ3MgKEFycmF5Lm9mX2xpc3QgbClcblxuY2xhc3MgdHlwZSBmaWxlID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBibG9iXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsYXN0TW9kaWZpZWREYXRlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW4gZmlyZWZveCAzLjAtMy41IGZpbGUubmFtZSBpcyBub3QgYXZhaWxhYmxlLCB3ZSB1c2UgdGhlIG5vbnN0YW5kYXJkIGZpbGVOYW1lIGluc3RlYWQgKilcbmNsYXNzIHR5cGUgZmlsZV9uYW1lX29ubHkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsZU5hbWUgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGZpbGVuYW1lIGZpbGUgPVxuICBsZXQgZmlsZSA6IGZpbGVfbmFtZV9vbmx5IHQgPSBKcy5VbnNhZmUuY29lcmNlIGZpbGUgaW5cbiAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBmaWxlIyMubmFtZSB3aXRoXG4gIHwgTm9uZSAtPiAoXG4gICAgICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIGZpbGUjIy5maWxlTmFtZSB3aXRoXG4gICAgICB8IE5vbmUgLT4gZmFpbHdpdGggXCJjYW4ndCByZXRyaWV2ZSBmaWxlIG5hbWU6IG5vdCBpbXBsZW1lbnRlZFwiXG4gICAgICB8IFNvbWUgbmFtZSAtPiBuYW1lKVxuICB8IFNvbWUgbmFtZSAtPiBuYW1lXG5cbnR5cGUgZmlsZV9hbnkgPSA8ID4gdFxuXG5sZXQgZG9jX2NvbnN0ciA9IFVuc2FmZS5nbG9iYWwjIy5fRG9jdW1lbnRcblxubW9kdWxlIENvZXJjZVRvID0gc3RydWN0XG4gIGV4dGVybmFsIGpzb24gOiBmaWxlX2FueSAtPiAnYSBPcHQudCA9IFwiJWlkZW50aXR5XCJcblxuICBsZXQgZG9jdW1lbnQgKGUgOiBmaWxlX2FueSkgPVxuICAgIGlmIGluc3RhbmNlb2YgZSBkb2NfY29uc3RyXG4gICAgdGhlbiBKcy5zb21lIChVbnNhZmUuY29lcmNlIGUgOiBlbGVtZW50IGRvY3VtZW50IHQpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGJsb2IgKGUgOiBmaWxlX2FueSkgPVxuICAgIGlmIGluc3RhbmNlb2YgZSBibG9iX2NvbnN0ciB0aGVuIEpzLnNvbWUgKFVuc2FmZS5jb2VyY2UgZSA6ICNibG9iIHQpIGVsc2UgSnMubnVsbFxuXG4gIGxldCBzdHJpbmcgKGUgOiBmaWxlX2FueSkgPVxuICAgIGlmIHR5cGVvZiBlID09IHN0cmluZyBcInN0cmluZ1wiXG4gICAgdGhlbiBKcy5zb21lIChVbnNhZmUuY29lcmNlIGUgOiBqc19zdHJpbmcgdClcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYXJyYXlCdWZmZXIgKGUgOiBmaWxlX2FueSkgPVxuICAgIGlmIGluc3RhbmNlb2YgZSBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclxuICAgIHRoZW4gSnMuc29tZSAoVW5zYWZlLmNvZXJjZSBlIDogVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdClcbiAgICBlbHNlIEpzLm51bGxcbmVuZFxuXG5jbGFzcyB0eXBlIGZpbGVMaXN0ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZmlsZV0gRG9tLm5vZGVMaXN0XG4gIGVuZFxuXG5jbGFzcyB0eXBlIGZpbGVFcnJvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjb2RlIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhXSBwcm9ncmVzc0V2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIGV2ZW50XG5cbiAgICBtZXRob2QgbGVuZ3RoQ29tcHV0YWJsZSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9hZGVkIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0b3RhbCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHByb2dyZXNzRXZlbnRUYXJnZXQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIG1ldGhvZCBvbmxvYWRzdGFydCA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wcm9ncmVzcyA6ICgnc2VsZiB0LCAnc2VsZiBwcm9ncmVzc0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkIDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFib3J0IDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKCdzZWxmIHQsICdzZWxmIHByb2dyZXNzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvYWRlbmQgOiAoJ3NlbGYgdCwgJ3NlbGYgcHJvZ3Jlc3NFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxudHlwZSByZWFkeVN0YXRlID1cbiAgfCBFTVBUWVxuICB8IExPQURJTkdcbiAgfCBET05FXG5cbmNsYXNzIHR5cGUgZmlsZVJlYWRlciA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgbWV0aG9kIHJlYWRBc0FycmF5QnVmZmVyIDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNCaW5hcnlTdHJpbmcgOiAjYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWRBc1RleHQgOiAjYmxvYiB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWRBc1RleHRfd2l0aEVuY29kaW5nIDogI2Jsb2IgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkQXNEYXRhVVJMIDogI2Jsb2IgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhYm9ydCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiByZWFkeVN0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXN1bHQgOiBmaWxlX2FueSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZXJyb3IgOiBmaWxlRXJyb3IgdCByZWFkb25seV9wcm9wXG5cbiAgICBpbmhlcml0IHByb2dyZXNzRXZlbnRUYXJnZXRcbiAgZW5kXG5cbm1vZHVsZSBSZWFkZXJFdmVudCA9IHN0cnVjdFxuICB0eXBlIHR5cCA9IGZpbGVSZWFkZXIgcHJvZ3Jlc3NFdmVudCB0IERvbS5FdmVudC50eXBcblxuICBsZXQgbG9hZHN0YXJ0ID0gRXZlbnQubWFrZSBcImxvYWRzdGFydFwiXG5cbiAgbGV0IHByb2dyZXNzID0gRXZlbnQubWFrZSBcInByb2dyZXNzXCJcblxuICBsZXQgYWJvcnQgPSBFdmVudC5tYWtlIFwiYWJvcnRcIlxuXG4gIGxldCBlcnJvciA9IEV2ZW50Lm1ha2UgXCJlcnJvclwiXG5cbiAgbGV0IGxvYWQgPSBFdmVudC5tYWtlIFwibG9hZFwiXG5cbiAgbGV0IGxvYWRlbmQgPSBFdmVudC5tYWtlIFwibG9hZGVuZFwiXG5lbmRcblxubGV0IGZpbGVSZWFkZXIgOiBmaWxlUmVhZGVyIHQgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9GaWxlUmVhZGVyXG5cbmxldCBhZGRFdmVudExpc3RlbmVyID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuZXh0ZXJuYWwgY2FtbF9qc19vbl9pZSA6IHVuaXQgLT4gYm9vbCB0ID0gXCJjYW1sX2pzX29uX2llXCJcblxubGV0IG9uSUUgPSBKcy50b19ib29sIChjYW1sX2pzX29uX2llICgpKVxuXG5leHRlcm5hbCBodG1sX2VzY2FwZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0ID0gXCJjYW1sX2pzX2h0bWxfZXNjYXBlXCJcblxuZXh0ZXJuYWwgZGVjb2RlX2h0bWxfZW50aXRpZXMgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCA9IFwiY2FtbF9qc19odG1sX2VudGl0aWVzXCJcblxuY2xhc3MgdHlwZSBjc3NTdHlsZURlY2xhcmF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHNldFByb3BlcnR5IDpcbiAgICAgIGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdGRlZiAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UHJvcGVydHlWYWx1ZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQcm9wZXJ0eVByaW9yaXR5IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZVByb3BlcnR5IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGFuaW1hdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25EZWxheSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25EaXJlY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRHVyYXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uRmlsbE1vZGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uTmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRpb25QbGF5U3RhdGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uVGltaW5nRnVuY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kQXR0YWNobWVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kQ29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYmFja2dyb3VuZEltYWdlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJhY2tncm91bmRQb3NpdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBiYWNrZ3JvdW5kUmVwZWF0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJCb3R0b20gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm90dG9tQ29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm90dG9tU3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm90dG9tV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQ29sbGFwc2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQ29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyTGVmdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJMZWZ0Q29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyTGVmdFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlckxlZnRXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSYWRpdXMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyUmlnaHRDb2xvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJSaWdodFN0eWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlclJpZ2h0V2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyU3BhY2luZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBib3JkZXJUb3AgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyVG9wQ29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyVG9wU3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyVG9wV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYm90dG9tIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNhcHRpb25TaWRlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsZWFyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsaXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29udGVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb3VudGVySW5jcmVtZW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvdW50ZXJSZXNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjc3NGbG9hdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjc3NUZXh0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGN1cnNvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkaXJlY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGlzcGxheSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBlbXB0eUNlbGxzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpbGwgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9udCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250RmFtaWx5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnRTaXplIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvbnRTdHlsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250VmFyaWFudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb250V2VpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsZWZ0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxldHRlclNwYWNpbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGluZUhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsaXN0U3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGlzdFN0eWxlSW1hZ2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGlzdFN0eWxlUG9zaXRpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbGlzdFN0eWxlVHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luQm90dG9tIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkxlZnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luUmlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luVG9wIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1heEhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXhXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtaW5IZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWluV2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3BhY2l0eSA6IGpzX3N0cmluZyB0IG9wdGRlZiBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRsaW5lQ29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZU9mZnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdXRsaW5lU3R5bGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3V0bGluZVdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG92ZXJmbG93IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG92ZXJmbG93WCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvdmVyZmxvd1kgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGFkZGluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nQm90dG9tIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmdMZWZ0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZGRpbmdSaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwYWRkaW5nVG9wIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VCcmVha0FmdGVyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VCcmVha0JlZm9yZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBwb2ludGVyRXZlbnRzIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHBvc2l0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0cm9rZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdHJva2VXaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YWJsZUxheW91dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGV4dEFuY2hvciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0RGVjb3JhdGlvbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0SW5kZW50IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRUcmFuc2Zvcm0gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdG9wIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRyYW5zZm9ybSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2ZXJ0aWNhbEFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZpc2liaWxpdHkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2hpdGVTcGFjZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3b3JkU3BhY2luZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB6SW5kZXggOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG50eXBlICgnYSwgJ2IpIGV2ZW50X2xpc3RlbmVyID0gKCdhLCAnYikgRG9tLmV2ZW50X2xpc3RlbmVyXG5cbnR5cGUgbW91c2VfYnV0dG9uID1cbiAgfCBOb19idXR0b25cbiAgfCBMZWZ0X2J1dHRvblxuICB8IE1pZGRsZV9idXR0b25cbiAgfCBSaWdodF9idXR0b25cblxudHlwZSBkZWx0YV9tb2RlID1cbiAgfCBEZWx0YV9waXhlbFxuICB8IERlbHRhX2xpbmVcbiAgfCBEZWx0YV9wYWdlXG5cbmNsYXNzIHR5cGUgZXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtlbGVtZW50XSBEb20uZXZlbnRcbiAgZW5kXG5cbmFuZCBbJ2FdIGN1c3RvbUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZWxlbWVudCwgJ2FdIERvbS5jdXN0b21FdmVudFxuICBlbmRcblxuYW5kIGZvY3VzRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgcmVsYXRlZFRhcmdldCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBtb3VzZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHJlbGF0ZWRUYXJnZXQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50WCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50WSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuWCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuWSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0WCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0WSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3RybEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2hpZnRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsdEtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWV0YUtleSA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnV0dG9uIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aGljaCA6IG1vdXNlX2J1dHRvbiBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZyb21FbGVtZW50IDogZWxlbWVudCB0IG9wdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRvRWxlbWVudCA6IGVsZW1lbnQgdCBvcHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYWdlWCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VZIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQga2V5Ym9hcmRFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBhbHRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNoaWZ0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdHJsS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXRhS2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb2NhdGlvbiA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qga2V5IDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb2RlIDoganNfc3RyaW5nIHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aGljaCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJDb2RlIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qga2V5Q29kZSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0TW9kaWZpZXJTdGF0ZSA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2Qga2V5SWRlbnRpZmllciA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgbW91c2V3aGVlbEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgKCogQWxsIG1vZGVybiBicm93c2VycyAqKVxuICAgIGluaGVyaXQgbW91c2VFdmVudFxuXG4gICAgbWV0aG9kIHdoZWVsRGVsdGEgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdoZWVsRGVsdGFYIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2hlZWxEZWx0YVkgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWx0YVggOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVsdGFZIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRlbHRhWiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZWx0YU1vZGUgOiBkZWx0YV9tb2RlIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBtb3VzZVNjcm9sbEV2ZW50ID1cbiAgb2JqZWN0XG4gICAgKCogRmlyZWZveCAqKVxuICAgIGluaGVyaXQgbW91c2VFdmVudFxuXG4gICAgbWV0aG9kIGRldGFpbCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXhpcyA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9IT1JJWk9OVEFMX0FYSVMgOiBpbnQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVElDQUxfQVhJUyA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHRvdWNoRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgdG91Y2hlcyA6IHRvdWNoTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YXJnZXRUb3VjaGVzIDogdG91Y2hMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoYW5nZWRUb3VjaGVzIDogdG91Y2hMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN0cmxLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNoaWZ0S2V5IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbHRLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGFLZXkgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlbGF0ZWRUYXJnZXQgOiBlbGVtZW50IHQgb3B0IG9wdGRlZiByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgdG91Y2hMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiB0b3VjaCB0IG9wdGRlZiBtZXRoXG4gIGVuZFxuXG5hbmQgdG91Y2ggPVxuICBvYmplY3RcbiAgICBtZXRob2QgaWRlbnRpZmllciA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGFyZ2V0IDogZWxlbWVudCB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuWCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuWSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50WCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50WSA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFnZVggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhZ2VZIDogaW50IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBzdWJtaXRFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBzdWJtaXR0ZXIgOiBlbGVtZW50IHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBkcmFnRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG1vdXNlRXZlbnRcblxuICAgIG1ldGhvZCBkYXRhVHJhbnNmZXIgOiBkYXRhVHJhbnNmZXIgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgY2xpcGJvYXJkRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2QgY2xpcGJvYXJkRGF0YSA6IGRhdGFUcmFuc2ZlciB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBkYXRhVHJhbnNmZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZHJvcEVmZmVjdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBlZmZlY3RBbGxvd2VkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZpbGVzIDogRmlsZS5maWxlTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0eXBlcyA6IGpzX3N0cmluZyB0IGpzX2FycmF5IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFkZEVsZW1lbnQgOiBlbGVtZW50IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJEYXRhIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJEYXRhX2FsbCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldERhdGEgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RGF0YSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldERyYWdJbWFnZSA6IGVsZW1lbnQgdCAtPiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuYW5kIGV2ZW50VGFyZ2V0ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2Qgb25jbGljayA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kYmxjbGljayA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZWRvd24gOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2V1cCA6ICgnc2VsZiB0LCBtb3VzZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25tb3VzZW92ZXIgOiAoJ3NlbGYgdCwgbW91c2VFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ubW91c2Vtb3ZlIDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1vdXNlb3V0IDogKCdzZWxmIHQsIG1vdXNlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmtleXByZXNzIDogKCdzZWxmIHQsIGtleWJvYXJkRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmtleWRvd24gOiAoJ3NlbGYgdCwga2V5Ym9hcmRFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ua2V5dXAgOiAoJ3NlbGYgdCwga2V5Ym9hcmRFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc2Nyb2xsIDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb253aGVlbCA6ICgnc2VsZiB0LCBtb3VzZXdoZWVsRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWdzdGFydCA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWdlbmQgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnZW50ZXIgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcmFnb3ZlciA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWdsZWF2ZSA6ICgnc2VsZiB0LCBkcmFnRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmRyYWcgOiAoJ3NlbGYgdCwgZHJhZ0V2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25kcm9wIDogKCdzZWxmIHQsIGRyYWdFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uYW5pbWF0aW9uc3RhcnQgOiAoJ3NlbGYgdCwgYW5pbWF0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmFuaW1hdGlvbmVuZCA6ICgnc2VsZiB0LCBhbmltYXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uYW5pbWF0aW9uaXRlcmF0aW9uIDpcbiAgICAgICgnc2VsZiB0LCBhbmltYXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uYW5pbWF0aW9uY2FuY2VsIDogKCdzZWxmIHQsIGFuaW1hdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb250cmFuc2l0aW9ucnVuIDogKCdzZWxmIHQsIHRyYW5zaXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udHJhbnNpdGlvbnN0YXJ0IDogKCdzZWxmIHQsIHRyYW5zaXRpb25FdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udHJhbnNpdGlvbmVuZCA6ICgnc2VsZiB0LCB0cmFuc2l0aW9uRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnRyYW5zaXRpb25jYW5jZWwgOiAoJ3NlbGYgdCwgdHJhbnNpdGlvbkV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25nb3Rwb2ludGVyY2FwdHVyZSA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvc3Rwb2ludGVyY2FwdHVyZSA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJlbnRlciA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJjYW5jZWwgOiAoJ3NlbGYgdCwgcG9pbnRlckV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wb2ludGVyZG93biA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJsZWF2ZSA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJtb3ZlIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcm91dCA6ICgnc2VsZiB0LCBwb2ludGVyRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBvaW50ZXJvdmVyIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucG9pbnRlcnVwIDogKCdzZWxmIHQsIHBvaW50ZXJFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRpc3BhdGNoRXZlbnQgOiBldmVudCB0IC0+IGJvb2wgdCBtZXRoXG4gIGVuZFxuXG5hbmQgcG9wU3RhdGVFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBzdGF0ZSA6IEpzLlVuc2FmZS5hbnkgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHBvaW50ZXJFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgbW91c2VFdmVudFxuXG4gICAgbWV0aG9kIHBvaW50ZXJJZCA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXNzdXJlIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhbmdlbnRpYWxQcmVzc3VyZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aWx0WCA6IGludCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGlsdFkgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHR3aXN0IDogaW50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwb2ludGVyVHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpc1ByaW1hcnkgOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHN0b3JhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBrZXkgOiBqc19zdHJpbmcgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9sZFZhbHVlIDoganNfc3RyaW5nIHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXdWYWx1ZSA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXJsIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0b3JhZ2VBcmVhIDogc3RvcmFnZSB0IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgc3RvcmFnZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGtleSA6IGludCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEl0ZW0gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEl0ZW0gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCByZW1vdmVJdGVtIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXIgOiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBoYXNoQ2hhbmdlRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG5cbiAgICBtZXRob2Qgb2xkVVJMIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5ld1VSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBhbmltYXRpb25FdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBhbmltYXRpb25OYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVsYXBzZWRUaW1lIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBzZXVkb0VsZW1lbnQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgdHJhbnNpdGlvbkV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIHByb3BlcnR5TmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbGFwc2VkVGltZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwc2V1ZG9FbGVtZW50IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG1lZGlhRXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGV2ZW50XG4gIGVuZFxuXG5hbmQgbWVzc2FnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIGRhdGEgOiBVbnNhZmUuYW55IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc291cmNlIDogVW5zYWZlLmFueSBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIG5vZGVTZWxlY3RvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBxdWVyeVNlbGVjdG9yIDoganNfc3RyaW5nIHQgLT4gZWxlbWVudCB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcXVlcnlTZWxlY3RvckFsbCA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgRG9tLm5vZGVMaXN0IHQgbWV0aFxuICBlbmRcblxuYW5kIHRva2VuTGlzdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4ganNfc3RyaW5nIHQgb3B0ZGVmIG1ldGhcblxuICAgIG1ldGhvZCBjb250YWlucyA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgYWRkIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdG9nZ2xlIDoganNfc3RyaW5nIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZmllciA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmFuZCBlbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb20uZWxlbWVudFxuXG4gICAgaW5oZXJpdCBub2RlU2VsZWN0b3JcblxuICAgIG1ldGhvZCBpZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjbGFzc05hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xhc3NMaXN0IDogdG9rZW5MaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsb3Nlc3QgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBzdHlsZSA6IGNzc1N0eWxlRGVjbGFyYXRpb24gdCBwcm9wXG5cbiAgICBtZXRob2QgaW5uZXJIVE1MIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG91dGVySFRNTCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0Q29udGVudCA6IGpzX3N0cmluZyB0IG9wdCBwcm9wXG5cbiAgICBtZXRob2QgaW5uZXJUZXh0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudExlZnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudFRvcCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xpZW50V2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsaWVudEhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0TGVmdCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0VG9wIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRQYXJlbnQgOiBlbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvZmZzZXRXaWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2Zmc2V0SGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JvbGxMZWZ0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxUb3AgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbFdpZHRoIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzY3JvbGxIZWlnaHQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGdldENsaWVudFJlY3RzIDogY2xpZW50UmVjdExpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IDogY2xpZW50UmVjdCB0IG1ldGhcblxuICAgIG1ldGhvZCBzY3JvbGxJbnRvVmlldyA6IGJvb2wgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGljayA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZvY3VzIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmx1ciA6IHVuaXQgbWV0aFxuXG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuICBlbmRcblxuYW5kIGNsaWVudFJlY3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdG9wIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJpZ2h0IDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJvdHRvbSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsZWZ0IDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBmbG9hdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGNsaWVudFJlY3RMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXRlbSA6IGludCAtPiBjbGllbnRSZWN0IHQgb3B0IG1ldGhcbiAgZW5kXG5cbmxldCBub19oYW5kbGVyIDogKCdhLCAnYikgZXZlbnRfbGlzdGVuZXIgPSBEb20ubm9faGFuZGxlclxuXG5sZXQgaGFuZGxlciA9IERvbS5oYW5kbGVyXG5cbmxldCBmdWxsX2hhbmRsZXIgPSBEb20uZnVsbF9oYW5kbGVyXG5cbmxldCBpbnZva2VfaGFuZGxlciA9IERvbS5pbnZva2VfaGFuZGxlclxuXG5tb2R1bGUgRXZlbnQgPSBzdHJ1Y3RcbiAgdHlwZSAnYSB0eXAgPSAnYSBEb20uRXZlbnQudHlwXG5cbiAgbGV0IGNsaWNrID0gRG9tLkV2ZW50Lm1ha2UgXCJjbGlja1wiXG5cbiAgbGV0IGNvcHkgPSBEb20uRXZlbnQubWFrZSBcImNvcHlcIlxuXG4gIGxldCBjdXQgPSBEb20uRXZlbnQubWFrZSBcImN1dFwiXG5cbiAgbGV0IHBhc3RlID0gRG9tLkV2ZW50Lm1ha2UgXCJwYXN0ZVwiXG5cbiAgbGV0IGRibGNsaWNrID0gRG9tLkV2ZW50Lm1ha2UgXCJkYmxjbGlja1wiXG5cbiAgbGV0IG1vdXNlZG93biA9IERvbS5FdmVudC5tYWtlIFwibW91c2Vkb3duXCJcblxuICBsZXQgbW91c2V1cCA9IERvbS5FdmVudC5tYWtlIFwibW91c2V1cFwiXG5cbiAgbGV0IG1vdXNlb3ZlciA9IERvbS5FdmVudC5tYWtlIFwibW91c2VvdmVyXCJcblxuICBsZXQgbW91c2Vtb3ZlID0gRG9tLkV2ZW50Lm1ha2UgXCJtb3VzZW1vdmVcIlxuXG4gIGxldCBtb3VzZW91dCA9IERvbS5FdmVudC5tYWtlIFwibW91c2VvdXRcIlxuXG4gIGxldCBrZXlwcmVzcyA9IERvbS5FdmVudC5tYWtlIFwia2V5cHJlc3NcIlxuXG4gIGxldCBrZXlkb3duID0gRG9tLkV2ZW50Lm1ha2UgXCJrZXlkb3duXCJcblxuICBsZXQga2V5dXAgPSBEb20uRXZlbnQubWFrZSBcImtleXVwXCJcblxuICBsZXQgbW91c2V3aGVlbCA9IERvbS5FdmVudC5tYWtlIFwibW91c2V3aGVlbFwiXG5cbiAgbGV0IHdoZWVsID0gRG9tLkV2ZW50Lm1ha2UgXCJ3aGVlbFwiXG5cbiAgbGV0IF9ET01Nb3VzZVNjcm9sbCA9IERvbS5FdmVudC5tYWtlIFwiRE9NTW91c2VTY3JvbGxcIlxuXG4gIGxldCB0b3VjaHN0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJ0b3VjaHN0YXJ0XCJcblxuICBsZXQgdG91Y2htb3ZlID0gRG9tLkV2ZW50Lm1ha2UgXCJ0b3VjaG1vdmVcIlxuXG4gIGxldCB0b3VjaGVuZCA9IERvbS5FdmVudC5tYWtlIFwidG91Y2hlbmRcIlxuXG4gIGxldCB0b3VjaGNhbmNlbCA9IERvbS5FdmVudC5tYWtlIFwidG91Y2hjYW5jZWxcIlxuXG4gIGxldCBkcmFnc3RhcnQgPSBEb20uRXZlbnQubWFrZSBcImRyYWdzdGFydFwiXG5cbiAgbGV0IGRyYWdlbmQgPSBEb20uRXZlbnQubWFrZSBcImRyYWdlbmRcIlxuXG4gIGxldCBkcmFnZW50ZXIgPSBEb20uRXZlbnQubWFrZSBcImRyYWdlbnRlclwiXG5cbiAgbGV0IGRyYWdvdmVyID0gRG9tLkV2ZW50Lm1ha2UgXCJkcmFnb3ZlclwiXG5cbiAgbGV0IGRyYWdsZWF2ZSA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ2xlYXZlXCJcblxuICBsZXQgZHJhZyA9IERvbS5FdmVudC5tYWtlIFwiZHJhZ1wiXG5cbiAgbGV0IGRyb3AgPSBEb20uRXZlbnQubWFrZSBcImRyb3BcIlxuXG4gIGxldCBoYXNoY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJoYXNoY2hhbmdlXCJcblxuICBsZXQgY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJjaGFuZ2VcIlxuXG4gIGxldCBpbnB1dCA9IERvbS5FdmVudC5tYWtlIFwiaW5wdXRcIlxuXG4gIGxldCB0aW1ldXBkYXRlID0gRG9tLkV2ZW50Lm1ha2UgXCJ0aW1ldXBkYXRlXCJcblxuICBsZXQgc3VibWl0ID0gRG9tLkV2ZW50Lm1ha2UgXCJzdWJtaXRcIlxuXG4gIGxldCBzY3JvbGwgPSBEb20uRXZlbnQubWFrZSBcInNjcm9sbFwiXG5cbiAgbGV0IGZvY3VzID0gRG9tLkV2ZW50Lm1ha2UgXCJmb2N1c1wiXG5cbiAgbGV0IGJsdXIgPSBEb20uRXZlbnQubWFrZSBcImJsdXJcIlxuXG4gIGxldCBsb2FkID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkXCJcblxuICBsZXQgdW5sb2FkID0gRG9tLkV2ZW50Lm1ha2UgXCJ1bmxvYWRcIlxuXG4gIGxldCBiZWZvcmV1bmxvYWQgPSBEb20uRXZlbnQubWFrZSBcImJlZm9yZXVubG9hZFwiXG5cbiAgbGV0IHJlc2l6ZSA9IERvbS5FdmVudC5tYWtlIFwicmVzaXplXCJcblxuICBsZXQgb3JpZW50YXRpb25jaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcIm9yaWVudGF0aW9uY2hhbmdlXCJcblxuICBsZXQgcG9wc3RhdGUgPSBEb20uRXZlbnQubWFrZSBcInBvcHN0YXRlXCJcblxuICBsZXQgZXJyb3IgPSBEb20uRXZlbnQubWFrZSBcImVycm9yXCJcblxuICBsZXQgYWJvcnQgPSBEb20uRXZlbnQubWFrZSBcImFib3J0XCJcblxuICBsZXQgc2VsZWN0ID0gRG9tLkV2ZW50Lm1ha2UgXCJzZWxlY3RcIlxuXG4gIGxldCBvbmxpbmUgPSBEb20uRXZlbnQubWFrZSBcIm9ubGluZVwiXG5cbiAgbGV0IG9mZmxpbmUgPSBEb20uRXZlbnQubWFrZSBcIm9mZmxpbmVcIlxuXG4gIGxldCBjaGVja2luZyA9IERvbS5FdmVudC5tYWtlIFwiY2hlY2tpbmdcIlxuXG4gIGxldCBub3VwZGF0ZSA9IERvbS5FdmVudC5tYWtlIFwibm91cGRhdGVcIlxuXG4gIGxldCBkb3dubG9hZGluZyA9IERvbS5FdmVudC5tYWtlIFwiZG93bmxvYWRpbmdcIlxuXG4gIGxldCBwcm9ncmVzcyA9IERvbS5FdmVudC5tYWtlIFwicHJvZ3Jlc3NcIlxuXG4gIGxldCB1cGRhdGVyZWFkeSA9IERvbS5FdmVudC5tYWtlIFwidXBkYXRlcmVhZHlcIlxuXG4gIGxldCBjYWNoZWQgPSBEb20uRXZlbnQubWFrZSBcImNhY2hlZFwiXG5cbiAgbGV0IG9ic29sZXRlID0gRG9tLkV2ZW50Lm1ha2UgXCJvYnNvbGV0ZVwiXG5cbiAgbGV0IGRvbUNvbnRlbnRMb2FkZWQgPSBEb20uRXZlbnQubWFrZSBcIkRPTUNvbnRlbnRMb2FkZWRcIlxuXG4gIGxldCBhbmltYXRpb25zdGFydCA9IERvbS5FdmVudC5tYWtlIFwiYW5pbWF0aW9uc3RhcnRcIlxuXG4gIGxldCBhbmltYXRpb25lbmQgPSBEb20uRXZlbnQubWFrZSBcImFuaW1hdGlvbmVuZFwiXG5cbiAgbGV0IGFuaW1hdGlvbml0ZXJhdGlvbiA9IERvbS5FdmVudC5tYWtlIFwiYW5pbWF0aW9uaXRlcmF0aW9uXCJcblxuICBsZXQgYW5pbWF0aW9uY2FuY2VsID0gRG9tLkV2ZW50Lm1ha2UgXCJhbmltYXRpb25jYW5jZWxcIlxuXG4gIGxldCB0cmFuc2l0aW9ucnVuID0gRG9tLkV2ZW50Lm1ha2UgXCJ0cmFuc2l0aW9ucnVuXCJcblxuICBsZXQgdHJhbnNpdGlvbnN0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJ0cmFuc2l0aW9uc3RhcnRcIlxuXG4gIGxldCB0cmFuc2l0aW9uZW5kID0gRG9tLkV2ZW50Lm1ha2UgXCJ0cmFuc2l0aW9uZW5kXCJcblxuICBsZXQgdHJhbnNpdGlvbmNhbmNlbCA9IERvbS5FdmVudC5tYWtlIFwidHJhbnNpdGlvbmNhbmNlbFwiXG5cbiAgbGV0IGNhbnBsYXkgPSBEb20uRXZlbnQubWFrZSBcImNhbnBsYXlcIlxuXG4gIGxldCBjYW5wbGF5dGhyb3VnaCA9IERvbS5FdmVudC5tYWtlIFwiY2FucGxheXRocm91Z2hcIlxuXG4gIGxldCBkdXJhdGlvbmNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwiZHVyYXRpb25jaGFuZ2VcIlxuXG4gIGxldCBlbXB0aWVkID0gRG9tLkV2ZW50Lm1ha2UgXCJlbXB0aWVkXCJcblxuICBsZXQgZW5kZWQgPSBEb20uRXZlbnQubWFrZSBcImVuZGVkXCJcblxuICBsZXQgZ290cG9pbnRlcmNhcHR1cmUgPSBEb20uRXZlbnQubWFrZSBcImdvdHBvaW50ZXJjYXB0dXJlXCJcblxuICBsZXQgbG9hZGVkZGF0YSA9IERvbS5FdmVudC5tYWtlIFwibG9hZGVkZGF0YVwiXG5cbiAgbGV0IGxvYWRlZG1ldGFkYXRhID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkZWRtZXRhZGF0YVwiXG5cbiAgbGV0IGxvYWRzdGFydCA9IERvbS5FdmVudC5tYWtlIFwibG9hZHN0YXJ0XCJcblxuICBsZXQgbG9zdHBvaW50ZXJjYXB0dXJlID0gRG9tLkV2ZW50Lm1ha2UgXCJsb3N0cG9pbnRlcmNhcHR1cmVcIlxuXG4gIGxldCBtZXNzYWdlID0gRG9tLkV2ZW50Lm1ha2UgXCJtZXNzYWdlXCJcblxuICBsZXQgcGF1c2UgPSBEb20uRXZlbnQubWFrZSBcInBhdXNlXCJcblxuICBsZXQgcGxheSA9IERvbS5FdmVudC5tYWtlIFwicGxheVwiXG5cbiAgbGV0IHBsYXlpbmcgPSBEb20uRXZlbnQubWFrZSBcInBsYXlpbmdcIlxuXG4gIGxldCBwb2ludGVyZW50ZXIgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJlbnRlclwiXG5cbiAgbGV0IHBvaW50ZXJjYW5jZWwgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJjYW5jZWxcIlxuXG4gIGxldCBwb2ludGVyZG93biA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcmRvd25cIlxuXG4gIGxldCBwb2ludGVybGVhdmUgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJsZWF2ZVwiXG5cbiAgbGV0IHBvaW50ZXJtb3ZlID0gRG9tLkV2ZW50Lm1ha2UgXCJwb2ludGVybW92ZVwiXG5cbiAgbGV0IHBvaW50ZXJvdXQgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJvdXRcIlxuXG4gIGxldCBwb2ludGVyb3ZlciA9IERvbS5FdmVudC5tYWtlIFwicG9pbnRlcm92ZXJcIlxuXG4gIGxldCBwb2ludGVydXAgPSBEb20uRXZlbnQubWFrZSBcInBvaW50ZXJ1cFwiXG5cbiAgbGV0IHJhdGVjaGFuZ2UgPSBEb20uRXZlbnQubWFrZSBcInJhdGVjaGFuZ2VcIlxuXG4gIGxldCBzZWVrZWQgPSBEb20uRXZlbnQubWFrZSBcInNlZWtlZFwiXG5cbiAgbGV0IHNlZWtpbmcgPSBEb20uRXZlbnQubWFrZSBcInNlZWtpbmdcIlxuXG4gIGxldCBzdGFsbGVkID0gRG9tLkV2ZW50Lm1ha2UgXCJzdGFsbGVkXCJcblxuICBsZXQgc3VzcGVuZCA9IERvbS5FdmVudC5tYWtlIFwic3VzcGVuZFwiXG5cbiAgbGV0IHZvbHVtZWNoYW5nZSA9IERvbS5FdmVudC5tYWtlIFwidm9sdW1lY2hhbmdlXCJcblxuICBsZXQgd2FpdGluZyA9IERvbS5FdmVudC5tYWtlIFwid2FpdGluZ1wiXG5cbiAgbGV0IG1ha2UgPSBEb20uRXZlbnQubWFrZVxuZW5kXG5cbnR5cGUgZXZlbnRfbGlzdGVuZXJfaWQgPSBEb20uZXZlbnRfbGlzdGVuZXJfaWRcblxubGV0IGFkZEV2ZW50TGlzdGVuZXIgPSBEb20uYWRkRXZlbnRMaXN0ZW5lclxuXG5sZXQgYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9uc1xuXG5sZXQgcmVtb3ZlRXZlbnRMaXN0ZW5lciA9IERvbS5yZW1vdmVFdmVudExpc3RlbmVyXG5cbmxldCBjcmVhdGVDdXN0b21FdmVudCA9IERvbS5jcmVhdGVDdXN0b21FdmVudFxuXG5jbGFzcyB0eXBlIFsnbm9kZV0gY29sbGVjdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGl0ZW0gOiBpbnQgLT4gJ25vZGUgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIG5hbWVkSXRlbSA6IGpzX3N0cmluZyB0IC0+ICdub2RlIHQgb3B0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaHRtbEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgaGVhZEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBwcm9maWxlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBsaW5rRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBjaGFyc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNyb3Nzb3JpZ2luIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZmxhbmcgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVkaWEgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVsIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJldiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRpdGxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHRleHQgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG1ldGFFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY29udGVudCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBodHRwRXF1aXYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzY2hlbWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGJhc2VFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHN0eWxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBtZWRpYSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYm9keUVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgZm9ybUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBlbGVtZW50cyA6IGVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2VwdENoYXJzZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGVuY3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX21ldGhvZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3VibWl0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVzZXQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBvbnN1Ym1pdCA6ICgnc2VsZiB0LCBzdWJtaXRFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBvcHRHcm91cEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbGFiZWwgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG9wdGlvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG9wdEdyb3VwRWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGVmYXVsdFNlbGVjdGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0IDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGluZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWxlY3RlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHNlbGVjdEVsZW1lbnQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGVkSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvcHRpb25zIDogb3B0aW9uRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBtdWx0aXBsZSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzaXplIDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgYWRkIDogI29wdEdyb3VwRWxlbWVudCB0IC0+ICNvcHRHcm91cEVsZW1lbnQgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlIDogaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcXVpcmVkIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25jaGFuZ2UgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uaW5wdXQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpbnB1dEVsZW1lbnQgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGRlZmF1bHRWYWx1ZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkZWZhdWx0Q2hlY2tlZCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2VwdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWx0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoZWNrZWQgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBtYXhMZW5ndGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZE9ubHkgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlcXVpcmVkIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2l6ZSA6IGludCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1c2VNYXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsZXMgOiBGaWxlLmZpbGVMaXN0IHQgb3B0ZGVmIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwbGFjZWhvbGRlciA6IGpzX3N0cmluZyB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRGlyZWN0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdGlvblN0YXJ0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25FbmQgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIG9uc2VsZWN0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmNoYW5nZSA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25pbnB1dCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25ibHVyIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZm9jdXMgOiAoJ3NlbGYgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRleHRBcmVhRWxlbWVudCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZGVmYXVsdFZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbHMgOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWRPbmx5IDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCByb3dzIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25EaXJlY3Rpb24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2VsZWN0aW9uRW5kIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzZWxlY3Rpb25TdGFydCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNlbGVjdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlcXVpcmVkIDogYm9vbCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGxhY2Vob2xkZXIgOiBqc19zdHJpbmcgdCB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc2VsZWN0IDogKCdzZWxmIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmNoYW5nZSA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25pbnB1dCA6ICgnc2VsZiB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25ibHVyIDogKCdzZWxmIHQsIGZvY3VzRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZm9jdXMgOiAoJ3NlbGYgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGJ1dHRvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkaXNhYmxlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0YWJJbmRleCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdmFsdWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGxhYmVsRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWNjZXNzS2V5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGh0bWxGb3IgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGZpZWxkU2V0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGZvcm0gOiBmb3JtRWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGxlZ2VuZEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBmb3JtIDogZm9ybUVsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY2Vzc0tleSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdUxpc3RFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIG9MaXN0RWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBkTGlzdEVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgbGlFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGRpdkVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgcGFyYWdyYXBoRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBoZWFkaW5nRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBxdW90ZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjaXRlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwcmVFbGVtZW50ID0gZWxlbWVudFxuXG5jbGFzcyB0eXBlIGJyRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSBockVsZW1lbnQgPSBlbGVtZW50XG5cbmNsYXNzIHR5cGUgbW9kRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNpdGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGF0ZVRpbWUgOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGFuY2hvckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hhcnNldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb29yZHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaHJlZiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmbGFuZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlbCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZXYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhcGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgaW1hZ2VFbGVtZW50ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhbHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHVzZU1hcCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBpc01hcCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgbmF0dXJhbFdpZHRoIDogaW50IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmF0dXJhbEhlaWdodCA6IGludCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbXBsZXRlIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBvbmxvYWQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYWJvcnQgOiAoJ3NlbGYgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBvYmplY3RFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZm9ybSA6IGZvcm1FbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb2RlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFyY2hpdmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29kZUJhc2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29kZVR5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGF0YSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBkZWNsYXJlIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdGFuZGJ5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRhYkluZGV4IDogaW50IHByb3BcblxuICAgIG1ldGhvZCBfdHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB1c2VNYXAgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZG9jdW1lbnQgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwYXJhbUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlVHlwZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgYXJlYUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBhY2Nlc3NLZXkgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYWx0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvb3JkcyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBocmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5vSHJlZiA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhcGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdGFiSW5kZXggOiBpbnQgcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbWFwRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGFyZWFzIDogYXJlYUVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzY3JpcHRFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgdGV4dCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjaGFyc2V0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlZmVyIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX3R5cGUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYXN5bmMgOiBib29sIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBlbWJlZEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZUNlbGxFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgY2VsbEluZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhYmJyIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGF4aXMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hPZmYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29sU3BhbiA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgaGVhZGVycyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByb3dTcGFuIDogaW50IHByb3BcblxuICAgIG1ldGhvZCBzY29wZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB2QWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHRhYmxlUm93RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIHJvd0luZGV4IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWN0aW9uUm93SW5kZXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNlbGxzIDogdGFibGVDZWxsRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNoT2ZmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBpbnNlcnRDZWxsIDogaW50IC0+IHRhYmxlQ2VsbEVsZW1lbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlQ2VsbCA6IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVDb2xFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hPZmYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3BhbiA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgdkFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSB0YWJsZVNlY3Rpb25FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgYWxpZ24gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2hPZmYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgdkFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd3MgOiB0YWJsZVJvd0VsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnNlcnRSb3cgOiBpbnQgLT4gdGFibGVSb3dFbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVJvdyA6IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGFibGVDYXB0aW9uRWxlbWVudCA9IGVsZW1lbnRcblxuY2xhc3MgdHlwZSB0YWJsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjYXB0aW9uIDogdGFibGVDYXB0aW9uRWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCB0SGVhZCA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgdEZvb3QgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgcHJvcFxuXG4gICAgbWV0aG9kIHJvd3MgOiB0YWJsZVJvd0VsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0Qm9kaWVzIDogdGFibGVTZWN0aW9uRWxlbWVudCBjb2xsZWN0aW9uIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsaWduIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJvcmRlciA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjZWxsUGFkZGluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjZWxsU3BhY2luZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBmcmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBydWxlcyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzdW1tYXJ5IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNyZWF0ZVRIZWFkIDogdGFibGVTZWN0aW9uRWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVUSGVhZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVRGb290IDogdGFibGVTZWN0aW9uRWxlbWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVURm9vdCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUNhcHRpb24gOiB0YWJsZUNhcHRpb25FbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUNhcHRpb24gOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpbnNlcnRSb3cgOiBpbnQgLT4gdGFibGVSb3dFbGVtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVJvdyA6IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdGltZVJhbmdlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsZW5ndGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXJ0IDogaW50IC0+IGZsb2F0IG1ldGhcblxuICAgIG1ldGhvZCBlbmRfIDogaW50IC0+IGZsb2F0IG1ldGhcbiAgZW5kXG5cbnR5cGUgbmV0d29ya1N0YXRlID1cbiAgfCBORVRXT1JLX0VNUFRZXG4gIHwgTkVUV09SS19JRExFXG4gIHwgTkVUV09SS19MT0FESU5HXG4gIHwgTkVUV09SS19OT19TT1VSQ0VcblxudHlwZSByZWFkeVN0YXRlID1cbiAgfCBIQVZFX05PVEhJTkdcbiAgfCBIQVZFX01FVEFEQVRBXG4gIHwgSEFWRV9DVVJSRU5UX0RBVEFcbiAgfCBIQVZFX0ZVVFVSRV9EQVRBXG4gIHwgSEFWRV9FTk9VR0hfREFUQVxuXG4oKiBodHRwOi8vd3d3Lnczc2Nob29scy5jb20vdGFncy9yZWZfYXZfZG9tLmFzcCAqKVxuKCogb25seSBmZWF0dXJlcyBzdXBwb3J0ZWQgYnkgYWxsIGJyb3dzZXIuIChJRTkrKSAqKVxuY2xhc3MgdHlwZSBtZWRpYUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCBjYW5QbGF5VHlwZSA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBsb2FkIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcGxheSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBhdXNlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXV0b3BsYXkgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGJ1ZmZlcmVkIDogdGltZVJhbmdlcyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250cm9scyA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgY3VycmVudFNyYyA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VGltZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBkdXJhdGlvbiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbmRlZCA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbG9vcCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbWVkaWFncm91cCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtdXRlZCA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgbmV0d29ya1N0YXRlX2ludCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV0d29ya1N0YXRlIDogbmV0d29ya1N0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXVzZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBsYXliYWNrUmF0ZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBwbGF5ZWQgOiB0aW1lUmFuZ2VzIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZWxvYWQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZV9pbnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYWR5U3RhdGUgOiByZWFkeVN0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzZWVrYWJsZSA6IHRpbWVSYW5nZXMgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2Vla2luZyA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3JjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZvbHVtZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBvbmNhbnBsYXkgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2FucGxheXRocm91Z2ggOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZHVyYXRpb25jaGFuZ2UgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZW1wdGllZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lbmRlZCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25sb2FkZWRkYXRhIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvYWRlZG1ldGFkYXRhIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbmxvYWRzdGFydCA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wYXVzZSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25wbGF5IDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnBsYXlpbmcgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ucmF0ZWNoYW5nZSA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zZWVrZWQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uc2Vla2luZyA6ICgnc2VsZiB0LCBtZWRpYUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25zdGFsbGVkIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbnN1c3BlbmQgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9udm9sdW1lY2hhbmdlIDogKCdzZWxmIHQsIG1lZGlhRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbndhaXRpbmcgOiAoJ3NlbGYgdCwgbWVkaWFFdmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBhdWRpb0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG1lZGlhRWxlbWVudFxuICBlbmRcblxuY2xhc3MgdHlwZSB2aWRlb0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IG1lZGlhRWxlbWVudFxuICBlbmRcblxudHlwZSBjb250ZXh0ID0ganNfc3RyaW5nIHRcblxubGV0IF8yZF8gPSBKcy5zdHJpbmcgXCIyZFwiXG5cbnR5cGUgY2FudmFzUGF0dGVyblxuXG5jbGFzcyB0eXBlIGNhbnZhc0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIG1ldGhvZCB3aWR0aCA6IGludCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogaW50IHByb3BcblxuICAgIG1ldGhvZCB0b0RhdGFVUkwgOiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9EYXRhVVJMX3R5cGUgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9EYXRhVVJMX3R5cGVfY29tcHJlc3Npb24gOiBqc19zdHJpbmcgdCAtPiBmbG9hdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q29udGV4dCA6IGpzX3N0cmluZyB0IC0+IGNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB0IG1ldGhcbiAgZW5kXG5cbmFuZCBjYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2FudmFzIDogY2FudmFzRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzYXZlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVzdG9yZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNjYWxlIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgcm90YXRlIDogZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdHJhbnNsYXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdHJhbnNmb3JtIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VHJhbnNmb3JtIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2xvYmFsQWxwaGEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHN0cm9rZVN0eWxlIDoganNfc3RyaW5nIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdHJva2VTdHlsZV9ncmFkaWVudCA6IGNhbnZhc0dyYWRpZW50IHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdHJva2VTdHlsZV9wYXR0ZXJuIDogY2FudmFzUGF0dGVybiB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsbFN0eWxlIDoganNfc3RyaW5nIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWxsU3R5bGVfZ3JhZGllbnQgOiBjYW52YXNHcmFkaWVudCB0IHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsbFN0eWxlX3BhdHRlcm4gOiBjYW52YXNQYXR0ZXJuIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjcmVhdGVMaW5lYXJHcmFkaWVudCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBjYW52YXNHcmFkaWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVSYWRpYWxHcmFkaWVudCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBjYW52YXNHcmFkaWVudCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVQYXR0ZXJuIDogaW1hZ2VFbGVtZW50IHQgLT4ganNfc3RyaW5nIHQgLT4gY2FudmFzUGF0dGVybiB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVQYXR0ZXJuX2Zyb21DYW52YXMgOlxuICAgICAgY2FudmFzRWxlbWVudCB0IC0+IGpzX3N0cmluZyB0IC0+IGNhbnZhc1BhdHRlcm4gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUGF0dGVybl9mcm9tVmlkZW8gOiB2aWRlb0VsZW1lbnQgdCAtPiBqc19zdHJpbmcgdCAtPiBjYW52YXNQYXR0ZXJuIHQgbWV0aFxuXG4gICAgbWV0aG9kIGxpbmVXaWR0aCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBsaW5lQ2FwIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxpbmVKb2luIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1pdGVyTGltaXQgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhZG93T2Zmc2V0WCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBzaGFkb3dPZmZzZXRZIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHNoYWRvd0JsdXIgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2Qgc2hhZG93Q29sb3IgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY2xlYXJSZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsbFJlY3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJva2VSZWN0IDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmVnaW5QYXRoIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvc2VQYXRoIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbW92ZVRvIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbGluZVRvIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcXVhZHJhdGljQ3VydmVUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJlemllckN1cnZlVG8gOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhcmNUbyA6IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlY3QgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhcmMgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmlsbCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0cm9rZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsaXAgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBpc1BvaW50SW5QYXRoIDogZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3Rm9jdXNSaW5nIDogI2VsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBib29sIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBmb250IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHRleHRBbGlnbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0ZXh0QmFzZWxpbmUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZmlsbFRleHQgOiBqc19zdHJpbmcgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmaWxsVGV4dF93aXRoV2lkdGggOiBqc19zdHJpbmcgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJva2VUZXh0IDoganNfc3RyaW5nIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Ryb2tlVGV4dF93aXRoV2lkdGggOiBqc19zdHJpbmcgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBtZWFzdXJlVGV4dCA6IGpzX3N0cmluZyB0IC0+IHRleHRNZXRyaWNzIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZSA6IGltYWdlRWxlbWVudCB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV93aXRoU2l6ZSA6XG4gICAgICBpbWFnZUVsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnVsbCA6XG4gICAgICAgICBpbWFnZUVsZW1lbnQgdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnJvbUNhbnZhcyA6IGNhbnZhc0VsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnJvbUNhbnZhc1dpdGhTaXplIDpcbiAgICAgIGNhbnZhc0VsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnVsbEZyb21DYW52YXMgOlxuICAgICAgICAgY2FudmFzRWxlbWVudCB0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdJbWFnZV9mcm9tVmlkZW9XaXRoVmlkZW8gOiB2aWRlb0VsZW1lbnQgdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBkcmF3SW1hZ2VfZnJvbVZpZGVvV2l0aFNpemUgOlxuICAgICAgdmlkZW9FbGVtZW50IHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZHJhd0ltYWdlX2Z1bGxGcm9tVmlkZW8gOlxuICAgICAgICAgdmlkZW9FbGVtZW50IHRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gZmxvYXRcbiAgICAgIC0+IGZsb2F0XG4gICAgICAtPiBmbG9hdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlSW1hZ2VEYXRhIDogaW50IC0+IGludCAtPiBpbWFnZURhdGEgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW1hZ2VEYXRhIDogZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gaW1hZ2VEYXRhIHQgbWV0aFxuXG4gICAgbWV0aG9kIHB1dEltYWdlRGF0YSA6IGltYWdlRGF0YSB0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuYW5kIGNhbnZhc0dyYWRpZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFkZENvbG9yU3RvcCA6IGZsb2F0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuYW5kIHRleHRNZXRyaWNzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIGltYWdlRGF0YSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkYXRhIDogY2FudmFzUGl4ZWxBcnJheSB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBjYW52YXNQaXhlbEFycmF5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxlbmd0aCA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5leHRlcm5hbCBwaXhlbF9nZXQgOiBjYW52YXNQaXhlbEFycmF5IHQgLT4gaW50IC0+IGludCA9IFwiY2FtbF9qc19nZXRcIlxuXG5leHRlcm5hbCBwaXhlbF9zZXQgOiBjYW52YXNQaXhlbEFycmF5IHQgLT4gaW50IC0+IGludCAtPiB1bml0ID0gXCJjYW1sX2pzX3NldFwiXG5cbmNsYXNzIHR5cGUgcmFuZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29sbGFwc2VkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGFydE9mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZW5kT2Zmc2V0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGFydENvbnRhaW5lciA6IERvbS5ub2RlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGVuZENvbnRhaW5lciA6IERvbS5ub2RlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldFN0YXJ0IDogRG9tLm5vZGUgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RW5kIDogRG9tLm5vZGUgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U3RhcnRCZWZvcmUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldEVuZEJlZm9yZSA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U3RhcnRBZnRlciA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0RW5kQWZ0ZXIgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbGVjdE5vZGUgOiBEb20ubm9kZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbGVjdE5vZGVDb250ZW50cyA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29sbGFwc2UgOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvbmVDb250ZW50cyA6IERvbS5kb2N1bWVudEZyYWdtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGV4dHJhY3RDb250ZW50cyA6IERvbS5kb2N1bWVudEZyYWdtZW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUNvbnRlbnRzIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5zZXJ0Tm9kZSA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3Vycm91bmRDb250ZW50cyA6IERvbS5ub2RlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvbmVSYW5nZSA6IHJhbmdlIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRvU3RyaW5nIDoganNfc3RyaW5nIHQgbWV0aFxuICBlbmRcblxuKCoqIEluZm9ybWF0aW9uIG9uIGN1cnJlbnQgc2VsZWN0aW9uICopXG5jbGFzcyB0eXBlIHNlbGVjdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbmNob3JOb2RlIDogRG9tLm5vZGUgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5jaG9yT2Zmc2V0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmb2N1c05vZGUgOiBEb20ubm9kZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmb2N1c09mZnNldCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaXNDb2xsYXBzZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJhbmdlQ291bnQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFJhbmdlQXQgOiBpbnQgLT4gcmFuZ2UgdCBtZXRoXG5cbiAgICBtZXRob2QgY29sbGFwc2UgOiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXh0ZW5kIDogRG9tLm5vZGUgdCAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbW9kaWZ5IDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29sbGFwc2VUb1N0YXJ0IDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29sbGFwc2VUb0VuZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbGVjdEFsbENoaWxkcmVuIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhZGRSYW5nZSA6IHJhbmdlIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlUmFuZ2UgOiByYW5nZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbW92ZUFsbFJhbmdlcyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUZyb21Eb2N1bWVudCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnRhaW5zTm9kZSA6IERvbS5ub2RlIHQgLT4gYm9vbCB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgdG9TdHJpbmcgOiBqc19zdHJpbmcgdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGRvY3VtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbZWxlbWVudF0gRG9tLmRvY3VtZW50XG5cbiAgICBpbmhlcml0IG5vZGVTZWxlY3RvclxuXG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIHRpdGxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHJlZmVycmVyIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRvbWFpbiA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBfVVJMIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlYWQgOiBoZWFkRWxlbWVudCB0IHByb3BcblxuICAgIG1ldGhvZCBib2R5IDogYm9keUVsZW1lbnQgdCBwcm9wXG5cbiAgICBtZXRob2QgZG9jdW1lbnRFbGVtZW50IDogaHRtbEVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW1hZ2VzIDogaW1hZ2VFbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXBwbGV0cyA6IGVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsaW5rcyA6IGVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmb3JtcyA6IGZvcm1FbGVtZW50IGNvbGxlY3Rpb24gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5jaG9ycyA6IGVsZW1lbnQgY29sbGVjdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb29raWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZGVzaWduTW9kZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvcGVuXyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsb3NlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgd3JpdGUgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBleGVjQ29tbWFuZCA6IGpzX3N0cmluZyB0IC0+IGJvb2wgdCAtPiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlUmFuZ2UgOiByYW5nZSB0IG1ldGhcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldEVsZW1lbnRzQnlDbGFzc05hbWUgOiBqc19zdHJpbmcgdCAtPiBlbGVtZW50IERvbS5ub2RlTGlzdCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50c0J5TmFtZSA6IGpzX3N0cmluZyB0IC0+IGVsZW1lbnQgRG9tLm5vZGVMaXN0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGFjdGl2ZUVsZW1lbnQgOiBlbGVtZW50IHQgb3B0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoaWRkZW4gOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uZnVsbHNjcmVlbmNoYW5nZSA6IChkb2N1bWVudCB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ud2Via2l0ZnVsbHNjcmVlbmNoYW5nZSA6IChkb2N1bWVudCB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuICBlbmRcblxudHlwZSBpbnRlcnZhbF9pZFxuXG50eXBlIHRpbWVvdXRfaWRcblxudHlwZSBhbmltYXRpb25fZnJhbWVfcmVxdWVzdF9pZFxuXG5jbGFzcyB0eXBlIGxvY2F0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGhyZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcHJvdG9jb2wgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaG9zdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBob3N0bmFtZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBvcmlnaW4gOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBvcnQgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgcGF0aG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgc2VhcmNoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGhhc2ggOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgYXNzaWduIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVwbGFjZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHJlbG9hZCA6IHVuaXQgbWV0aFxuICBlbmRcblxubGV0IGxvY2F0aW9uX29yaWdpbiAobG9jIDogbG9jYXRpb24gdCkgPVxuICBPcHRkZWYuY2FzZVxuICAgIGxvYyMjLm9yaWdpblxuICAgIChmdW4gKCkgLT5cbiAgICAgIGxldCBwcm90b2NvbCA9IGxvYyMjLnByb3RvY29sIGluXG4gICAgICBsZXQgaG9zdG5hbWUgPSBsb2MjIy5ob3N0bmFtZSBpblxuICAgICAgbGV0IHBvcnQgPSBsb2MjIy5wb3J0IGluXG4gICAgICBpZiBwcm90b2NvbCMjLmxlbmd0aCA9IDAgJiYgaG9zdG5hbWUjIy5sZW5ndGggPSAwXG4gICAgICB0aGVuIEpzLnN0cmluZyBcIlwiXG4gICAgICBlbHNlXG4gICAgICAgIGxldCBvcmlnaW4gPSBwcm90b2NvbCMjY29uY2F0XzIgKEpzLnN0cmluZyBcIi8vXCIpIGhvc3RuYW1lIGluXG4gICAgICAgIGlmIHBvcnQjIy5sZW5ndGggPiAwIHRoZW4gb3JpZ2luIyNjb25jYXRfMiAoSnMuc3RyaW5nIFwiOlwiKSBsb2MjIy5wb3J0IGVsc2Ugb3JpZ2luKVxuICAgIChmdW4gbyAtPiBvKVxuXG5jbGFzcyB0eXBlIGhpc3RvcnkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdGF0ZSA6IEpzLlVuc2FmZS5hbnkgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdvIDogaW50IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiYWNrIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZm9yd2FyZCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHB1c2hTdGF0ZSA6ICdhLiAnYSAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVwbGFjZVN0YXRlIDogJ2EuICdhIC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmNsYXNzIHR5cGUgdW5kb01hbmFnZXIgPSBvYmplY3QgZW5kXG5cbmNsYXNzIHR5cGUgbmF2aWdhdG9yID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFwcENvZGVOYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcE5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXBwVmVyc2lvbiA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb29raWVFbmFibGVkIDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbkxpbmUgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBsYXRmb3JtIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZlbmRvciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1c2VyQWdlbnQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGFuZ3VhZ2UgOiBqc19zdHJpbmcgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVzZXJMYW5ndWFnZSA6IGpzX3N0cmluZyB0IG9wdGRlZiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbWF4VG91Y2hQb2ludHMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBzY3JlZW4gPVxuICBvYmplY3RcbiAgICBtZXRob2Qgd2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXZhaWxXaWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYXZhaWxIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBhcHBsaWNhdGlvbkNhY2hlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHN0YXR1cyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXBkYXRlIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWJvcnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzd2FwQ2FjaGUgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBvbmNoZWNraW5nIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uZXJyb3IgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25ub3VwZGF0ZSA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmRvd25sb2FkaW5nIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ucHJvZ3Jlc3MgOiAoYXBwbGljYXRpb25DYWNoZSB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb251cGRhdGVyZWFkeSA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmNhY2hlZCA6IChhcHBsaWNhdGlvbkNhY2hlIHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbm9ic29sZXRlIDogKGFwcGxpY2F0aW9uQ2FjaGUgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgaW5oZXJpdCBldmVudFRhcmdldFxuICBlbmRcblxuY2xhc3MgdHlwZSBfVVJMID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNyZWF0ZU9iamVjdFVSTCA6ICNGaWxlLmJsb2IgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgcmV2b2tlT2JqZWN0VVJMIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHdpbmRvdyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCBkb2N1bWVudCA6IGRvY3VtZW50IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFwcGxpY2F0aW9uQ2FjaGUgOiBhcHBsaWNhdGlvbkNhY2hlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbG9jYXRpb24gOiBsb2NhdGlvbiB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoaXN0b3J5IDogaGlzdG9yeSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB1bmRvTWFuYWdlciA6IHVuZG9NYW5hZ2VyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hdmlnYXRvciA6IG5hdmlnYXRvciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRTZWxlY3Rpb24gOiBzZWxlY3Rpb24gdCBtZXRoXG5cbiAgICBtZXRob2QgY2xvc2UgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbG9zZWQgOiBib29sIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0b3AgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb2N1cyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsdXIgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY3JvbGwgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNjcm9sbEJ5IDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXNzaW9uU3RvcmFnZSA6IHN0b3JhZ2UgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxvY2FsU3RvcmFnZSA6IHN0b3JhZ2UgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRvcCA6IHdpbmRvdyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwYXJlbnQgOiB3aW5kb3cgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZnJhbWVFbGVtZW50IDogZWxlbWVudCB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3Blbl8gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgLT4gd2luZG93IHQgb3B0IG1ldGhcblxuICAgIG1ldGhvZCBhbGVydCA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbmZpcm0gOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHByb21wdCA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IG9wdCBtZXRoXG5cbiAgICBtZXRob2QgcHJpbnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRJbnRlcnZhbCA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IGZsb2F0IC0+IGludGVydmFsX2lkIG1ldGhcblxuICAgIG1ldGhvZCBjbGVhckludGVydmFsIDogaW50ZXJ2YWxfaWQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VGltZW91dCA6ICh1bml0IC0+IHVuaXQpIEpzLmNhbGxiYWNrIC0+IGZsb2F0IC0+IHRpbWVvdXRfaWQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyVGltZW91dCA6IHRpbWVvdXRfaWQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIDpcbiAgICAgIChmbG9hdCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiBhbmltYXRpb25fZnJhbWVfcmVxdWVzdF9pZCBtZXRoXG5cbiAgICBtZXRob2QgY2FuY2VsQW5pbWF0aW9uRnJhbWUgOiBhbmltYXRpb25fZnJhbWVfcmVxdWVzdF9pZCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzY3JlZW4gOiBzY3JlZW4gdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5uZXJXaWR0aCA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaW5uZXJIZWlnaHQgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG91dGVyV2lkdGggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG91dGVySGVpZ2h0IDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRDb21wdXRlZFN0eWxlIDogI2VsZW1lbnQgdCAtPiBjc3NTdHlsZURlY2xhcmF0aW9uIHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENvbXB1dGVkU3R5bGVfcHNldWRvRWx0IDpcbiAgICAgICNlbGVtZW50IHQgLT4ganNfc3RyaW5nIHQgLT4gY3NzU3R5bGVEZWNsYXJhdGlvbiB0IG1ldGhcblxuICAgIG1ldGhvZCBhdG9iIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGJ0b2EgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2Qgb25sb2FkIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb251bmxvYWQgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbmJlZm9yZXVubG9hZCA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9uYmx1ciA6ICh3aW5kb3cgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25mb2N1cyA6ICh3aW5kb3cgdCwgZm9jdXNFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25yZXNpemUgOiAod2luZG93IHQsIGV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHByb3BcblxuICAgIG1ldGhvZCBvbm9yaWVudGF0aW9uY2hhbmdlIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25wb3BzdGF0ZSA6ICh3aW5kb3cgdCwgcG9wU3RhdGVFdmVudCB0KSBldmVudF9saXN0ZW5lciBwcm9wXG5cbiAgICBtZXRob2Qgb25oYXNoY2hhbmdlIDogKHdpbmRvdyB0LCBoYXNoQ2hhbmdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgcHJvcFxuXG4gICAgbWV0aG9kIG9ub25saW5lIDogKHdpbmRvdyB0LCBldmVudCB0KSBldmVudF9saXN0ZW5lciB3cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ub2ZmbGluZSA6ICh3aW5kb3cgdCwgZXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVVJMIDogX1VSTCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkZXZpY2VQaXhlbFJhdGlvIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHdpbmRvdyA6IHdpbmRvdyB0ID0gSnMuVW5zYWZlLmdsb2JhbFxuXG4oKiBUaGUgdG9wbGV2ZWwgb2JqZWN0ICopXG5cbmxldCBkb2N1bWVudCA9IHdpbmRvdyMjLmRvY3VtZW50XG5cbmxldCBnZXRFbGVtZW50QnlJZCBpZCA9XG4gIEpzLk9wdC5jYXNlXG4gICAgKGRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcbiAgICAoZnVuICgpIC0+IHJhaXNlIE5vdF9mb3VuZClcbiAgICAoZnVuIHBub2RlIC0+IHBub2RlKVxuXG5sZXQgZ2V0RWxlbWVudEJ5SWRfZXhuIGlkID1cbiAgSnMuT3B0LmNhc2VcbiAgICAoZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gZmFpbHdpdGggKFByaW50Zi5zcHJpbnRmIFwiZ2V0RWxlbWVudEJ5SWRfZXhuOiAlUyBub3QgZm91bmRcIiBpZCkpXG4gICAgKGZ1biBwbm9kZSAtPiBwbm9kZSlcblxubGV0IGdldEVsZW1lbnRCeUlkX29wdCBpZCA9IEpzLk9wdC50b19vcHRpb24gKGRvY3VtZW50IyNnZXRFbGVtZW50QnlJZCAoSnMuc3RyaW5nIGlkKSlcblxubGV0IGdldEVsZW1lbnRCeUlkX2NvZXJjZSBpZCBjb2VyY2UgPVxuICBKcy5PcHQuY2FzZVxuICAgIChkb2N1bWVudCMjZ2V0RWxlbWVudEJ5SWQgKEpzLnN0cmluZyBpZCkpXG4gICAgKGZ1biAoKSAtPiBOb25lKVxuICAgIChmdW4gZSAtPiBKcy5PcHQudG9fb3B0aW9uIChjb2VyY2UgZSkpXG5cbigqKioqKVxuXG5jbGFzcyB0eXBlIGZyYW1lU2V0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgbWV0aG9kIGNvbHMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgcm93cyA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgZnJhbWVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZnJhbWVCb3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbG9uZ0Rlc2MgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgbWFyZ2luSGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbldpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgbm9SZXNpemUgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbGluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29udGVudERvY3VtZW50IDogZG9jdW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpRnJhbWVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBtZXRob2QgZnJhbWVCb3JkZXIgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGxvbmdEZXNjIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG1hcmdpbkhlaWdodCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtYXJnaW5XaWR0aCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHNjcm9sbGluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBzcmMgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgY29udGVudERvY3VtZW50IDogZG9jdW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRXaW5kb3cgOiB3aW5kb3cgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKioqKilcblxuKCpYWFggU2hvdWxkIHByb3ZpZGUgY3JlYXRpb24gZnVuY3Rpb25zIGEgbGEgbGFibGd0ay4uLiAqKVxuXG5sZXQgb3B0X2l0ZXIgeCBmID1cbiAgbWF0Y2ggeCB3aXRoXG4gIHwgTm9uZSAtPiAoKVxuICB8IFNvbWUgdiAtPiBmIHZcblxubGV0IGNyZWF0ZUVsZW1lbnQgKGRvYyA6IGRvY3VtZW50IHQpIG5hbWUgPSBkb2MjI2NyZWF0ZUVsZW1lbnQgKEpzLnN0cmluZyBuYW1lKVxuXG5sZXQgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgbmFtZSA9IEpzLlVuc2FmZS5jb2VyY2UgKGNyZWF0ZUVsZW1lbnQgZG9jIG5hbWUpXG5cbmxldCBjcmVhdGVFbGVtZW50U3ludGF4ID0gcmVmIGBVbmtub3duXG5cbmxldCByZWMgdW5zYWZlQ3JlYXRlRWxlbWVudEV4ID9fdHlwZSA/bmFtZSBkb2MgZWx0ID1cbiAgaWYgUG9seS4oX3R5cGUgPSBOb25lKSAmJiBQb2x5LihuYW1lID0gTm9uZSlcbiAgdGhlbiBKcy5VbnNhZmUuY29lcmNlIChjcmVhdGVFbGVtZW50IGRvYyBlbHQpXG4gIGVsc2VcbiAgICBtYXRjaCAhY3JlYXRlRWxlbWVudFN5bnRheCB3aXRoXG4gICAgfCBgU3RhbmRhcmQgLT5cbiAgICAgICAgbGV0IHJlcyA9IEpzLlVuc2FmZS5jb2VyY2UgKGNyZWF0ZUVsZW1lbnQgZG9jIGVsdCkgaW5cbiAgICAgICAgb3B0X2l0ZXIgX3R5cGUgKGZ1biB0IC0+IHJlcyMjLl90eXBlIDo9IHQpO1xuICAgICAgICBvcHRfaXRlciBuYW1lIChmdW4gbiAtPiByZXMjIy5uYW1lIDo9IG4pO1xuICAgICAgICByZXNcbiAgICB8IGBFeHRlbmRlZCAtPlxuICAgICAgICBsZXQgYSA9IG5ldyVqcyBKcy5hcnJheV9lbXB0eSBpblxuICAgICAgICBpZ25vcmUgKGEjI3B1c2hfMiAoSnMuc3RyaW5nIFwiPFwiKSAoSnMuc3RyaW5nIGVsdCkpO1xuICAgICAgICBvcHRfaXRlciBfdHlwZSAoZnVuIHQgLT5cbiAgICAgICAgICAgIGlnbm9yZSAoYSMjcHVzaF8zIChKcy5zdHJpbmcgXCIgdHlwZT1cXFwiXCIpIChodG1sX2VzY2FwZSB0KSAoSnMuc3RyaW5nIFwiXFxcIlwiKSkpO1xuICAgICAgICBvcHRfaXRlciBuYW1lIChmdW4gbiAtPlxuICAgICAgICAgICAgaWdub3JlIChhIyNwdXNoXzMgKEpzLnN0cmluZyBcIiBuYW1lPVxcXCJcIikgKGh0bWxfZXNjYXBlIG4pIChKcy5zdHJpbmcgXCJcXFwiXCIpKSk7XG4gICAgICAgIGlnbm9yZSAoYSMjcHVzaCAoSnMuc3RyaW5nIFwiPlwiKSk7XG4gICAgICAgIEpzLlVuc2FmZS5jb2VyY2UgKGRvYyMjY3JlYXRlRWxlbWVudCAoYSMjam9pbiAoSnMuc3RyaW5nIFwiXCIpKSlcbiAgICB8IGBVbmtub3duIC0+XG4gICAgICAgIGNyZWF0ZUVsZW1lbnRTeW50YXggOj1cbiAgICAgICAgICBpZiB0cnlcbiAgICAgICAgICAgICAgIGxldCBlbCA6IGlucHV0RWxlbWVudCBKcy50ID1cbiAgICAgICAgICAgICAgICAgSnMuVW5zYWZlLmNvZXJjZVxuICAgICAgICAgICAgICAgICAgIChkb2N1bWVudCMjY3JlYXRlRWxlbWVudCAoSnMuc3RyaW5nIFwiPGlucHV0IG5hbWU9XFxcInhcXFwiPlwiKSlcbiAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICBlbCMjLnRhZ05hbWUjI3RvTG93ZXJDYXNlID09IEpzLnN0cmluZyBcImlucHV0XCJcbiAgICAgICAgICAgICAgICYmIGVsIyMubmFtZSA9PSBKcy5zdHJpbmcgXCJ4XCJcbiAgICAgICAgICAgICB3aXRoIF8gLT4gZmFsc2VcbiAgICAgICAgICB0aGVuIGBFeHRlbmRlZFxuICAgICAgICAgIGVsc2UgYFN0YW5kYXJkO1xuICAgICAgICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBlbHRcblxubGV0IGNyZWF0ZUh0bWwgZG9jIDogaHRtbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaHRtbFwiXG5cbmxldCBjcmVhdGVIZWFkIGRvYyA6IGhlYWRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImhlYWRcIlxuXG5sZXQgY3JlYXRlTGluayBkb2MgOiBsaW5rRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJsaW5rXCJcblxubGV0IGNyZWF0ZVRpdGxlIGRvYyA6IHRpdGxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0aXRsZVwiXG5cbmxldCBjcmVhdGVNZXRhIGRvYyA6IG1ldGFFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1ldGFcIlxuXG5sZXQgY3JlYXRlQmFzZSBkb2MgOiBiYXNlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJiYXNlXCJcblxubGV0IGNyZWF0ZVN0eWxlIGRvYyA6IHN0eWxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzdHlsZVwiXG5cbmxldCBjcmVhdGVCb2R5IGRvYyA6IGJvZHlFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImJvZHlcIlxuXG5sZXQgY3JlYXRlRm9ybSBkb2MgOiBmb3JtRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb3JtXCJcblxubGV0IGNyZWF0ZU9wdGdyb3VwIGRvYyA6IG9wdEdyb3VwRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJvcHRncm91cFwiXG5cbmxldCBjcmVhdGVPcHRpb24gZG9jIDogb3B0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJvcHRpb25cIlxuXG5sZXQgY3JlYXRlU2VsZWN0ID9fdHlwZSA/bmFtZSBkb2MgOiBzZWxlY3RFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBcInNlbGVjdFwiXG5cbmxldCBjcmVhdGVJbnB1dCA/X3R5cGUgP25hbWUgZG9jIDogaW5wdXRFbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBcImlucHV0XCJcblxubGV0IGNyZWF0ZVRleHRhcmVhID9fdHlwZSA/bmFtZSBkb2MgOiB0ZXh0QXJlYUVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnRFeCA/X3R5cGUgP25hbWUgZG9jIFwidGV4dGFyZWFcIlxuXG5sZXQgY3JlYXRlQnV0dG9uID9fdHlwZSA/bmFtZSBkb2MgOiBidXR0b25FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50RXggP190eXBlID9uYW1lIGRvYyBcImJ1dHRvblwiXG5cbmxldCBjcmVhdGVMYWJlbCBkb2MgOiBsYWJlbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGFiZWxcIlxuXG5sZXQgY3JlYXRlRmllbGRzZXQgZG9jIDogZmllbGRTZXRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZpZWxkc2V0XCJcblxubGV0IGNyZWF0ZUxlZ2VuZCBkb2MgOiBsZWdlbmRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxlZ2VuZFwiXG5cbmxldCBjcmVhdGVVbCBkb2MgOiB1TGlzdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidWxcIlxuXG5sZXQgY3JlYXRlT2wgZG9jIDogb0xpc3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm9sXCJcblxubGV0IGNyZWF0ZURsIGRvYyA6IGRMaXN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkbFwiXG5cbmxldCBjcmVhdGVMaSBkb2MgOiBsaUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGlcIlxuXG5sZXQgY3JlYXRlRGl2IGRvYyA6IGRpdkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZGl2XCJcblxubGV0IGNyZWF0ZUVtYmVkIGRvYyA6IGVtYmVkRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJlbWJlZFwiXG5cbmxldCBjcmVhdGVQIGRvYyA6IHBhcmFncmFwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicFwiXG5cbmxldCBjcmVhdGVIMSBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoMVwiXG5cbmxldCBjcmVhdGVIMiBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoMlwiXG5cbmxldCBjcmVhdGVIMyBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoM1wiXG5cbmxldCBjcmVhdGVINCBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoNFwiXG5cbmxldCBjcmVhdGVINSBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoNVwiXG5cbmxldCBjcmVhdGVINiBkb2MgOiBoZWFkaW5nRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJoNlwiXG5cbmxldCBjcmVhdGVRIGRvYyA6IHF1b3RlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJxXCJcblxubGV0IGNyZWF0ZUJsb2NrcXVvdGUgZG9jIDogcXVvdGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImJsb2NrcXVvdGVcIlxuXG5sZXQgY3JlYXRlUHJlIGRvYyA6IHByZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicHJlXCJcblxubGV0IGNyZWF0ZUJyIGRvYyA6IGJyRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJiclwiXG5cbmxldCBjcmVhdGVIciBkb2MgOiBockVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaHJcIlxuXG5sZXQgY3JlYXRlSW5zIGRvYyA6IG1vZEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaW5zXCJcblxubGV0IGNyZWF0ZURlbCBkb2MgOiBtb2RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRlbFwiXG5cbmxldCBjcmVhdGVBIGRvYyA6IGFuY2hvckVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYVwiXG5cbmxldCBjcmVhdGVJbWcgZG9jIDogaW1hZ2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImltZ1wiXG5cbmxldCBjcmVhdGVPYmplY3QgZG9jIDogb2JqZWN0RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJvYmplY3RcIlxuXG5sZXQgY3JlYXRlUGFyYW0gZG9jIDogcGFyYW1FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBhcmFtXCJcblxubGV0IGNyZWF0ZU1hcCBkb2MgOiBtYXBFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1hcFwiXG5cbmxldCBjcmVhdGVBcmVhIGRvYyA6IGFyZWFFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFyZWFcIlxuXG5sZXQgY3JlYXRlU2NyaXB0IGRvYyA6IHNjcmlwdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic2NyaXB0XCJcblxubGV0IGNyZWF0ZVRhYmxlIGRvYyA6IHRhYmxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0YWJsZVwiXG5cbmxldCBjcmVhdGVDYXB0aW9uIGRvYyA6IHRhYmxlQ2FwdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2FwdGlvblwiXG5cbmxldCBjcmVhdGVDb2wgZG9jIDogdGFibGVDb2xFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNvbFwiXG5cbmxldCBjcmVhdGVDb2xncm91cCBkb2MgOiB0YWJsZUNvbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY29sZ3JvdXBcIlxuXG5sZXQgY3JlYXRlVGhlYWQgZG9jIDogdGFibGVTZWN0aW9uRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0aGVhZFwiXG5cbmxldCBjcmVhdGVUZm9vdCBkb2MgOiB0YWJsZVNlY3Rpb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRmb290XCJcblxubGV0IGNyZWF0ZVRib2R5IGRvYyA6IHRhYmxlU2VjdGlvbkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGJvZHlcIlxuXG5sZXQgY3JlYXRlVHIgZG9jIDogdGFibGVSb3dFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRyXCJcblxubGV0IGNyZWF0ZVRoIGRvYyA6IHRhYmxlQ2VsbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwidGhcIlxuXG5sZXQgY3JlYXRlVGQgZG9jIDogdGFibGVDZWxsRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0ZFwiXG5cbmxldCBjcmVhdGVTdWIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzdWJcIlxuXG5sZXQgY3JlYXRlU3VwIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic3VwXCJcblxubGV0IGNyZWF0ZVNwYW4gZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzcGFuXCJcblxubGV0IGNyZWF0ZVR0IGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwidHRcIlxuXG5sZXQgY3JlYXRlSSBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImlcIlxuXG5sZXQgY3JlYXRlQiBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImJcIlxuXG5sZXQgY3JlYXRlQmlnIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiYmlnXCJcblxubGV0IGNyZWF0ZVNtYWxsIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwic21hbGxcIlxuXG5sZXQgY3JlYXRlRW0gZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJlbVwiXG5cbmxldCBjcmVhdGVTdHJvbmcgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzdHJvbmdcIlxuXG5sZXQgY3JlYXRlQ2l0ZSBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImNpdGVcIlxuXG5sZXQgY3JlYXRlRGZuIGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwiZGZuXCJcblxubGV0IGNyZWF0ZUNvZGUgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJjb2RlXCJcblxubGV0IGNyZWF0ZVNhbXAgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJzYW1wXCJcblxubGV0IGNyZWF0ZUtiZCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImtiZFwiXG5cbmxldCBjcmVhdGVWYXIgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJ2YXJcIlxuXG5sZXQgY3JlYXRlQWJiciBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImFiYnJcIlxuXG5sZXQgY3JlYXRlRGQgZG9jID0gY3JlYXRlRWxlbWVudCBkb2MgXCJkZFwiXG5cbmxldCBjcmVhdGVEdCBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImR0XCJcblxubGV0IGNyZWF0ZU5vc2NyaXB0IGRvYyA9IGNyZWF0ZUVsZW1lbnQgZG9jIFwibm9zY3JpcHRcIlxuXG5sZXQgY3JlYXRlQWRkcmVzcyBkb2MgPSBjcmVhdGVFbGVtZW50IGRvYyBcImFkZHJlc3NcIlxuXG5sZXQgY3JlYXRlRnJhbWVzZXQgZG9jIDogZnJhbWVTZXRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZyYW1lc2V0XCJcblxubGV0IGNyZWF0ZUZyYW1lIGRvYyA6IGZyYW1lRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmcmFtZVwiXG5cbmxldCBjcmVhdGVJZnJhbWUgZG9jIDogaUZyYW1lRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJpZnJhbWVcIlxuXG5sZXQgY3JlYXRlQXVkaW8gZG9jIDogYXVkaW9FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImF1ZGlvXCJcblxubGV0IGNyZWF0ZVZpZGVvIGRvYyA6IGF1ZGlvRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ2aWRlb1wiXG5cbmV4Y2VwdGlvbiBDYW52YXNfbm90X2F2YWlsYWJsZVxuXG5sZXQgY3JlYXRlQ2FudmFzIGRvYyA6IGNhbnZhc0VsZW1lbnQgdCA9XG4gIGxldCBjID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjYW52YXNcIiBpblxuICBpZiBub3QgKE9wdC50ZXN0IGMjIy5nZXRDb250ZXh0KSB0aGVuIHJhaXNlIENhbnZhc19ub3RfYXZhaWxhYmxlO1xuICBjXG5cbmxldCBodG1sX2VsZW1lbnQgOiBodG1sRWxlbWVudCB0IGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSFRNTEVsZW1lbnRcblxubW9kdWxlIENvZXJjZVRvID0gc3RydWN0XG4gIGxldCBlbGVtZW50IDogI0RvbS5ub2RlIEpzLnQgLT4gZWxlbWVudCBKcy50IEpzLm9wdCA9XG4gICAgaWYgZGVmIGh0bWxfZWxlbWVudCA9PSB1bmRlZmluZWRcbiAgICB0aGVuXG4gICAgICAoKiBpZSA8IDkgZG9lcyBub3QgaGF2ZSBIVE1MRWxlbWVudDogd2UgaGF2ZSB0byBjaGVhdCB0byBjaGVja1xuICAgICAgICAgdGhhdCBzb21ldGhpbmcgaXMgYW4gaHRtbCBlbGVtZW50ICopXG4gICAgICBmdW4gZSAtPlxuICAgICAgaWYgZGVmIChKcy5VbnNhZmUuY29lcmNlIGUpIyMuaW5uZXJIVE1MID09IHVuZGVmaW5lZFxuICAgICAgdGhlbiBKcy5udWxsXG4gICAgICBlbHNlIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICBlbHNlXG4gICAgICBmdW4gZSAtPlxuICAgICAgaWYgSnMuaW5zdGFuY2VvZiBlIGh0bWxfZWxlbWVudCB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSkgZWxzZSBKcy5udWxsXG5cbiAgbGV0IHVuc2FmZUNvZXJjZSB0YWcgKGUgOiAjZWxlbWVudCB0KSA9XG4gICAgaWYgZSMjLnRhZ05hbWUjI3RvTG93ZXJDYXNlID09IEpzLnN0cmluZyB0YWdcbiAgICB0aGVuIEpzLnNvbWUgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICBlbHNlIEpzLm51bGxcblxuICBsZXQgYSBlID0gdW5zYWZlQ29lcmNlIFwiYVwiIGVcblxuICBsZXQgYXJlYSBlID0gdW5zYWZlQ29lcmNlIFwiYXJlYVwiIGVcblxuICBsZXQgYmFzZSBlID0gdW5zYWZlQ29lcmNlIFwiYmFzZVwiIGVcblxuICBsZXQgYmxvY2txdW90ZSBlID0gdW5zYWZlQ29lcmNlIFwiYmxvY2txdW90ZVwiIGVcblxuICBsZXQgYm9keSBlID0gdW5zYWZlQ29lcmNlIFwiYm9keVwiIGVcblxuICBsZXQgYnIgZSA9IHVuc2FmZUNvZXJjZSBcImJyXCIgZVxuXG4gIGxldCBidXR0b24gZSA9IHVuc2FmZUNvZXJjZSBcImJ1dHRvblwiIGVcblxuICBsZXQgY2FudmFzIGUgPSB1bnNhZmVDb2VyY2UgXCJjYW52YXNcIiBlXG5cbiAgbGV0IGNhcHRpb24gZSA9IHVuc2FmZUNvZXJjZSBcImNhcHRpb25cIiBlXG5cbiAgbGV0IGNvbCBlID0gdW5zYWZlQ29lcmNlIFwiY29sXCIgZVxuXG4gIGxldCBjb2xncm91cCBlID0gdW5zYWZlQ29lcmNlIFwiY29sZ3JvdXBcIiBlXG5cbiAgbGV0IGRlbCBlID0gdW5zYWZlQ29lcmNlIFwiZGVsXCIgZVxuXG4gIGxldCBkaXYgZSA9IHVuc2FmZUNvZXJjZSBcImRpdlwiIGVcblxuICBsZXQgZGwgZSA9IHVuc2FmZUNvZXJjZSBcImRsXCIgZVxuXG4gIGxldCBmaWVsZHNldCBlID0gdW5zYWZlQ29lcmNlIFwiZmllbGRzZXRcIiBlXG5cbiAgbGV0IGVtYmVkIGUgPSB1bnNhZmVDb2VyY2UgXCJlbWJlZFwiIGVcblxuICBsZXQgZm9ybSBlID0gdW5zYWZlQ29lcmNlIFwiZm9ybVwiIGVcblxuICBsZXQgZnJhbWVzZXQgZSA9IHVuc2FmZUNvZXJjZSBcImZyYW1lc2V0XCIgZVxuXG4gIGxldCBmcmFtZSBlID0gdW5zYWZlQ29lcmNlIFwiZnJhbWVcIiBlXG5cbiAgbGV0IGgxIGUgPSB1bnNhZmVDb2VyY2UgXCJoMVwiIGVcblxuICBsZXQgaDIgZSA9IHVuc2FmZUNvZXJjZSBcImgyXCIgZVxuXG4gIGxldCBoMyBlID0gdW5zYWZlQ29lcmNlIFwiaDNcIiBlXG5cbiAgbGV0IGg0IGUgPSB1bnNhZmVDb2VyY2UgXCJoNFwiIGVcblxuICBsZXQgaDUgZSA9IHVuc2FmZUNvZXJjZSBcImg1XCIgZVxuXG4gIGxldCBoNiBlID0gdW5zYWZlQ29lcmNlIFwiaDZcIiBlXG5cbiAgbGV0IGhlYWQgZSA9IHVuc2FmZUNvZXJjZSBcImhlYWRcIiBlXG5cbiAgbGV0IGhyIGUgPSB1bnNhZmVDb2VyY2UgXCJoclwiIGVcblxuICBsZXQgaHRtbCBlID0gdW5zYWZlQ29lcmNlIFwiaHRtbFwiIGVcblxuICBsZXQgaWZyYW1lIGUgPSB1bnNhZmVDb2VyY2UgXCJpZnJhbWVcIiBlXG5cbiAgbGV0IGltZyBlID0gdW5zYWZlQ29lcmNlIFwiaW1nXCIgZVxuXG4gIGxldCBpbnB1dCBlID0gdW5zYWZlQ29lcmNlIFwiaW5wdXRcIiBlXG5cbiAgbGV0IGlucyBlID0gdW5zYWZlQ29lcmNlIFwiaW5zXCIgZVxuXG4gIGxldCBsYWJlbCBlID0gdW5zYWZlQ29lcmNlIFwibGFiZWxcIiBlXG5cbiAgbGV0IGxlZ2VuZCBlID0gdW5zYWZlQ29lcmNlIFwibGVnZW5kXCIgZVxuXG4gIGxldCBsaSBlID0gdW5zYWZlQ29lcmNlIFwibGlcIiBlXG5cbiAgbGV0IGxpbmsgZSA9IHVuc2FmZUNvZXJjZSBcImxpbmtcIiBlXG5cbiAgbGV0IG1hcCBlID0gdW5zYWZlQ29lcmNlIFwibWFwXCIgZVxuXG4gIGxldCBtZXRhIGUgPSB1bnNhZmVDb2VyY2UgXCJtZXRhXCIgZVxuXG4gIGxldCBfb2JqZWN0IGUgPSB1bnNhZmVDb2VyY2UgXCJvYmplY3RcIiBlXG5cbiAgbGV0IG9sIGUgPSB1bnNhZmVDb2VyY2UgXCJvbFwiIGVcblxuICBsZXQgb3B0Z3JvdXAgZSA9IHVuc2FmZUNvZXJjZSBcIm9wdGdyb3VwXCIgZVxuXG4gIGxldCBvcHRpb24gZSA9IHVuc2FmZUNvZXJjZSBcIm9wdGlvblwiIGVcblxuICBsZXQgcCBlID0gdW5zYWZlQ29lcmNlIFwicFwiIGVcblxuICBsZXQgcGFyYW0gZSA9IHVuc2FmZUNvZXJjZSBcInBhcmFtXCIgZVxuXG4gIGxldCBwcmUgZSA9IHVuc2FmZUNvZXJjZSBcInByZVwiIGVcblxuICBsZXQgcSBlID0gdW5zYWZlQ29lcmNlIFwicVwiIGVcblxuICBsZXQgc2NyaXB0IGUgPSB1bnNhZmVDb2VyY2UgXCJzY3JpcHRcIiBlXG5cbiAgbGV0IHNlbGVjdCBlID0gdW5zYWZlQ29lcmNlIFwic2VsZWN0XCIgZVxuXG4gIGxldCBzdHlsZSBlID0gdW5zYWZlQ29lcmNlIFwic3R5bGVcIiBlXG5cbiAgbGV0IHRhYmxlIGUgPSB1bnNhZmVDb2VyY2UgXCJ0YWJsZVwiIGVcblxuICBsZXQgdGJvZHkgZSA9IHVuc2FmZUNvZXJjZSBcInRib2R5XCIgZVxuXG4gIGxldCB0ZCBlID0gdW5zYWZlQ29lcmNlIFwidGRcIiBlXG5cbiAgbGV0IHRleHRhcmVhIGUgPSB1bnNhZmVDb2VyY2UgXCJ0ZXh0YXJlYVwiIGVcblxuICBsZXQgdGZvb3QgZSA9IHVuc2FmZUNvZXJjZSBcInRmb290XCIgZVxuXG4gIGxldCB0aCBlID0gdW5zYWZlQ29lcmNlIFwidGhcIiBlXG5cbiAgbGV0IHRoZWFkIGUgPSB1bnNhZmVDb2VyY2UgXCJ0aGVhZFwiIGVcblxuICBsZXQgdGl0bGUgZSA9IHVuc2FmZUNvZXJjZSBcInRpdGxlXCIgZVxuXG4gIGxldCB0ciBlID0gdW5zYWZlQ29lcmNlIFwidHJcIiBlXG5cbiAgbGV0IHVsIGUgPSB1bnNhZmVDb2VyY2UgXCJ1bFwiIGVcblxuICBsZXQgYXVkaW8gZSA9IHVuc2FmZUNvZXJjZSBcImF1ZGlvXCIgZVxuXG4gIGxldCB2aWRlbyBlID0gdW5zYWZlQ29lcmNlIFwidmlkZW9cIiBlXG5cbiAgbGV0IHVuc2FmZUNvZXJjZUV2ZW50IGNvbnN0ciAoZXYgOiAjZXZlbnQgdCkgPVxuICAgIGlmIGRlZiBjb25zdHIgIT0gdW5kZWZpbmVkICYmIEpzLmluc3RhbmNlb2YgZXYgY29uc3RyXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGV2KVxuICAgIGVsc2UgSnMubnVsbFxuXG4gIGxldCBtb3VzZUV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9Nb3VzZUV2ZW50IGV2XG5cbiAgbGV0IGtleWJvYXJkRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX0tleWJvYXJkRXZlbnQgZXZcblxuICBsZXQgd2hlZWxFdmVudCBldiA9IHVuc2FmZUNvZXJjZUV2ZW50IEpzLlVuc2FmZS5nbG9iYWwjIy5fV2hlZWxFdmVudCBldlxuXG4gIGxldCBtb3VzZVNjcm9sbEV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9Nb3VzZVNjcm9sbEV2ZW50IGV2XG5cbiAgbGV0IHBvcFN0YXRlRXZlbnQgZXYgPSB1bnNhZmVDb2VyY2VFdmVudCBKcy5VbnNhZmUuZ2xvYmFsIyMuX1BvcFN0YXRlRXZlbnQgZXZcblxuICBsZXQgbWVzc2FnZUV2ZW50IGV2ID0gdW5zYWZlQ29lcmNlRXZlbnQgSnMuVW5zYWZlLmdsb2JhbCMjLl9NZXNzYWdlRXZlbnQgZXZcbmVuZFxuXG4oKioqKilcblxubGV0IGV2ZW50VGFyZ2V0ID0gRG9tLmV2ZW50VGFyZ2V0XG5cbmxldCBldmVudFJlbGF0ZWRUYXJnZXQgKGUgOiAjbW91c2VFdmVudCB0KSA9XG4gIE9wdGRlZi5nZXQgZSMjLnJlbGF0ZWRUYXJnZXQgKGZ1biAoKSAtPlxuICAgICAgbWF0Y2ggSnMudG9fc3RyaW5nIGUjIy5fdHlwZSB3aXRoXG4gICAgICB8IFwibW91c2VvdmVyXCIgLT4gT3B0ZGVmLmdldCBlIyMuZnJvbUVsZW1lbnQgKGZ1biAoKSAtPiBhc3NlcnQgZmFsc2UpXG4gICAgICB8IFwibW91c2VvdXRcIiAtPiBPcHRkZWYuZ2V0IGUjIy50b0VsZW1lbnQgKGZ1biAoKSAtPiBhc3NlcnQgZmFsc2UpXG4gICAgICB8IF8gLT4gSnMubnVsbClcblxubGV0IGV2ZW50QWJzb2x1dGVQb3NpdGlvbicgKGUgOiAjbW91c2VFdmVudCB0KSA9XG4gIGxldCBib2R5ID0gZG9jdW1lbnQjIy5ib2R5IGluXG4gIGxldCBodG1sID0gZG9jdW1lbnQjIy5kb2N1bWVudEVsZW1lbnQgaW5cbiAgKCBlIyMuY2xpZW50WCArIGJvZHkjIy5zY3JvbGxMZWZ0ICsgaHRtbCMjLnNjcm9sbExlZnRcbiAgLCBlIyMuY2xpZW50WSArIGJvZHkjIy5zY3JvbGxUb3AgKyBodG1sIyMuc2Nyb2xsVG9wIClcblxubGV0IGV2ZW50QWJzb2x1dGVQb3NpdGlvbiAoZSA6ICNtb3VzZUV2ZW50IHQpID1cbiAgT3B0ZGVmLmNhc2VcbiAgICBlIyMucGFnZVhcbiAgICAoZnVuICgpIC0+IGV2ZW50QWJzb2x1dGVQb3NpdGlvbicgZSlcbiAgICAoZnVuIHggLT4gT3B0ZGVmLmNhc2UgZSMjLnBhZ2VZIChmdW4gKCkgLT4gZXZlbnRBYnNvbHV0ZVBvc2l0aW9uJyBlKSAoZnVuIHkgLT4geCwgeSkpXG5cbmxldCBlbGVtZW50Q2xpZW50UG9zaXRpb24gKGUgOiAjZWxlbWVudCB0KSA9XG4gIGxldCByID0gZSMjZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGluXG4gIGxldCBib2R5ID0gZG9jdW1lbnQjIy5ib2R5IGluXG4gIGxldCBodG1sID0gZG9jdW1lbnQjIy5kb2N1bWVudEVsZW1lbnQgaW5cbiAgKCB0cnVuY2F0ZSByIyMubGVmdCAtIGJvZHkjIy5jbGllbnRMZWZ0IC0gaHRtbCMjLmNsaWVudExlZnRcbiAgLCB0cnVuY2F0ZSByIyMudG9wIC0gYm9keSMjLmNsaWVudFRvcCAtIGh0bWwjIy5jbGllbnRUb3AgKVxuXG5sZXQgZ2V0RG9jdW1lbnRTY3JvbGwgKCkgPVxuICBsZXQgYm9keSA9IGRvY3VtZW50IyMuYm9keSBpblxuICBsZXQgaHRtbCA9IGRvY3VtZW50IyMuZG9jdW1lbnRFbGVtZW50IGluXG4gIGJvZHkjIy5zY3JvbGxMZWZ0ICsgaHRtbCMjLnNjcm9sbExlZnQsIGJvZHkjIy5zY3JvbGxUb3AgKyBodG1sIyMuc2Nyb2xsVG9wXG5cbmxldCBidXR0b25QcmVzc2VkIChldiA6ICNtb3VzZUV2ZW50IEpzLnQpID1cbiAgSnMuT3B0ZGVmLmNhc2VcbiAgICBldiMjLndoaWNoXG4gICAgKGZ1biAoKSAtPlxuICAgICAgbWF0Y2ggZXYjIy5idXR0b24gd2l0aFxuICAgICAgfCAxIC0+IExlZnRfYnV0dG9uXG4gICAgICB8IDIgLT4gUmlnaHRfYnV0dG9uXG4gICAgICB8IDQgLT4gTWlkZGxlX2J1dHRvblxuICAgICAgfCBfIC0+IE5vX2J1dHRvbilcbiAgICAoZnVuIHggLT4geClcblxubGV0IGFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyV2l0aE9wdGlvbnMgZSA/Y2FwdHVyZSA/b25jZSA/cGFzc2l2ZSBoID1cbiAgYWRkRXZlbnRMaXN0ZW5lcldpdGhPcHRpb25zXG4gICAgP2NhcHR1cmVcbiAgICA/b25jZVxuICAgID9wYXNzaXZlXG4gICAgZVxuICAgIEV2ZW50LndoZWVsXG4gICAgKGhhbmRsZXIgKGZ1biAoZSA6IG1vdXNld2hlZWxFdmVudCB0KSAtPlxuICAgICAgICAgbGV0IGR4ID0gLU9wdGRlZi5nZXQgZSMjLndoZWVsRGVsdGFYIChmdW4gKCkgLT4gMCkgLyA0MCBpblxuICAgICAgICAgbGV0IGR5ID0gLU9wdGRlZi5nZXQgZSMjLndoZWVsRGVsdGFZIChmdW4gKCkgLT4gZSMjLndoZWVsRGVsdGEpIC8gNDAgaW5cbiAgICAgICAgIGggKGUgOj4gbW91c2VFdmVudCB0KSB+ZHggfmR5KSlcblxubGV0IGFkZE1vdXNld2hlZWxFdmVudExpc3RlbmVyIGUgaCBjYXB0ID1cbiAgYWRkTW91c2V3aGVlbEV2ZW50TGlzdGVuZXJXaXRoT3B0aW9ucyB+Y2FwdHVyZTpjYXB0IGUgaFxuXG4oKioqKiopXG5cbm1vZHVsZSBLZXlib2FyZF9jb2RlID0gc3RydWN0XG4gIHR5cGUgdCA9XG4gICAgfCBVbmlkZW50aWZpZWRcbiAgICAoKiBBbHBoYWJldGljIENoYXJhY3RlcnMgKilcbiAgICB8IEtleUFcbiAgICB8IEtleUJcbiAgICB8IEtleUNcbiAgICB8IEtleURcbiAgICB8IEtleUVcbiAgICB8IEtleUZcbiAgICB8IEtleUdcbiAgICB8IEtleUhcbiAgICB8IEtleUlcbiAgICB8IEtleUpcbiAgICB8IEtleUtcbiAgICB8IEtleUxcbiAgICB8IEtleU1cbiAgICB8IEtleU5cbiAgICB8IEtleU9cbiAgICB8IEtleVBcbiAgICB8IEtleVFcbiAgICB8IEtleVJcbiAgICB8IEtleVNcbiAgICB8IEtleVRcbiAgICB8IEtleVVcbiAgICB8IEtleVZcbiAgICB8IEtleVdcbiAgICB8IEtleVhcbiAgICB8IEtleVlcbiAgICB8IEtleVpcbiAgICAoKiBEaWdpdHMgKilcbiAgICB8IERpZ2l0MFxuICAgIHwgRGlnaXQxXG4gICAgfCBEaWdpdDJcbiAgICB8IERpZ2l0M1xuICAgIHwgRGlnaXQ0XG4gICAgfCBEaWdpdDVcbiAgICB8IERpZ2l0NlxuICAgIHwgRGlnaXQ3XG4gICAgfCBEaWdpdDhcbiAgICB8IERpZ2l0OVxuICAgIHwgTWludXNcbiAgICB8IEVxdWFsXG4gICAgKCogV2hpdGVzcGFjZSAqKVxuICAgIHwgVGFiXG4gICAgfCBFbnRlclxuICAgIHwgU3BhY2VcbiAgICAoKiBFZGl0aW5nICopXG4gICAgfCBFc2NhcGVcbiAgICB8IEJhY2tzcGFjZVxuICAgIHwgSW5zZXJ0XG4gICAgfCBEZWxldGVcbiAgICB8IENhcHNMb2NrXG4gICAgKCogTWlzYyBQcmludGFibGUgKilcbiAgICB8IEJyYWNrZXRMZWZ0XG4gICAgfCBCcmFja2V0UmlnaHRcbiAgICB8IFNlbWljb2xvblxuICAgIHwgUXVvdGVcbiAgICB8IEJhY2txdW90ZVxuICAgIHwgQmFja3NsYXNoXG4gICAgfCBDb21tYVxuICAgIHwgUGVyaW9kXG4gICAgfCBTbGFzaFxuICAgICgqIEZ1bmN0aW9uIGtleXMgKilcbiAgICB8IEYxXG4gICAgfCBGMlxuICAgIHwgRjNcbiAgICB8IEY0XG4gICAgfCBGNVxuICAgIHwgRjZcbiAgICB8IEY3XG4gICAgfCBGOFxuICAgIHwgRjlcbiAgICB8IEYxMFxuICAgIHwgRjExXG4gICAgfCBGMTJcbiAgICAoKiBOdW1wYWQga2V5cyAqKVxuICAgIHwgTnVtcGFkMFxuICAgIHwgTnVtcGFkMVxuICAgIHwgTnVtcGFkMlxuICAgIHwgTnVtcGFkM1xuICAgIHwgTnVtcGFkNFxuICAgIHwgTnVtcGFkNVxuICAgIHwgTnVtcGFkNlxuICAgIHwgTnVtcGFkN1xuICAgIHwgTnVtcGFkOFxuICAgIHwgTnVtcGFkOVxuICAgIHwgTnVtcGFkTXVsdGlwbHlcbiAgICB8IE51bXBhZFN1YnRyYWN0XG4gICAgfCBOdW1wYWRBZGRcbiAgICB8IE51bXBhZERlY2ltYWxcbiAgICB8IE51bXBhZEVxdWFsXG4gICAgfCBOdW1wYWRFbnRlclxuICAgIHwgTnVtcGFkRGl2aWRlXG4gICAgfCBOdW1Mb2NrXG4gICAgKCogTW9kaWZpZXIga2V5cyAqKVxuICAgIHwgQ29udHJvbExlZnRcbiAgICB8IENvbnRyb2xSaWdodFxuICAgIHwgTWV0YUxlZnRcbiAgICB8IE1ldGFSaWdodFxuICAgIHwgU2hpZnRMZWZ0XG4gICAgfCBTaGlmdFJpZ2h0XG4gICAgfCBBbHRMZWZ0XG4gICAgfCBBbHRSaWdodFxuICAgICgqIEFycm93IGtleXMgKilcbiAgICB8IEFycm93TGVmdFxuICAgIHwgQXJyb3dSaWdodFxuICAgIHwgQXJyb3dVcFxuICAgIHwgQXJyb3dEb3duXG4gICAgKCogTmF2aWdhdGlvbiAqKVxuICAgIHwgUGFnZVVwXG4gICAgfCBQYWdlRG93blxuICAgIHwgSG9tZVxuICAgIHwgRW5kXG4gICAgKCogU291bmQgKilcbiAgICB8IFZvbHVtZU11dGVcbiAgICB8IFZvbHVtZURvd25cbiAgICB8IFZvbHVtZVVwXG4gICAgKCogTWVkaWEgKilcbiAgICB8IE1lZGlhVHJhY2tQcmV2aW91c1xuICAgIHwgTWVkaWFUcmFja05leHRcbiAgICB8IE1lZGlhUGxheVBhdXNlXG4gICAgfCBNZWRpYVN0b3BcbiAgICAoKiBCcm93c2VyIHNwZWNpYWwgKilcbiAgICB8IENvbnRleHRNZW51XG4gICAgfCBCcm93c2VyU2VhcmNoXG4gICAgfCBCcm93c2VySG9tZVxuICAgIHwgQnJvd3NlckZhdm9yaXRlc1xuICAgIHwgQnJvd3NlclJlZnJlc2hcbiAgICB8IEJyb3dzZXJTdG9wXG4gICAgfCBCcm93c2VyRm9yd2FyZFxuICAgIHwgQnJvd3NlckJhY2tcbiAgICAoKiBNaXNjICopXG4gICAgfCBPU0xlZnRcbiAgICB8IE9TUmlnaHRcbiAgICB8IFNjcm9sbExvY2tcbiAgICB8IFByaW50U2NyZWVuXG4gICAgfCBJbnRsQmFja3NsYXNoXG4gICAgfCBJbnRsWWVuXG4gICAgfCBQYXVzZVxuXG4gIGxldCB0cnlfY29kZSB2ID1cbiAgICBtYXRjaCBKcy50b19zdHJpbmcgdiB3aXRoXG4gICAgKCogQWxwaGFiZXRpYyBDaGFyYWN0ZXJzICopXG4gICAgfCBcIktleUFcIiAtPiBLZXlBXG4gICAgfCBcIktleUJcIiAtPiBLZXlCXG4gICAgfCBcIktleUNcIiAtPiBLZXlDXG4gICAgfCBcIktleURcIiAtPiBLZXlEXG4gICAgfCBcIktleUVcIiAtPiBLZXlFXG4gICAgfCBcIktleUZcIiAtPiBLZXlGXG4gICAgfCBcIktleUdcIiAtPiBLZXlHXG4gICAgfCBcIktleUhcIiAtPiBLZXlIXG4gICAgfCBcIktleUlcIiAtPiBLZXlJXG4gICAgfCBcIktleUpcIiAtPiBLZXlKXG4gICAgfCBcIktleUtcIiAtPiBLZXlLXG4gICAgfCBcIktleUxcIiAtPiBLZXlMXG4gICAgfCBcIktleU1cIiAtPiBLZXlNXG4gICAgfCBcIktleU5cIiAtPiBLZXlOXG4gICAgfCBcIktleU9cIiAtPiBLZXlPXG4gICAgfCBcIktleVBcIiAtPiBLZXlQXG4gICAgfCBcIktleVFcIiAtPiBLZXlRXG4gICAgfCBcIktleVJcIiAtPiBLZXlSXG4gICAgfCBcIktleVNcIiAtPiBLZXlTXG4gICAgfCBcIktleVRcIiAtPiBLZXlUXG4gICAgfCBcIktleVVcIiAtPiBLZXlVXG4gICAgfCBcIktleVZcIiAtPiBLZXlWXG4gICAgfCBcIktleVdcIiAtPiBLZXlXXG4gICAgfCBcIktleVhcIiAtPiBLZXlYXG4gICAgfCBcIktleVlcIiAtPiBLZXlZXG4gICAgfCBcIktleVpcIiAtPiBLZXlaXG4gICAgKCogRGlnaXRzICopXG4gICAgfCBcIkRpZ2l0MFwiIC0+IERpZ2l0MFxuICAgIHwgXCJEaWdpdDFcIiAtPiBEaWdpdDFcbiAgICB8IFwiRGlnaXQyXCIgLT4gRGlnaXQyXG4gICAgfCBcIkRpZ2l0M1wiIC0+IERpZ2l0M1xuICAgIHwgXCJEaWdpdDRcIiAtPiBEaWdpdDRcbiAgICB8IFwiRGlnaXQ1XCIgLT4gRGlnaXQ1XG4gICAgfCBcIkRpZ2l0NlwiIC0+IERpZ2l0NlxuICAgIHwgXCJEaWdpdDdcIiAtPiBEaWdpdDdcbiAgICB8IFwiRGlnaXQ4XCIgLT4gRGlnaXQ4XG4gICAgfCBcIkRpZ2l0OVwiIC0+IERpZ2l0OVxuICAgIHwgXCJNaW51c1wiIC0+IE1pbnVzXG4gICAgfCBcIkVxdWFsXCIgLT4gRXF1YWxcbiAgICAoKiBXaGl0ZXNwYWNlICopXG4gICAgfCBcIlRhYlwiIC0+IFRhYlxuICAgIHwgXCJFbnRlclwiIC0+IEVudGVyXG4gICAgfCBcIlNwYWNlXCIgLT4gU3BhY2VcbiAgICAoKiBFZGl0aW5nICopXG4gICAgfCBcIkVzY2FwZVwiIC0+IEVzY2FwZVxuICAgIHwgXCJCYWNrc3BhY2VcIiAtPiBCYWNrc3BhY2VcbiAgICB8IFwiSW5zZXJ0XCIgLT4gSW5zZXJ0XG4gICAgfCBcIkRlbGV0ZVwiIC0+IERlbGV0ZVxuICAgIHwgXCJDYXBzTG9ja1wiIC0+IENhcHNMb2NrXG4gICAgKCogTWlzYyBQcmludGFibGUgKilcbiAgICB8IFwiQnJhY2tldExlZnRcIiAtPiBCcmFja2V0TGVmdFxuICAgIHwgXCJCcmFja2V0UmlnaHRcIiAtPiBCcmFja2V0UmlnaHRcbiAgICB8IFwiU2VtaWNvbG9uXCIgLT4gU2VtaWNvbG9uXG4gICAgfCBcIlF1b3RlXCIgLT4gUXVvdGVcbiAgICB8IFwiQmFja3F1b3RlXCIgLT4gQmFja3F1b3RlXG4gICAgfCBcIkJhY2tzbGFzaFwiIC0+IEJhY2tzbGFzaFxuICAgIHwgXCJDb21tYVwiIC0+IENvbW1hXG4gICAgfCBcIlBlcmlvZFwiIC0+IFBlcmlvZFxuICAgIHwgXCJTbGFzaFwiIC0+IFNsYXNoXG4gICAgKCogRnVuY3Rpb24ga2V5cyAqKVxuICAgIHwgXCJGMVwiIC0+IEYxXG4gICAgfCBcIkYyXCIgLT4gRjJcbiAgICB8IFwiRjNcIiAtPiBGM1xuICAgIHwgXCJGNFwiIC0+IEY0XG4gICAgfCBcIkY1XCIgLT4gRjVcbiAgICB8IFwiRjZcIiAtPiBGNlxuICAgIHwgXCJGN1wiIC0+IEY3XG4gICAgfCBcIkY4XCIgLT4gRjhcbiAgICB8IFwiRjlcIiAtPiBGOVxuICAgIHwgXCJGMTBcIiAtPiBGMTBcbiAgICB8IFwiRjExXCIgLT4gRjExXG4gICAgfCBcIkYxMlwiIC0+IEYxMlxuICAgICgqIE51bXBhZCBrZXlzICopXG4gICAgfCBcIk51bXBhZDBcIiAtPiBOdW1wYWQwXG4gICAgfCBcIk51bXBhZDFcIiAtPiBOdW1wYWQxXG4gICAgfCBcIk51bXBhZDJcIiAtPiBOdW1wYWQyXG4gICAgfCBcIk51bXBhZDNcIiAtPiBOdW1wYWQzXG4gICAgfCBcIk51bXBhZDRcIiAtPiBOdW1wYWQ0XG4gICAgfCBcIk51bXBhZDVcIiAtPiBOdW1wYWQ1XG4gICAgfCBcIk51bXBhZDZcIiAtPiBOdW1wYWQ2XG4gICAgfCBcIk51bXBhZDdcIiAtPiBOdW1wYWQ3XG4gICAgfCBcIk51bXBhZDhcIiAtPiBOdW1wYWQ4XG4gICAgfCBcIk51bXBhZDlcIiAtPiBOdW1wYWQ5XG4gICAgfCBcIk51bXBhZE11bHRpcGx5XCIgLT4gTnVtcGFkTXVsdGlwbHlcbiAgICB8IFwiTnVtcGFkU3VidHJhY3RcIiAtPiBOdW1wYWRTdWJ0cmFjdFxuICAgIHwgXCJOdW1wYWRBZGRcIiAtPiBOdW1wYWRBZGRcbiAgICB8IFwiTnVtcGFkRGVjaW1hbFwiIC0+IE51bXBhZERlY2ltYWxcbiAgICB8IFwiTnVtcGFkRXF1YWxcIiAtPiBOdW1wYWRFcXVhbFxuICAgIHwgXCJOdW1wYWRFbnRlclwiIC0+IE51bXBhZEVudGVyXG4gICAgfCBcIk51bXBhZERpdmlkZVwiIC0+IE51bXBhZERpdmlkZVxuICAgIHwgXCJOdW1Mb2NrXCIgLT4gTnVtTG9ja1xuICAgICgqIE1vZGlmaWVyIGtleXMgKilcbiAgICB8IFwiQ29udHJvbExlZnRcIiAtPiBDb250cm9sTGVmdFxuICAgIHwgXCJDb250cm9sUmlnaHRcIiAtPiBDb250cm9sUmlnaHRcbiAgICB8IFwiTWV0YUxlZnRcIiAtPiBNZXRhTGVmdFxuICAgIHwgXCJNZXRhUmlnaHRcIiAtPiBNZXRhUmlnaHRcbiAgICB8IFwiU2hpZnRMZWZ0XCIgLT4gU2hpZnRMZWZ0XG4gICAgfCBcIlNoaWZ0UmlnaHRcIiAtPiBTaGlmdFJpZ2h0XG4gICAgfCBcIkFsdExlZnRcIiAtPiBBbHRMZWZ0XG4gICAgfCBcIkFsdFJpZ2h0XCIgLT4gQWx0UmlnaHRcbiAgICAoKiBBcnJvdyBrZXlzICopXG4gICAgfCBcIkFycm93TGVmdFwiIC0+IEFycm93TGVmdFxuICAgIHwgXCJBcnJvd1JpZ2h0XCIgLT4gQXJyb3dSaWdodFxuICAgIHwgXCJBcnJvd1VwXCIgLT4gQXJyb3dVcFxuICAgIHwgXCJBcnJvd0Rvd25cIiAtPiBBcnJvd0Rvd25cbiAgICAoKiBOYXZpZ2F0aW9uICopXG4gICAgfCBcIlBhZ2VVcFwiIC0+IFBhZ2VVcFxuICAgIHwgXCJQYWdlRG93blwiIC0+IFBhZ2VEb3duXG4gICAgfCBcIkhvbWVcIiAtPiBIb21lXG4gICAgfCBcIkVuZFwiIC0+IEVuZFxuICAgICgqIFNvdW5kICopXG4gICAgfCBcIlZvbHVtZU11dGVcIiAtPiBWb2x1bWVNdXRlXG4gICAgfCBcIlZvbHVtZURvd25cIiAtPiBWb2x1bWVEb3duXG4gICAgfCBcIlZvbHVtZVVwXCIgLT4gVm9sdW1lVXBcbiAgICAoKiBNZWRpYSAqKVxuICAgIHwgXCJNZWRpYVRyYWNrUHJldmlvdXNcIiAtPiBNZWRpYVRyYWNrUHJldmlvdXNcbiAgICB8IFwiTWVkaWFUcmFja05leHRcIiAtPiBNZWRpYVRyYWNrTmV4dFxuICAgIHwgXCJNZWRpYVBsYXlQYXVzZVwiIC0+IE1lZGlhUGxheVBhdXNlXG4gICAgfCBcIk1lZGlhU3RvcFwiIC0+IE1lZGlhU3RvcFxuICAgICgqIEJyb3dzZXIgc3BlY2lhbCAqKVxuICAgIHwgXCJDb250ZXh0TWVudVwiIC0+IENvbnRleHRNZW51XG4gICAgfCBcIkJyb3dzZXJTZWFyY2hcIiAtPiBCcm93c2VyU2VhcmNoXG4gICAgfCBcIkJyb3dzZXJIb21lXCIgLT4gQnJvd3NlckhvbWVcbiAgICB8IFwiQnJvd3NlckZhdm9yaXRlc1wiIC0+IEJyb3dzZXJGYXZvcml0ZXNcbiAgICB8IFwiQnJvd3NlclJlZnJlc2hcIiAtPiBCcm93c2VyUmVmcmVzaFxuICAgIHwgXCJCcm93c2VyU3RvcFwiIC0+IEJyb3dzZXJTdG9wXG4gICAgfCBcIkJyb3dzZXJGb3J3YXJkXCIgLT4gQnJvd3NlckZvcndhcmRcbiAgICB8IFwiQnJvd3NlckJhY2tcIiAtPiBCcm93c2VyQmFja1xuICAgICgqIE1pc2MgKilcbiAgICB8IFwiT1NMZWZ0XCIgLT4gT1NMZWZ0XG4gICAgfCBcIk9TUmlnaHRcIiAtPiBPU1JpZ2h0XG4gICAgfCBcIlNjcm9sbExvY2tcIiAtPiBTY3JvbGxMb2NrXG4gICAgfCBcIlByaW50U2NyZWVuXCIgLT4gUHJpbnRTY3JlZW5cbiAgICB8IFwiSW50bEJhY2tzbGFzaFwiIC0+IEludGxCYWNrc2xhc2hcbiAgICB8IFwiSW50bFllblwiIC0+IEludGxZZW5cbiAgICB8IFwiUGF1c2VcIiAtPiBQYXVzZVxuICAgIHwgXyAtPiBVbmlkZW50aWZpZWRcblxuICBsZXQgdHJ5X2tleV9jb2RlX2xlZnQgPSBmdW5jdGlvblxuICAgIHwgMTYgLT4gU2hpZnRMZWZ0XG4gICAgfCAxNyAtPiBDb250cm9sTGVmdFxuICAgIHwgMTggLT4gQWx0TGVmdFxuICAgIHwgOTEgLT4gTWV0YUxlZnRcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9yaWdodCA9IGZ1bmN0aW9uXG4gICAgfCAxNiAtPiBTaGlmdFJpZ2h0XG4gICAgfCAxNyAtPiBDb250cm9sUmlnaHRcbiAgICB8IDE4IC0+IEFsdFJpZ2h0XG4gICAgfCA5MSAtPiBNZXRhUmlnaHRcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IHRyeV9rZXlfY29kZV9udW1wYWQgPSBmdW5jdGlvblxuICAgIHwgNDYgLT4gTnVtcGFkRGVjaW1hbFxuICAgIHwgNDUgLT4gTnVtcGFkMFxuICAgIHwgMzUgLT4gTnVtcGFkMVxuICAgIHwgNDAgLT4gTnVtcGFkMlxuICAgIHwgMzQgLT4gTnVtcGFkM1xuICAgIHwgMzcgLT4gTnVtcGFkNFxuICAgIHwgMTIgLT4gTnVtcGFkNVxuICAgIHwgMzkgLT4gTnVtcGFkNlxuICAgIHwgMzYgLT4gTnVtcGFkN1xuICAgIHwgMzggLT4gTnVtcGFkOFxuICAgIHwgMzMgLT4gTnVtcGFkOVxuICAgIHwgMTMgLT4gTnVtcGFkRW50ZXJcbiAgICB8IDExMSAtPiBOdW1wYWREaXZpZGVcbiAgICB8IDEwNyAtPiBOdW1wYWRBZGRcbiAgICB8IDEwOSAtPiBOdW1wYWRTdWJ0cmFjdFxuICAgIHwgMTA2IC0+IE51bXBhZE11bHRpcGx5XG4gICAgfCAxMTAgLT4gTnVtcGFkRGVjaW1hbFxuICAgIHwgOTYgLT4gTnVtcGFkMFxuICAgIHwgOTcgLT4gTnVtcGFkMVxuICAgIHwgOTggLT4gTnVtcGFkMlxuICAgIHwgOTkgLT4gTnVtcGFkM1xuICAgIHwgMTAwIC0+IE51bXBhZDRcbiAgICB8IDEwMSAtPiBOdW1wYWQ1XG4gICAgfCAxMDIgLT4gTnVtcGFkNlxuICAgIHwgMTAzIC0+IE51bXBhZDdcbiAgICB8IDEwNCAtPiBOdW1wYWQ4XG4gICAgfCAxMDUgLT4gTnVtcGFkOVxuICAgIHwgXyAtPiBVbmlkZW50aWZpZWRcblxuICBsZXQgdHJ5X2tleV9jb2RlX25vcm1hbCA9IGZ1bmN0aW9uXG4gICAgfCAyNyAtPiBFc2NhcGVcbiAgICB8IDExMiAtPiBGMVxuICAgIHwgMTEzIC0+IEYyXG4gICAgfCAxMTQgLT4gRjNcbiAgICB8IDExNSAtPiBGNFxuICAgIHwgMTE2IC0+IEY1XG4gICAgfCAxMTcgLT4gRjZcbiAgICB8IDExOCAtPiBGN1xuICAgIHwgMTE5IC0+IEY4XG4gICAgfCAxMjAgLT4gRjlcbiAgICB8IDEyMSAtPiBGMTBcbiAgICB8IDEyMiAtPiBGMTFcbiAgICB8IDEyMyAtPiBGMTJcbiAgICB8IDQyIC0+IFByaW50U2NyZWVuXG4gICAgfCAxNDUgLT4gU2Nyb2xsTG9ja1xuICAgIHwgMTkgLT4gUGF1c2VcbiAgICB8IDE5MiAtPiBCYWNrcXVvdGVcbiAgICB8IDQ5IC0+IERpZ2l0MVxuICAgIHwgNTAgLT4gRGlnaXQyXG4gICAgfCA1MSAtPiBEaWdpdDNcbiAgICB8IDUyIC0+IERpZ2l0NFxuICAgIHwgNTMgLT4gRGlnaXQ1XG4gICAgfCA1NCAtPiBEaWdpdDZcbiAgICB8IDU1IC0+IERpZ2l0N1xuICAgIHwgNTYgLT4gRGlnaXQ4XG4gICAgfCA1NyAtPiBEaWdpdDlcbiAgICB8IDQ4IC0+IERpZ2l0MFxuICAgIHwgMTg5IC0+IE1pbnVzXG4gICAgfCAxODcgLT4gRXF1YWxcbiAgICB8IDggLT4gQmFja3NwYWNlXG4gICAgfCA5IC0+IFRhYlxuICAgIHwgODEgLT4gS2V5UVxuICAgIHwgODcgLT4gS2V5V1xuICAgIHwgNjkgLT4gS2V5RVxuICAgIHwgODIgLT4gS2V5UlxuICAgIHwgODQgLT4gS2V5VFxuICAgIHwgODkgLT4gS2V5WVxuICAgIHwgODUgLT4gS2V5VVxuICAgIHwgNzMgLT4gS2V5SVxuICAgIHwgNzkgLT4gS2V5T1xuICAgIHwgODAgLT4gS2V5UFxuICAgIHwgMjE5IC0+IEJyYWNrZXRMZWZ0XG4gICAgfCAyMjEgLT4gQnJhY2tldFJpZ2h0XG4gICAgfCAyMjAgLT4gQmFja3NsYXNoXG4gICAgfCAyMCAtPiBDYXBzTG9ja1xuICAgIHwgNjUgLT4gS2V5QVxuICAgIHwgODMgLT4gS2V5U1xuICAgIHwgNjggLT4gS2V5RFxuICAgIHwgNzAgLT4gS2V5RlxuICAgIHwgNzEgLT4gS2V5R1xuICAgIHwgNzIgLT4gS2V5SFxuICAgIHwgNzQgLT4gS2V5SlxuICAgIHwgNzUgLT4gS2V5S1xuICAgIHwgNzYgLT4gS2V5TFxuICAgIHwgMTg2IC0+IFNlbWljb2xvblxuICAgIHwgMjIyIC0+IFF1b3RlXG4gICAgfCAxMyAtPiBFbnRlclxuICAgIHwgOTAgLT4gS2V5WlxuICAgIHwgODggLT4gS2V5WFxuICAgIHwgNjcgLT4gS2V5Q1xuICAgIHwgODYgLT4gS2V5VlxuICAgIHwgNjYgLT4gS2V5QlxuICAgIHwgNzggLT4gS2V5TlxuICAgIHwgNzcgLT4gS2V5TVxuICAgIHwgMTg4IC0+IENvbW1hXG4gICAgfCAxOTAgLT4gUGVyaW9kXG4gICAgfCAxOTEgLT4gU2xhc2hcbiAgICB8IDMyIC0+IFNwYWNlXG4gICAgfCA5MyAtPiBDb250ZXh0TWVudVxuICAgIHwgNDUgLT4gSW5zZXJ0XG4gICAgfCAzNiAtPiBIb21lXG4gICAgfCAzMyAtPiBQYWdlVXBcbiAgICB8IDQ2IC0+IERlbGV0ZVxuICAgIHwgMzUgLT4gRW5kXG4gICAgfCAzNCAtPiBQYWdlRG93blxuICAgIHwgMzcgLT4gQXJyb3dMZWZ0XG4gICAgfCA0MCAtPiBBcnJvd0Rvd25cbiAgICB8IDM5IC0+IEFycm93UmlnaHRcbiAgICB8IDM4IC0+IEFycm93VXBcbiAgICB8IF8gLT4gVW5pZGVudGlmaWVkXG5cbiAgbGV0IG1ha2VfdW5pZGVudGlmaWVkIF8gPSBVbmlkZW50aWZpZWRcblxuICBsZXQgdHJ5X25leHQgdmFsdWUgZiA9IGZ1bmN0aW9uXG4gICAgfCBVbmlkZW50aWZpZWQgLT4gT3B0ZGVmLmNhc2UgdmFsdWUgbWFrZV91bmlkZW50aWZpZWQgZlxuICAgIHwgdiAtPiB2XG5cbiAgbGV0IHJ1bl9uZXh0IHZhbHVlIGYgPSBmdW5jdGlvblxuICAgIHwgVW5pZGVudGlmaWVkIC0+IGYgdmFsdWVcbiAgICB8IHYgLT4gdlxuXG4gIGxldCBnZXRfa2V5X2NvZGUgZXZ0ID0gZXZ0IyMua2V5Q29kZVxuXG4gIGxldCB0cnlfa2V5X2xvY2F0aW9uIGV2dCA9XG4gICAgbWF0Y2ggZXZ0IyMubG9jYXRpb24gd2l0aFxuICAgIHwgMSAtPiBydW5fbmV4dCAoZ2V0X2tleV9jb2RlIGV2dCkgdHJ5X2tleV9jb2RlX2xlZnRcbiAgICB8IDIgLT4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9yaWdodFxuICAgIHwgMyAtPiBydW5fbmV4dCAoZ2V0X2tleV9jb2RlIGV2dCkgdHJ5X2tleV9jb2RlX251bXBhZFxuICAgIHwgXyAtPiBtYWtlX3VuaWRlbnRpZmllZFxuXG4gIGxldCAoIHw+ICkgeCBmID0gZiB4XG5cbiAgbGV0IG9mX2V2ZW50IGV2dCA9XG4gICAgVW5pZGVudGlmaWVkXG4gICAgfD4gdHJ5X25leHQgZXZ0IyMuY29kZSB0cnlfY29kZVxuICAgIHw+IHRyeV9rZXlfbG9jYXRpb24gZXZ0XG4gICAgfD4gcnVuX25leHQgKGdldF9rZXlfY29kZSBldnQpIHRyeV9rZXlfY29kZV9ub3JtYWxcblxuICBsZXQgb2Zfa2V5X2NvZGUgPSB0cnlfa2V5X2NvZGVfbm9ybWFsXG5lbmRcblxubW9kdWxlIEtleWJvYXJkX2tleSA9IHN0cnVjdFxuICB0eXBlIHQgPSBVY2hhci50IG9wdGlvblxuXG4gIGxldCBjaGFyX29mX2ludCB2YWx1ZSA9XG4gICAgaWYgMCA8IHZhbHVlIHRoZW4gdHJ5IFNvbWUgKFVjaGFyLm9mX2ludCB2YWx1ZSkgd2l0aCBfIC0+IE5vbmUgZWxzZSBOb25lXG5cbiAgbGV0IGVtcHR5X3N0cmluZyBfID0gSnMuc3RyaW5nIFwiXCJcblxuICBsZXQgbm9uZSBfID0gTm9uZVxuXG4gIGxldCBvZl9ldmVudCBldnQgPVxuICAgIGxldCBrZXkgPSBPcHRkZWYuZ2V0IGV2dCMjLmtleSBlbXB0eV9zdHJpbmcgaW5cbiAgICBtYXRjaCBrZXkjIy5sZW5ndGggd2l0aFxuICAgIHwgMCAtPiBPcHRkZWYuY2FzZSBldnQjIy5jaGFyQ29kZSBub25lIGNoYXJfb2ZfaW50XG4gICAgfCAxIC0+IGNoYXJfb2ZfaW50IChpbnRfb2ZfZmxvYXQgKGtleSMjY2hhckNvZGVBdCAwKSlcbiAgICB8IF8gLT4gTm9uZVxuZW5kXG5cbigqKioqKilcblxubGV0IGVsZW1lbnQgOiAjRG9tLmVsZW1lbnQgdCAtPiBlbGVtZW50IHQgPSBKcy5VbnNhZmUuY29lcmNlXG5cbnR5cGUgdGFnZ2VkRWxlbWVudCA9XG4gIHwgQSBvZiBhbmNob3JFbGVtZW50IHRcbiAgfCBBcmVhIG9mIGFyZWFFbGVtZW50IHRcbiAgfCBBdWRpbyBvZiBhdWRpb0VsZW1lbnQgdFxuICB8IEJhc2Ugb2YgYmFzZUVsZW1lbnQgdFxuICB8IEJsb2NrcXVvdGUgb2YgcXVvdGVFbGVtZW50IHRcbiAgfCBCb2R5IG9mIGJvZHlFbGVtZW50IHRcbiAgfCBCciBvZiBickVsZW1lbnQgdFxuICB8IEJ1dHRvbiBvZiBidXR0b25FbGVtZW50IHRcbiAgfCBDYW52YXMgb2YgY2FudmFzRWxlbWVudCB0XG4gIHwgQ2FwdGlvbiBvZiB0YWJsZUNhcHRpb25FbGVtZW50IHRcbiAgfCBDb2wgb2YgdGFibGVDb2xFbGVtZW50IHRcbiAgfCBDb2xncm91cCBvZiB0YWJsZUNvbEVsZW1lbnQgdFxuICB8IERlbCBvZiBtb2RFbGVtZW50IHRcbiAgfCBEaXYgb2YgZGl2RWxlbWVudCB0XG4gIHwgRGwgb2YgZExpc3RFbGVtZW50IHRcbiAgfCBFbWJlZCBvZiBlbWJlZEVsZW1lbnQgdFxuICB8IEZpZWxkc2V0IG9mIGZpZWxkU2V0RWxlbWVudCB0XG4gIHwgRm9ybSBvZiBmb3JtRWxlbWVudCB0XG4gIHwgRnJhbWVzZXQgb2YgZnJhbWVTZXRFbGVtZW50IHRcbiAgfCBGcmFtZSBvZiBmcmFtZUVsZW1lbnQgdFxuICB8IEgxIG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBIMiBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDMgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEg0IG9mIGhlYWRpbmdFbGVtZW50IHRcbiAgfCBINSBvZiBoZWFkaW5nRWxlbWVudCB0XG4gIHwgSDYgb2YgaGVhZGluZ0VsZW1lbnQgdFxuICB8IEhlYWQgb2YgaGVhZEVsZW1lbnQgdFxuICB8IEhyIG9mIGhyRWxlbWVudCB0XG4gIHwgSHRtbCBvZiBodG1sRWxlbWVudCB0XG4gIHwgSWZyYW1lIG9mIGlGcmFtZUVsZW1lbnQgdFxuICB8IEltZyBvZiBpbWFnZUVsZW1lbnQgdFxuICB8IElucHV0IG9mIGlucHV0RWxlbWVudCB0XG4gIHwgSW5zIG9mIG1vZEVsZW1lbnQgdFxuICB8IExhYmVsIG9mIGxhYmVsRWxlbWVudCB0XG4gIHwgTGVnZW5kIG9mIGxlZ2VuZEVsZW1lbnQgdFxuICB8IExpIG9mIGxpRWxlbWVudCB0XG4gIHwgTGluayBvZiBsaW5rRWxlbWVudCB0XG4gIHwgTWFwIG9mIG1hcEVsZW1lbnQgdFxuICB8IE1ldGEgb2YgbWV0YUVsZW1lbnQgdFxuICB8IE9iamVjdCBvZiBvYmplY3RFbGVtZW50IHRcbiAgfCBPbCBvZiBvTGlzdEVsZW1lbnQgdFxuICB8IE9wdGdyb3VwIG9mIG9wdEdyb3VwRWxlbWVudCB0XG4gIHwgT3B0aW9uIG9mIG9wdGlvbkVsZW1lbnQgdFxuICB8IFAgb2YgcGFyYW1FbGVtZW50IHRcbiAgfCBQYXJhbSBvZiBwYXJhbUVsZW1lbnQgdFxuICB8IFByZSBvZiBwcmVFbGVtZW50IHRcbiAgfCBRIG9mIHF1b3RlRWxlbWVudCB0XG4gIHwgU2NyaXB0IG9mIHNjcmlwdEVsZW1lbnQgdFxuICB8IFNlbGVjdCBvZiBzZWxlY3RFbGVtZW50IHRcbiAgfCBTdHlsZSBvZiBzdHlsZUVsZW1lbnQgdFxuICB8IFRhYmxlIG9mIHRhYmxlRWxlbWVudCB0XG4gIHwgVGJvZHkgb2YgdGFibGVTZWN0aW9uRWxlbWVudCB0XG4gIHwgVGQgb2YgdGFibGVDZWxsRWxlbWVudCB0XG4gIHwgVGV4dGFyZWEgb2YgdGV4dEFyZWFFbGVtZW50IHRcbiAgfCBUZm9vdCBvZiB0YWJsZVNlY3Rpb25FbGVtZW50IHRcbiAgfCBUaCBvZiB0YWJsZUNlbGxFbGVtZW50IHRcbiAgfCBUaGVhZCBvZiB0YWJsZVNlY3Rpb25FbGVtZW50IHRcbiAgfCBUaXRsZSBvZiB0aXRsZUVsZW1lbnQgdFxuICB8IFRyIG9mIHRhYmxlUm93RWxlbWVudCB0XG4gIHwgVWwgb2YgdUxpc3RFbGVtZW50IHRcbiAgfCBWaWRlbyBvZiB2aWRlb0VsZW1lbnQgdFxuICB8IE90aGVyIG9mIGVsZW1lbnQgdFxuXG5sZXQgb3RoZXIgZSA9IE90aGVyIChlIDogI2VsZW1lbnQgdCA6PiBlbGVtZW50IHQpXG5cbmxldCB0YWdnZWQgKGUgOiAjZWxlbWVudCB0KSA9XG4gIGxldCB0YWcgPSBKcy50b19ieXRlc3RyaW5nIGUjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSBpblxuICBpZiBTdHJpbmcubGVuZ3RoIHRhZyA9IDBcbiAgdGhlbiBvdGhlciBlXG4gIGVsc2VcbiAgICBtYXRjaCBTdHJpbmcudW5zYWZlX2dldCB0YWcgMCB3aXRoXG4gICAgfCAnYScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiYVwiIC0+IEEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImFyZWFcIiAtPiBBcmVhIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJhdWRpb1wiIC0+IEF1ZGlvIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ2InIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcImJhc2VcIiAtPiBCYXNlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJibG9ja3F1b3RlXCIgLT4gQmxvY2txdW90ZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiYm9keVwiIC0+IEJvZHkgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImJyXCIgLT4gQnIgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImJ1dHRvblwiIC0+IEJ1dHRvbiAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdjJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJjYW52YXNcIiAtPiBDYW52YXMgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImNhcHRpb25cIiAtPiBDYXB0aW9uIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJjb2xcIiAtPiBDb2wgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImNvbGdyb3VwXCIgLT4gQ29sZ3JvdXAgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnZCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiZGVsXCIgLT4gRGVsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJkaXZcIiAtPiBEaXYgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImRsXCIgLT4gRGwgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnZScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiZW1iZWRcIiAtPiBFbWJlZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdmJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJmaWVsZHNldFwiIC0+IEZpZWxkc2V0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJmb3JtXCIgLT4gRm9ybSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZnJhbWVzZXRcIiAtPiBGcmFtZXNldCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiZnJhbWVcIiAtPiBGcmFtZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdoJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJoMVwiIC0+IEgxIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoMlwiIC0+IEgyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoM1wiIC0+IEgzIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoNFwiIC0+IEg0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoNVwiIC0+IEg1IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoNlwiIC0+IEg2IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJoZWFkXCIgLT4gSGVhZCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaHJcIiAtPiBIciAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwiaHRtbFwiIC0+IEh0bWwgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnaScgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwiaWZyYW1lXCIgLT4gSWZyYW1lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJpbWdcIiAtPiBJbWcgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImlucHV0XCIgLT4gSW5wdXQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImluc1wiIC0+IElucyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdsJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJsYWJlbFwiIC0+IExhYmVsIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJsZWdlbmRcIiAtPiBMZWdlbmQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImxpXCIgLT4gTGkgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcImxpbmtcIiAtPiBMaW5rIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ20nIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcIm1hcFwiIC0+IE1hcCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwibWV0YVwiIC0+IE1ldGEgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAnbycgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwib2JqZWN0XCIgLT4gT2JqZWN0IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJvbFwiIC0+IE9sIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJvcHRncm91cFwiIC0+IE9wdGdyb3VwIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJvcHRpb25cIiAtPiBPcHRpb24gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAncCcgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwicFwiIC0+IFAgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInBhcmFtXCIgLT4gUGFyYW0gKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInByZVwiIC0+IFByZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdxJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJxXCIgLT4gUSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICdzJyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJzY3JpcHRcIiAtPiBTY3JpcHQgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBcInNlbGVjdFwiIC0+IFNlbGVjdCAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IFwic3R5bGVcIiAtPiBTdHlsZSAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8ICd0JyAtPiAoXG4gICAgICAgIG1hdGNoIHRhZyB3aXRoXG4gICAgICAgIHwgXCJ0YWJsZVwiIC0+IFRhYmxlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0Ym9keVwiIC0+IFRib2R5IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0ZFwiIC0+IFRkIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0ZXh0YXJlYVwiIC0+IFRleHRhcmVhIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0Zm9vdFwiIC0+IFRmb290IChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0aFwiIC0+IFRoIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0aGVhZFwiIC0+IFRoZWFkIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0aXRsZVwiIC0+IFRpdGxlIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXCJ0clwiIC0+IFRyIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgICAgIHwgXyAtPiBvdGhlciBlKVxuICAgIHwgJ3UnIC0+IChcbiAgICAgICAgbWF0Y2ggdGFnIHdpdGhcbiAgICAgICAgfCBcInVsXCIgLT4gVWwgKEpzLlVuc2FmZS5jb2VyY2UgZSlcbiAgICAgICAgfCBfIC0+IG90aGVyIGUpXG4gICAgfCAndicgLT4gKFxuICAgICAgICBtYXRjaCB0YWcgd2l0aFxuICAgICAgICB8IFwidmlkZW9cIiAtPiBWaWRlbyAoSnMuVW5zYWZlLmNvZXJjZSBlKVxuICAgICAgICB8IF8gLT4gb3RoZXIgZSlcbiAgICB8IF8gLT4gb3RoZXIgZVxuXG5sZXQgb3B0X3RhZ2dlZCBlID0gT3B0LmNhc2UgZSAoZnVuICgpIC0+IE5vbmUpIChmdW4gZSAtPiBTb21lICh0YWdnZWQgZSkpXG5cbnR5cGUgdGFnZ2VkRXZlbnQgPVxuICB8IE1vdXNlRXZlbnQgb2YgbW91c2VFdmVudCB0XG4gIHwgS2V5Ym9hcmRFdmVudCBvZiBrZXlib2FyZEV2ZW50IHRcbiAgfCBNZXNzYWdlRXZlbnQgb2YgbWVzc2FnZUV2ZW50IHRcbiAgfCBNb3VzZXdoZWVsRXZlbnQgb2YgbW91c2V3aGVlbEV2ZW50IHRcbiAgfCBNb3VzZVNjcm9sbEV2ZW50IG9mIG1vdXNlU2Nyb2xsRXZlbnQgdFxuICB8IFBvcFN0YXRlRXZlbnQgb2YgcG9wU3RhdGVFdmVudCB0XG4gIHwgT3RoZXJFdmVudCBvZiBldmVudCB0XG5cbmxldCB0YWdnZWRFdmVudCAoZXYgOiAjZXZlbnQgSnMudCkgPVxuICBKcy5PcHQuY2FzZVxuICAgIChDb2VyY2VUby5tb3VzZUV2ZW50IGV2KVxuICAgIChmdW4gKCkgLT5cbiAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgIChDb2VyY2VUby5rZXlib2FyZEV2ZW50IGV2KVxuICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgICAgIChDb2VyY2VUby53aGVlbEV2ZW50IGV2KVxuICAgICAgICAgICAgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICBKcy5PcHQuY2FzZVxuICAgICAgICAgICAgICAgIChDb2VyY2VUby5tb3VzZVNjcm9sbEV2ZW50IGV2KVxuICAgICAgICAgICAgICAgIChmdW4gKCkgLT5cbiAgICAgICAgICAgICAgICAgIEpzLk9wdC5jYXNlXG4gICAgICAgICAgICAgICAgICAgIChDb2VyY2VUby5wb3BTdGF0ZUV2ZW50IGV2KVxuICAgICAgICAgICAgICAgICAgICAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIChDb2VyY2VUby5tZXNzYWdlRXZlbnQgZXYpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuICgpIC0+IE90aGVyRXZlbnQgKGV2IDo+IGV2ZW50IHQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biBldiAtPiBNZXNzYWdlRXZlbnQgZXYpKVxuICAgICAgICAgICAgICAgICAgICAoZnVuIGV2IC0+IFBvcFN0YXRlRXZlbnQgZXYpKVxuICAgICAgICAgICAgICAgIChmdW4gZXYgLT4gTW91c2VTY3JvbGxFdmVudCBldikpXG4gICAgICAgICAgICAoZnVuIGV2IC0+IE1vdXNld2hlZWxFdmVudCBldikpXG4gICAgICAgIChmdW4gZXYgLT4gS2V5Ym9hcmRFdmVudCBldikpXG4gICAgKGZ1biBldiAtPiBNb3VzZUV2ZW50IGV2KVxuXG5sZXQgb3B0X3RhZ2dlZEV2ZW50IGV2ID0gT3B0LmNhc2UgZXYgKGZ1biAoKSAtPiBOb25lKSAoZnVuIGV2IC0+IFNvbWUgKHRhZ2dlZEV2ZW50IGV2KSlcblxubGV0IHN0b3BQcm9wYWdhdGlvbiBldiA9XG4gIGxldCBlID0gSnMuVW5zYWZlLmNvZXJjZSBldiBpblxuICBPcHRkZWYuY2FzZVxuICAgIGUjIy5zdG9wUHJvcGFnYXRpb25cbiAgICAoZnVuICgpIC0+IGUjIy5jYW5jZWxCdWJibGUgOj0gSnMuX3RydWUpXG4gICAgKGZ1biBfIC0+IGUjI19zdG9wUHJvcGFnYXRpb24pXG5cbmxldCBfcmVxdWVzdEFuaW1hdGlvbkZyYW1lIDogKHVuaXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgLT4gdW5pdCA9XG4gIEpzLlVuc2FmZS5wdXJlX2V4cHIgKGZ1biBfIC0+XG4gICAgICBsZXQgdyA9IEpzLlVuc2FmZS5jb2VyY2Ugd2luZG93IGluXG4gICAgICBsZXQgbCA9XG4gICAgICAgIFsgdyMjLnJlcXVlc3RBbmltYXRpb25GcmFtZVxuICAgICAgICA7IHcjIy5tb3pSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgOyB3IyMud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lXG4gICAgICAgIDsgdyMjLm9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgOyB3IyMubXNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcbiAgICAgICAgXVxuICAgICAgaW5cbiAgICAgIHRyeVxuICAgICAgICBsZXQgcmVxID0gTGlzdC5maW5kIChmdW4gYyAtPiBKcy5PcHRkZWYudGVzdCBjKSBsIGluXG4gICAgICAgIGZ1biBjYWxsYmFjayAtPiBKcy5VbnNhZmUuZnVuX2NhbGwgcmVxIFt8IEpzLlVuc2FmZS5pbmplY3QgY2FsbGJhY2sgfF1cbiAgICAgIHdpdGggTm90X2ZvdW5kIC0+XG4gICAgICAgIGxldCBub3cgKCkgPSAobmV3JWpzIEpzLmRhdGVfbm93KSMjZ2V0VGltZSBpblxuICAgICAgICBsZXQgbGFzdCA9IHJlZiAobm93ICgpKSBpblxuICAgICAgICBmdW4gY2FsbGJhY2sgLT5cbiAgICAgICAgICBsZXQgdCA9IG5vdyAoKSBpblxuICAgICAgICAgIGxldCBkdCA9ICFsYXN0ICsuICgxMDAwLiAvLiA2MC4pIC0uIHQgaW5cbiAgICAgICAgICBsZXQgZHQgPSBpZiBQb2x5LihkdCA8IDAuKSB0aGVuIDAuIGVsc2UgZHQgaW5cbiAgICAgICAgICBsYXN0IDo9IHQ7XG4gICAgICAgICAgaWdub3JlICh3aW5kb3cjI3NldFRpbWVvdXQgY2FsbGJhY2sgZHQpKVxuXG4oKioqKilcblxubGV0IGhhc1B1c2hTdGF0ZSAoKSA9IEpzLk9wdGRlZi50ZXN0IChKcy5VbnNhZmUuY29lcmNlIHdpbmRvdyMjLmhpc3RvcnkpIyMucHVzaFN0YXRlXG5cbmxldCBoYXNQbGFjZWhvbGRlciAoKSA9XG4gIGxldCBpID0gY3JlYXRlSW5wdXQgZG9jdW1lbnQgaW5cbiAgSnMuT3B0ZGVmLnRlc3QgKEpzLlVuc2FmZS5jb2VyY2UgaSkjIy5wbGFjZWhvbGRlclxuXG5sZXQgaGFzUmVxdWlyZWQgKCkgPVxuICBsZXQgaSA9IGNyZWF0ZUlucHV0IGRvY3VtZW50IGluXG4gIEpzLk9wdGRlZi50ZXN0IChKcy5VbnNhZmUuY29lcmNlIGkpIyMucmVxdWlyZWRcblxubGV0IG92ZXJmbG93X2xpbWl0ID0gMjE0NzQ4M18wMDAuXG5cbigqIG1zICopXG5cbnR5cGUgdGltZW91dF9pZF9zYWZlID0gdGltZW91dF9pZCBvcHRpb24gcmVmXG5cbmxldCBzZXRUaW1lb3V0IGNhbGxiYWNrIGQgOiB0aW1lb3V0X2lkX3NhZmUgPVxuICBsZXQgaWQgPSByZWYgTm9uZSBpblxuICBsZXQgcmVjIGxvb3AgZCAoKSA9XG4gICAgbGV0IHN0ZXAsIHJlbWFpbiA9XG4gICAgICBpZiBQb2x5LihkID4gb3ZlcmZsb3dfbGltaXQpIHRoZW4gb3ZlcmZsb3dfbGltaXQsIGQgLS4gb3ZlcmZsb3dfbGltaXQgZWxzZSBkLCAwLlxuICAgIGluXG4gICAgbGV0IGNiID0gaWYgUG9seS4ocmVtYWluID0gMC4pIHRoZW4gY2FsbGJhY2sgZWxzZSBsb29wIHJlbWFpbiBpblxuICAgIGlkIDo9IFNvbWUgKHdpbmRvdyMjc2V0VGltZW91dCAoSnMud3JhcF9jYWxsYmFjayBjYikgc3RlcClcbiAgaW5cbiAgbG9vcCBkICgpO1xuICBpZFxuXG5sZXQgY2xlYXJUaW1lb3V0IChpZCA6IHRpbWVvdXRfaWRfc2FmZSkgPVxuICBtYXRjaCAhaWQgd2l0aFxuICB8IE5vbmUgLT4gKClcbiAgfCBTb21lIHggLT5cbiAgICAgIGlkIDo9IE5vbmU7XG4gICAgICB3aW5kb3cjI2NsZWFyVGltZW91dCB4XG5cbmxldCBqc19hcnJheV9vZl9jb2xsZWN0aW9uIChjIDogI2VsZW1lbnQgY29sbGVjdGlvbiBKcy50KSA6ICNlbGVtZW50IEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgID1cbiAgSnMuVW5zYWZlLihtZXRoX2NhbGwgKGpzX2V4cHIgXCJbXS5zbGljZVwiKSBcImNhbGxcIiBbfCBpbmplY3QgYyB8XSlcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTEgUGllcnJlIENoYW1iYXJ0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiBKc1xub3BlbiBEb21faHRtbFxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgZm9ybURhdGEgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYXBwZW5kIDoganNfc3RyaW5nIHQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXBwZW5kX2Jsb2IgOiBqc19zdHJpbmcgdCAtPiBGaWxlLmJsb2IgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmxldCBmb3JtRGF0YSA6IGZvcm1EYXRhIHQgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9Gb3JtRGF0YVxuXG5sZXQgZm9ybURhdGFfZm9ybSA6IChmb3JtRWxlbWVudCB0IC0+IGZvcm1EYXRhIHQpIGNvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRm9ybURhdGFcblxudHlwZSBmb3JtX2VsdCA9XG4gIFsgYFN0cmluZyBvZiBqc19zdHJpbmcgdFxuICB8IGBGaWxlIG9mIEZpbGUuZmlsZSB0XG4gIF1cblxudHlwZSBmb3JtX2NvbnRlbnRzID1cbiAgWyBgRmllbGRzIG9mIChzdHJpbmcgKiBmb3JtX2VsdCkgbGlzdCByZWZcbiAgfCBgRm9ybURhdGEgb2YgZm9ybURhdGEgdFxuICBdXG5cbmxldCByZWMgZmlsdGVyX21hcCBmID0gZnVuY3Rpb25cbiAgfCBbXSAtPiBbXVxuICB8IHYgOjogcSAtPiAoXG4gICAgICBtYXRjaCBmIHYgd2l0aFxuICAgICAgfCBOb25lIC0+IGZpbHRlcl9tYXAgZiBxXG4gICAgICB8IFNvbWUgdicgLT4gdicgOjogZmlsdGVyX21hcCBmIHEpXG5cbmNsYXNzIHR5cGUgc3VibWl0dGFibGVFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRpc2FibGVkIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBuYW1lIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxubGV0IGhhdmVfY29udGVudCAoZWx0IDogc3VibWl0dGFibGVFbGVtZW50IHQpID1cbiAgZWx0IyMubmFtZSMjLmxlbmd0aCA+IDAgJiYgbm90IChKcy50b19ib29sIGVsdCMjLmRpc2FibGVkKVxuXG5sZXQgZ2V0X3RleHRhcmVhX3ZhbCAoZWx0IDogdGV4dEFyZWFFbGVtZW50IHQpID1cbiAgaWYgaGF2ZV9jb250ZW50IChlbHQgOj4gc3VibWl0dGFibGVFbGVtZW50IHQpXG4gIHRoZW5cbiAgICBsZXQgbmFtZSA9IHRvX3N0cmluZyBlbHQjIy5uYW1lIGluXG4gICAgWyBuYW1lLCBgU3RyaW5nIGVsdCMjLnZhbHVlIF1cbiAgZWxzZSBbXVxuXG5sZXQgZ2V0X3NlbGVjdF92YWwgKGVsdCA6IHNlbGVjdEVsZW1lbnQgdCkgPVxuICBpZiBoYXZlX2NvbnRlbnQgKGVsdCA6PiBzdWJtaXR0YWJsZUVsZW1lbnQgdClcbiAgdGhlblxuICAgIGxldCBuYW1lID0gdG9fc3RyaW5nIGVsdCMjLm5hbWUgaW5cbiAgICBpZiB0b19ib29sIGVsdCMjLm11bHRpcGxlXG4gICAgdGhlblxuICAgICAgbGV0IG9wdGlvbnMgPVxuICAgICAgICBBcnJheS5pbml0IGVsdCMjLm9wdGlvbnMjIy5sZW5ndGggKGZ1biBpIC0+IE9wdC50b19vcHRpb24gKGVsdCMjLm9wdGlvbnMjI2l0ZW0gaSkpXG4gICAgICBpblxuICAgICAgZmlsdGVyX21hcFxuICAgICAgICAoZnVuY3Rpb25cbiAgICAgICAgICB8IE5vbmUgLT4gTm9uZVxuICAgICAgICAgIHwgU29tZSBlIC0+XG4gICAgICAgICAgICAgIGlmIEpzLnRvX2Jvb2wgZSMjLnNlbGVjdGVkIHRoZW4gU29tZSAobmFtZSwgYFN0cmluZyBlIyMudmFsdWUpIGVsc2UgTm9uZSlcbiAgICAgICAgKEFycmF5LnRvX2xpc3Qgb3B0aW9ucylcbiAgICBlbHNlIFsgbmFtZSwgYFN0cmluZyBlbHQjIy52YWx1ZSBdXG4gIGVsc2UgW11cblxuY2xhc3MgdHlwZSBmaWxlX2lucHV0ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBpbnB1dEVsZW1lbnRcblxuICAgIG1ldGhvZCBmaWxlcyA6IEZpbGUuZmlsZUxpc3QgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG11bHRpcGxlIDogYm9vbCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGdldF9pbnB1dF92YWwgPyhnZXQgPSBmYWxzZSkgKGVsdCA6IGlucHV0RWxlbWVudCB0KSA9XG4gIGlmIGhhdmVfY29udGVudCAoZWx0IDo+IHN1Ym1pdHRhYmxlRWxlbWVudCB0KVxuICB0aGVuXG4gICAgbGV0IG5hbWUgPSB0b19zdHJpbmcgZWx0IyMubmFtZSBpblxuICAgIGxldCB2YWx1ZSA9IGVsdCMjLnZhbHVlIGluXG4gICAgbWF0Y2ggdG9fYnl0ZXN0cmluZyBlbHQjIy5fdHlwZSMjdG9Mb3dlckNhc2Ugd2l0aFxuICAgIHwgXCJjaGVja2JveFwiIHwgXCJyYWRpb1wiIC0+XG4gICAgICAgIGlmIHRvX2Jvb2wgZWx0IyMuY2hlY2tlZCB0aGVuIFsgbmFtZSwgYFN0cmluZyB2YWx1ZSBdIGVsc2UgW11cbiAgICB8IFwic3VibWl0XCIgfCBcInJlc2V0XCIgLT4gW11cbiAgICB8IFwidGV4dFwiIHwgXCJwYXNzd29yZFwiIC0+IFsgbmFtZSwgYFN0cmluZyB2YWx1ZSBdXG4gICAgfCBcImZpbGVcIiAtPiAoXG4gICAgICAgIGlmIGdldFxuICAgICAgICB0aGVuIFsgbmFtZSwgYFN0cmluZyB2YWx1ZSBdXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBsZXQgZWx0IDogZmlsZV9pbnB1dCB0ID0gVW5zYWZlLmNvZXJjZSBlbHQgaW5cbiAgICAgICAgICBtYXRjaCBPcHRkZWYudG9fb3B0aW9uIGVsdCMjLmZpbGVzIHdpdGhcbiAgICAgICAgICB8IE5vbmUgLT4gW11cbiAgICAgICAgICB8IFNvbWUgbGlzdCAtPiAoXG4gICAgICAgICAgICAgIGlmIGxpc3QjIy5sZW5ndGggPSAwXG4gICAgICAgICAgICAgIHRoZW4gWyBuYW1lLCBgU3RyaW5nIChKcy5zdHJpbmcgXCJcIikgXVxuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgbWF0Y2ggT3B0ZGVmLnRvX29wdGlvbiBlbHQjIy5tdWx0aXBsZSB3aXRoXG4gICAgICAgICAgICAgICAgfCBOb25lIHwgU29tZSBmYWxzZSAtPiAoXG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIE9wdC50b19vcHRpb24gKGxpc3QjI2l0ZW0gMCkgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gW11cbiAgICAgICAgICAgICAgICAgICAgfCBTb21lIGZpbGUgLT4gWyBuYW1lLCBgRmlsZSBmaWxlIF0pXG4gICAgICAgICAgICAgICAgfCBTb21lIHRydWUgLT5cbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyX21hcFxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gZiAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggT3B0LnRvX29wdGlvbiBmIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBOb25lXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFNvbWUgZmlsZSAtPiBTb21lIChuYW1lLCBgRmlsZSBmaWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkudG9fbGlzdCAoQXJyYXkuaW5pdCBsaXN0IyMubGVuZ3RoIChmdW4gaSAtPiBsaXN0IyNpdGVtIGkpKSkpKVxuICAgIHwgXyAtPiBbIG5hbWUsIGBTdHJpbmcgdmFsdWUgXVxuICBlbHNlIFtdXG5cbmxldCBnZXRfZm9ybV9lbGVtZW50cyAoZm9ybSA6IGZvcm1FbGVtZW50IHQpID1cbiAgbGV0IHJlYyBsb29wIGFjYyBpID1cbiAgICBpZiBpIDwgMFxuICAgIHRoZW4gYWNjXG4gICAgZWxzZVxuICAgICAgbWF0Y2ggT3B0LnRvX29wdGlvbiAoZm9ybSMjLmVsZW1lbnRzIyNpdGVtIGkpIHdpdGhcbiAgICAgIHwgTm9uZSAtPiBsb29wIGFjYyAoaSAtIGkpXG4gICAgICB8IFNvbWUgeCAtPiBsb29wICh4IDo6IGFjYykgKGkgLSAxKVxuICBpblxuICBsb29wIFtdIChmb3JtIyMuZWxlbWVudHMjIy5sZW5ndGggLSAxKVxuXG5sZXQgZ2V0X2VsZW1lbnRfY29udGVudCA/Z2V0IHYgPVxuICBtYXRjaCB0YWdnZWQgdiB3aXRoXG4gIHwgU2VsZWN0IHYgLT4gZ2V0X3NlbGVjdF92YWwgdlxuICB8IElucHV0IHYgLT4gZ2V0X2lucHV0X3ZhbCA/Z2V0IHZcbiAgfCBUZXh0YXJlYSB2IC0+IGdldF90ZXh0YXJlYV92YWwgdlxuICB8IF8gLT4gW11cblxubGV0IGZvcm1fZWxlbWVudHMgP2dldCAoZm9ybSA6IGZvcm1FbGVtZW50IHQpID1cbiAgTGlzdC5mbGF0dGVuIChMaXN0Lm1hcCAoZnVuIHYgLT4gZ2V0X2VsZW1lbnRfY29udGVudCA/Z2V0IHYpIChnZXRfZm9ybV9lbGVtZW50cyBmb3JtKSlcblxubGV0IGFwcGVuZCAoZm9ybV9jb250ZW50cyA6IGZvcm1fY29udGVudHMpIChmb3JtX2VsdCA6IHN0cmluZyAqIGZvcm1fZWx0KSA9XG4gIG1hdGNoIGZvcm1fY29udGVudHMgd2l0aFxuICB8IGBGaWVsZHMgbGlzdCAtPiBsaXN0IDo9IGZvcm1fZWx0IDo6ICFsaXN0XG4gIHwgYEZvcm1EYXRhIGYgLT4gKFxuICAgICAgbWF0Y2ggZm9ybV9lbHQgd2l0aFxuICAgICAgfCBuYW1lLCBgU3RyaW5nIHMgLT4gZiMjYXBwZW5kIChzdHJpbmcgbmFtZSkgc1xuICAgICAgfCBuYW1lLCBgRmlsZSBmaWxlIC0+IGYjI2FwcGVuZF9ibG9iIChzdHJpbmcgbmFtZSkgKGZpbGUgOj4gRmlsZS5ibG9iIHQpKVxuXG5sZXQgZW1wdHlfZm9ybV9jb250ZW50cyAoKSA9XG4gIG1hdGNoIE9wdGRlZi50b19vcHRpb24gKEpzLmRlZiBmb3JtRGF0YSkgd2l0aFxuICB8IE5vbmUgLT4gYEZpZWxkcyAocmVmIFtdKVxuICB8IFNvbWUgY29uc3RyIC0+IGBGb3JtRGF0YSAobmV3JWpzIGNvbnN0cilcblxubGV0IHBvc3RfZm9ybV9jb250ZW50cyBmb3JtID1cbiAgbGV0IGNvbnRlbnRzID0gZW1wdHlfZm9ybV9jb250ZW50cyAoKSBpblxuICBMaXN0Lml0ZXIgKGFwcGVuZCBjb250ZW50cykgKGZvcm1fZWxlbWVudHMgZm9ybSk7XG4gIGNvbnRlbnRzXG5cbmxldCBnZXRfZm9ybV9jb250ZW50cyBmb3JtID1cbiAgTGlzdC5tYXBcbiAgICAoZnVuY3Rpb25cbiAgICAgIHwgbmFtZSwgYFN0cmluZyBzIC0+IG5hbWUsIHRvX3N0cmluZyBzXG4gICAgICB8IF8gLT4gYXNzZXJ0IGZhbHNlKVxuICAgIChmb3JtX2VsZW1lbnRzIH5nZXQ6dHJ1ZSBmb3JtKVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBKw6lyw7RtZSBWb3VpbGxvblxuICogTGFib3JhdG9pcmUgUFBTIC0gQ05SUyBVbml2ZXJzaXTDqSBQYXJpcyBEaWRlcm90XG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4gSnNcbm9wZW4hIEltcG9ydFxuXG50eXBlIHJlYWR5U3RhdGUgPVxuICB8IFVOU0VOVFxuICB8IE9QRU5FRFxuICB8IEhFQURFUlNfUkVDRUlWRURcbiAgfCBMT0FESU5HXG4gIHwgRE9ORVxuXG50eXBlIF8gcmVzcG9uc2UgPVxuICB8IEFycmF5QnVmZmVyIDogVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXIgdCBPcHQudCByZXNwb25zZVxuICB8IEJsb2IgOiAjRmlsZS5ibG9iIHQgT3B0LnQgcmVzcG9uc2VcbiAgfCBEb2N1bWVudCA6IERvbS5lbGVtZW50IERvbS5kb2N1bWVudCB0IE9wdC50IHJlc3BvbnNlXG4gIHwgSlNPTiA6ICdhIE9wdC50IHJlc3BvbnNlXG4gIHwgVGV4dCA6IGpzX3N0cmluZyB0IHJlc3BvbnNlXG4gIHwgRGVmYXVsdCA6IHN0cmluZyByZXNwb25zZVxuXG5jbGFzcyB0eXBlIHhtbEh0dHBSZXF1ZXN0ID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2Qgb25yZWFkeXN0YXRlY2hhbmdlIDogKHVuaXQgLT4gdW5pdCkgSnMuY2FsbGJhY2sgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX29wZW4gOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgX29wZW5fZnVsbCA6XG4gICAgICAgICBqc19zdHJpbmcgdFxuICAgICAgLT4ganNfc3RyaW5nIHRcbiAgICAgIC0+IGJvb2wgdFxuICAgICAgLT4ganNfc3RyaW5nIHQgb3B0XG4gICAgICAtPiBqc19zdHJpbmcgdCBvcHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFJlcXVlc3RIZWFkZXIgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBvdmVycmlkZU1pbWVUeXBlIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VuZCA6IGpzX3N0cmluZyB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2Jsb2IgOiAjRmlsZS5ibG9iIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9kb2N1bWVudCA6IERvbS5lbGVtZW50IERvbS5kb2N1bWVudCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNlbmRfZm9ybURhdGEgOiBGb3JtLmZvcm1EYXRhIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYWJvcnQgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGF0dXMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN0YXR1c1RleHQgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0UmVzcG9uc2VIZWFkZXIgOiBqc19zdHJpbmcgdCAtPiBqc19zdHJpbmcgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEFsbFJlc3BvbnNlSGVhZGVycyA6IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCByZXNwb25zZSA6IEZpbGUuZmlsZV9hbnkgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlc3BvbnNlVGV4dCA6IGpzX3N0cmluZyB0IG9wdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVzcG9uc2VYTUwgOiBEb20uZWxlbWVudCBEb20uZG9jdW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlc3BvbnNlVHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB3aXRoQ3JlZGVudGlhbHMgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcblxuICAgIGluaGVyaXQgRmlsZS5wcm9ncmVzc0V2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2Qgb250aW1lb3V0IDpcbiAgICAgICgnc2VsZiB0LCAnc2VsZiBGaWxlLnByb2dyZXNzRXZlbnQgdCkgRG9tLmV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgdXBsb2FkIDogeG1sSHR0cFJlcXVlc3RVcGxvYWQgdCBvcHRkZWYgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuYW5kIHhtbEh0dHBSZXF1ZXN0VXBsb2FkID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBpbmhlcml0IEZpbGUucHJvZ3Jlc3NFdmVudFRhcmdldFxuICBlbmRcblxubW9kdWxlIEV2ZW50ID0gc3RydWN0XG4gIHR5cGUgdHlwID0geG1sSHR0cFJlcXVlc3QgRmlsZS5wcm9ncmVzc0V2ZW50IHQgRG9tLkV2ZW50LnR5cFxuXG4gIGxldCByZWFkeXN0YXRlY2hhbmdlID0gRG9tLkV2ZW50Lm1ha2UgXCJyZWFkeXN0YXRlY2hhbmdlXCJcblxuICBsZXQgbG9hZHN0YXJ0ID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2Fkc3RhcnRcIlxuXG4gIGxldCBwcm9ncmVzcyA9IERvbS5FdmVudC5tYWtlIFwicHJvZ3Jlc3NcIlxuXG4gIGxldCBhYm9ydCA9IERvbS5FdmVudC5tYWtlIFwiYWJvcnRcIlxuXG4gIGxldCBlcnJvciA9IERvbS5FdmVudC5tYWtlIFwiZXJyb3JcIlxuXG4gIGxldCBsb2FkID0gRG9tLkV2ZW50Lm1ha2UgXCJsb2FkXCJcblxuICBsZXQgdGltZW91dCA9IERvbS5FdmVudC5tYWtlIFwidGltZW91dFwiXG5cbiAgbGV0IGxvYWRlbmQgPSBEb20uRXZlbnQubWFrZSBcImxvYWRlbmRcIlxuZW5kXG5cbmV4dGVybmFsIGNyZWF0ZSA6IHVuaXQgLT4geG1sSHR0cFJlcXVlc3QgSnMudCA9IFwiY2FtbF94bWxodHRwcmVxdWVzdF9jcmVhdGVcIlxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNSBPQ2FtbFBybzogR3LDqWdvaXJlIEhlbnJ5LCDDh2HEn2RhxZ8gQm96bWFuLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuIERvbV9odG1sXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBbJ2EsICdiXSB3b3JrZXIgPVxuICBvYmplY3QgKCdzZWxmKVxuICAgIGluaGVyaXQgZXZlbnRUYXJnZXRcblxuICAgIG1ldGhvZCBvbmVycm9yIDogKCdzZWxmIHQsIGVycm9yRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1lc3NhZ2UgOiAoJ3NlbGYgdCwgJ2IgbWVzc2FnZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgcG9zdE1lc3NhZ2UgOiAnYSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXJtaW5hdGUgOiB1bml0IG1ldGhcbiAgZW5kXG5cbmFuZCBlcnJvckV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBldmVudFxuXG4gICAgbWV0aG9kIG1lc3NhZ2UgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZmlsZW5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbGluZW5vIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb2xubyA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZXJyb3IgOiBVbnNhZmUuYW55IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmFuZCBbJ2FdIG1lc3NhZ2VFdmVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZXZlbnRcblxuICAgIG1ldGhvZCBkYXRhIDogJ2EgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHdvcmtlciA9IFVuc2FmZS5nbG9iYWwjIy5fV29ya2VyXG5cbmxldCBjcmVhdGUgc2NyaXB0ID0gbmV3JWpzIHdvcmtlciAoc3RyaW5nIHNjcmlwdClcblxubGV0IGltcG9ydF9zY3JpcHRzIHNjcmlwdHMgOiB1bml0ID1cbiAgaWYgVW5zYWZlLmdsb2JhbCMjLmltcG9ydFNjcmlwdHMgPT0gdW5kZWZpbmVkXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXb3JrZXIuaW1wb3J0X3NjcmlwdHMgaXMgdW5kZWZpbmVkXCI7XG4gIFVuc2FmZS5mdW5fY2FsbFxuICAgIFVuc2FmZS5nbG9iYWwjIy5pbXBvcnRTY3JpcHRzXG4gICAgKEFycmF5Lm1hcCAoZnVuIHMgLT4gVW5zYWZlLmluamVjdCAoc3RyaW5nIHMpKSAoQXJyYXkub2ZfbGlzdCBzY3JpcHRzKSlcblxubGV0IHNldF9vbm1lc3NhZ2UgaGFuZGxlciA9XG4gIGlmIFVuc2FmZS5nbG9iYWwjIy5vbm1lc3NhZ2UgPT0gdW5kZWZpbmVkXG4gIHRoZW4gaW52YWxpZF9hcmcgXCJXb3JrZXIub25tZXNzYWdlIGlzIHVuZGVmaW5lZFwiO1xuICBsZXQganNfaGFuZGxlciAoZXYgOiAnYSBtZXNzYWdlRXZlbnQgSnMudCkgPSBoYW5kbGVyIGV2IyMuZGF0YSBpblxuICBVbnNhZmUuZ2xvYmFsIyMub25tZXNzYWdlIDo9IHdyYXBfY2FsbGJhY2sganNfaGFuZGxlclxuXG5sZXQgcG9zdF9tZXNzYWdlIG1zZyA9XG4gIGlmIFVuc2FmZS5nbG9iYWwjIy5wb3N0TWVzc2FnZSA9PSB1bmRlZmluZWRcbiAgdGhlbiBpbnZhbGlkX2FyZyBcIldvcmtlci5vbm1lc3NhZ2UgaXMgdW5kZWZpbmVkXCI7XG4gIFVuc2FmZS5nbG9iYWwjI3Bvc3RNZXNzYWdlIG1zZ1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMiBKYWNxdWVzLVBhc2NhbCBEZXBsYWl4XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiEgSW1wb3J0XG5cbnR5cGUgcmVhZHlTdGF0ZSA9XG4gIHwgQ09OTkVDVElOR1xuICB8IE9QRU5cbiAgfCBDTE9TSU5HXG4gIHwgQ0xPU0VEXG5cbmNsYXNzIHR5cGUgWydhXSBjbG9zZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIERvbS5ldmVudFxuXG4gICAgbWV0aG9kIGNvZGUgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJlYXNvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3YXNDbGVhbiA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIFsnYV0gbWVzc2FnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIERvbS5ldmVudFxuXG4gICAgbWV0aG9kIGRhdGEgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZGF0YV9idWZmZXIgOiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkYXRhX2Jsb2IgOiBGaWxlLmJsb2IgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHdlYlNvY2tldCA9XG4gIG9iamVjdCAoJ3NlbGYpXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIHVybCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZWFkeVN0YXRlIDogcmVhZHlTdGF0ZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYnVmZmVyZWRBbW91bnQgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9ub3BlbiA6XG4gICAgICAoJ3NlbGYgSnMudCwgJ3NlbGYgRG9tLmV2ZW50IEpzLnQpIERvbS5ldmVudF9saXN0ZW5lciBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9uY2xvc2UgOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIGNsb3NlRXZlbnQgSnMudCkgRG9tLmV2ZW50X2xpc3RlbmVyIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6XG4gICAgICAoJ3NlbGYgSnMudCwgJ3NlbGYgRG9tLmV2ZW50IEpzLnQpIERvbS5ldmVudF9saXN0ZW5lciBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGV4dGVuc2lvbnMgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJvdG9jb2wgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2xvc2UgOiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBjbG9zZV93aXRoQ29kZSA6IGludCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBjbG9zZV93aXRoQ29kZUFuZFJlYXNvbiA6IGludCAtPiBKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBvbm1lc3NhZ2UgOlxuICAgICAgKCdzZWxmIEpzLnQsICdzZWxmIG1lc3NhZ2VFdmVudCBKcy50KSBEb20uZXZlbnRfbGlzdGVuZXIgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBiaW5hcnlUeXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgbWV0aG9kIHNlbmQgOiBKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBzZW5kX2J1ZmZlciA6IFR5cGVkX2FycmF5LmFycmF5QnVmZmVyIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgc2VuZF9ibG9iIDogRmlsZS5ibG9iIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgd2ViU29ja2V0ID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9XZWJTb2NrZXRcblxubGV0IHdlYlNvY2tldF93aXRoUHJvdG9jb2wgPSB3ZWJTb2NrZXRcblxubGV0IHdlYlNvY2tldF93aXRoUHJvdG9jb2xzID0gd2ViU29ja2V0XG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCB3ZWJTb2NrZXRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuKCoqIDUuMSBUeXBlcyAqKVxuXG50eXBlIHNpemVpID0gaW50XG5cbnR5cGUgc2l6ZWlwdHIgPSBpbnRcblxudHlwZSBpbnRwdHIgPSBpbnRcblxudHlwZSB1aW50ID0gaW50XG5cbnR5cGUgY2xhbXBmID0gZmxvYXRcblxudHlwZSB2b2lkXG5cbnR5cGUgY2xlYXJCdWZmZXJNYXNrID0gaW50XG5cbnR5cGUgYmVnaW5Nb2RlXG5cbnR5cGUgYmxlbmRpbmdGYWN0b3JcblxudHlwZSBibGVuZE1vZGVcblxudHlwZSBidWZmZXJUYXJnZXRcblxudHlwZSBidWZmZXJVc2FnZVxuXG50eXBlIGN1bGxGYWNlTW9kZVxuXG50eXBlIGRlcHRoRnVuY3Rpb25cblxudHlwZSBlbmFibGVDYXBcblxudHlwZSBlcnJvckNvZGVcblxudHlwZSBmcm9udEZhY2VEaXJcblxudHlwZSBoaW50VGFyZ2V0XG5cbnR5cGUgaGludE1vZGVcblxudHlwZSB0ZXh0dXJlVW5pdCA9IGludFxuXG50eXBlICdhIHBpeGVsU3RvcmVQYXJhbVxuXG50eXBlIHN0ZW5jaWxPcFxuXG50eXBlIGZiVGFyZ2V0XG5cbnR5cGUgYXR0YWNobWVudFBvaW50XG5cbnR5cGUgcmJUYXJnZXRcblxudHlwZSB0ZXhUYXJnZXRcblxudHlwZSAnYSBwYXJhbWV0ZXJcblxudHlwZSAnYSBidWZmZXJQYXJhbWV0ZXJcblxudHlwZSAnYSB2ZXJ0ZXhBdHRyaWJQYXJhbVxuXG50eXBlIHZlcnRleEF0dHJpYlBvaW50ZXJQYXJhbVxuXG50eXBlICdhIGF0dGFjaFBhcmFtXG5cbnR5cGUgZnJhbWVidWZmZXJTdGF0dXNcblxudHlwZSAnYSByZW5kZXJidWZmZXJQYXJhbVxuXG50eXBlIGZvcm1hdFxuXG50eXBlIHBpeGVsRm9ybWF0XG5cbnR5cGUgcGl4ZWxUeXBlXG5cbnR5cGUgJ2EgdGV4UGFyYW1cblxudHlwZSBkYXRhVHlwZVxuXG50eXBlIHNoYWRlclR5cGVcblxudHlwZSAnYSBwcm9ncmFtUGFyYW1cblxudHlwZSAnYSBzaGFkZXJQYXJhbVxuXG50eXBlIHRleHR1cmVGaWx0ZXJcblxudHlwZSB3cmFwTW9kZVxuXG50eXBlIHRleEZpbHRlclxuXG50eXBlIHVuaWZvcm1UeXBlXG5cbnR5cGUgY29sb3JzcGFjZUNvbnZlcnNpb25cblxudHlwZSBzaGFkZXJQcmVjaXNpb25UeXBlXG5cbnR5cGUgb2JqZWN0VHlwZVxuXG4oKiogNS4yIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMgKilcbmNsYXNzIHR5cGUgY29udGV4dEF0dHJpYnV0ZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWxwaGEgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIGRlcHRoIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBzdGVuY2lsIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBhbnRpYWxpYXMgOiBib29sIHQgcHJvcFxuXG4gICAgbWV0aG9kIHByZW11bHRpcGxpZWRBbHBoYSA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2QgcHJlc2VydmVEcmF3aW5nQnVmZmVyIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBwcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZvcm1hbmNlIDogYm9vbCB0IHByb3BcblxuICAgIG1ldGhvZCBmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IDogYm9vbCB0IHByb3BcbiAgZW5kXG5cbmxldCBkZWZhdWx0Q29udGV4dEF0dHJpYnV0ZXMgPVxuICBKcy5VbnNhZmUuKFxuICAgIG9ialxuICAgICAgW3wgXCJhbHBoYVwiLCBpbmplY3QgX3RydWVcbiAgICAgICA7IFwiZGVwdGhcIiwgaW5qZWN0IF90cnVlXG4gICAgICAgOyBcInN0ZW5jaWxcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJhbnRpYWxpYXNcIiwgaW5qZWN0IF90cnVlXG4gICAgICAgOyBcInByZW11bHRpcGxpZWRBbHBoYVwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICAgOyBcInByZXNlcnZlRHJhd2luZ0J1ZmZlclwiLCBpbmplY3QgX2ZhbHNlXG4gICAgICAgOyBcInByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2VcIiwgaW5qZWN0IF9mYWxzZVxuICAgICAgIDsgXCJmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0XCIsIGluamVjdCBfZmFsc2VcbiAgICAgIHxdKVxuXG50eXBlIGJ1ZmZlclxuXG50eXBlIGZyYW1lYnVmZmVyXG5cbnR5cGUgcHJvZ3JhbVxuXG50eXBlIHJlbmRlcmJ1ZmZlclxuXG50eXBlIHNoYWRlclxuXG50eXBlIHRleHR1cmVcblxudHlwZSAnYSB1bmlmb3JtTG9jYXRpb25cblxuY2xhc3MgdHlwZSBhY3RpdmVJbmZvID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHNpemUgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF90eXBlIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG5hbWUgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHNoYWRlclByZWNpc2lvbkZvcm1hdCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByYW5nZU1pbiA6IGludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmFuZ2VNYXggOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZWNpc2lvbiA6IGludCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJlbmRlcmluZ0NvbnRleHQgPVxuICBvYmplY3RcblxuICAgICgqKiA1LjEzLjEgQXR0cmlidXRlcyAqKVxuXG4gICAgbWV0aG9kIGNhbnZhcyA6IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHJhd2luZ0J1ZmZlcldpZHRoIDogc2l6ZWkgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGRyYXdpbmdCdWZmZXJIZWlnaHQgOiBzaXplaSByZWFkb25seV9wcm9wXG5cbiAgICAoKiogNS4xMy4yIEdldHRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnRleHQgKilcblxuICAgIG1ldGhvZCBnZXRDb250ZXh0QXR0cmlidXRlcyA6IGNvbnRleHRBdHRyaWJ1dGVzIHQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMyBTZXR0aW5nIGFuZCBnZXR0aW5nIHN0YXRlICopXG5cbiAgICBtZXRob2QgYWN0aXZlVGV4dHVyZSA6IHRleHR1cmVVbml0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kQ29sb3IgOiBjbGFtcGYgLT4gY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmxlbmRFcXVhdGlvbiA6IGJsZW5kTW9kZSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUgOiBibGVuZE1vZGUgLT4gYmxlbmRNb2RlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kRnVuYyA6IGJsZW5kaW5nRmFjdG9yIC0+IGJsZW5kaW5nRmFjdG9yIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJsZW5kRnVuY1NlcGFyYXRlIDpcbiAgICAgIGJsZW5kaW5nRmFjdG9yIC0+IGJsZW5kaW5nRmFjdG9yIC0+IGJsZW5kaW5nRmFjdG9yIC0+IGJsZW5kaW5nRmFjdG9yIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNsZWFyQ29sb3IgOiBjbGFtcGYgLT4gY2xhbXBmIC0+IGNsYW1wZiAtPiBjbGFtcGYgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2xlYXJEZXB0aCA6IGNsYW1wZiAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjbGVhclN0ZW5jaWwgOiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29sb3JNYXNrIDogYm9vbCB0IC0+IGJvb2wgdCAtPiBib29sIHQgLT4gYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGN1bGxGYWNlIDogY3VsbEZhY2VNb2RlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlcHRoRnVuYyA6IGRlcHRoRnVuY3Rpb24gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVwdGhNYXNrIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlcHRoUmFuZ2UgOiBjbGFtcGYgLT4gY2xhbXBmIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRpc2FibGUgOiBlbmFibGVDYXAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZW5hYmxlIDogZW5hYmxlQ2FwIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGZyb250RmFjZSA6IGZyb250RmFjZURpciAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQYXJhbWV0ZXIgOiAnYS4gJ2EgcGFyYW1ldGVyIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRFcnJvciA6IGVycm9yQ29kZSBtZXRoXG5cbiAgICBtZXRob2QgaGludCA6IGhpbnRUYXJnZXQgLT4gaGludE1vZGUgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaXNFbmFibGVkIDogZW5hYmxlQ2FwIC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgbGluZVdpZHRoIDogZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgcGl4ZWxTdG9yZWkgOiAnYS4gJ2EgcGl4ZWxTdG9yZVBhcmFtIC0+ICdhIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBvbHlnb25PZmZzZXQgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzYW1wbGVDb3ZlcmFnZSA6IGNsYW1wZiAtPiBib29sIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbEZ1bmMgOiBkZXB0aEZ1bmN0aW9uIC0+IGludCAtPiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxGdW5jU2VwYXJhdGUgOiBjdWxsRmFjZU1vZGUgLT4gZGVwdGhGdW5jdGlvbiAtPiBpbnQgLT4gdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzdGVuY2lsTWFzayA6IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc3RlbmNpbE1hc2tTZXBhcmF0ZSA6IGN1bGxGYWNlTW9kZSAtPiB1aW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxPcCA6IHN0ZW5jaWxPcCAtPiBzdGVuY2lsT3AgLT4gc3RlbmNpbE9wIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHN0ZW5jaWxPcFNlcGFyYXRlIDpcbiAgICAgIGN1bGxGYWNlTW9kZSAtPiBzdGVuY2lsT3AgLT4gc3RlbmNpbE9wIC0+IHN0ZW5jaWxPcCAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjQgVmlld2luZyBhbmQgY2xpcHBpbmcgKilcblxuICAgIG1ldGhvZCBzY2lzc29yIDogaW50IC0+IGludCAtPiBzaXplaSAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2aWV3cG9ydCA6IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy41IEJ1ZmZlciBvYmplY3RzICopXG5cbiAgICBtZXRob2QgYmluZEJ1ZmZlciA6IGJ1ZmZlclRhcmdldCAtPiBidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kQnVmZmVyXyA6IGJ1ZmZlclRhcmdldCAtPiBidWZmZXIgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYnVmZmVyRGF0YV9jcmVhdGUgOiBidWZmZXJUYXJnZXQgLT4gc2l6ZWlwdHIgLT4gYnVmZmVyVXNhZ2UgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYnVmZmVyRGF0YSA6XG4gICAgICBidWZmZXJUYXJnZXQgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0IC0+IGJ1ZmZlclVzYWdlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlckRhdGFfcmF3IDpcbiAgICAgIGJ1ZmZlclRhcmdldCAtPiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciB0IC0+IGJ1ZmZlclVzYWdlIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJ1ZmZlclN1YkRhdGEgOlxuICAgICAgYnVmZmVyVGFyZ2V0IC0+IGludHB0ciAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYnVmZmVyU3ViRGF0YV9yYXcgOlxuICAgICAgYnVmZmVyVGFyZ2V0IC0+IGludHB0ciAtPiBUeXBlZF9hcnJheS5hcnJheUJ1ZmZlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZUJ1ZmZlciA6IGJ1ZmZlciB0IG1ldGhcblxuICAgIG1ldGhvZCBkZWxldGVCdWZmZXIgOiBidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRCdWZmZXJQYXJhbWV0ZXIgOiAnYS4gYnVmZmVyVGFyZ2V0IC0+ICdhIGJ1ZmZlclBhcmFtZXRlciAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgaXNCdWZmZXIgOiBidWZmZXIgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgKCoqIDUuMTMuNiBGcmFtZWJ1ZmZlciBvYmplY3RzICopXG5cbiAgICBtZXRob2QgYmluZEZyYW1lYnVmZmVyIDogZmJUYXJnZXQgLT4gZnJhbWVidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kRnJhbWVidWZmZXJfIDogZmJUYXJnZXQgLT4gZnJhbWVidWZmZXIgdCBvcHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyA6IGZiVGFyZ2V0IC0+IGZyYW1lYnVmZmVyU3RhdHVzIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVGcmFtZWJ1ZmZlciA6IGZyYW1lYnVmZmVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZUZyYW1lYnVmZmVyIDogZnJhbWVidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciA6XG4gICAgICBmYlRhcmdldCAtPiBhdHRhY2htZW50UG9pbnQgLT4gcmJUYXJnZXQgLT4gcmVuZGVyYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZnJhbWVidWZmZXJUZXh0dXJlMkQgOlxuICAgICAgZmJUYXJnZXQgLT4gYXR0YWNobWVudFBvaW50IC0+IHRleFRhcmdldCAtPiB0ZXh0dXJlIHQgLT4gaW50IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlciA6XG4gICAgICAnYS4gZmJUYXJnZXQgLT4gYXR0YWNobWVudFBvaW50IC0+ICdhIGF0dGFjaFBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpc0ZyYW1lYnVmZmVyIDogZnJhbWVidWZmZXIgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgKCoqIDUuMTMuNyBSZW5kZXJidWZmZXIgb2JqZWN0cyAqKVxuXG4gICAgbWV0aG9kIGJpbmRSZW5kZXJidWZmZXIgOiByYlRhcmdldCAtPiByZW5kZXJidWZmZXIgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBiaW5kUmVuZGVyYnVmZmVyXyA6IHJiVGFyZ2V0IC0+IHJlbmRlcmJ1ZmZlciB0IG9wdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVSZW5kZXJidWZmZXIgOiByZW5kZXJidWZmZXIgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlUmVuZGVyYnVmZmVyIDogcmVuZGVyYnVmZmVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyIDogJ2EuIHJiVGFyZ2V0IC0+ICdhIHJlbmRlcmJ1ZmZlclBhcmFtIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpc1JlbmRlcmJ1ZmZlciA6IHJlbmRlcmJ1ZmZlciB0IC0+IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgcmVuZGVyYnVmZmVyU3RvcmFnZSA6IHJiVGFyZ2V0IC0+IGZvcm1hdCAtPiBzaXplaSAtPiBzaXplaSAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjggVGV4dHVyZSBvYmplY3RzICopXG5cbiAgICBtZXRob2QgYmluZFRleHR1cmUgOiB0ZXhUYXJnZXQgLT4gdGV4dHVyZSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGJpbmRUZXh0dXJlXyA6IHRleFRhcmdldCAtPiB0ZXh0dXJlIHQgb3B0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbXByZXNzZWRUZXhJbWFnZTJEIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBpbnRcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29tcHJlc3NlZFRleFN1YkltYWdlMkQgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiAjVHlwZWRfYXJyYXkuYXJyYXlCdWZmZXJWaWV3IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNvcHlUZXhJbWFnZTJEIDpcbiAgICAgIHRleFRhcmdldCAtPiBpbnQgLT4gcGl4ZWxGb3JtYXQgLT4gaW50IC0+IGludCAtPiBzaXplaSAtPiBzaXplaSAtPiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29weVRleFN1YkltYWdlMkQgOlxuICAgICAgdGV4VGFyZ2V0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiBpbnQgLT4gc2l6ZWkgLT4gc2l6ZWkgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlVGV4dHVyZSA6IHRleHR1cmUgdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlVGV4dHVyZSA6IHRleHR1cmUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZW5lcmF0ZU1pcG1hcCA6IHRleFRhcmdldCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRUZXhQYXJhbWV0ZXIgOiB0ZXhUYXJnZXQgLT4gJ2EgdGV4UGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGlzVGV4dHVyZSA6IHRleHR1cmUgdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfbmV3IDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IHZvaWQgb3B0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhJbWFnZTJEX2Zyb21WaWV3IDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tSW1hZ2VEYXRhIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VEYXRhIHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbUltYWdlIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuaW1hZ2VFbGVtZW50IHRcbiAgICAgIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRleEltYWdlMkRfZnJvbUNhbnZhcyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLmNhbnZhc0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4SW1hZ2UyRF9mcm9tVmlkZW8gOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC52aWRlb0VsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiB7W1xuICAgICAgICBtZXRob2QgdGV4UGFyYW1ldGVyZiA6IHRleFRhcmdldCAtPiB0ZXhQYXJhbSAtPiBmbG9hdCAtPiB1bml0IG1ldGhcbiAgICAgICBdfVxuICAgICopXG4gICAgbWV0aG9kIHRleFBhcmFtZXRlcmkgOiB0ZXhUYXJnZXQgLT4gJ2EgdGV4UGFyYW0gLT4gJ2EgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tVmlldyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHNpemVpXG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gI1R5cGVkX2FycmF5LmFycmF5QnVmZmVyVmlldyB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhTdWJJbWFnZTJEX2Zyb21JbWFnZURhdGEgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5pbWFnZURhdGEgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tSW1hZ2UgOlxuICAgICAgICAgdGV4VGFyZ2V0XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBwaXhlbEZvcm1hdFxuICAgICAgLT4gcGl4ZWxUeXBlXG4gICAgICAtPiBEb21faHRtbC5pbWFnZUVsZW1lbnQgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGV4U3ViSW1hZ2UyRF9mcm9tQ2FudmFzIDpcbiAgICAgICAgIHRleFRhcmdldFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IGludFxuICAgICAgLT4gcGl4ZWxGb3JtYXRcbiAgICAgIC0+IHBpeGVsVHlwZVxuICAgICAgLT4gRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0ZXhTdWJJbWFnZTJEX2Zyb21WaWRlbyA6XG4gICAgICAgICB0ZXhUYXJnZXRcbiAgICAgIC0+IGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBpbnRcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+IERvbV9odG1sLnZpZGVvRWxlbWVudCB0XG4gICAgICAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjkgUHJvZ3JhbXMgYW5kIFNoYWRlcnMgKilcblxuICAgIG1ldGhvZCBhdHRhY2hTaGFkZXIgOiBwcm9ncmFtIHQgLT4gc2hhZGVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYmluZEF0dHJpYkxvY2F0aW9uIDogcHJvZ3JhbSB0IC0+IHVpbnQgLT4ganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgY29tcGlsZVNoYWRlciA6IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVByb2dyYW0gOiBwcm9ncmFtIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNoYWRlciA6IHNoYWRlclR5cGUgLT4gc2hhZGVyIHQgbWV0aFxuXG4gICAgbWV0aG9kIGRlbGV0ZVByb2dyYW0gOiBwcm9ncmFtIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVsZXRlU2hhZGVyIDogc2hhZGVyIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGV0YWNoU2hhZGVyIDogcHJvZ3JhbSB0IC0+IHNoYWRlciB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEF0dGFjaGVkU2hhZGVycyA6IHByb2dyYW0gdCAtPiBzaGFkZXIgdCBqc19hcnJheSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQcm9ncmFtUGFyYW1ldGVyIDogJ2EuIHByb2dyYW0gdCAtPiAnYSBwcm9ncmFtUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldFByb2dyYW1JbmZvTG9nIDogcHJvZ3JhbSB0IC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRTaGFkZXJQYXJhbWV0ZXIgOiAnYS4gc2hhZGVyIHQgLT4gJ2Egc2hhZGVyUGFyYW0gLT4gJ2EgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNoYWRlclByZWNpc2lvbkZvcm1hdCA6XG4gICAgICBzaGFkZXJUeXBlIC0+IHNoYWRlclByZWNpc2lvblR5cGUgLT4gc2hhZGVyUHJlY2lzaW9uRm9ybWF0IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNoYWRlckluZm9Mb2cgOiBzaGFkZXIgdCAtPiBqc19zdHJpbmcgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2hhZGVyU291cmNlIDogc2hhZGVyIHQgLT4ganNfc3RyaW5nIHQgbWV0aFxuXG4gICAgbWV0aG9kIGlzUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiBib29sIHQgbWV0aFxuXG4gICAgbWV0aG9kIGlzU2hhZGVyIDogc2hhZGVyIHQgLT4gYm9vbCB0IG1ldGhcblxuICAgIG1ldGhvZCBsaW5rUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzaGFkZXJTb3VyY2UgOiBzaGFkZXIgdCAtPiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1c2VQcm9ncmFtIDogcHJvZ3JhbSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZhbGlkYXRlUHJvZ3JhbSA6IHByb2dyYW0gdCAtPiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjEwIFVuaWZvcm1zIGFuZCBhdHRyaWJ1dGVzICopXG5cbiAgICBtZXRob2QgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5IDogdWludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheSA6IHVpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0QWN0aXZlQXR0cmliIDogcHJvZ3JhbSB0IC0+IHVpbnQgLT4gYWN0aXZlSW5mbyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBY3RpdmVVbmlmb3JtIDogcHJvZ3JhbSB0IC0+IHVpbnQgLT4gYWN0aXZlSW5mbyB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRBdHRyaWJMb2NhdGlvbiA6IHByb2dyYW0gdCAtPiBqc19zdHJpbmcgdCAtPiBpbnQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFVuaWZvcm0gOiAnYSAnYi4gcHJvZ3JhbSB0IC0+ICdhIHVuaWZvcm1Mb2NhdGlvbiB0IC0+ICdiIG1ldGhcblxuICAgIG1ldGhvZCBnZXRVbmlmb3JtTG9jYXRpb24gOiAnYS4gcHJvZ3JhbSB0IC0+IGpzX3N0cmluZyB0IC0+ICdhIHVuaWZvcm1Mb2NhdGlvbiB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRWZXJ0ZXhBdHRyaWIgOiAnYS4gdWludCAtPiAnYSB2ZXJ0ZXhBdHRyaWJQYXJhbSAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgZ2V0VmVydGV4QXR0cmliT2Zmc2V0IDogdWludCAtPiB2ZXJ0ZXhBdHRyaWJQb2ludGVyUGFyYW0gLT4gc2l6ZWlwdHIgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xZiA6IGZsb2F0IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0xZnZfdHlwZWQgOlxuICAgICAgZmxvYXQgdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFmdiA6IGZsb2F0IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFpIDogaW50IHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMWl2X3R5cGVkIDpcbiAgICAgIGludCB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTFpdiA6IGludCB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMmYgOiBbIGB2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJmdl90eXBlZCA6XG4gICAgICBbIGB2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTJmdiA6IFsgYHZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0yaSA6IFsgYGl2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMml2IDogWyBgaXZlYzIgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtMml2X3R5cGVkIDpcbiAgICAgIFsgYGl2ZWMyIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm0zZiA6IFsgYHZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2Z2X3R5cGVkIDpcbiAgICAgIFsgYHZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2Z2IDogWyBgdmVjMyBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTNpIDogWyBgaXZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2l2IDogWyBgaXZlYzMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtM2l2X3R5cGVkIDpcbiAgICAgIFsgYGl2ZWMzIF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00ZiA6XG4gICAgICBbIGB2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRmdl90eXBlZCA6XG4gICAgICBbIGB2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybTRmdiA6IFsgYHZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm00aSA6XG4gICAgICBbIGBpdmVjNCBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGludCAtPiBpbnQgLT4gaW50IC0+IGludCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGl2IDogWyBgaXZlYzQgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBpbnQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtNGl2X3R5cGVkIDpcbiAgICAgIFsgYGl2ZWM0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gVHlwZWRfYXJyYXkuaW50MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXgyZnYgOlxuICAgICAgWyBgbWF0MiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVuaWZvcm1NYXRyaXgyZnZfdHlwZWQgOlxuICAgICAgWyBgbWF0MiBdIHVuaWZvcm1Mb2NhdGlvbiB0IC0+IGJvb2wgdCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4M2Z2IDpcbiAgICAgIFsgYG1hdDMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bmlmb3JtTWF0cml4M2Z2X3R5cGVkIDpcbiAgICAgIFsgYG1hdDMgXSB1bmlmb3JtTG9jYXRpb24gdCAtPiBib29sIHQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDRmdiA6XG4gICAgICBbIGBtYXQ0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdW5pZm9ybU1hdHJpeDRmdl90eXBlZCA6XG4gICAgICBbIGBtYXQ0IF0gdW5pZm9ybUxvY2F0aW9uIHQgLT4gYm9vbCB0IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjFmIDogdWludCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIxZnYgOiB1aW50IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMWZ2X3R5cGVkIDogdWludCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIyZiA6IHVpbnQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliMmZ2IDogdWludCAtPiBmbG9hdCBqc19hcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjJmdl90eXBlZCA6IHVpbnQgLT4gVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliM2YgOiB1aW50IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjNmdiA6IHVpbnQgLT4gZmxvYXQganNfYXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWIzZnZfdHlwZWQgOiB1aW50IC0+IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHZlcnRleEF0dHJpYjRmIDogdWludCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWI0ZnYgOiB1aW50IC0+IGZsb2F0IGpzX2FycmF5IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdmVydGV4QXR0cmliNGZ2X3R5cGVkIDogdWludCAtPiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyIDpcbiAgICAgIHVpbnQgLT4gaW50IC0+IGRhdGFUeXBlIC0+IGJvb2wgdCAtPiBzaXplaSAtPiBpbnRwdHIgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMSBXcml0aW5nIHRvIHRoZSBkcmF3aW5nIGJ1ZmZlciAqKVxuXG4gICAgbWV0aG9kIGNsZWFyIDogY2xlYXJCdWZmZXJNYXNrIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdBcnJheXMgOiBiZWdpbk1vZGUgLT4gaW50IC0+IHNpemVpIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRyYXdFbGVtZW50cyA6IGJlZ2luTW9kZSAtPiBzaXplaSAtPiBkYXRhVHlwZSAtPiBpbnRwdHIgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmluaXNoIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZmx1c2ggOiB1bml0IG1ldGhcblxuICAgICgqKiA1LjEzLjEyIFJlYWRpbmcgYmFjayBwaXhlbHMgKilcblxuICAgIG1ldGhvZCByZWFkUGl4ZWxzIDpcbiAgICAgICAgIGludFxuICAgICAgLT4gaW50XG4gICAgICAtPiBzaXplaVxuICAgICAgLT4gc2l6ZWlcbiAgICAgIC0+IHBpeGVsRm9ybWF0XG4gICAgICAtPiBwaXhlbFR5cGVcbiAgICAgIC0+ICNUeXBlZF9hcnJheS5hcnJheUJ1ZmZlclZpZXcgdFxuICAgICAgLT4gdW5pdCBtZXRoXG5cbiAgICAoKiogNS4xMy4xMyBEZXRlY3RpbmcgY29udGV4dCBsb3N0IGV2ZW50cyAqKVxuXG4gICAgbWV0aG9kIGlzQ29udGV4dExvc3QgOiBib29sIHQgbWV0aFxuXG4gICAgKCoqIDUuMTMuMTQgRGV0ZWN0aW5nIGFuZCBlbmFibGluZyBleHRlbnNpb25zICopXG5cbiAgICBtZXRob2QgZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyA6IGpzX3N0cmluZyB0IGpzX2FycmF5IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldEV4dGVuc2lvbiA6ICdhLiBqc19zdHJpbmcgdCAtPiAnYSB0IG9wdCBtZXRoXG5cbiAgICAoKiBVbnR5cGVkISAqKVxuICAgICgqKiBDb25zdGFudHMgKilcblxuICAgIG1ldGhvZCBfREVQVEhfQlVGRkVSX0JJVF8gOiBjbGVhckJ1ZmZlck1hc2sgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JVRkZFUl9CSVRfIDogY2xlYXJCdWZmZXJNYXNrIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09MT1JfQlVGRkVSX0JJVF8gOiBjbGVhckJ1ZmZlck1hc2sgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT0lOVFMgOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FUyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVfTE9PUF8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FX1NUUklQXyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RSSUFOR0xFUyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RSSUFOR0xFX1NUUklQXyA6IGJlZ2luTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RSSUFOR0xFX0ZBTl8gOiBiZWdpbk1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9aRVJPIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkUgOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NSQ19DT0xPUl8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19TUkNfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUkNfQUxQSEFfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfU1JDX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRFNUX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX0RTVF9BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RTVF9DT0xPUl8gOiBibGVuZGluZ0ZhY3RvciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX09ORV9NSU5VU19EU1RfQ09MT1JfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TUkNfQUxQSEFfU0FUVVJBVEVfIDogYmxlbmRpbmdGYWN0b3IgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GVU5DX0FERF8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GVU5DX1NVQlRSQUNUXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZVTkNfUkVWRVJTRV9TVUJUUkFDVF8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DT05TVEFOVF9DT0xPUl8gOiBibGVuZE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1JfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09OU1RBTlRfQUxQSEFfIDogYmxlbmRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBXyA6IGJsZW5kTW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FSUkFZX0JVRkZFUl8gOiBidWZmZXJUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9FTEVNRU5UX0FSUkFZX0JVRkZFUl8gOiBidWZmZXJUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVFJFQU1fRFJBV18gOiBidWZmZXJVc2FnZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NUQVRJQ19EUkFXXyA6IGJ1ZmZlclVzYWdlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRFlOQU1JQ19EUkFXXyA6IGJ1ZmZlclVzYWdlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJPTlQgOiBjdWxsRmFjZU1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CQUNLIDogY3VsbEZhY2VNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJPTlRfQU5EX0JBQ0tfIDogY3VsbEZhY2VNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VMTF9GQUNFXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRElUSEVSIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9URVNUXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1RFU1RfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0NJU1NPUl9URVNUXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPTFlHT05fT0ZGU0VUX0ZJTExfIDogZW5hYmxlQ2FwIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFXyA6IGVuYWJsZUNhcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9DT1ZFUkFHRV8gOiBlbmFibGVDYXAgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OT19FUlJPUl8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlZBTElEX0VOVU1fIDogZXJyb3JDb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WQUxJRF9WQUxVRV8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlZBTElEX09QRVJBVElPTl8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9PVVRfT0ZfTUVNT1JZXyA6IGVycm9yQ29kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NPTlRFWFRfTE9TVF9XRUJHTF8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTl8gOiBlcnJvckNvZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVyA6IGZyb250RmFjZURpciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0NDVyA6IGZyb250RmFjZURpciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RPTlRfQ0FSRV8gOiBoaW50TW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZBU1RFU1QgOiBoaW50TW9kZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05JQ0VTVCA6IGhpbnRNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfR0VORVJBVEVfTUlQTUFQX0hJTlRfIDogaGludFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0VRVUFUSU9OXyA6IGJsZW5kTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9FUVVBVElPTl9SR0JfIDogYmxlbmRNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX0VRVUFUSU9OX0FMUEhBXyA6IGJsZW5kTW9kZSBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9EU1RfUkdCXyA6IGJsZW5kaW5nRmFjdG9yIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX1NSQ19SR0JfIDogYmxlbmRpbmdGYWN0b3IgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxFTkRfRFNUX0FMUEhBXyA6IGJsZW5kaW5nRmFjdG9yIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX1NSQ19BTFBIQV8gOiBibGVuZGluZ0ZhY3RvciBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CTEVORF9DT0xPUl8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BUlJBWV9CVUZGRVJfQklORElOR18gOiBidWZmZXIgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElOR18gOiBidWZmZXIgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VMTF9GQUNFX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JMRU5EX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RJVEhFUl9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1RFU1RfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfVEVTVF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQ0lTU09SX1RFU1RfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUE9MWUdPTl9PRkZTRVRfRklMTF9QQVJBTSA6IGJvb2wgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FX1dJRFRIXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FMSUFTRURfUE9JTlRfU0laRV9SQU5HRV8gOiBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTElBU0VEX0xJTkVfV0lEVEhfUkFOR0VfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VMTF9GQUNFX01PREVfIDogY3VsbEZhY2VNb2RlIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZST05UX0ZBQ0VfIDogZnJvbnRGYWNlRGlyIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1JBTkdFXyA6IFR5cGVkX2FycmF5LmZsb2F0MzJBcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX1dSSVRFTUFTS18gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQ0xFQVJfVkFMVUVfIDogZmxvYXQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfRlVOQ18gOiBkZXB0aEZ1bmN0aW9uIHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQ0xFQVJfVkFMVUVfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfRlVOQ18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9GQUlMXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1BBU1NfREVQVEhfRkFJTF8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1NfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfUkVGXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX1ZBTFVFX01BU0tfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfV1JJVEVNQVNLXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfRlVOQ18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU1RFTkNJTF9CQUNLX0ZBSUxfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUxfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1NfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19SRUZfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfQkFDS19WQUxVRV9NQVNLXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WSUVXUE9SVCA6IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQ0lTU09SX0JPWF8gOiBUeXBlZF9hcnJheS5pbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09MT1JfQ0xFQVJfVkFMVUVfIDogVHlwZWRfYXJyYXkuZmxvYXQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09MT1JfV1JJVEVNQVNLXyA6IGJvb2wgdCBqc19hcnJheSB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19BTElHTk1FTlRfUEFSQU0gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUEFDS19BTElHTk1FTlRfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9URVhUVVJFX1NJWkVfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WSUVXUE9SVF9ESU1TXyA6IFR5cGVkX2FycmF5LmludDMyQXJyYXkgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVUJQSVhFTF9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRURfQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfR1JFRU5fQklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQkxVRV9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTFBIQV9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9CSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0JJVFNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPTFlHT05fT0ZGU0VUX1VOSVRTXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1BPTFlHT05fT0ZGU0VUX0ZBQ1RPUl8gOiBmbG9hdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0JJTkRJTkdfMkRfIDogdGV4dHVyZSB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVBfIDogdGV4dHVyZSB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TQU1QTEVfQlVGRkVSU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFX0NPVkVSQUdFX1ZBTFVFXyA6IGZsb2F0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRV9DT1ZFUkFHRV9JTlZFUlRfIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFNfIDpcbiAgICAgIFR5cGVkX2FycmF5LnVpbnQzMkFycmF5IHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfR0VORVJBVEVfTUlQTUFQX0hJTlRfUEFSQU1fIDogaGludE1vZGUgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQlVGRkVSX1NJWkVfIDogaW50IGJ1ZmZlclBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0JVRkZFUl9VU0FHRV8gOiBidWZmZXJVc2FnZSBidWZmZXJQYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CWVRFIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9CWVRFX0RUIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TSE9SVCA6IGRhdGFUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfU0hPUlRfIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlQgOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX0lOVF8gOiBkYXRhVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUIDogZGF0YVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9CWVRFXyA6IHBpeGVsVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOU0lHTkVEX1NIT1JUXzRfNF80XzRfIDogcGl4ZWxUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5TSUdORURfU0hPUlRfNV81XzVfMV8gOiBwaXhlbFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlNJR05FRF9TSE9SVF81XzZfNV8gOiBwaXhlbFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BTFBIQSA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0JBIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MVU1JTkFOQ0UgOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xVTUlOQU5DRV9BTFBIQV8gOiBwaXhlbEZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfSU5ERVhfIDogcGl4ZWxGb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERVBUSF9TVEVOQ0lMXyA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQ09NUE9ORU5UXyA6IHBpeGVsRm9ybWF0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBR01FTlRfU0hBREVSXyA6IHNoYWRlclR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfU0hBREVSXyA6IHNoYWRlclR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVkVSVEVYX0FUVFJJQlNfIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX01BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVkFSWUlOR19WRUNUT1JTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfQ09NQklORURfVEVYVFVSRV9JTUFHRV9VTklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfVEVYVFVSRV9JTUFHRV9VTklUU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SU18gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0hBREVSX1RZUEVfIDogc2hhZGVyVHlwZSBzaGFkZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFTEVURV9TVEFUVVNfIDogYm9vbCB0IHNoYWRlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09NUElMRV9TVEFUVVNfIDogYm9vbCB0IHNoYWRlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVMRVRFX1NUQVRVU19QUk9HIDogYm9vbCB0IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTktfU1RBVFVTXyA6IGJvb2wgdCBwcm9ncmFtUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WQUxJREFURV9TVEFUVVNfIDogYm9vbCB0IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FUVEFDSEVEX1NIQURFUlNfIDogaW50IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FDVElWRV9VTklGT1JNU18gOiBpbnQgcHJvZ3JhbVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQUNUSVZFX0FUVFJJQlVURVNfIDogaW50IHByb2dyYW1QYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NIQURJTkdfTEFOR1VBR0VfVkVSU0lPTl8gOiBqc19zdHJpbmcgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DVVJSRU5UX1BST0dSQU1fIDogcHJvZ3JhbSB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRU5ET1IgOiBqc19zdHJpbmcgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJFUiA6IGpzX3N0cmluZyB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlNJT04gOiBqc19zdHJpbmcgdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NQVhfQ1VCRV9NQVBfVEVYVFVSRV9TSVpFXyA6IGludCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9BQ1RJVkVfVEVYVFVSRV8gOiBpbnQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQklORElOR18gOiBmcmFtZWJ1ZmZlciB0IG9wdCBwYXJhbWV0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfQklORElOR18gOiByZW5kZXJidWZmZXIgdCBvcHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUFYX1JFTkRFUkJVRkZFUl9TSVpFIDogaW50IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05FVkVSIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xFU1MgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRVFVQUwgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTEVRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0dSRUFURVIgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTk9URVFVQUwgOiBkZXB0aEZ1bmN0aW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfR0VRVUFMIDogZGVwdGhGdW5jdGlvbiByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0FMV0FZUyA6IGRlcHRoRnVuY3Rpb24gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9LRUVQIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVQTEFDRSA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOQ1IgOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ERUNSIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5WRVJUIDogc3RlbmNpbE9wIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5DUl9XUkFQXyA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFQ1JfV1JBUF8gOiBzdGVuY2lsT3AgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9aRVJPXyA6IHN0ZW5jaWxPcCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX05FQVJFU1QgOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MSU5FQVIgOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORUFSRVNUX01JUE1BUF9ORUFSRVNUXyA6IHRleEZpbHRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xJTkVBUl9NSVBNQVBfTkVBUkVTVF8gOiB0ZXhGaWx0ZXIgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ORUFSRVNUX01JUE1BUF9MSU5FQVJfIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTElORUFSX01JUE1BUF9MSU5FQVJfIDogdGV4RmlsdGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9NQUdfRklMVEVSXyA6IHRleEZpbHRlciB0ZXhQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfTUlOX0ZJTFRFUl8gOiB0ZXhGaWx0ZXIgdGV4UGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX1dSQVBfU18gOiB3cmFwTW9kZSB0ZXhQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfV1JBUF9UXyA6IHdyYXBNb2RlIHRleFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTk9ORV9PVCA6IG9iamVjdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX09UIDogb2JqZWN0VHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9PVCA6IG9iamVjdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFXzJEXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWF8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1lfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZXyA6IHRleFRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWl8gOiB0ZXhUYXJnZXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1pfIDogdGV4VGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTAgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTMgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU0IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFNSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTYgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkU3IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFOCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTkgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxMCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTExIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTIgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxMyA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE0IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTUgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxNiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTE3IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMTggOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUxOSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIwIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjEgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyMiA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTIzIDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjQgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyNSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI2IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMjcgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUyOCA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVEVYVFVSRTI5IDogdGV4dHVyZVVuaXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9URVhUVVJFMzAgOiB0ZXh0dXJlVW5pdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RFWFRVUkUzMSA6IHRleHR1cmVVbml0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVQRUFUIDogd3JhcE1vZGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9DTEFNUF9UT19FREdFXyA6IHdyYXBNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUlSUk9SRURfUkVQRUFUXyA6IHdyYXBNb2RlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9WRUMyXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfVkVDM18gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX1ZFQzRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9JTlRfVkVDMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0lOVF9WRUMzXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfSU5UX1ZFQzRfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9CT09MXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQk9PTF9WRUMyXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQk9PTF9WRUMzXyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQk9PTF9WRUM0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRkxPQVRfTUFUMl8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZMT0FUX01BVDNfIDogdW5pZm9ybVR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GTE9BVF9NQVQ0XyA6IHVuaWZvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfU0FNUExFUl8yRF8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NBTVBMRVJfQ1VCRV8gOiB1bmlmb3JtVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRF8gOiBib29sIHQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX1NJWkVfIDogaW50IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREVfIDogaW50IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFXyA6IGludCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1ZFUlRFWF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRF8gOiBib29sIHQgdmVydGV4QXR0cmliUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9WRVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVJfIDogdmVydGV4QXR0cmliUG9pbnRlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElOR18gOlxuICAgICAgYnVmZmVyIHQgb3B0IHZlcnRleEF0dHJpYlBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ1VSUkVOVF9WRVJURVhfQVRUUklCXyA6XG4gICAgICBUeXBlZF9hcnJheS5mbG9hdDMyQXJyYXkgdCB2ZXJ0ZXhBdHRyaWJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0xPV19GTE9BVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTUVESVVNX0ZMT0FUXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ISUdIX0ZMT0FUXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9MT1dfSU5UXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9NRURJVU1fSU5UXyA6IHNoYWRlclByZWNpc2lvblR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9ISUdIX0lOVF8gOiBzaGFkZXJQcmVjaXNpb25UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVIgOiBmYlRhcmdldCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUiA6IHJiVGFyZ2V0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkdCQTQgOiBmb3JtYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SR0I1X0ExXyA6IGZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JHQjU2NSA6IGZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0RFUFRIX0NPTVBPTkVOVDE2XyA6IGZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1NURU5DSUxfSU5ERVg4XyA6IGZvcm1hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9XSURUSF8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9SRU5ERVJCVUZGRVJfSEVJR0hUXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVRfIDogZm9ybWF0IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX1JFRF9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9HUkVFTl9TSVpFXyA6IGludCByZW5kZXJidWZmZXJQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1JFTkRFUkJVRkZFUl9CTFVFX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0FMUEhBX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX0RFUFRIX1NJWkVfIDogaW50IHJlbmRlcmJ1ZmZlclBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRV8gOiBpbnQgcmVuZGVyYnVmZmVyUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9UWVBFXyA6IG9iamVjdFR5cGUgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FX1JFTkRFUkJVRkZFUiA6XG4gICAgICByZW5kZXJidWZmZXIgdCBhdHRhY2hQYXJhbSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX05BTUVfVEVYVFVSRSA6XG4gICAgICB0ZXh0dXJlIHQgYXR0YWNoUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfTEVWRUxfIDogaW50IGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0VfIDogaW50IGF0dGFjaFBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQ09MT1JfQVRUQUNITUVOVDBfIDogYXR0YWNobWVudFBvaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfQVRUQUNITUVOVF8gOiBhdHRhY2htZW50UG9pbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9TVEVOQ0lMX0FUVEFDSE1FTlRfIDogYXR0YWNobWVudFBvaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UXyA6IGF0dGFjaG1lbnRQb2ludCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX0ZSQU1FQlVGRkVSX0NPTVBMRVRFXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UXyA6IGZyYW1lYnVmZmVyU3RhdHVzIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlRfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlNfIDogZnJhbWVidWZmZXJTdGF0dXMgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRF8gOiBmcmFtZWJ1ZmZlclN0YXR1cyByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19GTElQX1lfV0VCR0xfUEFSQU0gOiBib29sIHQgcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMX1BBUkFNIDogYm9vbCB0IHBhcmFtZXRlciByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1VOUEFDS19DT0xPUlNQQUNFX0NPTlZFUlNJT05fV0VCR0xfUEFSQU0gOlxuICAgICAgY29sb3JzcGFjZUNvbnZlcnNpb24gcGFyYW1ldGVyIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfTk9ORSA6IGNvbG9yc3BhY2VDb252ZXJzaW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfQlJPV1NFUl9ERUZBVUxUX1dFQkdMXyA6IGNvbG9yc3BhY2VDb252ZXJzaW9uIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0FMSUdOTUVOVF8gOiBpbnQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX0ZMSVBfWV9XRUJHTF8gOiBib29sIHQgcGl4ZWxTdG9yZVBhcmFtIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMXyA6IGJvb2wgdCBwaXhlbFN0b3JlUGFyYW0gcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9VTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMXyA6IGludCBwaXhlbFN0b3JlUGFyYW0gcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCoqIDUuMTQgV2ViR0xDb250ZXh0RXZlbnQgKilcblxuY2xhc3MgdHlwZSBjb250ZXh0RXZlbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50XG5cbiAgICBtZXRob2Qgc3RhdHVzTWVzc2FnZSA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbm1vZHVsZSBFdmVudCA9IHN0cnVjdFxuICBsZXQgd2ViZ2xjb250ZXh0bG9zdCA9IERvbV9odG1sLkV2ZW50Lm1ha2UgXCJ3ZWJnbGNvbnRleHRsb3N0XCJcblxuICBsZXQgd2ViZ2xjb250ZXh0cmVzdG9yZWQgPSBEb21faHRtbC5FdmVudC5tYWtlIFwid2ViZ2xjb250ZXh0cmVzdG9yZWRcIlxuXG4gIGxldCB3ZWJnbGNvbnRleHRjcmVhdGlvbmVycm9yID0gRG9tX2h0bWwuRXZlbnQubWFrZSBcIndlYmdsY29udGV4dGNyZWF0aW9uZXJyb3JcIlxuZW5kXG5cbigqKioqKVxuXG5jbGFzcyB0eXBlIGNhbnZhc0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZ2V0Q29udGV4dCA6IGpzX3N0cmluZyB0IC0+IHJlbmRlcmluZ0NvbnRleHQgdCBvcHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENvbnRleHRfIDoganNfc3RyaW5nIHQgLT4gY29udGV4dEF0dHJpYnV0ZXMgdCAtPiByZW5kZXJpbmdDb250ZXh0IHQgb3B0IG1ldGhcbiAgZW5kXG5cbmxldCBnZXRDb250ZXh0IChjIDogRG9tX2h0bWwuY2FudmFzRWxlbWVudCB0KSA9XG4gIGxldCBjIDogY2FudmFzRWxlbWVudCB0ID0gSnMuVW5zYWZlLmNvZXJjZSBjIGluXG4gIGxldCBjdHggPSBjIyNnZXRDb250ZXh0IChKcy5zdHJpbmcgXCJ3ZWJnbFwiKSBpblxuICBpZiBPcHQudGVzdCBjdHggdGhlbiBjdHggZWxzZSBjICMjIChnZXRDb250ZXh0IChKcy5zdHJpbmcgXCJleHBlcmltZW50YWwtd2ViZ2xcIikpXG5cbmxldCBnZXRDb250ZXh0V2l0aEF0dHJpYnV0ZXMgKGMgOiBEb21faHRtbC5jYW52YXNFbGVtZW50IHQpIGF0dHJpYnMgPVxuICBsZXQgYyA6IGNhbnZhc0VsZW1lbnQgdCA9IEpzLlVuc2FmZS5jb2VyY2UgYyBpblxuICBsZXQgY3R4ID0gYyMjZ2V0Q29udGV4dF8gKEpzLnN0cmluZyBcIndlYmdsXCIpIGF0dHJpYnMgaW5cbiAgaWYgT3B0LnRlc3QgY3R4IHRoZW4gY3R4IGVsc2UgYyMjZ2V0Q29udGV4dF8gKEpzLnN0cmluZyBcImV4cGVyaW1lbnRhbC13ZWJnbFwiKSBhdHRyaWJzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDEwIFJhcGhhw6tsIFByb3VzdCwgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbnR5cGUgcmVnZXhwID0gSnMucmVnRXhwIEpzLnRcblxudHlwZSByZXN1bHQgPSBKcy5tYXRjaF9yZXN1bHQgSnMudFxuXG5sZXQgcmVnZXhwIHMgPSBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuYnl0ZXN0cmluZyBzKSAoSnMuc3RyaW5nIFwiZ1wiKVxuXG5sZXQgcmVnZXhwX2Nhc2VfZm9sZCBzID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLmJ5dGVzdHJpbmcgcykgKEpzLnN0cmluZyBcImdpXCIpXG5cbmxldCByZWdleHBfd2l0aF9mbGFnIHMgZiA9XG4gIG5ldyVqcyBKcy5yZWdFeHBfd2l0aEZsYWdzIChKcy5ieXRlc3RyaW5nIHMpIChKcy5zdHJpbmcgKFwiZ1wiIF4gZikpXG5cbmxldCBibHVudF9zdHJfYXJyYXlfZ2V0IGEgaSA9XG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCBhIGkpIChmdW4gKCkgLT4gYXNzZXJ0IGZhbHNlKSlcblxubGV0IHN0cmluZ19tYXRjaCByIHMgaSA9XG4gIHIjIy5sYXN0SW5kZXggOj0gaTtcbiAgSnMuT3B0LnRvX29wdGlvbiAoSnMuT3B0Lm1hcCAociMjZXhlYyAoSnMuYnl0ZXN0cmluZyBzKSkgSnMubWF0Y2hfcmVzdWx0KVxuXG5sZXQgc2VhcmNoIHIgcyBpID1cbiAgciMjLmxhc3RJbmRleCA6PSBpO1xuICBKcy5PcHQudG9fb3B0aW9uXG4gICAgKEpzLk9wdC5tYXBcbiAgICAgICAociMjZXhlYyAoSnMuYnl0ZXN0cmluZyBzKSlcbiAgICAgICAoZnVuIHJlc19wcmUgLT5cbiAgICAgICAgIGxldCByZXMgPSBKcy5tYXRjaF9yZXN1bHQgcmVzX3ByZSBpblxuICAgICAgICAgcmVzIyMuaW5kZXgsIHJlcykpXG5cbmxldCBzZWFyY2hfZm9yd2FyZCA9IHNlYXJjaFxuXG5sZXQgbWF0Y2hlZF9zdHJpbmcgciA9IGJsdW50X3N0cl9hcnJheV9nZXQgciAwXG5cbmxldCBtYXRjaGVkX2dyb3VwIHIgaSA9XG4gIEpzLk9wdGRlZi50b19vcHRpb24gKEpzLk9wdGRlZi5tYXAgKEpzLmFycmF5X2dldCByIGkpIEpzLnRvX2J5dGVzdHJpbmcpXG5cbmxldCBxdW90ZV9yZXBsX3JlID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgKEpzLnN0cmluZyBcIlskXVwiKSAoSnMuc3RyaW5nIFwiZ1wiKVxuXG5sZXQgcXVvdGVfcmVwbCBzID0gKEpzLmJ5dGVzdHJpbmcgcykjI3JlcGxhY2UgcXVvdGVfcmVwbF9yZSAoSnMuc3RyaW5nIFwiJCQkJFwiKVxuXG5sZXQgZ2xvYmFsX3JlcGxhY2UgciBzIHNfYnkgPVxuICByIyMubGFzdEluZGV4IDo9IDA7XG4gIEpzLnRvX2J5dGVzdHJpbmcgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHJlcGxhY2UgciAocXVvdGVfcmVwbCBzX2J5KSlcblxubGV0IHJlcGxhY2VfZmlyc3QgciBzIHNfYnkgPVxuICBsZXQgZmxhZ3MgPVxuICAgIG1hdGNoIEpzLnRvX2Jvb2wgciMjLmlnbm9yZUNhc2UsIEpzLnRvX2Jvb2wgciMjLm11bHRpbGluZSB3aXRoXG4gICAgfCBmYWxzZSwgZmFsc2UgLT4gSnMuc3RyaW5nIFwiXCJcbiAgICB8IGZhbHNlLCB0cnVlIC0+IEpzLnN0cmluZyBcIm1cIlxuICAgIHwgdHJ1ZSwgZmFsc2UgLT4gSnMuc3RyaW5nIFwiaVwiXG4gICAgfCB0cnVlLCB0cnVlIC0+IEpzLnN0cmluZyBcIm1pXCJcbiAgaW5cbiAgbGV0IHInID0gbmV3JWpzIEpzLnJlZ0V4cF93aXRoRmxhZ3MgciMjLnNvdXJjZSBmbGFncyBpblxuICBKcy50b19ieXRlc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpICMjIChyZXBsYWNlIHInIChxdW90ZV9yZXBsIHNfYnkpKVxuXG5sZXQgbGlzdF9vZl9qc19hcnJheSBhID1cbiAgbGV0IHJlYyBhdXggYWNjdSBpZHggPVxuICAgIGlmIGlkeCA8IDAgdGhlbiBhY2N1IGVsc2UgYXV4IChibHVudF9zdHJfYXJyYXlfZ2V0IGEgaWR4IDo6IGFjY3UpIChpZHggLSAxKVxuICBpblxuICBhdXggW10gKGEjIy5sZW5ndGggLSAxKVxuXG5sZXQgc3BsaXQgciBzID1cbiAgciMjLmxhc3RJbmRleCA6PSAwO1xuICBsaXN0X29mX2pzX2FycmF5IChKcy5zdHJfYXJyYXkgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHNwbGl0X3JlZ0V4cCByKSlcblxubGV0IGJvdW5kZWRfc3BsaXQgciBzIGkgPVxuICByIyMubGFzdEluZGV4IDo9IDA7XG4gIGxpc3Rfb2ZfanNfYXJyYXkgKEpzLnN0cl9hcnJheSAoSnMuYnl0ZXN0cmluZyBzKSAjIyAoc3BsaXRfcmVnRXhwTGltaXRlZCByIGkpKVxuXG4oKiBNb3JlIGNvbnN0cnVjdG9ycyAqKVxuXG5sZXQgcXVvdGVfcmUgPSByZWdleHAgXCJbXFxcXF1bKClcXFxcXFxcXHwrKi4/e31eJF1cIlxuXG5sZXQgcXVvdGUgcyA9IEpzLnRvX2J5dGVzdHJpbmcgKEpzLmJ5dGVzdHJpbmcgcykgIyMgKHJlcGxhY2UgcXVvdGVfcmUgKEpzLnN0cmluZyBcIlxcXFwkJlwiKSlcblxubGV0IHJlZ2V4cF9zdHJpbmcgcyA9IHJlZ2V4cCAocXVvdGUgcylcblxubGV0IHJlZ2V4cF9zdHJpbmdfY2FzZV9mb2xkIHMgPSByZWdleHBfY2FzZV9mb2xkIChxdW90ZSBzKVxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxMCBSYXBoYcOrbCBQcm91c3RcbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbigqIFVybCB0YW1wZXJpbmcuICopXG5cbmxldCBzcGxpdCBjIHMgPSBKcy5zdHJfYXJyYXkgKHMjI3NwbGl0IChKcy5zdHJpbmcgKFN0cmluZy5tYWtlIDEgYykpKVxuXG5sZXQgc3BsaXRfMiBjIHMgPVxuICBsZXQgaW5kZXggPSBzIyNpbmRleE9mIChKcy5zdHJpbmcgKFN0cmluZy5tYWtlIDEgYykpIGluXG4gIGlmIGluZGV4IDwgMCB0aGVuIEpzLnVuZGVmaW5lZCBlbHNlIEpzLmRlZiAocyMjc2xpY2UgMCBpbmRleCwgcyMjc2xpY2VfZW5kIChpbmRleCArIDEpKVxuXG5leGNlcHRpb24gTG9jYWxfZXhuXG5cbmxldCBpbnRlcnJ1cHQgKCkgPSByYWlzZSBMb2NhbF9leG5cblxuKCogdXJsIChBS0EgcGVyY2VudCkgZW5jb2RpbmcvZGVjb2RpbmcgKilcblxubGV0IHBsdXNfcmUgPSBSZWdleHAucmVnZXhwX3N0cmluZyBcIitcIlxuXG5sZXQgZXNjYXBlX3BsdXMgcyA9IFJlZ2V4cC5nbG9iYWxfcmVwbGFjZSBwbHVzX3JlIHMgXCIlMkJcIlxuXG5sZXQgdW5lc2NhcGVfcGx1cyBzID0gUmVnZXhwLmdsb2JhbF9yZXBsYWNlIHBsdXNfcmUgcyBcIiBcIlxuXG5sZXQgcGx1c19yZV9qc19zdHJpbmcgPSBuZXclanMgSnMucmVnRXhwX3dpdGhGbGFncyAoSnMuc3RyaW5nIFwiXFxcXCtcIikgKEpzLnN0cmluZyBcImdcIilcblxubGV0IHVuZXNjYXBlX3BsdXNfanNfc3RyaW5nIHMgPVxuICBwbHVzX3JlX2pzX3N0cmluZyMjLmxhc3RJbmRleCA6PSAwO1xuICBzIyNyZXBsYWNlIHBsdXNfcmVfanNfc3RyaW5nIChKcy5zdHJpbmcgXCIgXCIpXG5cbmxldCB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBzID1cbiAgSnMudG9fYnl0ZXN0cmluZyAoSnMudW5lc2NhcGUgKHVuZXNjYXBlX3BsdXNfanNfc3RyaW5nIHMpKVxuXG5sZXQgdXJsZGVjb2RlIHMgPSBKcy50b19ieXRlc3RyaW5nIChKcy51bmVzY2FwZSAoSnMuYnl0ZXN0cmluZyAodW5lc2NhcGVfcGx1cyBzKSkpXG5cbigqbGV0IHVybGVuY29kZV9qc19zdHJpbmdfc3RyaW5nIHMgPVxuICBKcy50b19ieXRlc3RyaW5nIChKcy5lc2NhcGUgcykqKVxuXG5sZXQgdXJsZW5jb2RlID8od2l0aF9wbHVzID0gdHJ1ZSkgcyA9XG4gIGlmIHdpdGhfcGx1c1xuICB0aGVuIGVzY2FwZV9wbHVzIChKcy50b19ieXRlc3RyaW5nIChKcy5lc2NhcGUgKEpzLmJ5dGVzdHJpbmcgcykpKVxuICBlbHNlIEpzLnRvX2J5dGVzdHJpbmcgKEpzLmVzY2FwZSAoSnMuYnl0ZXN0cmluZyBzKSlcblxudHlwZSBodHRwX3VybCA9XG4gIHsgaHVfaG9zdCA6IHN0cmluZyAgKCoqIFRoZSBob3N0IHBhcnQgb2YgdGhlIHVybC4gKilcbiAgOyBodV9wb3J0IDogaW50ICAoKiogVGhlIHBvcnQgZm9yIHRoZSBjb25uZWN0aW9uIGlmIGFueS4gKilcbiAgOyBodV9wYXRoIDogc3RyaW5nIGxpc3QgICgqKiBUaGUgcGF0aCBzcGxpdCBvbiBbJy8nXSBjaGFyYWN0ZXJzLiAqKVxuICA7IGh1X3BhdGhfc3RyaW5nIDogc3RyaW5nICAoKiogVGhlIG9yaWdpbmFsIGVudGlyZSBwYXRoLiAqKVxuICA7IGh1X2FyZ3VtZW50cyA6IChzdHJpbmcgKiBzdHJpbmcpIGxpc3RcbiAgICAgICAgKCoqIEFyZ3VtZW50cyBhcyBhIGZpZWxkLXZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NvY2lhdGlvbiBsaXN0LiopXG4gIDsgaHVfZnJhZ21lbnQgOiBzdHJpbmcgICgqKiBUaGUgZnJhZ21lbnQgcGFydCAoYWZ0ZXIgdGhlIFsnIyddIGNoYXJhY3RlcikuICopXG4gIH1cbigqKiBUaGUgdHlwZSBmb3IgSFRUUCB1cmwuICopXG5cbnR5cGUgZmlsZV91cmwgPVxuICB7IGZ1X3BhdGggOiBzdHJpbmcgbGlzdFxuICA7IGZ1X3BhdGhfc3RyaW5nIDogc3RyaW5nXG4gIDsgZnVfYXJndW1lbnRzIDogKHN0cmluZyAqIHN0cmluZykgbGlzdFxuICA7IGZ1X2ZyYWdtZW50IDogc3RyaW5nXG4gIH1cbigqKiBUaGUgdHlwZSBmb3IgbG9jYWwgZmlsZSB1cmxzLiAqKVxuXG50eXBlIHVybCA9XG4gIHwgSHR0cCBvZiBodHRwX3VybFxuICB8IEh0dHBzIG9mIGh0dHBfdXJsXG4gIHwgRmlsZSBvZiBmaWxlX3VybFxuICAgICAgKCoqIFRoZSB0eXBlIGZvciB1cmxzLiBbRmlsZV0gaXMgZm9yIGxvY2FsIGZpbGVzIGFuZCBbRXhvdGljIHNdIGlzIGZvclxuICAgIHVua25vd24vdW5zdXBwb3J0ZWQgcHJvdG9jb2xzLiAqKVxuXG5leGNlcHRpb24gTm90X2FuX2h0dHBfcHJvdG9jb2xcblxubGV0IGlzX3NlY3VyZSBwcm90X3N0cmluZyA9XG4gIG1hdGNoIEpzLnRvX2J5dGVzdHJpbmcgcHJvdF9zdHJpbmcjI3RvTG93ZXJDYXNlIHdpdGhcbiAgfCBcImh0dHBzOlwiIHwgXCJodHRwc1wiIC0+IHRydWVcbiAgfCBcImh0dHA6XCIgfCBcImh0dHBcIiAtPiBmYWxzZVxuICB8IFwiZmlsZTpcIiB8IFwiZmlsZVwiIHwgXyAtPiByYWlzZSBOb3RfYW5faHR0cF9wcm90b2NvbFxuXG4oKiBwb3J0IG51bWJlciAqKVxubGV0IGRlZmF1bHRfaHR0cF9wb3J0ID0gODBcblxubGV0IGRlZmF1bHRfaHR0cHNfcG9ydCA9IDQ0M1xuXG4oKiBwYXRoICopXG5sZXQgcGF0aF9vZl9wYXRoX3N0cmluZyBzID1cbiAgbGV0IGwgPSBTdHJpbmcubGVuZ3RoIHMgaW5cbiAgbGV0IHJlYyBhdXggaSA9XG4gICAgbGV0IGogPSB0cnkgU3RyaW5nLmluZGV4X2Zyb20gcyBpICcvJyB3aXRoIE5vdF9mb3VuZCAtPiBsIGluXG4gICAgbGV0IHdvcmQgPSBTdHJpbmcuc3ViIHMgaSAoaiAtIGkpIGluXG4gICAgaWYgaiA+PSBsIHRoZW4gWyB3b3JkIF0gZWxzZSB3b3JkIDo6IGF1eCAoaiArIDEpXG4gIGluXG4gIG1hdGNoIGF1eCAwIHdpdGhcbiAgfCBbIFwiXCIgXSAtPiBbXVxuICB8IFsgXCJcIjsgXCJcIiBdIC0+IFsgXCJcIiBdXG4gIHwgYSAtPiBhXG5cbigqIEFyZ3VtZW50cyAqKVxubGV0IGVuY29kZV9hcmd1bWVudHMgbCA9XG4gIFN0cmluZy5jb25jYXQgXCImXCIgKExpc3QubWFwIChmdW4gKG4sIHYpIC0+IHVybGVuY29kZSBuIF4gXCI9XCIgXiB1cmxlbmNvZGUgdikgbClcblxubGV0IGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nIHMgPVxuICBsZXQgYXJyID0gc3BsaXQgJyYnIHMgaW5cbiAgbGV0IGxlbiA9IGFyciMjLmxlbmd0aCBpblxuICBsZXQgbmFtZV92YWx1ZV9zcGxpdCBzID0gc3BsaXRfMiAnPScgcyBpblxuICBsZXQgcmVjIGF1eCBhY2MgaWR4ID1cbiAgICBpZiBpZHggPCAwXG4gICAgdGhlbiBhY2NcbiAgICBlbHNlXG4gICAgICB0cnlcbiAgICAgICAgYXV4XG4gICAgICAgICAgKEpzLk9wdGRlZi5jYXNlIChKcy5hcnJheV9nZXQgYXJyIGlkeCkgaW50ZXJydXB0IChmdW4gcyAtPlxuICAgICAgICAgICAgICAgSnMuT3B0ZGVmLmNhc2UgKG5hbWVfdmFsdWVfc3BsaXQgcykgaW50ZXJydXB0IChmdW4gKHgsIHkpIC0+XG4gICAgICAgICAgICAgICAgICAgbGV0IGdldCA9IHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIGluXG4gICAgICAgICAgICAgICAgICAgZ2V0IHgsIGdldCB5KSlcbiAgICAgICAgICA6OiBhY2MpXG4gICAgICAgICAgKHByZWQgaWR4KVxuICAgICAgd2l0aCBMb2NhbF9leG4gLT4gYXV4IGFjYyAocHJlZCBpZHgpXG4gIGluXG4gIGF1eCBbXSAobGVuIC0gMSlcblxubGV0IGRlY29kZV9hcmd1bWVudHMgcyA9IGRlY29kZV9hcmd1bWVudHNfanNfc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpXG5cbmxldCB1cmxfcmUgPVxuICBuZXclanMgSnMucmVnRXhwXG4gICAgKEpzLmJ5dGVzdHJpbmdcbiAgICAgICBcIl4oW0hoXVtUdF1bVHRdW1BwXVtTc10/KTovLyhbMC05YS16QS1aLi1dK3xcXFxcW1swLTlhLXpBLVouLV0rXFxcXF18XFxcXFtbMC05QS1GYS1mOi5dK1xcXFxdKT8oOihbMC05XSspKT8oLyhbXlxcXFw/I10qKShcXFxcPyhbXiNdKikpPygjKC4qKSk/KT8kXCIpXG5cbmxldCBmaWxlX3JlID1cbiAgbmV3JWpzIEpzLnJlZ0V4cFxuICAgIChKcy5ieXRlc3RyaW5nIFwiXihbRmZdW0lpXVtMbF1bRWVdKTovLyhbXlxcXFw/I10qKShcXFxcPyhbXiNdKikpPygjKC4qKSk/JFwiKVxuXG5sZXQgdXJsX29mX2pzX3N0cmluZyBzID1cbiAgSnMuT3B0LmNhc2VcbiAgICAodXJsX3JlIyNleGVjIHMpXG4gICAgKGZ1biAoKSAtPlxuICAgICAgSnMuT3B0LmNhc2VcbiAgICAgICAgKGZpbGVfcmUjI2V4ZWMgcylcbiAgICAgICAgKGZ1biAoKSAtPiBOb25lKVxuICAgICAgICAoZnVuIGhhbmRsZSAtPlxuICAgICAgICAgIGxldCByZXMgPSBKcy5tYXRjaF9yZXN1bHQgaGFuZGxlIGluXG4gICAgICAgICAgbGV0IHBhdGhfc3RyID1cbiAgICAgICAgICAgIHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDIpIGludGVycnVwdClcbiAgICAgICAgICBpblxuICAgICAgICAgIFNvbWVcbiAgICAgICAgICAgIChGaWxlXG4gICAgICAgICAgICAgICB7IGZ1X3BhdGggPSBwYXRoX29mX3BhdGhfc3RyaW5nIHBhdGhfc3RyXG4gICAgICAgICAgICAgICA7IGZ1X3BhdGhfc3RyaW5nID0gcGF0aF9zdHJcbiAgICAgICAgICAgICAgIDsgZnVfYXJndW1lbnRzID1cbiAgICAgICAgICAgICAgICAgICBkZWNvZGVfYXJndW1lbnRzX2pzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgNCkgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgICAgICAgICAgOyBmdV9mcmFnbWVudCA9XG4gICAgICAgICAgICAgICAgICAgSnMudG9fYnl0ZXN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgNikgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgICAgICAgICAgfSkpKVxuICAgIChmdW4gaGFuZGxlIC0+XG4gICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IGhhbmRsZSBpblxuICAgICAgbGV0IHNzbCA9IGlzX3NlY3VyZSAoSnMuT3B0ZGVmLmdldCAoSnMuYXJyYXlfZ2V0IHJlcyAxKSBpbnRlcnJ1cHQpIGluXG4gICAgICBsZXQgcG9ydF9vZl9zdHJpbmcgPSBmdW5jdGlvblxuICAgICAgICB8IFwiXCIgLT4gaWYgc3NsIHRoZW4gNDQzIGVsc2UgODBcbiAgICAgICAgfCBzIC0+IGludF9vZl9zdHJpbmcgc1xuICAgICAgaW5cbiAgICAgIGxldCBwYXRoX3N0ciA9XG4gICAgICAgIHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nXG4gICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgNikgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgaW5cbiAgICAgIGxldCB1cmwgPVxuICAgICAgICB7IGh1X2hvc3QgPVxuICAgICAgICAgICAgdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgMikgaW50ZXJydXB0KVxuICAgICAgICA7IGh1X3BvcnQgPVxuICAgICAgICAgICAgcG9ydF9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgKEpzLnRvX2J5dGVzdHJpbmdcbiAgICAgICAgICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgNCkgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKSlcbiAgICAgICAgOyBodV9wYXRoID0gcGF0aF9vZl9wYXRoX3N0cmluZyBwYXRoX3N0clxuICAgICAgICA7IGh1X3BhdGhfc3RyaW5nID0gcGF0aF9zdHJcbiAgICAgICAgOyBodV9hcmd1bWVudHMgPVxuICAgICAgICAgICAgZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmdcbiAgICAgICAgICAgICAgKEpzLk9wdGRlZi5nZXQgKEpzLmFycmF5X2dldCByZXMgOCkgKGZ1biAoKSAtPiBKcy5ieXRlc3RyaW5nIFwiXCIpKVxuICAgICAgICA7IGh1X2ZyYWdtZW50ID1cbiAgICAgICAgICAgIHVybGRlY29kZV9qc19zdHJpbmdfc3RyaW5nXG4gICAgICAgICAgICAgIChKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQgcmVzIDEwKSAoZnVuICgpIC0+IEpzLmJ5dGVzdHJpbmcgXCJcIikpXG4gICAgICAgIH1cbiAgICAgIGluXG4gICAgICBTb21lIChpZiBzc2wgdGhlbiBIdHRwcyB1cmwgZWxzZSBIdHRwIHVybCkpXG5cbmxldCB1cmxfb2Zfc3RyaW5nIHMgPSB1cmxfb2ZfanNfc3RyaW5nIChKcy5ieXRlc3RyaW5nIHMpXG5cbmxldCBzdHJpbmdfb2ZfdXJsID0gZnVuY3Rpb25cbiAgfCBGaWxlIHsgZnVfcGF0aCA9IHBhdGg7IGZ1X2FyZ3VtZW50cyA9IGFyZ3M7IGZ1X2ZyYWdtZW50ID0gZnJhZzsgXyB9IC0+IChcbiAgICAgIFwiZmlsZTovL1wiXG4gICAgICBeIFN0cmluZy5jb25jYXQgXCIvXCIgKExpc3QubWFwIChmdW4geCAtPiB1cmxlbmNvZGUgeCkgcGF0aClcbiAgICAgIF4gKG1hdGNoIGFyZ3Mgd2l0aFxuICAgICAgICB8IFtdIC0+IFwiXCJcbiAgICAgICAgfCBsIC0+IFwiP1wiIF4gZW5jb2RlX2FyZ3VtZW50cyBsKVxuICAgICAgXlxuICAgICAgbWF0Y2ggZnJhZyB3aXRoXG4gICAgICB8IFwiXCIgLT4gXCJcIlxuICAgICAgfCBzIC0+IFwiI1wiIF4gdXJsZW5jb2RlIHMpXG4gIHwgSHR0cFxuICAgICAgeyBodV9ob3N0ID0gaG9zdFxuICAgICAgOyBodV9wb3J0ID0gcG9ydFxuICAgICAgOyBodV9wYXRoID0gcGF0aFxuICAgICAgOyBodV9hcmd1bWVudHMgPSBhcmdzXG4gICAgICA7IGh1X2ZyYWdtZW50ID0gZnJhZ1xuICAgICAgOyBfXG4gICAgICB9IC0+IChcbiAgICAgIFwiaHR0cDovL1wiXG4gICAgICBeIHVybGVuY29kZSBob3N0XG4gICAgICBeIChtYXRjaCBwb3J0IHdpdGhcbiAgICAgICAgfCA4MCAtPiBcIlwiXG4gICAgICAgIHwgbiAtPiBcIjpcIiBeIHN0cmluZ19vZl9pbnQgbilcbiAgICAgIF4gXCIvXCJcbiAgICAgIF4gU3RyaW5nLmNvbmNhdCBcIi9cIiAoTGlzdC5tYXAgKGZ1biB4IC0+IHVybGVuY29kZSB4KSBwYXRoKVxuICAgICAgXiAobWF0Y2ggYXJncyB3aXRoXG4gICAgICAgIHwgW10gLT4gXCJcIlxuICAgICAgICB8IGwgLT4gXCI/XCIgXiBlbmNvZGVfYXJndW1lbnRzIGwpXG4gICAgICBeXG4gICAgICBtYXRjaCBmcmFnIHdpdGhcbiAgICAgIHwgXCJcIiAtPiBcIlwiXG4gICAgICB8IHMgLT4gXCIjXCIgXiB1cmxlbmNvZGUgcylcbiAgfCBIdHRwc1xuICAgICAgeyBodV9ob3N0ID0gaG9zdFxuICAgICAgOyBodV9wb3J0ID0gcG9ydFxuICAgICAgOyBodV9wYXRoID0gcGF0aFxuICAgICAgOyBodV9hcmd1bWVudHMgPSBhcmdzXG4gICAgICA7IGh1X2ZyYWdtZW50ID0gZnJhZ1xuICAgICAgOyBfXG4gICAgICB9IC0+IChcbiAgICAgIFwiaHR0cHM6Ly9cIlxuICAgICAgXiB1cmxlbmNvZGUgaG9zdFxuICAgICAgXiAobWF0Y2ggcG9ydCB3aXRoXG4gICAgICAgIHwgNDQzIC0+IFwiXCJcbiAgICAgICAgfCBuIC0+IFwiOlwiIF4gc3RyaW5nX29mX2ludCBuKVxuICAgICAgXiBcIi9cIlxuICAgICAgXiBTdHJpbmcuY29uY2F0IFwiL1wiIChMaXN0Lm1hcCAoZnVuIHggLT4gdXJsZW5jb2RlIHgpIHBhdGgpXG4gICAgICBeIChtYXRjaCBhcmdzIHdpdGhcbiAgICAgICAgfCBbXSAtPiBcIlwiXG4gICAgICAgIHwgbCAtPiBcIj9cIiBeIGVuY29kZV9hcmd1bWVudHMgbClcbiAgICAgIF5cbiAgICAgIG1hdGNoIGZyYWcgd2l0aFxuICAgICAgfCBcIlwiIC0+IFwiXCJcbiAgICAgIHwgcyAtPiBcIiNcIiBeIHVybGVuY29kZSBzKVxuXG5tb2R1bGUgQ3VycmVudCA9IHN0cnVjdFxuICBsZXQgbCA9XG4gICAgaWYgSnMuT3B0ZGVmLnRlc3QgKEpzLk9wdGRlZi5yZXR1cm4gRG9tX2h0bWwud2luZG93IyMubG9jYXRpb24pXG4gICAgdGhlbiBEb21faHRtbC53aW5kb3cjIy5sb2NhdGlvblxuICAgIGVsc2VcbiAgICAgIGxldCBlbXB0eSA9IEpzLnN0cmluZyBcIlwiIGluXG4gICAgICBvYmplY3QlanNcbiAgICAgICAgdmFsIG11dGFibGUgaHJlZiA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgcHJvdG9jb2wgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIGhvc3QgPSBlbXB0eVxuXG4gICAgICAgIHZhbCBtdXRhYmxlIGhvc3RuYW1lID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBwb3J0ID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBwYXRobmFtZSA9IGVtcHR5XG5cbiAgICAgICAgdmFsIG11dGFibGUgc2VhcmNoID0gZW1wdHlcblxuICAgICAgICB2YWwgbXV0YWJsZSBoYXNoID0gZW1wdHlcblxuICAgICAgICB2YWwgb3JpZ2luID0gSnMudW5kZWZpbmVkXG5cbiAgICAgICAgbWV0aG9kIHJlbG9hZCA9ICgpXG5cbiAgICAgICAgbWV0aG9kIHJlcGxhY2UgXyA9ICgpXG5cbiAgICAgICAgbWV0aG9kIGFzc2lnbiBfID0gKClcbiAgICAgIGVuZFxuXG4gIGxldCBob3N0ID0gdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgbCMjLmhvc3RuYW1lXG5cbiAgbGV0IHByb3RvY29sID0gdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgbCMjLnByb3RvY29sXG5cbiAgbGV0IHBvcnQgPVxuICAgIChmdW4gKCkgLT5cbiAgICAgIHRyeSBTb21lIChpbnRfb2Zfc3RyaW5nIChKcy50b19ieXRlc3RyaW5nIGwjIy5wb3J0KSkgd2l0aCBGYWlsdXJlIF8gLT4gTm9uZSlcbiAgICAgICgpXG5cbiAgbGV0IHBhdGhfc3RyaW5nID0gdXJsZGVjb2RlX2pzX3N0cmluZ19zdHJpbmcgbCMjLnBhdGhuYW1lXG5cbiAgbGV0IHBhdGggPSBwYXRoX29mX3BhdGhfc3RyaW5nIHBhdGhfc3RyaW5nXG5cbiAgbGV0IGFyZ3VtZW50cyA9XG4gICAgZGVjb2RlX2FyZ3VtZW50c19qc19zdHJpbmdcbiAgICAgIChpZiBsIyMuc2VhcmNoIyNjaGFyQXQgMCA9PSBKcy5zdHJpbmcgXCI/XCJcbiAgICAgIHRoZW4gbCMjLnNlYXJjaCMjc2xpY2VfZW5kIDFcbiAgICAgIGVsc2UgbCMjLnNlYXJjaClcblxuICBsZXQgZ2V0X2ZyYWdtZW50ICgpID1cbiAgICAoKiBsb2NhdGlvbi5oYXNoIGRvZXNuJ3QgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXJcbiAgICAgICBGaXJlZm94IGJ1ZyA6IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MzMwNCAqKVxuICAgICgqIGxldCBzID0gSnMudG9fYnl0ZXN0cmluZyAobCMjaGFzaCkgaW4gKilcbiAgICAoKiBpZiBTdHJpbmcubGVuZ3RoIHMgPiAwICYmIHMuWzBdID0gJyMnICopXG4gICAgKCogdGhlbiBTdHJpbmcuc3ViIHMgMSAoU3RyaW5nLmxlbmd0aCBzIC0gMSkgKilcbiAgICAoKiBlbHNlIHM7ICopXG4gICAgSnMuT3B0LmNhc2VcbiAgICAgIChsIyMuaHJlZiMjX21hdGNoIChuZXclanMgSnMucmVnRXhwIChKcy5zdHJpbmcgXCIjKC4qKVwiKSkpXG4gICAgICAoZnVuICgpIC0+IFwiXCIpXG4gICAgICAoZnVuIHJlcyAtPlxuICAgICAgICBsZXQgcmVzID0gSnMubWF0Y2hfcmVzdWx0IHJlcyBpblxuICAgICAgICBKcy50b19zdHJpbmcgKEpzLlVuc2FmZS5nZXQgcmVzIDEpKVxuXG4gIGxldCBzZXRfZnJhZ21lbnQgcyA9IGwjIy5oYXNoIDo9IEpzLmJ5dGVzdHJpbmcgKHVybGVuY29kZSBzKVxuXG4gIGxldCBnZXQgKCkgPSB1cmxfb2ZfanNfc3RyaW5nIGwjIy5ocmVmXG5cbiAgbGV0IHNldCB1ID0gbCMjLmhyZWYgOj0gSnMuYnl0ZXN0cmluZyAoc3RyaW5nX29mX3VybCB1KVxuXG4gIGxldCBhc19zdHJpbmcgPSB1cmxkZWNvZGVfanNfc3RyaW5nX3N0cmluZyBsIyMuaHJlZlxuZW5kXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE0IEh1Z28gSGV1emFyZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbmV4dGVybmFsIGNyZWF0ZV9maWxlIDogbmFtZTpzdHJpbmcgLT4gY29udGVudDpzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF9jcmVhdGVfZmlsZVwiXG5cbmV4dGVybmFsIHJlYWRfZmlsZSA6IG5hbWU6c3RyaW5nIC0+IHN0cmluZyA9IFwiY2FtbF9yZWFkX2ZpbGVfY29udGVudFwiXG5cbmxldCB1cGRhdGVfZmlsZSB+bmFtZSB+Y29udGVudCA9XG4gIGxldCBvYyA9IG9wZW5fb3V0IG5hbWUgaW5cbiAgb3V0cHV0X3N0cmluZyBvYyBjb250ZW50O1xuICBjbG9zZV9vdXQgb2NcblxuZXh0ZXJuYWwgc2V0X2NoYW5uZWxfb3V0cHV0JyA6XG4gIG91dF9jaGFubmVsIC0+IChKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFjayAtPiB1bml0XG4gID0gXCJjYW1sX21sX3NldF9jaGFubmVsX291dHB1dFwiXG5cbmV4dGVybmFsIHNldF9jaGFubmVsX2lucHV0JyA6IGluX2NoYW5uZWwgLT4gKHVuaXQgLT4gc3RyaW5nKSBKcy5jYWxsYmFjayAtPiB1bml0XG4gID0gXCJjYW1sX21sX3NldF9jaGFubmVsX3JlZmlsbFwiXG5cbmxldCBzZXRfY2hhbm5lbF9mbHVzaGVyIChvdXRfY2hhbm5lbCA6IG91dF9jaGFubmVsKSAoZiA6IHN0cmluZyAtPiB1bml0KSA9XG4gIGxldCBmJyA6IChKcy5qc19zdHJpbmcgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFjayA9XG4gICAgSnMud3JhcF9jYWxsYmFjayAoZnVuIHMgLT4gZiAoSnMudG9fYnl0ZXN0cmluZyBzKSlcbiAgaW5cbiAgc2V0X2NoYW5uZWxfb3V0cHV0JyBvdXRfY2hhbm5lbCBmJ1xuXG5sZXQgc2V0X2NoYW5uZWxfZmlsbGVyIChpbl9jaGFubmVsIDogaW5fY2hhbm5lbCkgKGYgOiB1bml0IC0+IHN0cmluZykgPVxuICBsZXQgZicgOiAodW5pdCAtPiBzdHJpbmcpIEpzLmNhbGxiYWNrID0gSnMud3JhcF9jYWxsYmFjayBmIGluXG4gIHNldF9jaGFubmVsX2lucHV0JyBpbl9jaGFubmVsIGYnXG5cbmV4dGVybmFsIG1vdW50X3BvaW50IDogdW5pdCAtPiBzdHJpbmcgbGlzdCA9IFwiY2FtbF9saXN0X21vdW50X3BvaW50XCJcblxuZXh0ZXJuYWwgbW91bnRfYXV0b2xvYWQgOlxuICBzdHJpbmcgLT4gKHN0cmluZyAtPiBzdHJpbmcgLT4gc3RyaW5nIG9wdGlvbikgSnMuY2FsbGJhY2sgLT4gdW5pdFxuICA9IFwiY2FtbF9tb3VudF9hdXRvbG9hZFwiXG5cbmV4dGVybmFsIHVubW91bnQgOiBzdHJpbmcgLT4gdW5pdCA9IFwiY2FtbF91bm1vdW50XCJcblxubGV0IG1vdW50IH5wYXRoIGYgPVxuICBtb3VudF9hdXRvbG9hZCBwYXRoIChKcy53cmFwX2NhbGxiYWNrIChmdW4gcHJlZml4IHBhdGggLT4gZiB+cHJlZml4IH5wYXRoKSlcblxubGV0IHVubW91bnQgfnBhdGggPSB1bm1vdW50IHBhdGhcblxubGV0IGpzX29mX29jYW1sX3ZlcnNpb24gPVxuICBpZiBTdHJpbmcuZXF1YWwgTGliX3ZlcnNpb24uZ2l0X3ZlcnNpb24gXCJcIlxuICB0aGVuIExpYl92ZXJzaW9uLnNcbiAgZWxzZSBMaWJfdmVyc2lvbi5zIF4gXCIrXCIgXiBMaWJfdmVyc2lvbi5naXRfdmVyc2lvblxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxOSBBbGV4YW5kZXIgWWFuaW5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyU2l6ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpbmxpbmVTaXplIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJsb2NrU2l6ZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcmVzaXplT2JzZXJ2ZXJFbnRyeSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0YXJnZXQgOiBEb20ubm9kZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50UmVjdCA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYm9yZGVyQm94U2l6ZSA6IHJlc2l6ZU9ic2VydmVyU2l6ZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNvbnRlbnRCb3hTaXplIDogcmVzaXplT2JzZXJ2ZXJTaXplIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJlc2l6ZU9ic2VydmVyT3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBib3ggOiBKcy5qc19zdHJpbmcgSnMudCBKcy53cml0ZW9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSByZXNpemVPYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBvYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2Qgb2JzZXJ2ZV93aXRoT3B0aW9ucyA6XG4gICAgICAjRG9tLm5vZGUgSnMudCAtPiByZXNpemVPYnNlcnZlck9wdGlvbnMgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB1bm9ic2VydmUgOiAjRG9tLm5vZGUgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfcmVzaXplX29ic2VydmVyX29wdGlvbnMgKCkgOiByZXNpemVPYnNlcnZlck9wdGlvbnMgSnMudCA9IEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgcmVzaXplT2JzZXJ2ZXIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1Jlc2l6ZU9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCByZXNpemVPYnNlcnZlclxuXG5sZXQgcmVzaXplT2JzZXJ2ZXIgOlxuICAgICggICAocmVzaXplT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gcmVzaXplT2JzZXJ2ZXIgSnMudCAtPiB1bml0KVxuICAgICAgICBKcy5jYWxsYmFja1xuICAgICAtPiByZXNpemVPYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIHJlc2l6ZU9ic2VydmVyXG5cbmxldCBvYnNlcnZlXG4gICAgfihub2RlIDogI0RvbS5ub2RlIEpzLnQpXG4gICAgfihmIDogcmVzaXplT2JzZXJ2ZXJFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gcmVzaXplT2JzZXJ2ZXIgSnMudCAtPiB1bml0KVxuICAgID8oYm94IDogSnMuanNfc3RyaW5nIEpzLnQgb3B0aW9uKVxuICAgICgpIDogcmVzaXplT2JzZXJ2ZXIgSnMudCA9XG4gIGxldCBvYnMgPSBuZXclanMgcmVzaXplT2JzZXJ2ZXIgKEpzLndyYXBfY2FsbGJhY2sgZikgaW5cbiAgKG1hdGNoIGJveCB3aXRoXG4gIHwgTm9uZSAtPiBvYnMjI29ic2VydmUgbm9kZVxuICB8IFNvbWUgYm94IC0+XG4gICAgICBsZXQgb3B0cyA9IGVtcHR5X3Jlc2l6ZV9vYnNlcnZlcl9vcHRpb25zICgpIGluXG4gICAgICBvcHRzIyMuYm94IDo9IGJveDtcbiAgICAgIG9icyMjb2JzZXJ2ZV93aXRoT3B0aW9ucyBub2RlIG9wdHMpO1xuICBvYnNcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjEgUGhpbGlwIFdoaXRlXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbm9wZW4hIEltcG9ydFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGVudHJ5VHlwZXMgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlRW50cnkgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbmFtZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBlbnRyeVR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3RhcnRUaW1lIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGR1cmF0aW9uIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBwZXJmb3JtYW5jZU9ic2VydmVyRW50cnlMaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGdldEVudHJpZXMgOiBwZXJmb3JtYW5jZUVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBlcmZvcm1hbmNlT2JzZXJ2ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgb2JzZXJ2ZSA6IHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IEpzLnQgLT4gdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgZGlzY29ubmVjdCA6IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHRha2VSZWNvcmRzIDogcGVyZm9ybWFuY2VFbnRyeSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxubGV0IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX1BlcmZvcm1hbmNlT2JzZXJ2ZXJcblxubGV0IGlzX3N1cHBvcnRlZCAoKSA9IEpzLk9wdGRlZi50ZXN0IHBlcmZvcm1hbmNlT2JzZXJ2ZXJcblxubGV0IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgOlxuICAgICggICAocGVyZm9ybWFuY2VPYnNlcnZlckVudHJ5TGlzdCBKcy50IC0+IHBlcmZvcm1hbmNlT2JzZXJ2ZXIgSnMudCAtPiB1bml0KSBKcy5jYWxsYmFja1xuICAgICAtPiBwZXJmb3JtYW5jZU9ic2VydmVyIEpzLnQpXG4gICAgSnMuY29uc3RyID1cbiAgcGVyZm9ybWFuY2VPYnNlcnZlclxuXG5sZXQgb2JzZXJ2ZSB+ZW50cnlfdHlwZXMgfmYgPVxuICBsZXQgZW50cnlfdHlwZXMgPSBlbnRyeV90eXBlcyB8PiBMaXN0Lm1hcCBKcy5zdHJpbmcgfD4gQXJyYXkub2ZfbGlzdCB8PiBKcy5hcnJheSBpblxuICBsZXQgcGVyZm9ybWFuY2Vfb2JzZXJ2ZXJfaW5pdCA6IHBlcmZvcm1hbmNlT2JzZXJ2ZXJJbml0IEpzLnQgPSBKcy5VbnNhZmUub2JqIFt8fF0gaW5cbiAgbGV0ICgpID0gcGVyZm9ybWFuY2Vfb2JzZXJ2ZXJfaW5pdCMjLmVudHJ5VHlwZXMgOj0gZW50cnlfdHlwZXMgaW5cbiAgbGV0IG9icyA9IG5ldyVqcyBwZXJmb3JtYW5jZU9ic2VydmVyIChKcy53cmFwX2NhbGxiYWNrIGYpIGluXG4gIGxldCAoKSA9IG9icyMjb2JzZXJ2ZSBwZXJmb3JtYW5jZV9vYnNlcnZlcl9pbml0IGluXG4gIG9ic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNSBTdMOpcGhhbmUgTGVncmFuZFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxub3BlbiEgSW1wb3J0XG5cbmNsYXNzIHR5cGUgbXV0YXRpb25PYnNlcnZlckluaXQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY2hpbGRMaXN0IDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZXMgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgY2hhcmFjdGVyRGF0YSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdWJ0cmVlIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGF0dHJpYnV0ZU9sZFZhbHVlIDogYm9vbCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNoYXJhY3RlckRhdGFPbGRWYWx1ZSA6IGJvb2wgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVGaWx0ZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIG11dGF0aW9uUmVjb3JkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHRhcmdldCA6IERvbS5ub2RlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFkZGVkTm9kZXMgOiBEb20ubm9kZSBEb20ubm9kZUxpc3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVtb3ZlZE5vZGVzIDogRG9tLm5vZGUgRG9tLm5vZGVMaXN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXZpb3VzU2libGluZyA6IERvbS5ub2RlIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBuZXh0U2libGluZyA6IERvbS5ub2RlIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhdHRyaWJ1dGVOYW1lc3BhY2UgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG9sZFZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgbXV0YXRpb25PYnNlcnZlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBvYnNlcnZlIDogI0RvbS5ub2RlIEpzLnQgLT4gbXV0YXRpb25PYnNlcnZlckluaXQgSnMudCAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCBkaXNjb25uZWN0IDogdW5pdCBKcy5tZXRoXG5cbiAgICBtZXRob2QgdGFrZVJlY29yZHMgOiBtdXRhdGlvblJlY29yZCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMubWV0aFxuICBlbmRcblxubGV0IGVtcHR5X211dGF0aW9uX29ic2VydmVyX2luaXQgKCkgOiBtdXRhdGlvbk9ic2VydmVySW5pdCBKcy50ID0gSnMuVW5zYWZlLm9iaiBbfHxdXG5cbmxldCBtdXRhdGlvbk9ic2VydmVyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9NdXRhdGlvbk9ic2VydmVyXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBtdXRhdGlvbk9ic2VydmVyXG5cbmxldCBtdXRhdGlvbk9ic2VydmVyIDpcbiAgICAoICAgKG11dGF0aW9uUmVjb3JkIEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiBtdXRhdGlvbk9ic2VydmVyIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgLT4gbXV0YXRpb25PYnNlcnZlciBKcy50KVxuICAgIEpzLmNvbnN0ciA9XG4gIG11dGF0aW9uT2JzZXJ2ZXJcblxubGV0IG9ic2VydmVcbiAgICB+KG5vZGUgOiAjRG9tLm5vZGUgSnMudClcbiAgICB+KGYgOiBtdXRhdGlvblJlY29yZCBKcy50IEpzLmpzX2FycmF5IEpzLnQgLT4gbXV0YXRpb25PYnNlcnZlciBKcy50IC0+IHVuaXQpXG4gICAgPyhjaGlsZF9saXN0IDogYm9vbCBvcHRpb24pXG4gICAgPyhhdHRyaWJ1dGVzIDogYm9vbCBvcHRpb24pXG4gICAgPyhjaGFyYWN0ZXJfZGF0YSA6IGJvb2wgb3B0aW9uKVxuICAgID8oc3VidHJlZSA6IGJvb2wgb3B0aW9uKVxuICAgID8oYXR0cmlidXRlX29sZF92YWx1ZSA6IGJvb2wgb3B0aW9uKVxuICAgID8oY2hhcmFjdGVyX2RhdGFfb2xkX3ZhbHVlIDogYm9vbCBvcHRpb24pXG4gICAgPyhhdHRyaWJ1dGVfZmlsdGVyIDogSnMuanNfc3RyaW5nIEpzLnQgbGlzdCBvcHRpb24pXG4gICAgKCkgOiBtdXRhdGlvbk9ic2VydmVyIEpzLnQgPVxuICBsZXQgb3B0X2l0ZXIgeCBmID1cbiAgICBtYXRjaCB4IHdpdGhcbiAgICB8IE5vbmUgLT4gKClcbiAgICB8IFNvbWUgeCAtPiBmIHhcbiAgaW5cbiAgbGV0IG9icyA9IG5ldyVqcyBtdXRhdGlvbk9ic2VydmVyIChKcy53cmFwX2NhbGxiYWNrIGYpIGluXG4gIGxldCBjZmcgPSBlbXB0eV9tdXRhdGlvbl9vYnNlcnZlcl9pbml0ICgpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGNoaWxkX2xpc3QgKGZ1biB2IC0+IGNmZyMjLmNoaWxkTGlzdCA6PSB2KSBpblxuICBsZXQgKCkgPSBvcHRfaXRlciBhdHRyaWJ1dGVzIChmdW4gdiAtPiBjZmcjIy5hdHRyaWJ1dGVzIDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIGNoYXJhY3Rlcl9kYXRhIChmdW4gdiAtPiBjZmcjIy5jaGFyYWN0ZXJEYXRhIDo9IHYpIGluXG4gIGxldCAoKSA9IG9wdF9pdGVyIHN1YnRyZWUgKGZ1biB2IC0+IGNmZyMjLnN1YnRyZWUgOj0gdikgaW5cbiAgbGV0ICgpID0gb3B0X2l0ZXIgYXR0cmlidXRlX29sZF92YWx1ZSAoZnVuIHYgLT4gY2ZnIyMuYXR0cmlidXRlT2xkVmFsdWUgOj0gdikgaW5cbiAgbGV0ICgpID1cbiAgICBvcHRfaXRlciBjaGFyYWN0ZXJfZGF0YV9vbGRfdmFsdWUgKGZ1biB2IC0+IGNmZyMjLmNoYXJhY3RlckRhdGFPbGRWYWx1ZSA6PSB2KVxuICBpblxuICBsZXQgKCkgPVxuICAgIG9wdF9pdGVyIGF0dHJpYnV0ZV9maWx0ZXIgKGZ1biBsIC0+XG4gICAgICAgIGNmZyMjLmF0dHJpYnV0ZUZpbHRlciA6PSBKcy5hcnJheSAoQXJyYXkub2ZfbGlzdCBsKSlcbiAgaW5cbiAgbGV0ICgpID0gb2JzIyNvYnNlcnZlIG5vZGUgY2ZnIGluXG4gIG9ic1xuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCBQaWVycmUgQ2hhbWJhcnQgMjAxMi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG50eXBlICdhIHQgPSA8ID4gSnMudFxuXG5sZXQgb2JqID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9PYmplY3RcblxubGV0IGNyZWF0ZSAoKSA6ICdhIHQgPSBuZXclanMgb2JqXG5cbmxldCBhZGQgKHQgOiAnYSB0KSAoayA6IEpzLmpzX3N0cmluZyBKcy50KSAodiA6ICdhKSA9XG4gICgqICdfJyBpcyBhZGRlZCB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvYmplY3RzIG1ldGhvZHMgKilcbiAgSnMuVW5zYWZlLnNldCB0IChrIyNjb25jYXQgKEpzLnN0cmluZyBcIl9cIikpIHZcblxubGV0IHJlbW92ZSAodCA6ICdhIHQpIChrIDogSnMuanNfc3RyaW5nIEpzLnQpID1cbiAgSnMuVW5zYWZlLmRlbGV0ZSB0IChrIyNjb25jYXQgKEpzLnN0cmluZyBcIl9cIikpXG5cbmxldCBmaW5kICh0IDogJ2EgdCkgKGsgOiBKcy5qc19zdHJpbmcgSnMudCkgOiAnYSBKcy5PcHRkZWYudCA9XG4gIEpzLlVuc2FmZS5nZXQgdCAoayMjY29uY2F0IChKcy5zdHJpbmcgXCJfXCIpKVxuXG5sZXQga2V5cyAodCA6ICdhIHQpIDogSnMuanNfc3RyaW5nIEpzLnQgbGlzdCA9XG4gIGxldCBrZXlfYXJyYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50ID1cbiAgICBKcy5VbnNhZmUuZ2xvYmFsIyMuX09iamVjdCMja2V5cyB0XG4gIGluXG4gIGxldCByZXMgPSByZWYgW10gaW5cbiAgZm9yIGkgPSAwIHRvIHByZWQga2V5X2FycmF5IyMubGVuZ3RoIGRvXG4gICAgbGV0IGtleSA9XG4gICAgICBKcy5PcHRkZWYuZ2V0IChKcy5hcnJheV9nZXQga2V5X2FycmF5IGkpIChmdW4gKCkgLT4gZmFpbHdpdGggXCJKc3RhYmxlLmtleXNcIilcbiAgICBpblxuICAgIHJlcyA6PSBrZXkjI3N1YnN0cmluZyAwIChwcmVkIGtleSMjLmxlbmd0aCkgOjogIXJlc1xuICBkb25lO1xuICBMaXN0LnJldiAhcmVzXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IEdyw6lnb2lyZSBIZW5yeSAyMDEwLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBqc29uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBhcnNlIDogJ2EuIGpzX3N0cmluZyB0IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBwYXJzZV8gOlxuICAgICAgJ2EgJ2IgJ2MgJ2QuIGpzX3N0cmluZyB0IC0+ICgnYiB0LCBqc19zdHJpbmcgdCAtPiAnYyAtPiAnZCkgbWV0aF9jYWxsYmFjayAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2Qgc3RyaW5naWZ5IDogJ2EuICdhIC0+IGpzX3N0cmluZyB0IG1ldGhcblxuICAgIG1ldGhvZCBzdHJpbmdpZnlfIDpcbiAgICAgICdhICdiICdjICdkLiAnYSAtPiAoJ2IsIGpzX3N0cmluZyB0IC0+ICdjIC0+ICdkKSBtZXRoX2NhbGxiYWNrIC0+IGpzX3N0cmluZyB0IG1ldGhcbiAgZW5kXG5cbmxldCBqc29uIDoganNvbiBKcy50ID0gVW5zYWZlLmdsb2JhbCMjLl9KU09OXG5cbmxldCBpbnB1dF9yZXZpdmVyID1cbiAgbGV0IHJldml2ZXIgX3RoaXMgX2tleSAodmFsdWUgOiBVbnNhZmUuYW55KSA6IE9iai50ID1cbiAgICBpZiB0eXBlb2YgdmFsdWUgPT0gc3RyaW5nIFwic3RyaW5nXCJcbiAgICB0aGVuIE9iai5yZXByICh0b19ieXRlc3RyaW5nIChVbnNhZmUuY29lcmNlIHZhbHVlKSlcbiAgICBlbHNlIGlmIGluc3RhbmNlb2YgdmFsdWUgSnMuYXJyYXlfZW1wdHlcbiAgICAgICAgICAgICYmIChVbnNhZmUuY29lcmNlIHZhbHVlKSMjLmxlbmd0aCA9PSA0XG4gICAgICAgICAgICAmJiBVbnNhZmUuZ2V0IHZhbHVlIDAgPT0gMjU1XG4gICAgdGhlblxuICAgICAgT2JqLnJlcHJcbiAgICAgICAgKEpzb29fcnVudGltZS5JbnQ2NC5jcmVhdGVfaW50NjRfbG9fbWlfaGlcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMSlcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMilcbiAgICAgICAgICAgKFVuc2FmZS5nZXQgdmFsdWUgMykpXG4gICAgZWxzZSBPYmoucmVwciB2YWx1ZVxuICBpblxuICB3cmFwX21ldGhfY2FsbGJhY2sgcmV2aXZlclxuXG5sZXQgdW5zYWZlX2lucHV0IHMgPSBqc29uIyNwYXJzZV8gcyBpbnB1dF9yZXZpdmVyXG5cbmNsYXNzIHR5cGUgb2JqID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbnN0cnVjdG9yIDogJ2EuICdhIGNvbnN0ciBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbWxJbnQ2NF9jb25zdHIgPVxuICBsZXQgZHVtbXlfaW50NjQgPSAxTCBpblxuICBsZXQgZHVtbXlfb2JqIDogb2JqIHQgPSBPYmoubWFnaWMgZHVtbXlfaW50NjQgaW5cbiAgZHVtbXlfb2JqIyMuY29uc3RydWN0b3JcblxubGV0IG91dHB1dF9yZXZpdmVyIF9rZXkgKHZhbHVlIDogVW5zYWZlLmFueSkgOiBPYmoudCA9XG4gIGlmIE9iai50YWcgKE9iai5yZXByIHZhbHVlKSA9IE9iai5zdHJpbmdfdGFnXG4gIHRoZW4gT2JqLnJlcHIgKGJ5dGVzdHJpbmcgKE9iai5tYWdpYyB2YWx1ZSA6IHN0cmluZykpXG4gIGVsc2UgaWYgaW5zdGFuY2VvZiB2YWx1ZSBtbEludDY0X2NvbnN0clxuICB0aGVuXG4gICAgbGV0IHZhbHVlID0gVW5zYWZlLmNvZXJjZSB2YWx1ZSBpblxuICAgIE9iai5yZXByIChhcnJheSBbfCAyNTU7IHZhbHVlIyMubG87IHZhbHVlIyMubWk7IHZhbHVlIyMuaGkgfF0pXG4gIGVsc2UgT2JqLnJlcHIgdmFsdWVcblxubGV0IG91dHB1dCBvYmogPSBqc29uIyNzdHJpbmdpZnlfIG9iaiAoSnMud3JhcF9jYWxsYmFjayBvdXRwdXRfcmV2aXZlcilcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgUmFwaGHDq2wgUHJvdXN0XG4gKiBMYWJvcmF0b2lyZSBQUFMgLSBDTlJTIFVuaXZlcnNpdMOpIFBhcmlzIERpZGVyb3RcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcblxub3BlbiEgSW1wb3J0XG5cbm1vZHVsZSBDb2xvciA9IHN0cnVjdFxuICAoKiBUaGUgdHlwZSBvZiBDU1MgY29sb3JzLiBGaXJzdCBieSBuYW1lIGFuZCB0aGVuIGJ5IGNvbnN0cnVjdG9yLiAqKVxuICB0eXBlIG5hbWUgPVxuICAgIHwgQWxpY2VibHVlXG4gICAgfCBBbnRpcXVld2hpdGVcbiAgICB8IEFxdWFcbiAgICB8IEFxdWFtYXJpbmVcbiAgICB8IEF6dXJlXG4gICAgfCBCZWlnZVxuICAgIHwgQmlzcXVlXG4gICAgfCBCbGFja1xuICAgIHwgQmxhbmNoZWRhbG1vbmRcbiAgICB8IEJsdWVcbiAgICB8IEJsdWV2aW9sZXRcbiAgICB8IEJyb3duXG4gICAgfCBCdXJseXdvb2RcbiAgICB8IENhZGV0Ymx1ZVxuICAgIHwgQ2hhcnRyZXVzZVxuICAgIHwgQ2hvY29sYXRlXG4gICAgfCBDb3JhbFxuICAgIHwgQ29ybmZsb3dlcmJsdWVcbiAgICB8IENvcm5zaWxrXG4gICAgfCBDcmltc29uXG4gICAgfCBDeWFuXG4gICAgfCBEYXJrYmx1ZVxuICAgIHwgRGFya2N5YW5cbiAgICB8IERhcmtnb2xkZW5yb2RcbiAgICB8IERhcmtncmF5XG4gICAgfCBEYXJrZ3JlZW5cbiAgICB8IERhcmtncmV5XG4gICAgfCBEYXJra2hha2lcbiAgICB8IERhcmttYWdlbnRhXG4gICAgfCBEYXJrb2xpdmVncmVlblxuICAgIHwgRGFya29yYW5nZVxuICAgIHwgRGFya29yY2hpZFxuICAgIHwgRGFya3JlZFxuICAgIHwgRGFya3NhbG1vblxuICAgIHwgRGFya3NlYWdyZWVuXG4gICAgfCBEYXJrc2xhdGVibHVlXG4gICAgfCBEYXJrc2xhdGVncmF5XG4gICAgfCBEYXJrc2xhdGVncmV5XG4gICAgfCBEYXJrdHVycXVvaXNlXG4gICAgfCBEYXJrdmlvbGV0XG4gICAgfCBEZWVwcGlua1xuICAgIHwgRGVlcHNreWJsdWVcbiAgICB8IERpbWdyYXlcbiAgICB8IERpbWdyZXlcbiAgICB8IERvZGdlcmJsdWVcbiAgICB8IEZpcmVicmlja1xuICAgIHwgRmxvcmFsd2hpdGVcbiAgICB8IEZvcmVzdGdyZWVuXG4gICAgfCBGdWNoc2lhXG4gICAgfCBHYWluc2Jvcm9cbiAgICB8IEdob3N0d2hpdGVcbiAgICB8IEdvbGRcbiAgICB8IEdvbGRlbnJvZFxuICAgIHwgR3JheVxuICAgIHwgR3JleVxuICAgIHwgR3JlZW5cbiAgICB8IEdyZWVueWVsbG93XG4gICAgfCBIb25leWRld1xuICAgIHwgSG90cGlua1xuICAgIHwgSW5kaWFucmVkXG4gICAgfCBJbmRpZ29cbiAgICB8IEl2b3J5XG4gICAgfCBLaGFraVxuICAgIHwgTGF2ZW5kZXJcbiAgICB8IExhdmVuZGVyYmx1c2hcbiAgICB8IExhd25ncmVlblxuICAgIHwgTGVtb25jaGlmZm9uXG4gICAgfCBMaWdodGJsdWVcbiAgICB8IExpZ2h0Y29yYWxcbiAgICB8IExpZ2h0Y3lhblxuICAgIHwgTGlnaHRnb2xkZW5yb2R5ZWxsb3dcbiAgICB8IExpZ2h0Z3JheVxuICAgIHwgTGlnaHRncmVlblxuICAgIHwgTGlnaHRncmV5XG4gICAgfCBMaWdodHBpbmtcbiAgICB8IExpZ2h0c2FsbW9uXG4gICAgfCBMaWdodHNlYWdyZWVuXG4gICAgfCBMaWdodHNreWJsdWVcbiAgICB8IExpZ2h0c2xhdGVncmF5XG4gICAgfCBMaWdodHNsYXRlZ3JleVxuICAgIHwgTGlnaHRzdGVlbGJsdWVcbiAgICB8IExpZ2h0eWVsbG93XG4gICAgfCBMaW1lXG4gICAgfCBMaW1lZ3JlZW5cbiAgICB8IExpbmVuXG4gICAgfCBNYWdlbnRhXG4gICAgfCBNYXJvb25cbiAgICB8IE1lZGl1bWFxdWFtYXJpbmVcbiAgICB8IE1lZGl1bWJsdWVcbiAgICB8IE1lZGl1bW9yY2hpZFxuICAgIHwgTWVkaXVtcHVycGxlXG4gICAgfCBNZWRpdW1zZWFncmVlblxuICAgIHwgTWVkaXVtc2xhdGVibHVlXG4gICAgfCBNZWRpdW1zcHJpbmdncmVlblxuICAgIHwgTWVkaXVtdHVycXVvaXNlXG4gICAgfCBNZWRpdW12aW9sZXRyZWRcbiAgICB8IE1pZG5pZ2h0Ymx1ZVxuICAgIHwgTWludGNyZWFtXG4gICAgfCBNaXN0eXJvc2VcbiAgICB8IE1vY2Nhc2luXG4gICAgfCBOYXZham93aGl0ZVxuICAgIHwgTmF2eVxuICAgIHwgT2xkbGFjZVxuICAgIHwgT2xpdmVcbiAgICB8IE9saXZlZHJhYlxuICAgIHwgT3JhbmdlXG4gICAgfCBPcmFuZ2VyZWRcbiAgICB8IE9yY2hpZFxuICAgIHwgUGFsZWdvbGRlbnJvZFxuICAgIHwgUGFsZWdyZWVuXG4gICAgfCBQYWxldHVycXVvaXNlXG4gICAgfCBQYWxldmlvbGV0cmVkXG4gICAgfCBQYXBheWF3aGlwXG4gICAgfCBQZWFjaHB1ZmZcbiAgICB8IFBlcnVcbiAgICB8IFBpbmtcbiAgICB8IFBsdW1cbiAgICB8IFBvd2RlcmJsdWVcbiAgICB8IFB1cnBsZVxuICAgIHwgUmVkXG4gICAgfCBSb3N5YnJvd25cbiAgICB8IFJveWFsYmx1ZVxuICAgIHwgU2FkZGxlYnJvd25cbiAgICB8IFNhbG1vblxuICAgIHwgU2FuZHlicm93blxuICAgIHwgU2VhZ3JlZW5cbiAgICB8IFNlYXNoZWxsXG4gICAgfCBTaWVubmFcbiAgICB8IFNpbHZlclxuICAgIHwgU2t5Ymx1ZVxuICAgIHwgU2xhdGVibHVlXG4gICAgfCBTbGF0ZWdyYXlcbiAgICB8IFNsYXRlZ3JleVxuICAgIHwgU25vd1xuICAgIHwgU3ByaW5nZ3JlZW5cbiAgICB8IFN0ZWVsYmx1ZVxuICAgIHwgVGFuXG4gICAgfCBUZWFsXG4gICAgfCBUaGlzdGxlXG4gICAgfCBUb21hdG9cbiAgICB8IFR1cnF1b2lzZVxuICAgIHwgVmlvbGV0XG4gICAgfCBXaGVhdFxuICAgIHwgV2hpdGVcbiAgICB8IFdoaXRlc21va2VcbiAgICB8IFllbGxvd1xuICAgIHwgWWVsbG93Z3JlZW5cblxuICBsZXQgc3RyaW5nX29mX25hbWUgPSBmdW5jdGlvblxuICAgIHwgQWxpY2VibHVlIC0+IFwiYWxpY2VibHVlXCJcbiAgICB8IEFudGlxdWV3aGl0ZSAtPiBcImFudGlxdWV3aGl0ZVwiXG4gICAgfCBBcXVhIC0+IFwiYXF1YVwiXG4gICAgfCBBcXVhbWFyaW5lIC0+IFwiYXF1YW1hcmluZVwiXG4gICAgfCBBenVyZSAtPiBcImF6dXJlXCJcbiAgICB8IEJlaWdlIC0+IFwiYmVpZ2VcIlxuICAgIHwgQmlzcXVlIC0+IFwiYmlzcXVlXCJcbiAgICB8IEJsYWNrIC0+IFwiYmxhY2tcIlxuICAgIHwgQmxhbmNoZWRhbG1vbmQgLT4gXCJibGFuY2hlZGFsbW9uZFwiXG4gICAgfCBCbHVlIC0+IFwiYmx1ZVwiXG4gICAgfCBCbHVldmlvbGV0IC0+IFwiYmx1ZXZpb2xldFwiXG4gICAgfCBCcm93biAtPiBcImJyb3duXCJcbiAgICB8IEJ1cmx5d29vZCAtPiBcImJ1cmx5d29vZFwiXG4gICAgfCBDYWRldGJsdWUgLT4gXCJjYWRldGJsdWVcIlxuICAgIHwgQ2hhcnRyZXVzZSAtPiBcImNoYXJ0cmV1c2VcIlxuICAgIHwgQ2hvY29sYXRlIC0+IFwiY2hvY29sYXRlXCJcbiAgICB8IENvcmFsIC0+IFwiY29yYWxcIlxuICAgIHwgQ29ybmZsb3dlcmJsdWUgLT4gXCJjb3JuZmxvd2VyYmx1ZVwiXG4gICAgfCBDb3Juc2lsayAtPiBcImNvcm5zaWxrXCJcbiAgICB8IENyaW1zb24gLT4gXCJjcmltc29uXCJcbiAgICB8IEN5YW4gLT4gXCJjeWFuXCJcbiAgICB8IERhcmtibHVlIC0+IFwiZGFya2JsdWVcIlxuICAgIHwgRGFya2N5YW4gLT4gXCJkYXJrY3lhblwiXG4gICAgfCBEYXJrZ29sZGVucm9kIC0+IFwiZGFya2dvbGRlbnJvZFwiXG4gICAgfCBEYXJrZ3JheSAtPiBcImRhcmtncmF5XCJcbiAgICB8IERhcmtncmVlbiAtPiBcImRhcmtncmVlblwiXG4gICAgfCBEYXJrZ3JleSAtPiBcImRhcmtncmV5XCJcbiAgICB8IERhcmtraGFraSAtPiBcImRhcmtraGFraVwiXG4gICAgfCBEYXJrbWFnZW50YSAtPiBcImRhcmttYWdlbnRhXCJcbiAgICB8IERhcmtvbGl2ZWdyZWVuIC0+IFwiZGFya29saXZlZ3JlZW5cIlxuICAgIHwgRGFya29yYW5nZSAtPiBcImRhcmtvcmFuZ2VcIlxuICAgIHwgRGFya29yY2hpZCAtPiBcImRhcmtvcmNoaWRcIlxuICAgIHwgRGFya3JlZCAtPiBcImRhcmtyZWRcIlxuICAgIHwgRGFya3NhbG1vbiAtPiBcImRhcmtzYWxtb25cIlxuICAgIHwgRGFya3NlYWdyZWVuIC0+IFwiZGFya3NlYWdyZWVuXCJcbiAgICB8IERhcmtzbGF0ZWJsdWUgLT4gXCJkYXJrc2xhdGVibHVlXCJcbiAgICB8IERhcmtzbGF0ZWdyYXkgLT4gXCJkYXJrc2xhdGVncmF5XCJcbiAgICB8IERhcmtzbGF0ZWdyZXkgLT4gXCJkYXJrc2xhdGVncmV5XCJcbiAgICB8IERhcmt0dXJxdW9pc2UgLT4gXCJkYXJrdHVycXVvaXNlXCJcbiAgICB8IERhcmt2aW9sZXQgLT4gXCJkYXJrdmlvbGV0XCJcbiAgICB8IERlZXBwaW5rIC0+IFwiZGVlcHBpbmtcIlxuICAgIHwgRGVlcHNreWJsdWUgLT4gXCJkZWVwc2t5Ymx1ZVwiXG4gICAgfCBEaW1ncmF5IC0+IFwiZGltZ3JheVwiXG4gICAgfCBEaW1ncmV5IC0+IFwiZGltZ3JleVwiXG4gICAgfCBEb2RnZXJibHVlIC0+IFwiZG9kZ2VyYmx1ZVwiXG4gICAgfCBGaXJlYnJpY2sgLT4gXCJmaXJlYnJpY2tcIlxuICAgIHwgRmxvcmFsd2hpdGUgLT4gXCJmbG9yYWx3aGl0ZVwiXG4gICAgfCBGb3Jlc3RncmVlbiAtPiBcImZvcmVzdGdyZWVuXCJcbiAgICB8IEZ1Y2hzaWEgLT4gXCJmdWNoc2lhXCJcbiAgICB8IEdhaW5zYm9ybyAtPiBcImdhaW5zYm9yb1wiXG4gICAgfCBHaG9zdHdoaXRlIC0+IFwiZ2hvc3R3aGl0ZVwiXG4gICAgfCBHb2xkIC0+IFwiZ29sZFwiXG4gICAgfCBHb2xkZW5yb2QgLT4gXCJnb2xkZW5yb2RcIlxuICAgIHwgR3JheSAtPiBcImdyYXlcIlxuICAgIHwgR3JlZW4gLT4gXCJncmVlblwiXG4gICAgfCBHcmVlbnllbGxvdyAtPiBcImdyZWVueWVsbG93XCJcbiAgICB8IEdyZXkgLT4gXCJncmV5XCJcbiAgICB8IEhvbmV5ZGV3IC0+IFwiaG9uZXlkZXdcIlxuICAgIHwgSG90cGluayAtPiBcImhvdHBpbmtcIlxuICAgIHwgSW5kaWFucmVkIC0+IFwiaW5kaWFucmVkXCJcbiAgICB8IEluZGlnbyAtPiBcImluZGlnb1wiXG4gICAgfCBJdm9yeSAtPiBcIml2b3J5XCJcbiAgICB8IEtoYWtpIC0+IFwia2hha2lcIlxuICAgIHwgTGF2ZW5kZXIgLT4gXCJsYXZlbmRlclwiXG4gICAgfCBMYXZlbmRlcmJsdXNoIC0+IFwibGF2ZW5kZXJibHVzaFwiXG4gICAgfCBMYXduZ3JlZW4gLT4gXCJsYXduZ3JlZW5cIlxuICAgIHwgTGVtb25jaGlmZm9uIC0+IFwibGVtb25jaGlmZm9uXCJcbiAgICB8IExpZ2h0Ymx1ZSAtPiBcImxpZ2h0Ymx1ZVwiXG4gICAgfCBMaWdodGNvcmFsIC0+IFwibGlnaHRjb3JhbFwiXG4gICAgfCBMaWdodGN5YW4gLT4gXCJsaWdodGN5YW5cIlxuICAgIHwgTGlnaHRnb2xkZW5yb2R5ZWxsb3cgLT4gXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiXG4gICAgfCBMaWdodGdyYXkgLT4gXCJsaWdodGdyYXlcIlxuICAgIHwgTGlnaHRncmVlbiAtPiBcImxpZ2h0Z3JlZW5cIlxuICAgIHwgTGlnaHRncmV5IC0+IFwibGlnaHRncmV5XCJcbiAgICB8IExpZ2h0cGluayAtPiBcImxpZ2h0cGlua1wiXG4gICAgfCBMaWdodHNhbG1vbiAtPiBcImxpZ2h0c2FsbW9uXCJcbiAgICB8IExpZ2h0c2VhZ3JlZW4gLT4gXCJsaWdodHNlYWdyZWVuXCJcbiAgICB8IExpZ2h0c2t5Ymx1ZSAtPiBcImxpZ2h0c2t5Ymx1ZVwiXG4gICAgfCBMaWdodHNsYXRlZ3JheSAtPiBcImxpZ2h0c2xhdGVncmF5XCJcbiAgICB8IExpZ2h0c2xhdGVncmV5IC0+IFwibGlnaHRzbGF0ZWdyZXlcIlxuICAgIHwgTGlnaHRzdGVlbGJsdWUgLT4gXCJsaWdodHN0ZWVsYmx1ZVwiXG4gICAgfCBMaWdodHllbGxvdyAtPiBcImxpZ2h0eWVsbG93XCJcbiAgICB8IExpbWUgLT4gXCJsaW1lXCJcbiAgICB8IExpbWVncmVlbiAtPiBcImxpbWVncmVlblwiXG4gICAgfCBMaW5lbiAtPiBcImxpbmVuXCJcbiAgICB8IE1hZ2VudGEgLT4gXCJtYWdlbnRhXCJcbiAgICB8IE1hcm9vbiAtPiBcIm1hcm9vblwiXG4gICAgfCBNZWRpdW1hcXVhbWFyaW5lIC0+IFwibWVkaXVtYXF1YW1hcmluZVwiXG4gICAgfCBNZWRpdW1ibHVlIC0+IFwibWVkaXVtYmx1ZVwiXG4gICAgfCBNZWRpdW1vcmNoaWQgLT4gXCJtZWRpdW1vcmNoaWRcIlxuICAgIHwgTWVkaXVtcHVycGxlIC0+IFwibWVkaXVtcHVycGxlXCJcbiAgICB8IE1lZGl1bXNlYWdyZWVuIC0+IFwibWVkaXVtc2VhZ3JlZW5cIlxuICAgIHwgTWVkaXVtc2xhdGVibHVlIC0+IFwibWVkaXVtc2xhdGVibHVlXCJcbiAgICB8IE1lZGl1bXNwcmluZ2dyZWVuIC0+IFwibWVkaXVtc3ByaW5nZ3JlZW5cIlxuICAgIHwgTWVkaXVtdHVycXVvaXNlIC0+IFwibWVkaXVtdHVycXVvaXNlXCJcbiAgICB8IE1lZGl1bXZpb2xldHJlZCAtPiBcIm1lZGl1bXZpb2xldHJlZFwiXG4gICAgfCBNaWRuaWdodGJsdWUgLT4gXCJtaWRuaWdodGJsdWVcIlxuICAgIHwgTWludGNyZWFtIC0+IFwibWludGNyZWFtXCJcbiAgICB8IE1pc3R5cm9zZSAtPiBcIm1pc3R5cm9zZVwiXG4gICAgfCBNb2NjYXNpbiAtPiBcIm1vY2Nhc2luXCJcbiAgICB8IE5hdmFqb3doaXRlIC0+IFwibmF2YWpvd2hpdGVcIlxuICAgIHwgTmF2eSAtPiBcIm5hdnlcIlxuICAgIHwgT2xkbGFjZSAtPiBcIm9sZGxhY2VcIlxuICAgIHwgT2xpdmUgLT4gXCJvbGl2ZVwiXG4gICAgfCBPbGl2ZWRyYWIgLT4gXCJvbGl2ZWRyYWJcIlxuICAgIHwgT3JhbmdlIC0+IFwib3JhbmdlXCJcbiAgICB8IE9yYW5nZXJlZCAtPiBcIm9yYW5nZXJlZFwiXG4gICAgfCBPcmNoaWQgLT4gXCJvcmNoaWRcIlxuICAgIHwgUGFsZWdvbGRlbnJvZCAtPiBcInBhbGVnb2xkZW5yb2RcIlxuICAgIHwgUGFsZWdyZWVuIC0+IFwicGFsZWdyZWVuXCJcbiAgICB8IFBhbGV0dXJxdW9pc2UgLT4gXCJwYWxldHVycXVvaXNlXCJcbiAgICB8IFBhbGV2aW9sZXRyZWQgLT4gXCJwYWxldmlvbGV0cmVkXCJcbiAgICB8IFBhcGF5YXdoaXAgLT4gXCJwYXBheWF3aGlwXCJcbiAgICB8IFBlYWNocHVmZiAtPiBcInBlYWNocHVmZlwiXG4gICAgfCBQZXJ1IC0+IFwicGVydVwiXG4gICAgfCBQaW5rIC0+IFwicGlua1wiXG4gICAgfCBQbHVtIC0+IFwicGx1bVwiXG4gICAgfCBQb3dkZXJibHVlIC0+IFwicG93ZGVyYmx1ZVwiXG4gICAgfCBQdXJwbGUgLT4gXCJwdXJwbGVcIlxuICAgIHwgUmVkIC0+IFwicmVkXCJcbiAgICB8IFJvc3licm93biAtPiBcInJvc3licm93blwiXG4gICAgfCBSb3lhbGJsdWUgLT4gXCJyb3lhbGJsdWVcIlxuICAgIHwgU2FkZGxlYnJvd24gLT4gXCJzYWRkbGVicm93blwiXG4gICAgfCBTYWxtb24gLT4gXCJzYWxtb25cIlxuICAgIHwgU2FuZHlicm93biAtPiBcInNhbmR5YnJvd25cIlxuICAgIHwgU2VhZ3JlZW4gLT4gXCJzZWFncmVlblwiXG4gICAgfCBTZWFzaGVsbCAtPiBcInNlYXNoZWxsXCJcbiAgICB8IFNpZW5uYSAtPiBcInNpZW5uYVwiXG4gICAgfCBTaWx2ZXIgLT4gXCJzaWx2ZXJcIlxuICAgIHwgU2t5Ymx1ZSAtPiBcInNreWJsdWVcIlxuICAgIHwgU2xhdGVibHVlIC0+IFwic2xhdGVibHVlXCJcbiAgICB8IFNsYXRlZ3JheSAtPiBcInNsYXRlZ3JheVwiXG4gICAgfCBTbGF0ZWdyZXkgLT4gXCJzbGF0ZWdyZXlcIlxuICAgIHwgU25vdyAtPiBcInNub3dcIlxuICAgIHwgU3ByaW5nZ3JlZW4gLT4gXCJzcHJpbmdncmVlblwiXG4gICAgfCBTdGVlbGJsdWUgLT4gXCJzdGVlbGJsdWVcIlxuICAgIHwgVGFuIC0+IFwidGFuXCJcbiAgICB8IFRlYWwgLT4gXCJ0ZWFsXCJcbiAgICB8IFRoaXN0bGUgLT4gXCJ0aGlzdGxlXCJcbiAgICB8IFRvbWF0byAtPiBcInRvbWF0b1wiXG4gICAgfCBUdXJxdW9pc2UgLT4gXCJ0dXJxdW9pc2VcIlxuICAgIHwgVmlvbGV0IC0+IFwidmlvbGV0XCJcbiAgICB8IFdoZWF0IC0+IFwid2hlYXRcIlxuICAgIHwgV2hpdGUgLT4gXCJ3aGl0ZVwiXG4gICAgfCBXaGl0ZXNtb2tlIC0+IFwid2hpdGVzbW9rZVwiXG4gICAgfCBZZWxsb3cgLT4gXCJ5ZWxsb3dcIlxuICAgIHwgWWVsbG93Z3JlZW4gLT4gXCJ5ZWxsb3dncmVlblwiXG5cbiAgbGV0IG5hbWVfb2Zfc3RyaW5nID0gZnVuY3Rpb25cbiAgICB8IFwiYWxpY2VibHVlXCIgLT4gQWxpY2VibHVlXG4gICAgfCBcImFudGlxdWV3aGl0ZVwiIC0+IEFudGlxdWV3aGl0ZVxuICAgIHwgXCJhcXVhXCIgLT4gQXF1YVxuICAgIHwgXCJhcXVhbWFyaW5lXCIgLT4gQXF1YW1hcmluZVxuICAgIHwgXCJhenVyZVwiIC0+IEF6dXJlXG4gICAgfCBcImJlaWdlXCIgLT4gQmVpZ2VcbiAgICB8IFwiYmlzcXVlXCIgLT4gQmlzcXVlXG4gICAgfCBcImJsYWNrXCIgLT4gQmxhY2tcbiAgICB8IFwiYmxhbmNoZWRhbG1vbmRcIiAtPiBCbGFuY2hlZGFsbW9uZFxuICAgIHwgXCJibHVlXCIgLT4gQmx1ZVxuICAgIHwgXCJibHVldmlvbGV0XCIgLT4gQmx1ZXZpb2xldFxuICAgIHwgXCJicm93blwiIC0+IEJyb3duXG4gICAgfCBcImJ1cmx5d29vZFwiIC0+IEJ1cmx5d29vZFxuICAgIHwgXCJjYWRldGJsdWVcIiAtPiBDYWRldGJsdWVcbiAgICB8IFwiY2hhcnRyZXVzZVwiIC0+IENoYXJ0cmV1c2VcbiAgICB8IFwiY2hvY29sYXRlXCIgLT4gQ2hvY29sYXRlXG4gICAgfCBcImNvcmFsXCIgLT4gQ29yYWxcbiAgICB8IFwiY29ybmZsb3dlcmJsdWVcIiAtPiBDb3JuZmxvd2VyYmx1ZVxuICAgIHwgXCJjb3Juc2lsa1wiIC0+IENvcm5zaWxrXG4gICAgfCBcImNyaW1zb25cIiAtPiBDcmltc29uXG4gICAgfCBcImN5YW5cIiAtPiBDeWFuXG4gICAgfCBcImRhcmtibHVlXCIgLT4gRGFya2JsdWVcbiAgICB8IFwiZGFya2N5YW5cIiAtPiBEYXJrY3lhblxuICAgIHwgXCJkYXJrZ29sZGVucm9kXCIgLT4gRGFya2dvbGRlbnJvZFxuICAgIHwgXCJkYXJrZ3JheVwiIC0+IERhcmtncmF5XG4gICAgfCBcImRhcmtncmVlblwiIC0+IERhcmtncmVlblxuICAgIHwgXCJkYXJrZ3JleVwiIC0+IERhcmtncmV5XG4gICAgfCBcImRhcmtraGFraVwiIC0+IERhcmtraGFraVxuICAgIHwgXCJkYXJrbWFnZW50YVwiIC0+IERhcmttYWdlbnRhXG4gICAgfCBcImRhcmtvbGl2ZWdyZWVuXCIgLT4gRGFya29saXZlZ3JlZW5cbiAgICB8IFwiZGFya29yYW5nZVwiIC0+IERhcmtvcmFuZ2VcbiAgICB8IFwiZGFya29yY2hpZFwiIC0+IERhcmtvcmNoaWRcbiAgICB8IFwiZGFya3JlZFwiIC0+IERhcmtyZWRcbiAgICB8IFwiZGFya3NhbG1vblwiIC0+IERhcmtzYWxtb25cbiAgICB8IFwiZGFya3NlYWdyZWVuXCIgLT4gRGFya3NlYWdyZWVuXG4gICAgfCBcImRhcmtzbGF0ZWJsdWVcIiAtPiBEYXJrc2xhdGVibHVlXG4gICAgfCBcImRhcmtzbGF0ZWdyYXlcIiAtPiBEYXJrc2xhdGVncmF5XG4gICAgfCBcImRhcmtzbGF0ZWdyZXlcIiAtPiBEYXJrc2xhdGVncmV5XG4gICAgfCBcImRhcmt0dXJxdW9pc2VcIiAtPiBEYXJrdHVycXVvaXNlXG4gICAgfCBcImRhcmt2aW9sZXRcIiAtPiBEYXJrdmlvbGV0XG4gICAgfCBcImRlZXBwaW5rXCIgLT4gRGVlcHBpbmtcbiAgICB8IFwiZGVlcHNreWJsdWVcIiAtPiBEZWVwc2t5Ymx1ZVxuICAgIHwgXCJkaW1ncmF5XCIgLT4gRGltZ3JheVxuICAgIHwgXCJkaW1ncmV5XCIgLT4gRGltZ3JleVxuICAgIHwgXCJkb2RnZXJibHVlXCIgLT4gRG9kZ2VyYmx1ZVxuICAgIHwgXCJmaXJlYnJpY2tcIiAtPiBGaXJlYnJpY2tcbiAgICB8IFwiZmxvcmFsd2hpdGVcIiAtPiBGbG9yYWx3aGl0ZVxuICAgIHwgXCJmb3Jlc3RncmVlblwiIC0+IEZvcmVzdGdyZWVuXG4gICAgfCBcImZ1Y2hzaWFcIiAtPiBGdWNoc2lhXG4gICAgfCBcImdhaW5zYm9yb1wiIC0+IEdhaW5zYm9yb1xuICAgIHwgXCJnaG9zdHdoaXRlXCIgLT4gR2hvc3R3aGl0ZVxuICAgIHwgXCJnb2xkXCIgLT4gR29sZFxuICAgIHwgXCJnb2xkZW5yb2RcIiAtPiBHb2xkZW5yb2RcbiAgICB8IFwiZ3JheVwiIC0+IEdyYXlcbiAgICB8IFwiZ3JlZW5cIiAtPiBHcmVlblxuICAgIHwgXCJncmVlbnllbGxvd1wiIC0+IEdyZWVueWVsbG93XG4gICAgfCBcImdyZXlcIiAtPiBHcmV5XG4gICAgfCBcImhvbmV5ZGV3XCIgLT4gSG9uZXlkZXdcbiAgICB8IFwiaG90cGlua1wiIC0+IEhvdHBpbmtcbiAgICB8IFwiaW5kaWFucmVkXCIgLT4gSW5kaWFucmVkXG4gICAgfCBcImluZGlnb1wiIC0+IEluZGlnb1xuICAgIHwgXCJpdm9yeVwiIC0+IEl2b3J5XG4gICAgfCBcImtoYWtpXCIgLT4gS2hha2lcbiAgICB8IFwibGF2ZW5kZXJcIiAtPiBMYXZlbmRlclxuICAgIHwgXCJsYXZlbmRlcmJsdXNoXCIgLT4gTGF2ZW5kZXJibHVzaFxuICAgIHwgXCJsYXduZ3JlZW5cIiAtPiBMYXduZ3JlZW5cbiAgICB8IFwibGVtb25jaGlmZm9uXCIgLT4gTGVtb25jaGlmZm9uXG4gICAgfCBcImxpZ2h0Ymx1ZVwiIC0+IExpZ2h0Ymx1ZVxuICAgIHwgXCJsaWdodGNvcmFsXCIgLT4gTGlnaHRjb3JhbFxuICAgIHwgXCJsaWdodGN5YW5cIiAtPiBMaWdodGN5YW5cbiAgICB8IFwibGlnaHRnb2xkZW5yb2R5ZWxsb3dcIiAtPiBMaWdodGdvbGRlbnJvZHllbGxvd1xuICAgIHwgXCJsaWdodGdyYXlcIiAtPiBMaWdodGdyYXlcbiAgICB8IFwibGlnaHRncmVlblwiIC0+IExpZ2h0Z3JlZW5cbiAgICB8IFwibGlnaHRncmV5XCIgLT4gTGlnaHRncmV5XG4gICAgfCBcImxpZ2h0cGlua1wiIC0+IExpZ2h0cGlua1xuICAgIHwgXCJsaWdodHNhbG1vblwiIC0+IExpZ2h0c2FsbW9uXG4gICAgfCBcImxpZ2h0c2VhZ3JlZW5cIiAtPiBMaWdodHNlYWdyZWVuXG4gICAgfCBcImxpZ2h0c2t5Ymx1ZVwiIC0+IExpZ2h0c2t5Ymx1ZVxuICAgIHwgXCJsaWdodHNsYXRlZ3JheVwiIC0+IExpZ2h0c2xhdGVncmF5XG4gICAgfCBcImxpZ2h0c2xhdGVncmV5XCIgLT4gTGlnaHRzbGF0ZWdyZXlcbiAgICB8IFwibGlnaHRzdGVlbGJsdWVcIiAtPiBMaWdodHN0ZWVsYmx1ZVxuICAgIHwgXCJsaWdodHllbGxvd1wiIC0+IExpZ2h0eWVsbG93XG4gICAgfCBcImxpbWVcIiAtPiBMaW1lXG4gICAgfCBcImxpbWVncmVlblwiIC0+IExpbWVncmVlblxuICAgIHwgXCJsaW5lblwiIC0+IExpbmVuXG4gICAgfCBcIm1hZ2VudGFcIiAtPiBNYWdlbnRhXG4gICAgfCBcIm1hcm9vblwiIC0+IE1hcm9vblxuICAgIHwgXCJtZWRpdW1hcXVhbWFyaW5lXCIgLT4gTWVkaXVtYXF1YW1hcmluZVxuICAgIHwgXCJtZWRpdW1ibHVlXCIgLT4gTWVkaXVtYmx1ZVxuICAgIHwgXCJtZWRpdW1vcmNoaWRcIiAtPiBNZWRpdW1vcmNoaWRcbiAgICB8IFwibWVkaXVtcHVycGxlXCIgLT4gTWVkaXVtcHVycGxlXG4gICAgfCBcIm1lZGl1bXNlYWdyZWVuXCIgLT4gTWVkaXVtc2VhZ3JlZW5cbiAgICB8IFwibWVkaXVtc2xhdGVibHVlXCIgLT4gTWVkaXVtc2xhdGVibHVlXG4gICAgfCBcIm1lZGl1bXNwcmluZ2dyZWVuXCIgLT4gTWVkaXVtc3ByaW5nZ3JlZW5cbiAgICB8IFwibWVkaXVtdHVycXVvaXNlXCIgLT4gTWVkaXVtdHVycXVvaXNlXG4gICAgfCBcIm1lZGl1bXZpb2xldHJlZFwiIC0+IE1lZGl1bXZpb2xldHJlZFxuICAgIHwgXCJtaWRuaWdodGJsdWVcIiAtPiBNaWRuaWdodGJsdWVcbiAgICB8IFwibWludGNyZWFtXCIgLT4gTWludGNyZWFtXG4gICAgfCBcIm1pc3R5cm9zZVwiIC0+IE1pc3R5cm9zZVxuICAgIHwgXCJtb2NjYXNpblwiIC0+IE1vY2Nhc2luXG4gICAgfCBcIm5hdmFqb3doaXRlXCIgLT4gTmF2YWpvd2hpdGVcbiAgICB8IFwibmF2eVwiIC0+IE5hdnlcbiAgICB8IFwib2xkbGFjZVwiIC0+IE9sZGxhY2VcbiAgICB8IFwib2xpdmVcIiAtPiBPbGl2ZVxuICAgIHwgXCJvbGl2ZWRyYWJcIiAtPiBPbGl2ZWRyYWJcbiAgICB8IFwib3JhbmdlXCIgLT4gT3JhbmdlXG4gICAgfCBcIm9yYW5nZXJlZFwiIC0+IE9yYW5nZXJlZFxuICAgIHwgXCJvcmNoaWRcIiAtPiBPcmNoaWRcbiAgICB8IFwicGFsZWdvbGRlbnJvZFwiIC0+IFBhbGVnb2xkZW5yb2RcbiAgICB8IFwicGFsZWdyZWVuXCIgLT4gUGFsZWdyZWVuXG4gICAgfCBcInBhbGV0dXJxdW9pc2VcIiAtPiBQYWxldHVycXVvaXNlXG4gICAgfCBcInBhbGV2aW9sZXRyZWRcIiAtPiBQYWxldmlvbGV0cmVkXG4gICAgfCBcInBhcGF5YXdoaXBcIiAtPiBQYXBheWF3aGlwXG4gICAgfCBcInBlYWNocHVmZlwiIC0+IFBlYWNocHVmZlxuICAgIHwgXCJwZXJ1XCIgLT4gUGVydVxuICAgIHwgXCJwaW5rXCIgLT4gUGlua1xuICAgIHwgXCJwbHVtXCIgLT4gUGx1bVxuICAgIHwgXCJwb3dkZXJibHVlXCIgLT4gUG93ZGVyYmx1ZVxuICAgIHwgXCJwdXJwbGVcIiAtPiBQdXJwbGVcbiAgICB8IFwicmVkXCIgLT4gUmVkXG4gICAgfCBcInJvc3licm93blwiIC0+IFJvc3licm93blxuICAgIHwgXCJyb3lhbGJsdWVcIiAtPiBSb3lhbGJsdWVcbiAgICB8IFwic2FkZGxlYnJvd25cIiAtPiBTYWRkbGVicm93blxuICAgIHwgXCJzYWxtb25cIiAtPiBTYWxtb25cbiAgICB8IFwic2FuZHlicm93blwiIC0+IFNhbmR5YnJvd25cbiAgICB8IFwic2VhZ3JlZW5cIiAtPiBTZWFncmVlblxuICAgIHwgXCJzZWFzaGVsbFwiIC0+IFNlYXNoZWxsXG4gICAgfCBcInNpZW5uYVwiIC0+IFNpZW5uYVxuICAgIHwgXCJzaWx2ZXJcIiAtPiBTaWx2ZXJcbiAgICB8IFwic2t5Ymx1ZVwiIC0+IFNreWJsdWVcbiAgICB8IFwic2xhdGVibHVlXCIgLT4gU2xhdGVibHVlXG4gICAgfCBcInNsYXRlZ3JheVwiIC0+IFNsYXRlZ3JheVxuICAgIHwgXCJzbGF0ZWdyZXlcIiAtPiBTbGF0ZWdyZXlcbiAgICB8IFwic25vd1wiIC0+IFNub3dcbiAgICB8IFwic3ByaW5nZ3JlZW5cIiAtPiBTcHJpbmdncmVlblxuICAgIHwgXCJzdGVlbGJsdWVcIiAtPiBTdGVlbGJsdWVcbiAgICB8IFwidGFuXCIgLT4gVGFuXG4gICAgfCBcInRlYWxcIiAtPiBUZWFsXG4gICAgfCBcInRoaXN0bGVcIiAtPiBUaGlzdGxlXG4gICAgfCBcInRvbWF0b1wiIC0+IFRvbWF0b1xuICAgIHwgXCJ0dXJxdW9pc2VcIiAtPiBUdXJxdW9pc2VcbiAgICB8IFwidmlvbGV0XCIgLT4gVmlvbGV0XG4gICAgfCBcIndoZWF0XCIgLT4gV2hlYXRcbiAgICB8IFwid2hpdGVcIiAtPiBXaGl0ZVxuICAgIHwgXCJ3aGl0ZXNtb2tlXCIgLT4gV2hpdGVzbW9rZVxuICAgIHwgXCJ5ZWxsb3dcIiAtPiBZZWxsb3dcbiAgICB8IFwieWVsbG93Z3JlZW5cIiAtPiBZZWxsb3dncmVlblxuICAgIHwgcyAtPiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAocyBeIFwiIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG5hbWVcIikpXG5cbiAgbGV0IHJnYl9vZl9uYW1lID0gZnVuY3Rpb25cbiAgICB8IEFsaWNlYmx1ZSAtPiAyNDAsIDI0OCwgMjU1XG4gICAgfCBBbnRpcXVld2hpdGUgLT4gMjUwLCAyMzUsIDIxNVxuICAgIHwgQXF1YSAtPiAwLCAyNTUsIDI1NVxuICAgIHwgQXF1YW1hcmluZSAtPiAxMjcsIDI1NSwgMjEyXG4gICAgfCBBenVyZSAtPiAyNDAsIDI1NSwgMjU1XG4gICAgfCBCZWlnZSAtPiAyNDUsIDI0NSwgMjIwXG4gICAgfCBCaXNxdWUgLT4gMjU1LCAyMjgsIDE5NlxuICAgIHwgQmxhY2sgLT4gMCwgMCwgMFxuICAgIHwgQmxhbmNoZWRhbG1vbmQgLT4gMjU1LCAyMzUsIDIwNVxuICAgIHwgQmx1ZSAtPiAwLCAwLCAyNTVcbiAgICB8IEJsdWV2aW9sZXQgLT4gMTM4LCA0MywgMjI2XG4gICAgfCBCcm93biAtPiAxNjUsIDQyLCA0MlxuICAgIHwgQnVybHl3b29kIC0+IDIyMiwgMTg0LCAxMzVcbiAgICB8IENhZGV0Ymx1ZSAtPiA5NSwgMTU4LCAxNjBcbiAgICB8IENoYXJ0cmV1c2UgLT4gMTI3LCAyNTUsIDBcbiAgICB8IENob2NvbGF0ZSAtPiAyMTAsIDEwNSwgMzBcbiAgICB8IENvcmFsIC0+IDI1NSwgMTI3LCA4MFxuICAgIHwgQ29ybmZsb3dlcmJsdWUgLT4gMTAwLCAxNDksIDIzN1xuICAgIHwgQ29ybnNpbGsgLT4gMjU1LCAyNDgsIDIyMFxuICAgIHwgQ3JpbXNvbiAtPiAyMjAsIDIwLCA2MFxuICAgIHwgQ3lhbiAtPiAwLCAyNTUsIDI1NVxuICAgIHwgRGFya2JsdWUgLT4gMCwgMCwgMTM5XG4gICAgfCBEYXJrY3lhbiAtPiAwLCAxMzksIDEzOVxuICAgIHwgRGFya2dvbGRlbnJvZCAtPiAxODQsIDEzNCwgMTFcbiAgICB8IERhcmtncmF5IC0+IDE2OSwgMTY5LCAxNjlcbiAgICB8IERhcmtncmVlbiAtPiAwLCAxMDAsIDBcbiAgICB8IERhcmtncmV5IC0+IDE2OSwgMTY5LCAxNjlcbiAgICB8IERhcmtraGFraSAtPiAxODksIDE4MywgMTA3XG4gICAgfCBEYXJrbWFnZW50YSAtPiAxMzksIDAsIDEzOVxuICAgIHwgRGFya29saXZlZ3JlZW4gLT4gODUsIDEwNywgNDdcbiAgICB8IERhcmtvcmFuZ2UgLT4gMjU1LCAxNDAsIDBcbiAgICB8IERhcmtvcmNoaWQgLT4gMTUzLCA1MCwgMjA0XG4gICAgfCBEYXJrcmVkIC0+IDEzOSwgMCwgMFxuICAgIHwgRGFya3NhbG1vbiAtPiAyMzMsIDE1MCwgMTIyXG4gICAgfCBEYXJrc2VhZ3JlZW4gLT4gMTQzLCAxODgsIDE0M1xuICAgIHwgRGFya3NsYXRlYmx1ZSAtPiA3MiwgNjEsIDEzOVxuICAgIHwgRGFya3NsYXRlZ3JheSAtPiA0NywgNzksIDc5XG4gICAgfCBEYXJrc2xhdGVncmV5IC0+IDQ3LCA3OSwgNzlcbiAgICB8IERhcmt0dXJxdW9pc2UgLT4gMCwgMjA2LCAyMDlcbiAgICB8IERhcmt2aW9sZXQgLT4gMTQ4LCAwLCAyMTFcbiAgICB8IERlZXBwaW5rIC0+IDI1NSwgMjAsIDE0N1xuICAgIHwgRGVlcHNreWJsdWUgLT4gMCwgMTkxLCAyNTVcbiAgICB8IERpbWdyYXkgLT4gMTA1LCAxMDUsIDEwNVxuICAgIHwgRGltZ3JleSAtPiAxMDUsIDEwNSwgMTA1XG4gICAgfCBEb2RnZXJibHVlIC0+IDMwLCAxNDQsIDI1NVxuICAgIHwgRmlyZWJyaWNrIC0+IDE3OCwgMzQsIDM0XG4gICAgfCBGbG9yYWx3aGl0ZSAtPiAyNTUsIDI1MCwgMjQwXG4gICAgfCBGb3Jlc3RncmVlbiAtPiAzNCwgMTM5LCAzNFxuICAgIHwgRnVjaHNpYSAtPiAyNTUsIDAsIDI1NVxuICAgIHwgR2FpbnNib3JvIC0+IDIyMCwgMjIwLCAyMjBcbiAgICB8IEdob3N0d2hpdGUgLT4gMjQ4LCAyNDgsIDI1NVxuICAgIHwgR29sZCAtPiAyNTUsIDIxNSwgMFxuICAgIHwgR29sZGVucm9kIC0+IDIxOCwgMTY1LCAzMlxuICAgIHwgR3JheSAtPiAxMjgsIDEyOCwgMTI4XG4gICAgfCBHcmVlbiAtPiAwLCAxMjgsIDBcbiAgICB8IEdyZWVueWVsbG93IC0+IDE3MywgMjU1LCA0N1xuICAgIHwgR3JleSAtPiAxMjgsIDEyOCwgMTI4XG4gICAgfCBIb25leWRldyAtPiAyNDAsIDI1NSwgMjQwXG4gICAgfCBIb3RwaW5rIC0+IDI1NSwgMTA1LCAxODBcbiAgICB8IEluZGlhbnJlZCAtPiAyMDUsIDkyLCA5MlxuICAgIHwgSW5kaWdvIC0+IDc1LCAwLCAxMzBcbiAgICB8IEl2b3J5IC0+IDI1NSwgMjU1LCAyNDBcbiAgICB8IEtoYWtpIC0+IDI0MCwgMjMwLCAxNDBcbiAgICB8IExhdmVuZGVyIC0+IDIzMCwgMjMwLCAyNTBcbiAgICB8IExhdmVuZGVyYmx1c2ggLT4gMjU1LCAyNDAsIDI0NVxuICAgIHwgTGF3bmdyZWVuIC0+IDEyNCwgMjUyLCAwXG4gICAgfCBMZW1vbmNoaWZmb24gLT4gMjU1LCAyNTAsIDIwNVxuICAgIHwgTGlnaHRibHVlIC0+IDE3MywgMjE2LCAyMzBcbiAgICB8IExpZ2h0Y29yYWwgLT4gMjQwLCAxMjgsIDEyOFxuICAgIHwgTGlnaHRjeWFuIC0+IDIyNCwgMjU1LCAyNTVcbiAgICB8IExpZ2h0Z29sZGVucm9keWVsbG93IC0+IDI1MCwgMjUwLCAyMTBcbiAgICB8IExpZ2h0Z3JheSAtPiAyMTEsIDIxMSwgMjExXG4gICAgfCBMaWdodGdyZWVuIC0+IDE0NCwgMjM4LCAxNDRcbiAgICB8IExpZ2h0Z3JleSAtPiAyMTEsIDIxMSwgMjExXG4gICAgfCBMaWdodHBpbmsgLT4gMjU1LCAxODIsIDE5M1xuICAgIHwgTGlnaHRzYWxtb24gLT4gMjU1LCAxNjAsIDEyMlxuICAgIHwgTGlnaHRzZWFncmVlbiAtPiAzMiwgMTc4LCAxNzBcbiAgICB8IExpZ2h0c2t5Ymx1ZSAtPiAxMzUsIDIwNiwgMjUwXG4gICAgfCBMaWdodHNsYXRlZ3JheSAtPiAxMTksIDEzNiwgMTUzXG4gICAgfCBMaWdodHNsYXRlZ3JleSAtPiAxMTksIDEzNiwgMTUzXG4gICAgfCBMaWdodHN0ZWVsYmx1ZSAtPiAxNzYsIDE5NiwgMjIyXG4gICAgfCBMaWdodHllbGxvdyAtPiAyNTUsIDI1NSwgMjI0XG4gICAgfCBMaW1lIC0+IDAsIDI1NSwgMFxuICAgIHwgTGltZWdyZWVuIC0+IDUwLCAyMDUsIDUwXG4gICAgfCBMaW5lbiAtPiAyNTAsIDI0MCwgMjMwXG4gICAgfCBNYWdlbnRhIC0+IDI1NSwgMCwgMjU1XG4gICAgfCBNYXJvb24gLT4gMTI4LCAwLCAwXG4gICAgfCBNZWRpdW1hcXVhbWFyaW5lIC0+IDEwMiwgMjA1LCAxNzBcbiAgICB8IE1lZGl1bWJsdWUgLT4gMCwgMCwgMjA1XG4gICAgfCBNZWRpdW1vcmNoaWQgLT4gMTg2LCA4NSwgMjExXG4gICAgfCBNZWRpdW1wdXJwbGUgLT4gMTQ3LCAxMTIsIDIxOVxuICAgIHwgTWVkaXVtc2VhZ3JlZW4gLT4gNjAsIDE3OSwgMTEzXG4gICAgfCBNZWRpdW1zbGF0ZWJsdWUgLT4gMTIzLCAxMDQsIDIzOFxuICAgIHwgTWVkaXVtc3ByaW5nZ3JlZW4gLT4gMCwgMjUwLCAxNTRcbiAgICB8IE1lZGl1bXR1cnF1b2lzZSAtPiA3MiwgMjA5LCAyMDRcbiAgICB8IE1lZGl1bXZpb2xldHJlZCAtPiAxOTksIDIxLCAxMzNcbiAgICB8IE1pZG5pZ2h0Ymx1ZSAtPiAyNSwgMjUsIDExMlxuICAgIHwgTWludGNyZWFtIC0+IDI0NSwgMjU1LCAyNTBcbiAgICB8IE1pc3R5cm9zZSAtPiAyNTUsIDIyOCwgMjI1XG4gICAgfCBNb2NjYXNpbiAtPiAyNTUsIDIyOCwgMTgxXG4gICAgfCBOYXZham93aGl0ZSAtPiAyNTUsIDIyMiwgMTczXG4gICAgfCBOYXZ5IC0+IDAsIDAsIDEyOFxuICAgIHwgT2xkbGFjZSAtPiAyNTMsIDI0NSwgMjMwXG4gICAgfCBPbGl2ZSAtPiAxMjgsIDEyOCwgMFxuICAgIHwgT2xpdmVkcmFiIC0+IDEwNywgMTQyLCAzNVxuICAgIHwgT3JhbmdlIC0+IDI1NSwgMTY1LCAwXG4gICAgfCBPcmFuZ2VyZWQgLT4gMjU1LCA2OSwgMFxuICAgIHwgT3JjaGlkIC0+IDIxOCwgMTEyLCAyMTRcbiAgICB8IFBhbGVnb2xkZW5yb2QgLT4gMjM4LCAyMzIsIDE3MFxuICAgIHwgUGFsZWdyZWVuIC0+IDE1MiwgMjUxLCAxNTJcbiAgICB8IFBhbGV0dXJxdW9pc2UgLT4gMTc1LCAyMzgsIDIzOFxuICAgIHwgUGFsZXZpb2xldHJlZCAtPiAyMTksIDExMiwgMTQ3XG4gICAgfCBQYXBheWF3aGlwIC0+IDI1NSwgMjM5LCAyMTNcbiAgICB8IFBlYWNocHVmZiAtPiAyNTUsIDIxOCwgMTg1XG4gICAgfCBQZXJ1IC0+IDIwNSwgMTMzLCA2M1xuICAgIHwgUGluayAtPiAyNTUsIDE5MiwgMjAzXG4gICAgfCBQbHVtIC0+IDIyMSwgMTYwLCAyMjFcbiAgICB8IFBvd2RlcmJsdWUgLT4gMTc2LCAyMjQsIDIzMFxuICAgIHwgUHVycGxlIC0+IDEyOCwgMCwgMTI4XG4gICAgfCBSZWQgLT4gMjU1LCAwLCAwXG4gICAgfCBSb3N5YnJvd24gLT4gMTg4LCAxNDMsIDE0M1xuICAgIHwgUm95YWxibHVlIC0+IDY1LCAxMDUsIDIyNVxuICAgIHwgU2FkZGxlYnJvd24gLT4gMTM5LCA2OSwgMTlcbiAgICB8IFNhbG1vbiAtPiAyNTAsIDEyOCwgMTE0XG4gICAgfCBTYW5keWJyb3duIC0+IDI0NCwgMTY0LCA5NlxuICAgIHwgU2VhZ3JlZW4gLT4gNDYsIDEzOSwgODdcbiAgICB8IFNlYXNoZWxsIC0+IDI1NSwgMjQ1LCAyMzhcbiAgICB8IFNpZW5uYSAtPiAxNjAsIDgyLCA0NVxuICAgIHwgU2lsdmVyIC0+IDE5MiwgMTkyLCAxOTJcbiAgICB8IFNreWJsdWUgLT4gMTM1LCAyMDYsIDIzNVxuICAgIHwgU2xhdGVibHVlIC0+IDEwNiwgOTAsIDIwNVxuICAgIHwgU2xhdGVncmF5IC0+IDExMiwgMTI4LCAxNDRcbiAgICB8IFNsYXRlZ3JleSAtPiAxMTIsIDEyOCwgMTQ0XG4gICAgfCBTbm93IC0+IDI1NSwgMjUwLCAyNTBcbiAgICB8IFNwcmluZ2dyZWVuIC0+IDAsIDI1NSwgMTI3XG4gICAgfCBTdGVlbGJsdWUgLT4gNzAsIDEzMCwgMTgwXG4gICAgfCBUYW4gLT4gMjEwLCAxODAsIDE0MFxuICAgIHwgVGVhbCAtPiAwLCAxMjgsIDEyOFxuICAgIHwgVGhpc3RsZSAtPiAyMTYsIDE5MSwgMjE2XG4gICAgfCBUb21hdG8gLT4gMjU1LCA5OSwgNzFcbiAgICB8IFR1cnF1b2lzZSAtPiA2NCwgMjI0LCAyMDhcbiAgICB8IFZpb2xldCAtPiAyMzgsIDEzMCwgMjM4XG4gICAgfCBXaGVhdCAtPiAyNDUsIDIyMiwgMTc5XG4gICAgfCBXaGl0ZSAtPiAyNTUsIDI1NSwgMjU1XG4gICAgfCBXaGl0ZXNtb2tlIC0+IDI0NSwgMjQ1LCAyNDVcbiAgICB8IFllbGxvdyAtPiAyNTUsIDI1NSwgMFxuICAgIHwgWWVsbG93Z3JlZW4gLT4gMTU0LCAyMDUsIDUwXG5cbiAgdHlwZSB0ID1cbiAgICB8IE5hbWUgb2YgbmFtZVxuICAgIHwgUkdCIG9mIChpbnQgKiBpbnQgKiBpbnQpXG4gICAgICAgICgqKiBSZWQsIEdyZWVuIGFuZCBCbHVlIHZhbHVlcy4gQ2xpcHBlZCB0byBbWzAuLjI1NV1dIGJ5IG1vc3QgKEFsbD8pXG4gICAgICAgICAgICBicm93c2Vycy4gKilcbiAgICB8IFJHQl9wZXJjZW50IG9mIChpbnQgKiBpbnQgKiBpbnQpXG4gICAgICAgICgqKiBSR0IgY2hhbm5lbHMgYXJlIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlaXIgbWF4aW1hbCB2YWx1ZS4gKilcbiAgICB8IFJHQkEgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogU2FtZSBhcyBSR0Igd2l0aCBhZGRpdGlvbmFsIHRyYW5zcGFyZW5jeSBhcmd1bWVudC4gT3BhY2l0eSBzaG91bGQgYmUgaW5cbiAgICAgICAgICAgIFswLl0gKGNvbXBsZXRlbHkgdHJhbnNwYXJlbnQpIGFuZCBbMS5dIChjb21wbGV0ZWx5IG9wYXF1ZSkuICopXG4gICAgfCBSR0JBX3BlcmNlbnQgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogUkdCIGNoYW5uZWxzIHNwZWNpZmllZCBhcyBwZXJjZW50YWdlIG9mIHRoZWlyIG1heGltYWwgdmFsdWUuIEFscGhhXG4gICAgICAgICAgICBjaGFubmVsIChvcGFjaXR5KSBpcyBzdGlsbCBhIFswLl0gdG8gWzEuXSBmbG9hdC4gKilcbiAgICB8IEhTTCBvZiAoaW50ICogaW50ICogaW50KVxuICAgICAgICAoKiogSHVlLCBTYXR1cmF0aW9uIGFuZCBMaWdodG5lc3MgdmFsdWVzLiBIdWUgaXMgYW4gYW5nbGUgaW4gZGVncmVlIChpblxuICAgICAgICAgICAgaW50ZXJ2YWwgW1swLi4zNjBbXSkuIFNhdHVyYXRpb24gaXMgYSBwZXJjZW50YWdlIChbWzAuLjEwMF1dKSB3aXRoIFswXVxuICAgICAgICAgICAgYmVpbmcgY29sb3JsZXNzLiBMaWdodG5lc3MgaXMgYWxzbyBhIHBlcmNlbnRhZ2UgKFtbMC4uMTAwXV0pIHdpdGggWzBdXG4gICAgICAgICAgICBiZWluZyBibGFjay4gKilcbiAgICB8IEhTTEEgb2YgKGludCAqIGludCAqIGludCAqIGZsb2F0KVxuICAgICAgICAoKiogU2FtZSBhcyBIU0wgd2l0aCBhbiBvcGFjaXR5IGFyZ3VtZW50IGJldHdlZW4gWzAuXSBhbmQgWzEuXS4gKilcblxuICBsZXQgcmdiID9hIHIgZyBiID1cbiAgICBtYXRjaCBhIHdpdGhcbiAgICB8IE5vbmUgLT4gUkdCIChyLCBnLCBiKVxuICAgIHwgU29tZSBhIC0+IFJHQkEgKHIsIGcsIGIsIGEpXG5cbiAgbGV0IGhzbCA/YSBoIHMgbCA9XG4gICAgbWF0Y2ggYSB3aXRoXG4gICAgfCBOb25lIC0+IEhTTCAoaCwgcywgbClcbiAgICB8IFNvbWUgYSAtPiBIU0xBIChoLCBzLCBsLCBhKVxuXG4gIGxldCBzdHJpbmdfb2ZfdCA9IGZ1bmN0aW9uXG4gICAgfCBOYW1lIG4gLT4gc3RyaW5nX29mX25hbWUgblxuICAgIHwgUkdCIChyLCBnLCBiKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYiglZCwlZCwlZClcIiByIGcgYlxuICAgIHwgUkdCX3BlcmNlbnQgKHIsIGcsIGIpIC0+IFByaW50Zi5zcHJpbnRmIFwicmdiKCVkJSUsJWQlJSwlZCUlKVwiIHIgZyBiXG4gICAgfCBSR0JBIChyLCBnLCBiLCBhKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYmEoJWQsJWQsJWQsJWYpXCIgciBnIGIgYVxuICAgIHwgUkdCQV9wZXJjZW50IChyLCBnLCBiLCBhKSAtPiBQcmludGYuc3ByaW50ZiBcInJnYmEoJWQlJSwlZCUlLCVkJSUsJWYpXCIgciBnIGIgYVxuICAgIHwgSFNMIChoLCBzLCBsKSAtPiBQcmludGYuc3ByaW50ZiBcImhzbCglZCwlZCUlLCVkJSUpXCIgaCBzIGxcbiAgICB8IEhTTEEgKGgsIHMsIGwsIGEpIC0+IFByaW50Zi5zcHJpbnRmIFwiaHNsYSglZCwlZCUlLCVkJSUsJWYpXCIgaCBzIGwgYVxuXG4gIGxldCBoZXhfb2ZfcmdiIChyZWQsIGdyZWVuLCBibHVlKSA9XG4gICAgbGV0IGluX3JhbmdlIGkgPVxuICAgICAgaWYgaSA8IDAgfHwgaSA+IDI1NVxuICAgICAgdGhlbiByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoc3RyaW5nX29mX2ludCBpIF4gXCIgaXMgb3V0IG9mIHZhbGlkIHJhbmdlXCIpKVxuICAgIGluXG4gICAgaW5fcmFuZ2UgcmVkO1xuICAgIGluX3JhbmdlIGdyZWVuO1xuICAgIGluX3JhbmdlIGJsdWU7XG4gICAgUHJpbnRmLnNwcmludGYgXCIjJTAyWCUwMlglMDJYXCIgcmVkIGdyZWVuIGJsdWVcblxuICAoKiBPY2FtbCA8LT4gSlMgcmVwcmVzZW50YXRpb24gKilcbiAgdHlwZSBqc190ID0gSnMuanNfc3RyaW5nIEpzLnRcblxuICAoKiBUT0RPPyBiZSBtb3JlIHJlc3RyaWN0aXZlLCBjbGlwIHZhbHVlcyBpbnRvIHN0YW5kYXJkIHJhbmdlICopXG4gIGxldCBqc190X29mX2pzX3N0cmluZyBzID1cbiAgICBsZXQgcmdiX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqLFxcXFxzKlxcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IHJnYl9wY3RfcmUgPVxuICAgICAgbmV3JWpzIEpzLnJlZ0V4cCAoSnMuYnl0ZXN0cmluZyBcIl5yZ2JcXFxcKFxcXFxzKlxcXFxkKiUsXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgcmdiYV9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwXG4gICAgICAgIChKcy5ieXRlc3RyaW5nIFwiXnJnYmFcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqLFxcXFxkKlxcXFwuP1xcXFxkKlxcXFwpJFwiKVxuICAgIGluXG4gICAgbGV0IHJnYmFfcGN0X3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHBcbiAgICAgICAgKEpzLmJ5dGVzdHJpbmcgXCJecmdiYVxcXFwoXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXGQqXFxcXC4/XFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgaHNsX3JlID1cbiAgICAgIG5ldyVqcyBKcy5yZWdFeHAgKEpzLmJ5dGVzdHJpbmcgXCJeaHNsXFxcXChcXFxccypcXFxcZCosXFxcXHMqXFxcXGQqJSxcXFxccypcXFxcZColXFxcXCkkXCIpXG4gICAgaW5cbiAgICBsZXQgaHNsYV9yZSA9XG4gICAgICBuZXclanMgSnMucmVnRXhwXG4gICAgICAgIChKcy5ieXRlc3RyaW5nIFwiXmhzbGFcXFxcKFxcXFxzKlxcXFxkKixcXFxccypcXFxcZColLFxcXFxzKlxcXFxkKiUsXFxcXGQqXFxcXC4/XFxcXGQqXFxcXCkkXCIpXG4gICAgaW5cbiAgICBpZiBKcy50b19ib29sIChyZ2JfcmUjI3Rlc3QgcylcbiAgICAgICB8fCBKcy50b19ib29sIChyZ2JhX3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAocmdiX3BjdF9yZSMjdGVzdCBzKVxuICAgICAgIHx8IEpzLnRvX2Jvb2wgKHJnYmFfcGN0X3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAoaHNsX3JlIyN0ZXN0IHMpXG4gICAgICAgfHwgSnMudG9fYm9vbCAoaHNsYV9yZSMjdGVzdCBzKVxuICAgIHRoZW4gc1xuICAgIGVsc2UgaWYgTGlzdC5tZW1cbiAgICAgICAgICAgICAgKEpzLnRvX3N0cmluZyBzKVxuICAgICAgICAgICAgICBbIFwiYWxpY2VibHVlXCJcbiAgICAgICAgICAgICAgOyBcImFudGlxdWV3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJhcXVhXCJcbiAgICAgICAgICAgICAgOyBcImFxdWFtYXJpbmVcIlxuICAgICAgICAgICAgICA7IFwiYXp1cmVcIlxuICAgICAgICAgICAgICA7IFwiYmVpZ2VcIlxuICAgICAgICAgICAgICA7IFwiYmlzcXVlXCJcbiAgICAgICAgICAgICAgOyBcImJsYWNrXCJcbiAgICAgICAgICAgICAgOyBcImJsYW5jaGVkYWxtb25kXCJcbiAgICAgICAgICAgICAgOyBcImJsdWVcIlxuICAgICAgICAgICAgICA7IFwiYmx1ZXZpb2xldFwiXG4gICAgICAgICAgICAgIDsgXCJicm93blwiXG4gICAgICAgICAgICAgIDsgXCJidXJseXdvb2RcIlxuICAgICAgICAgICAgICA7IFwiY2FkZXRibHVlXCJcbiAgICAgICAgICAgICAgOyBcImNoYXJ0cmV1c2VcIlxuICAgICAgICAgICAgICA7IFwiY2hvY29sYXRlXCJcbiAgICAgICAgICAgICAgOyBcImNvcmFsXCJcbiAgICAgICAgICAgICAgOyBcImNvcm5mbG93ZXJibHVlXCJcbiAgICAgICAgICAgICAgOyBcImNvcm5zaWxrXCJcbiAgICAgICAgICAgICAgOyBcImNyaW1zb25cIlxuICAgICAgICAgICAgICA7IFwiY3lhblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrY3lhblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ29sZGVucm9kXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtncmF5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmtncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJra2hha2lcIlxuICAgICAgICAgICAgICA7IFwiZGFya21hZ2VudGFcIlxuICAgICAgICAgICAgICA7IFwiZGFya29saXZlZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya29yYW5nZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrb3JjaGlkXCJcbiAgICAgICAgICAgICAgOyBcImRhcmtyZWRcIlxuICAgICAgICAgICAgICA7IFwiZGFya3NhbG1vblwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZGFya3NsYXRlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrc2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcImRhcmtzbGF0ZWdyZXlcIlxuICAgICAgICAgICAgICA7IFwiZGFya3R1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJkYXJrdmlvbGV0XCJcbiAgICAgICAgICAgICAgOyBcImRlZXBwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImRlZXBza3libHVlXCJcbiAgICAgICAgICAgICAgOyBcImRpbWdyYXlcIlxuICAgICAgICAgICAgICA7IFwiZGltZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJkb2RnZXJibHVlXCJcbiAgICAgICAgICAgICAgOyBcImZpcmVicmlja1wiXG4gICAgICAgICAgICAgIDsgXCJmbG9yYWx3aGl0ZVwiXG4gICAgICAgICAgICAgIDsgXCJmb3Jlc3RncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJmdWNoc2lhXCJcbiAgICAgICAgICAgICAgOyBcImdhaW5zYm9yb1wiXG4gICAgICAgICAgICAgIDsgXCJnaG9zdHdoaXRlXCJcbiAgICAgICAgICAgICAgOyBcImdvbGRcIlxuICAgICAgICAgICAgICA7IFwiZ29sZGVucm9kXCJcbiAgICAgICAgICAgICAgOyBcImdyYXlcIlxuICAgICAgICAgICAgICA7IFwiZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwiZ3JlZW55ZWxsb3dcIlxuICAgICAgICAgICAgICA7IFwiZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJob25leWRld1wiXG4gICAgICAgICAgICAgIDsgXCJob3RwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImluZGlhbnJlZFwiXG4gICAgICAgICAgICAgIDsgXCJpbmRpZ29cIlxuICAgICAgICAgICAgICA7IFwiaXZvcnlcIlxuICAgICAgICAgICAgICA7IFwia2hha2lcIlxuICAgICAgICAgICAgICA7IFwibGF2ZW5kZXJcIlxuICAgICAgICAgICAgICA7IFwibGF2ZW5kZXJibHVzaFwiXG4gICAgICAgICAgICAgIDsgXCJsYXduZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGVtb25jaGlmZm9uXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGNvcmFsXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0Y3lhblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdvbGRlbnJvZHllbGxvd1wiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdyYXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJsaWdodGdyZXlcIlxuICAgICAgICAgICAgICA7IFwibGlnaHRwaW5rXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2FsbW9uXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2VhZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwibGlnaHRza3libHVlXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c2xhdGVncmV5XCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0c3RlZWxibHVlXCJcbiAgICAgICAgICAgICAgOyBcImxpZ2h0eWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcImxpbWVcIlxuICAgICAgICAgICAgICA7IFwibGltZWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcImxpbmVuXCJcbiAgICAgICAgICAgICAgOyBcIm1hZ2VudGFcIlxuICAgICAgICAgICAgICA7IFwibWFyb29uXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bWFxdWFtYXJpbmVcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1vcmNoaWRcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtcHVycGxlXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXNlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcIm1lZGl1bXNsYXRlYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW1zcHJpbmdncmVlblwiXG4gICAgICAgICAgICAgIDsgXCJtZWRpdW10dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwibWVkaXVtdmlvbGV0cmVkXCJcbiAgICAgICAgICAgICAgOyBcIm1pZG5pZ2h0Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJtaW50Y3JlYW1cIlxuICAgICAgICAgICAgICA7IFwibWlzdHlyb3NlXCJcbiAgICAgICAgICAgICAgOyBcIm1vY2Nhc2luXCJcbiAgICAgICAgICAgICAgOyBcIm5hdmFqb3doaXRlXCJcbiAgICAgICAgICAgICAgOyBcIm5hdnlcIlxuICAgICAgICAgICAgICA7IFwib2xkbGFjZVwiXG4gICAgICAgICAgICAgIDsgXCJvbGl2ZVwiXG4gICAgICAgICAgICAgIDsgXCJvbGl2ZWRyYWJcIlxuICAgICAgICAgICAgICA7IFwib3JhbmdlXCJcbiAgICAgICAgICAgICAgOyBcIm9yYW5nZXJlZFwiXG4gICAgICAgICAgICAgIDsgXCJvcmNoaWRcIlxuICAgICAgICAgICAgICA7IFwicGFsZWdvbGRlbnJvZFwiXG4gICAgICAgICAgICAgIDsgXCJwYWxlZ3JlZW5cIlxuICAgICAgICAgICAgICA7IFwicGFsZXR1cnF1b2lzZVwiXG4gICAgICAgICAgICAgIDsgXCJwYWxldmlvbGV0cmVkXCJcbiAgICAgICAgICAgICAgOyBcInBhcGF5YXdoaXBcIlxuICAgICAgICAgICAgICA7IFwicGVhY2hwdWZmXCJcbiAgICAgICAgICAgICAgOyBcInBlcnVcIlxuICAgICAgICAgICAgICA7IFwicGlua1wiXG4gICAgICAgICAgICAgIDsgXCJwbHVtXCJcbiAgICAgICAgICAgICAgOyBcInBvd2RlcmJsdWVcIlxuICAgICAgICAgICAgICA7IFwicHVycGxlXCJcbiAgICAgICAgICAgICAgOyBcInJlZFwiXG4gICAgICAgICAgICAgIDsgXCJyb3N5YnJvd25cIlxuICAgICAgICAgICAgICA7IFwicm95YWxibHVlXCJcbiAgICAgICAgICAgICAgOyBcInNhZGRsZWJyb3duXCJcbiAgICAgICAgICAgICAgOyBcInNhbG1vblwiXG4gICAgICAgICAgICAgIDsgXCJzYW5keWJyb3duXCJcbiAgICAgICAgICAgICAgOyBcInNlYWdyZWVuXCJcbiAgICAgICAgICAgICAgOyBcInNlYXNoZWxsXCJcbiAgICAgICAgICAgICAgOyBcInNpZW5uYVwiXG4gICAgICAgICAgICAgIDsgXCJzaWx2ZXJcIlxuICAgICAgICAgICAgICA7IFwic2t5Ymx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJzbGF0ZWJsdWVcIlxuICAgICAgICAgICAgICA7IFwic2xhdGVncmF5XCJcbiAgICAgICAgICAgICAgOyBcInNsYXRlZ3JleVwiXG4gICAgICAgICAgICAgIDsgXCJzbm93XCJcbiAgICAgICAgICAgICAgOyBcInNwcmluZ2dyZWVuXCJcbiAgICAgICAgICAgICAgOyBcInN0ZWVsYmx1ZVwiXG4gICAgICAgICAgICAgIDsgXCJ0YW5cIlxuICAgICAgICAgICAgICA7IFwidGVhbFwiXG4gICAgICAgICAgICAgIDsgXCJ0aGlzdGxlXCJcbiAgICAgICAgICAgICAgOyBcInRvbWF0b1wiXG4gICAgICAgICAgICAgIDsgXCJ0dXJxdW9pc2VcIlxuICAgICAgICAgICAgICA7IFwidmlvbGV0XCJcbiAgICAgICAgICAgICAgOyBcIndoZWF0XCJcbiAgICAgICAgICAgICAgOyBcIndoaXRlXCJcbiAgICAgICAgICAgICAgOyBcIndoaXRlc21va2VcIlxuICAgICAgICAgICAgICA7IFwieWVsbG93XCJcbiAgICAgICAgICAgICAgOyBcInllbGxvd2dyZWVuXCJcbiAgICAgICAgICAgICAgXVxuICAgIHRoZW4gc1xuICAgIGVsc2UgcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKEpzLnRvX3N0cmluZyBzIF4gXCIgaXMgbm90IGEgdmFsaWQgY29sb3JcIikpXG5cbiAgbGV0IG5hbWUgY24gPSBKcy5zdHJpbmcgKHN0cmluZ19vZl9uYW1lIGNuKVxuXG4gIGxldCBqcyA9IGZ1bmN0aW9uXG4gICAgfCBOYW1lIG4gLT4gbmFtZSBuXG4gICAgfCAoUkdCIF8gfCBSR0JfcGVyY2VudCBfIHwgUkdCQSBfIHwgUkdCQV9wZXJjZW50IF8gfCBIU0wgXyB8IEhTTEEgXykgYXMgYyAtPlxuICAgICAgICBKcy5zdHJpbmcgKHN0cmluZ19vZl90IGMpXG5cbiAgbGV0IG1sIGMgPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIGMgaW5cbiAgICB0cnkgTmFtZSAobmFtZV9vZl9zdHJpbmcgcylcbiAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgXyAtPiAoXG4gICAgICBsZXQgZmFpbCAoKSA9IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgY29sb3JcIikpIGluXG4gICAgICBsZXQgcmVfcmdiID1cbiAgICAgICAgUmVnZXhwLnJlZ2V4cCBcIihyZ2JhPylcXFxcKCg/OihcXFxcZCopLChcXFxcZCopLChcXFxcZCopKD86LChcXFxcZCooPzpcXFxcLlxcXFxkKik/KSk/KVxcXFwpXCJcbiAgICAgIGluXG4gICAgICBsZXQgcmVfcmdiX3BjdCA9XG4gICAgICAgIFJlZ2V4cC5yZWdleHAgXCIocmdiYT8pXFxcXCgoPzooXFxcXGQqKSUsKFxcXFxkKiklLChcXFxcZCopJSg/OiwoXFxcXGQqKD86XFxcXC5cXFxcZCopPykpPylcXFxcKVwiXG4gICAgICBpblxuICAgICAgbGV0IHJlX2hzbCA9XG4gICAgICAgIFJlZ2V4cC5yZWdleHAgXCIoaHNsYT8pXFxcXCgoPzooXFxcXGQqKSwoXFxcXGQqKSUsKFxcXFxkKiklKD86LChcXFxcZCooPzpcXFxcLlxcXFxkKik/KSk/KVxcXFwpXCJcbiAgICAgIGluXG4gICAgICBsZXQgaV9vZl9zX28gPSBmdW5jdGlvblxuICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICB8IFNvbWUgaSAtPiAoXG4gICAgICAgICAgICB0cnkgaW50X29mX3N0cmluZyBpXG4gICAgICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyB8IEZhaWx1cmUgcyAtPlxuICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJjb2xvciBjb252ZXJzaW9uIGVycm9yIChcIiBeIGkgXiBcIik6IFwiIF4gcykpKVxuICAgICAgaW5cbiAgICAgIGxldCBmX29mX3MgZiA9XG4gICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyB8IEZhaWx1cmUgcyAtPlxuICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImNvbG9yIGNvbnZlcnNpb24gZXJyb3IgKFwiIF4gZiBeIFwiKTogXCIgXiBzKSlcbiAgICAgIGluXG4gICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlX3JnYiBzIDAgd2l0aFxuICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgIGxldCByZWQgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgaW5cbiAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICBsZXQgYmx1ZSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNCBpblxuICAgICAgICAgIGxldCBhbHBoYSA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgNSBpblxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgfCBTb21lIFwicmdiXCIgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgfCBOb25lIC0+IFJHQiAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSkpXG4gICAgICAgICAgfCBTb21lIFwicmdiYVwiIC0+IChcbiAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgICB8IFNvbWUgYSAtPiBSR0JBIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlLCBmX29mX3MgYSkpXG4gICAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG4gICAgICB8IE5vbmUgLT4gKFxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmVfcmdiX3BjdCBzIDAgd2l0aFxuICAgICAgICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgICAgICAgbGV0IHJlZCA9IFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMiBpblxuICAgICAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICAgICAgbGV0IGJsdWUgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDQgaW5cbiAgICAgICAgICAgICAgbGV0IGFscGhhID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA1IGluXG4gICAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICAgIHwgU29tZSBcInJnYlwiIC0+IChcbiAgICAgICAgICAgICAgICAgIG1hdGNoIGFscGhhIHdpdGhcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBSR0JfcGVyY2VudCAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSkpXG4gICAgICAgICAgICAgIHwgU29tZSBcInJnYmFcIiAtPiAoXG4gICAgICAgICAgICAgICAgICBtYXRjaCBhbHBoYSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgICAgICAgfCBTb21lIGEgLT5cbiAgICAgICAgICAgICAgICAgICAgICBSR0JBX3BlcmNlbnQgKGlfb2Zfc19vIHJlZCwgaV9vZl9zX28gZ3JlZW4sIGlfb2Zfc19vIGJsdWUsIGZfb2ZfcyBhKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB8IFNvbWUgXyB8IE5vbmUgLT4gZmFpbCAoKSlcbiAgICAgICAgICB8IE5vbmUgLT4gKFxuICAgICAgICAgICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlX2hzbCBzIDAgd2l0aFxuICAgICAgICAgICAgICB8IFNvbWUgciAtPiAoXG4gICAgICAgICAgICAgICAgICBsZXQgcmVkID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIGluXG4gICAgICAgICAgICAgICAgICBsZXQgZ3JlZW4gPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDMgaW5cbiAgICAgICAgICAgICAgICAgIGxldCBibHVlID0gUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciA0IGluXG4gICAgICAgICAgICAgICAgICBsZXQgYWxwaGEgPSBSZWdleHAubWF0Y2hlZF9ncm91cCByIDUgaW5cbiAgICAgICAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICAgICAgICB8IFNvbWUgXCJoc2xcIiAtPiAoXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU29tZSBfIC0+IGZhaWwgKClcbiAgICAgICAgICAgICAgICAgICAgICB8IE5vbmUgLT4gSFNMIChpX29mX3NfbyByZWQsIGlfb2Zfc19vIGdyZWVuLCBpX29mX3NfbyBibHVlKSlcbiAgICAgICAgICAgICAgICAgIHwgU29tZSBcImhzbGFcIiAtPiAoXG4gICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggYWxwaGEgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgICAgICAgICAgICAgfCBTb21lIGEgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgSFNMQSAoaV9vZl9zX28gcmVkLCBpX29mX3NfbyBncmVlbiwgaV9vZl9zX28gYmx1ZSwgZl9vZl9zIGEpKVxuICAgICAgICAgICAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG4gICAgICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpKSkpXG5lbmRcblxubW9kdWxlIExlbmd0aCA9IHN0cnVjdFxuICAoKiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXZhbHVlcy8jbGVuZ3RocyAqKVxuXG4gICgqIFRPRE86XG4gICAgIHtbXG4gICAgICAgdHlwZSBqc190ID0gcHJpdmF0ZSBKcy5zdHJpbmcgSnMudFxuICAgICAgIHZhbCBqc190X29mX3RcbiAgICAgICB2YWwgdF9vZl9qc190XG4gICAgICAgdmFsIHRfb2Zfc3RyaW5nXG4gICAgIF19XG4gICopXG5cbiAgdHlwZSB0ID1cbiAgICB8IFplcm9cbiAgICAoKiByZWxhdGl2ZSAqKVxuICAgIHwgRW0gb2YgZmxvYXRcbiAgICB8IEV4IG9mIGZsb2F0XG4gICAgfCBQeCBvZiBmbG9hdFxuICAgIHwgR2Qgb2YgZmxvYXRcbiAgICB8IFJlbSBvZiBmbG9hdFxuICAgIHwgVncgb2YgZmxvYXRcbiAgICB8IFZoIG9mIGZsb2F0XG4gICAgfCBWbSBvZiBmbG9hdFxuICAgIHwgQ2ggb2YgZmxvYXRcbiAgICAoKiBhYnNvbHV0ZSAqKVxuICAgIHwgTW0gb2YgZmxvYXRcbiAgICB8IENtIG9mIGZsb2F0XG4gICAgfCBJbiBvZiBmbG9hdFxuICAgIHwgUHQgb2YgZmxvYXRcbiAgICB8IFBjIG9mIGZsb2F0XG5cbiAgbGV0IHN0cmluZ19vZl90ID0gZnVuY3Rpb25cbiAgICB8IFplcm8gLT4gXCIwXCJcbiAgICB8IEVtIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImVtXCJcbiAgICB8IEV4IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImV4XCJcbiAgICB8IFB4IGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcInB4XCJcbiAgICB8IEdkIGYgLT4gUHJpbnRmLnNwcmludGYgXCIlZiVzXCIgZiBcImdkXCJcbiAgICB8IFJlbSBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJyZW1cIlxuICAgIHwgVncgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidndcIlxuICAgIHwgVmggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidmhcIlxuICAgIHwgVm0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidm1cIlxuICAgIHwgQ2ggZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiY2hcIlxuICAgIHwgTW0gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwibW1cIlxuICAgIHwgQ20gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiY21cIlxuICAgIHwgSW4gZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwiaW5cIlxuICAgIHwgUHQgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicHRcIlxuICAgIHwgUGMgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwicGNcIlxuXG4gIHR5cGUganNfdCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IGpzIHQgPSBKcy5zdHJpbmcgKHN0cmluZ19vZl90IHQpXG5cbiAgbGV0IG1sIHQgPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIHQgaW5cbiAgICBpZiBTdHJpbmcuZXF1YWwgcyBcIjBcIlxuICAgIHRoZW4gWmVyb1xuICAgIGVsc2VcbiAgICAgIGxldCBmYWlsICgpID0gcmFpc2UgKEludmFsaWRfYXJndW1lbnQgKHMgXiBcIiBpcyBub3QgYSB2YWxpZCBsZW5ndGhcIikpIGluXG4gICAgICBsZXQgcmUgPSBSZWdleHAucmVnZXhwIFwiXihcXFxcZCooPzpcXFxcLlxcXFxkKik/KVxcXFxzKihcXFxcUyopJFwiIGluXG4gICAgICBtYXRjaCBSZWdleHAuc3RyaW5nX21hdGNoIHJlIHMgMCB3aXRoXG4gICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgfCBTb21lIHIgLT4gKFxuICAgICAgICAgIGxldCBmID1cbiAgICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgICAgICAgICAgfCBTb21lIGYgLT4gKFxuICAgICAgICAgICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICAgICAgICAgIHdpdGggSW52YWxpZF9hcmd1bWVudCBzIC0+XG4gICAgICAgICAgICAgICAgICByYWlzZSAoSW52YWxpZF9hcmd1bWVudCAoXCJsZW5ndGggY29udmVyc2lvbiBlcnJvcjogXCIgXiBzKSkpXG4gICAgICAgICAgaW5cbiAgICAgICAgICBtYXRjaCBSZWdleHAubWF0Y2hlZF9ncm91cCByIDIgd2l0aFxuICAgICAgICAgIHwgTm9uZSAtPiBmYWlsICgpXG4gICAgICAgICAgfCBTb21lIFwiZW1cIiAtPiBFbSBmXG4gICAgICAgICAgfCBTb21lIFwiZXhcIiAtPiBFeCBmXG4gICAgICAgICAgfCBTb21lIFwicHhcIiAtPiBQeCBmXG4gICAgICAgICAgfCBTb21lIFwiZ2RcIiAtPiBHZCBmXG4gICAgICAgICAgfCBTb21lIFwicmVtXCIgLT4gUmVtIGZcbiAgICAgICAgICB8IFNvbWUgXCJ2d1wiIC0+IFZ3IGZcbiAgICAgICAgICB8IFNvbWUgXCJ2aFwiIC0+IFZoIGZcbiAgICAgICAgICB8IFNvbWUgXCJ2bVwiIC0+IFZtIGZcbiAgICAgICAgICB8IFNvbWUgXCJjaFwiIC0+IENoIGZcbiAgICAgICAgICB8IFNvbWUgXCJtbVwiIC0+IE1tIGZcbiAgICAgICAgICB8IFNvbWUgXCJjbVwiIC0+IENtIGZcbiAgICAgICAgICB8IFNvbWUgXCJpblwiIC0+IEluIGZcbiAgICAgICAgICB8IFNvbWUgXCJwdFwiIC0+IFB0IGZcbiAgICAgICAgICB8IFNvbWUgXCJwY1wiIC0+IFBjIGZcbiAgICAgICAgICB8IFNvbWUgXyAtPiBmYWlsICgpKVxuZW5kXG5cbm1vZHVsZSBBbmdsZSA9IHN0cnVjdFxuICB0eXBlIHQgPVxuICAgIHwgRGVnIG9mIGZsb2F0XG4gICAgfCBHcmFkIG9mIGZsb2F0XG4gICAgfCBSYWQgb2YgZmxvYXRcbiAgICB8IFR1cm5zIG9mIGZsb2F0XG5cbiAgbGV0IHN0cmluZ19vZl90ID0gZnVuY3Rpb25cbiAgICB8IERlZyBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJkZWdcIlxuICAgIHwgR3JhZCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJncmFkXCJcbiAgICB8IFJhZCBmIC0+IFByaW50Zi5zcHJpbnRmIFwiJWYlc1wiIGYgXCJyYWRcIlxuICAgIHwgVHVybnMgZiAtPiBQcmludGYuc3ByaW50ZiBcIiVmJXNcIiBmIFwidHVybnNcIlxuXG4gIHR5cGUganNfdCA9IEpzLmpzX3N0cmluZyBKcy50XG5cbiAgbGV0IGpzIHQgPSBKcy5zdHJpbmcgKHN0cmluZ19vZl90IHQpXG5cbiAgbGV0IG1sIGogPVxuICAgIGxldCBzID0gSnMudG9fc3RyaW5nIGogaW5cbiAgICBsZXQgcmUgPSBSZWdleHAucmVnZXhwIFwiXihcXFxcZCooPzpcXFxcLlxcXFxkKikpKGRlZ3xncmFkfHJhZHx0dXJucykkXCIgaW5cbiAgICBsZXQgZmFpbCAoKSA9IHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChzIF4gXCIgaXMgbm90IGEgdmFsaWQgbGVuZ3RoXCIpKSBpblxuICAgIG1hdGNoIFJlZ2V4cC5zdHJpbmdfbWF0Y2ggcmUgcyAwIHdpdGhcbiAgICB8IE5vbmUgLT4gZmFpbCAoKVxuICAgIHwgU29tZSByIC0+IChcbiAgICAgICAgbGV0IGYgPVxuICAgICAgICAgIG1hdGNoIFJlZ2V4cC5tYXRjaGVkX2dyb3VwIHIgMSB3aXRoXG4gICAgICAgICAgfCBOb25lIC0+IGZhaWwgKClcbiAgICAgICAgICB8IFNvbWUgZiAtPiAoXG4gICAgICAgICAgICAgIHRyeSBmbG9hdF9vZl9zdHJpbmcgZlxuICAgICAgICAgICAgICB3aXRoIEludmFsaWRfYXJndW1lbnQgcyAtPlxuICAgICAgICAgICAgICAgIHJhaXNlIChJbnZhbGlkX2FyZ3VtZW50IChcImxlbmd0aCBjb252ZXJzaW9uIGVycm9yOiBcIiBeIHMpKSlcbiAgICAgICAgaW5cbiAgICAgICAgbWF0Y2ggUmVnZXhwLm1hdGNoZWRfZ3JvdXAgciAyIHdpdGhcbiAgICAgICAgfCBTb21lIFwiZGVnXCIgLT4gRGVnIGZcbiAgICAgICAgfCBTb21lIFwiZ3JhZFwiIC0+IEdyYWQgZlxuICAgICAgICB8IFNvbWUgXCJyYWRcIiAtPiBSYWQgZlxuICAgICAgICB8IFNvbWUgXCJ0dXJuc1wiIC0+IFR1cm5zIGZcbiAgICAgICAgfCBTb21lIF8gfCBOb25lIC0+IGZhaWwgKCkpXG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG4oKiogSmF2YXNjcmlwdCBldmVudHMuICopXG5cbm9wZW4hIEltcG9ydFxubW9kdWxlIFR5cCA9IERvbV9odG1sLkV2ZW50XG5cbnR5cGUgbGlzdGVuZXIgPSBEb21faHRtbC5ldmVudF9saXN0ZW5lcl9pZFxuXG5sZXQgbGlzdGVuID8oY2FwdHVyZSA9IGZhbHNlKSB0YXJnZXQgdHlwIGNiID1cbiAgRG9tX2h0bWwuYWRkRXZlbnRMaXN0ZW5lclxuICAgIHRhcmdldFxuICAgIHR5cFxuICAgIChEb21faHRtbC5mdWxsX2hhbmRsZXIgKGZ1biBuIGUgLT4gSnMuYm9vbCAoY2IgbiBlKSkpXG4gICAgKEpzLmJvb2wgY2FwdHVyZSlcblxubGV0IHN0b3BfbGlzdGVuID0gRG9tX2h0bWwucmVtb3ZlRXZlbnRMaXN0ZW5lclxuIiwiKCogSnNfb2Zfb2NhbWwgbGlicmFyeVxuICogaHR0cDovL3d3dy5vY3NpZ2VuLm9yZy9qc19vZl9vY2FtbC9cbiAqIENvcHlyaWdodCAoQykgMjAxNCBIdWdvIEhldXphcmRcbiAqIENvcHlyaWdodCAoQykgMjAxNCBKw6lyw7RtZSBWb3VpbGxvblxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxubGV0IHhtbG5zID0gSnMuc3RyaW5nIFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuXG4oKiB0cmFuc2xhdGUgc3BlYyBmcm9tIGh0dHA6Ly93d3cudzMub3JnL1RSL1NWRy9pZGwuaHRtbCAqKVxuKCogaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHL3N0cnVjdC5odG1sICopXG5cbnR5cGUgZXJyb3JfY29kZSA9XG4gIHwgV1JPTkdfVFlQRV9FUlJcbiAgfCBJTlZBTElEX1ZBTFVFX0VSUlxuICB8IE1BVFJJWF9OT1RfSU5WRVJUQUJMRVxuXG5jbGFzcyB0eXBlIHN2Z19lcnJvciA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgSnMuZXJyb3JcblxuICAgIG1ldGhvZCBjb2RlIDogZXJyb3JfY29kZSB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmV4Y2VwdGlvbiBTVkdFcnJvciBvZiBzdmdfZXJyb3JcblxudHlwZSBsZW5ndGhVbml0VHlwZSA9XG4gIHwgTEVOR1RIVFlQRV9VTktOT1dOXG4gIHwgTEVOR1RIVFlQRV9OVU1CRVJcbiAgfCBMRU5HVEhUWVBFX1BFUkNFTlRBR0VcbiAgfCBMRU5HVEhUWVBFX0VNU1xuICB8IExFTkdUSFRZUEVfRVhTXG4gIHwgTEVOR1RIVFlQRV9QWFxuICB8IExFTkdUSFRZUEVfQ01cbiAgfCBMRU5HVEhUWVBFX01NXG4gIHwgTEVOR1RIVFlQRV9JTlxuICB8IExFTkdUSFRZUEVfUFRcbiAgfCBMRU5HVEhUWVBFX1BDXG5cbnR5cGUgYW5nbGVVbml0VHlwZSA9XG4gIHwgQU5HTEVUWVBFX1VOS05PV05cbiAgfCBBTkdMRVRZUEVfVU5TUEVDSUZJRURcbiAgfCBBTkdMRVRZUEVfREVHXG4gIHwgQU5HTEVUWVBFX1JBRFxuICB8IEFOR0xFVFlQRV9HUkFEXG5cbnR5cGUgY29sb3JUeXBlID1cbiAgfCBDT0xPUlRZUEVfVU5LTk9XTlxuICB8IENPTE9SVFlQRV9SR0JDT0xPUlxuICB8IENPTE9SVFlQRV9SR0JDT0xPUl9JQ0NDT0xPUlxuICB8IENPTE9SVFlQRV9DVVJSRU5UQ09MT1JcblxudHlwZSBhbGlnbm1lbnRUeXBlID1cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1VOS05PV05cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX05PTkVcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JTlxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSU5cbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlEXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1JRFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNSURcbiAgfCBQUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUFYXG4gIHwgUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlEWU1BWFxuICB8IFBSRVNFUlZFQVNQRUNUUkFUSU9fWE1BWFlNQVhcblxudHlwZSBtZWV0T3JTbGljZVR5cGUgPVxuICB8IE1FRVRPUlNMSUNFX1VOS05PV05cbiAgfCBNRUVUT1JTTElDRV9NRUVUXG4gIHwgTUVFVE9SU0xJQ0VfU0xJQ0VcblxudHlwZSB0cmFuc2Zvcm1UeXBlID1cbiAgfCBUUkFOU0ZPUk1fVU5LTk9XTlxuICB8IFRSQU5TRk9STV9NQVRSSVhcbiAgfCBUUkFOU0ZPUk1fVFJBTlNMQVRFXG4gIHwgVFJBTlNGT1JNX1NDQUxFXG4gIHwgVFJBTlNGT1JNX1JPVEFURVxuICB8IFRSQU5TRk9STV9TS0VXWFxuICB8IFRSQU5TRk9STV9TS0VXWVxuXG50eXBlIHpvb21BbmRQYW5UeXBlID1cbiAgfCBaT09NQU5EUEFOX1VOS05PV05cbiAgfCBaT09NQU5EUEFOX0RJU0FCTEVcbiAgfCBaT09NQU5EUEFOX01BR05JRllcblxudHlwZSBsZW5ndGhBZGp1c3QgPVxuICB8IExFTkdUSEFESlVTVF9VTktOT1dOXG4gIHwgTEVOR1RIQURKVVNUX1NQQUNJTkdcbiAgfCBMRU5HVEhBREpVU1RfU1BBQ0lOR0FOREdMWVBIU1xuXG50eXBlIHVuaXRUeXBlID1cbiAgfCBVTklUX1RZUEVfVU5LTk9XTlxuICB8IFVOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRVxuICB8IFVOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmVuZGVyaW5nSW50ZW50ICopXG50eXBlIGludGVudFR5cGUgPVxuICB8IFJFTkRFUklOR19JTlRFTlRfVU5LTk9XTlxuICB8IFJFTkRFUklOR19JTlRFTlRfQVVUT1xuICB8IFJFTkRFUklOR19JTlRFTlRfUEVSQ0VQVFVBTFxuICB8IFJFTkRFUklOR19JTlRFTlRfUkVMQVRJVkVfQ09MT1JJTUVUUklDXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9TQVRVUkFUSU9OXG4gIHwgUkVOREVSSU5HX0lOVEVOVF9BQlNPTFVURV9DT0xPUklNRVRSSUNcblxuKCogUGF0aCBTZWdtZW50IFR5cGVzICopXG50eXBlIHBhdGhTZWdtZW50VHlwZSA9XG4gIHwgUEFUSFNFR19VTktOT1dOXG4gIHwgUEFUSFNFR19DTE9TRVBBVEhcbiAgfCBQQVRIU0VHX01PVkVUT19BQlNcbiAgfCBQQVRIU0VHX01PVkVUT19SRUxcbiAgfCBQQVRIU0VHX0xJTkVUT19BQlNcbiAgfCBQQVRIU0VHX0xJTkVUT19SRUxcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTXG4gIHwgUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUxcbiAgfCBQQVRIU0VHX0FSQ19BQlNcbiAgfCBQQVRIU0VHX0FSQ19SRUxcbiAgfCBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCU1xuICB8IFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfUkVMXG4gIHwgUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTXG4gIHwgUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMXG4gIHwgUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlNcbiAgfCBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTFxuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCU1xuICB8IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTFxuXG4oKiB0ZXh0UGF0aCBNZXRob2QgVHlwZXMgKilcbnR5cGUgdGV4dFBhdGhNZXRob2RUeXBlID1cbiAgfCBURVhUUEFUSF9NRVRIT0RUWVBFX1VOS05PV05cbiAgfCBURVhUUEFUSF9NRVRIT0RUWVBFX0FMSUdOXG4gIHwgVEVYVFBBVEhfTUVUSE9EVFlQRV9TVFJFVENIXG5cbigqIHRleHRQYXRoIFNwYWNpbmcgVHlwZXMgKilcbnR5cGUgdGV4dFBhdGhTcGFjaW5nVHlwZSA9XG4gIHwgVEVYVFBBVEhfU1BBQ0lOR1RZUEVfVU5LTk9XTlxuICB8IFRFWFRQQVRIX1NQQUNJTkdUWVBFX0FVVE9cbiAgfCBURVhUUEFUSF9TUEFDSU5HVFlQRV9FWEFDVFxuXG4oKiBTcHJlYWQgTWV0aG9kIFR5cGVzICopXG50eXBlIHNwcmVhZE1ldGhvZFR5cGUgPVxuICB8IFNQUkVBRE1FVEhPRF9VTktOT1dOXG4gIHwgU1BSRUFETUVUSE9EX1BBRFxuICB8IFNQUkVBRE1FVEhPRF9SRUZMRUNUXG4gIHwgU1BSRUFETUVUSE9EX1JFUEVBVFxuXG50eXBlIHN1c3BlbmRIYW5kbGVJRFxuXG4oKioqKilcblxuY2xhc3MgdHlwZSBbJ2FdIGFuaW1hdGVkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGJhc2VWYWwgOiAnYSBwcm9wXG5cbiAgICBtZXRob2QgYW5pbVZhbCA6ICdhIHByb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgWydhXSBsaXN0ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG51bWJlck9mSXRlbXMgOiBpbnQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGNsZWFyIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5pdGlhbGl6ZSA6ICdhIC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBnZXRJdGVtIDogaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCBpbnNlcnRJdGVtQmVmb3JlIDogJ2EgLT4gaW50IC0+ICdhIG1ldGhcblxuICAgIG1ldGhvZCByZXBsYWNlSXRlbSA6ICdhIC0+IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgcmVtb3ZlSXRlbSA6IGludCAtPiAnYSBtZXRoXG5cbiAgICBtZXRob2QgYXBwZW5kSXRlbSA6ICdhIC0+ICdhIG1ldGhcbiAgZW5kXG5cbigqKioqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBlbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb20uZWxlbWVudFxuXG4gICAgbWV0aG9kIGlkIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHhtbGJhc2UgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2Qgb3duZXJTVkdFbGVtZW50IDogc3ZnRWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3cG9ydEVsZW1lbnQgOiBlbGVtZW50IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkU3RyaW5nICopXG5hbmQgYW5pbWF0ZWRTdHJpbmcgPSBbanNfc3RyaW5nIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEJvb2xlYW4gKilcbmFuZCBhbmltYXRlZEJvb2xlYW4gPSBbYm9vbCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCAqKVxuYW5kIHN0cmluZ0xpc3QgPSBbanNfc3RyaW5nIHRdIGxpc3RcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gKilcbmFuZCBhbmltYXRlZEVudW1lcmF0aW9uID0gW2ludCAoKnNob3J0KildIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZEludGVnZXIgKilcbmFuZCBhbmltYXRlZEludGVnZXIgPSBbaW50XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWROdW1iZXIgKilcbmFuZCBhbmltYXRlZE51bWJlciA9IFtmbG9hdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR051bWJlckxpc3QgKilcbmFuZCBudW1iZXJMaXN0ID0gW251bWJlciB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZE51bWJlckxpc3QgKilcbmFuZCBhbmltYXRlZE51bWJlckxpc3QgPSBbbnVtYmVyTGlzdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTGVuZ3RoICopXG5hbmQgbGVuZ3RoID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHVuaXRUeXBlIDogbGVuZ3RoVW5pdFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHZhbHVlSW5TcGVjaWZpZWRVbml0cyA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUFzU3RyaW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIG5ld1ZhbHVlU3BlY2lmaWVkVW5pdHMgOiBsZW5ndGhVbml0VHlwZSAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyA6IGxlbmd0aFVuaXRUeXBlIC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkTGVuZ3RoICopXG5hbmQgYW5pbWF0ZWRMZW5ndGggPSBbbGVuZ3RoIHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdMZW5ndGhMaXN0ICopXG5hbmQgbGVuZ3RoTGlzdCA9IFtsZW5ndGggdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0ICopXG5hbmQgYW5pbWF0ZWRMZW5ndGhMaXN0ID0gW2xlbmd0aExpc3QgdF0gYW5pbWF0ZWRcblxuKCogaW50ZXJmYWNlIFNWR0FuZ2xlICopXG5hbmQgYW5nbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgdW5pdFR5cGUgOiBhbmdsZVVuaXRUeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2YWx1ZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB2YWx1ZUluU3BlY2lmaWVkVW5pdHMgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgdmFsdWVBc1N0cmluZyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBuZXdWYWx1ZVNwZWNpZmllZFVuaXRzIDogYW5nbGVVbml0VHlwZSAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyA6IGFuZ2xlVW5pdFR5cGUgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZWRBbmdsZSAqKVxuYW5kIGFuaW1hdGVkQW5nbGUgPSBbYW5nbGUgdF0gYW5pbWF0ZWRcblxuKCogWFhYWFggTW92ZSBpdCAqKVxuYW5kIHJnYkNvbG9yID0gb2JqZWN0IGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29sb3IgKilcbmFuZCBjb2xvciA9XG4gIG9iamVjdFxuICAgICgqIFhYWCBpbmhlcml0IGNzc1ZhbHVlICopXG4gICAgbWV0aG9kIGNvbG9yVHlwZSA6IGNvbG9yVHlwZSByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmdiQ29sb3IgOiByZ2JDb2xvciB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpY2NDb2xvciA6IGljY0NvbG9yIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNldFJHQkNvbG9yIDoganNfc3RyaW5nIHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0UkdCQ29sb3JJQ0NDb2xvciA6IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldENvbG9yIDogY29sb3JUeXBlIC0+IGpzX3N0cmluZyB0IC0+IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0lDQ0NvbG9yICopXG5hbmQgaWNjQ29sb3IgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29sb3JQcm9maWxlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGNvbG9ycyA6IG51bWJlckxpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUmVjdCAqKVxuYW5kIHJlY3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFJlY3QgKilcbmFuZCBhbmltYXRlZFJlY3QgPSBbcmVjdCB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU3R5bGFibGUgKilcbmFuZCBzdHlsYWJsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBjbGFzc05hbWUgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzdHlsZSA6IERvbV9odG1sLmNzc1N0eWxlRGVjbGFyYXRpb24gdCByZWFkb25seV9wcm9wXG4gICAgKCogICBDU1NWYWx1ZSBnZXRQcmVzZW50YXRpb25BdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5hbWUpOyAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xvY2F0YWJsZSAqKVxuYW5kIGxvY2F0YWJsZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBuZWFyZXN0Vmlld3BvcnRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCA6IGVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0QkJveCA6IHJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q1RNIDogbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFNjcmVlbkNUTSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQgOiBlbGVtZW50IHQgLT4gbWF0cml4IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RyYW5zZm9ybWFibGUgKilcbmFuZCB0cmFuc2Zvcm1hYmxlID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBsb2NhdGFibGVcblxuICAgIG1ldGhvZCB0cmFuc2Zvcm0gOiBhbmltYXRlZFRyYW5zZm9ybUxpc3QgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVGVzdHMgKilcbmFuZCB0ZXN0cyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByZXF1aXJlZEZlYXR1cmVzIDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByZXF1aXJlZEV4dGVuc2lvbnMgOiBzdHJpbmdMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHN5c3RlbUxhbmd1YWdlIDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoYXNFeHRlbnNpb24gOiBqc19zdHJpbmcgdCAtPiBib29sIHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xhbmdTcGFjZSAqKVxuYW5kIGxhbmdTcGFjZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB4bWxsYW5nIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHhtbHNwYWNlIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgKilcbmFuZCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgOiBhbmltYXRlZEJvb2xlYW4gdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRml0VG9WaWV3Qm94ICopXG5hbmQgZml0VG9WaWV3Qm94ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHZpZXdCb3ggOiBhbmltYXRlZFJlY3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcHJlc2VydmVBc3BlY3RSYXRpbyA6IGFuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdab29tQW5kUGFuICopXG5hbmQgem9vbUFuZFBhbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB6b29tQW5kUGFuIDogem9vbUFuZFBhblR5cGUgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1ZpZXdTcGVjICopXG5hbmQgdmlld1NwZWMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHpvb21BbmRQYW5cblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBtZXRob2QgdHJhbnNmb3JtIDogdHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3VGFyZ2V0IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB2aWV3Qm94U3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdHJhbnNmb3JtU3RyaW5nIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdUYXJnZXRTdHJpbmcgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVVJJUmVmZXJlbmNlICopXG5hbmQgdXJpUmVmZXJlbmNlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGhyZWYgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdDU1NSdWxlIDogQ1NTUnVsZSAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT0xPUl9QUk9GSUxFX1JVTEUgPSA3OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0RvY3VtZW50ICopXG5hbmQgZG9jdW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFtlbGVtZW50XSBEb20uZG9jdW1lbnRcblxuICAgICgqWFhYIGluaGVyaXQgZG9jdW1lbnRFdmVudCAqKVxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCByZWZlcnJlciA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBkb21haW4gOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgX1VSTCA6IGpzX3N0cmluZyB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290RWxlbWVudCA6IHN2Z0VsZW1lbnQgdCBvcHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIHJvb3RFbGVtZW50IHdpbGwgYmUgbnVsbCBvciB1bmRlZmluZWQgaW4gYW4gaHRtbCBjb250ZXh0ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHU1ZHRWxlbWVudCAqKVxuYW5kIHN2Z0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgbG9jYXRhYmxlXG5cbiAgICBpbmhlcml0IGZpdFRvVmlld0JveFxuXG4gICAgaW5oZXJpdCB6b29tQW5kUGFuXG5cbiAgICAoKlhYWCBpbmhlcml0IGRvY3VtZW50ZXZlbnQsIHZpZXdjc3MsIGRvY3VtZW50Y3NzICopXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb250ZW50U2NyaXB0VHlwZSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBjb250ZW50U3R5bGVUeXBlIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIHZpZXdwb3J0IDogcmVjdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwaXhlbFVuaXRUb01pbGxpbWV0ZXJYIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBpeGVsVW5pdFRvTWlsbGltZXRlclkgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2NyZWVuUGl4ZWxVbml0VG9NaWxsaW1ldGVyWCA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBzY3JlZW5QaXhlbFVuaXRUb01pbGxpbWV0ZXJZIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHVzZUN1cnJlbnRWaWV3IDogYm9vbCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VmlldyA6IHZpZXdTcGVjIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGN1cnJlbnRTY2FsZSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCBjdXJyZW50VHJhbnNsYXRlIDogcG9pbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc3VzcGVuZFJlZHJhdyA6IGludCAtPiBzdXNwZW5kSGFuZGxlSUQgbWV0aFxuXG4gICAgbWV0aG9kIHVuc3VzcGVuZFJlZHJhdyA6IHN1c3BlbmRIYW5kbGVJRCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB1bnN1c3BlbmRSZWRyYXdBbGwgOiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBmb3JjZVJlZHJhdyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHBhdXNlQW5pbWF0aW9ucyA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHVucGF1c2VBbmltYXRpb25zIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYW5pbWF0aW9uc1BhdXNlZCA6IGJvb2wgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q3VycmVudFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0Q3VycmVudFRpbWUgOiBpbnQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0SW50ZXJzZWN0aW9uTGlzdCA6IHJlY3QgdCAtPiBlbGVtZW50IHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RW5jbG9zdXJlTGlzdCA6IHJlY3QgdCAtPiBlbGVtZW50IHQgLT4gZWxlbWVudCBEb20ubm9kZUxpc3QgdCBtZXRoXG5cbiAgICBtZXRob2QgY2hlY2tJbnRlcnNlY3Rpb24gOiBlbGVtZW50IHQgLT4gcmVjdCB0IC0+IGJvb2wgdFxuXG4gICAgbWV0aG9kIGNoZWNrRW5jbG9zdXJlIDogZWxlbWVudCB0IC0+IHJlY3QgdCAtPiBib29sIHRcblxuICAgIG1ldGhvZCBkZXNlbGVjdEFsbCA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR051bWJlciA6IG51bWJlciB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdMZW5ndGggOiBsZW5ndGggdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHQW5nbGUgOiBhbmdsZSB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQb2ludCA6IHBvaW50IHQgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR01hdHJpeCA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdSZWN0IDogcmVjdCB0IG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdUcmFuc2Zvcm0gOiB0cmFuc2Zvcm0gdCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHVHJhbnNmb3JtRnJvbU1hdHJpeCA6IG1hdHJpeCB0IC0+IHRyYW5zZm9ybSB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRFbGVtZW50QnlJZCA6IGpzX3N0cmluZyB0IC0+IERvbS5lbGVtZW50IHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0dFbGVtZW50ICopXG5hbmQgZ0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0RlZnNFbGVtZW50ICopXG5hbmQgZGVmc0VsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICAgICgqIFhYWFhYWFggPyBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRGVzY0VsZW1lbnQgKilcbmFuZCBkZXNjRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgICAoKiBYWFhYWFhYID8gaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldCAqKVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RpdGxlRWxlbWVudCAqKVxuYW5kIHRpdGxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTeW1ib2xFbGVtZW50ICopXG5hbmQgc3ltYm9sRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgIGluaGVyaXQgRG9tX2h0bWwuZXZlbnRUYXJnZXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdVc2VFbGVtZW50ICopXG5hbmQgdXNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpbnN0YW5jZVJvb3QgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5pbWF0ZWRJbnN0YW5jZVJvb3QgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG5hbmQgZWxlbWVudEluc3RhbmNlID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIGNvcnJlc3BvbmRpbmdFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjb3JyZXNwb25kaW5nVXNlRWxlbWVudCA6IHVzZUVsZW1lbnQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcGFyZW50Tm9kZSA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjaGlsZE5vZGVzIDogZWxlbWVudEluc3RhbmNlTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaXJzdENoaWxkIDogZWxlbWVudEluc3RhbmNlIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RDaGlsZCA6IGVsZW1lbnRJbnN0YW5jZSB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBwcmV2aW91c1NpYmxpbmcgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgbmV4dFNpYmxpbmcgOiBlbGVtZW50SW5zdGFuY2UgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxlbWVudEluc3RhbmNlTGlzdCAqKVxuYW5kIGVsZW1lbnRJbnN0YW5jZUxpc3QgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbGVuZ3RoIDogaW50IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBpdGVtIDogaW50IC0+IGVsZW1lbnRJbnN0YW5jZSB0XG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHSW1hZ2VFbGVtZW50ICopXG5hbmQgaW1hZ2VFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gcHJlc2VydmVBc3BlY3RSYXRpbyAqKVxuICBlbmRcblxuYW5kIHN3aXRjaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICBlbmRcblxuKCogWFhYIGRlcHJlY2F0ZWQgPT4gaW50ZXJmYWNlIEdldFNWR0RvY3VtZW50ID0+IFNWR0RvY3VtZW50IGdldFNWR0RvY3VtZW50KCkgKilcblxuKCogaW50ZXJmYWNlIFNWR1N0eWxlRWxlbWVudCAqKVxuYW5kIHN0eWxlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIG1ldGhvZCB0eXBlXyA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCBtZWRpYSA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB0aXRsZSA6IGpzX3N0cmluZyB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2ludCAqKVxuYW5kIHBvaW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHggOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXRyaXhUcmFuc2Zvcm0gOiBtYXRyaXggdCAtPiBwb2ludCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2ludExpc3QgKilcbmFuZCBwb2ludExpc3QgPSBbcG9pbnQgdF0gbGlzdFxuXG4oKiBpbnRlcmZhY2UgU1ZHTWF0cml4ICopXG5hbmQgbWF0cml4ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGEgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYiA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGQgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZSA6IGZsb2F0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmIDogZmxvYXQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG11bHRpcGx5IDogbWF0cml4IHQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIGludmVyc2UgOiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2QgdHJhbnNsYXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNjYWxlIDogZmxvYXQgLT4gbWF0cml4IHQgbWV0aFxuXG4gICAgbWV0aG9kIHNjYWxlTm9uVW5pZm9ybSA6IGZsb2F0IC0+IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCByb3RhdGUgOiBmbG9hdCAtPiBtYXRyaXggdCBtZXRoXG5cbiAgICBtZXRob2Qgcm90YXRlRnJvbVZlY3RvciA6IGZsb2F0IC0+IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBmbGlwWCA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBmbGlwWSA6IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBza2V3WCA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcblxuICAgIG1ldGhvZCBza2V3WSA6IGZsb2F0IC0+IG1hdHJpeCB0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdUcmFuc2Zvcm0gKilcbmFuZCB0cmFuc2Zvcm0gPVxuICBvYmplY3RcbiAgICBtZXRob2QgX3R5cGUgOiB0cmFuc2Zvcm1UeXBlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtYXRyaXggOiBtYXRyaXggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYW5nbGUgOiBmbG9hdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0TWF0cml4IDogbWF0cml4IHQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0VHJhbnNsYXRlIDogZmxvYXQgLT4gZmxvYXQgLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2Qgc2V0U2NhbGUgOiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRSb3RhdGUgOiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBzZXRTa2V3WCA6IGZsb2F0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHNldFNrZXdZIDogZmxvYXQgLT4gdW5pdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCAqKVxuYW5kIHRyYW5zZm9ybUxpc3QgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IFt0cmFuc2Zvcm0gdF0gbGlzdFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1RyYW5zZm9ybUZyb21NYXRyaXggOiBtYXRyaXggLT4gdHJhbnNmb3JtIHQgbWV0aFxuXG4gICAgbWV0aG9kIGNvbnNvbGlkYXRlIDogdHJhbnNmb3JtIHQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVkVHJhbnNmb3JtTGlzdCAqKVxuYW5kIGFuaW1hdGVkVHJhbnNmb3JtTGlzdCA9IFt0cmFuc2Zvcm1MaXN0IHRdIGFuaW1hdGVkXG5cbigqIGludGVyZmFjZSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvICopXG5hbmQgcHJlc2VydmVBc3BlY3RSYXRpbyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbGlnbiA6IGFsaWdubWVudFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1lZXRPclNsaWNlIDogbWVldE9yU2xpY2VUeXBlIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gKilcbmFuZCBhbmltYXRlZFByZXNlcnZlQXNwZWN0UmF0aW8gPSBbcHJlc2VydmVBc3BlY3RSYXRpbyB0XSBhbmltYXRlZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZyAqKVxuYW5kIHBhdGhTZWcgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcGF0aFNlZ1R5cGUgOiBwYXRoU2VnbWVudFR5cGUgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHBhdGhTZWdUeXBlQXNMZXR0ZXIgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCAqKVxuYW5kIHBhdGhTZWdDbG9zZVBhdGggPSBwYXRoU2VnXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTW92ZXRvQWJzICopXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ01vdmV0b1JlbCAqKVxuYW5kIHBhdGhTZWdNb3ZldG8gPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpbmV0b0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9SZWwgKilcbmFuZCBwYXRoU2VnTGluZXRvID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsICopXG5hbmQgcGF0aFNlZ0N1cnZldG9DdWJpYyA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgcGF0aFNlZ1xuXG4gICAgbWV0aG9kIHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB4MSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5MSA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB4MiA6IGZsb2F0IHByb3BcblxuICAgIG1ldGhvZCB5MiA6IGZsb2F0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsICopXG5hbmQgcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeDEgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgeTEgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0FyY0FicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdBcmNSZWwqKVxuYW5kIHBhdGhTZWdBcmMgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB5IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHIxIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHIyIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGFuZ2xlIDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIGxhcmdlQXJjRmxhZyA6IGJvb2wgdCBwcm9wXG5cbiAgICBtZXRob2Qgc3dlZXBGbGFnIDogYm9vbCB0IHByb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVsICopXG5hbmQgcGF0aFNlZ0xpbmV0b0hvcml6b250YWwgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB4IDogZmxvYXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnMgKilcbigqIGludGVyZmFjZSBTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwgKilcbmFuZCBwYXRoU2VnTGluZXRvVmVydGljYWwgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHBhdGhTZWdcblxuICAgIG1ldGhvZCB5IDogZmxvYXRcbiAgZW5kXG5cbmFuZCBwYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0XG5cbiAgICBtZXRob2QgeSA6IGZsb2F0XG5cbiAgICBtZXRob2QgeDIgOiBmbG9hdFxuXG4gICAgbWV0aG9kIHkyIDogZmxvYXRcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyAqKVxuKCogaW50ZXJmYWNlIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsICAqKVxuYW5kIHBhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBwYXRoU2VnXG5cbiAgICBtZXRob2QgeCA6IGZsb2F0XG5cbiAgICBtZXRob2QgeSA6IGZsb2F0XG4gIGVuZFxuXG5hbmQgcGF0aFNlZ0xpc3QgPSBbcGF0aFNlZyB0XSBsaXN0XG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFBhdGhEYXRhICopXG5hbmQgYW5pbWF0ZWRQYXRoRGF0YSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBwYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIG5vcm1hbGl6ZWRQYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuXG4gICAgbWV0aG9kIGFuaW1hdGVkUGF0aFNlZ0xpc3QgOiBwYXRoU2VnTGlzdCB0IHByb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZE5vcm1hbGl6ZWRQYXRoU2VnTGlzdCA6IHBhdGhTZWdMaXN0IHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BhdGhFbGVtZW50ICopXG5hbmQgcGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBhdGhEYXRhXG5cbiAgICBtZXRob2QgcGF0aExlbmd0aCA6IGFuaW1hdGVkTnVtYmVyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldFRvdGFsTGVuZ3RoIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFBvaW50QXRMZW5ndGggOiBmbG9hdCAtPiBwb2ludCB0IG1ldGhcblxuICAgIG1ldGhvZCBnZXRQYXRoU2VnQXRMZW5ndGggOiBmbG9hdCAtPiBpbnRcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ2xvc2VQYXRoIDogcGF0aFNlZ0Nsb3NlUGF0aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ01vdmV0b0FicyA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdNb3ZldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdNb3ZldG9SZWwgOiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnTW92ZXRvIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvQWJzIDogZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0xpbmV0byBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1JlbCA6IGZsb2F0IC0+IGZsb2F0IC0+IHBhdGhTZWdMaW5ldG8gbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0FicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWMgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdBcmNBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gYm9vbCB0IC0+IGJvb2wgdCAtPiBwYXRoU2VnQXJjIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQXJjUmVsIDpcbiAgICAgIGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGZsb2F0IC0+IGJvb2wgdCAtPiBib29sIHQgLT4gcGF0aFNlZ0FyYyBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnMgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvSG9yaXpvbnRhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWwgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvSG9yaXpvbnRhbCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzIDogZmxvYXQgLT4gcGF0aFNlZ0xpbmV0b1ZlcnRpY2FsIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWwgOiBmbG9hdCAtPiBwYXRoU2VnTGluZXRvVmVydGljYWwgbWV0aFxuXG4gICAgbWV0aG9kIGNyZWF0ZVNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnMgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbCA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoIG1ldGhcblxuICAgIG1ldGhvZCBjcmVhdGVTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFicyA6XG4gICAgICBmbG9hdCAtPiBmbG9hdCAtPiBwYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aCBtZXRoXG5cbiAgICBtZXRob2QgY3JlYXRlU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWwgOlxuICAgICAgZmxvYXQgLT4gZmxvYXQgLT4gcGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGggbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1JlY3RFbGVtZW50ICopXG5hbmQgcmVjdEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ2lyY2xlRWxlbWVudCAqKVxuYW5kIGNpcmNsZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgbWV0aG9kIGN4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3kgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRWxsaXBzZUVsZW1lbnQgKilcbmFuZCBlbGxpcHNlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgY3ggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHJ4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcnkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdMaW5lRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBsaW5lRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBpbmhlcml0IERvbV9odG1sLmV2ZW50VGFyZ2V0XG5cbiAgICBtZXRob2QgeDEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHgyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRlZFBvaW50cyAqKVxuYW5kIGFuaW1hdGVkUG9pbnRzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBvaW50cyA6IHBvaW50TGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBhbmltYXRlZHBvaW50cyA6IHBvaW50TGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQb2x5bGluZUVsZW1lbnQgKilcbmFuZCBwb2x5TGluZUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBvaW50c1xuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1BvbHlnb25FbGVtZW50ICopXG5hbmQgcG9seWdvbkVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdGVzdHNcblxuICAgIGluaGVyaXQgbGFuZ1NwYWNlXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuXG4gICAgaW5oZXJpdCBhbmltYXRlZFBvaW50c1xuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRDb250ZW50RWxlbWVudCAqKVxuYW5kIHRleHRDb250ZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBEb21faHRtbC5ldmVudFRhcmdldFxuXG4gICAgbWV0aG9kIHRleHRMZW5ndGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsZW5ndGhBZGp1c3QgOiBsZW5ndGhBZGp1c3QgYW5pbWF0ZWQgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZ2V0TnVtYmVyT2ZDaGFycyA6IGludCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoIDogZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFN1YlN0cmluZ0xlbmd0aCA6IGludCAtPiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldFN0YXJ0UG9zaXRpb25PZkNoYXIgOiBpbnQgLT4gcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RW5kUG9zaXRpb25PZkNoYXIgOiBpbnQgLT4gcG9pbnQgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0RXh0ZW50T2ZDaGFyIDogaW50IC0+IHJlY3QgdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Um90YXRpb25PZkNoYXIgOiBpbnQgLT4gZmxvYXQgbWV0aFxuXG4gICAgbWV0aG9kIGdldENoYXJOdW1BdFBvc2l0aW9uIDogcG9pbnQgLT4gaW50IG1ldGhcblxuICAgIG1ldGhvZCBzZWxlY3RTdWJTdHJpbmcgOiBpbnQgLT4gaW50IC0+IHVuaXQgbWV0aFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQgKilcbmFuZCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0Q29udGVudEVsZW1lbnRcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGhMaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHggOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZHkgOiBhbmltYXRlZExlbmd0aExpc3QgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm90YXRlIDogYW5pbWF0ZWROdW1iZXJMaXN0IHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRFbGVtZW50ICopXG5hbmQgdGV4dEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuICAgIGluaGVyaXQgdHJhbnNmb3JtYWJsZVxuICBlbmRcblxuYW5kIHRzcGFuRWxlbWVudCA9IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuYW5kIHRyZWZFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCB0ZXh0UG9zaXRpb25pbmdFbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1RleHRQYXRoRWxlbWVudCAqKVxuYW5kIHRleHRQYXRoRWxlbWVudE1ldGhvZCA9IFt0ZXh0UGF0aE1ldGhvZFR5cGVdIGFuaW1hdGVkXG5cbmFuZCB0ZXh0UGF0aEVsZW1lbnRTcGFjaW5nID0gW3RleHRQYXRoU3BhY2luZ1R5cGVdIGFuaW1hdGVkXG5cbmFuZCB0ZXh0UGF0aEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRDb250ZW50RWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIG1ldGhvZCBzdGFydE9mZnNldCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1ldGhvZF8gOiB0ZXh0UGF0aEVsZW1lbnRNZXRob2QgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwYWNpbmcgOiB0ZXh0UGF0aEVsZW1lbnRTcGFjaW5nIHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdBbHRHbHlwaEVsZW1lbnQgKilcbmFuZCBhbHRHbHlwaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IHRleHRQb3NpdGlvbmluZ0VsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBtZXRob2QgZ2x5cGhSZWYgOiBqc19zdHJpbmcgdCBwcm9wXG5cbiAgICBtZXRob2QgZm9ybWF0IDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FsdEdseXBoRGVmRWxlbWVudCAqKVxuYW5kIGFsdEdseXBoRGVmRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0FsdEdseXBoSXRlbUVsZW1lbnQgKilcbmFuZCBhbHRHbHlwaEl0ZW1FbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHR2x5cGhSZWZFbGVtZW50ICopXG5hbmQgZ2x5cGhSZWZFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgbWV0aG9kIGdseXBoUmVmIDoganNfc3RyaW5nIHQgcHJvcFxuXG4gICAgbWV0aG9kIGZvcm1hdCA6IGpzX3N0cmluZyB0IHByb3BcblxuICAgIG1ldGhvZCB4IDogZmxvYXQgcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHggOiBmbG9hdCBwcm9wXG5cbiAgICBtZXRob2QgZHkgOiBmbG9hdCBwcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHUGFpbnQgOiBTVkdDb2xvciB7ICopXG5cbigqICAgLy8gUGFpbnQgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfUkdCQ09MT1JfSUNDQ09MT1IgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX05PTkUgPSAxMDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfQ1VSUkVOVENPTE9SID0gMTAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9OT05FID0gMTAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9DVVJSRU5UQ09MT1IgPSAxMDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19QQUlOVFRZUEVfVVJJX1JHQkNPTE9SID0gMTA1OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfUEFJTlRUWVBFX1VSSV9SR0JDT0xPUl9JQ0NDT0xPUiA9IDEwNjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1BBSU5UVFlQRV9VUkkgPSAxMDc7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHBhaW50VHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cmk7ICopXG5cbigqICAgdm9pZCBzZXRVcmkoaW4gRE9NU3RyaW5nIHVyaSk7ICopXG4oKiAgIHZvaWQgc2V0UGFpbnQoaW4gdW5zaWduZWQgc2hvcnQgcGFpbnRUeXBlLCBpbiBET01TdHJpbmcgdXJpLCBpbiBET01TdHJpbmcgcmdiQ29sb3IsIGluIERPTVN0cmluZyBpY2NDb2xvcikgcmFpc2VzKFNWR0V4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHTWFya2VyRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0xhbmdTcGFjZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHU3R5bGFibGUsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpdFRvVmlld0JveCB7ICopXG5cbigqICAgLy8gTWFya2VyIFVuaXQgVHlwZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUlVOSVRTX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSVU5JVFNfVVNFUlNQQUNFT05VU0UgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSVU5JVFNfU1RST0tFV0lEVEggPSAyOyAqKVxuXG4oKiAgIC8vIE1hcmtlciBPcmllbnRhdGlvbiBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfTUFSS0VSX09SSUVOVF9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01BUktFUl9PUklFTlRfQVVUTyA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVJLRVJfT1JJRU5UX0FOR0xFID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggcmVmWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHJlZlk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG1hcmtlclVuaXRzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggbWFya2VyV2lkdGg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCBtYXJrZXJIZWlnaHQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIG9yaWVudFR5cGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEFuZ2xlIG9yaWVudEFuZ2xlOyAqKVxuXG4oKiAgIHZvaWQgc2V0T3JpZW50VG9BdXRvKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiAgIHZvaWQgc2V0T3JpZW50VG9BbmdsZShpbiBTVkdBbmdsZSBhbmdsZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ29sb3JQcm9maWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR1VSSVJlZmVyZW5jZSwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHUmVuZGVyaW5nSW50ZW50IHsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBsb2NhbDsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOyAqKVxuKCogICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVuZGVyaW5nSW50ZW50OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0NvbG9yUHJvZmlsZVJ1bGUgOiBTVkdDU1NSdWxlLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdSZW5kZXJpbmdJbnRlbnQgeyAqKVxuKCogICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHNyYyBzZXRyYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqICAgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lIHNldHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVuZGVyaW5nSW50ZW50IHNldHJhaXNlcyhET01FeGNlcHRpb24pOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0dyYWRpZW50RWxlbWVudCAqKVxuYW5kIGFuaW1hdGVkU3ByZWFkTWV0aG9kID0gW3NwcmVhZE1ldGhvZFR5cGVdIGFuaW1hdGVkXG5cbmFuZCBncmFkaWVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGdyYWRpZW50VW5pdHM7ICopXG4gICAgbWV0aG9kIGdyYWRpZW50VHJhbnNmb3JtIDogYW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwcmVhZE1ldGhvZCA6IGFuaW1hdGVkU3ByZWFkTWV0aG9kIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCAqKVxuYW5kIGxpbmVhckdyYWRpZW50RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZ3JhZGllbnRFbGVtZW50XG5cbiAgICBtZXRob2QgeDEgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5MSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHgyIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeTIgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQgKilcbmFuZCByYWRpYWxHcmFkaWVudEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGdyYWRpZW50RWxlbWVudFxuXG4gICAgbWV0aG9kIGN4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY3kgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgZnggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1N0b3BFbGVtZW50ICopXG5hbmQgc3RvcEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcblxuICAgIG1ldGhvZCBvZmZzZXQgOiBhbmltYXRlZE51bWJlciB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdQYXR0ZXJuRWxlbWVudCAqKVxuYW5kIHBhdHRlcm5FbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHVyaVJlZmVyZW5jZVxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCBmaXRUb1ZpZXdCb3hcblxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcGF0dGVyblVuaXRzOyAqKVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcGF0dGVybkNvbnRlbnRVbml0czsgKilcbiAgICBtZXRob2QgcGF0dGVyblRyYW5zZm9ybSA6IGFuaW1hdGVkVHJhbnNmb3JtTGlzdCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQ2xpcFBhdGhFbGVtZW50ICopXG5hbmQgY2xpcFBhdGhFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGNsaXBQYXRoVW5pdHM7ICopXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHTWFza0VsZW1lbnQgKilcbmFuZCBtYXNrRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtYXNrVW5pdHM7ICopXG4gICAgKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtYXNrQ29udGVudFVuaXRzOyAqKVxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpZHRoIDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgaGVpZ2h0IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHRmlsdGVyRWxlbWVudCAqKVxuYW5kIGZpbHRlckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICAoKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIGZpbHRlclVuaXRzOyAqKVxuICAgICgqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gcHJpbWl0aXZlVW5pdHM7ICopXG4gICAgbWV0aG9kIHggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB5IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgd2lkdGggOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBoZWlnaHQgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBmaWx0ZXJSZXNYIDogYW5pbWF0ZWRJbnRlZ2VyIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGZpbHRlclJlc1kgOiBhbmltYXRlZEludGVnZXIgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgc2V0RmlsdGVyUmVzIDogaW50IC0+IGludCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgOiBTVkdTdHlsYWJsZSB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZExlbmd0aCB4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggeTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTGVuZ3RoIHdpZHRoOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRMZW5ndGggaGVpZ2h0OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgcmVzdWx0OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQmxlbmRFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQmxlbmQgTW9kZSBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX05PUk1BTCA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfTVVMVElQTFkgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVCTEVORF9NT0RFX1NDUkVFTiA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUJMRU5EX01PREVfREFSS0VOID0gNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQkxFTkRfTU9ERV9MSUdIVEVOID0gNTsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBtb2RlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gQ29sb3IgTWF0cml4IFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfTUFUUklYID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTE9STUFUUklYX1RZUEVfSFVFUk9UQVRFID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09MT1JNQVRSSVhfVFlQRV9MVU1JTkFOQ0VUT0FMUEhBID0gNDsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB0eXBlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IHZhbHVlczsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG5cbigqICAgLy8gQ29tcG9uZW50IFRyYW5zZmVyIFR5cGVzICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfSURFTlRJVFkgPSAxOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT05FTlRUUkFOU0ZFUl9UWVBFX1RBQkxFID0gMjsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9ESVNDUkVURSA9IDM7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPTkVOVFRSQU5TRkVSX1RZUEVfTElORUFSID0gNDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9ORU5UVFJBTlNGRVJfVFlQRV9HQU1NQSA9IDU7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gdHlwZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyTGlzdCB0YWJsZVZhbHVlczsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNsb3BlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgaW50ZXJjZXB0OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYW1wbGl0dWRlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZXhwb25lbnQ7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBvZmZzZXQ7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jUkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jR0VsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jQkVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVGdW5jQUVsZW1lbnQgOiBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVDb21wb3NpdGVFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIENvbXBvc2l0ZSBPcGVyYXRvcnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0ZFQ09NUE9TSVRFX09QRVJBVE9SX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfT1ZFUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9JTiA9IDI7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9PVVQgPSAzOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVRPUCA9IDQ7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19GRUNPTVBPU0lURV9PUEVSQVRPUl9YT1IgPSA1OyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRkVDT01QT1NJVEVfT1BFUkFUT1JfQVJJVEhNRVRJQyA9IDY7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gb3BlcmF0b3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGsyOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgazM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrNDsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIC8vIEVkZ2UgTW9kZSBWYWx1ZXMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfRFVQTElDQVRFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0VER0VNT0RFX1dSQVAgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfRURHRU1PREVfTk9ORSA9IDM7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciBvcmRlclg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgb3JkZXJZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IGtlcm5lbE1hdHJpeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGRpdmlzb3I7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBiaWFzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRJbnRlZ2VyIHRhcmdldFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEludGVnZXIgdGFyZ2V0WTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gZWRnZU1vZGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRCb29sZWFuIHByZXNlcnZlQWxwaGE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3VyZmFjZVNjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZGlmZnVzZUNvbnN0YW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBrZXJuZWxVbml0TGVuZ3RoWTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQgOiBTVkdFbGVtZW50IHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGF6aW11dGg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBlbGV2YXRpb247ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB6OyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFU3BvdExpZ2h0RWxlbWVudCA6IFNWR0VsZW1lbnQgeyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgeDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHk7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciB6OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRZOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcG9pbnRzQXRaOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJFeHBvbmVudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGxpbWl0aW5nQ29uZUFuZ2xlOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcblxuKCogICAvLyBDaGFubmVsIFNlbGVjdG9ycyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9VTktOT1dOID0gMDsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfUiA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19DSEFOTkVMX0cgPSAyOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfQ0hBTk5FTF9CID0gMzsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX0NIQU5ORUxfQSA9IDQ7ICopXG5cbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHNjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB4Q2hhbm5lbFNlbGVjdG9yOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiB5Q2hhbm5lbFNlbGVjdG9yOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFRmxvb2RFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgeyAqKVxuXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdGREZXZpYXRpb25YOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3RkRGV2aWF0aW9uWTsgKilcblxuKCogICB2b2lkIHNldFN0ZERldmlhdGlvbihpbiBmbG9hdCBzdGREZXZpYXRpb25YLCBpbiBmbG9hdCBzdGREZXZpYXRpb25ZKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdGRUltYWdlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdVUklSZWZlcmVuY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdMYW5nU3BhY2UsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLCAqKVxuKCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbyBwcmVzZXJ2ZUFzcGVjdFJhdGlvOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFTWVyZ2VFbGVtZW50IDogU1ZHRWxlbWVudCwgKilcbigqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVNZXJnZU5vZGVFbGVtZW50IDogU1ZHRWxlbWVudCB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gTW9ycGhvbG9neSBPcGVyYXRvcnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01PUlBIT0xPR1lfT1BFUkFUT1JfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NT1JQSE9MT0dZX09QRVJBVE9SX0VST0RFID0gMTsgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX01PUlBIT0xPR1lfT1BFUkFUT1JfRElMQVRFID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRTdHJpbmcgaW4xOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiBvcGVyYXRvcjsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHJhZGl1c1g7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciByYWRpdXNZOyAqKVxuKCogfTsgKilcblxuKCogaW50ZXJmYWNlIFNWR0ZFT2Zmc2V0RWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkU3RyaW5nIGluMTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGR4OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgZHk7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzdXJmYWNlU2NhbGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBzcGVjdWxhckNvbnN0YW50OyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc3BlY3VsYXJFeHBvbmVudDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIGtlcm5lbFVuaXRMZW5ndGhYOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIga2VybmVsVW5pdExlbmd0aFk7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVUaWxlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZFN0cmluZyBpbjE7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCA6IFNWR0VsZW1lbnQsICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7ICopXG5cbigqICAgLy8gVHVyYnVsZW5jZSBUeXBlcyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX1VOS05PV04gPSAwOyAqKVxuKCogICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVkdfVFVSQlVMRU5DRV9UWVBFX0ZSQUNUQUxOT0lTRSA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19UVVJCVUxFTkNFX1RZUEVfVFVSQlVMRU5DRSA9IDI7ICopXG5cbigqICAgLy8gU3RpdGNoIE9wdGlvbnMgKilcbigqICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1ZHX1NUSVRDSFRZUEVfVU5LTk9XTiA9IDA7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TVElUQ0hUWVBFX1NUSVRDSCA9IDE7ICopXG4oKiAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19TVElUQ0hUWVBFX05PU1RJVENIID0gMjsgKilcblxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgYmFzZUZyZXF1ZW5jeVg7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBiYXNlRnJlcXVlbmN5WTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkSW50ZWdlciBudW1PY3RhdmVzOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgc2VlZDsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkRW51bWVyYXRpb24gc3RpdGNoVGlsZXM7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZEVudW1lcmF0aW9uIHR5cGU7ICopXG4oKiB9OyAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHQ3Vyc29yRWxlbWVudCAqKVxuYW5kIGN1cnNvckVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIG1ldGhvZCB4IDogYW5pbWF0ZWRMZW5ndGggdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgeSA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FFbGVtZW50ICopXG5hbmQgYUVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgdXJpUmVmZXJlbmNlXG5cbiAgICBpbmhlcml0IHRlc3RzXG5cbiAgICBpbmhlcml0IGxhbmdTcGFjZVxuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG5cbiAgICBpbmhlcml0IHRyYW5zZm9ybWFibGVcblxuICAgIG1ldGhvZCB0YXJnZXQgOiBhbmltYXRlZFN0cmluZyB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdWaWV3RWxlbWVudCAqKVxuYW5kIHZpZXdFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBlbGVtZW50XG5cbiAgICBpbmhlcml0IGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcblxuICAgIGluaGVyaXQgZml0VG9WaWV3Qm94XG5cbiAgICBpbmhlcml0IHpvb21BbmRQYW5cblxuICAgIG1ldGhvZCB2aWV3VGFyZ2V0IDogc3RyaW5nTGlzdCB0IHJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdTY3JpcHRFbGVtZW50ICopXG5hbmQgc2NyaXB0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgbWV0aG9kIHR5cGVfIDoganNfc3RyaW5nIHQgcHJvcFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1pvb21FdmVudCA6IFVJRXZlbnQgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1JlY3Qgem9vbVJlY3RTY3JlZW47ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBwcmV2aW91c1NjYWxlOyAqKVxuKCogICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHUG9pbnQgcHJldmlvdXNUcmFuc2xhdGU7ICopXG4oKiAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBuZXdTY2FsZTsgKilcbigqICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR1BvaW50IG5ld1RyYW5zbGF0ZTsgKilcbigqIH07ICopXG5cbigqIGludGVyZmFjZSBTVkdBbmltYXRpb25FbGVtZW50ICopXG5hbmQgYW5pbWF0aW9uRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXG5cbiAgICAoKiBpbmhlcml0IGVsZW1lbnRUaW1lQ29udHJvbCAqKVxuICAgIG1ldGhvZCB0YXJnZXRFbGVtZW50IDogZWxlbWVudCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBnZXRTdGFydFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0Q3VycmVudFRpbWUgOiBmbG9hdCBtZXRoXG5cbiAgICBtZXRob2QgZ2V0U2ltcGxlRHVyYXRpb24gOiBmbG9hdCBtZXRoXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZUVsZW1lbnQgKilcbmFuZCBhbmltYXRlRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgYW5pbWF0aW9uRWxlbWVudFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR1NldEVsZW1lbnQgKilcbmFuZCBzZXRFbGVtZW50ID0gYW5pbWF0aW9uRWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQgKilcbmFuZCBhbmltYXRlTW90aW9uRWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR01QYXRoRWxlbWVudCAqKVxuYW5kIG1QYXRoRWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB1cmlSZWZlcmVuY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuICBlbmRcblxuKCogaW50ZXJmYWNlIFNWR0FuaW1hdGVDb2xvckVsZW1lbnQgKilcbmFuZCBhbmltYXRlQ29sb3JFbGVtZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBhbmltYXRpb25FbGVtZW50XG5cbiAgICBpbmhlcml0IHN0eWxhYmxlXG4gIGVuZFxuXG4oKiBpbnRlcmZhY2UgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgKilcbmFuZCBhbmltYXRlVHJhbnNmb3JtRWxlbWVudCA9IGFuaW1hdGlvbkVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRFbGVtZW50ICopXG5hbmQgZm9udEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdHbHlwaEVsZW1lbnQgKilcbigqIGludGVyZmFjZSBTVkdNaXNzaW5nR2x5cGhFbGVtZW50KilcbmFuZCBnbHlwaEVsZW1lbnQgPVxuICBvYmplY3RcbiAgICBpbmhlcml0IGVsZW1lbnRcblxuICAgIGluaGVyaXQgc3R5bGFibGVcbiAgZW5kXG5cbigqIGludGVyZmFjZSBTVkdIS2VybkVsZW1lbnQgOiBTVkdFbGVtZW50ICopXG4oKiBpbnRlcmZhY2UgU1ZHVktlcm5FbGVtZW50IDogU1ZHRWxlbWVudCAqKVxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlU3JjRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb250RmFjZVNyY0VsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb250RmFjZVVyaUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VVcmlFbGVtZW50ID0gZWxlbWVudFxuXG4oKiBpbnRlcmZhY2UgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50ICopXG5jbGFzcyB0eXBlIGZvbnRGYWNlRm9ybWF0RWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQgKilcbmNsYXNzIHR5cGUgZm9udEZhY2VOYW1lRWxlbWVudCA9IGVsZW1lbnRcblxuKCogaW50ZXJmYWNlIFNWR01ldGFkYXRhRWxlbWVudCAqKVxuY2xhc3MgdHlwZSBtZXRhZGF0YUVsZW1lbnQgPSBlbGVtZW50XG5cbigqIGludGVyZmFjZSBTVkdGb3JlaWduT2JqZWN0RWxlbWVudCAqKVxuY2xhc3MgdHlwZSBmb3JlaWduT2JqZWN0RWxlbWVudCA9XG4gIG9iamVjdFxuICAgIGluaGVyaXQgZWxlbWVudFxuXG4gICAgaW5oZXJpdCB0ZXN0c1xuXG4gICAgaW5oZXJpdCBsYW5nU3BhY2VcblxuICAgIGluaGVyaXQgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFxuXG4gICAgaW5oZXJpdCBzdHlsYWJsZVxuXG4gICAgaW5oZXJpdCB0cmFuc2Zvcm1hYmxlXG5cbiAgICBtZXRob2QgeCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHkgOiBhbmltYXRlZExlbmd0aCB0IHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB3aWR0aCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlaWdodCA6IGFuaW1hdGVkTGVuZ3RoIHQgcmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNyZWF0ZUVsZW1lbnQgKGRvYyA6IGRvY3VtZW50IHQpIG5hbWUgPSBkb2MjI2NyZWF0ZUVsZW1lbnROUyB4bWxucyAoSnMuc3RyaW5nIG5hbWUpXG5cbmxldCB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBuYW1lID0gSnMuVW5zYWZlLmNvZXJjZSAoY3JlYXRlRWxlbWVudCBkb2MgbmFtZSlcblxubGV0IGNyZWF0ZUEgZG9jIDogYUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYVwiXG5cbmxldCBjcmVhdGVBbHRHbHlwaCBkb2MgOiBhbHRHbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYWx0Z2x5cGhcIlxuXG5sZXQgY3JlYXRlQWx0R2x5cGhEZWYgZG9jIDogYWx0R2x5cGhEZWZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFsdGdseXBoZGVmXCJcblxubGV0IGNyZWF0ZUFsdEdseXBoSXRlbSBkb2MgOiBhbHRHbHlwaEl0ZW1FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFsdGdseXBoaXRlbVwiXG5cbmxldCBjcmVhdGVBbmltYXRlIGRvYyA6IGFuaW1hdGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGVcIlxuXG5sZXQgY3JlYXRlQW5pbWF0ZUNvbG9yIGRvYyA6IGFuaW1hdGVDb2xvckVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZWNvbG9yXCJcblxubGV0IGNyZWF0ZUFuaW1hdGVNb3Rpb24gZG9jIDogYW5pbWF0ZU1vdGlvbkVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiYW5pbWF0ZW1vdGlvblwiXG5cbmxldCBjcmVhdGVBbmltYXRlVHJhbnNmb3JtIGRvYyA6IGFuaW1hdGVUcmFuc2Zvcm1FbGVtZW50IHQgPVxuICB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImFuaW1hdGV0cmFuc2Zvcm1cIlxuXG5sZXQgY3JlYXRlQ2lyY2xlIGRvYyA6IGNpcmNsZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiY2lyY2xlXCJcblxubGV0IGNyZWF0ZUNsaXBQYXRoIGRvYyA6IGNsaXBQYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJjbGlwcGF0aFwiXG5cbigqIGxldCBjcmVhdGVDb2xvclByb2ZpbGUgZG9jIDogY29sb3JQcm9maWxlIHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImNvbG9yLXByb2ZpbGVcIiAqKVxubGV0IGNyZWF0ZUN1cnNvciBkb2MgOiBjdXJzb3JFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImN1cnNvclwiXG5cbmxldCBjcmVhdGVEZWZzIGRvYyA6IGRlZnNFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImRlZnNcIlxuXG5sZXQgY3JlYXRlRGVzYyBkb2MgOiBkZXNjRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJkZXNjXCJcblxubGV0IGNyZWF0ZUVsbGlwc2UgZG9jIDogZWxsaXBzZUVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZWxsaXBzZVwiXG5cbigqIGxldCBjcmVhdGVGZSogKilcbmxldCBjcmVhdGVGaWx0ZXIgZG9jIDogZmlsdGVyRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmaWx0ZXJcIlxuXG5sZXQgY3JlYXRlRm9udCBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250XCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZVwiXG5cbmxldCBjcmVhdGVGb250RmFjZUZvcm1hdCBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2UtZm9ybWF0XCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlTmFtZSBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2UtbmFtZVwiXG5cbmxldCBjcmVhdGVGb250RmFjZVNyYyBkb2MgOiBmb250RWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb250LWZhY2Utc3JjXCJcblxubGV0IGNyZWF0ZUZvbnRGYWNlVXJpIGRvYyA6IGZvbnRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImZvbnQtZmFjZS11cmlcIlxuXG5sZXQgY3JlYXRlRm9yZWlnbk9iamVjdCBkb2MgOiBmb3JlaWduT2JqZWN0RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJmb3JlaWduT2JqZWN0XCJcblxubGV0IGNyZWF0ZUcgZG9jIDogZ0VsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZ1wiXG5cbmxldCBjcmVhdGVHbHlwaCBkb2MgOiBnbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiZ2x5cGhcIlxuXG5sZXQgY3JlYXRlR2x5cGhSZWYgZG9jIDogZ2x5cGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImdseXBocmVmXCJcblxubGV0IGNyZWF0ZWhrZXJuIGRvYyA6IGVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwiaGtlcm5cIlxuXG5sZXQgY3JlYXRlSW1hZ2UgZG9jIDogaW1hZ2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImltYWdlXCJcblxubGV0IGNyZWF0ZUxpbmVFbGVtZW50IGRvYyA6IGxpbmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcImxpbmVcIlxuXG5sZXQgY3JlYXRlTGluZWFyRWxlbWVudCBkb2MgOiBsaW5lYXJHcmFkaWVudEVsZW1lbnQgdCA9XG4gIHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibGluZWFyZ3JhZGllbnRcIlxuXG4oKiBsZXQgY3JlYXRlTWFya2VyIGRvYyA6IG1hcmtlckVsZW1lbnQgKilcbmxldCBjcmVhdGVNYXNrIGRvYyA6IG1hc2tFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1hc2tcIlxuXG5sZXQgY3JlYXRlTWV0YURhdGEgZG9jIDogbWV0YWRhdGFFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcIm1ldGFkYXRhXCJcblxubGV0IGNyZWF0ZU1pc3NpbmdHbHlwaCBkb2MgOiBnbHlwaEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibWlzc2luZy1nbHlwaFwiXG5cbmxldCBjcmVhdGVNUGF0aCBkb2MgOiBtUGF0aEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwibXBhdGhcIlxuXG5sZXQgY3JlYXRlUGF0aCBkb2MgOiBwYXRoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJwYXRoXCJcblxubGV0IGNyZWF0ZVBhdHRlcm4gZG9jIDogcGF0dGVybkVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwicGF0dGVyblwiXG5cbmxldCBjcmVhdGVQb2x5Z29uIGRvYyA6IHBvbHlnb25FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBvbHlnb25cIlxuXG5sZXQgY3JlYXRlUG9seWxpbmUgZG9jIDogcG9seUxpbmVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInBvbHlsaW5lXCJcblxubGV0IGNyZWF0ZVJhZGlhbGdyYWRpZW50IGRvYyA6IHJhZGlhbEdyYWRpZW50RWxlbWVudCB0ID1cbiAgdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJyYWRpYWxncmFkaWVudFwiXG5cbmxldCBjcmVhdGVSZWN0IGRvYyA6IHJlY3RFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInJlY3RcIlxuXG5sZXQgY3JlYXRlU2NyaXB0IGRvYyA6IHNjcmlwdEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic2NyaXB0XCJcblxubGV0IGNyZWF0ZVNldCBkb2MgOiBzZXRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInNldFwiXG5cbmxldCBjcmVhdGVTdG9wIGRvYyA6IHN0b3BFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN0b3BcIlxuXG5sZXQgY3JlYXRlU3R5bGUgZG9jIDogc3R5bGVFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN0eWxlXCJcblxubGV0IGNyZWF0ZVN2ZyBkb2MgOiBzdmdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInN2Z1wiXG5cbmxldCBjcmVhdGVTd2l0Y2ggZG9jIDogc3dpdGNoRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJzd2l0Y2hcIlxuXG5sZXQgY3JlYXRlU3ltYm9sIGRvYyA6IHN5bWJvbEVsZW1lbnQgdCA9IHVuc2FmZUNyZWF0ZUVsZW1lbnQgZG9jIFwic3ltYm9sXCJcblxubGV0IGNyZWF0ZVRleHRFbGVtZW50IGRvYyA6IHRleHRFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRleHRcIlxuXG5sZXQgY3JlYXRlVGV4dHBhdGggZG9jIDogdGV4dFBhdGhFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRleHRwYXRoXCJcblxubGV0IGNyZWF0ZVRpdGxlIGRvYyA6IHRpdGxlRWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ0aXRsZVwiXG5cbmxldCBjcmVhdGVUcmVmIGRvYyA6IHRyZWZFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRyZWZcIlxuXG5sZXQgY3JlYXRlVHNwYW4gZG9jIDogdHNwYW5FbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInRzcGFuXCJcblxubGV0IGNyZWF0ZVVzZSBkb2MgOiB1c2VFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInVzZVwiXG5cbmxldCBjcmVhdGVWaWV3IGRvYyA6IHZpZXdFbGVtZW50IHQgPSB1bnNhZmVDcmVhdGVFbGVtZW50IGRvYyBcInZpZXdcIlxuXG5sZXQgY3JlYXRldmtlcm4gZG9jIDogZWxlbWVudCB0ID0gdW5zYWZlQ3JlYXRlRWxlbWVudCBkb2MgXCJ2a2VyblwiXG5cbigqKioqKVxuXG5sZXQgc3ZnX2VsZW1lbnQgOiBlbGVtZW50IHQgY29uc3RyID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9TVkdFbGVtZW50XG5cbmxldCBkb2N1bWVudCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5kb2N1bWVudFxuXG5sZXQgZ2V0RWxlbWVudEJ5SWQgaWQgOiBlbGVtZW50IHQgPVxuICBKcy5PcHQuY2FzZVxuICAgIChKcy5VbnNhZmUuZ2xvYmFsIyMuZG9jdW1lbnQjI2dldEVsZW1lbnRCeUlkIChKcy5zdHJpbmcgaWQpKVxuICAgIChmdW4gKCkgLT4gcmFpc2UgTm90X2ZvdW5kKVxuICAgIChmdW4gZSAtPiBpZiBKcy5pbnN0YW5jZW9mIGUgc3ZnX2VsZW1lbnQgdGhlbiBlIGVsc2UgcmFpc2UgTm90X2ZvdW5kKVxuXG5tb2R1bGUgQ29lcmNlVG8gPSBzdHJ1Y3RcbiAgbGV0IGVsZW1lbnQgKGUgOiAjRG9tLm5vZGUgSnMudCkgOiBlbGVtZW50IEpzLnQgSnMub3B0ID1cbiAgICBpZiBKcy5pbnN0YW5jZW9mIGUgc3ZnX2VsZW1lbnQgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpIGVsc2UgSnMubnVsbFxuXG4gIGxldCB1bnNhZmVDb2VyY2UgKGUgOiAjZWxlbWVudCB0KSB0YWcgPVxuICAgIGlmIGUjIy50YWdOYW1lIyN0b0xvd2VyQ2FzZSA9PSBKcy5zdHJpbmcgdGFnXG4gICAgdGhlbiBKcy5zb21lIChKcy5VbnNhZmUuY29lcmNlIGUpXG4gICAgZWxzZSBKcy5udWxsXG5cbiAgbGV0IGEgZSA6IGFFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhXCJcblxuICBsZXQgYWx0R2x5cGggZSA6IGFsdEdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYWx0Z2x5cGhcIlxuXG4gIGxldCBhbHRHbHlwaERlZiBlIDogYWx0R2x5cGhEZWZFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbHRnbHlwaGRlZlwiXG5cbiAgbGV0IGFsdEdseXBoSXRlbSBlIDogYWx0R2x5cGhJdGVtRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiYWx0Z2x5cGhpdGVtXCJcblxuICBsZXQgYW5pbWF0ZSBlIDogYW5pbWF0ZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGVcIlxuXG4gIGxldCBhbmltYXRlQ29sb3IgZSA6IGFuaW1hdGVDb2xvckVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImFuaW1hdGVjb2xvclwiXG5cbiAgbGV0IGFuaW1hdGVNb3Rpb24gZSA6IGFuaW1hdGVNb3Rpb25FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJhbmltYXRlbW90aW9uXCJcblxuICBsZXQgYW5pbWF0ZVRyYW5zZm9ybSBlIDogYW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQgdCBvcHQgPVxuICAgIHVuc2FmZUNvZXJjZSBlIFwiYW5pbWF0ZXRyYW5zZm9ybVwiXG5cbiAgbGV0IGNpcmNsZSBlIDogY2lyY2xlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY2lyY2xlXCJcblxuICBsZXQgY2xpcFBhdGggZSA6IGNsaXBQYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY2xpcHBhdGhcIlxuXG4gICgqIGxldCBDb2xvclByb2ZpbGUgZSA6IGNvbG9yUHJvZmlsZSB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiY29sb3ItcHJvZmlsZVwiICopXG4gIGxldCBjdXJzb3IgZSA6IGN1cnNvckVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImN1cnNvclwiXG5cbiAgbGV0IGRlZnMgZSA6IGRlZnNFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJkZWZzXCJcblxuICBsZXQgZGVzYyBlIDogZGVzY0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImRlc2NcIlxuXG4gIGxldCBlbGxpcHNlIGUgOiBlbGxpcHNlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZWxsaXBzZVwiXG5cbiAgKCogbGV0IEZlKiAqKVxuICBsZXQgZmlsdGVyIGUgOiBmaWx0ZXJFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmaWx0ZXJcIlxuXG4gIGxldCBmb250IGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udFwiXG5cbiAgbGV0IGZvbnRGYWNlIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlXCJcblxuICBsZXQgZm9udEZhY2VGb3JtYXQgZSA6IGZvbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJmb250LWZhY2UtZm9ybWF0XCJcblxuICBsZXQgZm9udEZhY2VOYW1lIGUgOiBmb250RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9udC1mYWNlLW5hbWVcIlxuXG4gIGxldCBmb250RmFjZVNyYyBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS1zcmNcIlxuXG4gIGxldCBmb250RmFjZVVyaSBlIDogZm9udEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImZvbnQtZmFjZS11cmlcIlxuXG4gIGxldCBmb3JlaWduT2JqZWN0IGUgOiBmb3JlaWduT2JqZWN0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZm9yZWlnbm9iamVjdFwiXG5cbiAgbGV0IGcgZSA6IGdFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJnXCJcblxuICBsZXQgZ2x5cGggZSA6IGdseXBoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwiZ2x5cGhcIlxuXG4gIGxldCBnbHlwaFJlZiBlIDogZ2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJnbHlwaHJlZlwiXG5cbiAgbGV0IGhrZXJuIGUgOiBlbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJoa2VyblwiXG5cbiAgbGV0IGltYWdlIGUgOiBpbWFnZUVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcImltYWdlXCJcblxuICBsZXQgbGluZUVsZW1lbnQgZSA6IGxpbmVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJsaW5lXCJcblxuICBsZXQgbGluZWFyRWxlbWVudCBlIDogbGluZWFyR3JhZGllbnRFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJsaW5lYXJncmFkaWVudFwiXG5cbiAgKCogbGV0IE1hcmtlciBlIDogbWFya2VyRWxlbWVudCAqKVxuICBsZXQgbWFzayBlIDogbWFza0VsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcIm1hc2tcIlxuXG4gIGxldCBtZXRhRGF0YSBlIDogbWV0YWRhdGFFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtZXRhZGF0YVwiXG5cbiAgbGV0IG1pc3NpbmdHbHlwaCBlIDogZ2x5cGhFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJtaXNzaW5nLWdseXBoXCJcblxuICBsZXQgbVBhdGggZSA6IG1QYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwibXBhdGhcIlxuXG4gIGxldCBwYXRoIGUgOiBwYXRoRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwicGF0aFwiXG5cbiAgbGV0IHBhdHRlcm4gZSA6IHBhdHRlcm5FbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwYXR0ZXJuXCJcblxuICBsZXQgcG9seWdvbiBlIDogcG9seWdvbkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInBvbHlnb25cIlxuXG4gIGxldCBwb2x5bGluZSBlIDogcG9seUxpbmVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJwb2x5bGluZVwiXG5cbiAgbGV0IHJhZGlhbGdyYWRpZW50IGUgOiByYWRpYWxHcmFkaWVudEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInJhZGlhbGdyYWRpZW50XCJcblxuICBsZXQgcmVjdCBlIDogcmVjdEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInJlY3RcIlxuXG4gIGxldCBzY3JpcHQgZSA6IHNjcmlwdEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInNjcmlwdFwiXG5cbiAgbGV0IHNldCBlIDogc2V0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic2V0XCJcblxuICBsZXQgc3RvcCBlIDogc3RvcEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN0b3BcIlxuXG4gIGxldCBzdHlsZSBlIDogc3R5bGVFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzdHlsZVwiXG5cbiAgbGV0IHN2ZyBlIDogc3ZnRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwic3ZnXCJcblxuICBsZXQgc3dpdGNoIGUgOiBzd2l0Y2hFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJzd2l0Y2hcIlxuXG4gIGxldCBzeW1ib2wgZSA6IHN5bWJvbEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInN5bWJvbFwiXG5cbiAgbGV0IHRleHRFbGVtZW50IGUgOiB0ZXh0RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidGV4dFwiXG5cbiAgbGV0IHRleHRwYXRoIGUgOiB0ZXh0UGF0aEVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRleHRwYXRoXCJcblxuICBsZXQgdGl0bGUgZSA6IHRpdGxlRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidGl0bGVcIlxuXG4gIGxldCB0cmVmIGUgOiB0cmVmRWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidHJlZlwiXG5cbiAgbGV0IHRzcGFuIGUgOiB0c3BhbkVsZW1lbnQgdCBvcHQgPSB1bnNhZmVDb2VyY2UgZSBcInRzcGFuXCJcblxuICBsZXQgdXNlIGUgOiB1c2VFbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ1c2VcIlxuXG4gIGxldCB2aWV3IGUgOiB2aWV3RWxlbWVudCB0IG9wdCA9IHVuc2FmZUNvZXJjZSBlIFwidmlld1wiXG5cbiAgbGV0IHZrZXJuIGUgOiBlbGVtZW50IHQgb3B0ID0gdW5zYWZlQ29lcmNlIGUgXCJ2a2VyblwiXG5lbmRcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTQgSHVnbyBIZXV6YXJkXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5cbigqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9FdmVudFNvdXJjZSAqKVxub3BlbiBKc1xub3BlbiBEb21cbm9wZW4hIEltcG9ydFxuXG50eXBlIHN0YXRlID1cbiAgfCBDT05ORUNUSU5HXG4gIHwgT1BFTlxuICB8IENMT1NFRFxuXG5jbGFzcyB0eXBlIFsnYV0gbWVzc2FnZUV2ZW50ID1cbiAgb2JqZWN0XG4gICAgaW5oZXJpdCBbJ2FdIERvbS5ldmVudFxuXG4gICAgbWV0aG9kIGRhdGEgOiBqc19zdHJpbmcgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb3JpZ2luIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGxhc3RFdmVudElkIDoganNfc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuICAgICgqIG1ldGhvZCBzb3VyY2UgOiB1bml0ICopXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGV2ZW50U291cmNlID1cbiAgb2JqZWN0ICgnc2VsZilcbiAgICBtZXRob2QgdXJsIDogc3RyaW5nIHQgcmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHdpdGhDcmVkZW50aWFscyA6IGJvb2wgdCByZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgcmVhZHlTdGF0ZSA6IHN0YXRlIHJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBjbG9zZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIG9ub3BlbiA6ICgnc2VsZiB0LCAnc2VsZiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBvbm1lc3NhZ2UgOiAoJ3NlbGYgdCwgJ3NlbGYgbWVzc2FnZUV2ZW50IHQpIGV2ZW50X2xpc3RlbmVyIHdyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb25lcnJvciA6ICgnc2VsZiB0LCAnc2VsZiBtZXNzYWdlRXZlbnQgdCkgZXZlbnRfbGlzdGVuZXIgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgb3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB3aXRoQ3JlZGVudGlhbHMgOiBib29sIHQgd3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB3aXRoQ3JlZGVudGlhbHMgYiA6IG9wdGlvbnMgdCA9XG4gIGxldCBpbml0ID0gSnMuVW5zYWZlLm9iaiBbfHxdIGluXG4gIGluaXQjIy53aXRoQ3JlZGVudGlhbHMgOj0gSnMuYm9vbCBiO1xuICBpbml0XG5cbmxldCBldmVudFNvdXJjZSA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fRXZlbnRTb3VyY2VcblxubGV0IGV2ZW50U291cmNlX29wdGlvbnMgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0V2ZW50U291cmNlXG5cbmxldCBhZGRFdmVudExpc3RlbmVyID0gRG9tLmFkZEV2ZW50TGlzdGVuZXJcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTAgSsOpcsO0bWUgVm91aWxsb25cbiAqIExhYm9yYXRvaXJlIFBQUyAtIENOUlMgVW5pdmVyc2l0w6kgUGFyaXMgRGlkZXJvdFxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIHdpdGggbGlua2luZyBleGNlcHRpb247XG4gKiBlaXRoZXIgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsXG4gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZlxuICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZVxuICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlXG4gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZVxuICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS5cbiAqKVxuXG5vcGVuIEpzXG5vcGVuISBJbXBvcnRcblxuY2xhc3MgdHlwZSBjb25zb2xlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGxvZyA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzYgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBsb2dfNyA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgbG9nXzggOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWcgOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzIgOiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGVidWdfMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRlYnVnXzUgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mbyA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb18yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fMyA6IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGluZm9fNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgaW5mb181IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm4gOiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB3YXJuXzQgOiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHdhcm5fNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvciA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfMiA6IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBlcnJvcl8zIDogXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfNCA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZXJyb3JfNSA6IF8gLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBhc3NlcnRfIDogYm9vbCB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8xIDogYm9vbCB0IC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzIgOiBib29sIHQgLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF8zIDogYm9vbCB0IC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGFzc2VydF80IDogYm9vbCB0IC0+IF8gLT4gXyAtPiBfIC0+IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgYXNzZXJ0XzUgOiBib29sIHQgLT4gXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGRpciA6IF8gLT4gdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgZGlyeG1sIDogRG9tLm5vZGUgdCAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCB0cmFjZSA6IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cF81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkIDogXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF8yIDogXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwQ29sbGFwc2VkXzMgOiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF80IDogXyAtPiBfIC0+IF8gLT4gXyAtPiB1bml0IG1ldGhcblxuICAgIG1ldGhvZCBncm91cENvbGxhcHNlZF81IDogXyAtPiBfIC0+IF8gLT4gXyAtPiBfIC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIGdyb3VwRW5kIDogdW5pdCBtZXRoXG5cbiAgICBtZXRob2QgdGltZSA6IGpzX3N0cmluZyB0IC0+IHVuaXQgbWV0aFxuXG4gICAgbWV0aG9kIHRpbWVFbmQgOiBqc19zdHJpbmcgdCAtPiB1bml0IG1ldGhcbiAgZW5kXG5cbmV4dGVybmFsIGdldF9jb25zb2xlIDogdW5pdCAtPiBjb25zb2xlIHQgPSBcImNhbWxfanNfZ2V0X2NvbnNvbGVcIlxuXG5sZXQgY29uc29sZSA9IGdldF9jb25zb2xlICgpXG4iLCIoKiBKc19vZl9vY2FtbCBsaWJyYXJ5XG4gKiBodHRwOi8vd3d3Lm9jc2lnZW4ub3JnL2pzX29mX29jYW1sL1xuICogQ29weXJpZ2h0IChDKSAyMDE1IFN0w6lwaGFuZSBMZWdyYW5kXG4gKlxuICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd2l0aCBsaW5raW5nIGV4Y2VwdGlvbjtcbiAqIGVpdGhlciB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi5cbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlXG4gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLlxuICopXG5vcGVuISBJbXBvcnRcblxudHlwZSBwb3NpdGlvbkVycm9yQ29kZVxuXG50eXBlIHdhdGNoSWRcblxuY2xhc3MgdHlwZSBjb29yZGluYXRlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsYXRpdHVkZSA6IGZsb2F0IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBsb25naXR1ZGUgOiBmbG9hdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgYWx0aXR1ZGUgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFjY3VyYWN5IDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGFsdGl0dWRlQWNjdXJhY3kgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGhlYWRpbmcgOiBmbG9hdCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIHNwZWVkIDogZmxvYXQgSnMub3B0IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcG9zaXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29vcmRzIDogY29vcmRpbmF0ZXMgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGltZXN0YW1wIDogSnMuZGF0ZSBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHBvc2l0aW9uT3B0aW9ucyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBlbmFibGVIaWdoQWNjdXJhY3kgOiBib29sIEpzLndyaXRlb25seV9wcm9wXG5cbiAgICBtZXRob2QgdGltZW91dCA6IGludCBKcy53cml0ZW9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIG1heGltdW1BZ2UgOiBpbnQgSnMud3JpdGVvbmx5X3Byb3BcbiAgZW5kXG5cbmNsYXNzIHR5cGUgcG9zaXRpb25FcnJvciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBfUEVSTUlTU0lPTl9ERU5JRURfIDogcG9zaXRpb25FcnJvckNvZGUgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9QT1NJVElPTl9VTkFWQUlMQUJMRV8gOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgX1RJTUVPVVQgOiBwb3NpdGlvbkVycm9yQ29kZSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2QgY29kZSA6IHBvc2l0aW9uRXJyb3JDb2RlIEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBtZXNzYWdlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBnZW9sb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBnZXRDdXJyZW50UG9zaXRpb24gOlxuICAgICAgICAgKHBvc2l0aW9uIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IChwb3NpdGlvbkVycm9yIEpzLnQgLT4gdW5pdCkgSnMuY2FsbGJhY2tcbiAgICAgIC0+IHBvc2l0aW9uT3B0aW9ucyBKcy50XG4gICAgICAtPiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB3YXRjaFBvc2l0aW9uIDpcbiAgICAgICAgIChwb3NpdGlvbiBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiAocG9zaXRpb25FcnJvciBKcy50IC0+IHVuaXQpIEpzLmNhbGxiYWNrXG4gICAgICAtPiBwb3NpdGlvbk9wdGlvbnMgSnMudFxuICAgICAgLT4gd2F0Y2hJZCBKcy5tZXRoXG5cbiAgICBtZXRob2QgY2xlYXJXYXRjaCA6IHdhdGNoSWQgLT4gdW5pdCBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfcG9zaXRpb25fb3B0aW9ucyAoKSA9IEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgZ2VvbG9jYXRpb24gPVxuICBsZXQgeCA9IEpzLlVuc2FmZS5nbG9iYWwjIy5uYXZpZ2F0b3IgaW5cbiAgaWYgSnMuT3B0ZGVmLnRlc3QgeCB0aGVuIHgjIy5nZW9sb2NhdGlvbiBlbHNlIHhcblxuKCogdW5kZWZpbmVkICopXG5cbmxldCBpc19zdXBwb3J0ZWQgKCkgPSBKcy5PcHRkZWYudGVzdCBnZW9sb2NhdGlvblxuIiwiY2xhc3MgdHlwZSBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHRhcmdldCA6IERvbS5ub2RlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGJvdW5kaW5nQ2xpZW50UmVjdCA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdEJvdW5kcyA6IERvbV9odG1sLmNsaWVudFJlY3QgSnMudCBKcy5vcHQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGludGVyc2VjdGlvblJlY3QgOiBEb21faHRtbC5jbGllbnRSZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGludGVyc2VjdGlvblJhdGlvIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGlzSW50ZXJzZWN0aW5nIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aW1lIDogZmxvYXQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBpbnRlcnNlY3Rpb25PYnNlcnZlck9wdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgcm9vdCA6IERvbS5ub2RlIEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCByb290TWFyZ2luIDogSnMuanNfc3RyaW5nIEpzLnQgSnMud3JpdGVvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aHJlc2hvbGQgOiBmbG9hdCBKcy5qc19hcnJheSBKcy50IEpzLndyaXRlb25seV9wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIGludGVyc2VjdGlvbk9ic2VydmVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJvb3QgOiBEb20ubm9kZSBKcy50IEpzLm9wdCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgcm9vdE1hcmdpbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCB0aHJlc2hvbGRzIDogZmxvYXQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICBtZXRob2Qgb2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIHVub2JzZXJ2ZSA6ICNEb20ubm9kZSBKcy50IC0+IHVuaXQgSnMubWV0aFxuXG4gICAgbWV0aG9kIGRpc2Nvbm5lY3QgOiB1bml0IEpzLm1ldGhcblxuICAgIG1ldGhvZCB0YWtlUmVjb3JkcyA6IGludGVyc2VjdGlvbk9ic2VydmVyRW50cnkgSnMudCBKcy5qc19hcnJheSBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZW1wdHlfaW50ZXJzZWN0aW9uX29ic2VydmVyX29wdGlvbnMgKCkgOiBpbnRlcnNlY3Rpb25PYnNlcnZlck9wdGlvbnMgSnMudCA9XG4gIEpzLlVuc2FmZS5vYmogW3x8XVxuXG5sZXQgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRlcnNlY3Rpb25PYnNlcnZlclxuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgaW50ZXJzZWN0aW9uT2JzZXJ2ZXJfdW5zYWZlXG5cbmxldCBpbnRlcnNlY3Rpb25PYnNlcnZlciA6XG4gICAgKCAgICggICBpbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5IEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgICAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgSnMudFxuICAgICAgICAgLT4gdW5pdClcbiAgICAgICAgSnMuY2FsbGJhY2tcbiAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXJPcHRpb25zIEpzLnRcbiAgICAgLT4gaW50ZXJzZWN0aW9uT2JzZXJ2ZXIgSnMudClcbiAgICBKcy5jb25zdHIgPVxuICBpbnRlcnNlY3Rpb25PYnNlcnZlcl91bnNhZmVcbiIsIigqIEpzX29mX29jYW1sIGxpYnJhcnlcbiAqIGh0dHA6Ly93d3cub2NzaWdlbi5vcmcvanNfb2Zfb2NhbWwvXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTggU3TDqXBoYW5lIExlZ3JhbmRcbiAqXG4gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeVxuICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5XG4gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3aXRoIGxpbmtpbmcgZXhjZXB0aW9uO1xuICogZWl0aGVyIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmVcbiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuXG4gKilcbm9wZW4hIEltcG9ydFxuXG5tb2R1bGUgdHlwZSBTaGFyZWQgPSBzaWdcbiAgY2xhc3MgdHlwZSBvYmplY3Rfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlTWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICB2YWwgb2JqZWN0X29wdGlvbnMgOiB1bml0IC0+IG9iamVjdF9vcHRpb25zIEpzLnRcblxuICBjbGFzcyB0eXBlIF9vYmplY3QgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHN1cHBvcnRlZExvY2FsZXNPZiA6XG4gICAgICAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLmpzX2FycmF5IEpzLnRcbiAgICAgICAgLT4gb2JqZWN0X29wdGlvbnMgSnMudCBKcy5vcHRkZWZcbiAgICAgICAgLT4gSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIFNoYXJlZCA6IFNoYXJlZCA9IHN0cnVjdFxuICBjbGFzcyB0eXBlIG9iamVjdF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvYmplY3Rfb3B0aW9ucyAoKSA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgX29iamVjdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2Qgc3VwcG9ydGVkTG9jYWxlc09mIDpcbiAgICAgICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudFxuICAgICAgICAtPiBvYmplY3Rfb3B0aW9ucyBKcy50IEpzLm9wdGRlZlxuICAgICAgICAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgQ29sbGF0b3IgPSBzdHJ1Y3RcbiAgaW5jbHVkZSBTaGFyZWRcblxuICBjbGFzcyB0eXBlIHJlc29sdmVkX29wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIHVzYWdlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2Qgc2Vuc2l0aXZpdHkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBpZ25vcmVQdW5jdHVhdGlvbiA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBjb2xsYXRpb24gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1lcmljIDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGNhc2VGaXJzdCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2FnZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHNlbnNpdGl2aXR5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaWdub3JlUHVuY3R1YXRpb24gOiBib29sIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbnVtZXJpYyA6IGJvb2wgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjYXNlRmlyc3QgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgZW5kXG5cbiAgbGV0IG9wdGlvbnMgKCkgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgdXNhZ2UgPSBKcy5zdHJpbmcgXCJzb3J0XCJcblxuICAgICAgdmFsIG11dGFibGUgc2Vuc2l0aXZpdHkgPSBKcy5zdHJpbmcgXCJ2YXJpYW50XCJcblxuICAgICAgdmFsIG11dGFibGUgaWdub3JlUHVuY3R1YXRpb24gPSBKcy5fZmFsc2VcblxuICAgICAgdmFsIG11dGFibGUgbnVtZXJpYyA9IEpzLl9mYWxzZVxuXG4gICAgICB2YWwgbXV0YWJsZSBjYXNlRmlyc3QgPSBKcy5zdHJpbmcgXCJmYWxzZVwiXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSB0ID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBjb21wYXJlIDogKEpzLmpzX3N0cmluZyBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50IC0+IGludCkgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgcmVzb2x2ZWRPcHRpb25zIDogdW5pdCAtPiByZXNvbHZlZF9vcHRpb25zIEpzLnQgSnMubWV0aFxuICAgIGVuZFxuZW5kXG5cbm1vZHVsZSBEYXRlVGltZUZvcm1hdCA9IHN0cnVjdFxuICBpbmNsdWRlIFNoYXJlZFxuXG4gIGNsYXNzIHR5cGUgcmVzb2x2ZWRfb3B0aW9ucyA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgbG9jYWxlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgY2FsZW5kYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGhvdXIxMiA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCB3ZWVrZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGVyYSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCB5ZWFyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1vbnRoIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGRheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbnV0ZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBzZWNvbmQgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmVOYW1lIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGRhdGVTdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lU3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY2FsZW5kYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZGF5UGVyaW9kIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG51bWJlcmluZ1N5c3RlbSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBsb2NhbGVNYXRjaGVyIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuXG4gICAgICBtZXRob2QgdGltZVpvbmUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgaG91cjEyIDogYm9vbCBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBob3VyQ3ljbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZm9ybWF0TWF0Y2hlciA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHdlZWtkYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZXJhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHllYXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbW9udGggOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgZGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGhvdXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWludXRlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHNlY29uZCA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB0aW1lWm9uZU5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpIDogb3B0aW9ucyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGRhdGVTdHlsZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB0aW1lU3R5bGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgY2FsZW5kYXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZGF5UGVyaW9kID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG51bWJlcmluZ1N5c3RlbSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSB0aW1lWm9uZSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBob3VyMTIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgaG91ckN5Y2xlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGZvcm1hdE1hdGNoZXIgPSBKcy5zdHJpbmcgXCJiZXN0IGZpdFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHdlZWtkYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZXJhID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHllYXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbW9udGggPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgZGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGhvdXIgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWludXRlID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHNlY29uZCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBmcmFjdGlvbmFsU2Vjb25kRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHRpbWVab25lTmFtZSA9IEpzLnVuZGVmaW5lZFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgZm9ybWF0X3BhcnQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgX3ZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZm9ybWF0IDogKEpzLmRhdGUgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCkgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgZm9ybWF0VG9QYXJ0cyA6XG4gICAgICAgIEpzLmRhdGUgSnMudCBKcy5vcHRkZWYgLT4gZm9ybWF0X3BhcnQgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5tb2R1bGUgTnVtYmVyRm9ybWF0ID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBzdHlsZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIGN1cnJlbmN5RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCB1c2VHcm91cGluZyA6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtSW50ZWdlckRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG4gICAgZW5kXG5cbiAgY2xhc3MgdHlwZSBvcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBjb21wYWN0RGlzcGxheSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBjdXJyZW5jeURpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgY3VycmVuY3lTaWduIDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBub3RhdGlvbiA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBudW1iZXJpbmdTeXN0ZW0gOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc2lnbkRpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2Qgc3R5bGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCB1bml0IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVuaXREaXNwbGF5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHVzZUdyb3VwaW5nIDogYm9vbCBKcy50IEpzLnByb3BcblxuICAgICAgbWV0aG9kIHJvdW5kaW5nTW9kZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCByb3VuZGluZ1ByaW9yaXR5IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHJvdW5kaW5nSW5jcmVtZW50IDogSnMuanNfc3RyaW5nIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIHRyYWlsaW5nWmVyb0Rpc3BsYXkgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bUludGVnZXJEaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuXG4gICAgICBtZXRob2QgbWF4aW11bUZyYWN0aW9uRGlnaXRzIDogaW50IEpzLm9wdGRlZiBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmIEpzLnByb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA6IGludCBKcy5vcHRkZWYgSnMucHJvcFxuICAgIGVuZFxuXG4gIGxldCBvcHRpb25zICgpIDogb3B0aW9ucyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtdXRhYmxlIGNvbXBhY3REaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGN1cnJlbmN5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIGN1cnJlbmN5RGlzcGxheSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBjdXJyZW5jeVNpZ24gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbG9jYWxlTWF0Y2hlciA9IEpzLnN0cmluZyBcImJlc3QgZml0XCJcblxuICAgICAgdmFsIG11dGFibGUgbm90YXRpb24gPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbnVtYmVyaW5nU3lzdGVtID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHNpZ25EaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIHN0eWxlID0gSnMuc3RyaW5nIFwiZGVjaW1hbFwiXG5cbiAgICAgIHZhbCBtdXRhYmxlIHVuaXQgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdW5pdERpc3BsYXkgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgdXNlR3JvdXBpbmcgPSBKcy5fdHJ1ZVxuXG4gICAgICB2YWwgbXV0YWJsZSByb3VuZGluZ01vZGUgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgcm91bmRpbmdQcmlvcml0eSA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSByb3VuZGluZ0luY3JlbWVudCA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSB0cmFpbGluZ1plcm9EaXNwbGF5ID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbmltdW1JbnRlZ2VyRGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1pbmltdW1GcmFjdGlvbkRpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuXG4gICAgICB2YWwgbXV0YWJsZSBtYXhpbXVtRnJhY3Rpb25EaWdpdHMgPSBKcy51bmRlZmluZWRcblxuICAgICAgdmFsIG11dGFibGUgbWluaW11bVNpZ25pZmljYW50RGlnaXRzID0gSnMudW5kZWZpbmVkXG5cbiAgICAgIHZhbCBtdXRhYmxlIG1heGltdW1TaWduaWZpY2FudERpZ2l0cyA9IEpzLnVuZGVmaW5lZFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgZm9ybWF0X3BhcnQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIF90eXBlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgICBtZXRob2QgX3ZhbHVlIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIGVuZFxuXG4gIGNsYXNzIHR5cGUgdCA9XG4gICAgb2JqZWN0XG4gICAgICBtZXRob2QgZm9ybWF0IDogKEpzLm51bWJlciBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50KSBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBmb3JtYXRUb1BhcnRzIDpcbiAgICAgICAgSnMubnVtYmVyIEpzLnQgSnMub3B0ZGVmIC0+IGZvcm1hdF9wYXJ0IEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5tZXRoXG5cbiAgICAgIG1ldGhvZCByZXNvbHZlZE9wdGlvbnMgOiB1bml0IC0+IHJlc29sdmVkX29wdGlvbnMgSnMudCBKcy5tZXRoXG4gICAgZW5kXG5lbmRcblxubW9kdWxlIFBsdXJhbFJ1bGVzID0gc3RydWN0XG4gIGluY2x1ZGUgU2hhcmVkXG5cbiAgY2xhc3MgdHlwZSByZXNvbHZlZF9vcHRpb25zID1cbiAgICBvYmplY3RcbiAgICAgIG1ldGhvZCBsb2NhbGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBwbHVyYWxDYXRlZ29yaWVzIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG5cbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgICAgbWV0aG9kIG1pbmltdW1JbnRlZ2VyRGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtaW5pbXVtRnJhY3Rpb25EaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcblxuICAgICAgbWV0aG9kIG1heGltdW1GcmFjdGlvbkRpZ2l0cyA6IGludCBKcy5vcHRkZWZfcHJvcFxuXG4gICAgICBtZXRob2QgbWluaW11bVNpZ25pZmljYW50RGlnaXRzIDogaW50IEpzLm9wdGRlZl9wcm9wXG5cbiAgICAgIG1ldGhvZCBtYXhpbXVtU2lnbmlmaWNhbnREaWdpdHMgOiBpbnQgSnMub3B0ZGVmX3Byb3BcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIG9wdGlvbnMgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIGxvY2FsZU1hdGNoZXIgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG5cbiAgICAgIG1ldGhvZCBfdHlwZSA6IEpzLmpzX3N0cmluZyBKcy50IEpzLnByb3BcbiAgICBlbmRcblxuICBsZXQgb3B0aW9ucyAoKSA6IG9wdGlvbnMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbXV0YWJsZSBsb2NhbGVNYXRjaGVyID0gSnMuc3RyaW5nIFwiYmVzdCBmaXRcIlxuXG4gICAgICB2YWwgbXV0YWJsZSBfdHlwZSA9IEpzLnN0cmluZyBcImNhcmRpbmFsXCJcbiAgICBlbmRcblxuICBjbGFzcyB0eXBlIHQgPVxuICAgIG9iamVjdFxuICAgICAgbWV0aG9kIHNlbGVjdCA6IEpzLm51bWJlciBKcy50IC0+IEpzLmpzX3N0cmluZyBKcy50IEpzLm1ldGhcblxuICAgICAgbWV0aG9kIHJlc29sdmVkT3B0aW9ucyA6IHVuaXQgLT4gcmVzb2x2ZWRfb3B0aW9ucyBKcy50IEpzLm1ldGhcbiAgICBlbmRcbmVuZFxuXG5jbGFzcyB0eXBlIGludGwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgX0NvbGxhdG9yIDogQ29sbGF0b3IuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfRGF0ZVRpbWVGb3JtYXQgOiBEYXRlVGltZUZvcm1hdC5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIF9OdW1iZXJGb3JtYXQgOiBOdW1iZXJGb3JtYXQuX29iamVjdCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcblxuICAgIG1ldGhvZCBfUGx1cmFsUnVsZXMgOiBQbHVyYWxSdWxlcy5fb2JqZWN0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuXG4gICAgbWV0aG9kIGdldENhbm9uaWNhbExvY2FsZXMgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCAtPiBKcy5qc19zdHJpbmcgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLm1ldGhcbiAgZW5kXG5cbmxldCBpbnRsID0gSnMuVW5zYWZlLmdsb2JhbCMjLl9JbnRsXG5cbmxldCBjb2xsYXRvcl9jb25zdHIgPSBKcy5VbnNhZmUuZ2xvYmFsIyMuX0ludGwjIy5fQ29sbGF0b3JcblxubGV0IGRhdGVUaW1lRm9ybWF0X2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9EYXRlVGltZUZvcm1hdFxuXG5sZXQgbnVtYmVyRm9ybWF0X2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9OdW1iZXJGb3JtYXRcblxubGV0IHBsdXJhbFJ1bGVzX2NvbnN0ciA9IEpzLlVuc2FmZS5nbG9iYWwjIy5fSW50bCMjLl9QbHVyYWxSdWxlc1xuXG5sZXQgaXNfc3VwcG9ydGVkICgpID0gSnMuT3B0ZGVmLnRlc3QgaW50bFxuIiwiKCogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIENhdGFsYSBjb21waWxlciwgYSBzcGVjaWZpY2F0aW9uIGxhbmd1YWdlIGZvciB0YXhcbiAgIGFuZCBzb2NpYWwgYmVuZWZpdHMgY29tcHV0YXRpb24gcnVsZXMuIENvcHlyaWdodCAoQykgMjAyMCBJbnJpYSwgY29udHJpYnV0b3I6XG4gICBFbWlsZSBSb2xsZXkgPGVtaWxlLnJvbGxleUB0dXRhLmlvPi5cblxuICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTsgeW91IG1heSBub3RcbiAgIHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mXG4gICB0aGUgTGljZW5zZSBhdFxuXG4gICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLCBXSVRIT1VUXG4gICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGVcbiAgIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyXG4gICB0aGUgTGljZW5zZS4gKilcblxub3BlbiBKc19vZl9vY2FtbFxubW9kdWxlIFJfb2NhbWwgPSBSdW50aW1lX29jYW1sLlJ1bnRpbWVcblxuY2xhc3MgdHlwZSBzb3VyY2VfcG9zaXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZmlsZU5hbWUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgbWV0aG9kIHN0YXJ0TGluZSA6IGludCBKcy5wcm9wXG4gICAgbWV0aG9kIGVuZExpbmUgOiBpbnQgSnMucHJvcFxuICAgIG1ldGhvZCBzdGFydENvbHVtbiA6IGludCBKcy5wcm9wXG4gICAgbWV0aG9kIGVuZENvbHVtbiA6IGludCBKcy5wcm9wXG4gICAgbWV0aG9kIGxhd0hlYWRpbmdzIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5wcm9wXG4gIGVuZFxuXG5jbGFzcyB0eXBlIHJhd19ldmVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBldmVudFR5cGUgOiBKcy5qc19zdHJpbmcgSnMudCBKcy5wcm9wXG4gICAgbWV0aG9kIGluZm9ybWF0aW9uIDogSnMuanNfc3RyaW5nIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5wcm9wXG4gICAgbWV0aG9kIHNvdXJjZVBvc2l0aW9uIDogc291cmNlX3Bvc2l0aW9uIEpzLnQgSnMub3B0ZGVmIEpzLnByb3BcbiAgICBtZXRob2QgbG9nZ2VkVmFsdWVKc29uIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBldmVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRhIDogSnMuanNfc3RyaW5nIEpzLnQgSnMucHJvcFxuICBlbmRcblxuY2xhc3MgdHlwZSBkdXJhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB5ZWFycyA6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1vbnRocyA6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRheXMgOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGR1cmF0aW9uX29mX2pzb28gZCA9XG4gIFJfb2NhbWwuZHVyYXRpb25fb2ZfbnVtYmVycyBkIyMueWVhcnMgZCMjLm1vbnRocyBkIyMuZGF5c1xuXG5sZXQgZHVyYXRpb25fdG9fanNvbyBkID1cbiAgbGV0IHllYXJzLCBtb250aHMsIGRheXMgPSBSX29jYW1sLmR1cmF0aW9uX3RvX3llYXJzX21vbnRoc19kYXlzIGQgaW5cbiAgb2JqZWN0JWpzXG4gICAgdmFsIHllYXJzID0geWVhcnNcbiAgICB2YWwgbW9udGhzID0gbW9udGhzXG4gICAgdmFsIGRheXMgPSBkYXlzXG4gIGVuZFxuXG5sZXQgZGF0ZV9vZl9qc29vIGQgPVxuICBsZXQgZCA9IEpzLnRvX3N0cmluZyBkIGluXG4gIGxldCBkID1cbiAgICBpZiBTdHJpbmcuY29udGFpbnMgZCAnVCcgdGhlbiBkIHw+IFN0cmluZy5zcGxpdF9vbl9jaGFyICdUJyB8PiBMaXN0LmhkXG4gICAgZWxzZSBkXG4gIGluXG4gIG1hdGNoIFN0cmluZy5zcGxpdF9vbl9jaGFyICctJyBkIHdpdGhcbiAgfCBbeWVhcjsgbW9udGg7IGRheV0gLT5cbiAgICBSX29jYW1sLmRhdGVfb2ZfbnVtYmVycyAoaW50X29mX3N0cmluZyB5ZWFyKSAoaW50X29mX3N0cmluZyBtb250aClcbiAgICAgIChpbnRfb2Zfc3RyaW5nIGRheSlcbiAgfCBfIC0+IGZhaWx3aXRoIFwiZGF0ZV9vZl9qc29vOiBpbnZhbGlkIGRhdGVcIlxuXG5sZXQgZGF0ZV90b19qc29vIGQgPSBKcy5zdHJpbmcgQEAgUl9vY2FtbC5kYXRlX3RvX3N0cmluZyBkXG5cbmNsYXNzIHR5cGUgZXZlbnRfbWFuYWdlciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByZXNldExvZyA6ICh1bml0LCB1bml0KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcblxuICAgIG1ldGhvZCByZXRyaWV2ZUV2ZW50cyA6XG4gICAgICAodW5pdCwgZXZlbnQgSnMudCBKcy5qc19hcnJheSBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcblxuICAgIG1ldGhvZCByZXRyaWV2ZVJhd0V2ZW50cyA6XG4gICAgICAodW5pdCwgcmF3X2V2ZW50IEpzLnQgSnMuanNfYXJyYXkgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuXG5sZXQgZXZlbnRfbWFuYWdlciA6IGV2ZW50X21hbmFnZXIgSnMudCA9XG4gIG9iamVjdCVqc1xuICAgIG1ldGhvZCByZXNldExvZyA9IEpzLndyYXBfbWV0aF9jYWxsYmFjayBSX29jYW1sLnJlc2V0X2xvZ1xuXG4gICAgbWV0aG9kIHJldHJpZXZlRXZlbnRzID1cbiAgICAgIEpzLndyYXBfbWV0aF9jYWxsYmFjayAoZnVuICgpIC0+XG4gICAgICAgICAgSnMuYXJyYXlcbiAgICAgICAgICAgIChBcnJheS5vZl9saXN0XG4gICAgICAgICAgICAgICAoUl9vY2FtbC5yZXRyaWV2ZV9sb2cgKClcbiAgICAgICAgICAgICAgIHw+IFJfb2NhbWwuRXZlbnRQYXJzZXIucGFyc2VfcmF3X2V2ZW50c1xuICAgICAgICAgICAgICAgfD4gTGlzdC5tYXAgKGZ1biBldmVudCAtPlxuICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCVqc1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgZGF0YSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHw+IFJfb2NhbWwueW9qc29uX29mX2V2ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHw+IFlvanNvbi5TYWZlLnRvX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICB8PiBKcy5zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBlbmQpKSkpXG5cbiAgICBtZXRob2QgcmV0cmlldmVSYXdFdmVudHMgPVxuICAgICAgSnMud3JhcF9tZXRoX2NhbGxiYWNrIChmdW4gKCkgLT5cbiAgICAgICAgICBKcy5hcnJheVxuICAgICAgICAgICAgKEFycmF5Lm9mX2xpc3RcbiAgICAgICAgICAgICAgIChMaXN0Lm1hcFxuICAgICAgICAgICAgICAgICAgKGZ1biBldnQgLT5cbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0JWpzXG4gICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgZXZlbnRUeXBlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIEpzLnN0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggZXZ0IHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBSX29jYW1sLkJlZ2luQ2FsbCBfIC0+IFwiQmVnaW4gY2FsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRW5kQ2FsbCBfIC0+IFwiRW5kIGNhbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFZhcmlhYmxlRGVmaW5pdGlvbiBfIC0+IFwiVmFyaWFibGUgZGVmaW5pdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVjaXNpb25UYWtlbiBfIC0+IFwiRGVjaXNpb24gdGFrZW5cIilcblxuICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGluZm9ybWF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIEpzLmFycmF5XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5vZl9saXN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBldnQgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJlZ2luQ2FsbCBpbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRW5kQ2FsbCBpbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChpbmZvLCBfKSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3QubWFwIEpzLnN0cmluZyBpbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVjaXNpb25UYWtlbiBfIC0+IFtdKSlcblxuICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGxvZ2dlZFZhbHVlSnNvbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggZXZ0IHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFyaWFibGVEZWZpbml0aW9uIChfLCB2KSAtPiB2XG4gICAgICAgICAgICAgICAgICAgICAgICB8IEVuZENhbGwgXyB8IEJlZ2luQ2FsbCBfIHwgRGVjaXNpb25UYWtlbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFJfb2NhbWwudW5lbWJlZGRhYmxlICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgfD4gUl9vY2FtbC55b2pzb25fb2ZfcnVudGltZV92YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfD4gWW9qc29uLlNhZmUudG9fc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICB8PiBKcy5zdHJpbmdcblxuICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIHNvdXJjZVBvc2l0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIGV2dCB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IERlY2lzaW9uVGFrZW4gcG9zIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEpzLmRlZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvYmplY3QlanNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBmaWxlTmFtZSA9IEpzLnN0cmluZyBwb3MuZmlsZW5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBzdGFydExpbmUgPSBwb3Muc3RhcnRfbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCBtdXRhYmxlIGVuZExpbmUgPSBwb3MuZW5kX2xpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBzdGFydENvbHVtbiA9IHBvcy5zdGFydF9jb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgbXV0YWJsZSBlbmRDb2x1bW4gPSBwb3MuZW5kX2NvbHVtblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsIG11dGFibGUgbGF3SGVhZGluZ3MgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSnMuYXJyYXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFycmF5Lm9mX2xpc3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKExpc3QubWFwIEpzLnN0cmluZyBwb3MubGF3X2hlYWRpbmdzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICB8IF8gLT4gSnMudW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIGVuZClcbiAgICAgICAgICAgICAgICAgIChSX29jYW1sLnJldHJpZXZlX2xvZyAoKSkpKSlcbiAgZW5kXG5cbmxldCBleGVjdXRlX29yX3Rocm93X2Vycm9yIGYgPVxuICBsZXQgdGhyb3dfZXJyb3IgKGRlc2NyIDogc3RyaW5nKSAocG9zIDogUl9vY2FtbC5zb3VyY2VfcG9zaXRpb24pID1cbiAgICBsZXQgbXNnID1cbiAgICAgIEpzLnN0cmluZ1xuICAgICAgICAoRm9ybWF0LmFzcHJpbnRmIFwiJXMgaW4gZmlsZSAlcywgcG9zaXRpb24gJWQ6JWQtLSVkOiVkLlwiIGRlc2NyXG4gICAgICAgICAgIHBvcy5maWxlbmFtZSBwb3Muc3RhcnRfbGluZSBwb3Muc3RhcnRfY29sdW1uIHBvcy5lbmRfbGluZVxuICAgICAgICAgICBwb3MuZW5kX2NvbHVtbilcbiAgICBpblxuICAgIEpzLkpzX2Vycm9yLnJhaXNlX1xuICAgICAgKEpzLkpzX2Vycm9yLm9mX2Vycm9yXG4gICAgICAgICAob2JqZWN0JWpzXG4gICAgICAgICAgICB2YWwgbXV0YWJsZSBuYW1lID0gSnMuc3RyaW5nIFwiTm9WYWx1ZVByb3ZpZGVkXCJcbiAgICAgICAgICAgIHZhbCBtdXRhYmxlIG1lc3NhZ2UgPSBtc2dcbiAgICAgICAgICAgIHZhbCBtdXRhYmxlIHN0YWNrID0gSnMuT3B0ZGVmLmVtcHR5XG4gICAgICAgICAgICBtZXRob2QgdG9TdHJpbmcgPSBtc2dcbiAgICAgICAgIGVuZCkpXG4gIGluXG4gIHRyeSBmICgpIHdpdGhcbiAgfCBSX29jYW1sLk5vVmFsdWVQcm92aWRlZCBwb3MgLT5cbiAgICB0aHJvd19lcnJvclxuICAgICAgXCJObyBydWxlIGFwcGxpZXMgaW4gdGhlIGdpdmVuIGNvbnRleHQgdG8gZ2l2ZSBhIHZhbHVlIHRvIHRoZSB2YXJpYWJsZVwiIHBvc1xuICB8IFJfb2NhbWwuQ29uZmxpY3RFcnJvciBwb3MgLT5cbiAgICB0aHJvd19lcnJvclxuICAgICAgXCJBIGNvbmZsaWN0IGhhcHBlbmVkIGJldHdlZW4gdHdvIHJ1bGVzIGdpdmluZyBhIHZhbHVlIHRvIHRoZSB2YXJpYWJsZVwiIHBvc1xuICB8IFJfb2NhbWwuQXNzZXJ0aW9uRmFpbGVkIHBvcyAtPlxuICAgIHRocm93X2Vycm9yIFwiQSBmYWlsdXJlIGhhcHBlbmVkIGluIHRoZSBhc3NlcnRpb25cIiBwb3NcbiIsIigqKiBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBDYXRhbGEgY29tcGlsZXIsIGRvIG5vdCBlZGl0ISAqKVxuXG5vcGVuIFJ1bnRpbWVfb2NhbWwuUnVudGltZVxuXG5bQEBAb2NhbWwud2FybmluZyBcIi00LTI2LTI3LTMyLTQxLTQyXCJdXG5cbm1vZHVsZSBQcmlzZUVuQ2hhcmdlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgb2YgdW5pdFxuICAgIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIG9mIHVuaXRcbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBvZiB1bml0XG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBvZiB1bml0XG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcHJpc2VfZW5fY2hhcmdlICh4OiBQcmlzZUVuQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUHJpc2VFbkNoYXJnZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIHggLT5cbiAgICAgIChcIkdhcmRlQWx0ZXJuw6llUGFydGFnZUFsbG9jYXRpb25zXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSB4IC0+XG4gICAgICAoXCJHYXJkZUFsdGVybsOpZUFsbG9jYXRhaXJlVW5pcXVlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSB4IC0+IChcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSB4IC0+XG4gICAgICAoXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc8OpZcOATGFGYW1pbGxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggeCAtPlxuICAgICAgKFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnPDqWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IEF2YW50IG9mIHVuaXRcbiAgICB8IFBlbmRhbnQgb2YgdW5pdFxuICAgIHwgQXByZXMgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSAoeDogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEF2YW50IHggLT4gKFwiQXZhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGVuZGFudCB4IC0+IChcIlBlbmRhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXByZXMgeCAtPiAoXCJBcHLDqHNcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUHJpc2VFbkNvbXB0ZSA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBDb21wbGV0ZSBvZiB1bml0XG4gICAgfCBQYXJ0YWdlZSBvZiB1bml0XG4gICAgfCBaZXJvIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcHJpc2VfZW5fY29tcHRlICh4OiBQcmlzZUVuQ29tcHRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUHJpc2VFbkNvbXB0ZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBDb21wbGV0ZSB4IC0+IChcIkNvbXBsw6h0ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQYXJ0YWdlZSB4IC0+IChcIlBhcnRhZ8OpZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBaZXJvIHggLT4gKFwiWsOpcm9cIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVmVyc2VtZW50QWxsb2NhdGlvbnMgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgTm9ybWFsIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF92ZXJzZW1lbnRfYWxsb2NhdGlvbnMgKHg6IFZlcnNlbWVudEFsbG9jYXRpb25zLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVmVyc2VtZW50QWxsb2NhdGlvbnNcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTm9ybWFsIHggLT4gKFwiTm9ybWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblZlcnPDqWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyBvZiB1bml0XG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzICh4OiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiw4lsw6ltZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgeCAtPlxuICAgICAgKFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgeCAtPiAoXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIHggLT4gKFwiQ29tcGzDqW1lbnRGYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgeCAtPiAoXCJBbGxvY2F0aW9uTG9nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uw4lkdWNhdGlvbkVuZmFudEhhbmRpY2Fww6lcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblJlbnRyw6llU2NvbGFpcmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkpvdXJuYWxpw6hyZVByZXNlbmNlUGFyZW50YWxlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIENvbGxlY3Rpdml0ZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBHdWFkZWxvdXBlIG9mIHVuaXRcbiAgICB8IEd1eWFuZSBvZiB1bml0XG4gICAgfCBNYXJ0aW5pcXVlIG9mIHVuaXRcbiAgICB8IExhUmV1bmlvbiBvZiB1bml0XG4gICAgfCBTYWludEJhcnRoZWxlbXkgb2YgdW5pdFxuICAgIHwgU2FpbnRNYXJ0aW4gb2YgdW5pdFxuICAgIHwgTWV0cm9wb2xlIG9mIHVuaXRcbiAgICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiBvZiB1bml0XG4gICAgfCBNYXlvdHRlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfY29sbGVjdGl2aXRlICh4OiBDb2xsZWN0aXZpdGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDb2xsZWN0aXZpdMOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEd1YWRlbG91cGUgeCAtPiAoXCJHdWFkZWxvdXBlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEd1eWFuZSB4IC0+IChcIkd1eWFuZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNYXJ0aW5pcXVlIHggLT4gKFwiTWFydGluaXF1ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBMYVJldW5pb24geCAtPiAoXCJMYVLDqXVuaW9uXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50QmFydGhlbGVteSB4IC0+IChcIlNhaW50QmFydGjDqWxlbXlcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRNYXJ0aW4geCAtPiAoXCJTYWludE1hcnRpblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNZXRyb3BvbGUgeCAtPiAoXCJNw6l0cm9wb2xlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiB4IC0+IChcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNYXlvdHRlIHggLT4gKFwiTWF5b3R0ZVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7YWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zOiBkdXJhdGlvbn1cbmVuZFxubGV0IGVtYmVkX2FsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggKHg6IEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOFwiXSxcbiAgWyhcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5BbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC5hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzMpXSlcblxuXG5tb2R1bGUgQWxsb2NhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50X3ZlcnNlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKHg6IEFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwibW9udGFudF92ZXJzw6lcIiwgZW1iZWRfbW9uZXkgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudF92ZXJzZSldKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlc3RfaW5mZXJpZXVyX291X2VnYWw6IGJvb2x9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgKHg6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgFwiXSxcbiAgWyhcImVzdF9pbmbDqXJpZXVyX291X8OpZ2FsXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsKV0pXG5cblxubW9kdWxlIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VzdF9zdXBlcmlldXI6IGJvb2x9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hICh4OiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiXSxcbiAgWyhcImVzdF9zdXDDqXJpZXVyXCIsIGVtYmVkX2Jvb2wgeC5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpXSlcblxuXG5tb2R1bGUgU21pYyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7YnJ1dF9ob3JhaXJlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX3NtaWMgKHg6IFNtaWMudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlNtaWNcIl0sXG4gIFsoXCJicnV0X2hvcmFpcmVcIiwgZW1iZWRfbW9uZXkgeC5TbWljLmJydXRfaG9yYWlyZSldKVxuXG5cbm1vZHVsZSBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHttb250YW50OiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKHg6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIl0sXG4gIFsoXCJtb250YW50XCIsIGVtYmVkX21vbmV5IHguQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50KV0pXG5cblxubW9kdWxlIEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7aV9tb250YW50X3ZlcnNlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX2ludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzICh4OiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcImlfbW9udGFudF92ZXJzw6lcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5pX21vbnRhbnRfdmVyc2UpXSlcblxuXG5tb2R1bGUgRW5mYW50RW50cmVlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkX2lkZW50aWZpYW50OiBpbnRlZ2VyO1xuICAgIGRfcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgZF9kYXRlX2RlX25haXNzYW5jZTogZGF0ZTtcbiAgICBkX3ByaXNlX2VuX2NoYXJnZTogUHJpc2VFbkNoYXJnZS50O1xuICAgIGRfYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlczogYm9vbDtcbiAgICBkX2JlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudDogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnRfZW50cmVlICh4OiBFbmZhbnRFbnRyZWUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkVuZmFudEVudHLDqWVcIl0sXG4gIFsoXCJkX2lkZW50aWZpYW50XCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVuZmFudEVudHJlZS5kX2lkZW50aWZpYW50KTtcbiAgICAoXCJkX3LDqW11bmVyYXRpb25fbWVuc3VlbGxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbmZhbnRFbnRyZWUuZF9yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAoXCJkX2RhdGVfZGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVuZmFudEVudHJlZS5kX2RhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAoXCJkX3ByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2VcbiAgICB4LkVuZmFudEVudHJlZS5kX3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgKFwiZF9hX2TDqWrDoF9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50RW50cmVlLmRfYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgKFwiZF9iw6luw6lmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFwiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRFbnRyZWUuZF9iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpXSlcblxuXG5tb2R1bGUgRW5mYW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBpZGVudGlmaWFudDogaW50ZWdlcjtcbiAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudDtcbiAgICByZW11bmVyYXRpb25fbWVuc3VlbGxlOiBtb25leTtcbiAgICBkYXRlX2RlX25haXNzYW5jZTogZGF0ZTtcbiAgICBwcmlzZV9lbl9jaGFyZ2U6IFByaXNlRW5DaGFyZ2UudDtcbiAgICBhX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzOiBib29sO1xuICAgIGJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudDogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbmZhbnQgKHg6IEVuZmFudC50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiRW5mYW50XCJdLFxuICBbKFwiaWRlbnRpZmlhbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRW5mYW50LmlkZW50aWZpYW50KTtcbiAgICAoXCJvYmxpZ2F0aW9uX3Njb2xhaXJlXCIsIGVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgeC5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgKFwicsOpbXVuZXJhdGlvbl9tZW5zdWVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAoXCJkYXRlX2RlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcInByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2VcbiAgICB4LkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpO1xuICAgIChcImFfZMOpasOgX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnQuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgKFwiYsOpbsOpZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50LmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCldKVxuXG5cbm1vZHVsZSBFbmZhbnRMZVBsdXNBZ2UgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2xlX3BsdXNfYWdlOiBFbmZhbnQudH1cbmVuZFxubGV0IGVtYmVkX2VuZmFudF9sZV9wbHVzX2FnZSAoeDogRW5mYW50TGVQbHVzQWdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnRMZVBsdXPDgmfDqVwiXSxcbiAgWyhcImxlX3BsdXNfw6Jnw6lcIiwgZW1iZWRfZW5mYW50IHguRW5mYW50TGVQbHVzQWdlLmxlX3BsdXNfYWdlKV0pXG5cblxubW9kdWxlIFByZXN0YXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZHJvaXRfb3V2ZXJ0OiBFbmZhbnQudCAtPiBib29sO1xuICAgIGNvbmRpdGlvbnNfaG9yc19hZ2U6IEVuZmFudC50IC0+IGJvb2w7XG4gICAgYWdlX2w1MTJfM18yOiBkdXJhdGlvbjtcbiAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMTogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzICh4OiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcImRyb2l0X291dmVydFwiLCB1bmVtYmVkZGFibGVcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQpO1xuICAgIChcImNvbmRpdGlvbnNfaG9yc1/DomdlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UpO1xuICAgIChcIsOiZ2VfbDUxMl8zXzJcIiwgZW1iZWRfZHVyYXRpb25cbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIpO1xuICAgIChcInLDqWdpbWVfb3V0cmVfbWVyX2w3NTFfMVwiLCBlbWJlZF9ib29sXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMucmVnaW1lX291dHJlX21lcl9sNzUxXzEpXSlcblxuXG5tb2R1bGUgUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgcHJlc3RhdGlvbl9jb3VyYW50ZV9pbjogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicHJlc3RhdGlvbl9jb3VyYW50ZV9pblwiLCBlbWJlZF9lbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICB4LlByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5QcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4pXSlcblxuXG5tb2R1bGUgQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB1bml0XG5lbmRcbmxldCBlbWJlZF9hbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIChfOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOEluLnQpIDogcnVudGltZV92YWx1ZSA9IFVuaXRcblxuXG5tb2R1bGUgRW5mYW50TGVQbHVzQWdlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VuZmFudHNfaW46IEVuZmFudC50IGFycmF5fVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X2xlX3BsdXNfYWdlX2luICh4OiBFbmZhbnRMZVBsdXNBZ2VJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiRW5mYW50TGVQbHVzw4Jnw6lfaW5cIl0sXG4gIFsoXCJlbmZhbnRzX2luXCIsIGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpIHguRW5mYW50TGVQbHVzQWdlSW4uZW5mYW50c19pbildKVxuXG5cbm1vZHVsZSBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW46IGJvb2w7XG4gICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pbjogYm9vbDtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9pbjogbW9uZXk7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGVuZmFudHNfYV9jaGFyZ2VfaW46IEVuZmFudC50IGFycmF5O1xuICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNfaW5cIl0sXG4gIFsoXCJwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbik7XG4gICAgKFwicGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfSV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc3NvdXJjZXNfbWVuYWdlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImVuZmFudHNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpXG4gICAgeC5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5lbmZhbnRzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJhdmFpdF9lbmZhbnRfw6BfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4pXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZV9pbjogZGF0ZTtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGFubmVlc19pbjogZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgF9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiYW5uw6llc19pblwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX2luOiBkYXRlO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgYW5uZWVzX2luOiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJhbm7DqWVzX2luXCIsIGVtYmVkX2R1cmF0aW9uIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBTbWljSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2RhdGVfY291cmFudGVfaW46IGRhdGU7IHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnR9XG5lbmRcbmxldCBlbWJlZF9zbWljX2luICh4OiBTbWljSW4udCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlNtaWNfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlNtaWNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZSB4LlNtaWNJbi5yZXNpZGVuY2VfaW4pXSlcblxuXG5tb2R1bGUgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX2NvdXJhbnRlX2luOiBkYXRlfVxuZW5kXG5sZXQgZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzX2luXCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbildKVxuXG5cbm1vZHVsZSBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaV9kYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGlfZW5mYW50c19pbjogRW5mYW50RW50cmVlLnQgYXJyYXk7XG4gICAgaV9yZXNzb3VyY2VzX21lbmFnZV9pbjogbW9uZXk7XG4gICAgaV9yZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW46IGJvb2w7XG4gICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luOiBib29sO1xuICAgIGlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW46IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNfaW5cIl0sXG4gIFsoXCJpX2RhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJpX2VuZmFudHNfaW5cIiwgZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudF9lbnRyZWUpXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2VuZmFudHNfaW4pO1xuICAgIChcImlfcmVzc291cmNlc19tw6luYWdlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3Jlc3NvdXJjZXNfbWVuYWdlX2luKTtcbiAgICAoXCJpX3LDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3Jlc2lkZW5jZV9pbik7XG4gICAgKFwiaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luKTtcbiAgICAoXCJpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luKTtcbiAgICAoXCJpX2F2YWl0X2VuZmFudF/DoF9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5JbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5pX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luKV0pXG5cblxuXG5cbmxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IChhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOEluLnQpIDogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDgudCA9XG4gIGxldCBhZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4XCI7IFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl1cbiAgICAoZW1iZWRfZHVyYXRpb24pIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoMTYpICgwKSAoMCkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICB7QWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDguYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zID1cbiAgICAgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zX31cblxubGV0IGVuZmFudF9sZV9wbHVzX2FnZSAoZW5mYW50X2xlX3BsdXNfYWdlX2luOiBFbmZhbnRMZVBsdXNBZ2VJbi50KSA6IEVuZmFudExlUGx1c0FnZS50ID1cbiAgbGV0IGVuZmFudHNfOiBFbmZhbnQudCBhcnJheSA9IGVuZmFudF9sZV9wbHVzX2FnZV9pbi5FbmZhbnRMZVBsdXNBZ2VJbi5lbmZhbnRzX2luIGluXG4gIGxldCBsZV9wbHVzX2FnZV86IEVuZmFudC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiRW5mYW50TGVQbHVzw4Jnw6lcIjsgXCJsZV9wbHVzX8OiZ8OpXCJdIChlbWJlZF9lbmZhbnQpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgwOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fcmVkdWNlXG4gICAgICAgICAgICAgIChmdW4gKHBvdGVudGllbF9wbHVzX2FnZV8xXzogRW5mYW50LnQpXG4gICAgICAgICAgICAgICAgIChwb3RlbnRpZWxfcGx1c19hZ2VfMl86IEVuZmFudC50KSAtPlxuICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgKGxldCBwb3RlbnRpZWxfcGx1c19hZ2VfIDogRW5mYW50LnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgIHBvdGVudGllbF9wbHVzX2FnZV8xX1xuICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgKHBvdGVudGllbF9wbHVzX2FnZV8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAobGV0IHBvdGVudGllbF9wbHVzX2FnZV8gOiBFbmZhbnQudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgcG90ZW50aWVsX3BsdXNfYWdlXzJfXG4gICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAocG90ZW50aWVsX3BsdXNfYWdlXy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIHBvdGVudGllbF9wbHVzX2FnZV8xXyBlbHNlIHBvdGVudGllbF9wbHVzX2FnZV8yXylcbiAgICAgICAgICAgICAgKHtFbmZhbnQuaWRlbnRpZmlhbnQgPSAoaW50ZWdlcl9vZl9zdHJpbmcgXCItMVwiKTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgKFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50ICgpKTtcbiAgICAgICAgICAgICAgICAgIEVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyOTk5KSAoMTIpICgzMSkpO1xuICAgICAgICAgICAgICAgICAgRW5mYW50LnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSAoKSk7XG4gICAgICAgICAgICAgICAgICBFbmZhbnQuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgRW5mYW50LmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgIGZhbHNlfSkgZW5mYW50c18pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODA7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICB7RW5mYW50TGVQbHVzQWdlLmxlX3BsdXNfYWdlID0gbGVfcGx1c19hZ2VffVxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW46IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KSA6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCA9XG4gIGxldCBkYXRlX25haXNzYW5jZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfbmFpc3NhbmNlX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgYW5uZWVzXzogZHVyYXRpb24gPSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbiBpblxuICBsZXQgZXN0X2luZmVyaWV1cl9vdV9lZ2FsXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgFwiOyBcImVzdF9pbmbDqXJpZXVyX291X8OpZ2FsXCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTIyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTIyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSAoXG4gICAgICAgICBbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI1OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19sdGVfZGF0X2RhdCAob19hZGRfZGF0X2R1ciBSb3VuZFVwIGRhdGVfbmFpc3NhbmNlXyBhbm5lZXNfKVxuICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0yMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0yMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7IFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSkpIGluXG4gIHtWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCA9XG4gICAgIGVzdF9pbmZlcmlldXJfb3VfZWdhbF99XG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luOiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCkgOiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICBsZXQgZGF0ZV9uYWlzc2FuY2VfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9uYWlzc2FuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgYW5uZWVzXzogZHVyYXRpb24gPSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5hbm5lZXNfaW4gaW5cbiAgbGV0IGVzdF9zdXBlcmlldXJfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjsgXCJlc3Rfc3Vww6lyaWV1clwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19IChcbiAgICAgICAgIFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzY7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2d0X2RhdF9kYXQgKG9fYWRkX2RhdF9kdXIgUm91bmRVcCBkYXRlX25haXNzYW5jZV8gYW5uZWVzXylcbiAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiOyBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpKSBpblxuICB7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyID0gZXN0X3N1cGVyaWV1cl99XG5cbmxldCBzbWljIChzbWljX2luOiBTbWljSW4udCkgOiBTbWljLnQgPVxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBzbWljX2luLlNtaWNJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IHNtaWNfaW4uU21pY0luLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgYnJ1dF9ob3JhaXJlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJTbWljXCI7IFwiYnJ1dF9ob3JhaXJlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMTgtMTE3MyBkdSAxOSBkw6ljZW1icmUgMjAxOCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDNcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMTgtMTE3MyBkdSAxOSBkw6ljZW1icmUgMjAxOCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NTdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTczOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MjsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMTktMTM4NyBkdSAxOCBkw6ljZW1icmUgMjAxOSBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMTVcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MzsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMTktMTM4NyBkdSAxOCBkw6ljZW1icmUgMjAxOSBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NjZcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIxOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMC0xNTk4IGR1IDE2IGTDqWNlbWJyZSAyMDIwIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAyNVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzI7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIwLTE1OTggZHUgMTYgZMOpY2VtYnJlIDIwMjAgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzc0XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjEtMTc0MSBkdSAyMiBkw6ljZW1icmUgMjAyMSBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTA1N1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzI7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIxLTE3NDEgZHUgMjIgZMOpY2VtYnJlIDIwMjEgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDQpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3OThcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMTkgYXZyaWwgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDUpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTA4NVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTE7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAxOSBhdnJpbCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODE5XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzOTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDgpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMDdcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjUwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoOCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgzNVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjcwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNzk7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIyLTE2MDggZHUgMjIgZMOpY2VtYnJlIDIwMjIgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWV0cm9wb2xlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTEyN1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIyLTE2MDggZHUgMjIgZMOpY2VtYnJlIDIwMjIgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg1MVwiKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7IFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkgaW5cbiAge1NtaWMuYnJ1dF9ob3JhaXJlID0gYnJ1dF9ob3JhaXJlX31cblxubGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW46IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IG1vbnRhbnRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gbWluaXN0w6lyaWVsbGUgTsKwRFNTL1NEMkIvMjAxOS82NSBkdSAyNSBtYXJzIDIwMTkgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMTkgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDQpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxMzE2XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG5vIERTUy9TRDJCLzIwMjAvMzMgZHUgMTggZsOpdnJpZXIgMjAyMCByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAyMCBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgZGFucyBsZSBkw6lwYXJ0ZW1lbnQgZGUgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICg0KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICg0KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTQ0MFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02OTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrBEU1MvMkIvMjAyMS82NSBkdSAxOSBtYXJzIDIwMjEgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjEgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0ODFcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0w6lyaWVsbGUgbsKwRFNTLzJCLzIwMjIvODIgZHUgMjggbWFycyAyMDIyIHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBhdnJpbCAyMDIyIGRlcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCBkYW5zIGxlIGTDqXBhcnRlbWVudCBkZSBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjIyOFwiKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLy4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkgaW5cbiAge0Jhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudCA9IG1vbnRhbnRffVxuXG5sZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbjogUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgcHJlc3RhdGlvbl9jb3VyYW50ZV86IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLlByZXN0YXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgYWdlX2w1MTJfM18yXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCLDomdlX2w1MTJfM18yXCJdIChlbWJlZF9kdXJhdGlvbikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjA7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUxMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICgyMCkgKDApICgwKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MDsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBzbWljX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02OTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njk7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02OTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgc21pY19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pYy5yw6lzaWRlbmNlXCJdIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Njg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBTbWljLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pY1wiOyBcIlNtaWNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWNcIjsgXCJTbWljXCJdIHNtaWMpXG4gICAgKHtTbWljSW4uZGF0ZV9jb3VyYW50ZV9pbiA9IHNtaWNfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBTbWljSW4ucmVzaWRlbmNlX2luID0gc21pY19kb3RfcmVzaWRlbmNlX30pKSkgaW5cbiAgbGV0IHNtaWNfZG90X2JydXRfaG9yYWlyZV86IG1vbmV5ID0gcmVzdWx0Xy5TbWljLmJydXRfaG9yYWlyZSBpblxuICBsZXQgcmVnaW1lX291dHJlX21lcl9sNzUxXzFfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwicsOpZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYyOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw3NTEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbGEgR3VhZGVsb3VwZSwgw6AgbGEgR3V5YW5lLCDDoCBsYSBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXkgZXQgw6AgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiAoKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2w1MTJfM18yXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwbGFmb25kX2w1MTJfM18yXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTU7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjc1NS0wLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBzbWljX2RvdF9icnV0X2hvcmFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxNjkuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzE7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MTItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBzbWljX2RvdF9icnV0X2hvcmFpcmVfXG4gICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNTVcIikpIChkZWNpbWFsX29mX3N0cmluZyBcIjE2OS5cIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uc19ob3JzX2FnZV86IEVuZmFudC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU4OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01ODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5yZW11bmVyYXRpb25fbWVuc3VlbGxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbDUxMl8zXzJfKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01ODsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0XzogRW5mYW50LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYXV0cmVzX2NvZGVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUsOoZ2xlcyBkZSBub24tY3VtdWxcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBQcmluY2lwZXMgZ8OpbsOpcmF1eFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50Lm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2VfbDUxMl8zXzJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUwOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByZXN0YXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIHtQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0ID0gZHJvaXRfb3V2ZXJ0XztcbiAgICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgPSBjb25kaXRpb25zX2hvcnNfYWdlXztcbiAgICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFnZV9sNTEyXzNfMiA9IGFnZV9sNTEyXzNfMl87XG4gICAgIFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSA9IHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX31cblxubGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW46IEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICBsZXQgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfOiBib29sID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbiBpblxuICBsZXQgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfOiBib29sID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5ID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5yZXNzb3VyY2VzX21lbmFnZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGVuZmFudHNfYV9jaGFyZ2VfOiBFbmZhbnQudCBhcnJheSA9IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZW5mYW50c19hX2NoYXJnZV9pbiBpblxuICBsZXQgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfOiBib29sID0gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5BbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl9pbiBpblxuICBsZXQgcHJpc2VfZW5fY29tcHRlXzogRW5mYW50LnQgLT4gUHJpc2VFbkNvbXB0ZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTU7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFByaXNlRW5Db21wdGUuUGFydGFnZWUgKCkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjU1OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBQcmlzZUVuQ29tcHRlLlplcm8gKCkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjY1OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaXNlRW5Db21wdGUuQ29tcGxldGUgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDU7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFByaXNlRW5Db21wdGUuQ29tcGxldGUgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg1OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlICgpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCB2ZXJzZW1lbnRfOiBFbmZhbnQudCAtPiBWZXJzZW1lbnRBbGxvY2F0aW9ucy50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwidmVyc2VtZW50XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTg7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2VtZW50QWxsb2NhdGlvbnMuQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuRWZmZWN0aXZlRXRQZXJtYW5lbnRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzZW1lbnRBbGxvY2F0aW9ucy5Ob3JtYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTk7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5wcmlzZV9lbl9jaGFyZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2VtZW50QWxsb2NhdGlvbnMuTm9ybWFsICgpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA5OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50LnByaXNlX2VuX2NoYXJnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5DaGFyZ2UuU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2VtZW50QWxsb2NhdGlvbnMuTm9ybWFsICgpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4OTsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAoZW5mYW50Xy5FbmZhbnQucHJpc2VfZW5fY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5HYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLkVmZmVjdGl2ZUV0UGVybWFuZW50ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNoYXJnZS5TZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gVmVyc2VtZW50QWxsb2NhdGlvbnMuTm9ybWFsICgpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05ODsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBub21icmVfZW5mYW50c19sNTIxXzFfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibm9tYnJlX2VuZmFudHNfbDUyMV8xXCJdIChlbWJlZF9pbnRlZ2VyKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTUxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI5NDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zXzogaW50ZWdlciA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm5vbWJyZV9lbmZhbnRzX2FsaW7DqWFfMl9sNTIxXzNcIl1cbiAgICAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTU0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTY0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTQ7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgcmVzdWx0XzogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDgudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJ2ZXJzaW9uX2F2cmlsXzIwMDhcIjtcbiAgICAgIFwiQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInZlcnNpb25fYXZyaWxfMjAwOFwiO1xuICAgICAgXCJBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOFwiXSBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4KVxuICAgICgoKSkpKSBpblxuICBsZXQgdmVyc2lvbl9hdnJpbF8yMDA4X2RvdF9hZ2VfbWluaW11bV9hbGluZWFfMV9sNTIxXzNfOiBkdXJhdGlvbiA9IHJlc3VsdF8uQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDguYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zIGluXG4gIGxldCBibWFmX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJibWFmLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTY3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImJtYWZcIjsgXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdXG4gICAgKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImJtYWZcIjsgXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdXG4gICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAoe0Jhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgYm1hZl9kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBibWFmX2RvdF9tb250YW50XzogbW9uZXkgPSByZXN1bHRfLkJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMubW9udGFudCBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNjM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTYzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9wcmVzdGF0aW9uX2NvdXJhbnRlXzogRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXMucHJlc3RhdGlvbl9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE2MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbnNGYW1pbGlhbGVzICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTYxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2MTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTY1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE2NTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByZXN0YXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIFByZXN0YXRpb25zRmFtaWxpYWxlc0luLnByZXN0YXRpb25fY291cmFudGVfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3ByZXN0YXRpb25fY291cmFudGVfO1xuICAgICAgICBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfOiBFbmZhbnQudCAtPiBib29sID0gcmVzdWx0Xy5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0IGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9jb25kaXRpb25zX2hvcnNfYWdlXzogRW5mYW50LnQgLT4gYm9vbCA9IHJlc3VsdF8uUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmNvbmRpdGlvbnNfaG9yc19hZ2UgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gcmVzdWx0Xy5QcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSByZXN1bHRfLlByZXN0YXRpb25zRmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMSBpblxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9lbmZhbnRzXzogRW5mYW50LnQgYXJyYXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZW5mYW50X2xlX3BsdXNfw6Jnw6kuZW5mYW50c1wiXVxuICAgICAgKGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzM7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZW5mYW50c19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEVuZmFudExlUGx1c0FnZS50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImVuZmFudF9sZV9wbHVzX8OiZ8OpXCI7IFwiRW5mYW50TGVQbHVzw4Jnw6lcIl1cbiAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZW5mYW50X2xlX3BsdXNfw6Jnw6lcIjsgXCJFbmZhbnRMZVBsdXPDgmfDqVwiXVxuICAgIGVuZmFudF9sZV9wbHVzX2FnZSlcbiAgICAoe0VuZmFudExlUGx1c0FnZUluLmVuZmFudHNfaW4gPSBlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2VuZmFudHNffSkpKSBpblxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX2RvdF9sZV9wbHVzX2FnZV86IEVuZmFudC50ID0gcmVzdWx0Xy5FbmZhbnRMZVBsdXNBZ2UubGVfcGx1c19hZ2UgaW5cbiAgbGV0IGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM186IEVuZmFudC50IC0+IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl0gKHVuZW1iZWRkYWJsZSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODM7IHN0YXJ0X2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTgzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgxMSkgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDQpICgzMCkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uX2F2cmlsXzIwMDhfZG90X2FnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM18pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoMTQpICgwKSAoMCkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTUyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfOiBFbmZhbnQudCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJlbmZhbnRzX8OgX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2VuZmFudCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NzU7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2ZpbHRlclxuICAgICAgICAgICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF8pXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpIGVuZmFudHNfYV9jaGFyZ2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk1OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGVzdF9lbmZhbnRfbGVfcGx1c19hZ2VfOiBFbmZhbnQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZXN0X2VuZmFudF9sZV9wbHVzX8OiZ8OpXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IChcbiAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgb19lcSBlbmZhbnRfbGVfcGx1c19hZ2VfZG90X2xlX3BsdXNfYWdlXyBlbmZhbnRfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1NTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xNTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTU1OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfX2lfaV9kNTIxXzNfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInBsYWZvbmRfSUlfZDUyMV8zXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNpcmN1bGFpcmUgaW50ZXJtaW5pc3TDqXJpZWxsZSBOwrAgRFNTL1NEMkIvMjAxNy8zNTIgZHUgMjIgZMOpY2VtYnJlIDIwMTcgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAxOCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc4NzcwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2MjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkluc3RydWN0aW9uIGludGVybWluaXN0w6lyaWVsbGUgbsKwIERTUy9TRDJCLzIwMTgvMjc5IGR1IDE3IGTDqWNlbWJyZSAyMDE4IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMTkgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3OTU1ODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Njg0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdGVyaWVsbGUgbm8gRFNTL1NEMkIvMjAxOS8yNjEgZHUgMTggZMOpY2VtYnJlIDIwMTkgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGphbnZpZXIgMjAyMCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBk4oCZYXR0cmlidXRpb24gZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgwODMxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU3NzUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzI7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE0IGTDqWNlbWJyZSAyMDIwIHJlbGF0aWYgYXUgbW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlcyBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBhdXggdHJhbmNoZXMgZHUgYmFyw6htZSBhcHBsaWNhYmxlIGF1IHJlY291dnJlbWVudCBkZXMgaW5kdXMgZXQgw6AgbGEgc2Fpc2llIGRlcyBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODE1NTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc4MzAwMDBcIilcbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTk1MDBcIilcbiAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTU4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE1ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX19pX2Q1MjFfM186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicGxhZm9uZF9JX2Q1MjFfM1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGludGVybWluaXN0w6lyaWVsbGUgTsKwIERTUy9TRDJCLzIwMTcvMzUyIGR1IDIyIGTDqWNlbWJyZSAyMDE3IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMTggZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBsYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjI4NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBpbnRlcm1pbmlzdMOpcmllbGxlIG7CsCBEU1MvU0QyQi8yMDE4LzI3OSBkdSAxNyBkw6ljZW1icmUgMjAxOCByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgamFudmllciAyMDE5IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzIGTigJlhdHRyaWJ1dGlvbiBkZSBjZXJ0YWluZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGUsIGVuIEd1YWRlbG91cGUsIGVuIEd1eWFuZSwgZW4gTWFydGluaXF1ZSwgw6AgbGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15LCDDoCBTYWludC1NYXJ0aW4gZXQgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGRlcyBwbGFmb25kcyBkZSByZXNzb3VyY2VzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTY4NDkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTY4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODk7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3RlcmllbGxlIG5vIERTUy9TRDJCLzIwMTkvMjYxIGR1IDE4IGTDqWNlbWJyZSAyMDE5IHJlbGF0aXZlIMOgIGxhIHJldmFsb3Jpc2F0aW9uIGF1IDFlciBqYW52aWVyIDIwMjAgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZOKAmWF0dHJpYnV0aW9uIGRlIGNlcnRhaW5lcyBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIHNlcnZpZXMgZW4gbcOpdHJvcG9sZSwgZW4gR3VhZGVsb3VwZSwgZW4gR3V5YW5lLCBlbiBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXksIMOgIFNhaW50LU1hcnRpbiBldCDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Nzc1OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1Nzc1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU3OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAxNCBkw6ljZW1icmUgMjAyMCByZWxhdGlmIGF1IG1vbnRhbnQgZGVzIHBsYWZvbmRzIGRlIHJlc3NvdXJjZXMgZGUgY2VydGFpbmVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgYXV4IHRyYW5jaGVzIGR1IGJhcsOobWUgYXBwbGljYWJsZSBhdSByZWNvdXZyZW1lbnQgZGVzIGluZHVzIGV0IMOgIGxhIHNhaXNpZSBkZXMgcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkZXMgcGxhZm9uZHMgZGUgcmVzc291cmNlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU4Mjc5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4MjcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXykpKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMwNDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NTk1MDAwXCIpXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTU5NTAwXCIpXG4gICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE1Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNTc7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0X2NvbXBsZW1lbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiZHJvaXRfb3V2ZXJ0X2NvbXBsw6ltZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzNzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzA7IGVuZF9jb2x1bW49NzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzU1LTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbGEgR3VhZGVsb3VwZSwgw6AgbGEgR3V5YW5lLCDDoCBsYSBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXkgZXQgw6AgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXzogRW5mYW50LnQgLT4gYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydF9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyNDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDc1NS0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsYSBHdWFkZWxvdXBlLCDDoCBsYSBHdXlhbmUsIMOgIGxhIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSBldCDDoCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCAob19sZW5ndGggZW5mYW50c19hX2NoYXJnZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX2VuZmFudHNfYWxpbmVhXzJfbDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kdXJfZHVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDApICgzNjUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25zX2hvcnNfw6JnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2NvbmRpdGlvbnNfaG9yc19hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uc19ob3JzX8OiZ2VcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlX3F1YXRyaWVtZV9lbmZhbnRfZXRfcGx1c19tYXlvdHRlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwibW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpw6htZV9lbmZhbnRfZXRfcGx1c19tYXlvdHRlXCJdIChlbWJlZF9tb25leSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTE3OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTk1OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNDYzXCIpKVxuICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkpKSBlbHNlXG4gICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lX2VuZmFudF9tYXlvdHRlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwibW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpw6htZV9lbmZhbnRfbWF5b3R0ZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDMxOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDQ2M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM5OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDUzOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ3OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDYxNVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDU1OyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTIpICgzMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDY5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NjM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNzY2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzE7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wODQyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Nzk7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wOTE4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODc7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMDg5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTU7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMjU5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUwMzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MDM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xNDNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xODY7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTZcIikpXG4gICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExNjsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBub21icmVfdG90YWxfZW5mYW50c186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJub21icmVfdG90YWxfZW5mYW50c1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgIChvX2xlbmd0aCBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX21veWVuX2VuZmFudHNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibm9tYnJlX21veWVuX2VuZmFudHNcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX3JlZHVjZVxuICAgICAgICAgICAgICAoZnVuIChzdW0xXzogZGVjaW1hbCkgKHN1bTJfOiBkZWNpbWFsKSAtPlxuICAgICAgICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHN1bTFfIHN1bTJfKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKVxuICAgICAgICAgICAgICAob19tYXBcbiAgICAgICAgICAgICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50LnQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9wcmlzZV9lbl9jb21wdGUpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICBwcmlzZV9lbl9jb21wdGVfKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuQ29tcGxldGUgXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICB8IFByaXNlRW5Db21wdGUuUGFydGFnZWUgXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLlplcm8gXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSlcbiAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9iYXNlX3ByZW1pZXJfZW5mYW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfYmFzZV9wcmVtaWVyX2VuZmFudFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1MjsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDExKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjE0NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjE7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMzkzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEzMzVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc5OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTI3OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODg7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMjJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk3OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE2KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTYpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTE2M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDY7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMTA1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl8pKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA5NzZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzI0OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQW5uZXhlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRGlzcG9zaXRpb25zIHNww6ljaWFsZXMgcmVsYXRpdmVzIMOgIE1heW90dGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg0N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzM7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wNzE3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTcyOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjc7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjc7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDU4OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM2NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzY2OyBlbmRfY29sdW1uPTcxO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ3NTUtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDU4OFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM2Mjsgc3RhcnRfY29sdW1uPTI5OyBlbmRfbGluZT0zNjI7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ3NTUtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IGRyb2l0X291dmVydF9iYXNlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydF9iYXNlXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTsgZW5kX2NvbHVtbj03MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDEwOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNzU1LTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGxhIEd1YWRlbG91cGUsIMOgIGxhIEd1eWFuZSwgw6AgbGEgTWFydGluaXF1ZSwgw6AgTGEgUsOpdW5pb24sIMOgIFNhaW50LUJhcnRow6lsZW15IGV0IMOgIFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl86IEVuZmFudC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxODsgZW5kX2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDUyMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfZW5mYW50c19hbGluZWFfMl9sNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfZHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlX21pbmltdW1fYWxpbmVhXzFfbDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9lbmZhbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRfKSkpKSkpKSkgZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzAwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMjsgZW5kX2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJlc3RfZW5mYW50X2xlX3BsdXNfw6Jnw6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVzdF9lbmZhbnRfbGVfcGx1c1/DomfDqVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImVzdF9lbmZhbnRfbGVfcGx1c1/DomfDqVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzdF9lbmZhbnRfbGVfcGx1c19hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZXN0X2VuZmFudF9sZV9wbHVzX8OiZ8OpXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiw6JnZV9taW5pbXVtX2FsaW7DqWFfMV9sNTIxXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIsOiZ2VfbWluaW11bV9hbGluw6lhXzFfbDUyMV8zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfZHVyYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDomdlX21pbmltdW1fYWxpbsOpYV8xX2w1MjFfM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTI2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBjb21wbGVtZW50X2RlZ3Jlc3NpZl86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29tcGzDqW1lbnRfZMOpZ3Jlc3NpZlwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjY7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWxsb2NhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIHBsYWZvbmRfX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWxsb2NhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGFsbG9jYXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYWxsb2NhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTM5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9wYXJfZW5mYW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqV9mb3JmYWl0YWlyZV9wYXJfZW5mYW50XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDIzNFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzNjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9pX2Q1MjFfM18pKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xMDExN1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0OTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDUwNTlcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWVfZW5mYW50X2V0X3BsdXNfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgXCJtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2nDqG1lX2VuZmFudF9ldF9wbHVzXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9kNTIxXzNfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDc7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV8gcGxhZm9uZF9faV9pX2Q1MjFfM18pKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjA1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlXyBwbGFmb25kX19pX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjEwMjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNzsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV9kZXV4aWVtZV9lbmZhbnRfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpw6htZV9lbmZhbnRcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9kZWNyZXRzX2RpdmVycy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTA7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbm5leGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsDIwMDItNDIzIGR1IDI5IG1hcnMgMjAwMiByZWxhdGlmIGF1eCBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzIMOgIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjMyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1ODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMzc5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM2Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2NjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMykgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNDM3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3NDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNDk2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4MjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNTU1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5MDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNikgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNjEzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yNjcyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwNjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yODA0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yOTM2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMjsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFubmV4ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwMjAwMi00MjMgZHUgMjkgbWFycyAyMDAyIHJlbGF0aWYgYXV4IHByZXN0YXRpb25zIGZhbWlsaWFsZXMgw6AgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEyKSAoMzEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMDY4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZGVjcmV0c19kaXZlcnMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzc7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzc7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEaXNwb3NpdGlvbnMgc3DDqWNpYWxlcyByZWxhdGl2ZXMgw6AgTWF5b3R0ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmZhbnRzX2FfY2hhcmdlX2Ryb2l0X291dmVydF9wcmVzdGF0aW9uX2ZhbWlsaWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfIHBsYWZvbmRfX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03OTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9kNTIxXzNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExNzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE3OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXykpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBibWFmX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCByYXBwb3J0X2VuZmFudHNfdG90YWxfbW95ZW5fOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicmFwcG9ydF9lbmZhbnRzX3RvdGFsX21veWVuXCJdIChlbWJlZF9kZWNpbWFsKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfUi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTIxLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgKG9fZXEgbm9tYnJlX3RvdGFsX2VuZmFudHNfIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSB0aGVuXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgbm9tYnJlX21veWVuX2VuZmFudHNfIG5vbWJyZV90b3RhbF9lbmZhbnRzXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfbWV0cm9wb2xlX21ham9yYXRpb25fOiBFbmZhbnQudCAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tw6l0cm9wb2xlX21ham9yYXRpb25cIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjg7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2Q1MjFfM18pICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTZcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDE7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfZDUyMV8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2lfZDUyMV8zXykpICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgYm1hZl9kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDhcIikpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyODsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfX2lfaV9kNTIxXzNfKSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA0XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlLDqGdsZXMgZGl2ZXJzZXNcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyODsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTI4OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfdmVyc8OpX2ZvcmZhaXRhaXJlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xOTk7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXQgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9wYXJfZW5mYW50X1xuICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X2ZvcmZhaXRhaXJlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfZm9yZmFpdGFpcmVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkgZW5mYW50c19hX2NoYXJnZV8pKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2luaXRpYWxfYmFzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF9pbml0aWFsX2Jhc2VcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTc7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENzU1LTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgNSA6IETDqXBhcnRlbWVudHMgZCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3JlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV9wcmVtaWVyX2VuZmFudF8pKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2RlY3JldHNfZGl2ZXJzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTE7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAyMDAyLTQyMyBkdSAyOSBtYXJzIDIwMDIgcmVsYXRpZiBhdXggcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyDDoCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkRpc3Bvc2l0aW9ucyBzcMOpY2lhbGVzIHJlbGF0aXZlcyDDoCBNYXlvdHRlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV9wcmVtaWVyX2VuZmFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lX2VuZmFudF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2luaXRpYWxfYmFzZV90cm9pc2llbWVfZW5mYW50X21heW90dGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfcXVhdHJpZW1lX2VuZmFudF9ldF9wbHVzX21heW90dGVfKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2FkZF9tb25fbW9uIG1vbnRhbnRfaW5pdGlhbF9iYXNlX2RldXhpZW1lX2VuZmFudF9cbiAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX2Jhc2VfdHJvaXNpZW1lX2VuZmFudF9ldF9wbHVzXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXzogRW5mYW50LnQgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbWFqb3JhdGlvblwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjsgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4MzsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDc1NS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSA1IDogRMOpcGFydGVtZW50cyBkJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDcgOiBSw6lnaW1lcyBkaXZlcnMgLSBEaXNwb3NpdGlvbnMgZGl2ZXJzZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm9pdF9vdXZlcnRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVnaW1lX291dHJlX21lcl9sNzUxXzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZmFudHNfYV9jaGFyZ2VfZHJvaXRfb3V2ZXJ0X3ByZXN0YXRpb25fZmFtaWxpYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgxMSkgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9kYXRfZHVyIEFib3J0T25Sb3VuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50LmRhdGVfZGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDE2KSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDM2OVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzkyOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENzU1LTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNyA6IFLDqWdpbWVzIGRpdmVycyAtIERpc3Bvc2l0aW9ucyBkaXZlcnNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbCkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0X21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyb2l0X291dmVydF9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydF9tYWpvcmF0aW9uXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5mYW50c19hX2NoYXJnZV9kcm9pdF9vdXZlcnRfcHJlc3RhdGlvbl9mYW1pbGlhbGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudC5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgxNikgKDApICgwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IGJtYWZfZG90X21vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDU2N1wiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgXCJtb250YW50X2luaXRpYWxfbcOpdHJvcG9sZV9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgXCJtb250YW50X2luaXRpYWxfbcOpdHJvcG9sZV9tYWpvcmF0aW9uXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfaW5pdGlhbF9tw6l0cm9wb2xlX21ham9yYXRpb25cIl1cbiAgICAgICAgICAgICAgICAgbW9udGFudF9pbml0aWFsX21ldHJvcG9sZV9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfaW5pdGlhbF9tw6l0cm9wb2xlX21ham9yYXRpb25cIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudCkgZW5mYW50XykpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzA7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTMwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlX2NvbXBsZW1lbnRfcG91cl9mb3JmYWl0YWlyZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lfY29tcGzDqW1lbnRfcG91cl9mb3JmYWl0YWlyZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiOyBcIlByb2xvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9ELmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjcwOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX19pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9kNTIxXzNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfZm9yZmFpdGFpcmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjc4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4MDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9faV9pX2Q1MjFfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcGxhZm9uZF9faV9pX2Q1MjFfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBwbGFmb25kX19pX2lfZDUyMV8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X3ZlcnNlX2ZvcmZhaXRhaXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mjg2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTE0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xNDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX2Jhc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfYmFzZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTExOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTExMTsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MjEtM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIGVuIENvbnNlaWwgZCdFdGF0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IG1vbnRhbnRfaW5pdGlhbF9iYXNlXyByYXBwb3J0X2VuZmFudHNfdG90YWxfbW95ZW5fKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTE7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9hdmVjX2dhcmRlX2FsdGVybmVlX21ham9yYXRpb25fOiBFbmZhbnQudCAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfbWFqb3JhdGlvblwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7IFwiUHJvbG9ndWVcIl19IChcbiAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjUyMS00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAyIDogUHJlc3RhdGlvbnMgZ8OpbsOpcmFsZXMgZCdlbnRyZXRpZW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X2luaXRpYWxfbWFqb3JhdGlvblwiXVxuICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRfaW5pdGlhbF9tYWpvcmF0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgIChtYXRjaCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJwcmlzZV9lbl9jb21wdGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfcHJpc2VfZW5fY29tcHRlKSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwicHJpc2VfZW5fY29tcHRlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgcHJpc2VfZW5fY29tcHRlXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcInByaXNlX2VuX2NvbXB0ZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnQpIGVuZmFudF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLkNvbXBsZXRlIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgfCBQcmlzZUVuQ29tcHRlLlBhcnRhZ2VlIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgUHJpc2VFbkNvbXB0ZS5aZXJvIF8gLT4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfdmVyc2VfYmFzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwibW9udGFudF92ZXJzw6lfYmFzZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTI7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGRyb2l0X291dmVydF9iYXNlXyB0aGVuIG1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm5lZV9iYXNlX1xuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMTI7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9tYWpvcmF0aW9uXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqV9tYWpvcmF0aW9uXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzNDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJSw6hnbGVzIGRpdmVyc2VzXCI7IFwiw4lwaWxvZ3VlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgZHJvaXRfb3V2ZXJ0X2Jhc2VfIHRoZW5cbiAgICAgICAgICAgICAgKG9fcmVkdWNlXG4gICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBtb25leSkgKHN1bTJfOiBtb25leSkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiBzdW0xXyBzdW0yXykgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgKG9fbWFwXG4gICAgICAgICAgICAgICAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudC50KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50X2F2ZWNfZ2FyZGVfYWx0ZXJuw6llX21ham9yYXRpb25cIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudF9hdmVjX2dhcmRlX2FsdGVybsOpZV9tYWpvcmF0aW9uXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm5lZV9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRfYXZlY19nYXJkZV9hbHRlcm7DqWVfbWFqb3JhdGlvblwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50KSBlbmZhbnRfKSkpKSkpKSBlbmZhbnRzX2FfY2hhcmdlXykpIGVsc2VcbiAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEzNDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2Jhc2VfY29tcGxlbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvbl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICBcIm1vbnRhbnRfYmFzZV9jb21wbMOpbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvblwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3NlY3VyaXRlX3NvY2lhbGVfRC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTg5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBENTIxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb24gbW9udGFudF92ZXJzZV9iYXNlXyBtb250YW50X3ZlcnNlX21ham9yYXRpb25fKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMzg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF92ZXJzZV9jb21wbGVtZW50X3BvdXJfYmFzZV9ldF9tYWpvcmF0aW9uXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgIFwibW9udGFudF92ZXJzw6lfY29tcGzDqW1lbnRfcG91cl9iYXNlX2V0X21ham9yYXRpb25cIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xNDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTQxOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0QuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE4MzsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDUyMS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWYgZHJvaXRfb3V2ZXJ0X2NvbXBsZW1lbnRfIHRoZW5cbiAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb21wbMOpbWVudF9kw6lncmVzc2lmXCJdXG4gICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgIFtcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbXBsw6ltZW50X2TDqWdyZXNzaWZcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJjb21wbMOpbWVudF9kw6lncmVzc2lmXCJdXG4gICAgICAgICAgICAgICAgY29tcGxlbWVudF9kZWdyZXNzaWZfKSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgW1wiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiY29tcGzDqW1lbnRfZMOpZ3Jlc3NpZlwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICBtb250YW50X2Jhc2VfY29tcGxlbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvbl8pKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTQxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTE0MTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjsgXCJDaGFtcHMgZCdhcHBsaWNhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZVwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X3ZlcnNlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJtb250YW50X3ZlcnPDqVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCI7IFwiQ2hhbXBzIGQnYXBwbGljYXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ1OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUsOoZ2xlcyBkaXZlcnNlc1wiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGRyb2l0X291dmVydF9iYXNlXyB0aGVuXG4gICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIG1vbnRhbnRfdmVyc2VfYmFzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9tYWpvcmF0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF92ZXJzZV9mb3JmYWl0YWlyZV8pXG4gICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfY29tcGxlbWVudF9wb3VyX2Jhc2VfZXRfbWFqb3JhdGlvbl8pXG4gICAgICAgICAgICAgICAgIG1vbnRhbnRfdmVyc2VfY29tcGxlbWVudF9wb3VyX2ZvcmZhaXRhaXJlXykgZWxzZVxuICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiOyBcIkNoYW1wcyBkJ2FwcGxpY2F0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlXCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fb3IgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV8pKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvc2VjdXJpdGVfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzU7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTIxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IEFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDIgOiBQcmVzdGF0aW9ucyBnw6luw6lyYWxlcyBkJ2VudHJldGllblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9zZWN1cml0ZV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzNTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MjEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogQWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMiA6IFByZXN0YXRpb25zIGfDqW7DqXJhbGVzIGQnZW50cmV0aWVuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSBpblxuICB7QWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnRfdmVyc2UgPSBtb250YW50X3ZlcnNlX31cblxubGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbjogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIGxldCBpX2RhdGVfY291cmFudGVfOiBkYXRlID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBpX2VuZmFudHNfOiBFbmZhbnRFbnRyZWUudCBhcnJheSA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfZW5mYW50c19pbiBpblxuICBsZXQgaV9yZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5ID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9yZXNzb3VyY2VzX21lbmFnZV9pbiBpblxuICBsZXQgaV9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcmVzaWRlbmNlX2luIGluXG4gIGxldCBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50XzogYm9vbCA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4gaW5cbiAgbGV0IGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfOiBib29sID0gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luIGluXG4gIGxldCBpX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXzogYm9vbCA9IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4gaW5cbiAgbGV0IGVuZmFudHNfYV9jaGFyZ2VfOiBFbmZhbnQudCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImVuZmFudHNfw6BfY2hhcmdlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NjsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTc7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxMzEtMVwiOyBcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fbWFwXG4gICAgICAgICAgICAgIChmdW4gKGVuZmFudF86IEVuZmFudEVudHJlZS50KSAtPlxuICAgICAgICAgICAgICAgICB7RW5mYW50LmlkZW50aWZpYW50ID0gKGVuZmFudF8uRW5mYW50RW50cmVlLmRfaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDMpICgwKSAoMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlfZGF0ZV9jb3VyYW50ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAoU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50ICgpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDE2KSAoMCkgKDApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpX2RhdGVfY291cmFudGVfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50ICgpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyAoKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50LnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX3JlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2RhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50LnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50RW50cmVlLmRfcHJpc2VfZW5fY2hhcmdlKTtcbiAgICAgICAgICAgICAgICAgICAgRW5mYW50LmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEVudHJlZS5kX2FfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgICAgICAgICAgICAgICAgICBFbmZhbnQuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRFbnRyZWUuZF9iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSlcbiAgICAgICAgICAgICAgaV9lbmZhbnRzXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NjsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkpKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXMucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTI7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTM7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTkyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkyOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTI7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9faV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JXCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTY7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk2OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9OTY7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3OyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgIGlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX3JlbXBsaXRfdGl0cmVfX2lfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT05NjsgZW5kX2NvbHVtbj04MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05Njsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTk2OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzc291cmNlc19tZW5hZ2VfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLnJlc3NvdXJjZXNfbcOpbmFnZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04ODsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBpX3Jlc3NvdXJjZXNfbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg4OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0pKSBpblxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7IFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5yw6lzaWRlbmNlXCJdXG4gICAgICAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODk7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04OTsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gaV9yZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODk7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTg2OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBpX2RhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODY7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9lbmZhbnRzX2FfY2hhcmdlXzogRW5mYW50LnQgYXJyYXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgIFwiYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5lbmZhbnRzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2FycmF5IChlbWJlZF9lbmZhbnQpKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9ODc7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZW5mYW50c19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04NzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzLmF2YWl0X2VuZmFudF/DoF9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMlwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDA7IGVuZF9jb2x1bW49NzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnRlcmZhY2UgZHUgcHJvZ3JhbW1lXCI7IFwiw4lwaWxvZ3VlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDE7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDE7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19XG4gICAgICAgICAgICAgICAgICAgIGlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvZXBpbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTAwOyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwMDsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IEFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJJbnRlcmZhY2VBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIjsgXCJhbGxvY2F0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7QWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW4gPVxuICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX19pXztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzc291cmNlc19tZW5hZ2VfaW4gPVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc3NvdXJjZXNfbWVuYWdlXztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZW5mYW50c19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfZW5mYW50c19hX2NoYXJnZV87XG4gICAgICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmF2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luID1cbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9hdmFpdF9lbmZhbnRfYV9jaGFyZ2VfYXZhbnRfMWVyX2phbnZpZXJfMjAxMl99KSkpIGluXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb250YW50X3ZlcnNlXzogbW9uZXkgPSByZXN1bHRfLkFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50X3ZlcnNlIGluXG4gIGxldCBpX21vbnRhbnRfdmVyc2VfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcImlfbW9udGFudF92ZXJzw6lcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2VwaWxvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW50ZXJmYWNlIGR1IHByb2dyYW1tZVwiOyBcIsOJcGlsb2d1ZVwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb250YW50X3ZlcnNlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9lcGlsb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkludGVyZmFjZSBkdSBwcm9ncmFtbWVcIjsgXCLDiXBpbG9ndWVcIl19KSkpKSBpblxuICB7SW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLmlfbW9udGFudF92ZXJzZSA9IGlfbW9udGFudF92ZXJzZV99XG4iLCIoKiogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSB0aGUgQ2F0YWxhIGNvbXBpbGVyLCBkbyBub3QgZWRpdCEgKilcblxub3BlbiBSdW50aW1lX29jYW1sLlJ1bnRpbWVcbm9wZW4gUnVudGltZV9qc29vLlJ1bnRpbWVcbm9wZW4gSnNfb2Zfb2NhbWxcbm9wZW4gQWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuXG5bQEBAb2NhbWwud2FybmluZyBcIi00LTI2LTI3LTMyLTQxLTQyXCJdXG5cbigqIEdlbmVyYXRlZCBBUEkgKilcblxuY2xhc3MgdHlwZSBwcmlzZV9lbl9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiXG4gICAgICAgIC0gXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV90b19qc29vIDogUHJpc2VFbkNoYXJnZS50IC0+IHByaXNlX2VuX2NoYXJnZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcHJpc2VfZW5fY2hhcmdlX29mX2pzb28gKHByaXNlX2VuX2NoYXJnZSA6IHByaXNlX2VuX2NoYXJnZSBKcy50KVxuICA6IFByaXNlRW5DaGFyZ2UudCA9XG4gIG1hdGNoIHByaXNlX2VuX2NoYXJnZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyAoKVxuICB8IFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSAoKVxuICB8IFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIgLT4gUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKClcbiAgfCBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlICgpXG4gIHwgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByaXNlRW5DaGFyZ2UudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBdmFudFwiXG4gICAgICAgIC0gXCJQZW5kYW50XCJcbiAgICAgICAgLSBcIkFwcmVzXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvb1xuICA6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50IC0+IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEF2YW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQZW5kYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGVuZGFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFwcmVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXByZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgKHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIDogc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudClcbiAgOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudCA9XG4gIG1hdGNoIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQXZhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgKClcbiAgfCBcIlBlbmRhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCAoKVxuICB8IFwiQXByZXNcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1NpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwcmlzZV9lbl9jb21wdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJDb21wbGV0ZVwiXG4gICAgICAgIC0gXCJQYXJ0YWdlZVwiXG4gICAgICAgIC0gXCJaZXJvXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJpc2VfZW5fY29tcHRlX3RvX2pzb28gOiBQcmlzZUVuQ29tcHRlLnQgLT4gcHJpc2VfZW5fY29tcHRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IENvbXBsZXRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxldGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQYXJ0YWdlZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhcnRhZ2VlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgWmVybyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlplcm9cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByaXNlX2VuX2NvbXB0ZV9vZl9qc29vIChwcmlzZV9lbl9jb21wdGUgOiBwcmlzZV9lbl9jb21wdGUgSnMudClcbiAgOiBQcmlzZUVuQ29tcHRlLnQgPVxuICBtYXRjaCBwcmlzZV9lbl9jb21wdGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJDb21wbGV0ZVwiIC0+IFByaXNlRW5Db21wdGUuQ29tcGxldGUgKClcbiAgfCBcIlBhcnRhZ2VlXCIgLT4gUHJpc2VFbkNvbXB0ZS5QYXJ0YWdlZSAoKVxuICB8IFwiWmVyb1wiIC0+IFByaXNlRW5Db21wdGUuWmVybyAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJpc2VFbkNvbXB0ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB2ZXJzZW1lbnRfYWxsb2NhdGlvbnMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJOb3JtYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHZlcnNlbWVudF9hbGxvY2F0aW9uc190b19qc29vXG4gIDogVmVyc2VtZW50QWxsb2NhdGlvbnMudCAtPiB2ZXJzZW1lbnRfYWxsb2NhdGlvbnMgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgTm9ybWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTm9ybWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHZlcnNlbWVudF9hbGxvY2F0aW9uc19vZl9qc29vXG4gICh2ZXJzZW1lbnRfYWxsb2NhdGlvbnMgOiB2ZXJzZW1lbnRfYWxsb2NhdGlvbnMgSnMudClcbiAgOiBWZXJzZW1lbnRBbGxvY2F0aW9ucy50ID1cbiAgbWF0Y2ggdmVyc2VtZW50X2FsbG9jYXRpb25zIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTm9ybWFsXCIgLT4gVmVyc2VtZW50QWxsb2NhdGlvbnMuTm9ybWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgLT5cbiAgICBWZXJzZW1lbnRBbGxvY2F0aW9ucy5BbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4ICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdWZXJzZW1lbnRBbGxvY2F0aW9ucy50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICAgIC0gXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29tcGxlbWVudEZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkxvZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgKGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA6IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KVxuICA6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIG1hdGNoIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCAoKVxuICB8IFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25zRmFtaWxpYWxlcyAoKVxuICB8IFwiQ29tcGxlbWVudEZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkNvbXBsZW1lbnRGYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50XCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Mb2dlbWVudCAoKVxuICB8IFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgKClcbiAgfCBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSAoKVxuICB8IFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0VsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgY29sbGVjdGl2aXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiR3VhZGVsb3VwZVwiXG4gICAgICAgIC0gXCJHdXlhbmVcIlxuICAgICAgICAtIFwiTWFydGluaXF1ZVwiXG4gICAgICAgIC0gXCJMYVJldW5pb25cIlxuICAgICAgICAtIFwiU2FpbnRCYXJ0aGVsZW15XCJcbiAgICAgICAgLSBcIlNhaW50TWFydGluXCJcbiAgICAgICAgLSBcIk1ldHJvcG9sZVwiXG4gICAgICAgIC0gXCJTYWludFBpZXJyZUV0TWlxdWVsb25cIlxuICAgICAgICAtIFwiTWF5b3R0ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNvbGxlY3Rpdml0ZV90b19qc29vIDogQ29sbGVjdGl2aXRlLnQgLT4gY29sbGVjdGl2aXRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEd1YWRlbG91cGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHdWFkZWxvdXBlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR3V5YW5lIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR3V5YW5lXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWFydGluaXF1ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1hcnRpbmlxdWVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBMYVJldW5pb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMYVJldW5pb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTYWludEJhcnRoZWxlbXkgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludEJhcnRoZWxlbXlcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBTYWludE1hcnRpbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50TWFydGluXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWV0cm9wb2xlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWV0cm9wb2xlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWF5b3R0ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1heW90dGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGNvbGxlY3Rpdml0ZV9vZl9qc29vIChjb2xsZWN0aXZpdGUgOiBjb2xsZWN0aXZpdGUgSnMudClcbiAgOiBDb2xsZWN0aXZpdGUudCA9XG4gIG1hdGNoIGNvbGxlY3Rpdml0ZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkd1YWRlbG91cGVcIiAtPiBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKVxuICB8IFwiR3V5YW5lXCIgLT4gQ29sbGVjdGl2aXRlLkd1eWFuZSAoKVxuICB8IFwiTWFydGluaXF1ZVwiIC0+IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpXG4gIHwgXCJMYVJldW5pb25cIiAtPiBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpXG4gIHwgXCJTYWludEJhcnRoZWxlbXlcIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15ICgpXG4gIHwgXCJTYWludE1hcnRpblwiIC0+IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiAoKVxuICB8IFwiTWV0cm9wb2xlXCIgLT4gQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKVxuICB8IFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiAoKVxuICB8IFwiTWF5b3R0ZVwiIC0+IENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdDb2xsZWN0aXZpdGUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZ2VNaW5pbXVtQWxpbmVhMUw1MjEzOlxuICAgICAgUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF90b19qc29vXG4gICAgKGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggOiBBbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOC50KVxuICAgIDogYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhZ2VNaW5pbXVtQWxpbmVhMUw1MjEzID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4LmFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfM1xuICAgICAgZW5kXG4gIGxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X29mX2pzb29cbiAgICAoYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDggSnMudCkgOlxuICAgIEFsbG9jYXRpb25GYW1pbGlhbGVzQXZyaWwyMDA4LnQgPVxuICAgIHtcbiAgICAgIGFnZV9taW5pbXVtX2FsaW5lYV8xX2w1MjFfMyA9XG4gICAgICAgIGR1cmF0aW9uX29mX2pzb29cbiAgICAgICAgICBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IyMuYWdlTWluaW11bUFsaW5lYTFMNTIxM1xuICAgIH1cblxuY2xhc3MgdHlwZSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0IG1ldGhvZCBtb250YW50VmVyc2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb28gKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IEFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudFZlcnNlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMubW9udGFudF92ZXJzZVxuICAgICAgZW5kXG4gIGxldCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA6IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgOlxuICAgIEFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBtb250YW50X3ZlcnNlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXMjIy5tb250YW50VmVyc2VcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hID1cbiAgb2JqZWN0IG1ldGhvZCBlc3RJbmZlcmlldXJPdUVnYWw6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpXG4gICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0SW5mZXJpZXVyT3VFZ2FsID1cbiAgICAgICAgSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EuZXN0X2luZmVyaWV1cl9vdV9lZ2FsXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEudCA9XG4gICAge1xuICAgICAgZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgICAgSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EjIy5lc3RJbmZlcmlldXJPdUVnYWxcbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSA9XG4gIG9iamVjdCBtZXRob2QgZXN0U3VwZXJpZXVyOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdG9fanNvbyAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAgIDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZXN0U3VwZXJpZXVyID0gSnMuYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hLmVzdF9zdXBlcmlldXJcbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgIHtlc3Rfc3VwZXJpZXVyID0gSnMudG9fYm9vbCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIyMuZXN0U3VwZXJpZXVyXG4gICAgfVxuXG5jbGFzcyB0eXBlIHNtaWMgPVxuICBvYmplY3QgbWV0aG9kIGJydXRIb3JhaXJlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY190b19qc29vIChzbWljIDogU21pYy50KSA6IHNtaWMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYnJ1dEhvcmFpcmUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgc21pYy5icnV0X2hvcmFpcmVcbiAgICAgIGVuZFxuICBsZXQgc21pY19vZl9qc29vIChzbWljIDogc21pYyBKcy50KSA6IFNtaWMudCA9XG4gICAge1xuICAgICAgYnJ1dF9ob3JhaXJlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHNtaWMjIy5icnV0SG9yYWlyZVxuICAgIH1cblxuY2xhc3MgdHlwZSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0IG1ldGhvZCBtb250YW50OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudClcbiAgICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLm1vbnRhbnRcbiAgICAgIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSA6XG4gICAgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBtb250YW50ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMjIy5tb250YW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0IG1ldGhvZCBpTW9udGFudFZlcnNlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuICAgIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA6IEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KVxuICAgIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgaU1vbnRhbnRWZXJzZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy5pX21vbnRhbnRfdmVyc2VcbiAgICAgIGVuZFxuICBsZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSA6XG4gICAgSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIGlfbW9udGFudF92ZXJzZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyMjLmlNb250YW50VmVyc2VcbiAgICB9XG5cbmNsYXNzIHR5cGUgZW5mYW50X2VudHJlZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkSWRlbnRpZmlhbnQ6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRSZW11bmVyYXRpb25NZW5zdWVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZERhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkUHJpc2VFbkNoYXJnZTogcHJpc2VfZW5fY2hhcmdlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkQURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRCZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfZW50cmVlX3RvX2pzb28gKGVuZmFudF9lbnRyZWUgOiBFbmZhbnRFbnRyZWUudClcbiAgICA6IGVuZmFudF9lbnRyZWUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZElkZW50aWZpYW50ID0gaW50ZWdlcl90b19pbnQgZW5mYW50X2VudHJlZS5kX2lkZW50aWZpYW50XG4gICAgICB2YWwgZFJlbXVuZXJhdGlvbk1lbnN1ZWxsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbmZhbnRfZW50cmVlLmRfcmVtdW5lcmF0aW9uX21lbnN1ZWxsZVxuICAgICAgdmFsIGREYXRlRGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gZW5mYW50X2VudHJlZS5kX2RhdGVfZGVfbmFpc3NhbmNlXG4gICAgICB2YWwgZFByaXNlRW5DaGFyZ2UgPVxuICAgICAgICBwcmlzZV9lbl9jaGFyZ2VfdG9fanNvbyBlbmZhbnRfZW50cmVlLmRfcHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgZEFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9lbnRyZWUuZF9hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICB2YWwgZEJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9lbnRyZWUuZF9iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIGVuZFxuICBsZXQgZW5mYW50X2VudHJlZV9vZl9qc29vIChlbmZhbnRfZW50cmVlIDogZW5mYW50X2VudHJlZSBKcy50KSA6XG4gICAgRW5mYW50RW50cmVlLnQgPVxuICAgIHtcbiAgICAgIGRfaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX29mX2ludCBlbmZhbnRfZW50cmVlIyMuZElkZW50aWZpYW50O1xuICAgICAgZF9yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGVuZmFudF9lbnRyZWUjIy5kUmVtdW5lcmF0aW9uTWVuc3VlbGxlO1xuICAgICAgZF9kYXRlX2RlX25haXNzYW5jZSA9IGRhdGVfb2ZfanNvbyBlbmZhbnRfZW50cmVlIyMuZERhdGVEZU5haXNzYW5jZTtcbiAgICAgIGRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgcHJpc2VfZW5fY2hhcmdlX29mX2pzb28gZW5mYW50X2VudHJlZSMjLmRQcmlzZUVuQ2hhcmdlO1xuICAgICAgZF9hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgSnMudG9fYm9vbCBlbmZhbnRfZW50cmVlIyMuZEFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM7XG4gICAgICBkX2JlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBlbmZhbnRfZW50cmVlIyMuZEJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnRcbiAgICB9XG5cbmNsYXNzIHR5cGUgZW5mYW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGlkZW50aWZpYW50OiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBvYmxpZ2F0aW9uU2NvbGFpcmU6XG4gICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVtdW5lcmF0aW9uTWVuc3VlbGxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVEZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwcmlzZUVuQ2hhcmdlOiBwcmlzZV9lbl9jaGFyZ2UgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50OlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbmZhbnRfdG9fanNvbyAoZW5mYW50IDogRW5mYW50LnQpIDogZW5mYW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlkZW50aWZpYW50ID0gaW50ZWdlcl90b19pbnQgZW5mYW50LmlkZW50aWZpYW50XG4gICAgICB2YWwgb2JsaWdhdGlvblNjb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvbyBlbmZhbnQub2JsaWdhdGlvbl9zY29sYWlyZVxuICAgICAgdmFsIHJlbXVuZXJhdGlvbk1lbnN1ZWxsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbmZhbnQucmVtdW5lcmF0aW9uX21lbnN1ZWxsZVxuICAgICAgdmFsIGRhdGVEZU5haXNzYW5jZSA9IGRhdGVfdG9fanNvbyBlbmZhbnQuZGF0ZV9kZV9uYWlzc2FuY2VcbiAgICAgIHZhbCBwcmlzZUVuQ2hhcmdlID0gcHJpc2VfZW5fY2hhcmdlX3RvX2pzb28gZW5mYW50LnByaXNlX2VuX2NoYXJnZVxuICAgICAgdmFsIGFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy5ib29sIGVuZmFudC5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICB2YWwgYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudCA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50LmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfb2ZfanNvbyAoZW5mYW50IDogZW5mYW50IEpzLnQpIDogRW5mYW50LnQgPVxuICAgIHtcbiAgICAgIGlkZW50aWZpYW50ID0gaW50ZWdlcl9vZl9pbnQgZW5mYW50IyMuaWRlbnRpZmlhbnQ7XG4gICAgICBvYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfb2ZfanNvbyBlbmZhbnQjIy5vYmxpZ2F0aW9uU2NvbGFpcmU7XG4gICAgICByZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGVuZmFudCMjLnJlbXVuZXJhdGlvbk1lbnN1ZWxsZTtcbiAgICAgIGRhdGVfZGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGVuZmFudCMjLmRhdGVEZU5haXNzYW5jZTtcbiAgICAgIHByaXNlX2VuX2NoYXJnZSA9IHByaXNlX2VuX2NoYXJnZV9vZl9qc29vIGVuZmFudCMjLnByaXNlRW5DaGFyZ2U7XG4gICAgICBhX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgSnMudG9fYm9vbCBlbmZhbnQjIy5hRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzO1xuICAgICAgYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgSnMudG9fYm9vbCBlbmZhbnQjIy5iZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIGVuZmFudF9sZV9wbHVzX2FnZSA9XG4gIG9iamVjdCBtZXRob2QgbGVQbHVzQWdlOiBlbmZhbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX3RvX2pzb28gKGVuZmFudF9sZV9wbHVzX2FnZSA6IEVuZmFudExlUGx1c0FnZS50KVxuICAgIDogZW5mYW50X2xlX3BsdXNfYWdlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGxlUGx1c0FnZSA9IGVuZmFudF90b19qc29vIGVuZmFudF9sZV9wbHVzX2FnZS5sZV9wbHVzX2FnZVxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfbGVfcGx1c19hZ2Vfb2ZfanNvb1xuICAgIChlbmZhbnRfbGVfcGx1c19hZ2UgOiBlbmZhbnRfbGVfcGx1c19hZ2UgSnMudCkgOiBFbmZhbnRMZVBsdXNBZ2UudCA9XG4gICAge2xlX3BsdXNfYWdlID0gZW5mYW50X29mX2pzb28gZW5mYW50X2xlX3BsdXNfYWdlIyMubGVQbHVzQWdlXG4gICAgfVxuXG5jbGFzcyB0eXBlIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZHJvaXRPdXZlcnQ6XG4gICAgICAodW5pdCwgIGVuZmFudCBKcy50IC0+IGJvb2wgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGNvbmRpdGlvbnNIb3JzQWdlOlxuICAgICAgKHVuaXQsICBlbmZhbnQgSnMudCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBhZ2VMNTEyMzI6IFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWdpbWVPdXRyZU1lckw3NTExOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgIDogUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIG1ldGhvZCBkcm9pdE91dmVydCA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogZW5mYW50IEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAocHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQgKGVuZmFudF9vZl9qc29vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBjb25kaXRpb25zSG9yc0FnZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogZW5mYW50IEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAocHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIChlbmZhbnRfb2ZfanNvb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgdmFsIGFnZUw1MTIzMiA9IGR1cmF0aW9uX3RvX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzJcbiAgICAgIHZhbCByZWdpbWVPdXRyZU1lckw3NTExID1cbiAgICAgICAgSnMuYm9vbCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXG4gICAgICBlbmRcbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSA6XG4gICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPVxuICAgIHtcbiAgICAgIGRyb2l0X291dmVydCA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdkcm9pdF9vdXZlcnQnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGNvbmRpdGlvbnNfaG9yc19hZ2UgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uc19ob3JzX2FnZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgYWdlX2w1MTJfM18yID0gZHVyYXRpb25fb2ZfanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMuYWdlTDUxMjMyO1xuICAgICAgcmVnaW1lX291dHJlX21lcl9sNzUxXzEgPVxuICAgICAgICBKcy50b19ib29sIHByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5yZWdpbWVPdXRyZU1lckw3NTExXG4gICAgfVxuXG5jbGFzcyB0eXBlIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJlc3RhdGlvbkNvdXJhbnRlSW46XG4gICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgOiBQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcHJlc3RhdGlvbkNvdXJhbnRlSW4gPVxuICAgICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLnByZXN0YXRpb25fY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICAgIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KSA6XG4gICAgUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luID1cbiAgICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMucHJlc3RhdGlvbkNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvbyBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiA9XG5vYmplY3QgZW5kXG5sZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbl90b19qc29vIChfIDogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhJbi50KSA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gSnMudCA9IG9iamVjdCVqcyBlbmRcbmxldCBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luX29mX2pzb28gKF8gOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIEpzLnQpIDogQWxsb2NhdGlvbkZhbWlsaWFsZXNBdnJpbDIwMDhJbi50ID0gKClcbmNsYXNzIHR5cGUgZW5mYW50X2xlX3BsdXNfYWdlX2luID1cbiAgb2JqZWN0IG1ldGhvZCBlbmZhbnRzSW46IGVuZmFudCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVuZmFudF9sZV9wbHVzX2FnZV9pbl90b19qc29vIChlbmZhbnRfbGVfcGx1c19hZ2VfaW5cbiAgICA6IEVuZmFudExlUGx1c0FnZUluLnQpIDogZW5mYW50X2xlX3BsdXNfYWdlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVuZmFudHNJbiA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X3RvX2pzb28geCkgZW5mYW50X2xlX3BsdXNfYWdlX2luLmVuZmFudHNfaW5cbiAgICAgIGVuZFxuICBsZXQgZW5mYW50X2xlX3BsdXNfYWdlX2luX29mX2pzb29cbiAgICAoZW5mYW50X2xlX3BsdXNfYWdlX2luIDogZW5mYW50X2xlX3BsdXNfYWdlX2luIEpzLnQpIDpcbiAgICBFbmZhbnRMZVBsdXNBZ2VJbi50ID1cbiAgICB7XG4gICAgICBlbmZhbnRzX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIGVuZmFudF9sZV9wbHVzX2FnZV9pbiMjLmVuZmFudHNJblxuICAgIH1cblxuY2xhc3MgdHlwZSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVuZmFudHNBQ2hhcmdlSW46IGVuZmFudCBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fdG9fanNvbyAoYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluID1cbiAgICAgICAgSnMuYm9vbCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luXG4gICAgICB2YWwgcGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluID1cbiAgICAgICAgSnMuYm9vbCBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLnBlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5yZXNzb3VyY2VzX21lbmFnZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBlbmZhbnRzQUNoYXJnZUluID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfdG9fanNvbyB4KSBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmVuZmFudHNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBhdmFpdEVuZmFudEFDaGFyZ2VBdmFudDFlckphbnZpZXIyMDEySW4gPVxuICAgICAgICBKcy5ib29sIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW5cbiAgICAgIGVuZFxuICBsZXQgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gICAgKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50ID1cbiAgICB7XG4gICAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfZXN0X3BhcmVudF9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgIyMucGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW47XG4gICAgICBwZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgICAgICAjIy5wZXJzb25uZUNoYXJnZUVmZmVjdGl2ZVBlcm1hbmVudGVSZW1wbGl0VGl0cmVJSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMucmVzc291cmNlc01lbmFnZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb28gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBlbmZhbnRzX2FfY2hhcmdlX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5lbmZhbnRzQUNoYXJnZUluO1xuICAgICAgYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJblxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fdG9fanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgICA6IFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9uYWlzc2FuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4uYW5uZWVzX2luXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICAgICAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmRhdGVOYWlzc2FuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPVxuICAgICAgICBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmFubmVlc0luXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFubmVlc0luOiBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5kYXRlX25haXNzYW5jZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIGFubmVlc0luID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmFubmVlc19pblxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luX29mX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCkgOlxuICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZU5haXNzYW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBhbm5lZXNfaW4gPSBkdXJhdGlvbl9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4jIy5hbm5lZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSBzbWljX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgc21pY19pbl90b19qc29vIChzbWljX2luIDogU21pY0luLnQpIDogc21pY19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9IGRhdGVfdG9fanNvbyBzbWljX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9IGNvbGxlY3Rpdml0ZV90b19qc29vIHNtaWNfaW4ucmVzaWRlbmNlX2luXG4gICAgICBlbmRcbiAgbGV0IHNtaWNfaW5fb2ZfanNvbyAoc21pY19pbiA6IHNtaWNfaW4gSnMudCkgOiBTbWljSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9IGRhdGVfb2ZfanNvbyBzbWljX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPSBjb2xsZWN0aXZpdGVfb2ZfanNvbyBzbWljX2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdCBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX3RvX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpXG4gICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5kYXRlQ291cmFudGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpRGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaUVuZmFudHNJbjogZW5mYW50X2VudHJlZSBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpUmVzc291cmNlc01lbmFnZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGlSZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgaUF2YWl0RW5mYW50QUNoYXJnZUF2YW50MWVySmFudmllcjIwMTJJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fdG9fanNvb1xuICAgIChpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgIDogSW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4udClcbiAgICA6IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGlEYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX2RhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBpRW5mYW50c0luID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBlbmZhbnRfZW50cmVlX3RvX2pzb28geCkgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9lbmZhbnRzX2luXG4gICAgICB2YWwgaVJlc3NvdXJjZXNNZW5hZ2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX3Jlc3NvdXJjZXNfbWVuYWdlX2luXG4gICAgICB2YWwgaVJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4uaV9yZXNpZGVuY2VfaW5cbiAgICAgIHZhbCBpUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlRXN0UGFyZW50SW4gPVxuICAgICAgICBKcy5ib29sIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmlfcGVyc29ubmVfY2hhcmdlX2VmZmVjdGl2ZV9wZXJtYW5lbnRlX2VzdF9wYXJlbnRfaW5cbiAgICAgIHZhbCBpUGVyc29ubmVDaGFyZ2VFZmZlY3RpdmVQZXJtYW5lbnRlUmVtcGxpdFRpdHJlSUluID1cbiAgICAgICAgSnMuYm9vbCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9yZW1wbGl0X3RpdHJlX0lfaW5cbiAgICAgIHZhbCBpQXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluID1cbiAgICAgICAgSnMuYm9vbCBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5pX2F2YWl0X2VuZmFudF9hX2NoYXJnZV9hdmFudF8xZXJfamFudmllcl8yMDEyX2luXG4gICAgICBlbmRcbiAgbGV0IGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCkgOlxuICAgIEludGVyZmFjZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIGlfZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmlEYXRlQ291cmFudGVJbjtcbiAgICAgIGlfZW5mYW50c19pbiA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZW5mYW50X2VudHJlZV9vZl9qc29vIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5pRW5mYW50c0luO1xuICAgICAgaV9yZXNzb3VyY2VzX21lbmFnZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmlSZXNzb3VyY2VzTWVuYWdlSW47XG4gICAgICBpX3Jlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4jIy5pUmVzaWRlbmNlSW47XG4gICAgICBpX3BlcnNvbm5lX2NoYXJnZV9lZmZlY3RpdmVfcGVybWFuZW50ZV9lc3RfcGFyZW50X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgIyMuaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZUVzdFBhcmVudEluO1xuICAgICAgaV9wZXJzb25uZV9jaGFyZ2VfZWZmZWN0aXZlX3Blcm1hbmVudGVfcmVtcGxpdF90aXRyZV9JX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgICAgICAgIyMuaVBlcnNvbm5lQ2hhcmdlRWZmZWN0aXZlUGVybWFuZW50ZVJlbXBsaXRUaXRyZUlJbjtcbiAgICAgIGlfYXZhaXRfZW5mYW50X2FfY2hhcmdlX2F2YW50XzFlcl9qYW52aWVyXzIwMTJfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgICAgICAjIy5pQXZhaXRFbmZhbnRBQ2hhcmdlQXZhbnQxZXJKYW52aWVyMjAxMkluXG4gICAgfVxuXG5cblxuXG5sZXQgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOFxuICAoYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOF9pbiA6IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW4gSnMudClcbiAgOiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4IEpzLnQgPVxuICBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luXG4gIHw+IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfaW5fb2ZfanNvb1xuICB8PiBhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4XG4gIHw+IGFsbG9jYXRpb25fZmFtaWxpYWxlc19hdnJpbDIwMDhfdG9fanNvb1xuXG5cbmxldCBlbmZhbnRfbGVfcGx1c19hZ2UgKGVuZmFudF9sZV9wbHVzX2FnZV9pbiA6IGVuZmFudF9sZV9wbHVzX2FnZV9pbiBKcy50KVxuICA6IGVuZmFudF9sZV9wbHVzX2FnZSBKcy50ID1cbiAgZW5mYW50X2xlX3BsdXNfYWdlX2luXG4gIHw+IGVuZmFudF9sZV9wbHVzX2FnZV9pbl9vZl9qc29vXG4gIHw+IGVuZmFudF9sZV9wbHVzX2FnZVxuICB8PiBlbmZhbnRfbGVfcGx1c19hZ2VfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50ID1cbiAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfdG9fanNvb1xuXG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiBKcy50KVxuICA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgSnMudCA9XG4gIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5cbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl9vZl9qc29vXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV90b19qc29vXG5cblxubGV0IHNtaWMgKHNtaWNfaW4gOiBzbWljX2luIEpzLnQpXG4gIDogc21pYyBKcy50ID1cbiAgc21pY19pbiB8PiBzbWljX2luX29mX2pzb28gfD4gc21pYyB8PiBzbWljX3RvX2pzb29cblxuXG5sZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQgPVxuICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gIHw+IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuXG5cbmxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gIChwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIDogcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KVxuICA6IHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgfD4gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gIHw+IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgfD4gcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG5cblxubGV0IGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgKGFsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBhbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIDogaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudClcbiAgOiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgfD4gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5fb2ZfanNvb1xuICB8PiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG5cblxubGV0IF8gPVxuICAgSnMuZXhwb3J0IFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzTGliXCJcbiAgICAob2JqZWN0JWpzXG4gICAgICBcbiAgICAgIG1ldGhvZCBhbGxvY2F0aW9uRmFtaWxpYWxlc0F2cmlsMjAwOCA6IChhbGxvY2F0aW9uX2ZhbWlsaWFsZXNfYXZyaWwyMDA4X2luIEpzLnQgLT4gYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgYWxsb2NhdGlvbl9mYW1pbGlhbGVzX2F2cmlsMjAwOFxuICAgICAgXG4gICAgICBtZXRob2QgZW5mYW50TGVQbHVzQWdlIDogKGVuZmFudF9sZV9wbHVzX2FnZV9pbiBKcy50IC0+IGVuZmFudF9sZV9wbHVzX2FnZSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgZW5mYW50X2xlX3BsdXNfYWdlXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBIDogKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50IC0+IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICAgICBcbiAgICAgIG1ldGhvZCB2ZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBIDogKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCAtPiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gICAgICBcbiAgICAgIG1ldGhvZCBzbWljIDogKHNtaWNfaW4gSnMudCAtPiBzbWljIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBzbWljXG4gICAgICBcbiAgICAgIG1ldGhvZCBiYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzIDogKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gSnMudCAtPiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICAgIG1ldGhvZCBwcmVzdGF0aW9uc0ZhbWlsaWFsZXMgOiAocHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50IC0+IHByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIFxuICAgICAgbWV0aG9kIGFsbG9jYXRpb25zRmFtaWxpYWxlcyA6IChhbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgaW50ZXJmYWNlQWxsb2NhdGlvbnNGYW1pbGlhbGVzIDogKGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGludGVyZmFjZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzXG4gICAgICBcbiAgICBlbmQpIiwiKCoqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIENhdGFsYSBjb21waWxlciwgZG8gbm90IGVkaXQhICopXG5cbm9wZW4gUnVudGltZV9vY2FtbC5SdW50aW1lXG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTQtMjYtMjctMzItNDEtNDJcIl1cblxubW9kdWxlIFR5cGVQcmV0ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEQzMzFfMzIgb2YgdW5pdFxuICAgIHwgRDMzMV82M182NCBvZiB1bml0XG4gICAgfCBEMzMxXzU5Xzggb2YgdW5pdFxuICAgIHwgRDMzMV83Nl8xIG9mIHVuaXRcbiAgICB8IEF1dHJlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfdHlwZV9wcmV0ICh4OiBUeXBlUHJldC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVQcsOqdFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBEMzMxXzMyIHggLT4gKFwiRDMzMV8zMlwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBEMzMxXzYzXzY0IHggLT4gKFwiRDMzMV82M182NFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBEMzMxXzU5XzggeCAtPiAoXCJEMzMxXzU5XzhcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRDMzMV83Nl8xIHggLT4gKFwiRDMzMV83Nl8xXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEF1dHJlIHggLT4gKFwiQXV0cmVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVGl0dWxhaXJlUHJldCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBEZW1hbmRldXIgb2YgdW5pdFxuICAgIHwgVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3RpdHVsYWlyZV9wcmV0ICh4OiBUaXR1bGFpcmVQcmV0LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVGl0dWxhaXJlUHLDqnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRGVtYW5kZXVyIHggLT4gKFwiRGVtYW5kZXVyXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24geCAtPlxuICAgICAgKFwiVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvblwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IFRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgb2YgdW5pdFxuICAgIHwgVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBvZiB1bml0XG4gICAgfCBQYXNEZVRyYXZhdXggb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSAoeDogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVUcmF2YXV4TG9nZW1lbnREODMyXzE1XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgeCAtPlxuICAgICAgKFwiVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBUcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yIHggLT5cbiAgICAgIChcIlRyYXZhdXhTdXJMb2dlbWVudETDqWrDoEFjcXVpc0Q4MzJfMTVfMlwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBQYXNEZVRyYXZhdXggeCAtPiAoXCJQYXNEZVRyYXZhdXhcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IE9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IG9mIHVuaXRcbiAgICB8IFByZXZ1RGFuc0xpc3RlUjMyMV8xNSBvZiB1bml0XG4gICAgfCBBZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBvZiB1bml0XG4gICAgfCBQYXNEZVRyYXZhdXggb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81ICh4OiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlVHJhdmF1eExvZ2VtZW50Ujg0Ml81XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IHggLT4gKFwiT2JqZWN0aWZEw6ljZW5jZUxvZ2VtZW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFByZXZ1RGFuc0xpc3RlUjMyMV8xNSB4IC0+IChcIlByw6l2dURhbnNMaXN0ZVIzMjFfMTVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgeCAtPlxuICAgICAgKFwiQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGFzRGVUcmF2YXV4IHggLT4gKFwiUGFzRGVUcmF2YXV4XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIEFtZWxpb3JlUGFyT2NjdXBhbnQgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgT3VpIG9mIHVuaXRcbiAgICB8IE5vbiBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2FtZWxpb3JlX3Bhcl9vY2N1cGFudCAoeDogQW1lbGlvcmVQYXJPY2N1cGFudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkFtw6lsaW9yw6lQYXJPY2N1cGFudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBPdWkgeCAtPiAoXCJPdWlcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgTm9uIHggLT4gKFwiTm9uXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIExpbWl0ZVRyYW5jaGUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgUmV2ZW51IG9mIG1vbmV5XG4gICAgfCBJbmZpbmkgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9saW1pdGVfdHJhbmNoZSAoeDogTGltaXRlVHJhbmNoZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkxpbWl0ZVRyYW5jaGVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUmV2ZW51IHggLT4gKFwiUmV2ZW51XCIsIGVtYmVkX21vbmV5IHgpXG4gICAgfCBJbmZpbmkgeCAtPiAoXCJJbmZpbmlcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgTGltaXRlVHJhbmNoZURlY2ltYWwgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgUmV2ZW51IG9mIGRlY2ltYWxcbiAgICB8IEluZmluaSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2xpbWl0ZV90cmFuY2hlX2RlY2ltYWwgKHg6IExpbWl0ZVRyYW5jaGVEZWNpbWFsLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTGltaXRlVHJhbmNoZUTDqWNpbWFsXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFJldmVudSB4IC0+IChcIlJldmVudVwiLCBlbWJlZF9kZWNpbWFsIHgpXG4gICAgfCBJbmZpbmkgeCAtPiAoXCJJbmZpbmlcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUHJlc3RhdGlvblJlY3VlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyBvZiB1bml0XG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkpldW5lRW5mYW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ByZXN0YXRpb25fcmVjdWUgKHg6IFByZXN0YXRpb25SZWN1ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlByZXN0YXRpb25SZcOndWVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIHggLT4gKFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbXBsZW1lbnRGYW1pbGlhbCB4IC0+IChcIkNvbXBsw6ltZW50RmFtaWxpYWxcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkpldW5lRW5mYW50IHggLT4gKFwiQWxsb2NhdGlvbkpldW5lRW5mYW50XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2Fww6lcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uQWR1bHRlSGFuZGljYXDDqVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQYXJlbnRPdUF1dHJlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IERlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBvZiBkZWNpbWFsXG4gICAgfCBBdXRyZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3BhcmVudF9vdV9hdXRyZSAoeDogUGFyZW50T3VBdXRyZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlBhcmVudE91QXV0cmVcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzIHggLT5cbiAgICAgIChcIkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2Npw6l0w6lzXCIsIGVtYmVkX2RlY2ltYWwgeClcbiAgICB8IEF1dHJlIHggLT4gKFwiQXV0cmVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZSA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBQYXNEZUdhcmRlQWx0ZXJuZWUgb2YgdW5pdFxuICAgIHwgR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBvZiBkZWNpbWFsXG4gIGVuZFxubGV0IGVtYmVkX3NpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSAoeDogU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlNpdHVhdGlvbkdhcmRlQWx0ZXJuw6llXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFBhc0RlR2FyZGVBbHRlcm5lZSB4IC0+IChcIlBhc0RlR2FyZGVBbHRlcm7DqWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSB4IC0+XG4gICAgICAoXCJHYXJkZUFsdGVybsOpZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZVwiLCBlbWJlZF9kZWNpbWFsIHgpKVxuXG5cbm1vZHVsZSBQYXJlbnRlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEFzY2VuZGFudCBvZiB1bml0XG4gICAgfCBEZXNjZW5kYW50IG9mIHVuaXRcbiAgICB8IENvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfcGFyZW50ZSAoeDogUGFyZW50ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlBhcmVudMOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEFzY2VuZGFudCB4IC0+IChcIkFzY2VuZGFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBEZXNjZW5kYW50IHggLT4gKFwiRGVzY2VuZGFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSB4IC0+XG4gICAgICAoXCJDb2xsYXTDqXJhbERldXhpw6htZVRyb2lzacOobWVEZWdyw6lcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgRGF0ZURlTmFpc3NhbmNlIG9mIGRhdGVcbiAgICB8IEF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2Ugb2YgdW5pdFxuICAgIHwgQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2RhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlXG4gICh4OiBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkRhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IERhdGVEZU5haXNzYW5jZSB4IC0+IChcIkRhdGVEZU5haXNzYW5jZVwiLCBlbWJlZF9kYXRlIHgpXG4gICAgfCBBdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIHggLT5cbiAgICAgIChcIkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2nDqG1lTW9pc0RlR3Jvc3Nlc3NlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgeCAtPlxuICAgICAgKFwiQXByw6hzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2nDqG1lTW9pc0RlR3Jvc3Nlc3NlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFpvbmVESGFiaXRhdGlvbiA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBab25lMSBvZiB1bml0XG4gICAgfCBab25lMiBvZiB1bml0XG4gICAgfCBab25lMyBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uICh4OiBab25lREhhYml0YXRpb24udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJab25lREhhYml0YXRpb25cIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgWm9uZTEgeCAtPiAoXCJab25lMVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBab25lMiB4IC0+IChcIlpvbmUyXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFpvbmUzIHggLT4gKFwiWm9uZTNcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbCA9IHN0cnVjdFxuIHR5cGUgdCA9XG4gICAgfCBPdWlBdmVjTG95ZXJPdUNoYXJnZXMgb2YgbW9uZXlcbiAgICB8IE5vbiBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3BhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxcbiAgKHg6IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE91aUF2ZWNMb3llck91Q2hhcmdlcyB4IC0+IChcIk91aUF2ZWNMb3llck91Q2hhcmdlc1wiLCBlbWJlZF9tb25leSB4KVxuICAgIHwgTm9uIHggLT4gKFwiTm9uXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFZlcnNlbWVudEEgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQmFpbGxldXIgb2YgdW5pdFxuICAgIHwgQmVuZWZpY2lhaXJlIG9mIHVuaXRcbiAgICB8IEV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ZlcnNlbWVudF9hICh4OiBWZXJzZW1lbnRBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVmVyc2VtZW50w4BcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQmFpbGxldXIgeCAtPiAoXCJCYWlsbGV1clwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBCZW5lZmljaWFpcmUgeCAtPiAoXCJCw6luw6lmaWNpYWlyZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBFdGFibGlzc2VtZW50SGFiaWxpdGUgeCAtPiAoXCLDiXRhYmxpc3NlbWVudEhhYmlsaXTDqVwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBEZXBlbnNlTG9nZW1lbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgVG90YWxBbm51ZWxFY2hlYW5jZXMgb2YgbW9uZXlcbiAgICB8IE1lbnN1YWxpdGUgb2YgbW9uZXlcbiAgICB8IExveWVyIG9mIG1vbmV5XG4gIGVuZFxubGV0IGVtYmVkX2RlcGVuc2VfbG9nZW1lbnQgKHg6IERlcGVuc2VMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkTDqXBlbnNlTG9nZW1lbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgVG90YWxBbm51ZWxFY2hlYW5jZXMgeCAtPiAoXCJUb3RhbEFubnVlbMOJY2jDqWFuY2VzXCIsIGVtYmVkX21vbmV5IHgpXG4gICAgfCBNZW5zdWFsaXRlIHggLT4gKFwiTWVuc3VhbGl0w6lcIiwgZW1iZWRfbW9uZXkgeClcbiAgICB8IExveWVyIHggLT4gKFwiTG95ZXJcIiwgZW1iZWRfbW9uZXkgeCkpXG5cblxubW9kdWxlIE1vZGVPY2N1cGF0aW9uSW1wYXllID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IEltcGF5ZUxveWVyIG9mIHVuaXRcbiAgICB8IEltcGF5ZVByZXQgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9tb2RlX29jY3VwYXRpb25faW1wYXllICh4OiBNb2RlT2NjdXBhdGlvbkltcGF5ZS50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIk1vZGVPY2N1cGF0aW9uSW1wYXnDqVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBJbXBheWVMb3llciB4IC0+IChcIkltcGF5w6lMb3llclwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBJbXBheWVQcmV0IHggLT4gKFwiSW1wYXnDqVByw6p0XCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudCA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBQYXNFbGlnaWJsZSBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAoeDogVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZcOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgUGFzRWxpZ2libGUgeCAtPiAoXCJQYXPDiWxpZ2libGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgQWNjb3JkIG9mIGRhdGVcbiAgICB8IFBhc2RBY2NvcmQgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyXG4gICh4OiBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkFjY29yZEZpbmFuY2VtZW50UmVwcsOpc2VudGFudMOJdGF0T3V0cmVNZXJcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQWNjb3JkIHggLT4gKFwiQWNjb3JkXCIsIGVtYmVkX2RhdGUgeClcbiAgICB8IFBhc2RBY2NvcmQgeCAtPiAoXCJQYXNkQWNjb3JkXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgKHg6IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgeCAtPlxuICAgICAgKFwiQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIHggLT5cbiAgICAgIChcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgU2l0dWF0aW9uRmFtaWxpYWxlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IENlbGliYXRhaXJlIG9mIHVuaXRcbiAgICB8IE1hcmllcyBvZiBkYXRlXG4gICAgfCBQYWNzZXMgb2YgdW5pdFxuICAgIHwgQ29uY3ViaW5zIG9mIHVuaXRcbiAgICB8IENlbGliYXRhaXJlU2VwYXJlRGVGYWl0IG9mIHVuaXRcbiAgICB8IENvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGUgKHg6IFNpdHVhdGlvbkZhbWlsaWFsZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlNpdHVhdGlvbkZhbWlsaWFsZVwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBDZWxpYmF0YWlyZSB4IC0+IChcIkPDqWxpYmF0YWlyZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBNYXJpZXMgeCAtPiAoXCJNYXJpw6lzXCIsIGVtYmVkX2RhdGUgeClcbiAgICB8IFBhY3NlcyB4IC0+IChcIlBhY3PDqXNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29uY3ViaW5zIHggLT4gKFwiQ29uY3ViaW5zXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENlbGliYXRhaXJlU2VwYXJlRGVGYWl0IHggLT5cbiAgICAgIChcIkPDqWxpYmF0YWlyZVPDqXBhcsOpRGVGYWl0XCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IENvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCB4IC0+XG4gICAgICAoXCJDb25jdWJpbmFnZURvbnRTw6lwYXLDqURlRmFpdFwiLCBlbWJlZF91bml0IHgpKVxuXG5cbm1vZHVsZSBQcmlzZUVuQ2hhcmdlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBvZiB1bml0XG4gICAgfCBSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIG9mIHVuaXRcbiAgICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGlvbnNQYXJ0YWdlZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3ByaXNlX2VuX2NoYXJnZSAoeDogUHJpc2VFbkNoYXJnZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlByaXNlRW5DaGFyZ2VcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIHggLT4gKFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgeCAtPlxuICAgICAgKFwiUsOpc2lkZW5jZUFsdGVybsOpZUFsbG9jYXRhaXJlVW5pcXVlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGlvbnNQYXJ0YWdlZSB4IC0+XG4gICAgICAoXCJSw6lzaWRlbmNlQWx0ZXJuw6llQWxsb2NhdGlvbnNQYXJ0YWfDqWVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgVHlwZUxvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXMgb2YgdW5pdFxuICAgIHwgUmVzaWRlbmNlU29jaWFsZSBvZiB1bml0XG4gICAgfCBGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NSBvZiB1bml0XG4gICAgfCBBdXRyZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXIgKHg6IFR5cGVMb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiVHlwZUxvZ2VtZW50Rm95ZXJcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXMgeCAtPlxuICAgICAgKFwiTG9nZW1lbnRQZXJzb25uZXPDgmfDqWVzT3VIYW5kaWNhcMOpZXNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUmVzaWRlbmNlU29jaWFsZSB4IC0+IChcIlLDqXNpZGVuY2VTb2NpYWxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1IHggLT5cbiAgICAgIChcIkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm7DqUwzNTNfMkF2YW50MTk5NVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBdXRyZSB4IC0+IChcIkF1dHJlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBvZiB1bml0XG4gICAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIG9mIHVuaXRcbiAgICB8IFBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IG9mIHVuaXRcbiAgICB8IEF1dHJlc1BlcnNvbm5lcyBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICh4OiBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDYXTDqWdvcmllw4lxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyB4IC0+XG4gICAgICAoXCLDiXR1ZGlhbnRMb2fDqUVuQ2hhbWJyZUNST1VTXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgeCAtPlxuICAgICAgKFwiw4l0dWRpYW50TG9nw6lFbkNoYW1icmVDUk9VU1LDqWhhYmlsaXTDqWVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgeCAtPlxuICAgICAgKFwiUGVyc29ubmVzw4Jnw6llc1NlbG9uM0RlRDg0Ml8xNlwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBdXRyZXNQZXJzb25uZXMgeCAtPiAoXCJBdXRyZXNQZXJzb25uZXNcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IFBlcnNvbm5lU2V1bGUgb2YgdW5pdFxuICAgIHwgQ291cGxlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgKHg6IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBQZXJzb25uZVNldWxlIHggLT4gKFwiUGVyc29ubmVTZXVsZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBDb3VwbGUgeCAtPiAoXCJDb3VwbGVcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgQ29sbGVjdGl2aXRlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEd1YWRlbG91cGUgb2YgdW5pdFxuICAgIHwgR3V5YW5lIG9mIHVuaXRcbiAgICB8IE1hcnRpbmlxdWUgb2YgdW5pdFxuICAgIHwgTGFSZXVuaW9uIG9mIHVuaXRcbiAgICB8IFNhaW50QmFydGhlbGVteSBvZiB1bml0XG4gICAgfCBTYWludE1hcnRpbiBvZiB1bml0XG4gICAgfCBNZXRyb3BvbGUgb2YgdW5pdFxuICAgIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIG9mIHVuaXRcbiAgICB8IE1heW90dGUgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9jb2xsZWN0aXZpdGUgKHg6IENvbGxlY3Rpdml0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkNvbGxlY3Rpdml0w6lcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgR3VhZGVsb3VwZSB4IC0+IChcIkd1YWRlbG91cGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgR3V5YW5lIHggLT4gKFwiR3V5YW5lXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1hcnRpbmlxdWUgeCAtPiAoXCJNYXJ0aW5pcXVlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IExhUmV1bmlvbiB4IC0+IChcIkxhUsOpdW5pb25cIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRCYXJ0aGVsZW15IHggLT4gKFwiU2FpbnRCYXJ0aMOpbGVteVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTYWludE1hcnRpbiB4IC0+IChcIlNhaW50TWFydGluXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1ldHJvcG9sZSB4IC0+IChcIk3DqXRyb3BvbGVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgU2FpbnRQaWVycmVFdE1pcXVlbG9uIHggLT4gKFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IE1heW90dGUgeCAtPiAoXCJNYXlvdHRlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIFByaXNlRW5DaGFyZ2VFbmZhbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyBvZiB1bml0XG4gICAgfCBHYXJkZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgb2YgdW5pdFxuICAgIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIG9mIHVuaXRcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlIG9mIHVuaXRcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2VfZW5mYW50ICh4OiBQcmlzZUVuQ2hhcmdlRW5mYW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiUHJpc2VFbkNoYXJnZUVuZmFudFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zIHggLT5cbiAgICAgIChcIkdhcmRlQWx0ZXJuw6llUGFydGFnZUFsbG9jYXRpb25zXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSB4IC0+XG4gICAgICAoXCJHYXJkZUFsdGVybsOpZUFsbG9jYXRhaXJlVW5pcXVlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSB4IC0+IChcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZSB4IC0+XG4gICAgICAoXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc8OpZcOATGFGYW1pbGxlXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggeCAtPlxuICAgICAgKFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnPDqWVBdXhTZXJ2aWNlc1NvY2lhdXhcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IEF2YW50IG9mIHVuaXRcbiAgICB8IFBlbmRhbnQgb2YgdW5pdFxuICAgIHwgQXByZXMgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9zaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZSAoeDogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEF2YW50IHggLT4gKFwiQXZhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGVuZGFudCB4IC0+IChcIlBlbmRhbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQXByZXMgeCAtPiAoXCJBcHLDqHNcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25zRmFtaWxpYWxlcyBvZiB1bml0XG4gICAgfCBDb21wbGVtZW50RmFtaWxpYWwgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvbkxvZ2VtZW50IG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGUgb2YgdW5pdFxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBvZiB1bml0XG4gICAgfCBBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlIG9mIHVuaXRcbiAgICB8IEFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlIG9mIHVuaXRcbiAgZW5kXG5sZXQgZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzICh4OiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpXG4gIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiw4lsw6ltZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgeCAtPlxuICAgICAgKFwiUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgeCAtPiAoXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQ29tcGxlbWVudEZhbWlsaWFsIHggLT4gKFwiQ29tcGzDqW1lbnRGYW1pbGlhbFwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBBbGxvY2F0aW9uTG9nZW1lbnQgeCAtPiAoXCJBbGxvY2F0aW9uTG9nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uw4lkdWNhdGlvbkVuZmFudEhhbmRpY2Fww6lcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCB4IC0+XG4gICAgICAoXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvblJlbnRyw6llU2NvbGFpcmVcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgeCAtPlxuICAgICAgKFwiQWxsb2NhdGlvbkpvdXJuYWxpw6hyZVByZXNlbmNlUGFyZW50YWxlXCIsIGVtYmVkX3VuaXQgeCkpXG5cblxubW9kdWxlIENvbnZlbnRpb25CYWlsbGV1clNvY2lhbCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJOiBib29sO1xuICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZTogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgKHg6IENvbnZlbnRpb25CYWlsbGV1clNvY2lhbC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ29udmVudGlvbkJhaWxsZXVyU29jaWFsXCJdLFxuICBbKFwiY29udmVudGlvbm7DqV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSVwiLCBlbWJlZF9ib29sXG4gICAgeC5Db252ZW50aW9uQmFpbGxldXJTb2NpYWwuY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJKTtcbiAgICAoXCJyw6lkdWN0aW9uX2xveWVyX3NvbGlkYXJpdMOpX3BlcsOndWVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNvbnZlbnRpb25CYWlsbGV1clNvY2lhbC5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9wZXJjdWUpXSlcblxuXG5tb2R1bGUgQ29udmVudGlvbkFOSEEgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2NvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfY29udmVudGlvbl9hX25faF9hICh4OiBDb252ZW50aW9uQU5IQS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ29udmVudGlvbkFOSEFcIl0sXG4gIFsoXCJjb252ZW50aW9ubsOpX2xpdnJlX0lJSV90aXRyZV9JSV9jaGFwX0lfc2VjXzNcIiwgZW1iZWRfYm9vbFxuICAgIHguQ29udmVudGlvbkFOSEEuY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9JSV9jaGFwX0lfc2VjXzMpXSlcblxuXG5tb2R1bGUgUGVyc29ubmVTb3VzTG9jYXRpb24gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb246IGRhdGU7XG4gICAgY29uZm9ybWVfYXJ0aWNsZV9sNDQyXzE6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfcGVyc29ubmVfc291c19sb2NhdGlvbiAoeDogUGVyc29ubmVTb3VzTG9jYXRpb24udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlBlcnNvbm5lU291c0xvY2F0aW9uXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfcGVyc29ubmVfc291c19sb2NhdGlvblwiLCBlbWJlZF9kYXRlXG4gICAgeC5QZXJzb25uZVNvdXNMb2NhdGlvbi5kYXRlX25haXNzYW5jZV9wZXJzb25uZV9zb3VzX2xvY2F0aW9uKTtcbiAgICAoXCJjb25mb3JtZV9hcnRpY2xlX2w0NDJfMVwiLCBlbWJlZF9ib29sXG4gICAgeC5QZXJzb25uZVNvdXNMb2NhdGlvbi5jb25mb3JtZV9hcnRpY2xlX2w0NDJfMSldKVxuXG5cbm1vZHVsZSBQYXRyaW1vaW5lID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBwcm9kdWlzYW50X3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNDogbW9uZXk7XG4gICAgbmVfcHJvZHVpc2FudF9wYXNfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80OiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9wYXRyaW1vaW5lICh4OiBQYXRyaW1vaW5lLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQYXRyaW1vaW5lXCJdLFxuICBbKFwicHJvZHVpc2FudF9yZXZlbnVfcMOpcmlvZGVfcjgyMl8zXzNfcjgyMl80XCIsIGVtYmVkX21vbmV5XG4gICAgeC5QYXRyaW1vaW5lLnByb2R1aXNhbnRfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KTtcbiAgICAoXCJuZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcMOpcmlvZGVfcjgyMl8zXzNfcjgyMl80XCIsIGVtYmVkX21vbmV5XG4gICAgeC5QYXRyaW1vaW5lLm5lX3Byb2R1aXNhbnRfcGFzX3JldmVudV9wZXJpb2RlX3I4MjJfM18zX3I4MjJfNCldKVxuXG5cbm1vZHVsZSBDb25kaXRpb25zRXRyYW5nZXJzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBzYXRpc2ZhaXRfY29uZGl0aW9uc19sNTEyXzJfY29kZV9zZWN1cml0ZV9zb2NpYWxlOiBib29sO1xuICAgIHNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZTogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jb25kaXRpb25zX2V0cmFuZ2VycyAoeDogQ29uZGl0aW9uc0V0cmFuZ2Vycy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ29uZGl0aW9uc8OJdHJhbmdlcnNcIl0sXG4gIFsoXCJzYXRpc2ZhaXRfY29uZGl0aW9uc19sNTEyXzJfY29kZV9zw6ljdXJpdMOpX3NvY2lhbGVcIiwgZW1iZWRfYm9vbFxuICAgIHguQ29uZGl0aW9uc0V0cmFuZ2Vycy5zYXRpc2ZhaXRfY29uZGl0aW9uc19sNTEyXzJfY29kZV9zZWN1cml0ZV9zb2NpYWxlKTtcbiAgICAoXCJzYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGVcIiwgZW1iZWRfYm9vbFxuICAgIHguQ29uZGl0aW9uc0V0cmFuZ2Vycy5zYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGUpXSlcblxuXG5tb2R1bGUgUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pczogYm9vbDtcbiAgICByZXNzb3VyY2VzOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgKHg6IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llclwiXSxcbiAgWyhcImR1csOpZV9yw6lzaWRlbmNlX2R1cmFudF9ww6lyaW9kZV9yXzgyMl8zXzFfc3Vww6lyaWV1cmVfw6BfNl9tb2lzXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIuZHVyZWVfcmVzaWRlbmNlX2R1cmFudF9wZXJpb2RlX3JfODIyXzNfMV9zdXBlcmlldXJlX2FfNl9tb2lzKTtcbiAgICAoXCJyZXNzb3VyY2VzXCIsIGVtYmVkX21vbmV5XG4gICAgeC5QZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci5yZXNzb3VyY2VzKV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9jb3VyYW50ZTogZGF0ZTtcbiAgICBlbGlnaWJpbGl0ZTogYm9vbDtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGU6IGludGVnZXI7XG4gICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZTogZGVjaW1hbCBhcnJheVxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgKHg6IEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdLFxuICBbKFwiZGF0ZV9jb3VyYW50ZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuZGF0ZV9jb3VyYW50ZSk7XG4gICAgKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuZWxpZ2liaWxpdGUpO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSk7XG4gICAgKFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIixcbiAgICBlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbClcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlKV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnQ6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50ICh4OiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIl0sXG4gIFsoXCJtb250YW50X3ByaW1lX2TDqW3DqW5hZ2VtZW50XCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQubW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnQpXSlcblxuXG5tb2R1bGUgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7cmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlOiBtb25leX1cbmVuZFxubGV0IGVtYmVkX3Jlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgKHg6IFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0sXG4gIFsoXCJyZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQucmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlKV0pXG5cblxubW9kdWxlIENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudDogbW9uZXkgLT4gbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9jb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ICh4OiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSxcbiAgWyhcIm1vbnRhbnRcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5Db250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubW9udGFudCldKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTY6IG1vbmV5O1xuICAgIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yOiBtb25leTtcbiAgICBwYXJ0aWNpcGF0aW9uX21pbmltYWxlOiBtb25leTtcbiAgICB0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZTogZGVjaW1hbDtcbiAgICBwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlOiBtb25leTtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIl0sXG4gIFsoXCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNlwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTYpO1xuICAgIChcInBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMik7XG4gICAgKFwicGFydGljaXBhdGlvbl9taW5pbWFsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSk7XG4gICAgKFwidGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUpO1xuICAgIChcInBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUpO1xuICAgIChcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudDogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgKHg6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSxcbiAgWyhcIm1vbnRhbnRcIiwgZW1iZWRfbW9uZXkgeC5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCldKVxuXG5cbm1vZHVsZSBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bl9ub21icmVfcGFydHNfZDgzMl8yNTogZGVjaW1hbH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciAoeDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdLFxuICBbKFwibl9ub21icmVfcGFydHNfZDgzMl8yNVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1KV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNTogbW9uZXk7XG4gICAgY29lZmZpY2llbnRfcl9kODMyXzI1OiBtb25leTtcbiAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1OiBkZWNpbWFsO1xuICAgIGVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlOiBtb25leTtcbiAgICBwbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlOiBtb25leTtcbiAgICBlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZTogbW9uZXk7XG4gICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjU6IGRlY2ltYWw7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCJdLFxuICBbKFwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUpO1xuICAgIChcImNvZWZmaWNpZW50X3JfZDgzMl8yNVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSk7XG4gICAgKFwibl9ub21icmVfcGFydHNfZDgzMl8yNVwiLCBlbWJlZF9kZWNpbWFsXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSk7XG4gICAgKFwiw6lxdWl2YWxlbmNlX2xveWVyX8OpbGlnaWJsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAoXCJwbGFmb25kX8OpcXVpdmFsZW5jZV9sb3llcl/DqWxpZ2libGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAoXCLDqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSk7XG4gICAgKFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1KTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtuX25vbWJyZV9wYXJ0c19kODMyXzExOiBkZWNpbWFsfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlICh4OiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiXSxcbiAgWyhcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5zdWFsaXRlX2VsaWdpYmxlOiBtb25leTtcbiAgICBtZW5zdWFsaXRlX21pbmltYWxlOiBtb25leTtcbiAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMDogZGVjaW1hbDtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIl0sXG4gIFsoXCJtZW5zdWFsaXTDqV/DqWxpZ2libGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZSk7XG4gICAgKFwibWVuc3VhbGl0w6lfbWluaW1hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9taW5pbWFsZSk7XG4gICAgKFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMCk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlICh4OiBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZVwiXSxcbiAgWyhcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAoXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCAoeDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl0sXG4gIFsoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYW5jaWVuX2xveWVyX3ByaW5jaXBhbDogbW9uZXk7XG4gICAgYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudDogbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgKHg6IEluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0Ml80XCJdLFxuICBbKFwiYW5jaWVuX2xveWVyX3ByaW5jaXBhbFwiLCBlbWJlZF9tb25leVxuICAgIHguSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5hbmNpZW5fbG95ZXJfcHJpbmNpcGFsKTtcbiAgICAoXCJhbmNpZW5uZV9hbGxvY2F0aW9uX2xvZ2VtZW50XCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbm5lX2FsbG9jYXRpb25fbG9nZW1lbnQpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXlcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiXSxcbiAgWyhcImFpZGVfZmluYWxlX2Zvcm11bGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbnN1YWxpdGVfZWxpZ2libGU6IG1vbmV5O1xuICAgIG1lbnN1YWxpdGVfbWluaW1hbGU6IG1vbmV5O1xuICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZTogZGVjaW1hbDtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCJdLFxuICBbKFwibWVuc3VhbGl0w6lfw6lsaWdpYmxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZSk7XG4gICAgKFwibWVuc3VhbGl0w6lfbWluaW1hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlKTtcbiAgICAoXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSldKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlOiBkZWNpbWFsO1xuICAgIGVxdWl2YWxlbmNlX2xveWVyOiBtb25leTtcbiAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXM6IG1vbmV5O1xuICAgIGxveWVyX21pbmltYWw6IG1vbmV5O1xuICAgIGFpZGVfZmluYWxlX2Zvcm11bGU6IG1vbmV5O1xuICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGU6IG1vbmV5IC0+IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIl0sXG4gIFsoXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcIiwgZW1iZWRfZGVjaW1hbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCLDqXF1aXZhbGVuY2VfbG95ZXJcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyKTtcbiAgICAoXCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyk7XG4gICAgKFwibG95ZXJfbWluaW1hbFwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCk7XG4gICAgKFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlOiBtb25leTtcbiAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlOiBtb25leSAtPiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIl0sXG4gIFsoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgKFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIE91dmVydHVyZURyb2l0c1JldHJhaXRlID0gc3RydWN0XG4gIHR5cGUgdCA9IHthZ2Vfb3V2ZXJ0dXJlX2Ryb2l0OiBkdXJhdGlvbn1cbmVuZFxubGV0IGVtYmVkX291dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgKHg6IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZVwiXSxcbiAgWyhcIsOiZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XCIsIGVtYmVkX2R1cmF0aW9uXG4gICAgeC5PdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZS5hZ2Vfb3V2ZXJ0dXJlX2Ryb2l0KV0pXG5cblxubW9kdWxlIEltcGF5ZURlcGVuc2VMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7bW9udGFudF9pbXBheWU6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQgKHg6IEltcGF5ZURlcGVuc2VMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIl0sXG4gIFsoXCJtb250YW50X2ltcGF5w6lcIiwgZW1iZWRfbW9uZXkgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnQubW9udGFudF9pbXBheWUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZWxpZ2liaWxpdGU6IGJvb2w7XG4gICAgYWlkZV9maW5hbGVfZm9ybXVsZTogbW9uZXk7XG4gICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZTogbW9uZXkgLT4gbW9uZXk7XG4gICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZTogZGVjaW1hbCBhcnJheVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50ICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdLFxuICBbKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmVsaWdpYmlsaXRlKTtcbiAgICAoXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgIChcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUpXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2VsaWdpYmlsaXRlOiBib29sOyBhaWRlX2ZpbmFsZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCJdLFxuICBbKFwiw6lsaWdpYmlsaXTDqVwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZS5lbGlnaWJpbGl0ZSk7XG4gICAgKFwiYWlkZV9maW5hbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLmFpZGVfZmluYWxlKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge21vbnRhbnQ6IG1vbmV5fVxuZW5kXG5sZXQgZW1iZWRfYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoeDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXSxcbiAgWyhcIm1vbnRhbnRcIiwgZW1iZWRfbW9uZXkgeC5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQpXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZXN0X2luZmVyaWV1cl9vdV9lZ2FsOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIl0sXG4gIFsoXCJlc3RfaW5mw6lyaWV1cl9vdV/DqWdhbFwiLCBlbWJlZF9ib29sXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCldKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBID0gc3RydWN0XG4gIHR5cGUgdCA9IHtlc3Rfc3VwZXJpZXVyOiBib29sfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSAoeDogVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIl0sXG4gIFsoXCJlc3Rfc3Vww6lyaWV1clwiLCBlbWJlZF9ib29sIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKV0pXG5cblxubW9kdWxlIFNtaWMgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2JydXRfaG9yYWlyZTogbW9uZXl9XG5lbmRcbmxldCBlbWJlZF9zbWljICh4OiBTbWljLnQpIDogcnVudGltZV92YWx1ZSA9IFN0cnVjdChbXCJTbWljXCJdLFxuICBbKFwiYnJ1dF9ob3JhaXJlXCIsIGVtYmVkX21vbmV5IHguU21pYy5icnV0X2hvcmFpcmUpXSlcblxuXG5tb2R1bGUgTmV1Zk91QW5jaWVuID0gc3RydWN0XG4gdHlwZSB0ID1cbiAgICB8IE5ldWYgb2YgdW5pdFxuICAgIHwgQW5jaWVuIG9mIEFtZWxpb3JlUGFyT2NjdXBhbnQudFxuICBlbmRcbmxldCBlbWJlZF9uZXVmX291X2FuY2llbiAoeDogTmV1Zk91QW5jaWVuLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTmV1Zk91QW5jaWVuXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE5ldWYgeCAtPiAoXCJOZXVmXCIsIGVtYmVkX3VuaXQgeClcbiAgICB8IEFuY2llbiB4IC0+IChcIkFuY2llblwiLCBlbWJlZF9hbWVsaW9yZV9wYXJfb2NjdXBhbnQgeCkpXG5cblxubW9kdWxlIFRyYW5jaGVSZXZlbnUgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2hhdXQ6IExpbWl0ZVRyYW5jaGUudDsgYmFzOiBtb25leTsgdGF1eDogZGVjaW1hbH1cbmVuZFxubGV0IGVtYmVkX3RyYW5jaGVfcmV2ZW51ICh4OiBUcmFuY2hlUmV2ZW51LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJUcmFuY2hlUmV2ZW51XCJdLFxuICBbKFwiaGF1dFwiLCBlbWJlZF9saW1pdGVfdHJhbmNoZSB4LlRyYW5jaGVSZXZlbnUuaGF1dCk7XG4gICAgKFwiYmFzXCIsIGVtYmVkX21vbmV5IHguVHJhbmNoZVJldmVudS5iYXMpO1xuICAgIChcInRhdXhcIiwgZW1iZWRfZGVjaW1hbCB4LlRyYW5jaGVSZXZlbnUudGF1eCldKVxuXG5cbm1vZHVsZSBUcmFuY2hlUmV2ZW51RGVjaW1hbCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7aGF1dDogTGltaXRlVHJhbmNoZURlY2ltYWwudDsgYmFzOiBkZWNpbWFsOyB0YXV4OiBkZWNpbWFsfVxuZW5kXG5sZXQgZW1iZWRfdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCAoeDogVHJhbmNoZVJldmVudURlY2ltYWwudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlRyYW5jaGVSZXZlbnVEw6ljaW1hbFwiXSxcbiAgWyhcImhhdXRcIiwgZW1iZWRfbGltaXRlX3RyYW5jaGVfZGVjaW1hbCB4LlRyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQpO1xuICAgIChcImJhc1wiLCBlbWJlZF9kZWNpbWFsIHguVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKTtcbiAgICAoXCJ0YXV4XCIsIGVtYmVkX2RlY2ltYWwgeC5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KV0pXG5cblxubW9kdWxlIEF1dHJlUGVyc29ubmVBQ2hhcmdlID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZTogZGF0ZTtcbiAgICByZXNzb3VyY2VzOiBtb25leTtcbiAgICBhc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZTogYm9vbDtcbiAgICBwYXJlbnRlOiBQYXJlbnRlLnQ7XG4gICAgaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2k6IGJvb2w7XG4gICAgYmVuZWZpY2lhaXJlX2wxNjFfMTlfbDM1MV84X2w2NDNfM19zZWN1OiBib29sO1xuICAgIHRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWU6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgKHg6IEF1dHJlUGVyc29ubmVBQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJBdXRyZVBlcnNvbm5lw4BDaGFyZ2VcIl0sXG4gIFsoXCJkYXRlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSk7XG4gICAgKFwicmVzc291cmNlc1wiLCBlbWJlZF9tb25leVxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UucmVzc291cmNlcyk7XG4gICAgKFwiYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0w6lyYWxfZGV1eGnDqG1lX3Ryb2lzacOobWVfZGVncsOpXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQXV0cmVQZXJzb25uZUFDaGFyZ2UuYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0ZXJhbF9kZXV4aWVtZV90cm9pc2llbWVfZGVncmUpO1xuICAgIChcInBhcmVudMOpXCIsIGVtYmVkX3BhcmVudGVcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpO1xuICAgIChcImluY2FwYWNpdMOpXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaVwiLCBlbWJlZF9ib29sXG4gICAgeC5BdXRyZVBlcnNvbm5lQUNoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaSk7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfbDE2MV8xOV9sMzUxXzhfbDY0M18zX3PDqWN1XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLmJlbmVmaWNpYWlyZV9sMTYxXzE5X2wzNTFfOF9sNjQzXzNfc2VjdSk7XG4gICAgKFwidGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfw6Jnw6llXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkF1dHJlUGVyc29ubmVBQ2hhcmdlLnRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWUpXSlcblxuXG5tb2R1bGUgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQgPSBzdHJ1Y3RcblxuICB0eXBlIHQgPVxuICAgIHwgTW9pbnNEZVRyb2lzRW5mYW50cyBvZiB1bml0XG4gICAgfCBQbHVzRGVUcm9pc0VuZmFudHMgb2YgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudFxuICBlbmRcbmxldCBlbWJlZF9kYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudFxuICAoeDogRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJEYXRlTmFpc3NhbmNlVHJvaXNpw6htZU91RGVybmllclBsdXNFbmZhbnRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTW9pbnNEZVRyb2lzRW5mYW50cyB4IC0+IChcIk1vaW5zRGVUcm9pc0VuZmFudHNcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgUGx1c0RlVHJvaXNFbmZhbnRzIHggLT5cbiAgICAgIChcIlBsdXNEZVRyb2lzRW5mYW50c1wiLCBlbWJlZF9kYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZSB4KSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGVsaWdpYmlsaXRlOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudDtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGU6IGludGVnZXI7XG4gICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZTogZGVjaW1hbCBhcnJheVxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50ICh4OiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSxcbiAgWyhcIsOpbGlnaWJpbGl0w6lcIiwgZW1iZWRfdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSk7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUpO1xuICAgIChcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCIsXG4gICAgZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpXG4gICAgeC5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlKV0pXG5cblxubW9kdWxlIFByZXQgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHR5cGVfcHJldDogVHlwZVByZXQudDtcbiAgICBkYXRlX3NpZ25hdHVyZTogZGF0ZTtcbiAgICB0aXR1bGFpcmVfcHJldDogVGl0dWxhaXJlUHJldC50O1xuICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXI6XG4gICAgICBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50XG4gIH1cbmVuZFxubGV0IGVtYmVkX3ByZXQgKHg6IFByZXQudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlByw6p0XCJdLFxuICBbKFwidHlwZV9wcsOqdFwiLCBlbWJlZF90eXBlX3ByZXQgeC5QcmV0LnR5cGVfcHJldCk7XG4gICAgKFwiZGF0ZV9zaWduYXR1cmVcIiwgZW1iZWRfZGF0ZSB4LlByZXQuZGF0ZV9zaWduYXR1cmUpO1xuICAgIChcInRpdHVsYWlyZV9wcsOqdFwiLCBlbWJlZF90aXR1bGFpcmVfcHJldFxuICAgIHguUHJldC50aXR1bGFpcmVfcHJldCk7XG4gICAgKFwiYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHLDqXNlbnRhbnRfw4l0YXRfb3V0cmVfbWVyXCIsXG4gICAgZW1iZWRfYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lclxuICAgIHguUHJldC5hY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X0V0YXRfb3V0cmVfbWVyKV0pXG5cblxubW9kdWxlIExvZ2VtZW50Rm95ZXIgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHR5cGVfdXNlcjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICByZW1wbGl0X2NvbmRpdGlvbnNfcjgzMl8yMTogYm9vbDtcbiAgICBjb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUk6IGJvb2w7XG4gICAgY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19kcm9tOiBib29sO1xuICAgIGRhdGVfY29udmVudGlvbm5lbWVudDogZGF0ZTtcbiAgICBjb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJOiBib29sO1xuICAgIHJlZGV2YW5jZTogbW9uZXk7XG4gICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTY6XG4gICAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudDtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXM6IGJvb2w7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMjogYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9sb2dlbWVudF9mb3llciAoeDogTG9nZW1lbnRGb3llci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiTG9nZW1lbnRGb3llclwiXSxcbiAgWyhcInR5cGVcIiwgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llclxuICAgIHguTG9nZW1lbnRGb3llci50eXBlX3VzZXIpO1xuICAgIChcInJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50Rm95ZXIucmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEpO1xuICAgIChcImNvbnZlbnRpb25uw6lfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkpO1xuICAgIChcImNvbnZlbnRpb25uw6lfc2Vsb25fcsOoZ2xlc19kcm9tXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50Rm95ZXIuY29udmVudGlvbm5lX3NlbG9uX3JlZ2xlc19kcm9tKTtcbiAgICAoXCJkYXRlX2NvbnZlbnRpb25uZW1lbnRcIiwgZW1iZWRfZGF0ZVxuICAgIHguTG9nZW1lbnRGb3llci5kYXRlX2NvbnZlbnRpb25uZW1lbnQpO1xuICAgIChcImNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUlcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5jb25zdHJ1aXRfYXBwbGljYXRpb25fbG9pXzE5NTdfMTJfSUlJKTtcbiAgICAoXCJyZWRldmFuY2VcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkxvZ2VtZW50Rm95ZXIucmVkZXZhbmNlKTtcbiAgICAoXCJjYXTDqWdvcmllX8OpcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2XCIsXG4gICAgZW1iZWRfY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgICB4LkxvZ2VtZW50Rm95ZXIuY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTYpO1xuICAgIChcImLDqW7DqWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcMOpc1wiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2dlbWVudEZveWVyLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyk7XG4gICAgKFwibG9nZW1lbnRfbWV1YmzDqV9kODQyXzJcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnRGb3llci5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKV0pXG5cblxubW9kdWxlIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcyA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgb2JsaWdhdGlvbl9zY29sYWlyZTogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQ7XG4gICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgcHJpc2VfZW5fY2hhcmdlOiBQcmlzZUVuQ2hhcmdlRW5mYW50LnQ7XG4gICAgYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlczogYm9vbDtcbiAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQ6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiaWRlbnRpZmlhbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50KTtcbiAgICAoXCJvYmxpZ2F0aW9uX3Njb2xhaXJlXCIsIGVtYmVkX3NpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgKFwicsOpbXVuZXJhdGlvbl9tZW5zdWVsbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAoXCJkYXRlX2RlX25haXNzYW5jZVwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcInByaXNlX2VuX2NoYXJnZVwiLCBlbWJlZF9wcmlzZV9lbl9jaGFyZ2VfZW5mYW50XG4gICAgeC5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlKTtcbiAgICAoXCJhX2TDqWrDoF9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImLDqW7DqWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpXSlcblxuXG5tb2R1bGUgVHlwZUJhaWxsZXVyID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEJhaWxsZXVyU29jaWFsIG9mIENvbnZlbnRpb25CYWlsbGV1clNvY2lhbC50XG4gICAgfCBCYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgb2YgQ29udmVudGlvbkFOSEEudFxuICAgIHwgQmFpbGxldXJQcml2ZSBvZiB1bml0XG4gIGVuZFxubGV0IGVtYmVkX3R5cGVfYmFpbGxldXIgKHg6IFR5cGVCYWlsbGV1ci50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIlR5cGVCYWlsbGV1clwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBCYWlsbGV1clNvY2lhbCB4IC0+XG4gICAgICAoXCJCYWlsbGV1clNvY2lhbFwiLCBlbWJlZF9jb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCB4KVxuICAgIHwgQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIHggLT5cbiAgICAgIChcIkJhaWxsZXVyUHJpdsOpQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWxcIiwgZW1iZWRfY29udmVudGlvbl9hX25faF9hIHgpXG4gICAgfCBCYWlsbGV1clByaXZlIHggLT4gKFwiQmFpbGxldXJQcml2w6lcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgTG91ZU91U291c0xvdWVBRGVzVGllcnMgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgTm9uIG9mIHVuaXRcbiAgICB8IE91aSBvZiBQZXJzb25uZVNvdXNMb2NhdGlvbi50XG4gIGVuZFxubGV0IGVtYmVkX2xvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzICh4OiBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy50KVxuICA6IHJ1bnRpbWVfdmFsdWUgPVxuICBFbnVtKFtcIkxvdcOpT3VTb3VzTG91w6nDgERlc1RpZXJzXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IE5vbiB4IC0+IChcIk5vblwiLCBlbWJlZF91bml0IHgpXG4gICAgfCBPdWkgeCAtPiAoXCJPdWlcIiwgZW1iZWRfcGVyc29ubmVfc291c19sb2NhdGlvbiB4KSlcblxuXG5tb2R1bGUgTmF0aW9uYWxpdGUgPSBzdHJ1Y3RcbiB0eXBlIHQgPVxuICAgIHwgRnJhbmNhaXNlIG9mIHVuaXRcbiAgICB8IEV0cmFuZ2VyZSBvZiBDb25kaXRpb25zRXRyYW5nZXJzLnRcbiAgZW5kXG5sZXQgZW1iZWRfbmF0aW9uYWxpdGUgKHg6IE5hdGlvbmFsaXRlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTmF0aW9uYWxpdMOpXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEZyYW5jYWlzZSB4IC0+IChcIkZyYW7Dp2Fpc2VcIiwgZW1iZWRfdW5pdCB4KVxuICAgIHwgRXRyYW5nZXJlIHggLT4gKFwiw4l0cmFuZ8OocmVcIiwgZW1iZWRfY29uZGl0aW9uc19ldHJhbmdlcnMgeCkpXG5cblxubW9kdWxlIENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0ID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IENoYW5nZW1lbnQgb2YgSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50XG4gICAgfCBQYXNEZUNoYW5nZW1lbnQgb2YgdW5pdFxuICBlbmRcbmxldCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCAoeDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudClcbiAgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJDaGFuZ2VtZW50TG9nZW1lbnREODQyXzRcIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgQ2hhbmdlbWVudCB4IC0+XG4gICAgICAoXCJDaGFuZ2VtZW50XCIsIGVtYmVkX2luZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IHgpXG4gICAgfCBQYXNEZUNoYW5nZW1lbnQgeCAtPiAoXCJQYXNEZUNoYW5nZW1lbnRcIiwgZW1iZWRfdW5pdCB4KSlcblxuXG5tb2R1bGUgSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudCA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbm9tYnJlX2VuZmFudHNfYV9uYWl0cmVfYXByZXNfdHJvaXNpZW1lX21vaXNfZ3Jvc3Nlc3NlOiBpbnRlZ2VyO1xuICAgIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzOlxuICAgICAgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudFxuICB9XG5lbmRcbmxldCBlbWJlZF9pbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50ICh4OiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJJbmZvcm1hdGlvbnNQcmltZURlRMOpbcOpbmFnZW1lbnRcIl0sXG4gIFsoXCJub21icmVfZW5mYW50c1/DoF9uYcOudHJlX2FwcsOoc190cm9pc2nDqG1lX21vaXNfZ3Jvc3Nlc3NlXCIsXG4gICAgZW1iZWRfaW50ZWdlclxuICAgIHguSW5mb3JtYXRpb25zUHJpbWVEZURlbWVuYWdlbWVudC5ub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2UpO1xuICAgIChcImRhdGVfbmFpc3NhbmNlX3Ryb2lzacOobWVfZW5mYW50X291X2Rlcm5pZXJfc2lfcGx1c1wiLFxuICAgIGVtYmVkX2RhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50XG4gICAgeC5JbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LmRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzKV0pXG5cblxubW9kdWxlIFByb3ByaWV0YWlyZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlOiBtb25leTtcbiAgICBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldDogbW9uZXk7XG4gICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnQ6IGRhdGU7XG4gICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTU6IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudDtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81OiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudDtcbiAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmU6IGJvb2w7XG4gICAgY29wcm9wcmlldGU6IGJvb2w7XG4gICAgc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTc6IGJvb2w7XG4gICAgYW5jaWVubmV0ZV9sb2dlbWVudDogTmV1Zk91QW5jaWVuLnQ7XG4gICAgcHJldDogUHJldC50O1xuICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0OlxuICAgICAgYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9wcm9wcmlldGFpcmUgKHg6IFByb3ByaWV0YWlyZS50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiUHJvcHJpw6l0YWlyZVwiXSxcbiAgWyhcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVcIiwgZW1iZWRfbW9uZXlcbiAgICB4LlByb3ByaWV0YWlyZS5tZW5zdWFsaXRlX3ByaW5jaXBhbGUpO1xuICAgIChcImNoYXJnZXNfbWVuc3VlbGxlc19wcsOqdFwiLCBlbWJlZF9tb25leVxuICAgIHguUHJvcHJpZXRhaXJlLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0KTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRcIiwgZW1iZWRfZGF0ZVxuICAgIHguUHJvcHJpZXRhaXJlLmRhdGVfZW50cmVlX2xvZ2VtZW50KTtcbiAgICAoXCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNVwiLCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNVxuICAgIHguUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1KTtcbiAgICAoXCJ0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVcbiAgICB4LlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KTtcbiAgICAoXCJsb2NhbF9oYWJpdMOpX3ByZW1pw6hyZV9mb2lzX2LDqW7DqWZpY2lhaXJlXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmUpO1xuICAgIChcImNvcHJvcHJpw6l0w6lcIiwgZW1iZWRfYm9vbFxuICAgIHguUHJvcHJpZXRhaXJlLmNvcHJvcHJpZXRlKTtcbiAgICAoXCJzaXR1YXRpb25fcjgyMl8xMV8xM18xN1wiLCBlbWJlZF9ib29sXG4gICAgeC5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpO1xuICAgIChcImFuY2llbm5ldMOpX2xvZ2VtZW50XCIsIGVtYmVkX25ldWZfb3VfYW5jaWVuXG4gICAgeC5Qcm9wcmlldGFpcmUuYW5jaWVubmV0ZV9sb2dlbWVudCk7XG4gICAgKFwicHLDqnRcIiwgZW1iZWRfcHJldFxuICAgIHguUHJvcHJpZXRhaXJlLnByZXQpO1xuICAgIChcIm9ww6lyYXRpb25zX2xvZ2VtZW50X8Opdm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpw6l0w6lfYWlkw6llX8OJdGF0XCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguUHJvcHJpZXRhaXJlLm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0KV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBhZ2VfbDUxMl8zXzI6IGR1cmF0aW9uO1xuICAgIGRyb2l0X291dmVydDogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gYm9vbDtcbiAgICBjb25kaXRpb25zX2hvcnNfYWdlOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBib29sO1xuICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xOiBib29sXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKHg6IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCJdLFxuICBbKFwiw6JnZV9sNTEyXzNfMlwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yKTtcbiAgICAoXCJkcm9pdF9vdXZlcnRcIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5kcm9pdF9vdXZlcnQpO1xuICAgIChcImNvbmRpdGlvbnNfaG9yc1/DomdlXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSk7XG4gICAgKFwicsOpZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xKV0pXG5cblxubW9kdWxlIERlbWFuZGV1ciA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgbmF0aW9uYWxpdGU6IE5hdGlvbmFsaXRlLnQ7XG4gICAgcGF0cmltb2luZTogUGF0cmltb2luZS50O1xuICAgIHBlcnNvbm5lX2hlYmVyZ2VlX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3NlY3VyaXRlX3NvY2lhbGU6IGJvb2w7XG4gICAgZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsOiBib29sO1xuICAgIG1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZTpcbiAgICAgIGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZGVtYW5kZXVyICh4OiBEZW1hbmRldXIudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIkRlbWFuZGV1clwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGUgeC5EZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2UpO1xuICAgIChcIm5hdGlvbmFsaXTDqVwiLCBlbWJlZF9uYXRpb25hbGl0ZVxuICAgIHguRGVtYW5kZXVyLm5hdGlvbmFsaXRlKTtcbiAgICAoXCJwYXRyaW1vaW5lXCIsIGVtYmVkX3BhdHJpbW9pbmVcbiAgICB4LkRlbWFuZGV1ci5wYXRyaW1vaW5lKTtcbiAgICAoXCJwZXJzb25uZV9ow6liZXJnw6llX2NlbnRyZV9zb2luX2xfTDE2Ml8yMl8zX3PDqWN1cml0w6lfc29jaWFsZVwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5wZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlKTtcbiAgICAoXCJlc3Rfbm9uX3NhbGFyacOpX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5lc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWwpO1xuICAgIChcIm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnTDqXLDqnRzX21hdMOpcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZVwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkRlbWFuZGV1ci5tYWdpc3RyYXRfZm9uY3Rpb25uYWlyZV9jZW50cmVfaW50ZXJldHNfbWF0ZXJpZWxzX2ZhbWlsaWF1eF9ob3JzX21heW90dGUpXSlcblxuXG5tb2R1bGUgRW5mYW50QUNoYXJnZSA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaWRlbnRpZmlhbnQ6IGludGVnZXI7XG4gICAgbmF0aW9uYWxpdGU6IE5hdGlvbmFsaXRlLnQ7XG4gICAgYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50OiBib29sO1xuICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXM6IGJvb2w7XG4gICAgZGF0ZV9kZV9uYWlzc2FuY2U6IGRhdGU7XG4gICAgcmVtdW5lcmF0aW9uX21lbnN1ZWxsZTogbW9uZXk7XG4gICAgb2JsaWdhdGlvbl9zY29sYWlyZTogU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLnQ7XG4gICAgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQ7XG4gICAgZXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXRlX3RyYXZhaWw6IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZW5mYW50X2FfY2hhcmdlICh4OiBFbmZhbnRBQ2hhcmdlLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJFbmZhbnTDgENoYXJnZVwiXSxcbiAgWyhcImlkZW50aWZpYW50XCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgIChcIm5hdGlvbmFsaXTDqVwiLCBlbWJlZF9uYXRpb25hbGl0ZVxuICAgIHguRW5mYW50QUNoYXJnZS5uYXRpb25hbGl0ZSk7XG4gICAgKFwiYsOpbsOpZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcIiwgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpO1xuICAgIChcImFfZMOpasOgX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiLCBlbWJlZF9ib29sXG4gICAgeC5FbmZhbnRBQ2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgIChcImRhdGVfZGVfbmFpc3NhbmNlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgIChcInLDqW11bmVyYXRpb25fbWVuc3VlbGxlXCIsIGVtYmVkX21vbmV5XG4gICAgeC5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgIChcIm9ibGlnYXRpb25fc2NvbGFpcmVcIiwgZW1iZWRfc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVcbiAgICB4LkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgKFwic2l0dWF0aW9uX2dhcmRlX2FsdGVybsOpZVwiLCBlbWJlZF9zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVcbiAgICB4LkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKTtcbiAgICAoXCLDqXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXTDqV90cmF2YWlsXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguRW5mYW50QUNoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCldKVxuXG5cbm1vZHVsZSBMb2NhdGlvbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgYmFpbGxldXI6IFR5cGVCYWlsbGV1ci50O1xuICAgIGxveWVyX3ByaW5jaXBhbDogbW9uZXk7XG4gICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzOiBib29sO1xuICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlOiBib29sO1xuICAgIGNvbG9jYXRpb246IGJvb2w7XG4gICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnM6IGJvb2w7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMjogYm9vbDtcbiAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNDogQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQudFxuICB9XG5lbmRcbmxldCBlbWJlZF9sb2NhdGlvbiAoeDogTG9jYXRpb24udCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIkxvY2F0aW9uXCJdLFxuICBbKFwiYmFpbGxldXJcIiwgZW1iZWRfdHlwZV9iYWlsbGV1ciB4LkxvY2F0aW9uLmJhaWxsZXVyKTtcbiAgICAoXCJsb3llcl9wcmluY2lwYWxcIiwgZW1iZWRfbW9uZXlcbiAgICB4LkxvY2F0aW9uLmxveWVyX3ByaW5jaXBhbCk7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyk7XG4gICAgKFwibG9nZW1lbnRfZXN0X2NoYW1icmVcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpO1xuICAgIChcImNvbG9jYXRpb25cIiwgZW1iZWRfYm9vbFxuICAgIHguTG9jYXRpb24uY29sb2NhdGlvbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc1wiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzKTtcbiAgICAoXCJsb2dlbWVudF9tZXVibMOpX2Q4NDJfMlwiLCBlbWJlZF9ib29sXG4gICAgeC5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKTtcbiAgICAoXCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFwiLCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgIHguTG9jYXRpb24uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQpXSlcblxuXG5tb2R1bGUgUGVyc29ubmVBQ2hhcmdlID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IEVuZmFudEFDaGFyZ2Ugb2YgRW5mYW50QUNoYXJnZS50XG4gICAgfCBBdXRyZVBlcnNvbm5lQUNoYXJnZSBvZiBBdXRyZVBlcnNvbm5lQUNoYXJnZS50XG4gIGVuZFxubGV0IGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlICh4OiBQZXJzb25uZUFDaGFyZ2UudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgRW51bShbXCJQZXJzb25uZcOAQ2hhcmdlXCJdLFxuICBtYXRjaCB4IHdpdGhcbiAgICB8IEVuZmFudEFDaGFyZ2UgeCAtPiAoXCJFbmZhbnTDgENoYXJnZVwiLCBlbWJlZF9lbmZhbnRfYV9jaGFyZ2UgeClcbiAgICB8IEF1dHJlUGVyc29ubmVBQ2hhcmdlIHggLT5cbiAgICAgIChcIkF1dHJlUGVyc29ubmXDgENoYXJnZVwiLCBlbWJlZF9hdXRyZV9wZXJzb25uZV9hX2NoYXJnZSB4KSlcblxuXG5tb2R1bGUgQ2F0ZWdvcmllQ2FsY3VsQVBMID0gc3RydWN0XG5cbiAgdHlwZSB0ID1cbiAgICB8IExvY2F0aW9uIG9mIExvY2F0aW9uLnRcbiAgICB8IEFjY2Vzc2lvblByb3ByaWV0ZSBvZiBQcm9wcmlldGFpcmUudFxuICAgIHwgTG9nZW1lbnRGb3llciBvZiBMb2dlbWVudEZveWVyLnRcbiAgZW5kXG5sZXQgZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCAoeDogQ2F0ZWdvcmllQ2FsY3VsQVBMLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiQ2F0w6lnb3JpZUNhbGN1bEFQTFwiXSxcbiAgbWF0Y2ggeCB3aXRoXG4gICAgfCBMb2NhdGlvbiB4IC0+IChcIkxvY2F0aW9uXCIsIGVtYmVkX2xvY2F0aW9uIHgpXG4gICAgfCBBY2Nlc3Npb25Qcm9wcmlldGUgeCAtPiAoXCJBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiLCBlbWJlZF9wcm9wcmlldGFpcmUgeClcbiAgICB8IExvZ2VtZW50Rm95ZXIgeCAtPiAoXCJMb2dlbWVudEZveWVyXCIsIGVtYmVkX2xvZ2VtZW50X2ZveWVyIHgpKVxuXG5cbm1vZHVsZSBNb2RlT2NjdXBhdGlvbiA9IHN0cnVjdFxuXG4gIHR5cGUgdCA9XG4gICAgfCBMb2NhdGFpcmUgb2YgTG9jYXRpb24udFxuICAgIHwgUmVzaWRlbnRMb2dlbWVudEZveWVyIG9mIExvZ2VtZW50Rm95ZXIudFxuICAgIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBvZiBQcm9wcmlldGFpcmUudFxuICAgIHwgU291c0xvY2F0YWlyZSBvZiBMb2NhdGlvbi50XG4gICAgfCBMb2NhdGlvbkFjY2Vzc2lvbiBvZiBQcm9wcmlldGFpcmUudFxuICBlbmRcbmxldCBlbWJlZF9tb2RlX29jY3VwYXRpb24gKHg6IE1vZGVPY2N1cGF0aW9uLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIEVudW0oW1wiTW9kZU9jY3VwYXRpb25cIl0sXG4gIG1hdGNoIHggd2l0aFxuICAgIHwgTG9jYXRhaXJlIHggLT4gKFwiTG9jYXRhaXJlXCIsIGVtYmVkX2xvY2F0aW9uIHgpXG4gICAgfCBSZXNpZGVudExvZ2VtZW50Rm95ZXIgeCAtPlxuICAgICAgKFwiUsOpc2lkZW50TG9nZW1lbnRGb3llclwiLCBlbWJlZF9sb2dlbWVudF9mb3llciB4KVxuICAgIHwgQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiB4IC0+XG4gICAgICAoXCJBY2Nlc3Npb25Qcm9wcmnDqXTDqUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb25cIiwgZW1iZWRfcHJvcHJpZXRhaXJlIHgpXG4gICAgfCBTb3VzTG9jYXRhaXJlIHggLT4gKFwiU291c0xvY2F0YWlyZVwiLCBlbWJlZF9sb2NhdGlvbiB4KVxuICAgIHwgTG9jYXRpb25BY2Nlc3Npb24geCAtPiAoXCJMb2NhdGlvbkFjY2Vzc2lvblwiLCBlbWJlZF9wcm9wcmlldGFpcmUgeCkpXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlOiBkYXRlO1xuICAgIGVsaWdpYmlsaXRlOiBib29sO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZTogaW50ZWdlcjtcbiAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlOiBkZWNpbWFsIGFycmF5O1xuICAgIGNvbmRpdGlvbl8yX3I4MjNfNDogUGVyc29ubmVBQ2hhcmdlLnQgLT4gYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoeDogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUpO1xuICAgIChcIsOpbGlnaWJpbGl0w6lcIiwgZW1iZWRfYm9vbFxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUpO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlKTtcbiAgICAoXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiLFxuICAgIGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSk7XG4gICAgKFwiY29uZGl0aW9uXzJfcjgyM180XCIsIHVuZW1iZWRkYWJsZVxuICAgIHguRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29uZGl0aW9uXzJfcjgyM180KV0pXG5cblxubW9kdWxlIExvZ2VtZW50ID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICByZXNpZGVuY2VfcHJpbmNpcGFsZTogYm9vbDtcbiAgICBlc3RfZWhwYWRfb3VfbWFpc29uX2F1dG9ub21pZV9sMzEzXzEyX2FzZjogYm9vbDtcbiAgICBtb2RlX29jY3VwYXRpb246IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgcHJvcHJpZXRhaXJlOiBQYXJlbnRPdUF1dHJlLnQ7XG4gICAgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnM6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQ7XG4gICAgdXN1ZnJ1aXQ6IFBhcmVudE91QXV0cmUudDtcbiAgICBsb2dlbWVudF9kZWNlbnRfbDg5XzQ2MjogYm9vbDtcbiAgICBzdXJmYWNlX21fY2FycmVzOiBpbnRlZ2VyO1xuICAgIHpvbmU6IFpvbmVESGFiaXRhdGlvbi50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2xvZ2VtZW50ICh4OiBMb2dlbWVudC50KSA6IHJ1bnRpbWVfdmFsdWUgPSBTdHJ1Y3QoW1wiTG9nZW1lbnRcIl0sXG4gIFsoXCJyw6lzaWRlbmNlX3ByaW5jaXBhbGVcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnQucmVzaWRlbmNlX3ByaW5jaXBhbGUpO1xuICAgIChcImVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkxvZ2VtZW50LmVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmKTtcbiAgICAoXCJtb2RlX29jY3VwYXRpb25cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pO1xuICAgIChcInByb3ByacOpdGFpcmVcIiwgZW1iZWRfcGFyZW50X291X2F1dHJlXG4gICAgeC5Mb2dlbWVudC5wcm9wcmlldGFpcmUpO1xuICAgIChcImxvdcOpX291X3NvdXNfbG91w6lfw6BfZGVzX3RpZXJzXCIsIGVtYmVkX2xvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzXG4gICAgeC5Mb2dlbWVudC5sb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyk7XG4gICAgKFwidXN1ZnJ1aXRcIiwgZW1iZWRfcGFyZW50X291X2F1dHJlXG4gICAgeC5Mb2dlbWVudC51c3VmcnVpdCk7XG4gICAgKFwibG9nZW1lbnRfZGVjZW50X2w4OV80NjJcIiwgZW1iZWRfYm9vbFxuICAgIHguTG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjIpO1xuICAgIChcInN1cmZhY2VfbV9jYXJyw6lzXCIsIGVtYmVkX2ludGVnZXIgeC5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKTtcbiAgICAoXCJ6b25lXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uIHguTG9nZW1lbnQuem9uZSldKVxuXG5cbm1vZHVsZSBNZW5hZ2UgPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIHByZXN0YXRpb25zX3JlY3VlczogUHJlc3RhdGlvblJlY3VlLnQgYXJyYXk7XG4gICAgbG9nZW1lbnQ6IExvZ2VtZW50LnQ7XG4gICAgcGVyc29ubmVzX2FfY2hhcmdlOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheTtcbiAgICBub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudDogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBjb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmk6IGJvb2w7XG4gICAgZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZTogYm9vbDtcbiAgICBwZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80OiBib29sO1xuICAgIHJlc2lkZW5jZTogQ29sbGVjdGl2aXRlLnRcbiAgfVxuZW5kXG5sZXQgZW1iZWRfbWVuYWdlICh4OiBNZW5hZ2UudCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIk3DqW5hZ2VcIl0sXG4gIFsoXCJwcmVzdGF0aW9uc19yZcOndWVzXCIsIGVtYmVkX2FycmF5IChlbWJlZF9wcmVzdGF0aW9uX3JlY3VlKVxuICAgIHguTWVuYWdlLnByZXN0YXRpb25zX3JlY3Vlcyk7XG4gICAgKFwibG9nZW1lbnRcIiwgZW1iZWRfbG9nZW1lbnQgeC5NZW5hZ2UubG9nZW1lbnQpO1xuICAgIChcInBlcnNvbm5lc1/DoF9jaGFyZ2VcIiwgZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgIHguTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSk7XG4gICAgKFwibm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnRcIiwgZW1iZWRfaW50ZWdlclxuICAgIHguTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50KTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4Lk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKTtcbiAgICAoXCJjb25kaXRpb25fcmF0dGFjaMOpX2ZveWVyX2Zpc2NhbF9wYXJlbnRfaWZpXCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmkpO1xuICAgIChcImVuZmFudF/DoF9uYcOudHJlX2FwcsOoc19xdWF0cmnDqG1lX21vaXNfZ3Jvc3Nlc3NlXCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5lbmZhbnRfYV9uYWl0cmVfYXByZXNfcXVhdHJpZW1lX21vaXNfZ3Jvc3Nlc3NlKTtcbiAgICAoXCJwZXJzb25uZXNfw6Jnw6llc19oYW5kaWNhcMOpZXNfZm95ZXJfcjg0NF80XCIsIGVtYmVkX2Jvb2xcbiAgICB4Lk1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80KTtcbiAgICAoXCJyw6lzaWRlbmNlXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZSB4Lk1lbmFnZS5yZXNpZGVuY2UpXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luOiB1bml0IC0+IGJvb2w7XG4gICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW46IHVuaXQgLT4gYm9vbDtcbiAgICBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbjogdW5pdCAtPiBkYXRlXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luICh4OiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50X2luXCJdLFxuICBbKFwibcOpbmFnZV9pblwiLCBlbWJlZF9tZW5hZ2VcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcImNvbmRpdGlvbl9sb2dlbWVudF9yw6lzaWRlbmNlX3ByaW5jaXBhbGVfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbik7XG4gICAgKFwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaF9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4pXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbmFnZV9pbjogTWVuYWdlLnQ7XG4gICAgZGVtYW5kZXVyX2luOiBEZW1hbmRldXIudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlXG4gIH1cbmVuZFxubGV0IGVtYmVkX2VsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiAoeDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudF9pblwiXSxcbiAgWyhcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKV0pXG5cblxubW9kdWxlIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGJlbmVmaWNpZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW46IGJvb2xcbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiAoeDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudF9pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5tZW5hZ2VfaW4pO1xuICAgIChcImRlbWFuZGV1cl9pblwiLCBlbWJlZF9kZW1hbmRldXJcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGVtYW5kZXVyX2luKTtcbiAgICAoXCJiw6luw6lmaWNpZV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbildKVxuXG5cbm1vZHVsZSBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgaW5mb3JtYXRpb25zX2luOiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQ7XG4gICAgZGF0ZV9lbW1lbmFnZW1lbnRfaW46IGRhdGU7XG4gICAgbWVuYWdlX2luOiBNZW5hZ2UudDtcbiAgICBkZW1hbmRldXJfaW46IERlbWFuZGV1ci50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9lbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gKHg6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50X2luXCJdLFxuICBbKFwiaW5mb3JtYXRpb25zX2luXCIsIGVtYmVkX2luZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmluZm9ybWF0aW9uc19pbik7XG4gICAgKFwiZGF0ZV9lbW3DqW5hZ2VtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmRhdGVfZW1tZW5hZ2VtZW50X2luKTtcbiAgICAoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4ubWVuYWdlX2luKTtcbiAgICAoXCJkZW1hbmRldXJfaW5cIiwgZW1iZWRfZGVtYW5kZXVyXG4gICAgeC5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZW1hbmRldXJfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiZMOpcGVuc2VzX2p1c3RpZmnDqWVzX3LDqWVsbGVtZW50X2VuZ2Fnw6llc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4uZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX2luKV0pXG5cblxubW9kdWxlIFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgcmVzc291cmNlc19kZW1hbmRldXJfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfY29uam9pbnRfaW46IG1vbmV5O1xuICAgIHBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW46XG4gICAgICBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50IGFycmF5O1xuICAgIGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luOiBib29sO1xuICAgIGNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW46IGJvb2w7XG4gICAgcGVyc29ubmVzX2FfY2hhcmdlX2luOiBQZXJzb25uZUFDaGFyZ2UudCBhcnJheTtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBtb2RlX29jY3VwYXRpb25faW46IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luOiBib29sO1xuICAgIGRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luOiBib29sO1xuICAgIGRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pbjogZGF0ZTtcbiAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luOlxuICAgICAgUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9yZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luICh4OiBSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJyZXNzb3VyY2VzX2RlbWFuZGV1cl9pblwiLCBlbWJlZF9tb25leVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnJlc3NvdXJjZXNfZGVtYW5kZXVyX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX2NvbmpvaW50X2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19jb25qb2ludF9pbik7XG4gICAgKFwicGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pblwiLFxuICAgIGVtYmVkX2FycmF5IChlbWJlZF9wZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIpXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0w6lfcsOpbXVuw6lyw6llX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbik7XG4gICAgKFwiY29uam9pbnRfZXhlcmNlX2FjdGl2aXTDqV9yw6ltdW7DqXLDqWVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW4pO1xuICAgIChcInBlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9pblwiLCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbik7XG4gICAgKFwibW9kZV9vY2N1cGF0aW9uX2luXCIsIGVtYmVkX21vZGVfb2NjdXBhdGlvblxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiY29uZGl0aW9uX8OiZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXDDqXJpZXVyX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5jb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luKTtcbiAgICAoXCJkZW1hbmRldXJfcG91cnN1aXRfZGVzX8OpdHVkZXNfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luKTtcbiAgICAoXCJkYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF9pbik7XG4gICAgKFwicGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9pblwiLFxuICAgIGVtYmVkX3BhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbildKVxuXG5cbm1vZHVsZSBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gKHg6IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luOiBib29sO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlX2luOiBib29sO1xuICAgIGFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luOiBib29sO1xuICAgIHR5cGVfYWlkZV9pbjogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50O1xuICAgIGNvbG9jYXRpb25faW46IGJvb2w7XG4gICAgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW46IG1vbmV5O1xuICAgIGxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW46IGJvb2w7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZl9pblwiXSxcbiAgWyhcImxveWVyX3ByaW5jaXBhbF9iYXNlX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxveWVyX3ByaW5jaXBhbF9iYXNlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbik7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbik7XG4gICAgKFwibG9nZW1lbnRfZXN0X2NoYW1icmVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc19pblwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4pO1xuICAgIChcInR5cGVfYWlkZV9pblwiLCBlbWJlZF90eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwiY29sb2NhdGlvbl9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4pO1xuICAgIChcInLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4pO1xuICAgIChcImxvZ2VtZW50X21ldWJsw6lfZDg0Ml8yX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiBib29sO1xuICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW46IGRlY2ltYWxcbiAgfVxuZW5kXG5sZXQgZW1iZWRfY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luICh4OiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZV9pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJjb25kaXRpb25fMl9kdV84MzJfMjVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luKTtcbiAgICAoXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X2luXCIsIGVtYmVkX2RlY2ltYWxcbiAgICB4LkNhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiBib29sO1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IHVuaXQgLT4gYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4gKHg6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyX2luXCJdLFxuICBbKFwiY29uZGl0aW9uXzJfZHVfODMyXzI1X2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW46IGRhdGU7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZWRldmFuY2VfaW46IG1vbmV5O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luOiB1bml0IC0+IGJvb2w7XG4gICAgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogdW5pdCAtPiBib29sO1xuICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW46IHVuaXQgLT4gZGVjaW1hbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luICh4OiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llcl9pblwiXSxcbiAgWyhcInR5cGVfbG9nZW1lbnRfZm95ZXJfaW5cIiwgZW1iZWRfdHlwZV9sb2dlbWVudF9mb3llclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcInJlZGV2YW5jZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJjb25kaXRpb25fMl9kdV84MzJfMjVfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4pO1xuICAgIChcImxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIHVuZW1iZWRkYWJsZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwibl9ub21icmVfcGFydHNfZDgzMl8yNV9pblwiLCB1bmVtYmVkZGFibGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiAoeDogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmnDqXTDqV9pblwiXSxcbiAgWyhcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXCIsXG4gICAgZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xcbiAgICB4LkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgbWVuc3VhbGl0ZV9wcmluY2lwYWxlX2luOiBtb25leTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW46IG1vbmV5O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudDtcbiAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW46IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudDtcbiAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X2luOiBkYXRlO1xuICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbjogYm9vbDtcbiAgICBkYXRlX2VudHJlZV9sb2dlbWVudF9pbjogZGF0ZTtcbiAgICBjb3Byb3ByaWV0ZV9pbjogYm9vbDtcbiAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xN19pbjogYm9vbDtcbiAgICB6b25lX2luOiBab25lREhhYml0YXRpb24udDtcbiAgICB0eXBlX3ByZXRfaW46IFR5cGVQcmV0LnQ7XG4gICAgYW5jaWVubmV0ZV9sb2dlbWVudF9pbjogTmV1Zk91QW5jaWVuLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqV9pblwiXSxcbiAgWyhcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5tZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwidHlwZV90cmF2YXV4X2xvZ2VtZW50X2luXCIsIGVtYmVkX3R5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1XG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luKTtcbiAgICAoXCJkYXRlX3NpZ25hdHVyZV9wcsOqdF9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbik7XG4gICAgKFwibG9jYWxfaGFiaXTDqV9wcmVtacOocmVfZm9pc19iw6luw6lmaWNpYWlyZV9pblwiLCBlbWJlZF9ib29sXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luKTtcbiAgICAoXCJjb3Byb3ByacOpdMOpX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbik7XG4gICAgKFwidHlwZV9wcsOqdF9pblwiLCBlbWJlZF90eXBlX3ByZXRcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3ByZXRfaW4pO1xuICAgIChcImFuY2llbm5ldMOpX2xvZ2VtZW50X2luXCIsIGVtYmVkX25ldWZfb3VfYW5jaWVuXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uYW5jaWVubmV0ZV9sb2dlbWVudF9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICB0eXBlX2FpZGVfaW46IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudDtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW46IG1vbmV5O1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfaW46IFNpdHVhdGlvbkZhbWlsaWFsZS50O1xuICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW46IGludGVnZXI7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gKHg6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtb2RlX29jY3VwYXRpb25faW5cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luKTtcbiAgICAoXCJ0eXBlX2FpZGVfaW5cIiwgZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3NhbnNfYXJyb25kaV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbik7XG4gICAgKFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9pblwiLCBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlXG4gICAgeC5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbik7XG4gICAgKFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfaW5cIiwgZW1iZWRfaW50ZWdlclxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGxveWVyX3ByaW5jaXBhbF9pbjogbW9uZXk7XG4gICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luOiBtb25leTtcbiAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW46IGJvb2w7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbjogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQ7XG4gICAgem9uZV9pbjogWm9uZURIYWJpdGF0aW9uLnQ7XG4gICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfaW46IGJvb2w7XG4gICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW46IGJvb2w7XG4gICAgdHlwZV9haWRlX2luOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQ7XG4gICAgY29sb2NhdGlvbl9pbjogYm9vbDtcbiAgICByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbjogbW9uZXk7XG4gICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbjogYm9vbDtcbiAgICByZXNpZGVuY2VfaW46IENvbGxlY3Rpdml0ZS50O1xuICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luOiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gKHg6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZl9pblwiXSxcbiAgWyhcImxveWVyX3ByaW5jaXBhbF9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxveWVyX3ByaW5jaXBhbF9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc19pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbik7XG4gICAgKFwiYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4pO1xuICAgIChcImxvZ2VtZW50X2VzdF9jaGFtYnJlX2luXCIsIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbik7XG4gICAgKFwiw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc19pblwiLFxuICAgIGVtYmVkX2Jvb2xcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbik7XG4gICAgKFwidHlwZV9haWRlX2luXCIsIGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4pO1xuICAgIChcImNvbG9jYXRpb25faW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4pO1xuICAgIChcInLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbik7XG4gICAgKFwibG9nZW1lbnRfbWV1YmzDqV9kODQyXzJfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4pO1xuICAgIChcInLDqXNpZGVuY2VfaW5cIiwgZW1iZWRfY29sbGVjdGl2aXRlXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pblwiLCBlbWJlZF9jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbjogbW9uZXk7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW46IG1vbmV5O1xuICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luOiBib29sO1xuICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfaW46IGRhdGU7XG4gICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2luOiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudDtcbiAgICBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW46IGJvb2w7XG4gICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW46IGRhdGU7XG4gICAgY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRfaW46IG1vbmV5O1xuICAgIGNvcHJvcHJpZXRlX2luOiBib29sO1xuICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0X2luOlxuICAgICAgYm9vbFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luICh4OiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lfaW5cIl0sXG4gIFsoXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cIixcbiAgICBlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luKTtcbiAgICAoXCJ6b25lX2luXCIsIGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi56b25lX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ucmVzaWRlbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfY291cmFudGVfaW4pO1xuICAgIChcIm1lbnN1YWxpdMOpX3ByaW5jaXBhbGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbik7XG4gICAgKFwic2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4pO1xuICAgIChcImRhdGVfc2lnbmF0dXJlX3Byw6p0X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW4pO1xuICAgIChcInR5cGVfdHJhdmF1eF9sb2dlbWVudF9pblwiLCBlbWJlZF90eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81XG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4pO1xuICAgIChcImxvY2FsX2hhYml0w6lfcHJlbWnDqHJlX2ZvaXNfYsOpbsOpZmljaWFpcmVfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luKTtcbiAgICAoXCJkYXRlX2VudHLDqWVfbG9nZW1lbnRfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4pO1xuICAgIChcImNoYXJnZXNfbWVuc3VlbGxlc19wcsOqdF9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRfaW4pO1xuICAgIChcImNvcHJvcHJpw6l0w6lfaW5cIiwgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uY29wcm9wcmlldGVfaW4pO1xuICAgIChcIm9ww6lyYXRpb25zX2xvZ2VtZW50X8Opdm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpw6l0w6lfYWlkw6llX8OJdGF0X2luXCIsXG4gICAgZW1iZWRfYm9vbFxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbjogVHlwZUxvZ2VtZW50Rm95ZXIudDtcbiAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnRfaW46IGRhdGU7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICByZWRldmFuY2VfaW46IG1vbmV5O1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbjogbW9uZXk7XG4gICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbjogaW50ZWdlcjtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW46IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50O1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW46XG4gICAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJfaW5cIl0sXG4gIFsoXCJ0eXBlX2xvZ2VtZW50X2ZveWVyX2luXCIsIGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbik7XG4gICAgKFwiZGF0ZV9jb252ZW50aW9ubmVtZW50X2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcInJlZGV2YW5jZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4pO1xuICAgIChcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luKTtcbiAgICAoXCJub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZV9pblwiLCBlbWJlZF9pbnRlZ2VyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblwiLFxuICAgIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbik7XG4gICAgKFwiem9uZV9pblwiLCBlbWJlZF96b25lX2RfaGFiaXRhdGlvblxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi56b25lX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiY2F0w6lnb3JpZV/DqXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9pblwiLFxuICAgIGVtYmVkX2NhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgeC5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luKV0pXG5cblxubW9kdWxlIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtb2RlX29jY3VwYXRpb25faW46IE1vZGVPY2N1cGF0aW9uLnQ7XG4gICAgcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luOiBtb25leTtcbiAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luOiBTaXR1YXRpb25GYW1pbGlhbGUudDtcbiAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luOiBpbnRlZ2VyO1xuICAgIHpvbmVfaW46IFpvbmVESGFiaXRhdGlvbi50O1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgdHlwZV9haWRlX2luOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudFxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiAoeDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudF9pblwiXSxcbiAgWyhcIm1vZGVfb2NjdXBhdGlvbl9pblwiLCBlbWJlZF9tb2RlX29jY3VwYXRpb25cbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3NhbnNfYXJyb25kaV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpX2luKTtcbiAgICAoXCJzaXR1YXRpb25fZmFtaWxpYWxlX2luXCIsIGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4pO1xuICAgIChcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX2luXCIsIGVtYmVkX2ludGVnZXJcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4pO1xuICAgIChcInpvbmVfaW5cIiwgZW1iZWRfem9uZV9kX2hhYml0YXRpb25cbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnpvbmVfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwidHlwZV9haWRlX2luXCIsIGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbik7XG4gICAgKFwicsOpc2lkZW5jZV9pblwiLCBlbWJlZF9jb2xsZWN0aXZpdGVcbiAgICB4LkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc2lkZW5jZV9pbildKVxuXG5cbm1vZHVsZSBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtkYXRlX25haXNzYW5jZV9hc3N1cmVfaW46IGRhdGV9XG5lbmRcbmxldCBlbWJlZF9vdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luICh4OiBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluLnQpIDogcnVudGltZV92YWx1ZSA9XG4gIFN0cnVjdChbXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZV9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2Fzc3Vyw6lfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVJbi5kYXRlX25haXNzYW5jZV9hc3N1cmVfaW4pXSlcblxuXG5tb2R1bGUgSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1vZGVfb2NjdXBhdGlvbl9pbjogTW9kZU9jY3VwYXRpb24udDtcbiAgICBhaWRlX3ZlcnNlZV9pbjogVmVyc2VtZW50QS50O1xuICAgIG1vbnRhbnRfYXBsX2luOiBtb25leTtcbiAgICBtb250YW50X2NoYXJnZXNfaW46IG1vbmV5O1xuICAgIGRlcGVuc2VfbG9nZW1lbnRfaW46IERlcGVuc2VMb2dlbWVudC50O1xuICAgIG1vbnRhbnRfZGV0dGVfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2ltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luICh4OiBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtb2RlX29jY3VwYXRpb25faW5cIiwgZW1iZWRfbW9kZV9vY2N1cGF0aW9uXG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb2RlX29jY3VwYXRpb25faW4pO1xuICAgIChcImFpZGVfdmVyc8OpZV9pblwiLCBlbWJlZF92ZXJzZW1lbnRfYVxuICAgIHguSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4uYWlkZV92ZXJzZWVfaW4pO1xuICAgIChcIm1vbnRhbnRfYXBsX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2FwbF9pbik7XG4gICAgKFwibW9udGFudF9jaGFyZ2VzX2luXCIsIGVtYmVkX21vbmV5XG4gICAgeC5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2NoYXJnZXNfaW4pO1xuICAgIChcImTDqXBlbnNlX2xvZ2VtZW50X2luXCIsIGVtYmVkX2RlcGVuc2VfbG9nZW1lbnRcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLmRlcGVuc2VfbG9nZW1lbnRfaW4pO1xuICAgIChcIm1vbnRhbnRfZGV0dGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkltcGF5ZURlcGVuc2VMb2dlbWVudEluLm1vbnRhbnRfZGV0dGVfaW4pXSlcblxuXG5tb2R1bGUgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBtZW5hZ2VfaW46IE1lbmFnZS50O1xuICAgIGRlbWFuZGV1cl9pbjogRGVtYW5kZXVyLnQ7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luOiBtb25leVxuICB9XG5lbmRcbmxldCBlbWJlZF9jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luICh4OiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRfaW5cIl0sXG4gIFsoXCJtw6luYWdlX2luXCIsIGVtYmVkX21lbmFnZVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwicmVzc291cmNlc19tw6luYWdlX3ByaXNlc19lbl9jb21wdGVfaW5cIiwgZW1iZWRfbW9uZXlcbiAgICB4LkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luKV0pXG5cblxubW9kdWxlIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIG1lbmFnZV9pbjogTWVuYWdlLnQ7XG4gICAgZGVtYW5kZXVyX2luOiBEZW1hbmRldXIudDtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW46IG1vbmV5XG4gIH1cbmVuZFxubGV0IGVtYmVkX2NhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gKHg6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZV9pblwiXSxcbiAgWyhcIm3DqW5hZ2VfaW5cIiwgZW1iZWRfbWVuYWdlXG4gICAgeC5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLm1lbmFnZV9pbik7XG4gICAgKFwiZGVtYW5kZXVyX2luXCIsIGVtYmVkX2RlbWFuZGV1clxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kZW1hbmRldXJfaW4pO1xuICAgIChcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV9pblwiLCBlbWJlZF9tb25leVxuICAgIHguQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luKV0pXG5cblxubW9kdWxlIEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7ZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZX1cbmVuZFxubGV0IGVtYmVkX2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gKHg6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4pXSlcblxuXG5tb2R1bGUgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluID0gc3RydWN0XG4gIHR5cGUgdCA9IHtcbiAgICBkYXRlX25haXNzYW5jZV9pbjogZGF0ZTtcbiAgICBkYXRlX2NvdXJhbnRlX2luOiBkYXRlO1xuICAgIGFubmVlc19pbjogZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgF9pblwiXSxcbiAgWyhcImRhdGVfbmFpc3NhbmNlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX25haXNzYW5jZV9pbik7XG4gICAgKFwiZGF0ZV9jb3VyYW50ZV9pblwiLCBlbWJlZF9kYXRlXG4gICAgeC5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9jb3VyYW50ZV9pbik7XG4gICAgKFwiYW5uw6llc19pblwiLCBlbWJlZF9kdXJhdGlvblxuICAgIHguVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge1xuICAgIGRhdGVfbmFpc3NhbmNlX2luOiBkYXRlO1xuICAgIGRhdGVfY291cmFudGVfaW46IGRhdGU7XG4gICAgYW5uZWVzX2luOiBkdXJhdGlvblxuICB9XG5lbmRcbmxldCBlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luICh4OiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCkgOiBydW50aW1lX3ZhbHVlID1cbiAgU3RydWN0KFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAX2luXCJdLFxuICBbKFwiZGF0ZV9uYWlzc2FuY2VfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luKTtcbiAgICAoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJhbm7DqWVzX2luXCIsIGVtYmVkX2R1cmF0aW9uIHguVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbildKVxuXG5cbm1vZHVsZSBTbWljSW4gPSBzdHJ1Y3RcbiAgdHlwZSB0ID0ge2RhdGVfY291cmFudGVfaW46IGRhdGU7IHJlc2lkZW5jZV9pbjogQ29sbGVjdGl2aXRlLnR9XG5lbmRcbmxldCBlbWJlZF9zbWljX2luICh4OiBTbWljSW4udCkgOiBydW50aW1lX3ZhbHVlID0gU3RydWN0KFtcIlNtaWNfaW5cIl0sXG4gIFsoXCJkYXRlX2NvdXJhbnRlX2luXCIsIGVtYmVkX2RhdGVcbiAgICB4LlNtaWNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZSB4LlNtaWNJbi5yZXNpZGVuY2VfaW4pXSlcblxuXG5tb2R1bGUgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbiA9IHN0cnVjdFxuICB0eXBlIHQgPSB7XG4gICAgZGF0ZV9jb3VyYW50ZV9pbjogZGF0ZTtcbiAgICBwcmVzdGF0aW9uX2NvdXJhbnRlX2luOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQ7XG4gICAgcmVzaWRlbmNlX2luOiBDb2xsZWN0aXZpdGUudDtcbiAgICBhZ2VfbDUxMl8zXzJfaW46IHVuaXQgLT4gZHVyYXRpb25cbiAgfVxuZW5kXG5sZXQgZW1iZWRfZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiAoeDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi50KSA6IHJ1bnRpbWVfdmFsdWUgPVxuICBTdHJ1Y3QoW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc19pblwiXSxcbiAgWyhcImRhdGVfY291cmFudGVfaW5cIiwgZW1iZWRfZGF0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luKTtcbiAgICAoXCJwcmVzdGF0aW9uX2NvdXJhbnRlX2luXCIsIGVtYmVkX2VsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luKTtcbiAgICAoXCJyw6lzaWRlbmNlX2luXCIsIGVtYmVkX2NvbGxlY3Rpdml0ZVxuICAgIHguRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5yZXNpZGVuY2VfaW4pO1xuICAgIChcIsOiZ2VfbDUxMl8zXzJfaW5cIiwgdW5lbWJlZGRhYmxlXG4gICAgeC5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbildKVxuXG5cblxuXG5sZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbjogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgZXhvbmVyZV9jc2dfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiZXhvbsOpcsOpX2NzZ1wiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NjsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTU2OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3OyBlbmRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxMzYtMS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBEZSBsYSBjb250cmlidXRpb24gc29jaWFsZSBzdXIgbGVzIHJldmVudXMgZCdhY3Rpdml0w6kgZXQgc3VyIGxlcyByZXZlbnVzIGRlIHJlbXBsYWNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNiA6IENvbnRyaWJ1dGlvbiBzb2NpYWxlIGfDqW7DqXJhbGlzw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTU1Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU1Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9jcmRzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInRhdXhfY3Jkc1wiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5MDsgc3RhcnRfY29sdW1uPTM5OyBlbmRfbGluZT0xOTA7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJPcmRvbm5hbmNlIG7CsCA5Ni01MCBkdSAyNCBqYW52aWVyIDE5OTYgcmVsYXRpdmUgYXUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDVcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTU1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU1NTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bCBkZXMgY29udHJpYnV0aW9ucyBzb2NpYWxlcyBzJ2FwcGxpcXVhbnQgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJtb250YW50XCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTU4OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogRGVzIGNvbnRyaWJ1dGlvbnMgcG91ciBsZSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGUuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJPcmRvbm5hbmNlIG7CsCA5Ni01MCBkdSAyNCBqYW52aWVyIDE5OTYgcmVsYXRpdmUgYXUgcmVtYm91cnNlbWVudCBkZSBsYSBkZXR0ZSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoOSkgKDEpKSkpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBvX211bHRfbW9uX3JhdCBhaWRlX2ZpbmFsZV8gdGF1eF9jcmRzXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT01NTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTU4OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU1ODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NTg7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmICh0cnkgZXhvbmVyZV9jc2dfIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Njsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Njsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBEZXMgY29udHJpYnV0aW9ucyBwb3VyIGxlIHJlbWJvdXJzZW1lbnQgZGUgbGEgZGV0dGUgc29jaWFsZS5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk9yZG9ubmFuY2UgbsKwIDk2LTUwIGR1IDI0IGphbnZpZXIgMTk5NiByZWxhdGl2ZSBhdSByZW1ib3Vyc2VtZW50IGRlIGxhIGRldHRlIHNvY2lhbGVcIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2Mzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2MzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsIGRlcyBjb250cmlidXRpb25zIHNvY2lhbGVzIHMnYXBwbGlxdWFudCBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTYzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTYzOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWwgZGVzIGNvbnRyaWJ1dGlvbnMgc29jaWFsZXMgcydhcHBsaXF1YW50IGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAge0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50ID0gbW9udGFudF99XG5cbmxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbjogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4udCkgOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4uQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIjsgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjZcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjU1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjcyMDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8gdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzYzMlwiKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NTU3XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjU1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfOiBUcmFuY2hlUmV2ZW51LnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCI7IFwidHJhbmNoZXNfcmV2ZW51c19kODMyXzI2XCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF90cmFuY2hlX3JldmVudSkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NTI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjUyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjUyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjUyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY4NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjY4NDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIFt8KHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MjMwM1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpfSk7XG4gICAgICAgICAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDc2MVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQyMzAzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyNFwiKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGUuUmV2ZW51IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjI5ODVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDc2MVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yMDhcIil9KTtcbiAgICAgICAgICAgICAgICAgICAgICAoe1RyYW5jaGVSZXZlbnUuaGF1dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5NTA1XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjI5ODVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjMyXCIpfSk7XG4gICAgICAgICAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPSAoTGltaXRlVHJhbmNoZS5JbmZpbmkgKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LmJhcyA9IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTUwNVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zMjhcIil9KXxdKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYzNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjM0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBbfCh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODEwXCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIik7XG4gICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51LnRhdXggPSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY3ODcxXCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDgxMFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMTA0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg5NjE4XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2Nzg3MVwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjE2XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM1NzQ0XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4OTYxOFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMjY0XCIpfSk7XG4gICAgICAgICAgICAgICh7VHJhbmNoZVJldmVudS5oYXV0ID1cbiAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlLlJldmVudSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzMTI5XCIpKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUuYmFzID0gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzNTc0NFwiKTtcbiAgICAgICAgICAgICAgICAgIFRyYW5jaGVSZXZlbnUudGF1eCA9IChkZWNpbWFsX29mX3N0cmluZyBcIjAuMzJcIil9KTtcbiAgICAgICAgICAgICAgKHtUcmFuY2hlUmV2ZW51LmhhdXQgPSAoTGltaXRlVHJhbmNoZS5JbmZpbmkgKCkpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS5iYXMgPSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjMzMTI5XCIpO1xuICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudS50YXV4ID0gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40OFwiKX0pfF0pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY1Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02NTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsaWVlc186IFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQgYXJyYXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCI7XG4gICAgICBcInRyYW5jaGVzX3JldmVudXNfZDgzMl8yNl9tdWx0aXBsacOpZXNcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX3RyYW5jaGVfcmV2ZW51X2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA0ODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tYXBcbiAgICAgICAgICAgICAgKGZ1biAodHJhbmNoZV86IFRyYW5jaGVSZXZlbnUudCkgLT5cbiAgICAgICAgICAgICAgICAge1RyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQgPVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnUuaGF1dClcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZS5SZXZlbnUgdHJhbmNoZV9oYXV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKG9fdG9yYXRfbW9uIHRyYW5jaGVfaGF1dF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSAoKSkpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMgPVxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X21vbiAodHJhbmNoZV8uVHJhbmNoZVJldmVudS5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCA9ICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51LnRhdXgpfSlcbiAgICAgICAgICAgICAgdHJhbmNoZXNfcmV2ZW51c19kODMyXzI2XykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjUzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY1MzsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiOyBcIm1vbnRhbnRcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY1Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA5OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDA5OTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIChsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXyA6IGRlY2ltYWwgPVxuICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXylcbiAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgKG9fdG9tb25leV9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fcmVkdWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX3JhdF9yYXQgc3VtMV8gc3VtMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuICh0cmFuY2hlXzogVHJhbmNoZVJldmVudURlY2ltYWwudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmhhdXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnUgdHJhbmNoZV9oYXV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVfaGF1dF8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5jaGVfaGF1dF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGlwbGllZXNfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA2MTsgZW5kX2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfIDogZGVjaW1hbCA9XG4gICAgICAgICAgICAgICAob190b3JhdF9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAob190b21vbmV5X3JhdFxuICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgIChvX2FkZF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAob19yZWR1Y2VcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHN1bTFfOiBkZWNpbWFsKSAoc3VtMl86IGRlY2ltYWwpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9yYXRfcmF0IHN1bTFfIHN1bTJfKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAodHJhbmNoZV86IFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuaGF1dClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTGltaXRlVHJhbmNoZURlY2ltYWwuUmV2ZW51IHRyYW5jaGVfaGF1dF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbmNoZV9oYXV0XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHRyYW5jaGVfaGF1dF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwuYmFzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhbmNoZV8uVHJhbmNoZVJldmVudURlY2ltYWwudGF1eCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC5iYXMpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFuY2hlXy5UcmFuY2hlUmV2ZW51RGVjaW1hbC50YXV4KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLmJhcykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5jaGVfLlRyYW5jaGVSZXZlbnVEZWNpbWFsLnRhdXgpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuY2hlc19yZXZlbnVzX2Q4MzJfMjZfbXVsdGlwbGllZXNfKSlcbiAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpIChkZWNpbWFsX29mX3N0cmluZyBcIjEyLlwiKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjU3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY1NzsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLm1vbnRhbnQgPSBtb250YW50X31cblxubGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luOiBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCBjb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV86IHVuaXQgLT4gYm9vbCA9IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02NjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjY1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY2NTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjY1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY2NTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCI7IFwibl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02Njc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDA5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDA5OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS41XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpKSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5MTU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjRcIilcbiAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS44XCIpKSBlbHNlXG4gICAgICAgICAgICAgICggaWYgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy5cIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIjNcIikpIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy43XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02Njc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjY3OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXRpb25fOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXRpb25cIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY2ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Njg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjY4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Njg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTU4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1NjU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDI2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDI2OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC41XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkzMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTMwOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkgZWxzZVxuICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjY4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY2ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llclwiOyBcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY3MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02NzA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTM1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5MzU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX3JhdF9yYXQgbl9ub21icmVfcGFydHNfZDgzMl8yNV9iYXNlX1xuICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1X21ham9yYXRpb25fKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02NzA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjcwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV99XG5cbmxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbjogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi50KSA6IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgbl9ub21icmVfcGFydHNfZDgzMl8xMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwibl9ub21icmVfcGFydHNfZDgzMl8xMVwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzM1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTczNTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyNTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEuNFwiKVxuICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLjhcIikpIGVsc2VcbiAgICAgICAgICAgICAgKCBpZiAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjIuNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8gKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpIHRoZW4gKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNC4zXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpKSkpKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzM1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTczNTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgPVxuICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzExX31cblxubGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW46IE91dmVydHVyZURyb2l0c1JldHJhaXRlSW4udCkgOiBPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV86IGRhdGUgPSBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luLk91dmVydHVyZURyb2l0c1JldHJhaXRlSW4uZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX2luIGluXG4gIGxldCBhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZVwiOyBcIsOiZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XCJdIChlbWJlZF9kdXJhdGlvbikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwODA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA4MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDgwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE5OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxNjEtMTctMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJOiBUaXRyZSBJSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgcmVsYXRpdmVzIGF1IGZpbmFuY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTU1KSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkdXJhdGlvbl9vZl9udW1iZXJzICg2MikgKDApICgwKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDgwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA4MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1NjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk1MSkgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoNjApICgwKSAoMCkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4MDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwODA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjY2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNjc7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDE2MS0yLTEtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgSSA6IEfDqW7DqXJhbGl0w6lzIC0gRGlzcG9zaXRpb25zIGNvbW11bmVzIMOgIHRvdXQgb3UgcGFydGllIGRlcyByw6lnaW1lcyBkZSBiYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk1MSkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk1MSkgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19hZGRfZHVyX2R1ciAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNjApICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICg0KSAoMCkpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwODA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDgwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjc2OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQxNjEtMi0xLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMiA6IE91dmVydHVyZSBkdSBkcm9pdCBldCBsaXF1aWRhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IELDqW7DqWZpY2lhaXJlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIEkgOiBHw6luw6lyYWxpdMOpcyAtIERpc3Bvc2l0aW9ucyBjb21tdW5lcyDDoCB0b3V0IG91IHBhcnRpZSBkZXMgcsOpZ2ltZXMgZGUgYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2VxIChvX2dldFllYXIgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTk1MlwiKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2FkZF9kdXJfZHVyIChkdXJhdGlvbl9vZl9udW1iZXJzICg2MCkgKDApICgwKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDkpICgwKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA4MDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwODA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkRhdGUgZCdvdXZlcnR1cmUgZGVzIGRyb2l0cyDDoCBsYSByZXRyYWl0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODU7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDE2MS0yLTEtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBBc3N1cmFuY2UgdmllaWxsZXNzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9ucyBldCBhdXggc29pbnMgLSBDb250csO0bGUgbcOpZGljYWwgLSBUdXRlbGxlIGF1eCBwcmVzdGF0aW9ucyBzb2NpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgSSA6IEfDqW7DqXJhbGl0w6lzIC0gRGlzcG9zaXRpb25zIGNvbW11bmVzIMOgIHRvdXQgb3UgcGFydGllIGRlcyByw6lnaW1lcyBkZSBiYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZXEgKG9fZ2V0WWVhciBkYXRlX25haXNzYW5jZV9hc3N1cmVfKVxuICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxOTUzXCIpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fYWRkX2R1cl9kdXIgKGR1cmF0aW9uX29mX251bWJlcnMgKDYxKSAoMCkgKDApKVxuICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgwKSAoMikgKDApKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDgwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA4MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiRGF0ZSBkJ291dmVydHVyZSBkZXMgZHJvaXRzIMOgIGxhIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5NDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEMTYxLTItMS05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJhZ3JhcGhlIDIgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDFlciA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJIDogR8OpbsOpcmFsaXTDqXMgLSBEaXNwb3NpdGlvbnMgY29tbXVuZXMgw6AgdG91dCBvdSBwYXJ0aWUgZGVzIHLDqWdpbWVzIGRlIGJhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZSAtIETDqWNyZXRzIHNpbXBsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19lcSAob19nZXRZZWFyIGRhdGVfbmFpc3NhbmNlX2Fzc3VyZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE5NTRcIikpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19hZGRfZHVyX2R1ciAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNjEpICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDApICg3KSAoMCkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDgwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwODA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJEYXRlIGQnb3V2ZXJ0dXJlIGRlcyBkcm9pdHMgw6AgbGEgcmV0cmFpdGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge091dmVydHVyZURyb2l0c1JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXQgPSBhZ2Vfb3V2ZXJ0dXJlX2Ryb2l0X31cblxubGV0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IChpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbjogSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4udCkgOiBJbXBheWVEZXBlbnNlTG9nZW1lbnQudCA9XG4gIGxldCBtb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luIGluXG4gIGxldCBhaWRlX3ZlcnNlZV86IFZlcnNlbWVudEEudCA9IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLkltcGF5ZURlcGVuc2VMb2dlbWVudEluLmFpZGVfdmVyc2VlX2luIGluXG4gIGxldCBtb250YW50X2FwbF86IG1vbmV5ID0gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4ubW9udGFudF9hcGxfaW4gaW5cbiAgbGV0IG1vbnRhbnRfY2hhcmdlc186IG1vbmV5ID0gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4ubW9udGFudF9jaGFyZ2VzX2luIGluXG4gIGxldCBkZXBlbnNlX2xvZ2VtZW50XzogRGVwZW5zZUxvZ2VtZW50LnQgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5kZXBlbnNlX2xvZ2VtZW50X2luIGluXG4gIGxldCBtb250YW50X2RldHRlXzogbW9uZXkgPSBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5JbXBheWVEZXBlbnNlTG9nZW1lbnRJbi5tb250YW50X2RldHRlX2luIGluXG4gIGxldCBtb2RlX29jY3VwYXRpb25faW1wYXllXzogTW9kZU9jY3VwYXRpb25JbXBheWUudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkltcGF5w6lEw6lwZW5zZUxvZ2VtZW50XCI7IFwibW9kZV9vY2N1cGF0aW9uX2ltcGF5w6lcIl1cbiAgICAoZW1iZWRfbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwOTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA5NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTIzNDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjM0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgIChNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciAoKSlcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAoTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCAoKSlcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgKE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgKCkpXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgIChNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciAoKSlcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgIChNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwOTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA5NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGVwZW5zZV9sb2dlbWVudF9icnV0ZV86IERlcGVuc2VMb2dlbWVudC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIjsgXCJkw6lwZW5zZV9sb2dlbWVudF9icnV0ZVwiXVxuICAgIChlbWJlZF9kZXBlbnNlX2xvZ2VtZW50KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk3OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOTc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOTc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMTI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzMTI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZXBlbnNlX2xvZ2VtZW50XykpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIxNjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZXBlbnNlX2xvZ2VtZW50XykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk3OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBkZXBlbnNlX2xvZ2VtZW50X25ldHRlXzogRGVwZW5zZUxvZ2VtZW50LnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJJbXBhecOpRMOpcGVuc2VMb2dlbWVudFwiOyBcImTDqXBlbnNlX2xvZ2VtZW50X25ldHRlXCJdXG4gICAgKGVtYmVkX2RlcGVuc2VfbG9nZW1lbnQpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwOTg7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA5ODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMjU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjI1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyB0b3RhbF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXMgdG90YWxfKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgbWVuc3VhbGl0ZV8pXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LkxveWVyIG1vbnRhbnRfbG95ZXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoRGVwZW5zZUxvZ2VtZW50LkxveWVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBtb250YW50X2xveWVyXyBtb250YW50X2FwbF8pKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDk4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA5ODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMjE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzIxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyB0b3RhbF9lY2hlYW5jZXNfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiB0b3RhbF9lY2hlYW5jZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbW9udGFudF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBtZW5zdWFsaXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBtZW5zdWFsaXRlXyBtb250YW50X2FwbF8pKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChEZXBlbnNlTG9nZW1lbnQuTG95ZXIgbG95ZXJfKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk4OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXVpbF9pbXBheWVfZGVwZW5zZV9kZV9sb2dlbWVudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIjsgXCJzZXVpbF9pbXBhecOpX2TDqXBlbnNlX2RlX2xvZ2VtZW50XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOTU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTg2OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE4NjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFpZGVfdmVyc2VlX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJhaWxsZXVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CZW5lZmljaWFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuRXRhYmxpc3NlbWVudEhhYmlsaXRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnRfYnJ1dGVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBsb3llcl9icnV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9icnV0XyBtb250YW50X2NoYXJnZXNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi5cIikpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDk1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIwMjsgc3RhcnRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMDI7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZUxveWVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhaWRlX3ZlcnNlZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CYWlsbGV1ciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CZW5lZmljaWFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBkZXBlbnNlX2xvZ2VtZW50X25ldHRlX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50LlRvdGFsQW5udWVsRWNoZWFuY2VzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgbG95ZXJfbmV0XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBsb3llcl9uZXRfIG1vbnRhbnRfY2hhcmdlc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLlwiKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwOTU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjY4OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjY4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjQtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogSW1wYXnDqXMgZGUgZMOpcGVuc2VzIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYWlkZV92ZXJzZWVfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFZlcnNlbWVudEEuQmFpbGxldXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5FdGFibGlzc2VtZW50SGFiaWxpdGUgXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggZGVwZW5zZV9sb2dlbWVudF9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyBlY2hlYW5jZV9wcmV0X2JydXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGVjaGVhbmNlX3ByZXRfYnJ1dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5NZW5zdWFsaXRlIG1lbnN1YWxpdGVfYnJ1dGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgbWVuc3VhbGl0ZV9icnV0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjIuXCIpKVxuICAgICAgICAgICAgICAgICAgICB8IERlcGVuc2VMb2dlbWVudC5Mb3llciBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDk1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJRdWFudGlmaWNhdGlvbiBkZXMgaW1wYXnDqXMgZGUgZMOpcGVuc2UgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI5Njsgc3RhcnRfY29sdW1uPTc7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI5NjsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNldWlscyBkZSBjb25zdGl0dXRpb24gZCd1biBpbXBhecOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IEltcGF5w6lzIGRlIGTDqXBlbnNlcyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVQcmV0IF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGFpZGVfdmVyc2VlX1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkJhaWxsZXVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVmVyc2VtZW50QS5CZW5lZmljaWFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBWZXJzZW1lbnRBLkV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnRfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuVG90YWxBbm51ZWxFY2hlYW5jZXMgZWNoZWFuY2VfcHJldF9uZXR0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBlY2hlYW5jZV9wcmV0X25ldHRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTWVuc3VhbGl0ZSBtZW5zdWFsaXRlX25ldHRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IG1lbnN1YWxpdGVfbmV0dGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLlwiKSlcbiAgICAgICAgICAgICAgICAgICAgfCBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDk1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ltcGF5ZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiSW1wYXnDqUTDqXBlbnNlTG9nZW1lbnRcIjsgXCJtb250YW50X2ltcGF5w6lcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTAwOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMDA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMDA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMDA7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUXVhbnRpZmljYXRpb24gZGVzIGltcGF5w6lzIGRlIGTDqXBlbnNlIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNDQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNDQ7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODI0LTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2V1aWxzIGRlIGNvbnN0aXR1dGlvbiBkJ3VuIGltcGF5w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9pbXBheWVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllUHJldCBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gbW9udGFudF9kZXR0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZW50XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9kZXR0ZV8gZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE4MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxODE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyNC0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZXVpbHMgZGUgY29uc3RpdHV0aW9uIGQndW4gaW1wYXnDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBJbXBhecOpcyBkZSBkw6lwZW5zZXMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9cbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb25JbXBheWUuSW1wYXllTG95ZXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vbiBtb250YW50X2RldHRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHNldWlsX2ltcGF5ZV9kZXBlbnNlX2RlX2xvZ2VtZW50XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZGV0dGVfIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMDA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEwMDsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlF1YW50aWZpY2F0aW9uIGRlcyBpbXBhecOpcyBkZSBkw6lwZW5zZSBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7SW1wYXllRGVwZW5zZUxvZ2VtZW50Lm1vbnRhbnRfaW1wYXllID0gbW9udGFudF9pbXBheWVffVxuXG5sZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyAoYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbjogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQpIDogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbi5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgbW9udGFudF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiOyBcIm1vbnRhbnRcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjsgZW5kX2NvbHVtbj0xOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9iYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzL2JtYWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJJbnN0cnVjdGlvbiBtaW5pc3TDqXJpZWxsZSBOwrBEU1MvU0QyQi8yMDE5LzY1IGR1IDI1IG1hcnMgMjAxOSByZWxhdGl2ZSDDoCBsYSByZXZhbG9yaXNhdGlvbiBhdSAxZXIgYXZyaWwgMjAxOSBkZXMgcHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBzZXJ2aWVzIGVuIG3DqXRyb3BvbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDEzMTZcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBubyBEU1MvU0QyQi8yMDIwLzMzIGR1IDE4IGbDqXZyaWVyIDIwMjAgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjAgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIExhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0NDBcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02OTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrBEU1MvMkIvMjAyMS82NSBkdSAxOSBtYXJzIDIwMjEgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjEgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0ODFcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiSW5zdHJ1Y3Rpb24gaW50ZXJtaW5pc3TDqXJpZWxsZSBuwrBEU1MvMkIvMjAyMi84MiBkdSAyOCBtYXJzIDIwMjIgcmVsYXRpdmUgw6AgbGEgcmV2YWxvcmlzYXRpb24gYXUgMWVyIGF2cmlsIDIwMjIgZGVzIHByZXN0YXRpb25zIGZhbWlsaWFsZXMgc2VydmllcyBlbiBtw6l0cm9wb2xlLCBlbiBHdWFkZWxvdXBlLCBlbiBHdXlhbmUsIGVuIE1hcnRpbmlxdWUsIMOgIGxhIFLDqXVuaW9uLCDDoCBTYWludC1CYXJ0aMOpbGVteSwgw6AgU2FpbnQtTWFydGluIGV0IGRhbnMgbGUgZMOpcGFydGVtZW50IGRlIE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMjI4XCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJNb250YW50IGRlIGxhIGJhc2UgbWVuc3VlbGxlIGRlcyBhbGxvY2F0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDQpICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcy9ibWFmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiTW9udGFudCBkZSBsYSBiYXNlIG1lbnN1ZWxsZSBkZXMgYWxsb2NhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL2Jhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMvYm1hZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIk1vbnRhbnQgZGUgbGEgYmFzZSBtZW5zdWVsbGUgZGVzIGFsbG9jYXRpb25zIGZhbWlsaWFsZXNcIl19KSBpblxuICB7QmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy5tb250YW50ID0gbW9udGFudF99XG5cbmxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbjogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLnQpIDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50ID1cbiAgbGV0IGRhdGVfbmFpc3NhbmNlXzogZGF0ZSA9IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uZGF0ZV9uYWlzc2FuY2VfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLlZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEFJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBhbm5lZXNfOiBkdXJhdGlvbiA9IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbi5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4uYW5uZWVzX2luIGluXG4gIGxldCBlc3RfaW5mZXJpZXVyX291X2VnYWxfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VJbmbDqXJpZXVyT3XDiWdhbMOAXCI7IFwiZXN0X2luZsOpcmlldXJfb3Vfw6lnYWxcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MjI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MjI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19IChcbiAgICAgICAgIFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy8uLi9wcm9sb2d1ZV9mcmFuY2UvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2x0ZV9kYXRfZGF0IChvX2FkZF9kYXRfZHVyIFJvdW5kVXAgZGF0ZV9uYWlzc2FuY2VfIGFubmVlc18pXG4gICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvLi4vcHJvbG9ndWVfZnJhbmNlL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTIyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTIyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAge1ZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgZXN0X2luZmVyaWV1cl9vdV9lZ2FsX31cblxubGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW46IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi50KSA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCA9XG4gIGxldCBkYXRlX25haXNzYW5jZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX25haXNzYW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLlZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBhbm5lZXNfOiBkdXJhdGlvbiA9IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbiBpblxuICBsZXQgZXN0X3N1cGVyaWV1cl86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiOyBcImVzdF9zdXDDqXJpZXVyXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0gKFxuICAgICAgICAgW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNjsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZ3RfZGF0X2RhdCAob19hZGRfZGF0X2R1ciBSb3VuZFVwIGRhdGVfbmFpc3NhbmNlXyBhbm5lZXNfKVxuICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljLy4uL3Byb2xvZ3VlX2ZyYW5jZS9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7IFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSkpIGluXG4gIHtWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIgPSBlc3Rfc3VwZXJpZXVyX31cblxubGV0IHNtaWMgKHNtaWNfaW46IFNtaWNJbi50KSA6IFNtaWMudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHNtaWNfaW4uU21pY0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gc21pY19pbi5TbWljSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBicnV0X2hvcmFpcmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlNtaWNcIjsgXCJicnV0X2hvcmFpcmVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOC0xMTczIGR1IDE5IGTDqWNlbWJyZSAyMDE4IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAwM1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU0OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOC0xMTczIGR1IDE5IGTDqWNlbWJyZSAyMDE4IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc1N1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTgyOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOS0xMzg3IGR1IDE4IGTDqWNlbWJyZSAyMDE5IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAxNVwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkzOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAxOS0xMzg3IGR1IDE4IGTDqWNlbWJyZSAyMDE5IHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc2NlwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjE7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljcmV0IG7CsCAyMDIwLTE1OTggZHUgMTYgZMOpY2VtYnJlIDIwMjAgcG9ydGFudCByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDI1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMjsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjAtMTU5OCBkdSAxNiBkw6ljZW1icmUgMjAyMCBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NzRcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYwOyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzQxIGR1IDIyIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg0KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDU3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3MjsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjEtMTc0MSBkdSAyMiBkw6ljZW1icmUgMjAyMSBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNCkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc5OFwiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAxOSBhdnJpbCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1eWFuZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDg1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxMTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDE5IGF2cmlsIDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg1KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MTlcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM5OyBlbmRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgcmVsw6h2ZW1lbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoOCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTEwN1wiKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLy4uL3NtaWMvc21pYy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTA7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSByZWzDqHZlbWVudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg4KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1heW90dGUgKCkpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODM1XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3OTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjItMTYwOCBkdSAyMiBkw6ljZW1icmUgMjAyMiBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5HdXlhbmUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5MYVJldW5pb24gKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15ICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50TWFydGluICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTI3XCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19XG4gICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MDsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNyZXQgbsKwIDIwMjItMTYwOCBkdSAyMiBkw6ljZW1icmUgMjAyMiBwb3J0YW50IHJlbMOodmVtZW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV8gKENvbGxlY3Rpdml0ZS5NYXlvdHRlICgpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODUxXCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExOyBlbmRfY29sdW1uPTI0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjsgXCJNb250YW50IGR1IHNhbGFpcmUgbWluaW11bSBkZSBjcm9pc3NhbmNlXCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy8uLi9zbWljL3NtaWMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTW9udGFudCBkdSBzYWxhaXJlIG1pbmltdW0gZGUgY3JvaXNzYW5jZVwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvLi4vc21pYy9zbWljLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnQgZHUgc2FsYWlyZSBtaW5pbXVtIGRlIGNyb2lzc2FuY2VcIl19KSBpblxuICB7U21pYy5icnV0X2hvcmFpcmUgPSBicnV0X2hvcmFpcmVffVxuXG5sZXQgYXJyb25kaV9jZW50YWluZV9zdXBlcmlldXJlXyA6IG1vbmV5IC0+IG1vbmV5ID1cbiAgZnVuIChyZXNzb3VyY2VzX21lbmFnZV86IG1vbmV5KSAtPlxuICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAob19yb3VuZF9tb25cbiAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcmVzc291cmNlc19tZW5hZ2VfIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDFcIikpXG4gICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDlcIikpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpXG5cbmxldCB0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzXyA6IG1vbmV5IC0+IG1vbmV5ID1cbiAgZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCJcblxubGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnQpIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gIGxldCBsb3llcl9wcmluY2lwYWxfYmFzZV86IG1vbmV5ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfOiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gaW5cbiAgbGV0IGxvZ2VtZW50X2VzdF9jaGFtYnJlXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luIGluXG4gIGxldCBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc186IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiBpblxuICBsZXQgdHlwZV9haWRlXzogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luIGluXG4gIGxldCBjb2xvY2F0aW9uXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gaW5cbiAgbGV0IHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiBpblxuICBsZXQgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl86IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgZnJhY3Rpb25fbDgzMl8zXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImZyYWN0aW9uX2w4MzJfM1wiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5NzsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xODg5OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk4XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTc7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlcy5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02Mjk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NjI5OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT02Mjk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjAwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI4NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yODU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYwMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDA7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA1OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDU7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTg4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxODg7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEwNjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEwNjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzU7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNTsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18xNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAxOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI5ODsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggdHlwZV9haWRlX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICB8IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTAwMFwiKVxuICAgICAgICAgICAgfCBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgXyAtPlxuICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAxOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJsb3llcl9wcmluY2lwYWxfYXZlY19yw6lkdWN0aW9uX21ldWJsw6lcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTc0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTU3NDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI1Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjU3OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGxvZ2VtZW50X21ldWJsZV9kODQyXzJfIHRoZW5cbiAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGxveWVyX3ByaW5jaXBhbF9iYXNlX1xuICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLlwiKVxuICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLlwiKSkpIGVsc2UgbG95ZXJfcHJpbmNpcGFsX2Jhc2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01NzQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTc0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcInRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1MTA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUxNzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjdcIikpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYwNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2MTI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTYyXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwNjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwNzU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyOTlcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIxN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5OTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAwMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDI5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg4MTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg4ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjE3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNjJcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4NTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjk5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE5NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTYyXCIpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjUxOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI1MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAzMTVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY4OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNjg7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMzE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYwOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjA7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMzE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxODVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDE3OVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMTczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDAwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSkpKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjEyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3IwXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzg3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM5NTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yODUxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODU5OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3ODg7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY2Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY3MDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NjsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjQyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Mjk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01Mjk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDgyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjA3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNzsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2xveWVyX3JlZmVyZW5jZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9sb3llcl9yw6lmw6lyZW5jZVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM2NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNzM7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgzMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgzODsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc1OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzY3OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDg7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDY7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzMyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMzMjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjUyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTI7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA2OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzA4OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3NzM7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2OTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcwMzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI1LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTgzOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjUuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNS5cIikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzOTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM5NzsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDc4OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzMTk7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk5NTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05OTU7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyNTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwNDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDQ4OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJWCA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTkzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkyNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTkzMzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgxMDsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODE3OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5OTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzAwNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU0MTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTg4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjgwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjEyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzNDc7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzQ3OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDIyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0MjY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDI2OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTM5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc19kODIzXzE2XykpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc3OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM4NDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJWCA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzOTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk2OVwiKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODUyOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODU5OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTczNTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc0MjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5MjQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTMxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzMlwiKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDYwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ2NzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkyOVwiKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYwOTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzk7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzX2Q4MjNfMTZfKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwOTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExMDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTExMDsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjA5OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDk7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTkyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTkyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfZDgyM18xNl8pKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjA5OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZm9yZmFpdGFpcmVfZDgyM18xN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZm9yZmFpdGFpcmVfZDgyM18xN1wiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNDA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM0ODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElYIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MTgxMDBcIikpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYwMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NjAzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MjcyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzU1MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkwMDgwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkyMTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk1NjMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk5MTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMDI3MTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMDYyNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwNjI2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjExOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxOTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgwNTEwMFwiKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDYxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ4NzAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2OTc3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODMyMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODUwOTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODgzNDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTE2MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk0ODgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjk4MTYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5ODE2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcxNDsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjIgLSBBcnLDqnTDqSBkdSAyMCBkw6ljZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMiBOT1IgOiBMT0dMMjEzNDQ3N0FcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzc0MjAwXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxODQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE5MzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDAxIGphbnZpZXIgMjAyMSAtIEFycsOqdMOpIGR1IDMxIGTDqWNlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIxIE5PUiA6IExPR0wyMDI4MzUxQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyNzQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2MTIyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjk5MDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzQzMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzg1NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODI4MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg3MTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkxMzkwMFwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MDI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0Mzk7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc1ODQwMFwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg5NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MDI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzU4NDAwXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODI0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI3NTg0MDBcIikpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzY5Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzAyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5NjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjczMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjM5NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjg0OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzM4NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNzkzNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0ODQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkwMzIwMFwiKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjAyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg2OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ5NDkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI3MDkwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODQ1NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODY0NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiODk3NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTMxMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY0MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk5NzUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTk3NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcjBfKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEyKSAoMzEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDg3MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY5NzcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MzIyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NTA5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4ODM0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MTYzMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NDg4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTgxNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5ODE2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMF8pKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTMzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MzM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDY4MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjY3MDkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MDAyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4MTkyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NDk1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4ODExMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MTI0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTQzOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NDM5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9yMF8pKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI0Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzI0NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqYW52aWVyIDIwMjAgLSBBcnLDqnTDqSBkdSAzIGphbnZpZXIgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IHBvdXIgbCdhbm7DqWUgMjAyMCBOT1IgOiBMT0dMMTkzNDAwNkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0NTg4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjU3MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjc4MzkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgwMTUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjgzMjIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg2MzEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg5MzgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5MjQ2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkyNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGxveWVyX3JlZmVyZW5jZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwibG95ZXJfcsOpZsOpcmVuY2VcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk2OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2ODg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI5MTBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcwMzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2xveWVyX3JlZmVyZW5jZV8pKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjU1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU5NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTc5N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTc4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTIwOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXykpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjMzNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzMzU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU4NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTY2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTYzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTE4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fbG95ZXJfcmVmZXJlbmNlXykpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk2OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJwbGFmb25kX2xveWVyX2Q4MjNfMTZfMlwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTQ2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU0NzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzEzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTY1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg5MDBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjc5MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDY4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyOTExXCIpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NjQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTY0OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTUzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1NzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3Nzc0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU2ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMwMjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjM1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDg0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgyNjFcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjk2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzODQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIxMzZcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzMjM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyMzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA0NzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjgzNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzc5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzODA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9jYXRpb25fKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMjYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0MDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODE4NVwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM4ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzg5OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvY2F0aW9uXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjg0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzNzQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIwNDRcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI0MDE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQwMTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb2NhdGlvbl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMzQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQwM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY3MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODkwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDcxN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk4OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzEzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDE2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODkwMFwiKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA2OTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIzNTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk0ODRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgyNjFcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE1MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNTE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDhcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc18pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTQwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODE4NVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTkxOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjc3NjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjQxOThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjI2ODBcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDYyOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY4MjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMzODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5MTNcIikpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE0NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTQ0OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmVfKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2NzE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzMjgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxODIxXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTA7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA4NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjg4N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MjAwXCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE3OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcyMDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjkxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTQ4XCIpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjEwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMDUyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjEwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcwMzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MzkwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDI1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5MDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3NzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5ODA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU5NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDM0OFwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTg2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk4NzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE3OTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTUxNVwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDAwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNjMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTg5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU3ODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjA4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzA5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA1OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDYwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU4NTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI0NlwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA2OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDcwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1Nzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE2NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTM5MlwiKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjEwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA4Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDgzOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDQ2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU4NzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9wbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NjMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTE4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI5NTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NzIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYxMDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTA7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwicGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjY5OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI0LlwiKSlcbiAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMy4xXCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIzLjFcIikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJwbGFmb25kX2TDqWdyZXNzaXZpdMOpX2Q4MjNfMTZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5ODsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yX1xuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjMuNFwiKSlcbiAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcGxhZm9uZF9sb3llcl9kODIzXzE2XzJfXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi41XCIpKVxuICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIyLjVcIikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk4OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGxveWVyX2VsaWdpYmxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJsb3llcl/DqWxpZ2libGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTkxOyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzkwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE3OTA7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndF9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgIHBsYWZvbmRfbG95ZXJfZDgyM18xNl8yXykgdGhlbiBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl8gZWxzZVxuICAgICAgICAgICAgICBsb3llcl9wcmluY2lwYWxfYXZlY19yZWR1Y3Rpb25fbWV1YmxlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU5MTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludWVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludcOpXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMjsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyMjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjIyOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODM5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4Mzk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTE2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc18pKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGFpZGVfZmluYWxlXykpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgyNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4MjU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9hdmVjX3JlZHVjdGlvbl9tZXVibGVfXG4gICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9zdXBwcmVzc2lvbl9kODIzXzE2XykgdGhlblxuICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBsb3llcl9wcmluY2lwYWxfYXZlY19yZWR1Y3Rpb25fbWV1YmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3llcl9wcmluY2lwYWxfYXZlY19yZWR1Y3Rpb25fbWV1YmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIHBsYWZvbmRfc3VwcHJlc3Npb25fZDgyM18xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2RlZ3Jlc3Npdml0ZV9kODIzXzE2XykpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIGFpZGVfZmluYWxlXykpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMjsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyMjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjI7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGFydGljaXBhdGlvbl9taW5pbWFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwicGFydGljaXBhdGlvbl9taW5pbWFsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDEzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjYzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NjNcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjExOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjExOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTI0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTEyNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4NVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUzOVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjA4NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTM5XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYxMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIwNjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyMDY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDg1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjRcIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02MTE7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcmFwcG9ydF9sb3llcnNfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwicmFwcG9ydF9sb3llcnNcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI4MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjgxOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2Rpdl9tb25fbW9uIGxveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3llcl9yZWZlcmVuY2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb24gbG95ZXJfZWxpZ2libGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3llcl9yZWZlcmVuY2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzkwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiBsb3llcl9lbGlnaWJsZV8gbG95ZXJfcmVmZXJlbmNlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyMzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjM7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg0OTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NDk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludcOpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RpbWludcOpXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kaW1pbnVlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGltaW51w6lcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgyM18xNl8pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyMzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyMzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjM7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9sb3llcl9lbGlnaWJsZV9mb3JtdWxlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0YXV4X2xveWVyX8OpbGlnaWJsZV9mb3JtdWxlXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTkzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTU5MzsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkzOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkzOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTM7IGVuZF9jb2x1bW49MTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTkzOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5MzsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzA1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIzMDU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40NVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNDVcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyNTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyNTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNDVcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA0NVwiKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9yYXRfcmF0IHJhcHBvcnRfbG95ZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjNcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbHRfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjQ1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgcmFwcG9ydF9sb3llcnNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMDQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4zXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdCByYXBwb3J0X2xveWVyc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTkzOyBlbmRfY29sdW1uPTE3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl0gKHVuZW1iZWRkYWJsZSlcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg2Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NjY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgY3Jkc18gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwXCIpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTYyNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MjQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRhdXhfbG95ZXJfZWxpZ2libGVfdGF1eF9hcnJvbmRpXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0YXV4X2xveWVyX8OpbGlnaWJsZV90YXV4X2Fycm9uZGlcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTk0OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTQ7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTQ7IGVuZF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTQ7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5NDsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTQ7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk0OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIzMTI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjMxMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2xveWVyX2VsaWdpYmxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAwMDAuXCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzMjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIzMjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IHRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMDAwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwMDAwLlwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogQ2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IHRhdXhfbG95ZXJfZWxpZ2libGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAwMDAuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAwMDAuXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NTk0OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MjU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg0NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg0NDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCByZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhY3Rpb25fbDgzMl8zXykpIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZyYWN0aW9uX2w4MzJfM18pKSBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTYyNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTYyNTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjU7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdGF1eF9wcmlzZV9jb21wdGVfcmVzc291cmNlc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwidGF1eF9wcmlzZV9jb21wdGVfcmVzc291cmNlc1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTYwMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02MDM7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTk0OTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfcmF0X3JhdCB0YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgICAgdGF1eF9sb3llcl9lbGlnaWJsZV90YXV4X2Fycm9uZGlfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjAzOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MjY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI2OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTg7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODk4OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yw6lkdWN0aW9uX2xveWVyX3NvbGlkYXJpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3LDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X21pbmltYWxfYWlkZV9kODIzXzE2XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTYyNjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT02MjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MjY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NjI2OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcInBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MTM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEzOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTE1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5MTU7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgcGFydGljaXBhdGlvbl9yZXNzb3VyY2VzXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgYWJhdHRlbWVudF9mb3JmYWl0YWlyZV9kODIzXzE3XylcbiAgICAgICAgICAgICAgICAgIHRhdXhfcHJpc2VfY29tcHRlX3Jlc3NvdXJjZXNfKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChsZXQgcGFydGljaXBhdGlvbl9yZXNzb3VyY2VzXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gcGFydGljaXBhdGlvbl9yZXNzb3VyY2VzX1xuICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2UgcGFydGljaXBhdGlvbl9yZXNzb3VyY2VzXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAob19hZGRfbW9uX21vbiBwYXJ0aWNpcGF0aW9uX21pbmltYWxlXyBwYXJ0aWNpcGF0aW9uX3Jlc3NvdXJjZXNfKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02MTM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjEzOyBlbmRfY29sdW1uPTM3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02MTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NjE4OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzcyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE3NzI7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGxveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZfKVxuICAgICAgICAgICAgICAgICAgcGFydGljaXBhdGlvbl9wZXJzb25uZWxsZV8pXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjE4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTYxODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIHBsYWZvbmRfZGVncmVzc2l2aXRlX2Q4MjNfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi41XCIpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg0Mjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NDI7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg0Mjsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4NDI7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBDYWxjdWwgZGUgbCdhaWRlIGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXQgZnJhY3Rpb25fbDgzMl8zX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIikpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9yYXRfcmF0IGZyYWN0aW9uX2w4MzJfM19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45OFwiKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg1NDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg1NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NTQ7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04NTQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeSAob19ub3QgKG9fYW5kIGxvZ2VtZW50X2VzdF9jaGFtYnJlXyBjb2xvY2F0aW9uXykpIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDA7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDA7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzM7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjMzOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjMzOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MzI7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MzI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjMyOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjMyOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTYgPVxuICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNl87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yID1cbiAgICAgICBwbGFmb25kX2xveWVyX2Q4MjNfMTZfMl87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fbWluaW1hbGUgPVxuICAgICAgIHBhcnRpY2lwYXRpb25fbWluaW1hbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSA9XG4gICAgICAgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5wYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlID1cbiAgICAgICBwYXJ0aWNpcGF0aW9uX3BlcnNvbm5lbGxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW46IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPVxuICBsZXQgdHlwZV9sb2dlbWVudF9mb3llcl86IFR5cGVMb2dlbWVudEZveWVyLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW4gaW5cbiAgbGV0IGRhdGVfY29udmVudGlvbm5lbWVudF86IGRhdGUgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uem9uZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlZGV2YW5jZV86IG1vbmV5ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl8yX2R1XzgzMl8yNV86IHVuaXQgLT4gYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luIGluXG4gIGxldCBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogdW5pdCAtPiBib29sID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogdW5pdCAtPiBkZWNpbWFsID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luIGluXG4gIGxldCBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwibGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02ODQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NDsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4NDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY4NDsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njg0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NDsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT4gY29uZGl0aW9uXzJfZHVfODMyXzI1XyAoKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4NDk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODQ5OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgbWF0Y2ggdHlwZV9sb2dlbWVudF9mb3llcl9cbiAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICB8IFR5cGVMb2dlbWVudEZveWVyLkxvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgIHwgVHlwZUxvZ2VtZW50Rm95ZXIuUmVzaWRlbmNlU29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvbnZlbnRpb25uZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICB8IFR5cGVMb2dlbWVudEZveWVyLkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY29udmVudGlvbm5lbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTApICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgfCBUeXBlTG9nZW1lbnRGb3llci5BdXRyZSBfIC0+IGZhbHNlKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NjgzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXMuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03MjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NzIwOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTcyMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcyMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiY29udHJpYnV0aW9uc19zb2NpYWxlc1wiO1xuICAgICAgXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODIzXzI0XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwibW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18yNFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTgxOyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTc7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU2OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTY5OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJwbGFmb25kX8OpcXVpdmFsZW5jZV9sb3llcl/DqWxpZ2libGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY5MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY5MDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI1MTQ7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTE0OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ2MTkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MTUyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU3NzQxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNjE3OTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI2NTg2MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjcxMDM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3MzY4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyMjQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ5Mjk5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUyNTY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYyNjhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1OTk1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYzODg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2NjU5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMDk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ2NjM0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ5NDc1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTI3NDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NjAwNFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5Njc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY5MDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NDk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDQ5OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDQ2MzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTIzMjFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTU3ODhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1OTcwNFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjYzNjM1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjg2MzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjcxMTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA4MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDc2MzJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTA3ODdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDM2NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU3OTI5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE3MjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY0MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg3NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDUwNTdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDc4MDJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDk1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MTEwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTc2NTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5NzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkwOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjkwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjUyOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI1Mjk7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDQ0NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTIxMDFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTU1NTVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1OTQ1NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjYzMzY5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjgzNTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjcwODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA2NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDc0MzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTA1NzVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDEzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU3Njg3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjE0NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY0MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg1NzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDQ4NjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDc2MDJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDc0NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzODg0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTc0MTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU5NDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5MDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02OTA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3JfZDgzMl8yNV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiOyBcImNvZWZmaWNpZW50X3JfZDgzMl8yNVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjU5Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNTk2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjE3MjZcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njg3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4NzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5jb25kaXRpb25fMl9kdV84MzJfMjVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5NDM7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NDM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0MzsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5NDM7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zOTM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5Mzk7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Mzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzkzOTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzkzOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTM5OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM5NDE7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk0MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQxOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0NTsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zOTQ1OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5NDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzk0NTsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfw6BfY2hhcmdlXCJdXG4gICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1Nzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTc5OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTU4MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1ODE7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX25vbWJyZV9wYXJ0c1wiO1xuICAgICAgXCJDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llclwiXSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIpXG4gICAgKHtDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfcmVzaWRlbmNlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX30pKSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gcmVzdWx0Xy5DYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1IGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjdcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Njk2OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI3NTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mjc1NDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZiBjb25kaXRpb25fMl9kdV84MzJfMjVfIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1MDBcIilcbiAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY2OFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Njk2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5NjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTY4Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT02ODY7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNjA3OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8gdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE0MjA5MVwiKVxuICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzM5MzQwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg2OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc4Mjsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3ODI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yNF8pIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9mb3JmYWl0YWlyZV9kODMyXzI0XylcbiAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTcxNDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTQ7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzE0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCLDqXF1aXZhbGVuY2VfbG95ZXJfw6lsaWdpYmxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njg5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY4OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3NTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc1NjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIHJlZGV2YW5jZV8gcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV8pXG4gICAgICAgICAgICAgIHRoZW4gcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV8gZWxzZSByZWRldmFuY2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02ODk7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njg5OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBuX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJuX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT02ODg7IHN0YXJ0X2NvbHVtbj0yMTsgZW5kX2xpbmU9Njg4OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfICgpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Njg4OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTY4ODsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0Njsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NDY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY4ODsgc3RhcnRfY29sdW1uPTIxOyBlbmRfbGluZT02ODg7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN186IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjkzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTY5MzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE0Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNDc7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX3N1Yl9tb25fbW9uIGVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02OTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjkzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTM7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03MjE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NzIxOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTcyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03MjE7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM3NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc3Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcyOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM3NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM3NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MDsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzcwOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gY29uZGl0aW9uXzJfZHVfODMyXzI1XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM3NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3MDsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAgIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc3NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNzc0OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzc0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3NzQ7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM3NzQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc3NDsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfZm9ybXVsZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2Zvcm11bGVcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03MDc7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzA3OyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzA3OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzA3OyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU5OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fMl9kdV84MzJfMjVfKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgb19zdWJfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAob19kaXZfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODY0OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAobGV0IGRlbm9taW5hdGV1cl8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfcl9kODMyXzI1X1xuICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChsZXQgZGVub21pbmF0ZXVyXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBkZW5vbWluYXRldXJfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGRlbm9taW5hdGV1cl8pXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXQgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45NVwiKVxuICAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb24gZGVub21pbmF0ZXVyX1xuICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfXG4gICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1XykpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MDc7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzA3OyBlbmRfY29sdW1uPTE3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN186IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT02OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjkxOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTUxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDE1MTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCJdXG4gICAgICAgICAgICAgICAgICAgIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN18pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8yN1wiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiBkZXBlbnNlX25ldHRlX21pbmltYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMjdfKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8yN19cbiAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT02OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NjkxOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTY5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT02OTE7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Njk4OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTY5ODsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM3Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzc2ODsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT02OTg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9Njk4OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfY29lZmZfYXJyb25kaVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcwODsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDg7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MDg7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MDg7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NzY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NzY7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX2Rpdl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM4ODU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Mzg4NTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAob19yb3VuZF9yYXRcbiAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDA1XCIpKVxuICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMDAuXCIpKSkgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzA4OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcwODsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcxNTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTU7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3OTY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzk2OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzI3XylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMjdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gYWlkZV9maW5hbGVfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIGFpZGVfZmluYWxlXyBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTcxNTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTU7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzE1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNTsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfc2V1aWxfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbFwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcwOTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDk7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MDk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MDk7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODI7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X2NvZWZmX2Fycm9uZGlfXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9jb2VmZl9hcnJvbmRpXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzg4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODg4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1TZWN0aW9uIDIgOiBDb25kaXRpb25zIGQnb2N0cm9pIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBhdXggcGVyc29ubmVzIHLDqXNpZGFudCBkYW5zIHVuIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RlX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfY29lZmZfYXJyb25kaV9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC45NVwiKSkgdGhlbiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpXG4gICAgICAgICAgICAgIGVsc2UgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjVfY29lZmZfYXJyb25kaV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcwOTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MDk7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODEwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzgxMDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfYWJhdHRlbWVudFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBjcmRzXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfbW9udGFudF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAob19yb3VuZF9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTBcIikpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzE2OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTcxNjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE2OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTcxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03MTE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzM1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM3MzU7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLVNlY3Rpb24gMiA6IENvbmRpdGlvbnMgZCdvY3Ryb2kgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGF1eCBwZXJzb25uZXMgcsOpc2lkYW50IGRhbnMgdW4gbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBlcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgIGVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXylcbiAgICAgICAgICAgIGluXG4gICAgICAgICAgICAoIGlmIChvX2x0X21vbl9tb24gYWlkZV9maW5hbGVfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03MTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzExOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTcxNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MzE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zODMxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAyIDogQ29uZGl0aW9ucyBkJ29jdHJvaSBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgYXV4IHBlcnNvbm5lcyByw6lzaWRhbnQgZGFucyB1biBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDgyM18yNF8pXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03MTc7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzE3OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTcxNzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03MTc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzI1OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjU7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MjU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUgPVxuICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSA9XG4gICAgICAgY29lZmZpY2llbnRfcl9kODMyXzI1XztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgPVxuICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgIGVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgIHBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgPVxuICAgICAgIGVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1ID1cbiAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlXztcbiAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsX31cblxubGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICBsZXQgbWVuc3VhbGl0ZV9wcmluY2lwYWxlXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF86IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUudCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luIGluXG4gIGxldCBkYXRlX3NpZ25hdHVyZV9wcmV0XzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9zaWduYXR1cmVfcHJldF9pbiBpblxuICBsZXQgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlXzogYm9vbCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luIGluXG4gIGxldCBkYXRlX2VudHJlZV9sb2dlbWVudF86IGRhdGUgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luIGluXG4gIGxldCBjb3Byb3ByaWV0ZV86IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNvcHJvcHJpZXRlX2luIGluXG4gIGxldCBzaXR1YXRpb25fcjgyMl8xMV8xM18xN186IGJvb2wgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnpvbmVfaW4gaW5cbiAgbGV0IHR5cGVfcHJldF86IFR5cGVQcmV0LnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfcHJldF9pbiBpblxuICBsZXQgYW5jaWVubmV0ZV9sb2dlbWVudF86IE5ldWZPdUFuY2llbi50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5hbmNpZW5uZXRlX2xvZ2VtZW50X2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgdGF1eF9mcmFuY3NfdmVyc19ldXJvc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03ODE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzgxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hdXRyZXNfc291cmNlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI3OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBwcmVtaWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUsOoZ2xlbWVudCAoQ0UpIG7CsDI4NjYvOTggZHUgY29uc2VpbCBkdSAzMSBkw6ljZW1icmUgMTk5OCBjb25jZXJuYW50IGxlcyB0YXV4IGRlIGNvbnZlcnNpb24gZW50cmUgbCdldXJvIGV0IGxlcyBtb25uYWllcyBkZXMgw4l0YXRzIG1lbWJyZXMgYWRvcHRhbnQgbCdldXJvXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19kaXZfcmF0X3JhdCAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxLlwiKVxuICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LjU1OTU3XCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03ODE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzgxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMyODA7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzI4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgwOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyODA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI4MDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzI4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjgyOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI4MjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyODI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI4MjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7IFwiQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9ub21icmVfcGFydHNcIjsgXCJDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByacOpdMOpXCJdXG4gICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxffSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8xMV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5ODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTc5ODsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc5ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03OTg7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCB0YXV4X3RyYW5jaGVfc3VwZXJpZXVyZV9kODMyXzE1XzFfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0YXV4X3RyYW5jaGVfc3Vww6lyaWV1cmVfZDgzMl8xNV8xXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzgwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc4MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yNDA3OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC40MTZcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzgwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc4MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRhdXhfdHJhbmNoZV9pbmbDqXJpZXVyZV9kODMyXzE1XzFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Nzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjIwOFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03Nzk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03Nzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Nzc4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDA1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTI0MDU7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDIzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYwMDg1XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Nzg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE4XzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xOFwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Nzc7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI0ODU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjQ4NTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjE2LjI1XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Nzc7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzExXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTFcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM4OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzg5OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMTExMzNcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTdfM186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMTdfM1wiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc3NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzU7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI0NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjQ2NjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTgpICgxMCkgKDEpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuMDIyNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM0XCIpKVxuICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIGFtZWxpb3JlX3Bhcl9vY2N1cGFudF8gLT5cbiAgICAgICAgICAgICAgICAobWF0Y2ggYW1lbGlvcmVfcGFyX29jY3VwYW50X1xuICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgIHwgQW1lbGlvcmVQYXJPY2N1cGFudC5PdWkgXyAtPiAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAxNzJcIilcbiAgICAgICAgICAgICAgICAgfCBBbWVsaW9yZVBhck9jY3VwYW50Lk5vbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDEwKSAoMSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAyMjZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM0XCIpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzU7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODMyXzEwXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4MzJfMTBcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzc0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM3OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzc5OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzc0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3NDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMF86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzczOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM2Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzY3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NzM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzczOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MzJfMTBfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MzJfMTBcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDM4OyBzdGFydF9jb2x1bW49NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0Mzg7IGVuZF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAyNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyNzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSk7XG4gICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NzI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0MTQ7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQxNDsgZW5kX2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3MTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ5NDsgc3RhcnRfY29sdW1uPTc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNDk0OyBlbmRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTM5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjM1NTsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjM1NTsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU2MTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTI3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM4MDsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM4MDsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjU0MjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc3MjsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQ2MDsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjQ2MDsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NzI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfOiBkYXRlIC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZGF0ZV9zaWduYXR1cmVfcHJldF86IGRhdGUpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODI3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODQyOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIGFtZWxpb3JlX3Bhcl9vY2N1cGFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtZWxpb3JlX3Bhcl9vY2N1cGFudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQW1lbGlvcmVQYXJPY2N1cGFudC5PdWkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQW1lbGlvcmVQYXJPY2N1cGFudC5Ob24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4NjkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTcxMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEwNzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDgzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDg3OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjM5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4MjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExMTY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMjA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjc4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAyNTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzcyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ5NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4MDEwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjEwNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEzOTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNjc2MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NTUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3OTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE0OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTE1MzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDExKSAoMjcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMCkgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5ODEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzkwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3OTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwOTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjEyODAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDg4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY1MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NzkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTgyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTg2OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MjUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0MjIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzEyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwMDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzI4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU5MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTk7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDApICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDEpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQxNDAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODI3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTc4NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNTAwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUxNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2NjcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTk5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI0ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1MjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMCkgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2MTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTQ0MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNDM2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTcyOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDIyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTM0MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2MDkwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjgxOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjg1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDI1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ0MzAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODYxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTgwNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNzUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU0MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2ODcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDIzMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMxNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA4NzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcyNDNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzNjE1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjM3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3NTQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMTQ4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODc2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU2MTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTcxOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDg0MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU5NjJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MTIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM0Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM1MTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDEpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYzMDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NjcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE0NTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNzUwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwNDcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzU3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTYyODAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODk5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEzODA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEzODQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0ODQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5OTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTEyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjE1MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjY3OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyMDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2ODdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4MThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4OTQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0MTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0MTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDIpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTI0MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY4OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQxMzdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2NDQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjc4NzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM1NTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MjMzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTY3N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2MDI3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMjEwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjM5M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxODNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDQ2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDUwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjUxNDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAzNDdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NTQ3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNDE3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2OTk5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTU4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDkzNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTExNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjkyOTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ3OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4MzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMykgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA1KSAoOCkgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTQxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDY2NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY1MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODIxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk1OVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk3MDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NzQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjYzMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE1ODRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg2KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNSkgKDgpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTQ0OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDcxMVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU5NzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI2ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjczMjNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxOTYwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDYzN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1NDE3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTY0OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMzFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTQ5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA1KSAoOCkgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDYpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMTg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4ODI3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTQ2OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY2NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODcyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDU3MFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA0MThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY4MTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzIxNTJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NDkxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTMzOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Nzg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODI7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDUpICg4KSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjU5MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NjIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTM1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDk0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI3ODE0XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjUzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ3MjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTU2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNTg3NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzAxODFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxNTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk5MTRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2NzQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjgyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NTI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NTM4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTU1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYwMTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzU2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzA1MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg1NDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY0NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY0ODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY2MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzIxMzlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjQ2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTUwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI4NTkzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzQ0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ4NTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjE3MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjU5OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEwMjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY3Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY4MTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM5OTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEwMTZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ4MDMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzAxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMzQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTE5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY5N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODMyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzk2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NjM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTcxMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTcxNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjczNjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMwMjZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4Njg1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTY1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0Mzk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5MzgyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDM2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjc4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzMzMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4ODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc0Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc0NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUwMDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDIyMjZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5NDQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzIyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMjM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NTk2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Mzk1N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYzNjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTE2MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDk2NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA3NzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc3Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc4MDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjgxNzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQwMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTgyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMjQ5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTM4MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxMzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzQ1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODEzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njg0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgwOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgxMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUxMTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDIzNjFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5NjA3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzI0NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMzM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NzE2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDA5OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYzODBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTI1NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTA3OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5MDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODI0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg0Mjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg0NjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjgyNjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQxMDlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5OTUzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTg0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwMzQ2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ5NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUxNDlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzUzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODIyOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI5MjhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Njk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg3NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTg3OTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUwMTUzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzMyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxNjgxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4MTMxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDU4M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY0NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTU3NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTQ2NFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDEzNTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1ODg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTkwODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTkxMjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMCkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg1NzVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ0ODRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwMzkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTkwOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1NDczXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjgwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTg4NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzc4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODUzOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMyOTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NzUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk0MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk0NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU4NTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMyNTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUwNjU1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzM5OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxOTk4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4NTEyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NTAyOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY1MTVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTgxOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1OTQ3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk3ODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMSkgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjg4NjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ4MjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNzk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTk2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1NzI4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwOTg3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjI0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDAyN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyODgyNFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM2MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Nzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAxMTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjYyNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDE4NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTE3NDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NTU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI2ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkzNDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1OTk3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY1NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNTE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NTg5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjY2NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYwNzVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMDQwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMDQ0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEyKSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NDgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NTc4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTY3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYwOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjI4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTY1M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcwMjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MzcxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ1NDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0NDRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MzQ2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDkwMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNzM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNzc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgzNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDQzN1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTIwMzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3NjAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI4NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzk1NjRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2MjU5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjY5M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNjg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2Nzk4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjkwOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxMTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTA2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTEwOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk2NTBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU3ODFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxOTExXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjEzMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2NDMxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxODMzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzIzNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0MDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDY4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTYxMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ1NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjEzOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjE0MzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2ODY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NDczXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1MjA4MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjc2MDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjg5OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTU5NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDYyOTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2Njk4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA3MTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY4MjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyOTQyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjExNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIxNzI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxNzY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTUpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTY3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTgxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDE5NDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjY0NTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzE4NThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTQwNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NzA0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5NjM2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDU3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ5MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjA1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjA5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcxNDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ4MDdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjUyNDcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNzY2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzMTQ1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODkzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NjY0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjY3NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDk0M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzEwM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMyNjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2MTYxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjIzODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjI0MjsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI5ODk3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2MDc5XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MjI2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxODJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjY1MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMjA5N1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc1NDNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1NDQ3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ4ODlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk4NThcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0ODI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDk3MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyNzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNzQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzI1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDk0MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNTI2MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI3Njg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzMyNDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAwMTNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ2NzgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjc2OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMxMDM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjE1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzM5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjYxNzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzAzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMzA2OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLk5ldWYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5BbmNpZW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk5ODZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxODdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyMzg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNjIwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI2NzMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMTkzXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzY1NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjU0NjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDk2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyOTk0OFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ5MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0OTg2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjM1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjM4OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTkyKSAoNikgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI1MTUwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk0NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODYwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIzOTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjE4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3MzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDgyMDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzYwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY4MDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY4MzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDYpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2NzgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDI1MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNzIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ5NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4MDEwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjEwNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTY3NjAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTU1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF9mcmFuY3NfdmVyc19ldXJvc18pKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NjA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03Mjg7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTQpICgxMSkgKDI3KSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBhbmNpZW5uZXRlX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5ldWZPdUFuY2llbi5OZXVmIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkF1dHJlIF8gLT4gZmFsc2UpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODQwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIwMDAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjAwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE2NDIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTc3MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTUzMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4MzcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE0MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzcwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzcyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAxN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoMTEpICgyNykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggYW5jaWVubmV0ZV9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uQW5jaWVuIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNjNfNjQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTQ4MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3ODcwMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzA2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMzIwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTU4OTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNjkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEyMzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxNDc5MDBcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE3MjUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMVwiKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXykpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2MDsgc3RhcnRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IGZhbHNlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYwOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbl9ub21icmVfcGFydHNfZDgzMl8xMV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzI3ODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9ub21icmVfcGFydHNfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NjI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzYyOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInJlc3NvdXJjZXNfbcOpbmFnZV9hdmVjX2Q4MzJfMThcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzcxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc3MTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NzE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NzE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTk0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTk0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xN18pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTg2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM1ODY7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9cbiAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xOF8pKSB0aGVuXG4gICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgIGNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMThfKSBlbHNlXG4gICAgICAgICAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc3MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03NzE7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzkyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjk7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTI5OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2Q4MzJfMTBfKSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDgzMl8xMF8pXG4gICAgICAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkyOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzkyOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Njc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NzY3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03Njc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTMwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1MzA7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTkpICg2KSAoMzApKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbWVuc3VhbGl0ZV9wcmluY2lwYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTQxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU0MTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIG9fc3ViX21vbl9tb24gbWVuc3VhbGl0ZV9wcmluY2lwYWxlXyBhbGxvY2F0aW9uX21lbnN1ZWxsZV8pKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzY3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTc2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJwbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM19iYXNlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc1ODsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NTg7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU4OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU4OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM2NTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM2NTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlXykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIChsZXQgcGxhZm9uZF9zaWduYXR1cmVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM18pXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9kYXRlKSBkYXRlX3NpZ25hdHVyZV9wcmV0XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgKGxldCBwbGFmb25kX2VudHJlZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpIGRhdGVfZW50cmVlX2xvZ2VtZW50XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIHBsYWZvbmRfc2lnbmF0dXJlXyBwbGFmb25kX2VudHJlZV8pXG4gICAgICAgICAgICAgICAgICAgICAgIHRoZW4gcGxhZm9uZF9lbnRyZWVfIGVsc2UgcGxhZm9uZF9zaWduYXR1cmVfKSkpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzQ1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMzNDU7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCJdXG4gICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDgzMl8xMF8zXCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODMyXzEwXzNcIl1cbiAgICAgICAgICAgIGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM1wiOyBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgIGRhdGVfc2lnbmF0dXJlX3ByZXRfKSkpKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NTg7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzU4OyBlbmRfY29sdW1uPTE0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc5OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03OTk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTc5OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT03OTk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9Nzk5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ4Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDg2OyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM0ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0ODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5jb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ4NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDg1OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM0ODU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4NTsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zNDg1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODU7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAgIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ4ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zNDg4OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM0ODg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzQ4ODsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zNDg4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM0ODg7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfZm9ybXVsZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwX2Zvcm11bGVcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NjQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NzY0OyBlbmRfY29sdW1uPTE3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxOTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzE5MzsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX3N1Yl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjAuOTVcIilcbiAgICAgICAgICAgICAgKG9fZGl2X21vbl9tb24gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8xMV9cbiAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzY0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc2NDsgZW5kX2NvbHVtbj0xNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc2OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njk7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTUyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU1MjsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMF8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVfZDgzMl8xMFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vbiBkZXBlbnNlX25ldHRlX21pbmltYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4X1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNfKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXZlY19kODMyXzE4X1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzE3XzNfKVxuICAgICAgICAgICAgICAgICAgICAgICBkZXBlbnNlX25ldHRlX21pbmltYWxlXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTc2OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njk7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2OTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT03Njk7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2NvcHJvcHJpZXRhaXJlc186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJwbGFmb25kX21lbnN1YWxpdMOpX2Q4MzJfMTBfM19jb3Byb3ByacOpdGFpcmVzXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU5OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzU5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTk7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1OTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1OTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NTk7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNDc0OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0NzQ7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29wcm9wcmlldGVfIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC43NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM5NDsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTM5NDsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDI0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb3Byb3ByaWV0ZV8gdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2Jhc2VfKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjQxOTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI0MTk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMjRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgIGlmIGNvcHJvcHJpZXRlXyB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfYmFzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9tZW5zdWFsaXRlX2Q4MzJfMTBfM19iYXNlXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzU5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc1OTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1lbnN1YWxpdGVfbWluaW1hbGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibWVuc3VhbGl0w6lfbWluaW1hbGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NzU2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc1NjsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDI1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDM3OyBlbmRfY29sdW1uPTc3O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlBhc0RlVHJhdmF1eCBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5QYXNEZVRyYXZhdXggXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18gOiBkZWNpbWFsID1cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xXyA6IGRlY2ltYWwgPVxuICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9tb24gbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xXylcbiAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgKG9fdG9tb25leV9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb250YW50X2xpbWl0ZV90cmFuY2hlc19kODMyXzE1XzFfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTFfKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzExXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfdHJhbmNoZV9zdXBlcmlldXJlX2Q4MzJfMTVfMV8pIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX3JhdF9yYXQgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9saW1pdGVfdHJhbmNoZXNfZDgzMl8xNV8xX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzExXykpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGF1eF90cmFuY2hlX2luZmVyaWV1cmVfZDgzMl8xNV8xXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfbGltaXRlX3RyYW5jaGVzX2Q4MzJfMTVfMV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8xMV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfdHJhbmNoZV9pbmZlcmlldXJlX2Q4MzJfMTVfMV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTIuXCIpKSkpKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03NTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDgwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDgwOyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlBhc0RlVHJhdmF1eCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc1Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT03NTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9jb2VmZl9hcnJvbmRpXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfY29lZmZfYXJyb25kaVwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc2NTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjU7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjA5OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZGl2X3JhdF9yYXRcbiAgICAgICAgICAgICAgKG9fcm91bmRfcmF0XG4gICAgICAgICAgICAgICAgIChvX211bHRfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAob19zdWJfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjAwNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMTAwLlwiKSkpIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc2NTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjU7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzkzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5MzsgZW5kX2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDM7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTQzOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9kODMyXzEwXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlX2Q4MzJfMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gYWlkZV9maW5hbGVfIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuIGFpZGVfZmluYWxlXyBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTc5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTM7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc5Mzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTM7IGVuZF9jb2x1bW49MjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtZW5zdWFsaXRlX2VsaWdpYmxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1lbnN1YWxpdMOpX8OpbGlnaWJsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT03NTU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzU1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzEwNDsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODMyXzEwXzNfY29wcm9wcmlldGFpcmVzXykgdGhlblxuICAgICAgICAgICAgICBwbGFmb25kX21lbnN1YWxpdGVfZDgzMl8xMF8zX2NvcHJvcHJpZXRhaXJlc18gZWxzZVxuICAgICAgICAgICAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03NTU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NzU1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBfc2V1aWxfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9zZXVpbFwiXSAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTc2Njsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03NjY7IGVuZF9jb2x1bW49MTU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMjEyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODMyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19ndGVfcmF0X3JhdFxuICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9jb2VmZl9hcnJvbmRpX1xuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjk1XCIpKSB0aGVuIChkZWNpbWFsX29mX3N0cmluZyBcIjAuOTVcIilcbiAgICAgICAgICAgICAgZWxzZSBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9jb2VmZl9hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NzY2OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc2NjsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT03OTQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1Nzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNTc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgzMi0xMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9hYmF0dGVtZW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2FiYXR0ZW1lbnRcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgY3Jkc18gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwXCIpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTc5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTc5NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT03OTQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Nzg5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc4OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDg0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMwODQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBtZW5zdWFsaXRlX2VsaWdpYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MzJfMTBfKVxuICAgICAgICAgICAgICAgICAgICAgbWVuc3VhbGl0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9zZXVpbF8pXG4gICAgICAgICAgICBpblxuICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Nzg5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTc4OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Nzk1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTc5NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNzc7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTc3OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MzItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDgzMl8xMF8pXG4gICAgICAgICAgICAgICAgICAgIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZSBhaWRlX2ZpbmFsZV8pKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT03OTU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT03OTU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9Nzk1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04MDM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MDM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04MDM7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MDM7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAge0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZSA9XG4gICAgIG1lbnN1YWxpdGVfZWxpZ2libGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGVfO1xuICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwID1cbiAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8xMF9zZXVpbF87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbjogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpIDogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgbGV0IHJlc3NvdXJjZXNfZGVtYW5kZXVyXzogbW9uZXkgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5yZXNzb3VyY2VzX2RlbWFuZGV1cl9pbiBpblxuICBsZXQgcmVzc291cmNlc19jb25qb2ludF86IG1vbmV5ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19jb25qb2ludF9pbiBpblxuICBsZXQgcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl86IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luIGluXG4gIGxldCBjb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlXzogYm9vbCA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW4gaW5cbiAgbGV0IHBlcnNvbm5lc19hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50IGFycmF5ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlXzogU2l0dWF0aW9uRmFtaWxpYWxlLnQgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2luIGluXG4gIGxldCBtb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl9hZ2VfYm91cnNlX2Vuc2VpZ25lbWVudF9zdXBlcmlldXJfOiBib29sID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2FnZV9ib3Vyc2VfZW5zZWlnbmVtZW50X3N1cGVyaWV1cl9pbiBpblxuICBsZXQgZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfOiBib29sID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGVtYW5kZXVyX3BvdXJzdWl0X2Rlc19ldHVkZXNfaW4gaW5cbiAgbGV0IGRhdGVfZGVtYW5kZV9vdV9yZWV4YW1lbl9kcm9pdF86IGRhdGUgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW4gaW5cbiAgbGV0IHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfOiBQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQgPSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5wYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV86IG1vbmV5ID0gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5SZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfcGVyc29ubmVzX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9mb3llcl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJyZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzNTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjk7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogTW9kYWxpdMOpcyBnw6luw6lyYWxlcyBkZSBsJ2FwcHLDqWNpYXRpb24gZGVzIHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX3JlZHVjZVxuICAgICAgICAgICAgICAoZnVuIChzdW0xXzogbW9uZXkpIChzdW0yXzogbW9uZXkpIC0+IG9fYWRkX21vbl9tb24gc3VtMV8gc3VtMl8pXG4gICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgIChvX21hcFxuICAgICAgICAgICAgICAgICAoZnVuIChwZXJzb25uZV86IFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lXy5QZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci5yZXNzb3VyY2VzKVxuICAgICAgICAgICAgICAgICBwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01MzU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFiYXR0ZW1lbnRfcl84MjJfMTBfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJhYmF0dGVtZW50X3JfODIyXzEwXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTQwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTU0MDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTUyNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MjQ7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMTBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAobGV0IGFiYXR0ZW1lbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgKG9fZXEgKG9fbGVuZ3RoIHBlcnNvbm5lc19hX2NoYXJnZV8pIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKSB0aGVuIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9pbnRfaW50IChvX2xlbmd0aCBwZXJzb25uZXNfYV9jaGFyZ2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkwMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzUwMDBcIikpKVxuICAgICAgICAgICAgaW5cbiAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX1xuICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZSBfIC0+IGFiYXR0ZW1lbnRfXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKVxuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPiBhYmF0dGVtZW50X1xuICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01NDA7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfN186IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfcl84MjJfN1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzk7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBhcHBsaWNhYmxlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjk1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzOTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwibW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl84XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzNzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogRGlzcG9zaXRpb25zIGFwcGxpY2FibGVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU4OTAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT01Mzc7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IFByaW5jaXBlcyBkZSBuZXV0cmFsaXNhdGlvbiBldCBkJ2FiYXR0ZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQxODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTg7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogUHJpbmNpcGVzIGRlIG5ldXRyYWxpc2F0aW9uIGV0IGQnYWJhdHRlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXVxuICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVffSkpKSBpblxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgaW5cbiAgbGV0IHJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInJlc3NvdXJjZXNfcHJpc2VzX2VuX2NvbXB0ZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTU0Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01NDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcmlzZSBlbiBjb21wdGUgZGVzIHJlc3NvdXJjZXMgcG91ciBsZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NTQ7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTg1NzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTIwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMyA6IE1vbnRhbnQgZm9yZmFpdGFpcmUgZGUgcmVzc291cmNlcyBhcHBsaWNhYmxlIGF1eCDDqXR1ZGlhbnRzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIG1vZGVfb2NjdXBhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkZW1hbmRldXJfcG91cnN1aXRfZGVzX2V0dWRlc18pKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNDsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBNb2RhbGl0w6lzIGfDqW7DqXJhbGVzIGRlIGwnYXBwcsOpY2lhdGlvbiBkZXMgcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gcmVzc291cmNlc19kZW1hbmRldXJfIHJlc3NvdXJjZXNfY29uam9pbnRfKVxuICAgICAgICAgICAgICByZXNzb3VyY2VzX3BlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01NDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTQ2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X3JfODIyXzhfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIlJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJhYmF0dGVtZW50X3JfODIyXzhcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01MzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ2MjsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDIgOiBQcmluY2lwZXMgZGUgbmV1dHJhbGlzYXRpb24gZXQgZCdhYmF0dGVtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC5PdWlBdmVjTG95ZXJPdUNoYXJnZXMgbG95ZXJfb3VfY2hhcmdlc18gLT5cbiAgICAgICAgICAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX3JfODIyXzhfXG4gICAgICAgICAgICB8IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuTm9uIF8gLT5cbiAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWJhdHRlbWVudF9yXzgyMl83XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJSZXNzb3VyY2VzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiYWJhdHRlbWVudF9yXzgyMl83XCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTUzODsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByaXNlIGVuIGNvbXB0ZSBkZXMgcmVzc291cmNlcyBwb3VyIGxlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDk7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogUHJpbmNpcGVzIGRlIG5ldXRyYWxpc2F0aW9uIGV0IGQnYWJhdHRlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1eCByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAob19hbmQgZGVtYW5kZXVyX2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfXG4gICAgICAgICAgICAgICAgIChvX2FuZCBjb25qb2ludF9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX1xuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiByZXNzb3VyY2VzX2RlbWFuZGV1cl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzc291cmNlc19jb25qb2ludF8pXG4gICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxMi5cIikpKSkpIHRoZW5cbiAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9yXzgyMl83XyBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01Mzg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NTM4OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJpc2UgZW4gY29tcHRlIGRlcyByZXNzb3VyY2VzIHBvdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2ZvbGRcbiAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoYWNjXzogYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lXzogUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmQgYWNjX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV8uUGVyc29ubmVWaXZhbnRIYWJpdHVlbGxlbWVudEF1Rm95ZXIuZHVyZWVfcmVzaWRlbmNlX2R1cmFudF9wZXJpb2RlX3JfODIyXzNfMV9zdXBlcmlldXJlX2FfNl9tb2lzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSBwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyXylcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQyOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQzOyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDEgOiBNb2RhbGl0w6lzIGfDqW7DqXJhbGVzIGRlIGwnYXBwcsOpY2lhdGlvbiBkZXMgcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSlcbiAgICAgICAgICAgICAgICAgIHRoZW4gKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDI7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDM7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMSA6IE1vZGFsaXTDqXMgZ8OpbsOpcmFsZXMgZGUgbCdhcHByw6ljaWF0aW9uIGRlcyByZXNzb3VyY2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdXggcmVzc291cmNlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkgaW5cbiAge1Jlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQucmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlID1cbiAgICAgcmVzc291cmNlc19wcmlzZXNfZW5fY29tcHRlX31cblxubGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW46IEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4udCkgOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHByZXN0YXRpb25fY291cmFudGVfOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgPSBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBhZ2VfbDUxMl8zXzJfOiB1bml0IC0+IGR1cmF0aW9uID0gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbiBpblxuICBsZXQgYWdlX2w1MTJfM18yXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwiw6JnZV9sNTEyXzNfMlwiXSAoZW1iZWRfZHVyYXRpb24pXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDY7IHN0YXJ0X2NvbHVtbj0yMTsgZW5kX2xpbmU9NDY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBhZ2VfbDUxMl8zXzJfICgpKXxdKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChcbiAgICAgICAgICAgICAgW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX1IuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIxOyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI1MTItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IENoYW1wIGQnYXBwbGljYXRpb24uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgZW4gQ29uc2VpbCBkJ0V0YXRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoMjApICgwKSAoMCkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49MjE7IGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAgbGV0IHNtaWNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTU3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTc7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkgaW5cbiAgbGV0IHNtaWNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjsgXCJzbWljLnLDqXNpZGVuY2VcIl1cbiAgICAgIChlbWJlZF9jb2xsZWN0aXZpdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01NjsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU2OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBTbWljLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcInNtaWNcIjsgXCJTbWljXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwic21pY1wiOyBcIlNtaWNcIl0gc21pYylcbiAgICAoe1NtaWNJbi5kYXRlX2NvdXJhbnRlX2luID0gc21pY19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIFNtaWNJbi5yZXNpZGVuY2VfaW4gPSBzbWljX2RvdF9yZXNpZGVuY2VffSkpKSBpblxuICBsZXQgc21pY19kb3RfYnJ1dF9ob3JhaXJlXzogbW9uZXkgPSByZXN1bHRfLlNtaWMuYnJ1dF9ob3JhaXJlIGluXG4gIGxldCByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwicsOpZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTUxOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUxOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gKFxuICAgICAgICAgICAgICAgICBbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMyOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw3NTEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbGEgR3VhZGVsb3VwZSwgw6AgbGEgR3V5YW5lLCDDoCBsYSBNYXJ0aW5pcXVlLCDDoCBMYSBSw6l1bmlvbiwgw6AgU2FpbnQtQmFydGjDqWxlbXkgZXQgw6AgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fb3IgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19vciAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuR3V5YW5lICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlXyAoQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSByZXNpZGVuY2VfIChDb2xsZWN0aXZpdGUuTGFSZXVuaW9uICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiAoKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01MTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBwbGFmb25kX2w1MTJfM18yXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7IFwicGxhZm9uZF9sNTEyXzNfMlwiXSAoZW1iZWRfbW9uZXkpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDQ7IGVuZF9jb2x1bW49Mjc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSAoXG4gICAgICAgICAgICAgICAgIFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjI7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02MjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNzU1LTAtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDUgOiBEw6lwYXJ0ZW1lbnRzIGQnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA3IDogUsOpZ2ltZXMgZGl2ZXJzIC0gRGlzcG9zaXRpb25zIGRpdmVyc2VzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xXykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IHNtaWNfZG90X2JydXRfaG9yYWlyZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjU1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjE2OS5cIikpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9SLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTMxOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSNTEyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvbi5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBlbiBDb25zZWlsIGQnRXRhdFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgc21pY19kb3RfYnJ1dF9ob3JhaXJlX1xuICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjU1XCIpKSAoZGVjaW1hbF9vZl9zdHJpbmcgXCIxNjkuXCIpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0OyBlbmRfY29sdW1uPTI3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbnNfaG9yc19hZ2VfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImNvbmRpdGlvbnNfaG9yc1/DomdlXCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZW5mYW50XzogRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDk7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3PDqWN1cml0w6lfc29jaWFsZV9MLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT04MjsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkFwcmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfbDUxMl8zXzJfKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTQ5OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ5OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00OTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00OTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX0pKSkpIGluXG4gIGxldCBkcm9pdF9vdXZlcnRfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiOyBcImRyb2l0X291dmVydFwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChlbmZhbnRfOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlByb2xvZ3VlIDogcHJlc3RhdGlvbnMgZmFtaWxpYWxlc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY3OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFmb25kX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSAxIDogQ2hhbXAgZCdhcHBsaWNhdGlvbiAtIEfDqW7DqXJhbGl0w6lzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckFJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmFubmVlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgYWdlX2w1MTJfM18yX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDUxMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgNSA6IFByZXN0YXRpb25zIGZhbWlsaWFsZXMgZXQgcHJlc3RhdGlvbnMgYXNzaW1pbMOpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEuZXN0X3N1cGVyaWV1ciA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlU3Vww6lyaWV1csOAXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvc8OpY3VyaXTDqV9zb2NpYWxlX0wuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03MjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw1MTItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgMSA6IENoYW1wIGQnYXBwbGljYXRpb24gLSBHw6luw6lyYWxpdMOpc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIDUgOiBQcmVzdGF0aW9ucyBmYW1pbGlhbGVzIGV0IHByZXN0YXRpb25zIGFzc2ltaWzDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfKSkpKSkpKS5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvLi4vcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy9zw6ljdXJpdMOpX3NvY2lhbGVfTC5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3OyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMNTEyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uIC0gR8OpbsOpcmFsaXTDqXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSA1IDogUHJlc3RhdGlvbnMgZmFtaWxpYWxlcyBldCBwcmVzdGF0aW9ucyBhc3NpbWlsw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5QZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BcHJlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC8uLi9wcmVzdGF0aW9uc19mYW1pbGlhbGVzL3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT00Nzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NzsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiUHJvbG9ndWUgOiBwcmVzdGF0aW9ucyBmYW1pbGlhbGVzXCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50Ly4uL3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJQcm9sb2d1ZSA6IHByZXN0YXRpb25zIGZhbWlsaWFsZXNcIl19KSkpKSBpblxuICB7RWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYWdlX2w1MTJfM18yID0gYWdlX2w1MTJfM18yXztcbiAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0ID0gZHJvaXRfb3V2ZXJ0XztcbiAgICAgRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSA9XG4gICAgICAgY29uZGl0aW9uc19ob3JzX2FnZV87XG4gICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xID1cbiAgICAgICByZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV99XG5cbmxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udCkgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICBsZXQgbG95ZXJfcHJpbmNpcGFsXzogbW9uZXkgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gaW5cbiAgbGV0IGxvZ2VtZW50X2VzdF9jaGFtYnJlXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luIGluXG4gIGxldCBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc186IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiBpblxuICBsZXQgdHlwZV9haWRlXzogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luIGluXG4gIGxldCBjb2xvY2F0aW9uXzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gaW5cbiAgbGV0IHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlXzogbW9uZXkgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiBpblxuICBsZXQgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yX2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfOiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4gaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG95ZXJfcHJpbmNpcGFsX2Jhc2VfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLmxveWVyX3ByaW5jaXBhbF9iYXNlXCJdIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIwNzsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIwNzsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBsb3llcl9wcmluY2lwYWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjA3OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYucmVzc291cmNlc19tw6luYWdlX2Fycm9uZGllc1wiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MjA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMDk7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMDk7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQyMDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIwOTsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYuYsOpbsOpZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2Fww6lzXCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIxMTsgZW5kX2NvbHVtbj03ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIxMTsgZW5kX2NvbHVtbj03ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQyMTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIxMTsgZW5kX2NvbHVtbj03ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLmRhdGVfY291cmFudGVcIl1cbiAgICAgIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDIxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjE0OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjE0OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIxNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjE0OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MjE2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjE2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MjE2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMTY7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIxODsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIxODsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIxODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjE4OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3pvbmVfOiBab25lREhhYml0YXRpb24udCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmLnpvbmVcIl1cbiAgICAgIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB6b25lXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQyMjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyMDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVudF9lc3RfY2hhbWJyZV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9jYXRpZi5sb2dlbWVudF9lc3RfY2hhbWJyZVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyMjsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyMjsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBsb2dlbWVudF9lc3RfY2hhbWJyZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MjIyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMjI7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvY2F0aWYuw6Jnw6llc19vdV9oYW5kaWNhcF9hZHVsdGVzX2jDqWJlcmfDqWVzX29uw6lyZXV4X3BhcnRpY3VsaWVyc1wiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MjI1OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9NDIyNjsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMjU7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT00MjI2OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIyNTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTQyMjY7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHlwZV9haWRlXzogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWYudHlwZV9haWRlXCJdXG4gICAgICAoZW1iZWRfdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyOTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIyOTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0eXBlX2FpZGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjI5OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2NvbG9jYXRpb25fOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWYuY29sb2NhdGlvblwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MjMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMzE7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMzE7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gY29sb2NhdGlvbl8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MjMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyMzE7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLnLDqWR1Y3Rpb25fbG95ZXJfc29saWRhcml0w6lcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjMzOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjMzOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQyMzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIzMzsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVudF9tZXVibGVfZDg0Ml8yXzogYm9vbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2NhdGlmLmxvZ2VtZW50X21ldWJsw6lfZDg0Ml8yXCJdIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjM1OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDIzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjM1OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGxvZ2VtZW50X21ldWJsZV9kODQyXzJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjM1OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWYucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQyMzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIzNzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDIzNzsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDIzNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MjM3OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJjYWxjdWxfYXBsX2xvY2F0aWZcIjtcbiAgICAgIFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiY2FsY3VsX2FwbF9sb2NhdGlmXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiXVxuICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2xveWVyX3ByaW5jaXBhbF9iYXNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9sb2dlbWVudF9lc3RfY2hhbWJyZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90eXBlX2FpZGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfY29sb2NhdGlvbl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfcmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X21vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BsYWZvbmRfbG95ZXJfZDgyM18xNl8yXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fbWluaW1hbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF90YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZV86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvY2F0aWZfZG90X3BhcnRpY2lwYXRpb25fcGVyc29ubmVsbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2NhdGlmX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzI3OyBzdGFydF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MzI3OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5DaGFuZ2VtZW50IGluZm9zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gbG95ZXJfcHJpbmNpcGFsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGluZm9zXy5JbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LmFuY2llbl9sb3llcl9wcmluY2lwYWwpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSAoZnVuIChfOiB1bml0KSAtPiBhaWRlX2ZpbmFsZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyNDE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjQxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogU2VjdGV1ciBsb2NhdGlmIG9yZGluYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIl1cbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbW9udGFudF9taW5pbWFsXCJdXG4gICAgICAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfKVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODc2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTg3NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODc2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTg3NjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT04NzQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODc0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODc0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc0OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDMxOTsgc3RhcnRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzMTk7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBTZWN0ZXVyIGxvY2F0aWYgb3JkaW5haXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X1xuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5DaGFuZ2VtZW50IGluZm9zXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3NfLkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVuX2xveWVyX3ByaW5jaXBhbCkpXG4gICAgICAgICAgICAgICAgICAgICB8IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LlBhc0RlQ2hhbmdlbWVudCBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuQ2hhbmdlbWVudCBpbmZvc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGxveWVyX3ByaW5jaXBhbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5mb3NfLkluZm9zQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuYW5jaWVuX2xveWVyX3ByaW5jaXBhbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmZvc18uSW5mb3NDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5hbmNpZW5uZV9hbGxvY2F0aW9uX2xvZ2VtZW50KSkpXG4gICAgICAgICAgICAgICAgICAgIHwgQ2hhbmdlbWVudExvZ2VtZW50RDg0MjQuUGFzRGVDaGFuZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MjQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQyNDA7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IFNlY3RldXIgbG9jYXRpZiBvcmRpbmFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9hcGxfbG9jYXRpZl9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTg3NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnQpIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9XG4gIGxldCB0eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiBpblxuICBsZXQgZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luIGluXG4gIGxldCByZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCByZWRldmFuY2VfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiBpblxuICBsZXQgem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiBpblxuICBsZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfOiBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfaW4gaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4Nzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg3OTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Nzk7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Nzk7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODc0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzQ7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg3NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODc0OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ4NzQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg3NDsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxcIl1cbiAgICAgIChlbWJlZF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NzY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg3NjsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODc2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzY7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODc2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzY7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHMucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4Nzg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg3ODsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Nzg7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc2lkZW5jZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODc4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4Nzg7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX25vbWJyZV9wYXJ0cy5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJcIl0gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyKVxuICAgICh7Q2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDQzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjb250cmlidXRpb25zX3NvY2lhbGVzXCI7XG4gICAgICBcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXVxuICAgIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV99KSkpIGluXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XzogbW9uZXkgLT4gbW9uZXkgPSByZXN1bHRfLkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5tb250YW50IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXzogVHlwZUxvZ2VtZW50Rm95ZXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIudHlwZV9sb2dlbWVudF9mb3llclwiXVxuICAgICAgKGVtYmVkX3R5cGVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDI3OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDI3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMjc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0eXBlX2xvZ2VtZW50X2ZveWVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDI3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMjc7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb252ZW50aW9ubmVtZW50XzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50XCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMjk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAyOTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDI5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb252ZW50aW9ubmVtZW50XykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDI5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMjk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzM7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAzMzsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAzMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDMzOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDM1OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAzNzsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDM3OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzc7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci56b25lXCJdXG4gICAgICAoZW1iZWRfem9uZV9kX2hhYml0YXRpb24pXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzOTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDM5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB6b25lXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDM5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDQxOyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNDE7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlZGV2YW5jZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAzMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDMxOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwMzE7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZWRldmFuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAzMTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIucsOpc2lkZW5jZVwiXSAoZW1iZWRfY29sbGVjdGl2aXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA0MDsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDQwOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzaWRlbmNlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDQwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNDA7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5jb25kaXRpb25fMl9kdV84MzJfMjVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODQ5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NDk7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg0OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODQ5OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NjMyOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTYzMjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9uIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU2MzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NjQwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogdW5pdCAtPiBkZWNpbWFsID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XCJdIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llclwiO1xuICAgICAgXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCJdXG4gICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcilcbiAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnR5cGVfbG9nZW1lbnRfZm95ZXJfaW4gPVxuICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90eXBlX2xvZ2VtZW50X2ZveWVyXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvbnZlbnRpb25uZW1lbnRfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc187XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnpvbmVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVkZXZhbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZWRldmFuY2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X3Jlc2lkZW5jZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ubGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVffSkpKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfY29lZmZpY2llbnRfcl9kODMyXzI1XzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9yX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiBkZWNpbWFsID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IFxuICAgIG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBpblxuICBsZXQgbXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwibXVsdGlwbGljYXRldXJfbWFqb3JhdGlvbl9jaGFyZ2VzXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDAzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMDM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDAzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDAzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNTI7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgwOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjgxNzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTczODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNzQ2OyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02MTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mjc7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzQ7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIganVpbGxldCAyMDIyIC0gQXJyw6p0w6kgZHUgMjkganVpbGxldCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgTk9SIDogVFJFTDIyMjA3NDhBIC0gQXJyw6p0w6kgZHUgMTYgYW/Du3QgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciAtIE5PUiA6IFRSRUwyMjIwNzQ0QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDAzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDM7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODY7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4NjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTY3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MTY3OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDBcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAwMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcIm1vbnRhbnRfbWluaW1hbF9kw6lwZW5zZV9uZXR0ZV9kODQyXzE3XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAwMjsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI4Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00Mjg3OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDAyOyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAwMTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDE4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTgzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwMFwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDAxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMDE7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfMTVcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDAwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwMDA7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxOTU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE5NTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDAwXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTAwMDsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVxdWl2YWxlbmNlX2xveWVyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIsOpcXVpdmFsZW5jZV9sb3llclwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMTM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMTM7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg3MDhcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzU1OVwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI0ODsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDI0OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjEzNjJcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzE5NlwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDU7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDI2Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MjY3OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgVklJIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzYwN1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzM2NVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQyMzA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQyMzE7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFZJSSA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NjA3XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczNjVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTE7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjg0MTRcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzEwMFwiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY0ODsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTY0OTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjA3M1wiKSkpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDU7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTY2Nzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjY4OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzAxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjQ0MFwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mjk7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzA7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VUyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuQXV0cmVzUGVyc29ubmVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDEyXCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY0NDBcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2ODA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2ODA7IGVuZF9jb2x1bW49Nzk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI4Mzc5XCIpXG4gICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTMwNDVcIikpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MTc7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3MTg7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTYgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDU1NFwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxOTM5XCIpKSk7XG4gICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDU7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA1OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNTsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzM2OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI3Mzc7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0M1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2Q4NDJfMTZfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjMyOVwiKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2OTg7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2OTk7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5QZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLkF1dHJlc1BlcnNvbm5lcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNjk0MVwiKVxuICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MzI5XCIpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA0NDsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA0NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMDQ0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4NzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg3MTsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiOyBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzE7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc18pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzE7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLmNvbmRpdGlvbl8yX2R1XzgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODcwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4NzA7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODcwOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDg3MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODcwOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7IFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUubl9ub21icmVfcGFydHNfZDgzMl8yNVwiXVxuICAgICAgKGVtYmVkX2RlY2ltYWwpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00ODgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4ODE7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODgxOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00ODgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4ODE7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjsgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcIjtcbiAgICAgIFwiQ2FsY3Vsw4lxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXzogZGVjaW1hbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDA0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDQ7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDg1Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00ODUyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAwNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDA0OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc1wiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTAwNjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwNjsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDEzOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjgwOyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI4NzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAwNjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4OTM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTAwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Njsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT03ODM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjk2NTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTcyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTMyXCIpIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKSB0aGVuIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzUwMTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTA4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIikgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZiAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pIHRoZW4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNzA7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQxNzA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUkgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODk7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1ODk7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTQyMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI2NTU7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NTU7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0MFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUzOTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdCAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTIyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDA2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMDY7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMjA7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDIwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4OTE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00ODkxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xNV8pIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjBcIikpIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTVfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDIwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjA7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDIwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjA7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBsb3llcl9taW5pbWFsXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiOyBcImxveWVyX21pbmltYWxcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTAwNzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDA3OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4ODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDg4MzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMDc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTAwNzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05OTY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTAwMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTUwMDM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gZXF1aXZhbGVuY2VfbG95ZXJfXG4gICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05OTY7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05OTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTk2OyBlbmRfY29sdW1uPTMzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJhaWRlX2ZpbmFsZV9mb3JtdWxlXCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwMTc7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTAxNzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00ODMxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ4MzE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gZXF1aXZhbGVuY2VfbG95ZXJfXG4gICAgICAgICAgICAgICAgICAgIG1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc18pIGxveWVyX21pbmltYWxfKVxuICAgICAgICAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDE3OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwMTc7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7IFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFsbG9jYXRpb25fbWVuc3VlbGxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk5ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MDEyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTAxMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICBtb250YW50X21pbmltYWxfZGVwZW5zZV9uZXR0ZV9kODQyXzE3XykgdGhlblxuICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIG1vbnRhbnRfbWluaW1hbF9kZXBlbnNlX25ldHRlX2Q4NDJfMTdfXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSBkZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRpb25fbWVuc3VlbGxlXykpKSkpKSkpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05OTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTk4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTk4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTk5ODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhaWRlX2ZpbmFsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMjE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDIxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MDU7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTA1OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IExvZ2VtZW50cy1mb3llcnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl1cbiAgICAgICAgICAgICAgICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWJhdHRlbWVudF8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJhYmF0dGVtZW50X2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgIGFiYXR0ZW1lbnRfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gYWJhdHRlbWVudF8pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIGFiYXR0ZW1lbnRfKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDIxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDIxOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyMjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwMjI7IGVuZF9jb2x1bW49MTk7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkyMzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MjM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBhaWRlX2ZpbmFsZV8gcmVkZXZhbmNlXykgdGhlbiByZWRldmFuY2VfXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgYWlkZV9maW5hbGVfKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTAyMjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDIyOyBlbmRfY29sdW1uPTE5O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTAyMjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDIyOyBlbmRfY29sdW1uPTE5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDIzOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAyMzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzNzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9yZWRldmFuY2VcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX3JlZGV2YW5jZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfcmVkZXZhbmNlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGNyZHNfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9tb250YW50XylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm1vbnRhbnRcIjsgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgIChvX3JvdW5kX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MFwiKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIGFpZGVfZmluYWxlX21vaW5zX2NyZHNfYXJyb25kaWVfIGNyZHNfKVxuICAgICAgICAgICAgICAgICAgICBlbHNlIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT0xMDIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjM7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDIzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTEwMjM7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDI0OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTAyNDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTU4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDk1ODsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTE1XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChsZXQgYWlkZV9maW5hbGVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBtb250YW50X21pbmltYWxfYWlkZV9kODQyXzE1XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEwMjQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTAyNDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwMjQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9MTAyNDsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0ODsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDg7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0ODsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDg7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pIGluXG4gIHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llciA9IGVxdWl2YWxlbmNlX2xveWVyXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzID1cbiAgICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5sb3llcl9taW5pbWFsID0gbG95ZXJfbWluaW1hbF87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPSBhaWRlX2ZpbmFsZV9mb3JtdWxlXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxffVxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbjogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udCkgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gaW5cbiAgbGV0IHpvbmVfOiBab25lREhhYml0YXRpb24udCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc2lkZW5jZV9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IG1lbnN1YWxpdGVfcHJpbmNpcGFsZV86IG1vbmV5ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5tZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW4gaW5cbiAgbGV0IHNpdHVhdGlvbl9yODIyXzExXzEzXzE3XzogYm9vbCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTdfaW4gaW5cbiAgbGV0IGRhdGVfc2lnbmF0dXJlX3ByZXRfOiBkYXRlID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luIGluXG4gIGxldCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfOiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luIGluXG4gIGxldCBsb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gaW5cbiAgbGV0IGRhdGVfZW50cmVlX2xvZ2VtZW50XzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gaW5cbiAgbGV0IGNoYXJnZXNfbWVuc3VlbGxlc19wcmV0XzogbW9uZXkgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luIGluXG4gIGxldCBjb3Byb3ByaWV0ZV86IGJvb2wgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNvcHJvcHJpZXRlX2luIGluXG4gIGxldCBvcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfX2V0YXRfOiBib29sID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdF9pbiBpblxuICBsZXQgdGF1eF9mcmFuY3NfdmVyc19ldXJvc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0YXV4X2ZyYW5jc192ZXJzX2V1cm9zXCJdIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkxNzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMzMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zMzA7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIHByZW1pZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSw6hnbGVtZW50IChDRSkgbsKwMjg2Ni85OCBkdSBjb25zZWlsIGR1IDMxIGTDqWNlbWJyZSAxOTk4IGNvbmNlcm5hbnQgbGVzIHRhdXggZGUgY29udmVyc2lvbiBlbnRyZSBsJ2V1cm8gZXQgbGVzIG1vbm5haWVzIGRlcyDDiXRhdHMgbWVtYnJlcyBhZG9wdGFudCBsJ2V1cm9cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX2Rpdl9yYXRfcmF0IChkZWNpbWFsX29mX3N0cmluZyBcIjEuXCIpXG4gICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuNTU5NTdcIikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MTc7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfbm9tYnJlX3BhcnRzLm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDg1OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDg1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODU7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ0ODU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ4NTsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9ub21icmVfcGFydHMuc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODc7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0ODc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ4NzsgZW5kX2NvbHVtbj02NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDg3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODc7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcImNhbGN1bF9ub21icmVfcGFydHNcIjtcbiAgICAgIFwiQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjYWxjdWxfbm9tYnJlX3BhcnRzXCI7XG4gICAgICBcIkNhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpw6l0w6lcIl1cbiAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgKHtDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZUluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGVJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF99KSkpIGluXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzExXzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsTm9tYnJlUGFydHNBY2Nlc3Npb25Qcm9wcmlldGUubl9ub21icmVfcGFydHNfZDgzMl8xMSBpblxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjb250cmlidXRpb25zX3NvY2lhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk3MTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk3MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NzE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk3MTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY29udHJpYnV0aW9uc19zb2NpYWxlc1wiO1xuICAgICAgXCJDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNvbnRyaWJ1dGlvbnNfc29jaWFsZXNcIjtcbiAgICAgIFwiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0NvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBjb250cmlidXRpb25zX3NvY2lhbGVzX2RvdF9kYXRlX2NvdXJhbnRlX30pKSkgaW5cbiAgbGV0IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm1vbnRhbnQgaW5cbiAgbGV0IG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc186IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05Mjg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTI4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkyODsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMzNzsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNzk0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODAyOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3MzE7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNlwiKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYwNDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYxMjsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTExOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOTsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkyODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05Mjg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI4OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTI7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMjsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDMyOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDMyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgb190b3JhdF9pbnQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkyODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29lZmZpY2llbnRfZDg0Ml8xMl86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiOyBcImNvZWZmaWNpZW50X2Q4NDJfMTJcIl1cbiAgICAoZW1iZWRfZGVjaW1hbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MjY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTMzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxMzM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM5XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIxNi4yNVwiKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTI2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X2Q4NDJfMTFfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJjb2VmZmljaWVudF9kODQyXzExXCJdXG4gICAgKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MjU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTI1OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDEyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTIxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMjM0XCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkyNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MjU7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzEyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTJcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTI0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNDE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDE0MTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTAwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTI0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTFfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTIzOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDExMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTEzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTIzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyMzsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X21pbmltYWxfYWlkZV9kODQyXzZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcIm1vbnRhbnRfbWluaW1hbF9haWRlX2Q4NDJfNlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MjI7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTIyOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDA1ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MDU4OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlXyAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTIyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfNl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwibW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzZcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTE0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkxNDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwNDc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA0NzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCI1MDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTE0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkxNDsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fZDg0Ml8xMV8zXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiY29uZGl0aW9uX2Q4NDJfMTFfM1wiXVxuICAgIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTI3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyNzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI3OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkyNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI3OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkyNzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTI3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTI3OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU5Njk7IGVuZF9jb2x1bW49NzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2Mi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJSSA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IFNhaW50LUJhcnRow6lsZW15IGV0IFNhaW50LU1hcnRpblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX19ldGF0XykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTYwODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2MTU7IGVuZF9jb2x1bW49NzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9fZXRhdF8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzE0OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzE3OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk5KSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkyNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05Mjc7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkyNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05Mjc7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYmFzZV86IGRhdGUgLT4gaW50ZWdlciAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGRhdGVfY2FsY3VsXzogZGF0ZSkgKG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyKSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5NTU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mjk1NTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTU4NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTEzMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDU1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxMTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE3MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMjkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjgwMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI4MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTk4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMzkzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MDYwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NDcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkxMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTc3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxODcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMTg3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzMDYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTU4NDAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTcyNjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNzk4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NzAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTQyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA4NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIwODYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwMDA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzAwMDsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk3KSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTYwNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTM0MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDc4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxMzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE5NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNTUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA1MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjMwNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjAwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDA4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3MjUwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NjcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTkzMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTk5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA2NTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjExMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzMjAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgwMTAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTc0NTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODE4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4OTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTY0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjEwOTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxMDkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwNDU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA0NTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NykgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk4KSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTYzMzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTY5MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTE2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjIzNjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyOTYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzQ2MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjM0NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDMzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3NTYwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MDEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTk2NjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDM1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjEwMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMjUxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzNDQwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTYzMDAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTc3NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODUxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5MjUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTk5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE0NzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxNDcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMwOTA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA5MDsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OCkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk5KSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY3MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDE2MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTY3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMjgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjI5MDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTEwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDAyMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwMjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDY3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE3OTgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDg0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE1MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDUwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzNzYwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY2OTAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgyMDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODk1MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDQ3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE5OTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIxOTkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMzU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEzNTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5OSkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAwKSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY3NDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDE4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTY5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjI5MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTMwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDA0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQwNDAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjA5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDY4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MDAwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NDkwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAxNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDg2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE1NDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMDcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzA3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzNzcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY3MTAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTgyMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxODk3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NzMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDQ5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIwMTAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMDEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxODM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE4MzsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMCkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAxKSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY5MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDM4MDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTkxMDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyNTIwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMxNTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNzcwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDI4MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQyODAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjExMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNDgzMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4MTgwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5NjgwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjAzNzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTA3MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE3NjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzMzAwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzMwMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEzOTEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTY4ODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg0MDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTE2MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5OTMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDY5MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIyMzAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyMjMwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMzE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIzMTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMSkgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTcxMTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMDYyMDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMjE3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyNzkwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjM0MzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjI0MDYwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyNDU3MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjQ1NzAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjE0MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxNTAxMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE4NDAwMFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE5OTIwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjA2MTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTMyMDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjIwMjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIzNTgwMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMzU4MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDUwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjE0MDgwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTcwODAwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMTg2MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxOTM5MDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIwMTcwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIyMDk0MDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjI1MDAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjIyNTAwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5NTAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhdXhfZnJhbmNzX3ZlcnNfZXVyb3NfKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyNzk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzI3OTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNykgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MDg0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQzNVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNzk4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDc0M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU3MTlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2Njc5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NDU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NDU3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI2MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyODgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODA1MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMzY4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQyMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI1MDJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTQ3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTQ3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEyNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIxNDY1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjAzOFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4Mzg2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTU2MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA3NDlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxOTIzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MzAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MzAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMjk3M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzMyNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzI2OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDAyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg3KSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYzOTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxODEyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQyMDRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MTYwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjE0OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcxMTlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc5MDZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc5MDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzAxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMxNThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI4Mzg4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA3MzJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNzk3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjg5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM5NzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYzNzhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYzNzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTYzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjE3MjNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2MzUwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjg3MjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5OTE1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTExOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIzMDZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ3MTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ3MTNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMDA5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTExOyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzczOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNzM7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDMpICg3KSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNSkgKDkpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjcxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIxOTRcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDYxNFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU1ODJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NTgyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzU2NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODM2MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODM2MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMzNDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzQzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjg3MjlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTEwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIxNzlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzMjg3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDM4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgxNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjgxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyMDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMTk4NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjY2NjZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTA3MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzAyNzRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNDkxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjY5NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTEzMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTEzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMwNDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0MjA7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQyMDsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwNSkgKDkpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA3KSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3MTk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjc3M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjM3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjIyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcyNDBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MjQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDUxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5MDUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQwMVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIzODU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTI0NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNjYxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjc1OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4ODZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0OTk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NDc4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NDc4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzI1OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjIyMzgwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzE0NlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5NTk1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDgxOVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIwNThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzMjgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NzYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzEwMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ2Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDY3OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDA3KSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDgpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjc5NTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNjkxXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyMjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MjM2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODI4M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkzMTFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAxNDRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDAxNDRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNDk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjQ1MjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMDY1XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI1NDhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNjc1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDg2NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU5NzlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg1MjdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg1MjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzUwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjMwMDdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3OTA2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA0MjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNjgyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjk1NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQyMTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY3MzNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY3MzNcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMTg3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTExOyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTE0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM1MTQ7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMDgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyODcyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ2MjFcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzIyNFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgyNjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MzQwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDM5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI1MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTI1MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTIwM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzA4OTVcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzQ0NlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ2MDRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1Nzk2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjk3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTU5MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTU5MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0NDJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyMzY0MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjg2NzZcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTI2NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzI1NTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzODY2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTE1OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzc3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzc3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjMyNzVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1NjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU2MTsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAwOSkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEwKSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5NTc1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTY0MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MzIyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzOTM5M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDA1MDFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNTg4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNDY5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNDY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY5OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1OTQ2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTgwNlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0NDMzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTYyNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY4NTJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4MDYzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNzU4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNzU4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU0NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0MzM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTUyMlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyMTg2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzUxNlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ4NjVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4ODkyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4ODkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzM3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYwODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjA4OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk2NzBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzU3XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg0NDVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5NTE5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDYwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE3MjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI2MDVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI2MDVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjYwMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxOTA4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzQ2NDNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1NzM5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjk3MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgxODVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA4ODhcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA4ODhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTU1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjQ0MTdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI5NjE2XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIyODlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNjIzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDk3N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYzMTFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkwMTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkwMTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzMzgzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTExOyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjU1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM2NTU7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEpICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyOTk5NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxNDlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODg2OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzk5NTRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxMDc4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjE4MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzA3NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MzA3NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NTFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjMxNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzIyNTlcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDkyM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYxMzJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MzczXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODYwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTMzOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MTMzOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1OTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNDY4NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjk5NDJcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjY0NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM5OTNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MzYyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjcxMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTQ0NVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzOTQ0NVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM0MjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3MDI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzcwMjsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMSkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMjk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjUxMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5MjU3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDM1NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0ODlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyNjAyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzNTA1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzNTA1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc4OVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI2NTc4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMjU4MlwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1MjcyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjQ5M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc3NTFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4OTkxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxNzUxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxNzUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYzMFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI0OTMzXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDI0MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMyOTcwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNDMzM1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzU3MTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3MDc3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODM5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM5ODM5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzQ1NFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc0OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzQ5OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDEzKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTQpICgxMCkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwOTQ3XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzI5NVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMTAxXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTIyMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDIzODFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQzNTE4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NDQwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ0NDQwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzg3MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3MTQ5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzI4M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MDMwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzI3OFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzg1NjNcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM5ODI5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjQ5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQyNjU5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzcwOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1NDY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMDg5MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNjc5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTA3MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0ODRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3ODc0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNjk2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQwNjk2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzUyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc5Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzk2OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE0KSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE1KSAoMTApICgxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggem9uZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTEyM1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc1MDhcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDMzMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDE0NTdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQyNjIzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0Mzc2NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDY5M1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0NDY5M1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM4OTJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzMwNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM0NzNcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjIzNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzc0OTBcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NzgzXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MDA1NlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Mjg5MlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0Mjg5MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgfCBab25lREhhYml0YXRpb24uWm9uZTMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNTYxNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzEwNjdcIikpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzg3MVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzUyNzFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NjkyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI0XCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODA5MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDkyOFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI0MDkyOFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM1NDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjVcIikpKSkpKSkpKSkpKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTExOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM4NDM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzg0MzsgZW5kX2NvbHVtbj02MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDMzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jYWxjdWxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEwKSAoMSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHpvbmVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzExNDhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NTM4XCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAzNjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQxNDkwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MjY1N1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDM4MDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ3MjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDQ3MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzODk1XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjczMjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMzNTAwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzYyNjRcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NTIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzODgxNFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDAwODhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI5MjZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDI5MjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNzMyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjU2MzRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMDkyXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMVwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzM4OThcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM1Mjk5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNjcyMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiNFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzgxMjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjVcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5NjFcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNDA5NjFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNTUxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI1XCIpKSkpKSkpKSkpKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTExOyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODkwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM4OTA7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY2FsY3VsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxMCkgKDEpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxMzgyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzgyMFwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNjY1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTgwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDI5NzdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ0MTMwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MDY0XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MDY0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkyNFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3NTMxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzc1MVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NTM2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzgwMVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkxMDVcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwMzg5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMjQ4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMjQ4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1ODI2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTMyNVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MTUyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTU2NFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY5OTZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NDA2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxMjY4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxMjY4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU3OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMTsgZW5kX2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzkzNzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTM3OyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NhbGN1bF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTApICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCB6b25lX1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMxNDc2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzkzM1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNzg3XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI0MTkyN1wiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDMxMDZcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQ0MjYyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MjAwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQ1MjAwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI3NjE0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMzg1M1wiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2NjQ2XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNzkxNVwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzkyMjJcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjQwNTEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMzc4XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQzMzc4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc3MVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFpvbmVESGFiaXRhdGlvbi5ab25lMyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjI1OTA0XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzMTQxOVwiKSkgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM0MjU1XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIyXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIzNTY3MFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzcxMDdcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjRcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM4NTIxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI1XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxMzkyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjQxMzkyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzU4OFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNVwiKSkpKSkpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05MTE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTExOyBlbmRfY29sdW1uPTE0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxMTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MTE7IGVuZF9jb2x1bW49MTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ1OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDY3OyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJWCA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSBjb3Byb3ByaWV0ZV8pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE5MzhcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDE7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbW9udGFudF8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IGxpbWl0ZV8gOiBtb25leSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxOTM4XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM3NjdcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTY5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfIGxpbWl0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gbGltaXRlXyBlbHNlIG1vbnRhbnRfKSkpKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTk1MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk2MDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxODcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiOTM2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgzNzsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODQ0OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIyIC0gQXJyw6p0w6kgZHUgMjAgZMOpY2VtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjIgTk9SIDogTE9HTDIxMzQ0NzdBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMTg3MlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIzNjQwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMzI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYyNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYyNVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU2MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNTY4OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjE4NThcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzYxNFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5Mjsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM5OTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVggOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIG91dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb24gKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzc2N1wiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjA7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2NzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGp1aWxsZXQgMjAyMiAtIEFycsOqdMOpIGR1IDI5IGp1aWxsZXQgMjAyMiByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IE5PUiA6IFRSRUwyMjIwNzQ4QSAtIEFycsOqdMOpIGR1IDE2IGFvw7t0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgLSBOT1IgOiBUUkVMMjIyMDc0NEFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM3NjdcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5NjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODgwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjM2NDBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjYuXCIpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9tb25fbW9uIG1vbnRhbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGltaXRlXykgdGhlbiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03NTY7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MzsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IG1vbnRhbnRfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob190b3JhdF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBsaW1pdGVfIDogbW9uZXkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMzY0MFwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjkzNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCI2LlwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWYgKG9fZ3RfbW9uX21vbiBtb250YW50XyBsaW1pdGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGxpbWl0ZV8gZWxzZSBtb250YW50XykpKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yOTQ1OyBzdGFydF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTUyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDQ2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSBkdSAxZXIgb2N0b2JyZSAyMDIwIC0gQXJyw6p0w6kgZHUgMjUgc2VwdGVtYnJlIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIwMjA4MzVBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MjVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MzJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ4MTsgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzQ4ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMCAtIEFycsOqdMOpIGR1IDMgamFudmllciAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIwIE5PUiA6IExPR0wxOTM0MDA2QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCBtb250YW50XyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsZXQgbGltaXRlXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjM2MTRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI5MjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiNi5cIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gbW9udGFudF8gbGltaXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBsaW1pdGVfIGVsc2UgbW9udGFudF8pKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwOTE7IHN0YXJ0X2NvbHVtbj01NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDA5MTsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMjgwNVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc18pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTUzOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNzEwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDIyXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYzMDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI2MzA7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHJvcHJpZXRlXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIyNjk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjEyMjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMzU7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMzU7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIwXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNTYxMlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMjcyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWNhdGV1cl9tYWpvcmF0aW9uX2NoYXJnZXNfKSkpKTtcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MDQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxNTsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxNTsgZW5kX2NvbHVtbj01NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBvY3RvYnJlIDIwMjEgLSBBcnLDqnTDqSBkdSAyMyBzZXB0ZW1icmUgMjAyMSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjEyMzQ1MkFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDIyXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1NDIyXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpY2F0ZXVyX21ham9yYXRpb25fY2hhcmdlc18pKSkpO1xuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTA0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNTg5OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yNTg5OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgZHUgMWVyIG9jdG9icmUgMjAyMCAtIEFycsOqdMOpIGR1IDI1IHNlcHRlbWJyZSAyMDIwIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMDIwODM1QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9tb25fbW9uIChtb25leV9vZl9jZW50c19zdHJpbmcgXCI1Mzk5XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXQgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjEyMjRcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTA0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkwNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWdlXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbcOpbmFnZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTE2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3NDM7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3NDk7IGVuZF9jb2x1bW49NjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5MikgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoOSkgKDMwKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RfZGF0X2RhdCBkYXRlX3NpZ25hdHVyZV9wcmV0X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgxOTk0KSAoOSkgKDMwKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0IG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9cbiAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljaWVudF9kODQyXzEyXykpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTY7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3NjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3NjI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXQgZGF0ZV9zaWduYXR1cmVfcHJldF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMTk5NCkgKDkpICgzMCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggdHlwZV90cmF2YXV4X2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT4gZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml8xMl8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MTY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9taW5vcmF0aW9uX2ZvcmZhaXRhaXJlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDk1OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQ5NTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgICAgICAob19sdF9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gYWlkZV9maW5hbGVfIG1vbnRhbnRfZm9yZmFpdGFpcmVfZDg0Ml82XylcbiAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkgdGhlblxuICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9mb3JmYWl0YWlyZV9kODQyXzZfKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05NDI7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQyOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk0Mjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NDI7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV86IGRhdGUgLT4gaW50ZWdlciAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoZGF0ZV9jYWxjdWxfOiBkYXRlKSAobm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTEyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTkxMjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTI7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTI7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTI7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcmNoaXZlcy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjYwOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjYwOTsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTMzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMzOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDM3XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgb2N0b2JyZSAyMDIxIC0gQXJyw6p0w6kgZHUgMjMgc2VwdGVtYnJlIDIwMjEgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsJ2FpZGUgw6AgbCdhY2Nlc3Npb24gc29jaWFsZSBldCDDoCBsYSBzb3J0aWUgZGUgbCdpbnNhbHVicml0w6kgc3DDqWNpZmlxdWUgw6AgbCdvdXRyZS1tZXIgTk9SIDogTE9HTDIxMjM0NTJBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wcm9wcmlldGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fbXVsdF9tb25fcmF0ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuNzVcIikpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDczOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDA3MzsgZW5kX2NvbHVtbj0xNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENhbGN1bCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnQgZW4gc2VjdGV1ciBhY2Nlc3Npb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDcpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3Byb3ByaWV0ZV8pKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYmFzZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX2RhdGUpIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9iYXNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDFcIl0gKGVtYmVkX2ludGVnZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjc1XCIpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk4MTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5ODE7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgMzNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElWIDogQ2FsY3VsIGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudCBlbiBzZWN0ZXVyIGFjY2Vzc2lvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMCkgKDEpICgxKSkpKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIl1cbiAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2Jhc2VfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYmFzZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZGF0ZSkgZGF0ZV9jYWxjdWxfKSkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2Jhc2VcIjsgXCJpbnB1dDFcIl1cbiAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2ludGVnZXIpIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfKSkpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTkxMjsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MTI7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTEyOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTkxMjsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBkZXBlbnNlX25ldHRlX21pbmltYWxlXzogbW9uZXkgLT4gbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJkw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhbGxvY2F0aW9uX21lbnN1ZWxsZV86IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MTg7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2Nzk7IHN0YXJ0X2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Njc5OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICBvX3N1Yl9tb25fbW9uXG4gICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gY2hhcmdlc19tZW5zdWVsbGVzX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTkxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MTg7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTE4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkxODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNfc2V1aWxcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODg2OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTg4NjsgZW5kX2NvbHVtbj0xNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODg2OyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODg2OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzgyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NzgyOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItMTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3XykpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlXykpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDc3Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NzcyOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTEyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2x0ZV9tb25fbW9uIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX1xuICAgICAgICAgICAgICAgICBzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWdlXykgdGhlblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgKG9fcm91bmRfbW9uXG4gICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBzZXVpbF9taW5pbWFsX3Jlc3NvdXJjZXNfbWVuYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiNDk5OVwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4wMVwiKSkpXG4gICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjEwMC5cIikpIGVsc2VcbiAgICAgICAgICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04ODY7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9ODg2OyBlbmRfY29sdW1uPTE1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXzogZGF0ZSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVnZXIgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGRhdGVfY2FsY3VsXzogZGF0ZSkgKG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyKSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkxMzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTEzOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTEzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTM7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTEzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDA4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MTY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnRpY2xlcyBlbiB2aWd1ZXVyIMOgIHBhcnRpciBkdSAxZXIgamFudmllciAyMDIwIC0gQXJyw6p0w6kgZHUgMyBqYW52aWVyIDIwMjAgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBwb3VyIGwnYW5uw6llIDIwMjAgTk9SIDogTE9HTDE5MzQwMDZBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY2FsY3VsXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI4NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yODgwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IGR1IDFlciBvY3RvYnJlIDIwMjAgLSBBcnLDqnTDqSBkdSAyNSBzZXB0ZW1icmUgMjAyMCByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGwnYWlkZSDDoCBsJ2FjY2Vzc2lvbiBzb2NpYWxlIGV0IMOgIGxhIHNvcnRpZSBkZSBsJ2luc2FsdWJyaXTDqSBzcMOpY2lmaXF1ZSDDoCBsJ291dHJlLW1lciBOT1IgOiBMT0dMMjAyMDgzNUFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFyY2hpdmVzIGRlIGwnYXJyw6p0w6kgZHUgMjcgc2VwdGVtYnJlIDIwMTkgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCBkZSBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMTApICgxKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCI2XCIpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FyY2hpdmVzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODEwOyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIG9jdG9icmUgMjAyMSAtIEFycsOqdMOpIGR1IDIzIHNlcHRlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIE5PUiA6IExPR0wyMTIzNDUyQVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcmNoaXZlcyBkZSBsJ2FycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxMCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoMSkgKDEpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiNlwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfY29wcm9wcmlldGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NhbGN1bF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02ODM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY5MTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJ0aWNsZXMgZW4gdmlndWV1ciDDoCBwYXJ0aXIgZHUgMWVyIGphbnZpZXIgMjAyMiAtIEFycsOqdMOpIGR1IDIwIGTDqWNlbWJyZSAyMDIxIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgcG91ciBsJ2FubsOpZSAyMDIyIE5PUiA6IExPR0wyMTM0NDc3QVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICg3KSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKSkpKSkpKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJjaGl2ZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTg5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTk3OyBlbmRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSA0NlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFydGljbGVzIGVuIHZpZ3VldXIgw6AgcGFydGlyIGR1IDFlciBqdWlsbGV0IDIwMjIgLSBBcnLDqnTDqSBkdSAyOSBqdWlsbGV0IDIwMjIgcmVsYXRpZiBhdSBjYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBOT1IgOiBUUkVMMjIyMDc0OEEgLSBBcnLDqnTDqSBkdSAxNiBhb8O7dCAyMDIyIHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbCdhaWRlIMOgIGwnYWNjZXNzaW9uIHNvY2lhbGUgZXQgw6AgbGEgc29ydGllIGRlIGwnaW5zYWx1YnJpdMOpIHNww6ljaWZpcXVlIMOgIGwnb3V0cmUtbWVyIC0gTk9SIDogVFJFTDIyMjA3NDRBXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQXJjaGl2ZXMgZGUgbCdhcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIyKSAoNykgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjMpICgxKSAoMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI2XCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2NvcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjZcIikpKSkpKSkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTg3OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk4NzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSAzM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDYWxjdWwgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50IGVuIHNlY3RldXIgYWNjZXNzaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIwKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19jb3Byb3ByacOpdMOpXCJdXG4gICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19jb3Byb3ByaWV0ZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2NvcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9jYWxjdWxfKSlcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfY29wcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQxXCJdIChlbWJlZF9pbnRlZ2VyKSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXykpKSkpKSkpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT05MTM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTEzOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkxMzsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05MTM7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF/DqXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTcyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTcyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk3MjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NzI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTcyOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc186IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5yZXNzb3VyY2VzX23DqW5hZ2VfYXJyb25kaWVzXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODE7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0ODE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ4MTsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19zZXVpbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODE7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9jb25kaXRpb25fMl9kdV84MzJfMjVfOiBib29sID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZS5jb25kaXRpb25fMl9kdV84MzJfMjVcIl1cbiAgICAgIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDgwOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODA7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQ4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDgwOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8yNV86IGRlY2ltYWwgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl1cbiAgICAgIChlbWJlZF9kZWNpbWFsKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDgzOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gY2FsY3VsX25vbWJyZV9wYXJ0c19kb3Rfbl9ub21icmVfcGFydHNfZDgzMl8xMV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NDgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0ODM7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwiY2FsY3VsX8OpcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVwiO1xuICAgICAgXCJDYWxjdWzDiXF1aXZhbGVuY2VMb3llck1pbmltYWxlXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfw6lxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXCI7XG4gICAgICBcIkNhbGN1bMOJcXVpdmFsZW5jZUxveWVyTWluaW1hbGVcIl0gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlKVxuICAgICh7Q2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGVJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfY29uZGl0aW9uXzJfZHVfODMyXzI1XztcbiAgICAgICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlSW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUubW9udGFudCBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHlwZV9sb2dlbWVudF9mb3llcl86IFR5cGVMb2dlbWVudEZveWVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnR5cGVfbG9nZW1lbnRfZm95ZXJcIl1cbiAgICAgIChlbWJlZF90eXBlX2xvZ2VtZW50X2ZveWVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NTQ7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05NTQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTU0OyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NTQ7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2RhdGVfY29udmVudGlvbm5lbWVudF86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLmRhdGVfY29udmVudGlvbm5lbWVudFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTU2OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk1NjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX29mX251bWJlcnMgKDE5NzApICgxKSAoMSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk1NjsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnJlc3NvdXJjZXNfbcOpbmFnZV9hcnJvbmRpZXNcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTYwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2MDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NjA7IGVuZF9jb2x1bW49Njc7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2MjsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTk2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NjI7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2MjsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXzogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbFwiXVxuICAgICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTk2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05NjQ7IGVuZF9jb2x1bW49NzA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT05NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY0OyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2NDsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3Rfem9uZV86IFpvbmVESGFiaXRhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci56b25lXCJdIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2NjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB6b25lXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY2OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY5OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2OTsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05Njk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY5OyBlbmRfY29sdW1uPTUzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZWRldmFuY2VfOiBtb25leSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIucmVkZXZhbmNlXCJdIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05NTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTU4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTU4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk1ODsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTU4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk1ODsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05Njg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTY4OyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTk2ODsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNpZGVuY2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTk2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05Njg7IGVuZF9jb2x1bW49NDk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV86IHVuaXQgLT4gYm9vbCA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICBcImNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXIuY29uZGl0aW9uXzJfZHVfODMyXzI1XCJdIChlbWJlZF9ib29sKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ0Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDQ3OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDQ3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NDc7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSkpIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlXzogXG4gICAgdW5pdCAtPiBib29sID0gZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llci5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTQ5OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk0OTsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2Mi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTQ5OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTQ5OyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSUkgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTk0OTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01OTQ5OyBlbmRfY29sdW1uPTc1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2Mi03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUlJIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU5NTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTk1NDsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJSSA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcmVzaWRlbmNlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU1OTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU1OTc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS04XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X25fbm9tYnJlX3BhcnRzX2Q4MzJfMjVfOiB1bml0IC0+IGRlY2ltYWwgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcIl0gKGVtYmVkX2RlY2ltYWwpXG4gICAgICAocmFpc2UgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7IFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiXVxuICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyXCI7IFwiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRGb3llclwiXVxuICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIpXG4gICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHlwZV9sb2dlbWVudF9mb3llcl87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY29udmVudGlvbm5lbWVudF9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb252ZW50aW9ubmVtZW50XztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcmVkZXZhbmNlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvbmRpdGlvbl8yX2R1XzgzMl8yNV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1X30pKSkgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X211bHRpcGxpY2F0ZXVyX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3JfZDgzMl8yNV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1IGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9uX25vbWJyZV9wYXJ0c19kODMyXzI1XzogZGVjaW1hbCA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjUgaW5cbiAgbGV0IGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfcGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfOiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIGluXG4gIGxldCBjYWxjdWxfYXBsX2xvZ2VtZW50X2ZveWVyX2RvdF9jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNV9zZXVpbF86IGRlY2ltYWwgPSByZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsX2FwbF9sb2dlbWVudF9mb3llcl9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IHNldWlsX21pbmltYWxfZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwic2V1aWxfbWluaW1hbF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTE1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MTU7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3MjE7IHN0YXJ0X2NvbHVtbj03O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ3MjE7IGVuZF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2Q4NDJfMTFfM18pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdCByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfc2V1aWxfXG4gICAgICAgICAgICAgICAgICAgICAgY29lZmZpY2llbnRfZDg0Ml8xMV8pKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ3MDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDcwMjsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi0xMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBtb250YW50X2ZvcmZhaXRhaXJlX2Q4NDJfMTFfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTE1OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInBsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MDc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwNzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYyNjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDYyNjsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV8pKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAobGV0IHBsYWZvbmRfc2lnbmF0dXJlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICgoY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21fKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfZGF0ZSkgZGF0ZV9zaWduYXR1cmVfcHJldF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgIChsZXQgcGxhZm9uZF9lbnRyZWVfIDogbW9uZXkgPSAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgKChjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXRlX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKSBkYXRlX2VudHJlZV9sb2dlbWVudF8pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYWxjdWxfcGxhZm9uZF9tZW5zdWFsaXTDqV9kODQyXzZfYXZlY19saW1pdGF0aW9uX2RvbV90b21cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICggaWYgKG9fbHRfbW9uX21vbiBwbGFmb25kX3NpZ25hdHVyZV8gcGxhZm9uZF9lbnRyZWVfKVxuICAgICAgICAgICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfZW50cmVlXyBlbHNlIHBsYWZvbmRfc2lnbmF0dXJlXykpKSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDYwNzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjA3OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCJdXG4gICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAoKGNhbGN1bF9wbGFmb25kX21lbnN1YWxpdGVfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXylcbiAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgIFwiY2FsY3VsX3BsYWZvbmRfbWVuc3VhbGl0w6lfZDg0Ml82X2F2ZWNfbGltaXRhdGlvbl9kb21fdG9tXCI7XG4gICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9kYXRlKSBkYXRlX3NpZ25hdHVyZV9wcmV0XykpXG4gICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICBcImNhbGN1bF9wbGFmb25kX21lbnN1YWxpdMOpX2Q4NDJfNl9hdmVjX2xpbWl0YXRpb25fZG9tX3RvbVwiO1xuICAgICAgICAgICAgICAgICBcImlucHV0MVwiXSAoZW1iZWRfaW50ZWdlcikgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV8pKSkpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkwNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT05MDc7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbWVuc3VhbGl0ZV9taW5pbWFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJtZW5zdWFsaXTDqV9taW5pbWFsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkwNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05MDU7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0NzY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQ3NjsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfZG90X21vbnRhbnRfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MDU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9OTA1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV86IGRlY2ltYWwgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgXCJjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT05MDY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9OTA2OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDUwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ0NTA7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDItNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bF9hcGxfbG9nZW1lbnRfZm95ZXJfZG90X2NvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzI1X3NldWlsXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTA2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTkwNjsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhYmF0dGVtZW50X2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWxsb2NhdGlvbl9tZW5zdWVsbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTIwOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjkxOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDY5MTsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTExXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgKGxldCBkZXBlbnNlX25ldHRlX21pbmltYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImTDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGlvbl9tZW5zdWVsbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgIChvX2x0X21vbl9tb24gZGVwZW5zZV9uZXR0ZV9taW5pbWFsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfbWluaW1hbF9kZXBlbnNlX25ldHRlX21pbmltYWxlXykgdGhlblxuICAgICAgICAgICAgICAgICAgICAob19zdWJfbW9uX21vbiBzZXVpbF9taW5pbWFsX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIGRlcGVuc2VfbmV0dGVfbWluaW1hbGVfKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTkyMDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05MjA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9OTIwOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1lbnN1YWxpdGVfZWxpZ2libGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwibWVuc3VhbGl0w6lfw6lsaWdpYmxlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9OTAzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTkwMzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ2MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NDYxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAyIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnQgZGVzIGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiBtZW5zdWFsaXRlX3ByaW5jaXBhbGVfIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfKVxuICAgICAgICAgICAgICB0aGVuIHBsYWZvbmRfbWVuc3VhbGl0ZV9kODQyXzZfIGVsc2UgbWVuc3VhbGl0ZV9wcmluY2lwYWxlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTAzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTkwMzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQzOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTA5OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUwOTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfbWlub3JhdGlvbl9mb3JmYWl0YWlyZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX21pbm9yYXRpb25fZm9yZmFpdGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhYmF0dGVtZW50XyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcImFiYXR0ZW1lbnRfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgYWJhdHRlbWVudF9kZXBlbnNlX25ldHRlX21pbmltYWxlXylcbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiYWJhdHRlbWVudF9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZiAob19sdF9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykgdGhlblxuICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBhYmF0dGVtZW50XykpKSkpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQzOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk0MzsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT05NDM7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQzOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTkzODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDQyODsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg0Mi02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb25cbiAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gbWVuc3VhbGl0ZV9lbGlnaWJsZV9cbiAgICAgICAgICAgICAgICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzXykgbWVuc3VhbGl0ZV9taW5pbWFsZV8pXG4gICAgICAgICAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTkzODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT05Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV9jb250cmlidXRpb25zX3NvY2lhbGVzX2Fycm9uZGlfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdICh1bmVtYmVkZGFibGUpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDQ7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTIzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUyMzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfZMOpcGVuc2VfbmV0dGVfbWluaW1hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9kw6lwZW5zZV9uZXR0ZV9taW5pbWFsZVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2RlcGVuc2VfbmV0dGVfbWluaW1hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2TDqXBlbnNlX25ldHRlX21pbmltYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgIChsZXQgY3Jkc18gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJtb250YW50XCJdIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfZG90X21vbnRhbnRfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwibW9udGFudFwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpIGFpZGVfZmluYWxlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKGxldCBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyA6IG1vbmV5ID1cbiAgICAgICAgICAgICAgICAgICAgKG9fcm91bmRfbW9uXG4gICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9tb25fbW9uIChvX3N1Yl9tb25fbW9uIGFpZGVfZmluYWxlXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjUwXCIpKSlcbiAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAob19ndGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfbW9uX21vbiBhaWRlX2ZpbmFsZV9tb2luc19jcmRzX2Fycm9uZGllXyBjcmRzXylcbiAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgKG9fYWRkX21vbl9tb24gYWlkZV9maW5hbGVfbW9pbnNfY3Jkc19hcnJvbmRpZV8gY3Jkc18pXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk0NDsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NDQ7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTQ0OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk0NDsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZV9tb250YW50X21pbmltYWxcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAoYWlkZV9maW5hbGVfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NDU7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9OTQ1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NTQzOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDU0MzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODQyLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCJdXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaVwiXVxuICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX2NvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYXJyb25kaV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfY29udHJpYnV0aW9uc19zb2NpYWxlc19hcnJvbmRpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KSBhaWRlX2ZpbmFsZV8pKSkpKSkpXG4gICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fbHRfbW9uX21vbiBhaWRlX2ZpbmFsZV8gbW9udGFudF9taW5pbWFsX2FpZGVfZDg0Ml82XylcbiAgICAgICAgICAgICAgICAgICAgdGhlbiAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSBlbHNlIGFpZGVfZmluYWxlXykpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTk0NTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9OTQ1OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTk0NTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfc2lnbmF0dXJlX3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDE5OTIpICg5KSAoMzApKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTk3Nzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk3NzsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiU2VjdGV1ciBhY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc3OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc3OyBlbmRfY29sdW1uPTQ4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAgbGV0IF86IHVuaXQgPSBpZiAoXG4gICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTc2OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9OTc2OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJTZWN0ZXVyIGFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05NzY7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NzY7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlNlY3RldXIgYWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSBpblxuICB7Q2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlXztcbiAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGVfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfO1xuICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX21vbnRhbnRfbWluaW1hbF99XG5cbmxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCkgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPVxuICBsZXQgbW9kZV9vY2N1cGF0aW9uXzogTW9kZU9jY3VwYXRpb24udCA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiBpblxuICBsZXQgdHlwZV9haWRlXzogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udHlwZV9haWRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfOiBtb25leSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzaWRlbmNlX2luIGluXG4gIGxldCBjYXRlZ29yaWVfY2FsY3VsX2FwbF86IENhdGVnb3JpZUNhbGN1bEFQTC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJjYXTDqWdvcmllX2NhbGN1bF9hcGxcIl1cbiAgICAoZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04MjY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDQ4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NDg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBtb2RlX29jY3VwYXRpb25fXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIGxvZ2VtZW50Zm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50Zm95ZXJfKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fKVxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04MjY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19hcnJvbmRpXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODE5OyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTgxOTsgZW5kX2NvbHVtbj0yMjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE5NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTk3MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0xN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAyIDogQ2FsY3VsIGRlIGwnYWlkZSBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgYXJyb25kaV9jZW50YWluZV9zdXBlcmlldXJlXyByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT04MTk7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9ODE5OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfOiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwudCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9ODI3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTgyNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT04MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04MDsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IENhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGVuIHNlY3RldXIgbG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkFycsOqdMOpIGR1IDI3IHNlcHRlbWJyZSAyMDE5IHJlbGF0aWYgYXUgY2FsY3VsIGRlcyBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgZXQgZGUgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5zIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODI3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTgyNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc291c19jYWxjdWxfdHJhaXRlbWVudF86IFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJzb3VzX2NhbGN1bF90cmFpdGVtZW50XCJdXG4gICAgKGVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgyOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NzE7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgIChsZXQgdHJhaXRlbWVudF9mb3JtdWxlXyA6XG4gICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubG95ZXJfcHJpbmNpcGFsX2Jhc2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG95ZXJfcHJpbmNpcGFsKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODE7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODE7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NzY7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvY2F0aW9uLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODM7IHN0YXJ0X2NvbHVtbj0xNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4MzsgZW5kX2NvbHVtbj02OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzk7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3OTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0Nzc7IHN0YXJ0X2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ3NzsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDgwOyBzdGFydF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODA7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc4OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0Nzg7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDg0OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0ODQ7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYXRpb25fLkxvY2F0aW9uLmFnZWVzX291X2hhbmRpY2FwX2FkdWx0ZXNfaGViZXJnZWVzX29uZXJldXhfcGFydGljdWxpZXJzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4Nzsgc3RhcnRfY29sdW1uPTE1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDg3OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgdHlwZV9haWRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0ODg7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ4ODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmSW4uY29sb2NhdGlvbl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSAobG9jYXRpb25fLkxvY2F0aW9uLmNvbG9jYXRpb24pIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4NTsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDg1OyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChsb2NhdGlvbl8uTG9jYXRpb24uYmFpbGxldXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyU29jaWFsIGJhaWxsZXVyXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmFpbGxldXJfLkNvbnZlbnRpb25CYWlsbGV1clNvY2lhbC5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9wZXJjdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDkwOyBzdGFydF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0OTM7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ5NDsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDk0OyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0OTU7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ5NTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5tb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc19kODIzXzE2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBsYWZvbmRfbG95ZXJfZDgyM18xNl8yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnRhdXhfY29tcG9zaXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDc1OyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQ5NjsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSlcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6XG4gICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luKVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTM0OyBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTM0OyBlbmRfY29sdW1uPTcyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjk7IHN0YXJ0X2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyOTsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMDsgc3RhcnRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzMzsgc3RhcnRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTMzOyBlbmRfY29sdW1uPTc3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUzNTsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTM1OyBlbmRfY29sdW1uPTgwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmRhdGVfc2lnbmF0dXJlX3ByZXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzY7IHN0YXJ0X2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzNjsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTM4OyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Mzg7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5kYXRlX2VudHJlZV9sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mzk7IHN0YXJ0X2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzOTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY29wcm9wcmlldGUpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU0MDsgc3RhcnRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTQwOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQxOyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NDE7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzE7IHN0YXJ0X2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzMTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3ByZXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQyOyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NDI7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uYW5jaWVubmV0ZV9sb2dlbWVudF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLmFuY2llbm5ldGVfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTQzOyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NDM7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MzI7IHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUzMjsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICh7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZV9kODMyXzEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlKVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Mjg7IHN0YXJ0X2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU0NDsgZW5kX2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKSB0aGVuIHJlc3VsdF8gZWxzZSByZXN1bHRfKSkpKSkpKVxuICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgKHtUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOlxuICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiZGlyZWN0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci50eXBlX3VzZXIpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxNTsgc3RhcnRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxNTsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUxNjsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTE2OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc3NvdXJjZXNfbWVuYWdlX2F2ZWNfYXJyb25kaV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTA4OyBzdGFydF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDg7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwOTsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTA5OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEzOyBzdGFydF9jb2x1bW49NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTM7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi56b25lX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTA7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMDsgZW5kX2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTEyOyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTI7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZWRldmFuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5yZWRldmFuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTE0OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTQ7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1MTE7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUxMTsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXJJbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfbXVsdGlwbGljYXRldXJfZDgzMl8yNSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3JfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIubl9ub21icmVfcGFydHNfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5wbGFmb25kX2VxdWl2YWxlbmNlX2xveWVyX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudEZveWVyXCI7IFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTUwNzsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MTc7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Rm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgyOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT04Mjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFyZ186IG1vbmV5KSAtPiBcbiAgICAgICAgIHRyeVxuICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICBzdGFydF9saW5lPTgzMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0NjE7IHN0YXJ0X2NvbHVtbj0xNDtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDYxOyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAoc291c19jYWxjdWxfdHJhaXRlbWVudF8uVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpXG4gICAgICAgICAgICAgICAgICAgYXJnXykpXG4gICAgICAgICB3aXRoXG4gICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgc3RhcnRfbGluZT04MzI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9ODMyOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTgzMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFpZGVfZmluYWxlX2Zvcm11bGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTgzMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT04MzE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NTk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9ODMxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTgzMTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV99XG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW46IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4udCkgOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiB1bml0IC0+IGJvb2wgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luIGluXG4gIGxldCBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF86IHVuaXQgLT4gZGF0ZSA9IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gaW5cbiAgbGV0IGNvbmRpdGlvbl9wcmV0XzogUHJldC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX3Byw6p0XCJdXG4gICAgKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocHJldF86IFByZXQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgICAgICAgd2l0aFxuICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzA5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMwOTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMDk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzA5OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9wZXVwbGVtZW50X2xvZ2VtZW50X2w4MjJfMTBfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fcGV1cGxlbWVudF9sb2dlbWVudF9sODIyXzEwXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxODsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTg7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTg7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfOiBkYXRlID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJkYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaFwiXSAoZW1iZWRfZGF0ZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMjU7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBkYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzI1OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTAwOyBzdGFydF9jb2x1bW49MTQ7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTUwMDsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODYxLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiBkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjU7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzI1OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNldWlsX2w4MjJfM19wYXJ0c19wcm9wcmlldGVfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpw6l0w6lcIl0gKGVtYmVkX2RlY2ltYWwpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMxOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTA1OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIyLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdSBiw6luw6lmaWNpYWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjFcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzMxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzZXVpbF9sODIyXzNfcGFydHNfdXN1ZnJ1aXRfOiBkZWNpbWFsID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcInNldWlsX2w4MjJfM19wYXJ0c191c3VmcnVpdFwiXVxuICAgIChlbWJlZF9kZWNpbWFsKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzMyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMjsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEwNjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXUgYsOpbsOpZmljaWFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4xXCIpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzI7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2V1aWxfbDgyMl81X3BhdHJpbW9pbmVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJzZXVpbF9sODIyXzVfcGF0cmltb2luZVwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzM7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTkyODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT05Mjg7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjItMjJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IFByaXNlIGVuIGNvbXB0ZSBkdSBwYXRyaW1vaW5lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjMwMDAwMDBcIikpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzMzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCB1c3VmcnVpdF9vdV9wcm9wcmlldGVfZmFtaWxsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcInVzdWZydWl0X291X3Byb3ByacOpdMOpX2ZhbWlsbGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTY0OyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fb3JcbiAgICAgICAgICAgICAgKG1hdGNoICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnByb3ByaWV0YWlyZSlcbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgIChtYXRjaCAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC51c3VmcnVpdClcbiAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnRfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm5vbWJyZV9wZXJzb25uZXNfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMzU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTAzNTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IENvbmRpdGlvbnMgcmVsYXRpdmVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPiAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICBcIjFcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLk1hcmllcyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+IChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIilcbiAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlU2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpXG4gICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjJcIikpXG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5ub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudCkpXG4gICAgICAgICAgICAgIChvX2xlbmd0aCAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMyNjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjY7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgc2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhYmxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwic2VwdGnDqG1lX2FsaW7DqWFfbDgyM18xX2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE5OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTk7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTM3NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMzc0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDU7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0NTsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIzLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIHRydWUpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxOTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbm9uX291dmVydHVyZV9sODIyXzlfZGVjZW5jZV9sb2dlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOV9kZWNlbmNlX2xvZ2VtZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNjsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNzY7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzY7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubG9nZW1lbnRfZGVjZW50X2w4OV80NjIpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzE2OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOFwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTU7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzYyOyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzYyOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzE1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNTsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzExOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTMxMTsgZW5kX2NvbHVtbj01MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+IGNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzExOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzExOyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiAxIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IFLDqGdsZXMgZGUgbm9uLWN1bXVsXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IFByaW5jaXBlcyBnw6luw6lyYXV4XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5yZXNpZGVuY2VfcHJpbmNpcGFsZSkpKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTE7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9kb3RfZGF0ZV9uYWlzc2FuY2VfYXNzdXJlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwib3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZS5kYXRlX25haXNzYW5jZV9hc3N1csOpXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjM7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxNjEtMTctMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMSA6IEluZm9ybWF0aW9uIGV0IHNpbXBsaWZpY2F0aW9uIGRlcyBkw6ltYXJjaGVzIGRlcyBhc3N1csOpcy5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJOiBUaXRyZSBJSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgcmVsYXRpdmVzIGF1IGZpbmFuY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXy5EZW1hbmRldXIuZGF0ZV9uYWlzc2FuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9zw6ljdXJpdMOpX3NvY2lhbGUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDE2MS0xNy0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFyYWdyYXBoZSAxIDogSW5mb3JtYXRpb24gZXQgc2ltcGxpZmljYXRpb24gZGVzIGTDqW1hcmNoZXMgZGVzIGFzc3Vyw6lzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiA0IDogQXNzdXJhbmNlIHZpZWlsbGVzc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBCw6luw6lmaWNpYWlyZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSAxZXIgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBwcmVzdGF0aW9uc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnMgZXQgYXV4IHNvaW5zIC0gQ29udHLDtGxlIG3DqWRpY2FsIC0gVHV0ZWxsZSBhdXggcHJlc3RhdGlvbnMgc29jaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUk6IFRpdHJlIElJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyByZWxhdGl2ZXMgYXUgZmluYW5jZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIm91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcIjtcbiAgICAgIFwiT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGVcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlXCI7XG4gICAgICBcIk91dmVydHVyZURyb2l0c1JldHJhaXRlXCJdIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUpXG4gICAgKHtPdXZlcnR1cmVEcm9pdHNSZXRyYWl0ZUluLmRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9pbiA9XG4gICAgICAgIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90X2RhdGVfbmFpc3NhbmNlX2Fzc3VyZV99KSkpIGluXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2RvdF9hZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XzogZHVyYXRpb24gPSByZXN1bHRfLk91dmVydHVyZURyb2l0c1JldHJhaXRlLmFnZV9vdXZlcnR1cmVfZHJvaXQgaW5cbiAgbGV0IHBhdHJpbW9pbmVfdG90YWxfZGVtYW5kZXVyXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwicGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJcIl1cbiAgICAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zMjk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzI5OyBlbmRfY29sdW1uPTM3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yNjc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MjY3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX21vbl9tb25cbiAgICAgICAgICAgICAgKChkZW1hbmRldXJfLkRlbWFuZGV1ci5wYXRyaW1vaW5lKS5QYXRyaW1vaW5lLnByb2R1aXNhbnRfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KVxuICAgICAgICAgICAgICAoKGRlbWFuZGV1cl8uRGVtYW5kZXVyLnBhdHJpbW9pbmUpLlBhdHJpbW9pbmUubmVfcHJvZHVpc2FudF9wYXNfcmV2ZW51X3BlcmlvZGVfcjgyMl8zXzNfcjgyMl80KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzI5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyOTsgZW5kX2NvbHVtbj0zNztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbmF0aW9uYWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImNvbmRpdGlvbl9uYXRpb25hbGl0w6lcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTA7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMDsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTMzMjsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMzMjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggKGRlbWFuZGV1cl8uRGVtYW5kZXVyLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRnJhbmNhaXNlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfCBOYXRpb25hbGl0ZS5FdHJhbmdlcmUgY29uZGl0aW9uc18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9hcnRfNF9vcmRvbm5hbmNlXzIwMDJfbWF5b3R0ZSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU7IGVuZF9jb2x1bW49MzU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggKGRlbWFuZGV1cl8uRGVtYW5kZXVyLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBOYXRpb25hbGl0ZS5GcmFuY2Fpc2UgXyAtPiB0cnVlXG4gICAgICAgICAgICB8IE5hdGlvbmFsaXRlLkV0cmFuZ2VyZSBjb25kaXRpb25zXyAtPlxuICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTA7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEwOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwbGFmb25kX2luZGl2aWR1ZWxfbDgxNV85X3PDqWN1XCJdIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX3PDqWN1cml0w6lfc29jaWFsZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyOTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzMwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MTUtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogT3V2ZXJ0dXJlIGR1IGRyb2l0IGV0IGxpcXVpZGF0aW9uIGRlIGwnYWxsb2NhdGlvbiBkZSBzb2xpZGFyaXTDqSBhdXggcGVyc29ubmVzIMOiZ8OpZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDUgOiBBbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSSA6IEFsbG9jYXRpb25zIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFsbG9jYXRpb25zIGF1eCBwZXJzb25uZXMgw6Jnw6llcyAtIEFsbG9jYXRpb24gYXV4IGFkdWx0ZXMgaGFuZGljYXDDqXMgLSBBaWRlcyDDoCBsJ2VtcGxvaSBwb3VyIGxhIGdhcmRlIGRlcyBqZXVuZXMgZW5mYW50cyAtIFByb3RlY3Rpb24gY29tcGzDqW1lbnRhaXJlIGVuIG1hdGnDqHJlIGRlIHNhbnTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlIC0gRMOpY3JldHMgc2ltcGxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMSkgKDEpKSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiOTk5ODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzU7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgxNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24gZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IEFsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzIC0gQWxsb2NhdGlvbiBhdXggYWR1bHRlcyBoYW5kaWNhcMOpcyAtIEFpZGVzIMOgIGwnZW1wbG9pIHBvdXIgbGEgZ2FyZGUgZGVzIGpldW5lcyBlbmZhbnRzIC0gUHJvdGVjdGlvbiBjb21wbMOpbWVudGFpcmUgZW4gbWF0acOocmUgZGUgc2FudMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTkpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDQxODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNDA7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgxNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBPdXZlcnR1cmUgZHUgZHJvaXQgZXQgbGlxdWlkYXRpb24gZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgNSA6IEFsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWxsb2NhdGlvbnMgYXV4IHBlcnNvbm5lcyDDomfDqWVzIC0gQWxsb2NhdGlvbiBhdXggYWR1bHRlcyBoYW5kaWNhcMOpcyAtIEFpZGVzIMOgIGwnZW1wbG9pIHBvdXIgbGEgZ2FyZGUgZGVzIGpldW5lcyBlbmZhbnRzIC0gUHJvdGVjdGlvbiBjb21wbMOpbWVudGFpcmUgZW4gbWF0acOocmUgZGUgc2FudMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmUgLSBEw6ljcmV0cyBzaW1wbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIHPDqWN1cml0w6kgc29jaWFsZVwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDgzODQwXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTg7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGRlIGxhIENOQVYgMjAyMy0zIGR1IDA5LzAxLzIwMjIgXFxcIlJldmFsb3Jpc2F0aW9uIMOgIGNvbXB0ZXIgZHUgMWVyIGphbnZpZXIgMjAyM1xcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnRzIHJldmFsb3Jpc8OpcyBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIzKSAoMSkgKDEpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMTUzMzAyXCIpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9ODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkwOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaXJjdWxhaXJlIGRlIGxhIENOQVYgMjAyMi0zIGR1IDExLzAxLzIwMjIgXFxcIlJldmFsb3Jpc2F0aW9uIMOgIGNvbXB0ZXIgZHUgMWVyIGphbnZpZXIgMjAyMlxcXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIk1vbnRhbnRzIHJldmFsb3Jpc8OpcyBkZSBsJ2FsbG9jYXRpb24gZGUgc29saWRhcml0w6kgYXV4IHBlcnNvbm5lcyDDomfDqWVzXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2x0X2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMykgKDEpICgxKSkpKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjExMDAxNDRcIikpO1xuICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXV0cmVzX3NvdXJjZXMuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMzsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2lyY3VsYWlyZSBkZSBsYSBDTkFWIDIwMjEtMSBkdSAxMS8wMS8yMDIxIFxcXCJSZXZhbG9yaXNhdGlvbiDDoCBjb21wdGVyIGR1IDFlciBqYW52aWVyIDIwMjFcXFwiXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJNb250YW50cyByZXZhbG9yaXPDqXMgZGUgbCdhbGxvY2F0aW9uIGRlIHNvbGlkYXJpdMOpIGF1eCBwZXJzb25uZXMgw6Jnw6llc1wiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjEpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAob19sdF9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtb25leV9vZl9jZW50c19zdHJpbmcgXCIxMDg4MTc1XCIpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzEzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEzOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIyMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjk7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LmxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuTm9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLk91aSBwZXJzb25uZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZVN1cMOpcmlldXLDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfLlBlcnNvbm5lU291c0xvY2F0aW9uLmRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjU7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4uYW5uZWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMzApICgwKSAoMCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIyNzsgZW5kX2NvbHVtbj0yNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5WZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBLmVzdF9zdXBlcmlldXIpfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl0gKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiVsOpcmlmaWNhdGlvbsOCZ2VTdXDDqXJpZXVyw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF92ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjI0OyBzdGFydF9jb2x1bW49ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMjc7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSkuVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS5lc3Rfc3VwZXJpZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lXy5QZXJzb25uZVNvdXNMb2NhdGlvbi5jb25mb3JtZV9hcnRpY2xlX2w0NDJfMSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjE1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yMTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMpXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLk5vbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTG91ZU91U291c0xvdWVBRGVzVGllcnMuT3VpIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzEzOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM4MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODA7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzgwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MDsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV86IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5wcmVzdGF0aW9uX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zODE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgxOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkxvZ2VtZW50ICgpKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0zODE7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zODM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzgzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM4MzsgZW5kX2NvbHVtbj00NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXzogdW5pdCAtPiBkdXJhdGlvbiA9IGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLsOiZ2VfbDUxMl8zXzJcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2R1cmF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3NTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc1ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3NTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc1ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3NTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc1ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTU3NTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NTc1ODsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4NjItMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBTYWludC1CYXJ0aMOpbGVteSBldCBTYWludC1NYXJ0aW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTc1OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU3NjI7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODYyLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIEkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogU2FpbnQtQmFydGjDqWxlbXkgZXQgU2FpbnQtTWFydGluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX29mX251bWJlcnMgKDIyKSAoMCkgKDApKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTY2NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTU2NzA7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBEODYxLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbl9vZl9udW1iZXJzICgyMikgKDApICgwKSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTUyOyBlbmRfY29sdW1uPTQ5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uX29mX251bWJlcnMgKDIxKSAoMCkgKDApKSkpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7RWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yX30pKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uZGl0aW9uc19ob3JzX2FnZV86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGF0aW9uXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhdGlvblwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTI7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxMjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMTI7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTU7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIHVzdWZydWl0X291X3Byb3ByaWV0ZV9mYW1pbGxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdF9yYXRfcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnByb3ByaWV0YWlyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkRlbWFuZGV1ck91Q29uam9pbnRPdVBhcmVudE91VmlhUGFydHNTb2NpZXRlcyBwYXJ0c18gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHNfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRPdUF1dHJlLkF1dHJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC5cIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXVpbF9sODIyXzNfcGFydHNfcHJvcHJpZXRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQudXN1ZnJ1aXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgcGFydHNfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50T3VBdXRyZS5BdXRyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0XykpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzQ7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTc2OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXN1ZnJ1aXRfb3VfcHJvcHJpZXRlX2ZhbWlsbGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQzOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQucmVzaWRlbmNlX3ByaW5jaXBhbGUpXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gdHJ1ZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzEyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxMjsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zMTQ7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPiBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV8gKCkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNDsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMxNDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01MzE4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MzE5OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDQtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSVYgOiBDb25kaXRpb25zIGRlIHBldXBsZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMlwiKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTUzMTE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01MzEzOyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQ0LTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJViA6IENvbmRpdGlvbnMgZGUgcGV1cGxlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgbm9tYnJlX3BlcnNvbm5lc19sb2dlbWVudF9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjFcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIikgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIikpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA0ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDY1OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBDb25kaXRpb25zIHJlbGF0aXZlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAobGV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluaW1hbGVfc2Fuc19zZXVpbF9tX2NhcnJlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGludGVnZXIgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FkZF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjE2XCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxNlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiOVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiMTZcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjlcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfbWluaW1hbGVfc2Fuc19zZXVpbF9tX2NhcnJlc19cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCI3MFwiKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludCBub21icmVfcGVyc29ubmVzX2xvZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjhcIikpKSB0aGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjcwXCIpKSBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5zdXJmYWNlX21fY2FycmVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX21pbmltYWxlX3NhbnNfc2V1aWxfbV9jYXJyZXNfKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE0OyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMTQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzE0OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGFnZV9sMTYxXzE3XzJfc2VjdV86IGR1cmF0aW9uID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOiZ2VfbDE2MV8xN18yX3PDqWN1XCJdXG4gICAgKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjU7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwxNjEtMTctMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcmFncmFwaGUgMSA6IEluZm9ybWF0aW9uIGV0IHNpbXBsaWZpY2F0aW9uIGRlcyBkw6ltYXJjaGVzIGRlcyBhc3N1csOpcy5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gNCA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQsOpbsOpZmljaWFpcmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogRGlzcG9zaXRpb25zIHJlbGF0aXZlcyBhdXggcHJlc3RhdGlvbnNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyByZWxhdGl2ZXMgYXV4IHByZXN0YXRpb25zIGV0IGF1eCBzb2lucyAtIENvbnRyw7RsZSBtw6lkaWNhbCAtIFR1dGVsbGUgYXV4IHByZXN0YXRpb25zIHNvY2lhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJOiBUaXRyZSBJSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgcmVsYXRpdmVzIGF1IGZpbmFuY2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgc8OpY3VyaXTDqSBzb2NpYWxlXCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfZG90X2FnZV9vdXZlcnR1cmVfZHJvaXRfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMzY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzM2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBhdHJpbW9pbmVfcHJpc19lbl9jb21wdGVfOiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCJwYXRyaW1vaW5lX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMzNDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzM0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMwMjsgZW5kX2NvbHVtbj03NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LmVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mjg4OyBzdGFydF9jb2x1bW49MTg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTI5MDsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19mb2xkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChhY2NfOiBib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXN0YXRpb25fOiBQcmVzdGF0aW9uUmVjdWUudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fb3IgYWNjX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcSBwcmVzdGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXEgcHJlc3RhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uQWR1bHRlSGFuZGljYXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSkpKSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnByZXN0YXRpb25zX3JlY3VlcykpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTQ1OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05NDU7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMi0yMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIDQgOiBQcmlzZSBlbiBjb21wdGUgZHUgcGF0cmltb2luZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQ29uZGl0aW9ucyByZWxhdGl2ZXMgYXV4IHJlc3NvdXJjZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX21vbl9tb24gcGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgICAgICAgIHNldWlsX2w4MjJfNV9wYXRyaW1vaW5lXykpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIucGF0cmltb2luZSkuUGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI3MTsgc3RhcnRfY29sdW1uPTMzOyBlbmRfbGluZT0yNzE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX2d0X21vbl9tb24gcGF0cmltb2luZV90b3RhbF9kZW1hbmRldXJfXG4gICAgICAgICAgICAgICAgIHNldWlsX2w4MjJfNV9wYXRyaW1vaW5lXykgdGhlbiBwYXRyaW1vaW5lX3RvdGFsX2RlbWFuZGV1cl9cbiAgICAgICAgICAgICAgZWxzZSAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzM0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGV1cGxlbWVudF9sb2dlbWVudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICBcImNvbmRpdGlvbl9vdXZlcnR1cmVfbDgyMl8xMF9wZXVwbGVtZW50X2xvZ2VtZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMxNzsgZW5kX2NvbHVtbj01ODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzE3OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzE3OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDE7IHN0YXJ0X2NvbHVtbj0xODtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00MDE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0xMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTMxNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTc7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMxNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMTc7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWdlX2wzNTFfOF8xX3NlY3VfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjsgXCLDomdlX2wzNTFfOF8xX3PDqWN1XCJdXG4gICAgKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MzM1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMzNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfc8OpY3VyaXTDqV9zb2NpYWxlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE2Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNjM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEwzNTEtOFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNSA6IFRhdXggZXQgbW9udGFudCBkZSBsYSBwZW5zaW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMWVyIDogT3V2ZXJ0dXJlIGR1IGRyb2l0LCBsaXF1aWRhdGlvbiBldCBjYWxjdWwgZGVzIHBlbnNpb25zIGRlIHJldHJhaXRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgViA6IEFzc3VyYW5jZSB2aWVpbGxlc3NlIC0gQXNzdXJhbmNlIHZldXZhZ2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBJSUkgOiBEaXNwb3NpdGlvbnMgcmVsYXRpdmVzIGF1eCBhc3N1cmFuY2VzIHNvY2lhbGVzIGV0IMOgIGRpdmVyc2VzIGNhdMOpZ29yaWVzIGRlIHBlcnNvbm5lcyByYXR0YWNow6llcyBhdSByw6lnaW1lIGfDqW7DqXJhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBzw6ljdXJpdMOpIHNvY2lhbGVcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fYWRkX2R1cl9kdXIgYWdlX2wxNjFfMTdfMl9zZWN1X1xuICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoNSkgKDApICgwKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTMzNTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMzU7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfbG9nZW1lbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyMDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMDsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT05MTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3IgY29uZGl0aW9uX25vbl9vdXZlcnR1cmVfbDgyMl84X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbl9ub25fb3V2ZXJ0dXJlX2w4MjJfOV9kZWNlbmNlX2xvZ2VtZW50XykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT04NDsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9ODc7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBjb25kaXRpb25fbG9nZW1lbnRfbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X2xvY2F0aW9uX3RpZXJzX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25fb3V2ZXJ0dXJlX2w4MjJfMTBfcGV1cGxlbWVudF9sb2dlbWVudF8pKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzIwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiOyBcImNvbmRpdGlvbl8yX3I4MjNfNFwiXVxuICAgICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNDY7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTk5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMjI7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50ZS5Bc2NlbmRhbnQgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkRlc2NlbmRhbnQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50ZS5Db2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfbW9uX21vblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UucmVzc291cmNlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhZm9uZF9pbmRpdmlkdWVsX2w4MTVfOV9zZWN1X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS4yNVwiKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmRhdGVfbmFpc3NhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlX2wzNTFfOF8xX3NlY3VfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9jb3VyYW50ZV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnRpdHVsYWlyZV9hbGxvY2F0aW9uX3BlcnNvbm5lX2FnZWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7VmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfbmFpc3NhbmNlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjEyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQUluLmFubmVlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGR1cmF0aW9uX29mX251bWJlcnMgKDY1KSAoMCkgKDApKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIxNDsgZW5kX2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe1ZlcmlmaWNhdGlvbkFnZUluZmVyaWV1ck91RWdhbEEuZXN0X2luZmVyaWV1cl9vdV9lZ2FsID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCl9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJWw6lyaWZpY2F0aW9uw4JnZUluZsOpcmlldXJPdcOJZ2Fsw4BcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIlbDqXJpZmljYXRpb27DgmdlSW5mw6lyaWV1ck91w4lnYWzDgFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3ZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTE3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEyMTQ7IGVuZF9jb2x1bW49Mzc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfKSkpKSkpKS5WZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLmVzdF9pbmZlcmlldXJfb3VfZWdhbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5kYXRlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZV9sMTYxXzE3XzJfc2VjdV8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmJlbmVmaWNpYWlyZV9sMTYxXzE5X2wzNTFfOF9sNjQzXzNfc2VjdSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTM0Njsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQ2OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0NjsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM0Mjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM1Mzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzU1OyBlbmRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX25hdGlvbmFsaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X21vZGVfb2NjdXBhdGlvbl9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfbG9nZW1lbnRfKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfw6BfY2hhcmdlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjQ2OyBzdGFydF9jb2x1bW49NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTI1NDsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhcmVudGUuQXNjZW5kYW50IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkRlc2NlbmRhbnQgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkNvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLnBhcmVudGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBhcmVudGUuQXNjZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkRlc2NlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50ZS5Db2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5wYXJlbnRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkFzY2VuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGFyZW50ZS5EZXNjZW5kYW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQYXJlbnRlLkNvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFyZW50Xy5BdXRyZVBlcnNvbm5lQUNoYXJnZS5pbmNhcGFjaXRlXzgwX3BvdXJjZW50X291X3Jlc3RyaWN0aW9uX2VtcGxvaSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UucmVzc291cmNlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbXVsdF9tb25fcmF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWZvbmRfaW5kaXZpZHVlbF9sODE1Xzlfc2VjdV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMS4yNVwiKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTIyNzsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MjMtNFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbmRpdGlvbl8yX3I4MjNfNFwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdIGNvbmRpdGlvbl8yX3I4MjNfNF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSk7XG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMjE7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MzIxOyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzIxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE4NDY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xODUyOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg2Mi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm9ibGlnYXRpb25fc2NvbGFpcmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLkF2YW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uT2JsaWdhdGlvblNjb2xhaXJlLlBlbmRhbnQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmV0dWRlc19hcHByZW50aXNzYWdlX3N0YWdlX2Zvcm1hdGlvbl9wcm9faW1wb3NzaWJpbGl0ZV90cmF2YWlsKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NzI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Nzg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLTZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiA0IDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS5BdmFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQ5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTc7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMy0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwdGllbWVfYWxpbmVhX2w4MjNfMV9hcHBsaWNhYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLm5hdGlvbmFsaXRlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRnJhbmNhaXNlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmF0aW9uYWxpdGUuRXRyYW5nZXJlIGNvbmRpdGlvbnNfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25kaXRpb25zXy5Db25kaXRpb25zRXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTU2OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExNzg7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODIzLTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZHJvaXRfb3V2ZXJ0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuRWZmZWN0aXZlRXRQZXJtYW5lbnRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KSkpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTMyMTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjE7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzIxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTMyMTsgZW5kX2NvbHVtbj00NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBwZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV86IFBlcnNvbm5lQUNoYXJnZS50IGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJwZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTMyMzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zMjM7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExMzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTEzOTsgZW5kX2NvbHVtbj00OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgyMy00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG9fZmlsdGVyXG4gICAgICAgICAgICAgIChmdW4gKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgIFwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgIFwicHJpc2VfZW5fY29tcHRlX3BlcnNvbm5lX8OgX2NoYXJnZVwiXVxuICAgICAgICAgICAgICAgICBwcmlzZV9lbl9jb21wdGVfcGVyc29ubmVfYV9jaGFyZ2VfKVxuICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICBcInByaXNlX2VuX2NvbXB0ZV9wZXJzb25uZV/DoF9jaGFyZ2VcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKSBwZXJzb25uZV9hX2NoYXJnZV8pKSkpKSkpXG4gICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zMjM7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MzIzOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0zNDQ7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MzQ0OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTM1OTsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19tYXBcbiAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKGVuZmFudF8uRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpXG4gICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLlwiKVxuICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIGNvZWZmXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZl8pXG4gICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpKVxuICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgIHBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM0NDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgIFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM0Mzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0zNDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MzU3OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG9fbGVuZ3RoIHBlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MzQzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTM0MzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgc2V1aWxfbDgyMl8zX3BhcnRzX3VzdWZydWl0X1xuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjJcIikpXG4gICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwMDsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwMDsgZW5kX2NvbHVtbj00NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpXG4gICAgICAgICAgICAgICAgICB0aGVuICgpIGVsc2VcbiAgICAgICAgICAgICAgICAgIHJhaXNlIChBc3NlcnRpb25GYWlsZWQge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjAwOyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjAwOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBDb25kaXRpb25zIGfDqW7DqXJhbGVzIGQnYXR0cmlidXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pIGluXG4gIGxldCBfOiB1bml0ID0gaWYgKFxuICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgIChvX2x0X3JhdF9yYXQgc2V1aWxfbDgyMl8zX3BhcnRzX3Byb3ByaWV0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMC4yXCIpKVxuICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTk7IHN0YXJ0X2NvbHVtbj0xMztcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xOTk7IGVuZF9jb2x1bW49NDg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgyMi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IENvbmRpdGlvbnMgZ8OpbsOpcmFsZXMgZCdhdHRyaWJ1dGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKVxuICAgICAgICAgICAgICAgICAgdGhlbiAoKSBlbHNlXG4gICAgICAgICAgICAgICAgICByYWlzZSAoQXNzZXJ0aW9uRmFpbGVkIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE5OTsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE5OTsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJIDogQ29uZGl0aW9ucyBnw6luw6lyYWxlcyBkJ2F0dHJpYnV0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSBpblxuICBsZXQgXzogdW5pdCA9IGlmIChcbiAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdCBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoNCkgKDEpKSlcbiAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM3ODsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM3ODsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkgdGhlblxuICAgICAgICAgICAgICAgICAgKCkgZWxzZVxuICAgICAgICAgICAgICAgICAgcmFpc2UgKEFzc2VydGlvbkZhaWxlZCB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzc4OyBzdGFydF9jb2x1bW49MTM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzc4OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkgaW5cbiAge0VsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmRhdGVfY291cmFudGUgPSBkYXRlX2NvdXJhbnRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvbmRpdGlvbl8yX3I4MjNfNCA9XG4gICAgICAgY29uZGl0aW9uXzJfcjgyM180X31cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50IChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbjogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4udCkgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gIGxldCBtb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfOiBtb25leSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiBpblxuICBsZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV86IGludGVnZXIgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luIGluXG4gIGxldCB6b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi56b25lX2luIGluXG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHR5cGVfYWlkZV86IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbiBpblxuICBsZXQgcmVzaWRlbmNlXzogQ29sbGVjdGl2aXRlLnQgPSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNpZGVuY2VfaW4gaW5cbiAgbGV0IGNhdGVnb3JpZV9jYWxjdWxfYXBsXzogQ2F0ZWdvcmllQ2FsY3VsQVBMLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJjYXTDqWdvcmllX2NhbGN1bF9hcGxcIl1cbiAgICAoZW1iZWRfY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNjY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2NjsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQzMDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xNDMwOyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggbW9kZV9vY2N1cGF0aW9uX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBsb2NhdGlvbl8pXG4gICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuTG9nZW1lbnRGb3llciBsb2dlbWVudGZveWVyXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKENhdGVnb3JpZUNhbGN1bEFQTC5BY2Nlc3Npb25Qcm9wcmlldGUgcHJvcHJpZXRhaXJlXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBsb2NhdGlvbl8gLT5cbiAgICAgICAgICAgICAgICAoQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvY2F0aW9uIGxvY2F0aW9uXylcbiAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgIChDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIHByb3ByaWV0YWlyZV8pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNjY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJyZXNzb3VyY2VzX23DqW5hZ2VfYXZlY19hcnJvbmRpXCJdXG4gICAgKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA1ODsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU4OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xOTc0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE5NzQ7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gMiA6IENhbGN1bCBkZSBsJ2FpZGUgZW4gc2VjdGV1ciBsb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGFycm9uZGlfY2VudGFpbmVfc3VwZXJpZXVyZV8gcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA1ODsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT0xMDU4OyBlbmRfY29sdW1uPTIyO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF86IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwic2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXCJdXG4gICAgKGVtYmVkX3NpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0xMDY3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvYXJyZXRlXzIwMTktMDktMjcuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9OTA7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIDdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBDYWxjdWwgZGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBlbiBzZWN0ZXVyIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZV9cbiAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLlBlcnNvbm5lU2V1bGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgXyAtPlxuICAgICAgICAgICAgICAgIChTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuQ291cGxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSlcbiAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5Db3VwbGUgKCkpXG4gICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgKFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC5QZXJzb25uZVNldWxlICgpKVxuICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0IF8gLT5cbiAgICAgICAgICAgICAgICAoU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEwNjc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBzb3VzX2NhbGN1bF90cmFpdGVtZW50XzogVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJzb3VzX2NhbGN1bF90cmFpdGVtZW50XCJdXG4gICAgKGVtYmVkX3RyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwNjk7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTA2OTsgZW5kX2NvbHVtbj0zMztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA2OTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIlRvdXMgc2VjdGV1cnNcIjsgXCJTZWN0ZXVyIGxvZ2VtZW50LWZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTYzOTg7IHN0YXJ0X2NvbHVtbj0yNDtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02Mzk4OyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaCByZXNpZGVuY2VfXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBtYXRjaCBjYXRlZ29yaWVfY2FsY3VsX2FwbF9cbiAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzX30pXG4gICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9uZXlfb2ZfY2VudHNfc3RyaW5nIFwiMFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpdGVtZW50X251bF90b3V0X2xlX3RlbXBzX30pXG4gICAgICAgICAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIucmVkZXZhbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQxMDsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDEwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDQ7IHN0YXJ0X2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDA0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDEyOyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQxMjsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IGRhdGVfY291cmFudGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQwNzsgc3RhcnRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MDc7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDU7IHN0YXJ0X2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDA1OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQwODsgc3RhcnRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MDg7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MDY7IHN0YXJ0X2NvbHVtbj0yMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDA2OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHRydWUgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDE2OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQxNjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBmYWxzZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MjM7IHN0YXJ0X2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDIzOyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi50eXBlX2FpZGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyNDsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0MjQ7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBmYWxzZSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MjA7IHN0YXJ0X2NvbHVtbj0yNjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDIwOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5yZWR1Y3Rpb25fbG95ZXJfc29saWRhcml0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyODsgc3RhcnRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0Mjg7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQyOTsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTY0Mjk7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2My03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTb3VzLXNlY3Rpb24gSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02NDAzOyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQwMzsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5QYXNEZUNoYW5nZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY0MzA7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NDMwOyBlbmRfY29sdW1uPTU3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NjMtN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU291cy1zZWN0aW9uIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpfSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKHBhcmFtMF86IG1vbmV5KSAtPiAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NjQwMjsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NjQzMTsgZW5kX2NvbHVtbj0xMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODYzLTdcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtc2VjdGlvbiBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBTYWludC1QaWVycmUtZXQtTWlxdWVsb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSkpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NTc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTU1NzsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIG1hdGNoIGNhdGVnb3JpZV9jYWxjdWxfYXBsX1xuICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgfCBDYXRlZ29yaWVDYWxjdWxBUEwuTG9jYXRpb24gbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50XG4gICAgICAgICAgICAgICAgICAgPVxuICAgICAgICAgICAgICAgICAgIChsZXQgcmVzdWx0XyA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7IFwiZGlyZWN0XCI7IFwiaW5wdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5sb3llcl9wcmluY2lwYWxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG95ZXJfcHJpbmNpcGFsKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1Njg7IHN0YXJ0X2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1Njg7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2Mzsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTYzOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2NhdGlvbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTcwOyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzA7IGVuZF9jb2x1bW49Njk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjY7IHN0YXJ0X2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2NjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2NDsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY0OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2Nzsgc3RhcnRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY3OyBlbmRfY29sdW1uPTc2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnpvbmVfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHpvbmVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU2NTsgc3RhcnRfY29sdW1uPTIwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTY1OyBlbmRfY29sdW1uPTI0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24ubG9nZW1lbnRfZXN0X2NoYW1icmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTcxOyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzE7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9jYXRpb24uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTc0OyBzdGFydF9jb2x1bW49MTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzQ7IGVuZF9jb2x1bW49ODA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udHlwZV9haWRlX2luID0gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB0eXBlX2FpZGVfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3NTsgc3RhcnRfY29sdW1uPTI1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTc1OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmNvbG9jYXRpb25faW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2NhdGlvbl8uTG9jYXRpb24uY29sb2NhdGlvbikgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTcyOyBzdGFydF9jb2x1bW49MjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1NzI7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4ucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobG9jYXRpb25fLkxvY2F0aW9uLmJhaWxsZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVCYWlsbGV1ci5CYWlsbGV1clNvY2lhbCBiYWlsbGV1cl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhaWxsZXVyXy5Db252ZW50aW9uQmFpbGxldXJTb2NpYWwucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU3Nzsgc3RhcnRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTgwOyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvY2F0aW9uXy5Mb2NhdGlvbi5sb2dlbWVudF9tZXVibGVfZDg0Ml8yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU4MTsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTgxOyBlbmRfY29sdW1uPTY5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnJlc2lkZW5jZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgcmVzaWRlbmNlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjI7IHN0YXJ0X2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU2MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZJbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2NhdGlvbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1ODI7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTU4MjsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAocGFyYW0wXzogbW9uZXkpIC0+IChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX21vbmV5KSBwYXJhbTBfKSkpKSkpKX0pXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWZcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZlwiOyBcImRpcmVjdFwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmKVxuICAgICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE1NjE7IHN0YXJ0X2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTgzOyBlbmRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSl9KSlcbiAgICAgICAgICAgIHwgQ2F0ZWdvcmllQ2FsY3VsQVBMLkFjY2Vzc2lvblByb3ByaWV0ZSBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgKGxldCB0cmFpdGVtZW50X2Zvcm11bGVfIDpcbiAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiXVxuICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImRpcmVjdFwiOyBcImlucHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4pXG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfYmFzZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgcmVzc291cmNlc19tZW5hZ2VfYXZlY19hcnJvbmRpXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTc7IHN0YXJ0X2NvbHVtbj00NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MTc7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTg7IHN0YXJ0X2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxODsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyNTsgc3RhcnRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI1OyBlbmRfY29sdW1uPTc3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uem9uZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSB6b25lXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MTk7IHN0YXJ0X2NvbHVtbj0yMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxOTsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNpZGVuY2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyMDsgc3RhcnRfY29sdW1uPTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjIwOyBlbmRfY29sdW1uPTM1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSBkYXRlX2NvdXJhbnRlXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjQ7IHN0YXJ0X2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyNDsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLm1lbnN1YWxpdGVfcHJpbmNpcGFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjY7IHN0YXJ0X2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyNjsgZW5kX2NvbHVtbj03MjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuc2l0dWF0aW9uX3I4MjJfMTFfMTNfMTcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjM0OyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MzQ7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjI5OyBzdGFydF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2Mjk7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYyODsgc3RhcnRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjI4OyBlbmRfY29sdW1uPTc5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzMTsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMxOyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4uZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5kYXRlX2VudHJlZV9sb2dlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MzI7IHN0YXJ0X2NvbHVtbj0zNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYzMjsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY2hhcmdlc19tZW5zdWVsbGVzX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjI3OyBzdGFydF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2Mjc7IGVuZF9jb2x1bW49NzY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGVJbi5jb3Byb3ByaWV0ZV9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUuY29wcm9wcmlldGUpIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYzMzsgc3RhcnRfY29sdW1uPTI4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjMzOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5vcGVyYXRpb25zX2xvZ2VtZW50X2V2b2x1dGlmc19zb2NpYXV4X2FjY2Vzc2lvbl9wcm9wcmlldGVfYWlkZWVfRXRhdClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MjI7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYyMzsgZW5kX2NvbHVtbj04MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSl9KSkpKVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKGxldCByZXN1bHRfIDpcbiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudCA9XG4gICAgICAgICAgICAgICAgICAgICAgKHtDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUubWVuc3VhbGl0ZV9lbGlnaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5tZW5zdWFsaXRlX21pbmltYWxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfbW9uZXkpIHBhcmFtMF8pKSkpKSkpfSlcbiAgICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpw6l0w6lcIjsgXCJkaXJlY3RcIjtcbiAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgKGVtYmVkX2NhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYxNjsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjM1OyBlbmRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIHRoZW4gcmVzdWx0XyBlbHNlIHJlc3VsdF8pKSkpKSkpXG4gICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAoe1RyYWl0ZW1lbnRGb3JtdWxlQWlkZUZpbmFsZS5haWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpXG4gICAgICAgICAgICB8IENhdGVnb3JpZUNhbGN1bEFQTC5Mb2dlbWVudEZveWVyIGxvZ2VtZW50X2ZveWVyX18gLT5cbiAgICAgICAgICAgICAgICAobGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcilcbiAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJpbnB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9jYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbilcbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIudHlwZV91c2VyKSB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDQ7IHN0YXJ0X2NvbHVtbj0zNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDQ7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dlbWVudF9mb3llcl9fLkxvZ2VtZW50Rm95ZXIuZGF0ZV9jb252ZW50aW9ubmVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwNTsgc3RhcnRfY29sdW1uPTM3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjA1OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5yZXNpZGVuY2VfaW4gPSAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHJlc2lkZW5jZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk3OyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTc7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlZGV2YW5jZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgKGxvZ2VtZW50X2ZveWVyX18uTG9nZW1lbnRGb3llci5yZWRldmFuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNjAxOyBzdGFydF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pbiA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRyeSByZXNzb3VyY2VzX21lbmFnZV9hdmVjX2Fycm9uZGlfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5NTsgc3RhcnRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTk1OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodHJ5IG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5Njsgc3RhcnRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNTk2OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsXyB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDA7IHN0YXJ0X2NvbHVtbj00NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYwMDsgZW5kX2NvbHVtbj03NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAxIDogQ2FsY3VsLCBsaXF1aWRhdGlvbiBldCB2ZXJzZW1lbnQgZGVzIGFpZGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4uem9uZV9pbiA9IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkgem9uZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk4OyBzdGFydF9jb2x1bW49MjA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTg7IGVuZF9jb2x1bW49MjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0cnkgZGF0ZV9jb3VyYW50ZV8gd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTk5OyBzdGFydF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1OTk7IGVuZF9jb2x1bW49NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llckluLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfXy5Mb2dlbWVudEZveWVyLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTYwMzsgc3RhcnRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjAzOyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfSkpKX0pKSkpXG4gICAgICAgICAgICAgICAgICAgaW5cbiAgICAgICAgICAgICAgICAgICAobGV0IHJlc3VsdF8gOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICAgICAgICAgICAgICAgICAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmVxdWl2YWxlbmNlX2xveWVyID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5lcXVpdmFsZW5jZV9sb3llcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIubG95ZXJfbWluaW1hbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXN1bHRfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLmFpZGVfZmluYWxlX2Zvcm11bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwYXJhbTBfOiBtb25leSkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcIm91dHB1dFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50cmFpdGVtZW50X2FpZGVfZmluYWxlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9tb25leSkgcGFyYW0wXykpKSkpKSl9KVxuICAgICAgICAgICAgICAgICAgIGluXG4gICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGwgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIl1cbiAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJcIjsgXCJkaXJlY3RcIjsgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAoZW1iZWRfY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIpXG4gICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICgobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTU5NDsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE2MDY7IGVuZF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkgdGhlbiByZXN1bHRfIGVsc2UgcmVzdWx0XykpKSkpKSlcbiAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICh7VHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICAgICAgICAgICAgICAodHJhaXRlbWVudF9mb3JtdWxlXy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5haWRlX2ZpbmFsZV9mb3JtdWxlKTtcbiAgICAgICAgICAgICAgICAgICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICh0cmFpdGVtZW50X2Zvcm11bGVfLkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUpfSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDY5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEwNjk7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXSAodW5lbWJlZGRhYmxlKSAoXG4gICAgdHJ5XG4gICAgICAoZnVuIChhcmdfOiBtb25leSkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDcyOyBzdGFydF9jb2x1bW49MTI7XG4gICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA3MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Mzsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE0NDM7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy05XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDEgOiBDYWxjdWwsIGxpcXVpZGF0aW9uIGV0IHZlcnNlbWVudCBkZXMgYWlkZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgIChzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSlcbiAgICAgICAgICAgICAgICAgICBhcmdfKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTA3MjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDcyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNzI7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiYWlkZV9maW5hbGVfZm9ybXVsZVwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMDcxOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEwNzE7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbGN1bCBkdSBtb250YW50IGRlIGwnYWxsb2NhdGlvbiBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwNzE7IHN0YXJ0X2NvbHVtbj0xMjtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDcxOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJUb3VzIHNlY3RldXJzXCI7IFwiU2VjdGV1ciBsb2dlbWVudC1mb3llclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FsY3VsIGR1IG1vbnRhbnQgZGUgbCdhbGxvY2F0aW9uIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MzcyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNzQ7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY3JldCBuwrAgMjAyMS0xNzUwIGR1IDIxIGTDqWNlbWJyZSAyMDIxIHBvcnRhbnQgZGl2ZXJzZXMgbWVzdXJlcyBzdXIgbGVzIGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudCBldCByZWxhdGlmIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnQgw6AgU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIHJlc2lkZW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjUpICgxMikgKDMxKSkpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgIChzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSlcbiAgICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50IChpbnRlZ2VyX29mX3N0cmluZyBcIjIwMjZcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19nZXRZZWFyIGRhdGVfY291cmFudGVfKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiOC5cIikpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNDQxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTE0NDE7IGVuZF9jb2x1bW49MzM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtOVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMSA6IENhbGN1bCwgbGlxdWlkYXRpb24gZXQgdmVyc2VtZW50IGRlcyBhaWRlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBzb3VzX2NhbGN1bF90cmFpdGVtZW50Xy5UcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUuYWlkZV9maW5hbGVfZm9ybXVsZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTA3MTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMDcxOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiVG91cyBzZWN0ZXVyc1wiOyBcIlNlY3RldXIgbG9nZW1lbnQtZm95ZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDYWxjdWwgZHUgbW9udGFudCBkZSBsJ2FsbG9jYXRpb24gbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlID0gYWlkZV9maW5hbGVfZm9ybXVsZV87XG4gICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlID1cbiAgICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlX31cblxubGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luOiBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi50KSA6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudC50ID1cbiAgbGV0IGluZm9ybWF0aW9uc186IEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudCA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5pbmZvcm1hdGlvbnNfaW4gaW5cbiAgbGV0IGRhdGVfZW1tZW5hZ2VtZW50XzogZGF0ZSA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kYXRlX2VtbWVuYWdlbWVudF9pbiBpblxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5FbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc186IG1vbmV5ID0gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLkVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudEluLmRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19pbiBpblxuICBsZXQgZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfOF8yXzogZHVyYXRpb24gPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImTDqWxhaV9hcHLDqHNfZW1tw6luYWdlbWVudF9sODIzXzhfMlwiXSAoZW1iZWRfZHVyYXRpb24pIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00OTQ7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDk0OyBlbmRfY29sdW1uPTQ0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA4Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yMDgyOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTIwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IGR1cmF0aW9uX29mX251bWJlcnMgKDApICg2KSAoMCkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTQ7IGVuZF9jb2x1bW49NDQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9yYW5nX2VuZmFudF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwiY29uZGl0aW9uX3JhbmdfZW5mYW50XCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00OTE7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDkxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkxOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkxOyBlbmRfY29sdW1uPTMyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MjA1ODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MjA2MzsgZW5kX2NvbHVtbj03NztcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBEODIzLTIwXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBQcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogTW9kYWxpdMOpcyBkZSBsaXF1aWRhdGlvbiBldCBkZSB2ZXJzZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzogUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChpbmZvcm1hdGlvbnNfLkluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQubm9tYnJlX2VuZmFudHNfYV9uYWl0cmVfYXByZXNfdHJvaXNpZW1lX21vaXNfZ3Jvc3Nlc3NlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nIFwiM1wiKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkxOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MTsgZW5kX2NvbHVtbj0zMjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5MTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTE7IGVuZF9jb2x1bW49MzI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgXCJiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwODsgZW5kX2NvbHVtbj02NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA4OyBlbmRfY29sdW1uPTY1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgIFwiYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1wiO1xuICAgICAgXCJCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICBcImJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcIjtcbiAgICAgIFwiQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXVxuICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgKHtCYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzSW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVffSkpKSBpblxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF86IG1vbmV5ID0gcmVzdWx0Xy5CYXNlTWVuc3VlbGxlQWxsb2NhdGlvbnNGYW1pbGlhbGVzLm1vbnRhbnQgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FwbF9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfYXBsLm3DqW5hZ2VcIl1cbiAgICAgIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTA0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNDsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA0OyBlbmRfY29sdW1uPTM2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUwNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDQ7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbC5kZW1hbmRldXJcIl1cbiAgICAgIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NTA1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNTsgZW5kX2NvbHVtbj0zOTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT01MDU7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NTA1OyBlbmRfY29sdW1uPTM5O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTUwNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDU7IGVuZF9jb2x1bW49Mzk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FwbC5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT01MDY7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNjsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NTA2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTUwNjsgZW5kX2NvbHVtbj00MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FwbF9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlXzogdW5pdCAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FwbC5jb25kaXRpb25fbG9nZW1lbnRfcsOpc2lkZW5jZV9wcmluY2lwYWxlXCJdXG4gICAgICAoZW1iZWRfYm9vbCkgKHJhaXNlIEVtcHR5RXJyb3IpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV86IHVuaXQgLT4gYm9vbCA9IFxuICAgIGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hcGwuY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VcIl0gKGVtYmVkX2Jvb2wpIChyYWlzZVxuICAgICAgRW1wdHlFcnJvcikpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXzogdW5pdCAtPiBkYXRlID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FwbC5kYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaFwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IHJlc3VsdF86IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfYXBsXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FwbFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdXG4gICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLm1lbmFnZV9pbiA9XG4gICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfbWVuYWdlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FwbF9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYXBsX2RvdF9kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF99KSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5kYXRlX2NvdXJhbnRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXRlXzogYm9vbCA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FwbF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hcGxfZG90X2NvbmRpdGlvbl8yX3I4MjNfNF86IFBlcnNvbm5lQUNoYXJnZS50IC0+IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmNvbmRpdGlvbl8yX3I4MjNfNCBpblxuICBsZXQgY29uZGl0aW9uX3BlcmlvZGVfZGVtZW5hZ2VtZW50XzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lQcmltZURlRMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX3DDqXJpb2RlX2TDqW3DqW5hZ2VtZW50XCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDkyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTIwNjc7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTIwNzg7IGVuZF9jb2x1bW49NzU7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDgyMy0yMFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgIChpbmZvcm1hdGlvbnNfLkluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQuZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX2VuZmFudF9vdV9kZXJuaWVyX3NpX3BsdXMpXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IERhdGVOYWlzc2FuY2VUcm9pc2llbWVPdURlcm5pZXJQbHVzRW5mYW50Lk1vaW5zRGVUcm9pc0VuZmFudHMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IERhdGVOYWlzc2FuY2VUcm9pc2llbWVPdURlcm5pZXJQbHVzRW5mYW50LlBsdXNEZVRyb2lzRW5mYW50cyBkYXRlX25haXNzYW5jZV9vdV9ncm9zc2Vzc2VfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIGRhdGVfbmFpc3NhbmNlX291X2dyb3NzZXNzZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkRhdGVEZU5haXNzYW5jZSBkYXRlX25haXNzYW5jZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hZGRfZGF0X2R1ciBBYm9ydE9uUm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2ZpcnN0RGF5T2ZNb250aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX25haXNzYW5jZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkdXJhdGlvbl9vZl9udW1iZXJzICgyKSAoMCkgKDApKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHVyYXRpb25fb2ZfbnVtYmVycyAoMCkgKDApICgtMSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEYXRlRGVOYWlzc2FuY2VPdU1vaXNEZUdyb3NzZXNzZS5BdmFudFByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKSAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MjsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTI7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHBsYWZvbmRfZDgyM18yMl86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcInBsYWZvbmRfZDgyM18yMlwiXSAoZW1iZWRfbW9uZXkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00OTU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDk1OyBlbmRfY29sdW1uPTI2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2FycmV0ZV8yMDE5LTA5LTI3LmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQzMDM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDMwMzsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBWSUlJIDogUHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV8gKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgb19hZGRfbW9uX21vblxuICAgICAgICAgICAgICAob19tdWx0X21vbl9yYXRcbiAgICAgICAgICAgICAgICAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19kb3RfbW9udGFudF9cbiAgICAgICAgICAgICAgICAgKGRlY2ltYWxfb2Zfc3RyaW5nIFwiMi40XCIpKVxuICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgIChvX2d0X2ludF9pbnRcbiAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgIChvX2ZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChwZXJzb25uZV9hX2NoYXJnZV86IFBlcnNvbm5lQUNoYXJnZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpKVxuICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIzXCIpKSB0aGVuXG4gICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2RvdF9tb250YW50X1xuICAgICAgICAgICAgICAgICAgICAob19tdWx0X3JhdF9yYXRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fdG9yYXRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvX3N1Yl9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjNcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAoZGVjaW1hbF9vZl9zdHJpbmcgXCIwLjJcIikpKSBlbHNlXG4gICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5NTsgZW5kX2NvbHVtbj0yNjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfbG9nZW1lbnRfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqVByaW1lRGVEw6ltw6luYWdlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfbG9nZW1lbnRcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDkzOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00OTM7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ5MztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ5MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01NTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT01NTM4OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgRDg2MS03XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2FwaXRyZSBJIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbiBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlX2NvdXJhbnRlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjIpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xODkxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4OTE7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2My0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIGFwcGxpY2FibGVzIMOgIFNhaW50LVBpZXJyZS1ldC1NaXF1ZWxvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUlJIDogU2FpbnQtUGllcnJlLWV0LU1pcXVlbG9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAyMikgKDEpICgxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMzEyOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTMxMjsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogRGlzcG9zaXRpb25zIGNvbW11bmVzIGF1eCBhaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByYWlzZSBFbXB0eUVycm9yKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT01OTk7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYwMjsgZW5kX2NvbHVtbj00MjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODIzLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSSA6IERpc3Bvc2l0aW9ucyBjb21tdW5lcyBhdXggYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChvX2FuZCBlbGlnaWJpbGl0ZV9hcGxfZG90X2VsaWdpYmlsaXRlX1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX3JhbmdfZW5mYW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX3BlcmlvZGVfZGVtZW5hZ2VtZW50X1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZHVyX2R1clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19zdWJfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9hcGxfZG90X2RhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfZW1tZW5hZ2VtZW50XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsYWlfYXByZXNfZW1tZW5hZ2VtZW50X2w4MjNfOF8yXykpKSkpKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDkzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ5MzsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbGEgcHJpbWUgZGUgZMOpbcOpbmFnZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ5Mzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00OTM7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IG1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50XzogbW9uZXkgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpUHJpbWVEZUTDqW3DqW5hZ2VtZW50XCI7IFwibW9udGFudF9wcmltZV9kw6ltw6luYWdlbWVudFwiXVxuICAgIChlbWJlZF9tb25leSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTUwMTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT01MDE7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0yMTA4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTIxMDg7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4MjMtMjJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBQcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIElJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUkgOiBEaXNwb3NpdGlvbnMgY29tbXVuZXMgYXV4IGFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fbHRlX21vbl9tb24gZGVwZW5zZXNfanVzdGlmaWVlc19yZWVsbGVtZW50X2VuZ2FnZWVzX1xuICAgICAgICAgICAgICAgICBwbGFmb25kX2Q4MjNfMjJfKSB0aGVuXG4gICAgICAgICAgICAgIGRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc18gZWxzZSBwbGFmb25kX2Q4MjNfMjJfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT01MDE7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NTAxOyBlbmRfY29sdW1uPTM4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsYSBwcmltZSBkZSBkw6ltw6luYWdlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIHtFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnQubW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnQgPVxuICAgICBtb250YW50X3ByaW1lX2RlbWVuYWdlbWVudF99XG5cbmxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luOiBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLnQpIDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gIGxldCBkYXRlX2NvdXJhbnRlXzogZGF0ZSA9IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCBtZW5hZ2VfOiBNZW5hZ2UudCA9IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5tZW5hZ2VfaW4gaW5cbiAgbGV0IGRlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF86IGJvb2wgPSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4uYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBpblxuICBsZXQgZHVyZWVfbDg0MV8xXzNfOiBkdXJhdGlvbiA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJkdXLDqWVfbDg0MV8xXzNcIl0gKGVtYmVkX2R1cmF0aW9uKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDQzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQxODE7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEQ4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDEgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgcsOpZ2xlbWVudGFpcmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZHVyYXRpb25fb2ZfbnVtYmVycyAoNSkgKDApICgwKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQzOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MzsgZW5kX2NvbHVtbj0yNTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ1OTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDU5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTQ1OTsgZW5kX2NvbHVtbj01MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ1OTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NTk7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV86IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgIFwicHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5wcmVzdGF0aW9uX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjA7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Mb2dlbWVudCAoKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYwOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X3Jlc2lkZW5jZV86IENvbGxlY3Rpdml0ZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLnLDqXNpZGVuY2VcIl0gKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDYyOyBlbmRfY29sdW1uPTQ2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjI7IGVuZF9jb2x1bW49NDY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yXzogdW5pdCAtPiBkdXJhdGlvbiA9IGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzLsOiZ2VfbDUxMl8zXzJcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2R1cmF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmFpc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW1wdHlFcnJvcikpIGluXG4gIGxldCByZXN1bHRfOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJwcmVzdGF0aW9uc19mYW1pbGlhbGVzXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIl1cbiAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICh7RWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXNJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfcHJlc3RhdGlvbl9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzSW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZXNpZGVuY2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLmFnZV9sNTEyXzNfMl9pbiA9XG4gICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfYWdlX2w1MTJfM18yX30pKSkgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2FnZV9sNTEyXzNfMl86IGR1cmF0aW9uID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5hZ2VfbDUxMl8zXzIgaW5cbiAgbGV0IHByZXN0YXRpb25zX2ZhbWlsaWFsZXNfZG90X2Ryb2l0X291dmVydF86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRyb2l0X291dmVydCBpblxuICBsZXQgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfY29uZGl0aW9uc19ob3JzX2FnZV86IEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy50IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy5jb25kaXRpb25zX2hvcnNfYWdlIGluXG4gIGxldCBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlUHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xIGluXG4gIGxldCBsXzg0MV8xXzZfYXBwbGljYWJsZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwibF84NDFfMV82X2FwcGxpY2FibGVcIl0gKGVtYmVkX2Jvb2wpXG4gICAgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQzOyBzdGFydF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTEwNDM7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDA7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ0MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc2MDsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NjA7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0ODsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDQ4OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0MDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDA7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQwOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGxfODQxXzFfMl9hcHBsaWNhYmxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJsXzg0MV8xXzJfYXBwbGljYWJsZVwiXSAoZW1iZWRfYm9vbClcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkyNzsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05Mjc7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzk7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc1OTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NTk7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Nzsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDQ3OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQzOTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzk7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDM5OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzOTsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGxfODQxXzFfMV9hcHBsaWNhYmxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJsXzg0MV8xXzFfYXBwbGljYWJsZVwiXSAoZW1iZWRfYm9vbClcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkwNTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05MDU7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKTtcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTc1ODsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE3NTg7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjItM1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ0Njsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNDQ2OyBlbmRfY29sdW1uPTI5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MS02XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQzODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzg7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDM4OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzODsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9hY2Nlc3Npb25fcHJvcHJpZXRlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByacOpdMOpXCJdXG4gICAgKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9NDM3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00Mzc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM3OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQxMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQxNTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQudGl0dWxhaXJlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlBhc0RlVHJhdmF1eCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00MzkzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzOTg7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjg0Mi01XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LnRpdHVsYWlyZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRhaXJlXy5Qcm9wcmlldGFpcmUudHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5BZ3JhbmRpck91UmVuZHJlSGFiaXRhYmxlRDMzMV82MyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM3Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQzODM7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGFpcmVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChwcm9wcmlldGFpcmVfLlByb3ByaWV0YWlyZS5wcmV0KS5QcmV0LnRpdHVsYWlyZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LkRlbWFuZGV1ciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19vclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LlByZXZ1RGFuc0xpc3RlUjMyMV8xNSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1LkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUGFzRGVUcmF2YXV4IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5PYmplY3RpZkRlY2VuY2VMb2dlbWVudCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuUHJldnVEYW5zTGlzdGVSMzIxXzE1IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDM0Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDM0ODsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMiA6IEFjY2Vzc2lvbiDDoCBsYSBwcm9wcmnDqXTDqVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IHRydWUpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQzNzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00Mzc7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDM3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQzNzsgZW5kX2NvbHVtbj00MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUubcOpbmFnZVwiXVxuICAgICAgKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY0OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuZGVtYW5kZXVyXCJdXG4gICAgICAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkZW1hbmRldXJfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQ2NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ2Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00NjY7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDY2OyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IFxuICAgIHVuaXQgLT4gYm9vbCA9IGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLmNvbmRpdGlvbl9sb2dlbWVudF9yw6lzaWRlbmNlX3ByaW5jaXBhbGVcIl1cbiAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxNTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4MTU7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDgxNTsgc3RhcnRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ4MTU7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NDItMTRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgMiA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlcyBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudF9mb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2VtZW50X2ZveWVyXy5Mb2dlbWVudEZveWVyLmNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uX2xvZ2VtZW50X3N1cmZhY2VfOiB1bml0IC0+IGJvb2wgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ4MTY7IHN0YXJ0X2NvbHVtbj05OyBlbmRfbGluZT00ODE2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7IFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgIChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ4MTY7IHN0YXJ0X2NvbHVtbj05OyBlbmRfbGluZT00ODE2OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODQyLTE0XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAzIDogTG9nZW1lbnRzLWZveWVyc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIDIgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZXMgYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIExvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgIChtYXRjaCAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBsb2dlbWVudF9mb3llcl8gLT5cbiAgICAgICAgICAgICAgICAgKGxvZ2VtZW50X2ZveWVyXy5Mb2dlbWVudEZveWVyLmNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUkpXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfOiB1bml0IC0+IGRhdGUgPSBcbiAgICBmdW4gKF86IHVuaXQpIC0+IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5kYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaFwiXVxuICAgICAgKGVtYmVkX2RhdGUpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IHJlc3VsdF86IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZVwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl1cbiAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0VsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubWVuYWdlX2luID1cbiAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfbWVuYWdlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX30pKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5kYXRlX2NvdXJhbnRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgXCJjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybsOpZV9wcmlzX2VuX2NvbXB0ZVwiXVxuICAgIChlbWJlZF9hcnJheSAoZW1iZWRfZGVjaW1hbCkpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NTM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDUzOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00NzA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDcwOyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NTM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDUzOyBlbmRfY29sdW1uPTYxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwibm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfaW50ZWdlcikgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ1Mjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00NTI7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00Njg7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXykpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDUyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQ1MjsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2Rpc3Bvc2l0aW9uc19jb21tdW5lc186IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiO1xuICAgICAgXCLDqWxpZ2liaWxpdMOpX2Rpc3Bvc2l0aW9uc19jb21tdW5lc1wiXVxuICAgIChlbWJlZF90eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00NTA7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NDUwOyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTg3Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT04Nzc7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmXG4gICAgICAgICAgICAgIChvX29yIChvX25vdCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9lbGlnaWJpbGl0ZV8pXG4gICAgICAgICAgICAgICAgIChvX25vdCBjb25kaXRpb25fYWNjZXNzaW9uX3Byb3ByaWV0ZV8pKSB0aGVuXG4gICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGUgKCkpIGVsc2VcbiAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDUwOyBzdGFydF9jb2x1bW49MTA7IGVuZF9saW5lPTQ1MDsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZmFtaWxpYWxlXzogYm9vbCA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIjtcbiAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZhbWlsaWFsZVwiXSAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT00NDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDQyOyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTgyMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE4MjA7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiQXJ0aWNsZSBMODYyLTNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBWSSA6IERpc3Bvc2l0aW9ucyBwYXJ0aWN1bGnDqHJlcyDDoCBsJ291dHJlLW1lclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTGFSZXVuaW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50UGllcnJlRXRNaXF1ZWxvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXlvdHRlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZW1hbmRldXJfLkRlbWFuZGV1ci5lc3Rfbm9uX3NhbGFyaWVfYWdyaWNvbGVfbDc4MV84X2xfNzgxXzQ2X2NvZGVfcnVyYWwpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNzgxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTgwMjsgZW5kX2NvbHVtbj05O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg2Mi0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkd1eWFuZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludEJhcnRoZWxlbXkgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1ldHJvcG9sZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0VuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5pZGVudGlmaWFudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xNTI2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTUyNjsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVtYW5kZXVyXy5EZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTQ4NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTE1MDU7IGVuZF9jb2x1bW49OTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gNCA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLnQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2VuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoe0VuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5pZGVudGlmaWFudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuaWRlbnRpZmlhbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMub2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5yZW11bmVyYXRpb25fbWVuc3VlbGxlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmRhdGVfZGVfbmFpc3NhbmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5kYXRlX2RlX25haXNzYW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5zaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5QYXNEZUdhcmRlQWx0ZXJuZWUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIjFcIikpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDQ3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTA1MjsgZW5kX2NvbHVtbj0yOTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCJBcnRpY2xlIEw4NDEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbF84NDFfMV82X2FwcGxpY2FibGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uuc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25GYW1pbGlhbGUuQ2VsaWJhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIwXCIpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5NYXJpZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25GYW1pbGlhbGUuUGFjc2VzIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbmFnZURvbnRTZXBhcmVEZUZhaXQgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTEwMjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDMzOyBlbmRfY29sdW1uPTEzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfaW50X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfYV9jaGFyZ2VfOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyc29ubmVBQ2hhcmdlLkVuZmFudEFDaGFyZ2UgZW5mYW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgcGFyZW50XyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcmVudF8uQXV0cmVQZXJzb25uZUFDaGFyZ2UuYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0ZXJhbF9kZXV4aWVtZV90cm9pc2llbWVfZGVncmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJlbnRfLkF1dHJlUGVyc29ubmVBQ2hhcmdlLmluY2FwYWNpdGVfODBfcG91cmNlbnRfb3VfcmVzdHJpY3Rpb25fZW1wbG9pKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDA0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMDA2OyBlbmRfY29sdW1uPTk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0ZV9pbnRfaW50XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV86XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY29uZGl0aW9uXzJfcjgyM180XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29uZGl0aW9uXzJfcjgyM180XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjb25kaXRpb25fMl9yODIzXzRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX3BlcnNvbm5lX2FfY2hhcmdlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcnNvbm5lX2FfY2hhcmdlXykpKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludGVnZXJfb2Zfc3RyaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIxXCIpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTY0OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT05OTA7IGVuZF9jb2x1bW49Mjk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBlcnNvbm5lX2FfY2hhcmdlXzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJzb25uZV9hX2NoYXJnZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIGVuZmFudF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX25vdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9ib29sKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19kb3RfZHJvaXRfb3V2ZXJ0XylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lQcmVzdGF0aW9uc0ZhbWlsaWFsZXNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbWJlZF9lbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7RW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmlkZW50aWZpYW50ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5pZGVudGlmaWFudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5vYmxpZ2F0aW9uX3Njb2xhaXJlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmRhdGVfZGVfbmFpc3NhbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCl9KSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2Uuc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIGRhdGVfbWFyaWFnZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19sdGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVfY291cmFudGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYWRkX2RhdF9kdXIgQWJvcnRPblJvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZV9tYXJpYWdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmVlX2w4NDFfMV8zXykpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5QYWNzZXMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5Db25jdWJpbnMgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTkzMTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTk1MzsgZW5kX2NvbHVtbj04O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kIGxfODQxXzFfMl9hcHBsaWNhYmxlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZXFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2xlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGVyc29ubmVfYV9jaGFyZ2VfOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqVByZXN0YXRpb25zRmFtaWxpYWxlc1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkcm9pdF9vdXZlcnRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzdGF0aW9uc19mYW1pbGlhbGVzX2RvdF9kcm9pdF9vdXZlcnRfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpUHJlc3RhdGlvbnNGYW1pbGlhbGVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRyb2l0X291dmVydFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW1iZWRfZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHtFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuaWRlbnRpZmlhbnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLmlkZW50aWZpYW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLm9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVuZmFudFByZXN0YXRpb25zRmFtaWxpYWxlcy5yZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2UuZGF0ZV9kZV9uYWlzc2FuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMucHJpc2VfZW5fY2hhcmdlID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZW5mYW50Xy5FbmZhbnRBQ2hhcmdlLnNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQcmlzZUVuQ2hhcmdlRW5mYW50LkVmZmVjdGl2ZUV0UGVybWFuZW50ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBTaXR1YXRpb25HYXJkZUFsdGVybmVlLkdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuYV9kZWphX291dmVydF9kcm9pdF9hdXhfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5hX2RlamFfb3V2ZXJ0X2Ryb2l0X2F1eF9hbGxvY2F0aW9uc19mYW1pbGlhbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRW5mYW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLmJlbmVmaWNpZV90aXRyZV9wZXJzb25uZWxfYWlkZV9wZXJzb25uZWxsZV9sb2dlbWVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZmFudF8uRW5mYW50QUNoYXJnZS5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQpfSkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlcnNvbm5lQUNoYXJnZS5BdXRyZVBlcnNvbm5lQUNoYXJnZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50ZWdlcl9vZl9zdHJpbmcgXCIxXCIpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9OTA5OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTkxNTsgZW5kX2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZCBsXzg0MV8xXzFfYXBwbGljYWJsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19mb2xkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoYWNjXzogYm9vbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJlc3RhdGlvbl86IFByZXN0YXRpb25SZWN1ZS50KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fb3IgYWNjX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25zRmFtaWxpYWxlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkNvbXBsZW1lbnRGYW1pbGlhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2VxIHByZXN0YXRpb25fXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSkpKSkpKSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXMpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKSAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQ0Mjsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT00NDI7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDQyOyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTQ0MjsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2w4NDFfMl86IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lfbDg0MV8yXCJdXG4gICAgKGVtYmVkX3R5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQ1MTsgc3RhcnRfY29sdW1uPTEwOyBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUxOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NDUxOyBzdGFydF9jb2x1bW49MTA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT00NTE7IGVuZF9jb2x1bW49MTY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIGF1eCBhbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MzY7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xNjM3OyBlbmRfY29sdW1uPTc5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODYxLThcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludE1hcnRpbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbWFuZGV1cl8uRGVtYW5kZXVyLm1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuUGFzRWxpZ2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE2MDI7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTYxMTsgZW5kX2NvbHVtbj0yODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDQgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBHdWFkZWxvdXBlLCBHdXlhbmUsIE1hcnRpbmlxdWUsIExhIFLDqXVuaW9uIGV0IE1heW90dGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgVkkgOiBEaXNwb3NpdGlvbnMgcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdXlhbmUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1hcnRpbmlxdWUgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRCYXJ0aGVsZW15IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0YWlyZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE3KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndF9kYXRfZGF0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE5KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9FdGF0X291dHJlX21lcilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci5BY2NvcmQgZGF0ZV9hY2NvcmRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2x0ZV9kYXRfZGF0IGRhdGVfYWNjb3JkX1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDE4KSAoMTIpICgzMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIuUGFzZEFjY29yZCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSAoKSkpO1xuICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ1MTsgc3RhcnRfY29sdW1uPTEwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDUxOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgYXV4IGFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3OTsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMTc5OyBlbmRfY29sdW1uPTczO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZW1hbmRldXJfLkRlbWFuZGV1ci5wZXJzb25uZV9oZWJlcmdlZV9jZW50cmVfc29pbl9sX0wxNjJfMjJfM19zZWN1cml0ZV9zb2NpYWxlKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTExOTM7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExOTY7IGVuZF9jb2x1bW49Mjg7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS00XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRhaXJlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChvX2d0X2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0YWlyZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxNykgKDEyKSAoMzEpKSlcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSl8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMDc5OyBzdGFydF9jb2x1bW49Mjk7IGVuZF9saW5lPTEwNzk7IGVuZF9jb2x1bW49NDA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgaWZcbiAgICAgICAgICAgICAgKG9fb3JcbiAgICAgICAgICAgICAgICAgKG9fZXEgZWxpZ2liaWxpdGVfZGlzcG9zaXRpb25zX2NvbW11bmVzX1xuICAgICAgICAgICAgICAgICAgICAoVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpKSlcbiAgICAgICAgICAgICAgICAgYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF8pIHRoZW5cbiAgICAgICAgICAgICAgKFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSAoKSkgZWxzZVxuICAgICAgICAgICAgICAoIGlmIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZmFtaWxpYWxlXyB0aGVuXG4gICAgICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlXG4gICAgICAgICAgICAgICAgICAgICgpKSBlbHNlXG4gICAgICAgICAgICAgICAgIChUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVxuICAgICAgICAgICAgICAgICAgICAoKSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00NTE7IHN0YXJ0X2NvbHVtbj0xMDsgZW5kX2xpbmU9NDUxOyBlbmRfY29sdW1uPTE2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSBhdXggYWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7RWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV9sODQxXzJfO1xuICAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV87XG4gICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVffVxuXG5sZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW46IEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpIDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPVxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLkVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IGNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfMV86IFByZXQudCAtPiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV8xXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKHByZXRfOiBQcmV0LnQpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk3OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NzsgZW5kX2NvbHVtbj00MTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoW3x8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zMDIwOyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zMDIzOyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4MzItN1wiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU2VjdGlvbiAyIDogQWNjZXNzaW9uIMOgIGxhIHByb3ByacOpdMOpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByZXRfLlByZXQudGl0dWxhaXJlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRpdHVsYWlyZVByZXQuRGVtYW5kZXVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzU5XzggXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV83Nl8xIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKHByZXRfLlByZXQudHlwZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzMyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV82M182NCBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTI5ODU7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0yOTg3OyBlbmRfY29sdW1uPTQyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBSODMyLTVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDIgOiBBY2Nlc3Npb24gw6AgbGEgcHJvcHJpw6l0w6lcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJSSA6IE1vZGFsaXTDqXMgZGUgbGlxdWlkYXRpb24gZXQgZGUgdmVyc2VtZW50IGRlIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKHByZXRfLlByZXQudGl0dWxhaXJlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaXR1bGFpcmVQcmV0LlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX29yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKHByZXRfLlByZXQudHlwZV9wcmV0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfMzIgXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNTlfOCBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzc2XzEgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuQXV0cmUgXyAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAocHJldF8uUHJldC50eXBlX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV8zMiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5EMzMxXzYzXzY0IF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZVByZXQuRDMzMV81OV84IF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVQcmV0LkQzMzFfNzZfMSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlUHJldC5BdXRyZSBfIC0+IGZhbHNlKSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJhaXNlIEVtcHR5RXJyb3IpKXxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTc7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTM5Nzsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTc7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTc7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk3OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgY2FyYWN0ZXJpc3RpcXVlc19wcmV0X2w4MzFfMV82XzogUHJldC50IC0+IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzZcIl0gKHVuZW1iZWRkYWJsZSkgKFxuICAgIHRyeVxuICAgICAgKGZ1biAocHJldF86IFByZXQudCkgLT4gXG4gICAgICAgICB0cnlcbiAgICAgICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk4OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTg7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTM5ODsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTg7IGVuZF9jb2x1bW49NDE7XG4gICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0zOTg7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk4OyBlbmRfY29sdW1uPTQxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lLm3DqW5hZ2VcIl0gKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA5OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA5OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MDk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDA5OyBlbmRfY29sdW1uPTQwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5kZW1hbmRldXJcIl0gKGVtYmVkX2RlbWFuZGV1cilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEwOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEwOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEwOyBlbmRfY29sdW1uPTQzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTE7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTE7IGVuZF9jb2x1bW49NDc7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT00MTE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDExOyBlbmRfY29sdW1uPTQ3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV86IFxuICAgIHVuaXQgLT4gYm9vbCA9IGZ1biAoXzogdW5pdCkgLT4gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmUuY29uZGl0aW9uX2xvZ2VtZW50X3LDqXNpZGVuY2VfcHJpbmNpcGFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgKGVtYmVkX2Jvb2wpIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlXzogdW5pdCAtPiBib29sID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZVwiXSAoZW1iZWRfYm9vbClcbiAgICAgIChyYWlzZSBFbXB0eUVycm9yKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoXzogdW5pdCAtPiBkYXRlID0gXG4gICAgZnVuIChfOiB1bml0KSAtPiAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfY29tbXVuZS5kYXRlX2VudHLDqWVfdmlndWV1cl9kaWZmw6lyw6llX2NjaFwiXVxuICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fcmVnbGVtZW50YWlyZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT01NTAzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTU1MDM7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NjEtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX3JlZ2xlbWVudGFpcmUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NTUwNDsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTU1MDU7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIFI4NjEtNVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhcGl0cmUgSSA6IEd1YWRlbG91cGUsIEd1eWFuZSwgTWFydGluaXF1ZSwgTGEgUsOpdW5pb24gZXQgTWF5b3R0ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb24gcGFydGljdWxpw6hyZXMgw6AgbCdvdXRyZS1tZXJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIHLDqWdsZW1lbnRhaXJlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgKG1hdGNoICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Tb3VzTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIF8gLT4gZmFsc2UpKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfb2ZfbnVtYmVycyAoMjAyMSkgKDUpICgxKSkpKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2NvbW11bmVcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9jb21tdW5lXCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRcIl1cbiAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudClcbiAgICAoe0VsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4ubWVuYWdlX2luID1cbiAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfbWVuYWdlXztcbiAgICAgICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLmNvbmRpdGlvbl9sb2dlbWVudF9zdXJmYWNlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50SW4uZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gPVxuICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfZW50cmVlX3ZpZ3VldXJfZGlmZmVyZWVfY2NoX30pKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5kYXRlX2NvdXJhbnRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9jb21tdW5lX2RvdF9jb25kaXRpb25fMl9yODIzXzRfOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5jb25kaXRpb25fMl9yODIzXzQgaW5cbiAgbGV0IGxvZ2VtZW50X3NpdHVlX2NvbW11bmVfZGVzZXF1aWxpYnJlX2w4MzFfMl86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwibG9nZW1lbnRfc2l0dcOpX2NvbW11bmVfZMOpc8OpcXVpbGlicmVfbDgzMV8yXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTQ7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTQ7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9hcnJldGVfMjAxOS0wOS0yNy5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQ2NTU7IHN0YXJ0X2NvbHVtbj02O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQ2NTU7IGVuZF9jb2x1bW49NDM7XG4gICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgNDlcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIFhJIDogRGlzcG9zaXRpb25zIGNvbW11bmVzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJBcnLDqnTDqSBkdSAyNyBzZXB0ZW1icmUgMjAxOSByZWxhdGlmIGF1IGNhbGN1bCBkZXMgYWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50IGV0IGRlIGxhIHByaW1lIGRlIGTDqW3DqW5hZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGVfb2ZfbnVtYmVycyAoMjAxOSkgKDEwKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQuem9uZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUxIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUyIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgWm9uZURIYWJpdGF0aW9uLlpvbmUzIF8gLT4gdHJ1ZSkpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NDsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTQ7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk0OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NDsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvbmRpdGlvbl9sb2dlbWVudF9iYWlsbGV1cl86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgIFwiY29uZGl0aW9uX2xvZ2VtZW50X2JhaWxsZXVyXCJdIChlbWJlZF9ib29sKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgKFt8KGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTU7IHN0YXJ0X2NvbHVtbj0xMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTE0MTc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9MTQyMDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NjEtNS0xXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNlY3Rpb24gMyA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogR3VhZGVsb3VwZSwgR3V5YW5lLCBNYXJ0aW5pcXVlLCBMYSBSw6l1bmlvbiBldCBNYXlvdHRlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoIChtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3VhZGVsb3VwZSBfIC0+IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5NYXJ0aW5pcXVlIF8gLT4gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5MYVJldW5pb24gXyAtPiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLk1heW90dGUgXyAtPiB0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2F0aW9uXy5Mb2dlbWVudEZveWVyLmNvbnZlbnRpb25uZV9zZWxvbl9yZWdsZXNfZHJvbSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT03MjE7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTcyNDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIGxvY2F0aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIChsb2NhdGlvbl8uTG9nZW1lbnRGb3llci5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUkpXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+IGZhbHNlKSkpXG4gICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKTtcbiAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk1OyBlbmRfY29sdW1uPTM4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9yZWdsZW1lbnRhaXJlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT0zNjkyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zNjk3OyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgUjgzMi0yMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlNvdXMtU2VjdGlvbiAxIDogQ29uZGl0aW9ucyBkJ2Fzc2ltaWxhdGlvbiBkZXMgbG9nZW1lbnRzLWZveWVycyBhdXggbG9nZW1lbnRzIMOgIHVzYWdlIGxvY2F0aWZcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTZWN0aW9uIDMgOiBMb2dlbWVudHMtZm95ZXJzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSUkgOiBNb2RhbGl0w6lzIGRlIGxpcXVpZGF0aW9uIGV0IGRlIHZlcnNlbWVudCBkZSBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSByw6lnbGVtZW50YWlyZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgbG9nZW1lbnRfZm95ZXJfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nZW1lbnRfZm95ZXJfLkxvZ2VtZW50Rm95ZXIucmVtcGxpdF9jb25kaXRpb25zX3I4MzJfMjEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTczODsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NzQxOyBlbmRfY29sdW1uPTMwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV82XCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcmFjdGVyaXN0aXF1ZXNfcHJldF9sODMxXzFfNl8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfNlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpKSkpKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiB0cnVlKSl8XSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Nzc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02ODY7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgbG9jYXRpb25fIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaCAobG9jYXRpb25fLkxvY2F0aW9uLmJhaWxsZXVyKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlQmFpbGxldXIuQmFpbGxldXJTb2NpYWwgY29udmVudGlvbl8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29udmVudGlvbl8uQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbCBjb252ZW50aW9uXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb252ZW50aW9uXy5Db252ZW50aW9uQU5IQS5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX0lJX2NoYXBfSV9zZWNfMylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUJhaWxsZXVyLkJhaWxsZXVyUHJpdmUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTY1Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT02NTk7IGVuZF9jb2x1bW49MzA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJSUkgOiBBaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5BY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uIHByb3ByaWV0ZV8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJjYXJhY3TDqXJpc3RpcXVlc19wcsOqdF9sODMxXzFfMVwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJvdXRwdXRcIl0gKGVtYmVkX2Jvb2wpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtcIsOJbGlnaWJpbGl0w6lBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNhcmFjdMOpcmlzdGlxdWVzX3Byw6p0X2w4MzFfMV8xXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXJhY3RlcmlzdGlxdWVzX3ByZXRfbDgzMV8xXzFfKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiY2FyYWN0w6lyaXN0aXF1ZXNfcHLDqnRfbDgzMV8xXzFcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX3ByZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkpKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gXyAtPiBmYWxzZSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKSAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmFpc2UgRW1wdHlFcnJvcikpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTM5NTsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTU7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9Mzk1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTM5NTsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICBcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTQwNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQxNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT00MTU7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgZWxpZ2liaWxpdGVfY29tbXVuZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwNDsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDQ7IGVuZF9jb2x1bW49NjE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfOiBpbnRlZ2VyID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICBcIm5vbWJyZV9wZXJzb25uZXNfw6BfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcIl0gKGVtYmVkX2ludGVnZXIpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MDM7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDAzOyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT00MTM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9NDEzOyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTQwMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDM7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBjb25kaXRpb25fbG9nZW1lbnRfcHJldF86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCJjb25kaXRpb25fbG9nZW1lbnRfcHLDqnRcIl1cbiAgICAoZW1iZWRfYm9vbCkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9Mzk2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgIChbfChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9Mzk2OyBzdGFydF9jb2x1bW49MTE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChbfHxdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc3Nzsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc5MDsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDgzMS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQubW9kZV9vY2N1cGF0aW9uKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkxvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5SZXNpZGVudExvZ2VtZW50Rm95ZXIgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5hbmNpZW5uZXRlX2xvZ2VtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXykpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGlvbkFjY2Vzc2lvbiBwcm9wcmlldGVfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19ndGVfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTgpICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbHRfZGF0X2RhdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHByb3ByaWV0ZV8uUHJvcHJpZXRhaXJlLnByZXQpLlByZXQuZGF0ZV9zaWduYXR1cmUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMjApICgxKSAoMSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9wcmlldGVfLlByb3ByaWV0YWlyZS5hbmNpZW5uZXRlX2xvZ2VtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOZXVmT3VBbmNpZW4uTmV1ZiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV1Zk91QW5jaWVuLkFuY2llbiBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZW1lbnRfc2l0dWVfY29tbXVuZV9kZXNlcXVpbGlicmVfbDgzMV8yXykpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9NzU4OyBzdGFydF9jb2x1bW49NTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc2MzsgZW5kX2NvbHVtbj0zMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4MzEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KS5Mb2dlbWVudC5tb2RlX29jY3VwYXRpb24pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNb2RlT2NjdXBhdGlvbi5Mb2NhdGFpcmUgXyAtPiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLlJlc2lkZW50TG9nZW1lbnRGb3llciBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uU291c0xvY2F0YWlyZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTW9kZU9jY3VwYXRpb24uTG9jYXRpb25BY2Nlc3Npb24gcHJvcHJpZXRlXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgocHJvcHJpZXRlXy5Qcm9wcmlldGFpcmUucHJldCkuUHJldC5kYXRlX3NpZ25hdHVyZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRlX29mX251bWJlcnMgKDIwMTcpICgxMikgKDMxKSkpKSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKXxdKVxuICAgICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTc1Mzsgc3RhcnRfY29sdW1uPTMxO1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTc1MzsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODMxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElJSSA6IEFpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX1cbiAgICAgICAgICAgICAgICAgICAgdHJ1ZSkpIChmdW4gKF86IHVuaXQpIC0+IHRydWUpKXxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0zOTY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9Mzk2OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTM5Njsgc3RhcnRfY29sdW1uPTExOyBlbmRfbGluZT0zOTY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV86IGJvb2wgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpXCJdIChlbWJlZF9ib29sKVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT00MDI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJEw6ljbGFyYXRpb25zIGRlcyBjaGFtcHMgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTQwMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiw4lsaWdpYmlsaXTDqSDDoCBsJ2FpZGUgcGVyc29ubmFsaXPDqWUgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfVxuICAgICAgICAgICAgICAgICAoW3woZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kX2xpbmU9NDAyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgKFt8fF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTI3Njsgc3RhcnRfY29sdW1uPTU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRfbGluZT0xMjc3OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg2MC0zXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIFZJIDogRGlzcG9zaXRpb25zIHBhcnRpY3VsacOocmVzIMOgIGwnb3V0cmUtbWVyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fZ3RlX2RhdF9kYXQgZGF0ZV9jb3VyYW50ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZV9vZl9udW1iZXJzICgyMDIxKSAoMSkgKDEpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2ggKG1lbmFnZV8uTWVuYWdlLnJlc2lkZW5jZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbGxlY3Rpdml0ZS5HdWFkZWxvdXBlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuR3V5YW5lIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29sbGVjdGl2aXRlLlNhaW50TWFydGluIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWV0cm9wb2xlIF8gLT4gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuU2FpbnRQaWVycmVFdE1pcXVlbG9uIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb2xsZWN0aXZpdGUuTWF5b3R0ZSBfIC0+IGZhbHNlKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGZhbHNlKSl8XSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbGluZT02Mjc7IHN0YXJ0X2NvbHVtbj01O1xuICAgICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTYyOTsgZW5kX2NvbHVtbj0zNjtcbiAgICAgICAgICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSUlJIDogQWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X2JhaWxsZXVyX1xuICAgICAgICAgICAgICAgICAgICAgICAob19hbmQgY29uZGl0aW9uX2xvZ2VtZW50X3ByZXRfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2NvbW11bmVfZG90X2VsaWdpYmlsaXRlXykpKSlcbiAgICAgICAgICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gdHJ1ZSkpfF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTQwMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT00MDI7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCLDiWxpZ2liaWxpdMOpIMOgIGwnYWlkZSBwZXJzb25uYWxpc8OpZSBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkTDqWNsYXJhdGlvbnMgZGVzIGNoYW1wcyBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBmYWxzZSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9NDAyOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTQwMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIsOJbGlnaWJpbGl0w6kgw6AgbCdhaWRlIHBlcnNvbm5hbGlzw6llIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiRMOpY2xhcmF0aW9ucyBkZXMgY2hhbXBzIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0VsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5kYXRlX2NvdXJhbnRlID0gZGF0ZV9jb3VyYW50ZV87XG4gICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC5lbGlnaWJpbGl0ZSA9IGVsaWdpYmlsaXRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXztcbiAgICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVffVxuXG5sZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbjogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnQpIDogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50ID1cbiAgbGV0IG1lbmFnZV86IE1lbmFnZS50ID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiBpblxuICBsZXQgZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luIGluXG4gIGxldCByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50LmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTUyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNTI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE1MjsgZW5kX2NvbHVtbj01OTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE1Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTUyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudC5tw6luYWdlXCJdIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE0NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTQ0OyBlbmRfY29sdW1uPTUyO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNDQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE0NDsgZW5kX2NvbHVtbj01MjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gbWVuYWdlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTQ0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNDQ7IGVuZF9jb2x1bW49NTI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50LmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNDg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE0ODsgZW5kX2NvbHVtbj01NTtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTQ4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNDg7IGVuZF9jb2x1bW49NTU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRlbWFuZGV1cl8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE0ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTQ4OyBlbmRfY29sdW1uPTU1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYmVuZWZpY2llX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF86IGJvb2wgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWxsb2NhdGlvbl9sb2dlbWVudC5iw6luw6lmaWNpZV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCJdXG4gICAgICAoZW1iZWRfYm9vbClcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEwOTU7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMDk1OyBlbmRfY29sdW1uPTc0O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTA5NTsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTEwOTU7IGVuZF9jb2x1bW49NzQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSkgKGZ1biAoXzogdW5pdCkgLT4gZmFsc2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMDk1OyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTA5NTsgZW5kX2NvbHVtbj03NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7IFwiQ2hhcGl0cmUgSWVyIDogQ2hhbXAgZCdhcHBsaWNhdGlvblwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlRpdHJlIElWIDogQWxsb2NhdGlvbnMgZGUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUGFydGllIGzDqWdpc2xhdGl2ZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIkNvZGUgZGUgbGEgY29uc3RydWN0aW9uIGV0IGRlIGwnaGFiaXRhdGlvblwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiw6lsaWdpYmlsaXTDqV9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIsOJbGlnaWJpbGl0w6lBbGxvY2F0aW9uTG9nZW1lbnRcIl0gKChsb2dfYmVnaW5fY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCLDqWxpZ2liaWxpdMOpX2FsbG9jYXRpb25fbG9nZW1lbnRcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFsbG9jYXRpb25Mb2dlbWVudFwiXSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50KVxuICAgICh7RWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4ubWVuYWdlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tZW5hZ2VfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi5iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X30pKSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl86IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC50ID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5lbGlnaWJpbGl0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9tZW5hZ2VfOiBNZW5hZ2UudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiw6lsaWdpYmlsaXTDqV9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50Lm3DqW5hZ2VcIl0gKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTQyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNDI7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE0Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTQyOyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNDI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE0MjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZGVtYW5kZXVyXzogRGVtYW5kZXVyLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5kZW1hbmRldXJcIl1cbiAgICAgIChlbWJlZF9kZW1hbmRldXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE0Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTQ2OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNDY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE0NjsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTQ2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNDY7IGVuZF9jb2x1bW49NjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCLDqWxpZ2liaWxpdMOpX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVwiXVxuICAgICAgKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTUwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNTA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE1MDsgZW5kX2NvbHVtbj02NztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGF0ZV9jb3VyYW50ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE1MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTUwOyBlbmRfY29sdW1uPTY3O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgXCLDqWxpZ2liaWxpdMOpX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnRcIjtcbiAgICAgIFwiw4lsaWdpYmlsaXTDqUFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdICgobG9nX2JlZ2luX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICBcIsOpbGlnaWJpbGl0w6lfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudFwiO1xuICAgICAgXCLDiWxpZ2liaWxpdMOpQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIl1cbiAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQpXG4gICAgKHtFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X21lbmFnZV87XG4gICAgICAgIEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kZW1hbmRldXJfO1xuICAgICAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVffSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmRhdGVfY291cmFudGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5FbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXzogaW50ZWdlciA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogXG4gICAgZGVjaW1hbCBhcnJheSA9IHJlc3VsdF8uRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tb2RlX29jY3VwYXRpb25fOiBNb2RlT2NjdXBhdGlvbi50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5tb2RlX29jY3VwYXRpb25cIl0gKGVtYmVkX21vZGVfb2NjdXBhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1Njsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTU2OyBlbmRfY29sdW1uPTU2O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTU2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNTY7IGVuZF9jb2x1bW49NTY7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnJlc3NvdXJjZXNfbcOpbmFnZV9zYW5zX2Fycm9uZGlcIl1cbiAgICAgIChlbWJlZF9tb25leSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNjA7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2MDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTYwOyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTYwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNjA7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5zaXR1YXRpb25fZmFtaWxpYWxlXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTY0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNjQ7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTY0OyBlbmRfY29sdW1uPTYwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNjQ7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE2NDsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXzogaW50ZWdlciA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc1/DoF9jaGFyZ2VcIl1cbiAgICAgIChlbWJlZF9pbnRlZ2VyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3MTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTcxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzE7IGVuZF9jb2x1bW49NjY7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzE7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3MTsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF96b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnpvbmVcIl1cbiAgICAgIChlbWJlZF96b25lX2RfaGFiaXRhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTc1OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzU7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTc1OyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50LnpvbmUpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE3NTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTc1OyBlbmRfY29sdW1uPTQ1O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfOiBkYXRlID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXCJdIChlbWJlZF9kYXRlKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3OTsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTc5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzk7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNzk7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3OTsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50LnR5cGVfYWlkZVwiXVxuICAgICAgKGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBtYXRjaCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSlcbiAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlICgpKVxuICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgKFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTExOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMTE7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiOyBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7IFwiY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTgzOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODM7IGVuZF9jb2x1bW49NTA7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgzOyBlbmRfY29sdW1uPTUwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQgPSAobG9nX2VuZF9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiXSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudClcbiAgICAoe0NhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9tb2RlX29jY3VwYXRpb25fO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5zaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlXztcbiAgICAgICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50SW4uem9uZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3pvbmVfO1xuICAgICAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3R5cGVfYWlkZV87XG4gICAgICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnJlc2lkZW5jZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3Jlc2lkZW5jZV99KSkpIGluXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X21vZGVfb2NjdXBhdGlvbl86IE1vZGVPY2N1cGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvblwiXVxuICAgICAgKGVtYmVkX21vZGVfb2NjdXBhdGlvbilcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTU0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNTQ7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1NDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTU0OyBlbmRfY29sdW1uPTY0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobWVuYWdlXy5NZW5hZ2UubG9nZW1lbnQpLkxvZ2VtZW50Lm1vZGVfb2NjdXBhdGlvbikpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTU0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNTQ7IGVuZF9jb2x1bW49NjQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF90eXBlX2FpZGVfOiBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnR5cGVfYWlkZVwiXVxuICAgICAgKGVtYmVkX3R5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMDk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMDk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgKCkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTA5OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMDk7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiOyBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV86IG1vbmV5ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5yZXNzb3VyY2VzX23DqW5hZ2Vfc2Fuc19hcnJvbmRpXCJdXG4gICAgICAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE1ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTU4OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExNTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE1ODsgZW5kX2NvbHVtbj02NjtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gcmVzc291cmNlc19tZW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE1ODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTU4OyBlbmRfY29sdW1uPTY2O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfc2l0dWF0aW9uX2ZhbWlsaWFsZV86IFNpdHVhdGlvbkZhbWlsaWFsZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5zaXR1YXRpb25fZmFtaWxpYWxlXCJdXG4gICAgICAoZW1iZWRfc2l0dWF0aW9uX2ZhbWlsaWFsZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTYyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNjI7IGVuZF9jb2x1bW49Njg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2Mjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTYyOyBlbmRfY29sdW1uPTY4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExNjI7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE2MjsgZW5kX2NvbHVtbj02ODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfOiBpbnRlZ2VyID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgICAgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX8OgX2NoYXJnZVwiXVxuICAgICAgKGVtYmVkX2ludGVnZXIpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2Nzsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTExNjc7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE2Nzsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTExNjc7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X25vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE2Nzsgc3RhcnRfY29sdW1uPTU7IGVuZF9saW5lPTExNjc7IGVuZF9jb2x1bW49NjU7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF96b25lXzogWm9uZURIYWJpdGF0aW9uLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiO1xuICAgICAgICBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50LnpvbmVcIl0gKGVtYmVkX3pvbmVfZF9oYWJpdGF0aW9uKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTExNzM7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE3MzsgZW5kX2NvbHVtbj01MztcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzM7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChtZW5hZ2VfLk1lbmFnZS5sb2dlbWVudCkuTG9nZW1lbnQuem9uZSkpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTczOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzM7IGVuZF9jb2x1bW49NTM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVwiXSAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzc7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE3Nzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTc3OyBlbmRfY29sdW1uPTYyO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTc3OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExNzc7IGVuZF9jb2x1bW49NjI7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VfOiBDb2xsZWN0aXZpdGUudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCI7XG4gICAgICAgIFwiY2FsY3VsX2FpZGVfcGVyc29ubmFsaXPDqWVfbG9nZW1lbnQucsOpc2lkZW5jZVwiXVxuICAgICAgKGVtYmVkX2NvbGxlY3Rpdml0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTgxOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExODE7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTE4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgxOyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2VfLk1lbmFnZS5yZXNpZGVuY2UpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTE4MTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTgxOyBlbmRfY29sdW1uPTU4O1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7IFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJjYWxjdWxfYWlkZV9wZXJzb25uYWxpc8OpZV9sb2dlbWVudFwiO1xuICAgICAgXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImNhbGN1bF9haWRlX3BlcnNvbm5hbGlzw6llX2xvZ2VtZW50XCI7XG4gICAgICBcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCJdIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQpXG4gICAgKHtDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfbW9kZV9vY2N1cGF0aW9uXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnR5cGVfYWlkZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfdHlwZV9haWRlXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfcmVzc291cmNlc19tZW5hZ2Vfc2Fuc19hcnJvbmRpXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3NpdHVhdGlvbl9mYW1pbGlhbGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3Rfbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV87XG4gICAgICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi56b25lX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF96b25lXztcbiAgICAgICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2RhdGVfY291cmFudGVfO1xuICAgICAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4ucmVzaWRlbmNlX2luID1cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9yZXNpZGVuY2VffSkpKSBpblxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBcbiAgICBtb25leSAtPiBtb25leSA9IHJlc3VsdF8uQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIGluXG4gIGxldCBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXzogZGVjaW1hbCBhcnJheSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjtcbiAgICAgIFwiY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm7DqWVfcHJpc19lbl9jb21wdGVcIl1cbiAgICAoZW1iZWRfYXJyYXkgKGVtYmVkX2RlY2ltYWwpKSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTM4OyBlbmRfY29sdW1uPTYxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTExODY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTE4NjsgZW5kX2NvbHVtbj02MztcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMzg7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEzODsgZW5kX2NvbHVtbj02MTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgZWxpZ2liaWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcIsOpbGlnaWJpbGl0w6lcIl0gKGVtYmVkX2Jvb2wpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMTM0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMzQ7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvY29kZV9jb25zdHJ1Y3Rpb25fbGVnaXNsYXRpZi5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMTAwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTExMDA7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJBcnRpY2xlIEw4NDEtMlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNoYXBpdHJlIEllciA6IENoYW1wIGQnYXBwbGljYXRpb25cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiTGl2cmUgVklJSSA6IEFpZGVzIHBlcnNvbm5lbGxlcyBhdSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlBhcnRpZSBsw6lnaXNsYXRpdmVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICBvX29yIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfXG4gICAgICAgICAgICAgIChtYXRjaCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+IGZhbHNlXG4gICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgIHRydWUpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM0OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMzQ7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfOiBtb25leSAtPiBtb25leSA9IChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdICh1bmVtYmVkZGFibGUpIChcbiAgICB0cnlcbiAgICAgIChmdW4gKGFpZGVfZmluYWxlXzogbW9uZXkpIC0+IFxuICAgICAgICAgdHJ5XG4gICAgICAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNjsgc3RhcnRfY29sdW1uPTEyO1xuICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzY7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9jb2RlX2NvbnN0cnVjdGlvbl9sZWdpc2xhdGlmLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzODsgc3RhcnRfY29sdW1uPTE0O1xuICAgICAgICAgICAgICAgICAgIGVuZF9saW5lPTExMzg7IGVuZF9jb2x1bW49MzY7XG4gICAgICAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkFydGljbGUgTDg0MS0yXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaXRyZSBJViA6IEFsbG9jYXRpb25zIGRlIGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJMaXZyZSBWSUlJIDogQWlkZXMgcGVyc29ubmVsbGVzIGF1IGxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDb2RlIGRlIGxhIGNvbnN0cnVjdGlvbiBldCBkZSBsJ2hhYml0YXRpb25cIl19XG4gICAgICAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX2FwbF8gOiBtb25leSA9ICgobG9nX2VuZF9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWlkZVBlcnNvbm5hbGlzw6llTG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJvdXRwdXRcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X3RyYWl0ZW1lbnRfYWlkZV9maW5hbGVfKVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAobGV0IGFpZGVfZmluYWxlX2FsXyA6IG1vbmV5ID0gKChsb2dfZW5kX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICBcIm91dHB1dFwiXSAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV8pXG4gICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgIFwiaW5wdXQwXCJdIChlbWJlZF9tb25leSkgYWlkZV9maW5hbGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICAoIGlmIChvX25vdCBlbGlnaWJpbGl0ZV8pIHRoZW4gYWlkZV9maW5hbGVfIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgKCBpZlxuICAgICAgICAgICAgICAgICAgICAgICAob19hbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbm90XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9sODQxXzJfXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5QYXNFbGlnaWJsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50RmFtaWxpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSBfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpKSkgdGhlblxuICAgICAgICAgICAgICAgICAgICAgICAoIGlmIChvX2d0X21vbl9tb24gYWlkZV9maW5hbGVfYXBsXyBhaWRlX2ZpbmFsZV9hbF8pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfYXBsXyBlbHNlIGFpZGVfZmluYWxlX2FsXykgZWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9kb3RfZWxpZ2liaWxpdGVfXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW4gYWlkZV9maW5hbGVfYXBsXyBlbHNlIGFpZGVfZmluYWxlX2FsXykpKSkpKSlcbiAgICAgICAgIHdpdGhcbiAgICAgICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEzNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTExMzY7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTEzNjsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgZ2xvYmFsZVwiOyBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICBsZXQgYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcImFpZGVfZmluYWxlX2Zvcm11bGVcIl0gKGVtYmVkX21vbmV5KSAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTEzNTsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMTM1OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBnbG9iYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2NvZGVfY29uc3RydWN0aW9uX2xlZ2lzbGF0aWYuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTEyMTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMTIxOyBlbmRfY29sdW1uPTMzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQXJ0aWNsZSBMODQxLTJcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJDaGFwaXRyZSBJZXIgOiBDaGFtcCBkJ2FwcGxpY2F0aW9uXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiVGl0cmUgSVYgOiBBbGxvY2F0aW9ucyBkZSBsb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkxpdnJlIFZJSUkgOiBBaWRlcyBwZXJzb25uZWxsZXMgYXUgbG9nZW1lbnRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQYXJ0aWUgbMOpZ2lzbGF0aXZlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ29kZSBkZSBsYSBjb25zdHJ1Y3Rpb24gZXQgZGUgbCdoYWJpdGF0aW9uXCJdfVxuICAgICAgICAgICAgdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPlxuICAgICAgICAgICAgIGlmIChvX25vdCBlbGlnaWJpbGl0ZV8pIHRoZW4gKG1vbmV5X29mX2NlbnRzX3N0cmluZyBcIjBcIikgZWxzZVxuICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgIChvX2FuZFxuICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX1xuICAgICAgICAgICAgICAgICAgICAob19ub3RcbiAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2VsaWdpYmlsaXRlX2w4NDFfMl9cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgXyAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB8IFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSkpKSB0aGVuXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgKG9fZ3RfbW9uX21vbiAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgIFtcIkNhbGN1bEFpZGVQZXJzb25uYWxpc8OpZUxvZ2VtZW50XCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiXVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBaWRlUGVyc29ubmFsaXPDqWVMb2dlbWVudFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiOyBcImlucHV0MFwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICAgICAoKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgW1wiQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50XCI7IFwidHJhaXRlbWVudF9haWRlX2ZpbmFsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgIFwib3V0cHV0XCJdIChlbWJlZF9tb25leSkgKChsb2dfYmVnaW5fY2FsbFxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXylcbiAgICAgICAgICAgICAgICAgICAgICAgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgICAgICAgICAgICBbXCJDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgXCJpbnB1dDBcIl0gKGVtYmVkX21vbmV5KVxuICAgICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pKSkpKSkpKVxuICAgICAgICAgICAgICAgICAgICB0aGVuXG4gICAgICAgICAgICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfKVxuICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICggaWZcbiAgICAgICAgICAgICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9lbGlnaWJpbGl0ZV9cbiAgICAgICAgICAgICAgICAgICAgdGhlblxuICAgICAgICAgICAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlX1xuICAgICAgICAgICAgICAgICAgICBlbHNlIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMTM1OyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTExMzU7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGdsb2JhbGVcIjsgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAge0NhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSA9IGFpZGVfZmluYWxlX2Zvcm11bGVfO1xuICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPVxuICAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGVfO1xuICAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVffVxuXG5sZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZSAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbjogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50KSA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLnQgPVxuICBsZXQgbWVuYWdlXzogTWVuYWdlLnQgPSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4ubWVuYWdlX2luIGluXG4gIGxldCBkZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5kZW1hbmRldXJfaW4gaW5cbiAgbGV0IGRhdGVfY291cmFudGVfOiBkYXRlID0gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbi5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm5lZUluLmRhdGVfY291cmFudGVfaW4gaW5cbiAgbGV0IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfOiBtb25leSA9IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4uQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luIGluXG4gIGxldCBtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGVybmVlXzogTWVuYWdlLnQgPSAobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwibcOpbmFnZV9zYW5zX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llXCJdIChlbWJlZF9tZW5hZ2UpIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjA1OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMDU7IGVuZF9jb2x1bW49NDU7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMzc7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIzNzsgZW5kX2NvbHVtbj00ODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+XG4gICAgICAgICAgICB7TWVuYWdlLnByZXN0YXRpb25zX3JlY3VlcyA9IChtZW5hZ2VfLk1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXMpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmxvZ2VtZW50ID0gKG1lbmFnZV8uTWVuYWdlLmxvZ2VtZW50KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5wZXJzb25uZXNfYV9jaGFyZ2UgPVxuICAgICAgICAgICAgICAgICAob19maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgKGZ1biAocGVyc29ubmVfYV9jaGFyZ2VfOiBQZXJzb25uZUFDaGFyZ2UudCkgLT5cbiAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcGVyc29ubmVfYV9jaGFyZ2VfXG4gICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgfCBQZXJzb25uZUFDaGFyZ2UuRW5mYW50QUNoYXJnZSBlbmZhbnRfIC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlbmZhbnRfLkVuZmFudEFDaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuUGFzRGVHYXJkZUFsdGVybmVlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgU2l0dWF0aW9uR2FyZGVBbHRlcm5lZS5HYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlIF8gLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgIHwgUGVyc29ubmVBQ2hhcmdlLkF1dHJlUGVyc29ubmVBQ2hhcmdlIF8gLT4gdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnBlcnNvbm5lc19hX2NoYXJnZSkpO1xuICAgICAgICAgICAgICAgTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50ID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLm5vbWJyZV9hdXRyZXNfb2NjdXBhbnRzX2xvZ2VtZW50KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5zaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgICAgICAgICAgICAgICAgKG1lbmFnZV8uTWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGUpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmNvbmRpdGlvbl9yYXR0YWNoZV9mb3llcl9maXNjYWxfcGFyZW50X2lmaSA9XG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5jb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmkpO1xuICAgICAgICAgICAgICAgTWVuYWdlLmVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2UgPVxuICAgICAgICAgICAgICAgICAobWVuYWdlXy5NZW5hZ2UuZW5mYW50X2FfbmFpdHJlX2FwcmVzX3F1YXRyaWVtZV9tb2lzX2dyb3NzZXNzZSk7XG4gICAgICAgICAgICAgICBNZW5hZ2UucGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNCA9XG4gICAgICAgICAgICAgICAgIChtZW5hZ2VfLk1lbmFnZS5wZXJzb25uZXNfYWdlZXNfaGFuZGljYXBlZXNfZm95ZXJfcjg0NF80KTtcbiAgICAgICAgICAgICAgIE1lbmFnZS5yZXNpZGVuY2UgPSAobWVuYWdlXy5NZW5hZ2UucmVzaWRlbmNlKX0pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMDU7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIwNTsgZW5kX2NvbHVtbj00NTtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X21lbmFnZV86IE1lbmFnZS50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGUubcOpbmFnZVwiXVxuICAgICAgKGVtYmVkX21lbmFnZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjE2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTY7IGVuZF9jb2x1bW49MzE7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMTY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxNjsgZW5kX2NvbHVtbj0zMTtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IG1lbmFnZV8pKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIxNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE2OyBlbmRfY29sdW1uPTMxO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X2RlbWFuZGV1cl86IERlbWFuZGV1ci50ID0gXG4gICAgdHJ5ICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGUuZGVtYW5kZXVyXCJdXG4gICAgICAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMTg7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIxODsgZW5kX2NvbHVtbj0zNDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjE4OyBlbmRfY29sdW1uPTM0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjE4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMTg7IGVuZF9jb2x1bW49MzQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfZGF0ZV9jb3VyYW50ZV86IGRhdGUgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZS5kYXRlX2NvdXJhbnRlXCJdXG4gICAgICAoZW1iZWRfZGF0ZSlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjIwOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjA7IGVuZF9jb2x1bW49Mzg7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTEyMjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIyMDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IGRhdGVfY291cmFudGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMjA7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIyMDsgZW5kX2NvbHVtbj0zODtcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZS5yZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXSAoZW1iZWRfbW9uZXkpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyMjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjIyOyBlbmRfY29sdW1uPTU5O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjIyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjIyOyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjI7IGVuZF9jb2x1bW49NTk7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgcmVzdWx0XzogQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudC50ID0gKGxvZ19lbmRfY2FsbFxuICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybsOpZVwiOyBcImNhbGN1bGV0dGVcIjtcbiAgICAgIFwiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiXSAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiY2FsY3VsZXR0ZVwiO1xuICAgICAgXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQpXG4gICAgKHtDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4ubWVuYWdlX2luID0gY2FsY3VsZXR0ZV9kb3RfbWVuYWdlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRlbWFuZGV1cl9pbiA9IGNhbGN1bGV0dGVfZG90X2RlbWFuZGV1cl87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgICBjYWxjdWxldHRlX2RvdF9kYXRlX2NvdXJhbnRlXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVffSkpKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfZWxpZ2liaWxpdGVfOiBib29sID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmVsaWdpYmlsaXRlIGluXG4gIGxldCBjYWxjdWxldHRlX2RvdF9haWRlX2ZpbmFsZV9mb3JtdWxlXzogbW9uZXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZSBpblxuICBsZXQgY2FsY3VsZXR0ZV9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBcbiAgICBkZWNpbWFsIGFycmF5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfbWVuYWdlXzogTWVuYWdlLnQgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZS5tw6luYWdlXCJdIChlbWJlZF9tZW5hZ2UpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyNDsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjI0OyBlbmRfY29sdW1uPTUxO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjQ7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBtZW5hZ2Vfc2Fuc19lbmZhbnRzX2dhcmRlX2FsdGVybmVlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjI0OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjQ7IGVuZF9jb2x1bW49NTE7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kZW1hbmRldXJfOiBEZW1hbmRldXIudCA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLmRlbWFuZGV1clwiXSAoZW1iZWRfZGVtYW5kZXVyKVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMjY7IHN0YXJ0X2NvbHVtbj0xNDsgZW5kX2xpbmU9MTIyNjsgZW5kX2NvbHVtbj01NDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyNjsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjI2OyBlbmRfY29sdW1uPTU0O1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gZGVtYW5kZXVyXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjI2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjY7IGVuZF9jb2x1bW49NTQ7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9kYXRlX2NvdXJhbnRlXzogZGF0ZSA9IFxuICAgIHRyeSAoKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgICAgXCJjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuw6llLmRhdGVfY291cmFudGVcIl0gKGVtYmVkX2RhdGUpXG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIyODsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjI4OyBlbmRfY29sdW1uPTU4O1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBkYXRlX2NvdXJhbnRlXykpKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjI4OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyMjg7IGVuZF9jb2x1bW49NTg7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlXzogbW9uZXkgPSBcbiAgICB0cnkgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZS5yZXNzb3VyY2VzX23DqW5hZ2VfcHJpc2VzX2VuX2NvbXB0ZVwiXVxuICAgICAgKGVtYmVkX21vbmV5KVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMzE7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMjMxOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjMxOyBzdGFydF9jb2x1bW49NTsgZW5kX2xpbmU9MTIzMTsgZW5kX2NvbHVtbj03MDtcbiAgICAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSB0cnVlKSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfKSkpKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMzE7IHN0YXJ0X2NvbHVtbj01OyBlbmRfbGluZT0xMjMxOyBlbmRfY29sdW1uPTcwO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkgaW5cbiAgbGV0IHJlc3VsdF86IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCA9IChsb2dfZW5kX2NhbGxcbiAgICBbXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50R2FyZGVBbHRlcm7DqWVcIjtcbiAgICAgIFwiY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybsOpZVwiOyBcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIl1cbiAgICAoKGxvZ19iZWdpbl9jYWxsXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICBcImNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm7DqWVcIjsgXCJDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50XCJdXG4gICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudClcbiAgICAoe0NhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5tZW5hZ2VfaW4gPVxuICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X21lbmFnZV87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5kZW1hbmRldXJfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfZGVtYW5kZXVyXztcbiAgICAgICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEluLmRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfZGF0ZV9jb3VyYW50ZV87XG4gICAgICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRJbi5yZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luID1cbiAgICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X3Jlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVffSkpKSBpblxuICBsZXQgY2FsY3VsZXR0ZV9zYW5zX2dhcmRlX2FsdGVybmVlX2RvdF9lbGlnaWJpbGl0ZV86IGJvb2wgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuZWxpZ2liaWxpdGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV86IG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LmFpZGVfZmluYWxlX2Zvcm11bGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfdHJhaXRlbWVudF9haWRlX2ZpbmFsZV86IG1vbmV5IC0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbmV5ID0gcmVzdWx0Xy5DYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgaW5cbiAgbGV0IGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZV86IFxuICAgIGRlY2ltYWwgYXJyYXkgPSByZXN1bHRfLkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSBpblxuICBsZXQgZWxpZ2liaWxpdGVfOiBib29sID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiw6lsaWdpYmlsaXTDqVwiXSAoZW1iZWRfYm9vbClcbiAgICAoXG4gICAgdHJ5XG4gICAgICAoaGFuZGxlX2RlZmF1bHRcbiAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgIHN0YXJ0X2xpbmU9MTIxMjsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMjEyOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IChbfHxdKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19kZWNpc2lvbl90YWtlblxuICAgICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgICAgc3RhcnRfbGluZT0xMjY2OyBzdGFydF9jb2x1bW49MTQ7IGVuZF9saW5lPTEyNjY7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gdHJ1ZSkpXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiBjYWxjdWxldHRlX2RvdF9lbGlnaWJpbGl0ZV8pKVxuICAgIHdpdGhcbiAgICBFbXB0eUVycm9yIC0+IChyYWlzZSAoTm9WYWx1ZVByb3ZpZGVkXG4gICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICBzdGFydF9saW5lPTEyMTI7IHN0YXJ0X2NvbHVtbj0xMjsgZW5kX2xpbmU9MTIxMjsgZW5kX2NvbHVtbj0yMztcbiAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSkpKSkgaW5cbiAgbGV0IGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfOiBkZWNpbWFsIGFycmF5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7XG4gICAgICBcImNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuw6llX3ByaXNfZW5fY29tcHRlXCJdXG4gICAgKGVtYmVkX2FycmF5IChlbWJlZF9kZWNpbWFsKSkgKFxuICAgIHRyeVxuICAgICAgKGhhbmRsZV9kZWZhdWx0XG4gICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L3Byb2xvZ3VlLmNhdGFsYV9mclwiO1xuICAgICAgICAgICBzdGFydF9saW5lPTEyMDY7IHN0YXJ0X2NvbHVtbj0xMTsgZW5kX2xpbmU9MTIwNjsgZW5kX2NvbHVtbj02MDtcbiAgICAgICAgICAgbGF3X2hlYWRpbmdzPVtcIkNhbGN1bGV0dGUgYXZlYyBnYXJkZSBhbHRlcm7DqWVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJQcm9sb2d1ZSA6IGFpZGVzIGF1IGxvZ2VtZW50XCJdfSAoW3x8XSlcbiAgICAgICAgIChmdW4gKF86IHVuaXQpIC0+IChsb2dfZGVjaXNpb25fdGFrZW5cbiAgICAgICAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgICAgICAgIHN0YXJ0X2xpbmU9MTIzNTsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0xMjM1OyBlbmRfY29sdW1uPTYzO1xuICAgICAgICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19IHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT5cbiAgICAgICAgICAgIGNhbGN1bGV0dGVfZG90X2NvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVfKSlcbiAgICB3aXRoXG4gICAgRW1wdHlFcnJvciAtPiAocmFpc2UgKE5vVmFsdWVQcm92aWRlZFxuICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgc3RhcnRfbGluZT0xMjA2OyBzdGFydF9jb2x1bW49MTE7IGVuZF9saW5lPTEyMDY7IGVuZF9jb2x1bW49NjA7XG4gICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0pKSkpIGluXG4gIGxldCBhaWRlX2ZpbmFsZV86IG1vbmV5ID0gKGxvZ192YXJpYWJsZV9kZWZpbml0aW9uXG4gICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuw6llXCI7IFwiYWlkZV9maW5hbGVcIl0gKGVtYmVkX21vbmV5KVxuICAgIChcbiAgICB0cnlcbiAgICAgIChoYW5kbGVfZGVmYXVsdFxuICAgICAgICAge2ZpbGVuYW1lID0gXCJleGFtcGxlcy9haWRlc19sb2dlbWVudC9wcm9sb2d1ZS5jYXRhbGFfZnJcIjtcbiAgICAgICAgICAgc3RhcnRfbGluZT0xMjEzOyBzdGFydF9jb2x1bW49MTI7IGVuZF9saW5lPTEyMTM7IGVuZF9jb2x1bW49MjM7XG4gICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDYWxjdWxldHRlIGF2ZWMgZ2FyZGUgYWx0ZXJuw6llXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiUHJvbG9ndWUgOiBhaWRlcyBhdSBsb2dlbWVudFwiXX0gKFt8fF0pXG4gICAgICAgICAoZnVuIChfOiB1bml0KSAtPiAobG9nX2RlY2lzaW9uX3Rha2VuXG4gICAgICAgICAgICB7ZmlsZW5hbWUgPSBcImV4YW1wbGVzL2FpZGVzX2xvZ2VtZW50L2F1dHJlc19zb3VyY2VzLmNhdGFsYV9mclwiO1xuICAgICAgICAgICAgICBzdGFydF9saW5lPTI4Mzsgc3RhcnRfY29sdW1uPTE0OyBlbmRfbGluZT0yODM7IGVuZF9jb2x1bW49MjU7XG4gICAgICAgICAgICAgIGxhd19oZWFkaW5ncz1bXCJDb25zZWlsIGQnw4l0YXQsIDXDqG1lIC0gNMOobWUgY2hhbWJyZXMgcsOpdW5pZXMsIDIxLzA3LzIwMTcsIDM5ODU2M1wiXX1cbiAgICAgICAgICAgIHRydWUpKVxuICAgICAgICAgKGZ1biAoXzogdW5pdCkgLT4gKGxvZ19lbmRfY2FsbFxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIl1cbiAgICAgICAgICAgICgobG9nX3ZhcmlhYmxlX2RlZmluaXRpb25cbiAgICAgICAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCI7IFwib3V0cHV0XCJdXG4gICAgICAgICAgICAoZW1iZWRfbW9uZXkpICgobG9nX2JlZ2luX2NhbGxcbiAgICAgICAgICAgIFtcIkNhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRcIjsgXCJ0cmFpdGVtZW50X2FpZGVfZmluYWxlXCJdXG4gICAgICAgICAgICBjYWxjdWxldHRlX2RvdF90cmFpdGVtZW50X2FpZGVfZmluYWxlXykgKChsb2dfdmFyaWFibGVfZGVmaW5pdGlvblxuICAgICAgICAgICAgW1wiQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudFwiOyBcInRyYWl0ZW1lbnRfYWlkZV9maW5hbGVcIjsgXCJpbnB1dDBcIl1cbiAgICAgICAgICAgIChlbWJlZF9tb25leSlcbiAgICAgICAgICAgIChvX2FkZF9tb25fbW9uXG4gICAgICAgICAgICAgICBjYWxjdWxldHRlX3NhbnNfZ2FyZGVfYWx0ZXJuZWVfZG90X2FpZGVfZmluYWxlX2Zvcm11bGVfXG4gICAgICAgICAgICAgICAoIGlmXG4gICAgICAgICAgICAgICAgICAob19lcVxuICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXylcbiAgICAgICAgICAgICAgICAgICAgIChpbnRlZ2VyX29mX3N0cmluZyBcIjBcIikpIHRoZW5cbiAgICAgICAgICAgICAgICAgIChtb25leV9vZl9jZW50c19zdHJpbmcgXCIwXCIpIGVsc2VcbiAgICAgICAgICAgICAgICAgIChvX211bHRfbW9uX3JhdFxuICAgICAgICAgICAgICAgICAgICAgKG9fc3ViX21vbl9tb24gY2FsY3VsZXR0ZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV9cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGV0dGVfc2Fuc19nYXJkZV9hbHRlcm5lZV9kb3RfYWlkZV9maW5hbGVfZm9ybXVsZV8pXG4gICAgICAgICAgICAgICAgICAgICAob19kaXZfcmF0X3JhdFxuICAgICAgICAgICAgICAgICAgICAgICAgKG9fcmVkdWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoZnVuIChzdW0xXzogZGVjaW1hbCkgKHN1bTJfOiBkZWNpbWFsKSAtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb19hZGRfcmF0X3JhdCBzdW0xXyBzdW0yXylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWNpbWFsX29mX3N0cmluZyBcIjAuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXylcbiAgICAgICAgICAgICAgICAgICAgICAgIChvX3RvcmF0X2ludFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9fbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXykpKSkpKSkpKSkpKSkpXG4gICAgd2l0aFxuICAgIEVtcHR5RXJyb3IgLT4gKHJhaXNlIChOb1ZhbHVlUHJvdmlkZWRcbiAgICAgIHtmaWxlbmFtZSA9IFwiZXhhbXBsZXMvYWlkZXNfbG9nZW1lbnQvcHJvbG9ndWUuY2F0YWxhX2ZyXCI7XG4gICAgICAgIHN0YXJ0X2xpbmU9MTIxMzsgc3RhcnRfY29sdW1uPTEyOyBlbmRfbGluZT0xMjEzOyBlbmRfY29sdW1uPTIzO1xuICAgICAgICBsYXdfaGVhZGluZ3M9W1wiQ2FsY3VsZXR0ZSBhdmVjIGdhcmRlIGFsdGVybsOpZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICBcIlByb2xvZ3VlIDogYWlkZXMgYXUgbG9nZW1lbnRcIl19KSkpKSBpblxuICB7Q2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUuZWxpZ2liaWxpdGUgPSBlbGlnaWJpbGl0ZV87XG4gICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLmFpZGVfZmluYWxlID0gYWlkZV9maW5hbGVffVxuIiwiKCoqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIENhdGFsYSBjb21waWxlciwgZG8gbm90IGVkaXQhICopXG5cbm9wZW4gUnVudGltZV9vY2FtbC5SdW50aW1lXG5vcGVuIFJ1bnRpbWVfanNvby5SdW50aW1lXG5vcGVuIEpzX29mX29jYW1sXG5vcGVuIEFpZGVzX2xvZ2VtZW50XG5cbltAQEBvY2FtbC53YXJuaW5nIFwiLTQtMjYtMjctMzItNDEtNDJcIl1cblxuKCogR2VuZXJhdGVkIEFQSSAqKVxuXG5jbGFzcyB0eXBlIHR5cGVfcHJldCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkQzMzFfMzJcIlxuICAgICAgICAtIFwiRDMzMV82M182NFwiXG4gICAgICAgIC0gXCJEMzMxXzU5XzhcIlxuICAgICAgICAtIFwiRDMzMV83Nl8xXCJcbiAgICAgICAgLSBcIkF1dHJlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9wcmV0X3RvX2pzb28gOiBUeXBlUHJldC50IC0+IHR5cGVfcHJldCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEMzMxXzMyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV8zMlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEQzMzFfNjNfNjQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEMzMxXzYzXzY0XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRDMzMV81OV84IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV81OV84XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRDMzMV83Nl8xIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRDMzMV83Nl8xXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXV0cmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9wcmV0X29mX2pzb28gKHR5cGVfcHJldCA6IHR5cGVfcHJldCBKcy50KSA6IFR5cGVQcmV0LnQgPVxuICBtYXRjaCB0eXBlX3ByZXQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJEMzMxXzMyXCIgLT4gVHlwZVByZXQuRDMzMV8zMiAoKVxuICB8IFwiRDMzMV82M182NFwiIC0+IFR5cGVQcmV0LkQzMzFfNjNfNjQgKClcbiAgfCBcIkQzMzFfNTlfOFwiIC0+IFR5cGVQcmV0LkQzMzFfNTlfOCAoKVxuICB8IFwiRDMzMV83Nl8xXCIgLT4gVHlwZVByZXQuRDMzMV83Nl8xICgpXG4gIHwgXCJBdXRyZVwiIC0+IFR5cGVQcmV0LkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGYgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlUHJldC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0aXR1bGFpcmVfcHJldCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkRlbWFuZGV1clwiXG4gICAgICAgIC0gXCJWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdGl0dWxhaXJlX3ByZXRfdG9fanNvbyA6IFRpdHVsYWlyZVByZXQudCAtPiB0aXR1bGFpcmVfcHJldCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBEZW1hbmRldXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEZW1hbmRldXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBWZW5kZXVyUXVhbmREZW1hbmRldXJBQ29udHJhdExvY2F0aW9uQWNjZXNzaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdGl0dWxhaXJlX3ByZXRfb2ZfanNvbyAodGl0dWxhaXJlX3ByZXQgOiB0aXR1bGFpcmVfcHJldCBKcy50KVxuICA6IFRpdHVsYWlyZVByZXQudCA9XG4gIG1hdGNoIHRpdHVsYWlyZV9wcmV0IyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGVtYW5kZXVyXCIgLT4gVGl0dWxhaXJlUHJldC5EZW1hbmRldXIgKClcbiAgfCBcIlZlbmRldXJRdWFuZERlbWFuZGV1ckFDb250cmF0TG9jYXRpb25BY2Nlc3Npb25cIiAtPlxuICAgIFRpdHVsYWlyZVByZXQuVmVuZGV1clF1YW5kRGVtYW5kZXVyQUNvbnRyYXRMb2NhdGlvbkFjY2Vzc2lvbiAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVGl0dWxhaXJlUHJldC50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIlxuICAgICAgICAtIFwiVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMlwiXG4gICAgICAgIC0gXCJQYXNEZVRyYXZhdXhcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV90b19qc29vXG4gIDogVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50IC0+IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzEgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJUcmF2YXV4UG91ckFjcXVpc2l0aW9uRDgzMl8xNV8xXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlRyYXZhdXhTdXJMb2dlbWVudERlamFBY3F1aXNEODMyXzE1XzJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQYXNEZVRyYXZhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNEZVRyYXZhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X29mX2pzb29cbiAgKHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IDogdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudClcbiAgOiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LnQgPVxuICBtYXRjaCB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlRyYXZhdXhQb3VyQWNxdWlzaXRpb25EODMyXzE1XzFcIiAtPlxuICAgIFR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUuVHJhdmF1eFBvdXJBY3F1aXNpdGlvbkQ4MzJfMTVfMSAoKVxuICB8IFwiVHJhdmF1eFN1ckxvZ2VtZW50RGVqYUFjcXVpc0Q4MzJfMTVfMlwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS5UcmF2YXV4U3VyTG9nZW1lbnREZWphQWNxdWlzRDgzMl8xNV8yICgpXG4gIHwgXCJQYXNEZVRyYXZhdXhcIiAtPiBUeXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1LlBhc0RlVHJhdmF1eCAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZVRyYXZhdXhMb2dlbWVudEQ4MzIxNS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnRcIlxuICAgICAgICAtIFwiUHJldnVEYW5zTGlzdGVSMzIxXzE1XCJcbiAgICAgICAgLSBcIkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzXCJcbiAgICAgICAgLSBcIlBhc0RlVHJhdmF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdG9fanNvb1xuICA6IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50IC0+IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgT2JqZWN0aWZEZWNlbmNlTG9nZW1lbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJPYmplY3RpZkRlY2VuY2VMb2dlbWVudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFByZXZ1RGFuc0xpc3RlUjMyMV8xNSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlByZXZ1RGFuc0xpc3RlUjMyMV8xNVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQYXNEZVRyYXZhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNEZVRyYXZhdXhcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfb2ZfanNvb1xuICAodHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSA6IHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgSnMudClcbiAgOiBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUudCA9XG4gIG1hdGNoIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJPYmplY3RpZkRlY2VuY2VMb2dlbWVudFwiIC0+XG4gICAgVHlwZVRyYXZhdXhMb2dlbWVudFI4NDI1Lk9iamVjdGlmRGVjZW5jZUxvZ2VtZW50ICgpXG4gIHwgXCJQcmV2dURhbnNMaXN0ZVIzMjFfMTVcIiAtPlxuICAgIFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QcmV2dURhbnNMaXN0ZVIzMjFfMTUgKClcbiAgfCBcIkFncmFuZGlyT3VSZW5kcmVIYWJpdGFibGVEMzMxXzYzXCIgLT5cbiAgICBUeXBlVHJhdmF1eExvZ2VtZW50Ujg0MjUuQWdyYW5kaXJPdVJlbmRyZUhhYml0YWJsZUQzMzFfNjMgKClcbiAgfCBcIlBhc0RlVHJhdmF1eFwiIC0+IFR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS5QYXNEZVRyYXZhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1R5cGVUcmF2YXV4TG9nZW1lbnRSODQyNS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBhbWVsaW9yZV9wYXJfb2NjdXBhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJPdWlcIlxuICAgICAgICAtIFwiTm9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYW1lbGlvcmVfcGFyX29jY3VwYW50X3RvX2pzb29cbiAgOiBBbWVsaW9yZVBhck9jY3VwYW50LnQgLT4gYW1lbGlvcmVfcGFyX29jY3VwYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE91aSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk91aVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE5vbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb29cbiAgKGFtZWxpb3JlX3Bhcl9vY2N1cGFudCA6IGFtZWxpb3JlX3Bhcl9vY2N1cGFudCBKcy50KVxuICA6IEFtZWxpb3JlUGFyT2NjdXBhbnQudCA9XG4gIG1hdGNoIGFtZWxpb3JlX3Bhcl9vY2N1cGFudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk91aVwiIC0+IEFtZWxpb3JlUGFyT2NjdXBhbnQuT3VpICgpXG4gIHwgXCJOb25cIiAtPiBBbWVsaW9yZVBhck9jY3VwYW50Lk5vbiAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQW1lbGlvcmVQYXJPY2N1cGFudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBsaW1pdGVfdHJhbmNoZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlJldmVudVwiXG4gICAgICAgIC0gXCJJbmZpbmlcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV90b19qc29vIDogTGltaXRlVHJhbmNoZS50IC0+IGxpbWl0ZV90cmFuY2hlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFJldmVudSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJldmVudVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IEluZmluaSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkluZmluaVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbGltaXRlX3RyYW5jaGVfb2ZfanNvbyAobGltaXRlX3RyYW5jaGUgOiBsaW1pdGVfdHJhbmNoZSBKcy50KVxuICA6IExpbWl0ZVRyYW5jaGUudCA9XG4gIG1hdGNoIGxpbWl0ZV90cmFuY2hlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiUmV2ZW51XCIgLT5cbiAgTGltaXRlVHJhbmNoZS5SZXZlbnUgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgbGltaXRlX3RyYW5jaGUjIy5wYXlsb2FkKSlcbiAgfCBcIkluZmluaVwiIC0+IExpbWl0ZVRyYW5jaGUuSW5maW5pICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdMaW1pdGVUcmFuY2hlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJSZXZlbnVcIlxuICAgICAgICAtIFwiSW5maW5pXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbGltaXRlX3RyYW5jaGVfZGVjaW1hbF90b19qc29vXG4gIDogTGltaXRlVHJhbmNoZURlY2ltYWwudCAtPiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFJldmVudSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJldmVudVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGFyZykpXG4gICAgZW5kXG4gIHwgSW5maW5pIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW5maW5pXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX29mX2pzb29cbiAgKGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwgOiBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsIEpzLnQpXG4gIDogTGltaXRlVHJhbmNoZURlY2ltYWwudCA9XG4gIG1hdGNoIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJSZXZlbnVcIiAtPlxuICBMaW1pdGVUcmFuY2hlRGVjaW1hbC5SZXZlbnUgKGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIGxpbWl0ZV90cmFuY2hlX2RlY2ltYWwjIy5wYXlsb2FkKSlcbiAgfCBcIkluZmluaVwiIC0+IExpbWl0ZVRyYW5jaGVEZWNpbWFsLkluZmluaSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTGltaXRlVHJhbmNoZURlY2ltYWwudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJlc3RhdGlvbl9yZWN1ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICAgIC0gXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkpldW5lRW5mYW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByZXN0YXRpb25fcmVjdWVfdG9fanNvbyA6IFByZXN0YXRpb25SZWN1ZS50IC0+IHByZXN0YXRpb25fcmVjdWUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29tcGxlbWVudEZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkpldW5lRW5mYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkpldW5lRW5mYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Tb3V0aWVuRW5mYW50SGFuZGljYXBlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHByZXN0YXRpb25fcmVjdWVfb2ZfanNvbyAocHJlc3RhdGlvbl9yZWN1ZSA6IHByZXN0YXRpb25fcmVjdWUgSnMudClcbiAgOiBQcmVzdGF0aW9uUmVjdWUudCA9XG4gIG1hdGNoIHByZXN0YXRpb25fcmVjdWUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBbGxvY2F0aW9uc0ZhbWlsaWFsZXNcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbnNGYW1pbGlhbGVzICgpXG4gIHwgXCJDb21wbGVtZW50RmFtaWxpYWxcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQ29tcGxlbWVudEZhbWlsaWFsICgpXG4gIHwgXCJBbGxvY2F0aW9uSmV1bmVFbmZhbnRcIiAtPiBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvbkpldW5lRW5mYW50ICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIgLT5cbiAgICBQcmVzdGF0aW9uUmVjdWUuQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvblNvdXRpZW5FbmZhbnRIYW5kaWNhcGVcIiAtPlxuICAgIFByZXN0YXRpb25SZWN1ZS5BbGxvY2F0aW9uU291dGllbkVuZmFudEhhbmRpY2FwZSAoKVxuICB8IFwiQWxsb2NhdGlvbkFkdWx0ZUhhbmRpY2FwZVwiIC0+XG4gICAgUHJlc3RhdGlvblJlY3VlLkFsbG9jYXRpb25BZHVsdGVIYW5kaWNhcGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByZXN0YXRpb25SZWN1ZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwYXJlbnRfb3VfYXV0cmUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJEZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXNcIlxuICAgICAgICAtIFwiQXV0cmVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBwYXJlbnRfb3VfYXV0cmVfdG9fanNvbyA6IFBhcmVudE91QXV0cmUudCAtPiBwYXJlbnRfb3VfYXV0cmUgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF1dHJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyAocGFyZW50X291X2F1dHJlIDogcGFyZW50X291X2F1dHJlIEpzLnQpXG4gIDogUGFyZW50T3VBdXRyZS50ID1cbiAgbWF0Y2ggcGFyZW50X291X2F1dHJlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGVtYW5kZXVyT3VDb25qb2ludE91UGFyZW50T3VWaWFQYXJ0c1NvY2lldGVzXCIgLT5cbiAgUGFyZW50T3VBdXRyZS5EZW1hbmRldXJPdUNvbmpvaW50T3VQYXJlbnRPdVZpYVBhcnRzU29jaWV0ZXMgKGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIHBhcmVudF9vdV9hdXRyZSMjLnBheWxvYWQpKVxuICB8IFwiQXV0cmVcIiAtPiBQYXJlbnRPdUF1dHJlLkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQYXJlbnRPdUF1dHJlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBhc0RlR2FyZGVBbHRlcm5lZVwiXG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlX3RvX2pzb29cbiAgOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQgLT4gc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFBhc0RlR2FyZGVBbHRlcm5lZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0RlR2FyZGVBbHRlcm5lZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEdhcmRlQWx0ZXJuZWVDb2VmZmljaWVudFByaXNlRW5DaGFyZ2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlQ29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9nYXJkZV9hbHRlcm5lZV9vZl9qc29vXG4gIChzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgOiBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUgSnMudClcbiAgOiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJQYXNEZUdhcmRlQWx0ZXJuZWVcIiAtPiBTaXR1YXRpb25HYXJkZUFsdGVybmVlLlBhc0RlR2FyZGVBbHRlcm5lZSAoKVxuICB8IFwiR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZVwiIC0+XG4gIFNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUuR2FyZGVBbHRlcm5lZUNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSAoZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2Ugc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25HYXJkZUFsdGVybmVlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHBhcmVudGUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBc2NlbmRhbnRcIlxuICAgICAgICAtIFwiRGVzY2VuZGFudFwiXG4gICAgICAgIC0gXCJDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBhcmVudGVfdG9fanNvbyA6IFBhcmVudGUudCAtPiBwYXJlbnRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEFzY2VuZGFudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFzY2VuZGFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IERlc2NlbmRhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJEZXNjZW5kYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDb2xsYXRlcmFsRGV1eGllbWVUcm9pc2llbWVEZWdyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGFyZW50ZV9vZl9qc29vIChwYXJlbnRlIDogcGFyZW50ZSBKcy50KSA6IFBhcmVudGUudCA9XG4gIG1hdGNoIHBhcmVudGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBc2NlbmRhbnRcIiAtPiBQYXJlbnRlLkFzY2VuZGFudCAoKVxuICB8IFwiRGVzY2VuZGFudFwiIC0+IFBhcmVudGUuRGVzY2VuZGFudCAoKVxuICB8IFwiQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmVcIiAtPlxuICAgIFBhcmVudGUuQ29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZiBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1BhcmVudGUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJEYXRlRGVOYWlzc2FuY2VcIlxuICAgICAgICAtIFwiQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiXG4gICAgICAgIC0gXCJBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VfdG9fanNvb1xuICA6IERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLnQgLT4gZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgRGF0ZURlTmFpc3NhbmNlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRGF0ZURlTmFpc3NhbmNlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQXZhbnRQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBcHJlc1ByZW1pZXJKb3VyTW9pc0NpdmlsVHJvaXNpZW1lTW9pc0RlR3Jvc3Nlc3NlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXByZXNQcmVtaWVySm91ck1vaXNDaXZpbFRyb2lzaWVtZU1vaXNEZUdyb3NzZXNzZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2Vfb2ZfanNvb1xuICAoZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2VcbiAgICA6IGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlIEpzLnQpXG4gIDogRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UudCA9XG4gIG1hdGNoIGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRGF0ZURlTmFpc3NhbmNlXCIgLT5cbiAgRGF0ZURlTmFpc3NhbmNlT3VNb2lzRGVHcm9zc2Vzc2UuRGF0ZURlTmFpc3NhbmNlIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgZGF0ZV9kZV9uYWlzc2FuY2Vfb3VfbW9pc19kZV9ncm9zc2Vzc2UjIy5wYXlsb2FkKSlcbiAgfCBcIkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIiAtPlxuICAgIERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkF2YW50UHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgKClcbiAgfCBcIkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2VcIiAtPlxuICAgIERhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLkFwcmVzUHJlbWllckpvdXJNb2lzQ2l2aWxUcm9pc2llbWVNb2lzRGVHcm9zc2Vzc2UgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0RhdGVEZU5haXNzYW5jZU91TW9pc0RlR3Jvc3Nlc3NlLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHpvbmVfZF9oYWJpdGF0aW9uID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiWm9uZTFcIlxuICAgICAgICAtIFwiWm9uZTJcIlxuICAgICAgICAtIFwiWm9uZTNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIDogWm9uZURIYWJpdGF0aW9uLnQgLT4gem9uZV9kX2hhYml0YXRpb24gSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgWm9uZTEgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJab25lMVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFpvbmUyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiWm9uZTJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBab25lMyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlpvbmUzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vICh6b25lX2RfaGFiaXRhdGlvbiA6IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQpXG4gIDogWm9uZURIYWJpdGF0aW9uLnQgPVxuICBtYXRjaCB6b25lX2RfaGFiaXRhdGlvbiMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlpvbmUxXCIgLT4gWm9uZURIYWJpdGF0aW9uLlpvbmUxICgpXG4gIHwgXCJab25lMlwiIC0+IFpvbmVESGFiaXRhdGlvbi5ab25lMiAoKVxuICB8IFwiWm9uZTNcIiAtPiBab25lREhhYml0YXRpb24uWm9uZTMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1pvbmVESGFiaXRhdGlvbi50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiT3VpQXZlY0xveWVyT3VDaGFyZ2VzXCJcbiAgICAgICAgLSBcIk5vblwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWxfdG9fanNvb1xuICA6IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwudCAtPiBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE91aUF2ZWNMb3llck91Q2hhcmdlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk91aUF2ZWNMb3llck91Q2hhcmdlc1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IE5vbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9vZl9qc29vXG4gIChwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsXG4gICAgOiBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsIEpzLnQpXG4gIDogUGFpZW1lbnRMb2dlbWVudERpc3RpbmN0UHJvZmVzc2lvbm5lbC50ID1cbiAgbWF0Y2ggcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk91aUF2ZWNMb3llck91Q2hhcmdlc1wiIC0+XG4gIFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuT3VpQXZlY0xveWVyT3VDaGFyZ2VzIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIChKcy5VbnNhZmUuY29lcmNlIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwjIy5wYXlsb2FkKSlcbiAgfCBcIk5vblwiIC0+IFBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWwuTm9uICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdQYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHZlcnNlbWVudF9hID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQmFpbGxldXJcIlxuICAgICAgICAtIFwiQmVuZWZpY2lhaXJlXCJcbiAgICAgICAgLSBcIkV0YWJsaXNzZW1lbnRIYWJpbGl0ZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHZlcnNlbWVudF9hX3RvX2pzb28gOiBWZXJzZW1lbnRBLnQgLT4gdmVyc2VtZW50X2EgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQmFpbGxldXIgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJCYWlsbGV1clwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEJlbmVmaWNpYWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkJlbmVmaWNpYWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEV0YWJsaXNzZW1lbnRIYWJpbGl0ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkV0YWJsaXNzZW1lbnRIYWJpbGl0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdmVyc2VtZW50X2Ffb2ZfanNvbyAodmVyc2VtZW50X2EgOiB2ZXJzZW1lbnRfYSBKcy50KSA6IFZlcnNlbWVudEEudCA9XG4gIG1hdGNoIHZlcnNlbWVudF9hIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQmFpbGxldXJcIiAtPiBWZXJzZW1lbnRBLkJhaWxsZXVyICgpXG4gIHwgXCJCZW5lZmljaWFpcmVcIiAtPiBWZXJzZW1lbnRBLkJlbmVmaWNpYWlyZSAoKVxuICB8IFwiRXRhYmxpc3NlbWVudEhhYmlsaXRlXCIgLT4gVmVyc2VtZW50QS5FdGFibGlzc2VtZW50SGFiaWxpdGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ZlcnNlbWVudEEudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgZGVwZW5zZV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlRvdGFsQW5udWVsRWNoZWFuY2VzXCJcbiAgICAgICAgLSBcIk1lbnN1YWxpdGVcIlxuICAgICAgICAtIFwiTG95ZXJcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBkZXBlbnNlX2xvZ2VtZW50X3RvX2pzb28gOiBEZXBlbnNlTG9nZW1lbnQudCAtPiBkZXBlbnNlX2xvZ2VtZW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFRvdGFsQW5udWVsRWNoZWFuY2VzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiVG90YWxBbm51ZWxFY2hlYW5jZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcbiAgfCBNZW5zdWFsaXRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWVuc3VhbGl0ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhcmcpKVxuICAgIGVuZFxuICB8IExveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgYXJnKSlcbiAgICBlbmRcblxubGV0IGRlcGVuc2VfbG9nZW1lbnRfb2ZfanNvbyAoZGVwZW5zZV9sb2dlbWVudCA6IGRlcGVuc2VfbG9nZW1lbnQgSnMudClcbiAgOiBEZXBlbnNlTG9nZW1lbnQudCA9XG4gIG1hdGNoIGRlcGVuc2VfbG9nZW1lbnQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJUb3RhbEFubnVlbEVjaGVhbmNlc1wiIC0+XG4gIERlcGVuc2VMb2dlbWVudC5Ub3RhbEFubnVlbEVjaGVhbmNlcyAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciAoSnMuVW5zYWZlLmNvZXJjZSBkZXBlbnNlX2xvZ2VtZW50IyMucGF5bG9hZCkpXG4gIHwgXCJNZW5zdWFsaXRlXCIgLT5cbiAgRGVwZW5zZUxvZ2VtZW50Lk1lbnN1YWxpdGUgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgZGVwZW5zZV9sb2dlbWVudCMjLnBheWxvYWQpKVxuICB8IFwiTG95ZXJcIiAtPlxuICBEZXBlbnNlTG9nZW1lbnQuTG95ZXIgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgKEpzLlVuc2FmZS5jb2VyY2UgZGVwZW5zZV9sb2dlbWVudCMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnRGVwZW5zZUxvZ2VtZW50LnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIG1vZGVfb2NjdXBhdGlvbl9pbXBheWUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJJbXBheWVMb3llclwiXG4gICAgICAgIC0gXCJJbXBheWVQcmV0XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV90b19qc29vXG4gIDogTW9kZU9jY3VwYXRpb25JbXBheWUudCAtPiBtb2RlX29jY3VwYXRpb25faW1wYXllIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEltcGF5ZUxveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW1wYXllTG95ZXJcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBJbXBheWVQcmV0IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiSW1wYXllUHJldFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZV9vZl9qc29vXG4gIChtb2RlX29jY3VwYXRpb25faW1wYXllIDogbW9kZV9vY2N1cGF0aW9uX2ltcGF5ZSBKcy50KVxuICA6IE1vZGVPY2N1cGF0aW9uSW1wYXllLnQgPVxuICBtYXRjaCBtb2RlX29jY3VwYXRpb25faW1wYXllIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiSW1wYXllTG95ZXJcIiAtPiBNb2RlT2NjdXBhdGlvbkltcGF5ZS5JbXBheWVMb3llciAoKVxuICB8IFwiSW1wYXllUHJldFwiIC0+IE1vZGVPY2N1cGF0aW9uSW1wYXllLkltcGF5ZVByZXQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ01vZGVPY2N1cGF0aW9uSW1wYXllLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBhc0VsaWdpYmxlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cbiAgOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCAtPiB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgUGFzRWxpZ2libGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNFbGlnaWJsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAodHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgOiB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudClcbiAgOiBUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gIG1hdGNoIHR5cGVfZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlBhc0VsaWdpYmxlXCIgLT4gVHlwZUVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LlBhc0VsaWdpYmxlICgpXG4gIHwgXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIiAtPlxuICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAtPlxuICAgIFR5cGVFbGlnaWJpbGl0ZUFsbG9jYXRpb25Mb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkFjY29yZFwiXG4gICAgICAgIC0gXCJQYXNkQWNjb3JkXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lcl90b19qc29vXG4gIDogQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIudCAtPiBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEFjY29yZCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFjY29yZFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGRhdGVfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IFBhc2RBY2NvcmQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQYXNkQWNjb3JkXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X2V0YXRfb3V0cmVfbWVyX29mX2pzb29cbiAgKGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXJcbiAgICA6IGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXIgSnMudClcbiAgOiBBY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lci50ID1cbiAgbWF0Y2ggYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciMjLmtpbmQgfD4gSnMudG9fc3RyaW5nXG4gICAgd2l0aFxuICB8IFwiQWNjb3JkXCIgLT5cbiAgQWNjb3JkRmluYW5jZW1lbnRSZXByZXNlbnRhbnRFdGF0T3V0cmVNZXIuQWNjb3JkIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lciMjLnBheWxvYWQpKVxuICB8IFwiUGFzZEFjY29yZFwiIC0+IEFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLlBhc2RBY2NvcmQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0FjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vXG4gIDogVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50IC0+IHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudFxuICA9IGZ1bmN0aW9uXG4gIHwgQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uTG9nZW1lbnRTb2NpYWxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICh0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IDogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KVxuICA6IFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gIG1hdGNoIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50XCIgLT5cbiAgICBUeXBlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LkFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudEZhbWlsaWFsZVwiIC0+XG4gICAgVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC5BbGxvY2F0aW9uTG9nZW1lbnRGYW1pbGlhbGUgKClcbiAgfCBcIkFsbG9jYXRpb25Mb2dlbWVudFNvY2lhbGVcIiAtPlxuICAgIFR5cGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQuQWxsb2NhdGlvbkxvZ2VtZW50U29jaWFsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fZmFtaWxpYWxlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQ2VsaWJhdGFpcmVcIlxuICAgICAgICAtIFwiTWFyaWVzXCJcbiAgICAgICAgLSBcIlBhY3Nlc1wiXG4gICAgICAgIC0gXCJDb25jdWJpbnNcIlxuICAgICAgICAtIFwiQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXRcIlxuICAgICAgICAtIFwiQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0XCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vXG4gIDogU2l0dWF0aW9uRmFtaWxpYWxlLnQgLT4gc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBDZWxpYmF0YWlyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNlbGliYXRhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTWFyaWVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTWFyaWVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoZGF0ZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUGFjc2VzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGFjc2VzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29uY3ViaW5zIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29uY3ViaW5zXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDZWxpYmF0YWlyZVNlcGFyZURlRmFpdFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IENvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkNvbmN1YmluYWdlRG9udFNlcGFyZURlRmFpdFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gIChzaXR1YXRpb25fZmFtaWxpYWxlIDogc2l0dWF0aW9uX2ZhbWlsaWFsZSBKcy50KSA6IFNpdHVhdGlvbkZhbWlsaWFsZS50ID1cbiAgbWF0Y2ggc2l0dWF0aW9uX2ZhbWlsaWFsZSMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkNlbGliYXRhaXJlXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLkNlbGliYXRhaXJlICgpXG4gIHwgXCJNYXJpZXNcIiAtPlxuICBTaXR1YXRpb25GYW1pbGlhbGUuTWFyaWVzIChkYXRlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2Ugc2l0dWF0aW9uX2ZhbWlsaWFsZSMjLnBheWxvYWQpKVxuICB8IFwiUGFjc2VzXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLlBhY3NlcyAoKVxuICB8IFwiQ29uY3ViaW5zXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlLkNvbmN1YmlucyAoKVxuICB8IFwiQ2VsaWJhdGFpcmVTZXBhcmVEZUZhaXRcIiAtPlxuICAgIFNpdHVhdGlvbkZhbWlsaWFsZS5DZWxpYmF0YWlyZVNlcGFyZURlRmFpdCAoKVxuICB8IFwiQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0XCIgLT5cbiAgICBTaXR1YXRpb25GYW1pbGlhbGUuQ29uY3ViaW5hZ2VEb250U2VwYXJlRGVGYWl0ICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdTaXR1YXRpb25GYW1pbGlhbGUudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgcHJpc2VfZW5fY2hhcmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgICAgLSBcIlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIlxuICAgICAgICAtIFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgcHJpc2VfZW5fY2hhcmdlX3RvX2pzb28gOiBQcmlzZUVuQ2hhcmdlLnQgLT4gcHJpc2VfZW5fY2hhcmdlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEVmZmVjdGl2ZUV0UGVybWFuZW50ZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkVmZmVjdGl2ZUV0UGVybWFuZW50ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJSZXNpZGVuY2VBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2Vfb2ZfanNvbyAocHJpc2VfZW5fY2hhcmdlIDogcHJpc2VfZW5fY2hhcmdlIEpzLnQpXG4gIDogUHJpc2VFbkNoYXJnZS50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY2hhcmdlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIgLT4gUHJpc2VFbkNoYXJnZS5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKClcbiAgfCBcIlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGFpcmVVbmlxdWVcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2UuUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSAoKVxuICB8IFwiUmVzaWRlbmNlQWx0ZXJuZWVBbGxvY2F0aW9uc1BhcnRhZ2VlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlLlJlc2lkZW5jZUFsdGVybmVlQWxsb2NhdGlvbnNQYXJ0YWdlZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnUHJpc2VFbkNoYXJnZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0eXBlX2xvZ2VtZW50X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXNcIlxuICAgICAgICAtIFwiUmVzaWRlbmNlU29jaWFsZVwiXG4gICAgICAgIC0gXCJGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NVwiXG4gICAgICAgIC0gXCJBdXRyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuICA6IFR5cGVMb2dlbWVudEZveWVyLnQgLT4gdHlwZV9sb2dlbWVudF9mb3llciBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBMb2dlbWVudFBlcnNvbm5lc0FnZWVzT3VIYW5kaWNhcGVlcyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbmNlU29jaWFsZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlJlc2lkZW5jZVNvY2lhbGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBGb3llckpldW5lc1RydmFpbGxldXJzT3VNaWdyYW50c0NvbnZlbnRpb25uZUwzNTNfMkF2YW50MTk5NSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQXV0cmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICh0eXBlX2xvZ2VtZW50X2ZveWVyIDogdHlwZV9sb2dlbWVudF9mb3llciBKcy50KSA6IFR5cGVMb2dlbWVudEZveWVyLnQgPVxuICBtYXRjaCB0eXBlX2xvZ2VtZW50X2ZveWVyIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTG9nZW1lbnRQZXJzb25uZXNBZ2Vlc091SGFuZGljYXBlZXNcIiAtPlxuICAgIFR5cGVMb2dlbWVudEZveWVyLkxvZ2VtZW50UGVyc29ubmVzQWdlZXNPdUhhbmRpY2FwZWVzICgpXG4gIHwgXCJSZXNpZGVuY2VTb2NpYWxlXCIgLT4gVHlwZUxvZ2VtZW50Rm95ZXIuUmVzaWRlbmNlU29jaWFsZSAoKVxuICB8IFwiRm95ZXJKZXVuZXNUcnZhaWxsZXVyc091TWlncmFudHNDb252ZW50aW9ubmVMMzUzXzJBdmFudDE5OTVcIiAtPlxuICAgIFR5cGVMb2dlbWVudEZveWVyLkZveWVySmV1bmVzVHJ2YWlsbGV1cnNPdU1pZ3JhbnRzQ29udmVudGlvbm5lTDM1M18yQXZhbnQxOTk1ICgpXG4gIHwgXCJBdXRyZVwiIC0+IFR5cGVMb2dlbWVudEZveWVyLkF1dHJlICgpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdUeXBlTG9nZW1lbnRGb3llci50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTXCJcbiAgICAgICAgLSBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWVcIlxuICAgICAgICAtIFwiUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTZcIlxuICAgICAgICAtIFwiQXV0cmVzUGVyc29ubmVzXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfdG9fanNvb1xuICA6IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50IC0+IGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBFdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVNSZWhhYmlsaXRlZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGVyc29ubmVzQWdlZXNTZWxvbjNEZUQ4NDJfMTZcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBdXRyZXNQZXJzb25uZXMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZXNQZXJzb25uZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgKGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgOiBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50KVxuICA6IENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgbWF0Y2ggY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5raW5kXG4gICAgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTXCIgLT5cbiAgICBDYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIuRXR1ZGlhbnRMb2dlRW5DaGFtYnJlQ1JPVVMgKClcbiAgfCBcIkV0dWRpYW50TG9nZUVuQ2hhbWJyZUNST1VTUmVoYWJpbGl0ZWVcIiAtPlxuICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5FdHVkaWFudExvZ2VFbkNoYW1icmVDUk9VU1JlaGFiaWxpdGVlICgpXG4gIHwgXCJQZXJzb25uZXNBZ2Vlc1NlbG9uM0RlRDg0Ml8xNlwiIC0+XG4gICAgQ2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckFsbG9jYXRpb25Mb2dlbWVudEZveWVyLlBlcnNvbm5lc0FnZWVzU2Vsb24zRGVEODQyXzE2ICgpXG4gIHwgXCJBdXRyZXNQZXJzb25uZXNcIiAtPlxuICAgIENhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci5BdXRyZXNQZXJzb25uZXMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0NhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIlBlcnNvbm5lU2V1bGVcIlxuICAgICAgICAtIFwiQ291cGxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvb1xuICA6IFNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFQTC50IC0+IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFBlcnNvbm5lU2V1bGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQZXJzb25uZVNldWxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ291cGxlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ291cGxlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gIChzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCA6IHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQpXG4gIDogU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQgPVxuICBtYXRjaCBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlBlcnNvbm5lU2V1bGVcIiAtPiBTaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBUEwuUGVyc29ubmVTZXVsZSAoKVxuICB8IFwiQ291cGxlXCIgLT4gU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLkNvdXBsZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnU2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQVBMLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGNvbGxlY3Rpdml0ZSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkd1YWRlbG91cGVcIlxuICAgICAgICAtIFwiR3V5YW5lXCJcbiAgICAgICAgLSBcIk1hcnRpbmlxdWVcIlxuICAgICAgICAtIFwiTGFSZXVuaW9uXCJcbiAgICAgICAgLSBcIlNhaW50QmFydGhlbGVteVwiXG4gICAgICAgIC0gXCJTYWludE1hcnRpblwiXG4gICAgICAgIC0gXCJNZXRyb3BvbGVcIlxuICAgICAgICAtIFwiU2FpbnRQaWVycmVFdE1pcXVlbG9uXCJcbiAgICAgICAgLSBcIk1heW90dGVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfdG9fanNvbyA6IENvbGxlY3Rpdml0ZS50IC0+IGNvbGxlY3Rpdml0ZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBHdWFkZWxvdXBlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR3VhZGVsb3VwZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEd1eWFuZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkd1eWFuZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1hcnRpbmlxdWUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXJ0aW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgTGFSZXVuaW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTGFSZXVuaW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRCYXJ0aGVsZW15IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU2FpbnRCYXJ0aGVsZW15XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2FpbnRNYXJ0aW4gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTYWludE1hcnRpblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1ldHJvcG9sZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk1ldHJvcG9sZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNhaW50UGllcnJlRXRNaXF1ZWxvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE1heW90dGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJNYXlvdHRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBjb2xsZWN0aXZpdGVfb2ZfanNvbyAoY29sbGVjdGl2aXRlIDogY29sbGVjdGl2aXRlIEpzLnQpXG4gIDogQ29sbGVjdGl2aXRlLnQgPVxuICBtYXRjaCBjb2xsZWN0aXZpdGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJHdWFkZWxvdXBlXCIgLT4gQ29sbGVjdGl2aXRlLkd1YWRlbG91cGUgKClcbiAgfCBcIkd1eWFuZVwiIC0+IENvbGxlY3Rpdml0ZS5HdXlhbmUgKClcbiAgfCBcIk1hcnRpbmlxdWVcIiAtPiBDb2xsZWN0aXZpdGUuTWFydGluaXF1ZSAoKVxuICB8IFwiTGFSZXVuaW9uXCIgLT4gQ29sbGVjdGl2aXRlLkxhUmV1bmlvbiAoKVxuICB8IFwiU2FpbnRCYXJ0aGVsZW15XCIgLT4gQ29sbGVjdGl2aXRlLlNhaW50QmFydGhlbGVteSAoKVxuICB8IFwiU2FpbnRNYXJ0aW5cIiAtPiBDb2xsZWN0aXZpdGUuU2FpbnRNYXJ0aW4gKClcbiAgfCBcIk1ldHJvcG9sZVwiIC0+IENvbGxlY3Rpdml0ZS5NZXRyb3BvbGUgKClcbiAgfCBcIlNhaW50UGllcnJlRXRNaXF1ZWxvblwiIC0+IENvbGxlY3Rpdml0ZS5TYWludFBpZXJyZUV0TWlxdWVsb24gKClcbiAgfCBcIk1heW90dGVcIiAtPiBDb2xsZWN0aXZpdGUuTWF5b3R0ZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ29sbGVjdGl2aXRlLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgICAgLSBcIkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZVwiXG4gICAgICAgIC0gXCJFZmZlY3RpdmVFdFBlcm1hbmVudGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGVcIlxuICAgICAgICAtIFwiU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUF1eFNlcnZpY2VzU29jaWF1eFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHByaXNlX2VuX2NoYXJnZV9lbmZhbnRfdG9fanNvb1xuICA6IFByaXNlRW5DaGFyZ2VFbmZhbnQudCAtPiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnMgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJHYXJkZUFsdGVybmVlUGFydGFnZUFsbG9jYXRpb25zXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgRWZmZWN0aXZlRXRQZXJtYW5lbnRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgU2VydmljZXNTb2NpYXV4QWxsb2NhdGlvblZlcnNlZUFMYUZhbWlsbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQUxhRmFtaWxsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG5cbmxldCBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50X29mX2pzb29cbiAgKHByaXNlX2VuX2NoYXJnZV9lbmZhbnQgOiBwcmlzZV9lbl9jaGFyZ2VfZW5mYW50IEpzLnQpXG4gIDogUHJpc2VFbkNoYXJnZUVuZmFudC50ID1cbiAgbWF0Y2ggcHJpc2VfZW5fY2hhcmdlX2VuZmFudCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkdhcmRlQWx0ZXJuZWVQYXJ0YWdlQWxsb2NhdGlvbnNcIiAtPlxuICAgIFByaXNlRW5DaGFyZ2VFbmZhbnQuR2FyZGVBbHRlcm5lZVBhcnRhZ2VBbGxvY2F0aW9ucyAoKVxuICB8IFwiR2FyZGVBbHRlcm5lZUFsbG9jYXRhaXJlVW5pcXVlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LkdhcmRlQWx0ZXJuZWVBbGxvY2F0YWlyZVVuaXF1ZSAoKVxuICB8IFwiRWZmZWN0aXZlRXRQZXJtYW5lbnRlXCIgLT4gUHJpc2VFbkNoYXJnZUVuZmFudC5FZmZlY3RpdmVFdFBlcm1hbmVudGUgKClcbiAgfCBcIlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlXCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBTGFGYW1pbGxlICgpXG4gIHwgXCJTZXJ2aWNlc1NvY2lhdXhBbGxvY2F0aW9uVmVyc2VlQXV4U2VydmljZXNTb2NpYXV4XCIgLT5cbiAgICBQcmlzZUVuQ2hhcmdlRW5mYW50LlNlcnZpY2VzU29jaWF1eEFsbG9jYXRpb25WZXJzZWVBdXhTZXJ2aWNlc1NvY2lhdXggKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1ByaXNlRW5DaGFyZ2VFbmZhbnQudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJBdmFudFwiXG4gICAgICAgIC0gXCJQZW5kYW50XCJcbiAgICAgICAgLSBcIkFwcmVzXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvb1xuICA6IFNpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50IC0+IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEF2YW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXZhbnRcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBQZW5kYW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUGVuZGFudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFwcmVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQXByZXNcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcblxubGV0IHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgKHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIDogc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudClcbiAgOiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUudCA9XG4gIG1hdGNoIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiQXZhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXZhbnQgKClcbiAgfCBcIlBlbmRhbnRcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuUGVuZGFudCAoKVxuICB8IFwiQXByZXNcIiAtPiBTaXR1YXRpb25PYmxpZ2F0aW9uU2NvbGFpcmUuQXByZXMgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1NpdHVhdGlvbk9ibGlnYXRpb25TY29sYWlyZS50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25zRmFtaWxpYWxlc1wiXG4gICAgICAgIC0gXCJDb21wbGVtZW50RmFtaWxpYWxcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgICAtIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICAgIC0gXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgICAgLSBcIkFsbG9jYXRpb25Kb3VybmFsaWVyZVByZXNlbmNlUGFyZW50YWxlXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cbiAgOiBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLnQgLT4gZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IFByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJQcmVzdGF0aW9uQWNjdWVpbEpldW5lRW5mYW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbnNGYW1pbGlhbGVzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQ29tcGxlbWVudEZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQ29tcGxlbWVudEZhbWlsaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkxvZ2VtZW50IGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvbkxvZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFsbG9jYXRpb25FZHVjYXRpb25FbmZhbnRIYW5kaWNhcGVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0ICggYXJnKSlcbiAgICBlbmRcbiAgfCBBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWxsb2NhdGlvblNvdXRpZW5GYW1pbGlhbFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uUmVudHJlZVNjb2xhaXJlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoIGFyZykpXG4gICAgZW5kXG4gIHwgQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBbGxvY2F0aW9uSm91cm5hbGllcmVQcmVzZW5jZVBhcmVudGFsZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgKGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA6IGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KVxuICA6IEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gIG1hdGNoIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIlByZXN0YXRpb25BY2N1ZWlsSmV1bmVFbmZhbnRcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuUHJlc3RhdGlvbkFjY3VlaWxKZXVuZUVuZmFudCAoKVxuICB8IFwiQWxsb2NhdGlvbnNGYW1pbGlhbGVzXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25zRmFtaWxpYWxlcyAoKVxuICB8IFwiQ29tcGxlbWVudEZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkNvbXBsZW1lbnRGYW1pbGlhbCAoKVxuICB8IFwiQWxsb2NhdGlvbkxvZ2VtZW50XCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Mb2dlbWVudCAoKVxuICB8IFwiQWxsb2NhdGlvbkVkdWNhdGlvbkVuZmFudEhhbmRpY2FwZVwiIC0+XG4gICAgRWxlbWVudFByZXN0YXRpb25zRmFtaWxpYWxlcy5BbGxvY2F0aW9uRWR1Y2F0aW9uRW5mYW50SGFuZGljYXBlICgpXG4gIHwgXCJBbGxvY2F0aW9uU291dGllbkZhbWlsaWFsXCIgLT5cbiAgICBFbGVtZW50UHJlc3RhdGlvbnNGYW1pbGlhbGVzLkFsbG9jYXRpb25Tb3V0aWVuRmFtaWxpYWwgKClcbiAgfCBcIkFsbG9jYXRpb25SZW50cmVlU2NvbGFpcmVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvblJlbnRyZWVTY29sYWlyZSAoKVxuICB8IFwiQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGVcIiAtPlxuICAgIEVsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMuQWxsb2NhdGlvbkpvdXJuYWxpZXJlUHJlc2VuY2VQYXJlbnRhbGUgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0VsZW1lbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCdcIlxuICAgICAgICBjb25zKVxuXG5cbmNsYXNzIHR5cGUgY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVQZXJjdWU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b19qc29vIChjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbFxuICAgIDogQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnQpIDogY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJID1cbiAgICAgICAgSnMuYm9vbCBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbC5jb252ZW50aW9ubmVfbGl2cmVfSUlJX3RpdHJlX1ZfY2hhcF9JSUlcbiAgICAgIHZhbCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVQZXJjdWUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwucmVkdWN0aW9uX2xveWVyX3NvbGlkYXJpdGVfcGVyY3VlXG4gICAgICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYmFpbGxldXJfc29jaWFsX29mX2pzb29cbiAgICAoY29udmVudGlvbl9iYWlsbGV1cl9zb2NpYWwgOiBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCBKcy50KSA6XG4gICAgQ29udmVudGlvbkJhaWxsZXVyU29jaWFsLnQgPVxuICAgIHtcbiAgICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfVl9jaGFwX0lJSSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCMjLmNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVWQ2hhcElJSTtcbiAgICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX3BlcmN1ZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbCMjLnJlZHVjdGlvbkxveWVyU29saWRhcml0ZVBlcmN1ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBjb252ZW50aW9uX2Ffbl9oX2EgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZUlJQ2hhcElTZWMzOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYV9uX2hfYV90b19qc29vIChjb252ZW50aW9uX2Ffbl9oX2EgOiBDb252ZW50aW9uQU5IQS50KVxuICAgIDogY29udmVudGlvbl9hX25faF9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVJSUNoYXBJU2VjMyA9XG4gICAgICAgIEpzLmJvb2wgY29udmVudGlvbl9hX25faF9hLmNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zXG4gICAgICBlbmRcbiAgbGV0IGNvbnZlbnRpb25fYV9uX2hfYV9vZl9qc29vXG4gICAgKGNvbnZlbnRpb25fYV9uX2hfYSA6IGNvbnZlbnRpb25fYV9uX2hfYSBKcy50KSA6IENvbnZlbnRpb25BTkhBLnQgPVxuICAgIHtcbiAgICAgIGNvbnZlbnRpb25uZV9saXZyZV9JSUlfdGl0cmVfSUlfY2hhcF9JX3NlY18zID1cbiAgICAgICAgSnMudG9fYm9vbCBjb252ZW50aW9uX2Ffbl9oX2EjIy5jb252ZW50aW9ubmVMaXZyZUlJSVRpdHJlSUlDaGFwSVNlYzNcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfc291c19sb2NhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlUGVyc29ubmVTb3VzTG9jYXRpb246XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbmZvcm1lQXJ0aWNsZUw0NDIxOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fdG9fanNvbyAocGVyc29ubmVfc291c19sb2NhdGlvblxuICAgIDogUGVyc29ubmVTb3VzTG9jYXRpb24udCkgOiBwZXJzb25uZV9zb3VzX2xvY2F0aW9uIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VQZXJzb25uZVNvdXNMb2NhdGlvbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBwZXJzb25uZV9zb3VzX2xvY2F0aW9uLmRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb25cbiAgICAgIHZhbCBjb25mb3JtZUFydGljbGVMNDQyMSA9XG4gICAgICAgIEpzLmJvb2wgcGVyc29ubmVfc291c19sb2NhdGlvbi5jb25mb3JtZV9hcnRpY2xlX2w0NDJfMVxuICAgICAgZW5kXG4gIGxldCBwZXJzb25uZV9zb3VzX2xvY2F0aW9uX29mX2pzb29cbiAgICAocGVyc29ubmVfc291c19sb2NhdGlvbiA6IHBlcnNvbm5lX3NvdXNfbG9jYXRpb24gSnMudCkgOlxuICAgIFBlcnNvbm5lU291c0xvY2F0aW9uLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlX3BlcnNvbm5lX3NvdXNfbG9jYXRpb24gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBwZXJzb25uZV9zb3VzX2xvY2F0aW9uIyMuZGF0ZU5haXNzYW5jZVBlcnNvbm5lU291c0xvY2F0aW9uO1xuICAgICAgY29uZm9ybWVfYXJ0aWNsZV9sNDQyXzEgPVxuICAgICAgICBKcy50b19ib29sIHBlcnNvbm5lX3NvdXNfbG9jYXRpb24jIy5jb25mb3JtZUFydGljbGVMNDQyMVxuICAgIH1cblxuY2xhc3MgdHlwZSBwYXRyaW1vaW5lID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHByb2R1aXNhbnRSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQ6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5lUHJvZHVpc2FudFBhc1JldmVudVBlcmlvZGVSODIyMzNSODIyNDpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBwYXRyaW1vaW5lX3RvX2pzb28gKHBhdHJpbW9pbmUgOiBQYXRyaW1vaW5lLnQpIDogcGF0cmltb2luZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBwcm9kdWlzYW50UmV2ZW51UGVyaW9kZVI4MjIzM1I4MjI0ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHBhdHJpbW9pbmUucHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzRcbiAgICAgIHZhbCBuZVByb2R1aXNhbnRQYXNSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcGF0cmltb2luZS5uZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzRcbiAgICAgIGVuZFxuICBsZXQgcGF0cmltb2luZV9vZl9qc29vIChwYXRyaW1vaW5lIDogcGF0cmltb2luZSBKcy50KSA6IFBhdHJpbW9pbmUudCA9XG4gICAge1xuICAgICAgcHJvZHVpc2FudF9yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcGF0cmltb2luZSMjLnByb2R1aXNhbnRSZXZlbnVQZXJpb2RlUjgyMjMzUjgyMjQ7XG4gICAgICBuZV9wcm9kdWlzYW50X3Bhc19yZXZlbnVfcGVyaW9kZV9yODIyXzNfM19yODIyXzQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcGF0cmltb2luZSMjLm5lUHJvZHVpc2FudFBhc1JldmVudVBlcmlvZGVSODIyMzNSODIyNFxuICAgIH1cblxuY2xhc3MgdHlwZSBjb25kaXRpb25zX2V0cmFuZ2VycyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBzYXRpc2ZhaXRDb25kaXRpb25zTDUxMjJDb2RlU2VjdXJpdGVTb2NpYWxlOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2F0aXNmYWl0QXJ0NE9yZG9ubmFuY2UyMDAyTWF5b3R0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjb25kaXRpb25zX2V0cmFuZ2Vyc190b19qc29vIChjb25kaXRpb25zX2V0cmFuZ2Vyc1xuICAgIDogQ29uZGl0aW9uc0V0cmFuZ2Vycy50KSA6IGNvbmRpdGlvbnNfZXRyYW5nZXJzIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHNhdGlzZmFpdENvbmRpdGlvbnNMNTEyMkNvZGVTZWN1cml0ZVNvY2lhbGUgPVxuICAgICAgICBKcy5ib29sIGNvbmRpdGlvbnNfZXRyYW5nZXJzLnNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGVcbiAgICAgIHZhbCBzYXRpc2ZhaXRBcnQ0T3Jkb25uYW5jZTIwMDJNYXlvdHRlID1cbiAgICAgICAgSnMuYm9vbCBjb25kaXRpb25zX2V0cmFuZ2Vycy5zYXRpc2ZhaXRfYXJ0XzRfb3Jkb25uYW5jZV8yMDAyX21heW90dGVcbiAgICAgIGVuZFxuICBsZXQgY29uZGl0aW9uc19ldHJhbmdlcnNfb2ZfanNvb1xuICAgIChjb25kaXRpb25zX2V0cmFuZ2VycyA6IGNvbmRpdGlvbnNfZXRyYW5nZXJzIEpzLnQpIDpcbiAgICBDb25kaXRpb25zRXRyYW5nZXJzLnQgPVxuICAgIHtcbiAgICAgIHNhdGlzZmFpdF9jb25kaXRpb25zX2w1MTJfMl9jb2RlX3NlY3VyaXRlX3NvY2lhbGUgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY29uZGl0aW9uc19ldHJhbmdlcnMjIy5zYXRpc2ZhaXRDb25kaXRpb25zTDUxMjJDb2RlU2VjdXJpdGVTb2NpYWxlO1xuICAgICAgc2F0aXNmYWl0X2FydF80X29yZG9ubmFuY2VfMjAwMl9tYXlvdHRlID1cbiAgICAgICAgSnMudG9fYm9vbCBjb25kaXRpb25zX2V0cmFuZ2VycyMjLnNhdGlzZmFpdEFydDRPcmRvbm5hbmNlMjAwMk1heW90dGVcbiAgICB9XG5cbmNsYXNzIHR5cGUgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGR1cmVlUmVzaWRlbmNlRHVyYW50UGVyaW9kZVI4MjIzMVN1cGVyaWV1cmVBNk1vaXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyX3RvX2pzb29cbiAgICAocGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyXG4gICAgOiBQZXJzb25uZVZpdmFudEhhYml0dWVsbGVtZW50QXVGb3llci50KVxuICAgIDogcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGR1cmVlUmVzaWRlbmNlRHVyYW50UGVyaW9kZVI4MjIzMVN1cGVyaWV1cmVBNk1vaXMgPVxuICAgICAgICBKcy5ib29sIHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llci5kdXJlZV9yZXNpZGVuY2VfZHVyYW50X3BlcmlvZGVfcl84MjJfM18xX3N1cGVyaWV1cmVfYV82X21vaXNcbiAgICAgIHZhbCByZXNzb3VyY2VzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llci5yZXNzb3VyY2VzXG4gICAgICBlbmRcbiAgbGV0IHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llcl9vZl9qc29vXG4gICAgKHBlcnNvbm5lX3ZpdmFudF9oYWJpdHVlbGxlbWVudF9hdV9mb3llclxuICAgICAgOiBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIgSnMudCkgOlxuICAgIFBlcnNvbm5lVml2YW50SGFiaXR1ZWxsZW1lbnRBdUZveWVyLnQgPVxuICAgIHtcbiAgICAgIGR1cmVlX3Jlc2lkZW5jZV9kdXJhbnRfcGVyaW9kZV9yXzgyMl8zXzFfc3VwZXJpZXVyZV9hXzZfbW9pcyA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJcbiAgICAgICAgICAjIy5kdXJlZVJlc2lkZW5jZUR1cmFudFBlcmlvZGVSODIyMzFTdXBlcmlldXJlQTZNb2lzO1xuICAgICAgcmVzc291cmNlcyA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXIjIy5yZXNzb3VyY2VzXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGU6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZTpcbiAgICAgIEpzLm51bWJlciBKcy50IEpzLmpzX2FycmF5IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgIDogRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5kYXRlX2NvdXJhbnRlXG4gICAgICB2YWwgZWxpZ2liaWxpdGUgPVxuICAgICAgICBKcy5ib29sIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5lbGlnaWJpbGl0ZVxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudC5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIHZhbCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCB4KSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQuY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgICAgIDogZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZSA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQjIy5kYXRlQ291cmFudGU7XG4gICAgICBlbGlnaWJpbGl0ZSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IyMuZWxpZ2liaWxpdGU7XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTtcbiAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICAgICAgIyMuY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgPVxuICBvYmplY3QgbWV0aG9kIG1vbnRhbnRQcmltZURlbWVuYWdlbWVudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCA6IEVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudC50KVxuICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnRQcmltZURlbWVuYWdlbWVudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQubW9udGFudF9wcmltZV9kZW1lbmFnZW1lbnRcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X29mX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICA6IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnRfcHJpbWVfZGVtZW5hZ2VtZW50ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudCMjLm1vbnRhbnRQcmltZURlbWVuYWdlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgb2JqZWN0IG1ldGhvZCByZXNzb3VyY2VzUHJpc2VzRW5Db21wdGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50KVxuICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCByZXNzb3VyY2VzUHJpc2VzRW5Db21wdGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5yZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGVcbiAgICAgIGVuZFxuICBsZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIDogcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSA6XG4gICAgUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudC50ID1cbiAgICB7XG4gICAgICByZXNzb3VyY2VzX3ByaXNlc19lbl9jb21wdGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCMjLnJlc3NvdXJjZXNQcmlzZXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1vbnRhbnQ6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgIDogQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpXG4gICAgOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgbWV0aG9kIG1vbnRhbnQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5tb250YW50IFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIDogY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSA6XG4gICAgQ29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnbW9udGFudCcgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzRDgyMzE2OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBsYWZvbmRMb3llckQ4MjMxNjI6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGFydGljaXBhdGlvbk1pbmltYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwYXJ0aWNpcGF0aW9uUGVyc29ubmVsbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRMb2NhdGlmLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudEZvcmZhaXRhaXJlQ2hhcmdlc0Q4MjMxNiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYubW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzX2Q4MjNfMTZcbiAgICAgIHZhbCBwbGFmb25kTG95ZXJEODIzMTYyID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5wbGFmb25kX2xveWVyX2Q4MjNfMTZfMlxuICAgICAgdmFsIHBhcnRpY2lwYXRpb25NaW5pbWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYucGFydGljaXBhdGlvbl9taW5pbWFsZVxuICAgICAgdmFsIHRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi50YXV4X2NvbXBvc2l0aW9uX2ZhbWlsaWFsZVxuICAgICAgdmFsIHBhcnRpY2lwYXRpb25QZXJzb25uZWxsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYucGFydGljaXBhdGlvbl9wZXJzb25uZWxsZVxuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZi5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZi50ID1cbiAgICB7XG4gICAgICBtb250YW50X2ZvcmZhaXRhaXJlX2NoYXJnZXNfZDgyM18xNiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgICAgICAjIy5tb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzRDgyMzE2O1xuICAgICAgcGxhZm9uZF9sb3llcl9kODIzXzE2XzIgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIyMucGxhZm9uZExveWVyRDgyMzE2MjtcbiAgICAgIHBhcnRpY2lwYXRpb25fbWluaW1hbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIyMucGFydGljaXBhdGlvbk1pbmltYWxlO1xuICAgICAgdGF1eF9jb21wb3NpdGlvbl9mYW1pbGlhbGUgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAgICAgICAgICMjLnRhdXhDb21wb3NpdGlvbkZhbWlsaWFsZTtcbiAgICAgIHBhcnRpY2lwYXRpb25fcGVyc29ubmVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gICAgICAgICAgIyMucGFydGljaXBhdGlvblBlcnNvbm5lbGxlO1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWYjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gIG9iamVjdCBtZXRob2QgbW9udGFudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV90b19qc29vXG4gICAgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZS50KVxuICAgIDogY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlLm1vbnRhbnRcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX29mX2pzb29cbiAgICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gICAgICA6IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSBKcy50KSA6XG4gICAgQ2FsY3VsRXF1aXZhbGVuY2VMb3llck1pbmltYWxlLnQgPVxuICAgIHtcbiAgICAgIG1vbnRhbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIyMubW9udGFudFxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3QgbWV0aG9kIG5Ob21icmVQYXJ0c0Q4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl90b19qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciA6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyLnQpXG4gICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXIgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbk5vbWJyZVBhcnRzRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyLm5fbm9tYnJlX3BhcnRzX2Q4MzJfMjVcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gICAgICA6IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciBKcy50KSA6XG4gICAgQ2FsY3VsTm9tYnJlUGFydExvZ2VtZW50Rm95ZXIudCA9XG4gICAge1xuICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIyMubk5vbWJyZVBhcnRzRDgzMjI1XG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29lZmZpY2llbnRNdWx0aXBsaWNhdGV1ckQ4MzIyNTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFJEODMyMjU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjI1OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVxdWl2YWxlbmNlTG95ZXJFbGlnaWJsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwbGFmb25kRXF1aXZhbGVuY2VMb3llckVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMjU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVyLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvZWZmaWNpZW50TXVsdGlwbGljYXRldXJEODMyMjUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5jb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1XG4gICAgICB2YWwgY29lZmZpY2llbnRSRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuY29lZmZpY2llbnRfcl9kODMyXzI1XG4gICAgICB2YWwgbk5vbWJyZVBhcnRzRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5uX25vbWJyZV9wYXJ0c19kODMyXzI1XG4gICAgICB2YWwgZXF1aXZhbGVuY2VMb3llckVsaWdpYmxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGVcbiAgICAgIHZhbCBwbGFmb25kRXF1aXZhbGVuY2VMb3llckVsaWdpYmxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIucGxhZm9uZF9lcXVpdmFsZW5jZV9sb3llcl9lbGlnaWJsZVxuICAgICAgdmFsIGVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyLmVxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gICAgICB2YWwgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlRDgzMjI1ID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llci5jb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2VfZDgzMl8yNVxuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyXG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIgSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llci50ID1cbiAgICB7XG4gICAgICBjb2VmZmljaWVudF9tdWx0aXBsaWNhdGV1cl9kODMyXzI1ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgICAgICAgICAjIy5jb2VmZmljaWVudE11bHRpcGxpY2F0ZXVyRDgzMjI1O1xuICAgICAgY29lZmZpY2llbnRfcl9kODMyXzI1ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5jb2VmZmljaWVudFJEODMyMjU7XG4gICAgICBuX25vbWJyZV9wYXJ0c19kODMyXzI1ID1cbiAgICAgICAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIyMubk5vbWJyZVBhcnRzRDgzMjI1O1xuICAgICAgZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciMjLmVxdWl2YWxlbmNlTG95ZXJFbGlnaWJsZTtcbiAgICAgIHBsYWZvbmRfZXF1aXZhbGVuY2VfbG95ZXJfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgICAgICAgICMjLnBsYWZvbmRFcXVpdmFsZW5jZUxveWVyRWxpZ2libGU7XG4gICAgICBlcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyIyMuZXF1aXZhbGVuY2VMb3llck1pbmltYWxlO1xuICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMjUgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgICAgICAgICAjIy5jb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMjU7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXIjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSA9XG4gIG9iamVjdCBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjExOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cbiAgICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgOiBDYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZS50KVxuICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG5Ob21icmVQYXJ0c0Q4MzIxMSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZS5uX25vbWJyZV9wYXJ0c19kODMyXzExXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9vZl9qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCkgOlxuICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgIHtcbiAgICAgIG5fbm9tYnJlX3BhcnRzX2Q4MzJfMTEgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZSMjLm5Ob21icmVQYXJ0c0Q4MzIxMVxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuc3VhbGl0ZUVsaWdpYmxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1lbnN1YWxpdGVNaW5pbWFsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMTA6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfdG9fanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUudClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5zdWFsaXRlRWxpZ2libGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLm1lbnN1YWxpdGVfZWxpZ2libGVcbiAgICAgIHZhbCBtZW5zdWFsaXRlTWluaW1hbGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlLm1lbnN1YWxpdGVfbWluaW1hbGVcbiAgICAgIHZhbCBjb2VmZmljaWVudFByaXNlRW5DaGFyZ2VEODMyMTAgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTBcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50ID1cbiAgICB7XG4gICAgICBtZW5zdWFsaXRlX2VsaWdpYmxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgICAgICMjLm1lbnN1YWxpdGVFbGlnaWJsZTtcbiAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMubWVuc3VhbGl0ZU1pbmltYWxlO1xuICAgICAgY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlX2Q4MzJfMTAgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgICAgICMjLmNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZUQ4MzIxMDtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gICAgICAgICAgIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGVfdG9fanNvbyAodHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlXG4gICAgOiBUcmFpdGVtZW50Rm9ybXVsZUFpZGVGaW5hbGUudCkgOiB0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlLmFpZGVfZmluYWxlX2Zvcm11bGVcbiAgICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZSA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogSnMubnVtYmVyIEpzLnQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0ICh0cmFpdGVtZW50X2Zvcm11bGVfYWlkZV9maW5hbGUudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZV9vZl9qc29vXG4gICAgKHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSA6IHRyYWl0ZW1lbnRfZm9ybXVsZV9haWRlX2ZpbmFsZSBKcy50KSA6XG4gICAgVHJhaXRlbWVudEZvcm11bGVBaWRlRmluYWxlLnQgPVxuICAgIHtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgdHJhaXRlbWVudF9mb3JtdWxlX2FpZGVfZmluYWxlIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50LnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCkgOlxuICAgIENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhbmNpZW5Mb3llclByaW5jaXBhbDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbmNpZW5uZUFsbG9jYXRpb25Mb2dlbWVudDogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvX2pzb29cbiAgICAoaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgOiBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQpXG4gICAgOiBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhbmNpZW5Mb3llclByaW5jaXBhbCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNC5hbmNpZW5fbG95ZXJfcHJpbmNpcGFsXG4gICAgICB2YWwgYW5jaWVubmVBbGxvY2F0aW9uTG9nZW1lbnQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQuYW5jaWVubmVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgZW5kXG4gIGxldCBpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vXG4gICAgKGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80XG4gICAgICA6IGluZm9zX2NoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnQpIDpcbiAgICBJbmZvc0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQgPVxuICAgIHtcbiAgICAgIGFuY2llbl9sb3llcl9wcmluY2lwYWwgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5hbmNpZW5Mb3llclByaW5jaXBhbDtcbiAgICAgIGFuY2llbm5lX2FsbG9jYXRpb25fbG9nZW1lbnQgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQjIy5hbmNpZW5uZUFsbG9jYXRpb25Mb2dlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGFpZGVGaW5hbGVGb3JtdWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmXG4gICAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYudCA9XG4gICAge1xuICAgICAgYWlkZV9maW5hbGVfZm9ybXVsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1lbnN1YWxpdGVFbGlnaWJsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlTWluaW1hbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZS50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5zdWFsaXRlRWxpZ2libGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5tZW5zdWFsaXRlX2VsaWdpYmxlXG4gICAgICB2YWwgbWVuc3VhbGl0ZU1pbmltYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUubWVuc3VhbGl0ZV9taW5pbWFsZVxuICAgICAgdmFsIGNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUuY29lZmZpY2llbnRfcHJpc2VfZW5fY2hhcmdlXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZS50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlLnQgPVxuICAgIHtcbiAgICAgIG1lbnN1YWxpdGVfZWxpZ2libGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSMjLm1lbnN1YWxpdGVFbGlnaWJsZTtcbiAgICAgIG1lbnN1YWxpdGVfbWluaW1hbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSMjLm1lbnN1YWxpdGVNaW5pbWFsZTtcbiAgICAgIGNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgICAgICMjLmNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZTtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSMjLmFpZGVGaW5hbGVGb3JtdWxlO1xuICAgICAgdHJhaXRlbWVudF9haWRlX2ZpbmFsZSA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICd0cmFpdGVtZW50X2FpZGVfZmluYWxlJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVxdWl2YWxlbmNlTG95ZXI6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9udGFudEZvcmZhaXRhaXJlQ2hhcmdlczogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb3llck1pbmltYWw6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWlkZUZpbmFsZUZvcm11bGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGU6XG4gICAgICAodW5pdCwgIEpzLm51bWJlciBKcy50IC0+IEpzLm51bWJlciBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXIudClcbiAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGNvZWZmaWNpZW50UHJpc2VFbkNoYXJnZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyLmNvZWZmaWNpZW50X3ByaXNlX2VuX2NoYXJnZVxuICAgICAgdmFsIGVxdWl2YWxlbmNlTG95ZXIgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIuZXF1aXZhbGVuY2VfbG95ZXJcbiAgICAgIHZhbCBtb250YW50Rm9yZmFpdGFpcmVDaGFyZ2VzID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyLm1vbnRhbnRfZm9yZmFpdGFpcmVfY2hhcmdlc1xuICAgICAgdmFsIGxveWVyTWluaW1hbCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llci5sb3llcl9taW5pbWFsXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIuYWlkZV9maW5hbGVfZm9ybXVsZVxuICAgICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBKcy5udW1iZXIgSnMudCkgLT5cbiAgICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyLnRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgXG4gICAgICAgICAgKG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRGb3llci50ID1cbiAgICB7XG4gICAgICBjb2VmZmljaWVudF9wcmlzZV9lbl9jaGFyZ2UgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIyMuY29lZmZpY2llbnRQcmlzZUVuQ2hhcmdlO1xuICAgICAgZXF1aXZhbGVuY2VfbG95ZXIgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5lcXVpdmFsZW5jZUxveWVyO1xuICAgICAgbW9udGFudF9mb3JmYWl0YWlyZV9jaGFyZ2VzID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIyMubW9udGFudEZvcmZhaXRhaXJlQ2hhcmdlcztcbiAgICAgIGxveWVyX21pbmltYWwgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIjIy5sb3llck1pbmltYWw7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIyMuYWlkZUZpbmFsZUZvcm11bGU7XG4gICAgICB0cmFpdGVtZW50X2FpZGVfZmluYWxlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ3RyYWl0ZW1lbnRfYWlkZV9maW5hbGUnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhaWRlRmluYWxlRm9ybXVsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0cmFpdGVtZW50QWlkZUZpbmFsZTpcbiAgICAgICh1bml0LCAgSnMubnVtYmVyIEpzLnQgLT4gSnMubnVtYmVyIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb28gKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50XG4gICAgOiBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQudCkgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhaWRlRmluYWxlRm9ybXVsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQudHJhaXRlbWVudF9haWRlX2ZpbmFsZSBcbiAgICAgICAgICAobW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIGFpZGVfZmluYWxlX2Zvcm11bGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnQjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgYWdlT3V2ZXJ0dXJlRHJvaXQ6XG4gICAgICBSdW50aW1lX2pzb28uUnVudGltZS5kdXJhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX3RvX2pzb28gKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcbiAgICA6IE91dmVydHVyZURyb2l0c1JldHJhaXRlLnQpIDogb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBhZ2VPdXZlcnR1cmVEcm9pdCA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZS5hZ2Vfb3V2ZXJ0dXJlX2Ryb2l0XG4gICAgICBlbmRcbiAgbGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfb2ZfanNvb1xuICAgIChvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlIDogb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSBKcy50KSA6XG4gICAgT3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUudCA9XG4gICAge1xuICAgICAgYWdlX291dmVydHVyZV9kcm9pdCA9XG4gICAgICAgIGR1cmF0aW9uX29mX2pzb28gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSMjLmFnZU91dmVydHVyZURyb2l0XG4gICAgfVxuXG5jbGFzcyB0eXBlIGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50ID1cbiAgb2JqZWN0IG1ldGhvZCBtb250YW50SW1wYXllOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfdG9fanNvbyAoaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRcbiAgICA6IEltcGF5ZURlcGVuc2VMb2dlbWVudC50KSA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1vbnRhbnRJbXBheWUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQubW9udGFudF9pbXBheWVcbiAgICAgIGVuZFxuICBsZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChpbXBheWVfZGVwZW5zZV9sb2dlbWVudCA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IEpzLnQpIDpcbiAgICBJbXBheWVEZXBlbnNlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgbW9udGFudF9pbXBheWUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnQjIy5tb250YW50SW1wYXllXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZWxpZ2liaWxpdGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFpZGVGaW5hbGVGb3JtdWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRyYWl0ZW1lbnRBaWRlRmluYWxlOlxuICAgICAgKHVuaXQsICBKcy5udW1iZXIgSnMudCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gICAgbWV0aG9kIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X3RvX2pzb28gKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRcbiAgICA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnQudCkgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVsaWdpYmlsaXRlID0gSnMuYm9vbCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LmVsaWdpYmlsaXRlXG4gICAgICB2YWwgYWlkZUZpbmFsZUZvcm11bGUgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudC5haWRlX2ZpbmFsZV9mb3JtdWxlXG4gICAgICBtZXRob2QgdHJhaXRlbWVudEFpZGVGaW5hbGUgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IEpzLm51bWJlciBKcy50KSAtPlxuICAgICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudC50cmFpdGVtZW50X2FpZGVfZmluYWxlIFxuICAgICAgICAgIChtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIHZhbCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgZGVjaW1hbF90b19mbG9hdCB4KSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9vZl9qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IEpzLnQpIDpcbiAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50LnQgPVxuICAgIHtcbiAgICAgIGVsaWdpYmlsaXRlID0gSnMudG9fYm9vbCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IyMuZWxpZ2liaWxpdGU7XG4gICAgICBhaWRlX2ZpbmFsZV9mb3JtdWxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnQjIy5haWRlRmluYWxlRm9ybXVsZTtcbiAgICAgIHRyYWl0ZW1lbnRfYWlkZV9maW5hbGUgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAndHJhaXRlbWVudF9haWRlX2ZpbmFsZScgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgY29lZmZpY2VudHNfZW5mYW50c19nYXJkZV9hbHRlcm5lZV9wcmlzX2VuX2NvbXB0ZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgeCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gICAgICAgICAgIyMuY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGVsaWdpYmlsaXRlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlRmluYWxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV90b19qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgICA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLnQpXG4gICAgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVsaWdpYmlsaXRlID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlLmVsaWdpYmlsaXRlXG4gICAgICB2YWwgYWlkZUZpbmFsZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlLmFpZGVfZmluYWxlXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfb2ZfanNvb1xuICAgIChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlXG4gICAgICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgSnMudCkgOlxuICAgIENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlLnQgPVxuICAgIHtcbiAgICAgIGVsaWdpYmlsaXRlID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlIyMuZWxpZ2liaWxpdGU7XG4gICAgICBhaWRlX2ZpbmFsZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlIyMuYWlkZUZpbmFsZVxuICAgIH1cblxuY2xhc3MgdHlwZSBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzID1cbiAgb2JqZWN0IG1ldGhvZCBtb250YW50OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICA6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXMudClcbiAgICA6IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9udGFudCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzLm1vbnRhbnRcbiAgICAgIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSA6XG4gICAgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBtb250YW50ID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMjIy5tb250YW50XG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYSA9XG4gIG9iamVjdCBtZXRob2QgZXN0SW5mZXJpZXVyT3VFZ2FsOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV90b19qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgIDogVmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQS50KVxuICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVzdEluZmVyaWV1ck91RWdhbCA9XG4gICAgICAgIEpzLmJvb2wgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hLmVzdF9pbmZlcmlldXJfb3VfZWdhbFxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2Ffb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBLnQgPVxuICAgIHtcbiAgICAgIGVzdF9pbmZlcmlldXJfb3VfZWdhbCA9XG4gICAgICAgIEpzLnRvX2Jvb2wgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hIyMuZXN0SW5mZXJpZXVyT3VFZ2FsXG4gICAgfVxuXG5jbGFzcyB0eXBlIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2EgPVxuICBvYmplY3QgbWV0aG9kIGVzdFN1cGVyaWV1cjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX3RvX2pzb28gKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FcbiAgICA6IFZlcmlmaWNhdGlvbkFnZVN1cGVyaWV1ckEudCkgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVzdFN1cGVyaWV1ciA9IEpzLmJvb2wgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYS5lc3Rfc3VwZXJpZXVyXG4gICAgICBlbmRcbiAgbGV0IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2Ffb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIDogdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50KSA6XG4gICAgVmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQS50ID1cbiAgICB7ZXN0X3N1cGVyaWV1ciA9IEpzLnRvX2Jvb2wgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSMjLmVzdFN1cGVyaWV1clxuICAgIH1cblxuY2xhc3MgdHlwZSBzbWljID1cbiAgb2JqZWN0IG1ldGhvZCBicnV0SG9yYWlyZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHNtaWNfdG9fanNvbyAoc21pYyA6IFNtaWMudCkgOiBzbWljIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGJydXRIb3JhaXJlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHNtaWMuYnJ1dF9ob3JhaXJlXG4gICAgICBlbmRcbiAgbGV0IHNtaWNfb2ZfanNvbyAoc21pYyA6IHNtaWMgSnMudCkgOiBTbWljLnQgPVxuICAgIHtcbiAgICAgIGJydXRfaG9yYWlyZSA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBzbWljIyMuYnJ1dEhvcmFpcmVcbiAgICB9XG5cbmNsYXNzIHR5cGUgbmV1Zl9vdV9hbmNpZW4gPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJOZXVmXCJcbiAgICAgICAgLSBcIkFuY2llblwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IG5ldWZfb3VfYW5jaWVuX3RvX2pzb28gOiBOZXVmT3VBbmNpZW4udCAtPiBuZXVmX291X2FuY2llbiBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBOZXVmIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTmV1ZlwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEFuY2llbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkFuY2llblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGFtZWxpb3JlX3Bhcl9vY2N1cGFudF90b19qc29vIGFyZykpXG4gICAgZW5kXG5cbmxldCBuZXVmX291X2FuY2llbl9vZl9qc29vIChuZXVmX291X2FuY2llbiA6IG5ldWZfb3VfYW5jaWVuIEpzLnQpXG4gIDogTmV1Zk91QW5jaWVuLnQgPVxuICBtYXRjaCBuZXVmX291X2FuY2llbiMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk5ldWZcIiAtPiBOZXVmT3VBbmNpZW4uTmV1ZiAoKVxuICB8IFwiQW5jaWVuXCIgLT5cbiAgTmV1Zk91QW5jaWVuLkFuY2llbiAoYW1lbGlvcmVfcGFyX29jY3VwYW50X29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbmV1Zl9vdV9hbmNpZW4jIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ05ldWZPdUFuY2llbi50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSB0cmFuY2hlX3JldmVudSA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBoYXV0OiBsaW1pdGVfdHJhbmNoZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmFzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRhdXg6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB0cmFuY2hlX3JldmVudV90b19qc29vICh0cmFuY2hlX3JldmVudSA6IFRyYW5jaGVSZXZlbnUudClcbiAgICA6IHRyYW5jaGVfcmV2ZW51IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV90b19qc29vIHRyYW5jaGVfcmV2ZW51LmhhdXRcbiAgICAgIHZhbCBiYXMgPSBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgdHJhbmNoZV9yZXZlbnUuYmFzXG4gICAgICB2YWwgdGF1eCA9IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHRyYW5jaGVfcmV2ZW51LnRhdXhcbiAgICAgIGVuZFxuICBsZXQgdHJhbmNoZV9yZXZlbnVfb2ZfanNvbyAodHJhbmNoZV9yZXZlbnUgOiB0cmFuY2hlX3JldmVudSBKcy50KSA6XG4gICAgVHJhbmNoZVJldmVudS50ID1cbiAgICB7XG4gICAgICBoYXV0ID0gbGltaXRlX3RyYW5jaGVfb2ZfanNvbyB0cmFuY2hlX3JldmVudSMjLmhhdXQ7XG4gICAgICBiYXMgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgdHJhbmNoZV9yZXZlbnUjIy5iYXM7XG4gICAgICB0YXV4ID0gZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXIgdHJhbmNoZV9yZXZlbnUjIy50YXV4XG4gICAgfVxuXG5jbGFzcyB0eXBlIHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaGF1dDogbGltaXRlX3RyYW5jaGVfZGVjaW1hbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmFzOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRhdXg6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCB0cmFuY2hlX3JldmVudV9kZWNpbWFsX3RvX2pzb28gKHRyYW5jaGVfcmV2ZW51X2RlY2ltYWxcbiAgICA6IFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQpIDogdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBoYXV0ID0gbGltaXRlX3RyYW5jaGVfZGVjaW1hbF90b19qc29vIHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwuaGF1dFxuICAgICAgdmFsIGJhcyA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwuYmFzXG4gICAgICB2YWwgdGF1eCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwudGF1eFxuICAgICAgZW5kXG4gIGxldCB0cmFuY2hlX3JldmVudV9kZWNpbWFsX29mX2pzb29cbiAgICAodHJhbmNoZV9yZXZlbnVfZGVjaW1hbCA6IHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwgSnMudCkgOlxuICAgIFRyYW5jaGVSZXZlbnVEZWNpbWFsLnQgPVxuICAgIHtcbiAgICAgIGhhdXQgPSBsaW1pdGVfdHJhbmNoZV9kZWNpbWFsX29mX2pzb28gdHJhbmNoZV9yZXZlbnVfZGVjaW1hbCMjLmhhdXQ7XG4gICAgICBiYXMgPVxuICAgICAgICBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlciB0cmFuY2hlX3JldmVudV9kZWNpbWFsIyMuYmFzO1xuICAgICAgdGF1eCA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHRyYW5jaGVfcmV2ZW51X2RlY2ltYWwjIy50YXV4XG4gICAgfVxuXG5jbGFzcyB0eXBlIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2U6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlczogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhc2NlbmRhbnREZXNjZW5kYW50Q29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmU6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwYXJlbnRlOiBwYXJlbnRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBpbmNhcGFjaXRlODBQb3VyY2VudE91UmVzdHJpY3Rpb25FbXBsb2k6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWFpcmVMMTYxMTlMMzUxOEw2NDMzU2VjdTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdGl0dWxhaXJlQWxsb2NhdGlvblBlcnNvbm5lQWdlZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV90b19qc29vIChhdXRyZV9wZXJzb25uZV9hX2NoYXJnZVxuICAgIDogQXV0cmVQZXJzb25uZUFDaGFyZ2UudCkgOiBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlID0gZGF0ZV90b19qc29vIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlLmRhdGVfbmFpc3NhbmNlXG4gICAgICB2YWwgcmVzc291cmNlcyA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5yZXNzb3VyY2VzXG4gICAgICB2YWwgYXNjZW5kYW50RGVzY2VuZGFudENvbGxhdGVyYWxEZXV4aWVtZVRyb2lzaWVtZURlZ3JlID1cbiAgICAgICAgSnMuYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZS5hc2NlbmRhbnRfZGVzY2VuZGFudF9jb2xsYXRlcmFsX2RldXhpZW1lX3Ryb2lzaWVtZV9kZWdyZVxuICAgICAgdmFsIHBhcmVudGUgPSBwYXJlbnRlX3RvX2pzb28gYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UucGFyZW50ZVxuICAgICAgdmFsIGluY2FwYWNpdGU4MFBvdXJjZW50T3VSZXN0cmljdGlvbkVtcGxvaSA9XG4gICAgICAgIEpzLmJvb2wgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UuaW5jYXBhY2l0ZV84MF9wb3VyY2VudF9vdV9yZXN0cmljdGlvbl9lbXBsb2lcbiAgICAgIHZhbCBiZW5lZmljaWFpcmVMMTYxMTlMMzUxOEw2NDMzU2VjdSA9XG4gICAgICAgIEpzLmJvb2wgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UuYmVuZWZpY2lhaXJlX2wxNjFfMTlfbDM1MV84X2w2NDNfM19zZWN1XG4gICAgICB2YWwgdGl0dWxhaXJlQWxsb2NhdGlvblBlcnNvbm5lQWdlZSA9XG4gICAgICAgIEpzLmJvb2wgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UudGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfYWdlZVxuICAgICAgZW5kXG4gIGxldCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vXG4gICAgKGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIDogYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UgSnMudCkgOlxuICAgIEF1dHJlUGVyc29ubmVBQ2hhcmdlLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfbmFpc3NhbmNlID0gZGF0ZV9vZl9qc29vIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIyMuZGF0ZU5haXNzYW5jZTtcbiAgICAgIHJlc3NvdXJjZXMgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy5yZXNzb3VyY2VzO1xuICAgICAgYXNjZW5kYW50X2Rlc2NlbmRhbnRfY29sbGF0ZXJhbF9kZXV4aWVtZV90cm9pc2llbWVfZGVncmUgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2VcbiAgICAgICAgICAjIy5hc2NlbmRhbnREZXNjZW5kYW50Q29sbGF0ZXJhbERldXhpZW1lVHJvaXNpZW1lRGVncmU7XG4gICAgICBwYXJlbnRlID0gcGFyZW50ZV9vZl9qc29vIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIyMucGFyZW50ZTtcbiAgICAgIGluY2FwYWNpdGVfODBfcG91cmNlbnRfb3VfcmVzdHJpY3Rpb25fZW1wbG9pID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlIyMuaW5jYXBhY2l0ZTgwUG91cmNlbnRPdVJlc3RyaWN0aW9uRW1wbG9pO1xuICAgICAgYmVuZWZpY2lhaXJlX2wxNjFfMTlfbDM1MV84X2w2NDNfM19zZWN1ID1cbiAgICAgICAgSnMudG9fYm9vbCBhdXRyZV9wZXJzb25uZV9hX2NoYXJnZSMjLmJlbmVmaWNpYWlyZUwxNjExOUwzNTE4TDY0MzNTZWN1O1xuICAgICAgdGl0dWxhaXJlX2FsbG9jYXRpb25fcGVyc29ubmVfYWdlZSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgYXV0cmVfcGVyc29ubmVfYV9jaGFyZ2UjIy50aXR1bGFpcmVBbGxvY2F0aW9uUGVyc29ubmVBZ2VlXG4gICAgfVxuXG5jbGFzcyB0eXBlIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTW9pbnNEZVRyb2lzRW5mYW50c1wiXG4gICAgICAgIC0gXCJQbHVzRGVUcm9pc0VuZmFudHNcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudF90b19qc29vXG4gIDogRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQudCAtPiBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudCBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBNb2luc0RlVHJvaXNFbmZhbnRzIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTW9pbnNEZVRyb2lzRW5mYW50c1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IFBsdXNEZVRyb2lzRW5mYW50cyBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBsdXNEZVRyb2lzRW5mYW50c1wiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGRhdGVfZGVfbmFpc3NhbmNlX291X21vaXNfZGVfZ3Jvc3Nlc3NlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50X29mX2pzb29cbiAgKGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50XG4gICAgOiBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudCBKcy50KVxuICA6IERhdGVOYWlzc2FuY2VUcm9pc2llbWVPdURlcm5pZXJQbHVzRW5mYW50LnQgPVxuICBtYXRjaCBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfb3VfZGVybmllcl9wbHVzX2VuZmFudCMjLmtpbmRcbiAgICB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTW9pbnNEZVRyb2lzRW5mYW50c1wiIC0+XG4gICAgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQuTW9pbnNEZVRyb2lzRW5mYW50cyAoKVxuICB8IFwiUGx1c0RlVHJvaXNFbmZhbnRzXCIgLT5cbiAgRGF0ZU5haXNzYW5jZVRyb2lzaWVtZU91RGVybmllclBsdXNFbmZhbnQuUGx1c0RlVHJvaXNFbmZhbnRzIChkYXRlX2RlX25haXNzYW5jZV9vdV9tb2lzX2RlX2dyb3NzZXNzZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50IyMucGF5bG9hZCkpXG4gIHwgY29ucyAtPlxuICAgIGZhaWx3aXRoXG4gICAgICAoUHJpbnRmLnNwcmludGZcbiAgICAgICAgXCJVbmV4cGVjdGVkICclcycga2luZCBmb3IgdGhlIGVudW1lcmF0aW9uICdEYXRlTmFpc3NhbmNlVHJvaXNpZW1lT3VEZXJuaWVyUGx1c0VuZmFudC50J1wiXG4gICAgICAgIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGVsaWdpYmlsaXRlOlxuICAgICAgdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlUHJpc2VzRW5Db21wdGU6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGU6XG4gICAgICBKcy5udW1iZXIgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCA6IEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50LnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGVsaWdpYmlsaXRlID1cbiAgICAgICAgdHlwZV9lbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb28gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudC5lbGlnaWJpbGl0ZVxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlXG4gICAgICB2YWwgY29lZmZpY2VudHNFbmZhbnRzR2FyZGVBbHRlcm5lZVByaXNFbkNvbXB0ZSA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgeCkgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudC5jb2VmZmljZW50c19lbmZhbnRzX2dhcmRlX2FsdGVybmVlX3ByaXNfZW5fY29tcHRlXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50IDogZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZWxpZ2liaWxpdGUgPVxuICAgICAgICB0eXBlX2VsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQjIy5lbGlnaWJpbGl0ZTtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTtcbiAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICAgICAgICAgICMjLmNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGVcbiAgICB9XG5cbmNsYXNzIHR5cGUgcHJldCA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCB0eXBlUHJldDogdHlwZV9wcmV0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlU2lnbmF0dXJlOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHRpdHVsYWlyZVByZXQ6IHRpdHVsYWlyZV9wcmV0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lcjpcbiAgICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcHJldF90b19qc29vIChwcmV0IDogUHJldC50KSA6IHByZXQgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZVByZXQgPSB0eXBlX3ByZXRfdG9fanNvbyBwcmV0LnR5cGVfcHJldFxuICAgICAgdmFsIGRhdGVTaWduYXR1cmUgPSBkYXRlX3RvX2pzb28gcHJldC5kYXRlX3NpZ25hdHVyZVxuICAgICAgdmFsIHRpdHVsYWlyZVByZXQgPSB0aXR1bGFpcmVfcHJldF90b19qc29vIHByZXQudGl0dWxhaXJlX3ByZXRcbiAgICAgIHZhbCBhY2NvcmRGaW5hbmNlbWVudFJlcHJlc2VudGFudEV0YXRPdXRyZU1lciA9XG4gICAgICAgIGFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfZXRhdF9vdXRyZV9tZXJfdG9fanNvbyBwcmV0LmFjY29yZF9maW5hbmNlbWVudF9yZXByZXNlbnRhbnRfRXRhdF9vdXRyZV9tZXJcbiAgICAgIGVuZFxuICBsZXQgcHJldF9vZl9qc29vIChwcmV0IDogcHJldCBKcy50KSA6IFByZXQudCA9XG4gICAge1xuICAgICAgdHlwZV9wcmV0ID0gdHlwZV9wcmV0X29mX2pzb28gcHJldCMjLnR5cGVQcmV0O1xuICAgICAgZGF0ZV9zaWduYXR1cmUgPSBkYXRlX29mX2pzb28gcHJldCMjLmRhdGVTaWduYXR1cmU7XG4gICAgICB0aXR1bGFpcmVfcHJldCA9IHRpdHVsYWlyZV9wcmV0X29mX2pzb28gcHJldCMjLnRpdHVsYWlyZVByZXQ7XG4gICAgICBhY2NvcmRfZmluYW5jZW1lbnRfcmVwcmVzZW50YW50X0V0YXRfb3V0cmVfbWVyID1cbiAgICAgICAgYWNjb3JkX2ZpbmFuY2VtZW50X3JlcHJlc2VudGFudF9ldGF0X291dHJlX21lcl9vZl9qc29vXG4gICAgICAgICAgcHJldCMjLmFjY29yZEZpbmFuY2VtZW50UmVwcmVzZW50YW50RXRhdE91dHJlTWVyXG4gICAgfVxuXG5jbGFzcyB0eXBlIGxvZ2VtZW50X2ZveWVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHR5cGVVc2VyOiB0eXBlX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZW1wbGl0Q29uZGl0aW9uc1I4MzIyMTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29udmVudGlvbm5lTGl2cmVJSUlUaXRyZVZDaGFwSUlJOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb252ZW50aW9ubmVTZWxvblJlZ2xlc0Ryb206IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb252ZW50aW9ubmVtZW50OiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbnN0cnVpdEFwcGxpY2F0aW9uTG9pMTk1NzEySUlJOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWRldmFuY2U6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2F0ZWdvcmllRXF1aXZhbGVuY2VMb3llckQ4NDIxNjpcbiAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnRNZXVibGVEODQyMjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBsb2dlbWVudF9mb3llcl90b19qc29vIChsb2dlbWVudF9mb3llciA6IExvZ2VtZW50Rm95ZXIudClcbiAgICA6IGxvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHR5cGVVc2VyID0gdHlwZV9sb2dlbWVudF9mb3llcl90b19qc29vIGxvZ2VtZW50X2ZveWVyLnR5cGVfdXNlclxuICAgICAgdmFsIHJlbXBsaXRDb25kaXRpb25zUjgzMjIxID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5yZW1wbGl0X2NvbmRpdGlvbnNfcjgzMl8yMVxuICAgICAgdmFsIGNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVWQ2hhcElJSSA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIuY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJXG4gICAgICB2YWwgY29udmVudGlvbm5lU2Vsb25SZWdsZXNEcm9tID1cbiAgICAgICAgSnMuYm9vbCBsb2dlbWVudF9mb3llci5jb252ZW50aW9ubmVfc2Vsb25fcmVnbGVzX2Ryb21cbiAgICAgIHZhbCBkYXRlQ29udmVudGlvbm5lbWVudCA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBsb2dlbWVudF9mb3llci5kYXRlX2NvbnZlbnRpb25uZW1lbnRcbiAgICAgIHZhbCBjb25zdHJ1aXRBcHBsaWNhdGlvbkxvaTE5NTcxMklJSSA9XG4gICAgICAgIEpzLmJvb2wgbG9nZW1lbnRfZm95ZXIuY29uc3RydWl0X2FwcGxpY2F0aW9uX2xvaV8xOTU3XzEyX0lJSVxuICAgICAgdmFsIHJlZGV2YW5jZSA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBsb2dlbWVudF9mb3llci5yZWRldmFuY2VcbiAgICAgIHZhbCBjYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyRDg0MjE2ID1cbiAgICAgICAgY2F0ZWdvcmllX2VxdWl2YWxlbmNlX2xveWVyX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfdG9fanNvbyBsb2dlbWVudF9mb3llci5jYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNlxuICAgICAgdmFsIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXMgPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLmJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc1xuICAgICAgdmFsIGxvZ2VtZW50TWV1YmxlRDg0MjIgPSBKcy5ib29sIGxvZ2VtZW50X2ZveWVyLmxvZ2VtZW50X21ldWJsZV9kODQyXzJcbiAgICAgIGVuZFxuICBsZXQgbG9nZW1lbnRfZm95ZXJfb2ZfanNvbyAobG9nZW1lbnRfZm95ZXIgOiBsb2dlbWVudF9mb3llciBKcy50KSA6XG4gICAgTG9nZW1lbnRGb3llci50ID1cbiAgICB7XG4gICAgICB0eXBlX3VzZXIgPSB0eXBlX2xvZ2VtZW50X2ZveWVyX29mX2pzb28gbG9nZW1lbnRfZm95ZXIjIy50eXBlVXNlcjtcbiAgICAgIHJlbXBsaXRfY29uZGl0aW9uc19yODMyXzIxID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2dlbWVudF9mb3llciMjLnJlbXBsaXRDb25kaXRpb25zUjgzMjIxO1xuICAgICAgY29udmVudGlvbm5lX2xpdnJlX0lJSV90aXRyZV9WX2NoYXBfSUlJID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2dlbWVudF9mb3llciMjLmNvbnZlbnRpb25uZUxpdnJlSUlJVGl0cmVWQ2hhcElJSTtcbiAgICAgIGNvbnZlbnRpb25uZV9zZWxvbl9yZWdsZXNfZHJvbSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9nZW1lbnRfZm95ZXIjIy5jb252ZW50aW9ubmVTZWxvblJlZ2xlc0Ryb207XG4gICAgICBkYXRlX2NvbnZlbnRpb25uZW1lbnQgPVxuICAgICAgICBkYXRlX29mX2pzb28gbG9nZW1lbnRfZm95ZXIjIy5kYXRlQ29udmVudGlvbm5lbWVudDtcbiAgICAgIGNvbnN0cnVpdF9hcHBsaWNhdGlvbl9sb2lfMTk1N18xMl9JSUkgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMuY29uc3RydWl0QXBwbGljYXRpb25Mb2kxOTU3MTJJSUk7XG4gICAgICByZWRldmFuY2UgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgbG9nZW1lbnRfZm95ZXIjIy5yZWRldmFuY2U7XG4gICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNiA9XG4gICAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAgICAgICBsb2dlbWVudF9mb3llciMjLmNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTY7XG4gICAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXMgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMuYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlcztcbiAgICAgIGxvZ2VtZW50X21ldWJsZV9kODQyXzIgPVxuICAgICAgICBKcy50b19ib29sIGxvZ2VtZW50X2ZveWVyIyMubG9nZW1lbnRNZXVibGVEODQyMlxuICAgIH1cblxuY2xhc3MgdHlwZSBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBpZGVudGlmaWFudDogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb2JsaWdhdGlvblNjb2xhaXJlOlxuICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlbXVuZXJhdGlvbk1lbnN1ZWxsZTogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRGVOYWlzc2FuY2U6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJpc2VFbkNoYXJnZTogcHJpc2VfZW5fY2hhcmdlX2VuZmFudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlczpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpZVRpdHJlUGVyc29ubmVsQWlkZVBlcnNvbm5lbGxlTG9nZW1lbnQ6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb28gKGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgOiBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCkgOiBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpZGVudGlmaWFudCA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLmlkZW50aWZpYW50XG4gICAgICB2YWwgb2JsaWdhdGlvblNjb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvbyBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5vYmxpZ2F0aW9uX3Njb2xhaXJlXG4gICAgICB2YWwgcmVtdW5lcmF0aW9uTWVuc3VlbGxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLnJlbXVuZXJhdGlvbl9tZW5zdWVsbGVcbiAgICAgIHZhbCBkYXRlRGVOYWlzc2FuY2UgPVxuICAgICAgICBkYXRlX3RvX2pzb28gZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuZGF0ZV9kZV9uYWlzc2FuY2VcbiAgICAgIHZhbCBwcmlzZUVuQ2hhcmdlID1cbiAgICAgICAgcHJpc2VfZW5fY2hhcmdlX2VuZmFudF90b19qc29vIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLnByaXNlX2VuX2NoYXJnZVxuICAgICAgdmFsIGFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIHZhbCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50ID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5iZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgIGVuZFxuICBsZXQgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgIChlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA6IGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBFbmZhbnRQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudCA9XG4gICAge1xuICAgICAgaWRlbnRpZmlhbnQgPSBpbnRlZ2VyX29mX2ludCBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmlkZW50aWZpYW50O1xuICAgICAgb2JsaWdhdGlvbl9zY29sYWlyZSA9XG4gICAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlX29mX2pzb29cbiAgICAgICAgICBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLm9ibGlnYXRpb25TY29sYWlyZTtcbiAgICAgIHJlbXVuZXJhdGlvbl9tZW5zdWVsbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5yZW11bmVyYXRpb25NZW5zdWVsbGU7XG4gICAgICBkYXRlX2RlX25haXNzYW5jZSA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyMjLmRhdGVEZU5haXNzYW5jZTtcbiAgICAgIHByaXNlX2VuX2NoYXJnZSA9XG4gICAgICAgIHByaXNlX2VuX2NoYXJnZV9lbmZhbnRfb2ZfanNvb1xuICAgICAgICAgIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMucHJpc2VFbkNoYXJnZTtcbiAgICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgICAgICAjIy5hRGVqYU91dmVydERyb2l0QXV4QWxsb2NhdGlvbnNGYW1pbGlhbGVzO1xuICAgICAgYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGVuZmFudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gICAgICAgICAgIyMuYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudFxuICAgIH1cblxuY2xhc3MgdHlwZSB0eXBlX2JhaWxsZXVyID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiQmFpbGxldXJTb2NpYWxcIlxuICAgICAgICAtIFwiQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsXCJcbiAgICAgICAgLSBcIkJhaWxsZXVyUHJpdmVcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCB0eXBlX2JhaWxsZXVyX3RvX2pzb28gOiBUeXBlQmFpbGxldXIudCAtPiB0eXBlX2JhaWxsZXVyIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEJhaWxsZXVyU29jaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQmFpbGxldXJTb2NpYWxcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQmFpbGxldXJQcml2ZUF2ZWNDb252ZW50aW9ubmVtZW50U29jaWFsXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoY29udmVudGlvbl9hX25faF9hX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBCYWlsbGV1clByaXZlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQmFpbGxldXJQcml2ZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgdHlwZV9iYWlsbGV1cl9vZl9qc29vICh0eXBlX2JhaWxsZXVyIDogdHlwZV9iYWlsbGV1ciBKcy50KVxuICA6IFR5cGVCYWlsbGV1ci50ID1cbiAgbWF0Y2ggdHlwZV9iYWlsbGV1ciMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkJhaWxsZXVyU29jaWFsXCIgLT5cbiAgVHlwZUJhaWxsZXVyLkJhaWxsZXVyU29jaWFsIChjb252ZW50aW9uX2JhaWxsZXVyX3NvY2lhbF9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIHR5cGVfYmFpbGxldXIjIy5wYXlsb2FkKSlcbiAgfCBcIkJhaWxsZXVyUHJpdmVBdmVjQ29udmVudGlvbm5lbWVudFNvY2lhbFwiIC0+XG4gIFR5cGVCYWlsbGV1ci5CYWlsbGV1clByaXZlQXZlY0NvbnZlbnRpb25uZW1lbnRTb2NpYWwgKGNvbnZlbnRpb25fYV9uX2hfYV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIHR5cGVfYmFpbGxldXIjIy5wYXlsb2FkKSlcbiAgfCBcIkJhaWxsZXVyUHJpdmVcIiAtPiBUeXBlQmFpbGxldXIuQmFpbGxldXJQcml2ZSAoKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnVHlwZUJhaWxsZXVyLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTm9uXCJcbiAgICAgICAgLSBcIk91aVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzX3RvX2pzb29cbiAgOiBMb3VlT3VTb3VzTG91ZUFEZXNUaWVycy50IC0+IGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IE5vbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk5vblwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IE91aSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIk91aVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKHBlcnNvbm5lX3NvdXNfbG9jYXRpb25fdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuXG5sZXQgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNfb2ZfanNvb1xuICAobG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMgOiBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyBKcy50KVxuICA6IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQgPVxuICBtYXRjaCBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIk5vblwiIC0+IExvdWVPdVNvdXNMb3VlQURlc1RpZXJzLk5vbiAoKVxuICB8IFwiT3VpXCIgLT5cbiAgTG91ZU91U291c0xvdWVBRGVzVGllcnMuT3VpIChwZXJzb25uZV9zb3VzX2xvY2F0aW9uX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnMjIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0xvdWVPdVNvdXNMb3VlQURlc1RpZXJzLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIG5hdGlvbmFsaXRlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRnJhbmNhaXNlXCJcbiAgICAgICAgLSBcIkV0cmFuZ2VyZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IG5hdGlvbmFsaXRlX3RvX2pzb28gOiBOYXRpb25hbGl0ZS50IC0+IG5hdGlvbmFsaXRlIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IEZyYW5jYWlzZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkZyYW5jYWlzZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuICB8IEV0cmFuZ2VyZSBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkV0cmFuZ2VyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGNvbmRpdGlvbnNfZXRyYW5nZXJzX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IG5hdGlvbmFsaXRlX29mX2pzb28gKG5hdGlvbmFsaXRlIDogbmF0aW9uYWxpdGUgSnMudCkgOiBOYXRpb25hbGl0ZS50ID1cbiAgbWF0Y2ggbmF0aW9uYWxpdGUjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJGcmFuY2Fpc2VcIiAtPiBOYXRpb25hbGl0ZS5GcmFuY2Fpc2UgKClcbiAgfCBcIkV0cmFuZ2VyZVwiIC0+XG4gIE5hdGlvbmFsaXRlLkV0cmFuZ2VyZSAoY29uZGl0aW9uc19ldHJhbmdlcnNfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBuYXRpb25hbGl0ZSMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnTmF0aW9uYWxpdGUudCdcIiBjb25zKVxuXG5cbmNsYXNzIHR5cGUgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qga2luZCA6XG4gICAgICBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgICAoKiogRXhwZWN0cyBvbmUgb2Y6XG4gICAgICAgIC0gXCJDaGFuZ2VtZW50XCJcbiAgICAgICAgLSBcIlBhc0RlQ2hhbmdlbWVudFwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvX2pzb29cbiAgOiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC50IC0+IGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IENoYW5nZW1lbnQgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJDaGFuZ2VtZW50XCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAoaW5mb3NfY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IFBhc0RlQ2hhbmdlbWVudCBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIlBhc0RlQ2hhbmdlbWVudFwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKCBhcmcpKVxuICAgIGVuZFxuXG5sZXQgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfb2ZfanNvb1xuICAoY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzQgOiBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCBKcy50KVxuICA6IENoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQgPVxuICBtYXRjaCBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCMjLmtpbmQgfD4gSnMudG9fc3RyaW5nIHdpdGhcbiAgfCBcIkNoYW5nZW1lbnRcIiAtPlxuICBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5DaGFuZ2VtZW50IChpbmZvc19jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80IyMucGF5bG9hZCkpXG4gIHwgXCJQYXNEZUNoYW5nZW1lbnRcIiAtPiBDaGFuZ2VtZW50TG9nZW1lbnREODQyNC5QYXNEZUNoYW5nZW1lbnQgKClcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ0NoYW5nZW1lbnRMb2dlbWVudEQ4NDI0LnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgPVxuICBvYmplY3RcbiAgICBtZXRob2Qgbm9tYnJlRW5mYW50c0FOYWl0cmVBcHJlc1Ryb2lzaWVtZU1vaXNHcm9zc2Vzc2U6XG4gICAgICBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlTmFpc3NhbmNlVHJvaXNpZW1lRW5mYW50T3VEZXJuaWVyU2lQbHVzOlxuICAgICAgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vXG4gICAgKGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgOiBJbmZvcm1hdGlvbnNQcmltZURlRGVtZW5hZ2VtZW50LnQpXG4gICAgOiBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG5vbWJyZUVuZmFudHNBTmFpdHJlQXByZXNUcm9pc2llbWVNb2lzR3Jvc3Nlc3NlID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudC5ub21icmVfZW5mYW50c19hX25haXRyZV9hcHJlc190cm9pc2llbWVfbW9pc19ncm9zc2Vzc2VcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlVHJvaXNpZW1lRW5mYW50T3VEZXJuaWVyU2lQbHVzID1cbiAgICAgICAgZGF0ZV9uYWlzc2FuY2VfdHJvaXNpZW1lX291X2Rlcm5pZXJfcGx1c19lbmZhbnRfdG9fanNvbyBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50LmRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9lbmZhbnRfb3VfZGVybmllcl9zaV9wbHVzXG4gICAgICBlbmRcbiAgbGV0IGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRfb2ZfanNvb1xuICAgIChpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICA6IGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCkgOlxuICAgIEluZm9ybWF0aW9uc1ByaW1lRGVEZW1lbmFnZW1lbnQudCA9XG4gICAge1xuICAgICAgbm9tYnJlX2VuZmFudHNfYV9uYWl0cmVfYXByZXNfdHJvaXNpZW1lX21vaXNfZ3Jvc3Nlc3NlID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICAgICAgIyMubm9tYnJlRW5mYW50c0FOYWl0cmVBcHJlc1Ryb2lzaWVtZU1vaXNHcm9zc2Vzc2U7XG4gICAgICBkYXRlX25haXNzYW5jZV90cm9pc2llbWVfZW5mYW50X291X2Rlcm5pZXJfc2lfcGx1cyA9XG4gICAgICAgIGRhdGVfbmFpc3NhbmNlX3Ryb2lzaWVtZV9vdV9kZXJuaWVyX3BsdXNfZW5mYW50X29mX2pzb29cbiAgICAgICAgICBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gICAgICAgICAgIyMuZGF0ZU5haXNzYW5jZVRyb2lzaWVtZUVuZmFudE91RGVybmllclNpUGx1c1xuICAgIH1cblxuY2xhc3MgdHlwZSBwcm9wcmlldGFpcmUgPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuc3VhbGl0ZVByaW5jaXBhbGU6IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2hhcmdlc01lbnN1ZWxsZXNQcmV0OiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVFbnRyZWVMb2dlbWVudDogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB0eXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1OlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X2Q4MzJfMTUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNTpcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb3Byb3ByaWV0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uUjgyMjExMTMxNzogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYW5jaWVubmV0ZUxvZ2VtZW50OiBuZXVmX291X2FuY2llbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJldDogcHJldCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb3BlcmF0aW9uc0xvZ2VtZW50RXZvbHV0aWZzU29jaWF1eEFjY2Vzc2lvblByb3ByaWV0ZUFpZGVlRXRhdDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgcHJvcHJpZXRhaXJlX3RvX2pzb28gKHByb3ByaWV0YWlyZSA6IFByb3ByaWV0YWlyZS50KVxuICAgIDogcHJvcHJpZXRhaXJlIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIG1lbnN1YWxpdGVQcmluY2lwYWxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IHByb3ByaWV0YWlyZS5tZW5zdWFsaXRlX3ByaW5jaXBhbGVcbiAgICAgIHZhbCBjaGFyZ2VzTWVuc3VlbGxlc1ByZXQgPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcHJvcHJpZXRhaXJlLmNoYXJnZXNfbWVuc3VlbGxlc19wcmV0XG4gICAgICB2YWwgZGF0ZUVudHJlZUxvZ2VtZW50ID0gZGF0ZV90b19qc29vIHByb3ByaWV0YWlyZS5kYXRlX2VudHJlZV9sb2dlbWVudFxuICAgICAgdmFsIHR5cGVUcmF2YXV4TG9nZW1lbnREODMyMTUgPVxuICAgICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV90b19qc29vIHByb3ByaWV0YWlyZS50eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNVxuICAgICAgdmFsIHR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNSA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfdG9fanNvbyBwcm9wcmlldGFpcmUudHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNVxuICAgICAgdmFsIGxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlID1cbiAgICAgICAgSnMuYm9vbCBwcm9wcmlldGFpcmUubG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlXG4gICAgICB2YWwgY29wcm9wcmlldGUgPSBKcy5ib29sIHByb3ByaWV0YWlyZS5jb3Byb3ByaWV0ZVxuICAgICAgdmFsIHNpdHVhdGlvblI4MjIxMTEzMTcgPSBKcy5ib29sIHByb3ByaWV0YWlyZS5zaXR1YXRpb25fcjgyMl8xMV8xM18xN1xuICAgICAgdmFsIGFuY2llbm5ldGVMb2dlbWVudCA9XG4gICAgICAgIG5ldWZfb3VfYW5jaWVuX3RvX2pzb28gcHJvcHJpZXRhaXJlLmFuY2llbm5ldGVfbG9nZW1lbnRcbiAgICAgIHZhbCBwcmV0ID0gcHJldF90b19qc29vIHByb3ByaWV0YWlyZS5wcmV0XG4gICAgICB2YWwgb3BlcmF0aW9uc0xvZ2VtZW50RXZvbHV0aWZzU29jaWF1eEFjY2Vzc2lvblByb3ByaWV0ZUFpZGVlRXRhdCA9XG4gICAgICAgIEpzLmJvb2wgcHJvcHJpZXRhaXJlLm9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0XG4gICAgICBlbmRcbiAgbGV0IHByb3ByaWV0YWlyZV9vZl9qc29vIChwcm9wcmlldGFpcmUgOiBwcm9wcmlldGFpcmUgSnMudCkgOlxuICAgIFByb3ByaWV0YWlyZS50ID1cbiAgICB7XG4gICAgICBtZW5zdWFsaXRlX3ByaW5jaXBhbGUgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgcHJvcHJpZXRhaXJlIyMubWVuc3VhbGl0ZVByaW5jaXBhbGU7XG4gICAgICBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldCA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBwcm9wcmlldGFpcmUjIy5jaGFyZ2VzTWVuc3VlbGxlc1ByZXQ7XG4gICAgICBkYXRlX2VudHJlZV9sb2dlbWVudCA9IGRhdGVfb2ZfanNvbyBwcm9wcmlldGFpcmUjIy5kYXRlRW50cmVlTG9nZW1lbnQ7XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNSA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X29mX2pzb29cbiAgICAgICAgICBwcm9wcmlldGFpcmUjIy50eXBlVHJhdmF1eExvZ2VtZW50RDgzMjE1O1xuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9yODQyXzVfb2ZfanNvb1xuICAgICAgICAgIHByb3ByaWV0YWlyZSMjLnR5cGVUcmF2YXV4TG9nZW1lbnRSODQyNTtcbiAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZSA9XG4gICAgICAgIEpzLnRvX2Jvb2wgcHJvcHJpZXRhaXJlIyMubG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmU7XG4gICAgICBjb3Byb3ByaWV0ZSA9IEpzLnRvX2Jvb2wgcHJvcHJpZXRhaXJlIyMuY29wcm9wcmlldGU7XG4gICAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xNyA9IEpzLnRvX2Jvb2wgcHJvcHJpZXRhaXJlIyMuc2l0dWF0aW9uUjgyMjExMTMxNztcbiAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnQgPVxuICAgICAgICBuZXVmX291X2FuY2llbl9vZl9qc29vIHByb3ByaWV0YWlyZSMjLmFuY2llbm5ldGVMb2dlbWVudDtcbiAgICAgIHByZXQgPSBwcmV0X29mX2pzb28gcHJvcHJpZXRhaXJlIyMucHJldDtcbiAgICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0ID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHByb3ByaWV0YWlyZVxuICAgICAgICAgICMjLm9wZXJhdGlvbnNMb2dlbWVudEV2b2x1dGlmc1NvY2lhdXhBY2Nlc3Npb25Qcm9wcmlldGVBaWRlZUV0YXRcbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBhZ2VMNTEyMzI6IFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkcm9pdE91dmVydDpcbiAgICAgICh1bml0LCAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBjb25kaXRpb25zSG9yc0FnZTpcbiAgICAgICh1bml0LCAgZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCByZWdpbWVPdXRyZU1lckw3NTExOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIDogRWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMudClcbiAgICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYWdlTDUxMjMyID1cbiAgICAgICAgZHVyYXRpb25fdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzLmFnZV9sNTEyXzNfMlxuICAgICAgbWV0aG9kIGRyb2l0T3V2ZXJ0ID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuZHJvaXRfb3V2ZXJ0IChlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgbWV0aG9kIGNvbmRpdGlvbnNIb3JzQWdlID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiBlbmZhbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMuY29uZGl0aW9uc19ob3JzX2FnZSBcbiAgICAgICAgICAoZW5mYW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfb2ZfanNvb1xuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICB2YWwgcmVnaW1lT3V0cmVNZXJMNzUxMSA9XG4gICAgICAgIEpzLmJvb2wgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlcy5yZWdpbWVfb3V0cmVfbWVyX2w3NTFfMVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX29mX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgOiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlcy50ID1cbiAgICB7XG4gICAgICBhZ2VfbDUxMl8zXzIgPVxuICAgICAgICBkdXJhdGlvbl9vZl9qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMjIy5hZ2VMNTEyMzI7XG4gICAgICBkcm9pdF9vdXZlcnQgPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnZHJvaXRfb3V2ZXJ0JyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBjb25kaXRpb25zX2hvcnNfYWdlID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbnNfaG9yc19hZ2UnIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIHJlZ2ltZV9vdXRyZV9tZXJfbDc1MV8xID1cbiAgICAgICAgSnMudG9fYm9vbCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzIyMucmVnaW1lT3V0cmVNZXJMNzUxMVxuICAgIH1cblxuY2xhc3MgdHlwZSBkZW1hbmRldXIgPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZU5haXNzYW5jZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBuYXRpb25hbGl0ZTogbmF0aW9uYWxpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBhdHJpbW9pbmU6IHBhdHJpbW9pbmUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBlcnNvbm5lSGViZXJnZWVDZW50cmVTb2luTEwxNjIyMjNTZWN1cml0ZVNvY2lhbGU6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBlc3ROb25TYWxhcmllQWdyaWNvbGVMNzgxOEw3ODE0NkNvZGVSdXJhbDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1hZ2lzdHJhdEZvbmN0aW9ubmFpcmVDZW50cmVJbnRlcmV0c01hdGVyaWVsc0ZhbWlsaWF1eEhvcnNNYXlvdHRlOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBkZW1hbmRldXJfdG9fanNvbyAoZGVtYW5kZXVyIDogRGVtYW5kZXVyLnQpIDogZGVtYW5kZXVyIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gZGVtYW5kZXVyLmRhdGVfbmFpc3NhbmNlXG4gICAgICB2YWwgbmF0aW9uYWxpdGUgPSBuYXRpb25hbGl0ZV90b19qc29vIGRlbWFuZGV1ci5uYXRpb25hbGl0ZVxuICAgICAgdmFsIHBhdHJpbW9pbmUgPSBwYXRyaW1vaW5lX3RvX2pzb28gZGVtYW5kZXVyLnBhdHJpbW9pbmVcbiAgICAgIHZhbCBwZXJzb25uZUhlYmVyZ2VlQ2VudHJlU29pbkxMMTYyMjIzU2VjdXJpdGVTb2NpYWxlID1cbiAgICAgICAgSnMuYm9vbCBkZW1hbmRldXIucGVyc29ubmVfaGViZXJnZWVfY2VudHJlX3NvaW5fbF9MMTYyXzIyXzNfc2VjdXJpdGVfc29jaWFsZVxuICAgICAgdmFsIGVzdE5vblNhbGFyaWVBZ3JpY29sZUw3ODE4TDc4MTQ2Q29kZVJ1cmFsID1cbiAgICAgICAgSnMuYm9vbCBkZW1hbmRldXIuZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsXG4gICAgICB2YWwgbWFnaXN0cmF0Rm9uY3Rpb25uYWlyZUNlbnRyZUludGVyZXRzTWF0ZXJpZWxzRmFtaWxpYXV4SG9yc01heW90dGUgPVxuICAgICAgICBKcy5ib29sIGRlbWFuZGV1ci5tYWdpc3RyYXRfZm9uY3Rpb25uYWlyZV9jZW50cmVfaW50ZXJldHNfbWF0ZXJpZWxzX2ZhbWlsaWF1eF9ob3JzX21heW90dGVcbiAgICAgIGVuZFxuICBsZXQgZGVtYW5kZXVyX29mX2pzb28gKGRlbWFuZGV1ciA6IGRlbWFuZGV1ciBKcy50KSA6IERlbWFuZGV1ci50ID1cbiAgICB7XG4gICAgICBkYXRlX25haXNzYW5jZSA9IGRhdGVfb2ZfanNvbyBkZW1hbmRldXIjIy5kYXRlTmFpc3NhbmNlO1xuICAgICAgbmF0aW9uYWxpdGUgPSBuYXRpb25hbGl0ZV9vZl9qc29vIGRlbWFuZGV1ciMjLm5hdGlvbmFsaXRlO1xuICAgICAgcGF0cmltb2luZSA9IHBhdHJpbW9pbmVfb2ZfanNvbyBkZW1hbmRldXIjIy5wYXRyaW1vaW5lO1xuICAgICAgcGVyc29ubmVfaGViZXJnZWVfY2VudHJlX3NvaW5fbF9MMTYyXzIyXzNfc2VjdXJpdGVfc29jaWFsZSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBkZW1hbmRldXIjIy5wZXJzb25uZUhlYmVyZ2VlQ2VudHJlU29pbkxMMTYyMjIzU2VjdXJpdGVTb2NpYWxlO1xuICAgICAgZXN0X25vbl9zYWxhcmllX2Fncmljb2xlX2w3ODFfOF9sXzc4MV80Nl9jb2RlX3J1cmFsID1cbiAgICAgICAgSnMudG9fYm9vbCBkZW1hbmRldXIjIy5lc3ROb25TYWxhcmllQWdyaWNvbGVMNzgxOEw3ODE0NkNvZGVSdXJhbDtcbiAgICAgIG1hZ2lzdHJhdF9mb25jdGlvbm5haXJlX2NlbnRyZV9pbnRlcmV0c19tYXRlcmllbHNfZmFtaWxpYXV4X2hvcnNfbWF5b3R0ZSA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBkZW1hbmRldXJcbiAgICAgICAgICAjIy5tYWdpc3RyYXRGb25jdGlvbm5haXJlQ2VudHJlSW50ZXJldHNNYXRlcmllbHNGYW1pbGlhdXhIb3JzTWF5b3R0ZVxuICAgIH1cblxuY2xhc3MgdHlwZSBlbmZhbnRfYV9jaGFyZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgaWRlbnRpZmlhbnQ6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5hdGlvbmFsaXRlOiBuYXRpb25hbGl0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRGVOYWlzc2FuY2U6IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVtdW5lcmF0aW9uTWVuc3VlbGxlOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG9ibGlnYXRpb25TY29sYWlyZTpcbiAgICAgIHNpdHVhdGlvbl9vYmxpZ2F0aW9uX3Njb2xhaXJlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25HYXJkZUFsdGVybmVlOlxuICAgICAgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBldHVkZXNBcHByZW50aXNzYWdlU3RhZ2VGb3JtYXRpb25Qcm9JbXBvc3NpYmlsaXRlVHJhdmFpbDpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgZW5mYW50X2FfY2hhcmdlX3RvX2pzb28gKGVuZmFudF9hX2NoYXJnZSA6IEVuZmFudEFDaGFyZ2UudClcbiAgICA6IGVuZmFudF9hX2NoYXJnZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpZGVudGlmaWFudCA9IGludGVnZXJfdG9faW50IGVuZmFudF9hX2NoYXJnZS5pZGVudGlmaWFudFxuICAgICAgdmFsIG5hdGlvbmFsaXRlID0gbmF0aW9uYWxpdGVfdG9fanNvbyBlbmZhbnRfYV9jaGFyZ2UubmF0aW9uYWxpdGVcbiAgICAgIHZhbCBiZW5lZmljaWVUaXRyZVBlcnNvbm5lbEFpZGVQZXJzb25uZWxsZUxvZ2VtZW50ID1cbiAgICAgICAgSnMuYm9vbCBlbmZhbnRfYV9jaGFyZ2UuYmVuZWZpY2llX3RpdHJlX3BlcnNvbm5lbF9haWRlX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICB2YWwgYURlamFPdXZlcnREcm9pdEF1eEFsbG9jYXRpb25zRmFtaWxpYWxlcyA9XG4gICAgICAgIEpzLmJvb2wgZW5mYW50X2FfY2hhcmdlLmFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIHZhbCBkYXRlRGVOYWlzc2FuY2UgPSBkYXRlX3RvX2pzb28gZW5mYW50X2FfY2hhcmdlLmRhdGVfZGVfbmFpc3NhbmNlXG4gICAgICB2YWwgcmVtdW5lcmF0aW9uTWVuc3VlbGxlID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGVuZmFudF9hX2NoYXJnZS5yZW11bmVyYXRpb25fbWVuc3VlbGxlXG4gICAgICB2YWwgb2JsaWdhdGlvblNjb2xhaXJlID1cbiAgICAgICAgc2l0dWF0aW9uX29ibGlnYXRpb25fc2NvbGFpcmVfdG9fanNvbyBlbmZhbnRfYV9jaGFyZ2Uub2JsaWdhdGlvbl9zY29sYWlyZVxuICAgICAgdmFsIHNpdHVhdGlvbkdhcmRlQWx0ZXJuZWUgPVxuICAgICAgICBzaXR1YXRpb25fZ2FyZGVfYWx0ZXJuZWVfdG9fanNvbyBlbmZhbnRfYV9jaGFyZ2Uuc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlXG4gICAgICB2YWwgZXR1ZGVzQXBwcmVudGlzc2FnZVN0YWdlRm9ybWF0aW9uUHJvSW1wb3NzaWJpbGl0ZVRyYXZhaWwgPVxuICAgICAgICBKcy5ib29sIGVuZmFudF9hX2NoYXJnZS5ldHVkZXNfYXBwcmVudGlzc2FnZV9zdGFnZV9mb3JtYXRpb25fcHJvX2ltcG9zc2liaWxpdGVfdHJhdmFpbFxuICAgICAgZW5kXG4gIGxldCBlbmZhbnRfYV9jaGFyZ2Vfb2ZfanNvbyAoZW5mYW50X2FfY2hhcmdlIDogZW5mYW50X2FfY2hhcmdlIEpzLnQpIDpcbiAgICBFbmZhbnRBQ2hhcmdlLnQgPVxuICAgIHtcbiAgICAgIGlkZW50aWZpYW50ID0gaW50ZWdlcl9vZl9pbnQgZW5mYW50X2FfY2hhcmdlIyMuaWRlbnRpZmlhbnQ7XG4gICAgICBuYXRpb25hbGl0ZSA9IG5hdGlvbmFsaXRlX29mX2pzb28gZW5mYW50X2FfY2hhcmdlIyMubmF0aW9uYWxpdGU7XG4gICAgICBiZW5lZmljaWVfdGl0cmVfcGVyc29ubmVsX2FpZGVfcGVyc29ubmVsbGVfbG9nZW1lbnQgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X2FfY2hhcmdlIyMuYmVuZWZpY2llVGl0cmVQZXJzb25uZWxBaWRlUGVyc29ubmVsbGVMb2dlbWVudDtcbiAgICAgIGFfZGVqYV9vdXZlcnRfZHJvaXRfYXV4X2FsbG9jYXRpb25zX2ZhbWlsaWFsZXMgPVxuICAgICAgICBKcy50b19ib29sIGVuZmFudF9hX2NoYXJnZSMjLmFEZWphT3V2ZXJ0RHJvaXRBdXhBbGxvY2F0aW9uc0ZhbWlsaWFsZXM7XG4gICAgICBkYXRlX2RlX25haXNzYW5jZSA9IGRhdGVfb2ZfanNvbyBlbmZhbnRfYV9jaGFyZ2UjIy5kYXRlRGVOYWlzc2FuY2U7XG4gICAgICByZW11bmVyYXRpb25fbWVuc3VlbGxlID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGVuZmFudF9hX2NoYXJnZSMjLnJlbXVuZXJhdGlvbk1lbnN1ZWxsZTtcbiAgICAgIG9ibGlnYXRpb25fc2NvbGFpcmUgPVxuICAgICAgICBzaXR1YXRpb25fb2JsaWdhdGlvbl9zY29sYWlyZV9vZl9qc29vXG4gICAgICAgICAgZW5mYW50X2FfY2hhcmdlIyMub2JsaWdhdGlvblNjb2xhaXJlO1xuICAgICAgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlID1cbiAgICAgICAgc2l0dWF0aW9uX2dhcmRlX2FsdGVybmVlX29mX2pzb29cbiAgICAgICAgICBlbmZhbnRfYV9jaGFyZ2UjIy5zaXR1YXRpb25HYXJkZUFsdGVybmVlO1xuICAgICAgZXR1ZGVzX2FwcHJlbnRpc3NhZ2Vfc3RhZ2VfZm9ybWF0aW9uX3Byb19pbXBvc3NpYmlsaXRlX3RyYXZhaWwgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgZW5mYW50X2FfY2hhcmdlXG4gICAgICAgICAgIyMuZXR1ZGVzQXBwcmVudGlzc2FnZVN0YWdlRm9ybWF0aW9uUHJvSW1wb3NzaWJpbGl0ZVRyYXZhaWxcbiAgICB9XG5cbmNsYXNzIHR5cGUgbG9jYXRpb24gPVxuICBvYmplY3RcbiAgICBtZXRob2QgYmFpbGxldXI6IHR5cGVfYmFpbGxldXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxveWVyUHJpbmNpcGFsOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXM6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudEVzdENoYW1icmU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbG9jYXRpb246IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnRNZXVibGVEODQyMjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2hhbmdlbWVudExvZ2VtZW50RDg0MjQ6XG4gICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBsb2NhdGlvbl90b19qc29vIChsb2NhdGlvbiA6IExvY2F0aW9uLnQpIDogbG9jYXRpb24gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgYmFpbGxldXIgPSB0eXBlX2JhaWxsZXVyX3RvX2pzb28gbG9jYXRpb24uYmFpbGxldXJcbiAgICAgIHZhbCBsb3llclByaW5jaXBhbCA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBsb2NhdGlvbi5sb3llcl9wcmluY2lwYWxcbiAgICAgIHZhbCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzID1cbiAgICAgICAgSnMuYm9vbCBsb2NhdGlvbi5iZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNcbiAgICAgIHZhbCBsb2dlbWVudEVzdENoYW1icmUgPSBKcy5ib29sIGxvY2F0aW9uLmxvZ2VtZW50X2VzdF9jaGFtYnJlXG4gICAgICB2YWwgY29sb2NhdGlvbiA9IEpzLmJvb2wgbG9jYXRpb24uY29sb2NhdGlvblxuICAgICAgdmFsIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzID1cbiAgICAgICAgSnMuYm9vbCBsb2NhdGlvbi5hZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc1xuICAgICAgdmFsIGxvZ2VtZW50TWV1YmxlRDg0MjIgPSBKcy5ib29sIGxvY2F0aW9uLmxvZ2VtZW50X21ldWJsZV9kODQyXzJcbiAgICAgIHZhbCBjaGFuZ2VtZW50TG9nZW1lbnREODQyNCA9XG4gICAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvX2pzb28gbG9jYXRpb24uY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRcbiAgICAgIGVuZFxuICBsZXQgbG9jYXRpb25fb2ZfanNvbyAobG9jYXRpb24gOiBsb2NhdGlvbiBKcy50KSA6IExvY2F0aW9uLnQgPVxuICAgIHtcbiAgICAgIGJhaWxsZXVyID0gdHlwZV9iYWlsbGV1cl9vZl9qc29vIGxvY2F0aW9uIyMuYmFpbGxldXI7XG4gICAgICBsb3llcl9wcmluY2lwYWwgPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgbG9jYXRpb24jIy5sb3llclByaW5jaXBhbDtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlcyA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5iZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzO1xuICAgICAgbG9nZW1lbnRfZXN0X2NoYW1icmUgPSBKcy50b19ib29sIGxvY2F0aW9uIyMubG9nZW1lbnRFc3RDaGFtYnJlO1xuICAgICAgY29sb2NhdGlvbiA9IEpzLnRvX2Jvb2wgbG9jYXRpb24jIy5jb2xvY2F0aW9uO1xuICAgICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnMgPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgbG9jYXRpb24jIy5hZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVycztcbiAgICAgIGxvZ2VtZW50X21ldWJsZV9kODQyXzIgPSBKcy50b19ib29sIGxvY2F0aW9uIyMubG9nZW1lbnRNZXVibGVEODQyMjtcbiAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80ID1cbiAgICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfb2ZfanNvbyBsb2NhdGlvbiMjLmNoYW5nZW1lbnRMb2dlbWVudEQ4NDI0XG4gICAgfVxuXG5jbGFzcyB0eXBlIHBlcnNvbm5lX2FfY2hhcmdlID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiRW5mYW50QUNoYXJnZVwiXG4gICAgICAgIC0gXCJBdXRyZVBlcnNvbm5lQUNoYXJnZVwiICopXG4gICAgXG4gICAgbWV0aG9kIHBheWxvYWQgOiBKcy5VbnNhZmUuYW55IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcblxubGV0IHBlcnNvbm5lX2FfY2hhcmdlX3RvX2pzb28gOiBQZXJzb25uZUFDaGFyZ2UudCAtPiBwZXJzb25uZV9hX2NoYXJnZSBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBFbmZhbnRBQ2hhcmdlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiRW5mYW50QUNoYXJnZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGVuZmFudF9hX2NoYXJnZV90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQXV0cmVQZXJzb25uZUFDaGFyZ2UgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBdXRyZVBlcnNvbm5lQUNoYXJnZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IHBlcnNvbm5lX2FfY2hhcmdlX29mX2pzb28gKHBlcnNvbm5lX2FfY2hhcmdlIDogcGVyc29ubmVfYV9jaGFyZ2UgSnMudClcbiAgOiBQZXJzb25uZUFDaGFyZ2UudCA9XG4gIG1hdGNoIHBlcnNvbm5lX2FfY2hhcmdlIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiRW5mYW50QUNoYXJnZVwiIC0+XG4gIFBlcnNvbm5lQUNoYXJnZS5FbmZhbnRBQ2hhcmdlIChlbmZhbnRfYV9jaGFyZ2Vfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBwZXJzb25uZV9hX2NoYXJnZSMjLnBheWxvYWQpKVxuICB8IFwiQXV0cmVQZXJzb25uZUFDaGFyZ2VcIiAtPlxuICBQZXJzb25uZUFDaGFyZ2UuQXV0cmVQZXJzb25uZUFDaGFyZ2UgKGF1dHJlX3BlcnNvbm5lX2FfY2hhcmdlX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgcGVyc29ubmVfYV9jaGFyZ2UjIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ1BlcnNvbm5lQUNoYXJnZS50J1wiIGNvbnMpXG5cblxuY2xhc3MgdHlwZSBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGtpbmQgOlxuICAgICAgSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgICAgKCoqIEV4cGVjdHMgb25lIG9mOlxuICAgICAgICAtIFwiTG9jYXRpb25cIlxuICAgICAgICAtIFwiQWNjZXNzaW9uUHJvcHJpZXRlXCJcbiAgICAgICAgLSBcIkxvZ2VtZW50Rm95ZXJcIiAqKVxuICAgIFxuICAgIG1ldGhvZCBwYXlsb2FkIDogSnMuVW5zYWZlLmFueSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG5cbmxldCBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sX3RvX2pzb29cbiAgOiBDYXRlZ29yaWVDYWxjdWxBUEwudCAtPiBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIEpzLnRcbiAgPSBmdW5jdGlvblxuICB8IExvY2F0aW9uIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG9jYXRpb25cIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChsb2NhdGlvbl90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgQWNjZXNzaW9uUHJvcHJpZXRlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiQWNjZXNzaW9uUHJvcHJpZXRlXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAocHJvcHJpZXRhaXJlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBMb2dlbWVudEZveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiTG9nZW1lbnRGb3llclwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvZ2VtZW50X2ZveWVyX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAoY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCA6IGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wgSnMudClcbiAgOiBDYXRlZ29yaWVDYWxjdWxBUEwudCA9XG4gIG1hdGNoIGNhdGVnb3JpZV9jYWxjdWxfYV9wX2wjIy5raW5kIHw+IEpzLnRvX3N0cmluZyB3aXRoXG4gIHwgXCJMb2NhdGlvblwiIC0+XG4gIENhdGVnb3JpZUNhbGN1bEFQTC5Mb2NhdGlvbiAobG9jYXRpb25fb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIyMucGF5bG9hZCkpXG4gIHwgXCJBY2Nlc3Npb25Qcm9wcmlldGVcIiAtPlxuICBDYXRlZ29yaWVDYWxjdWxBUEwuQWNjZXNzaW9uUHJvcHJpZXRlIChwcm9wcmlldGFpcmVfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBjYXRlZ29yaWVfY2FsY3VsX2FfcF9sIyMucGF5bG9hZCkpXG4gIHwgXCJMb2dlbWVudEZveWVyXCIgLT5cbiAgQ2F0ZWdvcmllQ2FsY3VsQVBMLkxvZ2VtZW50Rm95ZXIgKGxvZ2VtZW50X2ZveWVyX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgY2F0ZWdvcmllX2NhbGN1bF9hX3BfbCMjLnBheWxvYWQpKVxuICB8IGNvbnMgLT5cbiAgICBmYWlsd2l0aFxuICAgICAgKFByaW50Zi5zcHJpbnRmXG4gICAgICAgIFwiVW5leHBlY3RlZCAnJXMnIGtpbmQgZm9yIHRoZSBlbnVtZXJhdGlvbiAnQ2F0ZWdvcmllQ2FsY3VsQVBMLnQnXCJcbiAgICAgICAgY29ucylcblxuXG5jbGFzcyB0eXBlIG1vZGVfb2NjdXBhdGlvbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBraW5kIDpcbiAgICAgIEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICAgICgqKiBFeHBlY3RzIG9uZSBvZjpcbiAgICAgICAgLSBcIkxvY2F0YWlyZVwiXG4gICAgICAgIC0gXCJSZXNpZGVudExvZ2VtZW50Rm95ZXJcIlxuICAgICAgICAtIFwiQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvblwiXG4gICAgICAgIC0gXCJTb3VzTG9jYXRhaXJlXCJcbiAgICAgICAgLSBcIkxvY2F0aW9uQWNjZXNzaW9uXCIgKilcbiAgICBcbiAgICBtZXRob2QgcGF5bG9hZCA6IEpzLlVuc2FmZS5hbnkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuXG5sZXQgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gOiBNb2RlT2NjdXBhdGlvbi50IC0+IG1vZGVfb2NjdXBhdGlvbiBKcy50XG4gID0gZnVuY3Rpb25cbiAgfCBMb2NhdGFpcmUgYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJMb2NhdGFpcmVcIlxuICAgICAgdmFsIHBheWxvYWQgPSBKcy5VbnNhZmUuY29lcmNlIChKcy5VbnNhZmUuaW5qZWN0IChsb2NhdGlvbl90b19qc29vIGFyZykpXG4gICAgZW5kXG4gIHwgUmVzaWRlbnRMb2dlbWVudEZveWVyIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiUmVzaWRlbnRMb2dlbWVudEZveWVyXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAobG9nZW1lbnRfZm95ZXJfdG9fanNvbyBhcmcpKVxuICAgIGVuZFxuICB8IEFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gYXJnIC0+IG9iamVjdCVqc1xuICAgICAgdmFsIGtpbmQgPSBKcy5zdHJpbmcgXCJBY2Nlc3Npb25Qcm9wcmlldGVMb2NhbFVzYWdlRXhjbHVzaWZIYWJpdGF0aW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAocHJvcHJpZXRhaXJlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBTb3VzTG9jYXRhaXJlIGFyZyAtPiBvYmplY3QlanNcbiAgICAgIHZhbCBraW5kID0gSnMuc3RyaW5nIFwiU291c0xvY2F0YWlyZVwiXG4gICAgICB2YWwgcGF5bG9hZCA9IEpzLlVuc2FmZS5jb2VyY2UgKEpzLlVuc2FmZS5pbmplY3QgKGxvY2F0aW9uX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcbiAgfCBMb2NhdGlvbkFjY2Vzc2lvbiBhcmcgLT4gb2JqZWN0JWpzXG4gICAgICB2YWwga2luZCA9IEpzLnN0cmluZyBcIkxvY2F0aW9uQWNjZXNzaW9uXCJcbiAgICAgIHZhbCBwYXlsb2FkID0gSnMuVW5zYWZlLmNvZXJjZSAoSnMuVW5zYWZlLmluamVjdCAocHJvcHJpZXRhaXJlX3RvX2pzb28gYXJnKSlcbiAgICBlbmRcblxubGV0IG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vIChtb2RlX29jY3VwYXRpb24gOiBtb2RlX29jY3VwYXRpb24gSnMudClcbiAgOiBNb2RlT2NjdXBhdGlvbi50ID1cbiAgbWF0Y2ggbW9kZV9vY2N1cGF0aW9uIyMua2luZCB8PiBKcy50b19zdHJpbmcgd2l0aFxuICB8IFwiTG9jYXRhaXJlXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uTG9jYXRhaXJlIChsb2NhdGlvbl9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG1vZGVfb2NjdXBhdGlvbiMjLnBheWxvYWQpKVxuICB8IFwiUmVzaWRlbnRMb2dlbWVudEZveWVyXCIgLT5cbiAgTW9kZU9jY3VwYXRpb24uUmVzaWRlbnRMb2dlbWVudEZveWVyIChsb2dlbWVudF9mb3llcl9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG1vZGVfb2NjdXBhdGlvbiMjLnBheWxvYWQpKVxuICB8IFwiQWNjZXNzaW9uUHJvcHJpZXRlTG9jYWxVc2FnZUV4Y2x1c2lmSGFiaXRhdGlvblwiIC0+XG4gIE1vZGVPY2N1cGF0aW9uLkFjY2Vzc2lvblByb3ByaWV0ZUxvY2FsVXNhZ2VFeGNsdXNpZkhhYml0YXRpb24gKHByb3ByaWV0YWlyZV9vZl9qc29vIChKcy5VbnNhZmUuY29lcmNlIG1vZGVfb2NjdXBhdGlvbiMjLnBheWxvYWQpKVxuICB8IFwiU291c0xvY2F0YWlyZVwiIC0+XG4gIE1vZGVPY2N1cGF0aW9uLlNvdXNMb2NhdGFpcmUgKGxvY2F0aW9uX29mX2pzb28gKEpzLlVuc2FmZS5jb2VyY2UgbW9kZV9vY2N1cGF0aW9uIyMucGF5bG9hZCkpXG4gIHwgXCJMb2NhdGlvbkFjY2Vzc2lvblwiIC0+XG4gIE1vZGVPY2N1cGF0aW9uLkxvY2F0aW9uQWNjZXNzaW9uIChwcm9wcmlldGFpcmVfb2ZfanNvbyAoSnMuVW5zYWZlLmNvZXJjZSBtb2RlX29jY3VwYXRpb24jIy5wYXlsb2FkKSlcbiAgfCBjb25zIC0+XG4gICAgZmFpbHdpdGhcbiAgICAgIChQcmludGYuc3ByaW50ZlxuICAgICAgICBcIlVuZXhwZWN0ZWQgJyVzJyBraW5kIGZvciB0aGUgZW51bWVyYXRpb24gJ01vZGVPY2N1cGF0aW9uLnQnXCIgY29ucylcblxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZTogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBlbGlnaWJpbGl0ZTogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZVByaXNlc0VuQ29tcHRlOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlOlxuICAgICAgSnMubnVtYmVyIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbmRpdGlvbjJSODIzNDpcbiAgICAgICh1bml0LCAgcGVyc29ubmVfYV9jaGFyZ2UgSnMudCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICA6IEVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50LnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGUgPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQuZGF0ZV9jb3VyYW50ZVxuICAgICAgdmFsIGVsaWdpYmlsaXRlID1cbiAgICAgICAgSnMuYm9vbCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudC5lbGlnaWJpbGl0ZVxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZSA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50Lm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfcHJpc2VzX2VuX2NvbXB0ZVxuICAgICAgdmFsIGNvZWZmaWNlbnRzRW5mYW50c0dhcmRlQWx0ZXJuZWVQcmlzRW5Db21wdGUgPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IHgpIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50LmNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGVcbiAgICAgIG1ldGhvZCBjb25kaXRpb24yUjgyMzQgPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHBlcnNvbm5lX2FfY2hhcmdlIEpzLnQpIC0+XG4gICAgICAgICAgSnMuYm9vbCAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQuY29uZGl0aW9uXzJfcjgyM180IFxuICAgICAgICAgIChwZXJzb25uZV9hX2NoYXJnZV9vZl9qc29vXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgOiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZSA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCMjLmRhdGVDb3VyYW50ZTtcbiAgICAgIGVsaWdpYmlsaXRlID1cbiAgICAgICAgSnMudG9fYm9vbCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCMjLmVsaWdpYmlsaXRlO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9wcmlzZXNfZW5fY29tcHRlID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VQcmlzZXNFbkNvbXB0ZTtcbiAgICAgIGNvZWZmaWNlbnRzX2VuZmFudHNfZ2FyZGVfYWx0ZXJuZWVfcHJpc19lbl9jb21wdGUgPVxuICAgICAgICBBcnJheS5tYXAgKGZ1biB4IC0+IGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyIHgpIEBAIEpzLnRvX2FycmF5XG4gICAgICAgICAgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgICAgICAgICAjIy5jb2VmZmljZW50c0VuZmFudHNHYXJkZUFsdGVybmVlUHJpc0VuQ29tcHRlO1xuICAgICAgY29uZGl0aW9uXzJfcjgyM180ID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2NvbmRpdGlvbl8yX3I4MjNfNCcgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiXG4gICAgfVxuXG5jbGFzcyB0eXBlIGxvZ2VtZW50ID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHJlc2lkZW5jZVByaW5jaXBhbGU6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVzdEVocGFkT3VNYWlzb25BdXRvbm9taWVMMzEzMTJBc2Y6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uOiBtb2RlX29jY3VwYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHByb3ByaWV0YWlyZTogcGFyZW50X291X2F1dHJlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb3VlT3VTb3VzTG91ZUFEZXNUaWVyczpcbiAgICAgIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB1c3VmcnVpdDogcGFyZW50X291X2F1dHJlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudERlY2VudEw4OTQ2MjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc3VyZmFjZU1DYXJyZXM6IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmU6IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGxvZ2VtZW50X3RvX2pzb28gKGxvZ2VtZW50IDogTG9nZW1lbnQudCkgOiBsb2dlbWVudCBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCByZXNpZGVuY2VQcmluY2lwYWxlID0gSnMuYm9vbCBsb2dlbWVudC5yZXNpZGVuY2VfcHJpbmNpcGFsZVxuICAgICAgdmFsIGVzdEVocGFkT3VNYWlzb25BdXRvbm9taWVMMzEzMTJBc2YgPVxuICAgICAgICBKcy5ib29sIGxvZ2VtZW50LmVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmXG4gICAgICB2YWwgbW9kZU9jY3VwYXRpb24gPSBtb2RlX29jY3VwYXRpb25fdG9fanNvbyBsb2dlbWVudC5tb2RlX29jY3VwYXRpb25cbiAgICAgIHZhbCBwcm9wcmlldGFpcmUgPSBwYXJlbnRfb3VfYXV0cmVfdG9fanNvbyBsb2dlbWVudC5wcm9wcmlldGFpcmVcbiAgICAgIHZhbCBsb3VlT3VTb3VzTG91ZUFEZXNUaWVycyA9XG4gICAgICAgIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzX3RvX2pzb28gbG9nZW1lbnQubG91ZV9vdV9zb3VzX2xvdWVfYV9kZXNfdGllcnNcbiAgICAgIHZhbCB1c3VmcnVpdCA9IHBhcmVudF9vdV9hdXRyZV90b19qc29vIGxvZ2VtZW50LnVzdWZydWl0XG4gICAgICB2YWwgbG9nZW1lbnREZWNlbnRMODk0NjIgPSBKcy5ib29sIGxvZ2VtZW50LmxvZ2VtZW50X2RlY2VudF9sODlfNDYyXG4gICAgICB2YWwgc3VyZmFjZU1DYXJyZXMgPSBpbnRlZ2VyX3RvX2ludCBsb2dlbWVudC5zdXJmYWNlX21fY2FycmVzXG4gICAgICB2YWwgem9uZSA9IHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gbG9nZW1lbnQuem9uZVxuICAgICAgZW5kXG4gIGxldCBsb2dlbWVudF9vZl9qc29vIChsb2dlbWVudCA6IGxvZ2VtZW50IEpzLnQpIDogTG9nZW1lbnQudCA9XG4gICAge1xuICAgICAgcmVzaWRlbmNlX3ByaW5jaXBhbGUgPSBKcy50b19ib29sIGxvZ2VtZW50IyMucmVzaWRlbmNlUHJpbmNpcGFsZTtcbiAgICAgIGVzdF9laHBhZF9vdV9tYWlzb25fYXV0b25vbWllX2wzMTNfMTJfYXNmID1cbiAgICAgICAgSnMudG9fYm9vbCBsb2dlbWVudCMjLmVzdEVocGFkT3VNYWlzb25BdXRvbm9taWVMMzEzMTJBc2Y7XG4gICAgICBtb2RlX29jY3VwYXRpb24gPSBtb2RlX29jY3VwYXRpb25fb2ZfanNvbyBsb2dlbWVudCMjLm1vZGVPY2N1cGF0aW9uO1xuICAgICAgcHJvcHJpZXRhaXJlID0gcGFyZW50X291X2F1dHJlX29mX2pzb28gbG9nZW1lbnQjIy5wcm9wcmlldGFpcmU7XG4gICAgICBsb3VlX291X3NvdXNfbG91ZV9hX2Rlc190aWVycyA9XG4gICAgICAgIGxvdWVfb3Vfc291c19sb3VlX2FfZGVzX3RpZXJzX29mX2pzb29cbiAgICAgICAgICBsb2dlbWVudCMjLmxvdWVPdVNvdXNMb3VlQURlc1RpZXJzO1xuICAgICAgdXN1ZnJ1aXQgPSBwYXJlbnRfb3VfYXV0cmVfb2ZfanNvbyBsb2dlbWVudCMjLnVzdWZydWl0O1xuICAgICAgbG9nZW1lbnRfZGVjZW50X2w4OV80NjIgPSBKcy50b19ib29sIGxvZ2VtZW50IyMubG9nZW1lbnREZWNlbnRMODk0NjI7XG4gICAgICBzdXJmYWNlX21fY2FycmVzID0gaW50ZWdlcl9vZl9pbnQgbG9nZW1lbnQjIy5zdXJmYWNlTUNhcnJlcztcbiAgICAgIHpvbmUgPSB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIGxvZ2VtZW50IyMuem9uZVxuICAgIH1cblxuY2xhc3MgdHlwZSBtZW5hZ2UgPVxuICBvYmplY3RcbiAgICBtZXRob2QgcHJlc3RhdGlvbnNSZWN1ZXM6XG4gICAgICBwcmVzdGF0aW9uX3JlY3VlIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50OiBsb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVzQUNoYXJnZTpcbiAgICAgIHBlcnNvbm5lX2FfY2hhcmdlIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZUF1dHJlc09jY3VwYW50c0xvZ2VtZW50OiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGU6IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbmRpdGlvblJhdHRhY2hlRm95ZXJGaXNjYWxQYXJlbnRJZmk6IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGVuZmFudEFOYWl0cmVBcHJlc1F1YXRyaWVtZU1vaXNHcm9zc2Vzc2U6XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBwZXJzb25uZXNBZ2Vlc0hhbmRpY2FwZWVzRm95ZXJSODQ0NDogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgbWVuYWdlX3RvX2pzb28gKG1lbmFnZSA6IE1lbmFnZS50KSA6IG1lbmFnZSBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBwcmVzdGF0aW9uc1JlY3VlcyA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gcHJlc3RhdGlvbl9yZWN1ZV90b19qc29vIHgpIG1lbmFnZS5wcmVzdGF0aW9uc19yZWN1ZXNcbiAgICAgIHZhbCBsb2dlbWVudCA9IGxvZ2VtZW50X3RvX2pzb28gbWVuYWdlLmxvZ2VtZW50XG4gICAgICB2YWwgcGVyc29ubmVzQUNoYXJnZSA9XG4gICAgICAgIEpzLmFycmF5IEBAIEFycmF5Lm1hcCAoZnVuIHggLT4gcGVyc29ubmVfYV9jaGFyZ2VfdG9fanNvbyB4KSBtZW5hZ2UucGVyc29ubmVzX2FfY2hhcmdlXG4gICAgICB2YWwgbm9tYnJlQXV0cmVzT2NjdXBhbnRzTG9nZW1lbnQgPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBtZW5hZ2Uubm9tYnJlX2F1dHJlc19vY2N1cGFudHNfbG9nZW1lbnRcbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGUgPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX3RvX2pzb28gbWVuYWdlLnNpdHVhdGlvbl9mYW1pbGlhbGVcbiAgICAgIHZhbCBjb25kaXRpb25SYXR0YWNoZUZveWVyRmlzY2FsUGFyZW50SWZpID1cbiAgICAgICAgSnMuYm9vbCBtZW5hZ2UuY29uZGl0aW9uX3JhdHRhY2hlX2ZveWVyX2Zpc2NhbF9wYXJlbnRfaWZpXG4gICAgICB2YWwgZW5mYW50QU5haXRyZUFwcmVzUXVhdHJpZW1lTW9pc0dyb3NzZXNzZSA9XG4gICAgICAgIEpzLmJvb2wgbWVuYWdlLmVuZmFudF9hX25haXRyZV9hcHJlc19xdWF0cmllbWVfbW9pc19ncm9zc2Vzc2VcbiAgICAgIHZhbCBwZXJzb25uZXNBZ2Vlc0hhbmRpY2FwZWVzRm95ZXJSODQ0NCA9XG4gICAgICAgIEpzLmJvb2wgbWVuYWdlLnBlcnNvbm5lc19hZ2Vlc19oYW5kaWNhcGVlc19mb3llcl9yODQ0XzRcbiAgICAgIHZhbCByZXNpZGVuY2UgPSBjb2xsZWN0aXZpdGVfdG9fanNvbyBtZW5hZ2UucmVzaWRlbmNlXG4gICAgICBlbmRcbiAgbGV0IG1lbmFnZV9vZl9qc29vIChtZW5hZ2UgOiBtZW5hZ2UgSnMudCkgOiBNZW5hZ2UudCA9XG4gICAge1xuICAgICAgcHJlc3RhdGlvbnNfcmVjdWVzID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwcmVzdGF0aW9uX3JlY3VlX29mX2pzb28geCkgQEAgSnMudG9fYXJyYXlcbiAgICAgICAgICBtZW5hZ2UjIy5wcmVzdGF0aW9uc1JlY3VlcztcbiAgICAgIGxvZ2VtZW50ID0gbG9nZW1lbnRfb2ZfanNvbyBtZW5hZ2UjIy5sb2dlbWVudDtcbiAgICAgIHBlcnNvbm5lc19hX2NoYXJnZSA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIG1lbmFnZSMjLnBlcnNvbm5lc0FDaGFyZ2U7XG4gICAgICBub21icmVfYXV0cmVzX29jY3VwYW50c19sb2dlbWVudCA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50IG1lbmFnZSMjLm5vbWJyZUF1dHJlc09jY3VwYW50c0xvZ2VtZW50O1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZSA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfb2ZfanNvbyBtZW5hZ2UjIy5zaXR1YXRpb25GYW1pbGlhbGU7XG4gICAgICBjb25kaXRpb25fcmF0dGFjaGVfZm95ZXJfZmlzY2FsX3BhcmVudF9pZmkgPVxuICAgICAgICBKcy50b19ib29sIG1lbmFnZSMjLmNvbmRpdGlvblJhdHRhY2hlRm95ZXJGaXNjYWxQYXJlbnRJZmk7XG4gICAgICBlbmZhbnRfYV9uYWl0cmVfYXByZXNfcXVhdHJpZW1lX21vaXNfZ3Jvc3Nlc3NlID1cbiAgICAgICAgSnMudG9fYm9vbCBtZW5hZ2UjIy5lbmZhbnRBTmFpdHJlQXByZXNRdWF0cmllbWVNb2lzR3Jvc3Nlc3NlO1xuICAgICAgcGVyc29ubmVzX2FnZWVzX2hhbmRpY2FwZWVzX2ZveWVyX3I4NDRfNCA9XG4gICAgICAgIEpzLnRvX2Jvb2wgbWVuYWdlIyMucGVyc29ubmVzQWdlZXNIYW5kaWNhcGVlc0ZveWVyUjg0NDQ7XG4gICAgICByZXNpZGVuY2UgPSBjb2xsZWN0aXZpdGVfb2ZfanNvbyBtZW5hZ2UjIy5yZXNpZGVuY2VcbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uTG9nZW1lbnRSZXNpZGVuY2VQcmluY2lwYWxlSW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gYm9vbCBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgY29uZGl0aW9uTG9nZW1lbnRTdXJmYWNlSW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gYm9vbCBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgICBtZXRob2QgZGF0ZUVudHJlZVZpZ3VldXJEaWZmZXJlZUNjaEluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IEpzLmpzX3N0cmluZyBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgOiBFbGlnaWJpbGl0ZUFpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLm1lbmFnZV9pblxuICAgICAgdmFsIGRlbWFuZGV1ckluID1cbiAgICAgICAgZGVtYW5kZXVyX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgbWV0aG9kIGNvbmRpdGlvbkxvZ2VtZW50UmVzaWRlbmNlUHJpbmNpcGFsZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmRpdGlvbl9sb2dlbWVudF9yZXNpZGVuY2VfcHJpbmNpcGFsZV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBjb25kaXRpb25Mb2dlbWVudFN1cmZhY2VJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBKcy5ib29sIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5jb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBkYXRlRW50cmVlVmlndWV1ckRpZmZlcmVlQ2NoSW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgZGF0ZV90b19qc29vIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2VudHJlZV92aWd1ZXVyX2RpZmZlcmVlX2NjaF9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgOiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiMjLm1lbmFnZUluO1xuICAgICAgZGVtYW5kZXVyX2luID1cbiAgICAgICAgZGVtYW5kZXVyX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBjb25kaXRpb25fbG9nZW1lbnRfcmVzaWRlbmNlX3ByaW5jaXBhbGVfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnY29uZGl0aW9uX2xvZ2VtZW50X3Jlc2lkZW5jZV9wcmluY2lwYWxlX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCI7XG4gICAgICBjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdjb25kaXRpb25fbG9nZW1lbnRfc3VyZmFjZV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnZGF0ZV9lbnRyZWVfdmlndWV1cl9kaWZmZXJlZV9jY2hfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5fdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICA6IEVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbWVuYWdlSW4gPVxuICAgICAgICBtZW5hZ2VfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uZGVtYW5kZXVyX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIGVuZFxuICBsZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gICAgICA6IGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgRWxpZ2liaWxpdGVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW4udCA9XG4gICAge1xuICAgICAgbWVuYWdlX2luID1cbiAgICAgICAgbWVuYWdlX29mX2pzb28gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLmRhdGVDb3VyYW50ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWVuYWdlSW46IG1lbmFnZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGVtYW5kZXVySW46IGRlbWFuZGV1ciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2llQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIDogRWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnRJbi50KVxuICAgIDogZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBtZW5hZ2VJbiA9XG4gICAgICAgIG1lbmFnZV90b19qc29vIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4ubWVuYWdlX2luXG4gICAgICB2YWwgZGVtYW5kZXVySW4gPVxuICAgICAgICBkZW1hbmRldXJfdG9fanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGJlbmVmaWNpZUFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbiA9XG4gICAgICAgIEpzLmJvb2wgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5iZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gICAgICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luXG4gICAgICA6IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIEVsaWdpYmlsaXRlQWxsb2NhdGlvbkxvZ2VtZW50SW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvbyBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuZGVtYW5kZXVySW47XG4gICAgICBiZW5lZmljaWVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5iZW5lZmljaWVBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50SW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGluZm9ybWF0aW9uc0luOlxuICAgICAgaW5mb3JtYXRpb25zX3ByaW1lX2RlX2RlbWVuYWdlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVtbWVuYWdlbWVudEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1lbmFnZUluOiBtZW5hZ2UgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1ckluOiBkZW1hbmRldXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlcGVuc2VzSnVzdGlmaWVlc1JlZWxsZW1lbnRFbmdhZ2Vlc0luOlxuICAgICAgSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbl90b19qc29vXG4gICAgKGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pblxuICAgIDogRWxpZ2liaWxpdGVQcmltZURlRGVtZW5hZ2VtZW50SW4udClcbiAgICA6IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBpbmZvcm1hdGlvbnNJbiA9XG4gICAgICAgIGluZm9ybWF0aW9uc19wcmltZV9kZV9kZW1lbmFnZW1lbnRfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4uaW5mb3JtYXRpb25zX2luXG4gICAgICB2YWwgZGF0ZUVtbWVuYWdlbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5kYXRlX2VtbWVuYWdlbWVudF9pblxuICAgICAgdmFsIG1lbmFnZUluID1cbiAgICAgICAgbWVuYWdlX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLm1lbmFnZV9pblxuICAgICAgdmFsIGRlbWFuZGV1ckluID1cbiAgICAgICAgZGVtYW5kZXVyX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRlbWFuZGV1cl9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgZGVwZW5zZXNKdXN0aWZpZWVzUmVlbGxlbWVudEVuZ2FnZWVzSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luLmRlcGVuc2VzX2p1c3RpZmllZXNfcmVlbGxlbWVudF9lbmdhZ2Vlc19pblxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5fb2ZfanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5cbiAgICAgIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZVByaW1lRGVEZW1lbmFnZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBpbmZvcm1hdGlvbnNfaW4gPVxuICAgICAgICBpbmZvcm1hdGlvbnNfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5pbmZvcm1hdGlvbnNJbjtcbiAgICAgIGRhdGVfZW1tZW5hZ2VtZW50X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIyMuZGF0ZUVtbWVuYWdlbWVudEluO1xuICAgICAgbWVuYWdlX2luID1cbiAgICAgICAgbWVuYWdlX29mX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIyMubWVuYWdlSW47XG4gICAgICBkZW1hbmRldXJfaW4gPVxuICAgICAgICBkZW1hbmRldXJfb2ZfanNvbyBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4jIy5kZW1hbmRldXJJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBkZXBlbnNlc19qdXN0aWZpZWVzX3JlZWxsZW1lbnRfZW5nYWdlZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGVwZW5zZXNKdXN0aWZpZWVzUmVlbGxlbWVudEVuZ2FnZWVzSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByZXNzb3VyY2VzRGVtYW5kZXVySW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc0NvbmpvaW50SW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVzVml2YW50SGFiaXR1ZWxsZW1lbnRGb3llckluOlxuICAgICAgcGVyc29ubmVfdml2YW50X2hhYml0dWVsbGVtZW50X2F1X2ZveWVyIEpzLnQgSnMuanNfYXJyYXkgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1ckV4ZXJjZUFjdGl2aXRlUmVtdW5lcmVlSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbmpvaW50RXhlcmNlQWN0aXZpdGVSZW11bmVyZWVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcGVyc29ubmVzQUNoYXJnZUluOlxuICAgICAgcGVyc29ubmVfYV9jaGFyZ2UgSnMudCBKcy5qc19hcnJheSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlSW46IHNpdHVhdGlvbl9mYW1pbGlhbGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG1vZGVPY2N1cGF0aW9uSW46IG1vZGVfb2NjdXBhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uQWdlQm91cnNlRW5zZWlnbmVtZW50U3VwZXJpZXVySW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZW1hbmRldXJQb3Vyc3VpdERlc0V0dWRlc0luOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlRGVtYW5kZU91UmVleGFtZW5Ecm9pdEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWxJbjpcbiAgICAgIHBhaWVtZW50X2xvZ2VtZW50X2Rpc3RpbmN0X3Byb2Zlc3Npb25uZWwgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX3RvX2pzb29cbiAgICAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgIDogUmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpXG4gICAgOiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHJlc3NvdXJjZXNEZW1hbmRldXJJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfZGVtYW5kZXVyX2luXG4gICAgICB2YWwgcmVzc291cmNlc0NvbmpvaW50SW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5yZXNzb3VyY2VzX2NvbmpvaW50X2luXG4gICAgICB2YWwgcGVyc29ubmVzVml2YW50SGFiaXR1ZWxsZW1lbnRGb3llckluID1cbiAgICAgICAgSnMuYXJyYXkgQEAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJfdG9fanNvbyB4KSByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnBlcnNvbm5lc192aXZhbnRfaGFiaXR1ZWxsZW1lbnRfZm95ZXJfaW5cbiAgICAgIHZhbCBkZW1hbmRldXJFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRlbWFuZGV1cl9leGVyY2VfYWN0aXZpdGVfcmVtdW5lcmVlX2luXG4gICAgICB2YWwgY29uam9pbnRFeGVyY2VBY3Rpdml0ZVJlbXVuZXJlZUluID1cbiAgICAgICAgSnMuYm9vbCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW5cbiAgICAgIHZhbCBwZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBKcy5hcnJheSBAQCBBcnJheS5tYXAgKGZ1biB4IC0+IHBlcnNvbm5lX2FfY2hhcmdlX3RvX2pzb28geCkgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW5cbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbkluID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5tb2RlX29jY3VwYXRpb25faW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBjb25kaXRpb25BZ2VCb3Vyc2VFbnNlaWduZW1lbnRTdXBlcmlldXJJbiA9XG4gICAgICAgIEpzLmJvb2wgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5jb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luXG4gICAgICB2YWwgZGVtYW5kZXVyUG91cnN1aXREZXNFdHVkZXNJbiA9XG4gICAgICAgIEpzLmJvb2wgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kZW1hbmRldXJfcG91cnN1aXRfZGVzX2V0dWRlc19pblxuICAgICAgdmFsIGRhdGVEZW1hbmRlT3VSZWV4YW1lbkRyb2l0SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5kYXRlX2RlbWFuZGVfb3VfcmVleGFtZW5fZHJvaXRfaW5cbiAgICAgIHZhbCBwYWllbWVudExvZ2VtZW50RGlzdGluY3RQcm9mZXNzaW9ubmVsSW4gPVxuICAgICAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX3RvX2pzb28gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbi5wYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luXG4gICAgICBlbmRcbiAgbGV0IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCkgOlxuICAgIFJlc3NvdXJjZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICByZXNzb3VyY2VzX2RlbWFuZGV1cl9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMucmVzc291cmNlc0RlbWFuZGV1ckluO1xuICAgICAgcmVzc291cmNlc19jb25qb2ludF9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMucmVzc291cmNlc0NvbmpvaW50SW47XG4gICAgICBwZXJzb25uZXNfdml2YW50X2hhYml0dWVsbGVtZW50X2ZveWVyX2luID1cbiAgICAgICAgQXJyYXkubWFwIChmdW4geCAtPiBwZXJzb25uZV92aXZhbnRfaGFiaXR1ZWxsZW1lbnRfYXVfZm95ZXJfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5wZXJzb25uZXNWaXZhbnRIYWJpdHVlbGxlbWVudEZveWVySW47XG4gICAgICBkZW1hbmRldXJfZXhlcmNlX2FjdGl2aXRlX3JlbXVuZXJlZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMuZGVtYW5kZXVyRXhlcmNlQWN0aXZpdGVSZW11bmVyZWVJbjtcbiAgICAgIGNvbmpvaW50X2V4ZXJjZV9hY3Rpdml0ZV9yZW11bmVyZWVfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmNvbmpvaW50RXhlcmNlQWN0aXZpdGVSZW11bmVyZWVJbjtcbiAgICAgIHBlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIEFycmF5Lm1hcCAoZnVuIHggLT4gcGVyc29ubmVfYV9jaGFyZ2Vfb2ZfanNvbyB4KSBAQCBKcy50b19hcnJheVxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4jIy5wZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiMjLnNpdHVhdGlvbkZhbWlsaWFsZUluO1xuICAgICAgbW9kZV9vY2N1cGF0aW9uX2luID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBjb25kaXRpb25fYWdlX2JvdXJzZV9lbnNlaWduZW1lbnRfc3VwZXJpZXVyX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5jb25kaXRpb25BZ2VCb3Vyc2VFbnNlaWduZW1lbnRTdXBlcmlldXJJbjtcbiAgICAgIGRlbWFuZGV1cl9wb3Vyc3VpdF9kZXNfZXR1ZGVzX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5kZW1hbmRldXJQb3Vyc3VpdERlc0V0dWRlc0luO1xuICAgICAgZGF0ZV9kZW1hbmRlX291X3JlZXhhbWVuX2Ryb2l0X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmRhdGVEZW1hbmRlT3VSZWV4YW1lbkRyb2l0SW47XG4gICAgICBwYWllbWVudF9sb2dlbWVudF9kaXN0aW5jdF9wcm9mZXNzaW9ubmVsX2luID1cbiAgICAgICAgcGFpZW1lbnRfbG9nZW1lbnRfZGlzdGluY3RfcHJvZmVzc2lvbm5lbF9vZl9qc29vXG4gICAgICAgICAgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLnBhaWVtZW50TG9nZW1lbnREaXN0aW5jdFByb2Zlc3Npb25uZWxJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICAgICAgICAjIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gPVxuICBvYmplY3QgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgICA6IENvbnRyaWJ1dGlvbnNTb2NpYWxlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudEluLnQpXG4gICAgOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgZW5kXG4gIGxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luX29mX2pzb29cbiAgICAoY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgOiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBDb250cmlidXRpb25zU29jaWFsZXNBaWRlc1BlcnNvbm5lbGxlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICAgICAgICAgICMjLmRhdGVDb3VyYW50ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsb3llclByaW5jaXBhbEJhc2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlc0luOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudEVzdENoYW1icmVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnNJbjpcbiAgICAgIGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVBaWRlSW46IHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvbG9jYXRpb25JbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVkdWN0aW9uTG95ZXJTb2xpZGFyaXRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9nZW1lbnRNZXVibGVEODQyMkluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbl90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgIDogQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWZJbi50KVxuICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGxveWVyUHJpbmNpcGFsQmFzZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5sb3llcl9wcmluY2lwYWxfYmFzZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luXG4gICAgICB2YWwgYmVuZWZpY2lhaXJlQWlkZUFkdWx0ZU91RW5mYW50SGFuZGljYXBlc0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uem9uZV9pblxuICAgICAgdmFsIGxvZ2VtZW50RXN0Q2hhbWJyZUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ubG9nZW1lbnRfZXN0X2NoYW1icmVfaW5cbiAgICAgIHZhbCBhZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW5cbiAgICAgIHZhbCB0eXBlQWlkZUluID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi50eXBlX2FpZGVfaW5cbiAgICAgIHZhbCBjb2xvY2F0aW9uSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbi5jb2xvY2F0aW9uX2luXG4gICAgICB2YWwgcmVkdWN0aW9uTG95ZXJTb2xpZGFyaXRlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMkluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW4ubG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50TG9jYXRpZkluLnQgPVxuICAgIHtcbiAgICAgIGxveWVyX3ByaW5jaXBhbF9iYXNlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmxveWVyUHJpbmNpcGFsQmFzZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjtcbiAgICAgIGJlbmVmaWNpYWlyZV9haWRlX2FkdWx0ZV9vdV9lbmZhbnRfaGFuZGljYXBlc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5iZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW47XG4gICAgICB6b25lX2luID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnpvbmVJbjtcbiAgICAgIGxvZ2VtZW50X2VzdF9jaGFtYnJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmxvZ2VtZW50RXN0Q2hhbWJyZUluO1xuICAgICAgYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnNJbjtcbiAgICAgIHR5cGVfYWlkZV9pbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnR5cGVBaWRlSW47XG4gICAgICBjb2xvY2F0aW9uX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmNvbG9jYXRpb25JbjtcbiAgICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLnJlZHVjdGlvbkxveWVyU29saWRhcml0ZUluO1xuICAgICAgbG9nZW1lbnRfbWV1YmxlX2Q4NDJfMl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgICAgICAgICAjIy5sb2dlbWVudE1ldWJsZUQ4NDIySW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uMkR1ODMyMjVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjI1SW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW5cbiAgICA6IENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnQpXG4gICAgOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIGNvbmRpdGlvbjJEdTgzMjI1SW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5jb25kaXRpb25fMl9kdV84MzJfMjVfaW5cbiAgICAgIHZhbCBuTm9tYnJlUGFydHNEODMyMjVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBkZWNpbWFsX3RvX2Zsb2F0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbi5uX25vbWJyZV9wYXJ0c19kODMyXzI1X2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV9pblxuICAgICAgOiBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4gSnMudCkgOlxuICAgIENhbGN1bEVxdWl2YWxlbmNlTG95ZXJNaW5pbWFsZUluLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgY29uZGl0aW9uXzJfZHVfODMyXzI1X2luID1cbiAgICAgICAgSnMudG9fYm9vbCBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW4jIy5jb25kaXRpb24yRHU4MzIyNUluO1xuICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9XG4gICAgICAgIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIyMubk5vbWJyZVBhcnRzRDgzMjI1SW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGNvbmRpdGlvbjJEdTgzMjI1SW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbGltaXRhdGlvbk1ham9yYXRpb25QZXJzb25uZXNBQ2hhcmdlSW46XG4gICAgICAodW5pdCwgIHVuaXQgLT4gYm9vbCBKcy50KSBKcy5tZXRoX2NhbGxiYWNrIEpzLm1ldGhcbiAgZW5kXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICA6IENhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVySW4udClcbiAgICA6IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBjb25kaXRpb24yRHU4MzIyNUluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW4uY29uZGl0aW9uXzJfZHVfODMyXzI1X2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX3RvX2pzb28gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luLnJlc2lkZW5jZV9pblxuICAgICAgbWV0aG9kIGxpbWl0YXRpb25NYWpvcmF0aW9uUGVyc29ubmVzQUNoYXJnZUluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIEpzLmJvb2wgKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbi5saW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQpIDpcbiAgICBDYWxjdWxOb21icmVQYXJ0TG9nZW1lbnRGb3llckluLnQgPVxuICAgIHtcbiAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2wgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIyMuY29uZGl0aW9uMkR1ODMyMjVJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBsaW1pdGF0aW9uX21ham9yYXRpb25fcGVyc29ubmVzX2FfY2hhcmdlX2luID0gZmFpbHdpdGggXCJUaGUgZnVuY3Rpb24gJ2xpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIlxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIHR5cGVMb2dlbWVudEZveWVySW46IHR5cGVfbG9nZW1lbnRfZm95ZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb252ZW50aW9ubmVtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0luOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVkZXZhbmNlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29uZGl0aW9uMkR1ODMyMjVJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBsaW1pdGF0aW9uTWFqb3JhdGlvblBlcnNvbm5lc0FDaGFyZ2VJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBib29sIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICAgIG1ldGhvZCBuTm9tYnJlUGFydHNEODMyMjVJbjpcbiAgICAgICh1bml0LCAgdW5pdCAtPiBKcy5udW1iZXIgSnMudCkgSnMubWV0aF9jYWxsYmFjayBKcy5tZXRoXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbl90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llckluLnQpXG4gICAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIHR5cGVMb2dlbWVudEZveWVySW4gPVxuICAgICAgICB0eXBlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICB2YWwgZGF0ZUNvbnZlbnRpb25uZW1lbnRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY29udmVudGlvbm5lbWVudF9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblxuICAgICAgdmFsIHpvbmVJbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVkZXZhbmNlSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbi5yZWRldmFuY2VfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ucmVzaWRlbmNlX2luXG4gICAgICBtZXRob2QgY29uZGl0aW9uMkR1ODMyMjVJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBKcy5ib29sIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLmNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIG1ldGhvZCBsaW1pdGF0aW9uTWFqb3JhdGlvblBlcnNvbm5lc0FDaGFyZ2VJbiA9IEpzLndyYXBfbWV0aF9jYWxsYmFja1xuICAgICAgICAoXG4gICAgICAgICAgZnVuIF8gKGZ1bmN0aW9uX2lucHV0MDogdW5pdCkgLT5cbiAgICAgICAgICBKcy5ib29sIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luLmxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gXG4gICAgICAgICAgKFxuICAgICAgICAgICAgZnVuY3Rpb25faW5wdXQwKSkpXG4gICAgICBtZXRob2Qgbk5vbWJyZVBhcnRzRDgzMjI1SW4gPSBKcy53cmFwX21ldGhfY2FsbGJhY2tcbiAgICAgICAgKFxuICAgICAgICAgIGZ1biBfIChmdW5jdGlvbl9pbnB1dDA6IHVuaXQpIC0+XG4gICAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIGRlY2ltYWxfdG9fZmxvYXQgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4ubl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiBcbiAgICAgICAgICAoXG4gICAgICAgICAgICBmdW5jdGlvbl9pbnB1dDApKSlcbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEZveWVySW4udCA9XG4gICAge1xuICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgIHR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy50eXBlTG9nZW1lbnRGb3llckluO1xuICAgICAgZGF0ZV9jb252ZW50aW9ubmVtZW50X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLmRhdGVDb252ZW50aW9ubmVtZW50SW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgICAgICAjIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluO1xuICAgICAgem9uZV9pbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIyMuem9uZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlZGV2YW5jZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIyMucmVkZXZhbmNlSW47XG4gICAgICByZXNpZGVuY2VfaW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIGNvbmRpdGlvbl8yX2R1XzgzMl8yNV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICdjb25kaXRpb25fMl9kdV84MzJfMjVfaW4nIHRyYW5zbGF0aW9uIGlzbid0IHlldCBzdXBwb3J0ZWQuLi5cIjtcbiAgICAgIGxpbWl0YXRpb25fbWFqb3JhdGlvbl9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnbGltaXRhdGlvbl9tYWpvcmF0aW9uX3BlcnNvbm5lc19hX2NoYXJnZV9pbicgdHJhbnNsYXRpb24gaXNuJ3QgeWV0IHN1cHBvcnRlZC4uLlwiO1xuICAgICAgbl9ub21icmVfcGFydHNfZDgzMl8yNV9pbiA9IGZhaWx3aXRoIFwiVGhlIGZ1bmN0aW9uICduX25vbWJyZV9wYXJ0c19kODMyXzI1X2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fdG9fanNvb1xuICAgIChjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICA6IENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4udClcbiAgICA6IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ubm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfdG9fanNvbyBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgOiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudCkgOlxuICAgIENhbGN1bE5vbWJyZVBhcnRzQWNjZXNzaW9uUHJvcHJpZXRlSW4udCA9XG4gICAge1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVUcmF2YXV4TG9nZW1lbnRJbjpcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlU2lnbmF0dXJlUHJldEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvY2FsSGFiaXRlUHJlbWllcmVGb2lzQmVuZWZpY2lhaXJlSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVFbnRyZWVMb2dlbWVudEluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNvcHJvcHJpZXRlSW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvblI4MjIxMTEzMTdJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVByZXRJbjogdHlwZV9wcmV0IEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbmNpZW5uZXRlTG9nZW1lbnRJbjogbmV1Zl9vdV9hbmNpZW4gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgOiBDYWxjdWxBaWRlUGVyc29ubmFsaXNlZUxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udClcbiAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtZW5zdWFsaXRlUHJpbmNpcGFsZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5tZW5zdWFsaXRlX3ByaW5jaXBhbGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19pblxuICAgICAgdmFsIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbiA9XG4gICAgICAgIGludGVnZXJfdG9faW50IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW5cbiAgICAgIHZhbCB0eXBlVHJhdmF1eExvZ2VtZW50SW4gPVxuICAgICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfZDgzMl8xNV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi50eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW5cbiAgICAgIHZhbCBkYXRlU2lnbmF0dXJlUHJldEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luXG4gICAgICB2YWwgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pblxuICAgICAgdmFsIGRhdGVFbnRyZWVMb2dlbWVudEluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5kYXRlX2VudHJlZV9sb2dlbWVudF9pblxuICAgICAgdmFsIGNvcHJvcHJpZXRlSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5jb3Byb3ByaWV0ZV9pblxuICAgICAgdmFsIHNpdHVhdGlvblI4MjIxMTEzMTdJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uem9uZV9pblxuICAgICAgdmFsIHR5cGVQcmV0SW4gPVxuICAgICAgICB0eXBlX3ByZXRfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4udHlwZV9wcmV0X2luXG4gICAgICB2YWwgYW5jaWVubmV0ZUxvZ2VtZW50SW4gPVxuICAgICAgICBuZXVmX291X2FuY2llbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5hbmNpZW5uZXRlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZUluLnQgPVxuICAgIHtcbiAgICAgIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5tZW5zdWFsaXRlUHJpbmNpcGFsZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjtcbiAgICAgIG5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW4gPVxuICAgICAgICBpbnRlZ2VyX29mX2ludFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9pbiA9XG4gICAgICAgIHR5cGVfdHJhdmF1eF9sb2dlbWVudF9kODMyXzE1X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy50eXBlVHJhdmF1eExvZ2VtZW50SW47XG4gICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuZGF0ZVNpZ25hdHVyZVByZXRJbjtcbiAgICAgIGxvY2FsX2hhYml0ZV9wcmVtaWVyZV9mb2lzX2JlbmVmaWNpYWlyZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5sb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluO1xuICAgICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5kYXRlRW50cmVlTG9nZW1lbnRJbjtcbiAgICAgIGNvcHJvcHJpZXRlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmNvcHJvcHJpZXRlSW47XG4gICAgICBzaXR1YXRpb25fcjgyMl8xMV8xM18xN19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25SODIyMTExMzE3SW47XG4gICAgICB6b25lX2luID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiMjLnpvbmVJbjtcbiAgICAgIHR5cGVfcHJldF9pbiA9XG4gICAgICAgIHR5cGVfcHJldF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMudHlwZVByZXRJbjtcbiAgICAgIGFuY2llbm5ldGVfbG9nZW1lbnRfaW4gPVxuICAgICAgICBuZXVmX291X2FuY2llbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuYW5jaWVubmV0ZUxvZ2VtZW50SW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb2RlT2NjdXBhdGlvbkluOiBtb2RlX29jY3VwYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVBaWRlSW46IHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VTYW5zQXJyb25kaUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUluOiBzaXR1YXRpb25fZmFtaWxpYWxlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICA6IENhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRJbi50KVxuICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbkluID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5tb2RlX29jY3VwYXRpb25faW5cbiAgICAgIHZhbCB0eXBlQWlkZUluID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4udHlwZV9haWRlX2luXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5yZXNzb3VyY2VzX21lbmFnZV9zYW5zX2Fycm9uZGlfaW5cbiAgICAgIHZhbCBzaXR1YXRpb25GYW1pbGlhbGVJbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfdG9fanNvbyBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luLm5vbWJyZV9wZXJzb25uZXNfYV9jaGFyZ2VfaW5cbiAgICAgIHZhbCB6b25lSW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uem9uZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHJlc2lkZW5jZUluID1cbiAgICAgICAgY29sbGVjdGl2aXRlX3RvX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5cbiAgICAgIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEluLnQgPVxuICAgIHtcbiAgICAgIG1vZGVfb2NjdXBhdGlvbl9pbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLm1vZGVPY2N1cGF0aW9uSW47XG4gICAgICB0eXBlX2FpZGVfaW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMudHlwZUFpZGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gICAgICAgICAgIyMucmVzc291cmNlc01lbmFnZVNhbnNBcnJvbmRpSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLnNpdHVhdGlvbkZhbWlsaWFsZUluO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLnpvbmVJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luIyMucmVzaWRlbmNlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBsb3llclByaW5jaXBhbEluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW46XG4gICAgICBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUNhbGN1bEFwbEluOlxuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGxvZ2VtZW50RXN0Q2hhbWJyZUluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhZ2Vlc091SGFuZGljYXBBZHVsdGVzSGViZXJnZWVzT25lcmV1eFBhcnRpY3VsaWVyc0luOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZUFpZGVJbjogdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29sb2NhdGlvbkluOiBib29sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBsb2dlbWVudE1ldWJsZUQ4NDIySW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGNoYW5nZW1lbnRMb2dlbWVudEQ4NDI0SW46XG4gICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50TG9jYXRpZkluLnQpXG4gICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGxveWVyUHJpbmNpcGFsSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5sb3llcl9wcmluY2lwYWxfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW5cbiAgICAgIHZhbCBiZW5lZmljaWFpcmVBaWRlQWR1bHRlT3VFbmZhbnRIYW5kaWNhcGVzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uYmVuZWZpY2lhaXJlX2FpZGVfYWR1bHRlX291X2VuZmFudF9oYW5kaWNhcGVzX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLnpvbmVfaW5cbiAgICAgIHZhbCBsb2dlbWVudEVzdENoYW1icmVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5sb2dlbWVudF9lc3RfY2hhbWJyZV9pblxuICAgICAgdmFsIGFnZWVzT3VIYW5kaWNhcEFkdWx0ZXNIZWJlcmdlZXNPbmVyZXV4UGFydGljdWxpZXJzSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4uYWdlZXNfb3VfaGFuZGljYXBfYWR1bHRlc19oZWJlcmdlZXNfb25lcmV1eF9wYXJ0aWN1bGllcnNfaW5cbiAgICAgIHZhbCB0eXBlQWlkZUluID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4udHlwZV9haWRlX2luXG4gICAgICB2YWwgY29sb2NhdGlvbkluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmNvbG9jYXRpb25faW5cbiAgICAgIHZhbCByZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLnJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luXG4gICAgICB2YWwgbG9nZW1lbnRNZXVibGVEODQyMkluID1cbiAgICAgICAgSnMuYm9vbCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luLmxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4ucmVzaWRlbmNlX2luXG4gICAgICB2YWwgY2hhbmdlbWVudExvZ2VtZW50RDg0MjRJbiA9XG4gICAgICAgIGNoYW5nZW1lbnRfbG9nZW1lbnRfZDg0Ml80X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbi5jaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9pblxuICAgICAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRMb2NhdGlmSW4udCA9XG4gICAge1xuICAgICAgbG95ZXJfcHJpbmNpcGFsX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5sb3llclByaW5jaXBhbEluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5yZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW47XG4gICAgICBiZW5lZmljaWFpcmVfYWlkZV9hZHVsdGVfb3VfZW5mYW50X2hhbmRpY2FwZXNfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pblxuICAgICAgICAgICMjLmJlbmVmaWNpYWlyZUFpZGVBZHVsdGVPdUVuZmFudEhhbmRpY2FwZXNJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW47XG4gICAgICB6b25lX2luID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy56b25lSW47XG4gICAgICBsb2dlbWVudF9lc3RfY2hhbWJyZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIyMubG9nZW1lbnRFc3RDaGFtYnJlSW47XG4gICAgICBhZ2Vlc19vdV9oYW5kaWNhcF9hZHVsdGVzX2hlYmVyZ2Vlc19vbmVyZXV4X3BhcnRpY3VsaWVyc19pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luXG4gICAgICAgICAgIyMuYWdlZXNPdUhhbmRpY2FwQWR1bHRlc0hlYmVyZ2Vlc09uZXJldXhQYXJ0aWN1bGllcnNJbjtcbiAgICAgIHR5cGVfYWlkZV9pbiA9XG4gICAgICAgIHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy50eXBlQWlkZUluO1xuICAgICAgY29sb2NhdGlvbl9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmNvbG9jYXRpb25JbjtcbiAgICAgIHJlZHVjdGlvbl9sb3llcl9zb2xpZGFyaXRlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4jIy5yZWR1Y3Rpb25Mb3llclNvbGlkYXJpdGVJbjtcbiAgICAgIGxvZ2VtZW50X21ldWJsZV9kODQyXzJfaW4gPVxuICAgICAgICBKcy50b19ib29sXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmxvZ2VtZW50TWV1YmxlRDg0MjJJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgY2hhbmdlbWVudF9sb2dlbWVudF9kODQyXzRfaW4gPVxuICAgICAgICBjaGFuZ2VtZW50X2xvZ2VtZW50X2Q4NDJfNF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiMjLmNoYW5nZW1lbnRMb2dlbWVudEQ4NDI0SW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzQmFzZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIG5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjogaW50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW46XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgem9uZUluOiB6b25lX2RfaGFiaXRhdGlvbiBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcmVzaWRlbmNlSW46IGNvbGxlY3Rpdml0ZSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbWVuc3VhbGl0ZVByaW5jaXBhbGVJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25SODIyMTExMzE3SW46IGJvb2wgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVTaWduYXR1cmVQcmV0SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgdHlwZVRyYXZhdXhMb2dlbWVudEluOlxuICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNSBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUVudHJlZUxvZ2VtZW50SW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY2hhcmdlc01lbnN1ZWxsZXNQcmV0SW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgY29wcm9wcmlldGVJbjogYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgb3BlcmF0aW9uc0xvZ2VtZW50RXZvbHV0aWZzU29jaWF1eEFjY2Vzc2lvblByb3ByaWV0ZUFpZGVlRXRhdEluOlxuICAgICAgYm9vbCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX3RvX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udClcbiAgICA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgcmVzc291cmNlc01lbmFnZUFycm9uZGllc0Jhc2VJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnJlc3NvdXJjZXNfbWVuYWdlX2Fycm9uZGllc19iYXNlX2luXG4gICAgICB2YWwgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluID1cbiAgICAgICAgaW50ZWdlcl90b19pbnQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLnpvbmVfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ucmVzaWRlbmNlX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgbWVuc3VhbGl0ZVByaW5jaXBhbGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLm1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pblxuICAgICAgdmFsIHNpdHVhdGlvblI4MjIxMTEzMTdJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5zaXR1YXRpb25fcjgyMl8xMV8xM18xN19pblxuICAgICAgdmFsIGRhdGVTaWduYXR1cmVQcmV0SW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5kYXRlX3NpZ25hdHVyZV9wcmV0X2luXG4gICAgICB2YWwgdHlwZVRyYXZhdXhMb2dlbWVudEluID1cbiAgICAgICAgdHlwZV90cmF2YXV4X2xvZ2VtZW50X3I4NDJfNV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4udHlwZV90cmF2YXV4X2xvZ2VtZW50X2luXG4gICAgICB2YWwgbG9jYWxIYWJpdGVQcmVtaWVyZUZvaXNCZW5lZmljaWFpcmVJbiA9XG4gICAgICAgIEpzLmJvb2wgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5sb2NhbF9oYWJpdGVfcHJlbWllcmVfZm9pc19iZW5lZmljaWFpcmVfaW5cbiAgICAgIHZhbCBkYXRlRW50cmVlTG9nZW1lbnRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luLmRhdGVfZW50cmVlX2xvZ2VtZW50X2luXG4gICAgICB2YWwgY2hhcmdlc01lbnN1ZWxsZXNQcmV0SW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbi5jaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pblxuICAgICAgdmFsIGNvcHJvcHJpZXRlSW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4uY29wcm9wcmlldGVfaW5cbiAgICAgIHZhbCBvcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0SW4gPVxuICAgICAgICBKcy5ib29sIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4ub3BlcmF0aW9uc19sb2dlbWVudF9ldm9sdXRpZnNfc29jaWF1eF9hY2Nlc3Npb25fcHJvcHJpZXRlX2FpZGVlX0V0YXRfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbl9vZl9qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50QWNjZXNzaW9uUHJvcHJpZXRlSW4udCA9XG4gICAge1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2Jhc2VfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNCYXNlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMubm9tYnJlUGVyc29ubmVzQUNoYXJnZUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYXBsX2luID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9jYWxjdWxfYV9wX2xfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiMjLnpvbmVJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiMjLnJlc2lkZW5jZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIG1lbnN1YWxpdGVfcHJpbmNpcGFsZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMubWVuc3VhbGl0ZVByaW5jaXBhbGVJbjtcbiAgICAgIHNpdHVhdGlvbl9yODIyXzExXzEzXzE3X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5zaXR1YXRpb25SODIyMTExMzE3SW47XG4gICAgICBkYXRlX3NpZ25hdHVyZV9wcmV0X2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICAgICAgICAgICMjLmRhdGVTaWduYXR1cmVQcmV0SW47XG4gICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfaW4gPVxuICAgICAgICB0eXBlX3RyYXZhdXhfbG9nZW1lbnRfcjg0Ml81X29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMudHlwZVRyYXZhdXhMb2dlbWVudEluO1xuICAgICAgbG9jYWxfaGFiaXRlX3ByZW1pZXJlX2ZvaXNfYmVuZWZpY2lhaXJlX2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5sb2NhbEhhYml0ZVByZW1pZXJlRm9pc0JlbmVmaWNpYWlyZUluO1xuICAgICAgZGF0ZV9lbnRyZWVfbG9nZW1lbnRfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuZGF0ZUVudHJlZUxvZ2VtZW50SW47XG4gICAgICBjaGFyZ2VzX21lbnN1ZWxsZXNfcHJldF9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luXG4gICAgICAgICAgIyMuY2hhcmdlc01lbnN1ZWxsZXNQcmV0SW47XG4gICAgICBjb3Byb3ByaWV0ZV9pbiA9XG4gICAgICAgIEpzLnRvX2Jvb2xcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIyMuY29wcm9wcmlldGVJbjtcbiAgICAgIG9wZXJhdGlvbnNfbG9nZW1lbnRfZXZvbHV0aWZzX3NvY2lhdXhfYWNjZXNzaW9uX3Byb3ByaWV0ZV9haWRlZV9FdGF0X2luID1cbiAgICAgICAgSnMudG9fYm9vbFxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgICAgICAgICAjIy5vcGVyYXRpb25zTG9nZW1lbnRFdm9sdXRpZnNTb2NpYXV4QWNjZXNzaW9uUHJvcHJpZXRlQWlkZWVFdGF0SW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgdHlwZUxvZ2VtZW50Rm95ZXJJbjogdHlwZV9sb2dlbWVudF9mb3llciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZWRldmFuY2VJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNzb3VyY2VzTWVuYWdlQXJyb25kaWVzSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2Qgbm9tYnJlUGVyc29ubmVzQUNoYXJnZUluOiBpbnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBzaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjpcbiAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FfcF9sIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCB6b25lSW46IHpvbmVfZF9oYWJpdGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBjYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyRDg0MjE2SW46XG4gICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbl90b19qc29vXG4gICAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIDogQ2FsY3VsQWxsb2NhdGlvbkxvZ2VtZW50Rm95ZXJJbi50KVxuICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgdHlwZUxvZ2VtZW50Rm95ZXJJbiA9XG4gICAgICAgIHR5cGVfbG9nZW1lbnRfZm95ZXJfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi50eXBlX2xvZ2VtZW50X2ZveWVyX2luXG4gICAgICB2YWwgZGF0ZUNvbnZlbnRpb25uZW1lbnRJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5kYXRlX2NvbnZlbnRpb25uZW1lbnRfaW5cbiAgICAgIHZhbCByZXNpZGVuY2VJbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnJlc2lkZW5jZV9pblxuICAgICAgdmFsIHJlZGV2YW5jZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnJlZGV2YW5jZV9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VBcnJvbmRpZXNJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5yZXNzb3VyY2VzX21lbmFnZV9hcnJvbmRpZXNfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgc2l0dWF0aW9uRmFtaWxpYWxlQ2FsY3VsQXBsSW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfY2FsY3VsX2FwbF9pblxuICAgICAgdmFsIHpvbmVJbiA9XG4gICAgICAgIHpvbmVfZF9oYWJpdGF0aW9uX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4uem9uZV9pblxuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBjYXRlZ29yaWVFcXVpdmFsZW5jZUxveWVyRDg0MjE2SW4gPVxuICAgICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luLmNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9kODQyXzE2X2luXG4gICAgICBlbmRcbiAgbGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luX29mX2pzb29cbiAgICAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW5cbiAgICAgIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gSnMudCkgOlxuICAgIENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVySW4udCA9XG4gICAge1xuICAgICAgdHlwZV9sb2dlbWVudF9mb3llcl9pbiA9XG4gICAgICAgIHR5cGVfbG9nZW1lbnRfZm95ZXJfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMudHlwZUxvZ2VtZW50Rm95ZXJJbjtcbiAgICAgIGRhdGVfY29udmVudGlvbm5lbWVudF9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMuZGF0ZUNvbnZlbnRpb25uZW1lbnRJbjtcbiAgICAgIHJlc2lkZW5jZV9pbiA9XG4gICAgICAgIGNvbGxlY3Rpdml0ZV9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5yZXNpZGVuY2VJbjtcbiAgICAgIHJlZGV2YW5jZV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pbiMjLnJlZGV2YW5jZUluO1xuICAgICAgcmVzc291cmNlc19tZW5hZ2VfYXJyb25kaWVzX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMucmVzc291cmNlc01lbmFnZUFycm9uZGllc0luO1xuICAgICAgbm9tYnJlX3BlcnNvbm5lc19hX2NoYXJnZV9pbiA9XG4gICAgICAgIGludGVnZXJfb2ZfaW50XG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5ub21icmVQZXJzb25uZXNBQ2hhcmdlSW47XG4gICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hcGxfaW4gPVxuICAgICAgICBzaXR1YXRpb25fZmFtaWxpYWxlX2NhbGN1bF9hX3BfbF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy5zaXR1YXRpb25GYW1pbGlhbGVDYWxjdWxBcGxJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4jIy56b25lSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICBjYXRlZ29yaWVfZXF1aXZhbGVuY2VfbG95ZXJfZDg0Ml8xNl9pbiA9XG4gICAgICAgIGNhdGVnb3JpZV9lcXVpdmFsZW5jZV9sb3llcl9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX29mX2pzb29cbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl9pblxuICAgICAgICAgICMjLmNhdGVnb3JpZUVxdWl2YWxlbmNlTG95ZXJEODQyMTZJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBtb2RlT2NjdXBhdGlvbkluOiBtb2RlX29jY3VwYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VTYW5zQXJyb25kaUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHNpdHVhdGlvbkZhbWlsaWFsZUluOiBzaXR1YXRpb25fZmFtaWxpYWxlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW46IGludCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHpvbmVJbjogem9uZV9kX2hhYml0YXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHR5cGVBaWRlSW46IHR5cGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fdG9fanNvbyAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5cbiAgICA6IENhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEluLnQpIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbW9kZU9jY3VwYXRpb25JbiA9XG4gICAgICAgIG1vZGVfb2NjdXBhdGlvbl90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLm1vZGVfb2NjdXBhdGlvbl9pblxuICAgICAgdmFsIHJlc3NvdXJjZXNNZW5hZ2VTYW5zQXJyb25kaUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pblxuICAgICAgdmFsIHNpdHVhdGlvbkZhbWlsaWFsZUluID1cbiAgICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV90b19qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luLnNpdHVhdGlvbl9mYW1pbGlhbGVfaW5cbiAgICAgIHZhbCBub21icmVQZXJzb25uZXNBQ2hhcmdlSW4gPVxuICAgICAgICBpbnRlZ2VyX3RvX2ludCBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5ub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luXG4gICAgICB2YWwgem9uZUluID1cbiAgICAgICAgem9uZV9kX2hhYml0YXRpb25fdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi56b25lX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHR5cGVBaWRlSW4gPVxuICAgICAgICB0eXBlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4udHlwZV9haWRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbi5yZXNpZGVuY2VfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiA6IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBDYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtb2RlX29jY3VwYXRpb25faW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMubW9kZU9jY3VwYXRpb25JbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX3NhbnNfYXJyb25kaV9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLnJlc3NvdXJjZXNNZW5hZ2VTYW5zQXJyb25kaUluO1xuICAgICAgc2l0dWF0aW9uX2ZhbWlsaWFsZV9pbiA9XG4gICAgICAgIHNpdHVhdGlvbl9mYW1pbGlhbGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuc2l0dWF0aW9uRmFtaWxpYWxlSW47XG4gICAgICBub21icmVfcGVyc29ubmVzX2FfY2hhcmdlX2luID1cbiAgICAgICAgaW50ZWdlcl9vZl9pbnRcbiAgICAgICAgICBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLm5vbWJyZVBlcnNvbm5lc0FDaGFyZ2VJbjtcbiAgICAgIHpvbmVfaW4gPVxuICAgICAgICB6b25lX2RfaGFiaXRhdGlvbl9vZl9qc29vIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIyMuem9uZUluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgdHlwZV9haWRlX2luID1cbiAgICAgICAgdHlwZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy50eXBlQWlkZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb28gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4jIy5yZXNpZGVuY2VJblxuICAgIH1cblxuY2xhc3MgdHlwZSBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luID1cbiAgb2JqZWN0IG1ldGhvZCBkYXRlTmFpc3NhbmNlQXNzdXJlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX3RvX2pzb28gKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW5cbiAgICA6IE91dmVydHVyZURyb2l0c1JldHJhaXRlSW4udCkgOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVOYWlzc2FuY2VBc3N1cmVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luLmRhdGVfbmFpc3NhbmNlX2Fzc3VyZV9pblxuICAgICAgZW5kXG4gIGxldCBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX29mX2pzb29cbiAgICAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiA6IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gSnMudCkgOlxuICAgIE91dmVydHVyZURyb2l0c1JldHJhaXRlSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfYXNzdXJlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4jIy5kYXRlTmFpc3NhbmNlQXNzdXJlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgbW9kZU9jY3VwYXRpb25JbjogbW9kZV9vY2N1cGF0aW9uIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhaWRlVmVyc2VlSW46IHZlcnNlbWVudF9hIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBtb250YW50QXBsSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9udGFudENoYXJnZXNJbjogSnMubnVtYmVyIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkZXBlbnNlTG9nZW1lbnRJbjogZGVwZW5zZV9sb2dlbWVudCBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgbW9udGFudERldHRlSW46IEpzLm51bWJlciBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgZW5kXG4gIGxldCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbl90b19qc29vIChpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pblxuICAgIDogSW1wYXllRGVwZW5zZUxvZ2VtZW50SW4udCkgOiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBtb2RlT2NjdXBhdGlvbkluID1cbiAgICAgICAgbW9kZV9vY2N1cGF0aW9uX3RvX2pzb28gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4ubW9kZV9vY2N1cGF0aW9uX2luXG4gICAgICB2YWwgYWlkZVZlcnNlZUluID1cbiAgICAgICAgdmVyc2VtZW50X2FfdG9fanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5haWRlX3ZlcnNlZV9pblxuICAgICAgdmFsIG1vbnRhbnRBcGxJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbi5tb250YW50X2FwbF9pblxuICAgICAgdmFsIG1vbnRhbnRDaGFyZ2VzSW4gPVxuICAgICAgICBKcy5udW1iZXJfb2ZfZmxvYXQgQEAgbW9uZXlfdG9fZmxvYXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4ubW9udGFudF9jaGFyZ2VzX2luXG4gICAgICB2YWwgZGVwZW5zZUxvZ2VtZW50SW4gPVxuICAgICAgICBkZXBlbnNlX2xvZ2VtZW50X3RvX2pzb28gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4uZGVwZW5zZV9sb2dlbWVudF9pblxuICAgICAgdmFsIG1vbnRhbnREZXR0ZUluID1cbiAgICAgICAgSnMubnVtYmVyX29mX2Zsb2F0IEBAIG1vbmV5X3RvX2Zsb2F0IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luLm1vbnRhbnRfZGV0dGVfaW5cbiAgICAgIGVuZFxuICBsZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICAgIChpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiA6IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBJbXBheWVEZXBlbnNlTG9nZW1lbnRJbi50ID1cbiAgICB7XG4gICAgICBtb2RlX29jY3VwYXRpb25faW4gPVxuICAgICAgICBtb2RlX29jY3VwYXRpb25fb2ZfanNvbyBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLm1vZGVPY2N1cGF0aW9uSW47XG4gICAgICBhaWRlX3ZlcnNlZV9pbiA9XG4gICAgICAgIHZlcnNlbWVudF9hX29mX2pzb28gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4jIy5haWRlVmVyc2VlSW47XG4gICAgICBtb250YW50X2FwbF9pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLm1vbnRhbnRBcGxJbjtcbiAgICAgIG1vbnRhbnRfY2hhcmdlc19pbiA9XG4gICAgICAgIG1vbmV5X29mX2RlY2ltYWwgQEAgZGVjaW1hbF9vZl9mbG9hdCBAQCBKcy5mbG9hdF9vZl9udW1iZXJcbiAgICAgICAgICBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiMjLm1vbnRhbnRDaGFyZ2VzSW47XG4gICAgICBkZXBlbnNlX2xvZ2VtZW50X2luID1cbiAgICAgICAgZGVwZW5zZV9sb2dlbWVudF9vZl9qc29vXG4gICAgICAgICAgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4jIy5kZXBlbnNlTG9nZW1lbnRJbjtcbiAgICAgIG1vbnRhbnRfZGV0dGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4jIy5tb250YW50RGV0dGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1lbmFnZUluOiBtZW5hZ2UgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1ckluOiBkZW1hbmRldXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbl90b19qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gOiBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4udClcbiAgICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbWVuYWdlSW4gPSBtZW5hZ2VfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLm1lbmFnZV9pblxuICAgICAgdmFsIGRlbWFuZGV1ckluID1cbiAgICAgICAgZGVtYW5kZXVyX3RvX2pzb28gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlUHJpc2VzRW5Db21wdGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbl9vZl9qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIEpzLnQpIDpcbiAgICBDYWxjdWxldHRlQWlkZXNBdUxvZ2VtZW50SW4udCA9XG4gICAge1xuICAgICAgbWVuYWdlX2luID0gbWVuYWdlX29mX2pzb28gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiMjLm1lbmFnZUluO1xuICAgICAgZGVtYW5kZXVyX2luID1cbiAgICAgICAgZGVtYW5kZXVyX29mX2pzb28gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIyMuZGF0ZUNvdXJhbnRlSW47XG4gICAgICByZXNzb3VyY2VzX21lbmFnZV9wcmlzZXNfZW5fY29tcHRlX2luID1cbiAgICAgICAgbW9uZXlfb2ZfZGVjaW1hbCBAQCBkZWNpbWFsX29mX2Zsb2F0IEBAIEpzLmZsb2F0X29mX251bWJlclxuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4jIy5yZXNzb3VyY2VzTWVuYWdlUHJpc2VzRW5Db21wdGVJblxuICAgIH1cblxuY2xhc3MgdHlwZSBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIG1lbmFnZUluOiBtZW5hZ2UgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRlbWFuZGV1ckluOiBkZW1hbmRldXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluOiBKcy5udW1iZXIgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbl90b19qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW5cbiAgICA6IENhbGN1bGV0dGVBaWRlc0F1TG9nZW1lbnRHYXJkZUFsdGVybmVlSW4udClcbiAgICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgbWVuYWdlSW4gPVxuICAgICAgICBtZW5hZ2VfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLm1lbmFnZV9pblxuICAgICAgdmFsIGRlbWFuZGV1ckluID1cbiAgICAgICAgZGVtYW5kZXVyX3RvX2pzb28gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbi5kZW1hbmRldXJfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCByZXNzb3VyY2VzTWVuYWdlUHJpc2VzRW5Db21wdGVJbiA9XG4gICAgICAgIEpzLm51bWJlcl9vZl9mbG9hdCBAQCBtb25leV90b19mbG9hdCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luLnJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW5cbiAgICAgIGVuZFxuICBsZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbl9vZl9qc29vXG4gICAgKGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW5cbiAgICAgIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiBKcy50KSA6XG4gICAgQ2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWVJbi50ID1cbiAgICB7XG4gICAgICBtZW5hZ2VfaW4gPVxuICAgICAgICBtZW5hZ2Vfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4jIy5tZW5hZ2VJbjtcbiAgICAgIGRlbWFuZGV1cl9pbiA9XG4gICAgICAgIGRlbWFuZGV1cl9vZl9qc29vXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiMjLmRlbWFuZGV1ckluO1xuICAgICAgZGF0ZV9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGRhdGVfb2ZfanNvb1xuICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW4jIy5kYXRlQ291cmFudGVJbjtcbiAgICAgIHJlc3NvdXJjZXNfbWVuYWdlX3ByaXNlc19lbl9jb21wdGVfaW4gPVxuICAgICAgICBtb25leV9vZl9kZWNpbWFsIEBAIGRlY2ltYWxfb2ZfZmxvYXQgQEAgSnMuZmxvYXRfb2ZfbnVtYmVyXG4gICAgICAgICAgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pblxuICAgICAgICAgICMjLnJlc3NvdXJjZXNNZW5hZ2VQcmlzZXNFbkNvbXB0ZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3QgbWV0aG9kIGRhdGVDb3VyYW50ZUluOiBKcy5qc19zdHJpbmcgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl90b19qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICA6IEJhc2VNZW5zdWVsbGVBbGxvY2F0aW9uc0ZhbWlsaWFsZXNJbi50KVxuICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIGVuZFxuICBsZXQgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gICAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgICAgIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KSA6XG4gICAgQmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIyMuZGF0ZUNvdXJhbnRlSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbm5lZXNJbjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luX3RvX2pzb29cbiAgICAodmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luXG4gICAgOiBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udClcbiAgICA6IHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiBKcy50ID1cbiAgICBvYmplY3QlanNcbiAgICAgIHZhbCBkYXRlTmFpc3NhbmNlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmRhdGVfbmFpc3NhbmNlX2luXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPVxuICAgICAgICBkYXRlX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBhbm5lZXNJbiA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luLmFubmVlc19pblxuICAgICAgZW5kXG4gIGxldCB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fb2ZfanNvb1xuICAgICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5cbiAgICAgIDogdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX2luIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VJbmZlcmlldXJPdUVnYWxBSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb29cbiAgICAgICAgICB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4jIy5kYXRlTmFpc3NhbmNlSW47XG4gICAgICBkYXRlX2NvdXJhbnRlX2luID1cbiAgICAgICAgZGF0ZV9vZl9qc29vIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgYW5uZWVzX2luID1cbiAgICAgICAgZHVyYXRpb25fb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4jIy5hbm5lZXNJblxuICAgIH1cblxuY2xhc3MgdHlwZSB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luID1cbiAgb2JqZWN0XG4gICAgbWV0aG9kIGRhdGVOYWlzc2FuY2VJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCBhbm5lZXNJbjogUnVudGltZV9qc29vLlJ1bnRpbWUuZHVyYXRpb24gSnMudCBKcy5yZWFkb25seV9wcm9wXG4gIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl90b19qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gOiBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udClcbiAgICA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZU5haXNzYW5jZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4uZGF0ZV9uYWlzc2FuY2VfaW5cbiAgICAgIHZhbCBkYXRlQ291cmFudGVJbiA9XG4gICAgICAgIGRhdGVfdG9fanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luLmRhdGVfY291cmFudGVfaW5cbiAgICAgIHZhbCBhbm5lZXNJbiA9XG4gICAgICAgIGR1cmF0aW9uX3RvX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbi5hbm5lZXNfaW5cbiAgICAgIGVuZFxuICBsZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbl9vZl9qc29vXG4gICAgKHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQpIDpcbiAgICBWZXJpZmljYXRpb25BZ2VTdXBlcmlldXJBSW4udCA9XG4gICAge1xuICAgICAgZGF0ZV9uYWlzc2FuY2VfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiMjLmRhdGVOYWlzc2FuY2VJbjtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgYW5uZWVzX2luID0gZHVyYXRpb25fb2ZfanNvbyB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIyMuYW5uZWVzSW5cbiAgICB9XG5cbmNsYXNzIHR5cGUgc21pY19pbiA9XG4gIG9iamVjdFxuICAgIG1ldGhvZCBkYXRlQ291cmFudGVJbjogSnMuanNfc3RyaW5nIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICAgIG1ldGhvZCByZXNpZGVuY2VJbjogY29sbGVjdGl2aXRlIEpzLnQgSnMucmVhZG9ubHlfcHJvcFxuICBlbmRcbiAgbGV0IHNtaWNfaW5fdG9fanNvbyAoc21pY19pbiA6IFNtaWNJbi50KSA6IHNtaWNfaW4gSnMudCA9XG4gICAgb2JqZWN0JWpzXG4gICAgICB2YWwgZGF0ZUNvdXJhbnRlSW4gPSBkYXRlX3RvX2pzb28gc21pY19pbi5kYXRlX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPSBjb2xsZWN0aXZpdGVfdG9fanNvbyBzbWljX2luLnJlc2lkZW5jZV9pblxuICAgICAgZW5kXG4gIGxldCBzbWljX2luX29mX2pzb28gKHNtaWNfaW4gOiBzbWljX2luIEpzLnQpIDogU21pY0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPSBkYXRlX29mX2pzb28gc21pY19pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcmVzaWRlbmNlX2luID0gY29sbGVjdGl2aXRlX29mX2pzb28gc21pY19pbiMjLnJlc2lkZW5jZUluXG4gICAgfVxuXG5jbGFzcyB0eXBlIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4gPVxuICBvYmplY3RcbiAgICBtZXRob2QgZGF0ZUNvdXJhbnRlSW46IEpzLmpzX3N0cmluZyBKcy50IEpzLnJlYWRvbmx5X3Byb3BcbiAgICBtZXRob2QgcHJlc3RhdGlvbkNvdXJhbnRlSW46XG4gICAgICBlbGVtZW50X3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIHJlc2lkZW5jZUluOiBjb2xsZWN0aXZpdGUgSnMudCBKcy5yZWFkb25seV9wcm9wXG4gICAgbWV0aG9kIGFnZUw1MTIzMkluOlxuICAgICAgKHVuaXQsICB1bml0IC0+IFJ1bnRpbWVfanNvby5SdW50aW1lLmR1cmF0aW9uIEpzLnQpIEpzLm1ldGhfY2FsbGJhY2sgSnMubWV0aFxuICBlbmRcbiAgbGV0IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5fdG9fanNvb1xuICAgIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luXG4gICAgOiBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQpXG4gICAgOiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgPVxuICAgIG9iamVjdCVqc1xuICAgICAgdmFsIGRhdGVDb3VyYW50ZUluID1cbiAgICAgICAgZGF0ZV90b19qc29vIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uZGF0ZV9jb3VyYW50ZV9pblxuICAgICAgdmFsIHByZXN0YXRpb25Db3VyYW50ZUluID1cbiAgICAgICAgZWxlbWVudF9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX3RvX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbi5wcmVzdGF0aW9uX2NvdXJhbnRlX2luXG4gICAgICB2YWwgcmVzaWRlbmNlSW4gPVxuICAgICAgICBjb2xsZWN0aXZpdGVfdG9fanNvbyBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luLnJlc2lkZW5jZV9pblxuICAgICAgbWV0aG9kIGFnZUw1MTIzMkluID0gSnMud3JhcF9tZXRoX2NhbGxiYWNrXG4gICAgICAgIChcbiAgICAgICAgICBmdW4gXyAoZnVuY3Rpb25faW5wdXQwOiB1bml0KSAtPlxuICAgICAgICAgIGR1cmF0aW9uX3RvX2pzb28gKGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW4uYWdlX2w1MTJfM18yX2luIFxuICAgICAgICAgIChcbiAgICAgICAgICAgIGZ1bmN0aW9uX2lucHV0MCkpKVxuICAgICAgZW5kXG4gIGxldCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgICAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgOiBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpIDpcbiAgICBFbGlnaWJpbGl0ZVByZXN0YXRpb25zRmFtaWxpYWxlc0luLnQgPVxuICAgIHtcbiAgICAgIGRhdGVfY291cmFudGVfaW4gPVxuICAgICAgICBkYXRlX29mX2pzb28gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiMjLmRhdGVDb3VyYW50ZUluO1xuICAgICAgcHJlc3RhdGlvbl9jb3VyYW50ZV9pbiA9XG4gICAgICAgIGVsZW1lbnRfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19vZl9qc29vXG4gICAgICAgICAgZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiMjLnByZXN0YXRpb25Db3VyYW50ZUluO1xuICAgICAgcmVzaWRlbmNlX2luID1cbiAgICAgICAgY29sbGVjdGl2aXRlX29mX2pzb29cbiAgICAgICAgICBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIyMucmVzaWRlbmNlSW47XG4gICAgICBhZ2VfbDUxMl8zXzJfaW4gPSBmYWlsd2l0aCBcIlRoZSBmdW5jdGlvbiAnYWdlX2w1MTJfM18yX2luJyB0cmFuc2xhdGlvbiBpc24ndCB5ZXQgc3VwcG9ydGVkLi4uXCJcbiAgICB9XG5cblxuXG5cbmxldCBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIChjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIDogY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCA9XG4gIGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5cbiAgfD4gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRcbiAgfD4gY29udHJpYnV0aW9uc19zb2NpYWxlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZVxuICAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIDogY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIEpzLnQpXG4gIDogY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIEpzLnQgPVxuICBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVfaW5cbiAgfD4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlXG4gIHw+IGNhbGN1bF9lcXVpdmFsZW5jZV9sb3llcl9taW5pbWFsZV90b19qc29vXG5cblxubGV0IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llclxuICAoY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luIEpzLnQpXG4gIDogY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyIEpzLnQgPVxuICBjYWxjdWxfbm9tYnJlX3BhcnRfbG9nZW1lbnRfZm95ZXJfaW5cbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gIHw+IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl90b19qc29vXG5cblxubGV0IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAoY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpXG4gIDogY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlIEpzLnQgPVxuICBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5cbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX25vbWJyZV9wYXJ0c19hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIHw+IGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZV90b19qc29vXG5cblxubGV0IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcbiAgKG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVfaW4gOiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luIEpzLnQpXG4gIDogb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZSBKcy50ID1cbiAgb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pblxuICB8PiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX2luX29mX2pzb29cbiAgfD4gb3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZVxuICB8PiBvdXZlcnR1cmVfZHJvaXRzX3JldHJhaXRlX3RvX2pzb29cblxuXG5sZXQgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRcbiAgKGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50X2luIDogaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW4gSnMudClcbiAgOiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudCBKcy50ID1cbiAgaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW5cbiAgfD4gaW1wYXllX2RlcGVuc2VfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICB8PiBpbXBheWVfZGVwZW5zZV9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbiAgKGJhc2VfbWVuc3VlbGxlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gOiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQpXG4gIDogYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50ID1cbiAgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luX29mX2pzb29cbiAgfD4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICB8PiBiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX3RvX2pzb29cblxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hXG4gICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudClcbiAgOiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCA9XG4gIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYV9pblxuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW5fb2ZfanNvb1xuICB8PiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FcbiAgfD4gdmVyaWZpY2F0aW9uX2FnZV9pbmZlcmlldXJfb3VfZWdhbF9hX3RvX2pzb29cblxuXG5sZXQgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAodmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYV9pbiA6IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW4gSnMudClcbiAgOiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hIEpzLnQgPVxuICB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfaW5fb2ZfanNvb1xuICB8PiB2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hXG4gIHw+IHZlcmlmaWNhdGlvbl9hZ2Vfc3VwZXJpZXVyX2FfdG9fanNvb1xuXG5cbmxldCBzbWljIChzbWljX2luIDogc21pY19pbiBKcy50KVxuICA6IHNtaWMgSnMudCA9XG4gIHNtaWNfaW4gfD4gc21pY19pbl9vZl9qc29vIHw+IHNtaWMgfD4gc21pY190b19qc29vXG5cblxubGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZlxuICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQpXG4gIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIEpzLnQgPVxuICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZfaW5cbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfbG9jYXRpZl90b19qc29vXG5cblxubGV0IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJcbiAgKGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfZm95ZXJfaW4gOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQpXG4gIDogY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciBKcy50ID1cbiAgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llcl9pblxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlXG4gIChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCA9XG4gIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgfD4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cblxuXG5sZXQgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAocmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiA6IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudClcbiAgOiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luXG4gIHw+IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiByZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIHw+IHJlc3NvdXJjZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzXG4gIChlbGlnaWJpbGl0ZV9wcmVzdGF0aW9uc19mYW1pbGlhbGVzX2luIDogZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50KVxuICA6IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCA9XG4gIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNfaW5cbiAgfD4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbl9vZl9qc29vXG4gIHw+IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgfD4gZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc190b19qc29vXG5cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZcbiAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQpXG4gIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZiBKcy50ID1cbiAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZlxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9sb2NhdGlmX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJcbiAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llciBKcy50ID1cbiAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW5cbiAgfD4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXJfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llclxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9mb3llcl90b19qc29vXG5cblxubGV0IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luIEpzLnQpXG4gIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZSBKcy50ID1cbiAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pblxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX2luX29mX2pzb29cbiAgfD4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF9hY2Nlc3Npb25fcHJvcHJpZXRlX3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiA6IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gSnMudClcbiAgOiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50IEpzLnQgPVxuICBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2luXG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gIHw+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAoZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gOiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbiBKcy50KVxuICA6IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQgPVxuICBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pblxuICB8PiBlbGlnaWJpbGl0ZV9haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudF9pbl9vZl9qc29vXG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gIHw+IGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIDogY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudClcbiAgOiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50ID1cbiAgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5cbiAgfD4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudFxuICB8PiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudFxuICAoZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50IEpzLnQgPVxuICBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW5cbiAgfD4gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50X2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfcHJpbWVfZGVfZGVtZW5hZ2VtZW50XG4gIHw+IGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudF90b19qc29vXG5cblxubGV0IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgKGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gOiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luIEpzLnQpXG4gIDogZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50ID1cbiAgZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pblxuICB8PiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X2luX29mX2pzb29cbiAgfD4gZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudFxuICB8PiBlbGlnaWJpbGl0ZV9hbGxvY2F0aW9uX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50XG4gIChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gSnMudClcbiAgOiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCA9XG4gIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pblxuICB8PiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgfD4gZWxpZ2liaWxpdGVfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X3RvX2pzb29cblxuXG5sZXQgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudFxuICAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9pbiA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW4gSnMudClcbiAgOiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50IEpzLnQgPVxuICBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luXG4gIHw+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfaW5fb2ZfanNvb1xuICB8PiBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50XG4gIHw+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfdG9fanNvb1xuXG5cbmxldCBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlXG4gIChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIDogY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiBKcy50KVxuICA6IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgSnMudCA9XG4gIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW5cbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbl9vZl9qc29vXG4gIHw+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgfD4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV90b19qc29vXG5cblxubGV0IF8gPVxuICAgSnMuZXhwb3J0IFwiQWlkZXNMb2dlbWVudExpYlwiXG4gICAgKG9iamVjdCVqc1xuICAgICAgXG4gICAgICBtZXRob2QgY29udHJpYnV0aW9uc1NvY2lhbGVzQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50IDogKGNvbnRyaWJ1dGlvbnNfc29jaWFsZXNfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnRfaW4gSnMudCAtPiBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjb250cmlidXRpb25zX3NvY2lhbGVzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxFcXVpdmFsZW5jZUxveWVyTWluaW1hbGUgOiAoY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlX2luIEpzLnQgLT4gY2FsY3VsX2VxdWl2YWxlbmNlX2xveWVyX21pbmltYWxlIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfZXF1aXZhbGVuY2VfbG95ZXJfbWluaW1hbGVcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bE5vbWJyZVBhcnRMb2dlbWVudEZveWVyIDogKGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llcl9pbiBKcy50IC0+IGNhbGN1bF9ub21icmVfcGFydF9sb2dlbWVudF9mb3llciBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX25vbWJyZV9wYXJ0X2xvZ2VtZW50X2ZveWVyXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxOb21icmVQYXJ0c0FjY2Vzc2lvblByb3ByaWV0ZSA6IChjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudCAtPiBjYWxjdWxfbm9tYnJlX3BhcnRzX2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9ub21icmVfcGFydHNfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgXG4gICAgICBtZXRob2Qgb3V2ZXJ0dXJlRHJvaXRzUmV0cmFpdGUgOiAob3V2ZXJ0dXJlX2Ryb2l0c19yZXRyYWl0ZV9pbiBKcy50IC0+IG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIG91dmVydHVyZV9kcm9pdHNfcmV0cmFpdGVcbiAgICAgIFxuICAgICAgbWV0aG9kIGltcGF5ZURlcGVuc2VMb2dlbWVudCA6IChpbXBheWVfZGVwZW5zZV9sb2dlbWVudF9pbiBKcy50IC0+IGltcGF5ZV9kZXBlbnNlX2xvZ2VtZW50IEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBpbXBheWVfZGVwZW5zZV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgYmFzZU1lbnN1ZWxsZUFsbG9jYXRpb25zRmFtaWxpYWxlcyA6IChiYXNlX21lbnN1ZWxsZV9hbGxvY2F0aW9uc19mYW1pbGlhbGVzX2luIEpzLnQgLT4gYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlcyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgYmFzZV9tZW5zdWVsbGVfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgXG4gICAgICBtZXRob2QgdmVyaWZpY2F0aW9uQWdlSW5mZXJpZXVyT3VFZ2FsQSA6ICh2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2FfaW4gSnMudCAtPiB2ZXJpZmljYXRpb25fYWdlX2luZmVyaWV1cl9vdV9lZ2FsX2EgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIHZlcmlmaWNhdGlvbl9hZ2VfaW5mZXJpZXVyX291X2VnYWxfYVxuICAgICAgXG4gICAgICBtZXRob2QgdmVyaWZpY2F0aW9uQWdlU3VwZXJpZXVyQSA6ICh2ZXJpZmljYXRpb25fYWdlX3N1cGVyaWV1cl9hX2luIEpzLnQgLT4gdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYSBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgdmVyaWZpY2F0aW9uX2FnZV9zdXBlcmlldXJfYVxuICAgICAgXG4gICAgICBtZXRob2Qgc21pYyA6IChzbWljX2luIEpzLnQgLT4gc21pYyBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgc21pY1xuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudExvY2F0aWYgOiAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmX2luIEpzLnQgLT4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9sb2NhdGlmIEpzLnQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgSnMud3JhcF9jYWxsYmFjayBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnRGb3llciA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgLT4gY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llciBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9mb3llclxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudEFjY2Vzc2lvblByb3ByaWV0ZSA6IChjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVfaW4gSnMudCAtPiBjYWxjdWxfYWlkZV9wZXJzb25uYWxpc2VlX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrXG4gICAgICAgIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZVxuICAgICAgXG4gICAgICBtZXRob2QgcmVzc291cmNlc0FpZGVzUGVyc29ubmVsbGVMb2dlbWVudCA6IChyZXNzb3VyY2VzX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgLT4gcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgcmVzc291cmNlc19haWRlc19wZXJzb25uZWxsZV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVQcmVzdGF0aW9uc0ZhbWlsaWFsZXMgOiAoZWxpZ2liaWxpdGVfcHJlc3RhdGlvbnNfZmFtaWxpYWxlc19pbiBKcy50IC0+IGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXMgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVsaWdpYmlsaXRlX3ByZXN0YXRpb25zX2ZhbWlsaWFsZXNcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudExvY2F0aWYgOiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfbG9jYXRpZl9pbiBKcy50IC0+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWYgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2xvY2F0aWZcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFsbG9jYXRpb25Mb2dlbWVudEZveWVyIDogKGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyX2luIEpzLnQgLT4gY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfZm95ZXIgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2ZveWVyXG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnRBY2Nlc3Npb25Qcm9wcmlldGUgOiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfYWNjZXNzaW9uX3Byb3ByaWV0ZV9pbiBKcy50IC0+IGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9hbGxvY2F0aW9uX2xvZ2VtZW50X2FjY2Vzc2lvbl9wcm9wcmlldGVcbiAgICAgIFxuICAgICAgbWV0aG9kIGNhbGN1bEFpZGVQZXJzb25uYWxpc2VlTG9nZW1lbnQgOiAoY2FsY3VsX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudF9pbiBKcy50IC0+IGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bF9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGVsaWdpYmlsaXRlQWlkZXNQZXJzb25uZWxsZUxvZ2VtZW50IDogKGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50X2luIEpzLnQgLT4gZWxpZ2liaWxpdGVfYWlkZXNfcGVyc29ubmVsbGVfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVsaWdpYmlsaXRlX2FpZGVzX3BlcnNvbm5lbGxlX2xvZ2VtZW50XG4gICAgICBcbiAgICAgIG1ldGhvZCBjYWxjdWxBbGxvY2F0aW9uTG9nZW1lbnQgOiAoY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRfaW4gSnMudCAtPiBjYWxjdWxfYWxsb2NhdGlvbl9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGVsaWdpYmlsaXRlUHJpbWVEZURlbWVuYWdlbWVudCA6IChlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnRfaW4gSnMudCAtPiBlbGlnaWJpbGl0ZV9wcmltZV9kZV9kZW1lbmFnZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVsaWdpYmlsaXRlX3ByaW1lX2RlX2RlbWVuYWdlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgZWxpZ2liaWxpdGVBbGxvY2F0aW9uTG9nZW1lbnQgOiAoZWxpZ2liaWxpdGVfYWxsb2NhdGlvbl9sb2dlbWVudF9pbiBKcy50IC0+IGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVsaWdpYmlsaXRlX2FsbG9jYXRpb25fbG9nZW1lbnRcbiAgICAgIFxuICAgICAgbWV0aG9kIGVsaWdpYmlsaXRlQWlkZVBlcnNvbm5hbGlzZWVMb2dlbWVudCA6IChlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnRfaW4gSnMudCAtPiBlbGlnaWJpbGl0ZV9haWRlX3BlcnNvbm5hbGlzZWVfbG9nZW1lbnQgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGVsaWdpYmlsaXRlX2FpZGVfcGVyc29ubmFsaXNlZV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudCA6IChjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2luIEpzLnQgLT4gY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudCBKcy50KSBKcy5jYWxsYmFjayA9XG4gICAgICAgIEpzLndyYXBfY2FsbGJhY2sgY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudFxuICAgICAgXG4gICAgICBtZXRob2QgY2FsY3VsZXR0ZUFpZGVzQXVMb2dlbWVudEdhcmRlQWx0ZXJuZWUgOiAoY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZV9pbiBKcy50IC0+IGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWUgSnMudCkgSnMuY2FsbGJhY2sgPVxuICAgICAgICBKcy53cmFwX2NhbGxiYWNrIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVcbiAgICAgIFxuICAgIGVuZCkiLCIoKiBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgRnJlbmNoIGxhdyBsaWJyYXJ5LCBhIGNvbGxlY3Rpb24gb2YgZnVuY3Rpb25zIGZvclxuICAgY29tcHV0aW5nIEZyZW5jaCB0YXhlcyBhbmQgYmVuZWZpdHMgZGVyaXZlZCBmcm9tIENhdGFsYSBwcm9ncmFtcy4gQ29weXJpZ2h0XG4gICAoQykgMjAyMSBJbnJpYSwgY29udHJpYnV0b3I6IERlbmlzIE1lcmlnb3V4IDxkZW5pcy5tZXJpZ291eEBpbnJpYS5mcj4sIEVtaWxlXG4gICBSb2xsZXkgPGVtaWxlLnJvbGxleUB0dXRhLmlvPlxuXG4gICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpOyB5b3UgbWF5IG5vdFxuICAgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2ZcbiAgIHRoZSBMaWNlbnNlIGF0XG5cbiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsIFdJVEhPVVRcbiAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZVxuICAgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXJcbiAgIHRoZSBMaWNlbnNlLiAqKVxuXG5vcGVuIEpzX29mX29jYW1sXG5vcGVuIExhd19zb3VyY2Vcbm9wZW4gUnVudGltZV9qc29vLlJ1bnRpbWVcbm1vZHVsZSBBRiA9IEFsbG9jYXRpb25zX2ZhbWlsaWFsZXNcbm1vZHVsZSBBRl93ZWIgPSBBbGxvY2F0aW9uc19mYW1pbGlhbGVzX2FwaV93ZWJcbm1vZHVsZSBBTCA9IEFpZGVzX2xvZ2VtZW50XG5tb2R1bGUgQUxfd2ViID0gQWlkZXNfbG9nZW1lbnRfYXBpX3dlYlxuXG5sZXQgXyA9XG4gIEpzLmV4cG9ydF9hbGxcbiAgICAob2JqZWN0JWpzXG4gICAgICAgdmFsIGV2ZW50c01hbmFnZXIgPSBldmVudF9tYW5hZ2VyXG5cbiAgICAgICBtZXRob2QgY29tcHV0ZUFsbG9jYXRpb25zRmFtaWxpYWxlc1xuICAgICAgICAgICA6IChBRl93ZWIuaW50ZXJmYWNlX2FsbG9jYXRpb25zX2ZhbWlsaWFsZXNfaW4gLT4gZmxvYXQpIEpzLmNhbGxiYWNrID1cbiAgICAgICAgIEpzLndyYXBfY2FsbGJhY2sgKGZ1biBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pbiAtPlxuICAgICAgICAgICAgIGV4ZWN1dGVfb3JfdGhyb3dfZXJyb3IgKGZ1biAoKSAtPlxuICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID1cbiAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc19pblxuICAgICAgICAgICAgICAgICAgIHw+IEFGX3dlYi5pbnRlcmZhY2VfYWxsb2NhdGlvbnNfZmFtaWxpYWxlc1xuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICByZXN1bHQjIy5pTW9udGFudFZlcnNlKSlcblxuICAgICAgIG1ldGhvZCBjb21wdXRlQWlkZXNBdUxvZ2VtZW50XG4gICAgICAgICAgIDogKEFMX3dlYi5jYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIC0+IGZsb2F0KVxuICAgICAgICAgICAgIEpzLmNhbGxiYWNrID1cbiAgICAgICAgIEpzLndyYXBfY2FsbGJhY2sgKGZ1biBjYWxjdWxldHRlX2FpZGVzX2F1X2xvZ2VtZW50X2dhcmRlX2FsdGVybmVlX2luIC0+XG4gICAgICAgICAgICAgZXhlY3V0ZV9vcl90aHJvd19lcnJvciAoZnVuICgpIC0+XG4gICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPVxuICAgICAgICAgICAgICAgICAgIGNhbGN1bGV0dGVfYWlkZXNfYXVfbG9nZW1lbnRfZ2FyZGVfYWx0ZXJuZWVfaW5cbiAgICAgICAgICAgICAgICAgICB8PiBBTF93ZWIuY2FsY3VsZXR0ZV9haWRlc19hdV9sb2dlbWVudF9nYXJkZV9hbHRlcm5lZVxuICAgICAgICAgICAgICAgICBpblxuICAgICAgICAgICAgICAgICByZXN1bHQjIy5haWRlRmluYWxlKSlcbiAgICBlbmQpXG4iLCIoKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9DYW1sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICBYYXZpZXIgTGVyb3ksIHByb2pldCBDcmlzdGFsLCBJTlJJQSBSb2NxdWVuY291cnQgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIENvcHlyaWdodCAxOTk2IEluc3RpdHV0IE5hdGlvbmFsIGRlIFJlY2hlcmNoZSBlbiBJbmZvcm1hdGlxdWUgZXQgICAgICopXG4oKiAgICAgZW4gQXV0b21hdGlxdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuICBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mICAgICopXG4oKiAgIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyLjEsIHdpdGggdGhlICAgICAgICAgICopXG4oKiAgIHNwZWNpYWwgZXhjZXB0aW9uIG9uIGxpbmtpbmcgZGVzY3JpYmVkIGluIHRoZSBmaWxlIExJQ0VOU0UuICAgICAgICAgICopXG4oKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICopXG4oKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiopXG5cbigqIEVuc3VyZSB0aGF0IFthdF9leGl0XSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhdCB0aGUgZW5kIG9mIGV2ZXJ5IHByb2dyYW0gKilcblxubGV0IF8gPSBkb19hdF9leGl0KClcbiJdfQ== diff --git a/french_law/ocaml/law_source/aides_logement.ml b/french_law/ocaml/law_source/aides_logement.ml index b6d4e766..1841f63f 100644 --- a/french_law/ocaml/law_source/aides_logement.ml +++ b/french_law/ocaml/law_source/aides_logement.ml @@ -2511,7 +2511,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4046; start_column=14; end_line=4046; end_column=50; + start_line=4048; start_column=14; end_line=4048; end_column=50; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2568,8 +2568,8 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4097; start_column=5; - end_line=4097; end_column=26; + start_line=4099; start_column=5; + end_line=4099; end_column=26; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2627,7 +2627,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal (decimal_of_string "12."))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4059; start_column=14; end_line=4059; end_column=21; + start_line=4061; start_column=14; end_line=4061; end_column=21; law_headings=["Article D832-26"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2757,8 +2757,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4007; start_column=5; - end_line=4007; end_column=26; + start_line=4009; start_column=5; + end_line=4009; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2792,7 +2792,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_string "4.3"))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3913; start_column=14; end_line=3913; end_column=41; + start_line=3915; start_column=14; end_line=3915; end_column=41; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2860,8 +2860,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5522; start_column=5; - end_line=5529; end_column=28; + start_line=5558; start_column=5; + end_line=5565; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -2886,8 +2886,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (fun (_: unit) -> decimal_of_string "1."))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4024; start_column=5; - end_line=4024; end_column=26; + start_line=4026; start_column=5; + end_line=4026; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2908,7 +2908,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_string "0.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3928; start_column=14; end_line=3928; end_column=47; + start_line=3930; start_column=14; end_line=3930; end_column=47; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2948,7 +2948,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3933; start_column=14; end_line=3933; end_column=36; + start_line=3935; start_column=14; end_line=3935; end_column=36; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -2988,7 +2988,7 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3257; start_column=14; end_line=3257; end_column=36; + start_line=3259; start_column=14; end_line=3259; end_column=36; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -3040,15 +3040,15 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; end_line=1118; end_column=31; + start_line=1080; start_column=12; end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3071,8 +3071,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3095,8 +3095,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3124,8 +3124,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3150,8 +3150,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3176,8 +3176,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; - end_line=1118; end_column=31; + start_line=1080; start_column=12; + end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -3203,7 +3203,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1118; start_column=12; end_line=1118; end_column=31; + start_line=1080; start_column=12; end_line=1080; end_column=31; law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3222,13 +3222,13 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1134; start_column=11; end_line=1134; end_column=33; + start_line=1096; start_column=11; end_line=1096; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2342; start_column=14; end_line=2342; end_column=36; + start_line=2344; start_column=14; end_line=2344; end_column=36; law_headings=["Article R824-3"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3253,7 +3253,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1134; start_column=11; end_line=1134; end_column=33; + start_line=1096; start_column=11; end_line=1096; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3263,31 +3263,31 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1135; start_column=11; end_line=1135; end_column=33; + start_line=1097; start_column=11; end_line=1097; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1135; start_column=11; - end_line=1135; end_column=33; + start_line=1097; start_column=11; + end_line=1097; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1135; start_column=11; - end_line=1135; end_column=33; + start_line=1097; start_column=11; + end_line=1097; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2310; start_column=14; - end_line=2310; end_column=36; + start_line=2312; start_column=14; + end_line=2312; end_column=36; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3302,8 +3302,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> depense_logement_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2214; start_column=14; - end_line=2214; end_column=36; + start_line=2216; start_column=14; + end_line=2216; end_column=36; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3320,7 +3320,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1135; start_column=11; end_line=1135; end_column=33; + start_line=1097; start_column=11; end_line=1097; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3330,22 +3330,22 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1136; start_column=11; end_line=1136; end_column=33; + start_line=1098; start_column=11; end_line=1098; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1136; start_column=11; - end_line=1136; end_column=33; + start_line=1098; start_column=11; + end_line=1098; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2223; start_column=14; - end_line=2223; end_column=36; + start_line=2225; start_column=14; + end_line=2225; end_column=36; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3370,15 +3370,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1136; start_column=11; - end_line=1136; end_column=33; + start_line=1098; start_column=11; + end_line=1098; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2319; start_column=14; - end_line=2319; end_column=36; + start_line=2321; start_column=14; + end_line=2321; end_column=36; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3407,7 +3407,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1136; start_column=11; end_line=1136; end_column=33; + start_line=1098; start_column=11; end_line=1098; end_column=33; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3417,22 +3417,22 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; end_line=1133; end_column=43; + start_line=1095; start_column=11; end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; - end_line=1133; end_column=43; + start_line=1095; start_column=11; + end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2184; start_column=20; - end_line=2184; end_column=55; + start_line=2186; start_column=20; + end_line=2186; end_column=55; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3464,15 +3464,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; - end_line=1133; end_column=43; + start_line=1095; start_column=11; + end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2200; start_column=20; - end_line=2200; end_column=51; + start_line=2202; start_column=20; + end_line=2202; end_column=51; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3504,15 +3504,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; - end_line=1133; end_column=43; + start_line=1095; start_column=11; + end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2266; start_column=7; - end_line=2266; end_column=42; + start_line=2268; start_column=7; + end_line=2268; end_column=42; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3544,15 +3544,15 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; - end_line=1133; end_column=43; + start_line=1095; start_column=11; + end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2294; start_column=7; - end_line=2294; end_column=51; + start_line=2296; start_column=7; + end_line=2296; end_column=51; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3585,7 +3585,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1133; start_column=11; end_line=1133; end_column=43; + start_line=1095; start_column=11; end_line=1095; end_column=43; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -3594,31 +3594,31 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1138; start_column=12; end_line=1138; end_column=26; + start_line=1100; start_column=12; end_line=1100; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1138; start_column=12; - end_line=1138; end_column=26; + start_line=1100; start_column=12; + end_line=1100; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1138; start_column=12; - end_line=1138; end_column=26; + start_line=1100; start_column=12; + end_line=1100; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2242; start_column=14; - end_line=2242; end_column=28; + start_line=2244; start_column=14; + end_line=2244; end_column=28; law_headings=["Article R824-2"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3637,8 +3637,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn montant_dette_ else (money_of_cents_string "0")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2179; start_column=14; - end_line=2179; end_column=28; + start_line=2181; start_column=14; + end_line=2181; end_column=28; law_headings=["Article R824-1"; "Section 1 : Seuils de constitution d'un impayé"; "Chapitre IV : Impayés de dépenses de logement"; @@ -3659,7 +3659,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1138; start_column=12; end_line=1138; end_column=26; + start_line=1100; start_column=12; end_line=1100; end_column=26; law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -4361,7 +4361,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1887; start_column=14; end_line=1887; end_column=29; + start_line=1889; start_column=14; end_line=1889; end_column=29; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -4576,7 +4576,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4219; start_column=14; end_line=4219; end_column=29; + start_line=4257; start_column=14; end_line=4257; end_column=29; law_headings=["Article D842-2"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -4630,8 +4630,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4485; start_column=6; - end_line=4492; end_column=28; + start_line=4510; start_column=6; + end_line=4517; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -6640,9 +6640,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4422; + start_line=4440; start_column=5; - end_line=4430; end_column=15; + end_line=4448; end_column=15; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7251,8 +7251,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4366; start_column=6; - end_line=4373; end_column=28; + start_line=4377; start_column=6; + end_line=4384; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7671,8 +7671,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4336; start_column=5; - end_line=4344; end_column=34; + start_line=4340; start_column=5; + end_line=4348; end_column=34; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -7707,8 +7707,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4583; start_column=5; - end_line=4585; end_column=28; + start_line=4601; start_column=5; + end_line=4603; end_column=28; law_headings=["Article 47"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -9727,7 +9727,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1788; start_column=14; end_line=1788; end_column=28; + start_line=1790; start_column=14; end_line=1790; end_column=28; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -9775,8 +9775,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1837; start_column=5; - end_line=1837; end_column=50; + start_line=1839; start_column=5; + end_line=1839; end_column=50; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -9789,8 +9789,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (fun (_: unit) -> aide_finale_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1823; start_column=14; - end_line=1823; end_column=36; + start_line=1825; start_column=14; + end_line=1825; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10071,8 +10071,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1847; start_column=14; - end_line=1847; end_column=36; + start_line=1849; start_column=14; + end_line=1849; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10299,8 +10299,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1864; start_column=14; - end_line=1864; end_column=36; + start_line=1866; start_column=14; + end_line=1866; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10542,7 +10542,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1947; start_column=14; end_line=1947; end_column=42; + start_line=1949; start_column=14; end_line=1949; end_column=42; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10578,8 +10578,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1896; start_column=14; - end_line=1896; end_column=36; + start_line=1898; start_column=14; + end_line=1898; end_column=36; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10637,7 +10637,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1913; start_column=14; end_line=1913; end_column=39; + start_line=1915; start_column=14; end_line=1915; end_column=39; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10682,7 +10682,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1770; start_column=14; end_line=1770; end_column=33; + start_line=1772; start_column=14; end_line=1772; end_column=33; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10717,8 +10717,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1840; start_column=13; - end_line=1840; end_column=74; + start_line=1842; start_column=13; + end_line=1842; end_column=74; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10729,8 +10729,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Code de la construction et de l'habitation"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1840; start_column=13; - end_line=1840; end_column=74; + start_line=1842; start_column=13; + end_line=1842; end_column=74; law_headings=["Article D823-16"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -10916,8 +10916,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3847; start_column=14; - end_line=3847; end_column=35; + start_line=3849; start_column=14; + end_line=3849; end_column=35; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11429,7 +11429,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=55; + start_line=3943; start_column=14; end_line=3943; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11441,7 +11441,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=55; + start_line=3943; start_column=14; end_line=3943; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11454,7 +11454,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3941; start_column=14; end_line=3941; end_column=55; + start_line=3943; start_column=14; end_line=3943; end_column=55; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11469,7 +11469,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=59; + start_line=3939; start_column=14; end_line=3939; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11481,7 +11481,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=59; + start_line=3939; start_column=14; end_line=3939; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11494,7 +11494,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3937; start_column=14; end_line=3937; end_column=59; + start_line=3939; start_column=14; end_line=3939; end_column=59; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11510,7 +11510,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=64; + start_line=3941; start_column=14; end_line=3941; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11522,7 +11522,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=64; + start_line=3941; start_column=14; end_line=3941; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11535,7 +11535,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3939; start_column=14; end_line=3939; end_column=64; + start_line=3941; start_column=14; end_line=3941; end_column=64; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11550,7 +11550,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_nombre_parts.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3943; start_column=14; end_line=3943; end_column=43; + start_line=3945; start_column=14; end_line=3945; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11562,7 +11562,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3943; start_column=14; end_line=3943; end_column=43; + start_line=3945; start_column=14; end_line=3945; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11575,7 +11575,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3943; start_column=14; end_line=3943; end_column=43; + start_line=3945; start_column=14; end_line=3945; end_column=43; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11591,8 +11591,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5543; start_column=5; - end_line=5543; end_column=65; + start_line=5579; start_column=5; + end_line=5579; end_column=65; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -11602,8 +11602,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5545; start_column=5; - end_line=5545; end_column=45; + start_line=5581; start_column=5; + end_line=5581; end_column=45; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -11701,8 +11701,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3780; start_column=14; - end_line=3780; end_column=36; + start_line=3782; start_column=14; + end_line=3782; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11749,7 +11749,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3754; start_column=14; end_line=3754; end_column=40; + start_line=3756; start_column=14; end_line=3756; end_column=40; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11794,8 +11794,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3944; start_column=14; - end_line=3944; end_column=36; + start_line=3946; start_column=14; + end_line=3946; end_column=36; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11830,8 +11830,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4145; start_column=14; - end_line=4145; end_column=44; + start_line=4147; start_column=14; + end_line=4147; end_column=44; law_headings=["Article D832-27"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11894,7 +11894,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=75; + start_line=3772; start_column=14; end_line=3772; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11906,7 +11906,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=75; + start_line=3772; start_column=14; end_line=3772; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11919,7 +11919,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3770; start_column=14; end_line=3770; end_column=75; + start_line=3772; start_column=14; end_line=3772; end_column=75; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11935,7 +11935,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=69; + start_line=3770; start_column=14; end_line=3770; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11947,7 +11947,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=69; + start_line=3770; start_column=14; end_line=3770; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11960,7 +11960,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3768; start_column=14; end_line=3768; end_column=69; + start_line=3770; start_column=14; end_line=3770; end_column=69; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11976,7 +11976,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3772; start_column=14; end_line=3772; end_column=70; + start_line=3774; start_column=14; end_line=3774; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -11988,7 +11988,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3772; start_column=14; end_line=3772; end_column=70; + start_line=3774; start_column=14; end_line=3774; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12001,7 +12001,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3772; start_column=14; end_line=3772; end_column=70; + start_line=3774; start_column=14; end_line=3774; end_column=70; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12048,8 +12048,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3957; start_column=5; - end_line=3957; end_column=26; + start_line=3959; start_column=5; + end_line=3959; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12066,7 +12066,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement n_nombre_parts_d832_25_))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3862; start_column=14; end_line=3862; end_column=49; + start_line=3864; start_column=14; end_line=3864; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12113,8 +12113,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4149; start_column=14; - end_line=4149; end_column=55; + start_line=4151; start_column=14; + end_line=4151; end_column=55; law_headings=["Article D832-27"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12175,7 +12175,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3766; start_column=14; end_line=3766; end_column=40; + start_line=3768; start_column=14; end_line=3768; end_column=40; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12216,8 +12216,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3974; start_column=5; - end_line=3974; end_column=26; + start_line=3976; start_column=5; + end_line=3976; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12238,7 +12238,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3883; start_column=14; end_line=3883; end_column=49; + start_line=3885; start_column=14; end_line=3885; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12279,8 +12279,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3794; start_column=14; - end_line=3794; end_column=36; + start_line=3796; start_column=14; + end_line=3796; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12363,8 +12363,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3980; start_column=5; - end_line=3980; end_column=26; + start_line=3982; start_column=5; + end_line=3982; end_column=26; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12383,7 +12383,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement coefficient_prise_en_charge_d832_25_coeff_arrondi_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3886; start_column=14; end_line=3886; end_column=49; + start_line=3888; start_column=14; end_line=3888; end_column=49; law_headings=["Article D832-25"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12423,8 +12423,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3808; start_column=14; - end_line=3808; end_column=36; + start_line=3810; start_column=14; + end_line=3810; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12501,7 +12501,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3733; start_column=14; end_line=3733; end_column=33; + start_line=3735; start_column=14; end_line=3735; end_column=33; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12543,8 +12543,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3829; start_column=14; - end_line=3829; end_column=36; + start_line=3831; start_column=14; + end_line=3831; end_column=36; law_headings=["Article D832-24"; "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; "Section 3 : Logements-foyers"; @@ -12678,7 +12678,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=59; + start_line=3280; start_column=14; end_line=3280; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -12689,7 +12689,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=59; + start_line=3280; start_column=14; end_line=3280; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -12701,7 +12701,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3278; start_column=14; end_line=3278; end_column=59; + start_line=3280; start_column=14; end_line=3280; end_column=59; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -12716,7 +12716,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3280; start_column=14; end_line=3280; end_column=64; + start_line=3282; start_column=14; end_line=3282; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -12727,7 +12727,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3280; start_column=14; end_line=3280; end_column=64; + start_line=3282; start_column=14; end_line=3282; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -12739,7 +12739,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3280; start_column=14; end_line=3280; end_column=64; + start_line=3282; start_column=14; end_line=3282; end_column=64; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18701,7 +18701,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3276; start_column=14; end_line=3276; end_column=36; + start_line=3278; start_column=14; end_line=3278; end_column=36; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18741,8 +18741,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3592; start_column=5; - end_line=3592; end_column=28; + start_line=3594; start_column=5; + end_line=3594; end_column=28; law_headings=["Article D832-18"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18754,7 +18754,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (fun (_: unit) -> ressources_menage_arrondies_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3584; start_column=14; end_line=3584; end_column=44; + start_line=3586; start_column=14; end_line=3586; end_column=44; law_headings=["Article D832-18"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18794,8 +18794,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3127; start_column=14; - end_line=3127; end_column=36; + start_line=3129; start_column=14; + end_line=3129; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18853,8 +18853,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3528; start_column=5; - end_line=3528; end_column=40; + start_line=3530; start_column=5; + end_line=3530; end_column=40; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18871,8 +18871,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna allocation_mensuelle_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3539; start_column=14; - end_line=3539; end_column=44; + start_line=3541; start_column=14; + end_line=3541; end_column=44; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18921,8 +18921,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3363; start_column=5; - end_line=3363; end_column=44; + start_line=3365; start_column=5; + end_line=3365; end_column=44; law_headings=["Article D832-14"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -18966,7 +18966,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3343; start_column=14; end_line=3343; end_column=42; + start_line=3345; start_column=14; end_line=3345; end_column=42; law_headings=["Article D832-14"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19030,7 +19030,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=75; + start_line=3486; start_column=14; end_line=3486; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19041,7 +19041,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=75; + start_line=3486; start_column=14; end_line=3486; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19053,7 +19053,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3484; start_column=14; end_line=3484; end_column=75; + start_line=3486; start_column=14; end_line=3486; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19068,7 +19068,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3483; start_column=14; end_line=3483; end_column=69; + start_line=3485; start_column=14; end_line=3485; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19079,7 +19079,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3483; start_column=14; end_line=3483; end_column=69; + start_line=3485; start_column=14; end_line=3485; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19091,7 +19091,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3483; start_column=14; end_line=3483; end_column=69; + start_line=3485; start_column=14; end_line=3485; end_column=69; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19106,7 +19106,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3486; start_column=14; end_line=3486; end_column=70; + start_line=3488; start_column=14; end_line=3488; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19117,7 +19117,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3486; start_column=14; end_line=3486; end_column=70; + start_line=3488; start_column=14; end_line=3488; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19129,7 +19129,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3486; start_column=14; end_line=3486; end_column=70; + start_line=3488; start_column=14; end_line=3488; end_column=70; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19166,7 +19166,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3191; start_column=14; end_line=3191; end_column=49; + start_line=3193; start_column=14; end_line=3193; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19203,8 +19203,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3550; start_column=14; - end_line=3550; end_column=55; + start_line=3552; start_column=14; + end_line=3552; end_column=55; law_headings=["Article D832-17"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19374,8 +19374,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3423; start_column=5; - end_line=3435; end_column=77; + start_line=3425; start_column=5; + end_line=3437; end_column=77; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19445,8 +19445,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3478; start_column=5; - end_line=3478; end_column=75; + start_line=3480; start_column=5; + end_line=3480; end_column=75; law_headings=["Article D832-15"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19485,7 +19485,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3207; start_column=14; end_line=3207; end_column=49; + start_line=3209; start_column=14; end_line=3209; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19525,8 +19525,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3141; start_column=14; - end_line=3141; end_column=36; + start_line=3143; start_column=14; + end_line=3143; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19599,7 +19599,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3102; start_column=14; end_line=3102; end_column=33; + start_line=3104; start_column=14; end_line=3104; end_column=33; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19635,7 +19635,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3210; start_column=14; end_line=3210; end_column=49; + start_line=3212; start_column=14; end_line=3212; end_column=49; law_headings=["Article D832-11"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19674,8 +19674,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3155; start_column=14; - end_line=3155; end_column=36; + start_line=3157; start_column=14; + end_line=3157; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19751,7 +19751,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3082; start_column=14; end_line=3082; end_column=33; + start_line=3084; start_column=14; end_line=3084; end_column=33; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -19794,8 +19794,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3175; start_column=14; - end_line=3175; end_column=36; + start_line=3177; start_column=14; + end_line=3177; end_column=36; law_headings=["Article D832-10"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -20727,341 +20727,525 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.loyer_principal_base"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=48; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4207; start_column=14; end_line=4207; end_column=48; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=48; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> loyer_principal_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4207; start_column=14; end_line=4207; end_column=48; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> loyer_principal_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=880; start_column=14; end_line=880; end_column=48; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4207; start_column=14; end_line=4207; end_column=48; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=60; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4209; start_column=14; end_line=4209; end_column=60; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=60; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> ressources_menage_arrondies_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4209; start_column=14; end_line=4209; end_column=60; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=882; start_column=14; end_line=882; end_column=60; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4209; start_column=14; end_line=4209; end_column=60; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.bénéficiaire_aide_adulte_ou_enfant_handicapés"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=78; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4211; start_column=14; end_line=4211; end_column=78; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=78; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4211; start_column=14; end_line=4211; end_column=78; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> beneficiaire_aide_adulte_ou_enfant_handicapes_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=884; start_column=14; end_line=884; end_column=78; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4211; start_column=14; end_line=4211; end_column=78; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_date_courante_: date = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=887; start_column=14; end_line=887; end_column=46; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4214; start_column=14; end_line=4214; end_column=46; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=887; start_column=14; end_line=887; end_column=46; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> date_courante_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4214; start_column=14; end_line=4214; end_column=46; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=887; start_column=14; end_line=887; end_column=46; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4214; start_column=14; end_line=4214; end_column=46; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=889; start_column=14; end_line=889; end_column=58; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4216; start_column=14; end_line=4216; end_column=58; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=889; start_column=14; end_line=889; end_column=58; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> nombre_personnes_a_charge_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4216; start_column=14; end_line=4216; end_column=58; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=889; start_column=14; end_line=889; end_column=58; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4216; start_column=14; end_line=4216; end_column=58; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=14; end_line=891; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4218; start_column=14; end_line=4218; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=14; end_line=891; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> situation_familiale_calcul_apl_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4218; start_column=14; end_line=4218; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=891; start_column=14; end_line=891; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4218; start_column=14; end_line=4218; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=893; start_column=14; end_line=893; end_column=37; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4220; start_column=14; end_line=4220; end_column=37; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=893; start_column=14; end_line=893; end_column=37; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> zone_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4220; start_column=14; end_line=4220; end_column=37; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=893; start_column=14; end_line=893; end_column=37; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4220; start_column=14; end_line=4220; end_column=37; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_logement_est_chambre_: bool = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.logement_est_chambre"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=53; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4222; start_column=14; end_line=4222; end_column=53; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=53; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> logement_est_chambre_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4222; start_column=14; end_line=4222; end_column=53; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> logement_est_chambre_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=895; start_column=14; end_line=895; end_column=53; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4222; start_column=14; end_line=4222; end_column=53; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=898; start_column=5; end_line=899; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4225; start_column=5; end_line=4226; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=898; start_column=5; end_line=899; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4225; start_column=5; end_line=4226; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> agees_ou_handicap_adultes_hebergees_onereux_particuliers_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=898; start_column=5; end_line=899; end_column=63; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4225; start_column=5; end_line=4226; end_column=63; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.type_aide"] (embed_type_aides_personnelle_logement) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=902; start_column=14; end_line=902; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4229; start_column=14; end_line=4229; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=902; start_column=14; end_line=902; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> type_aide_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4229; start_column=14; end_line=4229; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> type_aide_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=902; start_column=14; end_line=902; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4229; start_column=14; end_line=4229; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_colocation_: bool = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.colocation"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=904; start_column=14; end_line=904; end_column=43; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4231; start_column=14; end_line=4231; end_column=43; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=904; start_column=14; end_line=904; end_column=43; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> colocation_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4231; start_column=14; end_line=4231; end_column=43; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> colocation_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=904; start_column=14; end_line=904; end_column=43; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4231; start_column=14; end_line=4231; end_column=43; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_reduction_loyer_solidarite_: money = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.réduction_loyer_solidarité"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=906; start_column=14; end_line=906; end_column=59; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4233; start_column=14; end_line=4233; end_column=59; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=906; start_column=14; end_line=906; end_column=59; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> reduction_loyer_solidarite_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4233; start_column=14; end_line=4233; end_column=59; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> reduction_loyer_solidarite_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=906; start_column=14; end_line=906; end_column=59; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4233; start_column=14; end_line=4233; end_column=59; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_logement_meuble_d842_2_: bool = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.logement_meublé_d842_2"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=908; start_column=14; end_line=908; end_column=55; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4235; start_column=14; end_line=4235; end_column=55; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=908; start_column=14; end_line=908; end_column=55; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> logement_meuble_d842_2_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4235; start_column=14; end_line=4235; end_column=55; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> logement_meuble_d842_2_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=908; start_column=14; end_line=908; end_column=55; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4235; start_column=14; end_line=4235; end_column=55; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_apl_locatif_dot_residence_: Collectivite.t = try ((log_variable_definition ["CalculAllocationLogementLocatif"; "calcul_apl_locatif.résidence"] (embed_collectivite) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=910; start_column=14; end_line=910; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4237; start_column=14; end_line=4237; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=910; start_column=14; end_line=910; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) - (fun (_: unit) -> residence_)))) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4237; start_column=14; end_line=4237; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> residence_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=910; start_column=14; end_line=910; end_column=42; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4237; start_column=14; end_line=4237; end_column=42; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAidePersonnaliseeLogementLocatif.t = (log_end_call ["CalculAllocationLogementLocatif"; "calcul_apl_locatif"; "CalculAidePersonnaliséeLogementLocatif"] ((log_begin_call @@ -21127,8 +21311,8 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4289; start_column=24; - end_line=4289; end_column=46; + start_line=4327; start_column=24; + end_line=4327; end_column=46; law_headings=["Article D842-4"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21144,12 +21328,17 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C | ChangementLogementD8424.PasDeChangement _ -> false))) (fun (_: unit) -> aide_finale_))|]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=914; start_column=14; - end_line=914; end_column=36; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4241; start_column=14; + end_line=4241; end_column=36; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> (log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_montant_minimal"] @@ -21198,8 +21387,8 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4281; start_column=24; - end_line=4281; end_column=43; + start_line=4319; start_column=24; + end_line=4319; end_column=43; law_headings=["Article D842-4"; "Section 1 : Secteur locatif ordinaire"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21224,11 +21413,16 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C | ChangementLogementD8424.PasDeChangement _ -> (money_of_cents_string "0")))|]) (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=913; start_column=14; end_line=913; end_column=33; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} true)) + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4240; start_column=14; end_line=4240; end_column=33; + law_headings=["Article D842-1"; + "Section 1 : Secteur locatif ordinaire"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + true)) (fun (_: unit) -> calcul_apl_locatif_dot_aide_finale_formule_)) with EmptyError -> (raise (NoValueProvided @@ -21258,7 +21452,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4841; start_column=14; end_line=4841; end_column=55; + start_line=4879; start_column=14; end_line=4879; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21268,7 +21462,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4841; start_column=14; end_line=4841; end_column=55; + start_line=4879; start_column=14; end_line=4879; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21280,7 +21474,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4841; start_column=14; end_line=4841; end_column=55; + start_line=4879; start_column=14; end_line=4879; end_column=55; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21293,7 +21487,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=59; + start_line=4874; start_column=14; end_line=4874; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21303,7 +21497,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=59; + start_line=4874; start_column=14; end_line=4874; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21315,7 +21509,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4836; start_column=14; end_line=4836; end_column=59; + start_line=4874; start_column=14; end_line=4874; end_column=59; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21329,7 +21523,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=64; + start_line=4876; start_column=14; end_line=4876; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21339,7 +21533,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=64; + start_line=4876; start_column=14; end_line=4876; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21351,7 +21545,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4838; start_column=14; end_line=4838; end_column=64; + start_line=4876; start_column=14; end_line=4876; end_column=64; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21364,7 +21558,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_collectivite) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4840; start_column=14; end_line=4840; end_column=43; + start_line=4878; start_column=14; end_line=4878; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21374,7 +21568,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4840; start_column=14; end_line=4840; end_column=43; + start_line=4878; start_column=14; end_line=4878; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21386,7 +21580,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4840; start_column=14; end_line=4840; end_column=43; + start_line=4878; start_column=14; end_line=4878; end_column=43; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21420,13 +21614,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1081; start_column=14; end_line=1081; end_column=50; + start_line=1043; start_column=14; end_line=1043; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1081; start_column=14; end_line=1081; end_column=50; + start_line=1043; start_column=14; end_line=1043; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21434,7 +21628,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1081; start_column=14; end_line=1081; end_column=50; + start_line=1043; start_column=14; end_line=1043; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21454,13 +21648,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1065; start_column=14; end_line=1065; end_column=59; + start_line=1027; start_column=14; end_line=1027; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1065; start_column=14; end_line=1065; end_column=59; + start_line=1027; start_column=14; end_line=1027; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21468,7 +21662,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1065; start_column=14; end_line=1065; end_column=59; + start_line=1027; start_column=14; end_line=1027; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21478,13 +21672,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=61; + start_line=1029; start_column=14; end_line=1029; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=61; + start_line=1029; start_column=14; end_line=1029; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21492,7 +21686,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1067; start_column=14; end_line=1067; end_column=61; + start_line=1029; start_column=14; end_line=1029; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21503,13 +21697,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=67; + start_line=1033; start_column=14; end_line=1033; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=67; + start_line=1033; start_column=14; end_line=1033; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21517,7 +21711,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1071; start_column=14; end_line=1071; end_column=67; + start_line=1033; start_column=14; end_line=1033; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21528,13 +21722,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1073; start_column=14; end_line=1073; end_column=65; + start_line=1035; start_column=14; end_line=1035; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1073; start_column=14; end_line=1073; end_column=65; + start_line=1035; start_column=14; end_line=1035; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21542,7 +21736,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1073; start_column=14; end_line=1073; end_column=65; + start_line=1035; start_column=14; end_line=1035; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21553,13 +21747,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1075; start_column=14; end_line=1075; end_column=70; + start_line=1037; start_column=14; end_line=1037; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1075; start_column=14; end_line=1075; end_column=70; + start_line=1037; start_column=14; end_line=1037; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21567,7 +21761,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1075; start_column=14; end_line=1075; end_column=70; + start_line=1037; start_column=14; end_line=1037; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21577,13 +21771,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1077; start_column=14; end_line=1077; end_column=44; + start_line=1039; start_column=14; end_line=1039; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1077; start_column=14; end_line=1077; end_column=44; + start_line=1039; start_column=14; end_line=1039; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21591,7 +21785,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1077; start_column=14; end_line=1077; end_column=44; + start_line=1039; start_column=14; end_line=1039; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21601,13 +21795,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1079; start_column=14; end_line=1079; end_column=53; + start_line=1041; start_column=14; end_line=1041; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1079; start_column=14; end_line=1079; end_column=53; + start_line=1041; start_column=14; end_line=1041; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21615,7 +21809,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1079; start_column=14; end_line=1079; end_column=53; + start_line=1041; start_column=14; end_line=1041; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21625,13 +21819,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.redevance"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1069; start_column=14; end_line=1069; end_column=49; + start_line=1031; start_column=14; end_line=1031; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1069; start_column=14; end_line=1069; end_column=49; + start_line=1031; start_column=14; end_line=1031; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21639,7 +21833,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1069; start_column=14; end_line=1069; end_column=49; + start_line=1031; start_column=14; end_line=1031; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21649,13 +21843,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1078; start_column=14; end_line=1078; end_column=49; + start_line=1040; start_column=14; end_line=1040; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1078; start_column=14; end_line=1078; end_column=49; + start_line=1040; start_column=14; end_line=1040; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -21663,7 +21857,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1078; start_column=14; end_line=1078; end_column=49; + start_line=1040; start_column=14; end_line=1040; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -21673,7 +21867,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4811; start_column=14; end_line=4811; end_column=61; + start_line=4849; start_column=14; end_line=4849; end_column=61; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -21683,7 +21877,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4811; start_column=14; end_line=4811; end_column=61; + start_line=4849; start_column=14; end_line=4849; end_column=61; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -21699,8 +21893,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5596; start_column=9; - end_line=5596; end_column=75; + start_line=5632; start_column=9; + end_line=5632; end_column=75; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -21710,8 +21904,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5598; start_column=5; - end_line=5604; end_column=28; + start_line=5634; start_column=5; + end_line=5640; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -21781,57 +21975,57 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; end_line=1041; end_column=44; + start_line=1003; start_column=11; end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; + start_line=1003; start_column=11; - end_line=1041; end_column=44; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; + start_line=1003; start_column=11; - end_line=1041; end_column=44; + end_line=1003; end_column=44; law_headings= ["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; @@ -22048,24 +22242,24 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; - end_line=1041; end_column=44; + start_line=1003; start_column=11; + end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -22099,7 +22293,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1041; start_column=11; end_line=1041; end_column=44; + start_line=1003; start_column=11; end_line=1003; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22109,7 +22303,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1040; start_column=11; end_line=1040; end_column=48; + start_line=1002; start_column=11; end_line=1002; end_column=48; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22124,7 +22318,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1040; start_column=11; end_line=1040; end_column=48; + start_line=1002; start_column=11; end_line=1002; end_column=48; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22134,7 +22328,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1039; start_column=11; end_line=1039; end_column=38; + start_line=1001; start_column=11; end_line=1001; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22149,7 +22343,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1039; start_column=11; end_line=1039; end_column=38; + start_line=1001; start_column=11; end_line=1001; end_column=38; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22159,7 +22353,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1038; start_column=11; end_line=1038; end_column=39; + start_line=1000; start_column=11; end_line=1000; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22174,7 +22368,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1038; start_column=11; end_line=1038; end_column=39; + start_line=1000; start_column=11; end_line=1000; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22183,15 +22377,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; end_line=1043; end_column=29; + start_line=1005; start_column=12; end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22225,8 +22419,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22260,16 +22454,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -22331,8 +22525,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22369,8 +22563,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22407,16 +22601,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -22484,8 +22678,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22522,8 +22716,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -22560,16 +22754,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; - end_line=1043; end_column=29; + start_line=1005; start_column=12; + end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -22638,7 +22832,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1043; start_column=12; end_line=1043; end_column=29; + start_line=1005; start_column=12; end_line=1005; end_column=29; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22648,13 +22842,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1082; start_column=14; end_line=1082; end_column=61; + start_line=1044; start_column=14; end_line=1044; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1082; start_column=14; end_line=1082; end_column=61; + start_line=1044; start_column=14; end_line=1044; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -22662,7 +22856,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1082; start_column=14; end_line=1082; end_column=61; + start_line=1044; start_column=14; end_line=1044; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -22673,7 +22867,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=75; + start_line=4871; start_column=14; end_line=4871; end_column=75; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22683,7 +22877,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=75; + start_line=4871; start_column=14; end_line=4871; end_column=75; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -22695,7 +22889,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4833; start_column=14; end_line=4833; end_column=75; + start_line=4871; start_column=14; end_line=4871; end_column=75; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22709,7 +22903,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4832; start_column=14; end_line=4832; end_column=69; + start_line=4870; start_column=14; end_line=4870; end_column=69; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22719,7 +22913,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4832; start_column=14; end_line=4832; end_column=69; + start_line=4870; start_column=14; end_line=4870; end_column=69; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -22731,7 +22925,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4832; start_column=14; end_line=4832; end_column=69; + start_line=4870; start_column=14; end_line=4870; end_column=69; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22745,7 +22939,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4843; start_column=14; end_line=4843; end_column=70; + start_line=4881; start_column=14; end_line=4881; end_column=70; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22755,7 +22949,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4843; start_column=14; end_line=4843; end_column=70; + start_line=4881; start_column=14; end_line=4881; end_column=70; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -22768,7 +22962,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4843; start_column=14; end_line=4843; end_column=70; + start_line=4881; start_column=14; end_line=4881; end_column=70; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -22795,13 +22989,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1042; start_column=12; end_line=1042; end_column=39; + start_line=1004; start_column=12; end_line=1004; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4814; start_column=14; end_line=4814; end_column=41; + start_line=4852; start_column=14; end_line=4852; end_column=41; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -22815,7 +23009,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1042; start_column=12; end_line=1042; end_column=39; + start_line=1004; start_column=12; end_line=1004; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -22825,31 +23019,31 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; end_line=1044; end_column=39; + start_line=1006; start_column=12; end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4395; start_column=6; - end_line=4402; end_column=28; + start_line=4406; start_column=6; + end_line=4413; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -22875,8 +23069,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -22923,16 +23117,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23023,8 +23217,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23071,8 +23265,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23121,16 +23315,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23155,8 +23349,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23184,8 +23378,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; - end_line=1044; end_column=39; + start_line=1006; start_column=12; + end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -23214,7 +23408,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1044; start_column=12; end_line=1044; end_column=39; + start_line=1006; start_column=12; end_line=1006; end_column=39; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23226,15 +23420,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=10; - end_line=1058; end_column=32; + start_line=1020; start_column=10; + end_line=1020; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4853; start_column=14; - end_line=4853; end_column=36; + start_line=4891; start_column=14; + end_line=4891; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23253,14 +23447,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=10; end_line=1058; end_column=32; + start_line=1020; start_column=10; end_line=1020; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1058; start_column=10; end_line=1058; end_column=32; + start_line=1020; start_column=10; end_line=1020; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23269,13 +23463,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=12; end_line=1045; end_column=25; + start_line=1007; start_column=12; end_line=1007; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4845; start_column=14; end_line=4845; end_column=27; + start_line=4883; start_column=14; end_line=4883; end_column=27; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23288,7 +23482,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=12; end_line=1045; end_column=25; + start_line=1007; start_column=12; end_line=1007; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23300,15 +23494,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=11; - end_line=1034; end_column=33; + start_line=996; start_column=11; end_line=996; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4965; start_column=14; - end_line=4965; end_column=36; + start_line=5003; start_column=14; + end_line=5003; end_column=36; law_headings=["Article D842-17"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23324,14 +23517,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=11; end_line=1034; end_column=33; + start_line=996; start_column=11; end_line=996; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=11; end_line=1034; end_column=33; + start_line=996; start_column=11; end_line=996; end_column=33; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23340,13 +23533,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1055; start_column=12; end_line=1055; end_column=31; + start_line=1017; start_column=12; end_line=1017; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4793; start_column=14; end_line=4793; end_column=33; + start_line=4831; start_column=14; end_line=4831; end_column=33; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23364,7 +23557,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1055; start_column=12; end_line=1055; end_column=31; + start_line=1017; start_column=12; end_line=1017; end_column=31; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23376,15 +23569,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1036; start_column=11; - end_line=1036; end_column=44; + start_line=998; start_column=11; end_line=998; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4974; start_column=14; - end_line=4974; end_column=47; + start_line=5012; start_column=14; + end_line=5012; end_column=47; law_headings=["Article D842-17"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23425,14 +23617,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1036; start_column=11; end_line=1036; end_column=44; + start_line=998; start_column=11; end_line=998; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1036; start_column=11; end_line=1036; end_column=44; + start_line=998; start_column=11; end_line=998; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23444,15 +23636,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1059; start_column=10; - end_line=1059; end_column=32; + start_line=1021; start_column=10; + end_line=1021; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4867; start_column=14; - end_line=4867; end_column=36; + start_line=4905; start_column=14; + end_line=4905; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23500,14 +23692,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1059; start_column=10; end_line=1059; end_column=32; + start_line=1021; start_column=10; end_line=1021; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1059; start_column=10; end_line=1059; end_column=32; + start_line=1021; start_column=10; end_line=1021; end_column=32; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23519,15 +23711,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=10; - end_line=1060; end_column=19; + start_line=1022; start_column=10; + end_line=1022; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4885; start_column=14; - end_line=4885; end_column=36; + start_line=4923; start_column=14; + end_line=4923; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23557,14 +23749,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=10; end_line=1060; end_column=19; + start_line=1022; start_column=10; end_line=1022; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1060; start_column=10; end_line=1060; end_column=19; + start_line=1022; start_column=10; end_line=1022; end_column=19; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23577,15 +23769,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1061; start_column=10; - end_line=1061; end_column=40; + start_line=1023; start_column=10; + end_line=1023; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4899; start_column=14; - end_line=4899; end_column=36; + start_line=4937; start_column=14; + end_line=4937; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23635,14 +23827,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1061; start_column=10; end_line=1061; end_column=40; + start_line=1023; start_column=10; end_line=1023; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1061; start_column=10; end_line=1061; end_column=40; + start_line=1023; start_column=10; end_line=1023; end_column=40; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23654,15 +23846,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=10; - end_line=1062; end_column=25; + start_line=1024; start_column=10; + end_line=1024; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4920; start_column=14; - end_line=4920; end_column=36; + start_line=4958; start_column=14; + end_line=4958; end_column=36; law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23693,14 +23885,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=10; end_line=1062; end_column=25; + start_line=1024; start_column=10; end_line=1024; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1062; start_column=10; end_line=1062; end_column=25; + start_line=1024; start_column=10; end_line=1024; end_column=25; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23711,15 +23903,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1086; start_column=13; - end_line=1086; end_column=42; + start_line=1048; start_column=13; + end_line=1048; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1086; start_column=13; - end_line=1086; end_column=42; + start_line=1048; start_column=13; + end_line=1048; end_column=42; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -23755,7 +23947,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=955; start_column=11; end_line=955; end_column=33; + start_line=917; start_column=11; end_line=917; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -23771,7 +23963,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=955; start_column=11; end_line=955; end_column=33; + start_line=917; start_column=11; end_line=917; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -23781,7 +23973,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=59; + start_line=4485; start_column=14; end_line=4485; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23792,7 +23984,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=59; + start_line=4485; start_column=14; end_line=4485; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23804,7 +23996,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4447; start_column=14; end_line=4447; end_column=59; + start_line=4485; start_column=14; end_line=4485; end_column=59; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23819,7 +24011,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4449; start_column=14; end_line=4449; end_column=64; + start_line=4487; start_column=14; end_line=4487; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23830,7 +24022,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4449; start_column=14; end_line=4449; end_column=64; + start_line=4487; start_column=14; end_line=4487; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23842,7 +24034,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4449; start_column=14; end_line=4449; end_column=64; + start_line=4487; start_column=14; end_line=4487; end_column=64; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -23867,13 +24059,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1009; start_column=14; end_line=1009; end_column=50; + start_line=971; start_column=14; end_line=971; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1009; start_column=14; end_line=1009; end_column=50; + start_line=971; start_column=14; end_line=971; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -23881,7 +24073,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1009; start_column=14; end_line=1009; end_column=50; + start_line=971; start_column=14; end_line=971; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -23902,57 +24094,57 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; end_line=966; end_column=44; + start_line=928; start_column=11; end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; + start_line=928; start_column=11; - end_line=966; end_column=44; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; + start_line=928; start_column=11; - end_line=966; end_column=44; + end_line=928; end_column=44; law_headings= ["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; @@ -24169,23 +24361,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; end_line=966; end_column=44; + start_line=928; start_column=11; end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; - end_line=966; end_column=44; + start_line=928; start_column=11; + end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -24219,7 +24411,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=966; start_column=11; end_line=966; end_column=44; + start_line=928; start_column=11; end_line=928; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24229,7 +24421,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=964; start_column=11; end_line=964; end_column=30; + start_line=926; start_column=11; end_line=926; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24244,7 +24436,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=964; start_column=11; end_line=964; end_column=30; + start_line=926; start_column=11; end_line=926; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24254,7 +24446,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=963; start_column=11; end_line=963; end_column=30; + start_line=925; start_column=11; end_line=925; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24269,7 +24461,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=963; start_column=11; end_line=963; end_column=30; + start_line=925; start_column=11; end_line=925; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24279,7 +24471,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=962; start_column=11; end_line=962; end_column=38; + start_line=924; start_column=11; end_line=924; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24294,7 +24486,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=962; start_column=11; end_line=962; end_column=38; + start_line=924; start_column=11; end_line=924; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24304,7 +24496,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=961; start_column=11; end_line=961; end_column=38; + start_line=923; start_column=11; end_line=923; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24319,7 +24511,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=961; start_column=11; end_line=961; end_column=38; + start_line=923; start_column=11; end_line=923; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24329,7 +24521,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=960; start_column=11; end_line=960; end_column=38; + start_line=922; start_column=11; end_line=922; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24344,7 +24536,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=960; start_column=11; end_line=960; end_column=38; + start_line=922; start_column=11; end_line=922; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24354,7 +24546,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=952; start_column=11; end_line=952; end_column=37; + start_line=914; start_column=11; end_line=914; end_column=37; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -24369,7 +24561,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=952; start_column=11; end_line=952; end_column=37; + start_line=914; start_column=11; end_line=914; end_column=37; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24379,39 +24571,39 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; end_line=965; end_column=30; + start_line=927; start_column=11; end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; - end_line=965; end_column=30; + start_line=927; start_column=11; + end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; - end_line=965; end_column=30; + start_line=927; start_column=11; + end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; - end_line=965; end_column=30; + start_line=927; start_column=11; + end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; - end_line=965; end_column=30; + start_line=927; start_column=11; + end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -24419,9 +24611,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5924; + start_line=5965; start_column=5; - end_line=5928; end_column=73; + end_line=5969; end_column=73; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -24453,8 +24645,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5572; start_column=5; - end_line=5579; end_column=73; + start_line=5608; start_column=5; + end_line=5615; end_column=73; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -24481,8 +24673,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4676; start_column=6; - end_line=4679; end_column=44; + start_line=4714; start_column=6; + end_line=4717; end_column=44; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -24527,7 +24719,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; end_line=965; end_column=30; + start_line=927; start_column=11; end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -24535,7 +24727,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=965; start_column=11; end_line=965; end_column=30; + start_line=927; start_column=11; end_line=927; end_column=30; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -24547,15 +24739,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; end_line=949; end_column=14; + start_line=911; start_column=10; end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -24733,8 +24925,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -24912,8 +25104,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25091,8 +25283,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25270,8 +25462,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25449,8 +25641,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25628,8 +25820,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25807,8 +25999,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -25969,8 +26161,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26131,8 +26323,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26293,8 +26485,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26455,8 +26647,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26617,8 +26809,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26779,8 +26971,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -26941,8 +27133,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27103,8 +27295,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27265,8 +27457,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27427,8 +27619,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27589,8 +27781,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27751,8 +27943,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -27913,8 +28105,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28075,8 +28267,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; - end_line=949; end_column=14; + start_line=911; start_column=10; + end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28235,14 +28427,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; end_line=949; end_column=14; + start_line=911; start_column=10; end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=949; start_column=10; end_line=949; end_column=14; + start_line=911; start_column=10; end_line=911; end_column=14; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -28252,39 +28444,39 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; end_line=942; end_column=38; + start_line=904; start_column=11; end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28292,9 +28484,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4441; + start_line=4459; start_column=5; - end_line=4449; end_column=16; + end_line=4467; end_column=16; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28340,8 +28532,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28422,17 +28614,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; + start_line=904; start_column=11; - end_line=942; end_column=38; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28588,8 +28780,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28671,8 +28863,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28757,24 +28949,24 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4381; start_column=6; - end_line=4388; end_column=28; + start_line=4392; start_column=6; + end_line=4399; end_column=28; law_headings=["Article 46"; "Chapitre IX : Calcul des allocations de logement en outre-mer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -28808,8 +29000,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28868,17 +29060,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; + start_line=904; start_column=11; - end_line=942; end_column=38; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -28998,8 +29190,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29058,8 +29250,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29121,16 +29313,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29160,8 +29352,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29194,8 +29386,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29231,15 +29423,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; end_line=942; end_column=38; + start_line=904; start_column=11; end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29264,8 +29456,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29293,8 +29485,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; - end_line=942; end_column=38; + start_line=904; start_column=11; + end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29323,7 +29515,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=942; start_column=11; end_line=942; end_column=38; + start_line=904; start_column=11; end_line=904; end_column=38; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29333,22 +29525,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; end_line=954; end_column=42; + start_line=916; start_column=11; end_line=916; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; - end_line=954; end_column=42; + start_line=916; start_column=11; + end_line=916; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4705; start_column=6; - end_line=4711; end_column=6; + start_line=4743; start_column=6; + end_line=4749; end_column=6; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29403,15 +29595,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; - end_line=954; end_column=42; + start_line=916; start_column=11; + end_line=916; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4723; start_column=5; - end_line=4724; end_column=59; + start_line=4761; start_column=5; + end_line=4762; end_column=59; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29436,7 +29628,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=954; start_column=11; end_line=954; end_column=42; + start_line=916; start_column=11; end_line=916; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29448,14 +29640,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=980; start_column=10; end_line=980; end_column=32; + start_line=942; start_column=10; end_line=942; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4457; start_column=14; - end_line=4457; end_column=36; + start_line=4495; start_column=14; + end_line=4495; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29474,14 +29666,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=980; start_column=10; end_line=980; end_column=32; + start_line=942; start_column=10; end_line=942; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=980; start_column=10; end_line=980; end_column=32; + start_line=942; start_column=10; end_line=942; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29495,40 +29687,40 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; end_line=950; end_column=26; + start_line=912; start_column=10; end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; - end_line=950; end_column=26; + start_line=912; start_column=10; + end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; - end_line=950; end_column=26; + start_line=912; start_column=10; + end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; - end_line=950; end_column=26; + start_line=912; start_column=10; + end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; + start_line=912; start_column=10; - end_line=950; end_column=26; + end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} @@ -29667,14 +29859,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; end_line=950; end_column=26; + start_line=912; start_column=10; end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=950; start_column=10; end_line=950; end_column=26; + start_line=912; start_column=10; end_line=912; end_column=26; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29686,14 +29878,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=33; + start_line=918; start_column=11; end_line=918; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4641; start_column=15; - end_line=4641; end_column=37; + start_line=4679; start_column=15; + end_line=4679; end_column=37; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29709,14 +29901,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=33; + start_line=918; start_column=11; end_line=918; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=956; start_column=11; end_line=956; end_column=33; + start_line=918; start_column=11; end_line=918; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29726,22 +29918,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=924; start_column=10; end_line=924; end_column=15; + start_line=886; start_column=10; end_line=886; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=924; start_column=10; - end_line=924; end_column=15; + start_line=886; start_column=10; + end_line=886; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4744; start_column=5; - end_line=4744; end_column=28; + start_line=4782; start_column=5; + end_line=4782; end_column=28; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29753,7 +29945,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> ressources_menage_arrondies_base_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4734; start_column=14; end_line=4734; end_column=41; + start_line=4772; start_column=14; end_line=4772; end_column=41; law_headings=["Article D842-12"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -29777,7 +29969,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=924; start_column=10; end_line=924; end_column=15; + start_line=886; start_column=10; end_line=886; end_column=15; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -29792,49 +29984,49 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; end_line=951; end_column=33; + start_line=913; start_column=10; end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; - end_line=951; end_column=33; + start_line=913; start_column=10; + end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; - end_line=951; end_column=33; + start_line=913; start_column=10; + end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; - end_line=951; end_column=33; + start_line=913; start_column=10; + end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; + start_line=913; start_column=10; - end_line=951; end_column=33; + end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; + start_line=913; start_column=10; - end_line=951; end_column=33; + end_line=913; end_column=33; law_headings= ["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; @@ -29842,9 +30034,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; + start_line=913; start_column=10; - end_line=951; end_column=33; + end_line=913; end_column=33; law_headings= ["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; @@ -30190,14 +30382,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; end_line=951; end_column=33; + start_line=913; start_column=10; end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=951; start_column=10; end_line=951; end_column=33; + start_line=913; start_column=10; end_line=913; end_column=33; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -30207,13 +30399,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_équivalence_loyer_minimale.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1010; start_column=14; end_line=1010; end_column=61; + start_line=972; start_column=14; end_line=972; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1010; start_column=14; end_line=1010; end_column=61; + start_line=972; start_column=14; end_line=972; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30221,7 +30413,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1010; start_column=14; end_line=1010; end_column=61; + start_line=972; start_column=14; end_line=972; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30232,7 +30424,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_money) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=75; + start_line=4481; start_column=14; end_line=4481; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30243,7 +30435,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=75; + start_line=4481; start_column=14; end_line=4481; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30255,7 +30447,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4443; start_column=14; end_line=4443; end_column=75; + start_line=4481; start_column=14; end_line=4481; end_column=75; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30270,7 +30462,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4442; start_column=14; end_line=4442; end_column=69; + start_line=4480; start_column=14; end_line=4480; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30281,7 +30473,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4442; start_column=14; end_line=4442; end_column=69; + start_line=4480; start_column=14; end_line=4480; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30293,7 +30485,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4442; start_column=14; end_line=4442; end_column=69; + start_line=4480; start_column=14; end_line=4480; end_column=69; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30308,7 +30500,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_decimal) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=70; + start_line=4483; start_column=14; end_line=4483; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30319,7 +30511,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=70; + start_line=4483; start_column=14; end_line=4483; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30332,7 +30524,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4445; start_column=14; end_line=4445; end_column=70; + start_line=4483; start_column=14; end_line=4483; end_column=70; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30363,13 +30555,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=59; + start_line=954; start_column=14; end_line=954; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=59; + start_line=954; start_column=14; end_line=954; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30377,7 +30569,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=992; start_column=14; end_line=992; end_column=59; + start_line=954; start_column=14; end_line=954; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30387,13 +30579,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=61; + start_line=956; start_column=14; end_line=956; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=61; + start_line=956; start_column=14; end_line=956; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30401,7 +30593,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=994; start_column=14; end_line=994; end_column=61; + start_line=956; start_column=14; end_line=956; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30412,13 +30604,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=998; start_column=14; end_line=998; end_column=67; + start_line=960; start_column=14; end_line=960; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=998; start_column=14; end_line=998; end_column=67; + start_line=960; start_column=14; end_line=960; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30426,7 +30618,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=998; start_column=14; end_line=998; end_column=67; + start_line=960; start_column=14; end_line=960; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30437,13 +30629,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=65; + start_line=962; start_column=14; end_line=962; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=65; + start_line=962; start_column=14; end_line=962; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30451,7 +30643,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1000; start_column=14; end_line=1000; end_column=65; + start_line=962; start_column=14; end_line=962; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30462,13 +30654,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1002; start_column=14; end_line=1002; end_column=70; + start_line=964; start_column=14; end_line=964; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1002; start_column=14; end_line=1002; end_column=70; + start_line=964; start_column=14; end_line=964; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30476,7 +30668,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1002; start_column=14; end_line=1002; end_column=70; + start_line=964; start_column=14; end_line=964; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30486,13 +30678,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1004; start_column=14; end_line=1004; end_column=44; + start_line=966; start_column=14; end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1004; start_column=14; end_line=1004; end_column=44; + start_line=966; start_column=14; end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30500,7 +30692,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1004; start_column=14; end_line=1004; end_column=44; + start_line=966; start_column=14; end_line=966; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30510,13 +30702,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1007; start_column=14; end_line=1007; end_column=53; + start_line=969; start_column=14; end_line=969; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1007; start_column=14; end_line=1007; end_column=53; + start_line=969; start_column=14; end_line=969; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30524,7 +30716,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1007; start_column=14; end_line=1007; end_column=53; + start_line=969; start_column=14; end_line=969; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30534,13 +30726,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.redevance"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=996; start_column=14; end_line=996; end_column=49; + start_line=958; start_column=14; end_line=958; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=996; start_column=14; end_line=996; end_column=49; + start_line=958; start_column=14; end_line=958; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30548,7 +30740,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=996; start_column=14; end_line=996; end_column=49; + start_line=958; start_column=14; end_line=958; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30558,13 +30750,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1006; start_column=14; end_line=1006; end_column=49; + start_line=968; start_column=14; end_line=968; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1006; start_column=14; end_line=1006; end_column=49; + start_line=968; start_column=14; end_line=968; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) @@ -30572,7 +30764,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1006; start_column=14; end_line=1006; end_column=49; + start_line=968; start_column=14; end_line=968; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in @@ -30582,7 +30774,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4409; start_column=14; end_line=4409; end_column=61; + start_line=4447; start_column=14; end_line=4447; end_column=61; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30593,7 +30785,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4409; start_column=14; end_line=4409; end_column=61; + start_line=4447; start_column=14; end_line=4447; end_column=61; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30609,8 +30801,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5908; start_column=9; - end_line=5908; end_column=75; + start_line=5949; start_column=9; + end_line=5949; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -30620,8 +30812,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5908; start_column=9; - end_line=5908; end_column=75; + start_line=5949; start_column=9; + end_line=5949; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -30631,8 +30823,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5908; start_column=9; - end_line=5908; end_column=75; + start_line=5949; start_column=9; + end_line=5949; end_column=75; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -30642,8 +30834,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5910; start_column=5; - end_line=5913; end_column=28; + start_line=5951; start_column=5; + end_line=5954; end_column=28; law_headings=["Article D862-7"; "Section III : Allocations de logement"; "Chapitre II : Saint-Barthélemy et Saint-Martin"; @@ -30671,8 +30863,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5555; start_column=5; - end_line=5561; end_column=28; + start_line=5591; start_column=5; + end_line=5597; end_column=28; law_headings=["Article D861-8"; "Section 2 : Allocations de logement"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -30746,22 +30938,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=953; start_column=11; end_line=953; end_column=47; + start_line=915; start_column=11; end_line=915; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=953; start_column=11; - end_line=953; end_column=47; + start_line=915; start_column=11; + end_line=915; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4683; start_column=7; - end_line=4683; end_column=26; + start_line=4721; start_column=7; + end_line=4721; end_column=26; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30775,7 +30967,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a coefficient_d842_11_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4664; start_column=14; end_line=4664; end_column=50; + start_line=4702; start_column=14; end_line=4702; end_column=50; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30787,7 +30979,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=953; start_column=11; end_line=953; end_column=47; + start_line=915; start_column=11; end_line=915; end_column=47; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -30797,22 +30989,22 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; end_line=945; end_column=36; + start_line=907; start_column=11; end_line=907; end_column=36; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; - end_line=945; end_column=36; + start_line=907; start_column=11; + end_line=907; end_column=36; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4588; start_column=5; - end_line=4588; end_column=44; + start_line=4626; start_column=5; + end_line=4626; end_column=44; law_headings=["Article D842-9"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30862,7 +31054,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4569; start_column=14; end_line=4569; end_column=39; + start_line=4607; start_column=14; end_line=4607; end_column=39; law_headings=["Article D842-9"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30890,7 +31082,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=945; start_column=11; end_line=945; end_column=36; + start_line=907; start_column=11; end_line=907; end_column=36; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -30900,13 +31092,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=943; start_column=12; end_line=943; end_column=31; + start_line=905; start_column=12; end_line=905; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4438; start_column=14; end_line=4438; end_column=33; + start_line=4476; start_column=14; end_line=4476; end_column=33; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30919,7 +31111,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=943; start_column=12; end_line=943; end_column=31; + start_line=905; start_column=12; end_line=905; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -30929,13 +31121,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=944; start_column=12; end_line=944; end_column=39; + start_line=906; start_column=12; end_line=906; end_column=39; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4412; start_column=14; end_line=4412; end_column=41; + start_line=4450; start_column=14; end_line=4450; end_column=41; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -30949,7 +31141,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=944; start_column=12; end_line=944; end_column=39; + start_line=906; start_column=12; end_line=906; end_column=39; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -30961,14 +31153,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=958; start_column=11; end_line=958; end_column=44; + start_line=920; start_column=11; end_line=920; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4653; start_column=14; - end_line=4653; end_column=47; + start_line=4691; start_column=14; + end_line=4691; end_column=47; law_headings=["Article D842-11"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31000,14 +31192,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=958; start_column=11; end_line=958; end_column=44; + start_line=920; start_column=11; end_line=920; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=958; start_column=11; end_line=958; end_column=44; + start_line=920; start_column=11; end_line=920; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31017,13 +31209,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=12; end_line=941; end_column=31; + start_line=903; start_column=12; end_line=903; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4423; start_column=14; end_line=4423; end_column=33; + start_line=4461; start_column=14; end_line=4461; end_column=33; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31039,7 +31231,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=941; start_column=12; end_line=941; end_column=31; + start_line=903; start_column=12; end_line=903; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31051,14 +31243,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=981; start_column=10; end_line=981; end_column=32; + start_line=943; start_column=10; end_line=943; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4471; start_column=14; - end_line=4471; end_column=36; + start_line=4509; start_column=14; + end_line=4509; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31104,14 +31296,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=981; start_column=10; end_line=981; end_column=32; + start_line=943; start_column=10; end_line=943; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=981; start_column=10; end_line=981; end_column=32; + start_line=943; start_column=10; end_line=943; end_column=32; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31121,13 +31313,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=976; start_column=12; end_line=976; end_column=31; + start_line=938; start_column=12; end_line=938; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4390; start_column=14; end_line=4390; end_column=33; + start_line=4428; start_column=14; end_line=4428; end_column=33; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31145,7 +31337,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=976; start_column=12; end_line=976; end_column=31; + start_line=938; start_column=12; end_line=938; end_column=31; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31158,14 +31350,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=10; end_line=982; end_column=40; + start_line=944; start_column=10; end_line=944; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4485; start_column=14; - end_line=4485; end_column=36; + start_line=4523; start_column=14; + end_line=4523; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31215,14 +31407,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=10; end_line=982; end_column=40; + start_line=944; start_column=10; end_line=944; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=10; end_line=982; end_column=40; + start_line=944; start_column=10; end_line=944; end_column=40; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31234,14 +31426,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=983; start_column=10; end_line=983; end_column=25; + start_line=945; start_column=10; end_line=945; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4505; start_column=14; - end_line=4505; end_column=36; + start_line=4543; start_column=14; + end_line=4543; end_column=36; law_headings=["Article D842-6"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -31272,14 +31464,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=983; start_column=10; end_line=983; end_column=25; + start_line=945; start_column=10; end_line=945; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=983; start_column=10; end_line=983; end_column=25; + start_line=945; start_column=10; end_line=945; end_column=25; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -31290,15 +31482,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1015; start_column=13; - end_line=1015; end_column=48; + start_line=977; start_column=13; + end_line=977; end_column=48; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1015; start_column=13; - end_line=1015; end_column=48; + start_line=977; start_column=13; + end_line=977; end_column=48; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -31309,15 +31501,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1014; start_column=13; - end_line=1014; end_column=42; + start_line=976; start_column=13; + end_line=976; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) then () else raise (AssertionFailed {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1014; start_column=13; - end_line=1014; end_column=42; + start_line=976; start_column=13; + end_line=976; end_column=42; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}) in @@ -31354,7 +31546,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1446; start_column=14; end_line=1446; end_column=34; + start_line=1448; start_column=14; end_line=1448; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31397,7 +31589,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1968; start_column=14; end_line=1968; end_column=31; + start_line=1970; start_column=14; end_line=1970; end_column=31; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -31468,319 +31660,10 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C law_headings=["Tous secteurs"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; - "Prologue : aides au logement"]} - ([|(fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=829; start_column=11; - end_line=829; end_column=33; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6355; start_column=24; - end_line=6355; end_column=46; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - (o_and - (match residence_ - with - | Collectivite.Guadeloupe _ -> false - | Collectivite.Guyane _ -> false - | Collectivite.Martinique _ -> false - | Collectivite.LaReunion _ -> false - | Collectivite.SaintBarthelemy _ -> false - | Collectivite.SaintMartin _ -> false - | Collectivite.Metropole _ -> false - | Collectivite.SaintPierreEtMiquelon _ -> true - | Collectivite.Mayotte _ -> false) - (match categorie_calcul_apl_ - with - | CategorieCalculAPL.Location _ -> false - | CategorieCalculAPL.AccessionPropriete _ -> false - | CategorieCalculAPL.LogementFoyer _ -> true)))) - (fun (_: unit) -> - match categorie_calcul_apl_ - with - | CategorieCalculAPL.Location _ -> - ({TraitementFormuleAideFinale.aide_finale_formule = - (money_of_cents_string "0"); - TraitementFormuleAideFinale.traitement_aide_finale = - traitement_nul_tout_le_temps_}) - | CategorieCalculAPL.AccessionPropriete _ -> - ({TraitementFormuleAideFinale.aide_finale_formule = - (money_of_cents_string "0"); - TraitementFormuleAideFinale.traitement_aide_finale = - traitement_nul_tout_le_temps_}) - | CategorieCalculAPL.LogementFoyer logement_foyer__ -> - (let traitement_formule_ : - CalculAidePersonnaliseeLogementLocatif.t = - (let result_ : - CalculAidePersonnaliseeLogementLocatif.t = - ((log_begin_call - ["CalculAidePersonnaliséeLogementLocatif"; - "direct"] - calcul_aide_personnalisee_logement_locatif) - ((log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; - "direct"; "input"] - (embed_calcul_aide_personnalisee_logement_locatif_in) - ({CalculAidePersonnaliseeLogementLocatifIn.loyer_principal_base_in = - ( - try - (logement_foyer__.LogementFoyer.redevance) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6378; start_column=31; - end_line=6378; end_column=56; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.ressources_menage_arrondies_in = - (try ressources_menage_avec_arrondi_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6372; start_column=43; - end_line=6372; end_column=60; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.beneficiaire_aide_adulte_ou_enfant_handicapes_in = - ( - try - (logement_foyer__.LogementFoyer.beneficiaire_aide_adulte_ou_enfant_handicapes) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6380; start_column=15; - end_line=6380; end_column=76; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.date_courante_in = - (try date_courante_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6375; start_column=29; - end_line=6375; end_column=42; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.nombre_personnes_a_charge_in = - (try nombre_personnes_a_charge_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6373; start_column=41; - end_line=6373; end_column=66; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.situation_familiale_calcul_apl_in = - (try situation_familiale_calcul_apl_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6376; start_column=46; - end_line=6376; end_column=76; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.zone_in = - (try zone_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6374; start_column=20; - end_line=6374; end_column=24; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.logement_est_chambre_in = - (try true with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6384; start_column=36; - end_line=6384; end_column=40; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = - (try false with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6391; start_column=72; - end_line=6391; end_column=76; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.type_aide_in = - (try type_aide_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6392; start_column=25; - end_line=6392; end_column=34; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.colocation_in = - (try false with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6388; start_column=26; - end_line=6388; end_column=30; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.reduction_loyer_solidarite_in = - (try (money_of_cents_string "0") with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6395; start_column=42; - end_line=6395; end_column=45; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.logement_meuble_d842_2_in = - ( - try - (logement_foyer__.LogementFoyer.logement_meuble_d842_2) - with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6396; start_column=38; - end_line=6396; end_column=76; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]}))); - CalculAidePersonnaliseeLogementLocatifIn.residence_in = - (try residence_ with - EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6397; start_column=25; - end_line=6397; end_column=34; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]})))})))) - in - (let result_ : - CalculAidePersonnaliseeLogementLocatif.t = - ({CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16 = - (result_.CalculAidePersonnaliseeLogementLocatif.montant_forfaitaire_charges_d823_16); - CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2 = - (result_.CalculAidePersonnaliseeLogementLocatif.plafond_loyer_d823_16_2); - CalculAidePersonnaliseeLogementLocatif.participation_minimale = - (result_.CalculAidePersonnaliseeLogementLocatif.participation_minimale); - CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale = - (result_.CalculAidePersonnaliseeLogementLocatif.taux_composition_familiale); - CalculAidePersonnaliseeLogementLocatif.participation_personnelle = - (result_.CalculAidePersonnaliseeLogementLocatif.participation_personnelle); - CalculAidePersonnaliseeLogementLocatif.aide_finale_formule = - (result_.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule); - CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale = - (fun (param0_: money) -> (log_end_call - ["CalculAidePersonnaliséeLogementLocatif"; - "traitement_aide_finale"] - ((log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; - "traitement_aide_finale"; "output"] - (embed_money) ((log_begin_call - ["CalculAidePersonnaliséeLogementLocatif"; - "traitement_aide_finale"] - (result_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale)) - ((log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; - "traitement_aide_finale"; "input0"] - (embed_money) param0_)))))))}) - in - ((log_end_call - ["CalculAidePersonnaliséeLogementLocatif"; - "direct"] ((log_variable_definition - ["CalculAidePersonnaliséeLogementLocatif"; - "direct"; "output"] - (embed_calcul_aide_personnalisee_logement_locatif) - ( if - ((log_decision_taken - {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6371; start_column=9; - end_line=6398; end_column=10; - law_headings=["Article D863-7"; - "Sous-section III : Modalités de liquidation et de versement"; - "Section II : Dispositions communes aux aides personnelles au logement"; - "Chapitre III : Saint-Pierre-et-Miquelon"; - "Livre VIII : Aides personnelles au logement"; - "Partie réglementaire"; - "Code de la construction et de l'habitation"]} - true)) then result_ else result_))))))) - in - ({TraitementFormuleAideFinale.aide_finale_formule = - (traitement_formule_.CalculAidePersonnaliseeLogementLocatif.aide_finale_formule); - TraitementFormuleAideFinale.traitement_aide_finale = - (traitement_formule_.CalculAidePersonnaliseeLogementLocatif.traitement_aide_finale)}))))|]) + "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1469; start_column=14; end_line=1469; end_column=36; + start_line=1471; start_column=14; end_line=1471; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31807,8 +31690,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try (location_.Location.loyer_principal) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1479; start_column=31; - end_line=1479; end_column=55; + start_line=1481; start_column=31; + end_line=1481; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31820,8 +31703,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1474; start_column=43; - end_line=1474; end_column=60; + start_line=1476; start_column=43; + end_line=1476; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31836,8 +31719,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1481; start_column=15; - end_line=1481; end_column=69; + start_line=1483; start_column=15; + end_line=1483; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31849,8 +31732,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1477; start_column=29; - end_line=1477; end_column=42; + start_line=1479; start_column=29; + end_line=1479; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31862,8 +31745,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1475; start_column=41; - end_line=1475; end_column=66; + start_line=1477; start_column=41; + end_line=1477; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31875,8 +31758,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1478; start_column=46; - end_line=1478; end_column=76; + start_line=1480; start_column=46; + end_line=1480; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31888,8 +31771,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1476; start_column=20; - end_line=1476; end_column=24; + start_line=1478; start_column=20; + end_line=1478; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31903,8 +31786,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1482; start_column=36; - end_line=1482; end_column=65; + start_line=1484; start_column=36; + end_line=1484; end_column=65; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31919,8 +31802,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1485; start_column=15; - end_line=1485; end_column=80; + start_line=1487; start_column=15; + end_line=1487; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31932,8 +31815,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1486; start_column=25; - end_line=1486; end_column=34; + start_line=1488; start_column=25; + end_line=1488; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31945,8 +31828,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try (location_.Location.colocation) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1483; start_column=26; - end_line=1483; end_column=45; + start_line=1485; start_column=26; + end_line=1485; end_column=45; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31968,8 +31851,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1488; start_column=16; - end_line=1491; end_column=39; + start_line=1490; start_column=16; + end_line=1493; end_column=39; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31983,8 +31866,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1492; start_column=38; - end_line=1492; end_column=69; + start_line=1494; start_column=38; + end_line=1494; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -31996,8 +31879,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1493; start_column=25; - end_line=1493; end_column=34; + start_line=1495; start_column=25; + end_line=1495; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32044,8 +31927,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1473; start_column=9; - end_line=1494; end_column=10; + start_line=1475; start_column=9; + end_line=1496; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32079,8 +31962,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1532; start_column=38; - end_line=1532; end_column=72; + start_line=1534; start_column=38; + end_line=1534; end_column=72; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32092,8 +31975,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1527; start_column=44; - end_line=1527; end_column=61; + start_line=1529; start_column=44; + end_line=1529; end_column=61; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32105,8 +31988,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1528; start_column=42; - end_line=1528; end_column=67; + start_line=1530; start_column=42; + end_line=1530; end_column=67; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32118,8 +32001,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1531; start_column=47; - end_line=1531; end_column=77; + start_line=1533; start_column=47; + end_line=1533; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32134,8 +32017,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1533; start_column=38; - end_line=1533; end_column=80; + start_line=1535; start_column=38; + end_line=1535; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32150,8 +32033,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1534; start_column=36; - end_line=1534; end_column=68; + start_line=1536; start_column=36; + end_line=1536; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32166,8 +32049,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1536; start_column=14; - end_line=1536; end_column=66; + start_line=1538; start_column=14; + end_line=1538; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32182,8 +32065,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1537; start_column=37; - end_line=1537; end_column=70; + start_line=1539; start_column=37; + end_line=1539; end_column=70; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32196,8 +32079,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (proprietaire_.Proprietaire.copropriete) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1538; start_column=28; - end_line=1538; end_column=52; + start_line=1540; start_column=28; + end_line=1540; end_column=52; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32212,8 +32095,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1539; start_column=40; - end_line=1539; end_column=76; + start_line=1541; start_column=40; + end_line=1541; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32225,8 +32108,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1529; start_column=21; - end_line=1529; end_column=25; + start_line=1531; start_column=21; + end_line=1531; end_column=25; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32241,8 +32124,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1540; start_column=26; - end_line=1540; end_column=53; + start_line=1542; start_column=26; + end_line=1542; end_column=53; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32257,8 +32140,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1541; start_column=36; - end_line=1541; end_column=68; + start_line=1543; start_column=36; + end_line=1543; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32270,8 +32153,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1530; start_column=30; - end_line=1530; end_column=43; + start_line=1532; start_column=30; + end_line=1532; end_column=43; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32315,8 +32198,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1526; start_column=10; - end_line=1542; end_column=11; + start_line=1528; start_column=10; + end_line=1544; end_column=11; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32346,8 +32229,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try (logement_foyer__.LogementFoyer.type_user) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1513; start_column=35; - end_line=1513; end_column=55; + start_line=1515; start_column=35; + end_line=1515; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32362,8 +32245,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1514; start_column=37; - end_line=1514; end_column=74; + start_line=1516; start_column=37; + end_line=1516; end_column=74; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32375,8 +32258,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1506; start_column=43; - end_line=1506; end_column=60; + start_line=1508; start_column=43; + end_line=1508; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32388,8 +32271,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1507; start_column=41; - end_line=1507; end_column=66; + start_line=1509; start_column=41; + end_line=1509; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32401,8 +32284,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1511; start_column=46; - end_line=1511; end_column=76; + start_line=1513; start_column=46; + end_line=1513; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32414,8 +32297,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1508; start_column=20; - end_line=1508; end_column=24; + start_line=1510; start_column=20; + end_line=1510; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32427,8 +32310,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1510; start_column=29; - end_line=1510; end_column=42; + start_line=1512; start_column=29; + end_line=1512; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32442,8 +32325,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1512; start_column=25; - end_line=1512; end_column=50; + start_line=1514; start_column=25; + end_line=1514; end_column=50; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32455,8 +32338,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1509; start_column=25; - end_line=1509; end_column=34; + start_line=1511; start_column=25; + end_line=1511; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32513,8 +32396,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1505; start_column=9; - end_line=1515; end_column=10; + start_line=1507; start_column=9; + end_line=1517; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32551,8 +32434,8 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1459; start_column=14; - end_line=1459; end_column=36; + start_line=1461; start_column=14; + end_line=1461; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32593,7 +32476,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1457; start_column=14; end_line=1457; end_column=33; + start_line=1459; start_column=14; end_line=1459; end_column=33; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -32702,8 +32585,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5464; start_column=14; - end_line=5464; end_column=46; + start_line=5500; start_column=14; + end_line=5500; end_column=46; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -32915,8 +32798,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1376; start_column=5; - end_line=1376; end_column=40; + start_line=1374; start_column=5; + end_line=1374; end_column=40; law_headings=["Article L861-5"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -33208,8 +33091,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1334; start_column=5; - end_line=1334; end_column=40; + start_line=1332; start_column=5; + end_line=1332; end_column=40; law_headings=["Article L861-5"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -33645,9 +33528,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (embed_duration) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5722; + start_line=5758; start_column=24; - end_line=5722; end_column=59; + end_line=5758; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -33660,9 +33543,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5722; + start_line=5758; start_column=24; - end_line=5722; end_column=59; + end_line=5758; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -33675,9 +33558,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5722; + start_line=5758; start_column=24; - end_line=5722; end_column=59; + end_line=5758; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -33690,9 +33573,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5722; + start_line=5758; start_column=24; - end_line=5722; end_column=59; + end_line=5758; end_column=59; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -33705,9 +33588,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5723; + start_line=5759; start_column=5; - end_line=5726; end_column=28; + end_line=5762; end_column=28; law_headings= ["Article R862-2"; "Section I : Dispositions communes aux aides personnelles au logement"; @@ -33756,9 +33639,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5628; + start_line=5664; start_column=6; - end_line=5634; end_column=30; + end_line=5670; end_column=30; law_headings= ["Article D861-9"; "Section 2 : Allocations de logement"; @@ -34013,8 +33896,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5280; start_column=5; - end_line=5281; end_column=34; + start_line=5318; start_column=5; + end_line=5319; end_column=34; law_headings=["Article R844-4"; "Chapitre IV : Conditions de peuplement"; "Titre IV : Allocations de Logement"; @@ -34029,8 +33912,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5273; start_column=5; - end_line=5275; end_column=58; + start_line=5311; start_column=5; + end_line=5313; end_column=58; law_headings=["Article R844-4"; "Chapitre IV : Conditions de peuplement"; "Titre IV : Allocations de Logement"; @@ -34440,8 +34323,13 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme | PersonneACharge.EnfantACharge enfant_ -> false | PersonneACharge.AutrePersonneACharge parent_ -> (o_and - (o_eq (parent_.AutrePersonneACharge.parente) - (Parente.Ascendant ())) + (match + (parent_.AutrePersonneACharge.parente) + with + | Parente.Ascendant _ -> true + | Parente.Descendant _ -> false + | Parente.CollateralDeuxiemeTroisiemeDegre _ -> + false) (o_and (o_lte_mon_mon (parent_.AutrePersonneACharge.ressources) @@ -34655,7 +34543,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1246; start_column=4; - end_line=1252; end_column=48; + end_line=1254; end_column=48; law_headings=["Article R823-4"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -34669,12 +34557,40 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme false | PersonneACharge.AutrePersonneACharge parent_ -> (o_and - (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi) - (o_lte_mon_mon - (parent_.AutrePersonneACharge.ressources) - (o_mult_mon_rat - plafond_individuel_l815_9_secu_ - (decimal_of_string "1.25"))))))) + (o_or + (match + (parent_.AutrePersonneACharge.parente) + with + | Parente.Ascendant _ -> true + | Parente.Descendant _ -> false + | Parente.CollateralDeuxiemeTroisiemeDegre _ -> + false) + (o_or + (match + (parent_.AutrePersonneACharge.parente) + with + | Parente.Ascendant _ -> + false + | Parente.Descendant _ -> + true + | Parente.CollateralDeuxiemeTroisiemeDegre _ -> + false) + (match + (parent_.AutrePersonneACharge.parente) + with + | Parente.Ascendant _ -> + false + | Parente.Descendant _ -> + false + | Parente.CollateralDeuxiemeTroisiemeDegre _ -> + true))) + (o_and + (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi) + (o_lte_mon_mon + (parent_.AutrePersonneACharge.ressources) + (o_mult_mon_rat + plafond_individuel_l815_9_secu_ + (decimal_of_string "1.25")))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -34747,9 +34663,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1844; + start_line=1846; start_column=5; - end_line=1850; end_column=34; + end_line=1852; end_column=34; law_headings= ["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; @@ -34810,9 +34726,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1574; + start_line=1572; start_column=5; - end_line=1580; end_column=34; + end_line=1578; end_column=34; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -35181,13 +35097,13 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1104; start_column=11; end_line=1104; end_column=31; + start_line=1066; start_column=11; end_line=1066; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1428; start_column=14; end_line=1428; end_column=34; + start_line=1430; start_column=14; end_line=1430; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35212,7 +35128,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1104; start_column=11; end_line=1104; end_column=31; + start_line=1066; start_column=11; end_line=1066; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -35222,13 +35138,13 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1096; start_column=10; end_line=1096; end_column=22; + start_line=1058; start_column=10; end_line=1058; end_column=22; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1972; start_column=14; end_line=1972; end_column=31; + start_line=1974; start_column=14; end_line=1974; end_column=31; law_headings=["Article D823-17"; "Sous-section 2 : Calcul de l'aide en secteur locatif"; "Section 1 : Calcul, liquidation et versement des aides"; @@ -35243,7 +35159,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1096; start_column=10; end_line=1096; end_column=22; + start_line=1058; start_column=10; end_line=1058; end_column=22; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -35253,7 +35169,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1105; start_column=11; end_line=1105; end_column=41; + start_line=1067; start_column=11; end_line=1067; end_column=41; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) @@ -35282,7 +35198,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1105; start_column=11; end_line=1105; end_column=41; + start_line=1067; start_column=11; end_line=1067; end_column=41; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -35292,22 +35208,22 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=11; end_line=1107; end_column=33; + start_line=1069; start_column=11; end_line=1069; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=11; - end_line=1107; end_column=33; + start_line=1069; start_column=11; + end_line=1069; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6410; start_column=24; - end_line=6410; end_column=46; + start_line=6398; start_column=24; + end_line=6398; end_column=46; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35357,8 +35273,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6422; start_column=31; - end_line=6422; end_column=56; + start_line=6410; start_column=31; + end_line=6410; end_column=56; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35370,8 +35286,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6416; start_column=43; - end_line=6416; end_column=60; + start_line=6404; start_column=43; + end_line=6404; end_column=60; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35386,8 +35302,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6424; start_column=15; - end_line=6424; end_column=76; + start_line=6412; start_column=15; + end_line=6412; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35399,8 +35315,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6419; start_column=29; - end_line=6419; end_column=42; + start_line=6407; start_column=29; + end_line=6407; end_column=42; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35412,8 +35328,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6417; start_column=41; - end_line=6417; end_column=66; + start_line=6405; start_column=41; + end_line=6405; end_column=66; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35425,8 +35341,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6420; start_column=46; - end_line=6420; end_column=76; + start_line=6408; start_column=46; + end_line=6408; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35438,8 +35354,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6418; start_column=20; - end_line=6418; end_column=24; + start_line=6406; start_column=20; + end_line=6406; end_column=24; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35451,8 +35367,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try true with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6428; start_column=36; - end_line=6428; end_column=40; + start_line=6416; start_column=36; + end_line=6416; end_column=40; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35464,8 +35380,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6435; start_column=72; - end_line=6435; end_column=76; + start_line=6423; start_column=72; + end_line=6423; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35477,8 +35393,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6436; start_column=25; - end_line=6436; end_column=34; + start_line=6424; start_column=25; + end_line=6424; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35490,8 +35406,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try false with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6432; start_column=26; - end_line=6432; end_column=30; + start_line=6420; start_column=26; + end_line=6420; end_column=30; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35503,8 +35419,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try (money_of_cents_string "0") with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6439; start_column=42; - end_line=6439; end_column=45; + start_line=6428; start_column=42; + end_line=6428; end_column=45; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35519,8 +35435,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6440; start_column=38; - end_line=6440; end_column=76; + start_line=6429; start_column=38; + end_line=6429; end_column=76; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35532,8 +35448,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6415; start_column=25; - end_line=6415; end_column=34; + start_line=6403; start_column=25; + end_line=6403; end_column=34; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35549,8 +35465,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6441; start_column=42; - end_line=6441; end_column=57; + start_line=6430; start_column=42; + end_line=6430; end_column=57; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35587,8 +35503,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=6414; start_column=9; - end_line=6442; end_column=10; + start_line=6402; start_column=9; + end_line=6431; end_column=10; law_headings=["Article D863-7"; "Sous-section III : Modalités de liquidation et de versement"; "Section II : Dispositions communes aux aides personnelles au logement"; @@ -35604,7 +35520,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (traitement_formule_.CalculAllocationLogementLocatif.traitement_aide_finale)}))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1555; start_column=14; end_line=1555; end_column=36; + start_line=1557; start_column=14; end_line=1557; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35630,8 +35546,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try (location_.Location.loyer_principal) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1566; start_column=31; - end_line=1566; end_column=55; + start_line=1568; start_column=31; + end_line=1568; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35643,8 +35559,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1561; start_column=43; - end_line=1561; end_column=60; + start_line=1563; start_column=43; + end_line=1563; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35659,8 +35575,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1568; start_column=15; - end_line=1568; end_column=69; + start_line=1570; start_column=15; + end_line=1570; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35672,8 +35588,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1564; start_column=29; - end_line=1564; end_column=42; + start_line=1566; start_column=29; + end_line=1566; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35685,8 +35601,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1562; start_column=41; - end_line=1562; end_column=66; + start_line=1564; start_column=41; + end_line=1564; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35698,8 +35614,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1565; start_column=46; - end_line=1565; end_column=76; + start_line=1567; start_column=46; + end_line=1567; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35711,8 +35627,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1563; start_column=20; - end_line=1563; end_column=24; + start_line=1565; start_column=20; + end_line=1565; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35726,8 +35642,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1569; start_column=36; - end_line=1569; end_column=65; + start_line=1571; start_column=36; + end_line=1571; end_column=65; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35742,8 +35658,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1572; start_column=15; - end_line=1572; end_column=80; + start_line=1574; start_column=15; + end_line=1574; end_column=80; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35755,8 +35671,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try type_aide_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1573; start_column=25; - end_line=1573; end_column=34; + start_line=1575; start_column=25; + end_line=1575; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35768,8 +35684,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (location_.Location.colocation) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1570; start_column=26; - end_line=1570; end_column=45; + start_line=1572; start_column=26; + end_line=1572; end_column=45; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35791,8 +35707,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1575; start_column=16; - end_line=1578; end_column=39; + start_line=1577; start_column=16; + end_line=1580; end_column=39; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35806,8 +35722,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1579; start_column=38; - end_line=1579; end_column=69; + start_line=1581; start_column=38; + end_line=1581; end_column=69; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35819,8 +35735,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1560; start_column=25; - end_line=1560; end_column=34; + start_line=1562; start_column=25; + end_line=1562; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35835,8 +35751,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1580; start_column=42; - end_line=1580; end_column=77; + start_line=1582; start_column=42; + end_line=1582; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35872,8 +35788,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1559; start_column=9; - end_line=1581; end_column=10; + start_line=1561; start_column=9; + end_line=1583; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35904,8 +35820,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1615; start_column=44; - end_line=1615; end_column=61; + start_line=1617; start_column=44; + end_line=1617; end_column=61; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35917,8 +35833,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1616; start_column=42; - end_line=1616; end_column=67; + start_line=1618; start_column=42; + end_line=1618; end_column=67; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35930,8 +35846,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1623; start_column=47; - end_line=1623; end_column=77; + start_line=1625; start_column=47; + end_line=1625; end_column=77; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35943,8 +35859,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1617; start_column=21; - end_line=1617; end_column=25; + start_line=1619; start_column=21; + end_line=1619; end_column=25; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35956,8 +35872,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1618; start_column=26; - end_line=1618; end_column=35; + start_line=1620; start_column=26; + end_line=1620; end_column=35; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35969,8 +35885,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1622; start_column=30; - end_line=1622; end_column=43; + start_line=1624; start_column=30; + end_line=1624; end_column=43; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -35985,8 +35901,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1624; start_column=38; - end_line=1624; end_column=72; + start_line=1626; start_column=38; + end_line=1626; end_column=72; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36001,8 +35917,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1632; start_column=40; - end_line=1632; end_column=76; + start_line=1634; start_column=40; + end_line=1634; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36017,8 +35933,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1627; start_column=36; - end_line=1627; end_column=68; + start_line=1629; start_column=36; + end_line=1629; end_column=68; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36033,8 +35949,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1626; start_column=38; - end_line=1626; end_column=79; + start_line=1628; start_column=38; + end_line=1628; end_column=79; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36049,8 +35965,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1629; start_column=14; - end_line=1629; end_column=66; + start_line=1631; start_column=14; + end_line=1631; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36065,8 +35981,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1630; start_column=37; - end_line=1630; end_column=70; + start_line=1632; start_column=37; + end_line=1632; end_column=70; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36081,8 +35997,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1625; start_column=40; - end_line=1625; end_column=76; + start_line=1627; start_column=40; + end_line=1627; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36095,8 +36011,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (proprietaire_.Proprietaire.copropriete) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1631; start_column=28; - end_line=1631; end_column=52; + start_line=1633; start_column=28; + end_line=1633; end_column=52; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36111,8 +36027,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1620; start_column=11; - end_line=1621; end_column=81; + start_line=1622; start_column=11; + end_line=1623; end_column=81; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36156,8 +36072,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1614; start_column=10; - end_line=1633; end_column=11; + start_line=1616; start_column=10; + end_line=1635; end_column=11; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36185,8 +36101,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (logement_foyer__.LogementFoyer.type_user) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1602; start_column=35; - end_line=1602; end_column=55; + start_line=1604; start_column=35; + end_line=1604; end_column=55; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36201,8 +36117,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1603; start_column=37; - end_line=1603; end_column=74; + start_line=1605; start_column=37; + end_line=1605; end_column=74; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36214,8 +36130,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try residence_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1595; start_column=25; - end_line=1595; end_column=34; + start_line=1597; start_column=25; + end_line=1597; end_column=34; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36228,8 +36144,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1599; start_column=25; - end_line=1599; end_column=50; + start_line=1601; start_column=25; + end_line=1601; end_column=50; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36241,8 +36157,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try ressources_menage_avec_arrondi_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1593; start_column=43; - end_line=1593; end_column=60; + start_line=1595; start_column=43; + end_line=1595; end_column=60; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36254,8 +36170,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try nombre_personnes_a_charge_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1594; start_column=41; - end_line=1594; end_column=66; + start_line=1596; start_column=41; + end_line=1596; end_column=66; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36267,8 +36183,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try situation_familiale_calcul_apl_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1598; start_column=46; - end_line=1598; end_column=76; + start_line=1600; start_column=46; + end_line=1600; end_column=76; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36280,8 +36196,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try zone_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1596; start_column=20; - end_line=1596; end_column=24; + start_line=1598; start_column=20; + end_line=1598; end_column=24; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36293,8 +36209,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (try date_courante_ with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1597; start_column=29; - end_line=1597; end_column=42; + start_line=1599; start_column=29; + end_line=1599; end_column=42; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36309,8 +36225,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1601; start_column=13; - end_line=1601; end_column=64; + start_line=1603; start_column=13; + end_line=1603; end_column=64; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36353,8 +36269,8 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ( if ((log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1592; start_column=9; - end_line=1604; end_column=10; + start_line=1594; start_column=9; + end_line=1606; end_column=10; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36371,7 +36287,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1107; start_column=11; end_line=1107; end_column=33; + start_line=1069; start_column=11; end_line=1069; end_column=33; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -36382,15 +36298,15 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1110; start_column=12; - end_line=1110; end_column=34; + start_line=1072; start_column=12; + end_line=1072; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1441; start_column=14; - end_line=1441; end_column=36; + start_line=1443; start_column=14; + end_line=1443; end_column=36; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36405,14 +36321,14 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1110; start_column=12; end_line=1110; end_column=34; + start_line=1072; start_column=12; end_line=1072; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1110; start_column=12; end_line=1110; end_column=34; + start_line=1072; start_column=12; end_line=1072; end_column=34; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -36421,22 +36337,22 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1109; start_column=12; end_line=1109; end_column=31; + start_line=1071; start_column=12; end_line=1071; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1109; start_column=12; - end_line=1109; end_column=31; + start_line=1071; start_column=12; + end_line=1071; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=372; start_column=5; - end_line=373; end_column=34; + end_line=374; end_column=34; law_headings=["Article 7"; "Décret n° 2021-1750 du 21 décembre 2021 portant diverses mesures sur les aides personnelles au logement et relatif aux aides personnelles au logement à Saint-Pierre-et-Miquelon"]} (o_and @@ -36451,8 +36367,11 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | Collectivite.Metropole _ -> false | Collectivite.SaintPierreEtMiquelon _ -> true | Collectivite.Mayotte _ -> false) - (o_gte_dat_dat date_courante_ - (date_of_numbers (2022) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lte_dat_dat date_courante_ + (date_of_numbers (2025) (12) (31))))))) (fun (_: unit) -> o_mult_mon_rat (sous_calcul_traitement_.TraitementFormuleAideFinale.aide_finale_formule) @@ -36463,7 +36382,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (decimal_of_string "8."))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=1439; start_column=14; end_line=1439; end_column=33; + start_line=1441; start_column=14; end_line=1441; end_column=33; law_headings=["Article D823-9"; "Section 1 : Calcul, liquidation et versement des aides"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36477,7 +36396,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1109; start_column=12; end_line=1109; end_column=31; + start_line=1071; start_column=12; end_line=1071; end_column=31; law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})))) in @@ -36504,7 +36423,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2080; start_column=14; end_line=2080; end_column=47; + start_line=2082; start_column=14; end_line=2082; end_column=47; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36540,8 +36459,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2056; start_column=5; - end_line=2061; end_column=77; + start_line=2058; start_column=5; + end_line=2063; end_column=77; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36744,8 +36663,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2065; start_column=6; - end_line=2076; end_column=75; + start_line=2067; start_column=6; + end_line=2078; end_column=75; law_headings=["Article D823-20"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -36900,9 +36819,9 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5502; + start_line=5538; start_column=5; - end_line=5502; end_column=40; + end_line=5538; end_column=40; law_headings=["Article D861-7"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -36938,9 +36857,9 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1889; + start_line=1891; start_column=5; - end_line=1889; end_column=54; + end_line=1891; end_column=54; law_headings=["Article L863-2"; "Section 2 : Dispositions communes aux aides applicables à Saint-Pierre-et-Miquelon"; "Chapitre III : Saint-Pierre-et-Miquelon"; @@ -36975,8 +36894,8 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1314; start_column=5; - end_line=1314; end_column=40; + start_line=1312; start_column=5; + end_line=1312; end_column=40; law_headings=["Article L861-4"; "Section 2 : Dispositions communes aux aides personnelles au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -37045,7 +36964,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2106; start_column=14; end_line=2106; end_column=40; + start_line=2108; start_column=14; end_line=2108; end_column=40; law_headings=["Article D823-22"; "Section 2 : Prime de déménagement"; "Chapitre III : Modalités de liquidation et de versement"; @@ -37085,7 +37004,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4179; start_column=14; end_line=4179; end_column=28; + start_line=4181; start_column=14; end_line=4181; end_column=28; law_headings=["Article D841-1"; "Chapitre 1 : Champ d'application"; "Titre IV : Allocations de Logement"; @@ -37230,8 +37149,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1044; start_column=9; - end_line=1044; end_column=29; + start_line=1043; start_column=9; + end_line=1043; end_column=29; law_headings=["Article L841-1"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -37258,8 +37177,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1756; start_column=9; - end_line=1756; end_column=29; + start_line=1760; start_column=9; + end_line=1760; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -37280,8 +37199,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1450; start_column=9; - end_line=1450; end_column=29; + start_line=1448; start_column=9; + end_line=1448; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -37373,8 +37292,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1755; start_column=9; - end_line=1755; end_column=29; + start_line=1759; start_column=9; + end_line=1759; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -37395,8 +37314,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1449; start_column=9; - end_line=1449; end_column=29; + start_line=1447; start_column=9; + end_line=1447; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -37488,8 +37407,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1754; start_column=9; - end_line=1754; end_column=29; + start_line=1758; start_column=9; + end_line=1758; end_column=29; law_headings=["Article L862-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -37510,8 +37429,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1448; start_column=9; - end_line=1448; end_column=29; + start_line=1446; start_column=9; + end_line=1446; end_column=29; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -37601,9 +37520,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4372; + start_line=4410; start_column=5; - end_line=4377; end_column=28; + end_line=4415; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37646,9 +37565,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4355; + start_line=4393; start_column=5; - end_line=4360; end_column=28; + end_line=4398; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37690,8 +37609,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4338; start_column=5; - end_line=4345; end_column=28; + start_line=4376; start_column=5; + end_line=4383; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37745,8 +37664,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4308; start_column=5; - end_line=4310; end_column=28; + start_line=4346; start_column=5; + end_line=4348; end_column=28; law_headings=["Article R842-5"; "Section 2 : Accession à la propriété"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37857,8 +37776,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4777; start_column=9; - end_line=4777; end_column=68; + start_line=4815; start_column=9; + end_line=4815; end_column=68; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37869,8 +37788,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4777; start_column=9; - end_line=4777; end_column=68; + start_line=4815; start_column=9; + end_line=4815; end_column=68; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -37895,7 +37814,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "éligibilité_commune.condition_logement_surface"] (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4778; start_column=9; end_line=4778; end_column=55; + start_line=4816; start_column=9; end_line=4816; end_column=55; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; "Titre IV : Allocations de Logement"; @@ -37905,7 +37824,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=4778; start_column=9; end_line=4778; end_column=55; + start_line=4816; start_column=9; end_line=4816; end_column=55; law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; @@ -38119,172 +38038,31 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([||]) - (fun + ([|( + fun (_: unit) -> - (log_decision_taken - {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1818; - start_column=5; - end_line=1818; end_column=66; + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=442; + start_column=11; + end_line=442; end_column=52; law_headings= - ["Article L862-3"; - "Titre VI : Dispositions particulières à l'outre-mer"; - "Livre VIII : Aides personnelles au logement"; - "Partie législative"; - "Code de la construction et de l'habitation"]} - (o_and - (match - (menage_.Menage.residence) - with - | - Collectivite.Guadeloupe _ -> - false - | - Collectivite.Guyane _ -> - false - | - Collectivite.Martinique _ -> - false - | - Collectivite.LaReunion _ -> - false - | - Collectivite.SaintBarthelemy _ -> - true - | - Collectivite.SaintMartin _ -> - true - | - Collectivite.Metropole _ -> - false - | - Collectivite.SaintPierreEtMiquelon _ -> - false - | - Collectivite.Mayotte _ -> - false) - (demandeur_.Demandeur.est_non_salarie_agricole_l781_8_l_781_46_code_rural)))) - (fun - (_: unit) -> - true))|]) - (fun - (_: unit) -> - (log_decision_taken - {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1778; - start_column=5; - end_line=1799; end_column=9; - law_headings= - ["Article L862-3"; - "Titre VI : Dispositions particulières à l'outre-mer"; - "Livre VIII : Aides personnelles au logement"; - "Partie législative"; - "Code de la construction et de l'habitation"]} - ( - o_and - (match - (menage_.Menage.residence) - with - | - Collectivite.Guadeloupe _ -> - false - | - Collectivite.Guyane _ -> - false - | - Collectivite.Martinique _ -> - false - | - Collectivite.LaReunion _ -> - false - | - Collectivite.SaintBarthelemy _ -> - true - | - Collectivite.SaintMartin _ -> - true - | - Collectivite.Metropole _ -> - false - | - Collectivite.SaintPierreEtMiquelon _ -> - false - | - Collectivite.Mayotte _ -> - false) - (o_gte_int_int - (o_length - (o_filter - (fun - (personne_a_charge_: - PersonneACharge.t) -> - match - personne_a_charge_ - with - | - PersonneACharge.EnfantACharge enfant_ -> - ((log_end_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "output"] - (embed_bool) - ((log_begin_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - prestations_familiales_dot_droit_ouvert_) - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "input0"] - (embed_enfant_prestations_familiales) - ({EnfantPrestationsFamiliales.identifiant = - (enfant_.EnfantACharge.identifiant); - EnfantPrestationsFamiliales.obligation_scolaire = - (enfant_.EnfantACharge.obligation_scolaire); - EnfantPrestationsFamiliales.remuneration_mensuelle = - (enfant_.EnfantACharge.remuneration_mensuelle); - EnfantPrestationsFamiliales.date_de_naissance = - (enfant_.EnfantACharge.date_de_naissance); - EnfantPrestationsFamiliales.prise_en_charge = - (match - (enfant_.EnfantACharge.situation_garde_alternee) - with - | - SituationGardeAlternee.PasDeGardeAlternee _ -> - (PriseEnChargeEnfant.EffectiveEtPermanente - ()) - | - SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> - (PriseEnChargeEnfant.GardeAlterneePartageAllocations - ())); - EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = - (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); - EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = - (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) - | - PersonneACharge.AutrePersonneACharge _ -> - false) - (menage_.Menage.personnes_a_charge))) - (integer_of_string - "1"))))) - (fun - (_: unit) -> - true)); - (fun (_: unit) -> - handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=442; - start_column=11; - end_line=442; end_column=52; - law_headings= - ["Éligibilité aux allocations de logement"; + ["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|( + ([|( + fun + (_: unit) -> + handle_default + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=442; + start_column=11; + end_line=442; end_column=52; + law_headings= + ["Éligibilité aux allocations de logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]} + ([|( fun (_: unit) -> handle_default @@ -38301,9 +38079,162 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1528; + start_line=1820; start_column=5; - end_line=1528; end_column=66; + end_line=1820; end_column=66; + law_headings= + ["Article L862-3"; + "Titre VI : Dispositions particulières à l'outre-mer"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + (o_and + (match + (menage_.Menage.residence) + with + | + Collectivite.Guadeloupe _ -> + false + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + false + | + Collectivite.LaReunion _ -> + false + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + false) + (demandeur_.Demandeur.est_non_salarie_agricole_l781_8_l_781_46_code_rural)))) + (fun + (_: unit) -> + true))|]) + (fun + (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1781; + start_column=5; + end_line=1802; end_column=9; + law_headings= + ["Article L862-3"; + "Titre VI : Dispositions particulières à l'outre-mer"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + (o_and + (match + (menage_.Menage.residence) + with + | + Collectivite.Guadeloupe _ -> + false + | + Collectivite.Guyane _ -> + false + | + Collectivite.Martinique _ -> + false + | + Collectivite.LaReunion _ -> + false + | + Collectivite.SaintBarthelemy _ -> + true + | + Collectivite.SaintMartin _ -> + true + | + Collectivite.Metropole _ -> + false + | + Collectivite.SaintPierreEtMiquelon _ -> + false + | + Collectivite.Mayotte _ -> + false) + (o_gte_int_int + (o_length + (o_filter + (fun + (personne_a_charge_: + PersonneACharge.t) -> + match + personne_a_charge_ + with + | + PersonneACharge.EnfantACharge enfant_ -> + ((log_end_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "output"] + (embed_bool) + ((log_begin_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + prestations_familiales_dot_droit_ouvert_) + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "input0"] + (embed_enfant_prestations_familiales) + ({EnfantPrestationsFamiliales.identifiant = + (enfant_.EnfantACharge.identifiant); + EnfantPrestationsFamiliales.obligation_scolaire = + (enfant_.EnfantACharge.obligation_scolaire); + EnfantPrestationsFamiliales.remuneration_mensuelle = + (enfant_.EnfantACharge.remuneration_mensuelle); + EnfantPrestationsFamiliales.date_de_naissance = + (enfant_.EnfantACharge.date_de_naissance); + EnfantPrestationsFamiliales.prise_en_charge = + (match + (enfant_.EnfantACharge.situation_garde_alternee) + with + | + SituationGardeAlternee.PasDeGardeAlternee _ -> + (PriseEnChargeEnfant.EffectiveEtPermanente + ()) + | + SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> + (PriseEnChargeEnfant.GardeAlterneePartageAllocations + ())); + EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = + (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); + EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = + (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) + | + PersonneACharge.AutrePersonneACharge _ -> + false) + (menage_.Menage.personnes_a_charge))) + (integer_of_string + "1"))))) + (fun + (_: unit) -> + true))|]) + (fun + (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1526; + start_column=5; + end_line=1526; end_column=66; law_headings= ["Article L861-6"; "Section 4 : Allocations de logement"; @@ -38347,13 +38278,13 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> true))|]) - (fun + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1486; + start_line=1484; start_column=5; - end_line=1507; end_column=9; + end_line=1505; end_column=9; law_headings= ["Article L861-6"; "Section 4 : Allocations de logement"; @@ -38362,8 +38293,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - ( - o_and + (o_and (match (menage_.Menage.residence) with @@ -38452,15 +38382,62 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (menage_.Menage.personnes_a_charge))) (integer_of_string "1"))))) + (fun + (_: unit) -> + true))|]) + (fun + (_: unit) -> + (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1047; + start_column=5; + end_line=1052; end_column=29; + law_headings= + ["Article L841-1"; + "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + ( + o_and + l_841_1_6_applicable_ + (match + (menage_.Menage.situation_familiale) + with + | + SituationFamiliale.Celibataire _ -> + (o_and + (o_eq + (o_length + (menage_.Menage.personnes_a_charge)) + (integer_of_string + "0")) + (menage_.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse)) + | + SituationFamiliale.Maries _ -> + false + | + SituationFamiliale.Pacses _ -> + false + | + SituationFamiliale.Concubins _ -> + false + | + SituationFamiliale.CelibataireSepareDeFait _ -> + false + | + SituationFamiliale.ConcubinageDontSepareDeFait _ -> + false)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1049; + start_line=1022; start_column=5; - end_line=1054; end_column=29; + end_line=1033; end_column=13; law_headings= ["Article L841-1"; "Chapitre Ier : Champ d'application"; @@ -38468,38 +38445,34 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (o_and - l_841_1_6_applicable_ - (match - (menage_.Menage.situation_familiale) - with - | SituationFamiliale.Celibataire _ -> - ( - o_and - (o_eq - (o_length - (menage_.Menage.personnes_a_charge)) - (integer_of_string - "0")) - (menage_.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse)) - | SituationFamiliale.Maries _ -> + (o_gte_int_int + (o_length + (o_filter + (fun + (personne_a_charge_: + PersonneACharge.t) -> + match + personne_a_charge_ + with + | + PersonneACharge.EnfantACharge enfant_ -> false - | SituationFamiliale.Pacses _ -> - false - | SituationFamiliale.Concubins _ -> - false - | SituationFamiliale.CelibataireSepareDeFait _ -> - false - | SituationFamiliale.ConcubinageDontSepareDeFait _ -> - false)))) + | + PersonneACharge.AutrePersonneACharge parent_ -> + (o_and + (parent_.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre) + (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi))) + (menage_.Menage.personnes_a_charge))) + (integer_of_string + "1")))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1023; + start_line=1004; start_column=5; - end_line=1034; end_column=13; + end_line=1006; end_column=9; law_headings=["Article L841-1"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -38512,16 +38485,24 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (personne_a_charge_: PersonneACharge.t) -> - match - personne_a_charge_ - with - | PersonneACharge.EnfantACharge enfant_ -> - false - | PersonneACharge.AutrePersonneACharge parent_ -> - ( - o_and - (parent_.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre) - (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi))) + (log_end_call + ["ÉligibilitéAidesPersonnelleLogement"; + "condition_2_r823_4"] + ((log_variable_definition + ["ÉligibilitéAidesPersonnelleLogement"; + "condition_2_r823_4"; + "output"] + (embed_bool) + ((log_begin_call + ["ÉligibilitéAidesPersonnelleLogement"; + "condition_2_r823_4"] + eligibilite_commune_dot_condition_2_r823_4_) + ((log_variable_definition + ["ÉligibilitéAidesPersonnelleLogement"; + "condition_2_r823_4"; + "input0"] + (embed_personne_a_charge) + personne_a_charge_))))))) (menage_.Menage.personnes_a_charge))) (integer_of_string "1")))) @@ -38529,53 +38510,102 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1005; - start_column=5; - end_line=1007; end_column=9; + start_line=964; start_column=5; + end_line=990; end_column=29; law_headings=["Article L841-1"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (o_gte_int_int - (o_length - (o_filter - (fun - (personne_a_charge_: - PersonneACharge.t) -> - (log_end_call - ["ÉligibilitéAidesPersonnelleLogement"; - "condition_2_r823_4"] - ((log_variable_definition - ["ÉligibilitéAidesPersonnelleLogement"; - "condition_2_r823_4"; - "output"] - (embed_bool) - ((log_begin_call - ["ÉligibilitéAidesPersonnelleLogement"; - "condition_2_r823_4"] - eligibilite_commune_dot_condition_2_r823_4_) - ((log_variable_definition - ["ÉligibilitéAidesPersonnelleLogement"; - "condition_2_r823_4"; - "input0"] - (embed_personne_a_charge) - personne_a_charge_))))))) - (menage_.Menage.personnes_a_charge))) - (integer_of_string "1")))) + (o_and + (o_eq + (o_length + (o_filter + (fun + (personne_a_charge_: + PersonneACharge.t) -> + match + personne_a_charge_ + with + | PersonneACharge.EnfantACharge enfant_ -> + (o_not + ((log_end_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "output"] + (embed_bool) + ((log_begin_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + prestations_familiales_dot_droit_ouvert_) + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "input0"] + (embed_enfant_prestations_familiales) + ({EnfantPrestationsFamiliales.identifiant = + (enfant_.EnfantACharge.identifiant); + EnfantPrestationsFamiliales.obligation_scolaire = + (enfant_.EnfantACharge.obligation_scolaire); + EnfantPrestationsFamiliales.remuneration_mensuelle = + (enfant_.EnfantACharge.remuneration_mensuelle); + EnfantPrestationsFamiliales.date_de_naissance = + (enfant_.EnfantACharge.date_de_naissance); + EnfantPrestationsFamiliales.prise_en_charge = + (match + (enfant_.EnfantACharge.situation_garde_alternee) + with + | + SituationGardeAlternee.PasDeGardeAlternee _ -> + (PriseEnChargeEnfant.EffectiveEtPermanente + ()) + | + SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> + (PriseEnChargeEnfant.GardeAlterneePartageAllocations + ())); + EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = + (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); + EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = + (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))) + | PersonneACharge.AutrePersonneACharge _ -> + false) + (menage_.Menage.personnes_a_charge))) + (integer_of_string "0")) + (match + (menage_.Menage.situation_familiale) + with + | SituationFamiliale.Celibataire _ -> + false + | SituationFamiliale.Maries date_mariage_ -> + (o_lte_dat_dat + date_courante_ + (o_add_dat_dur AbortOnRound + date_mariage_ + duree_l841_1_3_)) + | SituationFamiliale.Pacses _ -> + false + | SituationFamiliale.Concubins _ -> + false + | SituationFamiliale.CelibataireSepareDeFait _ -> + false + | SituationFamiliale.ConcubinageDontSepareDeFait _ -> + false)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=965; start_column=5; - end_line=991; end_column=29; + start_line=931; start_column=5; + end_line=953; end_column=8; law_headings=["Article L841-1"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (o_and + (o_and l_841_1_2_applicable_ (o_eq (o_length (o_filter @@ -38585,160 +38615,83 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi match personne_a_charge_ with | PersonneACharge.EnfantACharge enfant_ -> - (o_not ((log_end_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "output"] - (embed_bool) - ((log_begin_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - prestations_familiales_dot_droit_ouvert_) - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "input0"] - (embed_enfant_prestations_familiales) - ({EnfantPrestationsFamiliales.identifiant = - (enfant_.EnfantACharge.identifiant); - EnfantPrestationsFamiliales.obligation_scolaire = - (enfant_.EnfantACharge.obligation_scolaire); - EnfantPrestationsFamiliales.remuneration_mensuelle = - (enfant_.EnfantACharge.remuneration_mensuelle); - EnfantPrestationsFamiliales.date_de_naissance = - (enfant_.EnfantACharge.date_de_naissance); - EnfantPrestationsFamiliales.prise_en_charge = - (match - (enfant_.EnfantACharge.situation_garde_alternee) - with - | SituationGardeAlternee.PasDeGardeAlternee _ -> - (PriseEnChargeEnfant.EffectiveEtPermanente + ((log_end_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "output"] + (embed_bool) + ((log_begin_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + prestations_familiales_dot_droit_ouvert_) + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "input0"] + (embed_enfant_prestations_familiales) + ({EnfantPrestationsFamiliales.identifiant = + (enfant_.EnfantACharge.identifiant); + EnfantPrestationsFamiliales.obligation_scolaire = + (enfant_.EnfantACharge.obligation_scolaire); + EnfantPrestationsFamiliales.remuneration_mensuelle = + (enfant_.EnfantACharge.remuneration_mensuelle); + EnfantPrestationsFamiliales.date_de_naissance = + (enfant_.EnfantACharge.date_de_naissance); + EnfantPrestationsFamiliales.prise_en_charge = + (match + (enfant_.EnfantACharge.situation_garde_alternee) + with + | SituationGardeAlternee.PasDeGardeAlternee _ -> + (PriseEnChargeEnfant.EffectiveEtPermanente ()) - | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> - (PriseEnChargeEnfant.GardeAlterneePartageAllocations + | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> + (PriseEnChargeEnfant.GardeAlterneePartageAllocations ())); - EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = - (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); - EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = - (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))) + EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = + (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); + EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = + (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) | PersonneACharge.AutrePersonneACharge _ -> false) (menage_.Menage.personnes_a_charge))) - (integer_of_string "0")) - (match - (menage_.Menage.situation_familiale) - with - | SituationFamiliale.Celibataire _ -> - false - | SituationFamiliale.Maries date_mariage_ -> - (o_lte_dat_dat date_courante_ - (o_add_dat_dur AbortOnRound - date_mariage_ - duree_l841_1_3_)) - | SituationFamiliale.Pacses _ -> - false - | SituationFamiliale.Concubins _ -> - false - | SituationFamiliale.CelibataireSepareDeFait _ -> - false - | SituationFamiliale.ConcubinageDontSepareDeFait _ -> - false)))) (fun (_: unit) -> true))|]) + (integer_of_string "1"))))) + (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=932; start_column=5; - end_line=954; end_column=8; + start_line=909; start_column=5; + end_line=915; end_column=6; law_headings=["Article L841-1"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (o_and l_841_1_2_applicable_ - (o_eq - (o_length - (o_filter - (fun - (personne_a_charge_: - PersonneACharge.t) -> - match personne_a_charge_ - with - | PersonneACharge.EnfantACharge enfant_ -> - ((log_end_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; "output"] - (embed_bool) ((log_begin_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - prestations_familiales_dot_droit_ouvert_) - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; "input0"] - (embed_enfant_prestations_familiales) - ({EnfantPrestationsFamiliales.identifiant = - (enfant_.EnfantACharge.identifiant); - EnfantPrestationsFamiliales.obligation_scolaire = - (enfant_.EnfantACharge.obligation_scolaire); - EnfantPrestationsFamiliales.remuneration_mensuelle = - (enfant_.EnfantACharge.remuneration_mensuelle); - EnfantPrestationsFamiliales.date_de_naissance = - (enfant_.EnfantACharge.date_de_naissance); - EnfantPrestationsFamiliales.prise_en_charge = - (match - (enfant_.EnfantACharge.situation_garde_alternee) - with - | SituationGardeAlternee.PasDeGardeAlternee _ -> - (PriseEnChargeEnfant.EffectiveEtPermanente - ()) - | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> - (PriseEnChargeEnfant.GardeAlterneePartageAllocations - ())); - EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = - (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); - EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = - (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) - | PersonneACharge.AutrePersonneACharge _ -> - false) - (menage_.Menage.personnes_a_charge))) - (integer_of_string "1"))))) - (fun (_: unit) -> true))|]) - (fun (_: unit) -> (log_decision_taken - {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=909; start_column=5; - end_line=915; end_column=6; - law_headings=["Article L841-1"; - "Chapitre Ier : Champ d'application"; - "Titre IV : Allocations de logement"; - "Livre VIII : Aides personnelles au logement"; - "Partie législative"; - "Code de la construction et de l'habitation"]} - (o_and l_841_1_1_applicable_ - (o_fold - (fun (acc_: bool) - (prestation_: PrestationRecue.t) -> - o_or acc_ - (o_or - (o_eq prestation_ - (PrestationRecue.AllocationsFamiliales - ())) - (o_or - (o_eq prestation_ - (PrestationRecue.ComplementFamilial - ())) - (o_or - (o_eq prestation_ - (PrestationRecue.AllocationSoutienFamilial - ())) - (o_eq prestation_ - (PrestationRecue.AllocationSoutienEnfantHandicape - ())))))) false - (menage_.Menage.prestations_recues))))) - (fun (_: unit) -> true))|]) + (o_and l_841_1_1_applicable_ + (o_fold + (fun (acc_: bool) + (prestation_: PrestationRecue.t) -> + o_or acc_ + (o_or + (o_eq prestation_ + (PrestationRecue.AllocationsFamiliales + ())) + (o_or + (o_eq prestation_ + (PrestationRecue.ComplementFamilial + ())) + (o_or + (o_eq prestation_ + (PrestationRecue.AllocationSoutienFamilial + ())) + (o_eq prestation_ + (PrestationRecue.AllocationSoutienEnfantHandicape + ())))))) false + (menage_.Menage.prestations_recues))))) + (fun (_: unit) -> true))|]) (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=442; start_column=11; end_line=442; end_column=52; @@ -38790,9 +38743,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1638; start_column=5; - end_line=1639; end_column=79; - law_headings=["Article L816-8"; + start_line=1636; start_column=5; + end_line=1637; end_column=79; + law_headings=["Article L861-8"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Dispositions particulières à l'outre-mer"; @@ -38819,8 +38772,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ()))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1604; start_column=5; - end_line=1613; end_column=28; + start_line=1602; start_column=5; + end_line=1611; end_column=28; law_headings=["Article L861-6"; "Section 4 : Allocations de logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -38879,8 +38832,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1181; start_column=5; - end_line=1181; end_column=73; + start_line=1179; start_column=5; + end_line=1179; end_column=73; law_headings=["Article L841-3"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -38893,8 +38846,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ()))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1195; start_column=5; - end_line=1198; end_column=28; + start_line=1193; start_column=5; + end_line=1196; end_column=28; law_headings=["Article L841-4"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -38916,7 +38869,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi TypeEligibiliteAllocationLogement.PasEligible ()))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1081; start_column=29; end_line=1081; end_column=40; + start_line=1079; start_column=29; end_line=1079; end_column=40; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -38992,8 +38945,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3018; start_column=5; - end_line=3021; end_column=41; + start_line=3020; start_column=5; + end_line=3023; end_column=41; law_headings=["Article R832-7"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -39033,8 +38986,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=2983; start_column=5; - end_line=2985; end_column=42; + start_line=2985; start_column=5; + end_line=2987; end_column=42; law_headings=["Article R832-5"; "Section 2 : Accession à la propriété"; "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; @@ -39211,7 +39164,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (embed_date) (handle_default {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5467; start_column=14; end_line=5467; end_column=66; + start_line=5503; start_column=14; end_line=5503; end_column=66; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -39221,7 +39174,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=5468; start_column=5; end_line=5469; end_column=53; + start_line=5504; start_column=5; end_line=5505; end_column=53; law_headings=["Article R861-5"; "Capitre I : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; "Titre VI : Disposition particulières à l'outre-mer"; @@ -39281,8 +39234,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4637; start_column=6; - end_line=4637; end_column=43; + start_line=4655; start_column=6; + end_line=4655; end_column=43; law_headings=["Article 49"; "Chapitre XI : Dispositions communes"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -39338,8 +39291,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1419; start_column=5; - end_line=1422; end_column=30; + start_line=1417; start_column=5; + end_line=1420; end_column=30; law_headings=["Article L861-5-1"; "Section 3 : Aide personnalisée au logement"; "Chapitre Ier : Guadeloupe, Guyane, Martinique, La Réunion et Mayotte"; @@ -39437,9 +39390,9 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; - start_line=3690; + start_line=3692; start_column=5; - end_line=3695; end_column=30; + end_line=3697; end_column=30; law_headings=["Article R832-21"; "Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements à usage locatif"; "Section 3 : Logements-foyers"; @@ -39803,8 +39756,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1278; start_column=5; - end_line=1279; end_column=54; + start_line=1276; start_column=5; + end_line=1277; end_column=54; law_headings=["Article L860-3"; "Titre VI : Dispositions particulières à l'outre-mer"; "Livre VIII : Aides personnelles au logement"; @@ -39871,19 +39824,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1190; start_column=14; end_line=1190; end_column=59; + start_line=1152; start_column=14; end_line=1152; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1190; start_column=14; end_line=1190; end_column=59; + start_line=1152; start_column=14; end_line=1152; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1190; start_column=14; end_line=1190; end_column=59; + start_line=1152; start_column=14; end_line=1152; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_menage_: Menage.t = try ((log_variable_definition @@ -39891,19 +39844,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1182; start_column=14; end_line=1182; end_column=52; + start_line=1144; start_column=14; end_line=1144; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1182; start_column=14; end_line=1182; end_column=52; + start_line=1144; start_column=14; end_line=1144; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1182; start_column=14; end_line=1182; end_column=52; + start_line=1144; start_column=14; end_line=1144; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition @@ -39911,19 +39864,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1186; start_column=14; end_line=1186; end_column=55; + start_line=1148; start_column=14; end_line=1148; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1186; start_column=14; end_line=1186; end_column=55; + start_line=1148; start_column=14; end_line=1148; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1186; start_column=14; end_line=1186; end_column=55; + start_line=1148; start_column=14; end_line=1148; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement_: bool = try ((log_variable_definition @@ -39932,7 +39885,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_bool) (handle_default {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1097; start_column=5; end_line=1097; end_column=74; + start_line=1095; start_column=5; end_line=1095; end_column=74; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -39942,7 +39895,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1097; start_column=5; end_line=1097; end_column=74; + start_line=1095; start_column=5; end_line=1095; end_column=74; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -39953,7 +39906,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1097; start_column=5; end_line=1097; end_column=74; + start_line=1095; start_column=5; end_line=1095; end_column=74; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; @@ -39982,19 +39935,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_aide_personnalisée_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1180; start_column=14; end_line=1180; end_column=60; + start_line=1142; start_column=14; end_line=1142; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1180; start_column=14; end_line=1180; end_column=60; + start_line=1142; start_column=14; end_line=1142; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1180; start_column=14; end_line=1180; end_column=60; + start_line=1142; start_column=14; end_line=1142; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition @@ -40003,19 +39956,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1184; start_column=14; end_line=1184; end_column=63; + start_line=1146; start_column=14; end_line=1146; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1184; start_column=14; end_line=1184; end_column=63; + start_line=1146; start_column=14; end_line=1146; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1184; start_column=14; end_line=1184; end_column=63; + start_line=1146; start_column=14; end_line=1146; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition @@ -40024,19 +39977,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1188; start_column=14; end_line=1188; end_column=67; + start_line=1150; start_column=14; end_line=1150; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1188; start_column=14; end_line=1188; end_column=67; + start_line=1150; start_column=14; end_line=1150; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1188; start_column=14; end_line=1188; end_column=67; + start_line=1150; start_column=14; end_line=1150; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: EligibiliteAidePersonnaliseeLogement.t = (log_end_call ["CalculetteAidesAuLogement"; @@ -40063,19 +40016,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_allocation_logement.mode_occupation"] (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=14; end_line=1194; end_column=56; + start_line=1156; start_column=14; end_line=1156; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=14; end_line=1194; end_column=56; + start_line=1156; start_column=14; end_line=1156; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1194; start_column=14; end_line=1194; end_column=56; + start_line=1156; start_column=14; end_line=1156; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_ressources_menage_sans_arrondi_: money = try ((log_variable_definition @@ -40084,19 +40037,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=58; + start_line=1160; start_column=14; end_line=1160; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=58; + start_line=1160; start_column=14; end_line=1160; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1198; start_column=14; end_line=1198; end_column=58; + start_line=1160; start_column=14; end_line=1160; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition @@ -40105,19 +40058,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=60; + start_line=1164; start_column=14; end_line=1164; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=60; + start_line=1164; start_column=14; end_line=1164; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1202; start_column=14; end_line=1202; end_column=60; + start_line=1164; start_column=14; end_line=1164; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -40126,12 +40079,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1209; start_column=14; end_line=1209; end_column=66; + start_line=1171; start_column=14; end_line=1171; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1209; start_column=14; end_line=1209; end_column=66; + start_line=1171; start_column=14; end_line=1171; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -40139,7 +40092,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1209; start_column=14; end_line=1209; end_column=66; + start_line=1171; start_column=14; end_line=1171; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -40147,19 +40100,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1213; start_column=14; end_line=1213; end_column=45; + start_line=1175; start_column=14; end_line=1175; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1213; start_column=14; end_line=1213; end_column=45; + start_line=1175; start_column=14; end_line=1175; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1213; start_column=14; end_line=1213; end_column=45; + start_line=1175; start_column=14; end_line=1175; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_date_courante_: date = try ((log_variable_definition @@ -40167,19 +40120,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1217; start_column=14; end_line=1217; end_column=54; + start_line=1179; start_column=14; end_line=1179; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1217; start_column=14; end_line=1217; end_column=54; + start_line=1179; start_column=14; end_line=1179; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1217; start_column=14; end_line=1217; end_column=54; + start_line=1179; start_column=14; end_line=1179; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition @@ -40187,7 +40140,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_type_aides_personnelle_logement) (handle_default {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1113; start_column=14; end_line=1113; end_column=50; + start_line=1111; start_column=14; end_line=1111; end_column=50; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40197,7 +40150,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1113; start_column=14; end_line=1113; end_column=50; + start_line=1111; start_column=14; end_line=1111; end_column=50; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40217,7 +40170,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1113; start_column=14; end_line=1113; end_column=50; + start_line=1111; start_column=14; end_line=1111; end_column=50; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; @@ -40229,19 +40182,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1221; start_column=14; end_line=1221; end_column=50; + start_line=1183; start_column=14; end_line=1183; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1221; start_column=14; end_line=1221; end_column=50; + start_line=1183; start_column=14; end_line=1183; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.residence)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1221; start_column=14; end_line=1221; end_column=50; + start_line=1183; start_column=14; end_line=1183; end_column=50; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: CalculAllocationLogement.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_allocation_logement"; @@ -40273,19 +40226,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1192; start_column=14; end_line=1192; end_column=64; + start_line=1154; start_column=14; end_line=1154; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1192; start_column=14; end_line=1192; end_column=64; + start_line=1154; start_column=14; end_line=1154; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1192; start_column=14; end_line=1192; end_column=64; + start_line=1154; start_column=14; end_line=1154; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition @@ -40294,7 +40247,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_type_aides_personnelle_logement) (handle_default {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1111; start_column=14; end_line=1111; end_column=58; + start_line=1109; start_column=14; end_line=1109; end_column=58; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40304,7 +40257,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1111; start_column=14; end_line=1111; end_column=58; + start_line=1109; start_column=14; end_line=1109; end_column=58; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40317,7 +40270,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1111; start_column=14; end_line=1111; end_column=58; + start_line=1109; start_column=14; end_line=1109; end_column=58; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; "Livre VIII : Aides personnelles au logement"; @@ -40330,19 +40283,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1196; start_column=14; end_line=1196; end_column=66; + start_line=1158; start_column=14; end_line=1158; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1196; start_column=14; end_line=1196; end_column=66; + start_line=1158; start_column=14; end_line=1158; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1196; start_column=14; end_line=1196; end_column=66; + start_line=1158; start_column=14; end_line=1158; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition @@ -40351,19 +40304,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=68; + start_line=1162; start_column=14; end_line=1162; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=68; + start_line=1162; start_column=14; end_line=1162; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1200; start_column=14; end_line=1200; end_column=68; + start_line=1162; start_column=14; end_line=1162; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -40372,12 +40325,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1205; start_column=5; end_line=1205; end_column=65; + start_line=1167; start_column=5; end_line=1167; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1205; start_column=5; end_line=1205; end_column=65; + start_line=1167; start_column=5; end_line=1167; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -40385,7 +40338,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1205; start_column=5; end_line=1205; end_column=65; + start_line=1167; start_column=5; end_line=1167; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -40393,19 +40346,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_aide_personnalisée_logement.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1211; start_column=14; end_line=1211; end_column=53; + start_line=1173; start_column=14; end_line=1173; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1211; start_column=14; end_line=1211; end_column=53; + start_line=1173; start_column=14; end_line=1173; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1211; start_column=14; end_line=1211; end_column=53; + start_line=1173; start_column=14; end_line=1173; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition @@ -40413,19 +40366,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_aide_personnalisée_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1215; start_column=14; end_line=1215; end_column=62; + start_line=1177; start_column=14; end_line=1177; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1215; start_column=14; end_line=1215; end_column=62; + start_line=1177; start_column=14; end_line=1177; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1215; start_column=14; end_line=1215; end_column=62; + start_line=1177; start_column=14; end_line=1177; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_residence_: Collectivite.t = try ((log_variable_definition @@ -40434,19 +40387,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1219; start_column=14; end_line=1219; end_column=58; + start_line=1181; start_column=14; end_line=1181; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1219; start_column=14; end_line=1219; end_column=58; + start_line=1181; start_column=14; end_line=1181; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_.Menage.residence)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1219; start_column=14; end_line=1219; end_column=58; + start_line=1181; start_column=14; end_line=1181; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: CalculAidePersonnaliseeLogement.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement"; @@ -40479,12 +40432,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1176; start_column=12; end_line=1176; end_column=61; + start_line=1138; start_column=12; end_line=1138; end_column=61; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1224; start_column=14; end_line=1224; end_column=63; + start_line=1186; start_column=14; end_line=1186; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -40492,19 +40445,19 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1176; start_column=12; end_line=1176; end_column=61; + start_line=1138; start_column=12; end_line=1138; end_column=61; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let eligibilite_: bool = (log_variable_definition ["CalculetteAidesAuLogement"; "éligibilité"] (embed_bool) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1172; start_column=12; end_line=1172; end_column=23; + start_line=1134; start_column=12; end_line=1134; end_column=23; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1102; start_column=14; end_line=1102; end_column=25; + start_line=1100; start_column=14; end_line=1100; end_column=25; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40524,7 +40477,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1172; start_column=12; end_line=1172; end_column=23; + start_line=1134; start_column=12; end_line=1134; end_column=23; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let traitement_aide_finale_: money -> money = (log_variable_definition ["CalculetteAidesAuLogement"; "traitement_aide_finale"] (unembeddable) ( @@ -40533,14 +40486,14 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1174; start_column=12; - end_line=1174; end_column=34; + start_line=1136; start_column=12; + end_line=1136; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1140; start_column=14; - end_line=1140; end_column=36; + start_line=1138; start_column=14; + end_line=1138; end_column=36; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40596,25 +40549,25 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1174; start_column=12; end_line=1174; end_column=34; + start_line=1136; start_column=12; end_line=1136; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]}))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1174; start_column=12; end_line=1174; end_column=34; + start_line=1136; start_column=12; end_line=1136; end_column=34; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in let aide_finale_formule_: money = (log_variable_definition ["CalculetteAidesAuLogement"; "aide_finale_formule"] (embed_money) ( try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1173; start_column=12; end_line=1173; end_column=31; + start_line=1135; start_column=12; end_line=1135; end_column=31; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; - start_line=1123; start_column=14; end_line=1123; end_column=33; + start_line=1121; start_column=14; end_line=1121; end_column=33; law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; "Titre IV : Allocations de logement"; @@ -40674,7 +40627,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1173; start_column=12; end_line=1173; end_column=31; + start_line=1135; start_column=12; end_line=1135; end_column=31; law_headings=["Calculette globale"; "Prologue : aides au logement"]})))) in {CalculetteAidesAuLogement.eligibilite = eligibilite_; CalculetteAidesAuLogement.aide_finale_formule = aide_finale_formule_; @@ -40694,12 +40647,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1243; start_column=11; end_line=1243; end_column=45; + start_line=1205; start_column=11; end_line=1205; end_column=45; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1275; start_column=14; end_line=1275; end_column=48; + start_line=1237; start_column=14; end_line=1237; end_column=48; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -40734,7 +40687,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1243; start_column=11; end_line=1243; end_column=45; + start_line=1205; start_column=11; end_line=1205; end_column=45; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let calculette_dot_menage_: Menage.t = @@ -40743,19 +40696,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1254; start_column=14; end_line=1254; end_column=31; + start_line=1216; start_column=14; end_line=1216; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1254; start_column=14; end_line=1254; end_column=31; + start_line=1216; start_column=14; end_line=1216; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1254; start_column=14; end_line=1254; end_column=31; + start_line=1216; start_column=14; end_line=1216; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_demandeur_: Demandeur.t = @@ -40764,19 +40717,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1256; start_column=14; end_line=1256; end_column=34; + start_line=1218; start_column=14; end_line=1218; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1256; start_column=14; end_line=1256; end_column=34; + start_line=1218; start_column=14; end_line=1218; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1256; start_column=14; end_line=1256; end_column=34; + start_line=1218; start_column=14; end_line=1218; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_date_courante_: date = @@ -40785,19 +40738,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=14; end_line=1258; end_column=38; + start_line=1220; start_column=14; end_line=1220; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=14; end_line=1258; end_column=38; + start_line=1220; start_column=14; end_line=1220; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1258; start_column=14; end_line=1258; end_column=38; + start_line=1220; start_column=14; end_line=1220; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_dot_ressources_menage_prises_en_compte_: money = @@ -40806,19 +40759,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette.ressources_ménage_prises_en_compte"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1260; start_column=14; end_line=1260; end_column=59; + start_line=1222; start_column=14; end_line=1222; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1260; start_column=14; end_line=1260; end_column=59; + start_line=1222; start_column=14; end_line=1222; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1260; start_column=14; end_line=1260; end_column=59; + start_line=1222; start_column=14; end_line=1222; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogement.t = (log_end_call @@ -40843,19 +40796,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1262; start_column=14; end_line=1262; end_column=51; + start_line=1224; start_column=14; end_line=1224; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1262; start_column=14; end_line=1262; end_column=51; + start_line=1224; start_column=14; end_line=1224; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> menage_sans_enfants_garde_alternee_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1262; start_column=14; end_line=1262; end_column=51; + start_line=1224; start_column=14; end_line=1224; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_demandeur_: Demandeur.t = @@ -40864,19 +40817,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1264; start_column=14; end_line=1264; end_column=54; + start_line=1226; start_column=14; end_line=1226; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1264; start_column=14; end_line=1264; end_column=54; + start_line=1226; start_column=14; end_line=1226; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1264; start_column=14; end_line=1264; end_column=54; + start_line=1226; start_column=14; end_line=1226; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_date_courante_: date = @@ -40885,19 +40838,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1266; start_column=14; end_line=1266; end_column=58; + start_line=1228; start_column=14; end_line=1228; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1266; start_column=14; end_line=1266; end_column=58; + start_line=1228; start_column=14; end_line=1228; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1266; start_column=14; end_line=1266; end_column=58; + start_line=1228; start_column=14; end_line=1228; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte_: money = @@ -40907,19 +40860,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1269; start_column=5; end_line=1269; end_column=70; + start_line=1231; start_column=5; end_line=1231; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1269; start_column=5; end_line=1269; end_column=70; + start_line=1231; start_column=5; end_line=1231; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1269; start_column=5; end_line=1269; end_column=70; + start_line=1231; start_column=5; end_line=1231; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogement.t = (log_end_call @@ -40949,19 +40902,19 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1250; start_column=12; end_line=1250; end_column=23; + start_line=1212; start_column=12; end_line=1212; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1304; start_column=14; end_line=1304; end_column=25; + start_line=1266; start_column=14; end_line=1266; end_column=25; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> calculette_dot_eligibilite_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1250; start_column=12; end_line=1250; end_column=23; + start_line=1212; start_column=12; end_line=1212; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let coefficents_enfants_garde_alternee_pris_en_compte_: decimal array = (log_variable_definition @@ -40971,12 +40924,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1244; start_column=11; end_line=1244; end_column=60; + start_line=1206; start_column=11; end_line=1206; end_column=60; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1273; start_column=14; end_line=1273; end_column=63; + start_line=1235; start_column=14; end_line=1235; end_column=63; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> @@ -40984,7 +40937,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1244; start_column=11; end_line=1244; end_column=60; + start_line=1206; start_column=11; end_line=1206; end_column=60; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in let aide_finale_: money = (log_variable_definition @@ -40993,7 +40946,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga try (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1251; start_column=12; end_line=1251; end_column=23; + start_line=1213; start_column=12; end_line=1213; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) (fun (_: unit) -> (log_decision_taken @@ -41033,7 +40986,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1251; start_column=12; end_line=1251; end_column=23; + start_line=1213; start_column=12; end_line=1213; end_column=23; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]})))) in {CalculetteAidesAuLogementGardeAlternee.eligibilite = eligibilite_; diff --git a/french_law/python/src/aides_logement.py b/french_law/python/src/aides_logement.py index 22b7bdad..6616caa0 100644 --- a/french_law/python/src/aides_logement.py +++ b/french_law/python/src/aides_logement.py @@ -3370,9 +3370,9 @@ def ouverture_droits_retraite(ouverture_droits_retraite_in:OuvertureDroitsRetrai else: raise EmptyError temp_age_ouverture_droit_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1118, + start_line=1080, start_column=12, - end_line=1118, end_column=31, + end_line=1080, end_column=31, law_headings=["Date d'ouverture des droits à la retraite", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_age_ouverture_droit_7, @@ -3386,8 +3386,8 @@ def ouverture_droits_retraite(ouverture_droits_retraite_in:OuvertureDroitsRetrai except EmptyError: temp_age_ouverture_droit_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1118, - start_column=12, end_line=1118, + start_line=1080, + start_column=12, end_line=1080, end_column=31, law_headings=["Date d'ouverture des droits à la retraite", "Calcul du montant de l'allocation logement", @@ -3427,8 +3427,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_mode_occupation_impaye = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1134, - start_column=11, end_line=1134, + start_line=1096, + start_column=11, end_line=1096, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3464,8 +3464,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_depense_logement_brute_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1135, - start_column=11, end_line=1135, + start_line=1097, + start_column=11, end_line=1097, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3525,9 +3525,9 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): else: raise EmptyError temp_depense_logement_nette_6 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1136, + start_line=1098, start_column=11, - end_line=1136, end_column=33, + end_line=1098, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_depense_logement_nette_4, @@ -3537,8 +3537,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_depense_logement_nette_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1136, - start_column=11, end_line=1136, + start_line=1098, + start_column=11, end_line=1098, end_column=33, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3682,9 +3682,9 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): else: raise EmptyError temp_seuil_impaye_depense_de_logement_14 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1133, + start_line=1095, start_column=11, - end_line=1133, end_column=43, + end_line=1095, end_column=43, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_seuil_impaye_depense_de_logement_11, @@ -3696,8 +3696,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_seuil_impaye_depense_de_logement_14 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1133, - start_column=11, end_line=1133, + start_line=1095, + start_column=11, end_line=1095, end_column=43, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -3741,8 +3741,8 @@ def impaye_depense_logement(impaye_depense_logement_in:ImpayeDepenseLogementIn): except EmptyError: temp_montant_impaye_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1138, - start_column=12, end_line=1138, + start_line=1100, + start_column=12, end_line=1100, end_column=26, law_headings=["Quantification des impayés de dépense de logement", "Calcul du montant de l'allocation logement", @@ -8404,8 +8404,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen except EmptyError: temp___4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1840, - start_column=13, end_line=1840, + start_line=1842, + start_column=13, end_line=1842, end_column=74, law_headings=["Article D823-16", "Sous-section 2 : Calcul de l'aide en secteur locatif", @@ -8417,8 +8417,8 @@ def calcul_aide_personnalisee_logement_locatif(calcul_aide_personnalisee_logemen "Code de la construction et de l'habitation"])) if not (temp___4): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1840, - start_column=13, end_line=1840, + start_line=1842, + start_column=13, end_line=1842, end_column=74, law_headings=["Article D823-16", "Sous-section 2 : Calcul de l'aide en secteur locatif", @@ -8948,8 +8948,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_condition_2_du_832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3941, - start_column=14, end_line=3941, + start_line=3943, + start_column=14, end_line=3943, end_column=55, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -8965,8 +8965,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3937, - start_column=14, end_line=3937, + start_line=3939, + start_column=14, end_line=3939, end_column=59, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -8982,8 +8982,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3939, - start_column=14, end_line=3939, + start_line=3941, + start_column=14, end_line=3941, end_column=64, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -8999,8 +8999,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_nombre_parts_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3943, - start_column=14, end_line=3943, + start_line=3945, + start_column=14, end_line=3945, end_column=43, law_headings=["Article D832-25", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -9165,8 +9165,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3770, - start_column=14, end_line=3770, + start_line=3772, + start_column=14, end_line=3772, end_column=75, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -9182,8 +9182,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3768, - start_column=14, end_line=3768, + start_line=3770, + start_column=14, end_line=3770, end_column=69, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -9199,8 +9199,8 @@ def calcul_aide_personnalisee_logement_foyer(calcul_aide_personnalisee_logement_ except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3772, - start_column=14, end_line=3772, + start_line=3774, + start_column=14, end_line=3774, end_column=70, law_headings=["Article D832-24", "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer", @@ -9525,8 +9525,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3278, - start_column=14, end_line=3278, + start_line=3280, + start_column=14, end_line=3280, end_column=59, law_headings=["Article D832-11", "Section 2 : Accession à la propriété", @@ -9541,8 +9541,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3280, - start_column=14, end_line=3280, + start_line=3282, + start_column=14, end_line=3282, end_column=64, law_headings=["Article D832-11", "Section 2 : Accession à la propriété", @@ -13724,8 +13724,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3484, - start_column=14, end_line=3484, + start_line=3486, + start_column=14, end_line=3486, end_column=75, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -13740,8 +13740,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3483, - start_column=14, end_line=3483, + start_line=3485, + start_column=14, end_line=3485, end_column=69, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -13756,8 +13756,8 @@ def calcul_aide_personnalisee_logement_accession_propriete(calcul_aide_personnal except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=3486, - start_column=14, end_line=3486, + start_line=3488, + start_column=14, end_line=3488, end_column=70, law_headings=["Article D832-15", "Section 2 : Accession à la propriété", @@ -14675,155 +14675,224 @@ def calcul_allocation_logement_locatif(calcul_allocation_logement_locatif_in:Cal temp_calcul_apl_locatif_dot_loyer_principal_base = loyer_principal except EmptyError: temp_calcul_apl_locatif_dot_loyer_principal_base = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=880, start_column=14, - end_line=880, end_column=48, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4207, + start_column=14, end_line=4207, + end_column=48, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_loyer_principal_base = temp_calcul_apl_locatif_dot_loyer_principal_base try: temp_calcul_apl_locatif_dot_ressources_menage_arrondies = ressources_menage_arrondies_4 except EmptyError: temp_calcul_apl_locatif_dot_ressources_menage_arrondies = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=882, start_column=14, - end_line=882, end_column=60, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4209, + start_column=14, end_line=4209, + end_column=60, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_ressources_menage_arrondies = temp_calcul_apl_locatif_dot_ressources_menage_arrondies try: temp_calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes = beneficiaire_aide_adulte_ou_enfant_handicapes_1 except EmptyError: temp_calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=884, start_column=14, - end_line=884, end_column=78, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4211, + start_column=14, end_line=4211, + end_column=78, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes = temp_calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes try: temp_calcul_apl_locatif_dot_date_courante = date_courante_11 except EmptyError: temp_calcul_apl_locatif_dot_date_courante = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=887, start_column=14, - end_line=887, end_column=46, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4214, + start_column=14, end_line=4214, + end_column=46, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_date_courante = temp_calcul_apl_locatif_dot_date_courante try: temp_calcul_apl_locatif_dot_nombre_personnes_a_charge = nombre_personnes_a_charge_5 except EmptyError: temp_calcul_apl_locatif_dot_nombre_personnes_a_charge = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=889, start_column=14, - end_line=889, end_column=58, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4216, + start_column=14, end_line=4216, + end_column=58, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_nombre_personnes_a_charge = temp_calcul_apl_locatif_dot_nombre_personnes_a_charge try: temp_calcul_apl_locatif_dot_situation_familiale_calcul_apl = situation_familiale_calcul_apl_5 except EmptyError: temp_calcul_apl_locatif_dot_situation_familiale_calcul_apl = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=891, start_column=14, - end_line=891, end_column=63, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4218, + start_column=14, end_line=4218, + end_column=63, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_situation_familiale_calcul_apl = temp_calcul_apl_locatif_dot_situation_familiale_calcul_apl try: temp_calcul_apl_locatif_dot_zone = zone_3 except EmptyError: temp_calcul_apl_locatif_dot_zone = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=893, start_column=14, - end_line=893, end_column=37, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4220, + start_column=14, end_line=4220, + end_column=37, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_zone = temp_calcul_apl_locatif_dot_zone try: temp_calcul_apl_locatif_dot_logement_est_chambre = logement_est_chambre_1 except EmptyError: temp_calcul_apl_locatif_dot_logement_est_chambre = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=895, start_column=14, - end_line=895, end_column=53, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4222, + start_column=14, end_line=4222, + end_column=53, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_logement_est_chambre = temp_calcul_apl_locatif_dot_logement_est_chambre try: temp_calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers = agees_ou_handicap_adultes_hebergees_onereux_particuliers_1 except EmptyError: temp_calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=898, start_column=5, - end_line=899, end_column=63, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4225, start_column=5, + end_line=4226, end_column=63, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers = temp_calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers try: temp_calcul_apl_locatif_dot_type_aide = type_aide_1 except EmptyError: temp_calcul_apl_locatif_dot_type_aide = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=902, start_column=14, - end_line=902, end_column=42, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4229, + start_column=14, end_line=4229, + end_column=42, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_type_aide = temp_calcul_apl_locatif_dot_type_aide try: temp_calcul_apl_locatif_dot_colocation = colocation_1 except EmptyError: temp_calcul_apl_locatif_dot_colocation = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=904, start_column=14, - end_line=904, end_column=43, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4231, + start_column=14, end_line=4231, + end_column=43, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_colocation = temp_calcul_apl_locatif_dot_colocation try: temp_calcul_apl_locatif_dot_reduction_loyer_solidarite = reduction_loyer_solidarite_1 except EmptyError: temp_calcul_apl_locatif_dot_reduction_loyer_solidarite = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=906, start_column=14, - end_line=906, end_column=59, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4233, + start_column=14, end_line=4233, + end_column=59, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_reduction_loyer_solidarite = temp_calcul_apl_locatif_dot_reduction_loyer_solidarite try: temp_calcul_apl_locatif_dot_logement_meuble_d842_2 = logement_meuble_d842_2_1 except EmptyError: temp_calcul_apl_locatif_dot_logement_meuble_d842_2 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=908, start_column=14, - end_line=908, end_column=55, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4235, + start_column=14, end_line=4235, + end_column=55, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_logement_meuble_d842_2 = temp_calcul_apl_locatif_dot_logement_meuble_d842_2 try: temp_calcul_apl_locatif_dot_residence = residence_5 except EmptyError: temp_calcul_apl_locatif_dot_residence = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=910, start_column=14, - end_line=910, end_column=42, - law_headings=["Secteur locatif", - "Calcul du montant de l'allocation logement", - "Prologue : aides au logement"])) + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=4237, + start_column=14, end_line=4237, + end_column=42, + law_headings=["Article D842-1", + "Section 1 : Secteur locatif ordinaire", + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement", + "Titre IV : Allocations de Logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) calcul_apl_locatif_dot_residence = temp_calcul_apl_locatif_dot_residence result_9 = calcul_aide_personnalisee_logement_locatif(CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = calcul_apl_locatif_dot_loyer_principal_base, ressources_menage_arrondies_in = calcul_apl_locatif_dot_ressources_menage_arrondies, @@ -14936,8 +15005,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_condition_2_du_832_25_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4841, - start_column=14, end_line=4841, + start_line=4879, + start_column=14, end_line=4879, end_column=55, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14952,8 +15021,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4836, - start_column=14, end_line=4836, + start_line=4874, + start_column=14, end_line=4874, end_column=59, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14968,8 +15037,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4838, - start_column=14, end_line=4838, + start_line=4876, + start_column=14, end_line=4876, end_column=64, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -14984,8 +15053,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_nombre_parts_dot_residence_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4840, - start_column=14, end_line=4840, + start_line=4878, + start_column=14, end_line=4878, end_column=43, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -15011,8 +15080,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_contributions_sociales_dot_date_courante_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1081, - start_column=14, end_line=1081, + start_line=1043, + start_column=14, end_line=1043, end_column=50, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15025,8 +15094,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_type_logement_foyer = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1065, - start_column=14, end_line=1065, + start_line=1027, + start_column=14, end_line=1027, end_column=59, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15037,8 +15106,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_date_conventionnement = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1067, - start_column=14, end_line=1067, + start_line=1029, + start_column=14, end_line=1029, end_column=61, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15049,8 +15118,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_ressources_menage_arrondies = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1071, - start_column=14, end_line=1071, + start_line=1033, + start_column=14, end_line=1033, end_column=67, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15061,8 +15130,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1073, - start_column=14, end_line=1073, + start_line=1035, + start_column=14, end_line=1035, end_column=65, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15073,8 +15142,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1075, - start_column=14, end_line=1075, + start_line=1037, + start_column=14, end_line=1037, end_column=70, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15085,8 +15154,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1077, - start_column=14, end_line=1077, + start_line=1039, + start_column=14, end_line=1039, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15097,8 +15166,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1079, - start_column=14, end_line=1079, + start_line=1041, + start_column=14, end_line=1041, end_column=53, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15109,8 +15178,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_redevance = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1069, - start_column=14, end_line=1069, + start_line=1031, + start_column=14, end_line=1031, end_column=49, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15121,8 +15190,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_apl_logement_foyer_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1078, - start_column=14, end_line=1078, + start_line=1040, + start_column=14, end_line=1040, end_column=49, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15413,8 +15482,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_multiplicateur_majoration_charges_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1041, - start_column=11, end_line=1041, + start_line=1003, + start_column=11, end_line=1003, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15430,8 +15499,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_montant_minimal_depense_nette_d842_17 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1040, - start_column=11, end_line=1040, + start_line=1002, + start_column=11, end_line=1002, end_column=48, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15447,8 +15516,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_montant_forfaitaire_d842_15 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1039, - start_column=11, end_line=1039, + start_line=1001, + start_column=11, end_line=1001, end_column=38, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15464,8 +15533,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_montant_minimal_aide_d842_15 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1038, - start_column=11, end_line=1038, + start_line=1000, + start_column=11, end_line=1000, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15788,9 +15857,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA else: raise EmptyError temp_equivalence_loyer_23 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1043, + start_line=1005, start_column=12, - end_line=1043, end_column=29, + end_line=1005, end_column=29, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_equivalence_loyer_21, @@ -15807,8 +15876,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_equivalence_loyer_23 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1043, - start_column=12, end_line=1043, + start_line=1005, + start_column=12, end_line=1005, end_column=29, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15819,8 +15888,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1082, - start_column=14, end_line=1082, + start_line=1044, + start_column=14, end_line=1044, end_column=61, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -15831,8 +15900,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4833, - start_column=14, end_line=4833, + start_line=4871, + start_column=14, end_line=4871, end_column=75, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -15847,8 +15916,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4832, - start_column=14, end_line=4832, + start_line=4870, + start_column=14, end_line=4870, end_column=69, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -15863,8 +15932,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4843, - start_column=14, end_line=4843, + start_line=4881, + start_column=14, end_line=4881, end_column=70, law_headings=["Article D842-15", "Section 3 : Logements-foyers", @@ -15884,8 +15953,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_coefficient_prise_en_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1042, - start_column=12, end_line=1042, + start_line=1004, + start_column=12, end_line=1004, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16170,9 +16239,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA else: raise EmptyError temp_montant_forfaitaire_charges_13 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1044, + start_line=1006, start_column=12, - end_line=1044, end_column=39, + end_line=1006, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_11, @@ -16226,9 +16295,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA else: raise EmptyError temp_montant_forfaitaire_charges_13 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1044, + start_line=1006, start_column=12, - end_line=1044, end_column=39, + end_line=1006, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_18, @@ -16239,8 +16308,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_montant_forfaitaire_charges_13 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1044, - start_column=12, end_line=1044, + start_line=1006, + start_column=12, end_line=1006, end_column=39, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16256,9 +16325,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return (aide_finale_16 - montant_forfaitaire_d842_15) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1058, + start_line=1020, start_column=10, - end_line=1058, + end_line=1020, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16266,8 +16335,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_minoration_forfaitaire_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1058, - start_column=10, end_line=1058, + start_line=1020, + start_column=10, end_line=1020, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16278,8 +16347,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_loyer_minimal = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1045, - start_column=12, end_line=1045, + start_line=1007, + start_column=12, end_line=1007, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16292,9 +16361,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA allocation_mensuelle_4) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1034, + start_line=996, start_column=11, - end_line=1034, + end_line=996, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16302,9 +16371,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1034, - start_column=11, end_line=1034, - end_column=33, + start_line=996, start_column=11, + end_line=996, end_column=33, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16316,8 +16384,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_aide_finale_formule_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1055, - start_column=12, end_line=1055, + start_line=1017, + start_column=12, end_line=1017, end_column=31, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16334,9 +16402,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1036, + start_line=998, start_column=11, - end_line=1036, + end_line=998, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16344,9 +16412,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_abattement_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1036, - start_column=11, end_line=1036, - end_column=44, + start_line=998, start_column=11, + end_line=998, end_column=44, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16367,9 +16434,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_17))) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1059, + start_line=1021, start_column=10, - end_line=1059, + end_line=1021, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16377,8 +16444,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1059, - start_column=10, end_line=1059, + start_line=1021, + start_column=10, end_line=1021, end_column=32, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16395,9 +16462,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_18) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1060, + start_line=1022, start_column=10, - end_line=1060, + end_line=1022, end_column=19, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16405,8 +16472,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_redevance = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1060, - start_column=10, end_line=1060, + start_line=1022, + start_column=10, end_line=1022, end_column=19, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16433,9 +16500,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1061, + start_line=1023, start_column=10, - end_line=1061, + end_line=1023, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16443,8 +16510,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1061, - start_column=10, end_line=1061, + start_line=1023, + start_column=10, end_line=1023, end_column=40, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16462,9 +16529,9 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA aide_finale_20) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1062, + start_line=1024, start_column=10, - end_line=1062, + end_line=1024, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16472,8 +16539,8 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp_traitement_aide_finale_montant_minimal_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1062, - start_column=10, end_line=1062, + start_line=1024, + start_column=10, end_line=1024, end_column=25, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16484,16 +16551,16 @@ def calcul_allocation_logement_foyer(calcul_allocation_logement_foyer_in:CalculA except EmptyError: temp___13 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1086, - start_column=13, end_line=1086, + start_line=1048, + start_column=13, end_line=1048, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___13): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1086, - start_column=13, end_line=1086, + start_line=1048, + start_column=13, end_line=1048, end_column=42, law_headings=["Secteur logement-foyer", "Calcul du montant de l'allocation logement", @@ -16527,8 +16594,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_taux_francs_vers_euros_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=955, start_column=11, - end_line=955, end_column=33, + start_line=917, start_column=11, + end_line=917, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16538,8 +16605,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_nombre_parts_dot_nombre_personnes_a_charge_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4447, - start_column=14, end_line=4447, + start_line=4485, + start_column=14, end_line=4485, end_column=59, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -16554,8 +16621,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_nombre_parts_dot_situation_familiale_calcul_apl_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4449, - start_column=14, end_line=4449, + start_line=4487, + start_column=14, end_line=4487, end_column=64, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -16573,9 +16640,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_contributions_sociales_dot_date_courante_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1009, - start_column=14, end_line=1009, - end_column=50, + start_line=971, start_column=14, + end_line=971, end_column=50, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16802,8 +16868,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_multiplicateur_majoration_charges_7 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=966, start_column=11, - end_line=966, end_column=44, + start_line=928, start_column=11, + end_line=928, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16818,8 +16884,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_coefficient_d842_12 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=964, start_column=11, - end_line=964, end_column=30, + start_line=926, start_column=11, + end_line=926, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16834,8 +16900,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_coefficient_d842_11 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=963, start_column=11, - end_line=963, end_column=30, + start_line=925, start_column=11, + end_line=925, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16850,8 +16916,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_montant_forfaitaire_d842_12 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=962, start_column=11, - end_line=962, end_column=38, + start_line=924, start_column=11, + end_line=924, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16866,8 +16932,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_montant_forfaitaire_d842_11 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=961, start_column=11, - end_line=961, end_column=38, + start_line=923, start_column=11, + end_line=923, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16882,8 +16948,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_montant_minimal_aide_d842_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=960, start_column=11, - end_line=960, end_column=38, + start_line=922, start_column=11, + end_line=922, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -16898,8 +16964,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_montant_forfaitaire_d842_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=952, start_column=11, - end_line=952, end_column=37, + start_line=914, start_column=11, + end_line=914, end_column=37, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -17031,8 +17097,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_condition_d842_11_3_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=965, start_column=11, - end_line=965, end_column=30, + start_line=927, start_column=11, + end_line=927, end_column=30, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -19610,8 +19676,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac else: raise EmptyError return handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=949, start_column=10, - end_line=949, end_column=14, + start_line=911, start_column=10, + end_line=911, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_calcul_plafond_mensualite_d842_6_base_30, @@ -19640,9 +19706,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac temp_calcul_plafond_mensualite_d842_6_base_1) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=949, + start_line=911, start_column=10, - end_line=949, + end_line=911, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -19650,8 +19716,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_plafond_mensualite_d842_6_base = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=949, start_column=10, - end_line=949, end_column=14, + start_line=911, start_column=10, + end_line=911, end_column=14, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20097,8 +20163,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac raise EmptyError temp_montant_forfaitaire_charges_53 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, start_column=11, - end_line=942, end_column=38, + start_line=904, start_column=11, + end_line=904, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_50, @@ -20398,8 +20464,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac raise EmptyError temp_montant_forfaitaire_charges_53 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, start_column=11, - end_line=942, end_column=38, + start_line=904, start_column=11, + end_line=904, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_65, @@ -20463,8 +20529,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac raise EmptyError temp_montant_forfaitaire_charges_53 = handle_default( SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, start_column=11, - end_line=942, end_column=38, + start_line=904, start_column=11, + end_line=904, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_73, @@ -20516,9 +20582,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac else: raise EmptyError temp_montant_forfaitaire_charges_53 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, + start_line=904, start_column=11, - end_line=942, end_column=38, + end_line=904, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_montant_forfaitaire_charges_79, @@ -20529,8 +20595,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_montant_forfaitaire_charges_53 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=942, start_column=11, - end_line=942, end_column=38, + start_line=904, start_column=11, + end_line=904, end_column=38, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20609,9 +20675,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac else: raise EmptyError temp_seuil_minimal_ressources_menage_8 = handle_default(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=954, + start_line=916, start_column=11, - end_line=954, end_column=42, + end_line=916, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"]), [temp_seuil_minimal_ressources_menage_4, @@ -20621,8 +20687,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_seuil_minimal_ressources_menage_8 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=954, start_column=11, - end_line=954, end_column=42, + start_line=916, start_column=11, + end_line=916, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20637,9 +20703,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac return (aide_finale_21 - montant_forfaitaire_d842_6) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=980, + start_line=942, start_column=10, - end_line=980, + end_line=942, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -20647,8 +20713,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_minoration_forfaitaire_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=980, start_column=10, - end_line=980, end_column=32, + start_line=942, start_column=10, + end_line=942, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20700,9 +20766,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac raise EmptyError except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=950, + start_line=912, start_column=10, - end_line=950, + end_line=912, end_column=26, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -20710,8 +20776,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_plafond_mensualite_d842_6_avec_copropriete = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=950, start_column=10, - end_line=950, end_column=26, + start_line=912, start_column=10, + end_line=912, end_column=26, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20723,9 +20789,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac montant_forfaitaire_charges_1) - allocation_mensuelle_6) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=956, + start_line=918, start_column=11, - end_line=956, + end_line=918, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -20733,8 +20799,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_depense_nette_minimale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=956, start_column=11, - end_line=956, end_column=33, + start_line=918, start_column=11, + end_line=918, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20757,8 +20823,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_ressources_menage_arrondies_seuil = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=924, start_column=10, - end_line=924, end_column=15, + start_line=886, start_column=10, + end_line=886, end_column=15, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -20982,9 +21048,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac raise EmptyError except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=951, + start_line=913, start_column=10, - end_line=951, + end_line=913, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -20992,8 +21058,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_plafond_mensualite_d842_6_avec_limitation_dom_tom = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=951, start_column=10, - end_line=951, end_column=33, + start_line=913, start_column=10, + end_line=913, end_column=33, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21003,9 +21069,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_date_courante_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1010, - start_column=14, end_line=1010, - end_column=61, + start_line=972, start_column=14, + end_line=972, end_column=61, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21015,8 +21080,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_ressources_menage_arrondies_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4443, - start_column=14, end_line=4443, + start_line=4481, + start_column=14, end_line=4481, end_column=75, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -21031,8 +21096,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4442, - start_column=14, end_line=4442, + start_line=4480, + start_column=14, end_line=4480, end_column=69, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -21047,8 +21112,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=4445, - start_column=14, end_line=4445, + start_line=4483, + start_column=14, end_line=4483, end_column=70, law_headings=["Article D842-6", "Section 2 : Accession à la propriété", @@ -21069,8 +21134,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_type_logement_foyer_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=992, start_column=14, - end_line=992, end_column=59, + start_line=954, start_column=14, + end_line=954, end_column=59, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21080,8 +21145,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_date_conventionnement_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=994, start_column=14, - end_line=994, end_column=61, + start_line=956, start_column=14, + end_line=956, end_column=61, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21091,8 +21156,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_ressources_menage_arrondies_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=998, start_column=14, - end_line=998, end_column=67, + start_line=960, start_column=14, + end_line=960, end_column=67, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21102,9 +21167,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1000, - start_column=14, end_line=1000, - end_column=65, + start_line=962, start_column=14, + end_line=962, end_column=65, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21114,9 +21178,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1002, - start_column=14, end_line=1002, - end_column=70, + start_line=964, start_column=14, + end_line=964, end_column=70, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21126,9 +21189,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_zone_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1004, - start_column=14, end_line=1004, - end_column=44, + start_line=966, start_column=14, + end_line=966, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21138,9 +21200,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_date_courante_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1007, - start_column=14, end_line=1007, - end_column=53, + start_line=969, start_column=14, + end_line=969, end_column=53, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21150,8 +21211,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_redevance_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=996, start_column=14, - end_line=996, end_column=49, + start_line=958, start_column=14, + end_line=958, end_column=49, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21161,9 +21222,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_calcul_apl_logement_foyer_dot_residence_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1006, - start_column=14, end_line=1006, - end_column=49, + start_line=968, start_column=14, + end_line=968, end_column=49, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21281,8 +21341,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_seuil_minimal_depense_nette_minimale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=953, start_column=11, - end_line=953, end_column=47, + start_line=915, start_column=11, + end_line=915, end_column=47, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21308,8 +21368,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_plafond_mensualite_d842_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=945, start_column=11, - end_line=945, end_column=36, + start_line=907, start_column=11, + end_line=907, end_column=36, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21319,8 +21379,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_mensualite_minimale_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=943, start_column=12, - end_line=943, end_column=31, + start_line=905, start_column=12, + end_line=905, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21330,8 +21390,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_coefficient_prise_en_charge_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=944, start_column=12, - end_line=944, end_column=39, + start_line=906, start_column=12, + end_line=906, end_column=39, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21347,9 +21407,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=958, + start_line=920, start_column=11, - end_line=958, + end_line=920, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21357,8 +21417,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_abattement_depense_nette_minimale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=958, start_column=11, - end_line=958, end_column=44, + start_line=920, start_column=11, + end_line=920, end_column=44, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21372,8 +21432,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_mensualite_eligible_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=941, start_column=12, - end_line=941, end_column=31, + start_line=903, start_column=12, + end_line=903, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21392,9 +21452,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac aide_finale_22))) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=981, + start_line=943, start_column=10, - end_line=981, + end_line=943, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21402,8 +21462,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_depense_nette_minimale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=981, start_column=10, - end_line=981, end_column=32, + start_line=943, start_column=10, + end_line=943, end_column=32, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21415,8 +21475,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_aide_finale_formule_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=976, start_column=12, - end_line=976, end_column=31, + start_line=938, start_column=12, + end_line=938, end_column=31, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21443,9 +21503,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac return money_of_cents_string("0") except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=982, + start_line=944, start_column=10, - end_line=982, + end_line=944, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21453,8 +21513,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_contributions_sociales_arrondi_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=982, start_column=10, - end_line=982, end_column=40, + start_line=944, start_column=10, + end_line=944, end_column=40, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21471,9 +21531,9 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac aide_finale_24) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=983, + start_line=945, start_column=10, - end_line=983, + end_line=945, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21481,8 +21541,8 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp_traitement_aide_finale_montant_minimal_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=983, start_column=10, - end_line=983, end_column=25, + start_line=945, start_column=10, + end_line=945, end_column=25, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) @@ -21492,16 +21552,15 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp___14 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1015, - start_column=13, end_line=1015, - end_column=48, + start_line=977, start_column=13, + end_line=977, end_column=48, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___14): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1015, - start_column=13, end_line=1015, + start_line=977, + start_column=13, end_line=977, end_column=48, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21511,16 +21570,15 @@ def calcul_allocation_logement_accession_propriete(calcul_allocation_logement_ac except EmptyError: temp___15 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1014, - start_column=13, end_line=1014, - end_column=42, + start_line=976, start_column=13, + end_line=976, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) if not (temp___15): raise AssertionFailure(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1014, - start_column=13, end_line=1014, + start_line=976, + start_column=13, end_line=976, end_column=42, law_headings=["Secteur accession à la propriété", "Calcul du montant de l'allocation logement", @@ -21622,3675 +21680,1665 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Prologue : aides au logement"])) situation_familiale_calcul_apl_8 = temp_situation_familiale_calcul_apl try: - try: - match_arg_627 = categorie_calcul_apl - if match_arg_627.code == CategorieCalculAPL_Code.Location: - _ = match_arg_627.value - temp_sous_calcul_traitement = False - elif match_arg_627.code == CategorieCalculAPL_Code.AccessionPropriete: - _ = match_arg_627.value - temp_sous_calcul_traitement = False - elif match_arg_627.code == CategorieCalculAPL_Code.LogementFoyer: - _ = match_arg_627.value - temp_sous_calcul_traitement = True - match_arg_628 = residence_8 - if match_arg_628.code == Collectivite_Code.Guadeloupe: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.Guyane: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.Martinique: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.LaReunion: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.SaintMartin: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.Metropole: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - elif match_arg_628.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = True - elif match_arg_628.code == Collectivite_Code.Mayotte: - _ = match_arg_628.value - temp_sous_calcul_traitement_1 = False - if (temp_sous_calcul_traitement_1 and - temp_sous_calcul_traitement): - match_arg_629 = categorie_calcul_apl - if match_arg_629.code == CategorieCalculAPL_Code.Location: + match_arg_627 = categorie_calcul_apl + if match_arg_627.code == CategorieCalculAPL_Code.Location: + location_2 = match_arg_627.value + def temp_sous_calcul_traitement(param0:Money): + try: + temp_sous_calcul_traitement_1 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_1 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_2 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_2 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_3 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_3 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_4 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_4 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_5 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_5 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_6 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_6 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_7 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_7 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_8 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_8 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_9 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_9 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_10 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_10 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_11 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_11 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_628 = location_2.bailleur + if match_arg_628.code == TypeBailleur_Code.BailleurSocial: + bailleur = match_arg_628.value + temp_sous_calcul_traitement_12 = bailleur.reduction_loyer_solidarite_percue + elif match_arg_628.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_628.value + temp_sous_calcul_traitement_12 = money_of_cents_string("0") + elif match_arg_628.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_628.value + temp_sous_calcul_traitement_12 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_12 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_13 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_13 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_14 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_14 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_aide_personnalisee_logement_locatif(CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_1, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_2, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_3, + date_courante_in = temp_sous_calcul_traitement_4, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_5, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_6, + zone_in = temp_sous_calcul_traitement_7, + logement_est_chambre_in = temp_sous_calcul_traitement_8, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_9, + type_aide_in = temp_sous_calcul_traitement_10, + colocation_in = temp_sous_calcul_traitement_11, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_12, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_13, + residence_in = temp_sous_calcul_traitement_14)).traitement_aide_finale( + param0) + try: + temp_sous_calcul_traitement_15 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_15 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_16 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_16 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_17 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_17 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_18 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_18 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_19 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_19 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_20 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_20 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_21 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_21 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_22 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_22 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_23 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_23 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_24 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_24 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_25 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_25 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_629 = location_2.bailleur + if match_arg_629.code == TypeBailleur_Code.BailleurSocial: + bailleur_1 = match_arg_629.value + temp_sous_calcul_traitement_26 = bailleur_1.reduction_loyer_solidarite_percue + elif match_arg_629.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: _ = match_arg_629.value - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), - traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_629.code == CategorieCalculAPL_Code.AccessionPropriete: + temp_sous_calcul_traitement_26 = money_of_cents_string("0") + elif match_arg_629.code == TypeBailleur_Code.BailleurPrive: _ = match_arg_629.value - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), - traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_629.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer_ = match_arg_629.value - def temp_sous_calcul_traitement_3(param0:Money): - try: - temp_sous_calcul_traitement_4 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_4 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_5 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_5 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_6 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_6 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_7 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_7 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_8 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_8 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_9 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_9 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_10 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_10 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_11 = True - except EmptyError: - temp_sous_calcul_traitement_11 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_12 = False - except EmptyError: - temp_sous_calcul_traitement_12 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_13 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_13 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_14 = False - except EmptyError: - temp_sous_calcul_traitement_14 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_15 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_15 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_16 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_16 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_17 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_17 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_4, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_5, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_6, - date_courante_in = temp_sous_calcul_traitement_7, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_8, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_9, - zone_in = temp_sous_calcul_traitement_10, - logement_est_chambre_in = temp_sous_calcul_traitement_11, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_12, - type_aide_in = temp_sous_calcul_traitement_13, - colocation_in = temp_sous_calcul_traitement_14, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_15, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_16, - residence_in = temp_sous_calcul_traitement_17)).traitement_aide_finale( - param0) - try: - temp_sous_calcul_traitement_18 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_18 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_19 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_19 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_20 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_20 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_21 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_21 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_22 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_22 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_23 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_23 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_24 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_24 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_25 = True - except EmptyError: - temp_sous_calcul_traitement_25 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_26 = False - except EmptyError: - temp_sous_calcul_traitement_26 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_27 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_27 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_28 = False - except EmptyError: - temp_sous_calcul_traitement_28 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_29 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_29 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_30 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_30 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_31 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_31 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_32 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_32 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_33 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_33 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_34 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_34 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_35 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_35 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_36 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_36 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_37 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_37 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_38 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_38 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_39 = True - except EmptyError: - temp_sous_calcul_traitement_39 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_40 = False - except EmptyError: - temp_sous_calcul_traitement_40 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_41 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_41 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_42 = False - except EmptyError: - temp_sous_calcul_traitement_42 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_43 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_43 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_44 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_44 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_45 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_45 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_46 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_46 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_47 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_47 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_48 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_48 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_49 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_49 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_50 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_50 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_51 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_51 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_52 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_52 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_53 = True - except EmptyError: - temp_sous_calcul_traitement_53 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_54 = False - except EmptyError: - temp_sous_calcul_traitement_54 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_55 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_55 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_56 = False - except EmptyError: - temp_sous_calcul_traitement_56 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_57 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_57 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_58 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_58 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_59 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_59 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_60 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_60 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_61 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_61 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_62 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_62 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_63 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_63 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_64 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_64 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_65 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_65 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_66 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_66 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_67 = True - except EmptyError: - temp_sous_calcul_traitement_67 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_68 = False - except EmptyError: - temp_sous_calcul_traitement_68 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_69 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_69 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_70 = False - except EmptyError: - temp_sous_calcul_traitement_70 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_71 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_71 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_72 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_72 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_73 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_73 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_74 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_74 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_75 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_75 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_76 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_76 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_77 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_77 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_78 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_78 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_79 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_79 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_80 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_80 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_81 = True - except EmptyError: - temp_sous_calcul_traitement_81 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_82 = False - except EmptyError: - temp_sous_calcul_traitement_82 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_83 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_83 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_84 = False - except EmptyError: - temp_sous_calcul_traitement_84 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_85 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_85 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_86 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_86 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_87 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_87 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_88 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_88 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_89 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_89 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_90 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_90 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_91 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_91 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_92 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_92 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_93 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_93 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_94 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_94 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_95 = True - except EmptyError: - temp_sous_calcul_traitement_95 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_96 = False - except EmptyError: - temp_sous_calcul_traitement_96 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_97 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_97 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_98 = False - except EmptyError: - temp_sous_calcul_traitement_98 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_99 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_99 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_100 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_100 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_101 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_101 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_102(param0_1:Money): - try: - temp_sous_calcul_traitement_103 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_103 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_104 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_104 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_105 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_105 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_106 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_106 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_107 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_107 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_108 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_108 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_109 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_109 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_110 = True - except EmptyError: - temp_sous_calcul_traitement_110 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_111 = False - except EmptyError: - temp_sous_calcul_traitement_111 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_112 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_112 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_113 = False - except EmptyError: - temp_sous_calcul_traitement_113 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_114 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_114 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_115 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_115 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_116 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_116 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_103, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_104, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_105, - date_courante_in = temp_sous_calcul_traitement_106, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_107, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_108, - zone_in = temp_sous_calcul_traitement_109, - logement_est_chambre_in = temp_sous_calcul_traitement_110, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_111, - type_aide_in = temp_sous_calcul_traitement_112, - colocation_in = temp_sous_calcul_traitement_113, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_114, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_115, - residence_in = temp_sous_calcul_traitement_116)).traitement_aide_finale( - param0_1) - try: - temp_sous_calcul_traitement_117 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_117 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_118 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_118 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_119 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_119 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_120 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_120 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_121 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_121 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_122 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_122 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_123 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_123 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_124 = True - except EmptyError: - temp_sous_calcul_traitement_124 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_125 = False - except EmptyError: - temp_sous_calcul_traitement_125 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_126 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_126 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_127 = False - except EmptyError: - temp_sous_calcul_traitement_127 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_128 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_128 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_129 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_129 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_130 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_130 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_131 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_131 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_132 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_132 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_133 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_133 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_134 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_134 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_135 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_135 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_136 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_136 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_137 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_137 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_138 = True - except EmptyError: - temp_sous_calcul_traitement_138 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_139 = False - except EmptyError: - temp_sous_calcul_traitement_139 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_140 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_140 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_141 = False - except EmptyError: - temp_sous_calcul_traitement_141 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_142 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_142 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_143 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_143 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_144 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_144 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_145 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_145 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_146 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_146 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_147 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_147 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_148 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_148 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_149 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_149 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_150 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_150 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_151 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_151 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_152 = True - except EmptyError: - temp_sous_calcul_traitement_152 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_153 = False - except EmptyError: - temp_sous_calcul_traitement_153 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_154 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_154 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_155 = False - except EmptyError: - temp_sous_calcul_traitement_155 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_156 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_156 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_157 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_157 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_158 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_158 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_159 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_159 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_160 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_160 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_161 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_161 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_162 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_162 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_163 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_163 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_164 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_164 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_165 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_165 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_166 = True - except EmptyError: - temp_sous_calcul_traitement_166 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_167 = False - except EmptyError: - temp_sous_calcul_traitement_167 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_168 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_168 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_169 = False - except EmptyError: - temp_sous_calcul_traitement_169 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_170 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_170 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_171 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_171 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_172 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_172 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_173 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_173 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_174 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_174 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_175 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_175 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_176 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_176 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_177 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_177 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_178 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_178 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_179 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_179 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_180 = True - except EmptyError: - temp_sous_calcul_traitement_180 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_181 = False - except EmptyError: - temp_sous_calcul_traitement_181 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_182 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_182 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_183 = False - except EmptyError: - temp_sous_calcul_traitement_183 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_184 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_184 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_185 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_185 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_186 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_186 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_187 = logement_foyer_.redevance - except EmptyError: - temp_sous_calcul_traitement_187 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6378, - start_column=31, - end_line=6378, - end_column=56, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_188 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_188 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6372, - start_column=43, - end_line=6372, - end_column=60, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_189 = logement_foyer_.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_189 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6380, - start_column=15, - end_line=6380, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_190 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_190 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6375, - start_column=29, - end_line=6375, - end_column=42, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_191 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_191 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6373, - start_column=41, - end_line=6373, - end_column=66, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_192 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_192 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6376, - start_column=46, - end_line=6376, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_193 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_193 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6374, - start_column=20, - end_line=6374, - end_column=24, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_194 = True - except EmptyError: - temp_sous_calcul_traitement_194 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6384, - start_column=36, - end_line=6384, - end_column=40, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_195 = False - except EmptyError: - temp_sous_calcul_traitement_195 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6391, - start_column=72, - end_line=6391, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_196 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_196 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6392, - start_column=25, - end_line=6392, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_197 = False - except EmptyError: - temp_sous_calcul_traitement_197 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6388, - start_column=26, - end_line=6388, - end_column=30, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_198 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_198 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6395, - start_column=42, - end_line=6395, - end_column=45, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_199 = logement_foyer_.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_199 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6396, - start_column=38, - end_line=6396, - end_column=76, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_200 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_200 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6397, - start_column=25, - end_line=6397, - end_column=34, - law_headings=["Article D863-7", - "Sous-section III : Modalités de liquidation et de versement", - "Section II : Dispositions communes aux aides personnelles au logement", - "Chapitre III : Saint-Pierre-et-Miquelon", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_88, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_89, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_90, - date_courante_in = temp_sous_calcul_traitement_91, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_92, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_93, - zone_in = temp_sous_calcul_traitement_94, - logement_est_chambre_in = temp_sous_calcul_traitement_95, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_96, - type_aide_in = temp_sous_calcul_traitement_97, - colocation_in = temp_sous_calcul_traitement_98, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_99, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_100, - residence_in = temp_sous_calcul_traitement_101)).montant_forfaitaire_charges_d823_16, - plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_74, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_75, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_76, - date_courante_in = temp_sous_calcul_traitement_77, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_78, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_79, - zone_in = temp_sous_calcul_traitement_80, - logement_est_chambre_in = temp_sous_calcul_traitement_81, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_82, - type_aide_in = temp_sous_calcul_traitement_83, - colocation_in = temp_sous_calcul_traitement_84, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_85, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_86, - residence_in = temp_sous_calcul_traitement_87)).plafond_loyer_d823_16_2, - participation_minimale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_60, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_61, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_62, - date_courante_in = temp_sous_calcul_traitement_63, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_64, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_65, - zone_in = temp_sous_calcul_traitement_66, - logement_est_chambre_in = temp_sous_calcul_traitement_67, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_68, - type_aide_in = temp_sous_calcul_traitement_69, - colocation_in = temp_sous_calcul_traitement_70, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_71, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_72, - residence_in = temp_sous_calcul_traitement_73)).participation_minimale, - taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_46, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_47, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_48, - date_courante_in = temp_sous_calcul_traitement_49, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_50, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_51, - zone_in = temp_sous_calcul_traitement_52, - logement_est_chambre_in = temp_sous_calcul_traitement_53, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_54, - type_aide_in = temp_sous_calcul_traitement_55, - colocation_in = temp_sous_calcul_traitement_56, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_57, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_58, - residence_in = temp_sous_calcul_traitement_59)).taux_composition_familiale, - participation_personnelle = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_32, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_33, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_34, - date_courante_in = temp_sous_calcul_traitement_35, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_36, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_37, - zone_in = temp_sous_calcul_traitement_38, - logement_est_chambre_in = temp_sous_calcul_traitement_39, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_40, - type_aide_in = temp_sous_calcul_traitement_41, - colocation_in = temp_sous_calcul_traitement_42, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_43, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_44, - residence_in = temp_sous_calcul_traitement_45)).participation_personnelle, - aide_finale_formule = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_18, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_19, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_20, - date_courante_in = temp_sous_calcul_traitement_21, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_22, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_23, - zone_in = temp_sous_calcul_traitement_24, - logement_est_chambre_in = temp_sous_calcul_traitement_25, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_26, - type_aide_in = temp_sous_calcul_traitement_27, - colocation_in = temp_sous_calcul_traitement_28, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_29, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_30, - residence_in = temp_sous_calcul_traitement_31)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_3).aide_finale_formule, - traitement_aide_finale = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_187, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_188, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_189, - date_courante_in = temp_sous_calcul_traitement_190, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_191, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_192, - zone_in = temp_sous_calcul_traitement_193, - logement_est_chambre_in = temp_sous_calcul_traitement_194, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_195, - type_aide_in = temp_sous_calcul_traitement_196, - colocation_in = temp_sous_calcul_traitement_197, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_198, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_199, - residence_in = temp_sous_calcul_traitement_200)).montant_forfaitaire_charges_d823_16, - plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_173, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_174, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_175, - date_courante_in = temp_sous_calcul_traitement_176, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_177, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_178, - zone_in = temp_sous_calcul_traitement_179, - logement_est_chambre_in = temp_sous_calcul_traitement_180, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_181, - type_aide_in = temp_sous_calcul_traitement_182, - colocation_in = temp_sous_calcul_traitement_183, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_184, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_185, - residence_in = temp_sous_calcul_traitement_186)).plafond_loyer_d823_16_2, - participation_minimale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_159, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_160, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_161, - date_courante_in = temp_sous_calcul_traitement_162, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_163, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_164, - zone_in = temp_sous_calcul_traitement_165, - logement_est_chambre_in = temp_sous_calcul_traitement_166, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_167, - type_aide_in = temp_sous_calcul_traitement_168, - colocation_in = temp_sous_calcul_traitement_169, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_170, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_171, - residence_in = temp_sous_calcul_traitement_172)).participation_minimale, - taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_145, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_146, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_147, - date_courante_in = temp_sous_calcul_traitement_148, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_149, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_150, - zone_in = temp_sous_calcul_traitement_151, - logement_est_chambre_in = temp_sous_calcul_traitement_152, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_153, - type_aide_in = temp_sous_calcul_traitement_154, - colocation_in = temp_sous_calcul_traitement_155, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_156, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_157, - residence_in = temp_sous_calcul_traitement_158)).taux_composition_familiale, - participation_personnelle = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_131, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_132, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_133, - date_courante_in = temp_sous_calcul_traitement_134, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_135, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_136, - zone_in = temp_sous_calcul_traitement_137, - logement_est_chambre_in = temp_sous_calcul_traitement_138, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_139, - type_aide_in = temp_sous_calcul_traitement_140, - colocation_in = temp_sous_calcul_traitement_141, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_142, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_143, - residence_in = temp_sous_calcul_traitement_144)).participation_personnelle, - aide_finale_formule = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_117, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_118, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_119, - date_courante_in = temp_sous_calcul_traitement_120, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_121, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_122, - zone_in = temp_sous_calcul_traitement_123, - logement_est_chambre_in = temp_sous_calcul_traitement_124, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_125, - type_aide_in = temp_sous_calcul_traitement_126, - colocation_in = temp_sous_calcul_traitement_127, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_128, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_129, - residence_in = temp_sous_calcul_traitement_130)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_102).traitement_aide_finale) - else: - temp_sous_calcul_traitement_2 = dead_value - raise EmptyError - except EmptyError: - match_arg_630 = categorie_calcul_apl - if match_arg_630.code == CategorieCalculAPL_Code.Location: - location_2 = match_arg_630.value - def temp_sous_calcul_traitement_201(param0_2:Money): - try: - temp_sous_calcul_traitement_202 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_202 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_203 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_203 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_204 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_204 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_205 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_205 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_206 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_206 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_207 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_207 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_208 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_208 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_209 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_209 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_210 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_210 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_211 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_211 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_212 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_212 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_631 = location_2.bailleur - if match_arg_631.code == TypeBailleur_Code.BailleurSocial: - bailleur = match_arg_631.value - temp_sous_calcul_traitement_213 = bailleur.reduction_loyer_solidarite_percue - elif match_arg_631.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_631.value - temp_sous_calcul_traitement_213 = money_of_cents_string("0") - elif match_arg_631.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_631.value - temp_sous_calcul_traitement_213 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_213 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_214 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_214 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_215 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_215 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_202, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_203, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_204, - date_courante_in = temp_sous_calcul_traitement_205, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_206, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_207, - zone_in = temp_sous_calcul_traitement_208, - logement_est_chambre_in = temp_sous_calcul_traitement_209, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_210, - type_aide_in = temp_sous_calcul_traitement_211, - colocation_in = temp_sous_calcul_traitement_212, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_213, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_214, - residence_in = temp_sous_calcul_traitement_215)).traitement_aide_finale( - param0_2) + temp_sous_calcul_traitement_26 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_26 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_27 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_27 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_28 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_28 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_29 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_29 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_30 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_30 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_31 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_31 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_32 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_32 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_33 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_33 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_34 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_34 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_35 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_35 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_36 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_36 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_37 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_37 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_38 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_38 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_39 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_39 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_630 = location_2.bailleur + if match_arg_630.code == TypeBailleur_Code.BailleurSocial: + bailleur_2 = match_arg_630.value + temp_sous_calcul_traitement_40 = bailleur_2.reduction_loyer_solidarite_percue + elif match_arg_630.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_630.value + temp_sous_calcul_traitement_40 = money_of_cents_string("0") + elif match_arg_630.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_630.value + temp_sous_calcul_traitement_40 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_40 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_41 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_41 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_42 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_42 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_43 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_43 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_44 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_44 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_45 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_45 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_46 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_46 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_47 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_47 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_48 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_48 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_49 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_49 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_50 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_50 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_51 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_51 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_52 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_52 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_53 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_53 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_631 = location_2.bailleur + if match_arg_631.code == TypeBailleur_Code.BailleurSocial: + bailleur_3 = match_arg_631.value + temp_sous_calcul_traitement_54 = bailleur_3.reduction_loyer_solidarite_percue + elif match_arg_631.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_631.value + temp_sous_calcul_traitement_54 = money_of_cents_string("0") + elif match_arg_631.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_631.value + temp_sous_calcul_traitement_54 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_54 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_55 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_55 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_56 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_56 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_57 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_57 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_58 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_58 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_59 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_59 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_60 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_60 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_61 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_61 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_62 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_62 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_63 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_63 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_64 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_64 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_65 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_65 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_66 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_66 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_67 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_67 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_632 = location_2.bailleur + if match_arg_632.code == TypeBailleur_Code.BailleurSocial: + bailleur_4 = match_arg_632.value + temp_sous_calcul_traitement_68 = bailleur_4.reduction_loyer_solidarite_percue + elif match_arg_632.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_632.value + temp_sous_calcul_traitement_68 = money_of_cents_string("0") + elif match_arg_632.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_632.value + temp_sous_calcul_traitement_68 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_68 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_69 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_69 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_70 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_70 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_71 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_71 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_72 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_72 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_73 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_73 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_74 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_74 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_75 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_75 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_76 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_76 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_77 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_77 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_78 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_78 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_79 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_79 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_80 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_80 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_81 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_81 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_633 = location_2.bailleur + if match_arg_633.code == TypeBailleur_Code.BailleurSocial: + bailleur_5 = match_arg_633.value + temp_sous_calcul_traitement_82 = bailleur_5.reduction_loyer_solidarite_percue + elif match_arg_633.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_633.value + temp_sous_calcul_traitement_82 = money_of_cents_string("0") + elif match_arg_633.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_633.value + temp_sous_calcul_traitement_82 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_82 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_83 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_83 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_84 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_84 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_85 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_85 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_86 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_86 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_87 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_87 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_88 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_88 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_89 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_89 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_90 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_90 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_91 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_91 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_92 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_92 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_93 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_93 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_94 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_94 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_95 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_95 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_634 = location_2.bailleur + if match_arg_634.code == TypeBailleur_Code.BailleurSocial: + bailleur_6 = match_arg_634.value + temp_sous_calcul_traitement_96 = bailleur_6.reduction_loyer_solidarite_percue + elif match_arg_634.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_634.value + temp_sous_calcul_traitement_96 = money_of_cents_string("0") + elif match_arg_634.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_634.value + temp_sous_calcul_traitement_96 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_96 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_97 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_97 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_98 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_98 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_99(param0_1:Money): try: - temp_sous_calcul_traitement_216 = location_2.loyer_principal + temp_sous_calcul_traitement_100 = location_2.loyer_principal except EmptyError: - temp_sous_calcul_traitement_216 = dead_value + temp_sous_calcul_traitement_100 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, + start_line=1481, start_column=31, - end_line=1479, + end_line=1481, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25300,13 +23348,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_217 = ressources_menage_avec_arrondi + temp_sous_calcul_traitement_101 = ressources_menage_avec_arrondi except EmptyError: - temp_sous_calcul_traitement_217 = dead_value + temp_sous_calcul_traitement_101 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1476, start_column=43, - end_line=1474, + end_line=1476, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25316,13 +23364,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_218 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_102 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_218 = dead_value + temp_sous_calcul_traitement_102 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, + start_line=1483, start_column=15, - end_line=1481, + end_line=1483, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25332,13 +23380,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_219 = date_courante_14 + temp_sous_calcul_traitement_103 = date_courante_14 except EmptyError: - temp_sous_calcul_traitement_219 = dead_value + temp_sous_calcul_traitement_103 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, + start_line=1479, start_column=29, - end_line=1477, + end_line=1479, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25348,13 +23396,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_220 = nombre_personnes_a_charge_11 + temp_sous_calcul_traitement_104 = nombre_personnes_a_charge_11 except EmptyError: - temp_sous_calcul_traitement_220 = dead_value + temp_sous_calcul_traitement_104 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, + start_line=1477, start_column=41, - end_line=1475, + end_line=1477, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25364,13 +23412,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_221 = situation_familiale_calcul_apl_8 + temp_sous_calcul_traitement_105 = situation_familiale_calcul_apl_8 except EmptyError: - temp_sous_calcul_traitement_221 = dead_value + temp_sous_calcul_traitement_105 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, + start_line=1480, start_column=46, - end_line=1478, + end_line=1480, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25380,13 +23428,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_222 = zone_6 + temp_sous_calcul_traitement_106 = zone_6 except EmptyError: - temp_sous_calcul_traitement_222 = dead_value + temp_sous_calcul_traitement_106 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, + start_line=1478, start_column=20, - end_line=1476, + end_line=1478, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25396,13 +23444,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_223 = location_2.logement_est_chambre + temp_sous_calcul_traitement_107 = location_2.logement_est_chambre except EmptyError: - temp_sous_calcul_traitement_223 = dead_value + temp_sous_calcul_traitement_107 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, + start_line=1484, start_column=36, - end_line=1482, + end_line=1484, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25412,13 +23460,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_224 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + temp_sous_calcul_traitement_108 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers except EmptyError: - temp_sous_calcul_traitement_224 = dead_value + temp_sous_calcul_traitement_108 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, + start_line=1487, start_column=15, - end_line=1485, + end_line=1487, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25428,86 +23476,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_225 = type_aide_2 + temp_sous_calcul_traitement_109 = type_aide_2 except EmptyError: - temp_sous_calcul_traitement_225 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_226 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_226 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_632 = location_2.bailleur - if match_arg_632.code == TypeBailleur_Code.BailleurSocial: - bailleur_1 = match_arg_632.value - temp_sous_calcul_traitement_227 = bailleur_1.reduction_loyer_solidarite_percue - elif match_arg_632.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_632.value - temp_sous_calcul_traitement_227 = money_of_cents_string("0") - elif match_arg_632.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_632.value - temp_sous_calcul_traitement_227 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_227 = dead_value + temp_sous_calcul_traitement_109 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_228 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_228 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_229 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_229 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, start_column=25, - end_line=1493, + end_line=1488, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -25517,639 +23492,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_230 = location_2.loyer_principal + temp_sous_calcul_traitement_110 = location_2.colocation except EmptyError: - temp_sous_calcul_traitement_230 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_231 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_231 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_232 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_232 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_233 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_233 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_234 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_234 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_235 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_235 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_236 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_236 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_237 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_237 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_238 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_238 = dead_value + temp_sous_calcul_traitement_110 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_239 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_239 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_240 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_240 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_633 = location_2.bailleur - if match_arg_633.code == TypeBailleur_Code.BailleurSocial: - bailleur_2 = match_arg_633.value - temp_sous_calcul_traitement_241 = bailleur_2.reduction_loyer_solidarite_percue - elif match_arg_633.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_633.value - temp_sous_calcul_traitement_241 = money_of_cents_string("0") - elif match_arg_633.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_633.value - temp_sous_calcul_traitement_241 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_241 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_242 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_242 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_243 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_243 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_244 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_244 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_245 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_245 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_246 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_246 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_247 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_247 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_248 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_248 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_249 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_249 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_250 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_250 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_251 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_251 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_252 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_252 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_253 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_253 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_254 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_254 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_634 = location_2.bailleur - if match_arg_634.code == TypeBailleur_Code.BailleurSocial: - bailleur_3 = match_arg_634.value - temp_sous_calcul_traitement_255 = bailleur_3.reduction_loyer_solidarite_percue - elif match_arg_634.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_634.value - temp_sous_calcul_traitement_255 = money_of_cents_string("0") - elif match_arg_634.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_634.value - temp_sous_calcul_traitement_255 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_255 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_256 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_256 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_257 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_257 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_258 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_258 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_259 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_259 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_260 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_260 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_261 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_261 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_262 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_262 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_263 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_263 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_264 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_264 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_265 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_265 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_266 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_266 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_267 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_267 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_268 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_268 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26161,20 +23510,20 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal try: match_arg_635 = location_2.bailleur if match_arg_635.code == TypeBailleur_Code.BailleurSocial: - bailleur_4 = match_arg_635.value - temp_sous_calcul_traitement_269 = bailleur_4.reduction_loyer_solidarite_percue + bailleur_7 = match_arg_635.value + temp_sous_calcul_traitement_111 = bailleur_7.reduction_loyer_solidarite_percue elif match_arg_635.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: _ = match_arg_635.value - temp_sous_calcul_traitement_269 = money_of_cents_string("0") + temp_sous_calcul_traitement_111 = money_of_cents_string("0") elif match_arg_635.code == TypeBailleur_Code.BailleurPrive: _ = match_arg_635.value - temp_sous_calcul_traitement_269 = money_of_cents_string("0") + temp_sous_calcul_traitement_111 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_269 = dead_value + temp_sous_calcul_traitement_111 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, + start_line=1490, start_column=16, - end_line=1491, + end_line=1493, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26184,13 +23533,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_270 = location_2.logement_meuble_d842_2 + temp_sous_calcul_traitement_112 = location_2.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_270 = dead_value + temp_sous_calcul_traitement_112 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, + start_line=1494, start_column=38, - end_line=1492, + end_line=1494, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -26200,14 +23549,2765 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_271 = residence_8 + temp_sous_calcul_traitement_113 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_113 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_aide_personnalisee_logement_locatif(CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_100, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_101, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_102, + date_courante_in = temp_sous_calcul_traitement_103, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_104, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_105, + zone_in = temp_sous_calcul_traitement_106, + logement_est_chambre_in = temp_sous_calcul_traitement_107, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_108, + type_aide_in = temp_sous_calcul_traitement_109, + colocation_in = temp_sous_calcul_traitement_110, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_111, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_112, + residence_in = temp_sous_calcul_traitement_113)).traitement_aide_finale( + param0_1) + try: + temp_sous_calcul_traitement_114 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_114 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_115 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_115 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_116 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_116 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_117 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_117 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_118 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_118 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_119 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_119 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_120 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_120 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_121 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_121 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_122 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_122 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_123 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_123 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_124 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_124 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_636 = location_2.bailleur + if match_arg_636.code == TypeBailleur_Code.BailleurSocial: + bailleur_8 = match_arg_636.value + temp_sous_calcul_traitement_125 = bailleur_8.reduction_loyer_solidarite_percue + elif match_arg_636.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_636.value + temp_sous_calcul_traitement_125 = money_of_cents_string("0") + elif match_arg_636.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_636.value + temp_sous_calcul_traitement_125 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_125 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_126 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_126 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_127 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_127 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_128 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_128 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_129 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_129 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_130 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_130 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_131 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_131 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_132 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_132 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_133 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_133 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_134 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_134 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_135 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_135 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_136 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_136 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_137 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_137 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_138 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_138 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_637 = location_2.bailleur + if match_arg_637.code == TypeBailleur_Code.BailleurSocial: + bailleur_9 = match_arg_637.value + temp_sous_calcul_traitement_139 = bailleur_9.reduction_loyer_solidarite_percue + elif match_arg_637.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_637.value + temp_sous_calcul_traitement_139 = money_of_cents_string("0") + elif match_arg_637.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_637.value + temp_sous_calcul_traitement_139 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_139 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_140 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_140 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_141 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_141 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_142 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_142 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_143 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_143 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_144 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_144 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_145 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_145 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_146 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_146 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_147 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_147 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_148 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_148 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_149 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_149 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_150 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_150 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_151 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_151 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_152 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_152 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_638 = location_2.bailleur + if match_arg_638.code == TypeBailleur_Code.BailleurSocial: + bailleur_10 = match_arg_638.value + temp_sous_calcul_traitement_153 = bailleur_10.reduction_loyer_solidarite_percue + elif match_arg_638.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_638.value + temp_sous_calcul_traitement_153 = money_of_cents_string("0") + elif match_arg_638.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_638.value + temp_sous_calcul_traitement_153 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_153 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_154 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_154 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_155 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_155 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_156 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_156 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_157 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_157 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_158 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_158 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_159 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_159 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_160 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_160 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_161 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_161 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_162 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_162 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_163 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_163 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_164 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_164 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_165 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_165 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_166 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_166 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_639 = location_2.bailleur + if match_arg_639.code == TypeBailleur_Code.BailleurSocial: + bailleur_11 = match_arg_639.value + temp_sous_calcul_traitement_167 = bailleur_11.reduction_loyer_solidarite_percue + elif match_arg_639.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_639.value + temp_sous_calcul_traitement_167 = money_of_cents_string("0") + elif match_arg_639.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_639.value + temp_sous_calcul_traitement_167 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_167 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_168 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_168 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_169 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_169 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_170 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_170 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_171 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_171 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_172 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_172 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_173 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_173 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_174 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_174 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_175 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_175 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_176 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_176 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_177 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_177 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_178 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_178 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_179 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_179 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_180 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_180 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_640 = location_2.bailleur + if match_arg_640.code == TypeBailleur_Code.BailleurSocial: + bailleur_12 = match_arg_640.value + temp_sous_calcul_traitement_181 = bailleur_12.reduction_loyer_solidarite_percue + elif match_arg_640.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_640.value + temp_sous_calcul_traitement_181 = money_of_cents_string("0") + elif match_arg_640.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_640.value + temp_sous_calcul_traitement_181 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_181 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_182 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_182 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_183 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_183 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_184 = location_2.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_184 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1481, + start_column=31, + end_line=1481, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_185 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_185 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1476, + start_column=43, + end_line=1476, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_186 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_186 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1483, + start_column=15, + end_line=1483, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_187 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_187 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1479, + start_column=29, + end_line=1479, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_188 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_188 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1477, + start_column=41, + end_line=1477, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_189 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_189 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1480, + start_column=46, + end_line=1480, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_190 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_190 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1478, + start_column=20, + end_line=1478, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_191 = location_2.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_191 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1484, + start_column=36, + end_line=1484, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_192 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_192 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1487, + start_column=15, + end_line=1487, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_193 = type_aide_2 + except EmptyError: + temp_sous_calcul_traitement_193 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1488, + start_column=25, + end_line=1488, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_194 = location_2.colocation + except EmptyError: + temp_sous_calcul_traitement_194 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1485, + start_column=26, + end_line=1485, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_641 = location_2.bailleur + if match_arg_641.code == TypeBailleur_Code.BailleurSocial: + bailleur_13 = match_arg_641.value + temp_sous_calcul_traitement_195 = bailleur_13.reduction_loyer_solidarite_percue + elif match_arg_641.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_641.value + temp_sous_calcul_traitement_195 = money_of_cents_string("0") + elif match_arg_641.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_641.value + temp_sous_calcul_traitement_195 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_195 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1490, + start_column=16, + end_line=1493, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_196 = location_2.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_196 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1494, + start_column=38, + end_line=1494, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_197 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_197 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1495, + start_column=25, + end_line=1495, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + temp_sous_calcul_traitement_198 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_85, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_86, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_87, + date_courante_in = temp_sous_calcul_traitement_88, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_89, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_90, + zone_in = temp_sous_calcul_traitement_91, + logement_est_chambre_in = temp_sous_calcul_traitement_92, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_93, + type_aide_in = temp_sous_calcul_traitement_94, + colocation_in = temp_sous_calcul_traitement_95, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_96, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_97, + residence_in = temp_sous_calcul_traitement_98)).montant_forfaitaire_charges_d823_16, + plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_71, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_72, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_73, + date_courante_in = temp_sous_calcul_traitement_74, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_75, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_76, + zone_in = temp_sous_calcul_traitement_77, + logement_est_chambre_in = temp_sous_calcul_traitement_78, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_79, + type_aide_in = temp_sous_calcul_traitement_80, + colocation_in = temp_sous_calcul_traitement_81, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_82, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_83, + residence_in = temp_sous_calcul_traitement_84)).plafond_loyer_d823_16_2, + participation_minimale = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_57, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_58, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_59, + date_courante_in = temp_sous_calcul_traitement_60, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_61, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_62, + zone_in = temp_sous_calcul_traitement_63, + logement_est_chambre_in = temp_sous_calcul_traitement_64, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_65, + type_aide_in = temp_sous_calcul_traitement_66, + colocation_in = temp_sous_calcul_traitement_67, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_68, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_69, + residence_in = temp_sous_calcul_traitement_70)).participation_minimale, + taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_43, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_44, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_45, + date_courante_in = temp_sous_calcul_traitement_46, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_47, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_48, + zone_in = temp_sous_calcul_traitement_49, + logement_est_chambre_in = temp_sous_calcul_traitement_50, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_51, + type_aide_in = temp_sous_calcul_traitement_52, + colocation_in = temp_sous_calcul_traitement_53, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_54, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_55, + residence_in = temp_sous_calcul_traitement_56)).taux_composition_familiale, + participation_personnelle = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_29, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_30, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_31, + date_courante_in = temp_sous_calcul_traitement_32, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_33, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_34, + zone_in = temp_sous_calcul_traitement_35, + logement_est_chambre_in = temp_sous_calcul_traitement_36, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_37, + type_aide_in = temp_sous_calcul_traitement_38, + colocation_in = temp_sous_calcul_traitement_39, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_40, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_41, + residence_in = temp_sous_calcul_traitement_42)).participation_personnelle, + aide_finale_formule = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_15, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_16, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_17, + date_courante_in = temp_sous_calcul_traitement_18, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_19, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_20, + zone_in = temp_sous_calcul_traitement_21, + logement_est_chambre_in = temp_sous_calcul_traitement_22, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_23, + type_aide_in = temp_sous_calcul_traitement_24, + colocation_in = temp_sous_calcul_traitement_25, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_26, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_27, + residence_in = temp_sous_calcul_traitement_28)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement).aide_finale_formule, + traitement_aide_finale = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_184, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_185, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_186, + date_courante_in = temp_sous_calcul_traitement_187, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_188, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_189, + zone_in = temp_sous_calcul_traitement_190, + logement_est_chambre_in = temp_sous_calcul_traitement_191, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_192, + type_aide_in = temp_sous_calcul_traitement_193, + colocation_in = temp_sous_calcul_traitement_194, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_195, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_196, + residence_in = temp_sous_calcul_traitement_197)).montant_forfaitaire_charges_d823_16, + plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_170, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_171, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_172, + date_courante_in = temp_sous_calcul_traitement_173, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_174, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_175, + zone_in = temp_sous_calcul_traitement_176, + logement_est_chambre_in = temp_sous_calcul_traitement_177, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_178, + type_aide_in = temp_sous_calcul_traitement_179, + colocation_in = temp_sous_calcul_traitement_180, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_181, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_182, + residence_in = temp_sous_calcul_traitement_183)).plafond_loyer_d823_16_2, + participation_minimale = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_156, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_157, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_158, + date_courante_in = temp_sous_calcul_traitement_159, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_160, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_161, + zone_in = temp_sous_calcul_traitement_162, + logement_est_chambre_in = temp_sous_calcul_traitement_163, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_164, + type_aide_in = temp_sous_calcul_traitement_165, + colocation_in = temp_sous_calcul_traitement_166, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_167, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_168, + residence_in = temp_sous_calcul_traitement_169)).participation_minimale, + taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_142, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_143, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_144, + date_courante_in = temp_sous_calcul_traitement_145, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_146, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_147, + zone_in = temp_sous_calcul_traitement_148, + logement_est_chambre_in = temp_sous_calcul_traitement_149, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_150, + type_aide_in = temp_sous_calcul_traitement_151, + colocation_in = temp_sous_calcul_traitement_152, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_153, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_154, + residence_in = temp_sous_calcul_traitement_155)).taux_composition_familiale, + participation_personnelle = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_128, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_129, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_130, + date_courante_in = temp_sous_calcul_traitement_131, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_132, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_133, + zone_in = temp_sous_calcul_traitement_134, + logement_est_chambre_in = temp_sous_calcul_traitement_135, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_136, + type_aide_in = temp_sous_calcul_traitement_137, + colocation_in = temp_sous_calcul_traitement_138, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_139, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_140, + residence_in = temp_sous_calcul_traitement_141)).participation_personnelle, + aide_finale_formule = calcul_aide_personnalisee_logement_locatif( + CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_114, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_115, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_116, + date_courante_in = temp_sous_calcul_traitement_117, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_118, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_119, + zone_in = temp_sous_calcul_traitement_120, + logement_est_chambre_in = temp_sous_calcul_traitement_121, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_122, + type_aide_in = temp_sous_calcul_traitement_123, + colocation_in = temp_sous_calcul_traitement_124, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_125, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_126, + residence_in = temp_sous_calcul_traitement_127)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_99).traitement_aide_finale) + elif match_arg_627.code == CategorieCalculAPL_Code.AccessionPropriete: + proprietaire_2 = match_arg_627.value + def temp_sous_calcul_traitement_199(param0_2:Money): + try: + temp_sous_calcul_traitement_200 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_200 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_201 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_201 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_202 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_202 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_203 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_203 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_204 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_204 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_205 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_205 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_206 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_206 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_207 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_207 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_208 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_208 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_209 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_209 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_210 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_210 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_211 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_211 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_212 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_212 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_213 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_213 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_200, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_201, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_202, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_203, + type_travaux_logement_in = temp_sous_calcul_traitement_204, + date_signature_pret_in = temp_sous_calcul_traitement_205, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_206, + date_entree_logement_in = temp_sous_calcul_traitement_207, + copropriete_in = temp_sous_calcul_traitement_208, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_209, + zone_in = temp_sous_calcul_traitement_210, + type_pret_in = temp_sous_calcul_traitement_211, + anciennete_logement_in = temp_sous_calcul_traitement_212, + date_courante_in = temp_sous_calcul_traitement_213)).traitement_aide_finale( + param0_2) + try: + temp_sous_calcul_traitement_214 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_214 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_215 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_215 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_216 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_216 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_217 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_217 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_218 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_218 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_219 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_219 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_220 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_220 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_221 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_221 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_222 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_222 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_223 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_223 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_224 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_224 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_225 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_225 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_226 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_226 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_227 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_227 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_228 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_228 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_229 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_229 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_230 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_230 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_231 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_231 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_232 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_232 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_233 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_233 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_234 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_234 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_235 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_235 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_236 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_236 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_237 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_237 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_238 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_238 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_239 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_239 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_240 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_240 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_241 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_241 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_242 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_242 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_243 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_243 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_244 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_244 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_245 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_245 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_246 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_246 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_247 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_247 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_248 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_248 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_249 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_249 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_250 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_250 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_251 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_251 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_252 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_252 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_253 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_253 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_254 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_254 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_255 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_255 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_256 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_256 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_257 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_257 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_258 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_258 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_259 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_259 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_260 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_260 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_261 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_261 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_262 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_262 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_263 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_263 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_264 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_264 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_265 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_265 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_266 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_266 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_267 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_267 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_268 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_268 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_269 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_269 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_270(param0_3:Money): + try: + temp_sous_calcul_traitement_271 = proprietaire_2.mensualite_principale except EmptyError: temp_sous_calcul_traitement_271 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26216,14 +26316,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_272 = location_2.loyer_principal + temp_sous_calcul_traitement_272 = ressources_menage_avec_arrondi except EmptyError: temp_sous_calcul_traitement_272 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26232,14 +26332,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_273 = ressources_menage_avec_arrondi + temp_sous_calcul_traitement_273 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_273 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26248,14 +26348,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_274 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_274 = situation_familiale_calcul_apl_8 except EmptyError: temp_sous_calcul_traitement_274 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26264,14 +26364,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_275 = date_courante_14 + temp_sous_calcul_traitement_275 = proprietaire_2.type_travaux_logement_d832_15 except EmptyError: temp_sous_calcul_traitement_275 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26280,14 +26380,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_276 = nombre_personnes_a_charge_11 + temp_sous_calcul_traitement_276 = proprietaire_2.pret.date_signature except EmptyError: temp_sous_calcul_traitement_276 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26296,14 +26396,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_277 = situation_familiale_calcul_apl_8 + temp_sous_calcul_traitement_277 = proprietaire_2.local_habite_premiere_fois_beneficiaire except EmptyError: temp_sous_calcul_traitement_277 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26312,14 +26412,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_278 = zone_6 + temp_sous_calcul_traitement_278 = proprietaire_2.date_entree_logement except EmptyError: temp_sous_calcul_traitement_278 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26328,14 +26428,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_279 = location_2.logement_est_chambre + temp_sous_calcul_traitement_279 = proprietaire_2.copropriete except EmptyError: temp_sous_calcul_traitement_279 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26344,14 +26444,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_280 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers + temp_sous_calcul_traitement_280 = proprietaire_2.situation_r822_11_13_17 except EmptyError: temp_sous_calcul_traitement_280 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26360,14 +26460,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_281 = type_aide_2 + temp_sous_calcul_traitement_281 = zone_6 except EmptyError: temp_sous_calcul_traitement_281 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26376,14 +26476,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_282 = location_2.colocation + temp_sous_calcul_traitement_282 = proprietaire_2.pret.type_pret except EmptyError: temp_sous_calcul_traitement_282 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, + start_line=1542, start_column=26, - end_line=1483, - end_column=45, + end_line=1542, + end_column=53, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26392,23 +26492,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_636 = location_2.bailleur - if match_arg_636.code == TypeBailleur_Code.BailleurSocial: - bailleur_5 = match_arg_636.value - temp_sous_calcul_traitement_283 = bailleur_5.reduction_loyer_solidarite_percue - elif match_arg_636.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_636.value - temp_sous_calcul_traitement_283 = money_of_cents_string("0") - elif match_arg_636.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_636.value - temp_sous_calcul_traitement_283 = money_of_cents_string("0") + temp_sous_calcul_traitement_283 = proprietaire_2.anciennete_logement except EmptyError: temp_sous_calcul_traitement_283 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26417,14 +26508,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_284 = location_2.logement_meuble_d842_2 + temp_sous_calcul_traitement_284 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_284 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -26432,964 +26523,1052 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) + return calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_271, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_272, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_273, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_274, + type_travaux_logement_in = temp_sous_calcul_traitement_275, + date_signature_pret_in = temp_sous_calcul_traitement_276, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_277, + date_entree_logement_in = temp_sous_calcul_traitement_278, + copropriete_in = temp_sous_calcul_traitement_279, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_280, + zone_in = temp_sous_calcul_traitement_281, + type_pret_in = temp_sous_calcul_traitement_282, + anciennete_logement_in = temp_sous_calcul_traitement_283, + date_courante_in = temp_sous_calcul_traitement_284)).traitement_aide_finale( + param0_3) + try: + temp_sous_calcul_traitement_285 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_285 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_286 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_286 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_287 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_287 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_288 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_288 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_289 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_289 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_290 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_290 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_291 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_291 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_292 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_292 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_293 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_293 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_294 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_294 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_295 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_295 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_296 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_296 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_297 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_297 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_298 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_298 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_299 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_299 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_300 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_300 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_301 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_301 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_302 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_302 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_303 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_303 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_304 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_304 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_305 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_305 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_306 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_306 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_307 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_307 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_308 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_308 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_309 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_309 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_310 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_310 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_311 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_311 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_312 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_312 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_313 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_313 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_314 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_314 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_315 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_315 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_316 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_316 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_317 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_317 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_318 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_318 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_319 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_319 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_320 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_320 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_321 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_321 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_322 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_322 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_323 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_323 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_324 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_324 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_325 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_325 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_326 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_326 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_327 = proprietaire_2.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_327 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1534, + start_column=38, + end_line=1534, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_328 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_328 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1529, + start_column=44, + end_line=1529, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_329 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_329 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1530, + start_column=42, + end_line=1530, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_330 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_330 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1533, + start_column=47, + end_line=1533, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_331 = proprietaire_2.type_travaux_logement_d832_15 + except EmptyError: + temp_sous_calcul_traitement_331 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1535, + start_column=38, + end_line=1535, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_332 = proprietaire_2.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_332 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1536, + start_column=36, + end_line=1536, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_333 = proprietaire_2.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_333 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1538, + start_column=14, + end_line=1538, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_334 = proprietaire_2.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_334 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1539, + start_column=37, + end_line=1539, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_335 = proprietaire_2.copropriete + except EmptyError: + temp_sous_calcul_traitement_335 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1540, + start_column=28, + end_line=1540, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_336 = proprietaire_2.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_336 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1541, + start_column=40, + end_line=1541, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_337 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_337 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1531, + start_column=21, + end_line=1531, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_338 = proprietaire_2.pret.type_pret + except EmptyError: + temp_sous_calcul_traitement_338 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1542, + start_column=26, + end_line=1542, + end_column=53, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_339 = proprietaire_2.anciennete_logement + except EmptyError: + temp_sous_calcul_traitement_339 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1543, + start_column=36, + end_line=1543, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_340 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_340 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1532, + start_column=30, + end_line=1532, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + temp_sous_calcul_traitement_198 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementAccessionPropriete(mensualite_eligible = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_256, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_257, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_258, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_259, + type_travaux_logement_in = temp_sous_calcul_traitement_260, + date_signature_pret_in = temp_sous_calcul_traitement_261, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_262, + date_entree_logement_in = temp_sous_calcul_traitement_263, + copropriete_in = temp_sous_calcul_traitement_264, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_265, + zone_in = temp_sous_calcul_traitement_266, + type_pret_in = temp_sous_calcul_traitement_267, + anciennete_logement_in = temp_sous_calcul_traitement_268, + date_courante_in = temp_sous_calcul_traitement_269)).mensualite_eligible, + mensualite_minimale = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_242, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_243, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_244, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_245, + type_travaux_logement_in = temp_sous_calcul_traitement_246, + date_signature_pret_in = temp_sous_calcul_traitement_247, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_248, + date_entree_logement_in = temp_sous_calcul_traitement_249, + copropriete_in = temp_sous_calcul_traitement_250, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_251, + zone_in = temp_sous_calcul_traitement_252, + type_pret_in = temp_sous_calcul_traitement_253, + anciennete_logement_in = temp_sous_calcul_traitement_254, + date_courante_in = temp_sous_calcul_traitement_255)).mensualite_minimale, + coefficient_prise_en_charge_d832_10 = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_228, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_229, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_230, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_231, + type_travaux_logement_in = temp_sous_calcul_traitement_232, + date_signature_pret_in = temp_sous_calcul_traitement_233, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_234, + date_entree_logement_in = temp_sous_calcul_traitement_235, + copropriete_in = temp_sous_calcul_traitement_236, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_237, + zone_in = temp_sous_calcul_traitement_238, + type_pret_in = temp_sous_calcul_traitement_239, + anciennete_logement_in = temp_sous_calcul_traitement_240, + date_courante_in = temp_sous_calcul_traitement_241)).coefficient_prise_en_charge_d832_10, + aide_finale_formule = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_214, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_215, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_216, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_217, + type_travaux_logement_in = temp_sous_calcul_traitement_218, + date_signature_pret_in = temp_sous_calcul_traitement_219, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_220, + date_entree_logement_in = temp_sous_calcul_traitement_221, + copropriete_in = temp_sous_calcul_traitement_222, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_223, + zone_in = temp_sous_calcul_traitement_224, + type_pret_in = temp_sous_calcul_traitement_225, + anciennete_logement_in = temp_sous_calcul_traitement_226, + date_courante_in = temp_sous_calcul_traitement_227)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_199).aide_finale_formule, + traitement_aide_finale = CalculAidePersonnaliseeLogementAccessionPropriete(mensualite_eligible = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_327, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_328, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_329, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_330, + type_travaux_logement_in = temp_sous_calcul_traitement_331, + date_signature_pret_in = temp_sous_calcul_traitement_332, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_333, + date_entree_logement_in = temp_sous_calcul_traitement_334, + copropriete_in = temp_sous_calcul_traitement_335, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_336, + zone_in = temp_sous_calcul_traitement_337, + type_pret_in = temp_sous_calcul_traitement_338, + anciennete_logement_in = temp_sous_calcul_traitement_339, + date_courante_in = temp_sous_calcul_traitement_340)).mensualite_eligible, + mensualite_minimale = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_313, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_314, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_315, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_316, + type_travaux_logement_in = temp_sous_calcul_traitement_317, + date_signature_pret_in = temp_sous_calcul_traitement_318, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_319, + date_entree_logement_in = temp_sous_calcul_traitement_320, + copropriete_in = temp_sous_calcul_traitement_321, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_322, + zone_in = temp_sous_calcul_traitement_323, + type_pret_in = temp_sous_calcul_traitement_324, + anciennete_logement_in = temp_sous_calcul_traitement_325, + date_courante_in = temp_sous_calcul_traitement_326)).mensualite_minimale, + coefficient_prise_en_charge_d832_10 = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_299, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_300, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_301, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_302, + type_travaux_logement_in = temp_sous_calcul_traitement_303, + date_signature_pret_in = temp_sous_calcul_traitement_304, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_305, + date_entree_logement_in = temp_sous_calcul_traitement_306, + copropriete_in = temp_sous_calcul_traitement_307, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_308, + zone_in = temp_sous_calcul_traitement_309, + type_pret_in = temp_sous_calcul_traitement_310, + anciennete_logement_in = temp_sous_calcul_traitement_311, + date_courante_in = temp_sous_calcul_traitement_312)).coefficient_prise_en_charge_d832_10, + aide_finale_formule = calcul_aide_personnalisee_logement_accession_propriete( + CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_285, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_286, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_287, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_288, + type_travaux_logement_in = temp_sous_calcul_traitement_289, + date_signature_pret_in = temp_sous_calcul_traitement_290, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_291, + date_entree_logement_in = temp_sous_calcul_traitement_292, + copropriete_in = temp_sous_calcul_traitement_293, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_294, + zone_in = temp_sous_calcul_traitement_295, + type_pret_in = temp_sous_calcul_traitement_296, + anciennete_logement_in = temp_sous_calcul_traitement_297, + date_courante_in = temp_sous_calcul_traitement_298)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_270).traitement_aide_finale) + elif match_arg_627.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer_ = match_arg_627.value + def temp_sous_calcul_traitement_341(param0_4:Money): try: - temp_sous_calcul_traitement_285 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_285 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_286 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_286 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_287 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_287 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_288 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_288 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_289 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_289 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_290 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_290 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_291 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_291 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_292 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_292 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_293 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_293 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_294 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_294 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_295 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_295 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_296 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_296 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_637 = location_2.bailleur - if match_arg_637.code == TypeBailleur_Code.BailleurSocial: - bailleur_6 = match_arg_637.value - temp_sous_calcul_traitement_297 = bailleur_6.reduction_loyer_solidarite_percue - elif match_arg_637.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_637.value - temp_sous_calcul_traitement_297 = money_of_cents_string("0") - elif match_arg_637.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_637.value - temp_sous_calcul_traitement_297 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_297 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_298 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_298 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_299 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_299 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_300(param0_3:Money): - try: - temp_sous_calcul_traitement_301 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_301 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_302 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_302 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_303 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_303 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_304 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_304 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_305 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_305 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_306 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_306 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_307 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_307 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_308 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_308 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_309 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_309 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_310 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_310 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_311 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_311 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_638 = location_2.bailleur - if match_arg_638.code == TypeBailleur_Code.BailleurSocial: - bailleur_7 = match_arg_638.value - temp_sous_calcul_traitement_312 = bailleur_7.reduction_loyer_solidarite_percue - elif match_arg_638.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_638.value - temp_sous_calcul_traitement_312 = money_of_cents_string("0") - elif match_arg_638.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_638.value - temp_sous_calcul_traitement_312 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_312 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_313 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_313 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_314 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_314 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_301, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_302, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_303, - date_courante_in = temp_sous_calcul_traitement_304, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_305, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_306, - zone_in = temp_sous_calcul_traitement_307, - logement_est_chambre_in = temp_sous_calcul_traitement_308, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_309, - type_aide_in = temp_sous_calcul_traitement_310, - colocation_in = temp_sous_calcul_traitement_311, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_312, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_313, - residence_in = temp_sous_calcul_traitement_314)).traitement_aide_finale( - param0_3) - try: - temp_sous_calcul_traitement_315 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_315 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_316 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_316 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_317 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_317 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_318 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_318 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_319 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_319 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_320 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_320 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_321 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_321 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_322 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_322 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_323 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_323 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_324 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_324 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_325 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_325 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_639 = location_2.bailleur - if match_arg_639.code == TypeBailleur_Code.BailleurSocial: - bailleur_8 = match_arg_639.value - temp_sous_calcul_traitement_326 = bailleur_8.reduction_loyer_solidarite_percue - elif match_arg_639.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_639.value - temp_sous_calcul_traitement_326 = money_of_cents_string("0") - elif match_arg_639.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_639.value - temp_sous_calcul_traitement_326 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_326 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_327 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_327 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_328 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_328 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_329 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_329 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_330 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_330 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_331 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_331 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_332 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_332 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_333 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_333 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_334 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_334 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_335 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_335 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_336 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_336 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_337 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_337 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_338 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_338 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_339 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_339 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_640 = location_2.bailleur - if match_arg_640.code == TypeBailleur_Code.BailleurSocial: - bailleur_9 = match_arg_640.value - temp_sous_calcul_traitement_340 = bailleur_9.reduction_loyer_solidarite_percue - elif match_arg_640.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_640.value - temp_sous_calcul_traitement_340 = money_of_cents_string("0") - elif match_arg_640.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_640.value - temp_sous_calcul_traitement_340 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_340 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_341 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_341 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_342 = residence_8 + temp_sous_calcul_traitement_342 = logement_foyer_.type except EmptyError: temp_sous_calcul_traitement_342 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27398,14 +27577,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_343 = location_2.loyer_principal + temp_sous_calcul_traitement_343 = logement_foyer_.date_conventionnement except EmptyError: temp_sous_calcul_traitement_343 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27418,9 +27597,9 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal except EmptyError: temp_sous_calcul_traitement_344 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, + start_line=1508, start_column=43, - end_line=1474, + end_line=1508, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27430,14 +27609,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_345 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_345 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_345 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27446,14 +27625,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_346 = date_courante_14 + temp_sous_calcul_traitement_346 = situation_familiale_calcul_apl_8 except EmptyError: temp_sous_calcul_traitement_346 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27462,14 +27641,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_347 = nombre_personnes_a_charge_11 + temp_sous_calcul_traitement_347 = zone_6 except EmptyError: temp_sous_calcul_traitement_347 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27478,14 +27657,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_348 = situation_familiale_calcul_apl_8 + temp_sous_calcul_traitement_348 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_348 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27494,14 +27673,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_349 = zone_6 + temp_sous_calcul_traitement_349 = logement_foyer_.redevance except EmptyError: temp_sous_calcul_traitement_349 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -27510,45 +27689,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_350 = location_2.logement_est_chambre + temp_sous_calcul_traitement_350 = residence_8 except EmptyError: temp_sous_calcul_traitement_350 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_351 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_351 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_352 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_352 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, + start_line=1511, start_column=25, - end_line=1486, + end_line=1511, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -27557,1804 +27704,1235 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_353 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_353 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_641 = location_2.bailleur - if match_arg_641.code == TypeBailleur_Code.BailleurSocial: - bailleur_10 = match_arg_641.value - temp_sous_calcul_traitement_354 = bailleur_10.reduction_loyer_solidarite_percue - elif match_arg_641.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_641.value - temp_sous_calcul_traitement_354 = money_of_cents_string("0") - elif match_arg_641.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_641.value - temp_sous_calcul_traitement_354 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_354 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_355 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_355 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_356 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_356 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_357 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_357 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_358 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_358 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_359 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_359 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_360 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_360 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_361 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_361 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_362 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_362 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_363 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_363 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_364 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_364 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_365 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_365 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_366 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_366 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_367 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_367 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_642 = location_2.bailleur - if match_arg_642.code == TypeBailleur_Code.BailleurSocial: - bailleur_11 = match_arg_642.value - temp_sous_calcul_traitement_368 = bailleur_11.reduction_loyer_solidarite_percue - elif match_arg_642.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_642.value - temp_sous_calcul_traitement_368 = money_of_cents_string("0") - elif match_arg_642.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_642.value - temp_sous_calcul_traitement_368 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_368 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_369 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_369 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_370 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_370 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_371 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_371 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_372 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_372 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_373 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_373 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_374 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_374 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_375 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_375 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_376 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_376 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_377 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_377 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_378 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_378 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_379 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_379 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_380 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_380 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_381 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_381 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_643 = location_2.bailleur - if match_arg_643.code == TypeBailleur_Code.BailleurSocial: - bailleur_12 = match_arg_643.value - temp_sous_calcul_traitement_382 = bailleur_12.reduction_loyer_solidarite_percue - elif match_arg_643.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_643.value - temp_sous_calcul_traitement_382 = money_of_cents_string("0") - elif match_arg_643.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_643.value - temp_sous_calcul_traitement_382 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_382 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_383 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_383 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_384 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_384 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_385 = location_2.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_385 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1479, - start_column=31, - end_line=1479, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_386 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_386 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1474, - start_column=43, - end_line=1474, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_387 = location_2.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_387 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1481, - start_column=15, - end_line=1481, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_388 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_388 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1477, - start_column=29, - end_line=1477, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_389 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_389 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1475, - start_column=41, - end_line=1475, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_390 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_390 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1478, - start_column=46, - end_line=1478, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_391 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_391 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1476, - start_column=20, - end_line=1476, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_392 = location_2.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_392 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1482, - start_column=36, - end_line=1482, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_393 = location_2.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_393 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1485, - start_column=15, - end_line=1485, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_394 = type_aide_2 - except EmptyError: - temp_sous_calcul_traitement_394 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1486, - start_column=25, - end_line=1486, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_395 = location_2.colocation - except EmptyError: - temp_sous_calcul_traitement_395 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1483, - start_column=26, - end_line=1483, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_644 = location_2.bailleur - if match_arg_644.code == TypeBailleur_Code.BailleurSocial: - bailleur_13 = match_arg_644.value - temp_sous_calcul_traitement_396 = bailleur_13.reduction_loyer_solidarite_percue - elif match_arg_644.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_644.value - temp_sous_calcul_traitement_396 = money_of_cents_string("0") - elif match_arg_644.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_644.value - temp_sous_calcul_traitement_396 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_396 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1488, - start_column=16, - end_line=1491, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_397 = location_2.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_397 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1492, - start_column=38, - end_line=1492, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_398 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_398 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1493, - start_column=25, - end_line=1493, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_286, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_287, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_288, - date_courante_in = temp_sous_calcul_traitement_289, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_290, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_291, - zone_in = temp_sous_calcul_traitement_292, - logement_est_chambre_in = temp_sous_calcul_traitement_293, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_294, - type_aide_in = temp_sous_calcul_traitement_295, - colocation_in = temp_sous_calcul_traitement_296, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_297, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_298, - residence_in = temp_sous_calcul_traitement_299)).montant_forfaitaire_charges_d823_16, - plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_272, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_273, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_274, - date_courante_in = temp_sous_calcul_traitement_275, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_276, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_277, - zone_in = temp_sous_calcul_traitement_278, - logement_est_chambre_in = temp_sous_calcul_traitement_279, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_280, - type_aide_in = temp_sous_calcul_traitement_281, - colocation_in = temp_sous_calcul_traitement_282, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_283, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_284, - residence_in = temp_sous_calcul_traitement_285)).plafond_loyer_d823_16_2, - participation_minimale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_258, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_259, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_260, - date_courante_in = temp_sous_calcul_traitement_261, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_262, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_263, - zone_in = temp_sous_calcul_traitement_264, - logement_est_chambre_in = temp_sous_calcul_traitement_265, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_266, - type_aide_in = temp_sous_calcul_traitement_267, - colocation_in = temp_sous_calcul_traitement_268, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_269, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_270, - residence_in = temp_sous_calcul_traitement_271)).participation_minimale, - taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_244, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_245, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_246, - date_courante_in = temp_sous_calcul_traitement_247, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_248, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_249, - zone_in = temp_sous_calcul_traitement_250, - logement_est_chambre_in = temp_sous_calcul_traitement_251, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_252, - type_aide_in = temp_sous_calcul_traitement_253, - colocation_in = temp_sous_calcul_traitement_254, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_255, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_256, - residence_in = temp_sous_calcul_traitement_257)).taux_composition_familiale, - participation_personnelle = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_230, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_231, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_232, - date_courante_in = temp_sous_calcul_traitement_233, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_234, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_235, - zone_in = temp_sous_calcul_traitement_236, - logement_est_chambre_in = temp_sous_calcul_traitement_237, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_238, - type_aide_in = temp_sous_calcul_traitement_239, - colocation_in = temp_sous_calcul_traitement_240, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_241, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_242, - residence_in = temp_sous_calcul_traitement_243)).participation_personnelle, - aide_finale_formule = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_216, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_217, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_218, - date_courante_in = temp_sous_calcul_traitement_219, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_220, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_221, - zone_in = temp_sous_calcul_traitement_222, - logement_est_chambre_in = temp_sous_calcul_traitement_223, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_224, - type_aide_in = temp_sous_calcul_traitement_225, - colocation_in = temp_sous_calcul_traitement_226, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_227, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_228, - residence_in = temp_sous_calcul_traitement_229)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_201).aide_finale_formule, - traitement_aide_finale = CalculAidePersonnaliseeLogementLocatif(montant_forfaitaire_charges_d823_16 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_385, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_386, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_387, - date_courante_in = temp_sous_calcul_traitement_388, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_389, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_390, - zone_in = temp_sous_calcul_traitement_391, - logement_est_chambre_in = temp_sous_calcul_traitement_392, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_393, - type_aide_in = temp_sous_calcul_traitement_394, - colocation_in = temp_sous_calcul_traitement_395, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_396, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_397, - residence_in = temp_sous_calcul_traitement_398)).montant_forfaitaire_charges_d823_16, - plafond_loyer_d823_16_2 = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_371, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_372, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_373, - date_courante_in = temp_sous_calcul_traitement_374, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_375, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_376, - zone_in = temp_sous_calcul_traitement_377, - logement_est_chambre_in = temp_sous_calcul_traitement_378, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_379, - type_aide_in = temp_sous_calcul_traitement_380, - colocation_in = temp_sous_calcul_traitement_381, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_382, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_383, - residence_in = temp_sous_calcul_traitement_384)).plafond_loyer_d823_16_2, - participation_minimale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_357, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_358, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_359, - date_courante_in = temp_sous_calcul_traitement_360, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_361, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_362, - zone_in = temp_sous_calcul_traitement_363, - logement_est_chambre_in = temp_sous_calcul_traitement_364, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_365, - type_aide_in = temp_sous_calcul_traitement_366, - colocation_in = temp_sous_calcul_traitement_367, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_368, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_369, - residence_in = temp_sous_calcul_traitement_370)).participation_minimale, - taux_composition_familiale = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_343, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_344, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_345, - date_courante_in = temp_sous_calcul_traitement_346, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_347, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_348, - zone_in = temp_sous_calcul_traitement_349, - logement_est_chambre_in = temp_sous_calcul_traitement_350, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_351, - type_aide_in = temp_sous_calcul_traitement_352, - colocation_in = temp_sous_calcul_traitement_353, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_354, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_355, - residence_in = temp_sous_calcul_traitement_356)).taux_composition_familiale, - participation_personnelle = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_329, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_330, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_331, - date_courante_in = temp_sous_calcul_traitement_332, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_333, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_334, - zone_in = temp_sous_calcul_traitement_335, - logement_est_chambre_in = temp_sous_calcul_traitement_336, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_337, - type_aide_in = temp_sous_calcul_traitement_338, - colocation_in = temp_sous_calcul_traitement_339, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_340, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_341, - residence_in = temp_sous_calcul_traitement_342)).participation_personnelle, - aide_finale_formule = calcul_aide_personnalisee_logement_locatif( - CalculAidePersonnaliseeLogementLocatifIn(loyer_principal_base_in = temp_sous_calcul_traitement_315, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_316, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_317, - date_courante_in = temp_sous_calcul_traitement_318, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_319, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_320, - zone_in = temp_sous_calcul_traitement_321, - logement_est_chambre_in = temp_sous_calcul_traitement_322, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_323, - type_aide_in = temp_sous_calcul_traitement_324, - colocation_in = temp_sous_calcul_traitement_325, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_326, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_327, - residence_in = temp_sous_calcul_traitement_328)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_300).traitement_aide_finale) - elif match_arg_630.code == CategorieCalculAPL_Code.AccessionPropriete: - proprietaire_2 = match_arg_630.value - def temp_sous_calcul_traitement_399(param0_4:Money): - try: - temp_sous_calcul_traitement_400 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_400 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_401 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_401 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_402 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_402 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_403 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_403 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_404 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_404 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_405 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_405 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_406 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_406 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_407 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_407 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_408 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_408 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_409 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_409 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_410 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_410 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_411 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_411 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_412 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_412 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_413 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_413 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_400, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_401, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_402, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_403, - type_travaux_logement_in = temp_sous_calcul_traitement_404, - date_signature_pret_in = temp_sous_calcul_traitement_405, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_406, - date_entree_logement_in = temp_sous_calcul_traitement_407, - copropriete_in = temp_sous_calcul_traitement_408, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_409, - zone_in = temp_sous_calcul_traitement_410, - type_pret_in = temp_sous_calcul_traitement_411, - anciennete_logement_in = temp_sous_calcul_traitement_412, - date_courante_in = temp_sous_calcul_traitement_413)).traitement_aide_finale( - param0_4) - try: - temp_sous_calcul_traitement_414 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_414 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_415 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_415 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_416 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_416 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_417 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_417 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_418 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_418 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_419 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_419 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_420 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_420 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_421 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_421 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_422 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_422 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_423 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_423 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_424 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_424 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_425 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_425 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_426 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_426 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_427 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_427 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_428 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_428 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_429 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_429 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_430 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_430 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_431 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_431 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_432 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_432 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_433 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_433 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_434 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_434 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_435 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_435 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_436 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_436 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_437 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_437 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_438 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_438 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_439 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_439 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_440 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_440 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_441 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_441 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_442 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_442 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_443 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_443 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_444 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_444 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_445 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_445 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_446 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_446 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_447 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_447 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_448 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_448 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_449 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_449 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_450 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_450 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_451 = proprietaire_2.situation_r822_11_13_17 + def temp_sous_calcul_traitement_351(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_352(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_353(_:Unit): + raise EmptyError + return calcul_aide_personnalisee_logement_foyer(CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_342, + date_conventionnement_in = temp_sous_calcul_traitement_343, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_344, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_345, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_346, + zone_in = temp_sous_calcul_traitement_347, + date_courante_in = temp_sous_calcul_traitement_348, + redevance_in = temp_sous_calcul_traitement_349, + residence_in = temp_sous_calcul_traitement_350, + condition_2_du_832_25_in = temp_sous_calcul_traitement_351, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_352, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_353)).traitement_aide_finale( + param0_4) + try: + temp_sous_calcul_traitement_354 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_354 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_355 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_355 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_356 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_356 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_357 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_357 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_358 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_358 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_359 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_359 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_360 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_360 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_361 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_361 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_362 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_362 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_363(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_364(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_365(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_366 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_366 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_367 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_367 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_368 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_368 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_369 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_369 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_370 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_370 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_371 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_371 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_372 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_372 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_373 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_373 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_374 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_374 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_375(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_376(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_377(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_378 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_378 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_379 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_379 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_380 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_380 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_381 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_381 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_382 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_382 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_383 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_383 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_384 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_384 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_385 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_385 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_386 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_386 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_387(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_388(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_389(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_390 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_390 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_391 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_391 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_392 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_392 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_393 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_393 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_394 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_394 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_395 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_395 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_396 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_396 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_397 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_397 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_398 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_398 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_399(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_400(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_401(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_402 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_402 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_403 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_403 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_404 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_404 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_405 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_405 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_406 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_406 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_407 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_407 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_408 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_408 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_409 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_409 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_410 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_410 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_411(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_412(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_413(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_414 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_414 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_415 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_415 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_416 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_416 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_417 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_417 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_418 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_418 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_419 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_419 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_420 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_420 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_421 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_421 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_422 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_422 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_423(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_424(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_425(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_426 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_426 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_427 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_427 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_428 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_428 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_429 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_429 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_430 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_430 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_431 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_431 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_432 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_432 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_433 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_433 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_434 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_434 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_435(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_436(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_437(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_438 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_438 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_439 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_439 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_440 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_440 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_441 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_441 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_442 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_442 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_443 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_443 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_444 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_444 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_445 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_445 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_446 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_446 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_447(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_448(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_449(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_450(param0_5:Money): + try: + temp_sous_calcul_traitement_451 = logement_foyer_.type except EmptyError: temp_sous_calcul_traitement_451 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29363,14 +28941,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_452 = zone_6 + temp_sous_calcul_traitement_452 = logement_foyer_.date_conventionnement except EmptyError: temp_sous_calcul_traitement_452 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29379,14 +28957,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_453 = proprietaire_2.pret.type_pret + temp_sous_calcul_traitement_453 = ressources_menage_avec_arrondi except EmptyError: temp_sous_calcul_traitement_453 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29395,14 +28973,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_454 = proprietaire_2.anciennete_logement + temp_sous_calcul_traitement_454 = nombre_personnes_a_charge_11 except EmptyError: temp_sous_calcul_traitement_454 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29411,14 +28989,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_455 = date_courante_14 + temp_sous_calcul_traitement_455 = situation_familiale_calcul_apl_8 except EmptyError: temp_sous_calcul_traitement_455 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29427,14 +29005,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_456 = proprietaire_2.mensualite_principale + temp_sous_calcul_traitement_456 = zone_6 except EmptyError: temp_sous_calcul_traitement_456 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29443,14 +29021,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_457 = ressources_menage_avec_arrondi + temp_sous_calcul_traitement_457 = date_courante_14 except EmptyError: temp_sous_calcul_traitement_457 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29459,14 +29037,14 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_458 = nombre_personnes_a_charge_11 + temp_sous_calcul_traitement_458 = logement_foyer_.redevance except EmptyError: temp_sous_calcul_traitement_458 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -29475,1742 +29053,13 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_459 = situation_familiale_calcul_apl_8 + temp_sous_calcul_traitement_459 = residence_8 except EmptyError: temp_sous_calcul_traitement_459 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_460 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_460 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_461 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_461 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_462 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_462 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_463 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_463 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_464 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_464 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_465 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_465 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_466 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_466 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_467 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_467 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_468 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_468 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_469 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_469 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_470(param0_5:Money): - try: - temp_sous_calcul_traitement_471 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_471 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_472 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_472 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_473 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_473 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_474 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_474 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_475 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_475 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_476 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_476 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_477 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_477 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_478 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_478 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_479 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_479 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_480 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_480 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_481 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_481 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_482 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_482 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_483 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_483 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_484 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_484 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_471, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_472, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_473, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_474, - type_travaux_logement_in = temp_sous_calcul_traitement_475, - date_signature_pret_in = temp_sous_calcul_traitement_476, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_477, - date_entree_logement_in = temp_sous_calcul_traitement_478, - copropriete_in = temp_sous_calcul_traitement_479, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_480, - zone_in = temp_sous_calcul_traitement_481, - type_pret_in = temp_sous_calcul_traitement_482, - anciennete_logement_in = temp_sous_calcul_traitement_483, - date_courante_in = temp_sous_calcul_traitement_484)).traitement_aide_finale( - param0_5) - try: - temp_sous_calcul_traitement_485 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_485 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_486 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_486 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_487 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_487 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_488 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_488 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_489 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_489 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_490 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_490 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_491 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_491 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_492 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_492 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_493 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_493 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_494 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_494 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_495 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_495 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_496 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_496 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_497 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_497 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_498 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_498 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_499 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_499 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_500 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_500 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_501 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_501 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_502 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_502 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_503 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_503 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_504 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_504 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_505 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_505 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_506 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_506 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_507 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_507 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_508 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_508 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_509 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_509 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_510 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_510 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_511 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_511 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_512 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_512 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_513 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_513 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_514 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_514 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_515 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_515 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_516 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_516 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_517 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_517 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_518 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_518 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_519 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_519 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_520 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_520 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_521 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_521 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_522 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_522 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_523 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_523 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_524 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_524 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_525 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_525 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_526 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_526 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_527 = proprietaire_2.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_527 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1532, - start_column=38, - end_line=1532, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_528 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_528 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1527, - start_column=44, - end_line=1527, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_529 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_529 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1528, - start_column=42, - end_line=1528, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_530 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_530 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1531, - start_column=47, - end_line=1531, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_531 = proprietaire_2.type_travaux_logement_d832_15 - except EmptyError: - temp_sous_calcul_traitement_531 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1533, - start_column=38, - end_line=1533, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_532 = proprietaire_2.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_532 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1534, - start_column=36, - end_line=1534, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_533 = proprietaire_2.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_533 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1536, - start_column=14, - end_line=1536, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_534 = proprietaire_2.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_534 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1537, - start_column=37, - end_line=1537, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_535 = proprietaire_2.copropriete - except EmptyError: - temp_sous_calcul_traitement_535 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1538, - start_column=28, - end_line=1538, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_536 = proprietaire_2.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_536 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1539, - start_column=40, - end_line=1539, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_537 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_537 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1529, - start_column=21, - end_line=1529, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_538 = proprietaire_2.pret.type_pret - except EmptyError: - temp_sous_calcul_traitement_538 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1540, - start_column=26, - end_line=1540, - end_column=53, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_539 = proprietaire_2.anciennete_logement - except EmptyError: - temp_sous_calcul_traitement_539 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1541, - start_column=36, - end_line=1541, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_540 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_540 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1530, - start_column=30, - end_line=1530, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementAccessionPropriete(mensualite_eligible = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_456, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_457, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_458, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_459, - type_travaux_logement_in = temp_sous_calcul_traitement_460, - date_signature_pret_in = temp_sous_calcul_traitement_461, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_462, - date_entree_logement_in = temp_sous_calcul_traitement_463, - copropriete_in = temp_sous_calcul_traitement_464, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_465, - zone_in = temp_sous_calcul_traitement_466, - type_pret_in = temp_sous_calcul_traitement_467, - anciennete_logement_in = temp_sous_calcul_traitement_468, - date_courante_in = temp_sous_calcul_traitement_469)).mensualite_eligible, - mensualite_minimale = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_442, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_443, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_444, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_445, - type_travaux_logement_in = temp_sous_calcul_traitement_446, - date_signature_pret_in = temp_sous_calcul_traitement_447, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_448, - date_entree_logement_in = temp_sous_calcul_traitement_449, - copropriete_in = temp_sous_calcul_traitement_450, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_451, - zone_in = temp_sous_calcul_traitement_452, - type_pret_in = temp_sous_calcul_traitement_453, - anciennete_logement_in = temp_sous_calcul_traitement_454, - date_courante_in = temp_sous_calcul_traitement_455)).mensualite_minimale, - coefficient_prise_en_charge_d832_10 = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_428, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_429, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_430, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_431, - type_travaux_logement_in = temp_sous_calcul_traitement_432, - date_signature_pret_in = temp_sous_calcul_traitement_433, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_434, - date_entree_logement_in = temp_sous_calcul_traitement_435, - copropriete_in = temp_sous_calcul_traitement_436, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_437, - zone_in = temp_sous_calcul_traitement_438, - type_pret_in = temp_sous_calcul_traitement_439, - anciennete_logement_in = temp_sous_calcul_traitement_440, - date_courante_in = temp_sous_calcul_traitement_441)).coefficient_prise_en_charge_d832_10, - aide_finale_formule = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_414, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_415, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_416, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_417, - type_travaux_logement_in = temp_sous_calcul_traitement_418, - date_signature_pret_in = temp_sous_calcul_traitement_419, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_420, - date_entree_logement_in = temp_sous_calcul_traitement_421, - copropriete_in = temp_sous_calcul_traitement_422, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_423, - zone_in = temp_sous_calcul_traitement_424, - type_pret_in = temp_sous_calcul_traitement_425, - anciennete_logement_in = temp_sous_calcul_traitement_426, - date_courante_in = temp_sous_calcul_traitement_427)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_399).aide_finale_formule, - traitement_aide_finale = CalculAidePersonnaliseeLogementAccessionPropriete(mensualite_eligible = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_527, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_528, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_529, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_530, - type_travaux_logement_in = temp_sous_calcul_traitement_531, - date_signature_pret_in = temp_sous_calcul_traitement_532, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_533, - date_entree_logement_in = temp_sous_calcul_traitement_534, - copropriete_in = temp_sous_calcul_traitement_535, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_536, - zone_in = temp_sous_calcul_traitement_537, - type_pret_in = temp_sous_calcul_traitement_538, - anciennete_logement_in = temp_sous_calcul_traitement_539, - date_courante_in = temp_sous_calcul_traitement_540)).mensualite_eligible, - mensualite_minimale = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_513, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_514, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_515, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_516, - type_travaux_logement_in = temp_sous_calcul_traitement_517, - date_signature_pret_in = temp_sous_calcul_traitement_518, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_519, - date_entree_logement_in = temp_sous_calcul_traitement_520, - copropriete_in = temp_sous_calcul_traitement_521, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_522, - zone_in = temp_sous_calcul_traitement_523, - type_pret_in = temp_sous_calcul_traitement_524, - anciennete_logement_in = temp_sous_calcul_traitement_525, - date_courante_in = temp_sous_calcul_traitement_526)).mensualite_minimale, - coefficient_prise_en_charge_d832_10 = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_499, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_500, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_501, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_502, - type_travaux_logement_in = temp_sous_calcul_traitement_503, - date_signature_pret_in = temp_sous_calcul_traitement_504, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_505, - date_entree_logement_in = temp_sous_calcul_traitement_506, - copropriete_in = temp_sous_calcul_traitement_507, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_508, - zone_in = temp_sous_calcul_traitement_509, - type_pret_in = temp_sous_calcul_traitement_510, - anciennete_logement_in = temp_sous_calcul_traitement_511, - date_courante_in = temp_sous_calcul_traitement_512)).coefficient_prise_en_charge_d832_10, - aide_finale_formule = calcul_aide_personnalisee_logement_accession_propriete( - CalculAidePersonnaliseeLogementAccessionProprieteIn(mensualite_principale_in = temp_sous_calcul_traitement_485, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_486, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_487, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_488, - type_travaux_logement_in = temp_sous_calcul_traitement_489, - date_signature_pret_in = temp_sous_calcul_traitement_490, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_491, - date_entree_logement_in = temp_sous_calcul_traitement_492, - copropriete_in = temp_sous_calcul_traitement_493, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_494, - zone_in = temp_sous_calcul_traitement_495, - type_pret_in = temp_sous_calcul_traitement_496, - anciennete_logement_in = temp_sous_calcul_traitement_497, - date_courante_in = temp_sous_calcul_traitement_498)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_470).traitement_aide_finale) - elif match_arg_630.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__1 = match_arg_630.value - def temp_sous_calcul_traitement_541(param0_6:Money): - try: - temp_sous_calcul_traitement_542 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_542 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_543 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_543 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_544 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_544 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_545 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_545 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_546 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_546 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_547 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_547 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_548 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_548 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_549 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_549 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_550 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_550 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_551(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_552(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_553(_:Unit): - raise EmptyError - return calcul_aide_personnalisee_logement_foyer(CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_542, - date_conventionnement_in = temp_sous_calcul_traitement_543, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_544, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_545, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_546, - zone_in = temp_sous_calcul_traitement_547, - date_courante_in = temp_sous_calcul_traitement_548, - redevance_in = temp_sous_calcul_traitement_549, - residence_in = temp_sous_calcul_traitement_550, - condition_2_du_832_25_in = temp_sous_calcul_traitement_551, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_552, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_553)).traitement_aide_finale( - param0_6) - try: - temp_sous_calcul_traitement_554 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_554 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_555 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_555 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_556 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_556 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_557 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_557 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_558 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_558 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", start_line=1511, - start_column=46, + start_column=25, end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_559 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_559 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_560 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_560 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_561 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_561 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_562 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_562 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -31219,2638 +29068,1437 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_563(_:Unit): + def temp_sous_calcul_traitement_460(_:Unit): raise EmptyError - def temp_sous_calcul_traitement_564(_:Unit): + def temp_sous_calcul_traitement_461(_:Unit): raise EmptyError - def temp_sous_calcul_traitement_565(_:Unit): + def temp_sous_calcul_traitement_462(_:Unit): raise EmptyError - try: - temp_sous_calcul_traitement_566 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_566 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_567 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_567 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_568 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_568 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_569 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_569 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_570 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_570 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_571 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_571 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_572 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_572 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_573 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_573 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_574 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_574 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_575(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_576(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_577(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_578 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_578 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_579 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_579 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_580 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_580 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_581 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_581 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_582 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_582 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_583 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_583 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_584 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_584 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_585 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_585 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_586 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_586 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_587(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_588(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_589(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_590 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_590 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_591 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_591 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_592 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_592 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_593 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_593 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_594 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_594 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_595 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_595 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_596 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_596 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_597 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_597 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_598 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_598 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_599(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_600(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_601(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_602 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_602 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_603 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_603 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_604 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_604 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_605 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_605 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_606 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_606 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_607 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_607 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_608 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_608 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_609 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_609 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_610 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_610 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_611(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_612(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_613(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_614 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_614 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_615 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_615 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_616 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_616 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_617 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_617 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_618 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_618 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_619 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_619 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_620 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_620 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_621 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_621 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_622 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_622 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_623(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_624(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_625(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_626 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_626 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_627 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_627 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_628 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_628 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_629 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_629 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_630 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_630 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_631 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_631 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_632 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_632 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_633 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_633 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_634 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_634 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_635(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_636(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_637(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_638 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_638 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_639 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_639 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_640 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_640 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_641 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_641 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_642 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_642 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_643 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_643 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_644 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_644 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_645 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_645 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_646 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_646 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_647(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_648(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_649(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_650(param0_7:Money): - try: - temp_sous_calcul_traitement_651 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_651 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_652 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_652 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_653 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_653 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_654 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_654 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_655 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_655 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_656 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_656 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_657 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_657 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_658 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_658 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_659 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_659 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_660(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_661(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_662(_:Unit): - raise EmptyError - return calcul_aide_personnalisee_logement_foyer(CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_651, - date_conventionnement_in = temp_sous_calcul_traitement_652, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_653, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_654, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_655, - zone_in = temp_sous_calcul_traitement_656, - date_courante_in = temp_sous_calcul_traitement_657, - redevance_in = temp_sous_calcul_traitement_658, - residence_in = temp_sous_calcul_traitement_659, - condition_2_du_832_25_in = temp_sous_calcul_traitement_660, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_661, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_662)).traitement_aide_finale( - param0_7) - try: - temp_sous_calcul_traitement_663 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_663 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_664 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_664 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_665 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_665 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_666 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_666 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_667 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_667 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_668 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_668 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_669 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_669 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_670 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_670 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_671 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_671 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_672(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_673(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_674(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_675 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_675 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_676 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_676 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_677 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_677 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_678 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_678 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_679 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_679 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_680 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_680 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_681 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_681 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_682 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_682 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_683 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_683 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_684(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_685(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_686(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_687 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_687 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_688 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_688 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_689 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_689 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_690 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_690 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_691 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_691 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_692 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_692 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_693 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_693 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_694 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_694 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_695 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_695 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_696(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_697(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_698(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_699 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_699 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_700 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_700 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_701 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_701 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_702 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_702 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_703 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_703 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_704 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_704 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_705 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_705 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_706 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_706 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_707 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_707 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_708(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_709(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_710(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_711 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_711 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_712 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_712 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_713 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_713 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_714 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_714 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_715 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_715 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_716 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_716 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_717 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_717 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_718 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_718 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_719 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_719 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_720(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_721(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_722(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_723 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_723 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_724 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_724 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_725 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_725 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_726 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_726 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_727 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_727 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_728 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_728 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_729 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_729 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_730 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_730 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_731 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_731 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_732(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_733(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_734(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_735 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_735 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_736 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_736 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_737 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_737 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_738 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_738 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_739 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_739 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_740 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_740 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_741 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_741 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_742 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_742 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_743 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_743 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_744(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_745(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_746(_:Unit): - raise EmptyError - try: - temp_sous_calcul_traitement_747 = logement_foyer__1.type - except EmptyError: - temp_sous_calcul_traitement_747 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1513, - start_column=35, - end_line=1513, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_748 = logement_foyer__1.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_748 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1514, - start_column=37, - end_line=1514, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_749 = ressources_menage_avec_arrondi - except EmptyError: - temp_sous_calcul_traitement_749 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1506, - start_column=43, - end_line=1506, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_750 = nombre_personnes_a_charge_11 - except EmptyError: - temp_sous_calcul_traitement_750 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1507, - start_column=41, - end_line=1507, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_751 = situation_familiale_calcul_apl_8 - except EmptyError: - temp_sous_calcul_traitement_751 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1511, - start_column=46, - end_line=1511, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_752 = zone_6 - except EmptyError: - temp_sous_calcul_traitement_752 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1508, - start_column=20, - end_line=1508, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_753 = date_courante_14 - except EmptyError: - temp_sous_calcul_traitement_753 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1510, - start_column=29, - end_line=1510, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_754 = logement_foyer__1.redevance - except EmptyError: - temp_sous_calcul_traitement_754 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1512, - start_column=25, - end_line=1512, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_755 = residence_8 - except EmptyError: - temp_sous_calcul_traitement_755 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1509, - start_column=25, - end_line=1509, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_756(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_757(_:Unit): - raise EmptyError - def temp_sous_calcul_traitement_758(_:Unit): - raise EmptyError - temp_sous_calcul_traitement_2 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementFoyer(coefficient_multiplicateur_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_638, - date_conventionnement_in = temp_sous_calcul_traitement_639, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_640, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_641, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_642, - zone_in = temp_sous_calcul_traitement_643, - date_courante_in = temp_sous_calcul_traitement_644, - redevance_in = temp_sous_calcul_traitement_645, - residence_in = temp_sous_calcul_traitement_646, - condition_2_du_832_25_in = temp_sous_calcul_traitement_647, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_648, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_649)).coefficient_multiplicateur_d832_25, - coefficient_r_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_626, - date_conventionnement_in = temp_sous_calcul_traitement_627, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_628, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_629, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_630, - zone_in = temp_sous_calcul_traitement_631, - date_courante_in = temp_sous_calcul_traitement_632, - redevance_in = temp_sous_calcul_traitement_633, - residence_in = temp_sous_calcul_traitement_634, - condition_2_du_832_25_in = temp_sous_calcul_traitement_635, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_636, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_637)).coefficient_r_d832_25, - n_nombre_parts_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_614, - date_conventionnement_in = temp_sous_calcul_traitement_615, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_616, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_617, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_618, - zone_in = temp_sous_calcul_traitement_619, - date_courante_in = temp_sous_calcul_traitement_620, - redevance_in = temp_sous_calcul_traitement_621, - residence_in = temp_sous_calcul_traitement_622, - condition_2_du_832_25_in = temp_sous_calcul_traitement_623, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_624, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_625)).n_nombre_parts_d832_25, - equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_602, - date_conventionnement_in = temp_sous_calcul_traitement_603, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_604, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_605, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_606, - zone_in = temp_sous_calcul_traitement_607, - date_courante_in = temp_sous_calcul_traitement_608, - redevance_in = temp_sous_calcul_traitement_609, - residence_in = temp_sous_calcul_traitement_610, - condition_2_du_832_25_in = temp_sous_calcul_traitement_611, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_612, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_613)).equivalence_loyer_eligible, - plafond_equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_590, - date_conventionnement_in = temp_sous_calcul_traitement_591, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_592, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_593, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_594, - zone_in = temp_sous_calcul_traitement_595, - date_courante_in = temp_sous_calcul_traitement_596, - redevance_in = temp_sous_calcul_traitement_597, - residence_in = temp_sous_calcul_traitement_598, - condition_2_du_832_25_in = temp_sous_calcul_traitement_599, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_600, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_601)).plafond_equivalence_loyer_eligible, - equivalence_loyer_minimale = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_578, - date_conventionnement_in = temp_sous_calcul_traitement_579, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_580, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_581, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_582, - zone_in = temp_sous_calcul_traitement_583, - date_courante_in = temp_sous_calcul_traitement_584, - redevance_in = temp_sous_calcul_traitement_585, - residence_in = temp_sous_calcul_traitement_586, - condition_2_du_832_25_in = temp_sous_calcul_traitement_587, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_588, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_589)).equivalence_loyer_minimale, - coefficient_prise_en_charge_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_566, - date_conventionnement_in = temp_sous_calcul_traitement_567, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_568, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_569, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_570, - zone_in = temp_sous_calcul_traitement_571, - date_courante_in = temp_sous_calcul_traitement_572, - redevance_in = temp_sous_calcul_traitement_573, - residence_in = temp_sous_calcul_traitement_574, - condition_2_du_832_25_in = temp_sous_calcul_traitement_575, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_576, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_577)).coefficient_prise_en_charge_d832_25, - aide_finale_formule = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_554, - date_conventionnement_in = temp_sous_calcul_traitement_555, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_556, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_557, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_558, - zone_in = temp_sous_calcul_traitement_559, - date_courante_in = temp_sous_calcul_traitement_560, - redevance_in = temp_sous_calcul_traitement_561, - residence_in = temp_sous_calcul_traitement_562, - condition_2_du_832_25_in = temp_sous_calcul_traitement_563, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_564, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_565)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_541).aide_finale_formule, - traitement_aide_finale = CalculAidePersonnaliseeLogementFoyer(coefficient_multiplicateur_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_747, - date_conventionnement_in = temp_sous_calcul_traitement_748, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_749, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_750, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_751, - zone_in = temp_sous_calcul_traitement_752, - date_courante_in = temp_sous_calcul_traitement_753, - redevance_in = temp_sous_calcul_traitement_754, - residence_in = temp_sous_calcul_traitement_755, - condition_2_du_832_25_in = temp_sous_calcul_traitement_756, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_757, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_758)).coefficient_multiplicateur_d832_25, - coefficient_r_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_735, - date_conventionnement_in = temp_sous_calcul_traitement_736, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_737, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_738, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_739, - zone_in = temp_sous_calcul_traitement_740, - date_courante_in = temp_sous_calcul_traitement_741, - redevance_in = temp_sous_calcul_traitement_742, - residence_in = temp_sous_calcul_traitement_743, - condition_2_du_832_25_in = temp_sous_calcul_traitement_744, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_745, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_746)).coefficient_r_d832_25, - n_nombre_parts_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_723, - date_conventionnement_in = temp_sous_calcul_traitement_724, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_725, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_726, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_727, - zone_in = temp_sous_calcul_traitement_728, - date_courante_in = temp_sous_calcul_traitement_729, - redevance_in = temp_sous_calcul_traitement_730, - residence_in = temp_sous_calcul_traitement_731, - condition_2_du_832_25_in = temp_sous_calcul_traitement_732, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_733, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_734)).n_nombre_parts_d832_25, - equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_711, - date_conventionnement_in = temp_sous_calcul_traitement_712, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_713, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_714, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_715, - zone_in = temp_sous_calcul_traitement_716, - date_courante_in = temp_sous_calcul_traitement_717, - redevance_in = temp_sous_calcul_traitement_718, - residence_in = temp_sous_calcul_traitement_719, - condition_2_du_832_25_in = temp_sous_calcul_traitement_720, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_721, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_722)).equivalence_loyer_eligible, - plafond_equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_699, - date_conventionnement_in = temp_sous_calcul_traitement_700, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_701, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_702, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_703, - zone_in = temp_sous_calcul_traitement_704, - date_courante_in = temp_sous_calcul_traitement_705, - redevance_in = temp_sous_calcul_traitement_706, - residence_in = temp_sous_calcul_traitement_707, - condition_2_du_832_25_in = temp_sous_calcul_traitement_708, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_709, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_710)).plafond_equivalence_loyer_eligible, - equivalence_loyer_minimale = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_687, - date_conventionnement_in = temp_sous_calcul_traitement_688, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_689, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_690, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_691, - zone_in = temp_sous_calcul_traitement_692, - date_courante_in = temp_sous_calcul_traitement_693, - redevance_in = temp_sous_calcul_traitement_694, - residence_in = temp_sous_calcul_traitement_695, - condition_2_du_832_25_in = temp_sous_calcul_traitement_696, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_697, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_698)).equivalence_loyer_minimale, - coefficient_prise_en_charge_d832_25 = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_675, - date_conventionnement_in = temp_sous_calcul_traitement_676, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_677, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_678, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_679, - zone_in = temp_sous_calcul_traitement_680, - date_courante_in = temp_sous_calcul_traitement_681, - redevance_in = temp_sous_calcul_traitement_682, - residence_in = temp_sous_calcul_traitement_683, - condition_2_du_832_25_in = temp_sous_calcul_traitement_684, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_685, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_686)).coefficient_prise_en_charge_d832_25, - aide_finale_formule = calcul_aide_personnalisee_logement_foyer( - CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_663, - date_conventionnement_in = temp_sous_calcul_traitement_664, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_665, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_666, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_667, - zone_in = temp_sous_calcul_traitement_668, - date_courante_in = temp_sous_calcul_traitement_669, - redevance_in = temp_sous_calcul_traitement_670, - residence_in = temp_sous_calcul_traitement_671, - condition_2_du_832_25_in = temp_sous_calcul_traitement_672, - limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_673, - n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_674)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_650).traitement_aide_finale) + return calcul_aide_personnalisee_logement_foyer(CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_451, + date_conventionnement_in = temp_sous_calcul_traitement_452, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_453, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_454, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_455, + zone_in = temp_sous_calcul_traitement_456, + date_courante_in = temp_sous_calcul_traitement_457, + redevance_in = temp_sous_calcul_traitement_458, + residence_in = temp_sous_calcul_traitement_459, + condition_2_du_832_25_in = temp_sous_calcul_traitement_460, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_461, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_462)).traitement_aide_finale( + param0_5) + try: + temp_sous_calcul_traitement_463 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_463 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_464 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_464 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_465 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_465 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_466 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_466 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_467 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_467 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_468 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_468 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_469 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_469 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_470 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_470 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_471 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_471 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_472(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_473(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_474(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_475 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_475 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_476 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_476 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_477 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_477 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_478 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_478 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_479 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_479 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_480 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_480 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_481 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_481 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_482 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_482 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_483 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_483 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_484(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_485(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_486(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_487 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_487 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_488 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_488 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_489 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_489 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_490 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_490 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_491 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_491 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_492 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_492 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_493 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_493 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_494 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_494 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_495 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_495 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_496(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_497(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_498(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_499 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_499 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_500 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_500 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_501 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_501 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_502 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_502 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_503 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_503 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_504 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_504 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_505 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_505 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_506 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_506 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_507 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_507 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_508(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_509(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_510(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_511 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_511 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_512 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_512 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_513 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_513 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_514 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_514 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_515 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_515 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_516 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_516 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_517 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_517 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_518 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_518 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_519 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_519 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_520(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_521(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_522(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_523 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_523 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_524 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_524 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_525 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_525 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_526 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_526 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_527 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_527 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_528 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_528 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_529 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_529 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_530 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_530 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_531 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_531 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_532(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_533(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_534(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_535 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_535 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_536 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_536 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_537 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_537 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_538 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_538 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_539 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_539 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_540 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_540 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_541 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_541 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_542 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_542 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_543 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_543 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_544(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_545(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_546(_:Unit): + raise EmptyError + try: + temp_sous_calcul_traitement_547 = logement_foyer_.type + except EmptyError: + temp_sous_calcul_traitement_547 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1515, + start_column=35, + end_line=1515, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_548 = logement_foyer_.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_548 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1516, + start_column=37, + end_line=1516, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_549 = ressources_menage_avec_arrondi + except EmptyError: + temp_sous_calcul_traitement_549 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1508, + start_column=43, + end_line=1508, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_550 = nombre_personnes_a_charge_11 + except EmptyError: + temp_sous_calcul_traitement_550 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1509, + start_column=41, + end_line=1509, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_551 = situation_familiale_calcul_apl_8 + except EmptyError: + temp_sous_calcul_traitement_551 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1513, + start_column=46, + end_line=1513, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_552 = zone_6 + except EmptyError: + temp_sous_calcul_traitement_552 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1510, + start_column=20, + end_line=1510, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_553 = date_courante_14 + except EmptyError: + temp_sous_calcul_traitement_553 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1512, + start_column=29, + end_line=1512, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_554 = logement_foyer_.redevance + except EmptyError: + temp_sous_calcul_traitement_554 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1514, + start_column=25, + end_line=1514, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_555 = residence_8 + except EmptyError: + temp_sous_calcul_traitement_555 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1511, + start_column=25, + end_line=1511, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_556(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_557(_:Unit): + raise EmptyError + def temp_sous_calcul_traitement_558(_:Unit): + raise EmptyError + temp_sous_calcul_traitement_198 = TraitementFormuleAideFinale(aide_finale_formule = CalculAidePersonnaliseeLogementFoyer(coefficient_multiplicateur_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_438, + date_conventionnement_in = temp_sous_calcul_traitement_439, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_440, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_441, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_442, + zone_in = temp_sous_calcul_traitement_443, + date_courante_in = temp_sous_calcul_traitement_444, + redevance_in = temp_sous_calcul_traitement_445, + residence_in = temp_sous_calcul_traitement_446, + condition_2_du_832_25_in = temp_sous_calcul_traitement_447, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_448, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_449)).coefficient_multiplicateur_d832_25, + coefficient_r_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_426, + date_conventionnement_in = temp_sous_calcul_traitement_427, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_428, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_429, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_430, + zone_in = temp_sous_calcul_traitement_431, + date_courante_in = temp_sous_calcul_traitement_432, + redevance_in = temp_sous_calcul_traitement_433, + residence_in = temp_sous_calcul_traitement_434, + condition_2_du_832_25_in = temp_sous_calcul_traitement_435, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_436, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_437)).coefficient_r_d832_25, + n_nombre_parts_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_414, + date_conventionnement_in = temp_sous_calcul_traitement_415, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_416, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_417, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_418, + zone_in = temp_sous_calcul_traitement_419, + date_courante_in = temp_sous_calcul_traitement_420, + redevance_in = temp_sous_calcul_traitement_421, + residence_in = temp_sous_calcul_traitement_422, + condition_2_du_832_25_in = temp_sous_calcul_traitement_423, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_424, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_425)).n_nombre_parts_d832_25, + equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_402, + date_conventionnement_in = temp_sous_calcul_traitement_403, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_404, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_405, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_406, + zone_in = temp_sous_calcul_traitement_407, + date_courante_in = temp_sous_calcul_traitement_408, + redevance_in = temp_sous_calcul_traitement_409, + residence_in = temp_sous_calcul_traitement_410, + condition_2_du_832_25_in = temp_sous_calcul_traitement_411, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_412, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_413)).equivalence_loyer_eligible, + plafond_equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_390, + date_conventionnement_in = temp_sous_calcul_traitement_391, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_392, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_393, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_394, + zone_in = temp_sous_calcul_traitement_395, + date_courante_in = temp_sous_calcul_traitement_396, + redevance_in = temp_sous_calcul_traitement_397, + residence_in = temp_sous_calcul_traitement_398, + condition_2_du_832_25_in = temp_sous_calcul_traitement_399, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_400, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_401)).plafond_equivalence_loyer_eligible, + equivalence_loyer_minimale = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_378, + date_conventionnement_in = temp_sous_calcul_traitement_379, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_380, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_381, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_382, + zone_in = temp_sous_calcul_traitement_383, + date_courante_in = temp_sous_calcul_traitement_384, + redevance_in = temp_sous_calcul_traitement_385, + residence_in = temp_sous_calcul_traitement_386, + condition_2_du_832_25_in = temp_sous_calcul_traitement_387, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_388, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_389)).equivalence_loyer_minimale, + coefficient_prise_en_charge_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_366, + date_conventionnement_in = temp_sous_calcul_traitement_367, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_368, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_369, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_370, + zone_in = temp_sous_calcul_traitement_371, + date_courante_in = temp_sous_calcul_traitement_372, + redevance_in = temp_sous_calcul_traitement_373, + residence_in = temp_sous_calcul_traitement_374, + condition_2_du_832_25_in = temp_sous_calcul_traitement_375, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_376, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_377)).coefficient_prise_en_charge_d832_25, + aide_finale_formule = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_354, + date_conventionnement_in = temp_sous_calcul_traitement_355, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_356, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_357, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_358, + zone_in = temp_sous_calcul_traitement_359, + date_courante_in = temp_sous_calcul_traitement_360, + redevance_in = temp_sous_calcul_traitement_361, + residence_in = temp_sous_calcul_traitement_362, + condition_2_du_832_25_in = temp_sous_calcul_traitement_363, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_364, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_365)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_341).aide_finale_formule, + traitement_aide_finale = CalculAidePersonnaliseeLogementFoyer(coefficient_multiplicateur_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_547, + date_conventionnement_in = temp_sous_calcul_traitement_548, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_549, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_550, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_551, + zone_in = temp_sous_calcul_traitement_552, + date_courante_in = temp_sous_calcul_traitement_553, + redevance_in = temp_sous_calcul_traitement_554, + residence_in = temp_sous_calcul_traitement_555, + condition_2_du_832_25_in = temp_sous_calcul_traitement_556, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_557, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_558)).coefficient_multiplicateur_d832_25, + coefficient_r_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_535, + date_conventionnement_in = temp_sous_calcul_traitement_536, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_537, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_538, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_539, + zone_in = temp_sous_calcul_traitement_540, + date_courante_in = temp_sous_calcul_traitement_541, + redevance_in = temp_sous_calcul_traitement_542, + residence_in = temp_sous_calcul_traitement_543, + condition_2_du_832_25_in = temp_sous_calcul_traitement_544, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_545, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_546)).coefficient_r_d832_25, + n_nombre_parts_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_523, + date_conventionnement_in = temp_sous_calcul_traitement_524, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_525, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_526, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_527, + zone_in = temp_sous_calcul_traitement_528, + date_courante_in = temp_sous_calcul_traitement_529, + redevance_in = temp_sous_calcul_traitement_530, + residence_in = temp_sous_calcul_traitement_531, + condition_2_du_832_25_in = temp_sous_calcul_traitement_532, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_533, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_534)).n_nombre_parts_d832_25, + equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_511, + date_conventionnement_in = temp_sous_calcul_traitement_512, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_513, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_514, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_515, + zone_in = temp_sous_calcul_traitement_516, + date_courante_in = temp_sous_calcul_traitement_517, + redevance_in = temp_sous_calcul_traitement_518, + residence_in = temp_sous_calcul_traitement_519, + condition_2_du_832_25_in = temp_sous_calcul_traitement_520, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_521, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_522)).equivalence_loyer_eligible, + plafond_equivalence_loyer_eligible = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_499, + date_conventionnement_in = temp_sous_calcul_traitement_500, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_501, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_502, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_503, + zone_in = temp_sous_calcul_traitement_504, + date_courante_in = temp_sous_calcul_traitement_505, + redevance_in = temp_sous_calcul_traitement_506, + residence_in = temp_sous_calcul_traitement_507, + condition_2_du_832_25_in = temp_sous_calcul_traitement_508, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_509, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_510)).plafond_equivalence_loyer_eligible, + equivalence_loyer_minimale = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_487, + date_conventionnement_in = temp_sous_calcul_traitement_488, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_489, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_490, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_491, + zone_in = temp_sous_calcul_traitement_492, + date_courante_in = temp_sous_calcul_traitement_493, + redevance_in = temp_sous_calcul_traitement_494, + residence_in = temp_sous_calcul_traitement_495, + condition_2_du_832_25_in = temp_sous_calcul_traitement_496, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_497, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_498)).equivalence_loyer_minimale, + coefficient_prise_en_charge_d832_25 = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_475, + date_conventionnement_in = temp_sous_calcul_traitement_476, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_477, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_478, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_479, + zone_in = temp_sous_calcul_traitement_480, + date_courante_in = temp_sous_calcul_traitement_481, + redevance_in = temp_sous_calcul_traitement_482, + residence_in = temp_sous_calcul_traitement_483, + condition_2_du_832_25_in = temp_sous_calcul_traitement_484, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_485, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_486)).coefficient_prise_en_charge_d832_25, + aide_finale_formule = calcul_aide_personnalisee_logement_foyer( + CalculAidePersonnaliseeLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_463, + date_conventionnement_in = temp_sous_calcul_traitement_464, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_465, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_466, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_467, + zone_in = temp_sous_calcul_traitement_468, + date_courante_in = temp_sous_calcul_traitement_469, + redevance_in = temp_sous_calcul_traitement_470, + residence_in = temp_sous_calcul_traitement_471, + condition_2_du_832_25_in = temp_sous_calcul_traitement_472, + limitation_majoration_personnes_a_charge_in = temp_sous_calcul_traitement_473, + n_nombre_parts_d832_25_in = temp_sous_calcul_traitement_474)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_450).traitement_aide_finale) except EmptyError: - temp_sous_calcul_traitement_2 = dead_value + temp_sous_calcul_traitement_198 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", start_line=829, start_column=11, end_line=829, end_column=33, @@ -33858,7 +30506,7 @@ def calcul_aide_personnalisee_logement(calcul_aide_personnalisee_logement_in:Cal "Calcul du montant de l'aide personnalisée au logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - sous_calcul_traitement = temp_sous_calcul_traitement_2 + sous_calcul_traitement = temp_sous_calcul_traitement_198 try: def temp_traitement_aide_finale_2(arg:Money): try: @@ -33987,19 +30635,19 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Prologue : aides au logement"])) seuil_l822_5_patrimoine = temp_seuil_l822_5_patrimoine try: - match_arg_645 = menage.logement.usufruit - if match_arg_645.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts = match_arg_645.value + match_arg_642 = menage.logement.usufruit + if match_arg_642.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts = match_arg_642.value temp_usufruit_ou_propriete_famille = True - elif match_arg_645.code == ParentOuAutre_Code.Autre: - _ = match_arg_645.value + elif match_arg_642.code == ParentOuAutre_Code.Autre: + _ = match_arg_642.value temp_usufruit_ou_propriete_famille = False - match_arg_646 = menage.logement.proprietaire - if match_arg_646.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_1 = match_arg_646.value + match_arg_643 = menage.logement.proprietaire + if match_arg_643.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_1 = match_arg_643.value temp_usufruit_ou_propriete_famille_1 = True - elif match_arg_646.code == ParentOuAutre_Code.Autre: - _ = match_arg_646.value + elif match_arg_643.code == ParentOuAutre_Code.Autre: + _ = match_arg_643.value temp_usufruit_ou_propriete_famille_1 = False temp_usufruit_ou_propriete_famille_2 = (temp_usufruit_ou_propriete_famille_1 or temp_usufruit_ou_propriete_famille) @@ -34013,24 +30661,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Prologue : aides au logement"])) usufruit_ou_propriete_famille = temp_usufruit_ou_propriete_famille_2 try: - match_arg_647 = menage.situation_familiale - if match_arg_647.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_647.value + match_arg_644 = menage.situation_familiale + if match_arg_644.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("1") - elif match_arg_647.code == SituationFamiliale_Code.Maries: - _ = match_arg_647.value + elif match_arg_644.code == SituationFamiliale_Code.Maries: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_647.code == SituationFamiliale_Code.Pacses: - _ = match_arg_647.value + elif match_arg_644.code == SituationFamiliale_Code.Pacses: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_647.code == SituationFamiliale_Code.Concubins: - _ = match_arg_647.value + elif match_arg_644.code == SituationFamiliale_Code.Concubins: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("2") - elif match_arg_647.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_647.value + elif match_arg_644.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("1") - elif match_arg_647.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_647.value + elif match_arg_644.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_644.value temp_nombre_personnes_logement = integer_of_string("2") temp_nombre_personnes_logement_1 = ((temp_nombre_personnes_logement + menage.nombre_autres_occupants_logement) + @@ -34047,33 +30695,33 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_648 = menage.residence - if match_arg_648.code == Collectivite_Code.Guadeloupe: - _ = match_arg_648.value + match_arg_645 = menage.residence + if match_arg_645.code == Collectivite_Code.Guadeloupe: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.Guyane: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.Guyane: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.Martinique: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.Martinique: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.LaReunion: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.LaReunion: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.SaintMartin: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.SaintMartin: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.Metropole: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.Metropole: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = False - elif match_arg_648.code == Collectivite_Code.Mayotte: - _ = match_arg_648.value + elif match_arg_645.code == Collectivite_Code.Mayotte: + _ = match_arg_645.value temp_septieme_alinea_l823_1_applicable = True if temp_septieme_alinea_l823_1_applicable: temp_septieme_alinea_l823_1_applicable_1 = False @@ -34184,52 +30832,52 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen patrimoine_total_demandeur = temp_patrimoine_total_demandeur try: try: - match_arg_649 = menage.residence - if match_arg_649.code == Collectivite_Code.Guadeloupe: - _ = match_arg_649.value + match_arg_646 = menage.residence + if match_arg_646.code == Collectivite_Code.Guadeloupe: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.Guyane: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.Guyane: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.Martinique: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.Martinique: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.LaReunion: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.LaReunion: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.SaintMartin: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.SaintMartin: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.Metropole: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.Metropole: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_646.value temp_condition_nationalite = False - elif match_arg_649.code == Collectivite_Code.Mayotte: - _ = match_arg_649.value + elif match_arg_646.code == Collectivite_Code.Mayotte: + _ = match_arg_646.value temp_condition_nationalite = True if temp_condition_nationalite: - match_arg_650 = demandeur.nationalite - if match_arg_650.code == Nationalite_Code.Francaise: - _ = match_arg_650.value + match_arg_647 = demandeur.nationalite + if match_arg_647.code == Nationalite_Code.Francaise: + _ = match_arg_647.value temp_condition_nationalite_1 = False - elif match_arg_650.code == Nationalite_Code.Etrangere: - conditions = match_arg_650.value + elif match_arg_647.code == Nationalite_Code.Etrangere: + conditions = match_arg_647.value temp_condition_nationalite_1 = conditions.satisfait_art_4_ordonnance_2002_mayotte else: temp_condition_nationalite_1 = dead_value raise EmptyError except EmptyError: - match_arg_651 = demandeur.nationalite - if match_arg_651.code == Nationalite_Code.Francaise: - _ = match_arg_651.value + match_arg_648 = demandeur.nationalite + if match_arg_648.code == Nationalite_Code.Francaise: + _ = match_arg_648.value temp_condition_nationalite_1 = True - elif match_arg_651.code == Nationalite_Code.Etrangere: - conditions_1 = match_arg_651.value + elif match_arg_648.code == Nationalite_Code.Etrangere: + conditions_1 = match_arg_648.value temp_condition_nationalite_1 = conditions_1.satisfait_conditions_l512_2_code_securite_sociale except EmptyError: temp_condition_nationalite_1 = dead_value @@ -34312,12 +30960,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_652 = menage.logement.loue_ou_sous_loue_a_des_tiers - if match_arg_652.code == LoueOuSousLoueADesTiers_Code.Non: - _ = match_arg_652.value + match_arg_649 = menage.logement.loue_ou_sous_loue_a_des_tiers + if match_arg_649.code == LoueOuSousLoueADesTiers_Code.Non: + _ = match_arg_649.value temp_condition_logement_location_tiers = True - elif match_arg_652.code == LoueOuSousLoueADesTiers_Code.Oui: - personne_2 = match_arg_652.value + elif match_arg_649.code == LoueOuSousLoueADesTiers_Code.Oui: + personne_2 = match_arg_649.value try: temp_condition_logement_location_tiers_1 = duration_of_numbers(30,0,0) except EmptyError: @@ -34374,12 +31022,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_location_tiers_4 = dead_value raise EmptyError except EmptyError: - match_arg_653 = menage.logement.loue_ou_sous_loue_a_des_tiers - if match_arg_653.code == LoueOuSousLoueADesTiers_Code.Non: - _ = match_arg_653.value + match_arg_650 = menage.logement.loue_ou_sous_loue_a_des_tiers + if match_arg_650.code == LoueOuSousLoueADesTiers_Code.Non: + _ = match_arg_650.value temp_condition_logement_location_tiers_5 = True - elif match_arg_653.code == LoueOuSousLoueADesTiers_Code.Oui: - _ = match_arg_653.value + elif match_arg_650.code == LoueOuSousLoueADesTiers_Code.Oui: + _ = match_arg_650.value temp_condition_logement_location_tiers_5 = False if temp_condition_logement_location_tiers_5: temp_condition_logement_location_tiers_4 = False @@ -34434,33 +31082,33 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen def temp_prestations_familiales_dot_age_l512_3_2(_:Unit): try: try: - match_arg_654 = menage.residence - if match_arg_654.code == Collectivite_Code.Guadeloupe: - _ = match_arg_654.value + match_arg_651 = menage.residence + if match_arg_651.code == Collectivite_Code.Guadeloupe: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.Guyane: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.Guyane: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.Martinique: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.Martinique: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.LaReunion: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.LaReunion: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = True - elif match_arg_654.code == Collectivite_Code.SaintMartin: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.SaintMartin: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = True - elif match_arg_654.code == Collectivite_Code.Metropole: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.Metropole: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False - elif match_arg_654.code == Collectivite_Code.Mayotte: - _ = match_arg_654.value + elif match_arg_651.code == Collectivite_Code.Mayotte: + _ = match_arg_651.value temp_prestations_familiales_dot_age_l512_3_2_1 = False if ((date_courante_15 >= date_entree_vigueur_differee_cch_1) and @@ -34470,33 +31118,33 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_prestations_familiales_dot_age_l512_3_2_2 = dead_value raise EmptyError except EmptyError: - match_arg_655 = menage.residence - if match_arg_655.code == Collectivite_Code.Guadeloupe: - _ = match_arg_655.value + match_arg_652 = menage.residence + if match_arg_652.code == Collectivite_Code.Guadeloupe: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_655.code == Collectivite_Code.Guyane: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.Guyane: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_655.code == Collectivite_Code.Martinique: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.Martinique: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_655.code == Collectivite_Code.LaReunion: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.LaReunion: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = True - elif match_arg_655.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_655.code == Collectivite_Code.SaintMartin: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.SaintMartin: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_655.code == Collectivite_Code.Metropole: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.Metropole: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_655.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = False - elif match_arg_655.code == Collectivite_Code.Mayotte: - _ = match_arg_655.value + elif match_arg_652.code == Collectivite_Code.Mayotte: + _ = match_arg_652.value temp_prestations_familiales_dot_age_l512_3_2_3 = True if temp_prestations_familiales_dot_age_l512_3_2_3: temp_prestations_familiales_dot_age_l512_3_2_2 = duration_of_numbers(22,0,0) @@ -34519,19 +31167,19 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_656 = menage.logement.usufruit - if match_arg_656.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_2 = match_arg_656.value + match_arg_653 = menage.logement.usufruit + if match_arg_653.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_2 = match_arg_653.value temp_condition_logement_mode_occupation = parts_2 - elif match_arg_656.code == ParentOuAutre_Code.Autre: - _ = match_arg_656.value + elif match_arg_653.code == ParentOuAutre_Code.Autre: + _ = match_arg_653.value temp_condition_logement_mode_occupation = decimal_of_string("0.") - match_arg_657 = menage.logement.proprietaire - if match_arg_657.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: - parts_3 = match_arg_657.value + match_arg_654 = menage.logement.proprietaire + if match_arg_654.code == ParentOuAutre_Code.DemandeurOuConjointOuParentOuViaPartsSocietes: + parts_3 = match_arg_654.value temp_condition_logement_mode_occupation_1 = parts_3 - elif match_arg_657.code == ParentOuAutre_Code.Autre: - _ = match_arg_657.value + elif match_arg_654.code == ParentOuAutre_Code.Autre: + _ = match_arg_654.value temp_condition_logement_mode_occupation_1 = decimal_of_string("0.") if (usufruit_ou_propriete_famille and ((temp_condition_logement_mode_occupation_1 < @@ -34543,21 +31191,21 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_mode_occupation_2 = dead_value raise EmptyError except EmptyError: - match_arg_658 = menage.logement.mode_occupation - if match_arg_658.code == ModeOccupation_Code.Locataire: - _ = match_arg_658.value + match_arg_655 = menage.logement.mode_occupation + if match_arg_655.code == ModeOccupation_Code.Locataire: + _ = match_arg_655.value temp_condition_logement_mode_occupation_3 = usufruit_ou_propriete_famille - elif match_arg_658.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_658.value + elif match_arg_655.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_655.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_658.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_658.value + elif match_arg_655.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_655.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_658.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_658.value + elif match_arg_655.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_655.value temp_condition_logement_mode_occupation_3 = False - elif match_arg_658.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_658.value + elif match_arg_655.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_655.value temp_condition_logement_mode_occupation_3 = False if temp_condition_logement_mode_occupation_3: temp_condition_logement_mode_occupation_2 = False @@ -34565,21 +31213,21 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_mode_occupation_2 = dead_value raise EmptyError except EmptyError: - match_arg_659 = menage.logement.mode_occupation - if match_arg_659.code == ModeOccupation_Code.Locataire: - _ = match_arg_659.value + match_arg_656 = menage.logement.mode_occupation + if match_arg_656.code == ModeOccupation_Code.Locataire: + _ = match_arg_656.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_659.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_659.value + elif match_arg_656.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_656.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_659.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_659.value + elif match_arg_656.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_656.value temp_condition_logement_mode_occupation_4 = menage.logement.residence_principale - elif match_arg_659.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_659.value + elif match_arg_656.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_656.value temp_condition_logement_mode_occupation_4 = True - elif match_arg_659.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_659.value + elif match_arg_656.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_656.value temp_condition_logement_mode_occupation_4 = True if temp_condition_logement_mode_occupation_4: temp_condition_logement_mode_occupation_2 = True @@ -34626,24 +31274,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_surface = dead_value raise EmptyError except EmptyError: - match_arg_660 = menage.situation_familiale - if match_arg_660.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_660.value + match_arg_657 = menage.situation_familiale + if match_arg_657.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("9") - elif match_arg_660.code == SituationFamiliale_Code.Maries: - _ = match_arg_660.value + elif match_arg_657.code == SituationFamiliale_Code.Maries: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_660.code == SituationFamiliale_Code.Pacses: - _ = match_arg_660.value + elif match_arg_657.code == SituationFamiliale_Code.Pacses: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_660.code == SituationFamiliale_Code.Concubins: - _ = match_arg_660.value + elif match_arg_657.code == SituationFamiliale_Code.Concubins: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("16") - elif match_arg_660.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_660.value + elif match_arg_657.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("9") - elif match_arg_660.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_660.value + elif match_arg_657.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_657.value temp_condition_logement_surface_2 = integer_of_string("16") if (((temp_condition_logement_surface_2 + ((menage.nombre_autres_occupants_logement + @@ -34655,24 +31303,24 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen temp_condition_logement_surface_3 = (menage.logement.surface_m_carres >= integer_of_string("70")) else: - match_arg_661 = menage.situation_familiale - if match_arg_661.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_661.value + match_arg_658 = menage.situation_familiale + if match_arg_658.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("9") - elif match_arg_661.code == SituationFamiliale_Code.Maries: - _ = match_arg_661.value + elif match_arg_658.code == SituationFamiliale_Code.Maries: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_661.code == SituationFamiliale_Code.Pacses: - _ = match_arg_661.value + elif match_arg_658.code == SituationFamiliale_Code.Pacses: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_661.code == SituationFamiliale_Code.Concubins: - _ = match_arg_661.value + elif match_arg_658.code == SituationFamiliale_Code.Concubins: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("16") - elif match_arg_661.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_661.value + elif match_arg_658.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("9") - elif match_arg_661.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_661.value + elif match_arg_658.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_658.value temp_condition_logement_surface_4 = integer_of_string("16") temp_condition_logement_surface_3 = (menage.logement.surface_m_carres >= (temp_condition_logement_surface_4 + @@ -34813,12 +31461,12 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen def temp_condition_2_r823_4(personne_a_charge:PersonneACharge): try: try: - match_arg_662 = personne_a_charge - if match_arg_662.code == PersonneACharge_Code.EnfantACharge: - enfant_2 = match_arg_662.value + match_arg_659 = personne_a_charge + if match_arg_659.code == PersonneACharge_Code.EnfantACharge: + enfant_2 = match_arg_659.value temp_condition_2_r823_4_1 = False - elif match_arg_662.code == PersonneACharge_Code.AutrePersonneACharge: - parent = match_arg_662.value + elif match_arg_659.code == PersonneACharge_Code.AutrePersonneACharge: + parent = match_arg_659.value try: temp_condition_2_r823_4_2 = duration_of_numbers(65,0,0) except EmptyError: @@ -34867,8 +31515,17 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - temp_condition_2_r823_4_1 = ((parent.parente == - Parente(Parente_Code.Ascendant, Unit())) and + match_arg_660 = parent.parente + if match_arg_660.code == Parente_Code.Ascendant: + _ = match_arg_660.value + temp_condition_2_r823_4_5 = True + elif match_arg_660.code == Parente_Code.Descendant: + _ = match_arg_660.value + temp_condition_2_r823_4_5 = False + elif match_arg_660.code == Parente_Code.CollateralDeuxiemeTroisiemeDegre: + _ = match_arg_660.value + temp_condition_2_r823_4_5 = False + temp_condition_2_r823_4_1 = (temp_condition_2_r823_4_5 and ((parent.ressources <= (plafond_individuel_l815_9_secu * decimal_of_string("1.25"))) and @@ -34937,54 +31594,54 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen try: try: try: - match_arg_663 = personne_a_charge_1 - if match_arg_663.code == PersonneACharge_Code.EnfantACharge: - enfant_3 = match_arg_663.value - match_arg_664 = enfant_3.obligation_scolaire - if match_arg_664.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_664.value + match_arg_661 = personne_a_charge_1 + if match_arg_661.code == PersonneACharge_Code.EnfantACharge: + enfant_3 = match_arg_661.value + match_arg_662 = enfant_3.obligation_scolaire + if match_arg_662.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_662.value temp_prise_en_compte_personne_a_charge_4 = False - elif match_arg_664.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_664.value + elif match_arg_662.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_662.value temp_prise_en_compte_personne_a_charge_4 = False - elif match_arg_664.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_664.value + elif match_arg_662.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_662.value temp_prise_en_compte_personne_a_charge_4 = True temp_prise_en_compte_personne_a_charge_5 = (temp_prise_en_compte_personne_a_charge_4 and (((enfant_3.date_de_naissance + prestations_familiales_dot_age_l512_3_2_1) > date_courante_15) and enfant_3.etudes_apprentissage_stage_formation_pro_impossibilite_travail)) - elif match_arg_663.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_663.value + elif match_arg_661.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_661.value temp_prise_en_compte_personne_a_charge_5 = False - match_arg_665 = menage.residence - if match_arg_665.code == Collectivite_Code.Guadeloupe: - _ = match_arg_665.value + match_arg_663 = menage.residence + if match_arg_663.code == Collectivite_Code.Guadeloupe: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.Guyane: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.Guyane: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.Martinique: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.Martinique: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.LaReunion: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.LaReunion: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = True - elif match_arg_665.code == Collectivite_Code.SaintMartin: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.SaintMartin: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = True - elif match_arg_665.code == Collectivite_Code.Metropole: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.Metropole: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False - elif match_arg_665.code == Collectivite_Code.Mayotte: - _ = match_arg_665.value + elif match_arg_663.code == Collectivite_Code.Mayotte: + _ = match_arg_663.value temp_prise_en_compte_personne_a_charge_6 = False if (temp_prise_en_compte_personne_a_charge_6 and temp_prise_en_compte_personne_a_charge_5): @@ -34992,54 +31649,54 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_666 = personne_a_charge_1 - if match_arg_666.code == PersonneACharge_Code.EnfantACharge: - enfant_4 = match_arg_666.value - match_arg_667 = enfant_4.obligation_scolaire - if match_arg_667.code == SituationObligationScolaire_Code.Avant: - _ = match_arg_667.value + match_arg_664 = personne_a_charge_1 + if match_arg_664.code == PersonneACharge_Code.EnfantACharge: + enfant_4 = match_arg_664.value + match_arg_665 = enfant_4.obligation_scolaire + if match_arg_665.code == SituationObligationScolaire_Code.Avant: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_7 = False - elif match_arg_667.code == SituationObligationScolaire_Code.Pendant: - _ = match_arg_667.value + elif match_arg_665.code == SituationObligationScolaire_Code.Pendant: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_7 = False - elif match_arg_667.code == SituationObligationScolaire_Code.Apres: - _ = match_arg_667.value + elif match_arg_665.code == SituationObligationScolaire_Code.Apres: + _ = match_arg_665.value temp_prise_en_compte_personne_a_charge_7 = True temp_prise_en_compte_personne_a_charge_8 = (temp_prise_en_compte_personne_a_charge_7 and (((enfant_4.date_de_naissance + prestations_familiales_dot_age_l512_3_2_1) > date_courante_15) and enfant_4.etudes_apprentissage_stage_formation_pro_impossibilite_travail)) - elif match_arg_666.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_666.value + elif match_arg_664.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_664.value temp_prise_en_compte_personne_a_charge_8 = False - match_arg_668 = menage.residence - if match_arg_668.code == Collectivite_Code.Guadeloupe: - _ = match_arg_668.value + match_arg_666 = menage.residence + if match_arg_666.code == Collectivite_Code.Guadeloupe: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_668.code == Collectivite_Code.Guyane: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.Guyane: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_668.code == Collectivite_Code.Martinique: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.Martinique: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_668.code == Collectivite_Code.LaReunion: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.LaReunion: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = True - elif match_arg_668.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_668.code == Collectivite_Code.SaintMartin: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.SaintMartin: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_668.code == Collectivite_Code.Metropole: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.Metropole: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_668.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = False - elif match_arg_668.code == Collectivite_Code.Mayotte: - _ = match_arg_668.value + elif match_arg_666.code == Collectivite_Code.Mayotte: + _ = match_arg_666.value temp_prise_en_compte_personne_a_charge_9 = True if (temp_prise_en_compte_personne_a_charge_9 and temp_prise_en_compte_personne_a_charge_8): @@ -35047,18 +31704,18 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_669 = personne_a_charge_1 - if match_arg_669.code == PersonneACharge_Code.EnfantACharge: - enfant_5 = match_arg_669.value - match_arg_670 = enfant_5.nationalite - if match_arg_670.code == Nationalite_Code.Francaise: - _ = match_arg_670.value + match_arg_667 = personne_a_charge_1 + if match_arg_667.code == PersonneACharge_Code.EnfantACharge: + enfant_5 = match_arg_667.value + match_arg_668 = enfant_5.nationalite + if match_arg_668.code == Nationalite_Code.Francaise: + _ = match_arg_668.value temp_prise_en_compte_personne_a_charge_10 = False - elif match_arg_670.code == Nationalite_Code.Etrangere: - conditions_2 = match_arg_670.value + elif match_arg_668.code == Nationalite_Code.Etrangere: + conditions_2 = match_arg_668.value temp_prise_en_compte_personne_a_charge_10 = not conditions_2.satisfait_conditions_l512_2_code_securite_sociale - elif match_arg_669.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_669.value + elif match_arg_667.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_667.value temp_prise_en_compte_personne_a_charge_10 = False if (septieme_alinea_l823_1_applicable and temp_prise_en_compte_personne_a_charge_10): @@ -35066,16 +31723,16 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen else: raise EmptyError except EmptyError: - match_arg_671 = personne_a_charge_1 - if match_arg_671.code == PersonneACharge_Code.EnfantACharge: - enfant_6 = match_arg_671.value - match_arg_672 = enfant_6.situation_garde_alternee - if match_arg_672.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_672.value + match_arg_669 = personne_a_charge_1 + if match_arg_669.code == PersonneACharge_Code.EnfantACharge: + enfant_6 = match_arg_669.value + match_arg_670 = enfant_6.situation_garde_alternee + if match_arg_670.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_670.value temp_prise_en_compte_personne_a_charge_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_672.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_672.value + elif match_arg_670.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_670.value temp_prise_en_compte_personne_a_charge_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) temp_prise_en_compte_personne_a_charge_12 = prestations_familiales_dot_droit_ouvert( @@ -35086,8 +31743,8 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen prise_en_charge = temp_prise_en_compte_personne_a_charge_11, a_deja_ouvert_droit_aux_allocations_familiales = enfant_6.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_6.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_671.code == PersonneACharge_Code.AutrePersonneACharge: - parent_1 = match_arg_671.value + elif match_arg_669.code == PersonneACharge_Code.AutrePersonneACharge: + parent_1 = match_arg_669.value temp_prise_en_compte_personne_a_charge_12 = False if temp_prise_en_compte_personne_a_charge_12: return True @@ -35095,16 +31752,49 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen raise EmptyError def temp_prise_en_compte_personne_a_charge_13(_:Unit): try: - match_arg_673 = personne_a_charge_1 - if match_arg_673.code == PersonneACharge_Code.EnfantACharge: - enfant_7 = match_arg_673.value + match_arg_671 = personne_a_charge_1 + if match_arg_671.code == PersonneACharge_Code.EnfantACharge: + enfant_7 = match_arg_671.value temp_prise_en_compte_personne_a_charge_14 = False - elif match_arg_673.code == PersonneACharge_Code.AutrePersonneACharge: - parent_2 = match_arg_673.value - temp_prise_en_compte_personne_a_charge_14 = (parent_2.incapacite_80_pourcent_ou_restriction_emploi and + elif match_arg_671.code == PersonneACharge_Code.AutrePersonneACharge: + parent_2 = match_arg_671.value + match_arg_672 = parent_2.parente + if match_arg_672.code == Parente_Code.Ascendant: + _ = match_arg_672.value + temp_prise_en_compte_personne_a_charge_15 = False + elif match_arg_672.code == Parente_Code.Descendant: + _ = match_arg_672.value + temp_prise_en_compte_personne_a_charge_15 = False + elif match_arg_672.code == Parente_Code.CollateralDeuxiemeTroisiemeDegre: + _ = match_arg_672.value + temp_prise_en_compte_personne_a_charge_15 = True + match_arg_673 = parent_2.parente + if match_arg_673.code == Parente_Code.Ascendant: + _ = match_arg_673.value + temp_prise_en_compte_personne_a_charge_16 = False + elif match_arg_673.code == Parente_Code.Descendant: + _ = match_arg_673.value + temp_prise_en_compte_personne_a_charge_16 = True + elif match_arg_673.code == Parente_Code.CollateralDeuxiemeTroisiemeDegre: + _ = match_arg_673.value + temp_prise_en_compte_personne_a_charge_16 = False + match_arg_674 = parent_2.parente + if match_arg_674.code == Parente_Code.Ascendant: + _ = match_arg_674.value + temp_prise_en_compte_personne_a_charge_17 = True + elif match_arg_674.code == Parente_Code.Descendant: + _ = match_arg_674.value + temp_prise_en_compte_personne_a_charge_17 = False + elif match_arg_674.code == Parente_Code.CollateralDeuxiemeTroisiemeDegre: + _ = match_arg_674.value + temp_prise_en_compte_personne_a_charge_17 = False + temp_prise_en_compte_personne_a_charge_14 = ((temp_prise_en_compte_personne_a_charge_17 or + (temp_prise_en_compte_personne_a_charge_16 or + temp_prise_en_compte_personne_a_charge_15)) and + (parent_2.incapacite_80_pourcent_ou_restriction_emploi and (parent_2.ressources <= (plafond_individuel_l815_9_secu * - decimal_of_string("1.25")))) + decimal_of_string("1.25"))))) if temp_prise_en_compte_personne_a_charge_14: return True else: @@ -35157,32 +31847,32 @@ def eligibilite_aides_personnelle_logement(eligibilite_aides_personnelle_logemen personnes_a_charge_prises_en_compte = temp_personnes_a_charge_prises_en_compte_1 try: def temp_coefficents_enfants_garde_alternee_pris_en_compte(personne_a_charge_3:PersonneACharge): - match_arg_674 = personne_a_charge_3 - if match_arg_674.code == PersonneACharge_Code.EnfantACharge: - enfant_8 = match_arg_674.value - match_arg_675 = enfant_8.situation_garde_alternee - if match_arg_675.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_675.value + match_arg_675 = personne_a_charge_3 + if match_arg_675.code == PersonneACharge_Code.EnfantACharge: + enfant_8 = match_arg_675.value + match_arg_676 = enfant_8.situation_garde_alternee + if match_arg_676.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_676.value return False - elif match_arg_675.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_675.value + elif match_arg_676.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_676.value return True - elif match_arg_674.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_674.value + elif match_arg_675.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_675.value return False def temp_coefficents_enfants_garde_alternee_pris_en_compte_1(personne_a_charge_4:PersonneACharge): - match_arg_676 = personne_a_charge_4 - if match_arg_676.code == PersonneACharge_Code.EnfantACharge: - enfant_9 = match_arg_676.value - match_arg_677 = enfant_9.situation_garde_alternee - if match_arg_677.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_677.value + match_arg_677 = personne_a_charge_4 + if match_arg_677.code == PersonneACharge_Code.EnfantACharge: + enfant_9 = match_arg_677.value + match_arg_678 = enfant_9.situation_garde_alternee + if match_arg_678.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_678.value return decimal_of_string("0.") - elif match_arg_677.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - coeff = match_arg_677.value + elif match_arg_678.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + coeff = match_arg_678.value return coeff - elif match_arg_676.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_676.value + elif match_arg_677.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_677.value return decimal_of_string("0.") temp_coefficents_enfants_garde_alternee_pris_en_compte_2 = list_map(temp_coefficents_enfants_garde_alternee_pris_en_compte_1, list_filter(temp_coefficents_enfants_garde_alternee_pris_en_compte, @@ -35289,32 +31979,32 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog type_aide_3 = calcul_allocation_logement_in.type_aide_in residence_9 = calcul_allocation_logement_in.residence_in try: - match_arg_678 = mode_occupation_3 - if match_arg_678.code == ModeOccupation_Code.Locataire: - location_3 = match_arg_678.value + match_arg_679 = mode_occupation_3 + if match_arg_679.code == ModeOccupation_Code.Locataire: + location_3 = match_arg_679.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location_3) - elif match_arg_678.code == ModeOccupation_Code.ResidentLogementFoyer: - logementfoyer_1 = match_arg_678.value + elif match_arg_679.code == ModeOccupation_Code.ResidentLogementFoyer: + logementfoyer_1 = match_arg_679.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.LogementFoyer, logementfoyer_1) - elif match_arg_678.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_3 = match_arg_678.value + elif match_arg_679.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_3 = match_arg_679.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire_3) - elif match_arg_678.code == ModeOccupation_Code.SousLocataire: - location_4 = match_arg_678.value + elif match_arg_679.code == ModeOccupation_Code.SousLocataire: + location_4 = match_arg_679.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.Location, location_4) - elif match_arg_678.code == ModeOccupation_Code.LocationAccession: - proprietaire_4 = match_arg_678.value + elif match_arg_679.code == ModeOccupation_Code.LocationAccession: + proprietaire_4 = match_arg_679.value temp_categorie_calcul_apl_1 = CategorieCalculAPL(CategorieCalculAPL_Code.AccessionPropriete, proprietaire_4) except EmptyError: temp_categorie_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1104, - start_column=11, end_line=1104, + start_line=1066, + start_column=11, end_line=1066, end_column=31, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -35327,8 +32017,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_ressources_menage_avec_arrondi_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1096, - start_column=10, end_line=1096, + start_line=1058, + start_column=10, end_line=1058, end_column=22, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -35336,36 +32026,36 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Prologue : aides au logement"])) ressources_menage_avec_arrondi_1 = temp_ressources_menage_avec_arrondi_1 try: - match_arg_679 = situation_familiale_2 - if match_arg_679.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_679.value + match_arg_680 = situation_familiale_2 + if match_arg_680.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_679.code == SituationFamiliale_Code.Maries: - _ = match_arg_679.value + elif match_arg_680.code == SituationFamiliale_Code.Maries: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_679.code == SituationFamiliale_Code.Pacses: - _ = match_arg_679.value + elif match_arg_680.code == SituationFamiliale_Code.Pacses: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_679.code == SituationFamiliale_Code.Concubins: - _ = match_arg_679.value + elif match_arg_680.code == SituationFamiliale_Code.Concubins: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) - elif match_arg_679.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_679.value + elif match_arg_680.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.PersonneSeule, Unit()) - elif match_arg_679.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_679.value + elif match_arg_680.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_680.value temp_situation_familiale_calcul_apl_1 = SituationFamilialeCalculAPL(SituationFamilialeCalculAPL_Code.Couple, Unit()) except EmptyError: temp_situation_familiale_calcul_apl_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1105, - start_column=11, end_line=1105, + start_line=1067, + start_column=11, end_line=1067, end_column=41, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -35374,55 +32064,55 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog situation_familiale_calcul_apl_9 = temp_situation_familiale_calcul_apl_1 try: try: - match_arg_680 = residence_9 - if match_arg_680.code == Collectivite_Code.Guadeloupe: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.Guyane: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.Martinique: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.LaReunion: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.SaintMartin: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.Metropole: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - elif match_arg_680.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = True - elif match_arg_680.code == Collectivite_Code.Mayotte: - _ = match_arg_680.value - temp_sous_calcul_traitement_759 = False - if temp_sous_calcul_traitement_759: - match_arg_681 = categorie_calcul_apl_1 - if match_arg_681.code == CategorieCalculAPL_Code.Location: - _ = match_arg_681.value - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), + match_arg_681 = residence_9 + if match_arg_681.code == Collectivite_Code.Guadeloupe: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.Guyane: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.Martinique: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.LaReunion: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.SaintMartin: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.Metropole: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + elif match_arg_681.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = True + elif match_arg_681.code == Collectivite_Code.Mayotte: + _ = match_arg_681.value + temp_sous_calcul_traitement_559 = False + if temp_sous_calcul_traitement_559: + match_arg_682 = categorie_calcul_apl_1 + if match_arg_682.code == CategorieCalculAPL_Code.Location: + _ = match_arg_682.value + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_681.code == CategorieCalculAPL_Code.AccessionPropriete: - _ = match_arg_681.value - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), + elif match_arg_682.code == CategorieCalculAPL_Code.AccessionPropriete: + _ = match_arg_682.value + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = money_of_cents_string("0"), traitement_aide_finale = traitement_nul_tout_le_temps) - elif match_arg_681.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__2 = match_arg_681.value - def temp_sous_calcul_traitement_761(param0_8:Money): + elif match_arg_682.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer__1 = match_arg_682.value + def temp_sous_calcul_traitement_561(param0_6:Money): try: - temp_sous_calcul_traitement_762 = logement_foyer__2.redevance + temp_sous_calcul_traitement_562 = logement_foyer__1.redevance except EmptyError: - temp_sous_calcul_traitement_762 = dead_value + temp_sous_calcul_traitement_562 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6410, start_column=31, - end_line=6422, + end_line=6410, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35432,13 +32122,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_763 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_563 = ressources_menage_avec_arrondi_1 except EmptyError: - temp_sous_calcul_traitement_763 = dead_value + temp_sous_calcul_traitement_563 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6404, start_column=43, - end_line=6416, + end_line=6404, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35448,13 +32138,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_764 = logement_foyer__2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_564 = logement_foyer__1.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_764 = dead_value + temp_sous_calcul_traitement_564 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6424, + start_line=6412, start_column=15, - end_line=6424, + end_line=6412, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35464,13 +32154,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_765 = date_courante_16 + temp_sous_calcul_traitement_565 = date_courante_16 except EmptyError: - temp_sous_calcul_traitement_765 = dead_value + temp_sous_calcul_traitement_565 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6419, + start_line=6407, start_column=29, - end_line=6419, + end_line=6407, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35480,13 +32170,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_766 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_566 = nombre_personnes_a_charge_12 except EmptyError: - temp_sous_calcul_traitement_766 = dead_value + temp_sous_calcul_traitement_566 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6405, start_column=41, - end_line=6417, + end_line=6405, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35496,13 +32186,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_767 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_567 = situation_familiale_calcul_apl_9 except EmptyError: - temp_sous_calcul_traitement_767 = dead_value + temp_sous_calcul_traitement_567 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6408, start_column=46, - end_line=6420, + end_line=6408, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35512,13 +32202,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_768 = zone_7 + temp_sous_calcul_traitement_568 = zone_7 except EmptyError: - temp_sous_calcul_traitement_768 = dead_value + temp_sous_calcul_traitement_568 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6406, start_column=20, - end_line=6418, + end_line=6406, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35528,13 +32218,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_769 = True + temp_sous_calcul_traitement_569 = True except EmptyError: - temp_sous_calcul_traitement_769 = dead_value + temp_sous_calcul_traitement_569 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6428, + start_line=6416, start_column=36, - end_line=6428, + end_line=6416, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35544,13 +32234,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_770 = False + temp_sous_calcul_traitement_570 = False except EmptyError: - temp_sous_calcul_traitement_770 = dead_value + temp_sous_calcul_traitement_570 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6435, + start_line=6423, start_column=72, - end_line=6435, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35560,13 +32250,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_771 = type_aide_3 + temp_sous_calcul_traitement_571 = type_aide_3 except EmptyError: - temp_sous_calcul_traitement_771 = dead_value + temp_sous_calcul_traitement_571 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6436, + start_line=6424, start_column=25, - end_line=6436, + end_line=6424, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35576,13 +32266,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_772 = False + temp_sous_calcul_traitement_572 = False except EmptyError: - temp_sous_calcul_traitement_772 = dead_value + temp_sous_calcul_traitement_572 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6432, + start_line=6420, start_column=26, - end_line=6432, + end_line=6420, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35592,13 +32282,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_773 = money_of_cents_string("0") + temp_sous_calcul_traitement_573 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_773 = dead_value + temp_sous_calcul_traitement_573 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6428, start_column=42, - end_line=6439, + end_line=6428, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35608,13 +32298,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_774 = logement_foyer__2.logement_meuble_d842_2 + temp_sous_calcul_traitement_574 = logement_foyer__1.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_774 = dead_value + temp_sous_calcul_traitement_574 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6440, + start_line=6429, start_column=38, - end_line=6440, + end_line=6429, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35624,13 +32314,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_775 = residence_9 + temp_sous_calcul_traitement_575 = residence_9 except EmptyError: - temp_sous_calcul_traitement_775 = dead_value + temp_sous_calcul_traitement_575 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6403, start_column=25, - end_line=6415, + end_line=6403, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35640,14 +32330,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_776 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, + temp_sous_calcul_traitement_576 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, Unit()) except EmptyError: - temp_sous_calcul_traitement_776 = dead_value + temp_sous_calcul_traitement_576 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6441, + start_line=6430, start_column=42, - end_line=6441, + end_line=6430, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35656,30 +32346,30 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_762, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_763, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_764, - date_courante_in = temp_sous_calcul_traitement_765, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_766, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_767, - zone_in = temp_sous_calcul_traitement_768, - logement_est_chambre_in = temp_sous_calcul_traitement_769, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_770, - type_aide_in = temp_sous_calcul_traitement_771, - colocation_in = temp_sous_calcul_traitement_772, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_773, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_774, - residence_in = temp_sous_calcul_traitement_775, - changement_logement_d842_4_in = temp_sous_calcul_traitement_776)).traitement_aide_finale( - param0_8) + return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_562, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_563, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_564, + date_courante_in = temp_sous_calcul_traitement_565, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_566, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_567, + zone_in = temp_sous_calcul_traitement_568, + logement_est_chambre_in = temp_sous_calcul_traitement_569, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_570, + type_aide_in = temp_sous_calcul_traitement_571, + colocation_in = temp_sous_calcul_traitement_572, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_573, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_574, + residence_in = temp_sous_calcul_traitement_575, + changement_logement_d842_4_in = temp_sous_calcul_traitement_576)).traitement_aide_finale( + param0_6) try: - temp_sous_calcul_traitement_777 = logement_foyer__2.redevance + temp_sous_calcul_traitement_577 = logement_foyer__1.redevance except EmptyError: - temp_sous_calcul_traitement_777 = dead_value + temp_sous_calcul_traitement_577 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6410, start_column=31, - end_line=6422, + end_line=6410, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35689,13 +32379,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_778 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_578 = ressources_menage_avec_arrondi_1 except EmptyError: - temp_sous_calcul_traitement_778 = dead_value + temp_sous_calcul_traitement_578 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6404, start_column=43, - end_line=6416, + end_line=6404, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35705,13 +32395,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_779 = logement_foyer__2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_579 = logement_foyer__1.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_779 = dead_value + temp_sous_calcul_traitement_579 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6424, + start_line=6412, start_column=15, - end_line=6424, + end_line=6412, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35721,13 +32411,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_780 = date_courante_16 + temp_sous_calcul_traitement_580 = date_courante_16 except EmptyError: - temp_sous_calcul_traitement_780 = dead_value + temp_sous_calcul_traitement_580 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6419, + start_line=6407, start_column=29, - end_line=6419, + end_line=6407, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35737,13 +32427,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_781 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_581 = nombre_personnes_a_charge_12 except EmptyError: - temp_sous_calcul_traitement_781 = dead_value + temp_sous_calcul_traitement_581 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6405, start_column=41, - end_line=6417, + end_line=6405, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35753,13 +32443,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_782 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_582 = situation_familiale_calcul_apl_9 except EmptyError: - temp_sous_calcul_traitement_782 = dead_value + temp_sous_calcul_traitement_582 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6408, start_column=46, - end_line=6420, + end_line=6408, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35769,13 +32459,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_783 = zone_7 + temp_sous_calcul_traitement_583 = zone_7 except EmptyError: - temp_sous_calcul_traitement_783 = dead_value + temp_sous_calcul_traitement_583 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6406, start_column=20, - end_line=6418, + end_line=6406, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35785,13 +32475,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_784 = True + temp_sous_calcul_traitement_584 = True except EmptyError: - temp_sous_calcul_traitement_784 = dead_value + temp_sous_calcul_traitement_584 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6428, + start_line=6416, start_column=36, - end_line=6428, + end_line=6416, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35801,13 +32491,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_785 = False + temp_sous_calcul_traitement_585 = False except EmptyError: - temp_sous_calcul_traitement_785 = dead_value + temp_sous_calcul_traitement_585 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6435, + start_line=6423, start_column=72, - end_line=6435, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35817,13 +32507,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_786 = type_aide_3 + temp_sous_calcul_traitement_586 = type_aide_3 except EmptyError: - temp_sous_calcul_traitement_786 = dead_value + temp_sous_calcul_traitement_586 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6436, + start_line=6424, start_column=25, - end_line=6436, + end_line=6424, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35833,13 +32523,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_787 = False + temp_sous_calcul_traitement_587 = False except EmptyError: - temp_sous_calcul_traitement_787 = dead_value + temp_sous_calcul_traitement_587 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6432, + start_line=6420, start_column=26, - end_line=6432, + end_line=6420, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35849,13 +32539,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_788 = money_of_cents_string("0") + temp_sous_calcul_traitement_588 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_788 = dead_value + temp_sous_calcul_traitement_588 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6428, start_column=42, - end_line=6439, + end_line=6428, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35865,13 +32555,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_789 = logement_foyer__2.logement_meuble_d842_2 + temp_sous_calcul_traitement_589 = logement_foyer__1.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_789 = dead_value + temp_sous_calcul_traitement_589 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6440, + start_line=6429, start_column=38, - end_line=6440, + end_line=6429, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35881,13 +32571,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_790 = residence_9 + temp_sous_calcul_traitement_590 = residence_9 except EmptyError: - temp_sous_calcul_traitement_790 = dead_value + temp_sous_calcul_traitement_590 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6403, start_column=25, - end_line=6415, + end_line=6403, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35897,14 +32587,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_791 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, + temp_sous_calcul_traitement_591 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, Unit()) except EmptyError: - temp_sous_calcul_traitement_791 = dead_value + temp_sous_calcul_traitement_591 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6441, + start_line=6430, start_column=42, - end_line=6441, + end_line=6430, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35913,15 +32603,15 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_792(param0_9:Money): + def temp_sous_calcul_traitement_592(param0_7:Money): try: - temp_sous_calcul_traitement_793 = logement_foyer__2.redevance + temp_sous_calcul_traitement_593 = logement_foyer__1.redevance except EmptyError: - temp_sous_calcul_traitement_793 = dead_value + temp_sous_calcul_traitement_593 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6410, start_column=31, - end_line=6422, + end_line=6410, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35931,13 +32621,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_794 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_594 = ressources_menage_avec_arrondi_1 except EmptyError: - temp_sous_calcul_traitement_794 = dead_value + temp_sous_calcul_traitement_594 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6404, start_column=43, - end_line=6416, + end_line=6404, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35947,13 +32637,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_795 = logement_foyer__2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_595 = logement_foyer__1.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_795 = dead_value + temp_sous_calcul_traitement_595 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6424, + start_line=6412, start_column=15, - end_line=6424, + end_line=6412, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35963,13 +32653,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_796 = date_courante_16 + temp_sous_calcul_traitement_596 = date_courante_16 except EmptyError: - temp_sous_calcul_traitement_796 = dead_value + temp_sous_calcul_traitement_596 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6419, + start_line=6407, start_column=29, - end_line=6419, + end_line=6407, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35979,13 +32669,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_797 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_597 = nombre_personnes_a_charge_12 except EmptyError: - temp_sous_calcul_traitement_797 = dead_value + temp_sous_calcul_traitement_597 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6405, start_column=41, - end_line=6417, + end_line=6405, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -35995,13 +32685,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_798 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_598 = situation_familiale_calcul_apl_9 except EmptyError: - temp_sous_calcul_traitement_798 = dead_value + temp_sous_calcul_traitement_598 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6408, start_column=46, - end_line=6420, + end_line=6408, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36011,13 +32701,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_799 = zone_7 + temp_sous_calcul_traitement_599 = zone_7 except EmptyError: - temp_sous_calcul_traitement_799 = dead_value + temp_sous_calcul_traitement_599 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6406, start_column=20, - end_line=6418, + end_line=6406, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36027,13 +32717,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_800 = True + temp_sous_calcul_traitement_600 = True except EmptyError: - temp_sous_calcul_traitement_800 = dead_value + temp_sous_calcul_traitement_600 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6428, + start_line=6416, start_column=36, - end_line=6428, + end_line=6416, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36043,13 +32733,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_801 = False + temp_sous_calcul_traitement_601 = False except EmptyError: - temp_sous_calcul_traitement_801 = dead_value + temp_sous_calcul_traitement_601 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6435, + start_line=6423, start_column=72, - end_line=6435, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36059,13 +32749,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_802 = type_aide_3 + temp_sous_calcul_traitement_602 = type_aide_3 except EmptyError: - temp_sous_calcul_traitement_802 = dead_value + temp_sous_calcul_traitement_602 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6436, + start_line=6424, start_column=25, - end_line=6436, + end_line=6424, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36075,13 +32765,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_803 = False + temp_sous_calcul_traitement_603 = False except EmptyError: - temp_sous_calcul_traitement_803 = dead_value + temp_sous_calcul_traitement_603 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6432, + start_line=6420, start_column=26, - end_line=6432, + end_line=6420, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36091,13 +32781,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_804 = money_of_cents_string("0") + temp_sous_calcul_traitement_604 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_804 = dead_value + temp_sous_calcul_traitement_604 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6428, start_column=42, - end_line=6439, + end_line=6428, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36107,13 +32797,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_805 = logement_foyer__2.logement_meuble_d842_2 + temp_sous_calcul_traitement_605 = logement_foyer__1.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_805 = dead_value + temp_sous_calcul_traitement_605 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6440, + start_line=6429, start_column=38, - end_line=6440, + end_line=6429, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36123,13 +32813,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_806 = residence_9 + temp_sous_calcul_traitement_606 = residence_9 except EmptyError: - temp_sous_calcul_traitement_806 = dead_value + temp_sous_calcul_traitement_606 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6403, start_column=25, - end_line=6415, + end_line=6403, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36139,14 +32829,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_807 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, + temp_sous_calcul_traitement_607 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, Unit()) except EmptyError: - temp_sous_calcul_traitement_807 = dead_value + temp_sous_calcul_traitement_607 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6441, + start_line=6430, start_column=42, - end_line=6441, + end_line=6430, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36155,30 +32845,30 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_793, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_794, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_795, - date_courante_in = temp_sous_calcul_traitement_796, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_797, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_798, - zone_in = temp_sous_calcul_traitement_799, - logement_est_chambre_in = temp_sous_calcul_traitement_800, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_801, - type_aide_in = temp_sous_calcul_traitement_802, - colocation_in = temp_sous_calcul_traitement_803, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_804, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_805, - residence_in = temp_sous_calcul_traitement_806, - changement_logement_d842_4_in = temp_sous_calcul_traitement_807)).traitement_aide_finale( - param0_9) + return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_593, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_594, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_595, + date_courante_in = temp_sous_calcul_traitement_596, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_597, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_598, + zone_in = temp_sous_calcul_traitement_599, + logement_est_chambre_in = temp_sous_calcul_traitement_600, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_601, + type_aide_in = temp_sous_calcul_traitement_602, + colocation_in = temp_sous_calcul_traitement_603, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_604, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_605, + residence_in = temp_sous_calcul_traitement_606, + changement_logement_d842_4_in = temp_sous_calcul_traitement_607)).traitement_aide_finale( + param0_7) try: - temp_sous_calcul_traitement_808 = logement_foyer__2.redevance + temp_sous_calcul_traitement_608 = logement_foyer__1.redevance except EmptyError: - temp_sous_calcul_traitement_808 = dead_value + temp_sous_calcul_traitement_608 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6422, + start_line=6410, start_column=31, - end_line=6422, + end_line=6410, end_column=56, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36188,13 +32878,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_809 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_609 = ressources_menage_avec_arrondi_1 except EmptyError: - temp_sous_calcul_traitement_809 = dead_value + temp_sous_calcul_traitement_609 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6416, + start_line=6404, start_column=43, - end_line=6416, + end_line=6404, end_column=60, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36204,13 +32894,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_810 = logement_foyer__2.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_610 = logement_foyer__1.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_810 = dead_value + temp_sous_calcul_traitement_610 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6424, + start_line=6412, start_column=15, - end_line=6424, + end_line=6412, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36220,13 +32910,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_811 = date_courante_16 + temp_sous_calcul_traitement_611 = date_courante_16 except EmptyError: - temp_sous_calcul_traitement_811 = dead_value + temp_sous_calcul_traitement_611 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6419, + start_line=6407, start_column=29, - end_line=6419, + end_line=6407, end_column=42, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36236,13 +32926,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_812 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_612 = nombre_personnes_a_charge_12 except EmptyError: - temp_sous_calcul_traitement_812 = dead_value + temp_sous_calcul_traitement_612 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6417, + start_line=6405, start_column=41, - end_line=6417, + end_line=6405, end_column=66, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36252,13 +32942,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_813 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_613 = situation_familiale_calcul_apl_9 except EmptyError: - temp_sous_calcul_traitement_813 = dead_value + temp_sous_calcul_traitement_613 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6420, + start_line=6408, start_column=46, - end_line=6420, + end_line=6408, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36268,13 +32958,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_814 = zone_7 + temp_sous_calcul_traitement_614 = zone_7 except EmptyError: - temp_sous_calcul_traitement_814 = dead_value + temp_sous_calcul_traitement_614 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6418, + start_line=6406, start_column=20, - end_line=6418, + end_line=6406, end_column=24, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36284,13 +32974,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_815 = True + temp_sous_calcul_traitement_615 = True except EmptyError: - temp_sous_calcul_traitement_815 = dead_value + temp_sous_calcul_traitement_615 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6428, + start_line=6416, start_column=36, - end_line=6428, + end_line=6416, end_column=40, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36300,13 +32990,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_816 = False + temp_sous_calcul_traitement_616 = False except EmptyError: - temp_sous_calcul_traitement_816 = dead_value + temp_sous_calcul_traitement_616 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6435, + start_line=6423, start_column=72, - end_line=6435, + end_line=6423, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36316,13 +33006,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_817 = type_aide_3 + temp_sous_calcul_traitement_617 = type_aide_3 except EmptyError: - temp_sous_calcul_traitement_817 = dead_value + temp_sous_calcul_traitement_617 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6436, + start_line=6424, start_column=25, - end_line=6436, + end_line=6424, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36332,13 +33022,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_818 = False + temp_sous_calcul_traitement_618 = False except EmptyError: - temp_sous_calcul_traitement_818 = dead_value + temp_sous_calcul_traitement_618 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6432, + start_line=6420, start_column=26, - end_line=6432, + end_line=6420, end_column=30, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36348,13 +33038,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_819 = money_of_cents_string("0") + temp_sous_calcul_traitement_619 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_819 = dead_value + temp_sous_calcul_traitement_619 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6439, + start_line=6428, start_column=42, - end_line=6439, + end_line=6428, end_column=45, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36364,13 +33054,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_820 = logement_foyer__2.logement_meuble_d842_2 + temp_sous_calcul_traitement_620 = logement_foyer__1.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_820 = dead_value + temp_sous_calcul_traitement_620 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6440, + start_line=6429, start_column=38, - end_line=6440, + end_line=6429, end_column=76, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36380,13 +33070,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_821 = residence_9 + temp_sous_calcul_traitement_621 = residence_9 except EmptyError: - temp_sous_calcul_traitement_821 = dead_value + temp_sous_calcul_traitement_621 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6415, + start_line=6403, start_column=25, - end_line=6415, + end_line=6403, end_column=34, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36396,14 +33086,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_822 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, + temp_sous_calcul_traitement_622 = ChangementLogementD8424(ChangementLogementD8424_Code.PasDeChangement, Unit()) except EmptyError: - temp_sous_calcul_traitement_822 = dead_value + temp_sous_calcul_traitement_622 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=6441, + start_line=6430, start_column=42, - end_line=6441, + end_line=6430, end_column=57, law_headings=["Article D863-7", "Sous-section III : Modalités de liquidation et de versement", @@ -36412,56 +33102,56 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( - CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_777, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_778, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_779, - date_courante_in = temp_sous_calcul_traitement_780, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_781, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_782, - zone_in = temp_sous_calcul_traitement_783, - logement_est_chambre_in = temp_sous_calcul_traitement_784, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_785, - type_aide_in = temp_sous_calcul_traitement_786, - colocation_in = temp_sous_calcul_traitement_787, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_788, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_789, - residence_in = temp_sous_calcul_traitement_790, - changement_logement_d842_4_in = temp_sous_calcul_traitement_791)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_761).aide_finale_formule, + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( + CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_577, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_578, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_579, + date_courante_in = temp_sous_calcul_traitement_580, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_581, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_582, + zone_in = temp_sous_calcul_traitement_583, + logement_est_chambre_in = temp_sous_calcul_traitement_584, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_585, + type_aide_in = temp_sous_calcul_traitement_586, + colocation_in = temp_sous_calcul_traitement_587, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_588, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_589, + residence_in = temp_sous_calcul_traitement_590, + changement_logement_d842_4_in = temp_sous_calcul_traitement_591)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_561).aide_finale_formule, traitement_aide_finale = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( - CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_808, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_809, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_810, - date_courante_in = temp_sous_calcul_traitement_811, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_812, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_813, - zone_in = temp_sous_calcul_traitement_814, - logement_est_chambre_in = temp_sous_calcul_traitement_815, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_816, - type_aide_in = temp_sous_calcul_traitement_817, - colocation_in = temp_sous_calcul_traitement_818, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_819, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_820, - residence_in = temp_sous_calcul_traitement_821, - changement_logement_d842_4_in = temp_sous_calcul_traitement_822)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_792).traitement_aide_finale) + CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_608, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_609, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_610, + date_courante_in = temp_sous_calcul_traitement_611, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_612, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_613, + zone_in = temp_sous_calcul_traitement_614, + logement_est_chambre_in = temp_sous_calcul_traitement_615, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_616, + type_aide_in = temp_sous_calcul_traitement_617, + colocation_in = temp_sous_calcul_traitement_618, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_619, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_620, + residence_in = temp_sous_calcul_traitement_621, + changement_logement_d842_4_in = temp_sous_calcul_traitement_622)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_592).traitement_aide_finale) else: - temp_sous_calcul_traitement_760 = dead_value + temp_sous_calcul_traitement_560 = dead_value raise EmptyError except EmptyError: - match_arg_682 = categorie_calcul_apl_1 - if match_arg_682.code == CategorieCalculAPL_Code.Location: - location_5 = match_arg_682.value - def temp_sous_calcul_traitement_823(param0_10:Money): + match_arg_683 = categorie_calcul_apl_1 + if match_arg_683.code == CategorieCalculAPL_Code.Location: + location_5 = match_arg_683.value + def temp_sous_calcul_traitement_623(param0_8:Money): try: - temp_sous_calcul_traitement_824 = location_5.loyer_principal + temp_sous_calcul_traitement_624 = location_5.loyer_principal except EmptyError: - temp_sous_calcul_traitement_824 = dead_value + temp_sous_calcul_traitement_624 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, + start_line=1568, start_column=31, - end_line=1566, + end_line=1568, end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36471,13 +33161,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_825 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_625 = ressources_menage_avec_arrondi_1 except EmptyError: - temp_sous_calcul_traitement_825 = dead_value + temp_sous_calcul_traitement_625 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, + start_line=1563, start_column=43, - end_line=1561, + end_line=1563, end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36487,13 +33177,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_826 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_626 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes except EmptyError: - temp_sous_calcul_traitement_826 = dead_value + temp_sous_calcul_traitement_626 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, + start_line=1570, start_column=15, - end_line=1568, + end_line=1570, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36503,13 +33193,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_827 = date_courante_16 + temp_sous_calcul_traitement_627 = date_courante_16 except EmptyError: - temp_sous_calcul_traitement_827 = dead_value + temp_sous_calcul_traitement_627 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, + start_line=1566, start_column=29, - end_line=1564, + end_line=1566, end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36519,13 +33209,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_828 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_628 = nombre_personnes_a_charge_12 except EmptyError: - temp_sous_calcul_traitement_828 = dead_value + temp_sous_calcul_traitement_628 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, + start_line=1564, start_column=41, - end_line=1562, + end_line=1564, end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36535,13 +33225,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_829 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_629 = situation_familiale_calcul_apl_9 except EmptyError: - temp_sous_calcul_traitement_829 = dead_value + temp_sous_calcul_traitement_629 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1565, + start_line=1567, start_column=46, - end_line=1565, + end_line=1567, end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36551,13 +33241,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_830 = zone_7 + temp_sous_calcul_traitement_630 = zone_7 except EmptyError: - temp_sous_calcul_traitement_830 = dead_value + temp_sous_calcul_traitement_630 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, + start_line=1565, start_column=20, - end_line=1563, + end_line=1565, end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36567,13 +33257,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_831 = location_5.logement_est_chambre + temp_sous_calcul_traitement_631 = location_5.logement_est_chambre except EmptyError: - temp_sous_calcul_traitement_831 = dead_value + temp_sous_calcul_traitement_631 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1569, + start_line=1571, start_column=36, - end_line=1569, + end_line=1571, end_column=65, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36583,13 +33273,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_832 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers + temp_sous_calcul_traitement_632 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers except EmptyError: - temp_sous_calcul_traitement_832 = dead_value + temp_sous_calcul_traitement_632 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1572, + start_line=1574, start_column=15, - end_line=1572, + end_line=1574, end_column=80, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36599,13 +33289,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_833 = type_aide_3 + temp_sous_calcul_traitement_633 = type_aide_3 except EmptyError: - temp_sous_calcul_traitement_833 = dead_value + temp_sous_calcul_traitement_633 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, + start_line=1575, start_column=25, - end_line=1573, + end_line=1575, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36615,13 +33305,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_834 = location_5.colocation + temp_sous_calcul_traitement_634 = location_5.colocation except EmptyError: - temp_sous_calcul_traitement_834 = dead_value + temp_sous_calcul_traitement_634 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, + start_line=1572, start_column=26, - end_line=1570, + end_line=1572, end_column=45, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36631,22 +33321,22 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_683 = location_5.bailleur - if match_arg_683.code == TypeBailleur_Code.BailleurSocial: - bailleur_14 = match_arg_683.value - temp_sous_calcul_traitement_835 = bailleur_14.reduction_loyer_solidarite_percue - elif match_arg_683.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_683.value - temp_sous_calcul_traitement_835 = money_of_cents_string("0") - elif match_arg_683.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_683.value - temp_sous_calcul_traitement_835 = money_of_cents_string("0") + match_arg_684 = location_5.bailleur + if match_arg_684.code == TypeBailleur_Code.BailleurSocial: + bailleur_14 = match_arg_684.value + temp_sous_calcul_traitement_635 = bailleur_14.reduction_loyer_solidarite_percue + elif match_arg_684.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_684.value + temp_sous_calcul_traitement_635 = money_of_cents_string("0") + elif match_arg_684.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_684.value + temp_sous_calcul_traitement_635 = money_of_cents_string("0") except EmptyError: - temp_sous_calcul_traitement_835 = dead_value + temp_sous_calcul_traitement_635 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1575, + start_line=1577, start_column=16, - end_line=1578, + end_line=1580, end_column=39, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36656,13 +33346,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_836 = location_5.logement_meuble_d842_2 + temp_sous_calcul_traitement_636 = location_5.logement_meuble_d842_2 except EmptyError: - temp_sous_calcul_traitement_836 = dead_value + temp_sous_calcul_traitement_636 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1579, + start_line=1581, start_column=38, - end_line=1579, + end_line=1581, end_column=69, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36672,13 +33362,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_837 = residence_9 + temp_sous_calcul_traitement_637 = residence_9 except EmptyError: - temp_sous_calcul_traitement_837 = dead_value + temp_sous_calcul_traitement_637 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, + start_line=1562, start_column=25, - end_line=1560, + end_line=1562, end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -36688,14 +33378,3415 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_838 = location_5.changement_logement_d842_4 + temp_sous_calcul_traitement_638 = location_5.changement_logement_d842_4 + except EmptyError: + temp_sous_calcul_traitement_638 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1582, + start_column=42, + end_line=1582, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_624, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_625, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_626, + date_courante_in = temp_sous_calcul_traitement_627, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_628, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_629, + zone_in = temp_sous_calcul_traitement_630, + logement_est_chambre_in = temp_sous_calcul_traitement_631, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_632, + type_aide_in = temp_sous_calcul_traitement_633, + colocation_in = temp_sous_calcul_traitement_634, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_635, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_636, + residence_in = temp_sous_calcul_traitement_637, + changement_logement_d842_4_in = temp_sous_calcul_traitement_638)).traitement_aide_finale( + param0_8) + try: + temp_sous_calcul_traitement_639 = location_5.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_639 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1568, + start_column=31, + end_line=1568, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_640 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_640 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1563, + start_column=43, + end_line=1563, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_641 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_641 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1570, + start_column=15, + end_line=1570, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_642 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_642 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1566, + start_column=29, + end_line=1566, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_643 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_643 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1564, + start_column=41, + end_line=1564, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_644 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_644 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1567, + start_column=46, + end_line=1567, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_645 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_645 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1565, + start_column=20, + end_line=1565, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_646 = location_5.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_646 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1571, + start_column=36, + end_line=1571, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_647 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_647 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1574, + start_column=15, + end_line=1574, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_648 = type_aide_3 + except EmptyError: + temp_sous_calcul_traitement_648 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1575, + start_column=25, + end_line=1575, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_649 = location_5.colocation + except EmptyError: + temp_sous_calcul_traitement_649 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1572, + start_column=26, + end_line=1572, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_685 = location_5.bailleur + if match_arg_685.code == TypeBailleur_Code.BailleurSocial: + bailleur_15 = match_arg_685.value + temp_sous_calcul_traitement_650 = bailleur_15.reduction_loyer_solidarite_percue + elif match_arg_685.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_685.value + temp_sous_calcul_traitement_650 = money_of_cents_string("0") + elif match_arg_685.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_685.value + temp_sous_calcul_traitement_650 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_650 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1577, + start_column=16, + end_line=1580, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_651 = location_5.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_651 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1581, + start_column=38, + end_line=1581, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_652 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_652 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1562, + start_column=25, + end_line=1562, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_653 = location_5.changement_logement_d842_4 + except EmptyError: + temp_sous_calcul_traitement_653 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1582, + start_column=42, + end_line=1582, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_654(param0_9:Money): + try: + temp_sous_calcul_traitement_655 = location_5.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_655 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1568, + start_column=31, + end_line=1568, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_656 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_656 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1563, + start_column=43, + end_line=1563, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_657 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_657 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1570, + start_column=15, + end_line=1570, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_658 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_658 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1566, + start_column=29, + end_line=1566, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_659 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_659 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1564, + start_column=41, + end_line=1564, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_660 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_660 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1567, + start_column=46, + end_line=1567, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_661 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_661 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1565, + start_column=20, + end_line=1565, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_662 = location_5.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_662 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1571, + start_column=36, + end_line=1571, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_663 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_663 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1574, + start_column=15, + end_line=1574, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_664 = type_aide_3 + except EmptyError: + temp_sous_calcul_traitement_664 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1575, + start_column=25, + end_line=1575, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_665 = location_5.colocation + except EmptyError: + temp_sous_calcul_traitement_665 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1572, + start_column=26, + end_line=1572, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_686 = location_5.bailleur + if match_arg_686.code == TypeBailleur_Code.BailleurSocial: + bailleur_16 = match_arg_686.value + temp_sous_calcul_traitement_666 = bailleur_16.reduction_loyer_solidarite_percue + elif match_arg_686.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_686.value + temp_sous_calcul_traitement_666 = money_of_cents_string("0") + elif match_arg_686.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_686.value + temp_sous_calcul_traitement_666 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_666 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1577, + start_column=16, + end_line=1580, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_667 = location_5.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_667 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1581, + start_column=38, + end_line=1581, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_668 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_668 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1562, + start_column=25, + end_line=1562, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_669 = location_5.changement_logement_d842_4 + except EmptyError: + temp_sous_calcul_traitement_669 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1582, + start_column=42, + end_line=1582, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_655, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_656, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_657, + date_courante_in = temp_sous_calcul_traitement_658, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_659, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_660, + zone_in = temp_sous_calcul_traitement_661, + logement_est_chambre_in = temp_sous_calcul_traitement_662, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_663, + type_aide_in = temp_sous_calcul_traitement_664, + colocation_in = temp_sous_calcul_traitement_665, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_666, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_667, + residence_in = temp_sous_calcul_traitement_668, + changement_logement_d842_4_in = temp_sous_calcul_traitement_669)).traitement_aide_finale( + param0_9) + try: + temp_sous_calcul_traitement_670 = location_5.loyer_principal + except EmptyError: + temp_sous_calcul_traitement_670 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1568, + start_column=31, + end_line=1568, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_671 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_671 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1563, + start_column=43, + end_line=1563, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_672 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes + except EmptyError: + temp_sous_calcul_traitement_672 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1570, + start_column=15, + end_line=1570, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_673 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_673 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1566, + start_column=29, + end_line=1566, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_674 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_674 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1564, + start_column=41, + end_line=1564, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_675 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_675 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1567, + start_column=46, + end_line=1567, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_676 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_676 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1565, + start_column=20, + end_line=1565, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_677 = location_5.logement_est_chambre + except EmptyError: + temp_sous_calcul_traitement_677 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1571, + start_column=36, + end_line=1571, + end_column=65, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_678 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers + except EmptyError: + temp_sous_calcul_traitement_678 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1574, + start_column=15, + end_line=1574, + end_column=80, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_679 = type_aide_3 + except EmptyError: + temp_sous_calcul_traitement_679 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1575, + start_column=25, + end_line=1575, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_680 = location_5.colocation + except EmptyError: + temp_sous_calcul_traitement_680 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1572, + start_column=26, + end_line=1572, + end_column=45, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + match_arg_687 = location_5.bailleur + if match_arg_687.code == TypeBailleur_Code.BailleurSocial: + bailleur_17 = match_arg_687.value + temp_sous_calcul_traitement_681 = bailleur_17.reduction_loyer_solidarite_percue + elif match_arg_687.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + _ = match_arg_687.value + temp_sous_calcul_traitement_681 = money_of_cents_string("0") + elif match_arg_687.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_687.value + temp_sous_calcul_traitement_681 = money_of_cents_string("0") + except EmptyError: + temp_sous_calcul_traitement_681 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1577, + start_column=16, + end_line=1580, + end_column=39, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_682 = location_5.logement_meuble_d842_2 + except EmptyError: + temp_sous_calcul_traitement_682 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1581, + start_column=38, + end_line=1581, + end_column=69, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_683 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_683 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1562, + start_column=25, + end_line=1562, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_684 = location_5.changement_logement_d842_4 + except EmptyError: + temp_sous_calcul_traitement_684 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1582, + start_column=42, + end_line=1582, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( + CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_639, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_640, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_641, + date_courante_in = temp_sous_calcul_traitement_642, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_643, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_644, + zone_in = temp_sous_calcul_traitement_645, + logement_est_chambre_in = temp_sous_calcul_traitement_646, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_647, + type_aide_in = temp_sous_calcul_traitement_648, + colocation_in = temp_sous_calcul_traitement_649, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_650, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_651, + residence_in = temp_sous_calcul_traitement_652, + changement_logement_d842_4_in = temp_sous_calcul_traitement_653)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_623).aide_finale_formule, + traitement_aide_finale = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( + CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_670, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_671, + beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_672, + date_courante_in = temp_sous_calcul_traitement_673, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_674, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_675, + zone_in = temp_sous_calcul_traitement_676, + logement_est_chambre_in = temp_sous_calcul_traitement_677, + agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_678, + type_aide_in = temp_sous_calcul_traitement_679, + colocation_in = temp_sous_calcul_traitement_680, + reduction_loyer_solidarite_in = temp_sous_calcul_traitement_681, + logement_meuble_d842_2_in = temp_sous_calcul_traitement_682, + residence_in = temp_sous_calcul_traitement_683, + changement_logement_d842_4_in = temp_sous_calcul_traitement_684)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_654).traitement_aide_finale) + elif match_arg_683.code == CategorieCalculAPL_Code.AccessionPropriete: + proprietaire_5 = match_arg_683.value + def temp_sous_calcul_traitement_685(param0_10:Money): + try: + temp_sous_calcul_traitement_686 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_686 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_687 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_687 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_688 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_688 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_689 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_689 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_690 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_690 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_691 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_691 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_692 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_692 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_693 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_693 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_694 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_694 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_695 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_695 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_696 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_696 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_697 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_697 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_698 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_698 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_699 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_699 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_700 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_700 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_686, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_687, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_688, + zone_in = temp_sous_calcul_traitement_689, + residence_in = temp_sous_calcul_traitement_690, + date_courante_in = temp_sous_calcul_traitement_691, + mensualite_principale_in = temp_sous_calcul_traitement_692, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_693, + date_signature_pret_in = temp_sous_calcul_traitement_694, + type_travaux_logement_in = temp_sous_calcul_traitement_695, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_696, + date_entree_logement_in = temp_sous_calcul_traitement_697, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_698, + copropriete_in = temp_sous_calcul_traitement_699, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_700)).traitement_aide_finale( + param0_10) + try: + temp_sous_calcul_traitement_701 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_701 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_702 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_702 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_703 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_703 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_704 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_704 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_705 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_705 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_706 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_706 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_707 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_707 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_708 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_708 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_709 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_709 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_710 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_710 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_711 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_711 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_712 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_712 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_713 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_713 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_714 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_714 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_715 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_715 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_716 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_716 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_717 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_717 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_718 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_718 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_719 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_719 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_720 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_720 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_721 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_721 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_722 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_722 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_723 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_723 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_724 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_724 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_725 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_725 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_726 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_726 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_727 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_727 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_728 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_728 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_729 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_729 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_730 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_730 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_731 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_731 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_732 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_732 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_733 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_733 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_734 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_734 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_735 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_735 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_736 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_736 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_737 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_737 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_738 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_738 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_739 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_739 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_740 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_740 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_741 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_741 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_742 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_742 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_743 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_743 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_744 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_744 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_745 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_745 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_746 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_746 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_747 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_747 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_748 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_748 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_749 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_749 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_750 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_750 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_751 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_751 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_752 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_752 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_753 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_753 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_754 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_754 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_755 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_755 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_756 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_756 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_757 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_757 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_758 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_758 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_759 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_759 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_760 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_760 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_761(param0_11:Money): + try: + temp_sous_calcul_traitement_762 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_762 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_763 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_763 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_764 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_764 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_765 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_765 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_766 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_766 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_767 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_767 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_768 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_768 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_769 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_769 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_770 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_770 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_771 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_771 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_772 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_772 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_773 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_773 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_774 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_774 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_775 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_775 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_776 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_776 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_762, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_763, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_764, + zone_in = temp_sous_calcul_traitement_765, + residence_in = temp_sous_calcul_traitement_766, + date_courante_in = temp_sous_calcul_traitement_767, + mensualite_principale_in = temp_sous_calcul_traitement_768, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_769, + date_signature_pret_in = temp_sous_calcul_traitement_770, + type_travaux_logement_in = temp_sous_calcul_traitement_771, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_772, + date_entree_logement_in = temp_sous_calcul_traitement_773, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_774, + copropriete_in = temp_sous_calcul_traitement_775, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_776)).traitement_aide_finale( + param0_11) + try: + temp_sous_calcul_traitement_777 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_777 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_778 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_778 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_779 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_779 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_780 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_780 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_781 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_781 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_782 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_782 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_783 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_783 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_784 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_784 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_785 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_785 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_786 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_786 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_787 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_787 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_788 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_788 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_789 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_789 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_790 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_790 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_791 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_791 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_792 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_792 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_793 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_793 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_794 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_794 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_795 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_795 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_796 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_796 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_797 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_797 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_798 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_798 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_799 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_799 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_800 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_800 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_801 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_801 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_802 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_802 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_803 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_803 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_804 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_804 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_805 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_805 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_806 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_806 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_807 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_807 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_808 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_808 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_809 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_809 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_810 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_810 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_811 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_811 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_812 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_812 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_813 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_813 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_814 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_814 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_815 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_815 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_816 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_816 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_817 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_817 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_818 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_818 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_819 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_819 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_820 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_820 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_821 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_821 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_822 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_822 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1617, + start_column=44, + end_line=1617, + end_column=61, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_823 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_823 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1618, + start_column=42, + end_line=1618, + end_column=67, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_824 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_824 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1625, + start_column=47, + end_line=1625, + end_column=77, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_825 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_825 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1619, + start_column=21, + end_line=1619, + end_column=25, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_826 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_826 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1620, + start_column=26, + end_line=1620, + end_column=35, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_827 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_827 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1624, + start_column=30, + end_line=1624, + end_column=43, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_828 = proprietaire_5.mensualite_principale + except EmptyError: + temp_sous_calcul_traitement_828 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1626, + start_column=38, + end_line=1626, + end_column=72, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_829 = proprietaire_5.situation_r822_11_13_17 + except EmptyError: + temp_sous_calcul_traitement_829 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1634, + start_column=40, + end_line=1634, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_830 = proprietaire_5.pret.date_signature + except EmptyError: + temp_sous_calcul_traitement_830 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1629, + start_column=36, + end_line=1629, + end_column=68, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_831 = proprietaire_5.type_travaux_logement_r842_5 + except EmptyError: + temp_sous_calcul_traitement_831 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1628, + start_column=38, + end_line=1628, + end_column=79, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_832 = proprietaire_5.local_habite_premiere_fois_beneficiaire + except EmptyError: + temp_sous_calcul_traitement_832 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1631, + start_column=14, + end_line=1631, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_833 = proprietaire_5.date_entree_logement + except EmptyError: + temp_sous_calcul_traitement_833 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1632, + start_column=37, + end_line=1632, + end_column=70, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_834 = proprietaire_5.charges_mensuelles_pret + except EmptyError: + temp_sous_calcul_traitement_834 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1627, + start_column=40, + end_line=1627, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_835 = proprietaire_5.copropriete + except EmptyError: + temp_sous_calcul_traitement_835 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1633, + start_column=28, + end_line=1633, + end_column=52, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_836 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + except EmptyError: + temp_sous_calcul_traitement_836 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1622, + start_column=11, + end_line=1623, + end_column=81, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementAccessionPropriete(mensualite_eligible = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_746, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_747, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_748, + zone_in = temp_sous_calcul_traitement_749, + residence_in = temp_sous_calcul_traitement_750, + date_courante_in = temp_sous_calcul_traitement_751, + mensualite_principale_in = temp_sous_calcul_traitement_752, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_753, + date_signature_pret_in = temp_sous_calcul_traitement_754, + type_travaux_logement_in = temp_sous_calcul_traitement_755, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_756, + date_entree_logement_in = temp_sous_calcul_traitement_757, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_758, + copropriete_in = temp_sous_calcul_traitement_759, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_760)).mensualite_eligible, + mensualite_minimale = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_731, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_732, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_733, + zone_in = temp_sous_calcul_traitement_734, + residence_in = temp_sous_calcul_traitement_735, + date_courante_in = temp_sous_calcul_traitement_736, + mensualite_principale_in = temp_sous_calcul_traitement_737, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_738, + date_signature_pret_in = temp_sous_calcul_traitement_739, + type_travaux_logement_in = temp_sous_calcul_traitement_740, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_741, + date_entree_logement_in = temp_sous_calcul_traitement_742, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_743, + copropriete_in = temp_sous_calcul_traitement_744, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_745)).mensualite_minimale, + coefficient_prise_en_charge = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_716, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_717, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_718, + zone_in = temp_sous_calcul_traitement_719, + residence_in = temp_sous_calcul_traitement_720, + date_courante_in = temp_sous_calcul_traitement_721, + mensualite_principale_in = temp_sous_calcul_traitement_722, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_723, + date_signature_pret_in = temp_sous_calcul_traitement_724, + type_travaux_logement_in = temp_sous_calcul_traitement_725, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_726, + date_entree_logement_in = temp_sous_calcul_traitement_727, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_728, + copropriete_in = temp_sous_calcul_traitement_729, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_730)).coefficient_prise_en_charge, + aide_finale_formule = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_701, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_702, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_703, + zone_in = temp_sous_calcul_traitement_704, + residence_in = temp_sous_calcul_traitement_705, + date_courante_in = temp_sous_calcul_traitement_706, + mensualite_principale_in = temp_sous_calcul_traitement_707, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_708, + date_signature_pret_in = temp_sous_calcul_traitement_709, + type_travaux_logement_in = temp_sous_calcul_traitement_710, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_711, + date_entree_logement_in = temp_sous_calcul_traitement_712, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_713, + copropriete_in = temp_sous_calcul_traitement_714, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_715)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_685).aide_finale_formule, + traitement_aide_finale = CalculAllocationLogementAccessionPropriete(mensualite_eligible = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_822, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_823, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_824, + zone_in = temp_sous_calcul_traitement_825, + residence_in = temp_sous_calcul_traitement_826, + date_courante_in = temp_sous_calcul_traitement_827, + mensualite_principale_in = temp_sous_calcul_traitement_828, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_829, + date_signature_pret_in = temp_sous_calcul_traitement_830, + type_travaux_logement_in = temp_sous_calcul_traitement_831, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_832, + date_entree_logement_in = temp_sous_calcul_traitement_833, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_834, + copropriete_in = temp_sous_calcul_traitement_835, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_836)).mensualite_eligible, + mensualite_minimale = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_807, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_808, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_809, + zone_in = temp_sous_calcul_traitement_810, + residence_in = temp_sous_calcul_traitement_811, + date_courante_in = temp_sous_calcul_traitement_812, + mensualite_principale_in = temp_sous_calcul_traitement_813, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_814, + date_signature_pret_in = temp_sous_calcul_traitement_815, + type_travaux_logement_in = temp_sous_calcul_traitement_816, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_817, + date_entree_logement_in = temp_sous_calcul_traitement_818, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_819, + copropriete_in = temp_sous_calcul_traitement_820, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_821)).mensualite_minimale, + coefficient_prise_en_charge = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_792, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_793, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_794, + zone_in = temp_sous_calcul_traitement_795, + residence_in = temp_sous_calcul_traitement_796, + date_courante_in = temp_sous_calcul_traitement_797, + mensualite_principale_in = temp_sous_calcul_traitement_798, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_799, + date_signature_pret_in = temp_sous_calcul_traitement_800, + type_travaux_logement_in = temp_sous_calcul_traitement_801, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_802, + date_entree_logement_in = temp_sous_calcul_traitement_803, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_804, + copropriete_in = temp_sous_calcul_traitement_805, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_806)).coefficient_prise_en_charge, + aide_finale_formule = calcul_allocation_logement_accession_propriete( + CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_777, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_778, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_779, + zone_in = temp_sous_calcul_traitement_780, + residence_in = temp_sous_calcul_traitement_781, + date_courante_in = temp_sous_calcul_traitement_782, + mensualite_principale_in = temp_sous_calcul_traitement_783, + situation_r822_11_13_17_in = temp_sous_calcul_traitement_784, + date_signature_pret_in = temp_sous_calcul_traitement_785, + type_travaux_logement_in = temp_sous_calcul_traitement_786, + local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_787, + date_entree_logement_in = temp_sous_calcul_traitement_788, + charges_mensuelles_pret_in = temp_sous_calcul_traitement_789, + copropriete_in = temp_sous_calcul_traitement_790, + operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_791)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_761).traitement_aide_finale) + elif match_arg_683.code == CategorieCalculAPL_Code.LogementFoyer: + logement_foyer__2 = match_arg_683.value + def temp_sous_calcul_traitement_837(param0_12:Money): + try: + temp_sous_calcul_traitement_838 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_838 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1580, - start_column=42, - end_line=1580, - end_column=77, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36703,175 +36794,170 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_824, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_825, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_826, - date_courante_in = temp_sous_calcul_traitement_827, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_828, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_829, - zone_in = temp_sous_calcul_traitement_830, - logement_est_chambre_in = temp_sous_calcul_traitement_831, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_832, - type_aide_in = temp_sous_calcul_traitement_833, - colocation_in = temp_sous_calcul_traitement_834, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_835, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_836, - residence_in = temp_sous_calcul_traitement_837, - changement_logement_d842_4_in = temp_sous_calcul_traitement_838)).traitement_aide_finale( - param0_10) + try: + temp_sous_calcul_traitement_839 = logement_foyer__2.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_839 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_840 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_840 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_841 = logement_foyer__2.redevance + except EmptyError: + temp_sous_calcul_traitement_841 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_842 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_842 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_843 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_843 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_844 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_844 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_845 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_845 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_846 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_846 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_847 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_847 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_foyer(CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_838, + date_conventionnement_in = temp_sous_calcul_traitement_839, + residence_in = temp_sous_calcul_traitement_840, + redevance_in = temp_sous_calcul_traitement_841, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_842, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_843, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_844, + zone_in = temp_sous_calcul_traitement_845, + date_courante_in = temp_sous_calcul_traitement_846, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_847)).traitement_aide_finale( + param0_12) try: - temp_sous_calcul_traitement_839 = location_5.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_839 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, - start_column=31, - end_line=1566, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_840 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_840 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, - start_column=43, - end_line=1561, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_841 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_841 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, - start_column=15, - end_line=1568, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_842 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_842 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, - start_column=29, - end_line=1564, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_843 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_843 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, - start_column=41, - end_line=1562, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_844 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_844 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1565, - start_column=46, - end_line=1565, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_845 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_845 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, - start_column=20, - end_line=1563, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_846 = location_5.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_846 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1569, - start_column=36, - end_line=1569, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_847 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_847 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1572, - start_column=15, - end_line=1572, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_848 = type_aide_3 + temp_sous_calcul_traitement_848 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_848 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, - start_column=25, - end_line=1573, - end_column=34, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36880,14 +36966,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_849 = location_5.colocation + temp_sous_calcul_traitement_849 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_849 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, - start_column=26, - end_line=1570, - end_column=45, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36896,23 +36982,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_684 = location_5.bailleur - if match_arg_684.code == TypeBailleur_Code.BailleurSocial: - bailleur_15 = match_arg_684.value - temp_sous_calcul_traitement_850 = bailleur_15.reduction_loyer_solidarite_percue - elif match_arg_684.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_684.value - temp_sous_calcul_traitement_850 = money_of_cents_string("0") - elif match_arg_684.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_684.value - temp_sous_calcul_traitement_850 = money_of_cents_string("0") + temp_sous_calcul_traitement_850 = residence_9 except EmptyError: temp_sous_calcul_traitement_850 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1575, - start_column=16, - end_line=1578, - end_column=39, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36921,14 +36998,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_851 = location_5.logement_meuble_d842_2 + temp_sous_calcul_traitement_851 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_851 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1579, - start_column=38, - end_line=1579, - end_column=69, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36937,14 +37014,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_852 = residence_9 + temp_sous_calcul_traitement_852 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_852 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, - start_column=25, - end_line=1560, - end_column=34, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36953,14 +37030,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_853 = location_5.changement_logement_d842_4 + temp_sous_calcul_traitement_853 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_853 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1580, - start_column=42, - end_line=1580, - end_column=77, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -36968,281 +37045,271 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_854(param0_11:Money): - try: - temp_sous_calcul_traitement_855 = location_5.loyer_principal - except EmptyError: - temp_sous_calcul_traitement_855 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, - start_column=31, - end_line=1566, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_856 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_856 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, - start_column=43, - end_line=1561, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_857 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes - except EmptyError: - temp_sous_calcul_traitement_857 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, - start_column=15, - end_line=1568, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_858 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_858 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, - start_column=29, - end_line=1564, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_859 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_859 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, - start_column=41, - end_line=1562, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_860 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_860 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1565, - start_column=46, - end_line=1565, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_861 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_861 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, - start_column=20, - end_line=1563, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_862 = location_5.logement_est_chambre - except EmptyError: - temp_sous_calcul_traitement_862 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1569, - start_column=36, - end_line=1569, - end_column=65, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_863 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers - except EmptyError: - temp_sous_calcul_traitement_863 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1572, - start_column=15, - end_line=1572, - end_column=80, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_864 = type_aide_3 - except EmptyError: - temp_sous_calcul_traitement_864 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, - start_column=25, - end_line=1573, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_865 = location_5.colocation - except EmptyError: - temp_sous_calcul_traitement_865 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, - start_column=26, - end_line=1570, - end_column=45, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - match_arg_685 = location_5.bailleur - if match_arg_685.code == TypeBailleur_Code.BailleurSocial: - bailleur_16 = match_arg_685.value - temp_sous_calcul_traitement_866 = bailleur_16.reduction_loyer_solidarite_percue - elif match_arg_685.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_685.value - temp_sous_calcul_traitement_866 = money_of_cents_string("0") - elif match_arg_685.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_685.value - temp_sous_calcul_traitement_866 = money_of_cents_string("0") - except EmptyError: - temp_sous_calcul_traitement_866 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1575, - start_column=16, - end_line=1578, - end_column=39, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_867 = location_5.logement_meuble_d842_2 - except EmptyError: - temp_sous_calcul_traitement_867 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1579, - start_column=38, - end_line=1579, - end_column=69, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_868 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_868 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, - start_column=25, - end_line=1560, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_869 = location_5.changement_logement_d842_4 - except EmptyError: - temp_sous_calcul_traitement_869 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1580, - start_column=42, - end_line=1580, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_locatif(CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_855, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_856, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_857, - date_courante_in = temp_sous_calcul_traitement_858, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_859, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_860, - zone_in = temp_sous_calcul_traitement_861, - logement_est_chambre_in = temp_sous_calcul_traitement_862, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_863, - type_aide_in = temp_sous_calcul_traitement_864, - colocation_in = temp_sous_calcul_traitement_865, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_866, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_867, - residence_in = temp_sous_calcul_traitement_868, - changement_logement_d842_4_in = temp_sous_calcul_traitement_869)).traitement_aide_finale( - param0_11) try: - temp_sous_calcul_traitement_870 = location_5.loyer_principal + temp_sous_calcul_traitement_854 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_854 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_855 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_855 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_856 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_856 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_857 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_857 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_858 = logement_foyer__2.type + except EmptyError: + temp_sous_calcul_traitement_858 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_859 = logement_foyer__2.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_859 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_860 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_860 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_861 = logement_foyer__2.redevance + except EmptyError: + temp_sous_calcul_traitement_861 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_862 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_862 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_863 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_863 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_864 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_864 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_865 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_865 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_866 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_866 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_867 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_867 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_868 = logement_foyer__2.type + except EmptyError: + temp_sous_calcul_traitement_868 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_869 = logement_foyer__2.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_869 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_870 = residence_9 except EmptyError: temp_sous_calcul_traitement_870 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1566, - start_column=31, - end_line=1566, - end_column=55, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37251,14 +37318,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_871 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_871 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_871 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1561, - start_column=43, - end_line=1561, - end_column=60, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37267,14 +37334,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_872 = location_5.beneficiaire_aide_adulte_ou_enfant_handicapes + temp_sous_calcul_traitement_872 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_872 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1568, - start_column=15, - end_line=1568, - end_column=69, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37283,14 +37350,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_873 = date_courante_16 + temp_sous_calcul_traitement_873 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_873 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1564, - start_column=29, - end_line=1564, - end_column=42, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37299,14 +37366,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_874 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_874 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_874 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1562, - start_column=41, - end_line=1562, - end_column=66, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37315,14 +37382,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_875 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_875 = zone_7 except EmptyError: temp_sous_calcul_traitement_875 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1565, - start_column=46, - end_line=1565, - end_column=76, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37331,14 +37398,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_876 = zone_7 + temp_sous_calcul_traitement_876 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_876 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1563, - start_column=20, - end_line=1563, - end_column=24, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37347,14 +37414,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_877 = location_5.logement_est_chambre + temp_sous_calcul_traitement_877 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_877 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1569, - start_column=36, - end_line=1569, - end_column=65, + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37363,14 +37430,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_878 = location_5.agees_ou_handicap_adultes_hebergees_onereux_particuliers + temp_sous_calcul_traitement_878 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_878 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1572, - start_column=15, - end_line=1572, - end_column=80, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37379,14 +37446,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_879 = type_aide_3 + temp_sous_calcul_traitement_879 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_879 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1573, - start_column=25, - end_line=1573, - end_column=34, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37395,14 +37462,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_880 = location_5.colocation + temp_sous_calcul_traitement_880 = residence_9 except EmptyError: temp_sous_calcul_traitement_880 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1570, - start_column=26, - end_line=1570, - end_column=45, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37411,23 +37478,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - match_arg_686 = location_5.bailleur - if match_arg_686.code == TypeBailleur_Code.BailleurSocial: - bailleur_17 = match_arg_686.value - temp_sous_calcul_traitement_881 = bailleur_17.reduction_loyer_solidarite_percue - elif match_arg_686.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - _ = match_arg_686.value - temp_sous_calcul_traitement_881 = money_of_cents_string("0") - elif match_arg_686.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_686.value - temp_sous_calcul_traitement_881 = money_of_cents_string("0") + temp_sous_calcul_traitement_881 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_881 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1575, - start_column=16, - end_line=1578, - end_column=39, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37436,14 +37494,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_882 = location_5.logement_meuble_d842_2 + temp_sous_calcul_traitement_882 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_882 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1579, - start_column=38, - end_line=1579, - end_column=69, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37452,14 +37510,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_883 = residence_9 + temp_sous_calcul_traitement_883 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_883 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1560, - start_column=25, - end_line=1560, - end_column=34, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37468,14 +37526,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_884 = location_5.changement_logement_d842_4 + temp_sous_calcul_traitement_884 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_884 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1580, - start_column=42, - end_line=1580, - end_column=77, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37483,260 +37541,224 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( - CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_839, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_840, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_841, - date_courante_in = temp_sous_calcul_traitement_842, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_843, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_844, - zone_in = temp_sous_calcul_traitement_845, - logement_est_chambre_in = temp_sous_calcul_traitement_846, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_847, - type_aide_in = temp_sous_calcul_traitement_848, - colocation_in = temp_sous_calcul_traitement_849, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_850, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_851, - residence_in = temp_sous_calcul_traitement_852, - changement_logement_d842_4_in = temp_sous_calcul_traitement_853)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_823).aide_finale_formule, - traitement_aide_finale = CalculAllocationLogementLocatif(aide_finale_formule = calcul_allocation_logement_locatif( - CalculAllocationLogementLocatifIn(loyer_principal_in = temp_sous_calcul_traitement_870, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_871, - beneficiaire_aide_adulte_ou_enfant_handicapes_in = temp_sous_calcul_traitement_872, - date_courante_in = temp_sous_calcul_traitement_873, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_874, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_875, - zone_in = temp_sous_calcul_traitement_876, - logement_est_chambre_in = temp_sous_calcul_traitement_877, - agees_ou_handicap_adultes_hebergees_onereux_particuliers_in = temp_sous_calcul_traitement_878, - type_aide_in = temp_sous_calcul_traitement_879, - colocation_in = temp_sous_calcul_traitement_880, - reduction_loyer_solidarite_in = temp_sous_calcul_traitement_881, - logement_meuble_d842_2_in = temp_sous_calcul_traitement_882, - residence_in = temp_sous_calcul_traitement_883, - changement_logement_d842_4_in = temp_sous_calcul_traitement_884)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_854).traitement_aide_finale) - elif match_arg_682.code == CategorieCalculAPL_Code.AccessionPropriete: - proprietaire_5 = match_arg_682.value - def temp_sous_calcul_traitement_885(param0_12:Money): + try: + temp_sous_calcul_traitement_885 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_885 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_886 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_886 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_887 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_887 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_888 = logement_foyer__2.type + except EmptyError: + temp_sous_calcul_traitement_888 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_889 = logement_foyer__2.date_conventionnement + except EmptyError: + temp_sous_calcul_traitement_889 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_890 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_890 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_891 = logement_foyer__2.redevance + except EmptyError: + temp_sous_calcul_traitement_891 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_892 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_892 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_893 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_893 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_894 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_894 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_895 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_895 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_896 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_896 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_897 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_897 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + def temp_sous_calcul_traitement_898(param0_13:Money): try: - temp_sous_calcul_traitement_886 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_886 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_887 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_887 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_888 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_888 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_889 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_889 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_890 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_890 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_891 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_891 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_892 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_892 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_893 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_893 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_894 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_894 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_895 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_895 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_896 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_896 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_897 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_897 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_898 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_898 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_899 = proprietaire_5.copropriete + temp_sous_calcul_traitement_899 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_899 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37745,14 +37767,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_900 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + temp_sous_calcul_traitement_900 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_900 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37760,160 +37782,154 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_886, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_887, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_888, - zone_in = temp_sous_calcul_traitement_889, - residence_in = temp_sous_calcul_traitement_890, - date_courante_in = temp_sous_calcul_traitement_891, - mensualite_principale_in = temp_sous_calcul_traitement_892, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_893, - date_signature_pret_in = temp_sous_calcul_traitement_894, - type_travaux_logement_in = temp_sous_calcul_traitement_895, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_896, - date_entree_logement_in = temp_sous_calcul_traitement_897, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_898, - copropriete_in = temp_sous_calcul_traitement_899, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_900)).traitement_aide_finale( - param0_12) + try: + temp_sous_calcul_traitement_901 = residence_9 + except EmptyError: + temp_sous_calcul_traitement_901 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_902 = logement_foyer__2.redevance + except EmptyError: + temp_sous_calcul_traitement_902 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_903 = ressources_menage_avec_arrondi_1 + except EmptyError: + temp_sous_calcul_traitement_903 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_904 = nombre_personnes_a_charge_12 + except EmptyError: + temp_sous_calcul_traitement_904 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_905 = situation_familiale_calcul_apl_9 + except EmptyError: + temp_sous_calcul_traitement_905 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_906 = zone_7 + except EmptyError: + temp_sous_calcul_traitement_906 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_907 = date_courante_16 + except EmptyError: + temp_sous_calcul_traitement_907 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + try: + temp_sous_calcul_traitement_908 = logement_foyer__2.categorie_equivalence_loyer_d842_16 + except EmptyError: + temp_sous_calcul_traitement_908 = dead_value + raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, + law_headings=["Article D823-9", + "Section 1 : Calcul, liquidation et versement des aides", + "Chapitre III : Modalités de liquidation et de versement", + "Titre II : Dispositions communes aux aides personnelles au logement", + "Livre VIII : Aides personnelles au logement", + "Partie réglementaire", + "Code de la construction et de l'habitation"])) + return calcul_allocation_logement_foyer(CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_899, + date_conventionnement_in = temp_sous_calcul_traitement_900, + residence_in = temp_sous_calcul_traitement_901, + redevance_in = temp_sous_calcul_traitement_902, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_903, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_904, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_905, + zone_in = temp_sous_calcul_traitement_906, + date_courante_in = temp_sous_calcul_traitement_907, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_908)).traitement_aide_finale( + param0_13) try: - temp_sous_calcul_traitement_901 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_901 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_902 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_902 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_903 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_903 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_904 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_904 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_905 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_905 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_906 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_906 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_907 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_907 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_908 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_908 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_909 = proprietaire_5.pret.date_signature + temp_sous_calcul_traitement_909 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_909 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37922,14 +37938,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_910 = proprietaire_5.type_travaux_logement_r842_5 + temp_sous_calcul_traitement_910 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_910 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37938,14 +37954,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_911 = proprietaire_5.local_habite_premiere_fois_beneficiaire + temp_sous_calcul_traitement_911 = residence_9 except EmptyError: temp_sous_calcul_traitement_911 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37954,14 +37970,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_912 = proprietaire_5.date_entree_logement + temp_sous_calcul_traitement_912 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_912 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37970,14 +37986,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_913 = proprietaire_5.charges_mensuelles_pret + temp_sous_calcul_traitement_913 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_913 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -37986,14 +38002,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_914 = proprietaire_5.copropriete + temp_sous_calcul_traitement_914 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_914 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38002,14 +38018,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_915 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + temp_sous_calcul_traitement_915 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_915 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38018,14 +38034,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_916 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_916 = zone_7 except EmptyError: temp_sous_calcul_traitement_916 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38034,14 +38050,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_917 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_917 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_917 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38050,14 +38066,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_918 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_918 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_918 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38066,14 +38082,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_919 = zone_7 + temp_sous_calcul_traitement_919 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_919 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38082,14 +38098,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_920 = residence_9 + temp_sous_calcul_traitement_920 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_920 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38098,14 +38114,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_921 = date_courante_16 + temp_sous_calcul_traitement_921 = residence_9 except EmptyError: temp_sous_calcul_traitement_921 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38114,14 +38130,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_922 = proprietaire_5.mensualite_principale + temp_sous_calcul_traitement_922 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_922 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38130,14 +38146,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_923 = proprietaire_5.situation_r822_11_13_17 + temp_sous_calcul_traitement_923 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_923 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38146,14 +38162,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_924 = proprietaire_5.pret.date_signature + temp_sous_calcul_traitement_924 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_924 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38162,14 +38178,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_925 = proprietaire_5.type_travaux_logement_r842_5 + temp_sous_calcul_traitement_925 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_925 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38178,14 +38194,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_926 = proprietaire_5.local_habite_premiere_fois_beneficiaire + temp_sous_calcul_traitement_926 = zone_7 except EmptyError: temp_sous_calcul_traitement_926 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38194,14 +38210,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_927 = proprietaire_5.date_entree_logement + temp_sous_calcul_traitement_927 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_927 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38210,14 +38226,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_928 = proprietaire_5.charges_mensuelles_pret + temp_sous_calcul_traitement_928 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_928 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38226,14 +38242,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_929 = proprietaire_5.copropriete + temp_sous_calcul_traitement_929 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_929 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38242,14 +38258,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_930 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + temp_sous_calcul_traitement_930 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_930 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38258,14 +38274,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_931 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_931 = residence_9 except EmptyError: temp_sous_calcul_traitement_931 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38274,14 +38290,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_932 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_932 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_932 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38290,14 +38306,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_933 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_933 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_933 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38306,14 +38322,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_934 = zone_7 + temp_sous_calcul_traitement_934 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_934 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38322,14 +38338,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_935 = residence_9 + temp_sous_calcul_traitement_935 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_935 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38338,14 +38354,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_936 = date_courante_16 + temp_sous_calcul_traitement_936 = zone_7 except EmptyError: temp_sous_calcul_traitement_936 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38354,14 +38370,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_937 = proprietaire_5.mensualite_principale + temp_sous_calcul_traitement_937 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_937 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38370,14 +38386,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_938 = proprietaire_5.situation_r822_11_13_17 + temp_sous_calcul_traitement_938 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_938 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38386,14 +38402,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_939 = proprietaire_5.pret.date_signature + temp_sous_calcul_traitement_939 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_939 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38402,14 +38418,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_940 = proprietaire_5.type_travaux_logement_r842_5 + temp_sous_calcul_traitement_940 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_940 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38418,14 +38434,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_941 = proprietaire_5.local_habite_premiere_fois_beneficiaire + temp_sous_calcul_traitement_941 = residence_9 except EmptyError: temp_sous_calcul_traitement_941 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38434,14 +38450,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_942 = proprietaire_5.date_entree_logement + temp_sous_calcul_traitement_942 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_942 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38450,14 +38466,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_943 = proprietaire_5.charges_mensuelles_pret + temp_sous_calcul_traitement_943 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_943 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38466,14 +38482,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_944 = proprietaire_5.copropriete + temp_sous_calcul_traitement_944 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_944 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38482,14 +38498,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_945 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat + temp_sous_calcul_traitement_945 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_945 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38498,14 +38514,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_946 = ressources_menage_avec_arrondi_1 + temp_sous_calcul_traitement_946 = zone_7 except EmptyError: temp_sous_calcul_traitement_946 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38514,14 +38530,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_947 = nombre_personnes_a_charge_12 + temp_sous_calcul_traitement_947 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_947 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38530,14 +38546,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_948 = situation_familiale_calcul_apl_9 + temp_sous_calcul_traitement_948 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_948 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, + start_line=1603, + start_column=13, + end_line=1603, + end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38546,14 +38562,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_949 = zone_7 + temp_sous_calcul_traitement_949 = logement_foyer__2.type except EmptyError: temp_sous_calcul_traitement_949 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, + start_line=1604, + start_column=35, + end_line=1604, + end_column=55, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38562,14 +38578,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_950 = residence_9 + temp_sous_calcul_traitement_950 = logement_foyer__2.date_conventionnement except EmptyError: temp_sous_calcul_traitement_950 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, + start_line=1605, + start_column=37, + end_line=1605, + end_column=74, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38578,14 +38594,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_951 = date_courante_16 + temp_sous_calcul_traitement_951 = residence_9 except EmptyError: temp_sous_calcul_traitement_951 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, + start_line=1597, + start_column=25, + end_line=1597, + end_column=34, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38594,14 +38610,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_952 = proprietaire_5.mensualite_principale + temp_sous_calcul_traitement_952 = logement_foyer__2.redevance except EmptyError: temp_sous_calcul_traitement_952 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, + start_line=1601, + start_column=25, + end_line=1601, + end_column=50, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38610,14 +38626,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_953 = proprietaire_5.situation_r822_11_13_17 + temp_sous_calcul_traitement_953 = ressources_menage_avec_arrondi_1 except EmptyError: temp_sous_calcul_traitement_953 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, + start_line=1595, + start_column=43, + end_line=1595, + end_column=60, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38626,14 +38642,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_954 = proprietaire_5.pret.date_signature + temp_sous_calcul_traitement_954 = nombre_personnes_a_charge_12 except EmptyError: temp_sous_calcul_traitement_954 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, + start_line=1596, + start_column=41, + end_line=1596, + end_column=66, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38642,14 +38658,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_955 = proprietaire_5.type_travaux_logement_r842_5 + temp_sous_calcul_traitement_955 = situation_familiale_calcul_apl_9 except EmptyError: temp_sous_calcul_traitement_955 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, + start_line=1600, + start_column=46, + end_line=1600, + end_column=76, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38658,14 +38674,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_956 = proprietaire_5.local_habite_premiere_fois_beneficiaire + temp_sous_calcul_traitement_956 = zone_7 except EmptyError: temp_sous_calcul_traitement_956 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, + start_line=1598, + start_column=20, + end_line=1598, + end_column=24, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38674,14 +38690,14 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_957 = proprietaire_5.date_entree_logement + temp_sous_calcul_traitement_957 = date_courante_16 except EmptyError: temp_sous_calcul_traitement_957 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, + start_line=1599, + start_column=29, + end_line=1599, + end_column=42, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", "Chapitre III : Modalités de liquidation et de versement", @@ -38690,1727 +38706,13 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Partie réglementaire", "Code de la construction et de l'habitation"])) try: - temp_sous_calcul_traitement_958 = proprietaire_5.charges_mensuelles_pret + temp_sous_calcul_traitement_958 = logement_foyer__2.categorie_equivalence_loyer_d842_16 except EmptyError: temp_sous_calcul_traitement_958 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_959 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_959 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_960 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_960 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_961(param0_13:Money): - try: - temp_sous_calcul_traitement_962 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_962 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_963 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_963 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_964 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_964 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_965 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_965 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_966 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_966 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_967 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_967 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_968 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_968 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_969 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_969 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_970 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_970 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_971 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_971 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_972 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_972 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_973 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_973 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_974 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_974 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_975 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_975 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_976 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_976 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_962, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_963, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_964, - zone_in = temp_sous_calcul_traitement_965, - residence_in = temp_sous_calcul_traitement_966, - date_courante_in = temp_sous_calcul_traitement_967, - mensualite_principale_in = temp_sous_calcul_traitement_968, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_969, - date_signature_pret_in = temp_sous_calcul_traitement_970, - type_travaux_logement_in = temp_sous_calcul_traitement_971, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_972, - date_entree_logement_in = temp_sous_calcul_traitement_973, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_974, - copropriete_in = temp_sous_calcul_traitement_975, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_976)).traitement_aide_finale( - param0_13) - try: - temp_sous_calcul_traitement_977 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_977 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_978 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_978 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_979 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_979 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_980 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_980 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_981 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_981 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_982 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_982 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_983 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_983 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_984 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_984 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_985 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_985 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_986 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_986 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_987 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_987 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_988 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_988 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_989 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_989 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_990 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_990 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_991 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_991 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_992 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_992 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_993 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_993 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_994 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_994 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_995 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_995 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_996 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_996 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_997 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_997 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_998 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_998 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_999 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_999 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1000 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_1000 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1001 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_1001 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1002 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_1002 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1003 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_1003 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1004 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_1004 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1005 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_1005 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1006 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_1006 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1007 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1007 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1008 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1008 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1009 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1009 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1010 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1010 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1011 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1011 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1012 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1012 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1013 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_1013 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1014 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_1014 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1015 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_1015 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1016 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_1016 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1017 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_1017 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1018 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_1018 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1019 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_1019 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1020 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_1020 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1021 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_1021 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1022 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1022 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1615, - start_column=44, - end_line=1615, - end_column=61, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1023 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1023 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1616, - start_column=42, - end_line=1616, - end_column=67, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1024 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1024 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1623, - start_column=47, - end_line=1623, - end_column=77, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1025 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1025 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1617, - start_column=21, - end_line=1617, - end_column=25, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1026 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1026 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1618, - start_column=26, - end_line=1618, - end_column=35, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1027 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1027 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1622, - start_column=30, - end_line=1622, - end_column=43, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1028 = proprietaire_5.mensualite_principale - except EmptyError: - temp_sous_calcul_traitement_1028 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1624, - start_column=38, - end_line=1624, - end_column=72, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1029 = proprietaire_5.situation_r822_11_13_17 - except EmptyError: - temp_sous_calcul_traitement_1029 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1632, - start_column=40, - end_line=1632, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1030 = proprietaire_5.pret.date_signature - except EmptyError: - temp_sous_calcul_traitement_1030 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1627, - start_column=36, - end_line=1627, - end_column=68, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1031 = proprietaire_5.type_travaux_logement_r842_5 - except EmptyError: - temp_sous_calcul_traitement_1031 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1626, - start_column=38, - end_line=1626, - end_column=79, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1032 = proprietaire_5.local_habite_premiere_fois_beneficiaire - except EmptyError: - temp_sous_calcul_traitement_1032 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1629, - start_column=14, - end_line=1629, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1033 = proprietaire_5.date_entree_logement - except EmptyError: - temp_sous_calcul_traitement_1033 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1630, - start_column=37, - end_line=1630, - end_column=70, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1034 = proprietaire_5.charges_mensuelles_pret - except EmptyError: - temp_sous_calcul_traitement_1034 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1625, - start_column=40, - end_line=1625, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1035 = proprietaire_5.copropriete - except EmptyError: - temp_sous_calcul_traitement_1035 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1631, - start_column=28, - end_line=1631, - end_column=52, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1036 = proprietaire_5.operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat - except EmptyError: - temp_sous_calcul_traitement_1036 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1620, - start_column=11, - end_line=1621, - end_column=81, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementAccessionPropriete(mensualite_eligible = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_946, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_947, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_948, - zone_in = temp_sous_calcul_traitement_949, - residence_in = temp_sous_calcul_traitement_950, - date_courante_in = temp_sous_calcul_traitement_951, - mensualite_principale_in = temp_sous_calcul_traitement_952, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_953, - date_signature_pret_in = temp_sous_calcul_traitement_954, - type_travaux_logement_in = temp_sous_calcul_traitement_955, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_956, - date_entree_logement_in = temp_sous_calcul_traitement_957, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_958, - copropriete_in = temp_sous_calcul_traitement_959, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_960)).mensualite_eligible, - mensualite_minimale = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_931, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_932, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_933, - zone_in = temp_sous_calcul_traitement_934, - residence_in = temp_sous_calcul_traitement_935, - date_courante_in = temp_sous_calcul_traitement_936, - mensualite_principale_in = temp_sous_calcul_traitement_937, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_938, - date_signature_pret_in = temp_sous_calcul_traitement_939, - type_travaux_logement_in = temp_sous_calcul_traitement_940, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_941, - date_entree_logement_in = temp_sous_calcul_traitement_942, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_943, - copropriete_in = temp_sous_calcul_traitement_944, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_945)).mensualite_minimale, - coefficient_prise_en_charge = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_916, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_917, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_918, - zone_in = temp_sous_calcul_traitement_919, - residence_in = temp_sous_calcul_traitement_920, - date_courante_in = temp_sous_calcul_traitement_921, - mensualite_principale_in = temp_sous_calcul_traitement_922, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_923, - date_signature_pret_in = temp_sous_calcul_traitement_924, - type_travaux_logement_in = temp_sous_calcul_traitement_925, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_926, - date_entree_logement_in = temp_sous_calcul_traitement_927, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_928, - copropriete_in = temp_sous_calcul_traitement_929, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_930)).coefficient_prise_en_charge, - aide_finale_formule = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_901, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_902, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_903, - zone_in = temp_sous_calcul_traitement_904, - residence_in = temp_sous_calcul_traitement_905, - date_courante_in = temp_sous_calcul_traitement_906, - mensualite_principale_in = temp_sous_calcul_traitement_907, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_908, - date_signature_pret_in = temp_sous_calcul_traitement_909, - type_travaux_logement_in = temp_sous_calcul_traitement_910, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_911, - date_entree_logement_in = temp_sous_calcul_traitement_912, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_913, - copropriete_in = temp_sous_calcul_traitement_914, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_915)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_885).aide_finale_formule, - traitement_aide_finale = CalculAllocationLogementAccessionPropriete(mensualite_eligible = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_1022, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1023, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1024, - zone_in = temp_sous_calcul_traitement_1025, - residence_in = temp_sous_calcul_traitement_1026, - date_courante_in = temp_sous_calcul_traitement_1027, - mensualite_principale_in = temp_sous_calcul_traitement_1028, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_1029, - date_signature_pret_in = temp_sous_calcul_traitement_1030, - type_travaux_logement_in = temp_sous_calcul_traitement_1031, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_1032, - date_entree_logement_in = temp_sous_calcul_traitement_1033, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_1034, - copropriete_in = temp_sous_calcul_traitement_1035, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_1036)).mensualite_eligible, - mensualite_minimale = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_1007, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1008, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1009, - zone_in = temp_sous_calcul_traitement_1010, - residence_in = temp_sous_calcul_traitement_1011, - date_courante_in = temp_sous_calcul_traitement_1012, - mensualite_principale_in = temp_sous_calcul_traitement_1013, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_1014, - date_signature_pret_in = temp_sous_calcul_traitement_1015, - type_travaux_logement_in = temp_sous_calcul_traitement_1016, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_1017, - date_entree_logement_in = temp_sous_calcul_traitement_1018, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_1019, - copropriete_in = temp_sous_calcul_traitement_1020, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_1021)).mensualite_minimale, - coefficient_prise_en_charge = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_992, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_993, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_994, - zone_in = temp_sous_calcul_traitement_995, - residence_in = temp_sous_calcul_traitement_996, - date_courante_in = temp_sous_calcul_traitement_997, - mensualite_principale_in = temp_sous_calcul_traitement_998, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_999, - date_signature_pret_in = temp_sous_calcul_traitement_1000, - type_travaux_logement_in = temp_sous_calcul_traitement_1001, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_1002, - date_entree_logement_in = temp_sous_calcul_traitement_1003, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_1004, - copropriete_in = temp_sous_calcul_traitement_1005, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_1006)).coefficient_prise_en_charge, - aide_finale_formule = calcul_allocation_logement_accession_propriete( - CalculAllocationLogementAccessionProprieteIn(ressources_menage_arrondies_base_in = temp_sous_calcul_traitement_977, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_978, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_979, - zone_in = temp_sous_calcul_traitement_980, - residence_in = temp_sous_calcul_traitement_981, - date_courante_in = temp_sous_calcul_traitement_982, - mensualite_principale_in = temp_sous_calcul_traitement_983, - situation_r822_11_13_17_in = temp_sous_calcul_traitement_984, - date_signature_pret_in = temp_sous_calcul_traitement_985, - type_travaux_logement_in = temp_sous_calcul_traitement_986, - local_habite_premiere_fois_beneficiaire_in = temp_sous_calcul_traitement_987, - date_entree_logement_in = temp_sous_calcul_traitement_988, - charges_mensuelles_pret_in = temp_sous_calcul_traitement_989, - copropriete_in = temp_sous_calcul_traitement_990, - operations_logement_evolutifs_sociaux_accession_propriete_aidee_Etat_in = temp_sous_calcul_traitement_991)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_961).traitement_aide_finale) - elif match_arg_682.code == CategorieCalculAPL_Code.LogementFoyer: - logement_foyer__3 = match_arg_682.value - def temp_sous_calcul_traitement_1037(param0_14:Money): - try: - temp_sous_calcul_traitement_1038 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1038 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1039 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1039 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1040 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1040 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1041 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1041 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1042 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1042 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1043 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1043 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1044 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1044 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1045 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1045 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1046 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1046 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1047 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1047 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_foyer(CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1038, - date_conventionnement_in = temp_sous_calcul_traitement_1039, - residence_in = temp_sous_calcul_traitement_1040, - redevance_in = temp_sous_calcul_traitement_1041, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1042, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1043, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1044, - zone_in = temp_sous_calcul_traitement_1045, - date_courante_in = temp_sous_calcul_traitement_1046, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1047)).traitement_aide_finale( - param0_14) - try: - temp_sous_calcul_traitement_1048 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1048 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1049 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1049 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1050 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1050 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1051 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1051 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1052 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1052 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1053 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1053 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1054 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1054 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1055 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1055 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1056 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1056 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1057 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1057 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, start_column=13, - end_line=1601, + end_line=1603, end_column=64, law_headings=["Article D823-9", "Section 1 : Calcul, liquidation et versement des aides", @@ -40419,1750 +38721,138 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog "Livre VIII : Aides personnelles au logement", "Partie réglementaire", "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1058 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1058 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1059 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1059 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1060 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1060 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1061 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1061 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1062 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1062 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1063 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1063 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1064 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1064 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1065 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1065 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1066 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1066 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1067 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1067 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1068 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1068 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1069 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1069 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1070 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1070 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1071 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1071 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1072 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1072 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1073 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1073 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1074 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1074 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1075 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1075 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1076 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1076 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1077 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1077 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1078 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1078 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1079 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1079 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1080 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1080 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1081 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1081 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1082 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1082 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1083 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1083 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1084 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1084 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1085 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1085 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1086 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1086 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1087 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1087 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1088 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1088 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1089 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1089 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1090 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1090 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1091 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1091 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1092 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1092 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1093 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1093 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1094 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1094 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1095 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1095 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1096 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1096 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1097 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1097 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - def temp_sous_calcul_traitement_1098(param0_15:Money): - try: - temp_sous_calcul_traitement_1099 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1099 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1100 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1100 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1101 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1101 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1102 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1102 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1103 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1103 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1104 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1104 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1105 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1105 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1106 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1106 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1107 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1107 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1108 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1108 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - return calcul_allocation_logement_foyer(CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1099, - date_conventionnement_in = temp_sous_calcul_traitement_1100, - residence_in = temp_sous_calcul_traitement_1101, - redevance_in = temp_sous_calcul_traitement_1102, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1103, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1104, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1105, - zone_in = temp_sous_calcul_traitement_1106, - date_courante_in = temp_sous_calcul_traitement_1107, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1108)).traitement_aide_finale( - param0_15) - try: - temp_sous_calcul_traitement_1109 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1109 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1110 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1110 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1111 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1111 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1112 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1112 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1113 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1113 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1114 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1114 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1115 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1115 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1116 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1116 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1117 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1117 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1118 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1118 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1119 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1119 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1120 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1120 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1121 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1121 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1122 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1122 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1123 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1123 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1124 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1124 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1125 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1125 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1126 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1126 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1127 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1127 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1128 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1128 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1129 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1129 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1130 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1130 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1131 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1131 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1132 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1132 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1133 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1133 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1134 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1134 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1135 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1135 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1136 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1136 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1137 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1137 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1138 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1138 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1139 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1139 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1140 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1140 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1141 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1141 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1142 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1142 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1143 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1143 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1144 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1144 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1145 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1145 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1146 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1146 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1147 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1147 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1148 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1148 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1149 = logement_foyer__3.type - except EmptyError: - temp_sous_calcul_traitement_1149 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1602, - start_column=35, - end_line=1602, - end_column=55, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1150 = logement_foyer__3.date_conventionnement - except EmptyError: - temp_sous_calcul_traitement_1150 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1603, - start_column=37, - end_line=1603, - end_column=74, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1151 = residence_9 - except EmptyError: - temp_sous_calcul_traitement_1151 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1595, - start_column=25, - end_line=1595, - end_column=34, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1152 = logement_foyer__3.redevance - except EmptyError: - temp_sous_calcul_traitement_1152 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1599, - start_column=25, - end_line=1599, - end_column=50, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1153 = ressources_menage_avec_arrondi_1 - except EmptyError: - temp_sous_calcul_traitement_1153 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1593, - start_column=43, - end_line=1593, - end_column=60, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1154 = nombre_personnes_a_charge_12 - except EmptyError: - temp_sous_calcul_traitement_1154 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1594, - start_column=41, - end_line=1594, - end_column=66, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1155 = situation_familiale_calcul_apl_9 - except EmptyError: - temp_sous_calcul_traitement_1155 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1598, - start_column=46, - end_line=1598, - end_column=76, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1156 = zone_7 - except EmptyError: - temp_sous_calcul_traitement_1156 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1596, - start_column=20, - end_line=1596, - end_column=24, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1157 = date_courante_16 - except EmptyError: - temp_sous_calcul_traitement_1157 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1597, - start_column=29, - end_line=1597, - end_column=42, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - try: - temp_sous_calcul_traitement_1158 = logement_foyer__3.categorie_equivalence_loyer_d842_16 - except EmptyError: - temp_sous_calcul_traitement_1158 = dead_value - raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_reglementaire.catala_fr", - start_line=1601, - start_column=13, - end_line=1601, - end_column=64, - law_headings=["Article D823-9", - "Section 1 : Calcul, liquidation et versement des aides", - "Chapitre III : Modalités de liquidation et de versement", - "Titre II : Dispositions communes aux aides personnelles au logement", - "Livre VIII : Aides personnelles au logement", - "Partie réglementaire", - "Code de la construction et de l'habitation"])) - temp_sous_calcul_traitement_760 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementFoyer(coefficient_prise_en_charge = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1088, - date_conventionnement_in = temp_sous_calcul_traitement_1089, - residence_in = temp_sous_calcul_traitement_1090, - redevance_in = temp_sous_calcul_traitement_1091, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1092, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1093, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1094, - zone_in = temp_sous_calcul_traitement_1095, - date_courante_in = temp_sous_calcul_traitement_1096, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1097)).coefficient_prise_en_charge, + temp_sous_calcul_traitement_560 = TraitementFormuleAideFinale(aide_finale_formule = CalculAllocationLogementFoyer(coefficient_prise_en_charge = calcul_allocation_logement_foyer( + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_888, + date_conventionnement_in = temp_sous_calcul_traitement_889, + residence_in = temp_sous_calcul_traitement_890, + redevance_in = temp_sous_calcul_traitement_891, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_892, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_893, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_894, + zone_in = temp_sous_calcul_traitement_895, + date_courante_in = temp_sous_calcul_traitement_896, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_897)).coefficient_prise_en_charge, equivalence_loyer = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1078, - date_conventionnement_in = temp_sous_calcul_traitement_1079, - residence_in = temp_sous_calcul_traitement_1080, - redevance_in = temp_sous_calcul_traitement_1081, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1082, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1083, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1084, - zone_in = temp_sous_calcul_traitement_1085, - date_courante_in = temp_sous_calcul_traitement_1086, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1087)).equivalence_loyer, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_878, + date_conventionnement_in = temp_sous_calcul_traitement_879, + residence_in = temp_sous_calcul_traitement_880, + redevance_in = temp_sous_calcul_traitement_881, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_882, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_883, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_884, + zone_in = temp_sous_calcul_traitement_885, + date_courante_in = temp_sous_calcul_traitement_886, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_887)).equivalence_loyer, montant_forfaitaire_charges = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1068, - date_conventionnement_in = temp_sous_calcul_traitement_1069, - residence_in = temp_sous_calcul_traitement_1070, - redevance_in = temp_sous_calcul_traitement_1071, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1072, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1073, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1074, - zone_in = temp_sous_calcul_traitement_1075, - date_courante_in = temp_sous_calcul_traitement_1076, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1077)).montant_forfaitaire_charges, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_868, + date_conventionnement_in = temp_sous_calcul_traitement_869, + residence_in = temp_sous_calcul_traitement_870, + redevance_in = temp_sous_calcul_traitement_871, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_872, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_873, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_874, + zone_in = temp_sous_calcul_traitement_875, + date_courante_in = temp_sous_calcul_traitement_876, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_877)).montant_forfaitaire_charges, loyer_minimal = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1058, - date_conventionnement_in = temp_sous_calcul_traitement_1059, - residence_in = temp_sous_calcul_traitement_1060, - redevance_in = temp_sous_calcul_traitement_1061, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1062, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1063, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1064, - zone_in = temp_sous_calcul_traitement_1065, - date_courante_in = temp_sous_calcul_traitement_1066, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1067)).loyer_minimal, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_858, + date_conventionnement_in = temp_sous_calcul_traitement_859, + residence_in = temp_sous_calcul_traitement_860, + redevance_in = temp_sous_calcul_traitement_861, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_862, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_863, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_864, + zone_in = temp_sous_calcul_traitement_865, + date_courante_in = temp_sous_calcul_traitement_866, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_867)).loyer_minimal, aide_finale_formule = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1048, - date_conventionnement_in = temp_sous_calcul_traitement_1049, - residence_in = temp_sous_calcul_traitement_1050, - redevance_in = temp_sous_calcul_traitement_1051, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1052, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1053, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1054, - zone_in = temp_sous_calcul_traitement_1055, - date_courante_in = temp_sous_calcul_traitement_1056, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1057)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_1037).aide_finale_formule, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_848, + date_conventionnement_in = temp_sous_calcul_traitement_849, + residence_in = temp_sous_calcul_traitement_850, + redevance_in = temp_sous_calcul_traitement_851, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_852, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_853, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_854, + zone_in = temp_sous_calcul_traitement_855, + date_courante_in = temp_sous_calcul_traitement_856, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_857)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_837).aide_finale_formule, traitement_aide_finale = CalculAllocationLogementFoyer(coefficient_prise_en_charge = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1149, - date_conventionnement_in = temp_sous_calcul_traitement_1150, - residence_in = temp_sous_calcul_traitement_1151, - redevance_in = temp_sous_calcul_traitement_1152, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1153, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1154, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1155, - zone_in = temp_sous_calcul_traitement_1156, - date_courante_in = temp_sous_calcul_traitement_1157, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1158)).coefficient_prise_en_charge, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_949, + date_conventionnement_in = temp_sous_calcul_traitement_950, + residence_in = temp_sous_calcul_traitement_951, + redevance_in = temp_sous_calcul_traitement_952, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_953, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_954, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_955, + zone_in = temp_sous_calcul_traitement_956, + date_courante_in = temp_sous_calcul_traitement_957, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_958)).coefficient_prise_en_charge, equivalence_loyer = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1139, - date_conventionnement_in = temp_sous_calcul_traitement_1140, - residence_in = temp_sous_calcul_traitement_1141, - redevance_in = temp_sous_calcul_traitement_1142, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1143, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1144, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1145, - zone_in = temp_sous_calcul_traitement_1146, - date_courante_in = temp_sous_calcul_traitement_1147, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1148)).equivalence_loyer, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_939, + date_conventionnement_in = temp_sous_calcul_traitement_940, + residence_in = temp_sous_calcul_traitement_941, + redevance_in = temp_sous_calcul_traitement_942, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_943, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_944, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_945, + zone_in = temp_sous_calcul_traitement_946, + date_courante_in = temp_sous_calcul_traitement_947, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_948)).equivalence_loyer, montant_forfaitaire_charges = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1129, - date_conventionnement_in = temp_sous_calcul_traitement_1130, - residence_in = temp_sous_calcul_traitement_1131, - redevance_in = temp_sous_calcul_traitement_1132, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1133, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1134, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1135, - zone_in = temp_sous_calcul_traitement_1136, - date_courante_in = temp_sous_calcul_traitement_1137, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1138)).montant_forfaitaire_charges, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_929, + date_conventionnement_in = temp_sous_calcul_traitement_930, + residence_in = temp_sous_calcul_traitement_931, + redevance_in = temp_sous_calcul_traitement_932, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_933, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_934, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_935, + zone_in = temp_sous_calcul_traitement_936, + date_courante_in = temp_sous_calcul_traitement_937, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_938)).montant_forfaitaire_charges, loyer_minimal = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1119, - date_conventionnement_in = temp_sous_calcul_traitement_1120, - residence_in = temp_sous_calcul_traitement_1121, - redevance_in = temp_sous_calcul_traitement_1122, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1123, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1124, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1125, - zone_in = temp_sous_calcul_traitement_1126, - date_courante_in = temp_sous_calcul_traitement_1127, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1128)).loyer_minimal, + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_919, + date_conventionnement_in = temp_sous_calcul_traitement_920, + residence_in = temp_sous_calcul_traitement_921, + redevance_in = temp_sous_calcul_traitement_922, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_923, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_924, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_925, + zone_in = temp_sous_calcul_traitement_926, + date_courante_in = temp_sous_calcul_traitement_927, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_928)).loyer_minimal, aide_finale_formule = calcul_allocation_logement_foyer( - CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_1109, - date_conventionnement_in = temp_sous_calcul_traitement_1110, - residence_in = temp_sous_calcul_traitement_1111, - redevance_in = temp_sous_calcul_traitement_1112, - ressources_menage_arrondies_in = temp_sous_calcul_traitement_1113, - nombre_personnes_a_charge_in = temp_sous_calcul_traitement_1114, - situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_1115, - zone_in = temp_sous_calcul_traitement_1116, - date_courante_in = temp_sous_calcul_traitement_1117, - categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_1118)).aide_finale_formule, - traitement_aide_finale = temp_sous_calcul_traitement_1098).traitement_aide_finale) + CalculAllocationLogementFoyerIn(type_logement_foyer_in = temp_sous_calcul_traitement_909, + date_conventionnement_in = temp_sous_calcul_traitement_910, + residence_in = temp_sous_calcul_traitement_911, + redevance_in = temp_sous_calcul_traitement_912, + ressources_menage_arrondies_in = temp_sous_calcul_traitement_913, + nombre_personnes_a_charge_in = temp_sous_calcul_traitement_914, + situation_familiale_calcul_apl_in = temp_sous_calcul_traitement_915, + zone_in = temp_sous_calcul_traitement_916, + date_courante_in = temp_sous_calcul_traitement_917, + categorie_equivalence_loyer_d842_16_in = temp_sous_calcul_traitement_918)).aide_finale_formule, + traitement_aide_finale = temp_sous_calcul_traitement_898).traitement_aide_finale) except EmptyError: - temp_sous_calcul_traitement_760 = dead_value + temp_sous_calcul_traitement_560 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1107, - start_column=11, end_line=1107, + start_line=1069, + start_column=11, end_line=1069, end_column=33, law_headings=["Tous secteurs", "Secteur logement-foyer", "Calcul du montant de l'allocation logement", "Prologue : aides au logement"])) - sous_calcul_traitement_1 = temp_sous_calcul_traitement_760 + sous_calcul_traitement_1 = temp_sous_calcul_traitement_560 try: def temp_traitement_aide_finale_3(arg_1:Money): try: return sous_calcul_traitement_1.traitement_aide_finale(arg_1) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1110, + start_line=1072, start_column=12, - end_line=1110, + end_line=1072, end_column=34, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -42171,8 +38861,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_traitement_aide_finale_3 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1110, - start_column=12, end_line=1110, + start_line=1072, + start_column=12, end_line=1072, end_column=34, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -42181,36 +38871,37 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog traitement_aide_finale_2 = temp_traitement_aide_finale_3 try: try: - match_arg_687 = residence_9 - if match_arg_687.code == Collectivite_Code.Guadeloupe: - _ = match_arg_687.value + match_arg_688 = residence_9 + if match_arg_688.code == Collectivite_Code.Guadeloupe: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.Guyane: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.Guyane: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.Martinique: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.Martinique: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.LaReunion: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.LaReunion: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.SaintMartin: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.SaintMartin: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.Metropole: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.Metropole: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - elif match_arg_687.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_688.value temp_aide_finale_formule_8 = True - elif match_arg_687.code == Collectivite_Code.Mayotte: - _ = match_arg_687.value + elif match_arg_688.code == Collectivite_Code.Mayotte: + _ = match_arg_688.value temp_aide_finale_formule_8 = False - if (temp_aide_finale_formule_8 and (date_courante_16 >= - date_of_numbers(2022,1,1))): + if (temp_aide_finale_formule_8 and ((date_courante_16 >= + date_of_numbers(2022,1,1)) and (date_courante_16 <= + date_of_numbers(2025,12,31)))): temp_aide_finale_formule_9 = (sous_calcul_traitement_1.aide_finale_formule * (decimal_of_integer((integer_of_string("2026") - year_of_date(date_courante_16))) / @@ -42223,8 +38914,8 @@ def calcul_allocation_logement(calcul_allocation_logement_in:CalculAllocationLog except EmptyError: temp_aide_finale_formule_9 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1109, - start_column=12, end_line=1109, + start_line=1071, + start_column=12, end_line=1071, end_column=31, law_headings=["Tous secteurs", "Secteur logement-foyer", @@ -42255,12 +38946,12 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi try: try: def temp_condition_rang_enfant(personne_a_charge_5:PersonneACharge): - match_arg_688 = personne_a_charge_5 - if match_arg_688.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_688.value + match_arg_689 = personne_a_charge_5 + if match_arg_689.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_689.value return True - elif match_arg_688.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_688.value + elif match_arg_689.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_689.value return False if ((list_length(list_filter(temp_condition_rang_enfant, menage_1.personnes_a_charge)) + @@ -42355,24 +39046,24 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi eligibilite_apl_dot_condition_2_r823_4 = result_21.condition_2_r823_4 try: try: - match_arg_689 = informations.date_naissance_troisieme_enfant_ou_dernier_si_plus - if match_arg_689.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.MoinsDeTroisEnfants: - _ = match_arg_689.value + match_arg_690 = informations.date_naissance_troisieme_enfant_ou_dernier_si_plus + if match_arg_690.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.MoinsDeTroisEnfants: + _ = match_arg_690.value temp_condition_periode_demenagement = False - elif match_arg_689.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.PlusDeTroisEnfants: - date_naissance_ou_grossesse = match_arg_689.value - match_arg_690 = date_naissance_ou_grossesse - if match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.DateDeNaissance: - date_naissance_2 = match_arg_690.value + elif match_arg_690.code == DateNaissanceTroisiemeOuDernierPlusEnfant_Code.PlusDeTroisEnfants: + date_naissance_ou_grossesse = match_arg_690.value + match_arg_691 = date_naissance_ou_grossesse + if match_arg_691.code == DateDeNaissanceOuMoisDeGrossesse_Code.DateDeNaissance: + date_naissance_2 = match_arg_691.value temp_condition_periode_demenagement = (date_courante_17 <= (first_day_of_month((date_naissance_2 + duration_of_numbers(2,0,0))) + duration_of_numbers(0,0,-1))) - elif match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse: - _ = match_arg_690.value + elif match_arg_691.code == DateDeNaissanceOuMoisDeGrossesse_Code.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse: + _ = match_arg_691.value temp_condition_periode_demenagement = False - elif match_arg_690.code == DateDeNaissanceOuMoisDeGrossesse_Code.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse: - _ = match_arg_690.value + elif match_arg_691.code == DateDeNaissanceOuMoisDeGrossesse_Code.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse: + _ = match_arg_691.value temp_condition_periode_demenagement = True if temp_condition_periode_demenagement: temp_condition_periode_demenagement_1 = True @@ -42394,23 +39085,23 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi if (date_courante_17 >= date_of_numbers(2019,10,1)): def temp_plafond_d823_22(personne_a_charge_6:PersonneACharge): - match_arg_691 = personne_a_charge_6 - if match_arg_691.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_691.value + match_arg_692 = personne_a_charge_6 + if match_arg_692.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_692.value return True - elif match_arg_691.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_691.value + elif match_arg_692.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_692.value return False if (list_length(list_filter(temp_plafond_d823_22, menage_1.personnes_a_charge)) > integer_of_string("3")): def temp_plafond_d823_22_1(personne_a_charge_7:PersonneACharge): - match_arg_692 = personne_a_charge_7 - if match_arg_692.code == PersonneACharge_Code.EnfantACharge: - _ = match_arg_692.value + match_arg_693 = personne_a_charge_7 + if match_arg_693.code == PersonneACharge_Code.EnfantACharge: + _ = match_arg_693.value return True - elif match_arg_692.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_692.value + elif match_arg_693.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_693.value return False temp_plafond_d823_22_2 = (base_mensuelle_allocations_familiales_dot_montant_1 * (decimal_of_integer((list_length(list_filter(temp_plafond_d823_22_1, @@ -42437,33 +39128,33 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi try: try: try: - match_arg_693 = menage_1.residence - if match_arg_693.code == Collectivite_Code.Guadeloupe: - _ = match_arg_693.value + match_arg_694 = menage_1.residence + if match_arg_694.code == Collectivite_Code.Guadeloupe: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.Guyane: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.Guyane: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.Martinique: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.Martinique: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.LaReunion: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.LaReunion: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.SaintMartin: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.SaintMartin: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.Metropole: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.Metropole: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_694.value temp_eligibilite_logement_1 = False - elif match_arg_693.code == Collectivite_Code.Mayotte: - _ = match_arg_693.value + elif match_arg_694.code == Collectivite_Code.Mayotte: + _ = match_arg_694.value temp_eligibilite_logement_1 = True if ((date_courante_17 >= date_of_numbers(2022,1,1)) and @@ -42473,33 +39164,33 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi temp_eligibilite_logement_2 = dead_value raise EmptyError except EmptyError: - match_arg_694 = menage_1.residence - if match_arg_694.code == Collectivite_Code.Guadeloupe: - _ = match_arg_694.value + match_arg_695 = menage_1.residence + if match_arg_695.code == Collectivite_Code.Guadeloupe: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.Guyane: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.Guyane: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.Martinique: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.Martinique: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.LaReunion: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.LaReunion: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.SaintMartin: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.SaintMartin: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.Metropole: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.Metropole: + _ = match_arg_695.value temp_eligibilite_logement_3 = False - elif match_arg_694.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_695.value temp_eligibilite_logement_3 = True - elif match_arg_694.code == Collectivite_Code.Mayotte: - _ = match_arg_694.value + elif match_arg_695.code == Collectivite_Code.Mayotte: + _ = match_arg_695.value temp_eligibilite_logement_3 = False if ((date_courante_17 >= date_of_numbers(2022,1,1)) and @@ -42509,33 +39200,33 @@ def eligibilite_prime_de_demenagement(eligibilite_prime_de_demenagement_in:Eligi temp_eligibilite_logement_2 = dead_value raise EmptyError except EmptyError: - match_arg_695 = menage_1.residence - if match_arg_695.code == Collectivite_Code.Guadeloupe: - _ = match_arg_695.value + match_arg_696 = menage_1.residence + if match_arg_696.code == Collectivite_Code.Guadeloupe: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.Guyane: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.Guyane: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.Martinique: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.Martinique: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.LaReunion: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.LaReunion: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.SaintMartin: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.SaintMartin: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.Metropole: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.Metropole: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_696.value temp_eligibilite_logement_4 = False - elif match_arg_695.code == Collectivite_Code.Mayotte: - _ = match_arg_695.value + elif match_arg_696.code == Collectivite_Code.Mayotte: + _ = match_arg_696.value temp_eligibilite_logement_4 = True if temp_eligibilite_logement_4: temp_eligibilite_logement_2 = False @@ -42652,66 +39343,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_6_applicable_2(_:Unit): try: - match_arg_696 = menage_2.residence - if match_arg_696.code == Collectivite_Code.Guadeloupe: - _ = match_arg_696.value + match_arg_697 = menage_2.residence + if match_arg_697.code == Collectivite_Code.Guadeloupe: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.Guyane: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.Guyane: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.Martinique: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.Martinique: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.LaReunion: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.LaReunion: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = True - elif match_arg_696.code == Collectivite_Code.SaintMartin: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.SaintMartin: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = True - elif match_arg_696.code == Collectivite_Code.Metropole: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.Metropole: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False - elif match_arg_696.code == Collectivite_Code.Mayotte: - _ = match_arg_696.value + elif match_arg_697.code == Collectivite_Code.Mayotte: + _ = match_arg_697.value temp_l_841_1_6_applicable_3 = False if temp_l_841_1_6_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_697 = menage_2.residence - if match_arg_697.code == Collectivite_Code.Guadeloupe: - _ = match_arg_697.value + match_arg_698 = menage_2.residence + if match_arg_698.code == Collectivite_Code.Guadeloupe: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = True - elif match_arg_697.code == Collectivite_Code.Guyane: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.Guyane: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = True - elif match_arg_697.code == Collectivite_Code.Martinique: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.Martinique: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = True - elif match_arg_697.code == Collectivite_Code.LaReunion: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.LaReunion: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = True - elif match_arg_697.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = False - elif match_arg_697.code == Collectivite_Code.SaintMartin: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.SaintMartin: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = False - elif match_arg_697.code == Collectivite_Code.Metropole: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.Metropole: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = False - elif match_arg_697.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = False - elif match_arg_697.code == Collectivite_Code.Mayotte: - _ = match_arg_697.value + elif match_arg_698.code == Collectivite_Code.Mayotte: + _ = match_arg_698.value temp_l_841_1_6_applicable_4 = True if temp_l_841_1_6_applicable_4: return False @@ -42748,66 +39439,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_2_applicable_2(_:Unit): try: - match_arg_698 = menage_2.residence - if match_arg_698.code == Collectivite_Code.Guadeloupe: - _ = match_arg_698.value + match_arg_699 = menage_2.residence + if match_arg_699.code == Collectivite_Code.Guadeloupe: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.Guyane: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.Guyane: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.Martinique: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.Martinique: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.LaReunion: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.LaReunion: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = True - elif match_arg_698.code == Collectivite_Code.SaintMartin: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.SaintMartin: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = True - elif match_arg_698.code == Collectivite_Code.Metropole: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.Metropole: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False - elif match_arg_698.code == Collectivite_Code.Mayotte: - _ = match_arg_698.value + elif match_arg_699.code == Collectivite_Code.Mayotte: + _ = match_arg_699.value temp_l_841_1_2_applicable_3 = False if temp_l_841_1_2_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_699 = menage_2.residence - if match_arg_699.code == Collectivite_Code.Guadeloupe: - _ = match_arg_699.value + match_arg_700 = menage_2.residence + if match_arg_700.code == Collectivite_Code.Guadeloupe: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = True - elif match_arg_699.code == Collectivite_Code.Guyane: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.Guyane: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = True - elif match_arg_699.code == Collectivite_Code.Martinique: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.Martinique: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = True - elif match_arg_699.code == Collectivite_Code.LaReunion: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.LaReunion: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = True - elif match_arg_699.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = False - elif match_arg_699.code == Collectivite_Code.SaintMartin: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.SaintMartin: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = False - elif match_arg_699.code == Collectivite_Code.Metropole: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.Metropole: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = False - elif match_arg_699.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = False - elif match_arg_699.code == Collectivite_Code.Mayotte: - _ = match_arg_699.value + elif match_arg_700.code == Collectivite_Code.Mayotte: + _ = match_arg_700.value temp_l_841_1_2_applicable_4 = True if temp_l_841_1_2_applicable_4: return False @@ -42844,66 +39535,66 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return False def temp_l_841_1_1_applicable_2(_:Unit): try: - match_arg_700 = menage_2.residence - if match_arg_700.code == Collectivite_Code.Guadeloupe: - _ = match_arg_700.value + match_arg_701 = menage_2.residence + if match_arg_701.code == Collectivite_Code.Guadeloupe: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.Guyane: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.Guyane: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.Martinique: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.Martinique: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.LaReunion: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.LaReunion: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = True - elif match_arg_700.code == Collectivite_Code.SaintMartin: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.SaintMartin: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = True - elif match_arg_700.code == Collectivite_Code.Metropole: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.Metropole: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False - elif match_arg_700.code == Collectivite_Code.Mayotte: - _ = match_arg_700.value + elif match_arg_701.code == Collectivite_Code.Mayotte: + _ = match_arg_701.value temp_l_841_1_1_applicable_3 = False if temp_l_841_1_1_applicable_3: return False else: raise EmptyError except EmptyError: - match_arg_701 = menage_2.residence - if match_arg_701.code == Collectivite_Code.Guadeloupe: - _ = match_arg_701.value + match_arg_702 = menage_2.residence + if match_arg_702.code == Collectivite_Code.Guadeloupe: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = True - elif match_arg_701.code == Collectivite_Code.Guyane: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.Guyane: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = True - elif match_arg_701.code == Collectivite_Code.Martinique: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.Martinique: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = True - elif match_arg_701.code == Collectivite_Code.LaReunion: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.LaReunion: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = True - elif match_arg_701.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = False - elif match_arg_701.code == Collectivite_Code.SaintMartin: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.SaintMartin: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = False - elif match_arg_701.code == Collectivite_Code.Metropole: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.Metropole: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = False - elif match_arg_701.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = False - elif match_arg_701.code == Collectivite_Code.Mayotte: - _ = match_arg_701.value + elif match_arg_702.code == Collectivite_Code.Mayotte: + _ = match_arg_702.value temp_l_841_1_1_applicable_4 = True if temp_l_841_1_1_applicable_4: return False @@ -42937,42 +39628,42 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili try: try: try: - match_arg_702 = menage_2.logement.mode_occupation - if match_arg_702.code == ModeOccupation_Code.Locataire: - _ = match_arg_702.value + match_arg_703 = menage_2.logement.mode_occupation + if match_arg_703.code == ModeOccupation_Code.Locataire: + _ = match_arg_703.value temp_condition_accession_propriete = False - elif match_arg_702.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_702.value + elif match_arg_703.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_703.value temp_condition_accession_propriete = False - elif match_arg_702.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_6 = match_arg_702.value - match_arg_703 = proprietaire_6.type_travaux_logement_r842_5 - if match_arg_703.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_703.value + elif match_arg_703.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_6 = match_arg_703.value + match_arg_704 = proprietaire_6.type_travaux_logement_r842_5 + if match_arg_704.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_704.value temp_condition_accession_propriete_1 = False - elif match_arg_703.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_703.value + elif match_arg_704.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_704.value temp_condition_accession_propriete_1 = False - elif match_arg_703.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_703.value + elif match_arg_704.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_704.value temp_condition_accession_propriete_1 = True - elif match_arg_703.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_703.value + elif match_arg_704.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_704.value temp_condition_accession_propriete_1 = False - match_arg_704 = proprietaire_6.pret.titulaire_pret - if match_arg_704.code == TitulairePret_Code.Demandeur: - _ = match_arg_704.value + match_arg_705 = proprietaire_6.pret.titulaire_pret + if match_arg_705.code == TitulairePret_Code.Demandeur: + _ = match_arg_705.value temp_condition_accession_propriete_2 = True - elif match_arg_704.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_704.value + elif match_arg_705.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_705.value temp_condition_accession_propriete_2 = False temp_condition_accession_propriete = (temp_condition_accession_propriete_2 and temp_condition_accession_propriete_1) - elif match_arg_702.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_702.value + elif match_arg_703.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_703.value temp_condition_accession_propriete = False - elif match_arg_702.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_702.value + elif match_arg_703.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_703.value temp_condition_accession_propriete = False if temp_condition_accession_propriete: temp_condition_accession_propriete_3 = True @@ -42980,42 +39671,42 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_705 = menage_2.logement.mode_occupation - if match_arg_705.code == ModeOccupation_Code.Locataire: - _ = match_arg_705.value + match_arg_706 = menage_2.logement.mode_occupation + if match_arg_706.code == ModeOccupation_Code.Locataire: + _ = match_arg_706.value temp_condition_accession_propriete_4 = False - elif match_arg_705.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_705.value + elif match_arg_706.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_706.value temp_condition_accession_propriete_4 = False - elif match_arg_705.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_7 = match_arg_705.value - match_arg_706 = proprietaire_7.type_travaux_logement_r842_5 - if match_arg_706.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_706.value + elif match_arg_706.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_7 = match_arg_706.value + match_arg_707 = proprietaire_7.type_travaux_logement_r842_5 + if match_arg_707.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_707.value temp_condition_accession_propriete_5 = False - elif match_arg_706.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_706.value + elif match_arg_707.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_707.value temp_condition_accession_propriete_5 = True - elif match_arg_706.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_706.value - temp_condition_accession_propriete_5 = False - elif match_arg_706.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_706.value - temp_condition_accession_propriete_5 = False - match_arg_707 = proprietaire_7.pret.titulaire_pret - if match_arg_707.code == TitulairePret_Code.Demandeur: + elif match_arg_707.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: _ = match_arg_707.value + temp_condition_accession_propriete_5 = False + elif match_arg_707.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_707.value + temp_condition_accession_propriete_5 = False + match_arg_708 = proprietaire_7.pret.titulaire_pret + if match_arg_708.code == TitulairePret_Code.Demandeur: + _ = match_arg_708.value temp_condition_accession_propriete_6 = True - elif match_arg_707.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_707.value + elif match_arg_708.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_708.value temp_condition_accession_propriete_6 = False temp_condition_accession_propriete_4 = (temp_condition_accession_propriete_6 and temp_condition_accession_propriete_5) - elif match_arg_705.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_705.value + elif match_arg_706.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_706.value temp_condition_accession_propriete_4 = False - elif match_arg_705.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_705.value + elif match_arg_706.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_706.value temp_condition_accession_propriete_4 = False if temp_condition_accession_propriete_4: temp_condition_accession_propriete_3 = True @@ -43023,56 +39714,56 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_708 = menage_2.logement.mode_occupation - if match_arg_708.code == ModeOccupation_Code.Locataire: - _ = match_arg_708.value + match_arg_709 = menage_2.logement.mode_occupation + if match_arg_709.code == ModeOccupation_Code.Locataire: + _ = match_arg_709.value temp_condition_accession_propriete_7 = False - elif match_arg_708.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_708.value + elif match_arg_709.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_709.value temp_condition_accession_propriete_7 = False - elif match_arg_708.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_8 = match_arg_708.value - match_arg_709 = proprietaire_8.type_travaux_logement_r842_5 - if match_arg_709.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: - _ = match_arg_709.value - temp_condition_accession_propriete_8 = True - elif match_arg_709.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: - _ = match_arg_709.value - temp_condition_accession_propriete_8 = False - elif match_arg_709.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: - _ = match_arg_709.value - temp_condition_accession_propriete_8 = False - elif match_arg_709.code == TypeTravauxLogementR8425_Code.PasDeTravaux: - _ = match_arg_709.value - temp_condition_accession_propriete_8 = False + elif match_arg_709.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_8 = match_arg_709.value match_arg_710 = proprietaire_8.type_travaux_logement_r842_5 if match_arg_710.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: _ = match_arg_710.value - temp_condition_accession_propriete_9 = False + temp_condition_accession_propriete_8 = True elif match_arg_710.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: _ = match_arg_710.value - temp_condition_accession_propriete_9 = False + temp_condition_accession_propriete_8 = False elif match_arg_710.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: _ = match_arg_710.value - temp_condition_accession_propriete_9 = False + temp_condition_accession_propriete_8 = False elif match_arg_710.code == TypeTravauxLogementR8425_Code.PasDeTravaux: _ = match_arg_710.value + temp_condition_accession_propriete_8 = False + match_arg_711 = proprietaire_8.type_travaux_logement_r842_5 + if match_arg_711.code == TypeTravauxLogementR8425_Code.ObjectifDecenceLogement: + _ = match_arg_711.value + temp_condition_accession_propriete_9 = False + elif match_arg_711.code == TypeTravauxLogementR8425_Code.PrevuDansListeR321_15: + _ = match_arg_711.value + temp_condition_accession_propriete_9 = False + elif match_arg_711.code == TypeTravauxLogementR8425_Code.AgrandirOuRendreHabitableD331_63: + _ = match_arg_711.value + temp_condition_accession_propriete_9 = False + elif match_arg_711.code == TypeTravauxLogementR8425_Code.PasDeTravaux: + _ = match_arg_711.value temp_condition_accession_propriete_9 = True - match_arg_711 = proprietaire_8.pret.titulaire_pret - if match_arg_711.code == TitulairePret_Code.Demandeur: - _ = match_arg_711.value + match_arg_712 = proprietaire_8.pret.titulaire_pret + if match_arg_712.code == TitulairePret_Code.Demandeur: + _ = match_arg_712.value temp_condition_accession_propriete_10 = True - elif match_arg_711.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_711.value + elif match_arg_712.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_712.value temp_condition_accession_propriete_10 = False temp_condition_accession_propriete_7 = (temp_condition_accession_propriete_10 and (temp_condition_accession_propriete_9 or temp_condition_accession_propriete_8)) - elif match_arg_708.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_708.value + elif match_arg_709.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_709.value temp_condition_accession_propriete_7 = False - elif match_arg_708.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_708.value + elif match_arg_709.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_709.value temp_condition_accession_propriete_7 = False if temp_condition_accession_propriete_7: temp_condition_accession_propriete_3 = True @@ -43080,21 +39771,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili temp_condition_accession_propriete_3 = dead_value raise EmptyError except EmptyError: - match_arg_712 = menage_2.logement.mode_occupation - if match_arg_712.code == ModeOccupation_Code.Locataire: - _ = match_arg_712.value + match_arg_713 = menage_2.logement.mode_occupation + if match_arg_713.code == ModeOccupation_Code.Locataire: + _ = match_arg_713.value temp_condition_accession_propriete_11 = True - elif match_arg_712.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_712.value + elif match_arg_713.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_713.value temp_condition_accession_propriete_11 = True - elif match_arg_712.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_712.value + elif match_arg_713.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_713.value temp_condition_accession_propriete_11 = False - elif match_arg_712.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_712.value + elif match_arg_713.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_713.value temp_condition_accession_propriete_11 = True - elif match_arg_712.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_712.value + elif match_arg_713.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_713.value temp_condition_accession_propriete_11 = True if temp_condition_accession_propriete_11: temp_condition_accession_propriete_3 = True @@ -43146,21 +39837,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili "Prologue : aides au logement"])) eligibilite_commune_dot_date_courante = temp_eligibilite_commune_dot_date_courante def temp_eligibilite_commune_dot_condition_logement_residence_principale(_:Unit): - match_arg_713 = menage_2.logement.mode_occupation - if match_arg_713.code == ModeOccupation_Code.Locataire: - _ = match_arg_713.value + match_arg_714 = menage_2.logement.mode_occupation + if match_arg_714.code == ModeOccupation_Code.Locataire: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_713.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer = match_arg_713.value + elif match_arg_714.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = logement_foyer.construit_application_loi_1957_12_III - elif match_arg_713.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_713.value + elif match_arg_714.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_713.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_713.value + elif match_arg_714.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False - elif match_arg_713.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_713.value + elif match_arg_714.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_714.value temp_eligibilite_commune_dot_condition_logement_residence_principale_1 = False if temp_eligibilite_commune_dot_condition_logement_residence_principale_1: temp_eligibilite_commune_dot_condition_logement_residence_principale_2 = True @@ -43170,21 +39861,21 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili return temp_eligibilite_commune_dot_condition_logement_residence_principale_2 eligibilite_commune_dot_condition_logement_residence_principale = temp_eligibilite_commune_dot_condition_logement_residence_principale def temp_eligibilite_commune_dot_condition_logement_surface(_:Unit): - match_arg_714 = menage_2.logement.mode_occupation - if match_arg_714.code == ModeOccupation_Code.Locataire: - _ = match_arg_714.value + match_arg_715 = menage_2.logement.mode_occupation + if match_arg_715.code == ModeOccupation_Code.Locataire: + _ = match_arg_715.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_714.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer_1 = match_arg_714.value + elif match_arg_715.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer_1 = match_arg_715.value temp_eligibilite_commune_dot_condition_logement_surface_1 = logement_foyer_1.construit_application_loi_1957_12_III - elif match_arg_714.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_714.value + elif match_arg_715.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_715.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_714.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_714.value + elif match_arg_715.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_715.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False - elif match_arg_714.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_714.value + elif match_arg_715.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_715.value temp_eligibilite_commune_dot_condition_logement_surface_1 = False if temp_eligibilite_commune_dot_condition_logement_surface_1: temp_eligibilite_commune_dot_condition_logement_surface_2 = True @@ -43255,182 +39946,160 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili try: try: try: - def temp_eligibilite_allocation_logement_familiale(_:Unit): - return True - def temp_eligibilite_allocation_logement_familiale_1(_:Unit): - match_arg_715 = menage_2.situation_familiale - if match_arg_715.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = ((list_length(menage_2.personnes_a_charge) == - integer_of_string("0")) and - menage_2.enfant_a_naitre_apres_quatrieme_mois_grossesse) - elif match_arg_715.code == SituationFamiliale_Code.Maries: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_715.code == SituationFamiliale_Code.Pacses: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_715.code == SituationFamiliale_Code.Concubins: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_715.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = False - elif match_arg_715.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_715.value - temp_eligibilite_allocation_logement_familiale_2 = False - return (l_841_1_6_applicable and - temp_eligibilite_allocation_logement_familiale_2) - def temp_eligibilite_allocation_logement_familiale_3(_:Unit): + try: try: - match_arg_716 = menage_2.residence - if match_arg_716.code == Collectivite_Code.Guadeloupe: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_716.code == Collectivite_Code.Guyane: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_716.code == Collectivite_Code.Martinique: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_716.code == Collectivite_Code.LaReunion: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = True - elif match_arg_716.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_716.code == Collectivite_Code.SaintMartin: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_716.code == Collectivite_Code.Metropole: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_716.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = False - elif match_arg_716.code == Collectivite_Code.Mayotte: - _ = match_arg_716.value - temp_eligibilite_allocation_logement_familiale_4 = True - if (temp_eligibilite_allocation_logement_familiale_4 and - demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): - return True - else: - raise EmptyError + try: + try: + match_arg_716 = menage_2.residence + if match_arg_716.code == Collectivite_Code.Guadeloupe: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.Guyane: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.Martinique: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.LaReunion: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = True + elif match_arg_716.code == Collectivite_Code.SaintMartin: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = True + elif match_arg_716.code == Collectivite_Code.Metropole: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + elif match_arg_716.code == Collectivite_Code.Mayotte: + _ = match_arg_716.value + temp_eligibilite_allocation_logement_familiale = False + if (temp_eligibilite_allocation_logement_familiale and + demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): + temp_eligibilite_allocation_logement_familiale_1 = True + else: + temp_eligibilite_allocation_logement_familiale_1 = dead_value + raise EmptyError + except EmptyError: + def temp_eligibilite_allocation_logement_familiale_2(personne_a_charge_8:PersonneACharge): + match_arg_717 = personne_a_charge_8 + if match_arg_717.code == PersonneACharge_Code.EnfantACharge: + enfant_10 = match_arg_717.value + match_arg_718 = enfant_10.situation_garde_alternee + if match_arg_718.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_718.value + temp_eligibilite_allocation_logement_familiale_3 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, + Unit()) + elif match_arg_718.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_718.value + temp_eligibilite_allocation_logement_familiale_3 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, + Unit()) + return prestations_familiales_dot_droit_ouvert_1( + EnfantPrestationsFamiliales(identifiant = enfant_10.identifiant, + obligation_scolaire = enfant_10.obligation_scolaire, + remuneration_mensuelle = enfant_10.remuneration_mensuelle, + date_de_naissance = enfant_10.date_de_naissance, + prise_en_charge = temp_eligibilite_allocation_logement_familiale_3, + a_deja_ouvert_droit_aux_allocations_familiales = enfant_10.a_deja_ouvert_droit_aux_allocations_familiales, + beneficie_titre_personnel_aide_personnelle_logement = enfant_10.beneficie_titre_personnel_aide_personnelle_logement)) + elif match_arg_717.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_717.value + return False + match_arg_719 = menage_2.residence + if match_arg_719.code == Collectivite_Code.Guadeloupe: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.Guyane: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.Martinique: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.LaReunion: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = True + elif match_arg_719.code == Collectivite_Code.SaintMartin: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = True + elif match_arg_719.code == Collectivite_Code.Metropole: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + elif match_arg_719.code == Collectivite_Code.Mayotte: + _ = match_arg_719.value + temp_eligibilite_allocation_logement_familiale_4 = False + if (temp_eligibilite_allocation_logement_familiale_4 and + (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_2, + menage_2.personnes_a_charge)) >= + integer_of_string("1"))): + temp_eligibilite_allocation_logement_familiale_1 = True + else: + temp_eligibilite_allocation_logement_familiale_1 = dead_value + raise EmptyError + except EmptyError: + match_arg_720 = menage_2.residence + if match_arg_720.code == Collectivite_Code.Guadeloupe: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = True + elif match_arg_720.code == Collectivite_Code.Guyane: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = True + elif match_arg_720.code == Collectivite_Code.Martinique: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = True + elif match_arg_720.code == Collectivite_Code.LaReunion: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = True + elif match_arg_720.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = False + elif match_arg_720.code == Collectivite_Code.SaintMartin: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = False + elif match_arg_720.code == Collectivite_Code.Metropole: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = False + elif match_arg_720.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = False + elif match_arg_720.code == Collectivite_Code.Mayotte: + _ = match_arg_720.value + temp_eligibilite_allocation_logement_familiale_5 = True + if (temp_eligibilite_allocation_logement_familiale_5 and + demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): + temp_eligibilite_allocation_logement_familiale_1 = True + else: + temp_eligibilite_allocation_logement_familiale_1 = dead_value + raise EmptyError except EmptyError: - def temp_eligibilite_allocation_logement_familiale_5(personne_a_charge_8:PersonneACharge): - match_arg_717 = personne_a_charge_8 - if match_arg_717.code == PersonneACharge_Code.EnfantACharge: - enfant_10 = match_arg_717.value - match_arg_718 = enfant_10.situation_garde_alternee - if match_arg_718.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_718.value - temp_eligibilite_allocation_logement_familiale_6 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, - Unit()) - elif match_arg_718.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_718.value - temp_eligibilite_allocation_logement_familiale_6 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, - Unit()) - return prestations_familiales_dot_droit_ouvert_1( - EnfantPrestationsFamiliales(identifiant = enfant_10.identifiant, - obligation_scolaire = enfant_10.obligation_scolaire, - remuneration_mensuelle = enfant_10.remuneration_mensuelle, - date_de_naissance = enfant_10.date_de_naissance, - prise_en_charge = temp_eligibilite_allocation_logement_familiale_6, - a_deja_ouvert_droit_aux_allocations_familiales = enfant_10.a_deja_ouvert_droit_aux_allocations_familiales, - beneficie_titre_personnel_aide_personnelle_logement = enfant_10.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_717.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_717.value - return False - match_arg_719 = menage_2.residence - if match_arg_719.code == Collectivite_Code.Guadeloupe: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_719.code == Collectivite_Code.Guyane: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_719.code == Collectivite_Code.Martinique: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_719.code == Collectivite_Code.LaReunion: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = True - elif match_arg_719.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_719.code == Collectivite_Code.SaintMartin: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_719.code == Collectivite_Code.Metropole: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_719.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = False - elif match_arg_719.code == Collectivite_Code.Mayotte: - _ = match_arg_719.value - temp_eligibilite_allocation_logement_familiale_7 = True - if (temp_eligibilite_allocation_logement_familiale_7 and - (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_5, - menage_2.personnes_a_charge)) >= - integer_of_string("1"))): - return True - else: - raise EmptyError - def temp_eligibilite_allocation_logement_familiale_8(_:Unit): - try: - match_arg_720 = menage_2.residence - if match_arg_720.code == Collectivite_Code.Guadeloupe: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.Guyane: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.Martinique: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.LaReunion: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = True - elif match_arg_720.code == Collectivite_Code.SaintMartin: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = True - elif match_arg_720.code == Collectivite_Code.Metropole: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - elif match_arg_720.code == Collectivite_Code.Mayotte: - _ = match_arg_720.value - temp_eligibilite_allocation_logement_familiale_9 = False - if (temp_eligibilite_allocation_logement_familiale_9 and - demandeur_2.est_non_salarie_agricole_l781_8_l_781_46_code_rural): - return True - else: - raise EmptyError - except EmptyError: - def temp_eligibilite_allocation_logement_familiale_10(personne_a_charge_9:PersonneACharge): + def temp_eligibilite_allocation_logement_familiale_6(personne_a_charge_9:PersonneACharge): match_arg_721 = personne_a_charge_9 if match_arg_721.code == PersonneACharge_Code.EnfantACharge: enfant_11 = match_arg_721.value match_arg_722 = enfant_11.situation_garde_alternee if match_arg_722.code == SituationGardeAlternee_Code.PasDeGardeAlternee: _ = match_arg_722.value - temp_eligibilite_allocation_logement_familiale_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, + temp_eligibilite_allocation_logement_familiale_7 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) elif match_arg_722.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: _ = match_arg_722.value - temp_eligibilite_allocation_logement_familiale_11 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, + temp_eligibilite_allocation_logement_familiale_7 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return prestations_familiales_dot_droit_ouvert_1( EnfantPrestationsFamiliales(identifiant = enfant_11.identifiant, obligation_scolaire = enfant_11.obligation_scolaire, remuneration_mensuelle = enfant_11.remuneration_mensuelle, date_de_naissance = enfant_11.date_de_naissance, - prise_en_charge = temp_eligibilite_allocation_logement_familiale_11, + prise_en_charge = temp_eligibilite_allocation_logement_familiale_7, a_deja_ouvert_droit_aux_allocations_familiales = enfant_11.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_11.beneficie_titre_personnel_aide_personnelle_logement)) elif match_arg_721.code == PersonneACharge_Code.AutrePersonneACharge: @@ -43439,164 +40108,183 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili match_arg_723 = menage_2.residence if match_arg_723.code == Collectivite_Code.Guadeloupe: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = True elif match_arg_723.code == Collectivite_Code.Guyane: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = True elif match_arg_723.code == Collectivite_Code.Martinique: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = True elif match_arg_723.code == Collectivite_Code.LaReunion: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = True elif match_arg_723.code == Collectivite_Code.SaintBarthelemy: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = True + temp_eligibilite_allocation_logement_familiale_8 = False elif match_arg_723.code == Collectivite_Code.SaintMartin: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = True + temp_eligibilite_allocation_logement_familiale_8 = False elif match_arg_723.code == Collectivite_Code.Metropole: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = False elif match_arg_723.code == Collectivite_Code.SaintPierreEtMiquelon: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False + temp_eligibilite_allocation_logement_familiale_8 = False elif match_arg_723.code == Collectivite_Code.Mayotte: _ = match_arg_723.value - temp_eligibilite_allocation_logement_familiale_12 = False - if (temp_eligibilite_allocation_logement_familiale_12 and - (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_10, + temp_eligibilite_allocation_logement_familiale_8 = True + if (temp_eligibilite_allocation_logement_familiale_8 and + (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_6, menage_2.personnes_a_charge)) >= integer_of_string("1"))): - return True + temp_eligibilite_allocation_logement_familiale_1 = True else: + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError - temp_eligibilite_allocation_logement_familiale_13 = handle_default( - SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=442, start_column=11, - end_line=442, end_column=52, - law_headings=["Éligibilité aux allocations de logement", - "Déclarations des champs d'application", - "Prologue : aides au logement"]), [temp_eligibilite_allocation_logement_familiale_8, - temp_eligibilite_allocation_logement_familiale_3], - temp_eligibilite_allocation_logement_familiale_1, - temp_eligibilite_allocation_logement_familiale) + except EmptyError: + match_arg_724 = menage_2.situation_familiale + if match_arg_724.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = ((list_length(menage_2.personnes_a_charge) == + integer_of_string("0")) and + menage_2.enfant_a_naitre_apres_quatrieme_mois_grossesse) + elif match_arg_724.code == SituationFamiliale_Code.Maries: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = False + elif match_arg_724.code == SituationFamiliale_Code.Pacses: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = False + elif match_arg_724.code == SituationFamiliale_Code.Concubins: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = False + elif match_arg_724.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = False + elif match_arg_724.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_724.value + temp_eligibilite_allocation_logement_familiale_9 = False + if (l_841_1_6_applicable and + temp_eligibilite_allocation_logement_familiale_9): + temp_eligibilite_allocation_logement_familiale_1 = True + else: + temp_eligibilite_allocation_logement_familiale_1 = dead_value + raise EmptyError except EmptyError: - def temp_eligibilite_allocation_logement_familiale_14(personne_a_charge_10:PersonneACharge): - match_arg_724 = personne_a_charge_10 - if match_arg_724.code == PersonneACharge_Code.EnfantACharge: - enfant_12 = match_arg_724.value + def temp_eligibilite_allocation_logement_familiale_10(personne_a_charge_10:PersonneACharge): + match_arg_725 = personne_a_charge_10 + if match_arg_725.code == PersonneACharge_Code.EnfantACharge: + enfant_12 = match_arg_725.value return False - elif match_arg_724.code == PersonneACharge_Code.AutrePersonneACharge: - parent_3 = match_arg_724.value + elif match_arg_725.code == PersonneACharge_Code.AutrePersonneACharge: + parent_3 = match_arg_725.value return (parent_3.ascendant_descendant_collateral_deuxieme_troisieme_degre and parent_3.incapacite_80_pourcent_ou_restriction_emploi) - if (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_14, + if (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_10, menage_2.personnes_a_charge)) >= integer_of_string("1")): - temp_eligibilite_allocation_logement_familiale_13 = True + temp_eligibilite_allocation_logement_familiale_1 = True else: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError except EmptyError: - def temp_eligibilite_allocation_logement_familiale_15(personne_a_charge_11:PersonneACharge): + def temp_eligibilite_allocation_logement_familiale_11(personne_a_charge_11:PersonneACharge): return eligibilite_commune_dot_condition_2_r823_4( personne_a_charge_11) - if (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_15, + if (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_11, menage_2.personnes_a_charge)) >= integer_of_string("1")): - temp_eligibilite_allocation_logement_familiale_13 = True + temp_eligibilite_allocation_logement_familiale_1 = True else: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError except EmptyError: - match_arg_725 = menage_2.situation_familiale - if match_arg_725.code == SituationFamiliale_Code.Celibataire: - _ = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_725.code == SituationFamiliale_Code.Maries: - date_mariage = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = (date_courante_18 <= + match_arg_726 = menage_2.situation_familiale + if match_arg_726.code == SituationFamiliale_Code.Celibataire: + _ = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = False + elif match_arg_726.code == SituationFamiliale_Code.Maries: + date_mariage = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = (date_courante_18 <= (date_mariage + duree_l841_1_3)) - elif match_arg_725.code == SituationFamiliale_Code.Pacses: - _ = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_725.code == SituationFamiliale_Code.Concubins: - _ = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_725.code == SituationFamiliale_Code.CelibataireSepareDeFait: - _ = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = False - elif match_arg_725.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: - _ = match_arg_725.value - temp_eligibilite_allocation_logement_familiale_16 = False - def temp_eligibilite_allocation_logement_familiale_17(personne_a_charge_12:PersonneACharge): - match_arg_726 = personne_a_charge_12 - if match_arg_726.code == PersonneACharge_Code.EnfantACharge: - enfant_13 = match_arg_726.value - match_arg_727 = enfant_13.situation_garde_alternee - if match_arg_727.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_727.value - temp_eligibilite_allocation_logement_familiale_18 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, + elif match_arg_726.code == SituationFamiliale_Code.Pacses: + _ = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = False + elif match_arg_726.code == SituationFamiliale_Code.Concubins: + _ = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = False + elif match_arg_726.code == SituationFamiliale_Code.CelibataireSepareDeFait: + _ = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = False + elif match_arg_726.code == SituationFamiliale_Code.ConcubinageDontSepareDeFait: + _ = match_arg_726.value + temp_eligibilite_allocation_logement_familiale_12 = False + def temp_eligibilite_allocation_logement_familiale_13(personne_a_charge_12:PersonneACharge): + match_arg_727 = personne_a_charge_12 + if match_arg_727.code == PersonneACharge_Code.EnfantACharge: + enfant_13 = match_arg_727.value + match_arg_728 = enfant_13.situation_garde_alternee + if match_arg_728.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_728.value + temp_eligibilite_allocation_logement_familiale_14 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_727.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_727.value - temp_eligibilite_allocation_logement_familiale_18 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, + elif match_arg_728.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_728.value + temp_eligibilite_allocation_logement_familiale_14 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return not prestations_familiales_dot_droit_ouvert_1( EnfantPrestationsFamiliales(identifiant = enfant_13.identifiant, obligation_scolaire = enfant_13.obligation_scolaire, remuneration_mensuelle = enfant_13.remuneration_mensuelle, date_de_naissance = enfant_13.date_de_naissance, - prise_en_charge = temp_eligibilite_allocation_logement_familiale_18, + prise_en_charge = temp_eligibilite_allocation_logement_familiale_14, a_deja_ouvert_droit_aux_allocations_familiales = enfant_13.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_13.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_726.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_726.value + elif match_arg_727.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_727.value return False - if ((list_length(list_filter(temp_eligibilite_allocation_logement_familiale_17, + if ((list_length(list_filter(temp_eligibilite_allocation_logement_familiale_13, menage_2.personnes_a_charge)) == integer_of_string("0")) and - temp_eligibilite_allocation_logement_familiale_16): - temp_eligibilite_allocation_logement_familiale_13 = True + temp_eligibilite_allocation_logement_familiale_12): + temp_eligibilite_allocation_logement_familiale_1 = True else: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError except EmptyError: - def temp_eligibilite_allocation_logement_familiale_19(personne_a_charge_13:PersonneACharge): - match_arg_728 = personne_a_charge_13 - if match_arg_728.code == PersonneACharge_Code.EnfantACharge: - enfant_14 = match_arg_728.value - match_arg_729 = enfant_14.situation_garde_alternee - if match_arg_729.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_729.value - temp_eligibilite_allocation_logement_familiale_20 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, + def temp_eligibilite_allocation_logement_familiale_15(personne_a_charge_13:PersonneACharge): + match_arg_729 = personne_a_charge_13 + if match_arg_729.code == PersonneACharge_Code.EnfantACharge: + enfant_14 = match_arg_729.value + match_arg_730 = enfant_14.situation_garde_alternee + if match_arg_730.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_730.value + temp_eligibilite_allocation_logement_familiale_16 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.EffectiveEtPermanente, Unit()) - elif match_arg_729.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_729.value - temp_eligibilite_allocation_logement_familiale_20 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, + elif match_arg_730.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_730.value + temp_eligibilite_allocation_logement_familiale_16 = PriseEnChargeEnfant(PriseEnChargeEnfant_Code.GardeAlterneePartageAllocations, Unit()) return prestations_familiales_dot_droit_ouvert_1( EnfantPrestationsFamiliales(identifiant = enfant_14.identifiant, obligation_scolaire = enfant_14.obligation_scolaire, remuneration_mensuelle = enfant_14.remuneration_mensuelle, date_de_naissance = enfant_14.date_de_naissance, - prise_en_charge = temp_eligibilite_allocation_logement_familiale_20, + prise_en_charge = temp_eligibilite_allocation_logement_familiale_16, a_deja_ouvert_droit_aux_allocations_familiales = enfant_14.a_deja_ouvert_droit_aux_allocations_familiales, beneficie_titre_personnel_aide_personnelle_logement = enfant_14.beneficie_titre_personnel_aide_personnelle_logement)) - elif match_arg_728.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_728.value + elif match_arg_729.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_729.value return False if (l_841_1_2_applicable and - (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_19, + (list_length(list_filter(temp_eligibilite_allocation_logement_familiale_15, menage_2.personnes_a_charge)) == integer_of_string("1"))): - temp_eligibilite_allocation_logement_familiale_13 = True + temp_eligibilite_allocation_logement_familiale_1 = True else: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError except EmptyError: - def temp_eligibilite_allocation_logement_familiale_21(acc_2:bool, prestation_1:PrestationRecue): + def temp_eligibilite_allocation_logement_familiale_17(acc_2:bool, prestation_1:PrestationRecue): return (acc_2 or ((prestation_1 == PrestationRecue(PrestationRecue_Code.AllocationsFamiliales, Unit())) or ((prestation_1 == @@ -43607,45 +40295,45 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili PrestationRecue(PrestationRecue_Code.AllocationSoutienEnfantHandicape, Unit())))))) if (l_841_1_1_applicable and - list_fold_left(temp_eligibilite_allocation_logement_familiale_21, + list_fold_left(temp_eligibilite_allocation_logement_familiale_17, False, menage_2.prestations_recues)): - temp_eligibilite_allocation_logement_familiale_13 = True + temp_eligibilite_allocation_logement_familiale_1 = True else: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise EmptyError except EmptyError: - temp_eligibilite_allocation_logement_familiale_13 = False + temp_eligibilite_allocation_logement_familiale_1 = False except EmptyError: - temp_eligibilite_allocation_logement_familiale_13 = dead_value + temp_eligibilite_allocation_logement_familiale_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", start_line=442, start_column=11, end_line=442, end_column=52, law_headings=["Éligibilité aux allocations de logement", "Déclarations des champs d'application", "Prologue : aides au logement"])) - eligibilite_allocation_logement_familiale = temp_eligibilite_allocation_logement_familiale_13 + eligibilite_allocation_logement_familiale = temp_eligibilite_allocation_logement_familiale_1 try: try: def temp_eligibilite_l841_2(_:Unit): return TypeEligibiliteAllocationLogement(TypeEligibiliteAllocationLogement_Code.PasEligible, Unit()) def temp_eligibilite_l841_2_1(_:Unit): - match_arg_730 = menage_2.logement.mode_occupation - if match_arg_730.code == ModeOccupation_Code.Locataire: - _ = match_arg_730.value + match_arg_731 = menage_2.logement.mode_occupation + if match_arg_731.code == ModeOccupation_Code.Locataire: + _ = match_arg_731.value temp_eligibilite_l841_2_2 = False - elif match_arg_730.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_730.value + elif match_arg_731.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_731.value temp_eligibilite_l841_2_2 = False - elif match_arg_730.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_9 = match_arg_730.value + elif match_arg_731.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_9 = match_arg_731.value temp_eligibilite_l841_2_2 = (proprietaire_9.pret.date_signature > date_of_numbers(2017,12,31)) - elif match_arg_730.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_730.value + elif match_arg_731.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_731.value temp_eligibilite_l841_2_2 = False - elif match_arg_730.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_730.value + elif match_arg_731.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_731.value temp_eligibilite_l841_2_2 = False return temp_eligibilite_l841_2_2 def temp_eligibilite_l841_2_3(_:Unit): @@ -43656,33 +40344,33 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili raise EmptyError def temp_eligibilite_l841_2_4(_:Unit): try: - match_arg_731 = menage_2.residence - if match_arg_731.code == Collectivite_Code.Guadeloupe: - _ = match_arg_731.value + match_arg_732 = menage_2.residence + if match_arg_732.code == Collectivite_Code.Guadeloupe: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.Guyane: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.Guyane: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.Martinique: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.Martinique: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.LaReunion: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.LaReunion: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.SaintMartin: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.SaintMartin: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.Metropole: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.Metropole: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = False - elif match_arg_731.code == Collectivite_Code.Mayotte: - _ = match_arg_731.value + elif match_arg_732.code == Collectivite_Code.Mayotte: + _ = match_arg_732.value temp_eligibilite_l841_2_5 = True if (temp_eligibilite_l841_2_5 and demandeur_2.magistrat_fonctionnaire_centre_interets_materiels_familiaux_hors_mayotte): @@ -43691,61 +40379,61 @@ def eligibilite_allocation_logement(eligibilite_allocation_logement_in:Eligibili else: raise EmptyError except EmptyError: - match_arg_732 = menage_2.logement.mode_occupation - if match_arg_732.code == ModeOccupation_Code.Locataire: - _ = match_arg_732.value + match_arg_733 = menage_2.logement.mode_occupation + if match_arg_733.code == ModeOccupation_Code.Locataire: + _ = match_arg_733.value temp_eligibilite_l841_2_6 = False - elif match_arg_732.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_732.value + elif match_arg_733.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_733.value temp_eligibilite_l841_2_6 = False - elif match_arg_732.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - proprietaire_10 = match_arg_732.value - match_arg_733 = proprietaire_10.pret.accord_financement_representant_Etat_outre_mer - if match_arg_733.code == AccordFinancementRepresentantEtatOutreMer_Code.Accord: - date_accord = match_arg_733.value + elif match_arg_733.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + proprietaire_10 = match_arg_733.value + match_arg_734 = proprietaire_10.pret.accord_financement_representant_Etat_outre_mer + if match_arg_734.code == AccordFinancementRepresentantEtatOutreMer_Code.Accord: + date_accord = match_arg_734.value temp_eligibilite_l841_2_7 = (date_accord <= date_of_numbers(2018,12,31)) - elif match_arg_733.code == AccordFinancementRepresentantEtatOutreMer_Code.PasdAccord: - _ = match_arg_733.value + elif match_arg_734.code == AccordFinancementRepresentantEtatOutreMer_Code.PasdAccord: + _ = match_arg_734.value temp_eligibilite_l841_2_7 = False temp_eligibilite_l841_2_6 = ((proprietaire_10.pret.date_signature > date_of_numbers(2017,12,31)) or ((proprietaire_10.pret.date_signature > date_of_numbers(2019,12,31)) and temp_eligibilite_l841_2_7)) - elif match_arg_732.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_732.value + elif match_arg_733.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_733.value temp_eligibilite_l841_2_6 = False - elif match_arg_732.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_732.value + elif match_arg_733.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_733.value temp_eligibilite_l841_2_6 = False - match_arg_734 = menage_2.residence - if match_arg_734.code == Collectivite_Code.Guadeloupe: - _ = match_arg_734.value + match_arg_735 = menage_2.residence + if match_arg_735.code == Collectivite_Code.Guadeloupe: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = True - elif match_arg_734.code == Collectivite_Code.Guyane: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.Guyane: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = True - elif match_arg_734.code == Collectivite_Code.Martinique: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.Martinique: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = True - elif match_arg_734.code == Collectivite_Code.LaReunion: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.LaReunion: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = True - elif match_arg_734.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = False - elif match_arg_734.code == Collectivite_Code.SaintMartin: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.SaintMartin: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = False - elif match_arg_734.code == Collectivite_Code.Metropole: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.Metropole: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = False - elif match_arg_734.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = False - elif match_arg_734.code == Collectivite_Code.Mayotte: - _ = match_arg_734.value + elif match_arg_735.code == Collectivite_Code.Mayotte: + _ = match_arg_735.value temp_eligibilite_l841_2_8 = True if (temp_eligibilite_l841_2_8 and temp_eligibilite_l841_2_6): @@ -43799,44 +40487,44 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_735 = pret_1.type_pret - if match_arg_735.code == TypePret_Code.D331_32: - _ = match_arg_735.value - temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_735.code == TypePret_Code.D331_63_64: - _ = match_arg_735.value - temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_735.code == TypePret_Code.D331_59_8: - _ = match_arg_735.value - temp_caracteristiques_pret_l831_1_1_1 = False - elif match_arg_735.code == TypePret_Code.D331_76_1: - _ = match_arg_735.value - temp_caracteristiques_pret_l831_1_1_1 = True - elif match_arg_735.code == TypePret_Code.Autre: - _ = match_arg_735.value - temp_caracteristiques_pret_l831_1_1_1 = False match_arg_736 = pret_1.type_pret if match_arg_736.code == TypePret_Code.D331_32: _ = match_arg_736.value - temp_caracteristiques_pret_l831_1_1_2 = False + temp_caracteristiques_pret_l831_1_1_1 = False elif match_arg_736.code == TypePret_Code.D331_63_64: _ = match_arg_736.value - temp_caracteristiques_pret_l831_1_1_2 = False + temp_caracteristiques_pret_l831_1_1_1 = False elif match_arg_736.code == TypePret_Code.D331_59_8: _ = match_arg_736.value - temp_caracteristiques_pret_l831_1_1_2 = True + temp_caracteristiques_pret_l831_1_1_1 = False elif match_arg_736.code == TypePret_Code.D331_76_1: _ = match_arg_736.value - temp_caracteristiques_pret_l831_1_1_2 = False + temp_caracteristiques_pret_l831_1_1_1 = True elif match_arg_736.code == TypePret_Code.Autre: _ = match_arg_736.value + temp_caracteristiques_pret_l831_1_1_1 = False + match_arg_737 = pret_1.type_pret + if match_arg_737.code == TypePret_Code.D331_32: + _ = match_arg_737.value temp_caracteristiques_pret_l831_1_1_2 = False - match_arg_737 = pret_1.titulaire_pret - if match_arg_737.code == TitulairePret_Code.Demandeur: + elif match_arg_737.code == TypePret_Code.D331_63_64: _ = match_arg_737.value + temp_caracteristiques_pret_l831_1_1_2 = False + elif match_arg_737.code == TypePret_Code.D331_59_8: + _ = match_arg_737.value + temp_caracteristiques_pret_l831_1_1_2 = True + elif match_arg_737.code == TypePret_Code.D331_76_1: + _ = match_arg_737.value + temp_caracteristiques_pret_l831_1_1_2 = False + elif match_arg_737.code == TypePret_Code.Autre: + _ = match_arg_737.value + temp_caracteristiques_pret_l831_1_1_2 = False + match_arg_738 = pret_1.titulaire_pret + if match_arg_738.code == TitulairePret_Code.Demandeur: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_3 = False - elif match_arg_737.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_737.value + elif match_arg_738.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_738.value temp_caracteristiques_pret_l831_1_1_3 = True if (temp_caracteristiques_pret_l831_1_1_3 and (temp_caracteristiques_pret_l831_1_1_2 or @@ -43845,44 +40533,44 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem else: raise EmptyError except EmptyError: - match_arg_738 = pret_1.type_pret - if match_arg_738.code == TypePret_Code.D331_32: - _ = match_arg_738.value - temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_738.code == TypePret_Code.D331_63_64: - _ = match_arg_738.value - temp_caracteristiques_pret_l831_1_1_4 = True - elif match_arg_738.code == TypePret_Code.D331_59_8: - _ = match_arg_738.value - temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_738.code == TypePret_Code.D331_76_1: - _ = match_arg_738.value - temp_caracteristiques_pret_l831_1_1_4 = False - elif match_arg_738.code == TypePret_Code.Autre: - _ = match_arg_738.value - temp_caracteristiques_pret_l831_1_1_4 = False match_arg_739 = pret_1.type_pret if match_arg_739.code == TypePret_Code.D331_32: _ = match_arg_739.value - temp_caracteristiques_pret_l831_1_1_5 = True + temp_caracteristiques_pret_l831_1_1_4 = False elif match_arg_739.code == TypePret_Code.D331_63_64: _ = match_arg_739.value - temp_caracteristiques_pret_l831_1_1_5 = False + temp_caracteristiques_pret_l831_1_1_4 = True elif match_arg_739.code == TypePret_Code.D331_59_8: _ = match_arg_739.value - temp_caracteristiques_pret_l831_1_1_5 = False + temp_caracteristiques_pret_l831_1_1_4 = False elif match_arg_739.code == TypePret_Code.D331_76_1: _ = match_arg_739.value - temp_caracteristiques_pret_l831_1_1_5 = False + temp_caracteristiques_pret_l831_1_1_4 = False elif match_arg_739.code == TypePret_Code.Autre: _ = match_arg_739.value + temp_caracteristiques_pret_l831_1_1_4 = False + match_arg_740 = pret_1.type_pret + if match_arg_740.code == TypePret_Code.D331_32: + _ = match_arg_740.value + temp_caracteristiques_pret_l831_1_1_5 = True + elif match_arg_740.code == TypePret_Code.D331_63_64: + _ = match_arg_740.value temp_caracteristiques_pret_l831_1_1_5 = False - match_arg_740 = pret_1.titulaire_pret - if match_arg_740.code == TitulairePret_Code.Demandeur: + elif match_arg_740.code == TypePret_Code.D331_59_8: _ = match_arg_740.value + temp_caracteristiques_pret_l831_1_1_5 = False + elif match_arg_740.code == TypePret_Code.D331_76_1: + _ = match_arg_740.value + temp_caracteristiques_pret_l831_1_1_5 = False + elif match_arg_740.code == TypePret_Code.Autre: + _ = match_arg_740.value + temp_caracteristiques_pret_l831_1_1_5 = False + match_arg_741 = pret_1.titulaire_pret + if match_arg_741.code == TitulairePret_Code.Demandeur: + _ = match_arg_741.value temp_caracteristiques_pret_l831_1_1_6 = True - elif match_arg_740.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: - _ = match_arg_740.value + elif match_arg_741.code == TitulairePret_Code.VendeurQuandDemandeurAContratLocationAccession: + _ = match_arg_741.value temp_caracteristiques_pret_l831_1_1_6 = False if (temp_caracteristiques_pret_l831_1_1_6 and (temp_caracteristiques_pret_l831_1_1_5 or @@ -43976,21 +40664,21 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem return temp_eligibilite_commune_dot_condition_logement_surface_4 eligibilite_commune_dot_condition_logement_surface_1 = temp_eligibilite_commune_dot_condition_logement_surface_3 def temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_2(_:Unit): - match_arg_741 = menage_3.logement.mode_occupation - if match_arg_741.code == ModeOccupation_Code.Locataire: - _ = match_arg_741.value + match_arg_742 = menage_3.logement.mode_occupation + if match_arg_742.code == ModeOccupation_Code.Locataire: + _ = match_arg_742.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_741.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_741.value + elif match_arg_742.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_742.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_741.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_741.value + elif match_arg_742.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_742.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = True - elif match_arg_741.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_741.value + elif match_arg_742.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_742.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False - elif match_arg_741.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_741.value + elif match_arg_742.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_742.value temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3 = False if temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_3: temp_eligibilite_commune_dot_date_entree_vigueur_differee_cch_4 = date_of_numbers(2021,5,1) @@ -44012,15 +40700,15 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem eligibilite_commune_dot_condition_2_r823_4_1 = result_24.condition_2_r823_4 try: try: - match_arg_742 = menage_3.logement.zone - if match_arg_742.code == ZoneDHabitation_Code.Zone1: - _ = match_arg_742.value + match_arg_743 = menage_3.logement.zone + if match_arg_743.code == ZoneDHabitation_Code.Zone1: + _ = match_arg_743.value temp_logement_situe_commune_desequilibre_l831_2 = False - elif match_arg_742.code == ZoneDHabitation_Code.Zone2: - _ = match_arg_742.value + elif match_arg_743.code == ZoneDHabitation_Code.Zone2: + _ = match_arg_743.value temp_logement_situe_commune_desequilibre_l831_2 = False - elif match_arg_742.code == ZoneDHabitation_Code.Zone3: - _ = match_arg_742.value + elif match_arg_743.code == ZoneDHabitation_Code.Zone3: + _ = match_arg_743.value temp_logement_situe_commune_desequilibre_l831_2 = True if ((date_courante_19 >= date_of_numbers(2019,10,1)) and temp_logement_situe_commune_desequilibre_l831_2): @@ -44048,42 +40736,42 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_743 = menage_3.logement.mode_occupation - if match_arg_743.code == ModeOccupation_Code.Locataire: - _ = match_arg_743.value + match_arg_744 = menage_3.logement.mode_occupation + if match_arg_744.code == ModeOccupation_Code.Locataire: + _ = match_arg_744.value temp_condition_logement_bailleur_3 = False - elif match_arg_743.code == ModeOccupation_Code.ResidentLogementFoyer: - logement_foyer_2 = match_arg_743.value + elif match_arg_744.code == ModeOccupation_Code.ResidentLogementFoyer: + logement_foyer_2 = match_arg_744.value temp_condition_logement_bailleur_3 = logement_foyer_2.remplit_conditions_r832_21 - elif match_arg_743.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_743.value + elif match_arg_744.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_744.value temp_condition_logement_bailleur_3 = False - elif match_arg_743.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_743.value + elif match_arg_744.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_744.value temp_condition_logement_bailleur_3 = False - elif match_arg_743.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_743.value + elif match_arg_744.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_744.value temp_condition_logement_bailleur_3 = False if temp_condition_logement_bailleur_3: return True else: raise EmptyError except EmptyError: - match_arg_744 = menage_3.logement.mode_occupation - if match_arg_744.code == ModeOccupation_Code.Locataire: - _ = match_arg_744.value + match_arg_745 = menage_3.logement.mode_occupation + if match_arg_745.code == ModeOccupation_Code.Locataire: + _ = match_arg_745.value temp_condition_logement_bailleur_4 = False - elif match_arg_744.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_744.value + elif match_arg_745.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_745.value temp_condition_logement_bailleur_4 = False - elif match_arg_744.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_744.value + elif match_arg_745.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_745.value temp_condition_logement_bailleur_4 = False - elif match_arg_744.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_744.value + elif match_arg_745.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_745.value temp_condition_logement_bailleur_4 = False - elif match_arg_744.code == ModeOccupation_Code.LocationAccession: - propriete = match_arg_744.value + elif match_arg_745.code == ModeOccupation_Code.LocationAccession: + propriete = match_arg_745.value temp_condition_logement_bailleur_4 = caracteristiques_pret_l831_1_6( propriete.pret) if temp_condition_logement_bailleur_4: @@ -44091,52 +40779,52 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem else: raise EmptyError except EmptyError: - match_arg_745 = menage_3.logement.mode_occupation - if match_arg_745.code == ModeOccupation_Code.Locataire: - location_6 = match_arg_745.value - match_arg_746 = location_6.bailleur - if match_arg_746.code == TypeBailleur_Code.BailleurSocial: - convention = match_arg_746.value + match_arg_746 = menage_3.logement.mode_occupation + if match_arg_746.code == ModeOccupation_Code.Locataire: + location_6 = match_arg_746.value + match_arg_747 = location_6.bailleur + if match_arg_747.code == TypeBailleur_Code.BailleurSocial: + convention = match_arg_747.value temp_condition_logement_bailleur_5 = convention.conventionne_livre_III_titre_V_chap_III - elif match_arg_746.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: - convention_1 = match_arg_746.value + elif match_arg_747.code == TypeBailleur_Code.BailleurPriveAvecConventionnementSocial: + convention_1 = match_arg_747.value temp_condition_logement_bailleur_5 = convention_1.conventionne_livre_III_titre_II_chap_I_sec_3 - elif match_arg_746.code == TypeBailleur_Code.BailleurPrive: - _ = match_arg_746.value + elif match_arg_747.code == TypeBailleur_Code.BailleurPrive: + _ = match_arg_747.value temp_condition_logement_bailleur_5 = False - elif match_arg_745.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_745.value + elif match_arg_746.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_746.value temp_condition_logement_bailleur_5 = False - elif match_arg_745.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_745.value + elif match_arg_746.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_746.value temp_condition_logement_bailleur_5 = False - elif match_arg_745.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_745.value + elif match_arg_746.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_746.value temp_condition_logement_bailleur_5 = False - elif match_arg_745.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_745.value + elif match_arg_746.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_746.value temp_condition_logement_bailleur_5 = False if temp_condition_logement_bailleur_5: return True else: raise EmptyError except EmptyError: - match_arg_747 = menage_3.logement.mode_occupation - if match_arg_747.code == ModeOccupation_Code.Locataire: - _ = match_arg_747.value + match_arg_748 = menage_3.logement.mode_occupation + if match_arg_748.code == ModeOccupation_Code.Locataire: + _ = match_arg_748.value temp_condition_logement_bailleur_6 = False - elif match_arg_747.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_747.value + elif match_arg_748.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_748.value temp_condition_logement_bailleur_6 = False - elif match_arg_747.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_1 = match_arg_747.value + elif match_arg_748.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_1 = match_arg_748.value temp_condition_logement_bailleur_6 = caracteristiques_pret_l831_1_1( propriete_1.pret) - elif match_arg_747.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_747.value + elif match_arg_748.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_748.value temp_condition_logement_bailleur_6 = False - elif match_arg_747.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_747.value + elif match_arg_748.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_748.value temp_condition_logement_bailleur_6 = False if temp_condition_logement_bailleur_6: return True @@ -44144,49 +40832,49 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem raise EmptyError def temp_condition_logement_bailleur_7(_:Unit): try: - match_arg_748 = menage_3.logement.mode_occupation - if match_arg_748.code == ModeOccupation_Code.Locataire: - _ = match_arg_748.value + match_arg_749 = menage_3.logement.mode_occupation + if match_arg_749.code == ModeOccupation_Code.Locataire: + _ = match_arg_749.value temp_condition_logement_bailleur_8 = False - elif match_arg_748.code == ModeOccupation_Code.ResidentLogementFoyer: - location_7 = match_arg_748.value + elif match_arg_749.code == ModeOccupation_Code.ResidentLogementFoyer: + location_7 = match_arg_749.value temp_condition_logement_bailleur_8 = location_7.conventionne_selon_regles_drom - elif match_arg_748.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_748.value + elif match_arg_749.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_749.value temp_condition_logement_bailleur_8 = False - elif match_arg_748.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_748.value + elif match_arg_749.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_749.value temp_condition_logement_bailleur_8 = False - elif match_arg_748.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_748.value + elif match_arg_749.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_749.value temp_condition_logement_bailleur_8 = False - match_arg_749 = menage_3.residence - if match_arg_749.code == Collectivite_Code.Guadeloupe: - _ = match_arg_749.value + match_arg_750 = menage_3.residence + if match_arg_750.code == Collectivite_Code.Guadeloupe: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = True - elif match_arg_749.code == Collectivite_Code.Guyane: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.Guyane: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = True - elif match_arg_749.code == Collectivite_Code.Martinique: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.Martinique: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = True - elif match_arg_749.code == Collectivite_Code.LaReunion: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.LaReunion: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = True - elif match_arg_749.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = False - elif match_arg_749.code == Collectivite_Code.SaintMartin: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.SaintMartin: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = False - elif match_arg_749.code == Collectivite_Code.Metropole: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.Metropole: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = False - elif match_arg_749.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = False - elif match_arg_749.code == Collectivite_Code.Mayotte: - _ = match_arg_749.value + elif match_arg_750.code == Collectivite_Code.Mayotte: + _ = match_arg_750.value temp_condition_logement_bailleur_9 = True if (temp_condition_logement_bailleur_9 and temp_condition_logement_bailleur_8): @@ -44194,21 +40882,21 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem else: raise EmptyError except EmptyError: - match_arg_750 = menage_3.logement.mode_occupation - if match_arg_750.code == ModeOccupation_Code.Locataire: - _ = match_arg_750.value + match_arg_751 = menage_3.logement.mode_occupation + if match_arg_751.code == ModeOccupation_Code.Locataire: + _ = match_arg_751.value temp_condition_logement_bailleur_10 = False - elif match_arg_750.code == ModeOccupation_Code.ResidentLogementFoyer: - location_8 = match_arg_750.value + elif match_arg_751.code == ModeOccupation_Code.ResidentLogementFoyer: + location_8 = match_arg_751.value temp_condition_logement_bailleur_10 = location_8.conventionne_livre_III_titre_V_chap_III - elif match_arg_750.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - _ = match_arg_750.value + elif match_arg_751.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + _ = match_arg_751.value temp_condition_logement_bailleur_10 = False - elif match_arg_750.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_750.value + elif match_arg_751.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_751.value temp_condition_logement_bailleur_10 = False - elif match_arg_750.code == ModeOccupation_Code.LocationAccession: - _ = match_arg_750.value + elif match_arg_751.code == ModeOccupation_Code.LocationAccession: + _ = match_arg_751.value temp_condition_logement_bailleur_10 = False if temp_condition_logement_bailleur_10: return True @@ -44259,21 +40947,21 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_751 = menage_3.logement.mode_occupation - if match_arg_751.code == ModeOccupation_Code.Locataire: - _ = match_arg_751.value + match_arg_752 = menage_3.logement.mode_occupation + if match_arg_752.code == ModeOccupation_Code.Locataire: + _ = match_arg_752.value temp_condition_logement_pret = False - elif match_arg_751.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_751.value + elif match_arg_752.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_752.value temp_condition_logement_pret = False - elif match_arg_751.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_2 = match_arg_751.value - match_arg_752 = propriete_2.anciennete_logement - if match_arg_752.code == NeufOuAncien_Code.Neuf: - _ = match_arg_752.value + elif match_arg_752.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_2 = match_arg_752.value + match_arg_753 = propriete_2.anciennete_logement + if match_arg_753.code == NeufOuAncien_Code.Neuf: + _ = match_arg_753.value temp_condition_logement_pret_1 = False - elif match_arg_752.code == NeufOuAncien_Code.Ancien: - _ = match_arg_752.value + elif match_arg_753.code == NeufOuAncien_Code.Ancien: + _ = match_arg_753.value temp_condition_logement_pret_1 = True temp_condition_logement_pret = ((propriete_2.pret.date_signature >= date_of_numbers(2018,1,1)) and @@ -44281,17 +40969,17 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem date_of_numbers(2020,1,1)) and (temp_condition_logement_pret_1 and logement_situe_commune_desequilibre_l831_2))) - elif match_arg_751.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_751.value + elif match_arg_752.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_752.value temp_condition_logement_pret = False - elif match_arg_751.code == ModeOccupation_Code.LocationAccession: - propriete_3 = match_arg_751.value - match_arg_753 = propriete_3.anciennete_logement - if match_arg_753.code == NeufOuAncien_Code.Neuf: - _ = match_arg_753.value + elif match_arg_752.code == ModeOccupation_Code.LocationAccession: + propriete_3 = match_arg_752.value + match_arg_754 = propriete_3.anciennete_logement + if match_arg_754.code == NeufOuAncien_Code.Neuf: + _ = match_arg_754.value temp_condition_logement_pret_2 = False - elif match_arg_753.code == NeufOuAncien_Code.Ancien: - _ = match_arg_753.value + elif match_arg_754.code == NeufOuAncien_Code.Ancien: + _ = match_arg_754.value temp_condition_logement_pret_2 = True temp_condition_logement_pret = ((propriete_3.pret.date_signature >= date_of_numbers(2018,1,1)) and @@ -44305,22 +40993,22 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem temp_condition_logement_pret_3 = dead_value raise EmptyError except EmptyError: - match_arg_754 = menage_3.logement.mode_occupation - if match_arg_754.code == ModeOccupation_Code.Locataire: - _ = match_arg_754.value + match_arg_755 = menage_3.logement.mode_occupation + if match_arg_755.code == ModeOccupation_Code.Locataire: + _ = match_arg_755.value temp_condition_logement_pret_4 = False - elif match_arg_754.code == ModeOccupation_Code.ResidentLogementFoyer: - _ = match_arg_754.value + elif match_arg_755.code == ModeOccupation_Code.ResidentLogementFoyer: + _ = match_arg_755.value temp_condition_logement_pret_4 = False - elif match_arg_754.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: - propriete_4 = match_arg_754.value + elif match_arg_755.code == ModeOccupation_Code.AccessionProprieteLocalUsageExclusifHabitation: + propriete_4 = match_arg_755.value temp_condition_logement_pret_4 = (propriete_4.pret.date_signature >= date_of_numbers(2017,12,31)) - elif match_arg_754.code == ModeOccupation_Code.SousLocataire: - _ = match_arg_754.value + elif match_arg_755.code == ModeOccupation_Code.SousLocataire: + _ = match_arg_755.value temp_condition_logement_pret_4 = False - elif match_arg_754.code == ModeOccupation_Code.LocationAccession: - propriete_5 = match_arg_754.value + elif match_arg_755.code == ModeOccupation_Code.LocationAccession: + propriete_5 = match_arg_755.value temp_condition_logement_pret_4 = (propriete_5.pret.date_signature >= date_of_numbers(2017,12,31)) if temp_condition_logement_pret_4: @@ -44344,33 +41032,33 @@ def eligibilite_aide_personnalisee_logement(eligibilite_aide_personnalisee_logem try: try: try: - match_arg_755 = menage_3.residence - if match_arg_755.code == Collectivite_Code.Guadeloupe: - _ = match_arg_755.value + match_arg_756 = menage_3.residence + if match_arg_756.code == Collectivite_Code.Guadeloupe: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.Guyane: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.Guyane: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.Martinique: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.Martinique: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.LaReunion: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.LaReunion: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.SaintBarthelemy: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.SaintBarthelemy: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.SaintMartin: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.SaintMartin: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.Metropole: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.Metropole: + _ = match_arg_756.value temp_eligibilite_1 = False - elif match_arg_755.code == Collectivite_Code.SaintPierreEtMiquelon: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.SaintPierreEtMiquelon: + _ = match_arg_756.value temp_eligibilite_1 = True - elif match_arg_755.code == Collectivite_Code.Mayotte: - _ = match_arg_755.value + elif match_arg_756.code == Collectivite_Code.Mayotte: + _ = match_arg_756.value temp_eligibilite_1 = False if ((date_courante_19 >= date_of_numbers(2021,1,1)) and temp_eligibilite_1): @@ -44412,8 +41100,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1190, - start_column=14, end_line=1190, + start_line=1152, + start_column=14, end_line=1152, end_column=59, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44423,8 +41111,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1182, - start_column=14, end_line=1182, + start_line=1144, + start_column=14, end_line=1144, end_column=52, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44434,8 +41122,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1186, - start_column=14, end_line=1186, + start_line=1148, + start_column=14, end_line=1148, end_column=55, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44445,8 +41133,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_legislatif.catala_fr", - start_line=1097, start_column=5, - end_line=1097, end_column=74, + start_line=1095, start_column=5, + end_line=1095, end_column=74, law_headings=["Article L841-2", "Chapitre Ier : Champ d'application", "Titre IV : Allocations de logement", @@ -44466,8 +41154,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1180, - start_column=14, end_line=1180, + start_line=1142, + start_column=14, end_line=1142, end_column=60, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44477,8 +41165,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1184, - start_column=14, end_line=1184, + start_line=1146, + start_column=14, end_line=1146, end_column=63, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44488,8 +41176,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_eligibilite_aide_personnalisee_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1188, - start_column=14, end_line=1188, + start_line=1150, + start_column=14, end_line=1150, end_column=67, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44506,8 +41194,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_mode_occupation = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1194, - start_column=14, end_line=1194, + start_line=1156, + start_column=14, end_line=1156, end_column=56, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44517,8 +41205,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_ressources_menage_sans_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1198, - start_column=14, end_line=1198, + start_line=1160, + start_column=14, end_line=1160, end_column=58, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44528,8 +41216,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_situation_familiale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1202, - start_column=14, end_line=1202, + start_line=1164, + start_column=14, end_line=1164, end_column=60, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44539,8 +41227,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1209, - start_column=14, end_line=1209, + start_line=1171, + start_column=14, end_line=1171, end_column=66, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44550,8 +41238,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1213, - start_column=14, end_line=1213, + start_line=1175, + start_column=14, end_line=1175, end_column=45, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44561,32 +41249,32 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1217, - start_column=14, end_line=1217, + start_line=1179, + start_column=14, end_line=1179, end_column=54, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_allocation_logement_dot_date_courante = temp_calcul_allocation_logement_dot_date_courante try: - match_arg_756 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_756.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_756.value + match_arg_757 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_757.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_757.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementSociale, Unit()) - elif match_arg_756.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_756.value + elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_757.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementFamiliale, Unit()) - elif match_arg_756.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_756.value + elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_757.value temp_calcul_allocation_logement_dot_type_aide = TypeAidesPersonnelleLogement(TypeAidesPersonnelleLogement_Code.AllocationLogementSociale, Unit()) temp_calcul_allocation_logement_dot_type_aide_1 = temp_calcul_allocation_logement_dot_type_aide except EmptyError: temp_calcul_allocation_logement_dot_type_aide_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_legislatif.catala_fr", - start_line=1113, - start_column=14, end_line=1113, + start_line=1111, + start_column=14, end_line=1111, end_column=50, law_headings=["Article L841-2", "Chapitre Ier : Champ d'application", @@ -44600,8 +41288,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_allocation_logement_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1221, - start_column=14, end_line=1221, + start_line=1183, + start_column=14, end_line=1183, end_column=50, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44621,8 +41309,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_mode_occupation = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1192, - start_column=14, end_line=1192, + start_line=1154, + start_column=14, end_line=1154, end_column=64, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44633,8 +41321,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_type_aide = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/code_construction_legislatif.catala_fr", - start_line=1111, - start_column=14, end_line=1111, + start_line=1109, + start_column=14, end_line=1109, end_column=58, law_headings=["Article L841-2", "Chapitre Ier : Champ d'application", @@ -44648,8 +41336,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_ressources_menage_sans_arrondi = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1196, - start_column=14, end_line=1196, + start_line=1158, + start_column=14, end_line=1158, end_column=66, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44659,8 +41347,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_situation_familiale = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1200, - start_column=14, end_line=1200, + start_line=1162, + start_column=14, end_line=1162, end_column=68, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44670,8 +41358,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1205, start_column=5, - end_line=1205, end_column=65, + start_line=1167, start_column=5, + end_line=1167, end_column=65, law_headings=["Calculette globale", "Prologue : aides au logement"])) calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge = temp_calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge @@ -44680,8 +41368,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_zone = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1211, - start_column=14, end_line=1211, + start_line=1173, + start_column=14, end_line=1173, end_column=53, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44691,8 +41379,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1215, - start_column=14, end_line=1215, + start_line=1177, + start_column=14, end_line=1177, end_column=62, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44702,8 +41390,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_calcul_aide_personnalisee_logement_dot_residence = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1219, - start_column=14, end_line=1219, + start_line=1181, + start_column=14, end_line=1181, end_column=58, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44723,30 +41411,30 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_coefficents_enfants_garde_alternee_pris_en_compte_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1176, - start_column=12, end_line=1176, + start_line=1138, + start_column=12, end_line=1138, end_column=61, law_headings=["Calculette globale", "Prologue : aides au logement"])) coefficents_enfants_garde_alternee_pris_en_compte_3 = temp_coefficents_enfants_garde_alternee_pris_en_compte_5 try: - match_arg_757 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_757.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_757.value + match_arg_758 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_758.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_758.value temp_eligibilite_3 = False - elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_757.value + elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_758.value temp_eligibilite_3 = True - elif match_arg_757.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_757.value + elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_758.value temp_eligibilite_3 = True temp_eligibilite_4 = (eligibilite_aide_personnalisee_logement_dot_eligibilite or temp_eligibilite_3) except EmptyError: temp_eligibilite_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1172, - start_column=12, end_line=1172, + start_line=1134, + start_column=12, end_line=1134, end_column=23, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44757,15 +41445,15 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides if not eligibilite_2: return aide_finale_25 else: - match_arg_758 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_758.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_758.value + match_arg_759 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_759.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_759.value temp_traitement_aide_finale_5 = True - elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_758.value + elif match_arg_759.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_759.value temp_traitement_aide_finale_5 = False - elif match_arg_758.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_758.value + elif match_arg_759.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_759.value temp_traitement_aide_finale_5 = False if (eligibilite_aide_personnalisee_logement_dot_eligibilite and not temp_traitement_aide_finale_5): @@ -44787,17 +41475,17 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides aide_finale_25) except EmptyError: raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1174, + start_line=1136, start_column=12, - end_line=1174, + end_line=1136, end_column=34, law_headings=["Calculette globale", "Prologue : aides au logement"])) except EmptyError: temp_traitement_aide_finale_4 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1174, - start_column=12, end_line=1174, + start_line=1136, + start_column=12, end_line=1136, end_column=34, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44806,15 +41494,15 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides if not eligibilite_2: temp_aide_finale_formule_10 = money_of_cents_string("0") else: - match_arg_759 = eligibilite_allocation_logement_dot_eligibilite_l841_2 - if match_arg_759.code == TypeEligibiliteAllocationLogement_Code.PasEligible: - _ = match_arg_759.value + match_arg_760 = eligibilite_allocation_logement_dot_eligibilite_l841_2 + if match_arg_760.code == TypeEligibiliteAllocationLogement_Code.PasEligible: + _ = match_arg_760.value temp_aide_finale_formule_11 = True - elif match_arg_759.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: - _ = match_arg_759.value + elif match_arg_760.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementFamiliale: + _ = match_arg_760.value temp_aide_finale_formule_11 = False - elif match_arg_759.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: - _ = match_arg_759.value + elif match_arg_760.code == TypeEligibiliteAllocationLogement_Code.AllocationLogementSociale: + _ = match_arg_760.value temp_aide_finale_formule_11 = False if (eligibilite_aide_personnalisee_logement_dot_eligibilite and not temp_aide_finale_formule_11): @@ -44833,8 +41521,8 @@ def calculette_aides_au_logement(calculette_aides_au_logement_in:CalculetteAides except EmptyError: temp_aide_finale_formule_10 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1173, - start_column=12, end_line=1173, + start_line=1135, + start_column=12, end_line=1135, end_column=31, law_headings=["Calculette globale", "Prologue : aides au logement"])) @@ -44851,18 +41539,18 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar ressources_menage_prises_en_compte_1 = calculette_aides_au_logement_garde_alternee_in.ressources_menage_prises_en_compte_in try: def temp_menage_sans_enfants_garde_alternee(personne_a_charge_14:PersonneACharge): - match_arg_760 = personne_a_charge_14 - if match_arg_760.code == PersonneACharge_Code.EnfantACharge: - enfant_15 = match_arg_760.value - match_arg_761 = enfant_15.situation_garde_alternee - if match_arg_761.code == SituationGardeAlternee_Code.PasDeGardeAlternee: - _ = match_arg_761.value + match_arg_761 = personne_a_charge_14 + if match_arg_761.code == PersonneACharge_Code.EnfantACharge: + enfant_15 = match_arg_761.value + match_arg_762 = enfant_15.situation_garde_alternee + if match_arg_762.code == SituationGardeAlternee_Code.PasDeGardeAlternee: + _ = match_arg_762.value return True - elif match_arg_761.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: - _ = match_arg_761.value + elif match_arg_762.code == SituationGardeAlternee_Code.GardeAlterneeCoefficientPriseEnCharge: + _ = match_arg_762.value return False - elif match_arg_760.code == PersonneACharge_Code.AutrePersonneACharge: - _ = match_arg_760.value + elif match_arg_761.code == PersonneACharge_Code.AutrePersonneACharge: + _ = match_arg_761.value return True temp_menage_sans_enfants_garde_alternee_1 = Menage(prestations_recues = menage_5.prestations_recues, logement = menage_5.logement, @@ -44877,8 +41565,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_menage_sans_enfants_garde_alternee_1 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1243, - start_column=11, end_line=1243, + start_line=1205, + start_column=11, end_line=1205, end_column=45, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44888,8 +41576,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1254, - start_column=14, end_line=1254, + start_line=1216, + start_column=14, end_line=1216, end_column=31, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44899,8 +41587,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1256, - start_column=14, end_line=1256, + start_line=1218, + start_column=14, end_line=1218, end_column=34, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44910,8 +41598,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1258, - start_column=14, end_line=1258, + start_line=1220, + start_column=14, end_line=1220, end_column=38, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44921,8 +41609,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_dot_ressources_menage_prises_en_compte = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1260, - start_column=14, end_line=1260, + start_line=1222, + start_column=14, end_line=1222, end_column=59, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44940,8 +41628,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_menage = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1262, - start_column=14, end_line=1262, + start_line=1224, + start_column=14, end_line=1224, end_column=51, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44951,8 +41639,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_demandeur = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1264, - start_column=14, end_line=1264, + start_line=1226, + start_column=14, end_line=1226, end_column=54, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44962,8 +41650,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_date_courante = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1266, - start_column=14, end_line=1266, + start_line=1228, + start_column=14, end_line=1228, end_column=58, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -44973,8 +41661,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1269, start_column=5, - end_line=1269, end_column=70, + start_line=1231, start_column=5, + end_line=1231, end_column=70, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte = temp_calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte @@ -44991,8 +41679,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_eligibilite_5 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1250, - start_column=12, end_line=1250, + start_line=1212, + start_column=12, end_line=1212, end_column=23, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -45002,8 +41690,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_coefficents_enfants_garde_alternee_pris_en_compte_6 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1244, - start_column=11, end_line=1244, + start_line=1206, + start_column=11, end_line=1206, end_column=60, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) @@ -45025,8 +41713,8 @@ def calculette_aides_au_logement_garde_alternee(calculette_aides_au_logement_gar except EmptyError: temp_aide_finale_2 = dead_value raise NoValueProvided(SourcePosition(filename="examples/aides_logement/prologue.catala_fr", - start_line=1251, - start_column=12, end_line=1251, + start_line=1213, + start_column=12, end_line=1213, end_column=23, law_headings=["Calculette avec garde alternée", "Prologue : aides au logement"])) diff --git a/tests/test_scope/good/nothing.catala_en b/tests/test_scope/good/nothing.catala_en index 24a7be8d..05410a23 100644 --- a/tests/test_scope/good/nothing.catala_en +++ b/tests/test_scope/good/nothing.catala_en @@ -7,13 +7,6 @@ declaration scope Foo2: ```catala-test-inline $ catala Scalc -s Foo2 -O -t -[WARNING] The variable "bar" is declared but never defined in scope "Foo2" - -┌─⯈ tests/test_scope/good/nothing.catala_en:5.9-12: -└─┐ -5 │ output bar content integer - │ ‾‾‾ - └─ Test let Foo2_3 (Foo2_in_2: Foo2_in {}) = decl temp_bar_4 : any; temp_bar_4 = dead_value_1;